DE2150292C2 - Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen - Google Patents

Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen

Info

Publication number
DE2150292C2
DE2150292C2 DE19712150292 DE2150292A DE2150292C2 DE 2150292 C2 DE2150292 C2 DE 2150292C2 DE 19712150292 DE19712150292 DE 19712150292 DE 2150292 A DE2150292 A DE 2150292A DE 2150292 C2 DE2150292 C2 DE 2150292C2
Authority
DE
Germany
Prior art keywords
memory
control
data processing
memories
processing system
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
DE19712150292
Other languages
English (en)
Other versions
DE2150292A1 (de
Inventor
James Winchester Hampshire Llewelyn
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 DE2150292A1 publication Critical patent/DE2150292A1/de
Application granted granted Critical
Publication of DE2150292C2 publication Critical patent/DE2150292C2/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/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Description

Die Erfindung betrifft eine mikroprogrammgesteuerte Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs 1.
In bekannten Datenverarbeitungsanlagen verwendet man ein Mehrfach-Adressierverfahren, bei dem das Instruktionswort mehr als eine einzige Adresse enthält und jede Adresse auf einen eigenen unabhängigen Speicherabschnitt bzw. eine Speicherzelle verweist. Die Mehrfach-Adressiersysteme werden zur Beschleunigung des gesamten Verarbeitungsprozesses benützt.
Nach der deutschen Auslegeschrift 1180171 ist bekannt, daß die Instruktionswörter in einer programmgesteuerten Rechenanlage mit interner Speicherung im allgemeinen in nachfolgenden Positionen im Speicher untergebracht werden, d. h. in nacheinanderfolgenden, aufsteigenden Adressen, wobei jedes Wort in fester Reihenfolge aus dem Speicher herausgelesen und im Funktionsregister untergebracht wird, um die Steuerung der logischen Schaltungen des Rechners zur Ausführung der Datenoperationen zu veranlassen. Indem jede Instruktion reihenfolgemäßig vom Speicher abgelesen wird, wird der Inhalt eines Programmadressenregisters mit einem Inkrement beaufschlagt, um die Adresse der nächsten Instruktion aufzunehmen. Wenn die durch den Operationscode markierte Funktion des Instruktionswortes ausgeführt worden ist, wird das Instruktionswort durch das nachfolgende Instruktionswort wieder im Register untergebracht, wobei dieser Vorgang bis zur Vollendung des Programms vor sich geht. Nach der genannten deutschen Auslegeschrift ist es weiterhin bekannt, Mehrfach-Adressierverfahren in Verbindung
ίο mit bestimmten Befehlsüberlappungsverfahren zu verwenden. Der Rechner besitzt hierzu einen Hauptspeicher mit großem Fassungsvermögen und wahlfreiem Zugriff und einen Steuerspeicher mit verhältnismäßig geringem Fassungsvermögen, dessen Speicherzyklus allerdings nur einen Bruchteil des Speicherzyklus des Hauptspeichers mit größerem Fassungsvermögen aufweist. Zum Beispiel kann der Steuerspeicher einen Speicherzyklus von einem Sechstel der Zeitdauer von dem Speicherzyklus des Hauptspeichers besitzen.
Dadurch können während der Zeitdauer des Anrufs des Hauptspeichers aus dem Steuerspeicher Befehle entnommen werden, sofern sie vorhanden sind. In bekannten Datenverarbeitungsanlagen sind auch Befehlspufferregister vorgesehen, damit Befehle aus dem Speicher vorentnommen werden können. Danach werden, während der Befehlszähler eine Arbeitsfolge zur Identifizierung nachfolgender Befehle ausführt, diese Befehle aus dem Befehlspufferregister anstatt aus dem Speicher entnommen. Es gehört durch das Buch »Planing a Computer System«, insbesondere Abschnitte 11 und 14.3, von W. Buchholz (Verlag Mack of Hill Book Company) zum Stand der Technik, eine erste Erhöhungsschaltung zum Zählen der Befehle zu verwenden. Der Befehlszählerstand trägt dann zur Auswahl von Befehlen aus Befehlspufferregistern für die Weiterleitung zu einem Befehlsregister oder anderen Befehlauswertregistern bei. Außerdem ist es bekannt, eine zweite Erhöhungsschaltung vorzusehen, die dazu dient, einen Kompensationsfaktor für das Einstellen des Befehls-Zählregisters zu liefern; dieser Kompensationsfaktor wird so gewählt, daß aus der Einstellung des Befehlszählers eine Adresse erzeugt wird, die in der Speichereinheit den nächsten Befehl aussucht, der vorentnommen und zu den Befehlspufferregistern übertragen werden muß. Obwohl also hier ein Weg gezeigt ist, wie während einer Befehlsausführung bereits der nächste Befehl entnommen werden kann, hat diese Lösung den großen Nachteil, daß mindestens zwei Erhöhungsschaltungen erforderlich sind, die mit dem Befehlszähler zusammenarbeiten müssen. Besonders treten dann Schwierigkeiten auf, wenn der Befehlszähler z. B. wegen einer Unterbrechung außer Betrieb gesetzt werden muß. Außerdem muß bei dieser Anordnung der Fehlerstand zu verschiedenen Zeitpunkten zurückgeschaltet werden können, woraus sich eine zusätzliche Komplizierung der Steuerung und der Erhöhungsschaltungen ergibt.
Der Erfindung liegt deshalb die Aufgabe zugrunde, ein mikroprogrammgesteuertes Datenverarbeitungssystern zu schaffen, das eine überlappte_Befehlsentnahme, Adressenbildung und Befehlsa^usftfhrui^ermoglichfünd daßei eine klare Struktur aufweist, die auch bei Unterbrechungsoperationen und schwierigen Operationen .keine komplizierten Wiedergewinnungsopera-tio-
nen und Daten- bzw. Befehlssicherungsoperationen erfordert.
"Diese Aufgabe wird mit einer mikroprogrammierten Datenverarbeitung der vorausgesetzten Gattung gelöst,
die nach der Erfindung gemäß dem Kennzeichen des Anspruchs 1 ausgesendet ist.
Weiterbildungen der Erfindung sind in den Ansprüchen 2 und 3 gekennzeichnet. Dadurch daß jeder Befehlsphase ein kompletter und getrennter Steuerspeicher zugeordnet ist, ergeben sich schaltungsmäßig wesentliche Vereinfachungen dadurch, daß in monolithischer Technik Speicher gleicher Struktur verwendet werden können und Zwischenschaltungen mit komplizierten Verriegelungen entfallen können.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben. Es zeigt
Fig. 1 ein Blockdiagramm eine erfindungsgemäßen Datenverarbeitungsanlage,
F i g. 2 das Format typischer Instruktionen für das IBM-System/360 und
F i g. 3 und 4 Tabellen zur Erläuterung der Arbeitsweise des in F i g. 1 gezeigten Systems.
Die als Rechteck in Fig.l dargestellten und durch zwei Linien eingeschlossenen Elemente des Systems bestehen aus Assoziativspeichern.
Das in F i g. 1 gezeigte System umfaßt einen Datenspeicher 10, zwei miteinander verbundene Arbeitsspeicher 12 und 14, einen Zustandsspeicher 16 und die drei Steuerspeicher 18, 20 und 22, die alle als Assoziativspeicher ausgeführt sind. Außerdem ist ein konventionell adressierter Hauptspeicher 24 vorgesehen, der nach jeweils drei Zyklen eines Assoziativspeichers adressiert wird. Ale Assoziativspeicher werden synchron in einem Zyklus betrieben, der eine Datenübertragungsphase enthält, in welcher Daten zwischen den Speichern übertragen werden, eine Suchphase, in welcher die Speicherstellen bezeichnet werden, zu denen der Zugriff erfolgen soll, und eine Lese-/Schreibphase, in welcher der Zugriff zu den Speicherstellen erfolgt.
Durch jeweils zwei dazugehörige zur Ein-/Ausgabe verwendbare Register können die Assoziativspeicher nach Art der Arbeitsspeicher 12 und 14 in F i g. Γ miteinander verbunden werden. Die vom Hauptspeicher 24 oder von der Eingangsleitung kommenden Operanden werden in das Eingabe-/Ausgabe-Register 26 des Arbeitsspeichers 12 gesetzt und während der Suchphase eines Speicherzyklus als Suchargumente verwendet.
Da in dem Arbeitsspeicher 12 Funktionstabellen gespeichert sind, ergeben sich bei positiver Suche Ausgangsdaten, die in das Eingabe-/Ausgabe-(E/A)-Register 28 des Speichers 12 gesetzt werden. Diese Ausgangsdaten sind aus dieser Suchoperation resultierende Funktionen.
Die resultierenden Funktionen werden in das andere Eingabe-/Ausgabe-Register 28 des Arbeitsspeichers 12 während der Lese-/Schreibphase des Zyklus gesetzt und auf das Register 30 des Arbeitspeichers 14 während der Datenübertragungsphase des nächsten Zyklus übertragen, um Suchargumente für Tabellensuchoperationen auf Tabellen im Arbeitsspeicher 14 zu liefern, während in derselben Datenübertragungsphase neue Operanden in das Register 26 gesetzt werden. Am Ende des zweiten Speicherzyklus befindet sich das Endergebnis der abgelaufenen Operation mit den ersten Operanden im Register 32 des Speichers 14 und ein Zwischenresultat der Operation mit den zweiten Operanden im Register 28. Eine der nützlichsten Anwendungen der Verbindung ist die Addition von zwei binären Zahlen. Der Arbeitsspeicher 12 ist so angeordnet, daß er eine Teilsumme und eine Übertragsfunktion während des ersten Speicherzyklus entwickelt, und aus diesen Zwischenergebnissen entwickelt der Arbeitsspeicher 14 dann die Endsumme im zweiten Zyklus. Eine Verbindung gemäß der Darstellung reduziert die Anzahl der zur Ausführung einer Zweizyklusoperation mit η nacheinander gegebenen Operanden erforderlichen Zyklen von 2/7 auf n+\.
Obwohl die Assoziativspeicher 10 bis 22 identisch
ίο konstruiert sind, funktionieren sie unterschiedlich. Sie werden einmal durch die Funktionstabellen voneinander unterschieden, welche sie enthalten, und zum anderen durch die Verbindungen zwischen den entsprechenden Speichern. Die Arbeitsspeicher 12 und 14 entsprechen in ihrer Funktion einer konventionellen Rechen- und Verknüpfungseinheit (ALU) und enthalten Additions-, Schiebe- und andere Verknüpfungstabellen. Der Datenspeicher 10 umfaßt im wesentlichen Operandenregister, die sich jeweils durch verschiedene Kennzeichen unterscheiden, die einzeln abgesucht werden können.
Der Zustandsspeicher 16 decodiert Instruktionsoperationscodes und überträgt Steuersignale vom Register 36 an alle Teile des Systems, um die Ordnung innerhalb des Systems aufrecht zu erhalten. Jedes Teil der Maschine Docket UK 969 002 muß zu jedem Zeitpunkt genau über den Status des Gesamt-Systems Bescheid wissen. Außerdem hat der Zustandsspeicher 16 die Ausgaben der Arbeitsspeicher 12 und 14 und des Datenspeichers 10 zu überwachen und Bedingungen festzustellen, die eine Verzweigung in das gesteuerte Mikroprogramm erfordern. Zu den zahlreichen Operationen im System/360 gehört ein Bedingungscode, der zwei Bits umfaßt, welche am Ende einer Operation gesetzt werden, um Bedingungen anzuzeigen, die durch die Operation entstanden sind. Wenn z. B. am Ende einer Addition die Summe negativ ist, muß die binäre Darstellung der Summe evtl. umgekehrt werden. In einem solchen Fall ermittelt der Zustandsspeicher 16 den Bedingungscode und gibt Signale an alle Steuerspeicher CS1 bis CS 3 zum Auswählen der entsprechenden Mikroprogrammroutine. Der Zustandsspeicher 16 ist außerdem für den Empfang von Unterbrechungssignalen von Geräten außerhalb des Systems, wie z. B.
E/A-Kanälen (nicht dargestellt) angeschlossen, die Daten von den E/A-Einheiten zum Hauptspeicher 24 übertragen und ein Signal abgeben, wenn ein Hauptspeicherzugriff erforderlich ist. Diese externe Verbindung ist in F i g. 1 durch die Leitung 40 dargestellt, die die benötigten Signalleitungen verkörpert, die an das Eingabe-/Ausgabe-Register 38 des Speichers 16 angeschlossen sind. Ein Hauptspeicher-Datenregister 42, Register 26 und 38 der Speicher 12 und 16 und ein Eingabe-/Ausgabe-Register 44 des Datenspeichers 10 sind alle miteinander so verbunden, daß Daten zwischen· allen Registern übertragen werden können. Die Register 32 und 36 der Speicher 14 und 16 und ein Eingabe-/Ausgabe-Register 46 des Datenspeichers 10 sind ebenfalls zur Datenübertragung miteinander verbunden. Dieselbe Verbindung führt auch zur Adreßschaltung 34 des Hauptspeichers 24.
Das in F i g. 1 gezeigte System verfügt über drei Steuerspeicher 18, 20 und 22. Als Faustregel für die Anzahl der benötigten Steuerspeicher für einen höchsten Wirkungsgrad sei erwähnt, daß für jeden separaten Funktionsteil des Systems ein Steuerspeicher vorzusehen ist, obwohl eine genaue Regel natürlich nicht aufgestellt werden kann, da zu viele Punkte von
der tatsächlichen Konstruktion des Systems und seinem Operationscode abhängen. Somit hat das in F i g. 1 gezeigte System drei Steuerspeicher entsprechend dem funktionell unterschiedlichen Datenspeicher 10, den Arbeitsspeichern 12 und 14 und dem Zustandsspeicher 16. Grundsätzlich kann die Arbeitsweise eines Assoziativspeichers dadurch bestimmt werden, daß man ein Suchargument angibt, welches das Speicherfeld enthält, auf dem eine Suche auszuführen ist, und indem man weiterhin angibt, ob die duxh eine Assoziativsuche nach Datenübereinstimmung des Sucharguments gewählten Wortstellen zum Lesen oc'er Schreiben zu adressieren sind. Im Ausführungsbeispiel der F i g. 1 muß außerdem angegeben werden, welches Eingabe-/Ausgabe-Register eines Speichers in jeder der drei Phasen-Datenübertragung, Suche und Lesen/Schreiben eines Speicherzyklus zu benutzen ist. Das eine Operation definierende Suchargument besteht normalerweise aus einem veränderlichen und einem unveränderlichen Teil. Für eine Rechen- oder Verknüpfungsfunktion gibt der unveränderliche Teil die Tabelle (n) an, die bei der Tabellensuchoperation zu benutzen ist, durch welche die Funktion ausgeführt wird. Der veränderliche Teil des Suchargumentes wird durch die Operanden geliefert, von denen die Funktion angefordert wird. Zur Vereinfachung der folgenden Erklärung wird angenommen, daß das System der Fig. 1 auf diese Weise gesteuert wird, d. h. das auf einen Assoziativspeicher gesendete Suchargument wird decodiert, um die Speicheroperation für den Zyklus zu definieren, in welchem es zu benutzen ist. In der Praxis würden separate Operationssteuerdaten auf einen Steuerdecodierer gleichzeitig mit der Übertragung des Sucharguments gesendet. Das Suchargument wird auf Suchfelder der beiden Eingabe-/Ausgabe-Register eines Speichers übertragen, da bis zur Decodierung des Sucharguments nicht bekannt ist, welches Register zu benutzen ist.
Jeder Steuerspeicher 18, 20 und 22 hat vier Suchfelder, je eines für die vier Assoziativspeicher 10 bis 16. Der Zustandsspeicher 16 kann an jeden Steuerspeicher über das Eingabe-/Ausgabe-Register 36 Informationen übertragen, die das Mikroprogramm modifizieren, welches gegenwärtig Steuerinformationen für das System erzeugt. Anschließend wird die Verwendungsmöglichkeit der in F i g. 1 gezeigten Anordnung von 3 Steuerspeichern zur überlappten Ausführung eines Stromes von RR- und RX- Instruktionen beschrieben. Das Format jeder Instruktionen oder auch Befehle ist in F i g. 2 gezeigt. Bei einer ÄX-Instruktion ist eine durch das OP-FeId definierte Operation mit zwei Operanden auszuführen. Der erste Operand wird in einem durch den Inhalt des R1-Feldes definierten Register festgehalten. Im System der F i g. 1 befinden sich die Register im Datenspeicher 10. Die Felder X2 und B 2 geben ebenfalls Register an, während das Feld D2 eine »Distanz« genannte Zahl enthält. Der zweite Operand wird auf einer Adresse im Hauptspeicher 24 festgehalten, auf der sogenannten effektiven Adresse, die man findet, wenn man zu dem durch die Felder X 2 und B 2 angegebenen Inhalt des Registers die »Distanz« addiert. In dem zu beschreibenden Beispiel wird angenommen, daß der Inhalt des Feldes X 2 Null ist und der Operationscode eine Addition fordert. Obwohl dieser Fall eine beträchtliche Vereinfachung darstellt, ist er für die Komplexität einer durchschnittlichen RX-Instruktion repräsentativ.
Eine ÄÄ-Instruktion (F i g. 2) ist im Format einfacher.
Das OP-FeId definiert eine Operation, die mit den zwei im Register gehaltenen bzw. durch die Felder R 1 und R 2 angegebenen Operanden durchzuführen ist. In dem zu beschreibenden Beispiel wird angenommen, daß der OP-Code eine Addition fordert.
Zur Ausführung eines Stromes von RR- und ÄX-Instruktionen müssen fünf verschiedene Vorgänge ausgeführt werden, und zwar:
ίο 1. Instruktionswort vom Hauptspeicher abrufen,
2. Effektive Adresse bilden,
3. Operand vom Hauptspeicher abrufen,
4. i?/Mnstruktion ausführen und
5. ÄX-Instruktion ausführen.
Diese Vorgänge oder Operationen können in den in F i g. 3 gezeigten Kombinationen gleichzeitig ausgeführt werden. Die Operationen 2, 3 und 5 können in beliebiger Kombination nicht gleichzeitig ausgeführt werden, da die Arbeitsspeicher I und II nur für eine Operation zur Verfügung stehen. Wenn die Instruktionsüberlappung durch nur einen Steuerspeicher gesteuert würde, müßte der Datenspeicher 10 verschiedene Mikroprogramm-Unterroutinen enthalten, und zwar jeweils eine andere Routine für eine Zeile der F i g. 3. Dadurch würde in der Praxis zuviel Speicherplatz beansprucht und es könnten Schwierigkeiten bei der Adressierung der Unterroutinen auftreten. Bei der in F i g. 1 gezeigten Anordnung werden die 5 Vorgänge auf die 3 Steuerspeicher verteilt und einzeln oder in Kombination, je nach Bedarf, aufgerufen.
Fig.4 zeigt die Verteilung von Steuerung und Operationen unter die Speicher des in F i g. 1 gezeigten Systems bei Abarbeitung einer Folge von ÄX-Operationen. Der Hauptspeicher 24 hat eine dreimal so lange Zykluszeit wie die übrigen Speicher, und die Speicher arbeiten mit Daten auf Wortlänge. Während der Zyklen 1 bis 3 steuert der erste Steuerspeicher 18 den Abruf der ersten Instruktion. Eine laufende Instruktionsadresse wird im Zustandsspeicher 16 festgehalten, und während die Instruktion abgerufen wird, wird diese Instruktionsadresse erhöht, beispielsweise durch eine Tabelle im Zustandsspeicher 16, unabhängig von den Arbeitsspeichern 12 und 14. Mindestens der Operationscode der Instruktion wird zur Decodierung in den Zustandsspeicher 16 geleitet. Bevor der Zyklus 4 beginnt, gibt der erste Steuerspeicher 18 an den zweiten Steuerspeicher 20 ein Signal zur Abgabe der Mikroroutine, die die Bildung der effektiven Adresse ermöglicht. Dazu muß man den Inhalt des durch das Feld B 2 vom Datenspeicher 10 angegebenen Registers erhalten, dessen Adresse in das E/A-Register 44 gesetzt wurde, die »Distanz« im E/A-Register 26 in Vorbereitung ihrer Addition zum Registerinhalt ausrichten und die Addition in den Speichern 12 und 14 durchzuführen. Dazu sind drei Zyklen erforderlich, und in dieser Zeit steuert der erste Steuerspeicher 18 den Abruf der nächsten Instruktion. Im 7. Zyklus steht die Hauptspeicherädresse des zweiten Operanden im Register 32 zur Verfügung, und der zweite Steuerspeicher 20 steuert den Hauptspeicher 24, zum Abruf des Operanden. In der Zwischenzeit wiederholt der zweite Steuerspeicher 20 die Unterroutine zur Erzielung der effektiven Adresse, diesesmal mit Daten aus der zweiten Instruktion. Der zweite Steuerspeicher 20 kann beide Unterroutinen ausführen, da verschiedene Speicher in die entsprechenden Routinen verwickelt sind. Beim Zyklus 9 steuert der dritte Steuerspeicher 22 das Setzen der Daten in das
durch die erste Instruktion im Register 26 angegebene Registerfeld R 1, und wenn der zweite Operand im Register 26 am Ende des Zyklus 9 zur Verfügung steht, beginnt die Unterroutine die Addition der beiden Operanden. Am Ende des Zyklus 12 steht das Ergebnis zur Verfügung und wird während des Zyklus 13 unter Steuerung des dritten Steuerspeichers 22 in das Register R1 gespeichert. Während der Zyklen 11 bis 13 ruft der zweite Steuerspeicher 20 außerdem den durch die zweite Instruktion definierten zweiten Operanden ab. Am Ende des Zyklus 13 steht dieser Operand im Register 26 zur Verfügung, der Inhalt des Registers R 1, der erste Operand, steht jedoch noch nicht zur Verfügung. Während des Zyklus 14 hält der dritte Steuerspeicher 2 den zweiten Operanden im Register 26 fest, während der erste Operand auf das Register übertragen wird (Lesen R 1). Anschließend steuert der dritte Steuerspeicher 22 die Addition der beiden Operanden. Während der Zyklen 14 bis 16 wird die dritte Instruktion abgerufen durch den ersten Steuerspeicher 18 und während des Zyklus 17 erhält der zweite Steuerspeicher 20 den Inhalt des durch die 3. Instruktion angegebenen Registerfeldes B 2 oder R 2. Da der Datenspeicher 10 nicht für die Ergebnisse der durch die zweite zu speichernde Instruktion angeforderten Operation frei ist, hält der dritte Steuerspeicher 22 das Ergebnis im Register 32 einen Zyklus lang fest, bevor es in das durch die zweite Instruktion angegebene Register des Datenspeichers 10 gespeichert wird.
Der beschriebene Datenstrom bestand aus RX-Instruktionen, ÄÄ-Instruktionen erfordern jedoch keine zusätzlichen Unterroutinen.
Für eine RR-Instruktion steuert der zweite Steuerspeicher 20 das Auslesen aus R 2 des Datenspeichers 10, der dritte Steuerspeicher 22 hält den Operanden im
ίο Register 26 des Arbeitsspeichers 12 fest, während der zweite Operand von R1 geholt wird, und steuert anschließend die verknüpfte Addition und die Speicherung des Ergebnisses in R1.
Die Veränderungen der Mikroprogramme werden vom Zustandsspeicher 16 und vom Steuerspeicher 18 gesteuert. Entsprechend seiner Anordnung hindert der Zustandsspeicher 16 den Steuerspeicher 18 am Abruf einer dritten Instruktion, bevor die Operanden der ersten beiden vom Hauptspeicher 24 abgerufen sind. Da die in Fig.4 gezeigte Tabelle nur von der Form der abgerufenen Instruktionen abhängt und diese durch den Zustandsspeicher 16 bekannt sind, kann letzterer die Wahl des Mikroprogramms im dritten Steuerspeicher 22 oder den ersten Steuerspeicher 18 über die Leitung 48 so steuern, daß Adreßänderungen abgegeben werden, die zu Mikroprogrammverzweigungen führen.
Hierzu 2 Blatt Zeichnungen
230222/069

Claims (3)

Patentansprüche:
1. Mikroprogrammgesteuerte Datenverarbeitungsanlage mit einem die Daten und Befehle speichernden Hauptspeicher, mit überlagerter Entnahme und Ausführung der Befehle unter Steuerung eines Steuerspeichers, mit Befehlspufferregistern, einem Befehlszähler und Zustandsüberwachungsschaltungen, dadurch gekennzeichnet, daß der Steuerspeicher aus mehreren selbständigen Teilen (18,20 und 22) besteht, deren Anzahl von der Anahl der anderen in der Datenverarbeitungsanlage vorhandenen unabhängigen Speicher (10,12,14,16) mit Ausnahme des Hauptspeichers abhängt, daß der eine Steuerspeicher (18) den Befehls- bzw. Instruktionsabruf, der zweite Steuerspeicher (20) die Bildung der effektiven Adressen und der dritte Steuerspeicher (22) die Ausführung der Befehle bzw. Instruktionen steuert und daß zur Zustandsüberwachung und -speicherung ein Zustandsspeicher (16) angeordnet ist, der mit allen angeordneten Speichern (10,12,14,16,18, 20, 22) zur Aktivierung der Steuerspeicher (18,20,22) und zur Zustandsüberwachung und -mitteilung auch der übrigen unabhängigen Speicher (10, 12, 14, 16) verbunden ist.
2. Mikroprogrammgesteuertes Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die Steuerspeicher (18, 20 und 22) auf zwei getrennte Arbeitsspeicher (12,14), einen Datenspeicher (10) und einen Statusspeicher (16) einwirken und daß alle drei Steuerspeicher (18,20 und 22) über eine Adressierungsschaltung (34) auf einen gemeinsamen Arbeitsspeicher (24) einwirken.
3. Mikroprogrammierbares Datenverarbeitungssystem nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß einer oder mehrere der genannten Steuerspeicher (18, 20 und 22) als Assoziativspeicher ausgeführt sind und daß die Assoziativspeicher Funktions-Tabellen enthalten, die als Mikroprogramme zur Steuerung der Datenverarbeitungsanlage dienen.
DE19712150292 1970-10-10 1971-10-08 Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen Expired DE2150292C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB4824170 1970-10-10

Publications (2)

Publication Number Publication Date
DE2150292A1 DE2150292A1 (de) 1972-04-13
DE2150292C2 true DE2150292C2 (de) 1982-06-03

Family

ID=10447878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712150292 Expired DE2150292C2 (de) 1970-10-10 1971-10-08 Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen

Country Status (5)

Country Link
JP (1) JPS5240544B1 (de)
CA (1) CA948321A (de)
DE (1) DE2150292C2 (de)
FR (1) FR2109746A5 (de)
GB (1) GB1257760A (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3760369A (en) * 1972-06-02 1973-09-18 Ibm Distributed microprogram control in an information handling system
US4399516A (en) * 1981-02-10 1983-08-16 Bell Telephone Laboratories, Incorporated Stored-program control machine
US4430708A (en) * 1981-05-22 1984-02-07 Burroughs Corporation Digital computer for executing instructions in three time-multiplexed portions

Also Published As

Publication number Publication date
CA948321A (en) 1974-05-28
JPS5240544B1 (de) 1977-10-13
GB1257760A (de) 1971-12-22
FR2109746A5 (de) 1972-05-26
DE2150292A1 (de) 1972-04-13

Similar Documents

Publication Publication Date Title
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE3424962C2 (de)
DE3338345C2 (de)
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
EP0010185B1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2735814A1 (de) Datenverarbeitungseinrichtung
DE2130299B2 (de) Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage
DE2712224A1 (de) Datenverarbeitungsanlage
DE2714805A1 (de) Datenverarbeitungssystem
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2339636A1 (de) Programmsteuereinrichtung
DE4334294C1 (de) Prozessor für Zeichenketten variabler Länge
DE2332971C2 (de) Mikroprogrammsteuereinrichtung
DE2854782C2 (de) Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher
DE1935944B2 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE1956460C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2245284A1 (de) Datenverarbeitungsanlage
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE1296429B (de) Datenbearbeitungsanlage
DE1184122B (de) Addiervorrichtung
DE2727188A1 (de) Anordnung zum adressieren eines speichers

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee