Конвейеризация команд
Существенное повышение производительности МП 80286 по сравнению с базовой моделью семейства стало возможным благодаря внедрению в архитектуру семейства IA32 конвейерной обработки. Конвейеризация позволяет нескольким внутренним блокам МП работать одновременно (табл. 5.1), совмещая дешифрование команды, операции АЛУ, вычисление эффективного адреса и циклы шины нескольких команд. В составе МП 80286 есть 4 конвейерных устройства:
- BU (Bus Unit) - шинный блок (считывание из памяти и портов ввода/вывода);
- IU (Instruction Unit) - командный блок (дешифрация команд);
- EU (Executive Unit) - исполнительный блок (выполнение команд);
- AU (Address Unit) - адресный блок (вычисляет все адреса, формирует физический адрес).
Выборка B команды U | N+1 | N+2 | ||||
N-1 |
Дешифр. I команды U | N+1 | N+2 | |||
N-2 | N-1 |
Форм. адр. A операнда U | N+1 | N+2 | ||
N-2 | N-1 |
Выборка B операнда U | N+1 | N+2 | ||
N-2 | N-1 |
Выполнение E команды U | N+1 | |||
N-2 | N-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). Однако, такая попарная обработка команд (спаривание) возможна только для ограниченного подмножества целочисленных команд. Команды вещественной арифметики не могут запускаться в паре с целочисленными командами. Одновременная выдача двух команд возможна только при отсутствии зависимостей по регистрам.
К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 |