update
BIN
Writerside/images/image_495.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
Writerside/images/image_496.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
Writerside/images/image_497.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Writerside/images/image_498.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
Writerside/images/image_499.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
Writerside/images/image_500.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
Writerside/images/image_501.png
Normal file
After Width: | Height: | Size: 27 KiB |
@ -66,6 +66,10 @@
|
||||
<toc-element topic="ARM_Befehlsübersicht.md"/>
|
||||
<toc-element topic="armref.md"/>
|
||||
</toc-element>
|
||||
<toc-element toc-title="Rechnersysteme">
|
||||
<toc-element topic="Rechnersysteme_Intro.md"/>
|
||||
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
<toc-element toc-title="6. Semester">
|
||||
|
96
Writerside/topics/RA/Rechnersysteme_Intro.md
Normal file
@ -0,0 +1,96 @@
|
||||
# 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
|
||||

|
||||
|