Работа с опасностями данных в данной конвейерной MIPS - PullRequest
0 голосов
/ 19 сентября 2018

Первый пост здесь.Я изучаю asm и организацию компьютеров самостоятельно, и я столкнулся с проблемным сценарием, в котором я был бы очень признателен за вашу помощь.

Учитывая этот код, который работает на конвейерном MIPS:

0x1000 loop: lw $11,4($8)
0x1004 add $4,$4,$11
0x1008 addi $8,$8,4
0x100c sw $4,0($5)
0x1010 add $5,$5,$5
0x1014 beq $8,$9,loop
0x1018 nop

Данный код выполняется на конвейерном процессоре MIPS.

Можно предположить, что запись в файл регистров выполняется в первой половине тактового цикла, а команда beq выполняется навторая фаза (фаза декодирования инструкций).

заданная архитектура:

архитектура

Мне интересно, можно ли заменить add $ 5,5, 5 долларов с другой машиной (MIPS) (не псевдо)?

А что касается опасностей данных в данном коде - как они решаются и с помощью какого оборудования?

Я думаю, что одиниз способов справиться с опасностями данных использует пересылку, но я пока не знаю, как это сделать.Что касается дополнительного оборудования, я думаю, что необходимы дополнения (в случае пересылки): дополнительные входы в мультиплексор ALU (каждый): выход ALU в конце MEM, выход ALU в конце EX и вывод памяти вКонец MEM.

, пытающийся самостоятельно изучить архитектуру компьютера, и это, как правило, довольно сложно.был бы очень признателен за ваши объяснения для этого

большое спасибо, пытался излагать столько, сколько я могу.

...