1.9 KiB
1.9 KiB
Ступени конвейера, использующего алгоритм Томасуло. Обработка инструкции на различных ступенях.
- Выборка (IF) - обрабатывается последовательно.
- Выдача (ID) - обрабатывается последовательно.
- Получить инструкцию из очереди выбранных инструкций (IQ).
- Выдать инструкцию в свободную RS, если нет структурного конфликта.
- Пометить выбранную RS как занятую.
- Переслать доступные значения операндов инструкции (из регистров ISA) в выбранную RS.
- Переименовать еще не доступные операнды в указатели на RS, которые их произведут (переименование регистров, динамическое построение графа зависимостей данных).
- Указать для выходного регистра, что он ожидает значение от используемой RS.
- Исполнение (EX)
- если оба операнда готовы, начинается исполнение на назначенном FU.
- если не все операнды готовы, следим за CDB в ожидании требуемого результата (через CDB происходит пересылка). т.е. предотвращаем RAW и соблюдаем зависимости по данным.
- Запись результата (WB)
- результат выдается на CDB для всех ожидающих RS, т.е результат рассылается по CDB.
- станция резервации помечается как свободная.