kap2
Post on 05-Jul-2015
782 Views
Preview:
TRANSCRIPT
34
Stichworte
Notizen
Prof. W. Burkard 34
Hardware-Grundlagen
• fast alle heutigen Rechner basieren auf einem 1944 von Eckert, Mauchly und von Neumann entwickelten Architekturprinzip.
• Demnach besteht ein Computer aus einem Prozessor, einem Speicher und ein oder mehreren Ein-/Ausgabe-Geräten
• Die einzelnen Systemkomponenten sind über insgesamt drei Busse miteinander verknüpft
• Der Adressbus adressiert einzelne Datenzellen eines Speicherbausteins oder E/A-Gerätes (Breite je nach System 16,32,64 Bit (= Signalleitungen), dadurch Festlegung des adressierbaren physikalischen Speichers)
• Steuerbus regelt die Lese- und Schreiboperationen zwischen Prozessor und Speicher bzw. IO, nennt also z.B. die Flussrichtung der Daten
• Der Datenbus dient der eigentlichen Informationsübertragung der Bits zwischen Prozessor und Speicher / IO
35
Stichworte
Notizen
Prof. W. Burkard 35
Die CPU in der von-Neumann-Architektur
36
Stichworte
Notizen
Prof. W. Burkard 36
Der zentrale Prozessor (CPU)
• Die Aufgabe der CPU ist die sequentielle Ausführung einer Instruktionsfolge (Programm)
• Alle Instruktionen liegen zusammen mit den zu verarbeitenden Daten im Speicher des Rechners
• Bei jeder einzelnen Befehlsausführung werden Daten in der CPU verarbeitet ODER zwischen CPU und Speicher (bzw. IO-Gerät) bewegt
• Die CPU umfasst mindestens einen Registersatz, eine Recheneinheit (ALU) und ein Steuerwerk
• Register sind CPU-interne, sehr schnelle (ca. 1ns) Speicherzellen mit deren Inhalten die ALU rechnen kann
• Zwei Register sind von zentraler Bedeutung:
• Programmzähler (PC) enthält die Adresse der nächsten auszuführenden Instruktion
• Kellerregister (SP) zeigt auf das Ende des Stack und dient zur Realisierung von Unterprogrammaufrufen mit Parameterübergabe
• Die ALU manipuliert Prozessorregister. Neben arithmetischen Operationen für ganze und Gleitkommazahlen stellt sie Logik- und Testfunktionen zur Verfügung (z.B. Vergleiche)
• Das Steuerwerk ist der Interpreter für den Instruktionssatz einer CPU und koordiniert alle Einzelaktivitäten bei der Ausführung der einzelnen Instruktionen
37
Stichworte
Notizen
Prof. W. Burkard 37
Die von-Neumann-Architektur
38
Stichworte
Notizen
Prof. W. Burkard 38
Der Bus in der von-Neumann-Architektur
1010010110100101
12345678
Zelle 4schreiben
39
Stichworte
Notizen
Prof. W. Burkard 39
Gängige Systembusse
40
Stichworte
Notizen
Prof. W. Burkard 40
Maschinenbefehle und Daten im Speicher
41
Stichworte
Notizen
Prof. W. Burkard 41
Instruktionssatz und Adressierungsarten
• Die Menge aller vom Steuerwerk verstandenen Befehle definiert den Instruktionssatz eines Prozessors.
• Die Befehle lassen sich kategorisieren:
• Arithmetik-, Logik- und Schiebeoperationen
• Operationen zur Beeinflussung der weiteren Befehlsausführungsreihenfolge
• Lade- und Speicheroperationen dienen dem Austausch von Daten zwischen CPU und Speicher
• Hierbei unterscheidet man diverse Adressierungsarten:
• Registeradressierung: Ziel oder Quelle ist ein CPU-Register
• Absolute Adressierung: Ziel / Quelle ist eine Speicherzelle / Gerätezelle
• Relative Adressierung: in einem CPU-Register steht ein Basiswert, relativ zu dem ein Offset angegeben wird um Ziel / Quelle zu benennen
• Indirekte Adressierung: Ziel / Quelle ist der Inhalt eines Register oder einer Speicherzelle
42
Stichworte
Notizen
Prof. W. Burkard 42
Sprungbefehle und Unterprogramme
• Alle gängigen Prozessoren verfolgen ein streng sequentielles Verarbeitungsmodell, d.h. nach Beendigung der aktuellen Operation wird mit der Bearbeitung des Befehls fortgefahren, der im Speicher nachfolgt.
• Durch Sprungbefehle kann dieser Ablauf beeinflusst werden
• unbedingter Sprungbefehl: die sequentielle Abfolge wird auf jeden Fall beendet und statt dessen an einer angegebenen Adresse fortgesetzt
• bedingter Sprungbefehl: abhängig von einer Bedingung erfolgt der Sprung zu einer anderen Speicheradresse ( z. B. wenn Inhalt eines Registers = 0 )
• Absoluter Sprung: Zieladresse wird fest vorgegeben
• Relativer Sprung: Angabe der Zieladresse ist relativ zur aktuellen Position
� relative Sprünge machen Programme relokierbar (verschiebbar im Speicher)
• Beim Sprung in ein Unterprogramm (JSR Jump SubRoutine) wird zusätzlich erst noch die aktuell folgende Speicheradresse auf den Stack gespeichert um bei Ende der Subroutine von dort wieder in den Programmcounter geladen zu werden
43
Stichworte
Notizen
Prof. W. Burkard 43
Synchrone und asynchrone Unterbrechungen
• Die reguläre Programmabarbeitung kann auch durch Unterbrechungen (Interrupts) verändert werden
• Synchrone Unterbrechungen = unmittelbare Folge der aktuellen Befehlsabarbeitung, also synchron zum aktuellen Befehl. Beispiele:
• Es wird gerade durch 0 dividiert (Exception)
• Es wird auf eine nicht existente Speicherstelle zugegriffen (Exception)
• Es wird explizit vom Programmierer durch den Aufruf eines entsprechenden CPU-Befehls ein Interrupt erzeugt (TRAP)
• Asynchrone Unterbrechungen = Ereignisse im Computer, die über besondere Leitungen an die CPU geleitet werden (Steuerbus!)
• asynchron = in keinem kausalen Zusammenhang zum aktuellen Befehl
• Beispiele: IO-Gerät meldet relevantes Ereignis (Taste gedrückt, Paket auf Netzkarte eingetroffen, DMA beendet, usw...
• Maskierung = Unterbinden einer CPU-Reaktion auf einen Interrupt
Unterbrechung
synchron asynchron
Trap InterruptException
44
Stichworte
Notizen
Prof. W. Burkard 44
Die Interrupt-Service-Tabelle
• Beim Eintreffen einer (nicht maskierten) Unterbrechung wird hardwaremässig der aktuelle Prozessorzustand (also alle Register) auf dem Stack gespeichert
• Dann erfolgt ein indirekter Sprung über eine im Speicher befindliche Sprungtabelle
• Jede Unterbrechung hat folglich einen festen Index in dieser Sprungtabelle
• In der Tabelle steht die Anfangsadresse der zugehörigen Interrupt-Service-Routine
• Die Fortführung eines unterbrochenen Programms erfolgt später durch Wiederherstellen des Prozessorzustandes
Sprung-tabelle
Speicher
012...k..n
Unterbrechung k
Interrupt-Service-Routinezur Unterbrechung k:Hier stehen die Befehle mit denen der Sachverhalt erledigt wird
001010111011101011110101010011101100101111010101001101
45
Stichworte
Notizen
Prof. W. Burkard 45
Unterbrechungsvektoren des PC
Unterbrechung Name
0 Division durch 01 Einzelschritt-Modus2 Nicht-Maskierbar3 Haltepunkt4 Überlauf5 Bildschirm drucken6 - reserviert -7 - reserviert -8 8253 Systemzeitgeber9 TastaturA - reserviert -B - reserviert -C - reserviert -D - reserviert -E Diskette/FestplatteF - reserviert -
46
Stichworte
Notizen
Prof. W. Burkard 46
Ausführungsmodi
• Moderne Prozessoren unterstützen mehrere Modi der Programmausführung mit abgestuften Privilegien
• Typisch: privilegierter Modus und Normalmodus
• Intel- Prozessoren bieten 4 Abstufungen (Schutzringe 0 – 3)
• Ring 0: höchste Privilegierung
• Ring 3: Normalmodus
• Modi sind für die Umsetzung von Schutzkonzepten erforderlich
• Der Modus hat Einfluss auf die Ausführbarkeit einzelner Befehle
• Beispiel Intel: • spezielle I/O-Befehle sind nur in privilegierten Ringen möglich
• Ausführung im Normalmodus führt zu synchroner Unterbrechung (Exception)
• Maskierung von Interrupts erfordert ebenfalls privilegierten Modus
• Bestimme Register der CPU sind nur im privilegierten Modus erreichbar/änderbar
• Keller und Statusregister existieren mehrfach, d.h. für jeden Modus getrennt
• Interrupts schalten die CPU zwangsweise in einen privilegierten Modus, es gibt keine Befehle hierfür, d.h. gezielter Wechsel von Ring 3 nach „ innen“ geht nur über TRAP
• Rücksprung in den Normalmodus erfolgt über entsprechenden Befehl
47
Stichworte
Notizen
Prof. W. Burkard 47
Speicher in der von-Neumann-Architektur
48
Stichworte
Notizen
Prof. W. Burkard 48
RAM und ROM• Speicher aus CPU-Sicht = hardwareabhängige
Anzahl von Speicherzellen, ansprechbar durch entsprechende Belegung des Adressbusses
• � Der physische Adressraum wird durch die Breite des Adressbusses begrenzt
• Computer sind selten voll ausgebaut, d.h. Lücken im Adressraum (lösen bei Zugriff eine Exception aus)
• Speicher besteht überwiegend aus RAM-Bausteinen, die ihren Inhalt bei fehlender Stromversorgung verlieren
• Kleiner Speicherteil ist mit ROM-Bausteinen bestückt,nur lesbar, behalten aber ihren Inhalt auch ohne Strom
• Im ROM befindet sich der Urlader des Systems, also derjenige Code, den die CPU beim „ Aufwachen“ ausführt
� das ROM muss so in den Adressraum eingefügt sein, dass es diejenige Adresse mit einschließt auf die der Program-Counter nach einem CPU-Reset zeigt
• Heutige Speicherbausteine haben Zugriffszeiten von rund 10 ns und sind damit cirka 10 mal langsamer als aktuelle Prozessoren
� Zwischenpuffer erforderlich ( Cache )
SIMM-Baustein 72 Pin
DIMM-Baustein 168-Pin
Notebook DIMM-Baustein 144 Pins
DDR-RAM Baustein 184 Pins
49
Stichworte
Notizen
Prof. W. Burkard 49
Performance durch Caching
Speicher
2639
Adresse von CPUCache Miss
• Ein Cache ist ein kleiner, aber sehr schneller Puffer, in dem je zwei Dinge vermerkt werden: eine Speicheradresse und ihr Inhalt
• Cache Hit: CPU greift auf gepufferte Adresse zu, Cache liefert den Inhalt
• Cache Miss: Adresse nicht im Cache � langsames Nachladen nötig
• Deferred Write: Schreiben der CPU wirkt nur auf Cache, Speicher wird später aktualisiert � temporäre Speicherinkonsistenz, aber schnell
• Write Through: CPU-Schreibzugriff geht durch auf Speicher
� langsamer, aber sicherer
Cache
Adresse Daten
1312 148
2639 756
5265 28
50
Stichworte
Notizen
Prof. W. Burkard 50
Referenzlokalität und Cache-Temperatur
Gedanke: Cache lohnt sich nur, wenn mittlere Zugriffszeit tD des Systems sinkt !
Wie bestimmt sich tD ? � abhängig von der Trefferwahrscheinlichkeit p des Caches
tD = p * tCache + (1 – p) * tSpeicher
Heutige Caches erreichen (auch wenn sie relativ klein sind )Trefferraten von über 90 %
Warum ?Referenzlokalität = für aktuell zugegriffene Speicherzellen besteht eine deutlich höhere
Wahrscheinlichkeit, dass sie in naher Zukunft wieder angesprochen werden
� Warum ? Schleifen, Variablenzugriff, sequentielles Verarbeitungsmodell
� Konsequenz: Auch die Speicherzellen in der aktuellen Umgebung werden mit hoher Wahrscheinlichkeit angesprochen
� Cache-Line: Caches steigern die Trefferrate, weil sie beim Speicherzugriff in einem Burst gleich mehrere aufeinanderfolgende Speicherzellen laden (Prefetch)
Kalter Cache / heißer Cache: Cache muss sich an die Programmausführung anpassen „warm fahren“d.h. Programm startet => kalter Cache, da viele neue Speicherstellen angesprochenwährend Programm läuft => Cache wird besser, da sich viele Zugriffe wiederholen
51
Stichworte
Notizen
Prof. W. Burkard 51
Die Speicherhierarchie
Durch Kaskadieren, d.h. durch abgestufte Caches wird Systemleistung optimiert:• Nahe an der CPU: kleinster, aber schnellster Cache (teuer!)
• Weiter weg: Cache wird größer, aber langsamer (billiger!)
Level-1-Cache: direkt auf CPU-Baustein integriert, läuft mit vollem Prozessortakt, oft in Instruktionscache und Datencache getrennt (wegen unterschiedlicher Lokalität von Daten und Programmen)
Level-2-Cache: kann die Leistung des Level-1-Cache niemals erreichen, da externer Baustein, d.h. längere Signalwege somit Zeitbedarf! Heute im PC üblich: 512 KByte +
Hauptspeicher, 64 MB und mehr, ca. 10 ns
Level-2-Cache, 512 KB -2 MB, ca. 3 ns
Level-1-Cache, 64-512 KB, < 1 - 2 ns
CPU-Register, 1-2 KB, <1ns
52
Stichworte
Notizen
Prof. W. Burkard 52
Ein- und Ausgabegeräte
• Geräte werden üblicherweise nicht direkt an den Prozessorbus angeschlossen
• Ein E/A-Controller übernimmt die Vermittlerrolle zwischen Prozessor und Gerät
Beispiel Drucker: ein zu druckendes Zeichen wird dadurch ausgeben, dass es dem E/A-Controller der parallelen Schnittstelle übergeben wird, der es über das Druckerkabel gibt
• Komplizierte Geräte verfügen über einen eigenen Prozessor und Speicher, bilden im E/A-Controller somit ein eigenes kleines Computersystem
• Die Interaktion zwischen Prozessor und E/A-Controller geschieht über den Prozessorbus
• Jeder E/A-Controller stellt einen E/A-Adressbereich mit bestimmten Registern im Adressraum der CPU zur Verfügung
• Kommandoregister � dienen der Übermittlung von Befehlen an das Gerät
• Statusregister � dienen der Abfrage des Controller- bzw. Gerätezustands
• Datenregister � dienen dem eigentlichen Informationsaustausch
Beispiel Drucker . . .E/A-Controller
Prozessorbus
53
Stichworte
Notizen
Prof. W. Burkard 53
Bei speicherbasierter EA sind die Register eines Controllers nicht von den normalen Speicherstellen zu unterscheiden. Zugriff erfolgt über normale Lese- Schreib-Operationen und ohne Einschränkungen bei den Adressierungsarten.
Ein- / Ausgabe - Architekturvarianten
P r o z e s s o r b u s
Speicher
L2-Cache
Interrupts
Speicherbus
Speicher
L2-Cache
E/A-Controller E/A-Controller
InterruptsBei einem dedizierten EA-Bus werden EA-Controller über spezielle CPU-Befehle angesprochen. (z.B. IN und OUT -Befehle bei INTEL-CPUs). Für die Auswahl der Controller/Register wird auch hier der Adressbus verwendet, der Steuerbus hat aber weitere Signalleitungen um EA-Zugriff von Speicherzugriff zu trennen
E / A - B u s
E/A-ControllerE/A-Controller
54
Stichworte
Notizen
Prof. W. Burkard 54
• E/A-Buscontroller sind eine spezielle Form des E/A-Controllers
• Sie stellen ausgangsseitig einen standardisierten Bus für den Anschluss der eigentlichen Geräte-Controller zur Verfügung
• Vorteile:
• An den sehr schnellen, in der Länge aber massiv begrenzten Prozessorbus sind nur wenige Komponenten angeschlossen
• Keine Beeinträchtigung der Systemleistung durchlangsame E/A-Geräte
• Bus-Controller übernimmt eine Reihe von Grundfunktionen (Interrupt-Handling, DMA) für alle Geräte-Controller � CPU-Entlastung
• Durch standardisierte Gerätebusse können einzelne E/A-Controller in unterschiedlichen Computerarchitekturen integriert werden
• Gängige Vertreter: PCI und SCSI
• Busmaster-Fähigkeit = einzelne E/A-Controller am Gerätebus können zeitweise die Initiative beim Datentransfer übernehmen � Datentransport ohne CPU möglich, z.B. Festplatt kopiert Daten zum CD-Brenner ohne dass die CPU involviert ist
E/A-Buscontroller
P r o z e s s o r b u s
Speicher
L2-Cache
Interrupts
E/A-Controller
Bus-Controller
E/A-ControllerE/A-Controller
E/A-Controller
top related