Hardware Reference
In-Depth Information
type tPipeline is record
PCount : tInstrAdr;
Instr : tInstr;
OReg_A, OReg_B : tDaten;
Opcode : tOpcode;
ARegY1, ARegY2 : tRegAdr;
Ergebnis : tErgebnis;
Ctrl_EX, Ctrl_RW: tOpTyp;
end record ;
5.4.10 Die Übergangsfunktion für einen Pipeline-Schritt
Das Funktionsmodell für einen einzelnen Pipeline-Schritt soll als Prozedur mit
dem Pipeline-Objekt, dem Registersatz und dem Datenspeicher als les- und
veränderbare Signale und dem Befehlsspeicher und dem Konstantenspeicher
als nur lesbare Konstanten beschrieben werden:
procedure PipeStep( signal pp: inout tPipeline;
InstrMem: tInstrMem;
signal RegSet: inout tDatMem( 0 to 2 **cRegAdrBreite- 1 );
signal DatMem: inout tDatMem;
KonstMem: tDatMem) is
begin
Das Verhaltensmodell, das alle Befehle zusammenfasst, besteht aus den Si-
gnalzuweisungen für die einzelnen Pipeline-Phasen mit den entsprechenden
Fallunterscheidungen nach Befehlstyp. Unser Modell soll mit den Registerzu-
weisungen für Verarbeitungsbefehle aus Abb. 5.19 beginnen und diese in den
nachfolgenden Fallunterscheidungen bei Bedarf überschreiben. Ausgenommen
seien die Zuweisung an das Ergebnisregister in der Ausführungsphase (EX)
und die Schreiboperationen in die Blockspeicher in der Ergebnisschreibpha-
se (RW). Diese Zuweisungen werden später in den Fallunterscheidungen für
die EX- bzw. RW-Phase mit berücksichtigt. Dem Kontrollregister »Ctrl_EX«
wird dazu für Verarbeitungsbefehle der Wert »wr« für »Ergebnis in den Re-
gistersatz schreiben« zugewiesen:
-- Befehlszähler weiterschalten
pp.PCount <= pp.PCount+ 1 ;
-- IF: Befehlswort lesen
pp.Instr <= read(InstrMem, pp.PCount));
-- OF: Operanden lesen, Operationscode, Zieladresse und
-- Kontrollwert für Verarbeitungsbefehle weitergeben
pp.OReg_A <= read(RegSet, pp.Instr(tInstrRA'range));
pp.OReg_B <= read(RegSet, pp.Instr(tInstrRB'range));
pp.OpCode <= pp.Instr(tInstrOp'range);
pp.ARegY1 <= pp.Instr(tInstrRY'range);
pp.Ctrl_EX <= wr;
Search WWH ::




Custom Search