#### Простейшая реализация суперскалярности (x2). Пример.

**Суперскалярный конвейер:** 2 инструкции, 1 FP +1 не только FP
**Требования:**

- Выборка 64-бит/такт
- Декодирование 2-х инструкций/такт
- Много портов для FP регистров, чтобы загружать FP в паре с FP обработкой

| Тип | Стадии конвейера |  |  |  |  |  |  |  |
| :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- |
| Int instruct | IF | ID | EX | MEM | WB |  |  |  |
| FP instruct | IF | ID | EX | EX | EX | WB |  |  |
| Int instruct |  | IF | ID | EX | MEM | WB |  |  |
| FP instruct |  | IF | ID | EX | EX | EX | WB |  |
| Int instruct |  |  | IF | ID | EX | MEM | WB |  |
| FP instruct |  |  | IF | ID | EX | EX | EX | WB |

**Сложности аппаратной реализации:**

- Следствие ограничений ILP: сложные механизмы предсказания ветвлений и высокий уровень спекулятивности.
- Задержки блоков, планирующих и обрабатывающих множество операций в такте.
- Большое количество портов к регистровому файлу (пропускная способность внутренних шин).
- Обслуживание частого непоследовательного доступа к памяти.

|  | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- |
| LD F6, [R2] | IF | EX | WB |  |  |  |  |
| LD F2, [R3] | IF | EX | WB |  |  |  |  |
| DMUL F2, F4, F0 |  | IF | EX | EX | EX | EX | WB |
| DSUB F6, F2, F8 |  | IF | EX | EX | WB |  |  |
| DDIV F0, F6, F10 |  |  | IF |  |  |  | EX |
| DADD F8, F2, F6 |  |  | IF |  | EX | EX | WB |
| DMUL F2, F4, F12 |  |  |  |  | IF |  | ... |
