/media/sda-magnetic/david/Dok-15-2023-11-27/informatik/fsm2024-02-10/auswendig20240205e.txt


Ich kann aber mehr von der Kurseinheit anbieten, während das nicht sitzt - von dem Ding, sitzt dafür, der Anfang ist halt nicht optimal

zum Beispieö

John V. Atanasov und Clifford Berry
Charles Babagges
John von Newman
Alan Turing
Conrad Zuse

Dann kommt -

Blockschaltbild eines computer
    Rechenwerk
    Leitwerk
        Programmzähler PC
        Instruction Register IR
            OpCode
            Addressfeld
        Ablaufsteuerung
            Befehl Holen - Fetch
            Befehl ausführen - Execute
    Speicher
        Befehl Datum Befehl Datum Befehl
    E/A

1. RESET
    Initialisiere Prozessorregister: PC <- xxxx
2. Befehlszyklus
    Wiederhole solange Betriebsspannung vorhanden
        Hole Operationscode
            IR <- M [PC++]
        Hole Operanden
            Operandenaddresse oder Operand <- M [PC++]
        Führe Operation gemäss OpCode aus
            Verknüpfung
            Transfer
            Sprungbefehl

Komplexes Schaltwerk
    Operationswerk
    Steuerwerk

Universelles Operationswerk: Rechenwerk
Umschaltbares Steuerwerk: Leitwerk


1.) Linke Seite vom Ausdruck: Variable
2.) Rechte Seite vom Ausdruck: Ausdruck

1.) Variable: Für jede Variable ist ein Register vorgesehen
2.) Für jeden Ausdruck ein Funktionsschaltnetz

1.) Variable: Für jede Variable ist ein Register vorgesehen
2.) Für jeden Ausdruck ein Funktionsschaltnetz
3.) Ausdrücke können parallel ausgeführt werden, wenn verschiedene Variablen, keine echte Datenabhängigkeit
4.) Vor ein Register muss ein MÙX geschaltet werden, wenn es zu verschiedenen Zuweisungen kommt
5.) Konstanten fest verdrahtet

1.) Statusvariable: "ZERO"
2.) Steuervariable: "TEST"

Beispiel 1en Zähler

1.) Befehlsdekodierer
2.) Funktionsdekodierer
3.) Registersatz
4.) ALU
5.) Datenspeicher
6.) Befehlsspeicher
7.) Befehlszähler
8.) Vorzeichenerweiterungseinheit
    4 x MUX
    1 x AND
    2 x Addierer
    1 x 2 Bit Shifter

Befehlsdekodierer
    MemToReg
    MemWrite
    Branch
    ALUSrc
    ALUOp
    RegDst
    Regwrite

Funktionsdekodierer
    Func
    ALU-Op
    ALU-Operation

Registersatz
    Lese-Daten-1
    Lese-Daten-2
    Schreibedaten
    Lese-Register-1
    Lese-Register-2
    Schreiberegister
    WE

ALU
    Ergebnis
    Null

Datenspeicher
    Lesedaten
    Addresse
    Schreibedaten
    WE

AND:
    PCSrc

Befehlsspeicher
    Leseaddresse
    Lesedaten

Befehlszähler
    PC (t)
    PC (t+1)

ALU-Op          Func                ALU-Operation
00              x                   010 - add
01              x                   110 - sub
10              100 000 - add       010 - add
11              n/a                 n/a

                OPCode      RegDst          RegWrite        Branch          ALU-Src     MemToReg        MemWrite        ALU-Op
r-typ           000 000     1               1               0               0           0               0               10

1.) Einzyklusmikroarchitektur
    Zustandselemente
    Datenpfade
    Vor und Nachteile
2.) Mehrzyklusmikroarchitektur
    Funktionsweise
    Vor und Nachteile
3.) Pipeline Mikroarchitektur
    Pipeline Prinzip
    Pipeline Stufe
    Pipeline Konflikte
    Die MIPS Pipeline
    Datenkonflikte
    Steuerflusskonflikte
    Strutkur und Ressourcen Konflikte

PC - Programmcounter
    32 Bit Register
    Wird nach jedem Taktzyklus inkrementiert
    Wird um 4 inkrementiert

32 Bit Bus
5 Bit Bus

32x32 Bit Registersatz
2 Lese und Schreibport

R-Typ: add, sub, and, or, slt

ALU-Op
00 - addition
01 - subtraktion
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

Datenkonflikte
Steuerflusskonflikte
Struktur und Ressourcenkonflikte

Echte Datenabhängigkeit: ED
Gegenabhänigkeit: GA
Ausgabeabhängigkeit: AA

RAW - Read after Write - ED
WAW - Write after Write: Gegenabhängigkeit
WAR - Write after Read: Ausgabeabhängigkeit

IF: Instruction Fetch
ID: Instruction Decode / Register Fetch
EX: Execute / Address Calculation
MEM: Memory Access
WB: Write Back

I1: 0, IF; 1, ID; 2, EX; 3, MEM; 4, WB (I1 schreibt in $t1)
I2: 5, IF; 6 (I1 liesst von $t1), EX, 7, EX, 8, MEM; 9, WB

I1: 0, IF; 1, ID; 2, EX; 3, MEM; 4, WB
I2: 0, ; 1, IF, 2, ID; 3, EX; 4, MEM; 5, WB

IF  ID  EX  MEM WB
        IF  ID  EX  MEM     WB

I1: addi $t1, $t2, 3
I2: add $t4, $t1, $t3
I3: subi $t1, $t5, 5
I4: subi $t1, $t5, 5

R-Typ
I-Typ
J-Typ

R-Typ: op rs rt rd sa func
I-Typ: op rs rd immidiate
J-Typ: op target address

R-Typ:
    op: Bit 31 bis Bit 26
    rs: Bit 25 bis Bit 21
    rt: Bit 20 bis Bit 16
    rd: Bit 15 bis Bit 11
    sa: Bit 10 bis Bit 6
    func: Bit 5 bis Bit 0
I-Typ:
    op: Bit 31 bis Bit 26
    rs: Bit 25 bis Bit 21
    rd: Bit 20 bis Bit 16
    func: Bit 15 bis Bit 0
J-Typ
    op: Bit 31 bis Bit 26
    target address: Bit 25 bis 0

Vorzeichenerweiterungseinheit -> 2 Bit Shifter -> Addierer 2 -> MUX

MUX4: ALU, Datenspeicher -> Registersatz
MUX3: Addierer1, Addierer2 -> Befehlszähler
MUX2: Vorzeichenerweiterungseinheit, Registersatz -> ALU
MUX1: Befehlswort, 20:16, Befehlswort: 15:11 -> Registersatz

MUX4: ALU, Datenspeicher -> Registersatz (Schreibedaten, Registersatz)
MUX3: Addierer1, Addierer2 -> Befehlszähler
MUX2: Vorzeichenerweiterungseinheit, (Registersatz, Lesedaten) -> ALU
MUX1: Befehlswort, 20:16, Befehlswort: 15:11 -> (Schreiberegister, Registersatz)


SSI: Small Scale Integration
MSI: Medium Scale Integration
LSI: Large Scale Integration
VLSI: Very Large Scale Integration
ULSI: Ultra Large Scale Integration
SLSI: Super Large Scale Integration
ELSI: Extra Large Scale Integration
GSI: Giga Scale Integration

SLL: Shift Logical Left
SLR: Shift Logical Right
SAR: Shift Arithmetich Right
ROL: Rotate Left
ROR: Rotate Right

Lade und Speicherarchitektur
Speicher Speicherarchitektur
Register Speicherarchitektur
Stack und Kellerarchitektur
Akkumulatorarchitektur

Cache
1.) Vollassoziativer Cache
2.) Direkt Abgebildeter Cache
3.) n wege satzassoziativer Cache

1.) Tag
2.) Byteauswahl

1.) Tag
2.) Index
3.) Byteauswahl

1.) Cache-Zeile: Datum
2.) Cache-Block: Umfasst eine Cache-Zeile
3.) Satz: Zusammenfassung von Blöcken

Vollassoziativ: Jede Cache Zeile kann in jedem Block stehen
Blöcke zu Sätzen zusammen gefasst ....

1.) Ortsaddressiert - RAM - addresse
2.) Inhaltsaddressiert - Tag

2.) Inhaltsaddressiert nicht etwa, Datum, sondern Addresse, aber die vom RAM - blos steht ja im Cache, irgendwo - was im RAM ortsaddressiert ist, ist im Cache Inhaltsaddressierung

Anzahl der Cache-Blöcke pro Satz: n
Anzahl der Cache-Blöcke, insgesamt: m

m/n
                            Anzahl der Sätze        Assoziativitität
Vollassoziativ              1                       m=n
n-wege Satzassoziativ       m                       m/n
Direkt Abgebildet           n                       1

Durchschreibeverfahren: Ich fahre durch die Stadt durch in die andere dahinter liegende
Umschreibeverfahren: Ich fahre um die Stadt herum, in die andere dahinter liegende
Rückschreibeverfahren: Ich fahre bis an die Stadtgrenze der ersten Stadt und dann zurück

FIFO - First in First Out
RAND - Random
LRU - Least Recently Used
LFU - Least Frequently Used

Recently: Zu letzt
Frequently: Häufig

MESI

M: Modified - ich habe dich modifiziert
E: Exclusive: Wir sind ein exklusiver Club
S: Shared: Wir scheren uns einen Dreck drum
I: Invalid - wer auch immer ist invalide

RH: Read Hit
WH: Write Hit
WM: Write Miss
RMS: Read Miss Shared
RMH: Read Miss Modified
oder so
SHW: Snoop Hit on Write
SHR: Snoop Hit on Read