DE2717658A1 - Anordnung zur ansteuerung eines mikroprogrammspeichers - Google Patents

Anordnung zur ansteuerung eines mikroprogrammspeichers

Info

Publication number
DE2717658A1
DE2717658A1 DE19772717658 DE2717658A DE2717658A1 DE 2717658 A1 DE2717658 A1 DE 2717658A1 DE 19772717658 DE19772717658 DE 19772717658 DE 2717658 A DE2717658 A DE 2717658A DE 2717658 A1 DE2717658 A1 DE 2717658A1
Authority
DE
Germany
Prior art keywords
address
inputs
register
control
microword
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.)
Withdrawn
Application number
DE19772717658
Other languages
English (en)
Inventor
William Edward Tutt
Virgil Dean Wyatt
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 DE2717658A1 publication Critical patent/DE2717658A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • 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/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation
    • 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/28Enhancement 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)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Programmable Controllers (AREA)

Description

Böblingen, den 18. April 1977 jo-bm/sz
Anmelderin:
International Business Machines Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen:
Neuanmeldung
Aktenzeichen der Anmelderin:
BC 976 002
Vertreter:
Patentassessor Dipl.-Ing. 0. Jost
7030 Böblingen
Bezeichnung:
Anordnung zur Ansteuerung eines Mikroprogrammspeichers
709845/0871
Anordnung zur Ansteuerung eines Mikroprogranimspeichers
Die vorliegende Erfindung betrifft eine Anordnung zur Ansteuerung eines Mikroprogranunspeichcrs, der aus mehreren Speichermoduln aufgebaut ist.
In der Technik sind verschachtelte Hauptspeicher zum Schreiben und Lesen von Daten und Instruktionen bekannt, bei denen die Zugriffszeit zum Hauptspeicher einen 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 Makroprogratnmes läuft. Das ist nicht immer vorteilhaft, z.B. dann nicht, wenn variable Sequenzen von Steuerwöntern 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 Steuerspeicht durch Folgeadressfelder (Angabe der jeweils nächsten Adresse) belegt ist. Ausserdem wird durch die begrenzte Länge der Folgcadressfelder nn konventiont len Steuerspeicher dessen Adressierbereich und damit die Gesamtgrösse begrenzt.
In der deutschen Patentschrift Nr. 1'499'722 wird ein nicht verschachtelter und nicht überlappt arbeitender Steuerspeicher beschrieben, der aus einem Festspeicher-Modul besteht, das Speicherwörter genannte adressierbare
BC9-76-002
709845/0871
Einheiten enthält. Jedes Speichcrworl enthält drei Mikrowörtcr, die als parallele Gruppe aus dem Festspeicher ausgelesen werden. Nur eines der drei ausgelesenen Mikrowürter wird jedoch durch ein Festspeicher-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 Verfugung, 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 Mikroinstruktion 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
BC9-76-002
709 8 4 5/0871
COPY
A4
Steuerspeicherraum für die Folgeadressierung benutzt werden muß und bei der gleichzeitig die maximal adressierbare Größe des SteuerSpeichers erhöht werden kann. Außerdem soll durch die Erfindung ein Steuerspeicher mit mehreren Steuerspeichermoduln geschaffen werden, bei dem diese Art der Adressierung zur Erreichung weiterer Vorteile eingesetzt werden kann.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale.
Weitere vorteilhafte Ausgestaltungen, Weiterbildungen und technische Merkmale sind den Unteransprüchen zu entnehmen.
Hierdurch ergibt sich der Vorteil, daß die Leistung des Steuerspeichers maximiert und dabei doch die Kosten möglichst klein gehalten werden.
Die vorliegende Erfindung ermöglicht außerdem in vorteilhafter Weise eine einmalige Adressieranordnung für einen Steuerspeicher, der aus mehreren Moduln besteht, und nutzt in hohem Maße die Speicherkapazität in den Steuerspeichermoduln, die zur Verbesserung der Zugriffszeit und Erweiterung der Adressierbarkeit verschachtelt betrieben werden. Die Erfindung implementiert 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) des Modifizierfeldes für die nächste Adresse kann dargestellt werden durch den Ausdruck
BC 976 002 7098*5/0871^
COPY
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 Folgeadresse benutzt werden, und durch deren Kombination mit vorher erzeugten Adressen ergibt sich trotz einer Verringerung des Speicherbedarfs für die Folgeadressierung eine Vergrößerung 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 Lage des Modifizierfeldes bei seiner Kombination mit einer vorher erzeugten nächsten Speicheradresse (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.
709 8 4 5/0871
BC 976 002
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-Adresr.e brauchen, werden beispielsv/eise 75% der Steuerspeicherkapazität für die Folgeadressierung gebraucht und nur 25% stehen für die Datenbahnsteuerung zur Verfugung. Mit der vorliegenden Erfindung werden nur 4 Bits in jedem 16 Bit langen normalen Wort für die Folgeadressierung gebraucht, und dadurch die Gesamtbclastung 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.
Die vorliegende Erfindung macht z.B. die Benutzung von 16 Bit langen Steuerwörtern in einem Speichermodul mit 2** 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 Stcuerspeichers 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 Grosse des Modifizierfeldes für die Folgeadresse mit zunehmender Modulanzahl heruntergesetzt wird.
BC9-76-OO2
709845/0871
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 Mikroprograminsteuerwörtern zur Urzeugung der Folgeadresse für bedingte Verzweigungen benutzt werden.
Zusätzlich können in vorteilhafter Weise Einrichtungen in der Mikroprograramspeicher-Steueranordnung vorgesehen werden zur Auswahl von in Stapeln angeordneten Allgemeinregistern durch Makroinstruktionen.
Ein AusfUhrungsbeispiel 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,
BC9-76-002
709 8 4 5/0871
Fig. 3A, 3B Einzelheiten des Mikroprogramm-Steuerspeichers und seiner 3C, 3D, 3E Steuereinrichtungen,
Fig. 4A, schetnatische Darstellungen der "normalen"Erzeugung der 4B, AC 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.
BC9-76-002
709845/0871
Allgemeine Bemerkung zur Darstellung der Verknüpfungsschaltungen im Aus füll rungsbci spiel
Die in den Zeichnungen gezeigten Schaltungen haben zahlreiche Torschaltungcn, bei denen je eine Gruppe zusammengehörender paralleler Signalleitungen durch ein einziges Steuersignal gemeinsam durchgeschaltet wird (z.B. UND-Schaltung 10 in Fig. 3Λ).
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-Bitleitungcn 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.
BC9-76-002
709845/0871
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 gezeigteil 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 H)". 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-Auswahlleitung 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-Speicheranordnung 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ückstelleitung 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-R0S-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 laufenden X-Zyklus beibehalten, um die nächste Adresse erzeugen zu können. Diese zeitliche Ueberlappung ist in Fig. 1 dargestellt, mit Bezug auf die Zeiteinteilungen des Y-ROS und des Z-ROS, die sich von
BC9-76-002
709845/0871
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.
Ansteuerung des Steuerspoichers - Allgemeines (Fig. 3)
Fig. 3 zeigt die allgemeine Anordnung des Ausführungsbeispieles. Der Taktgeber 55 erzeugt drei Folgen von Taktsignalcn 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 Mikrowort-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.
BC9-76-002 ·
709845/0871
Generator für nächste KOS-Adrcsse (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 1.3 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).
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 Antivalenz-Gliedes 22 und die Ausgangssignale der UND-Glieder 17 und 90 zum anderen Eingang 22a durchgeschaltet werden.
BC9-76-002
709845/0871
Auswahlschaltung für das laufende ROS-Wort (l-'ig. 3»)
Fig. 313 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-Clied 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-De.codierschaltungen (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 η liefern Signale an die in Fig. 2 dargestellte Datenbahn zur Ausführung normaler Mikrowörter, die aus den
BC9-76-OO2
709845/0871
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 NAECHSTEN ADRESSE (FOLGEADRESSE) Normale Erzeugung deir 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 Kombina tion der Ausgabe von einem der UND-Glieder 11, 12 oder 13 mit der Ausgab« von einem der UND-Glieder 14, 15 oder 16 im Antivalenz-Glied 22, das in Fig. 3A gezeigt ist, während des zugehörigen Taktzyklus. Diese Kombination wird anschliessend im Zusammenhang mit den Fig. 4A, 4B und 4C für die drei verschiedenen ROS-Moduln erklärt. Die Kombination ist zu verstehen'
BC9-76-002 .-.·._.
•709845/0871
27Π658 ~
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. 3B1 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. 3B1 die zu den Eingängen jedes der Torschaltungcn 14, 15 und 16 in Fig. 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. die 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.
BC9-76-002
709845/0871
Das Ergebnis Her Antivalenz-Verknüpfung (Exklusiv-ODER) durch das Schaltglied 22 ist dargestellt in Fig. AA durch "nächste X-Adresse", in Fig. AB durch "nächste Y-Adresse", und in Fig. AC durch "nächste Z-Adresse".
Aus den Fig. AA, B und C geht also hervor, dass sich die Adressmodifikationen für die drei ROS-Moduln durch die Ausrichtungen des Modifizierfeldes unterscheiden. In Fig. AA 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. AB 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. Aehnlich 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-Adrcssierung. 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 Mikroprogrammiercr festgelegt, und die absoluten Mikrowortadressen in den ROS-Moduln können entweder von Menschen oder mit Unterstützung eines Assemblerprogrammcs festgelegt werden.
BC9-76-OO2
709845/0871
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.
TABELLE I MECHSTEN ADRESSE Adresse des ausße-
ERZEUGUNG DER Ϊ Jetzt erzeugte führten M-Wortes
Zyklus-Zeit Früher erzeugte nächste Adresse
nächste Adresse X (D
1 Z Y (D
2 X (D ζ (D X (D
3 Y (D X (2) Z (D
4 Z (1) Y (2) Z (D
5 X (2) Z (2)
6 Y (2)
Erzeugung der nächsten Adresse bei unbedingter Verzweigung
Wenn das ROS-Systenr gestartet wird, ist eine 12 Bit lange Adresse erforderlich, um das Anfangsmikrowort im Steuerspeicher 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. 3Λ 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
BC9-76-OO2
709845/0871
auf der Leitung 45 von der in Fig. 3C gezeigten Schaltung zum Eingang des UND-Gliedes 21 gegeben wird. Der andere Eingang zum UND-G]ied kommt auf der Leitungsgruppe 42 (ausgewähltes Mikrowort) in Fig. 3B zur Zuführung des 12 Bit langen ROS-Adressfeldes, das im unbedingten Verzweigungsmikrowort enthalten 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) Mikroprof>raimndaten 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.
BC9-76-002 >»
709845/0871
Die Ausführung des Quellenwahl-Mikrowortcs wird gesteuert durch die in Fig. 3D gezeigten Schaltungseinrichtungen, durch die Torschaltungen 10, 17 und 90 in Fig. 3Λ, sowie durch den grössten Teil der ausserhalb des in Fig. 3C gezeigten Mikrowortdccodierers liegenden Schaltungseinrichtungen. Datenbitleitungen werden von der Qucllenwahl-lnstruktion 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. 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 dein Beispiel in Fig. 5 dargestellt. Die Folge beginnt mit der während des vorhergehenden Taktzyklus 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.
BC9-76-002
709845/0871
Durch ein Quellc.iiwahl-Mikrowort wird jedoch nur eiTie Hälfte der 16 Datcnbalmbits der gewählten Quelle benutzt. Der OP-Code des Quell.cnwahl-Mikroworter, gibt an, welche Hälfte gewählt ist, indem er die werthohen 8 Bits (HO) oder die wertniederen 8 Bits (NI) bezeichnet. Die beiden Quell enw.ihl-Mikrowö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 Qucllenwahl-Mikrowort unterbringen muss, von dem die anderen 8 Bits durch andere Felder belegt sind. Somit kann in dein 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 Decodiersteuerleitungen 94, 95, 96 und 97 von dem Quellcndecodierer 100 in Fig. 3C. Sie empfangen ausserdem Signale von der HO-Steuersignalleitung 91 und von der NI-Steuersignalleitung 92 vom Mikrowortdecoiderer in Fig. 3C, welche anzeigen, welches der beiden Quellcnwahl-Mikrowörter ausgeführt wird (d.h., welche der beiden Datenbahnhälften gewählt wird). Die Datenbahneingänge der in Fig. 3D gezeigten Schaltung sind mit den entsprechenden Ausgangssignalleitungen von Fig. 2 verbunden.
BC9-76-OO2
709845/0871
3?
Das Dateninaskcnfeld 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 Datenmaskenfcld von Leitung 47 (Fig. 3C) UND-verknüpft mit den gewählten Quellcnbits 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 (Exklusiv-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 Maskenfreigabc-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 Verzeweigungsmaskenregisters 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-Kippgliedcs angesteuert wird. Wenn das Maskenfreigabc-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
BC9-76-002
709845/0871
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 Qucllenwahl-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=I bezeichnet ein Testsignal, das als ein Eingangssignal zum UND-Glied 90 in Fig. 3Λ 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 Verzweigungsmaskenregister 81 in Fig. 3C wird durch ein Verzweigungsmaskenmikrowort geladen, das in Fig. 9 gezeigt ist. Die Ausführung der Verzweigungsmasken-Instruktion lädt nicht nur das Verzweigungsmaskenregister 81, sondern schaltet auch das Maskenfrcigabe-Kippglied ein, das durch die Ausführung eines nächsten Quellenwahl-Mikrowortes zurückgestellt wird. Der Inhalt des Verzweigungsmaskenregisters 81 kann also durch ein Quellenwahl-Mikrowort nur einmal benutzt werden. Es muss daher explizit für jedes Quellenwahl-Mikrowort geladen werden, welches das Verzweigungsmaskenregister benutzen will.
BC9-76-003 70 9845/08 71
Regis te rwalil steuerung
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 Rl 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 Ecnutzung 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 in 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 Rl und welches andere für R2 benutzt wird. Ein solches Mikroprogramm entspricht der als Beispiel in der nachstehenden Tabelle II angeführten MiRroroutine.
TABELLE II
(siehe nächste Seite)
BC9-76-002
7098A5/0871
3l
TABKLLE 11
Mikrowort
Verzweigungsmaske 010
Quellenwahl Rl
Unbed. Verzweigung
Verzweigungsmaske 010 (für nächste Mikroroutine) Lesen Allgemein-Register Rl
(Verzweigungsziel-Mikrowort in nächster
Mikroroutine) (wenn R2 bezeichnet ist)
Quellenwahl R2
Unbed. Verzweigung
(irgendein Mikrowort für nächste Mikroroutine) (Verzweigungsziel-Mikrowort in nächster
Mikroroutine)
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.
Zeitzyklus (D
X (D
Y (D
Z (2)
X (2)
Y (2)
Z ODER
(2)
Z (3)
X (3)
Y (3)
Z
BC9-76-002
7 09845/0871
Die 5 Bit lange Allgemeinregister-Stapeladresse wird entweder in ein Stapeladressregister 193 (für Rl) oder in ein Stapeladressregister (für R2) gesetzt.
Die Auswahl-Mikroroutine für die allgemeinen Regsiter (Tabelle II) arbeitet bei zeitverschac.hteltcn Moduln des Ausfühiungsbeispiels folgendermassen, wobei als erster Zyklus ein X(l)-Zyklus angenommen wird. Der X(l)-Zyklus fülirt ein Verzweigimgsinasken-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-Instruktion 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
BC9-76-002
709845/0871
ein R2-RegisLer bezeichnet, ist ihre Zielroutine ähnlich wie die Routine zum Wählen des durch Rl 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)-Zyklur> wieder das Verzweigungsmasken-Mikrowort ausführen.
Während des Y(2)-Zyklus wird das aus dem allgemeinen Regsiter 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 Allgcmeinregisters. 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 Stufenadressc vom laufenden Stufenfeld 14, 15 in einem Stufenregsiter 251 über das UND-Glied 252 ausgegeben. Wenn Bit 9 jedoch auf 0 gesetzt ist, wird die Stufenadresse stattdessen von den Bits IA, 15 des aus dem allgemeinen Register gelesenen Mikrowortes abgeleitet. Die 2 Bit lange gewählte Stufenandresse wird mit der 3 Bit langen Adresse aus dem allgemeinen Register vom Mikrowortausgang der Fig. 3C auf dem Bus 256 verkettet und in eines der beiden Stapeladrcssrcgistcr 193 und 194 übertragen, bestimmt durch die Einstellung des OP-Code-Bit 3 in dem aus dem
BC9-76-0O2
709845/0871
allgemeinen Register gelesenen Mikrowort, und dann aus demselben Register ausgegeben, um das allgemeine Register im Stapel anzusteuern.
BC9-76-OO2
709845/0871

Claims (10)

  1. PATENTANSPRÜCHE
    (T) Anordnung zur Ansteuerung eines Mikroprogrammspeichers, der aus mehreren Speichermoduln aufgebaut ist, gekennzeichnet durch
    - eine Taktgebereinrichtung (55; Fig. 3) zur Abgabe mehrerer Taktimpulsfolgen, die untereinander phasenverschoben sind, und deren jede einem Speichermodul (30, 31, 32; Fig. 3B) zugeordnet ist;
    - einen Adreßgenerator (Fig. 3A) zur Erzeugung von Adressen zur Ansteuerung der Speichermoduln, mit Eingängen für Adreßsignale (27, 28, 29) und für Modifi-
    ziersignale (43) und mit Verknüpfungseinrichtungen i (11...16, 22) zur selektiven Kombination der Adreß- ; und Modifiziersignale aufgrund von an Steuereingängen| (49, 50, 56, 57, 58) empfangenen Steuersignalen; :
    - mindestens ein Adreßregister (24, 25, 26; Fig. 3B) j zur Speicherung einer vorher vom Adreßgenerator abgegebenen Adresse, dessen Ausgänge mit den Adreßsignaleingängen verbunden sind;
    - Verbindungseinrichtungen (36...39, 43) zwischen den Ausgängen der Speichermoduln und den Modifiziersignal-(-eingängen zur Übertragung eines Modifizierfeldes aus einem ausgelesenen Mikroprogrammwort an den Adreßgenerator. 709045/0871
    BC 976 OO2
    ORiGlNAL fNSPECTH)
  2. 2. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß die Verknüpfungseinrichtungen im Adreß-
    ; generator (Fig. 3B) Torschaltungen (14, 15, 16) enthalten, welche mit den Modifiziereingängen (43) und mit Zuleitungen (56, 57, 58) von der Taktgebereinrichtung (55) verbunden sind und je nach auftretendem Taktsignal das Modifizierfeld auf je eine andere Leitungsgruppe (0-3, 4-7, 8-11) geben, so daß eine angeschlossene Kombinationsschaltung (22) aufeinanderfolgende Modifizierfelder auf gegeneinander verschobenen Untergruppen von Eingängen empfängt je nachdem, welchem Speichermodul die erzeugte Adresse zugeordnet ist.
  3. 3. Anordnung nach Patentanspruch 1 und/oder 2, dadurch gekennzeichnet, daß die Anzahl Bits im Modifizierfeld und damit die Anzahl der Modifiziersignaleingänge (43) F = A/M ist, wobei A die Anzahl Bits einer vollständigen Mikroprogrammspeicheradresse, d.h. die Anzahl der Eingänge (z.B. 29) des Adreßgenerators (Fig. 3A) für einen Satz Adreßsignale ist und M die Anzahl von überlappt arbeitenden Speichermoduln (30, 31, 32).
    7098A5/0871 bus 976 oo2
  4. 4. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 3, dadurch gekennzeichnet, daß die Arbeitszyklen der Speichermoduln einander überlappen, und daß die für ein erstes Speichermodul (X) erzeugte Adresse jeweils mit einem Modifizierfeld aus einem zweiten Speichermodul (Y) kombiniert wird, um die nächste Adresse für dieses zweite Speichermodul (Y) zu erzeugen.
  5. 5. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 4, dadurch gekennzeichnet, daß die Kombinationsschaltung (22) eine Antivalenzschaltung ist, deren erster Satz Eingänge (22b) mit den Adreßsignaleingängen (z.B. 29) zum Empfang einer vorher abgegebenen Adresse verbindbar ist, und von deren zweitem Satz Eingängen (22a) jeweils eine Untergruppe mit den Modifiziersignaleingängen (43) verbindbar ist.
  6. 6. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 5, gekennzeichnet durch
    - eine Quellenwahlschaltung (Fig. 3D), deren Daten-
    j eingänge (111... 118) mit verschiedenen Stellen
    der aus Leitungen und Registern bestehenden Datenbahn (Fig. 2) eines Prozessors verbunden
    709845/0871
    BC 976 002
    sind, und deren Ausgänge (46) aufgrund von an Steuereingängen (91, 92, 94...97) zugeführten Auswahlsignale die Datensignale einer ausgewählten Gruppe von Eingängen abgeben;
    - eine Steuersignalleitung (48; Fig. 3C) für ein vom Mikroprogrammspeicher-Decodierer (400) abgegebenes Quellenwahl-Steuersignal;
    - zusätzliche Quellendateneingänge (46; Fig. 3A) im Adreßgenerator, die mit den Ausgängen der Quellenwahlschaltung verbunden sind, und die bei Vorliegen des Quellenwahl-Steuersignals anstelle der Modifiziersignaleingänge mit zweiten Eingängen (22a) einer Kombinationsschaltung (22) verbindbar sind, deren erste Eingänge (22b) mit den Adreßsignaleingängen (27, 28, 29) des Adreßgenerators verbindbar sind.
  7. 7. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 6, dadurch gekennzeichnet, daß der Adreßgenerator (Fig. 3A) eine zusätzliche Verknüpfungsschaltung (17) aufweist, deren erster Satz Eingänge (46) mit den Quellendateneingängen des Adreßgenerators verbunden ist, und deren zweiter Satz Eingänge (47) über Verbindungseinrichtungen
    7098A5/0871
    BC 976 ÖO2
    (36...39, 41) mit Ausgängen der Speichermoduln (30, 31, 32) verbindbar ist, so daß die Quellendaten bei Vorliegen des Quellenwahlsignals aufgrund einer in einem von den Speichermoduln abgegebenen Mikroprogrammwort enthaltenen Datenmaske selektiv der Kombinationsschaltung (22) zur Erzeugung der nächsten Adresse zugeführt werden können.
  8. 8. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 7, dadurch gekennzeichnet, daß ein Verzweigungsmaskenregister (81) und ein Maskenfreigabekippglied (82) vorgesehen sind, die mit Daten eines ausgelesenen Mikroprogrammwortes geladen bzw. aufgrund eines Mikroprogrammwort-Decodiersignals gesetzt werden können, und daß im Adreßgenerator (Fig. 3B) weitere Verknüpfungsschaltungen (10) vorgesehen sind, deren Ausgänge mit den zweiten Eingängen (22a) der Kombinationsschaltung (22) verbunden sind, und die bei Vorliegen eines Maskenfreigabesignals aus dem Maskenfreigabekippglied die Ausgänge (52) des Verzweigungsmasken-
    ι registers anstelle der Adreßsignalelngänge (27, 28, 29) des Adreßgenerators mit der Kombinations-
    j schaltung verbinden.
    : 709845/0871
    BC 976~OO2 -""
  9. 9. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 8, dadurch gekennzeichnet, daß ein Registerstapel (190) vorgesehen ist mit folgenden Steuereinrichtungen:
    - ein Stapeladreßdecodierer (192) zur Adressierung je eines Registers aus dem Registerstapel;
    - mindestens ein Stapeladreßregister (193, 194), dessen Ausgang mit dem Stapeladreßdecodierer verbunden ist;
    - eine Mikrowort-Lesesteuerleitung (173, 174), zur übertragung eines Operationscodebit aus einem ausgelesenen Mikroprogrammwort; sowie
    - zusätzliche Verbindungseinrichtungen (255, 256) zur übertragung einer Registeradresse aus einem ausgelesenen Mikroprogrammwort in das adressierte Stapeladreßregister aufgrund eines Steuersignals auf der Mikrowort-Lesesteuerleitung.
  10. 10. Anordnung nach einem oder mehreren der Patentansprüche 1 bis 9, dadurch gekennzeichnet, daß ein Stufenregister (251) vorgesehen ist mit einem Stufenfeld, dessen Inhalt die jeweils auszuwählende Gruppe von Registern im Registerstapel (190) angibt,
    709845/0871
    BC 976 OO2
    und mit einer Torschaltung (252) zur übergabe des Stufenfeldinhaltes in die höherwertigen Bitpositionen des Stapeladreßregisters (193, 194); daß ein Steuereingang der Torschaltung mit einer Bitstelle eines die jeweils ausgelesenen Mikroprograinmwörter enthaltenden Registers (254) verbunden ist; und daß weitere Bitpositionen dieses Registers mit den niederwertigen Bitpositionen des Stapeladreßregisters zur Übergabe einer Registeradresse verbunden sind.
    709845/0871
    BC 976 OO2
DE19772717658 1976-04-30 1977-04-21 Anordnung zur ansteuerung eines mikroprogrammspeichers Withdrawn DE2717658A1 (de)

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
DE2717658A1 true DE2717658A1 (de) 1977-11-10

Family

ID=24737572

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772717658 Withdrawn DE2717658A1 (de) 1976-04-30 1977-04-21 Anordnung zur ansteuerung eines mikroprogrammspeichers

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)

* Cited by examiner, † Cited by third party
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
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
US4467410A (en) * 1981-02-04 1984-08-21 Burroughs Corporation Multi-phase subroutine control circuitry
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
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
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
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
US4931989A (en) * 1982-02-22 1990-06-05 International Business Machines Corporation Microword generation mechanism utilizing a separate programmable logic array for first microwords
US4594661A (en) * 1982-02-22 1986-06-10 International Business Machines Corp. Microword control system utilizing multiplexed programmable logic arrays
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
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
EP0220449B1 (de) * 1985-10-18 1990-11-28 BBC Brown Boveri AG 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)

* Cited by examiner, † Cited by third party
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
US3851312A (en) * 1970-05-27 1974-11-26 Hughes Aircraft Co Modular program control apparatus for a modular data processing system
US3745532A (en) * 1970-05-27 1973-07-10 Hughes Aircraft Co Modular digital processing equipment
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

Also Published As

Publication number Publication date
JPS6110859B2 (de) 1986-03-31
ES458328A1 (es) 1978-03-01
US4156925A (en) 1979-05-29
AU2479477A (en) 1978-11-09
CH615771A5 (de) 1980-02-15
FR2349881A1 (fr) 1977-11-25
AU509731B2 (en) 1980-05-22
HK71184A (en) 1984-09-21
BR7702821A (pt) 1978-04-04
SE417649B (sv) 1981-03-30
NL7704652A (nl) 1977-11-01
IT1113537B (it) 1986-01-20
FR2349881B1 (de) 1980-03-14
JPS52132742A (en) 1977-11-07
GB1556552A (en) 1979-11-28
SE7704958L (sv) 1977-10-31

Similar Documents

Publication Publication Date Title
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2716369C2 (de)
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE2350884C2 (de) Adreßumsetzungseinheit
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE1549523B2 (de) Datenverarbeitungsanlage
DE2847575A1 (de) Schablonen-mikrospeicher
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE2332971C2 (de) Mikroprogrammsteuereinrichtung
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee