DE2117936A1 - Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems - Google Patents

Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems

Info

Publication number
DE2117936A1
DE2117936A1 DE19712117936 DE2117936A DE2117936A1 DE 2117936 A1 DE2117936 A1 DE 2117936A1 DE 19712117936 DE19712117936 DE 19712117936 DE 2117936 A DE2117936 A DE 2117936A DE 2117936 A1 DE2117936 A1 DE 2117936A1
Authority
DE
Germany
Prior art keywords
register
control
word
memory
cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19712117936
Other languages
English (en)
Other versions
DE2117936B2 (de
DE2117936C3 (de
Inventor
Richard Joseph Endwell; Howe Eeland Delmar jun. Owego; Metz Thomas Arthur; Womack Karl Kay Endicott; Zurla Frank Anthony Johnson City N.Y. Carnevale (V.St A-)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2117936A1 publication Critical patent/DE2117936A1/de
Publication of DE2117936B2 publication Critical patent/DE2117936B2/de
Application granted granted Critical
Publication of DE2117936C3 publication Critical patent/DE2117936C3/de
Expired 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Description

Aktenzeichen der Anmelderin: Docket EN 96 8 033
Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems ,
Die Erfindung betrifft eine mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems und insbesondere ein an die jeweiligen Erfordernisse der Systemsteuerung anpaßbares Zeitsteuersystem.
Bei auf die Maschinenausrüstung orientierten Datenverarbeitungsanlagen ist es allgemein bekannt, die Operation. der=Maschinenteile so zu steuern, daß die zur Ausführung einer Programminstruktion erforderliche Zeit für jede Instruktion auf einem Minimum gehalten wird. Bei mikroprogrammierten Maschinen wurde es allgemein üblich, alternativ dazu eine Basis-Zykluszeit für die Ausführung aller Steuerwörter oder ein Vielfaches dieser Zeit
für die Ausführung der Steuerwörter vorzusehen, die in der einem Zyklus zugeordneten Zeit nicht ausgeführt werden können.
Bei mikroprogrammgesteuerten Zentraleinheiten elektronischer Datenverarbeitungssysteme mit schnellen Steuerspeichern, die das Steuerprogramm enthalten und Zykluszeiten besitzen, die kürzer
109845/1660
_2_ 2177936
sind als die Ausführungszeiten der logischen Schaltungen des Systems, tritt der Fall ein, daß die Speicheroperationen auf die Operationen der arithmetischen und logischen Schaltungen warten müssen. Da aber nicht alle Steueroperationen (MikroOperationen) die gleiche Anzahl von Steuertakten, für ihre Ausführung benötigen, geht vor allem deshalb wertvolle Verarbeitungszeit verloren, wenn die festen Zyklen des Taktgenerators starr auf das längste Steuerwort zugeschnitten ist.
Die Aufgabe der vorliegenden Erfindung ist es daher, eine Einrichtung anzugeben, die bei nur geringen Mehrkosten eine Verbesserung der Operationsgeschwindigkeit erreicht.
Für eine mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems besteht die Erfindung darin, daß ein schneller Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist als die Verarbeitungszeit der arithmetischen und logischen Schaltungen, daß ferner ein Taktgenerator mit variabler Zykluslänge für die Erzeugung einer Reihe zyklischer Ausgangsimpulse für die Ausführung der Steuerwörter und daß schließlich eine Steuerung vorgesehen sind, die in Abhängigkeit von einem Steuerwort den Taktgenerator derart steuert, daß dieser nur so viele Ausgangsimpulse in einer Taktimpulsreihe erzeugt, wie für die Ausführung dieses Steuerwortes unbedingt erforderlich sind.
Weitere Merkmale, vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Der mit der Erfindung erzielbare Vorteil besteht im wesentlichen in einer Erhöhung des Leistungsgrades einer Zentraleinheit eines elektronischen Datenverarbeitungssystems, wobei die vorgeschlagene Lösung außerdem nur einen sehr geringen technischen Mehraufwand erfordert.
Im folgenden wird die Erfindung anhand eines durch Zeiehnungen
10 9845/1660
Docket EN 968 033
erläuterten Ausführungsbeispieles näher beschrieben. Es zeigen:
Fig. 1 ein Schaubild der verbesserten Hochgeschwindig-
keits-Datenverarbeitungsanlage und ihren grundlegenden Datenfluß;
Fig. 2A einen Lageplan der Pign. 2A bis 21;
Fig. 2A - 21 detaillierte Schaubilder der in Fig. 1 gezeigten Anlage;
Fig. 3 ein Schaubild eines Ausführungsbeispiels eines
Taktgebers mit veränderlicher Zykluslänge mit den zugehörigen Eingangs- und Ausgangsanschlüssen;
Fig. 4 ein Zeitdiagramm der Basis-Taktzyklen;
Fig. 5 ein Schaltbild der Steuerschaltungen für die
verschiedenen Taktzyklen mit vorgewählter Taktzeit und
Fig, 6-16 die Ausführung verschiedener als Beispiel gewählter Steuerwörter und die zugehörigen Zeitdiagramme für die Operationen.
Im Ausführungsbeispiel stellt eine Decodierschaltung nach übertragung eines jeden Steuerwortes vom STeuerspeicher in ein Steuerregister durch untersuchung die Art des auszuführenden Steuerwortes fest. Abhängig von dieser Wortart gibt die Decodierschaltung Steuerimpulse auf den Taktgeber der Verarbeitungseinheit, so daß dieser eine von den drei verfügbaren Zykluslängen von 180 t 225 und 270 ns oder eine Kombination von zwei dieser drei Zykluslängen auswählt. Dadurch wird jedes Mikro-Steuerwort so schnell wie möglich ausgeführt und die Systemleitung wesentlich verbessert. Im Ausführungsbeispiel werden bei jedem Zugriff zum
.10 9 8 4 5/1660
Docket EN 968 033 °°U
Steuerspeicher zwei Wörter aus dem Steuerspeicher gelesen und in das Steuerregister übertragen. Da nur eines dieser beiden Steuerwörter zu benutzen ist, kann der übertragungsweg für spätere Verzweigung benutzt werden, d. h., das in das Steuerregister zu lesende Wort braucht erst unmittelbar vor der Verfügbarkeit am Eingang des Steuerregisters gelesen zu werden. Dieser Zeitpunkt liegt wesentlich hinter dem Zugriff und Lesen des Doppelwortes aus dem Steuerspeicher. Die Auswahl eines der beiden Wörter zur Ausführung kann in vielen Fällen somit bis zu einem späteren Zeitpunkt im Zyklus verzögert werden, wodurch die Verarbeitungseinheit durch Verwendung eines etwas längeren Zyklus (225 ns) anstelle von zwei kürzeren Zyklen (180 ns) verkürzt werden kann. Durch festgelegte Steuerwortbits oder Statusregisterbits bestimmte Verzweigungen können in der kürzeren Zykluszeit (180 ns) ausgeführt werden.
Im Ausführungsbeispiel ist eine Halbwort-ALU vorgesehen, die die Ausführung einer Rechten- oder Verknüprungsoperation eines binären Halbwortes in der kürzesten Zykluszeit gestattet. Kleinere zur ALU gehörende Bauteile veranlassen die Verarbeitung des zweiten Halbwortes durch die ALU während der Vollwortoperation durch Erweiterung der Zykluszeit von 180 für die Halbwort-Rechenoperation benötigten ns auf 225 ns für eine Vollwortoperation. Dadurch wird die Leistung zwar etwas herabgesetzt, die Bauteilkosten der ALU jedoch wesentlich reduziert.
In einem anderen Ausführungsbeispiel der Erfindung werden die Daten während der Ausführung eines Steuerwortes vom Hauptspeicher auf einen Arbeitsspeicher zur Verarbeitung während einer nachfolgenden Ausführung eines Steuerwortes übertragen. Nach Verarbeitung der Daten werden sie in den Arbeitsspeicher zurückgesetzt, bevor sie in den Hauptspeicher übertragen werden. Die zur übertragung der Daten zwischen Arbeite- und Hauptspeicher benutzten Speicherzyklen erfordern wesentlich, längere Perioden, als sie in den Basis-Zykluszeiten zur Verfügung stehen. Infolgedessen werden ein Zyklus von 225 ns und einer von 270 ns oder zwei Zyklen von
DocKet EN 968 033 '09845/1660
270 ns zur Ausführung der Steuerwörter miteinander verbunden.
Beschreibung des Ausführungsbeispiels
Das in den Zeichnungen dargestellte Ausführungsbeispiel des Systems stellt eine Verbesserung gegenüber dem im US-Patent Nummer 3 400 371 beschriebenen System dar und umfaßt Mikroprogrammroutinen für die Steuerung von Makroinstruktionen der im o. a. Patent beschriebenen Art.
Vor der Beschreibung des Ausführungsbeispiels werden bestimmte, nachfolgend ^u verwendende Ausdrücke definiert. Daten sind auf Wortbasis angeordnet, jedes Wort umfaßt 4 Bytes. Jedes Byte besteht aus acht binären Datenbits und einem Paritätsprüfbit. In einigen Fällen werden Daten adressiert und übertragen in Doppelwortbreite, die manchmal als gerade oder ungerade Wörter eines Doppelwortes bezeichnet werden. Im Haupt- und Steuerspeicher sind Daten und Steuerwörter in Gruppen von 60 Viererwörtern angeordnet, die als Moduln bezeichnet werden.
Fig. 1 zeigt schematisch ein Ausführungsbeispiel des Systems, in welchem die Verbesserung der vorliegenden Anmeldung benutzt werden kann. Das System enthält einen Hochgeschwindigkeitsspeicher 1, der einen Steuerspeieher IA und einen Hauptspeicher IB umfaßt. Mikroprogramm-Steuerwörter sind im Steuerspeicher IA gespeichert, während Daten und Programminstruktionen im Hauptspeicher IB gespeichert sind.
Mikroprograaun-Steuerwörter werden der Reihe nach von der Einheit 1 auf ein ORegister 2 über eine Speicherdaten-Ausgangsleitung SDBO mit einer Breite von zwei Wörtern übertragen. Steuerwörter, Daten und Frogramminstnaktionen in der Einheit 1 werden über ein Adreßregister 3 adressiert. Verzweigungsschaltungen 4 ändern bei Bedarf die normale Reihenfolge, in welcher die Mikroprogramm-
109B45/1680
Docket EN 968 033
Steuerwörter ausgeführt werden.
Um im Hauptspeicherteil der Einheit 1 gespeicherte Daten bearbeiten zu können, müssen sie auf den A-Arbeitsspeicher 5 oder den B-Arbeitsspeicher 6 oder auf externe Register 7 übertragen werden. Die Datenübertragung von der Einheit 1 zu den Arbeitsspeichern oder den externen Registern erfolgt über die SDBO, die SDBO-Vorassemblierer-Riegel 10, den Assemblierer 11 und über Wort-, Halbwort- und Byte-Wahlschaltungen 12. Die jeweilige Stelle in den Arbeitsspeichern oder den externen Registern, in welche die Daten zu übertragen sind, wird durch eine diesen Speichern und Registern zugeordnete Ädreß-Decodierschaltung 13 bestimmt, welche ausgewählte Bits in jedem Steuerwort auf der SDBO und bestimmte Bits in den P- und L-Bytes eines externen Sonderregisters (SPTL) 7A decodiert.
Daten werden in einer Rechen- und Verknüpfungseinheit ALU 20 verarbeitet, die Daten von den Arbeitsspeichern 5 und 6 über das A-Register 21 bzw« B-Register 22 und den A-Assemblierer 23 bzw. den B-Assemblierer 24 empfängt. Durch die ALU 20 zu verarbeitende Daten, die in den externen Rgistern stehen, werden auf die ALU 20 über einen externen Assemblierer 25 und entweder über das A-Register 21 und den A-Assemblierer 22 oder über das B-Eegister 22 und den Assemblierer 24 übertragen. Um die Daten auf dem zuletzt erwähnten Wege zu übertragen, muß eine Leitung 26 den Ausgang des Α-Registers mit dem Eingang des B-Registers 22 verbinden. Ausgewählte binäre Konstantwerte werden in die ALU 20 über einen K-Asserablierer 27 eingegeben.
Von der ALU 20 verarbeitete Daten werden auf ausgewählte entsprechende Stellen in den Arbeitsspeichern 5 oder 6 oder auf ein externes Register 7 über ein Z-Register 30, ein B-Register 31 und den Assemblierer 11 zurückübertragen. Die Auswahl des Bestimmungsortes für die verarbeiteten Daten erfolgt wieder durch die Adreß-Decodierschaltuagen 13. Verarbeitete Daten werden dan in den Hauptspeicherteil der Steuereinheit 1 über das Ä-Eegister 21,
10-9845/1660
Docket EN 968 033
den Α-Assemblierer 23 und eine Speicher-Datenausgangsleitung SDBI zurückgesetzt. Während der Datenübertragung zwischen der Speichereinheit 1 und einem der Arbeitsspeicher 5 und 6 oder der externen Register 7 wird die SpeichersteHe der Einheit I gewählt über eine erzwungene Adresse oder eine von den Arbeitsspeichern 5 oder 6 abgeleitete Adresse und über das B-Register 22 auf das Adreßregister 3 übertragen.
In dem als Ausführungsbeispiel in Fig. 1 gezeigten System stellen die beiden Arbeitsspeicher 5 und 6 Spiegelbilder voneinander dar, d. h., jedesmal, wenn Daten in eine gewählte Stelle im A-Arbeitsspeicher 5 übertragen werden, werden dieselben Daten in eine entsprechende Stelle des B-Arbeitsspeichers 6 übertragen. Daher sind die in jedem der Arbeitsspeicher 5 und 6 enthaltenen Daten jederzeit identisch« Wenn jedoch Daten aus einem dieser beiden Speicher gelesen werden, werden die Datenpositionen einzeln adressiert, d. h., eine Position im A-Arbeitsspeieher 5 wird während eines früheren Teiles eines Steuerwortzyklus als Α-Datenquelle adressiert und gleichzeitig wird eine vollkommen andere Position im B-Arbeitsspeicher 6 als eine B-Datenquelle adressiert. Auf diese Weise werden zwei Arbeitsspeicherstellen (oder eine Arbeitsspeicherstelle und ein externes Register) gleichzeitig als Datenquellen adressiert, um die Arbeitweise des Systems zu beschleunigen.
Der Takt oder die Zeiteinteilung des Systems wird durch mehrere im wesentlichen identische Systemtaktgeber 35 (d, h. 35-1 bis 35-n) und einen Hauptoszillator 36gesteuert. Die Ausgangsimpulse des Hauptoszillators 36 werden kontinuierlich an die Eingänge der Systemtaktgeber 35 angelegt. Eine eine Zykluslängensteuerungs-Decodierschaltung enthaltende und zum C-Register 2 gehörende Einrichtung leitet jedoch die Oszillator-Ausgangsimpulse wahlweise auf die verschiedenen Systemtaktgeber 35, entsprechend dem gerade ausgeführten Mikroprogramm-Steuerwort. Abhängig von der Art des ausgeführten Wortes wird die Zykluslänge der Systemtaktgeber während der Ausführung dieses Steuerwortes eingestellt.
109845/1660 Docket EN 968 033
2117336
Im Äusführungsbeispiel ist für jede Schaltkarte ein Taktgeber vorgesehen und umfaßt eine regelbare Verzögerungseinrichtung zwischen Taktgebereingang und Oszillatorausgang zur- Synchronisation aller Taktperioden. -
Die Verarbeitungseinheit wird vonhand über die Konsolschalter eingestellt, deren Ausgänge mit dem Steuerregister 2 und den Adreß-Decodierschaltungen 13 über einen Assemblierer 38 verbunden sind. Daten können in die Verarbeitungseinheit von den Schaltungen 37 über einen Assemblierer 39 und einen externen Assemblierer. 25 eingegeben werden.
In der Speichereinheit 1 des Ausführungsbeispieles bestehen die einzelnen Speicherpositionen aus monolithisch hergestellten Transistor-Speicherzellen, in denen je ein Datenbit gespeichert werden kann. Der Transistorspeicher kann nicht destruktiv ausgelesen werden, so daß sein Steuerspeicherteil beschrieben werden kann, d. h., die Mikroprogramm™Steuerwörter können wahlweise in den Steuerspeicherteil der Speichereinheit 1 eingegeben und zu jeder Zeit dadurch verändert werden, daß ein neuer Satz von Mikroprogramm-Steuerwörtern in den Steuerspeicherteil geladen wird.
Im Ausführungsbeispiel wird der Steuerspeicher über eine Konsolendatei 40 geladen, die über eine Magnetplatteneinheit und die zugehörigen Steuerungen verfügt. Abhängig von den jeweiligen Anforderungen des Benutzers wird ein ausgewähltes optimales Steuerspeicher-Mikroprogramm von der Konsolendatei 40 auf den Steuerteil des Speichers 1 über den Assemblierer 39, den externen Assemblierer 25 und die normalen Datenwege der Verarbeitungseinheit übertragen. Die Konsolendatei 40 speichert außerdem geeignet Kommandos, die nach Decodierung in der Einheit 4O auf das Steuerregister 2 und die Adreß-Decodierschaltung 13 über den Assemblierer 38 gegeben werden, um sowohl das Laden des Steuerteiles der Speichereinheit 1 zu steuern als auch die Fehlersuche der Verarbeitungseinheit zu gestatten.
Docket EN 968 033 1 0 98 Λ 5 / 1 6 GQ
Das in Fig. 1 gezeigte Ausführungsbeispiel enthält auch Bestimmungs-Vorausschau-Schaltungen. 41- Diese Schaltungen sollen in den Fällen die Daten direkt vom Z-Register 30 auf das A-Register 21 und das B-Register 22 über den Datenweg 42 übertragen, in welchen eine Datenquelle in den Arbeitsspeichern 5 oder 6 auch der Bestimmungsort für Daten in dem vorhergehenden Zyklus ist. Bekanntlich werden ja im Ausführungsbeispiel während der Ausführung eines Steuerwortes verarbeitete Daten für die ausgewählte Position in den Arbeitsspeichern 5 und 6 oder den externen Registern 7 erst spät bei der Ausführung des nächstfolgenden Steuerwortes bestimmt. Da die Daten in den Arbeitsspeichern 5 und 6 und den externen Registern^l erst beim nächstfolgenden Steuerwort im Zyklus fortgeschrieben werden, kann der fortgeschriebene Teil einer Stelle während der Ausführung des nächsten Steuerwortes nicht als Quelle adressiert werden. In bezug auf die Positionen im A-Speicher 5 und im B-Speicher 6 erfolgt somit die direkte übertragung der fortgeschriebenen Daten über den Datenweg 42, welcher den Ausgang des Z-Registers 30 mit dem A-Register 21 und dem B-Register 22 verbindet. Im Ausführungsbeispiel ist diese Bestimmungs-Vorrausschau-Einrichtung für die externen Register 7 nicht vorgesehen, ausgenommen davon ist jedoch das SPTL-Register 7A, dessen Ausgang ebenfalls direkt mit den A- und B-Registern 21 und 22 über den Weg 43 verbunden ist. Mit Ausnahme des Registers 7A, welches während der Ausführung eines Steuerwortes fortgeschrieben wirdr kann daher kein externes Register eine Datenquelle für das nächstfolgende Steuerwort sein.
Es folgt eine genaue Beschreibung der Fign. 2A bis 21, die nach dem Plan in Fig. 2 zusammenzulegen sind.
Die Speichereinheit 1 ist genauer in Fig. 21 gezeigt und umfaßt gerade und ungerade Steuerspeicherabschnitte 100 und 101 sowie Daten- oder Hauptspeicherabschnitte 102 und 103. Wie bereits gesagt, werden Steuerspeicher und Hauptspeicher während der Lesezyklan In Breite eines Doppelwortes adressiert, und diese Dop-
1098 45/1660 Docket EN 968 033
pelwörter werden dann aufdie Leitung SDBO gegeben. Um ein überschneiden zwischen geraden und ungeraden Wörtern des Doppelwortes zu verhindern, liegen Paare von geraden und ungeraden Wörtern an den einander gegenüberliegenden Seiten und in gleichem Abstand von den Datenausgangsschaltungen 104. Der Steuerspeicher ist unmittelbar neben den Datenausgangsschaltungen 1O4 und dem Hauptspeicher 102 und 103 in größerer Entfernung von diesen Schaltungen dargestellt.
Dadurch wird eine minimale Verzögerung bei der übertragung von Steuerwörtern von den Speicherabschnitten 100 und 101 in das Steuerregister 2 der Fig. 2F und die Adreßdecodierschaltungen der Fign. 2A und 2B sichergestellt. Die während der Speicherzyklen über die Eingangsleitung SDBI auf die Speichereinheit 1 übertragenen Daten werden auf Worgbasis eingegeben. Es gibt daher keine kritische Lage für die Anordnung der Dateneingabeschaltungen 105 sowie die Lage von Haupt- und Steuerspeicherstellen, an welche die SDBI-Leitung angeschlossen ist. Die Speichereinheit 1 umfaßt außerdem eine Einzelbit-Fehlsrkorrekturschaltung und eine asymmetrische Doppelbit-Fehlerkorrekturschaltung 106 bekannter Bauart. Da diese Schaltungen nicht näher mit der Erfindung zu tun haben und allgemein bekannt sind, werden sie nicht weiter beschrieben.
Das Adreßregister 3 ist genauer in Fig. 2E gezeigt und umfaßt das Ml-Register 110, M2-Register 111 und das M3-Register 112„ Die Ausgänge dieser Register sind mit den Eingangstreiberschaltungen 113, 114 und 115 der Speichereinheit 1 über die Leitungen 116, 117 und 118 verbunden. Zum Register 111 gehört ein N2-Rückgriffregister 119 und zum Register 112 ein N3-Rückgriffregister 120. Die Adressen zur Adressierung von Daten aus den Hauptspeicherabschnitten 102 und 103 oder von Mikroprogramm-Steuerwörtera aus den Steuerspeieherabschnitten 100 und 101 werden in die-Register Ml, M2 Wiü M3 gesetst. Im Ausführungsb@ispiel stallt «te© M3-Regist@r äen untersten Teil der Adreß-Regis'tersdbialtmig@ss 3 dar und umfaßt acht Bits (ein Byte) zum
109345/168O Docket EK 968 033
Adressieren eines von 64 Wörtern in jedem Modul. Das M2-Register ist ein Byte groß und das Ml-Register enthält vier Bits zur Adressierung verschiedener Moduln. Das wertniedere Bit 7 des M3-Registers bestimmt die Bytewahl. Bit 6 von M3 bestimmt die Halbwortwahl und Bit 5 die Wortwahl. Die Bits 0 bis 5 des MS-Registers gestatten die Wahl eines von 64 Wörtern, d. h. eines Moduls. Die acht Bits von M2 gestatten die Wahl zwischen 256 Moduln oder ungefähr 16 000 Wörtern. Die vier Bits von Ml liefern 16 Kombinationen, wodurch eine Gesamtzahl von 256 K-Wörtern durch die Register Ml, M2 und M3 adressiert werden kann.
Im Ausführungsbeispiel kann der Steuerspeicher la maximal 16 K-Wörter enthalten, wodurch die vom Mikroprogramm gelieferten Steuerwortadressen eine Lieferung von maximal nur 16 Bit M2 erfordern.
Zugriffe zum Haupt- und zum Steuerspeicher erfolgen immer auf Doppelwortbasis. Im Hauptspeicher können Daten jedoch auch auf Byte-, Halbwort- oder Vollwortbasis gespeichert werden. Die durch das gerade ausgeführte Steuerwort angegebene jeweilige Operation bestimmt, ob ein Wort, ein Halbwort oder ein Byte zu speichern ist.
Die meisten Mikroprogramm-Steuerwort-Operationen veranlassen nur eine Veränderung des M3-Registers. In einer Routine nachfolgende Mikroprogramm-Steuerwörter werden soweit wie möglich innerhalb desselben Moduls gehalten, wodurch.die Register Ml und Ml für eine Reihe von Mikroprogramm-Steueroperationen auf demselben Wert gehalten werden können. Vierweg-Verzweigungsoperationen werden durch das Setzen der Bits 4 und 5 des M3-Registers angegeben. Gemäß obiger Beschreibung bestimmt Bit 5 von M3 die Wahl eines geraden oder ungeraden Wortes bei einer Doppelwort-Lese- oder -Speicheroperation, was besonders bei Steuerwortzugriffen nützlich ist. Bei Verzweigungsoperationen gibt Bit 4 das M3-Register an, welches von zwei aufeinanderfolgenden Doppelwörtern durch die Haupt- und Steuerspeieher adressiert wird.
109845/1660 Docket EN 968 033
Die Register N2 und N3 sind als Rückgriff-Register für die Steuerwort-Adressierung vorgesehen. Die Adresse in N2 sowohl wie in M2 ist eine Moduladresse. Wie bereits gesagt, kann eine Reihe von Steuerwortoperationen ausgeführt werden durch Adressierung der Wörter von demselben Modul im Steuerspeicher. Die in N2 gespeicherte Adresse wird nur verändert, wenn durch das gerade ausgeführte Steuerwort eine Änderung der Moduladresse angegeben wird. Die Register M2 und N2 werden mit dieser neuen Moduladresse geladen. Die Adresse bleibt dann im N2-Register, bis wieder eine Änderung der Moduladresse angegeben wird. Während jedes nachfolgende Steuerwort im selben Modul ausgeführt wird, wird die Adresse in N2 nach M2 für die Adressierung des folgenden Steuerwortes übertragen, bis ein neues Modul angefordert wird.
Wenn eine Verzweigung während der Ausführung eines Steuerwortes auftritt, wird der Inhalt der M-Register auf Verzweigungsadresse gesetzt. Die N-Register bleiben jedoch unverändert, wenn die Verzweigung auftritt, so daß die laufende nächste Steueradresse aufgewahrt werden kann. Die Verzwexgungsroutxne speichert den Inhalt der N-Register, so daß die richtige Reihenfolge der Steuerwörter wieder aufgenommen werden kann, indem man die Register M und N mit d auf gewahrten Adresse neu lädt, wenn die Mikroprogrammroutine durch Beendigung der Verzweigung wieder eingeleitet wird. .
Das MB2-Register 125 und das MB3-Register 126 sind als zusätzliche Rückgriff-Register für die Register M2 und M3 vorgesehen. Die Register MB2 und MB3 werden auf die Steurwortadresse gesetzt, die in den Registern M2 und M3 steht. Wenn der Taktgeber der CPU gestoppt wird, enthalten die Register MB2 und MB3 Adreßbits des vorher ausgeführten Steuerwortes, wogegen die Register M2 und M3 die Adresse des als nächstes auszuführenden Steuerwortes enthalten. Die Daten In den Registern MB2 und MB3 werden bei Fehlerprüfroutinen benutzt,
Verzweigungs- und Prioritäts-Steuerschaltungen bekannter Bauart
109845/1660' . Docket EN 968 033
sind bei 127 gezeigt. Rückgriffregister 128 in Fig. 21 werden in Verbindung mit den Schaltungen 127 bei bestimmten Verzweigungsroutinen benutzt. Die Schaltungen 127 in den Registern 1J8 haben nichts mit der vorliegenden Erfindung zu tun und werden daher nicht näher beschrieben.
Adreßdaten werden in die Register Ml, M2 und M3 sowie in die Register N2 und N3 über die Assembliererschaltungen 130, 131 und 132 eingegeben. Für jedes Adreßbit enthalten die Assemblierer 130 bis 132 mehrere UND-Glieder, deren Ausgänge mit einem ODER-Glied verbunden sind. In den ODER-Gliedern der Assemblierer bis 132 sind somit die Zahlen 4, 8 und 8 eingetragen, um anzudeuten, daß vier schaltungen 130 und acht Schaltungen 131 und 132 vorhanden sind. Die Ausgänge der ODER-Glieder sind mit den entsprechenden Registern Ml, 2, 3 sowie N2 und N3 verbunden. Die Eingänge zum Assemblierer 130 sind eine erste Leitung ACB+1 und eine Leitung ACB, die von den Adreßgrenzprüfschaltungen 133 abgeleitet sind und ein Mittel für weitere Zugriffe zum Steuerspeicher 1 und zum Setzen der Grenze zwischen dem Steuerspeicher la und dem Hauptspeicher Ib darstellen. Eine weitere Leitung bildet einen dritten Eingang für den Assemblierer 130 und wird in Fällen benutzt, in welchen die auf das Register Ml zu übertragenden Bits ausgewählte numerische Konstanten sind, welche von dem ausgeführten Steuerwort abgeleitet werden.
Auf die Register Ml, M2'und M3 werden bekanntlich maximal 20 Bits übertragen, um einen Teil des Hauptspeichers Ib zu adressieren. Während der Ausführung zahlreicher SteuerwÖrter, in denen Daten zwischen dem Hauptspeicher Ib und einem der Speicher 5 oder 6 oder den externen Registern 7 übertragen werden, wird somit die 20 Bit große in die Register Ml, M2 und M3 zu setzende Adresse von den wertniederen 20 Bits in der Ausgangsleitung 133 des B-Registers 22 in Fig. 2D abgeleitet. Diese 20 Bit umfassende Leitung 133 wird an die entsprechenden Eingänge der Assemblierer und 131 sowie 132 angeschlossen.
109845/166
Docket EN 968 033
Ausgewählte Bits des Byte 2, vom C-Register 2 der Fig. 2G werden als Eingänge 143 und 144 zu den Assemblierern 131 und 132 benutzt. Eine Eingangsleitung 145 zum Assemblierer 132 koppelt den Assemblierer mit den ausgewählten Ausgangsbits des Byte 3 aus dem C-Register. Verzweigungsadressen werden in die Assemblierer 131 und 132 von den Verzweigungsschaltungen 127 über die Leitungen 146a und 146b eingegeben.
Der A-Arbeits spei eher 5 und der der B-Arbeitsspeicher 6 sind in Fig. 2b gezeigt und werden über Adressierschaltungen adressiert, die die Ädreßdecodierschaltungen 150 und 151 umfassen. Die Schaltungen 150 und 151 bilden zusammen mit einem Decodier- und Bestimmungsadreßregister 152 für externe Register die in Fig. 1 gezeigten Ädreßdecodierschaltungen für Arbeitsspeicher und externe Register. .
Eine Ausgangsadreßleitung 153 von der Decodierschaltung 150 wird dazu benutzt, ausgewählte Wörter in einen Arbeitsspeicher 5 zu setzen. Sie ist außerdem mit dem Adreßbestimmungsregister 154 über ein A-Pufferregister 155 verbunden.
Jedesmal wenn der A-Arbeitsspeicher 5 von einer Quelle durch Decodierung der gewünschten Bits in der Decodierschaltung 150 adressiert wird, wird die Adreßdecodierung in den Puffer 155 übertragen. Falls diese Adresse dieselbe ist wie die Bestimmungsadresse für die von der ALU 20 verarbeiteten Daten, wird sie dann vom Puffer 155 auf das A-Bestinnaungsregister 154 und ein B-Bestimmungsregister 156 übertragen.
In ähnlicher Weise ist ein B-Bestimmungspuffer 157 mit der Adreßausgangsleitung 158 der B-Becoäierschaltung 151 verbunden. Wenn die B-Quelle auch als Bestimmungsort dienen soll, wird die im Puffer 157 gespeicherte Adresse auf die Register 144 und 156 übertragen. Auf diese Weise werden Daten für beide Arbeitsspeicher gleichzeitig bestimmt, wodurch ein Arbeitsspeicher das Spiegelbild des anderen in bezug auf die darin gespeicherten Daten
109B45/16.6 0
Docket EN 968 033
bildet.
Adressen zur Adressierung der beiden Arbeitsspeicher 5 und 6 werden teilweise von den P- und L-Registern über die Leitungen 160 und 161 abgeleitet und zum andern Teil von der SDBO-Leitung über eine gerade/ungerade Wortwahlschaltung 162 der Fig. 2a, eine vier Byte große Leitung 163, einen Arbeitsspeicher-Adreßassemblierer 164 und eine zwei Byte große Leitung 165, die die Bytes 1 und 2 (nachfolgend mit Cl und C2 bezeichnet) des durch die Schaltung 162 gewählten Steuerwortes überträgt. In ähnlicher Weise werden die Bytes Cl und C2 zur Adressierung der Arbeitsspeichereinheit abgeleitet von der Konsolendatei 40 der Fig. 2a, einer Selektorkanal-Steuereinheit (nicht dargestellt), den Schaltern 37 auf der Bedienungskonsole und Verriegelungen 166 der Fig. 2c, jedesmal über den Assemblierer 38 der Fig. 2g und eine Leitung 167, die mit dem anderen Eingang des Assemblierers 164 verbunden ist. Ein zusästlicher Adreßbiteinang zum B-Arbeitsspeicher-Decodierkreis 151 wird über eine Leitung 170 von der Konsolendatei 40 abgeleitet. Eine von der Prioriätssteuerschaltung 127 der Fig. 2e abgeleitete Leitung 171 ist mit dem Eingang der A-Decodierschaltung 150 und der B-Decodierschaltung 151 verbunden. Die Bits 0 bis 5 des M3-Adreßregisters werden auf den Eingang der A-Decodierschaltung 15O über eine Leitung 172 geleitet.
Wenn die beiden Arbeitssspeicher 5 und 6 adressiert werden, um ihnen eine Information zuzuordnen, werden die Adressen in den Bestimmungsadreßregistern 154 und 156 über die Leitungen 173 bzw. 174 auf die Eingänge der Decodierschaltungen 150 und 151 geleitet.
Die Bestimmungs-Vorrausschauschaltungen 41 sind in Fig. 2b gezeigt und umfassen einen B-Decodierteil 175 und einen A-Decodierteil 176. Die Ausgangsleitungen 177 und 178 von den beiden Decodierschaltungen 175 und 176 werden an die Eingänge der beiden Vergleicherschaltungen 180 und 181 gelegt. Die Ausgangs-
109845/1660
Docket EN 968 033
leitungen 174 und 173 der Bestinimungsregister 156 und 154 werden ebenfalls an die Vergleicherschaltungen 180 und 181 angeschlossen. Falls eine dieser beiden Vergleicherschaltungen ein gleiches Vergleichsergebnis zwischen seinen Eingängen feststellt, wenn der entsprechende Arbeitsspeicher als Quelle im ersten Teil einer Steuerwortausführung adressiert wird, so besagt dieser gleiche Vergleich, daß die Quelle nicht fortgeschrieben worden ist, da es sich um die Bestimmungsadresse von dem vorher ausgeführten Mikrosteuerwort handelt. Ein gleiches Vergleichsergebnis in der Schaltung 180 liefert einen Impuls auf die Ausgangsleitung 182, wodurch der Teil des Steuerwortes, der nicht fortgeschrieben wurde und noch im Z-Register steht, direkt auf das B-Register 22 (Fig. 2d) über das Kabel 42 geleitet wird, welches den Ausgang des Z-Registers direkt mit dem Eingang des Z-Registers direkt mit dem Eingang des B-Registers 22 über die Assemblierer 190 und 191 (Fig. 2d) verbindet.
Ein gleiches Vergleichsergebnis in der Schaltung 181 liefert einen Impuls auf die Leitung 183, wodurch der Teil des gewünschten Wortes, der nicht fortgeschrieben wurde und noch im Z-Register steht, auf das in Fig. 2c gezeigte A-Register 21 über das Kabel 42 und den in Fig. 2c gezeigten Assemblierer 192 übertragen wird.
Wie bereits im Zusammenhang mit Fig. 1 gesagt wurde, werden Daten in die beiden Arbeitsspeicher, 5 und 6 der Fig. 2b über den SDBO-Assemblierer 11 der Fig. 2F und die vier Byte große Leitung 193 übertragen. Der FDBO-Assemblierer 11 leitet seinen Eingang andererseits vom D-Register 31 der Fig. 2g über ein Kabel 194 oder vom FDBO-Vorassembliererverriegelungen 10 über die Wort-, Halbwort- und Byte-Wahlschaltungen 12 der Fig. 2F ab,
Ausgangsdaten vom B-Arbeitsspeicher 6 der Fig. 2b werden auf das B-Registrer 22 über das Kabel 200 und den Assemblierer 191 geleitet. Die Ausgangsdaten vom A-Arbeitsspeicher 5 werden auf das A-Register 21 der Fig. 2c über ein Kabel 201 und dem Assemblierer 192 geleitet.
109845/1660
Der Ausgang des A-Registers 21 (Pig. 2C) wird, wie bereits gesagt, über das Kabel 26 auf die Torschaltungen 191 (Fig. 2d) und in das B-Register 220 geleitet. Das Kabel 26 koppelt außerdem die Bytes 0, 2 und 3 des anderen Registers 21 auf das Byte 0 des Assemblierers 23, die Bytes 0, 1 und 3 des andern Registers 21 auf Byte des Assemblierers 23 und alle vier Bytes des anderen Registers 21 auf die Bytes 2 und 3 des Assemblierers 23.
Die ALU 20 ist zwei Bytes breit und wird daher entsprechend Byte 2 und Byte 3 in die Abschnitte ALU 2 und ALU 3 unterteilt (Fig. 2gr 2h).
Byte 3 des Assemblierers 23 wird auf die Verzweigungsschaltungen 4 (Fig. 2d) über ein Kabel 210 gekoppelt. Die Bytes 0 bis 4 des Assemblierers 23 werden auf die Leitung SDBI über mehrere Treiberschaltungen 211 und ein vier Byte großes Kabel 212 geleitet. Die Bytes 2 und 3 des Assemblierers 23 sind mit ALU 2 und ALU 3 über die Kabel 213 und 214 und über die Kreuzschaltungen 215, 216 verbunden.
Bytes 0 und 1 des B-Registers 22 sind entsprechend mit den Bytes 0 und 1 des Z-Registers 30 (Fig. 2g) über die Kabel 220 und 221 und die Bytes 0 und 3 einer vier Byte großen Torschaltung 222 in Fig. 2h gekoppelt.
Die Bytes 2 und 3 und die Bits 4 bis 7 des Byte 1 im B-Register 22 sind über das Kabel 133 mit den M-Registereingangsschaltungen gemäß obiger Beschreibung verbunden. Die Bytes 0 bis 3 des B-Registers 22 sind außerdem auf die ALU 3 der Fig. 2i gekoppelt über Byte 2 des Assemblierers 24, die Kabel 224 und 225, die Schiebe- und Torschaltungen 226 und 227 sowie über die echten und Kompleraentschaltungen 228 und 229.
Byte 1 des B-Registers 22 ist auch mit ALU 2 gekoppelt über das Kabel 221, die Torschaltung 230 sowie das UND-Glied 231 und die Schiebe- und Torschaltung 226 sowie die echte Komplementschal-
10 984 5/1660
tung 228.
Während der Verschiebeoperationen kann das UND-Glied 232 der Fig. 2d dazu verwendet werden, die vier werthohen Bits 0 bis 3 der Byte-3-Schaltung des Assemblierers 24 und die wertniederen Bits 4 bis 7 der Byte-2-Schaltung des Assemblierers 24 mit ALU über die Schiebetorschaltung 227 und die echte Komplementschaltung 229 zu koppeln. In ähnlicher Weise kann das UND-Glied 231 (Fig. 2c) bei Verschiebeoperationen dazu benutzt werden, die vier wertniederen Bits 4 bis 7 des Bytes 1 des B-Registers 22 und die vier werthohen Bits 0 bis 3 des Byte 2 des B-Registers mit ALU 2 zu koppeln.
Der Ausgang von ALU 3 in der Fig. 2h ist gekoppelt mit jedem der vier Bytes des Z-Registers 30 über jedes der vier Bytes der Torschaltung 222 und ein Kabel 235. Der Ausgang von ALU 2 ist auf die Bytes O und 2 des Z-Registers 30 gelegt über die Bytes 0 und 2 der Torschaltung 222 und ein Kabel 236.
Wie bereits gesagt, ist der Ausgang des Z-Registers direkt mit dem Eingang des D-Registers 31 gemäß Darstellung in Fig. 2g verbunden und über ein Kabel 42 an den Eingang der A-Registertorschaltung 190 in Fig. 2d und den Eingang der B-Registertorschaltung 192 in Fig. 2c angeschlossen. Die Bytes 0 bis 3 des Z-Registers sind außerdem entsprechend mit den Bytes S, P, T und L des SPTL-Registers 7a der Fig. 2h über ein Byte große Kabel 240-0 bis 240-3 verbunden.
Der Ausgang des SPTL-Registers 7a ist über vier Byte große Kabel 43 und die Torschaltungen 190 und 190 mit dem B-Register 22 der Fig. 2d verbunden. Das Kabel 43 ist außerdem über ein ODER-Glied 242 der Fig. 2c und ein Kabel 243 sowie die Torschaltungen 192 mit dem A-Register 21 verbunden.
Das ODER-Glied 292, Kabel 243 und die Torschaltung 192 verbinden außerdem den Ausgang des externen Assemblierers 25 der Fig. 2b
109845/1660
mit dem Α-Register 21 der Fig. 2c. Die Steuerung des externen Assemblierers 25 erfolgt durch, die Decodier- und Bestimmungsadreßregisterschaltung 152a für externe Register (und ihren Assemblierer 152b), die an den Eingang des externen Assemblierers 25 über ein Kabel 250 angeschlossen ist. Die externen Register 7 sind mit ihren Ausgängen an einen Eingang des externen Assemblierers über ein Kabel 251 angeschlossen. Ein anderer Eingang zum externen Assemblierer 25 wird von einem Kabel 252 gebildet, welches von dem N2-Register 190 und dem N3-Register 120 der Fig. 2e kommt.
Die Konsolendatei 40 und die Schalter 37 (Fig. 2a) sind an einen anderen Eingang des externen Assemblierers über eine Torschaltung 39 und ein Kabel 253 angeschlossen.
Die Kanalsteuerschaltungen 260 der Fig. 2b sind mit einem anderen Eingang des externen Registers 25 und mit der Verzweigungsund Prioritätssteuerung 127 (Fig. 2i) über ein Kabel 261a verbunden. Die Schaltungen 260 sind außerdem auf einen Eingang des Assemblierers 38 über einen Kabelabschnitt 261b gekoppelt Die Kanalsteuerschaltungen 260 werden zusammen mit den Eingabe-/Ausgabe-Datenwegschaltungen 262 der Fig. 2b dazu benutzt, die übertragung von Daten zwischen der in den Fign. 2a bis 2i gezeigten Datenverarbeitungseinheit und peripheren Hochgeschwindigkeitsgeräten wie Magnetplatteneinheiten zu steuern.
Die Schaltungen 262 umfassen ein GRl-Eingaberegister 265, dessen Eingang an die Datenleitung in BI des Kanals 1 angeschlossen ist. Ein GOl-rAusgangsregister 266 ist mit seinem Ausgang an eine BO-Datenausgangsleitung für den Kanal 1 angeschlossen. Ein Schieberegisterpuffer 267, umfassend das Eingangsregister 265, wird dazu benutzt, von der Leitung des Kanals 1 auf den Hauptspeicher 1 oder vom Hauptspeicher 1 auf die Kanal-1-Ausgangsleitung übertragene Daten zu speichern.
Daten werden über die Leitung des Kanäles 1 auf Bytebasis empfan-
10984 5/1660'
2117938
gen und durch die nachfolgenden Stufen des Puffers 267 so übertragen. Die' Daten werden dann auf der Basis von vier Wörtern vom Puffer 267 auf den Speicher 1 über einen Zweirichtungsassemblierer 268, ein Kabel 269, den externen Assemblierer 25, das ODER-61ied 242/ das Kabel 243, die Torschaltung 192, das A-Register 21, den A-Assemblierer 23, Kabel 212, Treiber 211 und die Leitung SDBI übertragen.
Daten werden vom Speicher 1 auf Wortbasis zum Puffer 26 7 über-tragen über die Leitung SDBO, die Torschaltung 162 der Fig. 2a, Kabel 1J63, die Verriegelungen 10 der Fig. 2f, die Selektionsschaltungen 12, den SDBO-Assemblierer 11, die Treiberschaltungen 140 und die externe Leitung EBI. Aus den oben beschriebenen Datenwegen ist zu ersehen, daß der Puffer 267 mit seinen zugehörigen Registern 265 und 266 de facto ein Teil der externen Register 7 ist. Diese wurden jedoch wie andere Register, z. B. das Register SPTL, separat dargestellt, um bestimmte Merkmale des verbesserten Systems klarer zu zeigen.
Für die vorliegende Beschreibung wurde angenommen, daß die Verarbeitungseinheit vier Kanäle für die Datenübertragung zwischen Verarbeitungseinheit und peripheren Geräten zur Verfügung hat. Somit verfügt die Schaltung 260 über vier Abschnitte, je einen für einen Kanal. In ähnlicher Weise enthält die Schaltung 262 vier Puffer und Assemblierer, von denen nur zwei dargestellt sind.
Eine Decodierschaltung 270 (Fig. 2f) ist an den Ausgang des C-Registers 2 angeschlossen. Jedesmal wenn ein Steuerwort in das C-Register zur Ausführung eingegeben wird, spricht die Decodierschaltung 270 auf die Bitkombination des Steuerwortes dadurch an, daß die zur Ausführung des Wortes erforderlichen verschiedenen Tore betätigt werden.
Die Decodierschaltung 270 enthält einen Zykluslängen-Steuerteil 271, der auf ausgewählte Steuerwortbits dadurch anspricht, daß
109845/ 1 660
die Taktgeber zur Erzeugung einer ausgewählten Zykluslänge von 180 ns (Nanosekunden), 225 ns oder 270 ns und für bestimmte Worttypen von zwei Zyklen 225 ns + 270 ns oder 270 ns +■ 270 ns veranlaßt werden.
Durch die im Fehlersuchregister 272 der Fig. 2f und einer Schaltung 272 in der Fig. 3i enthaltenen Einrichtungen werden Fehlersuchfunktionen aufgespürt, die mit der vorliegenden Erfindung nichts zu tun haben.
Für bestimmte Arten von erneuten Instruktions-Ausführungsversuchen kann der Inhalt des A-Registers 21 und des B-Registers 22 auf die Register 128 (Fig. 2h) über eine Torschaltung 280 (Fig. 2d) und ein Kabel 281 übertragen werden.
Wenn Rechenoperationen in ALU 2 und ALU 3 ausgeführt werden, werden die Paritätsbits von den Operanden abgezogen, bevor sie in die ALU geleitet werden. Ein Paritätsgenerator 282 addiert das richtige Paritätsbit zum Rechenergebnis. Für binäre und Dezimaloperationen prüft eine Paritäts-Vorraussageschaltung (nicht dargestellt) in der ALU das erzeugte Paritätsbit gegen ein vorhergesagtes Paritätsbit zwecks Fehlererkennung. Fehler in den Ergebnissen einer Verknüpfungsoperation (die in ALU 2 und ALU 3 dupliziert wird) werden durch eine Verknüpfungs-Prüfschaltung 283 festgestellt, die die Ergebnisse von ALU 2 mit denen von ALU 3 vergleicht.
Eine dezimale Korrektur-Steuerschaltung 284 stellt eine richtige Dezimaladdition durch Verwendung eines binären Addierers in der ALU 2 und der ALU 3 sicher. Dieser Vorgang wird nachfolgend genauer beschrieben.
Eine Schaltung 285 (Fig. 2d) überwacht die Eingänge zur ALU 3 auf gültige Dezimalzahlen bei Dezimaloperationen. Im Ausführungsbeispiel sind Dezimaloperationen nur 1-Byte-Operationen.
109845/1660
_ 23 - 2117336
stelleitung ist direkt mit einem zweiten Eingang des anderen UND-Gliedes und über einen Inverter mit dem Eingang des einen UND-Gliedes verbunden r wobei zwischen Eingang und Ausgang eine kleine Verzögerung liegt.
Steht die Setz/Rückstelleitung auf 0, wird die Verriegelung ein nichtinvertierender Verstärker und erzeugt an ihrem Ausgang ein Signal, welches dem Signal auf der Dateneingangsleitung ent-' spricht. Führt die Setz/Rückstelleitung ein Einersignal, verriegelt sie in diesem Moment im Verknüpfungszustand der Datenleitung und hält diesen verriegelten Zustand bei, his die Setz/Rückstelleitung wieder auf 0 zurückkehrt.
Systemtaktgeber und Steuerungen
Jeder Systemtaktgeber 35 umfaßt gemäß Darstellung in Fig. 3 mehrere Eingänge und erzeugt auch wieder mehrere Ausgangssignale, von denen im Ausführungsbeispiel jedes etwa 90 ns dauert und gegen das vorhergehenden um etwa 45 ns zeitlich verschoben ist.
Einzelheiten eines solchen Taktgebers 35 sind im TDB Band 12 Nr. 1 Seiten 71 bis 73 vom Juni 1969 bekanntgemacht worden. In Fig. 3 wurden die Symbole für echte Werte (-) und Komplementwerte (+) verwendet, in allen anderen Teilen der Zeichnungen und der Beschreibung ist das Zeichen für ein Komplement jedoch "-" und die Verwendung keines Vorzeichens bedeutet den echten Wert.
Kurz gesagt umfaßt der Taktgeber mehrere Gleichstromverriegelungen, von denen jede einen entsprechenden echten und einen Komplement-Ausgangswert für die Ziffer O-Zeit, O-Verzögerungszeit, 1-Zeit, 1-Verzögerungszeit, 2-Zeit und 2-Verzögerungszeit erzeugt. Diese Verriegelungen entsprechen den Vorder- und Hinterkanten des Eingangssignals vom Oszillator 36 (Fig. 1) unter Steuerung der Zyklus-Eingangssignale für -180 ns, -225 ns und -270 ns,
10984 5/1660
Wenn Daten vom D-Register 31 (Fig, 2g) für die Arbeitsspeicher. land 6 (Fig. 2b) bestimmt sind, werden sie in die beiden Arbeitsspeicher eingegeben und direkt nicht destruktiv auf die Leitung 201 und 200 ausgelesen. Ein Antivalenzglied 256 (Fig. 2c) stellt fest, ob die Daten in beiden Arbeitsspeichern übereinstimmen; eine überprüfung des Registers 287 und eine Übereinstimmungsschaltung 288 stellt fest, ob die neuen Daten (1 bis 4 Bytes) vom D-Register 31 mit den Daten im A-Arbeitsspeicher 5 übereinstimmen.
Arten von Mikroprogramm-Steuerwörtern
(1) Alle Steuerwortbits sind nur der einfacheren Erklärung halber im C-Register 2 dargestellt, die Adressierung von Arbeitsspeicher und externen Registern erfolgt in Wirklichkeit jedoch durch entsprechende Bits in den Decodierschaltungen der Fig. 2b und nicht durch die tatsächlichen Ausgangsbits des C-Registers.
(2) Als Beispiele für die Ausführung von Steuerwörtern wurden für die Daten in den verschiedenen Registern willkürliche Werte gewählt.
(3) Bezeichnungen wie A3.0-2 werden der Einfachheit halber benutzt und stellen die Bits 0 bis 2 des Byte 3 des A-Registerausganges dar.
(4) Für Register und Verriegelungen werden vorzugsweise Polaritäts-Halteriegel bekannter Bauart verwendet, die über zwei UND-Glieder verfügen, deren Ausgänge mit den Eingängen eines ODER-Gliedes verbunden sind. Eine Datenleitung ist an einen Eingang eines UND-Gliedes angeschlossen und der phasengerechte Ausgang des ODER-Gliedes ist mit einem Eingang des anderen UND-Gliedes verbunden. Eine einzige Setz/Rück-
1 0 9 8 4 5/1660
2 T-17936
welche die Länge der auszuführenden Zyklen bestimmen.
Der Start des Taktgebers für jeden Zyklus wird bestimmt durch Signale auf den Leitungen + Taktstart-Rückstellung und - Taktstart. Der Taktgeber kann in seine Ausgangsstellung zurückgesetzt werden durch Anlegen eines Signales an den + Rückstelleingang. Ein + Fehlerstopeingang ist vorgesehen, um den Taktgeber dazu zu zwingen, Ziffer O-Taktzyklen beizubehalten, bis das Fehlersignal ausgeschaltet ist.
Wie aus Fig. 4 zu ersehen ist, hat jedes der obengenannten Taktsignale wie O-Zeit, O-Verzögerungszeit, 1-Zeit usw. eine Dauer von 90 ns und relativ zum vorhergehenden Signal eine Verschiebung oder zeitliche Verzögerung von 45 ns. Somit ist die O-Verzögerungszeit um 45 ns gegen die Q-Zeit verschoben, die 1-Zeit um 45 ns gegen die O-Verzögerungszeit und die 1-Verzögerungszeit um weitere 45 ns gegenüber der 1-Zeit usw. verschoben. In Fig. 4 sind außerdem die Oszillator-Eingangssignalpegel dargestellt.
Die Taktzyklus-Längensteuerschaltung 271 ist in Fig. 5 gezeigt und umfaßt die Verknüpfungsschaltungen, welche für den Taktgeber 35 Eingangszyklen von 180 ns, 225 und 270 ns erzeugen {entsprechend den mit -180 ns Zyklus, -225 ns Zyklus, -270 ns Zyklus bezeichneten Leitungen in Fig. 3).
Die Decodierleitungen BR und BR + MS für den Verzweigungs- und Modulumschalter Y werden im ODER-Glied 300 verknüpft, dessen Ausgang über ein UND-Glied 302 und ein ODER-Glied 303 auf die Steuerleitung 301 für 225 ns gegeben wird, wenn die hochwertigen Verzweigungsbits CO.4-7 größer gleich Olli sind. Das bedeutet, daß ein Zyklus von 225 ns angefordert wird, wenn die hochwertigen Verzweigungsbits die Prüfung der Verzweigungsquelle anfordern, um M3.4 auf die Wahl des nächsten Steuerwortes zu setzen. Somit wird die Bitleitung CO.4 (d. h. CO.4 hat den Wert 1000) mit dem Ausgang des UND-Gliedes 312 verknüpft, welches die Bits CO.5-7 gleich 111 decodiert, und das Ausgangssignal des ODER-
109845/1660
2Ϊ17936
■- 25 -
Gliedes 304 wird als ein Eingang auf das UND-Glied 302 gegeben.
Wenn die Bits CO.4-7 kleiner Olli sind bedeutet das eine feste Verzweigung oder die Prüfung eines S-Registerbits sowie die Umkehrung des Ausgangssignales des ODER-Gliedes 304 durch die Schaltung 305 und Anlegen eines Signales an die Steuerleitung 306 für 180 ns über das UND-Glied 307 und ein ODER-Glied 308 zur Einleitung eines 180 ns langen Zyklus.
Wenn ein Verzweigungs- und Verbindungswort (CO,0-3 = 0010) decodiert wird, wird das Signal auf der Decodierleitung BAL abwechselnd über das UND-Glied 313 auf das ODER-Glied 308 oder über das UND-Glied 314 auf das ODER-Glied 303 gegeben abhängig davon, ob das Bit C04 auf 0 steht (ein Verbindungswort) oder auf 1 (ein Rückkehrwort). ■
Ein UND-Glied 315 decodiert das Verschiebungswort (CO.0-3 = 0011) und sein Ausgangssignal wird auf das ODER-Glied 308 gegeben, um einen Zyklus von 180 ns länger zu erzeugen.
Ein arithmetisches Vollwort wird durch CO.1,2 = 10 und dadurch angegeben, daß CO.4-7 = 0000, 0001 oder 0010 ist. Das arithmetische Vollwort wird teilweise durch Decodierung der Bits CO.0,1 = 10 im UND-Glied 319 decodiert, um die 10-Form des arithmetischen Wortes zu erhalten. Die Bits CO.6,7 werden im Inverter 320 decodiert, dessen Ausgangssignal auf ein UND-Glied 322 geleitet wird. Die Bits -CO.4 und -CO.5 bilden außerdem Eingangssignale um UND-Glied 322. Die Ausgangssignale der Schaltungen 319 und 322 werden als Eingänge auf ein UND-Glied, 321 gegeben., dessen Ausgangssignal auf die Decodierleitung 323 des arithmetischen Vollwortes gegeben wird, Ein Signal auf der Leitung 323 erzeugt einen Zyklus von 225 ns, da es als ein Eingang auf das ODER-Glied 303 gegeben wird.
Die 10-Form des arithmetischen Wortes liefert ein Signal auf das ODER-Glied 308 über das UND-Glied 328 und erzeugt, abgesehen vom
10 9845/1660 ORIGINAL
-26- 2117036
Vollwort- und Dezimaloperationen, in allen Fällen Maschinenzyklen von 180 ns. Zu diesem Zweck wird das Ausgangssignal des UND-Gliedes 319 auf das UND-Glied 328 geleitet. Eine Decodierschaltung 318 gibt ein Signal auf einen Inverter 329, wenn sie die Bits GO,4-7 gleich 1010 decodiert, .die eine Dezimaloperation bezeichnen. Das UND-Glied 322, welches zur Decodierung von arithmetischen Vollwortoperationen benutzt wird, ist ebenfalls an einen Eingang des Schaltgliedes 329 angeschlossen. Die Schaltung
329 erzeugt ein Ausgangssignal nur, -wenn kein Eingangssignal vorhanden ist (wenn z. B. weder eine Dezimal- noch eine Vollwortoperation vorliegt) und veranlaßt dadurch das UND-Glied 328, ein Signal auf das ODER-Glied 308 für einen 180 ns-Zyklus zu leiten.
Die Decodierung des arithmetischen Wortes 10 durch das UND-Glied 319 zusammen mit der Decodierung der Bits CO.4-6 = 1010 (d. h. Dezimaloperation) erzeugt am Ausgang eines UND-Gliedes 325 auf der Dezimaladditions-Decodierleitung 326 ein Signal, welches auf die Steuerleitung 301 für einen 225 ns-Zyklus über das ODER-Glied.303 gegeben wird.
Ein UND-Glied 317 decodiert die Bits CO.1,1 = 11 für jede 11-Form eines arithmetischen Wortes und liefert ein Signal auf einen Eingang des ODER-Gliedes 308, wodurch ein Zyklus von 180 ns ausgeführt wird.
Die Decodierung der Steuerwortformbits CO.01 = 01 im UND-Glied
330 leitet den Zyklus der drei Polaritätshalteriegel 340, 341 und 342 ein, die der Reihe nach auf 1 gesetzt werden, um an ihren Ausgängen eine Speicher-Ziffer-l-Zykluszeit, eine Speicher-Verriegelungzeit und eine Speicher-2-Zykluszeit zu erzeugen. Der erste Polaritätshalteriegel 340 wird durch das OT-Signal zur Zeit 0 während des ersten Zyklus gesetzt; der Polaritätshalteriegel 341 wird durch das IT-Signal zur 1-Zeit während des ersten Zyklus und der Polaritätshalteriegel 342 durch das OT-Signal zur O-Zeit des zweiten Zyklus gemäß nachfolgender Beschreibung gesetzt. "
ORlG INSPECTED 10 9845/166 0
Die Speieherzykluszeiten 1 und 2 werden zusammen mit der Deco-· dierung der Speicherwortbits und ihrer Unterformbits dazu benutzt, einen Zyklus von 225 oder 270 ns während des ersten Speicherzyklus eines Speicherwortes und einen Zyklus von 270 ns während des zweiten Speieherzyklus zu wählen.
Somit werden die Signale auf der Speicherwort-Decodierausgangsleitung vom UND-Glied 330 und der Leitung für den zweiten Speicherzyklus auf ein UND-Glied 350 geleitet, um die Steuerleitung
351 für den 270 ns Zyklus während aller zweiten Speicherzyklen zu erregen.
Während eines ersten Speieherzyklus decodieren die UND-Glieder 331, 332 und 333 ein Speicherwort, ein Speicherhalbwort bzw. ein Speicherbyte und ihre Ausgangssignale werden auf ein ODER-Glied
352 geleitet, dessen Ausgangssignal wiederum an ein UND-Glied
353 angelegt wird. Das Signal auf der Leitung für den ersten Speicherzyklus wird ebenfalls als ein Eingangssignal an das UND-Glied 353 angelegt und die Speicherwort-Decodierleitung vom UND-Glied 330 bildet den dritten Eingang zum UND-Glied 353. Somit veranlassen das ODER-Glied 352 und das UND-Glied 330 während eines ersten Speicherzyklus das UND-Glied 353 zur Erzeugung eines .Ausgangssignales auf der Steuerleitung 351 für den 270 ns-Zyklus, wenn die Unterform des Wortes ein Speicherwort, ein Speicherhalbwort oder ein Speicherbyte ist.
Wenn die Unterform des Speicherwortes ein Lese-Vollwort, ein Lese-Halbwort oder ein Lesebyte ist, decodieren die UND-Glieder 335, 336 bzw. 337 diese Unterform entsprechend. Ihre Ausgangssignale werden an ein ODER-Glied 354 angelegt, welches zusammen mit den Signalen auf der Leitung für den ersten Speicherzyklus und der Speicherwort-Decodierleitung ein UND-Glied 355 zur Erzeugung eines Ausgangssignales veranlaßt, welches über das ODER-Glied 303 auf die Steuerleitung 301 für den 225 ns-Zyklus geleitet wird.
Die Einstellung der Riegel 340 bis 342 wird jetzt genauer be-
"■ ' 10 9845/1660
schrieben. Setzen und Rückstellen dieser Riegel erfolgt durch die Inverter 343 und 345 und die Eingangstaktsignalzeit 0. Ein Inverter 344, ein UND-Glied 346 und die Leitungen für die Eingangstaktzeit 1 und die 1-Verzögerungszeit liefern die Setz/Rückstellfunktion für den Riegel 341.
Ein Inverter 347 und ein UND-Glied 348 veranlassen das Setzen des Riegels 340 während des ersten Zyklus eines Speicherwortes und verhindern das Setzen während des zweiten Zyklus.
Verzweigungswort
Fig. 6 zeigt schematisch die Ausführung eines typischen Verzweigungswortes, welches eine Zykluszeit von 180 ns erfordert. Fig.7 zeigt das Zeitdiagramm für verschiedene Operationen bei der Ausführung des Verzweigungswortes. Das C-Register 2 ist auf der rechten Seite der Fig. 6 mit den'Bytepositionen CO, Cl, C2 und C3 dargestellt. Die Hexadezimalwerte der vier Bytes des Steuerwortes 1036204 F sind über dem Register 2 dargestellt.'Die Datenbitpositionen in jedem Byte sind in der linken Spalte im C-Register angegeben und die Bitwerte des Steuerwortes in der rechten Spalte. Willkürlich gewählte Werte wurden dem P-Register und dem Byte 1 des V-Registers auf der Adresse 13 in den Arbeitsspeichern 5 und 6 zugeordnet.
Die vier werthohen Bits CO.0-3 haben den Wert 0001 und bezeichnen damit einen Verzweigungsworttyp. Der Grund für die Ausführung dieses Verzweigungswortes liegt in der Verzweigung eines Steuerwortes innerhalb des selben Moduls des Steuerspeichers. M2 wird von M2 gesetzt und bleibt daher gleich, nur M3 wird verändert. Die spezielle Wortadresse innerhalb des Moduls (die Änderung nach^ M3) wird bestimmt durch
1. das werthohe Verzweigungsfeld CO.4-7, «-._«.
ORIGINAL INSPECTED
■109 84 5/1-660 Docket EN 968 033
2. die nächsten Adreßbits C3.O-3 und
3. das niedere Verzweigungsfeld C3.4-7.
Da ein immer auf eine Wortgrenze aufgerichtetes Steuerwort adressiert wird, bleiben die Bits 6 und 6 von M3 unberücksichtigt, da es sich um Bytewahlbits des Adreßregisters handelt.
Die hochwertigen Verzweigungsbits CO.4-7 sind gleich Ό000 und zwingen daher Bit 4 von M3 auch auf 0. Eine Decodierung des wertniederen Verzweigungsfeldes (1111) führt zur übertragung von Verzweigungsquellendaten auf die Verzweigungsschaltungen 4 und zwingen Bit 5 des M3-Registers in eine einer Prüfung entsprechenden Stellung. Die vier werthohen Bits 31.0-3 führen zur direkten Arbeitsspeicheradressierung, wodurch die vier wertniederen Bits des P-Registers -z\is aminen mit den Bits Cl. 1-3 durch die Schaltung 150 decodiert werden und das ü-'Register im A-Arbeitsspeicher 5 adressieren. Die Daten im U-Register werden auf das A-Register 21 übertragen. Bits Cl.4-5 führen zur übertragung des Hexadezimalwertes FB (Byte 1 des ü-Registers) von Al auf die Positionen von Byte 2 und 3 des A-Byteassemblierers 23. Byte 3 des A-Byteassemblierers 23 wird auf die Verzweigungsschaltungen 4 geleitet und die wertniederen Verzweigungswahlbits C3.4-7 leiten Bit 7 der Verzweigungsschaltungen, d. h., eine logische 1, auf Bit 5 des M3-Registers. Die übertragung der Quellendaten vom A-Arbeitsspeicher 5 auf die Verzweigungsschaltungen 4 erfolgt ungefähr in der Zeit von 35 bis 75 (Fig. 7). Das Setzen des M3~Registers erfolgt in diesem speziellen Fall ungefähr zwischen 45 und 90, da das Verzweigungswort von einer Art ist, bei welcher die Verzweigungsquelle Bit 5 des M3-Registers setzt, welches entweder das gerade oder das ungerade Wort eines Doppelwortes wählt und erst späte im Zyklus benötigt wird. Das Doppelwort wird aus dem Steuerspeicher gemäß Darstellung durch die Wahlleitung ungefähr in der Zeit zwischen 75 und 105 gelesen.
Die Verzweigung zu einem neuen Steuerwort ist begleitet durch die
109845/1660
Docket EN 968 033
2117Q3
Fortschreibung des P-Registers auf die neue Arbeitsspeicheradressierung. Somit führen die Bits C2.2-3 ungefähr zur Zeit 45 bis zur Adressierung des P-Registers und übertragung seines Inhaltes auf das B-Register 22 und dann den Assemblierer 24 und ALU 2 und ALU 3. Die Bits Cl. 6,7 leiten den K-Wert (C2.4-7) auf ALU 2 und ALU 3. Ungefähr .zur Zeit 45 leiten die Bits C2.2,3 den WErt im P-Register .(OCX)OOOIO) über das B-Register 22 und den Byteassemblierer 24 auf ALU 2 und ALU 3. Der B-Schalter tritt in Tätigkeit bei einer Decodierung der Bits 6 und 7 des Byte Cl des Steuerwortes, welches gleich 10 ist, und leitet den Wert des K-Feldes 0001 in den höherwertigen Eingang von ALU 2 und ALU 3 und den Wert 0000 in den niederwertigen Eingang. Wenn die Werte für P und K in der ALU ODER-verknüpft werden Cd. h. Bit C2.1 erfordert eine ODER-Funktion), wird das dem Hexadeζima!wert 12 gleiche Ergebnis im Z-Register 30 gespeichert. Ungefähr zur Zeit 135 wird das Ergebnis in das P-Register gesetzt.
Arithmetisches Wort - echte Vollwortaddition
Fig. 8 zeigt schematisch die Ausführung einer echten Vollwortaddition, die einen Zyklus von 225 ns gemäß Darstellung im Zeitdiagramm der Fig. 9 erfordert. Der untere rechte Teil der Fig. 8 zeigt die Operationen, die nach dem Zeitpunkt 180 in diesem Zyklus erfolgen. In diesem Zusammenhang wird auf die Setz/Rückstelleitung für das Z-Register im Zeitdiagramm hingewiesen, aus welchem zu ersehen ist, daß die Bytes O und 1 des Rechteckergebnisses im Z-Register nur nach Beginn des folgenden Steuerwortzyklus gespeichert werden. Dadurch wird die Ausführung des Steuerwortes in keiner Welse überlagert, da das Ergebnis erst in das D-Register zum Zeitpunkt 45 des folgenden Zyklus gesetzt wird.
Das ,Steuerwort BO4E64ÄC des Beispiels ist ein Steuerwort für eine echte VollwortadditioB mit Sonderleitung. Das Hauptziel des Steuerwortes ist die Addition des im V-Register gespeicherten
Docket EH 968 033 ^9845/1660 OSiGiNAL INSPECTED
Vollwortes zu den acht wertniederen Bits (z. B. Byte 3 des Y-Registers).Die unteren 24 Bits (z. B. Bytes 1 bis 3) des Ergebnisses sind auf die unteren 24 Bits des Y-Registers zu leiten.
Die Decodierung der Bits CO.1,2 schreibt eine Rechenwortart vor. Die Decodierung der Bits CO.2,3 bestimmt die Form der Rechenoperation, d. h., Operanden werden an der B-Quelle gefunden und die Ä-Quelladressen und das Ergebnis wird in der B-Quelladresse gespeichert. Die Decodierung der Bits CO.4-7 schreibt eine echte Vollwortaddition vor.
Decodierung der Bits Cl.0-3 fordert einen direkten Arbeitsspeicherzugriff der Α-Quelle, worin die Bits 1, 2 und 3 des Bytes Cl zusammen mit den Bits 4 bis 7 des P-Registers zur Wahl der V-Registerstelle (d.-h. 14) im A-Arbeitsspeicher 5 benutzt werden. Der Inhalt des V-Registersr der Hexadeζimalwert 1497C5A2 wird in das A-Register 21 und dann auf den A-Byteassemblierer 23 aufgrund der Decodierung von Cl.4,5 übertragen, die die Übertragung aller 32 Bits oder vier Bytes des V-Registers fördert. Bits 6 und 7 des Bytes Cl sind Zustand-Setzbits, die nur die 24 wertniederen Bits (die wertniederen Bytes 1, 2 und 3) des aus der Rechenoperation erhaltenen Ergebnisses im Y-Register an der Arbeitsspeicheradresse 16 speichern lassen oder für diese Stelle bestimmen lassen.
Die Decodierung der Bits C2.O-3 führt zur direkten Adressierung des B-Quellenoperanden, wobei die Bits 1,2 und 3 des C2-Byte und die Bits 4 bis 7 des P-Registers zur Adressierung des Y-Registers im B-Arbeitsspeicher 6 benutzt werden. Der Inhalt des Y-Register, nämlich der Hexadezimalwert 2DEC5972, wird auf das B-Register 22 übertragen und die Bytes 2 und 3 dieses Wortes werden dann auf den B-Byteassexnblierer 24 übertragen. Die Decodierung der Bits C2.4,5 führt zur Leitung nur der wertniederen acht Bits, das ist das Byte 3, der Daten im B-Byteassemblierer auf die ALU 3 und zur Sperre der 24 werthohen Bits (Bytes 0 bis 2) der B-Quelle. Dadurch wird Byte 2 im B-Assemblierer 24 daran gehindert, auf die ALU 2 übertragen zu werden. Die Werte in der
10 9 8 4 5/1660
Docket EN 968 033 ORIGINAL INSPECTED
ALU 2 werden addiert und in die Bytes O und 2 des Z-Registers 30 eingegeben und die Werte in der ALU 3 werden ebenfalls addiert und in die Bytes 1 und 3 des Z-Registers 30 gesetzt.
Bits C3.O-5 werden in das M3-Register zur Adressierung des nächsten Steuerwortes gesetzt, das nächste Steuerwort ist dann dasselbe Modul und daher wird das M2-Register vom N2-Register gesetzt.
Die oben beschriebenen Operationen laufen alle innerhalb der ersten 180 ns des Maschinenzyklus ab, wie aus dem Zeitdiagramm zu ersehen ist. Beginnend bei der Zeit 180 werden die Operationen ausgeführt, die s.chematisch in den unterbrochenen Linien im rechten unteren Teil der Fig. 8 gezeigt sind. Zur Zeit 180 werden die Bytes O und 1 des Α-Registers in die Bytes 2 und 3 des A-Byteassemblierers 23 übertragen. Zur selben Zeit werden die Bytes O und 1 des B-Registers in den B-Byteassemblierer 24 übertragen. Der Inhalt der Bytes 2 und 3 des A-Byteassemblierers wird auf die ALU 2 und die ALU 3 übertragen. Wie bereits oben gesagt, verhindert die Decodierung der Bits C2.4,5 das Leiten der drei werthohen Bytes der B-Quelle in die ALU. Demzufolge wird der Inhalt des B-Byteassemblierers für die übertragung zur ALU gesperrt. Die Ergebnisse der echten Addition werden auf die Bytes 0 und 1 des Z-Register 30 übertragen. Diese Einstellung der Bytes ZO und Zl erfolgt gemäß obiger Beschreibung von der Zeit 0 bis ungefähr zur Zeit 45 des nächsten folgenden Maschinenzyklus. Der Inhalt des Z-Registers wird auf das D-Register während des folgenden Zyklus zwischen der Zeit 4.5 und der Zeit 90 übertragen. Während des Lese-Schreibteiles des nächsten Maschinenzyklus werden nur die Bytes 1, 2 und 3 des D-Registers auf das Y-Register in den beiden Arbeitsspeichern 5 und 6 übertragen, da die Decodierung der Bits Cl.6,7 nur die 24 wertniederen Bits des zu bestimmenden Ergebnisses leitet.
Rechenwortbeispiel - Byteaddition
ORIGlNALiNSPECTED
Docket EN 968 033 "i 038 A S / I 66 0 .
Fig. 10 zeigt schematisch die Ausfuhrung des Steuerwortes "FD3C2F92". Das zugehörige Zeitdiagramm ist in Fig. 11 gezeigt. Die Bits O und 1 des Bytes CO des Steuerwortes bezeichnen nach Decodierung ein Rechenwort. Die spezifische Operation oder Form erhält man durch Decodierung der Bits 2 und 3 des Byte CO. In diesem Fall ist jedes der Bits gleich 1 und besagt, daß das Ergebnis einer eine Α-Quelle und eine B-Quelle benutzenden Operation zur B-Quellenadresse weggespeichert wird. Bit 4 des Byte CO steht auf 1 und zeigt an, daß es sich bei der Operation um eine echte Addition handelt. Eine Schaltersteuerung erfolgt durch die Bits 5,6 und 7 des Byte- CO. Im gegebenen Beispiel stehen die Bits auf 101 und führen zu einer Kreuzung der werthohen und wertniederen Hexadezimalwerte (5 und 7), die aus den A-Schalter gegeben werden und dann nach der Kreuzung den hohen Wert (7) sperren. Bit 0 des Byte Cl ist gleich 0 und zeigt die direkte Adressierung des Arbeitsspeichers an, wodurch die Bits 1, 2 und 3 von Cl direkt zusammen mit den wertniederen Bits des P-Registers zur Adressierung einer ausgewählten Stelle (U-Register) im Arbeitsspeicher 5 benutzt werden. Die Bits 4 und 5 des Byte Cl des Steuerwortes sind gleich 11 und führen zur Wahl des Byte 3 des vom Arbeitsspeicher 5 ausgewählten A-Quellenregisters (ü3). Bit 6 und 7 des Bytes Cl sind gleich 00, so daß das Zustanderegister S nicht gesetzt wird. Bits 0 bis 3 des Byte C2 werden dazu benutzt, das W-Register im B-Arbeitsspeicher 6 als B-Quelle direkt zu adressieren. Die wertniederen Bits im P-Register werden wieder für einen Teil der Adreßdecodierung bei der Auswahl des W-Registers benutzt. Der ganze Inhalt des W-Registers wird auf das B-Register 22 übertragen und der Wert (28) im Byte des W-Registers wird zur übertragung auf beide Bytepositionen des BrByteassemblierers 24 durch die Bits 4 und 5 des Byte C2 des Steuerwortes ausgewählt. Bits 6 und 7 des Byte C2 des Steuerwortes führen zur direkten Leitung der Bytes im B-Assemblierer 24 auf die ALU 2 und ALU 3. Die hexadezimalen Zahlen 05 und 28 werden zueinander in jedem ALU-Abschnitt addiert und mit einem Vergleich der Ergebnisse festgestellt, ob ein Fehler in den ALU-Abschnitten aufgetreten ist oder nicht. Wenn kein Fehler auftrat, wird das Ergebnis, in
10 9845/^660
Docket EN 968 033 ORIGINAL INSPECTED
diesem Fall der Hexadezimalwert 2D, auf jedes Byte des Z-Registers 30 übertragen.
Das ausgeführte Steuerwort muß außerdem das als nächstes auszuführende Steuerwort adressieren. Somit werden die Bits 0 bis 5 des Byte C3 des Steuerwortes dazu benutzt, mindestens teilweise die Adresse des nächsten Steuerwortes zu bilden. Die Bits 0 bis 3 des Byte C3 werden also direkt auf die Bits 0 bis 3 des M3-Registers übertragen. Bit 6 und 7 des Byte C3 erfordern eine Verzweigung entsprechend der Stellung der Bits 4 und 5 des S-Registers. Es wird angenommen, daß die Bits 4 und 5 des S-Registers auf 1 stehen. Sie werden entsprechend mit den Bits 4 und 5 des Byte -C3 ODER-verknüpft und das logisch 11 gleichkommende Ergebnis wird in die Bits 4 und 5 des M3-Registers geleitet. Der zeitliche Ablauf- der obigen Operation ist aus der Zeittabelle der Fig. 11 zu ersehen, wo das Setzen des C-Registers von 0 auf die Zeit 45 zu sehen ist, wodurch die Bildung der nächsten Steuerwortadresse zwischen der Zeit 45 und der Zeit 9O abgeschlossen werden kann. Das nächste Steuerwort kann darste1lungsgemäß ausgelesen werden, indem die Wahlleitung ungefähr zur Zeit 75 beginnt. Die A- und B-Quellen werden von den A- und B-Arbeitsspeichern 5 und 6. zwischen der Zeit 35 und der Zeit 70 gelesen und die A- und B-Quellen stehen in den A- und B-Registern zwischen der Zeit 45 und der Zeit 90 zur Verfügung. Die Wege zwischen den A- und B-Registern 21 und 22 und den zugehörigen Byteassemblierern 23 und 24 beginnen ungefähr zur Zeit 45 zu leiten und die Umschalter zwischen den Byteassemblierern und der ALU ebenfalls. Die ALU leitet ungefähr zur Zeit 90 eine ausgewählte Rechenoperation ein und ungefähr zur Zeit 135 wird der Eingang zum Z-Register 30 leitend. Daten, die von einer vorhergehenden Ausführung eines Steuerwortes evtl., noch im Z-Register stehen, werden vom Z-Register auf das D-Register übertragen, beginnend ungefähr zur Zeit 45, und diese Daten werden dann vom D-Register auf die ausgewählten Stellen im A- und B-Arbeitsspeicher 5 bzw. 6 , beginnend bei der Zeit 90, übertragen. Die Durchgangsprüfung der bestimmten Information erfolgt zwischen den Zeitpunkten 135 und 180.
1 U 9 8 4 5/1660
ORIGINAL INSPECTgD
Echte Dezimaladdition
Fig. 12 zeigt schematisch ein typisches Dezimal-Additions-Steuerwort BA4C6FAC land Fig. 13 die Zeiteinteilung der verschiedenen Maschinenoperationen. Die Decodierung der Bits CO.0,1 erfordert ein arithmetisches Wort. Die Decodierung der Bits CO.2,3 zeigt an, daß die Operation eine Α-Quelle und eine B-Quelle betrifft und daß Ergebnisse auf die Adresse der B-Quelle zu setzen sind. Bits CO.4-7 fordern eine dezimale Addition. Es wird angenommen, daß das Zustandsregisterbit SO gleich 0 ist und eine echte Additionsfunktion liefert. Die Bits Cl.0-3 fordern die direkte Arbeitsspeicheradressierung um die Α-Quelle zu erhalten unter Verwendung der Bits 4 bis 7 des P-Registers und der Bits Cl.1,2 und 3 zur Adressierung des V-Registers im Arbeitsspeicher 5 auf der Adresse 14. Die Bits Cl.4,5 besagen, daß die Operation mit dem Byte 3 des V-Registerinhaltes durchzuführen ist. Die Bits Cl.6,7 erfordern keine Einstellung des Zustandsregisters. Die Bits C2.O-3 fordern die direkte Arbeitsspeicheradressierung der B-Quelle, um die Bits 4 bis 7 des P-Registers und die Bits C2.1-3 zur Adressierung des Y-Registers an der Stelle 16 im B-Arbeitsspeicher 6 zu nutzen. Die Bits C2.4,5 zeigen an, daß Byte 3 des -Y-Registerinhaltes zu bearbeiten ist. Die Bits C2.6,7 zeigen an, daß die Leitung der B-Quelle normal oder grade ist, d.h., die hohen und niedrigen Hexadezimalwerte des Byte 3 werden entsprechend auf die hohen und niedrigen Positionen der ALU 2 und ALU 3 geleitet. Bits C3.O-5 einschließlich werden auf das M3-Register übertragen und das M2-Register wird aus dem ^-Register gesetzt, um das nächste Steuerwort aus demselben Speichermodul zu adressieren.
Somit ist aus Fig. 12 zu ersehen, daß die direkte Arbeitsspeicheradressierung der A- und B-Quellen den Inhalt des V-Registers aus dem Arbeitsspeicher 5 auf das A-Register 21 und den Inhalt des Y-Registers aus dem B-Arbeitsspeicher 6 auf das B-Register
Docket EN 968 033 ' ü 9 b 4 5 / I 6 6 0
22 überträgt. In den Bytepositionen O, 1 und 2 der A- und B-Register sind Xe dargestellt, da der Inhalt dieser Bytes während der Operation nicht benutzt wird. Wie oben gezeigt, wählten die Bytewahlbits die Bytes 3 des Inhaltes des V-Registers und des Y-Registers. Somit wird Byte 3 im A-Register 21, welches den Hexadezimalwert 07 enthält, auf alle vier Bytepositionen des A-Byteassemblierers 23 übertragen. Dieser Wert wird dann von den Positionen für Byte 2 und Byte 3 des A-Byteassemblierers direkt auf die Α-Eingänge von ALU 2 und ALU 3 gegeben. Byte 3 im B-Register hat einen Hexadezimalwert von 15 und wird auf beide Bytepositionen des B-Byteassemblierers 24 und von dort über die echten und Komplementschaltungen auf die B-Eingänge der ALU 2 und ALU 3 übertragen. Die hexadezimalen Werte werden in der ALU 3 addiert und das hexadezimale Ergebnis IC wird auf alle vier Bytepositionen des Z-Registers 30 übertragen. Alle Oben im Zusammenhang mit dem Steuerwort beschriebenen Operationen erfolgen währenß der ersten 180 ns des Zyklus. Die während der Ausführung des Steuerwortes nach dem Zeitpunkt 180 durchgeführten Operationen sind in unterbrochenen Linien in der unteren rechten Ecke der Fig. 12 gezeigt. Zur Zeit 180 wird der Hexadezimalwert IC vom Byte 3 des Z-Registers auf Byte 3 des Α-Registers und von dort auf die Bytes 2 und 3 des A-Byteassemblierers 23 übertragen, um an die Α-Eingänge der ALU 2 und ALU 3 angelegt zu werden. Die vier Eingänge für die Dezimalkorrektursteuerungen, Bits C3.O-3, Bits C3.4-7 sowie die beiden Übertragsbits der ersten Dezimaloperation sorgen dafür, daß der K-Assemblierer eipe Korrekturzahl 06 auf die B-Eingänge der ALU 2 und ALU 3 gibt. Der Korrekturfaktor wird zum hexadezimalen Ergebnis der ersten Operation addiert, um ein korrigiertes hexadezimales Ergebnis 22 zu erzeugen, welches vom Ausgang der ALU .3 auf das Z-Register 30 übertragen wird. Aus dem Zeitdiagramm der Fig. 13 ist zu ersehen, daß das Setzen des korrigierten Ergebnisses in das Z-Register 30 ungefähr zwischen den Zeitpunkten 0 und 45 des folgenden Zyklus stattfindet, Kurz danach wird dieses korrigierte Ergebnis in das D-Register gegeben und danach auf Byte 3 des Y-Registers in den beiden Arbeitsspeichern 5 und 6 zurückgeführt. ;
109845/IGGU
Speicherwort
Die Ausführung des SpeieherSteuerwortes 487B2DEE ist schematisch in den Fign. 14a und 14b gezeigt und die Zeiteinteilung der verschiedenen Maschinenoperationen in den Zeitdiagrammen der Fign. 15a und 15b. Aus den Zeitdiagrammen ist zu ersehen, daß die Ausführung des Speicherwortes zwei Speicherzyklen 1 und 2 mit jeweils 270 ns Dauer erfordert. Mit dem als Beispiel gezeigten Steuerwort 487B2DEE soll das Datenwort (oder ein Teil davon), welches in den Q-Registern der beiden Arbeitsspeicher steht, auf die Hauptspeicheradresse übertragen, die in den W-Registern dieser beiden Arbeitsspeicher steht. Bei diesem spezieilen Wort werden die Daten auf den Hauptspeicher Ib unter Verwendung der Bits O bis 3 des T-Registers als Maske übertragen.
Die Ausführung des Steuerwortes wird im Zusammenhang mit den verschiedenen Bits beschrieben, die das Steuerwort bilden und darstellungsgemäß im C-Register 2 gespeichert sind. Die Bits O und 1 des Byte CO bezeichnen nach Decodierung ein Speicherwort. Die Bits 2, 3 und 4 des Byte CO bezeichnen die ühterform des Wortes, ein Speichertypenwort. Die Bits 0 bis 3 des Byte Cl bezeichnen nach Decodierung die direkte Adressierung der Arbeitsspeicher unter Verwendung der Bits 1, 2 und 3 des Byte Cl und der Bits 4 bis 7 des P-Registers zur Adressierung des Q-Registers auf der Adresse 17 des Α-Arbeitsspeichers. Der Inhalt F7F3F2C3 des Q-Registers wird auf das A-Register 21 und dann auf den A-Byteassemblierer 23 übertragen. Die Bits 6 und 7 des Byte C2 geben an, daß die Daten im A-Byteassemblierer unter der durch die werthohen Bits 0 bis 3 des T-Registers bestimmten Maske auf den Hauptspeicher Ib zu übertragen sind. Diese werthohen Bits 0010 des T-Registers veranlassen nur die übertragung des Byte 2 der Daten im Assemblierer 23 auf den Hauptspeicher Ib.
Die Adresse, auf der dieses Datenbyte gespeichert ist, wird an- : gegeben durch die Bits 0 bis 3 des Byte C2 des Steuerwortes. Die '"
1098 45/ I 66 0
Decodierung dieser Bits veranlaßt die direkte Adressierung des Arbeitsspeichers 6 und die Bits lf 2 und 3 des Byte C2 sowie die wertniederen Bits 4 bis 7 des P-Registers werden in der Schaltung 151 decodiert und wählen das W-Register auf der Adresse 12. Die Hauptspeicheradresse OO1EFDOO im W-Register wird auf das B-Register 22 übertragen und die wertniederen Bytes 2 und 3 vom B-Register 22 auf den B-ByteassembIierer 24. Byte 2 im B-Byteassemblierer wird auf die ALU 2 übertragen und in den Bytes 0 und 2 des Z-Registers 30 gespeichert. Das wertniedere Byte 3 im Assemblierer 24 wird auf einen Eingang der ALU 3 übertragen. Ein anderes Eingangssignal zur ALU 3 fordert die Fortsehreibung des wertniederen Byte um den Wert 1, woraufhin der Wert 1 zum Byte 3 des Byteassemblierers 24 addiert und das Ergebnis in den Bytes 1 und 3 des Z-Registers 30 gespeichert wird. Die Fortschreibung der Adresse wird bestimmt durch die Bits 4 und 5 des Byte Cl des Steuerwortes, welches angibt, daß die Fortschreibung eine Additions funktion sein muß. Die Bits 6 und 7 des Byte C2 des Steuerwortes geben an, daß der Wert der Fortschreibung sich nach dem Wert der Bits 0 bis 3 des T-Registers richtet. In diesem speziellen Fall fordert die Decodierung der Bits im T-Register eine Fortschreibung um den Wert 1. Abhängig davon, ob es sich um eine Byte-, Halbwort- oder Wortoperation in bezug auf die zu speichernden Daten handelt, erfolgt die Fortschreibung in Schritten von 1, 2 oder 4* Ih dem Beispielwort ist nur ein Byte im Hauptspeicher weggespeichert und die Fortschreibung beträgt somit 1.
Ungefähr zum Zeitpunkt 180 des Speicherzyklüs werden die Bytes 0 und 1 des B-Registers 22 auf den B-Byteassemblierer 24 und von dort die Bytes 0 und 1 des Z-Registers 30 über die ALU 2 und die ALU 3 übertragen* Nach der Verwendung der werthohen Bits des T-Registers zur Leitung der Daten in den Hauptspeicher Ib führt die Decodierung der Bits 2, 3 und 4 des Byte CO und der Bits 6 und 7 des Byte C2 zur Rückstellung der werthohen Bits des T-Registers.
Der Speicherzyklüs 2 der Steuerwortausführung ist im unteren
10 9845/1660
• - 39 -
Teil der Fig. 14 dargestellt. Zu Beginn des Zyklus 2 wird durch Decodierung der Bits 2, 3 und 4 des Byte CO und des Bits 4 des Byte C3 die Adresse vom Wert 12 auf den Wert 13 um 1 erhöht, welche das W-Register des B-Arbeitsspeichers während des ersten Zyklus wählte und dadurch das ü-Register im B-Arbeitsspeicher 6 adressiert. Die wertniederen Bytes 2 und 3 des ü-Registers enthalten einen Zählwert, der gleich der Anzahl von Bytes ist, die aus dem Hauptspeicher für die Verarbeitung während einer Rechenoperation übertragen werden müssen, und zwar maximal 256 Bytes. Im gezeigten Ausführungsbeispiel des Systemes wird dieser Zählwert immer in dem Register gespeichert, welches unmittelbar vor dem für die Adreßdaten benutzten Register liegt. In diesem speziellen Fall ist es das W-Register. Jedesmal wenn ein Wort oder ein Datenteil eines Wortes vom Hauptspeicher zur Verarbeitung übertragen und das Ergebnis in den Hauptspeicher zurückgesetzt wird, muß die Wortzahl im U-Register bis zum Erreichen des Wertes O herabgesetzt werden, wodurch das Ende einer bestimmten Rechenoperation angezeigt wird. Die Unterform des jeweils ausgeführten Speicherwortes gibt den Wert an, um welchen die Zahl herabgesetzt wird. Eine Byteoperation erfordert die Herabsetzung um 1, eine Halbwortoperation die Herabsetzung um 2 und eine Vollwortoperation die Herabsetzung um 4. Im vorliegenden Beispiel bezeichnen die Steuerwortbits 2, 3 und 4 des Byte CO nach der Decodierung eine Speicherwortoperation, wodurch also eine Herabsetzung um 4 gefordert wird, auch wenn der Inhalt des T-Registers 3 dieser vier Bytes im Wort maskiert. Somit wird das wertniedere Byte 08 im B-Byteassemblierer 24 auf die ALU 3 übertragen und um 4 herabgesetzt und dann in den Bytes 1 und 3 des Z-Registers 30 gespeichert.
Zu den Zeitpunkten 4 5 bis 90 des Speicherzyklus 2 wird die fortgeschriebene Wortadresse (001EFDO1), die auf das Z-Register während des ersten Speicherzyklus übertragen wurde, in das B-Register 31 übertragen. Während der Zeit 90 bis 150 des zweiten Zyklus wird die fortgeschriebene Adresse vom D-Register auf das W-Register über den SDBO-Assemblierer 11 übertragen.
1 0 9 8 4 5 / 1 6 6 ö
Das nächste auszuführende Steuerwort wird teilweise über die Folgeadreßbits 0 bis 3 des Byte C3 des ausgeführten Steuerwortes adressiert. Die hohen Verzweigungsbits 5, 6 und 7 des Byte CO werden decodiert, wodurch das Bit 4 des M3-Registers auf Q gesetzt wird. Die niederen Verzweigungsbits 5,6 und 7 des Byte C3 veranlassen nach der Decodierung das Setzen des Bits 5 im M3-Register auf denselben Wert, den das Bit 7 des S-Registers hat. Im vorliegenden Beispiel ist Bit 7 des S-Registers gleich 0, also auch Bit 5 des M3-Registers. Eine Modulumschaltung ist im gezeigten Steuerwort nicht vorgesehen, wodurch der Wert der Adreßbits in dem N2-Register in das M2-Register zur Adressierung des gewünschten Steuerwortes in demselben Modul gesetzt wird.
9845/1660

Claims (10)

  1. 2117938
    * 41 -
    CHE
    1 Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems, dadurch gekennzeichnet, daß ein schneller Steuerspeicher (la; Fig. 1), dessen Zugriffs- und Lesezeit kleiner ist, als die Verarbeitungszeit der arithmetischen und logischen Schaltungen, daß ferner ein Taktgenerator (35) mit variabler Zykluslänge für die Erzeugung einer Reihe zyklischer Ausgangsimpulse für die Ausführung der Steuerwörter und daß schließlich eine Steuerung (Fig. 5) vorgesehen sind, die in Abhängigkeit vom Typ eines Steuerwortes den Taktgenerator derart steuert, daß dieser nur so viele Ausgangsimpulse in einer Taktimpulsreihe erzeugt, wie für die Ausführung dieses Steuerwortes erforderlich sind.
  2. 2. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet, daß auch der Hauptspeicher (Ib; Fig. 1) eine Zugriffs- und Lese-/Schreibzeit besitzt, die kleiner ist, als die Verarbeitungszeit der arithmetischen und logischen Schaltungen.
  3. 3. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet, daß eine Einrichtung vorgesehen ist, die von bestimmten Steuerwörtern derart steuerbar ist, daß sie Daten vom Hauptspeicher (Ib; Fig. 1) zu den Arbeitsspeichern (5, 6) zur Vorbereitung der Verarbeitung der Daten in der arithmetischen und logischen Einheit (20) und daß sie die verarbeiteten Daten von den Arbeitsspeichern zu dem Hauptspeicher überträgt.
  4. 4. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 3, dadurch gekennzeichnet, daß eine Einrichtung vorgesehen ist, die von anderen Steuerwörtern derart steuerbar ist,
    10 9 8 4 5/1660
    däß sie Daten von den Hauptspeichern zu der arithmetischen und logischen Einheit for die Verarbeitung überträgt und daß sie ferner die verarbeiteten Daten von der arithmetischen und logischen Einheit zu den Arbeitsspeichern überträgt,
  5. 5. Mikröprogrammgesteuerte Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß eine weitere Einrichtung vorgesehen ist, die von jedem Steuerwort während seiner Ausführung derart steuerbar ist, daB sie eine Adresse für den Abruf des nächsten auszuführenden Steuerwortes erzeugt.
  6. 6. Mikroprogrammgesteuerte Zentraleinheit nach einem oder mehreren der Ansprüche X bis 5, dadurch gekennzeichnet, daß der Adressierungsmechanismus und die Speicher für den Abruf und das Lesen von Paaren von Steuerwörtern ausgelegt sind»
  7. 7. Mikröprogrammgesteuerte Zentraleinheit nach Anspruch 6, dadurch gekennzeichnet, daß eine erste Verzweigungsschaltung vorgesehen ist, die auf vorgegebene Bitkombinationen in bestimmten Steuerwörtern anspricht und für die Verarbeitung eines des adressierten nächsten Steuerwortpaares gemäß den Bitkombinationen und Bedingungen eines vorgegebenen Zustandsregisters und Arbeitsspeichers auswählt.
  8. 8. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 7, dadurch gekennzeichnet, daß eine zweite Verzweigungsschaltung vorgesehen ist, die auf vorgegebene Bitkombinationen in bestimmten Steuerwörtern anspricht, um für die Verarbeitung eines von zwei Paaren von Steuerwörtern, entsprechend den Bitkpmbinationen und Bedingungen eines vorgegebenen Zustandsregisters und Arbeitsspeichers auswählt.
  9. 9. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 8,
    109845/1860
    dadurch gekennzeichnet, daß eine Steuerung vorgesehen ist, die von der ersten Verzweigungsschaltung gesteuert wird, um den Taktgeber derart zu steuern, daß er einen Zyklus von der Dauer einer Zeiteinheit erzeugt.
  10. 10. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Steuerung von der zweiten Verzweigungsschaltung so gesteuert wird, daß sie den Taktgenerator veranlaßt, einen Zyklus von der Dauer einer Zeiteinheit zu erzeugen, wenn die Verzweigungsschaltungen auf die Steuerwortbits und Zustandsregisterbits ansprechen und daß sie den Taktgenerator veranlaßt, einen Zyklus einer größeren Zeitdauer zu erzeugen, wenn die Verzweigungsschaltungen auf ausgewählte Bits im Arbeitsspeicher ansprechen, wobei die Positionen in dem Arbeitsspeicher von dem auszuführenden Steuerwort ausgewählt wurden. .
    11. Mikroprogrammgesteuerte Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Steuerung auf jedes von bestimmten Steuerwörtern anspricht, um eine von einer Anzahl ausgewählter erster Zykluszeiten zu erzeugen, um das betreffende Steuerwort auszuführen.
    12. Mikroprogrammgesteu^erte Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Steuerung auf jedes von bestimmten anderen Steuerwörtern anspricht, um eine von einer Anzahl von ausgewählten Kombinationen von ersten Zykluszeiten zu erzeugen, um das betreffende Steuerwort auszuführen.
    13. Mikroprogrammgesteuerte Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß die Steuerung (Fig. 5) aus folgenden Elementen besteht:
    109845/1660
    eine Speicher-1-Zyklus-Verriegelungsschaltung, eine Speicher-2-Zyklus-Verriegelungsschaltung,
    eine Speicher-Sperrzyklus—Verriegelungsschaltung und
    eine Einrichtung, die auf jedes Speiehersteuerwort anspricht, um die Speicher-1-Zyklus-Verriegelungsschaltung während einer ersten Zykluszeit, die Speicher-2-Zyklus-Verriegelungsschal tung während einer zweiten Zykluszeit und die Speicher-Sperrzyklus-Verriegelungsschaltung während des letzten Teiles der ersten Zykluszeit und des frühen Teiles der zweiten Zykluszeit einzustellen, wobei die genannten-^te| Verriegelungsschaltungen die Steuerung der Ausführung jedes Speicherwortes während zwei aufeinanderfolgender Taktzykluszeiten bewirken.
    14. Mikroprogrammgesteuerte Zentraleinheit nach Anspruch 4, dadurch gekennzeichnet, daß die genannte Einrichtung auf jedes arithmetische Ganzwort-Steuerwort anspricht, um erste unpjzweite Operanden von den Arbeitsspeichern abzurufen und um die niedrigstelligen Bits der Operanden in die arithmetische und logische Einheit für die Verarbeitung zu übertragen, und daß diese Einrichtung danach bewirkt, daß die hochstelligen Bits der Operanden in die arithmetische und logische Einheit für die Verarbeitung übertragen werden und daß schließlich die Steuerung auf jedes arithmetische Vollwort-Steuerwort anspricht, um den Taktgeber zu bewirken, so viele Ausgangsimpulse zu erzeugen, wie für die Vervollständigung der Operation des Steuerwortes in einem Zyklus erforderlich sind.
    15. Mikroprogrammgesteuerte Zentraleinheit nach einem oder
    1119 8 4 5/ UbO
    mehreren der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß eine Einrichtung vorgesehen ist, die auf ausgewählte Bits in jedem Steuerwort anspricht, um den Taktgeber zu veranlassen nur so viele Ausgangsimpulse in einer Taktreihe zu erzeugen, als notwendig sind, um die Ausführung des Steuerwortes zu bewirken, bevor eine nachfolgende Reihe von Taktimpulsen für ein nächstes Steuerwort gestartet wird.
    10 9-84 5/ 16 6 0
    Leers ei te
