Systemarchitektur Sommersemester 2009Universität des Saarlandes
Reinhard Wilhelm auf Vorlagen von:
Bernd Becker und Christoph Scholl, Institut für Informatik, Albert-Ludwigs-Universität Freiburg,Paul Molitor, Informatik, Universität Halle-Wittenberg,
Einleitung und Überblick
Überblick 3
Literatur
A. Tanenbaum: Structured Computer Organization (4th Edition). Prentice Hall International 1999.
D. Patterson, J. Hennessy: Computer Organization & Design - The Hardware/Software Interface, Morgan Kaufmann Publishers 1994.
J. Hennessy, D. Patterson: Rechnerarchitektur, Analyse, Entwurf, Bewertung, Vieweg.
J. Keller, W. Paul: Hardware-Design, Teubner, 1998. B. Becker, P. Molitor: Technische Informatik, Pearson W. Stallings: Betriebssysteme: Prinzipien und Umsetzung. Pearson
Studium, 2003. A. Tanenbaum: Moderne Betriebssysteme, Pearson Studium,
2002. A. Tanenbaum: Modern Operating Systems, Prentice Hall, 2001
(englische Originalausgabe). Nehmer, Sturm: Systemsoftware, Grundlagen moderner
Betriebssysteme, Dpunkt-Verlag, 2001 W. J. Paul: Skriptum Systemarchitektur, SS 2008
Überblick 4
Systeme – Inhalte der Vorlesung
Zunächst: Was ist ein System?Ein System stellt eine Gesamtheit von Komponenten dar, die miteinander durch Beziehungen verbunden sind und gemeinsam einen bestimmten Zweck erfüllen
Hier: spezielle Systeme in der Informatik, in denen mindestens eine Komponente ein Rechner ist.Rechner
Universalrechner (general purpose computer), PC, Arbeitsplatzrechner
eingebetteter Rechner in Auto, Flugzeug, Waschmaschine, Fernseher, CD-Spieler, Spielkonsole, Navigator,
Betriebssysteme
Überblick 5
Markanteile
Universalrechner ~2%Eingebettete Rechner ~98%
Überblick 6
Verstehen von Systemen
Wie versteht man ein System, welches aus sehr vielen Komponenten besteht:
einem Rechner, der aus 100 Millionen Transistoren besteht,
darauf laufender Software, Betriebssysteme, Übersetzer, Datenbanken, Kommunikationssysteme, Anwendungsprogramme mit Millionen Zeilen Programmcode
Durch Erkennen der Struktur, dem Aufbau aus Komponenten, und dem Zusammenwirken dieser Komponenten zur Realisierung ihrer Funktion
Methoden: Abstraktion, führt meist zu einer Sicht von Systemen in Schichten und Hierarchien
Überblick 7
Funktionen von und in Rechnersystemen
Welche Funktionen erfüllen Rechnersysteme? Berechnen von Ergebnissen aus Eingaben, Speichern von Daten, Steuern von Prozessen. Diese Funktionen finden wir auf allen Abstraktionsebenen
wieder: Rechnen: Ausführen eines Programms auf Eingaben,
Ausführen einer Wertzuweisung in einem Programm, einer arithmetischen Operation in einer Wertzuweisung, einer Berechnung der Adresse eines Operanden einer Operation.
Speichern: Einträge in Datenbanken, Werte des richtigen Typs in Programmvariablen, Darstellungen von skalaren Werten in Registern des Prozessors, Bits in Flip-Flops
Steuern eines Prozesses, Steuern des Kontrollflusses in einem Programm, Steuern der Ausführung eines Maschinenbefehls
Überblick 8
Inhalte der Vorlesung
Betriebssysteme
Rechnerarchitektur
Software/Hardware-SchnittstelleBefehlssatzarchitektur
(Instruction Set Architecture)
Überblick 9
Die (Befehlssatz-)Architektur als Schnittstelle
(Befehlssatz-)Architektur - Instruction Set Architecture (ISA)
Betriebssystem
Bibliotheksfunktionen, Dienstprogramme
Anwendungsprogramme
Anwender
Anwendungs-programmierer
Betriebssystem-programmierer
Überblick 10
Rechnerarchitektur und –organisation
Rechnerarchitektur – die Nutzer-(Programmierer-)sicht eines Rechners Befehlssatz, zugreifbare Register,
Zahl der Bits für die Darstellung von Daten, Adressierungsmodi, Ein-/Ausgabefunktionen
Beispiel: alle x86-Prozessoren haben die gleiche Architektur
Rechnerorganisation – die Realisierung der Architektur Aufbau des Rechners aus Komponenten, welche Arten
von Speicher, welche arithmetischen Einheiten, welche Steuersignale, …
Beispiel: wird die Multiplikation durch eine arithmetische Einheit realisiert oder muss sie in Software realisiert werden?
Funktionsweise – wie die Komponenten zusammenspielen, um Befehle auszuführen
Überblick 12
Unterhalb der Befehlssatzarchitektur
Befehlssatzarchitektur - Instruction Set Architecture (ISA)
Implementierung Prozessor(CPU)
System-Bus
Haupt-speicher
Ein-/Ausgabe-Geräte, externe Speicher,
externe Kommunikation
Überblick 13BB - TI Kap. 2.2 13
Prinzipielle Arbeitsweise eines Prozessors
FetchFetch hole den nächsten Maschinensprachebefehl aus dem Arbeitsspeicher und speichere ihn im Befehlsregister IR ab. Die benötigte
Adresse steht im Befehlszähler PC
DecodeDecode analysiere den Befehl und lade die benötigten Daten
ExecuteExecute führe den Befehl aus und speichere das Ergebnis ab
Fetch-Decode-Excecute-ZyklusFetch-Decode-Excecute-Zyklus
Überblick 14
Der Fetch-Decode-Execute-Zyklus
Systembus
Prozessor(CPU)
Haupt-speicher
PC IR
…010101011111001010…
ALU
Steuerwerk
Überblick 15
Befehlssatzarchitektur, Assembler und Maschinensprache
ADD R1, R2, R3
Syntax: <opcode> <dst>, <src1>, src2>Semantik: R1 R2 + R3
Assemblersprache
Maschinensprache – Befehle als Bitketten
Befehlsformat opcode src1 src2 dst func
Übersetzung
Überblick 16
Datenpfad und Befehlsausführung
Ausführung von R1 R2 + R3
Prozessor(CPU)
PC IR
ALU
Steuerwerk
Quelle: K. Diepold, LDV, TUM
Überblick 17
Arithmetisch-logische Einheit (ALU)
realisiert arithmetische und logische Operationen, Basis: Darstellung von Festkomma-,
Gleitkommazahlen, Zeichenketten und logischen Werten.
Uns interessierende Eigenschaften: Geschwindigkeit
= Tiefe, depth, des benutzten Schaltkreises = Anzahl der maximal notwendigen Schritte durch den Schaltkreis
Komplexität, C, = Anzahl der Gatter für die Realisierung
Überblick 18
Komponente der ALU: Addierer
Carry-Ripple-Addierer
c0
FA
b0 a0
s0
c-1
FA
b1 a1
s1cn-1
= sn
FA FA
bn-1 an-1 bn-2 an-2
cn-2
sn-1 sn-2
cn-3
Berechnet aus 2 positiven Binärzahlen <a> = <an-1 ... a0>, <b> = <bn-1 ... b0>
und dem Eingangsübertrag c {0,1}die Binärdarstellung s von <a> + <b> +c
Überblick 19
Verwendeter Baustein: Volladdierer (FA)
HA
HA
a b
c
s0
s1
FA
a b c
s1 s0
realisiert durch
Der Volladdierer dient zur Addition zweier 1-Bit-Zahlen mit Eingangsübertrag.
Überblick 20
Komponente von FA: Halbaddierer (HA)
a b
s0s1
HA
a b
s1 s0
Komplexität: C(HA) = 2,
Tiefe = Zahl der Schritte: depth(HA) = 1
Der Halbaddierer dient zur Addition zweier 1-Bit-Zahlen ohne Eingangsübertrag.
Überblick 21
Spezifikation der Funktion von Schaltkreisen
Welche Funktion berechnet der Schaltkreis? Wie beschreibt man das?
Mehrere zueinander äquivalente Alternativen: Funktionstabellen boolesche Ausdrücke
Überblick 22
Der Halbaddierer (HA)
ha : B2 B2
mit ha(a, b) = (s1, s0)
Der Halbaddierer
berechnet die Funktion:
0111
1001
1010
0000
s0s1b a
bas 1bas 0
gegeben durch dieFunktionstabelle
Es gilt: 2s1 + s0 = a + b
mit und
Alternative Notation:ha = ¸a:̧ b:(a^b;a b)
Überblick 23
Der Volladdierer (FA)
fa : B3 B2
mit
mit
Der Volladdierer berechnet
die Funktion:
1111101011011011000101110100101010000000
s0s1cba
Funktionstabelle
f a(a;b;c) = (s1;s0)
2s1 + s0 = a+ b+ c
Aus der Tabelle ergibt sich:
Alternativ:
f a = ¸a:̧ b:̧ c:(a^b_ c^(a b);a b c)
s0 = a b cs1 = a^b_ c^(a b)
Überblick 24
Volladdierer als Funktion von Halbaddierern
Zur Erinnerung:
ha = ¸a:̧ b:(a^b;a b)
f a = ¸a:̧ b:̧ c:(a^b_ c^(a b);a b c)
Also:
f a = ¸a:̧ b:̧ c:ha1(a;b) _ ha1(c;ha0(a;b));ha0(ha0(a;b);c))
Überblick 25
Zusammenfassungf a = ¸a:̧ b:̧ c:ha1(a;b) _ ha1(c;ha0(a;b));ha0(ha0(a;b);c))
Volladdierer Halbaddierer
HA
HA
a0 b0
c
s0
s1
a0 b0
s0s1 Kosten und Tiefe eines FA:
C(FA) = 5, depth(FA) = 3
Überblick 26
Komplexität und Tiefe des Carry-Ripple-Addierers
c0
FA
b0 a0
s0
c-1
FA
b1 a1
s1cn-1
= sn
FA FA
bn-1 an-1 bn-2 an-2
cn-2
sn-1 sn-2
cn-3
Kosten und Tiefe eines FA: C(FA) = 5, depth(FA) = 3
Überblick 27
Boolesche Funktionen
Sei B B = {0,1} Eine Abbildung f : BBn Bm heißt
(vollständig definierte) Boolesche Funktion in n Variablen.
B n,m := {f | f :Bn Bm}
Eine Abbildung f :D Bm mit D Bn heisst (partielle) Boolesche Funktion in n Variablen. B n,m (D):= {f | f :D Bm} für D Bn
Überblick 28
Boolesche Algebren
Boolesche Algebra: algebraische Struktur zum Rechnen mit Booleschen Werten,
eine Menge mit zwei binären Operationen und einer unären Operation mit einer Menge von Eigenschaften
Überblick 30
Boolesche Algebra, Boolesche Funktionen, Boolesche Ausdrücke, Schaltkreise
Definition von Schaltkreisen, ihre Komplexität, ihre Kosten
Die von einem kombinatorischen Schaltkreis berechnete boolesche Funktion
Teilschaltkreise, Hierarchischer Entwurf Beispiele
Überblick 31
Modellierung von booleschen Funktionen durch Schaltkreise
Idee: gerichteter Graph mit einigen zusätzlichen Eigenschaften:
azyklisch,Knoten markiert mit Gattern, allgemeiner,
mit Bausteinen aus einer Bibliothek,Eingangs- und Ausgangsgrad „stimmen“,
ein- und ausgehende Kanten geordnet.
X1 X2 X3 X4 X5 X6 X7 X8
Überblick 32
Entwurfsziele
Korrektheit – System realisiert gewünschte Funktion Spezifikationssprachen Synthetisierung Verifikation
Leistung – Realisierung ist effizient, gute Kombination von Schnelligkeit und Kosten Vorlesung nächste Woche
Überblick 35
Prinzipieller Aufbau eines Rechners
Bestandteile: Prozessor (CPU) Hauptspeicher Externe Speicher Eingabegeräte
(Tastatur, Maus) Ausgabegeräte
(Bildschirm, Drucker, Plotter)
Busse
Prozessor(CPU)
System-Bus
Haupt-speicher
Ein-/Ausgabe-Geräte, externe Speicher,
externe Kommunikation
Überblick 36
Speicher
Anforderungen an Speicher so schnell wie Prozessor – sonst muss der Prozessor warten, so groß, wie jede vorstellbare Anwendung verlangt, - sonst
können manche Anwendungen nicht auf dem Rechner realisiert werden,
so dauerhaft (persistent), wie es die Daten verlangen – sonst droht Verlust, und
bezahlbar.Anforderungen liegen teilweise miteinander im Konflikt: schnelle Speicher sind nicht billig, beliebig große Speicher sind nicht bezahlbar, dauerhafte Speicherung kostet Zeit und Energie.
Überblick 37
Caches
Statische RAM-Speicher sind schnell aber teuer, dynamische RAM-Speicher sind billig aber langsam. kleinen Cache in SRAM-Technologie auf Chip + großen Speicher in DRAM-Technologie Vorteil: wegen lokalen Zugriffsverhaltens der
Programme im Durchschnitt schneller Zugriff Nachteil: hohe Schwankungsbreite für Zugriffszeiten Für Echtzeitsysteme: korrekte und präzise Analysen
der Zugriffszeiten notwendig
Überblick 38
Caches
CPUCPU DRAMDRAM SpeicherSpeicher
Cache- Control
Adreßbus
Datenbus
In der Regel besitzt ein Rechner einen getrennten Cache für Instruktionen (InstruktionscacheInstruktionscache) und für Daten (DatencacheDatencache).Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden.Er ist software-transparentsoftware-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen.
Überblick 39
Speicher Funktion – Aufbewahrung für Programme und Daten Organisation – meist eine “Hierarchie”
CPU-Register
Speicher
Befehle/Adressen/./Operanden Programm 1-8 Bytes
BlöckeCache Controller
8-128 Bytes
oben
unten
schnell,klein
langsam,groß
Cache
Festplatte
Seiten Betriebssystem512-4K bytes
Band
Dateien Bnutzer/Operator
Mbytes
Inhalte/StrukturBesitzer/Verwalter
Größe