DE2117936B2 - Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems - Google Patents

Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems

Info

Publication number
DE2117936B2
DE2117936B2 DE2117936A DE2117936A DE2117936B2 DE 2117936 B2 DE2117936 B2 DE 2117936B2 DE 2117936 A DE2117936 A DE 2117936A DE 2117936 A DE2117936 A DE 2117936A DE 2117936 B2 DE2117936 B2 DE 2117936B2
Authority
DE
Germany
Prior art keywords
register
microinstruction
bits
byte
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2117936A
Other languages
English (en)
Other versions
DE2117936C3 (de
DE2117936A1 (de
Inventor
Richard Joseph Endwell Carnevale
Leland Delmar Owego Howe Jun.
Thomas Arthur Metz
Karl Kay Womack
Frank Anthonay 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

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

Description

Die Erfindung betrifft eine mikroprogrammgesieuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems mit einem Taktgenerator und einem Steuerspeicher, dessen Zugriffs- und Lesezeit kleiner ist ιϊ al» die Verarbeitungszeit arithmetischer und logischer Schaltungen.
Bei auf die Maschinenausrüstung (Hardware) orientierten Datenverarbeitungsanlagen ist es allgemein bekannt, die Operation der Maschinenteile so zu steuern, daß die zur Ausführung einer Programminstruktion erforderliche Zeit für jede Instruktion auf einem Minimum gehalten wird. Bei mikroprogrammierten Maschinen wurde es allgemein üblich, alternativ dazu eine Basis-Zykluszeit für die Ausführung aller Mikroinstruktionen oder ein Vielfaches dieser Zeit für die Ausführung der Mikroinstruktionen vorzusehen, die in der einem Zyklus zugeordneten Zeit nicnt ausgeführt werden können.
Bei einer mikroprogrammgestcuerten Zentraleinheit eines elektronischen Datenverarbeitungssystems mit einem schnellen Stcuerspcicher. der das Steuerprogramm enthält und deren Arbeitszyklus kürzer als die Ausführungszeiten der logischen Schaltungen des Systems ist, tritt der Fall ein, daß die Speicheroperationen auf die Operationen der arithmetischen und logischen Schaltungen warten müssen. Da aber nicht alle Steueroperationen (durch Mikroinstruklionen gesteuerte Mikrooperationen) gleich lange Taklimpulsrcihen für ihre Ausführung benöligen, gelit vor allem dann wertvolle Verarbeitungszeit, verloren, wenn die Taktimpulsreihen fester Zykluslänge des Taktgenerator starr auf die längste Mikroinstruktion zugeschnitten sind.
Die Aufgabe der vorliegenden Erfindung ist es daher, eine Einrichtung anzugeben, die bei nur geringen ··"> Mehrkosten eine Verbesserung der Operationsgeschwindigkeit erreicht.
Diese Aufgabe wird durch die im llauptanspriich gekennzeichnete Erfindung gelöst.
Vorteilhafte Ausgei.ialtiingcn der Erfindung sind den "in !Jnteransprüchen zu entnehmen.
Der mit der Erfindung erzielbare Vorteil besieht im wesentlichen in einer Erhöhung der Leistung einer Zentraleinheil eines elektronischen Datenverarbeitungssystems, wobei die vorgeschlagenen Maßnahmen >'< nur einen sehr geringen technischen Mehraufwand erfordern.
Im folgenden wird ein Alisführungsbeispiel der Erfindung anhand der Zeichnungen näher beschrieben. Es zeigt
·■l[ F i g. 1 ein Schaubild der verbesserten Hochgcschwindigkeits·Datenverarbeitungsanlage und ihren grundlegenden Datenfluß,
F i g. 2Λ einen l.agcplan der F-" i g. 2A bis 21,
F'ig. 2Λ bis 21 detaillierte Schaubilder der in Fig. I • · gezeigten Anlage,
F i g. 3 ein Schjubild eines Ausführungsbeispiels eines Taktgencralors mit Taktimpulsreihen veränderlicher Zykltislängc mit den zugehörigen Flingangs- und
Alisgangsanschlüssen,
I-'ig.4 ein Zeitdiagramm der möglichen Taktimpulsreihen,
Fig.5 ein Schallbild der Sleuerschaltungen für die verschiedenen Taktimpulsreihen mit vorgewählter Zykluszeit und
Fig. 6 bis 15 die Ausführung verschiedener als Beispiel gewühlter Mikroinstruktionen und die zugehörigen Zeitdiagram"ie für die Operationen.
Im Ausführungsbeispiel stellt eine Decodierschaltung nach Übertragung einer jeden Mikroinstruktion vom Steuerspeicher in ein Steuerregister durch Untersuchung die Art der auszuführenden Mikroinstruktion fest. Abhängig von dieser InstruLiionsari gibt die Decodierschaltung Steuerimpulse auf den Taktgenerator der Verarbeitungseinheit, so daß dieser eine von den drei verfügbaren Taklimpulsreihen (Basis-Taktimpulsreihe) Zyklusläng&n von 180, 225 und 270 ns oder eine Kombination von zwei dieser drei Taktimpulsreihen auswählt Dadurch wird jede Mikroinstruktion so schnei! wie möglich ausgeführt und die Systemleistung wesentlich verbessert. Im Ausführungsbeispiei -'erden bei jedem Zugriff zum Steuerspeicher zwei Mikroinstruktionen aus dem Steuerspeicher gelesen und auf den Datenpfad zum Steuerregister gegeben. Da nur eine dieser beiden Mikroinstruktionen zu benutzen ist, kann dieser Übertragungsweg für spätes Verzweigen benutzt werden, d. h., die in das Steuerregister zu lesende Mikroinstruktion braucht erst unmittelbar vor dessen Verfügbarkeit am Eingang des Steuerregisters bestimmt zu werden. Dieser Zeitpunkt liegt wesentlich hinler dem Zugriff und Lesen der Doppelinstruktion aus dem Steuerspeicher. Die Auswahl einer der beiden Mikroinstruktionen zur Ausführung kann in vielen Fällen somit bis zu einem späteren Zeitpunkt im Zyklus der Taktimpulsreihe verzögert werden, wodurch die Verarbeitungszeit durch Verwendung einer Taktimpulsreihe mit etwas längerem Zyklus (225 ns) anstelle von zwei kürzeren Zyklen (180 ns) verkürzt werden kann. Durch festgelegte Mik oinstruktionsbits oder Statusregisterbits bestimmte Verzweigungen können in der kürzeren Zykluszeit (180 ns) ausgeführt werden.
Im Ausführungsbeispiel ist eine Halbwort-/W.f/ vorgesehen, die die Ausführung einer Rechen- oder Verknüpfungsoperation eines binären Halbwortes mit der kürzesten Taktimpulsreihe gestattet. Relativ geringfügige 4/.i/-Ergän/ungsschaltungen veranlassen die Verarbeitung des zweiten Ha'bwortes durch die AI.U während der Vollwortoperation durch Erweiterung der Taktimpulsreihe (180 für dij Halbwort-Rechenoperalion) auf 225 ns für eine Vollwortopcration. Dadurch wird die Leistung /war eiwas herabgesetzt, die Hauteilkosten der ALU jedoch wesentlich reduziert.
In einem anderen Ausführungsbeispiei der Erfindung werden die Daten während der Ausführung einer Mikroinstruktion vom \ lauptspeicher auf einen Arbeitsspeicher zur Verarbeitung während einer nachfolgenden Ausführung einer Mikroinstruktion übertragen. Nach Verarbeitung der Daten werden sie in den Arbeitsspeicher zurückgesetzt, bevor sie in den Hauptspeicher übertragen werden. Die /ur Übertragung der Daten zwischen Arbeits- und Hauptspeicher benutzten Speicherzyklen erfordern wesentlich längere Perioden, als sie in den Basis-Taktimpulsreihcn zur Verfügung stehen. Infolgedessen wird eine Taktimpulsreihe mit einem Zyklus von 225 ns und einem von 270 ns oder zwei mit Zyklen von ""70 ns zur Ausführung der Mikroinslrtiktionen miteinander verbunden.
Eleschreibung des AusführungsbcispJels
Das in den Zeichnungen dargestellte Ausführungsbeispiel des Systems stellt eine Verbesserung gegenüber dem im LIS-Patent 34 00 371 beschriebenen System dar und umfaßt Mikroprogrammroutinen für die Steuerung von Makroinstruktionen der im o. a. Patent beschriebenen Art.
Vor der Beschreibung des Ausführungsbeispiels werden bestimmte, nachfolgend >.u verwendende Ausdrücke definiert. Daten sind auf Wortbasis angeordnet, jedes Wort umfaßt 4 Bytes. Jedes Byte besteht aus acht binären Datenbits und einem Paritätspriifbit. In einigen Fällen werden Daten adressiert und übertragen in Doppelwortbreite, die manchmal als gerade oder ungerade Wörter eines Doppelwortes bezeichnet werden. Im Haupt- und Steuerspeiche.' sind Daten und Mikroinstruktionen in Gruppen von 60 Viererwörtern angeordnet, die als Moduln bezeichnet werden.
Fig. I zeigt schematisch ein Ausfuhr :ngsbe>spiel des Systems, in welchem die Verbesserung t!?r vorliegendem Anmeldung benutzt werden kann. Das System enthält einen Hochgeschwindigkeitsspeicher 1, der einen Steuerspeicher XA und einen Hauptspeicher IS umfaßt. Mikroinstruktionen sind im Steuerspeicher XA gespeichert, wanrend Daten und Programminstruktior.en im Hauptspeicher Ißgespeichert sind.
Mikroinstruktionen werden der Reihe nach von der Einheit 1 auf ein C-Register 2 über eine Speicherdaten-Ausgangsleitung SDBO mit einer Breite von zwei Wörtern übertragen. Mikroinstruktionen, Daten und Programminstruktionen in der Einheit 1 werden über ein Adreßregister 3 adressiert. Verzwcigungsschaltungen 4 ändern bei Bedarf die normale Reihenfolge, in welcher die Mikroinstruktionen ausgeführt werden.
Um im Hauptspeicherteil der Einheit 1 gespeicherte Daten bearbeiten zu können, müssen sie auf den A-Arbeitsspeicher LS5 oder den ^-Arbeitsspeicher 6 oder auf externe Register 7 übertragen werden. Die Datenübertragung von der Einheit I zu den Arbeitsspeichern oder den externen Registern erfolgt über die SDBO. die SDBO-Vorassemblierer Riegel 10. den Assemblierer 11 und über Wort-, Halbwort- und Byte-Wahlschaltungen 12. Die jeweilige Stelle in den Arbeitsspeichern oder den externen Register)!, in welche die Daten zu übertragen sind, wird durch eine diesen Speichern und Registern zugeordnete Adreß-Decodicrschaltung 13 bestimmt, welche ausgewählte Bits in jeder Mikroinstruktion auf der SDBO und bestimmte Bits in den P- und /.-Bytes eines externen Sonderregisters (SPTL)TA decodiert.
Daten werden in einer Rechen- und Verknüpfungseinheit ALU20 verarbeitet, die Daten von den Arbeitsspeichern 5 und 6 über das A-Register 21 bzw. tf-Rcgistcr 22 und dm A-Assemblierer 23 bzw. den ß-Assembliercr 24 empfängt. Durch die ALUTSi zu verarbeitende Daten, die in den externen Registern stehen, werden auf die ALU20 über einen externen Assemblierer 25 und jnlweder über das /4-Register 21 und den A Assemblierer 22 oder über das fl-Register 22 und den Assemblierer 24 übertragen. Um die Daten auf dem zuletzt erwähnten Wege zu übertragen, muß eine Leitung 26 den Ausgang des /!-Registers mit dem Eingang des fl-Registers 22 verbinden. Ausgewählte binäre Konstantwerte v/srden in die A LU20 über einen V-Assemblierer 27 eingegeben.
Von der ALU20 verarbeitete Daten werden auf ausgewählte entsprechende Stellen in den ArbeitssDei-
ehern 5 oder β oder auf ein externes Register 7 über ein /'-Register 30. ein I) Register 31 und den Assemblierer Il zurüekübcrtragen. Die Auswahl des Bcstimmungsor tes für die verarbeiteten Daten erfolgt wieder durch die Adrcß-Deeodiersehaltungen 13. Verarbeitete Daten werden dann in den Haiiptspcichcrteil der Speichereinheit I über das /!Register 21, den /!-Assemblierer 23 und eine Speicher Daleiiausgangsleilung SUBI zurück gesetzt Während der Datenübertragung /wischen der Speichereinheil I und einem der Arbeitsspeicher 5 und β oder der externen Register 7 wird die Spcichcrstclle der f'Iinhcit 1 gewählt über eine erzwungene Adresse oder eine von den Arbeitsspeichern 5 oder 6 abgeleitete Adresse und über das Ii Register 22 auf das Adrcßregi stcr .3 übertragen.
In dem als Ausführungsbeispiel in F-"ig. 1 gezeigten System stellen die beiden Arbeitsspeicher 5 und 6 Spiegelbilder voneinander dar, d. h. jedesmal, wenn Daten in eine gewählte Stelle im /!-Arbeitsspeicher 5 übertragen werden, werden dieselben Daten in eine entsprechende Stelle des ß-Arbcitsspeichcrs 6 übertragen. Daher sind die in jedem der Arbeitsspeicher 5 und 6 enthaltenen Daten jederzeit identisch. Wenn jedoch Daten aus einem dieser beiden Speicher gelesen werden, werden die Datenpositionen einzeln adressiert, d. h. eine Position im /!-Arbeitsspeicher 5 wird während eines früheren Teiles eines Mikroinstruktionszyklus als /!-Datenquelle adressiert und gleichzeitig wird eine vollkommen andere Position im ß-Arbeitsspeichcr 6 als eine ß-Datenquelle adressiert. Auf diese Weise werden zwei Arbeitsspcichcrstellcn (oder eine Arbeitsspeicherstelle und ein externes Register) gleichzeitig als Datenquellen adressiert, um die Arbeitsweise des Systems zu beschleunigen.
Der Takt oder die Zeiteinteilung des Systems wird durch mehrere im wesentlichen identische Taktgencratoren 35 (d.h. 35-1 bis 35«) und einen llauptoszillator 36 gesteuert. Die Ausgangsimpulse des Hauptoszillalors 36 werden kontinuierlich an die (iingänge der Taktgencratoren 35 angelegt, [line eine Takt-Zykluslän gensteuerungs-Decodicrschaliung enthaltende und zum Steuerregister C2 gehörende Kinrichtung leitet jedoch die Oszillator-Ausgangsimpulsc wahlweise auf die verschiedenen Taktgeneratoren 35. entsprechend der gerade ausgeführten Mikroinstruktion. Abhängig von der Art der ausgeführten Mikroinstruktion wird die Zykluslänge der Taktimpulsreihen der Taktgeneratoren während der Ausführung dieser Mikroinstruktion eingestellt.
Im Ausführungsbeispiel ist für jede Schaltkarte ein Taktgenerator vorgesehen und umfaßt eine regelbare Verzögerungseinriciilung zwischen Taktgeneratoreingang und Oszillatorausgang zur Synchronisation aller Taktsignale des Oszillators.
Die Verarbeitungseinheit wird von Hand über die Konsolschalter 37 eingestellt, deren Ausgänge mit dem Steuerregister 2 und den Adreß-Decodierschaltungen 13 über einen Assemblierer 38 verbunden sind. Daten können in die Verarbeitungseinheit von den Schaltungen 37 über einen Assemblierer 39 und einen externen Assemblierer 25 eingegeben werden.
In der Speichereinheit 1 des Ausführungsbeispieles bestehen die einzelnen Speicherpositionen aus monolithisch hergestellten Transistor-Speicherzellen, in denen je ein Datenbit gespeichert werden kann. Der Transistorspeicher kann nichtdestruktiv ausgelesen werden, so daß sein Steuerspeicherteil beschrieben werden kann, d. h, die Mikroinstruktionen können wahlweise in den Sieuerspeicherteil der Speit hereinheil I eingegeben und /u jeder Zeil dadurch verändert werden, daß ein neuer Sat/ von Mikroinslriiktionen in den Stcucrspeiehcrteil geladen wird.
Im Ausführiingsbeispiel wird der Sleuerspeichcr über eine Konsolendatci 40 geladen, die über eine Magnetplaiteneinheit und die zugehörigen Steuerungen verfügt. Abhängig von den jeweiligen Anforderungen des Benutzers wird ein ausgewähltes optimales Sleiierspci· chcr-Mikroprogramm von der Konsolendatci 40 auf den Stcuertcil des Speichers I über den Assemblierer 39. den externen Assemblierer 25 und die normalen Datenwege der Verarbeitungseinheit übertragen. Die Konsolendatei 40 speichert außerdem geeignet Korn mandos, die nach Decodierung in der Linhcit 40 auf das Steuerregister 2 und die Adrcß-Decodicrschalliing 13 über den Assemblierer 38 gegeben werden, um sowohl das Laden des Sieuerteiles der Speichcrcinheil 1 zu steuern als auch die lchlcrsiiche der Verarbeitungseinheit zu gestatten.
Das in F i g. I gezeigte Ausführungsbeispiel enthält auch Bcstimmungs-Vorausschau-Schaltungcn 41. Diese Schaltungen sollen in den lallen die Daten dirckl vom Z-Rcgistcr 30 auf das /!-Register 21 und das ß-Register 22 über den Datenweg 42 übertragen, in welchen eine Datenquelle in den Arbeitsspeichern 5 oder 6 auch der Bestimmungsort für Daten in dem vorhergehenden Zyklus ist. Bekanntlich werden ja im Ausführungsbeispicl wähfftid der Ausführung einer Mikroinstruktion verarbeitete Daten für die ausgewählte Position in den Arbeitsspeichern 5 und 6 oder den externen Registern 7 erst spät bei der Ausführung der nächstfolgenden Mikroinstruktion bestimmt. Da die Daten in den Arbeitsspeichern 5 und 6 und den externen Registern 7 erst bei der Ausführung der nächstfolgenden Mikroinstruktion fortgeschrieben werden, kann der fortgcschricbenc Teil einer Stelle während der Ausführung der nächsten Mikroinstruklion nicht als Quelle adressiert werden. In bezug auf die Positionen im Λ -Speicher 5 und im ß-Spciehcr 6 erfolgt somit die direkte Übertragung der fortgeschriebenen Daten über den Datenweg 42. welcher den Ausgang des /7-Registers 30 mit dem /1 Register 21 und dem ß-Registcr 22 verbindet. Im Ausführungsbeispiel ist diese Bcstimmungs-Vorausschau-Einrichtung für die externen Register 7 nicht vorgesehen, ausgenommen davon ist jedoch das SPTZ.-Register TA, dessen Ausgang ebenfalls direkt mit den A- und Ö-Registern 21 und 22 über den Weg 43 verbunden ist. Mit Ausnahme des Registers TA. welches während der Ausführung einer Mikroinstruktion fortgeschrieben wird, kann daher kein externes Register e;ne Datenquelle für die nächstfolgende Mikroinstruktion sein.
Es folgt eine genaue Beschreibung der F i g. 2A bis 21, die nach dem Plan in F i g. 2 zusammenzulegen sind.
Die Speichereinheit 1 ist genauer in Fig.21 gezeigt und umfaßt gerade und ungerade Steuerspeicherabschnitte 100 und 101 sowie Daten- oder Hauptspeicherabschnitte 102 und 103. Wie bereits gesagt, werden Steuerspeicher und Hauptspeicher während der Lesezyklen in Breite eines Doppelwortes adressiert, und diese Doppelwörter werden dann auf die Leitung SDBO gegeben. Um ein Oberschneiden zwischen geraden und ungeraden Wörtern des Doppelwortes zu verhindern, liegen Paare von geraden und ungeraden Wörtern an den einander gegenüberliegenden Seiten und in gleichem Abstand von den Datenausgangsschaltungen 104. Der Steuerspeicher ist unmittelbar neben den
Dalcnausgangsschaltungcn 104 Lind dem Hauptspeicher 102 und 10} in größerer Lntferming von diesen Schaltungen dargestellt.
Dadurch wird eine minimale Verzögerung bei der Übertragung von Mikroinstruktionen von den Spcichcrabschnitlcn 100 und 101 in das Steuerregister 2 der I ig. 21" und die Adrcßdccodicrschaltungcn der l'ig. 2Λ i"id 2B sichergestellt. Die während der SpeicherzyK.'cn über die Lingangslcitung SDHI auf die Spcichcrcinheit 1 übertragenen Daten werden auf Worlbasis eingegeben. Ls gibt daher keine kritische Lage für die Anordnung der Datencingabcschaltungen 105 sowie die Lage von Haupt- und Steucrspeicherstellen, an welche die SI)III Leitung angeschlossen ist. Die Spcichcrcinheit 1 umfaßt außerdem eine Linzelbit-Fehlcrkorreklurschallung und eine asymmetrische Doppelbil-f'chlcrkorrcklursehaltung 106 bekannter Bauart. Da diese Schaltungen nicht näher mit der Erfindung zu tun haben und allgemein bekannt sind, werden sie nicht weiter beschrieben.
Das Adreßregister 3 ist genauer in F i g. 2F. gezeigt und umfaßt das M !-Register 110, M2-Register 111 und das AY3-Rcgistcr 112. Die Ausgänge dieser Register sind mit den Kingangstreiberschaltungen DA? 113, 114 und 115 der Speichereinheit t über die Leitungen 116, 117 und 118 verbunden. Zum Register 111 gehört ein /V2-Rückgriffregister 119 und zum Register 112 ein /V3-Rückgriffregistcr 120. Die Adressen zur Adressierung von Daten aus den Hauptspeicherabschnitten 102 und 103 oder von Mikroinstruktionen aus den Stcucrspe^herabschnitten 100 und 101 werden in die Register M I, M2 und M 3 gesetzt. Im Ausführungsbeispiel stellt das M3-Register den untersten Teil der Adreß-Registcrschaltungen 3 dar und umfaßt acht Bits (ein Byte) zum Adressieren eines von 64 Wörtern in jedem Modul. Das M2-Register ist eine Byte groß und das Mi-Register enthält vier Bits zur Adressierung verschiedener Moduln. Das wertniedere Bit 7 des M3-Registers bestimmt die Bytewahl. Bit 6 von M3 bestimmt die Halbwortwahl und Bit 5 die Wortwahl. Die Bits 0 bis 5 des M3-Rcgisters gestatten die Wahl eines von 64 Wörtern, ti. h. eines Moduls. Die acht Bits von M 2 gestatten die Wahl zwischen 256 Moduln oder ungefähr 16 000 Wörtern. Die vier Bits von Mi liefern 16 Kombinationen, wodurch eine Gesamtzahl von 256 K-Wörtern durch die Register Ml. M2 und M3 adressiert werden kann.
Im Ausführungsbeispiel kann der Steuerspeicher la maximal 16 /C-Wörter enthalten, wodurch die vom Mikroprogramm gelieferten Mikroinstruktionsadressen eine Lieferung von maximal nur 16 Bit M 2 erfordern.
Zugriffe zum Haupt- und zum Steuerspeicher erfolgen immer auf Doppelworlbasis. Im Hauptspeicher können Daten jedoch auch auf Byte-, Halbwort- oder Vollwortbasis gespeichert werden. Die durch die gerade ausgeführte Mikroinstruktion angegebene jeweilige Operation bestimmt, ob ein Wort, ein Halbwort oder ein Byte zu speichern ist.
Die meisten Mikroinstruktions-Operationen veranlassen nur eine Veränderung des A/3-Registers. In einer Routine nachfolgende Mikroinstruktionen werden soweit wie möglich innerhalb desselben Moduls gehalten, wodurch die Register M1 und M1 für eine Reihe von MikroOperationen auf demselben Wert gehalten werden können. Vierweg-Verzweigungsoperationen werden durch das Setzen der Bits 4 und 5 des M3-Registers angegeben. Gemäß obiger Beschreibung bestimmt Bit 5 von M3 die Wahl eines geraden oder ungeraden Wortes bei einer Doppclwortlesc- oder spciehcropcration. was besonders bei Mikroinstruktionsgriffcn nützlieh ist. Bei Verzweigungsoperationen gibt Bit 4 das M3-Rcgistcr an, welches von zwei aufcinandcrfolgen- -, den Doppclwörtern durch die Haupt- und Stcucrspcicher adressiert wird.
Die Register Λ/2 und N3 sind als Rückgriff-Register für die Mikroinstruktions-Adrcssierung vorgesehen. Die Adresse in Λ/2 sowohl wie in M2 ist eine Moduladresse.
in Wie bereits gesagt, kann eine Reihe von Mikrooperationen ausgeführt werden durch Adressierung der Wörter von demselben Modul im Sleucrspcicher. Die in /V 2 gespeicherte Adresse wird nur verändert, wenn durch die gerade ausgeführte Mikroinstruktion eine Änderung der Moduladresse angegeben wird. Die Register M 2 und Λ/2 werden mit dieser neuen Moduladresse geladen. Die Adresse bleibt dann im N 2- Register, bis wieder eine Änderung der Moduladresse angegeben wird. Während jede nachfolgende Mikroinstruktion im selben Modul ausgeführt wird, wird die Adresse in N 2 nach M2 für die Adressierung der folgenden Mikroinstruktion übertragen, bis ein neues Modul angefordert wird.
Wenn eine Verzweigung während der Ausführung einer Mikroinstruktion auftritt, wird der Inhalt der M-Register auf Verzweigungsadresse gesetzt. Die /V-Register bleiben jedoch unverändert, wenn die Verzweigung auftritt, so daß die laufende nächste Mikroinstruktionsadres.se aufbewahrt werden kann. Die
to Verzweigungsroutine speichert den Inhalt der A/-Register, so daß die richtige Reihenfolge der Mikroinstruktion wieder aufgenommen werden kann indem man die Register M und N mit der aufbewahrten Adresse neu lädt, wenn die Mikroprogrammroutine durch Beendi-
r, gung der Verzweigung wieder eingeleitet wird.
Das MS2-Register 125 und das MS3-Register 126 sind als zusätzliche Rückgriff-Register für die Register M2 und M3 vorgesehen. Die Register MB2 und MB3 werden auf die Mikroinstruktionsadresse gesetzt, die in
4(i den Registern M2 und M3 steht. Wenn der Taktgenerator der CPU gestoppt wird, enthalten die Register MB 2 und Mß3 Adreßbits der vorher ausgeführten Mikroinstruktion, wogegen die Register M2 und M3 die Adresse der als nächstes auszuführenden Mikroinstruktion enthalten. Die Daten in den Registern MB 2 und MB 3 werden bei Fehlerprüfroutinen benutzt.
Verzweigungs- und Prioritäts-Steuerschaltungen bekannter Bauart sind bei 127 gezeigt. Rückgriffregister 128 in Fig. 21 werden in Verbindung mit den Schaltungen 127 bei bestimmten Verzweigungsroutinen benutz' Die Schaltungen 127 in den Registern 128 haben nichts mit der vorliegenden Erfindung zu tun und werden daher nicht näher beschrieben.
Adreßdaten werden in die Register M1, M2 und M3 sowie in die Register Λ/2 und Λ/3 über die Assembliererschaltungen 130,131 und 132 eingegeben. Für jedes Adreßbit enthalten die Assemblierer 130 bis 132 mehrere UND-Glieder, deren Ausgänge mit einem ODER-Glied verbunden sind. In den ODER-Gliedern der Assemblierer 130 bis 132 sind somit die Zahlen 4,8 und 8 eingetragen, um anzudeuten, daß vier Schaltungen 130 und acht Schaltungen 131 und 132 vorhanden sind. Die Ausgänge der ODER-Glieder sind mit den entsprechenden Registern M1, Af 2, M3 sowie N2 und N3 verbunden. Die Eingänge zum Assemblierer 130 sind eine erste Leitung ACB + 1 und eine Leitung ACB, die von den Adreßgrenzprüfschalrungen 133 abgeleitet
sind und ein Mittel für weitere Zugriffe zum .Steuerspeicher 1 und /um Setzen der Grenze zwischen dem Steuerspeicher la und dem Hauptspeicher ib darstellen. Eine weitere Leitung bildet einen dritten Eingang für den Assemblierer 130 und wird in Fällen benutzt, in welchen die auf das Register M1 zu übertragenden Hits ausgewählte numerische Konstanten sind, welche vi.n der ausgeführten Mikroinstruktion abgeleitet werden.
Auf die Register Ml, M2 und M3 werden bekanntlich maximal 20 Bits übertragen, um einen Teil des Hauptspeichers Ib zu adressieren. Während der Ausführung zahlreicher Mikroinstruktionen, in denen Daten zwischen dem Hauptspeicher Ib und einem der Speicher 5 oder 6 oder den externen Registern 7 übertragen werden, wird somit die 20 Bit große, in die Register M 1, M2 und M 3 zu setzende Adresse von den wertniederen 20 Bits in der Ausgangsleitung 133 des fl-RpBjciijrc 22 in F i". 2D :ib™c!e!ie!. Diese 20 Bi! umfassende Leitung 133 wird an die entsprechenden Eingänge der Assemblierer 130 und 131 sowie 132 angeschlossen.
Ausgewählte Bits des Byte 2 vom Steuerregister C"2 der Fig. 2G werden als Eingänge 143 und 144 zu den Assemblierern 131 und 132 benutzt. Eine Eingangslcitung 145 zum Assemblierer 132 koppelt den Assemblierer mit den ausgewählten Ausgangsbits des Byte 3 aus dem C-Register. Verzweigungsadressen werden in die Assemblierer 131 und 132 von den Verzwcigungsschaltungen 127 über die Leitungen 146a und 1466 eingegeben.
Der /!-Arbeitsspeicher 5 und der der ß-Arbeitsspeicher 6 sind in Fig. 2b gezeigt und werden über Adressierschaltungen adressiert, die die Adreßdecodierschaltungen 150 und 151 umfassen. Die Schaltungen 150 und 151 bilden zusammen mit einem Decodier- und Bestimmungsadreßregister 152 für externe Register die in Fig. I (Bezugszeichen 13) gezeigten Adreßdecodicrschaltungen für Arbeitsspeicher und externe Register.
Eine Ausgangsadreßleitung 153 von der Decodierschaltung 150 wird dazu benutzt, ausgewählte Wörter in einen Arbeitsspeicher 5 zu setzen. Sie ist außerdem mit dem Adreßbestimmungsregister 154 über ein /!-Pufferregister 155 verbunden.
Jedesmal, wenn der /!-Arbeitsspeicher 5 von einer Quelle durch Decodierung der gewünschten Bits in der Decodierschaltung 150 adressiert wird, wird die Adreßdecodierung in den Puffer 155 übertragen. Falls diese Adresse dieselbe ist wie die Bestimmungsadresse für die von der ALU20 verarbeiteten Daten, wird sie dann vom Puffer 155 auf das /i-Bestimmungsregister 154 und ein ß-Bestimmungsregister 156 übertragen.
In ähnlicher Weise ist ein ß-Bestimmungspuffer 157 mit der Adreßausgangsleitung 158 der Ä-Decodierschaltung 151 verbunden. Wenn die ß-Quelle auch als Bestimmungsort dienen soll, wird die im Puffer 157 gespeicherte Adresse auf die Register 144 und 156 übertragen. Auf diese Weise werden Daten für beide Arbeitsspeicher gleichzeitig bestimmt, wodurch ein Arbeitsspeicher das Spiegelbild des anderen in bezug auf die darin gespeicherten Daten bildet.
Adressen zur Adressierung der beiden Arbeitsspeicher 5 und 6 werden teilweise von den P- und L-Registern über die Leitungen 160 und 161 abgeleitet und zum andern Teil von der SDÄO-Leitung über eine gerade/ungerade Wortwahlschaltung 162 der F ig. 2a, eine vier Byte große Leitung 163, einen Arbeitsspeicher-Adreßassemblierer 164 und eine zwei Byte große Leitung 165. die die Bytes ! und 2 (nachfolgend mit (Ί und i'2 bezeichnet) der durch die Schaltung 162 gewählten Mikroinstruktion überträgt. In ähnlicher Weise werden die Bytes (I und f'2 zur Adressierung r> der Arbcitsspeichcreinheii abgeleitet von der Konsolendalci 40 der F i g. 2a, einer Selcktorkanal-Stcuereinhcit (nicht dargestellt), den Schaltern 37 auf der Bcdienungskonsolc und Verriegelungen 166 der F i g. 2c. jedesmal über den Assemblierer 38 der F i g. 2a
in und eine Leitung 167, die mit dein anderen Eingang des Assemblierers J64 verbunden ist. Hin zusätzlicher Adrcßbiteingang zum /J-Arbeitsspeicher-Decodierkrcis 151 wird über eine Leitung 170 von der Konsolendatei 40 abgeleitet, !line von der Prioritätssteuerschaltung 127
i"> der F i g. 2i abgeleitete Leitung 171 ist mit dem Eingang der /!-Decodierschaltung 150 und der W-Decodicrschaltung 151 verbunden. Die Bits 0 bis r> des M 3-Adrcßregisters werden auf den Eingang der /t-Decodierschaltung ■ iOiibcrc'mC Leitung J72go!oiici.
Wenn die beiden Arbeitsspeicher 5 und 6 adressiert werden, um ihnen eine Information zuzuordnen, werden die Adressen in den Beslimmungsadreßrcgislcrn 154 und 156 über die Leitungen 173 bzw. 174 auf die Eingänge der Decodierschaltungen 150tind 151 geleitel.
Die Bestimmungs-Vorausschaiischaltungen 41 sind in F i g. 2b gezeigt und umfassen einen ß-Decodierteil 175 und einen /l-Dccodicrteil 176. Die Ausgangsleitungen 177 und 178 von den beiden Decodierschaltungen 175 und 176 werden an die Eingänge der beiden
ίο Vergleicherschaltungen 180 und 181 gelegt. Die Ausgangsleilungen 174 und 173 tier Bcstimmung.srcgister 156 und 154 werden ebenfalls an die Vergleichen schaltungen 180 und 181 angeschlossen. Falls eine dieser beiden Vergleicherschaltungen ein gleiches Vergleichsergebnis zwischen seinen Eingängen feststellt, wenn der entsprechende Arbeitsspeicher als Quelle im ersten Teil einer Mikroinstruklionsausführung adressiert wird, so besagt dieser gleiche Vergleich, daß die Quelle nicht fortgeschrieben worden ist, da es sich um die Bestimmungsadresse von der vorher ausgeführten Mikroinstruktion handelt. Ein gleiches Vergleich ergebnis in der Schaltung 180 liefert einen Impuls auf die Ausgangslcitung 182, wodurch der Teil der Mikroinstruktion, der nicht fortgeschrieben wurde und noch im
« Z-Register steht, direkt auf das fl-Register 22 (F i g. 2d) über das Kabel 42 geleitet wird, welches den Ausgang des Z-Registers direkt mit dem Eingang des ß-Registers 22 über die Assemblierer 190 und 191 (Fig. 2d) verbindet.
Ein gleiches Vergleichsergebnis in der Schaltung 181 liefert einen impuls auf die Leitung 183, wodurch der Teil der gewünschten Mikroinstruktion, der nicht fortgeschrieben wurde und noch im Z-Regisler steht, auf das in F i g. 2c gezeigte /!-Register 21 über das Kabel 42 und den in Fig. 2c gezeigten Assemblierer 192 übertragen wird.
Wie bereits im Zusammenhang mi! F i g. 1 gesagt wurde, werden Daten in die beiden Arbeitsspeicher 5 und 6 der F i g. 2b über den SDßO-Assemblierer 11 der F i g. 2F und die vier Byte große Leitung 193 übertragen. Der FDßO-Assemblierer 11 leitet seinen Eingang andererseits vom £>-Register 31 der Fig.2g über ein Kabel 194 oder vom i'DßO-Vorassembliererriegel 10 über die Wort-, Halbwort- und Byte-WahlschaJtungen
M 12d:rFig.2Fab.
Ausgangsdaten vom ß-Arbeitsspeicher 6 der F i g. 2b werden auf das ß-Register 22 über das Kabel 200 und den Assemblierer 191 geleitet Die Ausgangsdaten vom
Λ-Arbeitsspeicher 5 werden auf das /.-Register 21 der Fig. 2c über ein Kabel 201 und dem Assemblierer 192 f leitet.
Der Ausgang des A -Registers 21 (F' i g. 2C) wird, wie bereits gesagt, über das Kabel 26 auf die Torschaltungcn
191 (Fig. 2d) und in das «Register 220 geleitet. Das Kabel 26 koppelt auUcrdem die Bytes 0, 2 und 3 des /1-Regisiers 21 auf das UyIe 0 des Assemblierers 23, die Bytes 0, 1 und J des /t Registers 21 auf Byte des Assemblierers 23 und alle vier Bytes des /t-Registers 21 auf die Bytes 2 und 3 des Assemblierers 23.
Die ALI/20 ist zwei Bytes breit und wird daher entsprechend Byte 2 und Byte 3 in die Abschnitte ΛΙΛΙ2 und AIAJ3 unterteil (I" i g. 2g, 2h).
Byte 3 des Assemblierers 23 wird auf die Verzweigungsschallungcn 4 (F-" i g. 2d) über ein Kabel 210 gekoppelt. Die Bytes 0 bis 4 des Assemblierers 23 werden auf die Leitung SDBl über mehrere Treiberschaltungen 211 und ein vier Byte großes Kabel 212 geleitet. Die Bytt-s 2 und 3 des Assemblierers 23 sind mit ΑΙΛ12 und ALI) 3 über die Kabel 213 und 214 und über die Krcu/schaltungcn 215,216 verbunden.
Bytes 0 und I des /^-Registers 22 sind entsprechend mit den Bytes 0 und 1 des Z-Rcgisters .30 (F-" i g. 2g) über die Kabel 220 und 221 und die Bytes 0 und 3 einer vier Byte großen Torschaltung 222 in I- i g. 2h gekoppelt.
Die Bytes 2 und 3 und die Bits 4 bis 7 des Byte I im ß-Rcgistcr 22 sind über das Kabel 13.3 mit den M-Registcrcingangsschallungen ge/näß obiger Beschreibung verbunden. Die Bytes 0 bis ϊ des ß-Registers 22 sind außerdem auf die AlXl 2 und ALllidcr F ig. 2g und 2h gekoppelt über Byte 2 des Assemblierers 24, die Kabel 224 und 225, die Schiebe- und Torschaltungen 226 und 227 sowie über clic Echt/Komplementschaltungen 228 und 229.
Byte 1 des B Registers 22 ist auch mit ΛΙΛΙ2 gekoppelt über das Kabel 221. die Torschaltung 230 sowie das UND-Glied 231 und die Schiebe- und Torschaltung 226 sowie die Echt/Komplemcnt-Schaltung228.
Während der Verschiebeoperationen kann das UND-Glied 232 der F-'ig. 2d da/u verwendet werden, die vier werlhohen Bits 0 bis 3 der Byte- 3-Schallung des Assemblierers 24 und die wertniederen Bits 4 bis 7 der Bytc-2-Schaltung des Assemblierers 24 mit ALLl5 über die Schicbetorschaltung 227 und die Echt/Komplement-Schaltung 229 zu koppeln. In ähnlicher Weise kann das UND-Glied 231 (Fig. 2c) bei Vcrschiebcoperationen dazu benutzt werden, die vier wertniederen Bits 4 bis 7 des Bytes 1 des ß-Registeis 22 und die vier werthohen Bits 0 bis 3 des Bytes 2 des B Registers mit ALU2 zu koppeln.
Der Ausgang von ALU3 in der F i g. 2h ist gekoppelt mit jedem der vier Bytes des Z-Registers 30 über die vier Bytes der Torschaltung 222 und ein Kabel 235. Der Ausgang von ALU2 ist auf die Bytes 0 und 2 des Z-Registers 30 gelegt über die Bytes 0 und 2 der Torschaltung 222 und ein Kabel 236.
Wie bereits gesagt, ist der Ausgang des Z-Registers direkt mit dem Eingang des D-Registers 31 gemäß Darstellung in F i g. 2g verbunden und über ein Kabel 42 an den Eingang der /4-Registertorschaltung 190 in Fig.2d und den Eingang der Ä-Registertorschallung
192 in Fig. 2c angeschlossen. Die Bytes 0 bis 3 des Z-Registers sind außerdem entsprechend mit den Bytes S. P, Tund L des 5P71-Registers 7a der F i g. 2h über ein Byte große Kabel 240-0 bis 240-3 verbunden.
Der Ausgang des 5P7L-Registers Ta ist über vier Byte große Kabel 43 und die Torschaltungen 190 und 191 mit dem W-Rcgisler 22 der F ι g. 2d verbunden. Das Kabel 43 ist außerdem über ein ODER-Glied 242 der F i g. 2c und ein Kabel 243 sowie die Torschaltungen 192 ■> mit dem A-Register 21 verbunden.
Das OliER-Glicd 292, Kabel 243 und die Torschaltung 192 verbinden außerdem den Ausgang des externen Assemblierers 25 der F" ig. 2b mit dem /!-Register 21 der F-'ig. 2c. Die Steuerung des externen
to Assemblierers 25 erfolgt durch die Decodier- und Bestimrniingsadrcßregistcrschaltung 152a für externe Register (und ihren Assemblierer 152b), die an den Eingang des externen Assemblierers 25 über ein Kabel 250 angeschlossen ist. Die externen Register 7 sind mit
Ii ihren Ausgängen an einen Eingang des externen Assemblierers über ein Kabel 251 angeschlossen. Ein anderer liingang /um externen Assemblierer 25 wird von einem Kabel 252 gebildet, welches von dem N 2- Register 190 und dem Λ/3-Register 120 der Fig. 2e
.ϊ) kommt.
Die Konsolendatei 40 und die Schalter 37 (Fig. 2a) sind an einen anderen Eingang des externen Assemblierers über eine Torschaltung 39 und ein Kabel 253 angeschlossen.
.'"· Die Kanalstcucrschaltungen 260 der F i g. 2b sind mit einem anderen Eingang des externen Registers 25 und mit der Verzweigung*- und Prioritätsstcuerung 127 (F-" i g. 2i) über ein Kabel 261a verbunden. Die Schaltungen 260 sind außerdem auf einen Eingang des
x> Assemblierers 38 über einen Kabelabschnitt 2616 gekoppelt. Die Kanalsteuerschaltungen 260 werden zusammen mit den Eingabe/Ausgabe-Datenwegschaltungen 262 der F i g. 2b dazu benutzt, die Übertragung von Daten zwischen der in den F i g. 2a bis 2i gezeigten
i'y Datcnverarbcitungscinhcit und peripheren Hochgeschwindigkeitsgeräten wie Magnetplatteneinheiten zu steuern.
Die Schaltungen 262 umfassen ein GR 1-Eingaberegister 265, dessen F-'ingangan die Oaleneingangsleitung Bl
·»'> des Kanals I angeschlossen ist. Ein GO 1-Ausgangsregister 266 ist mit seinem Ausgang an eine ßO-Datenausgangsleitung für den Kanal 1 angeschlossen. Ein Schieberegisterpuffer 267, umfassend das Eingangs, 'gister 265, wird dazu benutzt, von der Leitung des Kanals
■•ι I auf den Hauptspeicher 1 oder vom Flauptspeicher 1 auf die Kanal-1-Ausgangsleitung übertragene Daten /u speichern.
Daten werden über die Leitung des Kanals 1 auf Bytebasis empfangen und durch die nachfolgenden
"><> Stufen des Puffers 267 so übertragen. Die Daten werden dann auf der Basis von vier Wörtern vom F'uffer 2€7 auf den Speicher 1 über einen Zweirichiungsassemblierer 268, ein Kabel 269, den externen Assemblierer 25, das ODER-Glied 242, das Kabel 243, die Torschaltung 192,
5ϊ das /l-Register 21, den /4-Assemblierer 23, Kabel 212, Treiber 211 und die Leitung SDBlübertragen.
Daten werden vom Speicher 1 auf Wortbasis zum Puffer 267 übertragen über die Leitung SDBO, die Torschaltung 162 der Fig. 2a, Kabel 163, die Riegel 10
w) der Fig.2f, die Selektionsschaltungen 12, den SDBO-Assemblierer 11, die Treiberschaltungen 140 und die externe Leitung EBI. Aus den oben beschriebenen Datenwegen ist zu ersehen, daß der Puffer 267 mit seinen zugehörigen Registern 265 und 266 de facto ein Teil der externen Register 7 isL Diese wurden jedoch wie andere Register, z. B. das Register SPTL, separat dargestellt um bestimmte Merkmale des verbesserten Systems klarer zu zeigen.
Für die vorliegende Beschreibung wurde angenommen, daß die Verarbeitungseinheit vier Kanäle für die Datenübertragung zwischen Verarbeitungseinheit und peripheren Geräten zur Verfügung hat. Somit verfügt die Schaltung 260 über vier Abschnitte, je einen für einen Kanal. In ähnlicher Weise enthält die Schaltung 262 vier Puffer und Assemblierer, von denen nur zwei dargestellt sind.
Eine Decodierschaltung 270 (Fig.2f) ist an den Ausgang des Steuerregisters CI angeschlossen. Jedesmal, wenn eine Mikroinstruktion in das Steuerregister zur Ausführung eingegeben wird, spricht die Decodierschaltung 270 auf die Bitkombination der Mikroinstruktion dadurch an, daß die zur Ausführung des Wortes erforderlichen verschiedenen Tore betätigt werden.
Die Decodierschaltung 270 enthält einen Takt-Zyklus-Längenr'.euerteil 271, der auf ausgewählte Mikroinstruktionsbits dadurch anspricht, daß die Taktgeneratoren zur Erzeugung von einer Taktimpulsreihe einer ausgewählten Zykluslänge von 180 ns (Nanosekunden), 225 ns oder 270 ns und für bestimmte Mikroinstruktionstypen von zwei Taktimpulsreihen 225 ns+ 270 ns oder 270 ns + 270 ns veranlaßt werden.
Durch die im Fehlersuchregister 272 der F i g. 2f und einer Schaltung 273 in der Fig.2i enthaltenen Einrichtungen werden Fehlersuchfunktionen aufgespürt, die mit der vorliegenden Erfindung nichts zu tun haben.
Für bestimmte Arten von erneuten Instruktions-Ausführungsversuchen kann der Inhalt des A -Registers 21 und des S-Registers 22 auf die Register 128 (Fig. 2h) über eine Torschaltung 280 (Fig. 2d) und ein Kabel 281 übertragen werden.
Wenn Rechenoperationen in ALU2 und ALU3 ausgeführt werden, werden die Paritätsbits von den Operanden abgezogen, bevor sie in die ALU geleitet werden. Ein Paritätsgenerator 282 addiert das richtige Paritätsbit zum Rechenergebnis. Für binäre und Dezimaloperationen prüft eine Paritäts-Voraussageschaltung (nicht dargestellt) in der ALU das erzeugte Paritätsbit gegen ein vorhergesagtes Paritätsbit zwecks Fehlererkennung. Fehler in den Ergebnissen einer Verknüpfungsoperation (die in ALU2 und ALU3 dupliziert wird) werden durch eine Verknüpfungs-Prüfschaltung 283 festgestellt, die die Ergebnisse von ALU2 4-5 mit denen von ALUi vergleicht.
Eine dezimale Korrektur-Steuerschaltung 284 stellt eine richtige Dezimaladdition durch Verwendung eines binären Addierers in der ALU2 und der ALU3 sicher. Dieser Vorgang wird nachfolgend genauer beschrieben. V)
Eine Schaltung 285 (F i g. 2d) überwacht die Eingänge zur ALU3 auf gültige Dezimalzahlen bei Dezimaloperationen. Im Ausführungsbeispiel sind Dezimaloperationen nur 1-Byte-Operationen.
Wenn Daten vom D-Register 31 (Fig. 2g) für die Ά Arbeitsspeicher 5 und 6(Fi g. 2b) bestimmt sind, werden sie in die beiden Arbeitsspeicher eingegeben und direkt nicht-destruktiv auf die Leitung 201 und 200 ausgelesen. Ein Antivalenzglicd 286 (Fig. 2c) stellt fest, ob die Daten in beiden Arbeitsspeichern übereinstimmen; eine bo Überprüfung des Registers 287 und eine Übereinslimmungsschaltung 288 stellt fest, ob die neuen Daten (1 bis 4 Bytes) vom D-Register 31 mit den Daten im A -Arbeitsspeicher 5 übereinstimmen.
Arten von Mikroinstruktionen
(1) Alle Mikroinstruktionsbits sind nur der einfacheren Erklärung halber im Steuerregister C2 dargestellt, die Adressierung von Arbeitsspeicher und externen Registern erfolgt in Wirklichkeit jedoch durch entsprechende Bits in den Dccodierschaltungcn der F i g. 2b und nicht durch die tatsächlichen Ausgangsbits des Steuerregisters.
(2) Als Beispiele für die Ausführung von Mikroinstruktionen wurden für die Daten in den verschiedenen Registern willkürliche Werte gewählt.
(3) Bezeichnungen wie /13.0-2 werden der Einfachheit halber benutzt und stellen die Bits 0 bis 2 des Byte 3 des A -Registerausganges dar.
(4) Für Register und Riegel werden vorzugsweise Polaritäts-Halleriegel bekannter Bauart verwendet, die über zwei UND-Glieder verfügen, deren Ausgänge mit den Eingängen eines ODER-Gliedes verbunden sind. Eine Datenleitung ist an einen Eingang eines UND-Gliedes angeschlossen und der phasengerechte Ausgang des ODER-Gliedes ist mit einem Eingang des anderen UND-Gliedes verbunden. Eine einzige Setz/RückstRlleitung ist direkt mit einem zweiten Eingang des anderen UND-Gliedes und über einen Inverter mit dem Eingang des einen UND-Gliedes verbunden, wobei zwischen Eingang und Ausgang eine kleine Verzögerung liegt.
Steht de Setz/Rückstclleitung auf 0, wird die Verriegelung ein nichtinvertierender Verstärker und erzeugt an ihrem Ausgang ein Signal, welches dem Signal auf der Datcneingangslcitung entspricht Führt die Setz/Rückstelleitung ein Einersignal, verriegelt sie in diesem Moment im Vcrknüpfungszusland der Datenleitung und hält diesen verriegelten Zustand bei, bis die Setz/Rückstelleitung wieder auf 0 zurückkehrt.
Taktgeneratoren und Steucrschaltungen
Jeder Taktgenerator 35 umfaßt gemäß Darstellung in Fig. 3 mehrere Eingänge und erzeugt auch wieder mehrere Ausgangssignale, von denen im Ausführungsbeispiel jedes ct'.va 90 ns dauert und gegen das vorhergehende um ctwn 45 ns zeitlich verschoben ist.
Einzelheiten eines solchen Taktgenerator 35 sind im TDB Band 12, Nr. 1, Seiten 71 bis 73, vom Juni 1969, bekanntgemacht worden. In F i g. 3 wurden die Symbole für echte Werte ( —) und Komplcmcntwerte ( + ) verwendet, in allen anderen Teilen der Zeichnungen und der Beschreibung ist das Zeichen für ein Komplement jedoch » —« und die Verwendung keines Vorzeichens bedeutet den echten Wert.
Kurz gesagt umfaßt der Taktgenerator mehrere Gleichstrompegel, von denen jede einen entsprechenden echten und einen Komplcmcnt-Ausgangswcrt für die O-Zcit, 0-Verzögerungszeit, 1 -Zeit, I-Verzögerungszeit, 2-Zeit und 2-Verzögcrungszeit erze-jgt. Diese Riegel reagieren auf Vorder- und Hinterkanten des Eingangssignals vom Oszillator 36 (Fig. 1) unter Steuerung der Zyklus-Eingangssignalc für —180 ns, — 225 ns und —270 ns, welche die Länge der auszuführenden Taktimpulsreihen bestimmen.
Der Start des Taktgenerators für jeden Zyklus wird bestimmt durch Signale auf den Leitungen + Taktstart RUckstcllung und —Taktstart. Der Taktgenerator kann in seine Ausgangsstellung zurückgesetzt werden durch Anlegen eines Signals an den + Rückstcllcingang. Ein + Fchlerstopeingang ist vorgesehen, um den Taktgenerator dazu zu zwingen, O-Taktzyklen beizubehalten, bis das f-'ehlersignal ausgeschaltet ist.
Wie aus Fig. 4 zu ersehen ist, hat jedes der
obengenannten Taktsignal wie O-Zeit, O-Verzögerungszcit, I-Zeit usw. eine Dauer von 90 ns und relativ zum vorhergehenden Signal eine Verschiebung oder zeitliche Verzögerung von 45 ns. Somit ist die 0-Verzögerungszeit um 45 ns gegen die O-Zeit verschoben, die I-Zeit um 45 ns gegen die O-Verzögerungszeit und die I -Verzögerungszeit um weitere 45 ns gegenüber der 1-Zcit usw. verschoben. In Fig. 4 sind außerdem die Oszillator-Eingangssignalpcgcl dargestellt.
Die Taktzyklus-Längcnstcuerschaltung 271 ist in F i g. 5 gezeigt und umfaßt die Verknüpfungsschaltungen, welche für den Taktgenerator 35 Steuersignale für Taktimpulsreihen von 180 ns, 225 und 270 ns erzeugen (entsprechend den mit — 180-ns-Zyklus, —225-ns-Zyklus, -270-ns-Zyklus bezeichneten Leitungen in F ig. 3).
Die Decodierleitungen BR und BR+MS für den Vcrzweigungs- und Modulumschalter Y werden im ODER-Glied 300 verknüpft, dessen Ausgang über ein UND-Glied 302 und ein ODER-Glied 303 auf die Sleucrieiiung 30i für 225 ns gegeben wird, wenn die hochwertigen Verzweigungsbits (70.4 — 7 größer gleich 0111 sind. Das bedcu.'et, daß ein Zyklus von 225 ns angefordert wird, wenn die hochwertigen Verzweigungsbils die Prüfung der Vcrzweigungsquelle anfordern, um M 3.4 auf die Wahl der nächsten Mikroinstruktion zu setzen. Somit wird die Bitleitung C0.4 (d. h. C0.4 hat den Wert 1000) mit dem Ausgang des UND-Gliedes 312 verknüpft, welches die Bits C0.5—7 gleich 111 decodicrt, und das Ausgangssignal des ODER-Gliedes 304 wird als ein Eingang auf das UND-Glied 302 gegeben.
Wenn die Bits C0.4 — 7 kleiner Olli sind, d.h., wenn eine lcste Verzweigung oder die Prüfung eines 5-Registcrbits vorliegt, erfolgt die Umkehrung des Ausgangssignals des ODER-Gliedes 304 durch die Schaltung 305 und Anlegen eines Signals an die Steigleitung 306 für 180 ns über das UND-Glied 307 und ein ODER-Glied 308 zur Einleitung eines 180 ns langen Zyklus.
Wenn eine Verzwcigungs- und Verbindungsinstruktion BAL (C'0.0—3 = 0010) dccodicrt wird, wird das Signal auf der Dccodicrleitung BAL abwechselnd über das UND-Glied 313 auf das ODER-Glied 308 oder über das UND-Glied 314 auf das ODER-Glied 303 gegeben, abhängig davon, ob das Bit C04 auf 0 steht (eine Verbindungsinstruktion) oder auf I (eine Rückkehrinsiruktion).
Ein UND-Glied 315 dccodicrt die Verschiebungsinstruktion (C'0.0-3 = 0011), und sein Ausgangssignal wird auf das ODER-Glied 308 gegeben, um einen Zyklus von 180 ns Länge /ti erzeugen.
Eine arithmetische Vollwortinstruktion wird durch CO. 1.2= 10 und dadurch angegeben, daß C'0.4-7 = 0000, 0001 oder 0010 ist. Die arithmetische Vollwortinstruktion wird teilweise durch Decodierung der Bits C0.0.1 = 10 im UND-Glied 319 dccodicrt, um die 10-Form der arithmetischen Mikroinstruktion zu erhallen. Die Bits C 0.6.7 werden im Inverter 320 decodiert, dessen Ausgangssignal auf cm UND-Glied 322 geleitet wird. Die Hits - C"0.4 und - C0.5 bilden außerdem Eingangssignal urn UND-Glied 322. Die Ausgangssignale der Schaltungen 319 und 322 werden als Eingänge iiiif ein UND-Glied 321 gegeben, dessen Ausgangssignal ■Ulf die Dccodicrleitung 323 der arithmetischen Vollwortinstruktion gegeben wird. Hin Signal auf der Leitung 323 erzeugt einen /yklus von 225 ns, da es als ein Eingang auf das ODEK-Glied 303 gegeben wird.
Die 10-Form der arithmetischen Mikroinstruktion liefert ein Signal auf das ODER-Glied 308 über das UND-Glied 328 und erzeugt, abgesehen von Vollwort- und Dezimaloperationen, in allen Fällen Zyklen von 180 ns. Zu diesem Zweck wird das Ausgangssignal des UND-Gliedes 319 auf das UND-Glied 328 geleitet. Eine Decodierschaliung 318 gibt ein Signal auf einen Inverter 329, wenn sie die Bits C0.4—7 gleich 1010 decodiert, die eine Dezimaloperation bezeichnen. Das UND-Glied
ίο 322, welches zur Decodierung von arithmetischen Vollwortoperationen benutzt wird, ist ebenfalls an einen Eingang des Schallgliedes 329 angeschlossen. Die Schaltung 329 erzeugt ein Ausgangssignal nur, wenn kein Eingangssignal vorhanden ist (wenn z. D. weder eine Dezimal- noch eine Vollwortoperation vorliegt) und veranlaßt dadurch das UND-Glied 328, ein Signal auf das ODER-Glied 308 für einen 180-ns-ZyW.is zu leiten.
Die Decodierung der arithmetischen Mikroinstruktion 10 durch das UND-Glied 319 zusammen mit der Decodierung der Bits C0.4—6 = SOIO (d.h. Dezimaloperation) erzeugt am Ausgangeines UND-Gliedes325 auf der Dezimaladditions-Decodierleitung 326 ein Signal, welches auf die Steuerleitung 301 für einen 225-ns-Zyklus über das ODER-Glied 303 gegeben wird. Ein UND-GlicdSiydccodiert die Bits CO.1,1 = 11 für jede 11-Form einer arithmetischen Mikroinslruktion und liefert ein Signal auf einen Eingang des ODER-Gliedes 308, wodurch ein Zyklus von 180 ns ausgeführt wird.
ίο Die Decodierung der Speicher-Mikroinstruktionsbits C0.01 = 01 im UND-Glied 330 leitet den Zyklus der drei Polaritätshalleriegel 340, 341 und 342 ein. die der Reihe nach auf 1 gesetzt werden, um an ihren Ausgängen eine Speicher-1-Zykluszeit, eine Speicher-
r> Verricgelungszeit und eine Speicher-2-Zykluszcit zu erzeugen. Der erste Polaritätshalteriegel 340 wird durch das O7~-Signal zur Zeit 0 während des ersten Zyklus gesetzt; der Polaritätshalteriegel 341 wird durch das I Γ-Signal zur 1-Zeit während des ersten Zyklus und der Polaritätshalteriegel 342 durch das ΟΓ-Signal zur O-Zeit des zweiten Zyklus gemäß nachfolgender Beschreibung gesetzt.
Die Speicherzykluszeiten 1 und 2 werden zusammen mit der Decodierung der Speicherinstruklionsbits und ihrer Unterformbits dazu benutzt, einen Zyklus von 225 oder 270 ns während des ersten Speicherzyklus einer Speichermikroinstruktion und einen Zyklus von 270 ns während des zweiten Speicherzyklus zu wählen.
Somit werden die Signale auf der Speicher-Mikroin-
5(i struktions-Dccodierausgangsleilung vom UND-Glied 330 und der Leitung für den zweiten Speicherzyklus auf ein UND-Glied 350 geleitet, um die Steuerlcitung 351 für den 270-ns-Zyklus während aller zweiten Speicherzyklen zu erregen.
r>5 Während eines ersten Speicherzyklus decodieren die UND-Glieder 331, 332 und 333 ein Speicherwort, ein Speicherhalbworl bzw. ein Speicherbyte und ihre Ausgangssignalc werden auf ein ODER-Glied 352 geleitet, dessen Ausgangssignal wiederum an ein
wi UND-Glied 353 angelegt wird. Das Signal auf der Leitung für den ersten Spcichcrzyklus wird ebenfalls als ein Eingangssignal an das UND-Glied 353 angelegt und die Speichcr-Mikroinstruktions-Decodicrleilung vom UND-Glied 330 bildet den dritten Eingang zum
ftr> UND-Glied 353. Somit veranlassen das ODER-Glied 352 und das UND-Glied 330 während eines ersten Speicherzyklus das UND-Glied 353 zur Erzeugung eines Ausgangssignals auf der Steuerleitung 351 für den
270-ns-Zyklus, wenn die Unterform der Mikroinstruktion ein Speicherwort, ein Speicherhalbwort oder ein Speicherbyte ist.
Wenn die Unlerform der Speicher-Mikroinstruktion ein Lese-Vollwort, ein Lese-Halbwort oder ein Lesebyte ist, decodieren die UND-Glieder 335,336 bzw. 337 diese Unterform entsprechend. Ihre Ausgangssignale werden an ein ODER-Glied 354 angelegt, welches zusammen mit den Signalen auf der Leitung für den ersten Speicherzyklus und der Speicher-Mikroinstruktions-Decodierleitung ein UND-Glied 355 zur Erzeugung eines Ausgangssignals veranlaßt, welches über das ODER-Glied 303 auf die Steuerleitung 301 für den 225-ns-Zyklus geleitet wird.
Die Einstellung der Riegel 340 bis 342 wird jetzt genauer beschrieben. Setzen und Rückstellen dieser Riegel erfolgt durch die Inverter 343 und 345 und die Eingangstaktsignalzeit 0. Ein Inverter 344, ein UND-Glied 346 und die Leitungen für die Eingangstaktzek I und die I-Verzog irungszeit liefern die Setz/Rückstellft ml/1 irvr» fit r si&rt V^if»rri»l 341
Ein Inverter 347 und ein UND-Glied 348 veranlassen das Setzen des Riegels 340 während des ersten Zyklus einer Speichermikroinstruktion und verhindern das Setzen während des zweiten Zyklus.
Verzweigungs-Mikroinsifuktion
F i g. 6 zeigt (Mikroinstruktion »Verzweigung«) schematisch die Ausführung einer typischen Verzweigungs-Mikroinstruktion, welche eine Zykluszeit von 180 ns erfordert. F i g. 7 ze;f?t das Zeitdiagramm für verschiedene Operationen bei der Ausführung der Verzweigungsinstruktion. Das Steuerregister C2 ist auf der rechten Seite der Fig. 6 mit den Bytepusi'.ionen CO, Cl, C2und C3 dargestellt. Die Hexadezimaler·..: der vier Bytes der Mikroinstruktion 1036204 F sind über dem Register 2 dargestellt. Die Datenbitposilionen in jedem Byte sind in der linken Spalte im Steuerregister Cangegeben und die Bitwerte der Mikroinstruktion in der rechten Spalte. Willkürlich gewählte Werte wurden dem P-Register und dem Byte 1 des K-Registers auf der Adresse 13 in den Arbeitsspeichern 5 und 6 zugeordnet.
Die vier werthohen Bits C0.0—3 haben den Wert 0001 und bezeichnen damit eine Verzweigungs-Mikroinstruktion. Der Grund für die Ausführung dieses Verzweigungswortes liegt in der Verzweigung einer Mikroinstruktion innerhalb desselben Moduls des Steuerspeichers. M 2 wird von Λ/2 gesetzt und bleibt daher gleich, nur /V/3 wird verändert. Die spezielle Wortadresse innerhalb des Moduls (die Änderung nach M 3) wird bestimmt durch
1. das werthohe Verzweigungsfeld C0.4 — 7,
2. die nächsten Adreßbus C3.0— 3 und
J. das niedere Verzweigungsfeld C3.4 —7.
Da eine immer auf eine Wortgrenze aufgerichtete Mikroinstruktion adressiert wird, bleiben die Bits 6 und 6 von /V/3 unberücksichtigt, da es sich um Bytcwahlbits des Adreßregisters handelt.
Die hochwertigen Verzweigungsbil.s C0.4 — 7 sind gleich 0000 und zwingen daher Bit 4 von M3 auch auf 0. Eine Decodierung des wertniederen Verzweigungsfeldes (1111) führt zur Übertragung von Verzweigungsquellendaten auf die Verzweigungsschaltungen 4 und zwingen Bit 5 des M3-Registers in eine einer Prüfung entsprechenden Stellung. Die vier werthohen Bits C 3.0— 3 führen zur direkten Arbcitsspeiehcradrcssierung, wodurch die vier wertniederen Hits des /'-Registers zusammen mit den Hits Cl.1 — 3 durch die Schaltung 150 decodiert werden und das LZ-Register im /^-Arbeitsspeicher 5 adressieren. Die Daten im L/-Register werden auf das /4-Register 21 übertragen. Bits C 1.4—5 führen zur Übertragung des Hexadezimalwertes FB (Byte 1 des LZ-Registers) von A 1 auf die Positionen von Byte 2 und 3 des /1-Byteassemblierers23. Byte 3 des /4-Byteassemblierers 23 wird auf die Verzweigungsschaltungen 4 geleitet und die wertniederen Verzweigungswahlbils C3.4 — 7 leiten Bit 7 der
ίο Verzweigungsschaltungen, d. h., eine logische 1, auf Bit 5 des M3-Registers. Die Übertragung der Quellendaten vom /!-Arbeitsspeicher 5 auf die Verzweigungsschaltungen 4 erfolgt ungefähr in der Zeit von 35 bis 75 (Fig. 7). Das Setzen des M3-Registers erfolgt in diesem
H speziellen Fall ungefähr zwischen 45 und 90, da die Verzweigungsinstruktion von einer Art ist, bei welcher die Verzweigungsquelle Bit 5 des /W3-Registers setzt, welches entweder das gerade oder das ungerade Wort eines Doppelwortes wählt und erst später im Zyklus benötigt wird. Das Doppelwort wird aus dem
Auswahlleitung ungefähr in der Zeil zwischen 75 und 105 gelesen.
Die Verzweigung zu einer neuen Mikroinstruktion ist begleitet durch die Fortschreibung des P-Regisicrs auf die neue Arbeitsspeicheradres!,ierung. Somit führen die Bits C2.2—3 ungeiihr zur Zeit 45 bis 90 zur Adressierung des P-Registers und Übertragung seines Inhalts auf das B-Register 22 und dann den Asscmblie- rer 24 und ALU2 und ALU3. Die Bits C 1.6,7 leitenden K-Wert (C2.4-7) auf ALU2 und ALLlX Ungefähr zur Zeit 45 leiten die Bits C2.2.3 den Wert im P-Regisicr (00000010) über das ß-Register 22 und den Byteassemblierer 24 auf ALLJ2 und ALUi. Der S-Schalter tritt in
J5 Tätigkeit bei einer Decodierung der Bits 6 und 7 des Byte CI der Mikroinstruktion, welches gleich 10 ist. und leitet den Wert des /C-Feldes 0001 in den höherwerti^en Eingang von ALU2 und ALU i und den Wert 0000 in den nicderwerligen Eingang. Wenn d.: · Werte für Pund K in der ALU ODER-verknüpfl werden (d. h. Bit C2.I erfordert eine ODER-Funktion), wird das dem I lcxadezimalwert 12 gleiche Ergebnis im Z-Registcr 30 gespeichert. Ungefähr zur Zeit 135 wird das Ergebnis in das P-Register gesetzt.
Arithmetische Mikroinstruktion — echte Vollwortaddition
F i g. 8 zeigt schematisch die Ausführung einer echten Vollworladdition (d.h. ohne Komplcmcntbildung), die einen Zyklus von 225 ns j;emäß Darstellung im Zeitdiagramm der F i g. 9 erfordert. Der untere rechte Teil der F i g. 8 zeigt die Operationen, die nach dem Zeitpunkt 180 in dieser Taktimpulsrcihe erfolgen. In diesem Zusammenhang wird auf die .Setz/Rückstcllcitung für das Z-Register im Zeildiagramm hingewiesen, aus welchem zu ersehen ist, daß die Bytes 0 und I des Rechteckergebnisses im Z-Register erst nach Beginn des folgenden Mikroinstruklions/.yklus gespeichert werden. Dadurch wird die Ausführung der Mikroin-
bo struklion in keiner Weise gestein, da das F.rgebnis erst in das D-Register zum Zeitpunkt 45 des folgenden Zyklus gesetzt wird.
Die Mikroinstruktion B04E64AC des Beispiels ist eine Mikroinstruktion für eine echte Vollwortaddition mit Sonderleitung. Das Hauptziel der Mikroinstruktion ist die Addition des im K-Regisler (Teil des Arbeitsspeichers 5) gespeicherten Vollwortes zu den acht wcrtnicdcren Bits (/.. B. Uvtc 3 des Y-Registers im
ß-Arbeitsspcicher 6, Die unteren 24 Bits (ζ. B. Bytes I bis 3) des Ergebnisses sind auf die unteren 24 Bits des K-Registers zu leiten.
Die Decodierung der Bits C0.l,2 schreibt eine Rechen-Mikroinstruktion vor. Die Decodierung der Bits CO.2,3 bestimmt die Form der Rechenoperation, d. h. Operanden werden an der ß-Quelle gefunden und die A -Quelladressen und das Ergebnis wird in der Ö-Quelladresse gespeichert. Die Decodierung der Bits C0.4 —7 schreibt eine echte Vollwortaddition vor.
Decodierung der Bits Cl.0 — 3 fordert einen direkten Arbeitsspeicherzugriff der Λ-Quelle, worin die Bits 1, 2 und 3 des Bytes Cl zusammen mit den Bits 4 bis 7 des P-Regislers zur Wahl der V-Registersielle (d. h 14) im A-Arbeitsspeicher 5 benutzt werden. Der Inhalt des V-Registers, der Hexadezimalwert !497C5A 2 wird in das /4-Register 21 und dann auf den A-Byteassemblierer 23 aufgrund der Decodierung von C 1.4,5 übertragen, die die Übertragung aller 32 Bits oder vier Bytes des V-Registers fördert. Bits 6 und 7 des Bytes Cl sind
JLU^lilllU-JCl/.UU^, UIC 11LJ1 UIC ^T WCl UIICUCI CIl Ulla IUIC wertniederen Bytes 1, 2 und 3) des aiii der Rechenoperation erhaltenen Ergebnisses im V-Rej'ister an der Arbcitsspeicheradressc 16 speichern lassen oder für diese Stelle bestimmen lassen.
Die Decodierung der Bits C2.0—3 führt zur direkten Adressierung des iS-Quellenoperanden, wobei die Bits 1, 2 und 3 des C2-Bytes und die Bits 4 bis 7 des P-Registers zur Adressierung des K-Registers im ß-Arbeitsspe;cher 6 benutzt werden. Der Inhalt des K-Register, nämlich der Hexadezimalwert 2DEC5972, wird auf das Ö-Register 22 übertragen und die Bytes 2 und 3 dieses Wortes werden dann auf den ß-Byteassemblierer 24 übertragen. Die Decodierung der Bits C2.4.5 führt zur Leitung nur der wertniederen acht Bits, das ist das Byte 3, der Daten im ß-Bytcasscmblierer auf die ALU 3 und zur Sperre der 24 werthohen Bits (Bytes 0 bis 2) der ß-Quelle. Dadurch wird Byte 2 im ß-Assemblicrcr 24 daran gehindert, auf die All12 übertragen zu werden. Die Werte in der Al.U2 werden addiert und in die Bytes 0 und 2 des Z-Registers 30 eingegeben und die Werte in der ALU3 werden ebenfalls addiert und in die Bytes 1 und 3 des Z-Registers 30 gesetzt
Bits C3.0—5 werden in das /Vn-Register zur Adressierung der nächsten Mikroinstruklion gesetzt, die nächste Mikromsiruktion ist dann im selben Modul und daher wird das A/Z-Register vom N 2-Register gesetzt.
Die oben beschriebenen Operationen laufen alle innerhalb der ersten 180 ns der Taktimpulsreihe ab, wie aus dem Zeitdiagramm zu ersehen ist. Beginnend bei der Zeit 180 werden die Operationen ausgeführt, die schematisch in den unterbrochenen Linien im rechten unteren Teil der Fig. 8 gezeigt sind. Zur Zeit 180 werden die Bytes 0 und I des A-Registers in die Bytes 2 und 3 des Λ-Bytcassembliercrs 23 übertragen. Zur selben Zeit werden die Bytes 0 und 1 des ß-Registers in den ß-Byteasscmbliercr 24 übertragen. Der Inhalt der Bytes 2 und 3 des /I-Bytcassemblicrcrs wird auf die ALU2 und die ALLI3 übertragen. Wie bereits oben gesagt, verhindert die Decodierung der Bi's C2.4.5 das Leiten der drei werthohen Bytes der ß-Quclle in die ALU. Demzufolge wird der Inhalt des ß-Byteassemblierers für die Übertragung zur ALU gesperrt. Die Ergebnisse der echten Addition werden auf die Bytes 0 unc! 1 des Z-Registcr 30 übertragen. Diese Einstellung der Bytes ZO und Zl erfolgt gemäß obiger Beschreibung von der Zeit 0 bis .,ngefähr zur Zeit 45 des nächsten folgenden Zyklus der Taktimpulsreihe. Der Inhalt des Z-Registers wird auf das D-Register während des folgenden Zyklus zwischen der Zeil 45 und der Zeit 90 übertragen. Während des Lese-Schreibteiles des nächsten Zyklus werden nur die Bytes I1 2 und 3 des D-Registers auf das K-Register in den beiden Arbeitsspeichern 5 und 6 übertragen, da die Decodierung der Bits C 1.6,7 nur die 24 wertniederen Bits des Ergebnisses dafür bestimmt.
Beispiel für Rechen-Mikroinstruktion-Byteaddition
Fig. 10 zeigt schemutisch die Ausführung der Mikroinstruklion »FD3C2F92«. Das zugehörige Zeitdiagramm ist in Fig. Il gezeigt. Die Bits 0 und 1 des Bytes CO der Mikroinstruktion bezeichnen nach
π Decodierung eine Rechen-Mikroinstruktion. Die spezifische Operation oder Form erhält man durch Decodierung der Bits 2 und 3 des Bytei CO. In diesem Fall ist jedes der Bits gleich 1 und besagt, daß das Ergebnis einer eine A -Quelle und eine ß-Quelle
2() benutzenden Operation zur ß-Quellen dresse wegge-
an, daß es sich bei der Operation um eine echte Addition (ohne Komplementbildung) handelt. Eine Schaltersteuerung erfolgt durch die Bits 5, 6 und 7 des Bytes CO. im
2ί gegebenen Beispiel stehen die Bits auf 101 und führen zu einer Kreuzung der werthohen und wertniederen Hexadezimalwerte (5 und 7), die aus den /!-Schalter gegeben werden und dann nach der Kreuzung den hohen Wert (7) sperren. Bit 0 des Bytes Cl ist gleich 0
ίο und zeigt die direkte Adressierung des Arbeitsspeichers an, wodurch die Bits 1, 2 und 3 von C I direkt zusammen mit den wertniederen Bits des P-Registers zur Adressierung einer ausgewählten Stelle (L/Register) im Arbeitsspeicher 5 benutzt werden. Die Bits 4 und 5 des
ii Bytes Cl der Mikroinstruktion sind gleich Il und führen zur Wahl des Bytes 3 des vom Arbeitsspeicher 5 ausgewählten /A-Quellcnregisters [U^)- Bit b und 7 des Bytes Cl sind gleich 00, so daß das Zustandsregisl'r S nicht gesetzt wird. Bits 0 bis 3 des Bytes C2 werden
■to dazu benutzt, das W-Registerim ß-Arbeitsspeicher6 als ß-Que'le direkt zu adressieren. Die wertniederen Bits im P-Register werden wieder für einen Teil der Adreßdecodierung bei der Auswahl des W-Registers benutzt. Der ganze Inhalt des W-Registers wird auf das
■ι1; ß-Register 22 übertragen und der Wert (28) im Byte des W-Registers wird zur Übertragung auf beide Bytepositionen des ß-Byteassembliercrs 24 durch die Bits 4 und 5 des Bytes C2 der Mikroinstruktion ausgewählt. Bits 6 und 7 des Bytes C2 der Mikroinstruktion führen zur
w direkten Leitung der Bytes im ß-Assemblierer 24 auf die 4/.i/2und ALU3. Die hexadezimalen Zahlen 05 und 28 werden zueinander in jedem /ILiV-Abschnitt addiert und mit n'nem Vergleich der Ergebnisse festgestellt, ob ein Fehler in den A /.LZ-Abschnitten aufgetreten ist oder nicht. Wenn kein Feh'er auftrat, wird das Ergebnis, in diesem Fall der Hexadezimal wert 2D, auf jedes Byte des Z-Registers 30 übertragen.
Die ausgeführte Mikroinstruktion muß außerdem die als nächstes auszuführende Mikroinstruktion adressie-
W) ren. Somit we-den die Bits 0 bis 5 des Bytes C3 der Mikroinstruktion dazu benutzt, mindestens teilweise die Adresse der nächsten Mikroinstruktion zu bilden. Die Bits 0 bis 3 des Bytes C3 werden also direkt auf die Bits 0 bis 3 des /W3-Registers übertragen. Bit 6 und 7 des Bytes C3 erfordern eine Verzweigung enisprechend der Stellung der Bits 4 und 5 des 5-Registers. Es wird angenommen, daß die Bits 4 und 5 des S-Registers auf 1 stehen.kSie werden entsprechend mil den Bits 4 und 5
des Bytes CJ C)DCR-verknüpfI und cliis logisch Il gleichkommende Ergebnis wird in clic Bits 4 und 5 des /V/3-Registers geleitet. Der zeitliche Ablauf der obigen Operation ist aus der Zeittabelle der I' i g. 11 /ti ersehen. wo das Setzen des Steuerregisters von 0 auf die Zeit 45 , /u sehen ist, wodurch die Bildung der nächsten Mikroinslruktionsadresse /wischen der Zeil 43 und der Zeit 40 abgeschlossen werden kann. Die nächste Mikroinstruktion kann darstelliingsgemüß ausgelesen worden, indem die Wahllcitung ungefähr zur Zeit 75 ln beginnt. Die A- und //-Qiicllen werden von den A- und //•Arbeitsspeichern 5 und 6 /wischen der Zeit 35 und der Zeit 70 gelesen und die A- und //-Quellen stehen in den A- und W-Rcgistern /wischen der Zeil 45 und der Zeit 40 zur Verfügung. Die Wege /wischen den A- und η ß-Rcgislern 21 und 22 und den zugehörigen Byteassemblierern 2.3 und 24 beginnen ungefähr zur Zeil 45 /u leiten und die Umschalter zwischen den Bytcassemblieicni und der Ai.U ebenfalls. Die At.ii ieiiei ungefähr zur Zeit 90 eine ausgewählte Rechenoperation ein und >n ungefähr zur Zeit 135 wird der Eingang zum /-Register 30 leitend. Daten, die von einer vorhergehenden Ausfuhrung einer Mikroinstruktion eventuell noch im /Register stehen, werden vom /Register auf das D-Register übertragen, beginnend ungefähr zur Zeit 45. », und diese Daten werden dann vom D-Register auf die ausgewählten Stellen im A- und //-Arbeitsspeicher 5 bzw. 6. beginnend bei der Zeit 90. übertragen. Die Durchgangsprüfung der bestimmten Information erfolgt zwischen den Zeitpunkten I 35 und 180. m
lichte De/imaladdition
Fig. 12 zeigt schematised eine typische Dczimal-Additions-Mikroinstruktion BA 4Cbf~AC uv.d Fig. 13 die Zeiteinteilung der verschiedenen Maschincnoperatio- j, nen. Die Decodierung der Bits CO.0,1 ergibt eine arithmetische Instruktion. Die Decodierung der Bits CO.2,3 zeigt an. daß die Operation eine /!Quelle und eine ß-Quelle betrifft und daß Ergebnisse auf die Adresse der ß-Quellc zu setzen sind. Bits C0.4 — 7 m fordern eine dezimale Addition. Es wird angenommen. daß das Zustandsregisierbit 50 gleich 0 ist und eine echte Additionsfunktion liefert. Die Bits CIO—3 fordern die direkte Arbeitsspeicheradressierung, um die /!-Quelle zu erhalten unter Verwendung der Bits 4 bis 7 -n des P-Registcrs und der Bits C 1.1,2 und 3 zur Adressierung des V-Registers im Arbeitsspeicher 5 auf der Adresse 14. Die Bits C 1.4.5 besagen, daß die Operation mit dem Byte 3 des V-Registerinhaltes durchzuführen ist. Die Bits C 1.6,7 erfordern keine ,u Einstellung des ZuMandsregisters. Die Bits C2.0—3 fordern die direkte Arbeitsspeicheradressierung der ß-Quelle, um die Bits 4 bis 7 des /"-Registers und die Bits C 2.1 —3 zur Adressierung des V-Registers an der Stelle 16 im ^-Arbeitsspeicher 6 zu nutzen. Die Bits C2.4.5 zeigen an, daß Byte 3 des y-Registerinhaltes zu bearbeiten ist. Die Bits C2.6.7 zeigen an, daß die Leitung der ß-Quelle normal oder grade ist, d. h. die hohen und niedrigen Hexadezimalwerte des Bytes 3 werden entsprechend auf die hohen und niedrigen Positionen μ der ALU2 und ALU3 geleitet. Bits C3.0—5 einschließlich werden auf das M3-Register übertragen und das A-/2-Register wird aus dem /V2-Register gesetzt, um die nächste Mikroinstruktion aus demselben Speichermodul zu adressieren.
Somit ist aus Fig. 12 zu ersehen, daß die direkte Arbeitsspeicheradressierung der A- und ß-Quellen den Inhalt des V-Registers aus dem Arbeitsspeicher 5 auf this A-Register 21 und ilen Inhalt des >'Registers im dem Ii -Arbeitsspeicher h auf das //-Register 2. überträgt. In den Mylcposiiionen 0. I und 2 der A- um //-Register sind Xc dargestellt, da der Inhalt diesel Bytes während der Operation nicht benutzt wird. Wit oben gezeigt, wählten die Bytewahlbils die Bytes 3 de: Inhaltes ties V Registers und ties V Registers. Somi wird HyIe 3 im A Register 21. welches den llexade/i malwert 07 enthüll, auf alle vier liyteposittonen de: /A-Byteassemblierers 23 übertragen. Dieser Wen win dann von den Positionen für HyIe 2 und MyIe 3 de1 /1-Byteassemblierers direkt auf die Λ-Eingänge vor ALI/2 und AIA11 gegeben. ISvIe i im //Register ha einen I lexatle/imalwerl von 15 und wird auf beidi Bylepositionen des /MJyleassemblierers 24 und voi tlort über die Echt/Komplement 'Schädlingen TIC im die //Eingänge der Al.1'2 und AIA/~i übertragen. l)ii hexadezimalen Werte werden in der Al.Ill addiert um diis hexadezimale Eigcbtns iC wnti auf iiiie viu Bytepositionen ties /Registers 30 übertragen. Aiii oben im Zusammenhang mit tier Mikroinstruktioi beschriebenen Operationen erfolgen während de ersten 180 ns des Zyklus. Die während tier Ausführuiij tier Mikroinslruklion nach dem Zeitpunkt ISOdurchge führten Operationen sind in unierbrochenen Linien ii der unteren rechten Ecke der E i g. 12 gezeigt. Zur Zei 180 wirtl der llexade/iinalwert IC vom Byte 3 de1 /■Registe ; .iiif Byte 3 ties A-Registers und von dort au die Bytes 2 und 3 des /A-Bytcasscmbliercrs 2 übertragen, um an die /A-Eingänge tier AUJ2 um Al.Il Ϊ angelegt zu werden. Die vier Eingänge für dii De/imalkorreklurstcueriingcn. B\ls C 3.0— 3. Bit C 3.4 —7. sowie die beiden IJbertragsbits der erstei De/imalopcration sorgen dafür, daß der Ai-Assemblic rer eine Korrcklur/ahl Ob auf die //-Eingänge de Al.112 und AlAJl gibt. Der Korrekturfaktor wird /1111 hexadezimalen Ergebnis der ersten Operation addiert um ein korrigiertes hexadezimales Ergebnis 22 zi erzeugen, welches vom Ausgang der AIAJZ auf da: /Register 30 übertragen wird. Aus dem Zcitdiagramn der l-'ig. 13 ist /u ersehen, daß das Setzen de: korrigierten Ergebnisses in das /-Register 30 ungefähi zwischen den Zeitpunkten 0 und 45 des folgender Zyklus stattfindet. Kur/ danach wird dieses korrigierte Ergebnis in das D-Register gegeben und danach au Byte 3 des V'-Registers in den beiden Arbeitsspeichern ! und 6 zurückgeführt.
Speicher-Mikroinstruktion
Die Ausführung der Speichermikroinstruktior 487ß2D££ ist schematisch in den Fig. 14a und 1+1 gezeigt und die Zeiteinteilung der verschiedener Maschinenoperationen in den Zeitdiagrammen dei Fig. 15a und 15b. Aus den Zeitdiagrammen ist zi ersehen, daß die Ausführung der Speichermikroinstruk tion zwei Taktimpulsreihen (Speicherzyklen 1 und 2) mi jeweils 270 ns Dauer erfordert. Mit der als Beispie gezeigten Mikroinstruktion 487ß2DF£soll das Daten wort (oder ein Teil davon), welches in den (?-Registen der beiden Arbeitsspeicher steht, auf die Hauptspeicher adresse übertragen, die in den W-Registern diesel beiden Arbeitsspeicher steht. Bei dieser speziellei Mikroinstruktion werden die Daten auf den Hauptspei eher ib unter Verwendung der Bits 0 bis 3 de: Γ-Registers als Maske übertragen.
Die Ausführung der Mikroinstruktion wird in Zusammenhang mit den verschiedenen Bits beschrie ben, die die Mikroinstruktion bilden und darstellungsge
maß im Steuerregister 2 gespeichert sind. Die Bits O und
1 des Bytes CO bezeichnen nach Decodierung eine Speichermikroinstruktion. Die Bits 2, 3 und 4 des Bytes CO bezeichnen die Unterform der Instruktion, eine Einschreibeinstruktion. Die Bits 0 bis 3 des Bytes Cl bezeichnen nach Decodierung die direkte Adressierung der Arbeitsspeicher unter Verwendung der Bits 1.2 und 3 des By!,>. CI und der Bits 4 bis 7 des P-Registers zur Adressierung des (^-Registers auf der Adresse 17 des /!-Arbeitsspeichers. Der Inhalt F7F3F2C3 des Q-Registers wird auf das /\-Register 21 und dann auf den Λ-Byteassemblierer 23 übertragen. Die Bits 6 und 7 des Bytes C2 geben an, daß die Daten im M-Byteassemblierer unter der durch die werthohen Bits 0 bis 3 des Γ-Registers bestimmten Maske auf den Hauptspeicher Xb zu übertragen sind. Diese werthohen Bits 0010 des Γ-Registers veranlassen nur die Übertragung des Bytes
2 der Daten im Assemblierer 23 auf den Hauptspeicher
Die Adresse, auf der dieses Datenbyte gespeichert ist, wird angegeben durch die Bits 0 bis 3 des Bytes C2 der Mikroinstruktion. Die Decodierung dieser Bits veranlaßt die direkte Adressierung des Arbeitsspeichers 6 und die Bits 1,2 und 3 des Bytes C2 sowie die wertniederen Bits 4 bis 7 des P-Registers werden in der Schaltung 15! decodiert und wählen das W-Register auf der Adresse 12. Die Hauptspeicheradresse 001 EFDQO im W-Register wird auf das S-Register 22 übertragen und die wertniederen Bytes 2 und 3 vom fl-Register 22 auf den fl-Byteassemblierer 24. Byte 2 im Ö-Byteassemblierer wird auf d.c ALU2 übertragen und in den Bytes 0 und 2 des Z-Registers 30 gespeichert. Das wertniedere Byte 3 im Assemblierer 24 wird auf einen Eingang der ALU3 übertragen. Ein anderes Eingangssignal zur ALU3 fordert die Fortschreibung des wertniederen Bytes um den Wert 1, woraufhin der Wert 1 zum Byte 3 des Byteassemblierers 24 addiert und das Ergebnis in den Bytes 1 und 3 des Z-Registers 30 gespeichert wird. Die Fortschreibung der Adresse wird bestimmt durch die Bits 4 und 5 des Bytes C1 der Mikroinstruktion, welche angibt, daß die Fortschreibung eine Additionsfunktion sein muß. Die Bits 6 und 7 des Bytes C2 der Mikroinstruktion geben an, daß der Wert der Fortschreibung sich nach dem Wert der Bits 0 bis 3 des Γ-Registers richtet. In diesem speziellen Fall fordert die Decodierung der Bits im Γ-Register eine Fortschreibung um den Wert 1. Abhängig davon, ob es sich um eine Byte-, Halbwort- oder Wortoperation in bezug auf die zu speichernden Daten handelt, erfolgt die Fortschreibung in Schritten von 1, 2 oder 4. In dem Beispielwort ist nur ein Byte im Hauptspeicher weggespeichert und die Fortschreibung beträgt somit 1.
Ungefähr zum Zeitpunkt 180 des Speicherzyklus werden die Bytes 0 und 1 des B-Registers 22 auf den B-Byteassemblierer 24 und von dort die Bytes 0 und 1 des Z-Registers 30 über die ALU2 und die ALU3 übertragen. Nach der Verwendung der werthohen Bits des Γ-Registers zur Leitung der Daten in den Hauptspeicher Xb führt die Decodierung der Bits 2, 3 und 4 des Bytes CO und der Bits 6 und 7 des Bytes C2 zur Rückstellung der werthohen Bits des Γ-Registers.
Der Speicherzyklus 2 der Mikroinstruktionsausführung ist im unteren Teil der Fig. 14 dargestellt. Zu Beginn des Zyklus 2 wird durch Decodierung der Bits 2, 3 und 4 des Bytes CO und des Bits 4 des Bytes C3 die Adresse vom Wert 12 auf den Wert 13 um 1 erhöht, welche das W-Register des S-Arbeitsspeichers während des ersten Zyklus wählte und dadurch das (./-Register im ß-Arbeitsspeicher 6 adressiert. Die wertniederen Bytes 2 und 3 des Lf-Registers enthalten einen Zählwert, der
ίο gleich der Anzahl von Bytes ist, die aus dem Hauptspeicher für die Verarbeitung während einer Rechenoperation übertragen werden müssen, und zwar maximal 256 Bytes. Im gezeigten Ausführungsbeispiel des Systems wird dieser Zählwert immer in dem Register gespeichert, welches unmittelbar vor dem für die Adreßdaten benutzten Register liegt. In diesem speziellen Fall ist es das W-Register. Jedesmal, wenn ein Wort oder ein Datenteil eines Wortes vom Hauptspeicher /üi VeiHiueiiuiig übertragen und das F.rgebnis in den Hauptspeicher zurückgesetzt wird, muß die Wortzahl im ^/-Register bis zum Erreichen des Wertes 0 herabgesetzt werden, wodurch das Ende einer bestimmten Rechenoperation angezeigt wird. Die Unterform der jeweils ausgeführten Speichermikroinstruktion gibt den Wert an, um welcnen die Zahl herabgesetzt wird. Eine Byteoperation erfordert die Herabsetzung um 1, eine Halbwortoperation die Herabsetzung um 2 und eine Vollwortoperation die Herabsetzung um 4. Im vorliegenden Beispiel bezeichnen die Mikroinstruk-
)o tionsbits 2, 3 und 4 des Bytes CO nach der Decodierung eine Speichermikrooperation, wodurch also eine Herabsetzung um 4 gefordert wird, auch wenn der Inhalt des Γ-Registers 3 dieser vier Bytes im Wort maskiert. Somit wird das wertniedere Byte 08 im ß-Byteassemblierer 24 auf die ALLJ3 übertragen und um 4 herabgesetzt und dann in den Bytes ! und 3 des Z-Registers 30 gespeichert.
Zu den Zeitpunkten 45 bis 90 des Speicherzyklus 2 wird die fortgeschriebene Wortadresse (001 EFDOl),
■to die auf das Z-Register während des ersten Speicherzyklus übertragen wurde, in das ß-Register 31 übertragen. Während der Zeit 90 bis 150 des zweiten Zyklus wird die fortgeschriebene Adresse vom D-Register auf das W-Register über den SDßO-Assemblierer 11 übertragen.
Die nächste auszuführende Mikroinstruktion wird teilweise über die Folgeadreßbits 0 bis 3 des Bytes C3 der ausgeführten Mikroinstruktion adressiert. Die hohen Verzweigungsbits 5,6 und 7 des Bytes CO werden
decodiert, wodurch das Bit 4 des M3-Registers auf 0 gesetzt wird. Die niederen Verzweigungsbits 5, 6 und 7 des Bytes C3 veranlassen nach der Decodierung das Setzen des Bits 5 im M 3- Register auf denselben Wert, den das Bit 7 des 5-Registers hat Im vorliegenden Beispiel ist Bit 7 des 5-Registers gleich 0, also auch Bit 5 des Λ/3-Registers. Eine Modulumschaltung ist in der gezeigten Mikroinstruktion nicht vorgesehen, wodurch der Wert der Adreßbus in dem Λ/2-Register in das A/2-Register zur Adressierung der gewünschten Mi-
kroinstruktion in demselben Modul gesetzt wird.
Hierzu 21 Blatt Zeichnungen

Claims (9)

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

Family

ID=21847906

Family Applications (1)

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

Country Status (6)

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

Families Citing this family (47)

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

Family Cites Families (5)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE3424962C2 (de)
DE2542751C2 (de) Datenverarbeitungsanlage
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1549523B2 (de) Datenverarbeitungsanlage
DE2346525B2 (de) Virtuelle Speichereinrichtung
CH620779A5 (de)
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2457612A1 (de) Mikroprogrammier-steuersystem
DE2758830A1 (de) Rechenvorrichtung
DE1803767A1 (de) Elektronisches Datenverarbeitungssystem
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2036729A1 (de) Digital Datenverarbeiter
DE2835095A1 (de) Gekoppeltes, mikroprogrammiertes prozessorsystem
DE1549478B1 (de) Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
DE2617485B2 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2747304C3 (de) Einrichtung zur Mikrobefehlssteuerung
DE2245284A1 (de) Datenverarbeitungsanlage
DE2835110A1 (de) Schneller echtzeit-rechneremulator
DE2403039C2 (de) Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage
DE2906685A1 (de) Instruktionsdecodierer

Legal Events

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