35 lines
1.9 KiB
Markdown
35 lines
1.9 KiB
Markdown
![]() |
#### Простейшая реализация суперскалярности (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 | | ... |
|