DE2261221C2 - Steuerwerk in einer Datenverarbeitungsanlage - Google Patents
Steuerwerk in einer DatenverarbeitungsanlageInfo
- Publication number
- DE2261221C2 DE2261221C2 DE19722261221 DE2261221A DE2261221C2 DE 2261221 C2 DE2261221 C2 DE 2261221C2 DE 19722261221 DE19722261221 DE 19722261221 DE 2261221 A DE2261221 A DE 2261221A DE 2261221 C2 DE2261221 C2 DE 2261221C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- micro
- routine
- associative memory
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
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
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
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)
- Storage Device Security (AREA)
Description
Die Erfindung betrifft ein Steuerwerk in einer Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruchs 1.
Es ist bekannt, daß ein Steuerwerk in einer Datenverarbeitungsanlage einen Assoziativspeicher aufweist, der
das Steuerprogramm in Form von Mikroroutinen aus Mikroworten enthält, wobei jedes Wort einer Mikrorouiine, mit Ausnahme des ersten, mit Hilfe einer Adresse identifiziert und abgerufen wird, die im vorhergehenden
Mikrobefehl enthalten ist (GB-PS 12 18 406). Bekannt sind auch Halteregister zur Zwischenspeicherung einer
Mikrobefehlsadresse (vgL S.S. Husson, Microprogramming Principles and Practices, Prentice-Hall Ina, 1970,
S.30).
Mikroprogrammsteuerwerke sind dann besonders flexibel und wirtschaftlich, wenn sie die Unterbrechung
von laufenden Mikroprogrammen und danach den Aufruf einer oder mehrerer ineinander geschachtelter
Mikroroutinen erlauben. Dadurch wird zusätzlich zur erwähnten Flexibilität erreicht daß kurze Mikroroutinen
verwendet werden können und daß der Speicherbedarf für die Aufbewahrung der Routinen gering bleibt was
insbesondei? zur Erzielung niedriger SysteRikosten beiträgt In herkömmlichen Systemen war diese Technik
jedoch durch den Nachteil gekennzeichnet daß die Übertragung der Kontrolle zwischen verschiedenen Routinen
und die Rückkehr zu einer unterbrochenen Routine kompliziert und zu zeitaufwendig war, und somit den
Wir kungsgrad der gesamten Datenverarbeitungsanlage beeinträchtigte.
Aufgabe der Erfindung ist es nun, ein Steuerwerk in einer Datenverarbeitungsanlage so zu gestalten, daß die
Übertragung der Kontrolle zwischen verschiedenen Mikroroutinen bei Rückkehr zu einer unterbrochenen
Mikroroutine mit möglichst geringem Aufwand an Zeit und Schaltmitteln zu verwirklichen ist
Gelöst wird diese Aufgabe bei einem Steuerwerk nach dem Oberbegriff des Patentanspruchs 1 durch die im t5
kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale.
Vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen
zu entnehmen.
Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, daß der Systemwirkuncsgrad allgemein
verbessert, der Bedarf an Speicherplatz für das Mikroprogramm vermindert die Flexibilität des Systems
Jf vergrößert und eine beträchtliche Kostenersparnis erzielt wird.
f. Die Erfindung wird im folgenden anhand eines durch Zeichnungen erläuterten Ausführungsbeispiels näher
'i beschrieben. Es zeigt
J'j F i g. 1 ein Blockdiagramm einer Datenverarbeitungsanlage^die durch ein Steuerwerk entsprechend der
5| Erfindung gesteuert wird.
j| F i g. 2 die Verteilung der Steuerfelder in einen Mikrobefehl,
F i g. 3 ein Diagramm des Steuerwerks nach der Erfindung, eingebaut in die Datenverarbeitungsanlage von
%
F'S·1·
:| In der britischen Patentschrift 12 18 406 (UK 9 67 034) wird eine Datenverarbeitungsanlage beschrieben, zu
ι- deren Bestandteilen Assoziativspeicher für die Aufnahme von Funktionstabellen gehören. In dem dort beschrie-
benen System werden arithmetische und logische Funktionen durch Tabellensuchoperationen in den gespei-
t| cherten Tabellen ausgeführt Die Patentschrift beschreibt ebenfalls, wie die Speicher als adressierbare Register
'% arbeiten und wie ein Instruktionszähler eingebaut werden kann. Das vorliegende Datenverarbeitungssystem ist
eine Abwandlung des Systems nach der obenerwähnten Patentschrift und benutzt im wesentlichen dieselben
f) arithmetischen Techniken. Der Schwerpunkt der folgenden Beschreibung wird in der Behandlung der Unter-
if schiede zwischen der Patentschrift 12 18 406 und dem Ausführungsbeispiel eines die Erfindung darstellenden
f[ Steuerwerks liegen.
: Die benutzten Assoziativspeicher unterscheiden sich von denen aus Patentschrift 12 18 406 in zwei wesentlichen
Punkten. Zum ersten hat jeder Speicher zwei Eingabe/Ausgaberegister anstelle des einen früher beschriebenen
und zweitens ist jeder Speicher mit einem Masken-peicher versehen, in dem verschiedene Masken
Vi aufbewahrt werden, die zur Definition der Felder dienen, welche bei der assoziativen Suche und beim Lesen und
Schreiben verwendet werden. Die Verwendung eines Maskenspeichers ist in der britischen Patentschrift
12 33 484 erklärt; in derselben Patentschrift sind auch die Vorteile von zwei Eingabe/Ausgaberegistern erwähnt.
; Zwischen den Eingabe/Ausgaberegistern bestehen direkte Verbindungsleitungen, deren Einzelheiten und deren
.'■.. Zweck iin folgenden beschrieben werden.
;'.■'■■ Die in F i g. 1 dargestellte Datenverarbeitungsanlage enthält Assoziativspeicher 10 und 12 der obenerwähnten
Art und einen konventionellen Hauptspeicher 14, aus beispielsweise magnetischen oder monolithischen Spei-
; cherelementen. Der Assoziativspeicher 10 wird begriffsmäßig und mit Hilfe seiner Zuleitungen aufgeteilt in die
Bereiche für die Steue/ung, für das Rechenwerk ALU (Arithmetische und Logische Einheit) und für Schlüssel.
Der Steuerbereich enthält Daten zur Mikroprogrammsteuerung, die alle drei S'peicher des Systems steuern. Der
ALU-Btreich enthält Funktionstabellen zur Ausführung arithmetischer und logischer Funktionen auf Operanden,
die den Tabellen als Suchargument bei einer Tabellensuchoperation zugeführt werden. Der Bereich für
Schlüssel enthält Daten, die die verschiedenen Tabellen voneinander unterscheiden. Ein Schlüssel wird als Teil
des Sucharguments mitgeliefert und identifiziert die Tabelle, zu der der Zugriff geschehen soll. Der Assoziativspeicher
10 wird als Funktionsspeicher oder kurz als F-Speicher bezeichnet.
Der Assoziativspeicher 12 wird ebenfalls in Bereiche eingeteilt, und zwar in einen Bereich für Register, einen
Bereich für den zweiten Operanden, einen Bereich für Registeradressen und einen Bereich für Schlüssel. Der
Bereich für Register umfaßt die allgemeinen Register und die Gleitkommartgister, die in einem Datenverarbeitungssystem
normalerweise vorhanden sind. Im Bereich für Registeradressen stehen Daten zur Bezeichnung
jedes einzelnen Registers, das aus verschiedenen Reihen des Bereichs für Register bestehen kann. Wie der Name
des Bereichs für den zweiten Operanden andeutet, ist darin der zweite Operand für arithmetische oder logische
Operationen enthalten. Der erste Operand kann sich im Bereich für Register oder im Hauptspeicher befinden.
Die Daten im Bereich für Schlüssel dienen zur Auswahl von besonderen Operanden; sie sind außerdem bei der
Adressierung der Register nützlich. Der Assoziativspeicher 12 wird als Datenspeicher oder kurz als D-Speicher
bezeichnet. 6S
Wie erwähnt, besiUin der D- und der F-Speicher jeweils zwei Eingabe/Ausgaberegister. Piese sind in Fi g. 1
durch waagrechte Linien oberhalb und unterhalb der die Speichermatrizen darstellenden B'ockS. gekennzeichnet.
Felder innerhalb der Register sind durch kurze senkrechte Striche abgegrenzt. Verbindungen zwischen
Feldern sind durch einzelne Linien angegeben, die die Mittelpunkte der Felder verbinden. Diese Einzel-Linien
sollen ebenso viele parallele Leitungsadern darstellen, wie Bits in dem Feld enthalten sind, das sie verbinden.
Gehen verschiedene Verbindungen vom gleichen Feld oder von der gleichen Gruppe von Feldern aus. so ist der
klaren Darstellung der Verbindung wegen das Feld doppelt gezeichnet, und zwar beide Male in derselben
Position relativ zu den Spalten der Speichermatrize. In zweien solcher überlappender Felder können verschiedene Daten nicht zur gleichen Zeit existieren. Für den Fall, daß Daten gleichzeitig in überlappende Felder
eingegeben werden, erscheint als Resultante in beiden Feldern die ODER-Funktion der eingegebenen Daten.
Die ein Eingabe/Ausgaberegister darstellende waagrechte Linie erstreckt sich nur über Jens Felder, die tatsächlich benutzt werden.
Einige der Felder der beiden Eingabe/Ausgaberegister des gleichen Speichers sind miteinander verbunden.
Zwischen den Schlüsselfeldern des D-Speichers und des F-Speichers bestehen Verbindungen entsprechend
Fig. I. Da in jedem Speicherzyklus höchstens ein Schlüssel benötigt wird, und zwar unabhängig davon, welches
Register benutzt wird, müssen nicht notwendigerweise verschiedene Schlüsselfelder für die beiden Eingabe/
Ausgaberegister vorgesehen sein. Eine andere Art der Verbindung besteht in den Bereichen für die Register
adrcssen und den zweiten Operanden im D-Speicher 12. Hier dienen die Verbindungen zur Stellen verschiebung
von Daten beim Durchgang durch den D-Speicher; dadurch werden Verschiebungsfunktionstabellen vermieden.
die viel Speicherplatz beanspruchen würden. Die Einzelheiten der Verwendung dieser Verbindungen werden im
folgenden beschrieben.
des Systems erläutert werden. Die mit FI, F2. D1 und DI bezeichneten Eingabe/Ausgaberegister bedeuten,
wie in der Zeichnung angegeben, die oberen und unteren Register des F- bzw. D-Speichers.
Die Arbeitsweise des Prozessors ist seriell mit BCD-Ziffern. Im allgemeinen werden zwei solcher 4-Bii-Ziffern
aus den Bereichen für den zweiten Operanden und die Register aus dem D-Speicher mit Hilfe von D 2 nach F2
gebracht. Ein 4-Bit-Resultat wird von FI nach D1 übertragen. Bei der Übertragung von Ziffernpaaren in den
ALU-Bereich wird die Resultante aufgrund der Verbindungen zwischen D1 und D 2 Ziffer für Ziffer verschoben, um somit den Platz eines der Operanden einzunehmen.
Zur Ausführung seiner Funktionen besitzt der ALU-Bereich ies D-Speichers eine Tabelle für das logische
Exklusive-ODER, eine Tabelle für Addierüberträge, eine Tabelle für das logische UND. eine Tabelle, in der
Daten während eines Speicherzyklus und während die Register FI und F2 benutzt werden, ungeändert
aufbewahrt werden können, eine Tabelle für das logische Ä · ß und eine Tabelle zum Verschieben um eine
Ziffer. Die Einzelheiten dieser Tabelle sollen hier nicht angegeben werden. Es genügt die Bemerkung, daß die
Tabellen für das Exklusive-ODER und den Addierübertrag es ermöglichen, eine Addition in zwei Speicherzyklen
durchzuführen.
Schleife von zwei oder mehreren Steuerworten. Die Beendigung der Schleife wird durch einen Zähler festgestellt Der Schlüsse! dient zur Suche nach dem ersten Wort einer Mikroroutine. in dem die Adresse des nächsten
Steuerwortes und ein Zähler, der zu der Mikroroutine gehört, enthalten sind. Bei jedem Zyklus des Assoziativspeichers wird der Zähler erhöht; sein Überlauf zeigt die Beendigung der Mikroroutine an. Mikroroutinen
können verschachtelt sein, d. h. vor dem Ende einer Mikroroutine A wird eine Mikroroutine B aufgerufen und
ausgeführt und danach die Mikroroutine A wieder aufgerufen. Die im Mikrobefehl enthaltenen Daten bestimmen die Operation, die der Hauptspeicher, der D- und der F-Speicher im nächsten Zyklus durchzuführen habea
Ein Teil dieser Daten wird direkt als Steuerdaten für Operationen wie z. B. Lesen oder Schreiben interpretiert:
der Rest wird dem Assoziativspeicher als Schlüssel für die Tabellen zugeführt, zu denen der Zugriff zu erfolgen
hat und um damit zu bestimmen, welche arithmetischen und logischen Funktionen ausgeführt werden müssen.
F i g. 2 zeigt die Felder 40 bis 42 und 43a bis 43^ im Steuerbereich des F-Speichers 10. Feld 40 ist ein Adreßfeld.
in das Daten aus dem ALU-Bereich des F-Speichers mit Hilfe vom Feld 44 von F2 (siehe Fig. 1) eingesetzt
werden. Diese Daten dienen zur Identifikation von speziellen Maschinenbedingungen, wie z. B. Überlauf oder
negativer Operand, und bewirken im Normalfall und wie später genauer erläutert werden wird, den Aufruf einer
geschachtelten Mikroroutine. Feld 41 ist ein Schlüsselfeld zur Identifikation und zur Adressierung von Mikro
routinen. Feii 42 ist ein Zählerfeld, das mit Feld 45 von F2 verbunden ist, so daß bei Beginn eines jeden
Speicherzyklus im Register F1 ein erhöhter Zähler verfügbar ist. Eine Tabelle für das Erhöhen des Zählers ist im
Zählerfeld des F-Speichers aufbewahrt, wobei die Überlaufbits im ALU-Bereich stehen. Beim Zählerüberlauf
erscheinen die Überlaufbits als Adressenbits im Feld 40, und zwar aufgrund von Feld 44 in F2 und bilden einen
Teil der Adresse der nächsten Mikroroutinen. Die Steuerfelder 43s bis 43g enthalten folgendes:
55
43a: Operationscode für D-Speicher (3 Bits);
436: Operationscode für F-Speicher (2 Bits);
43c: Maske für den D-Speicher (1 Bit);
Aid:
Maske für D- und F-Speicher (1 Bit);
43e-. Maske für F-Speicher (1 Bit);
43/: Schlüssel für D-Speicher (2 Bits);
4ig:
Operalionscode für Hauptspeicher (2 Bits).
der F-Speicher Jn einem aus 4-Bit bestehenden Schlüssel zwei Bits gemeinsam haben. Der Schlüssel für den
chers verwendet und dazu über Leitung 46 in das Schlüsselfeld des D-Speichers übertragen.
In F i g. 3 sind jene Teile des Systems von F i g. 1 dargestellt, die für die Systemsteuerung benutzt werden. Der
Klarheit halber wurden die Verbindungen zwischen Di und D 2 weggelassen. Die Folge der Schlüssel für die
Mikroroutinen sind in einem reservierten Bereich des Hauptspeichers 14 gespeichert. Ein Wort des Hauptspeichers mit 32 Bit Länge enthält sechs Schlüssel mit je vier Bits und, wenn die Folge länger ist als sechs s
Mikroroutinen, eine Anschlußadresse, die auf das Hauptspeicherwort zeigt, in dem die Folge weitergeführt wird.
Zv, dem Hauptspeicherwort, das den ersten Schlüssel einer Folge enthält, wird zugegriffen, nachdem der
Ope/ationscode einer Instruktion decodiert wurde und daraufhin sein Inhalt in die beiden 8-Bit-Register47 und
48 im D-Speicher übertragen. Mit Hilfe eines im folgenden erläuterten Verfahrens wird der Inhalt dieser
Register nach Bedarf in vier Bitabschni'.ten in Feld 41 von Fl gebracht. Der Schlüssel identifiziert den ersten
Mikrobefehl einer Mikroroutine im Kontrollbereich des F-Speichers. Dieses Wort enthält einen Zähler, der die
Länge der Mikroroutine bestimmt und der zusammen mit dem Schlüssel für die Adressierung des nächsten
Wortes der Routine verwendet wird; er wird bei Jedem Zyklus des F-Speichers mit Hilfe der Tabelle im
Zählerfeld erhöht. Die Schlüssel des ersten und der folgenden Mikrobefehle bestimmen die vom ALU-Bereich
des F-Speichers durchzuführende Funktion.
Die Übertragung der Kontrolle von einer Mikroroutine zur nächsten geschieht mit Hilfe von Kettworten aus
dem Steuerbereich des F-Speichers. Dieses Verfahren wird immer angewandt, unabhängig davon, ob die
Mikroroutine voüstäridig abgearbeitet wurde oder ob die Kontrolle sn eine geschieht?!'? Mikroroutine übertragen werden muß. Feld 40 aller Mikrobefehle ist Null. Ergibt sich eine Bedingung, die eine geschachtelte
Mikroroutine erforderlich macht, so wird im Feld 40 von Fl ein Bitpaar ungleich Null gesetzt. Wie schon
erwähnt, kann dieses Feld Daten aus dem ALU-Bereich des F-Speichers empfangen. Beim nächsten Speicherzyklus wird ein Kettwort abgerufen, dessen Adresse mit Hilfe des Schlüssels des gerade bearbeiteten Mikrobefehls
und des Inhalts von Feld 40 gebildet wird. Das auf diese Weise ausgewählte Kettwort hängt ab von der gerade
ausgeführten Mikroroutine und der angezeigten Bedingung. Das Kettwort enthält Steuerfelder, die für die
Übertragung der Felder für den Schlüssel und den Zähler in ein Halteregister 49 im D-Speicher sorgen, und zwar
mit Hilfe der Verbindung 50 zwischen F2 und D1, und danach beim nächsten Zyklus das Auslesen des Schlüssels
der geschachtelten Mikroroutine veranlassen. Die Ausführung der geschachtelten Mikroroutine geht dann
normal vor sich. Der letzte Mikrobefehl aller Mikroroutinen enthält Steuerfelder, die das Auslesen des Halteregisters 49 in die Felder 41 und 42 von Fl bewirken. Dies erfolgt, wenn die letzte Mikroinstruktion der
Mikroroutine nach F1 gebracht wird. Im Schlüsselfeld dieser Mikroinstruktion steht Null;der Inhalt des Zählers
ist ebenfalls Null, da ein Zählerüberlauf stattfindet, wenn der Zugriff zur letzten Mikroinstruktion erfolgt. Die
Inhalte der Felder für den Schlüssel und den Zähler im Fl bestimmen die nächste auszuführende Mikroinstruktion. Ist das Halteregister 49 leer, so wird eine Einfädelroutine aktiviert, die aus Register 47 oder 48 den nächsten
Schlüssel oder die Folgeadresse für das nächste Hauptspeicherwort abruft. Ist andererseits das Halteregister 49
nicht leer, so enthält es den Schlüssel und den Zähler der Mikroroutine, die unterbrochen wurde, um die
geschachtelte Mikroroutine zur Ausführung gelangen zu lassen, und es ist somit die problemlose Rückkehr zu
dieser Mikroroutine möglich, ohne dabei einen Zyklus zu verlieren.
Zur Vervollständigung der Beschreibung des in F i g. 1 bis 3 dargestellten Systems sollen noch zwei typische
Mikroroutinen erläutert und danach gezeigt werden, wie sie zur Ausführung einiger typischer Instruktionen
gemeinsam verwendet werden können.
Es handelt sich hier um einen in vier Speicherzyklen ablaufenden Zugriff zu einem Wort im Hauptspeicher,
dessen Adresse durch den Instruktionszähler oder eine Operandenadresse gegeben ist. Der Zähler bzw. die
Operandenadresse wird außerdem erhöht
1. Zyklus:
Registers, das die Operandenadresse enthält, werden nach Feld 51 von D 2
gebracht und damit dem Speicheradreßregister 52 des Hauptspeichers zur Verfügung gestellt
2. Zyklus:
Die Niedrigstellenbits der Adresse werden im ALU-Bereich des F-Speichers erhöht Es wird angenommen,
daß kein Übertrag von den Niedrigstellenbits erfolgt Wäre ein Übertrag vorhanden, würde an dieser Stelle eine
Mikroroutine in die Mikroroutine 1 eingeschachtelt werden. Der Zyklus des Hauptspeichers soll als langsamer
angenommen werden als der des Assoziativspeichers, so daß die Zugriffsoperation in diesem Zyklus begonnen
wird.
!Zyklus:
Die erhöhte Adresse, zu der die in das maskierte Feld von D 2 durch eine ODER-Operation gebrachten
erhöhten vier Niedrigstellenbits gehören, wird in den D-Speicher abgespeichert, während der Hauptspeicher
zerstörungsfrei den geforderten Operanden oder die Instruktion in das Speicherdatenregister S3 überträgt und
ίο es somit im Feld 54 von D \ zur Verfügung stellt.
4. Zyklus:
is Hauptspeicherund
F-Speicher: Keine Aktion
Der Inhalt von Feld 54 von D 1 wird in den D-Speicher geschrieben.
Mikroroutine 2. Arithmetische oder logische Operation
Hier handelt es sich um einen Vorgang in zehn Zyklen: Aus 16 Bits bestehende Operanden werden ausgewählten Registern in den Bereichen für Register und dem zweiten Operanden im D-Speicher entnommen und in den
ALU-Bereich des F-Speichers gebracht. Die aus 16 Bits bestehende Resultante wird in den Registerbereich des
D-Speichers zurückgestellt
1 Suche, Lesen nach D 2
Keine Aktion
2 Suche, Schreiben aus D1 Suche, Lesen nach F2
3 Suche, Lesen nach D 2
Suche, Lesen nach F1
4 Suche, Schreiben aus D1 Suche, Schreiben nach F2
5 Suche, Lesen nach D 2
Suche, Lesen nach F1
6 Suche. Schreiben aus Dl Suche. Lesen nach F2
7 Suche, Lesen aus D 2 Suche, Lesen nach FI
8 Suche, Schreiben aus D1 Suche. Lesen nach F2
9 Suche, Lesen aus D 2 Suche, Lesen nach F i
10 Suche, Schreiben aus D1
Aus den Feldern 55 und 56 von D 2 werden dem Operanden vier Bitgruppen entnommen und dem ALU-Bereich des F-Speichers mit Hilfe der Felder 57 bzw. 58 von F2 zur Verfügung gestellt Eine 4-Bit-Resuitante wird
nach Feld 59 von Fl gebracht und mit Hilfe von Feld 60 in Dl in den Registerbereich des D-Speichers
gespeichert Gewisse Felder von D1 und D 2 sind in schraubenförmiger Weise miteinander verbunden. So sind
beispielsweise die Felder A, B und C von D 2 mit den Feldern X, Y und Z von D1 verbunden. Folgt einem
rechts verschoben. Ähnliche Verbindungen bestehen zwischen den Feldern Dl und D 2 des Bereichs für den
zweiten Operanden. Die arithmetische oder logische Operation benötigt zwei Speicherzyklen, so daß das
so zu der Operation auch die Erhöhung des Instruktionszählers gehört Da nur einige wenige Mikroroutinen
benötigt werden, ist nicht der ganze Schlüssel zur Unterscheidung zwischen den Mikroroutinen erforderlich. Aus
F i g. 1 ist ersichtlich, daß das Schlosselfeld im Steuerbereich mit den Feldern des Bereichs für Schlüssel verbunden ist und nicht nur den Zugriff zu Mikroroutinen besorgt, sondern auch zu Funktionstabellen im ALU-Bereich,
wobei die letzteren bestimmen, weiche arithmetische oder logische Operation durchgeführt wird. Weiter ist ein
Teil des Schlüssels des F-Speichers und des Schlüssels des D-Speichers beiden gemeinsam, so daß der Schlüssel
des Mikrobefehls auch die Funktion des D-Speichers steuert
Zur Verdeutlichung sei ein Beispiel gewählt in dem nur die beiden oben diskutierten Mikroroutinen vorhanden sind. Das Schlüsselfeld des ersten Wortes der Mikroroutine 1 könnte den Schlüssel OXXX beinhalten, wobei
.Y bedeuten soll, daß bei einem Vergleich in einem Assoziativspeicher Obereinstimmung angezeigt werden soll
ω gleichgültig welcher Wert in dem Suchargument enthalten ist Der Zustand X ist in den obenerwähnten
Patentschriften erklärt Der Schlüssel für einen Instruktionsabruf mit gleichzeitiger Erhöhung des Instruktionszählers könnte dann beispielsweise 0111 sein. Die linksstehende Null bezeichnet die Mikroroutine 1, die übrigen
Bits veranlassen die notwendigen Operationen im F- und D-Speicher. Alle Schlüssel in den Mikrobefehlen der
Mikroroutine 1 wären durch eine Null in der am wertesten links stehenden Position gekennzeichnet um den
Zugriff der Mikroroutine zu sich seihst zu gestatten. In ähniicher Weise wäre die Mikroroutine 2 durch eine Eins
in der linksbündigen Position gekennzeichnet
RRADD
1, 2, 2, 2, 2
Die aus 32 Bits bestehenden Operanden stehen in den Registern des D-Speichers zur Verfügung. Vor der
eigentlichen Addition wird einer in den Bereich des zweiten Operanden verschoben, indem im F-Speicher Null
hinzugewählt wird und das Resultat mit Hilfe des Bereichs Registeradresse verschoben wird. io
RXADD 1, 1. 2, 1, 1, 2, 1. 2, 1.
Einer der 32-Bit-Operanden befindet sich im Hauptspeicher, der andere im Registerbereich des D-Speichers.
Die ersten drei Routinen bauen die Hauptspeicheradresse des Operanden mit Hilfe eines Basiswertes im 15
Registerbereich und einer Verschiebung im Bereich für den zweiten Operanden auf.
BC(RX)
1. 1. 2.
Feld 44 von F2 wird geprüft und zu der Instruktion an einer gegebenen Hauptspeicheradresse verzweigt, 20
wenn das Feld eine bestimmte Bitkombination enthält. Wie vorher wird die Hauptspeicheradresse durch Basis
und Verschiebung bestimmt
O/oder Xl
1, 1, 2, 1, 2, 1.
Der Wert, der direkt in der Instruktion angegeben ist, wird mit dem Inhalt einer gegebenen Hauptspeicheradresse verknüpft, und zwar im Falle des 0/durch die logische Funktion ODER oder im Falle des XI durch die
Funktion Exklusives-ODER.
Claims (9)
1. Steuerwerk in einer Datenverarbeitungsanlage mit einem Assoziativspeicher, der das Steuerprogramm
in Form von Mikroroutinen aus Mikroworten enthält, wobei jedes Wort einer Mikroroutine. mit Ausnahme
des ersten, mit Hilfe einer Adresse identifiziert und abgerufen wird, die nicht Null ist und die im vorhergehenden Mikrobefehl enthalten ist, und mit einem Halteregiseer zur Zwischenspeicherung einer Mikrobefehlsadresse, dadurch gekennzeichnet, daß bei einer Unterbrechung einer Mikroroutine die Adresse
des nächsten Mikrowortes dieser Mikroroutine in das Halteregister (49) übertragen wird und daß weiterhin
zumindest ein Teil des Halteregisterinhalts als Adresse des nächsten auszuführenden Mikrowortes dieser
ίο Mikroroutine unmittelbar nach der Ausführung des letzten Mikrobefehls einer Mikroroutine verwendet
wird, die während der Unterbrechung der erstgenannten Mikroroutine abgelaufen ist
2. Steuerwerk nach Anspruch 1. dadurch gekennzeichnet, daß im letzten Mikrobefehl jeder Mikroroutine
eine aus lauter Nullen bestehende Adresse erzeugt wird, deren Verknüpfung mit dem übertragenen Inhalt
des Halteregisters mittels der logischen ODER-Funi:tion die Adresse für den folgenden Mikrobefehl geneis riert-
3. Steuerwerk nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Assoziativspeicher Kettworte mit
Adressen enthält, die auf das erste Wort einer Mikroroutine zeigen, und daß die Kettworte ihrerseits mittels
einer assoziativen Suche identifiziert und abgerufen werden, indem zumindest teilweise Signale aus der
übrigct. Datenverarbeitungsanlage zur Adressenbildung herangezogen werden, wobei diese Signale die
Unterbrechung der gerade ausgeführten Mäkroroutine bewirken.
4. Steuerwerk nach einem oder mehreren der Ansprüche 1 bis 3. dadurch gekennzeichnet, daß die Folge
der Mikroroutinen, die zur Ausführung einer Maschineninstruktion der Datenverarbeitungsanlage notwendig ist, durch eine Folge von Adreßschlüsseln identifiziert wird, wobei jeder Schlüssel das erste Wort einer
Mikroroutine angibt, und die Schlüssel in einem oder mehreren Schlüsselwortregistern (47 und 48) stehen, wo
sie bei der Abarbeitung jeder Mikroroutine sequentiell abgerufen werden.
5. Steuerwerk nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß ein Steuerbereich des
(ersten) Assoziativspeichers (10) in Feldgruppen (F i g. 2) für die Mikroprogrammsteuerung aufgeteilt ist. die
aus einem Adreßfeld (40) zur Kennzeichnung von außergewöhnlichen Maschinenbedingungen, aus einem
Schlüsselfeld (41) für Mikroroutinen, aus einem Zählfeld (42) und Steuerfeldern (43a bis 43g) bestehen, daß
zur Aufführung von Maschineninstruktionen die aus mehreren Schlüsseln bestehende Mikrobefehlskette aus
dem Hauptspeicher (14) in einen zweiten Assoziativspeicher (12) gelesen und daraus nacheinander über die
Leitung (50) dem ersten assoziativspeicher (10) zugeführt werden, wo die durch den Schlüssel gekennzeichnete Mikroroutine ausgeführt wird, wobei das Ende der Routine durch den Oberlauf des Zählfeldes (42)
angezeigt wird, daß im Fall einer außergewöhnlichen Maschinenbedingung mit Hilfe einer in das Adreßfeld
κ (40) gebrachten, die vorliegende Bedingung charakterisierende Bitkombination ein Kettwort adressiert wird,
das die für die vorliegende Bedingung vorgesehene Mikroroutine aktiviert, vorher aber den Schlüssel und
das Zählfeld der gerade unterbrochenen Mikroroutine in das Halteregister (49) rettet, daß bei Beendigung
jeder Mikroroutine, die durch den Inhalt »0« von Schlüsselfeld und Zählfeld angezeigt wird, entweder der
Inhalt des Halteregisters (49) zur Adressierung des Steuerbereichs im ersten Assoziativspeicher (10) abgeru
fen und damit die unterbrochene Routine fortgesetzt, oder, bei leerem Halteregister, der nächste Schlüssel
aus dem zweiten Assoziativspeicher (12) geholt wird, wobei gegebenenfalls erst eine neue Mikrobefehlskette
aus dem Hauptspeicher (14) in den zweiten Assoziativspeicher (12) gebracht werden muß.
6. Steuerwerk nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß ein
Funktionstabellen enthaltender Assoziativspeicher vorhanden ist, in dem arithmetische und logische Opera
tionen mit Hilfe von Tabellensuchoperationen in den Funktionstabellen durchgeführt werden.
7. Steuerwerk nach Anspruch 6, dadurch gekennzeichnet, daß das Halteregister (49) ein Speicherwortplatz
in einem zweiten Assoziativspeicher (12) ist.
8. Steuerwerk nach Anspruch 4, dadurch gekennzeichnet, daß jedes Schlüsselwortregister (47 und 48) ein
Speicherwortplatz in einem Assoziativspeicher ist.
9. Steuerwerk nach einem oder mehreren der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß ein
Hauptspeicher (14) und ein zweiter Assoziativspeicher (12) vorhanden sind, daß jeder der Assoziativspeicher
(10 und 12) zwei Eingabe/Ausgaberegister besitzt, daß der zweite Assoziativspeicher (12) in Bereiche für
Schlüssel. Register und für zweite Operanden aufgeteilt ist, daß der (erste) Assoziativspeicher (10) in Bereiche für Schlüssel, Rechenwerk und Steuerung aufgeteilt ist, daß die Schaltung der Eingabe/Ausgaberegister
jedes Assoziativspeichers die Stellenverschiebung von Information beim Durchgang durch den Speicher
erlaubt, daß in einzelne Felder der Eingabe/Ausgaberegister Information aus zwei Quellen zugeführt werden
kann, wobei diese Information mit Hilfe der logischen ODER-Funktion verknüpft wird, und daß zwischen
bestimmten Feldern der Eingabe/Ausgaberegister beider Assoziativspeicher (10 und 12) direkte Verbindungsleitungen bestehen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB5926571 | 1971-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2261221A1 DE2261221A1 (de) | 1973-06-28 |
DE2261221C2 true DE2261221C2 (de) | 1985-04-04 |
Family
ID=10483419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19722261221 Expired DE2261221C2 (de) | 1971-12-21 | 1972-12-14 | Steuerwerk in einer Datenverarbeitungsanlage |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPS5342219B2 (de) |
DE (1) | DE2261221C2 (de) |
FR (1) | FR2165556A5 (de) |
GB (1) | GB1349950A (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6225295B2 (ja) | 2015-09-16 | 2017-11-01 | Semitec株式会社 | 抵抗器及び温度センサ |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1250659B (de) * | 1964-04-06 | 1967-09-21 | International Business Machines Corporation, Armonk, NY (V St A) | Mikroprogrammgesteuerte Datenverarbeitungsanlage |
GB1218406A (en) * | 1968-07-04 | 1971-01-06 | Ibm | An electronic data processing system |
-
1971
- 1971-12-21 GB GB1349950D patent/GB1349950A/en not_active Expired
-
1972
- 1972-11-10 JP JP11223272A patent/JPS5342219B2/ja not_active Expired
- 1972-12-04 FR FR7244641A patent/FR2165556A5/fr not_active Expired
- 1972-12-14 DE DE19722261221 patent/DE2261221C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2261221A1 (de) | 1973-06-28 |
GB1349950A (en) | 1974-04-10 |
JPS5342219B2 (de) | 1978-11-09 |
JPS4871548A (de) | 1973-09-27 |
FR2165556A5 (de) | 1973-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE2130299B2 (de) | Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage | |
DE1524129A1 (de) | Datenverarbeitungssystem mit gemeinsamem Zugang | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2023354A1 (de) | Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit | |
DE1549480A1 (de) | Datenverarbeitungsanlage | |
DE2718110A1 (de) | Datenverarbeitungseinheit | |
DE1197650B (de) | Parallel-Addierer | |
DE3501903A1 (de) | Im pipelinebetrieb arbeitende datenverarbeitungseinrichtung | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE1956460C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2403039C2 (de) | Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage | |
DE1267886B (de) | Datenbearbeitungsanlage | |
DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor | |
DE2261221C2 (de) | Steuerwerk in einer Datenverarbeitungsanlage | |
DE1549381B2 (de) | Datenverarbeitungsanlage | |
DE2057587A1 (de) | Inhaltsadressierter Speicher | |
DE1549434A1 (de) | Datenverarbeitungsanlage | |
DE2000608C3 (de) | Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage | |
DE2952072A1 (de) | Einrichtung zur verarbeitung binaer codierter dezimalzahlen | |
DE1296427B (de) | Datenbearbeitungssystem | |
DE2150292C2 (de) | Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen | |
DE2022921A1 (de) | Verarbeitungseinheit fuer Buchungsmaschinen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |