A4/Beispiel Der Schaltkreis

Aus QuaNTH
Wechseln zu: Navigation, Suche

A4

Rechnen
Einführung

Lektionen


Abb. 2 Einige elementare Gatter mit ihren zugehörigen Wertetabellen.
Abb. 3 Die Konstruktion eines AND Gatters aus NOT und OR.


Als Beispiel betrachten wir nun ein einfaches Schema für die Konstruktion von Rechenmaschinen: den Schaltkreis. Wir beginnen damit, "kleine" Schaltkreise zu beschreiben, also solche, die von der Folgerung einer universellen Maschine noch weit entfernt sind. Danach beschreiben wir die Idee, wie man eine universelle Maschine aus solchen Schaltkreisen aufbauen kann.

Definition

Ein Schaltkreis ist definiert durch eine Anzahl von Leitungen und eine Anzahl von so genannten Gattern, die eine Änderung der Signale in den Leitungen verursachen. Jede solche Leitung trägt üblicherweise ein Bit an Information, kann sich also in zwei Zuständen befinden, die wir mit 0 und 1 bezeichnen. Denken wir an einen elektrischen Schaltkreis, so werden die beiden Zustände physikalisch durch unterschiedliche Spannungen auf den Leitungen dargestellt.

Ein Gatter ist definiert über eine Anzahl an Eingangs- und Ausgangsleitungen, sowie der Abbildung, die durch das Gatter vermittelt wird. Das einfachste Gatter besitzt nur eine Eingangsleitung und eine Ausgangsleitung. Hiervon kann es dann auch nur zwei unterschiedliche geben: das neutrale Gatter, welches den Zustand 0 auf 0 und 1 auf 1 abbildet und das NOT-Gatter (NICHT-Gatter), welches 0 auf 1 und 1 auf 0 abbildet. Das neutrale Gatter ist natürlich äquivalent zum Nichtstun, somit zu "kein Gatter" und wird daher in der Beschreibung von Schaltkreisen ignoriert.

Elementare Gatter

Bereits mehr Möglichkeiten gibt es, wenn wir Gatter mit zwei Eingangsleitungen und einer Ausgangsleitung betrachten. Ein solches Gatter hat demnach vier mögliche Eingangskonfigurationen und zwei Ausgangskonfigurationen. Das Verhalten des Gatters ist vollständig definiert, wenn die Ausgabe für jede Eingabe bekannt ist und somit gibt es schon 16 verschiedene Gatter mit zwei Eingängen und einem Ausgang. Ein Beispiel für ein solches Gatter ist das AND-Gatter (UND-Gatter). Bei diesem Gatter ist der Ausgang 1, wenn beide Eingänge 1 sind, und sonst 0. Ein weiteres Beispiel ist das OR-Gatter (ODER-Gatter), welches 1 ausgibt, falls mindestens einer der Eingänge 1 ist. Wir haben beide Gatter mit ihren Konfigurationen in Abb. 2 skizziert.


Hierbei ist zu beachten, dass sich einige der Gatter aus anderen zusammensetzen lassen. Möchte man beispielsweise ein AND-Gatter konstruieren so kann man dies aus einem OR-Gatter und drei NOT-Gattern zusammensetzen. Dies geschieht gemäß der Regel A AND B = NOT( NOT A OR NOT B). Wir haben den Schaltplan in Abb. 3 skizziert. In der Informatik bzw. Mathematik heißt der hier verwendete Formalismus auch "Bool'sche Logik".

Universelle Sätze

Auch größere Gatter, also solche mit mehr Ein- und Ausgängen, können aus einfachen Gattern zusammengesetzt werden. Ein fester Satz von Gattern, der es erlaubt, jedes andere Gatter hieraus zusammenzusetzen, nennt man einen "universellen Satz". Ein Beispiel für einen universellen Satz ist das AND zusammen mit dem NOT, also ein Satz mit zwei Gattern. Es gibt auch universelle Sätze mit nur einem Gatter, wie das NAND-Gatter, welches wie ein NICHT UND wirkt. Je nach Implementierung kann ein Schaltkreis also immer aus nur wenigen Bausteinen zusammengesetzt werden.

Programmierung eines universellen Rechners

Damit haben wir die Bausteine zusammen, die wir benötigen, um einen universellen Rechner zu bauen. Dieser muss in der Lage sein, ein von durch den Benutzer gegebenes Programm umzusetzen.

Aus der Sicht des Anwenders ist es hierbei wünschenswert, wenn er sich nicht mit den Details der Implementierung, also der Lage jedes einzelnen Gatters, auskennen muss. Stattdessen soll das Programm abstrakt als Folge von Befehlen geschrieben werden, um dann vom Rechner selber in eine Form gebracht zu werden, die er verarbeiten kann. Dieser Schritt wird auch als "Compilierung" eines Programms bezeichnet. Im Gatterbild bedeutet dies, dass das Programm vom Compiler in eine Folge von Gattern übersetzt wird, die dann im Computer realisiert werden. Wenn der Computer einen universellen Satz von Gattern nutzt, kann auf diese Weise jedes Programm implementiert werden.

In heutigen Rechnern sind eine Reihe der üblichen mathematischen Operationen schon fest in der Hardware verankert. Dies wird gemacht, da der Computer sonst zu viel Zeit für das Compilieren derselben Befehle aufwenden würde. Hierdurch sind Bausteine die im obigen Sinne frei programmierbar sind, also bei denen die einzelnen Gatter verschaltet werden können, in realen Rechnern selten geworden.

Weiterhin ist, wie bereits oben bemerkt, jeder Rechner nur endlich groß. Daher ist der Begriff "universell" immer nur im Bezug auf die Größe des Speichers zu verstehen.