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