Rechnerstrukturen. Wintersemester 2008/2009. Dipl. Inform. Ingo Scholtes scholtes@syssoft.uni trier.de. http://syssoft.uni trier.



Ähnliche Dokumente
Brückenkurs / Computer

Brückenkurs / Computer

Grundlagen der Rechnerarchitektur

TO-220 TO-202 TO-92 TO-18. Transistoren mit verschiedenen Gehäusen

Die Mikroprogrammebene eines Rechners

Die Geschichte des Computers

Im Original veränderbare Word-Dateien

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Daten verarbeiten. Binärzahlen

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

Technische Informatik I

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2)

Computer-Architektur Ein Überblick

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Wichtige Rechnerarchitekturen

Computeria Urdorf. Treff vom 16. Januar Was ist ein Computer?

Rechner Architektur. Martin Gülck

2.2 Rechnerorganisation: Aufbau und Funktionsweise

1. Übung - Einführung/Rechnerarchitektur

Grundlagen der Rechnerarchitektur. Einführung

Technische Informatik I, SS 2001

N Bit binäre Zahlen (signed)

Elektromechanische Computer

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Grundlagen der Rechnerarchitektur. MIPS Assembler

Version 0.3. Installation von MinGW und Eclipse CDT

Berühmte Informatiker

Einführung in die Systemprogrammierung

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Instruktionssatz-Architektur

Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung

Grundlagen der Rechnerarchitektur. Einführung

Embedded Linux. Embedded Linux. Daniel Buchheim Seminar "Eingebettete drahtlose Systeme"

Installation LehrerConsole (für Version 6.2)

Einführung in. Logische Schaltungen

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Markus Kühne Seite Digitaltechnik

RISC - Architekturen. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Mikroprozessor als universeller digitaler Baustein

Informatik Mensch Gesellschaft. Historische Entwicklung der Informationstechnik (von Anfang bis Heute)

Mikrocontroller Grundlagen. Markus Koch April 2011

4D Server v12 64-bit Version BETA VERSION

Organisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008

Binärdarstellung von Fliesskommazahlen

Teil VIII Von Neumann Rechner 1

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Computerarithmetik ( )

1 Informationelle Systeme begriffliche Abgrenzung

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Lösungsvorschlag zur 4. Übung

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Algorithmus, siehe (1)

2. Negative Dualzahlen darstellen

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

3. Halbleiter und Elektronik

Open Source als de-facto Standard bei Swisscom Cloud Services

Informatikgrundlagen (WS 2015/2016)

Übungen zur Softwaretechnik

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

, WS2012 Übungsgruppen: Mo.,

Einführung in PHP. (mit Aufgaben)

L3. Datenmanipulation

h- Bestimmung mit LEDs

Facharbeit Informatik. Thema:

Installation der SAS Foundation Software auf Windows

Grundlagen der Informatik

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

Künstliches binäres Neuron

Proseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution

Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund

Der von Neumann Computer

Übungen zu C++ Kapitel 1

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Aufbau und Funktionsweise eines Computers

2 Darstellung von Zahlen und Zeichen

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Übung - Datensicherung und Wiederherstellung in Windows 7

N Bit Binärzahlen. Stelle: Binär-Digit:

Assembler am Beispiel der MIPS Architektur

Zählen von Objekten einer bestimmten Klasse

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Allgemeine Informatik Thema 1 Informatik; Konzepte (II)

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Der Rechner. Grundbegriffe. Aufbau. Funktionsweise. Betriebssystem. Kategorisierung. PC-Komponenten. Prof. Dr. Aris Christidis

Staatlich geprüfter EDV-Führerschein

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Kann ein Computer denken?

Hardware/Software-Codesign

Informatik. 12.c. 1. Nachrichten, Informationen, Daten, Kommunikation

Der Kopf ist rund, damit das Denken die Richtung

Berühmt berüchtigte Softwarefehler. Der Pentium Division-Bug. vorgetragen von: Sebastian Knieschewski

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

miditech 4merge 4-fach MIDI Merger mit :

Java Einführung Operatoren Kapitel 2 und 3

Transkript:

Rechnerstrukturen Wintersemester 2008/2009 Dipl. Inform. Ingo Scholtes scholtes@syssoft.uni trier.de http://syssoft.uni trier.de/~scholtes Motivation Vorlesung Schaltnetze/Schaltwerke Diese Vorlesung Historische Einordnung von Mikroprozessoren Aufbau einer (echten) CPU Brücke zwischen Hard und Software Maschinenprogrammierung Wichtige Voraussetzung für Compilerbau Programmierung 1

Einordnung Programmierung, Compilerbau Hochsprache Compiler Inhalt dieser Vorlesung Computerarchitektur Digitaltechnik Schaltnetze, Schaltwerke Bausteine Gatter Inhalt der Vorlesung Geschichte des Computers Computer Prozessoren Moderne CPUs Computerarchitekturen Allgemeines MIPS Architektur MIPS Maschinensprache Arithmetik Load/Store Instruktionen Logische Operationen Sprungbefehle Prozeduren Speicherorganisation PCSPIM Übersetzen, Binden, Starten Compileroptimierungen Statische/Dynamische Libraries Arithmetik Vorzeichen, Überläufe Multiplikation, Division Gleitkommaarithmetik Datenpfad und Steuerwerk Einzyklenimplementierung i l i Mehrzyklenimplementierung Pipelining Data Hazards Forwarding Control Hazards Branch Prediction Caches Architekturen Kohärenz MultiCores / ManyCores Aktuelle Technologien Trends Optional: Supercomputing Geschichte TOP500 Trends 2

Literatur David Patterson und John Hennessy Rechnerorganisation und Entwurf Die Hardware/Software Schnittstelle, Spektrum Akademischer Verlag, 3. Auflage, 2005 Andrew S. Tanenbaum Structured Computer Organization, Prentice Hall, 4. Auflage, 1990 Übungen Wöchentlich (freiwilliges) Übungsblatt Gemeinsame Besprechung Dienstags nach der Vorlesung Übungsleiter Jean Botev Erste Übung Nächste Woche Kein Übungsblatt Besprechung des SPIM Simulators 3

Folien und Neuigkeiten Folien sowie Aktuelles zu Vorlesung und Übung http://syssoft.uni trier.de/~scholtes Diskussion Vorkenntnisse Rechnerarchitektur / Assembler Vorkenntnisse Rechnerarchitektur / Assembler Inhaltliche Vorstellungen / Ansprüche? 4

Kapitel 1 Computer und Prozessoren Historisches Meilensteine 1968 Mikroprozessor 1950er Transistor und IC Ab 1946 Von Neumann Rechner 1940er Elektronisch Ab 1822 Mechanisch 5

Mechanische Modelle (seit 1822) Charles Babbage (1791 1871) Für astronomische Berechnungen Maschinelle Addition, Multiplikation, Subtraktion Arbeitete dezimal Walzen mit Zahlen Analytical Engine Programmierbar mit Lochkarten Ada Lovelace Charles Babbage Difference Engine (1832) Quelle: http://www ipst.u strasbg.fr Relais Joseph Henry 1835 Elektromagnet betätigt mechanischen Schalter Steuerspannung an Spule öffnet/schließt damit Stromkreis Mechanische Arbeitsweise Sehr begrenzte Schaltgeschwindigkeit (~ 10 Hz) Lebensdauer ~ 10 5 Schaltvorgänge typisch D.h. 10.000 Sekunden ~ 3 Stunden Dauerbetrieb Quelle: Wikipedia 6

Zuse Z3 (1941) Konrad Zuse (9 (1910 1995) Erster programmgesteuerter elektron. Rechner der Welt 2000 Relais elektromechanisch 4 KW Leistungsaufnahme 1 Tonne Gewicht 5 Hz 3 Sekunden/Multiplikation 0,7 Sekunden/Addition Quelle: http://irb.cs.tu berlin.de/~zuse/ Vakuumröhren Robert von Lieben, 1906 Funktionsweise Triode Anode (A) Beheizte Kathode (K) Steuergitter (S) Elektronen treten aus Kathode aus Treffen auf Kathode, ein Strom fließt Spannung am Steuergitter blockiert oder verstärkt Elektronenfluss Nicht mechanisch Schaltgeschwindigkeit deutlich höher Aber immer noch eng begrenzt Aufheizen problematisch Lebensdauer Energiebedarf S A Vakuum K 7

Colossus (1944) Entschlüsselung deutscher Enigma Funksprüche Digital und elektronisch Basiert auf Alan Turings Ideen Programmierbar (durch Neu Verdrahtung) Nicht Turing vollständig Technische Daten 2000 Vakuumröhren Colossus Quelle: http://www.turing.org.uk/turing/scrapbook/electronic.html ENIAC (1946) Electronic Numerical Integrator g And Computerp Elektronisch aber nicht digital Programmierbar durch Neu Verdrahtung Im Auftrag der US Armee gebaut Berechnung ballistischer Tabellen Technische Daten 30 Tonnen Gewicht 19.000 Vakuum Röhren 150 kw 1.900 Additionen/s 375 Multiplikationen/s ENIAC Quelle: http://www.don lindsay archive.org 8

Computer der damaligen Zeit Babbage, Colossus, ENIAC Speziell für jeweiligen Zweck gebaut Prozessoren im heutigen Sinn? Programm Teil der Maschinenhardware Wenn überhaupt Programmänderung gdurch Neuverdrahtung Begriff Computer Damals Berufsbezeichnung Kapitel 1 Computer und Prozessoren John von Neumann und die Entdeckung des Prozessors 9

Was macht einen Computer aus? John von Neumann (1903 1957) Arbeiten über das fundamentale Wesen des Computers Bahnbrechende Arbeit 1946 zusammen mit Burks und Goldstine Preliminary Discussion of the Logical Design of an Electronic Computing Instrument Grundidee Universeller Computer mit variablem ibl Programm Daten und Programm gemeinsam im Speicher der Maschine Bei geeigneter Wahl möglicher Instruktionen Turing vollständig Nach Church scher These reicht das aus Von Neumann Architektur Basis so gut wie aller Computer Fünf Elemente Speicher (Storage Organ) Rechenwerk (Arithmetic Organ) Leitwerk (Control Organ) Eingabe Ausgabe Leitwerk Eingabe Ausgabe Speicher Rechenwerk 10

Speicher Daten und Instruktionen im gleichen Speicher Vgl. Harvard Architektur Codierung von Instruktionen als Zahlen Leitwerk transferiert Daten zum Rechenwerk und wieder zurück Conceptually we have discussed above two different forms of memory: storage of numbers and storage of orders. If, however, the orders to the machine are reduced to a numerical code and if the machine can in some fashion distinguish a number from an order, the memory organ can be used to store both numbers and orders. Burks, Goldstine, von Neumann, Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, 1947 Ein und Ausgabe Nutzer bringt Programm und Daten in den Speicher z.b. Lochkarten, Tastatur, Maus, Mikrophon Nach Berechnung Ergebnisse im Speicher ausgegeben Z.B. Bildschirm, Drucker, Soundkarte Human Computer Interface = HCI Letztendlich landet alles im Speicher there must exist devices, the input and output organ, whereby the human operator and the machine can communicate with each other. Burks, Goldstine, von Neumann, Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, 1947 11

Rechenwerk (Arithmetic Organ) Zentrale Komponente ALU Durchführung elementarer arithmetischer Operationen Inasmuch as the device is to be a computing machine there must be an arithmetic organ in it which can perform certain of the elementary arithmetic operations. There will be, therefore, a unit capable of adding, subtracting, multiplying and dividing. Burks, Goldstine, von Neumann, Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, 1947 Leitwerk (Control Organ) Leitwerk + Rechenwerk = Prozessor im heutigen Sinn Instruktionen + Daten laden Instruktionen ausführen Rechenwerk instruieren Kontrollfluss steuern If the memory for orders is merely a storage organ there must exist an organ which can automatically execute the orders stored in the memory. We shall call this organ the Control Burks, Goldstine, von Neumann, Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, 1947 12

EDVAC (1946) Electronic Discrete VAriable Computer ErsterVon Neumann Rechner Programmierbar Turing Vollständig Binär und elektronisch Daten 6.000 Vakuum Röhren 7,8 Tonnen 56 KW Leistungsaufnahme 5,5 KB Speicher 1100 Additionen/s 344 Multiplikationen/s John von Neumann vor EDVAC Quelle: http://www.scitech.mtesz.hu/10kiraly/kiraly_3.htm Von Neumann heute Speicher Transferrate ist geringg gemessen an Speichergröße und CPU Takt Zunehmend problematischer Von Neumann Flaschenhals Große Datenmengen mit minimalem Bearbeitungsaufwand? Lösungsansätze Caches? SIMD? MultiCores? 13

Kapitel 1 Computer und Prozessoren Wie Computer Ihre heutigeverbreitung erreichen konnten Der Transistor (1948) Halbleiter basierter elementarer Wechselschalter John Bardeen, Walter Brattain, William Shockley entwickeln 1948 Point Contact Transitor Nobelpreis für Physik 1956 Weiterentwicklungen Feldeffekttransistor Bipolartransitoren Lösen Röhren binnen 10 Jahren ab Abb: Point Contact Transistor Quelle: Wikipedia 14

Der integrierte Schaltkreis (1958) Bislang Computer = Menge verlöteter Transistoren Viel Handarbeit Transitoren aufwendig und groß Begrenzt mögliche Transistorzahl und Komplexität Jack Kilby / Robert Noyce Dotierung eines Halbleiter Trägermaterials mit Fremdatomen Selektive lki Steuerung der Lifähikid Leitfähigkeit des Halbleiter lbli Trägermaterials Viele Transistoren auf einem einzigen Trägermaterial Miniaturisierung möglich Belichten statt Löten! Jack Kilby und der erste IC Quelle: http://www.cedmagic.com/history/integrated circuit 1958.html Der Mikroprozessor (1968) Prozessor aus ICs als einzelnes Bauteil Auf einen einzigen Halbleiter belichtet Texas Instruments (1968) Intel 4004 (1971) 2300 Transistoren Und die Revolution kann beginnen Grundlegendes Herstellungsprinzip gp pbis heute Core 2 Duo 291 Mio. Transistoren Pentium D 900 376 Mio. Transistoren GeForce 8800 681 Mio. Transistoren 15

Kapitel 1 Computer und Prozessoren Wie man Sand zum Rechnen bringt Herstellung einer modernen CPU Gewinnung von Silizium (Silicon) aus Sand (Siliziumdioxid) Produktion eines Stabs aus reinem Silizium Wird in 2,5mm dicke Scheiben (Wafer) geschnitten 16

Herstellung einer modernen CPU In mehreren Schritten werden viele identische Strukturen (Dies) auf die Wafer gebracht durch Belichtung (mit UV oder sichtbarem Licht) Vorteile von UV Licht? Anschließendes Ätzen der Oberfläche Herstellung einer modernen CPU Zerschneiden der Wafer und Aussortieren Zerschneiden der Wafer und Aussortieren unvollständiger und defekter Dies 17

Herstellung einer modernen CPU Einbau in schützendes Gehäuse Verdrahtung mit Gehäusepins Letzter Test Fertig! Miniaturisierung Kosten pro Wafer i. W. konstant Materialkosten, Bearbeitung, Belichtung, etc. unabhängig von Anzahl der Dies Preis wird bestimmt durch Ausbeute Anzahl Dies pro Wafer Fortschreitende Miniaturisierungi i i Bessere Ausbeute Mehr Transistoren pro Chip Schneller! Niedrigerer Preis 18

Blick in aktuelle CPU Ein genauerer Blick 19

Fakten Atemberaubendes Tempo ~ 52 Mrd. Additionen pro Sekunde ~ 2,5 GigaFlops GigaFlop? Integrationsdichte ~ 300 Mio. Transistoren auf 140 mm 2 Aktuell 65 nm Strukturgröße Menschliches Haar 0,06 mm = 60 μm = 60.000 nm ~ 925 Transistoren = Durchmesser eines Haars Vergleich Gehirn 100 Mrd. Neuronen jeweils ca. 100.000 nm groß The Story So Far Core 2 Duo CPU gg gegenüber EDVAC 1000 mal energieeffizienter! 65 W gegenüber 56 KW 150.000 mal leichter! Ca. 50 Gramm gegenüber 7,8 Tonnen 20.000.000 mal schneller! Ca. 52.000.000.000 gegenüber gg 1.100 Additionen pro Sekunde Rund 150.000 mal billiger! Ca. 1000 $ gegenüber geschätzten 150 Mio $ Ca. 63.000 mal mehr Transistoren 376 Mio. Transistoren gegenüber 6000 Röhren 20

2067??? 20.000.000 mal schneller? 1.040.000.000.000.000.000 Additionen pro Sekunde? = 10 18 Additionen pro Sekunde 150.000 mal billiger? < 1 Cent? 63.000 mal mehr Transistoren? 23.121.000.000.000 Transistoren Realistisch? Miniaturisierung wirklich so einfach? Werden sehen Kapitel 2 Computerarchitektur Einführung 21

HW / Software Schnittstelle Maschineninstruktion ist Datum im Speicher Instruktion = Zahl = Binär Vektor Binär Vektor steuert Komponenten des Leitwerks Bereits bekannt? Quelle: Vorlesung Rechnerstrukturen, Mikroinstruktion der Tanenbaum CPU Computerarchitektur? ISA = Instruction Set Architecture Schnittstelle zwischen HW und SW Format + Auswahl der Instruktionen Beispiele für ISAs/Computerarchitekturen? Unterschiedliche Herangehensweisen? 22

CISC vs. RISC CISC Komplexe Instruktionen/HW durch Mikroprogramm interpretiert in (mehrere) Mikroinstruktionen (µops) übersetzt Mehrere Zyklen pro CISC Instruktion Einfacher Compiler RISC Einfache Instruktionen/HW Instruktion direkt durch Hardware ausgeführt Insofern ähnlich einer CISC Mikroinstruktion Ein Zyklus pro Instruktion Komplexer Compiler CISC vs. RISC Hochsprache (C++,C#, Java) Compiler Assembler Code Hochsprache (C++, C#, Java) Compiler Assembler Maschinenbefehl =Makroinstruktion Assembler Code Assembler Mikroinstruktion Maschinenbefehl =Mikroinstruktion 23

Abstraktion Abstraktion von technischen Details Erleichtert Umgang mit komplexen Dingen Informatik lebt davon Schichtenmodelle Keine unnötigen Details darunterliegender Schichten Klare Schnittstellen zwischen Schichten Computerarchitektur ist solche Schnittstelle Schnittstelle HW/SW Computerarchitektur Instruktionssatz + Format bilden Schnittstelle des Prozessors zu Software Sogenannte Computerarchitektur Sicht unterster Softwareschicht auf CPU Definiert Maschinenbefehle auf Ebene einzelner Bits Binärdateien i.d.r. an eine Architekturgebunden Beispiele Intel64, AMD64, IA32 Compiler/Assembler architekturspezifisch Crosscompiler? Bsp. gcc? 24

Weitere Schnittstellen Application Binary Interface ABI Sicht Applikation/Library auf OS Definiert System Calls auf Maschinenbefehlebene Application Programmer s Interface API Sicht Applikation auf eine Library Definiert Bibliotheksaufrufe auf Source Code Ebene Abstrakt vs. Konkret API vs. Bibliothek API = DOM Bibliothek = MS.NET Framework ABI vs. OS ABI = Win32 bzw. LinuxELF OS = WindowsXP bzw. RedHat Computerarchitektur vs. CPU CA = Intel 64 CPU = Intel Core 2 Duo 25

Kapitel 2 Computerarchitektur Eine Architektur im Detail Die Auswahl eines geeigneten Kandidaten Assembler Symbolische Maschineninstruktionen Menschen lesbar Spezifisch für Rechnerarchitektur Erfordert Detailwissen über deren Aufbau Ziel Wollen Assemblerprogrammierung g behandeln Müssen Computerarchitektur detailliert kennen (Registersatz, Instruktionsformate, ) 26

Welche Computerarchitektur? Vorschläge? CISC? IA32? Intel64? AMD 64? 128 verschiedene Register > 480 Maschinenbefehle Lust auf 1.900 Seiten Manual? Besser RISC Architektur MIPS32 Klar strukturiert und einfach! 32 Register 52 Maschinenbefehle MIPS MIPS = Microprocessor without Interlocked Pipeline Stages Aus RISC Bewegung entstanden 1981 entwickelt um John Hennessy an Uni Stanford 32 Bit MIPS32 seit 1991 auch 64 Bit MIPS64 Einfluss auf andere Architekturen SPARC, ALPHA, IA32 Einfaches und klares Design Beliebt Weit verbreitet Embedded / Consumer Electronic 100 Mio. CPUs binnen 3 Jahren verkauft 27

MIPS CPUs überall Die MIPS Familie Quelle: Wikipedia 28

MIPS und der Desktop Anfang 1990er MIPS CPUs immer beliebter SGI, Siemens Nixdorf, Olivetti, NEC, DEC Microsoft reagiert Windows NT für MIPS portiert Hoffnung auf Konkurrenz zu Intel Aber Intel zieht nach Einführung eines schnellen RISC Kerns Nach NT 4.0 kein Support mehr für MIPS durch MS Wer hat eine MIPS CPU? Praktische Übungen? Programmiermöglichkeiten? PCSpim Emulator für Windows und Linux Einführung in erster Übung nächste Woche 29

Das war s für heute Fazit Computer haben einen langen Weg hinter sich Mechanisch, Relais, Röhre, Transistor Mikroprozessoren komplex MIPS für Lehrzwecke geeignet Nächstes Mal Einstieg in MIPS Architektur Vielen Dank Folien auf http://syssoft.uni trier.de/~scholtes 30