Допустимо одновременное выполнение нескольких команд путем
Совмещения во времени различных фаз этих команд. IF- выборка команды , D-декодирование , ОА- формирование адресов операндов , OF- выборка операндов , ЕХ- выполнение операции , S- запоминание результата.
Если считать , что на выполнение каждого из этапов (шагов) команды
Затрачивается одинаковое время , равное машинному такту (в некоторых машинах один шаг соответствует машинному циклу), то в идеальном случае можно получать результаты операций в каждом машинном такте.
Конвейерное выполнение команд основано на тех же принципах, что и поточные линии сборки на производстве. Оно имеет максимальную эффективность, когда продолжительность выполнения всех этапов команд одинакова, бесперебойно подаются команды и данные и на каждом этапе отсутствуют «мертвые» временные зоны , нарушающие непрерывность конвейерной реализации команд. К этим факторам можно отнести следущие:
Когда для выполнения следующей команды требуется результат
от предыдущей команды , или когда предыдущей командой определяется адрес операнда следующей команды (модификация адреса ) , то возникает задержка начала выполнения следующей команды , связанная с ожиданием выборки операнда или с преобразованием адресов;
При ветвлении программы по результатам проверки условий
Командой условного перехода команды , находящиеся в процессе
Конвейерной обработки , остаются невыполненными, и требуется
|
|
Повторная загрузка конвейера, начиная с момента выборки команды
условного перехода;
Когда в кэш-памяти отсутствуют требуемые данные или команды,
Необходимо еще передать их в кэш-память из основной памяти. При
Стр.24
Конфликтном обращении к кэш-памяти (например, при наложении друг на друга этапов IF, OF, S команд , следующих одна за другой ) запросы с относительно низкими приоритетами будут находиться в стадии ожи-
Дания;
Когда предшествующая команда изменяет содержание
Последующей или когда изменяется содержимое регистров,
Определяющих состояние программы, последующая команда должна
ожидать завершения предшествующей команды;
В случае возникновения прерывания и перехода к программе его обработки команды, находящиеся в это время на командном конвейере,
Остаются незавершенными (стадии, на которых прерывается их
выполнение, зависят от вида прерывания), и приходится заново загружать конвейер командами, входящими в программу обработки прерывания;
Когда операция, реализуемая машинной командой, имеет сложный
Характер, как, например, операция с плавающей точкой или действие
|
|
Команды операционной системы, и для ее выполнения требуется много
Машинных циклов, последующая команда долго не может достичь стадии выполнения операции. Чтобы предельно ограничить влияние перечисленных выше факторов, нарушающих работу конвейера команд, в современных высокопроизводительных компьютерах и суперЭВМ совершенствуется структура аппаратной части и оптимизируется компиляция потока информации, поступающего на конвейер команд.
Суперскалярные процессоры. Суперскалярный процессор
(многофункциональное процессорное устройство) содержит множество операционных устройств . С точки зрения организации обработки процессоры занимают промежуточное положение между SISD и рассматриваемой ниже SIMD. Принято выделять два типа суперскалярных процессоров.
Стр.25
В соответствии с используемым принципом , команды ,
Последовательно формируемые конвейером команд, выполняются
Свободными операционными блоками, причем результаты операций могут выдаваться с очередностью, отличной от очередности команд в командном конвейере. Например, в машине Эльбрус-2 десять операционных блоков (сумматор с плавающей точкой , умножитель , сумматор с фиксированной точкой и др.) параллельно выполняют соответствующие операции , совместно используя одни и те же регистры. При этом поддерживаются в определенном состоянии операционные блоки и регистры, причём в процессе выполнения команд производится проверка занятости необходимых операционных блоков, управление поступлением требуемых данных (операндов) из других операционных блоков и памяти и передается управление определенным операционным блокам , когда для выполнения ими команд все готово . При невозможности выполнения команды из-за того, что данные не готовы , происходит процесс ожидания до тех пор , пока выполнение команды будет возможно. Таким образом ,если длительность операции, задаваемой последующей командой, меньше
|
|
Дата добавления: 2018-04-15; просмотров: 326; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!