Kap2

11

Click here to load reader

Transcript of Kap2

Page 1: Kap2

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

Page 2: Kap2

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

Jonas
Typewriter
Befehlszähler = Programcounter
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 3: Kap2

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

Page 4: Kap2

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

Jonas
Typewriter
Aritmetikoperationen: Plus, Minus, Mal, Geteilt, Wurzel,.... (alle Rechenzeichen) Logikoperationen: Bedingte (absolute) und unbedingte (relative) Sprünge Schiebefunktionen: BSp.: die Zahl 3 (dezimal 11) soll mehrfach verdoppelt werden => 6 (dezimal 110), (12 dezimal 1100), ....
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 5: Kap2

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

Jonas
Typewriter
Sequentielle Abfolge: Ein Befehl folgt auf den Nächsten
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Jonas
Typewriter
Plan: 1. Frühstückstisch abräumen 2. Wenn Kühlschrank voll, dann weiter bei 5! 3. Einkaufen gehen 4. Weiter bei 7 (absoluter Sprung) | Gehe 3 Befehle weiter (relativer Sprung) 5. Küche putzen 6. Spülmaschine leeren 7. Mittagsessen kochen
Jonas
Typewriter
Synchrone Unterbrechung: Plan wird Fortgesetzt.... 8. Wohnzimmer saugen => Problem: Es ist kein Staubsauger im Haus (Exception) => Problem: Der Postbote klingelt, Status wird gespeichert damit später an dieser Stelle weitergemacht werden kann. Sprung zu X. (Was machen wenn der Postbote klingelt?) 1. zur Tür gehen,.... nach dem Interrupt saugen fortsetzen.
Jonas
Typewriter
Interupts sind z.B. Eingaben über Keybord oder Maus Maskierung bedeutet das sperren eines Interrupts
Page 6: Kap2

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 -

Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 7: Kap2

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

Jonas
Typewriter
ie Priviligierung der einzelnen Ringe nimmt von innen nach außen hin zu, wenn man auf Ring 4 zugreift, heißt dass das auf Ring 0 - 4 zugegriffen wird
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 8: Kap2

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

Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 9: Kap2

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

Page 10: Kap2

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

Jonas
Highlight
= Eingabe / Ausgabe - Controller
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 11: Kap2

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

Jonas
Typewriter
bspw. USB-Bus-Controller
Jonas
Typewriter
bspw. Drucker
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.