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



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

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

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

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

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

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

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

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

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

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

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

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

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

Стр.24

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

Дания; 

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

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

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

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

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

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

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

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

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

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

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

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

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

                                  

Стр.25

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

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

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


Дата добавления: 2018-04-15; просмотров: 326; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!