Внеочередное исполнение кода, внеочередное исполнение операций, внеочередное исполнение команд

24-01-2024

Внеочередное исполнение (англ. Out-of-order execution) — парадигма, применяемая при разработке вычислительных устройств, с целью повышения производительности. Её особенность в том, что инструкции поступают в исполнительные модули не в порядке их следования, как было в концепции выполнения инструкций по порядку (англ. In-Order execution), а по готовности к выполнению. Среди широко известных машин впервые эта парадигма была в существенной мере реализована в машинах CDC 6600 фирмы Cоntrol Data и IBM 360/91 фирмы IBM.

Содержание

Концепция

Выполнение инструкций по порядку

  1. Считывание инструкции
  2. Если все операнды инструкции доступны, то она передаётся на выполнение соответствующему исполнительному модулю, иначе процессор останавливается, ожидая готовности операндов.
  3. Инструкция выполняется в соответствующем модуле.
  4. Модуль записывает результат обратно в регистровый файл.

Выполнение не по порядку

  1. Считывание инструкции
  2. Помещение инструкции в очередь
  3. Инструкция находится в очереди до тех пор пока её операнды не станут доступны. Таким образом инструкция может покинуть очередь прежде, чем попавшая туда раньше.
  4. Выбранная из очереди инструкция выполняется в соответствующем модуле.
  5. Результат помещается в очередь.
  6. Только после того, как все инструкции, которые были в очереди впереди данной, выполнятся, её результат помещается в регистровый файл.

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

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

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

Литература


Внеочередное исполнение кода, внеочередное исполнение операций, внеочередное исполнение команд.

Теннисный чемпионат Дубая 2015 в женском парном разряде, Файл:Jens Voigt 03.jpg.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47