Внеочередное исполнение (англ. 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 процессор записывает результаты выполнения инструкций так, чтобы создавалась видимость нормального, очередного выполнения.

Оценка эффективности

править

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

См. также

править

Примечания

править

Литература

править
  • David A. Patterson, John L. Hennessy. Computer Architecture: A Quantitative Approach, 5th Edition (англ.). — Morgan Kaufmann, 2011. — 856 p. — ISBN 012383872X.

Ссылки

править

📚 Artikel Terkait di Wikipedia

Верификация

доказательство теорем (Theorem proving) Проверка моделей (Model checking) Символьное выполнение (Symbolic execution) Абстрактная интерпретация (Abstract Interpretation)

Бизнес-процесс

It? // High Performance Through Business Process Management: Strategy Execution in a Digital World. — Springer, 2017. — P. 1–28. — ISBN 9783319512594

Грей, Джейн

цитирует письмо Флэгга заказчику: «that Mary was too old at the time of her execution to make an interesting picture». Ives, 2009, p. 279: «The apotheosis was

Шаблон проектирования

Observer Visitor Command Model-View-Controller (MVC) Модель-представление-контроллер. Model-View-Presenter. Model-View-ViewModel. Presentation–abstraction–control[англ

Джобс, Стив

world today in matching great ideas with savvy marketing and pristine execution. Chapman, Glen. Apple 'genius' Steve Jobs dies from cancer . WNCF TV (6

Бьюзи, Гэри

Blood Sport Дэвид Ли Бердсонг телефильм 1974 Казнь рядового Словика The Execution of Private Slovik Джимми Фидек Закон The Law Уильям Брайт 1974—1975 —

Янг, Шон

Райан Уайтфилд 1994 Свидетели казни Witness to the Execution Джессика Трейнор Дневная фотомодель Model by Day Мерседес 1996 Лицо зла Evil has a face Гвен

Объектно-ориентированное программирование

обращения: 22 сентября 2010. Архивировано 23 сентября 2010 года. Steve Yegge. Execution in the Kingdom of Nouns (англ.). Дата обращения: 9 сентября 2015. Архивировано