DE3248215C2 - - Google Patents

Info

Publication number
DE3248215C2
DE3248215C2 DE3248215A DE3248215A DE3248215C2 DE 3248215 C2 DE3248215 C2 DE 3248215C2 DE 3248215 A DE3248215 A DE 3248215A DE 3248215 A DE3248215 A DE 3248215A DE 3248215 C2 DE3248215 C2 DE 3248215C2
Authority
DE
Germany
Prior art keywords
vector
register
command
line
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3248215A
Other languages
English (en)
Other versions
DE3248215A1 (de
Inventor
Shigeo Hachioji Jp Nagashima
Hitoshi Abe
Yasuhiko Hadano Jp Hatakeyama
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3248215A1 publication Critical patent/DE3248215A1/de
Application granted granted Critical
Publication of DE3248215C2 publication Critical patent/DE3248215C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

Die Erfindung betrifft eine Datenverarbeitungsanlage sowie ein Verfahren zur Verarbeitung von Vektordaten der im Oberbegriff des Patentanspruchs 1 (Anlage) bzw. des Anspruchs 15 (Verfahren) angegebenen Gattungen.
Aus der US-PS 41 28 880 ist eine Datenverarbeitungsanlage zur Durchführung von z. B. Großmatrixoperationen mit Vektorregistern und Verkettungsfunktionen bekannt, die mit einer hohen Operationsgeschwindigkeit ihrer miteinander verketteten Arithmetik-Logik-Einheiten (ALE′s) arbeitet und eine gesteigerte Übertragungskapazität der Operationsdaten besitzt. Bei dieser Anlage ergibt sich jedoch ein Verkettungs-Problem, das im folgenden anhand einer einfachen Vektoroperation erläutert wird.
FORTRAN-Satz
DO 10 I = 1, L
10 Y (I) = A (I) + B (I) C (I).
Dieser Prozeß wird durch Vektorbefehle wie folgt ausgedrückt:
1. Vektor laden
VR 0A
2. Vektor laden VR 1B
3. Vektor laden VR 2C
4. Vektor multiplizieren VR 3VR 1 VR 2
5. Vektor addieren VR 4VR 0 + VR 3
6. Vektor speichern VR 4Y,
wobei VRi ein i-tes Vektorregister ist.
Jeder Vektorbefehl führt die Operation und die Datenübertragung für L Elemente wiederholt aus.
Das Produkt der Vektoren B und C wird als Zwischenergebnis kurzzeitig in einem Vektorregister VR 3 gespeichert, und nur die Summe Y dieses Produkts und des Vektors A wird in einem Hauptspeicher gespeichert.
Durch das Speichern von Zwischenergebnissen einer Operation in Vektorregistern wird die Anzahl Datenübertragungsvorgänge zum und vom Hauptspeicher erheblich verringert. Infolgedessen ist durch Erhöhung der Geschwindigkeit der Lese/Schreib-Operationen der Vektorregister die Datenübertragungs­ kapazität auch dann sichergestellt, wenn die Zugriffs­ kapazität zum Hauptspeicher relativ gering ist.
Im obigen Beispiel wird aus dem Vektorregister VR 3 auch der Operand für den nachfolgenden Vektoradditionsbefehl 5 ausgelesen. Wenn dieser Vektoradditionsbefehl 5 gestartet wird, nachdem sämtliche der L Resultate in das Vektorregister VR 3 durch den vierten Vektormultiplikationsbefehl eingeschrieben wurden, können mehrere ALE′s (z. B. ein Multiplizierglied und ein Addierglied) nicht parallel arbeiten, was die Verarbeitungszeit erhöht. Wartezeiten ergeben sich, wenn die Inhalte des Vektorregisters als Operand für den nachfolgenden Vektorbefehl ausgelesen werden, wobei dieses Vektorregister als Operationsergebnis für den vorhergehenden Vektorbefehl speichert oder eine abgerufene Vektorinformation ebenfalls zwischen dem Vektorbefehl 1 oder 2 und 4, zwischen den Vektorbefehlen 3 und 5 und zwischen den Vektorbefehlen 5 und 6 existiert. Die Wartezeit kann durch eine Verkettungsfunktion verkürzt werden. Bei einer bekannten Verkettungsoperation wird das Operationsergebnis des vorhergehenden Vektorbefehls z. B. in das Vektorregister VR 1 eingeschrieben und gleichzeitig zu der ALE als Operand für den nachfolgenden Vektorbefehl übertragen. Wenn die Verkettung möglich ist, wird ein Operationsergebnis für ein erstes Element des vorhergehenden Vektorbefehls ausgegeben, ohne daß man auf die Beendigung der Operation für das letzte Element des vorhergehenden Vektorbefehls wartet, und der nachfolgende Vektorbefehl wird gestartet. Auf diese Weise wird bei einer Vektorberechnung mit mehreren Termen eine Mehrzahl ALE′s parallel betrieben, so daß die Betriebskapazität erhöht und die Verarbeitung beschleunigt wird.
Bei der Verkettung wird jedoch das Auslesen des Vektorregisters für den folgenden Vektorbefehl synchron mit dem Einschreiben des Operationsresultatvektors durch den vorhergehenden Vektorbefehl oder des ersten abgerufenen Vektor­ elements in das Vektorregister gestartet. Wenn beim Start des Befehls geprüft wird, ob das Vektorregister, aus dem der Operand für den Befehl auszulesen ist, für das Einschreiben des vorhergehenden Befehls benutzt wird, und wenn die Entscheidung positiv ist, wird der Verkettungszustand geprüft. Wenn die Verkettung möglich ist, wird der Befehl gestartet, und wenn die Verkettung nicht möglich ist, wird der Start des Befehls verzögert, bis das Einschreiben aller Elemente durch den vorhergehenden Befehl beendet und das Vektorregister freigegeben ist. Der verkettbare Befehl wird gestartet, wenn das Operationsergebnis des vorhergehenden Vektors oder das erste Element der abgerufenen Vektorinformation am Vektorregister ankommt. Dies wird als Verkettungsintervall bezeichnet. Es wird nur dann entschieden, daß die Verkettung möglich ist, wenn zum Verkettungsintervall vorhergesagt wird, daß das Einschreiben sämtlicher folgenden Elemente des vorhergehenden Befehls vollständig synchron mit dem Auslesen des folgenden Befehls hinsichtlich aller folgenden Elemente ist.
Die Verkettung gemäß diesem Stand der Technik weist also die beiden folgenden Einschränkungen auf.
  • 1) Der Vektorbefehl, der nach dem Einschreiben des ersten Elements (d. h. nach dem Verkettungsintervall) als unverkettbar bestimmt wird, weil die Decodierzeit nach dem Verkettungsintervall liegt, und der Start des nachfolgenden Befehls werden verzögert, bis das Einschreiben des vorhergehenden Befehls beendet ist. Wenn z. B. bei dem obigen Beispiel eine Mehrzahl Vektorbefehle zwischen den Vektorbefehlen 4 und 5 vorhanden ist und damit die Decodierzeit des Befehls 5 nach dem Verkettungsintervall des Befehls 4 liegt, ist die Verkettung des Vektorregisters VR 3 nicht möglich, und der Start des Befehls 5 wird verzögert, bis die Ausführung des Vektorbefehls 4 beendet ist. Infolgedessen verlängert sich die Verarbeitungszeit.
  • 2) Viele der Operationen erfordern zwei Vektoroperanden, die zur Erzeugung eines Ergebnisses verknüpft werden müssen. Wenn die beiden Vektorregister, die die beiden auszulesenden Operanden speichern, sich in der Schreiboperation aufgrund des vorhergehenden Befehls befinden, muß sichergestellt sein, daß sämtliche Elemente dieser Operanden in diese Vektorregister gleichzeitig eingeschrieben werden, um diese Register zu verketten und ihre Inhalte als Eingang derselben ALE zuzuführen. Wenn bei dem obigen Beispiel zum Zeitpunkt der Decodierung des Vektorbefehls 5 vorhergesagt wird, daß die Ankunft der abgerufenen Vektorinformation aus dem Hauptspeicher zum Vektorregister VR 0 durch den Vektorbefehl VR 1 und die Ankunft des Produktvektors durch den Vektorbefehl 4 zum Vektorregister VR 3 für sämtliche Elemente synchronisiert sind, wird bestimmt, daß die Verkettung möglich ist, und der Befehl wird sofort gestartet. Somit ist es erforderlich, daß die konsekutiven Elemente beider Vektorinformationen konsekutiv in einer Zyklusstellung an den Vektorregistern ankommen und daß die Verkettungsintervalle der Vektorregister identisch sind.
Der Datenabruf aus dem Hauptspeicher erfolgt jedoch normalerweise intermittierend aufgrund des Gruppenkonflikts zwischen einer Mehrzahl von Speicherzugriffen und der Intervention der Kanaloperation. Infolgedessen ist für die abgerufene Vektorinformation die Nutzungsfrequenz oder Nutzungschance, die durch die Verkettung des vorhergehenden Befehls erzielt wurde, für den nachfolgenden Befehl gering. Tatsächlich tritt eine Koinzidenz der Verkettungsintervalle der beiden Vektorinformationen nur zufällig auf. Somit ist die Verkettungsmöglichkeit beim bekannten Vektorprozessor gering.
Bei der bekannten Datenverarbeitungsanlage nach der US-PS 41 28 880 tritt noch ein weiteres Problem auf. Bei einer gegenseitigen Beziehung zwischen mehreren Befehlen können einige der für parallele Ausführung ausgelegten ALE′s nicht genutzt werden, auch wenn sie frei sind. Die Befehle werden in der Speichersequenz im Hauptspeicher abgerufen. Wenn die Ausführung der Befehle nicht möglich ist, weil sämtliche ALE′s oder das Register belegt sind, wird die Befehlsausführung verzögert. Wenn ein Befehl, der auf einen nichtausführbaren Befehl folgt, ausgeführt werden könnte, wird dessen Decodierung zurückgestellt, so daß die entsprechenden ALE′s nicht genutzt werden.
Ferner umfassen bei dieser bekannten Anlage die Bedingungen zum Start der Befehlsausführung die Verfügbarkeit der erforderlichen Register und ALE′s sowie die Verfügbarkeit der erforderlichen Informationen. Infolgedessen ist die Steuerung zum Start der Ausführung kompliziert, und die Decodierung des nächsten Befehls wird verzögert, was die Befehlsausführungszeit verlängert und die Leistungsfähigkeit vermindert.
In der - nachveröffentlichten - EP-A-00 53 457 ist eine Datenverarbeitungsanlage der angegebenen Gattung beschrieben, bei welcher Vektorelemente parallel in entsprechende Vektorregister ein- und ausgelesen werden können, um die Operationsgeschwindigkeit zu vergrößern. Bei dieser Anlage kann mit einer nachfolgenden Rechenoperation, z. B. einer Multiplikation, schon begonnen werden, bevor die vorangehende Rechenoperation, z. B. eine Addition von Vektorelementen, abgeschlossen ist. Diese Art der Verkettung von zwei Operationen ist jedoch auf den Fall beschränkt, daß die Vektorelemente in aufeinanderfolgenden Taktperioden eingeschrieben oder ausgelesen werden.
Aufgabe der Erfindung ist es, eine Anlage und ein Verfahren zur Verarbeitung von Vektordaten der angegebenen Gattung anzugeben, bei welcher die Datenverarbeitung ohne größeren Aufwand mit höherer Geschwindigkeit abläuft.
Diese Aufgabe wird durch die kennzeichnenden Markmale des Patentanspruchs 1 (Anlage) bzw. des Patentanspruchs 15 (Verfahren) gelöst.
Die angestrebte Verarbeitungsgeschwindigkeit wird auch dann erreicht, wenn die Vektorelemente als Ergebnis der Ausführung eines vorangegangenen Befehls absatzweise in ein Vektorregister eingeschrieben werden, da mit der nachfolgenden Verarbeitungsoperation bereits begonnen werden kann, wenn das Einschreiben noch nicht abgeschlossen ist.
Zweckmäßige Ausgestaltungen der Erfindung, insbesondere Einrichtungen zur Feststellung der jeweiligen Betriebszustände, sind Gegenstand der Unteransprüche.
Anhand der Zeichnung wird die Erfindung beispielsweise näher erläutert. Es zeigt:
Fig. 1 den schematischen Aufbau einer Datenverarbeitungsanlage,
Fig. 2 Formate von Registern,
Fig. 3 ein Detail eines Befehlsleitwerks,
Fig. 4 ein Detail eines Befehlswarteregisters,
Fig. 5 ein Detail einer Betriebsmittel-Nutzungsprüfschaltung,
Fig. 6a ein Detail einer Register- Nutzungsprüfschaltung,
Fig. 6b einen Prüfzustand,
Fig. 7 ein Detail einer Registerkonflikt-Prüfschaltung,
Fig. 8 eine Modifikation des Befehlsleitwerks,
Fig. 9 ein detailliertes Blockschaltbild des Wählers b 394 von Fig. 8,
Fig. 10 die Konfiguration einer Vektorregistereinheit,
Fig. 11 ein Detail einer Vektorregister-Steuereinheit,
Fig. 12 ein Detail einer Befehlsstart-Steuerschaltung,
Fig. 13 ein Detail einer S-G-Umsetzerschaltung,
Fig. 14 ein Detail einer G-S-Umsetzerschaltung,
Fig. 15 ein Detail einer Vektorregister- Steuerschaltung,
Fig. 16 ein Detail einer Operandensteuerschaltung,
Fig. 17 ein Zeitdiagramm für den Betrieb einer Zeitsteuerschaltung,
Fig. 18 ein Detail einer Vektorregister-Dateneinheit,
Fig. 19 ein Zeitdiagramm für die Schaltung von Fig. 18,
Fig. 20 ein Detail einer Speicheranforderungseinheit und
Fig. 21 ein Detail einer Arithmetik-Logik-Einheit.
(1) Schematischer Aufbau
Nach Fig. 1 führt ein Speichersteuerwerk U 1 Operationen nach Maßgabe von Speicheranforderungen (Vektordatenabruf- oder -speicheranforderungen und Vektorbefehlsabrufanforderungen) von einer Befehlsabrufeinheit U 2 und Betriebsmittel darstellenden Speicheranforderungseinheiten U 10 und U 11 aus.
Die Befehlsabrufeinheit U 2 übermittelt die Befehlsabrufanforderung an das Speichersteuerwerk U 1 über eine Signalleitung l 1 und überträgt eine Befehlsadresse über eine Signalleitung l 2. Das Speichersteuerwerk U 1 spricht darauf an und ruft eine Mehrzahl Befehle, die durch die Befehlsadresse bezeichnet sind, ab und überträgt die abgerufenen Befehle über eine Signalleitung l 3 sowie ein die Gültigkeit des abgerufenen Befehls bezeichnendes Signal über eine Signalleitung l 4 zurück.
Die Befehlsabrufeinheit U 2 speichert die abgerufenen Befehle in einem Befehlspufferspeicher (nicht gezeigt) und überträgt die Befehle einzeln zu einem Befehlsleitwerk U 3. Der Befehl wird über eine Signalleitung l 6 übertragen, und ein Befehls- Gültigkeitssignal wird über eine Signalleitung l 5 übertragen. Die Befehlsabrufeinheit U 2 ruft die Befehle einzeln ab und übermittelt sie zum Befehlsleitwerk U 3, wenn nicht von dem Befehlsleitwerk U 3 über eine Signalleitung l 7 ein Befehlsübermittlungs-Stopp angefordert wird.
Das Befehlsleitwerk U 3 decodiert die Befehle und übermittelt je nach den Befehlen ein Startsignal oder ein anderes Signal zu den Speicheranforderungseinheiten U 10 oder U 11, einer Vektorregistereinheit U 4 oder einer Verarbeitungseinheit in Form einer Arithmetik-Logik-Einheit bzw. ALE U 20.
(2) Allgemeine Funktionsweise (i) Start der Befehlsausführung
Wenn das Befehlsleitwerk U 3 mit der Ausführung der Befehle beginnt, werden erforderliche Daten auf Signalleitungen l 11-l 14 und ein Startsignal auf eine Leitung l 10 gesetzt, so daß die Speicheranforderungseinheiten U 10 und U 11 sowie die Vektorregistereinheit U 4 oder die ALE′s U 20 und U 21 und die Vektorregistereinheit U 4 gestartet werden.
Eine Bedingung für die Befehlsausführung besteht darin, daß die erforderliche Speicheranforderungseinheit U 10 oder U 11 oder die ALE U 20 oder U 21 nicht besetzt ist und daß ein für den Befehl erforderliches Vektorregister VR in der Vektorregistereinheit U 4 verfügbar ist. Ein nichtbelegtes Vektorregister kann nicht verfügbar sein, und es können belegte Register verfügbar sein.
Ein der Startbedingung nicht entsprechender Befehl wird in einer Befehlswarteschlange gespeichert. Wenn ein anschließender Befehl der Startbedingung entspricht wird dieser decodierte Befehl vorher gestartet.
Die Signalleitung l 11 übermittelt einen Befehlscode, der eine Operationsart des auszuführenden Befehls, z. B. Addition, Multiplikation, Vektorabruf oder Vektorspeicherung, bezeichnet.
Die Signalleitung l 12 bezeichnet eine von dem Befehl zu benutzende Registernummer. Jeder Befehl kann bis zu drei Register bezeichnen. Bei dem Ausführungsbeispiel umfaßt die Vektorregistereinheit U 4 acht Vektorregister VR 0-VR 7, und die gleiche Anzahl Vektoradreßregister U 5 und Vektoradreß- Inkrementregister U 6 ist mit den Speicheranforderungseinheiten 0 und 1 verbunden. Die Vektorregister, die Vektoradreßregister bzw. die Vektoradreß-Inkrementregister sind mit 0-7 bzw. 8-15 bzw. 16-23 bezeichnet.
Die Signalleitung l 13 bezeichnet die Nummer der Speicheranforderungseinheit oder der ALE, die zu starten ist. Die Signalleitung l 13 umfaßt drei Leitungen, deren eine die Speicheranforderungseinheit bezeichnet, während die zweite die ALE und die dritte die Nummer der Speicheranforderungseinheit oder die Nummer der ALE, die vom Befehl zu benutzen ist, bezeichnet. Die Anzahl der Speicheranforderungseinheiten und der ALE′s ist jeweils zwei, so daß nur eine Leitung zur Bezeichnung der Nummer verwendet werden kann.
Die Signalleitung l 14 bezeichnet die Anzahl zu verarbeitende Vektorelemente.
Die Speicheranforderungseinheiten U 10 und U 11, die Vektorregistereinheit U 4 und die ALE′s U 20 und U 21 führen aufgrund des Startsignals auf Leitung l 10 folgende Operationen aus.
(ii) Abruf von Vektordaten aus dem Hauptspeicher
Wenn die Ausführung dieses Befehls durch den Befehlscode auf Leitung l 11 angegeben ist, steuert die Speicheranforderungseinheit U 10 eines der Vektoradreßregister U 5 und eines der Vektoradreß-Inkrementregister U 6 entsprechend der zweiten und der dritten Registernummer, die durch die Signalleitung l 12 bezeichnet ist, an und setzt in diesen die Vektoradresse und deren Inkrement. Die Speicheranforderungseinheit U 10 überträgt auf den Signalleitungen l 20, l 21 bzw. l 23 einen Lesebefehl, eine Vektoradresse und ein Adressengültigkeitssignal zum Speichersteuerwerk U 1. Das Speichersteuerwerk U 1 ruft eine Vektorelementinformation, die durch die Vektoradresse bezeichnet ist, aus einem Hauptspeicher (nicht gezeigt) ab und sendet die abgerufene Information FD und ein Datengültigkeitssignal über die Signalleitungen l 24 bzw. l 25 zurück zur Speicheranforderungseinheit U 10. Die Speicheranforderungseinheit U 10 sendet die Information und das Datengültigkeitssignal über Signalleitungen l 29 bzw. l 30 zur Vektorregistereinheit U 4. Diese speichert die von Leitung l 29 zugeführte Vektorelementinformation in einem Vektorregister mit einer ersten Registernummer, die durch die Signalleitung l 12 bezeichnet ist. Die Speicheranforderungseinheit U 10 aktualisiert die Vektoradresse nach Maßgabe des Vektoradreß- Inkrements und ruft entsprechend der aktualisierten Adresse die nächste Vektorelementinformation ab. Diese Operation wird entsprechend der Anzahl Vektorelemente, die durch die Signalleitung l 14 bezeichnet sind, wiederholt. Wenn die Speicheranforderungseinheit U 10 die Adresse des letzten Vektorelements zum Speichersteuerwerk U 1 übermittelt, sendet dieses ein letztes Vektordatensignal zu einer Leitung l 32. Wenn das Speichersteuerwerk U 1 das letzte Vektorelement übermittelt, übermittelt es das letzte Vektordatensignal zu einer Leitung l 33. Wenn die Speicheranforderungseinheit U 10 das Datengültigkeitssignal für das letzte Vektorelement übermittelt, übermittelt sie gleichzeitig das letzte Vektordatensignal zu einer Leitung l 26. Dieses Signal wird an das Befehlssteuerwerk U 3 übermittelt und bedeutet, daß die Speicheranforderungseinheit U 10 frei ist, und wird ferner zu der Vektorregistereinheit U 4 übermittelt zur Steuerung der Beendigung der Einschreiboperation der Vektorregister. Das Einschreibende der Vektorregister wird von der Vektorregistereinheit U 4 über die Signalleitung l 15 an das Befehlssteuerwerk U 3 übermittelt.
(iii) Vektordatenspeicherung im Hauptspeicher
Wenn ein Befehl zur Speicherung einer Vektorinformation im Hauptspeicher ausgeführt wird, werden die Vektoradresse und deren Inkrement wie im Fall von (ii) in die Speicheranforderungseinheit U 10 gesetzt.
Die Vektorregistereinheit U 4 liest die Vektordaten einzeln aus den Vektorregistern mit den durch die Signalleitung l 12 bezeichneten Nummern aus und überträgt sie zur Signalleitung l 27. Ferner sendet sie das Datengültigkeitssignal über die Leitung l 28 zu der Speicheranforderungseinheit U 10. Diese fügt die Vektoradresse hinzu und sendet einen Einschreibbefehl, die Vektoradresse und die Vektorelementinformation sowie das Datengültigkeitssignal zu dem Speichersteuerwerk U 1 über die Signalleitungen l 20, l 21, l 22 bzw. l 23. Wenn das zu übertragende Vektordatenelement das letzte ist, sendet die Speicheranforderungseinheit U 10 außerdem das letzte Vektordatensignal zur Leitung l 31. Das Speichersteuerwerk U 1 steuert den Speichervorgang zum Hauptspeicher. Wenn eine erforderliche Anzahl Vektorelemente aus der Vektorregistereinheit U 4 übertragen ist, wird auf der Signalleitung l 31 das letzte Vektordatensignal zu der Speicheranforderungseinheit U 10 übermittelt, und diese leitet es über die Signalleitung l 26 zum Befehlssteuerwerk U 3 wie im Fall von (ii).
(iv) Vektoroperation
Wenn die ALE U 20 oder U 21 (es sei hier U 20 angenommen) und die Vektorregistereinheit U 4 gestartet werden, um einen Vektoroperationsbefehl auszuführen, arbeiten sie wie folgt. Es sei angenommen, daß die ALE eine Mehrzahl Operationsarten, die von verschiedenen Befehlen verlangt werden, ausführen kann.
Die Vektorregistereinheit U 4 liest eine erste Vektorelementinformation aus jedem der Vektorregister VR mit zwei durch die Signalleitung l 12 bezeichneten Registernummern aus und übermittelt sie über Signalleitungen l 41 und l 42 zu der ALE U 20, und ferner übermittelt sie das Datengültigkeitssignal auf einer Signalleitung l 43. Die ALE U 20 verarbeitet die beiden Vektorelementinformationen nach Maßgabe eines OP- bzw. Operationscodes auf Leitung l 11 und leitet ein Operationsresultat und das Datengültigkeitssignal über die Signalleitungen l 45 bzw. l 46 zu der Vektorregistereinheit U 4 zurück. Diese speichert das Resultat in dem Vektorregister VR mit der durch die Signalleitung l 12 bezeichneten Nummer. Diese Operation wird für die anderen Vektorelementinformationen wiederholt. Für das letzte Vektorelement wird das letzte Vektordatensignal von der Vektorregistereinheit U 4 zu der ALE U 20 über die Signalleitung l 40 übermittelt und über die Signalleitung l 44 synchron mit dem letzten Resultat von der ALE U 20 zurück zu der Vektorregistereinheit U 4 übermittelt. Dieses Signal wird ferner dem Befehlssteuerwerk U 3 zugeleitet und bedeutet, daß die ALE frei und das Vektorregister leer ist.
Die Vektorelementinformationen werden aufgrund eines Maschinentakts übertragen. Wenn ein Paar von zu übertragenden Vektorelementinformationen nicht in den Vektorregistern VR vorhanden ist, sperrt die Vektorregistereinheit U 4 die Übertragung, bis sie verfügbar sind. Infolgedessen werden das Abrufen und Einschreiben der Vektorelemente intermittierend durchgeführt.
Die Speicheranforderungseinheit U 11 und die ALE U 21 sind ebenso aufgebaut wie die Speicheranforderungseinheit U 10 und die ALE U 20, und Signalleitungen mit einfach gestrichenen Bezugszeichen in Fig. 1 entsprechen den ungestrichenen Bezugszeichen.
(3) Register
Bevor Operationen im einzelnen beschrieben werden, werden Formate erforderlicher Register erläutert. Fig. 2a zeigt ein Format eines Befehlsregisters, in das ein Befehl geladen ist. Ein OP-Feld bezeichnet einen OP-Code, um die Felder R1, R2 und R3 bezeichnen Registernummern. Der Befehl weist die Felder von Fig. 2a auf. Die durch R1-, R2- und R3-Felder bezeichneten Register sind das Vektorregister, das Vektoradreßregister und das Vektoradreß-Inkrementregister. Sie sind je nach der Befehlsart bezeichnet, was nachstehend gezeigt wird.
(i) Befehl zur Operation in der ALE (Additionsbefehl, Multiplikationsbefehl etc.)
R1: Nummer des Vektorregisters, in dem ein Operationsresultat- Vektor zu speichern ist
R2: Nummer des Vektorregisters, in dem eine zu verarbeitende Vektorinformation (Summand (zu addierende Zahl), Multiplikand etc.) gespeichert ist
R3: Nummer des Vektorregisters, in dem eine für die Operation erforderliche Vektorinformation (zweiter Summand, Multiplikator etc.) gespeichert ist.
Es sei angenommen, daß die Felder R1, R2 und R3 die verschiedenen Vektorregister bezeichnen.
Das Feld R3 kann in Abhängigkeit von dem Befehl (Übertragungsbefehl etc.) eventuell nicht benutzt werden.
(ii) Befehl zum Informationsabruf aus dem Hauptspeicher
R1: Nummer des Vektorregisters, in dem Information zu speichern ist
R2: Nummer des Vektoradreßregisters
R3: Nummer des Vektoradreß-Inkrementregisters
(iii) Befehl zur Informationsspeicherung im Hauptspeicher
R1: Nummer des Vektorregisters, in dem Information gespeichert ist
R2: Nummer des Vektoradreßregisters
R3: Nummer des Vektoradreß-Inkrementregisters
Fig. 2b zeigt ein Format von Registern, die mit der Steuerung der ALE′s U 20 und U 21 sowie der Speicheranforderungseinheiten U 10 und U 11 (die nachstehend als Betriebsmittel bezeichnet werden) zu tun haben, d. h., ein decodiertes Betriebsmittelregister (DS-Register), ein Warteschlange- Betriebsmittelregister (QS-Register), ein ausführbares Betriebsmittelregister (ES-Register) und ein Registereinheits- Betriebsmittelregister (RS-Register). Die Felder S, A und N bezeichnen die Benutzung der Speicheranforderungseinheit, die Benutzung der ALE und die Nummer der Speicheranforderungseinheit bzw. der ALE. Das DS- und das QS-Register haben kein N-Feld.
Fig. 2c zeigt ein Format von Registern für die Steuerung der Vektorregister, d. h. ein decodiertes Register-Register (DG-Register), ein Warteschlangenregister-Register (QG-Register), ein Speicheranforderungsregister-Register (MG-Register) und ein Registereinheitsregister-Register (RG-Register). Ein Vi-Feld (i = 1-3) bezeichnet die An- oder Abwesenheit von gültigen Daten in Wi- und GNi-Feldern, und ein Wi-Feld gibt an, ob ein durch das GNi-Feld bezeichnetes Vektorregister zum Einschreiben oder Auslesen benutzt wird. Es ist "1" zum Einschreiben und "0" zum Auslesen. Ein Ri-Feld des Befehls ist in das GNi-Feld geladen. Das MG-Register weist nur das GN2- und das GN3-Feld auf.
Fig. 2d zeigt ein Format eines Betriebsmittelstatuswort- Registers (RSSW-Registers), das einen Betriebsmittelstatus steuert. Die Felder S0 und S1 bedeuten, ob die Speicheranforderungseinheiten U 10 und U 11 besetzt sind bzw. nicht besetzt sind, und die Felder A0 und A1 bedeuten, ob die ALE′s besetzt bzw. nicht besetzt sind ("1" für besetzt).
Fig. 2e zeigt ein Format eines Registerstatuswort-Registers (RGSW-Registers), das einen Vektorregisterstatus steuert. Die Felder W0-W7 bedeuten, ob die Vektorregister VR 0-VR 7 zum Einschreiben besetzt sind oder nicht, und die Felder R0-R7 bedeuten, ob die Vektorregister VR 0-VR 7 zum Auslesen besetzt sind oder nicht ("1" für besetzt).
(4) Einzelheiten der Befehlssteuerung
Nachstehend werden Einzelheiten der Einheiten von Fig. 1 erläutert. Das Speichersteuerwerk U 1 (Fig. 1) und die Befehlsabrufeinheit U 2 (Fig. 1) sprechen auf die Zugriffsanforderungen von den Speicheranforderungseinheiten U 10 und U 11 an, und wenn die Zugriffsanforderungen gleichzeitig von diesen Einheiten ausgegeben werden, wird eine davon bevorzugt akzeptiert und erhält Zugriff im Hauptspeicher. Diese Einheiten sind den konventionellen gleichartig und werden hier nicht erläutert. Takteingänge zu Flipflops und Registern sind weggelassen. Es wird angenommen, daß diejenigen Flipflops und Register, die keinen Steuersignaleingang aufweisen, Eingänge haben, die auf vorbestimmte zeitliche Steuerung eingestellt sind.
Gemäß Fig. 3 werden der von der Befehlsabrufeinheit U 2 abgerufene Vektorbefehl und das Befehlsgültigkeitssignal über die Leitungen l 6 bzw. l 5 übertragen. Der Befehl wird in das I-Register r 301 gesetzt, und das Befehlsgültigkeitssignal wird in ein Flipflop f 301 gesetzt. Das Befehlsgültigkeitssignal wird außerdem als Setzsignal für das I-Register r 301 genutzt. Wenn nicht das Befehlssteuerwerk U 3 eine Befehlsübertragungs-Stoppanforderung über die Leitung 17 übermittelt, sendet die Befehlsabrufeinheit U 2 die Befehle einzeln aus. Das Zeitintervall ist so gesteuert, daß unmittelbar nach der Übertragung des Befehls im I-Register r 301 in ein decodiertes Befehlsregister (DI-Register) r 302 der nächste Befehl empfangen wird. Der in das I-Register r 301 gesetzte Befehl wird auf vier Routen übertragen. Das OP-Feld wird zum DI-Register r 302 übertragen. Ein Ausgang des Flipflops f 301 steuert das Setzen im DI-Register r 302 und wird ferner über ein UND-Glied g 307 zu einem Flipflop f 302 übertragen. Das UND-Glied g 307 empfängt das Ausgangssignal des Flipflops f 301 sowie ein Ausgangssignal eines Register­ bezeichnungs-Ausnahmeerfassungsglieds b 316, das die R1-R3- Felder des in das I-Register r 301 gesetzten Vektorbefehls prüft und nur dann einen "1"-Ausgang erzeugt, wenn keine Registerbezeichnungsausnahme existiert. Infolgedessen wird das Befehlsgültigkeitssignal in das Flipflop f 302 gesetzt. Der Befehl im I-Register r 301 wird ferner zu einem Decodierer b 301 geleitet, der das gemäß dem OP-Code zu benutzende Betriebsmittel bestimmt, und das decodierte Ergebnis wird in ein decodiertes Betriebsmittelregister (DS-Register) r 303 gesetzt. Das DS-Register r 303 weist die S- und A-Felder gemäß Fig. 2b auf. Es hat kein N-Feld. Wenn das OP-Feld die Benutzung der Speicheranforderungseinheit U 10 oder U 11 festlegt, setzt der Decodierer b 301 "1" in das S-Feld, und wenn der Befehl die Verwendung der ALE U 20 oder U 21 erfordert, setzt er eine "1" in das A-Feld. Der Ausgang des UND-Glieds g 307 dient dazu, diese Daten des DS-Registers r 303 zu setzen. Der Befehl im I-Register r 301 wird ferner einem Decodierer b 303 zugeführt, der den OP-Code und die Inhalte der R1-, R2- und R3-Felder decodiert, und das decodierte Resultat wird in ein decodiertes Register (DG-Register) r 305 gesetzt. Gemäß Fig. 2c hat das DG-Register r 305 die Felder GNi (i = 1-3) zur Bezeichnung der Nummern der Vektorregister, die von dem in das I-Register r 301 gesetzten Befehl zu benutzen sind, sowie die Felder Wi (i = 1-3) zur Bezeichnung des Auslesens oder des Einschreibens der Register und die Felder Vi (i = 1-3) zur Bezeichnung der Gültigkeit dieser Felder. Der Decodierer b 303 decodiert den Befehl im I-Register r 301 zur Erzeugung der Feldinformation. Da der OP-Code des Befehls angibt, ob die R1-R3-Felder des Befehls für die Registerbezeichnung gültig sind, bestimmt der Decoder b 303 Vi nach Maßgabe des OP-Codes. Da der OP-Code auch angibt, ob die gültigen Registerfelder Ri zum Einschreiben verwendbar sind, kann der Decodierer b 303 die Bits Wi nach Maßgabe des OP-Codes bestimmen. Der Decodierer b 303 liefert die Inhalte der Felder Ri zu den GNi-Feldern. Auf diese Weise werden die Eingänge zum DS-Register r 303 bestimmt. Der Ausgang des UND-Glieds g 307 dient auch zur Steuerung des Setzens des DG-Registers r 305.
Wie aus der vorstehenden Beschreibung ersichtlich ist, sind die in das DS-Register r 303 und das DG-Register r 305 gesetzten decodierten Resultate sowie der in das DI-Register r 302 gesetzte OP-Code für denselben Befehl bestimmt. Nachstehend werden in einigen Fällen aus Gründen der Einfachheit die in diese Register gesetzten Daten jeweils als die Befehle oder zusammengefaßt als der Befehl im DI-Register r 302 bezeichnet. Wenn die Befehle in das DI-Register r 302, das DS-Register r 303 und das DG-Register r 305 gesetzt sind, wird der Startzustand des Betriebsmittels geprüft.
Ein Befehlswarteregister (QI-Register) q 301 umfaßt drei Register QIR0-QIR2, die die OP-Codes der Wartebefehle von dem DI-Register r 302 empfangen und speichern. Ein Betriebsmittel- Warteregister (QS-Register) q 302 umfaßt drei Register QSR0-QSR2, die Betriebsmittelanforderungen für die OP-Codes von dem DS-Register r 303 in den drei Registern QUR0-QIR2 empfangen und speichern, und ein Registerwarte-Register (QG-Register) q 303 umfaßt drei Register QGR0-QGR2, die Vektorregisteranforderungen für die OP-Codes in den Registern QIR0-QIR2 vom DG-Register r 305 empfangen und speichern. Somit sind drei Wartebefehle in den Registern q 301- q 303 gespeichert. Nachstehend werden zur Vereinfachung diese drei Register q 301-q 303 manchmal gemeinsam als Befehlswarteregister oder als Befehlswarteregister q 301 bezeichnet.
Der Startzustand des Betriebsmittels für den neu in das DI-Register r 302 gesetzten Befehl (wie oben erläutert) wird durch verschiedene Kriterien in Abhängigkeit davon bestimmt, ob ein Befehl bereits im Befehlswarteregister gespeichert wurde.
Es gibt folgende Fälle:
  • (a) Wenn im Befehlswarteregister noch kein Befehl gespeichert ist
  • (a-1) Wenn der Befehl im DI-Register r 302 sofort gestartet werden kann
  • (a-2) Wenn der Befehl im DI-Register r 302 nicht sofort gestartet werden kann und der Befehl im Befehlswarteregister gespeichert werden muß
  • (b) Wenn im Befehlswarteregister bereits ein Befehl gespeichert ist
  • (b-1) Wenn der bereits im Befehlswarteregister gespeicherte Befehl zuerst gestartet werden soll
  • (b-2) Wenn der Befehl im DI-Register r 302 vor dem Befehl im Befehlswarteregister zu starten ist.
Die Operationen für die jeweiligen Fälle werden nachstehend erläutert.
(a-1) Im Befehlswarteregister q 301 ist noch kein Befehl gespeichert, und der Befehl im DI-Register r 302 soll gestartet werden
Dies ist der Fall, wenn sowohl das Betriebsmittel (ALE oder Speicheranforderungseinheit) und das Vektorregister, die von dem Befehl im DI-Register r 302 benötigt werden, verfügbar sind.
Bei dem vorliegenden Ausführungsbeispiel ist jedes Betriebsmittel so ausgelegt, daß es zu einem Zeitpunkt nur für einen Befehl verfügbar ist. Ob also das Betriebsmittel verfügbar ist, wird dadurch bestimmt, ob es belegt ist oder nicht.
Der Nichtbelegtzustand des Betriebsmittels wird wie folgt festgestellt. Eine Betriebsmittel-Nutzungsprüfschaltung b 305 prüft die Zustände der durch das DS-Register r 303 bezeichneten benötigten Betriebsmittel und die Zustände der durch das RSSW-Register r 304 gesteuerten Betriebsmittel und sendet ein Signal, das den Nichtbelegtzustand der angeforderten Betriebsmittel bezeichnet, über eine Leitung l 310 und eine Nummer des nichtbelegten Betriebsmittels über eine Leitung l 309. Dies wird im einzelnen unter Bezugnehme auf Fig. 5 erläutert.
Ein Ausgang des S-Felds r 3031 des DS-Registers r 303 wird UND-Gliedern g 320 und g 321 zugeführt, denen Ausgänge des SO-Felds r 3041 und des S1-Felds r 3042 des RSSW-Registers r 304 durch Nichtglieder g 335 bzw. g 336 zugeführt werden. Infolgedessen sind die Ausgänge der UND-Glieder g 320 und g 321 "1", wenn die Speicherforderungseinheiten U 10 und U 11 angefordert werden und die Speicheranforderungseinheiten U 10 und U 11 nicht belegt sind. Die Ausgänge der UND-Glieder g 320 und g 321 werden einem ODER-Glied g 328 zugeführt. Infolgedessen ist ein Ausgang des ODER-Glieds g 332 "1", wenn die angeforderte Speicheranforderungseinheit U 10 oder U 11 nicht belegt ist. Die Ausgänge der UND-Glieder g 320 und g 321 werden ferner einem Codierer b 320 zugeführt, der eine Nummer einer verfügbaren Speicheranforderungseinheit erzeugt. Wenn also der Ausgang des UND-Glieds g 320 "1" ist, ist der Ausgang des Codierers b 320 "0" (was den Nichtbelegtzustand der Speicheranforderungseinheit U 10 bezeichnet), und zwar unabhängig von dem Ausgang des UND-Glieds g 321; und wenn der Ausgang des UND-Glieds g 320 "0" und der Ausgang des UND-Glieds g 320 "0" und der Ausgang des UND-Glieds g 321 "1" ist, ist der Ausgang des Codierers b 320 "1" (was den Nichtbelegtzustand der Speicheranforderungseinheit U 11 bezeichnet). (Bei dem vorliegenden Ausführungsbeispiel wird eine Ausgangsleitung des Codierers benutzt, da nur zwei Speicheranforderungseinheiten vorgesehen sind.) Wenn der Ausgang jedes UND-Glieds g 320 und g 321 "0" ist, kann der Ausgang des Codierers b 321 "1" oder "0" sein. Gleichermaßen werden die Nichtbelegtzustände des ALE′s durch Nichtglieder g 337 und g 338, UND-Glieder g 322 und g 323, ein ODER-Glied g 329 und einen Codierer b 321 auf der Grundlage eines Ausgangs des A-Felds r 3032 des DS-Registers r 303 und von Ausgängen der A0- und A1-Felder r 3043 und r 3044 des RSSW-Registers r 304 geprüft. Wenn die ALE durch den Befehl angefordert wird und die angeforderte ALE U 20 oder U 21 nicht belegt ist, ist der Ausgang des ODER-Glieds g 329 "1", und die Nummer der ALE wird vom Codierer b 321 geliefert. Ausgänge der ODER-Glieder g 328 und g 329 werden einem ODER-Glied g 332 zugeführt. Eine davon abgehende Ausgestaltung l 310 bezeichnet den Nichtbelegtzustand des angeforderten Betriebsmittels. Andererseits wird einer der Ausgänge der Codierer b 320 und b 321 von einem Wähler S 310 ausgewählt und einer Leitung l 3093 zugeführt, die mit den Ausgangsleitungen l 3091 und l 3092 der ODER-Glieder g 328 und g 329 zu einer Leitung l 309 verknüpft ist. Bei dem Ausführungsbeispiel ist der Wähler S 310 durch den Ausgang des ODER-Glieds g 329 steuerbar und bewirkt eine Anforderung zu der angeforderten ALE, und wenn diese nicht belegt ist, wird die ALE-Nummer angesteuert; wenn sie jedoch belegt ist, wird die Nummer der Speicher­ anforderungseinheit angesteuert. Der Inhalt der Leitung l 309 wird von einem Wähler S 302 ausgewählt und einer Leitung l 320 zugeführt. Diese umfaßt eine Signalleitung 3201, die den Nichtbelegtzustand der Speicheranforderungseinheit bezeichnet, eine Signalleitung 3202, die den Nichtbelegtzustand der angeforderten ALE bezeichnet, und eine Signalleitung 3203, die die Nummer der Speicheranforderungseinheit oder der ALE bezeichnet. Signale von den Leitungen l 3091- l 3093 werden den genannten Leitungen selektiv vom Wähler S 302 zugeführt. Der Wähler S 302 wählt entweder die Leitung l 309 oder l 311 in Abhängigkeit davon, ob die Eingangsleitung l 321 eine "0" oder eine "1" führt. Bei dem Ausführungsbeispiel ist die Eingangsleitung l 321 "0", wie noch erläutert wird. Auf diese Weise wird die Nummer des nichtbelegten Betriebsmittels der angeforderten Betriebsmittel der Leitung l 320 zugeführt. Die Leitung l 320 wird ferner zum Decodierer b 302 geführt zum Setzen der Bits des RSSW-Registers r 304. Der Decodierer b 302 umfaßt einen Decodierer b 3022 für die Nummer der Speicheranforderungseinheit und einen Decodierer b 3021 für die Nummer der ALE. Jeder hat einen Decodiergültigkeits­ anschluß E und decodiert ein Eingangssignal nur dann, wenn der Anschluß E "1" ist. An den Decodiergültigkeitsanschluß E des Decodierers b 3021 ist eine Leitung l 3202 angeschlossen, die den Nichtbelegtzustand der angeforderten ALE von Leitung 320 bezeichnet, und an den Decodiereingangs­ signalanschluß ist eine die Nummer bezeichnende Leitung l 3203 angeschlossen. Ebenso ist mit dem Decodiergültigkeitsanschluß E des Decodierers b 3022 eine Leitung l 3201 angeschlossen, die den Nichtbelegtzustand der angeforderten Speicheranforderungseinheit von Leitung l 320 bezeichnet, und an den Decodiereingangssignalanschluß ist eine die Nummer bezeichnende Leitung 3203 angeschlossen. Die Ausgänge der Decodierer b 3021 und b 3022 sind mit Setzanschlüssen S von vier Feldern r 3041-r 3044 (Flipflops) des RSSW-Registers r 304 verbunden, und eines der Felder S0, S1, A0 und A1 entsprechend der durch die Leitungen l 3201 und l 3203 bezeichneten Nummer des nichtbelegten Betriebsmittels wird gesetzt. Auf diese Weise wird durch die Schaltung b 305 der Benutzungsstatus der Betriebsmittel geprüft, und das RSSW-Register r 304 wird in Abhängigkeit vom Prüfergebnis aktualisiert.
Unter erneuter Bezugnahme auf Fig. 3 wird die Prüfung des Benutzungsstatus der durch den Befehl im DI-Register r 302 benutzten Vektorregister erläutert. In einer ersten Prüfung prüft die Register-Nutzungsprüfschaltung b 307, ob die durch den Befehl im DI-Register r 302 angeforderten Register verfügbar sind, und zwar auf der Grundlage der Nummern der angeforderten Vektorregister und der Benutzungsarten (Lesen/ Schreiben), die durch das DG-Register r 305 bezeichnet sind, und des Vektorregister-Belegtzustands im RGSW-Register r 306. Es sei nun angenommen, daß das Befehlswarteregister q 301 keinen Befehl enthält. Das Befehlswarteregister q 301 enthält jedoch normalerweise Befehle, die darauf warten, daß die erforderlichen Betriebsmittel frei werden, und somit ist es normalerweise notwendig, durch Registerkonflikt-Prüfglieder b 309-b 311 zu prüfen, ob eine Diskrepanz in der Reihenfolge der Benutzung der Vektorregister besteht, wenn der Befehl im DI-Register r 302 vor einem Befehl ausgeführt wird, der bereits im Befehlswarteregister q 301 gespeichert ist. Dies ist eine zweite Prüfung. Bei dem Ausführungsbeispiel werden die erste und die zweite Prüfung nur für die Vektorregister und nicht für das Vektoradreßregister U 5 und das Vektoradreß- Inkrementregister U 6 durchgeführt. Zur Vereinfachung werden dabei die Inhalte dieser Register nicht aktualisiert, und die beiden Speicheranforderungseinheiten lesen diese Register gleichzeitig aus (wie noch erläutert wird). Somit ist es nicht erforderlich, die Verfügbarkeit dieser Register zu prüfen.
Fig. 6a zeigt ein Detail der Register-Nutzungsprüfschaltung b 307 mit dem DG-Register r 305 und dem RGSW-Register r 306. Aufgrund des R1-Felds r 3051 des DG-Registers r 305 und des Ausgangs des RGSW-Registers r 306 bestimmt eine erste Register- Nutzungsprüfschaltung b 3071 die Verfügbarkeit der angeforderten Vektorregister nur für einen in Fig. 6b gezeigten Fall. Wenn die Registeranforderung für das Einschreiben in ein Vektorregister erfolgt (V1 = W1 = 1, GN1 < 8), wird die Verfügbarkeit des Registers nur bestimmt, wenn das Vektorregister mit der Nummer GN1 nicht benutzt wird (Wi = Ri = 0, i = GN1), und wenn die Registeranforderung für das Auslesen aus dem Vektorregister erfolgt (V1 = 1, W1 = 0, GN1 < 8), wird die Verfügbarkeit des Registers nur bestimmt, wenn das Vektorregister mit der Nummer GN1 nicht benutzt wird oder eine Einschreibung erfolgt (Ri = 0, i = GN1), und einem UND-Glied g 343 wird eine "1" zugeführt. Wenn das V1-Bit "0" ist, ist das Vektorregister verfügbar, und dem UND-Glied g 343 wird eine "1" zugeführt. Ebenso prüfen eine zweite und eine dritte Nutzungsprüfschaltung b 3072 und b 3073 das R2-Feld r 3052 und das R3-Feld r 3053 des DG-Registers r 305 mit gleichen Kriterien, und die Ergebnisse werden dem UND-Glied g 343 zugeführt. Wenn also sämtliche durch die R1-, R2- und R3-Felder bezeichneten Vektorregister verfügbar sind, wird auf der Leitung l 313 ein Vektorregister-Verfügbarkeits­ signal "1" erzeugt.
Die Register-Nutzungsprüfschaltung b 307 kennzeichnet sich dadurch, daß sie die Verfügbarkeit der Vektorregister bestimmt, die durch den Befehl im DI-Register r 302 angefordert sind, und zwar auch, wenn es sich durch einen vorhergehenden Befehl im Einschreibzustand befindet. Dies geschieht aufgrund einer Verkettungsoperation eines Vektorregisters, wobei eine Leseoperation mit einem Vektorregister für einen folgenden Befehl parallel mit einer Schreiboperation für dasselbe Vektorregister für einen vorhergehenden Befehl durchführbar ist.
Fig. 7 zeigt ein Detail der Registerkonfliktprüfschaltungen b 309-b 311. Die Registerkonfliktprüfschaltung b 309 umfaßt drei Registerkonfliktprüfglieder b 3091-b 3093, die einen Konfliktzustand zwischen den Vektorregister-Anforderungen, die durch die R1-R3-Felder r 3051-r 3053 des DG-Registers bezeichnet sind, und der Vektorregister-Anforderung, die durch das QG-Register q 303 bezeichnet ist, prüfen. Die Ausgänge dieser Glieder sind "1", wenn kein Konfliktzustand besteht (wie noch erläutert wird). Ein UND-Glied g 353 liefert ein Signal "1", das Konfliktfreiheit bedeutet, zu einem ODER-Glied g 359 über eine Leitung l 315 nur dann, wenn die Ausgänge der Prüfglieder b 3091-b 3093 sämtlich "1" sind. Das ODER-Glied g 359 empfängt ferner einen Ausgang von einem Nichtglied g 356. Wenn somit eine Eingangsleitung l 325 zum Nichtglied g 356 ebenfalls "0" ist, wird auf der Leitung l 315 das Konfliktfreiheit bezeichnende Signal "1" erzeugt. Die Registerkonfliktprüfglieder b 310 und b 311 sind ebenso wie das Glied b 309 ausgelegt und erzeugen Konfliktprüfresultate auf den Leitungen l 316 und l 317 durch UND-Glieder g 354 und g 355 oder Nichtglieder g 357 und g 358 sowie ODER-Glieder g 360 und g 361.
Leitungen l 323-l 325 sind mit den Flipflops f 304-f 306 (Fig. 3) verbunden. Diese Flipflops sind für jedes Register QIR0-QIR2 des Befehlswarteregisters q 301 (Fig. 7) vorgesehen und werden gesetzt, wenn die Befehle in den jeweiligen Registern gespeichert werden (wie noch erläutert wird).
Es sei nun angenommen, daß in dem Befehlswarteregister q 301 kein Befehl enthalten ist. Somit sind die Flipflops nicht gesetzt, und ihre Ausgangsleitungen l 323, l 324 und l 325 sind "0". Infolgedessen sind die Ausgänge auf den Leitungen l 315-l 317 sämtlich "1". Wenn also das Befehlswarteregister q 301 keinen Befehl enthält, wird das Konfliktfreiheitssignal der Vektorregister unabhängig von den Ausgängen der Konfliktprüfglieder b 309-b 311 erzeugt.
Gemäß Fig. 3 sind die Ausgangsleitungen l 315-l 317 der Registerkonfliktprüfglieder b 309-b 311 "1", wie vorstehend erläutert wurde. Infolgedessen ist die Ausgangsleistung l 322 eines UND-Glieds g 301, das diese Ausgänge empfängt, "1". Im vorliegenden Fall ist die Ausgangsleitung l 313 der Register- Nutzungsprüfschaltung b 307 ebenfalls "1" unter der Annahme, daß die angeforderten Vektorregister verfügbar sind, und somit ist ein Ausgang des UND-Glieds g 302 ebenfalls "1". Die Ausgangsleitung l 310 der Betriebsmittel-Nutzungsprüfschaltung b 305 ist ebenfalls "1" unter der Annahme, daß die angeforderten Betriebsmittel verfügbar sind. Die Ausgangsleitung l 302 des Flipflops f 302, die die Anwesenheit eines gültigen Befehls im DI-Register r 302 bezeichnet, ist ebenfalls "1". Wie später noch erläutert wird, ist der Ausgang des UND-Glieds g 305 "0", so daß der Ausgang des Nichtglieds g 310 "1" ist. Unter diesen Bedingungen ist der Ausgang des UND-Glieds g 304 "1", so daß das Flipflop f 303 durch die Ausgangsleitung l 330 des ODER-Glieds g 306 gesetzt wird. Das Flipflop f 303 ist ein D-Flipflop, das nur durch einen Taktimpuls gesetzt oder rückgesetzt wird, und es liefert ein Befehlsstartsignal ST zu der Vektorregistereinheit U 4, den Speicheranforderungseinheiten U 10 und U 1 und den ALE′s U 20 und U 21 (Fig. 1) über die Leitung l 10. Da das Befehlswarte­ register q 301 keinen Befehl enthält, sind nunmehr sämtliche Ausgänge der Flipflops f 304-f 306 entsprechend den Registern QIR0-QIR2 "0", und der Ausgang des Wählers S 303, dem die Ausgangsleitungen l 323-l 325 zugeführt werden, ist "0" unabhängig von der Wähloperation (die noch erläutert wird) des Wählers S 303. Infolgedessen ist auch die Ausgangsleitung l 321 des UND-Glieds g 305, dem die Ausgangsleitung l 326 zugeführt wird, "0". Die Wähler S 301, S 302 und S 304 wählen den OP-Code auf der Ausgangsleitung l 303 des DI-Registers r 302, die Betriebsmittelanforderung (Art und Nummer des Betriebsmittels) auf der Ausgangsleitung l 309 der Betriebsmittel- Nutzungsprüfschaltung b 305 und die Vektorregisteranforderung (Nummer des Registers und Benutzungsart) auf der Ausgangsleitung l 307 des DG-Registers r 305 und setzen sie in das EI-Register r 308 bzw. das ES-Register r 309 bzw. das EG-Register r 312. Das Setzen wird durch die Leitung l 330 bestimmt. Eine zu verarbeitende Vektorlänge (VL) ist in einem Vektorlängenregister (VL-Register) r 307 durch eine andere Einheit (nicht gezeigt) gespeichert. Die Inhalte dieser Register werden der Vektorregistereinheit U 4 und den Betriebsmitteln U 10, U 11, U 20 und U 21 über die Leitungen l 11-l 14 zugeführt. Auf diese Weise wird der Befehl zum Start der Befehlsausführung gegeben.
Der Befehl im DI-Register r 302 braucht nicht in das Befehlswarteregister q 301 gesetzt zu werden, da er sofort gestartet werden kann. Da im vorliegenden Fall der Ausgang vom UND-Glied g 304 "1" ist, ist der Ausgang vom Nichtglied g 308 "0", und die Ausgangsleitung l 327 des UND-Glieds g 303, dem der Ausgang des Nichtglieds g 308 zugeführt wird, ist "0". Somit wird die Eingabe des Inhalts des DI-Registers r 302 zum Befehlswarteregister q 301, das durch die Signalleitung l 327 gesteuert wird, unterdrückt. Ebenso werden neue Eingaben zu den Registern q 302 und q 303 inhibiert. Das Setzen der Flipflops f 304-f 306, das die Anwesenheit der Befehle im Befehlswarteregister q 301 anzeigt, und die Aktualisierung einer In-Hinweismarke IP r 310, die auf eine als nächstes zu setzende Stelle im Befehlswarteregister q 301 hinweist, werden ebenfalls unterdrückt.
Wenn der Befehl gestartet wird, ist es notwendig, das RSSW-Register r 304, das den Status des benutzten Betriebsmittels steuert, und das RGSW-Register r 306, das den Status des Vektorregisters steuert, zu aktualisieren. Die Aktualisierung des RSSW-Registers r 304 wurde in Verbindung mit Fig. 5 erläutert. Das RGSW-Register r 306 wird wie folgt aktualisiert. Der vom Wähler S 304 gewählte Ausgang des DG-Registers r 305 wird dem Decodierer b 304 zugeführt, wo die Vektorregisternummer und die Benutzungsart (Lesen/Schreiben) etc. decodiert werden, und die entsprechenden Bits im RGSW-Register r 306 werden auf "1" gesetzt. Unter der Bedingung Vi = 1 für jedes Feld Ri (i = 1-3) des DG-Registers r 305 wird Wj (j = GNi) oder Rj des RGSW-Registers r 305 auf "1" gesetzt in Abhängigkeit davon, ob Wi "1" oder "0" ist. Wenn ein das Ende des Schreib- oder Lesevorgangs des Vektorregisters bezeichnendes Signal von der Vektorregistereinheit U 4 über die Leitungen l 15 und l 16 zugeführt wird (was noch erläutert wird), bewirkt das RGSW-Register ein Rücksetzen der Felder Rj oder Wj, die durch dieses Signal bezeichnet sind.
(a-2) Das Befehlswarteregister q 301 enthält keinen Befehl, aber der Befehl im DI-Register r 302 soll nicht gestartet werden und ist in dem Befehlswarteregister q 301 zu speichern.
Dies erfolgt, wenn das von dem Befehl im DI-Register r 302 angeforderte Betriebsmittel (ALE oder Speicheranforderungseinheit) oder die Vektorregister nicht verfügbar sind.
Die Prüfung des Benutzungsstatus des Betriebsmittels und der Vektorregister, die von dem Befehl im DI-Register r 302 zu benutzen sind, wurden unter (a-1) mit Bezugnahme auf die Fig. 5-7 erläutert. Als Folge der Prüfung des Benutzungsstatus der Vektorregister oder des Betriebsmittels, die von dem Befehl im DI-Register r 302 angefordert werden, ist im betrachteten Fall die Ausgangsleitung l 310 der Betriebsmittel- Nutzungsprüfschaltung b 305 "0", weil das angeforderte Betriebsmittel belegt ist, oder der Ausgang l 313 der Register­ nutzungsprüfschaltung b 307 ist "0", weil die angeforderten Vektorregister nicht verfügbar sind. In jedem Fall ist der Ausgang des UND-Glieds g 304 "0", und der Ausgang des Nichtglieds g 308 ist "1". Da der Befehl im Befehlswarteregister nicht vorhanden ist, ist die Ausgangsleitung l 326 des Wählers S 303 "0", wie unter (a-1) erläutert wurde, und somit ist der Ausgang des UND-Glieds g 305 "0". Infolgedessen wird das Flipflop f 303 nicht gesetzt, und das Befehlsstartsignal ST wird der Leitung l 10 nicht zugeführt. Da der Ausgang des Nichtglieds g 308 "1" und der Ausgang des Flipflops f 302 "1" ist, ist die Ausgangsleitung l 327 des UND-Glieds g 303 "1". Somit wird der Befehl in folgender Weise in das Befehlswarteregister gesetzt.
Fig. 4 zeigt ein Detail des Befehlswarteregisters q 301. Wenn ein Setzsignal S zum Befehlswarteregister auf einer Leitung l 327 als zu setzende Registernummer übertragen wird und der Ausgang IP des In-Zeigerregisters (IP-Registers) r 310 auf eine Leitung l 328 gelangt, werden sie dem Decodiergültigkeits­ anschluß E und dem Datenanschluß des Decodierers b 330 zugeführt und decodiert. Wenn somit die Leitung l 327 "1" ist, wird der Inhalt von Leitung l 328 decodiert, und der Inhalt der Eingangsleitung (Leitung l 303, l 305 oder l 307 in Fig. 3) wird in das bezeichnete Register r 350-r 352 gesetzt.
Damit ist das Setzen in das Befehlswarteregister q 301 erläutert. Nachstehend wird das Auslesen aus dem Befehlswarteregister erläutert. Die Leseoperation betrifft das Auslesen der Inhalte der Register r 350-r 351, die durch den Ausgang OP eines OUT-Zeigeregisters (OP-Register) r 311 (Fig. 3) bezeichnet sind. Dies erfolgt durch Steuerung der Wahl des Wählers S 350, dem die Ausgänge der Register r 350- r 352 zugeführt werden, mittels der Ausgangsleitung l 329 des OP-Registers r 311.
Das Betriebsmittelwarteregister (QS-Register) q 302 ist ebenso aufgebaut wie das Befehlswarteregister q 301 mit Ausnahme der unterschiedlichen Anzahl Bits, die die Register r 350-r 352 benötigen. Das Registerwarteregister (QG-Register) q 303 unterscheidet sich von dem Befehlswarteregister q 301 dadurch, daß es außerdem gesonderte Signalleitungen aufweist zur direkten Lieferung der Ausgänge von den Registern r 350-r 352 ohne Umleitung über den Wähler S 350 und ferner natürlich eine andere Bitanzahl hat, die die Register r 350-r 352 benötigen.
Wenn gemäß Fig. 3 der OP-Code, die von dem Befehl zu verwendende Betriebsmittelart und die Registernummer im Befehlswarteregister q 301-q 303 gespeichert sind, wird dasjenige der die Anwesenheit des Befehls im Befehlswarteregister bezeichnenden Flipflops f 304-f 306, das dem neu registrierten Register QIRi (i = 0, 1 oder 2) entspricht, gesetzt. Dies erfolgt durch Zuführung des "1"-Ausgangs auf Leitung l 327 zu dem Decodiergültigkeitsanschluß des Decodierers b 312 und Setzen eines der Flipflops f 304-f 306 mit der Nummer, die durch den dem Datenanschluß auf der Ausgangsleitung l 328 zugeführten IP bezeichnet ist, durch den Decodierer b 312. Nach dieser Operation wird das IP-Register r 310 aktualisiert. Die Ausgangsleitung l 328 des IP-Registers r 310 wird einem Ternärzähler b 314 zugeführt, der den nächsten IP-Zählwert vorbereitet, der in das IP-Register r 310 gesetzt wird, wenn die Leitung l 327 "1" ist. Der Ternärzähler b 314 erzeugt Ausgänge 1, 2 und 0, während der Eingang sich zwischen 0, 1 und 2 ändert.
Wenn das Befehlswarteregister q 301 (das bis zu drei Befehle bei dem Ausführungsbeispiel speichern kann) mit den Befehlen gefüllt ist, kann es keinen Befehl mehr speichern. Somit muß das Aussenden des Befehls von der Befehlsabrufeinheit U 2 (Fig. 1) unterdrückt werden. Dies wird dadurch erreicht, daß die Ausgänge der Flipflops f 304-f 306, die die Anwesenheit des Befehls im Befehlswarteregister bezeichnen, dem UND-Glied g 309 zugeführt werden und die Ausgangsleitung l 7 mit der Befehlsabrufeinheit U 2 verbunden wird.
Auf diese Weise werden die Startwartebefehle in dem Befehlswarteregister q 301 in der Sequenz der Decodierung gespeichert.
(b-1) Ein im Befehlswarteregister enthaltener Befehl ist zu starten
Dies ist der Fall, wenn der Befehl im Befehlswarteregister q 301 gespeichert ist und das von dem Befehl angeforderte Betriebsmittel und das Vektorregister verfügbar sind.
Dies erfolgt unabhängig von der An- oder Abwesenheit des Befehls im DI-Register r 302 oder des Startzustands des Befehls. Wenn sich der Befehl im DI-Register r 302 befindet, wird der Befehl nicht ausgeführt und wird entsprechend dem Vorgehen nach (a-2) im Befehlswarteregister q 301 gespeichert. Die Operation zum Auslesen des Befehls aus dem Befehlswarteregister q 301 und zum Starten wird nachstehend erläutert.
Die Operation zum Auslesen des Befehls aus dem Befehlswarteregister q 301 und zum Starten desselben gleicht der Operation zum Starten des Befehls im DI-Register r 302. Der durch das OP-Register r 311 bezeichnete Befehl im Befehlswarteregister r 301 kann durch den Befehl im DI-Register r 302 ersetzt werden.
Zum Starten des Befehls müssen das erforderliche Betriebsmittel und Vektorregister verfügbar sein, wie unter (a-1) erläutert wurde.
Der Nichtbelegtzustand des von dem Befehl im Befehlswarteregister zu benutzenden Betriebsmittels wird durch die Betriebsmittel- Nutzungsprüfschaltung b 306 von Fig. 3 geprüft, und die Verfügbarkeit der Vektorregister wird durch die Register-Nutzungsprüfschaltung b 308 von Fig. 3 geprüft.
Im Detail entspricht die Betriebsmittel-Nutzungsprüfschaltung b 306 der Prüfschaltung b 305 von Fig. 5. Die von dem Befehl im Befehlswarteregister q 301 angeforderte Betriebsmittelart, die von dem Out-Zeiger OP ausgewählt ist, wird vom QS-Register q 302 über eine Leitung l 318 übertragen.
Andererseits wird der Status des Betriebsmittels vom RSSW-Register r 304 übertragen. Sie werden von den UND-Gliedern g 324-g 327 verglichen zur Prüfung des Nichtbelegungszustands des Betriebsmittels, und das Resultat wird über die Leitung l 312, die den Nichtbelegtstatus des Betriebsmittels bezeichnet, und die Leitung l 311 gesendet, die die Betriebsmittelart und die Betriebsmittelnummer bezeichnet, über die ODER-Glieder g 330, g 331 und g 333, die Codierer b 322 und b 323 und den Wähler S 311. Die vorstehende Operation ist derjenigen der Betriebsmittel-Nutzungsprüfschaltung b 305 vollständig identisch, die das Prüfresultat über das DS-Register r 303 und das RSSW-Register r 304 über die Leitungen l 310 und l 309 sendet, so daß Einzelheiten nicht angegeben werden.
Der Aufbau der Register-Nutzungsprüfschaltung b 308 ist mit demjenigen der Prüfschaltung b 307 identisch, und auch die Operation ist identisch mit derjenigen der Schaltung b 307, wobei die Ausgangsleitung l 319 des QG-Registers q 303 in Fig. 3 anstatt des Ausgangs des DG-Registers r 305 in Fig. 6a angeschlossen ist. Das Prüfresultat wird über die Ausgangsleitung l 314 (Fig. 3) der Register-Nutzungsprüfschaltung b 308 gesendet.
Es wird nun erneut auf Fig. 3 Bezug genommen. Wenn die Betriebsmittel-Nutzungsprüfschaltung b 306 ein "1"-Signal auf die Signalleitung l 312 gibt, um den Nichtbelegtstatus des Betriebsmittels anzuzeigen, und die Betriebsmittelart und die Betriebsmittelnummer auf die Leitung l 311 gibt und die Register-Nutzungsprüfschaltung b 308 ein "1"-Signal zu der Signalleitung l 314 gibt, um die Verfügbarkeit des Vektorregisters anzuzeigen, und ferner zur Ausgangsleitung l 326 des Wählers S 303 gibt, der die Ausgänge der Flipflops f 304-f 306 ansteuert, wenn die Out-Zeiger OP 0-2 = "1" sind (was bedeutet, daß ein Register QURi innerhalb des Befehlswarteregisters q 301, auf das der Out-Zeiger zeigt, den Befehl enthält, der gestartet werden kann), wird die Ausgangsleitung l 321 des UND-Glieds g 305 zu "1". Wenn die Ausgangsleitung l 321 "1" ist, wählen die Wähler S 301, S 302 und S 304 die Inhalte der Ausgangsleitung l 304 des Befehlswarteregisters q 301, der Ausgangsleitung l 311 der Betriebsmittel-Nutzungsprüfschaltung b 306 und der Ausgangsleitung l 319 des QG-Registers q 303 und setzen den OP-Code, die Betriebsmittelart und -nummer sowie die Registernummer und die Benutzungsart in das EI-Register r 308 bzw. das ES-Register r 309 bzw. das EG-Register r 312. Wenn somit der Befehl im Befehlswarteregister q 301 gestartet werden kann, wird der Befehl unabhängig davon gestartet, ob der Befehl im DI-Register r 302 gestartet werden kann oder nicht. Die Leitung l 321 setzt das Flipflop f 303 durch das ODER-Glied g 306, und das Befehlsstartsignal ST wird der Vektorregistereinheit U 4 und dem Betriebsmittel durch die Leitung l 10 übermittelt. Die Ausgangsleitung l 330 des ODER-Glieds g 306 dient ferner der Steuerung des Setzens des EI-Registers r 308, des ES-Registers r 309 und des EG-Registers r 312. Der Start des Befehls entspricht genau der Beschreibung unter (a-1). Das "1"-Signal auf der Leitung l 321 sperrt das UND-Glied g 304 über das Nichtglied g 310. Infolgedessen wird der Ausgang des Nichtglieds g 308 "1", und wenn der Befehl im DI-Register r 302 gespeichert ist (wenn das Flipflop f 302 "1" ist), wird die Leitung l 327 "1", und der Befehl wird in dem Befehlswarteregister q 301 gespeichert. Diese Operation entspricht der unter (a-2) beschriebenen. Die Leitung l 321 ist ferner an den Decodiergültigkeitsanschluß des Decodierers b 313 angeschlossen, und der Decodierer b 313 bewirkt das Rücksetzen desjenigen der Flipflops f 304-f 306, das von dem Out-Zeiger OP markiert ist, da der vom Out-Zeiger OP markierte Befehl im Befehlswarteregister ausgelesen und gestartet wird. Schließlich dient die Leitung l 321 dem Setzen des OP-Registers r 311, so daß der Out-Zeiger OP aktualisiert wird. Die Aktualisierung wird von einem Ternärzähler wie im Fall des In-Zeigers gesteuert. Der Ternärwert wird von dem Glied b 315 erzeugt, das ebenso wie das Glied 314 aufgebaut ist.
(b-2) Der Befehl im DI-Register r 302 wird vor einem Befehl im Befehlswarteregister gestartet.
das geschieht in folgendem Fall:
  • (1) Das Betriebsmittel oder die Vektorregister, die von dem Befehl im Befehlswarteregister angefordert werden, sind nicht verfügbar, so daß der Befehl nicht gestartet werden kann, und
  • (2) das Betriebsmittel oder die Vektorregister, die von dem Befehl im DI-Register r 302 angefordert werden, sind verfügbar, und es besteht kein Vektorregisterkonflikt zwischen dem im Befehlswarteregister q 301 gespeicherten Befehl und dem Befehl im DI-Register r 302.
Um den Befehl im DI-Register r 302 vor dem Befehl im Befehlswarteregister q 301 zu starten, darf kein Registerkonflikt herrschen, d. h., der Befehl im DI-Register r 302 benützt nicht das Vektorregister, das von dem Befehl im Befehlswarteregister q 301 zu aktualisieren ist, und der Befehl im DI-Register r 302 aktualisiert das Vektorregister nicht, das von dem Befehl im Befehlswarteregister q 301 auszulesen ist. Wenn das Vektorregister, das auszulesen ist, jedoch von dem Befehl im Befehlswarteregister q 301 nicht zu aktualisieren ist, von dem Befehl im DI-Register r 302 vorher ausgelesen wird, wird die Auslesesequenz des Registers umgekehrt, es entsteht jedoch kein Problem. Der vorstehend erläuterte Registerkonflikt wird von den Schaltungen b 309-b 311 von Fig. 3 geprüft. Einze 99999 00070 552 001000280000000200012000285919988800040 0002003248215 00004 99880lheiten werden unter Bezugnahme auf Fig. 7 erläutert.
Die Schaltung gemäß Fig. 7 wurde mit Ausnahme der Glieder b 3091-b 3093 bereits erläutert.
Ein erstes Registerkonflikt-Prüfglied b 3091 vergleicht das R1-Feld r 3051 des DG-Registers r 305 mit den R1-R3-Feldern des QGR0-Registers g 3030, und das UND-Glied g 353 erzeugt ein Signal "1", das Konfliktfreiheit anzeigt, wenn eine der folgenden Bedingungen nicht erfüllt ist.
  • (1) V1 = 1 und W1 = 0 für das DG-Register; und Vj = Wj = 1 und GNj = GN1 des DG-Registers in einem Feld Rj des Registers QGR0.
  • (2) V1 = 1 und W1 = 1 für das DG-Register; und Vj = 1 und GNj = GN1 des DG-Registers in einem Feld Rj des Registers QGR0.
Ebenso prüfen das zweite und dritte Registerkonflikt-Prüfglied b 3092 und b 3093 das R2-Feld r 3052 und das R3-Feld r 3053 des DG-Registers.
Wenn andererseits der Ausgang des Flipflops f 304 (Fig. 3), der anzeigt, daß der ausführbare Befehl im Befehlswarteregister enthalten ist, dem UND-Glied g 353 über die Leitung l 323 zugeführt wird und sämtliche Eingänge zum UND-Glied g 353 "1" sind, wird dessen Ausgang über das ODER-Glied g 356 zur Leitung l 315 gegeben. Auf diese Weise wird jeder Konflikt zwischen dem durch das DG-Register r 305 bezeichneten Vektorregister und dem durch das DGR0-Register q 3030 bezeichneten Vektorregister geprüft. Ebenso wird jeglicher Konflikt zwischen dem durch das DG-Register r 305 bezeichneten Vektorregister und dem durch das QGR1-Register q 3031 bezeichneten Vektorregister von dem Prüfglied b 310 geprüft, und jeglicher Konflikt zwischen dem durch das DG-Register r 305 bezeichneten Vektorregister und dem durch das QGR2-Register q 3032 bezeichneten Vektorregister wird von dem Prüfglied b 311 geprüft, und die Prüfergebnisse werden durch die UND-Glieder g 354 bzw. g 355 zu den Ausgangsleitungen l 316 bzw. l 317 der ODER-Glieder g 360 bzw. g 361 gesendet.
Die Prüfung des Benutzungszustands des von dem Befehl im DI-Register r 302 angeforderten Betriebsmittels und Registers entspricht der in Abschnitt (a-1) beschriebenen.
Als Ergebnis der Prüfung sendet die Betriebsmittel-Nutzungsprüfschaltung b 305 das "1"-Signal, das den Nichtbelegzustand des Betriebsmittels anzeigt, zur Leitung l 310, das Registernutzungsprüfglied b 307 sendet die Betriebsmittelart und -nummer zu der Leitung l 309, und das "1"-Signal, das die Verfügbarkeit des Vektorregisters anzeigt, wird zur Leitung l 313 gegeben. Da andererseits das Betriebsmittel und/oder das Vektorregister, die von dem durch den Out-Zeiger OP markierten Befehl im Befehlswarteregister zu benutzen sind, nicht verfügbar sind, ist mindestens die Ausgangsleitung l 312 der Betriebsmittel-Nutzungsprüfschaltung b 306 und/oder die Ausgangsleitung l 314 der Registernutzungsprüfschaltung b 308 "0". Das das Befehlswarteregister den Befehl enthält, ist die Ausgangsleitung l 326 des Wählers S 303 "1", und da das DI-Register r 302 einen Befehl enthält, ist die Leitung l 302 ebenfalls "1".
Unter dieser Bedingung ist die Ausgangsleitung l 321 des UND-Glieds g 305 nicht "1". Da nunmehr angenommen wird, daß zwischen den vom Befehl im DI-Register angeforderten und den vom Befehl im Befehlswarteregister angeforderten Registern kein Konflikt besteht, sind die Leitungen l 315-l 317 "1", und der Ausgang des UND-Glieds g 301 ist "1". Der Ausgang des UND-Glieds g 302, dem der Ausgang des UND-Glieds g 301 und die Leitung l 313 zugeführt sind, ist "1", und der Ausgang des UND-Glieds g 304, dem der "1"-Ausgang des UND-Glieds g 302 die Leitung l 310, die Leitung l 302, die den Gültigkeitsbefehl im DI-Register bezeichnet, und der Ausgang des Nichtglieds g 310, das die Leitung l 321 empfängt, zugeführt sind, ist "1". Die anschließende Operation bis zum Start des Befehls ist die gleiche wie die Befehlsstartoperation des Befehls im DI-Register entsprechend (a-1). Da der Ausgang des UND-Glieds g 304 "1" ist, ist die Ausgangsleitung l 327 des UND-Glieds g 303, das den Ausgang des UND-Glieds g 304 über das Nichtglied g 308 empfängt, "0", und die vorstehend beschriebene Leitung l 321 ist "0". Infolgedessen werden der In-Zeiger IP und der Out-Zeiger OP nicht aktualisiert, und die Zustände der Flipflops f 304-f 306, die die Anwesenheit des Befehls im Befehlswarteregister bezeichnen, werden nicht aktualisiert.
(5) Modifikation des Befehlsleitwerks
Vorstehend wurden Details des Befehlsleitwerks U 3 (Fig. 1) beschrieben. Bei dem Ausführungsbeispiel erfolgt die Weitergabe der Befehlsausführung, d. h. die Ausführung eines nachfolgenden Befehls vor der Ausführung eines vorhergehenden Befehls, nur zwischen dem DI-Register r 302 und dem Befehlswarteregister. Wenn die Befehle in dem Befehlswarteregister einmal gespeichert sind, werden sie von dem Outzeiger in der Reihenfolge der Einspeicherung in das Befehlswarteregister ausgelesen, und eine Weitergabe der Befehlsausführung innerhalb von Befehlen im Befehlswarteregister erfolgt nicht. Die Weitergabe der Befehlsausführung innerhalb von Befehlen im Befehlswarteregister kann jedoch in einfacher Weise durch eine Steuerung erreicht werden, die ähnlich derjenigen für die Weiterleitung der Befehlsausführung zwischen dem DI-Register und dem Befehlswarteregister ist. In diesem Fall muß die Ausführungsfolge für den Befehl im Befehlswarteregister gespeichert werden. Die Befehle werden im Befehlswarteregister in der Sequenz der Verfügbarkeit der Register innerhalb des Befehlswarteregisters und nicht in der durch den In-Zeiger IP bestimmten Sequenz gespeichert.
Fig. 8 zeigt den Schaltungsteil zur Realisierung des Vorstehenden, der sich von der Schaltung nach Fig. 3 unterscheidet. Flipflops f 304, f 305 und f 306 zeigen an, daß das Befehlswarteregister gültige Befehle enthält ("1", wenn dies der Fall ist) und sind mit den Flipflops f 304-f 306 von Fig. 3 identisch. Die Ausgänge der Flipflops werden durch Nichtglieder g 380-g 382 invertiert und dann einem Prioritätscodierer b 395, zugeführt, der eine Nummer eines Registers QIRi erzeugt, das die niedrigste Nummer unter den leeren Registern innerhalb des Befehlswarteregisters hat. Bei der vorliegenden Modifikation sind das IP-Register r 310 und der Ternärzähler b 314 von Fig. 3 durch die Nichtglieder g 380-g 381 und den Prioritätscodierer b 395 ersetzt, und der Ausgang des Prioritätscodierers dient als In-Zeiger IP anstelle des IP von Fig. 3.
Es ist erforderlich, die Reihenfolge der Befehlsstarts der Befehle im Befehlswarteregister q 301 zu speichern. Zu diesem Zweck sind bei der Modifikation Flipflops f 380-f 382 und ein Ausführungsauftrag-Änderungsglied zu der Schaltung von Fig. 3 hinzugefügt. Wenn man die in das Befehlswarteregister q 301 von den In-Zeigern IP 0-2 gesetzten Befehls mit Q 0, Q 1 und Q 2 bezeichnet, ist es möglich, diese Befehle in den folgenden Reihenfolgen zu starten.
Q 0 → Q 1 → Q 2
Q 0 → Q 2 → Q 1
Q 1 → Q 2 → Q 0
Q 1 → Q 0 → Q 2
Q 2 → Q 0 → Q 1
Q 2 → Q 1 → Q 0
Diese sechs Bedingungen werden von den Flipflops f 380-f 382 gespeichert. Die Beziehung zwischen der in den Flipflops f 380, f 381 und f 382 gespeicherten Information und den Reihenfolgen der Befehlsausführung ist nachstehend gezeigt:
Die Reihenfolge der Befehlsausführung ändert sich, wenn die Flipflops f 304-f 306 von "1" zu "0" kippen (von belegt auf nichtbelegt). Die Änderung wird durch ein Änderungssteuerglied b 393 gesteuert, das die Ausgänge l 396-l 398 der Flipflops f 380-f 382 empfängt, die die momentanen Startbedingungen bezeichnen, und ferner die Ausgänge l 323-l 325 der Flipflops f 304-f 306 empfängt und die nächste Startbedingung auf den Leitungen l 376-l 378 erzeugt, und die nächste Startbedingung wird in die Flipflops f 380-f 382 gesetzt. Das Glied b 393 erfaßt einen Zeitpunkt, zu dem einer der Befehle im Befehlswarteregister q 301 gestartet wird und die Leitungen l 323-l 325 sich von "1" zu "0" ändern, und erzeugt ein Ausgangssignal auf der Grundlage der Inhalte der Leitungen l 396-l 398 und übermittelt es auf den Leitungen l 376-l 378.
Die Flipflops f 380-f 382 werden so gesetzt, daß die übrigen zwei Befehle im Befehlswarteregister q 301 zuerst in der durch die Flipflops f 380-f 382 bestimmten Reihenfolge gestartet werden, und nach dem Start dieser beiden Befehle wird der neu in dem Befehlswarteregister gespeicherte Befehl, der die Stelle der gerade gestarteten Befehle einnimmt, gestartet.
(1) Wenn sich die Leitung l 323 von "1" zu "0" ändert:
(2) Wenn sich die Leitung l 324 von "1" zu "0" ändert:
(3) Wenn sich die Leitung l 325 von "1" zu "0" ändert:
Die Leitungen l 323-l 325 ändern sich nicht gleichzeitig von "1" zu "0", weil die Befehle jeweils einzeln gestartet werden.
Um den Start irgendeines Befehls im Befehlswarteregister q 301 zu ermöglichen, muß der Benutzungsstatus der Betriebsmittel und der Vektorregister für sämtliche Befehle im Befehlswarteregister geprüft werden, und es muß der Konfliktzustand der Vektorregister für sämtliche Befehle im Befehlswarteregister geprüft werden. In Fig. 8 halten QSR0-, QSR1- und QSR2-Register q 3020-q 3022 die von den Befehlen im Befehlswarteregister q 301 angeforderten Betriebsmittelarten. Sie sind in dem QS-Register q 302 von Fig. 3 enthalten. Bei der vorliegenden Modifikation sind Signalleitungen vorgesehen, die Betriebsmittelanforderungen direkt von den Registern q 3020-q 3030 unabhängig von dem Out-Zeiger OP senden. Die Betriebsmittelanforderungen durch die Befehle und der Inhalt des RSSW-Registers r 304, das den Status der Betriebsmittel verwaltet, werden von Betriebsmittel-Nutzungsprüfschaltungen b 380-b 382 geprüft, die hier anstelle der Betriebsmittel-Nutzungsprüfschaltung b 306 von Fig. 3 vorgesehen sind, und die jeweiligen Prüfschaltungen liefern Signale, die den Nichtbelegtzustand der Betriebsmittel zu den Leitungen l 380-l 382 und die Arten der verfügbaren Betriebsmittel bzw. die Nummern der Betriebsmittel zu den Leitungen l 383-l 385 liefern. Die Betriebsmittel-Nutzungsprüfschaltungen b 380-b 382 sind ebenso aufgebaut wie die Schaltung b 305 von Fig. 5. In Fig. 8 speichern QGR0-QGR2-Register q 3030-q 3032 die von den Befehlen im Befehlswarteregister angeforderten Registernummern, und sie sind in dem QG-Register q 303 von Fig. 3 enthalten. Die Registeranforderungen durch die Befehle und der Inhalt des RGSW-Registers r 306, das den Status der Vektorregister verwaltet, werden von Register- Nutzungsprüfschaltungen b 383-b 385 geprüft, die bei dem Ausführungsbeispiel neu vorgesehen sind, und Signale, die anzeigen, ob sämtliche angeforderten Vektorregister verfügbar sind, werden auf die Leitungen l 386-l 388 gegeben. Die Register-Nutzungsprüfschaltungen sind ebenso aufgebaut wie die Schaltung b 307 von Fig. 6. Zum Prüfen eines Konflikts zwischen den von den Befehlen angeforderten Vektorregistern werden Register-Konfliktprüfschaltungen b 386-b 391 verwendet, die hier neu vorgesehen sind. Es ist erwünscht, daß die Befehle im Befehlswarteregister in jeder erwünschten Reihenfolge ausgeführt werden können. Wenn bis zu drei Befehle im Befehlswarteregister gespeichert werden können, sind zwei Prüfschaltungen notwendig, um den Start eines Befehls vor den beiden anderen Befehlen zu ermöglichen. Es sind drei Satz solcher Prüfschaltungen erforderlich, und zwar jeweils einer für jeden Befehl. Somit sind insgesamt sechs Register- Konfliktprüfschaltungen b 386-b 391 erforderlich. Die Schaltung b 386 empfängt die R1-R3-Felder des QGR0-Registers und die R1-R3-Felder des QGR1-Registers und prüft den Register­ konfliktzustand zwischen diesen. Wenn kein Registerkonflikt für irgendein Feld erfaßt wird, wird auf Leitung l 390 ein Ausgang "1" erzeugt. Die Schaltung b 386 ist ebenso ausgelegt wie die Register-Konfliktprüfschaltung b 309 von Fig. 7. Ferner empfängt die Schaltung b 386 die Ausgangsleitung l 324 des Flipflops f 305 und erzeugt ebenso wie die Schaltung b 309 (Fig. 7) unbedingt einen "1"-Ausgang auf Leitung l 390, wenn die Leitung l 324 "0" ist. In gleicher Weise prüft die Schaltung b 387, ob die Felder des QGR1-Registers einen Registerkonflikt mit den Feldern des QGR0-Registers aufweisen. Ebenso prüfen die Schaltungen b 388-b 391 die Register­ konflikte zwischen QGR2 und QGR1, QGR1 und QGR2, QGR0 und QGR2 bzw. QGR2 und QGR0. Die Ausgangsleitungen l 390-l 395 der Register-Konfliktprüfschaltungen b 386-b 391 werden einer Befehlswahlschaltung b 394 zugeführt. Diese empfängt die Ausgangsleitungen l 380-l 382 der Betriebsmittel-Nutzprüfschaltungen b 380-b 382, die Ausgangsleitungen l 386-l 388 der Register-Nutzungsprüfschaltungen b 383-b 385, die Ausgänge der Flipflops f 380-f 382, die die Reihenfolge des Befehlsstarts bezeichnen, und die Ausgangsleitungen l 323-l 325 der Flipflops f 304-f 306, die die Anwesenheit der ausführbaren Befehle im Befehlswarteregister bezeichnen, und der keinen Konflikt zwischen den Vektorregistern bewirkende Befehl im Befehlswarteregister wird von der Befehlswählschaltung b 394 gewählt, wenn das Vektorregister und das Betriebsmittel nicht belegt sind, und die Nummer des gewählten Befehls im Befehlswarteregister wird auf die Leitung l 329 als Out-Zeiger OP gegeben, und ein die Wahl des Befehls im Befehlswarteregister bezeichnendes Signal wird auf die Leitung l 321 gegeben.
Fig. 9 zeigt ein Detail der Befehlswählschaltung b 394. Ein UND-Glied g 383 empfängt die Ausgangsleitung l 323 des Flipflops f 304, die Ausgangsleitung l 380 der Betriebsmittel- Nutzungsprüfschaltung b 380, die Ausgangsleitung l 386 der Register-Nutzungsprüfschaltung b 383 und die Ausgangsleitungen l 390 und l 395 der Register-Konfliktprüfschaltungen b 386 und b 391, und wenn sämtliche Eingänge "1" sind, erzeugt das UND-Glied g 383 einen "1"-Ausgang auf einer Ausgangsleitung l 370. Dies bedeutet, daß ein nullter Befehl Q 0 im Befehlswarteregister ausgeführt werden kann. Ebenso empfangen UND-Glieder g 384 und g 385 Signalleitungen für den ersten und den zweiten Befehl im Befehlswarteregister und erzeugen Ausgänge auf Leitungen l 371-l 372. Es kann möglich sein, daß die Leitungen l 370-l 372 gleichzeitig "1" sind. Die Leitungen l 370-l 372 werden einem ODER-Glied g 387 zugeführt, das einen "1"-Ausgang auf einer Ausgangsleitung l 321 erzeugt, wenn einer der Befehle ausführbar ist. Die Wahl der Signale von den Leitungen l 370-l 372, die die ausführbaren Befehle bezeichnen, erfolgt durch den Prioritätscodierer b 395, der zusätzlich zu den Leitungen l 370-l 372 die Ausgangsleitungen l 396-l 398 der Flipflops f 380-f 382 empfängt, die die Reihenfolge der Befehlsausführung bezeichnen, und die Nummer des auszuführenden Befehls aus dem Befehlswarteregister wird auf der Leitung l 329 wie folgt erzeugt. Die Leitung l 329 umfaßt zwei Leitungen l 3290 (höhere Reihenfolge) und l 3291 (niedrigere Reihenfolge) und repräsentiert Binärziffern "00", "01", und "10" durch die beiden Leitungen, die die Befehlsnummern im Befehlswarteregister bezeichnen.
(1) Wenn die Leitungen l 396-l 398 "0", "0" und "0" sind:
(2) Wenn die Leitungen l 396-l 398 "0", "0" und "1" sind:
(3) Wenn die Leitungen l 396-l 398 "0", "1" und "0" sind:
(4) Wenn die Leitungen l 396-l 398 "0", "1" und "1" sind:
(5) Wenn die Leitungen l 396-l 398 "1", "0" und "0" sind:
(6) Wenn die Leitungen l 396-l 398 "1", "0" und "0" sind:
Die Leitungen l 329 und l 321, die die Ausgangsleitungen der Befehlswählschaltung b 394 sind, können anstelle der Ausgangsleitung l 329 des OP-Registers r 311 von Fig. 3 und der Ausgangsleitung l 321 des UND-Glieds g 305 benutzt werden. Infolgedessen sind das OP-Register r 311, der Ternärzähler b 315, der Wähler S 303 und das UND-Glied g 305 von Fig. 3 nicht erforderlich.
Der Wähler S 380 von Fig. 8 wählt die Betriebsmittelart und die Betriebsmittelnummer, die von dem Befehl im Befehlswarteregister angefordert sind, nach Maßgabe des Out-Zeigers OP (auf Leitung l 329), und seine Ausgangsleitung l 311 wird anstelle der Ausgangsleitung der Betriebsmittel-Nutzungsprüfschaltung b 306 von Fig. 3 verwendet.
Wie vorstehend erläutert wurde, decodiert das Befehlsleitwerk nach der Erfindung die abgerufenen Befehle einzeln nacheinander, startet die ausführbaren Befehle einzeln nacheinander und speichert die nichtausführbaren Befehle im Befehlswarteregister. Wenn das angeforderte Betriebsmittel nicht belegt ist und die angeforderten Vektorregister verfügbar sind, wird der Befehl unabhängig von der Reihenfolge der Decodierung unter den Bedingungen gestartet, daß keine Einschränkung hinsichtlich der Benutzungsreihenfolge der Vektorregister besteht, so daß die Nichtbelegtzeiten des Betriebsmittels und der Vektorregister verringert und die Befehle innerhalb einer erheblich kürzeren Zeit ausgeführt werden.
(6) Vektorregistereinheit (i) Allgemeines
Nach Fig. 10 ist die Vektorregistereinheit U 4 in eine Vektorregistersteuereinheit U 40 und eine Vektorregisterdateneinheit U 41 unterteilt.
Die Vektorregistersteuereinheit U 40 liest erforderliche Informationen aus dem Vektorregister VR der Vektorregisterdateneinheit U 41 nach Maßgabe eines Befehls von dem Befehlsleitwerk U 3 aus und sendet sie zu den ALE′s U 20 und U 21 sowie den Speicheranforderungseinheiten U 10 und U 11 (Fig. 5) und schreibt die Information von den ALE′s U 20 und U 21 und den Speicheranforderungseinheiten U 10 und U 11 in das Vektorregister VR ein. Ferner informiert sie das Befehlsleitwerk U 3 über das Benutzungsende des Vektorregisters VR.
Jedes Vektorregister enthält eine Anzahl Vektorelemente und umfaßt Speicherzellen wie ein konventionelles Register. So ist ein Adreßzähler (wird noch erläutert) zur Bezeichnung einer Lese-/Schreibadresse für jedes Vektorregister VR vorgesehen. Die Adreßzähler werden von der Vektorregistersteuereinheit U 40 gesteuert.
Die Vektorelemente im Vektorregister VR werden unter der Steuerung durch die Vektorregistersteuereinheit U 40 wie folgt ausgelesen. Wenn bei dem vorliegenden Ausführungsbeispiel ein nachfolgender Befehl das Auslesen eines Vektorregisters anfordert, in das Elemente einer Vektorinformation durch die Ausführung eines vorhergehenden Befehls eingeschrieben werden, wird das Vektorregister so verkettet, daß das Auslesen parallel mit dem Einschreiben zu einem Zeitpunkt gestartet wird, wenn irgendeine Anzahl Elemente in das Vektorregister eingeschrieben ist. Wenn im Verkettungsmodus das Einschreiben durch den vorhergehenden Befehl intermittierend erfolgt, erfolgt auch das Auslesen des nachfolgenden Befehls intermittierend. Wenn der Befehl zum Auslesen zwei Vektorregister benützt, wird die gleiche Anzahl Elemente, die in den beiden Vektorregistern vorhanden ist, paarweise auch dann ausgelesen, wenn in einem oder beiden Vektorregistern einige andere Vektorelemente vorhanden sind. Wenn die übrigen Elemente intermittierend in diese Vektorregister eingeschrieben werden, wird jedes Paar von Elementen gleicher Anzahl immer dann ausgelesen, wenn das Paar von Elementen in die beiden Register eingeschrieben wird.
Die der ALE zuzuführenden Vektorelemente werden normalerweise aus dem Hauptspeicher abgerufen, kurzzeitig im Vektorregister gespeichert und von dort zu der ALE übertragen. Die Elemente werden synchron mit dem Maschinentakt ausgelesen. Die aus dem Hauptspeicher abzurufenden Vektorelemente werden jedoch nicht immer nacheinander in jedem Maschinenzyklus in das Vektorregister eingeschrieben, und zwar wegen des Konflikts mit dem Abruf aus dem Hauptspeicher (wenn z. B. zwei Speicheranforderungseinheiten gleichzeitig anfordern). In diesem Fall kommen die der ALE zuzuführenden Vektorelemente intermittierend am Vektorregister an und werden in dieses eingeschrieben. Gemäß dem Ausführungsbeispiel erfolgt selbst unter dieser Bedingung das Auslesen der Elemente parallel mit dem Einschreiben (Verkettung), so daß der Start der Befehlsausführung früher erfolgen kann.
(ii) Allgemeine Erläuterung der Vektorregistersteuereinheit
Nach Fig. 11 umfaßt die Vektorregistersteuereinheit U 40 eine Befehlsstartsteuerstufe b 400, Vektorregistersteuerschaltungen b 410-b 417 für jedes der Vektorregister VR 0-VR 7, Operandensteuerschaltungen b 420-b 423 für jede ALE U 20 und U 21 und die Speicheranforderungseinheiten U 10 und U 11, Flipflops f 400-f 407 zum Speichern der Ausgänge der Operandensteuerschaltungen b 420-b 423, Betriebsmittel-Register-Umsetzer bzw. S-G-Umsetzer b 401, b 404 und b 405 und Register-Betriebsmittel- Umsetzer bzw. G-S-Umsetzer b 402 und b 403. Der G-S-Umsetzer b 402 oder b 403 sendet die Signale von jeweils zwei Vektorregistersteuerschaltungen b 410-b 417 für eine oder zwei auszulesende Vektorregisternummern, die durch das Befehlsleitwerk U 4 bezeichnet sind, zu einer der Operandensteuerschaltungen b 420-b 423 für die von dem Befehlsleitwerk U 3 bezeichnete Betriebsmittelnummer. Der S-G-Umsetzer b 401 (oder b 404 oder b 405) sendet das von dem durch das Befehlsleitwerk U 3 bezeichneten Betriebsmittel (oder der Operandensteuerschaltung b 420-b 423 für dieses) kommende Signal zu einer der Vektorregistersteuerschaltungen b 410-b 417 der durch das Befehlsleitwerk U 3 bezeichneten Vektorregisternummer (oder zu dem Vektorregister mit derselben Nummer).
Wenn die Befehlsstart-Steuerstufe b 400 das Startsignal (auf Leitung l 10), den OP-Code (auf Leitung l 11), die Registernummer (auf Leitung l 12), die Betriebsmittelart (auf Leitung l 13) und die zu verarbeitende Vektorlänge (auf Leitung l 14) von dem Befehlsleitwerk U 3 empfängt und der OP-Code die Benutzung des Vektorregisters anfordert, wird folgende Operation durchgeführt.
  • (1) Die Betriebsmittelnummer, die für die Umsetzung erforderliche Vektorregisternummer und die Setzsignale dafür werden zu den S-G-Umsetzern b 401, b 404 und b 405 sowie den G-S-Umsetzern b 402 und b 403 gesendet.
  • (2) Das Schreib- oder Lesestartsignal wird an diejenige Vektorregistersteuerschaltung b 410-b 417 ausgegeben, die die bezeichnete Vektorregisternummer hat.
  • (3) Die Vektorlängeninformation, das Setzsignal dafür und im Fall eines Befehls, der nur einen Operanden verwendet, ein diesen bezeichnendes Signal werden zu derjenigen Operandensteuerschaltung b 420-b 423 gesendet, die der bezeichneten Betriebsmittelart und -nummer entspricht.
Wenn der Befehl ausgeführt wird, wird das Steuersignal wie folgt übertragen. Es sei angenommen, daß die Informationen aus den Vektorregistern VR 0 und VR 1 ausgelesen werden, daß sie von der ALE U 20 verarbeitet werden und daß das Resultat in das Vektorregister VR 7 eingeschrieben wird.
Wenn das Vektorregister VR 0 das Auslesen eines Vektorelements erlaubt, wird von der Vektorregistersteuerschaltung b 410 ein Vektorregister-Lesefreigabesignal für das Vektorregister VR 1 wird von der Vektorregistersteuerschaltung b 411 auf die Leitung l 481 gegeben. Die Signale auf den Leitungen l 480 und l 481 werden auf die Ausgangsleitungen l 490 und l 500 zur ALE U 20 durch die G-S-Umsetzer b 402 und b 403 übertragen und der Operandensteuerschaltung b 420 zugeführt. Wenn diese Vektorregister-Lesefreigabesignale gleichzeitig vorhanden sind, erzeugt die Operandensteuerschaltung b 420 jeweils ein Sendevektordatensignal für jedes Vektorelement und gibt diese auf die Leitung l 520. Dieses Signal wird kurzzeitig in dem Flipflop f 401 gespeichert und dann der ALE U 20 über die Leitung l 43 als Datengültigkeitssignal zugeführt. Andererseits wird das Sendevektordatensignal auf Leitung l 520 auch den S-G-Umsetzern b 404 und b 405 zugeführt und den Leitungen l 540 bzw. l 551 zugeführt, die den Vektorregisternummern 0 und 1 entsprechen. Sie dienen der Aktualisierung der Leseadreßzähler (die noch erläutert werden) für die Vektorregister VR 0 und VR 1 in der Vektorregister­ dateneinheit U 41 (Fig. 10) durch die ODER-Glieder g 400 bzw. g 401 und die Leitungen l 470 bzw. l 471. Gemäß einem Merkmal des vorliegenden Ausführungsbeispiels wird die Adresse des Leseadreßzählers für die Vektorinformation nur aktualisiert, nachdem das Sendevektordatensignal (auf Leitung l 520) erzeugt wurde. Tatsächlich erfolgt das Auslesen der Information, nachdem bestätigt wurde, daß das Lesen der beiden Operanden (Vektorregister VR 0 und VR 1) erlaubt ist.
Das Datengültigkeitssignal V (auf Leitung l 43) und die Vektorelementinformation werden zu der ALE U 20 geleitet, dort wird die Operation durchgeführt, und ein Operationsergebnis wird über die Leitung l 45 (Fig. 10) zu der Vektorregister­ dateneinheit U 41 geführt, und das Datengültigkeitssignal V wird über die Leitung l 46 zur Vektorregistersteuereinheit U 40 rückgeleitet. Das Datengültigkeitssignal V wird über den S-G-Umsetzer b 401 zur Leitung l 437 für das Schreibvektorregister VR 7 übertragen. Aufgrund des Signals auf der Leitung l 437 sendet die Vektorregistersteuerschaltung b 417 das Schreibadreßzähler-Aktualisierungssignal für das Vektorregister VR 7 zu der Vektorregisterdateneinheit U 41 über die Leitung l 427 und nutzt es zur Verwaltung eines Zeigers (noch zu erläutern), der sich in der Vektorregistersteuerschaltung b 417 befindet und das letzte geschriebene Vektorelement im Vektorregister VR 7 markiert. Der Zeiger dient dem Lesen der eingeschriebenen Vektorelemente im Vektorregister VR 7, wenn dieses durch den nachfolgenden Befehl während des Einschreibvorgangs ausgelesen wird.
Wenn der ALE U 20 das letzte Vektorelement zugeleitet wird, sendet die Operandensteuerschaltung b 420 das letzte Vektordatensignal E zur Leitung l 510 synchron mit dem Sendevektordatensignal, um anzuzeigen, daß es sich um das letzte Vektorelement handelt. Die Schaltung b 420 speichert die zu verarbeitende Vektorlänge, die zu Beginn der Befehlsausführung gesetzt wurde, und wenn die Sendevektordatensignale dementsprechend oft gesendet wurden, wird das letzte Vektordatensignal ausgegeben. Dieses Signal wird kurzzeitig im Flipflop f 400 gespeichert und dann zu der ALE U 20 über die Leitung l 40 übertragen und über die Leitung l 44 synchron mit dem Operations-Endresultat zum S-G-Umsetzer b 401 rückgeleitet. Das Signal auf der Leitung l 44 wird zur Leitung l 427 für das Vektorregister VR 7 durch den S-G-Umsetzer b 401 übermittelt und der Vektorregistersteuerschaltung b 417 zugeführt. Diese beendet das Einschreiben in das Vektorregister VR 7 und informiert das Befehlsleitwerk U 3 über die Leitung l 16 von der Beendigung des Einschreibvorgangs in das Vektorregister VR 7. Andererseits wird das letzte Vektordatensignal E auf der Ausgangsleitung l 510 von der Operandensteuerschaltung b 420 ebenfalls den S-G-Umsetzern b 404 und b 405 zugeführt, und auf den Leitungen l 530 und l 531 werden den Vektorregistern VR 0 und VR 1 entsprechende Signale erzeugt. Sie werden den Vektorregistersteuerschaltungen b 410 und b 411 über die ODER-Glieder g 410 bzw. g 411 und die Leitungen l 460 bzw. l 461 zugeführt zur Beendigung des Auslesens aus den Vektorregistern und informieren das Befehlsleitwerk U 3 über die Leitung l 15 von der Beendigung des Auslesevorgangs aus den Vektorregistern VR 0 und VR 1.
(iii) Befehlsstart-Steuerstufe
Nach Fig. 12 setzt die Befehlsstart-Steuerstufe b 400 das Befehlsstartsignal ST, die OP-Code-Registernummer und die Benutzungsart, die Betriebsmittelart und -nummer sowie die zu verarbeitende Vektorlänge, die von dem Befehlsleitwerk U 3 über die Leitungen l 10-l 14 zugeführt werden, in das Flipflop f 410, das RG-Register r 400, das RIG-Register r 401, das RS-Register r 402 und das RVI-Register r 403 aufgrund des Befehlsstartsignals ST.
Der Ausgang des Flipflops f 410 wird den S-G/G-S-Umsetzern b 402-b 405 (Fig. 14) als Informationssetzsignal zugeführt, zur Leitung l 419 geleitet und zur Erzeugung verschiedener interner Datensignale genutzt.
Auf der Grundlage des Inhalts des RG-Registers r 400 werden die dem S-G-Umsetzer und dem G-S-Umsetzer (Fig. 11) zuzuführenden Registernummern sowie die der Vektorregistersteuerschaltung und der Vektorregisterdateneinheit zuzuführenden Initialisierungs-1-Startsignale erzeugt. Bei einem normalen Vektorbefehl benützt das RI-Feld das Schreib-Vektorregister, und die Felder R2/R3 benützen das Lese-Vektorregister. Somit wir die Registernummer für das R1-Feld dem S-G-Umsetzer b 401 von Fig. 11 zugeführt, die Registernummer für das R2-Feld wird dem G-S-Umsetzer b 402 und dem S-G-Umsetzer b 404 zugeführt, und die Registernummer für das R3-Feld wird dem G-S-Umsetzer b 403 und dem S-G-Umsetzer b 405 zugeführt. Wie in Verbindung mit Fig. 2 erläutert wurde, ist es jedoch bei dem Befehl zur Speicherung der Vektordaten im Hauptspeicher erforderlich, die Registernummer für das R1-Feld auf die Signalleitung zu übertragen, die normalerweise die Registernummer für das R2-Feld sendet, da das R1-Feld die Lese-Vektorregisternummer bezeichnet. Somit werden das GN1-Feld und das V1-Feld des RG-Registers r 400 über die Leitung l 439 zum S-G-Umsetzer b 401 geleitet und als erster Setzwert dem Wähler S 400 zugeführt. Andererseits werden das GN2-Feld und das V2-Feld des Registers r 400 dem Wähler S 400 als zweiter Setzwert zugeführt, und einer der Setzwerte wird ausgewählt und von dem S-G-Umsetzer b 404 und dem G-S-Umsetzer b 402 über die Leitung l 449 ausgesandt. Die Wahl durch den Wähler S 400 wird von dem Decodierer b 438 gesteuert. Der Wähler S 400 wird so gesteuert, daß er entweder den ersten oder den zweiten Setzwert wählt in Abhängigkeit davon, ob der OP-Code in dem RI-Register r 401 für den Befehl zur Speicherung der Vektorinformation im Hauptspeicher bestimmt ist oder nicht. Das GN3-Feld und das V3-Feld des RG-Registers r 400 werden über die Leitung l 459 zum S-G-Umsetzer b 405 und zum G-S-Umsetzer b 403 übertragen.
Zum Starten des Einschreibvorgangs für die Vektorregister­ steuerschaltungen b 410-b 417 und das Vektorregister in der Vektorregisterdateneinheit U 41 werden die R1-R3-Felder des RG-Registers r 400 zum Decodierer b 430 übertragen. Dieser hat einen Decodiergültigkeitsanschluß E mit einem UND-Glied A. Wenn sämtliche Eingänge zum UND-Glied A "1" sind, ist die Decodierung gültig. Das V1-Feld, das W1-Feld und der Ausgang des Flipflops f 410 werden dem UND-Glied A des Decodierers b 430 über die Leitungen l 580, l 581 bzw. l 419 zugeführt, und das GN1-Feld wird über die Leitung l 439 als zu decodierendes Signal zugeführt. Wenn die Decodierung gültig ist, d. h. wenn die Information im GN1-Feld signifikant ist (V1-Feld ist "1"), das Einschreiben bezeichnet ist (W1-Feld ist "1") und der Befehl zu starten ist (l 419 ist "1"), wird der Inhalt des über die Leitung l 582 zugeführten GN1-Feldes decodiert, und wenn das GN1-Feld irgendeine der Vektorregisternummern 0-7 enthält, ist eine von acht Ausgangsleitungen l 410-l 417 "1". Es sei angenommen, daß die Decodierung derart ist, daß, wenn das GN1-Feld "0" ist, die Ausgangsleitung l 410 "1" ist, und wenn das GN1-Feld "1" ist, die Ausgangsleitung l 411 "1" ist, und wenn es "2" ist, die Ausgangsleitung l 412 "1" ist. Bei dem hier betrachteten Befehl bezeichnet das R1-Feld des RG-Registers r 400 das Einschreiben in das Vektorregister VR 0 (W1 = "1", GN1 = "0"). Somit ist nur die Leitung l 410 "1". Die Ausgangsleitungen l 410-l 417 des Decodierers b 430 werden den Vektorregistersteuerschaltungen b 410-b 417 (Fig. 11) und der Vektorregisterdateneinheit U 41 zugeführt. Die Decodierer b 433-b 435 starten das Auslesen aus dem Vektorregister. Es sind nicht das W1-, W2- und W3-Feld, sondern die Umkehrungen dieser durch die Nichtglieder g 420-g 422, die den Decodiergültigkeitsanschlüssen E mit UND-Gliedern A über die Leitungen l 589-l 591 zugeführt werden, und die Decodierung ist nur gültig, wenn das Ri-Feld des RG-Registers r 400 für das Auslesen ist (Wi = "0"). Die übrigen Aspekte sind identisch mit dem Decodierer b 430. Die Ausgänge der Decodierer b 433-b 435 werden den Vektorregister­ steuereinheiten b 410-b 417 und der Vektorregisterdateneinheit U 41 über die ODER-Glieder g 440-g 447 und die Leitungen l 400-l 407 als Startsignale zugeführt. Bei dem vorstehenden Ausführungsbeispiel kann der Decodierer b 433 entfallen, und der Ausgang des Wählers S 400 kann dem Decodierer b 434 zugeführt werden. In diesem Fall müssen die Ausgänge des W1- und des W2-Felds sowie des GN1- und des GN2-Felds dem Wähler S 400 zugeführt werden.
Der Decodierer b 436 sendet das Startersignal für die Operanden­ steuerschaltungen b 420-b 423. Die Leitung l 419 wird dem Decodiergültigkeitsanschluß E zugeführt, und die Betriebsmittelart und die Betriebsmittelnummer vom RS-Register r 402 werden dem Dateneingangsanschluß DI zugeführt. Sie werden decodiert, so daß eine der Leitungen l 440-l 443 "1" wird. Das "1"-Signal auf den Leitungen l 440-l 443 dient als Startsignal für die Operandensteuerschaltungen b 420-b 423.
Der Decodierer b 437 gibt an, wenn es nicht erforderlich ist, zwei Vektorelemente durch die Operandensteuerschaltungen b 420-b 423 zu synchronisieren. Die Synchronisation von zwei Operanden ist dann nicht erforderlich, wenn die Vektorinformation aus einem Vektorregister im Hauptspeicher gespeichert wird, wenn die Vektorinformation zwischen einem Paar von Vektorregistern übertragen wird oder wenn die Vektorinformation in einem Vektorregister umgesetzt und in einem anderen Vektorregister gespeichert wird, d. h. wenn nur ein Vektorregister auszulesen ist und das R3-Feld des Befehls nicht notwendig ist. In einem solchen Fall ist das V3-Feld des RG-Registers r 400 "0". Der Decodierer b 437 hat einen Decodiergültigkeitsanschluß E mit einem UND-Glied A mit zwei Eingängen, dem die Leitung l 419 und der Umkehrwert des Ausgangs des U3-Feldes des RG-Registers r 400 durch das Nichtglied g 423 zugeführt werden. Der Decodierer b 437 decodiert die Betriebsmittelart und die Betriebsmittelnummer, die vom RS-Register r 402 zugeführt werden, und erzeugt einen "1"-Ausgang zu einer der Leitungen l 450-l 453. Die Ausgänge des Decodierers b 437 sind mit den Operandensteuerschaltungen b 420-b 423 über die Leitungen l 450-l 453 verbunden.
Die Betriebsmittelart und -nummer im RS-Register r 402 werden auch den S-G-Umsetzern b 401, b 404 und b 405 und den G-S-Umsetzern b 402 und b 403 über die Leitung l 429 zugeführt.
Die zu verarbeitende Vektorlänge im RVL-Register r 403 wird den Operandensteuerschaltungen b 420-b 423 über die Leitung l 469 zugeführt.
(iv) S-G-Umsetzer
Fig. 13 zeigt die Schaltung des S-G-Umsetzers b 401, die das vom Betriebsmittel zu der Vektorregisterschaltung übermittelte Datengültigkeitssignal für die durch das Befehlsleitwerk U 3 bezeichnete Registernummer liefert.
Dabei wird die Betriebsmittelart dem Datenanschluß des Decodierers b 439 über die Leitung l 429 zugeführt, die Schreib-Vektorregisternummer wird dem dem Betriebsmittel entsprechenden Register r 410-r 413 über die Leitung l 439 zugeführt, und das Befehlsstartsignal ST wird dem Decodiergültigkeitsanschluß E des Decodierers b 439 über die Leitung l 419 zugeführt. Die Register r 410-r 413 entsprechen den Speicheranforderungseinheiten U 10 und U 11 bzw. den ALE′s U 20 und U 21. Die Leitung l 439 führt die Registernummer GN1 sowie das Signal V, das die Gültigkeit der Registernummer bezeichnet, wie in Verbindung mit Fig. 12 erläutert wurde. Diese Signale werden durch den Decodierer b 439 in diejenigen rückgesetzt, die der Betriebsmittelart und der Betriebsmittelnummer oder der Leitung l 429 der Register r 410-r 413 entsprechen. Die Registernummern GN1 in den Registern r 410-r 413 werden den Decodiereingängen der Decodierer b 440-b 443 zugeführt, und die V-Bits werden den ersten Eingängen der Decodiergültigkeitsanschlüsse E mit UND-Gliedern A der Decodierer b 440-b 443 zugeführt. Die Datengültigkeitssignale von den Speicheranforderungseinheiten U 10 und U 11 und den ALE′s U 20 und U 21 werden den zweiten Eingängen der Decodiergültigkeitsanschlüsse E über die Leitungen l 46, l 46′, l 29 und l 29′ zugeführt. Wenn z. B. der Ausgang "1" des V-Feldes im Register r 410 dem UND-Glied des Decodierers b 440 zugeführt wird, befindet sich der Decodierer b 440 im Decodiergültigkeitsstatus, wenn von der Leitung l 46 ein "1"-Signal zugeführt wird, und der Ausgang des GN-Feldes des Registers r 410 wird decodiert, so daß einer der Ausgänge 0-7 des Decodierers "1" wird und eine der Ausgangsleitungen l 420-l 427 der ODER-Glieder g 430-g 437, die mit den jeweiligen Ausgängen des Decodierers verbunden sind, "1" wird. Die Ausgangsleitungen l 420-l 427 entsprechen den Vektorregistern VR 0-VR 7 und liefern die Datengültigkeitssignale zu den jeweiligen Vektorregistersteuerschaltungen 0-7.
Wenn die Information einmal in den Registern r 410-r 413 gesetzt ist, wird der "1"- oder "0"-Status auf der Leitung l 46 zu einer der Leitungen l 420-l 427 übermittelt. Es ist zu beachten, daß, solange die Registernummern in den Registern r 410-r 413 unterschiedlich sind, die Signale auf den Leitungen l 46, l 46′, l 29 und l 29′ den entsprechenden Leitungen l 420-l 427 gleichzeitig zugeführt werden können. Die Signale können gleichzeitig für bis zu vier Registernummern zugeführt werden. Auf diese Weise können bis zu vier Betriebsmittel parallel betrieben werden. Der Schaltungsteil des S-G-Umsetzers b 401, der das letzte Vektordatensignal liefert, das von dem Betriebsmittel zu der Vektorregistersteuerschaltung 0-7 geliefert wird, die der von dem Befehlsleitwerk U 3 bezeichneten Registernummer entspricht, wird dadurch erhalten, daß die Leitungen l 46, l 46′, l 29 und l von Fig. 13 durch die Leitungen l 44, l 44′, l 26 und l 26′ ersetzt werden und die Leitungen l 420-l 427 durch die Leitungen l 430-l 437 ersetzt werden.
Der S-G-Umsetzer b 404 umfaßt eine Schaltung zum Aussenden der Sendevektordatensignale, die von den Operandensteuerschaltungen 0-3 für die jeweiligen Betriebsmittel über die Leitungen l 520-l 523 zu den Vektorregistern mit den Registernummern geliefert werden, die durch das Befehlsleitwerk U 3 bezeichnet sind, auf den Leitungen l 540-l 543 sowie eine Schaltung zum Aussenden der letzten Vektordatensignale, die von den Operandensteuerschaltungen 0-3 über die Leitungen für die durch das Befehlsleitwerk U 3 bezeichneten Betriebsmittelnummern geliefert werden, auf den Leitungen l 530-l 537. Die erstgenannte Schaltung wird erhalten durch Substitution der Leitung l 439 von Fig. 13 durch die Leitung l 449, Ersatz der Leitungen l 46, l 46′, l 29 und l 29′ durch die Leitungen l 520-l 523 sowie Ersatz der Leitungen l 420-l 427 durch die Leitungen l 540-l 547. Die zweitgenannte Schaltung wird erhalten durch Ersatz der Leitungen von Fig. 13 durch die Leitungen l 459, l 510-l 513 und l 530-l 537. Der S-G-Umsetzer b 405 kann ähnlich der Schaltung b 404 ausgeführt sein und wird nicht näher erläutert. Die Signalleitungsnummern nach der Substitution sind in Fig. 13 in Klammern nach den Signalleitungsnummern l 46, l 46′, l 29, l 29′, l 420-l 427 angegeben.
(v) G-S-Umsetzer
Fig. 14 zeigt ein Detail des G-S-Umsetzers b 402 (Fig. 11). Die Betriebsmittelart und -nummer werden von der Befehlsstart- Steuerstufe b 400 über die Leitung l 429 und die Registernummer über die Leitung 449 und das Setzsignal über die Leitung l 419 zugeführt. Die Betriebsmittelart und -nummer auf Leitung l 429 werden in dasjenige der Register r 420-r 427 für die Vektorregister gesetzt, das der Registernummer auf Leitung l 449 entspricht. Die Bezeichnung des Registers, in das sie gesetzt werden, wird durch den Decodierer b 449 gesteuert, der die Registernummer auf Leitung l 449 zum Datenanschluß empfängt und das Setzsignal aus Leitung l 419 und das Registernummergültigkeitssignal V auf Leitung l 439 zum UND-Glied A des Decodierers b 449 empfängt. Die Ausgänge der Register r 420-r 427 werden den entsprechenden Decodierern b 450-b 457 zugeführt. Wenn das Vektorregister-Lesefreigabesignal, das jedem Decodiergültigkeitsanschluß der Decodierer b 450-b 457 von den entsprechenden Vektorregistersteuerschaltungen 0-7 über die Signalleitungen l 480-l 487 zugeführt wird, "1" ist, erzeugt jeder Decodierer b 450-b 457 einen "1"-Ausgang an einem der Ausgangsanschlüsse, die der Betriebsmittelart und -nummer, die vom Dateneingangsanschluß zugeführt wurden, entspricht. Infolgedessen wird eine der Leitungen l 490-l 493, die dem bezeichneten Betriebsmittel entspricht, "1" aufgrund eines der ODER-Glieder g 440-g 443, die mit den Ausgangsanschlüssen 0-3 der Decodierer b 450-b 457 verbunden sind. Wenn eine der Leitungen l 480-l 487 "0" ist, wird der entsprechende Decodierer b 450-b 457 ungültig zum Decodieren, und der "1"- und "0"-Status der Leitungen l 480-l 487 wird zu den entsprechenden Signalleitungen l 490-l 493 übermittelt.
Wenn die Betriebsmittelarten und -nummern, die in die Register r 420-r 427 gesetzt sind, voneinander verschieden sind, können die "1"-Signale auf den Leitungen l 480-l 487 gleichzeitig den entsprechenden Leitungen l 490-l 493 zugeführt werden. Die Signale können gleichzeitig an bis zu vier Betriebsmittel angelegt werden. Auf diese Weise können bis zu vier Betriebsmittel gleichzeitig arbeiten.
Der G-S-Umsetzer b 403 von Fig. 11 kann durch Ersatz der Signalleitung l 449 von Fig. 14 durch die Leitung l 459 und Ersatz der Leitungen l 490-l 497 durch die Leitungen l 500-l 507 erhalten werden. In Fig. 14 sind die Signalleitungsnummern nach der Substitution in Klammern hinter den zu ersetzenden Signalleitungsnummern angegeben.
(vi) Vektorregistersteuerschaltung
Fig. 15 zeigt ein Detail der Vektorregistersteuerschaltung b 410. Die übrigen Vektorregistersteuerschaltungen 1-7 sind ebenso ausgelegt und können erhalten werden durch Ersatz der Leitungen l 400, l 410, l 420, l 430, l 460 und l 480 durch die hinter diesen Nummern in Klammern angegebenen Leitungsnummern. Jede Steuerschaltung arbeitet in einer von drei Betriebsarten, nämlich Auslesen, Einschreiben und Verketten (gleichzeitiges Auslesen und Einschreiben).
(a) Einschreiben
Wenn der Einschreibstart zum Vektorregister VR 0 durch die Befehlsstart-Steuerstufe b 400 (Fig. 14) über die Leitung l 410 zugeführt wird, wird das den Einschreibmodus bezeichnende Flipflop f 420 gesetzt, und der Aufwärts-Abwärtszähler (U/D-Zähler) C 400 wird gelöscht. Er erzeugt den folgenden Ausgang für die jeweiligen Eingänge zu den U/D-Anschlüssen:
Wenn das Datengültigkeitssignal von dem S-G-Umsetzer b 401 über die Leitung l 420 zugeführt wird, wird dieses Signal an den U-Anschluß des U/D-Zählers C 400 über das UND-Glied g 420 angelegt, das nunmehr aufgrund des "1"-Ausgangs vom Flipflop f 420 geöffnet ist, so daß der Inhalt des U/D-Zählers C 400 um Eins erhöht wird. Das Datengültigkeitssignal wird ferner der Vektorregisterdateneinheit U 41 (Fig. 10) zugeführt. Wenn das letzte Vektordatensignal von dem S-G-Umsetzer b 401 über die Leitung l 430 zugeführt wird, bewirkt es ein Rücksetzen des Flipflops f 420 zur Beendigung des Einschreibemodus, und dieses Signal wird ferner dem Befehlsleitwerk U 3 (Fig. 1) über die Leitung l 430 zum Rücksetzen des Bits (Wj) entsprechend der Einschreib-Vektorregisternummer (j) in das RGSW- Register r 306 (Fig. 3) zugeführt. Die Leitung l 430 und die Ausgangsleitungen l 431-l 437 der Vektorregistersteuerschaltungen 1-7 entsprechen der Leitung l 15 in Fig. 1.
(b) Auslesen
Wenn der Auslesestart des Vektorregisters VR 0 von der Befehlsstart-Steuerstufe b 400 (Fig. 11) über die Leitung l 400 gegeben wird, während das Einschreiben in das Vektorregister VR 0 nicht gestartet ist, wird das den Auslesemodus bezeichnende Flipflop f 421 gesetzt. Da sich das Flipflop f 420 im Rücksetzzustand befindet, ist die Ausgangsleitung l 480 des UND-Glieds g 453, dem der Ausgang des Flipflops f 420 über das Nichtglied g 451 und das ODER-Glied g 452 und der Ausgang des Flipflops f 421 zugeführt wird, "1". Das Signal auf Leitung l 480 wird dem G-S-Umsetzer b 402 (Fig. 11) als Auslese-Freigabesignal zugeführt. Infolgedessen wird, wie in Verbindung mit dem Befehlsleitwerk U 3 erläutert wurde, wenn ein Befehl das Vektorregister zum Auslesen benützt, der nachfolgende Befehl, der dieses Vektorregister zum Einschreiben benützt, erst gestartet, wenn das Auslesen beendet ist. Infolgedessen wird das Flipflop f 420 erst gesetzt, wenn das Auslesen beendet ist. Somit wird das Auslese-Freigabesignal der Leitung l 480 ständig zugeführt, bis das Flipflop f 421 rückgesetzt ist. Wenn sämtliche Elemente des Vektorregisters VR 0 ausgelesen sind, wird vom S-G-Umsetzer b 404 über die Leitung l 460 das letzte Vektordatensignal zugeführt, und das Flipflop f 421 wird dadurch rückgesetzt.
Die Leitung l 460 ist mit den Signalleitungen l 461-l 467 der Vektorregistersteuerschaltungen b 411-b 417 kombiniert unter Bildung der Leitung l 16, die zu dem RGSW-Register r 306 (Fig. 3) in dem Befehlsleitwerk U 3 führt und die Beendigung des Auslesens des Vektorregisters VR 0 bezeichnet und das Bit R 0 des Registers auf Null rücksetzt.
(c) Verketten
Die Verkettung erfolgt, wenn das Einschreiben in ein Vektorregister durch einen Befehl verlangt wird und das Auslesen aus dem Register vor dem Ende des Einschreibens durch einen weiteren Befehl angefordert wird. Wenn das Einschreiben angefordert wird, erfolgt das tatsächliche Einschreiben in das Vektorregister erst, wenn das Datengültigkeitssignal und die Einschreibinformation von dem Betriebsmittel ankommen, aber die zeitliche Beziehung zwischen der Ankunft des Datengültigkeitssignals und der Ausleseanforderung ist nicht wesentlich.
(c-1)
Wenn über die Leitung l 410 das Einschreiben angefordert und das Flipflop f 420 gesetzt wird, so daß der U/D-Zähler C 400 rückgesetzt wird, und dann über die Leitung l 400 das Auslesen angefordert wird, bevor das Datengültigkeitssignal von der Leitung l 420 ankommt, und das Flipflop f 421 gesetzt wird, bleibt der Ausgang eines positiven Detektors b 460, der mit dem Ausgang des U/D-Zählers C 400 verbunden ist und erfaßt, wenn der Inhalt des Zählers nicht kleiner als 1 ist, "0", und der Ausgang des Nichtgliedes g 451 ist ebenfalls "0", so daß die Ausgangsleitung l 480 des UND-Glieds g 453 "0" bleibt. Wenn das Datengültigkeitssignal auf der Leitung l 420 in einem Maschinenzyklus n ankommt, wird es dem U/D-Zähler C 400 durch das UND-Glied g 450 zugeführt und erhöht den Inhalt des Zählers C 400 um Eins. Somit wird der Ausgang des positiven Detektors b 460 "1", und das Vektorregister-Auslese­ freigabesignal wird der Leitung l 480 über das ODER-Glied g 452 und das UND-Glied g 453 zugeführt. Die Leitung l 480 ist mit dem D-Anschluß des U/D-Zählers C 400 verbunden. Wenn das nächste Datengültigkeitssignal anschließend intermittierend zugeführt wird, wird jedesmal das Auslesefreigabesignal zur Leitung l 480 geführt. Wenn andererseits das Datengültigkeitssignal kontinuierlich in und nach dem Maschinenzyklus (n +1) zugeführt wird, wird dem U-Anschluß und dem D-Anschluß "1" zugeführt, so daß sich der Zählerstand des Zählers C 400 nicht ändert, sondern "1" bleibt, und "1" wird der Leitung l 480 weiterhin zugeführt.
(c-2)
Es sei angenommen, daß über die Leitung 410 das Einschreiben angefordert wird, das Flipflop f 420 gesetzt wird, der U/D-Zähler C 400 rückgesetzt wird und dann das Datengültigkeits­ signal während einer Mehrzahl Maschinenzyklen ankommt und der U/D-Zähler C 400 jedesmal aufwärts zählt, um einen Zählerstand ungleich Null anzuzeigen, und das Flipflop f 421 durch den Auslesestart im Maschinenzyklus n gesetzt wird. Da der Ausgang des positiven Detektors b 460, der mit dem Ausgang des U/D-Zählers C 400 verbunden ist, "1" ist, wird das Vektorregister-Auslesefreigabesignal zur Leitung l 480 geführt. Da die Leitung l 480 zum D-Anschluß des U/D-Zählers C 400 führt, wird der Zählerstand des Zählers C 400 um Eins verringert, wenn nicht das Datengültigkeitssignal von der Leitung l 420 im nächsten Maschinenzyklus (n +1) zugeführt wird, und der Zählerstand bleibt unverändert, wenn es zugeführt wird. Diese Operation wird wiederholt, bis der Zählerstand des U/D-Zählers C 400 Null ist. Die Anzahl der Auslesefreigabesignale, die der Leitung l 480 nach dem Auslesestart zugeführt werden, ist gleich einer Summe des Zählerstands des U/D-Zählers C 400 vor dem Setzen des Flipflops f 421 und der Anzahl der anschließend der Leitung l 420 zugeführten Datengültigkeitssignale. Somit ist in den Fällen (c-1) und (c-2) sichergestellt, daß das Auslesen nicht über die Anzahl Vektorelemente hinaus erfolgt, die in das Vektorregister eingeschrieben sind. Es ist denkbar, daß der Inhalt des U/D-Zählers C 400 eine Differenz zwischen der Anzahl Vektorelemente, die in das Vektorregister eingeschrieben sind, und der Anzahl Vektorelemente, die daraus ausgelesen werden, bezeichnet.
Wenn das Einschreiben während der Verkettung beendet und das Flipflop f 420 rückgesetzt wird, ist der Inhalt des U/D-Zählers ohne Bedeutung, und die Operation gleicht dem Auslesen entsprechend (b).
(vii) Operandensteuerschaltung
Fig. 16 zeigt ein Detail 0 der Operandensteuerschaltung b 420. Die übrigen Operandensteuerschaltungen 1-3 sind ebenso aufgebaut, wobei nur die Signalleitungsnummern entsprechend den Klammerausdrücken in Fig. 16 geändert sind.
Wenn von der Befehlsstart-Steuerstufe b 400 über die Leitung l 440 das Startsignal zugeführt wird, wählt der Wähler S 410 die zu verarbeitende Vektorlänge (VL) (wobei angenommen wird, daß diese niemals kleiner als Eins ist) auf der Leitung l 469, und diese wird in den Vektorlängenzähler (VLCTR) C 403 gesetzt. Die U/D-Zähler C 401 und C 402 werden durch das Startsignal rückgesetzt. Das Flipflop f 431 wird gesetzt und speichert, daß die Verarbeitung der Operanden­ steuerschaltung 0 gültig ist. Wenn der Befehl, der die Speicheranforderungseinheit U 10 entsprechend der Operandensteuerschaltung 0 anfordert, das Auslesen aus nur einem Vektorregister verlangt (wobei angenommen wird, daß das R3-Feld des Befehls nicht das Auslesen des Vektorregisters bezeichnet), wird ein entsprechendes Signal, von der Befehlsstart- Steuerstufe b 400 über die Leitung l 450 gegeben und setzt das Flipflop f 430.
Es sei nun angenommen, daß das R2- und das R3-Feld des Befehls, der die ALE U 20 anfordert, das Auslesen desVektorregisters bezeichnen. In diesem Fall ist das Flipflop f 430 "0". Die Leitungen l 490 und l 500 senden die Vektorregister- Auslesefreigabesignale von den G-S-Umsetzern b 402 und b 403 zu den U-Anschlüssen der Zähler C 401 bzw. C 402. Diese Signale werden auf verschiedene Weise zugeführt.
Die Operation wird in jedem Maschinenzyklus in Abhängigkeit von den Eingangssignalen durchgeführt. Die Zähler C 401 und C 402 sind ebenso wie der Zähler C 400 (Fig. 15) ausgelegt, und der positiven Detektoren b 461 und b 462 sind ebenso wie der positive Detektor b 460 (Fig. 15) ausgelegt.
(a) Wenn beide Signale nicht zugeführt werden
Dieser Fall schließt die folgenden vier Fälle ein:
(a-1) Die U/D-Zähler C 401 und C 402 sind "0".
(a-2) Nur der U/D-Zähler C 401 ist positiv.
(a-3) Nur der U/D-Zähler C 402 ist positiv.
(a-4) Die U/D-Zähler C 401 und C 402 sind positiv.
(a-1) bis (a-3)
In diesen Fällen ist keiner der Ausgänge der UND-Glieder g 461-g 464 "1", und es wird kein Ausgangssignal erzeugt.
(a-4)
Dieser Fall tritt ein, nachdem die Vektorregister-Auslese­ freigabesignale über die Leitungen l 490 und l 500 zugeführt wurden. In diesem Fall sind die Ausgänge der positiven Detektoren b 461 und b 462 "1", und der erstere wird direkt dem UND-Glied g 464 zugeführt, während der letztere dem UND-Glied g 464 durch das ODER-Glied g 460 zugeführt wird. Der "1"-Ausgang vom UND-Glied g 464 wird dem UND-Glied g 466 durch das ODER-Glied g 465 zugeführt. Das UND-Glied g 464 empfängt den Ausgang des Flipflops f 431. Das UND-Glied g 466 empfängt ferner die Leitungen l 630 und l 631, wie noch erläutert wird.
Es sei nun angenommen, daß beide Leitungen "1" sind. Das Sendevektordatensignal wird der Ausgangsleitung l 520 des UND-Glieds g 466 zugeführt. Die Ausgangsleitung l 520 führt zu den D-Anschlüssen der U/D-Zähler C 401 und C 402, so daß deren Zählerstände um Eins verringert werden.
Die Ausgangsleitung l 520 führt zu dem VLCTR-Zähler C 403 als Setzsignal und verringert dessen Zählerstand um Eins. D. h., der Ausgang des VLCTR C 403 ist mit einem Abwärtszähler b 463 verbunden, und der verringerte Zählerstand wird dem Wähler S 410 zugeführt. Da das Befehlsstartsignal nun nicht mehr an dem Steueranschluß des Wählers S 410 über die Leitung l 440 anliegt, wird derAusgang des Abwärtszählers b 463 gewählt und in den VLCTR C 403 gesetzt. Die nächste Operation der Schaltung hängt von den Inhalten der U/D-Zähler C 401 und C 402 und den Eingängen der Vektorregister-Auslesefreigabesignale von den Leitungen l 490 und l 500 ab.
Wenn das Sendevektordatensignal an die Leitungen l 520 angelegt wird, wird, wenn ein "1"-Detektor b 464 erfaßt, daß der Inhalt des VLCTR C 403 vor der Abwärtszählung "1" ist, das Erfassungssignal zu dem UND-Glied g 467 geführt, das es mit dem Sendevektordatensignal UND-verknüpft und das letzte Vektordatensignal zur Leitung l 510 liefert. Die Flipflops f 431 und f 430 werden durch das Signal auf der Leitung l 510 rückgesetzt.
(b) Wenn nur das Signal auf Leitung l 490 zugeführt wird (c) Wenn nur das Signal auf Leitung l 500 zugeführt wird
Die Operationen sind für beide Fälle die gleichen. Die Operation für den Fall (b) wird nachstehend erläutert. Dieser Fall umfaßt die folgenden zwei Möglichkeiten:
(b-1) Der U/D-Zähler C 402 ist "0".
(b-2) Der U/D-Zähler C 402 ist positiv.
Fall (b-1)
Der Ausgang des positiven Detektors b 462 ist "0", somit ist keiner der Ausgänge der UND-Glieder g 461-g 464 "1". Infolgedessen sind der Ausgang des ODER-Glieds g 465 und der Ausgang des UND-Glieds g 466 "0", und die Eingänge zu den D-Anschlüssen der U/D-Zähler C 401 und C 402 bleiben "0". Das Sendevektordatensignal wird der Leitung l 520 nicht zugeführt. Da das Vektorregister-Auslesefreigabesignal von der Leitung l 490 an den U-Anschluß des Zählers C 401 angelegt wird, wird der Zähler C 401 um Eins aufwärtsgezählt.
Fall (b-2)
Der Ausgang des positiven Detektors b 462 ist "1", somit ist der Ausgang des UND-Glieds b 462 "1", und das Sendevektordatensignal wird auf die Leitung l 520 über das ODER-Glied g 465 und das UND-Glied g 466 gegeben. Die Rücksetzoperationen für den VLCTR C 403 und die Flipflops f 430 und f 431 sind die gleichen wie in (a-4) und werden daher nicht erläutert. Da die Leitung l 520 "1" ist, sind die D-Anschlüsse der U/D-Zähler C 401 und C 402 "1". Da das "1"-Signal dem U-Anschluß des U/D-Zählers C 401 zugeführt wird, ändert sich dessen Inhalt nicht. Da das "0"-Signal dem U-Anschluß des U/D-Zählers C 402 zugeführt wird, wird dessen Zählerstand um Eins abwärts­ gezählt.
(d) Wenn die Signale auf den Leitungen l 490 und l 500 gleichzeitig zugeführt werden
Dieser Fall schließt die folgenden vier Möglichkeiten ein:
(d-1) Die U/D-Zähler C 401 und C 402 sind "0".
(d-2) Nur der U/D-Zähler C 401 ist positiv.
(d-3) Nur der U/D-Zähler C 402 ist positiv.
(d-4) Die U/D-Zähler C 401 und C 402 sind positiv.
(d-1)
Das Ausgangssignal des UND-Glieds g 461 ist "1" durch die Vektorregister-Auslesefreigabesignale auf den Leitungen l 490 und l 500. Infolgedessen wird das Sendevektordatensignal zur Leitung l 520 gegeben. Die U-Anschlüsse der U/D-Zähler C 401 und C 402 sind "1", und die D-Anschlüsse sind ebenfalls "1" durch das "1"-Signal auf der Leitung l 520. Daher ändern sich die Inhalte der Zähler nicht. Die Steueroperation für den VLCTR C 403 ist die gleiche wie in (a-4).
(d-2) bis (d-3)
Die Operationen sind für beide Fälle gleich. Nachstehend wird die Operation für den Fall (d-2) erläutert.
Dabei ist nur der Inhalt des U/D-Zählers C 401 positiv, so daß der Ausgang des positiven Detektors b 461 "1" ist und die Ausgänge der UND-Glieder g 461 und g 463 "1" sind. Infolgedessen wird das Sendevektordatensignal zur Leitung l 520 über das ODER-Glied g 465 und das UND-Glied g 466 gegeben. Die Steueroperation für den VLCTR C 403 entspricht (a-4) und wird nicht erläutert. Die Inhalte der U/D-Zähler C 401 und C 402 ändern sich nicht, was dem Fall (d-1) entspricht.
(d-4)
Die Inhalte der U/D-Zähler C 401 und c 402 sind positiv, und daher sind die Ausgänge der positiven Detektoren b 461 und b 462 "1", und sämtliche Ausgänge der UND-Glieder g 461-g 464 sind "1". Die Operation entspricht dem Fall (d-2), und das Sendevektordatensignal wird auf die Leitung l 520 gegeben. Die Inhalte der U/D-Zähler C 401 und C 402 werden nicht geändert.
Wie aus der obigen Erläuterung der Operationen ersichtlich ist, dienen die U/D-Zähler C 401 und C 402 in der Synchronisierung des Aussendens der beiden Operanden (Vektorinformationen). Wenn nur ein Vektordaten-Auslesefreigabesignal zugeführt wird, wird es in dem Zähler gespeichert (indem es diesen um Eins aufwärtszählt), und der Zähler wird beim Auslesen um Eins abwärtsgezählt. Wenn die Vektorregister- Auslesefreigabesignale gleichzeitig zugeführt werden, ändert sich der Inhalt des Zählers nicht.
Wenn nur einer der Operanden verwendet wird, wird das Flipflop f 430, das anzeigt, daß nur ein Operand eingesetzt wird, beim Start der Operandensteuerschaltung gesetzt. Der Ausgang des Flipflops f 430 wird dem Eingang des ODER-Glieds g 460 zugeführt, dem auch der Ausgang des positiven Detektors b 462 zugeführt wird. Somit wird der Ausgang des ODER-Glieds g 460 "1", und zwar unabhängig vom Inhalt des U/D-Zählers C 402. Infolgedessen wird das Sendevektordatensignal nur durch das der Leitung l 490 zugeführte Vektorregister- Auslesefreigabesignal erzeugt.
Die in Fig. 16 gezeigte Leitung l 630 sendet erforderlichenfalls ein Sendeerlaubnissignal für das Sendevektordatensignal. (Bei der vorliegenden Erfindung ist dies nicht erforderlich). Es wird z. B. eingesetzt, wenn die Vektorinformation (und Datengültigkeitssignale) zu der ALE mit mindestens einem vorbestimmten Zeitintervall geliefert werden sollen (wenn z. B. die ALE die Informationen nicht kontinuierlich empfangen kann). In diesem Fall wird das Sendeerlaubnissignal von der Operandensteuerschaltung erzeugt. Z. B. wird ein Ausgang eines Flipflops, das durch das Datengültigkeitssignal rückgesetzt und eine vorbestimmte Periode nach dem Datengültigkeitssignal gesetzt wird, als Erlaubnissignal genutzt. Es kann ferner dazu dienen, die Übertragung der Vektordaten zu der Speicheranforderungseinheit vorübergehend zu unterbrechen (wenn die Speicherung im Hauptspeicher verzögert werden soll). In diesem Fall wird das Erlaubnissignal durch das Speichersteuerwerk U 1 (Fig. 5) oder die Speicheranforderungseinheit erzeugt. Wenn die Leitung l 630 das Senden der Vektordaten nicht erlaubt, werden die Vektorregister- Auslesefreigabesignale, die von den Leitungen l 490 und l 500 zugeführt werden, den U/D-Zählern C 401 und C 402 zur Aktualisierung derselben zugeführt. Wenn das Erlaubnissignal von der Leitung l 630 zugeführt wird, wird der Ausgang des UND-Glieds g 464 "1", weil die Inhalte der U/D-Zähler C 401 und C 402 positiv sind, auch wenn die Signale von den Leitungen l 490 und l 500 nicht zugeführt werden, und das Sendevektordatensignal wird der Leitung l 520 zugeführt. Die U/D-Zähler C 401 und C 402 werden um Eins abwärtsgezählt.
Das Taktsteuerglied b 465 steuert den Sendetakt des Sendevektordatensignals. Wie im einzelnen in Fig. 18 gezeigt ist, besteht das Vektorregister aus zwei Speicherbausteinen, und diese werden abwechselnd einer Auslese- und einer Einschreiboperation unterworfen, so daß das Auslesen und das Einschreiben scheinbar gleichzeitig für das Vektorregister erfolgt. Wenn in den einen Speicherbaustein eingeschrieben wird, wird aus dem anderen ausgelesen, und beim nächsten Zyklus sind der Lese- und der Schreibmodus umgekehrt. Da der im Schreibmodus befindliche Speicherbaustein nicht gleichzeitig die Information auslesen kann, muß das Auslesen während dieses Zyklus verzögert werden, und die Information wird im nächsten Zyklus ausgelesen. Zu diesem Zweck wird das Senden des Sendevektordatensignals für einige Zeit ausgesetzt. Dies wird von dem Taktsteuerglied b 465 gesteuert. Wenn es bestimmt, daß das Sendevektordatensignal im nächsten Zyklus nicht gesendet werden soll, erzeugt es das "0"-Signal auf der Ausgangsleitung l 631, so daß der Ausgang vom UND-Glied g 466 unterdrückt wird.
Insbesondere arbeitet das Taktsteuerglied b 465 wie folgt. Wenn das Sendevektordatensignal in einem Maschinenzyklus zugeführt wird, erzeugt es den "1"-Ausgang im nächsten Maschinenzyklus, zwei Maschinenzyklen später, vier Maschinenzyklen später etc. Es erzeugt den "0"-Ausgang einen Maschinenzyklus später, drei Maschinenzyklen später etc. Diese zeitliche Steuerung ist in Fig. 17 gezeigt. Es ist zu beachten, daß bei kontinuierlicher Zuführung des Sendevektor­ datensignals das Taktsteuerglied b 465 kontinuierlich einen "1"-Ausgang erzeugt, weil der "1"-Ausgang im nächsten Maschinenzyklus zugeführt wird.
Bei dem vorliegenden Ausführungsbeispiel empfängt die Operandensteuerschaltung zwei Vektorregister-Auslesefreigabesignale. Es ist ohne weiteres möglich, daß sie drei oder mehr Vektorregister-Auslesefreigabesignale empfängt, um das Sendevektordatensignal zu erzeugen.
(viii) Vektorregisterdateneinheit
Nach Fig. 18 sind in den Vektorregisterschaltungen b 470-b 477 acht Vektorregister vorgesehen. Jedes Vektorregister besteht aus Speicherbausteinen wegen der großen Kapazität. Die Speicherbausteine werden adressiert, um Information aus dem adressierten Speicherplatz auszulesen oder in diesen einzuschreiben, aber die Informationen können nicht gleichzeitig aus den verschiedenen Adressen ausgelesen oder in sie eingeschrieben werden. Da es notwendig ist, daß bei der Verkettung gleichzeitig in ein Vektorelement eingeschrieben und aus einem anderen ausgelesen wird, besteht jedes Vektorregister aus zwei Speicherbausteinen m 400 und m 401, die bei dem vorliegenden Ausführungsbeispiel abwechselnd nacheinander ausgelesen und eingeschrieben werden. Somit kann das Auslesen und das Einschreiben an verschiedenen Adressen gleichzeitig durchgeführt werden.
Die Vektorelemente sind numeriert, so daß die geradzahligen und die ungeradzahligen Vektorelemente sich im selben Speicherbaustein befinden.
Nachstehend wird die Operation im Detail erläutert. Dabei wird das Auslesen und Einschreiben in bezug auf das Vektorregister UR 0 erläutert; die Operationen der übrigen Vektorregister sind identisch.
Wenn der Befehl gestartet wird, führt die Befehlsstart-Steuerstufe b 400 (Fig. 12) der Vektorregistersteuereinheit U 40 den S-G-Umsetzern b 480 und den G-S-Umsetzern b 481 und b 482 die Betriebsmittelart und -nummer über die Leitung l 429, die Einschreib-Vektorregisternummer über die Leitung l 439, die Auslese-Vektorregisternummern (für zwei Operanden) über die Leitungen l 449 und l 459 und ein Setzsignal dafür über die Leitung l 419 zu, und sie werden in den S-G-Umsetzer b 480 und die G-S-Umsetzer b 481 gesetzt. Die S-G/G-S-Umsetzer b 480, b 481 und b 482 entsprechen denjenigen nach den Fig. 13 und 14.
Das Einschreiben in das Vektorregister VR 0 findet wie folgt statt. Das Signal, das dem Vektorregister VR 0 den Einschreibstart- Befehl gibt, kommt von der Befehlsstart-Steuerstufe b 400 über die Leitung l 410. Dieses Signal setzt den Schreibadreßzähler C 411 auf Null. Der Ausgang des Schreibadreßzählers C 411 wird den Wählern S 420 und S 421 zugeführt, die auch den Ausgang des Leseadreßzählers C 410 empfangen. Der Ausgang des Taktsteuerglieds b 482 und dessen Umkehrwert durch das Nichtglied g 480 werden den Steueranschlüssen der Wähler S 420 und S 421 zugeführt. Das Taktsteuerglied b 482 umfaßt ein als Kippglied ausgebildetes Flipflop (nicht gezeigt), das einen in jedem Maschinenzyklus erzeugten Taktimpuls empfängt und abwechselnd nacheinander "0"- und "1"-Ausgänge für jeden Maschinenzyklus erzeugt. Infolgedessen steuert das Taktsteuerglied b 482 die Wähler derart, daß, wenn der Wähler S 420 den Ausgang des Leseadreßzählers C 410 ansteuert, der Wähler S 421 den Ausgang des Schreibadreßzählers C 411 ansteuert, und im nächsten Maschinenzyklus erfolgt die Ansteuerung umgekehrt. Der Ausgang des Wählers S 420 wird als Adresse des Speicherbausteins m 400 und der Ausgang des Wählers S 421 als Adresse des Speicherbausteins m 401 zugeführt. Wenn die Schreibinformation am S-G-Umsetzer b 480 von der ALE U 20 oder U 21 oder den Speicheranforderungseinheiten U 10 oder U 11 über die Leitung l 45, l 45′, l 29 oder L 29′ ankommt, wird die Information von dem durch die Leitung l 429 bezeichneten Betriebsmittel einer der Vektorregisterschaltungen b 470-b 477, die durch die Leitung l 439 bezeichnet ist, zugeführt. Da nunmehr angenommen wird, daß die Information in das Vektorregister VR 0 einzuschreiben ist, wird sie der Schaltung b 470 zugeführt. Die Einschreibinformation wird abwechselnd nacheinander in die Register VRIRE r 430 und VRIRO r 440 am Eingang der Schaltung b 470 unter Steuerung durch die VRIR-Eingangssteuerschaltung b 484 gesetzt. Die VRIR-Eingangssteuerschaltung b 484 empfängt das Datengültigkeitssignal auf Leitung l 420 und setzt die Information in VRIRE r 430 bzw. VRIRO r 440, wenn das Datengültigkeitssignal geradzahlig bzw. ungeradzahlig ist. Der Einschreibzyklus ist abwechselnd nacheinander den Speicherbausteinen m 400 und m 401 (wie noch erläutert wird) zugeordnet, so daß das Vektorelement eventuell in einem bestimmten Zyklus nicht eingeschrieben wird, sondern auf den nächsten Zyklus warten muß. Die nächste Einschreibinformation kann während des Wartens an derselben Vektorregisterschaltung b 470 ankommen. Infolgedessen sind zwei Register VRIRE und VRIRO vorgesehen, so daß die beiden aufeinanderfolgenden Einschreibinformationen in die verschiedenen Speicherbausteine m 400 und m 401 eingeschrieben werden können. Das Einschreiben wird durch das Datengültigkeitssignal von der Vektorregistersteuerschaltung 0 (Fig. 14) über die Leitung l 420 angewiesen. Dieses Signal wird dem Einschreib-Taktsteuerglied b 483 zugeführt. Dieses erzeugt zwei Signale mit einer Periode von zwei Zyklen zu einem Zeitpunkt entsprechend Fig. 19 nach Maßgabe der geradzahligen und ungeradzahligen Einschreibbefehle. Diese Signale werden den UND-Gliedern g 481 und g 482 zugeführt, die auch den Ausgang des Taktsteuerglieds b 482 und dessen Umkehrwert durch das Nichtglied g 480 empfangen. Die Ausgänge der UND-Glieder g 481 und g 482 werden den Speicherbausteinen m 400 und m 401 als Einschreib-Gültigkeitssignale zugeführt. Der Schreibadreßzähler C 411 wird durch den Aufwährtszähler b 481 um Eins aufwärtsgezählt und markiert die nächste Adresse. Dies wird vom Ausgang des ODER-Glieds g 480 gesteuert, das die Ausgänge der UND-Glieder g 481 und g 482 ODER-verknüpft. Da das Einschreiben abwechselnd nacheinander in die Speicherbausteine m 400 und m 401 erfolgt, kann der Schreibadreßzähler C 411 nach dem Einschreiben in beide Speicherbausteine m 400 und m 401 um Eins aufwärtsgezählt werden. Bei dem vorliegenden Ausführungsbeispiel wird das wertniedrigste Bit des Inhalts des Schreibadreßzählers vernachlässigt zur Erzeugung der Schreibadresse, die dann den Wählern S 420 und S 421 zugeführt wird. Dies gilt in gleicher Weise für den Leseadreßzähler C 410. Auf diese Weise werden die Vektorelemente abwechselnd nacheinander in die Speicherbausteine m 400 und m 401 eingeschrieben. Das Ablaufdiagramm der obigen Operation ist in Fig. 19 gezeigt.
Das Auslesen aus dem Vektorregister VR 0 wird wie folgt durchgeführt. Zuerst wird das den Auslesestart aus dem Vektorregister VR 22837 00070 552 001000280000000200012000285912272600040 0002003248215 00004 227180 anweisende Signal der Befehlsstart-Steuerstufe b 400 über die Leitung l 400 zugeführt. Durch dieses Signal wird der Leseadreßzähler C 410 rückgesetzt. Da der Leseadreßzähler C 410 ursprünglich auf Null rückgesetzt wurde, werden die Adressen den Speicherbausteinen m 400 und m 401 durch die Wähler S 420 und S 421 zugeführt, und die Information an der Adresse 0 wird ausgelesen und dem Wähler S 422 zugeführt. Die Inversion des Ausgangs des Taktsteuerglieds b 482 durch das Nichtglied g 480 wird dem Steueranschluß des Wählers S 422 zugeführt und zeigt an, welche der aus den Speicherbausteinen ausgelesenen Informationen auszuwählen ist. Somit wird derAusgang des Speicherbausteins m 400 im Lesezyklus für den Speicherbaustein m 400 angesteuert, und der Ausgang des Speicherbausteins m 401 wird im nächsten Zyklus angesteuert. Die ausgewählte Information wird kurzzeitig in das Register VROR r 450 gesetzt und dann zu der Information für das Betriebsmittel durch die G-S-Umsetzer b 481 und b 482 umgesetzt. Wenn es sich um die von der ALE U 20 zu verarbeitende Information handelt, wird sie der ALE U 20 über die Leitung l 141 zugeführt. Die Information zu der Speicheranforderungseinheit (im Hauptspeicher zu speichernde Daten) kann nur eine Information sein, und es wird nur ein G-S-Umsetzer verwendet. Die Schaltung b 481 dient bei dem Ausführungsbeispiel der G-S-Umsetzung. Jedesmal, wenn das Vektorelement der Vektorinformation gesendet wird, wird das Aktualisierungssignal für den Leseadreßzähler C 410 des Vektorregisters von der Vektorregistersteuereinheit U 40 über die Leitung l 470 zugeführt. Somit wird der Leseadreßzähler C 410 jedesmal um Eins abwärtsgezählt. Die Aktualisierung erfolgt durch Rückführung des Ausgangs des Zählers C 410 zum Eingang des Zählers C 410 über den Aufwärtszähler b 485.
Wie vorstehend beschrieben ruft die Vektorregistereinheit die dem Betriebsmittel zuzuführende Vektorinformation ab und speichert die vom Betriebsmittel zugeführte Vektorinformation. Da dem Betriebsmittel für die Operation zwei Informationen zuzuführen sind, müssen diese übermittelt werden, nachdem beide Vektorinformationen empfangen wurden. Ferner müssen die in zwei Vektorregistern mit einem infolge der Verkettung willkürlichen Intervall gespeicherten Vektorelemente ausgelesen werden, nachdem beide empfangen wurden. Zu diesem Zweck ist eine Schaltung vorgesehen, die erfaßt, ob das Auslesen erlaubt ist, und es ist jeweils eine Schaltung für jedes Betriebsmittel vorgesehen, die erfaßt, ob zwei Informationen ausgelesen werden können, und die Daten werden nur aus dem Vektorregister ausgelesen, wenn das Auslesen möglich ist. (Tatsächlich ist die Information bereits ausgelesen, und der Leseadreßzähler ist für den nächsten Lesevorgang aktualisiert.)
(7) Speicheranforderungseinheit
Fig. 20 zeigt ein Detail der Speicheranforderungseinheit U 10. Die Operation derselben ist unterteilt in die Initialisierung beim Start des Befehls, Abrufen aus dem Hauptspeicher und Speichern im Hauptspeicher.
(i) Initialisierung beim Start des Befehls
Nach Fig. 20 sendet das Befehlsleitwerk U 3 das Befehlsstartsignal über die Leitung l 10, die Betriebsmittelart und -nummer über die Leitung l 13, den OP-Code über die Leitung l 11, die Registernummer über die Leitung l 12 und die zu verarbeitende Vektorlänge über die Leitung l 14. Die Betriebsmittelart und -nummer auf Leitung l 13 werden von dem Decodierer b 100 decodiert, und wenn es eine Anforderung an seinen eigenen Speicher ist, erzeugt der Decodierer b 100 einen "1"-Ausgang, der dem UND-Glied g 100 zusammen mit dem Befehlsstartsignal auf Leitung l 10 zugeführt wird, und das UND-Glied g 100 erzeugt den "1"-Ausgang auf der Ausgangsleitung l 100. Die Leitung l 100 führt zu dem Flipflop f 100 und setzt dieses und wird ferner den Setzanschlüssen der Register MIR r 100 und MGR r 101 zugeführt, um darin den OP-Code bzw. die Registernummer zu setzen. Die Leitung l 100 wird ferner dem Steueranschluß des Wählers D 103 zugeführt, der die Vektorlänge auf Leitung l 14 ansteuert und die Vektorlänge in den Vektorlängenzähler MVLCTR C 100 setzt. Die Leitung l 100 ist ferner an den Setzanschluß des MVLCTR C 100 gekoppelt. Damit ist die Initialisierung abgeschlossen.
(ii) Abrufen aus dem Hauptspeicher
Das Abrufen aus dem Hauptspeicher erfolgt durch Decodierung der Ausgänge des MIR r 100, in das der OP-Code gesetzt ist, durch den Decodierer b 101. Die Ausgangsleitung l 20 des Decodierers b 101 wird dem Speichersteuerwerk U 1 (Fig. 1) zugeführt, um entweder Abrufen oder Speichern zu bezeichnen, und wird ferner den Steueranschlüssen der Wähler S 104, S 105, S 106 und S 107 zugeführt, die die "F"-Eingänge ansteuern. Wenn das MIR r 100 die Speicherung im Hauptspeicher bezeichnet, steuern die Wähler die "S"-Eingänge an.
Die Ausgänge des Vektoradreßregisters U 5 und des Vektoradreß- Inkrementregisters U 6 (Fig. 1) werden den Wählern S 100 und S 101 über die Leitungen l 18 bzw. l 19 zugeführt, und die Inhalte des des Vektoradreßregisters U 5 und des Vektoradreß- Inkrementregisters U 6, die vom Ausgang des MGR r 101, in dem die Registernummer gespeichert ist, bestimmt sind, wird gewählt. Die Vektoradresse wird in das Vektoradreß-Arbeitsregister WVAR r 110 und das Vektoradreß-Arbeitsinkrementregister WVAIR r 111 durch den Wähler S 102 gesetzt. Das Setzen in diese Register wird durch diese Ausgangsleitung l 101 des Flipflops f 100 gesteuert. Die Leitung l 101 ist ferner an den Steueranschluß des Wählers S 102 angeschlossen zur Wahl des Ausgangs des Wählers S 100. Wenn die Vektoradresse in das WVAR r 110 gesetzt ist, wird die erste Vektoradresse dem Speichersteuerwerk U 1 über die Leitung l 21 zugeführt. Das Nichtnull-Erfassungsglied b 104, das an den Ausgang des MVLCTR C 100 angeschlossen ist, erzeugt den "1"-Ausgang (wobei angenommen ist, daß in den MVLCTR eine Vektorlänge von nicht weniger als Eins gesetzt ist), und dieser wird dem Speichersteuerwerk U 1 vom Wähler S 107 als Adreßgültigkeitssignal auf der Leitung l 23 zugeführt. Die Leitung l 23 wird ferner dem Steueranschluß des MVLCTR C 100 zugeführt, um dessen Inhalt um Eins abwärtszuzählen. Der verringerte Ausgang des MVLCTR C 100 wird von dem Abwärtszähler b 103 erzeugt, der an den Ausgang des MVLCTR C 100 angeschlossen ist, und wird dem MVLCTR über den Wähler S 103 zugeführt. Die Leitung l 23 wird ferner dem Steueranschluß des WVAR r 110 zugeführt zur Steuerung des Setzens einer Summe aus dem Addierer b 102 für die Inhalte des WVAR r 110 und des WVAIR r 111 zum WVAR r 110 über den Wähler S 102. Infolgedessen wird das nächste Vektorelement in das WVAR r 110 gesetzt. Die obige Operation wird wiederholt, so daß die Vektoradresse sowie das Adreßgültigkeitssignal (auf Leitung l 23) dem Speichersteuerwerk U 1 über die Leitung l 21 zugeführt werden, um das Abrufen aus dem Hauptspeicher zu bewirken.
Nachdem der Abruf aus dem Hauptspeicher beendet ist, leitet das Speichersteuerwerk U 1 die abgerufene Information über die Leitung l 24 und das Datengültigkeitssignal über die Leitung l 25 zurück. Die abgerufene Information auf Leitung l 24 wird dem Datenregister DR r 120 über den Wähler S 105 zugeführt, und die Leitung l 25 wird dem Setzanschluß des DR r 120 über den Wähler S 104 zugeführt, so daß die abgerufene Information in das DR r 120 gesetzt wird und dessen Ausgang der Vektorregisterdateneinheit U 41 (Fig. 10) über die Leitung l 29 zugeführt wird. Das Datengültigkeitssignal auf Leitung l 25 wird kurzzeitig in das Flipflop f 102 gesetzt und der Vektorregistersteuereinheit U 40 über die Leitung l 30 zugeführt.
Wenn der MVLCTR C 100 abwärtsgezählt wird und sein Inhalt "1" erreicht, erfaßt der "1"-Erfasser b 105 das letzte Vektorelement, und das letzte Vektordatensignal wird dem Speichersteuerwerk U 1 über die Leitung l 32 zusammen mit der Vektoradresse (auf Leitung l 21) und dem Adreßgültigkeitssignal (auf Leitung l 23) zugeführt, und es wird über die Leitung l 33 synchron mit der abgerufenen Information rückgeführt. Das letzte Vektordatensignal auf Leitung l 33 wird kurzzeitig in das Flipflop f 103 gesetzt und der Vektorregistersteuereinheit U 4 (Fig. 10) vom Wähler S 106 über die Leitung l 26 zugeführt. Wenn der Inhalt des MVLCTR C 100 durch den Abwärtszähler b 103 Null erreicht, erzeugt der Nichtnull-Erfasser b 104 einen "0"-Ausgang, was das Senden des Adreßgültigkeitssignals unterbricht. Damit ist der Abruf der Vektorinformation beendet.
(iii) Speichern der Vektorinformation
Beim Speichern der Vektorinformation wird das die Speicherung bezeichnende Signal zuerst zum Speichersteuerwerk U 1 über die Leitung l 20 geleitet. Dieses Signal wird durch Decodierung des Inhalts des MIR r 100 mittels des Decodierers b 101 erzeugt. Das Senden der Hauptspeicheradresse für die zu speichernde Information entspricht der Abrufoperation. Die bezeichneten Vektoradreßregister und Vektoradreß-Inkrementregister werden von den Wählern S 100 und S 101 gewählt und in das WVAR r 110 bzw. das WVAIR r 120 gesetzt. Die Vektoradresse wird dem Speichersteuerwerk U 1 über die Ausgangsleitung l 21 des WVAR r 110 wie im Fall der Abrufoperation zugeführt.
Die zu speichernde Information wird der Vektorregistereinheit U 4 über die Leitung l 27 zusammen mit dem Datengültigkeitssignal (auf Leitung l 28) zugeführt. Die Vektorinformation wird in das DR r 120 durch den Wähler S 105 gesetzt. Das Setzen in das DR r 120 wird durch Zuführen des Datengültigkeitssignal auf Leitung l 28 zum Setzanschluß des DR r 120 über den Wähler S 105 gesteuert. Das Datengültigkeitssignal auf Leitung l 28 wird ferner dem Flipflop f 101 zugeführt und kurzzeitig in dieses gesetzt, und dann wird dessen Ausgang vom Wähler S 107 über die Leitung l 23 an das Speichersteuerwerk U 1 zusammen mit der zu speichernden Vektorinformation im DR r 120 geleitet. Somit führt das Speichersteuerwerk die Speicherung im Hauptspeicher durch. Das Adreßgültigkeitssignal auf Leitung l 23 wird dem Setzanschluß des WVAR r 110 zugeführt zur Aktualisierung des WVAR r 110 wie im Fall der Abrufoperation. Auf diese Weise wird, wenn die zu speichernde Information und das Datengültigkeitssignal von der Vektorregistereinheit gesendet werden, die Information der Adresse zugeordnet und an das Speichersteuerwerk geleitet, und das WVAR r 110 wird aktualisiert zur Vorbereitung der nächsten Vektorinformationsspeicherung. Diese Operation wird so lange wiederholt, wie die Information von der Vektorregistereinheit gesendet wird.
Bei der Speicheroperation funktioniert der MVLCTR C 100 in der gleichen Weise wie bei der Abrufoperation, hat jedoch keine Bedeutung. Wenn das letzte Vektordatensignal über die Leitung l 32 an das Speichersteuerwerk gesendet wird, wird es bei der Speicheroperation vernachlässigt.
(8) Arithmetik-Logik-Einheit (ALE)
Fig. 21 zeigt den allgemeinen Aufbau der ALE U 20. Die ALE U 21 ist ebenso ausgelegt. Bei dem vorliegenden Ausführungsbeispiel führen die ALE-Schaltungen b 210-b 213 Teiloperationen mit den jeweiligen Eingängen unter Steuerung durch die Operationssteuerglieder b 201-b 204 aus, wie dies allgemein bekannt ist. Es sei angenommen, daß die Verkettungsoperation in vier Stufen ausgeführt wird, wobei jedoch die Anzahl der Stufen keine Beschränkung darstellen soll. Die ALE′s U 20 und U 21 können verschiedene durch die Befehle bezeichnete Operation ausführen. Wenn die Vektorinformation ans Eingangsoperand, und das Datengültigkeitssignal zugeführt wird, wird es in den Verkettungsstufen verarbeitet, und die resultierende Vektorinformation und das Datengültigkeitssignal werden sychron erzeugt, und wenn das letzte Vektordatensignal zugeführt wird, wird dieses ebenfalls synchron mit dem Datengültigkeitssignal erzeugt.
Die allgemeine Funktionsweise wird nachstehend erläutert.
Das Befehlsstartsignal wird dem UND-Glied g 200 von dem Befehlsleitwerk U 3 über die Leitung l 10 zugeführt, und die Betriebsmittelart und -nummer werden dem Decodierer b 200 über die Leitung l 13 zugeführt, und der OP-Code wird dem Register r 200 über die Leitung l 11 zugeführt. Der Ausgang des Decodierers b 200 ist "1", wenn der Eingang zum Decodierer seine eigene ALE bezeichnet, und das Setzen des OP-Codes auf Leitung l 11 in das Register AIR r 200 wird durch das UND-Glied g 200 angewiesen. Der Ausgang des AIR r 200 wird den Operationssteuergliedern b 201-b 204 zugeführt, die die Operationen der ALE-Glieder b 210-b 213 in den jeweiligen Stufen steuern.
Wenn andererseits die Vektorregistereinheit die zu verarbeitende Vektorinformation über die Leitungen l 41 und l 42 und das Datengültigkeitssignal über die Leitung l 43 zuführt, wird die Vektorinformation in die Register r 210 und r 220 und das Datengültigkeitssignal in das Flipflop f 200 gesetzt. Das Datengültigkeitssignal (auf Leitung l 43) dient als Setzssignal für die Register r 210 und r 220. Die Inhalte in den Registern r 210 und r 220 werden in der ALE-Schaltung b 210 verarbeitet, und das Zwischenergebnis wird im nächsten Zyklus in die Register r 211 und r 221 gesetzt. Das Setzen der Register erfolgt unter der Steuerung durch den Ausgang des Flipflops f 200, dessen Ausgang auch dem Flipflop f 210 zugeführt wird. Ebenso werden die Ausgänge der Register r 211 und r 212 der ALE-Schaltung b 211 zugeführt und von dieser verarbeitet, und das Zwischenergebnis wird in die Register r 212 und r 213 im nächsten Zyklus gesetzt. Synchron damit wird der Ausgang des Flipflops f 201 zum Flipflop f 202 übertragen. Diese Operation wird wiederholt, so daß die Operation weitergeht, während die Information durch die ALE-Schaltung b 212, das Register r 213 und die ALE-Schaltung b 213 verschoben wird, und das Endergebnis wird in das Register r 214 gesetzt. Das Datengültigkeitssignal wird ebenfalls durch die Flipflops f 202, f 203 und f 204 übertragen. Das Operationsergebnis und das Datengültigkeitssignal dafür werden zu der Vektorregistereinheit über die Leitung l 45 bzw. l 46 rückgeführt.
Wenn die zu verarbeitende Information aus den Registern r 210 und r 220 zu den Registern 211 und r 221 überführt wird, wird die nächste zu verarbeitende Information in die Register r 210 und r 220 gesetzt, wie dies bei der konventionellen Verkettungs-ALE der Fall ist.
Wenn das letzte Vektordatensignal dem Flipflop f 210 über die Leitung l 40 zugeführt wird, wird es in das Flipflop f 210 gesetzt. Synchron mit der Überführung des Datengültigkeitssignals durch die Flipflops f 200-f 204 wird das letzte Vektordatensignal durch die Flipflops f 210-f 214 zur Leitung l 44 überführt und von dort zur Vektorregistereinheit U 4 rückgeleitet.
Wie vorstehend erläutert, empfängt die ALE die Vektorinformation und das Datengültigkeitssignal synchron, verarbeitet die Information synchron mit der Übertragung des Datengültigkeitssignals durch die Verkettungsstufe und erzeugt das Ergebnis synchron mit dem Datengültigkeitssignal. Das gleiche gilt für das letzte Vektordatensignal.
Zusammenfassung
Wie vorstehend erläutert, werden mit der Erfindung folgende Funktionen erzielt, die mit dem bekannten Vektorprozessor nicht erzielbar sind und die somit in einem Vektorprozessor größerer Leistungsfähigkeit resultieren.
  • 1) Beim Start des Befehls braucht nur der Nichtbelegtstatus der Betriebsmittel wie der ALE′s und der Speicheranforderungseinheiten sowie der zur Ausführung des Befehls erforderlichen Vektorregister geprüft zu werden; es ist nicht erforderlich zu prüfen, ob sämtliche für die Ausführung des Befehls erforderliche Informationen empfangen wurden. Somit wird die Steuerung zum Befehlsstart vereinfacht.
  • 2) Es ist eine Befehlswarteschlange, die eine Mehrzahl von decodierten Befehlen speichern kann, vorgesehen, und ferner ist die Schaltung zur Modifizierung der Reihenfolge der Befehlsausführung nach Maßgabe des Nichtbelegtstatus der ALE′s und der Speicheranforderungseinheiten vorgesehen, so daß kein logischer Konflikt auftritt. Somit sind die ALE′s und die Speicheranforderungseinheiten in wirksamer Weise nutzbar.
  • 3) Die Vektorregister sind so ausgelegt, daß in jedem Zyklus das Einschreiben und das Auslesen für die verschiedenen Adressen möglich ist, und die Verkettung ist möglich, so daß das Auslesen jederzeit dort gestartet werden kann, wo sich die Einschreibadresse befindet, und die Vektorelemente werden ausgelesen, ohne daß die Einschreibadresse übergangen wird.
  • 4) Beim Auslesen (einschließlich der Verkettung) des Vektorregisters, das die Vektorinformation als Operanden zu der ALE oder der Speicheranforderungseinheit liefert, werden die Vektordaten sämtlicher erforderlichen Operanden synchronisiert, und sämtliche Vektorelemente, die für die Operation erforderlich sind, werden der ALE oder der Speicheranforderungseinheit zugeführt, nachdem sie sämtlich verfügbar sind.

Claims (17)

1. Datenverarbeitungsanlage zur Verarbeitung von Vektordaten, bestehend aus:
  • - a) einem Hauptspeicher,
  • - b) Vektorregistern (VR),
  • - c) Betriebsmitteln (U 10, U 11; U 20, U 21) zur aufeinanderfolgenden Aufnahme und /oder Abgabe von Vektorelementen, zu denen wenigstens eine Verarbeitungseinheit (U 20 oder U 21) gehört, welche die aus einem Vektorregister aufeinanderfolgend abgegebenen Vektorelemente verarbeitet und die Ergebnisse dieser Verarbeitungsoperation als Vektorelemente in ein Vektorregister (VR) überträgt,
  • - d) einem Befehlsleitwerk (U 3) zum Decodieren von Befehlen und zum Erzeugen von Startsignalen für die Befehlsausführung in einem der Betriebsmittel, wobei dieses Befehlsleitwerk (U 3) den Ausführungsbeginn eines nachfolgenden Befehls markiert, der dasjenige Vektorregister zum Auslesen von Vektorelementen auswählt, welches zuvor von einem vorhergehenden Ausführungs-Startbefehl zum Einschreiben von Vektorelementen ausgewählt worden war, und
  • - e) einer Vektorregister-Steuereinheit (U 40) für das Auslesen von Vektorelementen aus einem ausgewählten Vektorregister (VR) und zu deren Weitergabe an ein ausgewähltes Betriebsmittel (U 10, U 11; U 20, U 21) und/oder für das Einschreiben von aus einem ausgewählten Betriebsmittel zugeführten Vektorelementen in ein ausgewähltes Vektorregister, wobei die Weitergabe von Vektorelementen aus einem Vektorregister an ein nachfolgend ausgewähltes Betriebsmittel parallel zum Einschreiben von Vektorelementen durch ein zuvor ausgewähltes erstes Betriebsmittel erfolgt,
dadurch gekennzeichnet,
daß die Vektorregister (VR) zum gleichzeitigen Einschreiben und Auslesen von Vektorelementen ausgebildet sind,
daß zumindest ein Betriebsmittel (U 10, U 11; U 20, U 21) zur absatzweisen Übertragung der Vektorelemente in eines der Vektorregister (VR) ausgebildet ist,
daß zumindest ein Betriebsmittel (U 10, U 11; U 20, U 21) zur Aufnahme der absatzweise von der Vektorregister-Dateneinheit U 41 zugeführten Vektorelemente ausgebildet ist,
daß das Befehlsleitwerk (U 3) den Ausführungsbeginn eines nachfolgenden Befehls unabhängig vom Zeitpunkt der Markierung des Ausführungsbeginns des vorhergehenden Befehls markiert, solange das durch einen nachfolgenden Befehl ausgewählte Betriebsmittel (aus U 10, U 11; U 20, U 21) verfügbar ist, und
daß die Vektorregister-Steuereinheit (U 40) die Übertragungs­ operationen so steuert, daß die bereits eingeschriebenen Vektorelemente parallel zum Einschreiben der verbleibenden Vektorelemente ausgelesen werden und das Auslesen eines als nächstes zu übertragenden Vektorelements unterbleibt, solange das nächste Vektorelement in dieses ausgewählte Vektorregister noch nicht eingeschrieben worden ist.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Betriebsmittel (U 10, U 11; U 20, U 21) wenigstens eine Speicheranforderungseinheit (U 10 oder U 11) enthalten zum Abruf von Vektorelementen vom Hauptspeicher zur absatzweisen Weitergabe der abgerufenen Vektorelemente an die Vektorregisterdateneinheit (U 41), wenn diese abgerufenen Vektorelemente absatzweise an diese Speicheranforderungseinheit (U 10; U 11) angeliefert werden, und zur Aufnahme der Vektorelemente, (U 41) angeliefert werden, zur absatzweisen Abgabe der aufgenommenen Vektorelemente an den Hauptspeicher damit diese dort gespeichert werden.
3. Datenverarbeitungsanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Befehlsleitwerk (U 3) enthält: eine Register-Nutzungsprüfschaltung (b 307 in Fig. 3) zur Feststellung, ob ein durch einen Befehl bestimmtes Vektorregister (VR) verfügbar ist und zwar auch dann, wenn das Vektorregister (VR) belegt ist zum Einschreiben von Vektorelementen durch einen bereits vorher gestarteten Befehl, solange als der Befehl das Vektorregister (VR) zum Auslesen von Vektorelementen anfordert.
4. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß das Befehlsleitwerk (U 3) enthält: ein Register-Statuswort-Register (r 306) zur Anzeige des Lese/Schreibzustandes der einzelnen Vektorregister (VR), damit die Register-Nutzungsprüfschaltung (b 307) die Verfügbarkeit eines Vektorregisters (VR) feststellen kann.
5. Datenverarbeitungsanlage nach Anspruch 4, dadurch gekennzeichnet, daß das Befehlsleitwerk (U 3) ein Betriebsmittel-Statuswort- Register (r 304) enthält zur Anzeige des Belegtzustandes des betreffenden Betriebsmittels (U 10, U 11; U 20, U 21) und eine Betriebsmittel-Nutzungsprüfschaltung (b 305, b 306) zur Feststellung der Verfügbarkeit eines Betriebsmittels (U 10, U 11; U 20 U 21), das von einem entschlüsselten Befehl angefordert wird aufgrund des angezeigten Belegtzustandes des angeforderten Betriebsmittels (U 10, U 11; U 20, U 21).
6. Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Vektorregister-Steuereinheit (U 40) eine Operanden- Steuerschaltung (b 420 bis b 423 in Fig. 11) enthält zur Feststellung, ob ein aus einem Vektorregister (VR) weiterzuleitendes Vektorelement bereits in das betreffende Vektorregister (VR) eingeschrieben ist oder nicht, und zwar aufgrund der Differenz zwischen der Anzahl der bereits in das Vektorregister (VR) eingeschriebenen Vektorelemente und der Anzahl der bereits daraus ausgelesenen, und zur Unterbindung des Auslesens des nächsten Vektorelements, wenn dieses noch nicht eingeschrieben ist.
7. Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet, daß die Operandensteuerschaltung (b 420 bis b 423) so gestaltet ist, daß sie Lese-Datengültigkeitssignale an das zweite Betriebsmittel (U 10, U 11; U 20, U 21) synchron mit jedem Auslesen eines Vektorelements abgibt.
8. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet,
daß der nachfolgende Befehl ferner ein erstes Vektorregister (VR) auswählt zum Einschreiben von Vektorelementen, die durch die Verarbeitungseinheit (U 20; U 21) geliefert werden, wenn durch den nachfolgenden Befehl diese Verarbeitungseinheit (U 20; U 21) als zweites Betriebsmittel ausgewählt wird;
daß die Vektorregister-Steuereinheit (U 40) eine Gültigkeits- Signalschaltung (f 210 bis f 214, Fig. 21) enthält, die auf die Lese-Datengültigkeitssignale der Operandensteuerschaltung (b 420 bis b 423) anspricht, um Schreib-Datengültigkeitssignale jeweils synchron mit der Abgabe eines Resultat-Vektorelements durch die Verarbeitungseinheit (U 20 oder U 21) zu liefern, und
daß die Vektorregisterdateneinheit (U 41) eine Schreibschaltung (C 411) enthält zum Einschreiben der Resultat- Vektorelemente in das erste Vektorregister (VR), wobei das Einschreiben durch die Schreib- Datengültigkeitssignale ausgelöst wird.
9. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet,
daß die Verarbeitungseinheit (U 20; U 21) so gestaltet ist, daß diese jeweils die Vektorelemente paarweise aufnehmen kann und Vektorelemente entsprechend dem Ergebnis der Operation mit den paarweisen Operanden liefern kann,
daß durch den nachfolgenden Befehl ferner ein zweites Vektorregister (VR) zur Lieferung eines weiteren Satzes von Operanden-Vektorelementen an die Verarbeitungseinheit (U 20; U 21) ausgewählt wird, und
daß durch die Operandensteuerschaltung (b 420 bis b 423 in Fig. 11) festgestellt wird, ob das eine oder das andere Vektorelement des nächsten Paares der Vektorelemente, das zur Übertragung ansteht, bereits in dem ausgewählten Vektorregister (VR) bzw. in dem zweiten Vektorregister (VR) eingeschrieben sind, um das Auslesen zu unterbinden, wenn das nächste Paar von Vektorelementen noch nicht in die betreffenden Register eingeschrieben ist.
10. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß in der Operandensteuerschaltung (b 420 bis b 423 in Fig. 11) für jedes Betriebsmittel (U 10, U 11; U 20, U 21), das einen Satz von Vektorelementen von den Vektorregistern (VR) anfordert, eine Steuerschaltung vorgesehen ist,
daß die Vektorregister-Steuereinheit (U 40) enthält:
  • - mehrere Vektorregister-Steuerschaltungen (b 410 bis b 417 in Fig. 11), die jeweils einem der Vektorregister (VR) zugeordnet sind und von denen jede einen Zähler (C 400 in Fig. 15) besitzt zur Zählung der Anzahl der Vektorregister, die bereits in das zugehörige Vektorregister (VR) eingeschrieben sind;
  • - einen ersten Verbindungswegwähler (b 402, b 403 in Fig. 11) zur wahlweisen Verbindung einer der Vektorregister- Steuerschaltungen (b 410-b 417), die einem der durch einen Befehl bestimmten Vektorregister (VR) zugeordnet ist, mit einer der Steuerschaltungen der Operandensteuerschaltung (b 420-b 423), die dem durch den Befehl angeforderten Betriebsmittel (U 10, U 11; U 20, U 21) zugeordnet ist, damit die betreffende Steuerschaltung (b 420-b 423) feststellen kann, ob das nächste auszulesende Vektorelement in dem bestimmten Vektorregister (VR) bereits eingeschrieben ist, und
  • - einen zweiten Verbindungswegwähler (b 404, b 405) zur wahlweisen Verbindung der Steuerschaltung der Operandensteuerschaltung (b 420-b 423) mit einer Lese-Einrichtung (C 410 in Fig. 18), die dem bestimmten Vektorregister (VR) zugeordnet ist, damit diese auf Lese-Anforderungen der betreffenden Steuerschaltung der Operandensteuerschaltung (b 420-b 423) reagieren kann, wenn festgestellt ist, daß die nächsten zu lesenden Vektorelemente bereits in das bestimmte Vektorregister (VR) eingeschrieben sind.
11. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Betriebsmittel (U 10, U 11; U 20, U 21) wenigstens zwei Speicheranforderungseinheiten (U 10, U 11) aufweisen,
von denen wenigstens eine so gestaltet ist, daß sie nach Maßgabe eines ersten Sonderbefehls absatzweise einen Satz von Vektorelementen vom Hauptspeicher abruft, um diese absatzweise an die Vektorregister­ dateneinheit (U 11) abzugeben, und
von denen wenigstens die andere so gestaltet ist, daß sie nach Maßgabe eines zweiten Sonderbefehls absatzweise einen Satz von Vektorelementen, die von der Vektorregisterdateneinheit (U 41) geliefert werden, in den Hauptspeicher einschreibt,
wodurch der parallele Abruf eines Satzes von Vektorelementen durch die eine Speicheranforderungseinheit (U 10, U 11) und das Einschreiben eines Satzes von Vektorelementen durch die andere Speicheranforderungseinheit (U 10 oder U 11) möglich ist.
12. Datenverarbeitungsanlage nach Anspruch 11, dadurch gekennzeichnet, daß eine der Speicheranforderungseinheiten (U 10, U 11) Datengültigkeitssignale liefert, wobei jeweils ein Datengültigkeitssignal ein abgerufenes Vektorelement begleitet.
13. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Speicheranforderungseinheiten (U 10, U 11) bestehen aus:
  • a) einen Adressengenerator (b 102, r 110, r 111 in Fig. 20) zur aufeinanderfolgenden Bildung von Adressen des Hauptspeichers,
  • b) eine Entschlüsselungseinrichtung (b 101 in Fig. 20), die auf den ersten Sonderbefehl hin den Adressengenerator (b 102, r 110, r 111) veranlaßt, aufeinanderfolgend Adressen an den Hauptspeicher als Abrufadressen für Vektorelemente abzugeben, und die auf den zweiten Sonderbefehl hin den Adressengenerator (b 102, r 110, r 111) veranlaßt, aufeinanderfolgend die Adressen als Speicheradressen der Vektorelemente an den Hauptspeicher abzugeben.
14. Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet,
daß das Befehlsleitwerk (U 3) enthält:
  • - Befehlswarte-Register (q 301 bis q 303 in Fig. 3) zur Aufnahme von Befehlen, die nicht ausgeführt werden können, weil entweder die angeforderten Betriebsmittel (U 10, U 11; U 20, U 21) oder die angeforderten Vektorregister (VR) nicht verfügbar sind,
  • - eine Betriebsmittel-Nutzungsprüfschaltung (b 306 in Fig. 3) zur Feststellung, ob ein Betriebsmittel (U 10, U 11; U 20, U 21) für einen der wartenden Befehle verfügbar ist,
  • - eine Register-Nutzungsprüfschaltung ( b 308 in Fig. ) zur Feststellung, ob ein Register (VR) für den wartenden Befehl verfügbar ist,
  • - eine Register-Konflikt-Prüfschaltung (b 309 bis b 311 in Fig. 3) zur Feststellung, ob ein nach den wartenden Befehlen entschlüsselter Befehl vor den wartenden Befehlen ausgeführt werden kann durch die Ermittlung, ob der spätere Befehl das Einschreiben eines Satzes von Vektorelementen in ein Vektorregister (VR) betrifft, aus dem nach dem einen oder anderen der wartenden Befehle das Lesen eines Satzes von Vektorelementen angefordert wird; und
  • - eine Befehls-Wahl-Schaltung (g 302 bis g 306 in Fig. 3), um mit der Ausführung eines wartenden Befehls zu beginnen, wenn sowohl das Betriebsmittel (U 10, U 11; U 20, U 21) als auch das Vektorregister (VR) verfügbar sind, und mit der Ausführung des später entschlüsselten Befehls zu beginnen, wenn sowohl das Betriebsmittel (U 10, U 11; U 20, U 21) als auch das Vektorregister (VR) verfügbar sind, jedoch nicht für einen bereits vorher wartenden Befehl, und kein Registerkonflikt festgestellt ist.
15. Verfahren zur Bearbeitung von Vektordaten in einer Datenverarbeitungsanlage, die einen Hauptspeicher, eine Vielzahl von Vektorregistern (VR), mehrere Betriebsmittel (U 10, U 11; U 20, U 21) mit zumindest einer Verarbeitungseinheit (U 20, U 21) und zumindest einer Speicheranforderungseinheit (U 10, U 11) zum Übertragen eines Satzes von Vektorelementen aus dem Hauptspeicher in ein Vektorregister oder zum Einschreiben eines aus einem Vektorregister ausgelesenen Satzes von Vektorelementen in den Hauptspeicher aufweist, wobei folgende Schritte durchgeführt werden:
  • - Abruf eines Satzes von Operanden-Vektorelementen durch die Speicheranforderungseinheit (U 10, U 11) aus dem Hauptspeicher und gleichzeitige Weitergabe an ein erstes Vektorelement (VR), sowie
  • - Verarbeiten dieses Satzes von Operanden-Vektorelementen in der Verarbeitungseinheit (U 20, U 21) und Übertragen eines dabei erhaltenen Satzes von Resultat-Vektorelementen in ein zweites Vektorregister und aus diesem in den Hauptspeicher,
dadurch gekennzeichnet,
daß der Satz von Operanden-Vektorelementen aus dem Hauptspeicher absatzweise abgerufen und auch absatzweise an das erste Vektorregister (VR) sowie an die Verarbeitungseinheit (U 20; U 21) übertragen wird, wobei die in dieses erste Vektorregister (VR) bereits eingeschriebenen Operanden- Vektorelemente dieses Satzes gleichzeitig mit dem Einschreiben der restlichen Vektorelemente ausgelesen werden,
daß der in der Verarbeitungseinheit (U 20, U 21) erzeugte Satz von Resultat-Vektorelementen absatzweise in das zweite Vektorregister (VR) eingeschrieben wird, wobei die in dieses zweite Vektorregister (VR) bereits eingeschriebenen Resultat-Vektorelemente gleichzeitig mit dem Einschreiben der restlichen Vektorelemente absatzweise ausgelesen und auch absatzweise durch die zweite Speicheranforderungseinheit (U 10, U 11) in den Hauptspeicher eingeschrieben werden, wobei beide Speicheranforderungseinheiten (U 10, U 11) gleichzeitig in Betrieb sind und der Abruf des Satzes von Operanden-Vektorelementen, seine Verarbeitung sowie das Einschreiben der Resultat-Vektorelemente absatzweise und gleichzeitig erfolgen.
DE19823248215 1981-12-28 1982-12-27 Vektorprozessor Granted DE3248215A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56210392A JPS58114274A (ja) 1981-12-28 1981-12-28 デ−タ処理装置

Publications (2)

Publication Number Publication Date
DE3248215A1 DE3248215A1 (de) 1983-08-18
DE3248215C2 true DE3248215C2 (de) 1989-08-24

Family

ID=16588567

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823248215 Granted DE3248215A1 (de) 1981-12-28 1982-12-27 Vektorprozessor

Country Status (4)

Country Link
US (1) US4617625A (de)
JP (1) JPS58114274A (de)
DE (1) DE3248215A1 (de)
GB (3) GB2113878B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4212202A1 (de) * 1991-04-12 1992-10-15 Hewlett Packard Co Logikgatter

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE74675T1 (de) * 1983-04-25 1992-04-15 Cray Research Inc Mehrprozessorsteuerung fuer vektorrechner.
US4967343A (en) * 1983-05-18 1990-10-30 International Business Machines Corp. Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
JPS6057467A (ja) * 1983-09-09 1985-04-03 Nec Corp ベクトルデ−タ処理装置
JPS6072069A (ja) * 1983-09-28 1985-04-24 Nec Corp ベクトル演算処理装置
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
JPS6077265A (ja) * 1983-10-05 1985-05-01 Hitachi Ltd ベクトル処理装置
DE3585972D1 (de) * 1984-07-02 1992-06-11 Nec Corp Rechner-vektorregisterverarbeitung.
JPH0640337B2 (ja) * 1984-10-03 1994-05-25 株式会社日立製作所 パイプライン演算装置
US5081573A (en) * 1984-12-03 1992-01-14 Floating Point Systems, Inc. Parallel processing system
EP0184791A1 (de) * 1984-12-07 1986-06-18 Nec Corporation Informationsverarbeitungsgerät zur schnellen Verarbeitung von Befehlen aus verschiedenen Gruppen
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
JPS61160176A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd ベクトル処理装置
JPS61173345A (ja) * 1985-01-29 1986-08-05 Hitachi Ltd 計算機システム
JPS61235985A (ja) * 1985-04-11 1986-10-21 Nec Corp ベクトルプロセツサ
JPH0766329B2 (ja) * 1985-06-14 1995-07-19 株式会社日立製作所 情報処理装置
EP0205193B1 (de) * 1985-06-17 1996-10-23 Nec Corporation Informationsverarbeitungssystem mit einer Steuerschaltung zum Abwarten einer Registererneuerung und einem Aufnahmemittel des zu erneuernden Registers
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US5036453A (en) * 1985-12-12 1991-07-30 Texas Instruments Incorporated Master/slave sequencing processor
JPS62159274A (ja) * 1986-01-08 1987-07-15 Hitachi Ltd 条件分岐の分割・複写によるベクトル化方式
US5121488A (en) * 1986-06-12 1992-06-09 International Business Machines Corporation Sequence controller of an instruction processing unit for placing said unit in a ready, go, hold, or cancel state
DE3750055T2 (de) * 1986-06-12 1995-01-05 Ibm Ablauffolgesteuerung und zugehörige Methode in einer Befehlsverarbeitungseinheit, um diese Einheit in einen Freigabe-, Ausführungs-, Halte- oder Auflösezustand zu versetzen.
US4974198A (en) * 1986-07-16 1990-11-27 Nec Corporation Vector processing system utilizing firm ware control to prevent delays during processing operations
JPH06103494B2 (ja) * 1986-11-18 1994-12-14 株式会社日立製作所 ベクトル処理装置の制御方式
JP2679994B2 (ja) * 1987-08-14 1997-11-19 株式会社日立製作所 ベクトル処理装置
JP2602240B2 (ja) * 1987-08-28 1997-04-23 株式会社日立製作所 マルチプロセツサシステム
US4980817A (en) * 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports
US5168573A (en) * 1987-08-31 1992-12-01 Digital Equipment Corporation Memory device for storing vector registers
JPS6462764A (en) * 1987-09-03 1989-03-09 Agency Ind Science Techn Vector computer
JP2810043B2 (ja) * 1987-11-13 1998-10-15 株式会社日立製作所 データ処理装置
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
US5113521A (en) * 1988-03-18 1992-05-12 Digital Equipment Corporation Method and apparatus for handling faults of vector instructions causing memory management exceptions
US4949250A (en) * 1988-03-18 1990-08-14 Digital Equipment Corporation Method and apparatus for executing instructions for a vector processing system
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in a vector processing system
JPH01258068A (ja) * 1988-04-07 1989-10-16 Fujitsu Ltd ベクトル処理装置におけるリンケージ制御方式
US4935849A (en) * 1988-05-16 1990-06-19 Stardent Computer, Inc. Chaining and hazard apparatus and method
US4969117A (en) * 1988-05-16 1990-11-06 Ardent Computer Corporation Chaining and hazard apparatus and method
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
EP0346031B1 (de) * 1988-06-07 1997-12-29 Fujitsu Limited Vektordatenverarbeitungsvorrichtung
JP2941817B2 (ja) * 1988-09-14 1999-08-30 株式会社日立製作所 ベクトル処理装置
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5389835A (en) * 1991-04-12 1995-02-14 Hewlett-Packard Company Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression
US5530881A (en) * 1991-06-06 1996-06-25 Hitachi, Ltd. Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
JPH07271764A (ja) * 1994-03-24 1995-10-20 Internatl Business Mach Corp <Ibm> 計算機プロセッサ及びシステム
US6152613A (en) * 1994-07-08 2000-11-28 California Institute Of Technology Circuit implementations for asynchronous processors
US5623685A (en) * 1994-12-01 1997-04-22 Cray Research, Inc. Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
GB9514684D0 (en) * 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
US5889947A (en) * 1996-12-16 1999-03-30 International Business Machines Corporation Apparatus and method for executing instructions that select a storage location for output values in response to an operation count
US6760880B1 (en) * 1998-09-10 2004-07-06 Ceva D.S.P. Ltd. Scalar product and parity check
US6745318B1 (en) * 1999-08-18 2004-06-01 Sanjay Mansingh Method and apparatus of configurable processing
US20080228927A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Server directed browsing
US9292533B2 (en) 2010-06-08 2016-03-22 Dell Products L.P. Systems and methods for improving storage efficiency in an information handling system
US12099439B2 (en) * 2021-08-02 2024-09-24 Nvidia Corporation Performing load and store operations of 2D arrays in a single cycle in a system on a chip

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
JPS5710874A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS6057090B2 (ja) * 1980-09-19 1985-12-13 株式会社日立製作所 データ記憶装置およびそれを用いた処理装置
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
US4458330A (en) * 1981-05-13 1984-07-03 Intergraph Corporation Banded vector to raster converter
JPS582975A (ja) * 1981-06-27 1983-01-08 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4212202A1 (de) * 1991-04-12 1992-10-15 Hewlett Packard Co Logikgatter

Also Published As

Publication number Publication date
GB2159309A (en) 1985-11-27
JPS6152512B2 (de) 1986-11-13
DE3248215A1 (de) 1983-08-18
GB2159309B (en) 1986-11-05
US4617625A (en) 1986-10-14
GB8510663D0 (en) 1985-06-05
GB2113878B (en) 1986-10-29
GB2113878A (en) 1983-08-10
JPS58114274A (ja) 1983-07-07
GB8516951D0 (en) 1985-08-07

Similar Documents

Publication Publication Date Title
DE3248215C2 (de)
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE69130630T2 (de) Synchrones Verfahren und Gerät für Prozessoren
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE3783072T2 (de) Zusatzprozessorarchitektur.
DE3114961C2 (de)
DE68928848T2 (de) Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern
DE3300263C2 (de)
DE3401995C2 (de)
DE3338345C2 (de)
DE2828731C2 (de) Adapter
DE69128017T2 (de) Verteiltes rechnersystem
DE3751391T2 (de) Verfahren und Vorrichtung zur Speichersteuerung.
DE3424962C2 (de)
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE3400723C2 (de)
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE69325246T2 (de) Synchrone Vorrichtung und Verfahren für mehrere Prozessoren zur parallelen Ausführung mehrerer Programme
DE68927202T2 (de) Paralleler Prozessor

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition