Von-Neumann-Rechner / Rechenwerk • Aufgaben: • Durchführung arithmetischer und logischer Verknüpfungen (daher auch der Name Arithmetic Logical Unit) • Steuerwerk und Rechenwerk werden zusammen auch als CPU zusammengefasst. • Alle arithmetischen Operationen können zurückgeführt werden auf die Basisoperatoren • Verschieben der Stellen im Register • Bitweises Komplementieren • Addieren • Daher: wesentliche Bestandteile des Rechenwerks sind Addierwerk und Komplementierer • Abbildung DigInf 05/06 1 Von-Neumann-Rechner / Rechenwerk Abbildung DigInf 05/06 2 Von-Neumann-Rechner / Speicher • Aufgaben: • Aufbewahren von Daten auf der Ebene von Bits (zusammengefasst in der Aufbewahrungseinheit Byte (oder Vielfaches von Byte)) • Lokalisierung eines Byte erfolgt über Adresse • Der Vorgang der Lokalisierung einer Speicherzelle und des Abfragens/Veränderns ihres Inhalts heißt Zugriff. • Wichtige Begriffe in diesem Kontext: • Zugriffszeit (in der Regel zwischen 5 und 500 ns) • Zugriffsart: RAM (Random Access Memory), ROM (Read Only Memory) • Speichertyp: Hauptspeicher (RAM), externe Speicher • Speicherkapazität DigInf 05/06 3 Von-Neumann-Prinzipien • 5 Funktionseinheiten (siehe oben) • Struktur unabhängig von Problem (ohne Programm nicht arbeitsfähig) • Programme, Daten, Zwischen-, Endergebnisse liegen im gleichen Speicher • Speicher ist in gleichgroße, fortlaufend nummerierte Zellen unterteilt • Aufeinanderfolgende Befehle eines Programms werden in aufeinanderfolgenden Speicherzellen abgelegt. Ansprechen des nächsten Befehls geschieht durch das Steuerwerk aus durch Inkrementieren der Befehlsadresse • Sprungbefehle erlauben Abweichungen zwischen Bearbeitungs- und Speicherungsreihenfolge • Das Rechenwerk versteht zumindest die folgenden Befehle: • Arithmetische und logische • Transportbefehle (vom Speicher zum Rechenwerk, etc.) • Bedingte Sprünge • Alle Daten werden binär codiert DigInf 05/06 4 Rechnerarchitekturen / Boolesche Algebra • George Boole (1815-1864): formale Begründung der Logik • Arithmetische und logische Operationen auf der Basis von Wahrheitswerten (true/false) • Abbildung der logischen Werte auf den Zustand elektronischer Schaltungen: • In einem einfachen Stromkreis (Batterie B, Widerstand R (oder Lämpchen L), Schalter S) können wir ein Bit durch die am Widerstand (am Lämpchen) anliegende Spannung darstellen: • S geöffnet, Spannung an R = 0 (entspricht Bit hat Wert 0) • S geschlossen, Spannung an R = 5V (entspricht Bit hat Wert 1) * * unter Annahme von UB = 5V DigInf 05/06 5 Rechnerarchitekturen / Boolesche Algebra • Ersetzen des Schalters S durch 2 Schalter S1 und S2 L L UND DigInf 05/06 ODER 6 Rechnerarchitekturen / Boolesche Algebra • Aufbauend auf den Elementarschaltern werden neue Schaltglieder durch Serien und Parallelschaltung beschrieben. • Jedes Schaltglied erhält einen Eingang und einen Ausgang und können so in natürlicher Weise verbunden werden. • Sind S1 und S2 Schaltglieder, so erhält man durch Parallelschaltung das Schaltglied S1 S2 und durch Serienschaltung S1 S2 • Auf Grund des Verhaltens ODER UND wird die Parallelschaltung auch als Oder-Schaltung und die Serienschaltung auch als Und-Schaltung bezeichnet. DigInf 05/06 7 Serien-parallele Terme • Bezeichnet man die elementaren Ein-Aus-Schalter mit Variablen x,y,z, ..., so lässt sich jeder serien-parallele Schaltkreis durch einen Serien-ParallelSchaltterm (kurz SP-Term) beschreiben. • Definition: (i) 0 und 1 sind SP-Terme. (ii) Jede Variable ist ein SP-Term. (iii) Sind t1 und t2 SP-Terme, dann auch t1 t2 und t1 t2. - Beispiel: Schaltkreis zu x (y z) mit zugehöriger Schalttabelle yz DigInf 05/06 x (y z) 8 Schaltfunktionen • Eine Schaltfunktion ist eine n-stellige Operation auf der Menge {0,1}, also eine Abbildung: f: {0,1}n {0,1} • Jeder SP-Term beschreibt über seine Schalttabelle eine Schaltfunktion. • Mehrere SP-Terme können dieselbe Schaltfunktion beschreiben: x (y z) DigInf 05/06 (x y) (x z) 9 Gleichungen • Die Gültigkeit von Gleichungen, bei denen auf beiden Seiten SPTerme stehen, lässt sich durch Vergleich der zugehörigen Schaltfunktionen zeigen. yz DigInf 05/06 x (yz) xy xz (x y) (x z) 10 Gleichungen Oder auch durch Rechnen gemäß der folgenden Regeln: • Idempotenz: • Kommutativität: • Assoziativität: • Absorption: • Distributivität: xx=x xx=x xy=yx xy=yx x (y z) = (x y) z x (y z) = (x y) z x (x y) = x x (x y) = x x (y z) = (x y) (x z) x (y z) = (x y) (x z) Eine Struktur, die diesen Regeln folgt, heißt distributiver Verband. DigInf 05/06 11 Dualität Zwei spezielle Schaltglieder: • der immer geschlossene Schaltkreis 1 • der immer offene Schaltkreis 0 • Charakterisiert durch die Gleichungen: • x0=x x1=x • x1=1 x0=0 • Vertauschen wir und sowie 0 und 1 in einem Term t, so erhalten wir den zu t dualen Term td. • Es gilt: (i) (ii) DigInf 05/06 tdd = t t1 = t2 t1d = t2d 12 Dualität • Behauptung zur Dualität / vgl. Übungsblatt 1 DigInf 05/06 13 Monotonie Wir wissen: jeder Term beschreibt eine Schaltfunktion. Frage: Lässt sich mit Termen jede denkbare Schaltfunktion realisieren? Überlegung: ein geschlossenes Schaltglied lässt sich durch das Anschließen weiter Schalter nicht öffnen! f: {0,1}n {0,1} f(b1, ...,bi, ..., bn) = 1 f(b1, ...,1, ..., bn) = 1 Setzt man die natürliche Ordnung 0 1 komponentenweise fort auf {0,1}n durch (b1, ..., bn) (c1, ..., cn) bi ci 1 i n so erkennen wir, dass jede durch einen SP-Schaltkreis realisierte Schaltfunktion f im folgenden Sinne monoton ist (b1, ..., bn) (c1, ..., cn) f(b1, ..., bn) f(c1, ..., cn) Beweis durch Induktion über den Aufbau von Termen: DigInf 05/06 14 Monotonie / Bew. Per Induktion DigInf 05/06 15 Negation Beispiel einer Schaltung, die nicht durch eine SP-Schaltung realisierbar ist: Wechselschaltung: Lampe soll von 2 verschiedenen Schaltern unabhängig ein- und ausgeschaltet werden. Diese Schaltung lässt sich durch eine der folgenden Schalttabellen festlegen: x y Lampe 0 0 0 0 1 1 1 0 1 1 1 0 oder 0 0 1 0 1 0 1 0 0 1 1 1 Beide Schalttabellen beschreiben Schaltfunktionen, die nicht monoton sind und gemäß des Monotoniebeweises deshalb auch nicht durch SP-Schaltungen realisiert werden können. DigInf 05/06 16 Negation Einfachste nicht monotone Schaltfunktion ist die folgende: x f(x) 0 1 1 0 Definition: Ist S ein Schaltglied, so sei S dasjenige Schaltglied, das genau dann offen ist, wenn S geschlossen ist. S heißt Negation von S. Im elektrischen Schaltkreis lässt sich die Negation durch ein Relais realisieren. Fließt Strom durch S, so wird durch die Magnetwirkung einer Spule der Schalter S geöffnet (Realisierung mit Transistoren einfacher!). DigInf 05/06 17 Boolesche Terme Ein Schaltkreis, in dem neben Serien- und Parallelschaltung auch noch die Negation verwendet werden darf, heißt boolesche Schaltung. Der einer booleschen Schaltung entsprechende Term heißt boolescher Term. Definition: (i) 0 und 1 sind boolesche Terme. (ii) Jede Variable ist ein boolescher Term. (iii) Sind t1 und t2 boolesche Terme, dann auch t1 t2 und t1 t2 und t1 Gleichungen zum Verhalten der Negation: Nachrechnen! de Morgan: (x y) = x y (x y) = x y Komplement: x x = 1 x x = 0 x = x Eine distributiver Verband mit einer solchen Negation heißt boolesche Algebra. DigInf 05/06 18 Realisierung von Schaltfunktionen Gesucht: zu einer gegebenen Schaltfunktion der entsprechende boolesche Terme. Definition: Ein Literal ist eine Variable oder eine negierte Variable. Ein Monom ist eine Konjunktion (Und-Verknüpfung) von Literalen. Beispiel: Realisierung einer Schaltfunktion, die es erlaubt, eine Lampe von drei Schaltern x,y,z unabhängig ein- und auszuschalten. Die Schaltfunktion g sieht dann folgendermaßen aus: DigInf 05/06 19 Realisierung von Schaltfunktionen g liefert an 4 Stellen den Wert 1. Sie lässt sich als Disjunktion von 4 Monomen m1,m2,m3,m4 schreiben: TODO Darstellung der Monome: m1 = (xyz), m2 = (xyz), m3 = (xyz), m4 = (xyz) Somit g(x,y,z) = m1m2m3m4 = (xyz) (xyz) (xyz) (xyz) Diese Beschreibung heißt disjunktive Normalform (DNF). DigInf 05/06 20 Realisierung von Schaltfunktionen Unter der DNF versteht man eine Disjunktion von Monomen, in denen jeweils jede Variable vorkommt (negiert oder nicht negiert). Zu jeder Schaltfunktion gibt es genau eine DNF und die lässt sich auf die beschriebene Weise ermitteln. Insgesamt: Jede Schaltfunktion lässt sich durch einen booleschen Term realisieren. Die DNF wird umso komplizierter je mehr 1-Stellen die Schaltfunktion hat. Falls mehr 1-Stellen als 0-Stellen, dann wird eher die Konjunktive Normalform (KNF) verwendet. Definition: Unter einer Elementarsumme verstehen wir eine Disjunktion (Oder-Verknüpfung) von Literalen. Die Schaltfunktion einer Elementarsumme ergibt genau für einen Input eine 0, sonst immer 1. Sind e1 und e2 Elementarsummen, so hat die Konjunktion e1 e2 genau dort eine 0, wo e1 oder e2 eine 0 haben. Beliebige Schaltfunktionen kann man daher als Konjunktion von Elementarsummen schreiben. DigInf 05/06 21 Realisierung von Schaltfunktionen Beispiel: Zerlegung in Elementarsummen: g(x,y,z) = e1 e2 e3 = (x y z) (x y z) (x y z) DigInf 05/06 22 Digitale Logik Realisierung beliebiger Funktionen f: {0,1}m {0,1}n Jedes solche Schaltglied kann aus n Schaltgliedern mit je einem Ausgang aufgebaut werden. Es reicht daher, dass wir alle Schaltfunktionen fi : {0,1}m {0,1} realisieren können. DigInf 05/06 23 Transistoren als Schalter Als Elementarschalter werden in der Praxis Transistoren eingesetzt. Ein Transistor hat einen Eingang (source), einen Ausgang (drain) und einen Steuereingang (gate). Legt man eine Spannung zwischen source und drain, so fließt nur Strom, falls auch eine Spannung zwischen source und gate besteht. In einem Stromkreis, bestehend aus einem Transistor und einem Widerstand R zwischen den Polen einer Spannungsquelle, kann man den Transistor als Schalter auffassen, der von einer Spannung zwischen g und s eingeschaltet wird. DigInf 05/06 24 Transistoren als Schalter Ist Vext die externe Spannung (zwischen + und -), so kann man Vout, die Spannung zwischen d und s, in Abhängigkeit von Vin, der Spannung zwischen g und s, tabellieren. Wir erhalten unter Bezeichnung von Vext mit 1: Vin Vout 0 Vext Vext 0 Betrachten wir stattdessen als Ausgangsspannung die an R abfallende Spannung VR, so hat man das komplementäre Verhalten, denn VR = Vext – Vout Vin VR 0 0 Vext Vext DigInf 05/06 25 Schaltfunktionen NAND und NOR x 0 0 1 1 y 0 1 0 1 DigInf 05/06 NAND (x,y) 1 1 1 0 NOR (x,y) 1 0 0 0 26 Schaltfunktionen AND und OR x 0 0 1 1 y 0 1 0 1 DigInf 05/06 AND (x,y) 0 0 0 1 OR (x,y) 0 1 1 1 27 Gattersymbole Die grundlegenden Schaltglieder stellt man durch Gattersymbole dar, wobei nur noch die Input- und Output-Leitungen gezeichnet werden. z x z=x Puffer x y NOT z OR x z y AND DigInf 05/06 z = x z x x y z 0 0 0 0 1 1 1 0 1 1 1 1 x y z 0 0 0 0 1 0 1 0 0 1 1 1 z=xy x y z NOR z=xy x z y NAND x y z 0 0 1 0 1 0 1 0 0 1 1 0 x y z 0 0 1 0 1 1 1 0 1 1 1 0 z = (x y) z = (x y) 28 Alte Gattersymbole DigInf 05/06 29 Gattersymbole für weitere wichtige Schaltungen x y z 0 0 0 0 1 1 1 0 1 1 1 0 XOR = (x c) (y c) MUX DigInf 05/06 z = (x c) (y c) Mit anderen Worten: z = if c then x else y 30 Halbaddierer DigInf 05/06 x y c s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 31 Volladdierer Zusätzlich werden ci (carry-in) und co (carry-out) berücksichtigt. DigInf 05/06 32 Addierwerk Mit einer Kaskade von n-1 Volladdierern und einem Halbaddierer kann man ein Addierwerk zusammenbauen, das 2 n-stellige Binärzahlen addiert. Jeder Ein-BitAddierer ist dabei für eine Ziffernposition verantwortlich. DigInf 05/06 33 Rückgekoppelte Schaltungen Unsere bisherigen Bausteine haben bisher Signale umgewandelt, aber nicht gespeichert. Das reicht offensichtlich gerade für persistente Daten nicht aus! Rückgekoppelte Schaltungen können ein Gedächtnis haben. Rückgekoppeltes OR-Gatter Einmal 1, immer 1 Eine Speicherzelle sollte zwischen 0 und 1 wechseln und beide Werte dauerhaft speichern können (je nach Bedarf). Genau das kann ein Flip-Flop. DigInf 05/06 34 Gleichungen Flip-Flop q = (r q) und q = (s q) r = 0 q = q , also q = q s = 0 q = q , also q = q Mit anderen Worten: Aus r oder s gleich null folgt, dass an q immer das Komplement von q anliegt. Im praktischen Einsatz wird r = s = 1 nicht benutzt, sodass immer q = q gilt. Für r = s = 0 ist das Gleichungssystem unterbestimmt: q=0 oder q=1 sind gültige Lösungen. Beide Lösungen sind stabil. Wenn genau an einem der beiden Eingänge eine 1 anliegt, hat das Gleichungssystem genau eine Lösung (r=1 q=0, s=1 q=1) DigInf 05/06 35 Betrieb Flip-Flop Demzufolge wird ein RS-Flip-Flop folgendermaßen betrieben: • • • • Ruhezustand: r=s=0 Impuls 1 auf s (set) setzt q auf 1. Ein Impuls 1 auf r (reset) setzt q auf 0. Fällt der Impuls auf r oder s wieder auf 0 ab, so bleibt der vorige Wert von q erhalten. DigInf 05/06 36 Schalter, Codierer, Decodierer Ein-/Ausschalter Speicherzelle Aufbauend auf einem RS-Flip-Flop. Zusätzliche Schaltglieder zur Auswahl einer bestimmten Speicherzelle aus vielen Zellen. Select stellt sicher, dass nur was an OUT ankommt, wenn Select=1. Schalter an Eingängen erfordern, dass Zelle zum Schreiben bereit ist. DigInf 05/06 37 Schalter, Codierer, Decodierer Eine Gruppe von Speicherzellen heißt Register. Da nie einzelne Bits, sondern nur Wörter angesprochen werden, werden die Select- und die Write-Eingänge verbunden (vgl. folgendes 4 Bit Register). DigInf 05/06 38 ALU 1-Bit-ALU (3 Eingänge zur Kodierung von 8 Operationen), zwei Operanden (x,y), ein Carry (ci), ein Ergebnis (z), ein Übertrags-Carry (ci+1). DigInf 05/06 39 ALU Detailschaltung 1-Bit-ALU 4-Bit-ALU DigInf 05/06 40