Files

35 lines
1.9 KiB
Markdown
Raw Normal View History

#### Простейшая реализация суперскалярности (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 | | ... |