97 lines
2.3 KiB
Markdown
97 lines
2.3 KiB
Markdown
# Rechnersysteme Intro
|
|
## Rechnerarchitektur
|
|

|
|
- **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
|
|

|
|
- Grundprinzipien:
|
|
- Minimaler Hardware-Aufwand
|
|
- Höhere Dichte
|
|
- Höhere Frequenz
|
|
|
|
### Out-of-Order superskalare CPU mit vielfältigen Optimierungen
|
|

|
|
- Grundprinzipien:
|
|
- Pipelining (Fließband)
|
|
- Parallelisierung
|
|
- Prinzip der Lokalität
|
|
|
|
### Erhöhung der Performance durch Superskalarität
|
|

|
|
|
|
|
|
## Speicherhierarchie
|
|

|
|
### 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
|
|
- 
|
|
|
|
|
|
### Performance-Vergleich & Speedup
|
|
- Vergleich
|
|
- $\frac{performance_A}{performance_B}=\frac{t_{cpuA}}{t_{cpu_B}}$
|
|
- Speedup
|
|
- $\frac{t_{cpuOrig}}{t_{cpuEnhanced}}
|
|
|
|
#### Speedup durch Multicore
|
|

|
|
|