1. Von Neumann Architektur Aufbau: CPU Rechenwerk ALU (arithmetische und logische Operationen) Steuerwerk (Steuerung der Verarbeitung über Operationscodes) Hauptspeicher Daten und Befehle Adressierung über binäre Adressen statisch oder dynamisch, synchron oder asynchron E/A-Einheit Schnittstelle zur Umwelt, Verfahren: Polling Interrupt Befehlssteuerung Bussystem verbindet alles Eigenschaften: Befehle und Daten liegen ununterscheidbar im Hauptspeicher Hauptspeicher ist unstrukturiert, linear adressiert zu jedem Zeitpunkt wird nur ein einziger Befehl ausgeführt, welcher nur ein einziges Ergebnis liefert sequentielle Verarbeitung (binäre Signalcodierung, feste Codewortlänge, taktgesteuert, automatische Arbeit nach Start) 2-Phasen-Schema: Interpretationsphase: Befehlszähler->Befehl aus Hauptspeicher holen, dekodieren Ausführungsphase: Operand aus Hauptspeicher holen, Befehl ausführen, Resultat in Hauptspeicher schreiben Zyklus: FETCH, DECODE, FETCH OPERANDS, UPDATE INSTRUCTION POINTER, EXECUTE Vorteile: Prinzip des minimalen Hardwareaufwandes Prinzip des minimalen Speicheraufwandes Nachteile: Transport von Daten und Befehle über gleiche Wege ( von-neumann-flaschenhals ) keine Parallelität der Arbeitsschritte 1 Befehlszähler, 1 Befehlsregister -> Multiuser/threading ungeeignet semantische Lücke: höhere Programmiersprachen Maschinenebene
2. RISC, CISC, Superskalare Systeme CISC (Complex Instruction Set Computer): umfangreicher Befehlssatz (400...500) viele Befehlsformate Microprogramm-Nutzung komplexe Adressierung x86 Familie, DEC-VAX Vorteile: einheitliche Befehlssätze effiziente Übersetzung, kleine Programme umfangreiche Befehle, leichte Programmierung leistungsfähige Einzelbefehle leichte Fehlerbehandlung RISC (Reduced Instruction Set Computer): reduzierter Befehlsvorrat (40...80) wenige Befehlsformate Befehlsdekodierung per Hardware wenige Adressierungsarten SUN SPARC, DEC Alpha, IBM PPC Vorteile: schnelle Reaktion auf externe Ereignisse niedriger Dekodierungsaufwand und schnelle Verarbeitung der einzelnen Befehle Nachteile: schlechte Speicherplatznutzung Arbeitsspeicherzugriff nur über 32bit store+load Superskalare Systeme: mehrere Befehle aus Befehlsstrom werden gleichzeitig parallel arbeitenden Funktionseinheiten dynamisch zugeteilt Prozessor selbst für verantwortlich (nicht Compiler) Vorteil: mögliche Steigerung der instructions per cycle
3. Plattensysteme Plattenspeicher Typ mechanisch integriert Speicherart magnetisch (oder optisch) rotierende Magnetscheiben (oder Kunststoffscheibe) Unterteilung in Zylinder, Spur, Sektor hohe Zugriffszeit aufgrund mechanischer Positionierung relativ niedrige Durchsatzrate billig Elektronischer Speicher elektrisch (Kapazitätelektrisches Feld) keine mechanik, Transistor+Kondensatorlogik FlipFlop niedrige Zugriffszeit hohe Durchsatzrate teuer Für Massenspeicher Als Arbeitsspeicher/Cache
4. Pipelining Parallelisierung der Abarbeitung von Befehlen soweit, dass alle Funktionseinheiten der CPU ausgelastet sind durch überlagerte Ausführung einheitliches Befehlsformat fester länge Vorraussetzung (RISC) Beispiel: Befehlsausführung in 4 Schritten: Lade Instr, Dekodiere/Lade Data, Ausführen, Speichern Verweildauer eines Befehls: 4 Zyklen Verarbeitungszeit: 1 Maschinenzyklus/Befehl Zeitgewinn: 4x Probleme, die sich ergeben: Datenflussproblem Ergebnis wird in Mehrzweckregister gespeichert, welches gleichzeitig gelesen und verarbeitet wird NOP einfügen! Steuerfluss-Konflikt Folgebefehle erst nach Sprungausführung bekannt Delayed Branch (verzögerte Verzweigung) Branch Vorhersage Branch History Table Pipeline-Flush (rückgängig machen aller teilweise bearteiteter Befehle) bei falscher Vorhersage
5. Filesysteme Verwaltung von Dateien Dateistrukturen, -attribute, -operationen möglich Teil des OS Zugriffssteuerung durch Index-Verwaltung Prinzipien: Kontinuierliche Abspeicherung Datei=kontinuierliche Folge von Blöcken Kennzeichnung durch Lage des ersten Blocks und Gesamtanzahl der Blöcke Vorteil: einfach, schnell, da sequentiell Nachteil: Fragmentierung Probleme bei unbekannter Dateilänge Verknüpfte Abspeicherung Datei=Liste von Blöcken 1. Wort eines Blocks für Verknüpfung Vorteil: keine externe Fragmentierung Dateigröße nicht statisch Nachteil: Platzbedarf Zugriff auf i-ten Block nur sequentiell Variante: FAT Abspeicherung mit Indizes Dateieigener Indexblock, der jeweils die einzelnen Blöcke adressiert
6. Seitenrahmenersetzungsverfahren Not Recently Used Seitentabelleneintrag Bits R und M R wird gesetzt, wenn von Seite gelesen wurde, M wird gesetzt, wenn auf Seite geschrieben wurde periodisch werden R-Bits gelöscht Klassifizierung: R gelöscht, M gelöscht (am unwichtigsten) R gelöscht, M gesetzt R gesetzt, M gelöscht R gesetzt, M gesetzt (am wichtigsten) First In, First Out Liste mit allen Seiten erster (ältester) Tabelleneintrag wird ausgelagert, neue Seite am Ende angehangen Second-Chance wie FIFO zusätzliche Überprüfung des R-Bits des ersten Eintrages wenn gesetzt, R-Bit löschen und Eintrag an Ende der Tabelle anhängen sonst auslagern Uhr-Seitenersetzungsalgorithmus ähnlich Second-Chance Zeiger zeigt auf ältestes Element ist R-Bit gesetzt, wird dieses gelöscht und Zeiger weitergerückt ist R-Bit nicht gesetzt, wird Seite ausgelagert, neuer Eintrag an die Stelle eingehangen und Zeiger weitergerückt
7. Caches schneller Pufferspeicher für Geräte wie CPUs und Massenspeicher enthält Kopien des Inhaltes eines anderen Speichers Aufteilung in Blöcke gleicher Größer (Cachelines) und Abbildung in Cache Ziel: Verringerung der Zugriffszeit und Anzahl der Zugriffe auf den zu cachenden Speicher Zwei Eigenschaften für Wirksamkeit: Räumliche Lokalität Maschinenbefehle und Daten häufig benachbart Zeitliche Lokalität Hohe Wahrscheinlichkeit der Wiederbenutzung von Informationen aus der jüngsten Vergangenheit Ursache: Schleifen, Listen -> Caches arbeiten vorausschauend Zwei Schreibstrategien: Write-Back erst bei Verdrängen der Seite aus dem Cache werden Änderungen in den gecachten Speicher geschrieben Write-Through Änderungen werden sofort in den gecachten Speicher übernommen (Konsistenz) langsamer und bedarf mehr Bandbreite Assoziativität: voll assoziativ Block des HS kann in jedem Block-Rahmen abgebildet werden höherwertigen Adressbits als Tag bei Zugriff mit allen Tags vergleichen Blockersetzungsstrategien: Last Recently Used (Alterungsinformationen werden gespeichert, z.b. Rückwärtszähler) set-assoziativ Block des HS kann nur in n Block-Rahmen abgebildet werden Aufteilung in Sets und Abbildung der HS-Blöcke in Äquivalenzklassen Ersetzungsstrategien wesentlich einfacher als bei voll assoziativ direct mapped Block des HS kann nur in einem Block-Rahmen abgebildet werden wesentlich einfacher, da nur 1 Vergleich bei Zugriff notwendig ist keine Ersetzungsstrategien notwendig Reduzierung bedeutet weniger durchsuchen aber Einschränkungen, welche Blöcke parallel im Cache untergebracht werden können Snooping Überwachung von DMA Aktionen Wenn auf Seite zugegriffen wird, die im Cache steht, wird erst Kohärenz sichergestellt Valid und Change Bit Markiert eine Cacheline als ungültig (Write Through DMA erzeugt Datenkohärenzproblem, ungültig markieren) oder modifiziert (Write Back zuerst zurückschreiben wenn modifiziert, dann ersetzen) Allocate Write bei Cache-miss bei Schreiboperation wird Seite zunächst in Cache geladen bei non-allocate-write wird sofort in Hauptspeicher geschrieben (geringfügig langsamer) Cache Miss Look-Through Cache erst cache-miss identifizieren, dann HS Zugriff einleiten
entlastet Speicherbus (gut für DMA) Look-Aside Cache bei jedem Cachezugriff HS Zugriff einleiten und ggf. vorzeitig abbrechen Vorteil: Verringerung des Von-Neumann-Flaschenhalses enorme Steigerung der Ausführungsgeschwindigkeit von Programmen Nachteil: Schlecht vorhersagbares Echtzeitverhalten
8. Interrupt Unterbrechung der Ausführung von Programm durch eine ISR Anschließend Fortsetzung Ablauf beim Auftreten eines Interrupts: Hardware bestimmt Interruptvektor des IRQs mit höchten Priorität Hardware sichert Befehlszähler und Statusregister auf Stack Hardware holt neuen Befehlszähler ISR sichert selber benutzte Register, damit diese nicht überschrieben werden ISR wird ausgeführt (maskiert gegen weitere Unterbrechung) gesicherte Register wiederherstellen ISR beendet sich durch Rücksprung (zurückholen der alten Daten vom Stack) unterbrochene Task wird weiter fortgesetzt ggf. kann ISR Tasks starten
9. Paging Virtuelle Speicherverwaltung Programme mit mehr Speicherbedarf als HS groß ist es werden nur Teile im HS gehalten Funktionsweise: Programme mit virtuellen Adressen bis zur Größe G alle Adressen von r/w-operationen werden über MMU (memory management unit) geleitet und in physikalische Adressen umgerechnet Virtuelle Adressraum in Pages fester Größe und physikalischer Adressraum in Frames selber Größe unterteilt Frames enthalten Blöcke Zugriffe werden umgerechnet, falls page fault erfolgt Ein-/Auslagerung Verwaltung über Seitentabellen virtuelle Adresse besteht aus virtueller Seitennummer + Offset virtuelle Seitennummer dient als Index für Seitentabelle Seitenrahmennummer ersetzt virtuelle Seitennummer Seitentabelle beinhaltet Seiten, die momentan im Speicher sind Vorteil: Illusion des zusammenhängenden Speichers für einen Task
10. Meilensteine Speicherdichte: 1970 1KBit pro Chip, Wachstum aller 10 Jahre ums 64 fache Prozessorgeschwindigkeit: 1995 0.5 K-MIPS, quadratisch steigend auf 10 K-MIPS im Jahre 2010 Zykluszeit/Taktrate: 1995 10ns/100MHz auf 2005 <1ns/1000MHz Integrierung: 1978 29000 Transistoren (8086) auf 2000 15M Transistoren per CPU, Vertikale Achse: logarithmisch zur Basis 10, Graph linear 1995 0.3µm, 2001 0.1µm, 2007 0.045µm (Intel Conroe) Preis/Leistung: 1960: 50.000.000$ auf 1990: 5.000$ Vertikale Achse, log. zur Basis 10, Graph linear fallend, leicht einsackend