DE2117936C3 - Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems - Google Patents

Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems

Info

Publication number
DE2117936C3
DE2117936C3 DE2117936A DE2117936A DE2117936C3 DE 2117936 C3 DE2117936 C3 DE 2117936C3 DE 2117936 A DE2117936 A DE 2117936A DE 2117936 A DE2117936 A DE 2117936A DE 2117936 C3 DE2117936 C3 DE 2117936C3
Authority
DE
Germany
Prior art keywords
register
bits
microinstruction
byte
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2117936A
Other languages
English (en)
Other versions
DE2117936B2 (de
DE2117936A1 (de
Inventor
Richard Joseph Endwell Carnevale
Leland Delmar Owego Howe Jun.
Thomas Arthur Metz
Karl Kay Womack
Frank Anthony Johnson City Zurla
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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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

Die Erfindung betrifft eine mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems mit einem Taktgenerator und einem Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist als die Verarbeitungszeit arithmetischer und logischer Schaltungen.
Bei auf die Maschinenausrüstung (Hardware) orientierten Datenverarbeitungsanlagen ist es allgemein bekannt, die Operation der Maschinenteile so zu steuern, daß die zur Ausführung einer Programminstruktion erforderliche Zeit für jede Instruktion auf einem Minimum gehalten wird. Bei mikroprogrammierten Maschinen wurde es allgemein üblich, alternativ dazu eine Basis-Zykluszeit für die Ausführung aller Mikroinstruktionen oder ein Vielfaches dieser Zeit für die Ausführung der Mikroinstruktionen vorzusehen, die in der einem Zyklus zugeordneten Zeit nicht ausgeführt werden können.
Bei einer mikroprogrammgesteuerten Zentraleinheit eines elektronischen Datenverarbeitungssystems mit einem schnellen Steuerspeicher, der das Steuerprogramm enthält und deren Arbeitszyklus kürzer als die Ausführungszeiten der logischen Schaltungen des Systems ist, tritt der Fail ein, daß die Speicheroperationen auf die Operationen der arithmetischen und logischen Schaltungen warten müssen. Da aber nicht alle Steueroperationen (durch Mikroinstruktionen gesteuerte MikroOperationen) gleich lange Taktimpulsreihen für ihr° Ausführung benötigen, geht vor allem dann wertvolle Verarbeitungszeit verloren, wenn die Taktimpulsreihen fester Zykluslänge des Taktgenerators starr auf die längste Mikroinstruktion zugeschnitten sind.
Die Aufgabe der vorliegenden Erfindung ist es daher, eine Einrichtung anzugeben, die bei nur geringen Mehrkosten eine Verbesserung der Operationsgeschwindigkeit erreicht.
Diese Aufgabe wird durch die im Ilauptanspruch gekennzeichnete Erfindung gelöst.
Vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen zu entnehmen.
Der mit der Erfindung erzielbare Vorteil besteht im wesentlichen in einer Erhöhung der Leistung einer Zentraleinheit eines elektronischen Datenverarbeitungssystems, wobei die vorgeschlagenen Maßnahmen nur einen sehr geringen technischen Mehraufwand erfordern.
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnungen näher beschrieben Es zeigt
F i g. 1 ein Schaubild der verbesserten Hochgeschwindigkeits-Datenverarbeitungsanlage und ihren grundlegenden Datenfluß,
F i g. 2A einen Lageplan der F i g. 2A bis 21,
F i g. 2A bis 21 detaillierte Schaubilder der in F g. 1 gezeigten Anlage,
F i g. 3 ein Schaubild eines Aiisführungsbeispiels eines Taktgenerators mit Taktimpulsreihen veränderlicher Zykluslänge mit den zugehörigen Eingangs- und
Ausgangsansch lüssen,
F i g. 4 ein Zeitdiagramm der möglichen Taktimpulsreihen,
F i g. 5 ein Schaltbild der Steuerschaltungen für die verschiedenen Taktimpulsreihen mit vorgewählter Zykluszeit und
Fig.6 bis 15 die Ausführung verschiedener als Beispiel gewählter Mikroinstruktionen und die zugehörigen Zeitdiagramme für die Operationen.
Im Ausführungsbeispiel stellt eine Decodierschaltung nach Übertragung einer jeden Mikroinstri'ktion vom Steuerspeicher in ein Steuerregister durch Untersuchung die Art der auszuführenden Mikroinstruktion fest. Abhängig von dieser Instruktionsart gibt die Decodierschaltung Steuerimpulse auf den Taktgenerator der Verarbeitungseinheit, so daß dieser eine von den drei verfügbaren Taktimpulsreihen (Basis-Taktimpulsreihe) ZykJuslängen von 180, 225 und 270 ns oder eine Kombination von zwei dieser drei Taktimpulsreihen auswählt Dadurch wird jede Mikroinstruktion so schnell wie möglich ausgeführt und die Systemleistung wesentlich verbessert Im Ausführungsbeispiel werden bei jedem Zugriff zum Steuerspeicher zwei Mikroinstruktionen aus dem Steuerspeicher gelesen und auf den Datenpfad zum Steuerregister gegeben. Da nur eine dieser beiden Mikroinstruktionen zu benutzen ist, kann dieser Übertragungsweg für spätes Verzweigen benutzt werden, d. h., die in das Steuerregister zu lesende Mikroinstruktion braucht erst unmittelbar vor dessen Verfügbarkeit am Eingang des Steuerregisters bestimmt zu werden. Dieser Zeitpunkt liegt wesentlich hinter dem Zugriff und Lesen der Doppelinstruktion aus dem Steuerspeicher. Die Auswahl einer der beiden Mikroinstruktionen zur Ausführung kann in vielen Fällen somit bis zu einem späteren Zeitpunkt im Zyklus der Taktimpulsreihe verzögert werden, wodurch die Verarbeitungszeit durch Verwendung einer Taktimpulsreihe mit etwas längerem Zyklus (225 ns) anstelle von zwei kürzeren Zyklen (180 ns) verkürzt werden kann. Durch festgelegte Mikroinstruktionsbits oder Staiusregisterbits bestimmte Verzweigungen können in der kürzeren Zykluszeit (180 ns) ausgeführt werden.
Im Ausführungsbeispiel ist eine Halbwort-ALty vorgesehen, die die Ausführung einer Rechen- oder Verknüpfungsoperation eines binären Haibwortes mit der kürzesten Taktimpulsreihe gestattet. Relativ geringfügige /\LL/-Ergänzungsschaltungen veranlassen die Verarbeitung des !--.weiten Halbwortes durch die ALU während der Vollwortoperation durch Erweiterung der Taktimpulsreihe (180 für die Halbwort-Rechenoperation) auf 225 ns für eine Vollwortoperation. Dadurch wird die Leistung zwar etwas herabgesetzt, die Bauteilkosten der ALU jedoch wesentlich reduziert.
In einem anderen Ausführungsbeispiel der Erfindung werden die Daten während der Ausführung einer Mikroinstruktion vom Hauptspeicher auf einen Arbeitsspeicher zur Verarbeitung während einer nachfolgenden Ausführung einer Mikroinstruktion übertragen. Nach Verarbeitung der Daten werden sie in den Arbeitsspeicher zurückgesetzt, bevor sie in den Hauptspeicher übertragen werden. Die zur Übertragung der Daten zwischen Arbeits- und Hauptspeicher benutzten Speichcrzyklen erfordern wesentlich längere Penoden, als sie in den Basis-Taktimpuisreihen zur Verfugung stehen. Infolgedessen wird eine Taklimpulsreihe mit einem Zyklus von 225 ns und einem von 270 ns oder zwei mit Zyklen von 270 ns zur Ausführung der Mikroinstruktionen miteinander verbunden.
Beschreibung des Ausführungsbeispiels
Das in den Zeichnungen dargestellte Ausführungsbeispiel des Systems stellt eine Verbesserung gegenüber dem im US-Patent 34 00 371 beschriebenen System dar und umfaßt Mikroprogrammroutinen für die Steuerung von Makroinstruktionen der im o. a. Patent beschriebenen Art
Vor der Beschreibung des Ausführungsbeispiels
ίο werden bestimmte, nachfolgend zu verwendende Ausdrücke definiert Daten sind auf Wortbasis angeordnet jedes Wort umfaßt 4 Bytes. Jedes Byte besteht aus acht binären Datenbits und einem Paritätsprüfbit. In einigen Fällen werden Daten adressiert und übertragen in Doppelwortbreite, die manchmal als gerade oder ungerade Wörter eines Doppelwortes bezeichnet werden. Im Haupt- und Steuerspeicher sind Daten und Mikroinstruktionen in Gruppen von 60 Viererwörtern angeordnet, die als Moduln bezeichnet werden.
F i g. 1 zeigt schematisch ein Ausführungsbeispiel des Systems, in welchem die Verbesserung der vorliegenden Anmeldung benutzt werden kann. Das System enthält einen Hochgeschwindigkeitsspeicher 1, der einen Steuerspeicher \A und einen Hauptspeicher Iß umfaßt.
Mikroinstruktionen sind im Steuerspeicher \A gespeichert, während Daten und Programminstruktionen im Hauptspeicher lßgespeichert sind.
Mikroinstruktionen werden der Reihe nach von der Einheit 1 auf ein C-Register 2 über eine Speicherdaten-
JO Ausgangsleitung SDBO mit einer Breite von zwei Wörtern übertragen. Mikroinstruktionen. Daten und Programminstruktionen in der Einheit 1 werden über ein Adreßregister 3 adressiert. Verzweigungsschaltungen 4 ändern bei Bedarf die normale Reihenfolge, in
i'i welcher die Mikroinstruktionen ausgeführt werden.
Um im Hauptspeicherteil der Einheit 1 gespeicherte Daten bearbeiten zu können, müssen sie auf den /4-Arbeitsspeicher LS5 oder den ß-Arbeitsspeicher 6 oder auf externe Register 7 übertragen werden. Die
4(i Datenübertragung von der Einheit 1 zu den Arbeitsspeichern oder den externen Registern erfolgt über die SDBO, die SDßO-Vorassemblierer- Riegel 10, den Assemblierer 11 und über Wort-, Halbwort- und Byte-Wahlschaltungen 12. Die jeweilige Stelle in den
4:> Arbeitsspeichern oder den externen Registern, in welche die Daten zu übertragen sind, wird durch eine diesen Speichern und Registern zugeordnete Adreß-Decodierschaltung 13 bestimmt, welche ausgewählte Bits in jeder Mikroinstruktion auf der SDBO und
"in bestimmte Bits in den P- und Ζ,-Bytes eines externen Sonderregisters (SPTL)TA decodiert.
Daten werden in einer Rechen- und Verknüpfungseinheit ALU20 verarbeitet, die Daten von den Arbeitsspeichern 5 und 6 über das Λ-Register 21 bzw.
v> ß-Register 22 und den A-Assemblierer 23 bzw. den ß-Assemblierer 24 empfängt, Durch die ALU20 zu verarbeitende Daten, die in den externen Registern stehen, werden auf die ALWX) über einen externen Assemblierer 25 und entweder über das ^-Register 21
'■■· und den A-Assemblierer 22 oder über das ß-Register 22 und den Assemblierer 24 übertragen. Um die Daten auf dem zuletzt erwähnten Wege zu übertragen, muß eine Leitung 26 den Ausgang des Λ-Register^ mit dem Eingang des ß-Registers 22 verbinden. Ausgewählte binäre Konstantwerte werde" ·η die a^L·'20 über einen K-Assemblierer 27 eingegeben.
Von der ALU2Q veidibeitete U.u~r. werden auf ausgewählte entsprecht!,ul üielien in den Arbeitsspei-
ehern 5 oder 6 oder auf ein externes Register 7 über ein Z-Register 30, ein D-Register 31 und den Assemblierer 11 zurückübertragen. Die Auswahl des Bestimmungsortes für die verarbeiteten Daten erfolgt wieder durch die Adieß-Dccodierschaltungen 13. Verarbeitete Daten werdo- Jana in den Iiuuptspeichertei! der SpeidiCiciiiheit 1 über das A-Register 21, den A-Assemblierer 23 und eine Speicher-Datenausgangsleitung SDBl zurückgesetzt. Während der Datenübertragung zwischen der Speichereinheit 1 und einem der Arbeitsspeicher 5 und 6 oder der externen Register 7 wird die Spcicherstelle der Einheit 1 gewählt über eine erzwungene Adresse oder eine von den Arbeitsspeichern 5 oder 6 abgeleitete Adresse und über das ß-Register 22 auf das Adreßregister 3 übertragen.
In dem als Ausführungsbeispiel in Fig. 1 gezeigten System stellen die beiden Arbeitsspeicher 5 und 6 Spiegelbilder voneinander dar, d. h. jedesmal, wenn Daten in eine gewählte Stelle im Λ-Arbeitsspeicher 5 übertragen werden, werden dieselben Daten in eine entsprechende Stelle des ß-Arbeitsspeichers 6 übertragen. Daher sind die in jedem der Arbeitsspeicher 5 und 6 enthaltenen Daten jederzeit identisch. Wenn jedoch Daten aus einem dieser beiden Speicher gelesen werden, werden die Datenpositionen einzeln adressiert, d. h. eine Position im /4-Arbeitsspeicher 5 wird während eines früheren Teiles eines Mikroinstruktionszyklus als Α-Datenquelle adressiert und gleichzeitig wird eine vollkommen andere Position im ß-Arbeitsspeicher 6 als eine ß-Datenquelle adressiert. Auf diese Weise werden zwei Arbeitsspeicherstellen (oder eine Arbeitsspeicherstelle und ein externes Register) gleichzeitig als Datenquellen adressiert, um die Arbeitsweise des Systems zu beschleunigen.
Der Takt oder die Zeiteinteilung des Systems wird durch mehrere im wesentlichen identische Taktgeneratoren 35 (d. h. 35-1 bis 35-n) und einen Hauptoszillator 36 gesteuert. Die Ausgangsimpulse des Hauptoszillators 36 werden kontinuierlich an die Eingänge der Taktgeneratoren 35 angelegt. Eine eine Takt-Zykluslängensteuerungs-Decodierschaltung enthaltende und zum Steuerregister C2 gehörende Einrichtung leitet jedoch die Oszillator-Ausgangsimpulse wahlweise auf die verschiedenen Taktgeneratoren 35, entsprechend der gerade ausgeführten Mikroinstruktion. Abhängig von der Art der ausgeführten Mikroinstruktion wird die Zykluslänge der Taktimpulsreihen der Taktgeneratoren während der Ausführung dieser Mikroir struktion eingestellt.
Im Ausführungsbeispiel ist für jede Schaltkarte ein Taktgenerator vorgesehen und umfaßt eine regelbare Verzögerungseinrichtung zwischen Taktgeneratoreingang und Oszillatorausgang zur Synchronisation aller Taktsignale des Oszillators.
Die Verarbeitungseinheit wird von Hand über die Konsolschalter 37 eingestellt, deren Ausgänge mit dem Steuerregister 2 und den Adreß-Decodierschaltungen 13 über einen Assemblierer 38 verbunden sind. Daten können in die Verarbeitungseinheit von den Schaltungen 37 über einen Assemblierer 39 und einen externen Assemblierer 25 eingegeben werden.
In der Speichereinheit 1 des Ausführungsbeispieles bestehen die einzelnen Speicherpositionen aus monolithisch hergestellten Transistor-Speicherzellen, in denen je ein Datenbit gespeichert werden kann. Der Transistorspeicher kann nichtdestruktiv ausgelesen werden, so daß sein Steuerspeicherteil beschrieben werden kann, &h, die Mikroinstruktionen können wahlweise in den Steuerspeichertei! der Speichcrcinhci 1 eingegeben und zu jeder Zeit dadurch verander werden, daß ein neuer Satz von Mikroinstruktionen ir den Sieuerspeicherteil geladen wird.
ο Im Ausführungsbeispiel wird der S'.euerspeirher übe eine Konsolendatei 40 geladen, die übe eine Magnet platteneinheit und die zugehörigen Steuerungen ver fügt. Abhängig von den jeweiligen Anforderungen de Benutzers wird ein ausgewähltes optimales Steuerspei
:·. che.'-Niikroprogramm von der Konsolendatei 40 au den Stcuerteil des Speichers 1 über den Assemblierer 39 den externen Assemblierer 25 und die normalei Datc.'iwege der Verarbeitungseinheit übertragen. Di< Konsolendatei 40 speichert außerdem geeignet Korn mandos. die nach Decodierung in der Einheit 40 auf da: Steuerregister 2 und die Adreß-Decodierschaltung I; über den Assemblierer 38 gegeben werden, um sowoh das Laden des Steuerteiles der Speichereinheit 1 zi steuern als auch die Fehlersuche der Verarbeitungsein
2ü heit zu gestatten.
Das in F i g. 1 gezeigte Ausführungsbeispie! enthäl auch Bestimmungs-Voraussjhau-Schaltungen 41. Dies( Schaltungen sollen in den Fällen die Daten direkt von Z-Register 30 auf das A -Register 21 und das ß-Registe 22 über den Datenweg 42 übertragen, in welchen ein« Datenquelle in den Arbeitsspeichern 5 oder 6 auch de Bestimmungsort für Daten in dem vorhergehendei Zyklus ist. Bekanntlich werden ja im Ausführungsbei spiel während der Ausführung einer Mikroinstruktior
3d verarbeitete Daten für die ausgewählte Position in dei Arbeitsspeichern 5 und 6 oder den externen Registern ', erst spät bei der Ausführung der nächstfolgender Mikroinstruktion bestimmt Da die Daten in der Arbeitsspeichern 5 und 6 und den externen Registern ',
η erst bei der Ausführung der nächstfolgenden Mikroin struktion fortgeschrieben werden, kann der fortge schriebene Teil einer Stelle während der Ausführung der nächsten Mikroinstruktion nicht als Quelle adres siert werden. In bezug auf die Positionen im A-Speichei
j» 5 und im S-Speicher 6 erfolgt somit die direkte Übertragung der fortgeschriebenen Daten über dei Datenweg 42, welcher den Ausgang des Z-Registers 3( mit dem Λ-Register 21 und dem S-Register 2; verbindet. Im Ausführungsbeispiel ist diese Bestim
•n mungs-Vorausschau-Einrichtung für die externen Regi ster 7 nicht vorgesehen, ausgenommen davon ist jedocl das SPTL-Register 7Λ, dessen Ausgang ebenfalls direk mit den A- und ß-Registern 21 und 22 über den Weg 4; verbunden ist. Mit Ausnahme des Registers TA, welche:
Ι» während der Ausführung einer Mikroinstniktion fortge schrieben wird, kann daher kein externes Register eine Datenquelle für die nächstfolgende Mikroinstruktioi sein.
Es folgt eine genaue Beschreibung der F i g. 2A bis 21 die nach dem Plan in F i g. 2 zusammenzulegen sind.
Die Speichereinheit 1 ist genauer in Fig.21 gezeig und umfaßt gerade und ungerade Steuerspeicherab schnitte 100 und 101 sowie Daten- oder Hauptspeicher abschnitte 102 und 103. Wie bereite gesagt, werdei
h" Steuerspeicher und Hauptspeicher während der Lese zyklen in Breite eines Doppelwortes adressiert, unc diese Doppel Wörter werden dann auf die Leitung SDBC gegeben. LJm ein Oberschneiden zwischen geraden unc ungeraden Wörtern des Doppelwortes zu verhindern
""< liegen Paare von geraden und ungeraden Wörtern ai den einander gegenüberliegenden Seiten und ir gleichem Abstand von den Datenausgangsschaltungei 104. Der Steuerspeicher ist unmittelbar neben dei
Dalenausgangsschaltungen 104 und dem Hauptspeicher 102 und 103 in größer,- Entfernung \un diesen Schaltungen dargestellt.
Dadurch wird eine minimale Verzögerung bei der Übertragung von MikroinstrrM. Jonen von den Speicherabschnif ten JOO und 101 in das Steuerregister 2 der Fig.2F und die Adreßdecodierschaltungen der F i g. 2A und 2B sichergestellt. Die während der Speicherzyklen über die Eingangsleitung SDBl auf die Speichereinheit 1 übertragenen Daten weiden auf Wortbasis eingegeben. Es gibt daher keine kritische Lage für die Anordnung der Dateneingabeschaltungen 105 sowie die Lage von Haupt- und Steuerspeicherstellen, an welche die SDfl/-Leitung angeschlossen ist. Die Speichereinheit I umfaßt außerdem eine Einzelbit-Feh- ^korrekturschaltung und eine asymmetrische Doppel bit-Fehlerkorrekturschaltung 106 bekannter Bauart. Da diese Schaltungen nicht näher mit der Erfindung zu tun haben und allgemein bekannt sind, werden sie nicht weiter beschrieben.
Das Adreßregister 3 ist genauer in Fig.2E gezeigt und umfaßt das Af 1-Register 110, A/ 2-Register 111 und das Λ/3-Register HZ Die Ausgänge dieser Register sind mit den Eingangstreiberschaltungen DA 113, 114 und 115 der Speichereinheit 1 über die Leitungen 116, 117 und 118 verbunden. Zum Register 111 gehört ein N 2-Rückgriffregister 119 und zum Register 112 ein N3-Rückgriffregister 120. Die Adressen zur Adressierung von Daten aus den Hauptspeicherabschnitten 102 und 103 oder von Mikroinstruktionen aus den Steuerspeicherabschnitten 100 und 101 werden in die Register AfI, A/2 und A/3 gesetzt Im Ausführungsbeispiel stellt das A/3-Register den untersten Teil der Adreß-Registerschaltungen 3 dar und umfaßt acht Bits (ein Byte) zum Adressieren eines von 64 Wörtern in jedem Modul. Das A/2-Register ist eine Byte groß und das M 1-Register enthält vier Bits zur Adressierung verschiedener Moduln. Das wertniedere Bit 7 des Λ/3-Registers bestimmt die Bytewahl. Bit 6 von A/3 bestimmt die Halbwortwahl und Bit 5 die Wortwahl. Die Bits 0 bis 5 des A/3-Registers gestatten die Wahl eines von 64 Wörtern, d h. eines Moduls. Die acht Bits von A/2 gestatten die Wahl zwischen 256 Moduln oder ungefähr 16 000 Wörtern. Die vier Bits von A/l liefern 16 Kombinationen, wodurch eine Gesamtzahl von 256 ^-Wörtern durch die Register A/l, A/2 und A/3 adressiert werden kann.
Im Ausführungsbeispiel kann der Steuerspeicher la maximal 16 K-Wörter enthalten, wodurch die vom Mikroprogramm gelieferten Mikroinstruktionsadressen eine Lieferung von maximal nur 16 Bit A/2 erfordern.
Zugriffe zum Haupt- und zum Steuerspeicher erfolgen immer auf Doppelwortbasis. Im Hauptspeicher können Daten jedoch auch auf Byte-, Halbwort- oder Voll wortbasis gespeichert werden. Die durch die gerade ausgeführte Mikroinstruktion angegebene jeweilige Operation bestimmt, ob ein Wort, ein Halbwort oder ein Byte zu speichern ist
Die meisten Mikroinstruktions-Operationen veranlassen nur eine Veränderung des A/3-Registers. In einer Routine nachfolgende Mikroinstruktionen werden soweit wie möglich innerhalb desselben Moduls gehalten, wodurch die Register AfI und A/l für eine Reihe von Mikrooperationen auf demselben Wert gehalten werden können. Vierweg-Verzweigungsoperationen wer- den durch das Setzen der Bits 4 und 5 des A/3-Registers angegeben. Gemäß obiger Beschreibung bestimmt Bit 5 von A/3 die Wahl eines geraden oder ungeraden Wortes bei einer Doppelwortlese- oder -speicheroperation, was besonders bei Mikroinstruktionsgriffen nützlich ist. Bei Verzweigungsoperationen gibt Bit 4 das A/3-Register an, welches von zwei aufeinanderfolgenden Doppelwörtern durch die Haupt- und Steuerspeicher adressiert wird.
Die Register N2 und N3 sind als Rückgriff-Register für die Mikroinstruktions-Adressierung vorgesehen. Die Adresse in N 2 sowohl wie in A/2 ist eine Moduladresse. Wie bereits gesagt, kann eine Reihe νο.Ί Mikrooperationen ausgeführt werden durch Adressierung der Wörter von demselben Modul im Steuerspeicher. Die in N 2 gespeicherte Adresse wird nur verändert, wenn durch die gerade ausgeführte Mikroinstruktion eine Änderung der Modu'adresse angegeben wird. Die Register A/2 und Λ/2 werden mit dieser neuen Moduladresse geladen. Die Adresse bleibt dann im N2-Register, bis wieder eine Änderung der Moduladresse angegeben wird. Während jede nachfolgende Mikrcinsirukticn im selben Modul ausgeführt wird, wird die Adresse in Λ/2 nach Mi tür die Adressierung der folgenden Mikroinstruktion übertragen, bis ein neues Modul angefordert wird.
Wenn eine Verzweigung während der Ausführung einer Mikroinstruktion auftritt, wird der Inhalt der A/-Register auf Verzweigungsadresse gesetzt. Die A/-Register bleiben jedoch unverändert, wenn die Verzweigung auftritt, so daß die laufende nächste Mikroinstruktionsadresse aufbewahrt werden kann. Die Verzweigungsroutine speichert den Inhalt der N-Register, so daß die richtige Reihenfolge der Mikroinstruktion wieder aufgenommen werden kann, indem man die Register A/ und N mit der aufbewahrten Adresse neu lädt, wenn die Mikroprogrammroutine durch Beendigung der Verzweigung wieder eingeleitet wird.
Das Λ/02-Register 125 und das A/B3-Register 126 sind als zusätzliche Rückgriff-Register für die Register A/2 und A/3 vorgesehen. Die Register MB 2 und MB 3 werden auf die Mikroinstruktionsadresse gesetzt, die in den Registern A/2 und A/3 steht. Wenn der Taktgenerator der CPU gestoppt wird, enthalten die Register MB 2 und MB 3 Adreßbits der vorher ausgeführten Mikroinstruktion, wogegen die Register A/2 und A/3 die Adresse der als nächstes auszuführenden Mikroinstruktion enthalten. Die Daten in den Registern MB 2 und MB 3 werden bei Fehlerprüfroutinen benutzt
Verzweigungs- und Prioritäts-Steuerschaltungen bekannter Bauart sind bei 127 gezeigt Rückgriffregister 128 in Fig.21 werden in Verbindung mit den Schaltungen 127 bei bestimmten Verzweigungsroutinen benutzt Die Schaltungen 127 in den Registern 128 haben nichts mit der vorliegenden Erfindung zu tun und werden daher nicht näher beschrieben.
Adreßdaten werden in die Register A/1, A/2 und A/3 sowie in die Register N 2 und N 3 über die Assembliererschaltungen 130,131 und 132 eingegeben. Für jedes Adreßbi«. enthalten die Assemblierer 130 bis 132 mehrere UND-Glieder, deren Ausgänge mit einem ODER-Glied verbunden sind In den ODER-Gliedern der Assemblierer 130 bis 132 sind somit die Zahlen 4,8 und 8 eingetragen, um anzudeuten, daß vier Schaltungen 130 und acht Schaltungen 131 und 132 vorhanden sind Die Ausgänge der ODER-Glieder sind mit den entsprechenden Registern AfI, Af 2, A/3 sowie N2 und Λ/3 verbunden. Die Eingänge zum Assemblierer 130 sind eine erste Leitung ACB + 1 und eine Leitung ACB, die von den Adreßgrenzpriifschaltungen 133 abgeleitet
sind und ein Mittel für weiU'.re Zugriffe zum Steuerspeicher 1 und zum Setzen der Grenze zwischen dem Steuerspeicher Xa und dem Hauptspeicher Xb darstellen. Eine weitere Leitung bildet einen dritten Eingang für den Assemblierer 130 und wird in Fällen benutzt, in welchen die auf das Register AfI zu übertragenden Bits ausgewählte numerische Konstanten sind, welche von der ausgeführten Mikroinstruktion abgeleitet werden.
Auf die Register Ail, Af2 und Af 3 werden bekanntlich maximal 20 Bits übertragen, um einen Teil des Hauptspeichers Xb zu adressieren. Während der Ausführung zahlreicher Mikroinstruktionen, in denen Daten zwischen dem Hauptspeicher Xb und einem der Speicher 5 oder 6 oder den externen Registern 7 übertragen werden, wird somit die 20 Bit große, in die Register Af 1, Af 2 und Af 3 zu setzende Adresse von den wertniederen 20 Bits in der Ausgangsleitung 133 des B-Registers 22 in F i g. 2D abgeleitet Diese 20 Bit umfassende Leitung 133 wird an die entsprechenden Eingänge der Assemblierer 130 und 131 sowie 132 angeschlossen.
Ausgewählte Bits des Byte 2 vom Steuerregister C 2 der F i g. 2G werden als Eingänge 143 und 144 zu den Assemblierern 131 und 132 benutzt Eine Eingangsleitung 145 zum Assemblierer 132 koppelt den Assemblierer mit den ausgewählten Ausgangsbits des Byte 3 aus d^m C-Register. Verzweigungsadressen werden in die Assemblierer 131 und 132 von den Verzweigungsschaltungen 127 über die Leitungen 146a und 1466 eingegeben.
Der /!-Arbeitsspeicher 5 und der der ö-Arbeitsspeicher 6 sind in Fig.2b gezeigt und werden über Adressierschaltungen adressiert, die die Adreßdecodierschaltungen 150 und 151 umfassen. Die Schaltungen 150 und 151 bilden zusammen mit einem Decodier- und Bestimmungsadreßregister 152 für externe Register die in F i g. 1 (Bezugszeichen 13) gezeigten Adreßdecodierschaltungen für Arbeitsspeicher und externe Register.
Eine AusgangsadreBleitung 153 von der Decodierschaltung 150 wird dazu benutzt, ausgewählte Wörter in einen Arbeitsspeicher 5 zu setzen. Sie ist außerdem mit dem Adreßbestimmungsregister 154 über ein Λ-Pufferregister 155 verbunden.
Jedesmal, wenn der A-Arbeiisspeicher 5 von einer Quelle durch Decodierung der gewünschten Bits in der Decodierschaltung 150 adressiert wird, wird die Adreßdecodierung in den Puffer 155 übertragen. Falls diese Adresse dieselbe ist wie die Bestimmungsadresse für die von der ALU20 verarbeiteten Daten, wird sie dann vom Puffer 155 auf das Λ-Bestimmungsregister 154 und ein ß-Bestimmungsregister 156 übertragen.
In ähnlicher Weise ist ein ö-Bestimmungspuffer 157 mit der Adrefiausgangsleitung 158 der β-Decodierschaltung 151 verbunden. Wenn die ß-Quelle auch als Bestimmungsort dienen soll, wird die im Puffer 157 gespeicherte Adresse auf die Register 144 und 156 übertragen. Auf diese Weise werden Daten für beide Arbeitsspeicher gleichzeitig bestimmt, wodurch ein Arbeitsspeicher das Spiegelbild des anderen in bezug auf die darin gespeicherten Daten bildet
Adressen zur Adressierung der beiden Arbeitsspeicher 5 und 6 werden teilweise von den P- und L-Registern über die Leitungen 160 und 161 abgeleitet und zum andern Teil von der SDBO-Leitung über eine gerade/ungerade Wortwahlschaltung 162 der F i g. 2a, eine vier Byte große Leitung 163, einen Arbeitsspeicher-Adreßassemblierer 164 und eine zwei Byte große Leitung 165, die die Bytes 1 und 2 (nachfolgend mit CX und C 2 bezeichnet) der durch die Schaltung 162 gewählten Mikroinstruktion überträgt In ähnlicher Weise werden die Bytes CX und C2 zur Adressierung '. der Arbeitsspeichereinheit abgeleitet von der Konsolendatei 40 der F i g. 2a, einer Selektorkanal-Steuereinheit (nicht dargestellt), den Schaltern 37 auf der Bedienungskonsole und Verriegelungen 166 der F i g. 2c, jedesmal über den Assemblierer 38 der F i g. 2a
ίο und eine Leitung 167, die mit dem anderen Eingang des Assemblierers 164 verbunden ist Ein zusätzlicher Adreßbiteingang zum ß-Arbeitsspeicher-Decodierkreis 151 wird über eine Leitung 170 von der Konsolendatei 40 abgeleitet. Eine von der Prioritätssteuerschaltung 127 der F i g. 2i abgeleitete Leitung 171 ist mit dem Eingang der A-Decodierschaliung 150 und der "-Decodierscha!- tung 151 verbunden. Die Bits 0 bis 5 des Af 3-Adreßregisters werden auf den Eingang der Λ-Decodierschaltung 150 über eine Leitung 172 geleitet
Wenn die beiden Arbeitsspeicher 5 und 6 adressiert werden, um ihnen eine Information zuzuordnen, werden die Adressen in den Bestimmungsadreßregistern 154 und 156 über die Leitungen 173 bzw. 174 auf die Eingänge der Decodierschaltungen 150 und 151 geleitet Die Bestimmungs-Vorausschauschaltungen 41 sind in F i g. 2b gezeigt und umfassen einen ß-Decodierteil 175 und einen Λ-Decodierteil 176. Die Ausgangsleitungen 177 und 178 von den beiden Decodierschaltungen 175 und 176 werden an die Eingänge der beiden Vergleicherschaltungen 180 und 181 gelegt Die Ausgangsleitungen 174 und 173 der Bestimmungsregister 156 und 154 werden ebenfalls an die Vergleicherschaltungen 180 und 181 angeschlossen. Falls eine dieser beiden Vergleicherschaltungen ein gleiches Vergleichs ergebnis zwischen seinen Eingängen feststellt wenn der entsprechende Arbeitsspeicher als Quelle im ersten Teil einer Mikroinstruktionsausführung adressiert wird, so besagt dieser gleiche Vergleich, daß die Quelle nicht fortgeschrieben worden ist, da es sich um die Bestimmungsadresse von der vorher ausgeführten Mikroinstruktion handelt Ein gleiches Vergleichsergebnis in der Schaltung 180 liefert einen Impuls auf die Ausgangsleitung 182, wodurch der Teil der Mikroinstruktion, der nicht fortgeschrieben wurde und noch im
■»5 Z-Register steht, direkt auf das «-Register 22 (F i g. 2d) über das Kabel 42 geleitet wird, welches den Ausgang des Z-Registers direkt mit dem Eingang des B-Registers 22 über die Assemblierer 190 und 191 (Fig.2d) verbindet
Ein gleiches Vergleichsergebnis in der Schaltung 181 liefert einen Impuls auf die Leitung 183, wodurch der Teil der gewünschten Mikroinstruktion, der nicht fortgeschrieben wurde und noch im Z-Register steht, auf das in F i g. 2c gezeigte A -Register 21 über das Kabel 42 und den in Fig.2c gezeigten Assemblierer 192 übertragen wird.
Wie bereits im Zusammenhang mit F i g. 1 gesagt wurde, werden Daten in die beiden Arbeitsspeicher 5 und 6 der F i g. 2b über den SDöO-Assemblierer 11 der F i g. 2F und die vier Byte große Leitung 193 übertragen. Der FDßO-Assemblierer 11 leitet seinen Eingang andererseits vom D-Register 31 der Fig.2g über ein Kabel 194 oder vom SDßO-Vorassembliererriegel 10 über die Wort-, Halbwort- und Byte-Wahlschaltungen 12derFig.2Fab.
Ausgangsdaten vom «-Arbeitsspeicher 6 der F i g. 2b werden auf das «-Register 22 über das Kabel 200 und den Assemblierer 191 geleitet Die Ausgangsdaten vom
Λ-Arbeitsspeicfier 5 werden auf das /!-Register 2t der F i g. 2c über ein Kabel 2Oi und dem Assemblierer 192 geleitel.
Der Ausgang des Λ-Registers 21 (F i g. 2C) wird, wie bereits gesagt, über das Kabel 26 auf die Torschaitungen
191 (F i g. 2d) und in das 8 Register 220 geleitet. Das Kabel 26 koppelt außerdem die Bytes O1 2 und 3 des /4-Registers 21 auf das Byte 0 des Assemblierers 23. die Bytes 0, 1 und 3 des 4-Registers 21 auf Byte des Assemblierers 23 und alle vier Bytes des .4-iiegisters 21 auf die Bytes 2 und 3 des Assemblierers 23.
Die ALUM ist zwei Bytes breit und wird daher entsprechend Byte 2 und Byte 3 in die Abschnitte ALU2 und ALU3 unterteilt (F i g. 2g, 2h).
Byte 3 des Assemblierers 23 wird auf die Verzweigungsschaliungen 4 (Fig./d) über ein Kabel 210 gekoppelt. Die Bytes 0 bis 4 des Assemblierers 23 werden auf die I-eitung SDBI über mehrere Treiberschaltungen 211 und ein vier Byte großes Kabel 2!2 geleitet. Die Bytes 2 und 3 des Assemblierers 23 sind mit ALU2 und ALU3 über die Kabel 213 und 2J4 und über die Kreuzschaltungen 215,216 verbunden.
Bytes 0 und 1 des ß-Registers 22 sind entsprechend mit den Bytes 0 und 1 des Z-Registers 30 (F i g. 2g) über die Kabel 220 und 221 und die Bytes 0 und 3 einer vier Byte großen Torschaltung 222 in F i g. 2h gekoppelt.
Die Bytes 2 und 3 und die Bits 4 bis 7 des Byte 1 im ß-Register 22 sind über das Kabel 133 mit den M-Registereingangsschaltungen gemäß obiger Beschreibung verbunden. Die Bytes 0 bis 3 des ß-Registers 22 sind außerdem auf die ALU2 und ALU3 der F i g. 2g und 2h gekoppelt über Byte 2 des Assemblierers 24, die Kabel 224 und 225, die Schiebe- und Torschaltungen 226 und 227 sowie über die Echt/Komplementschaitungen 228 und 229.
Byte 1 des B-Registers 22 ist auch mit ALU2 gekoppelt über das Kabel 221, die Torschaltung 230 sowie das UND-Glied 231 und die Schiebe- und Torschaltung 226 sowie die Echt/Komplement-Schaltung 228.
Während der Verschiebeoperationen kann das UND-Glied 232 der Fig.2d dazu verwendet werden, die vier werthohen Bits 0 bis 3 der Byte-3-Schaltung des Assemblierers 24 und die wertniederen Bits 4 bis 7 der Byte-2-Schaltung des Assemblierers 24 mit ALU3 über die Schiebetorschaiiung 227 und die Echt/Komplement-Schaltung 229 zu koppeln. In ähnlicher Weise kann das UND-Glied 231 (Fig.2c) bei Verschiebeoperationen dazu benutzt werden, die vier wertniederen Bits 4 bis 7 des Bytes 1 des ß-Registers 22 und die vier werthohen Bits 0 bis 3 des Bytes 2 des ß-Registers mit ALU2 zu koppeln.
Der Ausgang von ALU3 in der F i g. 2h ist gekoppelt mit jedem der vier Bytes des Z-Registers 30 über die vier Bytes der Torschaltung 222 und ein Kabel 235. Der Ausgang von ALUI ist auf die Bytes 0 und 2 des Z-Registers 30 geiegt über die Bytes 0 und 2 der Torschaltung 222 und ein Kabel 236.
Wie bereits gesagt, ist der Ausgang des Z-Registers direkt mit dem Eingang des D-Registers 31 gemäß Darstellung in F i g. 2g verbunden und über ein Kabel 42 an den Eingang der /4-Registertorschaltung 190 in Fig.2d und den Eingang der Ä-Registertorschaltung
192 in Fig.2c angeschlossen. Die Bytes 0 bis 3 des Z-Registers sind außerdem entsprechend mit den Bytes 5, P, Tund L des SPTL-Registers 7a der F i g. 2h über ein Byte große Kabel 240-0 bis 240-3 verbunden.
Der Ausgang des SPTL-Registers 7a ist über vier Byte große Kabel 43 und die Torschaltungen 190 und 19t mit dem B Register 22 der Fig. 2d verbunden. Das Kabel 43 ist außerderr. über ein ODER-Glied 242 der F! s- -C und ein Kabel 243 sowie die Torschahi'^gen 192 mit dem A-Kcgisier2! verbunden.
Das ODER-Glied 292. Kabel 243 und die Torschaltung 192 verbinden außerdem den Ausgang des exte-nen Assemblierers 25 der Fig. 2b mit dem /4-Register 21 der Fig.2c Die Steuerung des externen
ίο Assemblierers 25 erfolgt durch die Decodier- und Bestimmungsadreßregisterschaitung 152a für externe Register (und ihren Assemblierer i52ö), die an den Eingang des externen Assemblierers 25 über ein Kabel 250 angeschlosser, ist. Die externen Register 7 sind mit ihren Ausgängen an einen Eingang des externen Assemblierers über ein Kabel 251 angeschlossen. Ein anderer Eingang zum externen Assemblierer 25 wird von einem Kabel 252 gebildet, welches von dem Λ/2-Register 190 und dem A/3-Register !20der Fig. 2e kommt.
Die Konsoiendatei 40 und die Schalter 37 (F ι g. 2a) sind an einen anderen Eingang des externen Assemblierers über eine Torschaltung 39 und ein Kabel 253 angeschlossen.
Die Kanalsteuerschaltungen 260 der F i g. 2b sind mit einem anderen Eingang des externen Registers 25 und mit der Verzweigungs- und Prioritätssteuerung 127 (Fig. 2i) über ein Kabel 261a verbunden. Die Schaltungen 260 sind außerdem auf einen Eingang des Assemblierers 38 über einen Kabelabschnitt 261Λ gekoppelt. Die Kanalsteuerschaltungen 260 werden zusammen mit den Eingabe-ZAusgabe-Datenwegschaltungen 262 der F i g. 2b dazu benutzt, die Übertragung von Daten zwischen der in den F i g. 2a bis 2i gezeigten Datenverarbeitungseinheit und peripheren Hochgeschwindigkeitsgeräten wie Magnetplatteneinheiten zu steuern.
Die Schaltungen 262 umfassen ein GR 1-Eingaberegister 265, dessen Eingang an die Dateneingangsleitung Bl
«ο des Kanals ! angeschlossen ist Ein GO 1-Ausgangsregister 266 ist mit seinem Ausgang an eine ßO-Datenausgangsleitung für den Kanal 1 angeschlossen. Ein Schieberegisterpuffer 267, umfassend das Eingangsregister 265. wird dazu benutzt, von der Leitung des Kanals 1 auf den Hauptspeicher 1 oder vom Hauptspeicher 1 auf die Kanal-1-Ausgangsleitung übertragene Daten zu speichern.
Daten werden über die Leitung des Kanals 1 auf Bytebasis empfangen und durch die nachfolgenden Stufen des Puffers 267 so übertragen. Die Daten werden dann auf der Basis von vier Wörtern vom Puffer 267 auf den Speicher 1 über einen Zweirichtungsassemblierer 268, ein Kabel 269, den externen Assemblierer 25, das ODER-Glied 242, das Kabel 243, die Torschaltung 192, das Λ-Register 21, den Λ-Assemblierer 23, Kabel 212, Treiber 211 und die Leitung SDBIübertragen.
Daten werden vom Speicher 1 auf Wortbasis zum Puffer 267 übertragen über die Leitung SDBO, die Torschaltung 162 der Fig.2a, Kabel 163, die Riegel 10 der F i g. 2f, die Selektionsschaltungen 12, den SDBO-Assemblierer 11, die Treiberschaltungen 140 und die externe Leitung EBI. Aus den oben beschriebenen Datenwegen ist zu ersehen, daß der Puffer 267 mit seinen zugehörigen Registern 265 und 266 de facto ein Teil der externen Register 7 ist Diese wurden jedoch wie andere Register, z. B. das Register 5PTL, separat dargestellt, um bestimmte Merkmale des verbesserten Systems klarer zu zeigen.
Für die vorliegende Beschreibung wurde angenommen, daß die Verarbeitungseinheit vier Kanäle für die Datenübertragung zwischen Verarbeitungseinheit und peripheren Geräten zur Verfugung hat. Somii verfügt die Schaltung 260 über vier Abschnitte, je einen für einen Kanal. In ähnlicher Weise enthält die Schaltung 262 vier Puffer und Assemblierer, von denen nur zwei dargestellt sind.
Eine Decodierschaltung 270 (Fig.2f) ist an den Ausgang des Steuerregisters C2 angeschlossen. Jedesmal, wenn eine Mikroinstruktion in das Steuerregister zur Ausführung eingegeben wird, spricht die Decodierschaltung 270 auf die Bitkombination der Mikroinstruktion dadurch an, daß die zur Ausführung des Wortes erforderlichen verschiedenen Tore betätigt werden.
Die Decodierschaltung 270 enthält einen Takt-Zyklus-Längensteuerteil 271, der auf ausgewählte Mikroinstruktionsbits dadurch anspricht, daß die Taktgeneratoren zur Erzeugung von einer Taktimpulsreibe einer ausgewählten Zykluslänge von 180 ns (Nanosekunden), 225 ns oder 270 ns und für bestimmte Mikroinstruktionstypen von zwei Taktimpulsreihen 225 ns + 270 ns oder 270 ns + 270 ns veranlaßt werden.
Durch die im Fehlersuchregister 272 der F i g. 2f und einer Schaltung 273 in der Fig.2i enthaltenen Einrichtungen werden Fehlersuchfunktionen aufgespürt, die mit der vorliegenden Erfindung nichts zu tun haben.
Für bestimmte Arten von erneuten Instruktions-Ausführungsversuchen kann der Inhalt des /4-Registers 21 und des ß-Registers 22 auf die Register 128 (Fig. 2h) über eine Torschaltung 280 (F i g. 2d) und ein Kabel 281 übertragen werden.
Wenn Rechenoperationen in ALU2 und ALU3 ausgeführt werden, werden die Paritätsbits von den Operanden abgezogen, bevor sie in die ALU geleitet werden. Ein Paritätsgenerator 282 addiert das richtige Paritätsbit zum Rechenergebnis. Für binäre und Dezimaloperationen prüft eine Paritäts-Voraussageschaltung (nicht dargestellt) in der ALU das erzeugte Paritätsbit gegen ein vorhergesagtes Paritätsbit zwecks fehlererkennung. Fehler in den Ergebnissen einer Verknüpfungsoperation (die in ALU2 und ALU3 dupliziert wird) werden durch eine Verknüpfungs-Priifsc-liiiltung 283 festgestellt, die die Ergebnisse von ALU2 mit denen von ALU3 vergleicht.
Mine dezimale Korrektur-Steuerschaltung 284 stellt eine richtige Dezimaladdition durch Verwendung eines binären Addierers in der ALUl und der ALU3 sicher. I iieser Vorgang wird nachfolgend genauer beschrieben, so
I line Schaltung 285 (F i g. 2d) überwacht die Eingänge /hi A 1.1/3 auf gültige Dezimalzahlen bei Dezimalopeiiioiien. Im Ausführungsbeispiel sind Dezimaloperatio-■1 11 nur 1-Byte-Operationen.
Wenn Daten vom D-Register 31 (Fig.2g) für die Λ ι beitsspeicher 5 und 6 (F i g. 2b) bestimmt sind, werden sie in die beiden Arbeitsspeicher eingegeben und direkt nicht-destruktiv auf die Leitung 201 und 200 ausgelesen. Km Antivalenzglied 286 (Fig.2c) stellt fest, ob die Daten in beiden Arbeitsspeichern übereinstimmen; eine Überprüfung des Registers 287 und eine Übereinstimmungsschaltung 288 stellt fest, ob die neuen Daten (1 bis 4 Bytes) vom D-Register 31 mit den Daten im A -Arbeitsspeicher 5 übereinstimmen.
65
Arten von Mikroinstruktionen
(1) Alle Mikroinstruktionsbits sind nur der einfacheren Erklärung halber im Steuerregister C2 dargestellt, die Adressierung von Arbeitsspeicher und externei Registern erfolgt in Wirklichkeit jedoch durcl entsprechende Bits in den Decodierschaltungen de F i g. 2b und nicht durch die tatsächlichen Ausgangs bits des Steuerregisters.
(2) Als Beispiele für die Ausführung von Mikroinstruk tionen wurden für die Daten in den verschiedene; Registern willkürliche Werte gewählt.
(3) Bezeichnungen wie Λ3.0-2 werden der Einfachhei halber benutzt und stellen die Bits O bis 2 des Byte. des A -Registerausganges dar.
(4) Für Register und Riegel werden vorzugsweis Polaritäts-Halteriegel bekannter Bauart verwende! die über zwei UND-Glieder verfügen, derei Ausgänge mit den Eingängen eines ODER-Gliede verbunden sind Eine Datenleitung ist an einer Eingang eines UND-Gliedes angeschlossen und de phasengerechte Ausgang des ODER-Gliedes ist mi einem Eingang des anderen UND-Gliedes verbun den. Eine einzige Setz/Rückstelleitung ist direkt mi einem zweiten Eingang des anderen UND-Gliede und über eine.» Inverter mit dem Eingang des einer UND-Gliedes verbunden, wobei zwischen Eingan und Ausgang eine kleine Verzögerung liegt
Steht die Setz/Rückstelleitung auf 0, wird di Verriegelung ein nichtinvertierender Verstärker un< erzeugt an ihrem Ausgang ein Signal, welches den Signal auf der Dateneingangsleitung entspricht. Führ die Setz/Rückstelleitung ein Einersignal, verriegelt sie ir diesem Moment im Verknüpfungszustand der Datenlei tung und hält diesen verriegelten Zustand bei, bis die Setz/Rückstelleitung wieder auf 0 zurückkehrt
Taktgeneratoren und Steuerschaltungen
Jeder Taktgenerator 35 umfaßt gemäß Darstellung ii Fig.3 mehrere Eingänge und erzeugt auch wiedei mehrere Ausgangssignale, von denen im Ausführungs beispiel jedes etwa 90 ns dauert und gegen da vorhergehende um etwa 45 ns zeitlich verschoben ist.
Einzelheiten eines solchen Taktgenerators 35 sind in TDB Band 12, Nr. 1, Seiten 71 bis 73, vom Juni 1969 bekanntgemacht worden. In F i g. 3 wurden die Symbol· für echte Werte (—) und Komplementwerte ( + verwendet, in allen anderen Teilen der Zeichnungen unc der Beschreibung ist das Zeichen für ein Komplement jedoch »-« und die Verwendung keines Vorzeichen bedeutet den echten Wert.
Kurz gesagt umfaßt der Taktgenerator mehrer« Gleichstromriegel, von denen jede einen entsprechen den echten und einen Komplement-Ausgangswert fü die O-Zeit, 0-Verzögerungszeit, 1-Zeit, 1-Verzögerungszeit, 2-Zeit und 2-Verzögerungszeit erzeugt. Diese Riegel reagieren auf Vorder- und Hinterkanten de Eingangssignals vom Oszillator 36 (Fig. 1) unte Steuerung der Zyklus-Eingangssignale für —180 ns — 225 ns und —270 ns, welche die Länge der auszufüh renden Taktimpulsreihen bestimmen.
Der Start des Taktgenerators für jeden Zyklus wird bestimmt durch Signale auf den Leitungen +Taktstart Rückstellung und-Taktstart. Der Taktgenerator kann in seine Ausgangsstellung zurückgesetzt werden durch Anlegen eines Signals an den +Rückstelleingang. Ein + Fehlerstopeingang ist vorgesehen, um den Taktgene rator dazu zu zwingen, 0-Taktzyklen beizubehalten, bis das Fehlersignal ausgeschaltet ist.
jedes
obengenannten Taktsignale wie O-Zeit, O-Verzogerungszeit, 1-Zeit usw. eine Dauer von 90 ns und relativ zum vorhergehenden Signal eine Verschiebung oder zeitliche Verzögerung von 45 ns. Somit ist die O-Verzögerungszeit um 45 ns gegen die O-Zeit verschoben, die 1-Zeit um 45 ns gegen die O-Verzögerungszeit und die 1 -Verzögerungszeit um weitere 45 ns gegenüber der 1-Zeit usw. verschoben. In F i g. 4 sind außerdem die Oszillator-Eingangssignalpegel dargestellt.
Die Taktzyklus-Längensteuerschaltung 271 ist in Fig.5 gezeigt und umfaßt die Verknüpfungsschaltungen, welche für den Taktgenerator 35 Steuersignale für Taktimpulsreihen von 180 ns, 225 und 270 ns erzeugen (entsprechend den mit — 180-ns-Zyklus, — 225-ns-Zyklus, — 270-ns-Zyklus bezeichneten Leitungen in F ig. 3).
Die Decodierleitungen BR und BR+MS für den Verzweigungs- und Modulumschalter Y werden im ODER-Glied 300 verknüpft, dessen Ausgang über ein UND-Glied 302 und ein ODER-Glied 303 auf die Steuerleitung 301 für 225 ns gegeben wird, wenn die hochwertigen Verzweigungsbits C0.4—7 größer gleich 0111 sind. Das bedeutet, daß ein Zyklus von 225 ns angefordert wird, wenn die hochwertigen Verzweigungsbits die Prüfung der Verzweigungsquelle anfordern, um M 3.4 auf die Wahl der nächsten Mikroinstruktion zu setzen. Somit wird die Bitleitung C0.4 (d. h. C0.4 hat den Wert 1000) mit dem Ausgang des UND-Gliedes 312 verknüpft, welches die Bits CO.5-7 gleich 111 decodiert, und das Ausgangssignal des ODER-Gliedes 304 wird als ein Eingang auf das UND-Glied 302 gegeben.
Wenn die Bits C0.4 —7 kleiner 0111 sind, d. h., wenn eine feste Verzweigung oder die Prüfung eines 5-Registerbits vorliegt, erfolgt die Umkehrung des Ausgangssignals des ODER-Gliedes 304 durch die Schaltung 305 und Anlegen eines Signals an die Steuerleitung 306 für 180 ns über das UND-Glied 307 und ein ODER-Glied 308 zur Einleitung eines 1&0ns langen Zyklus.
Wenn eine Verzweigungs- und Verbindungsinstruktion BAL (CO.0-3 = 0010) decodiert wird, wird das Signal auf der Decodierleitung BAL abwechselnd über das UND-Glied 313 auf das ODER-Glied 308 oder über das UND-Glied 314 auf das ODER-Glied 303 gegeben, abhängig davon, ob das Bit C04 auf 0 steht (eine Verbindungsinstruktion) oder auf 1 (eine Rückkehrinstruktion).
Ein UND-Glied 315 decodiert die Verschiebungsinstruktion (CO.0-3 = 0011), und sein Ausgangssignal wird auf das ODER-Glied 308 gegeben, um einen Zyklus von 180 ns Länge zu erzeugen.
Eine arithmetische Vol'wortinstruktion wird durch C0.1,2=10 und dadurch angegeben, daß C0.4 — 7 = 0000, 0001 oder 0010 ist. Die arithmetische Vollwortinstruktion wird teilweise durch Decodierung der Bits CO.0,1 = 10 im UND-Glied 319 decodiert, um die 10-Form der arithmetischen Mikroinstruktion zu erhalten. Die Bits C0.6,7 werden im Inverter 320 decodiert, dessen Ausgangssignal auf ein UND-Glied 322 geleitet wird. Die Bits -Γ0.4 und -Γ0.5 bilden außerdem Eingangssignale um UND-Glied 322. Die Ausgangssignale der Schaltungen 319 und 322 werden als Eingänge auf ein UND-Glied 521 gegeben, dessen Ausgangssignal auf die Decodierleitung 523 der arithmetischen VoII-worlinstruktion gegeben wird. Ein Signal auf der Leitung 323 erzeugt einen Zyklus von 225 ns, da es als ein i > gang auf das ODER-Glied 303 gegeben wird.
Die 10-Form der arithmetischen Mikroinstruktion liefert ein Signal auf das ODER-Glied 308 über das UND-Glied 328 und erzeugt, abgesehen von Vollwort- und Dezimaloperationen, in allen Fällen Zyklen von 180 ns. Zu diesem Zweck wird das Ausgangssignal des UND-Gliedes 319 auf das UND-Glied 328 geleitet. Eine Decodierschaltung318 gibt ein Signal auf einen Inverter 329, wenn sie die Bits C0.4—7 gleich 1010 decodiert, die eine Dezimaloperation bezeichnen. Das UND-Glied
ίο 322, welches zur Decodierung von arithmetischen Voliwortoperationen benutzt wird, ist ebenfalls an einen Eingang des Schaltgliedes 329 angeschlossen. Die Schaltung 329 erzeugt ein Ausgangssignal nur, wenn kein Eingangssignal vorhanden ist (wenn z. B. weder eine Dezimal- noch eine Vollwortoperation vorliegt) und veranlaßt dadurch das UND-Glied 328, ein Signal auf das ODER-Glied 308 für einen 180-ns-Zyklus zu leiten.
Die Decodierung der arithmetischen Mikroinstruktion 10 durch das UND-Glied 319 zusammen mit der Decodierung der Bits CO.4-6 = 1010 (d.h. Dezimaloperation) erzeugt am Ausgang eines UND-Gliedes 325 auf der Dezimaladditions-Decodierleitung 326 ein Signal, welches auf die Steuerleitung 301 für einen 225-ns-Zyklus über das ODER-Glied 303 gegeben wird. Ein UND-Glied 317 decodiert die Bits CO.1,1 = 11 für jede U-Form einer arithmetischen Mikroinstruktion und liefert ein Signal auf einen Eingang des ODER-Gliedes 308, wodurch ein Zyklus von 180 ns ausgeführt wird.
in Die Decodierung der Speicher-Mikroinstruktionsbits C0.01 = 01 im UND-Glied 330 leitet den Zyklus der drei Polaritätshalteriegel 340, 341 und 342 ein, die der Reihe nach auf 1 gesetzt werden, um an ihren Ausgängen eine Speicher-1-Zykluszeit, eine Speicher-Verriegelungszeit und eine Speicher-2-Zykluszei' zu erzeugen. Der erste Polaritätshalteriegel 340 wird durch das ΟΓ-Signal zur Zeit 0 während des ersten Zyklus gesetzt: der Polaritätshalteriegel 341 wird durch das 1 7"-Signal zur 1-Zeit während des ersten Zyklus und der
-to Polaritätshalteriegel 342 durch das ΟΓ-Signal zur O-Zeit des zweiten Zyklus gemäß nachfolgender Beschreibung gesetzt.
Die Speicherzykiuszeiten 1 und 2 werden zusammen mit der Decodierung der Speicherinstruktionsbits und ihrer Unterformbits dazu benutzt, einen Zyklus von 225 oder 270 ns während des ersten Speicherzyklus einer Speichermikroinstruktion und einen Zyklus von 270 ns während des zweiten Speicherzyklus zu wählen.
Somit werden die Signale auf der Speicher-Mikroinstruktions-Decodierausgangsleitung vom UND-Glied 330 und der Leitung für den zweiten Speicherzyklus auf ein UND-Glied 350 geleitet, um die Steuerleitung 351 für den 270-ns-Zyklus während aller zweiten Speicherzyklen zu erregen.
Während eines ersten Speicherzyklus decodieren die UND-Glieder 331, 332 und 333 ein Speicherwort, ein Speicherhalbwort bzw. ein Speicherbyte und ihre Ausgangssignale werden auf ein ODER-Glied 352 geleitet, dessen Ausgangssignal wiederum an ein UND-Glied 353 angelegt wird. Das Signal auf der Leitung für den ersten Speicherzyklus wird ebenfalls als ein Eingangssignal an das UND-Glied 353 angelegt und die Speicher-Mikroinstruktions-Decodierleitung vom UND-Glied 330 bildet den dritten Eingang zum
b5 UND-Glied 353. Somit veranlassen das ODER-Glied 352 und das UND-Glied 330 während eines ersten Speicherzyklus das UND-Glied 353 zur Erzeugung Äis inn uei SieuC'i leitung 355 mi ueh
270-ns-ZyWus, wenn die Unterform der Mikroinstruktion ein Speicherwort, ein Speicherhalbwort oder ein Speicherbyte ist.
Wenn die Unterform der Speicher-Mikroinstruktion ein Lese-Vollwort, ein Lese-Halbwort oder ein Lesebyte ist, decodieren die UN D-Glieder 335,336 bzw. 337 diese Unterform entsprechend. Ihre Ausgangssignale werden an ein ODER-Glied 354 angelegt, welches zusammen mit den Signalen auf der Leitung für den ersten Speicherzyklus und der Speicher-Mikroinstruktions-Decodierleitung ein UND-Glied 355 zur Erzeugung eines Ausgangssignals veranlaßt, welches über das ODER-Glied 303 auf die Steuerleitung 301 für den 225-ns-Zykius geleitet wird.
Die Einstellung der Riegel 340 bis 342 wird jetzt genauer beschrieben. Setzen und Pückstellen dieser Riegel erfolgt durch die Inverter 343 und 345 und die Eingangstaktsignalzeit 0. Ein Inverter 344, ein UND-Glied 346 und die Leitungen für die Eingangstaktzeit 1 und die 1-Verzögerungszeit liefern die Setz/Rückstellfunktion für den Riegel 341.
Ein Inverter 347 und ein UND-Glied 348 veranlassen das Setzen des Riegels 340 während des ersten Zyklus einer Speichermikroinstruktion und verhindern das Setzen während des zweiten Zyklus.
Verzweigungs-Mikroinstruktion
F i g. 6 zeigt (Mikroinstruktion »Verzweigung«) schematisch die Ausführung einer typischen Verzweigungs-Mikroinstruktion, welche eine Zykluszeit von 180 ns erfordert. F i g. 7 zeigt das Zeitdiagramm für verschiedene Operationen bei der Ausführung der Verzweigungsinstruktion. Das Steuerregister C2 ist auf der rechten Seite der Fig. 6 mit den Bytepositionen CO1CI, C2und C3 dargestellt. Die Hexadezimalwerte der vier Bytes der Mikroinstruktion 1036204 Fsind über dem Register 2 dargestellt. Die Datenbitpositionen in jedem Byte sind in der linken Spalte im Steuerregister Cangegeben und die Bitwerte der Mikroinstruktion in der rechten Spalte. Willkürlich gewählte Werte wurden dem P-Register und dem Byte 1 des V-Registers auf der Adresse 13 in den Arbeitsspeichern 5 und 6 zugeordnet.
Die vier werthohen Bits C0.0—3 haben den Wert 0001 und bezeichnen damit eine Verzweigungs-Mikroinstruktion. Der Grund für die Ausführung dieses Verzweigungswortes liegt in der Verzweigung einer Mikroinstruktion innerhalb desselben Moduls des Steuerspeichers. M 2 wird von /V 2 gesetzt und bleibt daher gleich, nur M3 wird verändert. Die spezielle Wortadresse innerhalb des Moduls (die Änderung nach M3) wird bestimmt durch
1. das werthohe Verzweigungsfeld C0.4—7,
2. die nächsten Adreßbus C30—3 und
3. das niedere Verzweigungsfeld C3.4 — 7.
Da eine immer auf eine Wortgrenze aufgerichtete Mikroinstruktion adressiert wird, bleiben die Bits 6 und 6 von M3 unberücksichtigt, da es sich um Bytewahlbits des Adreßregisters handelt.
Die hochwertigen Verzweigungsbits C0.4 — 7 sind gleich 0000 und zwingen daher Bit 4 von M3 auch auf 0. Eine Decodierung des wertniederen Verzweigungsfeldes (1111) führt zur Übertragung von Verzweigungsquellendaten auf die Ver/.weigungsschaltungen 4 und zwingen Bit 5 tics M 3-Registers in cmc einer Prüfung entsprechenden Stellung. Die vier wertholien Bits CJ.i1 -i führen /ur direkten Arbeitsspeicher adressierung, wodurch die vier wertniederen Hits des /'Rej'i Schaltung 150 decodiert werden und das L/-Register im /4-Arbeitsspeicher 5 adressieren. Die Daten im LZ-Register werden auf das A-Register 21 übertragen. Bits C 1.4—5 führen zur Übertragung des Hexadezimalwertes FB (Byte 1 des L/-Registers) von A 1 auf die Positionen von Byte 2 und 3 des A-Byteassemblierers 23. Byte 3 des A -Byteassemblierers 23 wird auf die Verzweigungsschaltungen 4 geleitet und die wertniederen Verzweigungswahlbits C3.4—7 leiten Bit 7 der
to Verzweigungsschaltungen, d. h., eine logische 1, auf Bit 5 des M 3- Registers. Die Übertragung der Quellendaten vom Λ-Arbeitsspeicher 5 auf die Verzweigungsschaltungen 4 erfolgt ungefähr in der Zeit von 35 bis 75 (F i g. 7). Das Setzen des Λ·/3-Registers erfolgt in diesem spezielien Fall ungefähr zwischen 45 und 90, da die Verzweigungsinstruktion von einer Art ist, bei welcher die Verzweigungsquelle Bit 5 des M3-Registers setzt, welches entweder das gerade oder das ungerade Wort eines Doppelwortes wählt und erst später im Zyklus benötigt wird. Das Doppelwort wird aus dem Steuerspeicher gemäß Darstellung in Fig. 7 durch die Auswahlleitung ungefähr in der Zeit zwischen 75 und 105 gelegen.
Die Verzweigung zu einer neuen Mikroinstruktion ist begleitet durch die Fortschreibung des P-Registers auf die neue Arbeitsspeicheradressierung. Semit führen die Bits C2.2-3 ungefähr zur Zeit 45 bis 90 zur Adressierung des P-Registers und Übertragung seines Inhalts auf das ß-Register 22 und dann den Assemblierer24und ALU2\m& ALUX Die Bits Cl.6,7 leitenden K-Wert (C2.4-7) auf ALU! und ALU3. Ungefähr zur Zeit 45 leiten die Bits C2.2,3 den Wert im P-Register (00000010) über das ß-Register 22 und den Byteassemblierer 24 auf ALU2 und ALU3. Der ß-Schalier tritt in Tätigkeit bei einer Decodierung der Bits 6 und 7 des Byte C1 der Mikroinstruktion, welches gleich 10 ist, und leitet den Wert des K-Feldes 0001 in den höherwertigen Eingang von ALU2 und ALU3 und den Wert 0000 in den niederwertigen Eingang. Wenn die Werte für Pund K in der /ALLODER-verknüpft werden (d. h. Bit C2.1 erfordert eine ODER-Funktion), wird das dem Hexadezimalwert 12 gleiche Ergebnis im Z-Register 30 gespeichert. Ungefähr zur Zeit 135 wird das Ergebnis in das P-Register gesetzt.
Arithmetische Mikroinstruktion — echte Vollwortaddition
F i g. 8 zeigt schematisch die Ausführung einer echten Vollwortaddition (d. h. ohne Komplementbildung), die einen Zyklus von 225 ns gemäß Darstellung im Zeitdiagramm der F i g. 9 erfordert. Der untere rechte Teil der Fig.8 zeigt die Operationen, die nach dem Zeitpunkt 180 in dieser Taktimpulsreihe erfolgen. In diesem Zusammenhang wird auf die Setz/Rückstelleitung für das Z-Register im Zeitdiagramm hingewiesen, aus welchem zu ersehen ist, daß die Bytes 0 und 1 des Rechteckergebnisses im Z-Register erst nach Beginn des folgenden Mikroinstruktionszyklus gespeichert werden. Dadurch wird die Ausführung der Mikroin-
bo struktion in keiner Weise gestört, da das Ergebnis erst in das D-Register zum Zeitpunkt 45 des folgenden Zyklus gesetzt wird.
Die Mikroinstruktion B04E64ACdes Beispiels ist eine Mikroinstruklion für eine echte Vollwortaddition ;nit
b5 Snnderleiiiing. Das Hauptziel der Mikroinstrukiion ist die Addition des im V-Register (Teil des Arbeitsspeichers 5) gespeicherten Vollwortes zu den acht
^-Arbeitsspeicher 6. Die unteren 24 Bits (z. B. Bytes 1 Lis 3) des Ergebnisses sind auf die unteren 24 Bits des K-Registers zu leiten.
Die Decodierung der Bits CO.1,2 schreibt eine Rechen-Mikroinstruktion vor. Die Decodierung der Bits C0.2,3 bestimmt die Form der Rechenoperation, d. h. Operanden werden an der ß-Quelle gefunden und die Λ-Quelladressen und das Ergebnis wird in der ß-Queliadresse gespeichert. Die Decodierung der Bits C0.4—7 schreibt eine echte Vollwortaddition vor.
Decodierung der Bits C 1.0—3 fordert einen direkten Arbeitsspeicherzugriff der A-Quelle, worin die Bits 1, 2 und 3 des Bytes C1 zusammen mit den Bits 4 bis 7 des P-Registers zur Wahl der V-Registerstelle (d.h. 14) im Λ-Arbeitsspeicher 5 benutzt werden. Der Inhalt des V-Registers, der Hexadezimal wert 1497 C 5 A 2 wird in das /4,-Register 21 und dann auf den A-Byteassemblierer 23 aufgrund der Decodierung von C 1.4,5 übertragen, die die Übertragung aller 32 Bits oder vier Bytes des V-Registers fördert. Bits 6 und 7 des Bytes Cl sind Zustand-Setzbits, die nur die 24 wertniederen Bits (die wertniederen Bytes 1, 2 und 3) des aus der Rechenoperation erhaltenen Ergebnisses im K-Register an der Arbeitsspeicheradresse 16 speichern lassen oder für diese Stelle bestimmen lassen.
Die Decodierung der Bits C2.0—3 führt zur direkten Adressierung des ß-Quellenoperanden, wobei die Bits 1, 2 und 3 des C2-Bytes und die Bits 4 bis 7 des P-Registers zur Adressierung des V-Registers im ß-Arbeitsspeicher 6 benutzt werden. Der Inhalt des V-Register, nämlidi der Hexadezimalwert 2 DEC 5972, wird auf das ß-Register 22 übertragen und die Bytes 2 und 3 dieses Wortes werden dann auf den ß-Byteassemblierer 24 übertragen. Die Decodierung der Bits C2.4,5 führt zur Leitung nur der wertniederen acht Bits, das ist das Byte 3, der Daten im ß-Byteassemblierer auf die ALU3 und zur Sperre der 24 werthoher Bits (Bytes 0 bis 2) der ß-Quelle. Dadurch wird Byte 2 im ß-Assemblierer 24 daran gehindert, auf die ALU2 übertragen zu werden. Die Werte in der ALU2 werden addiert und in die Bytes 0 und 2 des Z-Registers 30 eingegeben und die Werte in der ALU3 werden ebenfalls addiert und in die Bytes 1 und 3 des Z-Registers 30 gesetzt.
Bits C3.0—5 werden in das M3-Register zur Adressierung der nächsten Mikroinstruktion gesetzt, die nächste Mikroinstruktion ist dann im selben Modul und daher wird das M2-Register vom N 2-Register gesetzt.
Die oben beschriebenen Operationen laufen alle innerhalb der ersten 180 ns der Taktimpulsreihe ab, wie aus dem Zeitdiagramm zu ersehen ist. Beginnend bei der Zeit 180 werden die Operationen ausgeführt, die schematisch in den unterbrochenen Linien im rechten unteren Teil der Fig. 8 gezeigt sind. Zur Zeit 180 werden die Bytes 0 und 1 des A-Registers in die Bytes 2 und 3 des /4-Byleassemblierers 23 übertragen. Zur selben Zeit werden die Bytes 0 und 1 des ß-Registers in den ß-Byteassemblierer 24 übertragen. Der Inhalt der Bytes 2 und 3 des A-Byteassemblierers wird auf die ALU2 und die ALU3 übertragen. Wie bereits oben gesagt, verhindert die Decodierung der Bits C2.4,5 das Leiten der drei werthohen Bytes der ß-Quelle in die AIAJ. Demzufolge wird vier Inhalt des ß-Byteassembiieleis für die Übertragung /.ur ALU gesperrt. Die Ergebnisse der echten Addition werden auf die Bytes 0 und 1 des /^-Register 30 übertragen. Diese Einstellung der Bytes ZO und Zl erfolgt i-remäß obiger Beschreibung von der Zeit 0 bis ungefähr zur Zeit 45 des
ι iiKiiiVtpulst cmc. t^ci Inhalt des Z-Registers wird auf das D-Register während des folgenden Zyklus zwischen der Zeit 45 und der Zeit 90 übertragen. Während des Lese-Schreibleiles des nächsten Zyklus werden nur die Bytes 1, 2 und 3 des D-Registers auf das V-Register in den beiden Arbeitsspeichern 5 und 6 übertragen, da die Decodierung der Bits C 1.6,7 nur die 24 wertniederen Bits des Ergebnisses dafür bestimmt
Beispiel für Rechen-Mikroinstruktion-Byteaddition
Fig. 10 zeigt schematisch die Ausführung der Mikroinstruktion »FD 3C2F92«. Das zugehörige Zeitdiagramm ist in F i g. 11 gezeigt. Die Bits 0 und 1 des Bytes CO der Mikroinstruktion bezeichnen nach Decodierung eine Rechen-Mikroinstruktion. Die spezifische Operation oder Form erhält man durch Decodierung der Bits 2 und 3 des Bytes CO. In diesem Fall ist jedes der Bits gleich 1 und besagt, daß das Ergebnis einer eine /4-Quelle und eine ß-Quelle benutzenden Operation zur ß-Quellenadresse weggespeichert wird. Bit 4 des Byte CO steht auf 1 und zeigt an, daß es sich bei der Operation um eine echte Addition (ohne Komplementbildung) handelt. Eine Schaltersieuerung erfolgt durch die Bits 5, 6 und 7 des Bytes CO. Im gegebenen Beispiel stehen die Bits auf 101 und führen zu einer Kreuzung der werthohen und wertniederen Hexadezimalwerte (5 und 7), die aus den A-Schalter gegeben werden und dann nach der Kreuzung den hohen Wert (7) sperren. Bit 0 des Bytes Cl ist gleich 0 und zeigt die direkte Adressierung des Arbeitsspeichers an, wodurch die Bits 1, 2 und 3 von C1 direki zusammen mit den wertniederen Bits des P-Registers zur Adressierung einer ausgewählten Stelle (LZ-Register) im Arbeitsspeicher 5 benutzt werden. Die Bits 4 und 5 des
J5 Bytes Cl der Mikroinstruktion sind gleich 11 und führen zur Wahl des Bytes 3 des vom Arbeitsspeicher 5 ausgewählten Λ-Quellenregisters (L/3). Bit 6 und Γ des Bytes Cl sind gleich 00, so daß das Zustandsregister S nicht gesetzt wird. Bits 0 bis 3 des Bytes C2 werden dazu benutzt, das W-Register im ß-Arbeitsspeicher 6 als ß-Quelle direkt zu adressieren. Die wertniederen Bits im P-Register werden wieder für einen Teil der Adreßdecodierung bei der Auswahl des W-Registers benutzt. Der ganze Inhalt des W-Registers wird auf aas ß-Register 22 übertragen und der Wert (28) im Byte des W-Registers wird zur Übertragung auf beide Bytepositionen des ß-Byteassemblierers 24 durch die Bits 4 und 5 des Bytes C2 der Mikroinstruktion ausgewählt. Bits 6 und 7 des Bytes C 2 der Mikroinstruktion führen zur direkten Leitung der Bytes im ß-Assemblierer 24 auf die ALU2 und ALU3. Die hexadezimalen Zahlen 05 und 28 werden zueinander in jedem Ai-LV-Abschnitt addiert und mit einem Vergleich der Ergebnisse festgestellt, ob ein Fehler in den ALLZ-Abschnitten aufgetreten ist oder nicht. Wenn kein Fehler auftrat, wird das Ergebnis, in diesem Fall der Hexadezimalwert 2D, auf jedes Byte des Z-Registers 30 übertragen.
Die ausgeführte Mikroinstruktion muß außerdem die als nächstes auszuführende Mikroinstruktion adressieren. Somit werden die Bits 0 bis 5 des Bytes C3 der Mikroinstruktion dazu benutzt, mindestens teilweise die Adrcse der nächster. Mikroinstri-'-aion zu biMen. Die Bits 0 bis 3 des Bytes Ci werden also diieki auf die Bits ü bis 3 des A-/3-Registers !!H.-rlragen. b.i ό und 7 des
b5 Bytes CJ erfordern eine Verzweigung entsprechend der Stellung der Bits 4 uüd 5 υΌ S R.ci';tc: s. F.s wird angenommen, daß die Bi... ■ ..r.d 5 des .S-Rcgisi'.'rs auf 1
*t UIIU J
des Bytes C3 ODER-verknüpft und das logisch 11 gleichkommende Ergebnis wird in die Bits 4 und 5 des /V/3-Registers pdeitet. Der zeitliche Ablauf der obigen Operalion isi ;:us der Zeittabelle der F i g. 11 zu ersehen, wc das Sv-'/en des Steuerregisters von 0 oiif die Zeit 4 S -, Zu j.i.-hcn ist, wodurch die Bildung der nächsten Mikrcinstruktionsadresse zwischen der Zeit 45 und der Zeit 90 abgeschlossen werden kann. Die nächste Mikroinstruktion kann darstellungsgemäß ausgelesen weiden, indem die Wahlleitung ungefähr zur Zeit 75 Ul beginnt. Die A- und ß-Quellen werden von den A- und ß-Arbeitsspeichern 5 und 6 zwischen der Zeit 35 und der Zeit 70 gelesen und die A- und ß-Quellen stehen in den A- und ß-Registern zwischen der Zeit 45 und der Zeit 90 zur Verfügung. Die Wege zwischen den A- und i-, ß-Registern 21 und 22 und den zugehörigen Byteassemblierern 23 und 24 beginnen ungefähr zur Zeit 45 zu leiten und die Umschalter zwischen den Byteassemblierern und der ALU ebenfalls. Die ALU leitet ungefähr zur Zeit 90 eine ausgewählte Rechenoperation ein und ungefähr zur Zeit 135 wird der Eingang zum Z-Register 30 leitend. Daten, die von einer vorhergehenden Ausführung einer Mikroinstruktion eventuell noch im Z-Register stehen, werden vom Z-Register auf das D-Register übertragen, beginnend ungefähr zur Zeit 45, und diese Daten werden dann vom D-Register auf die ausgewählten Stellen im A- und ß-Arbeitsspeicher 5 bzw. 6, beginnend bei der Zeit 90, übertragen. Die Durchgangsprüfung der bestimmten Information erfolgt zwischen den Zeitpunkten 135 und 180. jo
Echte Dezimaladdition
Fig. 12 zeigt schematisch eine typische Dezimal-Additions-Mikroinstruktion BA 4C6FAC und Fig. 13 die Zeiteinteilung der verschiedenen Maschinenoperatio- jj nen. Die Decodierung der Bits CO.0,1 ergibt eine arithmetische Instruktion. Die Decodierung der Bits CO.2,3 zeigt an, daß die Operation eine Λ-Quelle und eine ß-Quelle betrifft und daß Ergebnisse auf die Adresse der ß-Quelle zu setzen sind. Bits C0.4 —7 w fordern eine dezimale Addition. Es wird angenommen, daß das Zustandsregisterbit 50 gleich 0 ist und eine echte Additionsfunktion liefert. Die Bits C 1.0—3 fordern die direkte Arbeitsspeicheradressierung, um die A -Quelle zu erhalten unter Verwendung der Bits 4 bis 7 des P-Registers und der Bits C 1.1,2 und 3 zur Adressierung des V-Registers im Arbeitsspeicher 5 auf der Adresse 14. Die Bits C 1.4,5 besagen, daß die Operation mit dem Byte 3 des V-Registerinhaltes durchzuführen ist. Die Bits C 1.6,7 erfordern keine 5(i Einstellung des Zustandsregisters. Die Bits C2.0—3 fordern die direkte Arbeitsspeicheradressierung der ß-Quelle, um die Bits 4 bis 7 des P-Registers und die Bits C2.1 —3 zur Adressierung des V-Registers an der Stelle 16 im ß-Arbeitsspeicher 6 zu nutzen. Die Bits C 2.4,5 zeigen an, daß Byte 3 des Y- Registerinhaltes zu bearbeiten ist Die Bits C2.6.7 zeigen an, daß die Leitung der ß-Quelle normal oder grade ist, d. h. die hohen und niedrigen Hexadezimalwerte des Bytes 3 werden entsprechend auf die hohen und niedrigen Positionen der ALU2 und ALUZ geleitet Bits C3.0—5 einschließlich werden auf das M3-Register übertragen und das M 2- Register wird aus dem N 2-Register gesetzt um die nächste Mikroinstruktion aus demselben Speichermodul 711 adressieren.
Somit ist aus Fig. 12 zu ersehen, daß die direkte Arbeitsspeicheradressierung der A- und ß-Quellen den Inhalt des V-Registers aus dem Arbeitsspeicher 5 auf das 4-Register 21 und den Inhalt des K-Regii'er·- r,i: dem fi-Ameitsspeicher ** .cif das ß-Rcgistcr 2. überträgt In den Bytepositionen 0, 1 und 2 der A- uric ß-Register sind Xe dargestellt, da der Inhalt diesel Bytes während der Operation nicht benutzt wird. Wn oben gezeigt, wählten die Bytev^.hlbiis die Bytes 3 de: Inhaltes des V-Registers und des V-Registers. Soini wird Ii; ic 3 im 4-Registei 21, welches den Hexadczi nialwert 07 enthält, auf alle vie; Bytepositionen de: Λ-Byteassemblierers 23 übertragen. Dieser Wert wire dann von den Positionen für byte 2 und Byte 3 de: /I-Byieasseinbliereis direkt auf die /4-Eingänge vor ALU2 und ALUZ gegeben. Byte 3 im ß-Rcgister ha einen Hexadezimalwert von 15 und wird auf beidi Byieposiliotieii des ö-ByieäSSenibiierers 24 und Vüf dort über die Echt/Komplement-Schaltungen TIC au die 3-Eingänge der ALU2 und ALUi übertragen. Di* hexadezimalen Werte werden in der ALU3 addiert un( das hexadezimale Ergebnis IC wird auf alle viei Bytepositionen des Z-Registers 30 übertragen. All« oben im Zusammenhang mit der Mikroinstruktioi beschriebenen Operationen erfolgen während dei ersten 180 ns des Zyklus. Die während der Ausführung der Mikroinstruktion nach dem Zeitpunkt 180 durchge führten Operationen sind in unterbrochenen Linien ii der unteren rechten Ecke der Fig. 12 gezeigt. Zur Zei 180 wird der Hexadezimalwert IC vom Byte 3 de: Z-Registers auf Byte 3 des A -Registers und von dort au die Bytes 2 und 3 des A-Byteassemblierers 2: übertragen, um an die /^-Eingänge der ALU2 unc ALUZ angelegt zu werden. Die vier Eingänge für di( Dezimalkorrektursteuerungen, Bits C3.0—3, Bit: C3.4 —7, sowie die beiden Ubeiiragsbiis der erster Dezimaloperation sorgen dafür, daß der K-Assemblie rer eine Korrekturzahl 06 auf die ß-Eingänge de ALU2 und ALUZ gibt. Der Korrekturfaktor wird zun hexadezimalen Ergebnis der ersten Operation addien um ein korrigiertes hexadezimales Ergebnis 22 zt erzeugen, welches vom Ausgang der ALUZ auf da: Z-Register 30 übertragen wird. Aus dem Zeitdiagramn der Fig. 13 ist zu ersehen, daß das Setzen de: korrigierten Ergebnisses in das Z-Register 30 ungefäh zwischen den Zeitpunkten 0 und 45 des folgender Zyklus stattfindet. Kurz danach wird dieses korrigiert Ergebnis in das D-Register gegeben und danach au Byte 3 des K-Registers in den beiden Arbeitsspeichern ί und 6 zurückgeführt.
Speicher-Mikroinstruktion
Die Ausführung der Speichermikroinstruktioi 487ß2D££ist schematisch in den Fig. 14a und 141 gezeigt und die Zeiteinteilung der verschiedener Maschinenoperationen in den Zeitdiagrammen de Fig. 15a und 15b. Aus den Zeitdiagrammen ist zi ersehen, daß die Ausführung der Speichermikroinstruk tion zwei Taktimpulsreihen (Speicherzyklen 1 und 2) mi jeweils 270 ns Dauer erfordert Mit der als Beispie gezeigten Mikroinstruktion 487 ß 2DEE soll das Daten wort (oder ein Teil davon), welches in den Q-Registen der beiden Arbeitsspeicher steht, auf die Hauptspeicher adresse übertragen, die in den W-Registern diese: beiden Arbeitsspeicher steht Bei dieser speziellei Mikroinstruktion werden die Daten auf den Hauptspei eher \b unter Verwendung der Bits 0 bis 3 de: T-Registers als Maske übertragen.
Die Ausführung der Mikroinstruktion wird in Zusammenhang mit den verschiedenen Bits beschrie ben, die die Mikroinstruktion bilden und darstellungsge
mäb im Steuerregister 2 gespeichert sind. Die bus O und
1 des Byii.s CO bezeichnen nach Dccouicrung eine SDeichermikroinst^uktion. Die Bits 2, 3 und 4 des Bytes CO bezeichnen die UnteiTunn der Instruktion, eine Einschreibeinstruktion. Die Bi'* 0 bis 3 des Bytes CI bezeichnen nach Decodierung die direkte Adressierung der Arbeitsspeicher unter Verwendung der Bus 1 2 und 3 des Byies CI und der Bits 4 bis 7 des P-Registers zur Adressierung des (^-Registers auf der Adresse 17 des A Arbeitsspeichers. Der Inhalt F7F3F2C3 des Q-Registers wird auf das A-Register. 21 und dann auf den Λ-Byteassemblierer 23 übertragen. Die Bits 6 und 7 des Bytes C 2 geben an, daß die Daten im y4-Byteassemblierer unter der durch die werthohen Bits 0 bis 3 des ^Registers bestimmten Maske auf der. Hauptspeicher \b zu übertragen sind. Diese werthohen Bits 0010 des Γ-Registers veranlassen nur die Übertragung des Bytes
2 der Daten im Assemblierer 23 auf den Hauptspeicher ib.
Die Adresse, auf der dieses Datenbyte gespeichert ist, wird angegeben durch die Bits 0 bis 3 des Bytes C 2 dcr Mikroinstruktion. Die Decodierung dieser Bits veranlaßt die direkte Adressierung des Arbeitsspeichers 6 und die Bits 1,2 und 3 des Bytes C 2 sowie die wertniederen Bits 4 bis 7 des P-Registers werden in der Schaltung 151 decodiert und wählen das W-Register auf der Adresse 12. Die Hauptspeicheradresse 001EFD 00 im W-Register wird auf das B-Register 22 übertragen und die wertniederen Bytes 2 und 3 vom B-Register 22 auf den ß-Byteassemblierer 24. Byte 2 im B-Byteassemblierer wird auf die ALUI übertragen und in den Bytes 0 und 2 des Z-Registers 30 gespeichert Das wertniedere Byte 3 im Assemblierer 24 wird auf einen Eingang der ALWi übertragen. Ein anderes Eingangssignal zur ALWi fordert die Fortschreibung des wertniederen Bytes um den Wert 1, woraufhin der Wert 1 zum Byte 3 des Byteassemblierers 24 addiert und das Ergebnis in den Bytes 1 und 3 des Z-Registers 30 gespeichert wird. Die Fortschreibung der Adresse wird bestimmt durch die Bits 4 und 5 des Bytes C1 der Mikroinstruktion, welche angibt, daß die Fortschreibung eine Additionsfunktion sein muß. Die Bits 6 und 7 des Bytes C2 der Mikroinstruktion geben an, daß der Wert der Fortschreibung sich nach dem Wert der Bits 0 bis 3 des Γ-Registers richtet In diesem speziellen Fall fordert die Decodierung der Bits im T-Register eine Fortschreibung um den Wert 1. Abhängig davon, ob es sich um eine Byte-, Halbwort- oder Wortoperation in bezug auf die zu speichernden Daten handelt, erfolgt die Fortschreibung in Schritten von 1, 2 oder 4. In dem Beispielwort ist nur ein Byte im Hauptspeicher weggespeichert und die Fortschreibung beträgt somit 1.
Ungefähr zum Zeitpunkt 180 des Speicherzyklus werden die Bytes 0 und 1 des B-Registers 22 auf den B-Byteassemblierer 24 und von dort die Bytes 0 und 1 des Z-Registers 30 über die ALU2 und die ALUZ übertragen. Nach der Verwendung der werthohen Bits des Γ-Registers zur Leitung der Daten in den Hauptspeicher \b führt die Decodierung der Bits 2, 3 und 4 des Bytes CO und der Bits 6 und 7 des Bytes C2 zur Rückstellung der werthohen Bits des Γ-Registers.
Der Speicherzyklus 2 der Mikroinstruktionsausführung ist im unteren Teil der Fig. 14 dargestellt. Zu Beginn des Zyklus 2 wird durch Decodierung der Dits 2, 3 und 4 des Bytes CO und des Bits 4 des Bytes C 3 die Adresse vom Wert !2 auf den Wert 13 um 1 erhöht, welche das W-Register des ß-Arbeitsspeichers während des ersten Zyklus wählte und dadurch das L/-Register im ß-Arbeitsspeicher 6 adressiert. Die wertniederen Bytes 2 und 3 des tV-Registers enthalten einen Zählwert, der gleich der Anzahl von Bytes ist, die aus dem Hauptspeicher für die Verarbeitung während einer Rechenoperation übertragen werden müssen, und zwar maximal 256 Bytes. Im gezeigten Ausführungsbeispiel des Systems wird dieser Zählwert immer in dem Register gespeichert, welches unmittelbar vor dem für die Adreßdaten benutzten Register liegt. In diesem speziellen Fail ist es das W-Register. Jedesmal, wenn ein Wort oder ein Datenteil eines Wortes vom Hauptspeicher zur Verarbeitung übertragen und das Ergebnis in den Hauptspeicher zurückgesetzt wird, muß die
Ai/*N_«..nui ;m ι / Dn*-:*.***.. u:~ ....... τ? :~ι j \\t *— η
VT Vl l£.«lll Uli iy-lWgiaiVI LfIO AUlU LjX 1 CIUlICIl U» TT Cl LC3 W herabgesetzt werden, wodurch das Ende einer bestimmten Rechenoperation angezeigt wird. Die Unterform der jeweils ausgeführten Speichermikroinstruktion gibt den Wert an, um welchen die Zahl herabgesetzt wird. Eine Byteoperation erfordert die Herabsetzung um 1, eine Halbwortoperation die Herabsetzung um 2 und eine Vollwortoperation die Herabsetzung um 4. Im vorliegenden Beispiel bezeichnen die Mikroinstruktionsbits 2,3 und 4 des Bytes CO nach der Decodierung eine Speichermikrooperation, wodurch also eine Herabsetzung um 4 gefordert wird, auch wenn der Inhalt des Γ-Registers 3 dieser vier Bytes im Wort maskiert Somit wird das wertniedere Byte 08 im B-Byteassemblierer 24 auf die ALWi übertragen und um 4 herabgesetzt und dann in den Bytes 1 und 3 des Z-Registers 30 gespeichert. .
Zu den Zeitpunkten 45 bis 90 des Speicherzyklus 2 wird die fortgeschriebene Wortadresse (001 EFDOl), die auf das Z-Register während des ersten Speicherzyklus übertragen wurde, in das B-Register 31 übertragen. Während der Zeit 90 bis 150 des zweiten Zyklus wird die fortgeschriebene Adresse vom D-Register auf das rV-Register über den SDBO-Assemblierer 11 übertragen.
Die nächste auszuführende Mikroinstruktion wird teilweise über die Folgeadreßbits 0 bis 3 des Bytes C 3 der ausgeführten Mikroinstruktion adressiert Die hohen Verzweigungsbits 5,6 und 7 des Bytes CO werden decodiert, wodurch das Bit 4 des Λ/3-Registers auf 0 gesetzt wird. Die niederen Verzweigungsbits 5, 6 und 7 des Bytes C3 veranlassen nach der Decodierung das Setzen des Bits 5 im M 3-Register auf denselben Wert, den das Bit 7 des 5-Registers hat Im vorliegenden Beispiel ist Bit 7 des 5-Registers gleich 0, also auch Bit 5 des M3-Registers. Eine Modulumschaltung ist in der gezeigten Mikroinstruktion nicht vorgesehen, wodurch der Wert der Adreßbus in dem W2-Register in das Af2-Register zur Adressierung der gewünschten Mikroinstruktion in demselben Modul gesetzt wird.
Hierzu 21 Blatt Zeichnungen

Claims (9)

Patentansprüche:
1. Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems mit einem Taktgenerator und einem Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist als die Verarbeitungszeit arithmetischer und logischer Schaltungen, dadurch gekennzeichnet, daß der Taktgenerator (35) in Abhängigkeit von der auszuführenden Mikroinstruktion die kürzestmögliche von mehreren, in ihm erzeugbaren Taktimpulsreihen verschiedener Zykluslänge (Zyklen, Fig.4) abgibt.
2. Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet, daß der Taktgenerator eine Steuereinheit (Fig.5) enthält, die in Abhängigkeit vom Operationscode der auszuführenden Mikroinstruktion Auswahlsignale (301, 306; Fig.5) für die Taktimpulsreihe erzeugt, die zur Ausführung dieser Mikroinstruktion erforderlich ist
3. Zentraleinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Steuereinheit (Fig.5) besondere Auswahlsignale (SPX Zyklus, SP Versehe SP2 Zyklus) erzeugt, mit denen die Auswahl mehrerer aufeinanderfolgender gleich langer oder verschieden langer Taktimpulsreihen für bestimmte Mikroinstruktionen (z. B. Hauptspeicherzugriffe) gesteuert wird.
4. Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß zur Ausführung ausgewählter Mikroinstruktionen in Abhängigkeit vom Systemzustand (Zustandsregister 7a, Zustandsbits in Arbeitsspeichern 5, 6) kürzere oder längere Taktimpulsreihen erzeugt werden.
5. Zentraleinheit nach Anspruch 4, dadurch gekennzeichnet, daß für Mikroinstruktäonen vom Typ »Verzweigung« in Abhängigkeit vom Systemzustand eine kurze oder eine lange Taktimpulsreihe erzeugt wird und in letzterem Fall der Auswahl-Steuerimpuls für die nächste Mikroinstruktion spät in der längeren Taktimpulsreihe erzeugt wird.
6. Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß Mikroinstruktionen paarweise aus dem Steuerspei- « eher (la, Fig. 1) ausgelesen werden und die Wahl der in diesem Paar auszuführenden Mikroinstruktion durch einen Steuerimpuls (Auswahl, F i g. 7) erfolgt, der in Abhängigkeit von der Zykluslänge der Taktimpulsreihe der gerade ausgeführten Mikroin- --u struktion früher oder später in dieser Taktimpulsreihe liegt.
7. Zentraleinheit nach einem oder mehreren der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß eine für Halbwortoperationen ausgelegte arithmetische 5r> und logische Einheit(-4Z.L/20)direkte Verbindungen (42, Fig. 1) zwischen ihrem Ausgangsregister (30) und ihren Eingangsregistern (21, 22) für die rasche Übertragung von Zwischenergebnissen bei Vollwortoperationen aufweist, so daß für deren Ausfüh- «> rung eine einzige, gegebenenfalls verlängerte Taktimptiisreihe ausgewählt werden kann.
8. Zentraleinheit nach Anspruch 7, dadurch gekennzeichnet, daß bei Dezimaloperationen die Dezimalkorrektiir bei der Direktübertragung vom ·■■ /WJi./-Ausgangsregister (30) zu einem der ALU-Emgangsregister (22) durchgeführt wird.
9. Zentraleinheit nach einem oucf mehreren der
Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die Zugriffs- und Lesezeit eines an die Zentraleinheit angeschlossenen Hauptspeichers (16,Fi g. 1) kleiner ist als die Verarbeitungszeit der arithmetischen und logischen Schaltungen.
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 DE2117936A1 (de) 1971-11-04
DE2117936B2 DE2117936B2 (de) 1978-12-14
DE2117936C3 true DE2117936C3 (de) 1979-08-16

Family

ID=21847906

Family Applications (1)

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

Country Status (6)

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

Families Citing this family (48)

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

Family Cites Families (5)

* 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
GB1274830A (en) 1972-05-17
JPS465165A (de) 1971-11-25
DE2117936B2 (de) 1978-12-14
DE2117936A1 (de) 1971-11-04
FR2086169B1 (de) 1973-06-08
US3656123A (en) 1972-04-11
CA935934A (en) 1973-10-23
FR2086169A1 (de) 1971-12-31
JPS5729740B1 (de) 1982-06-24

Similar Documents

Publication Publication Date Title
DE2117936C3 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2540975C2 (de) Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse
DE2716369C2 (de)
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2346525B2 (de) Virtuelle Speichereinrichtung
DE2556624C2 (de) Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung
DE1803767A1 (de) Elektronisches Datenverarbeitungssystem
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE3338345A1 (de) Vektor prozessor
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE4420703A1 (de) Mikrocomputer
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2452214A1 (de) Mikroprozessor mit unmittelbarer und indirekter adressierung
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2755611A1 (de) Steuereinheit fuer datenverarbeitungsanlagen
EP0134831A1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE2706877C2 (de) Mikroprogramm-Steuereinrichtung
DE2530599A1 (de) Steuerung von ein/ausgabe-geraeten
DE2617485B2 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2835110A1 (de) Schneller echtzeit-rechneremulator
DE2908776C2 (de) Schaltung zur Speicheradressierung eines Speichers in einem Datenprozessor
DE2747304C3 (de) Einrichtung zur Mikrobefehlssteuerung
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE2545751C2 (de) Ablaufsteuerung für eine Datenverarbeitungsanlage
DE2727188A1 (de) Anordnung zum adressieren eines speichers

Legal Events

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