4.0 – Der Von Neumann-Rechner

Prozessor, Speicher, I/O

Lesson Learned

In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu können

  • Von Neumann-Rechnerarchitektur
    • Aufgaben der Komponenten
    • Zusammenwirken der Komponenten

John von Neumann

Quelle: https://en.wikipedia.org/wiki/John_von_Neumann Quelle: http://thocp.net/hardware/edvac.htm

John von Neumann:
First Draft of a Report on the EDVAC
(Electronic Discrete Variable Automatic Computer)
Veröffentlicht: 30.6.1945

Der von Neumann-Rechner

Uebersicht

Der von Neumann-Rechner

Übersicht

Die CPU (Central Processing Unit) führt Berechnungen im Computer aus

  • Auch Prozessor genannt
  • Besteht (im Wesentlichen) aus Leitwerk und Rechenwerk
  • Beispiel: Intel Core i7, Intel Atom, AMD FX, AMD Ryzen, …

https://de.m.wikipedia.org/wiki/Datei:AMD_Ryzen_1800X_DSC_0251.jpg

Der von Neumann-Rechner

Übersicht

Der Speicher dient zur Ablage von Daten und Programmcode

  • ROM (Read Only Memory)
    • Festwertspeicher
    • Daten fest eingebrannt, nicht mehr veränderbar
  • RAM (Random Access Memory)
    • Speicher mit wahlfreiem Zugriff
    • Speichert Befehle und Daten

Quelle: https://de.m.wikipedia.org/wiki/Datei:RAM_Module_(SDRAM-DDR4).jpg

Der von Neumann-Rechner

Übersicht

Die I/O-Einheit dient zur Kommunikation mit der Umwelt

  • Realisierung von Benutzer Interaktion (Maus, Tastatur, Touchscreen …)
  • Einlesen von Daten (Netzwerk, Festplatte, CDs …)
  • Ausgabe von Ergebnissen (Bildschirm, Drucker …)

iodevices

Der von Neumann-Rechner

Übersicht

Die Busse ermöglichen die Kommunikation zwischen CPU, Speicher und I/O-Einheit

  • Man unterscheidet zwischen Daten- und Adressbus
    • Der Datenbus ist bidirektional
    • Der Adressbus ist unidirektional

iodevices

Der von Neumann-Rechner

motherboard Quelle: https://www.asus.com/de/Motherboards/Z170-E/

Der von Neumann-Rechner

motherboard Quelle: https://www.asus.com/de/Motherboards/Z170-E/

4.1 - Der Prozessor

Leitwerk, Rechenwerk, Prozessorarchitekturen

Lesson Learned

In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu können

  • Prozessor

    • Funktionsweise eines Prozessors
    • Typische Prozessorarchitekturen
  • Pipelining

    • Generelle Funktionsweise
    • Probleme beim Pipelining

Der Prozessor

prozessor

Steuerwerk

Das Leitwerk steuert die Befehlsabarbeitung in der CPU

  • Befehlsaufbau
    • Jeder Befehl bestehet aus zwei Teilen:
      • Operationsteil (Welcher Befehl?)
      • Argumente (Womit, Wohin, …?)
  • Jeder Befehl durchläuft bei der Bearbeitung fünf Teilschritte
    • Instruction Fetch (IF]): Befehl lesen
    • Instruction Decode (ID): Befehl decodieren
    • Fetch Operands (FO): Operanden laden
    • Execute (EX): Ausführen
    • Writeback (WB): Ergebnis schreiben

Steuerwerk

Steuerwerk

Rechenwerk

Rechenwerk

CPU-Typen

Es gibt grundsätzlich zwei Typen von CPUs

CISC

  • CISC (Complex Instruction Set Computer)
    • Viele, komplexe Befehle
    • Befehlssatz in Form von Microcode
    • Wenig Register

RISC

  • RISC (Reduced Instruction Set Computer)
    • Wenige, elementare Befehle
    • Einzelne Befehle sind fest verdrahtet
    • Viele Register

Qualcomm Snapdragon 800 series

img

Qualcomms leistungsstärkster ARM Prozessor. (Link)

  • Aktuell in der 11. Generation (855) verfügbar

  • SoC mit: 4G LTE, GPS, WiFi, Video Decoder, …

  • Die ARM-CPU ist eine RISC-Architektur und kennt als solche drei Kategorien von Befehlen:

    • Befehle zum Zugriff auf den Speicher (Load/Store)
    • arithmetische oder logische Befehle für Werte in Registern
  • Befehle zum Ändern des Programmflusses (Sprünge, Subprogrammaufrufe).

  • Energieverbrauch wurde reduziert

  • LPDDR4x wird unterstützt

Intel Core i9

img

  • Intels leistungsstärkste CPU

    • Aktuell in der 6. Generation (Skylake-X) verfügbar
    • 24.75 MB L3 Cache
    • 18 Kerne (36 Threads)
  • Unterstütze Befehlsätze:

    • MMX, AES-NI, CLMUL, FMA3, MPX, Intel 64¹ , SSE, SSE2, SSE3, SSSE3,SSE4, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, TXT, TSX, SGX, VT-x, VT-d

¹: Intels Produktname für den AMD64-Befehlssatz

AMD Ryzen Threadripper

AMDs leistungsstärkste CPUs

img

  • Aktuell in der 5. Generation (Zen) verfügbar

  • 16 MB L3 Cache

  • 16 Cores (32 Threads)

  • Nächste Generation Nov.2019 (Zen-2)

  • Unterstütze Befehlsätze:

    • MMX, SSE, SSE2, SSE3, SSSE3, SSE4a, SSE4.2, AVX, AVX2, AES, FMA3, FMA4, XOP, AMD64, Cool’n’Quiet 3.0, NX-Bit, AMD-V, SHA
  • 14nm-Fertigung

Vergleich von CPUs

Back in the old days

Quelle: https://www.youtube.com?v=l__-SMG-Usw

Pipelining

Idee: „Never waste time“

  • Sheldon und Leonard wollen zu einer LAN-Party und müssen beide noch ein neues Spiel installieren
Bezeichnung Icon
Installations DVD 1
(1x vorhanden, Start der Installation, Kopierdauer: 0.5 Std.)
disc1
Installations-DVD 2
(1x vorhanden, Beenden der Installation, Kopierdauer: 0.5 Std.)
disc2
Internetverbindung zum Onlineupdate
(langsam, nicht parallel nutzbar, Updatedauer: 0.5 Std.)
web
USB-Stick mit Konfigurationsdateien
(1x vorhanden, Konfigurieren & Mod, Kopierdauer: 0.5 Std.)
usb

Pipelining

Variante 1: Sequentiell

Zeit: 0.5 1 1.5 2 2.5 3 3.5 4
Sheldon disc disc web usb
Leonard disc disc web usb

Dauer: 4 Stunden

Pipelining

Variante 2: Mit Pipelining

Zeit: 0.5 1 1.5 2 2.5 3 3.5 4
Sheldon disc disc web usb
Leonard disc disc web usb

Dauer: 2,5 Stunden

Pipelining

Unabhängige Teile der Befehlsausführung können parallelisiert werden

  • Pipelining ist nur auf RISC-Architekturen möglich

Pipelining

  • 5 Stage Pipelining:
    • Instruction Fetch (IF): Befehl lesen
    • Instruction Decode (ID): Befehl decodieren
    • Fetch Operands (FO): Operanden laden
    • Execute (EX): Ausführen
    • Writeback (WB): Ergebnis schreiben

Pipeline - Hazards

Structural-Hazards

  • Problem
    • Instruktionen benötigen dieselbe Hardware
  • Lösung
    • Vermeidung typischerweise durch Replizieren der Hardware

duplicteHW

Pipeline - Hazards

Data-Hazards

dataDependency

  • Problem
    • Datenabhängigkeiten

dataDependency

  • Lösung
    • Data Bypassing
      • Eingangsdaten für Befehle stammen aus Registern oder “Zwischenergebnissen”

Pipeline - Hazards

Data-Hazards

dataDependency

  • Problem
    • Es kann trotzdem sein, dass Informationen nicht rechtzeitig zur Verfügung stehen

dataDependency

  • Lösung: NOP
    • NOP-Befehl (No Operation) einfügen

Pipeline - Hazards

Control-Hazards

  • Bedingte Sprungbefehle ändern den als nächstes auszuführenden Befehl

    • Nächster Befehl steht erst am Ende des vorherigen Befehls fest
    • Die Pipeline hat bereits begonnen unnötige Befehle abzuarbeiten
  • Lösung:

    • Stall / Freeze
    • Predict: Taken
    • Predict: Not Taken

4.2 – Speicher

RAM, Caches

Lesson Learned

In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu können

  • Technische Realisierungen von Speicher
    • Arbeitsspeicher
    • Cache
  • Funktionweise und Aufbau eines Caches

Übersicht

uebersicht

Finde den Fehler

Quelle: https://www.youtube.com/watch?v=vunyilw8dtE

Speicherpyramide

speicherpyramide

Arten von Speicher

Es gibt im Wesentlichen zwei Arten von Speicher

ROM Quelle: readanddigest.com

  • ROM (Read Only Memory)
    • Festwertspeicher
    • Es gibt mehrere Arten
      • ROM, PROM, EPROM, EEPROM

ROM Quelle: readanddigest.com

  • RAM (Random Access Memory)
    • Speicher mit wahlfreiem Zugriff
    • Speichert Befehle und Daten
    • Es gibt zwei verschiedene Arten
      • SRAM (Static RAM) → schnell, teuer, physikalisch groß
      • DRAM (Dynamic RAM) → langsam, billig, physikalisch klein

RAM

RAM ist ein flüchtiger Speicher, der bei der Abschaltung der Betriebsspannung verloren geht

  • Im RAM liegen Informationen, die ein Programm während der Laufzeit braucht
    • Soll eine Information über das Ende des Programms hinaus gespeichert werden, muss sie auf der Festplatte (→ I / O) gespeichert werden
  • Der RAM besteht aus gleichartigen Speicherplätzen, die jeweils eine Adresse haben

RAM

So kann man sich irren…

640 KBytes [Arbeitsspeicher] sollten für jeden genug sein… Bill Gates, 1981

RAM - Geschwindigkeit

RAM-Specs

$$ Responsetime = \frac{ CAS-Latency}{Takt } $$ $$ = \frac{16}{3600 \cdot 10^6} = 0,000000004 = 4E-9 = 4 \text{ } ns $$

Von Neumann-Flaschenhals

CPU
$$ \frac{0.3 ns}{Takt} $$
vs.
CPU
$$ \frac{4 ns}{Anfrage} $$

→ Die CPU wartet sehr lange auf den Speicher

Caches

Cache

Grundlegendes zu Caches

  • Cache ist aus SRAM-Bausteinen aufgebaut
    • Wenig Speicher, im Vergleich zum Hauptspeicher
    • Schneller Speicher, im Vergleich zum Hauptspeicher
  • Ein Cache enthält nur kleine Datenmengen (Cacheblocks) aus dem Hauptspeicher
    • Problem: Welche Daten sollen aus dem Hauptspeicher geladen werden?
  • Ist im Cache keinen Platz mehr für einen neuen Block, muss zuerst ein Block verdrängt werden – Wie?

Lokalitätsprinzip

Es gibt zwei Arten von sogenannter Lokalität

  • Zeitliche Lokalität

    • Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass auf eine Speicherzelle nicht nur einmal, sondern zeitlich „nah“ mehrmals zugegriffen wird
  • Örtliche Lokalität

    • Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass nach dem Zugriff auf eine bestimmte Speicherzelle auch ein Zugriff in deren unmittelbarer „Nachbarschaft“ stattfindet

Caches in modernen Systemen

img

Aufbau

img

Platzierung

Platzierung des Hauptspeicherblocks mit Adresse 13

img

Lesezugriffe

Findet ein Lesezugriff auf Speicherzelle A statt …

… wird zunächst geprüft, ob Speicherzelle A bereits im Cache liegt.

  1. A liegt im Cache (cache hit) - Der Datensatz kann direkt aus dem Cache gelesen werden.

  2. A liegt nicht im Cache (cache miss) - Der Datensatz muss aus dem Hauptspeicher in den Cache geladen werden. - Aus dem Cache wird der Datensatz in die CPU geladen.

Schreibzugriff

Findet ein Schreibzugriff auf Speicherzelle A statt …

… wird zunächst geprüft, ob Speicherzelle A bereits im Cache liegt.

  1. A liegt im Cache (cache hit) - Der Datensatz wird im Cache aktualisiert - (Der Datensatz wird im Hauptspeicher aktualisiert)

  2. A liegt nicht im Cache (cache miss) - Der Datensatz wird direkt in den Hauptspeicher geschrieben. - Der Inhalt des Caches wird nicht verändert.

Schreibzugriff

Es gibt zwei Verfahren zum Aktualisieren von Datensätzen im Cache

  • Write-Through
    • Der Datensatz wird im Cache und direkt anschließend auch im Hauptspeicher aktualisiert
    • Keine Probleme mit der Datenkonsistenz im Hauptspeicher
  • Write-Back
    • Der Datensatz wird im Cache aktualisiert und erst in den Hauptspeicher zurückgeschrieben, wenn der entsprechende Cacheblock aus dem Cache verdrängt wird
    • Niedrige Belastung der Systembusse und keine Wartezyklen

Cache Misses

Cache Misses weitere Infos: https://de.wikipedia.org/wiki/Cache#Cache_Hits_und_Misses

Capacity Miss

  • Der Cache ist zu klein.
  • Daten waren vorrätig, wurden aber wieder aus ihm entfernt.
  • erneuter Zugriff -> „Capacity Miss“
  • Abhilfe schafft nur ein größerer Cache.

Conflict Miss

  • nur bei set-associative Organisation
  • in einem Satz nicht mehr genug Platz ist, während in anderen Sätzen noch freie Cacheblöcke
  • Aus überfüllten Satz wird ein Block entfernt werden, obwohl der Cache eigentlich noch Platz hat.
  • Wird auf diesen entfernten Block erneut zugegriffen -> „Conflict Miss“.
  • Abhilfe schafft eine Erhöhung der Cacheblocks pro Satz – also eine Erhöhung der Assoziativität.

Compulsory Miss

  • Als „Compulsory Miss“ oder auch „Cold Start Miss“ bezeichnet man den erstmaligen Zugriff auf eine Adresse, deren Daten sich noch nicht im Cache befinden, und zugleich hat der Cache noch freien Platz.
  • keine Verdrängung stattfindet, sondern ein Block zum ersten Mal/neu beschrieben wird.

Cache Kapazität

Cache Misses

4.3 – Input/Output

Massenspeicher, Maus, Tastatur, …

Lesson Learned

In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu können

  • Massenspeicher
    • Funktionsweise eines RAID-Systems
    • Unterschied “normale” Festplatte und SSD
    • Funktionsweise einer CD / DVD / Blu-ray
  • Wichtige Ein- und Ausgabegeräte kennen
    • Technische Realisierungen grundlegend verstehen

RAID

raid

Aufbau eines RAID

Es werden mindestens 2 Festplatten benötigt

  • Alle in das RAID eingebundenen Festplatten werden gemeinsam betrieben und zielen auf die Verbesserung einer Eigenschaft ab
    • Erhöhung der Ausfallsicherheit
    • Steigerung der Datentransferrate
    • Erweiterung der Speicherkapazität
    • Möglichkeit des Austauschs von Festplatten im laufenden Betrieb
    • Kostenreduktion durch Einsatz mehrerer kostengünstiger Festplatten
  • Die genau Art des Betriebs wird durch das RAID-Level angegeben

RAID - Level 0

  • Bietet höhere Transferraten durch Striping

RAID0

RAID - Level 1

  • RAID 1 bietet hohe Datenredundanz durch Mirroring

RAID0

RAID - Level 5

  • RAID 5 bietet höhere Transferraten und hohe Datenredundanz

RAID0

RAID - Level 5

Redundanz bei RAID 5 wird mit XOR-Operationen erreicht

Original bei drei Platten

D1 D2 D3 par
1 1 0 0
0 1 1 0
0 1 0 1

Wiederherstellung bei Ausfall durch Auswertung der Parität

D1 D2 D3 par
1 ? 0 0
? 1 1 0
0 1 ? 1

RAID - Kombinationen

Kombinationen von RAID-Systemen sind möglich

  • Mehrere RAID-Systeme eines bestimmten Typs werden zu einem RAID-System zusammengefasst
    • z.B. RAID 10, RAID 01, …
  • RAID-Kombinationen sind theoretisch n-stufig möglich
    • z.B. RAID 100

RAID - Kombinationen

RAID 01: Mehrere RAID0 werden zu einem RAID1 zusammengefasst

RAID0

RAID - Kombinationen

RAID 10: Mehrere RAID1 werden zu einem RAID0 zusammengefasst

RAID0

Festplatten

Festplatte, Hard Disk, HD, Hard Disk Drive, HDD, …

  • Information wird durch Magnetisierung abgelegt
    • Gehäuse der Festplatte beinhaltet mehrere, auf einer Achse übereinander montierten, runden Platten, welche mit einer magnetisierbaren Schicht überzogen sind
    • Enthaltene Platten haben alle denselben Durchmesser (3,5“, 2,5“, 1,8“ Formfaktor)

HDD

  • Heutzutage etwa 1-8 TB Speicherkapazität üblich

Festplatten - Konstruktion

Eine Festplatte funktioniert wie folgt:

  • Schreib-/Leseköpfe werden durch einen zentralen Kamm über die Platten bewegt
    • Etwa 1 μm Abstand zwischen Platte und Kopf
  • „Landing Zone“ zum Parken der Köpfe
    • Kommen die Köpfe mit einem Plattenbereich in Berührung, welcher Daten enthält, werden diese zerstört

HDD

  • Platten rotieren mit konstanter Umdrehungszahl (5400 – 15000 rpm)

Spuren und Sektoren

Spuren

Die Oberfläche der Platten ist in konzentrische Kreise, die Spuren, eingeteilt

Die Spuren sind in Abschnitte fester Speichergröße, die Sektoren, unterteilt

Spuren

  • Kleinste adressierbare Einheit einer Festplatterfläche der Platten ist in konzentrische Kreise, die Spuren, eingeteilt.

Zylinder

Als Zylinder werden die übereinander liegenden Spuren der Platten bezeichnet

  • Alle Zylinder können von den entsprechenden Schreib-/Leseköpfen gleichzeitig geschrieben/gelesen werden

zylinder

Kenngrößen

  • kontinuierliche Übertragungsrate (sustained data rate)
    • Datenmenge, die die Festplatte beim Lesen aufeinander folgender Sektoren im Mittel pro Sekunde überträgt (Schreiben ähnlich)
  • mittlere Zugriffszeit ([data] access time)
    • Spurwechselzeit (seek time, Mittelwert beim Wechsel von einer zufälligen zu einer anderen zufälligen Spur)
    • Latenzzeit (latency, im Mittel dauert es eine halbe Umdrehung, bis ein bestimmter Sektor unter dem Kopf vorbeikommt)
    • Kommando-Latenz (controller overhead, Zeit, die der Festplattencontroller damit verbringt, das Kommando zu interpretieren)

Physikalische Größen

HDD Groessen Quelle: https://de.wikipedia.org/wiki/Festplattenlaufwerk#Geschwindigkeit]

HDD Historie

HDD Groessen Quelle: https://de.wikipedia.org/wiki/Festplattenlaufwerk

Solid State Disks (SSD)

SSD Quelle: www.gameswelt.de

  • Keine mechanischen Bauteile
  • Niedriger Energieverbrauch
  • Hoher Datendurchsatz
  • Hoher Preis pro Speichereinheit

Die Cloud?

Quelle: https://www.youtube.com?v=d35_hK5QGHQ

Bekannte Cloudanbieter

cloud Anbieter 1

Cloudanbieter (Privacy respecting)

cloud Anbieter 2

Human Interface Device (HID)

Eingabe von Hand

  • Tastaturen
  • Zeigeeinrichtungen
    • Maus
    • Gamepad
  • Schreibstifteingabe
    • Touchpanels
    • Smartboards

Lesegeräte

  • Kartenleser
  • Belegleser
  • Scanner
    • Dokumente
    • Barcodes

A/V-Eingabegeräte

  • Mikrofon
  • Telefon
  • Abspielgeräte
  • Kameras

Ausgabegeräte

Bildschirme

  • (CRT-Monitore)
  • Flachbildschirme
    • OLED
    • IPS
    • TN
  • Projektoren

Schreib- und Druckgeräte

  • Zeichendrucker
  • Zeilendrucker
  • Seitendrucker
  • Plotter

Audioausgabegeräte

  • Lautsprecher
  • Kopfhörer

Keyboard

Keyboard Quelle: http://pngimg.com/download/5865

  • Eingabe von Text
  • Spezialfunktionen

Nachteile

  • Zeitaufwendige Dateneingabe
    • Tippen einzelner Zeichen
    • Cursorpositionierung in einem Text
  • Nur für Sprachen mit wenigen Zeichen geeignet
  • Unterschiedliche Yeichens’tye & Tastenbelegungen
  • Relativ lange “Übungszeit”
  • Keine Eingabe bildlicher Daten möglich

Keyboardlayout

Quelle: https://www.youtube.com/watch?v=2O1ncJCfH8w

spezielle Tastaturen

spez Tastaturen

Maus

  • Zeigen & Klicken
  • Markieren
  • Scrollen

Keyboard Quelle: pixabay

Maus

*Quelle: [planet-schule.de](https://www.planet-schule.de/sf/php/sendungen.php?sendung=10225) (ab Zeit:23.10)]*

Touchscreens

Touchscreens sind berührungsempfindliche Bildschirme

Interaktion geschieht direkt mit dem Touchscreen
Es gibt verschiedene technische Ansätze, die wichtigsten sind:

  • Resistive Touchscreens
    • Der Touchscreen reagiert auf mechanischen Druck
    • Als Eingabemedium kann alles Mögliche verwendet werden (Finger, Stift, …)
  • Kapazitive Touchscreens
    • Der Touchscreen reagiert auf elektrische Spannung
    • Als Eingabemedium können nur elektrisch leitende Dinge verwendet werden (Finger, spezielle Stifte, …)

Touchscreen

*Quelle: [planet-schule.de](https://www.planet-schule.de/sf/php/sendungen.php?sendung=10225) (bis Zeit:4.55)*

Bildschirm

Bildschrim Quelle: pixabay

  • Stellt Inhalte graphisch dar

Bildschirme

Grundlegendes zu Bildschirmen …
Die Größe eines Bildschirmes wird in Zoll angegeben

  • Typische Größen
    • Smartphones: 3“ – 6“
    • Tablets: 7“, 8.9“, 10.1“
    • Netbooks 10“ – 13“
    • Laptops: 13“ – 17“
    • Desktop: ab 19“
  • Die Auflösung eines Bildschirmes wird in Pixeln angegeben
    • Pixel sind Bildpunkte, welche die „Schärfe“ des Bildschirms bestimmen
    • Ein Pixel ist die kleinste ansprechbare Einheit eine digitalen Bildes
    • Ein Pixel besteht in der Regel aus roten, grünen und blauen Subpixeln

Bildschirme

graph Quelle: https://de.wikipedia.org/wiki/Bildauflösung

Zusammenfassung

Quelle: https://www.youtube.com?v=5PJZz04JGjs