Design
Im folgenden wird im Rahmen eines Projektes ein funktionsfähiger 8-Bit Computer mit einem Mos 6502 Prozessor nach dem Vorbild von Ben Eater realisiert. Dabei werde ich die Komponenten und ihre Interaktionen im Hinblick auf die Eingabe und Ausgabe von Daten visuell nachvollziehbar darstellen. Das Ziel ist es ein rudimentäres Verständnis von der Funktion eines Computers in seiner einfachsten Ausführung zu gewinnen.
Komponenten
Damit ein Computer funktionsfähig ist, brauchen wir einen Prozessor (hier 6502), einen Festwertspeicher (ROM) und einen flüchtigen Speicher (RAM), die jeweils an Masse (-) und Strom (+) angeschlossen sind und durch einen Taktgeber zeitlich synchronisiert werden. In diesem Fall durchfließt der Strom den Prozessor in 1000 Zyklen pro Sekunde, was einem Megahertz entspricht. Diese Angabe lässt sich auch als Anzahl von Operationen verstehen, die der Prozessor pro Sekunde ausführen kann. Der Prozessor bezieht seine Daten aus dem Speicher. Diese sind dort in Adressen angeordnet. In unserem Fall kann der Prozessor bis zu 64000 Adressen im Speicher ansprechen.
Was sind Daten?
Damit Informationen vom Computer verstanden bzw. ausgelesen werden können, müssen sie in Ketten von Nullen und Einsen kodiert werden. Bei einem 8-Bit-Computer ist eine solche Kette 8 Stellen lang. Null entspricht dabei auf physischer Ebene einem geladenen Transistor, während Eins einem entladenen Transistor entspricht. Die Ketten erlangen Bedeutung, indem sie ausgelesen und interpretiert werden. Bestimmte vordefinierte Ketten sind dabei Anweisungen, die vom Prozessor verstanden werden. Mithilfe dieser Anweisungen werden alle Operationen ausgeführt. Es gibt auch Zeichenketten, die der Prozessor nicht versteht. Sie können abgespeichert und daher wiedererkannt werden. Der 6502 kann bis zu 2000 solcher Ketten pro Sekunde auslesen und entsprechend Operationen ausführen. Die so kodierten Informationen werden über 8 Datenkabel zwischen dem Speicher und dem Prozessor übertragen. Die Kabel führen entweder Strom oder keinen Strom, was einer Null oder einer Eins entspricht.
Was sind Adressen?
Damit der Prozessor weiß, auf welche Daten er im Speicher zugreifen soll, müssen sie in Adressen abgelegt werden. Jede Adresse wird durch eine spezifische Kombination von Nullen und Einsen angesprochen. Damit 64000 (216) Adressen angesprochen werden können, sind 16 Adresskabel notwendig, die jeweils Strom oder keinen Strom transportieren. Bei unserer ersten Grafik sind die Datenkabel in Blau und die Adresskabel in Grün dargestellt.
Kombinationen
Bei einer 8-stelligen Kette von Einsen und Nullen lassen sich 256 (28) verschiedene Zustände kombinieren. Sie können jeweils eine Bedeutung annehmen und lassen sich somit als Informationen voneinander abgrenzen. In einem Bite lassen sich also z.B. bis zu 256 Farben, die jeweils einer Kombination zugeordnet sind, voneinander unterscheiden. Wird also ein Bite aus dem Speicher augelesen, kann er als Pixel eindeutig einer Farbe, die woanders im Speicher liegt, zugeordnet sein und als diese dargestellt werden.