Atualmente, a Forwarding Unit só avança valores para as entradas alu_input_a e alu_input_b da ALU. No entanto, ela deveria também avançar o valor a ser escrito no registrador exmem_data_read_2, cujo nome atual é meio enganoso pois dá a entender que ele deveria ser uma cópia do idex_data_read_2.
Resolução: renomear exmem_data_read_2 para exmem_write_data ou exmem_mem_write_data (fica a gosto de quem implementar) e fazer o forwarding do valor correto no estágio de execução, podendo ser, em ordem de prioridade, a partir do exmem_alu_out, do wb_data, ou do idex_data_read_2.
Atualmente, a Forwarding Unit só avança valores para as entradas
alu_input_a
ealu_input_b
da ALU. No entanto, ela deveria também avançar o valor a ser escrito no registradorexmem_data_read_2
, cujo nome atual é meio enganoso pois dá a entender que ele deveria ser uma cópia doidex_data_read_2
.Resolução: renomear
exmem_data_read_2
paraexmem_write_data
ouexmem_mem_write_data
(fica a gosto de quem implementar) e fazer o forwarding do valor correto no estágio de execução, podendo ser, em ordem de prioridade, a partir doexmem_alu_out
, dowb_data
, ou doidex_data_read_2
.