WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Внеочередное исполнение (англ. out-of-order execution) машинных инструкций — исполнение машинных инструкций не в порядке следования в машинном коде (как было при выполнении инструкций по порядку (англ. in-order execution)), а в порядке готовности к выполнению. Реализуется с целью повышения производительности вычислительных устройств. Среди широко известных машин впервые в существенной мере реализована в машинах CDC 6600 компании Control Data и IBM System/360 Model 91 компании IBM.

Описание

При выполнении инструкций по порядку (англ. in-order) осуществляются следующие действия:

  1. считывание инструкции;
  2. остановка процессора в ожидании для загрузки операндов инструкции;
  3. передача инструкции на выполнение соответствующему исполнительному модулю;
  4. выполнение инструкции соответствующим модулем;
  5. запись результата выполнения инструкции модулем в регистровую ячейку.

При выполнении инструкций не по порядку (англ. out-of-order) осуществляются следующие действия:

  1. считывание инструкции;
  2. помещение инструкции в очередь I (называемую англ. instruction queue, instruction buffer или reservation stations);
  3. ожидание, пока операнды любой инструкции, находящейся в очереди I, станут доступны;
  4. передача инструкции, операнды которой доступны, на выполнение соответствующему исполнительному модулю;
  5. выполнение инструкции соответствующим модулем;
  6. запись результата выполнения инструкции модулем в очередь II;
  7. извлечение из очереди II результатов выполнения тех инструкций, перед которыми в очереди I не осталось невыполненных инструкций, и запись результатов в регистровый файл; удаление таких инструкций из очереди I.

Особенности внеочередного исполнения:

  • раньше других может быть выполнена инструкция, операнды которой будут готовы раньше операндов других инструкций;
  • инструкция, поставленная в очередь I позже, может быть выполнена раньше;
  • время простоя, вызванное ожиданием готовности операндов инструкций, уменьшается (по сравнению с процессором, выполняющим инструкции по порядку) за счёт ожидания готовности операндов нескольких инструкций;
  • за счёт использования очереди II запись результатов в регистровый файл осуществляется в порядке следования инструкций в машинном коде (создаётся видимость выполнения инструкций по порядку).

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

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

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

См. также

Примечания

    Литература

    Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

    Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

    Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




    Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

    Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

    2019-2024
    WikiSort.ru - проект по пересортировке и дополнению контента Википедии