/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/old-cs-2-01/mips/mips-4.txt


Steuereinheit:
1. Befehlsdekodierer
2. Funktionsdekodierer

Befehlsdekodierer: 
1. MemtoReg
2. MemWrite
3. Branch
4. ALUSrc
5. RegDst
6. RegWrite 
7. ALUOp

Funktionsdekodierer: ALU Operation: 3 Bit 

Funktionsdekodierer: 
1. Ausgang: ALU Operation: 3 Bit 
2. Eingang: Func - vom Befehl - 6 Bit
3. Eingang: ALUOp, 2 Bit vom Befehlsdekodierer 

Befehlsdekodierer
Funktionsdekodierer
Registersatz
ALU 
Datenspeicher 
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX 
1 x AND 
2 x Addierer
1 x Bit Shifter 



Befehlsdekodierer: 
1. MemtoReg
2. MemWrite
3. Branch
4. ALUSrc
5. RegDst
6. RegWrite 
7. ALUOp

Funktionsdekodierer: 
1. Func
2. ALUOp
3. ALU Operation 

Registersatz: 
- Lese-Register 1
- Lese-Register 2
- Schreiberegister 
- Schreibedaten 
- WE
- Lese-Daten 1
- Lese-Daten 2

ALU:
- ALU-Ergebnis 
- Null

AND:
- PCSrc

Datenspeicher:
- Addresse
- Schreibedaten 
- WE
- Lesedaten 

Befehlsspeicher: 
- Leseaddresse
- Lesedaten 

Befehlszähler: 
- PC (t+1)
- PC (t)


Alle Datenwege:


1. MemtoReg (Befehlsdekodierer)
2. MemWrite (Befehlsdekodierer)
3. Branch (Befehlsdekodierer)
4. ALUSrc (Befehlsdekodierer)
5. RegDst (Befehlsdekodierer)
6. RegWrite (Befehlsdekodierer)
7. ALUOp (Befehlsdekodierer)
8. Func (Funktionsdekodierer)
9. ALUOp (Funktionsdekodierer)
10. ALU Operation (Funktionsdekodierer)
11. Lese-Register 1 (Registersatz)
12. Lese-Register 2 (Registersatz)
13. Schreiberegister (Registersatz) 
14. Schreibedaten (Registersatz) 
15. WE (Registersatz)
16. Lese-Daten 1 (Registersatz)
17. Lese-Daten 2 (Registersatz)
18. ALU-Ergebnis (ALU)
19. Null (ALU)
20. PCSrc (AND)
21. Addresse (Datenspeicher)
22. Schreibedaten (Datenspeicher) 
23. WE (Datenspeicher)
24. Lesedaten (Datenspeicher) 
25. Leseaddresse (Befehlsspeicher)
26. Lesedaten (Befehlsspeicher) 
27. PC (t+1) (Befehlszähler)
28. PC (t) (Befehlszähler)

Abgeschrieben, das war aus dem Blockschaltbild - aber allgemeiner Prozessor (OpenSource - und kann jeder verwenden):

ALUOp       Func            ALU Operanden 
00          X               010 - add 
X1          X               110 - sub 
1X          100000 - add    010 - add 
1X          100010 - sub    110 - sub 
1X          100100 - and    000 - and 
1X          100101 - or     001 - or
1X          101010 - slt    111 - set les than 

        Op-Code Reg-Write   Reg-Dst ALU-Src Branch  Mem-Write   Mem-toReg   ALU-Op
R-Typ   000000  1           1       0       0       0           0           10
lw      100011  1           0       1       0       0           1           00
sw      101011  0           X       1       0       1           X           00
beq     000100  0           X       0       1       0           X           01


Geographisch, von Süden nach Norden und Westen nach Osten

Addierer, Befehlszähler, Befehlsspeicher
MUX, Registersatz, Funktionsdekodierer, Befehlsdekodierer
Vorzeichenweiterung, Registersatz, Funktionsdekodierer, Befehlsdekodierer
2-Bit-Shifter, MUX, ALU
Addierer, Datenspeicher, AND

Oder als ganze Blöcke, von Westen nach Osten, Süden nach Norden 

Block 1:
Addierer, Befehlszähler, Befehlsspeicher

Block 2:
MUX, Vorzeichenerweiterung
Regisersatz
Funktionsdekodierer, Befehlsdekodierer

Block 3

2-Bit-Shifter, Addierer, ALU
MUX, ALU, Datenspeiecher, MUX 
AND