DE2440628A1 - Datenverarbeitungsanlage mit mikroprogrammierung - Google Patents
Datenverarbeitungsanlage mit mikroprogrammierungInfo
- Publication number
- DE2440628A1 DE2440628A1 DE2440628A DE2440628A DE2440628A1 DE 2440628 A1 DE2440628 A1 DE 2440628A1 DE 2440628 A DE2440628 A DE 2440628A DE 2440628 A DE2440628 A DE 2440628A DE 2440628 A1 DE2440628 A1 DE 2440628A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- microinstruction
- memory
- main memory
- microprogram
- 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.)
- Ceased
Links
- 238000012545 processing Methods 0.000 title claims description 36
- 230000015654 memory Effects 0.000 claims description 106
- 230000006870 function Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000001356 surgical procedure Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000630 rising effect Effects 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
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)
Description
körner<L Qi?ey
Honeywell Information Systems Italia S.p.A.
Berlin, den 22. August 1974
Datenverarbeitungsanlage mit Mikroprogrammierung
Die Erfindung bezieht sich auf eine Datenverarbeitungsanlage
mit Mikroprogrammierung, in der verschiedene Operationen gesteuert durch eine Folge
von Mikroanweisungen ausgeführt werden, die eine Art von Programm zum Leiten des Steuersystems bilden.
Nach einer kürzlich entstandenen Erfindung desselben Anmelders, die gemeinsam mit dieser Anmeldung eingereicht
wurde, kann jedes Mikroprogramm, das zum Leiten des Steuersystems benutzt wird, entweder in
einem Nur-Lese-Speicher (ROS), der spziell für die Mikroprogramme vorgesehen ist, oder im Hauptspeicher
der Datenverarbeitungsanlage eingespeichert werden. Auf diese Weise ist es möglich, den Satz Mikro-
5098U/0726
programme der Datenverarbeitung zu erweitern, ohne die physikalische Struktur derselben zu verändern.
Dieselbe Patentanmeldung beschreibt ein bevorzugtes Ausführungsbeispiel, bei dem es möglich ist, die
Mikroprogramme, die im Hauptspeicher festgehalten sind, heranzuziehen und es wird gezeigt, daß die
Ausführung von Mikroanweisungen - oder Folgen davon -, die sich im Hauptspeicher befinden, mehr
Zeit in Anspruch nimmt als die Ausführung von Mikroanweisungen, die im Mikroprogramm-ROS-Speicher festgehalten
sind, weil der Ausführungsphase jeder Mikroanweisung stets eine Rufphase derselben Mikroanweisung
vorangehen muß, die mindestens einen Maschinen zyklus in Anspruch nimmt.
Der Erfindung liegt die Aufgabe zugrunde, diesen Nachteil mindestens zum Teil zu beseitigen und eine
Datenverarbeitungsanlage anzugeben, bei der die Ausführung von im Hauptspeicher festgehaltenen Mikroanweisungen
nicht wesentlich, mehr Zeit in Anspruch, nimmt als die Ausführung von MJkcoanweisungen, die
im Mikroprogramm-ROS-Speicher festgehalten sind.
Erfindungsgemäß wird diese Aufgabe dadurch, gelöst, daß die Ausführungsphase einer Mikroanweisung mindestens
teilweise mit der Rufphase der nachfolgenden Mikroanweisung zeitlich, überdeckt ist.
Eine vorteilhafte Weiterbildung der Erfindung zeichnet sich, aus durch, die Verwendung eines sogenannten
"Hardware-Sequencers", dessen Arbeitsweise durch das Ergebnis der Überprüfung vorbestimmter Eigenschaften
der auszuführenden Mikroanweisungen bestimmt wird.
5098U/0726
Die Eigenschaften "und Vorteile der Erfindung sollen
anhand eines vorteilhaften Au s führung sb ei spiels der Erfindung, das in der Zeichnung dargestellt ist,
nachfolgend näher beschrieben werden.
Es zeigen:
Fig. 1 eine vereinfachte Blockdarstellung eines bevorzugten Ausführungsbeispiels
des erfindungsgemäßen Steuerteils,
Fig. 2 eine vereinfachte Blockdarstellung des Operationsteils einer Datenverarbeitungsanlage,
der durch den erf indungsgemäßen Steuerteil beeinflußt
wird,
!Fig. 3 eine .vereinfachte Blockdarstellung .
des Hauptspeicherteils einer Datenverarbeitungsanlage entsprechend der Erfindung und
Pig. 4 ein detailliertes Schaltbild eines Teiles des Steuerteils nach Pig. 1.
In Pig. 1 ist dieser Steuerteil ι und die Takteinheit
2 der Datenverarbeitungsanlage dargestellt. Die Beschreibung ist leichter zu verstehen, wenn zunächst
die Takteinheit 2 betrachtet wird. Diese Einheit umfasst im wesentlichen eine Taktschaltung 20
und ein Taktnetzwerk 21. Die Taktschaltung 20 besteht praktischerweise aus einer Verzögerungsleitung
mit Zwischenanzapfungen, die. durch eine monostabile Multivibratorschaltung gespeist wird, welche ihrerseits
getriggert wird entweder durch ein externes
5098U/0726
-H-
Startsignal oder aber vom Endanschluß der Verzögerungsleitung, um eine zyklische Folge von Taktimpulsen
zu erzeugen.
Als Alternative ist es bekannt, eine Hochfrequenzoszillatorschaltung
zu verwenden, um eine Basisfrequenz zu erzeugen, von der eine Folge von Taktimpulsen
mit Hilfe von Frequenzteilern erhalten wird. Die Betriebsweise der Taktschaltung kann am Ende
eines jeden Zyklus mit Hilfe eines Befehls, der am Stopanschluß angelegt wird, unterbrochen werden.
Einige Taktimpulse werden durch die Ausgangsleitungen T^, Tp, T.,, .... bis T^ zu verschiedenen Punkten der
Datenverarbeitungsanlage hingeführt, wo sie zyklisch vorbestimmte Und-Tore ansteuern.
Andere Taktimpulse TC1, TCU, ·.·. bis TC·^· werden an
das Taktnetzwerk 21 angelegt, welches einen Teil der Takteinheit darstellt.
Das Taktnetzwerk erhält aus der Steuereinheit eine Anzahl von Signelen oder Mikrobefehlen C^, Cp, C, .....
Cjj und gibt mit Hilfe einer Anzahl von Und-Toren sowie
erforderlichenfalls Flipflops unter der Steuerung der Taktimpulse TC^ bis TC^ eine Anzahl von Mikrobefehlen
zu geeigneten Zeiten ab, die außerdem geeignete Zeitdauern CT^ bis CT^ aufweisen. Sie werden mit
Hilfe einer geeigneten Steuerschaltung, die in der Zeichnung nicht dargestellt ist, zu geeigneten Punkten
der Datenverarbeitungsanlage - eingeschlossen die Steuereinheit,der Operationsteil und der Speicherteil
- geleitet.
In den Figuren 1,2, 3 und 4- deutet ein Pfeil, der
auf einen Eingang eines Bedingungseiementes, das
5098U/0726
meistens durch einen Kreis dargestellt ist, an, das ein Taktimpuls T 'Ms T^ oder ein getakteter
Mikrobefehl CT^ bis CT^ durch eine Verbindung,
die durch den Pfeil dargestellt ist, angelegt wird.
Der Unterschied zwischen Taktimpulsen und getakteten
Mikrobefehlen besteht darin, daß die Taktimpulse ohne weitere Bedingung in jedem Zyklus
durch die Takteinheit geliefert werden (Maschinenzyklus) , wo hingegen die getakteten Mikrobefehle
nur während derjenigen Maschinenzyklen geliefert werden, in denen die entsprechenden Mikrobefehle
Cx, bis C^ vorliegen.
Der Steuerteil 1 umfasst im wesentlichen einen Nur-Lese-Speicher
EOS 2Δ, ein Ausgangsregister für diesen Speicher EOE (Nur-Lese-Eegister) 3» einen
Dekoder 4, ein EOS-Adressenregister (EOSAE) 5, ein
zusätzliches Eegister zum Speichern der EOS-Adressen (EOSAR I) 6 und einen Zählteil 7 zum Heraufsetzen
der EOS-Adressen.
Der EOS-Speicher ist zur Aufnahme von Mikroworten
mit beispielsweise 18 Bits ausgelegt, organisiert in Mikroprogrammen, welche die Arbeitsweise der
Datenverarbeitungseinrichtung steuern und mittels "Primitiv-Maschinenanweisungen" ausgelesen werden.
Die Kreise 9 bis 16 stellen Gruppen von Und-Toren
dar, welche den Durchgang von Signalen auf den Verbindungsleitungen, die mit diesen Gruppen verbunden
sind, steuern.
Jede der Gruppen 9 bis ^6 wird, wie gesagt, gesteuert
entweder durch ein Taktsignal T^ oder durch einen getakteten Mikrobefehl CT.. Im·einzelnen werden die
5098U/0726
Gruppen von Und-Toren 12, 13, "6 durch Taktimpulse
gesteuert,, wo hingegen die Gruppen von Und-Toren 9, 19, ΛΛ, Ή und "5 durch getaktete Mikrobefehle
gesteuert werden. Jede Gruppe empfängt an ihren Eingängen und entläßt - wenn durchgeschaltet - an
ihren Ausgängen eine Anzahl von geeigneten Signalen auf eine Anzahl von Leitungen, die durch eine einzelne
Linie repräsentiert wird und hier "Kanal" genannt werden soll.
Ein Satz von Signalen, repräsentativ für eine feste ROS-Adresse in binärer Form, soll auf den Kanal 8
gegeben werden, der·nicht durch eine Gruppe von Und-Toren beeinflußt wird.
Um die Funktion der Datenverarbeitungsanlage einzuleiten, kann diese Adresse in diesen Kanal hineingebracht
werden, beispielsweise durch Vorwahl von geeigneten Schaltern der Steuerkonsole oder durch
Drücken der Starttaste, welche durch die Leitung START die Takteinheit in Betrieb setzt.
Die Adresse, die jetzt im Kanal 8 vorliegt, wird in das Register ROSAR eingespeichert und sobald die
Gruppe von Und-Toren 12 durch einen Taktimpuls durchgeschaltet ist, wird der Speicher ROS adressiert,
ein Mikrowort ausgelesen und durch die Gruppe von Toren 16 in das Register ROR 3 eingespeichert.
Dasselbe Mikrowort, das nun an den Ausgangsleitungen des Registers ROR 3 anliegt, wird durch den
Dekoder 4- dekodiert.
Das dekodierte Signal wird durch eine Anzahl von Und-Toren zum Taktnetzwerk 21 geleitet und verläßt
dieses in Form von getakteten Mikrobefehlen.
5098U/0726
Die ROS-Adresse, die im Register 5 enthalten ist,
kann auf verschiedene Weisen auf den neuesten Stand gebracht werden:
Zunächst kann sie durch die Gruppe von Und-Toren ^3
in das Register ROSAR I eingespeichert werden und
von dort vermittels der durchgeschalteten Und-Tore 14 der Zählschaltung 7 zugeführt werden, wo sie,
"beispielsweise um eine Einheit, heraufgesetzt wird. Die auf diese Weise erneuerte Adresse wird anschließend
wieder durch den Kanal 17 und cLLe Gruppe von Und-Toren
11 in das Register 5 eingespeichert.
Andererseits kann die Adresse a"ber auch durch eine geeignete Größe K heraufgesetzt werden, die durch
das Mikrowort, das im Register ROR 3 gespeichert ist,
erhalten wird und der Zählschaltung 7 über den Kanal
18 und die Tore 15 zugeführt wird.
Nach einer weiteren Alternative kann die neue ROS-Adresse auch durch ein Mikrowort erhalten werden, das
aus dem Register ROS ausgelesen wird und im Register ROR enthalten ist. Eine geeignete Anzahl von Bits
kann durch den Kanal 18 und die Tore 10 in das Register ROSAR 5 überführt werden.
Eine weitere Adressiermöglichkeit ist mit dem Kanal
19 gegeben, der durch eine Gruppe von Toren 9 gesteuert wird und es gestattet, in das Register 5
den Inhalt des Registers A einzuspeichern. Letzteres
ist eines von mehreren Registern, das im Operationsteil der Datenverarbeitungseinrichtung enthalten ist,
wie es in Fig. 2 dargestellt ist. Der.,Inhalt dieses
Registers kann, wie es weiter unten erläutert werden wird, einerseits aus einem anderen Register des
509814/0726 " 8 "
Operationsteils stammen oder von einer externen peripheren Einheit oder aber auch aus dem Hauptspeicher.
Deshalb kann man allgemein sagen, daß der Speicher ROS durch jede Informationsquelle
adressiert werden kann, die entweder sich in der Datenverarbeitungsanlage selbst befindet oder mit
ihr verbunden ist.
Die Parallelverarbeitung von Daten in dem beschriebenen Steuerteil verdient eine kurze Betrachtung:
Die Länge der ROS-Adressen (in Bits) hängt ab von der Zahl der ROS-Speicherplätze, welche adressiert
werden müssen und ist unabhängig von der Länge der Mikroworte, die aus dem Speicher ROS ausgelesen
werden. ROS-Adressen mögen beispielsweise eine Länge von 15 Bits haben und wären damit geeignet, um ungefähr
32OOO verschiedene Speicherplätze zu adressieren.
Das heißt, daß alle Kanäle, die zum Laden der ROS-Adressen benutzt werden, ^5 Leitungen enthalten
und daß die Register 5 und 6 je 15 Bit-Plätze aufweisen.
Im Gegensatz dazu hat das Register 3 viele individuelle
Bit-Anordnungen, entsprechend den Bits, die ein Mikrowort formen, beispielsweise Ί8. Das heißt,
daß, wenn die ROS-Adresse von einem Mikrowort erhalten wird, das im Register ROR enthalten ist, nur
^5 der Ί8 Bits als Adresse benötigt werden und in
den Kanal 18 überführt werden.
Nach der Erfindung ist der Mikroprogrammspeicher ROS darauf eingerichtet, eine Mikroanweisung des
Mikroprogramms während des Aufbaus des Mikroprogramms abzurufen.
- 9 5098U/0726
Um das zu "bewirken, enthält die Mikroanweisungsadresse
ein Bit, das angibt, ob es sich um eine ROS-Adresse oder um eine HpuptSpeicheradresse han- "
delt. Dieses Bit kann im Flipflop 24 festgehalten werden, das mit dem Register ROSAR verbunden ist
und soll die Bezeichnung MR erhalten. Wie aus Fig. 1 ersichtlich, kann dieses Flipflop durch ein Bit
gesetzt werden, das mittels einer Leitung, die zusammen mit anderen Leitungen den Kanal 19 "bildet,
über das Und-Tor 9' zugeführt werden.
Alternativ kann es auch mit einem spezifischen Bit der Mikroanweisung, die im Register ROR enthalten
ist, über den Kanal 18 und das Und-Tor 10' gesetzt werden.
Außerdem kann der Zustand des Flipflops24 mittels
einer Konsolentaste über die Leitung 81 festgelegt
werden. Die Arten des Setzens des Flipflops 24 werden weiter unten beschrieben.
Die Ausführung von Makroanweisungen, die sich im
Hauptspeicher befinden, erfordert deren Adressierung, Auslesen und Übertragung. Diese Operationen
müssen durch eine Folge von Mikroanweisungen gesteuert
werden.
Diese Folge von Mikroanweisungen wird in einfacher Weise durch einen Hardware-Sequencer erzeugt, der in
geeigneter Form mit dem bereits beschriebenen Teil des Steuerteils verbunden ist. Nach der Erfindung
werden die Folgen so gestaltet, daß'sie es erlauben,
die Ausführungsphase einer Mikroanweisung mit der Rufphase der nachfolgenden Mikroanweisung zu über-1app
en.
- 10 5098U/0726
Fig. 1 gibt die vereinfachte- Blockdarstellung des
gesamten Steuerteils gemäß der Erfindung wieder und enthält deshalb auch den Hardware-Sequencer
und die entsprechenden Verbindungen mit dem Steuerteil zusammen mit denjenigen Schaltungsteilen, die
zur Verwirklichtung der Erfindung notwendig sind.
Der Hardware-Sequencer wird durch den Block 25
dargestellt. Weiter unten wird ein bevorzugtes Ausführung sb ei spiel des Sequencers anhand von Fig. 4
im einzelnen behandelt werden. Im Augenblick ist es ausreichend darauf hinzuweisen, daß der Hardware-Sequencer
vorteilhafterweise aus einem Binärzähler für beispielsweise 2 Bits bestehen kann.
Der Sequencer wird bei jedem Maschinenzyklus durch einen Taktimpuls, der dem."Eingang 22 zugeführt wird,
weitergesetzt. Der Taktimpuls ist jedoch nur wirksam, wenn das Plipflop 24 gesetzt ist, d.h. sein
Ausgang sich auf dem logischen '"'"-Pegel befindet. Der Ausgang dient als Durchschaltsignal für den
Hardware-Sequencer 25· Dieses Signal wird mittels
der Leitung 23 zugeführt.
Ein Hilfsregister 27, das mit EOEM bezeichnet ist, dient zur Aufnphme von Informationen vom Hauptspeicher
über die Gruppe von Und-Toren 28 und den Kanal 29. Das Eegister EOEM dient zur Aufzeichnung
von Informationen, die den Charakter von Mikroanweisungen haben und es ist daher zweckmässig, daß
die Parallelverarbeitung gleich der des Speichers EOS ist, so daß eine Binärinformation von derselben
Länge wie die der Mikroanweisungen eingespeichert werden, kann.
5098U/07 2 6
Nur in dem Pall, daß spezifische Mikrοanweisungsbitsy die
im Speicher EOS enthalten sind, redundante Prüfbits sind, wie z.B. Paritäts-Prüfbits, die
nicht wichtig für die Erzeugung der Mikrobefehle sind, kann das Register EOEM eine kleinere Kapazität
haben, die der effektiven benutzbaren Länge der Mikroanweisungen entspricht.
Dps Register RORM ist über die Gruppe von Und-Toren
30 ebenfalls mit den Eingangsleitungen des Registers EOE verbunden und deshalb ist es möglich,
die Information, die in dem Register RORM enthalten ist, in das Register ROR einfach dadurch zu
transferieren, daß die Gruppe von Und-Toren 30'
durchgeschaltet wird.
Die Ausgangsleitungen 31 des Hardware Sequencers
25 sind über die Gruppe von Und-Toren 32 mit der
Befehlserzeugungsschaltung 4-A verbunden. Diese
Schaltung besteht aus einer Anzahl von Oder-Toren. An ihrem Eingang erhält sie sowohl, die Ausgangssignale
des Hardware Sequencers als auch die des Dekoders 4 zugeführt.
Entsprechend einer weiteren vorteilheften Weiterbildung
der Erfindung sind die Ausgänge des Registers ROEM ebenfalls durch die Gruppe von Toren
30"1 mit einem Decoder 302 verbunden, dessen Ausgänge
303 wiederum mit der Befehlserzeugungsschaltung
4A verbunden sind und deren Ausgänge in Abhängigkeit von ihrem logischen Zustand steuern.
Nach einer anderen günstigen Ausführungsform der
Erfindung sind die Ausgänge des Dekoders 302 mit Hilfe der Leitungen 304 ebenfalls mit dem 'Hardware-Sequencer
25 verbunden und können durch ihren logischen Zustand seine Arbeitsweise steuern.
5098U/0726 .
Die kombinierte Verwendung dieser Merkmale gestattet es, den Auslesevorgang einer Mikroanweisung
mit der Ausführung der vorhergehenden Mikroanweisung zu überlappen, so daß die Operationszeit
der Datenverarbeitungsanlage verkürzt ist, wenn, das Mikroprogramm, das die Steuerschaltung
beeinflußt, im Hauptspeicher festgehalten ist.
Die ITunktion des Hardware-Sequencer schaltung und
ihre Verbindung mit dem Steuerteil wird im einzelnen weiter unten mit Bezug auf Fig. 4 behandelt
werden.
Pig. 2 zeigt eine Blockdarstellung des Operationsteils der Datenverarbeitungseinrichtung, der an
dieser Stelle summarisch und nur der Vollständigkeit
halber beschrieben werden soll.
Er besteht hauptsächlich aus zwei Sätzen von Registern 33 und 34, einem Register A und einer Operationsschaltung
35i Der Registersatz 33 beispielsweise
enthält 16 Register von jeweils 8 Bit und wird durch einen Mikrobefehlskode über die Eingangsleitungen
37 adressiert. Mit Hilfe einer derartigen Adressierung und bei gleichzeitiger Steuerung entweder
der Gruppe von Toren 38 an den Eingängen des
Registersatzes oder der Gruppe von Toren 39 bsi Ausgang
desselben wird eine Information, die durch den Kanal 45 ankommt, in dem adressierten Register aufgezeichnet
werden. Alternativ oder gemeinsam kann
5098U/0726
die in dem adressierten Register schon enthaltene oder gerade festgehaltene Information auch, in dem
Register A festgehalten werden.
Der Inhalt des Registers A wird wiederum auf den Verteilungskanal 40; gegeben und kann dann mittels der
Tore 53 und 54 wahlweise der Operations schaltung
35 zugeführt werden.
Der Inhalt des Registers A kann aber auch, durch
den Kanal 41 und die Torp 42 zum Registersatz 34 übertragen werden. Dieser Satz enthält 16 Register
von jeweils 18 Bit und kann durch, einen Mikrobefehlskode
über den Eingang 43 adressiert werden. Der Inhalt des adressierten Registers ist stets am
Verteilungskanal 44 verfügbar und kann von hier aus wahlweise über Tore der Operationsschaltung 35 zugeführt
werden. Das adressierte Register in dem Registersatz 34 kann seinerseits mit Information aus
verschiedenen Quellen versehen werden. Es ist bereits erklärt worden, wie die in diesem Register A enthaltenen
Daten über den Kanal 41 und die Und-Tore 42 zum Satz 34 übertragen werden können.
Eine andere mögliche Quelle ist ein Datenkanal der mit externen peripheren Quellen verbunden ist. Dieser
Kanal ist mit DATA Hi bezeichnet und wird durch, die
Gruppe von Toren 45 gesteuert.
Die Daten, die aus dem Hauptspeicher auf Kanal (in Fig. 3) ankommen, werden in den Registersatz
über eine Gruppe von Toren 46 überführt, um durch. den Operationsteil verarbeitet zu werden. Auch, der
Nur-Lese-Mikroprogrammspeicher ROS kann zum Zwecke
der Aufzeichnung Daten zum Satz 34 geben. Zu diesem Zweck ist ein Verbindungskanal 47 (Jig. 1 und 2)
- 14 509814/0726
zwischen dem Ausgang des Registers ROE und dem Registersatz 34 vorgesehen. Dieser Kanal wird gesteuert
durch die Gruppe von Toren 48.
Es ist außerdem möglich, dem Registersatz 34 jede
vorgegebene Information über einen Kanal 49 (LOAD) zuzuführen, der durch die Gruppe von Toren 50 gesteuert
wird.
In den Kanal 49 kann außerdem Information eingegeben
werden, die - gesteuert durch eine Bedienungsperson über die Konsolenschalter erzeugt wird.
Die Registersätze 33 und 3^ können parallel gesteuert
werden, um nur ein einziges Register in jedem Satz gleichzeitig zu adressieren. Im Falle des Satzes
wird dieses durch das Register A ausgeführt. Dasselbe gilt aber auch'für den Satz 34, der im Hinblick auf
die Arbeitsweise der Datenverarbeitungseinrichtung jedes Mal als einzelnes Register B angesehen wird.
Die Register A und B stellen die benötigten gleichzeitigen Datenträger für zwei Informationen dar,
.welche der Operationsschaltung zur Verarbeitung angeboten werden. Die Operationsschaltung ist mit den
Registern A und B mittels der Verteilungskanäle 40 und 44 über dine Anzahl von Toren verbunden.
Die Tore werden in zweckmässigen Gruppen zusammengefasst,
entsprechend dem Format der zu verarbeitenden Daten (binär, zusammengefasste oder nicht zusammengefasste
Dezimalen):,- der Art der auszuführenden Information,
der Parallelverarbeitung durch die Register sowie der Operationsschaltung.
- 15 509814/0726
In dem betrachteten Beispiel weisen die Register und die Operationseinheit 35 beispielsweise die Fähigkeit
zur Parallelverarbeitung von 18 Bits auf. Das gestattet die parallele Verarbeitung von zwei Bytes,
ohne die Bearbeitung entweder eines einzelnen Bytes oder eines Abschnitts eines Bytes auszuschließen.
Zu diesem Zweck sind die Tore, die die Eingänge der Operationsschaltung 35 mit den Verteilungskanälen
40 und 41 verbinden, in Gruppen zusammengefasst, die mit den Bezugszeichen 51 bis 54 versehen sind. Jeder
Block, der jeweils eine Gruppe wiedergibt, ist mit der Zahl der übertragenen Bits versehen.
In ähnlicher Weise sind die Ausgänge der Operationsschaltung mit dem Sammelkanal 59 über die Tore 60
bis 63 verbunden.
Die Ausgänge der Operationsschaltungen sind gleichzeitig mittels der Und-Tore 64, 65 mit einem Dekoder
68 verbunden, welcher auf bestimmte Ausgangscodes anspricht, wie beispielsweise "alle Null" oder
"alle Eins" für jene Gruppe von Bits, die den angesteuerten
Toren entspricht.
Das Signal NZ 2 am Ausgang des Dekoders ist ein Signal "Bedingung hergestellt", das benutzt wird, um
die durch den Operationsteil mit durchgeführten Operationen geeigneten Tests zu unterwerfen.
Der Operationsteil kann in Form von bekannten elektrischen Schaltungen ausgeführt werden, wobei vorzugsweise
integrierte Schaltungstechnik verwendet wird. Eine ausführliche Beschreibung einer solchen Operationsschaltung
findet sich in der reichlich' vorhandenen Literatur über den Entwurf von elektronischen
5098U/0726
Datenverarbeitungsanlagen. Als maßgeblicher Text soll R.S. Lesley "Digital Computer and Control
Engineering", Part 4, erschienen bei McGraw-Hill, genannt werden. Außerdem ist in der durch, den
Anmelder eingereichten italienischen Patentanmeldung ITr. 26397 A/73, (eingereicht am 10.7.1973)
eine bestimmte Ausführung beschrieben, bei der die Operationseinheit verschiedene Schaltungen, die
funktionell unabhängig sind, umfasst, beschrieben. Dieser Anmeldung können weitere Einzelheiten entnommen
werden.
Die Operationsschaltung sollte im allgemeinen Operationen
der folgenden Art durchführen: arithmetische Binär- oder Dezimaloperationen, logische
Operationen wie z.B. Und, Oder, Exklusiv-oder,
Vergleich sowie Datenverschiebeoperationen und Vermehrungs- oder Verminderungsoperationen, um eine
oder mehrere Einheiten. Die Art der benötigten Operation wird durch eine Gruppe von Mikrobefehlen
festgelegt, die vom Steuerteil erhalten wird.
Um die Beschreibung des Operationsteils zu vervollständigen, soll gesagt werden, daß der Sammelkanal
59 mit dem Kanal 45 verbunden ist und daß daher die als Result av Suren die Einheit 35 durchgeführten
Operationen auf dem Sammelkanal vorhandenen Daten in ein geeignetes Register des Satzes 33 übertragen
und eingespeichert werden können. Von dort aus können sie in das Register A und zum !Festhalten in den
Satz 3^· gelangen, falls sie im Hauptspeicher benötigt
werden. Außerdem ist die Übertragung in eine periphere Einrichtung über den Kanal 66 bzw. den
Kanal 85 und die Gruppe von Toren 84 möglich. Der Kanal 66 ist mit dem Hauptspeicher verbunden (Fig. 3)■
Der Kanal 85 am Ausgang der Gruppe von Toren 84 dient
5098H/0726
dazu, Informationen aus der Datenverarbeitungsanlage in periphere Teile zu übertragen. Das geschieht
mittels einer Steuerschaltung zur Beeinflussung des Informationsaustausches,.deren Beschreibung für das
Verständnis der Erfindung nicht wesentlich ist und deshalb fortgelassen wurde.
Der Operationsteil enthält außerdem zwei Umgehungskanäle 83 und 86, die durch Gruppen von Toren 87 und
88 gesteuert werden, um die Verteilerkanäle 40 und 44 direkt mit dem Sammelkanal 59 zu verbinden.
Zusätzlich ist eine Anzahl von nicht dargestellten Flipflops vorgesehen, um besondere Zustände festzuhalten,
wie beispielsweise "Fortfahren", "Ausführen" und außerdem Ergebnisse von Überprüfungen, die durch
spezielle Dekoder durchgeführt werden.
Fig. 3 zeigt eine Blockdarstellung des Speicherteils
der Datenverarbeitungseinrichtung. Diese umfasst im
wesentlichen den Hauptspeicher ^22, der beispielsweise
einen Kernspeicher darstellt, mit einer Parallelverarbeitung von Ί8 Bits, einem Adressierregister SI,
einem Datenregister DATA und einer Anzahl von Verbindungskanälen. Das Adressierregister SI erhält von dem
Kanal 40 (Fig. 2 und 3) über die Und-Tore 124 die
codierte Information, die im Register A festgehalten ist, welches, wie gesagt, in dem in Fig. 2 dargestellten
Operationsteil enthalten ist.
Das Register SI hat eine Kapazität, die der maximal zu erwartenden Speicherkapazität angepaßt ist. Beispielsweise
kann ein Register mit 18 Speicherplätzen ,
509814/0726
ungefähr 256.000 Speicherplätze adressieren und ist der Parallelverarbeitung der beschriebenen Datenverarbeitungsanlage
angepaßt.
Die Daten, die in den Speicher eingeschrieben werden sollen, werden über den Kanal 66 gesteuert durch, die
Und-Tore 125» in das Register DATA überführt und
stammen, wie bereits bekannt, aus dem Register B des Operationsteils. Die Daten, die im Register DATA
festgehalten sind, werden in die adressierten Speicherplätze über den Kanal123 eingeschrieben.
Die aus dem Speicher ausgelesenen Daten werden auf dem Kanal 127 übertragen, über die Tore 126 in das
Register DATA eingespeichert und von dort aus über den Kanal 128 dem Register B zugeführt, das bereits
in der Beschreibung des Operationsteils erwähnt wurde.
Ein zusätzlicher Kanal 129 am Ausgang des Registers ROSAR, der durch, die Gruppe von Toren 134 gesteuert
wird, ist zum Adressieren des Speichers vorgesehen. Durch diesen Kanal kann eine Mikroanweisungsadresse
in das Register SI eingebracht werden, was die Adressierung eines Speicherplatzes im Hauptspeicher anstelle
eines Platzes in einer ROS-Position ermöglicht.
Der Ausgang des Registers DATA ist ebenfalls sowohl mit dem Register B über den Kanal 128 als auch, mit
dem Register RORM 27 (I1Ig. 1) über den Kanal 29 und
die Gruppe von Toren 28 verbunden, so daß der Inhalt von DATA als Mikroanweisung für den Steuerteil verwendet
werden kann.
Mit anderen Worten ist ein direkter Austausch von Informationen zwischen dem Hauptspeicher und dem
Steuerteil und von Adressen zwischen dem Steuerteil
5098U/0726
und dem Hauptspeicher vorgesehen. Dieses war in den bekannten Einrichtungen nicht möglich, da der Steuerteil
in der Weise arbeitete, daß er nur die Gruppe von Toren für den Austausch von Information steuerte.
Nachdem die Struktur der Datenverarbeitungsanlage allgemein beschrieben worden ist, soll jetzt die Beschaffenheit
des Hardware-Sequencers und der angeschlossenen Schaltungen näher untersucht werden.
Fig. 4 zeigt ein bevorzugtes Ausführungsbeispiel des
Hardware-Sequencers nach Fig. 1. Es enthält im wesentlichen die verbundenen Flipflops 20ι und 222. Das
Flipflop 24, das mit dem'Register ROSAR verbunden
und zum Speichern des Bits, das angibt, wo die auszulesende Mikroanweisung festgehalten ist, vorgesehen
ist, wird durch einen getakteten Mikrobefehl CT 1 gesetzt.
Das geschieht entsprechend der Information, die an seinem Eingang 202 anliegt, der seinerseits mit
einer der Leitungen des Kanals 19 - welcher gleich- ·
zeitig zum Einspeichern des Registers ROSAR von dem Registersatz 33 aus dient - oder aber mit einer der
Leitungen des Kanals 18 bzw. mit einer Leitung, die zur Eingabe von Daten über die Konsole dient·, verbunden
ist.
Die direkte Ausgangsleitung 203 des Flipflops 24 ist
mit einem Eingang des Und-Tores 204, das insgesamt zwei Eingänge aufweist, dem Eingang des monostabilen
Multivibrators 205, dem Eingang des Inverters 206 und den Eingängen der Oder-Tore 207 bis 210 verbunden,
welche die Ausgänge des Hardware-Sequencers ansteuern.
509814/0726 -20-
24A0628
Der Ausgang des monostabilen Multivibrators ist mit den Rücksetzeingängen der Flipflops 201 und 222 über
die Oder-Tore 229 und 230 verbunden.
Der Ausgang des Inverters 206 ist mit einem Steuereingang 272 einer Gruppe von Toren *G (Fig.. Ό
verbunden, welche das Einspeichern der Register ROR aus dem Speicher ROS steuern.
Der Ausgang des Und-Tores 204, dessen zweiter Eingang
vom Taktimpuls T 2 angesteuert wird, beeinflußt den Takteingang des Flipflops 201.
Wenn, zu Beginn eines Maschinenzyklus, oder am Ende eines vorhergehenden der Mikrobefehl CT ί, der nur
auf eine entsprechende Mikroanweisung hin erzeugt
wird, das Setzen des Flipflops 2Pr gestattet und der
Ausgang des Flipflops den Zustand "1" annimmt, nimmt der Pegel der Leitung 203 ebenfalls den Zustand "1"
an, bzw. behält ihn bei, und sperrt dadurch mittels des Inverters 206 die Gruppe von Toren ^6.
Auf diese Weise wird der Speicher ROS daran gehindert, in das Register ROR die adressierte Mikroanweisung
einzugeben.
Wenn der logische Pegel auf der Leitung 203 nach "1" übergeht (wenn die Steuerung von einer ROS-Adresse
zu einer Mxkroanweisungsadresse im Hauptspeicher umgeschaltet wird) wird der monostabile Multivibrator
205 durch die Anstiegsflanke des Signals an seinem Eingang getriggert. Dadurch wird ein kurzer Impuls
abgegeben, der die beiden Flipllops 20 ^ und 222 des
Hardware-Sequencers zurücksetzt, falls sie sich vorher in gesetztem Zustand befunden haben.
5098U/0726
- 21 -
2A40628
Der Taktimpuls C2 wird diesem Impuls überlagert und fällt, wenn der monostabile Multivibrator arbeitet,
in die Dauer des von diesem abgegebenen Impulses, so daß der Taktimpuls das Zurücksetzen dieses Impulses
nicht stört.
Deshalb gehen zu Beginn des ersten MascMnenzyklus, der ein Einschreiten des Hardware-Sequencers erfordert
,di ^invertierten Eingänge der beiden Flipflops 201 und 222 und der direkte Ausgang des Flipflop 24
in den "1"-Zustand über.
Die Ausgänge der Und-Tore 208, 209 und 2^1O verbleiben
auf dem "Null"-Pegel, wie es aus den in Fig. 4 dargestellten
Verbindungen ersehen werden kann. Das Signal, das auf der Leitung 211 vorliegt, wird der
Befehlserzeugungsschaltung 4-A zugeführt und diese
gibt eine Anzahl von Mikrobefehlen ab. Die Befehlserzeugungsschaltung
4A besteht im wesentlichen aus Oder-Toren und bewirkt die Erzeugung von Mikrobefehlen
sowohl als Antwort auf die Signale, die von der logischen Schaltung 4- (Mikroanweisungen)und über
die Leitungen 211 bis 214 empfangen werden.
Die Mikrobefehle, die über die Leitung 211 ankommen, steuern während des Maschinenzyklus das Auslesen aus
dem Hauptspeicher bei der Adresse, die durch das Register ROSAR angegeben wird. Es wird also im einzelnen
erzeugt: ein Mikrobefehl, der die Gruppe von Toren Ί34 (Fig. 3) durchschaltet, um den Inhalt des Registers
ROSAR in das Register SI zu überführen-, andere Mikrobefehle zum Auslesen aus dem Speicher und
ein Mikrobefehl, der die Gruppe von Toren 126 zum Einspeichern der aus dem Speicher ausgelesenen Daten
in das Register DATA durchschaltet.
5098U/0726
Im folgenden (zweiten) Maschinenzyklus verändert sich der Zustand des Flipflop 24- nicht, da kein
getakteter Mikrobefehl CT 1 erzeugt wird. Der Taktimpuls T2 setzt jedoch das Flipflop 201. Es kann
aus Fig. 4- ersehen werden, daß auf der Leitung 212 ein Signal mit dem Pegel "1" erscheint, während
die Leitungen 211, 213 und 214 sich auf dem Pegel
"Null" "befinden. Das Signal auf der Leitung 212 erzeugt andere Mikrobefehle zu verschiedenen Zwecken,
beispielsweise, zum Durchschalten der Gruppe von Toren 28 (Fig. 1), wodurch die Information aus dem
Register DATA über den Kanal 29 in das Register RORM überführt wird. Gegen Ende dieses Zyklus ist die
auszuführende Mikroanweisung im Register RORM verfügbar.
Entsprechend der Erfindung wird die Mikroanweisung,
bevor sie ausgeführt wird, auf einige Charakteristiken hin untersucht. Die Mikroanweisung kann beispielsweise
eine bedingte oder eine nicht bedingte Sprungoper^tion oder einen Auslesevorgang aus dem Speicher
zur"Voraussetzung haben.
Wenn die Mikroanweisung keine Sprungmikroanweisung
darstellt, ist es bekannt, daß das Auslesen der nachfolgenden Mikroanweisung stattfindet, nachdem
die vorangehende Adresse um eine Einheit vermehrt wurde. Dieses Vermehren kann unmittelbar ausgeführt
werden. Die Dekoderschaltung 215 untersucht, ob
diese Bedingung vorliegt.
Sobald die Mikroanweisung im Register RORM eingetroffen
ist, schaltet ein getakteter Mikrobefehl, der durch den Hardware-Sequencer erzeugt wird, die
Gruppe von Und-Toren 2^6 durch und legt die Mikroanweisung
an den Dekoder 2^5 an·
509814/0726
Wenn die Mikroanweisung keine Sprungoperation er-
_fordert, wird aufVder Leitung 2^7 ein Signal erzeugt,
welches die Und-Tore 218 durchschaltet, wodurch der Hardware-Sequencer einen oder mehrere zusätzliche
Mikrobefehle (Leitung 2">9) erzeugt, welche den Inhalt des Registers EOSAE I jeweils um eine Einheit
heraufsetzen und den erneuerten Inhalt des Registers ROSAR über den Kanal 17 und die Gruppe von
Toren 11 (Fig. 1) überführen. Zum Ende des zweiten Maschinenzyklus ist die Adresse der nachfolgenden
Mikroanweisung bereits im Register ROSAR verfügbar,
falls die Mikroanweisung keine Sprungmikrοanweisung
ist.
Zu Beginn des dritten Maschinenzyklus bewirkt der Taktimpuls T 2 wiederum ein Weiterschalten des Sequencers,
wodurch auf der Leitung 2"3 der Pegel "^"
entsteht. Auf diese Weise wird ein neuer Satz von Mikrobefehlen erzeugt, die das Einspeichern einer
neuen Mikroanweisung, die aus dem Hauptspeicher ausgelesen
und in dem Register RORM enthalten ist, über die Gruppe von Toren 30 in .das Register ROR steuern.
Die Auslesemikrοanweisung wird deshalb in diesem Maschinenzyklus
ausgeführt. Insbesondere wird die Mikroanweisung durch die Dekoderschaltung 4- dekodiert,
welche' einen Satz von Mikrobefehlen erzeugt.
Wenn die Mikroanweisung keine Sprungmikroanweisung
ist, wurde das Erneuern der Adresse zum Auslesen der nachfolgenden Mikroanweisung bereits im vorhergehenden
Maschinenzyklus ausgeführt. Ein weiteres Erneuern der Adresse muß durch Unterdrückung der erneuernden
Mikrobefehle verhindert werden, die'sonst durch die Dekoderschaltung 4- erzeugt worden wären.Das wird bewirkt
durch die Benutzung eines Signals, das jetzt auf der Leitung 2"7 als Steuersignal zur Verfugung
509814/0726
steht. Dieses wird durch den Inverter 259 invertiert und verhindert den Mikrobefehl bzw. den Satz von
Mikrobefehlen mittels des Und-Tores 220. Es muß aber beachtet werden, daß das Eegister ROEM noch geladen
ist.Dieses Mittel ist notwendig, um für die im Haupt-,
speicher festgehaltenen Mikroanweisungen dasselbe
Format und denselben Inhalt im Vergleich zu den entsprechenden Mikroanweisungen, die sich im Speicher
ROS befinden, aufrecht zu erhalten.
Wenn eine Mikroanweisung eine Sprungmikroanweisung
ist, wird die Information, die in der Mikroanweisung
enthalten ist, in diesem Maschinenzyklus benutzt, um das Register ROSAR mit der neuen Adresse zu versehen.
Das geschieht entweder durch den Kanal 18 oder die Gruppe von Toren 15 bzw. durch die Gruppe von Toren
^O (Fig. 1). Diese Operation wird am Ende eines jeden
Maschinenzyklus durchgeführt.
Während desselben Maschinenzyklus wird die auszuführende Mik^o-anweisung getestet um eine andere Bedingung
festzustellen. Die Mikroanweisung kann Lese- und/oder
Schreiboperationen im Hauptspeicher erfordern, d.h. Operationen, die den Hauptspeicher und die Verbindungskanäle
beanspruchen. Auf der anderen Seite können aber auch Operationen erforderlich werden, /lie
den Hauptspeicher nicht beanspruchen.
Das Testen dieser Bedingung wird durch die Dekoderschaltung 215 ausgeführt, welcher der Inhalt des Registers
RORM über eine Gruppe von Toren 216 zugeführt wird.
Wenn die Mikroanweisung keiner Operation bedarf, die
den Hauptspeicher betrifft, wird ein entsprechendes Signal auf die Leitung 221 gegeben. In diesem Fall
509814/0726
ist der Hauptspeicher frei und der_selbe Maschinenzyklus kann verwendet werden, um die nachfolgende
Mikroanweisung aus dem Hauptspeicher auszulesen. Zu diesem Zweck ist es natürlich notwendig, daß auch
die Bedingung, daß die betreffende Mikroanweisung keine Sprungmikroanweisung ist, eingehalten wird,
d.h., daß das Erneuern der Adresse bereits im vorhergehenden Zyklus stattgefunden haben muß.
Wenn beide Signale auf den Leitungen 217 und 221
auf dem Pegel "1" sind, wird ein Und-Tor 227 durchgeschaltet und das Signal 213>
welches eine Anzahl von Operations-Mikrobefehle erzeugt, wird ebenfalls durch das Und-Tor 227 übertragen und erzeugt (Leitung
223) eine zusätzliche Zahl von Mikrobefehlen zum Auslesen des Hauptspeichers bei der Adresse,
die durch das Register EOSAE angegeben wird.
Auf diese Weise überlappen sich die Operation des Auslesens der neuen Mikroanweisung und die der Ausführung
der vorhergehenden im selben Maschinenzyklus. Wenn auf der anderen Seite, die Mikroanweisung eine
Sprungoperation erfordert, wird diese Operation ausgeführt, aber das Auslesen der neuen Mikroanweisung
aus dem Hauptspeicher kann nicht gleichzeitig stattfinden und wird deshalb bis zum folgenden Zyklus
verschoben.
Wenn die Mikroanweisung schließlich eine Lese- oder Schreiboperation im Hauptspeicher erfordert oder
eine Operation die seine Verbindungskanäle betrifft, kann die Operation nicht gleichzeitig mit dem Auslesen
der neuen Mikroanweisung ausgeführt werden, so daß diese verschoben werden muß.
- 26 509814/0726
Das Verhalten des Hardware-Sequencers im dritten Eingriffszyklus, wenn die MikroanweisungOperationen,
die die Speicherkanäle benutzen, erfordert, x^ird
weiter unten behandelt werden. Es soll jedoch hier schon bemerkt werden, daß am Ende dieses Zyklus
das nachfolgende Verhalten des Hardware-Sequencers den festgestellten Bedingungen angepasst werden
muß.
Es sind drei Bedingungen möglich:
1. Die auszuführende Mikroanweisung ist weder eine
Sprung- noch eine Hauptspeicher-Schreib-Lese-Mikro anwe isung.
In_diesem Fall muß der Hardware-Sequencer in seinen
Zustand, der dem zweiten Zyklus entspricht, zurückgeführt werden, da die nachfolgende Mikroanweisung bereits
aus dem Hauptspeicher ausgelesen worden ist. Dazu sind die Leitungen 2^7 und 22^ mit den Eingängen
von Und-Toren 228 verbunden, welche durch den Ausgang eines Und-Tores 204 durchgeschaltet werden. Das
geschieht durch ein Taktsignal T 2 und durch den direkten Ausgang des Flipflops 222. Der Ausgang des
Und-Tores 228 setzt das Flipflop 222 über das Oder-Tor 229 zurück.
Dadurch ist zu Beginn des vierten Maschinenzyklus das Flipflop 2C gesetzt und das Flipflop 222 zurückgesetzt.
Die Operationen, die im zweiten Zyklus durchgeführt werden, werden - wie gesagt - jetzt wiederholt
und eine neue Mikroanweisung wird in das Register
ROEM eingespeichert.
- 27 5098U/0726
2. Die ausgelesene Mikroanweisung ist eine Sprungmikrοanweisung.
In diesem Pail ist die Adresse der neuen Mikroanweisung
nur am Ende des dritten Maschinenzyklus zugänglich.
Wenn die neue Adresse eines Mikroprogramms die Steuerschaltung
zu einem Platz im Speicher ROS bringt, wurde das Flipflop 24- am Ende des dritten Zyklus
zurückgesetzt und der Hardware-Sequencer damit ausgeschaltet.
Wenn dagegen die neue Mikroprogrammadresse eine Hauptspeicheradresse
ist, muß der Hardware-Sequencer in seine Anfangsposition, die dem ersten Maschinenzyklus
entspricht, zurückgesetzt werden. Zu diesem Zweck werden der Ausgang des Inverters 239, der direkte
Ausgang des Flipflops 222 und der Ausgang der Und-Tore
204 mit den Eingängen der Und-Tore 24-0 verbünde
n^Wenn dieses Tor 24-0 zu Beginn des vierten Maschinenzyklus
durch den Taktimpuls T 2 durchgeschaltet wird, werden die Flipflops 201 und 222 gehalten
"bzw. durch den Ausgang des Und-Tores 24-0, der mit
den Rucksetζeingängen über die Oder-Tore 230 und
verbunden ist, in den zurückgesetzten Zustand gebracht.
Die Wirkung des Taktimpulses T 2 auf den Takteingang des Flipflops 201 wird gleichzeitig durch
die Anwesenheit des Rücksetzimpulses am Rücksetzeingang überdeckt.
Die ausgeführten Operationen werden, wie gesagt, während des ersten Maschinenzyklus auf diese Weise
durch den Sequencer wiederholt und der Hauptspeicher wird durch die neue Adresse, die im Register ROSAR
gespeichert ist, adressiert.
509814/0726
3. Die gerufene Mikroanweisung ist eine Schreib-Lese-Mikroanweisung
für den Hauptspeicher.
Im allgemeinen ist die Zeit, die zum Lesen oder Schreiben im Hauptspeicher benötigt wird, langer
als ein einzelner Maschinenzyklus. Es soll angenommen werden, daß die Speicheroperationen zx^ei
Maschinenzyklen dauern. Gennuer gesagt wird eine Schreiboperation im ersten Zyklus durch eine Mikroanweisung
gesteuert, die die Übertragung der Daten aus dem Arbeitsregister in das Register DATA bewirken
sowie das tatsächliche Einschreiben in den Speicher. Im zweiten Maschinenzyklus hält eine
"Keine-Operation"-Mikroanweisung den Steuerteil im
Leerlaufstadium, so daß der Speicherteil die Schreiboperation
vervollständigen kann.
Entsprechend wird eine Ausleseoperation während des ersten Speicherzyklus durch eine Mikroanweisung gesteuert,
die das tatsächliche Auslesen aus dem Speicher und das Einspeichern der ausgelesenen Daten
in das Register DATA bewirkt.
Während eines zweiten Maschinenzyklus überführt die Mikroanweisung die Information aus dem Register DATA
in das Register B oder ein Register des Satzes 33-
Alle diese Anweisungen beanspruchen in irgendeiner Weise die Speicherkanäle. Es muß deshalb das Verhalten
des Hardware-Sequencers noch einmal betrachtet werden - beginnend mit dem dritten Zyklus.
In dem dritten Zyklus wird die Lese/Schreib-Mikroanweisung wirksam eingeleitet. Zum Ende des dritten
Zyklus ist es nicht möglich, den Hauptspeicher zum Auslesen der nachfolgenden Mikroanweisung erneut zu
509814/0726
29 24A0628
adressieren, da die Lese-Schreib-Operation noch nicht
vollständig ausgeführt ist und das Register DATA des Hauptspeichers durch das Auslesen der Information "besetzt
ist.
Deshalb setzt der Taktimpuls T 2 zu Beginn des vierten Zyklus das Flipflop 201, während das Hipflop
in gesetztem Zustand verbleibt. Ein logisches "1"-Signal wird auf der Leitung 2Ή erzeugt.
Dieses Signal, das durch den Inverter 232 invertiert
wird, sperrt die Gruppe von Toren 231 am Ausgang des
Registers ROR und durch Anlegen an die Befehlserzeugung sschaltung 4A werden Mikrobefehle erzeugt, welche
das Überführen des Inhalts des Registers DATA in ein geeignetes Register des Satzes 34- (Register B) bewirken.
Dasselbe Signal setzt das Flipflop 233· Zu Beginn des
fünften Zyklus wird der Hardware-Sequencer durch einen neuen Taktimpuls T 2 in seinen Anfangszustand zurückgesetzt.
Wie bereits gesehen, wird die Lese-Schreib-Mikroanweisung
notwendigerweise gefolgt durch eirfcweder eine "Keine-Operation"-Anweisung oder eine
Ilikroanweisung zum Überführen des Inhaltes des Re- '
giste-r-s—DATA in das Register B oder ein Register des
Satzes 33-
Da auf diese Weise die Information durch Überführung aus dem Register DATA in das Register B "gerettet"
worden ist, kann jetzt die neue Mikroanweisung durch
die ersten beiden Zyklen des Hardware-Sequencers, die jetzt wiederholt werden, aus dem Hauptspeieher ausgelesen
werden. Während des dritten Zyklus des Sequencers wird die Mikroanweisung wie benötigt ausgeführt
.
509814/0726
Insbesondere wird kein Mikrobefehl erzeugt, wenn die
Auslese-Mikroanweisung einer"Keine-Operation"-Mikroanweisung
ist, die der Operation des Einschreibens
in den Speicher folgt.
Wenn die gerufene Mikroanweisung ein Überführen der vorher ausgelesenen Information aus dem Register DATA
in das Register B erfordert, wird dieser Befehl nicht ausgeführt, da die Operation bereits durchgeführt
worden ist. Dieser Befehl wird mittels des Flipflops 233 unterdrückt.
Der invertierende Ausgang des Flipflops, der zu den Und-Toren 235 und 236 gelangt, verhindert beispielsweise
das Überführen von Signalen auf den Leitungen 234- und 237, welches als das Überführen der Mikrobefehle,
die mit der dargestellten Operation verbunden sind, angenommen werden soll.
Wenn eine gerufene Mikroanweisung die Überführung der
einleitend ausgelesenen Information vom Register DATA in ein Register des Satzes 33 erfordert, darf dieser
Befehl nur teilweise ausgeführt werden, da die Operation bereits zum Teil ausgeführt worden ist.
In diesem Fall verhindert der invertierende Ausgang des Flipflops wie vorher das Überführen des Signales
auf den Leitungen 234- und 237, wodurch der übergang
der Information aus dem Register DATA in das Register B blockiert, jedoch der Übergang von dem Register B
zu einem Register des Satzes 33 freigegeben ist.
Schließlich triggert am Ende des dritten Sequencerzyklus
die abfallende Kante des Signals auf der Leitung 213 einen monostabilen Multivibrator 238, welcher
einen Impuls aussendet, der das Fljpflop 233 zurücksetzt.
- -31 5098U/0726
Es ist offensichtlich., daß wenn die betrachteten Mikroanweisungen
weder Sprung- noch Lese-Schreib-Mikroanweisungen darstellen, im nachfolgenden Zyklus der
Hardware-Sequencer den Zustand einnimmt, der dem zweiten Sequencerzyklus entspricht.
Aus der vorangegangenen Beschreibung geht klar hervor, daß im Falle von MikroanWeisungen, die im
Hauptspeicher festgehalten sind und weder Sprungmikroanweisungen noch Lese-Schreib-Mikröanweisungen
oder Mikroanweisungen, die unmittelbar einer Lese-Schreib-Mikroanweisung folgten, darstellen, das Überlappen
der Operationen zum Ausführen einer Mikroanweisung mit der Operation zum Auslösen der nachfolgenden für
beide Mikroanweisungen eine Ausführungszeit benötigt, die zwei Maschinenzyklen entspricht.
Nur in den oben genannten Fällen ist die Zeit langer
und beträgt drei Maschinenzyklen für eine Sprungmikroanweisung oder für eine Mikroanweisung, die unmittelbar
auf eine Lese-Schreib-Mikroanweisung folgt und vier Maschinenzyklen für eine Lese-Schreib-Mikroanweisung.
Ein weiterer bemerkenswerter Vorteil der Erfindung besteht darin, daß der beschriebene Steuerteil mittels
der genannten Überlappung von Ausführungs- und Abrufoperationen ermöglicht, die Mikroprogramme, die im
Hauptspeicher festgehalten sind, in wesentlich reduzierten
Ausführungszeiten abzurufen ohne, daß
irgendwelche Modifikationen der Mikroprogramme, die im Hauptspeicher festgehalten sind im Hinblick auf
diejenigen, die im Speicher EOS aufgezeichnet sind, erforderlich wären.
- 32 -
5098U/0726
— 32 2AA0628
Mit anderen Worten kann ein vorgegebenes Mikroprogramm
ohne Unterschied in dem einen oder in dem anderen Speicher festgehalten werden, um auf jeden
Pail trotzdem korrekt ausgeführt zu werden.
Es bleibt jetzt nur noch übrig zu zeigen, wie die Steuerung, von einer Folge von Mikroanweisungen,
die im Speicher ROS gespeichert ist, zu einer Folge von im Hauptspeicher festgehaltenen Mikroanweisungen
und umgekehrt ' übergehen kann.
Dieses kann leicht mit Hilfe einer Sprung-Mikrοanweisung
erreicht v/erden. Mit anderen Worten: eine Mikroanweisung, welche als im Speicher ROS vorhanden
angesehen werden soll, kann die neue Adresse von Mikroanweisungen und den zugehörigen Datenträger
angeben.
Das Format einer Mikroanweisung mag beispielsweise wie folgt aussehen:
Bits 0-3 bilden den Funktionscode. Diese Bits
werden benutzt, um Mikrobefehle zur Steuerung der Tore 10 und 10' zu erzeugen.
Bit 4 bezeichnet den Träger der Mikroanweisung. Es gibt an, ob sich die adressierte Mikroanweisung im
Speicher ROS oder im Hauptspeicher befindet.
Bits 5-18 sind die Bits, die die Adresse der Mikroanweisung
angeben.
Es ist nicht notwendig, daß die Adressenbits ermöglichen, alle Speicherplätze des Speichers ROS
oder des Hauptspeichers zu adressieren.
- 33 -5098U/0726
Mit Hilfe der Mikrobefehle, die durch die Bits O
bis 3 erzeugt werden, wird das Bit 4 im Flipflop
24 eingespeichert und die Bits 5 "bis 18 werden in
eineffl-^eil des Registers EOSAR gespeichert. Während
des folgenden Maschinenzyklus wird - entsprechend dem Zustand des Flipflops 24 - entweder der Speicher
ROS adressiert oder die Operation zum Abrufen der nachfolgenden Mikroanweisung aus dem Hauptspeicher
mit Hilfe des Hardware-Sequencers eingeleitet.
Es ist selbstverständlich, daß diese Sprungmikrοanweisung
auch im Hauptspeicher enthalten sein kann und darum vom Hauptspeicher zurück zum Speicher ROS
oder zu einer anderen Adresse des Hauptspeichers verweist.
Die vorangehende Beschreibung eines Steuerteils und eines Hardware-Sequencers bezieht sich auf ein bevorzugtes
Ausführungsbeispiel der Erfindung. Es ist selbstverständlich, daß im Hinblick auf die grundsätzliche
Organisation einer Datenverarbeitungsanlage und die besonderen zeitlichen Anforderungen,
die gestellt sein mögen, sehrltungsmäßige und konstruktive
Modifikationen des Steuerteils vorgenommen werden können, ohne den Grundgedanken und den Schutzbereich
der Erfindung zu verlassen.
5098U/0726
Claims (3)
- nachträglich geändertPatentansprücheDatenverarbeitungsanlage mit einem Hauptspeicher, einem Hauptspeicher-Adressierregister, einem Hauptspeicher-Ausgangsregister, einer Anzahl von Arbeitsregistern, einem Mikroprogrammspeicher, einem Mikroprogramm-Adressierregister, einem Mikronnweisungsregister und einer mikroprogrammierten Steuereinheit mit der Möglichkeit zum Abrufen von Mikroprogrammen aus dem Hauptspeicher und aus dem Mikroprogrammspeicher, gekennzeichnet durch ein Mikroanweisungsregister (ROR 3), ein Hilfsregister (Flipflop 24), das mit dem Mikroprogramm-Adressierregister (ROSAR 5) verbunden ist, zum Speichern einer Information, die angibt, ob sich die adressierte Mikroanweisung im Hauptspeicher (122) oder im Mikroprogrammspeicher (ROS 2A) befindet, einen ersten Adressierkanal vom Mikroprogramm-Adressierregister (ROSAR 5) zu dem Mikroprogrammspeicher (ROS 2A), einen zweiten Adressierkanal (129) von dem Mikroprogramm-Adressierregister (ROSAR 5) zu dem Hauptspeicher-Adressierregister (SI), einen ersten Ausgangskanal von dem Mikroprogrammspeicher (ROS 2A) zu dem Mikroam/eisungsregister (ROR 3), einen zweiten Ausgangskanal von dem Hauptspeicher-Ausgangsregister _£j£G£M--1£7T zu dem Mikroanweisungsregister (ROR 3), eine logische Sequencerschaltung (25), die durch das Hilfsregister (Flipflop 24) gesteuert wird, zur Erzeugung einer Anzahl von aufeinanderfolgenden Mikrobefehlssätzen, durch Mikrobefehle gesteuerte Bedingungsschaltungen (Gruppen von Und-Toren "2, 16, 30, 134)— 35 — 5.0 98U/0726nachträglich geändertzur wahlweisen Durchschaltung und Sperrung der Kanäle, sowie eine Dekoderschaltung (215, 302) die mit dem Ausgang des·» ~ registers (EOEM 27) verbunden ist, wobei die Ausgänge der Dekoderschaltung (215, 302) mit der logischen Sequencerschaltung (25) verbunden ist, um die von dieser erzeugten Folgen von Mikrobefehlsgruppen zu modifizieren.
- 2) Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die logische Sequencarschaltung (25) einen Binärzähler mit zwei bistabilen Elementen (Flipflops 201, 222) zum Erzeugen von vier aufeinanderfolgenden Mikrobefehlen enthält.
- 3) Datenverarbeitungsanlage nech Anspruch 1, gekennzeichnet durch eine Mikrobefehlserzeugungsschaltung (4 A), die mit den Ausgängen des Mikroanweisungsregisters (EOE 3) und der logischen Sequencerschaltung (25) verbunden ist und Schaltungsmittel aufweist, die die Arbeitsweise der Mikrobefehlserzeugungsschaltung (4 A) in Abhängigkeit von Signalen, die durch die Dekoderschaltung (2^5} 302) erzeugt werden, verändern.25 649 - Chr509814/0726
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT29387/73A IT993428B (it) | 1973-09-26 | 1973-09-26 | Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2440628A1 true DE2440628A1 (de) | 1975-04-03 |
Family
ID=11226886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2440628A Ceased DE2440628A1 (de) | 1973-09-26 | 1974-08-22 | Datenverarbeitungsanlage mit mikroprogrammierung |
Country Status (5)
Country | Link |
---|---|
US (1) | US3956738A (de) |
JP (1) | JPS5917459B2 (de) |
DE (1) | DE2440628A1 (de) |
IL (1) | IL45668A (de) |
IT (1) | IT993428B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0098494A2 (de) * | 1982-07-06 | 1984-01-18 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Multiprozessorsystem mit asynchronem Bus |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
JPS52120640A (en) * | 1976-04-02 | 1977-10-11 | Toshiba Corp | Micro program control system |
US4156925A (en) * | 1976-04-30 | 1979-05-29 | International Business Machines Corporation | Overlapped and interleaved control store with address modifiers |
FR2355333A1 (fr) * | 1976-06-18 | 1978-01-13 | Thomson Csf | Dispositif d'adressage d'une memoire de microprogrammation et unite de traitement de donnees comportant un tel dispositif |
GB1527289A (en) * | 1976-08-17 | 1978-10-04 | Int Computers Ltd | Data processing systems |
US4124893A (en) * | 1976-10-18 | 1978-11-07 | Honeywell Information Systems Inc. | Microword address branching bit arrangement |
US4237532A (en) * | 1977-09-02 | 1980-12-02 | Sperry Corporation | Table driven decision and control logic for digital computers |
US4155120A (en) * | 1977-12-01 | 1979-05-15 | Burroughs Corporation | Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution |
US4179737A (en) * | 1977-12-23 | 1979-12-18 | Burroughs Corporation | Means and methods for providing greater speed and flexibility of microinstruction sequencing |
US4276595A (en) * | 1978-06-30 | 1981-06-30 | International Business Machines Corporation | Microinstruction storage units employing partial address generators |
US4255785A (en) * | 1978-09-25 | 1981-03-10 | Motorola, Inc. | Microprocessor having instruction fetch and execution overlap |
US4298927A (en) * | 1978-10-23 | 1981-11-03 | International Business Machines Corporation | Computer instruction prefetch circuit |
US4310882A (en) * | 1978-12-28 | 1982-01-12 | International Business Machines Corporation | DAS Device command execution sequence |
JPS5840214B2 (ja) * | 1979-06-26 | 1983-09-03 | 株式会社東芝 | 計算機システム |
US4310880A (en) * | 1979-09-10 | 1982-01-12 | Nixdorf Computer Corporation | High-speed synchronous computer using pipelined registers and a two-level fixed priority circuit |
US4697250A (en) * | 1983-08-22 | 1987-09-29 | Amdahl Corporation | Flexible computer control unit |
GB8416037D0 (en) * | 1984-06-22 | 1984-07-25 | Int Computers Ltd | Data storage apparatus |
JPH0814792B2 (ja) * | 1988-04-27 | 1996-02-14 | 日本電気株式会社 | データ処理装置 |
US5325490A (en) * | 1991-12-18 | 1994-06-28 | Intel Corporation | Method and apparatus for replacement of an original microprocessor with a replacement microprocessor in a computer system having a numeric processor extension |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3631405A (en) * | 1969-11-12 | 1971-12-28 | Honeywell Inc | Sharing of microprograms between processors |
JPS514381B1 (de) * | 1969-11-24 | 1976-02-10 | ||
US3638199A (en) * | 1969-12-19 | 1972-01-25 | Ibm | Data-processing system with a storage having a plurality of simultaneously accessible locations |
US3648246A (en) * | 1970-04-16 | 1972-03-07 | Ibm | Decimal addition employing two sequential passes through a binary adder in one basic machine cycle |
US3673575A (en) * | 1970-06-29 | 1972-06-27 | Ibm | Microprogrammed common control unit with double format control words |
US3742457A (en) * | 1972-05-15 | 1973-06-26 | Honeywell Inf Systems | High speed data transfer for a peripheral controller |
FR2226901A5 (de) * | 1973-04-19 | 1974-11-15 | Honeywell Bull Soc Ind |
-
1973
- 1973-09-26 IT IT29387/73A patent/IT993428B/it active
-
1974
- 1974-08-22 DE DE2440628A patent/DE2440628A1/de not_active Ceased
- 1974-09-16 IL IL45668A patent/IL45668A/en unknown
- 1974-09-17 JP JP49107077A patent/JPS5917459B2/ja not_active Expired
- 1974-09-24 US US05/508,785 patent/US3956738A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0098494A2 (de) * | 1982-07-06 | 1984-01-18 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Multiprozessorsystem mit asynchronem Bus |
EP0098494A3 (en) * | 1982-07-06 | 1986-12-17 | Honeywell Information Systems Italia S.P.A. | Asynchronous bus multiprocessor system |
Also Published As
Publication number | Publication date |
---|---|
IT993428B (it) | 1975-09-30 |
IL45668A (en) | 1976-12-31 |
IL45668A0 (en) | 1974-11-29 |
AU7338674A (en) | 1976-03-25 |
JPS5917459B2 (ja) | 1984-04-21 |
JPS5079228A (de) | 1975-06-27 |
US3956738A (en) | 1976-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2440628A1 (de) | Datenverarbeitungsanlage mit mikroprogrammierung | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE2316296C2 (de) | Mikroprogrammierbarer Prozessor | |
DE2456578C2 (de) | Datenverarbeitungsanlage | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2813128A1 (de) | Mikroprogrammspeicher | |
DE2542740A1 (de) | Mikroprogramm-datenverarbeitungsverfahren und geraet zur ausfuehrung des verfahrens | |
DE2322674B2 (de) | Mikroprogramm-Steuereinrichtung | |
DE2357003A1 (de) | Programmierbarer prozessor | |
DE2364408A1 (de) | System zur erstellung von schaltungsanordnungen aus hochintegrierten chips | |
DE1499203B1 (de) | Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb | |
DE2459956A1 (de) | Prozessor und diesen verwendendes peripheres verarbeitungssystem | |
DE2339636A1 (de) | Programmsteuereinrichtung | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE2725396B2 (de) | Pufferspeicher | |
DE2426874A1 (de) | Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls | |
DE2134816A1 (de) | Einrichtung zur adressenuebersetzung | |
DE1549548A1 (de) | Vorrichtung zur Aktivierung eines bestimmten Befehls aus einer Vielzahl von Befehlen,die in einem Befehlsspeicher eines Rechners gespeichert sind | |
DE2538978C2 (de) | ||
DE2948442C2 (de) | Digitalrechenanlage | |
DE2136210A1 (de) | Zentraleinheit fur eine EDV-Anlage | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2720842A1 (de) | Daten-uebertragungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8131 | Rejection |