@@ -23,14 +23,14 @@ gray: @mark(gray,@0)
2323
2424# Von mathematischen Operationen zur CPU
2525
26- | Parameter | Kursinformationen |
27- | -------------------- | -- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
28- | ** Veranstaltung:** | ` Eingebettete Systeme` |
29- | ** Semester** | ` Wintersemester 2021/22 ` |
30- | ** Hochschule:** | ` Technische Universität Freiberg ` |
31- | ** Inhalte:** | ` Realisierung grundlegender arithmetischer Operationen im Rechner ` |
26+ | Parameter | Kursinformationen |
27+ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
28+ | ** Veranstaltung:** | ` Digitale Systeme / Eingebettete Systeme ` |
29+ | ** Semester** | ` Wintersemester 2022/23 ` |
30+ | ** Hochschule:** | ` Technische Universität Freiberg ` |
31+ | ** Inhalte:** | ` Realisierung grundlegender arithmetischer Operationen im Rechner ` |
3232| ** Link auf GitHub:** | [ https://github.com/TUBAF-IfI-LiaScript/VL_Softwareentwicklung/blob/master/10_CPU_Basis.md ] ( https://github.com/TUBAF-IfI-LiaScript/VL_EingebetteteSysteme/blob/master/10_CPU_Basis.md ) |
33- | ** Autoren** | @author |
33+ | ** Autoren** | @author |
3434
3535![ ] ( https://media.giphy.com/media/10PNyg7YOcaBQA/giphy-downsized.gif )
3636
@@ -112,10 +112,10 @@ Synchroner 3-Bit-Zähler auf der Basis von JK Flip-Flops
112112
113113Zwischenstand
114114
115- | Stufe | Funktionalität | Wunschzettel |
116- | ----- | ----------------------------------------- | --------------------------------------- |
117- | 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
118- | 1 | | Flexibles Handling mehrerer Operationen $\color{red} \mathbf{?}$ |
115+ | Stufe | Funktionalität | Wunschzettel |
116+ | ------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------ |
117+ | 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
118+ | 1 | | Flexibles Handling mehrerer Operationen $\color{red} \mathbf{?}$ |
119119
120120Logische Funktionen: NOT, AND, NOR, XOR
121121
@@ -188,19 +188,19 @@ Der Status S umfasst eine Zusammenstellung der Resultate der Operationen codiert
188188Wie "programmieren" wir unser System?
189189
190190<!-- data-type="none" -->
191- | F_0 | F_1 | F_2 | Z | Bezeichnung |
192- | --- | --- | --- | --- | ----------- |
193- | 0 | 0 | 0 | 0 | ` OR_A ` |
194- | 0 | 0 | 0 | 1 | ` OR_B ` |
195- | ... | | | | |
196- | 0 | 1 | 1 | 0 | ` ADD_A ` |
197- | 0 | 1 | 1 | 1 | ` ADD_B ` |
198- | ... | | | | |
191+ | F_0 | F_1 | F_2 | Z | Bezeichnung |
192+ | ----- | ----- | ----- | ---| ------------- |
193+ | 0 | 0 | 0 | 0 | ` OR_A ` |
194+ | 0 | 0 | 0 | 1 | ` OR_B ` |
195+ | ... | | | | |
196+ | 0 | 1 | 1 | 0 | ` ADD_A ` |
197+ | 0 | 1 | 1 | 1 | ` ADD_B ` |
198+ | ... | | | | |
199199
200200Beispielanwendungen
201201
202202| | Inkrementieren | Togglen |
203- | ------------ | ---------------- | ---------------- |
203+ | -------------- | ------------------ | ------------------ |
204204| Vorbereitung | A <- 1, B <-0 | A <- 1 |
205205| "Programm" | ` ADD_B ` $(0111)$ | ` EOR_A ` $(0101)$ |
206206| | ` ADD_B ` $(0111)$ | ` EOR_A ` $(0101)$ |
@@ -211,11 +211,11 @@ Beispielanwendungen
211211
212212Zwischenstand
213213
214- | Stufe | Funktionalität | Wunschzettel |
215- | ----- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
216- | 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
217- | 1 | Arithmetische Einheit mit mehren Funktionen und wählbarem Ergebnisregister $\color{green} \mathbf{✓}$ | |
218- | 2 | | Sequenz von Berechnungsfolgen $\color{red} \mathbf{?}$ $$ \begin{aligned} & Reg\_A \leftarrow 3 \\ & Reg\_B \leftarrow 2 \\ & ADD\_B \\ & Reg\_A \leftarrow -3 \\ & MUL\_B \\ & ... \end{aligned} $$ |
214+ | Stufe | Funktionalität | Wunschzettel |
215+ | ------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
216+ | 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
217+ | 1 | Arithmetische Einheit mit mehren Funktionen und wählbarem Ergebnisregister $\color{green} \mathbf{✓}$ | |
218+ | 2 | | Sequenz von Berechnungsfolgen $\color{red} \mathbf{?}$ $$ \begin{aligned} & Reg\_A \leftarrow 3 \\ & Reg\_B \leftarrow 2 \\ & ADD\_B \\ & Reg\_A \leftarrow -3 \\ & MUL\_B \\ & ... \end{aligned} $$ |
219219
220220Für diesen Schritt fassen wir das obige Schaltbild unserer hypothetischen ALU mit 8 Funktionen in einem abstrakteren Schaubild zusammen.
221221
@@ -239,7 +239,7 @@ ditaa
239239
240240
241241| Bezeichnung | Bedeutung |
242- | ----------- | --------------------------------------- |
242+ | ------------- | ----------------------------------------- |
243243| A, B | Datenregister |
244244| Daten | Zugriff auf die Datenregister |
245245| Kontrolle | Steuerleitungen $F_0$ bis $F_2$ und $Z$ |
@@ -344,12 +344,12 @@ Wir lösen uns von dem Zugriff auf die Kontrollbits und etablieren abstrakte Bef
344344
345345Zwischenstand
346346
347- | Stufe | Funktionalität | Wunschzettel |
348- | ----- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
349- | 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
350- | 1 | Arithmetische Einheit mit mehren Funktionen und wählbarem Ergebnisregister $\color{green} \mathbf{✓}$ | |
351- | 2 | Sequenz von Berechnungsfolgen $\color{green} \mathbf{✓}$ | |
352- | 3 | | Freie Definition von Operanden $\color{red} \mathbf{?}$ $$ \begin{aligned} & \color{red}{Reg\_A \leftarrow 3} \\ & \color{red}{Reg\_B \leftarrow 2} \\ & ADD\_B \\ & \color{red}{Reg\_A \leftarrow -3} \\ & MUL\_B \\ & ... \end{aligned} $$ |
347+ | Stufe | Funktionalität | Wunschzettel |
348+ | ------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
349+ | 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
350+ | 1 | Arithmetische Einheit mit mehren Funktionen und wählbarem Ergebnisregister $\color{green} \mathbf{✓}$ | |
351+ | 2 | Sequenz von Berechnungsfolgen $\color{green} \mathbf{✓}$ | |
352+ | 3 | | Freie Definition von Operanden $\color{red} \mathbf{?}$ $$ \begin{aligned} & \color{red}{Reg\_A \leftarrow 3} \\ & \color{red}{Reg\_B \leftarrow 2} \\ & ADD\_B \\ & \color{red}{Reg\_A \leftarrow -3} \\ & MUL\_B \\ & ... \end{aligned} $$ |
353353
354354Wo kommen aber die Daten her? Bislang haben wir uns damit begnügt anzunehmen, dass diese auf "magische" Art und Weise in unseren Registern stehen.
355355
@@ -381,7 +381,7 @@ Im Speicher stehen nun nicht nur Befehle für die Ausführung unserer ALU-Funkti
381381
382382<!-- data-type="none" -->
383383| Befehle | Codierung | Bedeutung |
384- | ------------- | ---------------- | --------------------------------------------------- |
384+ | --------------- | ------------------ | ----------------------------------------------------- |
385385| ` OR_A ` | $0000$ bisher(!) | Logisches Oder |
386386| | .... | |
387387| ` LDA Adresse ` | $10000$ | Laden der Daten von der Adresse X in das Register A |
@@ -392,7 +392,7 @@ Im Speicher stehen nun nicht nur Befehle für die Ausführung unserer ALU-Funkti
392392Damit nimmt der Aufwand im Steuerwerk nochmals signifikant zu! Neben dem Adressbus besteht nun ein Datenbus als weiterer Kommunikationspfad.
393393
394394| Schritt | Vorgang |
395- | ------- | ------------------------------------------------------------------------------------- |
395+ | --------- | --------------------------------------------------------------------------------------- |
396396| 0 | Lesen eines Befehls aus dem Speicher |
397397| 1 | Erkennen, dass es sich um ein ` LDA ` handelt - Eine Berechnung ist nicht erforderlich. |
398398| 2 | Verschieben des Adresszählers auf die nächste Speicherstelle |
@@ -406,12 +406,12 @@ Damit nimmt der Aufwand im Steuerwerk nochmals signifikant zu! Neben dem Adressb
406406Zwischenstand
407407
408408| Stufe | Funktionalität | Wunschzettel |
409- | ----- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
409+ | ------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
410410| 0 | Addition/Subtraktion von einzelnen Werten $\color{green} \mathbf{✓}$ | |
411411| 1 | Arithmetische Einheit mit mehren Funktionen und wählbarem Ergebnisregister $\color{green} \mathbf{✓}$ | |
412412| 2 | Sequenz von Berechnungsfolgen $\color{green} \mathbf{✓}$ | |
413- | | Darstellung von Programmen als Sequenzen abstrakter Befehle $\color{green} \mathbf{✓}$ | |
414- | 3 | Flexibler Zugriff auf Daten und Programme im Speicher $\color{green} \mathbf{✓}$ | |
413+ | | Darstellung von Programmen als Sequenzen abstrakter Befehle $\color{green} \mathbf{✓}$ | |
414+ | 3 | Flexibler Zugriff auf Daten und Programme im Speicher $\color{green} \mathbf{✓}$ | |
415415| | | Ein- und Ausgabe von Daten wäre schön $\color{red} \mathbf{?}$ |
416416
417417
0 commit comments