Systemarchitektur Sommersemester 2009 Universität des Saarlandes

Slides:



Advertisements
Ähnliche Präsentationen
Vom HW-Automaten zum Prozessor
Advertisements

Netzwerke in der Informationstechnik
Programmierung: Einführung
4.1 Anforderungen 4.1 Speicherzellen 4.3 SRAM, DRAM 4.4 Caches
(Zweistufige) Logiksynthese
3.2 Subtraktion, Multiplikation, ALU
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Leistung.
Kapitel 1 Der Boolesche Kalkül
Multiplizierer Gesucht: Schaltkreis zur Multiplikation zweier Binärzahlen , Beispiel: RW-Systemarchitektur Kap. 3.
Kapitel 3 Arithmetische Schaltkreise
Ausblick ? Was geschieht, wenn G nicht azyklisch ist? G1 y1 x1
Befehlssatz und Struktur
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
2.3 Register-Transfer-Strukturen
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Wiederholung Operationen auf Mengen Relationen, Abbildungen/Funktionen
Lehrmaterial Grundlagen EDV
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Agenda Die Hardwearkomponenten und ihre Funktionen - Mikroprozessor
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Kapitel 3 5 Rechnerorganisation
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Neumannrechner.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
W. Oberschelp G. Vossen Kapitel 7.
Seminar parallele Programmierung SS 2003
Aufbau und Funktionsweise von Prozessoren
Imperative Programmierung
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Addierwerke.
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Der Prozessor - zentraler Bestandteil eines jeden Computers
Referat zum Thema „DLL“
2.3 Register-Transfer-Strukturen
So arbeitet ein PC.
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Aufbau und Funktionsweise
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Basisinformationstechnologie HK-Medien
Das Betriebssystem.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Rechnersysteme: Halbzeit Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Daten und Information.
Datenverarbeitung im PC
Rechnerarchitekturen
Johann Baron von Neumann
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Central Processing Unit (Zentraleinheit)
Der Prozessor Von Stephan Blum.

Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Vom HW-Automaten zum Prozessor
 Präsentation transkript:

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

Einleitung und Überblick

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

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

Markanteile Universalrechner ~2% Eingebettete Rechner ~98% Überblick

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

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

Inhalte der Vorlesung Betriebssysteme Rechnerarchitektur Software/Hardware-Schnittstelle Befehlssatzarchitektur (Instruction Set Architecture) Überblick

Die (Befehlssatz-)Architektur als Schnittstelle Anwender Anwendungs-programmierer Anwendungsprogramme Betriebssystem-programmierer Bibliotheksfunktionen, Dienstprogramme Betriebssystem (Befehlssatz-)Architektur - Instruction Set Architecture (ISA) Überblick

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

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

Unterhalb der Befehlssatzarchitektur Befehlssatzarchitektur - Instruction Set Architecture (ISA) Implementierung Prozessor (CPU) System-Bus Haupt- speicher Ein-/Ausgabe-Geräte, externe Speicher, externe Kommunikation Überblick

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

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

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

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

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

Komponente der ALU: Addierer 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 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

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

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

Spezifikation der Funktion von Schaltkreisen Welche Funktion berechnet der Schaltkreis? Wie beschreibt man das? Mehrere zueinander äquivalente Alternativen: Funktionstabellen boolesche Ausdrücke Überblick

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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