Rechnerstrukturen, Teil Vorlesung 4 SWS WS 5/6 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-.de http://ls-www.cs.tu-.de
Übersicht. Organisatorisches 2. Einleitung 3. Repräsentation von Daten 4. Boolesche Funktionen und Schaltnetze 5. Rechnerarithmetik 6. Optimierung von Schaltnetzen 7. Programmierbare Bausteine 8. Synchrone Schaltwerke - 2 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 3 -
4. Einleitung Boolesche Funktionen Vielleicht schon bekannt: Aussagenlogik Satz ist Aussage mit eindeutigem Wahrheitswert Wahrheitswerte wahr falsch neue Aussagen entstehen durch Verknüpfung von Aussagen Verknüpfungen Negation (, nicht ) Konjunktion (, und ) Disjunktion (, oder ) - 4 -
4. Einleitung Definition der Verknüpfungen Seien A, B zwei Aussagen. Definition Negation A A falsch wahr wahr falsch Definition Kunjunktion A B A B falsch falsch falsch falsch wahr falsch wahr falsch falsch wahr wahr wahr Definition Disjunktion A B A B falsch falsch falsch falsch wahr wahr wahr falsch wahr wahr wahr wahr - 5 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 6 -
4.2 Boolesche Algebra Eine boolesche Algebra ist eine spezielle algebraische Struktur, die die Eigenschaften der logischen Operatoren UND, ODER, NICHT und die Eigenschaften der mengentheoretischen Verknüpfungen Durchschnitt, Vereinigung, Komplement verallgemeinert. Definition 2 Wir nennen,,, mit =, und =, =, = für alle, y eine boolesche Algebra. - 7 -
4.2 Boolesche Algebra Wir sehen hier bereits Entsprechungen zur Aussagenlogik: falsch wahr - 8 -
4.2 Boolesche Algebra In einer boolesche Algebra gelten folgende Rechengesetze: Satz 3 In der booleschen Algebra,,, für alle, y, z : Kommutativität: = = Assoziativität: = = Distributivität: = = - 9 -
4.2 Boolesche Algebra In einer boolesche Algebra gelten folgende Rechengesetze: Satz 3 (cont.) In der booleschen Algebra,,, für alle, y, z : Neutralelement: = = Nullelement: = = Idempotenz: = = Involution: = - -
4.2 Boolesche Algebra In einer boolesche Algebra gelten folgende Rechengesetze: Satz 3 (cont.) In der booleschen Algebra,,, für alle, y, z : Absorption: = = Resolution: = = Komplementarität: = = de Morgan: = = - -
4.2 Boolesche Algebra Wie beweist man einzelne Rechengesetze? Wir stellen eine Wertetabelle auf. Beispiel: Absorption = linke Seite rechte Seite - 2 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 3 -
4.3 Repräsentationen boolescher Funktionen Wir benötigen im Folgenden den Begriff der booleschen Funktion. Definition 4 Seien, N und eine boolesche Algebra. Eine Funktion f heißt boolesche Funktion. Notation = Menge aller n-stelligen Tupel über B Beispiel = = {(), ()} Beispiel = {(, ), (, ), (, ), (, )} Beispiel = {(,, ), (,, ), (,, ), (,, ), (,, ), (,, ), (,, ), (,, )} - 4 -
4.3 Repräsentationen boolescher Funktionen Anzahl boolescher Funktionen boolesche Funktion f als Wertetabelle darstellbar, mit = 2 Zeilen = 2 Funktionswerten pro Zeilen 2 = 2 boolesche Funktionen für f - 5 -
4.3 Repräsentationen boolescher Funktionen Grundfunktion aus dem Bereich der booleschen Funktionen boolesche Grundfunktion f als Wertetabelle darstellbar, mit = 2 Zeilen = 2 Funktionswert pro Zeilen Beispiel -stellige boolesche Grundfunktionen 2 = 4 = = Funktion Name f Konstante Kontradiktion f Identität f 2 Negation f 3 Konstante Tautologie - 6 -
4.3 Repräsentationen boolescher Funktionen Alle booleschen 2-stelligen Grundfunktionen (2 = 6), 2,,,, Funktion Name f Kontradiktion f Konjunktion f 2 Inhibition von f 3 Identität von f 4 Inhibition von 2 f 5 Identität von 2 f 6 Antivalenz, Alternative f 7 Disjunktion f 8 Nihilition f 9 Äquivalenz f Negation von 2 f Replikation f 2 Negation von f 3 Implikation f 4 Eklusion f 5 Tautologie - 7 -
4.3 Repräsentationen boolescher Funktionen Im Folgenden werden diese Symbole verwenden: Konjunktion (und) Disjunktion (oder) Negation (nicht) Antivalenz (or) In der Regel abkürzende Notation der Konjunktion, z.b.: Feste Folge der Funktionswerte, entsprechend des Wertes der Binärzahl: Beispiel: f 6 =(,,,) korrespondiert zu y f 6-8 -
4.3 Repräsentationen boolescher Funktionen Vorsicht bei der Notation - 9 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 2 -
4.4 Normalformen boolescher Funktionen Einschlägige und nicht einschlägige Indizes Wir tragen die Werte der Argumente gemäß ihrer natürlichen Ordnung (Inde) in eine Wertetabelle ein Ist der Funktionswert für einen Inde =, nennen wir den Inde einschlägig, Ist der Funktionswert für einen Inde =, nennen wir den Inde nicht einschlägig Beispiel: Inde f 6 nicht einschlägig einschlägig 2 einschlägig 3 nicht einschlägig - 2 -
4.4 Normalformen boolescher Funktionen Minterm Definition 5 Die boolesche Funktion Minterm zum Inde i., für die nur der Inde i einschlägig ist, heißt Ein Minterm ist nur mit Negationen und Konjunktionen darstellbar: ist die Eingangsbelegung an der Stelle =, setzen wir ist die Eingangsbelegung an der Stelle =, setzen wir und bilden dann die Konjunktion der Literale Literal: In der mathematischen Logik ist ein Literal eine atomare Aussage (Atom) oder die Negation einer atomaren Aussage. Hier also eine Variable oder die negierte Variable. - 22 -
4.4 Normalformen boolescher Funktionen Beispiel zu Inde und Minterm Inde f 6 nicht einschlägig einschlägig 2 einschlägig 3 nicht einschlägig Minterm zum Inde 2 = () 2 :, = Was bewirk nun? nimmt nur für den Inde 2 den Wert an. Inde 2 3-23 -
4.4 Normalformen boolescher Funktionen Hinführung zu Normalformen Für wie viele Eingaben liefert ein Minterm? Wie soeben gesehen für genau Eingabe. Folgerungen Disjunktion aller Minterme zu einschlägigen Indizes einer booleschen Funktion f ist wieder f XOR-Verknüpfung aller Minterme zu einschlägigen Indizes einer booleschen Funktion f ist wieder f - 24 -
4.4 Normalformen boolescher Funktionen Normalformen Definition 8 Die Darstellung einer booleschen Funktion f als Disjunktion all ihrer Minterme zu einschlägigen Indizes heißt disjunktive Normalform (DNF). Die Darstellung einer booleschen Funktion f als XOR-Verknüpfung all ihrer Minterme zu einschlägigen Indizes heißt Ringsummen-Normalform (RNF). Anmerkung: Normalformen sind eindeutig. Beispiel f 6 DNF von f 6 : RNF von f 6 : Inde f 6 Minterme 2 3-25 -
4.4 Normalformen boolescher Funktionen Funktionale Vollständigkeit Beobachtung: jede boolesche Funktion f ist durch ausschließliche Verwendung von Konjunktion, Disjunktion und Negation darstellbar z. B. durch ihre DNF Definition 8 Eine Menge F von booleschen Funktionen heißt funktional vollständig, wenn sich jede boolesche Funktion durch Einsetzen und Komposition von Funktionen aus F darstellen lässt. Satz 6 F =,, ist funktional vollständig. - 26 -
4.4 Normalformen boolescher Funktionen Funktionale Vollständigkeit Frage: Gibt es kleinere funktional vollständige Mengen F? Behauptung: Funktional vollständig sind F =, F 2 =, Zum Beweis genügt es zu zeigen, dass,, darstellbar ist. Beweis (mittels der de Morgan'schen Gesetze) - 27 -
4.4 Normalformen boolescher Funktionen Funktionale Vollständigkeit Frage: Gibt es kleinere funktional vollständige Mengen F? Behauptung: Funktional vollständig sind F =, F 2 =, Zum Beweis genügt es zu zeigen, dass,, darstellbar ist. Beweis Anwendung der de Morgan'schen Gesetze (Satz 3): = ist durch =, darstellbar = ist durch =, darstellbar - 28 -
4.4 Normalformen boolescher Funktionen Funktionale Vollständigkeit Frage: Gibt es noch kleinere funktional vollständige Mengen F? Behauptung: Funktional vollständig ist F 3 = F 4 = Zum Beweis der funktionalen Vollständigkeit von F 3 genügt es zu zeigen, dass, darstellbar ist. Beweis Teil Darstellung der Negation =, (, ) - 29 -
4.4 Normalformen boolescher Funktionen Beweis Teil 2 Darstellung der Disjunktion = (, ), (, ) (, ), (, ) - 3 -
4.4 Normalformen boolescher Funktionen Materme Beobachtung: Minterm-Darstellung betont Funktionswert. Definition Die boolesche Funktion, für die nur der Inde i nicht einschlägig ist, heißt Materm zum Inde i. Beobachtungen Definition Materm unterscheidet sich nur in nicht von Definition Minterm wenn Minterm zum Inde i und Materm zum Inde i ist = Konjunktion aller Materme zu nicht einschlägigen Indizes einer booleschen Funktion f ist wieder f - 3 -
4.4 Normalformen boolescher Funktionen Normalformen Fortsetzung von Definition 8 Die Darstellung von f als Konjunktion all ihrer Materme zu nicht einschlägigen Indizes heißt konjunktive Normalform (KNF). Beispiel Inde z 2 3 4 5 6 7-32 -
4.4 Normalformen boolescher Funktionen Wozu stellt man boolesche Funktionen dar? Realisierung Verifikation Fehleranalyse Synthese... Wo stellt man boolesche Funktionen dar? auf dem Papier im Computer Probleme Wertetabelle, Wertevektor immer groß Normalformen oft groß Normalformen unterstützen gewünschte Operationen kaum Wunsch: andere Repräsentation - 33 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 34 -
4.5 Ordered Binary Decision Diagrams Eine Datenstruktur für boolesche Funktionen Ziel: Darstellung für f Wünsche: zu einer Belegung, 2,..., n schnell den Funktionswert f(, 2,..., n ) ausrechnen können Funktionen schnell auf Gleichheit testen können Funktionen schnell manipulieren (z. B. eine Variable konstant setzen) können schnell eine Null-Eingabe/eine Eins-Eingabe finden können Funktionen möglichst klein repräsentieren... Ordered Binary Decision Diagrams - 35 -
4.5 Ordered Binary Decision Diagrams OBDDs erster Schritt; Festlegung einer Variablenordnung z. B.: =,,, bei einer 4-stelligen Funktion zweiter Schritt: OBDD bauen aus Knoten für Variablen oder Konstanten Kanten, die zwei Knoten verbinden nach folgenden Regeln: Regeln Knoten mit Variablen, oder markiert Kanten mit oder markiert Variablen-Knoten mit je einer ausgehenden - und -Kante Konstanten-Knoten ohne ausgehende Kante genau ein Knoten ohne eingehende Kante Kanten zwischen Variablenknoten beachten π - 36 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Regeln Knoten mit Variablen, oder markiert Kanten mit oder markiert Variablen-Knoten mit je einer ausgehenden - und -Kante Konstanten-Knoten ohne ausgehende Kante genau ein Knoten ohne eingehende Kante Kanten zwischen Variablenknoten beachten π 2 2-37 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Inde 2 3 4 5 6 7 2 2-38 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Auswertung (,, ) = = =,, = 2 2-39 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Ist das nicht etwas groß? 2 2-4 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen 2 2-4 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen 2 2-42 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen 2 2-43 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen 2 2-44 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen 2 2-45 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen 2 2-46 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2 2-47 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2 2-48 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2 2-49 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2-5 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2-5 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2 3-52 -
4.5 Ordered Binary Decision Diagrams OBDD Ein Beispiel =,, Vereinfachungen gleichartige Senken verschmelzen gleichartige Knoten verschmelzen Knoten ohne Einfluss entfernen 2 OBDD minimal 3-53 -
4.5 Ordered Binary Decision Diagrams OBDD-Reduzierung Satz 9 Die erschöpfende Anwendung der Verschmelzungsregel Knoten mit gleicher Markierung und gleichen Nachfolgern können verschmolzen werden und der Eliminationsregel Ein Knoten mit gleichem Null- und Einsnachfolger kann entfernt werden in beliebiger Reihenfolge führt zum reduzierten πobdd. reduziert bedeutet: OBDD hat minimale Größe und ist eindeutig definiert - 54 -
4.5 Ordered Binary Decision Diagrams Was bringt und die OBDD-Reduzierung Originalfunktion als DNF = Inde z 2 3 4 5 6 7-55 -
4.5 Ordered Binary Decision Diagrams OBDD in boolesche Funktion umwandeln disjunktive Form, d. h. Disjunktion von Termen, die nur Negation und Konjunktion enthalten wir berücksichtigen nur Kanten, die zu Konstanten-Knoten mit führen folgen wir für eine Variable einer -Kante, setzen wir als Literal in den Term folgen wir für eine Variable einer -Kante, setzen wir als Literal in den Term Literale werden mit der Konjunktion (UND) 2 verknüpft jeder Pfad zu einem Konstanten-Knoten mit ergibt einen Term 3 alle entstandenen Terme werden mit der Disjunktion (ODER) verknüpft hier: = - 56 -
4.5 Ordered Binary Decision Diagrams Was bringt und die OBDD-Reduzierung Originalfunktion als DNF = Originalfunktion aus OBDD-Reduzierung = weniger Terme einfachere Terme Inde z 2 3 4 5 6 7-57 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 58 -
4.6 Schaltnetze Wo bleibt die Hardware? bis jetzt haben wir über theoretische Grundlagen diskutiert wir betrachten die Hardware auf abstrakter Ebene Wunsch Realisierung boolescher Funktionen in Hardware wir benötigen eine funktional vollständige Menge boolescher Funktionen Erinnerung: technische Realisierung von NAND reicht aus Beobachtung: folgende Schaltung mit Transistoren realisiert die NAND-Funktion - 59 -
4.6 Schaltnetze Logische Gatter Realisierung mit Transistoren... für uns die falsche Ebene! Grundlage für RS einfache logische Bausteine (logische Gatter) Bausteine für Negation Konjunktion Disjunktion Regeln Eingänge mit Variablen oder Konstanten belegt nur Verbindungen von Ausgängen zu Eingängen keine Kreise (Rückkopplung Ausgang Eingang) Schaltnetz - 6 -
4.6 Schaltnetze Symbole für logische Gatter () - 6 -
4.6 Schaltnetze Symbole für logische Gatter (2) - 62 -
4.6 Schaltnetze Schaltnetzbewertung Wir können nun beliebige Schaltnetze entwerfen. Wie messen wir die Qualität eines Schaltnetzes? Schaltnetzgröße (= Anzahl der Gatter) wegen Kosten, Stromverbrauch, Verlustleistung, Zuverlässigkeit,... Schaltnetztiefe (= Länge des längsten Wegs von Eingang zu Ausgang) wegen Schaltgeschwindigkeit Fan-In (= ma. Anzahl eingehender Kanten) wegen Realisierungsaufwand Fan-Out (= ma. Anzahl ausgehender Kanten) wegen Realisierungsaufwand... (z. B. Anzahl Gattertypen, Testbarkeit, Verifizierbarkeit) - 63 -
4.6 Schaltnetze Schaltnetzbewertung Was wir schon wissen: Jede boolesche Funktion kann mit einem {,, }- bzw. einem {,, }-Schaltnetz der Tiefe 3 realisiert werden Beweis DNF, KNF oder RNF direkt umsetzen Probleme Fan-In des tiefsten Gatters kann etrem groß sein Größe des Schaltnetzes oft inakzeptabel - 64 -
4.6 Schaltnetze Beispiel DNF :, Wertevektor (,,,,,,,, ) = - 65 -
4.6 Schaltnetze Beispiel RNF :, Wertevektor (,,,,,,,, ) = - 66 -
4.6 Schaltnetze Beispiel KNF :, Wertevektor (,,,,,,,, ) = ( ) ( ) ( ) - 67 -
4.6 Schaltnetze Beispiel Multipleer :,,,,,,, =,,, Wichtige Funktion für die Prais Selektiert aus vielen Eingängen einen speziellen (ähnlich Drehschalter) kann parallel anliegende Daten in serielle Daten verwandeln mehrere Eingänge Signaleingänge Selektionseingänge ein Ausgang - 68 -
4.6 Schaltnetze Beispiel Multipleer :,,,,,,, =,,, MUX vollständige Darstellung,, MUX verkürzte Darstellung,, - 69 -
4.6 Schaltnetze Beispiel Multipleer :,,,,,,, =,,, MUX 3 verkürzte Darstellung,,,,,, - 7 -
4.6 Schaltnetze Beispiel Multipleer MUX 3 vollständige Darstellung :,,,,,,, =,,,,,,,,, =,, : : Die Abbildung : hat demnach in vollständiger Darstellung 2 = 248 Zeilen - 7 -
4.6 Schaltnetze Beispiel Multipleer MUX 3 vollständige Darstellung :,,,,,,, =,,,,,,,,, =,, : : Die Abbildung : hat demnach in vollständiger Darstellung 2 = 248 Zeilen Da die Hälfte der Indizes einschlägig ist (bedingt durch die Funktion eines Multipleers) sind sowohl DNF als auch KNF riesig und würden zu sehr großen Schaltungen führen. - 72 -
4.6 Schaltnetze Beispiel Multipleer Trotzdem eistiert eine überschaubare Schaltung für MUX 3. und selektieren passende UND-Gatter für jede Belegung der ist genau ein UND- Gatter ausgewählt bis auf einen Eingang sind bei ausgewähltem Gatter alle Eingänge auf gesetzt. Eigenschaft des Neutralelements für UND leitet sel. durch - 73 -
4. Boolesche Funktionen und Schaltnetze 4. Boolesche Funktionen und Schaltnetze. Einleitung 2. Boolesche Algebra 3. Repräsentationen boolescher Funktionen 4. Normalformen boolescher Funktionen 5. Repräsentation boolescher Funktionen mit OBDDs 6. Schaltnetze - 74 -