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