Vorlesung Programmieren

Ähnliche Dokumente
Vorlesung Programmieren

Vorlesung Programmieren. Inhalt. Funktionsweise von Computern. Ein Blick zurück. 1. Ein Blick zurück. 2.

Programmieren. Kapitel 2: Der Traum vom automatischen Rechnen ein Streifzug durch die Computergeschichte. Wintersemester 2008/2009

Der von Neumann Computer

Mikroprozessortechnik Grundlagen 1

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Fachbereich Medienproduktion

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Vorlesung. Technologische Grundlagen der Informationsverarbeitung. Rechnerarchitektur. Dipl.-Ing. Gert Martin

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

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Mikroprozessor (CPU)

1. Übung - Einführung/Rechnerarchitektur

Im Original veränderbare Word-Dateien


Rechnerarchitektur und Betriebssysteme (CS201): Architektur, ALU, Flip-Flop

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Aufbau und Funktionsweise eines Computers

Mikroprozessor als universeller digitaler Baustein

3. Rechnerarchitektur

Teil 2: Rechnerorganisation

Allgemeine Informatik Thema 1 Informatik; Konzepte (II)

Technische Informatik I, SS 2001

Tutorium Rechnerorganisation

L3. Datenmanipulation

Verständnis zum Aufbau und der Arbeitsweise von Rechnersystemen

Teil VIII Von Neumann Rechner 1

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

HW- und SW-Komponenten eines PC. IBM 5150 aus dem Jahre 1981

ZENTRALEINHEITEN GRUPPE

RO-Tutorien 3 / 6 / 12

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Sprachen und Automaten. Tino Hempel

Philipp Grasl PROZESSOREN

Wichtige Rechnerarchitekturen

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner. von Prof. Dr. Rainer Kelch. Fachbuchverlag Leipzig im Carl Hanser Verlag

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Computergrundlagen Geschichte des Computers

Brückenkurs / Computer

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

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

Computergrundlagen Geschichte des Computers

Johann Wolfgang Goethe-Universität

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Computer-Architektur Ein Überblick

Lektion 3: Was ist und was kann ein Computer?

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Grundlegendes zum PC

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W,

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Rechner Architektur. Martin Gülck

Datenpfad einer einfachen MIPS CPU

Vorwort Teil 1: Grundlagen 1. 1 Einleitung Grundbegriffe Einheiten Geschichte Arten von Computern 8

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

Rechnerorganisation. H.-D. Wuttke `

Basisinformationstechnologie I

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

Angewandte Informatik

Vorlesung Rechnerarchitektur. Einführung

Computer - Aufbau u. Funktionsweise

Aufbau eines Taschenrechners

Grundlagen der Informatik

Mikrocomputertechnik. Einadressmaschine

Von-Neumann-Architektur

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer

Grundlagen der Rechnerarchitektur

Technische Informatik I

Datenpfad einer einfachen MIPS CPU

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

1. Geschichte des Computers

Einführung in die Informatik

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

Notizen-Neuerungen PC- HAUPTSPEICHER

Aufbau und Funktionsweise eines Computers

Die Mikroprogrammebene eines Rechners

Speichern von Zuständen

Mikrocontroller Grundlagen. Markus Koch April 2011

Einführung. Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Programmierbare Logik Arithmetic Logic Unit

Im Bereich der Entwicklung und Herstellung von Prozessoren spielen

Informatikgrundlagen I Grundlagen der Informatik I

Rechnerarchitektur Zusammengetragen vom Marc Landolt

Datenpfad einer einfachen MIPS CPU

Assembler am Beispiel der MIPS Architektur

8. SPS Komponenten: Beschreibung der Hardware-Komponenten einer SPS samt deren Eigenschaften

Transkript:

Vorlesung Programmieren Funktionsweise von Computern Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer

Inhalt 1. Ein Blick zurück 2. Stand der Technik 3. Funktionsweise von Computern 2

Ein Blick zurück

Überblick Mechanische Ära 1623: Rechenmaschine von Wilhelm Schickard 1642: Pascaline 1805: Jacquardwebstuhl 1822: Difference Engine 1834: Analytical Engine Elektromechanische Ära 1936: Zuse Z1 1941: Zuse Z3 Transistoren Ära 1960: PDP 1 1964: IBM 360 1970: PDP 11 Mikroprozessor Ära 1971: Intel 4004 1974: Intel 8080 Röhren Ära 1941: Atanasoff-Berry-Computer 1943: Colossus 1944: Mark 1 1946: ENIAC 1 1949: EDVAC 1952: IAS 4

Elektromechanische Ära 1936: Zuse Z1 Erfinder: Konrad Zuse Vorläufer des modernen Computers Besaß Kontrolleinheit, Speicher, Mikrobefehle und Fließkommaberechnung Binäre Zahlendarstellung Steuerung in Form von mit Löchern gestanzten, altem Filmmaterial als Lochkarten Mangel: Verhakung der mechanischen Schaltglieder (Bleche) Im zweiten Weltkrieg zerstört und in den 60ern nachgebaut 5

1936: Zuse Z1 6

1941: Zuse Z3 Nachfolger des Z1 (bzw. Zwischenversion Z2) Basiert (wie Z2) auf Relais-Technik Ein- und Ausgabegeräte Benutzerinteraktion während des Rechenvorgangs Unterstützung von Mikroprogrammen Erster funktionsfähiger, frei programmierbarer Digitalrechner Turing-vollständig!!! 7

1941: Zuse Z3 (2) 8

Lochkarten 9

Lochkarten 10

1944: Mark 1 (Röhren) 11

Elektronenröhren Quelle: http://de.wikipedia.org/wiki/elektronenröhre 12

1946: ENIAC (17.468 Röhren) 13

1952: Von Neumann-Architektur Entwickelt von John von Neumann am Institute for Advanced Studies in Princeton Programme werden im Speicher abgelegt (bis dahin nur Daten) Von Neumann-Architektur Bis auf wenige Ausnahmen bildet diese Architekturform seit 50 Jahren die Grundlagen von Computern 14

1952: Von Neumann-Architektur 15

Transistoren Ära 1960: PDP 1 PDP-1 (Programmed Data Processor) war der erste Minicomputer Firma DEC (Digital Equipment Corporation) Einsatz von Transistor- statt Röhrentechnik Speicheradressierung in 18 Bit-Worten Hauptspeicher: 4000 18 Bit-Worte = 9 kbyte Programmierbar in Assembler oder LISP statt Maschinensprache Monitor: rundes Oszilloskop Erstes Computerspiel (statt Kriegsaufgaben) Textcodierung bereits nach ASCII-Standard 16

Mikroprozessor Ära 1971: Intel 4004 Intel 4-Bit-Mikroprozessor Erster Ein-Chip-Mikroprozessor in Serienproduktion Technische Daten Strukturbreite: 10 µm (heute: ~32nm) Transistoren: 2300 (heute: ~hunderte Mio.) Taktfrequenz: 500 khz 740 khz (heute ~GHz) Harvard-Architektur (heute: von Neumann) 46 Befehle Bauform: 16 Pin Dual Inline Package (DIP) 17

Stand der Technik

Typische Merkmale moderner Computer Typische Merkmale Binäre Arithmetik (Wortbreite: 32-/64-Bit) Von Neumann-Architektur Weitreichende Standardisierung Insbesondere der Schnittstellen Hochintegrierte Schaltungen (z.b. Intel Core i7 Dual Core Prozessor) 383 Mio. Transistoren (Die-Größe: 81 mm²) Fertigungstechnik: 32nm 2,17 GHz Taktfrequenz Taktraten: 2,8 3,6 GHz 19

Von-Neumann-Architektur: Komponenten Auch: ALU (Arithmetic Logic Unit) Addition, etc Steuert Programmfluss Sagt Rechenwerk was zu tun ist. Verbindet Daten (Quelle und Ziel) mit ALU Steuert Übertragung (zur Ein- und Ausgabe) von Daten Interaktion mit Peripherie: Lochstreifenleser, Bildschirm, Keyboard, Speichert Daten und Programm (RAM) 20

Beispiel: Moderne Rechnerarchitektur Ein-/ Ausgabewerk CPU mit Rechenwerk und Steuerwerk Busse Speicherwerk 21

Peripherie Beispiele Festplatten Maus Tastatur Drucker Bildschirm... Bussystem Verbindet Prozessor, Speicher und Peripherie Zur Übertragung von Daten zwischen diesen Komponenten Grafikkarte Bildquelle: Clemens Pfeiffer, http://upload.wikimedia.org/wikipedia/commons/9/97/pci-express-graphics-board.jpg 22

Speicherwerk Auch: Random Access Memory (RAM) Enthält Programm und Daten Wahlfreier Zugriff auf Speicherzellen Wahlfrei: Muss nicht sequenziell oder in Blöcken gelesen/geschrieben werden Gegenbeispiel: EEPROM Zugriff auf einzelne Zellen über Adresse Bei großen Speichern: Wortweiser Zugriff Wortbreite abhängig von Architektur (Busbreite) Beispiele: 8-, 32-, 64-Bit Adresse Inhalt...... 1001 12 1002 123 1003 7 1004 7 1007 9 1008 11...... 23

Central Processing Unit (CPU) Agiert in Takten Gegeben durch Taktfrequenz Hat interne Speicher: Register Arbeitet in vier Schritten 1. Fetch Befehl und Daten aus Speicher holen Programmzähler CPU Steuerwerk Befehls-/Register-Speicher Rechenwerk Befehlsdekoder (Rechen-)Registerspeicher Rechenschaltungen steuert 2. Decode Befehl decodieren und Steuersignal an das Rechenwerk (ALU) anlegen 3. Execute Berechnung ausführen 4. Store Ergebnis in Speicher schreiben 24

Central Processing Unit (CPU) CPU führt ständig Befehle aus Befehl wird aus dem Speicher gelesen Instruction Pointer (IP) Register enthält Adresse des nächsten Befehls (für Fetch) Beginnt nach Neustart an festgelegter Adresse Wird nach jedem Befehl verändert (z.b. um 4 erhöht) Befehle Arithmetische/logische Operationen Steuerung der zeitlichen Reihenfolge anderer Befehle Adresse Inhalt... 1001 234 1002 Tu dies 1003 Tu das 1004 123 1007 1 1008... Wie unterscheidet die CPU Befehle von Daten? 25

Abarbeitung von Programmen... 1003 Lese von Speicher #1007 in Register A 1004 Lese von Speicher #1008 in Register B 1005 Addiere Register B auf A 1006 Schreibe Register A in Speicher #1008 1007 1 1008 2... 3 Takt #1 Takt #2 Takt #3 Takt #4... 1007 1 1008 2... A B... 1 2 A B... 3 2... 1007 1 1008 3... 26

Die CPU Maschinencode-Beispiel x86 00000000: EA 05 00 C0 07 B4 00 CD 16 2C 30 00 C0 04 30 88 00000010: C1 B4 0E BB 07 00 B0 0D CD 10 B0 20 CD 10 CD 10 00000020: B0 0D CD 10 88 C8 3C 30 72 DB 3C 3A 72 0C 3C 45 00000030: 73 D3 B0 31 CD 10 88 C8 2C 0A CD 10 EB C7 00 00 Sprungbefehl: Lade Programmzähler mit Adresse 07C0:0005 Datenregister mit Konstante laden: Schreibe 0 in das Register ah Ein-/Ausgabewerk benutzen: Signal 16 bedeutet bei ah=0: Lese einen Tastendruck ein. Ergebnis (ASCII-Wert) wird in das Register al geschrieben Addiere: Rechne Wert in al + Wert in al und schreibe Ergebnis nach al. Und so weiter Subtrahiere Konstante: Subtrahiere 30 vom Wert in al und schreibe Ergebnis nach al 27

Woher weiß man die Codes? Beispiel: Intel Manual http://www.intel.com/design/intarch/manuals/243191.htm 28

Woher weiß man die Codes? Beispiel: Intel Manual http://www.intel.com/design/intarch/manuals/243191.htm 29

Ausführung von Programmen Programm Programm Programm Programm Betriebssystem (Windows, Linux, Mac OS,...) Programm Treiber Treiber Treiber Security - 04 Cryptology #30

Die Central Processing Unit (CPU) CPU: Gewiefte Verschaltung von Transistoren Transistor: Schalter Abhängig vom Eingang lassen sie Strom passieren Positive Spannung: Auch 1, V dd oder High genannt Lässt nur dann Strom von oben nach unten fließen wenn an A eine positive Spannung anliegt Lässt nur dann Strom von oben nach unten fließen wenn an A keine positive Spannung anliegt 31

Die Central Processing Unit (CPU) Transistoren sind so verschaltet, dass damit gerechnet werden kann Verwendet das Binärsystem Mit nur zwei unterschiedlichen Zuständen können alle möglichen Berechnungen realisiert werden Wie funktioniert das konkret? Wichtige Schaltung: NAND-Gatter 32

NAND-Gatter Positive Versorgungsspannung Eingang A Eingang B Ausgang A B A NAND B Masse Wahrheitstabelle? 33

NAND-Gatter Eingabe A = Low B = Low Ausgabe Out = High V dd A B A NAND B 0 0 1 34

NAND-Gatter Eingabe A = High B = Low Ausgabe Out = High V dd A B A NAND B 0 0 1 1 0 1 35

NAND-Gatter Eingabe A = Low B = High Ausgabe Out = High V dd A B A NAND B 0 0 1 1 0 1 0 1 1 36

NAND-Gatter Eingabe A = High B = High Ausgabe Out = Low V ss A B A NAND B 0 0 1 1 0 1 0 1 1 1 1 0 37

Andere logische Verknüpfungen CPUs bestehen ausschließlich aus NANDs Realisieren damit alle Rechenarten und logische Verknüpfungen Man kann jede beliebige logische Verknüpfung auf NAND Gatter zurückführen Logikchips bestehen nur aus NAND Gattern Logik entsteht durch Verknüpfung dieser Gatter 38

NOT x mittels NAND realisieren Wahrheitstabelle NOT Wahrheitstabelle NAND x y x NAND y 0 0 1 0 1 1 1 0 1 1 1 0 NOT mittels NANDs x NOT x 0 1 1 0 x NOT x x NAND x 0 1 1 1 0 0 39

Logische Verknüpfungen mit NANDs Verknüpfung Umsetzung NOT x x NAND x x AND y (x NAND y) NAND (x NAND y) x NAND y x NAND y x OR y (x NAND x) NAND (y NAND y) x NOR y ((x NAND x) NAND (y NAND y)) NAND ((x NAND x) NAND (y NAND y)) x XOR y (x NAND (y NAND y)) NAND ((x NAND x) NAND y) ((x NAND y) NAND y)) NAND ((x NAND y) NAND x)) x XNOR y (x NAND y) NAND ((x NAND x) NAND (y NAND y)) x y verum (x NAND x) NAND x falsum ((x NAND x) NAND x) NAND ((x NAND x) NAND x) 40

Anwendung: Addition Dezimale Addition Zahlen {0,1,2,3,4,5,6,7,8,9} Beispiel: 9+1 = 0 Übertrag 1 x y Addition x + y Übertrag Binäre Addition Zahlen {0,1} 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 Übertrag 1 x y x + y Übertrag 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 41

Anwendung: Addition Umsetzung x+y: x XOR y (x NAND (y NAND y)) NAND ((x NAND x) NAND y) x y x + y Übertrag 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Übertrag: x AND y (x NAND y) NAND (x NAND y) x XOR y x y x AND y x Ʌ y Fertige Schaltung nennt sich Halbaddierer 42

Volladdierer Zusätzlicher Eingang für Übertrag vorhergehender Berechnung Lässt sich auch zwei Halbaddierern und einem ODER-Gatter konstruieren + 1 0 1 0 1 1 0 x y Übertrag Addition x + y Übertrag 43

3-bit Addierwerk Eingabe: Zwei 3-bittige Zahlen x 2 x 1 x 0 und y 2 y 1 y 0 Ausgabe: 4-bittige Zahl r 3 r 2 r 1 r 0 (inkl. Übertrag) Für die Berechnung jeder Ausgabe wird ein Takt benötigt x 2 y 2 x y Addition x+y x 1 y 1 x y Addition x+y Ü ein Ü neu x 0 y 0 0 x y Addition x+y Ü ein Ü neu Ü ein Ü neu r 0 r 1 r 2 r 3 44

Central Processing Unit (CPU) Auf ähnliche Art und Weise lassen sich alle Grundrechenarten realisieren Ebenfalls so realisiert: Befehlsdekoder, etc. Wichtig Repräsentation von Zahlen im Computer Rechnen mit (heute ausschließlich binären) Zahlen 45

Zusammenfassung Computer sind weniger magisch als vielleicht gedacht Programmierer: normal keine Kenntnis der Maschinensprache erforderlich Erledigen Entwicklerwerkzeuge (sog. Compiler) auf Basis höherer Programmiersprachen 46