Aufgaben und Übungen, 00001
Aufgaben und Übungen, 00001
lb, lbu: Laden eines Bytes
lh, lhu: Laden eines Halbwortes
lw, ld*
la*, li*
lw laden eines wortes
ld* laden eines Doppelwortes
la*: Laden einer Address
li*: Laden eines Direktwertes
sb, sh, sw, sd*
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
Datenbewegungsbefehle
Arithmetisch Logische Befehle
Schiebe und Rotationsbefehle
Multimediabefehle
Gleitkommabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Stackarchitektur: 8087 Intel ATAM862 Atmel
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Speicher-Speicher-Architektur
Register-Speicher-Speicher-Architektur
Register-Register-Architektur
Datenformat:
Ganzzahl
Einzelbit
Gleitkomma
Multimedia
f=(-1)^s*1.m*2^(e-b)
32-Bit einfache Genauigkeit
64-Bit doppelte Genauigkeit
80-Bit erweiterte Genaugikeit
IEEE-754-Standard
Direktwertaddressierung
Unmittelbare Addressierung
Direkte Addressierung
Indirekte Addressierung
Indizierte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung mit Verschiebung
MemToReg
MemWrite
Branch
ALU-Src
RegDst
RegWrite
ALU-Op
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
1 x AND
2 x MUX
2 x Addierr
2 x 4 Bit Shifter
ALU-Src
ALU-Op
Alu-Operanden
ALU - Eingänge :
- Eingangsregister
- Null
Register-Satz
- Dateneingangsregister 1
- Dateneingangsregister 2
- Einen Ausgang
ALU-Src ALU-Op ALU-Operanden
00 010 - add
x1 110 - sub
1x 010 - add
R-Typ 000000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
- eq - eual
- ne - not equal
- ge - greater then equal
- gt - greater than
- lt - less than
- le - less than equal
ja - jump if above
jal - jump and link
beq, bne
beqz*, bnez*
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
1.) Statisches Befehlssceduling
2.) Dynamisches
VLIW - Very Long Instruction Word Processor
1.) Statisches
- In Order Issue In Order Completio
2.) Dynmamisch
- Out Of Order Issue Out Of Order Completion
1.) Predict always not Taken
2.) Predict Always Taken
3.) Predict Backward Taken, forward not Taken
1 und 2 Bit Prädiktor
1.) T -> NT, NT->T
2.) Predict Strongly Taken, Predict Weakly Taken, Predict weakly Not Taken, Predict strongly not taken
lh, lhu: Laden eines Halbwortes
lw, ld*
la*, li*
lw laden eines wortes
ld* laden eines Doppelwortes
la*: Laden einer Address
li*: Laden eines Direktwertes
sb, sh, sw, sd*
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
Datenbewegungsbefehle
Arithmetisch Logische Befehle
Schiebe und Rotationsbefehle
Multimediabefehle
Gleitkommabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Stackarchitektur: 8087 Intel ATAM862 Atmel
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Speicher-Speicher-Architektur
Register-Speicher-Speicher-Architektur
Register-Register-Architektur
Datenformat:
Ganzzahl
Einzelbit
Gleitkomma
Multimedia
f=(-1)^s*1.m*2^(e-b)
32-Bit einfache Genauigkeit
64-Bit doppelte Genauigkeit
80-Bit erweiterte Genaugikeit
IEEE-754-Standard
Direktwertaddressierung
Unmittelbare Addressierung
Direkte Addressierung
Indirekte Addressierung
Indizierte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung mit Verschiebung
MemToReg
MemWrite
Branch
ALU-Src
RegDst
RegWrite
ALU-Op
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
1 x AND
2 x MUX
2 x Addierr
2 x 4 Bit Shifter
ALU-Src
ALU-Op
Alu-Operanden
ALU - Eingänge :
- Eingangsregister
- Null
Register-Satz
- Dateneingangsregister 1
- Dateneingangsregister 2
- Einen Ausgang
ALU-Src ALU-Op ALU-Operanden
00 010 - add
x1 110 - sub
1x 010 - add
R-Typ 000000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
- eq - eual
- ne - not equal
- ge - greater then equal
- gt - greater than
- lt - less than
- le - less than equal
ja - jump if above
jal - jump and link
beq, bne
beqz*, bnez*
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
1.) Statisches Befehlssceduling
2.) Dynamisches
VLIW - Very Long Instruction Word Processor
1.) Statisches
- In Order Issue In Order Completio
2.) Dynmamisch
- Out Of Order Issue Out Of Order Completion
1.) Predict always not Taken
2.) Predict Always Taken
3.) Predict Backward Taken, forward not Taken
1 und 2 Bit Prädiktor
1.) T -> NT, NT->T
2.) Predict Strongly Taken, Predict Weakly Taken, Predict weakly Not Taken, Predict strongly not taken
Re: 00001
Flour - F: Flora
Chlor - Cl: Chlora
Sauerstoff - O - Oxa
Schwefel - S - Tia
Stickstoff - N Aza
Phosphor - P - Phospha
ungesättigt gesättigt
3-Ring iren iran
4-Ring et etan
5-Ring ol olan
6-Ring in an
7-Ring epin epan
8-Ring ozin ozan
aziren, aziret, azirol, azirin, azepin, azonin, azezin
Kohlenhydrate
1
2a 2b
3a 3b 3c 3d
4a 4b 4c 4d 4e 4f 4g 4h
CHO, CH2OH
1 H-C-OH
2 H-C-OH, H-C-OH
3 H-C-OH, H-C-OH, H-C-OH
2a H-C-OH, H-C-OH
2b H-C-OH, OH-C-H
3a H-C-OH, H-C-OH, H-C-OH
3b OH-C-H, H-C-OH, H-C-OH
3c H-C-OH, OH-C-H, H-C-OH
3d OH-C-H, OH-C-H, H-C-OH
Monosan
Monsan
Sterisan
Sensolan
Pental-Sol
Sonette
Vitessa Additiv
Monosan: desinfizierendes Waschmittel mit hoher Waschkraft
Sterisan: Im Bottich, Ätzend: Desinfektions und Bleichmittel für 40°C verfahren
Sensolan:
Penta-Sol: Im bottich umweltschädlich achtung: Schwerpunkt Verstärker und Fettloser
Sonettel:
Vitessa Additiv
90°: Wischmop, Bodenlappen, Geschirrtücher, Frottetücher, Tischdecken, Kochjacken, Arztkitel
60°: Wischmop, Bodenlappen, Geschirrtücher, Frottetücher, Kochjacken, Arztkitel
Extratrocken
Schranken
Bügelfeucht
Mangelfeucht
A Koch und Buntwäsche
Extratrocken
Schranktrocken+
Schranktrocken
Bügelfeucht *
Bügelfeucht **
Mangelfeucht
B Pflegeleicht
C Zeitwahl
KB - Koch und Buntwäsche
FS - Fleckensalz
Waschen und Schleudern
Trommeltrocknen: Quadrat mit Kreis drin, mit 1, 2, 3 Punkten drin
Bügeln
Lufttrocknen: Quadrat ohne Kreis, mit waagerechter Gerade liegend trocknen, mit senkrechter auf der Leine
Chemische Reinigung: Kreis, A: Alles, F: Kohlenwasserstoff, P: Perchlorethylen oder Kohlenwasserstoff
Bleichen: Dreick, mit zwei schrägen geraden links: Mit Sauerstoff, mit Cl: Mit Chlor
Nassreinigen: Kreis mit W
II: Waschmittel
I: Vorwäsche
Blume: Weichspühler
Hydrophob: Wasser abweisend
Hydrophil: Wasser liebend
Amphiphil: Beides Liebend
1.) Anionische Tenside
2.) Kationische Tenside
3.) Amphotere Tenside
4.) Zwitter
1.) Alkane
2.) Alkylbenzole
3.) Alkene
4.) Fett-Alkohole
1.) Oxidatitve Bleiche:
Sauerstoff, Peroxide
Oxidatitve, Bleiche, Reduktionsmittel, absorbitv
Tetrachlorethen, Perchlorethylen: Ethen mit Cl statt H
Oxidation und Reduktion
Komplexbildungsreaktion
Säure Base Reaktion
Fällung
Festkörperreaktion
Photochemische Reaktion
Molekulare Verbindungen
Salze
Metallorganische Verbindungen
Komplexe
Salze: Die Salze werden zumeist nach ihren Anionen unterteilt
Chloride, Flouride, Idiode, Bromide, Chlorate, Iodate, (Halogenide)
Nitrate, Nitrite, Amide (Stickstoff)
Soulfate, Soulfide, Soulfite (Schwefel)
Organische:
Alkane, Alkine, Alkine, Alkanole, Alkohole
Amide, Amine, Hydrazine, Ketone Alkanone, Carbonsäuren, Oxirane, Furane, Epoxide, Ester Ether, Aminosäuren, Alkanale Aldehyde Aromaten
H - 1
He - 2
Li - 3
Be - 4
B - 5
C - 6
N - 7
O - 8
F - 9
Ne - 10
Na - 11
Mg - 12
Halogene: Gruppe 17
Alkalimetalle
Erdalkalimetalle
Übergangsmetalle
Metalle
Halbmetalle
Nichtmetalle
Lantanoide
Aktionoide
Halogene
Edelgase
Unbekannt
Liebig-Kühler
Kugel-Kühler
Schlangekühler
Dimroth-Kühler
Doppelspiralkühler
Spiralkühlerkühler
Wellrohrkühler
R und S-Konfiguration
Konfiguration
Konformation
Orbitale
s und p Orbitale
s1, s2 Orbital
px, py, pz
PAULI-Prinzip: Jedes Orbital kann maximal 2 Elektronen aufnehmen die sich in ihrem Spinn unterscheiden
HUNDsche Regel: Erst wenn alle Orbitale ihres Niveaus gefüllt wurden, werden die zweiten Elektronen eingetragen
Von H bis Be sind es nur s-Orbital
Darüber px, py, pz
Hybridisierungszustand
4 aussenelektronen:
Freie Elektronenpaare
Das Kohlenstoff hat 6
Jetzt kann ich in s zwei Elektronen rein tun
Dann bleiben vier. Aber es bleiben, px, py, pz
Gut, dann habe ich zwei p ein Elektron und in pz, ein freies Elektronenpaar
Das geht Nichtmetalle
Deswegen gibt es eine hybrdisierung
sp^3, sp^3, sp^3, sp^3
4x sp^3
Konformation:
- New-Mann-Projektion
- Sesselkonformation: V und 60° Winkel, zeichnen
Newmann: Das vordere Kohlenstoff atom nehmen, die zur Seite und dann kreiss und dann das hintere
Konfiguration
R und S
Rechte und Linke Hand
Chiralitätszentrum
Methyl: Me
Ethyl: Et
Chlor: cl
Brom: Br
4 Möglichkeiten, aber nur 2
Der Reihe nach durchnummerieren
Dann der Name R und S einfliessen lassen
Das nummerieren geht so:
Atom mit der grössten Ordnungszahl: Priorität 1
Atom mit der niedrigsten Priorität 4
Priorität: 1 Grösste Ordnungszahl, 4 niedrigste
O: Höher als C, als O ^= 1, C ^= 2
Was ist mit C
HHH: Methyl
CHH: Ethyl
Das sind die Reste C schlägt Wasserstoff
R und S Konfiguration, ob im Uhrzeigersinn oder dagegn
R: Im
S: Dagegen
Eliminierung
Substitution
Addition
1 Substituent = Rest
2 Substituente
3 ...
4 ...
Das ist die Anzahl der Reste
Die Reste können sein
1.) Methyl
2.) Ethyl
3.) Propyl
4.) ...
5.) R
Höher substituiert: Seyzeff: Eleminierung
Niedriger: Hoffman: Bei der Elemenierung
Da entsteht doppelbindung hier oder da: Je nach dem wie viel Reste, bei der Doppelbindung
Addition: Markownikow, Anti-Markownikow
Höher, Niedriger,
Das heisst, das F geht an das C mit mehr oder weniger Reste
Regiochemie
Stereochemie: Entscheidet, Ob E/Z-Isomere, oder R/S-Konfiguration
1.) Subsitution
- Nukleophil
- Elektrophil
- Abgangsgruppe
- Lösungsmittel
Nukleophil ist quasi negativer - das geht zum Elektrophil, der Angreifer = Nukleophil
SN_2: Reaktion: Das heisst, das Nukleophil spaltet die Abgangsgruppe ab, und die geht, durch die Abspaltung. das ist ein Schritt. Es kommt auf beide Konzentrationen an
SN_1: Carbokation: AG geht von alleine
Läuft das nach SN_1 oder SN_2 ab
Abgangsgruppe:
- Mesylat, Tosylat, Triflat
Lösungsmittel:
DMSO: Dimethylsoulfoxid
DMF: Dimetyhal
Abgangsgruppe: Hydrox... Wasser
Polares Aprotisches Lösungsmittel
Polar: Je grösser das Atom desto polarisierbarer
Diels-Alder, Cyklopropantrick, Claissen, currey Fuch, currey Seebach, Paterno Büchi Negishi...
Hydrolyse: Reaktion mit Wasser
Hydrierung: Mit Wasserstoff
Metatese: X-Y + A-B -> X-A + Y-B
Kondensation: Wenn man einen kleines Molekül abspaltet, für die Reaktion, wie Wasser
Dann gibt es aber noch die Reaktion von Aromaten
Chlor - Cl: Chlora
Sauerstoff - O - Oxa
Schwefel - S - Tia
Stickstoff - N Aza
Phosphor - P - Phospha
ungesättigt gesättigt
3-Ring iren iran
4-Ring et etan
5-Ring ol olan
6-Ring in an
7-Ring epin epan
8-Ring ozin ozan
aziren, aziret, azirol, azirin, azepin, azonin, azezin
Kohlenhydrate
1
2a 2b
3a 3b 3c 3d
4a 4b 4c 4d 4e 4f 4g 4h
CHO, CH2OH
1 H-C-OH
2 H-C-OH, H-C-OH
3 H-C-OH, H-C-OH, H-C-OH
2a H-C-OH, H-C-OH
2b H-C-OH, OH-C-H
3a H-C-OH, H-C-OH, H-C-OH
3b OH-C-H, H-C-OH, H-C-OH
3c H-C-OH, OH-C-H, H-C-OH
3d OH-C-H, OH-C-H, H-C-OH
Monosan
Monsan
Sterisan
Sensolan
Pental-Sol
Sonette
Vitessa Additiv
Monosan: desinfizierendes Waschmittel mit hoher Waschkraft
Sterisan: Im Bottich, Ätzend: Desinfektions und Bleichmittel für 40°C verfahren
Sensolan:
Penta-Sol: Im bottich umweltschädlich achtung: Schwerpunkt Verstärker und Fettloser
Sonettel:
Vitessa Additiv
90°: Wischmop, Bodenlappen, Geschirrtücher, Frottetücher, Tischdecken, Kochjacken, Arztkitel
60°: Wischmop, Bodenlappen, Geschirrtücher, Frottetücher, Kochjacken, Arztkitel
Extratrocken
Schranken
Bügelfeucht
Mangelfeucht
A Koch und Buntwäsche
Extratrocken
Schranktrocken+
Schranktrocken
Bügelfeucht *
Bügelfeucht **
Mangelfeucht
B Pflegeleicht
C Zeitwahl
KB - Koch und Buntwäsche
FS - Fleckensalz
Waschen und Schleudern
Trommeltrocknen: Quadrat mit Kreis drin, mit 1, 2, 3 Punkten drin
Bügeln
Lufttrocknen: Quadrat ohne Kreis, mit waagerechter Gerade liegend trocknen, mit senkrechter auf der Leine
Chemische Reinigung: Kreis, A: Alles, F: Kohlenwasserstoff, P: Perchlorethylen oder Kohlenwasserstoff
Bleichen: Dreick, mit zwei schrägen geraden links: Mit Sauerstoff, mit Cl: Mit Chlor
Nassreinigen: Kreis mit W
II: Waschmittel
I: Vorwäsche
Blume: Weichspühler
Hydrophob: Wasser abweisend
Hydrophil: Wasser liebend
Amphiphil: Beides Liebend
1.) Anionische Tenside
2.) Kationische Tenside
3.) Amphotere Tenside
4.) Zwitter
1.) Alkane
2.) Alkylbenzole
3.) Alkene
4.) Fett-Alkohole
1.) Oxidatitve Bleiche:
Sauerstoff, Peroxide
Oxidatitve, Bleiche, Reduktionsmittel, absorbitv
Tetrachlorethen, Perchlorethylen: Ethen mit Cl statt H
Oxidation und Reduktion
Komplexbildungsreaktion
Säure Base Reaktion
Fällung
Festkörperreaktion
Photochemische Reaktion
Molekulare Verbindungen
Salze
Metallorganische Verbindungen
Komplexe
Salze: Die Salze werden zumeist nach ihren Anionen unterteilt
Chloride, Flouride, Idiode, Bromide, Chlorate, Iodate, (Halogenide)
Nitrate, Nitrite, Amide (Stickstoff)
Soulfate, Soulfide, Soulfite (Schwefel)
Organische:
Alkane, Alkine, Alkine, Alkanole, Alkohole
Amide, Amine, Hydrazine, Ketone Alkanone, Carbonsäuren, Oxirane, Furane, Epoxide, Ester Ether, Aminosäuren, Alkanale Aldehyde Aromaten
H - 1
He - 2
Li - 3
Be - 4
B - 5
C - 6
N - 7
O - 8
F - 9
Ne - 10
Na - 11
Mg - 12
Halogene: Gruppe 17
Alkalimetalle
Erdalkalimetalle
Übergangsmetalle
Metalle
Halbmetalle
Nichtmetalle
Lantanoide
Aktionoide
Halogene
Edelgase
Unbekannt
Liebig-Kühler
Kugel-Kühler
Schlangekühler
Dimroth-Kühler
Doppelspiralkühler
Spiralkühlerkühler
Wellrohrkühler
R und S-Konfiguration
Konfiguration
Konformation
Orbitale
s und p Orbitale
s1, s2 Orbital
px, py, pz
PAULI-Prinzip: Jedes Orbital kann maximal 2 Elektronen aufnehmen die sich in ihrem Spinn unterscheiden
HUNDsche Regel: Erst wenn alle Orbitale ihres Niveaus gefüllt wurden, werden die zweiten Elektronen eingetragen
Von H bis Be sind es nur s-Orbital
Darüber px, py, pz
Hybridisierungszustand
4 aussenelektronen:
Freie Elektronenpaare
Das Kohlenstoff hat 6
Jetzt kann ich in s zwei Elektronen rein tun
Dann bleiben vier. Aber es bleiben, px, py, pz
Gut, dann habe ich zwei p ein Elektron und in pz, ein freies Elektronenpaar
Das geht Nichtmetalle
Deswegen gibt es eine hybrdisierung
sp^3, sp^3, sp^3, sp^3
4x sp^3
Konformation:
- New-Mann-Projektion
- Sesselkonformation: V und 60° Winkel, zeichnen
Newmann: Das vordere Kohlenstoff atom nehmen, die zur Seite und dann kreiss und dann das hintere
Konfiguration
R und S
Rechte und Linke Hand
Chiralitätszentrum
Methyl: Me
Ethyl: Et
Chlor: cl
Brom: Br
4 Möglichkeiten, aber nur 2
Der Reihe nach durchnummerieren
Dann der Name R und S einfliessen lassen
Das nummerieren geht so:
Atom mit der grössten Ordnungszahl: Priorität 1
Atom mit der niedrigsten Priorität 4
Priorität: 1 Grösste Ordnungszahl, 4 niedrigste
O: Höher als C, als O ^= 1, C ^= 2
Was ist mit C
HHH: Methyl
CHH: Ethyl
Das sind die Reste C schlägt Wasserstoff
R und S Konfiguration, ob im Uhrzeigersinn oder dagegn
R: Im
S: Dagegen
Eliminierung
Substitution
Addition
1 Substituent = Rest
2 Substituente
3 ...
4 ...
Das ist die Anzahl der Reste
Die Reste können sein
1.) Methyl
2.) Ethyl
3.) Propyl
4.) ...
5.) R
Höher substituiert: Seyzeff: Eleminierung
Niedriger: Hoffman: Bei der Elemenierung
Da entsteht doppelbindung hier oder da: Je nach dem wie viel Reste, bei der Doppelbindung
Addition: Markownikow, Anti-Markownikow
Höher, Niedriger,
Das heisst, das F geht an das C mit mehr oder weniger Reste
Regiochemie
Stereochemie: Entscheidet, Ob E/Z-Isomere, oder R/S-Konfiguration
1.) Subsitution
- Nukleophil
- Elektrophil
- Abgangsgruppe
- Lösungsmittel
Nukleophil ist quasi negativer - das geht zum Elektrophil, der Angreifer = Nukleophil
SN_2: Reaktion: Das heisst, das Nukleophil spaltet die Abgangsgruppe ab, und die geht, durch die Abspaltung. das ist ein Schritt. Es kommt auf beide Konzentrationen an
SN_1: Carbokation: AG geht von alleine
Läuft das nach SN_1 oder SN_2 ab
Abgangsgruppe:
- Mesylat, Tosylat, Triflat
Lösungsmittel:
DMSO: Dimethylsoulfoxid
DMF: Dimetyhal
Abgangsgruppe: Hydrox... Wasser
Polares Aprotisches Lösungsmittel
Polar: Je grösser das Atom desto polarisierbarer
Diels-Alder, Cyklopropantrick, Claissen, currey Fuch, currey Seebach, Paterno Büchi Negishi...
Hydrolyse: Reaktion mit Wasser
Hydrierung: Mit Wasserstoff
Metatese: X-Y + A-B -> X-A + Y-B
Kondensation: Wenn man einen kleines Molekül abspaltet, für die Reaktion, wie Wasser
Dann gibt es aber noch die Reaktion von Aromaten
Re: 00001
lb, lbu: Laden eines Bytes
lh, lhu: Landes eines Halbwortes
lw: Laden eine Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
neg
abs
rem
not
and, andi
or, ori
xor, xori
Datenbewegungsbefehle
Arithmetisch Logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade- und Speicherarchitektur
Speicher-speicherarchitektur
Register-Speicherarchitektur
Akkumulator-Architektur
Stack- und Kellerarchitektur
Little-Endian-Format
Big-Endian-Format
signed
unsigned
packed
unpacked
bcd
ascii
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
byte
Halbwort
wort
doppelwort
32: Einfache Genauigkeit
64: Doppelte
80: Erweiterte
ieee-754-std
f = (-1)^s*1.m*2^(e-b)
Stackarchitektur: intel 8087 und ATAM862 Atmel
Registeraddressierung
Unmittelbare Addressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Verschiebung (Displacement)
Indirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
Reg-Dst
Reg-Write
Befehlsdekodierer
Funktionsdekodierer
Registersatz
ALU
Datenspeicher
Befehlszähler
Befehlsspeicher
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addier
2 x 4 Bit Shifter
Befehlsdekodierer
Func
ALU-Op
ALU-Operanden
Register-Satz:
- Lese-Register 1
- Lese-Register 2
- Lese-Daten 1
- Lese-Daten 2
- WE
- Schreiberegister
- Schreibedaten
ALU:
- ALU-Ergebnis
- Null
Datenspeicher:
- Addresse
- Lesedaten
- Schreibedaten
- WE
Befehlsspeicher:
- Leseaddresse
- Lesedaten
Befehlszähler:
- PC (t)
- PC (t+1)
ALUOp Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100000 - add 010 - add
OpCode RegWrite RegDst ALU-Src
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
- eq - equal
- ne - not equal
- gt - greater than
- ge - greater than equal
- lt - less than
- le - less than equal
1.) Branch: Unbedingte Sprünge
2.) Jump: Bedingte Sprünge, Befehlszählerrelativ
3.) Jump Register: Bedingte Sprünge, Befehlszählerindirekt
jal: Jump and Link: Speichern des Befehls der auf den Sprungbefehl folgt
j, jb, jr
jal, jalr
beq, bne
beqz*, bnez*
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
Pipeline Prinzip
Pipeline Stufe
Pipeline Register
Befehl holen
Befehl Dekodieren
Operanden der ALU bereit stellen
Operation in der ALU ausführen
Operanden in ALU Register zurückschreiben
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode/Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) Statisches Scheduling
- In Order Issue in order Completion
- VLIW-Prozessor: Very Long Instruction Word
2.) Dynamisch
- Out Of Order Issue Out Of Order Completion
1.) Statische Sprungvorhersage
- Predict Always Not Taken
- Predict Always Taken
- Predict Backward Taken Forward Not Taken
2.) Dynamisch: 1 und 2 Bit Prädiktor
- T, NT Taken Not Taken
- Predict Strongly Taken, Predict Weakly Taken Predict Weakly Not Taken, Predict Strongly Not Taken.
lh, lhu: Landes eines Halbwortes
lw: Laden eine Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
neg
abs
rem
not
and, andi
or, ori
xor, xori
Datenbewegungsbefehle
Arithmetisch Logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade- und Speicherarchitektur
Speicher-speicherarchitektur
Register-Speicherarchitektur
Akkumulator-Architektur
Stack- und Kellerarchitektur
Little-Endian-Format
Big-Endian-Format
signed
unsigned
packed
unpacked
bcd
ascii
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
byte
Halbwort
wort
doppelwort
32: Einfache Genauigkeit
64: Doppelte
80: Erweiterte
ieee-754-std
f = (-1)^s*1.m*2^(e-b)
Stackarchitektur: intel 8087 und ATAM862 Atmel
Registeraddressierung
Unmittelbare Addressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Verschiebung (Displacement)
Indirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
Reg-Dst
Reg-Write
Befehlsdekodierer
Funktionsdekodierer
Registersatz
ALU
Datenspeicher
Befehlszähler
Befehlsspeicher
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addier
2 x 4 Bit Shifter
Befehlsdekodierer
Func
ALU-Op
ALU-Operanden
Register-Satz:
- Lese-Register 1
- Lese-Register 2
- Lese-Daten 1
- Lese-Daten 2
- WE
- Schreiberegister
- Schreibedaten
ALU:
- ALU-Ergebnis
- Null
Datenspeicher:
- Addresse
- Lesedaten
- Schreibedaten
- WE
Befehlsspeicher:
- Leseaddresse
- Lesedaten
Befehlszähler:
- PC (t)
- PC (t+1)
ALUOp Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100000 - add 010 - add
OpCode RegWrite RegDst ALU-Src
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
- eq - equal
- ne - not equal
- gt - greater than
- ge - greater than equal
- lt - less than
- le - less than equal
1.) Branch: Unbedingte Sprünge
2.) Jump: Bedingte Sprünge, Befehlszählerrelativ
3.) Jump Register: Bedingte Sprünge, Befehlszählerindirekt
jal: Jump and Link: Speichern des Befehls der auf den Sprungbefehl folgt
j, jb, jr
jal, jalr
beq, bne
beqz*, bnez*
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
Pipeline Prinzip
Pipeline Stufe
Pipeline Register
Befehl holen
Befehl Dekodieren
Operanden der ALU bereit stellen
Operation in der ALU ausführen
Operanden in ALU Register zurückschreiben
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode/Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) Statisches Scheduling
- In Order Issue in order Completion
- VLIW-Prozessor: Very Long Instruction Word
2.) Dynamisch
- Out Of Order Issue Out Of Order Completion
1.) Statische Sprungvorhersage
- Predict Always Not Taken
- Predict Always Taken
- Predict Backward Taken Forward Not Taken
2.) Dynamisch: 1 und 2 Bit Prädiktor
- T, NT Taken Not Taken
- Predict Strongly Taken, Predict Weakly Taken Predict Weakly Not Taken, Predict Strongly Not Taken.
Re: 00001
Code: Alles auswählen
#include <stdio.h>
int f1 (int x4, int x3, int x2, int x1) {
return ((!x4 && x3 && !x2 && x1) || (!x4 && x3 && x2 && x1) || (x4 && !x3 && !x2 && x1) || (x4 && !x3 && x2 && x1) || (x4 && x3 && !x2 && x1) || (x4 && x3 && x2 && !x1) | (x4 && x3 && x2 && x1));
}
int f2 (int x4, int x3, int x2, int x1) {
return ((x3 && x1) || (x4 && x1) || (x4 && x3 && x2));
}
int main (void) {
int x1;
int x2;
int x3;
int x4;
for (x4 = 0; x4 < 2; x4++) {
for (x3 = 0; x3 < 2; x3++) {
for (x2 = 0; x2 < 2; x2++) {
for (x1 = 0; x1 < 2; x1++) {
printf ("%i %i %i %i | %i %i\n", x4, x3, x2, x1, f1(x4, x3, x2, x1), f2(x4, x3, x2, x1));
}
}
}
}
}
Re: 00001
lb, lbu: laden eines bytes
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
rem*, abs*, neg*, not*
and, andi
or, ori
xor, xori
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Nulladdressformat
Einaddressformat
Zweiaddressformat
Dreiaddressformat
Little-Endian
Big-Endian
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
singned
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f=(-1)^s * 1.m * 2^(e-b)
32: Einfache Genauigkeit
64: Doppelte Genauigkeit
80: Erweitertete
Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher-Speicher-Architektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Intel 8087 - ATAM 862 Atmel
Registeraddressierung
Unmittelbare Addressierung
Direktwertaddressierung
Direkte Addressierung
Register Indirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
OpCode
RegDst
RegWrite
Branch
ALU-Src
ALU-Op
Mem-ToReg
MemWrite
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer
Befehlsdekodierer
ALU
Datenspeicher
Befehlsspeicher
Befehlszähler
Registersatz
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x Bit Shifter
Funktionsdekodierer
1.) ALU-Op
2.) Func
3.) ALU-Operanden
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
Registersatz:
- Lesedaten-1
- Lesedaten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Befehlsdekodierer
- Lesedaten
- Addresse
Befehlszähler
- PC (t)
- PC (t+1)
ALU-Op Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100000 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operanden
r-type 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
- eq: equal
- ne: not equal
- lt: less than
- le: less than equal
- ge: greater then equal
- gt: greater than
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
JAL: Jump and Link: Speichern zusätzlich die Addresse des Befehls die dem Sprungbefehl folgt
j, b*, jr
jal
jalr
beqz*, bnez*
beq, bne
bgtz, bgez
bltz, blez
bgtz, bgez
blt, ble
bgt, bge
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & (0xf000 0000) | (i << 2)
Pipeline Prinzip
Pipeline Stufe
Pipeline Register
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
IF - Instruction Fetch
ID - Instruction Decode/Register Fetch
EX - Execute Address, address calculation
MEM - Memory Access
WB - Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) In Order Issue in Order Completion
2.) Out Of Order Issue Out Of Order Completion
VLIW - Very Long Instruction Word
1.) Statische Sprungvorhersage
1.1.) Predict Always Taken
1.2.) Predict Always Not Taken
1.3.) Predict Backward Taken forward not Taken
2.) Dynamisch
2.1.) Ein Bit Prädiktor: Taken, Not Taken
2.2.) Zwei Bit: Predict Strongly Taken, weakly Taken, Strongly Not Taken, weakly not taken
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
rem*, abs*, neg*, not*
and, andi
or, ori
xor, xori
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Nulladdressformat
Einaddressformat
Zweiaddressformat
Dreiaddressformat
Little-Endian
Big-Endian
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
singned
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f=(-1)^s * 1.m * 2^(e-b)
32: Einfache Genauigkeit
64: Doppelte Genauigkeit
80: Erweitertete
Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher-Speicher-Architektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Intel 8087 - ATAM 862 Atmel
Registeraddressierung
Unmittelbare Addressierung
Direktwertaddressierung
Direkte Addressierung
Register Indirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
OpCode
RegDst
RegWrite
Branch
ALU-Src
ALU-Op
Mem-ToReg
MemWrite
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer
Befehlsdekodierer
ALU
Datenspeicher
Befehlsspeicher
Befehlszähler
Registersatz
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x Bit Shifter
Funktionsdekodierer
1.) ALU-Op
2.) Func
3.) ALU-Operanden
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
Registersatz:
- Lesedaten-1
- Lesedaten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Befehlsdekodierer
- Lesedaten
- Addresse
Befehlszähler
- PC (t)
- PC (t+1)
ALU-Op Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100000 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operanden
r-type 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
- eq: equal
- ne: not equal
- lt: less than
- le: less than equal
- ge: greater then equal
- gt: greater than
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
JAL: Jump and Link: Speichern zusätzlich die Addresse des Befehls die dem Sprungbefehl folgt
j, b*, jr
jal
jalr
beqz*, bnez*
beq, bne
bgtz, bgez
bltz, blez
bgtz, bgez
blt, ble
bgt, bge
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & (0xf000 0000) | (i << 2)
Pipeline Prinzip
Pipeline Stufe
Pipeline Register
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
IF - Instruction Fetch
ID - Instruction Decode/Register Fetch
EX - Execute Address, address calculation
MEM - Memory Access
WB - Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) In Order Issue in Order Completion
2.) Out Of Order Issue Out Of Order Completion
VLIW - Very Long Instruction Word
1.) Statische Sprungvorhersage
1.1.) Predict Always Taken
1.2.) Predict Always Not Taken
1.3.) Predict Backward Taken forward not Taken
2.) Dynamisch
2.1.) Ein Bit Prädiktor: Taken, Not Taken
2.2.) Zwei Bit: Predict Strongly Taken, weakly Taken, Strongly Not Taken, weakly not taken
Re: 00001
lb, lbu Laden eines Bytes
lh, lhu Laden eines Halbwortes
lw Laden eines Wortes
ld* Laden eines Doppelwortes
la* Laden einer Addresse
li* Laden eines Immidiate Wertes
sb Speichern eines Bytes
sh Speichern eines Halbwortes
sw Speichern eines Wortes
sd* Speichern eines Doppelwortes
add, addi, addiu
sub
mult, multu
div, divu
rem*
abs*
neg*
not*
and, andi
or, ori
xor, xori
nor
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Programmsteuerbefehle
Synchronisationsbefehle
Einaddressformat
Zweiaddressformat
Dreiaddressformat
Nulladdressformat
Lade und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Akkumulatorarchitektur
Stack- und Kellerarchitektur
Stackarchitektur: 8087 Intel, Atam 862 Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
little-endian
big-endian
Byte
Halbwort
Wort
Doppelwort
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
Registeraddressierung
Unmittelbare Addressierung
Direkte Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Verschiebung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
RegDest
RegWrite
Branch
ALU-Src
ALU-Op
MemToReg
MemWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2-Bit-Shifter
Registersatz:
- Lese-Daten-1
- Lese-Daten-2
- Schreibe-Daten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Befehlsspeicher:
- Lesedaten
- Addresse
Befehlszähler:
- PC (t)
- PC (t+1)
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
Func ALU-Op ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
opcode regdst regwrite branch alu-src alu-op alu-operanden
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
- eq: equal
- ne: not equal
- lt: less than
- le: less than equal
- gt: greater than
- ge: greater than equal
j, b*, jr
jal, jalr
beq, bne
beqz, bnez
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & 0xf000 0000 | (i << 2)
Befehl holen
Befehl dekodieren
Operanden der ALU bereitstellen
Operation in der ALU ausführen
Operanden in Architekturregister zurückschreiben
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode/Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
Datenkonflikte
Steuerflusskonflikte
Struktur und Ressourcenkonflikte
1.) Statische Sprungvorhersage:
- In Order Issue In Order Completion - VLIW
2.) Dynamisch
- Out of Order Issue Out Of Order Completion
1.) Statische Sprungvorhersage
1.1.) Predict Always Taken
1.2.) Predict Always Not Taken
1.3.) Predict Backward Taken Forward Not Taken
2.) Dynamisch
2.1.) Taken not Taken
2.2.) Strongly Taken, weakly Taken, strongly not taken, weakly not taken
PLD: Programmable Logic Decive
PLA: Programmable Logic Array
PAL: Programmable Array Logic
CPLD: Complex Programmable Logic Device
FPGA: Field Programmable Gate Array
PLA: Programmierbare und Matrix Programmierbare Oder
PROM: Programmierbare Oder
PAL: Feste Oder, programmierbar UND
Xilinx
Altera
Lattice
Actel
Cypress
Quick Logic
Atmel
Xilinx CPLD Coolrunner
1.) Kirchhoffsche Regel: Die Summe der zufliessenden Ströme in einem Knoten, ist gleich die Summe der abfliessenden
2.) ...: Die Summe der Spannungen in einer Masche ist gleich 0
FET: Feldeffect Transistor
Source
Drain
Gate
Bulc
MISFET
JFET: Junction Fet
MESFET
MOSFET
IGFET: Insulated Gate FET
Tristor, Triac
Laser: Light Ampilification by Stimuleted Emission of Radiation
lh, lhu Laden eines Halbwortes
lw Laden eines Wortes
ld* Laden eines Doppelwortes
la* Laden einer Addresse
li* Laden eines Immidiate Wertes
sb Speichern eines Bytes
sh Speichern eines Halbwortes
sw Speichern eines Wortes
sd* Speichern eines Doppelwortes
add, addi, addiu
sub
mult, multu
div, divu
rem*
abs*
neg*
not*
and, andi
or, ori
xor, xori
nor
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Programmsteuerbefehle
Synchronisationsbefehle
Einaddressformat
Zweiaddressformat
Dreiaddressformat
Nulladdressformat
Lade und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Akkumulatorarchitektur
Stack- und Kellerarchitektur
Stackarchitektur: 8087 Intel, Atam 862 Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
little-endian
big-endian
Byte
Halbwort
Wort
Doppelwort
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
Registeraddressierung
Unmittelbare Addressierung
Direkte Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Verschiebung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
RegDest
RegWrite
Branch
ALU-Src
ALU-Op
MemToReg
MemWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2-Bit-Shifter
Registersatz:
- Lese-Daten-1
- Lese-Daten-2
- Schreibe-Daten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Befehlsspeicher:
- Lesedaten
- Addresse
Befehlszähler:
- PC (t)
- PC (t+1)
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
Func ALU-Op ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
opcode regdst regwrite branch alu-src alu-op alu-operanden
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
- eq: equal
- ne: not equal
- lt: less than
- le: less than equal
- gt: greater than
- ge: greater than equal
j, b*, jr
jal, jalr
beq, bne
beqz, bnez
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & 0xf000 0000 | (i << 2)
Befehl holen
Befehl dekodieren
Operanden der ALU bereitstellen
Operation in der ALU ausführen
Operanden in Architekturregister zurückschreiben
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode/Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
Datenkonflikte
Steuerflusskonflikte
Struktur und Ressourcenkonflikte
1.) Statische Sprungvorhersage:
- In Order Issue In Order Completion - VLIW
2.) Dynamisch
- Out of Order Issue Out Of Order Completion
1.) Statische Sprungvorhersage
1.1.) Predict Always Taken
1.2.) Predict Always Not Taken
1.3.) Predict Backward Taken Forward Not Taken
2.) Dynamisch
2.1.) Taken not Taken
2.2.) Strongly Taken, weakly Taken, strongly not taken, weakly not taken
PLD: Programmable Logic Decive
PLA: Programmable Logic Array
PAL: Programmable Array Logic
CPLD: Complex Programmable Logic Device
FPGA: Field Programmable Gate Array
PLA: Programmierbare und Matrix Programmierbare Oder
PROM: Programmierbare Oder
PAL: Feste Oder, programmierbar UND
Xilinx
Altera
Lattice
Actel
Cypress
Quick Logic
Atmel
Xilinx CPLD Coolrunner
1.) Kirchhoffsche Regel: Die Summe der zufliessenden Ströme in einem Knoten, ist gleich die Summe der abfliessenden
2.) ...: Die Summe der Spannungen in einer Masche ist gleich 0
FET: Feldeffect Transistor
Source
Drain
Gate
Bulc
MISFET
JFET: Junction Fet
MESFET
MOSFET
IGFET: Insulated Gate FET
Tristor, Triac
Laser: Light Ampilification by Stimuleted Emission of Radiation
Re: 00001
lb, lbu: Laden eines Bytes
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern einer Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
rem, abs, neg, not
and, andi
or, ori
xor, xori
nor
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiadderssformat
Einaddressformat
Nulladdressformat
Lade und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Akkumulatorarchitektur
Stack und Kellerarchitektur
Stackarchitektur: 8087 Intel, ATAM 862 Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
byte
Halbwort
Wort
Doppelwort
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: Einfach
64: Doppelt
80: erweitert
little-endian
big-endian
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Registerindirekte Addressierung mit Verschiebung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Datenspeicher
Befehlsspeicher
Registersatz
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Funktionsdekodierer:
- Func
- ALU-Op
- ALU-Operation
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreibe-Register
- Schreibe-Daten
- Lese-Daten-1
- Lese-Daten-2
- WE
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Befehlszähler
- PC (t)
- PC (t+1)
Befehlsspeicher
- Lesedaten
- Addresse
ALU-Op Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OP-Code RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operanden
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
- eq - equal
- ne - not equal
- gt - greater than
- ge - greater than equal
- lt - less than
- le - less than equal
j, b*, jr
jal
jalr
beq, bne
beqz, bnez
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & 0xf000 0000 | (i << 2)
Befehl holen
Befehl dekodieren
Operanden der ALU bereitstellen
Operation in der ALU ausführen
Operanden in Architekturregister zurückschreibe
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode/Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) In Order Issue In Order Completion
2.) Out Of Order Issue Out Of Order Completion
VLIW - Very Long Instruction Word
1.) Statische Sprungvorhersage
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken Forward Not Taken
2.) Dynamisch
2.1.) Taken -> Not Taken
2.2.) Predict Strongly Taken, Predict Weakly Taken, Predict Weakly Not Taken, ...
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern einer Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
rem, abs, neg, not
and, andi
or, ori
xor, xori
nor
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiadderssformat
Einaddressformat
Nulladdressformat
Lade und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Akkumulatorarchitektur
Stack und Kellerarchitektur
Stackarchitektur: 8087 Intel, ATAM 862 Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
byte
Halbwort
Wort
Doppelwort
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: Einfach
64: Doppelt
80: erweitert
little-endian
big-endian
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Registerindirekte Addressierung mit Verschiebung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Datenspeicher
Befehlsspeicher
Registersatz
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Funktionsdekodierer:
- Func
- ALU-Op
- ALU-Operation
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreibe-Register
- Schreibe-Daten
- Lese-Daten-1
- Lese-Daten-2
- WE
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Befehlszähler
- PC (t)
- PC (t+1)
Befehlsspeicher
- Lesedaten
- Addresse
ALU-Op Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OP-Code RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operanden
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
- eq - equal
- ne - not equal
- gt - greater than
- ge - greater than equal
- lt - less than
- le - less than equal
j, b*, jr
jal
jalr
beq, bne
beqz, bnez
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & 0xf000 0000 | (i << 2)
Befehl holen
Befehl dekodieren
Operanden der ALU bereitstellen
Operation in der ALU ausführen
Operanden in Architekturregister zurückschreibe
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode/Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) In Order Issue In Order Completion
2.) Out Of Order Issue Out Of Order Completion
VLIW - Very Long Instruction Word
1.) Statische Sprungvorhersage
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken Forward Not Taken
2.) Dynamisch
2.1.) Taken -> Not Taken
2.2.) Predict Strongly Taken, Predict Weakly Taken, Predict Weakly Not Taken, ...
Re: 00001
lb, lbu: Laden eines Bytes
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
add, addi, addiu
sub
mult, multu
div, divu
and, andi
or, ori
xor, xori
nor
neg*, abs*, not, rem*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Programmsteuerbefehle
Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher-Speicherarchitektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Intel, 8087, ATAM862, Atmel
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
BCD
ASCII
Byte
Halbwort
Wort
Doppelwort
Little-Endian
Big-Endian
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: Einfach
64: Doppelt
80: Erweitert
Registeraddressierung
Unmittelbare Addressierung
Direkte oder absolute Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Funktionsdekodierer:
- ALU-Op
- Func
- ALU-Operanden
Registersatz:
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
Befehlsspeicher:
- Leseaddresse
- Lesedatendaten
Befehlszähler:
- PC (t)
- PC (t+1)
ALU-Op Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegWrite RegDst Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equal
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
J: J Jump
JAL: Jump And Link
Fall 1: Befehlszählerrelativ: Der Befehlszähler wird zur nachfolgendenden Addresse des aktuellen Befehlszähler addiert
Fall 2: Befehlszählerindirekt: der Befehlszähler wird durch die Sprungaddresse ersetzt:
PC_neu = PC_alt + (I << 2)
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
Jump and Link, zusätzlich zum Sprung wird die zum aktuellen Befehl Nachfolgende Addresse PC+4 in einem Register gespeichert
j, b*, jr: Befehlszählerrelativ, Absolut, Befehlszählerindirekte Addressierung
jal: Jump And Link: Befehlszählerrelativ
jalr: Jump and link, Befehlszählerindirekt
beqz*, bnez*
beq, bne
bgtz, bgez
bgt*, bge*
bltz, blez
blt, ble
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
Datenpfad
Pipeline-Prinzip
Pipeline-Phase
Pipelinie-Register
IF: Instruction Fetch - Befehlsbereitsstellungsphase
ID: Instruction Decode Register Fetch - Befehlsdekodier und Operandenbereitsstellungsphase
EX: Execute Address Calculation
MEM: Memory Access: Speicherzugriffsphase
WB: Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) Statische Sprungvorhersage
2.) Dynamisch
1.) In Order Issue In Order Completion - VLIW-Prozessor
2.) Out Of Order Execution Out Of Order Completion: Out Of Order Execution OOE-Prozessor
1.) Statisch
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken, forward not Taken
2.) Dynamisch
2.1.) Taken -> Not Taken, Not Taken -> Taken
2.2.) Predict Strongly Taken, Predict Weakly Taken, Predict Weakly Not Taken, Predict Strongly Not Taken
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
add, addi, addiu
sub
mult, multu
div, divu
and, andi
or, ori
xor, xori
nor
neg*, abs*, not, rem*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Programmsteuerbefehle
Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher-Speicherarchitektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Intel, 8087, ATAM862, Atmel
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
BCD
ASCII
Byte
Halbwort
Wort
Doppelwort
Little-Endian
Big-Endian
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: Einfach
64: Doppelt
80: Erweitert
Registeraddressierung
Unmittelbare Addressierung
Direkte oder absolute Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Funktionsdekodierer:
- ALU-Op
- Func
- ALU-Operanden
Registersatz:
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
ALU:
- ALU-Ergebnis
- Null
AND:
- PCSrc
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
Befehlsspeicher:
- Leseaddresse
- Lesedatendaten
Befehlszähler:
- PC (t)
- PC (t+1)
ALU-Op Func ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegWrite RegDst Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equal
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
J: J Jump
JAL: Jump And Link
Fall 1: Befehlszählerrelativ: Der Befehlszähler wird zur nachfolgendenden Addresse des aktuellen Befehlszähler addiert
Fall 2: Befehlszählerindirekt: der Befehlszähler wird durch die Sprungaddresse ersetzt:
PC_neu = PC_alt + (I << 2)
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
Jump and Link, zusätzlich zum Sprung wird die zum aktuellen Befehl Nachfolgende Addresse PC+4 in einem Register gespeichert
j, b*, jr: Befehlszählerrelativ, Absolut, Befehlszählerindirekte Addressierung
jal: Jump And Link: Befehlszählerrelativ
jalr: Jump and link, Befehlszählerindirekt
beqz*, bnez*
beq, bne
bgtz, bgez
bgt*, bge*
bltz, blez
blt, ble
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
Datenpfad
Pipeline-Prinzip
Pipeline-Phase
Pipelinie-Register
IF: Instruction Fetch - Befehlsbereitsstellungsphase
ID: Instruction Decode Register Fetch - Befehlsdekodier und Operandenbereitsstellungsphase
EX: Execute Address Calculation
MEM: Memory Access: Speicherzugriffsphase
WB: Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) Statische Sprungvorhersage
2.) Dynamisch
1.) In Order Issue In Order Completion - VLIW-Prozessor
2.) Out Of Order Execution Out Of Order Completion: Out Of Order Execution OOE-Prozessor
1.) Statisch
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken, forward not Taken
2.) Dynamisch
2.1.) Taken -> Not Taken, Not Taken -> Taken
2.2.) Predict Strongly Taken, Predict Weakly Taken, Predict Weakly Not Taken, Predict Strongly Not Taken
Re: 00001
lb, lbu: Laden eines Bytes
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
rem*, abs*, neg*, not*
and, andi
or, ori
xor, xori
nor
Datenbewegungsbefehle
arithmetisch/logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Programmsteuerbefehle
Synchronisationsbefehle
Stack- und Kellerarchitektur
Speicher- Speicherarchitektur
Lade und Speicherarchitektur
Register- Speicherarchitektur
Akkumulatorarchitektur
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Intel 8087, ATAM 862, Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
singned
unsigned
packed
unpacked
bcd
ascii
Byte
Halbwort
Wort
Doppelwort
little-endian
big-endian
ieee-754-std
32: Einfach
64: Doppelt
80: Erweitert
f = (-1)^s * 1.m * 2^(e-b)
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Verschiebung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer
Befehlsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operanden
Datenspeicher:
- addresse
- Lesedaten
- Schreibedaten
- WE
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- WE
Befehlszähler
- PC (t)
- PC (t+1)
ALU:
- Ergebnis
- Null
Befehlsspeicher
- Leseaddresse
- Lesedaten
Func ALU-Op ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
- eq: equal
- ne: not equal
- gt: greater than
- ge: greater than equal
- lt: less than
- le: less than equal
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
Befehlszählerrelativ: Zu dem aktuellen Befehlszähler wird der Wert im Register addiert, als Zweierkomplement
Befehlsindirekt: Der Befehlszähler wird durch das Register ersetzt
Befehlszählerrelativ: PC_neu = PC_alt + (I << 2)
Befehlszählerndirekt: PC_neu = PC_alt & 0xf000 0000 | (I << 2)
JAL: Jump and Link, speichern zusätzlich die Addresse die dem Sprungbefehl folgt
j, b*, jr: Befehlszählerrelativ, Absolut, Befehlszählerindirekt
jal
jalr
beqz*, bnez*
beq, bne
bgtz, bgez
bgt*, bge*
bltz, blez
blt*, ble*
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
Zustandselemente, Pipeline
Befehlsspeicher
Befehlszähler
Registersatz
Datenspeicher
Pipeline-Segment
Pipeline-Stufe
Pipeline-Register
IF: Instruction Fetch Befehlsbereitstellungsphase
ID: Instruction Decode/Register Fetch: Befehlsdekodier und Operandenbereitstellungsphase
EX: Execute Addess Calculation: Ausführungsphase
MEM: Memory Access: Speicherzugriffsphase
WB: Write Back: Resultatspeicherphase
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
VLIW - Very Long Instruction Word
1.) In Order Issue In Order Completion: VLIW-Prozessor
2.) Out Of Order Issue Out Of Order Completion: OOE-Prozessor
1.) Statische Sprungvorhersage
1.1.) Predict Always not taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken forward not taken
2.) Dynamisch, ein oder zwei Bit prädiktor
2.1.) Taken, Not Taken
2.2.) Strongly Taken, Weakly Taken, Strongly NT, Weakly NT
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
rem*, abs*, neg*, not*
and, andi
or, ori
xor, xori
nor
Datenbewegungsbefehle
arithmetisch/logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Programmsteuerbefehle
Synchronisationsbefehle
Stack- und Kellerarchitektur
Speicher- Speicherarchitektur
Lade und Speicherarchitektur
Register- Speicherarchitektur
Akkumulatorarchitektur
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Intel 8087, ATAM 862, Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
singned
unsigned
packed
unpacked
bcd
ascii
Byte
Halbwort
Wort
Doppelwort
little-endian
big-endian
ieee-754-std
32: Einfach
64: Doppelt
80: Erweitert
f = (-1)^s * 1.m * 2^(e-b)
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Verschiebung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer
Befehlsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operanden
Datenspeicher:
- addresse
- Lesedaten
- Schreibedaten
- WE
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- WE
Befehlszähler
- PC (t)
- PC (t+1)
ALU:
- Ergebnis
- Null
Befehlsspeicher
- Leseaddresse
- Lesedaten
Func ALU-Op ALU-Operanden
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
- eq: equal
- ne: not equal
- gt: greater than
- ge: greater than equal
- lt: less than
- le: less than equal
Absolut: Branch
Befehlszählerrelativ: Jump
Befehlszählerindirekt: Jump Register
Befehlszählerrelativ: Zu dem aktuellen Befehlszähler wird der Wert im Register addiert, als Zweierkomplement
Befehlsindirekt: Der Befehlszähler wird durch das Register ersetzt
Befehlszählerrelativ: PC_neu = PC_alt + (I << 2)
Befehlszählerndirekt: PC_neu = PC_alt & 0xf000 0000 | (I << 2)
JAL: Jump and Link, speichern zusätzlich die Addresse die dem Sprungbefehl folgt
j, b*, jr: Befehlszählerrelativ, Absolut, Befehlszählerindirekt
jal
jalr
beqz*, bnez*
beq, bne
bgtz, bgez
bgt*, bge*
bltz, blez
blt*, ble*
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
Zustandselemente, Pipeline
Befehlsspeicher
Befehlszähler
Registersatz
Datenspeicher
Pipeline-Segment
Pipeline-Stufe
Pipeline-Register
IF: Instruction Fetch Befehlsbereitstellungsphase
ID: Instruction Decode/Register Fetch: Befehlsdekodier und Operandenbereitstellungsphase
EX: Execute Addess Calculation: Ausführungsphase
MEM: Memory Access: Speicherzugriffsphase
WB: Write Back: Resultatspeicherphase
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
VLIW - Very Long Instruction Word
1.) In Order Issue In Order Completion: VLIW-Prozessor
2.) Out Of Order Issue Out Of Order Completion: OOE-Prozessor
1.) Statische Sprungvorhersage
1.1.) Predict Always not taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken forward not taken
2.) Dynamisch, ein oder zwei Bit prädiktor
2.1.) Taken, Not Taken
2.2.) Strongly Taken, Weakly Taken, Strongly NT, Weakly NT
Re: 00001
lb, lbu: Laden eines Bytes
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
and, andi
xor, xori
or, ori
nor
rem*, abs*, neg*, not*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Stackarchitektur: 8087 - Intel, ATAM862 Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
BCD
ASCII
Byte
Halbwort
Wort
Doppelwort
Nibble
Byte
Halbwort
Wort
Doppelwort
Quadwort
Tenbyte
Little-Endian
Big-Endian
Gleitkomma:
32: Einfach
64: Doppelt
80: Erweitert
f = (-1)^s * 1.m * 2^(e-b)
Registeraddressierung
Unmittelbare Addressierung ++++
Direkte und Absolute Addresserierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung/Displacement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer +++ (a)
Befehlsdekodierer
ALU
Befehlsspeicher
Befehlszähler
Datenspeicher
Registersatz
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x Bit Shifter
Funktionsdekodierer: +++ (a) Schon geklärt
1.) Func
2.) ALU-Op
3.) ALU-Operanden +++ heisst das Operanden oder Operation? Operanden macht Sinn, weil entschieden was an die ALU kommt
Befehlsdekodier:
1.) MemToReg
2.) MemWrite
3.) Branch
4.) ALU-Src
5.) ALU-Op
6.) RegDst
7.) RegWrite
ALU:
1.) ALU-Ergebnis
2.) Null
Datenspeicher:
- Lese-Daten
- Schreibedaten
- Addresse
- WE
Registersatz:
- Lese-Daten-1 ++++ (Daten, Register???)
- Lese-Daten-2
- Lese-Register-1
- Lese-Register-2
- Schreidaten
- Schreibe-Register
- WE
Befehlszähler
- PC (t)
- PC (t+1)
Befehlsspeicher:
- Lesedaten
- Leseaddresse
Func ALU-Op ALU-Operanden +++ Operanden oder Operation???
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation ?? Operanden
r-typ 000 000 1 1 0 0 0 0 10
Sprungbefehle
1.) Bedingt
2.) Unbedingt
+++ Genau angucken
1.) Absolut: Branch
2.) Befehlszählerrelativ: Jump
3.) Befehlszählerindirekt: Jump Register
- eq
- ne
- lt
- le
- gt
- ge
1.) Befehlszählerrelativ: Das Ziel wird errechnet, indem man den aktuellen Befehlszähler + einem festen Wert ausrechnet und dahin springt
PC_neu = PC_alt + (I << 2)
2.) Befehlszählerindirekt: Der Wert als Befehlszähler wird ersetzt
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
1.) Befehl holen
2.) Befehl dekodieren/Befehlausführen
Pipelining
Zustandselemente
1.) Befehlsspeicher
2.) Befehlszähler
3.) Registersatz
4.) Datenspeicher
Pipeline
- Pipeline-Phase
- Pipeline-Stufe **
- Pipeline-Segmente **
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
1.) IF - Instruction Fetch - Befehlsbereitstellungsphasen
2.) ID - Instruction Decode / Register Fetch: Befehlsdekodierphase - Operandenbereitstellungsphase
3.) EX - Execute Address Calculation - Ausführungsphase
4.) MEM - Memory Access - Speicherzugriffsphase
5.) WB - Write Back - Resultatspeicherphase
1.) Statisches Scheduling - In Order Issue In Order Completion - VLIW - Prozessor - Very Long Instruction Word
2.) Dyanmisch: Out Of Order Issue Out Of Order Completion - OOE - Prozessor
1.) Statische Sprungvorhersage:
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken, forward Not Taken
2.) Dynamische Sprungvorhersage
2.1.) Predict Taken, Predict Not Taken
2.2.) Predict Strongly Taken, Strongly Not Taken, Weakly Taken, Weakly Not Taken
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes
addi, addu, addiu
sub
mult, multu
div, divu
and, andi
xor, xori
or, ori
nor
rem*, abs*, neg*, not*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur
Stackarchitektur: 8087 - Intel, ATAM862 Atmel
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
BCD
ASCII
Byte
Halbwort
Wort
Doppelwort
Nibble
Byte
Halbwort
Wort
Doppelwort
Quadwort
Tenbyte
Little-Endian
Big-Endian
Gleitkomma:
32: Einfach
64: Doppelt
80: Erweitert
f = (-1)^s * 1.m * 2^(e-b)
Registeraddressierung
Unmittelbare Addressierung ++++
Direkte und Absolute Addresserierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung/Displacement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer +++ (a)
Befehlsdekodierer
ALU
Befehlsspeicher
Befehlszähler
Datenspeicher
Registersatz
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x Bit Shifter
Funktionsdekodierer: +++ (a) Schon geklärt
1.) Func
2.) ALU-Op
3.) ALU-Operanden +++ heisst das Operanden oder Operation? Operanden macht Sinn, weil entschieden was an die ALU kommt
Befehlsdekodier:
1.) MemToReg
2.) MemWrite
3.) Branch
4.) ALU-Src
5.) ALU-Op
6.) RegDst
7.) RegWrite
ALU:
1.) ALU-Ergebnis
2.) Null
Datenspeicher:
- Lese-Daten
- Schreibedaten
- Addresse
- WE
Registersatz:
- Lese-Daten-1 ++++ (Daten, Register???)
- Lese-Daten-2
- Lese-Register-1
- Lese-Register-2
- Schreidaten
- Schreibe-Register
- WE
Befehlszähler
- PC (t)
- PC (t+1)
Befehlsspeicher:
- Lesedaten
- Leseaddresse
Func ALU-Op ALU-Operanden +++ Operanden oder Operation???
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation ?? Operanden
r-typ 000 000 1 1 0 0 0 0 10
Sprungbefehle
1.) Bedingt
2.) Unbedingt
+++ Genau angucken
1.) Absolut: Branch
2.) Befehlszählerrelativ: Jump
3.) Befehlszählerindirekt: Jump Register
- eq
- ne
- lt
- le
- gt
- ge
1.) Befehlszählerrelativ: Das Ziel wird errechnet, indem man den aktuellen Befehlszähler + einem festen Wert ausrechnet und dahin springt
PC_neu = PC_alt + (I << 2)
2.) Befehlszählerindirekt: Der Wert als Befehlszähler wird ersetzt
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
1.) Befehl holen
2.) Befehl dekodieren/Befehlausführen
Pipelining
Zustandselemente
1.) Befehlsspeicher
2.) Befehlszähler
3.) Registersatz
4.) Datenspeicher
Pipeline
- Pipeline-Phase
- Pipeline-Stufe **
- Pipeline-Segmente **
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausführen
5.) Operanden in Architekturregister zurückschreiben
1.) IF - Instruction Fetch - Befehlsbereitstellungsphasen
2.) ID - Instruction Decode / Register Fetch: Befehlsdekodierphase - Operandenbereitstellungsphase
3.) EX - Execute Address Calculation - Ausführungsphase
4.) MEM - Memory Access - Speicherzugriffsphase
5.) WB - Write Back - Resultatspeicherphase
1.) Statisches Scheduling - In Order Issue In Order Completion - VLIW - Prozessor - Very Long Instruction Word
2.) Dyanmisch: Out Of Order Issue Out Of Order Completion - OOE - Prozessor
1.) Statische Sprungvorhersage:
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken, forward Not Taken
2.) Dynamische Sprungvorhersage
2.1.) Predict Taken, Predict Not Taken
2.2.) Predict Strongly Taken, Strongly Not Taken, Weakly Taken, Weakly Not Taken