DE2117936B2 - Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems - Google Patents
Mikroprogrammgesteuerte Zentraleinheit eines elektronischen DatenverarbeitungssystemsInfo
- Publication number
- DE2117936B2 DE2117936B2 DE2117936A DE2117936A DE2117936B2 DE 2117936 B2 DE2117936 B2 DE 2117936B2 DE 2117936 A DE2117936 A DE 2117936A DE 2117936 A DE2117936 A DE 2117936A DE 2117936 B2 DE2117936 B2 DE 2117936B2
- Authority
- DE
- Germany
- Prior art keywords
- register
- microinstruction
- bits
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims description 146
- 230000003936 working memory Effects 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 230000009365 direct transmission Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 10
- 230000000295 complement effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000002789 length control Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 101100022451 Mus musculus Mbnl3 gene Proteins 0.000 description 1
- 244000082988 Secale cereale Species 0.000 description 1
- 241000607479 Yersinia pestis Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 244000239635 ulla Species 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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 mikroprogrammgesieuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
mit einem Taktgenerator und einem Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist
ιϊ al» 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 nicnt ausgeführt werden können.
Bei einer mikroprogrammgestcuerten Zentraleinheit
eines elektronischen Datenverarbeitungssystems mit einem schnellen Stcuerspcicher. der das Steuerprogramm
enthält und deren Arbeitszyklus kürzer als die Ausführungszeiten der logischen Schaltungen des
Systems ist, tritt der Fall ein, daß die Speicheroperationen
auf die Operationen der arithmetischen und logischen Schaltungen warten müssen. Da aber nicht
alle Steueroperationen (durch Mikroinstruklionen gesteuerte
Mikrooperationen) gleich lange Taklimpulsrcihen für ihre Ausführung benöligen, gelit vor allem dann
wertvolle Verarbeitungszeit, verloren, wenn die Taktimpulsreihen
fester Zykluslänge des Taktgenerator 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 llauptanspriich
gekennzeichnete Erfindung gelöst.
Vorteilhafte Ausgei.ialtiingcn der Erfindung sind den
"in !Jnteransprüchen zu entnehmen.
Der mit der Erfindung erzielbare Vorteil besieht im wesentlichen in einer Erhöhung der Leistung einer
Zentraleinheil eines elektronischen Datenverarbeitungssystems, wobei die vorgeschlagenen Maßnahmen
>'< nur einen sehr geringen technischen Mehraufwand erfordern.
Im folgenden wird ein Alisführungsbeispiel der Erfindung anhand der Zeichnungen näher beschrieben.
Es zeigt
·■l[ F i g. 1 ein Schaubild der verbesserten Hochgcschwindigkeits·Datenverarbeitungsanlage
und ihren grundlegenden Datenfluß,
F i g. 2Λ einen l.agcplan der F-" i g. 2A bis 21,
F'ig. 2Λ bis 21 detaillierte Schaubilder der in Fig. I
• · gezeigten Anlage,
F i g. 3 ein Schjubild eines Ausführungsbeispiels eines
Taktgencralors mit Taktimpulsreihen veränderlicher Zykltislängc mit den zugehörigen Flingangs- und
Alisgangsanschlüssen,
I-'ig.4 ein Zeitdiagramm der möglichen Taktimpulsreihen,
Fig.5 ein Schallbild der Sleuerschaltungen 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 Zeitdiagram"ie für die Operationen.
Im Ausführungsbeispiel stellt eine Decodierschaltung
nach Übertragung einer jeden Mikroinstruktion vom Steuerspeicher in ein Steuerregister durch Untersuchung
die Art der auszuführenden Mikroinstruktion fest. Abhängig von dieser InstruLiionsari gibt die Decodierschaltung
Steuerimpulse auf den Taktgenerator der Verarbeitungseinheit, so daß dieser eine von den drei
verfügbaren Taklimpulsreihen (Basis-Taktimpulsreihe)
Zyklusläng&n von 180, 225 und 270 ns oder eine
Kombination von zwei dieser drei Taktimpulsreihen auswählt Dadurch wird jede Mikroinstruktion so
schnei! wie möglich ausgeführt und die Systemleistung
wesentlich verbessert. Im Ausführungsbeispiei -'erden
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 hinler 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 Mik oinstruktionsbits oder Statusregisterbits
bestimmte Verzweigungen können in der kürzeren Zykluszeit (180 ns) ausgeführt werden.
Im Ausführungsbeispiel ist eine Halbwort-/W.f/
vorgesehen, die die Ausführung einer Rechen- oder Verknüpfungsoperation eines binären Halbwortes mit
der kürzesten Taktimpulsreihe gestattet. Relativ geringfügige
4/.i/-Ergän/ungsschaltungen veranlassen die
Verarbeitung des zweiten Ha'bwortes durch die AI.U
während der Vollwortoperation durch Erweiterung der Taktimpulsreihe (180 für dij Halbwort-Rechenoperalion)
auf 225 ns für eine Vollwortopcration. Dadurch wird die Leistung /war eiwas herabgesetzt, die
Hauteilkosten der ALU jedoch wesentlich reduziert.
In einem anderen Ausführungsbeispiei der Erfindung
werden die Daten während der Ausführung einer Mikroinstruktion vom \ lauptspeicher 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 /ur Übertragung
der Daten zwischen Arbeits- und Hauptspeicher benutzten Speicherzyklen erfordern wesentlich längere
Perioden, als sie in den Basis-Taktimpulsreihcn zur Verfügung stehen. Infolgedessen wird eine Taktimpulsreihe
mit einem Zyklus von 225 ns und einem von 270 ns oder zwei mit Zyklen von ""70 ns zur Ausführung der
Mikroinslrtiktionen miteinander verbunden.
Eleschreibung des AusführungsbcispJels
Das in den Zeichnungen dargestellte Ausführungsbeispiel des Systems stellt eine Verbesserung gegenüber
dem im LIS-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 werden bestimmte, nachfolgend
>.u 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ätspriifbit. 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 Steuerspeiche.' sind Daten und
Mikroinstruktionen in Gruppen von 60 Viererwörtern angeordnet, die als Moduln bezeichnet werden.
Fig. I zeigt schematisch ein Ausfuhr :ngsbe>spiel des
Systems, in welchem die Verbesserung t!?r vorliegendem
Anmeldung benutzt werden kann. Das System enthält einen Hochgeschwindigkeitsspeicher 1, der einen
Steuerspeicher XA und einen Hauptspeicher IS umfaßt.
Mikroinstruktionen sind im Steuerspeicher XA gespeichert,
wanrend Daten und Programminstruktior.en im
Hauptspeicher Ißgespeichert sind.
Mikroinstruktionen werden der Reihe nach von der Einheit 1 auf ein C-Register 2 über eine Speicherdaten-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. Verzwcigungsschaltungen
4 ändern bei Bedarf die normale Reihenfolge, in welcher die Mikroinstruktionen ausgeführt werden.
Um im Hauptspeicherteil der Einheit 1 gespeicherte Daten bearbeiten zu können, müssen sie auf den
A-Arbeitsspeicher LS5 oder den ^-Arbeitsspeicher 6
oder auf externe Register 7 übertragen werden. Die Datenübertragung von der Einheit I zu den Arbeitsspeichern
oder den externen Registern erfolgt über die SDBO. die SDBO-Vorassemblierer Riegel 10. den
Assemblierer 11 und über Wort-, Halbwort- und Byte-Wahlschaltungen 12. Die jeweilige Stelle in den
Arbeitsspeichern oder den externen Register)!, in welche die Daten zu übertragen sind, wird durch eine
diesen Speichern und Registern zugeordnete Adreß-Decodicrschaltung
13 bestimmt, welche ausgewählte Bits in jeder Mikroinstruktion auf der SDBO und
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 A-Register 21 bzw. tf-Rcgistcr 22 und dm A-Assemblierer 23 bzw. den
ß-Assembliercr 24 empfängt. Durch die ALUTSi zu
verarbeitende Daten, die in den externen Registern stehen, werden auf die ALU20 über einen externen
Assemblierer 25 und jnlweder über das /4-Register 21
und den A Assemblierer 22 oder über das fl-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 /!-Registers mit dem
Eingang des fl-Registers 22 verbinden. Ausgewählte binäre Konstantwerte v/srden in die A LU20 über einen
V-Assemblierer 27 eingegeben.
Von der ALU20 verarbeitete Daten werden auf
ausgewählte entsprechende Stellen in den ArbeitssDei-
ehern 5 oder β oder auf ein externes Register 7 über ein
/'-Register 30. ein I) Register 31 und den Assemblierer
Il zurüekübcrtragen. Die Auswahl des Bcstimmungsor
tes für die verarbeiteten Daten erfolgt wieder durch die Adrcß-Deeodiersehaltungen 13. Verarbeitete Daten
werden dann in den Haiiptspcichcrteil der Speichereinheit
I über das /!Register 21, den /!-Assemblierer 23
und eine Speicher Daleiiausgangsleilung SUBI zurück
gesetzt Während der Datenübertragung /wischen der Speichereinheil I und einem der Arbeitsspeicher 5 und β
oder der externen Register 7 wird die Spcichcrstclle der f'Iinhcit 1 gewählt über eine erzwungene Adresse oder
eine von den Arbeitsspeichern 5 oder 6 abgeleitete Adresse und über das Ii Register 22 auf das Adrcßregi
stcr .3 übertragen.
In dem als Ausführungsbeispiel in F-"ig. 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 ß-Arbcitsspeichcrs 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 /!-Arbeitsspeicher 5 wird während eines früheren Teiles eines Mikroinstruktionszyklus als
/!-Datenquelle adressiert und gleichzeitig wird eine
vollkommen andere Position im ß-Arbeitsspeichcr 6 als eine ß-Datenquelle adressiert. Auf diese Weise werden
zwei Arbeitsspcichcrstellcn (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 Taktgencratoren
35 (d.h. 35-1 bis 35«) und einen llauptoszillator 36 gesteuert. Die Ausgangsimpulse des Hauptoszillalors
36 werden kontinuierlich an die (iingänge der Taktgencratoren 35 angelegt, [line eine Takt-Zykluslän
gensteuerungs-Decodicrschaliung enthaltende und zum Steuerregister C2 gehörende Kinrichtung leitet jedoch
die Oszillator-Ausgangsimpulsc 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 Mikroinstruktion
eingestellt.
Im Ausführungsbeispiel ist für jede Schaltkarte ein Taktgenerator vorgesehen und umfaßt eine regelbare
Verzögerungseinriciilung 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, d. h, die Mikroinstruktionen können wahlweise in den Sieuerspeicherteil der Speit hereinheil
I eingegeben und /u jeder Zeil dadurch verändert werden, daß ein neuer Sat/ von Mikroinslriiktionen in
den Stcucrspeiehcrteil geladen wird.
Im Ausführiingsbeispiel wird der Sleuerspeichcr über
eine Konsolendatci 40 geladen, die über eine Magnetplaiteneinheit
und die zugehörigen Steuerungen verfügt. Abhängig von den jeweiligen Anforderungen des
Benutzers wird ein ausgewähltes optimales Sleiierspci·
chcr-Mikroprogramm von der Konsolendatci 40 auf den Stcuertcil des Speichers I über den Assemblierer 39.
den externen Assemblierer 25 und die normalen Datenwege der Verarbeitungseinheit übertragen. Die
Konsolendatei 40 speichert außerdem geeignet Korn mandos, die nach Decodierung in der Linhcit 40 auf das
Steuerregister 2 und die Adrcß-Decodicrschalliing 13
über den Assemblierer 38 gegeben werden, um sowohl das Laden des Sieuerteiles der Speichcrcinheil 1 zu
steuern als auch die lchlcrsiiche der Verarbeitungseinheit
zu gestatten.
Das in F i g. I gezeigte Ausführungsbeispiel enthält auch Bcstimmungs-Vorausschau-Schaltungcn 41. Diese
Schaltungen sollen in den lallen die Daten dirckl vom
Z-Rcgistcr 30 auf das /!-Register 21 und das ß-Register
22 über den Datenweg 42 übertragen, in welchen eine Datenquelle in den Arbeitsspeichern 5 oder 6 auch der
Bestimmungsort für Daten in dem vorhergehenden Zyklus ist. Bekanntlich werden ja im Ausführungsbeispicl
wähfftid der Ausführung einer Mikroinstruktion verarbeitete Daten für die ausgewählte Position in den
Arbeitsspeichern 5 und 6 oder den externen Registern 7 erst spät bei der Ausführung der nächstfolgenden
Mikroinstruktion bestimmt. Da die Daten in den Arbeitsspeichern 5 und 6 und den externen Registern 7
erst bei der Ausführung der nächstfolgenden Mikroinstruktion fortgeschrieben werden, kann der fortgcschricbenc
Teil einer Stelle während der Ausführung der nächsten Mikroinstruklion nicht als Quelle adressiert
werden. In bezug auf die Positionen im Λ -Speicher
5 und im ß-Spciehcr 6 erfolgt somit die direkte Übertragung der fortgeschriebenen Daten über den
Datenweg 42. welcher den Ausgang des /7-Registers 30
mit dem /1 Register 21 und dem ß-Registcr 22 verbindet. Im Ausführungsbeispiel ist diese Bcstimmungs-Vorausschau-Einrichtung
für die externen Register 7 nicht vorgesehen, ausgenommen davon ist jedoch
das SPTZ.-Register TA, dessen Ausgang ebenfalls direkt
mit den A- und Ö-Registern 21 und 22 über den Weg 43
verbunden ist. Mit Ausnahme des Registers TA. welches während der Ausführung einer Mikroinstruktion fortgeschrieben
wird, kann daher kein externes Register e;ne
Datenquelle für die nächstfolgende Mikroinstruktion 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 gezeigt
und umfaßt gerade und ungerade Steuerspeicherabschnitte 100 und 101 sowie Daten- oder Hauptspeicherabschnitte
102 und 103. Wie bereits gesagt, werden Steuerspeicher und Hauptspeicher während der Lesezyklen
in Breite eines Doppelwortes adressiert, und diese Doppelwörter werden dann auf die Leitung SDBO
gegeben. Um ein Oberschneiden zwischen geraden und ungeraden Wörtern des Doppelwortes zu verhindern,
liegen Paare von geraden und ungeraden Wörtern an den einander gegenüberliegenden Seiten und in
gleichem Abstand von den Datenausgangsschaltungen 104. Der Steuerspeicher ist unmittelbar neben den
Dalcnausgangsschaltungcn 104 Lind dem Hauptspeicher
102 und 10} in größerer Lntferming von diesen
Schaltungen dargestellt.
Dadurch wird eine minimale Verzögerung bei der Übertragung von Mikroinstruktionen von den
Spcichcrabschnitlcn 100 und 101 in das Steuerregister 2
der I ig. 21" und die Adrcßdccodicrschaltungcn der
l'ig. 2Λ i"id 2B sichergestellt. Die während der
SpeicherzyK.'cn über die Lingangslcitung SDHI auf die
Spcichcrcinheit 1 übertragenen Daten werden auf Worlbasis eingegeben. Ls gibt daher keine kritische
Lage für die Anordnung der Datencingabcschaltungen 105 sowie die Lage von Haupt- und Steucrspeicherstellen,
an welche die SI)III Leitung angeschlossen ist. Die Spcichcrcinheit 1 umfaßt außerdem eine Linzelbit-Fehlcrkorreklurschallung
und eine asymmetrische Doppelbil-f'chlcrkorrcklursehaltung
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 F i g. 2F. gezeigt und umfaßt das M !-Register 110, M2-Register 111 und
das AY3-Rcgistcr 112. Die Ausgänge dieser Register
sind mit den Kingangstreiberschaltungen DA? 113, 114 und 115 der Speichereinheit t über die Leitungen 116,
117 und 118 verbunden. Zum Register 111 gehört ein
/V2-Rückgriffregister 119 und zum Register 112 ein
/V3-Rückgriffregistcr 120. Die Adressen zur Adressierung von Daten aus den Hauptspeicherabschnitten 102
und 103 oder von Mikroinstruktionen aus den Stcucrspe^herabschnitten 100 und 101 werden in die
Register M I, M2 und M 3 gesetzt. Im Ausführungsbeispiel
stellt das M3-Register den untersten Teil der Adreß-Registcrschaltungen 3 dar und umfaßt acht Bits
(ein Byte) zum Adressieren eines von 64 Wörtern in jedem Modul. Das M2-Register ist eine Byte groß und
das Mi-Register enthält vier Bits zur Adressierung verschiedener Moduln. Das wertniedere Bit 7 des
M3-Registers bestimmt die Bytewahl. Bit 6 von M3 bestimmt die Halbwortwahl und Bit 5 die Wortwahl. Die
Bits 0 bis 5 des M3-Rcgisters gestatten die Wahl eines von 64 Wörtern, ti. h. eines Moduls. Die acht Bits von
M 2 gestatten die Wahl zwischen 256 Moduln oder ungefähr 16 000 Wörtern. Die vier Bits von Mi liefern
16 Kombinationen, wodurch eine Gesamtzahl von 256 K-Wörtern durch die Register Ml. M2 und M3
adressiert werden kann.
Im Ausführungsbeispiel kann der Steuerspeicher la
maximal 16 /C-Wörter enthalten, wodurch die vom Mikroprogramm gelieferten Mikroinstruktionsadressen
eine Lieferung von maximal nur 16 Bit M 2 erfordern.
Zugriffe zum Haupt- und zum Steuerspeicher erfolgen immer auf Doppelworlbasis. Im Hauptspeicher
können Daten jedoch auch auf Byte-, Halbwort- oder Vollwortbasis 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 M1 und M1 für eine Reihe von MikroOperationen auf demselben Wert gehalten werden können. Vierweg-Verzweigungsoperationen werden durch das Setzen der Bits 4 und 5 des M3-Registers
angegeben. Gemäß obiger Beschreibung bestimmt Bit 5 von M3 die Wahl eines geraden oder ungeraden
Wortes bei einer Doppclwortlesc- oder spciehcropcration.
was besonders bei Mikroinstruktionsgriffcn nützlieh
ist. Bei Verzweigungsoperationen gibt Bit 4 das M3-Rcgistcr an, welches von zwei aufcinandcrfolgen-
-, den Doppclwörtern durch die Haupt- und Stcucrspcicher
adressiert wird.
Die Register Λ/2 und N3 sind als Rückgriff-Register
für die Mikroinstruktions-Adrcssierung vorgesehen. Die Adresse in Λ/2 sowohl wie in M2 ist eine Moduladresse.
in Wie bereits gesagt, kann eine Reihe von Mikrooperationen
ausgeführt werden durch Adressierung der Wörter von demselben Modul im Sleucrspcicher. Die in /V 2
gespeicherte Adresse wird nur verändert, wenn durch die gerade ausgeführte Mikroinstruktion eine Änderung
der Moduladresse angegeben wird. Die Register M 2 und Λ/2 werden mit dieser neuen Moduladresse
geladen. Die Adresse bleibt dann im N 2- Register, bis
wieder eine Änderung der Moduladresse angegeben wird. Während jede nachfolgende Mikroinstruktion im
selben Modul ausgeführt wird, wird die Adresse in N 2 nach M2 fü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
M-Register auf Verzweigungsadresse gesetzt. Die /V-Register bleiben jedoch unverändert, wenn die
Verzweigung auftritt, so daß die laufende nächste Mikroinstruktionsadres.se aufbewahrt werden kann. Die
to Verzweigungsroutine speichert den Inhalt der A/-Register,
so daß die richtige Reihenfolge der Mikroinstruktion wieder aufgenommen werden kann indem man die
Register M und N mit der aufbewahrten Adresse neu lädt, wenn die Mikroprogrammroutine durch Beendi-
r, gung der Verzweigung wieder eingeleitet wird.
Das MS2-Register 125 und das MS3-Register 126
sind als zusätzliche Rückgriff-Register für die Register M2 und M3 vorgesehen. Die Register MB2 und MB3
werden auf die Mikroinstruktionsadresse gesetzt, die in
4(i den Registern M2 und M3 steht. Wenn der
Taktgenerator der CPU gestoppt wird, enthalten die Register MB 2 und Mß3 Adreßbits der vorher
ausgeführten Mikroinstruktion, wogegen die Register M2 und M3 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
benutz' 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 M1, M2 und M3
sowie in die Register Λ/2 und Λ/3 über die
Assembliererschaltungen 130,131 und 132 eingegeben. Für jedes Adreßbit 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 M1, Af 2, M3 sowie N2 und
N3 verbunden. Die Eingänge zum Assemblierer 130 sind eine erste Leitung ACB + 1 und eine Leitung ACB,
die von den Adreßgrenzprüfschalrungen 133 abgeleitet
sind und ein Mittel für weitere Zugriffe zum .Steuerspeicher 1 und /um Setzen der Grenze zwischen
dem Steuerspeicher la und dem Hauptspeicher ib
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 M1 zu
übertragenden Hits ausgewählte numerische Konstanten sind, welche vi.n der ausgeführten Mikroinstruktion
abgeleitet werden.
Auf die Register Ml, M2 und M3 werden
bekanntlich maximal 20 Bits übertragen, um einen Teil
des Hauptspeichers Ib zu adressieren. Während der Ausführung zahlreicher Mikroinstruktionen, in denen
Daten zwischen dem Hauptspeicher Ib und einem der Speicher 5 oder 6 oder den externen Registern 7
übertragen werden, wird somit die 20 Bit große, in die Register M 1, M2 und M 3 zu setzende Adresse von den
wertniederen 20 Bits in der Ausgangsleitung 133 des
fl-RpBjciijrc 22 in F i". 2D :ib™c!e!ie!. Diese 20 Bi!
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 Fig. 2G werden als Eingänge 143 und 144 zu den
Assemblierern 131 und 132 benutzt. Eine Eingangslcitung
145 zum Assemblierer 132 koppelt den Assemblierer mit den ausgewählten Ausgangsbits des Byte 3 aus
dem C-Register. Verzweigungsadressen werden in die Assemblierer 131 und 132 von den Verzwcigungsschaltungen
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 Fig. I (Bezugszeichen 13) gezeigten Adreßdecodicrschaltungen
für Arbeitsspeicher und externe Register.
Eine Ausgangsadreßleitung 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 /!-Arbeitsspeicher 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 /i-Bestimmungsregister 154 und ein ß-Bestimmungsregister 156 übertragen.
In ähnlicher Weise ist ein ß-Bestimmungspuffer 157
mit der Adreßausgangsleitung 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 SDÄO-Leitung über eine
gerade/ungerade Wortwahlschaltung 162 der F ig. 2a, eine vier Byte große Leitung 163, einen Arbeitsspeicher-Adreßassemblierer
164 und eine zwei Byte große Leitung 165. die die Bytes ! und 2 (nachfolgend mit (Ί
und i'2 bezeichnet) der durch die Schaltung 162
gewählten Mikroinstruktion überträgt. In ähnlicher Weise werden die Bytes (I und f'2 zur Adressierung
r> der Arbcitsspeichcreinheii abgeleitet von der Konsolendalci
40 der F i g. 2a, einer Selcktorkanal-Stcuereinhcit (nicht dargestellt), den Schaltern 37 auf der
Bcdienungskonsolc und Verriegelungen 166 der F i g. 2c. jedesmal über den Assemblierer 38 der F i g. 2a
in und eine Leitung 167, die mit dein anderen Eingang des
Assemblierers J64 verbunden ist. Hin zusätzlicher Adrcßbiteingang zum /J-Arbeitsspeicher-Decodierkrcis
151 wird über eine Leitung 170 von der Konsolendatei
40 abgeleitet, !line von der Prioritätssteuerschaltung 127
i"> der F i g. 2i abgeleitete Leitung 171 ist mit dem Eingang
der /!-Decodierschaltung 150 und der W-Decodicrschaltung
151 verbunden. Die Bits 0 bis r>
des M 3-Adrcßregisters werden auf den Eingang der /t-Decodierschaltung
■ iOiibcrc'mC Leitung J72go!oiici.
Wenn die beiden Arbeitsspeicher 5 und 6 adressiert werden, um ihnen eine Information zuzuordnen, werden
die Adressen in den Beslimmungsadreßrcgislcrn 154
und 156 über die Leitungen 173 bzw. 174 auf die Eingänge der Decodierschaltungen 150tind 151 geleitel.
2Ί Die Bestimmungs-Vorausschaiischaltungen 41 sind in
F i g. 2b gezeigt und umfassen einen ß-Decodierteil 175
und einen /l-Dccodicrteil 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
Ausgangsleilungen 174 und 173 tier Bcstimmung.srcgister
156 und 154 werden ebenfalls an die Vergleichen schaltungen 180 und 181 angeschlossen. Falls eine dieser
beiden Vergleicherschaltungen ein gleiches Vergleichsergebnis zwischen seinen Eingängen feststellt, wenn der
entsprechende Arbeitsspeicher als Quelle im ersten Teil einer Mikroinstruklionsausfü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 Vergleich ergebnis
in der Schaltung 180 liefert einen Impuls auf die Ausgangslcitung 182, wodurch der Teil der Mikroinstruktion,
der nicht fortgeschrieben wurde und noch im
« Z-Register steht, direkt auf das fl-Register 22 (F i g. 2d)
über das Kabel 42 geleitet wird, welches den Ausgang des Z-Registers direkt mit dem Eingang des ß-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-Regisler steht, auf
das in F i g. 2c gezeigte /!-Register 21 über das Kabel 42
und den in Fig. 2c gezeigten Assemblierer 192
übertragen wird.
Wie bereits im Zusammenhang mi! 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 £>-Register 31 der Fig.2g über ein
Kabel 194 oder vom i'DßO-Vorassembliererriegel 10
über die Wort-, Halbwort- und Byte-WahlschaJtungen
M 12d:rFig.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
Λ-Arbeitsspeicher 5 werden auf das /.-Register 21 der
Fig. 2c über ein Kabel 201 und dem Assemblierer 192
f leitet.
Der Ausgang des A -Registers 21 (F' i g. 2C) wird, wie
bereits gesagt, über das Kabel 26 auf die Torschaltungcn
191 (Fig. 2d) und in das «Register 220 geleitet. Das
Kabel 26 koppelt auUcrdem die Bytes 0, 2 und 3 des /1-Regisiers 21 auf das UyIe 0 des Assemblierers 23, die
Bytes 0, 1 und J des /t Registers 21 auf Byte des Assemblierers 23 und alle vier Bytes des /t-Registers 21
auf die Bytes 2 und 3 des Assemblierers 23.
Die ALI/20 ist zwei Bytes breit und wird daher entsprechend Byte 2 und Byte 3 in die Abschnitte ΛΙΛΙ2
und AIAJ3 unterteil (I" i g. 2g, 2h).
Byte 3 des Assemblierers 23 wird auf die Verzweigungsschallungcn
4 (F-" i g. 2d) über ein Kabel 210 gekoppelt. Die Bytes 0 bis 4 des Assemblierers 23
werden auf die Leitung SDBl über mehrere Treiberschaltungen 211 und ein vier Byte großes Kabel 212
geleitet. Die Bytt-s 2 und 3 des Assemblierers 23 sind mit
ΑΙΛ12 und ALI) 3 über die Kabel 213 und 214 und über
die Krcu/schaltungcn 215,216 verbunden.
Bytes 0 und I des /^-Registers 22 sind entsprechend
mit den Bytes 0 und 1 des Z-Rcgisters .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 I- i g. 2h gekoppelt.
Die Bytes 2 und 3 und die Bits 4 bis 7 des Byte I im
ß-Rcgistcr 22 sind über das Kabel 13.3 mit den
M-Registcrcingangsschallungen ge/näß obiger Beschreibung
verbunden. Die Bytes 0 bis ϊ des ß-Registers 22 sind außerdem auf die AlXl 2 und ALllidcr F ig. 2g
und 2h gekoppelt über Byte 2 des Assemblierers 24, die Kabel 224 und 225, die Schiebe- und Torschaltungen 226
und 227 sowie über clic Echt/Komplementschaltungen 228 und 229.
Byte 1 des B Registers 22 ist auch mit ΛΙΛΙ2
gekoppelt über das Kabel 221. die Torschaltung 230 sowie das UND-Glied 231 und die Schiebe- und
Torschaltung 226 sowie die Echt/Komplemcnt-Schaltung228.
Während der Verschiebeoperationen kann das UND-Glied 232 der F-'ig. 2d da/u verwendet werden,
die vier werlhohen Bits 0 bis 3 der Byte- 3-Schallung des
Assemblierers 24 und die wertniederen Bits 4 bis 7 der Bytc-2-Schaltung des Assemblierers 24 mit ALLl5 über
die Schicbetorschaltung 227 und die Echt/Komplement-Schaltung 229 zu koppeln. In ähnlicher Weise kann das
UND-Glied 231 (Fig. 2c) bei Vcrschiebcoperationen dazu benutzt werden, die vier wertniederen Bits 4 bis 7
des Bytes 1 des ß-Registeis 22 und die vier werthohen
Bits 0 bis 3 des Bytes 2 des B 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 ALU2 ist auf die Bytes 0 und 2 des
Z-Registers 30 gelegt ü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 Ä-Registertorschallung
192 in Fig. 2c angeschlossen. Die Bytes 0 bis 3 des
Z-Registers sind außerdem entsprechend mit den Bytes
S. P, Tund L des 5P71-Registers 7a der F i g. 2h über ein
Byte große Kabel 240-0 bis 240-3 verbunden.
Der Ausgang des 5P7L-Registers Ta ist über vier
Byte große Kabel 43 und die Torschaltungen 190 und 191 mit dem W-Rcgisler 22 der F ι g. 2d verbunden. Das
Kabel 43 ist außerdem über ein ODER-Glied 242 der F i g. 2c und ein Kabel 243 sowie die Torschaltungen 192
■> mit dem A-Register 21 verbunden.
Das OliER-Glicd 292, Kabel 243 und die Torschaltung
192 verbinden außerdem den Ausgang des externen Assemblierers 25 der F" ig. 2b mit dem
/!-Register 21 der F-'ig. 2c. Die Steuerung des externen
to Assemblierers 25 erfolgt durch die Decodier- und Bestimrniingsadrcßregistcrschaltung 152a für externe
Register (und ihren Assemblierer 152b), die an den
Eingang des externen Assemblierers 25 über ein Kabel 250 angeschlossen ist. Die externen Register 7 sind mit
Ii ihren Ausgängen an einen Eingang des externen
Assemblierers über ein Kabel 251 angeschlossen. Ein anderer liingang /um externen Assemblierer 25 wird
von einem Kabel 252 gebildet, welches von dem N 2- Register 190 und dem Λ/3-Register 120 der Fig. 2e
.ϊ) kommt.
Die Konsolendatei 40 und die Schalter 37 (Fig. 2a)
sind an einen anderen Eingang des externen Assemblierers über eine Torschaltung 39 und ein Kabel 253
angeschlossen.
.'"· Die Kanalstcucrschaltungen 260 der F i g. 2b sind mit
einem anderen Eingang des externen Registers 25 und mit der Verzweigung*- und Prioritätsstcuerung 127
(F-" i g. 2i) über ein Kabel 261a verbunden. Die Schaltungen
260 sind außerdem auf einen Eingang des
x> Assemblierers 38 über einen Kabelabschnitt 2616
gekoppelt. Die Kanalsteuerschaltungen 260 werden zusammen mit den Eingabe/Ausgabe-Datenwegschaltungen
262 der F i g. 2b dazu benutzt, die Übertragung von Daten zwischen der in den F i g. 2a bis 2i gezeigten
i'y Datcnverarbcitungscinhcit und peripheren Hochgeschwindigkeitsgeräten
wie Magnetplatteneinheiten zu steuern.
Die Schaltungen 262 umfassen ein GR 1-Eingaberegister
265, dessen F-'ingangan die Oaleneingangsleitung Bl
·»'> des Kanals I 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 Eingangs, 'gister
265, wird dazu benutzt, von der Leitung des Kanals
■•ι I auf den Hauptspeicher 1 oder vom Flauptspeicher 1
auf die Kanal-1-Ausgangsleitung übertragene Daten /u 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 F'uffer 2€7 auf
den Speicher 1 über einen Zweirichiungsassemblierer 268, ein Kabel 269, den externen Assemblierer 25, das
ODER-Glied 242, das Kabel 243, die Torschaltung 192,
5ϊ das /l-Register 21, den /4-Assemblierer 23, Kabel 212,
Treiber 211 und die Leitung SDBlü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
w) der Fig.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 isL Diese wurden jedoch
wie andere Register, z. B. das Register SPTL, 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 Verfügung hat. Somit 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 CI 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ängenr'.euerteil
271, der auf ausgewählte Mikroinstruktionsbits
dadurch anspricht, daß die Taktgeneratoren zur Erzeugung von einer Taktimpulsreihe 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 A -Registers 21 und des S-Registers 22 auf die Register 128 (Fig. 2h)
über eine Torschaltung 280 (Fig. 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-Prüfschaltung 283 festgestellt, die die Ergebnisse von ALU2 4-5
mit denen von ALUi vergleicht.
Eine dezimale Korrektur-Steuerschaltung 284 stellt eine richtige Dezimaladdition durch Verwendung eines
binären Addierers in der ALU2 und der ALU3 sicher. Dieser Vorgang wird nachfolgend genauer beschrieben. V)
Eine Schaltung 285 (F i g. 2d) überwacht die Eingänge zur ALU3 auf gültige Dezimalzahlen bei Dezimaloperationen.
Im Ausführungsbeispiel sind Dezimaloperationen nur 1-Byte-Operationen.
Wenn Daten vom D-Register 31 (Fig. 2g) für die Ά
Arbeitsspeicher 5 und 6(Fi g. 2b) bestimmt sind, werden sie in die beiden Arbeitsspeicher eingegeben und direkt
nicht-destruktiv auf die Leitung 201 und 200 ausgelesen. Ein Antivalenzglicd 286 (Fig. 2c) stellt fest, ob die
Daten in beiden Arbeitsspeichern übereinstimmen; eine bo
Überprüfung des Registers 287 und eine Übereinslimmungsschaltung
288 stellt fest, ob die neuen Daten (1 bis 4 Bytes) vom D-Register 31 mit den Daten im
A -Arbeitsspeicher 5 übereinstimmen.
Arten von Mikroinstruktionen
(1) Alle Mikroinstruktionsbits sind nur der einfacheren Erklärung halber im Steuerregister C2 dargestellt,
die Adressierung von Arbeitsspeicher und externen Registern erfolgt in Wirklichkeit jedoch durch
entsprechende Bits in den Dccodierschaltungcn der F i g. 2b und nicht durch die tatsächlichen Ausgangsbits
des Steuerregisters.
(2) Als Beispiele für die Ausführung von Mikroinstruktionen wurden für die Daten in den verschiedenen
Registern willkürliche Werte gewählt.
(3) Bezeichnungen wie /13.0-2 werden der Einfachheit
halber benutzt und stellen die Bits 0 bis 2 des Byte 3 des A -Registerausganges dar.
(4) Für Register und Riegel werden vorzugsweise Polaritäts-Halleriegel bekannter Bauart verwendet,
die über zwei UND-Glieder verfügen, deren Ausgänge mit den Eingängen eines ODER-Gliedes
verbunden sind. Eine Datenleitung ist an einen Eingang eines UND-Gliedes angeschlossen und der
phasengerechte Ausgang des ODER-Gliedes ist mit einem Eingang des anderen UND-Gliedes verbunden.
Eine einzige Setz/RückstRlleitung ist direkt mit
einem zweiten Eingang des anderen UND-Gliedes und über einen Inverter mit dem Eingang des einen
UND-Gliedes verbunden, wobei zwischen Eingang und Ausgang eine kleine Verzögerung liegt.
Steht de Setz/Rückstclleitung auf 0, wird die
Verriegelung ein nichtinvertierender Verstärker und erzeugt an ihrem Ausgang ein Signal, welches dem
Signal auf der Datcneingangslcitung entspricht Führt die Setz/Rückstelleitung ein Einersignal, verriegelt sie in
diesem Moment im Vcrknüpfungszusland der Datenleitung und hält diesen verriegelten Zustand bei, bis die
Setz/Rückstelleitung wieder auf 0 zurückkehrt.
Taktgeneratoren und Steucrschaltungen
Jeder Taktgenerator 35 umfaßt gemäß Darstellung in Fig. 3 mehrere Eingänge und erzeugt auch wieder
mehrere Ausgangssignale, von denen im Ausführungsbeispiel jedes ct'.va 90 ns dauert und gegen das
vorhergehende um ctwn 45 ns zeitlich verschoben ist.
Einzelheiten eines solchen Taktgenerator 35 sind im TDB Band 12, Nr. 1, Seiten 71 bis 73, vom Juni 1969,
bekanntgemacht worden. In F i g. 3 wurden die Symbole für echte Werte ( —) und Komplcmcntwerte ( + )
verwendet, in allen anderen Teilen der Zeichnungen und der Beschreibung ist das Zeichen für ein Komplement
jedoch » —« und die Verwendung keines Vorzeichens bedeutet den echten Wert.
Kurz gesagt umfaßt der Taktgenerator mehrere Gleichstrompegel, von denen jede einen entsprechenden
echten und einen Komplcmcnt-Ausgangswcrt für die O-Zcit, 0-Verzögerungszeit, 1 -Zeit, I-Verzögerungszeit, 2-Zeit und 2-Verzögcrungszeit erze-jgt. Diese
Riegel reagieren auf Vorder- und Hinterkanten des Eingangssignals vom Oszillator 36 (Fig. 1) unter
Steuerung der Zyklus-Eingangssignalc für —180 ns,
— 225 ns und —270 ns, welche die Länge der auszuführenden Taktimpulsreihen bestimmen.
Der Start des Taktgenerators für jeden Zyklus wird bestimmt durch Signale auf den Leitungen + Taktstart RUckstcllung
und —Taktstart. Der Taktgenerator kann in seine Ausgangsstellung zurückgesetzt werden durch
Anlegen eines Signals an den + Rückstcllcingang. Ein + Fchlerstopeingang ist vorgesehen, um den Taktgenerator
dazu zu zwingen, O-Taktzyklen beizubehalten, bis das f-'ehlersignal ausgeschaltet ist.
Wie aus Fig. 4 zu ersehen ist, hat jedes der
obengenannten Taktsignal wie O-Zeit, O-Verzögerungszcit,
I-Zeit usw. eine Dauer von 90 ns und relativ zum vorhergehenden Signal eine Verschiebung oder
zeitliche Verzögerung von 45 ns. Somit ist die 0-Verzögerungszeit um 45 ns gegen die O-Zeit verschoben,
die I-Zeit um 45 ns gegen die O-Verzögerungszeit und die I -Verzögerungszeit um weitere 45 ns gegenüber
der 1-Zcit usw. verschoben. In Fig. 4 sind außerdem die
Oszillator-Eingangssignalpcgcl dargestellt.
Die Taktzyklus-Längcnstcuerschaltung 271 ist in
F i g. 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
Vcrzweigungs- und Modulumschalter Y werden im ODER-Glied 300 verknüpft, dessen Ausgang über ein
UND-Glied 302 und ein ODER-Glied 303 auf die Sleucrieiiung 30i für 225 ns gegeben wird, wenn die
hochwertigen Verzweigungsbits (70.4 — 7 größer gleich 0111 sind. Das bedcu.'et, daß ein Zyklus von 225 ns
angefordert wird, wenn die hochwertigen Verzweigungsbils
die Prüfung der Vcrzweigungsquelle 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 C0.5—7 gleich 111
decodicrt, und das Ausgangssignal des ODER-Gliedes 304 wird als ein Eingang auf das UND-Glied 302
gegeben.
Wenn die Bits C0.4 — 7 kleiner Olli sind, d.h., wenn
eine lcste Verzweigung oder die Prüfung eines 5-Registcrbits vorliegt, erfolgt die Umkehrung des
Ausgangssignals des ODER-Gliedes 304 durch die Schaltung 305 und Anlegen eines Signals an die
Steigleitung 306 für 180 ns über das UND-Glied 307 und ein ODER-Glied 308 zur Einleitung eines 180 ns
langen Zyklus.
Wenn eine Verzwcigungs- und Verbindungsinstruktion BAL (C'0.0—3 = 0010) dccodicrt wird, wird das
Signal auf der Dccodicrleitung 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 I (eine Rückkehrinsiruktion).
Ein UND-Glied 315 dccodicrt die Verschiebungsinstruktion (C'0.0-3 = 0011), und sein Ausgangssignal
wird auf das ODER-Glied 308 gegeben, um einen Zyklus von 180 ns Länge /ti erzeugen.
Eine arithmetische Vollwortinstruktion wird durch CO. 1.2= 10 und dadurch angegeben, daß C'0.4-7 =
0000, 0001 oder 0010 ist. Die arithmetische Vollwortinstruktion
wird teilweise durch Decodierung der Bits C0.0.1 = 10 im UND-Glied 319 dccodicrt, um die
10-Form der arithmetischen Mikroinstruktion zu erhallen.
Die Bits C 0.6.7 werden im Inverter 320 decodiert, dessen Ausgangssignal auf cm UND-Glied 322 geleitet
wird. Die Hits - C"0.4 und - C0.5 bilden außerdem
Eingangssignal urn UND-Glied 322. Die Ausgangssignale der Schaltungen 319 und 322 werden als Eingänge
iiiif ein UND-Glied 321 gegeben, dessen Ausgangssignal
■Ulf die Dccodicrleitung 323 der arithmetischen Vollwortinstruktion
gegeben wird. Hin Signal auf der Leitung 323 erzeugt einen /yklus von 225 ns, da es als
ein Eingang auf das ODEK-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 Decodierschaliung 318 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
Vollwortoperationen benutzt wird, ist ebenfalls an einen
Eingang des Schallgliedes 329 angeschlossen. Die Schaltung 329 erzeugt ein Ausgangssignal nur, wenn
kein Eingangssignal vorhanden ist (wenn z. D. 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-ZyW.is zu
leiten.
Die Decodierung der arithmetischen Mikroinstruktion 10 durch das UND-Glied 319 zusammen mit der
Decodierung der Bits C0.4—6 = SOIO (d.h. Dezimaloperation)
erzeugt am Ausgangeines UND-Gliedes325 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-GlicdSiydccodiert die Bits CO.1,1 = 11 für
jede 11-Form einer arithmetischen Mikroinslruktion und liefert ein Signal auf einen Eingang des ODER-Gliedes
308, wodurch ein Zyklus von 180 ns ausgeführt wird.
ίο Die Decodierung der Speicher-Mikroinstruktionsbits
C0.01 = 01 im UND-Glied 330 leitet den Zyklus der drei Polaritätshalleriegel 340, 341 und 342 ein. die der
Reihe nach auf 1 gesetzt werden, um an ihren Ausgängen eine Speicher-1-Zykluszeit, eine Speicher-
r> Verricgelungszeit und eine Speicher-2-Zykluszcit zu
erzeugen. Der erste Polaritätshalteriegel 340 wird durch das O7~-Signal zur Zeit 0 während des ersten Zyklus
gesetzt; der Polaritätshalteriegel 341 wird durch das I Γ-Signal zur 1-Zeit während des ersten Zyklus und der
Polaritätshalteriegel 342 durch das ΟΓ-Signal zur O-Zeit
des zweiten Zyklus gemäß nachfolgender Beschreibung gesetzt.
Die Speicherzykluszeiten 1 und 2 werden zusammen mit der Decodierung der Speicherinstruklionsbits 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-Mikroin-
5(i struktions-Dccodierausgangsleilung vom UND-Glied
330 und der Leitung für den zweiten Speicherzyklus auf ein UND-Glied 350 geleitet, um die Steuerlcitung 351
für den 270-ns-Zyklus während aller zweiten Speicherzyklen zu erregen.
r>5 Während eines ersten Speicherzyklus decodieren die
UND-Glieder 331, 332 und 333 ein Speicherwort, ein Speicherhalbworl bzw. ein Speicherbyte und ihre
Ausgangssignalc werden auf ein ODER-Glied 352 geleitet, dessen Ausgangssignal wiederum an ein
wi UND-Glied 353 angelegt wird. Das Signal auf der
Leitung für den ersten Spcichcrzyklus wird ebenfalls als ein Eingangssignal an das UND-Glied 353 angelegt und
die Speichcr-Mikroinstruktions-Decodicrleilung vom UND-Glied 330 bildet den dritten Eingang zum
ftr> 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
eines Ausgangssignals auf der Steuerleitung 351 für den
270-ns-Zyklus, wenn die Unterform der Mikroinstruktion
ein Speicherwort, ein Speicherhalbwort oder ein Speicherbyte ist.
Wenn die Unlerform der Speicher-Mikroinstruktion ein Lese-Vollwort, ein Lese-Halbwort oder ein Lesebyte
ist, decodieren die UND-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-Zyklus geleitet wird.
Die Einstellung der Riegel 340 bis 342 wird jetzt
genauer beschrieben. Setzen und Rü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 Eingangstaktzek I
und die I-Verzog irungszeit liefern die Setz/Rückstellft ml/1 irvr» fit r si&rt V^if»rri»l 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-Mikroinsifuktion
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 ze;f?t 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 Bytepusi'.ionen CO, Cl, C2und
C3 dargestellt. Die Hexadezimaler·..: der vier Bytes
der Mikroinstruktion 1036204 F sind über dem Register 2 dargestellt. Die Datenbitposilionen 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 K-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 Λ/2 gesetzt und bleibt
daher gleich, nur /V/3 wird verändert. Die spezielle
Wortadresse innerhalb des Moduls (die Änderung nach M 3) wird bestimmt durch
1. das werthohe Verzweigungsfeld C0.4 — 7,
2. die nächsten Adreßbus C3.0— 3 und
J. das niedere Verzweigungsfeld C3.4 —7.
Da eine immer auf eine Wortgrenze aufgerichtete Mikroinstruktion adressiert wird, bleiben die Bits 6 und
6 von /V/3 unberücksichtigt, da es sich um Bytcwahlbits des Adreßregisters handelt.
Die hochwertigen Verzweigungsbil.s 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 Verzweigungsschaltungen 4 und zwingen Bit 5 des M3-Registers in eine einer Prüfung
entsprechenden Stellung. Die vier werthohen Bits C 3.0— 3 führen zur direkten Arbcitsspeiehcradrcssierung,
wodurch die vier wertniederen Hits des /'-Registers zusammen mit den Hits Cl.1 — 3 durch die
Schaltung 150 decodiert werden und das LZ-Register im /^-Arbeitsspeicher 5 adressieren. Die Daten im L/-Register
werden auf das /4-Register 21 übertragen. Bits
C 1.4—5 führen zur Übertragung des Hexadezimalwertes
FB (Byte 1 des LZ-Registers) von A 1 auf die Positionen von Byte 2 und 3 des /1-Byteassemblierers23.
Byte 3 des /4-Byteassemblierers 23 wird auf die
Verzweigungsschaltungen 4 geleitet und die wertniederen Verzweigungswahlbils C3.4 — 7 leiten Bit 7 der
ίο Verzweigungsschaltungen, d. h., eine logische 1, auf Bit 5
des M3-Registers. Die Übertragung der Quellendaten
vom /!-Arbeitsspeicher 5 auf die Verzweigungsschaltungen 4 erfolgt ungefähr in der Zeit von 35 bis 75
(Fig. 7). Das Setzen des M3-Registers erfolgt in diesem
H speziellen Fall ungefähr zwischen 45 und 90, da die
Verzweigungsinstruktion von einer Art ist, bei welcher die Verzweigungsquelle Bit 5 des /W3-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
Auswahlleitung ungefähr in der Zeil zwischen 75 und 105 gelesen.
Die Verzweigung zu einer neuen Mikroinstruktion ist begleitet durch die Fortschreibung des P-Regisicrs auf die neue Arbeitsspeicheradres!,ierung. Somit führen die Bits C2.2—3 ungeiihr zur Zeit 45 bis 90 zur Adressierung des P-Registers und Übertragung seines Inhalts auf das B-Register 22 und dann den Asscmblie- rer 24 und ALU2 und ALU3. Die Bits C 1.6,7 leitenden K-Wert (C2.4-7) auf ALU2 und ALLlX Ungefähr zur Zeit 45 leiten die Bits C2.2.3 den Wert im P-Regisicr (00000010) über das ß-Register 22 und den Byteassemblierer 24 auf ALLJ2 und ALUi. Der S-Schalter tritt in
Die Verzweigung zu einer neuen Mikroinstruktion ist begleitet durch die Fortschreibung des P-Regisicrs auf die neue Arbeitsspeicheradres!,ierung. Somit führen die Bits C2.2—3 ungeiihr zur Zeit 45 bis 90 zur Adressierung des P-Registers und Übertragung seines Inhalts auf das B-Register 22 und dann den Asscmblie- rer 24 und ALU2 und ALU3. Die Bits C 1.6,7 leitenden K-Wert (C2.4-7) auf ALU2 und ALLlX Ungefähr zur Zeit 45 leiten die Bits C2.2.3 den Wert im P-Regisicr (00000010) über das ß-Register 22 und den Byteassemblierer 24 auf ALLJ2 und ALUi. Der S-Schalter tritt in
J5 Tätigkeit bei einer Decodierung der Bits 6 und 7 des
Byte CI der Mikroinstruktion, welches gleich 10 ist. und
leitet den Wert des /C-Feldes 0001 in den höherwerti^en
Eingang von ALU2 und ALU i und den Wert 0000 in den nicderwerligen Eingang. Wenn d.: · Werte für Pund
K in der ALU ODER-verknüpfl werden (d. h. Bit C2.I erfordert eine ODER-Funktion), wird das dem I lcxadezimalwert
12 gleiche Ergebnis im Z-Registcr 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 Vollworladdition (d.h. ohne Komplcmcntbildung), die
einen Zyklus von 225 ns j;emäß Darstellung im Zeitdiagramm der F i g. 9 erfordert. Der untere rechte
Teil der F i g. 8 zeigt die Operationen, die nach dem Zeitpunkt 180 in dieser Taktimpulsrcihe erfolgen. In
diesem Zusammenhang wird auf die .Setz/Rückstcllcitung
für das Z-Register im Zeildiagramm hingewiesen, aus welchem zu ersehen ist, daß die Bytes 0 und I des
Rechteckergebnisses im Z-Register erst nach Beginn des folgenden Mikroinstruklions/.yklus gespeichert
werden. Dadurch wird die Ausführung der Mikroin-
bo struklion in keiner Weise gestein, da das F.rgebnis erst in
das D-Register zum Zeitpunkt 45 des folgenden Zyklus gesetzt wird.
Die Mikroinstruktion B04E64AC des Beispiels ist eine Mikroinstruktion für eine echte Vollwortaddition mit
Sonderleitung. Das Hauptziel der Mikroinstruktion ist die Addition des im K-Regisler (Teil des Arbeitsspeichers
5) gespeicherten Vollwortes zu den acht wcrtnicdcren Bits (/.. B. Uvtc 3 des Y-Registers im
ß-Arbeitsspcicher 6, Die unteren 24 Bits (ζ. B. Bytes I
bis 3) des Ergebnisses sind auf die unteren 24 Bits des K-Registers zu leiten.
Die Decodierung der Bits C0.l,2 schreibt eine Rechen-Mikroinstruktion vor. Die Decodierung der Bits
CO.2,3 bestimmt die Form der Rechenoperation, d. h. Operanden werden an der ß-Quelle gefunden und die
A -Quelladressen und das Ergebnis wird in der Ö-Quelladresse gespeichert. Die Decodierung der Bits
C0.4 —7 schreibt eine echte Vollwortaddition vor.
Decodierung der Bits Cl.0 — 3 fordert einen direkten
Arbeitsspeicherzugriff der Λ-Quelle, worin die Bits 1, 2
und 3 des Bytes Cl zusammen mit den Bits 4 bis 7 des
P-Regislers zur Wahl der V-Registersielle (d. h 14) im
A-Arbeitsspeicher 5 benutzt werden. Der Inhalt des
V-Registers, der Hexadezimalwert !497C5A 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
JLU^lilllU-JCl/.UU^, UIC 11LJ1 UIC ^T WCl UIICUCI CIl Ulla IUIC
wertniederen Bytes 1, 2 und 3) des aiii der
Rechenoperation erhaltenen Ergebnisses im V-Rej'ister
an der Arbcitsspeicheradressc 16 speichern lassen oder
für diese Stelle bestimmen lassen.
Die Decodierung der Bits C2.0—3 führt zur direkten
Adressierung des iS-Quellenoperanden, wobei die Bits 1,
2 und 3 des C2-Bytes und die Bits 4 bis 7 des P-Registers zur Adressierung des K-Registers im ß-Arbeitsspe;cher
6 benutzt werden. Der Inhalt des K-Register, nämlich der Hexadezimalwert 2DEC5972, 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 ß-Bytcasscmblierer auf die ALU 3 und zur Sperre
der 24 werthohen Bits (Bytes 0 bis 2) der ß-Quelle. Dadurch wird Byte 2 im ß-Assemblicrcr 24 daran
gehindert, auf die All12 übertragen zu werden. Die
Werte in der Al.U2 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 /Vn-Register zur
Adressierung der nächsten Mikroinstruklion gesetzt, die nächste Mikromsiruktion ist dann im selben Modul und
daher wird das A/Z-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 I des A-Registers in die Bytes 2
und 3 des Λ-Bytcassembliercrs 23 übertragen. Zur
selben Zeit werden die Bytes 0 und 1 des ß-Registers in den ß-Byteasscmbliercr 24 übertragen. Der Inhalt der
Bytes 2 und 3 des /I-Bytcassemblicrcrs wird auf die
ALU2 und die ALLI3 übertragen. Wie bereits oben
gesagt, verhindert die Decodierung der Bi's C2.4.5 das
Leiten der drei werthohen Bytes der ß-Quclle in die ALU. Demzufolge wird der Inhalt des ß-Byteassemblierers
für die Übertragung zur ALU gesperrt. Die Ergebnisse der echten Addition werden auf die Bytes 0
unc! 1 des Z-Registcr 30 übertragen. Diese Einstellung der Bytes ZO und Zl erfolgt gemäß obiger Beschreibung
von der Zeit 0 bis .,ngefähr zur Zeit 45 des nächsten folgenden Zyklus der Taktimpulsreihe. Der
Inhalt des Z-Registers wird auf das D-Register während des folgenden Zyklus zwischen der Zeil 45 und der Zeit
90 übertragen. Während des Lese-Schreibteiles des nächsten Zyklus werden nur die Bytes I1 2 und 3 des
D-Registers auf das K-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 schemutisch die Ausführung der Mikroinstruklion »FD3C2F92«. Das zugehörige Zeitdiagramm
ist in Fig. Il 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 Bytei CO. In diesem
Fall ist jedes der Bits gleich 1 und besagt, daß das Ergebnis einer eine A -Quelle und eine ß-Quelle
2() benutzenden Operation zur ß-Quellen dresse wegge-
an, daß es sich bei der Operation um eine echte Addition (ohne Komplementbildung) handelt. Eine Schaltersteuerung
erfolgt durch die Bits 5, 6 und 7 des Bytes CO. im
2ί gegebenen Beispiel stehen die Bits auf 101 und führen zu
einer Kreuzung der werthohen und wertniederen Hexadezimalwerte (5 und 7), die aus den /!-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 C I direkt zusammen mit den wertniederen Bits des P-Registers zur
Adressierung einer ausgewählten Stelle (L/Register) im
Arbeitsspeicher 5 benutzt werden. Die Bits 4 und 5 des
ii Bytes Cl der Mikroinstruktion sind gleich Il und
führen zur Wahl des Bytes 3 des vom Arbeitsspeicher 5 ausgewählten /A-Quellcnregisters [U^)- Bit b und 7 des
Bytes Cl sind gleich 00, so daß das Zustandsregisl'r S
nicht gesetzt wird. Bits 0 bis 3 des Bytes C2 werden
■to dazu benutzt, das W-Registerim ß-Arbeitsspeicher6 als
ß-Que'le 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 das
■ι1; ß-Register 22 übertragen und der Wert (28) im Byte des
W-Registers wird zur Übertragung auf beide Bytepositionen des ß-Byteassembliercrs 24 durch die Bits 4 und 5
des Bytes C2 der Mikroinstruktion ausgewählt. Bits 6 und 7 des Bytes C2 der Mikroinstruktion führen zur
w direkten Leitung der Bytes im ß-Assemblierer 24 auf die
4/.i/2und ALU3. Die hexadezimalen Zahlen 05 und 28
werden zueinander in jedem /ILiV-Abschnitt addiert
und mit n'nem Vergleich der Ergebnisse festgestellt, ob
ein Fehler in den A /.LZ-Abschnitten aufgetreten ist oder
nicht. Wenn kein Feh'er auftrat, wird das Ergebnis, in diesem Fall der Hexadezimal wert 2D, auf jedes Byte des
Z-Registers 30 übertragen.
Die ausgeführte Mikroinstruktion muß außerdem die als nächstes auszuführende Mikroinstruktion adressie-
W) ren. Somit we-den die Bits 0 bis 5 des Bytes C3 der
Mikroinstruktion dazu benutzt, mindestens teilweise die Adresse der nächsten Mikroinstruktion zu bilden. Die
Bits 0 bis 3 des Bytes C3 werden also direkt auf die Bits 0 bis 3 des /W3-Registers übertragen. Bit 6 und 7 des
Bytes C3 erfordern eine Verzweigung enisprechend
der Stellung der Bits 4 und 5 des 5-Registers. Es wird angenommen, daß die Bits 4 und 5 des S-Registers auf 1
stehen.kSie werden entsprechend mil den Bits 4 und 5
des Bytes CJ C)DCR-verknüpfI und cliis logisch Il
gleichkommende Ergebnis wird in clic Bits 4 und 5 des /V/3-Registers geleitet. Der zeitliche Ablauf der obigen
Operation ist aus der Zeittabelle der I' i g. 11 /ti ersehen.
wo das Setzen des Steuerregisters von 0 auf die Zeit 45 , /u sehen ist, wodurch die Bildung der nächsten
Mikroinslruktionsadresse /wischen der Zeil 43 und der
Zeit 40 abgeschlossen werden kann. Die nächste Mikroinstruktion kann darstelliingsgemüß ausgelesen
worden, indem die Wahllcitung ungefähr zur Zeit 75 ln
beginnt. Die A- und //-Qiicllen werden von den A- und
//•Arbeitsspeichern 5 und 6 /wischen der Zeit 35 und der
Zeit 70 gelesen und die A- und //-Quellen stehen in den A- und W-Rcgistern /wischen der Zeil 45 und der Zeit 40
zur Verfügung. Die Wege /wischen den A- und η ß-Rcgislern 21 und 22 und den zugehörigen Byteassemblierern
2.3 und 24 beginnen ungefähr zur Zeil 45 /u
leiten und die Umschalter zwischen den Bytcassemblieicni
und der Ai.U ebenfalls. Die At.ii ieiiei ungefähr
zur Zeit 90 eine ausgewählte Rechenoperation ein und >n
ungefähr zur Zeit 135 wird der Eingang zum /-Register
30 leitend. Daten, die von einer vorhergehenden Ausfuhrung einer Mikroinstruktion eventuell noch im
/Register stehen, werden vom /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 I 35 und 180. m
lichte De/imaladdition
Fig. 12 zeigt schematised eine typische Dczimal-Additions-Mikroinstruktion
BA 4Cbf~AC uv.d Fig. 13 die
Zeiteinteilung der verschiedenen Maschincnoperatio- j,
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 ß-Quellc zu setzen sind. Bits C0.4 — 7 m
fordern eine dezimale Addition. Es wird angenommen. daß das Zustandsregisierbit 50 gleich 0 ist und eine
echte Additionsfunktion liefert. Die Bits CIO—3
fordern die direkte Arbeitsspeicheradressierung, um die /!-Quelle zu erhalten unter Verwendung der Bits 4 bis 7 -n
des P-Registcrs 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 ,u
Einstellung des ZuMandsregisters. Die Bits C2.0—3
fordern die direkte Arbeitsspeicheradressierung der ß-Quelle, um die Bits 4 bis 7 des /"-Registers und die Bits
C 2.1 —3 zur Adressierung des V-Registers an der Stelle 16 im ^-Arbeitsspeicher 6 zu nutzen. Die Bits C2.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 ALU3 geleitet. Bits C3.0—5 einschließlich
werden auf das M3-Register übertragen und das A-/2-Register wird aus dem /V2-Register gesetzt, um die
nächste Mikroinstruktion aus demselben Speichermodul zu 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 this A-Register 21 und ilen Inhalt des
>'Registers im dem Ii -Arbeitsspeicher h auf das //-Register 2.
überträgt. In den Mylcposiiionen 0. I und 2 der A- um
//-Register sind Xc dargestellt, da der Inhalt diesel Bytes während der Operation nicht benutzt wird. Wit
oben gezeigt, wählten die Bytewahlbils die Bytes 3 de:
Inhaltes ties V Registers und ties V Registers. Somi
wird HyIe 3 im A Register 21. welches den llexade/i
malwert 07 enthüll, auf alle vier liyteposittonen de: /A-Byteassemblierers 23 übertragen. Dieser Wen win
dann von den Positionen für HyIe 2 und MyIe 3 de1
/1-Byteassemblierers direkt auf die Λ-Eingänge vor
ALI/2 und AIA11 gegeben. ISvIe i im //Register ha
einen I lexatle/imalwerl von 15 und wird auf beidi
Bylepositionen des /MJyleassemblierers 24 und voi tlort über die Echt/Komplement 'Schädlingen TIC im
die //Eingänge der Al.1'2 und AIA/~i übertragen. l)ii
hexadezimalen Werte werden in der Al.Ill addiert um
diis hexadezimale Eigcbtns iC wnti auf iiiie viu
Bytepositionen ties /Registers 30 übertragen. Aiii
oben im Zusammenhang mit tier Mikroinstruktioi beschriebenen Operationen erfolgen während de
ersten 180 ns des Zyklus. Die während tier Ausführuiij
tier Mikroinslruklion nach dem Zeitpunkt ISOdurchge
führten Operationen sind in unierbrochenen Linien ii
der unteren rechten Ecke der E i g. 12 gezeigt. Zur Zei 180 wirtl der llexade/iinalwert IC vom Byte 3 de1
/■Registe ; .iiif Byte 3 ties A-Registers und von dort au
die Bytes 2 und 3 des /A-Bytcasscmbliercrs 2
übertragen, um an die /A-Eingänge tier AUJ2 um
Al.Il Ϊ angelegt zu werden. Die vier Eingänge für dii
De/imalkorreklurstcueriingcn. B\ls C 3.0— 3. Bit
C 3.4 —7. sowie die beiden IJbertragsbits der erstei
De/imalopcration sorgen dafür, daß der Ai-Assemblic
rer eine Korrcklur/ahl Ob auf die //-Eingänge de
Al.112 und AlAJl gibt. Der Korrekturfaktor wird /1111
hexadezimalen Ergebnis der ersten Operation addiert um ein korrigiertes hexadezimales Ergebnis 22 zi
erzeugen, welches vom Ausgang der AIAJZ auf da:
/Register 30 übertragen wird. Aus dem Zcitdiagramn der l-'ig. 13 ist /u ersehen, daß das Setzen de:
korrigierten Ergebnisses in das /-Register 30 ungefähi
zwischen den Zeitpunkten 0 und 45 des folgender Zyklus stattfindet. Kur/ danach wird dieses korrigierte
Ergebnis in das D-Register gegeben und danach au Byte 3 des V'-Registers in den beiden Arbeitsspeichern !
und 6 zurückgeführt.
Speicher-Mikroinstruktion
Die Ausführung der Speichermikroinstruktior 487ß2D££ ist schematisch in den Fig. 14a und 1+1
gezeigt und die Zeiteinteilung der verschiedener Maschinenoperationen in den Zeitdiagrammen dei
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ß2DF£soll das Daten wort (oder ein Teil davon), welches in den (?-Registen
der beiden Arbeitsspeicher steht, auf die Hauptspeicher adresse übertragen, die in den W-Registern diesel
beiden Arbeitsspeicher steht. Bei dieser speziellei Mikroinstruktion werden die Daten auf den Hauptspei
eher ib unter Verwendung der Bits 0 bis 3 de:
Γ-Registers als Maske übertragen.
Die Ausführung der Mikroinstruktion wird in
Zusammenhang mit den verschiedenen Bits beschrie ben, die die Mikroinstruktion bilden und darstellungsge
maß im Steuerregister 2 gespeichert sind. Die Bits O und
1 des Bytes CO bezeichnen nach Decodierung eine Speichermikroinstruktion. Die Bits 2, 3 und 4 des Bytes
CO bezeichnen die Unterform der Instruktion, eine Einschreibeinstruktion. Die Bits 0 bis 3 des Bytes Cl
bezeichnen nach Decodierung die direkte Adressierung der Arbeitsspeicher unter Verwendung der Bits 1.2 und
3 des By!,>. CI und der Bits 4 bis 7 des P-Registers zur
Adressierung des (^-Registers auf der Adresse 17 des
/!-Arbeitsspeichers. Der Inhalt F7F3F2C3 des Q-Registers
wird auf das /\-Register 21 und dann auf den Λ-Byteassemblierer 23 übertragen. Die Bits 6 und 7 des
Bytes C2 geben an, daß die Daten im M-Byteassemblierer
unter der durch die werthohen Bits 0 bis 3 des Γ-Registers bestimmten Maske auf den Hauptspeicher
Xb zu übertragen sind. Diese werthohen Bits 0010 des
Γ-Registers veranlassen nur die Übertragung des Bytes
2 der Daten im Assemblierer 23 auf den Hauptspeicher
Die Adresse, auf der dieses Datenbyte gespeichert ist, wird angegeben durch die Bits 0 bis 3 des Bytes C2 der
Mikroinstruktion. Die Decodierung dieser Bits veranlaßt die direkte Adressierung des Arbeitsspeichers 6 und
die Bits 1,2 und 3 des Bytes C2 sowie die wertniederen Bits 4 bis 7 des P-Registers werden in der Schaltung 15!
decodiert und wählen das W-Register auf der Adresse 12. Die Hauptspeicheradresse 001 EFDQO im W-Register
wird auf das S-Register 22 übertragen und die wertniederen Bytes 2 und 3 vom fl-Register 22 auf den
fl-Byteassemblierer 24. Byte 2 im Ö-Byteassemblierer
wird auf d.c ALU2 ü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 ALU3
übertragen. Ein anderes Eingangssignal zur ALU3 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 Γ-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 ALU3
übertragen. Nach der Verwendung der werthohen Bits des Γ-Registers zur Leitung der Daten in den
Hauptspeicher Xb 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 Bits 2,
3 und 4 des Bytes CO und des Bits 4 des Bytes C3 die Adresse vom Wert 12 auf den Wert 13 um 1 erhöht,
welche das W-Register des S-Arbeitsspeichers während des ersten Zyklus wählte und dadurch das (./-Register im
ß-Arbeitsspeicher 6 adressiert. Die wertniederen Bytes 2 und 3 des Lf-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 Fall ist es das W-Register. Jedesmal, wenn ein Wort oder ein Datenteil eines Wortes vom Hauptspeicher
/üi VeiHiueiiuiig übertragen und das F.rgebnis in
den Hauptspeicher zurückgesetzt wird, muß die Wortzahl im ^/-Register bis zum Erreichen des Wertes 0
herabgesetzt werden, wodurch das Ende einer bestimmten Rechenoperation angezeigt wird. Die Unterform
der jeweils ausgeführten Speichermikroinstruktion gibt den Wert an, um welcnen 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 Mikroinstruk-
)o tionsbits 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 ß-Byteassemblierer 24
auf die ALLJ3 übertragen und um 4 herabgesetzt und dann in den Bytes ! und 3 des Z-Registers 30
gespeichert.
Zu den Zeitpunkten 45 bis 90 des Speicherzyklus 2 wird die fortgeschriebene Wortadresse (001 EFDOl),
■to die auf das Z-Register während des ersten Speicherzyklus
übertragen wurde, in das ß-Register 31 übertragen. Während der Zeit 90 bis 150 des zweiten Zyklus wird die
fortgeschriebene Adresse vom D-Register auf das W-Register über den SDßO-Assemblierer 11 übertragen.
Die nächste auszuführende Mikroinstruktion wird teilweise über die Folgeadreßbits 0 bis 3 des Bytes C3
der ausgeführten Mikroinstruktion adressiert. Die hohen Verzweigungsbits 5,6 und 7 des Bytes CO werden
decodiert, wodurch das Bit 4 des M3-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 Λ/3-Registers. Eine Modulumschaltung ist in der
gezeigten Mikroinstruktion nicht vorgesehen, wodurch der Wert der Adreßbus in dem Λ/2-Register in das
A/2-Register zur Adressierung der gewünschten Mi-
kroinstruktion in demselben Modul gesetzt wird.
Hierzu 21 Blatt Zeichnungen
Claims (9)
1. Mikroprogrammgesteuerie 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 Mikroinstrukiion erforderlich ist.
3. Zentraleinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Steuereinheit (Fig. 5)
besondere Auswahlsignale (SP 1 Zyklus, SP Versehe
SP2 Zyklus) erzeugt, mit denen die Auswahl mehrerer aufeinanderfolgender gleich langer oder
verschieden langer TaktimpulsreAen 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 Syster.izustai.· /(Zustandsregister
7a, Zustandsbits in Arbeifspeichcrn 5, 6) kürzere oder längere Taktimpulsreihen erz», gt werden.
5. Zentraleinheit nach Anspruch 4, dadurch gekennzeichnet, daß für Mikroinstruktionen vom
Typ »Verzweigung« in Abhängigkeit vom .Systemzustand eine kurze oder eine lange Taktimpulsreihe
erzeugt wird und in letzterem Fall der Auswahlsteuerimpuls für die nächste Mikroinstruktion spät in
der längeren Taktimpulsreihe erzeugt wird.
6. Zentraleinheit nach einem oder mehreren der Ansprüche I bis 5, dadurch gekennzeichnet, daß
Mikroinstruktionen paarweise aus dem Steuerspeieher (1.7. Fig. I) 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 Mikroinstruktion
früher oder später in dieser Taktimpulsreihe liegt.
7. Zentraleinheit nach einem oder mehreren der Ansprüche I bis 6, dadurch gekennzeichnet, daß eine
für Halbwortoperationen ausgelegte arithmetische und logische Einheit (ALLJ20) 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 Ausfiihrung
eine einzige, gegebenenfalls verlängerte Taktimpulsreihe ausgewählt werden kann.
8. Zentraleinheit nach Anspruch 7, dadurch gekennzeichnet, daß bei Dezimaloperationen die
Dezimalkorrektur bei der Direktübertragung vom 4/.i/-Ausgangsregister (30) zu einem der AI.U-K\ngangsregister
(22) durchgeführt wird.
9. Zentraleinheit nach einem oder mehreren der
Ansprüche I bis 8, dadurch gekennzeichnet, daß die Zugriffs- und Lesezeit eines an die Zentraleinheit
angeschlossenen Hauptspeichers (16, Fi g. I) 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 true DE2117936B2 (de) | 1978-12-14 |
DE2117936C3 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) | JPS465165A (de) |
CA (1) | CA935934A (de) |
DE (1) | DE2117936C3 (de) |
FR (1) | FR2086169B1 (de) |
GB (1) | GB1274830A (de) |
Families Citing this family (47)
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 |
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 |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
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 |
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 |
WO1993019416A1 (en) * | 1992-03-25 | 1993-09-30 | Zilog, Inc. | Fast instruction decoding in a pipeline processor |
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 |
US7779237B2 (en) * | 2007-07-11 | 2010-08-17 | International Business Machines Corporation | Adaptive execution frequency control method for enhanced instruction throughput |
TW200919306A (en) * | 2007-07-11 | 2009-05-01 | Ibm | 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 JP2397011971A patent/JPS465165A/ja active Pending
- 1971-04-16 JP JP2397171A patent/JPS5729740B1/ja active Pending
- 1971-04-19 GB GB27190/71A patent/GB1274830A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
JPS5729740B1 (de) | 1982-06-24 |
GB1274830A (en) | 1972-05-17 |
CA935934A (en) | 1973-10-23 |
DE2117936C3 (de) | 1979-08-16 |
FR2086169A1 (de) | 1971-12-31 |
JPS465165A (de) | 1971-11-25 |
DE2117936A1 (de) | 1971-11-04 |
US3656123A (en) | 1972-04-11 |
FR2086169B1 (de) | 1973-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2117936B2 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE3424962C2 (de) | ||
DE2542751C2 (de) | Datenverarbeitungsanlage | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE2346525B2 (de) | Virtuelle Speichereinrichtung | |
CH620779A5 (de) | ||
DE2536622C2 (de) | Verzweigungssteuerung mit flexibler Auswahl von Steuerworten | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2457612A1 (de) | Mikroprogrammier-steuersystem | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE1803767A1 (de) | Elektronisches Datenverarbeitungssystem | |
DE2318069A1 (de) | Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix | |
DE2717658A1 (de) | Anordnung zur ansteuerung eines mikroprogrammspeichers | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE2835095A1 (de) | Gekoppeltes, mikroprogrammiertes prozessorsystem | |
DE1549478B1 (de) | Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden | |
DE2617485B2 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
DE2747304C3 (de) | Einrichtung zur Mikrobefehlssteuerung | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2835110A1 (de) | Schneller echtzeit-rechneremulator | |
DE2403039C2 (de) | Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage | |
DE2906685A1 (de) | Instruktionsdecodierer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |