Skip to content

SebastianZug/Lia_Gatter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 

Repository files navigation

Von der Gatterlogik zu Modell-CPU

Prof. Dr. Sebastian Zug

  1. April 2019
section .data
  hello:     db 'Probevorlesung TI',10
  helloLen:  equ $-hello          

section .text
	global _start

_start:
	mov eax,4       
	mov ebx,1            
	mov ecx,hello       
	mov edx,helloLen    
	int 80h             
	mov eax,1            
	mov ebx,0           
	int 80h;

@Rextester.eval(@Nasm)

Die interacktive Version des Vortrages findet sich unter LiaScript


1 - Prüfungsfrage(n) zur letzten Veranstaltung

Beschreiben Sie die Wertetabelle eines Volladierers und skizzieren Sie desses Gatterlogik!

                                {{0-1}}

$a$ $b$ $c_{in}$ $s$ $c_{out}$
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1


                                {{0-2}}

Volladdierer, zusammengesetzt aus zwei Halbaddierern, sowie 4 Bit Addierwerk mit Fortschreibung des Carrys.

Addierer WikiAdd


                                  {{1}}

         "8"   "4"   "2"   "1"
 "S"      l     l     l     l
          ^     ^     ^     ^
    l<o<a e o<a e o<a e o<a e s
      ^ ^^^/^ ^^^/^ ^^^/^ ^^^/
      a e * a e * a e * a e *
      ^^^   ^^^   ^^^   ^^^
      * *   * *   * *   * *
 "A"  s *   s *   s *   s *    
        *     *     *     *
 "B"    s     s     s     s

Dokumentation und Beispiele unter Link


2 - Zielstellung 1 ... Variable Operationen

                                {{0-1}}

Realisierte Features Wunschliste
1. Addition von einzelnen Werten



Flexibles Handling für mehrere Operationen
* Logische Funktionen: NOT, AND, OR, EXOR
* Arithmetische Funktionen: ADD, SUB, (MUL), (DIV)
* Sonstige: SHIFT LEFT, SHIFT RIGHT

                                  {{1}}

ALU

Funktion Ziel Bemerkung
0 0 0 0 OR_A
0 0 0 1 OR_B
...
0 1 0 0 EOR_A
0 1 0 1 EOR_B
0 1 1 0 ADD_A
0 1 1 1 ADD_B
...

                                {{2}}

Frage: Welche Anwendungsfälle verbergen sich hinter der mehrfachen Ausführung folgender Konfigurationen der Steuerleitungen?

// Reg_A = 1; Reg_B = 0;
// Fall 1                         // Fall 2
   0 1 1 1                        0 1 0 1
   ...                            ...

3 - Zielstellung 2 ... Folgen von Operationen

                                {{0-1}}

Realisierte Features Wunschliste
1. Addition von einzelnen Werten
2. Arithmetische Einheit mit mehren Funktionen
und wählbarem Ergebnisregister





Sequenzen von Berechnungsfolgen

Reg_A <- 3
Reg_B <- 2
ADD_A
MUL_B

(3 + 2) x 2 = ?

                                {{1-3}}

  • Integration eines Speichers für die Konfigurationssequenzen
  • „Counter“ für die Konfiguration des Fortschritts im Ablauf – Inkrementierung einer Adresse

ExtendedALU


                                {{2}}

Und wie greifen wir auf die Daten zu?

Busszugriff


4. - Zielstellung 3 ... Daten und abstrakte Befehle

                                {{0-1}}

Realisierte Features Wunschliste
1. Addition von einzelnen Werten
2. Arithmetische Einheit mit mehren Funktionen
3. Sequenzen von Berechnungsfolgen







Und die Daten? Wie können wir hier die
notwendige Variabilität sicherstellen?

Reg_A <- 3
Reg_B <- 2
ADD_B
Reg_A <- 4
MUL_B

(3 + 2) x 4 = ?

                                {{1-3}}

Das flexible Laden von Daten aus dem Speicher setzt voraus, dass ALU Konfigurationen und Daten gemischt werden! Zugleich wächst die Zahl der Steuerleitungen immer weiter an.

Wir brauchen eine neue Abstraktionsebene und eine Interpretationskomponente!

ExtendedArchitecture


                                {{2}}

Aus dem spezifischen Mustern von Konfigurationsflags werden damit abstrakte, generische Befehle.

000   LDA 	Adresse	  //Load A from Memory Address
001   STA 	Adresse	  //Store A to Memory Address
010   ADD	  Rn        // ADD Operation
011   EOR		Rn        // Exor Operand
100   AND	  Rn      	// AND Operand
101   OR		Rn     	  // OR Operand
…

5. - Zielstellung 4 ... Daten und abstrakte Befehle

                                   {{0-2}}

Realisierte Features Wunschliste
1. Addition von einzelnen Werten
2. Arithmetische Einheit mit mehren Funktionen
3. Sequenzen von Berechnungsfolgen
4. Programmen als Sequenz abstrakter Befehle
5. Flexibler Zugriff auf Daten und Befehle
Ein- und Ausgabe von Daten (Nutzerinteraktion) wäre schön





                                  {{1-2}}

Das Steuerwerk koordiniert neben der ALU die Ein- und Ausgabeschnittstelle

WholeArchitecture


6. Fragen an die heutige Veranstaltung

Welche Art von Architektur liegt am Ende unserers Entwicklungsprozesses vor?

[( )] von Neumann
[(X)] Harvard
[[?]] Ich verwechsle es auch immer :-)

Der Befehlssatz einer (Modell)-CPU umfasst 27 Befehle. Wie viele Bit muss die korrespondierende OP-Code Repräsentation mindestens umfassen?

[[5]]
[[?]] Mit welcher Potenz von zwei werden 27 Zustände abgedeckt?

...

Anhang

Link auf die aktuelle Vorlesung im Versionsmanagementsystem GitHub

https://github.com/SebastianZug/Lia_Gatter

Beteiligen Sie sich an der Weiterentwicklung der Materialien!

ScreenShotAtom

Referenzen und Literaturhinweise

[WikiAdd] Wikipedia, "Addierwerk", Von 30px MovGP0 - selbst erstellt mit Inkscape, CC BY-SA 2.0 de, https://commons.wikimedia.org/w/index.php?curid=22912742

Autoren

Sebastian Zug,

... und vielleicht morgen Sie?

Vielen Dank für die Aufmerksamkeit

About

Von der Gatterlogik zur Modell-CPU

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published