/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/2023-12-31/cs2v2.txt


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