DE2424931C2 - Mikroprogrammierbare Datenverarbeitungsanlage - Google Patents

Mikroprogrammierbare Datenverarbeitungsanlage

Info

Publication number
DE2424931C2
DE2424931C2 DE2424931A DE2424931A DE2424931C2 DE 2424931 C2 DE2424931 C2 DE 2424931C2 DE 2424931 A DE2424931 A DE 2424931A DE 2424931 A DE2424931 A DE 2424931A DE 2424931 C2 DE2424931 C2 DE 2424931C2
Authority
DE
Germany
Prior art keywords
microinstruction
memory
control
register
micro
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
DE2424931A
Other languages
English (en)
Other versions
DE2424931A1 (de
Inventor
Alisdair Cullen Bathgate West Lothian Ferguson
Alastair George Linlithgow West Lothian MacPerson
John Currie Edinburgh Schottland McGregor
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.)
Unisys Corp
Original Assignee
Burroughs 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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2424931A1 publication Critical patent/DE2424931A1/de
Application granted granted Critical
Publication of DE2424931C2 publication Critical patent/DE2424931C2/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
    • 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/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems

Description

Die Erfindung bezieht sich auf eine mikroprogrammierbare Datenverarbeitungsanlage mit einer Zentraleinheit die eine Funktionseinheit mehrere an die Funktionseinheit angeschlossene Register und einen Speicher aufweist der einen einer höheren Programmierspreche zugeordneten Anweisungsspeicherabschnitt
Μ sowie einen Datenspeicherabschnitt und einen Mikrobefehlsspeicherabschnitt enthält der von einem Mikrospeicher-Adreßregister oder auf eine Anweisung mit höherer Programmiersprache adressiert wird und einen entsprechenden Mikrobefehl oder eine Mikrobefehlsroutine abgibt und mit einem einen Steuerspeicher adressierenden Speicherregister verbunden ist.
Eine mikroprogrammierbare Datenverarbeitungsanlage der genannten Art ist aus der DE-OS 20 23 354 bekannt, die wenigstens einen Prozessor mit einem Leitwerk und einer arithmetisch-logischen Einheit sowie einen Hauptspeicher zur Speicherung von Makrobefehlen bzw. Befehlen einer höheren Programmiersprache aufweist. Die arithmetisch-logische Einheit enthält eine Verknüpfungseinheit und mehrere Register, während das Leitwerk eine Steuereinrichtung aufweist, die einen Mikrobefehlsspeicher enthält, der unter einer Vielzahl von Adressen ansteuerbar ist und abhängig von der jeweiligen Adresse verschiedene Mikrobefehlstypen bzw. unterschiedliche Mikrobefehle abgibt. Mit dem Mikrobefehlsspeicher ist ein Mikrobefehlsdekodierer zur Dekodierung des Mikrobefehlstyps und wahlweise zur Ansteuerung einer Adresse eines Steuerspeichers verbunden, der bestimmte Steuerbefehle zur Steuerung verschiedener Betriebsarten der Datenverarbeitungsanlage enthält und Steuersignale unmittelbar an die arithmetisch-logische Einheit und verschiedene Register der Datenverarbeitungsanlage abgibt. Der Mikrobefehlsspeicher wird von einem Mikrospeicher-Adreßregister adressiert und nimmt über einen Mikrobefehlsdekoder unterschiedliche Mikrobefehlstypen auf, die einerseits Folgen von arithmetisch-logischen Operationen und andererseits Datenübertragungen mit einem Ein/Ausgabe-Gerät vorschreiben. Bei der bekannten mikroprogrammierbaren Datenverarbeitungsanlage ist somit neben der Makrobefehlsebene, d. h. der einer höheren Programmiersprache zugeordneten Ebene, eine Mikroprogrammebene sowie eine zusätzliche Steuerebene vorgesehen. Dabei erzeugt die durch Maschinenbefehl angestoßene Mikroprogrammebene Adressen-
bo und Steuerinformationen für die Steuerebene. Die Ansteuerung der Datenpfadschaltungen und Verknüpfungsschaltungen erfolgt unmittelbar in der Steuerebene, wobei die Ausführung der Befehle der Stcuerebene zeitlich gestaffelt oder überlappt, je nach Art des Mikrobefehls, erfolgen kann.
Aus der Literaturstelle »US Tagungsprotokolle der Spring Joint Computer Conference 1972«, Seiten 705 bis 723 ist ebenfalls eine mikroprogrammierbare Datenver-
arbeitungsanlage mit einer Zentraleinheit beicannt die eine logische Einheit sowie eine Steuereinheit und einen Hauptspeicher aufweist Zusätzlich ist ein von einer Speichersteuerreinheit ansteuerbarer Mikroprogrammspeicher vorgesehen, der sowohl einen Nano- oder Steuerspeicher adressiert als auch Mikrobefehle an die Steuereinheit abgibt. Zusätzlich empfängt die Steuereinheit die Befehle von Steuerbefehlsspeicher sowie externe Zustandsanzeiger!. Auch bei dieser bekannten Datenverarbeitungsanlage ist eine zeitliche Staffelung oder Überiappung von Befehlsabruf und Ausführungsphase der Befehlsströme für die Mikro- und Steuerbefehle möglich.
Bei diesen bekannten mikroprogrammierbaren Datenverarbeitungsanlagen ist jedoch zur Anpassung der Datenverarbeitungsanlage an verschiedene höhere Programmiersprachen bzw. zur Ausführung von Befehlen verschiedener höherer Programmiersprachen ein erheblicher sc'naltungstechnischer Aufwand erforderlich, da der Mikroprogrammspeicher sowie die zugeordneten Dekodier- und Steuereinheiten sowie Daten- und Steuerpfade zur Aufnahme, Verarbeitung und Weiterleitung der verschiedenen Mikro- und Steuerbefehle ausgelegt werden müssen. Konzipiert man die mikroprogrammierbare Datenverarbeitungsanlage für einen sequentiellen Abruf, Verarbeitung und Weiterleitung der einzelnen Mikro- und Steuerbefehle, so erhöhen sich selbst bei überlappter Ausführung von Mikro- und Steuerbefehlen die Zykluszeiten, so daß eine Verringerung des gerätetechnischen Aufwandes nur durch eif.e geringere Schnelligkeit der mikroprogrammierbaren Datenverarbeitungsanlage erreicht werden kann. Darüber hinaus ist es bei der bekannten mikroprogrammierbaren Datenverarbeitungsanlage erforderlich, den Steuerbefehlsspeicher nach der Anzahl der benötigten Steuerbefehle für die unterschiedlichen Befehlsaiten und der Anzahl der zu teuernden Anlagenteile auszulegen. Dies macht bei der bekannten mikroprogrammierbaren Datenverarbeitungsanlage beispielsweise einen Steuerbefehlsspeicher zur Speicherung von 54 Steuerbefehlsworten erforderlich.
Aufgabe der vorliegenden Erfindung ist es, eine mikroprogrammierbare Datenverarbeitungsanlage der eingangs genannten Art zu schaffen, die leicht an unterschiedliche, höhere Programmiersprachen anpaßbar ist, die einen geringen Umfang des Steuerbefehlsspeichers benötigt und bei geringer Übertragungsbreite der Mikrobefehle eine geringe Anzahl Taktzeiten zur Ausführung der einzelnen Mikrobefehle erfordert.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß die Mikrobefehle aus einer oder mehreren Silben bestimmter Bitzahl bestehen, die silbenweise nacheinander vom Mikrobefehlsspeicherabschnitt des Speichers zum Speicherregister übertragen werden, wobei die erste Mikrobefehlssilbe einen Steueroperator im Steuerspeicher adressiert und nachfolgende Mikrobefehlssilben zusätzliche Daten oder Befehlsinformationen bereitstellen und die über einen Steuerpuffer vom Steuerspeicher abgegebenen Steueroperationen die über Sammelleitungen mit der Funktionseinheit oder dem t>o Speicherregister zu verbindenden Register ansteuern und die von der Funktionseinheit auszuführenden arithmetischen und logischen Operationen angeben, und daß eine mit dem Speicherregister, dem Steuerpuffer, der Funktionseinheit und dem Adreßregister verbundene b5 Zeitsteuereinrichtung sowohl eine Folge von Mikrobefehlssilben aus dem Mikrobefehlsspeicherabschnitt als auch SteueroDeratoren vom Sieuerouffer abruft, derart.
daß ein von einer Mikrobefehlssilbe bezeichneter Steueroperator gleichzeitig mit der nächsten vom Adreßregister adressierten Mikrobefehksilbe aus dem Mikrobefehlsspeicherabschnitt des Speichers aufgerufen wird.
Die erfindungsgemäße Lösung gestattet es, die mikroprogrammierbare Datenverarbeitungsanlage leicht an unterschiedliche, höhere Programmiersprachen anzupassen, wobei nur ein geringer Umfang des Steuerbefehlsspeichers und bei geringer Übertragungsbreite der Mikrobefehle eine geringe Anzahl Taktzeuen zur Ausführung der einzelnen Mikrobefehle erforderlich ist.
Die mikroprogrammierbare Datenverarbeitungsanlage wird somit von Mikrobefehlen gesteuert, die aus einer unterschiedlichen, von der Funktion der Mikrobefehle abhängigen Silbenanzahl bestehen. Die verschiedenen Arten der Mikrobefehle sind im Mikrobefehlsspeicher gespeichert, aus dem sie in Abhängigkeit vom jeweiligen Makrobefehl bzw. Befehl einer höheren Programmiersprache nacheinander abgerufen werden, so daß durch entsprechendes Auswählen der voneinander verschiedenen Silben aus dem Mikrobefehlsspeicher eine Vielzahl unterschiedlich kombinierbarer Mikrobefehle erzeugt werden kann. Eine weitere, von diesen Silben verschiedene Mikrobefehlssilbe ist dazu vorgesehen, jede Kombination aus der auszuführenden Funktion und den mit besonderen Sammelleitungen in der Datenverarbeitungsanlage zu benutzenden Quellen- und Bestimmungsregistern zu spezifizieren. Zur Verringerung der Taktzyklen zur Ausführung der verschiedenen Mikrobefehle werden die Vorgänge des Mikrobefehlsabrufs und der Ausführung der Mikrobefehle überlappt und eine Mikrobefehlsvorausschau unternommen. Dadurch ergeben sich zwei Befehlsströme, die weitgehend kontinuierlich und parallel zueinander sind. Der eine Befehlsstrom betrifft dabei die aus dem Mikrobefehlsspeicher abgerufenen Mikrobefehle und der andere Befehlsstrom die aus dem Sieuerspeicher abgerufenen Steuerbefehle. Durch diese parallele Ausführung der einzelnen Mikrobefehlsketten und Steuerbefehle wird nicht nur die gesamte Bearbeitungszeit verringert, sondern es werden auch die Befehlsströme innerhalb der Datenverarbeitungsanlage vom und zum Hauptspeicher bzw. von und zur Eingabe/Ausgabe-Schnittstelle verdichtet.
Anhand eines in der Zeichnung dargestellten Ausführungsbeispieles soll der der Erfindung zugrundeliegende Gedanke näher erläutert werden: Es zeigt
Fig. 1 ein Blockschaltbild der mikroprogrammierbaren Datenverarbeitungsanlage;
F i g. 2 ein detailliertes Blockschaltbild der Zentraleinheit der mikroprogrammierbaren Datenverarbeitungsanlage;
F i g. 3 eine schematische Darstellung eines Makrobelehls bzw. Befehls einer höheren Programmiersprache;
Fig. 4 eine schematische Darstellung eines Datendeskriptorformats;
Fig.5A bis 5C schematische Darstellungen des Formats verschiedener Mikrobefehlsarten;
F i g. 6 eine schematische Darstellung des Formats eines Steuerbefehls;
Fig. 7 ein Blockschaltbild der Datenselektionsnetzwerke für verschiedene Datenregister der mikroprogranrriierbaren Datenverarbeitungsanlage;
Fig. 8 ein Flußdiagramm für die verschiedenen Maschinenzustände der mikroprogrammierbaren Datenverarbeitungsanlage;
F i g. 9 eine zeitliche Darstellung des Ablaufes der Mikrobefehlsabruf- und Ausführungszyklen für verschie-
dene Maschinenzustände der Datenverarbeitungsanlage;
Fig. 10 ein Zeitablaufdiagramm zur Darstellung der Überlappung des Abrufs und der Ausführung der Mikro- und Steuerbefehle;
Fig. 11 ein Zeitablaufdiagramm für eine Mikrobefehlsabruf und -ausführungsoperation ohne Überlappung;
Fig. 12 ein Flußdiagramm zur Darstellung des Abrufs und der Ausführung von Befehlen der höheren Programmiersprache und
Fig. 13 ein Flußdiagramm zur Darstellung alphanumerischer Datenbewegungen innerhalb der mikroprogrammierbaren Datenverarbeitungsanlage.
Die in F i g. 1 dargestellte mikroprogrammierbare Datenverarbeitungsanlage enthält eine Zentraleinheit 10, die mit einem Hauptspeicher 11 und einem Überwachungsdrucker 12 sowie mit mehreren peripheren Geräten über eine gemeinsame Schnittstelle verbunden ist. Die peripheren Geräte können beispielsweise einen Zeilendrucker 13, einen Plattenspeicher 14, eine Kartenabfühl- und Stanzeinheit 15 und eine Datenübertragungs-Steuereinheit 16 umfassen.
Die in Fig. 1 dargestellte mikroprogrammierbare Datenverarbeitungsanlage kann ohne weiteres an verschiedene höhere Programmiersprachen angepaßt werden, bei der die Befehle der höheren Programmiersprache durch Mikrobefehlsfolgen interpretiert werden. Zur Verringerung der Kosten für den Mikrobefehlsdekodierer sowie Erhöhung der Flexibilität der Mikrobefehlsausführung werden die betreffenden Mikrobefehle dann wiederum durch Steuerbefehle ausgeführt, die bestimmte Signale zum Vorbereiten der verschiedenen Gatter und Register zum Datentransfer beinhalten. Die einzelnen Mikrobefehle setzen sich aus einer variablen Anzahl von Mikrobefehlsgrundsilben zusammen, die aufeinanderfolgend transferiert werden können, so daß es nicht erforderlich ist, in der Zentraleinheit und in der Zentraleinheit-Hauptspeicher-Schnittstelle große Datenkanalbreiten vorzusehen.
Die vorzugsweise im Hauptspeicher 1! gespeicherten Mikrobefehle variabler Länge sind aus Silben einschießlich eines Operationscode und verschiedener Literalwerte zusammengesetzt, so daß die gewünschten Mikrobefehle dadurch gebildet werden, daß die geeigneten Silben nacheinander aus dem Mikroprogrammspeicherabschnitt des Hauptspeichers 11 abgerufen werden. Dadurch wird eine Codeverdichtung im Mikroprogrammspeicherabschnitt erreicht und eine Beseitigung der Redondanz erzielt. Darüber hinaus ist der Programmierer in der Lage, auf der Grundlage eines begrenzten Mikrobefehlsvorrats die betreffenden Mikrobefehlssilben auszuwählen, die zum Bezeichnen der Quellen- und Bestimmungsregister als auch zum Bezeichnen der auszuführenden Funktion erforderlich sind.
Der Mikrobefehlsabruf wird dabei mit der Mikrobefehlsausführung überlappt. Durch diese Parallelität wird die Zeit verringert, die für die Ausführung der verschiedenen Mikrobefehlsfolgen erforderlich ist. Weiterhin dient die Überlappung des Mikrobefehlsaufrufs und der Ausführung des betreffenden Mikrobefehls zum Schließen der Reihen von Befehlsströmen, wie es ein Mikrobefehl tut, der den Transfer der Anzahl der Datensegmente von bis zu 256 Bytes in der Datenverarbeitungsanlage nach und vom Hauptspeicher oder nach und von den peripheren Geräten spezifiziert. Infolge der durch einen Mikrobefehl beschriebenen Datenströme wird die Anzahl der für ein vorgegebenes Datenfeld auszuführenden Mikrobefehle so gering wie möglich gehalten.
In F i g. 2 ist ein detailliertes Blockschaltbild der Zentraleinheit dargestellt.
Die Zentraleinheit enthält eine Funktionseinheit 20, die über eine M-Sammelleitung 21 und eine B-Sammelleitung 22 Daten erhält und die über eine F-Sammelleitung 23 Daten abgibt. Alle von den verschiedenen Registern stammenden Daten bewegen sich durch die Funktionseinheit 20. Die genannten Sammelleitungen haben to eine Breite von acht Bits. Dies ist in der beschriebenen Anlage die Grundbreite für alle Silben und Datensegmente. Die /4-Sammellciumg 21 und die ß-Samniclleitung 22 erhalten Inforniiitionssegmente von den betreffenden Registern und über ein Speicherregister 24 vom Speicher. Das Speicherregister 24 dient lerner /iir Zufuhr von 8-Bit-Adressen zu einem Steuerspeieher 37. Die F-Sammelleilung 23 ist an eine l-/A-Schnittstellc 23a, ein E/A-Adreßregister 41 und an weitere Register, die noch beschrieben werden, angeschlossen.
Maschinenbefehle oder S-Befehle, bei denen es sich um eine Programmiersprache einer höheren Ebene handeln kann, werden durch Ketten von Mikrobefehlen ausgeführt, die in dem in der Fig. 1 dargestellten Hauptspeicher U gespeichert sind. Neben den S-Befehlen werden auch andere Daten im Hauptspeicher U gespeichert. Zu diesem Zweck können die betreffenden Befehle und Daten in verschiedenen Abschnitten eines einzigen Lese/Schreib-Speichers gespeichert sein. Vorzugsweise ist der in der Fig. 1 dargestellte Speicher 11 jedoch in getrennte, nicht gezeigte Abschnitte unterteilt, und zwar mit einem Lese/Schreib-Abschnitt für die S-Befehle, einige Mikrobefehle und Daten sowie in einen Festspeicherabschnitt zur Speicherung von Mikrobefehlen.
Wie bereits erwähnt, werden die betreffenden Mikrobefehle durch Steuerbefehle ausgeführt, die im Steuerspeicher 37 gespeichert sind, der in der in der Fig. 2 dargestellten Zentraleinheit enthalten ist. Bei dem Steuerspeicher 37 kann es sich um einen als integrierte Schaltung ausgebildeten Lese/Schreib-Speicher handeln. Bei dem dargestellten Ausführungsbeispiel ist der Steuerspeicher 37 jedoch als Festwertspeicher ausgebildet.
Das Format eines typischen S-Befehls ist in der F i g. 3 dargestellt. Das Format kann ein 8-Bit-Operatorfeld, ein 8-Bit-Operandenfe!d und ein 8-Bit-Indexfeld enthalten. Der Inhalt des Operandenfeldes kann zur Adressierung eines Deskriptors verwendet werden, der dann mit einem in ähnlicher Weise abgeleiteten Index kombiniert
so werden kann, um eine Adresse für Daten im Speicher zu erzeugen. Das Format eines derartigen Deskriptors ist in der F i g. 4 dargestellt und kann enthalten ein 16-Bit-FeId zur Segment- und Distanzbezeichnung, um den Ort des ersten Datensegments in dem adressierten Datenblock zu definieren, ein 1-Bit-Feld zur Angabe, ob die Daten beispielsweise in ASCII- oder EBCDIC-Code vorliegen, ein 1-Bit-Feld zur Angabe des Vorzeichens für numerische 4-Bit-Daten und ein ll-Bit-Feld zu Angabe der Länge des zugegriffenen Datenblocks.
Wie bereits erwähnt, werden die S-Befehle durch Ketten von Mikrobefehlen ausgeführt. Dabei können drei Arten von Mikrobefehlen vorliegen, deren Formate in den F i g. 5A, 5B und 5C dargestellt sind. Die F i g. 5A zeigt eine Mikrobefehlsart I, bei der es sich um ein einziges Zeichen handelt, das auf einer Grundlage von eins zu eins in Steuerbefehle »abgebildet« wird. Dieses Einzelzeichen ist eine Adresse für den Steuerspeicher der Zentraleinheit, um den betreffenden Steuerbefehl aus-
zuwählen, der die Funktionen beschreibt, die den Zentraleinheit-Speicher-, Zentraleinheit-E/A-Gerät-, und Zwischenzentraleinheit-Transfers zugeordnet sind. Ein typischer Mikrobefehl dieser Art ist beispielsweise COPY MAR 1 -» MAR 2 (Kopiereintragung vom Speicheradressenregister 1 zum Speicheradressem-egister 2).
In der F i g. 5B ist eine Mikrobcfchlsart Il gezeigt, bei der es sich um einen Mehrzeichenmikrobefehl mit einem Literalwert im Mikrobefehlsspeicherabschnitt handelt, in dem der Literalwert dem 8-Bit-Operatorfeld oder dem ersten Zeichen folgt. Das Operatorfeld dieser Art von Mikrobefehl bildet sich direkt in einen Steueroperator ab, um eine Datenwegausführungszahl, Funktionen usw. auszuwählen, wobei die Länge des schriiihaltenden Literais durch die Ausführungszählung beschrieben ist.
In der F i g. 5C ist eine Mikrobefehlsart III gezeigt, bei der es sich um einen 3-Zeichen-Mikrobefehl handelt, der für Sprünge und Subroutinesprünge verwendet wird. Die ersten acht Bits beschreiben den Steuerbefehl der dem Mikrobefehl zugeordnet ist, und die folgenden zwei schritthaltenden Zeichen stellen die Adreßparameter dar.
Das erste Zeichen oder Operatorfeld der verschiedenartigen Mikrobefehle ist eine Adresse zu dem Steuerspeicher 37, um die Speicherstelle eines entsprechenden Steuerbefehls anzugeben. Das Format eines solchen Steuerbefehls wird im Zusammenhang mit der Fig.6 beschrieben. Wie aus dieser Figur hervorgeht, enthält der Steuerbefehl eine Anzahl von Feldern. Das /4-Decodierfeld ist ein 5-Bit-Feld, das die Datenwegeingänge zur Λ-Sammelleilung (21 in Fig.2) beschreibt. Das B-Decodierfeld ist ein 5-Bit-Feld, das die Datenwegeingänge zu der ß-Sammelleitung (22 in F i g. 2) beschreibt. Das F-Decodierfeld ist ein 5-Bit-Feld, das den Datenwegausgang von der F-Sammelleitung (23 in F i g. 2) beschreibt. Das Speicheradreßfeld des Formats nach der F i g. 6 ist ein 2-Bit-Feld, um zur Speicheradressierung ein Adreßregister auszuwählen. Diese Auswahl kann ein MAR 1-Register 25 in einem Inkrement- oder Dekrement-Modus oder ein MAR 2-Register 26 ebenfalls in einem Inkrement- oder Dekrement-Modus betreffen (alle Register und Sammelleitungen sind in den F i g. 2 dargestellt). Das TMS-Ladefeld ist ein 4-Bit-Feld, um eine automatische Ausführungszählzeitselektion für Standardmikrobefehle vorzunehmen. Das Bedingungsende-Feld ist ein 1-Bit-Feld, um bedingte Ausgänge aus der Mikrobefehlsausführung auszuwählen. Das Funktionsfeld ist ein 5-Bit-Feld, um arithmetische oder logische Opciiiiionen in der Funktionseinheit 20 (Fig. 2) auszuwählen. Das Literalfeld ist ein 8-Bit-Feld. um die lXmiklion von 1 .itcrivlwcrten ;uis den Steuerbefehlen zu gesuiuen.
Der Mikrobefehl der Art I (ein Zeichen) kann einen von 256 Steuerbefehlen bezeichnen. Die Mikrobefehle der Art 11 und der Art III gestatten es. daß durch schritthalicndc Literale in den Mikrobefehlen Extensions- oder Erweiterungsparameter vorgesehen sein können. Das Vorhandensein von dualen zeitsfiuernden Maschinenzustandssteuereinheiten gestattet es, das TMS-Hilfsregister (40 in Fi g. 2) zu verwenden, um einen Mikrobefehlsvorrat durch zugeordnete Zählzeiten zu erweitern, die durch einen vorangegangenen Mikrobefehl mit Steuerbefehlen geladen worden sind.
Wie bereits beschrieben, wird die Datenverarbeitungsanlage von Mikrobefehlen gesteuert, die wiederum durch Steuerbefehle ausgeführt werden. Das bedeutet, daß alle Datenbewegungen unter der Steuerung von Steuerbefehlen ausgeführt werden, die durch Mikrobefehle aufgerufen worden sind. Da die betreffenden Mikrobefehle aus einer unterschiedlichen Anzahl von SiI-ben aufgebaut sind, die aufeinanderfolgend abgerufen oder geholt werden müssen, ändert sich die Zeil, die zum Abrufen des variable Silben aufweisenden Mikrobefehls selbst erforderlich ist. wie es in dem Zählfeld des Steuerbefehls angegeben ist. Die Maschinenzustands-Steuereinheit 39 in der F i g. 2 kann einen von acht verschiedenen Maschinenzuständen angeben, einschließlich von zwei Verzögerungszuständen, die in Verbindung mit den Zählfeldern der Steuerbefehle benutzt werden, um Mikrooperatoren und variable Silben abzurufen. Zu diesem Zweck ist die Maschinenzustandssteuereinheit 39 mit einem nicht dargestellten 4-Bit-Zähler ausgerüstet, um die Mikrobefehlsausführungszeit zu bezeichnen. Dieser Zähler wird vom Zählfeld der Steuerbefehle geladen. Um eine Anpassung für die erweiterten Datentransfers nach oder von den Peripheriegeräten und nach und von dem Speicher vorzusehen, handelt es sich bei dem Hilfsmaschinenzustandszähler 40 um einen 8-Bit-Zähler, um bis zu 256 derartige Datentransfers anzugeben. Auf diese Weise können bis zu 256 Datensegmente unter der Steuerung eines einzigen Mikrobefehls transferiert werden. Diese Maßnahme kann man beispielsweise bei der Vergleichsoperation anwenden, um eine Kette von Datensegmenten für einen besonderen Wert zu suchen. Die Zentraleinheit ist derart ausgerüstet, daß sie die Ausführung dieses Mikrobefehls bedingt anhalten kann, falls ein Vergleich zustandegekommen ist.
Um die zur Ausführung einer Anzahl von Mikrobefehlen erforderliche Zeit zu vermindern, wird der Mikrobefehlsabruf mit der Mikrobefehlsausführung überlappt. Ein »first-in, last-out«-Stapel- oder Kellerspeicher (36a—d in Fig.2) ist vorgesehen, um eine Reihe von MikroSpeicheradressen zu halten, um das Abrufen oder Holen der Sprung- oder Subroutinemikrobefehle zu beschleunigen.
Die in F i g. 2 dargestellten Speicheradreßregister 25 und 26(MAR 1 und MAR 2)sind identische 16-Bit-Register, die in einem von zwei Modi arbeiten: Transferieren und Zählen. Im Transfermodus bildet jedes Register zwei 8-Bit-Byteregister (25a, 256 bzw. 26a, 26£>). die beide in der Lage sind, von der Funktionseinheit 20 über die F-Sammelleitung 23 geladen zu werden. Jedes Paar der Byteregister kann in ein 2-Byte-Register verkettet werden, das von der F-Sammelleitung 23 geladen wird. Im Transfermodus und bei keiner gültig geladenen Adresse kann man ein Speicheradreßregister ais Aiigemeinzweckregister verwenden. Im Zählmodus wird jedes der Speicheradreßregister zur Speicheradressierung verwendet. Zu diesem Zweck ist eine Speicheradreß-Sammelleitung 44 vorgesehen, bei der es sich um eine 16-Bit-Leitung handelt. Auf diese Weise ist es möglich bis zu 64K Speicherbytes zu adressieren. Im Zählmodus kann man einem Speicheradreßregister (25 und 26 in Fig.2) befehlen, zu inkrementieren oder dekrebo mentieren. Die Inkrementeinrichtung (25c und 26c in F i g. 2) wird benutzt, um im Speicher aufeinanderfolgende Zeichen zu adressieren. Die Dekrementeinrichtung wird hauptsächlich benutzt, um arithmetische Information zu adressieren, damit diese der Zentraleinheit b5 richtig dargeboten wird.
Ein BO-Register 27 ist ein Ein-Zeichen-Allzweckregister mit zwei Abschnitten OU und OL um sowohl Byteais auch Ziffern-Kapazität zur Verfügung zu stellen. Im
ίο
Ziffernmodus kann man in Übereinstimmung mit irgendeiner Funktion, die von der Funktionseinheit 20 ausgeführt werden soll, jede Ziffer mit einer anderen Ziffer vereinigen. Im Bytemodus können beide Ziffern im BO-Register 27 von der Funktionseinheit 20 entladen werden.
Das BI-Register 28 ist ein Ein-Zeichen-Register mit Bitmaskiereigenschaften, die durch einen Literalwert vom Steuerspeicher 38 gesteuert werden und die Möglichkeit von Sprungmikrobefehlen auf irgendein Bit im Register 28, ob gesetzt oder zurückgesetzt, vorsehen. Im Transfermodus kann das BI-Register in die Funktionseinheit 20 entladen werden und von der Funktionseinheit 20 geladen werden. Das B2-Register 29« und das B3-Register 29b sind Ein-Zeichen-All/.weckregister, die verkettet werden können. Zwei-Byte-Register 29 zu bilden. Jedes der getrennten Register kann nach der Funktionseinheit 20 entladen und von der Funktionseinheit 20 geladen werden.
Das WR-Register 34 ist ein Allzweck-Arbeitsregister mit zwei Betriebsmodi: Transfer und Bit. Im Transfermodus bildet das WR-Register zwei 8-Bit-Byteregister (34a und 34b), von denen jedes in der Lage ist, von der Funktionseinheit 20 geladen zu werden. Allerdings kann nur das untere Byteregister 34a nach der Funktionseinheit 20 entladen werden. Im Bitmodus ist das WR-Register 34 intern als 16-Bit-Serienschieberegister mit der Fähigkeit des Herausschiebens und des Umlaufschiebens ausgebildet. Der Schiebebetrag hängt von einem Literalwert ab, der in den steuernden Maschinenzustandszähler gebracht wird, und zwar entweder in den Normalzähler in der Maschinenzustandssteuereinheit 39 oder in den Hilfsmaschinenzustandszähler40.
Ein Flaggen- oder Hinweis-Register 30 ist ein Ein-Zeichen-Register, das zur Speicherung für ein allgemeines Hinweisbyte dient. Das Bitsetzen wird durch einen Literalwert vom Steuerspeicher 37 gesteuert. Im Transfermodus kann das Register 30 nach der Funktionseinheit 20 entladen oder von der Funktionseinheit 20 geladen werden.
X-Register 33a, 33Z>, 33c und 33c/ und Y-Register 31a, 3ii>, 3icund 3tdkönnen in einer entsprechenden Weise zusammengekettet werden, um zwei 4-Byte-Register oder ein 8-Byte- oder 16-Ziffern-Registcr (XY) zu bilden. Die betreffenden Register können von der Funktionseinheit 20 geladen werden, jedes der Register kann nach der Funktionseinheit 20 entladen werden. Wenn diese Register in Verbindung mit der Funktionseinheit 20 verwendet werden, können sie eine Dezimalarithmetik durchführen. Im Ziffernmodus kann man die XY-Kombination der Register für eine Zonenabstreifung und Anhängung verwenden.
Mikrospeiche^adreßregister 35a und 35b bilden eine Reihe von zwei 1-Byte-Registern, die von der Funktionseinheit 20 geladen oder entladen werden können. Diese Register können auch Information an drei 16-Bit-Register 36a, 36b und 36c liefern oder Information von diesen Registern empfangen. Diese Register bilden einen »last-in, first-oui«-Adreßstapel- oder -kellerspeicher zum Adressieren des Mikrospeichers und Speichern von Programm- und Unterbrechungssubroutineadressen. Ferner ist ein 16-Bit-Zähler 36d vorgesehen, der die Fähigkeit zum Inkrementieren aufweist und der direkt von den Registern 35a und 35b geladen werden kann. Eine Mikrospeicheradreß-Sammellcitung 45 bildet eine Ib-Bit-Lcitung, um Adressen vom Stapclrcgistcr 36c und auch vom Zähler 36d zu empfangen. Der Zähler 36c/ist an eine Inkrcmentcinhcit 36<? angeschlossen, um eine Inkrcmentfahigkeil vorzusehen.
Das TMS-Hilfsregister 40 ist ein Ein-Zciehen-Register mit zwei Betriebsmodi: Laden und Dekrcmenticren. Im Lademodus kann dieses Register von der Funktionseinheit 20 geladen werden. Die Steuerung für den nächstfolgenden Mikrobefehl wird zu diesem Register vom Maschinenzustandszähler in der TMS-Steuereinheit 39 transferiert. Im Dekrementmodus steuert das TMS-Hilfsregister 40 die Beendigung der laufenden Mikrobefehlsausführung, wenn es durch einen Lade-TMS-Hilfsmikrobefehl vorbereitet ist.
Ein E/A-Adreßregister 41 ist ein 8-Bit-Register, das zur Adressierung von acht bidirektionalen E/A-Kanälen oder Steuereinheiten dient. Dieses Register kann von der Funktionseinheit 20 geladen und nach der Funktionseinheit 20 entladen werden.
Die Funktionseinheit besteht aus zwei arithmetischen Logikeinheiten, die die unten tabellarisch zusammengestellte Funktionalfähigkeil haben. Die Funktionseinheitdatenwege haben eine Breite von acht Bits, und zwar in Übereinstimmung mit der Datenwegbreite der Eingabe- und Ausgabesammelleitungen (A-Sammelleitung 21, ß-Sammelleitung 22 und F-Sammelleitung 23). In der folgenden Tabelle ist das resultierende Ausgangssignal an der F-Samelleitung als Funken der beiden Eingangssignale an der /4-Sammelleitung up.j der ß-Sar-.-melleitung zusammengestellt. Weitere Funktionalfähigkeiten, beispielsweise Dezimalarithmetik (BCD). Zehnerkomplement und Zonenanhängung sind durch Datenwegselektion und durch die Verwendung von Mikrobefehlsliteralen vorgesehen.
Sicuercodc Funktion
11111 transferieret
00001 invertiere A
10111 logisches UND A ■ B
11101 logisches ODER Λ · B
01101 exklusives ODER A Θ Β
10010 addiere binär ^PLUSS
00000 inkrerncniicrc binär A
U110 A MINUS!
01100 /*MINUSßMINUS1
00100 (A + B)
00111 Null
00011 A + B
00101 A-B
01001 A ■ B
01011 B
01111 A ■ B
10001 A + B
10011 A® B
10101 transferiere 8
UOOl 1
UOU A + B
00010 A + B
11010 (A + B)PLVSA
00110 MINUSl
01000 APLUSA B
01010 (A + B) PLUS A B
OHIO A ■ B MINUSI
10000 Λ PLUS/* ■ B
10100 (A + B)PLViSA ■ B
10110 A ■ SMINUSI
11000 A PLUS A
11100 (A + B) PLUS A
Der beschriebene Teil der Zentraleinheil enthält somit die Registerorganisation und die Funktionseinheit. Es folgt jetzt eine genaue Beschreibung der Mikrobefehlsdecodierorganisation, die ein Speicherregister 24 und einen Steuerspeicher 37 sowie die Maschinenzustandssteuereinheit 39 enthält, wie es in der F i g. 2 dargestellt ist.
Das Speicherregister 24 ist ein 8-Bit-Register, das zur Adressierung des Steuerspeichers 37 dient und Information über den nächsten auszuführenden Mikrobefehl zur Verfügung stellt. Diese Information wird benötigt, um die Überlappung der Mikrobefehlsabrufphase und Ausführungsphase zu erzeugen. Beim Zugriff zu dem Steuerspeicher 37 wird ein Steuerbefehl an den Stcuerpuffer 38 geliefert. Wie bereits allgemein erläutert, steuert der Inhalt des Steuerpuffcrs 38, das bedeuiet der Steuerbefehl, die Auswahl der Quellen- und Bestimmungsregister und die auszuführende Funktion.
Die Maschinenzustandssteuereinheit 39 steuert die Phaseneinstellung von allen Mikrobefehlen in der Zentraleinheit Die betreffenden Maschinenzustände werden noch im einzelnen beschrieben. Ein Vorausschauverfahren wird bei der Mikrobefehlsdecodierung verwen 'et, und zwar wie die Überlappung der Abruf- und Ausführungsphasen der Mikrobefehlsausführung ist. Die Vorausschaufunktion umfaßt eine Entscheidung auf der Grundlage des laufenden Mikrobefehlsmaschinenzustands und der Zählzeit, der Art des von dem Steuerbefehl aus dem Steuerspeicher erhaltenen laufenden Mikrobefehls und der Art des im Speicherregister 24 enthaltenen nächsten Mikrobefehls, falls der Inhalt dieses Registers als gültig erklärt worden ist, d. h., falls eine Mikrobefehlssilbe anwesend ist. Der Maschinenzustand während der nächsten Zählzeit der Zentraleinheil wird berechnet, und es werden Entscheidungen getroffen, ob der Speicher adressiert und der Speicherzugriff angefordert werden soll, um den nächsten Mikrobefehl abzurufen bzw. zu holen und das Mikrospeicheradreßregister zu inkrementieren, und ob der Inhalt des Speicherregisters 24 für gültig erklärt werden soll. Wie bereits erwähnt, enthält die Maschinenzustandssteuereinheit 39 einen nicht dargestellten 4-Bit-Zähler, der von dem Steuerbefehl vorgesetzt ist und der die Anzahl der Ausführungsperioden für den laufenden Mikrobefehl steuert, es sei denn, daß das TMS-Hilfsregister 40 durch den vorangegangenen Mikrobefehl freigegeben worden ist.
Das TMS-Hilfsregister 40 wird benutzt, um unter der Steuerung eines einzigen Mikrobefehls den Transfer einer Anzahl von Datensegmente (bis zu 256 Bytes) zu steuern. Solche Multisegmenttransfers können nach oder von dem in der F i g. 1 dargestellten Hauptspeicher ! ■ wiJiT iuii'h «.Hier von den F/'Ä-Pciiplicncgeräien erfolgen. Körner ist ein bedingter Ende-Mikrobefehl vorgesehen, unter dem die transferierte Datenfolge zum Vergleich mil dem Wert des Inhalts von einem der Datenregister abgetastet wird. Falls ein Vergleich auftritt, wird der Mikrobefehl beendet, und die Maschinenzustandssteuerung wird zurück zu dem nicht dargestellten 4-Bit-Zähler in der Maschinenzustandssteuereinheit 38 transferiert.
Die Art, in der ein Steuerbefehl die einzelnen Quellen- und Befehlsregister als auch die auszuführende Funktion auswählt wird jetzt anhand der F i g. 7 beschrieben, bei der es sich um ein Blockschaltbild der A-. B- und F-Selektionsnetzwerke handelt Wie bereits erwähnt enthält der Steuerbefehl drei 5-Bit-Felder, um das mit der ^-Sammelleitung 21 zu verbindende Register, das mit der ß-Sammelleitung 22 zu verbindende Register und das mit der F-Sammelleitung 23 zu verbindende Register anzugeben. Zusätzlich enthält der Steuerbefehl ein 5-Bit-Feld, um die von der Funktionseinheit 20 auszuführende arithmetische oder logische Operation anzugeben. Diese Felder werden vom Steuerpuffer 38 (F i g. 2) empfangen und zu den betreffenden, in der Fig. 7 dargestellten Selektionsnetzwerken transferiert. Das /4-Decodierfeld wird zu dem /4-Selektionsnetzwerk 46 transferiert, um das besonders bezeichnete Register
ίο mit der /4-Sammelleitung 21 zu verbinden. Das S-Decodierfeld wird zu dem ß-Selektionsneizwerk 47 transferiert, um das besondere bezeichnete Register mit der ß-Sammelleitung 22 zu verbinden. In entsprechender Weise wird das F-Steuerfeld zu dem F-Selektionsnetzwerk 48 transferiert, um anzugeben, welches Register mit der F-Sammeiieiiung 23 verbunden werden soll. Das Funktionsselektionsdecodierfeld wird direkt zur Funktionseinheit 20 transferiert. Alle diese Felder können unabhängig voneinander gewählt sein.
Die Art, in der die verschiedenartigen Mikrobefehle und Steuerbefehle in einer sich überlappenden Weise abgerufen werden, wird anhand der F i g. 9 beschrieben. Dazu ist eine Reihe von miteinander in Beziehung stehenden Signalverläufen gezeigt, die die Folge von Schritten darstellen, die bei verschiedenen Einheiten der Anlage ausgeführt werden. Dabei sind bei diesen verschiedenen Einheiten miteinander verwandte Schritte, die zur Decodierung und Ausführung jedes Mikrobefehls benötigt werden, bei jedem Signalverlauf mit derselben Bezugszahl versehen, ;o daß man den Vorgang der Decodierung und Ausführung jedes besonderen Mikrobefehls dadurch erhalten kann, daß man die miteinander verwandten Bezugszahlen in den verschiedenen Signalveriäufen verfolgt.
Der in der F i g. 9 gezeigte Signalverlauf A stellt lediglich den Anlagentaktpuls dar und dient als zeitliche Bezugsgröße für die anderen Signalverläufe. Der Signalverlauf B gibt die Zeit an. bei der das Mikrospeicheradreßregister (einschließlich des Zählers) inkrementiert wird, um eine neue Adresse für den MikroSpeicher vorzusehen. Der Signalverlauf C ist eine Darstellung der Zeiten, bei denen das Mikrospeicheradreßregister derart bezeichnet wird, daß es eine gültige Mikrospeicheradresse enthält. Der Signalverlauf D stellt die Zeiten dar, bei denen eine Speicheradresse dem Speicher dargeboten wird, um Daten oder Mikrobefehle abzurufen, wobei diese Mikrobefehle in dem Mikrospeicherabschnitt des Hauptspeichers gespeichert sind. Der Signalverlauf fist eine Darstellung der Zeiten, bei denen aus dem Hauptspeicher entweder Daten oder Mikrobefehle empfangen werden. Der Signalverlauf Fstellt die Zeiten dar, bei denen aus dem Steuerspeicher 37 (Fi g. 2) eine Ausgabe empfangen wird, und zwar dadurch, daß der Steuerspeicher durch einen Mikrobefehlsoperationscode adressiert wird. Durch den Signalverlauf G sind die Zeiten dargestellt, bei denen der Steuerpuffer 38 (F i g. 2) einen Befehl übernommen hat oder durch den Ausgang des Steuerspeichers 37 gesetzt worden ist. Der Signalverlauf Hstellt die Zeiten dar, während denen die Signale vom Steuerpuffer 38 benutzt werden, um die Ausführung der besonderen Funktionen und Datentransfers zu veranlassen, die von dem entsprechenden Mikrobefehl verlangt werden. Die geschlossenen Flächen in den verschiedenartigen Signalveriäufen stellen Zeiten dar, zu denen der Mikrospeicheradreßregisterstapel 36 nach unten geschoben wird, um zusätzliche MikroSpeicheradressen zu speichern. Die Abruf-, Decodier- und Ausführunesschritte von
verschiedenen Arten von Mikrobefehlen sind bei der F i g. 9 in den Signalverläufen dargestellt Diese Schritte stehen in Beziehung zu der Gesamtanzahl der Schritte, die zur Ausführung von jedem der besonderen Mikrobefehle erforderlich sind. Miteinander verwandte Schritte tragen dieselbe Bezugszahlenbezeichnung. D-ese Bezeichnungen werden im folgenden erläutert. Die Bezugsjahl 1 bezeichnet die verschiedenen Schritte, die für einen i-Zählzeit-Mikrobefehl benötigt werden, der mit Ausnahme des Mikrobefehlsabrufs keinen Speicherabruf vorsieht Mit der Bezugszahl 2 sind die verschiedenen Schritte bezeichnet, die für einen Subroutinesprungmikrobefehlsabruf benötigt werden. Die Bezugszahl 3 kennzeichnet einen Speicherabruf des ersten Byte einer Sprungadresse, entsprechend eier Anforderung durch den SubroutinesprungmikrobefehL Mit der Bezugszahl 4 ist der Speicherabruf des zweiten Byte einer Sprungadresse bezeichnet. Die Bezugszahl 5 ist dem Aufstellen einer Subroutinerückkehradresse zugeordnet. Die Bezugszahl 6 stellt einen 3-Zählzeit-Nichtspeicherabruf-Mikrobef?h! dar. Die Bezugszahl 7 bezeichnet einen Mikrobefehl mit einem 2-Zeichen-Literal. Die Bezugszahl 8 betrifft den Speicherabfuf des ersten Byte dieses Literais. Die Bezugszahl 9 kennzeichnet den Speicherabruf des zweiten Byte dieses Literais. Die Bezugszahl 10 stellt einen 3-Zeichen-Speicherlese-Mikrobefehlsabruf dar. Die Bezugszahl 11 kennzeichnet den tatsächlichen Speicherzugriff zum Abrufen bzw. Holen der drei Zeichen. Mit Dl, D2 und D3 ist der tatsächliche Empfang des ersten, zweiten und dritten Byte, die diese Zeichen darstellen, aus dem Speicher bezeichnet
Die in der F i g. 9 dargestellten verschiedenen Signalverläufe dienen in erster Linie zur Erläuterung der Überlappung zwischen dem Abruf (Signalverlauf £]/unä >'. der Ausführung (Signaiverlauf H) der aufeinanderfolgenden Mikrobefehle und auch zur Erläuterung der Arbeitsweise des Keller- oder Stapelspeichers 36a bis d (Fig.2), um aufeinanderfolgende Mikrospeicheradresscn zu halten bzw. zu speichern. Aus der Darstellung der Signalverläufe nach der F i g. 9 gehen aber auch andere interessierende Zusammenhänge hervor. Während beispielsweise das Abrufen eines Subroutinesprungmikrohefehis (Bezugszeichen 2) durch Steuerbefehle (Signalverlauf H) aus dem Steuerspeicher implementiert bzw. bewerkstelligt wird, geschieht das Abrufen der beiden Bytes der Sprungadresse (Bezugszeichen 3 und 4) unter der Steuerung dieses Mikrobefehls, und ein zusätzlicher Steuerspeicherausgang (Signalverlauf F) wird nicht benötigt. Ferner geht aus der Darstellung hervor, daß das Aufstellen (Signalverläufe B und Q der Subroutinerückkehradresse (Bezugszeichen 5) keinen Steuerspeicherausgang (Signalverlauf F) erfordert. In ähnlicher Weise benötigt das Abrufen eines 2-Zeichen-Literalmikrobefeh's der Mikrobefehlsart 111 (Bezugszeichen 7) einen Steuerspt-icherausgang für eine Takt.T.eit Das anschließende Abrufen der beiden Bytes des Literais (Bezugszeichen 8 und 9) verlangen hingegen keinen Steuerspeicherausgang, da dieses Abrufen unter der Steuerung des zuvor abgerufenen Mikrobefehls vorgenommen wird. &o In ähnlicher Weise erfordert das Abrufen von Datenzeichen aus dem Hauptspeicher (Bezugszeichen 10) keinen Steuerspeicherausgang, sobald der nach diesem Ausgang rufende Mikrobefehl ausgeführt wird.
Die Überlappung bei dem Mikrobefehlsabrui und der bs Mikrobefehlsausführung geht aus der F i g. 9 deutlich hervor. Die Ausführung des ersten Mikrobefehls (Bezugszeichen I) wird beispielsweise während der dritten Taktperiode.· durchgeführt, also zur selben Zeit, während der der zweite Mikrobefehl aus dem Speicher abgerufen wird, wobei die Adresse des zweiten Mikrobefehls während des Speicherabrufs des ersten Mikrobefehls im Stapelspeicher gespeichert worden ist In entsprechender Weise wird die Ausführung des 3-Zählzeit-Nichtspeicherzugriffsmikrobefehls (Bezugszeichen 6) während aufeinanderfolgender Taktzeiten durchgeführt, während denen der 2-Zeichen-Literalmikrobefehl vom Speicher abgerufen wird.
Eine noch bessere Darstellung der Abruf- und Ausführungsüberlappung ergibt aus einem Vergleich /wischen den Fig. 10 und 11. Die Fig. 10 zeigt einen Zeitablauf, aus dem die vollkommene Parallelität des Mikro befehlsabrufs und der Mikrobefehlsausführung für eine Anzahl von verschiedenen Arten von Mikrobefehler hervorgeht. Die Fig. 11 zeigt einen ähnlichen Zeiiab lauf, bei dem im Vergleich zu dem gemäß Fi g. 10 eint Parallelität oder eine Überlappung zwischen der Mikro speicheradreßinkrementation und der Mikrobefehlsausführung vorliegt, jedoch nicht zwischen dem Mikrospei cherabruf und der Mikrobefehlsausführung. Bei derr Zeitablauf nach Fig. 11 tritt somit keine Überlappung zwischen dem Mikrobefehlsabruf aus dem Mikrospei cherabschnitt d. s Hauptspeichers und dem Steuerbe fehlsabruf aus dem Steuerspeicher auf.
Wie aus Fig. 10 hervorgeht ist eine Parallelität odei eine Überlappung zwischen der Inkrementierung de; Mikrospeicheradreßregisters und der Darbietung de« Inhalts dieses Registers an den Mikrospeicher für auf einanderfolgende Befehle, eine Parallelität oder Über iappung zwischen der Darbietung einer Mikrospeicher adresse an den Mikrospeicher und eines Abrufs aus den Mikrospeicher für aufeinanderfolgende Befehle und ei r* P^! v!k ütät zwischen dem Abrufen eines Mikrobe fehls aus dem Mikrospeicher und dem Abrufen eine; Steuerbefehls aus dem Sieuerspeicher für aufeinander folgende Befehle möglich. Diese Parallelität oder Über Iappung erzeugt eine Art von Rohrleitungseffekt, be dem aufeinanderfolgende Mikrobefehle abgerufen unc die vorher abgerufenen Mikrobefehle durch die Rohr leitung weiter in Richtung auf den Steuerbefehlspuffe geschoben werden, um ausgeführt zu werden.
Infolge der Parallelität erfordern die Inkrementie rung der Mikrospeicheradrerse, der Mikrospeicherzu griff, der Empfang des Mikrospeicherabrufs, der Emp fang des Steuerspeicherabrufs uiiu die Ausführung fü; einen einzigen Zählzeit-Registertransfer-Mikrobefeh nur vier Taktzeiten. Beim Ablauf nach der F i g. 11 dau ert ein solcher normaler Mikrobefehl sechs Taktzeiten Andere Zeiteinsparungsbeispiele die die Anzahl dei Taktzeiten betreffen, die zum Abrufen und Ausführet von verschiedenen Ai ien von Mikrobefehlen erforder lieh sind, kann mar. durch Vergleich der Fig. 10 um F i g. 11 entnehmen. Diese Einsparungen werden da durch erreicht, daß die Inkrementierung der Mikrospei cheradresse zum Erhaltsn der nächsten Adresse infolg« eines Mikrospeicherabrufs für die vorangegangen! Adresse nicht verzögert wird und daß der Mikrospei cherabruf durch ninen Steuerspeicherabruf für den vor abgegangenen Mikrobefehl ebenfalls nicht verzöger wird.
Wie es bereits in Verbindung mit der Mikrobefehls ausführungsorganisation beschrieben wurde, steuert dii Maschinenzustandssteuereinheit 39 (F i g. 2) die Phasen einstehung von allen Mikrobefehlen in der Zentralein heit. Wie es ferner bereits beschrieben wurde, wird eil Vorausschauverfahren benutzt, das eine Enischeidunj
aufgrund der laufenden Mikrobefehlsmaschinenzustandszählzeit, der Art des vom Zustandsmaschinendecodierfeld in dem Steuerbefehl erhaltenen laufenden Mikrobefehls und der Art dec- im Speicherregister 24 enthaltenen nächsten Mikrobefehls, wie empfangen vom Mikrobefehlsspeicher, umfaß!. Der Maschinenzustand während der nächsten Zähl/eil der Maschine wird berechnet, und es werden Entscheidungen getroffen, ob der Speicher adressiert und der Speicherzugriff angefordert werden soll, ob der nächste Mikrobefehl aufgerufen und das Mikrospeicheradreßregister inkrementiert werden soll und ob der Inhalt des Speicherregisters für gültig erklärt werden soll.
Es gibt acht verschiedene Maschinenzustände. Die Beziehung zwischen diesen Zuständen ist in der F i g. 8 dargestellt. Diese Zustände werden wie folgt bezeichnet: Eingreifen-Einleiten (111), Eingreifen—Unterbrechen (000), Eingreifen-Fehler (011), Stoßen (001), Ersetzen (101), Ausführen (100), Verzögern 1 (110) und Verzögern 2 (010). Die Bedingungen, unter denen in jeden der Zustände eingetreten wird, und die Funktion des betreffenden Zustands werden im folgenden erläutert.
Die Funktion des Stoß-Zustands (001) in der Zentraleinheit besteht darin, das Mikrospeicheradreßregister und den zugeordneten Stapel derart zu manipulieren, daß Subroutinesprungsadressen und Unterbrechungsrückkehradressen in dem Stapel sichergestellt werden. Die Bedingungen zum Eintritt in den Stoßzustand liegen vor, wenn der laufende Mikrobefehl ein erfüllter Subroutinesprung in der Zählzeit 1 des Ausführungszustandes ist oder wenn eine Eingriffunterbrechungsbedingung, eine Eingriffseinleitbedingung oder eine Eingriffsfehlerbedingung während des laufenden Maschinenzyklus gültig ist.
Die Funktion des Ersetzzustandes (101) besteht darin, zu veranlassen, daß nicht bedingte Sprungadressen und erfüllte bedingte Sprungadressen vom Laderegister in dem Mikrospeicheradreßstapel in das Mikrospeicheradreßregister geladen werden. Die Bedingungen zum Eintritt in den Ersetzzustand liegen vor, wenn der laufende Mikrobefehl ein erfüllter Sprung ist, jedoch keine Subroutine oder eine Subroutinerückkehr, und wenn der laufende Mikrobefehl bei der Zählzeit 1 des Ausführungszustands ist.
Der Eingriffsunterbrechungszustand (000) dient zur Veranlassung, daß eine Eingriffsmikroprogrammroutineadresse in den Mikrospeicheradreßstapel geladen wird. Falls eine Unterbrechung auftritt, ist die Bedingung für den Eintritt in den Eingriffsunterbrechungszustand gegeben, wenn der laufende Maschinenzustand entweder Stoßen oder Ersetzen ist. der laufende Mikro-Ix'fehl ein Nk-hlspnmgTNS-Laden im Zählzustand 1 iles Ausl'ührunps/iisuuKles und der Inhalt des Mikrobcfehlspul'fers ungültig ist. der laufende Mikrobefehl ein erfülltes bedingtes Lesen im Ausführungs/ustand, jedoch nicht in der Zähl/eil I dieses Zustands ist und wiederum dei Inhalt des Mikropuffcrs für ungültig erklärt worden ist oder der laufende Mikrobefehl eine Subroulincrückkchr in der Zählzeit I des Ausführungszuslandes ist.
In den Eincriffseinlcitzuutand (111) wird eingetreten, wenn die Zv itraleinheit ein Kinschaltsignal empfängt. Bei der Feststellung eines Paritätsfehlers vom Speicher wird in den Eingriffsfehlerzustand (OU) eingetreten, wenn eine Speicherfreigabeleitung zur Zentraleinheit angezeigt hat, daß der Zentraleinheit ein Speicherzugriff gestattet worden ist.
Der Verzögerungs-2-Zustand ist vorgesehen, um zu gestatten, daß ein Mikrobefehl im Mikroabschnitt des Speichers abgerufen oder geholt und in den Mikrobefehlspuffer geladen wird, wenn der gerade ausgeführte vorangegangene Mikrobefehl entweder ein erfüllter ber. dingler Sprung, ein nicht bedingter Sprung, ein Subroiitinesprung oder eine Siibroiitinerückkehr isi. In den Vcr/.ögerungs-2-Zustand kann nur eingetreten werden, wenn keine Unterbrechung vorhanden ist und wenn der laufende Zustand der MikroZentraleinheit entweder Stoßen oder Ersetzen ist, der laufende Mikrobefehl eine Subroutinerückkehr in den Ausführungszustand ist odeder laufende Mikrobefehl ein erfülltes bedingtes Lesen im Ausführungszustand, jedoch nicht in der Zählzeit 1 dieses Zustandes ist.
Der Verzögerungs-1 -Zustand (110) ist aus zwei Gründen vorgesehen. Der wichtigere Grund besteht darin, zu veranlassen, daß vor der Ausführung der zur Zeit im Mikropuffer befindliche Mikrobefehl durch den Steuerspeicher nach vorne in den Steuerpuffer gebracht wird.
Der verbleibende Anwendungsgrund für den Verzögerungs-1-Zustand ist durch die Speicherzugriffszeit auf Lesemikrobefehle bedingt, da es unmöglich ist, im selben Zyklus ein durch eines der MAR-Register adressiertes Zeichen im Speicher zuzugreifen und nach außen in die Zentraleinheitspeichenegister zu bringen. In diesem Fall ist der Verzögerungs-!-Zustand vorgesehen, um den Zugriff zu dem ersten Zeichen zu gestatten, das vor dem Eintritt der Zentraleinheit in den Ausführungszustand in einem Speicherlesemikrobefehl benötigt wird.
jo Der Ausführungszustand (100) steuert alle Datentransfers in der Zentraleinheit, abgesehen von solchen Stapelmanipulationen, die durch den Ersetz-, Eingriffsund Stoßzustand gesteuert werden.
Ein regulärer Mikrobefehl, der keinen Speicherzugriff erfordert, kann in einer Taktzeit ausgeführt werden und benötigt keine zugeordneten Verzögerungen. Ein Speicherschreibmikrobefehl erfordert eine einzige Takiverzögerung, nachdem die Ausführung beendet worden ist. Ein Speicherlesebefehl erfordert eine einzige Taktzeitverzögerung vor der Ausführung und eine einzige Taktzeitverzögerung nach der Ausführung. Ein Literalmikrobefehl benötigt eine einzige Taktzeitverzögerung, nachdem die Ausführung beendet worden ist, um das Abrufen oder Holen der nächsten Mikrosilbe zu gestatten, wie es bereits oben beschrieben ist.
Ein nicht bedingter Sprungmikrobefehl und eir. erfüllter bedingter Sprungmikrobefehl erfordern zvei Taktzeitverzögerungen, nachdem die Ausführung beendet worden ist. Ein bedingter nicht erfüllter Sprungmikrobefehl benötigt eine Taktzeitverzögerung, nachdem die Ausführung beendet worden ist. Ein bedingter Speicherlesebeendigungsbefehl benötigt eine einzige Taktzeitverzögerung, bevor die Ausführung eingeleitet ist. und zwei Taktzeilverzögerungen, nachdem die Ausführung beendet worden ist.
Die Eingabe/Ausgabe-Schnittstelle der in der Fig. 2 dargestellten Zentraleinheit enthält eine E/A-Datensammelleitung 23a, ein E/A-Adreßregister 41, eine E/A-Anforderungssammelleitung 42. eine E/A-Adreßsam-
bO melleitung 43 und ein Maskenregister 46. Diese Einrichtungen können acht Kanäle mit bidirektionalem Betrieb bedienen und sehen die Möglichkeit einer programmgesteuerten Priorität vor. Alle Transfers durch einen E/AKanal finden unter Steuerung der Zentraleinheit statt.
b5 Steuerparameter, Daten sowie Identifizierurigs- und Zustandsanforderungen können von der Zentraleinheit zu einer E/A-Kanalsteuereinheit übertragen werden. Andererseits können Zustände, Identifikationen und Daten
von der Steuereinheit zu der Zentraleinheit übertragen werden. Alle durch einen Zentraleinheitzugriff eingeleiteten Datentransfer erhalten zu der Zentraleinheit über eine E/A-Unterbrechungsanforderung Zugriff. Steueridentifizier- und Zustandsinformation kann nur durch einen Zentraleinheitsbefehl transferiert werden. Durch die vorgesehene Möglichkeit der Datenunterbrechungsanforderung können alle acht E/A-Kanäle gleichzeitig arbeiten.
Der E/A-Datensammelleitung 23a sind eine Anzahl von Bedienungsleitungen zugeordnet, die eine Kanaladreßleitung, eine Kanalanforderungsleitung sowie Eingabe/Ausgabe-Ausführungsleitung, eine Sttuerleitur.g, eine 2-Phasen-Taktleiiung, eine Einschaltleitung und eine Richtungsleitung enthalten. Die Da'snsammelleitung selbst besteht aus acht bidirektionalen Datenleitungen.
Für jeden durch die Zentraleinheit adressierten Kanal ist ein« einzige Kanaladreßleitung vorgesehen. Eine entsprechende Leitung wird potentialmäßig angehoben, wenn eine Verbindung mit einem besonderen Kanal angefordert wird. Wenn eine besondere Kanaladreßleitung angehoben worden ist, kann man die Datensammelleitung des betreffenden Kanals mit der Datensammelleitung 23a der Zentraleinheit verbinden.
Zwischen jedem Kanal und der Zentraleinheit ist eine Kanalanforderungsleitung vorgesehen. Eine besondere Kanalanforderungsleitung wird potentialmä3ig angehoben, wenn der zugeordnete Kanal eine Bedienung anfordert. Alle acht E/A-Kanalanforderungsleitungen sind nach Maßgabe einer ODER-Verknüpfung miteinander verbunden, um eine E/A-Unterbrechungsanforderung an die Maschinenzustandssteuereinheit 39 (F i g. 2) zu bilden. Anforderungen werden von der Zentraleinheit abgefragt, um die Kanalpriorität zu bestimmen. Die Anforderungsleitung eines Kanals wird von der E/A-Gerätesteuereinheit verwendet, um die Zentraleinheit zu informieren, daß ein Datenbefehl von der Zentraleinzeit erfüllt worden ist und Datentransfers angefordert sind, ein ausgewähltes Gerät nicht bereit ist oder ein nicht ausgewähltes Gerät in den Bereitzustand .gegangen ist. Die Funktionsweise der Anforderungsleitung in dieser Art gestattet es, daß die Zentraleinheit andere Verarbeitungsaufgaben wahrnehmen kann, nachdem sie einen Befehl an die E/A-Steuereinheit abgegeben hat und darauf wartet, bis die E/A-Steuereinheit aufgrund dieses Befehls eine Bedienung anfordert.
Die Eingabe/Ausgabe-Ausführungsleitung steuert alle Transfers von Information und Daten zwischen der Zentraleinheit und der E/A-Steuereinheit. Diese Leitung bleibt während der Ausführung irgendeines Informationstransfers in einem E/A-Kanal durch einen Mikrobefehl im angehobenen Zustand und wirkt als ein Freigabesignal für die Anlagentransfertaktgeber.
Die Steuerleitung der E/A-Schnittstelle der Zentraleinheit wird potentialmäßig angehoben, um dem adressierten Kanal anzuzeigen, daß Befehls- oder Steuerinformation durch den Kanal transferiert wird.
Die Einschaltleitung wird benutzt, um die Einschaltbedingungen für ein besonderes Gerät an jedem E/AKanal einzuleiten.
Die Richtungsleitung dient zum Anzeigen der laufenden Datentransferrichtung auf den bidirektionalen Datenleitungen. Wenn diese Richtung zur Zentraleinheit verläuft und die oben angegebene Leitung potentialmäßig angehoben ist, wird ein Primärzustandszeichen eines E/A-Geräts zu der Zentraleinzeit transferiert.
Fünf Arten von Operationen können über die E/ASchnittstelle durchgeführt werden. Diese Operationen werden wie folgt bezeichnet: Abfragezustand, Elektronikbefehl I. Elektronikbefehl II, PeripherzcitsteuerungsempfindJichkeitsbefehl und Datentransfer.
Der Abfragezustandsbcfehl wirkt in einer uagewohnliehen Weise auf die Anlage ein. dergestalt, daß eine Zustandsinformation. die in einem ein/igen Byte durch eine Peripherstcuereinheil angesammelt worden ist. während desselben Zyklus, in dem eine Anfrageaniorderungsaktion durch die Zentraleinheit durchgeführt wird,
to zu der Zentraleinheit oder dem Speicher transferiert werden kann. Ein Zustandszeichen in einer Periphersteuereinheit wird durch irgendeinen Zentraleinheitsmikrobefehl adressiert, woraufhin die obengenannte Steuerleitung potentialmäßig angehoben und die Richtungs- leitung potentialmäßig abgesenkt wird, und zwar über die Schnittstelle zwischen der Zentraleinheit und der Periphersteuereinheit.
Der Elektronikbefehl I ist von einer Art. bei der als Ergebnis kein unmittelbar folgender Datentransfer stattfindet. Diese erste Art von Elektronikbefehl verursacht eine Wirkung in der Periphersteuereinheit, wodurch die Steuereinheit für einen Datentransfer im nächsten Zyklus nicht vorbereitet wird. Beispiele dieser Art von Befehl sind Auswählen zum Lesen, Setzmodus und Verwerfen.
Der Elektronikbefehl Il ist ein Befehl, bei dem der nächste E/A-Transfer nach oder von dem befohlenen Periphergerät ein Zentraleinheitsregister umfassen muß, das durch diesen Befehl vorbereitet worden ist Diese Art von Befehl veranlaßt, daß ein Register in einer Periphersteuereinheit derart vorbereitet wird, daß mit dem nächsten E/A-Datentransfer zu der Steuereinheit entweder Daten in dieses Register geschrieben oder Daten von diesem Register für den Zentralein heitspeicher ausgelesen werden. Ein diesem Befehl fol gender Datentransfer kann nach einer Verzögerung von einigen Zyklen auftreten. Die Zentraleinheit stellt sicher, daß irgendwelche Datenanforderungen aufgrund des Befehls Auswählen zum Lesen oder Auswählen zum Schreiben gesperrt werden, bis die Datentransferbedingung durch einen Elektronikbefehl II ausgeführt ist.
Der Peripherzeitsteuerungsempfindlichkeitsbefehl kann auf zwei verschiedene Wege ausgeführt werden. Der eine Weg besteht darin, den Befehl in den Daten strom zu dem Periphergerät einzuschließen. In diesem Fall wird der Befehl von der Periphersteuereinheit wie Daten behandelt, und die Beendigung des Befehls wird der Zentraleinheit durch das Periphergerät dadurch angezeigt, daß die Anforderungsleitung potentialmäßig angehoben wird. Der zweite Weg besteht darin, die oben beschriebene Steuer- und Richtungsleitung zum Anzeigen eines Steuerzeichentransfers zu benutzen.
Der Datentransferbefehl umfaßt die Befehle Auswählen zum Lesen und Auswählen zum Schreiben, um den Informationstransfer zu steuern. Der Auswählen-zum-Lesen-Befehl leitet den Transfer von Daten ein, die aus dem Periphergerät gelesen werden. Der Auswählenzum-Schreiben-Befehl leitet den Transfer von Daten ein, die von der Zentraleinheit in ein Periphergerät ein geschrieben werden sollen. Die Steuereinheiten kann man als Blocktransfer- oder Einzelzeichentransfersteuereinheiten bezeichnen. Wenn nach der Auswahl ein Block- oder Zeichentransfer erforderlich ist, hebt die Periphersteuereinheit ihre zur Zentraleinheit führende Anforderungsleitung potentialmäßig an. Die Zentraleinheit spricht auf diese Anforderung dadurch an, daß sie die Steuerleitung potentialmäßig absenkt und die E/A-Ausführungsleitung potentiaimäßig anhebt, und zwar
für die Dauer des Transfers. Die der Datensammellei- ^ung 23a (Fig.2) zugeordnete Richtungsleitung wird beim Lesen von Daten von dem Periphergerät potentialmäßig abgesenkt und beim Einschreiben ve π Daten in das Periphergerät durch die Zentraleinheil potentialmäßig angehoben. Die Zentraleinheit zeigt das Ende eines Datentransfers dadurch an, daß sie einen Antwortcode an die E/A-Datensammelleitung legt, und zwar nach dem Transfer des letzten Zeichens in einem Biock. Die Periphersteufreinheit muß dann ihre Anforderungsieitung potentialmäßig absenken, bis sie zu einem weiteren Datentransfer fähig ist.
Die InformationstraRsfers unter der Steuerung des Peripherzeitsteuerungsempfindlichkeitsbefehls und des Datentransferbefehis unterliegen der Unterbrechungssteuerung in der Zentraleinheit. Die Unterbrechungssteuerung besteht aus der Maschinenzustandssteuereinheit 39 (F i g. 2) und hat das Vermögen, acht bidirektionale E/A-Kana!ap.forderungen aufzunehmen and deren Eingabe in die Zentraleinheit freizugeben, und zwar durch die Erzeugung eines Unterbrechungsfreigabeflaggensignals. Wenn das Unterbrechungsfreigabeflaggensignal als logische 1 gesetzt ist, läßt es zu, daß irgendeine Anforderung von einem Peripheriegerät die Steuerung der MikroZentraleinheit übernimmt, und zwar dadurch, daß es bewirkt, daß die Maschinenzustandssteuereinheit 39 (Fig.2) in den Eingriffszustand eintritt, wie es bereits in Verbindung mit den verschiedenartigen Maschinenzuständen beschrieben wurde. Während sich die Zentraleinheit im Eingriffszustand befindet, wird das Unterbrechungsfieigabefiaggensignal auf eine logische 0 zurückgesetzt, so daß keine weiteren Unterbrechungen erzeugt werden, solange die Zentraleinheit die erste Unterbrechung bedient. Nach Bedienung der Unterbrechung muß die Zentraleinheit das Unterbrechungsfreigabeflaggensignal auf eine logische 1 setzen, um erneut zu gestatten, daß Kanalanforderungen bedient werden. Dies wird dadurch erreicht, daß die Zentraleinheit einen Unterbrechungsrückkehrmikrobefehl programmiert, der das Unterbrechungsfreigabeflaggensignal setzt und die Mikroprogrammsteuerung an den Mikrobefehl abtritt, der demjenigen Mikrobefehl folgt, der beim Auftreten der Unterbrechung gerade ausgeführt worden ist. Das Unterbrechungsfreigabeflaggensignal kann man auch programmatisch durch Verwendung eines besonderen Subroutinesprungmikrobefehls auf eine logische 0 setzen.
Die Funktion des oben beschriebenen Eingnffsunterbrechungszustands dient zum Laden einer festen Adresse, nämlich der Startadresse der Peripherhandhabungsroutinen, in den Mikrospeicheradreßstapel und zur Kopiereintragung der normalen Übertragflagge in die Unterbrechungsübertragflagge. Bei einem Unterbrechungsrückkehrmikrobefehl wird der Unterbrejhungsübertrag in die Sprungübertragflagge kopiert.
Die Zentraleinheit, ihre Funktionseinheiten und die An. in der die Mikrobefehle in einer überlappten Weise abgerufen und ausgeführt werden, wurde bis jetzt beschrieben. Wie bereits erwähnt, wird eine kostenmäßig günstige Datenverarbeitungsanlage geschaffen, die sich Programmen anpassen kann, die in Programmsprachen einer höheren Ebene geschrieben sind. Darüberhinaus sind bei der Datenverarbeitungsanlage die Mikrobefehlsspcichereinrichtungen verhältnismäßig preisgünstig, so dall die Anlage auch auf dem Gebiet der elektronischen Buchungs- und Abrechungsmaschinen konkurrenzfähig ist. Solche Maschinen müssen insbesondere auf alphanumerische Datenbewegungen bzw. den Transfer und die Verarbeitung von alphanumerischen Daten abgestellt sein. Anhand der Flußdiagramme nach den Fig. 12 und 13 soll dargelegt werden, daß die Datenverarbeitungsanlage die obengenannten Bedingungen erfüllt. Das in der Fig. 12 gezeigte Flußdiagramm beschreibt die Operator- und Parameterabrufmechanismen zur Interpretation von bezüglich der Ebene höheren Sprachen oder S-Sprachen. Das Flußdiugramm nach der F i g. 13 beschreibt die alphanumerischen Bewegun-
ίο gen.
Die Interpretation von Programmen, die in eüier Sprache einer höheren Ebene geschrieben sind, durch entweder die besondere Zentraleinheit oder Verarbeitungseinheit, in der die Programme laufen sollen, oder durch Interpretation von Programmen, die für andere Verarbeitungseinheiten als diejenige Verarbeitungseinheit geschrieben sind, auf der das Programm laufen soll, wird durch variable Mikroprogrammierung sehr leicht bewerkstelligt. Die Ausführung von Programmen, die in einer Programmiersprache einer höheren Ebene geschrieben sind, wird durch nicht interpretierende Verarbeitungseinheiten nur dadurch bewerkstelligt ist, daß zunächst das Programm bezüglich der Ebene höheren Sprache in die besondere Maschinensprache der nicht interpretierenden Verarbeitungseinheit kompiliert wird und dann zu einer späteren Zeit das Maschinensprachprogramm auf dieser Verarbeitungseinheit abläuft. Die Interpretation unterscheidet sich von der Kompilation dadurch, daß die interpretierende Verarbeitung die Kompilationsfolge und die nachfolgende Ausführung ersetzt und daß das Programm direkt in der Sprache der höheren Ebene abläuft, und zwar durch Interpretation oder Implementation der Sprachbefehle der höheren Ebene durch Ketten von Mikrocodes.
Wie es aus der Fig. 12 hervorgeht, werden die Interpreteroperatoren und -parameter durch einen Vorgang abgerufen, der zunächst den Zugriff zum S-Sprachenprogrammzähler gestattet, der im Speicher gespeichert ist, und der den Inhalt davon verwendet, um den Interpreteroperator zur Zentraleinheit oder Verarbeitungseinheit abzurufen. Aus diesem Operator wird die operatorabhängige Gerätestartadresse generiert. Der S-Sprachenprogrammzähler wird auf den neuesten Stand gebracht. Der Inhalt des S-Sprachprogrammzählers wird dann benutzt, um vom Speicher die Parameter abzurufen, die vom S-Sprachprogramm benötigt werden. Der S-Sprachprogrammzähler wird erneut auf den neuesten Stand gebracht und in den Speicher zurückgestellt. Jeder Parameter wird dann getestet, um festzustellen, ob es sich um ein Literal handelt. Wenn dem so ist, geht die Routine auf eine vorgesehene spezielle Literalroutine über. Falls der Parameter kein Literal ist, wird er benutzt, um zu einer Tabelle im Speicher Zugriff /u erlangen, um einen Deskriptor abzurufen. Falls dieser Deskriptor eine Kennung oder eine Indexflagge enthält, geht die Routine auf eine spezielle Kennung/Index-Routine über. Falls eine solche Kennung oder Indexflagge nicht vorhanden ist, wird der Deskriptor benutzt, um die Kette von Mikrobefehlen zu adressieren, die benötigt wird, um die laufenden S-Sprachbefehle zu implementieren.
In der F i g. 13 ist dargestellt, wie die Deskriptoren für alphanumerische Bewegungen ausgewertet werden. Der Vorgang umfaßt das Setzen der Parameter, die zum
b5 Bezeichnen der Quellen· und Bestimmungsfelder erforderlich sind. Falls die Quellendaten nicht nach Art von acht Bits sind, handelt es sich um ein Ziffernquellenfeld. Falls die Quellendaten ein Vorzeichen haben, werden
21
sie Uni ein Zeichen dekrementiert, um das Vorzeichen zu entfernen. Die Daten werden entweder im ASCII-öder EBCDIC-Format, wie erforderlich, in das Bestimttiurigsfeld kopien. Falls die Quellenlänge nicht größer AIS dlli Bestimmungslänge ist, werden ASCII- oder EBCDIC-Leerstellen zu dem Rest des Bestimmungsfelds kopiert, und die Routine geht in eine neue Abrufroutine über.
Falls die Quellendaten von der 8-Bit-Art sind, jedoch ein Vorzeichen haben, werden die Daten dekrementiert, um das Vorzeichen zu entfernen. Die Daten werden dann in das Bestimmungsfeld kopiert, und zwar acht Bytes zu einer Zeit, falls in dem Feld mehr als acht Bytes zu bewegen sind. Das Quellenfeld wird dann überprüft, um festzustellen, ob es aufgebraucht ist. Falls dem nicht so ist, werden zusätzliche Bytes in das Bestimmungsfeld kopien. Wenn die Quellenlänge nicht größer als die Bestimmungslänge ist, werden ASCII- oder EBCDIC-Leet stellen in den Rest des Bestimmungsfeldes kopien, und die Routine geht in eine neue Abrufroutine über.
Hierzu 9 Blatt Zeichnungen
25
30
3D
40
45
50
55
60
65

Claims (4)

Patentansprüche:
1. Mikroprogrammierbare Datenverarbeitungsanlage mit einer Zentraleinheit, die eine Funktionseinheit, mehrere an die Funktionseinheit angeschlossene Register und einen Speicher aufweist, der einen einer höheren Programmiersprache zugeordneten Anweisungsspeicherabschnitt sowie einen Datenspeicherabschnitt und einen Mikrobefehlsspeicherabschnitt enthält, der von einem Mikrospeicher-Adreßregister oder auf eine Anweisung mit höherer Programmiersprache adressiert wird und einen entsprechenden Mikrobefehl oder eine Mikrobefehlsroutine abgibt und mit einem einen Steuerspeicher adressierenden Speicherregister verbunden ist d a durch gekennzeichnet,
daß die Mikrobefehle aus einer oder mehreren Silben bestimmter Bitzahl bestehen, die silbenweise nacheinander vom Mikrobefehlsspeicherabschnitt des Speichers (11) zum Speicherregister (24) übertragen werden, wobei die erste Mikrobefehlssilbe einen Steueroperator im Steuerspeicher (37) adressiert und nachfolgende Mikrobefehlssilben zusätzliche Daten oder Befehlsinformationen bereitstellen und die über einen Steuerpuffer (38) vom Steuerspeicher (37) abgegebenen Steueroperatoren die über Sammelleitungen (21, 22, 23) mit der Funktionseinheit (20) oder dem Speicherregister (24) zu verbindenden Register (25—35) ansteuern und die von der Funktionseinheit (20) auszuführenden arithmetischen und logischen Operationen angeben,
und daß eine mit dem Speicherregister (24), dem Steuerpuffer (38), der Funktionseinheit (20) und dem Adreßregister (35, 36) verbundene Zeitsteuereinrichtung (39, 40) sowohl eine Folge von Mikrobefehlssilben aus dem Mikrobefehlsspeicherabschnitt als auch Steueroperatoren vom Steuerpuffer (38) abruft,
derart, daß ein von einer Mikrobefehlssilbe bezeichneter Steueroperator gleichzeitig mit der nächsten vom Adreßregister (35, 36) adressierten Mikrobefehlssilbe aus dem Mikrobefeiilsspeicherabschnitt des Speichers (11) aufgerufen wird.
2. Mikroprogrammierbare Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß die Zeitsteuereinrichtung (39,40) aus einer eingangsseitig mit dem Speicherregister (24), dem Steuerpuffer (38), der Funktionseinheit (20) und einem Maschinenzustands-Hilfsregister (40) verbundenen Maschinenzustandssteuereinheit (39) sowie dem eingangsseitig mit dem Ausgang der Funktionseinheit (20) verbundenen Maschinenzustands-Hilfsregister (40) besteht,
daß die Maschinenzustandssteuereinheit (39) die Ausführungszeiten der einzelnen Mikrobefehlssilben in Abhängigkeit von der Art des laufenden Mikrobefehls und der Art des nächsten im Speicherregister (24) gespeicherten Mikrobefehls festlegt und das Adreßregister (35, 36) zum Abruf des nächsten Mikrobefehls inkrementiert und/oder dem Inhalt des Speicherregisters (24) für gültig erklärt.
3. Mikroprogrammierbare Datenverarbeitungsanlage nach den Ansprüchen 1 oder 2, dadurch gekennzeichnet, daß die Maschinenzustandssteuereinheit (39) einen 4-Bit-Zähler enthält, der vom jeweiligen Steueroperator gesetzt wird und die Anzahl der Takte für die Ausführung des zugehörigen Mikrobe
fehls steuert
4. Mikroprogrammierbare Datenverarbeitungsanlage nach den Ansprüchen 1 oder 2. dadurch gekennzeichnet daß das Maschir.enzustands-Hilfsregister (40) ajs einem Ein-Bit-Register besteht, das im Ladezustand von der Funktionseinheit (20) geladsn wird und die Beendigung einer laufenden Mikrobefehlsausführung steuert, wenn es durch einen 1 .ade-Hüfsmikrobefehl vorbereitet ist.
DE2424931A 1973-06-05 1974-05-22 Mikroprogrammierbare Datenverarbeitungsanlage Expired DE2424931C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2671773A GB1426749A (en) 1973-06-05 1973-06-05 Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets

Publications (2)

Publication Number Publication Date
DE2424931A1 DE2424931A1 (de) 1975-01-02
DE2424931C2 true DE2424931C2 (de) 1985-06-05

Family

ID=10248130

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2424931A Expired DE2424931C2 (de) 1973-06-05 1974-05-22 Mikroprogrammierbare Datenverarbeitungsanlage

Country Status (11)

Country Link
US (1) US3886523A (de)
JP (1) JPS5918737B2 (de)
BE (1) BE815431A (de)
CA (1) CA1010997A (de)
DD (1) DD116683A5 (de)
DE (1) DE2424931C2 (de)
FR (1) FR2232797B1 (de)
GB (1) GB1426749A (de)
IN (1) IN139847B (de)
IT (1) IT1021018B (de)
NL (1) NL7406297A (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1016854B (it) * 1974-08-21 1977-06-20 Olivetti & Co Spa Calcolatore elettronico di elabora zione dati
US3990054A (en) * 1974-11-05 1976-11-02 Honeywell Inc. Microprogram organization techniques
US3972029A (en) * 1974-12-24 1976-07-27 Honeywell Information Systems, Inc. Concurrent microprocessing control method and apparatus
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US3969724A (en) * 1975-04-04 1976-07-13 The Warner & Swasey Company Central processing unit for use in a microprocessor
US4027293A (en) * 1975-09-12 1977-05-31 Control Data Corporation Microcode program sequencer
US4156925A (en) * 1976-04-30 1979-05-29 International Business Machines Corporation Overlapped and interleaved control store with address modifiers
US4084233A (en) * 1976-05-25 1978-04-11 Honeywell, Inc. Microcomputer apparatus
US4371927A (en) * 1977-11-22 1983-02-01 Honeywell Information Systems Inc. Data processing system programmable pre-read capability
US4255785A (en) * 1978-09-25 1981-03-10 Motorola, Inc. Microprocessor having instruction fetch and execution overlap
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4325121A (en) * 1978-11-17 1982-04-13 Motorola, Inc. Two-level control store for microprogrammed data processor
US4307445A (en) * 1978-11-17 1981-12-22 Motorola, Inc. Microprogrammed control apparatus having a two-level control store for data processor
US4296470A (en) * 1979-06-21 1981-10-20 International Business Machines Corp. Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system
US4279016A (en) * 1979-06-21 1981-07-14 International Business Machines Corporation Instruction pre-fetch microprocessor interrupt system
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4493019A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Pipelined microprogrammed digital data processor employing microinstruction tasking
US4646236A (en) * 1981-04-17 1987-02-24 International Business Machines Corp. Pipelined control apparatus with multi-process address storage
US4517642A (en) * 1981-05-22 1985-05-14 Data General Corporation Digital computer system having unique means of referring to operands and ability to execute a plurality of internal languages
US4472772A (en) * 1981-08-03 1984-09-18 Burroughs Corporation High speed microinstruction execution apparatus
US4928223A (en) * 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
US4674063A (en) * 1982-10-18 1987-06-16 Nec Corporation Information processing apparatus having a sequence control function
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
US4701842A (en) * 1985-10-04 1987-10-20 International Business Machines Corporation Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction
US4794527A (en) * 1986-01-29 1988-12-27 Digital Equipment Corporation Microprogrammed data processing system using latch circuits to access different control stores with the same instruction at different times
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US4825356A (en) * 1987-03-27 1989-04-25 Tandem Computers Incorporated Microcoded microprocessor with shared ram
JPH01183736A (ja) * 1988-01-18 1989-07-21 Toshiba Corp 情報処理装置
JPH0682320B2 (ja) * 1988-06-08 1994-10-19 日本電気株式会社 データ処理装置
JPH02190930A (ja) * 1988-12-29 1990-07-26 Internatl Business Mach Corp <Ibm> ソフトウエア命令実行装置
US5481743A (en) * 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
US20010032307A1 (en) * 1998-12-30 2001-10-18 Joseph Rohlman Micro-instruction queue for a microprocessor instruction pipeline
US6885918B2 (en) * 2000-06-15 2005-04-26 Geo-X Systems, Ltd. Seismic monitoring and control method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3389376A (en) * 1965-07-06 1968-06-18 Burroughs Corp Micro-program operated multiple addressed memory
US4558411A (en) * 1969-05-19 1985-12-10 Burroughs Corp. Polymorphic programmable units employing plural levels of sub-instruction sets
GB1312504A (en) * 1970-05-20 1973-04-04 Ibm Control unit for serial data storage apparatus
US3753236A (en) * 1972-03-31 1973-08-14 Honeywell Inf Systems Microprogrammable peripheral controller
US3766532A (en) * 1972-04-28 1973-10-16 Nanodata Corp Data processing system having two levels of program control

Also Published As

Publication number Publication date
CA1010997A (en) 1977-05-24
JPS5918737B2 (ja) 1984-04-28
IN139847B (de) 1976-08-07
BE815431A (fr) 1974-09-16
FR2232797B1 (de) 1976-12-24
JPS5028956A (de) 1975-03-24
NL7406297A (de) 1974-12-09
FR2232797A1 (de) 1975-01-03
AU6868674A (en) 1975-11-13
US3886523A (en) 1975-05-27
DD116683A5 (de) 1975-12-05
GB1426749A (en) 1976-03-03
DE2424931A1 (de) 1975-01-02
IT1021018B (it) 1978-01-30

Similar Documents

Publication Publication Date Title
DE2424931C2 (de) Mikroprogrammierbare Datenverarbeitungsanlage
DE2424810C2 (de) Mikroprogrammierbare Datenverarbeitungsanlage
DE1913059C2 (de) Programmunterbrechungseinrichtung für eine Datenverarbeitungsanlage
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2846495C2 (de) Zentraleinheit
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2543522C2 (de) Mikroprogrammierbare Datenverarbeitungseinrichtung
DE2902132C2 (de) Anordnung zur Datenübertragung über mehrere Kanäle mit überlappender Steuerung
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE2719295A1 (de) Programmsteuerung
DE2714805A1 (de) Datenverarbeitungssystem
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2903349A1 (de) Datenverarbeitungseinrichtung
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine
DE1285220B (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE4216905C2 (de) Superskalarprozessor
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2429067B2 (de) Speicherschaltung
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE1806535B2 (de) Seriell arbeitende digitale rechenanlage
DE2336676A1 (de) Einrichtung zur modifizierung von mikroprogrammbefehlen

Legal Events

Date Code Title Description
OD Request for examination
8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee