DE2424810A1 - Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen - Google Patents

Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen

Info

Publication number
DE2424810A1
DE2424810A1 DE2424810A DE2424810A DE2424810A1 DE 2424810 A1 DE2424810 A1 DE 2424810A1 DE 2424810 A DE2424810 A DE 2424810A DE 2424810 A DE2424810 A DE 2424810A DE 2424810 A1 DE2424810 A1 DE 2424810A1
Authority
DE
Germany
Prior art keywords
microinstruction
memory
data processing
data
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.)
Granted
Application number
DE2424810A
Other languages
English (en)
Other versions
DE2424810C2 (de
Inventor
Alisdair Cullen Ferguson
Alastair George Macpherson
John Mcgregor
Robert Archibald Morrison
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 DE2424810A1 publication Critical patent/DE2424810A1/de
Application granted granted Critical
Publication of DE2424810C2 publication Critical patent/DE2424810C2/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/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
    • 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/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

slm Keicael
6 trui--:----;■'■-■ Ο Α·
7804
BURROUGHS CORPORATION, Detroit, Michigan, VStA
Datenverarbeitungsanlage, insbesondere kleine Mikroprogramm-Datenverarbeitungsanlage mit Mebrsilbenmikrobefehlen
Die Erfindung bezieht sich auf eine Datenverarbeitungsanlage, insbesondere auf eine kleine Datenverarbeitungseinheit für kommerzielle Anwendungen und Informationsübertragungszwecke. Die Erfindung befaßt sich insbesondere mit einer kleinen Mikroprogramm-Verarbeitungseinheit, die in der Lage ist, Programmiersprachen, die in einer höheren Ebene geschrieben sind, zu implementieren bzw· auszuführen. - .
Viele kommerzielle Unternehmen haben im allgemeinen keinen so großen Anfall an zu verarbeitenden Daten, daß sich für diese Unternehmen eine normale Allzweck-Datenverarbeitungsanlage lohnen würde. Die Bedürfnisse derartiger Unternehmen können im allgemeinen durch Buchungs- und Abrechnungsmaschinen befriedigt werden, die als kleine Spezial-
- 409882/0758
zweckrechner betrachtet werden. Die heute zur Verfügung stehenden kleinen Spezialzweckrechner sind jedoch im Hinblick auf ihre Leistungsfähigkeit zu stark eingeschränkt, wenn es beispielsweise darum geht, Programme zu verarbeiten, die in einer Programmiersprache einer höheren Ebene geschrieben sind.
Für kleine und mittlere Unternehmen, deren Datenanfall für eine eigene Datenverarbeitungsanlage zu gering ist, gibt es die Möglichkeit, eine lokale Datenendstation zu benutzen, die über Fernanschlüsse an eine entfernt.aufgestellte datenverarbeitende Großanlage angeschlossen ist, und zwar im Zeitwechselbetrieb. In vielen Fällen ergibt sich das Datenverarbeitungsbedürfnis eines besonderen Unternehmens oder Betriebes aus einem Gemisch von Abrechnungs- und Buchungsaufgaben, aber auch aus Vorgängen, die eine größere Rechnerleistungsfähigkeit erfordern. Um diesem Umstand zu genügen, gibt es Datenendstationsverarbeitungseinheiten, die nicht nur den Zeitwechselbetrieb mit einem Großrechner herstellen und steuern, sondern die darüberhinaus in der Lage sind, besondere Verarbeitungsroutinen selbst auszuführen. Bei den Datenendstationsverarbeitungseinheiten und auch bei kleinen kommerziellen Rechnern oder Verarbeitungseinheiten besteht die HauptSchwierigkeit in der Schaffung einer kostengünstigen Anlage, da eine solche Anlage auch für kleinere Betriebe rentabel sein soll. Die hotten Kosten haben bisher die kleinen und mittleren Unternehmen abgeschreckt, sich eine Allzweck-Datenverarbeitungsanlage aufzustellen. Darüberhinaus würde ein Wechsel von einem Spezialzweckrechner zu einer Allzweck-Datenverarbeitungsanlage bedeuten, daß die bisher vom Benutzer verwendeten Programme den flexibleren Sprachen der größeren Anlage angepaßt werden müßten.
409 88 2/0758
Bis heute besteht ein Mangel an Programmkompatibilität bis zu einem gewissen Maß zwischen den Systemen desselben Herstellers, jedoch in einem wesentlich höheren Maß zwischen den Systemen von verschiedenen Herstellern von Datenverarbeitungsanlagen. Dies ist darauf zurückzuführen, daß die verschiedenen Hersteller unterschiedliche Befehlsformate verwenden, die sich in der Länge unterscheiden, Darüberhinaus werden unterschiedliche Feldgrößen in dem Befehlsformat benutzt. Um die Schwierigkeiten zu überwinden, die mit diesen unterschiedlichen Maschinensprachen verbunden sind, hat man Programmiersprachen entwickelt, die auf verschieden hohen Ebenen liegen. Zu diesen Programmiersprachen zählen beispielsweise FORTRAN, COBOL und ALGOL. Programme, die in derartigen Programmiersprachen geschrieben sind, können in verschiedenen Rechnersystemen codiert und benutzt werden. Allerdings müssen diese Programme zunächst in die Maschinensprache des besonderen Systems übersetzt werden. Diese Übersetzungen werden von Systemprogrammen vorgenommen, die manchmal Kompilierer genannt werden. Falls ein Kompilierer für eine besondere Programmiersprache nicht vorhanden ist, ist es erforderlich, das Programm neu zu schreiben, und zwar in einer Sprache, für die das System einen Kompilierer hat.
Ein besonderes Verfahren, das man benutzt, um eine Datenverarbeitungsanlage Programmen anzupassen, die in verschiedenen Sprachen höherer Ebenen geschrieben sind, ist die Mikroprogrammierung. Die Mikroprogrammierung hat man einst als ein Werkzeug des Konstruktionsingenieurs betrachtet, da durch die Mikroprogrammierung verdrahtete Maschinenbefehl sdecodierer durch Nachschlagtabellenspeicher ersetzt werden können, die verschiedenartige Vorräte an
409882/07
Steuersignalen enthalten, die erforderlich sind, um für einen durch einen Maschinensprachbefehl spezifizierten Datentransfer die verschiedenartigen Gatter und Register vorzubereiten bzw. anzusteuern. Auf diese Weise wird der Maschinensprachbefehl dadurch ausgeführt, daß nacheinander mehrere Speicherplätze in einem Nachschlagtabellenspeicher durchgemustert werden. Bei komplizierteren Datenverarbeitungseinheiten ist die Anzahl der in Betracht kommenden Gatter und Register groß. Dementsprechend ist auch die Anzahl der zu speichernden Steuersignale groß. Dies bedingt einen großen und kostspieligen Nachschlagtabellenspeicher. Um die Größe des Nachschlagtabellenspeichers zu vermindern, werden die betreffenden Vorräte an Steuersignalen binär codiert, so daß aus ihnen die allgemein bekannten Mikrooperatoren oder Mikrobefehle werden, die dann von einem verdrahteten Decodierer decodiert werden, der nicht so aufwendig ist wie ein verdrahteter Decodierer für Maschinensprachbefehle .
Die breite Anwendungsmöglichkeit von verhältnismäßig großen integrierten Schaltungsanordnungen hat es in der Praxis möglich gemacht, den Mikrobefehlsspeicher als Lese/Schreib-Speicher auszubilden. Dadurch ist es wiederum möglich, daß die in diesem Speicher gespeicherten Vorräte an Mikrobefehlen dynamisch verändert werden können, um dadurch die Verarbeitungseinheit von Einschränkungen freizuhalten, die ihre Funktion und Leistungsfähigkeit betreffen würde. Durch eine derartige variable Mikroprogrammierung ist eine Datenverarbeitungseinheit nicht auf eine besondere Maschinensprache oder Objektbefehlsformat beschränkt. Da kein Objektbefehlsformat bevorzugt wird, kann man das Format jetzt in Übereinstimmung mit irgendwelchen Programmanforderungen auswählen, wobei es sich sogar um das
403882/0758
Format von irgendeiner besonderen, bezüglich der Ebene höheren Sprache handeln kann. Selbst bei Verwendung von integrierten Großschaltungen übersteigen jedoch die Größe und damit auch die Kosten eines variablen Mikroprogramm-Speichers bei weitem den Betrag, der erforderlich wäre, um eine derartige Datenverarbeitungseinheit gegenüber den heute üblichen elektronischen Abrechnungs- und Buchungsmaschinen konkurrenzfähig zu machen.
Der Erfindung liegt die Aufgabe zugrunde, eine preisgünstige Datenverarbeitungseinheit zu schaffen, die trotz ihres niedrigen Preises in der Lage ist, sich Programmen anzupassen, die in bezug auf die Sprachebene in einer höheren Programmiersprache geschrieben sind. Insbesondere soll eine Mikroprogramm-Datenverarbeitungseinheit geschaffen werden, die nur einen verhältnismäßig einfachen und preisgünstigen Mikröbefehlsspeicher benötigt. Darüberhinaus soll eine Mikrobefehlscodeverdichtung möglich sein.
Um diese Aufgabe zu lösen werden nach der Erfindung eine Datenverarbeitungsanlage und ein durch die Anlage verkörpertes Verfahren vorgeschlagen, die von einer Mikroprogrammdatenverarbeitungseinheit Gebrauch machen, die von Mikrobefehlen gesteuert wird, die aus einer unterschiedlichen Anzahl von Silben bestehen, was von.den erforderten Funktions- und Literalwerten abhängt. Die Datenverarbeitungseinheit macht von zwei Ebenen oder Stufen von Subbefehlsvorräten Gebrauch, durch die Makro- oder Objektbefehle durch Ketten von,Mikrobefehlen implementiert oder ausgeführt werden, die dann wiederum selbst durch Steuerbefehle implementiert oder ausgeführt werden. Jede Stufe oder jede Ebene von Befehlsvorräten kann in einem separaten Abschnitt des Speichers oder gar in getrennten Speichern gespeichert werden, wobei die Steuerbefehle in einem Festwertspeicher gespeichert sind, der sich in der Verarbeitungsoder Zentraleinheit befindet.
409882/0758
Die verschiedenen Arten von Mikrobefehlssilben sind in einem MikroSpeicher gespeichert, wobei die betreffen Silben nacheinander aus diesem Speicher ausgewählt und abgerufen werden, um die verschiedenen benötigten Mikrobefehle zu bilden. Die Selektion bzw. Auswahl von besonderen Silben der verschiedenen Arten von Mikrobefehls silben dient zum Spezifizieren der besonderen Kombination der auszuführenden Funktion, der benutzten Quellen- und Bestimmungsregister, der besonderen in der Verarbeitungseinheit zum Datentransfer benutzten Datensammelleitungen und auch der Zeitsteuerung der Mikrobefehlsausführung.
Nach der Erfindung wird somit eine mikroprogammierte Datenverarbeitungsanlage geschaffen, bei der die Mikrobefehle aus unterschiedlichen Anzahlen von Mikrobefehlssilben gebildet werden, wobei die verschiedenen Arten von Silben in einem Mikrobefehls speicher gespeichert sind und von dort aufeinanderfolgend abgerufen werden, um den besonderen Mikrobefehl zu bilden. Eine Silbe von jedem Mikrobefehl wird ausgewählt, um die besondere Kombination der auszuführenden Funktion, der benutzten Quellen- und Bestimmungsregister, der besonderen zum Datentransfer benutzten Sammelleitungen und der Zeitsteuerung der Mikrobefehlsausführung anzugeben, d.h. die Anzahl der Zeichen, Ziffern oder Bits, die während der Mikrobefehlsausführung verarbeitet werden. Wenn der besondere Mikrobefehl aus mehr als einer Silbe gebildet ist, stellen die übrigen Silben die Werte oder Literale dar, die als Adreßparameter und auch für logische Operationen verwendet werden.
Die Erfindung ist somit insbesondere in einer Mikroprogramm-Datenverarbeitungsanlage zu sehen, die zwei Ebenen von Sübbefehlsvorräten benutzt. Die erste Ebene von Subbefehlen oder Mikrobefehlen wird durch eine zweite Ebene von Steuerbefehlen ausgeführt, die in einem Festwertspeicher in der Verarbeitungseinheit gespeichert sein können. Die betreffenden Mikrobefehle bestehen aus unterschiedlichen Anzahlen von Silben, und zwar in Abhängigkeit von der Funk-
409882/0758
tion der besonderen Mikrobefehle. Die verschiedenen Arten von Mikrobefehlssilben sind in einem Mikrobefehlsspeicher gespeichert, aus dem sie in Übereinstimmung mit den Anforderungen eines besonderen Makrobefehls oder Objektbefehls aufeinanderfolgend abgerufen werden. Auf diese Weise kann man durch Auswählen von mehreren verschiedenen Silben aus dem Mikrobefehlsspeicher eine Vielfalt von Mikrobefehlen erzeugen. Eine davon verschiedene Mikrobefehlssilbe ist vorgesehen, um jede Kombination aus der auszuführenden Funktion und den mit besonderen Sammelleitungen in der Verarbeitungseinheit zu benutzenden Quellen- und Bestimmungsregistern zu spezifizieren.
Ein bevorzugtes Ausführungsbeispiel der Erfindung wird anhand von Zeichnungen beschrieben. Es zeigen:
Fig. 1 ein schematisches Blockschaltbild einer Datenverarbeitungsanlage, auf die die Erfindung angewendet werden kann,
Fig. 2 ein schematisches Schaltbild einer nach der Erfindung ausgebildeten Verarbeitungs- oder Zentraleinheit,
. Fig. 3 eine Darstellung des bei der Erfindung benutzten typischen S-Befehlsformats,
Fig. 4 eine Darstellung des bei der Erfindung benutzten typischen Datendeskriptorformats,
Fig. 5A, 5B und 5C Darstellungen des Formats von verschiedenen Arten von Mikrobefehlen,
Fig. 6 eine Darstellung des Formats eines Steueroperators oder eines Steuerbefehls,
Fig. 7 ein schematisches Schaltbild von Dateriselektionsnetzwerken für verschiedene Datenregister nach der Erfindung,
Fig. 8 ein Zustandsdiagramm, das die Beziehung zwischen den. verschiedenen Maschinenzuständen der erfindungsgemäßen Anlage darstellt,
Fig. 9 ein Takt- oder Zeitablaufdiagramm einer Mikrobefehlsabrufoperation,
Fig. 10 ein Flußdiagramm zur Erläuterung von Operator- und Parameterabruf mechanismen zur Durchführung der Interpretation nach der Erfindung und
Fig. 11 ein Flußdiagramm zur Erläuterung von alphanumerischen Datenbewegungen bei einer nach der Erfindung ausgebildeten Anlage.
409882/0758
Wie es bereits aus der Beschreibungseinleitung hervorgeht, ist die Erfindung auf die Schaffung einer kostengünstigen Datenverarbeitungsanlage abgestellt, die die Anforderungen erfüllen soll, die zum einen an elektronische Abrechnungs- und Buchungsmaschinen und zum anderen an kleine Allzweck-Datenverarbeitungsmaschinen gestellt werden. Insbesondere ist aber die nach der Erfindung geschaffene Anlage derart ausgelegt, daß sie Programmen angepaßt ist, die in Programmiersprachen einer höheren Ebene geschrieben sind, beispielsweise in COBOL· Zu diesem Zweck handelt es sich bei der erfindungsgemäßen Anlage um eine Mikroprogrammanlage, bei der die bezüglich der Ebene höheren Programmiersprachbefehle durch Ketten von Mikrobefehlen interpretiert werden. Um die Kosten für den Mikrobefehlsdecodierer gering zu halten und um bei der Mikrobefehlsausführung eine größere Flexibilität vorzusehen, werden die betreffenden Mikrobefehle dann wieder durch Steuerbefehle ausgeführt, die Vorräte von Signalen enthalten, wie sie zum Vorbereiten der verschiedenartigen Gatter und Register zum Datentransfer erforderlich sind. Um die Kosten der Anlage weiter zu vermindern, ist die erfindungsgemäße Anlage geeignet, sich Mikrobefehlen einer variablen Anzahl von Mikrobefehlsgrundsilben anzupassen, die aufeinanderfolgend transferiert werden können, so daß es nicht erforderlich ist, in dem Verarbeiter oder in der Zentraleinheit und in der Zentraleinheit-Speicher-Schnittstelle große Datenkanalbreiten vorzusehen.
409882/0758
Die erfindungsgemäße Anlage wird somit von Mikrobefehlen gesteuert, die wiederum von Steuerbefehlen ausgeführt werden. Das bedeutet, daß alle Datenbewegungen unter der Steuerung von Steuerbefehlen ausgeführt werden, die von Mikrobefehlen aufgerufen worden sind.
Da die Mikrobefehle variabler Länge aus Silben einschließlich eines Operationscode und verschiedener Literalwerte bestehen,ist die erfindungsgemäße Anlage in der Lage, die betreffenden Silben zu speichern, wobei die gewünschten Mikrobefehle dadurch gebildet werden, daß die geeigneten Silben nacheinander aus dem Mikroprogrammspeicher geholt werden. Durch dieses Verfahren wird eine Codeverdichtung oder Codekompaktion in dem MikroSpeicher erreicht und eine Beseitung der Redundanz erzielt. Dem Mikroprogramm!erer ist es gestattet, die betreffenden Mikrooperationscodesilben auszuwählen, die zum Bezeichnen der Quellen- und Bestimmungsregister als auch zum Bezeichnen der auszuführenden Funktion erforderlich sind.
40988 2/0758
Eine Anlage, auf die die Erfindung angewendet werden kann, ist in der Fig. 1 dargestellt. Dabei kann es sich um eine kleine, aber trotzdem programmierbare Allzweck-Datenverarbeitungsanlage handeln. ¥ie es aus der Fig. 1 hervorgeht, enthält die Anlage eine Verarbeitungs- oder Zentraleinheit 10, die mit einem Speicher 11 und einem Überwachungsdrucker 12 sowie mit mehreren Peripheriegeräten über (Je mit einem Peripheriegerät gemeinsame Schnittstelle in Verbindung treten kann. Die Peripheriegeräte umfassen einen Zeilendrucker 13, einen Plattenspeicher 14, eine Kartenabfühl- und Stanzeinheit und selbst eine Datenübertragungssteuereinheit 16.
Die für die erfindungsgemäße Anlage verwendete Zentraleinheit ist in der Fig. 2 im einzelnen dargestellt. Die Zentraleinheit enthält eine Funktionseinheit 20, die über eine A-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 eine Breite für acht Bits. Dies ist in der beschriebenen Anlage die Grundbreite für alle Silben und Datensegmente· Die A-Sammelleitung 21 und die B-Sammelleitung 22 erhalten Informationssegmente von den betreffenden Registern und über ein Ü-Pufferregister 24 vom Speicher. Das U-Pufferregister 24 dient ferner zur Zufuhr von 8-Bit-Adressen zu einem Steuerspeicher 37· Die F-Sammelleitung 23 ist an eine E/A-Schnittstelle 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 Hauptspei-
409882/0758
eher 11 gespeichert sind. Neben den S-Befehlen werden auch andere Daten im Speicher 11 gespeichert. Zu diesem Zweck können die betreffenden Befehle und Daten in verschiedenen Abschnitten eines einzigen Lese/Schreib-Speichers gespeichert sein. Bei einer bevorzugten Ausführungsform der Erfindung 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 permanenten Speicherung von Mikrobefehlen, um die Möglichkeit der Ureingabe vorzusehen.
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 Fig. 3 dargestellt. Das Format kann ein 8-Bit-0peratorfeld, ein 8-Bit-Operandenfeld 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 werden kann, um eine Adresse für Daten im Speicher zu erzeugen. Das Format eines derartigen Deskriptors ist in der Fig. 4 dargestellt und kann enthalten ein 16-Bit-Feld 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 im ASCII- oder EBCDIC-Code vorliegen, ein 1-Bit-Feld zur
409882/0758
Angabe des Vorzeichens für numerische 4-Bit-Daten und ein 11-Bit-Feld zur Angabe der Länge des zugegriffenen Datenblocks·
Wie bereits erwähnt, werden die S-Befehle durch Ketten von Mikrobefehlen ausgeführt. Bei dem erfindungsgemäßen Ausführungsbeispiel können drei Arten von Mikrobefehlen vorliegen, deren Formate in den Figuren 5A, 5B und 5C dargestellt sind. Die Fig. 5A zeigt eine Mikrobefehlsart I, bei der es sich um ein einziges Zeichen handelt, das auf einer Grundlage von eins zu eins in Steueroperatoren "abgebildet" wird. Dieses Einzelzeichen ist eine Adresse für den Steuerspeicher der Zentraleinheit, um den betreffenden Steuerbefehl auszuwählen, der die Funktionen beschreibt, die den Zentraleinheit-Speicher-, Zentraleinheit-E/A-GerätT und Zwischenzentraleinheit-Transfers zugeordnet sind. Ein typischer Mikrobefehl dieser Art ist beispielsweise COPY MAR1 —»· MAR2 (Kopiereintragung vom Speicheradressenregister 1 zum Speicheradressenregister 2).
In der Fig. 5B ist eine Mikrobefehlsart II gezeigt, bei der es sich- um einen Mehrzeichenmikrobefehl mit einem Literalwert "schritthaltend1* (in-line) im Mikrοspeicher 11 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 schritthaltenden Literais durch die Ausführungszählung beschrieben ist.
In der Fig. 5C ist eine Mikrobefehlsart III gezeigt, bei der es sich um einen 3-Zeichen-Mikrobefehl handelt, der für Sprünge und Subroutine Sprünge verwendet wird. Die ersten acht Bits beschreiben den Steueroperator,
409882/0758
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, um den Ort eines entsprechenden Steuerbefehls anzugeben» Das Format eines solchen Steuerbefehls wird im Zusammenhang mit der Fig. 6 beschrieben. Wie es aus dieser Figur hervorgeht, enthält der Steuerbefehl eine Anzahl von Feldern. Das A-Decodierfeld ist ein 5-Bit-Feld, das die Datenwegeingänge zur A-Sammelleitung (21 in Fig. 2) beschreibt. Das B-Decodierfeld ist ein 5-Bit-Feld, das die Datenwegeingänge zu der B-Sammelleitung (22 in Fig. 2) beschreibt. Das F-Decodierfeld ist ein 5-Bit-Feld, das den Datenwegausgang von der F-Sammelleitung (23 in Fig. 2) beschreibt. Das implizierte Speicheradreßfeld des Formats nach der Fig. 6 ist ein 2-Bit-FeId, um zur Speicheradressierung ein Adreßregister auszuwählen. Diese Auswahl kann ein MAR1-Register 25 in einem Inkrement- oder Dekrement-Modus oder ein MAR2-Register 26 ebenfalls in einem Inkrement- oder Dekrement-Modus betreffen (alle Register und Sammelleitungen sind in der Fig. 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 Operationen in der Funktionseinheit 20 (Fig. 2) auszuwählen. Das Literalfeld ist ein 8-Bit-Feld, um die Extraktion von Literalwerten aus den Steuerbefehlen zu gestatten.
409882/0755
Der Mikrobefehl der Art I (ein Zeichen) kann einen von 256 eindeutigen Steueroperatoren bezeichnen. Die Mikrobefehle der Art II und der Art III gestatten es, daß durch schritthaltende Literale in den Mikrobefehlen Extensions- oder Erweiterungsparameter vorgesehen sein können. Das Vorhandensein von dualen zeitsteuernden MaschinenzustandsSteuereinheiten gestattet es, das TMS-Hilfsregister (40 in Fig. 2) zu verwenden, um einen Mikrobefehlsvorrat durch zugeordnete Zahlzeiten zu erweitern, die durch einen vorangegangenen Mikrobefehl mit existierenden Steueroperatoren geladen worden sind.
Wie bereits beschrieben, wird die erfindungsgemäße Anlage 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 Silben aufgebaut sein können, die aufeinanderfolgend abgerufen oder geholt werden müssen, ändert sich die Zeit, die zum Abrufen des variable Silben aufweisenden Mikrobefehls selbst erforderlich ist, wie es in dem Zählfeld des Steuerbefehls angegeben ist. Die Maschinenzustandssteuereinheit 39 in der Fig. 2 kann einen von acht verschiedenen Maschinen-
zustä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,
409882/0758
handelt es sich bei dem Hilfsmaschinenzustandszähler 40 um einen 8-Bit-Zähler, um bis zu 256 derartiger Datentransfers anzugeben. Auf diese Weise können bis zu 256 Oatensegmente 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.
Es folgt eine ausführlichere. Beschreibung der erfindungsgemäßen Anlage. Wie bereits erwähnt, sieht die erfindungsgemäße Anlage eine flexiblere Wahl von Sprachstrukturen und Eingabe-Ausgabe-Mechanismen vor. Trotzdem ist die Anlage von festverdrahteten Schaltungen hinreichend frei, so daß sie kostenmäßig in Konkurrenz mit kleinen Spezialzweck-. und Allgemeinzweckrechnern treten kann.
Wie bereits erwähnt, zeigt die Fig. 2 ein Schaltbild einer nach der Erfindung ausgebildeten Verarbeitungsoder Zentraleinheit. Die dargestellten Speicheradreßregister 25 und 26 (MAR1 und MAR2) sind identische 16-Bit-Register, die in einem von zwei Modi arbeiten: Transferieren und Zählen. Im Transfermodus bildet ^jedes Register zwei 8-Bit-3yteregister (25a, 25b bzw. 26a, 26b), die beide in der Lage sind, von der Funktionseinheit 20 übe*
409 8 82/0758
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 als Aligemeinzweckregister 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 dekrementieren* Die Inkrementeinrichtung (25c und 26c in Fig. 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 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. Ia Bytemodus können beide Ziffern im BO-Register 27 von der Funktionseinheit 20 entladen werden.
Das B1 -Register 28 ist ein Ein-Zeichen-Register mit Bitmaski ereigenschaf ten, 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 B1-Register in die Funktionseinheit 20 entladen werden und von der Funktionseinheit 20 geladen werden. Das B2-Register 29a und das B3-Register 29b sind Ein-Zeichen-
4Q9882/0758
2424310
Allzweckregister, die verkettet werden können, um 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 ^edes 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ähler 40.
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, 33b, 33c und 33d und Y-Register 31a, 31b, 31c und 31d können in einer entsprechenden Weise zusammengekettet werden, um zwei 4-Byte-Register oder ein 8-Byte- oder 16-Ziffern-Register (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 Zonenabstreif ung und Anhängung verwenden.
40 9 88 2/0758
Mikrospeicheradreß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 dieöen Registern empfangen. Diese Register bilden einen nlast-in, first-out"-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 Inkreaentieren aufweist und der direkt von den Registern 35a und 35b geladen werden kann. Eine Mikrospeicheradreß-Sammelleitung 45 bildet eine 16-Bit-Leitung, um Adressen von Stapelregister 36c und auch vom Zähler 36d zu empfangen. Der Zähler 36d ist an eine Inkrementeinheit 36e angeschlossen, um eine Inkrementfähigkeit vorzusehen.
Das TMS-HiIfsregister 40 ist ein Ein-Zeichen-Register mit zwei Betriebsmodi: Laden und Dekrementieren. 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-HiIfsregister 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 tabelarisch zusammengestellte Funktionalfähigkeit haben. Die Funktionseinheitdatenwege haben eine Breite von acht Bits, und zwar in
409882/0758
Übereinstimmung mit der Datenwegbreite der Eingabe- und Ausgabesammelleitungen (A-Sammelleitung 21, B-Sammelleitung 22 und F-Sammelleitung 23). In der folgenden
Tabelle ist das resultierende Ausgangssignal an der
F-Sammelleitung als Funktion der beiden Eingangssignale an der A-Sammelleitung und der B-Sammelleitung zusammengestellt. Weitere Funktionalfähigkeiten, beispielsweise Dezimalarithmetik (BCD), Zehnerkomplement und Zonenanhängung sind durch Datenwegselektion und durch die Verwendung von Mikrobefehlsliteralen vorgesehen.
Steuercode
11111
00001
10111
11101
01101
10010
00000
11110
01100
00100
00111
00011
00101
01001
01011
01111
10001
1Ö011
10101
11001
11011
00010
11010
00110
01000
01010
01110
10000
10100
10110
11000
11100
Funktion
transferiere ; A A -B » 8 1
invertiere A ÖL+B
logisches UND A AGB
logisches ODER ; PLUS B A
exklusives ODER binär A
addiere binär
inkrementiere A MINUS B MINUS A-
A MINUS 1 (A + S)
Null
A + B A-
A-B
A-B
B A
A-B
S + B
Αφ Β
transferiere B
A + B
A + B
(A + B) PLUS B
MINUS 1 '
A PLUS A-B
(A + B) PLUS
A-B MINUS 1
A PLUS A-B
(A + B) PLUS
A-B MINUS 1
A PLUS A
(A + B) PLUS
409882/0758
Der beschriebene Teil der Zentraleinheit enthält somit die Registerorganisation land die Funktionseinheit. Es folgt jetzt eine genaue Beschreibung der Mikrobefehlsdecodierorganisation, die ein U-Pufferregister 24 und einen Steuerspeicher 37 sowie die MaschinenzustandsSteuereinheit 39 enthält, wie es in der Fig· 2 dargestellt ist.
Das U-Piiff erregist er 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 Mikrobefehlsabruf phase und Ausführungsphase zu erzeugen* Beim Zugriff zu dem Steuerspeicher 37 wird ein Steuerbefehl an das Steuerpufferregister 38 geliefert. Wie bereits allgemein erläutert, steuert der Inhalt des Steuerpuffers 38, das bedeutet 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 verwendet, 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
409882/0758
des im U-Pufferregister 24 enthaltenen nächsten Mikrobefehls, falls der Inhalt dieses Registers als gültig erklärt worden ist, d.h., falls eine Mikrooperatorsilbe anwesend ist. Der Maschinenzustand während der nächsten Zählzeit der Zentraleinheit 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 U-Pufferregisters 24 für gültig erklärt werden soll. Wie bereits erwähnt, enthält die Maschinenzustandssteuereinheit39 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-HiIf sregister 40 durch den vorangegangenen Mikrobefehl freigegeben worden ist.
Das TMS-HiIfsregister 40 wird benutzt, um unter der Steuerung eines einzigen Mikrobefehls den Transfer einer Anzahl von Datensegmenten (bis zu 256 Bytes) zu steuern. Solche Multisegmenttransfers können nach oder von dem in der Fig. 1 dargestellten Hauptspeicher 11 oder nach oder von den E/A-Peripheriegeräten erfolgen. Ferner ist ein bedingter Ende-Mikrobefehl vorgesehen, unter dem die transferierte Datenfolge zum Vergleich mit 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 33 transferiert.
409882/0758
Die Art, in der ein Steuerbefehl die einzelnen Quellen- und Befehlsregister als auch die auszuführende Funktion auswählt, wird jetzt anhand der Fig. 7 "beschrieben, bei der es sich um ein Blockschaltbild der A-, B- und F-SeIektionsnetzwerke handelt. Wie bereits erwähnt, enthält der Steuerbefehl drei 5-Bit-Felderf um das mit der A-Sammelleitung 21 zu verbindende Register, das mit der B-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 (Fig, Z) empfangen und zu den betreffenden, in der Fig. 7 dargestellten Selektionsnetzwerken transferiert. Das A-Decodierfeld wird zu dem A-Selektionsnetzwerk 46 transferiert, um das besonders bezeichnete Register mit der A-Sammelleitung 21 zu verbinden. Das B-Decodierfeld wird zu dem B-Selektionsnetzwerk 47 transferiert, um das besondere bezeichnete Register mit der B-Sammelleitung 22 zu verbinden. In entsprechender Weise wird das F-Steuerfeld zu dem F-Selektionsnetzwerk 48 transferiert, um anzugeben, welches Register mit der F-Sammelleitung 23 verbunden werden soll. Das Funktionsselektionsdecodierfeld wird direkt zur Funktionseinheit 20 transferiert. Alle diese Felder können unabhängig voneinander gewählt sein. In der Fig. 9 ist eine Zeitablaufkarte gezeigt, aus der eine Parallelität oder ein Überlappen zwischen der Mikrospeicheradreßinkrementierung und der Mikrobefehlsausführung hervorgeht, jedoch keine Überlappung zwischen dem MikroSpeicherabruf und der Mikrobefehlsausführung auftritt. Das Bedeutet, daß nach der Fig. 9 keine Überlappung zwischen dem Mikrobefehlsaufruf vom Mikroabschnitt des Hauptspeichers und dem Steuerbefehlsaufruf vom Steuerspeicher vorgesehen ist.
409882/0758
Wie es bereits in Verbindung mit der Mikrobefehlsausführungsorganisation beschrieben wurde, steuert die MaschinenzustandsSteuereinheit 39 (Fig. 2) die Phaseneinstellung von allen Mikrobefehlen in der Zentraleinheit. Wie es ferner bereits beschrieben wurde, wird ein Vorausschauverfahren benutzt, das eine Entscheidung aufgrund der laufenden Mikrobefehlsmaschinenzustandszählzeit, der Art des vom Zustandsmaschinendecodierfeld in dem Steuerbefehl erhaltenen laufenden Mikrobefehls und der Art des im U-Pufferregister 24 enthaltenen nächsten Mikrobefehls, wie empfangen vom Mikrobefehlsspeicher, umfaßt. Der Maschinenzustand während der nächsten Zählzeit 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 Mikrospeicherädreßregister inkrementiert werden soll und ob der Inhalt des U-Pufferregisters für gültig erklärt werden soll.
Es gibt acht verschiedene Maschinenzustände. Die Beziehung zwischen diesen Zuständen ist in der Fig. 8 dargestellt. Diese Zustände werden wie folgt bezeichnet: Eingreifen-Einleiten (force-initiate) (111), Eingreifenunterbrechen (force-interrupt) (000), Eingreifen-Fehler (force-error) (011), Stoßen (push) (001), Ersetzen (replace) (101), Ausführen (execute) (100), Verzögern 1 (delay 1) (110) und Verzögern 2 (delay 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ß Subroutinesprungadressen und Unterbrechungsrückkehradressen in dem Stapel sichergestellt werden. Die Bedingungen zum Eintritt in den Stoßzustand liegen vor, wenn der lau-
' 409882/0758
fende Mikrobefehl ein erfüllter Subroutinesprung in der Zählzeit 1 des Ausführungszustands ist oder wenn eine Eingriff Unterbrechungsbedingung, eine Eingriffseinleitbedingung oder eine Eingriffsfehlerbedingung während des laufenden Maschinenzyklus gültig ist.
Die Funktion des Ersetzzustands (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 Mikrobefehl ein Nichtsprung-TNS-Laden im Zählzustand 1 des Ausführungszustands und der Inhalt des Mikropuffers ungültig ist, der laufende Mikrobefehl ein erfülltes bedingtes Lesen im Ausführungszustand, !jedoch nicht in der Zählzeit 1 dieses Zustande ist und wiederum der Inhalt des Mikropuffers für ungültig erklärt worden ist oder der laufende Mikrobefehl eine Subroutinerückkehr in der Zählzeit 1 des Ausführungszustands ist.
In den Eingriffseinleitzustand (111) wird eingetreten, wenn die Zentraleinheit ein Einschaltsignal empfängt. Bei der Feststellung eines Paritätsfehlers vom Speicher wird in den Eingriffsfehlerzustand (011) eingetreten, wenn eine Speicherfreigabeleitung zur Zentraleinheit angezeigt hat, daß der Zentraleinheit ein Speicherzugriff gestattet worden ist.
A09882/0758
~ 25 " 242A810
Der Verzögerungs-2-Zustand ist vorgesehen, um zu gestatten, daß ein Mikrobefehl im Mikroabschnitt des Speichers abgerufen oder geholt und in den Mikropuffer geladen wird, wenn der gerade ausgeführte vorangegangene Mikrobefehl entweder ein erfüllter bedingter Sprung, ein nicht bedingter Sprung, ein Subroutinesprung oder eine Subroutinerückkehr ist. In den Verzö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 oder der laufende Mikrobefehl ein erfülltes bedingtes Lesen im Ausführungszustand, jedoch nicht in der Zählzeit 1 dieses Zustands 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 Zentraleinheitspeicherregister zu bringen. In diesem Fall ist der Verzögerungs-1-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.
Der Ausführungszustand (100) steuert alle Datentransfers in der Zentraleinheit, abgesehen von solchen Stapelmanipulationen, die durch den Ersetz-, Eingriffs- und Stoßzustand gesteuert werden.
409882/0758
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 Taktverzögerung, nachdem die Ausführung beendet worden ist. Ein Speicherlesebefehl erfordert eine einzige Takt zeitverzö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 ein erfüllter bedingter Sprungmikrobefehl erfordern zwei Taktzeitverzögerungen, nachdem die Ausführung beendet worden ist. Ein bedingter nicht erfüllter Sprüngmikrobefehl benötigt eine Taktzeityerzö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 Taktzeitverzö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ßsammelleitung 43 und ein Haskenregister 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/A-Kanal finden unter der Zentraleinheitsteuerung statt. Steuerparameter, Daten sowie Identifizierungs- 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 Daten-
409882/0758
transfers erhalten zu der Zentraleinheit über eine E/A-Unterbrechungsanforderung Zugriff. Steuer-Identifizier- 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 Steuerleitung, eine 2-Phasen-Taktleitung, eine Einschaltleitung und eine Richtungsleitung enthalten. Die Datensammelleitung selbst besteht aus acht bidirektionalen Datenleitungen.
Für jeden durch die Zentraleinheit adressierten Kanal ist eine 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äßig 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 (Fig. 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 Zentraleinheit erfüllt worden ist und Datentransfers angefordert sind, ein ausgewähltes Gerät nicht bereit ist oder ein nicht ausgewähltes Gerät in
409882/0758
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 Freigabe signal 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 Datentransf errichtung 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 Zentraleinheit transferiert.
Fünf Arten von Operationen können über die E/ASchnittstelle durchgeführt werden. Diese Operationen werden wie folgt bezeichnet: Abfragezustand (interrogate status), Elektronikbefehl I (electronic command I), Elektronikbefehl II (electronic command II), Peripherzeitsteuerungsempfindlichkeitsbefehl (peripheral timing sensitive command)
und Datentransfer (data transfer).
409882/0758
Der Abfragezustandsbefehl wirkt in einer ungewöhnlichen Weise auf die Anlage ein, dergestalt, daß Zustandsinformation, die in einem einzigen Byte durch eine Periphersteuereinheit angesammelt worden ist, während desselben Zyklus, in dem eine Anfrageanforderungsaktion durch die Zentraleinheit durchgeführt wird, 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 Richtungsleitung potentialmäßig erniedrigt 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 II ist ein Befehl, bei dem der nächste E/A-Transfer nach oder von dem befohlenen Periphergerät ein Zentraleinheitregister 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 Zentraleinheitspeicher ausgelesen werden. Ein diesem Befehl folgender 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 Datentransf erbedingung durch einen Elektronikbefehl II ausgeführt ist.
A09882/07S8
Der Peripherzeitsteuerungsempfindlichkeitsbefehl kann in zwei verschiedenen Wegen ausgeführt werden. Der eine Weg besteht darin, den Befehl in den Datenstrom 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ählen-zum-Schreiben-Befehl leitet den Transfer von Daten ein, die von der Zentraleinheit in ein Periphergerät eingeschrieben 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 potential mäßig anhebt, und zwar für die Dauer des Transfers. Die der Datensammelleitung 23a (Fig,2) zugeordnete Richtungsleitung wird beim Lesen von Daten von dem Periphergerät potentialmäßig abgesenkt und beim Einschreiben von Daten in das Periphergerät durch die Zentraleinheit 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 Block. Die Periphersteuereinheit muß dann ihre Anforderungsleitung potentialmäßig absenken, bis sie zu einem weiteren Datentransfer fähig ist.
409882/0758
Die Informationstransfers unter der Steuerung des Peripherzeitsteuerungsempfindlichkeitsbefehls und des Datentransferbefehls unterliegen der Unterbrechungssteuerung in der Zentraleinheit. Die Unterbrechungssteuerung besteht aus der Maschinenzustandssteuereinheit 39 (Fig; 2) und hat das Vermögen, acht bidirektionale E/A-Kanalanforderungen aufzunehmen und 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 Unterbrechungsfreigabeflaggensignal auf eine logische O 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 O setzen.
Die Funktion des Eingriffsunterbrechungszustands (oben beschrieben) dient zum Laden einer festen Adresse, nämlich der Startadresse der Peripherhandhabungsroutinen, in den Mikrospeicheradreßstapel und zur Kopiereintragung
40 9 88 2/0 7 58
der normalen übertragflagge in die Unterbrechungsübertragflagge. Bei einem Unterbrechungsrückkehrmikrobefehl wird der Unterbrechungsübertrag in die Sprungübertragflagge kopiert.
Die Zentraleinheit nach der Erfindung, ihre Funktionseinheiten und die Art, in der die Mikrobefehle in einer überlappten Weise abgerufen und ausgeführt werden, wurde bisjetzt beschrieben. Wie bereits erwähnt, wird durch die Erfindung eine kostenmäßig günstige Datenverarbeitungseinheit geschaffen, die sich Programmen anpassen kann, die in Programmsprachen einer höheren Ebene geschrieben sind. Darüberhinaus sind bei der erfindungsgemäßen Datenverarbeitungsanlage die Mikrobefehlsspeichereinrichtungen verhältnismäßig preisgünstig, so daß die Anlage auch auf dem Gebiet der elektronischen Buchungs- und Abrechnungsmaschinen 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 Figuren 10 und 11 soll dargelegt werden, daß die erfindungsgemäße Datenverarbeitungseinheit die obengenannten Bedingungen erfüllt. Das in der Fig. 10 gezeigte Flußdiagramm beschreibt die Operator- und Parameterabrufmechanismen zur Interpretation von bezüglich der Ebene höheren Sprachen oder S-Sprachen. Das Flußdiagramm nach der Fig. 11 beschreibt die alphanumerischen Bewegungen.
Die Interpretation von Programmen, die in einer 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 nach der Erfindung sehr leicht bewerkstelligt. Die Aus-
409882/0 758
fü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. 10 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 Zen-. traleinheit 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. Venn 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 zu 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 besondere Mikrokette oder Kette von Mikrocodes zu adres-
4Q9882/0758
_ 34 -
sieren, die benötigt wird, tun die laufenden S-Sprachbefenle zu implementieren.
In der Fig. 11 ist dargestellt, wie die Deskriptoren für alphanumerische Bewegungen ausgewertet werden. Der Vorgang umfaßt das Setzen der Parameter, die zum 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 sie um ein Zeichen dekrementiert, um das Vorzeichen zu entfernen. Die Daten werden entweder im ASCII-oder EBCDIC-Format, wie erforderlich, in das Bestimmungsfeld kopiert. Falls die Quellenlange nicht größer als die 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 kopiert. Wenn die Quellenlänge nicht größer als die Bestimmungslänge ist, werden ASCII-. oder EBCDIC-Leerstellen in den Rest des Bestimmungsfeldes kopiert, und die Routine geht in eine neue Abrufroutine Über.
Aus der obigen Beschreibung geht hervor, daß die verschiedenartigen Speicherabrufe und Datentransfers, wie sie beispielsweise für die Routinen nach den Figuren 10 und 11 benötigt werden, unter der Steuerung von Mikrobefehlen ausgeführt werden, die vom Mikrospeicherabschnitt des Hauptspeichers abgerufen werden und die durch Steuerbefehle im-.
4 0 9 8 8 2/0758
plementiert werden, die vom Steuerspeicher abgerufen werden, der sich in der Zentraleinheit oder Verarbeitungseinheit befindet. Die Steuerbefehle sind gerade diejenigen Vorräte an Steuersignalen, die benötigt werden, um für den Datentransfer die verschiedenartigen Gatter vorzubereiten oder freizugeben, die betreffenden Zähler zu. inkrementieren usw.
Nach, der Erfindung werden somit eine Datenbearbeitungsanlage und.ein durch die Anlage verkörpertes Datenverarbeitungsverfahren geschaffen, die sich Programmen anpassen können, die in verschiedenartigen, bezüglich des Pegels höheren Programmiersprachen geschrieben sind, ohne daß es dabei infolge der Strukturen von besonderen dieser bezüglich der Ebene höheren Sprachen zu irgendwelchen störenden Einschränkungen kommt. Ferner ist die erfindungsgemäße Datenverarbeitungsanlage kostenmäßig mit anderen kleinen Allzweck- und Spezialzweckrechnern konkurrenzfähig und im Hinblick auf die Leistung mit mittelgroßen Mikroprogrammanlagen vergleichbar. Variable Mikroprogrammanlagen haben gegenüber nicht Mikroprogrammanlagen den Vorteil, daß sie viele verschiedene, bezüglich der Sprachebene höhere Programmiersprachen durch Implementation mit verschiedenen Ketten von Mikrocodes oder Mikrobefehlen sehr leicht interpretieren. ■
Um der erfindungsgemäßen Anlage und dem Verfahren diese Fähigkeiten zu verleihen, werden mehrere Ebenen oder Stufen von Subbefehlsvorräten benutzt, die die höherstufigen oder bezüglich der Ebene höheren Befehlsvorräte, die die verschiedenen Programme darstellen, implementieren.
409882/0758
Die betreffenden Ebenen von Subbefehlsvorräten sind die herkömmlichen Mikrobefehle und auch Steuerbefehle, wobei die Steuerbefehle Vorräte von Steuersignalen sind, die benötigt werden, um für den Datentransfer und die anderen Operationen die verschiedenen Gatter anzusteuern bzw· vorzubereiten. Das Format des Mikrobefehls ist veränderbar, so daß verschiedene Anzahlen von Grundsilben vorgesehen sein können, die dann aufeinanderfolgend von dem Mikrospeicher abgerufen werden, um den gewünschten Mikrobefehl zu bilden. Auf diese Weise werden redundante Speicheranforderungen an den Mikrobefehlsspeicher beträchtlich herabgesetzt.
409882/0758

Claims (14)

Patentansprüche
1./ Datenverarbeitungsanlage enthaltend einen Speicher mit einem Makrobefehls- und Datenspeicherabschnitt und mit einem Mikrobefehlsspeicherabschnitt zum Speichern von verschiedenen Arten von Mikrobefehlssilben und eine Zentraleinheit mit an den Speicher angeschlossenen Mitteln zum Abrufen von Makrobefehlsoperatoren aus dem Makrobefehlsspeicherabschnitt,
gekennzeichnet durch an die Makrobefehlsabruf mittel (24, 25» 26) und an den Speicher (11) angeschlossene Mittel (24, 36a, 36b, 36c, 36d), die auf den Makrobefehlsoperator ansprechen, um nacheinander zwei oder mehrere Mikrobefehlssilben vom Mikrobefehlsspeicherabschnitt des Speichers (11) abzurufen und einen durch den Makrobefehlsoperator angeforderten Mikrobefehl zu bilden.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Zentraleinheit Datenwege (21, 22, 23) mit einer festen Breite aufweist, die gleich der Breite der Mikrobefehlssilben ist.
3· Datenverarbeitungsanlage nach Anspruch 1 oder* 2, dadurch gekennzeichnet, daß der Mikrobefehlsspeicherabschnitt des Speichers (11) ein Festwertspeicher ist.
4. Datenverarbeitungsanlage nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, daß die erste Mikrobefehlssilbe jedes Mikrobefehls eine Operation (Fig. 5A) spezifiziert und daß die übrigen Silben (Fig. 5B, Fig. 5C) Literalwerte spezifizieren, die als Adreßparameter verwendet werden.
. 409882/0758
5· Datenverarbeitungsanlage nach einem der vorstehenden Ansprüche, bei der die Zentraleinheit eine Funktionseinheit und mehrere an die Funktionseinheit angeschlossene Register enthält,
gekennzeichnet durch einen an die Mikrobefehlssilbenabrufmittel angeschlossenen Steuerspeicher (37), der durch die erste Mikrobefehlssilbe eines Mikrobefehls einzeln aus ihm auswählbar Steuerbefehle enthält, um Datentransfers zwischen einzelnen der Register (25 bis 35) und der Funktionseinheit (20) zu bewirken,
6. Datenverarbeitungsanlage nach Anspruch 5, dadurch gekennzeichnet, daß der Steuerbefehls spei eher in der Zentraleinheit ein Festwertspeicher ist.
7« Datenverarbeitungsanlage enthaltend einen Speicher mit einem Makrobefehls- und Datenspeicherabschnitt und mit einem Mikrobefehlsspeicherabschnitt zum Speichern von verschiedenen Arten von Mikrobefehlssilben und eine Zentraleinheit mit einer Funktionseinheit, mit mehreren an die Funktionseinheit angeschlossenen Registern und mit an den Speicher angeschlossenen Mitteln zum Abrufen von Makrobefehlsoperatoren aus dem Makrobefehlsspeicherabschnitt, gekennzeichnet durch an die Makrobefehlsabruf mittel (24, 25, 26) und an den Mikrobefehlsspeicherabschnitt angeschlossene Mittel (24, 36), die auf den Makrobefehlsoperator ansprechen, um nacheinander zwei oder mehrere Mikrobefehlssilben vom Mikrobefehlsspeicherabschnitt des Speichers (11) abzurufen und einen durch den Makrobefehlsoperator aufgerufenen Mikrobefehl zu bilden, und durch einen an die Mikrobefehlssilbenabrufmittel angeschlossenen Steuerspeicher (37), der durch die erste Mikrobefehlssilbe eines Mikrobefehls einzeln aus ihm auswählbare Steuerbefehle enthält, um einen Datentransfer zwischen einzelnen der Register (25 bis 35) und der Funktionseinheit (20) zu bewirken, wobei der Steuerspeicher (37) derart mit der Funktionseinheit
409882/0758
(20) und den Registern verbunden ist, daß eine eindeutige Mikrobefehlssilbe vorgesehen ist, um jede Kombination von zu verwendenden Registern und der auszuführenden Funktion zu spezifizieren.
8. Datenverarbeitungsanlage nach Anspruch 7t dadurch gekennzeichnet, daß die übrigen Mikrobefehlssilben des Mikrobefehls, also die anderen als die erste Silbe, Literalwerte (Fig. 5B, Fig. 5C) darstellen, die als Adreßparameter verwendet werden.
9. Datenverarbeitungsanlage nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß die erste Mikrobefehlssilbe eines Mikrobefehls die Anzahl der Taktzeiten spezifiziert, die für eine Mikrobefehlsausführung erforderlich sind.
10. Datenverarbeitungsanlage nach einem der Ansprüche 7 bis 9,
dadurch gekennzeichnet, daß die Zentraleinheit zwischen den Registern und der Funktionseinheit Datenwege (21, 22, 23) enthält, die eine feste Breite haben, die gleich der Breite der Mikrobefehlssilben ist.
11. Datenverarbeitungsanlage enthaltend einen Speicher mit einem Mikrobefehlsspeicherabschnitt zum Speichern von verschiedenen Arten von Mikrobefehls silben und eine Zentraleinheit mit einer Funktionseinheit ,und mit mehreren an die Funktionseinheit angeschlossenen Registern, gekennzeichnet durch an den Mikrobefehlsspeicherabschnitt angeschlossene Mittel (24, 36) zum aufeinanderfolgenden Abrufen von zwei oder mehreren Mikrobefehlssilben aus dem Mikrobefehlsspeicherabschnitt des Speichers (11), um einen Mikrobefehl zu bilden, und durch einen an die Mikrobefehlssilbenabrufmittel angeschlossenen Steuerspeicher (37), der durch die erste Mikro-
409882/0758
befehlssilbe eines Mikrobefehls einzeln aus ihm auswählbare Steuerbefehle enthält, um einen !Datentransfer zwischen einzelnen der Register (25 bis 35) und der Funktionseinheit (20) zu bewirken, wobei der Steuerspeicher (37) derart mit der Funktionseinheit (20) und den Registern verbunden ist, daß eine eindeutige Mikrobefehlssilbe vorgesehen ist, um jede Kombination von zu verwendenden Registern und die auszuführende Funktion zu spezifizieren.
12. Datenverarbeitungsanlge nach Anspruch 11, . dadurch gekennzeichnet, daß die übrigen Mikrobefehlssilben des Mikrobefehls, also die anderen als die erste Silbe, Literalwerte (Fig. 5B, Fig. 5C) darstellen, die als Adreßparameter verwendet werden.
13. Datenverarbeitungsanlage nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß die erste Mikrobefehlssilbe eines Mikrobefehls die Anzahl der Taktzeiten spezifiziert, die für eine Mikrobefehlsausführung erforderlich sind.
14. Datenverarbeitungsanlage nach einem der Ansprüche 11 bis 13,
dadurch gekennzeichnet, daß die Zentraleinheit zwischen den Registern und der Funktionseinheit Datenwege (21, 22, 23) enthält, die eine feste Breite haben, die gleich der Breite der Mikrobefehlssilben ist.
409882/0758
DE2424810A 1973-06-05 1974-05-22 Mikroprogrammierbare Datenverarbeitungsanlage Expired DE2424810C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2671673A GB1426748A (en) 1973-06-05 1973-06-05 Small micro-programme data processing system employing multi- syllable micro instructions

Publications (2)

Publication Number Publication Date
DE2424810A1 true DE2424810A1 (de) 1975-01-09
DE2424810C2 DE2424810C2 (de) 1984-12-13

Family

ID=10248110

Family Applications (1)

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

Country Status (12)

Country Link
US (1) US3930236A (de)
JP (1) JPS604491B2 (de)
BE (1) BE815432A (de)
BR (1) BR7403791A (de)
CA (1) CA1010998A (de)
DD (1) DD116948A5 (de)
DE (1) DE2424810C2 (de)
FR (1) FR2232799B1 (de)
GB (1) GB1426748A (de)
IN (1) IN140603B (de)
IT (1) IT1012706B (de)
NL (1) NL7406296A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2637866A1 (de) * 1976-08-23 1978-03-02 Siemens Ag Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1443064A (en) * 1973-07-18 1976-07-21 Int Computers Ltd Microprogramme unit for a data processor
GB1464570A (en) * 1974-11-27 1977-02-16 Ibm Microprogramme control units
US3972030A (en) * 1975-01-02 1976-07-27 Honeywell Information Systems, Inc. Peripheral control capable of dynamically executing command sequences
NL7503820A (nl) * 1975-04-01 1976-10-05 Bell Telephone Mfg Programma-bestuurde inrichting.
JPS51144142A (en) * 1975-06-06 1976-12-10 Hitachi Ltd Information processing
US4075687A (en) * 1976-03-01 1978-02-21 Raytheon Company Microprogram controlled digital computer
US4173041A (en) * 1976-05-24 1979-10-30 International Business Machines Corporation Auxiliary microcontrol mechanism for increasing the number of different control actions in a microprogrammed digital data processor having microwords of fixed length
SU615538A1 (ru) * 1976-07-07 1978-07-15 Предприятие П/Я В-2892 Устройство дл выбора информации из блока пам ти
IT1123613B (it) * 1976-10-07 1986-04-30 Sits Soc It Telecom Siemens Unita' di controllo a microprogrammi per elaboratori di dati
US4065810A (en) * 1977-01-26 1977-12-27 International Business Machines Corporation Data transfer system
US4262330A (en) * 1978-10-23 1981-04-14 International Business Machines Corporation I-phase controls for a computer
US4307445A (en) * 1978-11-17 1981-12-22 Motorola, Inc. Microprogrammed control apparatus having a two-level control store for data processor
US4330823A (en) * 1978-12-06 1982-05-18 Data General Corporation High speed compact digital computer system with segmentally stored microinstructions
US4336602A (en) * 1979-09-24 1982-06-22 Control Data Corporation Network for generating modified microcode addresses
US4386399A (en) * 1980-04-25 1983-05-31 Data General Corporation Data processing system
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
US4831521A (en) * 1983-11-10 1989-05-16 General Signal Corporation Vital processor implemented with non-vital hardware
US5062036A (en) * 1985-06-10 1991-10-29 Wang Laboratories, Inc. Instruction prefetcher
IL81764A0 (en) * 1986-04-15 1987-10-20 Symbolics Inc Processor internal bus control
US4868739A (en) * 1986-05-05 1989-09-19 International Business Machines Corporation Fixed clock rate vector processor having exclusive time cycle control programmable into each microword
US4969752A (en) * 1986-09-01 1990-11-13 Oiles Industry Co., Ltd. Thrust bearing made of synthetic resin
US5276892A (en) * 1987-02-24 1994-01-04 Digital Equipment Corporation Destination control logic for arithmetic and logic unit for digital data processor
WO1988006758A2 (en) * 1987-02-24 1988-09-07 Digital Equipment Corporation Destination control logic for arithmetic and logic unit for digital data processor
US5235686A (en) * 1987-02-24 1993-08-10 Texas Instruments Incorporated Computer system having mixed macrocode and microcode
JPH01183736A (ja) * 1988-01-18 1989-07-21 Toshiba Corp 情報処理装置
US5101344A (en) * 1988-01-28 1992-03-31 Motorola, Inc. Data processor having split level control store
US7140003B2 (en) * 2003-02-14 2006-11-21 International Business Machines Corporation Method and system for specifying sets of instructions for selection by an instruction generator

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3434112A (en) * 1966-08-01 1969-03-18 Rca Corp Computer system employing elementary operation memory
US3673575A (en) * 1970-06-29 1972-06-27 Ibm Microprogrammed common control unit with double format control words
US3736567A (en) * 1971-09-08 1973-05-29 Bunker Ramo Program sequence control

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3340513A (en) * 1964-08-28 1967-09-05 Gen Precision Inc Instruction and operand processing
US3477063A (en) * 1967-10-26 1969-11-04 Ibm Controller for data processing system
US3599176A (en) * 1968-01-02 1971-08-10 Ibm Microprogrammed data processing system utilizing improved storage addressing means
NL7007615A (de) * 1970-05-27 1971-11-30
US3665411A (en) * 1970-06-08 1972-05-23 Singer Co Computer
US3702988A (en) * 1970-09-14 1972-11-14 Ncr Co Digital processor
US3678467A (en) * 1970-10-20 1972-07-18 Bell Telephone Labor Inc Multiprocessor with cooperative program execution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3434112A (en) * 1966-08-01 1969-03-18 Rca Corp Computer system employing elementary operation memory
US3673575A (en) * 1970-06-29 1972-06-27 Ibm Microprogrammed common control unit with double format control words
US3736567A (en) * 1971-09-08 1973-05-29 Bunker Ramo Program sequence control

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2637866A1 (de) * 1976-08-23 1978-03-02 Siemens Ag Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage

Also Published As

Publication number Publication date
JPS604491B2 (ja) 1985-02-04
US3930236A (en) 1975-12-30
BR7403791A (pt) 1976-04-13
GB1426748A (en) 1976-03-03
NL7406296A (de) 1974-12-09
AU6903774A (en) 1975-11-20
FR2232799B1 (de) 1977-10-07
DD116948A5 (de) 1975-12-12
BE815432A (fr) 1974-09-16
IN140603B (de) 1976-12-11
IT1012706B (it) 1977-03-10
FR2232799A1 (de) 1975-01-03
DE2424810C2 (de) 1984-12-13
CA1010998A (en) 1977-05-24
JPS5023542A (de) 1975-03-13

Similar Documents

Publication Publication Date Title
DE2424810A1 (de) Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen
DE2424931A1 (de) Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2543522C2 (de) Mikroprogrammierbare Datenverarbeitungseinrichtung
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
CH623947A5 (de)
DE2846495A1 (de) Digitales datenverarbeitungssystem
DE1449531B2 (de) Prozessor, vorzugsweise fur ein modulares Mehrprozessorsystem
DE2813128A1 (de) Mikroprogrammspeicher
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE1915818A1 (de) Elektronisches Datenverarbeitungssystem
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE2458096C2 (de) Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
EP0130269B1 (de) Speicherprogrammierbare Steuerung
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
DE3344340A1 (de) Datenprozessor mit einem steuerteil, der einen adressgenerator zum erzeugen von adressen enthaelt, die aus charakteristischen adressteilen zusammengesetzt sind
DE2331394B1 (de) Datenverarbeitungsanlage mit virtueller adressierung

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