DE2440628A1 - Datenverarbeitungsanlage mit mikroprogrammierung - Google Patents

Datenverarbeitungsanlage mit mikroprogrammierung

Info

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
Application number
DE2440628A
Other languages
English (en)
Inventor
Giancarlo Dipl Ing Tessera
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2440628A1 publication Critical patent/DE2440628A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Description

körner<L Qi?ey
BERLIN-DAHLEM 33 · PODBIELSKIALLEE 68 8 MÜNCHEN 22 · WIDENMAYERSTRASSE
Honeywell Information Systems Italia S.p.A.
BERLIN : DIPU-ING. R. MÜLLER-BÖRNER MÜNCHEN: DIPL.-ING. HANS-H. WEY
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.
Der Operationsteil
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.
Der Hauptspeicherteil
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.
Der Hardware-Sequencer
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.
Patentansprüche:
5098U/0726

Claims (3)

  1. nachträglich geändert
    Patentansprüche
    Datenverarbeitungsanlage 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/0726
    nachträglich geändert
    zur 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. 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. 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 - Chr
    509814/0726
DE2440628A 1973-09-26 1974-08-22 Datenverarbeitungsanlage mit mikroprogrammierung Ceased DE2440628A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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
AU7338674A (en) 1976-03-25
IL45668A (en) 1976-12-31
JPS5079228A (de) 1975-06-27
JPS5917459B2 (ja) 1984-04-21
US3956738A (en) 1976-05-11
IL45668A0 (en) 1974-11-29
IT993428B (it) 1975-09-30

Similar Documents

Publication Publication Date Title
DE2440628A1 (de) Datenverarbeitungsanlage mit mikroprogrammierung
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
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
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
DE1915818A1 (de) Elektronisches Datenverarbeitungssystem
DE2339636A1 (de) Programmsteuereinrichtung
DE2316296A1 (de) Durch mikroprogramme steuerbare verarbeitungseinrichtung
DE2248296A1 (de) Programmsteuereinrichtung
DE2134816C3 (de) Einrichtung zur Adressenübersetzung
DE1549548A1 (de) Vorrichtung zur Aktivierung eines bestimmten Befehls aus einer Vielzahl von Befehlen,die in einem Befehlsspeicher eines Rechners gespeichert sind
DE2538978C2 (de)
DE2609698C2 (de) Elektronischer Rechner
DE2245284A1 (de) Datenverarbeitungsanlage
DE2720842A1 (de) Daten-uebertragungssystem
DE2537360A1 (de) Elektronische datenverarbeitungsanlage
DE2428020A1 (de) Elektronische datenverarbeitungsanlage mit unabhaengigen funktionseinheiten fuer das gleichzeitige ausfuehren verschiedener operationen an denselben daten
DE2440390C3 (de)
DE2744252C2 (de)

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8131 Rejection