Digitaltechnik
Die Digitaltechnik ist ein Teilgebiet der technischen Informatik, in dem die Verarbeitung von Signalen anhand der Unterscheidung zwischen zwei Zuständen erfolgt, wodurch feste, endliche Werte gewährleistet sind und die eine Berechnung erheblich vereinfachen. Der Begriff entstammt vom lateinischen Wort "Digitus", der auf einen Finger deutet und dadurch angibt, dass die Verarbeitung mit endlichen, mit dem Finger abzählbaren Werten durchgeführt wird.
Im Unterschied dazu gibt es die Analogtechnik, in der die Größen innerhalb eines Definitionsbereichs unendliche Werte annehmen können. Die Digitaltechnik basiert auf den zwei Zuständen An und Aus, die auch als Signal 1 oder 0 bezeichnet werden. Innerhalb des Bereichs zwischen 0 und 1 gibt es zwar auch Werte. Diese sind jedoch nicht relevant. Ein Analogwert kann dagegen jeden beliebigen Wert innerhalb des Definitionsbereichs annehmen und das erschwert die Durchführung von Berechnungen erheblich.
Da mit der Digitaltechnik eine Speicherung und Berechnung wesentlich einfacher durchgeführt wird, werden immer mehr Geräte umgestellt. Außerdem ist eine vereinfachte Steuerung der einzelnen Geräte möglich, da man gezielt Signale senden kann, um eine bestimmte Aufgabe durchführen zu lassen. Ein typisches Beispiel hierfür sind die Loks auf den Gleisen einer Modelleisenbahn, die alle dieselbe Spannung erhalten. Mit der Analogtechnik würden alle Loks gleichzeitig fahren oder stillstehen. Mit der Digitaltechnik kann man dagegen gezielt einzelne Loks ansprechen.
Ein Computer verarbeitet systembedingt Digitalsignale, da nur ausgewertet werden kann, ob eine Spannung anliegt oder nicht bzw. innerhalb eines Definitionsbereichs einen Wert über- oder unterschreitet. Diese zwei Zustände werden auch häufig bezeichnet als:
- HIGH und LOW
- TRUE und FALSE
- AN und AUS
- 1 und 0
Schaltwerttabellen in der Digitaltechnik
Als Werte werden am häufigsten 1
und 0
verwendet. In der Programmierung arbeitet man auch oft mit TRUE
und FALSE
. In beiden Fällen ist jedoch dasselbe gemeint. Man drückt aus, ob eine Aussage wahr ist oder nicht. Wenn man z.B. in einer Programmfunktion abfragt, ob eine Taste gedrückt wurde, dann liefert der Rückgabewert der Abfrage eine 1
oder 0
, ähnlich wie bei einem Lichtschalter, der zwei Zustände haben kann.
Die Informationseinheit in der EDV, in der die beiden Zustände (0
oder 1
) gespeichert werden können, nennt man bit. Es ist die Abkürzung für binary digit. und ist somit die kleinste Einheit zum Speichern von Informationen.
Man könnte einen Rechner beispielsweise so programmieren, dass eine bestimmte Bit-Stelle ausgewertet wird und abhängig vom Ergebnis soll am Bildschirm ein Zeichen dargestellt werden, z.B. Y
bei einem Signal 1
und N
bei 0
. Das wäre natürlich ein sehr kleines Programm mit einem sehr eingeschränkten Einsatzbereich und schnell würde der Wunsch entstehen, noch mehr Zeichen darzustellen. Die Lösung besteht darin, mehrere bits zu einer größeren Informationseinheit zusammenzufassen. Wenn man beispielsweise 2 Bits zusammenfasst und auswertet, dann kann man in der Einheit 4 verschiedene Informationen speichern. Das wären die möglichen Werte 00
, 01
, 10
und 11
. Das Programm könnte erweitert werden und abhängig vom Wertepaar könnte man am Bildschirm 4 Buchstaben anzeigen lassen.
- N bei 00
- Y bei 01
- A bei 10
- B bei 11
Zu einer besseren Veranschaulichung wird die Logik einer Funktion wie auf der Abbildung in Schaltwerttabellen dargestellt, die auch Wahrheitstabellen genannt werden. Dabei werden auf der linken Seite die Eingänge (die abgefragte Informationseinheit) und auf der rechten Seite die Ausgänge aufgelistet. Übertragen auf das Beispiel würden die beiden Bit-Stellen links aufgelistet und rechts die anzuzeigenden Buchstaben. So kann man die Logik der Schaltfunktion in tabellarischer Form darstellen und ablesen.
Bits
Eine wichtige Erkenntnis hierbei ist, dass sobald die Informationseinheit mit einem Bit erweitert wird, die Anzahl der möglichen Informationen sich verdoppelt. Man fügt zu der Einheit eine weitere Bit-Stelle hinzu und erhält dadurch die doppelte Anzahl an Möglichkeiten. Mit einer Einheit, die aus drei Bits besteht, könnte man bereits 8 Zeichen am Bildschirm anzeigen lassen.
- 1 Bit:
0
oder1
- 2 Bits:
00
,01
,10
oder11
- 3 Bits:
000
,001
,010
,011
,100
,101
,110
oder111
Diese Liste ließe sich um weitere Bits erweitern und je mehr Bits zu einer Einheit zusammengefasst werden, umso mehr unterschiedliche Informationen kann man ihnen zuordnen. Nachteilig ist der erhöhte Speicherbedarf und die erhöhte Rechenintensität des Prozessors, da größere Datenmengen verarbeitet werden. Die Zuordnung der Informationen aus einer Einheit (Bitmuster) zu einem Zeichen nennt man Zeichenkodierung. Die zur Verfügung stehenden Zeichen werden in Zeichensätzen festgelegt. Sie stellen die möglichen Zeichen dar, die den verschiedenen Bitmustern zugeordnet werden können. Die Anzahl der Zeichen ist somit von der Anzahl der Bits abhängig, die für einen Zeichensatz verwendet wird.
In den frühen Anfangsjahren der EDV-Technologie waren Speicher sehr rar und teuer und die Prozessoren hatten auch nicht die Rechenleistung der heutigen Zeit. Unter anderem wurden zunächst 7 Bits zu einer Einheit zusammengefasst und damit konnten 128 verschiedene Bitmuster zu Informationen bzw. Zeichen zugeordnet werden, die im ASCII-Zeichensatz definiert sind. Darin sind viele Steuerzeichen enthalten, die z.B. notwendig waren, um die Abwärtskompatibilität zu Fernschreibern zu gewährleisten, sodass die druckbare Menge an unterschiedlichen Zeichen auf 95 begrenzt ist.
Der Bedarf an zusätzlichen Zeichen war jedoch höher und man erweiterte die Einheit auf 8 Bits. Damit können 256 verschiedene Bitmuster zu druckbaren Zeichen oder nicht druckbaren Steuerzeichen zugeordnet werden. Die mit dem zusätzlichen Bit hinzugekommenen 128 Möglichkeiten sollten jedoch so genutzt werden, dass man ihnen wesentlich mehr Zeichen zuordnen kann und es wurden Zeichensätze mit regionalen Ausprägungen festgelegt. Beispielsweise wurde das zusätzliche Bit im arabischen Raum für andere Zeichen verwendet als im westeuropäischen Raum. Beim Austausch von Daten musste angegeben werden, welcher Zeichensatz verwendet wird und so konnte man in Europa ausländische Texte lesen und umgekehrt. Diese 8-Bit Zeichensätze werden häufig ANSI-Zeichensätze genannt, obwohl es ihn nicht gibt, da das American National Standards Institute lediglich bei den Entwürfen für die Zeichensätze mitgewirkt hat, einen eigenen Standard jedoch nicht herausbrachte.
Bytes
Lange Zeit galt die Zuordnung von 8 Bits zu einem Zeichen. Außerdem konnte eine CPU in einer einzelnen Instruktion wenigstens 8 Bits verarbeiten. Daher wurden 8 Bits zu einer Grundeinheit in der EDV, die Byte genannt wurde. Die Entwicklung ging weiter, sodass heutzutage 32- oder 64-Bit Systeme den Standard darstellen. Dadurch ist es möglich geworden, die Komplexität der Programme im Gegensatz zu früheren Zeiten erheblich zu erweitern. Trotzdem blieben 8 Bits ein Byte, da die nächsten Prozessorgenerationen abwärtskompatibel waren, sodass man darauf auch 8-Bit Programme verwenden konnte. Außerdem würde es zu einer Konfusion führen, wenn jeder eine andere Anzahl an Bits meint, wenn von einem Byte gesprochen wird.
Bis auf einige Sonderfälle wurde außerdem die Adressierung von Bytes beibehalten. Wenn beispielsweise zum Speichern einer Information nur das Bitmuster 11 10100011
benötigt wird, werden im Speicher trotzdem zwei vollständige Bytes (16 Bits) in Anspruch genommen. Die führenden sechs Bit-Adressen werden dabei mit 0
aufgefüllt, sodass im Speicher das Bitmuster 00000011 10100011
abgelegt wird. Dadurch hat man eine einigermaßen effiziente Speicherverwaltung und die Adressierung muss nicht auf Bit-Ebene erfolgen.
Die Zuordnung von einem Zeichen zu einem Byte gilt mittlerweile nicht mehr. Den Standard der Zeichenkodierung stellen Unicode-Zeichensätze wie UTF-8. Hierbei ist die Besonderheit, dass die Anzahl der Bit-Stellen variabel und somit unterschiedlich ist. Für manche Zeichen wird weiterhin nur 1 Byte benötigt, bei manch anderen Zeichen wird wiederum mit 4 Bytes gearbeitet. Da die Speicherbelegung immer größere Ausmaße annahm, werden die Bytes in größeren Einheiten wie Mega oder Giga angegeben. Die Datenmengen und Bezeichnungen hierfür werden auf der Seite Bits und Bytes näher erläutert.
Digitale Grundverknüpfungen
Die Verarbeitung von digitalen Signalen erfolgt in digitalen Grundfunktionen, die in den Prozessoren eingebaut sind. Andere Begriffe dafür sind Verknüpfungen oder Gatter. Die folgenden Grundfunktionen sind in einer CPU enthalten.
- NICHT-Verknüpfung (Negation, NOT)
- UND-Verknüpfung (AND)
- ODER-Verknüpfung (OR)
Alle Berechnungen lassen sich auf diese drei Grundfunktionen zurückführen. Zum besseren Verständnis ein vergleichbares Beispiel. Wenn man über eine Tastatur den Großbuchstaben A eingibt, dann sind hierfür 2 Tastendrücke notwendig. Einmal die UMSCHALT-Taste und einmal die Taste für das Zeichen A.
Das wäre im übertragenen Sinne bereits eine UND-Verknüpfung, da für die Eingabe des Großbuchstabens beide Tastendrücke notwendig sind. Die UND-Verknüpfung wird durch den Baustein in der Mitte mit dem Zeichen & signalisiert. Auf der linken Seite werden die Eingänge aufgeführt. Bezogen auf das Beispiel wären das die beiden Tastendrücke. Der Ausgang führt das Signal 1, wenn die Bedingungen an beiden Eingängen erfüllt sind.
Die Darstellung der Grundverknüpfungen
Seit einiger Zeit werden die Grundverknüpfungen in Programmen meistens in Kastenform angezeigt. Eine ODER-Verküpfung wird mit dem Zeichen > symbolisiert und die UND-Verknüpfung mit &. Die NICHT-Verknüpfung kann als einziger Baustein nur einen Eingang besitzen und die Negation wird mit einem runden Kreis am Ausgang symbolisiert.
Die Kastenform war früher nicht geläufig. Es wurden stattdessen halbrunde Symbole für die Darstellung verwendet. Die Unterscheidung zwischen UND und ODER war dadurch ersichtlich, dass beim ODER-Baustein die Eingänge in den Baustein hinein ragten und beim ODER nicht. Besonders Elektroniker mögen diese Darstellung.
Die Darstellung der Gatter ist nicht einheitlich. Es kann sein, dass das Zeichen > bei der ODER-Verknüpfung einen Unterstrich enthält. In manchen Fällen sind statt der Zeichen die Wörter AND, OR und NOT auf den Bausteinen angebracht. Häufig ist der Kreis am Ausgang der Negation nicht ausgefüllt und die Wahrscheinlichkeit ist sehr groß, dass man im Laufe der Zeit weitere Varianten zu sehen bekommt, die alle ihre Eigenheiten aufweisen, jedoch im Grunde dasselbe meinen.
Schaltwerttabellen der Grundfunktionen
Die Schaltwerttabellen der drei Grundfunktionen sind nachfolgend abgebildet. Daraus kann man ablesen, wann die Ausgänge das Signal 1 führen und wann 0. Bei der NICHT-Verknüpfung ist der Ausgang 1
, wenn am Eingang 0
anliegt und umgekehrt.
Bei der UND-Verknüpfung führt der Ausgang das Signal 1, wenn an beiden Eingängen das Signal 1 anliegt.
Bei der ODER-Verknüpfung führt der Ausgang das Signal 1, wenn an einem der beiden Eingänge das Signal 1 anliegt.
Darstellung der Schaltfunktion in algebraischer Form
Neben Wahrheitstabellen werden für die Darstellung von Schaltfunktionen algebraische Ausdrücke verwendet. Sie sind aufgebaut wie mathematische Formeln und die Logik der Funktion kann man anhand der Zeichen sowie der Zusammensetzung des Ausdrucks erkennen. Die verwendeten Zeichen sind dabei nicht einheitlich. Es werden entweder Zeichen der booleschen Algebra oder mathematische Zeichen verwendet.
Verwendete mathematische Zeichen:
- Für ein NICHT: ‾ (Überstrich)
- Für ein UND: · (Multiplikationszeichen)
- Für ein ODER: + (Additionszeichen)
Verwendete Zeichen der booleschen Algebra:
- Für ein NICHT: ¬
- Für ein UND: ∧
- Für ein ODER: ∨
Da das Zeichen ¬ die Lesbarkeit einer Schaltfunktion erschwert, wird in der Schreibweise der booleschen Algebra häufig ein Überstrich ‾ statt ¬ verwendet. Die drei Grundfunktionen würden in mathematischer Form wie folgt geschrieben werden.
- NICHT-Verknüpfung: E1 = A1
- UND-Verknüpfung: E1 · E2 = A1
- ODER-Verknüpfung: E1 + E2 = A1
Bei der Verwendung von Zeichen aus der booleschen Algebra werden die Grundfunktionen wie folgt geschrieben.
- NICHT-Verknüpfung: E1 = ¬A1
- UND-Verknüpfung: E1 ∧ E2 = A1
- ODER-Verknüpfung: E1 ∨ E2 = A1
Welche Zeichen man verwendet, spielt für die Logik der Funktion keine Rolle. Die Bezeichnungen an den Ein- und Ausgängen (E1, E2, A1) sind Variablen für Speicheradressen und werden häufig anders benannt. Für die Eingänge verwendet man neben E häufig S oder I. Für den Ausgang ist neben A auch Q geläufig.
Zusammengesetzte Verknüpfungen
Die Grundverknüpfungen werden in der Regel miteinander kombiniert, sodass die Logik der Schaltung verändert wird. Beispielsweise kann man eine UND- mit einer NICHT-Verknüpfung kombinieren und erhält dadurch eine sogenannte NAND-Verknüpfung (NICHT-UND). Da solch zusammengesetzte Schaltfunktionen sehr häufig verwendet werden, haben sie eigene Schaltzeichen bekommen. Mit den folgenden Schaltfunktionen werden die Grundverknüpfungen erweitert.
- NAND
- NOR
- XOR
- XNOR
Die NAND-Verknüpfung ist eine Zusammensetzung aus UND + NICHT. Dadurch wird die Logik der UND-Verknüpfung umgekehrt. Wenn an beiden Eingängen das Signal 1 anliegt, führt der Ausgang eine 0, ansonsten eine 1.
Wenn man ODER mit NICHT zusammensetzt, erhält man eine NOR-Verknüpfung. Hierbei wird die Logik des ODER-Gatters umgekehrt. Der Ausgang nur dann das Signal 1, wenn an beiden Eingängen eine 0 anliegt.
Die XOR-Verknüpfung wird aus mehreren NAND-Gattern zusammengesetzt und steht für Exklusiv-ODER. Das ist eine spezielle Funktion, mit der ein Ausgang das Signal 1 führt, wenn an einem Eingang exklusiv das Signal 1 anliegt. Das bedeutet, wenn an beiden Eingängen eine 1 anliegt, ist die Bedingung nicht gegeben.
Negiert man den Ausgang eines XOR-Gatters, erhält man eine XNOR-Verknüpfung. Hierbei wird die Logik des XOR-Gatters umgekehrt, sodass der Ausgang eine 1 führt, wenn entweder an beiden Eingängen eine 0 oder eine 1 anliegt.
Das Verhalten der Gatter kann auf der Seite Simulator für Grundverknüpfungen direkt im Browser getestet werden. Die Simulationen sind in JavaScript erstellt und die Unterstützung hierfür ist in den meisten Browsern aktiviert.