Vom Schalter zum Computer



Ähnliche Dokumente
Vom Schalter zum Computer

Einführung in. Logische Schaltungen

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

N Bit binäre Zahlen (signed)

Eine Logikschaltung zur Addition zweier Zahlen

9 Multiplexer und Code-Umsetzer

3 Arithmetische Schaltungen

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

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Zeichen bei Zahlen entschlüsseln

Praktikum Grundlagen der Elektronik

Einführung in die Java- Programmierung

Versuch 3. Frequenzgang eines Verstärkers

Elektrische Logigsystem mit Rückführung

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Technische Informatik Basispraktikum Sommersemester 2001

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

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

Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe

1 Informationelle Systeme begriffliche Abgrenzung

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Gruppenrichtlinien und Softwareverteilung

Die Mikroprogrammebene eines Rechners

Erstellen der Barcode-Etiketten:

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

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

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

Versuch Nr. 8c Digitale Elektronik I

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

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Konzepte der Informatik

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

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Mikrocomputertechnik. Adressierungsarten

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Bedienung des Web-Portales der Sportbergbetriebe

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Einführung in die Systemprogrammierung

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

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

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Grundlagen der Informatik

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

Berechnungen in Access Teil I

Daten, Informationen, Kodierung. Binärkodierung

Was meinen die Leute eigentlich mit: Grexit?

Theoretische Informatik SS 04 Übung 1

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

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?

Einteilung der Kippschaltungen (Schaltwerke) (=Flipflops)

Wie halte ich Ordnung auf meiner Festplatte?

Microsoft Access 2010 Navigationsformular (Musterlösung)

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Versuch P1-63 Schaltlogik Vorbereitung

5 Verarbeitungsschaltungen

Viele Bilder auf der FA-Homepage

Mediator 9 - Lernprogramm

Arbeitspunkt einer Diode

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Beispiel(unten ist der Spielfeldrand):

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Professionelle Seminare im Bereich MS-Office

Daten verarbeiten. Binärzahlen

So funktioniert das online-bestellsystem GIMA-direkt

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Windows Server 2012 RC2 konfigurieren

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de

1. Speicherbausteine JK-RS-Master-Slave-Flip-Flop

Tipps und Tricks zu den Updates

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Grundtypen Flip-Flops

Einfache Computersteuerung für Modellbahnen

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Leichte-Sprache-Bilder

Anleitung zur Nutzung des SharePort Utility

Etikettendruck mit Works 7.0

StudyDeal Accounts auf

SPS-Bearbeitung mit EPLAN 5.70

2. Negative Dualzahlen darstellen

Simulation LIF5000. Abbildung 1

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Meine Entscheidung zur Wiederaufnahme der Arbeit

Liebe Interessierte an technischen Lösungen für die Sicherheit zu Hause,

GEVITAS Farben-Reaktionstest

AutoTexte und AutoKorrektur unter Outlook verwenden

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

Umwandelung einer Physikalischen Größe in eine Elektrische

Modellbildungssysteme: Pädagogische und didaktische Ziele

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

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

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Webalizer HOWTO. Stand:

Transkript:

1 Vom Schalter zum Computer

38 Woraus besteht eigentlich ein Computerchip?

All computers are just carefully organized sand Abbildung: Siliziumquelle SiO 2 The Desert by John O'Nolan CC-BY-2.0, http://flic.kr/p/aej8rk 40

Vom Sandkorn zum Chip Durchmesser 3040 cm Länge 2 m Gewicht > 100 kg Reinheitsgrad > 99.999 999 9 % Abbildung: Hochreiner Silizium-Einkristall. By Oleg Alexandrov CC-BY-SA-3.0 via Wikimedia Commons. 41

Vom Sandkorn zum Chip 42 Abbildung: Ein Wafer c Intel Abbildung: Chip im Package

Vom Sandkorn zum Chip Abbildung: Industrielle Chipfertigung 43

Chiptechnologie ein Gröÿenvergleich Stellen Sie sich vor: Ein 14 nm Transistor wäre so groÿ wie ein Fingernagel... 47

Chiptechnologie ein Gröÿenvergleich Stellen Sie sich vor: Ein 14 nm Transistor wäre so groÿ wie ein Fingernagel...... dann wäre ein menschliches Haar so dick dass es auf dem Podium keinen Platz mehr hätte. 47

Chiptechnologie ein Gröÿenvergleich Anders gesagt: Ein rotes Blutkörperchen ist etwa 500x gröÿer als ein 14 nm Transistor! 48

Chiptechnologie ein Generationenvergleich Intel 4004 Einführung 1971 4-Bit (vier!) Architektur 1 Kern 740 khz 2300 Transistoren 16 Pins 144 mm 2 Die Fläche 10 µm Prozess Intel Core i7 2600 (Sandy Bridge) Einführung 2011 64-Bit Architektur 4 Kerne 3.4 GHz 1.16 Milliarden Transistoren 1155 Pins 216 mm 2 Die Fläche 32 nm Prozess 49

Chiptechnologie ein Generationenvergleich 1971: Intel 4004 2011: Intel i7 Abbildung: Die Designs in ihrer Technologie gefertigt c Intel 50

Chiptechnologie ein Generationenvergleich 2011: Intel 4004 144 mm 2 0.000 3 mm 2 2011: Intel i7 Abbildung: Das 40 Jahre altes Design in aktueller Technologie gefertigt c Intel 50

Chiptechnologie ein Generationenvergleich 2011: Intel 4004 144 mm 2 0.000 3 mm 2 2011: Intel i7 Abbildung: Das 40 Jahre altes Design in aktueller Technologie gefertigt c Intel 50

Chiptechnologie Miniaturisierung Abbildung: Mailüfterl (1958); 8000 Transistoren, 20 km Schaltdraht By Florian Staudacher CC-BY-3.0 via Wikimedia Commons. 51

Chiptechnologie Miniaturisierung Abbildung: Traditionalles FET-Transistordesign c Intel 51

Physikalische Realisierung von Schaltern Es gibt verschiedene Methoden zur physikalischen Realisierung: Relais Transistor Mechanischer Schalter, gesteuert durch Elektromagnet Steuerung mittels elektrischem Feld Keine beweglichen Teile Steuereingang: G Eigentlich analog, digitale Abstraktion meist ausreichend G S D n+ n+ p B 7

Physikalische Realisierung von Schaltern Es gibt verschiedene Methoden zur physikalischen Realisierung: Relais Transistor Mechanischer Schalter, gesteuert durch Elektromagnet Steuerung mittels elektrischem Feld Keine beweglichen Teile Steuereingang: G Eigentlich analog, digitale Abstraktion meist ausreichend G S D n+ n+ p B 7

Warum Digital? Der Transistor ist ein analoges Bauelement, warum die digitale Abstraktion? Vereinfacht Entwurf und Test. Macht das Speichern viel ezienter. Bietet einen intuitiven und dennoch mächtigen mathematischen Werkzeugkasten! Geringere Störempndlichkeit! 8

Vom Schalter zum Computer Kann man aus Schaltern einen Computer bauen? Wir benötigen pegelgesteuerte Schalter (Logikpegel am Steuereingang G). Schlieÿer G Öner G Leitet, wenn G = 1 Unterbricht, wenn G = 0 Leitet, wenn G = 0 Unterbricht, wenn G = 1 2

Analog vs. digital Was bedeutet logisch 1 bzw. logisch 0? Abstraktion des gemessenen Signals log. 1 log. 1 Spannung Spannung log. 0 t log. 0 t 3

Logikgatter Logisches Gatter: Ausgangswert als Funktion der Eingangswerte Ausgang Logisch Eins: (über Schalter) mit positiver Versorgungsspannung verbunden. Ausgang Logisch Null: (über Schalter) mit negativer Versorgungsspannung/Masse verbunden. Ausgang ohne Verbindung zu deniertem Pegel: unbestimmt (vermeiden!) '1' '0' 'X' 4

Inversion Funktion Invertierung des Eingangs Eingang (a) = 0 Ausgang (y) = 1 Eingang (a) = 1 Ausgang (y) = 0 Prinzipschaltung a a y Wahrheitstabelle a y 0 1 1 0 Symbol a y 5

Inversion Funktion Invertierung des Eingangs Eingang (a) = 0 Ausgang (y) = 1 Eingang (a) = 1 Ausgang (y) = 0 Prinzipschaltung a = 0 a = 0 y = 1 Wahrheitstabelle a y 0 1 1 0 Symbol a y 5

Inversion Funktion Invertierung des Eingangs Eingang (a) = 0 Ausgang (y) = 1 Eingang (a) = 1 Ausgang (y) = 0 Prinzipschaltung a = 1 a = 1 y = 0 Wahrheitstabelle a y 0 1 1 0 Symbol a y 5

Nicht-Oder (NOR) Verknüpfung Funktion Invertierte Oder Verknüpfung der Eingänge (a, b) Prinzipschaltung Beide Eingänge (a, b) = 0 Ausgang (y) = 1, b Sonst Ausgang (y) = 0 a y Wahrheitstabelle a b y 0 0 1 0 1 0 1 0 0 1 1 0 Symbol a b a b y 6

Nicht-Oder (NOR) Verknüpfung Funktion Invertierte Oder Verknüpfung der Eingänge (a, b) Beide Eingänge (a, b) = 0 Ausgang (y) = 1, Sonst Ausgang (y) = 0 Wahrheitstabelle a b y 0 0 1 0 1 0 1 0 0 1 1 0 Prinzipschaltung Symbol b = 0 a = 0 y = 1 a = 0 b = 0 a y b 6

Nicht-Oder (NOR) Verknüpfung Funktion Invertierte Oder Verknüpfung der Eingänge (a, b) Beide Eingänge (a, b) = 0 Ausgang (y) = 1, Sonst Ausgang (y) = 0 Wahrheitstabelle a b y 0 0 1 0 1 0 1 0 0 1 1 0 Prinzipschaltung Symbol b = 1 a = 0 a = 0 a b y = 0 b = 1 y 6

Nicht-Oder (NOR) Verknüpfung Funktion Invertierte Oder Verknüpfung der Eingänge (a, b) Beide Eingänge (a, b) = 0 Ausgang (y) = 1, Sonst Ausgang (y) = 0 Wahrheitstabelle a b y 0 0 1 0 1 0 1 0 0 1 1 0 Prinzipschaltung Symbol b = 0 a = 1 a = 1 a b y = 0 b = 0 y 6

Nicht-Oder (NOR) Verknüpfung Funktion Invertierte Oder Verknüpfung der Eingänge (a, b) Beide Eingänge (a, b) = 0 Ausgang (y) = 1, Sonst Ausgang (y) = 0 Wahrheitstabelle a b y 0 0 1 0 1 0 1 0 0 1 1 0 Prinzipschaltung Symbol b = 1 a = 1 a = 1 a b y = 0 b = 1 y 6

Komplexere Funktionen NOR Verknüpfung a b y 0 0 1 0 1 0 1 0 0 1 1 0 NAND Verknüpfung a b y 0 0 1 0 1 1 1 0 1 1 1 0 XNOR Verknüpfung a b y 0 0 1 0 1 0 1 0 0 1 1 1 Durch Inversion des Ausganges erhält man weitere Grundgatter NOR OR NAND AND XNOR XOR 9

Umschalter (Multiplexer) Funktion Auswahl mittels Pegel an Anschluss s: s = 0 Eingang a wird ausgegeben s = 1 Eingang b wird ausgegeben Wahrheitstabelle s y 0 a 1 b Prinzipschaltung Symbol s a s b a s b y y 10

Umschalter (Multiplexer) Funktion Auswahl mittels Pegel an Anschluss s: s = 0 Eingang a wird ausgegeben s = 1 Eingang b wird ausgegeben Wahrheitstabelle s y 0 a 1 b Prinzipschaltung Symbol s = 0 a s = 0 y b a s = 0 y b 10

Umschalter (Multiplexer) Funktion Auswahl mittels Pegel an Anschluss s: s = 0 Eingang a wird ausgegeben s = 1 Eingang b wird ausgegeben Wahrheitstabelle s y 0 a 1 b Prinzipschaltung Symbol s = 1 a s = 1 y b a s = 1 y b 10

Wahlschalter (Multiplexer) Funktion Für mehr als 2 Eingänge: Kaskadieren von Umschaltern Wir erhalten mehrere Steuersignale s 1, s 2, Wahrheitstabelle s 2 s 1 y 0 0 a 0 1 b 1 0 c 1 1 d Prinzipschaltung a b c d Symbol a bc d s 1 s 1 s 1 s 1 s 2 s 2 (s 2, = s 1) 0, s 1 = 0) y y 11

Wahlschalter (Multiplexer) Funktion Für mehr als 2 Eingänge: Kaskadieren von Umschaltern Wir erhalten mehrere Steuersignale s 1, s 2, Wahrheitstabelle s 2 s 1 y 0 0 a 0 1 b 1 0 c 1 1 d Prinzipschaltung s 1 = 0 a s 2 = 0 s 1 = 0 b s 1 = 0 y c s 2 = 0 s 1 = 0 d Symbol a (s 2 = 0, s 1 = 0) bc y d 11

Wahlschalter (Multiplexer) Funktion Für mehr als 2 Eingänge: Kaskadieren von Umschaltern Wir erhalten mehrere Steuersignale s 1, s 2, Wahrheitstabelle s 2 s 1 y 0 0 a 0 1 b 1 0 c 1 1 d Prinzipschaltung s 1 = 1 a s 2 = 0 s 1 = 1 b s 1 = 1 y c s 2 = 0 s 1 = 1 d Symbol a (s 2 = 0, s 1 = 1) bc y d 11

Wahlschalter (Multiplexer) Funktion Für mehr als 2 Eingänge: Kaskadieren von Umschaltern Wir erhalten mehrere Steuersignale s 1, s 2, Wahrheitstabelle s 2 s 1 y 0 0 a 0 1 b 1 0 c 1 1 d Prinzipschaltung s 1 = 0 a s 2 = 1 s 1 = 0 b s 1 = 0 y c s 2 = 1 s 1 = 0 d Symbol a (s 2 = 1, s 1 = 0) bc y d 11

Wahlschalter (Multiplexer) Funktion Für mehr als 2 Eingänge: Kaskadieren von Umschaltern Wir erhalten mehrere Steuersignale s 1, s 2, Wahrheitstabelle s 2 s 1 y 0 0 a 0 1 b 1 0 c 1 1 d Prinzipschaltung s 1 = 1 a s 2 = 1 s 1 = 1 b s 1 = 1 y c s 2 = 1 s 1 = 1 d Symbol a (s 2 = 1, s 1 = 1) bc y d 11

Zahlendarstellung Wie kann ein Computer überhaupt Zahlen darstellen? Mit Schaltern und Pegeln kann man doch nur Nullen und Einsen unterscheiden! Lösung: Zusammensetzen von Zahlen aus mehreren Signalen (Bits), unter Berücksichtigung des Stellenwertes Mit jeder Stelle (Position nach links) kommt eine Zweierpotenz hinzu. Summieren über die Zweierpotenzen ergibt Zahl im Dezimalsystem: 1001 2 ˆ= 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 1 8 + 0 4 + 0 2 + 1 1 = 8 + 1 = 9 10 Gleiches Prinzip wie im vertrauten dekadischen System. Diese Art der Darstellung einer Zahl wird Binärdarstellung genannt! 12

Rechnen mit Logikgattern Und wie rechne ich jetzt mit Binärzahlen und Gattern? Betrachten wir als Ausgangspunkt die Addition von zwei Dezimalzahlen a und b: a 1234 b 5678 Summe 6912 Übertrag 0011 13

Addition von Binärzahlen Das gleiche Konzept kann für Binärzahlen verwendet werden. Addiere jede Stelle unter Berücksichtigung des Übertrages: a 100011 b 000111 Summe 101010 Übertrag 000111 14

Addition von Binärzahlen Allgemeine Rechenregel für die Addition zweier Binärzahlen? Welche Möglichkeiten gibt es für eine Stelle? a 0 0 1 1 b 0 1 0 1 Summe (s) 0 1 1 0 Übertrag (u) 0 0 0 1 15

Addition von Binärzahlen Allgemeine Rechenregel für die Addition zweier Binärzahlen? Welche Möglichkeiten gibt es für eine Stelle? a 0 0 1 1 b 0 1 0 1 Summe (s) 0 1 1 0 Übertrag (u) 0 0 0 1 Rechenregeln Summe: XOR-Verknüpfung der Operanden 15

Addition von Binärzahlen Allgemeine Rechenregel für die Addition zweier Binärzahlen? Welche Möglichkeiten gibt es für eine Stelle? a 0 0 1 1 b 0 1 0 1 Summe (s) 0 1 1 0 Übertrag (u) 0 0 0 1 Rechenregeln Summe: XOR-Verknüpfung der Operanden Übertrag: AND-Verknüpfung der Operanden 15

Addition von Binärzahlen Rechenregeln Summe: XOR-Verknüpfung der Operanden Übertrag: AND-Verknüpfung der Operanden Halbaddierer Mittels dieser Regeln können wir einen Addierer für zwei 1 Bit Zahlen bauen 15

Halbaddierer Schaltung a b s u 16

Halbaddierer Schaltung a b s u Wieviele Schalter (Transistoren) werden benötigt? 16

Halbaddierer Schaltung a b s u Wieviele Schalter (Transistoren) werden benötigt? AND NAND + INV 4 + 2 = 6 Transistoren XOR 6 Transistoren Halbaddierer 6 + 6 = 12 Transistoren 16

Halbaddierer Schaltung a b s u Was ist mit den anderen Stellen? Wie können wir den Übertrag von der vorherigen Stelle verwenden? 16

Addieren von Mehrbit-Zahlen Funktionsweise Erste Stelle hat keinen Übertrag Halbaddierer Weitere Stellen: Übertrag als zusätzlicher Summand Volladdierer Schaltung a b u ein s Wahrheitstabelle a b u ein s u aus 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 u aus 17

Acht-Bit Addierer Wie addiert man längere Zahlen? Halb- und Volladdierer jeweils nur für ein Bit! Kombination aus Halb- und Volladdierern Übertrag: u aus geht an linken Nachbarn als u ein 18

Acht-Bit Addierer Wie addiert man längere Zahlen? Halb- und Volladdierer jeweils nur für ein Bit! Kombination aus Halb- und Volladdierern Übertrag: u aus geht an linken Nachbarn als u ein Schaltung b 7 a 7 b 6 a 6 b 5 a 5 b 4 a 4 b 3 a 3 b 2 a 2 b 1 a 1 b 0 a 0 u 7 VA VA VA VA VA VA VA HA s 7 s 6 s 5 s 4 s 3 s 2 s 1 s 0 18

Speicherzelle Funktionsweise Schreiben: s = 0 y = a Eingang wird an Ausgang durchgereicht Halten: s = 1 y = y Ausgang hält den letzten Wert Schaltung a s y Wahrheitstabelle a s y alt y neu 0 0 0 1 0 1 1 0 0 1 1 1 19

Welche Bausteine haben wir? Entwickelte Bausteine Logische Gatter (AND, OR, XOR,... ). Arithmetische Bausteine (+,,... ). Umschalter, Wahlschalter. Speicherzellen. Das alles konnten wir nur aus Schaltern (Transistoren) realisieren. Reicht das aus, um einen Computer zu bauen? 20

ALU Das Rechenwerk eines Computers Wie können wir ein programmierbares Rechenwerk bauen? Eingänge (a, b) für die Operanden Ausgang (y) für das Ergebnis Das hatte bereits unser Addierer Wir schalten parallel noch andere Funktionen mit den selben Eingängen Über einen Wahlschalter selektieren wir jene, die uns gerade interessiert Die Steuersignale op des Wahlschalters denieren die Funktion 21

ALU Das Rechenwerk eines Computers Wie können wir ein programmierbares Rechenwerk bauen? Eingänge (a, b) für die Operanden Ausgang (y) für das Ergebnis Das hatte bereits unser Addierer Wir schalten parallel noch andere Funktionen mit den selben Eingängen Über einen Wahlschalter selektieren wir jene, die uns gerade interessiert Die Steuersignale op des Wahlschalters denieren die Funktion Jetzt sind sowohl Daten als auch Operation frei wählbar! 21

Schaltung Acht-Bit ALU LDL ADD SUB SBB CMP AND MOV 0 op y Funktionsweise Alle Befehle werden parallel ausgeführt! op selektiert das Ergebnis des gewünschten Befehls a b 22

Das Programm Wie bringe ich der ALU bei, was sie machen soll? Für eine Berechnung benötigt die ALU also folgende Informationen: Operanden a, b gewünschte Operation op Zur Ansteuerung der Schalter werden diese als Bitmuster benötigt Maschinencode 0001 0000 0000 0101 0101 0010 0110 0110 0101 1010 0110 0001 0111 0001 0010... 23

Das Programm Wie bringe ich der ALU bei, was sie machen soll? Für eine Berechnung benötigt die ALU also folgende Informationen: Operanden a, b gewünschte Operation op Zur Ansteuerung der Schalter werden diese als Bitmuster benötigt Maschinencode 0001 0000 0000 0101 0101 0010 0110 0110 0101 1010 0110 0001 0111 0001 0010... 23

Das Programm Mühsamer und fehleranfälliger Prozess! Gibt es Alternativen? 24

Das Programm Mühsamer und fehleranfälliger Prozess! Gibt es Alternativen? Natürlich! 0001 0000 0000 0101 0101 LDL 85 0010 0110 0110 0101 1010 AND 102, 90 0110 0001 0111 0001 0010 ADD 23, 18... Durch Verwendung von Namen werden die Befehle verständlicher Entwurf in Assemblercode, danach automatische Übersetzung 24

Von der ALU zum Prozessor Die Macht der Speicherung Meine ALU wird ezienter, wenn ich Daten und Instruktion nicht jedesmal neu selbst eingeben muss: Ich kann ganze Folgen von Instruktionen in Listen speichern (Programm) Ich kann die dazugehörigen Operanden ebenfalls in Listen speichern (Operandenspeicher) Ich kann Zwischenergebnisse in den Operandenspeicher eintragen und in nachfolgenden Schritten weiter bearbeiten Zur Identikation des gewünschten Eintrags in der Liste verwende ich Adressen. Diese sind nichts anderes als die Steuersignale eines Wahlschaltes. Auf diese Weise kann ich unglaublich komplexe Algorithmen realisieren und automatisch ablaufen lassen. 25

Registerle (Operandenspeicher) Schaltung sel a sel b Register 0 Register 1 Register 2 Register 3 Register 4 Register 5 sel d d Funktionsweise Mehrere, parallele Speicherstellen (Register) um Operanden und Ergebnisse zu speichern Auswahlschalter (sel a, sel b, sel d ) an den Ein- (d) und Ausgängen (a, b) um gewünschtes Register auszuwählen (Adresse) Register 6 Register 7 a b 26

Programmspeicher Darstellung in unserem Demonstrator 0 Instruktion 1 1 Instruktion 2 2 Instruktion 3 3 Instruktion 4... Funktionsweise Frei adressierbarer Speicher Enthält das Programm das ausgeführt werden soll Jeder Eintrag (Instruktion) umfasst die gewünschte Operation und die (Register)Adressen der gewünschten Operanden Abarbeitung normalerweise nacheinander (linear) Sprunginstruktionen erlauben Abweichen von linearer Abfolge 27

Control Unit (Dekodiereinheit) Funktion der Control Unit 1. Programmzähler (Instructionpointer, IP) zeigt auf aktuelle Instruktion 2. Berechnet die Adresse der nächsten Instruktion (IP, Jump Oset) 3. Liest Instruktionen vom Programmspeicher (Instruction) 4. Dekodiert die Instruktion und steuert andere Komponenten an Operandenwahl (Reg. A, Reg. B, Literal) Ergebnisregister (Reg. D) Auswahl der ausgeführten Operation (OpCode ) Darstellung in unserem Demonstrator Reg. A: Reg. B: Reg. D: Literal: OpCode: IP: Instruction: Phase: Jump Oset: 28

Kommunikation mit der Auÿenwelt Funktionsweise Komponenten, die Daten einlesen oder ausgeben können Mensch-Maschinen Kommunikation Maschinen-Maschinen Kommunikation Beispiele: Leuchtdioden Schalter Tastatur Netzwerkschnittstelle USB-Schnittstelle Darstellung (Beispiel LEDs) a b 29

Das Programm für den gesamten Prozessor Welche Informationen werden benötigt? Welche Operation soll ausgeführt werden? Welche Operanden werden verwendet? Wo sind die Operanden zu nden? Wohin soll das Ergebnis gespeichert werden? Welches ist die nächste Instruktion? Jede Kombination der vorhandenen Operationen mit (dazu passenden) Operanden ist möglich, dadurch können beliebige Abfolgen von Instruktionen (Programme) geschrieben werden. 30

Ein simples Programm LDL r0, #0 ; Lade den Wert 0 in Register 0 LDL r7, #255 ; Lade den Wert 255 in Register 7 loop1: ADD r0, r0, #1 ; Addiere 1 zu Register 0, Ergebnis: Register 0 ST r7, r0 ; Schreibe den Wert aus Register 0 an die Adresse ; in Register 7 Ausgabe auf LEDs LDL r4, #2 ; Lade den Wert 2 in Register 4 loop2: SUB r4, r4, #1 ; Subtrahiere 1 von Register 4, Ergebnis: Register 4 CMP r4, #0 ; Ist Register 4 gleich 0? BNZ loop2 ; Falls nein, führe als nächstes den Befehl bei loop2 aus JMP loop1 ; Führe als nächstes den Befehl bei loop1 aus 31

Ein simples Programm maschinenlesbar LDL r0, #0 0000 0000 0000 0001 LDL r7, #255 1111 1111 1110 0001 ADD r0, r0, #1 1000 1000 0000 0110 ST r7, r0 0000 0111 0001 0011 LDL r4, #2 0000 0010 1000 0001 SUB r4, r4, #1 1000 1100 1000 1000 CMP r4, #0 1000 0100 0001 0001 BNZ -2 1111 1110 0001 1100 JMP -6 1111 1010 0001 1111 32

Ein simples Programm Live-Demo 33

Reale Prozessoren Demo Intel Core i7 2600 ARM Cortex A17 Taktfrequenz 62 MHz 3.4 GHz 2 GHz # Register 8 16 31 Datenbreite 8 bit 64 bit 32 bit Arbeitsspeicher 0 B max. 32 GB max. 1 TB # Cores 1 4 14 # Threads/Core 1 2 1 Pipeline Stufen 4 > 14 > 11 Cache Speicher 0 B 8 MB 8 MB Tabelle: Prozessorvergleich 34

Abstraktion Instruktion (Assemblercode) Operation (Maschinencode) Bitfolgen Komponenten (ALU, Registerle,... ) Gatter (Schaltwerke, Boolesche Algebra) Logikpegel (Digitalelektronik) Spannung (Analogelektronik) Schalter (Digitalelektronik) Transistor (Analogelektronik) Halbleiterphysik 35 Abbildung: Bisher verwendete Abstraktionen

Weitere Abstraktion Assemblercode ist immer noch schwer zu verstehen und zu schreiben. ist maschinenabgängig. benötigt manuelle Auswahl von Registern, Speicherstellen,... benötigt manuelle Optimierung (keine Übersetzerunterstützung). benötigt manuelle Handhabung von Spezial-Features: parallele Pipelines, Prediction, etc. Programmieren in Assemblercode erreicht deshalb eine geringe Produktivität! 36

Weitere Abstraktion Abhilfe: Hochsprachen Versteckt Maschinenspezika hinter einem Übersetzer Dadurch ist maschinenunabhängiger Code möglich Code kann bei der Übersetzung automatisch optimiert werden Beispiel in C uint8_t i = 0; while (1) { LEDS = i++; wait(1000); } 37

Übersetzer Aufgaben des Übersetzers Optimierung des Codes. Auswahl der passenden Maschinenbefehle. Auswahl der zu verwendenden Register. Auswahl des zu verwendenden Speichers. Zuordnung von Variablen zu Register/Speicherstellen. Initialisierung der benötigten Hardware.... 38

Maschinenunabhängigkeit Übersetzer ermöglichen Entwicklung weitgehend maschinenunabhängiger Software. Einmal (in Hochsprache) schreiben öfters (auf jeweiligen Maschinencode) übersetzen. Muss man dennoch Ahnung von Prozessorarchitektur haben? 39

Maschinenunabhängigkeit Übersetzer ermöglichen Entwicklung weitgehend maschinenunabhängiger Software. Einmal (in Hochsprache) schreiben öfters (auf jeweiligen Maschinencode) übersetzen. Muss man dennoch Ahnung von Prozessorarchitektur haben? Ja! Wenn es nicht nur um Schönwetterprogrammierung sondern um Performanz Echtzeitverhalten Energieezienz Robustheit/Fehlertoleranz geht, muss der Programmierer wissen, was sein Programm in seiner Hardware bewirkt. 39

Moderne Konzepte Multicore Pipelining Out of order execution Superscalar Hyper-threading OpenCL GPU programming Massively parallel Auto-vectorization Garbage collection Virtual machine Cloud computing Cluster Super-computer Low power Speculative execution Many core... 40

Zusammenfassung Ein Prozessor ist nicht mehr als eine Ansammlung von clever gesteuerten Schaltern Repräsentation von Zahlen durch Logikpegel. Wählbare Operation auf frei wählbare Operanden. Speicherung ermöglicht Programmierung von Abläufen. Konzept der Adressierung ermöglicht Datenübergabe und Sprünge. Abstraktion befreit Programmierer von Details bezüglich Halbleiterphysik Elektrotechnik Prozessorspezika 41

Zusammenfassung Ein Prozessor ist nicht mehr als eine Ansammlung von clever gesteuerten Schaltern Repräsentation von Zahlen durch Logikpegel. Wählbare Operation auf frei wählbare Operanden. Speicherung ermöglicht Programmierung von Abläufen. Konzept der Adressierung ermöglicht Datenübergabe und Sprünge. Abstraktion befreit Programmierer von Details bezüglich Halbleiterphysik Elektrotechnik Prozessorspezika Enorme Produktivität 41

Zusammenfassung Ein Prozessor ist nicht mehr als eine Ansammlung von clever gesteuerten Schaltern Repräsentation von Zahlen durch Logikpegel. Wählbare Operation auf frei wählbare Operanden. Speicherung ermöglicht Programmierung von Abläufen. Konzept der Adressierung ermöglicht Datenübergabe und Sprünge. Abstraktion befreit Programmierer von Details bezüglich Halbleiterphysik Elektrotechnik Prozessorspezika Enorme Produktivität Dennoch: Erstellung von ezienten und performanten Programmen erfordert Wissen über die verwendete Prozessorarchitektur! 41