Jump to content

Переупорядочить буфер

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

Буфер представляет собой кольцевой буфер (обеспечивающий очередь упорядочения инструкций FIFO ), реализованный как массив/вектор (что позволяет записывать результаты выполнения инструкций по мере их выполнения не по порядку).

Алгоритм Томасуло состоит из трех этапов: «Выпуск», «Выполнение», «Запись результата». В расширении алгоритма есть дополнительный этап «Commit». На этапе фиксации результаты инструкций сохраняются в регистре или памяти. Этап «Запись результата» изменен для помещения результатов в буфер повторного порядка. Для этой цели каждая инструкция помечается на станции резервирования своим индексом в ROB.

Содержимое буфера используется для зависимостей данных других инструкций, запланированных в буфере. Головка буфера будет зафиксирована, как только его результат станет действительным. Его зависимости уже будут рассчитаны и зафиксированы, поскольку они должны находиться перед инструкцией в буфере, но не обязательно рядом с ней. Зависимости данных между инструкциями обычно приводят к остановке конвейера, пока инструкция ожидает зависимых значений. ROB позволяет конвейеру продолжать обработку других инструкций, обеспечивая при этом фиксацию результатов, чтобы предотвратить такие опасности данных , как чтение перед записью (RAW), запись перед чтением (WAR) и запись перед записью (WAW).

В каждой записи буфера есть дополнительные поля для поддержки расширенного алгоритма:

  • Тип инструкции (переход, сохранение в памяти, сохранение в регистр)
  • Назначение (либо адрес памяти, либо номер регистра)
  • Результат (значение, идущее к месту назначения, или указание на (не)успешный прыжок)
  • Валидность (существует ли уже результат?)

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

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 63274484137594b0e838a55c99e54986__1679666400
URL1:https://arc.ask3.ru/arc/aa/63/86/63274484137594b0e838a55c99e54986.html
Заголовок, (Title) документа по адресу, URL1:
Re-order buffer - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)