- •Вопрос 1. Поколения архитектуры эвм. Основные характеристики.
- •Вопрос 2. Области применения и типы эвм. Классификация по быстродействию и областям применения
- •Вопрос 3. Принципы архитектуры Фон-Неймана.
- •Вопрос 4. Пользовательские регистры. Регистры общего назначения.
- •Вопрос 5. Пользовательские регистры. Сегментные регистры.
- •Вопрос 6. Основные характеристики памяти. Адресная, ассоциативная и стековая организация памяти.
- •Вопрос 7. Ассоциативная организация памяти: регистровая косвенная адресация (базовая и индексная)
- •Вопрос 8. Ассоциативная организация: регистровая косвенная адресация со смещением
- •Вопрос 9. Стековая память
- •Вопрос 10. Динамическая память. Статическая память
- •Вопрос 11. Режимы работы кэш-памяти
- •Вопрос 12. Структура эвм. Назначение и структура процессора
- •Вопрос 13. Системы команд. Классификация процессоров в соответствии с системой команд
- •Вопрос 14. Реальный режим процессора типа интел 8086. Сегмент, граница параграфа, смещение
- •Вопрос 15. Защищенный режим работы процессора. Таблицы дескрипторов
- •Вопрос 16. Виртуальный режим работы процессора типа интел 8086
- •Вопрос 17. Прерывания
- •Вопрос 18. Системы ввода-вывода.
- •Вопрос 19. Классификация процессоров. Cisc, risc, vliw, суперскалярные процессоры, misc.
- •Вопрос 20. Особенности risc архитектуры.
- •Вопрос 21. Параллельная обработка. Конвейерная организация. Типы конфликтов.
- •Вопрос 22. Архитектура суперскалярных процессоров. Предварительная выборка команд и предсказание переходов.
- •Вопрос 23. Архитектура эвм с длинным командным словом.
- •Вопрос 24. Процессор ia-64. Особенности построения и работы архитектура ia-64 (Merced)
- •Вопрос 25-26. Основные классы современных параллельных компьютеров. Numa, pvp, кластеры. Основные классы современных параллельных компьютеров. Mpp, smp
- •Массивно-параллельные системы (mpp)
- •Симметричные мультипроцессорные системы (smp)
- •Системы с неоднородным доступом к памяти (numa)
- •Параллельные векторные системы (pvp)
- •Кластерные системы
- •Вопрос 27. Вычислительные системы, классы архитектур.
Вопрос 21. Параллельная обработка. Конвейерная организация. Типы конфликтов.
Конвейерная организация
Разработчики архитектуры команд компьютера часто прибегали к приему, известного под общем названием «совмещение операций». При этом компьютер выполняет более одной команды одновременно. Этот метод включает два понятия – параллелизм и конвейеризация. Параллелизм достигается путём совмещения операций за счет использования нескольких копий аппаратной структуры. Высокая производительность получается за счет осуществления решения различных частей задачи.
Конвейеризация (конвейерная обработка) основана на разделении подлежащей исполнению функции на более мелкие части (ступени) и выделения каждой из них отдельного блока аппаратуры. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняется несколько команд. При этом время выполнения каждой команды на конвейере не уменьшается, что накладывает определенные ограничения на длину конвейера.
Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной (обычно 4-5 команд). Конвейерная организация используется как в ЦИСК, так и РИСК.
При реализации конвейерной обработки возникают ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте. Такие ситуации получили название конфликтов.
Существуют 3 класса конфликтов:
Структурные – возникают из-за конфликтов по ресурсам, когда аппаратные средства не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения, совмещения.
Конфликты по данным – возникающие в случае, когда выполнение одной команды зависит от результата выполнения предыдущей команды.
Конфликты по управлению – возникают при конвейеризации команд переходов, и других команд, изменяющих значение счетчика команд.
Известны три возможных конфликта по данным в зависимости от порядка операций чтения и записи. Рассмотрим две команды i и j, при этом i предшествует j. Возможны следующие конфликты:
RAW (чтение после записи) - j пытается прочитать операнд-источник данных прежде, чем i туда запишет. Таким образом, j может некорректно получить старое значение. Это наиболее общий тип конфликтов, способ их преодоления с помощью механизма "обходов" рассмотрен ранее.
WAR (запись после чтения) - j пытается записать результат в приемник прежде, чем он считывается оттуда командой i, так что i может некорректно получить новое значение. Этот тип конфликтов, как правило, не возникает в системах с централизованным управлением потоком команд, обеспечивающих выполнение команд в порядке их поступления, так как последующая запись всегда выполняется позже, чем предшествующее считывание. Особенно часто конфликты такого рода могут возникать в системах, допускающих выполнение команд не в порядке их расположения в программном коде.
WAW (запись после записи) - j пытается записать операнд прежде, чем будет записан результат команды i, т.е. записи заканчиваются в неверном порядке, оставляя в приемнике значение, записанное командой i, а не j. Этот тип конфликтов присутствует только в конвейерах, которые выполняют запись со многих ступеней (или позволяют команде выполняться даже в случае, когда предыдущая приостановлена).
Конфликты по управлению могут вызывать даже большие потери производительности конвейера, чем конфликты по данным. Когда выполняется команда условного перехода, она может либо изменить, либо не изменить значение счетчика команд. Если команда условного перехода заменяет счетчик команд значением адреса, вычисленного в команде, то переход называется выполняемым; в противном случае, он называется невыполняемым.
Простейший метод работы с условными переходами заключается в приостановке конвейера как только обнаружена команда условного перехода до тех пор, пока она не достигнет ступени конвейера, которая вычисляет новое значение счетчика команд. Имеется несколько методов сокращения приостановок конвейера: метод выжидания, метод возврата, задержанные переходы.