Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура выч.систем.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.18 Mб
Скачать

1.2. Повышение производительности процессоров Конвейерная реализация команд. Конвейерный принцип

выполнения команд относится к MISD (МКОД) архитектурам. Машинные

команды выполняются с помощью ряда последовательных элементарных действий: выборки команды (IF), декодирования команды (D), формирования адресов операндов (ОА), выборки операндов (OF),выполнения операции (ЕХ) и запоминания результата (S). В машине с простой структурой аппаратной части выборка

стр.23

следующей машинной команды производится лишь после завершения выполнения предыдущей команды. С другой стороны, в машинах с конвейерной организацией команд, как показано на рис. 1.19,

допустимо одновременное выполнение нескольких команд путем

совмещения во времени различных фаз этих команд. IF- выборка команды , D-декодирование , ОА- формирование адресов операндов , OF- выборка операндов , ЕХ- выполнение операции , S- запоминание результата.

Если считать , что на выполнение каждого из этапов (шагов) команды

затрачивается одинаковое время , равное машинному такту (в некоторых машинах один шаг соответствует машинному циклу), то в идеальном случае можно получать результаты операций в каждом машинном такте.

Конвейерное выполнение команд основано на тех же принципах, что и поточные линии сборки на производстве. Оно имеет максимальную эффективность, когда продолжительность выполнения всех этапов команд одинакова, бесперебойно подаются команды и данные и на каждом этапе отсутствуют «мертвые» временные зоны , нарушающие непрерывность конвейерной реализации команд. К этим факторам можно отнести следущие:

  1. Когда для выполнения следующей команды требуется результат

от предыдущей команды , или когда предыдущей командой определяется адрес операнда следующей команды (модификация адреса ) , то возникает задержка начала выполнения следующей команды , связанная с ожиданием выборки операнда или с преобразованием адресов;

  1. При ветвлении программы по результатам проверки условий

командой условного перехода команды , находящиеся в процессе

конвейерной обработки , остаются невыполненными, и требуется

повторная загрузка конвейера, начиная с момента выборки команды

условного перехода;

  1. Когда в кэш-памяти отсутствуют требуемые данные или команды,

необходимо еще передать их в кэш-память из основной памяти. При

стр.24

конфликтном обращении к кэш-памяти (например, при наложении друг на друга этапов IF, OF, S команд , следующих одна за другой ) запросы с относительно низкими приоритетами будут находиться в стадии ожи-

дания;

  1. Когда предшествующая команда изменяет содержание

последующей или когда изменяется содержимое регистров,

определяющих состояние программы, последующая команда должна

ожидать завершения предшествующей команды;

5. В случае возникновения прерывания и перехода к программе его обработки команды, находящиеся в это время на командном конвейере,

остаются незавершенными (стадии, на которых прерывается их

выполнение, зависят от вида прерывания), и приходится заново загружать конвейер командами, входящими в программу обработки прерывания;

6.Когда операция, реализуемая машинной командой, имеет сложный

характер, как, например, операция с плавающей точкой или действие

команды операционной системы, и для ее выполнения требуется много

машинных циклов, последующая команда долго не может достичь стадии выполнения операции. Чтобы предельно ограничить влияние перечисленных выше факторов, нарушающих работу конвейера команд, в современных высокопроизводительных компьютерах и суперЭВМ совершенствуется структура аппаратной части и оптимизируется компиляция потока информации, поступающего на конвейер команд.

Суперскалярные процессоры. Суперскалярный процессор

(многофункциональное процессорное устройство) содержит множество операционных устройств . С точки зрения организации обработки процессоры занимают промежуточное положение между SISD и рассматриваемой ниже SIMD. Принято выделять два типа суперскалярных процессоров.

стр.25

В соответствии с используемым принципом , команды ,

последовательно формируемые конвейером команд, выполняются

свободными операционными блоками, причем результаты операций могут выдаваться с очередностью, отличной от очередности команд в командном конвейере. Например, в машине Эльбрус-2 десять операционных блоков (сумматор с плавающей точкой , умножитель , сумматор с фиксированной точкой и др.) параллельно выполняют соответствующие операции , совместно используя одни и те же регистры. При этом поддерживаются в определенном состоянии операционные блоки и регистры, причём в процессе выполнения команд производится проверка занятости необходимых операционных блоков, управление поступлением требуемых данных (операндов) из других операционных блоков и памяти и передается управление определенным операционным блокам , когда для выполнения ими команд все готово . При невозможности выполнения команды из-за того, что данные не готовы , происходит процесс ожидания до тех пор , пока выполнение команды будет возможно. Таким образом ,если длительность операции, задаваемой последующей командой, меньше

и связь между ее данными и результатами выполнения предыдущей

команды отсутствует, то результат этой операции окажется в регистре

раньше, чем результат операции предыдущей команды. В машине

Эльбрус-2 новая команда поступает в каждом машинном цикле, тогда как быстродействие операционных блоков позволяет произвести

суммирование с фиксированной точкой за три машинных цикла,

умножение с плавающей точкой - за 10 машинных циклов, а деление с

плавающей точкой - за 29 машинных циклов. Другими словами,

выполнение обработки операционным блоком отстает от темпа

поступления команд, поэтому введением определенного числа

дополнительных операционных блоков устанавливается баланс между

темпом поступления команд и скоростью выполнения операций.

Подобный же принцип управления вычислительным процессом применён в процессорах Pentium, причём в зависимости от семейства число операционных блоков может достигать пяти. Так в процессорах семейства P6 в операционной части конвейера используются два целочисленных блока, один блок для операций с плавающей точкой, один блок MMX для обработки потока целочисленных данных(Pentium, Pentium II) и один блок SSE для обработки потока чисел с плавающей точкой ( Pentium III).

По крайней мере два обстоятельства ограничивают эффективность

использования суперскалярных архитектур. Во-первых , есть ограничения на степень параллелизма на уровне команд , что характерно вообще для конвейеров операций . Другое следует из того, что размер окна исполнения (число активных команд, могущих исполняться параллельно) ограничивает возможный присущий программе параллелизм, так как не рассматривается параллельное исполнение команд , находящихся на расстоянии, превышающем размер окна .

Процессоры с длинным командным словом. Процессоры с длинным командным словом (VLIW) используют параллелизм на

стр.26

уровне команд. В соответствии с этой концепцией , как показано на рис.1.20, сравнительно длинная команда делится на множество полей и каждый операционный блок управляется отдельным полем. В отличие от суперскалярных процессоров , где возможность распараллеливания операций выясняется в процессе их выполнения, в процессорах данного типа это выяснение происходит в ходе компиляции программы. Компилятор извлекает из программы команды , которые могут быть выполнены параллельно , и из них формируется одна команда .

Достоинства VLIW заключаются в следующем . Во-первых ,

компилятор может более эффектно выявлять зависимости между

командами и выбирать параллельно исполняемые команды, чем это делает аппаратура суперскалярного процессора, ограниченная размером окна исполнения. При этом за счет обеспечения степени параллельности, близкой к числу операционных блоков , можно достичь высокой скорости обработки. Во-вторых , VLIW- процессор имеет более простое устройство управления и потенциально может иметь более высокую тактовую частоту .

Однако у VLIW процессоров есть серьезный фактор , снижающий их производительность. Это команды ветвления, зависящие от данных,

значения которых становятся известны только в динамике вычислений. Число одновременно выполняющихся команд VLIW-процессора не может быть очень большим в виду отсутствия у компилятора информации о зависимостях, формируемых динамически, в процессе выполнения.

Процессоры с SIMD- архитектурой. Как показано на рис. 1.22, в

архитектуре SIMD (Single Instruction Multiple Data Stream — один поток

команд и много потоков данных) команда, выделяемая управляющим

устройством, одновременно передается множеству операционных

элементов с одинаковой структурой (ПЭ), и все операционные блоки

параллельно выполняют одну и ту же операцию. Управляющее устройство разрешает или запрещает выполнение операций на основе информации о состоянии каждого операционного элемента.

стр.27

Информация о состоянии хранится в специальном внутреннем регистре ПЭ. Выполнение операций разрешается только тем процессорным элементам, в которых выполняются определенные условия. Поскольку поток команд является одиночным, то в случае необходимости условного перехода по результатам проверки выполнения

условий заданные операции выполняются только теми элементами, для которых результаты проверки подтверждают выполнение условий, а затем только теми элементами, для которых результаты проверки говорят о том, что условия не выполняются . Следовательно , сначала запрещается выполнение операций процессорным элементам с отрицательными результатами проверки условий, а затем -элементам,

в которых проверяемые условия выполняются.Управляющее устройство контролирует взаимосвязь между всеми операционными блоками и управляет обращением к общей памяти.

Принцип SIMD используется в современных микропроцессорах путем встраивания в их кристаллы относительно самостоятельных блоков, обеспечивающих технологии MMX (Pentium, Pentium-II) и SSE (Pentium-III и выше), которые значительно ускоряют операции обработки изображений.

стр.28