Существенное повышение производительности МП 80286 по сравнению с базовой моделью семейства стало возможным благодаря внедрению в архитектуру семейства IA32 конвейерной обработки. Конвейеризация позволяет нескольким внутренним блокам МП работать одновременно (табл. 5.1), совмещая дешифрование команды, операции АЛУ, вычисление эффективного адреса и циклы шины нескольких команд. В составе МП 80286 есть 4 конвейерных устройства:
- BU (Bus Unit) - шинный блок (считывание из памяти и портов ввода/вывода);
- IU (Instruction Unit) - командный блок (дешифрация команд);
- EU (Executive Unit) - исполнительный блок (выполнение команд);
- AU (Address Unit) - адресный блок (вычисляет все адреса, формирует физический адрес).
Таблица 5.1. Конвейеризация команд в МП 80286
| |
Микрооперации
| Циклы шины
| |
Выборка 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). Однако, такая попарная обработка команд (спаривание) возможна только для ограниченного подмножества целочисленных команд. Команды вещественной арифметики не могут запускаться в паре с целочисленными командами. Одновременная выдача двух команд возможна только при отсутствии зависимостей по регистрам.
Таблица 5.2. Конвейеризация команд в МП Pentium
|
Этапы конвейеров
| Циклы шины
|
PF
| К1
| К3
| К5
| К7
| | | | |
К2
| К4
| К6
| К8
| | | | |
D1
| | К1
| К3
| К5
| К7
| | | |
| К2
| К4
| К6
| К8
| | | |
D2
| | | К1
| К3
| К5
| К7
| | |
| | К2
| К4
| К6
| К8
| | |
EX
| | | | К1
| К3
| К5
| К7
| |
| | | К2
| К4
| К6
| К8
| |
WB
| | | | | К1
| К3
| К5
| К7
|
| | | | К2
| К4
| К6
| К8
|
Лекция 5: Конвейеризация. Новые возможности микропроцессоров IA-32