Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Kap2
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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