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
Links
- 239000013598 vector Substances 0.000 claims description 653
- 238000012545 processing Methods 0.000 claims description 45
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000012360 testing method Methods 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 2
- 238000013502 data validation Methods 0.000 claims 1
- 230000001960 triggered effect Effects 0.000 claims 1
- 208000001930 Autoimmune limbic encephalitis Diseases 0.000 description 82
- 235000015107 ale Nutrition 0.000 description 82
- 238000003877 atomic layer epitaxy Methods 0.000 description 82
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 230000008859 change Effects 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 241000134884 Ericales Species 0.000 description 1
- 101100302558 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RPL10 gene Proteins 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
- G06F15/8084—Special arrangements thereof, e.g. mask or switch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution 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).
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 0 ← A | |
2. Vektor laden | VR 1 ← B |
3. Vektor laden | VR 2 ← C |
4. Vektor multiplizieren | VR 3 ← VR 1 VR 2 |
5. Vektor addieren | VR 4 ← VR 0 + VR 3 |
6. Vektor speichern | VR 4 → Y, |
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.
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.
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.
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.
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).
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.
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.
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.
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.
R1: Nummer des Vektorregisters, in dem Information zu
speichern ist
R2: Nummer des Vektoradreßregisters
R3: Nummer des Vektoradreß-Inkrementregisters
R2: Nummer des Vektoradreßregisters
R3: Nummer des Vektoradreß-Inkrementregisters
R1: Nummer des Vektorregisters, in dem Information
gespeichert ist
R2: Nummer des Vektoradreßregisters
R3: Nummer des Vektoradreß-Inkrementregisters
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).
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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).
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.
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) 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.
In diesen Fällen ist keiner der Ausgänge der UND-Glieder
g 461-g 464 "1", und es wird kein Ausgangssignal erzeugt.
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.
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.
(b-1) Der U/D-Zähler C 402 ist "0".
(b-2) Der U/D-Zähler C 402 ist positiv.
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.
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.
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) 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.
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).
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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:
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.
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.
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)
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)
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)
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 | ベクトル・デ−タ処理装置の制御方式 |
-
1981
- 1981-12-28 JP JP56210392A patent/JPS58114274A/ja active Granted
-
1982
- 1982-12-24 GB GB08236821A patent/GB2113878B/en not_active Expired
- 1982-12-27 DE DE19823248215 patent/DE3248215A1/de active Granted
- 1982-12-27 US US06/453,094 patent/US4617625A/en not_active Expired - Lifetime
-
1985
- 1985-04-26 GB GB858510663A patent/GB8510663D0/en active Pending
- 1985-07-04 GB GB08516951A patent/GB2159309B/en not_active Expired
Cited By (1)
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 |