DE2117936A 1970-04-16 1971-04-14 Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems Expired DE2117936C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US2922370A 1970-04-16 1970-04-16

Publications (3)

Publication Number Publication Date
DE2117936A1 true DE2117936A1 (de) 1971-11-04
DE2117936B2 DE2117936B2 (de) 1978-12-14
DE2117936C3 DE2117936C3 (de) 1979-08-16

Family

ID=21847906

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2117936A Expired DE2117936C3 (de) 1970-04-16 1971-04-14 Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems

Country Status (6)

Country Link
US (1) US3656123A (de)
JP (2) JPS465165A (de)
CA (1) CA935934A (de)
DE (1) DE2117936C3 (de)
FR (1) FR2086169B1 (de)
GB (1) GB1274830A (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3809884A (en) * 1972-11-15 1974-05-07 Honeywell Inf Systems Apparatus and method for a variable memory cycle in a data processing unit
US3800293A (en) * 1972-12-26 1974-03-26 Ibm Microprogram control subsystem
JPS49116932A (de) * 1973-03-09 1974-11-08
JPS49116931A (de) * 1973-03-09 1974-11-08
JPS5078237A (de) * 1973-11-09 1975-06-26
US3972024A (en) * 1974-03-27 1976-07-27 Burroughs Corporation Programmable microprocessor
FR2269150B1 (de) * 1974-04-25 1977-10-28 Honeywell Bull Soc Ind
US3958227A (en) * 1974-09-24 1976-05-18 International Business Machines Corporation Control store system with flexible control word selection
US4050096A (en) * 1974-10-30 1977-09-20 Motorola, Inc. Pulse expanding system for microprocessor systems with slow memory
US3961313A (en) * 1974-12-04 1976-06-01 International Business Machines Corporation Computer control apparatus
US4024508A (en) * 1975-06-19 1977-05-17 Honeywell Information Systems, Inc. Database instruction find serial
US4042912A (en) * 1975-06-19 1977-08-16 Honeywell Information Systems Inc. Database set condition test instruction
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
IT1044750B (it) * 1975-10-31 1980-04-21 Sits Soc It Telecom Siemens Unita centrale di comando di una pluralita di unita periferiche secondo il principio della divisione di tempo in cui la durata di ogni canale temporale e variabile
JPS6038740B2 (ja) * 1976-04-19 1985-09-03 株式会社東芝 デ−タ処理装置
US4153941A (en) * 1976-11-11 1979-05-08 Kearney & Trecker Corporation Timing circuit and method for controlling the operation of cyclical devices
US4172281A (en) * 1977-08-30 1979-10-23 Hewlett-Packard Company Microprogrammable control processor for a minicomputer or the like
JPS5440537A (en) * 1977-09-07 1979-03-30 Hitachi Ltd Pipeline control system
US4446533A (en) * 1978-09-07 1984-05-01 National Research Development Corporation Stored program digital data processor
DE2853523C2 (de) * 1978-12-12 1981-10-01 Ibm Deutschland Gmbh, 7000 Stuttgart Dezentrale Erzeugung von Taktsteuersignalen
US4201980A (en) * 1978-12-26 1980-05-06 Honeywell Information Systems Inc. GCR Data write control apparatus
US4482983A (en) * 1980-06-23 1984-11-13 Sperry Corporation Variable speed cycle time for synchronous machines
DE3036926C2 (de) * 1980-09-30 1984-07-26 Siemens AG, 1000 Berlin und 8000 München Verfahren und Anordnung zur Steuerung des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung
JPS58182758A (ja) * 1982-04-20 1983-10-25 Toshiba Corp 演算制御装置
JPS59739A (ja) * 1982-06-28 1984-01-05 Fujitsu Ltd マイクロプログラム処理装置における時間保障方式
JPS6085268U (ja) * 1983-11-19 1985-06-12 鄭 瑛豪 自動車の制動装置
US4635187A (en) * 1983-12-19 1987-01-06 At&T Bell Laboratories Control for a multiprocessing system program process
US4636656A (en) * 1984-05-21 1987-01-13 Motorola, Inc. Circuit for selectively extending a cycle of a clock signal
US4670837A (en) * 1984-06-25 1987-06-02 American Telephone And Telegraph Company Electrical system having variable-frequency clock
US5053127A (en) * 1987-01-13 1991-10-01 William F. McLaughlin Continuous centrifugation system and method for directly deriving intermediate density material from a suspension
US5151986A (en) * 1987-08-27 1992-09-29 Motorola, Inc. Microcomputer with on-board chip selects and programmable bus stretching
US5428754A (en) * 1988-03-23 1995-06-27 3Dlabs Ltd Computer system with clock shared between processors executing separate instruction streams
US5032982A (en) * 1988-05-18 1991-07-16 Zilog, Inc. Device for timing interrupt acknowledge cycles
US5237676A (en) * 1989-01-13 1993-08-17 International Business Machines Corp. High speed data transfer system which adjusts data transfer speed in response to indicated transfer speed capability of connected device
US5109490A (en) * 1989-01-13 1992-04-28 International Business Machines Corporation Data transfer using bus address lines
WO1993019416A1 (en) * 1992-03-25 1993-09-30 Zilog, Inc. Fast instruction decoding in a pipeline processor
US5841670A (en) * 1994-03-09 1998-11-24 Texas Instruments Incorporated Emulation devices, systems and methods with distributed control of clock domains
US5649174A (en) * 1994-12-09 1997-07-15 Vlsi Technology Inc. Microprocessor with instruction-cycle versus clock-frequency mode selection
JP2717954B2 (ja) * 1995-11-13 1998-02-25 廣延 大谷 自動車の制動構造及びこの構造を用いた自動車
US6065131A (en) * 1997-11-26 2000-05-16 International Business Machines Corporation Multi-speed DSP kernel and clock mechanism
US6314471B1 (en) * 1998-11-13 2001-11-06 Cray Inc. Techniques for an interrupt free operating system
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
WO2006116046A2 (en) * 2005-04-22 2006-11-02 Altrix Logic, Inc. Asynchronous processor
US7937568B2 (en) * 2007-07-11 2011-05-03 International Business Machines Corporation Adaptive execution cycle control method for enhanced instruction throughput
US7779237B2 (en) * 2007-07-11 2010-08-17 International Business Machines Corporation Adaptive execution frequency control method for enhanced instruction throughput
TW200919306A (en) * 2007-07-11 2009-05-01 Ibm Adaptive execution frequency control method for enhanced instruction throughput

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3248708A (en) * 1962-01-22 1966-04-26 Ibm Memory organization for fast read storage
US3569939A (en) * 1963-12-31 1971-03-09 Bell Telephone Labor Inc Program controlled data processing system
US3426328A (en) * 1965-01-18 1969-02-04 Ncr Co Electronic data processing system
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3573743A (en) * 1968-09-30 1971-04-06 Sperry Rand Corp Programmable timing controls for magnetic memories

Also Published As

Publication number Publication date
JPS5729740B1 (de) 1982-06-24
GB1274830A (en) 1972-05-17
DE2117936B2 (de) 1978-12-14
CA935934A (en) 1973-10-23
DE2117936C3 (de) 1979-08-16
FR2086169A1 (de) 1971-12-31
JPS465165A (de) 1971-11-25
US3656123A (en) 1972-04-11
FR2086169B1 (de) 1973-06-08

Similar Documents

Publication Publication Date Title
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2755273C2 (de)
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3724317C2 (de)
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE2515696C2 (de) Datenverarbeitungssystem
DE2716369C2 (de)
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE2837872A1 (de) Digitalrechner mit ueberlappender betriebsweise unter verwendung einer bedingten steuerung zur minimierung von zeitverlusten
DE2630323A1 (de) Datenspeichereinrichtung
DE2416609A1 (de) Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzung
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
EP0134831A1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE2926351A1 (de) Look-ahead-speicheradressen- steuereinrichtung
DE1922304A1 (de) Datenspeichersteuergeraet
DE3814875A1 (de) Logische verknuepfungseinrichtung und logisches verknuepfungsverfahren
DE2906685C2 (de)
DE19628039B4 (de) Speicheradressen-Steuerschaltung
DE2245284A1 (de) Datenverarbeitungsanlage
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE2106731A1 (de) Diagnoseeinrichtung fur elektronische Datenverarbeitungsanlagen

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee