Code: Alles auswählen
1.) Einzyklus Mikroarchitektur
2.) Mehryzklus Mikroarchitektur
3.) Pipeline Mikroarchitektur
ALU-Op
00 - add
01 - sub
10 - nutze das Func Feld
11 - n/a
Func
100 000 - add
100 010 - sub
100 100 - and
100 101 - or
101 010 - slt
ALU-Operation
010 - add
110 - sub
000 - and
001 - or
111 - slt
rt-Feld: Register Source
rs-Feld: Register Source
rd-Feld: Register Destination
Datenkonflikte
RAW - Read after Write - Echte Datenabhängigkeit
WAR - Write After Read - Gegenabhängigkeit
WAW - Write After Write - Ausgabeabhängigkeit
Befehlszähler
Eingang: PC (t)
Augang: PC (t+1)
Bit 0 - Bit 5: func
Bit 31 - Bit 26: Befehlskdedierer
Bit 25 - Bit 21: rs-Feld
Bit 20 - Bit 15: rt-Feld
Funktionsdekodierer
Eingang: ALU-Op
Eingang: Func
Ausgang: ALU-Operation
Befehlsdekodierer
Eingang:
Bit 31 bis Bit 26: OpCode - Datenbus
Ausgang
MemToReg
MemWrite
Branch
ALU-Src
RegDst
RegWrite
Ausgang:
ALU-Op
Addierer + 4. Befehlszähler
Vorzeichenerweiterungseinheit
2 Bit Shifter
Addierer
Demultiplexer
Befehle
- R-Typ: OpCode rt-Feld, rs-Feld, rd-Feld, func-Feld
- I-Typ: 16 Bit Immidiate Wert
- J-Typ
I1: WB
I2: MEM
I3: EX
I4: ID
I5: IF
Einzyklus
0 1 2 3 4 5 6 7 8 9
I1: IF ID EX MEM WB
I2: IF ID EX MEM WB
Mehrzyklus
0 1 2 3 4 5 6 7 8 9
I1: IF ID EX MEM WB
I2: IF ID EX MEM WB
Wenn I1 in WB schreibt in ID liesst, dann gibt es einen RAW-Konflikt
0 1 2 3 4 5 6 7 8 9
I1: IF ID EX MEM WB (schreibt)
I2: IF ID liesst EX MEM WB
0 1 2 3 4 5 6 7 8 9
I1: IF ID EX MEM WB
I2: IF ID EX MEM WB
Stalling, Interlocking, Pipeline-Sperrung