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