DE2704560C2 - Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen - Google Patents
Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von MaschinenbefehlenInfo
- Publication number
- DE2704560C2 DE2704560C2 DE2704560A DE2704560A DE2704560C2 DE 2704560 C2 DE2704560 C2 DE 2704560C2 DE 2704560 A DE2704560 A DE 2704560A DE 2704560 A DE2704560 A DE 2704560A DE 2704560 C2 DE2704560 C2 DE 2704560C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- register
- command
- processor
- machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung bezieht sich auf eine datenverarbeiten-Ie
Anlage mit mehreren spezialisierten, durch Mikroirogramme
gesteuerten Prozessoren und mit einem ;emeinsamen Speichersystem, in der die Verarbeitung
on auch virtuell adressierten Maschinenbefehlen im Regelfall parallel erfolgt, indem ein Aufbereitungsprozessor
das Befehlslesen und die Adreßrechnung für Befehlsoperanden durchführt, und ein angeschlossener
Exekutivprozessor die eigentliche Befehlsausführung übernimmt (»Elektronische Rechenanlagen«, 1973, S.
60-65),
Für die Zentraleinheiten kommerzieller datenverarbeitender Anlagen sind abhängig von der Leistungsklasse
verschiedene Strukturen für die Verarbeitungsein-
I» richtungen bekannt Neben Prozessoren mit einer rein sequentiellen Befehlsverarbeitung, d. h. einer strengen
Reihenfolge der Funktionen »Ausführung eines /Ken Maschinenbefehls«, »Lesen des darauffolgenden
(Vj-fl)-ten Maschinenbefehls«, »Ausführung des
ι > (n+ l)-ten Maschinenbefehls« usw., sind auch Prozessoren
mit überlappender Befehlsverarbeitung bekannt. Hier wird die Tatsache ausgenutzt, daß sich ein
Verarbeitungszyklus für einen Maschinenbefehl mindestens in eine Bereitstellungs- und eine Ausführungsphase
unterteilen läßt Bei solchen Prozessoren wird dann der Lesevorgang für einen (n+:)-\m Maschinenbefehl
parallel zur Ausführung eines n-ten Maschinenbefehls durchgeführt wobei />
1 sein kann. In diese Gruppe von datenverarbeitenden Anlagen ist auch eine Einrichtung zum Verarbeiten von Maschinenbefehlen
unterschiedlicher Formate in einem mikroprogrammierten Datenverarbeitungssystem einzuordnen,
die in der deutschen Patentanmeldung P 25 57 787 vorgeschlagen ist In dieser Einrichtung werden
jo Maschinenbefehle verdeckt bereitgestellt, d. h. bereits
während der Ausführung eines vorausgehenden Maschinenbefehls in einer Verarbeitungseinheit aus dem
Arbeitsspeicher gelesen und in Befehlspuffern zwischengespeichert, deren Breite der Schnittstelle zum
Arbeitsspeicher entspricht. Dazu wird neben einem aktuellen Befehlszähler, der die vollständige Adresse
des in der Verarbeitungseinheit gerade auszuführenden Maschinenbefehls enthält, ein weiterer, mil ihm
verbundener Vorauslade-Befehlszähler vorgesehen.
Dieser enthält jeweils die Speicheradresse des nächsten, aus Jem Speichersystem auszulesenden Maschinenbefehls.
An beide Befehlszähler ist je eine Vergleichsrichtung angeschlosssen, die außerdem mit einem Adreßregister
des Speichersystems verbunden ist. Damit läßt sich die Gültigkeit des Inhalts der Betehlspuffer bei
unstetigen Modifikationen des aktuellen Befehlszählers überwachen. So werden Speicherkonflikte vermieden,
bei denen der Speicherinhalt bereits ausgelesener Maschinenbefehle während der Ausführung eines
vorangehenden Maschinenbefehls nochmals geändert wird.
Noch stärker ausgeprägt ist die Parallelarbeit bei Verar^eitungseinrichtungen der höchsten Leistungsklasse,
sie sind vielfach als sogenannte »Pipeline«-Prozessoren ausgeführt Die Struktur derartigti1 Verarbeitungseinheiten
ist z. B. in der Zeitschrift »Elektronische Rechenanlagen«, 1973, Seiten 60 bis 65 in dem Aufsatz
»Möglichkeiten der Beschleunigung einer Zentraleinheit durch strukturelle Maßnahmen« beschrieben.
hQ Danagh werden die Befehle nach Art eines Fließbandes
bearbeitet, wofür sich der Ausdruck »Pipeline« eingebürgert hat. Für die einzelnen Bearbeitungsphasen, wie
Lesen eines Maschinenbefehls, Decodieren, Adreßrechnung und Bereitstellung des Befehlsoperanden sind
οι jeweils eine oder mehrere Bearbeitungsstationen
vorgesehen. Die Maschinenbefehle durchlaufen taktweise die Kette dieser Bearbeitungsstationen und
werden anschließend in einen ExekutivDrozessor. der
analog gegliedert ist, übergeben. Dabei wird der Verkehr mit dem Speichersystem der datenverarbeitenden
Anlage vielfach über eine autonome .Speicherzugriffssteuerung abgewickelt, die die verschiedenen
Speicherzugriffe während des gesamten Verarbeitungszyklus eines Maschinenbefehls bzw. der parallel zu
verarbeitenden Maschinenbefehle miteinander koordinieren muß.
Ein solches Befehls-Fließband bedingt einen hohen schaltungsmäDigen Aufwand für die Parallelarbeit
während der Bereitstellungs- und der Ausführungsphase, um zu erreichen, dat) möglichst mit jedem
Maschinentakt ein Maschinenbefehl abschließend aus geführt wird. In jeder dieser beiden Phasen sind, wie
beschrieben, im allgemeinen mehrere ßcarbeitungsstationen vorgesehen d. h., es werden auch relativ viele
Maschinenbefehle mit unterschiedlich weit fortgeschrittenem Bearbeitungszustand gleichzeitig verarbeitet.
Besonders nachteilig bei diesen zwar leistungsstarken, jedoch sehr aufwendigen Prozessoren ist die Vielzahl
möglicher Speicher- oder Registerkonflikte. Darüber hinaus treten erfahrungsgemäß häufig unstetige Modifikationen
eines Programmablaufs auf, z. B. bei Programmunterbrechungen oder erfüllten Sprungbcdingungen,
so daß dann die in kosekutiver Folge in das Fließband cingelesenen Maschinenbefehle in all diesen
Fällen für ungültig erklärt werden müssen.
l'ür datenverarbeitende Anlagen einer mittleren Leistungsklasse ist dieser hohe Aufwand nn.!n gerechtfertigt,
der bei »Pipeline«-Prozessoren für die Steuerung von Warteschlangen und die Konfliktüberwachung
notwendig ist. Der Erfindung liegt daher die Aufgabe zugrunde, eine leistungsfähige datenverarbeitende Anlage
der eingangs genannten Art zu schaffen, an die folgende Anforderungen gestellt werden:
Die im Exekutivprozessor bzw. im Aufbereitungsprozessor ablaufenden Mikroprogramme dürfen sich nicht
gegenseitig behindern, deshalb müssen die Zugriffe beider Prozessoren zu dem Speichersystem bzw. zu den
internen Arbeitsregistern des Exekutivprozessors auf einfache Weise koordniert werden. Bei unstetigen
Programm-Modifikationen müssen im Vorgriff gelesene und bereits vorverarbeitete Befehle mit Sicherheit von
der Ausführung ausgeschlossen, die Befehlsverarbeitung muß am Sprungziel mit möglichst geringem
Zeitverlust wieder aufgenommen werden. Speicher- und Registerkonflikte selbst müssen auf möglichst einfache
Weise erkannt werden und davon abhängig ein so modifizierter Maschinenbefehl nochmals gelesen bzw.
für ihn die Adreßrechnung und die Bereitstellung von Operanden wiederholt werden.
Bei einer datenverarbeitenden Anlage der eingangs genannten Art wird diese Aufgabe erfindungsgemäß
durch die im Kennzeichen des Hauptanspruches beschriebenen Merkmale gelöst.
Der Exekutivprozessor und der Aufbereitungsprozessor benutzen also einen gemeinsamen Registerspeicher,
der im Exekutivprozessor realisiert ist. Dies hat den Vorteil, daß ein im Exekunivprozessor modifizierter
Registerinhalt nicht auch noch eine Modifikation in einem sonst erforderlichen entsprechenden Register des
Aufbereitungsprozessors bedeutet. Weiterhin können Aufbereitungs- und Exekutivprozessor eine einzige
Schnittstelle zum Speichersystem gemeinsam benutzen, ohne daß hierfür eine aufwendige Prioritätssteuerung
notwendig wäre. Auch die Überwachung von möglichen Speicher- oder Registerkonflikten mit Hilfe von zwei
Vergleichseinrichtungen ist relativ einfach, weil statt
einer ausgeklügelten Überwachungsmethode das relativ
einfach zu verwirklichende Kriterium benutzt wird, be nicht konsekutiv im Speichersystem stehenden Maschi
nenbefehlen die Parallelverarbeitung zu unterdrücken.
Dazu trägt auch wesentlich bei, daß durch det Atifbereitungsprozessor keine Speicher-Operandet
eines Maschinenbefehls im voraus gelesen, sondern nui
deren effektive Speicheradressen bereitgestellt werden Selbst Register-Operanden werden nur dann direkt
bereitgestellt, wenn dies bereits innerhalb einer kurzer Bereitstellungsphase möglich ist oder sie andererseit!
nicht innerhalb der Ausführungsphase eines Maschinen befchls ohne zusätzlichen Zeitaufwand gelesen werden
könnten.
Von besonderem Vorteil ist schließlich die hicrar chisch gegliederte Mikroprogrammsteuerung für der
Exekutiv- und den Aufbereitungsprozessor aus dem ladbaren Mikroprogrammspeicher. Die Mikroprogram
me des Exekutivprozessors ßehi;i an geeigneter Stelle
Stcucrkommandos zum Lesen eines Speicherworte« oder des Registerspeichers durch den Aufbereitungs
prozess')! ab. dadurch kann eine gegenseitige Behindc
rung des Exekutiv- und des Aufbereitungsprozessors arr Speichersystem bzw. am P.egisterspeicher ausgeschlos
sen werden. Im Format der Mikrobefehle de; Exekutivprozessors sind dafür zusätzlich nur zwe
weitere Bitstellen erforderlich, so daß dieser Vortei h·. ixits mit einem sehr geringen Aufwand erre'.hi wird.
Trotzdem ist der Mikroprogrammspeicher des Exekutivprozessors nicht mit der Detailsteuerung de<
Aufbereitungsprozessors belastet, was eine erhebliche Verbreiterung des Mikrobefehlsforinates bedeuten
würde, denn zusätzlich ist ein kleiner Zustandssteuer-Speicher
im Aufbereitungsprozessor vorgesehen. Damit ist der Aufbereitungsprozessor autonom gegenüber
dem Exekutivprozessor und kann selbständig und bedarfsabhängig über die Annahme der ihm vom
Exekutivprozessor übergebenen Steuerkommandos entscheiden. Weiterbildungen der Erfindung sind in
Unteransprüchen gekennzeichnet und werden in der nachfolgenden Beschreibung eines Ausführungsbeispieles
der Erfindung näher erläutert.
Für die Beschreibung dieses Ausführungsbeispieles dient erläuternd die Zeichnung, dabei zeigt
Fig. 1 in einem Blockschaltbild schematisch die Struktur einer datenverarbeitenden Anlage, bei der ein
Prozessorsystem gemäß der Erfindung verwendbar ist,
F i g. 2 und F i g. 3 gemeinsam die erfindungsgemäße Ausgestaltung des Aufbereitungsprozessors und an ihn
angeschlossene Funktionseinheiten der datenverarbeitenden Anlage,
Fig.4 und 5 anhand von Funktionsdiagrammen den
Ablauf der Aufbereitungsphase bereitzustellender Maschinenbefehle.
Zum besseren Verständnis für den Gegenstand der Erfindung ist zunächst in F i g. 1 ein Blockschaltbild
einer datenverarbeitenden Anlage dargestellt, von der
eine Einrichtung zum Aufbereiten von Befehlen einen Teil bildet. Die Anaige gliedert sich in drei größere
Funktionseinheiten, ein Speichersystem S-SYST, ein Prozssorsystem P-SYST und ein Ein-/Ausgabe-System
E/A-SYST.
Das Speichersystem S-SYST enthält einen vorzugsweise als Halbleiterspeicher ausgebildeten Arbeitsspeieher
mit einer Mehrzahl von Speichermoduln SP-M, die voneinander unabhängig über eine Arbeiisspeiener-Steuerung
AST angesteuert werden. An diese ist ebenfalls ein modular aufgebauter Pufferspeicher PSP
angeschlossen. Diese Speiehcrhicrarchie erlaubt im
typischen Belriebsfall mehr als 95% aller .Speicherzugriffe
aus dem schnellen Pufferspeicher PSP zu bedienen und damit die effektive Zugriffs- und
Zykluszeit des Speichersystems S-SYST wesentlich r,
herabzusetzen.
Als Vcrarbeiltingssystem enthält das Prozessorsystem
r'SYSTmindestens einen Exekutivprozessor EP
und einen damit integrierten Aufbereitungsprozessor IIP, dem ein Mikroprogrammladespeicher MPL zu- ι ο
geordnet ist. Dieser enthält die gesamten lunklioncllcn Mikroprogramme und kanrl· beispielsweise als flexible
Magnetplatte ausgebildet scm.
Schließlich kann auch das !-in-ZAusgabc-System
IyASYST mikroprogrammgcsteuerl sein und dazu r> eventuell auch den ladbaren Mikroprogrammspeichcr
W(M benutzen. F.s besitzt neben einer Ein-ZAusgabc-Stcucrung
I7JA-ST Byte- und Block-Multiplexkanälc
IiY-MlIX bzw. Hi.-MiJX, die funktionen ais spezielle
n-tcnübcrlragungsprozessoren zu betrachten sind, in .>ii
denen Hie Fin/Ausgabcvorgänge unabhängig vom Verarbeitungssystem durch Kanalprogramme gesteuert
ablaufen. Die Ein-ZAusgabe-Stcuerung t'/A-ST koordiniert diese Datcnübertragungsprozcdiiren nach Prioritätsgesichtspunkten.
>■■>
Nach diesem anhand von F i g. I geschilderten Überblick interessiert im vorliegenden Zusammenhang
im wesentlichen das Verarbeitungssystem und hier insbesondere der integrierte Aufbereilungsprozessor
IIP, da mikroprogrammierte Verarbeitungsprozessoren, κι
wie der Exekutivprozessor EP, an sich als bekannt vorausgesetzt werden können. Lediglich aus Platzgründen
ist der Aufbereitungsprozessor IIP in zwei getrennten Fig. 2 bzw. 3 dargestellt. Beide Figuren
enthalten, soweit zum Verständnis notwendig, neben r> Einzelheiten des Aufbereitungsprossors IIP auch schematisch
angegebene weitere Funktionseinheiten der datenverarbeitenden Anlage, die hier aus der Zeichnung
durch eine strichpunktierte Umrandung deutlich herausgehoben sind, um den Zusammenhang herzustellen. i<
>
Der in den Exekutivprozessor EP integrierte Aufbereitungsprozessor IIP soll parallel zur Verarbeitung
eines Maschinenbefehls in folgende, die Befehlsausführung abkürzende Funktion für nachfolgende
Maschinenbefehle /(n+//'ausführen: -r>
Lesen von Befehlen l(n+i)mh /=2 ... 8 aus dem
Speichersystem S-SYSTin einem Befehlspuffer;
Bereitstellen von Register-Operanden für den Befehl/Zn+I);
Bereitstellen von Register-Operanden für den Befehl/Zn+I);
Berechnung von effektiven Speicheradressen für w
den oder die Speicher-Operanden des Befehls
Bereitstellung des ersten Mikrobefehls für den Befehl l(n+\).
So kann im allgemeinen der Zeitaufwand für den Lesezugriff des Befehls für die Bereitstellung von
Register-Operanden und für die Adreßrechnung eingespart werden.
Gemäß der F i g. 2 enthält der Aufbereitungsprozes- m>
sor IIP einen aus Zähler-Flip-Flops aufgebauten aktuellen Befehlszähler P, in dem die effektive Adresse
eines zur Ausführung kommenden Maschinenbefehls niedergelegt ist Da, wie noch zu erläutern sein wird, die
Befehlsliste der datenverarbeitenden Anlage Befehle mit einer Länge von zwei, vier oder sechs Byte umfaßt,
ist dieser Befehlszähler P in herkömmlicher Weise um ±2. ±4 oder ±6 zu modifizieren. An ihm ist ein
ebenfalls J Byte breiter und analog aufgebauter Vorauslade Befehlszähler PPI angeschlossen. Dieser
enthält eine effektive Speicheradresse zum Befehlslesen. Sein Zählerstand weist deshalb gegenüber dem
Stand des aktuellen Befehlszählers /' meist einen Vorlauf auf, der in diesem Ausführungsbeispiel maximal
20 Byte betragen kann. Dieser Befehlszähler kann um + 2, +4 und +8 modifiziert werden. Sein Vorlauf
gegenüber dem Stand des aktuellen Befehlszählers P wird in einem Vorlaufzählcr VLZ angezeigt, der bei
einer Breite von 4 Bit als Vorwärts-Rückwärts-Zähler
ausgebildet ist. Sein Inhalt wird je nach der Länge des /ur Ausführung kommenden Maschinenbefehls um 1,2
oder 3 erniedrigt. Umgekehrt wird der Zählersland des Vorlaufzählers um 1. 2 oder 4 erhöht, wenn ein neues
Befehlswort aus dem Speichersystem S-SYST gelesen
wird.
Beiden Befehlszählern /' bzw. PPF sind außerdem
zwei Speicheradrcssenvergicicher SVi bzw. SV2
zugeordnet. Diese vergleichen bei allen Sehreiboperalioncn
im Speichersystem S-SYST die im jeweils angeschlossenen Befehlszähler P bzw. PPF stehende
Adresse für einen Maschinenbefehl mit einer Speicheradresse, die in einem 3 Byte breiten Speicheradressen
Register MA enthalten ist. Dieses Register ist ebenso wie ein Speicherdaten-Register MD mit einer Länge
von 8 Byte im Exekutivprozessor fPangcordnel.
In Fig. 2 ist schematisch angedeutet, daß das
Speicheradressen-Register MA aus dem Vorauslade-Befehlszähler PPF, aber auch intern aus dem Exekutivprozessor
EP über Speicheradreßleitungen SAL geladen werden kann. Sein Ausgang ist mit dem
Speichersystem S-SYSTverbunden. Bei einer Leseoperation
wird der durch dieses Register definierte Speicherinhalt ausgelesen und in das Speicherdaten-Register
MD, aber auch über eine Speicherdatenleitung SDL 1 in den integrierten Atifbereitungsprozessor IIP
übertragen. Für Speicherzugriffe des Exekutivprozessors EP werden einzuschreibende Speicherdaten über
weite Speicherdatenleituiigen SDL 2 in das Speicherdaten-Register
MD übertragen bzw. gelesene Speicherdaten auf dritten Speicherdatenleitungen SDL 3 in den
Exekutivprozessor EP übernommen. Wird nun durch den Exekutivprozessor EP ein Schreibzugriff zum
Speichersystem S-SYST durchgeführt, so ist jedesmal ein Speicherkonflikt möglich. Ein solcher Speicherkonflikt,
bei dem in einen bereits im voraus ausgelesenen Maschinenbefehl nochmals geschrieben wird, wird
durch die beiden Speicheradressenvergleicher SV1
bzw. SV2 festgestellt und durch ein Konfliktsignal MC angezeigt. Von der internen Steuerung des integrierten
Aufbereitungsprozessors IIP wird auch bei erfüllten Sprungbedingungen der Vorlaufzähler VLZ auf Null
gestellt und so am Sprungzie! der Maschinenbefehl mit der in das Speicheradressen-Register MA transferierten
Adresse gelesen. Mit dem Nullsetzen des Vorlaufzählers VLZgelten alle im Vorgriff übertragenen Maschinenbefehle
als nicht gültig.
In Fig.3 ist neben weiteren Einrichtungen des integrierten Aufbereitungsprozessors IIP vor allem ein
20 Byte fassender Befehlspuffer IB mit fünf, in vier Stufen angeordneten Registern zu je 4 Byte Breite
dargestellt In der ersten Stufe nehmen zwei Pufferregister IBD bzw. IBE ein Befehlsdoppelwort über die erste
Speicherdatenleitung 5DL 1 direkt aus dem Speichersystem
S-SYST auf. In der zweiten Stufe übernimmt ein weiteres Pufferregister IBCden Inhalt eines der beiden
Pufferregister der ersten Stufe und übergibt diesen an
ein Pufferregisler IBB der drillen Stufe und an ein
weiteres Pufferregister IBA in der vierten Stufe.
Wie bereits angedeutet, besitzen die Maschinenbefehle ein Formal von zwei, vier oder sechs Byte und können
daher an einer Wort- oder einer Halbwortgrenze ausgerichtet sein. Die Ausrichtung eines aufzubereitenden
Maschinenbefehls läßt sich aus dem Zustand der Bitstellen 29 und 30 im aktuellen Befehlszähler P, wie
später noch erläutert wird, erkennen. Diese Bitkombination wird ausgewertet, um einen Maschinenbefehl aus
dem Befehlspuffer IB auszulesen. So werden z. B. bei einem .in einer Wortgrenze WC ausgerichteten
Maschinenbefehl mit einem Format von 6 Byte aus dem Befehlspuffer der vollständige Inhalt des Pufferregisters
IBA der vierten Stufe und aus dem Pufferregister IBB der dritten Stufe die beiden ersten Bytes 0 und I
entnommen. Ist dagegen ein solcher Befehl an einer Halbwortgrenze HWG ausgerichtet, werden dem
Puffprrptnstrr IRA rlpr viprtpn .Sliifp lpttiulirh flip hpiiipn
Bytes 2 und 3 und dem Pufferregister IBB der dritten Stufe alle vier zwischengespeicherten Bytes 0 bis 3
entnommen.
Für diese Lesesteuerung sind dem Befehlspuffer IB drei Multiplexer zugeordnet. Über einen ersten
Multiplexer D-MUX für Distanzadressen mit einer Breite von 12 Bit werden Befehlsfelder für die
Adreßrechnung ausgegeben. FJn zweiter Multiplexer O-MUX dient zum Auslesen des Operationscodes eines
Maschinenbefehls und der Register-Längenverschlüsselung mit jeweils 1 Byte. Derartige Daten sind im
eigentlichen Sinne als Steuerdaten anzusehen; Leitungen, auf denen solche Daten transportiert werden, sind
deshalb zur Kennzeichnung mit unterbrochenen Linien dargestellt. Die über den zweiten Multiplexer O-MUX
ausgelesenen Steuerdaten werden u. a. unmittelbar dem in Fig. 3 nur schematisch angedeuteten Exekutivprozessor
EP zugeführt, um dort das für die Verarbeitung des ausgelesenen Maschinenbefehls benötigte Mikroprogramm
anzustoßen.
Ein dritter Multiplexer R-MUX für Registrieradressen
ist 4 Bit breit, dient zum Extrahieren von Registeradreßfeldern drs nächsten Maschinenbefehls
aus den Pufferregistern IBA bzw. IB der vierten bzw. dritten Stufe und ist ausgangsseitig mit dem Exekutivprozessor
EP zum Ansteuern eines Registerspeichers /?SPverbunden. Dort sind sämtliche internen Arbeitsregister
des Exekutivprozessors /-^zusammengefaßt.
Außerdem ist an diesen dritten Multiplexer R-MUX für Registeradressen eine zweite Vergleichseinrichtung
angeschlossen, die auch mit diesem Registerspeicher RSP verbunden ist. Sie besteht aus zwei Registeradressen-Vergleichern
RVX bzw. RV2, die bei allen Schreiboperationen im Registerspeicher die Schreibadressen
mit den für die Aufbereitung eines Maschinenbefehls benutzten Registeradressen vergleichen. Fällt
ein Vergleich positiv aus, so bedeutet dies, daß beim Ausführen eines η-ten Maschinenbefehls ein Registerinhalt
für einen nachfolgenden fn+l)-ten Maschinenbefehl geändert wird, d. h. ein Register-Konflikt auftritt.
Mit einem dann abgegebenen zweiten Konfliktsignal RC wird die Wiederholung der bis dahin im Aufbereitungsprozessor
UP abgelaufenen Vorbereitung für den (n+ l)-ten Maschinenbefehl eingeleitet
Im integrierten Aufbereitungsprozessor IIP ist
darüber hinaus ein Adreßrechnerwerk AAD mit einem 24 Bit breiten Binäraddierer vorgesehen. Dieser wird
einerseits von dem Multiplexer D-MUX für Distanzadressen und andererseits von einem Register RD für
Registeradressen gespeist. Letzteres ist seinerseits wiederum mit Garn Registerspeicher RSPdes Exekutivprozessors
EP verbunden und nimmt die aus dem Registerspeicher RSP gelesenenen Basis- und Index-
r> adressen oder bei reinen Registerbcfehlen auch
unmittelbar die Register-Operanden auf. Über den ersten Multiplexer D-MUX werden dem Binäraddierer
die Distanzadressen oder aber das Ergebnis einer ersten Adreßrechnung aus dem ersten von zwei an den
to Binäraddierer AAD angeschlossenen Adreßpuffer-Registern
ABA bzw. ADB angeliefert. Bei der Adreßrechnung
selbst werden 12 Bit breite Distanzadressen durch führende Nullen auf 24 Bit aufgefüllt, von der aus dem
Register RD für Registeradressen kommenden Infor-
r> mation werden die höherwertigen 8 Bit nicht in die
Rechnung einbezogen. Das Ergebnis ist dann eine 24 Pit breite effektive Adresse, die in einem der beiden als
Warteschlange wirkenden Adreßpuffer-Registcr ΛΒΑ
h7u/ A /?/?nipdprirplpfft wird
■ - - CJ c,
-Ί) Vorstehend wurde bereits mehrfach auf das verschiedene
Format von Maschinenbefehlen hingewiesen, jedoch noch nicht näher erläutert, daß fünf Gruppen
von Maschinenbefehlen vor allen hinsichtlich der Art unterscheidbar sind, wie und wo die Befehls-Operanden
r> abgespeichert sind. In der folgenden Tabelle 1 sind diese fünf möglichen Befehlstypen RR bis 55, bezogen auf das
jeweilige Speichermedium für die Operanden, ausgedrückt:
hi Tabelle I
Name Befehlstyp
Code
RR Register-Registerbefehle 00
)i RX Register-Speicherbefehle mit 01
Indexierungsmöglichkeit
RS Register-Speicherbefehle 10
5/ Speicher-Direktoperandenbefehle 10
55 Speicher-Speicherbefehle 11
Dabei bedeuten die Abkürzungen
R: die Registeradresse eines Operanden.
Χ: die Indexregisteradresse eines Operanden.
/: einen im Befehl enthaltenen Direktoperanden.
S: die Speicheradresse eines Operanden.
ΛΛ-Befehle haben die Länge von 2 Byte oder —
anders ausgedrückt — eines Halbwortes. RX-, RS- und 57-Befehle umfassen ein Wort, d. h. 4 Byte. 55-Befehle
schließlich bestehen aus 3 Halbworten oder 6 Byte. In
-,ο jedem Maschinenbefehl ist dieses Befehlsformat — in
der Tabelle 1 als Code bezeichnet — in zwei Bitstellen des Operationsfeldes mit 00, 01 bzw. 11 verschlüsselt
Aus dieser Bitkombination können die notwendigen Informationen für alle erforderlichen Wegeschaltungen
abgeleitet werden. Für einen bereitzustellenden Maschinenbefehl steht sie im aktuellen Befehlszähler Pan den
erwähnten Bitstellen P29, P 30.
Für das Bereitstellen der Daten eines Maschinenbefehls in den Adreßpuffer-Registem ABA bzw. /455läßt
sich damit nun folgendes feststellen:
Bei ÄÄ-Befehlen wird der erste Operand R 1 aus dem
ersten Adreßpuffer-Register ABA, der zweite Operand R 2 aus dem zweiten Adreßpuffer-Register ABB dem
Exekutivprozessor EP übergeben. Bei RX-, PS- und 5/-Befehlen wird die Adresse für den Speicher-Operanden
aus dem zweiten Adreßpuffer-Register ABB ausgelesen und bei SS-Befehlen steht die Adresse für
den ersten Speicher-Operanden im ersten Adreßpuffer-
Il
Register ABA und die für den zweiten Speicher-Operanden
im zweiten Adreßpuffer-Register ABB. Dabei gilt die Festlegung, daß alle acht höherwertigen
Bitstellen auf Null gesetzt sind, wenn die beiden Adreßpuffer-Register Adressen enthalten.
Einleitend wurde erläutert, daß der integrierte Aufbereitungsprozessor IIP den unmittelbar zugeordneten
ladbaren Mikroprogrammspeicher WCM des Exekutivprozessors EP mitbenutzt, vor allem auch um
Zugriffskonflikte zu vermeiden. Um jedoch das Format der Mikrobefehle des ladbaren Mikroprogrammspeichers
WCM nicht unnötig zu vergrößern, wird aber nicht die gesamte Steuerung des integrierten Aufbereitungsprozessors
///' im Detail übernommen. Für die Detailstcuerung des integrierten Aufbcrcitungsprozessors
ist ein Zustandssteuer-Speicher ZSROM vorgesehen, der als Festwertspeicher ausgebildet ist. Dafür wird
nur ein verhältnismäßig geringes Mikrobcfchlsformat von beispielsweise 2 Byte benötiet. so daß insgesamt für
die dort abzuspeichernden Mikroprogramme eine Speicherkapazität von I KBit genügt.
Die Anfangsadresse eines Mikroprogramms der Detailsteuerung wird abhängig vom Befehlsformat des
Maschinenbefehls und seiner relativen Lage in einem Speicher-Doppelwort, d. h. seiner Ausrichtung in einem
diesem Festwertspeicher zugeordneten Adressenzähler SRA gebildet. Dazu ist dieser Adressenzähler über eine
2 Bit breite Steuerleitung mit dem Befehlszähler P verbunden, aus dem er die beiden Bitstellen P29, 30
empfängt. Über eine weitere 2 bit breite Steuerleitung ist der Adressenzähler SRA an den Ausgang des
Multiplexers O-MUX für den Operationscode angeschlossen,
der ihm zwei Bitstellen IBQ, t als Information über den Operationscode zuführt. Die niederwertigsten
beiden Bitstellen des Adressenzählers SRA werden mit Nullen aufgefüllt Der Adressenzähler SRA ist über eine
1 Bit breite dritte Steuerleitung außerdem unmittelbar mit dem ladbaren Mikroprogrammspeicher WCM des
Exekutivprozessors EP verbunden. Wie angedeutet, kann damit in den Adressenzähler SRA ein Steuerkommando
»Lesen Registerspeicher« RRS übertragen werden, mit dem die Mikroprogrammadresse im
Zustandssteuer-Speicher ZS-ROM weitergeschaltet wird.
Mikroprogrammsteuerungen sind an sich bekannt, deshalb ist die eigentliche Detailsteuerung durch die 16
Bit breiten Mikrobefehle im Zustandssteuer-Speicher aus Gründen der Übersicht nicht in F i g. 2 und 3
aufgenommen. In F i g. 3 ist nur eine Besonderheit herausgehoben: Ein weiterer Festwertspeicher stellt
den Mikroprogrammspeicher WP-ROM eines im übrigen nicht detailliert dargestellten Wartungsprozessors
dar. Dort sind Wartungsfunktionen abgelegt, die vom Betriebssystem der datenverarbeitenden Anlage
ausgeführt werden. Während der Befehlsausführung — also im normalen Programmablauf — werden diese
nicht benötigt Dies wird ausgenutzt und es werden in diesem Speicher auch die jeweils ersten Mikrobefehle
von im Exekutivprozessor EP ablaufenden Mikroprogrammen für die Befehlsausführung abgespeichert
Damit wird erreicht daß der erste Mikrobefehl eines Maschinenbefehls, z.B. des (n+1)-ten Maschinenbefehls
bereits während der Ausführung des vorhergehenden n-ten Maschinenbefehls bereitgestellt und am Ende
der Ausführung dieses Maschinenbefehls dem Exekutivprozessor übergeben werden kann. Die Mikroprogramme
für die Befehlsverarbeitung im Exekutivprozessor EP können so, gesteuert durch den integrierten
Aufbereitungsprozessor IIP, nahtlos aneinandergefügt
werden.
Die anhand von Fig. 2 und 3 beschriebene Einrichtung
gestattet eine in drei Stufen überlappende Bearbeitung der Funktionen »Lesen eines Maschinenbefehls«,
»Adreßrechnung, Bereitstellung eines Maschinenbefehls« und »Ausführung eines Maschinenbefehls«.
Die ersten beiden Funktionen werden für aufeinanderfolgende Maschinenbefehle überlappend im integrierten
Aufbereitungsprozessor IIPw\d die dritte Funktion, im eingeschwungenen Zustand dazu nochmals überlappend,
im Exekulivprozessor £Vausgcführt.
Der Ablauf in den beiden ersten Stufen wird im folgenden anhand von F i g. 4 und 5 näher erläutert.
Beide Ablaufschemate hängen an sich zusammen, die Übergänge einzelner Ablaufzweige sind deshalb mit
identischen Buchstaben A, B bzw. C bezeichnet. Jeder Block gibt eine Elementaroperation EO eines Mikroprogramms
wieder, das entweder aus dein ladbaren
Mikroprogrammspcicher WCM, dem Zustandssteuer-Speicher ZS-ROM oder dem Mikroprogrammspeicher
WP-ROM des Wartungspro/.essors abläuft. 1Jm dies zu
verdeutlichen, sind die einzelnen Elementaroperationen EO, soweit notwendig, zusätzlich mit diesen entsprechenden
Bezeichnungen definiert.
Unstetige Modifikationen des aktuellen Befehlszählers P werden beispielsweise durch eine Programmunterbrechung
oder einen erfüllten Sprungbefehl hervorgerufen. Wie bereits erläutert, muß danach die
Bereitstellung des nachfolgenden Maschinenbefehls erneut anlaufen. Wie in Fig.4 dargestellt, wird dieser
Vorgang durch den Exekutivprozessor EP gesteuert. Wird mit der letzten Elementaroperation EO π bei der
Verarbeitung eines Maschinenbefehls I η die Sprungbedingung / erfüllt, so läuft mit der nachfolgenden
Elementaroperation EO 1 ein Mikroprogramm aus dem ladbaren Mikroprogrammspeicher WCMan. Sie umfaßt
eine Adreßübersetzung AFfür den Inhalt des aktuellen
Befehlszählers Pund das Überführen dieses Rcgisterinhalts in den Vorauslade-Befehlszählers PPF.
In der Elementaroperation EO 2 läuft die Funktion
»Lesen Befehls-Doppelwort« RDlaus dem Speichersystem
S-SYSTab, der Inhalt des Vorauslade-Befehlszählers
PPF wird um acht erhöht und so die nächste effektive Speicheradresse eingestellt.
In der dritten Elementaroperation EO3 wird das
gelesene Befehls-Doppelwort IDWm den Befehlspuffer /i?übertragen. Außerdem wird vom ladbaren Mikroprogrammspeicher
WCMein Steuerkommando PF»Lesen Speicher-System« an den integrierten Aufbereitungsprozessor HP gegeben, der damit das Lesen des
nächsten Befehls-Doppelwortes übernimmt.
Zu diesem Zeitpunkt ist der bereits in den Befehlspuffer /Seingelesene Maschinenbefehl l(n+\)
noch nicht in den Adreßpuffer-Registem ABA bzw. ABB bereitgestellt. Deshalb schließt sich im Exekutivprozessor
EP, d. h. auf der Ausführungsebene in der nachfolgenden Elementaroperation EO 4 eine gegebenenfalls
wiederholte Nulloperation NOOP an. Zugleich wird ein weiteres Steuerkommando RRS »Lesen
Registerspeicher« an den integrierten Aufbereitungsprozessor IIP übergeben, so daß dann auf der
Bereitstellungsebene zeitlich parallel eine Elementaroperation abläuft, die aus dem Zustandssteuer-Speicher
ZS-ROM gesteuert wird. Dabei wird schrittweise der erste gelesene Maschinenbefehl I(n+1) weiter aufbereitet,
bis er zur Verarbeitung im Exekutivprozessor EP bereitgestellt ist.
Im einzelnen können sich dabei im integrierten Aiifbereitungsprozessor IIP drei Ablaufzweige A, B
bzw. C ergeben, die in Fig.5 dargestellt sind. Diese
Ablauffolgen für die zweite Funktionsstufe, d. h. auf der Bereitstellungsebene sind abhängig vom Befehlstyp RR,
RX, RS, SI bzw. SS und von der Ausrichtung eines
Befehls im Speicher-Doppelwort. Bei einem an einer Doppelwortgrenze DG»'ausgerichteten Maschinenbefehl
weisen die beiden Bitstellen 29 und 30 im aktuellen Befehlszähler P in diesem Beispiel die Bitkombination ι
00 auf. Bei einer Ausrichtung an einer Wortgrenze WG heißt die Bitkombination 10 und bei einer Ausrichtung
an einer der beiden Halbwortgrenzen HWG \ und HWG 2 im Doppelwort heißen die Bitkombinationen 01
bzw. 11. Die Art der Bitkombination bestimmt einen der ι
drei Ablaufzweige A, ßoder C.
Im wichtigsten Fall, dem Ablaufzweig A, ist ein
aufzubereitender Maschinenbefehl an einer Doppelwortgrenze DWG bzw. an der ersten Halbwortgrenze
HWG1 ausgerichtet, dies ist im eingeschwungenen Zustand immer der Fall, während nach unstetigen
Modifikationen auch eine andere Ausrichtung möglich ist. Für jeden Maschinenbefehlstyp sind die während der
drei Elementaroperationen EOAX, EOSl und EO6X
dieses Ablaufzweiges A ablaufenden Vorgänge in den einzelnen entsprechend gekennzeichneten Blöcken in
F i g. 5 angegeben.
Betrachten wir zunächst /?Ä-Befehle. Bei diesem
B-ifehlstyp stehen die beiden Operanden in Registern
R 1 bzw. R2 des Registerspeichers RSPund sind durch
Registeradressen definiert. In der ersten Elementaroperation EO 41 dieses Ablaufzweiges wird das vom
ladbaren Mikroprogrammspeicher WCM abgegebene
Steuerkommando RRS »Lesen Registerspeicher« vom integrierten Aufbereitungsprozessor IIP übernommen
und der Inhalt des zweiten Registers R 2 aus dem Registerspeicher RSPm das Register RD für Registeroperanden
überführt. In der zweiten Elementaroperation EOSi wird dieser gelesene Registerinhalt in das
zweite Adreßpuffer-Register ABB eingetragen. Daneben wird, ausgelöst durch ein weiteres Steuerkommando
RRS, nun auch der andere Registeroperand aus dem Register R 1 gelesen und in der nächsten Elementaroperation
EO6X in das erste Adreßpuffer-Register ABA
übertragen. Beide Registeroperanden sind nun bereitgestellt, daraufhin wird im integrierten Aufbereitungsprozessor
//Pein Bereitstellungssignal SRR erzeugt. Damit wird das Ansteuern des Mikroprogrammspeichers
WP-ROM des Wartungsprozessors ausgelöst und aus ihm die erste Elementaroperation EOY auf der
Ausführungsebene für den bereitgestellten Maschinenbefehl l(n+\) ausgelesen. Die weitere Befehlsausführung
läuft dann, aus dem ladbaren Mikroprogramm-Speicher WCMgesteuert.im Exekutivprozessor £Vab.
Für die übrigen Befehlsgruppen ergibt sich in den drei Elementaroperationen EOAX, EOSX bzw. EO6X eine
jeweils analoge, jedoch typenspezifische Aufbereitung. In diesem Zusammenhang ist allerdings auf eine
Besonderheit hinzuweisen: Auch die übrigen Maschinenbefehle können Operanden enthalten, die in einem
öperandenregister Ri bzw. Rl oder auch in einem
Indexregister XX bzw. X2 des Registerspeichers RSP
niedergelegt sind. Außer bei Ä/?-Befehlen wird jedoch
durch den Aufbereitungsprozessor IIP ein solcher Operand nicht unmittelbar, sondern nur seine Registeradresse
bereitgestellt und dieser Operand vom Exekutivprozessor EP während der Verarbeitungsphase
gelesen. Dies hat den wesentlichen Vorteil, daß der hier betrachtete Ablaufzweig A immer nur die drei
Elementaroperationen £041,51 und 61 benötigt,zumal
es leichter möglich ist, diesem Zugriff zum Registerspeicher RSP in einer der Elementaroperationen der
Ausführungsphase parallel zu einem anderen Schritt auszuführen. In Fig.5 sind daher vereinfachend auch
nur die umfangreicheren Adreßrechnungen für den anderen Operanden dargestellt.
So muß beispielsweise bei SS-Befehlen für beide Operanden eine effektive Speicheradresse ermittelt
werden. Dazu werden in den drei Elementaroperationen nacheinander aus dem Registerspeicher RSPdie Inhalte
zweier Basisregister B X bzw. B 2 ausgelesen und jeweils in das Register RD für Registeroperanden übertragen.
Im Adreßrechenwerk AAD wird zu der jeweiligen Basisadresse die zugehörige Distanzadresse DX bzw.
D 2 des Operanden addiert. Die Ergebnisse werden ir eines der beiden Adreßpuffer-Register ABA bzw. ABl
eingetragen. Am Ende der dritten Elementaroperatior ist dies für beide Speicheroperanden erfüllt und im
integrierten Aufbereitungsprozessor IIP wird ein
Bereitstellungssignal SSSfür diesen Befehlstyp erzeugt. Die Befehlsbereitstellung für RX-, KS-und SABefehle
dürfte damit wohl unmittelbar aus dem Ablaufschema erkennbar sein. Dies gilt auch für die beiden anderer
Ablaufzweige B und C, bei denen der Maschinenbefeh an einer Wortgrenze WG bzw. an der zweiter
Halbwortgrenze HWG 2 ausgerichtet ist. Eine weitere
detaillierte Besenreibung der Elemcntaroperationer EO 42 bis EO 72 bzw. der Elementaroperationen EO 43
bis EO83 erscheint daher zum vollständigen Verständnis
nicht mehr erforderlich.
Rückkehrend zu der Darstellung in Fig.4 ist nui
noch darauf hinzuweisen, daß der Vorspann mit der Elementaroperationen EOX bis EO3 — wie bereit!
angedeutet — nur nach unstetigen Modifikationen irr aktuellen Befehlszähler Perforderlich ist Im Normalfal
wird bei konstruktiver Zwischenspeicherung aufeinanderfolgender Maschinenbefehle im Befehlspuffer IL
ι diese Einleitungsphase übersprungen bzw. bereit! während der Verarbeitungsphase vorangehender Maschinenbefehle
durchgeführt.
In F i g. 4 ist dies mit einem Steuersignal /angedeutet das zusammen mit dem Bereitstellungssignal S ausgewertet
wird. Treten beide Signal auf, so schließt sich ar die letzte Elementaroperation EO η der Verarbeitungsphase des Maschinenbefehls In unmittelbar die
Verarbeitungsphase des darauffolgenden Maschinenbefehls I(n+1) mit der ersten Elementaroperation EOl'
an. Fehlt jedoch nach Ablauf der letzten Elementaroperation £Ondas Bereitstellungssignal S, dann werden so
lange Nulloperationen NOOP eingeblendet, bis dieses Signal auftritt.
Aus den vorstehenden Erläuterungen tat damit wohl erkennbar geworden, daß die im ladbaren Mikroprogrammspeicher
WCMgespeicherten Mikroprogramme
auch die Vorgänge im integrierten Aufbereitungsprozessur IIP über bestimmte Signale, insbesondere die
Steuerkommandos RRS und PF auslösen. Dabei bleibt
ι es jedoch dem integrierten Aufbereitungsprozessor III-überlassen,
ob er die angebotenen Signale annimmt oder nicht. Auf diese Weise gelingt es einerseits Zugriffe
des integrierten Aufbereitungsprozessors IIP und des Exekutivprozessors EP zu gemeinsamen Speicherein-
i richtungen, wie zum Speichersystem S-SVS7"oder zum
Registerspeicher RSP zu koordinieren und damit die Steuerungen in den Schnittstellen zu vereinfachen.
Andererseits laufen trotzdem die Vorgänge in den
Andererseits laufen trotzdem die Vorgänge in den
15 16
beiden Prozessoren IIP und EP voneinander getrennt gewinn gegenüber konventionellen, mit einem Verarund
unabhängig ab, können also echt parallel ausgeführt beitungsprozessor ausgestatteten Zentraleinheiten,
werden. Wie der geringe Umfang der Detailsteuerung ohne daß — wie bei nach dem Prinzip des »Pipeljnig«
für den integrierten Aufbereitungsprozessor IIP und aufgebauten Maschinen — nach jeder Verarbeitungsdessen
Schaltungsaufbau erkennen läßt, ist eine solche -> station in Puffereinrichtungen Waneschlangen gebildet
tatsächliche Parallelarbeit bereits mit geringem Auf- werden müssen,
wand möglich. Sie bringt einen erheblichen Leistungs-
wand möglich. Sie bringt einen erheblichen Leistungs-
Hier/ti."» lilait Zeichnuimen
Claims (9)
- Patentansprüche:I. Datenverarbeitende Anlage mit mehreren spezialisierten, durch Mikroprogramme gesteuerten Prozessoren und mit einem gemeinsamen Speichersystem, in der die Verarbeitung von auch virtuell adressierten Maschinenbefehlen im Regelfall parallel erfolgt, indem ein Aufbereitungsprozessor das Befehlslesen und die Adreßrechnung für Befehls-Operanden durchführt, und ein angeschlossener Exekutivprozessor die eigentliche Befehlsausführungübernimmt, dadurch gekennzeichnet, daß ein dem Exekutivprozessor (EP) zugehöriger, ladbarer Mikroprogrammspeicher (WCM) auch den Ablauf der Bereitstellung der Maschinenbefehle im Aufbereitungsprozessor (IIP) derart steuert, daß gleichzeitige Zugriffe des Aufbereitungsprozessors und des Exekutivprozessors zu dessen Registerspeicher (RSPf bzw. zum Speichersystem (S-SYST) vermieden werden, daß dazu der Aufbereitungsprozessor einen eigenen kleinen Zustandssteuer-Speicher (ZM-ROM) besitzt, der die Mikroprogramme für die Detailsteuerung des Aufbereitungsprozessors enthält und dessen Leseoperationen durch vom ladbaren Mikroprogrammspeicher des Exekutivprozessors abgegebene Steuersignale ausgelöst werden, daß der Aufbereitungsprozessor darüber hinaus einen aus mehreren hintereinander angeordneten Pufferregistern (IBA bis IBE) aufgebauten Befehls- m puffer (IB) zitn Zwischenspeichern von im Vorgriff aus dem Speichersystem gelegnen Maschinenbefehlen besitzt, an den ein Adreßrechner (AAD, ABB, ABA) zum Bereitstellen von ^egisteroperanden bzw. effektiven Adressen von äpeicheroperanden angeschlossen ist und daß zum Vermeiden von Speicher- bzw. Registerkonflikten bei im Vorgriff gelesenen Maschinenbefehlen im Aufbereitungsprozessor zwei Vergleichseinrichtungen (SVi, SV2 bzw. RV\, RV2) angeordnet sind, die bei jedem durch den Exekutivprozessor ausgelösten Schreibzugriff zum Speichersystem bzw. zum Registerspeicher Speicher- bzw. Registeradressen mit den entsprechenden Adressen im Vorgriff gelesener Maschinenbefehle vergleichen und bei Übereinstimmung ein Konfliktsignal (MC bzw. RC) abgeben, wodurch in den Aufbereitungsprozessor im Vorgriff gelesene Maschinenbefehle ungültig und anschließend erneut gelesen werden.
- 2. Datenverarbeitende Anlage nach Anspruch I, dadurch gekennzeichnet, daß der Aufbereitungsprozessor (IIP) zum Vorauslesen von Maschinenbefehlen aus dem Speichersystem (S-SYST) auch ein im Exekutivprozessor (EP) angeordnetes Speicheradreß-Register (MA) benutzt und dazu neben einem aktuellen Befehlszähler (P) mit der effektiven Adresse eines zur Ausführung kommenden Maschinenbefehls (In) einen an diesen angeschlossenen Vorausiade-Befehlszähler (PPF) aufweist, der beim Vorauslesen von Maschinenbefehlen (l(n+m)) ge- to genüber dem Zählerstand des aktuellen Befehlszählers einen entsprechenden Vorlauf aufweist, dessen absolute Größe in einem dem Vorauslade-Befehlszähler zugeordneten Vorlaufzähler (VLZ) niedergelegt ist.
- 3. Datenverarbeitende Anlage nach Anspruch 2, dadurch gekennzeichnet, daß die im Aufbereitungsprozessor (IIP) vorgesehene Vergleichsrichtung (SV 1, SV2) zum Vermeiden von Speicherkonflikten zwei Register enthält, die an den aktuellen Befehlszähler (P) bzw, an den Vorauslade-Befehlszähler (PPF) angeschlossen sind und die dort gespeicherten effektiven Adressen von Maschinenbefehlen aufnehmen und die außerdem parallel mit dem Speicheradreß-Register (MA) verbunden sind, so daß bei einer Schreiboperation des Exekutivprozessors (EP) durch einen Adressenvergleich in der Vergleichseinrichtung feststellbar ist, ob die Schreiboperation im Vorgriff gelesene Maschinenbefehle erfaßt und in diesem Konfliktfall von der Vergleichseinrichtung ein Konfliktsignal (MC) für Schreiboperationen im Speichersystem abgegeben wird, mit dem der Vorlaufzähler (VLZ) auf Null gesetzt und damit ein erneutes Lesen der so für ungültig erklärten, im Befehlspuffer (IB) zwischengespeicherten Maschinenbefehle ausgelöst wird.
- 4. Datenverarbeitende Anlage nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Befehlspuffer (IB) in vier Stufen angeordnete Pufferregister aufweist, von denen in der ersten Stufe zwei Register (IBD bzw. IBE) über eine Speicherdatenleitung (SDL 1) unmittelbar mit dem Ausgang des Speichersystems (S-SYST) verbunden sind und ein gelesenes Speicherdoppdwort aufnehmen, daß die Ausgänge dieser beiden Pufferregister parallel mit den Eingängen eines dritten Pufferregisters (IBC) der zweiten Stufe verbunden sind, das ausgangsseitig über ein weiteres Pufferregister (IBB) der dritten Stufe mit dem fünften Pufferregister (IBA) der vierten Stufe verbunden ist.
- 5. Datenverarbeitende Anlage nach Anspruch 4, dadurch gekennzeichnet, daß Befehlsfeldern, die den Operationscode von an einer Halbwortgrenze (HWC) oder einer Wortgrenze (WG) ausgerichteten Maschinenbefehlen aufnehmen zugeordnete Ausgänge des fünften Pufferregisters (IBA) mit den Eingängen eines Multiplexers \O-MUX) für den Operationscode verbunden sind, dessen Ausgänge mit dem Exekutivprozessor (EP) für die Übergabe des Operationscodes eines bereitgestellten Maschinenbefehls verbunden sind, daß an Ausgänge des vierten und fünften Pufferregisters (IBA bzw. IBB), die Befehlsfeldern für Distanzadressen von Befehlsoperanden zugeordnet sind, ein Multiplexer (D-MUX) für Distanzadressen angeschlossen ist, dessen Ausgänge mit dem Adreßrechenwerk (AAD) verbunden sind, und daß an Ausgänge dieser beiden Pufferregister, die Befehlsfeldern für Adressen von Registeroperanden zugeordnet sind, ein Multiplexer (R-MUX) für Register-Operanden angeschlossen ist, der über Adreßleitungen mit dem im Exekutivprozessor enthaltenen Registerspeicher (RSP) verbunden ist.
- 6. Datenverarbeitende Anlage nach Anspruch 5, dadurch gekennzeichnet, daß zum Vermeiden von Registerkonflikten an den Multiplexer (R-MUX) für Register-Operanden die zweite Vergleichseinrichtung (RVi, RV2) angeschlossen ist, die zwei Register für die Adressen von Register-Operanden des gerade aufzubereitenden Maschinenbefehls enthält und außerdem an den Registerspeicher (RSP) im Exekutivprozessor (EP) angeschlossen ist, so daß bei Schreiboperationen des Exekutivprozessors in den Registerspeicher die aufgerufene Adresse für ein internes Arbeitsregister im Registerspeicher mit den Adressen für Register-Operandendes bereitzustellenden Maschinenbefehls vergleichbar ist und bei positivem Vergleich ein Konfliktsignal (RC) für Schreiboperationen im Registerspeicher abgegeben wird, durch das die bisherige Vorbereitung für den betroffenen Maschinenbefehl ungültig erklärt wird.
- 7. Datenverarbeitende Anlage nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß das an den Multiplexer (D-MUX) für Distanzadresselt angeschlossene Adreßrechenwerk (AAD) als Binäraddierer ausgebildet ist, dem parallel zu den Ausgängen dieses Multiplexers auch die Ausgänge eines Registers (RD) für Register-Operanden zugeführt sind, das andererseits an den Registerspeicher (RSP) des Exekutivprozessors (EP) angeschlossen ist und daß die Ausgänge des Binäraddierers mit zwei Adreßpuffer-Registern (ABA, ABB) für Register-Operanden bzw. effektive Adressen von Operanden eines bereitgestellten Maschinenbefehls verbunden sind und die Ausgänge dieser Register an den Exekutivprozessor angeschlossen sind, wobei die Ausgänge des ersten der beiden Registu-r (ABA) über den Multiplexer (D-MUX) für Distanzadressen auf die Eingänge des Binäraddierers rückgekoppelt sind.
- 8. Datenverarbeitende Anlage nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, daß dem für die Detailsteuerung des Aufbereitungsprozessors (IIP) vorgesehenen Zustandssteuer-Speicher (ZS- ROMX der als Festwertspeicher ausgebildet ist, als Adreßregister ein Adressenzähler (SRA) zugeordnet ist, der über eine Steuerleitung (IBO, 1), mit dem Multiplexer (O-MUX) für den Operationscode zum Zuführen eines Codes über den Typ des bereitzustellenden Maschinenbefehls und über eine weitere Steuerleitung (7*29, 30) mit dem aktuellen Befehlszähler (P) verbunden ist, über die eine die Ausrichtung des bereitzustellenden Maschinenbefehls in einem Speicherdoppelwort an einer Doppelwurt-, Wort-, einer ersten oder zweiten Halbwortgrenze (DWG, WG, HWG 1 bzw. HWG 2) kennzeichnende Bitkombination übertragen wird und daß der Adreßzähler darüber hinaus an eine dritte Steuerleitung angeschlossen ist, über die dem Zustandssteuer-Speicher aus dem ladbaren Mikroprogrammspeicher (WCM) des Exekutivprozessors (EP) ein Steuerkommando »Lesen Registerspeicher« (RRS) zufüfirbar ist, daß das Auslesen des nächsten Mikrobefehls auslöst.
- 9. Datenverarbeitende Anlage nach Anspruch 8, dadurch gekennzeichnet, daß an den Zustandssteuer-Speicher (ZS-ROM) ein Mikroprogramm-Speicher eines weiteren Prozessors der datenverarbeitenden Anlage, des Wartungsprozessors angeschlossen ist, aus dem nach der letzten Elementaroperation eines Mikroprogramms, mit der die Bereitstellung eines Maschinenbefehls abgeschlossen wird, der erste Mikrobefehl der Ausführungsphase des bereitgestellten Maschinenbefehls ausgelesen wird.
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE2704560A DE2704560C2 (de) | 1977-02-03 | 1977-02-03 | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen |
| CH1514177A CH632605A5 (en) | 1977-02-03 | 1977-12-09 | Data-processing system with normal parallel provision and execution of machine instructions |
| FR7802174A FR2379858B1 (fr) | 1977-02-03 | 1978-01-26 | Installation de traitement des donnees comportant une preparation et une execution en parallele d'instructions machine |
| IT19652/78A IT1092143B (it) | 1977-02-03 | 1978-01-26 | Impianto elbaroatore di dati con approntamento ed esecuzione paralleli di istruzioni di macchina |
| AT0071078A AT373701B (de) | 1977-02-03 | 1978-02-02 | Datenverarbeitende anlage mit ueberlappter bereit- stellung und ausfuehrung von maschinenbefehlen |
| NL7801238A NL7801238A (nl) | 1977-02-03 | 1978-02-02 | Informatie verwerkend stelsel met parallel ter beschikking stellen en uitvoeren van machineinstructies. |
| GB4181/78A GB1582815A (en) | 1977-02-03 | 1978-02-02 | Data processing system |
| BE184896A BE863644A (fr) | 1977-02-03 | 1978-02-03 | Installation de traitement des donnees comportant une preparation et une execution en parallele d'instructions machine |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE2704560A DE2704560C2 (de) | 1977-02-03 | 1977-02-03 | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE2704560B1 DE2704560B1 (de) | 1978-05-24 |
| DE2704560C2 true DE2704560C2 (de) | 1979-01-18 |
Family
ID=6000299
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE2704560A Expired DE2704560C2 (de) | 1977-02-03 | 1977-02-03 | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen |
Country Status (8)
| Country | Link |
|---|---|
| AT (1) | AT373701B (de) |
| BE (1) | BE863644A (de) |
| CH (1) | CH632605A5 (de) |
| DE (1) | DE2704560C2 (de) |
| FR (1) | FR2379858B1 (de) |
| GB (1) | GB1582815A (de) |
| IT (1) | IT1092143B (de) |
| NL (1) | NL7801238A (de) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4316244A (en) * | 1978-11-08 | 1982-02-16 | Data General Corporation | Memory apparatus for digital computer system |
| JPS5858653A (ja) * | 1981-10-02 | 1983-04-07 | Hitachi Ltd | デ−タ処理装置 |
| JPH06100968B2 (ja) * | 1986-03-25 | 1994-12-12 | 日本電気株式会社 | 情報処理装置 |
| DE3626500A1 (de) * | 1986-08-05 | 1988-02-18 | Siemens Ag | Verfahren und anordnung zur steuerung des vorauslesens von neuen befehlen einer befehlsfolge in den befehlspuffer einer datenverarbeitungsanlage |
| US4935849A (en) * | 1988-05-16 | 1990-06-19 | Stardent Computer, Inc. | Chaining and hazard apparatus and method |
| US4969117A (en) * | 1988-05-16 | 1990-11-06 | Ardent Computer Corporation | Chaining and hazard apparatus and method |
| US5748937A (en) * | 1993-08-26 | 1998-05-05 | Intel Corporation | Computer system that maintains processor ordering consistency by snooping an external bus for conflicts during out of order execution of memory access instructions |
| IE80854B1 (en) * | 1993-08-26 | 1999-04-07 | Intel Corp | Processor ordering consistency for a processor performing out-of-order instruction execution |
-
1977
- 1977-02-03 DE DE2704560A patent/DE2704560C2/de not_active Expired
- 1977-12-09 CH CH1514177A patent/CH632605A5/de not_active IP Right Cessation
-
1978
- 1978-01-26 FR FR7802174A patent/FR2379858B1/fr not_active Expired
- 1978-01-26 IT IT19652/78A patent/IT1092143B/it active
- 1978-02-02 AT AT0071078A patent/AT373701B/de not_active IP Right Cessation
- 1978-02-02 GB GB4181/78A patent/GB1582815A/en not_active Expired
- 1978-02-02 NL NL7801238A patent/NL7801238A/xx not_active Application Discontinuation
- 1978-02-03 BE BE184896A patent/BE863644A/xx not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| ATA71078A (de) | 1983-06-15 |
| BE863644A (fr) | 1978-08-03 |
| FR2379858A1 (fr) | 1978-09-01 |
| FR2379858B1 (fr) | 1985-10-25 |
| IT7819652A0 (it) | 1978-01-26 |
| NL7801238A (nl) | 1978-08-07 |
| GB1582815A (en) | 1981-01-14 |
| CH632605A5 (en) | 1982-10-15 |
| DE2704560B1 (de) | 1978-05-24 |
| IT1092143B (it) | 1985-07-06 |
| AT373701B (de) | 1984-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE1524101C3 (de) | Mehrfach rechnende Datenverarbeitungsanlage | |
| DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
| DE3424962C2 (de) | ||
| DE3852928T2 (de) | Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen. | |
| DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
| DE1285220C2 (de) | Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten | |
| DE2829668A1 (de) | Kanaldatenpufferspeicher | |
| EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
| DE1524166B1 (de) | Schaltungsanordnung zur Herstellung von Verbindungen zwischen mehreren unabhaengigen Teilen und einem gemeinsamen Teil einer Datenverarbeitungsanlage | |
| DE1299145B (de) | Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen | |
| DE2411963B2 (de) | Datenverarbeitungsanlage | |
| DE2145120B2 (de) | Digitales datenverarbeitungsgeraet | |
| DE1549474C3 (de) | Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
| DE1499206C3 (de) | Rechenanlage | |
| DE2459956A1 (de) | Prozessor und diesen verwendendes peripheres verarbeitungssystem | |
| DE2339636A1 (de) | Programmsteuereinrichtung | |
| DE4216905C2 (de) | Superskalarprozessor | |
| DE3802025C1 (de) | ||
| DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
| DE2218630C3 (de) | Schaltungsanordnung zur Steuerung von Unterbrechungssignalen in Datenverarbeitungsanlagen | |
| DE2704560C2 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen | |
| DE2747304C3 (de) | Einrichtung zur Mikrobefehlssteuerung | |
| DE2609698C2 (de) | Elektronischer Rechner | |
| DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
| DE1957600C3 (de) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8339 | Ceased/non-payment of the annual fee |