Организация вычислительных систем

Конвейеризация команд


Существенное повышение производительности МП 80286 по сравнению с базовой моделью семейства стало возможным благодаря внедрению в архитектуру семейства IA32 конвейерной обработки. Конвейеризация позволяет нескольким внутренним блокам МП работать одновременно (табл. 5.1), совмещая дешифрование команды, операции АЛУ, вычисление эффективного адреса и циклы шины нескольких команд. В составе МП 80286 есть 4 конвейерных устройства:

  • BU (Bus Unit) - шинный блок (считывание из памяти и портов ввода/вывода);
  • IU (Instruction Unit) - командный блок (дешифрация команд);
  • EU (Executive Unit) - исполнительный блок (выполнение команд);
  • AU (Address Unit) - адресный блок (вычисляет все адреса, формирует физический адрес).

Таблица 5.1. Конвейеризация команд в МП 80286

МикрооперацииЦиклы шины

Выборка B

команды U

N+1N+2
N-1

Дешифр. I

команды U

N+1N+2
N-2N-1

Форм. адр. A

операнда U

N+1N+2
N-2N-1

Выборка B

операнда U

N+1N+2
N-2N-1

Выполнение E

команды U

N+1
N-2N-1

Запись B

результата U

Идея конвейеризации была развита в следующих моделях этого семейства. В МП Intel-486 реализован пятиступенчатый конвейер для обработки команд:

  • PF (Prefetch) - предвыборка команд;
  • D1 (Instruction Decode) - декодирование команды;
  • D2 (Address Generate) - формирование адреса;
  • EX (Execute) - выполнение команды в АЛУ и доступ к кэш-памяти;
  • WB (Write Back) - обратная запись.


Рис. 5.1.  Блок-схема архитектуры МП Pentium

Новая микроархитектура процессоров Pentium (рис. 5.1) и более поздних базируется на идее суперскалярной обработки. Под суперскалярностью подразумевается наличие более одного конвейера для обработки команд (в отличие от скалярной - одноконвейерной архитектуры). В МП Pentium команды распределяются по двум независимым исполнительным конвейерам (U и V). Конвейер U может выполнять любые команды семейства IA-32, включая целочисленные команды и команды с плавающей точкой. Конвейер V предназначен для выполнения простых целочисленных команд и некоторых команд с плавающей точкой.
Команды могут направляться в каждое из этих устройств одновременно, причем при выдаче устройством управления в одном такте пары команд более сложная команда поступает в конвейер U, а менее сложная - в конвейер V (табл. 5.2). Однако, такая попарная обработка команд (спаривание) возможна только для ограниченного подмножества целочисленных команд. Команды вещественной арифметики не могут запускаться в паре с целочисленными командами. Одновременная выдача двух команд возможна только при отсутствии зависимостей по регистрам.

Таблица 5.2. Конвейеризация команд в МП PentiumЭтапы конвейеровЦиклы шиныPFD1D2EXWB
К1К3К5К7
К2К4К6К8
К1К3К5К7
К2К4К6К8
К1К3К5К7
К2К4К6К8
К1К3К5К7
К2К4К6К8
К1К3К5К7
К2К4К6К8

Содержание раздела