DE2117936C3 - Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems - Google Patents
Mikroprogrammgesteuerte Zentraleinheit eines elektronischen DatenverarbeitungssystemsInfo
- Publication number
- DE2117936C3 DE2117936C3 DE2117936A DE2117936A DE2117936C3 DE 2117936 C3 DE2117936 C3 DE 2117936C3 DE 2117936 A DE2117936 A DE 2117936A DE 2117936 A DE2117936 A DE 2117936A DE 2117936 C3 DE2117936 C3 DE 2117936C3
- Authority
- DE
- Germany
- Prior art keywords
- register
- bits
- microinstruction
- byte
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
Description
Die Erfindung betrifft eine mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
mit einem Taktgenerator und einem Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist
als die Verarbeitungszeit arithmetischer und logischer Schaltungen.
Bei auf die Maschinenausrüstung (Hardware) orientierten Datenverarbeitungsanlagen ist es allgemein
bekannt, die Operation der Maschinenteile so zu steuern, daß die zur Ausführung einer Programminstruktion
erforderliche Zeit für jede Instruktion auf einem Minimum gehalten wird. Bei mikroprogrammierten
Maschinen wurde es allgemein üblich, alternativ dazu eine Basis-Zykluszeit für die Ausführung aller
Mikroinstruktionen oder ein Vielfaches dieser Zeit für die Ausführung der Mikroinstruktionen vorzusehen, die
in der einem Zyklus zugeordneten Zeit nicht ausgeführt werden können.
Bei einer mikroprogrammgesteuerten Zentraleinheit eines elektronischen Datenverarbeitungssystems mit
einem schnellen Steuerspeicher, der das Steuerprogramm enthält und deren Arbeitszyklus kürzer als die
Ausführungszeiten der logischen Schaltungen des Systems ist, tritt der Fail ein, daß die Speicheroperationen
auf die Operationen der arithmetischen und logischen Schaltungen warten müssen. Da aber nicht
alle Steueroperationen (durch Mikroinstruktionen gesteuerte MikroOperationen) gleich lange Taktimpulsreihen
für ihr° Ausführung benötigen, geht vor allem dann wertvolle Verarbeitungszeit verloren, wenn die Taktimpulsreihen
fester Zykluslänge des Taktgenerators starr auf die längste Mikroinstruktion zugeschnitten sind.
Die Aufgabe der vorliegenden Erfindung ist es daher, eine Einrichtung anzugeben, die bei nur geringen
Mehrkosten eine Verbesserung der Operationsgeschwindigkeit erreicht.
Diese Aufgabe wird durch die im Ilauptanspruch gekennzeichnete Erfindung gelöst.
Vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen zu entnehmen.
Der mit der Erfindung erzielbare Vorteil besteht im wesentlichen in einer Erhöhung der Leistung einer
Zentraleinheit eines elektronischen Datenverarbeitungssystems, wobei die vorgeschlagenen Maßnahmen
nur einen sehr geringen technischen Mehraufwand erfordern.
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnungen näher beschrieben
Es zeigt
F i g. 1 ein Schaubild der verbesserten Hochgeschwindigkeits-Datenverarbeitungsanlage
und ihren grundlegenden Datenfluß,
F i g. 2A einen Lageplan der F i g. 2A bis 21,
F i g. 2A bis 21 detaillierte Schaubilder der in F g. 1 gezeigten Anlage,
F i g. 3 ein Schaubild eines Aiisführungsbeispiels eines
Taktgenerators mit Taktimpulsreihen veränderlicher Zykluslänge mit den zugehörigen Eingangs- und
Ausgangsansch lüssen,
F i g. 4 ein Zeitdiagramm der möglichen Taktimpulsreihen,
F i g. 5 ein Schaltbild der Steuerschaltungen für die verschiedenen Taktimpulsreihen mit vorgewählter
Zykluszeit und
Fig.6 bis 15 die Ausführung verschiedener als Beispiel gewählter Mikroinstruktionen und die zugehörigen
Zeitdiagramme für die Operationen.
Im Ausführungsbeispiel stellt eine Decodierschaltung nach Übertragung einer jeden Mikroinstri'ktion vom
Steuerspeicher in ein Steuerregister durch Untersuchung die Art der auszuführenden Mikroinstruktion fest.
Abhängig von dieser Instruktionsart gibt die Decodierschaltung Steuerimpulse auf den Taktgenerator der
Verarbeitungseinheit, so daß dieser eine von den drei verfügbaren Taktimpulsreihen (Basis-Taktimpulsreihe)
ZykJuslängen von 180, 225 und 270 ns oder eine
Kombination von zwei dieser drei Taktimpulsreihen auswählt Dadurch wird jede Mikroinstruktion so
schnell wie möglich ausgeführt und die Systemleistung wesentlich verbessert Im Ausführungsbeispiel werden
bei jedem Zugriff zum Steuerspeicher zwei Mikroinstruktionen aus dem Steuerspeicher gelesen und auf den
Datenpfad zum Steuerregister gegeben. Da nur eine dieser beiden Mikroinstruktionen zu benutzen ist, kann
dieser Übertragungsweg für spätes Verzweigen benutzt werden, d. h., die in das Steuerregister zu lesende
Mikroinstruktion braucht erst unmittelbar vor dessen Verfügbarkeit am Eingang des Steuerregisters bestimmt
zu werden. Dieser Zeitpunkt liegt wesentlich hinter dem Zugriff und Lesen der Doppelinstruktion aus dem
Steuerspeicher. Die Auswahl einer der beiden Mikroinstruktionen zur Ausführung kann in vielen Fällen somit
bis zu einem späteren Zeitpunkt im Zyklus der Taktimpulsreihe verzögert werden, wodurch die Verarbeitungszeit
durch Verwendung einer Taktimpulsreihe mit etwas längerem Zyklus (225 ns) anstelle von zwei
kürzeren Zyklen (180 ns) verkürzt werden kann. Durch festgelegte Mikroinstruktionsbits oder Staiusregisterbits
bestimmte Verzweigungen können in der kürzeren Zykluszeit (180 ns) ausgeführt werden.
Im Ausführungsbeispiel ist eine Halbwort-ALty
vorgesehen, die die Ausführung einer Rechen- oder Verknüpfungsoperation eines binären Haibwortes mit
der kürzesten Taktimpulsreihe gestattet. Relativ geringfügige /\LL/-Ergänzungsschaltungen veranlassen die
Verarbeitung des !--.weiten Halbwortes durch die ALU
während der Vollwortoperation durch Erweiterung der Taktimpulsreihe (180 für die Halbwort-Rechenoperation)
auf 225 ns für eine Vollwortoperation. Dadurch wird die Leistung zwar etwas herabgesetzt, die
Bauteilkosten der ALU jedoch wesentlich reduziert.
In einem anderen Ausführungsbeispiel der Erfindung werden die Daten während der Ausführung einer
Mikroinstruktion vom Hauptspeicher auf einen Arbeitsspeicher zur Verarbeitung während einer nachfolgenden
Ausführung einer Mikroinstruktion übertragen. Nach Verarbeitung der Daten werden sie in den
Arbeitsspeicher zurückgesetzt, bevor sie in den Hauptspeicher übertragen werden. Die zur Übertragung
der Daten zwischen Arbeits- und Hauptspeicher benutzten Speichcrzyklen erfordern wesentlich längere
Penoden, als sie in den Basis-Taktimpuisreihen zur
Verfugung stehen. Infolgedessen wird eine Taklimpulsreihe
mit einem Zyklus von 225 ns und einem von 270 ns oder zwei mit Zyklen von 270 ns zur Ausführung der
Mikroinstruktionen miteinander verbunden.
Beschreibung des Ausführungsbeispiels
Das in den Zeichnungen dargestellte Ausführungsbeispiel des Systems stellt eine Verbesserung gegenüber
dem im US-Patent 34 00 371 beschriebenen System dar und umfaßt Mikroprogrammroutinen für die Steuerung
von Makroinstruktionen der im o. a. Patent beschriebenen Art
Vor der Beschreibung des Ausführungsbeispiels
Vor der Beschreibung des Ausführungsbeispiels
ίο werden bestimmte, nachfolgend zu verwendende
Ausdrücke definiert Daten sind auf Wortbasis angeordnet jedes Wort umfaßt 4 Bytes. Jedes Byte besteht aus
acht binären Datenbits und einem Paritätsprüfbit. In einigen Fällen werden Daten adressiert und übertragen
in Doppelwortbreite, die manchmal als gerade oder ungerade Wörter eines Doppelwortes bezeichnet
werden. Im Haupt- und Steuerspeicher sind Daten und Mikroinstruktionen in Gruppen von 60 Viererwörtern
angeordnet, die als Moduln bezeichnet werden.
F i g. 1 zeigt schematisch ein Ausführungsbeispiel des Systems, in welchem die Verbesserung der vorliegenden
Anmeldung benutzt werden kann. Das System enthält einen Hochgeschwindigkeitsspeicher 1, der einen
Steuerspeicher \A und einen Hauptspeicher Iß umfaßt.
Mikroinstruktionen sind im Steuerspeicher \A gespeichert,
während Daten und Programminstruktionen im Hauptspeicher lßgespeichert sind.
Mikroinstruktionen werden der Reihe nach von der Einheit 1 auf ein C-Register 2 über eine Speicherdaten-
JO Ausgangsleitung SDBO mit einer Breite von zwei
Wörtern übertragen. Mikroinstruktionen. Daten und Programminstruktionen in der Einheit 1 werden über
ein Adreßregister 3 adressiert. Verzweigungsschaltungen 4 ändern bei Bedarf die normale Reihenfolge, in
i'i welcher die Mikroinstruktionen ausgeführt werden.
Um im Hauptspeicherteil der Einheit 1 gespeicherte Daten bearbeiten zu können, müssen sie auf den
/4-Arbeitsspeicher LS5 oder den ß-Arbeitsspeicher 6
oder auf externe Register 7 übertragen werden. Die
4(i Datenübertragung von der Einheit 1 zu den Arbeitsspeichern
oder den externen Registern erfolgt über die SDBO, die SDßO-Vorassemblierer- Riegel 10, den
Assemblierer 11 und über Wort-, Halbwort- und Byte-Wahlschaltungen 12. Die jeweilige Stelle in den
4:> Arbeitsspeichern oder den externen Registern, in
welche die Daten zu übertragen sind, wird durch eine diesen Speichern und Registern zugeordnete Adreß-Decodierschaltung
13 bestimmt, welche ausgewählte Bits in jeder Mikroinstruktion auf der SDBO und
"in bestimmte Bits in den P- und Ζ,-Bytes eines externen
Sonderregisters (SPTL)TA decodiert.
Daten werden in einer Rechen- und Verknüpfungseinheit ALU20 verarbeitet, die Daten von den
Arbeitsspeichern 5 und 6 über das Λ-Register 21 bzw.
v> ß-Register 22 und den A-Assemblierer 23 bzw. den
ß-Assemblierer 24 empfängt, Durch die ALU20 zu
verarbeitende Daten, die in den externen Registern stehen, werden auf die ALWX) über einen externen
Assemblierer 25 und entweder über das ^-Register 21
'■■· und den A-Assemblierer 22 oder über das ß-Register 22
und den Assemblierer 24 übertragen. Um die Daten auf dem zuletzt erwähnten Wege zu übertragen, muß eine
Leitung 26 den Ausgang des Λ-Register^ mit dem
Eingang des ß-Registers 22 verbinden. Ausgewählte binäre Konstantwerte werde" ·η die a^L·'20 über einen
K-Assemblierer 27 eingegeben.
Von der ALU2Q veidibeitete U.u~r. werden auf
ausgewählte entsprecht!,ul üielien in den Arbeitsspei-
ehern 5 oder 6 oder auf ein externes Register 7 über ein
Z-Register 30, ein D-Register 31 und den Assemblierer 11 zurückübertragen. Die Auswahl des Bestimmungsortes
für die verarbeiteten Daten erfolgt wieder durch die Adieß-Dccodierschaltungen 13. Verarbeitete Daten
werdo- Jana in den Iiuuptspeichertei! der SpeidiCiciiiheit
1 über das A-Register 21, den A-Assemblierer 23
und eine Speicher-Datenausgangsleitung SDBl zurückgesetzt.
Während der Datenübertragung zwischen der Speichereinheit 1 und einem der Arbeitsspeicher 5 und 6
oder der externen Register 7 wird die Spcicherstelle der Einheit 1 gewählt über eine erzwungene Adresse oder
eine von den Arbeitsspeichern 5 oder 6 abgeleitete Adresse und über das ß-Register 22 auf das Adreßregister
3 übertragen.
In dem als Ausführungsbeispiel in Fig. 1 gezeigten System stellen die beiden Arbeitsspeicher 5 und 6
Spiegelbilder voneinander dar, d. h. jedesmal, wenn Daten in eine gewählte Stelle im Λ-Arbeitsspeicher 5
übertragen werden, werden dieselben Daten in eine entsprechende Stelle des ß-Arbeitsspeichers 6 übertragen.
Daher sind die in jedem der Arbeitsspeicher 5 und 6 enthaltenen Daten jederzeit identisch. Wenn jedoch
Daten aus einem dieser beiden Speicher gelesen werden, werden die Datenpositionen einzeln adressiert,
d. h. eine Position im /4-Arbeitsspeicher 5 wird während
eines früheren Teiles eines Mikroinstruktionszyklus als Α-Datenquelle adressiert und gleichzeitig wird eine
vollkommen andere Position im ß-Arbeitsspeicher 6 als eine ß-Datenquelle adressiert. Auf diese Weise werden
zwei Arbeitsspeicherstellen (oder eine Arbeitsspeicherstelle und ein externes Register) gleichzeitig als
Datenquellen adressiert, um die Arbeitsweise des Systems zu beschleunigen.
Der Takt oder die Zeiteinteilung des Systems wird durch mehrere im wesentlichen identische Taktgeneratoren
35 (d. h. 35-1 bis 35-n) und einen Hauptoszillator 36 gesteuert. Die Ausgangsimpulse des Hauptoszillators
36 werden kontinuierlich an die Eingänge der Taktgeneratoren 35 angelegt. Eine eine Takt-Zykluslängensteuerungs-Decodierschaltung
enthaltende und zum Steuerregister C2 gehörende Einrichtung leitet jedoch
die Oszillator-Ausgangsimpulse wahlweise auf die verschiedenen Taktgeneratoren 35, entsprechend der
gerade ausgeführten Mikroinstruktion. Abhängig von der Art der ausgeführten Mikroinstruktion wird die
Zykluslänge der Taktimpulsreihen der Taktgeneratoren während der Ausführung dieser Mikroir struktion
eingestellt.
Im Ausführungsbeispiel ist für jede Schaltkarte ein Taktgenerator vorgesehen und umfaßt eine regelbare
Verzögerungseinrichtung zwischen Taktgeneratoreingang und Oszillatorausgang zur Synchronisation aller
Taktsignale des Oszillators.
Die Verarbeitungseinheit wird von Hand über die Konsolschalter 37 eingestellt, deren Ausgänge mit dem
Steuerregister 2 und den Adreß-Decodierschaltungen 13 über einen Assemblierer 38 verbunden sind. Daten
können in die Verarbeitungseinheit von den Schaltungen 37 über einen Assemblierer 39 und einen externen
Assemblierer 25 eingegeben werden.
In der Speichereinheit 1 des Ausführungsbeispieles bestehen die einzelnen Speicherpositionen aus monolithisch
hergestellten Transistor-Speicherzellen, in denen je ein Datenbit gespeichert werden kann. Der
Transistorspeicher kann nichtdestruktiv ausgelesen werden, so daß sein Steuerspeicherteil beschrieben
werden kann, &h, die Mikroinstruktionen können wahlweise in den Steuerspeichertei! der Speichcrcinhci
1 eingegeben und zu jeder Zeit dadurch verander werden, daß ein neuer Satz von Mikroinstruktionen ir
den Sieuerspeicherteil geladen wird.
ο Im Ausführungsbeispiel wird der S'.euerspeirher übe
eine Konsolendatei 40 geladen, die übe eine Magnet
platteneinheit und die zugehörigen Steuerungen ver fügt. Abhängig von den jeweiligen Anforderungen de
Benutzers wird ein ausgewähltes optimales Steuerspei
:·. che.'-Niikroprogramm von der Konsolendatei 40 au
den Stcuerteil des Speichers 1 über den Assemblierer 39 den externen Assemblierer 25 und die normalei
Datc.'iwege der Verarbeitungseinheit übertragen. Di< Konsolendatei 40 speichert außerdem geeignet Korn
mandos. die nach Decodierung in der Einheit 40 auf da:
Steuerregister 2 und die Adreß-Decodierschaltung I; über den Assemblierer 38 gegeben werden, um sowoh
das Laden des Steuerteiles der Speichereinheit 1 zi steuern als auch die Fehlersuche der Verarbeitungsein
2ü heit zu gestatten.
Das in F i g. 1 gezeigte Ausführungsbeispie! enthäl auch Bestimmungs-Voraussjhau-Schaltungen 41. Dies(
Schaltungen sollen in den Fällen die Daten direkt von Z-Register 30 auf das A -Register 21 und das ß-Registe
22 über den Datenweg 42 übertragen, in welchen ein« Datenquelle in den Arbeitsspeichern 5 oder 6 auch de
Bestimmungsort für Daten in dem vorhergehendei Zyklus ist. Bekanntlich werden ja im Ausführungsbei
spiel während der Ausführung einer Mikroinstruktior
3d verarbeitete Daten für die ausgewählte Position in dei
Arbeitsspeichern 5 und 6 oder den externen Registern ', erst spät bei der Ausführung der nächstfolgender
Mikroinstruktion bestimmt Da die Daten in der Arbeitsspeichern 5 und 6 und den externen Registern ',
η erst bei der Ausführung der nächstfolgenden Mikroin
struktion fortgeschrieben werden, kann der fortge schriebene Teil einer Stelle während der Ausführung
der nächsten Mikroinstruktion nicht als Quelle adres siert werden. In bezug auf die Positionen im A-Speichei
j» 5 und im S-Speicher 6 erfolgt somit die direkte
Übertragung der fortgeschriebenen Daten über dei Datenweg 42, welcher den Ausgang des Z-Registers 3(
mit dem Λ-Register 21 und dem S-Register 2;
verbindet. Im Ausführungsbeispiel ist diese Bestim
•n mungs-Vorausschau-Einrichtung für die externen Regi
ster 7 nicht vorgesehen, ausgenommen davon ist jedocl das SPTL-Register 7Λ, dessen Ausgang ebenfalls direk
mit den A- und ß-Registern 21 und 22 über den Weg 4;
verbunden ist. Mit Ausnahme des Registers TA, welche:
Ι» während der Ausführung einer Mikroinstniktion fortge
schrieben wird, kann daher kein externes Register eine Datenquelle für die nächstfolgende Mikroinstruktioi
sein.
Es folgt eine genaue Beschreibung der F i g. 2A bis 21
die nach dem Plan in F i g. 2 zusammenzulegen sind.
Die Speichereinheit 1 ist genauer in Fig.21 gezeig
und umfaßt gerade und ungerade Steuerspeicherab schnitte 100 und 101 sowie Daten- oder Hauptspeicher
abschnitte 102 und 103. Wie bereite gesagt, werdei
h" Steuerspeicher und Hauptspeicher während der Lese
zyklen in Breite eines Doppelwortes adressiert, unc diese Doppel Wörter werden dann auf die Leitung SDBC
gegeben. LJm ein Oberschneiden zwischen geraden unc ungeraden Wörtern des Doppelwortes zu verhindern
""< liegen Paare von geraden und ungeraden Wörtern ai
den einander gegenüberliegenden Seiten und ir gleichem Abstand von den Datenausgangsschaltungei
104. Der Steuerspeicher ist unmittelbar neben dei
Dalenausgangsschaltungen 104 und dem Hauptspeicher
102 und 103 in größer,- Entfernung \un diesen
Schaltungen dargestellt.
Dadurch wird eine minimale Verzögerung bei der
Übertragung von MikroinstrrM. Jonen von den Speicherabschnif ten JOO und 101 in das Steuerregister 2
der Fig.2F und die Adreßdecodierschaltungen der
F i g. 2A und 2B sichergestellt. Die während der Speicherzyklen über die Eingangsleitung SDBl auf die
Speichereinheit 1 übertragenen Daten weiden auf Wortbasis eingegeben. Es gibt daher keine kritische
Lage für die Anordnung der Dateneingabeschaltungen 105 sowie die Lage von Haupt- und Steuerspeicherstellen,
an welche die SDfl/-Leitung angeschlossen ist. Die
Speichereinheit I umfaßt außerdem eine Einzelbit-Feh- ^korrekturschaltung und eine asymmetrische Doppel
bit-Fehlerkorrekturschaltung 106 bekannter Bauart. Da diese Schaltungen nicht näher mit der Erfindung zu tun
haben und allgemein bekannt sind, werden sie nicht weiter beschrieben.
Das Adreßregister 3 ist genauer in Fig.2E gezeigt
und umfaßt das Af 1-Register 110, A/ 2-Register 111 und
das Λ/3-Register HZ Die Ausgänge dieser Register
sind mit den Eingangstreiberschaltungen DA 113, 114
und 115 der Speichereinheit 1 über die Leitungen 116,
117 und 118 verbunden. Zum Register 111 gehört ein
N 2-Rückgriffregister 119 und zum Register 112 ein
N3-Rückgriffregister 120. Die Adressen zur Adressierung von Daten aus den Hauptspeicherabschnitten 102
und 103 oder von Mikroinstruktionen aus den Steuerspeicherabschnitten 100 und 101 werden in die
Register AfI, A/2 und A/3 gesetzt Im Ausführungsbeispiel
stellt das A/3-Register den untersten Teil der
Adreß-Registerschaltungen 3 dar und umfaßt acht Bits (ein Byte) zum Adressieren eines von 64 Wörtern in
jedem Modul. Das A/2-Register ist eine Byte groß und das M 1-Register enthält vier Bits zur Adressierung
verschiedener Moduln. Das wertniedere Bit 7 des Λ/3-Registers bestimmt die Bytewahl. Bit 6 von A/3
bestimmt die Halbwortwahl und Bit 5 die Wortwahl. Die Bits 0 bis 5 des A/3-Registers gestatten die Wahl eines
von 64 Wörtern, d h. eines Moduls. Die acht Bits von A/2 gestatten die Wahl zwischen 256 Moduln oder
ungefähr 16 000 Wörtern. Die vier Bits von A/l liefern 16 Kombinationen, wodurch eine Gesamtzahl von 256
^-Wörtern durch die Register A/l, A/2 und A/3
adressiert werden kann.
Im Ausführungsbeispiel kann der Steuerspeicher la maximal 16 K-Wörter enthalten, wodurch die vom
Mikroprogramm gelieferten Mikroinstruktionsadressen eine Lieferung von maximal nur 16 Bit A/2 erfordern.
Zugriffe zum Haupt- und zum Steuerspeicher erfolgen immer auf Doppelwortbasis. Im Hauptspeicher
können Daten jedoch auch auf Byte-, Halbwort- oder Voll wortbasis gespeichert werden. Die durch die gerade
ausgeführte Mikroinstruktion angegebene jeweilige Operation bestimmt, ob ein Wort, ein Halbwort oder ein
Byte zu speichern ist
Die meisten Mikroinstruktions-Operationen veranlassen nur eine Veränderung des A/3-Registers. In einer
Routine nachfolgende Mikroinstruktionen werden soweit wie möglich innerhalb desselben Moduls gehalten,
wodurch die Register AfI und A/l für eine Reihe von
Mikrooperationen auf demselben Wert gehalten werden können. Vierweg-Verzweigungsoperationen wer-
den durch das Setzen der Bits 4 und 5 des A/3-Registers
angegeben. Gemäß obiger Beschreibung bestimmt Bit 5 von A/3 die Wahl eines geraden oder ungeraden
Wortes bei einer Doppelwortlese- oder -speicheroperation, was besonders bei Mikroinstruktionsgriffen nützlich
ist. Bei Verzweigungsoperationen gibt Bit 4 das A/3-Register an, welches von zwei aufeinanderfolgenden
Doppelwörtern durch die Haupt- und Steuerspeicher adressiert wird.
Die Register N2 und N3 sind als Rückgriff-Register
für die Mikroinstruktions-Adressierung vorgesehen. Die Adresse in N 2 sowohl wie in A/2 ist eine Moduladresse.
Wie bereits gesagt, kann eine Reihe νο.Ί Mikrooperationen
ausgeführt werden durch Adressierung der Wörter von demselben Modul im Steuerspeicher. Die in N 2
gespeicherte Adresse wird nur verändert, wenn durch die gerade ausgeführte Mikroinstruktion eine Änderung
der Modu'adresse angegeben wird. Die Register A/2
und Λ/2 werden mit dieser neuen Moduladresse geladen. Die Adresse bleibt dann im N2-Register, bis
wieder eine Änderung der Moduladresse angegeben wird. Während jede nachfolgende Mikrcinsirukticn im
selben Modul ausgeführt wird, wird die Adresse in Λ/2
nach Mi tür die Adressierung der folgenden Mikroinstruktion
übertragen, bis ein neues Modul angefordert wird.
Wenn eine Verzweigung während der Ausführung einer Mikroinstruktion auftritt, wird der Inhalt der
A/-Register auf Verzweigungsadresse gesetzt. Die A/-Register bleiben jedoch unverändert, wenn die
Verzweigung auftritt, so daß die laufende nächste Mikroinstruktionsadresse aufbewahrt werden kann. Die
Verzweigungsroutine speichert den Inhalt der N-Register, so daß die richtige Reihenfolge der Mikroinstruktion
wieder aufgenommen werden kann, indem man die Register A/ und N mit der aufbewahrten Adresse neu
lädt, wenn die Mikroprogrammroutine durch Beendigung der Verzweigung wieder eingeleitet wird.
Das Λ/02-Register 125 und das A/B3-Register 126
sind als zusätzliche Rückgriff-Register für die Register A/2 und A/3 vorgesehen. Die Register MB 2 und MB 3
werden auf die Mikroinstruktionsadresse gesetzt, die in den Registern A/2 und A/3 steht. Wenn der
Taktgenerator der CPU gestoppt wird, enthalten die Register MB 2 und MB 3 Adreßbits der vorher
ausgeführten Mikroinstruktion, wogegen die Register A/2 und A/3 die Adresse der als nächstes auszuführenden
Mikroinstruktion enthalten. Die Daten in den Registern MB 2 und MB 3 werden bei Fehlerprüfroutinen
benutzt
Verzweigungs- und Prioritäts-Steuerschaltungen bekannter Bauart sind bei 127 gezeigt Rückgriffregister
128 in Fig.21 werden in Verbindung mit den Schaltungen 127 bei bestimmten Verzweigungsroutinen
benutzt Die Schaltungen 127 in den Registern 128 haben nichts mit der vorliegenden Erfindung zu tun und
werden daher nicht näher beschrieben.
Adreßdaten werden in die Register A/1, A/2 und A/3
sowie in die Register N 2 und N 3 über die Assembliererschaltungen 130,131 und 132 eingegeben.
Für jedes Adreßbi«. enthalten die Assemblierer 130 bis 132 mehrere UND-Glieder, deren Ausgänge mit einem
ODER-Glied verbunden sind In den ODER-Gliedern der Assemblierer 130 bis 132 sind somit die Zahlen 4,8
und 8 eingetragen, um anzudeuten, daß vier Schaltungen
130 und acht Schaltungen 131 und 132 vorhanden sind Die Ausgänge der ODER-Glieder sind mit den
entsprechenden Registern AfI, Af 2, A/3 sowie N2 und
Λ/3 verbunden. Die Eingänge zum Assemblierer 130
sind eine erste Leitung ACB + 1 und eine Leitung ACB, die von den Adreßgrenzpriifschaltungen 133 abgeleitet
sind und ein Mittel für weiU'.re Zugriffe zum
Steuerspeicher 1 und zum Setzen der Grenze zwischen dem Steuerspeicher Xa und dem Hauptspeicher Xb
darstellen. Eine weitere Leitung bildet einen dritten Eingang für den Assemblierer 130 und wird in Fällen
benutzt, in welchen die auf das Register AfI zu übertragenden Bits ausgewählte numerische Konstanten sind, welche von der ausgeführten Mikroinstruktion
abgeleitet werden.
Auf die Register Ail, Af2 und Af 3 werden
bekanntlich maximal 20 Bits übertragen, um einen Teil des Hauptspeichers Xb zu adressieren. Während der
Ausführung zahlreicher Mikroinstruktionen, in denen Daten zwischen dem Hauptspeicher Xb und einem der
Speicher 5 oder 6 oder den externen Registern 7 übertragen werden, wird somit die 20 Bit große, in die
Register Af 1, Af 2 und Af 3 zu setzende Adresse von den wertniederen 20 Bits in der Ausgangsleitung 133 des
B-Registers 22 in F i g. 2D abgeleitet Diese 20 Bit umfassende Leitung 133 wird an die entsprechenden
Eingänge der Assemblierer 130 und 131 sowie 132 angeschlossen.
Ausgewählte Bits des Byte 2 vom Steuerregister C 2 der F i g. 2G werden als Eingänge 143 und 144 zu den
Assemblierern 131 und 132 benutzt Eine Eingangsleitung 145 zum Assemblierer 132 koppelt den Assemblierer mit den ausgewählten Ausgangsbits des Byte 3 aus
d^m C-Register. Verzweigungsadressen werden in die
Assemblierer 131 und 132 von den Verzweigungsschaltungen 127 über die Leitungen 146a und 1466
eingegeben.
Der /!-Arbeitsspeicher 5 und der der ö-Arbeitsspeicher 6 sind in Fig.2b gezeigt und werden über
Adressierschaltungen adressiert, die die Adreßdecodierschaltungen 150 und 151 umfassen. Die Schaltungen 150
und 151 bilden zusammen mit einem Decodier- und Bestimmungsadreßregister 152 für externe Register die
in F i g. 1 (Bezugszeichen 13) gezeigten Adreßdecodierschaltungen für Arbeitsspeicher und externe Register.
Eine AusgangsadreBleitung 153 von der Decodierschaltung 150 wird dazu benutzt, ausgewählte Wörter in
einen Arbeitsspeicher 5 zu setzen. Sie ist außerdem mit dem Adreßbestimmungsregister 154 über ein Λ-Pufferregister 155 verbunden.
Jedesmal, wenn der A-Arbeiisspeicher 5 von einer
Quelle durch Decodierung der gewünschten Bits in der Decodierschaltung 150 adressiert wird, wird die
Adreßdecodierung in den Puffer 155 übertragen. Falls diese Adresse dieselbe ist wie die Bestimmungsadresse
für die von der ALU20 verarbeiteten Daten, wird sie dann vom Puffer 155 auf das Λ-Bestimmungsregister
154 und ein ß-Bestimmungsregister 156 übertragen.
In ähnlicher Weise ist ein ö-Bestimmungspuffer 157
mit der Adrefiausgangsleitung 158 der β-Decodierschaltung 151 verbunden. Wenn die ß-Quelle auch als
Bestimmungsort dienen soll, wird die im Puffer 157 gespeicherte Adresse auf die Register 144 und 156
übertragen. Auf diese Weise werden Daten für beide Arbeitsspeicher gleichzeitig bestimmt, wodurch ein
Arbeitsspeicher das Spiegelbild des anderen in bezug auf die darin gespeicherten Daten bildet
Adressen zur Adressierung der beiden Arbeitsspeicher 5 und 6 werden teilweise von den P- und
L-Registern über die Leitungen 160 und 161 abgeleitet und zum andern Teil von der SDBO-Leitung über eine
gerade/ungerade Wortwahlschaltung 162 der F i g. 2a, eine vier Byte große Leitung 163, einen Arbeitsspeicher-Adreßassemblierer 164 und eine zwei Byte große
Leitung 165, die die Bytes 1 und 2 (nachfolgend mit CX
und C 2 bezeichnet) der durch die Schaltung 162 gewählten Mikroinstruktion überträgt In ähnlicher
Weise werden die Bytes CX und C2 zur Adressierung '. der Arbeitsspeichereinheit abgeleitet von der Konsolendatei 40 der F i g. 2a, einer Selektorkanal-Steuereinheit (nicht dargestellt), den Schaltern 37 auf der
Bedienungskonsole und Verriegelungen 166 der F i g. 2c, jedesmal über den Assemblierer 38 der F i g. 2a
ίο und eine Leitung 167, die mit dem anderen Eingang des
Assemblierers 164 verbunden ist Ein zusätzlicher Adreßbiteingang zum ß-Arbeitsspeicher-Decodierkreis
151 wird über eine Leitung 170 von der Konsolendatei 40 abgeleitet. Eine von der Prioritätssteuerschaltung 127
der F i g. 2i abgeleitete Leitung 171 ist mit dem Eingang der A-Decodierschaliung 150 und der "-Decodierscha!-
tung 151 verbunden. Die Bits 0 bis 5 des Af 3-Adreßregisters werden auf den Eingang der Λ-Decodierschaltung
150 über eine Leitung 172 geleitet
Wenn die beiden Arbeitsspeicher 5 und 6 adressiert werden, um ihnen eine Information zuzuordnen, werden
die Adressen in den Bestimmungsadreßregistern 154 und 156 über die Leitungen 173 bzw. 174 auf die
Eingänge der Decodierschaltungen 150 und 151 geleitet
Die Bestimmungs-Vorausschauschaltungen 41 sind in
F i g. 2b gezeigt und umfassen einen ß-Decodierteil 175 und einen Λ-Decodierteil 176. Die Ausgangsleitungen
177 und 178 von den beiden Decodierschaltungen 175 und 176 werden an die Eingänge der beiden
Vergleicherschaltungen 180 und 181 gelegt Die Ausgangsleitungen 174 und 173 der Bestimmungsregister 156 und 154 werden ebenfalls an die Vergleicherschaltungen 180 und 181 angeschlossen. Falls eine dieser
beiden Vergleicherschaltungen ein gleiches Vergleichs
ergebnis zwischen seinen Eingängen feststellt wenn der
entsprechende Arbeitsspeicher als Quelle im ersten Teil einer Mikroinstruktionsausführung adressiert wird, so
besagt dieser gleiche Vergleich, daß die Quelle nicht fortgeschrieben worden ist, da es sich um die
Bestimmungsadresse von der vorher ausgeführten Mikroinstruktion handelt Ein gleiches Vergleichsergebnis in der Schaltung 180 liefert einen Impuls auf die
Ausgangsleitung 182, wodurch der Teil der Mikroinstruktion, der nicht fortgeschrieben wurde und noch im
■»5 Z-Register steht, direkt auf das «-Register 22 (F i g. 2d)
über das Kabel 42 geleitet wird, welches den Ausgang des Z-Registers direkt mit dem Eingang des B-Registers
22 über die Assemblierer 190 und 191 (Fig.2d) verbindet
Ein gleiches Vergleichsergebnis in der Schaltung 181 liefert einen Impuls auf die Leitung 183, wodurch der
Teil der gewünschten Mikroinstruktion, der nicht fortgeschrieben wurde und noch im Z-Register steht, auf
das in F i g. 2c gezeigte A -Register 21 über das Kabel 42
und den in Fig.2c gezeigten Assemblierer 192
übertragen wird.
Wie bereits im Zusammenhang mit F i g. 1 gesagt wurde, werden Daten in die beiden Arbeitsspeicher 5
und 6 der F i g. 2b über den SDöO-Assemblierer 11 der
F i g. 2F und die vier Byte große Leitung 193 übertragen. Der FDßO-Assemblierer 11 leitet seinen Eingang
andererseits vom D-Register 31 der Fig.2g über ein
Kabel 194 oder vom SDßO-Vorassembliererriegel 10
über die Wort-, Halbwort- und Byte-Wahlschaltungen
12derFig.2Fab.
Ausgangsdaten vom «-Arbeitsspeicher 6 der F i g. 2b
werden auf das «-Register 22 über das Kabel 200 und den Assemblierer 191 geleitet Die Ausgangsdaten vom
Λ-Arbeitsspeicfier 5 werden auf das /!-Register 2t der
F i g. 2c über ein Kabel 2Oi und dem Assemblierer 192
geleitel.
Der Ausgang des Λ-Registers 21 (F i g. 2C) wird, wie
bereits gesagt, über das Kabel 26 auf die Torschaitungen
191 (F i g. 2d) und in das 8 Register 220 geleitet. Das
Kabel 26 koppelt außerdem die Bytes O1 2 und 3 des /4-Registers 21 auf das Byte 0 des Assemblierers 23. die
Bytes 0, 1 und 3 des 4-Registers 21 auf Byte des Assemblierers 23 und alle vier Bytes des .4-iiegisters 21
auf die Bytes 2 und 3 des Assemblierers 23.
Die ALUM ist zwei Bytes breit und wird daher entsprechend Byte 2 und Byte 3 in die Abschnitte ALU2
und ALU3 unterteilt (F i g. 2g, 2h).
Byte 3 des Assemblierers 23 wird auf die Verzweigungsschaliungen
4 (Fig./d) über ein Kabel 210
gekoppelt. Die Bytes 0 bis 4 des Assemblierers 23 werden auf die I-eitung SDBI über mehrere Treiberschaltungen
211 und ein vier Byte großes Kabel 2!2 geleitet. Die Bytes 2 und 3 des Assemblierers 23 sind mit
ALU2 und ALU3 über die Kabel 213 und 2J4 und über die Kreuzschaltungen 215,216 verbunden.
Bytes 0 und 1 des ß-Registers 22 sind entsprechend
mit den Bytes 0 und 1 des Z-Registers 30 (F i g. 2g) über die Kabel 220 und 221 und die Bytes 0 und 3 einer vier
Byte großen Torschaltung 222 in F i g. 2h gekoppelt.
Die Bytes 2 und 3 und die Bits 4 bis 7 des Byte 1 im ß-Register 22 sind über das Kabel 133 mit den
M-Registereingangsschaltungen gemäß obiger Beschreibung
verbunden. Die Bytes 0 bis 3 des ß-Registers 22 sind außerdem auf die ALU2 und ALU3 der F i g. 2g
und 2h gekoppelt über Byte 2 des Assemblierers 24, die Kabel 224 und 225, die Schiebe- und Torschaltungen 226
und 227 sowie über die Echt/Komplementschaitungen 228 und 229.
Byte 1 des B-Registers 22 ist auch mit ALU2 gekoppelt über das Kabel 221, die Torschaltung 230
sowie das UND-Glied 231 und die Schiebe- und Torschaltung 226 sowie die Echt/Komplement-Schaltung
228.
Während der Verschiebeoperationen kann das UND-Glied 232 der Fig.2d dazu verwendet werden,
die vier werthohen Bits 0 bis 3 der Byte-3-Schaltung des Assemblierers 24 und die wertniederen Bits 4 bis 7 der
Byte-2-Schaltung des Assemblierers 24 mit ALU3 über die Schiebetorschaiiung 227 und die Echt/Komplement-Schaltung
229 zu koppeln. In ähnlicher Weise kann das UND-Glied 231 (Fig.2c) bei Verschiebeoperationen
dazu benutzt werden, die vier wertniederen Bits 4 bis 7 des Bytes 1 des ß-Registers 22 und die vier werthohen
Bits 0 bis 3 des Bytes 2 des ß-Registers mit ALU2 zu koppeln.
Der Ausgang von ALU3 in der F i g. 2h ist gekoppelt mit jedem der vier Bytes des Z-Registers 30 über die
vier Bytes der Torschaltung 222 und ein Kabel 235. Der Ausgang von ALUI ist auf die Bytes 0 und 2 des
Z-Registers 30 geiegt über die Bytes 0 und 2 der Torschaltung 222 und ein Kabel 236.
Wie bereits gesagt, ist der Ausgang des Z-Registers
direkt mit dem Eingang des D-Registers 31 gemäß Darstellung in F i g. 2g verbunden und über ein Kabel 42
an den Eingang der /4-Registertorschaltung 190 in
Fig.2d und den Eingang der Ä-Registertorschaltung
192 in Fig.2c angeschlossen. Die Bytes 0 bis 3 des
Z-Registers sind außerdem entsprechend mit den Bytes 5, P, Tund L des SPTL-Registers 7a der F i g. 2h über ein
Byte große Kabel 240-0 bis 240-3 verbunden.
Der Ausgang des SPTL-Registers 7a ist über vier
Byte große Kabel 43 und die Torschaltungen 190 und 19t mit dem B Register 22 der Fig. 2d verbunden. Das
Kabel 43 ist außerderr. über ein ODER-Glied 242 der F! s- -C und ein Kabel 243 sowie die Torschahi'^gen 192
mit dem A-Kcgisier2! verbunden.
Das ODER-Glied 292. Kabel 243 und die Torschaltung
192 verbinden außerdem den Ausgang des exte-nen Assemblierers 25 der Fig. 2b mit dem
/4-Register 21 der Fig.2c Die Steuerung des externen
ίο Assemblierers 25 erfolgt durch die Decodier- und
Bestimmungsadreßregisterschaitung 152a für externe Register (und ihren Assemblierer i52ö), die an den
Eingang des externen Assemblierers 25 über ein Kabel 250 angeschlosser, ist. Die externen Register 7 sind mit
ihren Ausgängen an einen Eingang des externen Assemblierers über ein Kabel 251 angeschlossen. Ein
anderer Eingang zum externen Assemblierer 25 wird von einem Kabel 252 gebildet, welches von dem
Λ/2-Register 190 und dem A/3-Register !20der Fig. 2e
kommt.
Die Konsoiendatei 40 und die Schalter 37 (F ι g. 2a)
sind an einen anderen Eingang des externen Assemblierers über eine Torschaltung 39 und ein Kabel 253
angeschlossen.
Die Kanalsteuerschaltungen 260 der F i g. 2b sind mit einem anderen Eingang des externen Registers 25 und
mit der Verzweigungs- und Prioritätssteuerung 127 (Fig. 2i) über ein Kabel 261a verbunden. Die Schaltungen
260 sind außerdem auf einen Eingang des Assemblierers 38 über einen Kabelabschnitt 261Λ
gekoppelt. Die Kanalsteuerschaltungen 260 werden zusammen mit den Eingabe-ZAusgabe-Datenwegschaltungen
262 der F i g. 2b dazu benutzt, die Übertragung von Daten zwischen der in den F i g. 2a bis 2i gezeigten
Datenverarbeitungseinheit und peripheren Hochgeschwindigkeitsgeräten wie Magnetplatteneinheiten zu
steuern.
Die Schaltungen 262 umfassen ein GR 1-Eingaberegister
265, dessen Eingang an die Dateneingangsleitung Bl
«ο des Kanals ! angeschlossen ist Ein GO 1-Ausgangsregister
266 ist mit seinem Ausgang an eine ßO-Datenausgangsleitung für den Kanal 1 angeschlossen. Ein
Schieberegisterpuffer 267, umfassend das Eingangsregister 265. wird dazu benutzt, von der Leitung des Kanals
1 auf den Hauptspeicher 1 oder vom Hauptspeicher 1 auf die Kanal-1-Ausgangsleitung übertragene Daten zu
speichern.
Daten werden über die Leitung des Kanals 1 auf Bytebasis empfangen und durch die nachfolgenden
Stufen des Puffers 267 so übertragen. Die Daten werden dann auf der Basis von vier Wörtern vom Puffer 267 auf
den Speicher 1 über einen Zweirichtungsassemblierer 268, ein Kabel 269, den externen Assemblierer 25, das
ODER-Glied 242, das Kabel 243, die Torschaltung 192, das Λ-Register 21, den Λ-Assemblierer 23, Kabel 212,
Treiber 211 und die Leitung SDBIübertragen.
Daten werden vom Speicher 1 auf Wortbasis zum Puffer 267 übertragen über die Leitung SDBO, die
Torschaltung 162 der Fig.2a, Kabel 163, die Riegel 10
der F i g. 2f, die Selektionsschaltungen 12, den SDBO-Assemblierer
11, die Treiberschaltungen 140 und die externe Leitung EBI. Aus den oben beschriebenen
Datenwegen ist zu ersehen, daß der Puffer 267 mit seinen zugehörigen Registern 265 und 266 de facto ein
Teil der externen Register 7 ist Diese wurden jedoch wie andere Register, z. B. das Register 5PTL, separat
dargestellt, um bestimmte Merkmale des verbesserten Systems klarer zu zeigen.
Für die vorliegende Beschreibung wurde angenommen, daß die Verarbeitungseinheit vier Kanäle für die
Datenübertragung zwischen Verarbeitungseinheit und peripheren Geräten zur Verfugung hat. Somii verfügt
die Schaltung 260 über vier Abschnitte, je einen für einen Kanal. In ähnlicher Weise enthält die Schaltung
262 vier Puffer und Assemblierer, von denen nur zwei dargestellt sind.
Eine Decodierschaltung 270 (Fig.2f) ist an den
Ausgang des Steuerregisters C2 angeschlossen. Jedesmal, wenn eine Mikroinstruktion in das Steuerregister
zur Ausführung eingegeben wird, spricht die Decodierschaltung 270 auf die Bitkombination der Mikroinstruktion
dadurch an, daß die zur Ausführung des Wortes erforderlichen verschiedenen Tore betätigt werden.
Die Decodierschaltung 270 enthält einen Takt-Zyklus-Längensteuerteil
271, der auf ausgewählte Mikroinstruktionsbits dadurch anspricht, daß die Taktgeneratoren
zur Erzeugung von einer Taktimpulsreibe einer ausgewählten Zykluslänge von 180 ns (Nanosekunden),
225 ns oder 270 ns und für bestimmte Mikroinstruktionstypen von zwei Taktimpulsreihen 225 ns + 270 ns
oder 270 ns + 270 ns veranlaßt werden.
Durch die im Fehlersuchregister 272 der F i g. 2f und einer Schaltung 273 in der Fig.2i enthaltenen
Einrichtungen werden Fehlersuchfunktionen aufgespürt, die mit der vorliegenden Erfindung nichts zu tun
haben.
Für bestimmte Arten von erneuten Instruktions-Ausführungsversuchen
kann der Inhalt des /4-Registers 21 und des ß-Registers 22 auf die Register 128 (Fig. 2h)
über eine Torschaltung 280 (F i g. 2d) und ein Kabel 281 übertragen werden.
Wenn Rechenoperationen in ALU2 und ALU3 ausgeführt werden, werden die Paritätsbits von den
Operanden abgezogen, bevor sie in die ALU geleitet werden. Ein Paritätsgenerator 282 addiert das richtige
Paritätsbit zum Rechenergebnis. Für binäre und Dezimaloperationen prüft eine Paritäts-Voraussageschaltung
(nicht dargestellt) in der ALU das erzeugte Paritätsbit gegen ein vorhergesagtes Paritätsbit zwecks
fehlererkennung. Fehler in den Ergebnissen einer Verknüpfungsoperation (die in ALU2 und ALU3
dupliziert wird) werden durch eine Verknüpfungs-Priifsc-liiiltung
283 festgestellt, die die Ergebnisse von ALU2 mit denen von ALU3 vergleicht.
Mine dezimale Korrektur-Steuerschaltung 284 stellt eine richtige Dezimaladdition durch Verwendung eines
binären Addierers in der ALUl und der ALU3 sicher. I iieser Vorgang wird nachfolgend genauer beschrieben, so
I line Schaltung 285 (F i g. 2d) überwacht die Eingänge
/hi A 1.1/3 auf gültige Dezimalzahlen bei Dezimalopeiiioiien.
Im Ausführungsbeispiel sind Dezimaloperatio-■1 11 nur 1-Byte-Operationen.
Wenn Daten vom D-Register 31 (Fig.2g) für die
Λ ι beitsspeicher 5 und 6 (F i g. 2b) bestimmt sind, werden
sie in die beiden Arbeitsspeicher eingegeben und direkt nicht-destruktiv auf die Leitung 201 und 200 ausgelesen.
Km Antivalenzglied 286 (Fig.2c) stellt fest, ob die
Daten in beiden Arbeitsspeichern übereinstimmen; eine Überprüfung des Registers 287 und eine Übereinstimmungsschaltung
288 stellt fest, ob die neuen Daten (1 bis 4 Bytes) vom D-Register 31 mit den Daten im
A -Arbeitsspeicher 5 übereinstimmen.
65
Arten von Mikroinstruktionen
(1) Alle Mikroinstruktionsbits sind nur der einfacheren Erklärung halber im Steuerregister C2 dargestellt,
die Adressierung von Arbeitsspeicher und externei Registern erfolgt in Wirklichkeit jedoch durcl
entsprechende Bits in den Decodierschaltungen de F i g. 2b und nicht durch die tatsächlichen Ausgangs
bits des Steuerregisters.
(2) Als Beispiele für die Ausführung von Mikroinstruk
tionen wurden für die Daten in den verschiedene; Registern willkürliche Werte gewählt.
(3) Bezeichnungen wie Λ3.0-2 werden der Einfachhei
halber benutzt und stellen die Bits O bis 2 des Byte.
des A -Registerausganges dar.
(4) Für Register und Riegel werden vorzugsweis Polaritäts-Halteriegel bekannter Bauart verwende!
die über zwei UND-Glieder verfügen, derei Ausgänge mit den Eingängen eines ODER-Gliede
verbunden sind Eine Datenleitung ist an einer Eingang eines UND-Gliedes angeschlossen und de
phasengerechte Ausgang des ODER-Gliedes ist mi einem Eingang des anderen UND-Gliedes verbun
den. Eine einzige Setz/Rückstelleitung ist direkt mi einem zweiten Eingang des anderen UND-Gliede
und über eine.» Inverter mit dem Eingang des einer UND-Gliedes verbunden, wobei zwischen Eingan
und Ausgang eine kleine Verzögerung liegt
Steht die Setz/Rückstelleitung auf 0, wird di Verriegelung ein nichtinvertierender Verstärker un<
erzeugt an ihrem Ausgang ein Signal, welches den Signal auf der Dateneingangsleitung entspricht. Führ
die Setz/Rückstelleitung ein Einersignal, verriegelt sie ir diesem Moment im Verknüpfungszustand der Datenlei
tung und hält diesen verriegelten Zustand bei, bis die Setz/Rückstelleitung wieder auf 0 zurückkehrt
Taktgeneratoren und Steuerschaltungen
Jeder Taktgenerator 35 umfaßt gemäß Darstellung ii Fig.3 mehrere Eingänge und erzeugt auch wiedei
mehrere Ausgangssignale, von denen im Ausführungs beispiel jedes etwa 90 ns dauert und gegen da
vorhergehende um etwa 45 ns zeitlich verschoben ist.
Einzelheiten eines solchen Taktgenerators 35 sind in
TDB Band 12, Nr. 1, Seiten 71 bis 73, vom Juni 1969 bekanntgemacht worden. In F i g. 3 wurden die Symbol·
für echte Werte (—) und Komplementwerte ( + verwendet, in allen anderen Teilen der Zeichnungen unc
der Beschreibung ist das Zeichen für ein Komplement jedoch »-« und die Verwendung keines Vorzeichen
bedeutet den echten Wert.
Kurz gesagt umfaßt der Taktgenerator mehrer« Gleichstromriegel, von denen jede einen entsprechen
den echten und einen Komplement-Ausgangswert fü die O-Zeit, 0-Verzögerungszeit, 1-Zeit, 1-Verzögerungszeit, 2-Zeit und 2-Verzögerungszeit erzeugt. Diese
Riegel reagieren auf Vorder- und Hinterkanten de Eingangssignals vom Oszillator 36 (Fig. 1) unte
Steuerung der Zyklus-Eingangssignale für —180 ns
— 225 ns und —270 ns, welche die Länge der auszufüh renden Taktimpulsreihen bestimmen.
Der Start des Taktgenerators für jeden Zyklus wird bestimmt durch Signale auf den Leitungen +Taktstart
Rückstellung und-Taktstart. Der Taktgenerator kann in seine Ausgangsstellung zurückgesetzt werden durch
Anlegen eines Signals an den +Rückstelleingang. Ein + Fehlerstopeingang ist vorgesehen, um den Taktgene
rator dazu zu zwingen, 0-Taktzyklen beizubehalten, bis das Fehlersignal ausgeschaltet ist.
jedes
obengenannten Taktsignale wie O-Zeit, O-Verzogerungszeit,
1-Zeit usw. eine Dauer von 90 ns und relativ zum vorhergehenden Signal eine Verschiebung oder
zeitliche Verzögerung von 45 ns. Somit ist die O-Verzögerungszeit um 45 ns gegen die O-Zeit verschoben,
die 1-Zeit um 45 ns gegen die O-Verzögerungszeit und die 1 -Verzögerungszeit um weitere 45 ns gegenüber
der 1-Zeit usw. verschoben. In F i g. 4 sind außerdem die Oszillator-Eingangssignalpegel dargestellt.
Die Taktzyklus-Längensteuerschaltung 271 ist in Fig.5 gezeigt und umfaßt die Verknüpfungsschaltungen,
welche für den Taktgenerator 35 Steuersignale für Taktimpulsreihen von 180 ns, 225 und 270 ns erzeugen
(entsprechend den mit — 180-ns-Zyklus, — 225-ns-Zyklus,
— 270-ns-Zyklus bezeichneten Leitungen in F ig. 3).
Die Decodierleitungen BR und BR+MS für den
Verzweigungs- und Modulumschalter Y werden im ODER-Glied 300 verknüpft, dessen Ausgang über ein
UND-Glied 302 und ein ODER-Glied 303 auf die Steuerleitung 301 für 225 ns gegeben wird, wenn die
hochwertigen Verzweigungsbits C0.4—7 größer gleich 0111 sind. Das bedeutet, daß ein Zyklus von 225 ns
angefordert wird, wenn die hochwertigen Verzweigungsbits die Prüfung der Verzweigungsquelle anfordern,
um M 3.4 auf die Wahl der nächsten Mikroinstruktion zu setzen. Somit wird die Bitleitung C0.4 (d. h. C0.4
hat den Wert 1000) mit dem Ausgang des UND-Gliedes 312 verknüpft, welches die Bits CO.5-7 gleich 111
decodiert, und das Ausgangssignal des ODER-Gliedes 304 wird als ein Eingang auf das UND-Glied 302
gegeben.
Wenn die Bits C0.4 —7 kleiner 0111 sind, d. h., wenn
eine feste Verzweigung oder die Prüfung eines 5-Registerbits vorliegt, erfolgt die Umkehrung des
Ausgangssignals des ODER-Gliedes 304 durch die Schaltung 305 und Anlegen eines Signals an die
Steuerleitung 306 für 180 ns über das UND-Glied 307 und ein ODER-Glied 308 zur Einleitung eines 1&0ns
langen Zyklus.
Wenn eine Verzweigungs- und Verbindungsinstruktion BAL (CO.0-3 = 0010) decodiert wird, wird das
Signal auf der Decodierleitung BAL abwechselnd über das UND-Glied 313 auf das ODER-Glied 308 oder über
das UND-Glied 314 auf das ODER-Glied 303 gegeben, abhängig davon, ob das Bit C04 auf 0 steht (eine
Verbindungsinstruktion) oder auf 1 (eine Rückkehrinstruktion).
Ein UND-Glied 315 decodiert die Verschiebungsinstruktion (CO.0-3 = 0011), und sein Ausgangssignal
wird auf das ODER-Glied 308 gegeben, um einen Zyklus von 180 ns Länge zu erzeugen.
Eine arithmetische Vol'wortinstruktion wird durch C0.1,2=10 und dadurch angegeben, daß C0.4 — 7 =
0000, 0001 oder 0010 ist. Die arithmetische Vollwortinstruktion wird teilweise durch Decodierung der Bits
CO.0,1 = 10 im UND-Glied 319 decodiert, um die 10-Form der arithmetischen Mikroinstruktion zu erhalten.
Die Bits C0.6,7 werden im Inverter 320 decodiert, dessen Ausgangssignal auf ein UND-Glied 322 geleitet
wird. Die Bits -Γ0.4 und -Γ0.5 bilden außerdem
Eingangssignale um UND-Glied 322. Die Ausgangssignale
der Schaltungen 319 und 322 werden als Eingänge auf ein UND-Glied 521 gegeben, dessen Ausgangssignal
auf die Decodierleitung 523 der arithmetischen VoII-worlinstruktion
gegeben wird. Ein Signal auf der Leitung 323 erzeugt einen Zyklus von 225 ns, da es als
ein i > gang auf das ODER-Glied 303 gegeben wird.
Die 10-Form der arithmetischen Mikroinstruktion liefert ein Signal auf das ODER-Glied 308 über das
UND-Glied 328 und erzeugt, abgesehen von Vollwort- und Dezimaloperationen, in allen Fällen Zyklen von
180 ns. Zu diesem Zweck wird das Ausgangssignal des
UND-Gliedes 319 auf das UND-Glied 328 geleitet. Eine Decodierschaltung318 gibt ein Signal auf einen Inverter
329, wenn sie die Bits C0.4—7 gleich 1010 decodiert, die
eine Dezimaloperation bezeichnen. Das UND-Glied
ίο 322, welches zur Decodierung von arithmetischen
Voliwortoperationen benutzt wird, ist ebenfalls an einen Eingang des Schaltgliedes 329 angeschlossen. Die
Schaltung 329 erzeugt ein Ausgangssignal nur, wenn kein Eingangssignal vorhanden ist (wenn z. B. weder
eine Dezimal- noch eine Vollwortoperation vorliegt) und veranlaßt dadurch das UND-Glied 328, ein Signal
auf das ODER-Glied 308 für einen 180-ns-Zyklus zu leiten.
Die Decodierung der arithmetischen Mikroinstruktion 10 durch das UND-Glied 319 zusammen mit der
Decodierung der Bits CO.4-6 = 1010 (d.h. Dezimaloperation) erzeugt am Ausgang eines UND-Gliedes 325
auf der Dezimaladditions-Decodierleitung 326 ein Signal, welches auf die Steuerleitung 301 für einen
225-ns-Zyklus über das ODER-Glied 303 gegeben wird. Ein UND-Glied 317 decodiert die Bits CO.1,1 = 11 für
jede U-Form einer arithmetischen Mikroinstruktion und liefert ein Signal auf einen Eingang des ODER-Gliedes
308, wodurch ein Zyklus von 180 ns ausgeführt wird.
in Die Decodierung der Speicher-Mikroinstruktionsbits
C0.01 = 01 im UND-Glied 330 leitet den Zyklus der
drei Polaritätshalteriegel 340, 341 und 342 ein, die der Reihe nach auf 1 gesetzt werden, um an ihren
Ausgängen eine Speicher-1-Zykluszeit, eine Speicher-Verriegelungszeit
und eine Speicher-2-Zykluszei' zu erzeugen. Der erste Polaritätshalteriegel 340 wird durch
das ΟΓ-Signal zur Zeit 0 während des ersten Zyklus
gesetzt: der Polaritätshalteriegel 341 wird durch das 1 7"-Signal zur 1-Zeit während des ersten Zyklus und der
-to Polaritätshalteriegel 342 durch das ΟΓ-Signal zur O-Zeit
des zweiten Zyklus gemäß nachfolgender Beschreibung gesetzt.
Die Speicherzykiuszeiten 1 und 2 werden zusammen mit der Decodierung der Speicherinstruktionsbits und
ihrer Unterformbits dazu benutzt, einen Zyklus von 225 oder 270 ns während des ersten Speicherzyklus einer
Speichermikroinstruktion und einen Zyklus von 270 ns während des zweiten Speicherzyklus zu wählen.
Somit werden die Signale auf der Speicher-Mikroinstruktions-Decodierausgangsleitung
vom UND-Glied 330 und der Leitung für den zweiten Speicherzyklus auf ein UND-Glied 350 geleitet, um die Steuerleitung 351
für den 270-ns-Zyklus während aller zweiten Speicherzyklen zu erregen.
Während eines ersten Speicherzyklus decodieren die UND-Glieder 331, 332 und 333 ein Speicherwort, ein
Speicherhalbwort bzw. ein Speicherbyte und ihre Ausgangssignale werden auf ein ODER-Glied 352
geleitet, dessen Ausgangssignal wiederum an ein UND-Glied 353 angelegt wird. Das Signal auf der
Leitung für den ersten Speicherzyklus wird ebenfalls als ein Eingangssignal an das UND-Glied 353 angelegt und
die Speicher-Mikroinstruktions-Decodierleitung vom
UND-Glied 330 bildet den dritten Eingang zum
b5 UND-Glied 353. Somit veranlassen das ODER-Glied
352 und das UND-Glied 330 während eines ersten Speicherzyklus das UND-Glied 353 zur Erzeugung
Äis inn uei SieuC'i leitung 355 mi ueh
270-ns-ZyWus, wenn die Unterform der Mikroinstruktion
ein Speicherwort, ein Speicherhalbwort oder ein Speicherbyte ist.
Wenn die Unterform der Speicher-Mikroinstruktion ein Lese-Vollwort, ein Lese-Halbwort oder ein Lesebyte
ist, decodieren die UN D-Glieder 335,336 bzw. 337 diese
Unterform entsprechend. Ihre Ausgangssignale werden an ein ODER-Glied 354 angelegt, welches zusammen
mit den Signalen auf der Leitung für den ersten Speicherzyklus und der Speicher-Mikroinstruktions-Decodierleitung
ein UND-Glied 355 zur Erzeugung eines Ausgangssignals veranlaßt, welches über das
ODER-Glied 303 auf die Steuerleitung 301 für den 225-ns-Zykius geleitet wird.
Die Einstellung der Riegel 340 bis 342 wird jetzt genauer beschrieben. Setzen und Pückstellen dieser
Riegel erfolgt durch die Inverter 343 und 345 und die Eingangstaktsignalzeit 0. Ein Inverter 344, ein UND-Glied
346 und die Leitungen für die Eingangstaktzeit 1 und die 1-Verzögerungszeit liefern die Setz/Rückstellfunktion
für den Riegel 341.
Ein Inverter 347 und ein UND-Glied 348 veranlassen das Setzen des Riegels 340 während des ersten Zyklus
einer Speichermikroinstruktion und verhindern das Setzen während des zweiten Zyklus.
Verzweigungs-Mikroinstruktion
F i g. 6 zeigt (Mikroinstruktion »Verzweigung«) schematisch die Ausführung einer typischen Verzweigungs-Mikroinstruktion,
welche eine Zykluszeit von 180 ns erfordert. F i g. 7 zeigt das Zeitdiagramm für verschiedene
Operationen bei der Ausführung der Verzweigungsinstruktion. Das Steuerregister C2 ist auf der rechten
Seite der Fig. 6 mit den Bytepositionen CO1CI, C2und
C3 dargestellt. Die Hexadezimalwerte der vier Bytes der Mikroinstruktion 1036204 Fsind über dem Register
2 dargestellt. Die Datenbitpositionen in jedem Byte sind in der linken Spalte im Steuerregister Cangegeben und
die Bitwerte der Mikroinstruktion in der rechten Spalte. Willkürlich gewählte Werte wurden dem P-Register
und dem Byte 1 des V-Registers auf der Adresse 13 in den Arbeitsspeichern 5 und 6 zugeordnet.
Die vier werthohen Bits C0.0—3 haben den Wert 0001 und bezeichnen damit eine Verzweigungs-Mikroinstruktion.
Der Grund für die Ausführung dieses Verzweigungswortes liegt in der Verzweigung einer
Mikroinstruktion innerhalb desselben Moduls des Steuerspeichers. M 2 wird von /V 2 gesetzt und bleibt
daher gleich, nur M3 wird verändert. Die spezielle Wortadresse innerhalb des Moduls (die Änderung nach
M3) wird bestimmt durch
1. das werthohe Verzweigungsfeld C0.4—7,
2. die nächsten Adreßbus C30—3 und
3. das niedere Verzweigungsfeld C3.4 — 7.
Da eine immer auf eine Wortgrenze aufgerichtete Mikroinstruktion adressiert wird, bleiben die Bits 6 und
6 von M3 unberücksichtigt, da es sich um Bytewahlbits
des Adreßregisters handelt.
Die hochwertigen Verzweigungsbits C0.4 — 7 sind
gleich 0000 und zwingen daher Bit 4 von M3 auch auf 0.
Eine Decodierung des wertniederen Verzweigungsfeldes (1111) führt zur Übertragung von Verzweigungsquellendaten
auf die Ver/.weigungsschaltungen 4 und zwingen Bit 5 tics M 3-Registers in cmc einer Prüfung
entsprechenden Stellung. Die vier wertholien Bits CJ.i1 -i führen /ur direkten Arbeitsspeicher adressierung,
wodurch die vier wertniederen Hits des /'Rej'i
Schaltung 150 decodiert werden und das L/-Register im /4-Arbeitsspeicher 5 adressieren. Die Daten im LZ-Register
werden auf das A-Register 21 übertragen. Bits C 1.4—5 führen zur Übertragung des Hexadezimalwertes
FB (Byte 1 des L/-Registers) von A 1 auf die
Positionen von Byte 2 und 3 des A-Byteassemblierers 23. Byte 3 des A -Byteassemblierers 23 wird auf die
Verzweigungsschaltungen 4 geleitet und die wertniederen Verzweigungswahlbits C3.4—7 leiten Bit 7 der
to Verzweigungsschaltungen, d. h., eine logische 1, auf Bit 5
des M 3- Registers. Die Übertragung der Quellendaten vom Λ-Arbeitsspeicher 5 auf die Verzweigungsschaltungen
4 erfolgt ungefähr in der Zeit von 35 bis 75 (F i g. 7). Das Setzen des Λ·/3-Registers erfolgt in diesem
spezielien Fall ungefähr zwischen 45 und 90, da die Verzweigungsinstruktion von einer Art ist, bei welcher
die Verzweigungsquelle Bit 5 des M3-Registers setzt,
welches entweder das gerade oder das ungerade Wort eines Doppelwortes wählt und erst später im Zyklus
benötigt wird. Das Doppelwort wird aus dem Steuerspeicher gemäß Darstellung in Fig. 7 durch die
Auswahlleitung ungefähr in der Zeit zwischen 75 und 105 gelegen.
Die Verzweigung zu einer neuen Mikroinstruktion ist begleitet durch die Fortschreibung des P-Registers auf
die neue Arbeitsspeicheradressierung. Semit führen die Bits C2.2-3 ungefähr zur Zeit 45 bis 90 zur
Adressierung des P-Registers und Übertragung seines Inhalts auf das ß-Register 22 und dann den Assemblierer24und
ALU2\m& ALUX Die Bits Cl.6,7 leitenden
K-Wert (C2.4-7) auf ALU! und ALU3. Ungefähr zur
Zeit 45 leiten die Bits C2.2,3 den Wert im P-Register
(00000010) über das ß-Register 22 und den Byteassemblierer 24 auf ALU2 und ALU3. Der ß-Schalier tritt in
Tätigkeit bei einer Decodierung der Bits 6 und 7 des Byte C1 der Mikroinstruktion, welches gleich 10 ist, und
leitet den Wert des K-Feldes 0001 in den höherwertigen
Eingang von ALU2 und ALU3 und den Wert 0000 in den niederwertigen Eingang. Wenn die Werte für Pund
K in der /ALLODER-verknüpft werden (d. h. Bit C2.1
erfordert eine ODER-Funktion), wird das dem Hexadezimalwert 12 gleiche Ergebnis im Z-Register 30
gespeichert. Ungefähr zur Zeit 135 wird das Ergebnis in das P-Register gesetzt.
Arithmetische Mikroinstruktion — echte Vollwortaddition
F i g. 8 zeigt schematisch die Ausführung einer echten Vollwortaddition (d. h. ohne Komplementbildung), die
einen Zyklus von 225 ns gemäß Darstellung im Zeitdiagramm der F i g. 9 erfordert. Der untere rechte
Teil der Fig.8 zeigt die Operationen, die nach dem
Zeitpunkt 180 in dieser Taktimpulsreihe erfolgen. In diesem Zusammenhang wird auf die Setz/Rückstelleitung
für das Z-Register im Zeitdiagramm hingewiesen, aus welchem zu ersehen ist, daß die Bytes 0 und 1 des
Rechteckergebnisses im Z-Register erst nach Beginn des folgenden Mikroinstruktionszyklus gespeichert
werden. Dadurch wird die Ausführung der Mikroin-
bo struktion in keiner Weise gestört, da das Ergebnis erst in
das D-Register zum Zeitpunkt 45 des folgenden Zyklus gesetzt wird.
Die Mikroinstruktion B04E64ACdes Beispiels ist eine
Mikroinstruklion für eine echte Vollwortaddition ;nit
b5 Snnderleiiiing. Das Hauptziel der Mikroinstrukiion ist
die Addition des im V-Register (Teil des Arbeitsspeichers
5) gespeicherten Vollwortes zu den acht
^-Arbeitsspeicher 6. Die unteren 24 Bits (z. B. Bytes 1
Lis 3) des Ergebnisses sind auf die unteren 24 Bits des
K-Registers zu leiten.
Die Decodierung der Bits CO.1,2 schreibt eine
Rechen-Mikroinstruktion vor. Die Decodierung der Bits
C0.2,3 bestimmt die Form der Rechenoperation, d. h.
Operanden werden an der ß-Quelle gefunden und die Λ-Quelladressen und das Ergebnis wird in der
ß-Queliadresse gespeichert. Die Decodierung der Bits
C0.4—7 schreibt eine echte Vollwortaddition vor.
Decodierung der Bits C 1.0—3 fordert einen direkten
Arbeitsspeicherzugriff der A-Quelle, worin die Bits 1, 2 und 3 des Bytes C1 zusammen mit den Bits 4 bis 7 des
P-Registers zur Wahl der V-Registerstelle (d.h. 14) im
Λ-Arbeitsspeicher 5 benutzt werden. Der Inhalt des
V-Registers, der Hexadezimal wert 1497 C 5 A 2 wird in das /4,-Register 21 und dann auf den A-Byteassemblierer
23 aufgrund der Decodierung von C 1.4,5 übertragen, die die Übertragung aller 32 Bits oder vier Bytes des
V-Registers fördert. Bits 6 und 7 des Bytes Cl sind Zustand-Setzbits, die nur die 24 wertniederen Bits (die
wertniederen Bytes 1, 2 und 3) des aus der Rechenoperation erhaltenen Ergebnisses im K-Register
an der Arbeitsspeicheradresse 16 speichern lassen oder für diese Stelle bestimmen lassen.
Die Decodierung der Bits C2.0—3 führt zur direkten
Adressierung des ß-Quellenoperanden, wobei die Bits 1,
2 und 3 des C2-Bytes und die Bits 4 bis 7 des P-Registers zur Adressierung des V-Registers im ß-Arbeitsspeicher
6 benutzt werden. Der Inhalt des V-Register, nämlidi
der Hexadezimalwert 2 DEC 5972, wird auf das ß-Register 22 übertragen und die Bytes 2 und 3 dieses Wortes
werden dann auf den ß-Byteassemblierer 24 übertragen. Die Decodierung der Bits C2.4,5 führt zur Leitung nur
der wertniederen acht Bits, das ist das Byte 3, der Daten im ß-Byteassemblierer auf die ALU3 und zur Sperre
der 24 werthoher Bits (Bytes 0 bis 2) der ß-Quelle. Dadurch wird Byte 2 im ß-Assemblierer 24 daran
gehindert, auf die ALU2 übertragen zu werden. Die Werte in der ALU2 werden addiert und in die Bytes 0
und 2 des Z-Registers 30 eingegeben und die Werte in
der ALU3 werden ebenfalls addiert und in die Bytes 1 und 3 des Z-Registers 30 gesetzt.
Bits C3.0—5 werden in das M3-Register zur
Adressierung der nächsten Mikroinstruktion gesetzt, die
nächste Mikroinstruktion ist dann im selben Modul und daher wird das M2-Register vom N 2-Register gesetzt.
Die oben beschriebenen Operationen laufen alle innerhalb der ersten 180 ns der Taktimpulsreihe ab, wie
aus dem Zeitdiagramm zu ersehen ist. Beginnend bei der Zeit 180 werden die Operationen ausgeführt, die
schematisch in den unterbrochenen Linien im rechten unteren Teil der Fig. 8 gezeigt sind. Zur Zeit 180
werden die Bytes 0 und 1 des A-Registers in die Bytes 2 und 3 des /4-Byleassemblierers 23 übertragen. Zur
selben Zeit werden die Bytes 0 und 1 des ß-Registers in den ß-Byteassemblierer 24 übertragen. Der Inhalt der
Bytes 2 und 3 des A-Byteassemblierers wird auf die
ALU2 und die ALU3 übertragen. Wie bereits oben gesagt, verhindert die Decodierung der Bits C2.4,5 das
Leiten der drei werthohen Bytes der ß-Quelle in die AIAJ. Demzufolge wird vier Inhalt des ß-Byteassembiieleis
für die Übertragung /.ur ALU gesperrt. Die
Ergebnisse der echten Addition werden auf die Bytes 0
und 1 des /^-Register 30 übertragen. Diese Einstellung
der Bytes ZO und Zl erfolgt i-remäß obiger Beschreibung
von der Zeit 0 bis ungefähr zur Zeit 45 des
ι iiKiiiVtpulst cmc. t^ci
Inhalt des Z-Registers wird auf das D-Register während des folgenden Zyklus zwischen der Zeit 45 und der Zeit
90 übertragen. Während des Lese-Schreibleiles des nächsten Zyklus werden nur die Bytes 1, 2 und 3 des
D-Registers auf das V-Register in den beiden Arbeitsspeichern 5 und 6 übertragen, da die Decodierung
der Bits C 1.6,7 nur die 24 wertniederen Bits des Ergebnisses dafür bestimmt
Beispiel für Rechen-Mikroinstruktion-Byteaddition
Fig. 10 zeigt schematisch die Ausführung der Mikroinstruktion »FD 3C2F92«. Das zugehörige Zeitdiagramm
ist in F i g. 11 gezeigt. Die Bits 0 und 1 des
Bytes CO der Mikroinstruktion bezeichnen nach Decodierung eine Rechen-Mikroinstruktion. Die spezifische
Operation oder Form erhält man durch Decodierung der Bits 2 und 3 des Bytes CO. In diesem
Fall ist jedes der Bits gleich 1 und besagt, daß das Ergebnis einer eine /4-Quelle und eine ß-Quelle
benutzenden Operation zur ß-Quellenadresse weggespeichert
wird. Bit 4 des Byte CO steht auf 1 und zeigt an, daß es sich bei der Operation um eine echte Addition
(ohne Komplementbildung) handelt. Eine Schaltersieuerung
erfolgt durch die Bits 5, 6 und 7 des Bytes CO. Im gegebenen Beispiel stehen die Bits auf 101 und führen zu
einer Kreuzung der werthohen und wertniederen Hexadezimalwerte (5 und 7), die aus den A-Schalter
gegeben werden und dann nach der Kreuzung den hohen Wert (7) sperren. Bit 0 des Bytes Cl ist gleich 0
und zeigt die direkte Adressierung des Arbeitsspeichers an, wodurch die Bits 1, 2 und 3 von C1 direki zusammen
mit den wertniederen Bits des P-Registers zur Adressierung einer ausgewählten Stelle (LZ-Register) im
Arbeitsspeicher 5 benutzt werden. Die Bits 4 und 5 des
J5 Bytes Cl der Mikroinstruktion sind gleich 11 und
führen zur Wahl des Bytes 3 des vom Arbeitsspeicher 5 ausgewählten Λ-Quellenregisters (L/3). Bit 6 und Γ des
Bytes Cl sind gleich 00, so daß das Zustandsregister S
nicht gesetzt wird. Bits 0 bis 3 des Bytes C2 werden dazu benutzt, das W-Register im ß-Arbeitsspeicher 6 als
ß-Quelle direkt zu adressieren. Die wertniederen Bits im P-Register werden wieder für einen Teil der Adreßdecodierung
bei der Auswahl des W-Registers benutzt. Der ganze Inhalt des W-Registers wird auf aas
ß-Register 22 übertragen und der Wert (28) im Byte des W-Registers wird zur Übertragung auf beide Bytepositionen
des ß-Byteassemblierers 24 durch die Bits 4 und 5 des Bytes C2 der Mikroinstruktion ausgewählt. Bits 6
und 7 des Bytes C 2 der Mikroinstruktion führen zur direkten Leitung der Bytes im ß-Assemblierer 24 auf die
ALU2 und ALU3. Die hexadezimalen Zahlen 05 und 28
werden zueinander in jedem Ai-LV-Abschnitt addiert
und mit einem Vergleich der Ergebnisse festgestellt, ob ein Fehler in den ALLZ-Abschnitten aufgetreten ist oder
nicht. Wenn kein Fehler auftrat, wird das Ergebnis, in diesem Fall der Hexadezimalwert 2D, auf jedes Byte des
Z-Registers 30 übertragen.
Die ausgeführte Mikroinstruktion muß außerdem die als nächstes auszuführende Mikroinstruktion adressieren.
Somit werden die Bits 0 bis 5 des Bytes C3 der Mikroinstruktion dazu benutzt, mindestens teilweise die
Adrcse der nächster. Mikroinstri-'-aion zu biMen. Die
Bits 0 bis 3 des Bytes Ci werden also diieki auf die Bits
ü bis 3 des A-/3-Registers !!H.-rlragen. b.i ό und 7 des
b5 Bytes CJ erfordern eine Verzweigung entsprechend
der Stellung der Bits 4 uüd 5 υΌ S R.ci';tc: s. F.s wird
angenommen, daß die Bi... ■ ..r.d 5 des .S-Rcgisi'.'rs auf 1
*t UIIU J
des Bytes C3 ODER-verknüpft und das logisch 11 gleichkommende Ergebnis wird in die Bits 4 und 5 des
/V/3-Registers pdeitet. Der zeitliche Ablauf der obigen
Operalion isi ;:us der Zeittabelle der F i g. 11 zu ersehen,
wc das Sv-'/en des Steuerregisters von 0 oiif die Zeit 4 S -,
Zu j.i.-hcn ist, wodurch die Bildung der nächsten
Mikrcinstruktionsadresse zwischen der Zeit 45 und der Zeit 90 abgeschlossen werden kann. Die nächste
Mikroinstruktion kann darstellungsgemäß ausgelesen weiden, indem die Wahlleitung ungefähr zur Zeit 75 Ul
beginnt. Die A- und ß-Quellen werden von den A- und
ß-Arbeitsspeichern 5 und 6 zwischen der Zeit 35 und der Zeit 70 gelesen und die A- und ß-Quellen stehen in den
A- und ß-Registern zwischen der Zeit 45 und der Zeit 90 zur Verfügung. Die Wege zwischen den A- und i-,
ß-Registern 21 und 22 und den zugehörigen Byteassemblierern 23 und 24 beginnen ungefähr zur Zeit 45 zu
leiten und die Umschalter zwischen den Byteassemblierern und der ALU ebenfalls. Die ALU leitet ungefähr
zur Zeit 90 eine ausgewählte Rechenoperation ein und ungefähr zur Zeit 135 wird der Eingang zum Z-Register
30 leitend. Daten, die von einer vorhergehenden Ausführung einer Mikroinstruktion eventuell noch im
Z-Register stehen, werden vom Z-Register auf das D-Register übertragen, beginnend ungefähr zur Zeit 45,
und diese Daten werden dann vom D-Register auf die ausgewählten Stellen im A- und ß-Arbeitsspeicher 5
bzw. 6, beginnend bei der Zeit 90, übertragen. Die Durchgangsprüfung der bestimmten Information erfolgt
zwischen den Zeitpunkten 135 und 180. jo
Echte Dezimaladdition
Fig. 12 zeigt schematisch eine typische Dezimal-Additions-Mikroinstruktion
BA 4C6FAC und Fig. 13 die Zeiteinteilung der verschiedenen Maschinenoperatio- jj
nen. Die Decodierung der Bits CO.0,1 ergibt eine arithmetische Instruktion. Die Decodierung der Bits
CO.2,3 zeigt an, daß die Operation eine Λ-Quelle und
eine ß-Quelle betrifft und daß Ergebnisse auf die Adresse der ß-Quelle zu setzen sind. Bits C0.4 —7 w
fordern eine dezimale Addition. Es wird angenommen, daß das Zustandsregisterbit 50 gleich 0 ist und eine
echte Additionsfunktion liefert. Die Bits C 1.0—3 fordern die direkte Arbeitsspeicheradressierung, um die
A -Quelle zu erhalten unter Verwendung der Bits 4 bis 7 des P-Registers und der Bits C 1.1,2 und 3 zur
Adressierung des V-Registers im Arbeitsspeicher 5 auf der Adresse 14. Die Bits C 1.4,5 besagen, daß die
Operation mit dem Byte 3 des V-Registerinhaltes durchzuführen ist. Die Bits C 1.6,7 erfordern keine 5(i
Einstellung des Zustandsregisters. Die Bits C2.0—3 fordern die direkte Arbeitsspeicheradressierung der
ß-Quelle, um die Bits 4 bis 7 des P-Registers und die Bits C2.1 —3 zur Adressierung des V-Registers an der Stelle
16 im ß-Arbeitsspeicher 6 zu nutzen. Die Bits C 2.4,5 zeigen an, daß Byte 3 des Y- Registerinhaltes zu
bearbeiten ist Die Bits C2.6.7 zeigen an, daß die Leitung
der ß-Quelle normal oder grade ist, d. h. die hohen und
niedrigen Hexadezimalwerte des Bytes 3 werden entsprechend auf die hohen und niedrigen Positionen
der ALU2 und ALUZ geleitet Bits C3.0—5 einschließlich
werden auf das M3-Register übertragen und das M 2- Register wird aus dem N 2-Register gesetzt um die
nächste Mikroinstruktion aus demselben Speichermodul 711 adressieren.
Somit ist aus Fig. 12 zu ersehen, daß die direkte
Arbeitsspeicheradressierung der A- und ß-Quellen den Inhalt des V-Registers aus dem Arbeitsspeicher 5 auf
das 4-Register 21 und den Inhalt des K-Regii'er·- r,i:
dem fi-Ameitsspeicher ** .cif das ß-Rcgistcr 2.
überträgt In den Bytepositionen 0, 1 und 2 der A- uric
ß-Register sind Xe dargestellt, da der Inhalt diesel
Bytes während der Operation nicht benutzt wird. Wn
oben gezeigt, wählten die Bytev^.hlbiis die Bytes 3 de:
Inhaltes des V-Registers und des V-Registers. Soini wird Ii; ic 3 im 4-Registei 21, welches den Hexadczi
nialwert 07 enthält, auf alle vie; Bytepositionen de:
Λ-Byteassemblierers 23 übertragen. Dieser Wert wire
dann von den Positionen für byte 2 und Byte 3 de: /I-Byieasseinbliereis direkt auf die /4-Eingänge vor
ALU2 und ALUZ gegeben. Byte 3 im ß-Rcgister ha einen Hexadezimalwert von 15 und wird auf beidi
Byieposiliotieii des ö-ByieäSSenibiierers 24 und Vüf
dort über die Echt/Komplement-Schaltungen TIC au die 3-Eingänge der ALU2 und ALUi übertragen. Di*
hexadezimalen Werte werden in der ALU3 addiert un( das hexadezimale Ergebnis IC wird auf alle viei
Bytepositionen des Z-Registers 30 übertragen. All« oben im Zusammenhang mit der Mikroinstruktioi
beschriebenen Operationen erfolgen während dei ersten 180 ns des Zyklus. Die während der Ausführung
der Mikroinstruktion nach dem Zeitpunkt 180 durchge führten Operationen sind in unterbrochenen Linien ii
der unteren rechten Ecke der Fig. 12 gezeigt. Zur Zei
180 wird der Hexadezimalwert IC vom Byte 3 de: Z-Registers auf Byte 3 des A -Registers und von dort au
die Bytes 2 und 3 des A-Byteassemblierers 2: übertragen, um an die /^-Eingänge der ALU2 unc
ALUZ angelegt zu werden. Die vier Eingänge für di( Dezimalkorrektursteuerungen, Bits C3.0—3, Bit:
C3.4 —7, sowie die beiden Ubeiiragsbiis der erster
Dezimaloperation sorgen dafür, daß der K-Assemblie rer eine Korrekturzahl 06 auf die ß-Eingänge de
ALU2 und ALUZ gibt. Der Korrekturfaktor wird zun hexadezimalen Ergebnis der ersten Operation addien
um ein korrigiertes hexadezimales Ergebnis 22 zt erzeugen, welches vom Ausgang der ALUZ auf da:
Z-Register 30 übertragen wird. Aus dem Zeitdiagramn der Fig. 13 ist zu ersehen, daß das Setzen de:
korrigierten Ergebnisses in das Z-Register 30 ungefäh zwischen den Zeitpunkten 0 und 45 des folgender
Zyklus stattfindet. Kurz danach wird dieses korrigiert Ergebnis in das D-Register gegeben und danach au
Byte 3 des K-Registers in den beiden Arbeitsspeichern ί und 6 zurückgeführt.
Speicher-Mikroinstruktion
Die Ausführung der Speichermikroinstruktioi
487ß2D££ist schematisch in den Fig. 14a und 141
gezeigt und die Zeiteinteilung der verschiedener Maschinenoperationen in den Zeitdiagrammen de
Fig. 15a und 15b. Aus den Zeitdiagrammen ist zi
ersehen, daß die Ausführung der Speichermikroinstruk tion zwei Taktimpulsreihen (Speicherzyklen 1 und 2) mi
jeweils 270 ns Dauer erfordert Mit der als Beispie gezeigten Mikroinstruktion 487 ß 2DEE soll das Daten
wort (oder ein Teil davon), welches in den Q-Registen
der beiden Arbeitsspeicher steht, auf die Hauptspeicher adresse übertragen, die in den W-Registern diese:
beiden Arbeitsspeicher steht Bei dieser speziellei Mikroinstruktion werden die Daten auf den Hauptspei
eher \b unter Verwendung der Bits 0 bis 3 de: T-Registers als Maske übertragen.
Die Ausführung der Mikroinstruktion wird in Zusammenhang mit den verschiedenen Bits beschrie
ben, die die Mikroinstruktion bilden und darstellungsge
mäb im Steuerregister 2 gespeichert sind. Die bus O und
1 des Byii.s CO bezeichnen nach Dccouicrung eine
SDeichermikroinst^uktion. Die Bits 2, 3 und 4 des Bytes
CO bezeichnen die UnteiTunn der Instruktion, eine
Einschreibeinstruktion. Die Bi'* 0 bis 3 des Bytes CI
bezeichnen nach Decodierung die direkte Adressierung der Arbeitsspeicher unter Verwendung der Bus 1 2 und
3 des Byies CI und der Bits 4 bis 7 des P-Registers zur
Adressierung des (^-Registers auf der Adresse 17 des
A Arbeitsspeichers. Der Inhalt F7F3F2C3 des Q-Registers
wird auf das A-Register. 21 und dann auf den Λ-Byteassemblierer 23 übertragen. Die Bits 6 und 7 des
Bytes C 2 geben an, daß die Daten im y4-Byteassemblierer
unter der durch die werthohen Bits 0 bis 3 des ^Registers bestimmten Maske auf der. Hauptspeicher
\b zu übertragen sind. Diese werthohen Bits 0010 des Γ-Registers veranlassen nur die Übertragung des Bytes
2 der Daten im Assemblierer 23 auf den Hauptspeicher ib.
Die Adresse, auf der dieses Datenbyte gespeichert ist, wird angegeben durch die Bits 0 bis 3 des Bytes C 2 dcr
Mikroinstruktion. Die Decodierung dieser Bits veranlaßt die direkte Adressierung des Arbeitsspeichers 6 und
die Bits 1,2 und 3 des Bytes C 2 sowie die wertniederen Bits 4 bis 7 des P-Registers werden in der Schaltung 151
decodiert und wählen das W-Register auf der Adresse 12. Die Hauptspeicheradresse 001EFD 00 im W-Register
wird auf das B-Register 22 übertragen und die wertniederen Bytes 2 und 3 vom B-Register 22 auf den
ß-Byteassemblierer 24. Byte 2 im B-Byteassemblierer wird auf die ALUI übertragen und in den Bytes 0 und 2
des Z-Registers 30 gespeichert Das wertniedere Byte 3 im Assemblierer 24 wird auf einen Eingang der ALWi
übertragen. Ein anderes Eingangssignal zur ALWi fordert die Fortschreibung des wertniederen Bytes um
den Wert 1, woraufhin der Wert 1 zum Byte 3 des Byteassemblierers 24 addiert und das Ergebnis in den
Bytes 1 und 3 des Z-Registers 30 gespeichert wird. Die Fortschreibung der Adresse wird bestimmt durch die
Bits 4 und 5 des Bytes C1 der Mikroinstruktion, welche
angibt, daß die Fortschreibung eine Additionsfunktion sein muß. Die Bits 6 und 7 des Bytes C2 der
Mikroinstruktion geben an, daß der Wert der Fortschreibung sich nach dem Wert der Bits 0 bis 3 des
Γ-Registers richtet In diesem speziellen Fall fordert die Decodierung der Bits im T-Register eine Fortschreibung
um den Wert 1. Abhängig davon, ob es sich um eine Byte-, Halbwort- oder Wortoperation in bezug auf
die zu speichernden Daten handelt, erfolgt die Fortschreibung in Schritten von 1, 2 oder 4. In dem
Beispielwort ist nur ein Byte im Hauptspeicher weggespeichert und die Fortschreibung beträgt somit 1.
Ungefähr zum Zeitpunkt 180 des Speicherzyklus werden die Bytes 0 und 1 des B-Registers 22 auf den
B-Byteassemblierer 24 und von dort die Bytes 0 und 1 des Z-Registers 30 über die ALU2 und die ALUZ
übertragen. Nach der Verwendung der werthohen Bits des Γ-Registers zur Leitung der Daten in den
Hauptspeicher \b führt die Decodierung der Bits 2, 3 und 4 des Bytes CO und der Bits 6 und 7 des Bytes C2
zur Rückstellung der werthohen Bits des Γ-Registers.
Der Speicherzyklus 2 der Mikroinstruktionsausführung ist im unteren Teil der Fig. 14 dargestellt. Zu
Beginn des Zyklus 2 wird durch Decodierung der Dits 2, 3 und 4 des Bytes CO und des Bits 4 des Bytes C 3 die
Adresse vom Wert !2 auf den Wert 13 um 1 erhöht, welche das W-Register des ß-Arbeitsspeichers während
des ersten Zyklus wählte und dadurch das L/-Register im ß-Arbeitsspeicher 6 adressiert. Die wertniederen Bytes
2 und 3 des tV-Registers enthalten einen Zählwert, der
gleich der Anzahl von Bytes ist, die aus dem Hauptspeicher für die Verarbeitung während einer
Rechenoperation übertragen werden müssen, und zwar maximal 256 Bytes. Im gezeigten Ausführungsbeispiel
des Systems wird dieser Zählwert immer in dem Register gespeichert, welches unmittelbar vor dem für
die Adreßdaten benutzten Register liegt. In diesem speziellen Fail ist es das W-Register. Jedesmal, wenn ein
Wort oder ein Datenteil eines Wortes vom Hauptspeicher zur Verarbeitung übertragen und das Ergebnis in
den Hauptspeicher zurückgesetzt wird, muß die
VT Vl l£.«lll Uli iy-lWgiaiVI LfIO AUlU LjX 1 CIUlICIl U» TT Cl LC3 W
herabgesetzt werden, wodurch das Ende einer bestimmten Rechenoperation angezeigt wird. Die Unterform
der jeweils ausgeführten Speichermikroinstruktion gibt den Wert an, um welchen die Zahl herabgesetzt wird.
Eine Byteoperation erfordert die Herabsetzung um 1, eine Halbwortoperation die Herabsetzung um 2 und
eine Vollwortoperation die Herabsetzung um 4. Im vorliegenden Beispiel bezeichnen die Mikroinstruktionsbits
2,3 und 4 des Bytes CO nach der Decodierung eine Speichermikrooperation, wodurch also eine Herabsetzung
um 4 gefordert wird, auch wenn der Inhalt des Γ-Registers 3 dieser vier Bytes im Wort maskiert Somit
wird das wertniedere Byte 08 im B-Byteassemblierer 24 auf die ALWi übertragen und um 4 herabgesetzt und
dann in den Bytes 1 und 3 des Z-Registers 30 gespeichert. .
Zu den Zeitpunkten 45 bis 90 des Speicherzyklus 2 wird die fortgeschriebene Wortadresse (001 EFDOl),
die auf das Z-Register während des ersten Speicherzyklus übertragen wurde, in das B-Register 31 übertragen.
Während der Zeit 90 bis 150 des zweiten Zyklus wird die
fortgeschriebene Adresse vom D-Register auf das rV-Register über den SDBO-Assemblierer 11 übertragen.
Die nächste auszuführende Mikroinstruktion wird teilweise über die Folgeadreßbits 0 bis 3 des Bytes C 3
der ausgeführten Mikroinstruktion adressiert Die hohen Verzweigungsbits 5,6 und 7 des Bytes CO werden
decodiert, wodurch das Bit 4 des Λ/3-Registers auf 0
gesetzt wird. Die niederen Verzweigungsbits 5, 6 und 7 des Bytes C3 veranlassen nach der Decodierung das
Setzen des Bits 5 im M 3-Register auf denselben Wert, den das Bit 7 des 5-Registers hat Im vorliegenden
Beispiel ist Bit 7 des 5-Registers gleich 0, also auch Bit 5 des M3-Registers. Eine Modulumschaltung ist in der
gezeigten Mikroinstruktion nicht vorgesehen, wodurch der Wert der Adreßbus in dem W2-Register in das
Af2-Register zur Adressierung der gewünschten Mikroinstruktion in demselben Modul gesetzt wird.
Claims (9)
1. Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems mit
einem Taktgenerator und einem Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist als die
Verarbeitungszeit arithmetischer und logischer Schaltungen, dadurch gekennzeichnet,
daß der Taktgenerator (35) in Abhängigkeit von der auszuführenden Mikroinstruktion die kürzestmögliche
von mehreren, in ihm erzeugbaren Taktimpulsreihen verschiedener Zykluslänge (Zyklen, Fig.4)
abgibt.
2. Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet, daß der Taktgenerator eine Steuereinheit
(Fig.5) enthält, die in Abhängigkeit vom
Operationscode der auszuführenden Mikroinstruktion Auswahlsignale (301, 306; Fig.5) für die
Taktimpulsreihe erzeugt, die zur Ausführung dieser Mikroinstruktion erforderlich ist
3. Zentraleinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Steuereinheit (Fig.5)
besondere Auswahlsignale (SPX Zyklus, SP Versehe
SP2 Zyklus) erzeugt, mit denen die Auswahl mehrerer aufeinanderfolgender gleich langer oder
verschieden langer Taktimpulsreihen für bestimmte Mikroinstruktionen (z. B. Hauptspeicherzugriffe) gesteuert
wird.
4. Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß zur
Ausführung ausgewählter Mikroinstruktionen in Abhängigkeit vom Systemzustand (Zustandsregister
7a, Zustandsbits in Arbeitsspeichern 5, 6) kürzere oder längere Taktimpulsreihen erzeugt werden.
5. Zentraleinheit nach Anspruch 4, dadurch gekennzeichnet, daß für Mikroinstruktäonen vom
Typ »Verzweigung« in Abhängigkeit vom Systemzustand eine kurze oder eine lange Taktimpulsreihe
erzeugt wird und in letzterem Fall der Auswahl-Steuerimpuls für die nächste Mikroinstruktion spät in
der längeren Taktimpulsreihe erzeugt wird.
6. Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß
Mikroinstruktionen paarweise aus dem Steuerspei- « eher (la, Fig. 1) ausgelesen werden und die Wahl
der in diesem Paar auszuführenden Mikroinstruktion durch einen Steuerimpuls (Auswahl, F i g. 7) erfolgt,
der in Abhängigkeit von der Zykluslänge der Taktimpulsreihe der gerade ausgeführten Mikroin- --u
struktion früher oder später in dieser Taktimpulsreihe liegt.
7. Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß eine
für Halbwortoperationen ausgelegte arithmetische 5r>
und logische Einheit(-4Z.L/20)direkte Verbindungen
(42, Fig. 1) zwischen ihrem Ausgangsregister (30) und ihren Eingangsregistern (21, 22) für die rasche
Übertragung von Zwischenergebnissen bei Vollwortoperationen aufweist, so daß für deren Ausfüh- «>
rung eine einzige, gegebenenfalls verlängerte Taktimptiisreihe ausgewählt werden kann.
8. Zentraleinheit nach Anspruch 7, dadurch gekennzeichnet, daß bei Dezimaloperationen die
Dezimalkorrektiir bei der Direktübertragung vom ·■■
/WJi./-Ausgangsregister (30) zu einem der ALU-Emgangsregister
(22) durchgeführt wird.
9. Zentraleinheit nach einem oucf mehreren der
Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die Zugriffs- und Lesezeit eines an die Zentraleinheit
angeschlossenen Hauptspeichers (16,Fi g. 1) kleiner ist als die Verarbeitungszeit der arithmetischen und
logischen Schaltungen.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US2922370A | 1970-04-16 | 1970-04-16 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| DE2117936A1 DE2117936A1 (de) | 1971-11-04 |
| DE2117936B2 DE2117936B2 (de) | 1978-12-14 |
| DE2117936C3 true DE2117936C3 (de) | 1979-08-16 |
Family
ID=21847906
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE2117936A Expired DE2117936C3 (de) | 1970-04-16 | 1971-04-14 | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US3656123A (de) |
| JP (2) | JPS5729740B1 (de) |
| CA (1) | CA935934A (de) |
| DE (1) | DE2117936C3 (de) |
| FR (1) | FR2086169B1 (de) |
| GB (1) | GB1274830A (de) |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3809884A (en) * | 1972-11-15 | 1974-05-07 | Honeywell Inf Systems | Apparatus and method for a variable memory cycle in a data processing unit |
| US3800293A (en) * | 1972-12-26 | 1974-03-26 | Ibm | Microprogram control subsystem |
| JPS49116932A (de) * | 1973-03-09 | 1974-11-08 | ||
| JPS49116931A (de) * | 1973-03-09 | 1974-11-08 | ||
| JPS5078237A (de) * | 1973-11-09 | 1975-06-26 | ||
| US3972024A (en) * | 1974-03-27 | 1976-07-27 | Burroughs Corporation | Programmable microprocessor |
| FR2269150B1 (de) * | 1974-04-25 | 1977-10-28 | Honeywell Bull Soc Ind | |
| US3958227A (en) * | 1974-09-24 | 1976-05-18 | International Business Machines Corporation | Control store system with flexible control word selection |
| US4050096A (en) * | 1974-10-30 | 1977-09-20 | Motorola, Inc. | Pulse expanding system for microprocessor systems with slow memory |
| US3961313A (en) * | 1974-12-04 | 1976-06-01 | International Business Machines Corporation | Computer control apparatus |
| US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
| US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
| US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
| US4042912A (en) * | 1975-06-19 | 1977-08-16 | Honeywell Information Systems Inc. | Database set condition test instruction |
| IT1044750B (it) * | 1975-10-31 | 1980-04-21 | Sits Soc It Telecom Siemens | Unita centrale di comando di una pluralita di unita periferiche secondo il principio della divisione di tempo in cui la durata di ogni canale temporale e variabile |
| JPS6038740B2 (ja) * | 1976-04-19 | 1985-09-03 | 株式会社東芝 | デ−タ処理装置 |
| US4153941A (en) * | 1976-11-11 | 1979-05-08 | Kearney & Trecker Corporation | Timing circuit and method for controlling the operation of cyclical devices |
| US4172281A (en) * | 1977-08-30 | 1979-10-23 | Hewlett-Packard Company | Microprogrammable control processor for a minicomputer or the like |
| JPS5440537A (en) * | 1977-09-07 | 1979-03-30 | Hitachi Ltd | Pipeline control system |
| US4446533A (en) * | 1978-09-07 | 1984-05-01 | National Research Development Corporation | Stored program digital data processor |
| DE2853523C2 (de) * | 1978-12-12 | 1981-10-01 | Ibm Deutschland Gmbh, 7000 Stuttgart | Dezentrale Erzeugung von Taktsteuersignalen |
| US4201980A (en) * | 1978-12-26 | 1980-05-06 | Honeywell Information Systems Inc. | GCR Data write control apparatus |
| US4435757A (en) | 1979-07-25 | 1984-03-06 | The Singer Company | Clock control for digital computer |
| US4482983A (en) * | 1980-06-23 | 1984-11-13 | Sperry Corporation | Variable speed cycle time for synchronous machines |
| DE3036926C2 (de) * | 1980-09-30 | 1984-07-26 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und Anordnung zur Steuerung des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung |
| JPS58182758A (ja) * | 1982-04-20 | 1983-10-25 | Toshiba Corp | 演算制御装置 |
| JPS59739A (ja) * | 1982-06-28 | 1984-01-05 | Fujitsu Ltd | マイクロプログラム処理装置における時間保障方式 |
| JPS6085268U (ja) * | 1983-11-19 | 1985-06-12 | 鄭 瑛豪 | 自動車の制動装置 |
| US4635187A (en) * | 1983-12-19 | 1987-01-06 | At&T Bell Laboratories | Control for a multiprocessing system program process |
| US4636656A (en) * | 1984-05-21 | 1987-01-13 | Motorola, Inc. | Circuit for selectively extending a cycle of a clock signal |
| US4670837A (en) * | 1984-06-25 | 1987-06-02 | American Telephone And Telegraph Company | Electrical system having variable-frequency clock |
| US5053127A (en) * | 1987-01-13 | 1991-10-01 | William F. McLaughlin | Continuous centrifugation system and method for directly deriving intermediate density material from a suspension |
| US5151986A (en) * | 1987-08-27 | 1992-09-29 | Motorola, Inc. | Microcomputer with on-board chip selects and programmable bus stretching |
| US5428754A (en) * | 1988-03-23 | 1995-06-27 | 3Dlabs Ltd | Computer system with clock shared between processors executing separate instruction streams |
| US5032982A (en) * | 1988-05-18 | 1991-07-16 | Zilog, Inc. | Device for timing interrupt acknowledge cycles |
| US5237676A (en) * | 1989-01-13 | 1993-08-17 | International Business Machines Corp. | High speed data transfer system which adjusts data transfer speed in response to indicated transfer speed capability of connected device |
| US5109490A (en) * | 1989-01-13 | 1992-04-28 | International Business Machines Corporation | Data transfer using bus address lines |
| EP0650612B1 (de) * | 1992-03-25 | 1999-08-18 | Zilog Incorporated | Schnelle befehlsdekodierung in einem pipeline-prozessor |
| US5841670A (en) * | 1994-03-09 | 1998-11-24 | Texas Instruments Incorporated | Emulation devices, systems and methods with distributed control of clock domains |
| US5649174A (en) * | 1994-12-09 | 1997-07-15 | Vlsi Technology Inc. | Microprocessor with instruction-cycle versus clock-frequency mode selection |
| JP2717954B2 (ja) * | 1995-11-13 | 1998-02-25 | 廣延 大谷 | 自動車の制動構造及びこの構造を用いた自動車 |
| US6065131A (en) * | 1997-11-26 | 2000-05-16 | International Business Machines Corporation | Multi-speed DSP kernel and clock mechanism |
| US6314471B1 (en) * | 1998-11-13 | 2001-11-06 | Cray Inc. | Techniques for an interrupt free operating system |
| JP3450814B2 (ja) * | 2000-09-26 | 2003-09-29 | 松下電器産業株式会社 | 情報処理装置 |
| WO2006116046A2 (en) * | 2005-04-22 | 2006-11-02 | Altrix Logic, Inc. | Asynchronous processor |
| US7937568B2 (en) * | 2007-07-11 | 2011-05-03 | International Business Machines Corporation | Adaptive execution cycle control method for enhanced instruction throughput |
| TW200919306A (en) * | 2007-07-11 | 2009-05-01 | Ibm | Adaptive execution frequency control method for enhanced instruction throughput |
| US7779237B2 (en) * | 2007-07-11 | 2010-08-17 | International Business Machines Corporation | Adaptive execution frequency control method for enhanced instruction throughput |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3248708A (en) * | 1962-01-22 | 1966-04-26 | Ibm | Memory organization for fast read storage |
| US3569939A (en) * | 1963-12-31 | 1971-03-09 | Bell Telephone Labor Inc | Program controlled data processing system |
| US3426328A (en) * | 1965-01-18 | 1969-02-04 | Ncr Co | Electronic data processing system |
| US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
| US3573743A (en) * | 1968-09-30 | 1971-04-06 | Sperry Rand Corp | Programmable timing controls for magnetic memories |
-
1970
- 1970-04-16 US US29223A patent/US3656123A/en not_active Expired - Lifetime
-
1971
- 1971-04-06 FR FR717113016A patent/FR2086169B1/fr not_active Expired
- 1971-04-14 DE DE2117936A patent/DE2117936C3/de not_active Expired
- 1971-04-15 CA CA110404A patent/CA935934A/en not_active Expired
- 1971-04-16 JP JP2397171A patent/JPS5729740B1/ja active Pending
- 1971-04-16 JP JP2397011971A patent/JPS465165A/ja active Pending
- 1971-04-19 GB GB27190/71A patent/GB1274830A/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| GB1274830A (en) | 1972-05-17 |
| JPS465165A (de) | 1971-11-25 |
| DE2117936B2 (de) | 1978-12-14 |
| DE2117936A1 (de) | 1971-11-04 |
| FR2086169B1 (de) | 1973-06-08 |
| US3656123A (en) | 1972-04-11 |
| CA935934A (en) | 1973-10-23 |
| FR2086169A1 (de) | 1971-12-31 |
| JPS5729740B1 (de) | 1982-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2117936C3 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
| DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
| DE2716369C2 (de) | ||
| EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
| DE2346525B2 (de) | Virtuelle Speichereinrichtung | |
| DE2556624C2 (de) | Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung | |
| DE1803767A1 (de) | Elektronisches Datenverarbeitungssystem | |
| DE2536622C2 (de) | Verzweigungssteuerung mit flexibler Auswahl von Steuerworten | |
| DE3338345A1 (de) | Vektor prozessor | |
| DE3424962A1 (de) | Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben | |
| DE4420703A1 (de) | Mikrocomputer | |
| DE2717658A1 (de) | Anordnung zur ansteuerung eines mikroprogrammspeichers | |
| DE2452214A1 (de) | Mikroprozessor mit unmittelbarer und indirekter adressierung | |
| DE3121742C2 (de) | Mikroprogramm-Steuereinrichtung | |
| DE2755611A1 (de) | Steuereinheit fuer datenverarbeitungsanlagen | |
| EP0134831A1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
| DE2706877C2 (de) | Mikroprogramm-Steuereinrichtung | |
| DE2530599A1 (de) | Steuerung von ein/ausgabe-geraeten | |
| DE2617485B2 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
| DE2835110A1 (de) | Schneller echtzeit-rechneremulator | |
| DE2908776C2 (de) | Schaltung zur Speicheradressierung eines Speichers in einem Datenprozessor | |
| DE2747304C3 (de) | Einrichtung zur Mikrobefehlssteuerung | |
| DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor | |
| DE2545751C2 (de) | Ablaufsteuerung für eine Datenverarbeitungsanlage | |
| DE2727188A1 (de) | Anordnung zum adressieren eines speichers |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C3 | Grant after two publication steps (3rd publication) | ||
| 8339 | Ceased/non-payment of the annual fee |