CH615771A5 - - Google Patents
Download PDFInfo
- Publication number
- CH615771A5 CH615771A5 CH508577A CH508577A CH615771A5 CH 615771 A5 CH615771 A5 CH 615771A5 CH 508577 A CH508577 A CH 508577A CH 508577 A CH508577 A CH 508577A CH 615771 A5 CH615771 A5 CH 615771A5
- Authority
- CH
- Switzerland
- Prior art keywords
- address
- memory
- control
- inputs
- register
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/261—Microinstruction address formation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
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 (AREA)
- Multi Processors (AREA)
- Programmable Controllers (AREA)
Description
Die vorliegende Erfindung macht z. B. die Benutzung von 16 Bit langen Steuerwörtern in einem Speichermodul mit 212 Wörtern (Speicherstellen) praktikabel. Dadurch wird der Wirkungsgrad des Steuerspeichers für einen gegebenen Satz von Steuerfunktionen über den Punkt hinaus erhöht, den man schon aus der Geschwindigkeitserhöhung durch die Verschachtelung mehrerer Steuerspeichermoduln erwartet.
Durch die hier dargestellte Anordnung wird es auch möglich, die maximale Kapazität (Anzahl gespeicherter Mikrowörter) des Steuerspeichers zu erhöhen, ohne dass die Länge der Mikrowortadresse erhöht werden muss, in dem die Anzahl der zeitlich verschachtelten Moduln im Steuerspeicher erhöht wird, wobei überdies die Grösse des Modifizierfeldes für die Folgeadresse mit zunehmender Modulanzahl heruntergesetzt wird.
In der beschriebenen Anordnung kann ausserdem noch eine weitere Art der Adressierung durchgeführt werden, bei der wahlweise aus der normalen Datenbahn des Prozessors entnommene Bits, oder Bits aus Mikroprogrammsteuerwörtern zur Erzeugung der Folgeadresse für bedingte Verzweigungen benutzt werden.
Zusätzlich können in vorteilhafter Weise Einrichtungen in der Mikroprogrammspeicher-Steueranordnung vorgesehen
3
5
10
15
20
25
30
35
40
45
50
55
60
65
615 771
werden zur Auswahl von in Stapeln angeordneten Allgemeinregistern durch Makroinstruktionen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschliessend näher beschrieben. Es zeigen:
Fig. 1 in einer Zeittabelle die überlappten und verschachtelten zeitlichen Beziehungen beim Betrieb eines Steuerspeichers mit drei Festspeicher-Moduln,
Fig. 2 die Register und Leitungen der im Ausführungsbeispiel verwendeten Datenbahn des Prozessors,
Fig. 3 in einem Blockdiagramm den Mikroprogramm-Steuerspeicher und seine Steuereinrichtungen,
Fig. 3A, 3B, 3C, 3D, 3E Einzelheiten des Mikroprogramm-Steuerspeichers und seiner Steuereinrichtungen,
Fig. 4A, 4B, 4C schematische Darstellungen der «normalen» Erzeugung der nächsten Adresse (Folgeadresse), wie sie im Ausführungsbeispiel verwendet wird,
Fig. 5 eine schematische Darstellung der Erzeugung der nächsten Adresse bei bedingter Verzweigung, implementiert durch Quellenwahl-Mikrowörter im Ausführungsbeispiel,
Fig. 6-9 Formate für verschiedene Arten von Mikrowörtern,
Fig. 10 einen Teil eines allgemein bekannten Makroinstruktionsformates, das allgemeine Register benutzt, und
Fig. 11 die Schaltungseinrichtungen zum Wählen allgemeiner Register unter Steuerung einer Mikroroutine.
Allgemeine Bemerkung zur Darstellung der Verknüpfungsschaltungen im Ausführungsbeispiel
Die in den Zeichnungen gezeigten Schaltungen haben zahlreiche Torschaltungen, bei denen je eine Gruppe zusammengehörender paralleler Signalleitungen durch ein einziges Steuersignal gemeinsam durchgeschaltet wird (z. B. UND-Schaltung 10 in Fig. 3A).
Die entsprechende Torschaltung ist zur Vereinfachung der Darstellung in der Zeichnung nur durch ein einzelnes UND-Glied dargestellt, und auch im Text nur als «UND-Glied» bezeichnet. Es handelt sich dabei aber jeweils um eine Gruppe paralleler UND-Glieder (bzw. Antivalenzglieder usw.), deren Anzahl der vorhandenen Anzahl Bitleitungen entspricht, welche Anzahl an einer der Leitungslinien, die zum Verknüpfungsglied führen, angegeben ist. Im angeführten Beispiel der Torschaltung 10 sind dies die zwölf Maskenregister-Bitleitun-gen 0-11. Diese werden von zwölf UND-Gliedern geschaltet, die gemeinsam von einem einzigen Steuersignal («Masken-Freigabe») angesteuert werden.
Festspeicher-Moduln (ROS-Moduln)
Fig. 3B zeigt drei Festspeicher-Moduln 30,31 und 32, die den Steuerspeicher im Ausführungsbeispiel bilden. Jeder dieser Moduln ist eine separate Funktionseinheit vom konventionellen Festspeichertyp (ROS). Abgesehen von den Kosten und der Zugriffszeit könnten es jedoch auch beschreibbare Steuerspeichermoduln sein. Diese drei Moduln sind beschriftet mit X-ROS, Y-ROS und Z-ROS.
Fig. 3E zeigt den Inhalt des X-ROS 30. Der Modul gibt ein 16 Bit langes Mikroprogrammwort während jedes von dem in Fig. 3 gezeigten Taktgeber 55 kommenden X-Zyklus aus. Die Mikroprogrammwörter werden im folgenden kurz als «Mikrowörter» bezeichnet. Der Y-ROS 31 und der Z-ROS 32 sind genauso aufgebaut wie der in Fig. 3E gezeigte Modul X-ROS. Der Modul X-ROS 30 enthält eine X-ROS-Speicheranordnung, bei der es sich um einen konventionellen Festspeicher mit einem Adresseingang handelt, der beschriftet ist mit «Nächste X-Adresse (Bits 0 bis 11)». Diese 12 Bit lange Adresse wird am Ende eines X-Zyklus gegeben. Während der nächsten beiden Zyklen des Taktes (Y-Zyklus und Z-Zyklus) ist die X-ROS-Aus-wahlleitung aktiv, so dass die Speicheranordnung dasjenige
ROS-Mikrowort auswählt (d. h. ansteuert), das an der letzten empfangenen nächsten X-Adresse steht, die sich gegenwärtig im Register 24 (Fig. 3B) befindet. Das gewählte Mikrowort wird dann auf die Ausgabeleitung 0 bis 15 der X-ROS-Speicheran-ordnung gegeben, um die X-ROS-Ausgabe-Kippglieder 60 bis 75 einzuschalten, die in Fig. 3E dargestellt sind. Zu Beginn dieser Mikrowortansteuerung wird die X-Kippglieder-Rückstellei-tung zum Rückstellen der Kippglieder gepulst. Während des folgenden X-Zyklus, in dem die Ausführung stattfindet, geben die Kippglieder 60 bis 75 das laufende X-ROS-Mikrowort aus. Gleichzeitig mit der Ausführung des Mikrowortes während dieses X-Zyklus wird die nächste Adresse für den X-ROS von dem in Fig. 3A gezeigten Generator erzeugt. Die Pufferung durch die Ausgabe-Kippglieder 60 bis 75 wird also während des lau-- fenden X-Zyklus beibehalten, um die nächste Adresse erzeugen zu können. Diese zeitliche Überlappung ist in Fig. 1 dargestellt, mit Bezug auf die Zeiteinteilungen des Y-ROS und des Z-ROS, die sich von derjenigen des X-ROS nur dadurch unterscheiden, dass die Operationen im Y-ROS einen Zyklus später erfolgen als im X-ROS, und diejenigen im Z-ROS zwei Zyklen später.
Ansteiierung des Steuerspeichers - Allgemeines (Fig. 3)
Fig. 3 zeigt die allgemeine Anordnung des Ausführungsbeispieles. Der Taktgeber 55 erzeugt drei Folgen von Taktsignalen oder Zyklen (X-Zyklus, Y-Zyklus und Z-Zyklus), die sich nach Darstellung in Fig. 1 kontinuierlich wiederholen. Das Ausführungsbeispiel enthält einen Generator für die nächste ROS-Adresse (im einzelnen in Fig. 3A gezeigt), der die nächste ROS-Adresse während jedes ROS-Zyklus erzeugt, wie in Fig. 1 zu sehen ist. Er gibt jede nächste ROS-Adresse als Eingabe an die Auswahlschaltung für das laufende ROS-Wort (im einzelnen in Fig. 3B gezeigt), und diese Auswahlschaltung benutzt jede empfangene Adresse zum Auswählen (d. h. Ansteuern) eines Mikrowortes aus je einem der drei ROS-Moduln X, Y und Z. Die Mikrowort-Auswahloperationen überlappen während der beiden dem Adresserzeugungszyklus folgenden Zyklen. Die Auswahlschaltung gibt jedes ausgewählte Mikrowort an Mikro-wort-Decodierschaltungen aus (im einzelnen in Fig. 3C gezeigt). Viele Decodierausgänge sind verbunden mit Eingängen für den Generator der nächsten ROS-Adresse. Die ebenfalls in Fig. 3 gezeigten Quellenwahlschaltungen, die im einzelnen in Fig. 3D dargestellt sind, unterstützen die Ausführung der Quellenwahl-Mikrowörter aus den verschachtelt betriebenen ROS-Moduln. Die Quellenschaltungen sind mit besonderen Ausgängen der Mikrowort-Decodierschaltungen verbunden und koppeln diese zurück auf den Generator für die nächste ROS-Adresse.
Generator für nächst ROS-Adresse (Fig. 3A)
Fig. 3A zeigt den Generator zur Erzeugung der 12 Bit langen ROS-Adressen. Er unterstützt verschiedene Adressierarten, und zwar: (1) normale Adressierung, (2) unbedingte Verzweigung und (3) bedingte Verzweigung.
In normalem Adressierbetrieb wird das kompakte Modifizierfeld für die nächste Adresse in «normalen» Mikrowörtern benutzt. Die in Fig. 3A gezeigten Schaltungen für den Normalbetrieb stellen in der Schaltung 22 die Antivalenz-Verknüpfung (Exklusiv-ODER) des Ausganges eines der UND-Glieder 11,12 oder 13 mit dem Ausgang eines der UND-Glieder 14,15 oder 16 her. Die Ausgangssignale der UND-Glieder in jeder dieser beiden Gruppen, die durch denselben Taktzyklus aktiviert werden (X, Y oder Z), werden gleichzeitig auf die Eingänge 22a und 22b des Antivalenz-Gliedes 22 geleitet, um die nächste ROS-Adresse zu erzeugen, die dann vom ODER-Glied 24 ausgegeben wird.
Die unbedingte Verzweigungsadressierung wird unterstützt durch das UND-Glied 21 in Fig. 3A. (Auch dabei Ausgabe der nächsten ROS-Adresse durch ODER-Glied 23.)
4
5
10
15"
20
25
30
35
40
45
50
55
60
65
Die bedingte Verzweigungsadressierung wird durch ein Quellenwahl-Mikrowort vorgenommen (dargestellt in Fig. 8), wodurch das Ausgangssignal des UND-Gliedes 10 oder eines der UND-Glieder 11,12 oder 13 zum Eingang 22b des Antiva-lenz-Gliedes 22 und die Ausgangssignale der UND-Glieder 17 und 90 zum anderen Eingang 22a durchgeschaltet werden.
Auswahlschaltung für das laufende ROS-Wort (Fig. 3B)
Fig. 3B zeigt die Schaltungen, die mit den Ausgabedaten des in Fig. 3A gezeigten Generators (für die nächste ROS-Adresse) je ein Mikrowort adressieren. Die Ausgabedaten des Generators werden in je eines der Register 24,25 oder 26 für die nächste Adresse geladen, wobei das jeweilige Register dadurch bestimmt wird, welcher der drei Taktzyklen zum jeweiligen Zeitpunkt aktiv ist. Wenn sie einmal geladen sind, gibt jedes dieser Register die nächsten Adressbits während der beiden folgenden Taktzyklen an den entsprechenden Festspeicher ROS 30,31 oder 32 ab, der dann die Mikrowortauswahl auf herkömmliche Art ausführt. Im dritten Zyklus nach dem Laden (d. h. im nächsten aktiven Zyklus für denselben ROS) wird das gewählte ROS-Mikrowort an das zugehörige UND-Glied 36,37 bzw. 38 ausgegeben, deren Ausgangssignale wiederum über ein ODER-Glied 39 geleitet werden, das das ausgewählte Mikrowort auf die 16 Einzelleitungen des Bus (Sammelleitung) 41 gibt: Zwei Gruppen von Einzelleitungen des Bus (Sammelleitung) 41, nämlich die Leitungsgruppen 42 und 43, sind zusätzlich separat herausgeführt, um ausgewählte Felder aus dem vorliegenden Mikrowort abzugeben.
ROS-Mikrowort-Decodierschaltungen (Fig. 3C)
Der in Fig. 3C gezeigte Decodierer 400 empfängt und decodiert jedes von der in Fig. 3B gezeigten Schaltung ausgegebene Mikrowort. Die Decodierausgangsleitungen 401a bis n liefern Signale an die in Fig. 2 dargestellte Datenbahn zur Ausführung normaler Mikrowörter, die aus den Festspeichern X-ROS, Y-ROS und Z-ROS gelesen wurden. Die Schaltung in Fig. 3C ausserhalb des Decodierers 400 liefert zusätzliche Decodierund Steuersignale, die zur Unterstützung der Ausführung beim bedingten und unbedingten Verzweigungsadressierbetrieb gebraucht werden.
Arbeitsweise zur Erzeugung der jeweils nächsten Adresse (Folgeadresse)
Normale Erzeugung der nächsten Adresse
Fig. 7 zeigt ein Format für ein 16 Bit langes Mikrowort, das ein 4 Bit langes Modifizierfeld für die nächste Adresse enthält, das sich in allen Mikrowörtern im Normalbetrieb verwenden lässt, die in einem der 3 ROS-Speicher 30,31 oder 32 gespeichert sind, dargestellt in Fig. 3B. In dem Format enthalten die Bits 4 bis 7 das 4-Bit-Modifizierfeld für die nächste Adresse. Die Bits 0 bis 3 enthalten einen Operationscode für das Mikrowort, und die Bits 8 bis 15 können irgendwelche Felder enthalten, die für normale Steuerspeicheroperationen benötigt werden. Die auf dem Modifizierfeld 4 bis 7 für die nächste Adresse ausgeführten Operationen werden durch die in Fig. 3A gezeigte Maschinenausrüstung gesteuert, die die 12 Bit lange Adresse erzeugt, die zur Adressierung des nächsten Mikrowortes in dem in Fig. 3B dargestellten Steuerspeicher benötigt wird. Wie bereits gesagt, wird die nächste Adresse im Normalbetrieb erzeugt durch Kombination der Ausgabe von einem der UND-Glieder 11,12 oder 13 mit der Ausgabe von einem der UND-Glieder 14,15 oder 16 im Antivalenz-Glied 22, das in Fig. 3A
615 771
gezeigt ist, während des zugehörigen Taktzyklus. Diese Kombination wird anschliessend im Zusammenhang mit den Fig. 4A, 4B und 4Cfür die drei verschiedenen ROS-Moduln erklärt. Die Kombination ist zu verstehen als Ausrichtung des 4 Bit grossen Adressmodifizierfeldes in Relation zu einem der drei verschiedenen Felder A, B und C in der kompletten 12 Bit langen Mikroinstruktionsadresse, die vorher während des letzten Taktzyklus durch das ODER-Glied 23 in Fig. 3A ausgegeben wurde und gegenwärtig in einem der Register 24,25 oder 26 in Fig. 3B gespeichert ist. Die vorhergehende nächste Adresse steht auf einem der Busse 27,28 oder 29 in Fig. 3B zur Verfügung, die als Eingänge zu den Torschaltungen 12,13 und 11 in Fig. 3A vorgesehen sind. Die vorhergehende nächste Z-Adresse in Fig. 4A wird also abgenommen vom Bus 29 in Fig. 3B, und in ähnlicher Weise werden die vorhergehenden nächsten X- und Y-Adressen in den Fig. 4B und 4C abgenommen von den Bussen 27 und 28 in Fig. 3B. Das Modifizierfeld für die nächste Adresse, dargestellt in jeder der Fig. 4A, B und C, wird abgeleitet von den Leitungen 43 in Fig. 3B, die zu den Eingängen jedes der Torschaltungen 14,15 und 16 inFig.3A gegeben werden. Die Ausrichtung des Modifizierfeldes der nächsten Adresse unterscheidet sich in jeder der Fig. 4A, 4B und 4C. Das Modifizierfeld ist in Fig. 4A auf die Position C ausgerichtet (d. h. die Bits 8 bis 11 von Torschaltung 16), auf die Position B in Fig. 4B (d. h. di% Bits 4 bis 7 von Torschaltung 15), auf die Position A in Fig. C (d. h. die Bits 0 bis 3 von Torschaltung 14). Somit wird die Ausrichtung erreicht durch die verschiedenen Sätze von vier parallelen Leitungen von den entsprechenden UND-Gliedern 14,15 und 16, die mit den zugehörigen Bitpositionen in dem Antivalenz-Schaltglied 22 verbunden sind.
Das Ergebnis der Antivalenz-Verknüpfung (Exklusiv-ODER) durch das Schaltglied 22 ist dargestellt in Fig. 4A durch «nächste X-Adresse», in Fig. 4B durch «nächste Y-Adresse», und in Fig. 4C durch «nächste Z-Adresse».
Aus den Fig. 4A, B und C geht also hervor, dass sich die Adressmodifikationen für die drei ROS-Moduln durch die Ausrichtungen des Modifizierfeldes unterscheiden. In Fig. 4A wirkt die Adressmodifikation für den X-ROS nur am unteren Ende der nächsten X-Adresse und gestattet dadurch den Abstand der X-ROS-Zugriffe auf minimalen Intervallen, nämlich im Abstand je eines Mikrowortes. In Fig. 4B ist jedoch zu sehen, dass die nächste Y-Adresse jeweils nur in ihrem Mittelfeld B modifiziert ist, so dass die Y-ROS-Zugriffe einen Mindestadressunterschied eines 16-Wort-Intervalles haben. Ähnlich wird die nächste Z-Adresse nur im werthohen Feld A modifiziert, so dass die Z-ROS-Zugriffe einen Mindestadressunterschied von 256 Wortintervallen haben.
Die drei verschiedenen Felder A, B und C umfassen den kompletten Adressbereich von 12 Bit für die ROS-Adressie-rung. Während je drei aufeinanderfolgender Zyklen des ROS-Taktes wird der gesamte Adressierbereich von 12 Bits erfasst, so dass die ganze nächste ROS-Adresse modifiziert werden kann, um jedes Mikrowort in einem der drei ROS-Moduln anzusteuern. Die Adressierreihenfolge wird beim Schreiben des Mikrodoce von einem Mikroprogrammierer festgelegt, und die absoluten Mikrowortadressen in den ROS-Moduln können entweder von Menschen oder mit Unterstützung eines Assembler-programmes festgelegt werden.
Die Beziehung zwischen den Taktzyklen, der vorher erzeugten nächsten ROS-Adresse und der gegenwärtig erzeugten nächsten ROS-Adresse ist in der folgenden Tabelle I dargestellt.
5
5
10
15
20
25
30
35
40
45
50
55
60
615 771
Tabelle I Erzeugung der nächsten Adresse
Zyklus-Zeit
F/üher erzeugte
Jetzt erzeugte
Adresse des
nächste Adresse nächste Adresse ausgeführten
M-Wortes
1
Z
X(l)
2
X(l)
Y(l)
3
Y(l)
Z(l)
4
Z(l)
X(2)
X(l)
5
X(2)
Y (2)
Z(l)
6
Y (2)
Z(2)
Z(1)
25
30
35
Erzeugung der nächsten Adresse bei unbedingter Verzweigung
Wenn das ROS-System gestartet wird, ist eine 12 Bit lange Adresse erforderlich, um das Anfangsmikrowort im Steuerspei- 2o eher anzugeben. Dies wird bestimmt durch ein unbedingtes Verzweigungsmikrowort des in Fig. 6 gezeigten Typs, das eine komplette 12 Bit lange ROS-Adresse enthält. In Fig. 3A ist gezeigt, wie das UND-Glied 21 die 12 Bit lange ROS-Adresse an das ODER-Glied 23 liefert, sobald ein Mikrowort für unbedingte Verzweigung auf der Leitung 45 von der in Fig. 3C • gezeigten Schaltung zum Eingang des UND-Gliedes 21 gegeben wird. Der andere Eingang zum UND-Glied 21 kommt auf der Leitungsgruppe 42 (ausgewähltes Mikrowort) in Fig. 3B zur Zuführung des 12 Bit langen ROS-Adressfeldes, deas im unbedingten Verzweigungsmikrowort enthalen ist.
Erzeugung der nächsten Adresse bei bedingter Verzweigung
Fig. 5 zeigt die bedingte Arbeitsweise bei Verzweigung. Hierbei wird der wertniedere Teil der nächsten erzeugten Adresse gesteuert durch maskierbare Daten von jeweils einem von vier wählbaren Registern in der Datenbahn, die antivalent verknüpft werden (Exklusiv-ODER) mit entsprechenden Bits von entweder:
a) der vorhergehenden nächsten ROS-Adresse oder b) Mikroprogrammdaten in einem Maskenregister.
Der werthöhere Teil der erzeugten nächsten ROS-Adresse wird direkt aus den entsprechenden Bits genommen von entweder:
c) der vorhergehenden nächsten ROS-Adresse oder d) dem Maskenregister.
Die Wahl zwischen a) und c) oder b) und d) wird bestimmt durch die Einstellung eines Maskenkippgliedes. Ein Zwischenfeld in der erzeugten nächsten ROS-Adresse wird gesteuert durch das Einschalten eines Kennzeichenkippgliedes und des Maskenkippgliedes.
Alle diese Operationen werden durch das Quellenwahl-Mikrowort gesteuert, dessen Format in Fig. 8 gezeigt ist.
Die Ausführung des Quellenwahl-Mikrowortes wird gesteuert durch die in Fig. 3D gezeigten Schaltungseinrichtungen, durch die Torschaltungen 10,17 und 90 in Fig. 3A, sowie durch den grössten Teil der ausserhalb des in Fig. 3C gezeigten Mikrowortdecodierers liegenden Schaltungseinrichtungen. Datenbitleitungen werden von der Quellenwahl-Instruktion durch die in Fig. 3D gezeigten Schaltungen gewählt. Die Steuereingänge sind mit der Schaltung in Fig. 3C und die Dateneingänge mit der Schaltung in Fig. 2 verbunden. Die aus der «Datenbahn» gewählten Datenbits werden von der Schaltung in Fig. 3D ausgegeben an die Torschaltung 17 in Fig. 3A.
Die ziemlich komplexe Operationsfolge, die von einem Quellenwahl-Mikrowort ausgeführt wird zur Erzeugung der nächsten ROS-Adresse, ist in dem Beispiel in Fig. 5 dargestellt. Die Folge beginnt mit der während des vorhergehenden Takt55
zyklus erzeugten nächsten X-Adresse und endet mit der Erzeugung der nächsten Y-Adresse während des laufenden Taktzyklus.
Die jeweils erforderlichen Bits der Datenbahn werden gewählt durch das in Fig. 8 gezeigte Quellenfeld (QUE) und den OP-Code. Das Quellenfeld gibt eine von vier Stellen in der Datenbahn an, von der Bits durch ein Quellenwahl-Mikrowort gewählt werden können. Diese vier Stellen sind in Fig. 2 dargestellt. Es handelt sich um Bitsignale entweder vom Statusregister, vom OP-Register, vom Busregister oder um externe Bitsignale. Das Quellenfeld ist ein 2-Bit-Adresse, die durch den in Fig. 3C gezeigten Decodierer 100 decodiert wird.
Durch ein Quellenwahl-Mikrowort wird jedoch nur eine Hälfte der 16 Datenbahnbits der gewählten Quelle benutzt. Der OP-Code des Quellenwahl-Mikrowortes gibt an, welche Hälfte gewählt ist, indem er die werthohen 8 Bits (HO) oder die wertniederen 8 Bits (NI) bezeichnet. Die beiden Quellenwahl-Mikro-wörter unterscheiden sich nur durch ihre OP-Codes, von denen der eine das HO-Byte der bezeichneten Quellen und der andere das NI-Byte wählt.
Es wird nur eine Hälfte der Quellenbits auf der Datenbahn gewählt, weil man einerseits ein 16 Bit langes Mikrowort und eine 16 Bit breite Datenbahn (Fig. 2) hat, und man andererseits ein Datenmaskenfeld im Quellenwahl-Mikrowort unterbringen muss, von dem die anderen 8 Bits durch andere Felder belegt sind. Somit kann in dem 16 Bit langen Quellenwahl-Mikrowort nur eine 8 Bit lange Datenmaske untergebracht werden.
Die in Fig. 3D gezeigten Quellenwahlschaltungen steuern die Auswahloperation für die 8 Bit breite Datenbahn. Diese Schaltungen empfangen Signale auf den Decodiersteuerleitun-gen 94,95,96 und 97 von dem Quellendecodierer 100 in Fig. 3C. Sie empfangen ausserdem Signale von der HO-Steuersignallei-tung 91 und von der NI-Steuersignalleitung 92 vom Mikrowort-decodierer in Fig. 3C, welche anzeigen, welches der beiden Quellenwahl-Mikrowörter ausgeführt wird (d. h., welche der beiden Datenbahnhälften gewählt wird). Die Datenbahnein-gänge der in Fig. 3D gezeigten Schaltung sind mit den entsprechenden Ausgangssignalleitungen von Fig. 2 verbunden.
Das Datenmaskenfeld belegt die Bitpositionen 8 bis 15 im Quellenwahl-Mikrowort (siehe Fig. 8) und dient als Maske für die 8 ausgewählten Datenbits aus einer der vier Quellen.
Nach Darstellung in Fig. 5 wird das Datenmaskenfeld von Leitung 47 (Fig. 3C) UND-verknüpft mit den gewählten Quellenbits von Leitung 46 (Fig. 3D). Das UND-Glied 17 in Fig. 3A empfängt diese Signale auf den Leitungen 46 und 47 und gibt das in Fig. 5 gezeigte maskierte Quellenfeld 17a ab. Das maskierte Quellenfeld 17a wird dann antivalent verknüpft (Exklu-siv-ODER) mit den wertniederen 8 Bits der vorher während eines X-Zyklus erzeugten nächsten X-Adresse oder mit den wertniederen 8 Bits im Verzweigungsmaskenregister 81, abhängig von der Einstellung des Maskenfreigabe-Kippgliedes 82. Die nächste während eines Y-Zyklus erzeugte Y-Adresse kann somit aus einer von zwei jeweils 12 Bit langen Basisadressen erzeugt werden, von denen eine die vorhergehende nächste X-Adresse und die andere der 12-Bit-Inhalt des Verzweigungsmaskenregisters ist. Das Antivalenz-Glied 22 in Fig. 3A erzeugt die nächste Y-Adresse. Die wertniederen 8 Bits an den Bitpositionen 4 bis 11 und das mittlere Feld (Bit 3) werden von den UND-Gliedern 17 und 90 auf den Eingang 22a des Antivalenz-Gliedes 22 übertragen. Der andere Eingang 22b empfängt ein 12 Bit langes Feld entweder vom UND-Glied 10 oder von einem der UND-Glieder 11,12 oder 13. Das UND-Glied 10 gibt den Inhalt des Verzweigungs-Maskenregisters aus, wenn es durch das «EIN»-Signal des Maskenfreigabe-Kippgliedes angesteuert wird. Wenn das Maskenfreigabe-Kippglied ausgeschaltet ist, wird das UND-Glied 12 während des Y-Zyklus angesteuert, um die vorhergehende nächste X-Adresse zu wählen. Die werthohen Bits 0 bis 2 im gewählten 12-Bit-Feld, angelegt
an den Eingang 22b, werden durch das Antivalenz-Glied 22 unverändert weitergegeben, weil keine entsprechenden werthohen Bits an den anderen Eingang 22a angelegt werden. Sie werden also direkt ein Teil der ausgegebenen nächsten Y-Adresse. Das Zwischenfeld (Bit 3) wird im Antivalenz-Glied 22 unter Steuerung durch das UND-Glied 90 erzeugt, das wiederum durch das Funktionsfeld (Bits 6 und 7) im Quellenwahl-Mikrowort (Fig. 8) gesteuert wird. Diese Funktionsbits werden an einen Kennzeichendecodierer 101 in Fig. 3C angelegt, der abhängig vom Wert der Bits 6 und 7 einen von drei Ausgängen aktiviert. F = 1 bezeichnet ein Testsignal, das als ein Eingangssignal zum UND-Glied 90 in Fig. 3A dient. Ein Kennzeichenkippglied 102 in Fig. 3C liefert auch ein Eingangssignal an das UND-Glied 90 in Fig. 3A, um dieses anzusteuern, wenn das Kennzeichenkippglied gesetzt («EIN») ist. Die Einschaltung erfolgt durch ein Signal F = 2 vom Decodierer 101 und die Rückstellung durch ein Signal F = 3. Einschaltung, Rückstellung und Testbedingungen werden durch verschiedene MikroWörter in einem Mikroprogramm gesteuert.
Das Yerzweigungsmaskenregister 81 in Fig. 3C wird durch ein Verzweigungsmaskenmikrowort geladen, das in Fig. 9 gezeigt ist. Die Ausführung der Verzweigungsmasken-Instruk-tion lädt nicht nur das Verzweigungsmaskenregister 81, sondern schaltet auch das Maskenfreigabe-Kippglied 82 ein, das durch die Ausführung eines nächsten Quellenwahl-Mikrowor-tes zurückgestellt wird. Der Inhalt des Verzweigungsmaskenregisters 81 kann also durch ein Quellenwahl-Mikrowort nur einmal benutzt werden. Es mffss daher explizit für jedes Quellen-wahl-Mikrowort geladen werden, welches das Verzweigungsmaskenregister benutzen will.
Registerwahlsteuerung
Viele in einem System verwendete Makroinstruktionen benutzen eines oder mehrere allgemeine Register. Fig. 10 zeigt ein Beispiel einer Makroinstruktion, die zwei allgemeine Register, nämlich R1 und R2, benutzt. Sobald eine solche Makroinstruktion ausgeführt wird, muss die Anlage jedes angegebene allgemeine Register in der von der Makroinstruktion verlangten Art identifizieren und benutzen.
Der als Ausführungsbeispiel beschriebene Modulsteuerspeicher mit verschachtelter Arbeitsweise ermöglicht die Benutzung von allgemeinen Registern durch Makroinstruktionen. Die in Fig. 2 gezeigte Datenbahnanordnung hat einen Registerstapel 190, der vier Stufen aufweist, von denen jede acht allgemeine Register hat, die im Makroinstruktionen durch ein 3-Bit-Feld bezeichnet werden können. Die Interpretation des Operationscodes der Makroinstruktion durch ein Mikroprogramm bestimmt, welches 3-Bit-Feld für R1 und welches andere für R2 benutzt wird. Ein solches Mikroprogramm entspricht der als Beispiel in der nachstehenden Tabelle II angeführten Mikroroutine. „ , „ „
Tabelle II
Zeitzyklus
Mikrowort
X(l)
Verzweigungsmaske 010
Y(l)
Quellenwahl R1
Z(l)
Unbed. Verzweigung
X(2)
Verzweigungsmaske 010 (für nächste
Mikroroutine)
Y (2)
Lesen Allgemein-Register R1
Z(2)
(Verzweigungsziel-Mikrowort in nächster
Mikroroutine)
ODER
(wenn R2 bezeichnet ist)
Z(2)
Quellenwahl R2
X(3)
Unbed. Verzweigung
Y (3)
(irgendein Mikrowort für nächste Mikroroutine)
Z(3)
(Verzweigungsziel-Mikrowort in nächster
Mikroroutine)
615 771
Diese Mikroroutine wird durch Schaltungseinrichtungen unterstützt, die in den Fig. 2 und 11 dargestellt sind. In der Fig. 11 sind die allgemeinen Register im Stapel 190 enthalten, der in vier Stufen unterteilt ist, von denen jede acht allgemeine Register mit den Nummern 0 bis 7 enthält. Eine 5 Bit lange Adresse bezeichnet eines der 32 allgemeinen Register im Stapel 190, wobei 2 Bits eine der vier Stufen und 3 Bits eines der acht allgemeinen Register in der bezeichneten Stufe angeben.
Die 5 Bit lange Allgemeinregister-Stapeladresse wird entweder in ein Stapeladressregister 193 (für R1) oder in ein Stapeladressregister (für R1) oder in ein Stapeladressregister 194 (für R 2) gesetzt.
Die Auswahl-Mikroroutine für die allgemeinen Register (Tabelle II) arbeitet bei zeitverschachtelten Moduln des Ausführungsbeispiels folgendermassen, wobei als erster Zyklus ein X(l)-Zyklus angenommen wird. Der X(l)-Zyklus führt ein Ver-zweigungsmasken-Mikrowort aus. Er setzt in das Verzweigungsmaskenregister den Adresswert 010, die Adresse des Mikrowortes für das erste allgemeine Register in der Stufe 0, die als Basisadresse für alle allgemeinen Register jeder Stufe benutzt wird. Der Y(l)-Zyklus führt eine Quellenwahl-Instruk-tion aus, wie vorher oben beschrieben, in der das HO-Byte im OP-Register in Fig. 2 als die Quelle bezeichnet wird, die die Rl-Bezeichnung in ihren Bitpositionen 5,6 und 7 enthält, und die Datenmaske wählt nur diese Bitpositionen.
Die Stufenadresse aus dem ODER-Glied 255 und die Adresse aus dem allgemeinen Register werden auf dem Bus 256 verkettet und in eines der beiden Register 193 und 194 geleitet, abhängig von Bit 3 des gelesenen Mikrowortes aus dem allgemeinen Register. Der Stapeladressdecodierer 192 in Fig. 2 decodiert diese Adresse dann und wählt das verlangte allgemeine Register.
Während des Z(l)-Zyklus wird ein unbedingtes Verzweigungsmikrowort ausgeführt, so dass während des Z(2)-Zyklus das Verzweigungsziel-Mikrowort ausgeführt werden kann. Wenn die laufende Makroinstruktion ein R2-Register bezeichnet, ist ihre Zielroutine ähnlich wie die Routine zum Wählen des durch R1 bezeichneten allgemeinen Registers.
Während des X(2)-Zyklus kann das erste Mikrowort für die nächste Mikroroutine ausgeführt werden. Wenn die nächste Routine R2 wählt, kann der X(2)-Zyklus wieder das Verzwei-gungsmasken-Mikrowort ausführen.
Während des Y(2)-Zyklus wird das aus dem allgemeinen Register gelesene Mikrowort ausgeführt. Hierzu werden die in Fig. 11 und 2 gezeigten Schaltungen benutzt.
Fig. 11 zeigt die Vorgänge bei Ausführung eines Mikrobefehls zum Lesen eines Allgemeinregisters. Seine Bits 0 bis 7 dienen, wie oben beschrieben, zum normalen Adressieren eines Mikrowortes. Bit 8 ist auf 0 gesetzt um anzuzeigen, dass das Mikrowort ein allgemeines Register lesen soll. Bit 9 ist ein Funktionsfeld (FKT), das bestimmt, wo die Stufenadresse abgeleitet wird. Wenn Bit 9 auf 1 gesetzt ist, wird die Stufenadresse vom laufenden Stufenfeld 14,15 in einem Stufenregister 251 über das UND-Glied 252 ausgegeben. Wenn Bit 9 jedoch auf 0 gesetzt ist, wird die Stufenadresse stattdessen von den Bits 14, 15 des aus dem allgemeinen Register gelesenen Mikrowortes abgeleitet. Die 2 Bit lange gewählte Stufenadresse wird mit der 3 Bit langen Adresse aus dem allgemeinen Register vom Mikro-wortausgang der Fig. 3C auf dem Bus 256 verkettet und in eines der beiden Stapeladressregister 193 und 194 übertragen, bestimmt durch die Einstellung des OP-Code-Bit 3 in dem aus dem allgemeinen Register gelesenen Mikrowort, und dann aus demselben Register ausgegeben, um das allgemeine Register im Stapel anzusteuern.
7
5
10
15
20
25
30
35
40
45
50
55
60
65
G
6 Blatt Zeichnungen
Claims (6)
- 615 771 2PATENTANSPRÜCHE die mit den Ausgängen der Quellenwahlschaltung verbunden1. Anordnung zur Ansteuerung eines Mikroprogrammspei- sind, und die bei Vorliegen des Quellenwahl-Steuersignals chers, der aus mehreren Speichermoduln aufgebaut ist, gekenn- anstelle der Modifiziersignaleingänge mit zweiten Eingängen zeichnet durch (22a) einer Kombinationsschaltung (22) verbindbar sind, deren- eine Taktgebereinrichtung (55; Fig. 3) zur Abgabe mehre- 5 erste Eingänge (22b) mit den Adresssignaleingängen (27,28,29) rer Taktimpulsfolgen, die untereinander phasenverschoben des Adressgenerators verbindbar sind.sind, und deren jede einem Speichermodul (30,31,32; Fig. 3B) 7. Anordnung nach Patentanspruch 6, dadurch gekenn-zugeordnet ist; zeichnet, dass der Adressgenerator (Fig. 3A) eine Verknüp-- einen Adressgenerator (Fig. 3A) zur Erzeugung von fungsschaltung (17) aufweist, deren erster Satz Eingänge (46) Adressen zur Ansteuerung der Speichermoduln, mit Eingängen10 mit den Quellendateneingängen des Adressgenerators verbun-für Adresssignale (27,28,29) und für Modifiziersignale (43) und den ist, und deren zweiter Satz Eingänge (47) über Verbin-mit Verknüpfungseinrichtungen (11...16,22) zur selektiven dungseinrichtungen (36...39,41) mit Ausgängen der Speicher-Kombination der Adress- und Modifiziersignale aufgrund von moduln (30,31,32) verbindbar ist, so dass die Quellendaten bei an Steuereingängen (49,50,56,57,58) empfangenen Steuersi- Vorliegen des Quellenwahlsignals aufgrund einer in einem von gnalen; 15 den Speichermoduln abgegebenen Mikroprogrammwort ent-- mindestens ein Adressregister (24,25,26; Fig. 3B) zur halten en Datenmaske selektiv der Kombinationsschaltung (22) Speicherung einer vorher vom Adressgenerator abgegebenen zur Erzeugung der nächsten Adresse zugeführt werden kön-Adresse, dessen Ausgänge mit den Adresssignaleingängen ver- nen.bunden sind; 8. Anordnung nach Patentanspruch 6, dadurch gekenn-- Verbindungseinrichtungen (36...39,43) zwischen den Aus-20 zeichnet, dass ein Verzweigungsmaskenregister (81) und ein gängen der Speichermoduln und den Modifiziersignaleingän- Maskenfreigabekippglied (82) vorgesehen sind, die mit Daten gen zur Übertragung eines Modifizierfeldes aus einem ausgele- eines ausgelesenen Mikroprogrammwortes geladen bzw. auf-senen Mikroprogrammwort an den Adressgenerator. grund eines Mikroprogrammwort-Decodiersignals gesetzt
- 2. Anordnung nach Patentanspruch 1, dadurch gekenn- werden können, und dass im Adressgenerator (Fig. 3B) Verzeichnet, dass die Verknüpfungseinrichtungen im Adressgene- 25 knüpfungsschaltungen (10) vorgesehen sind, deren Ausgänge rator (Fig. 3B) Torschaltungen (14,15,16) enthalten, welche mit mit den ersten Eingängen (22b) der Kombinationsschaltung den Modifiziereingängen (43) und mit Zuleitungen (56,57,58) (22) verbunden sind, und die bei Vorliegen eines Maskenfreiga-von der Taktgebereinrichtung (55) verbunden sind und je nach besignals aus dem Maskenfreigabekippglied die Ausgänge (52) auftretendem Taktsignal das Modifizierfeld auf je eine andere des Verzweigungsmaskenregisters anstelle der Adressignalein-Leitungsgruppe (0-3,4-7,8-11) geben, so dass eine angeschlos-30 gänge (27,28,29) des Adressgenerators mit der Kombinations-sene Kombinationsschaltung (22) aufeinanderfolgende Modifi- schaltung verbinden.zierfelder auf gegeneinander verschobenen Untergruppen von 9. Anordnung nach Patentanspruch 1, dadurch gekenn-Eingängen empfängt je nachdem, welchem Speichermodul die zeichnet, dass ein Registerstapel (190) vorgesehen ist mit fol-erzeugte Adresse zugeordnet ist. genden Steuereinrichtungen:
- 3. Anordnung nach Patentanspruch 1 oder 2, dadurch 35 - ein Stapeladressdecodierer (192) zur Adressierung je gekennzeichnet, dass die Anzahl Bits im Modifizierfeld und eines Registers aus dem Registerstapel;damit die Anzahl der Modifiziersignaleingänge (43) F = A/M - mindestens ein Stapeladressregister (193,194), dessen ist, wobei A die Anzahl Bits einer vollständigen Mikropro- Ausgang mit dem Stapeladressdecodierer verbunden ist;grammspeicheradresse, d. h. die Anzahl der Eingänge (z. B. 29) - eine Mikrowort-Lesesteuerleitung (173,174), zur Über-des Adressgenerators (Fig. 3A) für einen Satz Adresssignale ist 40 tragung eines Operationscodebit aus einem ausgelesenen und M die Anzahl von überlappt arbeitenden Speichermoduln Mikroprogrammwort; sowie(30,31,32). - zusätzliche Verbindungseinrichtungen (255,256) zur
- 4. Anordnung nach Patentanspruch 1, dadurch gekenn- Übertragung einer Registeradresse aus einem ausgelesenen zeichnet, dass die Arbeitszyklen der Speichermoduln einander Mikroprogrammwort in das adressierte Stapeladressregister überlappen, und dass die für einen ersten Speichermodul (X) 45 aufgrund eines Steuersignals auf der Mikrowort-Lesesteuerlei-erzeugte Adresse jeweils mit einem Modifizierfeld aus einem tung.zweiten Speichermodul (Y) kombiniert wird, um die nächste 10. Anordnung nach Patentanspruch 9, dadurch gekenn-Adresse für dieses zweite Speichermodul (Y) zu erzeugen. zeichnet, dass ein Stufenregister (251) vorgesehen ist mit einem
- 5. Anordnung nach Patentanspruch 2, dadurch gekenn- Stufenfeld, dessen Inhalt die jeweils auszuwählende Gruppe zeichnet, dass die Kombinationsschaltung (22) eine Antivalenz-50 von Registern im Registerstapel (190) angibt, und mit einer Torschaltung ist, deren erster Satz Eingänge (22b) mit den Adress- schaltung (252) zur Übergabe des Stufenfeldinhaltes in die Signaleingängen (z. B. 29) zum Empfang einer vorher abgegebe- höherwertigen Bitpositionen des Stapeladressregisters ( 193, nen Adresse verbindbar ist, und von deren zweitem Satz Ein- 194); dass ein Steuereingang der Torschaltung mit einer Bitgängen (22a) jeweils eine Untergruppe mit den Modifiziersig- stelle eines die jeweils ausgelesenen Mikroprogrammwörter naleingängen (43) verbindbar ist. 55 enthaltenden Registers (254) verbunden ist; und dass weitere
- 6. Anordnung nach Patentanspruch 1, gekennzeichnet Bitpositionen dieses Registers mit den niederwertigen Bitposi-durch tionen des Stapeladressregisters zur Ubergabe einer Register-- eine Quellenwahlschaltung (Fig. 3D), deren Datenein- adresse verbunden sind.gänge (111...118) mit verschiedenen Stellen der aus Leitungen und Registern bestehenden Datenbahn (Fig. 2) eines Prozes- 6°sors verbunden sind, und deren Ausgänge (46) aufgrund von anSteuereingängen (91,92,94...97) zugeführten Auswahlsignale die Datensignale einer ausgewählten Gruppe von Eingängen abgeben; Die vorliegende Erfindung betrifft eine Anordnung zur- eine Steuersignalleitung (48; Fig. 3C) für ein vom Mikro- 65 Ansteuerung eines Mikroprogrammspeichers, der aus mehre-programmspeicher-Decodierer (400) abgegebenes Quellen- ren Speichermoduln aufgebaut ist.wahl-Steuersignal; In der Technik sind verschachtelte Hauptspeicher zum- Quellendateneingänge (46; Fig. 3A) im Adressgenerator, Schreiben und Lesen von Daten und Instruktionen bekannt, beidenen die Zugriffszeit zum Hauptspeicher ein Bruchteil der Zugriffszeit für ein Modul ist.Für die Adressierung herkömmlicher Hauptspeicher, ob sie nun verschachtelt sind oder nicht, wird normalerweise ein Instruktionszähler im System benutzt, der unter Steuerung eines Makroprogrammes läuft. Das ist nicht immer vorteilhaft, z. B. dann nicht, wenn variable Sequenzen von Steuerwörtern durchlaufen werden sollen.Bei herkömmlichen Steuerspeichern ist im allgemeinen ein relativ grosser Teil ihrer Kapazität der Erzeugung der nächsten Adresse zugeordnet. D. h. dass ein hoher Prozentsatz der Speicherkapazität herkömmlicher Steuerspeicher durch Folgeadressfelder (Angabe der jeweils nächsten Adresse) belegt ist. Ausserdem wird durch die begrenzte Länge der Folgeadressfelder im konventionellen Steuerspeicher dessen Adressierbereich und damit die Gesamtgrösse begrenzt.In der deutschen Patentschrift Nr. 1499 722 wird ein nicht verschachtelter und nicht überlappt arbeitender Steuerspeicher beschrieben, der aus einem Festspeicher-Modul besteht, das Speicherwörter genannte adressierbare Einheiten enthält. Jedes Speicherwort enthält drei Mikrowörter, die als parallele Gruppe aus dem Festspeicher ausgelesen werden. Nur eines der drei ausgelesenen Mikrowörter wird jedoch durch ein Fest-speicher-Register für eine nachfolgende Ausführung ausgewählt. Das gewählte Mikrowort hat ein Feld für die nächste Adresse, mit dem das nächste Speicherwort zum Auslesen aus dem Festspeicher gewählt wird, von dem dann wieder nur eines der drei Mikrowörter ausgeführt wird. Während jedes Auslesezyklus steht also nur eines der drei ausgelesenen Mikrowörter zur Ausführung zur Verfügung, so dass die verfügbaren Möglichkeiten nicht voll genutzt sind.Im System der oben angegebenen deutschen Patentschrift werden spezielle Mikroinstruktionen verwendet, die mit Datenbits arbeiten, die von der Datenbahn des Prozessors kommen, um die Adresse für das nächste Festspeicherwort zu modifizieren. Diese Modifizierung ist aber eben nur auf spezielle Ausnahmefälle beschränkt. Ausserdem enthält jede Mikroinstruk-tion eine Folgeadresse in voller Länge, die mehr als die Hälfte des Mikrowortes belegt.Es ist eine Hauptaufgabe der vorliegenden Erfindung, einen schnellen Steuerspeicherbetrieb mit relativ langsamen Speichermoduln im Steuerspeicher zu erreichen, der entweder als beschreibbarer Steuerspeicher oder als Festwert-Steuerspeicher implementiert werden kann. Weiterhin soll ein Steuerspeicher mit einer besonderen Art der Erzeugung der jeweils nächsten Adresse erstellt werden, bei der wesentlich weniger Steuerspeicherraum für die Folgeadressierung benutzt werden muss und bei der gleichzeitig die maximal adressierbare Grösse des Steuerspeichers erhöht werden kann. Ausserdem soll durch die Erfindung ein Steuersp^icher mit mehreren Steuerspeichermodulen geschaffen werden, bei dem diese Art der Adressierung zur Erreichung weiterer Vorteile eingesetzt werden kann.Durch diese Massnahmen soll die Leistung des Steuerspeichers maximiert und dabei doch die Kosten möglichst klein gehalten werden.Eine geeignete Ausführungsform der Erfindung ermöglicht eine einmalige Adressieranordnung für einen Steuerspeicher, der aus mehreren Moduln besteht, und nutzt in hohem Masse die Speicherkapazität in den Steuerspeichermoduln, die zur Verbesserung der Zugriffszeit und Erweiterung der Adressier-barkeit verschachtelt betrieben werden. Es ist auch möglich, ein normales Format für Mikroinstruktions-Steuerwörter (d. h. Mikrowörter), in denen ein Modifizierfeld für die nächste Adresse anstelle eines Feldes für eine komplette nächste Adresse vorgesehen ist. Das Modifizierfeld braucht nur einen Bruchteil (d. h. 1/M, wobei M die Anzahl von im Steuerspeicher verschachtelten Moduln ist) der Bitzahl, die in einer kompletten Adresse benötigt wird. Die Länge (in Bits ausgedrückt) des615 771Modifizierfeldes für die nächste Adresse kann dargestellt werden durch den Ausdruck F = A/M, worin F die Anzahl der Bits im Modifizierfeld für die nächste Adresse und A die Anzahl von Bits ist, die in einer kompletten Steuerspeicheradresse erforderlich ist, um ein Mikrowort in demselben Modul zu adressieren. Durch die Reduzierung der Anzahl von Bits im normalen Mikrowort, welche zur Gewinnung der Folgegdresse benutzt werden, und durch deren Kombination mit vorher erzeugten Adressen ergibt sich trotz einer Verringerung des Speicherbedarfs für die Folgeadressierung eine Vergrösserung des adressierbaren Gesamtspeicherbereichs.Weiterhin kann das Modifizierfeld für die nächste Adresse im normalen Mikrowort auf verschiedene Art mit früher erzeugten Mikrowortadressen kombiniert werden, insbesondere durch verschiedene Ausrichtungen des Modifizierfeldes des laufenden Mikrowortes, d. h. durch Verschiebung erzeugte unterschiedliche relative Lage des Modifizierfeldes bei seiner Kombination mit einer vorher erzeugten nächsten Steuerspeicheradresse (jedes Modul benutzt eine bestimmte Ausrichtung, die sich von der durch jedes andere Modul benutzten Ausrichtung unterscheidet).Die Startadresse in einem bestimmten Modul für Mikroprogramme im Steuerspeicher erhält man auf herkömmliche Art durch unbedingte Verzweigung. Dadurch erhält man die für die direkte Adressierung eines jeden Wortes in demselben Steuerspeichermodul benötigte volle Adresse. Danach wird die wirksamere «normale» Modifizieroperation für die Gewinnung der Folgeadresse verwendet, um Steuerspeicherplatz zu sparen, da nur ein relativ kleiner Prozentsatz eines jeden «normalen» Mikrowortes der Funktion der Folgeadressierung zugeordnet ist.Die aus dieser «normalen» Adressierung mittels Modifizierfeldern erreichte Platzeinsparung gestattet.es, die Grösse der Mikroprogramm-Steuerwörter zu reduzieren, wodurch sich kleinere und wirksamere Steuerspeicher ergeben. In einem konventionellen Speicher mit Wörtern von 16 Bits, die eine 12-Bit-Adresse brauchen, werden beispielsweise 75% der Steuerspeicherkapazität für die Folgeadressierung gebraucht und nur 25% stehen für die Datenbahnsteuerung zur Verfügung. Mit der vorliegenden Erfindung werden nur 4 Bits in jedem 16 Bit langen normalen Wort für die Folgeadressierung gebraucht, und dadurch die Gesamtbelastung auf etwa 25% reduziert, so dass annähernd 75% für die Datenbahnsteuerung übrig bleiben, was eine Verbesserung von fast 300% im Wirkungsgrad der Steuerfunktion des Steuerspeichers darstellt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/681,955 US4156925A (en) | 1976-04-30 | 1976-04-30 | Overlapped and interleaved control store with address modifiers |
Publications (1)
Publication Number | Publication Date |
---|---|
CH615771A5 true CH615771A5 (de) | 1980-02-15 |
Family
ID=24737572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CH508577A CH615771A5 (de) | 1976-04-30 | 1977-04-25 |
Country Status (13)
Country | Link |
---|---|
US (1) | US4156925A (de) |
JP (1) | JPS52132742A (de) |
AU (1) | AU509731B2 (de) |
BR (1) | BR7702821A (de) |
CH (1) | CH615771A5 (de) |
DE (1) | DE2717658A1 (de) |
ES (1) | ES458328A1 (de) |
FR (1) | FR2349881A1 (de) |
GB (1) | GB1556552A (de) |
HK (1) | HK71184A (de) |
IT (1) | IT1113537B (de) |
NL (1) | NL7704652A (de) |
SE (1) | SE417649B (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4320453A (en) * | 1978-11-02 | 1982-03-16 | Digital House, Ltd. | Dual sequencer microprocessor |
US4316244A (en) * | 1978-11-08 | 1982-02-16 | Data General Corporation | Memory apparatus for digital computer system |
JPS5619150A (en) * | 1979-07-25 | 1981-02-23 | Fujitsu Ltd | Microprogram control system |
US4384324A (en) * | 1980-05-06 | 1983-05-17 | Burroughs Corporation | Microprogrammed digital data processing system employing tasking at a microinstruction level |
US4493020A (en) * | 1980-05-06 | 1985-01-08 | Burroughs Corporation | Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation |
US4373180A (en) * | 1980-07-09 | 1983-02-08 | Sperry Corporation | Microprogrammed control system capable of pipelining even when executing a conditional branch instruction |
US4467410A (en) * | 1981-02-04 | 1984-08-21 | Burroughs Corporation | Multi-phase subroutine control circuitry |
US4459659A (en) * | 1981-02-04 | 1984-07-10 | Burroughs Corporation | Subroutine control circuitry for providing subroutine operations in a data processing system in which tasks are executed on a microprogrammed level |
US4649472A (en) * | 1981-02-04 | 1987-03-10 | Burroughs Corporation | Multi-phase subroutine control circuitry |
US4430707A (en) | 1981-03-05 | 1984-02-07 | Burroughs Corporation | Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks |
US4503492A (en) * | 1981-09-11 | 1985-03-05 | Data General Corp. | Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure |
US4450522A (en) * | 1981-09-11 | 1984-05-22 | Data General Corporation | Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return |
JPS5848146A (ja) * | 1981-09-18 | 1983-03-22 | Toshiba Corp | 命令先取り方式 |
WO1983001317A1 (en) * | 1981-09-30 | 1983-04-14 | Burroughs Corp | Pipelined microprogrammed digital data processor employing microinstruction tasking |
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
US4685080A (en) * | 1982-02-22 | 1987-08-04 | International Business Machines Corp. | Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords |
US4594661A (en) * | 1982-02-22 | 1986-06-10 | International Business Machines Corp. | Microword control system utilizing multiplexed programmable logic arrays |
US4931989A (en) * | 1982-02-22 | 1990-06-05 | International Business Machines Corporation | Microword generation mechanism utilizing a separate programmable logic array for first microwords |
US4498135A (en) * | 1982-02-22 | 1985-02-05 | Texas Instruments Incorporated | Microcomputer with accumulator addressing |
DE3241357A1 (de) * | 1982-11-09 | 1984-05-10 | Siemens AG, 1000 Berlin und 8000 München | Vorrichtung zur mikrobefehls-bereitstellung fuer mindestens zwei unabhaengig arbeitende funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen baustein und verfahren zu ihrem betrieb |
DE3675880D1 (de) * | 1985-10-18 | 1991-01-10 | Bbc Brown Boveri & Cie | Schaltungsanordnung zur transformation von 2n in einem leittechniksystem mit mehreren teilnehmern verwendeten globalen adressen in 2m in einem der teilnehmer des systems verwendeten lokalen adressen. |
US5081609A (en) * | 1989-01-10 | 1992-01-14 | Bull Hn Information Systems Inc. | Multiprocessor controller having time shared control store |
US5471597A (en) * | 1993-12-23 | 1995-11-28 | Unisys Corporation | System and method for executing branch instructions wherein branch target addresses are dynamically selectable under programmer control from writable branch address tables |
US6070238A (en) * | 1997-09-11 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for detecting overlap condition between a storage instruction and previously executed storage reference instruction |
US20060095730A1 (en) * | 2004-09-30 | 2006-05-04 | Gilbert Wolrich | Expansion of compute engine code space by sharing adjacent control stores using interleaved program addresses |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3391394A (en) * | 1965-10-22 | 1968-07-02 | Ibm | Microprogram control for a data processing system |
JPS514381B1 (de) * | 1969-11-24 | 1976-02-10 | ||
US3745532A (en) * | 1970-05-27 | 1973-07-10 | Hughes Aircraft Co | Modular digital processing equipment |
US3851312A (en) * | 1970-05-27 | 1974-11-26 | Hughes Aircraft Co | Modular program control apparatus for a modular data processing system |
US3725868A (en) * | 1970-10-19 | 1973-04-03 | Burroughs Corp | Small reconfigurable processor for a variety of data processing applications |
US3696340A (en) * | 1970-11-09 | 1972-10-03 | Tokyo Shibaura Electric Co | Microprogram execution control for fault diagnosis |
US3736567A (en) * | 1971-09-08 | 1973-05-29 | Bunker Ramo | Program sequence control |
US3766532A (en) * | 1972-04-28 | 1973-10-16 | Nanodata Corp | Data processing system having two levels of program control |
US3868649A (en) * | 1972-06-28 | 1975-02-25 | Fujitsu Ltd | Microprogram control system |
US3959777A (en) * | 1972-07-17 | 1976-05-25 | International Business Machines Corporation | Data processor for pattern recognition and the like |
JPS5247976B2 (de) * | 1973-03-16 | 1977-12-06 | ||
US3866180A (en) * | 1973-04-02 | 1975-02-11 | Amdahl Corp | Having an instruction pipeline for concurrently processing a plurality of instructions |
GB1426749A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets |
US3900835A (en) * | 1973-09-24 | 1975-08-19 | Digital Equipment Corp | Branching circuit for microprogram controlled central processor unit |
IT993428B (it) * | 1973-09-26 | 1975-09-30 | Honeywell Inf Systems | Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione |
US3909797A (en) * | 1973-12-13 | 1975-09-30 | Honeywell Inf Systems | Data processing system utilizing control store unit and push down stack for nested subroutines |
DE2364408C3 (de) * | 1973-12-22 | 1979-06-07 | Olympia Werke Ag, 2940 Wilhelmshaven | Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers |
US4050058A (en) * | 1973-12-26 | 1977-09-20 | Xerox Corporation | Microprocessor with parallel operation |
US3931615A (en) * | 1974-07-22 | 1976-01-06 | Scientific Micro Systems | Controller for digital devices |
US3953833A (en) * | 1974-08-21 | 1976-04-27 | Technology Marketing Incorporated | Microprogrammable computer having a dual function secondary storage element |
JPS6020767B2 (ja) * | 1975-06-24 | 1985-05-23 | 日本電気株式会社 | 情報探索機能を有する電子計算機 |
US4038643A (en) * | 1975-11-04 | 1977-07-26 | Burroughs Corporation | Microprogramming control system |
-
1976
- 1976-04-30 US US05/681,955 patent/US4156925A/en not_active Expired - Lifetime
-
1977
- 1977-03-04 FR FR7707428A patent/FR2349881A1/fr active Granted
- 1977-03-31 IT IT21893/77A patent/IT1113537B/it active
- 1977-04-05 GB GB14270/77A patent/GB1556552A/en not_active Expired
- 1977-04-06 JP JP3862277A patent/JPS52132742A/ja active Granted
- 1977-04-21 DE DE19772717658 patent/DE2717658A1/de not_active Withdrawn
- 1977-04-25 CH CH508577A patent/CH615771A5/de not_active IP Right Cessation
- 1977-04-28 NL NL7704652A patent/NL7704652A/xx unknown
- 1977-04-29 SE SE7704958A patent/SE417649B/xx unknown
- 1977-04-29 ES ES458328A patent/ES458328A1/es not_active Expired
- 1977-05-02 BR BR7702821A patent/BR7702821A/pt unknown
- 1977-05-02 AU AU24794/77A patent/AU509731B2/en not_active Expired
-
1984
- 1984-09-13 HK HK711/84A patent/HK71184A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
AU509731B2 (en) | 1980-05-22 |
DE2717658A1 (de) | 1977-11-10 |
SE7704958L (sv) | 1977-10-31 |
BR7702821A (pt) | 1978-04-04 |
FR2349881A1 (fr) | 1977-11-25 |
IT1113537B (it) | 1986-01-20 |
JPS52132742A (en) | 1977-11-07 |
ES458328A1 (es) | 1978-03-01 |
SE417649B (sv) | 1981-03-30 |
US4156925A (en) | 1979-05-29 |
FR2349881B1 (de) | 1980-03-14 |
HK71184A (en) | 1984-09-21 |
GB1556552A (en) | 1979-11-28 |
NL7704652A (nl) | 1977-11-01 |
JPS6110859B2 (de) | 1986-03-31 |
AU2479477A (en) | 1978-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CH615771A5 (de) | ||
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2716369C2 (de) | ||
DE2542740C2 (de) | Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung | |
DE2364408C3 (de) | Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers | |
DE2322674C3 (de) | Mikroprogramm-Steuereinrichtung | |
DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
DE1915818C3 (de) | Steuerschaltung für ein elektronisches Datenverarbeitungssystem | |
DE3586603T2 (de) | Datenprozessor fuer interpretierende und kompilierte sprache. | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
CH634939A5 (de) | Kanaldatenpufferanordnung in einer datenverarbeitungsanlage. | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
EP0097725A1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2719635A1 (de) | Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2536622C2 (de) | Verzweigungssteuerung mit flexibler Auswahl von Steuerworten | |
DE1931966B2 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE2556617C2 (de) | Schiebe- und Rotierschaltung | |
DE2744359C2 (de) | ||
DE2426874A1 (de) | Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls | |
DE3121742A1 (de) | Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung | |
DE1499191B2 (de) | Elektronische einrichtung fuer eine datenverarbeitungsanlage | |
DE2948442C2 (de) | Digitalrechenanlage | |
DE2245284A1 (de) | Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PL | Patent ceased |