Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Ein Überblick Vorlesung am 27.10.05 Folien von A.Weber und W. Küchlin, überarbeitet von D. Huson W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra Wie werden logische und arithmetische Operationen beschrieben und in Hardware realisiert? • Digitale Logik: AND- , OR-, NOT- Gatter • Durchführung mittels Transistoren • Mathematisch modelliert durch Boole’sche Algebra Instruction Set Architecture (ISA) Interpretation durch Mikroprogramm Mikroarchitektur Ausführung durch Hardware Digitale Logik W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Im digitalem Rechner kommen nur die Signale 0 und 1 vor • Eine digitale Schaltung hat Eingänge e1,e2,…,ep und Ausgänge a1,a2,…,aq • Signale 0 und 1 auf den Eingängen müssen auf Signale 0 und 1 auf den Ausgängen abgebildet werden • Eine solche Abbildung f heißt Schaltfunktion: Eingänge 0 1 1 1 1 0 e0 e1 e2 e3 e4 e5 1 0 0 1 1 1 f a0 a1 a2 a3 Ausgänge a4 55 f : IBp -> IBq W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Eine Schaltfunktion mit nur einem Ausgang heißt Boole´sche Funktion • Einfachster Fall: ein Eingang, ein Ausgang – 4 mögliche Schaltfunktionen, NUL, ONE, ID und NOT – NUL immer 0, ONE immer 1, ID Identität 0 ID ____ 0|0 1|1 0 0 NOT ____ 0|1 1|0 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Nächster Fall: 2 Eingänge, 1 Ausgang – 4 mögliche Eingangsbitmuster, je 2 mögliche Ausgangswerte – Insgesamt: 24 = 16 mögliche Funktionen • Weniger interessant: NUL, ONE, a, NOT a, b, NOT b, … • Interessant: AND, OR, NAND, NOR, XOR, EQV, IMP a, b NOR XOR NUL NOTa NAND AND EQV NOTb IMP b OR a ONE 00 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 01 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 10 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 11 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Die wichtigsten (Schalt-)Gatter: AND, OR, NOT, (XOR, NAND, NOR) • Schaltbilder nach IEEE Standard: a,b OR XOR 00 0 0 01 1 1 10 1 1 11 1 0 a a OR b b a NOT 0 1 1 0 a a XOR b b a a,b AND NAND 00 0 1 01 0 1 10 0 1 11 1 0 a AND b b a a NAND b b W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Beispiel: OR Gatter a 0 0 b a OR b 0 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Beispiel: OR Gatter a 0 1 b a OR b 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Beispiel: OR Gatter a 1 1 b a OR b 0 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Beispiel: OR Gatter a 1 1 b a OR b 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Exkurs: Bausteine Digitaler Logik (Ebene der Elektrotechnik) • Logik-Bausteine (Gatter, gate) heute durch Transistoren realisiert • Transistor: elementarer elektronischer Schalter • schaltet Strom von Kollektor zu Emitter durch Spannung an Basis • Transistoren aus Halbleitermaterial Silizium (silicon) Kollektor Basis Emitter Erster Transistor 1958 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Exkurs: Bausteine Digitaler Logik (Ebene der Elektrotechnik) + • Die wichtigsten Gatter: AND, OR, NOT, (XOR, NAND, NOR) sind auf einfache Weise durch Transistoren realisierbar 1 NOT a a zu 0 Spannung Kollektor + + Basis 0 NOT a Emitter • Beispiel NOT: 1 a auf Keine Spannung W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Exkurs: Bausteine Digitaler Logik (Ebene der Elektrotechnik) + • Die wichtigsten Gatter: AND, OR, NOT, (XOR, NAND, NOR) sind auf einfache Weise durch Transistoren realisierbar 1 a NAND b a 0 1 zu Spannung b auf Kollektor + + Basis 0 - a NAND b Emitter • Beispiel NAND: 1 1 a b auf auf Keine Spannung, da beide Transistoren durchgeschaltet W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Exkurs: Bausteine Digitaler Logik (Ebene der Elektrotechnik) + • MOS-FET (Feldeffekt Transistor): auf Spannung 1 a Spannung hier „öffnet Schalter“ auf 1 b • Beispiel: AND a AND b 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Verschiedene Schaltungen können die selbe Schaltfunktion realisieren. Beispiele mit AND, OR, NOT: – – – – NAND(a,b) = NOT(AND(a,b)) NOR(a,b) = NOT(OR(a,b)) EQV(a,b) = OR(AND(a,b), NOR(a,b)) … NOR OR AND • Beweis durch Vergleich der Funktionstabellen: a,b NOR XOR NAND AND EQV OR a,b AND NOR OR(AND,NOR) EQV 00 1 0 1 0 1 0 00 0 1 1 1 01 0 1 1 0 0 1 01 0 0 0 0 10 0 1 1 0 0 1 10 0 0 0 0 11 0 0 0 1 1 1 11 1 0 1 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers EQV(a,b) = OR(AND(a,b), NOR(a,b)) 0 0 NOR 1 OR AND a,b NOR AND OR EQV 00 1 0 0 1 01 0 0 1 0 10 0 0 1 0 11 0 1 1 1 0 1 0 0 -> 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers EQV(a,b) = OR(AND(a,b), NOR(a,b)) 0 1 NOR 0 OR AND a,b NOR AND OR EQV 00 1 0 0 1 01 0 0 1 0 10 0 0 1 0 11 0 1 1 1 0 0 0 0 -> 1 0 1 -> 0 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers EQV(a,b) = OR(AND(a,b), NOR(a,b)) 1 0 NOR 0 OR AND a,b NOR AND OR EQV 00 1 0 0 1 01 0 0 1 0 10 0 0 1 0 11 0 1 1 1 0 0 0 0 -> 1 0 1 -> 0 1 0 -> 0 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers EQV(a,b) = OR(AND(a,b), NOR(a,b)) 1 1 NOR 0 OR AND a,b NOR AND OR EQV 00 1 0 0 1 01 0 0 1 0 10 0 0 1 0 11 0 1 1 1 1 1 0 0 -> 1 0 1 -> 0 1 0 -> 0 1 1 -> 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Jede Schaltfunktion f ist Kollektion Boole’scher Funktionen • Jede Boole’sche Funktion kann durch eine Kombination von AND, OR, NOT realisiert werden Eingänge • 0 1 1 1 1 0 e0 e1 e2 e3 e4 e5 1 0 0 1 1 1 f a0 a1 a2 a3 Ausgänge a4 55 Eine Schaltfunktion wird durch eine integrierte Schaltung realisiert, die aus ADD, OR und NOT Gatter besteht (alternativ: NAND bzw. NOR) W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Jede Boole’sche Funktion kann durch eine Kombination von AND, OR, NOT realisiert werden • Beispiel: Eingänge e1..e4, Ausgänge a1..a4, Schaltfunktion f: f= e1 e2 e3 e4 a1 a2 a3 a4 0000 1 1 1 0 0001 0 1 0 1 0010 0 1 1 1 0011 1 0 1 0 0100 0 1 0 1 0101 0 1 1 0 0110 0 0 1 1 1 1 0 1 ... 1111 Bool’sche Funktion f1 für a1: f1=1, genau dann, wenn: e1=0 AND e2=0 AND e3=0 AND e4=0 OR e1=0 AND e2=0 AND e3=1 AND e4=1 ... OR e1=1 AND e2=1 AND e3=1 AND e4=1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Realisierung von Schaltfunktion mittels Bool‘sche Funktionen • Schaltfunktion f : (e1,e2,...,ep) --> (a1,a2,...,aq) ist gegeben durch die Bool‘sche Funktionen: f1 : (e1,e2,...,ep) --> a1 f2 : (e1,e2,...,ep) --> a2 ... fq : (e1,e2,...,ep) --> aq, • wobei jeder diese Funktionen fi mittels AND, OR und NOT realisierbar ist. W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Arithmetik mittels Schaltfunktionen realisierbar • Intuition: endlich viele Ziffern Æ endlich viele Fälle • Beispiel: Eine Spalte der Addition c = a+b – Übertrag von rechts: cin (carry in); Übertrag nach links cout • Kompletter Addierer ist Reihe davon: ripple carry adder a, b, Cin Cout c ((a XOR b) AND Cin) OR (a AND B) (a XOR b) XOR Cin 000 0 0 0 0 010 0 1 0 1 100 0 1 0 1 110 1 0 1 0 001 0 1 0 1 011 1 0 1 0 101 1 0 1 0 111 1 1 1 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra Definition: Sei B eine Menge und \/, ^ seien zwei Verknüpfungen ∈ auf B und 0, 1 B zwei feste Elemente. Es gelte: 1. \/ und ^ sind assoziativ und kommutativ. 2. Es gelten die Distributivgesetze: x \/ (y ^ z) = (x \/ y) ^ (x \/ z) und x ^ (y \/ z) = (x ^ y) \/ (x ^ z). 3. 4. 5. x ^ 0 = 0, und x ^ 1 = x für alle x, x \/ 0 = x, und x \/ 1 = 1 für alle x, Zu jedem x gibt es genau ein ~x mit x ^ ~x = 0 und x \/ ~x = 1. ( ~ ist ein einstelliger Operator, NOT) Dann heißt [B; \/,^,~ , 0, 1] (kürzer: B) eine Boolesche Algebra. W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Boole’sche Schaltfunktionen bilden eine Boole’sche Algebra Schaltalgebra [{0,1}; OR, AND, NOT, 0, 1] • Beweis: rechne Axiome über Funktionstabellen nach – endliche Fallunterscheidung, da nur 0 und 1 – Beispiel: x OR (y AND z) = (x OR y) AND (x OR z) x,y,z y AND z x OR (y AND z) x OR y x OR z (x OR y) AND (x OR z) 000 0 0 0 0 0 001 0 0 0 1 0 010 0 0 1 0 0 011 1 1 1 1 1 100 0 1 1 1 1 101 0 1 1 1 1 110 0 1 1 1 1 111 1 1 1 1 1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra Weitere Gesetze (Sätze) der Boole´schen Algebra 1. Doppelte Negation: ~(~x) = x 2. Idempotenz: x \/ x = x, und x ^ x = x 3. Absorption: x \/ (x ^ y) = x und x ^ (x \/ y) = x x \/ (y ^ z) = (x \/ y) ^ (x \/ z) und x ^ (y \/ z) = (x ^ y) \/ (x ^ z). 4. Implikation: (x => y) = ~x \/ y [in Schaltalgebra ist “=>” die Funktion IMP] 5. de Morgan Regeln: ~(x \/ y) = (~x ^ ~y) ~(x ^ y) = (~x \/ ~y) W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Beweis mittels Wahrheitstabelle • Beweis von de Morgan Regel 1: ~(x \/ y) = (~x ^ ~y) x y ~x ~y x \/ y ~(x \/ y) ~x ^ ~y 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Beweis mittels Wahrheitstabelle • Beweis von de Morgan Regel 2: ~(x ^ y) = (~x \/ ~y) x y ~x ~y 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 x^y ~(x ^ y) ~x \/ ~y W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson Folien zu Kapitel 2: Aufbau und Funktionsweise eines Computers Digitale Logik und Boolesche Algebra • Mit den Gesetzen der Boole´schen Algebra lassen sich Boole´sche Audrücke in gleichwertige (äquivalente) umformen • Gleichwertige Ausdrücke stellen dieselbe Schaltfunktion dar • Dadurch funktional gleichwertiges Ersetzen möglich: – Vereinfachung: weniger Logik-Gatter – Beschleunigung: schnellere Schaltungen – Kosten: billigere/kleinere Bauteile • Boole´sche Operatoren AND, OR, NOT in Java: &&, ||, ! – günstigen Java Ausdruck für gewünschte Funktion finden W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java , Springer-Verlag, Folien überarbeitet von D. Huson