DE2424931A1 - Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten - Google Patents
Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraetenInfo
- Publication number
- DE2424931A1 DE2424931A1 DE19742424931 DE2424931A DE2424931A1 DE 2424931 A1 DE2424931 A1 DE 2424931A1 DE 19742424931 DE19742424931 DE 19742424931 DE 2424931 A DE2424931 A DE 2424931A DE 2424931 A1 DE2424931 A1 DE 2424931A1
- Authority
- DE
- Germany
- Prior art keywords
- microinstruction
- syllable
- control
- memory
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution 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
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
PafenicmwSIfe
L-JiIiL Wilhelm B.eichel
S FraiiL-^v.-; a. M. 1
Be 13
Be 13
7795
BURROUGHS CORPORATION, Detroit, Michigan, VStA
Datenverarbeitungsanlage, insbesondere Mikroprogramm-Datenverarbeitungseinheit
mit parallelen Befehlsströmen für mehrere Ebenen von Subbefehlsvorräten
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-
409881/0811
zweckrechner betrachtet werden. Die heute zur Verfugung
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 Datenends tati onsverarbeitungs einhei ten 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 hohen 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.
409881/081 1
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 Programm!ersprachen 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 Mikroprogrammierurig hat
man einst als ein Werkzeug des Konstruktionsingenieurs betrachtet, da durch die Mikroprogramm!erung verdrahtete Maschinenbefehlsdecodierer
durch Nachschlagtabellenspeicher ersetzt werden können, die verschiedenartige Vorräte an
409881/0811
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
409881/081 1
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 Mikroprogrammspeichers 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 Mikrobefehlsspeicher 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 ß.en 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.
409881/0811
Ein Merkmal der Erfindung ist in einer programmierbaren Verarbeitungseinheit mit zwei Ebenen von Subbefehlsvorräten
zu sehen, wobei Makro- oder Objektbefehle durch Ketten von Mikrobefehlen ausgeführt werden, die wiederum
alle durch Steuerbefehle verwirklicht werden. Die Mikrobefehle
und Steuerbefehle werden dabei in einer überlappten Weise abgerufen, um zwei Befehlsströme zu bilden, die hinreichend
kontinuierlich und parallel zueinander sind· Ein weiteres Merkmal der Erfindung betrifft die Steuerung einer
Anzahl von Datentransfers innerhalb der Verarbeitungseinheit
und nach oder von dem Speicher sowie nach oder von der E/APeripherie unter der Steuerung eines einzigen Mikrobefehls
und mit der Vorsehung, bei Erfüllung einer vorgegebenen Bedingung die Ausführung eines derartigen Mikrobefehls zu unterbrechen.
Die Erfindung ist somit insbesondere in einer Mikroprogramm-Datenverarbeitungsanlage
zu sehen, die zwei Ebenen von Subbefehlsvorrä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 Funktion der besonderen Mikrobefehle. Die verschiedenen Arten von Mikrobefehlen
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.
409881 /0811
2424331
Um die Anzahl der Taktzeiten zu verringern, die für die Ausführung der verschiedenen Mikrobefehle erforderlich sind, werden
der Mikrobefehlsabruf und die Mikrobefehlsausführung überlappt und eine Mikrobefehlsvorausschau vorgenommen. Dadurch ergeben
sich zwei nahezu kontinuierliche und parallele Befehlsströme. Der eine Befehlsstrom betrifft die aus dem Mikroprogramm-Speicher
abgerufenen Mikrobefehle und der andere Befehlsstrom die aus dem Steuerspeicher abgerufenen Steuerbefehle.
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 Datenselektionsnetzwerken
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 eine Reihe von Signal verlauf en, die den zeitlichen
Ablauf der Mikrobefehlsabruf- und -ausführungszyklen für eine Reihe von Maschinenzuständen darstellen,
Fig. 10 ein Zeitablaufdiagramm zur Erläuterung der Parallelität
des überlappten Abrufs von Mikrobefehlen nach der Erfindung,
Fig. 11 ein Zeitablaufdiagramm einer Mikrobefehlsäbrufoperation,
und zwar aus Vergleichsgründen zur Fig. 10 ohne Parallelität,
Fig. 12 ein Flußdiagramm zur Erläuterung von Operator- und
409881 /081 1
Parameterabrufmechanismen zur Durchführung der Interpretation
nach der Erfindung und
Fig. 13 ein Flußdiagramm zur Erläuterung von alphanumerischen
Datenbewegungen bei einer nach der Erfindung ausgebildeten Anlage.
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
verzusehen, 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 Mikrobefehl sgrundsilben 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.
409881/0811
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 Mikroprogrammierer 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.
Der Mikrobefehlsabruf wird mit der Mikrobefehlsausführung überlappt. Durch diese Parallelität wird die Zeit
verringert, die für die Ausführung der verschiedenen Ketten von Mikrobefehlen erforderlich ist. Weiterhin dient die
Überlappung des Mikrobefehlsaufrufs und der Ausführung zum Schließen der Reihen von Befehlsströmen, wie es ein Mikrobefehl
.tut, der den Transfer der Anzahl der Datensegmente (bis zu 256 Bytes) in der Verarbeitungseinheit nach und von
dem Speicher oder nach und von der E/A-Peripherie 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.
4Ü9881/0811
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. Wie 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 $e mit einem Peripheriegerät gemeinsame
Schnittstelle in Verbindung treten kann. Die Peripheriegeräte umfassen einen Zeilendrucker 13f 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 U-Pufferregister
24 vom Speicher. Das U-Pufferregister 24 dient ferner zur Zufuhr von 8-Bit-Adressen zu einem Steuer speicher 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-
409831 /0811
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
40988 1/0811
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 "abgebildet11 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ätr 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 eines Literalwert "schritthaltend" (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 SubroutineSprünge verwendet
wird. Die ersten acht Bits beschreiben den Steueroperator,
409881/0811
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 SpeicheradreBfeld
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.
409881 /0811
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 Zählzeiten 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 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 Maschinenzustands Steuereinheit 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ät
en und nach und von dem Speicher vorzusehen,
4G9881 /081 1
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 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.
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-Byteregister (25a, 25b bzw. 26a, 26b), die
beide in der Lage sind, von der Funktionseinheit 20 übet
AÜ9881 /0811
2424331
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 Allgemeinzweckregister
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 dekreraentieren* 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. Im 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 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 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-
AÜ9881 /0811
-4
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 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ä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.
409831 /081 1
-"-3- ?424331
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 diesen Registern empfangen. Diese Register bilden einen "last-in,
first-outn-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ß-Sammelleitung
45 bildet eine 16-Bit-Leitung, um Adressen vom 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 Dekrement! er en. 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
4Ü9881 /081 1
Ü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 Α-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.
Tabelle ist das resultierende Ausgangssignal an der
F-Sammelleitung als Funktion der beiden Eingangssignale an der Α-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.
11111
00001
10111
11101.
01101
10010
00000
11110
01100
00100
00111
00011
00101
01001
01011
01111
10001
10011
10101
11001
11011
00010
11010
00110
01000
01010
01110
10000
10100
10110
11000
11100
Funktion
transferiere A invertiere A logisches UND Α·Β logisches ODER A+B
exklusives ODER A © B addiere binär A PLUS B inkrementiere binär A
A MINUS A MINUS B MINUS (A + B) Null A + B A-B Α·Β
A-B Ä + B A® B
transferiere 8'
A + B A + B (A + B) PLUS A MINUS 1 A PLUS A-S (A + B) PLUS A-B
A-B MINUS A PLUS A-B (A + B) PLUS A-B A-B MINUS
A PLUS A (A + B) PLUS A
AÜ9881 /0811 .
Der beschriebene Teil der Zentraleinheit enthält somit die Registerorganisation und 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 Ü-Pufferregister 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 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 Vorausschauver-
to
fahren 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
4 0 9 8 8 1 /0811
2Λ24931
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 ü-Pufferregisters 24 für gültig erklärt
werden soll. Wie bereits erwähnt, enthält die Maschinenzustands Steuer einheit 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-HiIf sregister 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 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 38 transferiert.
409881/0811
Z424931
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-Selektionsnetzwerke handelt. Wie bereits erwähnt, enthält der Steuerbefehl drei 5-Bit-Felder,
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. 2) 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.
Die Art, in der die verschiedenartigen Mikrobefehle und Steuerbefehle in einer sich überlappenden Weise abgerufen
werden, wird anhand der Fig. 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 mit-
403881 /0811
einander verwandte Schritte, die zur Decodierung und Ausführung jedes Mikrobefehls benötigt werden, bei jedem
Signalverlauf mit derselben Bezugszahl versehen, so daß man den Vorgang der Decodierung und Ausführung jedes besonderen
Mikrobefehls dadurch erhalten kann, daß man die miteinander verwandten Bezugszahlen in den verschiedenen
Signalverläufen verfolgt.
Der in der Fig. 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 bei einer bevorzugten Ausführungsform der Erfindung diese Mikrobefehle in dem
Mikrospeicherabschnitt des Hauptspeichers gespeichert sind. Der Signalverlauf E ist eine Darstellung der Zeiten, bei
denen aus dem Hauptspeicher entweder Daten oder Mikrobefehle empfangen werden. Der Signalverlauf F stellt die
Zeiten dar, bei denen aus dem Steuerspeicher 37 (Fig. 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 (Fig. 2) einen Befehl übernommen hat oder durch den Ausgang des Steuerspeichers
37 gesetzt worden ist. Der Signalverlauf H stellt 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 geschlos-
409881/0811 .
senen Flächen in den verschiedenartigen Signalverlä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ührungsschritte von verschiedenen Arten von Mikrobefehlen sind bei der Fig. 9
in den Signalverlaufen dargestellt. Diese Schritte stehen
in Beziehung zu der Gesamtanzahl der Schritte, die zur Ausführung von jeder der besonderen Mikrobefehle erforderlich
sind. Miteinander verwandte Schritte tragen dieselbe Bezugszahlenbezeichnung. Diese Bezeichnungen werden im folgenden
erläutert. Die Bezugszahl 1 bezeichnet die verschiedenen Schritte, die für einen 1-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 der Anforderung
durch den Subroutine Sprungmikrobefehl. 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-Mikrobefehl dar. Die
Bezugszahl 7 bezeichnet einen Mikrobefehl mit einem 2-Zeichen-Literal.
Die Bezugszahl 8 betrifft den Speicherabruf 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 D1, D2 und D3 ist der tatsächliche Empfang des
ersten, zweiten und dritten Byte, die diese Zeichen darstellen, aus dem Speicher bezeichnet.
409881/031 1
Die in der Fig. 9 dargestellten verschiedenen Signalverläufe dienen in erster Linie zur Erläuterung der
Überlappung zwischen dem Abruf (Signalverlauf E) und der Ausführung (Signalverlauf H) der aufeinanderfolgenden
Mikrobefehle und auch zur Erläuterung der Arbeitsweise des Keller- oder Stapelspeichers 36a bis d (Fig. 2), um
aufeinanderfolgende MikroSpeicheradressen zu halten bzw. zu speichern. Aus der Darstellung der Signalverlaufe nach
der Fig. 9 gehen aber auch andere interessierende Zusammenhänge hervor. Während beispielsweise das Abrufen eines
SubroutineSprungmikrobefehls (Bezugszeichen 2) durch Steuerbefehle
(Signalverlauf H) aus dem Steuer speicher 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 C) der Sübroutinerückkehradresse (Bezugszeichen 5) keinen SteuerSpeicherausgang
(Signalverlauf F) erfordert» In ähnlicher Weise benötigt
das Abrufen eines 2-Zeichen-Literalmikrobefehls der Mikrobefehlsart
III (Bezugszeichen 7) einen Steuerspeicherausgang für eine Taktzeit. 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 wircL 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 Mikrobefehlsabruf und der Mikrobefehlsausführung geht aus der Fig. 9 deutlich hervor.
Die Ausführung des ersten Mikrobefehls (Bezugszeichen 1) wird beispielsweise während der dritten Taktperio-
409881/0811
de 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 zwischen den Figuren 10 und 11. Die Fig. 10 zeigt eine Zeitablauf karte,
aus der die vollkommene Parallelität des Mikrobefehlsabrufs
und der Mikrobefehlsausführung für eine Anzahl von verschiedenen Arten von Mikrobefehlen hervorgeht.
Die Fig. 11 zeigt eine ähnliche Zeitablaufkarte, bei der im Vergleich zu der Karte nach der Fig. 10 eine
Parallelität oder eine Überlappung zwischen der Mikrospeicheradreßinkrementation
und der Mikrobefehlsausführung vorliegt, jedoch nicht zwischen dem Mikrospeicherabruf
und der Mikrobefehlsausführung. Bei dem Zeitablauf nach der Karte nach der Fig. 11 tritt somit keine Überlappung
zwischen dem Mikrobefehlsabruf aus dem Mikrospeicherabschnitt
des Hauptspeichers und dem Steuei-befehlsabruf aus dem Steuerspeicher auf.
Wie es aus der Fig. 10 hervorgeht, gestattet die Erfindung eine Parallelität oder eine Überlappung zwischen
der Inkrementierung des Mikrospeicheradreßregisters und der Darbietung des Inhalts dieses Registers
an den Mikrospeicher für aufeinanderfolgende Befehle, eine Parallelität oder Überlappung zwischen, der Darbietung
einer MikroSpeicheradresse an den Mikrospeicher
409881/081 1
und eines Abrufs aus dem MikroSpeicher für aufeinanderfolgende Befehle und eine Parallelität zwischen dem
Abrufen eines Mikrobefehls aus dem Mikrospeicher und dem Abrufen eines Steuerbefehls aus dem Steuerspeieher
für aufeinanderfolgende Befehle. Diese Parallilität oder Überlappung erzeugt eine Art von Rohrleitungseffekt, bei
dem aufeinanderfolgende Mikrobefehle abgerufen und die
vorher abgerufenen Mikrobefehle durch die Rohrleitung
weiter in Richtung auf den Steuerbefehlspuffer geschoben werden, um ausgeführt zu werden.
Infolge der Parallilität der Erfindung erfordern die Inkrementierung der MikroSpeicheradresse, der Mikrospeicherzugriff,
der Empfang des Mikrospeicherabrufs, der Empfang des SteuerSpeicherabrufs und die Ausführung
für einen einzigen Zählzeit-Registertransfer-Mikrobefehl nur vier Taktzeiten. Beim Ablauf nach der Fig. 11 dauert
ein solcher normaler Mikrobefehl sechs Taktzeiten. Andere Zeiteinsparungsbeispiele, die die Anzahl der Taktzeiten
betreffen, die zum Abrufen und Ausführen von verschiedenen Arten von Mikrobefehlen erforderlich sind,
kann man durch Vergleich den Figuren 10 und 11 entnehmen. Diese Einsparungen werden dadurch erreicht, daß
die Inkrementierung der MikroSpeicheradresse zum Erhal-
tr
ten der nächsten Adresse infolge eines Mikrospeicherabrufs
für die vorangegangene Adresse nicht verzögert wird und daß der Mikrospeicherabruf durch einen Steuerspeicherabruf
für den vorangegangenen Mikrobefehl ebenfalls nicht verzögert wird.
4 09881/0811
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 Mikrospeicheradreß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 Zustande 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-
409881/081 1
= ■ - 29 -
fende Mikrobefehl ein erfüllter. Subroutinesprung in der
Zählzeit 1 des Ausführungszustands ist oder wenn eine Eingriffunterbrechungsbedingung,
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 Zustands 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. 4 q g s 8 1
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 Zustande 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 Zμgriff 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.
409881/0811
GRiGIMAL !NSPECTED
2^24931
Ein regulärer Mikrobefehl, der keinen Speicherzugriff erfordertj 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 Taktzeitverzögerung vor der
Ausführung und eine einzige Taktzeitverzögerung nach der Ausführung. Ein Literalmikrobefehl benötigt eine einzige
Taktzeitverzögerungj 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 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 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 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/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-
4 0 9 8 8 1 /0811
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
409881 /0811
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
Datentransf errichtung auf den bidirektiona'len 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).
409881/081 1
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 Peripher
gerä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 Datentransferbedingung durch einen Elektronikbefehl
II ausgeführt ist.
409881 /0811
Der Peripherzeitsteueirungsempfindlichkeitsbefehl 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
potentialmäß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. 403831/0811-
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 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 Eingriffsunterbrechungszustands (oben beschrieben) dient zum Laden einer festen Adresse,
nämlich der Startadresse der Peripherhandhabungsroutinen,
in den Mikrospeicheradreßstapel und zur Kopiereintragung
409881/0811
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 aufidem 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 12 und 13 soll dargelegt werden, daß die erfindungsgemäße Datenverarbeitungseinheit
die obengenannten Bedingungen erfüllt. Das in der Fig. 12 gezeigte Flußdiagramm beschreibt die Operator-
und Parameterabruf mechanismen zur Interpretation von bezüglich der Ebene höheren Sprachen oder S-Sprachen. Das
Flußdiagramm nach der Fig. 13 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-
403881/081 1
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 Microcodes.
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 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-
40388 1/08 11
sieren, die benötigt wird, um die laufenden S-Sprachbefehle
zu implementieren.
In der Fig. 13: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 Quellenlänge 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 Abruf routine ü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-
409881 /081 1 ·
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.
409381 /0811
Da die verschiedenen Ebenen von Subbefehlsvorräten in verschiedenen
Speichern gespeichert sind, können die entsprechenden Befehle aus den betreffenden Speichern in einer
überlappten und auch parallelen Weise abgerufen bzw. geholt werden. Dadurch kommt es bei der Erfindung zu parallelen
Subbefehlsströmen.
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. Weitere Merkmale umfassen
in der Maschinenzustandssteuerung die Verzögerung einer aufeinanderfolgenden Mikrobefehlsausführung, um es beispielsweise
einem einzigen Mikrobefehl zu gestatten, eine große Anzahl von Datentransfers von dem Speicher und innerhalb der
Verarbeitungs- oder Zentraleinheit zu steuern. Darüberhinaus sind Maßnahmen vorgesehen, um die Ausführung des Mikrobefehls,
der eine derart große Anzahl von Datentransfers verlangt, bedingt anzuhalten, und zwar beim Auftreten der in
geeigneter Weise spezifizierten Bedingung.
409 8 31/0811
Claims (21)
1. Datenverarbeitungsanlage enthaltend einen Mikrobef ehlssilbenspeicherabschnitt
und eine Zentraleinheit mit mehreren Allgemeinzweckregistern, mit einer zum Datentransfer an die
Allgemeinzweckregister angeschlossenen Funktionseinheit und mit einem an die Register und die Funktionseinheit angeschlossenen
Steuer speicher, der zur Steuerung des Datentransfers zwischen den Allgemeinzweckregistern und der Funktionseinheit Steuerbefehle enthält,
gekennzeichnet durch an den Mikrobef ehlssilbenspeicherabschnitt (11) angeschlossene Mittel (24, 36) zum Abrufen einer Folge von Mikrobefehlssilben und durch an die Mikrobefehlssilbenabrufmittel und an den Steuerbefehlsspeicher (37) angeschlossene Zeitsteuerungsmittel (39), die veranlassen, daß eine Folge von Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt und eine entsprechende Folge von Steuerbefehlen aus dem Steuerbefehlsspeicher abgerufen werden, wobei der Abruf eines besonderen Steuerbefehls für eine vorangegangene Mikrobefehlssilbe gleichzeitig mit dem Abruf der nächsten Mikrobefehlssilbe in der Folge von Mikrobefehlssilben auftritt.
gekennzeichnet durch an den Mikrobef ehlssilbenspeicherabschnitt (11) angeschlossene Mittel (24, 36) zum Abrufen einer Folge von Mikrobefehlssilben und durch an die Mikrobefehlssilbenabrufmittel und an den Steuerbefehlsspeicher (37) angeschlossene Zeitsteuerungsmittel (39), die veranlassen, daß eine Folge von Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt und eine entsprechende Folge von Steuerbefehlen aus dem Steuerbefehlsspeicher abgerufen werden, wobei der Abruf eines besonderen Steuerbefehls für eine vorangegangene Mikrobefehlssilbe gleichzeitig mit dem Abruf der nächsten Mikrobefehlssilbe in der Folge von Mikrobefehlssilben auftritt.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß das Abrufen der einzelnen Mikrobefehlssilben unter der Steuerung von einem der Steuerbefehle erfolgt.
3. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß ein Datenspeicherabschnitt (11) vorgesehen ist und daß die Zentraleinheit (10) an den Datenspeicher ab schnitt angeschlossene
Mittel (24, 25, 26) zum Abrufen von Datensegmenten aus
dem Datenspeicher ab schnitt aufweist, wobei das Abrufen einer Folge von derartigen Datensegmenten unter der Steuerung eines
einzigen, von einer Mikrobefehlssilbe angeforderten Steuerbefehls erfolgt. 4 0 3 3 8 1/0811
4. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet,
daß die Zentraleinheit an die Zeitsteuerungsmittel (39,40) angeschlossene Mittel (20, 25 bis 35) aufweist, um das Abrufen
einer Folge von Datensegmenten unter der Steuerung eines Steuerbefehls in Abhängigkeit vom Auftreten einer
spezifizierten Bedingung anzuhalten.
5. Datenverarbeitungsanlage nach Anspruch 1,
dadurch gekennzeichnet, daß die Zentraleinheit (10) an den Mikrobefehlssilbenspeicherabschnitt
(11) angeschlossene Mittel (24) aufweist, um eine aus dem Mikrobefehlssilbenspeicherabschnitt abgerufene
Mikrobefehlssilbe zu empfangen und um die Anzahl der
zur Ausführung erforderlichen Taktzeiten vor dem Abrufeneines entsprechenden Steuerbefehls aus dem Steuerbefehlsspeicher zu bestimmen.
6. Datenverarbeitungsanlage nach Anspruch 5, dadurch gekennzeichnet,
daß die Zeitsteuerungsmittel (39) mit den Mikrobefehlssilbenempfangsmitteln
(24) verbunden sind und auf die Anzahl der Taktzeiten, die zum Ausführen einer empfangenen
Mikrobefehlssilbe erforderlich sind, ansprechen, um den Zustand der Zeitsteuerungsmittel zu ändern, und daß die . ■
Zeitsteuerungsmittel verschiedenartige Zustände aufweisen,
einschließlich eines Hängezustands, während dem es erforderlich ist, zusätzliche Mikrobefehlssilben aus dem Mikrobefehlsspeicherabschnitt
(11) abzurufen.·
03881/0811
7. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet,
daß die Zeitsteuerungsmittel (39) mit den Datensegmentempfangsmitteln
(24) verbunden sind und in Übereinstimmung mit der Anzahl der Taktzeiten, die zum Ausführen einer
empfangenen Mikrobefehlssilbe erforderlich sind, ihren Zustand ändern, und daß die Zeitsteuerungsmittel verschiedenartige
Zustände haben, einschließlich eines Hängezustands, während dan es erforderlich ist, zusätzliche Datensegmente
aus dem Makrobefehlsspeicherabschnitt (11) abzurufen.
8. Datenverarbeitungsanlage enthaltend einen Makrobefehlsspeicherabschnitt,
einen Mikrobefehlssilbenspeicherabschnitt und eine Zentraleinheit mit mehreren Allzweckregistern,
mit einer zum Datentransfer an die Allzweckregister angeschlossenen Funktionseinheit und mit einem an die Register
und die Funktionseinheit angeschlossenen Steuerspeicher, der zur Steuerung des Datentransfers zwischen den
Allzweckregistern und der Funktionseinheit Steuerbefehle enthält,
dadurch gekennzeichnet, daß an den Mikrobefehlssilbenspeicherabschnitt (11) Mittel
(24, 36) zum Abrufen einer Folge von Mikrobefehlssilben angeschlossen sind, daß die Mikrobefehls Silbenabruf mittel
Einrichtungen zum Zugriff zu dem Mikrobefehlssilbenspei- .
cherabschnitt und Einrichtungen (24) zum Empfangen einer Silbe aus dem Mikrobefehlssilbenspeicherabschnitt enthalten,
daß mit den Mikrobefehlssilbenabruf mitteln (24, 36)
und mit dem Steuerbefehlsspeicher (37) verbundene Zeitsteuerungsmittel (39) vorgesehen sind, die das Abrufen
einer Folge von Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt
und das Abrufen öiner entsprechenden Folge von Steuerbefehlen aus dem Steuerbefehlsspeicher
(37) veranlassen, wobei das Abrufen eines besonderen Steuerbefehls für eine vorangegangene Mikrobefehlssilbe gleichzeitig
mit dem Abrufen der nächsten Mikrobefehlssilbe in der Folge von Mikrobefehlssilben erfolgt, und daß die Zeit-
40 9 881/0811 .
steuerungsmittel (39) sowohl an die Mikrobefehlsspeicherzugriffseinrichtung
(36) als auch an die Mikrobefehlssilbenempfangseinrichtung
(24) angeschlossen sind, um den Zugriff einer nächstfolgenden Mikrobefehlssilbe gleichzeitig
mit dem Empfang einer vorangegangenen Mikrobefehlssilbe durchzuführen.
9. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet,
daß zum Speichern von Adressen des Mikrobefehlssilbenspeicherabschnitts
ein Adreßregister (36d) vorgesehen ist, daß eine Inkrementierungseinrichtung (36e) mit diesem
Adreßregister verbunden ist und daß die Zeitsteuerungsmittel (39) an das Adreßregister (36d) und an die Inkrementierungseinrichtung
(36e) angeschlossen sind, um den Inhalt des Adreßregisters gleichzeitig mit dem Zugriff einer
vorangegangenen Mikrobefehlssilbe in dem Mikrobefehlssilbenspeicherabschnitt
zu inkrementieren.
10. Datenverarbeitungsanlage enthaltend einen Makrobefehls
speicherabschnitt, einen Mikrobefehlssilbenspeicherabschnitt und eine Zentraleinheit mit mehreren Allzweckregistern,
mit einer zum Datentransfer an die Allzweckregister angeschlossenen Funktionseinheit, mit einem an die
Register und die Funktionseinheit angeschlossenen Steuerspeicher, der zur Steuerung des Datentransfers zVischen den
Allzweckregistern und der Funktionseinheit Steuerbefehle enthält, und mit an den Makrobefehlsspeicherabschnitt angeschlossenen
Mitteln zum Abrufen von Makrobefehlsoperatoren aus diesem Speicherabschnitt,
gekennzeichnet durch an die Makrobefehlsabruf mittel (24, 25, 26) und an den Mikrobefehlssilbenspeicherabschnitt (11) angeschlossene Mittel (24, 36) zum Abrufen einer Folge aus zwei oder mehreren Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt, um einen von dem Makrobefehlsoperator angeforderten Mikrobefehl zu bilden, und durch an die Mikrobefehls-
gekennzeichnet durch an die Makrobefehlsabruf mittel (24, 25, 26) und an den Mikrobefehlssilbenspeicherabschnitt (11) angeschlossene Mittel (24, 36) zum Abrufen einer Folge aus zwei oder mehreren Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt, um einen von dem Makrobefehlsoperator angeforderten Mikrobefehl zu bilden, und durch an die Mikrobefehls-
4 0 9 8 8 1 /081 1
Silbenabrufmittel und an den Steuerbefehlsspeicher (37)
angeschlossene Zeitsteuerungsmittel (39, 40), um das Abrufen einer Folge von Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt
und einer entsprechenden Folge von Steuerbefehlen aus dem Steuerbefehlsspeicher zu
veranlassen, wobei das Abrufen eines besonderen Steuerbefehls für eine vorangegangene Mikrobefehlssilbe gleichzeitig
mit dem Abrufen der nächsten Mikrobefehlssilbe in der Folge der Mikrobefehlssilben erfolgt.
11. Datenverarbeitungsanlage nach Anspruch 10, dadurch gekennzeichnet,
daß das Abrufen einer einzelnen Mikrobefehlssilbe unter der
Steuerung von einem der Steuerbefehle erfolgt.
12. Datenverarbeitungsanlage nach Anspruch 10,
dadurch gekennzeichnet, daß die Zentraleinheit Mittel (36d) zum Abrufen von Datensegmenten
aus dem Mikrobefehlsspeicherabschnitt aufweist und daß das Abrufen einer Folge von derartigen Datensegmenten
unter der Steuerung eines einzigen, von einer Mikrobefehlssilbe angeforderten Steuerbefehls erfolgt.
13. Datenverarbeitungsarilage nach Anspruch 12,
dadurch gekennzeichnet, daß die Zentraleinheit an die Zeitsteuerungsmittel (39, 40)
angeschlossene Mittel (20, 25 bis 35) aufweist, um das Abrufen einer Folge von Datensegmenten unter der Steuerung
eines Steuerbefehls in Abhängigkeit von dem Auftreten einer
spezifizierten Bedingung anzuhalten.
4 0 9 8 8 1 /081 1
14. Datenverarbeitungsanlage nach Anspruch 10, dadurch gekennzeichnet,
daß die Zentraleinheit Mittel (24) aufweist, um eine aus dem Mikrobefehlssilbenspeicherabschnitt abgerufene Mikrobefehlssilbe
zu empfangen und um die zur Ausführung erforderliche Anzahl von Taktzeiten vor dem Abrufen eines
entsprechenden Steuerbefehls aus dem Steuerbefehlsspeicher zu bestimmen.
15» Datenverarbeitungsanlage nach Anspruch 14,
dadurch gekennzeichnet, daß die Zeitsteuerungsmittel (39) an die Mikrobefehlssilbenempfangsmittel
(24) angeschlossen sind und in Abhängigkeit von der Anzahl der Taktzeiten, die zur Ausführung
einer empfangenen Mikrobefehlssilbe erforderlich sind, ihren Zustand ändern und daß die Zeitsteuerungsmittel verschiedenartige
Zustände aufweisen, einschließlich eines Hängezustands, während dem es erforderlich ist, zusätzliche
Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt abzurufen.
16. Datenverarbeitungsanlage nach Anspruch 12, dadurch gekennzeichnet,
daß die Zeitsteuerungsmittel (39) an die Datensegmentempfangseinrichtung (24) angeschlossen sind und in Übereinstimmung
mit der Anzahl der Taktzeiten, die zum Ausführen einer
empfangenen Mikrobefehlssilbe erforderlich sind, ihren Zustand ändern und daß die Zeitsteuerungsmittel verschiedenartige
Zustände haben, einschließlich eines Hängezustands, während dem es erforderlich ist, zusätzliche Datensegmente
aus dem Makrobefenlsspeicherabschnitt abzurufen.
40988 1/08 11
- ua -
17. Verfahren zum Betreiben einer Datenverarbeitungsanlage enthaltend einen Makrobefehlsspeicherabschnitt,
einen Mikrobefehlssilbenspeicherabschnitt und eine Zentraleinheit mit mehreren Allzweckregistern, mit einer zum
Datentransfer an die Allzweckregister angeschlossenen Funktionseinheit und mit einem an die Register und die
Funktionseinheit angeschlossenen Steuerspeicher, der zur Steuerung des Datentransfers zwischen den Allzweckregistern
und der Funktionseinheit Steuerbefehle enthält, dadurch gekennzeichnet, daß beim Abrufen einer Folge von Mikrobefehlssilben aus dem
Mikrobefehlsspeicher zu einem Zeitpunkt jeweils eine Silbe abgerufen wird und daß eine entsprechende Folge von Steuerbefehlen
aus dem Steuerbefehlsspeicher abgerufen wird, wobei das Abrufen eines Steuerbefehls für eine vorangegangene
Mikrobefehlssilbe gleichzeitig mit dem Abrufen des nächstfolgenden
Mikrobefehls erfolgt.
18. Verfahren nach Anspruch 17,
dadurch gekennzeichnet, daß eine Folge von Datensegmenten aus dem Mikrobefehlsspeicherabschnitt unter der Steuerung eines einzigen, durch eine Mikrobefehlssilbe angeforderten Steuerbefehls abgerufen
dadurch gekennzeichnet, daß eine Folge von Datensegmenten aus dem Mikrobefehlsspeicherabschnitt unter der Steuerung eines einzigen, durch eine Mikrobefehlssilbe angeforderten Steuerbefehls abgerufen
19. Verfahren nach Anspruch 18,
dadurch gekennzeichnet, daß das Abrufen einer Folge von Datensegmenten unter der Steuerung eines Steuerbefehls in Abhängigkeit von dem Auftreten einer spezifizierten Bedingung angehalten wird.
dadurch gekennzeichnet, daß das Abrufen einer Folge von Datensegmenten unter der Steuerung eines Steuerbefehls in Abhängigkeit von dem Auftreten einer spezifizierten Bedingung angehalten wird.
Λ 0 9 8 8 1 /0811
2424331
20. Verfahren nach Anspruch 17,
dadurch gekennzeichnet, daß eine aus dem Mikrobefehlsspeicherabschnitt abgerufene Mikrobefehlssilbe empfangen wird und daß die zu ihrer Ausführung erforderliche Anzahl von Taktimpulsen vor dem Abrufen eines entsprechenden Steuerbefehls aus dem Steuerbefehlsspeicher bestimmt wird.
dadurch gekennzeichnet, daß eine aus dem Mikrobefehlsspeicherabschnitt abgerufene Mikrobefehlssilbe empfangen wird und daß die zu ihrer Ausführung erforderliche Anzahl von Taktimpulsen vor dem Abrufen eines entsprechenden Steuerbefehls aus dem Steuerbefehlsspeicher bestimmt wird.
21. Verfahren nach Anspruch 20,
dadurch gekennzeichnet, daß bei Verwendung einer Zentraleinheit mit einer Zeitsteuerungseinrichtung, die verschiedenartige Zustände einschließlich eines Hängezustands aufweist, während dem es erforderlich ist, zusätzliche Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt abzurufen, der Zustand der Zeitsteuerungseinrichtung und der Zentraleinheit in Abhängigkeit von der Bestimmung der zur Ausführung eines Mikrobefehls erforderlichen Anzahl von Taktzeiten vor dem Abrufen eines entsprechenden Steuerbefehls aus dem Steuerbefehlsspeicher geändert wird.
dadurch gekennzeichnet, daß bei Verwendung einer Zentraleinheit mit einer Zeitsteuerungseinrichtung, die verschiedenartige Zustände einschließlich eines Hängezustands aufweist, während dem es erforderlich ist, zusätzliche Mikrobefehlssilben aus dem Mikrobefehlssilbenspeicherabschnitt abzurufen, der Zustand der Zeitsteuerungseinrichtung und der Zentraleinheit in Abhängigkeit von der Bestimmung der zur Ausführung eines Mikrobefehls erforderlichen Anzahl von Taktzeiten vor dem Abrufen eines entsprechenden Steuerbefehls aus dem Steuerbefehlsspeicher geändert wird.
Li/Gu
409881/0811
so
Leerseite
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 true DE2424931A1 (de) | 1975-01-02 |
DE2424931C2 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)
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 |
US4307445A (en) * | 1978-11-17 | 1981-12-22 | Motorola, Inc. | Microprogrammed control apparatus having a two-level control store for data processor |
US4325121A (en) * | 1978-11-17 | 1982-04-13 | Motorola, Inc. | Two-level control store for microprogrammed 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 |
US4493019A (en) * | 1980-05-06 | 1985-01-08 | Burroughs Corporation | Pipelined microprogrammed digital data processor employing microinstruction tasking |
US4493020A (en) * | 1980-05-06 | 1985-01-08 | Burroughs Corporation | Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation |
US4384324A (en) * | 1980-05-06 | 1983-05-17 | Burroughs Corporation | Microprogrammed digital data processing system employing tasking at a microinstruction level |
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 |
DE3376893D1 (en) * | 1982-10-18 | 1988-07-07 | Nec Corp | Information processing apparatus and its instruction control system |
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2023354A1 (de) * | 1969-05-19 | 1970-11-26 | Burroughs Corp | Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit |
DE2122338A1 (de) * | 1970-05-20 | 1971-12-02 | Ibm | Schaltungsanordnung zur Steuerung des Datenflusses in Datenverarbeitungsanlagen |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3389376A (en) * | 1965-07-06 | 1968-06-18 | Burroughs Corp | Micro-program operated multiple addressed memory |
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 |
-
1973
- 1973-06-05 GB GB2671773A patent/GB1426749A/en not_active Expired
- 1973-10-02 US US402747A patent/US3886523A/en not_active Expired - Lifetime
-
1974
- 1974-04-03 IN IN746/CAL/74A patent/IN139847B/en unknown
- 1974-05-10 NL NL7406297A patent/NL7406297A/xx not_active Application Discontinuation
- 1974-05-14 CA CA199,883A patent/CA1010997A/en not_active Expired
- 1974-05-17 FR FR7417330A patent/FR2232797B1/fr not_active Expired
- 1974-05-21 IT IT23033/74A patent/IT1021018B/it active
- 1974-05-21 DD DD178658A patent/DD116683A5/xx unknown
- 1974-05-21 JP JP49058364A patent/JPS5918737B2/ja not_active Expired
- 1974-05-22 BE BE144658A patent/BE815431A/xx not_active IP Right Cessation
- 1974-05-22 DE DE2424931A patent/DE2424931C2/de not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2023354A1 (de) * | 1969-05-19 | 1970-11-26 | Burroughs Corp | Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit |
DE2122338A1 (de) * | 1970-05-20 | 1971-12-02 | Ibm | Schaltungsanordnung zur Steuerung des Datenflusses in Datenverarbeitungsanlagen |
Non-Patent Citations (2)
Title |
---|
Elektronische Datenverarbeitung, 1963, H. 6, S. 288 und 289 * |
Tagungsprotokolle der Spring Joint Computer Conference, 1972, S. 705-723 * |
Also Published As
Publication number | Publication date |
---|---|
JPS5918737B2 (ja) | 1984-04-28 |
IT1021018B (it) | 1978-01-30 |
BE815431A (fr) | 1974-09-16 |
JPS5028956A (de) | 1975-03-24 |
GB1426749A (en) | 1976-03-03 |
IN139847B (de) | 1976-08-07 |
CA1010997A (en) | 1977-05-24 |
AU6868674A (en) | 1975-11-13 |
FR2232797A1 (de) | 1975-01-03 |
US3886523A (en) | 1975-05-27 |
DE2424931C2 (de) | 1985-06-05 |
DD116683A5 (de) | 1975-12-05 |
FR2232797B1 (de) | 1976-12-24 |
NL7406297A (de) | 1974-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2424931A1 (de) | Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten | |
DE2424810A1 (de) | Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen | |
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE2630323B2 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE2543522C2 (de) | Mikroprogrammierbare Datenverarbeitungseinrichtung | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2306115A1 (de) | Datenprozessor mit ablage-mikrosteuerung | |
DE3688232T2 (de) | Datenverarbeitungssystem. | |
DE10048072A1 (de) | Linklisten-DMA-Descriptor-Architektur | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE2426874A1 (de) | Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls | |
DE2458096A1 (de) | Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegung | |
DE3650006T2 (de) | Verfahren und Mittel zum Transportieren von Bytes in einem Rechner mit reduziertem Befehlssatz. | |
EP0130269B1 (de) | Speicherprogrammierbare Steuerung | |
DE1806535B2 (de) | Seriell arbeitende digitale rechenanlage | |
DE2854400C2 (de) | Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE3852432T2 (de) | Befehlssteuerungsvorrichtung für ein Computersystem. | |
DE2336676A1 (de) | Einrichtung zur modifizierung von mikroprogrammbefehlen | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE2440390A1 (de) | Elektronischer rechner | |
DE10201439B4 (de) | Mikroprozessor | |
DE2846520C2 (de) |
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 |