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="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">
|
||||||
|
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
|
||||||
|

|
||||||
|
|