This commit is contained in:
David Schirrmeister 2024-07-03 10:31:20 +02:00
parent f8c79ccb86
commit 032dd88fa5
9 changed files with 100 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -66,6 +66,10 @@
<toc-element topic="ARM_Befehlsübersicht.md"/> <toc-element topic="ARM_Befehlsübersicht.md"/>
<toc-element topic="armref.md"/> <toc-element topic="armref.md"/>
</toc-element> </toc-element>
<toc-element toc-title="Rechnersysteme">
<toc-element topic="Rechnersysteme_Intro.md"/>
</toc-element>
</toc-element> </toc-element>
</toc-element> </toc-element>
<toc-element toc-title="6. Semester"> <toc-element toc-title="6. Semester">

View File

@ -0,0 +1,96 @@
# Rechnersysteme Intro
## Rechnerarchitektur
![image_495.png](image_495.png)
- **Interne Funktionsweise**
- Architektur eines Rechners
- Design von Maschinenbefehlen → ISA
- **Programmierung in Maschinensprache**
- Befehle
- arithmetic / logic
- Vergleich
- Flags
- Bedingungen
- Sprünge
- Speicherzugriff über Adressen
- Verwendung eines Compilers
- Umsetzung von Hochsprachenkonstrukten in Assembler
## Entwicklung von Mikroprozessoren
### Einfache In-Order-CPU mit kurzer Pipeline
![image_496.png](image_496.png)
- Grundprinzipien:
- Minimaler Hardware-Aufwand
- Höhere Dichte
- Höhere Frequenz
### Out-of-Order superskalare CPU mit vielfältigen Optimierungen
![image_497.png](image_497.png)
- Grundprinzipien:
- Pipelining (Fließband)
- Parallelisierung
- Prinzip der Lokalität
### Erhöhung der Performance durch Superskalarität
![image_498.png](image_498.png)
## Speicherhierarchie
![image_499.png](image_499.png)
### Prinzip der Lokalität
#### Temporäre Lokalität
- Tendenz zur Wiederverwendung zuvor genutzter Datenelemente
- bspw. Instruktionen einer Schleife
#### Räumliche Lokalität
- Tendenz auf Datenelemente zuzugreifen, die in der Nähe von bereits Zugegriffenen liegen
- bspw. sequenzielle Instruktionen, Felder
### Cache
- Pufferspeicher, die Lokalität ausnutzen
- zeitlich/räumlich lokale Daten werden im SRAM vorgehalten
## Performance
- Zielsetzung
- Architekturvergleich von CPU & Speicherarchitektur
- Identifikation ovn Einflussfaktoren auf Performance
**IPC = instructions per cycle**
- Durchsatz
- Arbeitsmenge pro Zeiteinheit
**CPI = cycles per instructions = 1/IPC**
- Latenz
- Zeit pro Befehl
CPU-Zeit = Rechenzeit für n Instruktionen (_messbar_)
$t_{cycle} = frac{1}{f}$
$$
t_{CPU} = n_{instr} * t_{instr}
= n_{instr} * CPI * t_{cycle}
= \frac{n_{instr}*t_{cycle}}{IPC}
$$
$IPC = \frac{n_{instr}}{f*t_{CPU}}$
### Einfluss von Unterbrechungen
- Idealsituation: $CPI = IPC = 1$
- Einzelne Pipeline
- Keine Hazards
- Speicherzugriff: Hit im 1st Level Cache
- Tatsächliche Situation
- ![image_500.png](image_500.png)
### Performance-Vergleich & Speedup
- Vergleich
- $\frac{performance_A}{performance_B}=\frac{t_{cpuA}}{t_{cpu_B}}$
- Speedup
- $\frac{t_{cpuOrig}}{t_{cpuEnhanced}}
#### Speedup durch Multicore
![image_501.png](image_501.png)