Skip to content

Commit a0d216a

Browse files
committed
Kontrollschaltung Automat
1 parent f447441 commit a0d216a

1 file changed

Lines changed: 126 additions & 0 deletions

File tree

11_Modell_CPU.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,3 +733,129 @@ Oscillator |---| | | |
733733
3 zu 8 Decoder
734734
@enduml
735735
```
736+
737+
## Kontroll Schaltung als Statemachine mit Kombinatorischer Logik
738+
739+
```text @plantUML.png
740+
@startuml
741+
ditaa
742+
+----------------------------------+
743+
|c42C +------->
744+
| |
745+
| +-------> Kontroll
746+
| | Signale
747+
| Kombinatorische Logik +------->
748+
| |
749+
| +------->
750+
| |
751+
| +------+
752+
+-+-+-+-+---+----------+-----------+ |
753+
^ ^ ^ ^ ^ ^Aktueller |
754+
| | | | | | Zustand |
755+
| | | | | +----+-----------+ |
756+
| | | | | |Zustandsspeicher| |
757+
| | | | | |cC42 | |
758+
| | | | | | +--+ +--+ | |
759+
| | | | | | |FF| |FF| ... | |
760+
| | | | | | +--+ +--+ | |
761+
| | | | | +------------+---+ |
762+
| | | | | ^ ^ |
763+
Opcode | | | |
764+
Alu States | | |
765+
| +----------+
766+
| Neuer Zustand
767+
|
768+
Clock
769+
@enduml
770+
```
771+
772+
```text @plantUML.png
773+
@startuml
774+
state "Fetch1\n(memory read)" as Fetch1 : MBR ← M[MAR]
775+
state "Fetch2\n(wait for memory read)" as Fetch2 : (wait)
776+
state "Fetch3\n(increment program counter)" as Fetch3 : PC ← PC+1
777+
state "Fetch4\n(instruction load)" as Fetch4 : IR ← MBR
778+
state "Fetch5,6\n(instruction decoding...)" as Fetch56 : (wait)
779+
state decodefork <<fork>>
780+
state "Hlt\n(Set Halt signal)" as Hlt : RF ← H
781+
state "Wait\n(wait unitl CP8)" as Wait : (wait)
782+
state "Jmp\n(Set Programcounter to Operant)" as Jmp : PC ← IR_11-0
783+
state jmafork <<fork>> : Evaluate A_15
784+
state "Csa\n(load switches state to a)" as Csa : A ← SWR
785+
state "Jsr1\n(Set Programcounter to Operant)" as Jsr1 : A ← PC_11-0
786+
state "Jsr2\n(special Fetch0, load Operant to MBR and program counter)" as Jsr2 : "MBR ← IR_11-0\nPC ← IR_11-0"
787+
state "Fetch0\n(prepare instruction load)" as Fetch0 : MAR ← PC
788+
state "Other Operations ..." as OTHER : ...
789+
state "Rest\n(reset program counter)" as Reset : PC ← 0x0000
790+
791+
[*] --> Reset
792+
Reset --> Fetch0
793+
Fetch0 --> Fetch1 : CP1
794+
Fetch1 --> Fetch2 : CP2
795+
Fetch2 --> Fetch3 : CP3
796+
Fetch3 --> Fetch4 : CP4
797+
Fetch4 --> Fetch56 : CP5
798+
Fetch56 --> decodefork : CP7
799+
decodefork --> Hlt : op == HLT
800+
decodefork --> Wait : op == NOP
801+
decodefork --> Jmp : op == JMP
802+
decodefork --> jmafork : op == JMA
803+
jmafork --> Jmp : A_15 == 1
804+
jmafork --> Wait : A_15 == 0
805+
decodefork --> Csa : op == CSA
806+
decodefork --> Jsr1 : op == JSR
807+
decodefork --> OTHER : op == RAL,NOT,LDA,STA,ADD,XOR,AND,IOR
808+
Hlt --> Fetch0 : CP8
809+
Jmp --> Fetch0 : CP8
810+
Wait --> Fetch0 : CP8
811+
Csa --> Fetch0 : CP8
812+
Jsr1 --> Jsr2 : CP8
813+
Jsr2 --> Fetch1 : CP1
814+
OTHER --> Fetch0 : CP8 (Execute Phase)
815+
@enduml
816+
```
817+
818+
819+
820+
## Kontroll Schaltung als Statemachine mit Mikroprogrammspeicher
821+
822+
```text @plantUML.png
823+
@startuml
824+
ditaa
825+
+----------------------------------+
826+
|c8C2 +------->
827+
| |
828+
| +-------> Kontroll
829+
| | Signale
830+
| Mikroprogramm Speicher +------->
831+
| |
832+
| +------->
833+
| |
834+
| +-------+
835+
+-+--------------------------------+ |
836+
^ ^Aktuelle Microcode |
837+
| |Instruction Adresse|
838+
| +-----------------+-----------+ |
839+
| |Adressspeicher | |
840+
Alu States| | | |
841+
| | +--+ +--+ +--+ | |
842+
| |FF| |FF| |FF| ... | |
843+
| +--+ +--+ +--+ cC42| |
844+
+-----------------------------+ |
845+
^ ^Folgeadresse |
846+
| | |
847+
| +----------+----------+ |
848+
| | Adress Generierung | |
849+
Clock| |cFF0 | |
850+
| ++-+-+-+------------+-+ |
851+
^ ^ ^ ^ ^ |
852+
| | | | | |
853+
| | | | | |
854+
Opcodes +-----------+
855+
Folgezustands
856+
Kontrolle
857+
@enduml
858+
```
859+
860+
Die Folgeadresse ergibt sich aus dem Folgezustand und bem Operation Decode aus dem Opcode.
861+
Die Wörter im Mikroprogram Speicher enthalten Informationen zu den Kontroll Signalen und der Folgezustandkontrolle.

0 commit comments

Comments
 (0)