DE2261221C2 - Steuerwerk in einer Datenverarbeitungsanlage - Google Patents

Steuerwerk in einer Datenverarbeitungsanlage

Info

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
Application number
DE19722261221
Other languages
English (en)
Other versions
DE2261221A1 (de
Inventor
Peter Lycett Bishops Sutton Hampshire Gardner
John Wyn Winchester Hampshire Jones
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 DE2261221A1 publication Critical patent/DE2261221A1/de
Application granted granted Critical
Publication of DE2261221C2 publication Critical patent/DE2261221C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction 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.
Vor der Beschreibung der Felder der Eingabe/Ausgaberegister und deren Verbindungen soll die Arbeitsweise
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.
Eine Instruktion wird als Sequenz von Mikroroutinen ausgeführt Jede Mikroroutine besteht aus einer
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).
Die angegebenen Längen der Steuerfelder gelten nur für das Beispiel und wurden speziell für die vorliegende Konstruktion des Assoziativspeichers gewählt. Zu den D- und F-Speichern gehört ein gemeinsames Maskenbit. Dies ist möglich, da deren Arbeitsweise stark ineinander verzahnt ist. Derselbe Grund erlaubt, daß der D- und
der F-Speicher Jn einem aus 4-Bit bestehenden Schlüssel zwei Bits gemeinsam haben. Der Schlüssel für den
F-Speicher kommt aus dem Schlüsseifeld 40; zwei Bits dieses Schlüssels werden für den Schlüssel des D-Spei-
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.
Mikroroutine 1. Lesen oder Schreiben im Hauptspeicher
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:
D-Speicher: Suche und Lesen nach D 2. Der Inhalt des Instruktionszählerregisters oder des
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
Hauptspeicher und F-Speicher: keine Aktion
2. Zyklus:
D-Speicher: Suche und Lesen nach D 2, wobei die vier Niedrigstellenbits maskiert sind F-Speicher: Suche und Lesen nach F2 Hauptspeicher: Der Zugriff ist eingeleitet
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:
D-Speicher: Suche und Schreiben aus D 2 Hauptspeicher: Lesen und Schreiben F-Speicher: Keine Aktion
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:
D-Speicher: Suche und Schreiben aus D1
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
Zyklus D-Speicher F-Speicher
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
Lesevorgang nach D 2 eine Schreiboperation aus D1, so werden dadurch die Daten um vier Bitpositionen nach
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
Resultat in dem Zyklus im Feld 59 erscheint in dem es in den D-Speicher geschrieben werden muß. Der Schlüssel bestimmt die genaue arithmetische oder logische Operation bzw. im Fall der Mikroroutine 1. ob
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
Instruktionen können nun leicnt als Sequenz dieser beiden Mikroroutinen ausgeführt werden, so z. B.: Instruktion Mikroroutinenfolge
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.
Hierzu 2 Blatt Zeichnungen 30

Claims (9)

Patentansprüche: ;
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.
DE19722261221 1971-12-21 1972-12-14 Steuerwerk in einer Datenverarbeitungsanlage Expired DE2261221C2 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6225295B2 (ja) 2015-09-16 2017-11-01 Semitec株式会社 抵抗器及び温度センサ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
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

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