2.3 KiB
2.3 KiB
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
- Befehle
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}}