Systemarchitektur Sommersemester 2009 Universität des Saarlandes Reinhard Wilhelm auf Vorlagen von:...

Preview:

Citation preview

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

Recommended