35
Systemarchitektur Sommersemester 2009 Universitä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,

Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Embed Size (px)

Citation preview

Page 1: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

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,

Page 2: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Einleitung und Überblick

Page 3: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 4: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 5: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Überblick 5

Markanteile

Universalrechner ~2%Eingebettete Rechner ~98%

Page 6: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 7: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 8: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Überblick 8

Inhalte der Vorlesung

Betriebssysteme

Rechnerarchitektur

Software/Hardware-SchnittstelleBefehlssatzarchitektur

(Instruction Set Architecture)

Page 9: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Überblick 9

Die (Befehlssatz-)Architektur als Schnittstelle

(Befehlssatz-)Architektur - Instruction Set Architecture (ISA)

Betriebssystem

Bibliotheksfunktionen, Dienstprogramme

Anwendungsprogramme

Anwender

Anwendungs-programmierer

Betriebssystem-programmierer

Page 10: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 11: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 12: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 13: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Überblick 14

Der Fetch-Decode-Execute-Zyklus

Systembus

Prozessor(CPU)

Haupt-speicher

PC IR

…010101011111001010…

ALU

Steuerwerk

Page 14: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 15: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Überblick 16

Datenpfad und Befehlsausführung

Ausführung von R1 R2 + R3

Prozessor(CPU)

PC IR

ALU

Steuerwerk

Quelle: K. Diepold, LDV, TUM

Page 16: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 17: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 18: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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.

Page 19: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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.

Page 20: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Überblick 21

Spezifikation der Funktion von Schaltkreisen

Welche Funktion berechnet der Schaltkreis? Wie beschreibt man das?

Mehrere zueinander äquivalente Alternativen: Funktionstabellen boolesche Ausdrücke

Page 21: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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)

Page 22: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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)

Page 23: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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))

Page 24: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 25: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 26: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 27: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 28: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 29: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 30: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 31: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 32: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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.

Page 33: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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

Page 34: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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.

Page 35: Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von: Bernd Becker und Christoph Scholl, Institut für Informatik,

Ü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