Окно инструкций
Окно инструкций в компьютерной архитектуре относится к набору инструкций , которые могут выполняться вне очереди в спекулятивном процессоре .
В частности, в традиционной конструкции окно инструкций состоит из всех инструкций, которые находятся в буфере повторного заказа (ROB). [1] В таком процессоре любая инструкция в окне команд может быть выполнена, когда ее операнды готовы. Процессоры с нарушением порядка получили свое название потому, что это может произойти с нарушением порядка (если операнды более молодой инструкции готовы раньше операндов более старой инструкции).
Окно инструкций имеет конечный размер, и новые инструкции могут войти в окно (обычно называемое диспетчеризацией или выделением ) только тогда, когда другие инструкции покидают окно (обычно называемые удалением или фиксацией ). Инструкции входят в окно команд и покидают их в программном порядке, и инструкция может покинуть окно только в том случае, если она является самой старой инструкцией в окне и завершена. Следовательно, окно инструкций можно рассматривать как скользящее окно, в котором инструкции могут выйти из строя. Любое выполнение внутри окна является спекулятивным (т. е. побочные эффекты не применяются за пределами ЦП) до тех пор, пока оно не будет зафиксировано для поддержки асинхронной обработки исключений, например прерываний .
Эта парадигма также известна как ограниченный поток данных. [2] поскольку инструкции внутри окна выполняются в порядке потока данных (не обязательно в порядке программы), но окно, в котором это происходит, ограничено (имеет конечный размер).
Окно инструкций отличается от конвейерной обработки : инструкции в упорядоченном конвейере не находятся в окне команд в общепринятом понимании, поскольку они не могут выполняться вне порядка друг друга. Процессоры с нарушением порядка обычно строятся на основе конвейеров, но многие этапы конвейера (например, этапы внешней выборки и декодирования команд) не считаются частью окна команд.