es gibt 2 "stalls" die wir unterscheiden müssenlaut deinen angaben darf das piplineregister im falle eines beschäftigten sram nicht verüändert werden, oder?
wenn dass stimmt ist das ungünstig. Beispiele: addi r2,r1,7 subi r3,r2,2wenn add im exstage ist: steht dort: rd=2; wb_en='1' und in der id stufe: ra=2;
die pipeline muss gastalled werdenwenn mann jetzt nur das write ins id2ex verhindert forlgt, daß das addi noch einmal ausgeführt wird, es folgt ein weiteres stall,....... ich würde daher in das id2ex register in nop schreiben, und bei den stufen davor die befehle wiederholen
mul r2,r1,3 add r4,r5,r6in diesem fall ist das stall wegen einer alu die busy ist. folglich darf kein nop geschrieben werden.
konkret kann man die alu/sram so implementieren das sie ein ev. nop ignorieren wenn sie bereits etwas ausführen, oder machen wir "2" stalls, bei einem nops schreiben, beim anderen nichts schreiben?
g martin