Rechnerarchitektur Prof. Dr. Rolf Drechsler Institut für Informatik Universität Bremen
Ansprechpartner und Organisation Rolf Drechsler 3. Flur, Zi. 3510 drechsle@informatik.uni-bremen.de Montag, 15:15 h - 16:45 h: Vorlesung Dienstag, 13:15 h - 14:45 h: Vorlesung/Übung
Vorschlag für Scheinvergabe Übungszettel ca. alle drei Wochen dienen der Selbstkontrolle nicht relevant für Scheinvergabe Schein durch (Fach-)Gespräch in letzter Semesterwoche bzw. nach Vereinbarung Dauer ca. 10-20 Minuten
Literatur Patterson/Hennessy: Computer Organization and Design - The Hardware/Software- Interface, Morgan Kaufmann, 1998 Hennessy/Patterson: Computer Architecture - A Quantitative Approach, Morgan Kaufmann, 1996 Hayes: Computer Architecture and Organization, McGraw-Hill, 1998 Bähring: Mikrorechnersysteme, Springer- Verlag, 1991 Märtin, Rechnerarchitektur, Fachbuchverlag Leibzig, 2001
Motivation (1)
Motivation (2) Erste frei programmierbare Rechner 1934-41 Zuse Z1, Z3 1946 ENIAC Pentium VI
Motivation (3)
Motivation (4) Thomas Watson (IBM): I think there is a world market for maybe five computers. Popular Mechanics: Computers in the future may weigh no more than 1.5 tons. 1943-50
Motivation (5) ENIAC on a chip Laptop = alle Rechner der Welt von 1950
Motivation (6)
Motivation (7) Moore s Law Verdopplung der Transistor-Dichte alle 18 Monate (Gordon Moore, Mitbegründer von Intel, 1965)
Motivation (8) kein Gesetz, sondern Voraussage, was technologisch möglich
Motivation (9) Mars Pathfinder Mission Ariane 5... Pentium Bug
Motivation (10) Pentium Bug Fehler in FP-Unit Imageverlust 475 Millionen $
Motivation (11) Pentium Bug x = 4195835 y = 3145727 z = x - (x/y) y z = 256!!
Motivation (12) Was tun mit all den Transistoren? Architekturkonzepte Wie entwerfen? VLSI CAD
Überblick Einleitung v. Neumann-Modell, Entwurfsprozess Befehlsschnittstelle Mikroarchitektur Speicherarchitektur Ein-/Ausgabe Multiprozessorsysteme,...
Geschichte des Rechners (1) Altertum: griechische Zahnräder, römisches Rechenbrett Rechenmaschine von Schickard Lochkartenmaschine (um die Jahrhundertwende) Differentialanalysator (Bush, 1930)
Geschichte des Rechners (2) Theoretische Abhandlungen: Turing (1936): On Computable Numbers Shannon (1936): Verbindung zwischen symbolischer Logik und elektrischen Schaltungen Binäre Addiermaschine (Stibitz, 1937) Allzweck-Computer (Zuse, 1941)
Geschichte des Rechners (3) Colossus (1943): Knacken von Geheimcodes von Neumann beschreibt wesentliche Elemente eines Computersystems (1945) ENIAC (1946): erster (großer) elektronischer Digitalrechner
Geschichte des Rechners (4) Erfindung des Transistors (1947) durch Bardeen, Shockley und Brattain LEO (1951): erster Rechner für kaufmännische Zwecke Computergestützte Wahlprognose in USA (1952) Erster Magnetspeicher (Forrester, 1953), zuvor Elektronenröhrenspeicher
Geschichte des Rechners (5) IBM 650 (1954): in 15 Jahren 1500mal verkauft Transistoren auf Silizium (Teal, 1954) TRADIC (1955): erster Transistor- Computer der Bell Labs mit 800 Transistoren Integrierte Schaltungen und MOS (metal oxide semiconductors)
Geschichte des Rechners (6) PDP-8 (DEC, 1965): erster Minicomputer mit kommerziellem Erfolg (20.000 Dollar) Intel 4004 (Hoff, 1971): Chip, mit Zentraleinheit als wesentlichen Bestandteil Altair (Roberts, 1974): Bausatz eines Mikrocomputers für 397 Dollar
Geschichte des Rechners (7) BASIC für Altair (Gates, Allen, 1975) PCs für den Massenmarkt (1977), z.b. Apple II, Radio Shack TRS-80, Commodore PET VisiCalc (1979): erste kaufmännische Software für PC IBM PC (1981)
Klassifikation von Rechnern Anforderungen Leistung Fehlersicherheit Programmierfreundlichkeit... Methoden zur Einordnung
Kiviat Graphen (1) Seit 1978 Allgemeines Bewertungsmaß Graphische Darstellung Bewertung des Gesamtsystems Acht messbare Größen aus vier Gruppen
Kiviat Graphen (2) Prozessorleistung Pc[access/sec] verarbeitete Bytezugriffe des Prozessors auf den Speicher pro Sekunde Hauptspeicher Kapazität Mp[byte] Zugriffszeit Mp speed[byte/sec]
Kiviat Graphen (3) Peripheriespeicher Kapazität Ms[byte] Zugriffszeit Ms speed[byte/sec] Übertragungsrate auf Peripherie für menschliche I/O T.human[byte/sec] Rechner-Rechner Verbindungen T.communication[byte/sec] weitere externe Geräte T.external[byte/sec]
Kiviat Graphen (4) Abtragen auf kreisförmiger logarithmischer Skala Pc Mp Mp speed Ms Ermöglicht schnellen Überblick Ms spe T.human T.external T.communication
Kiviat Graphen (5) Eigenschaften: allgemeines Bewertungsmaß Bewertungsgrundlage für Gesamtsystem Überprüfung der Amdahl-Regeln leicht möglich Aussage über Systembalance innere Struktur des Rechners wird nicht weiter bewertet
Amdahl-Regeln Die Kapazität des Hauptspeichers in Byte sollte mindestens der Anzahl der auszuführenden Instruktionen pro Sekunde entsprechen. Die I/O-Übertragungsrate in Bit pro Sekun-de sollte mindestens der Anzahl der auszuführenden Operationen pro Sekunde entsprechen.
Klassifikation durch Flynn (1) Seit 1972 Einfache Klassifikation Hoher Abstraktionsgrad Grundlage ist Unterscheidung nach Befehlsstrom und Datenstrom
Klassifikation durch Flynn (2) SISD=single instruction stream - single data stream Rechner mit einfachem Befehls- und Datenstrom MISD=multiple instruction stream - single data stream Rechner mit mehrfachem Befehls- und einfachem Datenstrom
Klassifikation durch Flynn (3) SIMD=single instruction stream - multiple data stream Rechner mit einfachem Befehls- und mehrfachem Datenstrom MIMD=multiple instruction stream - multiple data stream Rechner mit mehrfachem Befehls- und Datenstrom
Klassifikation durch Flynn (4) Beispiele SISD: klassische Rechner SIMD: ILLIAC IV, STARAN, Vektorrechner, Feldrechner MISD: (Pipelinerechner) MIMD: Parallelrechner, Transputernetze
Verfeinerung von Higbie Seit 1973 Verfeinerung der Klasse SIMD in: Feldrechner Assoziativrechner Assoziative Feldrechner Orthogonalrechner
Klassifikation nach Shore Rechner werden nach vier Basiskomponenten klassifiziert: Kontrolleinheit ALU Datenspeicher Befehlsspeicher Typ 1: wortseriell/bitparallel Typ2: wortparallel/bitseriell...
Operationsprinzip-Struktur- Matrix nach Giloi Unterteilung eines Rechners in Operationsprinzip Informationskonzept Kontrollkonzept Struktur Hardware-Betriebsmittel und ihre Struktur Nur anwendbar auf Rechner mit zentralisierter Kontrolle
Überblick Einleitung v. Neumann-Modell, Entwurfsprozess Befehlsschnittstelle Mikroarchitektur Speicherarchitektur Ein-/Ausgabe Multiprozessorsysteme,...
von Neumann-Architektur Zentraleinheit Speichereinheit RAM/ROM Steuerbus Adressbus Datenbus Ein-/Ausgabeeinheit
Überblick Einleitung v. Neumann-Modell, Entwurfsprozess Befehlsschnittstelle Mikroarchitektur Speicherarchitektur Ein-/Ausgabe Multiprozessorsysteme,...
Hardware-Beschreibung und Entwurf Spezifikation Funktionale Simulation Testbench Logiksynthese Gate-Level Simulation Formale Verifikation Scanpath Placeand and Route
Mikroprozessorsysteme (1) Viele Anwendungen, z.b. Textverarbeitung, Lohnabrechnung,... Steuerung von Maschinen im Haushalt (Waschmaschine, Geschirrspülautomat,...) sicherheitskritische Anwendungen (ABS, medizinische Anwendungen)
Mikroprozessorsysteme (2) MPs sind komplexe Schaltwerke MPs bearbeiten Sequenz von Steuerungsschritten (Programme) in Abhängigkeit von Daten Universell Einsetzbar Änderungen/Erweiterungen einfach Anpassung an neue Umgebung möglich/unproblematisch
Mikroprozessorsysteme (3) Wir unterscheiden im folgenden: Programmdaten (Befehle), die die Art der Verarbeitung festlegen (Operationen) Rechendaten, das sind die Daten, die verarbeitet werden (Operanden) Programm ist Folge von Befehlen Abarbeitung in fester Reihenfolge Pro Verarbeitungsschritt ein Befehl
Grundarchitekturen (1) Kernstück ist Zentraleinheit Speicher, in denen Daten abgelegt werden Ein- und Ausgabebausteine, mit denen Kommunikationen mit Außenwelt hergestellt wird
Grundarchitekturen (2) Harward-Architektur RAM/ROM Zentraleinheit Programmspeicher Datenspeicher RAM Steuerbus Adressbus Datenbus Ein-/Ausgabeeinheit
Grundarchitekturen (3) Princeton-(von Neumann-)Architektu Zentraleinheit Speichereinheit RAM/ROM Steuerbus Adressbus Datenbus Ein-/Ausgabeeinheit
Grundarchitekturen (4) Komponenten durch Busse verbunden Vorteile: Verringerung der Anzahl der Leitungen Erweiterbarkeit/Skalierbarkeit Probleme bei bidirektionalen Bussen zu jedem Zeitpunkt nur ein Zugriff Harward-Architektur hier überlegen
Grundarchitekturen (5) Zentraleinheit besteht aus zwei Teilen: befehlsverarbeitend datenverarbeitend Speicher beinhalten Daten und Programme Princeton: Es muss Mechanismus geben, um zwischen Daten und Befehlen zu unterschieden.
Grundarchitekturen (6) Zweiphasensystem: Befehl aus Speicher holen und interpretieren Speicherinhalt holen und Befehl verarbeiten und Folgeadresse berechnen Bussystem kann zum Flaschenhals (bottleneck) eines MPs werden
Zentraleinheit Auch Mikroprozessor oder CPU (=central processing unit) Aufgaben: Steuerung Holen und Interpretieren von Befehlen Ausführen von Befehlen Organisation des Datenaustauschs mit der Umwelt
Architektur einer Zentraleinheit Komponenten: Steuerwerk Operationswerk Steuerwerk für Befehlsverarbeitung Operationswerk für Datenverarbeitung Ausführung eines Befehls: Holphase Ausführungsphase
Steuerwerk (1) Steuerwerk ist endlicher Automat Steuert und überwacht interne und externe Funktionen des MPs Befehl wird zerlegt in Folge von Elementarbefehlen
Steuerwerk (2) Befehlsbearbeitung Laden des Befehlszählers Entschlüsselung des Befehlsregisters (Befehlsdekodierung) und Einstellen des Programmzählers Laden weiterer Operanden Ausführen des Befehls Abspeicherung der Ergebnisse
Steuerwerk (3) Man unterscheidet festverdrahtetes Steuerwerk mikroprogrammiertes Steuerwerk
Steuerwerk (4) Festverdrahtetes Steuerwerk: Ablauf fest vorgegeben Mikroprozessor leicht handhabbar kompakter und schneller Aufbau des MPs es existieren umfangreiche Programmentwicklungs- und Optimierungswerkzeuge Befehle werden in mehreren Taktphasen ausgeführt
Steuerwerk (5) Mikroprogrammiertes Steuerwerk: Satz von Grundbefehlen (Mikrobefehle) flexible Gestaltung des Befehlssatzes Emulation anderer MPs möglich Anpassung an Anforderungen möglich erhöhter Hardwareaufwand es existieren weniger Entwicklungswerkzeuge, da z.b. selbstdefinierte Befehls-sätze nicht unterstützt werden müssen
Operationswerk (1) Durchführung von Operationen: logische arithmetische Bekannte Operationen: Addition, Konjunktion, Negation, Vergleich, Inkrementieren, Schieben,... Je nach Operation ein oder zwei Operanden
Operationswerk (2) Schaltnetz kombinatorisches Netzwerk (ALU=arithmetic logical unit) Registerbank Abspeicherung der Operanden und Ergebnisse Diverse Register Statusinformationen, Programmzähler, etc.
Operationswerk (3) 1. Operand ACC A ACC B 2. Operand Funktionsauswahl ALU F=f(A,B) Erg.Reg Status.R
Maschinenzyklus (1) Komponenten des Steuerwerks: Befehlszähler (PC=program counter) enthält immer die Adresse des nächsten im Speicher folgenden Befehlswortes Befehlsregister (IR=instruction register) dient zur Zwischenspeicherung des (ersten) Befehlswortes Adressregister (AR) beinhaltet die auf das erste Wort eines Befehls folgende Operandenadresse
Maschinenzyklus (2) Steuerlogik des Steuerwerks dekodiert Operationscode eines Befehls Steuerlogik ist für Befehlsausführung verantwortlich Ansteuerungssignale für ALU, interne Daten-, Adress- und Steuersignale werden erzeugt Signale für externen Systembus (angeschlossene Funktionseinheiten, z.b. Quittierung für Datentransport)
Maschinenzyklus (3) Rechenwerk umfasst: ALU Registerspeicher haben Register innerhalb des Registerspeichers gleiche Funktionalität, so nennt man sie auch allgemeine Register Pufferregister am Eingang der ALU durch Pufferspeicher unterstützte ALU heißt auch Register ALU (RALU) vor Verknüpfung der Operanden sind diese in Pufferregister zu laden
Maschinenzyklus (4) Prozessorientiertes Bussystem als Verbindung zwischen Registerspeicher, den einzelnen Registern, ALU und externem Systembus Datenbus Adressbus Steuerbus Signale zur Auswahl der Register im Registerspeicher
Maschinenzyklus (5) Abarbeitung eines Befehls erfolgt in einem Befehlszyklus Zeittakt für Mikrooperation liefert Taktgenerator Maschinenzyklus ist Verarbeitungsab-lauf innerhalb eines Taktes Beispiel: 50 ns bei 20 MHz-Takt
Maschinenzyklus (6) Transport des Befehls vom Speicher in Befehlsregister, Erhöhen des Befehlszählers Transport des ersten Operanden vom Speicher oder einem allgemeinen Prozessorregister in das Rechenwerk Transport des zweiten Operanden vom Speicher oder einem allgemeinen Prozessorregister in das Rechenwerk Ausführen der Operation durch Verknüpfen der Operanden Transport des Resultats vom Rechenwerk in den Speicher oder in ein allgemeines Prozessorregister
Registerfunktionen (1) Akkumulator-Register (ACCU) speichert einen Operanden unterstützt Ausführung von Schieben Programmzähler (Befehlszähler) erzeugt durch Inkrementieren aufeinanderfolgende Programmadressen bei Sprungbefehlen neuen Wert laden
Registerfunktionen (2) Instruktionsregister nimmt den aus dem Speicher gelesenen Befehl auf Notizblockregister temporäre Speicherung von Daten, Operanden, Statusinformationen,... Statusregister Informationen, die aus Operationen resultieren (Überlauf, Übertrag, Vorzeichen)
Registerfunktionen (3) Stack-Register (Stapel-Register) aktueller Stand des Stackpointers Verwaltung von Rücksprungadressen und lokalen Variablen bei Unterprogrammen Indexregister Ein-Ausgaberegister Adressregister