Hardware-Grundlagen                                                         Die CPU in der von-Neumann-Architektur
 •   fa...
Copyright(C) by Foxit Software Company,2005-2007



                                                     Der zentrale Proz...
Der Bus in der von-Neumann-Architektur                                                   Gängige Systembusse




         ...
Copyright(C) by Foxit Software Company,2005-2007



                                                      Maschinenbefehle...
Copyright(C) by Foxit Software Company,2005-2007



                                                   Sprungbefehle und U...
Copyright(C) by Foxit Software Company,2005-2007



                                                                      ...
Copyright(C) by Foxit Software Company,2005-2007



                                                                      ...
Copyright(C) by Foxit Software Company,2005-2007



                                                                      ...
Referenzlokalität und Cache-Temperatur                                                                                    ...
Copyright(C) by Foxit Software Company,2005-2007



                                                                      ...
Copyright(C) by Foxit Software Company,2005-2007



                                                                      ...
Nächste SlideShare
Wird geladen in …5
×

Kap2

966 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
966
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
24
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Kap2

  1. 1. Hardware-Grundlagen Die CPU in der von-Neumann-Architektur • 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 Prof. W. Burkard 34 Prof. W. Burkard 35 Stichworte Stichworte Notizen Notizen 34 35
  2. 2. Copyright(C) by Foxit Software Company,2005-2007 Der zentrale Prozessor (CPU) Die von-Neumann-Architektur • 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: Edited by Foxit Reader • Programmzähler (PC) enthält die Adresse der nächsten auszuführenden Instruktion For Evaluation Only. • 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 Prof. W. Burkard 36 Prof. W. Burkard 37 Stichworte Stichworte Befehlszähler = Programcounter Notizen Notizen 36 37
  3. 3. Der Bus in der von-Neumann-Architektur Gängige Systembusse 1 2 3 4 10100101 10100101 5 6 Zelle 4 7 schreiben 8 Prof. W. Burkard 38 Prof. W. Burkard 39 Stichworte Stichworte Notizen Notizen 38 39
  4. 4. Copyright(C) by Foxit Software Company,2005-2007 Maschinenbefehle und Daten im Speicher 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 Edited by Foxit Reader • Hierbei unterscheidet man diverse Adressierungsarten: For Evaluation Only. • 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 Prof. W. Burkard 40 Prof. W. Burkard 41 Stichworte Stichworte Notizen Notizen 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), .... 40 41
  5. 5. Copyright(C) by Foxit Software Company,2005-2007 Sprungbefehle und Unterprogramme Synchrone und asynchrone Unterbrechungen • Die reguläre Programmabarbeitung kann auch • Alle gängigen Prozessoren verfolgen ein streng sequentielles Verarbeitungsmodell, durch Unterbrechungen (Interrupts) verändert werden Unterbrechung d.h. nach Beendigung der aktuellen Operation wird mit der Bearbeitung des Befehls • Synchrone Unterbrechungen = unmittelbare Folge der fortgefahren, der im Speicher nachfolgt. aktuellen Befehlsabarbeitung, also synchron • Durch Sprungbefehle kann dieser Ablauf beeinflusst werden zum aktuellen Befehl. Beispiele: synchron asynchron • unbedingter Sprungbefehl: • Es wird gerade durch 0 dividiert (Exception) die sequentielle Abfolge wird auf jeden Fall beendet und statt dessen an einer • Es wird auf eine nicht existente angegebenen Adresse fortgesetzt Speicherstelle zugegriffen (Exception) Trap Exception Interrupt • bedingter Sprungbefehl: abhängig von einer Bedingung erfolgt der Sprung zu einer • Es wird explizit vom Programmierer durch anderen Speicheradresse ( z. B. wenn Inhalt eines Registers = 0 ) den Aufruf eines entsprechenden CPU-Befehls Edited by Foxit Reader ein Interrupt erzeugt (TRAP) • Absoluter Sprung: Zieladresse wird fest vorgegeben For Evaluation Only. • Asynchrone Unterbrechungen = Ereignisse im Computer, die über besondere Leitungen • Relativer Sprung: Angabe der Zieladresse ist relativ zur aktuellen Position an die CPU geleitet werden (Steuerbus!) relative Sprünge machen Programme relokierbar (verschiebbar im Speicher) • asynchron = in keinem kausalen Zusammenhang zum aktuellen Befehl   • Beim Sprung in ein Unterprogramm (JSR Jump SubRoutine) wird zusätzlich erst • Beispiele: IO-Gerät meldet relevantes Ereignis (Taste gedrückt, Paket auf Netzkarte noch die aktuell folgende Speicheradresse auf den Stack gespeichert um bei Ende eingetroffen, DMA beendet, usw... der Subroutine von dort wieder in den Programmcounter geladen zu werden • Maskierung = Unterbinden einer CPU-Reaktion auf einen Interrupt Prof. W. Burkard 42 Prof. W. Burkard 43 Stichworte Stichworte Sequentielle Abfolge: Interupts sind z.B. Eingaben über Keybord oder Maus Ein Befehl folgt auf den Nächsten Maskierung bedeutet das sperren eines Interrupts Notizen Notizen Plan: Synchrone Unterbrechung: 1. Frühstückstisch abräumen Plan wird Fortgesetzt.... 2. Wenn Kühlschrank voll, dann weiter bei 5! 8. Wohnzimmer saugen 3. Einkaufen gehen => Problem: Es ist kein Staubsauger im Haus (Exception) 4. Weiter bei 7 (absoluter Sprung) | Gehe 3 Befehle weiter (relativer Sprung) => Problem: Der Postbote klingelt, Status wird gespeichert damit später an 5. Küche putzen dieser Stelle weitergemacht werden kann. Sprung zu X. (Was 6. Spülmaschine leeren machen wenn der Postbote klingelt?) 1. zur Tür gehen,.... 7. Mittagsessen kochen nach dem Interrupt saugen fortsetzen. 42 43
  6. 6. Copyright(C) by Foxit Software Company,2005-2007 Die Interrupt-Service-Tabelle Unterbrechungsvektoren des PC • Beim Eintreffen einer (nicht maskierten) Unterbrechung wird hardwaremässig der aktuelle Prozessorzustand (also alle Register) auf dem Stack gespeichert Unterbrechung Name • Dann erfolgt ein indirekter Sprung über eine im Speicher befindliche Sprungtabelle 0 Division durch 0 • Jede Unterbrechung hat folglich einen 1 Einzelschritt-Modus festen Index in dieser Sprungtabelle 2 Nicht-Maskierbar 3 Haltepunkt • In der Tabelle steht die Anfangsadresse Unterbrechung k 4 Überlauf der zugehörigen Interrupt-Service-Routine 5 Bildschirm drucken Sprung- 6 - reserviert - • Die Fortführung eines unterbrochenen Programms erfolgt tabelle später durch Wiederherstellen des Prozessorzustandes 7 - reserviert - 0 Edited by Foxit Reader 1 8 8253 Systemzeitgeber 2 . 9 Tastatur For Evaluation Only. Interrupt-Service-Routine . . A - reserviert - zur Unterbrechung k: k Hier stehen die Befehle mit . B - reserviert - . C - reserviert - denen der Sachverhalt n erledigt wird D - reserviert - 001010111011101011 110101010011101100 101111010101001101 E Diskette/Festplatte F - reserviert - Speicher Prof. W. Burkard 44 Prof. W. Burkard 45 Stichworte Stichworte Notizen Notizen 44 45
  7. 7. Copyright(C) by Foxit Software Company,2005-2007 Ausführungsmodi Speicher in der von-Neumann-Architektur • 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: Edited by Foxit Reader • spezielle I/O-Befehle sind nur in privilegierten Ringen möglich For Evaluation Only. • 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 Prof. W. Burkard 46 Prof. W. Burkard 47 Stichworte Stichworte Notizen Notizen 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 46 47
  8. 8. Copyright(C) by Foxit Software Company,2005-2007 RAM und ROM Performance durch Caching • Speicher aus CPU-Sicht = hardwareabhängige • Ein Cache ist ein kleiner, aber sehr schneller Puffer, in dem je zwei Anzahl von Speicherzellen, ansprechbar durch Dinge vermerkt werden: eine Speicheradresse und ihr Inhalt entsprechende Belegung des Adressbusses • Cache Hit: CPU greift auf gepufferte Adresse zu, Cache liefert den Inhalt • Der physische Adressraum wird durch die SIMM-Baustein 72 Pin   Breite des Adressbusses begrenzt • Cache Miss: Adresse nicht im Cache langsames Nachladen nötig   • Computer sind selten voll ausgebaut, d.h. Lücken • Deferred Write: Schreiben der CPU wirkt nur auf Cache, Speicher wird im Adressraum (lösen bei Zugriff eine Exception aus) später aktualisiert temporäre Speicherinkonsistenz, aber schnell   • Speicher besteht überwiegend aus RAM-Bausteinen, • Write Through: CPU-Schreibzugriff geht durch auf Speicher die ihren Inhalt bei fehlender Stromversorgung verlieren DIMM-Baustein 168-Pin langsamer, aber sicherer   • Kleiner Speicherteil ist mit ROM-Bausteinen bestückt, Cache nur lesbar, behalten aber ihren Inhalt auch ohne Strom Edited by Foxit Reader Adresse Daten Cache Miss • Im ROM befindet sich der Urlader des Systems, also Adresse von CPU For Evaluation Only. derjenige Code, den die CPU beim „Aufwachen“ ausführt 1312 148 das ROM muss so in den Adressraum eingefügt sein, 2639 756 2639   dass es diejenige Adresse mit einschließt auf die der Notebook DIMM-Baustein 144 Pins 5265 28 Program-Counter nach einem CPU-Reset zeigt • Heutige Speicherbausteine haben Zugriffszeiten Speicher von rund 10 ns und sind damit cirka 10 mal langsamer als aktuelle Prozessoren Zwischenpuffer erforderlich ( Cache )   Prof. W. Burkard DDR-RAM Baustein 184 Pins 48 Prof. W. Burkard 49 Stichworte Stichworte Notizen Notizen 48 49
  9. 9. Referenzlokalität und Cache-Temperatur Die Speicherhierarchie Gedanke: Cache lohnt sich nur, wenn mittlere Zugriffszeit tD des Systems sinkt ! Durch Kaskadieren, d.h. durch abgestufte Caches wird Systemleistung optimiert: Wie bestimmt sich tD ? abhängig von der Trefferwahrscheinlichkeit p des Caches • Nahe an der CPU: kleinster, aber schnellster Cache (teuer!)   • Weiter weg: Cache wird größer, aber langsamer (billiger!) tD = p * tCache + (1 – p) * tSpeicher 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 Heutige Caches erreichen (auch wenn sie relativ klein sind )Trefferraten von über 90 % und Programmen) Warum ? Level-2-Cache: kann die Leistung des Level-1-Cache niemals erreichen, da externer Referenzlokalität = für aktuell zugegriffene Speicherzellen besteht eine deutlich höhere Baustein, d.h. längere Signalwege somit Zeitbedarf! Heute im PC üblich: 512 KByte + Wahrscheinlichkeit, dass sie in naher Zukunft wieder angesprochen werden Warum ? Schleifen, Variablenzugriff, sequentielles Verarbeitungsmodell ¡ CPU-Register, 1-2 KB, <1ns 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 Level-1-Cache, 64-512 KB, < 1 - 2 ns ¡ mehrere aufeinanderfolgende Speicherzellen laden (Prefetch) Kalter Cache / heißer Cache: Level-2-Cache, 512 KB -2 MB, ca. 3 ns Cache muss sich an die Programmausführung anpassen „warm fahren“ d.h. Programm startet => kalter Cache, da viele neue Speicherstellen angesprochen während Programm läuft => Cache wird besser, da sich viele Zugriffe wiederholen Hauptspeicher, 64 MB und mehr, ca. 10 ns Prof. W. Burkard 50 Prof. W. Burkard 51 Stichworte Stichworte Notizen Notizen 50 51
  10. 10. Copyright(C) by Foxit Software Company,2005-2007 Ein- und Ausgabegeräte Ein- / Ausgabe - Architekturvarianten • Geräte werden üblicherweise nicht direkt an den Prozessorbus angeschlossen Bei speicherbasierter EA sind die Register Interrupts eines Controllers nicht von den normalen • Ein E/A-Controller übernimmt die Vermittlerrolle zwischen Prozessor und Gerät Speicherstellen zu unterscheiden. Zugriff erfolgt über normale Beispiel Drucker: ein zu druckendes Zeichen wird dadurch ausgeben, dass es dem E/A- L2-Cache Lese- Schreib-Operationen und Controller der parallelen Schnittstelle übergeben wird, der es über das Druckerkabel gibt ohne Einschränkungen bei den Adressierungsarten. Prozessorbus • Komplizierte Geräte verfügen über einen eigenen Prozessor und Speicher, bilden im E/A-Controller somit ein eigenes kleines Computersystem E/A-Controller E/A-Controller • Die Interaktion zwischen Prozessor und E/A-Controller geschieht über den Prozessorbus Speicher • Jeder E/A-Controller stellt einen E/A-Adressbereich mit bestimmten Registern im Adressraum der CPU zur Verfügung Bei einem dedizierten EA-Bus werden EA-Controller Edited by Foxit Reader Interrupts über spezielle CPU-Befehle angesprochen. (z.B. • Kommandoregister dienen der Übermittlung von Befehlen an das Gerät IN und OUT -Befehle bei INTEL-CPUs). Für For Evaluation Only. E/A-Bus   die Auswahl der Controller/Register wird • Statusregister dienen der Abfrage des Controller- bzw. Gerätezustands auch hier der Adressbus verwendet, L2-Cache   der Steuerbus hat aber weitere • Datenregister dienen dem eigentlichen Informationsaustausch Signalleitungen um EA-Zugriff   Speicherbus von Speicherzugriff E/A-Controller zu trennen E/A-Controller E/A-Controller Beispiel Drucker . . . Prozessorbus Speicher Prof. W. Burkard 52 Prof. W. Burkard 53 Stichworte Stichworte Notizen Notizen 52 53
  11. 11. Copyright(C) by Foxit Software Company,2005-2007 E/A-Buscontroller • 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 Interrupts • Vorteile: • An den sehr schnellen, in der Länge aber massiv begrenzten Prozessorbus sind nur L2-Cache wenige Komponenten angeschlossen • Keine Beeinträchtigung der Prozessorbus Systemleistung durch langsame E/A-Geräte Speicher Bus-Controller bspw. USB-Bus-Controller • Bus-Controller übernimmt Edited by Foxit Reader eine Reihe von Grundfunktionen (Interrupt-Handling, DMA) For Evaluation Only. für alle Geräte-Controller CPU-Entlastung ¡ E/A-Controller • Durch standardisierte Gerätebusse können einzelne E/A-Controller E/A-Controller in unterschiedlichen Computerarchitekturen integriert werden E/A-Controller E/A-Controller • Gängige Vertreter: PCI und SCSI • Busmaster-Fähigkeit = einzelne E/A-Controller am Gerätebus können zeitweise die bspw. Drucker Initiative beim Datentransfer übernehmen Datentransport ohne CPU möglich, z.B.   Festplatt kopiert Daten zum CD-Brenner ohne dass die CPU involviert ist Prof. W. Burkard 54 Stichworte Notizen 54

×