
- •Содержание
- •Часть 1 3
- •Часть 2 50
- •Часть 1
- •1. Микропроцессоры. Определение, классификация, закономерности развития, области применения. Обобщенная структура микропроцессора
- •2. Арифметико–логические устройства. Структура, подход к проектированию, основные уравнения работы алу
- •3. Организация цепей переноса в пределах секции алу. Наращивание разрядности, схема ускоренного переноса
- •4. Регистровое алу – базовая структура микропроцессора. Варианты построения регистровых структур. Задача управления и синхронизации
- •7. Устройство микропрограммного управления. Структура, способы формирования управляющих сигналов, адресация микрокоманд
- •8. Система команд и способы адресации операндов. Конвейерный принцип выполнения команд
- •9. Структурные конфликты и способы их минимизации. Конфликты по данным, остановы конвейера и реализация механизма обходов
- •10. Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению
- •11. Классификация систем памяти. Организация систем памяти в микропроцессорных системах
- •12. Принципы организации кэш-памяти. Способы отображения данных из озу в кэш-память
- •13. Режимы прямого доступа к памяти. Структуры контроллеров пдп
- •14. Принципы функционирования виртуальной памяти
- •15. Типовые структуры и принципы функционирования микропроцессорных систем
- •16. Основные режимы функционирования микропроцессорной системы. Выполнение основной программы, вызов подпрограмм
- •17. Основные режимы функционирования микропроцессорной системы. Обработка прерываний и исключений
- •18. Системы с циклическим опросом. Блок приоритетных прерываний
- •19. Обмен информацией между элементами в микропроцессорных системах. Арбитр магистрали
- •Часть 2
- •20. Классификация архитектур современных микропроцессоров. Архитектуры с полным и сокращенным набором команд, суперскалярная архитектура
- •21. Классификация архитектур современных микропроцессоров. Принстонская (Фон-Неймана) и гарвардская архитектуры
- •22. Структура современных 8-разрядных микроконтроллеров сRisc-архитектурой
- •22(?). Структура современных 32-разрядных микроконтроллеров сRisc-архитектурой
- •23. Процессоры цифровой обработки сигналов: принципы организации, обобщенная структура
- •24. Процессоры общего назначения на примере архитектурыIntelP6
- •25. Классификация архитектур параллельных вычислительных систем. Системы с разделяемой общей памятью
- •26. Классификация архитектур параллельных вычислительных систем. Системы с распределенной памятью
- •27. Векторно-конвейерные вычислительные системы. Память с расслоением. Особенности структуры системыCray-1
- •28. Матричные вычислительные системы. Особенности построения систем памяти и коммутаторов
- •29. Машины, управляемые потоком данных. Принципы действия и особенности их построения. Графический метод представления программ
- •30. Системы с программируемой структурой. Однородные вычислительные среды
- •31. Систолические вычислительные системы
- •32. Кластерные вычислительные системы: определение, классификация, топологии
9. Структурные конфликты и способы их минимизации. Конфликты по данным, остановы конвейера и реализация механизма обходов
Классификация основных методов минимизации структурных конфликтов и конфликтов по данным:
Совмещенный режим выполнения команд в общем случае требует конвейеризации функциональных устройств и дублирования ресурсов для разрешения всех возможных комбинаций команд в конвейере. Если какая-нибудь комбинация команд не может быть принята из-за конфликта по ресурсам, то говорят, что в процессоре имеется структурный конфликт.
Возникновение структурных конфликтов может быть связано с недостаточным дублированием некоторых ресурсов, что препятствует выполнению произвольной последовательности команд в конвейере без его приостановки. Например, процессор имеет только один порт записи в регистровый файл, а конвейеру при определенных обстоятельствах требуется выполнить две записи в регистровый файл в одном такте. Когда последовательность команд наталкивается на такой конфликт, конвейер приостанавливает выполнение одной из команд до тех пор, пока не станет доступным необходимое устройство.
Конвейеризация всех функциональных устройств может оказаться слишком дорогой. Процессоры, допускающие два обращения к памяти в одном такте, должны иметь удвоенную пропускную способность памяти, например, путем организации кэш-памяти раздельно для команд и данных. Аналогично, полностью конвейеризированное устройство деления с плавающей точкой требует большого количества вентилей. Поэтому разработчики следуют принципу: если структурные конфликты не будут возникать слишком часто, то не стоит платить за то, чтобы их обойти. В целом влияние структурного конфликта на производительность конвейера относительно невелико.
Конфликты по данным возникают в том случае, когда применение конвейерной обработки может изменить порядок обращений к операндам так, что он будет отличаться от порядка, который наблюдается при последовательном выполнении команд на неконвейерной машине.
Конфликты по данным возникают, когда имеет место зависимость между командами, и они расположены по отношению друг к другу достаточно близко, так что совмещение операций, происходящее при конвейеризации, может привести к изменению порядка обращения к операндам.
Известны три возможных типа конфликтов по данным в зависимости от порядка операций чтения и записи:
1) чтение-после-записи;
2) запись-после-чтения;
3) запись-после-записи.
Рассмотрим две команды K1иK2, при этом командеK1предшествуетK2.
Чтение-после-записи (Read-After-Write — RAW) — командаK2пытается прочитать операнд-источник данных прежде чем его запишет командаK1, так что командаK2может некорректно получить старое значение.
Запись-после-чтения (Write-After-Read — WAR) — командаK2пытается записать результат в приемник прежде чем он считывается командойK1, так что командаK1может некорректно получить новое значение.
Запись-после-записи (Write-After-Write — WAW) — командаK2пытается записать операнд прежде чем будет записан результат командыK1, т. е. записи заканчиваются в неверном порядке, оставляя в приемнике значение, записанное командойK1, а неK2.
В борьбе с конфликтами по данным выделяют два основных аспекта: своевременное обнаружение потенциального конфликта и его устранение.
Признаком возникновения конфликта по данным между двумя
командами K1иK2служит невыполнение хотя бы одного из трех
условий Бернстейна:
1) пересечение W(K1) сW(K2) пусто;
2) пересечение W(K1) сR(K2) пусто;
3) пересечение R(K1) сW(K2) пусто,
где W(K1) — набор выходных данных командыK1;R(K1) — набор входных данных командыK1. Если все условия выполняются, то операторыK1иK2могут быть выполнены одновременно разными исполнителями в параллельной вычислительной системе.
Пример последовательности команд в конвейере, имеющих зависимость по данным:
Проблема, поставленная в этом примере, может быть решена с помощью достаточно простой организации коммутирующих магистралей, которая называется пересылкой или продвижением данных (data forwarding), «обходом» (data bypassing), иногда «закороткой» (shortcircuiting). Эта организация состоит в следующем. Результат операции АЛУ с его выходного регистра всегда снова подается на входы АЛУ. Если аппаратура обнаруживает, что предыдущая операция АЛУ записывает результат в регистр, соответствующий источнику операнда для следующей операции АЛУ, то логические схемыуправления выбирают в качестве входа для АЛУ результат, поступающий по цепи «обхода», а не значение, прочитанное из регистрового файла.
Схема продвижения данных:
Не все потенциальные конфликты по данным могут обрабатываться с помощью организации «обхода». Рассмотрим последовательность команд, представленную в следующем примере:
Эта последовательность отличается от последовательности подряд идущих команд АЛУ. Команда загрузки (MOV) регистра R1 из памяти по адресу, содержащемуся в регистре R6 (косвенная регистровая адресация), имеет задержку, которая не может быть устранена обычным обходным путем. В этом случае, чтобы обеспечить корректное выполнение программы, применяют метод блокировки конвейера (pipeline interlock). Аппаратура обнаруживает конфликт и приостанавливает конвейер до тех пор, пока он существует. Приостановка начинается с команды, которая хочет использовать данные в то время, когда предыдущая команда, результат которой является операндом для нашей, вырабатывает этот результат. Аппаратура вызывает приостановку конвейера или появление .пузырька. точно так же, как и в случае структурных конфликтов.