lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
move
add, addi, addiu
sub, subi
mult, multu
div, divu
Arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Transferbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Programmsteuerbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Stack und Kellerarchitektur
Lade- und Seicherarchitektur
Speicher- Speicherarchitektur
Register- Speicherarchitektur
Akkumulatorarchitektur
Stackarchitektur: 8087, Intel, ATAM 862 Atmel
Speicher- Speicherarchitektur: TI9900 Texas Instruments
Little-Endian: Falsch rum
Big-Endian: Richtig rum
Byte
Halbwort
Wort
Doppelwort
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: einfach
64: doppelt
80: erweitert
Unmittelbare Addressierung - Immidiate
Register-Addressierung
Absolute Addressierung
Direkte Addressierung
Indirekte Addressierung
Indirakte Addressierung mit Autoinkrement/Dekrement
Indirakte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressiernug mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
Befehlsdekodierer:
1.) MemToReg
2.) MemWrite
3.) Branch
4.) ALU-Src
5.) ALU-Op
6.) RegDst
7.) RegWrite
Funktionsdekodierer
1.) Func
2.) ALU-Op
3.) ALU-Operation
1.) Befehlsdekodierer
2.) Funktionsdekodierer
3.) Registersatz
4.) ALU
5.) Datenspeicher
6.) Befehlsspeicher
7.) Befehlszähler
8.) Vorzeichenerweiterungseinheit
9.) 4 x DeMUX
10.) 1 x AND
11.) 2 x Addierer
12.) 1 x 2 Bit Shifter
Befehlsdekodierer
1.) MemToReg
2.) MemWrite
3.) Branch
4.) ALU-Src
5.) ALU-Op
6.) RegDst
7.) RegWrite
Funktionsdekodierer
1.) Func
2.) ALU-Op
3.) ALU-Operation
Registersatz
1.) Lese-Daten-1
2.) Lese-Daten-2
3.) Schreibedaten
4.) Lese-Register-1
5.) Lese-Register-2
6.) Schreiberegister
7.) WE
Datenspeicher
- Lesedaten
- Schreibedaten
- WE
- Addresse
ALU
- ALU-Ergebnis
- Null
Befehlsspeicher
- Leseaddresse
- Lesedaten
Befehlszähler
- PC (t)
- PC (t+1)
AND:
- PCSrc
ALU-Op Func ALU-Operation
00 x 010 - add
01 x 110 - sub
10 100 000 - add 010 - add
11 x x
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
1.) Absolut = Brachh
2.) Befehlszählerrelativ = Jump
3.) Befehlszählerindirekt = Jump Register
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equal
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & 0xf000 0000 | (i << 2)
j, b, jr
jal, jalr
beq, bne
beqz, bnez
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
JAL: Jump And Link
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereit stellen
4.) Operation in der ALU ausführen
5.) Opranden in Architekturregister zurückschreiben
IF
ID
EX
MEM
WB
IF - Instruction Fetch
ID - Instruction Decode / Register Fetch
EX - Execute / Address Calculation
MEM - Memory Acess
WB - Write Back
Datenkonflikte
Steuerflusskonflikte
Struktur und Ressourcenkonflikt
In Order Issue In Order Completion
Out Of Ordrer Issue Out Of Order Completion
1.) Statische Sprungvorhersage durch die Hardware
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken / Forward Not Taken
2.) Dynamisch - ein und zwei Bit Prädiktor
2.1.) Taken, Not Taken
2.2.) Strongly / Weakly, Taken / Not Taken
1.) Schaltnetze
2.) Schaltwerke
3.) Komplexe Schaltwerke
4.) Aufbau und Funktionsweise des Computers
Schaltnetze
Boolesche Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Algebra
Schaltfunktion
Definition
Darstellung
Minimierung
Analyse von Schaltnetzen
Synthese von Schaltnetzen
Kodierer
Schaltnetzentwurf für die 8421-BCD- zu Siebensegmentumsetzung
Schaltnetzentwurf für den Addresskodierer
Addierglieder
Halbaddierer
Volladdierer
Paralleladdierer
Komperatoren
Multiplexer
ALU
Zahlendarstellung und Zweierkomplemnt
Addierer / Subtrahier
Schaltnetze mit Programmierbaren Logikbausteinen
ROM
PROM: Festverdrahtete UND Programmierbare ODER
EPROM: Festverdrahtete UND Programmierbare ODER
EEPROM: Festverdrahtete UND Programmierbare ODER
PLA: Programmierbare UND Matrix gefolgt von Programmierer ODER Matrix
PAL: ODER struktur festverdrahte, Programmierbare UND
GAL
PLD
CPLD
FPGA
ASIC
PLHS18P8
GAL20v1??
Schaltwerke
Implementierung von Schaltwerken
Modelle für Schaltwerke
Synthese von Schaltwerken
Analyse von Schaltwerken
Komplexe Schaltwerke und Mikroprozessor
Speicherelemente
Transformation Mealy und Moore
...
Komplexe Schaltwerke
Aufbau komplexer Schaltwerke
Entwurf komplexer Schaltwerke
RTL-Notation
ASM-Diagramme
Zustandselemente
Bedingte Entscheidungsboxen
ASM-Diagramme
Konstruktionsregeln für Operationswerke
Aufbau des Steuerwerks
Beispiel 1en Zähler
Lösung mit Komplexen Moore Schaltwerk
Lösung mit komplexem Mealy Schaltwerk
Aufbau des Operationswerks
Mealy Schaltwerk als Konventionelles Schaltwerk
Mealy Schaltwerk mit HotOne Kodierung
Moore Steuerwerk als konventionelles Schaltwerk
Moore Steuerwerk mit HotOne Kodierung
Mikroprogrammierte Steuerwerke
Aufbau und Funktionsweise des Computers
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
Rechenwerk
Leitwerk
Speicher
Ein und Ausgaben
Interne und Externe Busse
Programmzähler
Anwendung des Stapelzeigers
Unterprogramme
Unterbrechungen Interrupts
Rechenwerk
Daten und Addressregister
Datenpfade
Schiebemultiplexer
Arithmetische Operationen
Logische Operationen
Statusflags
Leitwerk
Mikroprogrammierung
Mikrobefehlsformat
Schaltnetze: Elektronische Schaltungen, die Spannungen als logische Variablen 0 und 1 interpretieren
Schaltnetze: DIN44300/93
Boolesche Algebra/Schaltalgebra
Schaltfunktion, Vektorfunktion
Schaltglied
f:{0,1}^n -> {0,1}^m
Eingangs und Ausgangsvariablen
Eingangsvektor
Eingangsvariablen: x0, x1, ..., xn
Schreibweise in Komponentendarstellung
Boolesche Algebra ist eine algebraische Struktur
Schaltalgebra ein Modell der Booleschen Algebra
Schaltalgebra ist Boolsche Algebra über der Menge B={0,1}
1.) Verknüfungen
1.1.) wedge/vee
1.2.)
Kommutativgesetz
Assoziativgesetz
Distributivgesetz
Absorbtionsregeln
Dualitätsprinzip
De Morgansche Regeln
Neutrales Element
Inverses Element
Verküpfungen
AND - Konjunktion
OR - Disjunktion
Antivalenz
Äquivalenz
NAND
NOR
Inhibition
Transfer
Implikation
Eins
Null
Schaltfunktion: DIN44300/87
Schaltnetz: DIN44300/93
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
Kodierer: DIN44300/118
Dekodierer: DN44300/121
Volladdierer:
C = A XOR B XOR C
U = A AND B OR (A OR B) AND C
PLHS 18P8
Grundverknüpfung: DIN40700
Ampelschaltung: 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
Signal: Knopf, Eingabe
Signal: Ausgabe, Farbe: 0, rot, 1, grün
Signal: Takt
Das Signal des Takts kommt mit Taktflanke
Zustand
Kante
Gerichtete Kante
Eingehende Kante
Ausgehende Kante
Knoten
Eingabe Markierung: i
ausgabe Markierung: o
i/o:
Za, Zb
Zbo
Zbo1, Zbo2, Zbo3
o1, o2, o3
z0, z1, z2
z0+, z1+, z2+
zw+
Ampel
z0+ = z0 AND NOT Knopf OR z2
z1+ = z0 AND Knopf
z2+ = z1
Farbe = z0 AND Knopf OR z1 OR z2
Zustand Eingabe Ausgabe Folgezustand Codierung Folgezustand
z0+, z1+, z2+
Flip Flop:
Q := R NOR Q'
Q' := S NOR Q
1.) Wirkintervall
2.) Kippinteervall
1.) Kippintervall := Solange wie das Signal mindestens oder längsten bis zum Erscheinen am Ausgang braucht
2.) Wirkintervall: Setzzeit, Haltezeit
Setzzeit: Setupuptime - Solange das Signal vor der steigenden Taktflanke stabil sein muss
Haltezeit: Nach der Steigenden Taktflankge
CLK, Enable
CLK, Enable, D
CLK, Enable, R, S
RTL-Notation: register transfer Level
Logische Operation
NOT
AND
OR
EXOR
Arithmetische Operation
Addition +
Inkrement ++
Subtraktion -
Dekrement --
Einerkomplement
Bitweise und Kokatenation
Rechtsschieben, um n bit >> n
Linksschieben, um n bit << n
Rotation linsk: Geschweift <-
Rotation Rechts: Geschweift ->
Verkettung, Konkatenation ||
Register
R2(0:7)
AR(0:7)
IR: Instruction Register
PC: Programmcounter
M: Arbeitsspeicher
IR <- M [PC++], PC <- PC + 1
ASM-Diagramme: Algorithmic State Chart
Übergangsschaltnetzf für z0+ -> 3 Bit Register -> Ausgangsschaltnetz für z0
Übergangsschaltnetzf für z1+ -> 3 Bit Register -> Ausgangsschaltnetz für z1
Übergangsschaltnetzf für z2+ -> 3 Bit Register -> Ausgangsschaltnetz für z2
1.) Dekodierer
2.) Encoder
1.) Die Zustände sind von 0 beginnend, konsekutiv nummeriert und unär kodiert
2.) n bit Register, Register i - steht für Zustand i - i hat den Wert 1 alle anderen den Wert 0, zustände 0 bis n-1
John v. Atanasoff,
Charlage Babagge
Alan Turing
John von Neumann
Conrad Zuse
Einzyklus Mikroarchitektur
Zustandselemente
Datenpfade
Steuereinheit
Vor und Nachteile
Mehrzyklus Mikroarchitektur
Funktionsweise
Vor und Nachteile
Pipeline Mikroarchitektur
Pipeline-Prinzip
Pipeline-Stufen
MIPS-Pipeline
Pipeline-Konflikte
Datenkoflikte
Steuerflusskonflikte
Struktur und Ressourcenkonflikte
PC:
32 Bit Register
Wir nach Taktzyklus inkrementiert
Wird um 4 inkrementiert
32x32 Bit Registersatz
2 Lese und Schreibport
2^5 = 32
5-Bit Bus
32-Bit Bus
Funktionsdekodierer Func: 6 Bit
ALU-Op im Befehl für Befehlsdekodierer, Teil von OpCode
00 add
01 sub
10 nutze das Func Feld
11 n/a
Func
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 - set less than
Befehl:
R-Typ
I-Typ
J-Typ
R-Typ: add, sub, and, or, slt
R-Typ-Befehle - Register
op: Bit 31 bis 26
rs: Bit 25 bis 21
rt: Bit 20 bis 16
rd: Bit 15 bis 11
sa: Bit 10 bis 6
func: Bit 5 bis 0
31, 25, 20, 15, 10, 5
I-Typ - immidiate
op: Bit 31 bis 26
rs: Bit 25 bis 21
rt: Bit 20 bis 16
immidiate: Bit 15 bis Bit 0
J-Typ: Jump
op: Bit 31 bis Bit 26
target address: Bit 25 bis Bit 0
rs, rt: Source
rd: Destination
Echte Datenabhängigkeit: ED - RAW - Read after Write
Gegenabhängigkeit: WAR -
Ausgabeabhängigkeit: WAW - Schreibe nach Schreibekonflikt
Func: Bit 5 bis bit 0 Opcode
Befehl, op: Bit 31 bis 26
rs-Feld: Bit 25 bis 21
rt-Feld: Bit 20 bis 16
Multiplexer: Bit 15 bis 11, für RD-Feld
SSL Small Scal Integration
MSL Medium
LSL Large
VUSE
Very Large
Ultra Large
Super Large
Extra Large
Giga Large
1.) Statische Daten
2.) Dynamische Daten (Heap)
3.) Stack
4.) Bereich für die E/A
ssl - shift logical left
slr - shift logical right
sar - shift arithmetic right
rol - rotate left
ror - rotate right
I1: 0 - IF, 1 - ID, 2 - EX, 3 - MEM, 4 - WB
I2: 5 - IF, 6 - ID, 7 - EX, 8 - MEM, 9 - WB
I1: 0 - IF, 1 - ID, 2 - EX, 3 - MEM, 4 - WB
I2: 0 - Nl, 1 - IF, 2 - ID, 3 - EX, 4 - MEM, 5 - WB
I1: 0 - IF, 1 - ID, 2 - EX, 3 - MEM, 4 - WB (I1 schreibt in $t1)
I2: 0 - Nl, 1 - IF, 2 - ID (I1 liesst von $t1), 3 - EX, 4 - MEM, 5 - WB
MESI:
M: Modified
E: Exclusive
S: Shares
I: Invalid
Durchschreibeverfahren
Rückschreibeverfahren
Umschreibeverfahren
Unmodified x2
Snoop hit on Write
Snoop hit on Read
RH: Read Hit
WM: Write Miss
RM: Write Miss
Vollassoziativer Cache-Speicher
Direkt Abgebildet
n-wege satzassoziativ
Vollassoziativ Cache-Speicher
1.) Tag
2.) Byte Auswahl
Direkt Abgebildet
1.) Tag
2.) Index
3.) Byte Auswahl