Нужна помощь в проектировании шестиступенчатой конвейеризации с суперскалярным процессором с двумя исполнительными блоками.Шесть этапов: извлечение инструкций (IF
), декодирование инструкций (ID
), чтение из регистров (RR
), двухтактное выполнение (EX
), результат обратной записи (WB
).Инструкции не могут быть переупорядочены.В цикле выполнения самое большее одна выпущенная инструкция может быть связана с памятью (загрузка или сохранение), и самое большее одна инструкция может быть не памятью, имеющей дело с арифметическими операциями с регистрами.Latency
- это 3 цикла для операций загрузки и 2 цикла для других.Latency
рассматривается как циклы задержки по времени между циклами выдачи для зависимых инструкций.Теперь у нас есть следующая последовательность команд:
(1) LD R21, (R20)
(2) LD R18, (R17)
(3) ADD R16, R21, R18
(4) LD R15, (R14)
(5) ADD R13, R12, R11
(6) SUB R23, R22, R24
(7) ST (R23), R10
(8) ADD R4, R21, R18
(9) ST (R3), R2
(10) ST (R1), R4
Сколько времени занимает выдача программы, учитывая, что команда, как говорят, выдала, когда она переходит со стадии RR на стадию EX.
Моя тренировка выглядит следующим образом:
RAW конфликты существуют в (1) и (3), (2) и (3), (2) и (8), (2) и(8), (6) и (7).Таким образом, временная диаграмма:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
I01: IF ID RR EX EX WB
I02: -- IF ID RR EX EX WB
I03: -- -- -- -- IF ID RR EX EX WB
I04: -- -- -- -- IF ID RR EX EX WB
I05: -- -- -- -- -- IF ID RR EX EX WB
I06: -- -- -- -- -- -- IF ID RR EX EX WB
I07: -- -- -- -- -- -- -- -- IF ID RR EX EX WB
I08: -- -- -- -- -- -- -- -- IF ID RR EX EX WB
I09: -- -- -- -- -- -- -- -- -- IF ID RR EX EX WB
I10: -- -- -- -- -- -- -- -- -- -- IF ID RR EX EX WB
Пожалуйста, прокомментируйте подход решения.