Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Systemarchitektur Sommersemester 2009 Universität des Saarlandes

Ähnliche Präsentationen


Präsentation zum Thema: "Systemarchitektur Sommersemester 2009 Universität des Saarlandes"—  Präsentation transkript:

1 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, TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAA

2 Einleitung und Ü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-Schnittstelle Befehlssatzarchitektur (Instruction Set Architecture) Überblick

9 Die (Befehlssatz-)Architektur als Schnittstelle
Anwender Anwendungs-programmierer Anwendungsprogramme Betriebssystem-programmierer Bibliotheksfunktionen, Dienstprogramme Betriebssystem (Befehlssatz-)Architektur - Instruction Set Architecture (ISA) Ü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

11 Rechnerarchitektur und –organization,
Überblick grober Aufbau eines von-Neumann-Rechners Prozessor Arbeitsspeicher, grobe Arbeitsweise eines Prozessors Hardware/Software Schnittstelle, Befehlssätze Codierung von Daten Arithmetik Schaltkreise Boolesche Algebra, Boolesche Funktionen, Boolesche Ausdrücke Speicherhierarchie, Speicher Ein/Ausgabe, Busse Ü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

13 Prinzipielle Arbeitsweise eines Prozessors
Fetch-Decode-Excecute-Zyklus Fetch hole den nächsten Maschinensprachebefehl aus dem Arbeitsspeicher und speichere ihn im Befehlsregister IR ab. Die benötigte Adresse steht im Befehlszähler PC Decode analysiere den Befehl und lade die benötigten Daten Execute führe den Befehl aus und speichere das Ergebnis ab BB - TI Kap. 2.2 Überblick 13

14 Der Fetch-Decode-Execute-Zyklus
Prozessor (CPU) ALU Steuerwerk PC IR Systembus Haupt- speicher Überblick

15 Befehlssatzarchitektur, Assembler und Maschinensprache
ADD R1, R2, R3 Assemblersprache Syntax: <opcode> <dst>, <src1>, src2> Semantik: R1  R2 + R3 Übersetzung Maschinensprache – Befehle als Bitketten Befehlsformat opcode src1 src2 dst func Überblick

16 Datenpfad und Befehlsausführung
Prozessor (CPU) ALU Steuerwerk Ausführung von R1  R2 + R3 PC IR Überblick Quelle: K. Diepold, LDV, TUM

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
Berechnet aus 2 positiven Binärzahlen <a> = <an a0>, <b> = <bn b0> und dem Eingangsübertrag c Î {0,1} die Binärdarstellung s von <a> + <b> +c Carry-Ripple-Addierer cn-1 = sn FA bn-1 an-1 bn-2 an-2 cn-2 sn-1 sn-2 cn-3 FA b1 a1 s1 c0 FA b0 a0 s0 c-1 Überblick

19 Verwendeter Baustein: Volladdierer (FA)
Der Volladdierer dient zur Addition zweier 1-Bit-Zahlen mit Eingangsübertrag. HA a b c s0 s1 FA a b c s1 s0 realisiert durch Überblick

20 Komponente von FA: Halbaddierer (HA)
s1 s0 Der Halbaddierer dient zur Addition zweier 1-Bit-Zahlen ohne Eingangsübertrag. Å a b s0 s1 Komplexität: C(HA) = 2, Tiefe = Zahl der Schritte: depth(HA) = 1 Ü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) Der Halbaddierer berechnet die Funktion:
gegeben durch die Funktionstabelle a b s1 s0 ha : B2 ® B2 mit ha(a, b) = (s1, s0) 1 1 mit und 1 1 Es gilt: 2s1 + s0 = a + b 1 1 1 Alternative Notation: Überblick

23 Der Volladdierer (FA) Der Volladdierer berechnet die Funktion:
Funktionstabelle 1 s0 s1 c b a fa : B3 ® B2 mit Aus der Tabelle ergibt sich: Alternativ: Überblick

24 Volladdierer als Funktion von Halbaddierern
Zur Erinnerung: Also: Überblick

25 Zusammenfassung Å Volladdierer Halbaddierer HA a0 b0 c s0 s1 a0 b0 s0
Kosten und Tiefe eines FA: C(FA) = 5, depth(FA) = 3 Überblick

26 Komplexität und Tiefe des Carry-Ripple-Addierers
Kosten und Tiefe eines FA: C(FA) = 5, depth(FA) = 3 FA b1 a1 s1 c0 FA b0 a0 s0 c-1 cn-1 = sn FA bn-1 an-1 bn-2 an-2 cn-2 sn-1 sn-2 cn-3 Überblick

27 Boolesche Funktionen Sei B = {0,1}
Eine Abbildung f : Bn ® 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

29 Boolesche Ausdrücke Eine Beschreibungsmöglichkeit für Boolesche Funktionen statt Tabellenform, bei n Variablen 2n Einträge. Ziel: kompaktere Repräsentation. Wir betrachten n Variablen x1 , x2 , ..., xn. Sei Xn = {x1 , x2 , ..., xn } . Boolesche Ausdrücke werden über einem Alphabet A = Xn È {0, 1 , + , × , : , ( , ) } definiert. Wir betrachten die Syntax, ihren Aufbau, und die Semantik, ihre Bedeutung, von booleschen Ausdrücken Ü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

33 Leistung verschiedene mögliche Definitionen:
Nutzer: Ausführungsgeschwindigkeit von Programmen Rechenzentrumsleiter: Durchsatz – geleistete Arbeit pro Zeit Ausführungsgeschwindigkeit ~ 1/ Ausführungszeit Ausführungszeit (execution time, latency) eines Programms (allg. einer Aktion) – Zeit zwischen Start des Programms (der Aktion) und Terminierung des Programms (der Aktion) Andere Aktionen: arithmetische Operation, Speicherzugriff, E/A-Operation Selten ist die Ausführungszeit für eine Aktion eine Zahl, da der Ausführungszustand die Ausführungszeit beeinflusst. Beispiel: Zeit für E/A-Operation hängt davon ab, wieviele E/A-Operationen an dem Gerät warten. Meist ist die Ausführungszeit durch eine Verteilung gegeben. Zur Vereinfachung werden wir aber mit einer Zahl arbeiten. Mit welcher Zahl? Mittelwert der Verteilung – bei Universalrechnern Laufzeit im schlechtesten Fall – bei Echtzeitsystemen Überblick

34 Verschiedene Optimierungsziele
Entscheidung für mittlere Laufzeit bzw. Laufzeit im schlechtesten Fall führt zu unterschiedlichen Optimierungsstrategien: mache den häufigsten Fall schnell – dies ist die vorherrschende Philosophie der Rechnerarchitekten, bzw. mache den schlechtesten Fall schnell – dies wird für eingebettete Echtzeitsysteme benötigt Ü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 Adreßbus CPU DRAM Speicher Cache- Control Datenbus In der Regel besitzt ein Rechner einen getrennten Cache für Instruktionen (Instruktionscache) und für Daten (Datencache). Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Überblick

39 Befehle/Adressen/./Operanden
Speicher Funktion – Aufbewahrung für Programme und Daten Organisation – meist eine “Hierarchie” oben Besitzer/Verwalter Größe Inhalte/Struktur schnell, klein CPU-Register Cache Befehle/Adressen/./Operanden Programm 1-8 Bytes Cache Controller Blöcke 8-128 Bytes Speicher Seiten Betriebssystem 512-4K bytes Festplatte Dateien Bnutzer/Operator Mbytes langsam, groß Band Überblick unten


Herunterladen ppt "Systemarchitektur Sommersemester 2009 Universität des Saarlandes"

Ähnliche Präsentationen


Google-Anzeigen