Skip to content

Commit ea5c29b

Browse files
committed
Replace instruction table
1 parent 5cb4da7 commit ea5c29b

1 file changed

Lines changed: 27 additions & 295 deletions

File tree

11_Modell_CPU.md

Lines changed: 27 additions & 295 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ mark: <span style="background-color: @0;
1515
padding: 6px 16px 6px 16px;
1616
">@1</span>
1717
red: @mark(#FF888888,@0)
18-
blue: @mark(lightblue,@0)
18+
blue: @mark(#898AE3,@0)
1919
gray: @mark(gray,@0)
2020
-->
2121

@@ -469,6 +469,10 @@ Die hier verwendete Register-Transfer Sprache wurde von T.C. Bartee, I.L. Lebow,
469469
| | $C_n\cdot JMP: PC\leftarrow IR_{11-0}$ | Wenn der Takt $C_n$ anliegt, und der Befehl "JMP" ausgeführt wird, erfolgt der Transfer des Inhaltes des Instruktionsregisters an den Programmzähler. |
470470

471471
### Abläufe der Befehlsabarbeitung
472+
<!--
473+
colspan: <!--colspan="@0" style="text-align: center; vertical-align: middle;"-->
474+
-->
475+
472476

473477
Einige Befehle, insbesondere die, welche keinen zweiten Operanden oder ALU-Aktivitäten benötigen, können vollständig in der IF-Phase abgearbeitet werden. Dies gilt für $HLT$, $NOP$, $CSA$, und die Sprungbefehle $JMP$, $JMA$ und $SRJ.$ Bei diesen Befehlen wird im letzten Prozessorzyklus (CP8) eine neue Adresse in das $MAR$ geladen, und dadurch der neue Speicherzyklus vorbereitet.
474478

@@ -478,300 +482,28 @@ Bei den Befehlen, zu deren Ausführung die EX-Phase benötigt wird, wird in CP8
478482

479483
In der EX-Phase werden die arithmetisch/logischen Operationen, sowie Speicherbefehle LOAD/STORE und Ein/Ausgabebefehle ausgeführt.
480484

481-
<table border="1">
482-
<thead>
483-
<tr>
484-
<th>OPCode</th>
485-
<th>0000</th>
486-
<th>0001</th>
487-
<th>0010</th>
488-
<th>0011</th>
489-
<th>0100</th>
490-
<th>0101</th>
491-
<th>0110</th>
492-
<th>0111</th>
493-
<th>1000</th>
494-
<th>1001</th>
495-
<th>1010</th>
496-
<th>1011</th>
497-
<th>1100</th>
498-
<th>1101</th>
499-
<th>1110</th>
500-
<th>1111</th>
501-
</tr>
502-
</thead>
503-
<tbody>
504-
<tr>
505-
<td>Befehl</td>
506-
<td>HLT</td>
507-
<td>JMA</td>
508-
<td>JMP</td>
509-
<td>JSR</td>
510-
<td>SWR</td>
511-
<td>RAL</td>
512-
<td>INP</td>
513-
<td>OUT</td>
514-
<td>NOT</td>
515-
<td>LDA</td>
516-
<td>STA</td>
517-
<td>ADD</td>
518-
<td>XOR</td>
519-
<td>AND</td>
520-
<td>IOR</td>
521-
<td>NOP</td>
522-
</tr>
523-
<tr>
524-
<td>CP1</td>
525-
<td colspan="16" style="text-align: center; vertical-align: middle;"> $MBR \leftarrow M[A]$</td>
526-
</tr>
527-
<tr>
528-
<td>CP2</td>
529-
<td></td>
530-
<td></td>
531-
<td></td>
532-
<td></td>
533-
<td></td>
534-
<td></td>
535-
<td></td>
536-
<td></td>
537-
<td></td>
538-
<td></td>
539-
<td></td>
540-
<td></td>
541-
<td></td>
542-
<td></td>
543-
<td></td>
544-
<td></td>
545-
</tr>
546-
<tr>
547-
<td>CP3</td>
548-
<td colspan="16" style="text-align: center; vertical-align: middle;"> $PC \leftarrow PC + 1$</td>
549-
</tr>
550-
<tr>
551-
<td>CP4</td>
552-
<td colspan="16" style="text-align: center; vertical-align: middle;"> $IR \leftarrow MBR $ </td>
553-
</tr>
554-
<tr>
555-
<td>CP5</td>
556-
<td></td>
557-
<td></td>
558-
<td></td>
559-
<td></td>
560-
<td></td>
561-
<td></td>
562-
<td></td>
563-
<td></td>
564-
<td></td>
565-
<td></td>
566-
<td></td>
567-
<td></td>
568-
<td></td>
569-
<td></td>
570-
<td></td>
571-
<td></td>
572-
</tr>
573-
<tr>
574-
<td>CP6</td>
575-
<td></td>
576-
<td></td>
577-
<td></td>
578-
<td></td>
579-
<td></td>
580-
<td></td>
581-
<td></td>
582-
<td></td>
583-
<td></td>
584-
<td></td>
585-
<td></td>
586-
<td></td>
587-
<td></td>
588-
<td></td>
589-
<td></td>
590-
<td></td>
591-
</tr>
592-
<tr>
593-
<td>CP7</td>
594-
<td>$RF \leftarrow H$</td>
595-
<td>$A_{15}=1:PC\leftarrow IR_{11-0}$</td>
596-
<td>$PC\leftarrow IR_{11-0}$</td>
597-
<td>$A_{11-0} \leftarrow PC$</td>
598-
<td>$A \leftarrow SWR$</td>
599-
<td>$Z \leftarrow A$</td>
600-
<td></td>
601-
<td></td>
602-
<td>$Z \leftarrow A$</td>
603-
<td></td>
604-
<td></td>
605-
<td>$Z \leftarrow A$</td>
606-
<td>$Z \leftarrow A$</td>
607-
<td>$Z \leftarrow A$</td>
608-
<td>$Z \leftarrow A$</td>
609-
<td></td>
610-
</tr>
611-
<tr>
612-
<td>CP8</td>
613-
<td>$MAR \leftarrow PC$</td>
614-
<td>$MAR \leftarrow PC$</td>
615-
<td>$MAR \leftarrow PC$</td>
616-
<td>$PC\leftarrow IR_{11-0}, MAR \leftarrow PC $</td>
617-
<td>$MAR \leftarrow PC$</td>
618-
<td>$SF\leftarrow E$</td>
619-
<td></td>
620-
<td></td>
621-
<td>$SF\leftarrow E$</td>
622-
<td colspan="6" style="text-align: center; vertical-align: middle;"> $SF\leftarrow E, MAR \leftarrow IR_{11-0}$</td>
623-
<td>$MAR \leftarrow PC$</td>
624-
</tr>
625-
</tbody>
626-
<tbody bgcolor='#898ae3'>
627-
<tr>
628-
<td>CP1</td>
629-
<td></td>
630-
<td></td>
631-
<td></td>
632-
<td></td>
633-
<td></td>
634-
<td></td>
635-
<td></td>
636-
<td></td>
637-
<td></td>
638-
<td>$MBR\leftarrow M[A]$</td>
639-
<td></td>
640-
<td>$MBR\leftarrow M[A]$</td>
641-
<td>$MBR\leftarrow M[A]$</td>
642-
<td>$MBR\leftarrow M[A]$</td>
643-
<td>$MBR\leftarrow M[A]$</td>
644-
<td></td>
645-
</tr>
646-
<tr>
647-
<td>CP2</td>
648-
<td></td>
649-
<td></td>
650-
<td></td>
651-
<td></td>
652-
<td></td>
653-
<td>$A\leftarrow Z^*$</td>
654-
<td></td>
655-
<td></td>
656-
<td>$A\leftarrow \overline{Z}$</td>
657-
<td></td>
658-
<td></td>
659-
<td></td>
660-
<td></td>
661-
<td></td>
662-
<td></td>
663-
<td></td>
664-
</tr>
665-
<tr>
666-
<td>CP3</td>
667-
<td></td>
668-
<td></td>
669-
<td></td>
670-
<td></td>
671-
<td></td>
672-
<td></td>
673-
<td></td>
674-
<td></td>
675-
<td></td>
676-
<td></td>
677-
<td></td>
678-
<td></td>
679-
<td></td>
680-
<td></td>
681-
<td></td>
682-
<td></td>
683-
</tr>
684-
<tr>
685-
<td>CP4</td>
686-
<td></td>
687-
<td></td>
688-
<td></td>
689-
<td></td>
690-
<td></td>
691-
<td></td>
692-
<td></td>
693-
<td></td>
694-
<td></td>
695-
<td></td>
696-
<td></td>
697-
<td></td>
698-
<td></td>
699-
<td></td>
700-
<td></td>
701-
<td></td>
702-
</tr>
703-
<tr>
704-
<td>CP5</td>
705-
<td></td>
706-
<td></td>
707-
<td></td>
708-
<td></td>
709-
<td></td>
710-
<td></td>
711-
<td></td>
712-
<td></td>
713-
<td></td>
714-
<td>$A\leftarrow MBR$</td>
715-
<td>$MBR \leftarrow A$</td>
716-
<td></td>
717-
<td></td>
718-
<td></td>
719-
<td></td>
720-
<td></td>
721-
</tr>
722-
<tr>
723-
<td>CP6</td>
724-
<td></td>
725-
<td></td>
726-
<td></td>
727-
<td></td>
728-
<td></td>
729-
<td></td>
730-
<td></td>
731-
<td></td>
732-
<td></td>
733-
<td></td>
734-
<td>$M[A] \leftarrow MBR$</td>
735-
<td></td>
736-
<td></td>
737-
<td></td>
738-
<td></td>
739-
<td></td>
740-
</tr>
741-
<tr>
742-
<td>CP7</td>
743-
<td></td>
744-
<td></td>
745-
<td></td>
746-
<td></td>
747-
<td></td>
748-
<td></td>
749-
<td></td>
750-
<td></td>
751-
<td></td>
752-
<td></td>
753-
<td></td>
754-
<td>$A \leftarrow Sum(MBR, Z)$</td>
755-
<td>$A \leftarrow MBR \oplus Z$</td>
756-
<td>$A \leftarrow MBR \cdot Z$</td>
757-
<td>$A \leftarrow MBR + Z$</td>
758-
<td></td>
759-
</tr>
760-
<tr>
761-
<td>CP8</td>
762-
<td></td>
763-
<td></td>
764-
<td></td>
765-
<td></td>
766-
<td></td>
767-
<td>$MAR \leftarrow PC, SF \leftarrow F$</td>
768-
<td></td>
769-
<td></td>
770-
<td colspan="7" style="text-align: center; vertical-align: middle;"> $ MAR \leftarrow PC, SF \leftarrow F$</td>
771-
<td></td>
772-
</tr>
773-
</tbody>
774-
</table>
485+
<!--data-type="None"-->
486+
| OPCode | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
487+
| ------ | -------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
488+
| | `HLT` | `JMA` | `JMP` | `JSR` | `SWR` | `RAL` | `INP` | `OUT` | `NOT` | `LDA` | `STA` | `ADD` | `XOR` | `AND` | `IOR` | `NOP` |
489+
| CP1 | @colspan(16) $MBR \leftarrow M[MAR]$ |
490+
| CP2 | | | | | | | | | | | | | | | | |
491+
| CP3 | @colspan(16) $PC \leftarrow PC + 1$ |
492+
| CP4 | @colspan(16) $IR \leftarrow MBR $ |
493+
| CP5 | | | | | | | | | | | | | | | | |
494+
| CP6 | | | | | | | | | | | | | | | | |
495+
| CP7 | $RF \leftarrow H$ | $A_{15}=1:PC\leftarrow IR_{11-0}$ | $PC\leftarrow IR_{11-0}$ | $A_{11-0} \leftarrow PC$ | $A \leftarrow SWR$ | $Z \leftarrow A$ | | | $Z \leftarrow A$ | | | $Z \leftarrow A$ | $Z \leftarrow A$ | $Z \leftarrow A$ | $Z \leftarrow A$ |
496+
| CP8 | $MAR \leftarrow PC$ | $MAR \leftarrow PC$ | $MAR \leftarrow PC$ | $PC\leftarrow IR_{11-0}, MAR \leftarrow PC $ | $MAR \leftarrow PC$ | $SF\leftarrow E$ | | | $SF\leftarrow E$ | @colspan(6) $SF\leftarrow E, MAR \leftarrow IR_{11-0}$ | $MAR \leftarrow PC$ |
497+
| <!-- style="background-color: #898AE3;" --> $CP1$ | | | | | | | | | | $MBR\leftarrow M[MAR]$| | @colspan(4) $MBR\leftarrow M[MAR]$| |
498+
| <!-- style="background-color: #898AE3;" --> $CP2$ | | | | | | $A\leftarrow Z^*$ | | | $A\leftarrow \overline{Z}$ | | | | | | | |
499+
| <!-- style="background-color: #898AE3;" --> $CP3$ | | | | | | | | | | | | | | | | |
500+
| <!-- style="background-color: #898AE3;" --> $CP4$ | | | | | | | | | | | | | | | | |
501+
| <!-- style="background-color: #898AE3;" --> $CP5$ | | | | | | | | | | $A\leftarrow MBR$ | $MBR \leftarrow A$ | | | | | |
502+
| <!-- style="background-color: #898AE3;" --> $CP6$ | | | | | | | | | | | $M[MAR] \leftarrow MBR$ | | | | | |
503+
| <!-- style="background-color: #898AE3;" --> $CP7$ | | | | | | | | | | | | $A \leftarrow Sum(MBR, Z)$| $A \leftarrow MBR \oplus Z$| $A \leftarrow MBR \cdot Z$| $A \leftarrow MBR + Z$| |
504+
| <!-- style="background-color: #898AE3;" --> $CP8$ | | | | | | $MAR \leftarrow PC, SF \leftarrow F$ | | | @colspan(7) $ MAR \leftarrow PC, SF \leftarrow F$ | |
505+
506+
775507

776508
Der folgende Automat bildet die Abarbeitung der Instruktionen `HLT`, `JMP`, `JMA` und `JSR` in einem Automaten ab.
777509

0 commit comments

Comments
 (0)