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