[go: up one dir, main page]

DE2704560C2 - Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen - Google Patents

Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen

Info

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
Application number
DE2704560A
Other languages
English (en)
Other versions
DE2704560B1 (de
Inventor
Manfred Dipl.-Ing. 8011 Putzbrunn Koehler
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE2704560A priority Critical patent/DE2704560C2/de
Priority to CH1514177A priority patent/CH632605A5/de
Priority to IT19652/78A priority patent/IT1092143B/it
Priority to FR7802174A priority patent/FR2379858B1/fr
Priority to AT0071078A priority patent/AT373701B/de
Priority to NL7801238A priority patent/NL7801238A/xx
Priority to GB4181/78A priority patent/GB1582815A/en
Priority to BE184896A priority patent/BE863644A/xx
Publication of DE2704560B1 publication Critical patent/DE2704560B1/de
Application granted granted Critical
Publication of DE2704560C2 publication Critical patent/DE2704560C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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);
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
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-
Hier/ti."» lilait Zeichnuimen

Claims (9)

  1. 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. 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. 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. 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. 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. 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-Operanden
    des 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. 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. 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. 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.
DE2704560A 1977-02-03 1977-02-03 Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen Expired DE2704560C2 (de)

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)

* Cited by examiner, † Cited by third party
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

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