Merge remote-tracking branch 'origin/main'

This commit is contained in:
fzzinchemical
2025-07-21 11:52:03 +02:00
20 changed files with 363 additions and 159 deletions

View File

@@ -4,21 +4,21 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "6945bad5f5304a58", "id": "ba40b2b7af1fccbf",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "b169049ef16133ec", "id": "0b3e25477c9392f1",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md", "file": "conflict-files-obsidian-git.md",
"mode": "source", "mode": "source",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "Vorlesung 1" "title": "conflict-files-obsidian-git"
} }
} }
] ]
@@ -185,18 +185,38 @@
"workspaces:Manage workspace layouts": false "workspaces:Manage workspace layouts": false
} }
}, },
"active": "b169049ef16133ec", "active": "0b3e25477c9392f1",
"lastOpenFiles": [ "lastOpenFiles": [
"Semester 6/COMARCH/Zusammenfassung/Vorlesung Kompakt.md", "conflict-files-obsidian-git.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 2.md",
"Semester 6/COMARCH/Klausurvorbereitungs Spreadsheed.md",
"Semester 6/SWTEST/Klausurrelevantes Milan.md",
"Semester 6/COMARCH/Beispiele Klausurfragen.md",
"Semester 6/COMARCH/Zusammenfassung/Fragenkatalog.md",
"Semester 6/COMARCH/Zusammenfassung/Pasted image 20250708193937.png",
"Semester 6/COMARCH/Pasted image 20250709205101.png",
"Semester 6/COMARCH/Pasted image 20250709205049.png",
"Semester 6/SWTEST/CTFL-Kapitel 6.md",
"Semester 6/SWTEST/Klausurvorbereitung.md",
"Semester 4/ITSARCH/Klausurvorbereitung ITSARCH.md",
"Semester 4/ITSARCH/Pasted image 20240704185247.png",
"Semester 4/ITSARCH/Pasted image 20240704185748.png",
"Semester 4/ITSARCH/Pasted image 20240704190109.png",
"Semester 4/ITSARCH/Pasted image 20240709173104.png",
"Semester 4/ITSARCH/Pasted image 20240709174509.png",
"Semester 4/ITSARCH/ITSARCH Vorlesung.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 5.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 4.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 3a.md", "Semester 6/COMARCH/Zusammenfassung/Vorlesung 3a.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 3.md", "Semester 6/COMARCH/Zusammenfassung/Vorlesung 3.md",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 2.md", "Semester 6/COMARCH/Zusammenfassung/Pasted image 20250708193917.png",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md", "Semester 6/COMARCH/Zusammenfassung/Vorlesung 9.md",
"Semester 6/COMARCH/Zusammenfassung/Pasted image 20250708185932.png",
"Semester 6/COMARCH/Zusammenfassung/Vorlesung Kompakt.md",
"Semester 6/COMARCH/Zusammenfassung/COMARCH.7z", "Semester 6/COMARCH/Zusammenfassung/COMARCH.7z",
"Semester 6/ITSARCH/Klausurvorbereitung.md", "Semester 6/ITSARCH/Klausurvorbereitung.md",
"Semester 6/SWTEST/Liste Exams.md", "Semester 6/SWTEST/Liste Exams.md",
"Semester 6/SWTEST/Klausurvorbereitung.md",
"Semester 6/SWTEST/CTFL-Kapitel 6.md",
"Semester 6/SWTEST/CTFL-Kapitel 5.md", "Semester 6/SWTEST/CTFL-Kapitel 5.md",
"Semester 6/SWTEST/CTFL-Kapitel 4-2.md", "Semester 6/SWTEST/CTFL-Kapitel 4-2.md",
"Semester 6/SWTEST/CTFL-Kapitel 4-1.md", "Semester 6/SWTEST/CTFL-Kapitel 4-1.md",
@@ -204,22 +224,10 @@
"Semester 6/SWTEST/CTFL-Kapitel 2.md", "Semester 6/SWTEST/CTFL-Kapitel 2.md",
"Semester 6/SWTEST/CTFL-Kapitel 0.md", "Semester 6/SWTEST/CTFL-Kapitel 0.md",
"Semester 6/SWTEST/CTFL-Kapitel 1.md", "Semester 6/SWTEST/CTFL-Kapitel 1.md",
"Semester 6/ITSARCH/Skript_Notizen/Exploits IDS_IPS.md",
"Semester 6/ITSARCH/Labore/Zusammenfassung.md",
"Semester 6/ITSARCH/Labore/010-Passwortsicherheit.md",
"Semester 6/ITSARCH/Labore/060-portscans.pdf", "Semester 6/ITSARCH/Labore/060-portscans.pdf",
"Semester 6/ITSARCH/Labore/Abbildungen/netstat.png",
"Semester 6/ITSARCH/Labore/Abbildungen", "Semester 6/ITSARCH/Labore/Abbildungen",
"Semester 6/ITSARCH/Labore/Abbildungen/nmap.png",
"Semester 6/COMARCH/Vorlesung", "Semester 6/COMARCH/Vorlesung",
"Semester 6/ITSARCH/Skript_Notizen/Firewalling.md",
"Semester 6/ITSARCH/Skript_Notizen/Hash-Algorithmen.md",
"Semester 6/ITSARCH/Skript_Notizen/IPSEC.md",
"Semester 6/ITSARCH/Skript_Notizen/IPTables.md",
"Semester 6/ITSARCH/Skript_Notizen/SSH.md",
"Semester 6/ITSARCH/Skript_Notizen/TLS 4.5.md",
"Semester 6/SWTEST", "Semester 6/SWTEST",
"Untitled.md",
"Semester 5/BWL", "Semester 5/BWL",
"Semester 6/ITSARCH/Skript_Notizen", "Semester 6/ITSARCH/Skript_Notizen",
"Semester 6/COMARCH", "Semester 6/COMARCH",

View File

@@ -0,0 +1,4 @@
# Was ist das Amdahlsche Gesetz
Das Amdahlsche Gesetz bezieht sich auf die maximale Prozessbeschleunigung, die man anhand X Prozessoren im Multi-Threading erreichen kann.
$µs = \frac{1}{1-p+\frac{p}{s}}$

View File

@@ -0,0 +1,8 @@
# Hazards
## DATA Hazard
![[Pasted image 20250709205101.png]]
Durch 'optimierungen' (verlagern des 2. LOAD WORD lw Befehls) wird Stalling verhindert und man spart sich 2 Takte. --> 11 Takte
## CONTROL Hazard
## STRUCT Hazard
Es dürfen Fetch und Memory nicht gleichzeitig geschehen, Fetch müsste anhand eines NOPs delayed werden.

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -0,0 +1,14 @@
# Übung 1
- Beim von-Neumann-Rechner lassen sich Programme im Speicher genauso ändern wie Daten. Wo könnte das sinnvoll sein?
- Beim der Rechner der Harvard-Rechner sind Programme und Daten strikt getrennt. Wo könnte das sinnvoll sein?
- Welche Gatter kennen Sie?
- Welche Darstellungen (graphisch) von Gattern kennen Sie?
- Wie viele unterschiedliche Gatter gibt es, sind möglich?
- Was für Komponenten kennen Sie eine Abstraktionsebene über den Gattern?
- Noch eine Ebene höher?
- Beim der Rechner der Harvard-Rechner sind Programme und Daten strikt getrennt. Wo könnte das sinnvoll sein?
- Was beschreibt das Mooresche Gesetz?
- Auf einem Datenpfad benötigt das Laden der Eingaberegister 5 ns, die ALU-Verarbeitung 10 ns und das Rückspeichern 5 ns. Wie viel MIPS hat dieser Rechner?
$\frac{1}{20^{-9}s} = 0.05 * 10^9 = 50 \text{ MIPS}$

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@@ -22,10 +22,10 @@
1. **Ebene 0 Digitale Logik:** Gatter, Flipflops 1. **Ebene 0 Digitale Logik:** Gatter, Flipflops
2. **Ebene 1 Mikroarchitektur:** ALU, Register, Datenpfade 2. **Ebene 1 Mikroarchitektur:** ALU, Register, Datenpfade
3. **Ebene 2 ISA (Instruction Set Architecture):** Maschinensprache 3. **Ebene 2 Befehlssatzachritektur (ISA):** Maschinensprache
4. **Ebene 3 Betriebssystemebene:** Multiprogramming, IO-Abstraktion 4. **Ebene 3 Betriebssystem:** Multiprogramming, IO-Abstraktion
5. **Ebene 4 Assemblersprache:** maschinennahe Programmierung 5. **Ebene 4 Assemblersprache:** maschinennahe Programmierung
6. **Ebene 5 Höhere Programmiersprachen:** unabhängige Algorithmen 6. **Ebene 5 Problemorientierte Sprachen:** unabhängige Algorithmen, Compiler oder Interpreter
--- ---
@@ -87,16 +87,6 @@
--- ---
### 📝 Organisatorisches
- **Vorlesung:** Do 13:3015:00
- **Übung:** Do 15:1516:00
- **Labor:** Do 16:1519:15 (alle 2 Wochen)
- **Prüfung:** E-Klausur 90 min (mind. 50% zum Bestehen)
- **Voraussetzungen:** DIGIT & BESYST bestanden
---
### 🧠 Für die Klausur merken ### 🧠 Für die Klausur merken
✅ Unterschiede Von-Neumann vs. Harvard-Architektur ✅ Unterschiede Von-Neumann vs. Harvard-Architektur

View File

@@ -17,7 +17,7 @@
- Auswirkungen: - Auswirkungen:
- Kleinere Strukturen → geringere Kosten - Kleinere Strukturen → geringere Kosten
- Mehr Komponenten → höhere Leistung - Mehr Komponenten → höhere Leistung
- Geringerer Stromverbrauch - > Resultierend: Geringerer Stromverbrauch
- Aber: Miniaturisierung wird zunehmend teurer und schwieriger. - Aber: Miniaturisierung wird zunehmend teurer und schwieriger.
--- ---
@@ -25,12 +25,12 @@
### 📊 Leistungsmessung von Computern ### 📊 Leistungsmessung von Computern
- **System-Benchmarks:** Cinebench, 3DMark, HPC Challenge - **System-Benchmarks:** Cinebench, 3DMark, HPC Challenge
- **Kennzahlen:** - **Kenngrößen:**
- Instruktionen/Sekunde (IPS), FLOPS - Instruktionen/Sekunde (IPS), FLOPS (Floating point operations/second)
- Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC) - Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC)
- Speicherzugriffszeit, Durchsatz - Speicherzugriffszeit, Durchsatz
- Netzwerk- & Grafikleistung (FPS, TPS) - Netzwerk- & Grafikleistung (FPS, TPS)
- Kritik an MIPS: „Misleading Information to Promote Sales“ nicht immer aussagekräftig. - Kritik an MIPS: „Misleading Information to Promote Sales“ nicht immer aussagekräftig. (MIPS => Million instructions per second)
--- ---
@@ -39,10 +39,13 @@
- **Zustände:** durch Bitmuster repräsentiert - **Zustände:** durch Bitmuster repräsentiert
- **Operation:** Boolesche Funktion auf Teilzuständen - **Operation:** Boolesche Funktion auf Teilzuständen
- Vergleichbare Modelle: - Vergleichbare Modelle:
- Schaltnetz (ohne Schleifen) - Schaltnetz: keine Schleifen, keine Rückkopplung)
- Endlicher Automat (deterministisch/nichtdeterministisch) - Endlicher Automat (Deterministisch und Nichtdeterministisch)
- Kellerautomat (mit Stack) - Kellerautomat (unendlich, aber Zugriff nur auf oberstes Element)(Hardwarelimitierungen?)
- Turingmaschine (unendliches Band) - Turing-Maschine (endliche Zustände des Automaten, unendliches Band zum Lesen und Schreiben)
![[Pasted image 20250708185128.png]]
![[Pasted image 20250708185152.png]]
![[Pasted image 20250708185618.png]]
--- ---
@@ -64,22 +67,44 @@
- Operationen: +, , *, /, logische Operationen - Operationen: +, , *, /, logische Operationen
- Moderne CPUs: mehrere Register → direkte Register-Register-Operationen - Moderne CPUs: mehrere Register → direkte Register-Register-Operationen
- Ältere CPUs: Akkumulator-Register für ALU-Operationen - Ältere CPUs: Akkumulator-Register für ALU-Operationen
![[Pasted image 20250708185932.png]]****
#### Steuerwerk #### Steuerwerk
- Verantwortlich für: - Verantwortlich für:
- Ausführung der Befehle - Ausführung der Befehle
- Datenflusskontrolle - Datenflusskontrolle
- Ausnahmebehandlung & Interrupts - Ausnahmebehandlung & Interrupts
#### Register
- Program Counter PC
- Befehlsregister (Instruction Registers IR)
- **optional**: Stackpointer SP
- **Statusregister**: Zustandsregister, Flags usw.
- Einfache CPUs haben einen speziellen Akkumulator-Register (Accu)
- Aus diesem wird ein Wert gelesen
- Ergebnis einer Operation wird hier gelagert
- Moderne CPUs können nicht direkt Daten aus dem Hauptspeicher in das Rechenwerk lesen (Sicherheit oder warum?)
#### Bottleneck Datentransfer
| Speichertyp | Geschwindigkeit |
| -------------------- | -------------------- |
| CPU Register | < Nanosekunde |
| CPU Cache | ~wenige Nanosekunden |
| Arbeitsspeicher | 60-70 Nanosekunden |
| Sekundärspeicher SSD | 0,4 ms |
| Sekundärspeicher HDD | 8-10 ms |
--- ---
### 🧵 Befehlssatzarchitekturen (ISA) ### 🧵 Befehlssatzarchitekturen (ISA)
**Befehle bestimmen die Architektur und umgekehrt**
#### 1⃣ Stack-Architektur #### 1⃣ Stack-Architektur
- Operanden und Ergebnisse liegen auf Stack. - Operanden und Ergebnisse liegen auf Stack.
- Vorteile: kompakter Code, minimaler Prozessorzustand - Benötigt Stack Pointer **SP Register**
- Ergebnis wird final auf den Stack gelegt
- Vorteile: kompakter Code, minimaler Prozessorzustand, sog. Null-Address Machine
- Nachteil: viele Speicherzugriffe - Nachteil: viele Speicherzugriffe
- Heute: nur noch in virtuellen Maschinen (JVM, p-Machine) - Heute: nur noch in virtuellen Maschinen (JVM, p-Machine)
@@ -88,6 +113,7 @@
- Ein Register (Akkumulator) für Operanden & Ergebnis - Ein Register (Akkumulator) für Operanden & Ergebnis
- Speicherzugriff für zweiten Operand nötig - Speicherzugriff für zweiten Operand nötig
- Kompakt, aber teuer durch Speicherzugriffe - Kompakt, aber teuer durch Speicherzugriffe
- **Ein-Adress-Maschine**
#### 3⃣ Register-Memory-Architektur #### 3⃣ Register-Memory-Architektur
@@ -109,14 +135,27 @@
### 🔥 RISC vs CISC ### 🔥 RISC vs CISC
|**Merkmal**|**RISC**|**CISC**| | **Merkmal** | **RISC** | **CISC** |
|---|---|---| | --------------- | ----------------------------------- | ------------------------------- |
|**Befehlssatz**|Einfach, einheitlich, kurze Befehle|Komplex, unterschiedliche Länge| | **Befehlssatz** | Einfach, einheitlich, kurze Befehle | Komplex, unterschiedliche Länge |
|**Hardware**|Einfach, energieeffizient|Komplex oder Mikroprogramme| | **Hardware** | Einfach, energieeffizient | Komplex oder Mikroprogramme |
|**Codegröße**|Größer|Kompakter| | **Codegröße** | Größer | Kompakter |
|**Beispiele**|ARM, MIPS, SPARC, PowerPC|x86 (Intel, AMD), Zilog Z80| | **Beispiele** | ARM, MIPS, SPARC, PowerPC | x86 (Intel, AMD), Zilog Z80 |
|**Vorteile**|Schneller bei genügend Registern|Speichereffizient| | **Vorteile** | Schneller bei genügend Registern | Speichereffizient |
|**Nachteile**|Mehr Programmspeicher nötig|Langsame komplexe Befehle| | **Nachteile** | Mehr Programmspeicher nötig | Langsame komplexe Befehle |
Unterschied zwischen CISC und RISC CPUs Gibt es Mischformen?
| ==Merkmal== | ==CISC (Complex Instruction Set Computer)== | ==RISC (Reduced Instruction Set Computer)== |
| :--------------- | :------------------------------------------ | :------------------------------------------ |
| Befehlssatz | Viele, komplexe Befehle | Wenige, einfache Befehle |
| Hardwareaufbau | Komplexe Steuerlogik oder Mikroprogramme | Einfache, schnelle Hardware |
| Befehlslänge | Unterschiedlich lang (z.B. 115 Byte) | Gleich lang (z.B. 4 Byte) |
| Operationen | Direkt mit Speicher möglich | Nur mit Registern (Load/Store-Prinzip) |
| Speicherbedarf | Geringer, da kompakter Code | Höher, da mehr Befehle nötig |
| Energieeffizienz | Weniger effizient | Höher, da keine ungenutzten Logikblöcke |
| Fokus | Effizienz bei Assembler-Programmierung | Optimierung für Compiler und Pipeline |
--- ---

View File

@@ -28,16 +28,9 @@
- 32 Register: z.B. `$s0-$s7`, `$t0-$t9`, `$zero` (immer 0), `$sp`, `$ra`\ - 32 Register: z.B. `$s0-$s7`, `$t0-$t9`, `$zero` (immer 0), `$sp`, `$ra`\
- Daten müssen in Register geladen werden, bevor ALU-Operationen möglich sind.\ - Daten müssen in Register geladen werden, bevor ALU-Operationen möglich sind.\
#### 🛠️ Befehle (Beispiele) #### 🛠️ Befehle
![[Pasted image 20250708193917.png]]
|**Kategorie**|**Befehl**|**Beispiel**|**Bedeutung**| ![[Pasted image 20250708193937.png]]
|---|---|---|---|
|Arithmetisch|`add`|`add $s1,$s2,$s3`|`$s1 = $s2 + $s3`|
|Datentransfer|`lw`, `sw`|`lw $s1,20($s2)`|`$s1 = Memory[$s2+20]`|
|Logisch|`and`, `or`|`and $s1,$s2,$s3`|`$s1 = $s2 & $s3`|
|Bedingte Verzweigung|`beq`, `bne`|`beq $s1,$s2,Label`|Sprung, falls `$s1 == $s2`|
|Unbedingter Sprung|`j`, `jal`|`j Label`|Sprung zu Adresse `Label`|
--- ---
### 🧮 Aufbau der CPU: Datenpfad (Datapath) ### 🧮 Aufbau der CPU: Datenpfad (Datapath)

View File

@@ -3,51 +3,36 @@
### 🔁 Wiederholung aus Teil 1 ### 🔁 Wiederholung aus Teil 1
- **Instruktionstypen (MIPS):** - **Instruktionstypen (MIPS):**
- **R-Format:** arithmetische/logische Operationen (z.B. `add $s1,$s2,$s3`) - **R-Format:** arithmetische/logische Operationen (z.B. `add $s1,$s2,$s3`)
- **Load/Store:** Speicherzugriff (z.B. `lw`, `sw`) - **Load/Store:** Speicherzugriff (z.B. `lw`, `sw`)
- **Branch:** bedingte Sprünge (`beq`, `bne`) - **Branch:** bedingte Sprünge (`beq`, `bne`)
- **Datenpfad (Full Datapath):** - **Datenpfad (Full Datapath):**
- Register → ALU → Speicher → Register - Register → ALU → Speicher → Register
- Separate Instruktions- und Datenspeicher nötig, da ein Zugriff pro Zyklus - Separate Instruktions- und Datenspeicher nötig, da ein Zugriff pro Zyklus
--- ---
### ⚙️ Steuerungseinheit (Control Unit) ### ⚙️ Steuerungseinheit (Control Unit)
- **Erzeugt Steuersignale aus dem Opcode:** - **Erzeugt Steuersignale aus dem Opcode:**
- **MemtoReg:** bestimmt Datenquelle für Register-Schreiben - **MemtoReg:** bestimmt Datenquelle für Register-Schreiben
- **ALUSrc:** wählt ALU-Operand (Register vs. unmittelbarer Wert) - **ALUSrc:** wählt ALU-Operand (Register vs. unmittelbarer Wert)
- **RegWrite:** aktiviert Schreibzugriff auf Register - **RegWrite:** aktiviert Schreibzugriff auf Register
- **MemRead/MemWrite:** steuern Speicherzugriffe - **MemRead/MemWrite:** steuern Speicherzugriffe
- **Branch:** aktiviert bei bedingten Sprüngen - **Branch:** aktiviert bei bedingten Sprüngen
- **ALU Control:** - **ALU Control:**
- Basierend auf Opcode und Funct-Feld - Basierend auf Opcode und Funct-Feld
- Beispiel Mapping: - Beispiel Mapping:
|ALUOp|Funct|ALU-Funktion| | ALUOp | Funct | ALU-Funktion |
|---|---|---| | ----- | ------ | ------------ |
|00|XXXXXX|`add`| | 00 | XXXXXX | `add` |
|01|XXXXXX|`sub`| | 01 | XXXXXX | `sub` |
|10|100000|`add`| | 10 | 100000 | `add` |
|10|100010|`sub`| | 10 | 100010 | `sub` |
|10|100100|`and`| | 10 | 100100 | `and` |
|10|100101|`or`| | 10 | 100101 | `or` |
|10|101010|`slt`| | 10 | 101010 | `slt` |
--- ---
@@ -55,39 +40,25 @@
### 📦 Erweiterter Datenpfad ### 📦 Erweiterter Datenpfad
- Unterstützung für: - Unterstützung für:
- **Jumps (`j`, `jal`):** - **Jumps (`j`, `jal`):**
- PC-Update mit 26-Bit Zieladresse + oberen 4 Bit des alten PCs - PC-Update mit 26-Bit Zieladresse + oberen 4 Bit des alten PCs
- Steuerleitung „Jump“ wird aus Opcode dekodiert - Steuerleitung „Jump“ wird aus Opcode dekodiert
- **Branches (`beq`, `bne`):** - **Branches (`beq`, `bne`):**
- Zieladresse berechnen (PC+4 + Offset << 2) - Zieladresse berechnen (PC+4 + Offset << 2)
- ALU prüft, ob Bedingung erfüllt (Zero-Flag) - ALU prüft, ob Bedingung erfüllt (Zero-Flag)
--- ---
### 🚨 Performance-Betrachtung ### 🚨 Performance-Betrachtung
- **Ein-Zyklus-Datenpfad Problem:** - **Ein-Zyklus-Datenpfad Problem:**
- Längster Pfad (Critical Path) bestimmt Taktfrequenz - Längster Pfad (Critical Path) bestimmt Taktfrequenz
- Beispiel: Load-Befehl → Instruktionsspeicher → Registerfile → ALU → Datenspeicher → Registerfile - Beispiel: Load-Befehl → Instruktionsspeicher → Registerfile → ALU → Datenspeicher → Registerfile
- Unterschiedliche Instruktionen hätten unterschiedliche Latenzen → nicht praktikabel - Unterschiedliche Instruktionen hätten unterschiedliche Latenzen → nicht praktikabel
- **Lösung:** **Pipelining** - **Lösung:** **Pipelining**
- Aufteilung des Datenpfads in Stufen - Aufteilung des Datenpfads in Stufen
- Überlappende Bearbeitung mehrerer Instruktionen - Überlappende Bearbeitung mehrerer Instruktionen
--- ---
### 📝 Für die Klausur merken ### 📝 Für die Klausur merken

View File

@@ -3,14 +3,10 @@
### 🚀 Was ist Pipelining? ### 🚀 Was ist Pipelining?
- **Prinzip:** Überlappende Ausführung mehrerer Instruktionen - **Prinzip:** Überlappende Ausführung mehrerer Instruktionen
- **Analogie:** Waschstraße mehrere Autos gleichzeitig in unterschiedlichen Phasen - **Analogie:** Waschstraße mehrere Autos gleichzeitig in unterschiedlichen Phasen
- **Ziel:** Erhöhung des Durchsatzes (mehr Befehle pro Zeiteinheit) - **Ziel:** Erhöhung des Durchsatzes (mehr Befehle pro Zeiteinheit)
- **Wichtig:** Latenz einzelner Instruktionen bleibt gleich - **Wichtig:** Latenz einzelner Instruktionen bleibt gleich
--- ---
### 🔁 MIPS-Pipeline (5 Stufen) ### 🔁 MIPS-Pipeline (5 Stufen)
@@ -28,14 +24,10 @@
### 📈 Performance-Vorteile ### 📈 Performance-Vorteile
- **Single-Cycle Datapath:** 800 ps pro Befehl - **Single-Cycle Datapath:** 800 ps pro Befehl
- **Pipelined Datapath:** 200 ps pro Befehl - **Pipelined Datapath:** 200 ps pro Befehl
- **Theoretisches Speedup:** Anzahl Stufen = 5x schneller - **Theoretisches Speedup:** Anzahl Stufen = 5x schneller
- **Realität:** Speedup < 5 wegen Hazard-Stalls und unbalancierter Stufen - **Realität:** Speedup < 5 wegen Hazard-Stalls und unbalancierter Stufen
--- ---
### ⚠️ Hazards (Gefahren) ### ⚠️ Hazards (Gefahren)
@@ -43,58 +35,40 @@
#### 🏗 Struktur-Hazards #### 🏗 Struktur-Hazards
- Konflikt um Ressource (z.B. Instruktions- und Datenspeicher gleichzeitig benötigt) - Konflikt um Ressource (z.B. Instruktions- und Datenspeicher gleichzeitig benötigt)
- **Lösung:** Getrennte Instruktions-/Datenspeicher oder Caches - **Lösung:** Getrennte Instruktions-/Datenspeicher oder Caches
#### 📦 Daten-Hazards #### 📦 Daten-Hazards
- Instruktion benötigt Ergebnis der vorherigen Instruktion - Instruktion benötigt Ergebnis der vorherigen Instruktion
- Beispiel: - Beispiel:
```asm ```asm
add $s0, $t0, $t1 add $s0, $t0, $t1
sub $t2, $s0, $t3 sub $t2, $s0, $t3
``` ```
- **Lösungen:** - **Lösungen:**
- **Forwarding (Bypassing):** Ergebnis direkt weiterleiten - **Forwarding (Bypassing):** Ergebnis direkt weiterleiten
- **Stalls:** Pipeline anhalten - **Stalls:** Pipeline anhalten
- **Code Scheduling:** Befehle umsortieren, um Abhängigkeiten zu vermeiden - **Code Scheduling:** Befehle umsortieren, um Abhängigkeiten zu vermeiden
#### 🔁 Kontroll-Hazards #### 🔁 Kontroll-Hazards
- Sprünge (`beq`, `bne`) → Ziel erst spät bekannt - Sprünge (`beq`, `bne`) → Ziel erst spät bekannt
- **Lösungen:** - **Lösungen:**
- Warten bis Branch-Entscheidung (Stalls) - Warten bis Branch-Entscheidung (Stalls)
- **Branch Prediction:** - **Branch Prediction:**
- **Static:** Vorwärts nicht nehmen, Rückwärts nehmen - **Static:** Vorwärts nicht nehmen, Rückwärts nehmen
- **Dynamic:** Verlauf der Branches aufzeichnen und vorhersagen - **Dynamic:** Verlauf der Branches aufzeichnen und vorhersagen
--- ---
### 📦 Optimierungen ### 📦 Optimierungen
- **Forwarding:** Verhindert unnötige Stalls - **Forwarding:** Verhindert unnötige Stalls
- **Branch Prediction:** Reduziert Control Hazards - **Branch Prediction:** Reduziert Control Hazards
- **Separate Speicher:** Löst Struktur-Hazards - **Separate Speicher:** Löst Struktur-Hazards
- **Code Scheduling:** Compiler verschiebt Befehle zur Vermeidung von Stalls - **Code Scheduling:** Compiler verschiebt Befehle zur Vermeidung von Stalls
--- ---
### 📝 Für die Klausur merken ### 📝 Für die Klausur merken

