DE2612059A1 - Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner - Google Patents

Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner

Info

Publication number
DE2612059A1
DE2612059A1 DE19762612059 DE2612059A DE2612059A1 DE 2612059 A1 DE2612059 A1 DE 2612059A1 DE 19762612059 DE19762612059 DE 19762612059 DE 2612059 A DE2612059 A DE 2612059A DE 2612059 A1 DE2612059 A1 DE 2612059A1
Authority
DE
Germany
Prior art keywords
register
command
address
instruction
bits
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.)
Withdrawn
Application number
DE19762612059
Other languages
English (en)
Inventor
Garvin W Patterson
Marion G Porter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2612059A1 publication Critical patent/DE2612059A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

52O2573 Ge 22. März 1976
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass./ USA
Verfahren und Vorrichtung zum Befehlsabruf und zur Befehlsausführung in einem Universalrechner.
Die Erfindung betrifft ein Verfahren zum Befehlsabruf und zur Befehlsausführung in einem Universalrechner sowie eine Vorrichtung zur Durchführung dieses Verfahrens. Die Erfindung befaßt sich insbesondere mit einer Vorgriffseinrichtung bei einem Befehlsabruf bzw. einer Befehlsausführung.
Im Stand der Technik sind zahlreiche Computersysteme bekannt geworden, die mit einem Befehl-Vorausabruf, einer Befehlr Überlappung, einer Befehl-Simultanbearbeitung oder einer Befehl-Flißbandbearbeitung ausgestattet sind. So zeigt beispielsweise die US-PS 3 254 329 eine Einrichtung, die es gestattet, mehrere
- verschiedene Schritte, die mehreren verschiedenen Befehlen zugeordnet sind, gleichzeitig auszuführen. In diesem speziellen System sind wenigstens zwei voreilende Befehlsregister, mehrere adressierbare Akkumulatorregister und eine arithmetische Recheneinheit vorgesehen. Das Befehlsformat enthält eine Signaladresse eines adressierbaren Akkumulatorregisters', welches seinerseits einen Operanden enthält, der durch die arithmetische Recheneinheit zu verarbeiten ist{und das Befehlsformat enthält ferner die Adresse des Akkumulatorregisters, welches für die Speicherung des Rechenergebnisses vorgesehen ist. Zusätzliche Bits des Befehls zeigen die Adresse eines zu verarbeitenden Operanden im
609842/0887
Hauptspeicher an, bzw. kennzeichnen eine Adresse auf die die Steuerung übergehen soll. Weitere zusätzliche Bits stellen die Adresse eines anderen adressierbaren Registers dar, welches einen Wert speichert/ der zur Modifizierung der Hauptspeicheradresse des durch den Befehl zu verarbeitenden Operanden benutzt wird. Bei dieser Einrichtung wird während der Entschlüsselung des dem auszuführenden Befehl zugeordneten Operanden der Inhalt des Programmzählers der arithmetischen Recheneinheit zwecks Erhöhung seines Zählstandes um 1 zugeführt. Dieser Adressenausgang wird decodiert und beim nächsten Befehl entnommen und in einem der beiden Register abgelegt. Im gleichen Unter-Taktzyklus- aber während verschiedener Zeitperioden-addiert die arithmetische Recheneinheit die Operandenadresse des auszuführenden Befehls zu dem Inhalt des adressierbaren Akkumulatorregisters ,um den Operanden vom Hauptspeicher zu erhalten. Wenn die vorgenannten Operationen vervollständigt sind, ist der auszuführende modifizierte Befehl' in dem zweiten Befehlsregister gespeichert, und es wird der folgende Befehl entschlüsselt und in dem ersten Speicherregister gespeichert. Darauffolgend wird in der gleichen Weise eine neuer Befehl nach der Erhöhung des Programmzählers entschlüsselt und in dem ersten Befehlsregister gespeichert, wenn der vorangegangene Befehl in das zweite Befehlsspeicherregister übertragen worden ist und der auszuführende Befehl nahezu vollständig bearbeitet ist. Auf diese Weise kann die Entschlüsselung von anderen Befehlen und ihre Verarbeitung während der Ausführung eines vorangegangenen Befehles auftreten. In der zuvor erwähnten Patentschrift sind ferner Einrichtungen zum Vergleich der Adresse des gespeicherten Ergebnisses mit den Adressen der Operanden der beiden in den Speicherregistern gespeicherten Befehle beschrieben, die der Feststellung dienen, ob die zuvor erwähnte Überlappungsoperation ohne Unterbrechung fortgesetzt werden soll oder nicht. Wenn der Vergleich Übereinstimmung hinsichtlich der Adressen des Ergebnisses und irgendeiner der Operandenadressen in den nächsten beiden Befehlen ergibt, so wird die Überlappungsoperation modifiziert. Wenn das Ergebnis mit der Adresse des adressierbaren Akkumulatorregisters übereinstimmt, so wird die Überlappungsoperation nicht modifiziert
609842/0887
~3~ '/612059
und es werden die errechneten Ergebnisse direkt zurück zu der arithmetischen Recheneinheit zwecks weiterer Verarbeitung übertragen.
Der erwähnte Stand der Technik beschreibt eine Überlappungsoperation, wobei ein Befehlabruf eines nachfolgenden Befehles der vollständigen Ausführung eines zuvor entschlüsselten Befehles vorausgeht. Die Adresse des Befehles, die den Inhalt des adressierbaren Akkumulatorregisters bestimmt, das seinerseits einen Operanden für die Verarbeitung durch die arithmetische Recheneinheit speichert, wird bis zu dem Zeitpunkt in dem Register gespeichert, bis zu dem die arithmetische Recheneinheit ein Ergebnis basierend auf diesem Befehl errechnet hat, wobei dieses Ergebnis mit irgendeiner der Operandenadressen der nächsten beiden Befehle vergleichen wird. Obwohl die Befehle für den Prozessor nach Beendigung des gerade ausgeführten Befehls sofort verfügbar sind, kann dennoch ein Zeitverlust bei der Befehlsausführung auftreten, aufgrund der Tatsache, daß eine arithmetische Recheneinheit eine arithmetische Operation in Übereinstimmung mit einem aus dem Hauptspeicher entnommenen Befehl ausführen kann, während der nächste verfügbare ebenfalls aus dem Hauptspeicher entnommene Befehl untätig bleibt, obwohl er eine arithmetische Operation nicht erfordert. Durch die US-PS 3 202 969 wird diesem Problem des Zeitverlustes Rechnung getragen. Das dort beschriebene System sieht eine Entnahme und Entschlüsselung eines Befehls aus dem Speicfter vor, wobei die Befehlsausführung bereits ausgelöst wird, während die arithmetische Operation eines gerade bearbeiteten Befehls stattfindet.
In dem Aufsatz "System Design of a Small Fast Digital Computer", IEEE, Dezember 1963 ist ein weiteres System beschrieben, welches eine voreilende Steuerung bzw. eine Vorgriff einrichtung zur Verarbeitung mehr als eines Befehles zu jedem Zeitpunkt beschreibt. Das System umfaßt eine Steuereinheit, die eine Befehlssteuerung zum Abruf von Befehlen aus einem Speicher vorzeitig vor ihrer Ausführung aufweist; und es umfaßt ferner eine Operandensteuerung, die die Adressen von Operanden modifiziert und die Operanden abrufend es umfaßt schließlich eine arithmetische Steuerung, die
60 984 2/0887
26 1 /»U h 9
die Funktion ausführt, die durch die Befehle hinsichtlich der Operanden vorgegeben ist.
Ein weiteres bekanntes System ist in der US-PS 3 162 841 beschrieben. Bei diesem bekannten System sind Speicherregister zur Speicherung von Befehlsadressen und Operandenpegeln vor ihrer Verarbeitung vorgesehen und ein voreilender Addierer errechnet die Adresse des nächsten Befehles, so daß für den Fall,daß ein in einem der Vorgriff-Register enthaltener Befehl zur Ausführung in die arithmetische Einheit übertragen wird, die Befehlsadresse in einem zugeordneten Vorgriff-Befehlszähler, der die Adresse des nächsten Befehles repräsentiert, in einen Befehlszählerpuffer übertragen wird, wobei der Puffer die Adresse des nächsten auszuführenden Befehles während der Ausführung eines gegebenen Befehles enthält.
Ein Computersystem, das von einer Fließbandverarbeitung Gebrauch macht, ist dem Aufsatz: "The IBM System/360 Model 91: Machine Philosphoy and Instruction Handling" IBM Journal, Januar 1967, Seiten 8-24 entnehmbar. Dieser Artikel erläutert die grundlegenden Organisationsprinzipien eines Computersystems mit hoher Leistung, die durch einen Simultanbetrieb und die Überlagerung getrennter Befehlsfunktionen in größtmöglichem Rahmen erzielt wird. Ein Diagramm auf Seite 9 dieser Veröffentlichung veranschaulicht die gleichzeitige Berücksichtigung aufeinanderfolgender Befehle. Es ist erkennbar, daß auf einen zweiten Befehl Zugriff genommen werden kann, bevor ein erster Befehl decodiert ist und die Operandenadresse bestimmt bzw. der Operand abgerufen ist. Durch diese Fließband-Verarbeitungstechnik kann die interne Rechenleistung eines Computers gegenüber einer konventionellen Verarbeitung um eins bis zwei Größenordnungen gesteigert werden. Diese Verarbeitungstechnik weist jedoch aufgrund der Tatsache, daß ein einfacher Nachrichtenaustausch zwischen benachbarten Flißbandstationen nur in unzulänglicher Weise möglich ist, gewisse Nachteile bei einer Listenverarbeitungf sowie bei Verzweigungen und Unterbrechungen auf. Da es sich herausgestellt hat, daß ungefähr 33% aller ausgeführten Befehle
609842/088 7
Verzweigungsbefehle sind, ist die Leistung dieses bekannten Computersystems nicht in jeder Hinsicht als zufriedenstellend zu bezeichnen.
Es ist die Aufgabe der vorliegenden Erfindung eine Befehlabruf- und Befehlausführungseinrichtung einer Zentraleinheit so auszubilden/ daß aufgrund einer verbesserten Vorgriffstechnik der Informationsaustausch zwischen dem letzten Schritt eines Befehles und dem ersten Schritt eines anderen Befehles verbessert wird. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Der verbesserte Befehl-Vorgriffsmechanismus gemäß der Erfindung erlaubt den Beginn der Bearbeitung des nächsten auszuführenden Software-Befehles während des letzten Schrittes des gerade bearbeiteten Software-Befehles. Gleichzeitig mit diesem letzten Schritt beendest der erste Schritt des nächsten auszuführenden Software-Befehles den gerade bearbeiteten Befehl. Der gerade bearbeitete Software-Befehl erfordert somit keinen zusätzlichen Taktzyklus zu seiner Beendigung, da dieser Zyklus zur Auslösung der Verarbeitung des nächsten Software-Befehles benutzt wird. Da die Verarbeitung des nächsten auszuführenden Software-Befehles einen Taktzyklus vor dem Ende des gerade bearbeiteten Software-Befehles beginnt und da während dieses gleichen Taktzyklus der nächste auszuführende Befehl die Schritte zur Beendigung des gerade bearbeiteten Software-Befehles unternimmt, können zwei Taktzyklen eingespart werden. Diese Technik ist besonders vorteilhaft bei Verzwexgungsoperatxonen, wo der nächste auszuführende Befehl noch nicht in dem Befehl-Vorgriffsregister stehen kann.
Anhand eines in den Figuren der beiliegenden Zeichnung dargestellten Ausführungsbeispieles wird die Erfindung im folgenden näher erläutert. Es zeigen:
609 8 4 2/0887
-6- 26 IX(IbFl
Figur 1 ein schematisches Blockdiagramm eines von der Erfindung Gebrauch machenden Computersystemes; Figuren 2a bis 2L Datenstrukturdiagramme von verschiedenen von der Erfindung benutzten Registern; Figuren 2N und 2M das Format eines typischen Von der Erfindung benutzten Befehles;
Figur 3 ein Blockdiagramm eines Prozessors gemäß der Erfindung ;
Figur 4 ein Taktdiagramm für die herkömmliche Methode eines Befehlsabrufes und
Figur 5 ein Taktdiagramm eines Befehlsabrufes und einer Befehlsausführung gemäß der Erfindung.
Gemäß Figur 1 ist ein typisches von der Erfindung Gebrauch machendes Comutersystem dargestellt. Dieses System weist eine Systemschnittstelleneinheit SIU 100 auf, die ihrerseits eine Prioritätsunterbrechungs- und Zuteileranordnung 101 und 102 enthält. Die Syst^emschnittstelleneinheit 100 erzeugt die Verbindung zwischen den Elementen des Datenverarbeitungssystems. Zwecks Zugriff zu internen oder externen Speichern 121, 122 bzw. 122a und 123 durch aktive Prozessormodule 103 - 106, ein !Configurations Wartungsfeld 124 usw. sieht die Schnittstelleneinheit 100 eine direkte Adressierung von Hochgeschwindigkeits- und Niedriggeschwindigkeitsmultiplexern 107, 112 und 113 und von Steueradaptern 108, 109, 134 und 135 durch die Prozessoren 1o3-106 vor. Die Unterbrechungsanordnung 101 und die Verteileranordnung 102 steuern die Unterbrechungsprozedur und führen die Prozessorzuteilung in der geforderten Weise aus. Jeder Prozessor IOP/P 103-106 weist typischerweise 16 Register 130-133 für jeden einem Prozess zugeordneten Prioritätsrang auf oder es sind insgesamt 128 Register pro Prozessor vorgesehen, die 128 Worte speichern können. Die Register 130-133 werden in der nachfolgenden Beschreibung als Zwischenspeicher bezeichnet und weiter unten näher beschrieben. Jeder Prozessor IOP/P stellt einen Mehrzweck-Rechenprozessor dar mit einer herkömmlichen Ausrüstung von Register-Register-, Register-Speicher-, Sofort-^, Verzweigung^, Bitfeld- und Verschiebebefehlen. Diese Prozessoren können als Eingang/
fi 0 Si HA 2 / 0 S 8 7
Ausgang-Prozessoren (IOP) benutzt werden, deren Funktionen die Einleitung und Beendigung von Ein/Ausgang-Befehlsfolgen, das Abrufen, das überprüfen und das Übersetzen von Kanalprogrammen umfassen und die eine direkte Steuerung von peripheren Geräten mit niedriger Geschwindigkeit, wie beispielsweise von Aufzeichnungseinheiten und Datenübermittlungseinheiten ermöglichen. Die Prozessoren 103-106 sind über Anschlüsse H, G, F und E mit der Schnittstelleneinheit 100 verbunden und stehen mit dieser im Nachrichtenaustausch. Der interne Speicher 121, 122 und die Prozessoren 103-106 sind an die Schnittstelleneinheit SIU 100 über Anschlüsse LM und LM.. bzw. H-E angeschlossen. Jeder der internen Speicher 121- 122 ist als Lese/Schreibspeicher 136, 137 organisiert und enthält zusätzlich eine Festwertspeicher ROM-138, 139 mit einem wahlfreien Pufferspeicher 140, 141. Die Datenbreite der Anschlüsse LMQ bzw. LM.. beträgt 36 Bitplus 4 Bit für eine Paritätsprüfung. Die Größe des internen Speichers beträgt typischerweise 256K oder 512K Bits, wobei die Größe K 1024 Bytes entspricht. Die externen Speicheradapter 122a, 123 werden benutzt, wenn die Schnittstelleneinheit SIU 1oo mit ihren Prozes- · soren und peripheren Geräten Teil eines größeren Mehrzweck-Computer systems bildet. Die externen Speicheradapter (REMA) bilden sodann eine Einrichtung zum Auswechseln der Steuerung und der Datenübertragung zwischen den Prozessoren 103-106 und den externen Speichern 122b und 123b eines anderen Mehrzweck-Computer systerns, das mit Med 6 bezeichnet ist. Bis zu zwei Anschlüsse 0C1 β und Jf1 <T sind für jeden der externen Speicheradapter (REMA) 122a, 123 vorgesehen, wobei jeder Anschluß einen 40 Bit-Datenweg als Ein- und Ausgang zwischen dem dargestellten Computersystem und einem großen nicht dargestellten Computersystem besitzt. Die externen Speicheradapter 122a, 123 sind über Anschlüsse RMQ und RM. an die Schnittstelleneinheit SIU 100 angeschlossen. Es sei hier drauf verwiesen, daß primäre und sekundäre Steuerblöcke, die weiter unten näher beschrieben werden, in den externen Speichern 122b, 123b und in den internen Speichern 121, 122 gespeichert sind.
6098A2/0887
" 8 " 261/!!h9
Ein Hochgeschwindigkeitsmultiplexer 107 erzeugt eine direkte Steuerung der Datenübertragung zwischen peripheren Geräten mit hoher Geschwindigkeit, z.B. der Platteneinheit 110 und der Bandeinheit 111 und dem internen Speicher 121, 122. Der Hochgeschwindigkeitsmultiplexer 107 bildet eine Schnittstelle zwischen dem Anschi J2 A der Schnittstelleneinheit SIU 100 und den peripheren Geräten. Jeder Niedriggeschwindigkeitsmultiplexer 112, 113 gestattet die direkte Steuerung eines Gerätes mit niedriger Geschwindigkeit durch einen Prozessor 103-106, wobei solche peripheren Geräte beispielsweise in Form von Kartenstanzern118, Druckern 119 und einerKonsole 120 gegeben sind, die über Geräteadapter-Schnittstelleneinheiten DAI 115 und 116 und 117 an die Multiplexer angeschlossen sind.
Gemäß den Figuren 2a bis 2L sind allgemein zugängliche Register dargestellt, d.h. jene Prozessorregister, auf die durch Prozessor-Software-Befehle Zugriff genommen werden kann. Folgende Register bilden die zugänglichen Register eines jeden Prozessors IOP/P:
a. Prozeß-Zustandsregister (PSR)
b. Befehlszähler (IC)
c. Seitentabellen-Basisregister (PTBR)
d. Allgemeinregister (GR1s)
e. Steuerblockbasisregister (CBBR)
f. Prozessteuerregister (PCR)
Die Register PSR, IC, PTBR und GR's sind im Zwischenspeicher von 16 36-Bit-Registern abgelegt und in der in Figur 2A dargestellten Weise zugeordnet.
Prozeß-Zustandsregister (PSR) Figur 2B - Das Prozeß-Zustandsregister speichert Information, die für die Steuerung des laufenden Prozesses von bedeutung ist. Das Register besitzt das Format gemäß Figur 2B:
Steuerung(Böte 0-7) Die Steuerung bestimmt die Unterbrechungsquelle
P (Bit 8) _ Zugriffsrecht. Haupt (O)- oder Neben (1)-Betrieb.
R (Bit 9) _ Externes Register. Bestimmte nicht im Prozessor IOP/P befindliche Register können nicht verändert werden, wenn dieses Bit gesetzt ist.
ß 0 9842/0887
A (Bit 10) - Adressenmodus. Absolute (O)- oder Seiten (1)-
Adressierweise.
CC (Bits 11-12) Zustandscode. Die Bedeutung des Zustands-
codes ist für jeden lOP/P-Befehl gegeben. Im allgemeinen entspricht:
Ergebnis = 0 CC-*- 0
Ergebnis < 0 CC-*- 1
Ergebnis > 0 CC <*- 2
Überlauf CC <- 3
C (Bit 13) - Übertrags-Bit des Addierers. Übertrag (1)
oder kein Übertrag (0) ergibt sich aus der Ausführung von Befehlen unter Heranziehung der arithmetischen Funktionen des Addierers. (Addieren, Subtrahieren, Multiplizieren, Dividieren, Vergleichen und Negieren)
Prozess-Zeit- Ein Zeitgeber, der periodisch während der geber(Bit 14-35)Bearbeitung des Prozesses herabgezählt wird.
Eine Zeitgeber-Auswurfausnähme tritt auf, wenn der Zeitgeber den Wert Null erreicht. Der Zeitgeber wird jedesmal beim Ablauf von 512 Taktzyklen des Prozessors um 1 zurückgestellt. Bei einer Zykluszeit von 8o ns führt dies zu einem Minimalwert von urtge-/" fähr 40 Ais und einem Maximalwert von 2,67 min.
Entsprechend der Zugriffsfrequenz zu dem Prozess-Zustandsregister PSR wird entweder für eine Modifikation oder eine Bezugnahme der tatsächliche Wert des laufenden Prozesses in einem speziellen Register außerhalb des nicht dargestellten Allgemeinregister-Zwischenspeichers abgespeichert. Änderungen in dem Register werden aus Leistungsgründen in dem Allgemeinregister GR_ nicht berücksichtigt. Dieser dem Prozeßzustandsregister PSR zugeordnete Zwischenspeicher wird nur zur Sicherung des laufenden PSR-Wertes für den Fall einer Unterbrechung benutzt. Alle Befehle, welche das Allgemeinregister GRQ als einen BestimmungsOperanden kennzeichnen, veranlassen eine Speicherung des Ergebnisses in dem Spezialregister für den PSR-Wert, wodurch das Allgemeinregister GRQ keine Veränderung erführt. Ein spezieller Befehl kopiert den Inhalt des Prozeßzustandsregisters PSR in ein Generalregister GR,.so daß dessen Inhalb als ein Operand benutzt werden kann.
609842/0 887
Befehlszähler (IC) Figur 2C - Der Befehlszähler speichert die Adresse des laufenden Befehls. Wenn Befehle eine Halbwort-Ausrichtung aufweisen, so weist das niedrigstrangige Bit immer den Wert Null auf. Der Befehlszählerinhalt ist im Generalregister GR1 abgelegt und er besitzt das Format gemäß Figur 2C:
L/R (Bit O) - Intern/Extern (O) bestimmt den internen Speicher
121, 122; (1) bestimmt den externen Speicher 122b, 123b
S (Bits 1-3) - Steuerung. Bestimmt, welcher externe Speicher
für die externe Speicherbezugnahme ausgewählt wird.
RFU (Bits·4-8)- Reserviert für zukünftigen Gebrauch IC (Bits-9-35)- Die (Byte)-Adresse des laufenden Befehls.
Seitentabellen-Basisregister (PTPR) Figur 2D - Das Seitentabellen-Basisregister verweist auf die Seitentabelle, die benutzt wird, um eine seitenbezogene Adressenwiederauffindung für den laufenden Prozeß zu erzeugen. Sie kann nur im Hauptbetrieb geladen werden. Das Register PTPR ist im Generalregister GR15 abgelegt und weist das Format gemäß Figur 2D auf:
L/R (bit 0) - Intern/Extern
S (Bits 1-3) - Steuerung
Programm Nr.(Bits 4-8) - Programmnummer. Ein Feld, welches von der
Software benutzt werden kann, um eine zusätzliche Programmxdentifizierung durchzuführen. Dieses Feld wird von der Prozessor-Hardware nicht beachtet.
Seitentabellen-Basis - Dies ist die absolute Adresse der Basis (Bxts 9-29)
Tabelle des seitentabellenwortes für diesen Prozeß. Wenn die Adresse auf 27 Bits durch addieren von sechs Nullstellen an der rechten Seite aufgefüllt ist, so müssen die Seitentabellen-Adressen kongruent zu 0 mod 64 (Bytes) sein. Kennschlüssel (Bits 30-35) Dieser Kennschlüssel stellt einen
Prozeßidentifizierer dar, der benutzt wird, um Seitentabellenworte den Prozessen zuzuordnen .
609842/0887
?B17üR9
Allgemeinregister (GR) - Die verbleibenden 13 Register GR0 - GR14 der zugünglichen Register gemäß Figur 2A sind Allgemeinregister. Diese können als Quellen- oder Bestimmungsoperanden benutzt werden oder auch als Erst- oder Zweit-Pegeladressenmodifizierer.
Steuerblockbasis-Register (CBBR) Figur 2E - Die Steuerblockbasis (CBB) gemäß den Figuren 2F und 2G ist eine absolute Adresse, welche auf die Basisadresse im Speicher des Ausnahmesteuerblocks(ECB) gemäß Figur 2J und des Unterbrechungssteuerblocks (ICB) gemäß der Tabelle in Figur 2J hinweist. Das Steuerblock-Basisregister ist in dem dem Allgemeinregister GRQ zugeordneten Zwischenspeicher für den Prozeß mit dem höchsten Prioritätsrang abgelegt. Zwei Werte CBB1 ein primärer und ein sekundärer,sind in dem Register abgelegt, welches das Format gemäß Figur 2E aufweist. Der erste Wert CBB gemäß Figur 2F wird für alle Ausnahmen benutzt, und für alle Unterbrechungen mit Ausnahme jener, die den internen Speicherfehlern zugeordnet sind. Im Falle der Benutzung ist der primäre CBB-Wert gemäß Figur 2F aμsgebildet. Diese. Ausbildung gestattet die Speicherung von Basen der Tabellen des Ausnahmesteuerblockes ECB und des Unterbrechungssteuerblockes ICB an, irgendeiner 512-Wortgrenze in irgendeinem Speicher. In Figur 2F stellen dar:
L/R (Bit 0) - Interner oder externer Speicher (Siäie Fig. 2C).
S (Bits 1-3) - Siehe Figur 2C
RFU (Bits 4-8) - Siehe Figur 2C
CBB1 (Bits 9-24) Adresse des primären Ausnahme-Steuerblockes
oder des primären Unterbrechungs-Steuerblockes.
Bits 25-35 - Gefüllt mit Nullstellen.
Der zweite CBB-Wert ist in Figur 2G dargestellt und wird aufgerufen bei Unterbrechungen entsprechend interner Speicherfehler. Bei seinem Gebrauch ist der zweite CBB-Wert gemäß Figur 2G ausgebildet. Diese Ausbildung gestattet die Ablage der Basen der Tabellen des Ausnahmesteuerblockes ECB und des Unterbrechungssteuerblockes ICB an einer 512-Wortgrenze innerhalb der ersten 64K irgendeines Speichers. Gemäß Figur 2G bedeuten:
ORIGINAL INSPECTED •R 0 9 8 k 11 0 8 8 7
L/R (Bit O) - Interner oder externer Speicher (Siehe Fig.2C) S (Bits 1-3) - Steuerung. Siehe Fig.2C RFU (Bits 4-8) - Reserviert für zukünftigen Gebrauch Bits 9-17 - Gefüllt mit Nullstellen CBB2 (Bits 28-24)Adresse des zweiten Ausnahme-Steuerblockes oder
des zweiten Unterbrechungs-Steuerblockes. Bits 25-35 - Gefüllt mit Nullstellen.
Die Ausnahme-Steuerblöcke und die Unterbrechungs-Steuerblöcke sind in Bezug auf die Steuerblockbasis CBB-wie in Figur 2H dargestelltgespeichert. Es sei an dieser Stelle vermerkt, daß hinsichtlich der Adresse der Unterbrechungs-Steuerblöcke ICB, bezogen auf die Steuerblockbasis CBB, die relative Adresse der Unterbrechungs-Steuerblöcke zu der Steuerblockbasis hinzuaddiert wird, während hinsichtlich der Adresse der Ausnahme-Steuerblöcke ECB deren relative Adresse von der Adresse der Steuerblockbasis CBB subtrahiert wird.
Prozeß-Steuerregister (PCR) - Ein Prozeßsteuerregxster (PCR) ist allen Prioritätsrängen gemeinsam. Es weist das Format gemäß Figur21 auf:
. Ausnahmen (Bits 0-8)Jedes Bit bestimmt eine Nicht-Hauptspeicherausnahme MME eines besonderen Typs
Paritätsfehler - Sie bestimmen den Ablaufpunkt in dem Prozessorf ■ an welchem ein Paritätsfehler festgestellt
wurde.
LZ (Bit 16) - Es liegt keine Antwort auf eine Unterbrechung
mit dem Rang Null.vor.
RFU (Bit 17) - Reserviert für zukünftigen Hardware-Gebrauch T&D (Bit 18) - T&D-Betrieb. Ein Haltbefehl stoppt den Prozessor.
Alle Unterbrechungen bleiben unbeachtet. ROM (Bit 19) - ROM-Bit. Steuerzugriff zu dem Festwertspeicher RFU (Bits 20-22)'- Reserviert für zukünftigen Hardware-Gebrauch
Prozessor Nr.u.Rang-Prozessor Nr. und Prioritätsrang des Prozesses (Bits 23-26)
Sperr (Bit 27) - Unterbrechungs-Sperrbit
UNT.ANF.(Bits28-35)-Unterbrechungs-Anforderungs-Bits. Jedes gesetzte Bit bestimmt eine Software-Satzunterbrechung auf einem Pegelrang entsprechend
6 0 9 8 4 2 / 0 8 8 7
Vb ! /DhM
der Bit-Position. Die Pegelanforderung 7 (Bit 35) ist immer gesetzt. Die Prozessor-Satzunterbrechungen mit den Pegeln 0-7 benutzen entsprechend die Bits 8-15 des Unterbrechungs-Steuerblocks ICB.
Ausnahmen
Ausnahmen sind vom Prozessor festgestellte Zustände, die einen automatischen Eintritt in eine Ausnahmeverarbeitungsroutine veranlassen. Ausnahmezustände können allmählich erzeugt werden oder sie können das Ergebnis eines Programmierfehlers oder eines Hardwarefehlers außerhalb des Prozessors sein. Die Ausnahmebedingungen sind wie unten dargestellt definiert. Für Nicht-Hauptspeicherausnahmen ist der Zusammenhang zwischen der Art der Ausnahme und der Bit-Position des Prozeßsteuerregisters PCR in Figur 21 dargestellt.
PCR-Bit in v Figur 21 Ausnahmetyp
0 Operation nicht vollständig(ONC). Keine Reaktion der Schnittstelleneinheit SIU auf ARA oder ARDA.
1 Seitenadressen-Grenzfehler (Kennschlüsselprüfung)
2 Seitenzugriffsfehler
3 · Seite im Speicher nicht vorhanden
4 Illegale Operation (Ungültiger Befehl, illegaler Nebenbefehl oder illegale Nebenoperation)
5 Prozeßzeitger-Ablauf
6 Überlauf, wenn PSR CC = 11, Teilungsprüfung,wenn PSR CC = 00.
7 Verriegelungsfehler (Sperrunterbrechung für mehr als 40/us) .
8 Adressen-Fehlausrichtung
Ausnahmezustände werden durch eine Vier-Bit-Ausnahmenummer gekennzeichnet. Für Hauptbetriebs-Eingangsstellenausnahmen wird diese Nummer von den Bits 10-14 eines nicht dargestellten Befehls entnommen. In allen anderen Fällen weist die Ausnahmenummer den Wert Null auf. Die Ausnahmenummer wird als eine Ausnahme-Steuerblocknummer (ECB-Nummer) benutzt, um einen Vierwort-Ausnahme-Steuerblock (ECB) zu bestimmen, der auf die Ausnahrae-Verarbeitungsroutine verweist. Die Byte-Adresse eines Ausnahmesfeuerblockes ECB ist gegeben durch:
6 0 9 8 4 2 / Ü 8 8 7 u™GINal
ϊ 6 ι '?. Π h 9
ECB-Adresse = Steuerblockbasis - 16 (ECB Nr. + 1) Das Format des Ausnahme-Steuerblockes ECB ist in Figur 2J dargestellt. Gemäß Figur 2J ist ein PSR-Wort entsprechend Figur 2B an der ersten Wortstelle abgelegt. Ein IC-Wort gemäß Figur 2C ist an der zweiten Wortstelle abgelegt. Weiterhin ist eine Bereichssicherungs-Hinweisadresse SAP für das Prozessorpar 0 an der dritten Wortstelle des Ausnahme-Steuerblockes ECB 0 und eine Bereichssicherungs-Hinweisadresse für das Prozessorpaar 1 an der dritten Wortstelle des Ausnahme-Steuerblockes 1 gemäß Figur 2H abgelegt.
Bevor mit einer Ausnahme-Verarbeitungsroutine begonnen werden kann, muß wichtige Information über den laufenden Prozeß gesichert werden. Diese Sicherung erfolgt als Teil einer Prozessorantwort auf eine Ausnahme. Da die Ausnahmeauftritte verschachtelt sein können, z.B. kann eine zweite Ausnahme auftreten, bevor die Verarbeitung der ersten Ausnahme beendigt ist, wird ein Stapel benutzt, um Platz für die sichere Speicherung des Prozesses zu schaffen. Die /Stapelhinweisadresse wird als Sicherungsbereich-Hinweisadresse SAP bezeichnet und an der dritten Wortstelle des Ausnahme-Steuerblockes ECBO abgelegt. Mehr-Prozessorsysteme erfordern einen zweiten Stapel und die Sicherheitsbereich-Hinweisadresse für den zweiten Prozessor wird an der dritten Wortstelle des Ausnahme-Steuerblockes ECB 1 abgelegt.
Wenn eine Ausnahme festgestellt wird, sovdrd die geeignete Sicherungsbereich-Hinweisadresse aufgesucht und die Information über den ablaufenden Prozeß in dem Stapel in der Reihenfolge gemäß Figur 2K abgelegt. Die Sicherheitsbereichs-Hinweisadresse wird entsprechend ergänzt. Der in dem Stapel gemäß Figur 2K gespeicherte Zählstand des Befehlszählers IC verweist auf den Befehl, der auf denjenigen innerhalb des Prozesses, folgt, der zu dem Zeitpunkt vorlag, wo die Ausnahme festgestellt wurde. Die in dem letzten Stapelspeicherplatz gespeicherte Adresse ist die letzte interessierende Adresse, die vor der Feststellung der Ausnahme erzeugt wurde. Nachdem diese Information über den laufenden Prozeß in dem Stapel 2K sicher abgespeichert ist, werden die Inhalte
609842/0887
? 6 i ? Π R 9
des Prozeßzustandsregister PSR,des Befehlszählers IC und des Seitentabellen-Basisregisters PTBR aus dem geeigneten Ausnahme-Steuerblock geladen und die durch diesen Prozessor benutzte Adresse der Sicherheitsbereichs-Hinweisadresse wird in das Allgemeinregister GR2 geladen. Auf diese Weise wird der Eintritt in die Ausnahme-Verarbeitungsroutine vervollständigt. Nach der Vervollständigung gibt die Ausnahme-Vaarbeitungsrou.tine einen nicht dargestellten Spezialbefehl RMM aus, um zu dem Prozeß zurückzukehren, in.welchem die Ausnahme festgestellt worden war. Dieser Befehl lädt die Inhalte von PSR, IC, GR2, GR3, GR4,und PCR und PTBR aus dem Stapel heraus und erniedrigt die Sicherheitsbereichs-Hinweisadresse um 1. Wenn Ausnahmen und RMM-Befehle nicht paarweise auftreten, so muß die Ausnahme-Verarbeitungs-Software sicherstellen, daß der Stapel aufrechterhalten bleibt. Es gibt keine Fehlerüberprüfung hinsichtlich der Software-Handhabung der Stapel-Hinweisadresse oder hinsichtlich des Stapel^-Überlaufs oder -Unterlaufs.
Unterbrechungen
Unterbrechungen sind außerhalb des Prozessors festgestellte Ereignisse,*welche eine Reaktion des Prozessors erfordern. Unterbrechungen des Prozessors IOP/P können einen von acht Prioritätsrängen aufweisen. Der Rang Null ist der höchste Prioritätsrang und der Rang 7 entspricht dem niedrigsten Prioritätsrang. Um die zum Ansprechen auf eine Unterbrechungsanforderung erforderliche Zeit zu minimalisieren, sieht der Prozessor IOP/P einen vollständigen Satz von Rofejistern für jeden der acht Prioritätsränge vor. Wenn eine Unterbrechung die Auslösung eines neuen Prozesses veranlaßt, so bleibt der gerade laufende Prozeß unversehrt in den Registern,«die dem laufenden Prioritätsrang zugeordnet sind. Die Steuerung kann auf den unterbrochenen Prozeß zurückkehren, indem der diesem Prozeß zugeordnete Prioritätsrang einfach reakti viert wird. Die Notwendigkeit der sicheren Speicherung und Neuspeicherung unterbrochener Prozesse zusammen mit dem damit verbundenen Aufwand kann entfallen.
809842/0 88 7
2 6 1 ? O 5 9
Die 16 Register für jeden Prioritätsrang sind in aufeinanderfolgenden Blöcken in dem Zwischenspeicher 328 des IOP/P mit 128 Bit-Wortlänge abgelegt. Die Register für den Prioritätsrang 0 befinden sich an den Speicherplätzen 0-15 des Zwischenspeichers. Da das Prozeßzustandsregister PSR für den Prioritätsrang 0 niemals in den Zwischenspeicher übertragen wird, da ein Prozeß mit dem Prioritätsrang 0 nicht unterbrochen werden kann, wird der Speicherplatz 0 des Zwischenspeichers zur Speicherung der Steuerblockbasis benutzt, obgleich andere Register mit dem Prioritätsrang 0 benutzt werden könnten. Ein Nachrichtenaustausch zwischen Registern auf verschiedenem Prioritätsrang ist nur über nicht dargestellte Hauptbetriebs-Kopierbefehle möglich, die den Zwischenspeicher adressieren.
Die System-Schnittenstelleneinheit SIU-100 des Prozessors IOP überwacht konstant den laufenden Prozeßrang des Prozessors und fordert Unterbrechungen von den Eingang/Ausgang-Systemmodulen an. Jede Unterbrechungsanforderung bestimmt die Nummer des zu unterbrechenden Prozessors, die Priortätsrangnummer der Anforderung und die Steuerung, um den Unterbrechungsanforderer zu bestimmen. Diese Information befindet sich in jedem Modul,der Unterbrechungen anfordern kann und hinsichtlich der meisten Module wird diese Information unter Verwendung programmierbarer Schnittstellenbefehle gebildet. Immer wenn eine Unterbrechungsanforderung mit einem höheren Prioritätsrang als der gerade laufende Prozessorrang vorliegt, gibt die Schnittstelleneinheit SIU ein entsprechendes Unterbrechungssignal an die zu dem Prozessor führende Leitung ab. Wenn verschiedene Unterbrechungsanforderungen mit gleichem Rang vorliegen, so bestimmt die Schnittstelleneinheit SIU auf der Basis von Prioritäten,die durch die Anschlußnummer gegeben sind, welche Anforderung an den Prozessor weitergeleitet wird. Wenn die Unterbrechung des laufenden Prozesses nicht gesperrt ist, so veranlaßt eine Unterbrechungsanforderung den Prozessor IOP/P zur Aufgabe des gerade laufenden Prozesses und zur Annahme eines Unterbrechungswortes von der Schnittstelleneinheit SIU. Das Unterbrechungswort besitzt hierbei das Format gemäß Figur 2L.
609842/0887
Der Aufbau des Wortes gemäß Figur 2L ist folgender: N (Bit O) - Neu. Dieses Bit zeigt für den Fall, daß es
gesetzt ist an, daß die Unterbrechung eine neue Unterbrechung darstellt. Wenn das Bit nicht gesetzt ist, so stellt das Unterbrechungswort eine vorangegangene unterbrochene Unterbrechungsanforderung dar, die wieder .aufgenommen wird.
M (Bit 1) - Nicht benutzt
RFU (Bits 2-17) - Reserviert für zukünftigen Gebrauch. Dieses
Feld muß O sein,aber es wird nicht überprüft zwecks Sicherstellung, daß das Feld auch den Wert O aufweist. Bit 18 - Auf Null gesetzt
ICB Nr.(Bits 19-26)- Unterbrechungs-Steuerblocknummer STEUERUNG (Bits 28-35)-Steuerung. Diese Felds bestimmt den Unter-
brechungs-Anforderer. Die Bits 28 bis 35 werden von der Schnittstelleneinheit SIU erzeugt, und sie bestimmen den Quellenmodul (SIU-Anschlußnummer) der Unterbrechung.
Zur Auslösung der Unterbrechungs-Verarbeitungsroutine werden vier Register aus dem Unterbrechungs-Steuerblock gemäß Figur 2J herausgeholt. Wenn das Prozeßzustandsregister PSR geladen wird, wird das Steuerfeld des Unterbrechungswortes in das Steuerfeld des Registers PSR eingefügt. Die anderen Register IC, GR14 und PTBR werden durch aufeinanderfolgende Worte des Unterbrechungssteuerblockes ICB direkt geladen. Ein nicht dargestellter Freigabebefehl REL wird benutzt, um als Folge einer Unterbrechung aus einem Prozeß auszusteigen. Nach einem Freigabebefehl REL wählt die Schnittstelleneinheit SIU den wartenden Prozeß mit der höchsten Priorität zur Verarbeitung durch den Prozessor aus. Dieser Prozeß kann ein zuvor unterbrochener Prozeß oder ein neuer Prozeß sein,der als Folge einer Unterbrechungsanforderung ausgelöst wird. Bei gleichem Prioritätsrang besitzen zuvor unterbrochene Prozesse Priorität gegenüber neuen Unterbrechungs-
BÜ9842/0887
"■18— ο ο -1 'j o er ρ«
Zb IZ U Ti b
anforderungen. Aufgrund von Hardware·.und Software zum Laden des Prozeßsteuerregisters PCR kann ein Prozessor der Schnittstelleneinheit SIU eine Unterbrechung mit irgendeinem Rang 0-7 anbieten, Um jedoch eine wohldefinierte Reaktion auf einen Freigabebefehl REL bei jedem Rang zu erzeugen, ist das die Unterbrechung mit dem Rang 7 anfordernde Bit des Prozeßsteuerregxster PCR immer gesetzt. Die Reaktion des Prozessors entspricht der durch eine normale Unterbrechung ausgelösten Reaktion, wenn ein neuer Prozeß als Folge eines Freigabebefdüs REL bearbeitet wird und umfaßt die Annahme eines Unterbrechungswortes von der Schnittstelleneinheit SIU und den Zugriff zu einem Unterbrechungs-Steuerblock ICB. Wenn ein zuvor unterbrochener Prozeß erneut bearbeitet werden soll, so gibt die Schnittstelleneinheit SIU lediglich die Rangnummer und die Tatsache aus, daß ein alter Prozeß erneut bearbeitet werden soll. Da der Prozeßzustand zu dem Zeitpunkt seiner Unterbrechung in dem Zwischenspeicherregister unversehrt vorhanden ist, bildet dies die einzige Information, die erforderlich ist, um den Prozeß erneut zu starten.
609842/0887
- 3 9. -
2 6 1? Cl 5 9
Gemäß Figur 2N ist das Format eines typischen Zwischenspeicher-Registerbefehls dargestellt. Dieser Befehl veranlaßt die Informationsübertragung zwischen den Zwischenspeichern 328, 334 und 326 des Prozessors IOP und den Allgemeinregistern. Die ersten acht Bits des Befehls stellen das Feld für den Operationscode dar. Mit GR ist ein 4-Bit-Feld an den Bit-Positionen 9-12 bezeichnet, welches eines der Allgemeinregister in dem Zwischenspeicher 328 bestimmt. Die Bits 14-35 des Befehls stellen eine Adressilbe AS dar, die benutzt wird, um die effektive Adresse Y zu berechnen. Diese Adresse wird als eine Adresse eines Registers außerhalb des Prozessors IOP/P interpretiert.
Gemäß Figur 20 sind zwei Formate der Adressilbe AS des Befehls gemäß Figur 2N dargestellt. Das obere Format zeigt eine Adresssilbe mit einer langen Verschiebung D, während das untere Format eine Adressilbe mit kurzer Verschiebung D darstellt. Die Bits 14-17 des oberen Formats stellen die Adresse eines Indexregisters XR.. dar. Das Bit 18 bestimmt, ob eine lange oder kurze Verschiebung benutzt wird. Wenn dieses Bit auf,.den Wert Null gesetzt ist, so zeigt es an, daß eine lange Verschiebung D vorliegt, während für den Wert 1 die kurze Verschiebung D gegeben ist. Das Bit 19 stellt ein Vorzeichen-Bit S dar, während die Bits 20-35 für die lange Verschiebeadresse reserviert sind. In dem unteren Format der Adressilbe AS bilden die Bits 14-17 wiederum die Adresse eines IndexregistersXR^. Wie zuvor bereits erwähnt, zeigt das Bit 18 an, ob eine lange oder kurze Verschiebung D vorliegt. Die Bits 19-22 stellen die Adresse eines zweiten IndexregistersXR2 dar. Das Vorzeichen-Bit S nimmt die Bit-Position 23 innerhalb der Adressilbe AS ein. Schließlich bilden die Bits 24-35 die kurze Verschiebeadresse.
609842/0887
2617059
Allgemeine Beschreibung des Prozessors IOP/P:
Figur 3 zeigt ein Blockdiagramm eines Prozessors gemäß der vorliegenden Erfindung. Daten und Befehle von der System-Schnittstelleneinheit SIU werden in das Dateneingangsregister 310 eingegeben und bearbeitete Daten werden an die Schnittstelleneinheit SIU über das Datenausgangsregister 312 abgegeben. Beim
taktweisen Eingeben der Daten und Befehte in das Register 310
wird eine Paritätsprüfung durchgeführt, so daß Paritätsfehler festgestellt werden. Befehle werden in einem zweifach auslesbaren Vorgriff-Register 314 abgelegt, welches vier Pufferworte für Befehle erzeugt. Ein 8-Rang-Steuerspeicher-Adressenschalter 316 (CSA-Schalter), der üblicherweise ein Multiplexer sein kann, erzeugt eine Adresse für den Steuaspeicher 318. Ein Rang des
CSA-Schalters 316 wird durch das Befehlsregister 314 über die Wegsuchereinheit 317 erzeugt. Der Steuerspeicher 318 enthält die Mikrobefehle zur Steuerung der Datenmanipulationen und ein
adressierter Mikrobefehl ist im SteuerSpeicherregister 319 gespeichert.
Daten aus dem Eingangsregister 310 werden in einen Rang des
8-Rang-B-Schalters 320 geladen, der zusammen mit einem 2-Rang-A-Schalter 322 Operanden für ein Addier/Verschiebe-Netzwerk erzeugt. Der B-Schalter 320 wird durch ein Feld in dem Steuerspeicherregister 319 gesteuert. Der A-Schalter 322 erhält Eingangssignale von den zweifach auslesbaren Arbeitsregistern 326 und von dem Allgemeinregister-Zwischenspeicher 328 über das SPB-Register 330. Das Register 326 enthält drei Arbeitsregister und ein Abbild des Befehlszähler-Zählstandes IC, der in dem Allgemeinregister-Zwischenspeicher 328 enthalten ist. Der Leseausgang des Arbeitsregisters WRR wird dem A-Schalter 322 zugeführt und der Seitenadressierausgang des Arbeitsregisters WRP ist auf den Allgemeinregister-Zwischenspeicher 328 geschaltet. Eine 7-Bit-Adresse für den Allgemeinregister-Zwischenspeicher SPA wird
durch einen 1 aus 8-Schalter 332 erzeugt. Das Addier/Verschiebenetzwerk 324, welchem Operanden von dem B-Schalter 320 und dem A-Schalter 322 zugeführt werden, führt alle arithmetischen,
logischen und Verschiebeoperationen aus, die für eine Adressen-
609842/0887
entwicklung und eine Befehlsausführung erforderlich sind.
Ein Seitentabellenwort-Zwischenspeicher 334 speichert 16 Seitentabellenworte PTW für jeden der acht Ränge des B-Schalteis 320. Der Vier-Rang-Adressenschalter 336 verkettet Adressen entweder für programmierbare Schnittstellenbefehle oder Lese/Schreib-Speicherzyklenf die Seiten- oder absolutadressiert sein können. Der Ausgang des Addier/Verschiebenetzwerkes 324 kann über einen Vier-Rang-Ausgangsschalter 338 auf den Ergebnis-Doppelkanal 340 (R-XBAR) und in das Daten-Ausgangsregister 312 gegeben werden. Der Doppelkanal erzeugt eine gleichzeitige Übertragung seiner Eingangssignale sowohl zu dem Daten-Ausgangsregister 312 als auch zu den Arbeitsregistern 326. Dem Schalter 338 werden ebenfalls Eingangssignale von einem Prozeßzustandsregister PSR-342 und einem Przeßsteuerregister PCR-344 über einen Schalter 346 sowie aus dem Allgemeinregister-Zwischenspeicher 328 zugeführt.
Allgemejiregister- Zwischenspeicher
Der Allgemeinregister-Zwischenspeicher 328 enthält 128 Register mit je 40 Bit. Jedes Register enthält 4 Bytes mit 9 Bit und 1 Paritäts-Bit pro Byte. Die in den Zwischenspeicher eingeschriebenen Daten werden einem der vier Arbeitsregister an dem Ausgang WRP entnommen. Die in dem Zwischenspeicher enthaltenen Register werden durch ein Prozeßzustandsregister PSR, einen Befehlszähler IC, ein Seitentabellen-Basisregister PTBR, 13 Allgemeinregister GR und ein Prozeßsteuerregister PCR gebildet. Die 7-Bit-Adresse für den Zwischenspeicher wird durch den 1 aus 8-Schalter SPA-332 erzeugt. Die Steuereingänge des Schalters sind direkt an den Ausgang des Steurspeicherregister CSR-319 angeschlossen. Die drei höchstrangigsten Bits der Adresse bestimmen einen der acht Ränge und die vier niedrigrangigsten Bits bestimmen eines von 16 Registern innerhalb des Ranges. Der Rang wird über nicht dargestellte aktive Unterbrechungsrangleitungen .'AIL von der Schnittstelleneinheit SIU für sechs der acht Positionen erzeugt. Die acht Adressenquellen sind folgende:
609842/088
0) Sieben Bits des Konstanten-feldes (2-8) des Steuerspeicherregisters CSR, welche die Adressierung irgendeines Registers in irgendeinem Rang gestatten;
1) die AIL-Leitungen und vier Bits des Konstantenfeldes (5-8) des Steuerspeicherregisters CSR, welche die Adressierung irgendeines Registers in dem vorliegenden Rang gestatten;
2) der Ausgang WER der Arbeitsregister mit den Bits 29-35. Mit diesen Bits bewirkt ein Arbeitsregister die Erzeugung der Adresse entweder für eine Initialisierung oder eine Software-Adressierung;
3) Die AIL-Leitungen und Bits 19-1-22 des laufenden Befehls. Diese erzeugen die Leseadresse XR2 für eine Indizierung des zweiten Ranges;
4) die AIL-Leitungen und Bits 14-17 des laufenden Befehls.Diese erzeugen die Leseadresse XR1 für die Indizierung des ersten Ranges oder die GR/GR2-Leseadresse für einen Operandenzugriff;
5) die AIL-Leitungen und Bits 9-12 des laufenden Befehls.ßiese erzeugen die GR1/GR-Leseadresse für einen Operandenzugriff;
6) die AIL-Leitungen und Bits 0-2 des Schreib/Adressregisters, wobei das niedrigrangigste Bit den Wert "1" aufweist. Hierdurch wird die ungerade Adresse eines geraden/ungeraden Paares eines Lese- oder Schreibbefehls erzeugt.
7) die AIL-Leitungen und Bits 0-3 des Schreib/Adressregisters. Hierdurch wird die Adresse beim Einschreiben in ein Allgemeinregister durch die Software auf dem vorliegenden Rang erzeugt. Diese Adressenerzeugung umfaßt das Laden der Allgemeinregister und das Zurückführen der sich bei der Ausführung ergebenden Resultate in das Ausgangs-Allgemeinregister.
Der Ausgang des Zwischenspeichers ist auf einen der beiden Schalter 33Oa geführt und geht zu dem SPB-Register 330, welches ebenfalls ein Eingangssignal für den Ergebnis-Doppelkanal 340 über das Addier/Verschiebenetzwerk 324 bildet. Der Schalter in dem SPB-Register gestattet die Arbeit auf ein Allgemeinregister GR und ein Arbeitsregister oder auf zwei Arbeitsregister durch
ß 09842/ (j 887
Laden einer "1" in das SPB-Register. Der Schalter 33Oa in dem SPB-Register 330 wird durch das SP-Steuerfeld in dem Steuerspeicherregister CSR-319 gesteuert.
Das Schreib/Adressregister 348 kann entweder von den Bits 9-12 oder den Bits 14-17 des laufenden Befehls geladen werden. Hierdurch wird die Adresse zum Laden eines Allgemeinregisteis GR oder zur Rückführung eines Ergebnisses in ein Allgemeinregister GR erzeugt. Dies ist erforderlich/ da die Adresse für das Allgemeinregister GR in dem auszuführenden Befehl nicht langer an dem zweifach auslesbaren Befehlszähler verfügbar ist, wenn dieser auf seinen neuesten Stand gebracht worden ist. Die Allgemeinregisteradresse wird deshalb in dem Schreib/Adressregister WA-348 abgespeichert und für die Schreiboperation benutzt, indem ein Schreib-Flip-Flop,das mit dem Schreib/Adressregister verbunden ist, gesetzt wird. Das Schreib-Flip-Flop W wird,nachdem es gesetzt ist, mit dem ersten Takt danach zurückgesetzt, bis das Steuerfeld des Schreib/Adressregisters WA in dem Steuerspeicherregister CSR es erneut setzt. Ein Allgemeinregister-Zwischenspeicher-Schreibtaktimpuls wird bei allen Takten erzeugt, die auftreten, während das Schreib-Flip-Flop W gesetzt ist und sofern nicht die Schreibadresse bei irgendeiner Betriebsweise den Wert Null oder bei der Nebenbetriebsweise den Wert 15 aufweist.
Das SPB-Register 330 ist ein 40-Bit-Register. Es erzeugt eine Pufferung für Worte, die aus dem Zwischenspeicher ausgelesen werden und spart somit die Zwischenspeicher-Zugriffszeit ein, die sonst bei einer Addier/Verschiebeoperation erforderlich ist. Eine Paritätsprüfung wird hinsichtlich der Daten in dem SPB-Register 330 durchgeführt. Der SPß-Ladetakt wird durch das SP-Steuerfeld des Steuerspeicherregisters 219 gesteuert.
A- und B-Operandenschalter
Die A- und B-Operandenschalter erzeugen die beiden Operanden für das Addier/Verschiebenetzwerk 324. Der A-Schalter 322 wählt entweder den Ausgang des SPB-Registers 330 oder den WRR-Ausgang des Arbeitsregisters 326 aus. Die Auswahl wird durch ein Bit im Steuerspeicherregister 319 gesteuert. Die Steuerung wird jedoch
609842/0887
zur Auswahl des WRR-Ausgangs gezwungen, wenn das Schreib-Flip-Flop W gesetzt ist und die Adresse im Schreifykdressregister WA XR1 entspricht. Der neue Wert von XR1 oder GR2 wird somit zur Verwendung herangezogen, wenn der vorangegangene Befehl diese Werte verändert hat. Der Schalterausgang wird zur Abgabe von logischen Nullstellen veranlaßt, wenn in dem B-Schalter 320 die DL-Position ausgewählt wird und keine Indizierung aufgerufen ist (XRI=O). Die Stellung des B-Schalter 320 wird durch ein Feld mit 3 Bit im Steuerspeicherregister 219 gesteuert. Das niedrigrangigste Bit wird jedoch auf den Wert "1" gezwungen, wenn die DL-Position ausgewählt wird und eine Indizierung des zweiten Ranges angefordert wird. Die acht Positionen des B-Schalters 320 sind wie folgt formatiert:
0) Die Bits 0-19 entsprechen dem Bit 19 des Befehlsregisterschalters IRSW-319a. Die Bits 20-35 sind an die Bits 20-35 des Schalters IRSW angeschlossen. Diese bilden das Verschiebefeld entweder für eine Erstrang- oder keine Indizierung;
1) die Bits 0-23 entsprechen dem Bit 23 des Schalters IRSW. Die Bits 24-35 sind an die Bits 24-35 des Schalters IRSW angeschlossen. Diese bilden das Verschiebefeld für eine Zweitrangindiζierung;
2)- die Bits 0-30 entsprechen dem Bit 8 des Schalters IRSW. Die Bits 31-35 sind an die Bits 9-13 des Schalters IRSW angeschlossen. Diese bilden den kurzen Sofortwert.
3) die Bits 0-17 entsprechen dem Bit 8 des Schalters IRSW. Die Bits 18-35 sind an die Bits 18-35 des Schalters IRSW angeschlossen. Diese bilden den langen Sofortwert;
4) diese Stelle wählt den Ausgang WRR der zweifach auslesbaren Arbeitsregister 322 aus;
5) die Bits 0-31 weisen den Wert "0" auf. Das Bit 32 entspricht dem höchstrangigsten Bit des. Konstantenfeldes des Steuerspeicherregisters CSR. Hierdurch wird die Zahl 8 zur Erhöhung des Zählstandes des Befehlszählers IC vorgegeben, um auf das nächste gerade/ungerade Befehlspaar
(8 Bytes) im Speicher zu verweisen. Die Bits 33 und 34 verweisen auf die Wortlänge in Bytes des laufenden Befehls, wenn die beiden höchstrangigsten Bits des Konstantenfeldes des Steuerspeicherregisterß319 den Wert Null aufweisen. 609842/088 7
2617059
Die Bit-Kombination 10 verweist hierbei auf eine Ganzwortlänge und die Bit-Kombination 01 auf eine Halbwortlänge. Das Bit 35 entspricht dem Übertrags-Bit in dem Prozeßzustandsregister PSR, wenn das auf das höchstrangigste Bit folgende Bit des Konstantenfeldes im Steuerspeicherregiser CSR den Wert 1 aufweist;
6) die Bits 0-26 weisen den Wert Null auf. Die Bits 27-35 sind an das Konstantaafeld des Steuer/Speicherregisters CSR angeschlossen.
7) durch diese Position wird das Daten-Eingangsregister DI-310 der Schnittstelleneinheit angewählt;
Addier/Verschiebeschaltkreis
Dieser als logische Addiereinheit ALU. bezeichnete Schaltkreis führt arithmetische und logische Operationen mit jeweils 36 Bit aus. Diese Einheit erzeugt ferner einen Datenübertragungsweg für die Operanden A oder B zu dem Doppelkanal 340. Die Operationen der Recheneinheit ALU werden durch ALU/Verschiebe-Eingangs-Bits des Steuerspeicherregisters 319 gesteuert. Die Betriebsweise der Recheneinheit wird durch das niedrigrangigste Bit innerhalb der Steuer-Bits in dem Steuersp icherregister gesteuert.
Seitentabellenwoct(PTW)-Zwischenspeicher Der PTW-Zwischenspeicher 334 besorgt die Speicherung von 16 SeitentabeUenwörtern für jeden der acht Prioritätsränge, was zu 128 SeitentabeUenwörtern führt. Der Ausgang des B-Operandenschalters 320 erzeugt die Schreibdaten für den Zwischenspeicher und der Schreibtakt wird hierbei durch ein Bit in dem Steuerspeicherregister 319 gesteuert. Die PTW-Zwischenspeicheradresse wird entweder durch die niedrigrangigsten 7 Bits des Ausgangs WRP des Arbeitsregisters 326 oder durch den Rang und die Bits 21-24 des Ausgangs WRP erzeugt. Die erste Bit-Position dient der Auslösung und der übertragung des Seitentabellenwortes vom Allgemeinregister GR zur Basistabelle. Die zweite Bit-Position dient dem Lesen und Laden von Seitentabellewörtern, wenn entsprechende Adressen in den SeitentabeUenwörtern fehlen. Die Adressenauswahl wird durch ein Bit im Steuerspeicherregister CSR-319 gesteuert.
B 0 9 8 4 2 / (J 8 8 7
Jedes Byte des PTW-Zwischenspeichers wird am Ausgang einer Paritätsprüfung unterzogen. Der Ausgang des Zwischenspeichers 334 versorgt zwei der vier Adressenschalterpositionen mit Eingangsdaten. Wenn der Ausgang des PTW-Zwischenspeichers durch die "Seiten"-Stellung des Adressenschalters ausgewählt wird, so werden die folgenden Überprüfungen durchgeführt, um festzustellen, ob das Seitentabellenwort gültig ist:
1) die Bits 30-35 des Seitentabellenwortes werden mit einem Kennschlüsselregister 372 verglichen. Das Kennschlüsselregister bestimmt hierbei den Prozeß >-.-dem das Seitentabellenwort zugeordnet ist und es wird mit den Bits 30-35 des Ausganges WRP jedesmal dann geladen, wenn GR 15 geladen wird;
2) die Bits 27-29 des Seitentabellenwortes werden mit den Bits 18-20 am Ausgang WRP verglichen. Dieser Vergleich erfolgt, um festzustellen, ob das korrekte Seitentabellenwort am Speicherplatz des PTW-Zwischenspeichers vorhanden ist;
3) die nächste Übeprüfung wird durchgeführt, um festzustellen, ob die Seite im Lese/Schreibspeicher 122b 123b vorhanden ist, Eine Nullstelle an der Bit-Position 6 des Seitentabellenwortes zeigt an, daß die Seite im Speicher nicht vorhanden ist;
4) wenn die ersten drei Prüfungen erfolgt sind, werden die Bits 4-5 des Seitentabellenwortes mit dem ausgelösten Operationstyp verglichen.. Das Lesen von Daten ist immer legal. Ein Befehlsabruf fordert das Bit 4 an, während eine Leseoperation das Bit 5 anfordert.
Wenn das Seitentabellenwortin dem Zwischenspeicher bei einer der vorgenannten Prüfungen einen Fehler ergibt, so wird es aus der Seitentabelle im Lese/Schreibspeicher geholt und erneut überprüft, bevor eine Ausnahme angezeigt wird..
Das Adressenwort entweder für den Lese/Schreibspeicher oder die programmierbare Schnittstelle wird in dem Adressenschalter 336 erzeugt. Der Schalter 336 wird durch die Adressenschalter-Steuer-Bits in dem Steuerspeicherregister 319 gesteuert. Wenn die
609842/ÜB87
"Seiten"-Position ausgewählt wird und das Prozeßzustandsregister PSR die absolute Adressierweise anzeigt,so wird die "Absolut"-Stellung des Schalters eingenommen, so daß die Seitentechnik unterdrückt wird. Die vier Schalterstellungen sind folgende :
0) Diese Position erzeugt die Seitenadressierung des Lese/-
Schreibspeichers. Nimmt das Bit 0 den Wert 0 ein, so bees
stimmt eine Lese/Schreibadresse. Die Bits 1-3 werden durch die Zonenadress- und Steuer-Bits (ZAC-Bits) im Steuerspeicherregister erzeugt. Das Bit 4 weist den Wert O auf. Die Bits 5-8 stellen die Zonen-Bits dar und werden als eine Funktion der Lese/Schreibspeicheroperation erzeugt. Leseoperationen veranlassen die Erzeugung von Nullstellen, während Schreiboperationen hinsichtlich eines Wortes oder Doppelwortes die Erzeugung von Eine.rstellenbewirken. Das Schreiben eines Bytes verusacht eine 1 in der zu schreibenden Byte-Position. Die Bits 9-24 entsprechen dem PTW-Zwischenspeicher 9-24, welcher die Seitenbasisadresse darstellt. Die Bits 25-35 entsprechen den Bits 25-35 am Ausgang WRP, welche die seitenbezogene Adresse darstellen. Wenn diese Position ausgewählt wird, muß der Ausgang WRP der Arbeitsregister die nicht-seitenunterteilte Adresse angeben.
1) Diese Position erzeugt die Lese/Schreibspeicheradresse, wenn keine Seitenunterteilung gefordert ist. Sie kann durch das Steuerspeicherregister CSR ausgewählt werden oder wird zwangsweise angewählt, wenn die Position 0 angewählt ist und das Steuerspeicherregister PSR das absolute Adressierverfahren verlangt. Die Bits o-8 entsprechen denjenigen Bits der Position Null. Die Bits 9-34 entsprechen dem Ausgang WRP 9-35, der der absoluten Speicheradresse entsprechen muß, wenn diese Position ausgewählt wird.
2) Diese Position erzeugt ein programmierbares Schnittstellen-(PI)-Steuerwort. Entspricht das Bit 0 dem Wert "1", so bestimmt es ein PI-Steuerwort. Das Bit 1 wird durch das ZAC-FeId des SteuerSpeicherregisters erzeugt. Das Bit 2 entspricht dem Bit 9 des Prozeßzustandsregisters PSR und
B 0 9 8 U 2 / 0 8 8 7
bestimmt, ob das laufende Programm gewisse externe Register verändern kann. Das Bit 3 entspricht der Prozessornummer, die durch die Schnittstelleneinheit SIU erzeugt wird. Das Bit 4 weist den Wert Null auf. Die Bits 5-8 entsprechen den Bits 4-7 des Prozeßzustandsregisters PSR und sie bestimmen den Anschluß innerhalb des Multiplexers. Die Bits 9-35 entsprechen dem Ausgang WRP 9-35 und sie müssen der absoluten Adresse entsprechen, die entweder für einen externen Lesebefehl RDEX oder einen externen Schreibbefehl WREX erzeugt wird.
3) Diese Position erzeugt den Datenübertragungsweg zum Lesen eines Seitentabellenwortes PTW aus dem Zwischenspeicher.
Die Bits 0-2 des Adressen :halters 336 werden modifiziert,um die Lese/Schreib-Speichersteuerung während des Ladens der absoluten Adressen in das Allgemeinregister GR wiederzugeben. Die Bits 0-2 des PTW~Zwischenspeichers geben somit eine Seitenadressierung und die Bits 0-2 am Ausgang WRP eine absolute Adrresierung an. Dies wird durch die Auswahl der Stellung Null für den Adressenschalter ermöglicht, falls kein. Lese/Schreib-Speicherzyklus durch die Steuer-Bits des Steuerspeicherregisters CSR bei einer Anforderung durch die Schnittstellensteuerung SIU ausgelöst wird. Der Steuerschalter ruft die Steuerung der Schnittstelleneinheit SIU entweder bei einem Lese/Schreib-Speicherzyklus oder bei einem programmierbaren Schnittstellenbefehl hervor. Die Steuerung erfolgt durch die Steuer-Bits des Adressenschalters in dem Steuerspeicherregister CSR.
Die Steuerung wird für den Lese/Schreibspeicher wie folgt erzeugt: Bit 0 Dieses Bit weist den Wert 0 für den Lese/Schreibspeicher auf, Bit 1 Dieses Bit bestimmt den internen oder externen Speicher. Es entspricht dem PTW-Bit 0 bei einer Seitenadressierung oder dem WRP-Bit 0 bei einer absoluten Adressierung. Bits 2-4Diese Bits stellen die Speicher-Steuer-Bits dar. Der anfängliche Wert entspricht den PTW-Bits 1-3 bei einer Seitenadressierung oder den WRP-Bits 1-3 bei einer absoluten Adressierung. Diese Werte bilden ebenfalls den endgültigen
60984 2/0887
Wert, wenn das Bit 1 einen externen Speicher bestimmt. Wenn das Sit 1 einen internen Speicher bestimmt, so bestimmen die Bits 2 und 3 den Anschluß des internen Speichers und die Steueradressen für den Festwertspeicher in dem Steuerwerk des internen Speichers. Das Bit 2 entspricht der Exklusiv-Oder-Verknüpfung des anfänglichen Wertes und der internen Speicher-Anschlußkennzeichnungsleitung von der Schnittstelle SIU. Das Bit 3 entspricht der Exklusiv-Oder-Verknüpfung des PCR-Festwertspeicher-Bits, falls der anfängliche Wert Null ist.
Bit 5 Dieses Bit definiert einen Ein- oder Doppelwort-Speicherzyklus. Es entspricht dem Bit 1 des ZAC-Feldes des Steuerspeicherregisters CSR .
Bit 6 Dieses Bit definiert einen Lese- oder Schreibzyklus. Es entspricht dem Bit O des ZAC-Feldes des Steuerspeicherregisters CSR.
Die Steuerung für einen programmierbaren Unterbrechungsbefehl (PI-Befehl) wird wie folgt erzeugt:
Bit O Dieses Bit entspricht dem Wert 1 für einen PI-Befehl.
Bits 1-4 Diese Bits bestimmen den Anschluß der Schnittstelleneinheit SIU,an den der PI-Befehl gerichtet ist und sie entsprechen den Bits 0-3 des Prozeßzustandsregisters PSR.
Bits 5-6 Diese Bits sind die gleichen wie bei einem Lese/Schreibspeicherzyklus und werden in der gleichen Weise erzeugt.
Die Ausgänge des Steuerschalters werden in das Steuerregister in der Schnittstelleneinheit SIU zu jedem Zeitpunkt taktweise eingegeben, zu dem ein Speicherzyklus oder ein PI-Befehl ausgelöst wird.
Ergebnis-Doppelkanal
Der Ergebnis-Doppelkanal (R-XBAR) 340 erzeugt eine gleichzeitige übertragung seiner Eingänge sowohl zu dem Daten-Ausgangsregister 312 als auch zu dem Arbeitsregister 326. Ein dritter Ausgang ist an eine nicht dargestellte Anzeigetafel angeschlossen und bildet den Datenweg für die Anzeige des Inhalts der meisten Register des Prozessors IOP/P. Der Ausgang zu dem Arbeitsregister wird durch die Schreibadressen-Bits in dem Steuerspeicherregister CSR
6 0 9 8 4 2/0887
- 30 - ?6 li>l)S9
gesteuert und kann auf irgendeinen von vier Eingängen geschaltet werden. Der Ausgang zu dem Daten-Ausgangsregister 312 wird durch das Datenausgangs-Schreibadressen-Bit in dem Steuerspeicherregister CSR gesteuert und kann entweder den Addier/Verschiebe-Ausgangsschalter 338 oder den Adressenschalter 336 auswählen. Wenn die nicht dargestellte DPCR-Leitung von der Schnittstelleneinheit SIU aktiviert wird, muß diese Position jedoch den PSR/ PCR-Eingang auswählen.
0) ALU/Verschiebe-Ausgangsschalter
1) Adressenschalter
2) PSR/PCR-Schalter
3) SPB-Eingangsschalter
Arbeitsregister
Die vier Arbeitsregister sind in der zweifach auslesbaren Registerreihe 326 enthalten. Das Register 0 enthält den laufenden Inhalt des Befehlszähler IC. Die Register 1,2 und 3 sind Arbeitsregister für die Befehlsausführung. Sie sind mit R1, R2 und R3 bezeichnet. Die beiden Ausgänge der Arbeitsregister sind mit WRP und WRR 'bezeichnet. Der Ausgang WRP wird benutzt, um auf Seitentabellenworte des PTW-Zwischenspeichers Zugriff zu nehmen sowie für die Lese/Schreibspeicher-Adressenerzeugung· und er ist zu dem Allgemeinregister-Zwischenspeicher 328 und zu dem SPB-Register 330 geführt. Die durch den Ausgang WRP freigegebenen Register werden durch die WRP-Bits in dem Steuerspeicherregister 319 gesteuert. Der Ausgang WRR wird benutzt, um Operanden an die Schalter 322 und 320 sowie an die Eingänge der beiden Register PSR und PCR zu legen. Die durch das Ausgangssignal WRR freigegebenen Register werden durch die WRR-Bits in dem Steuerspeicherregister 319 gesteuert. Die Arbeitsregister können durch irgendeinen der Doppelkanal-Eingänge geladen werden. Das zu ladende Register und der Schreibtakt wird durch die Schreibadresse und die Schreib-Bits in dem Steuerspeicherregister CSR-319 gesteuert. Hinsichtlich für Lese- bzw. Schreiboperationen ausgewählten Registerngibt es keine Unterschiede. Es können drei verschiedene Register vorhanden sein oder es können alle Register gleich sein.
ORIGINAL INSPECTED
R0 9 8 4 2/0887
- 31 - ?6 17059
PSR/PCR
Das Prozeßzustandsregister PSR-342 befindet sich außerhalb des Allgemeinregister — Zwischenspeichers, da es fortlaufend überwacht und ergänzt wird. Es wird von dem Ausgang WRR der Arbeitsregister 326 geladen. Ein Schreibtakt wird jedesmal für das Prozeßzustandsregister PSR erzeugt, wenn ein Programm im Hauptbetrieb das Allgemeinregister GRO lädt oder die Steuer-Bits der Register PSR/PCR in dem Steuerspeicherregister CSR eine Schreiboperation hinsichtlich des Prozeßzustandsregister PSR bestimmen. Das gesamte Prozeßzustandsregister PSR wird während einer Ladeoperation von GRO im Hauptbetrieb, während der Ausführung einer Ausnahme des ECB oder der Ausführung eines DISP-, MME-, RMM- oder REL-Befehls geladen. Wenn eine Unterbrechung ausgeführt wird, so wird vor dem Laden die Steuerung von dem ünterbrechungs-Datenwort aus dem ICB in die Daten des Prozeßzustandsregisters PSR eingefügt.
Ein Zustands-Code CC, ein übertrag C und ein Prozeßzeitgeber werden fortlaufend ergänzt. Der Zustands-Coda CC wird jedesmal geladen, wenn ein Befehl ausgeführt wird, der eine Ergänzung des Zustands-Codes erfordert. Der Übertrag c wird jedesmal dem Übertragsausgang der arithmetischen Recheneinheit ALU entnommen, wenn der Zustands-Code CC geladen wird und die ALU im arithmetischen Betrieb arbeitet. Der Prozeßzeitgeber wird jeweils um 1 herabgezählt, wenn das nicht dargestellte Zeitnormal überläuft. Das Zeitnormal wird durch einen 8-Bit-Zähler repräsentiert, welcher alle Systemtakte zählt. Das Zeitnormal wird ferner benutzt, um eine nicht vollständige Operation festzustellen oder um eine Ausnahme zu verriegeln, wie sie unter dem Abschnitt "Ausnahmen" beschrieben wurde.
Das Prozeßsteuerregister PCR-344 ist allen Prioritätsrängen gemeinsam zugeordnet. Es wird von dem Ausgang WRR der Arbeitsregister geladen. Hierbei sind jedoch nicht alle Bits ladbar. Ein Schreibtakt wird hinsichtlich der ladbaren Bits erzeugt, wenn die PSR/PCR-Steuer-Bits in dem Steuerspeicherregister CSR eine PCR-Schreiboperation definieren. Die Bits 18-19 und 28-34 sind
609842/0887
ladbar. Die Bits 0-16 werden gesetzt, wenn der definierte Zustand auftritt und sie werden durch eine Setz/Rückstell-Bit-Steuerung in dem Steuerspeicherregister CSR zurückgestellt. Die Bits 23-26 sind zum Lesen durch die Software vorgesehen.
Der PSR/PCR-Schalter in dem Doppelkanal R-XBAR wählt das entsprechende Register zum Laden in die Arbeitsregister aus. Dieser Schalter wird durch die PSR/PCR-Steuer-Bits in dem Steuerspeicherregister CSR gesteuert und wird zur Auswahl von PCR gezwungen, wenn die DPCR-Leitung von der Schnittstellenheit SIU aktiviert wird.
Die zweifach auslesbare Registeranordnüng 314 erzeugt vier Worte für eine Befehlspufferung. Der Leseausgang für den laufenden Befehl CIR-380 und der Leseausgang für den nächsten Befehl NIR 38Oa erzeugt einen Zugriff zu dem gesamten Befehl, unabhängig von der Befehlslänge und der Adresse. Dies wird durch den Befehlsregisterschalter IRSW-319 verwirklicht. Die CIR-Adresse entspricht den Bits 32 und 33 des laufenden Befehlszählers IC, welche Bits auf eines der vier Worte verweisen. Die NIR-Adresse wird erzeugt, um auf das folgende Wort zu verweisen. Der Schalter IRSW-319a wird durch das laufende Bit 34 des Befehlszählers IC gesteuert, wodurch festgelegt wird, ob der Befehl mit einer Wort- oder Halbwortadresse beginnt. Die beiden Stellungen des Schalters IRSW-319a sind deshalb: (0) CIR-Bits 0-35 und (1) CIR-Bits 18-35, NIR-Bits 0-17. Die Bits 0-17 des Schalters IRSW geben einen Halbwort-Befehl und die Bits 0-35 des Schalters IRSW geben einen Ganzwort-Befehl wieder. Die CIR- und NIR-Adressen werden jedesmal ergänzt, wenn der Befehlszähler IC des Arbeitsregisters ergänzt wird. Alle Felder des Befehlswortes müssen d^Jaer vor einer Ergänzung des Befehlszählers IC benutzt werden.
Das Befehlsregister IR-314 wird jedesmal geladen, wenn ein neuer Wert in den Befehlszähler IC aufgrund einer Unterbrechung, einer Ausnahme, einer Verzweigung usw. geladen wird oder jedesmal dann, wenn die CIR-Adresse eine Zweiwortgrenze überschreitet und der Befehlszähler IC durch die laufende Befehlslänge ergänzt wird.
(i 0 9 8 4 2 / 0 8 B 7
26
Die Befehls-Zugriffssteuerung ist nachstehend für zwei Zustände beschrieben, wobei der Zustand 1 dem Eintritt in eine neue Prozedur und der Zustand 2 der Erhöhung durch die laufende Prozedur entspricht. In beiden Fällen stellen sich die Befehlsabrufe als Speicherzyklen mit doppelter Präzision dar und die Adressierung erfolgt seitenunterteilt, sofern nicht das Prozeßzustandsregister PSR ein absolutes Adx-essierverfahren festlegt. 1) Der Doppelwort-Befehlsabruf wird ausgelöst und die Befehlsregister-Schreibadresse mit dem Takt geladen, der den neuen Wert des Befehlszählers IC in Seiten unterteilt. Die Befehlsregister-Schreibadresse wird mit 00 geladen, wenn das Bit 32 des Befehlszählers den Wert 0 aufweist oder sie wird mit 10 geladen, wenn das Bit 32 des Befehlszählers IC den Wert 1 aufweist. Die CIR- und NIR-Adressen werden geladen, wenn der neue Wert des Befehlszählers IC geladen ist. Wenn das erste Wort im Speicher verfügbar ist, wird es in das Befehlsregister IR eingeschrieben und es wird das niedrigrangigste Bit der Schreibadresse gesetzt. Hierdurch wird das nächste Speicherwort in das zweite Wort des Paares (01 oder 11) geschrieben. Der Wert des BefehlszählersIC+8 (Bytes) wird sodann benutzt, um eine andere Speicherauslesung mit doppelter Präzision unter Heranziehung der seitenunterteilten Adresse auszulösen. Die Befehlsregister-Schreibadresse wird mit den nächsten zwei Worten ergänzt (10 wenn IC-Bit 32=0 oder 00 wenn IC-Bit 32=1) und es wird ein Test durchgeführt, um festzustellen, ob die Befehlsausführung beginnen kann oder warten muß, bis der Speicherzyklus vollendet ist. Der Test wird mit dem Bit 33 des Befehlszählers IC durchgeführt. Wenn der Test ergibt, daß eine neue Prozedur mit dem letzten Halbwort eines Zweiwortpaares (33, 34=1, 1) begonnen wurde, so muß die Befehlsausführung verzögert werden, bis die Daten aus dem zweiten > Zyklus mit doppelter Präzision verfügbar sind, um zu gewährleisten, daß das Befehlsregister IR ein vollständiges Befehlswort enthält.
609842/Ü887
2 6 1/O B 9
2) Die Ausführung eines jeden Befehls umfaßt die Ergänzung des Befehlszählers IC durch die Länge des jeweiligen Befehles. Wenn diese Ergänzung den Befehlszähler IC zur Überschreitung einer Zweiwortgrenze (alter IC 32 = neuer IC 32) veranlaßt, so kann der Zweiwortbereich des Befehlsregisters IRfder gerade beendet wurde, (alter IC 32 Wert) mit neuen Befehlen geladen werden. Der neue IC-Wert plus acht (Bytes) wird sodann benutzt, um eine Speicherlese-operation mit doppelter Präzision unter Verwendung der seitenunterteilten Adressierung auszulösen. Die Befehlsregister-Schreibadresse wird ergänzt, um auf den verfügbaren Befehlsregisterbereich hinzuweisen. Wenn die beiden Worte empfangen werden, werden sie in den Zweiwortbereich, wie zuvor beschrieben, eingeschrieben.
Steuerspeicher-Adressierung und Fortschaltung Die Steuerspeicheradresse wird in dem CSA-Schaiter 316 er-
eri
zeugt. Die ersten vier Position des CSA-Schalters v/erden durch das CSA-Schalter-Steuerfeld in dem Steuerspeicherregister CSR-319 gesteuert. Der CSA-Schalter 316 kann das Nächstadressregister NA 382, das Rückkehradressregister RA-384, das Ausführadressregister XA-386 oder den Ausgang des Standardfolge-Decodiernetzwerkes SS-388 auswählen. Die Ausnahme-Unterbrechungsposition wird zwangsweise eingenommen, wenn irgendeiner dieser beiden Zustände vorliegt. Die Ausnahmeadresse wird wiedergegeben, sofern nicht eine Unterbrechung ausgeführt wird. Die beiden PTW-Fehlpositionen liegen zwangsweise vor, wenn das Fehlen eines Seitentabellenwortes PTW festgestellt wird. Die Konstantenposition wird gewählt, wenn das Verzweigungs-Steuerfeld in dem Steuerspeicherregister CSR eine Verzweigung nach der Konstantenadresse anfordert.
Das Nächstadressregister NA-382 wird bei jedem Ausführungstakt mit der Summe des Ausgangs des CSA-Schalters 316 plus 1 plus eine Zustands-Sprungkonstante390 geladen. Wenn durch das CSR-Sprungsteuerfeld keine Sprung gefordert wird, so wird das Nächstadressregister NA-382 mit der Adresse des Mikrobefehls geladen, der unmittelbar auf den Mikrobefehl folgt, auf den Zugriff genommen wurde. Das
609842/088 7
heißt, daß der Takt, der den Mikrobefehl an der Adresse M in das Steuerspeicherregister CSR lädt, die Adresse M+1 in das Nächstadressregister NA lädt. Wenn eine Zahl von Mikrobefehlen bedingungsgemäß übersprungen werden muß, so kann das CSR-Sprungfeld festlegen, daß ein Sprung ausgeführt wird, wobei das CSR-Konstantenfeld die zu testende Bedingung und die Anzahl der zu überspringenden Mikrobefehle festlegt. Die Schrittfolge bei einem Sprung ergibt sich wie folgt: Der Mikrobefehl an der Adresse M ruft einen bedingten Sprung hervor. Durch die Ausführung dieses Mikrobefehls wird M+1 in das SteuerSpeicherregister CSR geladen und es wird die Adresse von M+1+1+SKP indas Nächstadressregister NA geladen. M ist ein Speicherplatz im Steuerspeicher 318. SKP nimmt den Wert Null ein, wenn der Sprung nicht zufriedenstellend
wird
ausgeführt und SKP nimmt die Sprungzahl ein, die durch die niedrigrangigsten drei Bits des CSA-Konstanfeldes bestimmt sind, wenn der Sprung den Bedingungen genügt. Der Sprung wird gesperrt, wenn irgendeine der letzten vier Positionen in dem CSA-Schalter ausgewählt wird.
Die Bedingungen, die hinsichtlich der Sprungausführung überprüft werden können, sind durch die Bits 3-5 des CSR-Konstantenfeldes definiert. WRR 35, WRR O, WRR 33 und das Übertrags-Bit im Prozeßzustandsregister PSR müssen auf den Wert Null oder 1 überprüft werden. Das PSR-Zustands-Code-Feld wird auf Null, eins, zwei oder drei überprüft. Die Bits 1-2 des Konstantenfeldes werden herangezogen, um den Test festzulegen. Die zu testenden Zustände sind folgende:
0) WRR 35=K2 wenn K1=1
WRR O=K2 wenn K 1=0
1) Übertrags-Bit in PSR=K2
2) WRR 33-34=Ki-2
3) Adresssilbe (AS) mitIRSW 18=0
4) PSR Zustands-Code-Feld weist entsprechendes Bit im IRSW CF Feld auf
5) PSR Zustands-Code-Feld=I<1-2
6) IRSW 7=WRR0 wenn K1=0
IRSW 7=K2 wenn K1=1
H U 9 B A 2 / 0 H B 7
7) Höherer Unterbrechungsrang oder Rang Null auf Leitung von Schnittstelleneinheit SIU vorliegend, wenn K2=O. Rang Null-Unterbrechung auf Leitung von Schnittstelleneinheit SIU vorliegend,wenn K2=1.
Das Rückkehr-Adressregister RA-384 wird von dem Nächstadressregister NA-382 geladen, wenn immer das Lade-Bit für das Register RA in der Steuerspeichereinheit CSR vorliegt.
Das Ausführungs-Adressregister XA-386 wird mit dem Ausgang des Wegsuchers 217 jedesmal geladen, wenn die Standardfolge-Position durch den CSA-Schalter ausgewählt wird. Die Benutzung des Wegsuchers wird weiter unten beschrieben. Sein Ausgang weist ein Steuer-Bit und acht Adress-Bits auf. Die Adresse wird benutzt, um die oberen 256 Worte des Steuerspeichers zu adressieren. Das Adress-Bit Null wird zwangsweise auf 1 gesetzt, wenn der CSA-Schalter 216 die Position XA einnimmt.
Die Ausführung eines Software-Befehles erfolgt in zwei Phasen. Die erste Phase besteht aus einer Mikrobefehlsfolge, die einer Gruppe von Befehlen gemeinsam ist. Die zweite Phase ist eine Mikrobefehlsfolge, bestehend aus einem einzigen Mikrobefehl in den meisten Fällen, die dem spezifischen auszuführenden Software-Befehl zugeordnet ist. Nach Vervollständigung der zweiten Phase wird in die dem nächsten Befehl gemeinsame Phase eingetreten, wobei in einigen Fällen die zweite Phase über das RA-Register für einige zusätzliche gemeinsame Schritte zu der ersten Phase zurückkehren kann, bevor in die den nächsten Befehlen gemeinsame Phase eingetreten wird.
Der Operations-Code des Schalters IRSW-319a erzeugt die Wegsuchadresse und ein Eingangssignal für das Standardfolgen-Decodiernetzwerk 388. Das Standardfolgen-Decodiernetzwerk erzeugt die Steuerspeicheradresse für den Start der Mikrobefehlsfolge, die der Gruppe von Befehlen zugeordnet ist, die diese Folge enthalten. Diese Folge sei als Standardfolge bezeichnet. Der Speicherplatz in dem Wegsucher der durch den Operations-Code adressiert wird,
ß09842/0887
- 37 - '/-B IVOR 9
enthält die Adresse im Steuerspeicher, an der die Folge für diesen Befehl beginnt. Der Befehl wird sodann ausgeführt durch Verzweigung zu der Standardfolgeadresse, durch Ausführung der gemeinsamen Schritte, Verzweigung zu der Folgeadresse im XA-Register 386, Ausführung der entsprechenden Schritte, Ergänzung des Inhalts des Befehlszählers IC, so daß der Operations-Code der nächsten Befehle aus dem schalter IRSW freigegeben wird und durch Wiederholung der obengenannte Folge durch Verzweigung zu der neuen Standardfolge.
Die Antwort auf eine Unterbrechung, die Ausnahmeverarbeitung und die auf ein fehlendes Seitentabellenwort hinweisenden Folgen werden bearbeitet, indem die entsprechende Position in dem CSA-Schalter 316 ausgewählt wird. Die Unterbrechungen werden bei der Vervollständigung von Software-Befehlen ausgeführt. Wenn der nicht gesperrte höhere Unterbrechungsrang vorliegt oder die Nullrangleitung von der Schnittstelleneinheit SIU aktiviert ist und wenn die Stellung SS des CSA-Schalters durch die entsprechenden Steuer-Bits in dem Steuerspeicherregister CSR ausgewählt sind, so wird die Steuerlogik des CSA-Schalters zur Auswahl der Position Ausnahme/Unterbrechung gezwungen. Dies veranlaßt den Eintritt auf die Unterbrechungs-Beantwortungsfolge anstelle einer Bearbeitung ,.der nächsten Befehls-Standardfolge. Die Position Ausnahme/ Unterbrechung gibt die Adresse der Unterbrechungs-Beantwortungsfolge zu diesem Zeitpunkt wieder.
Fehlende Seitentabellenworte veranlassen den sofortigen Eintritt in eine PTW-Fehlfolge. Durch die Steuerlogik des CSA-SChalters wird während der Taktperiode,die unmittelbar auf den Schritt der Seitenbildung folgt, der Operand oder der Befehl zur Einnahme der Fehlposition gezwungen. Die Rückkehr von irgendeiner dieser Folgen erfolgt zu der Standardfolge, die von dem Schalter IRSW-319a decodiert wird. Dies veranlaßt eine erneute Bearbeitung des zuvor bearbeiteten Befehls. Das Mikroprogromm bewirkt daher vor der Feststellung eines fehlenden Seitentabellenwortes PTW nichts was nicht erneut getan werden könnte. Ein nicht dargestelltes Flip-Flop wird gesetzt, wenn das fehlende Seitentabellenwort PTW
Ci 0 9 8 A 2 / ü 8 8 7 °RiG'NAL
festgestellt wird und bleibt gesetzt, bis die Adresse erneut seitenunterteilt worden ist. Ein Fehlen beim zweiten Mal veranlaßt eine Ausnahme, die weiter unten definiert ist.
Die Ausnahmen unterteilen sich in zwei Kategorieren. Der erste Typ verursacht einen sofortigen Eintritt in die Ausnahmeverarbeitungsfolge. Der zweite Typ beeinflußt die Steuerlogik des CSA-Schalters 316 solange nicht, bis die nächste Befehlsstandardfolge bearbeitet wird. Beide Typen rufen die Auswahl der Position Ausnahme/Unterbrechung in dem CSA-Schalter 316 hervor und sie setzen das entsprechende Bit in dem Prozeßsteuerregister PCR-344.
Die erste Kategorie von Ausnahmen sind nicht-vollständige Operationen, Seitenfehler, nicht vorhandene Seiten und illegale Befehle. Sie alle müssen behandelt werden, sobald sie festgestellt werden, da eine Fortführung der Befehlsausführung unmöglich ist. Die zweite Kategorie von Ausnahmen betrifft einen Prozeßzeitgeber-Auslauf, Überlauf, Verriegelungsfehler und Adressenfehlausrichtung. Eine Divisionsprüfung wird bei einem Test durchgeführt und eine Verzweigung findet statt, wenn der Divisor den Wert Null aufweist. Alle diese Ausnahmen zeigen Fehler anraber sie müssen nicht sofort behandelt werden und können warten bis zum Beginn des nächsten Befehles.
Steuerspeicher-Ausgangsregister
Das S'teuerspeicher-Ausgangsregister CSR-319 enthält den auszuführenden Mikrobefehl.Ein externes Steuerspeicherregister kann vorgesehen sein, wie dies angedeutet ist. Ein Schalter 394 kann eine von vier Lagen jeweils einnahmen und bildet den Eingang für das Steuerspeicherregister CSR. Die vier Positionen des Eingangsschalters 394 sind folgende:
0) Diese Position bildet den Eingang von den Festwertspeicherchips zu den Steuerspeichersubstraten;
1) diese Position wird nicht benutzt;
2) Diese Position bildet den Eingang von der Wartungskonsole;
3) diese Position gibt das interne Steuxspeicherregister CSR wieder· Diese Position wird benutzt, um die Bits des
609842/0887
26 17059
externen Steuerspeicherregisters CSR erneut zu laden, wenn die Schalter der Bedienungskonsole für die Anzeige von Daten benutzt werden.
Daten werden in das Ein/Ausgangssystem durch Simulation des Steuerpseicherregister CSR über die Schaltung der Wartungskonsole eingegeben. Wenn die Schalter durch den CSR-Eingangsschalter 39 freigegeben werden, so wird ein Signal erzeugt, das das Laden der externen CSR-Bits mit dem durch die Schalter simulierten Mikrobefehl verursacht. Der alte Inhalt muß erneut geladen werden, wenn die Anzeige der Register vervollständigt wird. Dies geschieht durch Auswahl der Position 3 für einen Takt vor dem Rückschalten auf die Position Null und durch erneutes Laden der externen CSR-Bits während der einen Taktperiode. Das Format des Steuerspeicherregisters CSR ist folgendesί Bit 0 Takt NA in RA
Bit'1 Führe Sprung aus (K1-2=Test, K3-5=Zustand, K6-8= Sprungzählstand
Bit 2 Verzweigung nach Ko-8
Bits 3-4 WR-Schreibadresse
OO=schreibe IC (Lade WA wenn Schreiben WR) Oi=schreibe R1 (Setze W wenn Schreiben WR und CSA=SS) iO=schreibe R2
11=schreibe R3
Bit 5 Warten auf die Annahme von Lesedaten (ARDAJ1 von der
Schnittstelleneiheit SIU
Bits 6-7 X-BAR-Adresse für WRW-Ausgang OO=Addier/Verschiebe-Ausgangsschalter Oi=Adressenchalter
1O=PSR/PCR-Schalter
11=SP-Ausgangsschalter
Bits 8-9 Zustands-Code (CC)-Steuerung . 0O=NOP
01=Ladearithmetik
iO=Ladelogik
1l=Ladeparität von niedrigrangigstem SPB-Byte
609842/0887
- 40 - 26 1/059
Bit 10 Schreibe PTW-Zwischenspeicher Bits 11-13 ZAC für Lese/Schreib-Speicherzyklus (Bits 1-3 der Lese/Schreib-Adressen-Schalterpositionen 0 und 1) OXX^Lesen
1XX=Schreiben
XOX--Einfachpräzision XiX=Doppelpräzision
Bit 14 Setz/Rückstell-Bits definiert durch CSR41-44 Bits 15-17 SIü-Anforderungstyp 00O=NOP
001=Unterbrechungsdaten 0i0=Freigabe und Unterbrechungsdaten 011=Speicher oder piogrammierbare Schnittstellendaten (PI wenn 19-20=10) iOO=Gelesenes Byte zum Schreiben (Byte-Adresse, Lese/
Schreib-Zone,wenn schreiben) + 101=Befehlabruf
+ 1iO=Befehlabruf wenn CIRO=IRWO *■+ 111=Befehlabruf wenn Sprungtest erfüllt oder wenn CSRI=O
eine * Diese Codes verursachen'PTW-Fehl-Befehlsfolge, wenn ein
Seitenfehler festgestellt wird
·*■■*■ Dieser Code verursacht eine PTW-Operanden-Fehlfolge, wenn ein Seitenfehler festgestellt wird
Bit 18 PTW-Zwischenspeicheradresse 0=erweiterte Lese/Schreiboperation von WRP 1=laufender Rang der PTW-Lese/Schreiboperation von der
effektiven Adresse Bits 19-2OAdresse-Schaltersteuerung OO=seitenunterteilte Adresse (Steuerlogik erzwingt den Wert 01, wenn PSRiO=D Oi=absolute Adresse 10=PI-Adresse
11=PTW-Zwischenspeicher 0-35 Bit 21 Schreibe WR
6 0 9842/0887
Bits 22-23 CSA-Schaltersteuerung (erste vier Positionen) OO=Nächst-Adressregintcr (NA) Oi=Rückkehr-Adressregister (RA) 1O=Ausführungsadressregister (XA)
11=Standard-Folgeadresse Bits24-25 WRR-Leseadresse Bits 26-27 WRP-Leseadresse 0O=IC O1=R1 1O=R2
11=R3 Bit 28 Operandenschalter O=SPB
1 =WRR Bits 29-30 PSR/PCR-Steuerung und ALU-Betriebsweise 00= Lese PBR oder logische Betriebsweise Oi=Lese PCR oder arithmetische Betriebsweise iO=Schreibe PSR
11=Schreibe PCR Bits 31-32 Addierer/Verschieber-Ausgangsschalter 00=Verschieber 0I=ALU iO=Speichern
11=Laden Bits 33-35 B Operandenschalter 00O=DL 001=DS 01O=IS O11=IL 10O=WRR 101=8, Wortlänge oder übertrag 11O=Konstante KO-8
111-DI Bits 36-44 Konstante KO-8 Dieses Feld wird ebenfalls für eine gegenseitige exklusive Steuerung benutzt.
B0 9842/0887
- 42 - 26 ϊ?059
Bits 36-37 8/WL/CY-Steuerung
00, 8/WL/CY=IRSW Befehlswortlänge
01, 8WL/CT=PSR Übertrags-Bit 10, 8/WL/CY=8
Bits 36-38 Verschiefoe-Zählstand-Schaltersteuerung
000 Linksverschiebung
001 Rechtsverschiebung
010 CSR-Verschiebezählstand (39-44)
011 Befehl Fi-FeId
100 Befehl F2-Feld
101 Befehl F3-Feld
110 Byte laden
111 Byte speichern
Bits 39-44 CSR-Verschiebe-Zählstand Bits 36-44 CSA-Schalter-Verzweigungsadresse Bits 37-38 Sprung-Testwert für getestete Bedingungen mehrerer Werte
Bit- 38 WA-Eingang-Schaltersteuerung (O=GRI, 1=GR2) Bits 39-41 Sprung-Testbedingung
000 WRR35=CSK38 wenn CSR37=1 WRRO=CSR38 wenn CSR37=O
001 PSR13 (Übertrag)=CSR38
010 WRR33=CSR38
011 IRSW 14-35 enthält Ädressilbe und Bit 18-0 100 BRAC CF-FeId besitzt Bit entsprechend PSR CC
wenn CSR 38=1
BRAC CR-FeId besitzt kein Bit entsprechend PSR CC wenn CSR38=O
101PSR CC-Peld=CSR37=38
110 IRSW7=WRR0 wenn CSR37=O IRSW7=CSR38 wenn CSR37=1
111 SIÜ-HLIP-Leitung aktiv und nicht gesperrt oder LZP aktiv
Bits 42-44 Spring-Zählstand Bits 38-44 GR-Zwischenspeicher-Gesamtadresse Bits 41-44 GR-Zwischenspeicher-Adresse pro Prioritätsrang
R 0 9 8 4 2 / 0 Β 8
- 43 - ?B |?l]UQ
Bits 41-44 Setze/Rückstelle Bit-Adresse
0000 Rückstelle Halte-Betriebsweise
0001 Setze Haltc-Betriebsweise
0010 Rückstelle Sperr-Unterbrechungs-Betriebsweise
0011 Setze Sperr-Unterbrechungs-Betriebsweise 0100/0101 Rückstelle PCR-Ausnahme-Speicherung 0110/0111 nicht definiert
1000/1001 Invertierung DO, Steuerung und Unterbrechung der Datenparität
1010/1011 Invertierung von PR-Parität und bedingte
Sperrung von GR SP-Schreibtakt
1100/1101 Bedingte Sperrung von DR SP-Schreibtakt
1110/1111 Setze Maßnahme-Flip-Flop F/F
Bits 45-48 ALU-Steuerung/Verschiebeeingang-Schaltersteuerung Bits 45-48 ALU-Operation (CSR30=Betriebsweise) Bits 45-46 Linksverschiebung-Eingangsschalter
0O=A Operandenschalter
01 Vorzeichen des Rechtsverschiebung-Eingangsschalteis . 10 Nullstellen
11 Einerstellen
Bits 47-48 Rechtsverschiebung-Eingangsschalter
OX Nullstellen
10 B-Operandenschalter
11 A-Operandenschalter
Bits 49-50 GR-Zwischenspeichersteuerung
0O=NOP
01=Schreiben GR-Zwischenspeicher
iO=Laden SPB von GR Zwischenspeicher
11= ■ Laden SPB von WRP Bits 51-53 GR-Zwischenspeicheradresse
OOO=CSR-Zwischenspeicher-Gesamtadresse (CSR 38-44)
609842/Ü887
- .44 -
2617059
Bits 51-53 001"CSR Zwischenspeicher-Adresse pro Prioritätsrang (AIL, CSR41-44)
010= erweiterte Lese/Schreibadresse von WRR 011=laufender Prioritätsrang XR2 i00=laufender Prioritätsrang XR1 i02=laufender Prioritätsrang GR1 1i0=ungerades Register des durch WA im laufenden Prioritätsrang adressierten Paares
111=WA-Adresse im laufenden Prioritätsrang Bit 54 , A Operandenschalter
O=SPB
1 =WRR
Der Steuerspeicher 318 besteht aus einem im Stand der Technik bekannten Festwertspeicher ROM. Das im Steuerspeicher 318 abgelegte Mikroprogramm steuert die erfindungsgemäßen Operationen. Wenn der Steuer speicher 318 entsprechend mikroprogratnmiert ist, so bildet er die Firmware gemäß der Erfindung.
Die Firmware unterscheidet sich von einem Software-Programm dadurch, daß eine tatsächliche Operation in dem Festwertspeicher ROM ausgeführt wird und beispielsweise ein Spannungsversorgungsausfall dieses Mikroprogramm nicht verändert. Diese Ausbildung ist einem festverdrahteten Computerprogramm verwandt. Bei einer Software-Porgrammierung ergibt sich jedoch keine physikalische Veränderung des Speichers, sondern nur eine elektrische Veränderung, so daß beispielsweise ein Spannungsversorgungsausfall das Programm im Speicher des Rechners zerstört. In Bezug auf eine Hardware-Logik besteht keine Verwandtschaft.
6 09842/0887
2B I 70 5 9
Aus dem vorstehend beschriebenen Aufbau des erfindungsgemäßen DV-Systems ergibt sich folgende Wirkungsweise:
Die vorliegende Erfindung macht von vielen Vorgriffsmerkmalen bekannter Computer Gebrauch, wobei ein Befehlsabruf eines nachfolgenden Befehles der vollständigen Ausführung eines zuvor aufgerufenen Befehles vorausgeht, wie dies in der US-PS 3 254
•e.
beschrieben ist. Die Erfindung macht ferner von Merkmalen Gebrauch, wie sie in der US-PS 3 202 969 erwähnt sind-nach der der Befehl aus dem Speicher abgerufen und mit seiner Ausführung begonnen werden soll, während die arithmetische Operation läuft. Ebenso wird bei der vorliegenden Erfindung von der eingangs erwähnten Fließbandbearbeitung von Befehlen Gebrauch gemacht.
Das Befehlsregister 314 speichert bis zu 4 auszuführende Befehle, die aus dem Hauptspeicher während der Ausführung vorangegangener Befehle abgerufen worden sind. Insbesondere wird mit der Ausführung des nächsten auf seine Bearbeitung wartenden Befehls im Befehlsregister 314 während der Ausführung eines laufenden Befehls begonnen, indem die Bits 0-17 (siehe Figuren 2M - 2N) in den Bitpositionen O - 17 in dem Befehlsregisterschalter 319a abgelegt werden. Die Indexbits 14 - 17 gemäß Figur 2N des nächsten Befehls werden sodann benutzt, um ein Allgemeinregister im Zwischenspeicher 328 über den Wegsucher 319a und den Multiplexerschalter 332 (LEV, XRl) zu adressieren. Diese Operation wird als ein Teil der DONE-Anweisung ausgeführt, welche den letzten Microbefehl innerhalb des gerade ausgeführten Softwarebefehls bildet.
Der Inhalt des Zwischenspeichers 328 wird in den Zwischenspeicher-Puffer SPB-330 ausgelesen und die Adresse des Indexregisters XRl wird über den Schalter 332 und den Datenweg SPA in den Zwischenspeicher 328 geholt. Das Bit 18 der Adresssilbe des Befehls (Figur 2N) wird auf "1" gesetzt, falls eine
B 09842/0887
zweite Rangindizierung angefordert wird. Der Mikrobefehl DONE ruft einen Sprungtest auf, um festzustellen, ob die zweite Rangindizierung angefordert wird oder nicht. Schließlich fordert er die Standardfolge SS zur Bildung der Steuerspeicheradresse CSA an. Die Standardfolge SS stellt die gemeinsame Routine zur Ausführung des nächsten Softwarebefehls dar.
Sodann wird mit einem Wortlese-Speicherzyklus begonnen. Die Adresse wird aus R2 in den Arbeitsregistern 326 freigegeben. Der PTW-Zwischenspeicher 334 wird adressiert und es wird die seitenunterteilte (oder absolute) Adresse in dem Adressenschalter 336 gebildet. Die Adresse wird über den Doppelkanal X-BAR 338 in das Daten-Ausgangsregister 312 übertragen. Nachfolgend wird das Nächstadressregister im Rückkehrregister gesichert und nach 136 verzweigt. Das Daten-Eingangsregister 310 überträgt Daten über den B-Schalter 320, die Addier/Verschiebeeinheit 324 und den Doppelkanal X-BAR 338 in das Arbeitsregister R2-326. Die Verschiebeeinheit 324 führt eine Rechtsverschiebung durch, wobei die Position BL des Verschiebezählstandschalters und R2 als Byte-Adresse zur Definition des Verschiebezählstandes benutzt werden. Rl stellt alle Positionen von Rl auf 0 mit Ausnahme der Bits 27-35 und CC wird mit einem logischen Test geladen (kein überlauf). Mit dem Befehlsabruf wird gestartet, wenn Platz in IR 314 vorhanden.
609842/0887
2 6 1 7 O B 9
Rl wird beim letzten Schritt geladen, wodurch W F/F gesetzt wird und es wird R-I -w* SP beim nächsten Takt geschrieben.
Mit den auf diese Weise vorbereiteten Registern und Puffern besteht die herkömmliche Methode der Ausführung eines Software-Befehles für den neuen Software-Befehl darin, die Indexregister aus einem Allgemeinregister XRl im Zwischenspeicher 328 auszulesen und den Inhalt des Indexregisters im Zwischenspeicherpuffer SPB-330 abzulegen. Der zweite Schritt des Software-Befehls besteht sodann darin, die'Adresse des Operanden zu bilden, indem der Inhalt des Indexregisters in SPB-330 zu der Verschiebung DL des im Schalter IRSW-319a enthaltenen Befehls addiert wird-(Figuren 2M-2N). Dementsprechend wird die Verschiebung DL oder DS in der Addier/Verschiebeeinheit 324 über die Position 0 oder die Position 1 des B-Schalters 320 eingegeben. Der Inhalt des SPB-Registers 330 wird in gleicher Weise über den A-Schalter der Addier/Verschiebeeinheit 324 zugeführt und zu der Verschiebung DL oder DS hinzuaddiert, je nach dem ob eine lange oder kurze Verschiebung vorliegt. Der nächste Schritt besteht darin, die modifizierte Adresse in das Register R2 des Arbeitsregisters 326 einzugeben. Diese Adresse wird benutzt, um über den PTW-Zwischenspeicher 334 und den Adressenschalter 336 sowie den Doppelkanal X-BAR einen Lese/Schreib-Speicherplatz im Daten-Ausgangsregister 312 zu adressieren. Die Speicherposition wird über das Daten-Eingangsregister 310r den B-Schalter 320, die Addier/Verschiebeeinheit 324 und den Doppelkanal X-BAR-338 in das Arbeitsregister Rl-326 eingelesen. Schließlich wird der Inhalt des Arbeitsregisters Rl-326 in ein Allgemeinregister des Zwischenspeichers 328 über den Datenweg WRP eingeschrieben.
Bei Anwendung des Vorgriffsmerkmals gemäß der vorliegenden Erfindung ist es nicht erforderlich, bei irgendeinem Schritt des neuen Software-Befehls das Auslesen des Zwischenspeichers 328
609842/0887
2617059
in den Zwischenspeicherpuffer 330 zu veranlassen, da wie-zuvor beschricben-dies über die DONE-Anweisung mit dem letzten Microbefehl des gerade bearbeiteten Software-Befehls verwirklicht worden ist. Ebenso ist es für den neuen Befehl nicht erforderlich, den Inhalt des Arbeitsregisters 326 in den Zwischenspeicher zu schreiben, da dies mit dem ersten Schritt des nächsten Befehls geschieht. Kenn auf den neuen Software-Befehl durch die Standardfolge SS Zugriff genommen wird, so bildet der erste Schritt des neuen Software-Befehls den zweiten Schritt bei der konventionellen Methode des Abrufs und der Ausführung eines Software-Befehls, d.h. der erste Schritt des neuen Software-Befehls modifiziert die Adresse durch Addition der Verschiebung DL des Befehls zu dem Indexregister, das in dem Zwischenspeicherpuffer SPB-330 enthalten ist, wie dies zuvor im Schritt 2 der herkömmlichen Methode der Ausführung eines Software-Befenles beschrieben wurde. Es sei weiterhin darauf hingewiesen, daß bei der herkömmlichen Methode der Ausführung eines Software-Befehles die aus dem Lese/Schreibspeicher in das Arbeitsregister 326 geladenen Daten beim letzten Schritt des Befehls in den Zwischenspeicher 328 übertragen werden mussten. Mit dem Vorgriffsmerkmal gemäß der Erfindung wird die Übertragung des Arbeitsregisters 326 in den Zwischenspeicher beim ersten Schritt des neuen Befehls ausgeführt. Da der alte Software-Befehl und der neue Software-Befehl gleichzeitig ausgeführt v/erden, werden zwei Taktzyklen eingespart. Da eine Selbstvervollständigung des alten Software-Befehls ebenfalls nicht erforderlich ist, da diese Operation dem ersten Teil des neuen Software-Befehls überlassen wird, kann der alte Software-Befehl diese Zeit nicht nur zum Zugriff auf den alten Befehl verwenden, sondern auch zum Zugriff auf Information, die für den neuen Befehl erforderlich ist, so daß der neue Befehl in seinem ersten Schritt sofort mit der gleichzeitigen Bearbeitung der Vervollständigung des alten Befehles beginnen kann, was normalerweise durch den zweiten Schritt des neuen Befehls erst durchgeführt wird. Es ergibt sich somit ein vergrößertes Leistungsvermögen des Systems bei der Abrufung und der Ausführung von Befehlen, insbesondere bei Verzweigungs- und Unterbrechungsbefehlen, da die Maßnahmen der Vorabrufung, der Überlappung und
609842/0887
der Fließbandbearbeitung von Befehlen bei dem hier vorliegenden Konzept in neuartiger Weise miteinander kombiniert sind.
Ein besseres Verständnis der Erfindung ergibt sich durch eine Bezugnahme auf die Figuren 3, 4 und 5 und durch einen Vergleich der herkömmlichen Methode des Befehlsabrufs und der Befehlsausführung mit derjenigen gemäß der Erfindung. Die Figuren 4 und 5 zeigen Nebentaktzyklen, während denen Microoperationen eines Befehles ausgeführt werden und einen Haupttaktzyklus, der sich aus den Nebentaktzyklen zwecks Ausführung von Macrooperationen zusammensetzt. Aus Figur 4 ergibt sich:
Herkömmliche Methode
Letzter Schritt minus 1:
Letzter Schritt:
Erster Schritt:
Zweiter Schritt;
Lade Inhalt des Dateneingangsregisters DI in die Position Rl der Arbeitsregister 326 über den Datenweg 310-32Ö-324-328-326. Alternativ kann die Position Rl geladen werden, indem der Inhalt von SPB-330 zu dem Inhalt von DI-310 addiert wird.
Schreibe den Inhalt von Rl in den Zwischenspeicher 328 über den WRP-Datenweg 326-328.
Lese den Inhalt von XRI im Zwischenspeicher 328 nach SPB-330. Ein Allgemeinregister GR im Zwischenspeicher 328 speichert XRI. Es wird über die Adresse von XRI im Befehl adressiert, wobei der Datenweg wie folgt verläuft: 319a-332 LEVEL-328-33Oa-33O.
Addiere entweder die lange Verschiebung DL (Position 0 von Schalter 320) oder die kurze Verschiebung DS (Positior 1 von Schalter 320) zu dem Inhalt von SPB-330 und lege das Ergebnis in R2-326 ab.
609842/0887
Unter Bezugnahme auf Figur 3 ergibt sich:
Vorgriffsmethode gemäß der Erfindung
Letzter Schritt: Lade Inhalt von DI-310 nach Rl-326
(W Flip-Flop F/F wird gesetzt, wenn Rl geladen ist) und lese Inhalt von XRl im Zwischenspeicher 328 nach SPB-330.
Erster Schritt: Addiere DL oder DS zum Inhalt von SPB-330 und lege das Ergebnis in R2 ab und schreibe den Inhalt von Rl-326 in den Zwischenspeicher 328, wenn W Flip-Flop (nicht dargestellt) gesetzt ist.
609842/0887
Liste der verwendeten Abkürzungen
AIL - Active-Interrupt Level - Aktiver Unterbrechungsrang
ALU - Adder Logical Unit - Rechenwerk ARA - Active Request Accepted - Aktive Anforderung angenommen ARDA - Accept Read Data - gelesene Daten angenommen
BRAC CF- Branch on- Condition - Condition Field - Bedingungsverüweigüng - Bedingungsfeld
BRB - Branch on Bit - Verzweigungs-Bit
CBB - Control Block Basis - Steuerblockbasis
CBBR - Control Block Basis Register - Steuerblockbasisregister
CC - Condition Code - Zustands-Code
CIR - Current Instruction Read - Laufender Befehl Lesen
CEMIO - Communication Input/Output - Nachrichteneingang/ausgang
CPI - Common Peripheral Interface - Gemeinsame periphere Schnittstelle
CSA - Control Store Address - Steuerspeicheradresse
CSR - Control Store Register - Steuerspeicherregister
DAI - Device Adapter Interface - Geräte Adapter-Schnittstelle
DI - Data Interface - Datenschnittstelle
DISP - Dispatch Instruction - Verteilbefehl
DL - Long Displacement - Lange Verschiebung
DO - Data Out (Register) - Datenausgangs(Register)
DPCR - Display Process Control Register - Prozeß-Steuerregister-Anzeige
DS - Short Displacement - Kurze Verschiebung
DSL - Double Shift Left - Doppelverschiebung nach links
DSR - Double Shift Right - Doppelverschiebung nach rechts
ECB - Exception Control Block - Ausnahmesteuerblock
GR - General Register - . Allgemeinregister
HLIP - Higher Level Interrupt Present - Unterbrechung mit höherem Rang vorhanden
HSMX - High Speed Multiplexer - Hochgeschwindigkeits-Multiplexer
609842/0887
ICB - Interrupt Control Block - Unterbrechungs-Steuerblock
IL - Long Intermediate Value - Langer Zwischenwert
IS - Short Intermediate Value - Kurzer Zwischenwert
IOM - Input/Output Multiplexer - Eingang/Ausgang-Multiplexer
IOP - Input/Output Processor - Eingang/Ausgang-Prozessor
IRSW - Instruction Register Switch,- Befehlsregisterschalter
L2MG - Load 2 Words of Memory to General Register -
Lade 2 Worte des Speichers in das Allgemeinregister
LMPS - Local Memory Port Specifier - Interner Speicheranschluß Kennzeichner
LSMX - Low Speed Multiplexer - Niedriggeschwindigkeits-MuItiplexer
LZP - Level Zero Interrupt Present - Unterbrechung mit Rang Null vorhanden
MME - Master Mode Entry - Entritt in Hauptbetriebsweise
MPC - Micro Program Peripheral Controllers - Mikroprogrammierte periphere Steuerung
NA - Next Address (Register ) - Nächstadressen (Register)
NIR - Next Instruction Read - Nächster Befehl gelesen
NOP - No Operating Instruction - Kein Operationsbefehl
ONC - Operation not Complete - Operation nicht vollständig
PCR - Process Control Register -Prozeß-Steuerregister
PI - Programmable Interface - Programmierbare Schnittstelle
PRA - Page Relative Address - Relative Seitenadresse
PSR - Process State Register - Prozeß-Zustandsregister
PTBR - Page Table Base Register - Seitentabellen-Basisregister
PTW - Page Table Word - Seitentabellenwort
PN - - Page Number - Seitennummer
PSI - Peripheral Subsystem Interface - Periphere Untersystem-Schnittstelle
609842/0887
RA - Return Address-(Register) - Rückkehradress-(Register)
RDEX - Read External - Externes Lesen
RDRR - Read Remote Register - Lese externes Register
REL - Release - Freigabe
RFU - Reserved for Future Use - Reserviert für zukünftigen Gebrauch
REMA - Remote Memory Adapter - Externer Speicher-Adapter
RMM - Return from Master Mode - Rückkehr aus Hauptbetriebsweise
SAP - Saving Aera Pointer - Sicherungsbereich-Hinweisadresse
SIU - System Interface Unit - System-Schnittstelleneinheit
SKP - Skip .- Sprung
SPA - Scratch Pad Address - Zwischenspeicher-Adresse
SPB - Scratch Pad Buffer - Zwischenspeicher-Puffer
SS - Standard Sequence - Standardfolge.
S2MG - Store 2 General Register Words in Memory-
Speichere 2 Allgemeinregisterworte im Speicher
WA - Write Address - Schreibadresse
WRR - Working Register Output for supplying Operands Arbeitsregisterausgang für die Operandenlieferung
WRRR - Write Remote Register - Schreibe externes Register WREX - Write External - Schreibe extern
WRW - Working Register Write Input - Arbeitsregister-Schreibeingang
WL/CY - Word Lenght or Carry - Wortlänge oder Übertrag
WRP - Working Register Output for Paging - Arbeitsregistereingang für Seitenadressierung
XR - Indexregister - Indexregister
XA - Execution Address (Register ) - Ausführungsadress-(Register)
ZAC - Zone Address and Command - Zonenadresse und Befehl
609842/0887

Claims (1)

  1. 5202573
    Patentansprüche
    M.!verfahren zum Befehlsabruf und zur Befehlsausführung in einem Universalrechner, gekennzeichnet durch
    a. den Beginn der Ausführung des nächsten auszuführenden Befehls während der Ausführung des letzten Teiles des gerade bearbeiteten Befehls und
    b. die Beendigung des gerade bearbeiteten Befehls während der Ausführung des ersten Teiles des nächsten Befehles.
    2. Verfahren nach Anspruch 1, gekennzeichnet durch die Erzeugung von Haupt- und Nebentaktzyklen, wobei die Ausführung eines Befehls während eines Haupttaktzyklus durch schrittweise Ausführung einer vorbestimmten Anzahl von MikroOperationen erfolgt und ein oder mehrere MikroOperationen pro Nebentaktzyklus ausgeführt werden.
    3. Verfahren nach Anspruch 2,dadurch gekenn-
    z eichnet, daß der Beginn der Ausführung des nächsten auszuführenden Befehls mit dem letzten Nebentaktzyklus des gerade ausgeführten Befehls beginnt und daß die Beendigung des gerade ausgeführten Befehls durch den ersten Nebentaktzyklus des nächsten Befehls erfolgt.
    f 4.)Befehlabruf und Befehlsausführungseinrichtung einer Zentraleinheit zur Durchführung des Verfahrens nach Anspruch 1 mit Allgemeinregistern zur Operandenspeicherung und mit einem Haupt- und Zwischenspeicher, wobei MikroOperationen eines Befehlsabrufes oder einer Befehlsausführung während Untertaktzyklen durchgeführt werden und wobei die Gesamtheit einer
    609842/0887
    vorbestimmten Anzahl von MikroOperationen die Hauptoperation des während der Haupttaktzyklen ausgeführten Befehls bilden, und mit einer Vorgriffseinrichtung, gekennzeichnet durch:
    a. eine erste Einrichtung, die auf einen letzten Untertaktzyklus während der Ausführung eines ersten Befehls anspricht und der Ausführung der letzten Mikrooperation des ersten Befehls dient,
    b. eine zweite Einrichtung, die ebenfalls auf den letzten Untertaktzyklus während der Ausführung des ersten Befehls anspricht und mit der Ausführung eines zweiten Befehls während des letzten Untertaktzyklus beginnt,
    c. eine dritte Einrichtung, die auf einen ersten Untertaktzyklus während der Ausführung des zweiten Befehls anspricht und der Ausführung der ersten Mikrooperation des zweiten Befehls dient und
    d. eine vierte Einrichtung, die ebenfalls auf den ersten Untertaktzyklus während der Ausführung des zweiten Befehls anspricht zwecks Beendigung der Ausführung des ersten Befehls.
    5. Einrichtung nach Anspruch 4,dadurch gekennzeichnet, daß die Zentraleinheit eine fünfte Einrichtung zur Speicherung von dem Hauptspeicher entnommenen Daten und eine sechste Einrichtung zur Speicherung von Operationsergebnissen aufweist, und daß die erste Einrichtung den Inhalt der fünften Einrichtung in die sechste Einrichtung lädt.
    6. Einrichtung nach Anspruch 5, gekennzeichnet durch Indexregister in dem Zwischenspeicher zur Speicherung indizierter Adressen von Operanden im Hauptspeicher und ferner durch eine siebente Einrichtung zur Auswahl eines der Indexregister sowie durch eine achte an den Zwischenspeicher angeschlossene Einrichtung zur temporären Speicherung von aus dem Zwischenspeicher ausgelesenen Informationen, wobei
    609842/0887
    - 56 - 2 6 1'? Π Β 9
    die zweite Einrichtung das Einlesen des Inhalts eines ausgewählten Indexregisters in dem Zwischenspeicher in die achte Einrichtung bewirkt.
    7. Einrichtung nach Anspruch 6,gekennzeichnet durch eine neunte Einrichtung zur Speicherung einer Verschiebeadresse eines ausgewählten Operanden, durch eine an die achte und neunte Einrichtung angeschlossene Addiereinrichtung und durch eine an die Addiereinrichtung angeschlossene zehnte Einrichtung zum Speichern des ausgelesenen Wertes, wobei die dritte Einrichtung die Speicherung der addierten Inhalte der:·· achten und neunten Einrichtung in der zehnten Einrichtung bewirkt.
    8. Einrichtung nach Anspruch 7/dadurch gekennzeichnet, daß die vierte Einrichtung die Übertragung des Inhalts der zehnten Einrichtung in den Zwischenspeicher bewirkt.
    6 09842/0 887
    5*
    Leerseite
DE19762612059 1975-03-26 1976-03-22 Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner Withdrawn DE2612059A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US56227275A 1975-03-26 1975-03-26

Publications (1)

Publication Number Publication Date
DE2612059A1 true DE2612059A1 (de) 1976-10-14

Family

ID=24245558

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762612059 Withdrawn DE2612059A1 (de) 1975-03-26 1976-03-22 Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner

Country Status (6)

Country Link
US (1) US4110822A (de)
JP (1) JPS51132731A (de)
CA (1) CA1059639A (de)
DE (1) DE2612059A1 (de)
FR (1) FR2305786A1 (de)
GB (1) GB1547387A (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4313160A (en) * 1976-08-17 1982-01-26 Computer Automation, Inc. Distributed input/output controller system
FR2388344A1 (fr) * 1977-04-19 1978-11-17 Cii Honeywell Bull Procede et dispositif de calcul d'adresse d'enchainement des micro-instructions a executer dans une memoire de commande d'un systeme informatique
JPS5440537A (en) * 1977-09-07 1979-03-30 Hitachi Ltd Pipeline control system
US4255785A (en) * 1978-09-25 1981-03-10 Motorola, Inc. Microprocessor having instruction fetch and execution overlap
US4245304A (en) * 1978-12-11 1981-01-13 Honeywell Information Systems Inc. Cache arrangement utilizing a split cycle mode of operation
US4342078A (en) * 1979-05-21 1982-07-27 Motorola, Inc. Instruction register sequence decoder for microprogrammed data processor and method
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
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
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
DE3166256D1 (en) * 1981-03-23 1984-10-31 Ibm Deutschland Device for shortening the cycle time in a data processing device
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US4646236A (en) * 1981-04-17 1987-02-24 International Business Machines Corp. Pipelined control apparatus with multi-process address storage
JPS5835627A (ja) * 1981-08-26 1983-03-02 Toshiba Corp メモリデ−タ先取り制御方式
JPS5848146A (ja) * 1981-09-18 1983-03-22 Toshiba Corp 命令先取り方式
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
JPS5858653A (ja) * 1981-10-02 1983-04-07 Hitachi Ltd デ−タ処理装置
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
US4454589A (en) * 1982-03-12 1984-06-12 The Unite States of America as represented by the Secretary of the Air Force Programmable arithmetic logic unit
JPS592143A (ja) * 1982-06-29 1984-01-07 Hitachi Ltd 情報処理装置
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
JPH061441B2 (ja) * 1983-09-12 1994-01-05 モトロ−ラ・インコ−ポレ−テツド 先取り確認装置
JPS60107141A (ja) * 1983-11-16 1985-06-12 Fujitsu Ltd プランチ制御方式
US4562537A (en) * 1984-04-13 1985-12-31 Texas Instruments Incorporated High speed processor
US4670835A (en) * 1984-10-19 1987-06-02 Honeywell Information Systems Inc. Distributed control store word architecture
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
US5062036A (en) * 1985-06-10 1991-10-29 Wang Laboratories, Inc. Instruction prefetcher
US4761731A (en) * 1985-08-14 1988-08-02 Control Data Corporation Look-ahead instruction fetch control for a cache memory
JPS6280743A (ja) * 1985-10-01 1987-04-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション アドレス変換例外処理方法
JPH0727462B2 (ja) * 1985-10-11 1995-03-29 株式会社日立製作所 データ処理装置におけるページフォールト実行再開方法
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
US4888689A (en) * 1986-10-17 1989-12-19 Amdahl Corporation Apparatus and method for improving cache access throughput in pipelined processors
US5086498A (en) * 1987-01-23 1992-02-04 Hitachi, Ltd. Parallel computer with asynchronous communication facility
US5179688A (en) * 1987-06-30 1993-01-12 Tandem Computers Incorporated Queue system with uninterrupted transfer of data through intermediate locations to selected queue location
US4894772A (en) * 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
JP2810043B2 (ja) * 1987-11-13 1998-10-15 株式会社日立製作所 データ処理装置
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
US5179674A (en) * 1988-07-25 1993-01-12 Digital Equipment Corporation Method and apparatus for predicting valid performance of virtual-address to physical-address translations
US4914584A (en) * 1988-10-17 1990-04-03 Gibson Glenn A Rules and apparatus for an intermediate code memory that buffers code segments
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5333291A (en) * 1991-06-14 1994-07-26 International Business Machines Corporation Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination
US5524220A (en) * 1994-08-31 1996-06-04 Vlsi Technology, Inc. Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems
US5608886A (en) * 1994-08-31 1997-03-04 Exponential Technology, Inc. Block-based branch prediction using a target finder array storing target sub-addresses
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US7487339B2 (en) * 2001-10-12 2009-02-03 Mips Technologies, Inc. Method and apparatus for binding shadow registers to vectored interrupts
US7552261B2 (en) * 2001-10-12 2009-06-23 Mips Technologies, Inc. Configurable prioritization of core generated interrupts
US7493607B2 (en) 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
EP3383771B1 (de) * 2015-11-30 2023-02-22 Hubbell Incorporated Unterbrechungsausnahmefensterprotokoll auf einem datenkommunikationsbus und verfahren und vorrichtungen zur verwendung davon

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
GB1226125A (de) * 1967-07-14 1971-03-24
US3573854A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
US3983541A (en) * 1969-05-19 1976-09-28 Burroughs Corporation Polymorphic programmable units employing plural levels of phased sub-instruction sets
JPS514381B1 (de) * 1969-11-24 1976-02-10
US3609700A (en) * 1970-02-24 1971-09-28 Burroughs Corp Data processing system having an improved fetch overlap feature
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US3811114A (en) * 1973-01-11 1974-05-14 Honeywell Inf Systems Data processing system having an improved overlap instruction fetch and instruction execution feature
JPS5247976B2 (de) * 1973-03-16 1977-12-06
GB1426749A (en) * 1973-06-05 1976-03-03 Burroughs Corp Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets
IT993428B (it) * 1973-09-26 1975-09-30 Honeywell Inf Systems Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM-Journal, Januar 1967, S. 8-24 *

Also Published As

Publication number Publication date
US4110822A (en) 1978-08-29
FR2305786B1 (de) 1979-05-18
JPS51132731A (en) 1976-11-18
GB1547387A (en) 1979-06-20
CA1059639A (en) 1979-07-31
FR2305786A1 (fr) 1976-10-22

Similar Documents

Publication Publication Date Title
DE2612059A1 (de) Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner
DE2612034A1 (de) Ausfallsicherung in einem universalrechner
DE2846495C2 (de) Zentraleinheit
DE2612037A1 (de) Prozessor
DE2612054A1 (de) Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE1813916C3 (de) Elektronische Datenverarbeitungsanlage
DE2714805A1 (de) Datenverarbeitungssystem
DE2611907A1 (de) Dv-system mit einer prioritaets- unterbrechungs-anordnung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2721319A1 (de) Einrichtung zur selbsttaetigen aenderung der prozessor/speicher-konfiguration
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2542740A1 (de) Mikroprogramm-datenverarbeitungsverfahren und geraet zur ausfuehrung des verfahrens
DE2459675A1 (de) Datenverarbeitungssystem
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2248296A1 (de) Programmsteuereinrichtung
DE2855722A1 (de) Einrichtung zur berechnung von produktsummen
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
DE2830334C2 (de)
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8139 Disposal/non-payment of the annual fee