Einführung Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck
Überblick Motivation Komponenten eines Rechners Historische Entwicklung Technologische Grundlagen Einführung 2
MOTIVATION Einführung 3
Rechnerarchitektur Rechnerarchitektur beschäftigt sich mit dem Aufbau von Rechnern, der Hardware/Software-Schnittstelle, der maschinennahen Programmierung und der Arbeitsweise von Rechnern, d.h. wie werden Maschinenprogramme abgearbeitet. Kenntnisse in Rechnerarchitektur sind z.b. notwendig zum Entwurf neuer Rechner, zur Entscheidung, was bei der Entwicklung neuer IT Systeme in Hardware und was in Software zu realisieren ist, zur effizienten Programmierung moderner Systeme und zur Auswahl eines zur Problemlösung geeigneten Systems. Einführung 4
Ebenen der Rechnerarchitektur System- Architektur Beschreibt externen Systembus, Organisation des Arbeitsspeichers, Peripheriebus,... Instruktionssatz- Architektur (ISA) Legt Instruktionen, Registersatz und Adressierungsarten fest. Stellt die Schnittstelle zwischen Hard- und Software dar. Mikroarchitektur (µa) Beschreibt die Struktur eines Rechners mit Registern, ALU, Steuerwerk, interne Bussysteme, Ein- /Ausgabeeinheit. Digitale Logik Beschreibt Implementierung der Komponenten mit Gattern. Einführung 5
Rechnerarchitektur - Rechnerorganisation In der Literatur wird auch oft vereinfachend nur zwischen Rechnerarchitektur und Rechnerorganisation unterschieden: Einführung 6
Beispiel Beispiel: C/C++ Programm: int a, b, summe;... summe = a + b;... Assemblerbefehle: add r0, r1, r2; Hardware: Einführung 7
Klassen von Rechnersystemen Heute gibt es im Wesentlichen nur noch drei Klassen von Rechnersystemen: 1. Desktop oder Arbeitsplatzrechner: 500 bis 2500 Euro je System, 50 bis 500 Euro für CPU Gutes Preis/Leistungsverhältnis, gute Grafikmöglichkeiten 2. Server: 2000 bis 100000 Euro je System, 200 bis 10000 Euro für CPU Hohe Zuverlässigkeit, hoher Durchsatz, gute Skalierbarkeit 3. Eingebettetes System: 10 bis 10000 Euro je System, 0.1 bis 100 Euro für CPU Geringe Stromaufnahme, ausreichende Leistung für Anwendung Früher gab es weitere Klassen: Mainframe, Minicomputer, Workstation Einführung 8
Welche Klasse hat den meisten Zuwachs? Mobiltelefone (und andere eingebettete Systeme)! Anzahl hergestellter Produkte (in Millionen): Einführung 9
KOMPONENTEN EINES RECHNERS Einführung 10
Innenansicht eines modernen PCs Einführung 11
Aktuelles Motherboard RAM-Steckplätze Stromanschluss PCI-Steckplatz Sockel für Prozessor Peripherie-Anschlüsse Einführung 12
Beispiel - Macbook Pro 15 Einführung 13
CPU Hauptkomponente eines jeden Rechners ist die CPU (Central Processing Unit). In jedem Befehlszyklus wird eine Instruktion aus dem Speicher geholt, im Steuerwerk dekodiert, und im Rechenwerk ausgeführt. Als Operanden benötigte Daten werden ebenfalls aus dem Speicher geladen. Einführung 14
CPU Beispiel (AMD Barcelona 4 Cores) Einführung 15
Intels neue "Sandy Bridge"-Generation Einführung 16
HISTORISCHE ENTWICKLUNG Einführung 17
Historische Entwicklung (1) 8500 v. Chr.: Zählsysteme In vielen Kulturen benutzt Häufig 5 oder 10 als Basis 3000 v. Chr.: Abakus Älteste mechanische Rechenhilfe Ursprung in Babylonien Noch heute in Asien benutzt 2 Zonen: heaven, earth Einfache Algorithmen nötig 1642: Pascaline Entwickelt von B. Pascal Auf Zahnrädern basierend Addition von zwei bis zu 8-stelligen Dezimalzahlen Automatischer Übertrag Subtraktion mittels Komplementzahlen Einführung 18
Historische Entwicklung (2) 1673: Stepped Reckoner Entwickelt von G.W. Leibniz Neuartige Staffelwalze für Multiplikation, Division 1804: Lochkarte Entwickelt von Jacquard zur Steuerung eines Webstuhls Unterschiedliche Webmuster durch unterschiedlich gelochte Holzbrettchen Erster Nur-Lese-Speicher (ROM = Read- Only Memory) Einführung 19
Historische Entwicklung (3) 1822: Difference Engine Entwickelt von C. Babbage Auf Dezimalsystem basierend Entworfen zur Tabellierung von Werten eines Polynoms: f(x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0 Idee: Berechnung nur mit Addition möglich (bei geeigneten Startwerten) Beispiel: f(x) = 2x 2 + 3x + 1 x f(x) diff1 diff2 1 6 2 15 9 3 28 13 4 4 45 17 4 5 66 21 4 Erster Rechner mit automatischer Mehrschrittoperation! Einführung 20
Historische Entwicklung (4) 1830: Analytical Engine Entwickelt von C. Babbage Leitwerk, programmierbar mit Lochkarten Rechenwerk ( Mill ) Speicher ( Store ) für 1000 Dezimalzahlen aus 50 Stellen Ein-/Ausgabe mit Lochkarten Verzweigungen möglich Lady Ada Augusta Lovelace als erste Programmiererin Erster universeller Rechenautomat Einführung 21
Historische Entwicklung (5) 1941: Z3 Entwickelt von K. Zuse 10 Hertz Taktfrequenz Basierend auf 2200 Relais davon 600 für Rechenwerk, 1400 für Speicher 22-stellige Binärzahlen Im Gleitkomma-Format! Dezimale Ein-/Ausgabe Tasten oder Lochstreifen, Lampen Speicher mit 64 Worten Steuereinheit mit Sequenzer Addition in 3 Takten, Multiplikation in 16 Takten Einführung 22
Historische Entwicklung (6) 1945: Von-Neumann Architektur (John von Neumann) Speicherwerk enthält Programme und Daten Rechenwerk mit ALU und Registern Zentrales Steuerwerk mit fetchdecode-execute Instruktionszyklus Ein-/Ausgabe-Werk mit Datenumwandlung Binäre Kodierung Zentrale Eigenschaft ist der gemeinsame Speicher für Daten und Programme, Auch als Von-Neumann Flaschenhals bezeichnet. Einführung 23
Historische Entwicklung (7) 1946: ENIAC 18000 Röhren, 1500 Relais 130 m 2, 30 Tonnen, 140 kw Dezimale Kodierung ca. 5000 Additionen je Sek. 20 Akkumulatoren, 1 Multiplizierer, 3 Funktionstabellen (0.2 ms für Addition, 2.8 ms für Multiplikation) Programmiert durch Kabel- Verbindungen E/A mittels Lochkarten Gebaut für ballistische Berechnungen Einführung 24
Historische Entwicklung (8) 1961: PDP-1 Gebaut von DEC Transistortechnik Magnetischer Kernspeicher für 4096 18-Bit Worte 200 khz Taktfrequenz CRT, 512 x 512 Pixel Grafik Erster Minicomputer Es folgten: PDP-8 mit Omnibus (erstes Bussystem, 1965), PDP-11 (erster 16-Bit Rechner, 1970) Einführung 25
Historische Entwicklung (9) 1965: IBM System/360 Erste Rechnerfamilie mit gleichem Instruktionssatz Mehrprogrammbetrieb Mikroprogammierung Verwendung von integrierten Schaltkreisen (ICs) 32-Bit Worte 16 Mbyte Adressraum Typischer Großrechner Auch als Mainframe bezeichnet Einführung 26
Generationen seit 1950 Generation Zeitspanne Charakterisierung 1 1950-1960 Elektronenröhren als Schaltelemente Speicher von wenigen hundert Maschinenwörtern 2 1960-1970 Transistorschaltkreise Ferritkern, Band, Trommel und Plattenspeicher 3 1965-1970 Teilweise integrierte Schaltkreise 4 1970-1980 Überwiegend hochintegrierte Schaltkreise Ein Prozessor auf einem Chip 8-Bit-Architektur 5 Ab 1980 Hochintegrierte Schaltkreise Mehrerer Prozessoren mit vielen Millionen Transistoren auf einem Chip Arbeitsspeicher mit Millionen von Speicherplätzen 16 Bit- und 32-Bit-Architekturen 6 Ab 1990 RISC-Architekturen 64-Bit-Architekturen Einführung 27
Historische Entwicklung (10) Weitere Meilensteine der Computer-Hardware: 1971 : Intel 4004 (erster Mikroprozessor) 1976: Cray-1 (erster Vektorrechner) 1978: Intel 8086 (x86-architektur) 1985: MIPS (erster RISC-Mikroprozessor) 1987: Connection Machine (erster massiv paralleler Rechner mit 65536 Prozessoren) 1992: DEC Alpha 21064 (erster RISC-Mikroprozessor mit 64-Bit CPU) 1997: Supercomputer ASCI Red liefert eine Rechenleistung von mehr als 1 TFlops 2000: erster Mikroprozessor mit 1 GHz Taktfrequenz Einführung 28
TECHNOLOGISCHE GRUNDLAGEN Einführung 29
Technologische Grundlagen (1) Maß für die technologische Entwicklung ist die technologische Strukturgröße (Feature Size). Kann vereinfachend als Kantenlänge eines Transistors angesehen werden. Strukturgröße konnte in den letzten Jahrzenten von 10 µm (Intel 4004, 1971) auf 32 nm (Intel Core I7, 2009) reduziert werden! Jährliche Wachstumsraten: Transistordichte ~ 35% Chipfläche: ~ 15% Anzahl Transistoren je Chip ~ 55% CPU Taktrate: ~ 30% Einführung 30
Technologische Grundlagen (2) Das Gesetz von Moore (1965) besagt, dass sich die Anzahl der Transistoren je Chip alle 18 Monate verdoppelt: Einführung 31
Technologische Grundlagen (3) [Shacham 2010] Einführung 32
Technologische Grundlagen (4) Speicherentwicklung (DRAM-Chips) Einführung 33
LITERATUR Einführung 34
Literatur [Shacham 2010] O. Shacham et al., Rethinking Digital Design: Why Design Must Change, IEEE Micro, Nov/Dec 2010 Einführung 35