View File

@@ -0,0 +1,186 @@
Softwaretest (Was ist klausurrelevant?)
Klausur besteht aus zwei Teilen:
Ankreuzen (30 Fragen, 1 Punkt, immer nur eine richtig)
Freitextaufgaben (Begründen oder unterscheiden usw. aber immer nur kurze Texte, zwischen 2 und 6 Punkte pro Aufgabe)
14 - 15:30 am 15.07.
Kapitel 0
Folien:
Die Tatsache das es unmöglich ist eine Software vollständig zu testen und Fehlerfreiheit zu garantieren.
Kapitel 1
Folien:
- [x] 7 Fehler und Mangel Unterschied
- [x] 12 Begriffe und deren Zusammenhang
- [x] 15 Validierung Verifikation
- [x] 17 Unterscheidungen zwischen funktionalen- und nichtfunktionalen Anforderungen sollte klar sein und mit Beispielen belegen
- [x] 17 - … Qualitätsmerkmale Beispiele benennen können oder was dazu sagen können (aber nicht im Detail) Nur eine Vorstellung davon haben, was das bedeutet.
- [x] 30 Zwischen analytischer- und konstruktiver Qualitätssicherung unterscheiden können.
- [x] 33 Grundsätze kennen, nicht auswendig wiedergeben aber zumindest verstehen was damit gemeint ist.
- [x] 48 Faktoren die den Testprozess beeinflussen können (Keine Detailfragen)
- [x] 50 Rückverfolgbarkeit (Horizontal und Vertikal)
- [x] 51 Aktivitäten des Testprozesses sollten klar sein und wer das durchführt.
- [x] 54 Grob wissen was die Testüberwachung und -Steuerung beinhaltet. Sachen einordnen können.
- [x] Folgefolien: Grob verstehen was die einzigen Aktivitäten sind.
- [x] 69 Da ist sie ja wieder die Rückverfolgbarkeit
- [x] 73 Unterschied zwischen abstrakten und konkreten Testfällen (Testentwurf immer abstrakt bsp. Äquivalenzklassen, Realisierung ist dann konkret weil da müssen wir dann ja Werte einfügen)
- [x] 74 Testspezifikation (Wie viele Testfälle brauchen wir hier)
- [x] 76 Das Testorakel
- [ ] 81 Entwicklertests bei Psychologie des Testens
- [ ] 82 Vor und Nachteile vom unabhängigen Testen nochmal durchlesen und verstehen.
- [ ] 83 Abstufungen
- [ ] 91 Fragen sollte man beantworten können (Sind da wirklich alle wichtig?) Der Begriff Fehlermaskierung sollte klar sein genauso wie der Unterschied zwischen Testen und Debugging.
Kapitel 2
Folie:
- [x] 10 Verschiedene Teststufen sollten bekannt sein.
- [x] 15 Validierung
- [x] 16 Verifizierung (Bilder oben in der Ecke sind falschrum. Validierung links, Verifizierung rechts)
- [x] 17 Nochmal Unterschied zwischen Validierung und Verifizierung
- [x] 25 Continuous Integration (wissen was das ist)
- [x] Auf agiles Testen wird nicht eingegangen
- [x] 27 Testaktivitäten, Tester früher einbinden
- [x] Folgende Folien Verschiedene Teststufen kennen, Testbasen kennen
- [x] 40 Isoliert wird getestet, Test driven Development
- [x] 51 Ingegrationstest Fehlerzustände und Fehlerwirkungen nochmal lesen und verstehen (Vom Prinzip her)
- [x] 56 Nochmal das Gleiche nur im Unit Test
- [x] 71 Systemtest, Betrachtung des System als ganzen
- [x] 73 Testziele, welche Aspekte sind relevant?
- [x] 76 Fehlerzustände und Fehlerwirkungen lesen
- [x] 82 Verständnis für nichtfunktionale Anforderungen
- [x] 91 Einfach nochmal durchlesen (eventuell keine Frage dazu, aber kann man mit nachdenken ein Beispiel benennen)
- [x] 95 Spezielle Form des Systemtests
- [x] 106 Unterschied Alpha und Beta Test (Alpha intern, Beta - Software wird nach außen gegeben)
- [x] 111 Funktionale, Nichtfunktionale, Strukturelle und Änderungsbezogene Tests. Fehlernach und Regressionstest
- [x] 112 Teststufen und Testarten
- [x] 113 Funktionale Tests
- [x] 114 Nichtfunktionale Tests
- [x] 115 White-Box Tests
- [ ] 123 Testarten und Teststufen (Bankanwendung mal durchlesen)
- [ ] Verschiedene Anlässe für Wartungen
- [ ] 130 Typische Wartungsanlässe sollen grob klar sein. Additive Wartung und andere drei Begriffe sollten klar sein.
- [ ] 140 Könnte man sich nochmal anschauen um einen Überblick zu bekommen
- [ ] 142 Fragen sollten beantwortet werden können.
Kapitel 3
Folie:
- [ ] 6 Software-Qualitätssicherung
- [ ] 18 Grundlegende Arbeitsschritte Reviews sollte so wiedergegeben werden können.
- [ ] 20 Sollte soweit klar sein.
- [ ] 27 Grob was da steht aber nicht jedes Detail
- [ ] 39 Ablauf eines Reviewprozesses sollte grundlegend klar sein.
- [ ] 41 Rollen
- [ ] 42 Reviewarten und sortieren können und grob wissen was das jeweils bedeutet und wo die Unterschiede sind. (Wenn ein Reviewprozess sehr formell durchgeführt wird, was könnte das für ein Prozess sein?)
- [ ] 56 Reviewarten zusammengefasst sollte verstanden werden. Alles außer Frage 3 wichtig
- [ ] 84 Datenflussanalyse und
- [ ] 89 Datenflussanomalien kennen und wissen was das ist (benennen)
- [ ] 94 Begriffe verstehen und erklären können
- [ ] 98 Zyklomatische Zahl
- [ ] 99 Maßtypen
- [ ] 100 Wie berechnet man die zyklomatische Zahl
Kapitel 4.1
Folie:
- [ ] 5 Blackbox von Whitebox unterscheiden können
- [ ] 7 Statischen vom Dynamischen Test abgrenzen können.
- [ ] 8 Begriffe sollten alle klar sein
- [ ] 13 Rückverfolgbarkeit
- [ ] 17 Aufbau eines Testrahmens
- [ ] 18 Begriffe
- [ ] 24 Blackbox
- [ ] 44 Heuristiken und wie man damit die Testfälle minimiert.
- [ ] 64 Begriffe
- [ ] 66 Zustandsübergangstabelle sollte klar sein
- [ ] 69 Der Ablauf sollte klar sein
- [ ] 85 Entscheidungstabellentest Beispiel
- [ ] 109 Fragen beantworten können
Kapitel 4.1
Folie:
- [ ] 3 Begriffe und Zusammenhänge verstehen
- [ ] 5 Blackbox Whitebox immer in Kombination, Fokus auf Blackbox. Erfahrungsbasierte können zusätzlich gemacht werden als Ergänzung
- [ ] Kontrollflusstest und Bedingungstest sollten klar sein.
- [ ] 7 Das ist sowieso wichtig
- [ ] 9 Begriffe
- [ ] 10 Arten von Kontrollflusstests und welchen Sinn die haben (wichtig) -> in Folie 11 besser dargestellt.
- [ ] Anweisungsüberdeckung und Entscheidungsüberdeckung
- [ ] 13 Sollte klar sein, wie sie sich unterscheiden.
- [ ] 16/17 Anweisungsüberdeckung und was man da beachten sollte - Wenn Coverage nicht erreicht wird, dann müssen neue Tests geschrieben werden.
- [ ] 30 Grenze-Inneres-Überdeckung
- [ ] 33 Pfadüberdeckung - theoretische Metrik...
- [ ] 39 Instrumentierung sollte klar sein.
- [ ] 41 Datenflusstest - Definitionen, c-user und p-use Unterschiede sollten klar sein.
- [ ] 47 Bedingungstest - und die anderen die vorher/nacher sind sollte man auch kennen. Unterscheidungen sollen klar sein und auch Beispiel sollte man geben können?
- [ ] 49 und fortfolgend, Verschiedene Arten von Bedingungsüberdeckung sollten klar sein.
- [ ] 58 Lazy Evaluation sollte erklärt werden können und was das für die Praxis bedeutet.
- [ ] 61 Mächtigkeit der White-Box-Testverfahren (Welcher der Aussagen ist richtig) - Prinzip soll verstanden sein.
- [ ] 65/66 Erfahrungsbasierte Testverfahren
- [ ] 67 Intuitive Testfallermittlung
- [ ] 69 Exploratives Testen - Keine Details fragen
- [ ] 73 Begriffe sollten klar sein.
- [ ] Nur auf höherer Ebene, nicht auf Unit-Ebene
- [ ] 83 Zusammenfassung dynamischer Tests
- [ ] Und dann halt die Zusammenfassung von dem Kapitel kann man sich am Ende des Foliensatzes auch nochmal anschauen.
Kapitel 5
Folie:
- [ ] 3 Was man nach dem Kapitel wissen sollte.
- [ ] 8 Vor und Nachteile des unabhängigen Testen
- [ ] 15 Aufgaben von Mitarbeiterqualifikationen einzelne Begriffe kennen.
- [ ] 17/18/19/20 Aufgabenunterteilung sollte bekannt sein. Unterschiede sollen klar sein.
- [ ] 21 Aufgaben des Testers
- [ ] 26 Wann soll mit dem Testen begonnen werden?
- [ ] 28 Aktivitäten der Testplanung - Eine Vorstellung davon haben, was das ist.
- [ ] 33 Soll klar sein
- [ ] 34 Sollte klar sein
- [ ] 37 Das Bild fast die Einflussfaktoren einmal ganz gut zusammen.
- [ ] 45 Fragen sollten beantwortet werden können. (Wie in jedem Kapitel, sind gut um sich auf die Prüfung vorzubereiten)
- [ ] 50 Schätzung des Testaufwands
- [ ] 51 und folgend: Grob die Verfahren kennen, aber muss nicht auswendig gelernt werden. Begriffe kennen, unterscheiden können.
- [ ] 59 Testmetriken - Fehlerbasierte und Testfallbasierte Metriken
- [ ] 61/62 Begriffe sollten klar sein und soll erklärt werden können, was damit gemeint ist.
- [ ] 64 Sinn sollte klar sein
- [ ] 67 Eingangs- und Endekriterien sollen klar sein.
- [ ] 71 Testfortschritts- und Testabschlussbericht wissen was das ist
- [ ] 73 ISO-Norm kennen, aber halt nur erklären können und nicht auswendig
- [ ] 74 Sollte klar sein was da steht.
- [ ] 75 Teststeuerung, Punkte nochmal durchlesen zum verinnerlichen was für Maßnahmen zur Teststeuerung man machen kann.
- [ ] 82 Gleichung kennen und Unterscheidung zwischen Produkt und Projektrisiken kennen.
- [ ] 89 Produktrisiken
- [ ] 97 Risikoorientierte Testplanung Tabelle mit den Inhalten verstehen. "Zahlen die da genannt werden sind haarsträubend"
- [ ] 99 Fragen beantworten können
- [ ] 101 Fehler- und Abweichungsmanagement
- [ ] 102 Testprotokoll: Ursachenalayse ist Aufgabe der Entwickler
- [ ] 103 Fehlermeldung Grundprinzip Ziele sollte man verstanden haben.
- [ ] 105 Fehlerbericht - einheitliches Schema kennen.
- [ ] 109 Bedeutung der Klassen mal anschauen und kennen.
- [ ] 110 Priorität für die auf 109 beschriebenen Klassen
- [ ] 112 Fehlerstatusmodell
- [ ] 121 Begriffe kennen und Unterschiede kennen
- [ ] 125/126 Fragen sollte man beantworten können.
- [ ] 151 Fehler und Folgefehler
- [ ] 155 Diese Folien mal merken
Kapitel 6
Folie:
- [ ] 6 Werkzeugunterstützung für das Testen (Bild betrachten)
- [ ] 7 Bild nochmal
- [ ] 11-14 Wichtig sind: Fehlermanagementwerkzeuge, Anforderungsmanagement, Fehlermanagementwerkezuge,
- [ ] 16 Typen von Testwerkzeugen
- [ ] 17 Review Werkzeuge
- [ ] 18 Statische Analysewerkzeuge
- [ ] 27-29 Testausführungswerkzeuge - 28 Unten die Unterschiedlichen Ansätze zur Automatisierung der Testdurchführung sollen bekannt sein. - Komparatoren uns sowas 29 soll auch bekannt sein.
- [ ] 30 Ausführung und Protokollierung Bild mal anschauen
- [ ] 31/32 Capture/Replay-Werkzeuge, sollte bekannt sein.
- [ ] 35 Mal anschauen
- [ ] 36 Überdeckungswerkzeuge
- [ ] 39 Simulatoren
- [ ] 48 Werkzeuge für Gebrauchstauglichkeitstest
- [ ] 51 Werkzeuge für IT-Sicherheitstest
- [ ] 57 Risiken von Testwerkzeugen ("Vielleicht könnten ein zwei Beispiele erfragt werden")
- [ ] 59 Lernkurveneffekt
- [ ] 62 Einführungsreihenfolge vielleicht ganz gut zu wissen
- [ ] 65 Schritte sollen bekannt sein und was da zu tun ist.
- [ ] 71 Grafik mal anschauen
- [ ] 76 Vielleicht einmal durchlesen und verstehen um was es da geht.
- [ ] 81/82 Fragen beantworten können (Statische Analyse, welche... "Die Frage könnte drann kommen") 82 - Vielleicht zwei Beispiele benennen können

View File

@@ -0,0 +1,17 @@
# Conflicts
Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`
(This file will automatically be deleted before commit)
[[#Additional Instructions]] available below file list
- Not a file: .obsidian/workspace.json
# Additional Instructions
I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text.
```diff
<<<<<<< HEAD
File changes in local repository
=======
File changes in remote repository
>>>>>>> origin/main
```