Die folgende Beschreibung des Prozessors beruht auf dem
Datenflußdiagramm.
Allgemeines
- Data Bus In/Data Bus Out
Der Datenbus überträgt ein Byte plus Paritätsbit, also 9 Bit, von und zur
Base I/O-Karte.
- Storage Address Bus
Der 16 Bit Adressbus.
- Storage R/W Bus
Dies ist der 18 Bit Datenbus. Er überträgt zwei Bytes Daten mit je einem
Paritätsbit.
Internas
- Read Data Register (RDR)
Dieses 18 Bit Datenregister speichert alle vom Datenbus gelesenen Wörter zwischen.
- Storage Address Register (SAR)
Das 16 Bit Adressregister dient zur direkten Speicheradressierung.
- Operation Register (Op Reg)
Das Befehlsregister (16 Bit), das den zu dekodierenden Befehl enthält.
- Storage Data Register (SDR)
Dieses 8 Bit Register nimmt zum einen die Daten vom externen Datenbus auf (über
Data Bus In), zum anderen dient es als zweiter Operand der ALU.
- Arithmetic Logic Unit Register (ALU Reg)
Dieses 8 Bit Register liefert einerseits den ersten Operanden für die ALU,
andererseits liefert es auch die Daten für den externen Datenbus (über Data
Bus Out).
- Arithmetic Logic Unit (ALU)
Hier wird gerechnet! Die ALU ist 8 Bit breit; sie verarbeitet zwei 8 Bit Operanden
zu einem 8 Bit Ergebnis.
- Control ROS Unit
Dies ist das Steuerwerk, das alle benötigten Steuersignale für den Datenfluß und
die Hardware erzeugt.
- Registers
Die Register des Prozessors befinden sich ebenfalls auf der Prozessorkarte,
obwohl sie über die ersten 128 Bytes des RWS adressiert werden. Für jeden
Interruptlevel (s.u.) stehen jeweils 16 Register
zur Verfügung, insgesamt 64 Register.
- Oszillator/Takte
Der Prozessor besitzt einen 15,1 MHz Oszillator, der Taktpulse von 66,2 ns Dauer
erzeugt.
Maschinenzyklen
Jeder Maschinenzyklus besteht aus einer Befehlsphase und einer Ausführungsphase.
Die Befehlsphase dauert drei Taktzyklen, die Ausführungsphase je nach Befehl
ein bis fünf Taktzyklen. Dabei besteht jeder Zyklus aus acht Taktpulsen.
- Die Befehlsphase
- 1. Zyklus
Der Inhalt des Registers 0 (der Befehlszähler) wird in das SAR geladen.
- 2. Zyklus
Der adressierte Befehl wird aus dem RWS oder dem ROS in das Befehlsregister
geladen.
- 3. Zyklus
Das SAR wird um zwei erhöht und in Register 0 zurückgeschrieben (Inkrement
des Befehlszählers).
- Die Ausführungsphase
Während dieser Phase wird der Befehl abgearbeitet, dabei kann aber nur das
RWS adressiert werden.
Der Prozessor kann durch die I/O-Geräte bei der normalen Ausführung durch
Interrupts unterbrochen werden. Es stehen dabei insgesamt vier Interruptebenen
oder Levels zur Verfügung.
- Level 0 - Normale Ausführung
- Level 1 - Unterbrechung durch den BSCA und den Asynchronous Communications
Adapter
- Level 2 - Unterbrechung durch das Band- oder Diskettenlaufwerk, den Drucker
oder den seriellen I/O-Adapter
- Level 3 - Unterbrechung durch die Tastatur
Jede dieser Ebenen besitzt einen getrennten Satz von 16 2-Byte Registern, wobei
Register 0 wie schon erwähnt der Befehlszähler ist. Die restlichen Register sind
allgemein verfügbar.
Beim Rechnerstart beginnt die Ausführung auf Ebene 0. Falls mehrere Interrupts
anfallen, so wird der Level mit der höchsten Priorität (entspricht der höchsten
Nummer) aktiviert.
Fehlerüberwachung
Sobald der Prozessor eine Fehlerbedingung erkennt, wird die Ausführung angehalten
und die RECHNER STOP-Lampe leuchet auf.
Dabei gibt es folgende Möglichkeiten für einen Fehler:
- Paritätsfehler
Ein Paritätsfehler im RDR wird u.a. dadurch ausgelöst, daß nicht vorhandener
Speicher angesprochen wird.
Außerdem kann der Fehler auf den Bus In- bzw. Bus Out-Leitungen
bei der Kommunikation mit I/O-Geräten auftreten.
- Address check
Dies passiert entweder auf einer Steckkarte im Rechner (z.B. der ROS- oder
Druckerkarte), oder wenn eine ungerade Zahl an Geräteadressleitungen (DA
Bus) aktiv sind. Es darf nur jeweils eine der X0, X1, X2, X3 und eine
der Y0, Y1, Y2, Y3-Leitungen aktiv sein.
I/O Datenflußsteuerung
control-, put- und get strobe pulse sowie op code E
zeigen an, wenn ein I/O-Befehl ausgeführt wird.
-
Bei ausgehenden Daten zeigt control strobe an, daß es sich um Steuerdaten
handelt und daß sie gültig sind.
-
put strobe funktioniert genauso, allerdings für Nutzdaten.
-
get strobe fungiert als Acknowledge beim Lesen vom Datenbus.
-
op code E wird beim dekodieren des Opcode E, d.h. dem get byte-Befehl,
aktiviert.