DE2015971A1 - Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden - Google Patents

Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden

Info

Publication number
DE2015971A1
DE2015971A1 DE19702015971 DE2015971A DE2015971A1 DE 2015971 A1 DE2015971 A1 DE 2015971A1 DE 19702015971 DE19702015971 DE 19702015971 DE 2015971 A DE2015971 A DE 2015971A DE 2015971 A1 DE2015971 A1 DE 2015971A1
Authority
DE
Germany
Prior art keywords
priority
group
line
request
operands
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19702015971
Other languages
English (en)
Other versions
DE2015971B2 (de
DE2015971C3 (de
Inventor
Albert Woodland Hills; Flynn Michael John Evanston 111.; Podvin (V.St.A.)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2015971A1 publication Critical patent/DE2015971A1/de
Publication of DE2015971B2 publication Critical patent/DE2015971B2/de
Application granted granted Critical
Publication of DE2015971C3 publication Critical patent/DE2015971C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Description

International Business Machines Corporation, Armonk, N.Y« 10 504, Vereinigte Staaten von Amerika
Datenverarbeitungssystem zur Verarbeitung eines. Stromes
mehrfacher Operanden
Die Erfindung betrifft Datenverarbeitungssysteme zur Verarbeitung eines Stromes mehrfacher Operanden. Insbesondere betrifft die Erfindung di§ Kombination von digitalen Einrichtungen, welche, zur Vergrößerung der Durchflußleistung von parallel verarbeitenden Datenverarbeitungssystemen verwendbar sind.
Die Kompliziertheiten des modernen Lebens brachten
^K'V'Z-, J.w."i&■-. · ORlGiNALSNSPECTEO
■ - 1 -
die Notwendigkeit mit sich, ungeheuere Mengen von Daten elektronisch zu verarbeiten. Diese Notwendigkeit löste die Entwicklung von großen, ultraschnellen, elektronischen Datenverarbeitungssystemen aus, welche die ungeheueren Mengen von Daten dadurch verarbeiten, daß innerhalb des betreffenden Datenverarbeitungssystems Instruktionsfolgen verarbeitet werden. Um dem stets anwachsenden Bedarf an Datenverarbeitung gerecht zu werden, ist man in der Verarbeitung von Instruktionen von der Verarbeitungsgeschwindigkeit abhängig. Zwecks Erhöhung der Verarbeitungsgeschwindigkeit wurden in neuerer Zeit Arbeiten auf dem Gebiet der parallelen Datenverarbeitung durchgeführt. Solche Arbeiten beziehen sich auf Systeme, in welchen eine Vielzahl von Datenverarbeitungsanlagen eine einfache Ausführungseinheit, welche mehrere Ausführungsgeräte beinhaltet, zeitmultiplex betreibt.
Jedoch haben solche bekannte Systeme andererseits oft den Nachteil, daß sie störanfällig sind, so daß die in der Ausführungseinheit enthaltenen Geräte nicht wirkungsvoll ausgenutzt werden können. Bei solchen bekannten Systemen wird häufig auch eine Polgeabrufetechnik zur Zusendung von Anforderungssignalen zu der Ausführungseinheit verwendet, was zu einer Verlangsamung des Arbeitsablaufes führt, wenn während einer Abrufefolge mehrere Prozessoren ihre
009842/1670 original inspected
Anforderungen nicht bereit haben»
Durch die Erfindung soll die Aufgabe gelöst werden, bei einem Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden bei gemeinsamer Benutzung einer einzigen Ausführungseinheit durch eine Vielzahl digitaler Prozessoren einen besseren Wirkungsgrad zu erzielen und insbesondere in einem Datenverarbeitungssystem zur Verarbeitung eines Stromes mit einer Vielzahl von Instruktionen bzw. eines Stromes mit einer Vielzahl von Daten zu erreichen, daß Gruppen virtueller Prozessoren eine einzige Ausführungseinheit zeitmultiplex betreiben. Außerdem soll gemäß der Erfindung bei einem solchen Datenverarbeitungssystem eine Steuerung der Priorität der jeweils virtuelle Prozessoren enthaltenden Gruppen zu erreichen, welche eine gemeinsame Ausführungseinheit zeitmultiplex betreiben.
Diese Aufgabe wird bei einem Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden gemäß der Erfindung durch eine Ausführungseinheit, ferner durch eine Vielzahl von Gruppen mit jeweils bis zu "n" virtuellen Prozessoren und durch eine Prioritätssteuerschaltung
0098A2/1670
gelöst, auf Grund welch letzterer jeder der virtuellen Prozessoren in der Lage ist, die Ausführungsexnheit zeitmultiplex zu betreiben.
Gemäß der Erfindung sind also mehrere Gruppen digitaler Maschinen vorgesehen, welche eine, mehrere Ausführungsgeräte beinhaltende Ausführungsexnheit zeitmultiplex betreiben. Digitale Maschinen, welche auch als virtuelle Prozessoren bezeichnet werden, können als Basisdigitalrechner ohne Ausführungseinheit, sekundäres Steuer- und Speicherwerk definiert werden. Die Gruppen virtueller Prozessoren betreiben gemäß der Erfindung eine gemeinsame Ausführungsexnheit zeitmultiplex. Mit jeder Gruppe verbundene Wahleinrichtungen prüfen der Reihe nach jeden virtuellen Prozessor jeweils in seinem gegebenen Zeitabschnitt. Wenn jeweils ein virtueller Prozessor während seines jeweiligen Zeitabschnittes eine Bedienung anfordert, so wird letztere zu einem an die Ausführungsexnheit abzugebenden Kandidaten. Da viele Gruppen vorhanden sind, kann jeweils in einem gegebenen Zeitabschnitt auch eine Vielzahl von Bedienungsanforderungen vorliegen. Eine Prioritätssteuerschaltung stellt die Priorität unter den Gruppen so fest, daß die Gruppe mit der höchsten Priorität, deren gerade geprüfter virtueller Prozessor eine Bedienung anfordert, diese Bedienungsanforderung und die zugehörigen Operanden an die Ausführungseinheit leitet. Einrichtungen aur Rückleitung der
009842/1670
Ergebnisse der angeforderten Bedienung an den anfordernden virtuellen Prozessor sind ebenfalls vorgesehen.
Durch die Erfindung ergibt sich insbesondere der Vorteil einer wirksameren Ausnutzung der zeitmultiplex betriebenen Ausführungseinheit. Infolge der erfindungsgemäßen Kombination der Gruppen virtueller Prozessoren unter der Prioritätssteuerung hat jeder der insgesamt vorhandenen virtuellen Prozessoren des Systems eine größere Möglichkeit, von der Ausführungseinheit schnell bedient zu werden. .
Eine Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems zur Verarbeitung eines Stromes mehrfacher Operanden wird im folgenden mit Bezug auf die Zeichnungen als Beispiel beschrieben. Es stellen dar:
Fig. 1 ein Blockschaltbild einer Aus
führungsform des erfindungsgemäßen Datenverarbeitungssystems mit mehreren Gruppen virtueller Prozessoren, einer zeitmultiplex . betriebenen Ausführungseinheit und einer Prioritätssteuerschaltung,
09842/167
Pig. 2 ein Schaltbild der bei dem vor
liegenden Ausführungsbeispiel verwendeten Prioritätssteuerschaltung,
Fig. 2A ein Diagramm, welches schematisch
die Beziehung zwischen den Phasen der Ringzähler der Gruppen O bis 3 und den Phasen des in der Prioritätssteuerschaltung getrennt angeordneten Prioritätszählers wiedergibt,
Fig. 2B eine Tabelle, welche schematisch
den Umlauf der Priorität unter den Gruppen der Prozessoren im Normalbetrieb zeigt,
Fig. 2C eine Tabelle, welche die Beziehungen
zwischen den logischen Zuständen der Sperr- und Erregungsleitungen zeigt, die in der erfindungsgemäßen Prioritätssteuerschaltung verwendet werden,
009842/1670
■ ■'■■ ν : ■■ /..■
Fig. 3 ein Blockschaltbild einer typischen
Gruppe virtueller Prozessoren,
Fig. 4 ein Blockschaltbild einer gemäß der
Erfindung möglichen Anordnung zur übertragung von Operanden zu der zeitmultiplex betriebenen Aüsführungseinheit,
Fig. 5 in Form eines Blockschaltbildes
einen Teil, eines virtuellen Prozessors und die Art, in der Operanden auf einen Operandenübertragungsweg gegeben werden können,
Fig. 6 ein Blockschaltbild einer Aus
führungseinheit mit mehreren Ausführungsgeräten und einem Kanal, dessen Torschaltung für lange Übertragungsabschnitte geöffnet ist (pipelined execution unit), und in welchem außerdem eine Übertragungs-
009842/1670
einrichtung für verschiedene Steuersignale dargestellt ist, und
Fig. 7 eine mögliche Art einer Rückleitung
von Ergebnissen an den jeweils eine Bedienung anfordernden Prozessor.
Im folgenden wird zunächst der Aufbau des Ausführungsbeispieies des erfindungsgemäßen Datenverarbeitungssystems beschrieben. In Fig. 1 sind vier Gruppen 3» 5, 7 und 9 virtueller Prozessoren dargestellt. Jede dieser vier Gruppen umfaßt acht virtuelle Prozessoren. Die Anzahl der dargestellten Gruppen und der virtuellen Prozessoren dient selbstverständlich nur als Beispiel und kann nach Bedarf verändert werden, ohne den Rahmen der Erfindung zu verlassen. Jede der erwähnten Gruppen 3, 5» 7 und 9 ist mit einer Nummer O bis 3 bezeichnet und die Prozessoren einer jeden Gruppe tragen dementsprechend die Bezeichnungen PO, Pl, P2, P3...P31. Da beispielsweise vier Gruppen vorgesehen sind, liegen zum Zwecke einer einfacheren Beschreibung bei den vier vorhandenen Gruppen die Bezeichnungen der virtuellen Prozessoren einer gegebenen Gruppe um jeweils vier Ziffern auseinander. So sind also beispielsweise die
009842/1670
Prozessoren der Gruppe 0 mit PO, P4, P8 .... P28 bezeichnet.
Für das vorliegende Ausführungsbeispiel wird angenommen, daß die Latenz in der Ausführungseinheit 64ns beträgt, d.h. die Ausführungseinheit benötigt diese Zeit zur Beendigung einer gegebenen Operation von der Abgabe von Operanden bis zur Erzeugung des Ergebnisses. Alle Ausführungseinheiten sind für maximale Bandbreite stark abgestuft bzw. mit einem Kanal verbunden, dessen Torschaltung für lange Übertragungsabschnitte geöffnet ist (pipelined).
Jeder virtuelle Prozessor kann als Grundregister einer zentralen Verarbeitungseinheit ohne Ausführungsgeräte, sekundäres Steuer- und Speicherwerk angesehen werden. Jeder Prozessor ist für den Abruf seiner eigenen Operanden und für die Vorbereitung seiner eigenen Befehle verantwortlich. Er führt die Befehle mit Ausnahme der Befehle Laden/Speichern/Verzweigen nicht selbst aus, sondern fordert die Ausführung von der Ausführungseinheit an. Alle Prozessoren in einer gegebenen Gruppe laufen eng synchron und in einer Gruppe liegen nie zwei Prozessoren gleichzeitig in derselben Phase der Befehlsvorbereitung oder -ausführung. Jeder virtuelle Prozessor hat in diesem Ausführungsbeispiel von jedem Nachbarn einen,Phasenabstand von 8 ns. Somit verbleibt von der Ausführungs-
-9 -
009842/1670
einheit her gesehen für jeden virtuellen Prozessor ein Zeitabschnitt von 8 ns, in welchem er eine Bedienung auf einer Anforderungsleitung 13 anfordern kann. Operanden werden von den einzelnen virtuellen Prozessoren über eine Gruppenoperandenleitung 17 jeweils gleichzeitig mit der über die Leitung 13 gegebenen Anforderung an die Ausführungseinheit gesendet, über eine getrennte Empfangsleitung 15 wird jeder virtuelle Prozessor von der Ausführungseinheit darüber unterrichtet, ob seine Anforderung angenommen wurde oder nicht. Bei einer Annahme werden die Ergebnisse jeweils 64 ns später über eine Ergebnisleitung 19 zurückgegeben.
Fig. 3 zeigt eine typische Gruppe von Prozessoren, in diesem Falle die Gruppe O, Jede Gruppe beinhaltet einen Ringzähler, beispielsweise einen Zähler 201. In dem vorliegenden Ausführungsbeispiel umfaßt jede Gruppe acht Prozessoren und jeder Ringzähler 201 besitzt acht Stellungen bis 7. Der verwendete Ringzähler kann bekannter Art sein, beispielsweise also ein Ringzähler, wie er in "Arithmetic Operations in Digital Computers" von R.K. Richards, D. Van Nostrand Company, 1955, auf den Seiten 205 bis 208 beschrieben ist. über eine Leitung 100 werden dem Ringzähler 201 Maschinentaktimpulse zugesendet. Die Leitung führt die Maschinentaktimpulse außerdem den Ringzählern der anderen Gruppen dar, wie dies durch eine Verlängerung
- 10 -
009842/1670
Jl
der Leitung 100 in Fig. 2 sehematisch dargestellt ist. Für das vorliegende Ausführungsbeispiel wird angenommen, daß die Maschinentaktimpulse sämtliche Ringzähler 0 bis mit einer Wiederholungszeit von 8 ns jeweils zu zählen beginnen lassen, wobei jeder Ringzähler bei der Gruppenzählerphase 0 beginnt. Die Ausgangssignale des Ringzählers 201 laufen über Leitungen 203, 205, 207 ... 217. Der Ringzähler einer jeden Gruppe wird mit derselben Phase gestartet. Wenn also der Ringzähler 0 auf Phase 0 steht, stehen auch die Ringzähler der anderen Gruppen auf Phase 0 usw. Die Leitungen 203, 205, 207 ... 217 werden jeweils alle 64 ns erregt, wobei in einer Folge von 8 ns jeweils eine neue Leitung erregt wird. Anforderungsleitungen 219, 221 ... 233 führen von jedem Prozessor zu jeweils zugeordneten UND-Gliedern 235, 237 ... 249. Zur übertragung seiner Operanden an die Ausführungseinheit verfügt außerdem jeder virtuelle Porzessor über eine Leitung, wie beispielsweise die Leitungen 220, 222 ... 234. Jederm dieser Operandenleitungen ist einzeln über Torschaltungen 204, 206 ...218 mit einer Operandenleitung 251' für die Gruppe 0 verbunden. Jede der oben erwähnten Torschaltungen kann über entsprechende Leitungen 236, 238 ... 25O erregt werden, welche von den UND-Gliedern 235, 237 ... 249 über Verriegelungaschaltungen.280, 282 ... führen. Jede dieser Verriegelungsschaltungen wird über
- 11 -
0098A2/1670
Jl
zugehörige Verzögerungseinrichtungen 281, 283 .·· 295 nach einem geeigneten Zeitraum, in welchem sich der Steuerimpuls auf der Leitung 236 entwickeln kann, wieder zurückgestellt. Die Leitungen 236 ... 250 sind außerdem mit einem ODER-Glied 253 verbunden. Wenn ein virtueller Prozessor in einer gegebenen Gruppe während seiner Wahlphase eine Bedienungsanforderung ausstehen hat, wird das ODER-Glied 253 erregt und hierdurch auf der 0-Anforderungsleitung 102 (RO) ein Bedienungsanforderungssignal erzeugt. Die Gruppen 1 bis 3 sind ähnlich aufgebaut wie die Gruppe 0.
Der Ausgabebereich eines typischen virtuellen Prozessors, wie z. B. der Prozessor 0, kann so aufgebaut sein, wie es in Fig. 5 gezeigt ist. Register 303, 305, und 309j die von einem nicht dargestellten Instruktionsstrom und einem ebenfalls nicht dargestellten Datenstrom einstellbar sind, sind an die zum ersten mal in Fig. 3 erscheinende PO-Operandenleitung 220 angeschlossen. Außerdem ist ein Anforderungsflipflop 223 dargestellt, welches über die Leitung 225 von einer Folgeeinrichtung in der Maschine gesetzt werden kann, wenn eine neue Anforderung bereit ist. Das Anforderungsflipflop 223 kann über die Leitung 227 von einem Annahmeflipflop 229 zurückgestellt werden. Der Setzausgang des Anforderungsflipflope 223
- 12 -
009842/1670
to
ist die PO-AnfOrderungsleitung 219» die zur übertragung eines einschaltenden Eingangssignales zu dem UND-Glied führt. Ein weiteres einschaltendes Eingangssignals für das UND-Glied 235 kommt über die Leitung 203, welche das von der Gruppe O, Ringzähler 201, Phase 0 kommende Eingangssignal führt. Das Ausgangssignal des UND-Gliedes bzw. -Tores 235 setzt die Verriegelungsschaltung 280 und gibt auf die Leitung 236 ein Signal , welches als Eingangssignal für die Torschaltung 204 und die ODER-Schaltung dient, wie aus Fig. 3 zu ersehen ist. Die in Fig. 5 gezeigte Annahmeleitung ist von der Ausführungseinheit zu jedem virtuellen Prozessor geführt. Die Leitung 557 ist z.B. eine Annahmeleitung für den virtuellen Prozessor PO, welcher das Annahmeflipflop 229 so setzt, daß die Leitung die Ahforderungsverriegelungsschaltung so zurückstellen kann, daß die in der Reihenfolge jeweils nächste Anforderung gesetzt werden kann. Wenn eine ausstehende Anforderung nicht angenommen wird, so dient das Ausgangssignal des Anforderungsflipflops 223 dazu, die nächste Anforderung von der Folgeschaltung dadurch zu verhindern, daß die Sperrleitung über die Leitung 219 erregt wird.
Es kann vorkommen, daß bestimmte Instruktionen eine größere Latenzperiode als die oben geforderten 64 ns
- 13 -
benötigen. Eine Divisionsinstruktion, welche normalerweise mehr Zeit braucht als der Durchschnitt der Instruktionen, kann z.B. eine größere Latenzzeit als 64 ns benötigen. In diesem Falle wird über die in Fig. 5 gezeigte, von der Ausführungseinheit ausgehende Sperrleitung, welche zu jedem virtuellen Prozessor führt, die nächste Anforderung jeweils so lange gesperrt, bis daß die Ergebnisse der geforderten Division zurückgeleitet sind. Wie aus Fig. 5 zu ersehen ist, setzt eine Leitung 580 das Sperrflipflop 231 so, daß die Leitung 233 die zu der Folgeschaltung führende Sperrleitung erregt und hierdurch die Verarbeitung weiterer Anforderungen so lange verhindert, bis die Divisionsoperation für den betreffen virtuellen Prozessor beendet ist.
In Fig. 2 ist die in Fig. 1 mit der Bezugszahl 11 bezeichnete Prioritätssteuerschaltung detailierter dargestellt. So zeigt Fig. 2 einen bewerteten Prioritätszähler 101 sowie die zugehörigen Torschaltungen und Inverter mit den an diese angeschlossenen Signalleitungen. Die Maschinentaktimpulse mit einer angenommenen Frequenz von 8 ns werden in der dargestellten Weise über eine Leitung 100 zugeführt. Der bewertete Prioritätszähler 101 zählt bei je acht Impulsen einen Schritt weiter. Ohne den Rahmen der Erfindung zu verlassen, können selbstverständlich
- 14 -
009842/1670
is
auch andere Verhältnisse gewählt werden. Bei dem vorliegenden Ausführungsbeispiel zählt der bewertete Prioritätszähler alle 64 ns bzw. alle acht Maschinentaktimpulse je einmal und ist dieser Prioritätszähler mit den in jeder Gruppe vorhandenen Zählern synchronisiert. Somit wechselt der Prioritätszähler bei jeweils acht Zählungen eines jeden Gruppenzählers jeweils eine Phase. Jede Phase des Prioritätszählers definiert eine nominelle Gruppenpriorität, so daß die nominelle Gruppenpriorität jeweils einmal pro Prüfumlauf der Gruppen geändert wird, was nachfolgend noch genauer erklärt wird. Das Phasenverhältnis zwischen dem bewerteten Ringprioritätszähler iOi und den Gruppenzählern ist in Fig. 2A dargestellt. Der bewertete Prioritätszähler 101 arbeitet als Ringzähler so, daß am Ende der Phase 3 jeweils wieder die Phase 0 beginnt. Der bewertete Prioritätszähler 101 ist an sich bekannt und wird daher nicht genauer beschrieben. Ein solcher Prioritätszähler 101 kann dadurch verwirklicht werden, daß man die Impulse der Leitung 100 auf einen Zähler gibt, welcher für je acht Maschinentaktimpulse . jeweils einen Impuls abgibt, und daß man das Ausgangssignal dieses Zählers als Eingangssignal für einen vierstelligen Ringzähler verwendet. Die Ausgänge des vierstellingen Ringzähler sind dann die Phasen 0 bis 3auf
- 15 009842/1670
den Leitungen 101, 105, 107 und 109.
Wie sich nachfolgend noch zeigt, kann die Prioritäts= steuerschaltung so ausgebildet sein, daß sie in mehr als nur einer Betriebsart arbeiten kann. Beispielsweise kann ein Normalbetrieb und' ein Betrieb mit erweiterter Priorität vorgesehen sein.
In Fig. 2 sind außerdem ein Erregungsregister 110 und ein Sperregister 112 dargestellt. Das Erregungs= register 110 weist Positionen EO, E1,E2 und E3 auf, welche für einen bestimmten Betriebszustand entweder durch den Programmierer oder durch das übertragungsprogramm oder durch geeignete andere Einrichtungen, wie z.B. durch eine Steuerschaltung 32, jeweils auf Null gestellt werden. Eine Einschränkung der Einstellmöglichkeit des Erregungs= registers 110 besteht darin, daß jeweils entweder alle Ε-Positionen auf Null stehen oder daß eine E-Position auf Eins steht und alle übrigen Positionen auf Null stehen. Das Sperregister 112 weist Positionen 10, II, und 13 auf und kann als Funktion der Zustände der Positionen des Erregungsregisters, der laufenden Prioritäts= zählerphase und des Zustandes der Gruppenanforderungs=
- 16 -
009842/1670
leitungen RO, Rl, R2 und R3 jeweils auf Null oder auf
Eins gestellt werden. Eine typische Gruppenanforderungsleitung
wurde vorher im Zusammenhang-mit der Darstellung in Fig. 3 beschrieben. Das Sperregister 112 wird durch eine logische Sperrschaltung 160 gesetzt.
Ein Satz von EingangsSignalen für die Sperrschaltung wird durch die Werte der Positionen EO, El, E2 und E3 des Erregungsregisters 110 gebildet, wobei diese Signale über Leitungen 114ä, 116a, 118A und 120 Ä angelegt werden. Weitere Eingänge umfassen die Werte der Positionen RO, Rl, R2 und R3, welche über Verlängerungen der Änforderungs= leitungen 102, 104, 106 und 108 angelegt werden. Die An= forderungsleitungen wurden vorstehend anhand der typischen Anforderungsleitung RO mit Bezug auf Fig. 3 beschrieben. In fig. 3 sind alle vier Anforderungsleitungen und ihre Verlängerungen 102a, 104a,106ä und 108a dargestellt, welch letztere die Eingänge zu der logischen Sperrschaltung bilden. Verlängerungen der Prioritätszählerphasenleitungen 103a, 105a, 107a und 109a stellen ebenfalls Eingänge der Sperr= schaltung l60 dar. Die Sperrschaltung -160 gibt Ausgangs= signale ab, welche in die Positionen 10, II, 12, 13 des Sperregisters 112 über Leitungen 162, 164, 166 bzw. 168
- 17 - '■ ■ :" ■-'·'■ ■-■'■■■.
009842/
nt
Werte abgeben. Die Schaltung kann nach folgenden logischen Gleichungen aufgebaut sein:
10 (Leitung 162) = (Phase O)·(E1-R1+E2-R2+E3-R3)+(EO.E1-E2-E3)
11 (Leitung 164) = (Phase i)· (EO«R"O+E2«R2+E3-R3)+(EO-El-E2-E3)
12 (Leitung 166) - {Phase 2)·(ΕΟ·Εθ+Ε1·Ηΐ+Ε3·Κ3)+(ΕΟ·Ε1·Ε2·Ε3)
13 (leitung 158) = (Phase 3)·(EO-RO+E1»R1+E2-R2)+(EO-E1-E2-E3)
Die Aussagen der logischen Gleichungen (1) bis (4) reichen aus, um die Verwirklichung der Sperrschaltung l60 zu ermöglichen. Beispielsweise kann die Leitung 162, welche den Wert von IO des Sperregisters 112 setzt, durch den Ausgang eines ODER-Gliedes gebildet sein, welches einen Eingang mit der UND-Funktion Εθ·Ε1·Ε2·ΐ3 und einen weiteren
- 18 -
009842/167Q
Eingang mit der UND-Funktion (Phase 0) · (Ε1·ΐΐ1+Ε2·ΪΪ2+Ε3·ΪΪ3) aufweist. In der Praxis kommt die Phase Null von der Leitung 103a, während die Werte von El9 E2 und E3 von den Leitungen Il6a, Il8a bzw. 120a kommen und individuell mit der Umkehrung der Werte von Rl, R2 und R3 von den Leitungen 104a, 106a und 108a in einer UND-Funktion.verknüpft werden. Die Ergebnisse dieser einzelnen UND-Verknüpfungen werden in einer ODER-Verknüpfung zusammengefaßt und bilden den Ausdruck (E1*R"1+E2-R"2+E3*R*3), welcher mit dem auf der Leitung 103 gegebenen Signal in einer UND-Verknüpfung ver= bunden wird und den Ausdruck (Phase 0)·(E1*R1+E2*R2+E3*R3) bildet. Die Signale auf den Leitungen 164, 166 und 168 können in ähnlicher Weise gebildet werden. Aus den logischen Gleichungen (1) bis (4) geht hervor, daß infolge des in jeder der Gleichungen (1) bis (4)) enthaltenen Ausdruckes (Εθ·Εΐ·Ε2·ΐ3) die Positionen 10, II, 12 und13 jeweils dann gleichzeitig den Zustand Eins haben, wenn die Positionen EO, El, E2 und E3 gleichzeitig den Zustand Null haben.
Die Werte der Positionen des Erregungsregisters 110 bedingen eine bestimmte Schaltung der Prioritätssteuersc haltung über die Leitungen Uk9. 116, 118 und 120.
- 19 -
009842/1670
Der Wert der Positionen des Sperregisters 112 bedingt bestimmte andere Schaltverbindungen über die Leitungen 122, 124, 126 und 128. Eine genaue Erklärung dieser Leitungen im vorliegenden Ausführungsbeispiel der Erfindung wird später gegeben. Im Moment ist lediglich allgemein zu beachten, daß die I-Positionen im O-Zustand als Sperreingänge und im 1-Zustand als einschaltende Eingänge wirken.
Das Erregungsregister 110 hat, kurz gesagt, die Aufgabe, den Normalbetrieb zu ermöglichen, wenn alle E-Positionen auf 0 stehen, und zu versuchen, eine erweiterte Prioritätsoperation einzuleiten, wenn eine der Ε-Positionen auf 1 steht. Beim Normalbetrieb prüft die Prioritätseinrichtung alle Gruppen in jeder Gruppen= zählerphase je ein Mal. Die Gruppe mit der nominellen Priorität wird jeweils durch die laufende Prioritätszähler= phase definiert. Wenn während einer gegebenen Gruppenzählerphase die nominelle Prioritätsgruppe keine Bedienungsanforderung aufweist, werden die anderen Gruppen während der Zeitperiode zyklisch überprüft, die durch die gegebene Gruppenzählerphase gegeben ist, und die Priorität wird dann nach unten auf die erste, eine Bedienungsanforderung anweisende gruppe übertragen bzw. gedreht.
- 20 009842/1670
■,- .·; ■■■ :: u ■■ :
Es kann dadurch versucht werden, den Normalbetrieb zu übersteuern, daß einer gewünschten Gruppe ungeachtet der Prioritätszählerphase die Priorität zugeordnet wird. Zu diesem Zweck wird diejenige Position des Erregungsregisters· auf 1 gesetzt, die der gewünschten Gruppe entspricht. Wenn eine gegebene Ε-Position auf 1 gesetzt ist und gleichzeitig die dieser Ε-Position entsprechende Gruppe eine Bedienungsanforderung vorliegen hat, so hat diese Gruppe die absolute Priorität, welch letztere ihr bei jeder Gruppenzählerphase erhalten bleibt, in der sie eine Bedienungsanforderung aufweist. Dadurch wird der Normalbetrieb übersteuert und es ergibt sich ein Betrieb mit erweiterter Priorität. Wenn andererseits eine■■-'gegebene Ε-Position auf 1· gesetzt wird und die dieser E-Position entsprechende Gruppe während:einer gegebenen Grüppehzähler= phase keine Bedienungsanforderüng aufWeist, so läuft der Normalbetrieb wieder weiter und die nominelle Priorität : ist wieder durch die Prioritätszählerphase bestimmt'und wird für; den Normalbetrieb gemäß olaiger !Erklärung ■ zyklisch herumgereicht. Wenn also eine gegebene E-Position auf den Zustand d eingestellt ist, wird=der Betrieb automatisch von Nörraalbetrieb auf1Betrieb mit erweiterterPriorität umgestellt und umgekehrt, was von dem Vorhandensein oder dem Fehlen einer Bediehüngsänfdrderung;'
in der betreffenden Gruppe während einer jeden Gruppen= zählerphase ungeachtet der Prioritätszählerphase abhängt. Genauere Erklärungen hierzu finden sich in den folgenden Betriebsbeispielen.
Gemäß der Darstellung in Fig. 2 werden die Phasen 0,1, und 3 vom bewerteten Prioritätszähler 101 her über die Leitungen 103, 105, 10? und 109 übertragen.
O-Phasenleitung 103 ist als Eingang an ein UND-Glied angeschlossen, dessen anderer Eingang IO durch die Leitung 122 gegeben ist. Das Ausgangssignal des UND-Gliedes ist ein Eingangssignal für das ODER-Glied 132, dessen anderes Eingangssignal EO auf der Leitung 114 ist. Das Ausgangssignal des ODER-Gliedes 132 ist ein einschaltendes Eingangssignal für das UND-Glied 111. Die Phase 0 auf der Leitung 103 ist außerdem als einschaltendes Eingangssignal an die UND-Glieder 113, 115 und 117 gelegt.
Die Phase 1 auf Leitung 105 ist als Eingang an das UND-Glied 134 angelegt, dessen anderer Eingang Il durch die Leitung 124 gegeben ist. Das Ausgang3signal des UND-Gliedes 134 ist ein Eingangssignal zu dem ODER-Glied 136,
- 22 -
009842/1670
dessen anderes Eingangssignal El durch die Leitung 116 gegeben ist. Das Ausgangssignal des ODER-Gliedes 136 ist ein einschaltendes Eingangssignal für das UND-Glied 135 und die auf der Leitung 105 gegebene Phase 1 ist außerdem als einschaltendes Eingangssignal an die UND-Glieder 133, 137 und 139 angelegt.
Phase 2 ist über die Leitung 107 mit dem einen Eingang des UND-Gliedes 138 verbunden, dessen anderes Eingangsignal 12 auf der Leitung 128 gegeben ist. Das Ausgangssignal des UND-Gliedes 138 ist ein Eingangs= signal zu dem ODER-Glied l40, dessen anderes Eingangssignal E2 auf der Leitung 118 gegeben ist. Das Ausgangs= signal des ODER-Gliedes 140 ist ein einschaltendes Eingangssignal für das UND-Glied 159· Phase 2 auf der Leitung 107 ist außerdem an die UND-Glieder 155, 157 und 161 angelegt.
Phase 3 auf der Leitung 109 ist als Eingangssignal an das UND-Glied 144 angelegt, dessen anderes Eingangssignal 13 auf der Leitung 128 gegeben ist. Das Ausgangssignal des UND-Gliedes 144 ist ein Eingangssignal für das ODER-Glied 146, dessen anderer Eingang E3 auf der Leitung 120 gegeben ist. Das Ausgangssignal des ODER-Gliedes 144
- 23 0 09842/1670
vt
ist ein einschaltendes Eingangssignal für das UND-Glied 187· Phase 3 auf der Leitung 109 ist außerdem an die UND-Glieder bzw. -Torschaltungen 181, 183 und 185 angelegt. Die Ausgangssignale der UND-Glieder bzw. -Torschaltungen 111, 133, 155 und l8l dienen dazu, die Operanden von ihrer Gruppe O der Ausführungseinheit zuzuleiten.
Ausgangssignale entsprechender ähnlicher Gruppen von UND-Gliedern bzw. -Torschaltungen dienen zum Zuführen der Operanden von den zugehörigen Gruppen zu der Ausführungseinheit, wie dies in den Zeichnungen dargestellt ist.
Die O-Anforderungsleitung 102 ist als einschaltende Eingangsleitung mit den UND-Gliedern 111, 133, 155 und verbunden. In gleicher Weise sind die Anforderungs= leitungen 1, 2 und 3 in der dargestellten Weise mit den jeweils zugehörigen UND-Gliedern verbunden.
Die Umkehrung des auf der Leitung 102 gegebenen Zustandes, nämlich das ausgangssignal eines Inverters 119, wird als einschaltendes Eingangssignal auf die UND-Glieder 113, 115 und 117 gegeben. Die Umkehrung des Zustandes auf der
- 2k -
0.09842/1670
Leitung 104 , nämlich das Ausgangssignal eines Inverters 121,
wird als einschaltendes Eingangssignal auf die UND-Gleider bzw* -Torschaltungen 115 und 117 gegeben.
Die Umkehrung des Zuständes auf der Anforderungsleitung 106,
nämlich das Ausgangssignal eines Inverters 123, dient als einschaltendes Eingangssignal für das UND-Glied 117,
welches auch als UND-Torschaltung bezeichnet werden kann.
In ähnlicher Weise wird das gleiche Muster von Umkehrungen der Anforderungsleitung für die mit der Phase 1 des Zählers 101 verbundenen Torschaltungen benutzt, mit der Ausnahme, daß die Inverter hierbei eine Stufe abwärts bewegt werden. Die Umkehrung der ersten Anforderungsleitung 104 ist hierbei z.B. das Ausgangssignal eines Inverters l4l, welches zum Einschalt= signal für die UND-Glieder bzw. -Torschaltungen 137, und 133 wird. Die Umkehrung des Zuständes der zweiten Anforderungsleitung 106, nämlich das Ausgangssignal eines Inverters 153» ist das einschaltende Eingangssignal für die UND-Glieder bzw. -Torschaltungen 139 und 133. Die Umkehrung des Zuständes derr dritten Anforderungsleitung nämlich das Ausgangssignal eines Inverters 145, wird das einschaltende Eingangssignal, für da.s UND-Glied 133·-.-;
- 25 -
90^2/1670
In gleicher Weise ist für die mit der Phase 2 auf der Leitung 107 verbundene Schaltung die Umkehrung des Zustandes der zweiten Anforderungsleitung 106,. nämlich das Ausgangssignal eines Inverters I69, ein einschaltendes Eingangssignal für die UND-Glieder bzw. -Torschaltungen I61, 155 und 157. Die Umkehruixg des Zustandes der dritten Anforderungsleitung 103? nämlich das Ausgangssignal eines Inverters 171» is*: ein einschaltendes Eingangssignal für die UND-Glieder bzw. -Torschaltungen 155 und 157. Die Umkehrung der 0-Anforderungsleitung 102, nämlich das Ausgangssignal eines Inverters l67,.ist ein einschaltendes Eingangssignal für das UND-Glied 157.
Dieses typische Muster wiederholt sich auch für die mit der Phase 3 des Ringzählers 101 über die Leitung verbundenen Schaltungen. Die Umkehrung des Zustandes der dritten Anforderungsleitung 108, nämlich das Ausgangssignal eines Inverters 193, ist ein einschaltendes Eingangssignal für die UND-Glieder bzw. -Torschaltungen I8I, I83 und 185. Die Umkehrung des Zustandes auf der O-Anforderungsleitung 102, nämlich das Ausgangssignal eines Inverters I89, ist ein einschaltendes Eingangssignal für die UND-Glieder bzw -Torschaltungen I83 und I85. In gleicher Weise ist die Umkehrung des Zustandes auf der ersten Anforderungsleitung 104,
- 26 -
BAD ORIGINAL 009842/1670
nämlich das Ausgangssignal eines Inverters 191, ein einschaltendes Eingangssignal für das UND-Glied I85.
Die Leitung 100, über welche die Maschinentaktimpulse mit der angenommenen Wiederholungsrate von 8 ns geleitet werden, ist über eine geeignete Verzögerungsschaltung D als einschaltender Eingang mit jedem der Operanden leitenden UND-Glieder so verbunden, daß das übertragen der Operanden mit einer maximalen Wiederholungshäufigkeit von einmal je 8 ns synchronisiert wird. Die Verzögerungsschaltung D ist so gewählt, daß diejenige Verzögerung simuliert wird, welche die Impulse beim Durchlaufen durch den bewerteten Prioritätszähler 101 sowie durch die Zähler und die Torschaltungen der einzelnen Gruppen erfahren, so daß die Erregung der verschiedenen Anforderungsleitungen 102, 104, 106 und 108 jeweils mit der Ankunft der einzelnen Maschinentaktimpulse zusammenfällt und die Ankunft der einzelnen Maschinentaktimpulse an den verschiedenen, die Operanden leitenden, in Fig. 2 dargestellten UND-Tor schaltungen zeitlich gespreizt wird.
Die Ausgangssignale der mit einer bestimmten
Anforderungsleitung und einer bestimmten, in Fig. 2
■2 7-
009842/1670
dargestellten Gruppe verbundenen UND-Torschaltungen bilden ein Steuer- bzw. Leitsignal zum Leiten des von dem ausgewählten, eine Bedienung anfordernden virtuellen Prozessors abgegebenen Operanden. Zum Beispiel leiten die Ausgänge 125, 147, 173 und 195 den Operanden O. Ent sprechendes gilt für die Torschaltungen bei anderen Operanden.
Nachfolgend wird die Arbeitsweise der erfindungsgemäßen Prioritätssteuerung mit Bezug auf die Darstellungen in den Fig. 2, 2A, 2B, 2C und 3 zuerst bei Normalbetrieb und dann bei Betrieb mit erweiterter Priorität beschrieben.
Normalbetrieb
Im Normalbetrieb werden alle Ε-Positionen des Erregungsregisters 110 auf 0 gesetzt. Entsprechend den logischen Gleichungen (1) bis (4) werden somit alle I-Positionen des Sperregisters 112 im Normalbetrieb auf 1 gesetzt.
Im Normalbetrieb wird IO auf der Leitung 114 ein aktives Eingangssignal für das UND-Glied 130, dessen
- 28 -
009842/1670
anderes Eingangssignal die Phase O ist. Im Normalbetrieb ist somit die Phase O über das UND-Glied 130 und das ODER-Glied 132 mit dem UND-Glied 111 sowie unmittelbar mit den UND-Gliedern 113,'.115 und 117 verbunden. In gleicher Weise ist durch Erregung von Il auf Leitung 116 die Phase 1 über das UND-Glied 134 und das ODER-Glied mit dem UND-Glied 135 sowie unmittelbar mit den UND-Gliedern 133» 135 und 139 verbunden. Durch Erregung von und 13 sind in ähnlicher weise die Phasen 2 und 3 mit jedem UND-Glied in den Gruppen 155, 157, 159, 161 und l8l, 183, 185, 187 verbunden.
Wie in Fig. 3 gezeigt ist, läuft der Ringzähler einer jeden Gruppe mit einer Geschwindigkeit von 8 ns um und beendet demzufolge einen Prüfumlauf für eine Gruppe in 64 ns. Zur leichteren Darstellung kann ohne Einschränkung des Schutzumfanges angenommen werden, daß jeder Gruppenzyklus seine Prüfung mit dem.ersten virtuellen Prozessor der Gruppe beginnt, nämlich mit PO für die Gruppe O, mit Pl für die Gruppe 1, mit P2 für die Gruppe 2 und mit P3 für die Gruppe 3. Gleichzeitig beginnt der in Fig. 2 dargestellte, mit den Gruppenzählern synchronisierte Prioritätszähler 101 seine
- 29—
009842/1670
erste Phase, während jeder Gruppenzähler synchron seinen ersten Umlauf für die entsprechende Gruppe beginnt, so daß der Prioritätszähler 101 die Phase jeweils einmal pro Umlauf der Gruppenzähler ändert. In Pig. 2A ist dieser Vorgang graphisch dargestellt.
In der Tabelle in Fig. 2B, welche die Gruppen= priorität im Normalbetrieb zeigt, ist schematisch und erschöpfend dargestellt, wie in dem für jede Gruppe vorgesehenen Zeitabschnitt von 8 ns eine Gruppe, welche eine Bedienungsanforderung aufweist, die Priorität züge= sprochen erhält, von der Ausführungseinheit Bedienung anzufordern. Die erste Spalte der Tabelle zeigt die aufeinanderfolgenden Phasen des bewerteten Prioritäts= Zählers 101. Die zweite Spalte der Tabelle zeigt die Phasen der einzelnen Gruppenzähler. Die MxM in den einzelnen Abschnitten der zweiten Spalte bedeuten, daß diese Phasen der Gruppenzähler ohne Bedeutung sind, da ohne Rücksicht auf die Phase der Zähler die tatsächliche Gruppenpriorität nicht als eine Funktion der Gruppenzählerphase, sondern als eine Funktion der betreffenden, ausstehende Bedienungsanforderungen aufweisenden Gruppen zugeordnet wird.
- 30 -
009842/1670
Der Zustand der Bedienungsanforderungen in den einzelnen Gruppen ist in den unter der Überschrift "Gruppenanforderungs= status" dargestellten Spalten gezeigt, von welchen jede einer bestimmten Gruppe entspricht. Die beiden letzten Spalten der Tabelle zeigen die Gruppe mit der nominellen Priorität während einer gegebenen Prioritätszählerphase bzw. die Gruppe mit der tatsächlichen Priorität.
Ein Beispiel ist aus den ersten vier Zeilen der Tabelle ersichtlich. In diesen vier Zeilen ist die Prioritätszählerphase 0 angegeben, was besagt, daß die nominelle Priorität in der Gruppe 0 liegt, d.h. wenn während 8 ns-der Phase 0 von 61 ns des PrioritätsZählers die Gruppe 0 eine Anforderung aufweist, hat diese Gruppe O ungeachtet der Anforderungen der Gruppen 1,2 und 3 die tatsächliche Priorität- wie dies aus der ersten Zeile der Tabelle hervorgeht. Die "x" in den Spalten 1, 2 und 3 und die 11I" in der Spalte 0 besagen, daß der Anforderungszustand der Gruppen 1,2 und 3 keine Bedeutung hat, solange die Gruppe 0 eine Anforderung aufweist, da die nominelle Gruppenpriorität in dieser Gruppe 0 liegt, welche entsprechend der Tabelle eine Anforderung ausstehen hat. Somit bleibt die tatsächliche Gruppenpriorität in der Gruppe 0. Aus Zeile 2 ist zu
- 31 -
009842/167Qu
ersehen, daß die O für die Gruppe O im Abschnitt "Gruppenanforderungsstatus" besagt, daß die Gruppe O keine Anforderung aufweist, obwohl sie die nominelle Priorität hat. Die 1 in der Spalte für die Gruppe 1 besagt, daß hier eine Anforderung aussteht. Da in der Gruppe O, welche die nominelle Priorität hat, keine Anforderung vorliegt, während in der Gruppe 1 eine Anforderung vorliegt, wird die tatsächliche Priorität um eine Position so nach unten verschoben, daß jetzt die Gruppe 1 die tatsächliche Priorität hat. Da die Gruppe 1 gemäß der Tabelle eine Bedienungsanforderung vorliegen hat, spielen die Anforderungszustände der Gruppen 2 und 3 keine Rolle. Wie aus der dritten Zeile der Tabelle zu ersehen ist, wird die nominelle Priorität jeweils dann um zwei Reihen nach unten verschoben und die tatsächliche Gruppenprioritä verbleibt ungeachtet der Bedingung der Gruppe 3 in der Gruppe 2, wenn in der Phase 0 des Prioritätszähler 101 weder die Gruppe 0 noch die Gruppe 1, jedoch die Gruppe eine Anforderung ausstehen hat. Schließlich zeigt die vierte Zeile, daß trotzdem jeweils dann die tatsächliche Gruppenpriorität um drei Gruppen nach unten auf die Gruppe 3 verschoben wird, obwohl die nominelle Gruppen= priorität in der Gruppe O liegt, wenn während der Gruppe 0 des Prioritätszählers 101 keine der Gruppen 0, 1 oder 2 eine Bedienungsanforderung ausstehen hat.
- 32 -
009842/1670 original inspected
Die gleiche Situation wird für die Phase 1 des PrioritätsZählers 101 aufrechterhalten, mit der Ausnahme, daß hier der Beginn in der fünften Zeile der Tabelle bei einer, ausstehenden Bedienungsanforderung der Gruppe liegt. Unter diesen Umständen bleibt die nominelle sowie die tatsächliche Priorität ungeachtet der Anforderungszustände in den anderen Gruppen bei der Gruppe 1. Die Zeilen 6, 7 und 8 der Tabelle zeigen die Verschiebung der Priorität nach unten und damit den zyklischen Charakter der Priorität. Wenn also während der Phase 1 des Prioritätszählers 101 weder die Gruppe 1 mit der nominellen Priorität noch die Gruppen 2 oder 3, welch letztere die beiden nächsten Prioritätsgruppen darstellen, eine Bedienungsanforderung ausstehen haben, so wird die Priorität wieder zur Gruppe zurückgeführt. Der übrige Teil der Tabelle zeigt, daß dieser Vorgang für jede Phase des Prioritätszählers in entsprechender Weise beibehalten wird und wieder mit der Phase 0 in Zeile 17 der Tabelle beginnt, wenn der Prioritätszähler seine zweite Phasengruppe beginnt und so kontinuierlich weiterläuft.
Ein Beispiel für den Vorgang des in -Fig..2B schematisch gezeigten Normalbetriebes ist in Fig. 2 dargestellt. Während der Phase 0 des bewerteten Prioritätszählers 101
- 33—
009842/1670
wird zum Beispiel die Leitung 103 für 64 ns erregt· Jedes Operanden leitende UND-Glied in der Schaltungskonfiguration empfängt außerdem über die Leitung 100 Impulse mit einer Wiederholungsfrequenz von jeweils 8 ns. Die Verzögerungs= schaltung D in der Leitung 100bedeutet, daß auf die Leitung eine ausreichende Verzögerung gegeben werden sollte, um die Zeit zu simulieren, welche die Impulse zum Durchlaufen des bewerteten Prioritätszählers und des Gruppenzählers in der betreffenden Gruppe benötigen, so daß die Maschinentakt= impulse an den die Operanden leitenden UND-Gliedern in der richtigen Zeitfolge ankommen, um die entsprechenden Operanden als eine Punktion der Bedingung der Anforderungs= leitungen 102, 104, 106 und 108 und der zugehörigen Prioritätszählerphase zu steuern. Unter gleichzeitigem Bezug auf Fig. 2 und auf Zeile 0 der Tabelle in Fig. 2 ist zu ersehen, daß die Operanden und die Anforderung der Phase 0 weitergeleitet werden, wenn während der Prioritätszählerphase 0 während irgendeiner Phase der Gruppenzähler auf der Leitung 102 der Gruppe 0 eine Anforderung aussteht. Dies wird dadurch angezeigt, daß alle I-Positionen des Sperregisters 112 im Normalbetrieb auf 1 stehen, somit ist die Prioritätszählerphase 0 ein aktives Eingangssignal für das UND-Glied 111, so daß alle Eingangsbedingungen des UND-Gliedes 111 erfüllt eind. Da außerdem der Inverter 119 ein Ausgangssignal abgibt, werden die Eingänge
- 34 -
009842/1670
der UND-Glieder 113, 115 und 117 gesperrt, so daß sichergestell ist, daß nur die Operanden der Gruppe O weitergeleitet werden.
Aus Zeile 2 der Tabelle in Pig, 2B ist zu ersehen, daß bei Vorliegen einer Anforderung von der Grippe 1 und keiner Anforderung von der Gruppe O in irgendeiner Gruppenzählerphase innerhalb der Prioritätszählerphase O alle Eingangssignale für das UND-Glied 113 vorliegen. Somit liegt die tatsächliche Priorität in der Gruppe 1, obwohl die nominelle Priorität in der Gruppe 0 verbleibt, und die Operanden der Gruppe 1 werden Über die Leitung der Ausführungseinheit zugeleitet. Operanden anderer Gruppen werden nicht geleitet, da an den die anderen Operanden weiterleitenden UND-Gliedern, welche zur Phase 0 des Prioritätszählers 101 gehören, Sperr-Eingangssignale anliegen, weil die Leitung 102 für das UND-Glied 111 abgeschaltet ist . und durch das NichtVorhandensein eines Ausgangssignales an dem Inverter 121 die UND-Glieder 115 und 117 effektiv gesperrt werden.
Aus Zeile 3 der Tabelle ist zu ersehen, daß alle Eingangssignale für das UND-Glied 115 vorhanden sind und die Operanden der Gruppe 2 von der Leitung 129 weitergeleitet werden, wenn während irgendeiner Gruppenzählerphase innerhalb der Prioritätszählerphase 0 von den Gruppen 0 und
- 35 009-842/1670
keine Anforderungen vorliegen, jedoch von der Gruppe 2 eine Anforderung vorliegt. Somit liegt die tatsächliche Gruppenpriorität in der Gruppe 2, obwohl die nominelle Priorität in der Gruppe 0 liegt. Von den anderen Gruppen werden keine Signale weitergeleitet, da der Inverter 123 kein Ausgangssignal aufweist und hierdurch das UND-Glied 117 gesperrt wird und infolge der fehlenden Signale auf den Leitungen 102 und 104 die UND-Glieder 111 und 113 gesperrt werden.
Aus Zeile 4 der in Fig. 2B dargestellten Tabelle ist mit Bezug auf Fig. 2 zu ersehen, daß bei einer solchen Situation die Leitungen 102, 104 und 106 abgeschaltet und dadurch die UND-Glieder 111 bis 115 gesperrt sind, während die Leitung 108 und alle anderen Eingänge für das UND-Glied 117 während irgendeiner innerhalb der Prioritätszählerphase 0 gelegenen Gruppenzählerphase erregt sind und die Operanden der Gruppe 3 über die Leitung 131 geleitet werden, wodurch angezeigt wird, daß die tatsächliche Gruppenpriorität um drei. Gruppen nach unten von der nominellen Prioritätsgruppe 0 zur Gruppe 3 verschoben wurde. Die anderen Teile der Tabelle können durch Vergleich mit der in Fig. 2 dargestellten Schaltung für die anderen drei Phasen des Prioritätszählers 101 in gleicher Weise durchgegangen werden, wie es für die Phase 0 geschah.
- 36 009842/1670
In Pig. 4 sind für jede Gruppe die Steuerleitungen für die einzelnen Operandengruppen dargestellt. So leiten z.B. die Leitungen 125·, 147, 173 und 195 jeweils die Operanden der Gruppe O. Diese Leitungen dienen zur Zuführung der Operanden O zu der in Fig. 2 dargestellten Prioritätssteuerschaltung. Biese Leitungen führen die einschaltenden Eingangssignale für das ODER-Glied 255, dessen Ausgangssignal über die Leitung199 geht und ein einschaltendes Eingangssignal für die Torschaltung 271 darstellt, welche effektiv die Operanden von dem gewählten Prozessor in der Gruppe O zu der Operandensammelleitung 279 leitet, so daß die Operanden dann in einem Versuch, von einem Ausführungsgerät der Ausführungseinheit bedient zu werden, dieser Ausführungseinheit zugeleitet werden können. Die Leitung 199 dient außerdem als Anforderungsleitung für die Ausführungseinheit. In gleicher Weise bilden die Leitungen aus Fig. 2 zwecks Steuerung des Operanden 1 einschaltende Eingänge für das ODER-Glied 257, dessen Ausgangssignal über die Leitung 299 ein Eingangs-Steuersignal für die Torschaltung 273 bildet, um die Operanden der Gruppe 1 der Operandensammelleitung 279 zuzuführen und von dieser zur Ausführungseinheit zu leiten. Die Leitung 299 dient außerdem als Anforderungsleitung für die Ausführungseinheit. In gleicher Weise bilden die in Fig. 2 als Aus- ' gangsleitungen dargestellten Leitungen zur Steuerung der Operanden der Gruppe 2 einschaltende Eingänge für das
- 37—
009842/1670
ODER-Glied 259» dessen Ausgangssignal über die Leitung ein Steuersignal für die Torschaltung 275 bildet, um die Operanden der Gruppe 2 von der Sammelleitung 267 her auf die Operandensammelleitung 279 und von dieser der Ausführungseinheit zuzuleiten. Die Leitung 399 stellt über die Sammelleitung 13 der Ausführungseinheit ebenfalls Anforderungen zu· Die zur Steuerung der von der Gruppe 3 abgegebenen Operanden dienenden Leitungen sind in ähnlicher Weise wirksam.
Nachfolgend wird ein Beispiel für den Normalbetrieb der Prioritätssteuerschaltung unter der Annahme gegeben, daß die in der beiliegenden Tabelle I gezeigten, mit AO, Al, A2 und A3 abgekürzt angegebenen Gruppen während der gezeigten Phasen in den angegebenen virtuellen Prozessoren Anforderungen RO, Rl, R2 und R3 enthalten. Die betreffenden' Prozessoren mit einer ausstehenden Anforderung sind durch ihre jeweiligen Programme bestimmt, welche durch die hier nicht im einzelnen beschriebene Steuerschaltung 32 bestimmt werden können.
- 38 -
ORIGtNAL IHSPECTED
009842/1670
Tabelle I: Normalbetrieb
Prioritäts-Zeile zählerphase
Gruppenzäh- Anfordernde virtuelle Prozessoren Nominelle lerphase (AO),RO (Al),Rl (A2),R2 (A3),R3 Priorität
Tatsächliche Priorität
O
(O
OO
4
5
6
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
O O O O O O O O
1 1 .1 1 1 1 1 1
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
PO P4 P8
P28
Po P4
P12 P16
P24 P28
PO P4 P8
Pl6.
P24 P28
PO
P4
P8
P12
P16
PO
Pl
P9 P13 P17
P29 Pl
P9
P13
P17
Pl
P13 P21
P17 P21 P25 P29
Pl
P6
P14 P18
P26 P30
P2 P6
P18
P18 P22 P26 P30
P2 P6 PlO P14
P19
P23
PJl
P7
P23
P27
P3
.P.7
Pll
P15
Pl 9
P2
P19
P23
AO, PO
AO,P4
AO,P8
A0,P12 AO,P16 A0,P20 AO,P24 AO,P28
Al,Pl
A1,P5
A1,P9
A1,P13
A1,P17
Ai,P21
A1..P25
A1,P29
A2,P2
A2,P6
A2,P10
A2,P14
A2,P18
A2,P22
A2,P26
A2,P3O
A3,P3
A3,P7
A3,P11
A3,P15
A3.P19
A3,P23
A3.P27
A3,P31
AO, PO
AO,PO AO, P4 AO, P8 A1,P13 A1,P17 A3,P23 A2,P26 AO,P28
1Al1Pl A2,P6 A1,P9 Al,PlJ A1,P17 A3,P23 A3,P27 AO,P28
A2,P2
A3,P7
A3,Pll
A3,P15
A2,P18
A2,P22
A2,P26
A2,P3O
AO, PO AO, P4 AO, P8 A0,P12 A3,P19 A3,P23 A1,P25 A1,P29
AO, PO
ta
Da der Normalbetrieb läuft, stehen alle Ε-Positionen in dem Register 110 auf 0 und alle I-Positionen in dem Register auf 1. Ausstehende Anforderungen auf den Leitungen 102, 104, 106 und 108 werden während jeder Gruppenzählerphase gemäß der obigen, auf Fig. 3 bezogenen Beschreibung bestimmt. Die Zuordnung der nominellen und der tatsächlichen Priorität erfolgt jeweils entsprechend der oben mit Bezug auf die Pig. 2, 2A und 2B gemachten Beschreibung. Wenn z.B. mit Bezug auf die Fig. 2 und 2B während der ersten Phase 0 des Prioritätszählers 101 die virtuellen Prozessoren der Darstellung in der Tabelle I entsprechend Anforderungen ausstehen haben, dann erhält während der Gruppenzählerphase 0 der Prozessor PO, welcher infolge der Erregung der in Fig. 2 dargestellten Leitung 103 die nominelle Priorität hat, auch die tatsächliche Priorität, da alle Bedingungen des UND-Gliedes 111 erfüllt sind. Die Leitung überträgt demzufolge die Operanden der Gruppe 0, in diesem Falle also die Operanden des Prozessors PO, wie dies in Fig. 4 dargestellt ist. Während der Gruppenzählerphase innerhalb der Prioritätszählerphase 0, dargestellt in Zeile 2 in Tabelle I, hat jede Gruppe um eine Zahl weitergeschaltet und ihren Prozessor geprüft. Die geprüften Prozessoren der Gruppen 0, 2 und 3, nämlich die Prozessoren P1I, P6 und P7, haben Anforderungen ausstehen. Mit Bezug auf Fig. 2 ist ersichtlich, daß gleichzeitig mit diesem Weiter-
- 40 -
009842/1670
schalten des Gruppenzählers derjenige Maschinentaktimpuls, welcher die Gruppenzähler in den einzelnen Gruppen weiterschaltete, durch die in der Leitung 100 liegende Verzögerungsschaltung D hindurchgegangen ist und gleichzeitig mit den von den Prozessoren P4, P6 und P7 über die Leitungen 102, 106 und 108 abgegebenen Anforderungen die betreffenden UND-Glieder erreicht hat. Da jedoch nur die Leitung 103 der Phasenleitungen des Prioritätszählers 101 erregt und das UND-Glied 111 über das ODER-Glied 132 vorbereitet ist und da die Gruppe 0 infolge der Ergänzung des Zustandes der Anforderung 0 nominelle Priorität hat, werden von der Leitung 102 her über den Inverter 119- die UND-Glieder 113, 115 und 117 (Fig. 2) effektiv gesperrt und nur der Prozessor P4 der Gruppe 0 kann seine Operanden der Ausführungseinheit zuleiten. Somit hat während dieser Phase der Gruppenzähler die Gruppe 0 sowohl nominelle als auch tatsächliche Priorität und die Operanden des Prozessors P^ werden der Ausführungseinheit zugeleitet. Die Gruppenzählerphase 2 innerhalb der Prioritätszählerphase 0 ist in der dritten Zeile der Tabelle I dargestellt und entspricht der Gruppenzählerphase O insofern, als der anfordernde virtuelle Prozessor der Gruppe Ö, in diesem Falle der Prozessor P8, sowohl nominelle als auch tatsächliche Priorität besitzt, in Zeile 4 der Tabelle I ist eine Situation dargestellt,
- kl -
in welcher die Gruppe O während derjenigen Phase keinen anfordernden virtuellen Prozessor aufweist, während welcher sie nominelle Priorität hat, sondern sowohl die Gruppe 1 als auch die Gruppe 2 haben virtuelle Prozessoren, nämlich die Prozessoren P13 und Pl4, welche eine Bedienung anfordern. Diese Situation entspricht der Darstellung in Zeile 2 der in Fig. 2B dargestellten Tabelle und ist ein Beispiel dafür, wie die Priorität nach unten verschoben wird, wenn die Gruppe mit der nominellen Priorität keinen virtuellen Prozessor mit einer ausstehenden Bedienungsanforderung während einer gegebenen Gruppenzahlerphase aufweist. In dieser Situation wird z.B. durch die Anforderung des virtuellen Prozessors P13 die in Pig. 2 dargestellte Leitung 104 während der Phase 3 des der Gruppe 1 zugehörenden Gruppenzählers erregt. Derselbe Maschinentaktimpuls, v/elcher den Gruppenzähler in der Gruppe 1 zur Überprüfung des virtuellen Prozessors 13 veranlaßt, läuft über die Verzögerungsschaltung D und die Leitung 100 und kommt gleichzeitig mit dem Erregungsimpuls der Leitung 4 an dem UND-Glied 113 an. In ähnlicher Weise wirkt die Leitung 103 als einschaltende Eingangsleitung für das UND-Glied 113. Schließlich wird noch durch das vom Inverter 119 kommende Ausgangssignal die Leitung 102 erregt und werden hierdurch die einschaltenden Eingangssignale für das UND-Glied 113 ergänzt, so daß der Operand der Gruppe 1, nämlich die
- 42 009842/1670
•»3
Operanden des virtuellen Prozessors P13S der Ausführungseinheit zugeleitet werden, um zu versuchen, von dieser bedient zu werden. Da der komplernente Signalwert der Leitung 104, d.h. das Ausgangssignal des Inverters 121, ein Eingangssignal für die UND-Glieder 115 und 117 ist, werden diese .UND-Glieder insofern abgeschaltet, als die Leitung ja erregt ist. Somit hat der Prozessor P13 der Gruppe die tatsächliche Priorität und seine Operanden werden der Ausführungseinheit zugeleitet, obwohl bei der in Zeile der Tabelle wiedergegebenen Situation der Prozessor P8 der Gruppe 0 die nominelle Priorität hat. Eine niedrigere Prioritätsanforderung wie beispielsweise diejenige des Prozessors Pl4 spielt keine Rolle. Eine ähnliche Situation ist in Zeile 5 der Tabelle für die Phase 4 der Gruppenzähler angegeben, bei welcher der Prozessor P17 der Gruppe die tatsächliche Priorität hat, obwohl die Gruppe 0 die nominelle Priorität hat. In der Gruppenzählerphase 5 der Prioritätszählerphase 0 (Zeile 6) ist gezeigt, daß nur der von der Gruppe 3 geprüfte virtuelle Prozessor P23 eine Bedienungsanforderung ausstehen hat. Diese Situation entspricht der Darstellung in Zeile 4 der in Fig. 2B dargestellten Tabelle, d.h, die Priorität wird von der Gruppe nach unten auf die Gruppe 3 verschoben. Dieser Vorgang ist in Pig« 2 wie nachfolgend beschrieben dargestellt. Während der Gruppenzählerphase 5 prüft jeder Gruppenzähler
■ · - 43 -
009842/1670
seine betreffenden Prozessoren für die Phase nämlich die Prozessoren P2O, P21, P22 und P23. Nur der Prozessor P23 hat eine Bedienungsanforderung ausstehen, so daß von allen in Fig. 3 dargestellten Anforderungsleitungen nur die Leitung 108 erregt wird. Der Impuls auf der Leitung kommt nach dem Durchlaufen durch die Verzögerungsschaltung D gleichzeitig mit der Erregung der Leitung 108 an dem UND-Glied 117 an. Die Leitung 103 wird ebenfalls erregt, da wir in der Prioritätszählerphase 0 stehen, so daß ein drittes Einschaltsignal an das UND-Glied 117 gelangt. Da die Leitungen 102, 104 und 106 nicht erregt werden, dienen die komplementen Werte ihrer Signale, nämlich die Ausgangssignale der Inverter 119, 121 und 123, als Einschaltsignale für das UND-Glied 117» dessen Einschaltbedingungen jetzt ebenfalls erfüllt sind. Die Leitung 131 dient demzufolge nunmehr zur Zuleitung der von der Gruppe 3 abgegebenen Operanden, d.h. der Operanden des virtuellen Prozessors P23, an die Ausführungseinheit. Die Priorität verhält sich für alle Phasen des Prioritätszählers 101 in ähnlicher Weise und weitere Illustrationen sind in der beschriebenen Art aus der Tabelle I zu entnehmen.
Die Eintragungen in der Tabelle I dienen lediglich zur Darstellung der Gruppenpriorität im Normalbetrieb. Aus Tabelle I ist ersichtlich, daß die an die Ausführungs-
009842/167 0
einheit geleiteten Operanden lediglich zur Verarbeitung angeboten, jedoch nicht unbedingt immer akzeptiert werden.. Das Prinzip der Annahme bzw* der Zurückweisung von Operanden durch die Ausführungseinheit wird später im Zusammenhang mit den Darstellungen in den Fig. 5 und 6 genauer erklärt. Jedoch wird bei der Tabelle I der Einfachheit halber angenommen» daß die Ausführüngseinheit alle angebotenen Operanden annimmt, wobei die Struktur der Tabelle I selbstverständlich verändert würde, wenn an die Ausführungseinheit geleitete Operanden ZUfuckgeWiesen werden. Wenn z.B. die in Zeile 3 (Gruppe O, Prozessor B) weitergeleiteten Operanden nicht angenommen werden, so bleibt dieselbe Anforderung bestehen, wenn der Prozessor PB während der betreffenden Gruppenzählerphase innerhalb der nächsten Prioritätszählerphase überprüft wird (z.B. Zeile 11 in .-Tabelle I im vorliegenden Beispiel). Die Konstruktion einer Darstellung, welche sowohl die Möglichkeiten der Annahme als auch diejenigen einer Zurückweisung von Operanden berücksichtigt, ist nicht erforderlich, wenn die Tabelle I lediglich auf die Verwendung als Hilfsmittel zur Darstellung der Qruppenpriorität beschränkt ist.
Betrieb mit erweiterter Priorität Beim Betrieb mit erweiterter Priorität erhält eine
- 45 009842/1670
gewünschte Gruppe ohne Rücksicht auf die Prioritätszählerphase die tatsächliche Priorität, sobald sie eine Bedienungsanforderung ausstehen hat. Dadurch unterscheidet sich der Betrieb mit erweiterter Priorität von dem Normalbetrieb, bei welchem die Priorität, beginnend mit der Prioritätszählerphase, umläuft. Der Betrieb mit erweiterter Priorität wird dadurch eingeleitet, daß diejenige Ε-Position des Erregungsregisters auf 1 gesetzt wird, die der gewünschten Gruppe entspricht, welche die erweiterte Priorität haben soll.
Wie aus Fig. 2C zu ersehen ist, wird jede I-Position des Sperregisters 112 auf 1 gesetzt, wenn jede E-Position auf O steht, was auch aus den genannten logischen Gleichungen (1) bis (4) und aus Fig. 2C zu ersehen ist. Wenn demzufolge auf den Leitungen 122, 124, 126 und 128 ein Signal liegt, wird jede Prioritätszählerphase der Leitungen 103, 105, 107 und 109 als Eingangssignal an die betreffenden, Operanden steuernden UND-Glieder angelegt. So ist z.B. die Leitung 103 effektiv sowohl mit dem UND-Glied 111 als auch mit den UND-Gliedern 113, 115 und 117 verbunden. Die anderen Leitungen der Prioritätszählerphase sind ähnlich angeordnet. Wie aus der Tabelle in Fig. 2C zu ersehen ist, wird zu Beginn des erweiterten Prioritäts-
- 46 -
009842/1670
betriebes eine Ε-Position, z.B. El, auf 1 gesetzt, während die anderen Ε-Positionen auf 0 bleiben. Hiermit ist die Gruppe 1 dazu bestimmt, die erweiterte Priorität zu erhalten. Aus Fig. 2 ist zu ersehen, daß El von der Leitung 124 das ODER-Glied 136 konstant erregt und hierdurch das UND-Glied 135 auf Durchlaß schaltet, so daß die Operanden von der bestimmten Gruppe, nämlich der Gruppe 1, stets weitergeleitet werden, sobald von dieser Gruppe auf der Leitung 104 eine Anforderung Rl vorliegt. Wie aus den oben genannten logischen Schaltungsgleichungen (1) bis (4), welche die Sperrschaltung I60 bezeichnen, zu ersehen ist, läuft der Normalbetrieb, wenn von der genannten Gruppe keine Anforderung aussteht. Wenn z.B. El auf 1 gesetzt ist, werden Operanden von der Gruppe 1 immer dann über die Leitung 149 weitergeleitet, wenn während der synchronisierten Perioden die Anforderung Rl vorliegt und die Leitung lOOd erregt wird. Wenn jedoch El auf 1 steht und Rl auf 0, dann überträgt der Normalbetrieb die nominelle Priorität entsprechend der laufenden Prioritätsphase. Wenn also der Prioritätszähler in der Phase 0 und die El-Position auf 1 steht und keine Anforderung Rl vorliegt, so setzt der Ausdruck (El ·Κΐ) in der Gleichung für IO die IO-Position auf 1, so daß die Leitung 122 der Prioritätszählerphase 0 gestattet, das UND-Glied 111 wie beim Normalbetrieb ein-
09842/1670
zuschalten. Die Gruppe O hat dann die nominelle Priorität, welche im Normalbetrieb nach unten verschoben wird, wenn in der Gruppe 0 keine Anforderung vorliegt. Auf diese Weise läuft der Vorgang für alle Phasen des Prioritätszählers weiter. Sobald jedoch eine Anforderung während einer Gruppenzählerphase der Gruppe 1 vorliegt, kehrt der Vorgang zum Betrieb mit erweiterter Priorität zurück und die Gruppe 1 erhält jetzt die tatsächliche Priorität. Dies ist auch ersichtlich, wenn man das Beispiel der genannten logischen Gleichung für IO mit in den Zustand 1 gesetzter Position El fortsetzt. Wenn Rl gleich 0 ist, steht Il auf 1 und die Gruppe 0 hat die nominelle Priorität und es läuft der Normalbetrieb. Wenn jedoch während einer der Gruppenzählerphasen innerhalb der Prioritätszählerphase 0 die Gruppe 1 eine Anforderung startet (Rl = 1), dann ist der Ausdruck (El»Rl) in der ΙΟ-Gleichung gleich 0, ebenso wie alle anderen Ausdrücke und IO wird 0. In Fig. 2 wird hierdurch die Prioritätszählerphase 0 auf der Leitung 103 von dem UND-Glied 111 getrennt und das UND-Glied 130 wird abgeschaltet. Da El auf 1 steht, bereitet die Leitung 116 gleichzeitig das UND-Glied 135 zur Weiterleitung der Operanden von der Gruppe 1 über die Leitung 1^9 vor, da Rl auf 1 steht und die Synchronisationsleitung lOOd erregt wird. Somit ist der ganze Ablauf zum Betrieb mit erweiterter
- 48 -
009842/1670
Priorität zurückgekehrt. Die Umschaltung vom Normalbetrieb auf Betrieb mit erweiterter Priorität und umgekehrt hängt von der jeweiligen Stellung des Erregungsregisters und dem Vorliegen einer Anforderung in der bezeichneten Gruppe ab*
Daraus geht hervor, daß das Erregungsregister ilO die Punktion hat, das Operanden leitende UND-Glied mit der jeweils höchsten Priorität für eine gegebene Gruppe jeweils unmittelbar tu erregen, um diese Gruppe als diejenige zu kennzeichnen, welche die höchste Priorität hat, wenn sie eine Anfofderung aufweist* Gleichzeitig werden alle Positionen im Sperregister Ϊ12 äüf O gesetzt und wird hierdurch die Prioritätszählerphäse von den Operanden leitenden UND-Gliedern mit der höchsten Priorität außer Punktion gesetzt, was daraus.hervorgeht, daß die Leitungen 122, 124, 126 und 128 einen Eingang zu den UND-Gliedern 130, 13V 138 und 144 bilden. Wie weiterhin aus den logischen Gleichungen (1) bis (4) zu ersehen ist, kehrt die Prioritätssteuerung jeweils dann unmittelbar zum Normalbetrieb.zurück, wenn die bezeichnete Gruppe mit der höchsten Priorität während einer gegebenen Gruppehzählerphase keine Anforderung vorlegt, und zwar insofern, als die Position des Sperrregisters, welche der laufenden Prioritätsphase entspricht, dann auf 1 gesetzt wird, um diese spezielle Prioritätszählerphase unmittelbar auf das Operanden leitende UND-Glied
- 49 009842/1670
mit der höchsten Priorität zu geben, während diese Prioritätszählerphase außerdem an die UND-Glieder mit niedrigerer Priorität angelegt wird, so daß der Betrieb während dieser Gruppenzählerphase wie im Normalbetrieb umlaufen gelassen wird.
Anschließend wird ein Beispiel für den erweiterten Prioritätsbetrieb der Prioritätssteuerschaltung unter der Annahme gegeben, daß die in der folgenden Tabelle II gezeigten, mit AO, Al, A2 und A3 bezeichneten Gruppen von den angegebenen virtuellen Prozessoren her während der dargestellten Phasen die Anforderungen RO, Rl, R2 und R3 aufweisen. Die in der Tabelle II dargestellten Phasen entsprechen den in Tabelle I für den Normalbetrieb dargestellten Phasen. Die betreffenden Prozessoren mit einer ausstehenden Anforderung werden jeweils durch bestimmte Programme bestimmt, welche durch die hier nicht im einzelnen beschriebene Steuerschaltung 32 vorgeschrieben werden. Da es sich in diesem Beispiel um den Betrieb mit erweiterter Priorität handelt, sind die Einstellungen der E-Positionen des Erregurigsregisters 110 sowie der I-Positionen des Sperregisters 112, welche durch die genannten logischen Gleichungen (1) bis (4) bestimmt sind, in Spalten angegeben. Ausstehende Anforderungen auf den Anforderungsleitungen 102, 104, 106 und 108 sind entsprechend der oben
- 50 -
009842/1670
mit Bezug auf" Fig. 3 gemachten Beschreibung während jeder Prioritätszählerphase festgelegt. Die nominelle und die tatsächliche Priorität werden jeweils gemäß der Aufstellung zugeordnet. Die letzte Spalte der Tabelle gibt an, wie der Betrieb zwischen dem Normalbetrieb und dem Betrieb mit erweiterter Priorität hin- und hergeschaltet wird, und zwar in Abhängigkeit von der Einstellung der E-Register und der Verfügbarkeit einer Anforderung während einer gegebenen Prioritätszählerphase von derjenigen Gruppe, welche während des Betriebes mit erweiterter Priorität die höchste Priorität zugesprochen erhielt· Wie in Tabelle I, wird auch hier zwecks einfacherer Darstellung angenommen, daß jeder zugeführte Operand von der Ausführungseinheit zur Bedienung angenommen wird.
Mit Bezug auf die Darstellung in Fig. 2 und der Tabelle II ist ersichtlich, daß beispielsweise die ersten vier Zeilen der Tabelle zeigen, daß die Ε-Positionen des Erregungsregisters alle auf O und die !-Positionen alle auf 1 stehen. Wenn dies der Fall ist, sind alle Phasenreitungen des Prioritätszählers mit den zugehörigen, Operanden leitenden UND-Gliedern verbunden. Daher läuft der in Tabelle II mit N.O. bezeichnete Normalbetrieb ab, wie er in den ersten vier Zeilen der Tabelle gezeigt ist,
' * 51 -■
QO&842/1670
3 4 tatszäh- Gruppen- Anforderne virtuelle (A1)SR1 (A2), Tabelle II EO ,R3 0 El E2 E3 IO Il 12 13 nominel tatsäch Betrieb
VJl lerphase zähler- Prozessoren Pl 0 le Prio liche
Zei- Priori- 6 O p hase (AO),RO - P6 0 rität Priorität
Ie 7 0 0 PO P9 - R2 (A3) 0 0 0 . 0 1 1 1 1 AO, PO AO, PO N.O.
8 0 1 P4 P13 P14 0 0 0 0 1 1 1 1 AO,P4 AO,P4 N.O.
i 9 0 2 P8 P17 P18 P7 0 0 0 0 1 1 1 1 AO, P8 AO,P8 N.O.
2 10 0 3 - - - - 0 0 0 0 1 1 1 1 A0,P12 A1,P13 N.O.
11 0 4 - - P26 - 0 0 1 0 0 0 0 0 ΑΟ,ΡΙβ A2,P18 E.P.O.
12 0 5 - P29 P30 P19 1 0 1 0 1 0 0 0 A0,P20 A3.P23 N.O.
13 0 6 - Pl P2 P23 1 0 1 0 .0 0 0 0 AO,P24 A2,P26 E.P.O,
14 1 7 P28 - P6 - 1 0 1 0 0 0 0 0 AO,P28 A0,P30 E.P.O.
15 1 0 PO P9 - P31 1 0 0 0 0 0 0 0 Al,Pl AO, PO E.P.O.
1 16
a mm
1 1 P4 P13 - 1 0 0 0 0 0 0 0 A1,P5 AO, P4 E.P.O.
VJl
ru 17
σ 1 2 - P17 P18 P7 1 0 0 0 0 1 0 Ö A1,P9 A1,P9 N.O.
ι 18 ο 1 3 P12 - - - 1 0 0 0 0 0 0 0 A1,P13 ΑΟ,Ρ.12 E.P.O.
19 co 1 4 P16 - - - 1 0 0 0 0 0 0 0 A1,P17 A0,Pl6 E.P.O.
20 00 1 5 - - - - 1 0 0 0 0 1 0 0 A1,P21 A3,P23 N.O.
21 ** 1 6 P24 Pl P2 P23 1 0 0 0 0 0 0 0 A1,P25 A0,P24 E.P.O.
22 >v 2 7 P28 - - P27 1 0 0 0 0 0 0 0 A1,P29 AO,P28 E.P.O. ,_
23 -» 2 0 PO - - - 1 0 0 0 0 0 0 0 A2,P2 AO, PO E.P.O. +*
24 O> 2 1 P4 P13 - P3 1 0 0 0 0 0 0 0 A2,P6 AO, P4 E.P.O.
25 -* 2 2 P8 - P18 P7 1 0 0 0 0 0 0 0 A2,P10 AO, P8 E.P.O,
26 ° 2 3 - P21 P22 Pll 1 0 0 0 0 0 1 0 A2,P14 A3,P15 N.O.
27 2 4 P16 - P26 P15 1 0 0 0 0 0 0 0 A2,P18 AO,P16 E.P.O.
28 2 5 - - P30 P19 0 0 0 0 0 0 1 0 A2,P22 AO,P24 N.O.
29 2 6 P24 - P2 - 0 0 0 0 0 0 0 0 A2,P26 A2,P26 E.P.O.
30 3 7 P28 - P6 - 0 0 0 0 0 0 0 0 A2,P3O AO,P28 E.P.O.
31 3 0 PO - PlO - 0 0 1 0 0 0 0 0 A3,P3 A2,P2 E.P.O.
32 3 1 P4 mm P14 0 0 1 0 0 0 0 0 A3,P7 A2,P6 E.P.O.
33 3 2 P8 P17 - - 0 0 1 0 0 0 0 0 A3,Pll A2,P10 E.P.O.
3 3 P12 P21 - - 0 0 1 0 0 0 0 0 A3,P15 A2,E14 E.P.O. ^J
3 4 P16 P25 - - 0 0 1 0 0 0 0 1 A3,P19 A3,P19 N.O. 5
3 5 - P29 - P19 0 0 1 0 0 0 0 1 A3,P23 A3,P23 N.O. TZ
3 6 - Pl P2 P23 0 1 0 0 0 0 1 A3,P27 A1,P25 N.O. 2
0 7 - - 0 1 0 0 0 0 1 A3,P31 A1,P29 N.O. ^4
0 PO - 0 1 0 0 0 0 0 AO, PO A2,P2 E.P.O.-*
P3
und die Gruppen mit der tatsächlichen Priorität sind mit denen identisch, welche bei der gleichen Situation bei der Darstellung in Tabelle I die tatsächliche Priorität hatten« Aus Zeile 5 von Tabelle II ist zu sehen, daß E2 auf 1 steht, so daß die Gruppe 2 die erweiterte Priorität zugeordnet erhält, wenn sie während einer gegebenen Gruppenzählerphase eine Aufforderung aufweist. Wie aus Zeile 5 zu ersehen ist, läge beim Normalbetrieb die nominelle Priorität bei der Anforderung der Gruppe O, nämlich bei AO, Pl6. Mit Bezug auf Fig.* 2 bedeutet dies, daß beim Normalbetrieb alle I-Positionen auf 1 stehen würden. Insbesondere stünde IO auf 1 und die Leitung 122 würde das UND-Glied 130 auf Durchlaßschaltung vorbereiten, wobei das Ausgangssignal dieses UND-Gliedes 130 über das ODER-Glied 132 zu dem UND-Glied 111 gelangen würde· In der vorliegenden Situation ist jedoch E2 auf 1 gesetzt, was besagt, daß die Priorität bei der Gruppe 2 liegt. Da gemäß Zeile 5 die Gruppe 2 eine Anforderung ausstehen hat (PI8), werden entsprechend den logischen Gleichungen (1) bis (4) alle I-Positionen des Sperregisters auf 0 gesetzt und hierdurch die Leitungen für die Prioritätszählerphase von den UND-Gliedern mit den die höchste Prioriät aufweisenden Operanden getrennt· In ähnlicher Weise erregt die Leitung von der E2-Position des Erregüft'gsregisters 110 das ODER-; Glied l40f so daß hierdurch der Gruppe 2 die höchste ν -:
Priorität zugesprochen wird. Die auf der Leitung 106 vorhandene Anforderung des Prozessors Pl8 wird dabei über die Leitung 177 geleitet. Dieser Vorgang ist in den Prioritätsspalten der Tabelle zusammengefaßt. Obwohl die nominelle Priorität im Normalbetrieb bei AO,P16 ist, liegt die tatsächliche Priorität bei A2,Pl8 und es läuft der in Tabelle II mit E.P.O. bezeichnete Betrieb mit erweiterter Priorität.
Aus Zeile 6 der Tabelle II ist zu ersehen, daß die Prioritätssteuerung zur Gruppenzählerphase 5 der Prioritätszählerphase O weitergelaufen ist. Es ist festzustellen, daß nur der geprüfte virtuelle Prozessor in der Gruppe 3» nämlich der Prozessor P23, eine Bedienungsanforderung ausstehen hat. E2 steht weiterhin auf 1, was besagt, daß die Gruppe 2 die höchste Priorität hat, wenn in ihr eine Bedienungsanforderung (R2) vorliegt. Jedoch weist die Gruppe 2 keine Bedienungsanforderung auf und die logische Gleichung (1) besagt demzufolge, daß IO den Zustand 1 hat. Die Leitung 122 verbindet deshalb die Prioritätszählerphase 0 mit dem UND-Glied 111. Die Prioritätssteuerung kehrt also zum Normalbetrieb zurück. Wie in der Tabelle aus Zeile 6 zu ersehen ist, liegt die nominelle Priorität bei A0,P20. Weil doch die Gruppe 0 keine Anforderung ausstehen hat, wird die Priorität um drei Gruppen nach unten
- 54 -
0098A2/1870
SS
auf A3,P23 verschoben* wie dies auch bei dem in Tabelle I dargestellten Normalbetrieb der Fall ist.
In den Zeilen 7 und 8 sind die Gruppenzählerphasen und 7 der Prioritätszählerphase 0 gezeigt, wobpi E2 der Gruppe 2 die höchste Priorität zuordnet. Da die Gruppe während jeder dieser Gruppenzählerphasen eine Anforderung ausstehen hat, nämlich von den Prozessoren P26 und P30, schaltet der Betrieb wieder auf Betrieb mit erweiterter Priorität um und die tatsächliche Priorität liegt bei A2,P26 bzw. AO,P3O. Während der Gruppenzählerphase 1, die in Tabelle II in den Zeilen 9 bis 16 dargestellt ist, weist EO den Zustand 1 auf, was bedeutet, daß der Gruppe 0 die höchste Priorität zugeordnet wird, wenn diese eine Anforderung ausstehen hat. Da die Gruppe O während den Gruppenzählerphasen 0 und 1 der Prioritätszählerphase 1 eine Anforderung ausstehen hat, läuft der Betrieb mit erweiterter Priorität weiter und die tatsächliche Priorität liegt bei AO,PO bzw. AO,Ρ*!, wie dies in der Tabelle in den Zeilen bzw. 10 angegeben ist. Zeile 11 der Tabelle zeigt, daß ungeachtet der Stellung von EO auf 1 die Gruppe 0 eine Anforderung ausstehen hat, so daß entsprechend der genannten logischen Gleichung (2) die Position Il den Zustand 1 hat, da ja die Steuerung innerhalb der Prioritätszählerphase abläuft. Der Betrieb kehrt hierbei zum Normalbetrieb zurück,
- 55 -
0 09842/1670
so daß die tatsächliche Priorität A1,P9 zugesprochen wird, wie dies auch in der entsprechenden Zeile in Tabelle I
gezeigt ist. Aus Tabelle II geht also hervor, wie oben
anhand der ersten zehn Zeilen erklärt wurde, daß der
Betrieb in Abhängigkeit von der Einstellung des Erregungsregisters 110, der Prioritätszählerphase und dem Vorliegen von Anforderungen von den Gruppen jeweils zwischen Normalbetrieb und dem Betrieb mit erweiterter Priorität umschaltet.
Aufbau der Ausführungseinheit
In Fig. 6 der Zeichnungen ist schematisch in Form eines Blockschaltbildes die Ausführungseinheit dargestellt, welche eine sogenannte "time shared pipelined execution unit" ist, d.h. eine Ausführungseinheit, die über einen zeitmultiplex betriebenen Kanal erreicht wird, dessen Torschaltung über
weite Übertragungsstrecken offengehalten wird. Obwohl die
Ausführungseinheit nicht notwendigerweise der "pipelined"-Art angehören muß, bringt eine solche Pipeline-Art
für eine Ausführungseinheit eine viel schnellere Arbeitsgeschwindigkeit mit sich. Da Ausführungseinheite mit
einem Kanal, dessen Torschaltungen für lange Übertragungsabschnitte geöffnet sind (pipelined execution unit), an
sich bekannt sind und nähere Informationen über solche Einheiten aus früheren Veröffentlichungen leicht beschafft
werden können, wird eine detailierte Ausführung eines solchen
- 56 -0098A2/1670
Pipeline-Systems hier nicht gegeben, sondern es wird nur die Ausführungseinheit selbst weitgehend "erörtert»
Weitere Einzelheiten bezüglich des obengenannten Pipeline-Systems für die Ausführungseinheit finden sich in der Zeitschrift "The IBM System/360 Model 91: Floatingpoint Execution Unit" von S.F. Anderson, J.G* Ea'rle,
R.E. Goldschmidt und D.M. Powers, und in der Zeitschrift "IBM Journal of Research and Development", Ausgabe 11,
Nr. 1, Jan uar 1967, Seiten 34 bis 53, insbesondere auf den Seiten 36, 37 und 45 bis 48.
Die in Fig. 6 dargestellte Ausführungseinheit enthält unabhängig Voneinander arbeitende Ausführuhgsgeräte 519, 521, 523 ··· 531. Diese Ausführungsgeräte übernehmen die Funktionen der Addition, Subtraktion, Multiplikation und Division bei der Festpunkt- und Gleitkommarechnung sowie Boolesche Funktionen und Verschiebungen. Diese Anordnung kann selbstverständlich zweckentsprechend" verändert werden, ohne vom Rahmen der Erfindung abzuweichen. Mit Ausnahme' der Divisionsoperationen wird für alle Operationen eine Dauer von 64 ns angenommen. ;
Wie bereits im Zusammenhang mit Fig. 5 erklärt wurde,'
- 57 -
009*42/1670
werden der Op-Operandencode und das Kennzeichnungsfeld, welche den betreffenden Prozessor identifizieren, über eine Operandensammelleitung 279 übertragen. Aus Fig. 6 ist zu ersehen, daß die Operandensammelleitung 279 über entsprechende, nicht dargestellte Torschaltungen mit einer Leitung 501 so verbunden ist, daß der Op-Kodeteil der Operanden zur Dekodierung auf einen Op-Dekodierer 503 übertragen wird. Der Op-Dekodierer 503 ist ein binär-zu-1-aus-N-Dekodierer» Um z.B. eine Operation in einem der sieben dargestellten Geräte auszuwählen, kann der Op-Kode mindestens drei Bits enthalten, wobei eine bestimmte binäre Kombination dieser Bits eine bestimmte Einheit bezeichnet. Die gewählte Einheit wird durch ein Signal über eine der Leitungen 505, 507 ... 516 angezeigt. Das Signal auf dieser Leitung dient als Bedienungsanforderung und leitet die Operanden und die Prozessorkennzeichen zu dem betreffenden Ausführungsgerät. Gleichzeitig wird das Kennzeichen auch über eine torgesteuerte Sammelleitung 5l8 einem Kennzeichendekodierer zugeführt, welcher die binäre Adresse des anfordernden Prozessors in einem 1-aus-N-Dekodierer 518 dekodiert. Wenn das gewählte Ausführungsgerät nicht belegt ist und eine neue Bedienungsanforderung annehmen kann, so antwortet sie über Leitungen 565, 566 ... 572. Alle diese Leitungen dienen als Eingangsleitungen zu einer ODER-Torschaltung 573· Ein Eingangssignal von irgendeiner dieser Leitungen erregt
- 58 009842/1670
eine Leitung 575, so daß das Ausgangssignal des Kennzeichendekodierers über die betreffende der Leitungen 557, 559 ··. 561 der AnnahmeSammelleitung den virtuellen Prozessoren zugeleitet wird· Mit Bezug auf Fig. 5 ist zu ersehen, daß jeder der Prozessoren ein Annahme.flipflop aufweist, welches jeweils durch eine Annahmeleitung gesetzt wird, beispielsweise für den Prozessor O durch die Annahmeleitung 557. Das Annahmeflipflop stellt dann das Anforderungs flipflop im Prozessor so zurück, daß dieser wieder zur Erzeugung der nächsten Anforderung bereit ist, wenn die Instruktionen und Operanden zur Verfügung stehen.
Um die erforderlichen Bandbreiten zu erreichen, sind die einzelnen Ausführungsgeräte stark abgestuft. Die zeitliche Abstufung der Eingangssignale erfolgt gleichmäßig in einem Vielfachen von 8 ns, welches ja der Zeitabschnitt für einen virtuellen Prozessor ist. Aufeinanderfolgende Stufen brauchen nicht zu sein. Im Falle von kleineren Operationen, wie Bool'sche Funktionen und Festpunktadditionen, erfordert dies eine entsprechende zusätzliche Verzögerung. Als Beispiel für die Abstufung oder Pipelining können die Gleitkommaaddierer am Ausgang der Exponentdifferenz, der fraction justification, der Primäraddition, der Vorausschauaddition, der Stellenverschiebung, der exponenten FortSchreibung und von zwei zusätzlichen Ver-
■'.- 59 009842/1670
zögerungsstufen abgestuft sein. Die Multiplikation ist auf Grund ihrer Baumstruktur und der Verwendung von übertrags-Erhaltungs-Addierstufen ebenso normal zerlegbar. Die Pestpunktaddition und -subtraktion zusammen mit der Bool1sehen Funktion und Verschiebeoperationen benötigt normalerweise keine ganze Periode. Somit muß eine zusätzliche Verzögerung in jeden dieser Bereiche eingegeben werden, um die richtige Zeitfolge des Systeirs sicherzustellen. Außerdem muß die Zeitfolge durch bekannte Einrichtungen so eingestellt werden, daß die Dekodierer-Einschaltleitung 575 die Rückübertragung der entsprechenden Kennzeichenkodierung an den angegebenen virtuellen Prozessor ermöglicht. Diese Einzelheiten der Zeiteinteilung brauchen hier jedoch nicht näher erörtert zu werden.
Die eine längere Zeit in Anspruch nehmende Division läuft nicht in einer einzigen Periode ab, sondern kann eine Vielzahl von Umläufen der Gruppe erfordern, in welcher der anfordernde Prozessor liegt. In diesem Falle geben die Divisionsgeräte bei Annahme der Anforderung in den anfordernden virtuellen Prozessor ein Sperrbit. Dieses Bit
schaltet den virtuellen Prozessor so, daß er bis zum Ablauf eines Zyklus vor dem planmäßigen Erscheinen des Quotienten keine neuen Anforderungen abgeben kann. Dies kann E.B, über Empfangsleitungen 569 und 567 von den Divisionsgeräten
- 60 -
009842/1670
geschehen. Diese Leitungen sind mit derjenigen.ODER-Tor- ! schaltung 576 verbunden, deren Ausgang 577 an die UND-Torschaltungen 5795 581 ... 585 angeschlossen ist. Pur jeden virtuellen Prozessor des Systems ist eine UND-Torschaltung vorgesehen. Die betreffende Einschaltleitung für den >'-'■" anderen Eingang jeder der UND.-Torschaltungen ist jeweils' die betreffende der Annahmeleitungen 557, 559, 561 und 563. Wenn ein Divisionsgerät die Anforderung annimmt, so gestattet ein Dekodiereinschaltsignal auf der Leitung die Dekodierung des Kennzeichens des anfordernden Prozessors» Hierbei wird eine der Leitungen 557 ·.· 563erregt bzw. eingeschaltet. Gleichzeitig erscheint auf der Leitung ein Signal. Die entsprechende Einschaltleitung des Kennzeichendekodierers 5l6 schaltet daher eine der UND-Torschaltungen 579 bis 585 auf Durchlaß, so daß eine der Leitungen der zu den virtuellen Prozessoren führenden Sperr-Sammelleitung erregt wird. Aus Fig. 5 ist ja bekannt, daß jeder Prozessor über ein Sperrflipflbp 231 Verfügt, welches über eine der Leitungen der Sperr-Sammelleitung gesetzt wird. Die Leitung 580 der Sperr-Sammelleitung * setzt z.B. das Sperrflipflop im Prozessor Ö derart, daß* der Polgeschalter des Prozessors 0 daran gehindert wird, einen neuen Befehl einzuleiten. Die Sperrleitung wird jeweils einen Zyklus vor dem planmäßigen Erscheinen des Quotienten gelöacht. Alis Fig. 6 ist zu "ersehen, dai dies
- 61 -
009*42/1$70
innerhalb der Divisions-Funktionseinheiten dadurch geschehen kann, daß ein Zyklus vor Fertigstellung des Ergebnisses das zugehörige Kennzeichen, welches ursprünglich über die Sammelleitung 517 auf die Divisionseinheit gegeben wurde und in dieser Einheit gespeichert werden kann, dekodiert wird, über eine der Leitungen 586, 587 und 588 der Rückstell-Sperr-Sammelleitung 590 kann dann ein Signal abgegeben werden. Wie aus Fig. 5 zu ersehen ist, ist eine dieser Leitungen jeweils für das in jedem Prozessor vorhandene Sperrflipflop vorgesehen, so daß der betreffende Prozessor jeweils die Sperrleitung (233 im Prozessor 0 in Pig, 5) löschen kann und hierdurch die Folgeschaltung einen weiteren Befehl einleiten kann.
Aus jedem der Ausführungsgeräte führt eine Ergebnis- und Kennzeichensammelleitung 533 heraus. Ergebnisse werden über eine Sammelleitung 547 geleitet und Kennzeichen werden über eine Sammelleitung 535 einem Kennzeichendekodierer 537 zugeführt, welcher wiederum ein binärer 1-aus-N-Dekodierer sein kann. Wenn die Ergebnisse über die Sammelleitung 5^7 gegeben werden , wird das entsprechende Ergebniskennzeichen 539 > 5^1 ... 5^5 durch den Kennzeichendekodierer 537 erregt und hierdurch der virtuelle Prozessor, der seine betreffende Funktion anforderte, davon unterrichtet, daß seine Ergebnisse zur Verfügung stehen. Genauer geht dieser Vorgang aus
- 62 -
0098A2/1670
Pig. 7 hervor, wo die ErgebnisSammelleitung 5^7 einen zum Akkumulator eines jeden Prozessors führenden Eingang hat und jedes der Ergebniskennzeichen als Steuerkennzeichen für den jeweiligen Prozessor dient und anzeigt, daß die von der Ergebnissammelleitung kommenden Ergebnisse für diesen betreffenden Prozessor bestimmt sind·
Arbeitsweise des erfindungsgemäßen Datenverarbeitungs-
systems
Ausgehend von Fig· I wird angenommen, daß jeder virtuelle Prozessor in einer Gruppe Befehle vom Hauptspeicher 23 empfangen kann, beispielsweise Lade-/Speicherbefehle über die Sammelleitung 31 zu senden und Operanden vom Hauptspeicher zu empfangen oder an diesen zu senden. Dazu können geeignete Lade- und Speichereinrichtungen sowie ^Steuerungen verwendet werden, die jedoch nicht unmittelbar Gegenstand der Erfindung bilden.
Im folgenden wird ebenfalls auf Fig. 1 Bezug genommen. Jeder virtuelle Prozessor in jeder Gruppe wird in aufeinanderfolgenden Zeitabschnitten von z.B. jeweils 8 ns auf ausstehende Bedienungsanforderungen hin überprüft· Beispielsweise wird während öes ersten Zeitabschnittes von 8 ns PO in der Gruppe 0, Pl in der Gruppe 1, P2 in der Gruppe 2
- 63 009842/1670
und P3 in der Gruppe 3 überprüft. Während der folgenden 8 ns werden P 4 in Gruppe O, P 5 in Gruppe 1, P6 in Gruppe und P7 in Gruppe 3 geprüft. Der Betrieb läuft auf diese Weise weiter, so daß jeweils während 8 ns vier virtuelle Prozessoren geprüft werden, und zwar jeweils einer in jeder Gruppe. Da jede Prüfperiode 8 ns beträgt und acht virtuelle Prozessoren vorhanden sind, benötigt jede Gruppe für einen Umlauf 64 ns. Wie eine bestimmte Gruppe ihre Prüfung vollzieht ist aus Fig. 3 zu ersehen.
Fig. 3 zeigt die Gruppe 0. Während der ersten 8 ns erregt die Phase 0 des Ringzählers 201 die Leitung 203 und PO wird daraufhin überprüft, ob er eine Bedienungsanforderung ausstehen hat. Ist dies der Fall, so wird die PO-Anforderungsleitung 219 erregt. Daher erregt dann das UND-Glied 235 die Leitung 236 über die Verriegelungsschaltung 280, um den Operanden von der PO-Operandensammelleitung 220 über die Torschaltung 204 der Operandensammelleitung 251 der Gruppe 0 zuzuleiten. Die Leitung 236 schaltet außerdem über das ODER-Glied 253 die O-Anforderungsleitung 102 ein. Die Verzögerungsschaltung 281 stellt am Ende dieses Zeitabschnittes die Verriegelungsschaltung 280 zurück. Wie bereits erwähnt, ist die Struktur der über die torgesteuerte Sammelleitung 220 geleiteten Operanden aus Fig. 5 zu ersehen. Wäyrend des zweiten Zeitabschnittes von 8 ns
- 64 -
009842/1670
erregt die Phase 1 des Ringzählers 201 die Leitung 205, welche dann an das UND-Glied 237 ein einschaltendes Eingangssignal abgibt. Wenn der virtuelle Prozessor P4 der Gruppe 0 eine Bedienungsanforderung ausstehen hat, bildet das Signal auf der Leitung 221 ein zweites Einschaltsignal für das UND-Glied 237. Über die Verriegelungsschaltung liefert dann die Leitung 238 ein auf Durchlaß schaltendes Eingangssignal an die Torschaltung 206, um die Operanden von P4 auf die Operandensammelleitung 251 der Gruppe zu geben. Die Leitung 238 schaltet über das ODER-Glied außerdem die 0-Anforderungsleitung 102 ein. Die Verzögerungseinrichtung 283 setzt am Ende des Zeitabschnittes die Verriegelungsschaltung 282 zurück. Dieser Vorgang läuft mit einer neuen Phase des Ringzählers 201 der-Gruppe weiter, so daß die betreffende Ringzählerleitung alle 8 ns eingeschaltet wird, bis Phase 7 erreicht ist.~ Am Ende der Phase 7 beginnt derselbe Vorgang wiederum mit der Phase 0 von vorne, so daß ein neuer Umlauf der Gruppe erfolgt und die virtuellen Prozessoren wieder der Reihe nach überprüft werden. Diese überprüfung erfolgt jeweils gleichzeitig in jedem Prozessor mit derselben relativen Position in der betreffenden Gruppe, die während desselben Zeitabschnittes von 8 ns in jeder Gruppe überprüft wird. Somit können jeweils vier Anforderungen, nämlich eine von jeder Gruppe, während eines gegebenen Zeitabschnittes
00914271870-
ausstehen. Es können also alle in Fig. 2 gezeigten Leitungen 102, 104, 106 und 108 während desselben Zeitabschnittes erregt sein. Verkettungen werden durch die oben in Verbindung mit den Fig. 2A und 2B erläuterte und in Fig. 2 dargestellte Prioritätssteuerung aufgebrochen.
Im folgenden wird ein Betriebsbeispiel für die Operanden eines bestimmten virtuellen Prozessors beschrieben, der in einer Periode von 8 ns die Priorität zugeteilt erhielt. Mit Bezug auf die Darstellungen in den Fig. 3 und 4 wird angenommen, daß der Prozessor PO die tatsächliche Priorität auf ähnliche Weise erhalten hat, wie es oben im Zusammenhang mit den Tabellen I und II beschrieben wurde. In diesem Falle wurden die Operanden von PO über die Leitung 220 der Fig. 3 und die Torschaltung 204 auf die Operandensammelleitung 251 der Gruppe 0 geleitet, indem die Leitungen 203 und 219 in der oben erörterten Weise gleichzeitig erregt wurden und hierdurch das UND-Glied 235 eingeschaltet wurde, um die Verriegelungsschaltung 280 zu setzen. Das Ausgangssignal des Ausganges 236 der Verriegelungsschaltung 280 öffnet die Torschaltung 204, so daß die Operanden der Sammelleitung 251 zugeführt werden. Gleichzeitig schaltet die Erregung der Leitung 236 das ODER-Glied 253 auf Durchlaß, um hierdurch die 0-Anforderungsleitung 102 zu erregen. Die mit 281 bezeichnete
- 66
Verzögerungsschaltung Dl, welche typisch für jede Verriegelung in Fig. 4 ist, ist in ihrer Verzögerung so gewählt, daß die O-Anforderungsleitung 102 jeweils 8 ns lang erregt bleibt, bevor das Ausgangssignal der Verzögerungsschaltung 281 die Verriegelung zurückstellt. Dacirch wird sichergestellt, daß das Anforderungssignal auf der Leitung 102, was für alle Gruppen typisch ist, voll vorhanden ist, wenn der Maschinentaktimpuls über die Leitung 100 von Fig. 2 dem betreffenden UND-Glied zugeht. Da für dieses Beispiel angenommen ist, daß PO die tatsächliche Priorität hat, wird die in Fig. 2 dargestellte Leitung 125 erregt. Aus Fig. 4 ist zu ersehen, daß dadurch die Leitung 125 bewirkt, daß eine auf der Sammelleitung 13 vorhandene Anforderung 199 der Ausführungseinheit zugeleitet wird und daß die Torschaltung 271 die Operanden von der ebenfalls in den Fig. 3 und 4 dargestellten Sammelleitung 251 auf die Operandensammelleitung 279 gibt, welch letztere unmittelbar zu der Ausführungseinheit führt. Aus Fig. 6 ist zu ersehen, daß die Anforderungsleitung 199 der Anforderungssammelleitung 13, welche jeweils aus Fig. 5 bzw. aus Fig. 1 ersichtlich ist, die ODER-Torschaltung 504 erregt, welche ihrerseits wiederum die Leitung 506 zum binären OP-Dekodierer erregt. Da die Zeiteinteilung nach Maschinentaktimpulsen mit einer angenommenen Dauer von 8 ns erfolgt, sollte die Zeiteinteilung des Systems nach den allgemein bekannten
- 67 0-09842/1670
nötigen Zuschlägen für mögliche Verzögerungen synchronisiert sein. Somit laufen die torgesteuerten Operanden über die Operandensammelleitung 279, von welcher der OP-Kodeteil über die torgesteuerte Sammelleitung 501 zum OP-Dekodierer geleitet wird. Der Rest der Operanden, nämlich die Kennzeichnungs- und die Datenoperanden laufen weiter über die Sammelleitung 279 zu den einzelnen Ausführungsgeräten. Der OP-Dekodierer 503 dekodiert die durch den OP-Kode
* angegebene Operation und gibt auf eine zu dem betreffenden, jeweils angegebenen Ausführungsgerät führende Leitung ein Signal, welches jeweils gleichzeitig mit den Kennzeichen und den Operanden von der Sammelleitung 279 ankommt. Es ist bekannt, daß bei einer Ausführungseinheit, die über einen Kanal erreicht wird, deren Torschaltung über weite Übertragungsstrecken hinweg offengehalten wird (pipelined execution unit), ein neuer Befehl nicht unbedingt bei jedem neuen Zyklus gestartet werden kann. So kann beispiels-
h weise, wie dies auch in dem oben angegebenen Artikel von S.P. Anderson usw. beschrieben ist, ein Additionsbefehl vier Maschinenperioden beanspruchen, wobei alle zwei Maschinenperioden jeweils ein neuer Additionsbefehl eingeleitet wird. Die Situation ist bei anderen Geräten ähnlich, der Unterschied liegt in der Anzahl von Perioden, welche zur Ausführung anderer Punktionen erforderlich sind, und der Anzahl von Perioden, nach welchen jeweils wiederum
- 68 -009842/1670
eine neue Instruktion ausgelöst werden kann. Die Folge ist, daß das gerade addressierte Ausführungsgerät belegt sein kann. In diesem Fall nimmt es die Bedienungsanforderung nicht an. Ist das Ausführungsgerät nicht belegt, so nimmt es die Anforderung an. Als Beispiel wird angenommen, daß der OP-Kode, die in Frage kommende Anforderung für PO, eine Gleitkommaaddition ist. Sowohl Operanden als auch Kennzeichen werden den Ausführungsgeräten 519» 521 ... 531 zugeleitet. Gleichzeitig kann der Kennzeichenteil durch allgemein bekannte Torschaltungen über eine Sammelleitung 600 dem Kennzeichendekodierer 5I6 zugeleitet werden. Da es sich um einen Befehl zur Gleitkommaaddition handelt, leitet die vom OP-Dekodierer 503 wegführende Leitung 505 die Operanden und Kennzeichen der Gleitkommaaddiereinheit 519 zu. Wenn diese Einheit einen neuen Befehl annehmen kann, d.h. wenn sie sich nicht in den ersten beiden Zyklen der Ausführung eines vorhergegangenen Additionsbefehles befindet, so nimmt sie die Operanden an und gibt über die Leitung 565 ein Signal ab. Das Kennzeichen kann ebenfalls angenommen werden und mit fortschreitender Ausführung den über weite Strecken offengehaltenen, torgesteuerten Kanal (Pipeline) innerhalb eines Ausführungsgerätes entlanglaufen, um am Ende der Ausführung zur Verfügung zu stehen und hierdurch denjenigen virtuellen. Prozessor anzugeben, an welchen die Ergebnisse der Ausführung zu senden sind. Das auf der Leitung 565 gegebene
- 69 -
0 09842/1670
Signal kann durch logische Schaltungen bekannter Art erzeugt werden. Die Leitung 565 sowie die Annahmeleitungen aller Ausführungsgeräte sind an eine ODER-Torschaltung angeschlossen und, da diese Leitung erregt ist, erregt sie ihrerseits die Leitung 575, um den Kennzeichendekodierer zwecks Bezeichnung desjenigen Prozessors einzuschalten, der die Bedienung anforderte. Daher ermöglicht die Leitung 575 die Abgabe eines Signales, in diesem Falle über die als Annahmeleitung dienende Leitung 557, an den virtuellen Prozessor O. Mit Bezug auf Fig. 5 ist ersichtlich, daß die Leitung 557 das Annahmeflipflop 229 setzt und hierdurch das Anforderungsflipflop 223 zurückstellt, um den virtuellen Prozessor zur Abgabe der nächsten Anforderung vorzubereiten. Die Stellung des Annahmeflipflops 229 gestattet der Leitung 227t dieses Flipflop zurückzustellen. In der Rückstelleitung muß eine hinreichend große Verzögerung D2 vorhanden sein, um auf der Leitgung 227 einen Impuls zu bilden, der breit genug ist, um das Anforderungsflipflop 223 zurückzustellen. Wenn dieses Flipflop durch eine Annahme nicht zurückgestellt wird, so dient das Signal auf seiner Ausgangsleitung 219 dazu, die Folgeschaltung daran zu hindern, einen weiteren Befehl abzugeben.
Wenn jedoch das betreffende Ausführungsgerät, in diesem Fall eine Gleitkommaadditionseinheit, belegt ist, werden die in Fig. 6 dargestellten Annahmeleitungen 565 ...
- 70 009842/1870
\λ ■ ■
nicht erregt. Demzufolge wird auch der Kennzeichendekodierer 516 nicht eingeschaltet und wird das Annahmeflipflop des die Bedienung anfordernden virtuellen Prozessors nicht gesetzt, um das Anforderungsflipflop zurückzustellen. Die Anforderung in dem betreffenden virtuellen Prozessor, in diesem Falle PO, bleibt daher für den nächsten Zeitabschnitt ausstehend, in welchem der Prozessor innerhalb seiner Gruppe geprüft wird» .
Wie bereits erwähnt, erfordern bestimmte Operationen, wie.z.B. Divisionen, zu ihrer vollständigen Ausführung zeitlich mehr als einen Umlauf in der Gruppe. Daher dienen die Leitungen 569 und 567 von den Divisionsgeräten aus Fig. 6 als Einschaltleitungen für die ODER-Torschaltung 576, welche bei Einleitung einer Division die Leitung 575 dazu veranlaßt, zusammen mit dem Annahmesignal an den die Bedienung anfordernden virtuellen Prozessor ein Sperrsignal abzugeben. Wenn z.B.' PO eine Division angefordert hatte, dann hat die Leitung 557 ihre normale Annahme an den virtuellen Prozessor PO gesendet, jedoch gibt auch gleichzeitig die Leitung 564 ein zweites Eingangssignal über die Leitung 577 an die UND-Torschaltung 579, um dem Prozessor PO über die Leitung 580 ein Sperrsignal zuzusenden. Aus Fig. 5 ist ersichtlich, daß über die Leitung das Sperrflipflop 231 gesetzt wird, um die Folgeschaltung
- 71-009842/167Q
so lange daran zu hindern, einen neuen Befehl abzugeben, bis der Divisionsvorgang beendet ist. Aus Fig. 6 ist zu entnehmen, daß einen Zyklus, bevor das Divisionsgerät sein Ergebnis hervorbringt, über die Rückstell-Sperr-Sammelleitung 590 ein Signal gesendet wird. Die Rückstell-Sperr-Sammelleitung 590 umfaßt die Leitungen 586, 587 und 588, von denen je eine für einen virtuellen Prozessor vorgesehen ist. Die betreffende Rückstellsperrleitung stellt daher jeweils das Sperrflipflop des betreffenden Prozessors zurück, z.B. Leitung 586 in Fig. 5, um hierdurch von der Leitung 233 das Signal wegzunehmen und damit die Folgeschaltung aus ihrem abgeschalteten Zustand wieder in ihren wirksamen Zustand zu setzen.Die Leitungen der in Fig. 6 dargestellten Rückstell-Sammelleitung können in üblicher Weise hergestellt werden. So kann z.B. ein Signal aus der vorletzten Stufe der Divisionsgeräte entnommen werden. Da sowohl die Operanden als auch das Kennzeichen den betreffenden Funktionseinheiten zugeführt werden, können die betreffenden Divisions-Funktionseinheiten einen binär-zu-1-aus-N-Dekodierer zum Dekodieren der Kennzeichen enthalten, die zur Erregung der betreffenden Sperrleitung der Sammelleitung 590 dienen, wie dies in ähnlicher Weise für den Kennzeichendekodierer 518 und die Annahmesammelieitung beschrieben wurde.
Wenn Ergebnisse^ zur Verfügung stehen, werden diese
009842/"i670
zusammen mit dem Kennzeichen von der betreffenden Ausführungseinheit über die Sammelleitung 533 abgegeben. Die Ergebnisse werden Über die Ergebnissammelleitung geleitet, während die Kennzeichen torgesteuert dem Kennzeichendekodierer 537 zugeführt werden„ Der Ausgang des Kennzeichendekodierers 537 entspricht der Erregung eines bestimmten Kennzeichens, welches besagt," daß die Ergebnisse auf der Ergebnissammelleitung 5^7 für den angegebenen Prozessor gelten. Dies ist genauer aus Fig. ersichtlich. Die Ergebnisse auf der Ergebnissammelleitung 5^7 können an einem Register eines jeden virtuellen Prozessors zur Verfügung stehen, werden aber jeweils nur dem Prozessor zugeführt, dessen Kennzeichen vorliegto Im vorliegenden Beispiel wurde angenommen, daß der Prozessor PO der in Präge kommende Prozessor ist, so daß die Leitung die Ergebnisse in das Register dieses Prozessors PO eingibt. Die vorstehende Beschreibung zeigt den Weg, welchen ein einzelner Befehl nimmt. Jede Anforderung wird unter Steuerung der in den Pig. 1 und 2 dargestellten Prioritätssteue^schaltung 11 in der vorstehend beschriebenen Weise der Ausführungseinheit zugeführt.
Die Erfindung wurde vorstehend anhand einer in den
Zeichnungen dargestellten Ausführungsform als Beispiel
- 73 -009842/1670
beschrieben und dem Fachmann sind im Rahmen der Erfindung selbstverständlich Änderungen einzelner Systemteile und Systemkombinationen möglich.
- 74 009842/1670

Claims (10)

  1. Patentansprüche
    (Iv Datenverarbeitungssystem zur Verarbeitung eines
    x^y . ■ · ■ .
    Stromes mehrfacher Operanden, gekennzeichnet riurch eine Ausführungseinheit (1), ferner durch eine Vielzahl von Gruppen (3>, 5, 7, 9) mit jeweils bis zu."n" virtuellen Prozessoren (PO bis P31) und durch eine Prioritätsr steuerschaltung (11), aufgrund welch letzterer jeder der virtuellen Prozessoren in der Lage ist, die Ausführungseinheit zeitmultiplex zu betreiben. .·.-.-·
  2. 2. System nach Anspruch 1, dadurch gekennzeichnet, daß die Ausführungseinheit (1) mit einem Kanal verbunden ist, der eine Torschaltung aufweist, die in der Lage ist, den Kanal für lange Übertragungsabschnitte geöffnet zu halten, (pipelined execution unit)
  3. 3. System nach Anspruch 1, dadurch gekennzeichnet, daß die Prioritätssteuerschaltung Steuermittel für den periodischen Prioritätsumlauf unter den genannten
    Gruppen (3, 5* 9) und weitere Steuermittel aufweist, welch letztere die Wirksamkeit der erstgenannten Steuermittel aufheben und die Priorität jeweils einer bestimmten der genannten Gruppen geben können.
    - 75 009842/1670
  4. 4. System nach Anspruch 2, dadurch gekennzeichnet, daß die genannte Ausführungseinheit (1) eine Vielzahl von abgestuften, von den genannten Gruppen (3> 5> 79) Operandeninformationen empfangende Ausführungsgeräte, ferner mit diesen Ausführungsgeräten zusammenwirkende Mittel, welche einem jeweils anfordernden virtuellen Prozessor jeweils anzeigen, ob seine Anforderung angenommen wurde, und Mittel zur Rückübertragung der Ergebnj sse der Ausführung zu dem genannten anfordernden virtuellen Prozessor aufweist.
  5. 5. System nach Anspruch 4, dadurch gekennzeichnet, daß eine Anordnung von Ausführungsgeräten Operanden mit einer bestimmten Geschwindigkeit bearbeitet und mindestens ein weiteres Ausführungsgerät Operanden mit einer kleineren Geschwindigkeit als der erstgenannten Geschwindigkeit bearbeitet, wobei das bzw. die genannten weiteren Ausführungsgeräte jeweils Mittel aufweisen, welche auf die Annahme einer Anforderung durch einen anfordernden Prozessor in der Weise ansprechen, daß dieser anfordernde Prozessor jeweils so lange nicht für eine neue Anforderung verfügbar ist, bis daß das genannte annehmende Gerät die genannte angenommene Anforderung im wesentlichen vollständig verarbeitet hat.
    0098A2/1670
  6. 6. Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden, gekennzeichnet durch eine Ausführungseinheit (1), ferner durch eine Vielzahl von Gruppen 03/5, 1* 9) virtueller Prozessoren (PO bis P^l), von welchen jede Gruppe Mittel zur Abgabe einer Bedienungsanforderung während gegebener Zeitperioden enthält, und durch eine Prioritätssteuerschaltung (11) zur Auswahl einer Bedienungsanforderung von einer der genannten Gruppen zwecks Abgabe dieser Bedienungsanforderung an die genannte Äusführungseinheit.
  7. 7· System nach Anspruch 6, dadurch gekennzeichnet, daß jede der genannten Gruppen (3* 5* 7> 9) folgende Teile aufweist: eine Anordnung virtueller Prozessoren (PO bis P^l) von welchen jeder von einem Speichersystem Operanden · empfängt und die Fähigkeit besitzt, periodisch Operanden zur Bearbeitung brauchbar zu machen, ferner in jedem Prozessor eine Bedienungsanforderungsschaltung zur Anzeige, ob Operanden zur Bearbeitung bereit sind, weiter Prüfmittel zur periodischen überprüfung jeder Bedienungsanforderung, und endlich Steuermittel, welche jeweils beim Prüfen einer aktiven Bedienungsanforderungsschaltung ansprechen und hierbei die genannte Anzeige der genannten Prioritätssteuerschaltung mitteilen.
    - 77 -
    00SS42/1870
    fs
  8. 8. System nach Anspruch 7* gekennzeichnet durch
    Mittel, welche jeweils die genannte ausgewählte Bedienungsanforderung und ihre zugehörigen Operanden der genannten Ausführungseinheit (1) zuführen.
  9. 9· System nach Anspruch 6, dadurch gekennzeichnet,
    daß die genannte Prioritätssteuerschaltung zyklisch arbeitende Mittel zum Herumreichen der Priorität unter den
    genannten Gruppen nach Art eines rotierenden Systems und Logik- und Speichermittel zur Übersteuerung der genannten zyklisch arbeitenden Mittel zwecks. Übertragung der Priorität auf eine bestimmte der genannten Gruppen aufweist.
  10. 10. Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden, gekennzeichnet durch folgende Kombinationsmerkmale:
    a) eine Übertragungseinheit (1)(pipelined execution unit) mit einem mit ihr verbundenen Kanal, der
    eine Torschaltung aufweist, welche den Kanal für lange Übertragungsabschnitte geöffnet hält,
    b) Eine Vielzahl von Gruppen (3, 5, 7, 9) mit jeweils bis zu "n" virtuellen Prozessoren (PO bis
    ORIGINAL INSPECTED
    009842/1670
    «■■■■/.
    c) Mit jeder dieser Gruppen jeweils zusammenwirkende Übertragungsmittel zur Übertragung von Operanden und Resultaten von den virtuellen Prozessoren zu einer Ausführungseinheit (1),
    d) Eine jeder der genannten Gruppen jeweils zugeordnete Schaltung, welche der Ausführungseinheit jeweils eine Bed!enungsanforderung anzeigt,
    e) Eine jeder der genannten Gruppen jeweils zugeordnete Ringzählerschaltung zur Anzeige jeweils eines bestimmten Prozessors innerhalb der betreffenden Gruppe als Kandidat, welcher der Ausführungseinheit die genannte angezeigte Bedienungsanforderung und ihre Operanden zuzuführen hat,
    f) Einen mit einer Torschaltung zusammenwirkenden Prioritätsringzähler zur Bestimmung der Gruppenpriorität während einer gegebenen Zeitperiode, wobei Wahleinrichtungen jeweils diejenige Gruppe aus den genannten Gruppen auswählen, welche während einer bestimmten Zeitperiode die höchste Priorität
    - 79 - ■
    009842/1-670
    und eine ausstehende Bedienungsanforderung aufweist,
    g) Ein Register, welches einer bestimmten Gruppe jeweils anzeigt, daß sie ungeachtet der durch den Prioritätsringzähler gegebenen Priorität Vorrang hat,
    * h) Eine auf vom Prioritätsringzähler, ferner auf jeweils von der eine Bedienungsanforderung anzeigenden Schaltung und auf von dem genannten Register abgegebene Signale ansprechende logische Schaltung, welche ihrerseits Signale zur Übersteuerung der von dem Prioritätsringzähler gegebenen Priorität und zur Übertragung der Priorität auf die genannte bestimmte Gruppe erzeugt und
    i) Eine Schaltung zur Übertragung der sich durch die genannte Bedienungsanforderung ergebenden Resultate jeweils zurück zu dem genannten bestimmten Prozessor derjenigen Gruppe, welche Priorität hat.
    - 80 -
    009842/1670
    L e e r s e i J e
DE2015971A 1969-04-03 1970-04-03 Datenverarbeitungsanlage mit einer Anzahl von zeitmultiplex von einem zentralen Rechenwerk bedienten virtuellen Prozessoren Expired DE2015971C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US81302469A 1969-04-03 1969-04-03

Publications (3)

Publication Number Publication Date
DE2015971A1 true DE2015971A1 (de) 1970-10-15
DE2015971B2 DE2015971B2 (de) 1978-01-19
DE2015971C3 DE2015971C3 (de) 1978-09-28

Family

ID=25211248

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2015971A Expired DE2015971C3 (de) 1969-04-03 1970-04-03 Datenverarbeitungsanlage mit einer Anzahl von zeitmultiplex von einem zentralen Rechenwerk bedienten virtuellen Prozessoren

Country Status (5)

Country Link
US (1) US3611307A (de)
JP (1) JPS511108B1 (de)
DE (1) DE2015971C3 (de)
FR (1) FR2042736A5 (de)
GB (1) GB1241403A (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2224537A1 (de) * 1971-08-31 1973-03-08 Ibm Einrichtung und verfahren zur instruktionsselektion
DE3501594A1 (de) * 1985-01-18 1986-07-24 Planatolwerk Willy Hesselmann Chemische- und Maschinenfabrik für Klebetechnik GmbH & Co KG, 8200 Rosenheim Schmelzklebstoff zum klebebinden von papierblocks und ableimen fadengehefteter buecher

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
US3815095A (en) * 1972-08-29 1974-06-04 Texas Instruments Inc General-purpose array processor
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US3979728A (en) * 1973-04-13 1976-09-07 International Computers Limited Array processors
US3825902A (en) * 1973-04-30 1974-07-23 Ibm Interlevel communication in multilevel priority interrupt system
AT335202B (de) * 1973-08-13 1977-02-25 Ibm Oesterreich Datenverarbeitungsanlage zur parallelen ausfuhrung von verarbeitungsoperationen
AU501600B2 (en) * 1973-11-30 1979-06-28 Compagnie Internationale Pour L'informatique Cii Multiprogramming computer system
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US3909798A (en) * 1974-01-25 1975-09-30 Raytheon Co Virtual addressing method and apparatus
US3921148A (en) * 1974-03-06 1975-11-18 Ontel Corp Business machine communication system and data display
IT1100916B (it) * 1978-11-06 1985-09-28 Honeywell Inf Systems Apparato per gestione di richieste di trasferimento dati in sistemi di elaborazione dati
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
DE2936801C2 (de) * 1979-09-12 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Steuereinrichtung zur Ausführung von Instruktionen
US4446514A (en) * 1980-12-17 1984-05-01 Texas Instruments Incorporated Multiple register digital processor system with shared and independent input and output interface
JPS57105879A (en) * 1980-12-23 1982-07-01 Hitachi Ltd Control system for storage device
US4554626A (en) * 1981-05-22 1985-11-19 Data General Corporation Digital data processing system
GB2167583B (en) * 1984-11-23 1988-11-02 Nat Res Dev Apparatus and methods for processing an array of items of data
US5129087A (en) * 1988-02-03 1992-07-07 International Business Machines, Corp. Computer system and a method of monitoring transient data structures in a computer system
GB8817911D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
AU630299B2 (en) * 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
US5758157A (en) * 1992-12-31 1998-05-26 International Business Machines Corporation Method and system for providing service processor capability in a data processing by transmitting service processor requests between processing complexes
US6567837B1 (en) * 1997-01-29 2003-05-20 Iq Systems Object oriented processor arrays
US5987587A (en) * 1997-06-06 1999-11-16 International Business Machines Corporation Single chip multiprocessor with shared execution units
US8681973B2 (en) * 2010-09-15 2014-03-25 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1218761B (de) * 1963-07-19 1966-06-08 International Business Machines Corporation, Armonk, N. Y. (V. St. A.) Datenspeidbereinrichtung
US3346851A (en) * 1964-07-08 1967-10-10 Control Data Corp Simultaneous multiprocessing computer system
US3312954A (en) * 1965-12-08 1967-04-04 Gen Precision Inc Modular computer building block
US3421150A (en) * 1966-08-26 1969-01-07 Sperry Rand Corp Multiprocessor interrupt directory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2224537A1 (de) * 1971-08-31 1973-03-08 Ibm Einrichtung und verfahren zur instruktionsselektion
DE3501594A1 (de) * 1985-01-18 1986-07-24 Planatolwerk Willy Hesselmann Chemische- und Maschinenfabrik für Klebetechnik GmbH & Co KG, 8200 Rosenheim Schmelzklebstoff zum klebebinden von papierblocks und ableimen fadengehefteter buecher

Also Published As

Publication number Publication date
DE2015971B2 (de) 1978-01-19
US3611307A (en) 1971-10-05
GB1241403A (en) 1971-08-04
DE2015971C3 (de) 1978-09-28
FR2042736A5 (de) 1971-02-12
JPS511108B1 (de) 1976-01-13

Similar Documents

Publication Publication Date Title
DE2015971A1 (de) Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden
EP0010194B1 (de) Wartungsschnittstelleneinrichtung für eine datenverarbeitende Anlage mit einer zentralen Verarbeitungseinheit und mit einem Dienstprozessor und Verfahren zu ihrem Betrieb
DE2162806C2 (de) Speichersteuereinheit zur vereinfachter Pufferung von Anforderungen der Ein- Ausgabekanäle
DE3300261C2 (de)
DE3300260C2 (de)
DE2714805C2 (de)
DE3638572C2 (de)
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE3789490T2 (de) Steuerungssystem für ein Vektorprozessor.
DE3314917A1 (de) Multimicroprozessor-system
DE1549437A1 (de) Datenverarbeitendes System aus mehreren miteinander verbundenen Datenverarbeitungsanlagen
DE2063195C2 (de) Verfahren und Einrichtung zur Operationssteuerung einer Anzahl von externen Datenspeichern
EP0134831A1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE1499206B2 (de) Rechenanlage
DE2210426C2 (de) Verfahren zur vorranggesteuerten Auswahl einer von mehreren Funktions einheiten zur Anschaltung an eine ihnen gemeinsam zugeordnete Einrichtung in Datenverarbeitungsanlagen und Schaltung zur Durchführung des Verfahrens
DE1805992C3 (de) Einrichtung zur Adressierung von Zwischenspeichern beim Sortieren/Mischen von vorsortierten Datenfolgen
DE1524181B2 (de) Auswahlvorrichtung fuer ein und ausgabegeraete einer daten verarbeitungsanlage
DE3048414A1 (de) "schaltungsanordnung fuer eine datenverarbeitungsanlage"
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
DE2647367A1 (de) Redundante prozessteueranordnung
DE2500320C2 (de)
DE3149678C2 (de) Anordnung zur Zwischenspeicherung von zwischen zwei Funktionseinheiten in beiden Richtungen zu übertragenden Informationen in einem Pufferspeicher
DE1916377B2 (de) Verfahren und Anordnung zur Verschiebung von Datenfeldern
EP0012794B1 (de) Verfahren und Einrichtung für eine elektronische Datenverarbeitungsanlage zur Prüfung der aus einer Instruktion abgeleiteten Steuersignale
DE2007041A1 (de) Automatisch strukturierbares Datenverarbeitungssystem

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee