© 1999 François Bry
Dieses Lehrmaterial wird ausschließlich zur privaten Verwendung angeboten. Eine nichtprivate Nutzung (z.B. im Unterricht oder eine Veröffentlichung von Kopien oder Übersetzungen) dieses Lehrmaterials bedarf der Erlaubnis des Autors.


3.2 Exkurs: Schaltkreise und Boole'sche Algebren

Die Steuerungseinheit eines Computers kann als ein elektronischer Schaltkreis angesehen werden, der Boole'sche Funktionen implementiert. Damit sie nicht eingeschränkt ist, muss diese Menge von Boole'schen Funktionen eine vollständige Basis bilden.

Minimale vollständige Basen haben gegenüber nichtminimalen Basen den Vorteil, keine redundanten Elemente zu enthalten, was kostengünstig ist. Die minimale vollständige Basis {NAND} hat den zusätzlichen Vorteil, dass die Funktion NAND mit Transistoren einfach zu implementieren ist. Das ist der Grund, warum die meisten Schaltkreise viele sogenannte ,,NAND-Gatter`` enthalten.

Bei der Entwicklung von Schaltkreisen werden zunächst die benötigten Boole'schen Funktionen bestimmt. Betrachten wir als Beispiel einen Multiplexer. Das ist ein Schaltkreis, der eingesetzt wird, wenn eine einzige Leitung für unterschiedliche Zwecke verwendet wird oder wenn eine Komponente Eingabewerte aus verschiedenen anderen Komponenten erhalten soll. Er entspricht einer mehrstelligen Boole'schen Funktion, die einfach eines ihrer Argumente als Ergebnis liefert, aber welches der Argumente, hängt von Steuergrößen ab.

Der einfache Multiplexer hat drei Eingänge s, x0, x1 und einen Ausgang y. Der Wert des Steuereingangs s legt dabei fest, ob der Eingang x0 oder der Eingang x1 auf den Ausgang y geschaltet wird (s steht für ,,switch`` oder Schalter): falls s = w dann y = x1, falls s = f dann y = x0. Dieses Verhalten des Multiplexers kann durch eine Tabelle beschrieben werden.

x0 _______________|‾‾|
x1 _______________|__|______________ y
s _________________|


s  x0  x1 y
w  w  w w
w  w   f f
w   f   w w
w   f   f f
f   w  w w
f   w   f w
f   f   w f
f   f   f f


Dieser Multiplexer entspricht also einer dreistelligen Boole'schen Funktion y = MUX(s,x0,x1) mit der gegebenen Wahrheitstabelle. Mit der Beweistechnik von Satz 3.1.3, Punkt 1 (a), genauer gesagt, mit einer dazu dualen Variante, kann man aus der Tabelle unmittelbar ablesen, wie diese Funktion auf die Basis {NOT,AND,OR} zurückgeführt werden kann:

MUX(s,x0,x1) = ( s AND ( x0 AND x1))         (*)
OR ( s AND ( NOT x0 AND x1))
OR ( NOT s AND ( x0 AND x1))
OR ( NOT s AND ( x0 AND NOT x1))


Diese Darstellung der Boole'schen Funktion wird dann weiter umgewandelt, zum Beispiel auf eine andere - für die technische Realisierung günstigere - Basis zurückgeführt, oder vereinfacht, wobei es unterschiedliche Kriterien für ,,einfach`` gibt. Eine vereinfachte Darstellung in unserem Beispiel wäre MUX(s,x0,x1) = (NOT s AND x0) OR (s AND x1). Diese Darstellung der Funktion sollte keine Überraschung sein, wenn man sich an das beschriebene Verhalten des Multiplexers erinnert!

Was bei diesen Umwandlungen erlaubt ist, damit die umgewandelte Darstellung auch in jedem Fall dieselbe Boole'sche Funktion beschreibt wie die Ausgangsdarstellung, ergibt sich aus den Rechenregeln der Boole'schen Algebra.

Im Formalismus der Boole'schen Algebra würde (*) so dargestellt:

MUX(s,x0,x1) = (s × x0 × x1)         (**)
+ (s × x0‾ × x1)
+ (s‾ × x0 × x1)
+ (s‾ × x0 × x1‾)


Eine Boole'sche Algebra kann entweder als ,,komplementärer distributiver Verband`` (siehe Algebra-Vorlesung) definiert werden, oder wie folgt mit einem Axiomensystem.

Definition 3.2.1 (Boole'sche Algebra).   Eine Boole'sche Algebra ist ein Tripel (B, +, x), so dass B eine Menge ist und + und × zwei Operationen über B (d.h. Funktionen B2 →B) mit:
  1. Für jede Operation gibt es ein neutrales Element, notiert 0 für + und 1 für ×: für alle x ∈ B gilt 0+x = x+0 = x und 1×x = x×1 = x.
  2. Beide Operationen sind kommutativ:
    für alle x,y ∈ B gilt x + y = y + x und x × y = y × x.
  3. Jede Operation ist distributiv bezüglich der anderen:
    für alle x,y,z ∈ B gilt (x + y) × z = (x × z) + (y × z) und (x × y) + z = (x + z) × (y + z).
  4. Zu jedem Element x ∈ B gibt es ein komplementäres Element mit und .

Bemerkung:   Die Assoziativität von + und × folgt aus diesen Axiomen.

Diese Axiome gelten für das Tripel ({w,f},OR,AND), wobei f das neutrale Element für OR und w das neutrale Element für AND ist. Die Boole'sche Funktion NOT bildet jedes Element von {w,f} auf sein komplementäres Element ab. Die obige Vorgehensweise, die zur Darstellung (*) geführt hat, ergibt also immer eine Darstellung, für die die Rechenregeln der Boole'schen Algebra gelten.

Validierung