Steuereinheit:
Befehlsdekodierer
Funktionsdekodierer
Befehlsdekodierer
Funktionsdekodierer
Registersatz
ALU
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Befehlsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer
Func
ALU-Op
ALU-Operation
Registersatz
Lese-Daten-1
Lese-Daten-2
Schreibedaten
Lese-Register-1
Lese-Register-2
Schreiberegister
WE
Datenspeicher
Lesedaten
Schreibedaten
Addresse
WE
Befehlsspeicher
Leseaddresse
Lesedaten
Befehlsspeicher
PC (t)
PC (t+1)
AND
PCSrc
ALUOp Func ALU-Operation
00 x 010 - add
01 x 110 - sub
10 100 000 010 - add
10 100 010 110 - sub
10 100 100 000 - and
10 100 101 001 - or
10 101 010 111 - slt
11 n/a
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Einzyklus
Zustandselemente
Datenpfade
Steuereinheit
Vor und Nachteile
Mehrzyklus
Funktionsweise
Vor und Nachteile
Piplening
Pipeline-Prinzip
Pipeline-Stufe
Pipeline-Konflikt
MIP-Pipeline
Datenkonflikt
Steuerflusskonflikt
Struktur und Ressourcenkonfikt
2^5 = 32
32-Bit Bus
5 Bit Bus
PC: Programm Counter
32 Bit Register
Wird nach jedem Taktzklus erhöht
wird um 4 Erhöht
32x32-Bit Registersatz
2 Lese Port
1 Schreibport
5 Bit Bus zur Addressierung
Func
00 add
01 sub
10 nutze das func feld
11 n/a
ALU-Op
100 000 - add 4 0
100 010 - sub 4 2
100 100 - and 4 4
100 101 - or 4 5
101 010 - slt 5 2
ALU-Operation
010 add
110 sub
000 and
001 or
111 slt
Datenkonflikt
Steuerflusskonflikt
Struktur und Ressourcenkonfikt
RAW - Read after Write: Echte Datenabhängigkeit - True Dependency
WAW - Ausgabeabhängigkeit - Output Dependency
WAR - Gegenabhängigkeit - Anti Dependency
SSI Small Scale Integration
MIS Medium Scale Integration
LSI Large Scale Integration
VLSI Very Large Scale Integration
ULSI Ultra Large Scale Integration
SLSI Super Large Scale Integration
ELSI Extra Large Scale Integration
Lade- und Speicherarchitektur
Speicher- Speicherachitektur
Register- Speicherarchitektur
Stack und Kellerarchitektur
Akkumulatorarchitektur
sll shift logical left
slr shift logical right
sar shift arithmetic right
rol rotate left
ror rotate right
Dreiaddressformat opcode src1 src2 dest
Zweiaddressformat opcode src1 src2/dest
Einaddressformat opcode src
Nulladdressformat opcode
if instruction fetch
id instruction decode
ex execute
mem memory access
wb write back
r-typ
i-typ
j-typ
r-typ
opcode
src1
src2
dest
sa
func
i-typ
opcode
src1
dest
immidiate
j-typ
opcode
target address
r-typ
31:26 opcode
25:21 src1
20:16 src2
15:11 dest
10:6 sa
5:0 func
i-typ
31:26 opcode
25:21 src1
20:16 dest
15:00 immidiate
j-typ
31:26 opcode
25:0 target address
Multiplexer 1: Eingang: ALU, Datenspeicher, Ausgang: Register-Satz
Multiplexer 2: Eingang: Addierer1, Addierer2, Ausgang: Befehlszähler
Multiplexer 3: Eingang: Registersatz, Vorzeichenerweiterungseinheit, Ausgang: ALU
Multiplexer 4: Eingang: Befehlswort, Befehlswort, Ausgang: Registersatz
Multiplexer 1: Eingang: ALU, Datenspeicher, Ausgang: (Schreibedaten, Register-Satz)
Multiplexer 2: Eingang: Addierer1, Addierer2, Ausgang: (PC(t), Befehlszähler)
Multiplexer 3: Eingang: (Registersatz, Lesedaten-2), Vorzeichenerweiterungseinheit, Ausgang: ALU
Multiplexer 4: Eingang: (Befehlswort, 20:16), (Befehlswort, 15:11), Ausgang: (Schreiregister, Registersatz)
1.) Befehlszähler
2.) Befehsspeicher
3.) Vorzeichenerweiterungseinheit
4.) 2 Bit Shifter
5.) Addierer
6.) Multiplexer
7.) Befehlsspeicher
Befehlsspeicher, opcode - 31:26 => Befehlsdekodierer
Befehlsspeicher, src1 - 25:21 => Leseregister-1
Befehlsspeicher, src2 / Befehlsspeicher, dest => Leseregister-1/Schreiberegister, Registersatz
Befehlsspeicher, dest - 15:11 => Schreiberegister, Registersatz
Befehlsspeicher, immidiate 15:00 => Vorzeichenerweiterungseinheit
Befehlsspeicher, 5:0 => func, Funktionsdekodierer
i1: addi $t1, $t2, 3
i2: add $t4, $t1, $t3
i3: subi $t3, $t5, 5
i4: subi $t3, $t6, 6
Mehrzyklus:
i1: (0, if), (1, id), (2, ex), (3, mem), (4, wb, i1 liest von $t1)
i2: (5, if), (6, id, i2 liesst von $t1), (7, ex), (8,mem), (9, wb)
Pipelining:
i1: (0, if), (1, id), (2, ex), (3, mem), (4, wb, i1 liest von $t1)
i2: (0, _), (1, if), (2, id, i2 liesst von $t1), (3, ex), (4,mem), (5, wb)
if id ex mem wb
if id ex mem wb
Vollassoziativen Cache
Direkt abgebildeten Cache
n-wege Satzassoziativen Cache
ortsaddressiert
inhaltsaddressiert
zeitliche lokalität: temporale lokalität
örtliche Lokalität: spaziale Lokalität
Tag
Cache-Zeile
Cache-Block
Satz
Eine Cache-Zeile umfasst mehrere oder einen Cache-Block
Ein Satz ist das Datum, was in einem Cache-Block steht
Eine Cache-Zeile kann in jedem der Cache-Blöcke der Sätze stehen, ...
.. aber immer nur jeweils in einem konkreten Satz
Vollassoziativ:
1.) Tag
2.) Byte-Auswahl
Direkt Abgebildet/n Wege Satzassoziativ
1.) Tag
2.) Index
3.) Byte-Auswahl
1.) Cache-Konsistenz
2.) Cache-Kohärenz
1.) FIFO - First in First Out
2.) LRU - Least Recently Used: der älteste
3.) LFU - Least Frequently Used: der am wenigsten häufigste
4.) RAND
1.) Durchschreibeverfahren: Beide
2.) Umschreibeverfahren: RAM
3.) Rückschreibeverfahren: Cache
MESI
Zustand M: Modified
Zustand E: Exclusive
Zustand S: Shared
Zustand I: Invalid
Exclusive Modified
Exclusive Unmodified
Shared Unmodified
Invalid
RH: Read Hit
WH: Write Hit
WM: Write Miss
RME: Read Miss Exclusive
RMS: Read Miss Shared
SHR: Snoop Hit on Read
SHW: Snoop Hit on Write
Schaltnetze
Schaltwerke
Komplexe Schaltwerke
Aufbau und Funktionsweise eines Computers
Schaltnetze
Boolesche Algebra
Definition der Booleschen Algebra
Schaltalgebra, ein Modell der Booleschen Algebra
Schaltalgebra
Definition
Darstellung
Minimierung
Analyse von Schaltnetzen
Synthese von Schaltnetze
Kodierer
Schaltnetzentwurf für die 8421-BCD- zu Siebensegmentumsetzung
Schaltnetzentwurf für den Addresskodierer
Addierer
Halbaddierer
Volladdierer
Paralleladdierer
Komperatoren
Multiplexer
ALU
Zahlendarstellung und Zweierkomplement
Addierer/Subtrahierer
Schaltnetze mit Programmierbaren Logikbau
ROM: Festverdrahtete UND gefolgt von Programmierbarer ODER
PROM: Festverdrahtete UND gefolgt von Programmierbarer ODER
EPROM: Festverdrahtete UND gefolgt von Programmierbarer ODER
EEPROM: Festverdrahtete UND gefolgt von Programmierbarer ODER
PLA: Programmierbare UND Matrix gefolgt von Programmierbarer ODER Matrix
PAL: ODER Struktur Fest verdrahtet
Schaltwerke
Modelle für Schaltwerke
Implementierung von Schaltwerken
Synthese von Schaltwerken
Analyse von Schaltwerken
Komplexes Schaltwerk und Mikroprozessor
Speicherglieder
Transformation Mealy und Moore Automat
Binär Codierte Schaltwerke
Komplexes Schaltwerk
Aufbau komplexer Schaltwerke
Entwurf komplexer Schaltwerke
RTL-Notation
ASM-Diagramme
Zustandsboxen
Entscheidungsboxen
bedingte Ausgangsboxen
ASM-Block
Konstruktionsregeln für Operationswerke
Entwurf des Steuerwerks
Beispiel 1en Zähler
Lösung mit Komplexen Mealy Schaltwerk
Lösung mit komplexen Moore Schaltwerk
Kinstruktionsregeln für Operationswerke
Mealy Steuerwerk als konventionelles Schaltwerk
Mealy Steuerwerk mit HotOne Kodierung
Moore Steuerwerk als konventionelles Schaltwerk
Moore Steuerwerk mit HotOne Kodierung
Mikroprogrammierte Steuerwerke
Aufbau und Funktionsweise eines Computers
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
Rechenwerk
Leitwerk
Speicher
Ein und Ausgaben
Interne und Externe Busse
Prozessoregister
Anwendung des Stapelzeigers
Unterprogramme
Unterbrechungen (Interrupts)
Rechenwerk
Daten und Addressregister
Datenpfade
Schiebemultiplexer
arithmetische Operationen
logische Operationen
Statusflags
Leitwerk
Mikropgrammierung
Mikrobefehlsformat
Schaltnetz: Elektrische Schaltung die Spannung als logische Variablen 0 und 1 interpretiert
Schaltnetz: DIN 44300/93
Boolesche Algebra/Schaltalgebra
Verknüpfungsglied
Schaltfunktion
Eingangsvariablen
Ausgangsvariablen
Eingangsvektor
Ausgangsvektor
Eingangsvariablen x1, x2, ..., xn
Schaltfunktion: f:{0,1}^n -> {0,1}^m
Schreibweise in Komponentendarstellung
Eingangsvektor
Schaltnetz
Ausgangsvektor
Boolesche Algebra: Hat algebraische Struktur
Schaltalgebra ein Modell der Booleschen Algebra
Schaltalgebra ist Boolesche Algebra über der Menge B={0,1}
Verknüpfungsglied:
wedge vee
Gesetze
Kommutativgesetz
Assoziativgesetz
Dualitätsprinzip
De Morgansche Regeln
Absorbition
Assoziativ
Neutrales Element
Inverses Element
Schaltalgebra
Verknüpfung wedge vee
Menge B={0,1}
Es gelten die Gesetze der Booleschen Algebra
Verknüpfungen
Konjunktion: AND
Disjunktion: OR
NAND
NOR
Implikation
Indikation
Transfer
Antivalenz
Inhibition
Komplement
Eins
Null
Schaltfunktion: DIN 44300/87
Schaltnetz: DIN 44300/93
Kodierer: DIN 44300/118
Dekodierer: DIN 443000/121
Kodierer: Zuordnung des Zeichen eines Zeichenvorrats zu derjenigen eines anderen Zeichenvorrats
Dekodierer: Kodierer mit mehreren ein und Ausgängen, bei denen für jede Kombination von Eingangssignalen immer nur je ein Ausgang ein Signal abgibt
Komperatoren, Rechenelemente: DIN40700
Volladdierer
S = A XOR B XOR C
U = A AND B OR A OR B AND C
PLHS 18P8
Schaltwerke
Zustände
Zustandsgraph
Eine Ampel zeigt normalerweise auf rot. Drückt man den knopf geht sie auf grün. Verbleibt dort für 3s und wechselt wieder auf rot
Knoten
Knoten des Graphen
Knoten des Graphen sind die Zustände des Schaltwerks
Eingehende Kante
Ausgehende Kante
Eingabe i
Ausgabe o
i/o durch Schrägstrich getrennt
Signal: eingabe: Knopf
Signal: Farbe 0 rot 1 grün
z0->z0
z0->z1
z1->z0
z0->z0
z0->z1
z1->z2
z2->z0
Takt
Taktsignal
Taktdauer
Taktdauer: Länge jedes Taktes
Taktsignal: Steigende Flanke beim Takt
Normalerweise sind die Schritte eines Schaltwerks gleich lang
Knopf nicht gedrückt Ampel rot
Knopf gedrückt Ampel rot
Ampel rot
Ampel grün
z0+ := z0 AND NOT Knopf OR z2
z1+ := z0 AND Knopf
z2+ := z1
Farbe := z0 AND Knopf OR z1 OR z2
n-Bit-Register
n Dateneingänge
n Datenausgänge
CLK oder Steuereingang oder Taktsignal
Die Zustände des Schaltwerks sind von 0 beginnend, konsekutiv nummeriert und unär kodiert
Im Zustand i hat genau Bit i den Wert 1 alle anderen Bit haben den Wert 0
Die Rot Phase von 3s
gefolgt von einer Gelbphase von 1er s
Die Grünphase mindestens 2s
kann auf 5s verlängert werden
ro: rot
ge: gelb
gr: grün
Speicherglied
x NOR 0 = NOT x
x NOR 1 = 0
Q := R NOR Q'
Q' := S NOR Q
Wirkintervall: Setzzeit + Haltezeit
Kippintervall: die zeit die das Dateneingangssignal mindestens braucht am Ausgang zu erscheinen
Setzzeit: Setup-Time: Die Zeit in der das Signal vor der Taktflanke stabil sein muss
Haltezeit: danach
CLK, R, S, Q, NOT Q
ENABLE, D, CLK, Q, NOT Q
ENABLE, CLK
RTL-Notation: register transfer Level
R: Allzweckregister
AR: Address Register
PC: Programm Counter
IR: Instruction Register
M []: Arbeitsspeicher
IR <- M [PC], PC <- PC + 1
R2(7:0)
Randbits
Most Significant Bit: MSB - 2^7 das linke bit
Least Significant Bit: LSB - 2^0 - das rechte Bit
ASM: Algorithmic State Machine
RTL-Notation
Logisch
NOT
AND
OR
EXOR
Arithmetisch
Addition +
Inkrement ++
Subtraktion -
Dekrement --
Einerkomplement
Schieben und Konkatenation
Schiebe um n bit nach rechts << n
Schiebe um n bit nach links >> n
Rotiere um n bit nach rechts: Geschweifter Pfeil nach recht n
Rotiere um n bit nach links: Geschweifter Pfeiil nach links n
Verbinde zwei Vektoren zu grössem Vektor ||