Vorlesung Programmieren



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

Vorlesung Programmieren

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

Mikrocontroller Grundlagen. Markus Koch April 2011

Im Original veränderbare Word-Dateien

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

1. Übung - Einführung/Rechnerarchitektur

Eine Logikschaltung zur Addition zweier Zahlen

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Teil VIII Von Neumann Rechner 1

Brückenkurs / Computer

Die Mikroprogrammebene eines Rechners

Computer-Architektur Ein Überblick

1 Aufgaben zu Wie funktioniert ein Computer?

Mikroprozessor als universeller digitaler Baustein

Kap 4. 4 Die Mikroprogrammebene eines Rechners

2.2 Rechnerorganisation: Aufbau und Funktionsweise

N Bit binäre Zahlen (signed)

Einführung in. Logische Schaltungen

C:\WINNT\System32 ist der Pfad der zur Datei calc.exe führt. Diese Datei enthält das Rechner - Programm. Klicke jetzt auf Abbrechen.

Daten verarbeiten. Binärzahlen

Johann Wolfgang Goethe-Universität

Staatlich geprüfter EDV-Führerschein

Rechner Architektur. Martin Gülck

Aufgabensammlung. a) Berechnen Sie den Basis- und Kollektorstrom des Transistors T 4. b) Welche Transistoren leiten, welche sperren?

L3. Datenmanipulation

Angewandte Informatik

1. Übung aus Digitaltechnik Aufgabe. Die folgende CMOS-Anordnung weist einen Fehler auf:

Brückenkurs / Computer

Anleitung zur Nutzung des SharePort Utility

Facharbeit Informatik. Thema:

Anleitung zur Nutzung des SharePort Plus

1. Technik moderner Geräte

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

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Daten, Informationen, Kodierung. Binärkodierung

Ein kleines Computer-Lexikon

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

Basisinformationstechnologie I

Physik in der Praxis: Elektronik

Praktikum Grundlagen der Elektronik

Technische Informatik Basispraktikum Sommersemester 2001

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

Von Bits, Bytes und Raid

- Strukturentwurf elementarer Rechenwerke - Grund-Flipflop (RS-Flipflop) - Register, Schieberegister, Zähler

4D Server v12 64-bit Version BETA VERSION

Protokoll zum Praktikum des Moduls Technische Informatik an der JLU Gießen

9 Multiplexer und Code-Umsetzer

Markus Kühne Seite Digitaltechnik

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

A.3. A.3 Spezielle Schaltnetze Prof. Dr. Rainer Manthey Informatik II 1

Zahlendarstellungen und Rechnerarithmetik*

Der von Neumann Computer

Installation LehrerConsole (für Version 6.2)

Mikrocomputertechnik. Einadressmaschine

Versuch 3: Sequenzielle Logik

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

Grundlagen der Informationverarbeitung

Installationsvoraussetzungen

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Asynchrone Schaltungen

Zeichen bei Zahlen entschlüsseln

Einführung in PHP. (mit Aufgaben)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Elektrische Logigsystem mit Rückführung

1Computergrundlagen = 1*16 + 0*8 + 1*4 + 1*2 + 0*1

Wenn keine Verbindung zwischen den Computern besteht, dann bist du offline.

Windows Server 2008 (R2): Anwendungsplattform

UNIVERSITÄT LEIPZIG. Studentenmitteilung 3./4. Semester - WS 2006/ SS Aufgaben zum Elektronik Grundlagenpraktikum. 4.

Versuch P1-63 Schaltlogik Vorbereitung

Klausur zur Vorlesung

Von der Aussagenlogik zum Computer

Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe

Mikroprozessortechnik Grundlagen 1

Labor Grundlagen der Elektrotechnik

Grundlagen der Computertechnik

13 Programmierbare Speicher- und Logikbausteine

3 Rechnen und Schaltnetze

2. Negative Dualzahlen darstellen

Theoretische Informatik SS 04 Übung 1

Computeria Solothurn

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Zahlensysteme. von Christian Bartl

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Achtung: Bei der Inbetriebnahme von TTL-Bausteinen ist zu beachten, daß der Anschluß

Technische Informatik. Der VON NEUMANN Computer

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Quanton Manual (de) Datum: URL: )

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

Fernseher Bild Bildschirm Computergeräte. Festplatte CD DVD Eingabegerät. Computertasten Mauszeiger Cursor rechten Maustaste

Übung 1 RS-FFs mit NOR- oder NAND-Gattern

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

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

Inhatsverzeichnis. 1.Einleitung. Lehrgang: NMM Informatik: Der Computer. Lehrer: Spahr Marcel. Name: E L E M E N T E D E S C O M P U T E R S Datum:

5. Was ist ein CPU, wie wird die Geschwindigkeit angegeben? 6. Nennen Sie 4 Elemente die sich direkt auf einem Mainboard befinden.

Persona-SVS e-sync GUI/Client Installation

Fragen zur GridVis MSSQL-Server

Transkript:

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

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 Bildquelle: Ziko-C, http://de.wikipedia.org/w/index.php?title=datei:2005-11_lochkarten.jpg&filetimestamp=20080322185413 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

NOT x = x NAND x Eingabe A = Low Ausgabe Out = High V ss A A A NAND A 0 0 1 40

NOT x = x NAND x Eingabe A = Low Ausgabe Out = High V ss A A A NAND A 0 0 1 1 1 0 41

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) 42

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 43

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 44

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 45

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 46

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 47

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

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 49