Letztens haben wir uns angeschaut, wie das binäre Zahlensystem funktioniert. Dieses bildet ja die Grundlage für jegliche Aktion, die ein Computer durchführen kann. In diesem und den folgenden Artikeln möchte ich daher erläutern, wie ein Computer ganz konkret mit Binärzahlen rechnen kann. Um das zu klären, muss man jedoch erst einmal ziemlich weit ausholen und bei den Grundlagen, die nicht einmal mehr in der Informatik liegen, anfangen – der Physik (konkret: der E-Lehre).
Vorneweg noch eine kurze Erklärung, warum dieser große thematische Umweg nötig ist:
Ganz allgemein gesagt basiert das Rechnen im Computer auf der Anwendung von logischen Operationen auf Bitketten. Diese logischen Operationen aber können ziemlich clever mit einfachsten elektronischen Bauelementen umgesetzt werden. Und wie das funktioniert, erkläre ich hier.
Die Grundlage für das Rechnen mit Bits bildet der Transistor. An dieses Bauelement erinnern sich die meisten sicherlich noch aus ihrer Schulzeit. Die ganzen komplizierten Details zu Aufbau, Funktionsweise und den verschiedenen Transistor-Arten sind hier gar nicht wichtig; es reicht, sich folgendes wieder ins Gedächtnis zu rufen:
Der Transistor ist ein Bauelement mit zumeist drei Anschlüssen. Je nach Transistortyp können diese Emitter, Kollektor und Basis oder Gate, Source und Drain heißen. Ganz kurz (und physikalisch sicher bedenklich) ausgedrückt, kann ein Transistor als Schalter benutzt werden. Das geschieht, indem an die Source-Drain-Anschlüsse Strom (bzw. Spannung) angelegt wird. Ob der Strom fließt, kann über einen weiteren (sehr schwachen) Steuerstrom am Gate-Anschluss beeinflusst werden.
Vereinfacht gesagt: liegt am Gate ein Steuerstrom an, so fließt ein Strom von Source zu Drain (oder andersherum, je nach Transistortyp). Daneben gibt es Transistoren, bei denen es möglich ist, dass Strom nur dann fließt, wenn am Gate kein Steuerstrom anliegt. All die Variationen bedeuten am Ende: über den Steuer-Anschluss (Base/Gate) lässt sich ein Strom zwischen den anderen beiden Anschlüssen an- und abschalten – der Transistor dient demzufolge als elektrischer Schalter.
Eine insbesondere für die Digitaltechnik wichtige Art von Transistoren sind die sogenannten Feldeffekttransistoren (FETs), und zwar hier insbesondere eine Unterart, die Metall-Oxid-Halbleiter-FETs (MOSFETs). Die physikalischen Details spielen hier keine allzu große Rolle, wichtig ist das Folgende: es werden zwei verschiedene Arten von MOSFETs unterschieden: p-Kanal und n-Kanal-Transistoren. Ein n-Kanal-MOSFET leitet den Strom zwischen Source und Drain dann, wenn am Gate gegenüber Source eine genügend große Spannung anliegt, ein p-Kanal-MOSFET leitet, wenn gegenüber Source eine genügend kleine Spannung anliegt. In der Standardvariante sperren beide Transistoren, wenn die Gate-Source-Spannung nahe 0 ist. Der Strom zwischen Source und Drain wird Versorgungsstrom (die Spannung entsprechend Versorgungsspannung), der Strom am Gate Steuerstrom (die Spannung analog dann Steuerspannung) genannt. Die üblichen Schaltsymbole für MOSFETs sind sicher noch bekannt:
MOSFETs werden in der Regel im Zusammenhang mit der CMOS-Technologie verwendet. Hinter diesem Namen verbirgt sich allgemein gesagt das Vorgehen, dass in einer Schaltung n-Kanal- und p-Kanal-MOSFETs gleichzeitig benutzt werden. Ein typisches Anwendungsszenario hierfür ist der sogenannte Inverter, der aus einem p-Kanal- und einem n-Kanal-MOSFET besteht (siehe folgendes Bild). Liegt am Eingang A eine niedrige Spannung an, so leitet der obere Transistor und der untere sperrt. Ausgang B ist demzufolge mit der Versorgungsspannung verbunden, er hat hohes Potential. Liegt an A dagegen eine hohe Spannung an, ist es genau umgekehrt und B ist mit der Masse verbunden, hat also niedriges Potential.
Wie hilft uns das nun aber für die Computer? Ganz einfach: die Begriffe “hohes Potential” und “niedriges Potential” können auch ganz binär mit “1” und “0” bezeichnet werden. Liegt an einem Eingang eine hohe Spannung an, so sagt man, dass “1” anliegt; liegt eine niedrige Spannung an, spricht man dementsprechend von “0”. Damit lassen sich nun die verschiedensten logischen Operationen umsetzen; hier noch einmal zur Erinnerung die Wertetabellen für einige ausgewählte Operationen:
Die Schaltung für die Invertierung (erste Tabelle) haben wir ja oben schon gesehen. Eine derartige Schaltung wird auch Gatter genannt, oben ist also ein Inverter-Gatter abgebildet.
Die UND-Operation (zweite Tabelle, auch AND genannt) lässt sich auf die gleiche Weise darstellen, ist nur ein wenig komplizierter. Zuerst das Schaltbild des AND-Gatters:
Keine Angst – es sieht komplizierter aus, als es ist. Das Ganze funktioniert folgendermaßen: liegt an beiden Eingängen A und B jeweils eine 1 an, so sperren T1 und T2, T3 und T4 leiten dagegen. Als Resultat davon liegt an T5 und T6 jeweils eine niedrige Spannung an (da sie über T3 und T4 mit der Masse verbunden sind); T5 leitet also, T6 sperrt. Damit ist C mit der Versorgungsspannung verbunden, der Ausgang hat also hohes Potential, sprich: 1. Liegt dagegen zum Beispiel an Eingang A eine 0 an, so leitet T1, T3 sperrt. Im Resultat liegt an T5 und T6 eine hohe Spannung an; T5 sperrt, T6 leitet, der Ausgang C ist also mit Masse verbunden, er hat niedriges Potential, also 0. Ähnliches gilt für die anderen möglichen Belegungen von A und B. Für die Verwendung in größeren Schaltungen kann so ein Gatter übrigens zusammengefasst und als einzelnes Bauelement dargestellt werden. Das sieht dann so aus:
Um sich bei der Beschreibung von größeren Schaltungen den oft benötigten Inverter zu sparen, greift man übrigens auf einen Trick zurück. Anstatt ein eigenes Gatter für den Inverter zu zeichnen (welches es natürlich auch gibt), wird einfach der Eingang oder Ausgang des Gatters, wo ein Wert invertiert werden soll, mit einem Kreis versehen. Anstelle des Kreises muss man sich also ein unmittelbar vor- oder nachgeschaltetes Inverter-Gatter vorstellen. Ein Beispiel hierfür ist das folgende Bild, in welchem der Wert des zweiten Eingangs vom AND-Gatter vor Verwendung invertiert wird:
Wir haben nun also eine Möglichkeit, logische Operationen mit Hilfe einfacher elektronischer Bauteile darzustellen (jede logische Operation kann mit einer entsprechenden Schaltung dargestellt werden). Wie man damit nun rechnen kann, werde ich im nächsten Artikel anfangen, darzulegen.
Kommentare (29)