Integrationsdichte Kurzbezeichnung Anzahl Transistoren
Small Scale Integration SSI 100
Medium Scale Integration MSI 1.000
Large Scale Integration LSI 10.000
Very Large Scale Integration VLSI 100.000
Ultra Large Scale Integration ULSI 1.000.000
Super Large Scale Integration SLSI 10.000.000
Extra Large Scale Integration ELSI 100.000.000
Giga Scale Integration GSI > 1.000.000.000
Strukturbreite: 10 Mikro Meter bis 0.01 Mikro Meter
Intel Xeon 22-Core Xeon Bradwell E5
Maskenprogrammierbar: ASIC
Elektrisch Programmierbar: FPGA
Pipelining: Überlappende Befehlsverarbeitung
CISC, RISC
EPIC: Explicitly Parallel Instruction Computing: Mischung aus RISC und CISC
Befehlssatzarchitektur: Instruction Set Architecture ISA: definiert die Grenze zwischen Hardware und Software
Befehlssatzarchitektur = Prozessoarchitektur = Programmiermodell
Prozessorarchitektur keine Aussagen über Detail der Hardware
Mikroarchitektur: Implementierung des Prozessors
Prozessortechniken: Mikroarchitektur, Prozessoarchitektur
binärkompatibel
Prozessorfamilie: Gleiche Basisarchitektur
1.) Register und Speichermodell
2.) Datenformate
3.) Befehlssatz
4.) Befehlsformate
5.) Addressierungsarten
Addressraumorganisation
Architekturregister: Vom Programmierer ansprechbare Register
Allgemeine Register, Multimediaregister, Gleitkommaregister, Spezialregister
b: Byte
h: Halbwort (16 Bit)
w: Wort (32 Bit)
d: Doppelwort (64 Bit)
logischer Addressraum
1.) Programmcode Statische Daten
2.) Dynamische Daten (Heap)
3.) Laufzeitstapel (Stack)
4.) Bereich für E/A
aligned: Big-Endian, Little-Endian
Lerne den Spruch: Little-Endian ist falsch rum, Big-Endian ist richtig rum
SSL - Shift Logical Left
SLR - Shift Logical Right
SAR - Shift arithmetic Right
ROL - Rotate Left
ROR - Rotate Right
1.) Befehlssatz
2.) Befehlsformate
Befehlsformate
operaion code
instruction format
1.) Dreiaddressformat: opcode - dest - src1 - src2
2.) Zweiaddressformat: opcode - dest/src1 src2
3.) Einaddressformat: opcode - src
4.) Nulladdressformat: opcode
Quell-Operanden: src1, src2
Zieloperand: dest
Lade- und Speicherarchitektur: Nur Lade und Speicherbefehle transportieren Daten zwischen dem Hauptspeicher und den Registern
Register-Speicher: Mindestens eines ist Register eines ist Speicher
Einaddressbefehle: Akkumulatorarchitektur
Speicher-Speicherarchitektur: Einziger: TI 9900 Texas Instruments
Befehle: load, store, sub, add
Registeraddressierung: Opcode Registerbezeichner RegisterBezeichner RegisterBezeichner
Unmittelbare Addressierung: Opcode Operand
Direkt oder Absolut: Opcode RegisterBezeichner Speicheraddresse
Registerindirekte Addressierung mit Verschiebung: Opcode Registerbezeichner Verschiebung
Befehlszählerrelativ
Registeraddressierung: Opcode Registerbezeichner RegisterBezeichner RegisterBezeichner
Registerbezeichner 2 zeigt auf Registersatz
Unmittelbare Addressierung: Opcode Operand
Direkt oder Absolut: Opcode RegisterBezeichner Speicheraddresse
Speicheraddresse zeigt Auf Speicher
Registeraddressierung: Opcode Registerbezeichner RegisterBezeichner RegisterBezeichner
Registerbezeichner 2 zeigt Registersatz zeigt auf Operand im Speicher
Registerindirekte Addressierung mit Verschiebung: Opcode Registerbezeichner Verschiebung
Indizierte Addressierung: OpCode Registerbezeichner
Befehlszählerrelativ
Register load R1, R2
Unmittelbare load R1, const
direkt, absolut load R1, (const)
registerindirekt load R1, (R2)
Postinkrement load R1, (R2)+
Prädekrement load R1, -(R2)
registerindirekt mit
Verschiebung load R1, displ(R2)
Indiziert load R1, displ(R2,R3)
Befehlszählerrelativ branch displ
MARS: MIPS Assembler and Runtime Simulator
Register: $zero,
$at,
$v0 - $v1,
$a0 - $a3,
$t0 - $t9,
$s0 - $s7,
$k0 - $k1,
$gp,
$sp,
$fp,
$ra
R-Typ-Befehle
I-Typ-Befehle
J-Typ-Befehle
R-Typ
I-Typ
J-Typ
R-Typ: op rs rt rd sa func
I-Typ: op rs rt immediate
J-Typ: op target address
R-Typ:
op
rs
rt
rd
sa
func
I-Typ:
op
rs
rt
immediate
J-Typ:
op
target address
R-Typ:
op 31 bis 26
rs 25 bis 21
rt 20 bis 16
rd 15 bis 11
sa 10 bis 6
func 5 bis 0
I-Typ: op rs rt immediate
op 31 bis 26
rs 25 bis 21
rt 20 bis 16
immidiate 15 bis 0
J-Typ:
op 31 bis 26
target address 25 bis 0
Quell und Zielregister:
rs
rt
rd
Unmittelbarer Operand
immidiate
Verzweigungsaddresse
target address
Verschiebewerte
sa
move
mov.s Transport zwischen Universalregistern
mov.d Transport zwischen Gleitkommaregistern
mfhi, mflo Transfer zwischen Universalregister und Register Hi und Lo
mthi, mtlo
mfc1, mtc1 Transfer zwischen Universalregistern und Gleitkommaregistern
sll, sllv Logische Linksverschiebung
srl, srlv Logische Rechtsverschiebung
sra, srav Arithmetische Rechtsverschiebung
rol, ror Rotation links bzw. rechts
slt, slti, sltu, sltiu Vergleich kleiner
sgt, sgtu Vergleich gleich bzw. ungleich
sge, sgeu Vergleich grösser gleich
sle, sleu Vergleich kleiner gleich
I-Typ-Transportbefehl: Laden eines wortes - lw
1.) Inhalt des Quellregisters auslesen:
Basisaddresse für die Bestimmung der Zieladdresse im Datenspeicher
Quellregister: rs-feld
Vorgang: Befehlszähler -> Befehlsspeicher -> Registersatz (Lese-Register-1, Lese-Daten-1) -> Datenspeicher
2.) lw: Offset
Unmittelbare Feld des Befehlswortes (Befehle [15:0])
Datenpfad: Befehlszähler -> Befehlsspeicher -> Vorzeichenerweiterungseinheit -> ALU -> Datenspeicher
Und: Befehlszähler -> Befehlsspeicher -> Register-Satz -> Lese-Daten-1 -> ALU -> Addresse, Datenspeicher
ALU: Immidiate + Lese-Daten-1
3.) Lese-Daten von Datenspeicher -> Schreibedaten, Schreiberegister von Registersatz
rt-Feld: Register Destination
Befehlswort (Befehl [20:16])
Steuersignal: RegWrite: WE - Am Registersatz
4.) Schritt: Addresse des nächsten Befehls:
PC (t) -> Addierer + 4 -> PC (t+1)
Datenpfad - zum Speichern eines Wortes
sw
in den Datenspeicher geschrieben: rt-Feld Befehl[20:16]
WE-Port des Datenspeichers: MemWrite
MemWrite
RegWrite
Kontrolle des Multiplexers: ALU-Src