Anmelden | Registrieren

ALU Registeradressierung

Aktuell hat unser 8-Bit-Computer lediglich 2 8-Bit Register. Evtl. macht es jedoch Sinn, mehr als diese 2 zu haben.

Daher sollte unsere ALU die Möglichkeit haben, sich für beide Rechenparameter das Register auszusuchen.

Also z.B. addiere Register A zu Register C.
Analog dazu die Subtraktion.

Also macht unsere ALU: Nimm das erste Register, addiere oder subtrahiere das zweite Register und geb das Ergenis auf den Datenbus. 

 

Fangen wir mit der Logik für die Auswahl eines Registers an.

Wir haben 8 Bit zur Verfügung, damit könnten wir 256 Register ansprechen. Mir ist jedoch keine CPU bekannt, die so viele Register hat. Ebenso müsste dann unsere CPU Instruktion 3 Bytes lang sein. Das erste Byte für das Kommando: addiere, das zweite Byte für Auswahl des ersten Registers, das dritte für das dritte Register.
Für die Registerauswahl reichen aber auch 4 Bit, das macht 16 Register. Die können beide in ein 8 Bit Wert geschrieben werden und in einem Rutsch gelesen und verarbeitet werden.

Wie bräuchten hier einen sogenannten Multiplexer, der aus 4 Bit eines von 16 Ausgangsbits aktiviert.

Leider habe ich keine fertigen Einzelbausteine in verwendbarer Bauform gefunden, deswegen nehmen wir 2 mal einen 3 zu 8 Multiplexer mit enable Pin (74XX238). Der 74XX238 hat 3 enable Eingänge, 2 invertierte, 1 normaler. D.h. damit der Chip die Ausgänge auf High setzt, müssen die 2 negierten Enable Pins auf 0 sein und der normale auf high. Hier können wir unseren 4. Signal nutzen. Auf dem einem Chip legen wir die Leitung auf einen negierten Enable, bei dem anderen auf dem normalen Enable. So wählt Signal 4 einen der beiden Chips aus.

 

Da wir das zweimal benötigen, brauchen wir also 4 ICs.

Unsere CPU kann nun über 8 Steuerleitungen jeweils ein entsprechendes Register für beide Operanden freischalten.

 

Aus rein praktischen Gründen, falls ich (und der der geneigte Leser) den Rechner in echt bauen will, gehe ich nun aber einen leicht anderen Schritt, der erstmal mehr Aufwand bedeutet, aber danach eine schöne Erweitbarkeit ermöglicht.

Mehr dazu in dem Artikel "Register Teil 3".

Unser Algorithmus glaubt, diese Artikel sind relevant: