Das ALU-Board verschaltet folgende Bestandteile der Recheneinheit der CPU miteinander:
Weiterhin enthält es die Carry-Logik mit der Richtungssteuerung der ALU-Übertragsketten, eine Flageinheit sowie den Datenbusport. Mit diesem Board ist der Aufbau der Recheneinheit komplett abgeschlossen. Die gesamte Schaltung wurde auf einer einseitigen Platine 200mmx150mm aufgebaut. Die Verbindung zu den Platinen der Die ALU erfolgt über Pfostensteckverbinder.
Auf dem folgenden Bild ist die Schaltung des ALU-Boards dargestellt.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das ALU-Board verbindet alle Baugruppen der Recheneinheit der CPU miteinander.
Oben im Schaltbild verläuft der interne Datenbus der CPU, der mit den Datenbusleitungen der ALU, der Arbeitsregister und den beiden Ausgaberegistern verbunden ist.
Der Steckverbinder P1 führt den internen Datenbus vom ALU-Board zu den anderen Komponenten der CPU.
Die Relais REL15 und REL16 bilden den Datenbusport für den externen Datenbus der CPU, der am Pfostenstecker P3 herausgeführt wird.
Über die Steuerleitung REL15[16], REL16[16] kann der interne Datenbus mit dem externen Datenbus verbunden werden, sodass Lese- und Schreiboperationen mit externen Speichern etc. ausgeführt werden können.
Die Steuerleitung wird durch die Befehlsdecodierung über der Pfostenstecker P6 angesteuert.
Die Steuerleitungen der Arbeitsregister werden ebenfalls über Stecker P6 zur Befehlsdecodierung geführt.
Die beiden 8-bit-Ausgaberegister bilden den externen Adressbus der CPU. Sie können je ein Datenbyte vom internen Datenbus lesen, beliebig lange zwischenspeichern und am Pfostenstecker P4 ausgeben.
Die Steuerleitungen der Ausgaberegister werden ebenfalls über Stecker P6 zur Befehlsdecodierung geführt.
Außer beim Datenbusport handelt es sich bis hier also im Wesentlichen nur um eine Verdrahtung der einzelnen Baugruppen der Recheneinheit.
Die ALU wird auf dem Board nun noch mit dem Flagregister verschaltet.
Diese hat die Aufgabe, den Zustand der ALU-Flags (C,Z,N) nach einer Rechenoperation zwischenzuspeichern und die ALU zu Begin von Schiebe- oder Arithmetikoperationen mit dem CARRY-Signal vorhergehender Operationen zu versorgen.
Dadurch ist es möglich, Verschiebungen, Rotationen, Additionen und Subtraktionen auf Datenworte mit mehr als einem Byte auszudehnen.
Eine wesentliche Aufgabe erfüllt dabei die CARRY-Einheit.
Die Flageinheit dient der Auswahl eines Flagzustandes für bedingte Sprungbefehle.
Die CARRY-Einheit besteht aus den Relais REL1, REL2 und REL3. Die Relais REL1 und REL2 bilden einen 1-aus-4-Decoder, mit dem festgelegt werden kann, welche CARRY-Information die ALU erhalten soll. Je nach der Binärkombination an den Relaiseingängen REL1[2] und REL2[1] wird der Eingang der Übertragsketten der ALU mit unterschiedlichen CARRY-Signalen versorgt. Das Relais REL3 legt nun fest, welche Übertragskette in der ALU benutzt wird. Es verbindet die CARRY-Einheit mit dem Eingang UIL oder UIR der ALU, steuert über EUOL oder EUOR die Aktivierung der entsprechenden ALU-Übertragskette und verbindet den CIN Eingang des Flagregister mit dem entsprechenden Ausgang UOL oder UOR der ALU. Bei abgefallenem Relais REL3 ist damit eie Übertragskette nach rechts aktiv, wie sie z.B. für Additionen benutzt wird und bei angezogenem Relais REL3 ist es die Kette nach links.
| Relaiseingänge | Eingangsleitungen der ALU-Übertragsketten | ||||
| REL1[2] | REL2[1] | REL3[1] | UIL | UIR | Bemerkungen |
| 0 | 0 | 0 | X | 0 | Die Übertragskette rechts ist aktiv, der Carryeingang ist 0 |
| 0 | 0 | 1 | 0 | X | Die Übertragskette links ist aktiv, der Carryeingang ist 0 |
| 0 | 1 | 0 | X | /C' | Die Übertragskette rechts ist aktiv, der Carryeingang ist mit dem invertierten CARRY der letzten ALU-Operation belegt |
| 0 | 1 | 1 | /C' | X | Die Übertragskette links ist aktiv, der Carryeingang ist mit dem invertierten CARRY der letzten ALU-Operation belegt |
| 1 | 0 | 0 | X | C' | Die Übertragskette rechts ist aktiv, der Carryeingang ist mit dem CARRY der letzten ALU-Operation belegt |
| 1 | 0 | 1 | C' | X | Die Übertragskette links ist aktiv, der Carryeingang ist mit dem CARRY der letzten ALU-Operation belegt |
| 1 | 1 | 0 | X | 1 | Die Übertragskette rechts ist aktiv, der Carryeingang ist 1 |
| 1 | 1 | 1 | 1 | X | Die Übertragskette links ist aktiv, der Carryeingang ist 1 |
Das Flagregister ist mit seinen Eingängen SIN und ZIN mit den entsprechenden Leitungen der ALU verbunden, das CIN-Signal erhält sie von der CARRY-Einheit. An den Ausgängen des Flagregisters übernehmen die Relais REL4, REL6 und REL10 die Invertierung der gespeicherten Flagzustände CARRY, SIGNUM und ZERO. Im Flagregister wird außerdem noch das OVERFLOW-Signal generiert, das nicht invertiert wird. Diese Signale werden nun zur Erzeugung eines Steuersignals für Sprungoperationen benutzt. Die Signale C', /C', S', /S', Z', /Z', O', 1 werden dazu an einen 1-aus-8-Decoder geführt, der aus den Relais REL7, REL8 und REL9 gebildet wird. Durch entsprechende Ansteuerund der Relais wird nun erreicht, dass eines der acht Signale an die Sprungeinheit der Ablaufsteuerung geführt wird und damit unterschiedliche Sprünge ausgelöst werden können. Das Relais REL5 dient nur der Aktivierung des Decoders, da er nur bei Sprungbefehlen benutzt wird. Die Leitung REL9[3] führt zur Ablaufsteuerung, die bei 1 einen Sprung auslöst und bei 0 nicht. Folgende Sprünge können dadurch ausgelöst werden:
| REL5[2] | REL9[2] | REL8[1] | REL7[16] | REL9[3] | Bemerkungen |
| 1 | 0 | 0 | 0 | 1 | JMP unbedingter Sprung |
| 1 | 0 | 0 | 1 | O' | JPO bedingter Sprung bei Overflow |
| 1 | 0 | 1 | 0 | /Z' | JPNZ bedingter Sprung bei nicht Zero |
| 1 | 0 | 1 | 1 | Z' | JPZ bedingter Sprung bei Zero |
| 1 | 1 | 0 | 0 | /S' | JPP bedingter Sprung bei nicht Signum |
| 1 | 1 | 0 | 1 | S' | JPN bedingter Sprung bei Signum |
| 1 | 1 | 1 | 0 | /C' | JPNC bedingter Sprung bei nicht Carry |
| 1 | 1 | 1 | 1 | C' | JPC bedingter Sprung bei Carry |
| 0 | X | X | X | 1 | unbenutzt |
0=logisch 0-Pegel, entspricht 0V
1=logisch 1-Pegel, entspricht 12V
H=hochohmiger Zustand
X=beliebiger Zustand
| Funktionstabelle der CARRY-Einheit | ||||
| Eingänge | Bemerkungen | |||
| ECI0 | ECI1 | UDIR | EUOUT | |
| 0 | 0 | 0 | 1 | Die Übertragskette rechts ist aktiv, der Carryeingang ist 0. |
| 0 | 0 | 1 | 1 | Die Übertragskette links ist aktiv, der Carryeingang ist 0. |
| 0 | 1 | 0 | 1 | Die Übertragskette rechts ist aktiv, der Carryeingang ist mit dem invertierten CARRY der letzten ALU-Operation belegt. |
| 0 | 1 | 1 | 1 | Die Übertragskette links ist aktiv, der Carryeingang ist mit dem invertierten CARRY der letzten ALU-Operation belegt. |
| 1 | 0 | 0 | 1 | Die Übertragskette rechts ist aktiv, der Carryeingang ist mit dem CARRY der letzten ALU-Operation belegt. |
| 1 | 0 | 1 | 1 | Die Übertragskette links ist aktiv, der Carryeingang ist mit dem CARRY der letzten ALU-Operation belegt. |
| 1 | 1 | 0 | 1 | Die Übertragskette rechts ist aktiv, der Carryeingang ist 1. |
| 1 | 1 | 1 | 1 | Die Übertragskette links ist aktiv, der Carryeingang ist 1. |
| X | X | X | 0 | Die Übertragsketten sind inaktiv. |
| Funktionstabelle der Flag-Einheit: | |||||
| Eingänge | Ausgang | Bemerkungen | |||
| JPME | JPM0 | JPM1 | JPM2 | JPM | |
| 1 | 0 | 0 | 0 | 1 | JMP unbedingter Sprung, JPM=1 |
| 1 | 0 | 0 | 1 | O' | JPO bedingter Sprung bei Overflow, JPM führt den Pegel des Overflow-Flags der letzten ALU-Operation. |
| 1 | 0 | 1 | 0 | /Z' | JPNZ bedingter Sprung bei nicht Zero, JPM führt den invertierten Pegel des ZERO-Flags der letzten ALU-Operation. |
| 1 | 0 | 1 | 1 | Z' | JPZ bedingter Sprung bei Zero, JPM führt den Pegel des ZERO-Flags der letzten ALU-Operation. |
| 1 | 1 | 0 | 0 | /S' | JPP bedingter Sprung bei nicht Signum, JPM führt den invertierten Pegel des SIGNUM-Flags der letzten ALU-Operation. |
| 1 | 1 | 0 | 1 | S' | JPN bedingter Sprung bei Signum, JPM führt den Pegel des SIGNUM-Flags der letzten ALU-Operation. |
| 1 | 1 | 1 | 0 | /C' | JPNC bedingter Sprung bei nicht Carry, JPM führt den invertierten Pegel des CARRY-Flags der letzten ALU-Operation. |
| 1 | 1 | 1 | 1 | C' | JPC bedingter Sprung bei Carry, JPM führt den Pegel des CARRY-Flags der letzten ALU-Operation. |
| 0 | X | X | X | 1 | unbenutzt, JPM=1 |
Die komplette Schaltung wurde auf einer einseitigen Platine von 200mmx150mm untergebracht.
|
Sollte jemand seine Rechte durch eine Veröffentlichung auf dieser oder einer anderen meiner Seiten verletzt sehen, bitte ich um sofortige Kontaktaufnahme.
Ich werde die entsprechenden Inhalte umgehend entfernen.
Somit sind sowohl ein anwaltlicher Rat als auch eine kostenpflichtige Abmahnung nicht erforderlich!
Weiterhin weise ich darauf hin, dass der Inhalt verlinkter Seiten nicht in meiner redaktionellen Verantwortung liegt. |
www.schlaefendorf.de 2012