DE2505518A1 - Vorrichtung zur uebertragung von daten zwischen den speicher- und rechenabschnitten eines elektronischen rechners - Google Patents
Vorrichtung zur uebertragung von daten zwischen den speicher- und rechenabschnitten eines elektronischen rechnersInfo
- Publication number
- DE2505518A1 DE2505518A1 DE19752505518 DE2505518A DE2505518A1 DE 2505518 A1 DE2505518 A1 DE 2505518A1 DE 19752505518 DE19752505518 DE 19752505518 DE 2505518 A DE2505518 A DE 2505518A DE 2505518 A1 DE2505518 A1 DE 2505518A1
- Authority
- DE
- Germany
- Prior art keywords
- vector
- operands
- binary value
- signal
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Description
PATENTANWÄLTE
HENKEL, KERN, FEILER & HÄNZEL
BAYERISCHE HYPOTHEKEN- UND WECHSELBANK MÜNCHEN Nr.318-85111
DRESDNER BANK MÜNCHEN 3 914
D-8000 MÜNCHEN 90 Postscheck: münchbn «.« - «»
hDUAKU-ÄLHMlU-MKASMi . DRESDNER BANK MÜNCHEN 3 914
Control Data Corporation
Minneapolis, Minn., V.St.A. 1 0. Feb. 1975
Vorrichtung zur Übertragung von Daten zwischen den Speicher- und Rechenabschnitten eines elektronischen Rechners
Die Erfindung bezieht sich auf die Datenverarbeitung und betrifft insbesondere eine Vorrichtung zur Verarbeitung
von Daten und Informationen zwischen verschiedenen Abschnitten eines elektronischen Rechners o.dgl.
Bei der Datenverarbeitung ist es häufig wünschenswert, vergleichsweise
große Datenmengen in kürzest möglicher Zeit zwischen den einzelnen Abschnitten des Rechners zu bewegen
bzw» zu übertragen. Beispielsweise werden die im Speicher gespeicherten Daten normalerweise fortlaufend aus den
Speicherbänken ausgelesen, um anschließend in den Rechenabschnitten des Rechners verarbeitet zu werden. Dabei treten jedoch Fälle ein, in denen es wünschenswert ist, Daten
zu verarbeiten, die verschiedene, in den gleichen oder in benachbarten Speicherbänken gespejdierte Operanden darstellen.
Außerdem ist es häufig wünschenswert, eine Resultante darstellende Daten in den gleichen oder in benachbarten
Speicherbänken zu speichern.
Vektoroperationen sind von einem Rechner durchzuführende
Operationen, bei denen einzelne von mehreren, einen Vektor
v.I./Bl/ro - 2
S0983S/Ö846
darstellenden Operanden sequentiell mit einzelnen von mehreren, einen anderen Vektor darstellenden Operanden
verarbeitet werden, um mehrere Resultanten zu erhalten, die einen dritten Vektor darstellen. Beispielsweise umfaßt
ein einfacher Vektor A + B ■ C die aufeinanderfolgenden
Operationen von A1 + B1 ■ C1, A2 + B2 = C2, A, + B, ■
C3 '*· An + Bn = Cn» wobei A1» A2» A3 ··· A n den Vektor
A, B1, B2, B^ ... Bn den Vektor B und C1, C2t C, ... Cn
den resultierenden Vektor C darstellen. Gewöhnlich wird
vor der Berechnung der Vektoraufgabe der aus A1, A2, A,
... An bestehende Vektor A in aufeinanderfolgenden von
mehreren Bänken des Speichers gespeichert. Der aus B1, B2,
B, ... B~ bestehende Vektor B wird ebenfalls in aufeinanderfolgenden
Speicherbänken gespeichert, und der aus C1,
C2, C, ... Cn bestehende resultierende Vektor C soll in
mehreren Bänken des Speichers gespeichert werden. Häufig sind die Bänke, in denen die Vektoren A und B gespeichert
werden, die gleichen oder einander überlappende Bänke, und der resultierende Vektor C muß dabei in den gleichen Bänken
wie die Operandenvektoren oder diese überlappenden Bänken des Speichers gespeichert werden.
Normalerweise vermögen die Lese/Eingabe-Schaltungen eines Speichers während einer bestimmten leitspanne nur einen
einzigen Datenblock aus einer Speicherbank herauszugreifen. Aus diesem Grund ist es weder möglich, die Operanden
A und B gleichzeitig aus einer einzigen Speicherbank herauszulesen, noch während eines einzigen Hauptzyklus der
Speicherbank eine Resultante C in der gleichen Speicherbank zu speichern.
Wenn die Operanden A und B in der gleichen Speicherbank erscheinen, mußte bisher der zuerst auftretende Operand
eine vorbestimmte Zeit lang verzögert werden, bis der als
509838/0846
zweiter auftretende Operand ausgelesen ist. Gemäß Fig. 1
werden beispielsweise die Vektoren A und B in der gleichen Bank des Speichers gespeichert; A1 bis AQ werden dabei als
Superwort (sword) in der Bank 1, Aq bis A1^ als Superwort
in der Bank 2 gespeichert usw., während B1 bis B^ als Superwort
in der Bank 1, Bg bis B1, als Superwort in der Bank 2
gespeichert werden usw.. Bei den bisher benutzten Rechnern ist es üblich, zunächst den Operanden A1 aus der Bank 1
herauszulesen. Der Operand A1 wird dann verzögert, bis B1
ausgelesen worden ist, und A1 und B1 werden dann zu den
Rechenabschnitten des Rechners überführt, um C1 zu erhal-'
ten. Sodann werden die Operanden B verzögert, bis A2 ausgelesen
worden ist. Hierauf werden die Operanden A verzögert, bis Bp ausgelesen worden ist. Dieser Vorgang läuft
mit einer Verzögerung nach jedem aufeinanderfolgenden Lese-Vorgang eines Operanden ab, so daß sich erhebliche Verzögerungen ergeben.
Wie noch näher erläutert werden wird, ergeben sich zudem zusätzliche Verzögerungen beim Wiedereinlesen der Resultante C in die gleichen Speicherbänke.
Bei den meisten Speichern sind die Operanden während eines
einzigen Hauptzyklus des Speichers nacheinander aus den
verschiedenen Bänken herausgreifbar. Gemäß Fig. 1 können
beispielsweise während eines Hauptzyklus bis zu acht fortlaufende Bänke einen Zugriff erlauben. Dabei können jedoch
nur die Operanden eines Vektors aus den verschiedenen Bänken herausgegriffen werden, wobei es nicht möglich ist,
während eines einzigen Speicher-Hauptzyklus Operanden A
aus der einen Gruppe von acht Bänken und Operanden B aus
anderen der gleichen acht Bänke auszulesen.
Aufgabe der Erfindung ist damit die Schaffung einer Vor-
509838/0846
richtung, welche eine einzige Verzögerung für den gesamten Vektor durchführt, so daß keine aufeinanderfolgenden
Verzögerungen einzelner Operanden auftreten.
Die Erfindung bezweckt dabei auch die Schaffung einer Vorrichtung zum Herausgreifen von Daten aus dem Speicher eines
elektronischen Rechners in einer möglichst kurzen Zeitspanne und zum Einschreiben von Daten in den Speicher in
einer Mindestzeit«
Bei Rechneroperationen ist es üblich, Vektoroperationen durchzuführen, bei denen einzelne von mehreren Operanden,
die einen Operandenvektor darstellen, sequentiell mit einzelnen von mehreren Operanden verarbeitet werden, die einen
anderen Operandenvektor darstellen. Jeder Operandenvektor kann dabei eine große Zahl von Einzeloperanden enthalten,
wobei mehrere Tausend derartiger Operanden bei einem einzigen Operandenvektor nicht ungewöhnlich sind. Häufig ist
es hierbei der Fall, daß einige Operanden eines solchen Operandenvektors einen vorbestimmten Wert von z.B. Null besitzen.
Die Erfindung richtet sich nun auf eine Vorrichtung zur Verarbeitung von Vektoren, bei welcher die einen
derartigen vorbestimmten Wert besitzenden Operanden ausgelassen werden, so daß für die Speicherung von Operanden
eines solchen vorbestimmten Werts, z.B. von Null, kein wertvoller Speicherraum belegt wird. Wenn Vektoren eine
große Zahl solcher Operanden mit Null-Wert enthalten, lassen sich darüber hinaus auch Einsparungen an Rechenzeit
realisieren, indem mit diesen Operanden keine Rechenvorgänge durchgeführt werden.
Der in der Beschreibung benutzte Ausdruck "Operandenvektor11
bedeutet einen Vektor mit einer Vielzahl von Operanden, die in einem fortlaufend geordneten Strom angeordnet sind.
609838/0 8 AS
Der Ausdruck "Resultantenvektor11 bezieht sich auf einen
Vektor mit einer Anzahl von Resultanten, die ebenfalls in einem fortlaufend geordneten Strom angeordnet sind. Die
Ausdrücke "Sparse-Operandenvektor" (operand sparse vector) und "Sparse-Resultantenvektor" (resultant sparse vector)
beziehen sich je nach Fall auf Vektoren mit einer Vielzahl von Operanden bzw. Resultanten, die in einem fortlaufenden
Strom angeordnet sind, sich von einem entsprechenden Operanden- oder Resultantenvektor aber durch das Fehlen (Weglassen)
aller Operanden oder Resultanten, die einen vorbestimmten Wert, z.B. Null, darstellen, unterscheiden. Die
Ausdrücke "Operandenbefehlsvektor (operand order vector) und "Resultantenbefehlsvektor" (resultant order vector)
bedeuten schließlich fortlaufend angeforderte Bitströme, deren "Einsen" jeweils einen vorbestimmten Zustand eines
entsprechenden Operanden oder einer Resultante eines entsprechenden Operanden oder eines Resultantenvektors darstellen
und deren "Nullen" jeweils einen unterschiedlichen, vorbestimmten Zustand eines entsprechenden Operanden oder
einer Resultante eines Vektors bedeuten. Bei den zu beschreibenden Beispielen enthält ein Sparse-Vektor alle
nicht Null entsprechenden Ausdrücke eines betreffenden Operanden- oder Resultantenvektors, während ein Befehlsvektor "Einsen" entsprechend den Nicht-Null-Ausdrücken des
Operanden- oder Resultantenvektors und "Nullen" entsprechend den Ausdrücken enthält, die im Operanden- oder Resultantenvektor
einen Wert von Null besitzen.
Bisher erfolgten die Vektoroperationen in einem Rechner dadurch, daß die Gesamtheit aller der verschiedenen Operandenyektoren
in einem Rechnerspeicher gespeichert (einschließlich der Operanden mit einem vorbestimmten Wert von
z.B. Null) und alle Operanden der Operandenvektoren durch die Rechen- und Steuerabschnitte des Rechners (üblicher-
509838/08
weise durch einen Datenaustausch) verarbeitet werden. Ersichtlicherweise
kann dann, wenn ein Operand einen vorbestimmten Wert, etwa eine Null, darstellt, wertvoller Speicherraum dadurch eingespart werden, daß derartige Operanden
nicht gespeichert werden. Anstatt derartige Operanden zu speichern und zu verarbeiten, kann ein für den Wertzustand
jedes Operanden repräsentatives Befehlsbit gespeichert werden, und derartige Befehlsbits können dann verarbeitet
werden. Wenn z.B. im Fall von 64 Bit-Operanden in einem Operandenvektor nur 5% dieser Operanden den genannten,
vorbestimmten Wert, z.B. Null, besitzen, kann die Speicherung eines Befehlsvektors zu erheblichen Einsparungen
an Speicherraum führen. Wenn nämlich ein Operandenvektor 10 000 Operanden und davon 5% der genannten Operanden
enthält (entsprechend 500 Operanden oder 32000 Bits), lassen sich durch Speicherung eines 10 000 Bit-Befehlsvektors
anstelle der 32 000 Bits der 500 Operanden mit dem Wert Null beträchtliche Einsparungen an Speicherkapazität
erzielen. Außerdem könnte wertvolle Rechnerzeit für die Verarbeitung von Vektoren mit einer großen
Zahl von Operanden mit dem Wert Null nutzlos vergeudet werden, da die Resultanten, zumindest teilweise, durch
die Null-Operanden diktiert sein können. Die Erfindung befaßt sich daher speziell mit einer Vorrichtung zur Verarbeitung
von Sparse-Vektoren zwecks Ermöglichung der Speicherung von Sparse-Vektoren anstelle der vollen Vektoren
und zur Handhabung der Sparse-Vektoren für Rechen- und Steuerzwecke.
Im Zuge der genannten Aufgabe bezweckt die Erfindung also
auch die Schaffung einer Vorrichtung zur Verarbeitung von Sparse-Vektoren zwischen den Speicher- und Rechenabschnitten
des Rechners, wobei ein Befehlsvektor zur Steuerung der Operation des Rechners hinsichtlich der Sparse-Vektoren
geliefert wird.
509838/0846
Erfindungsgemäß werden die Daten, welche zumindest zwei
Gruppen von zu den arithmetischen bzw. Rechenabschnitten des Rechners zu überführenden Operanden darstellen, durch
einen selektiven Puffer geleitet. Die zuerst ankommenden Daten werden dabei verzögert, bis die zweiten Daten für
das Auslesen bereitstehen. Der Puffer dient zur kontinuierlichen Speicherung der nacheinander eintreffenden Daten
des ersten Vektors und zum Auslesen dieser Daten in der Reihenfolge ihres Eingangs (first in, first out) gemeinsam mit den entsprechenden Daten vom zweiten Vektor. Bei
dem vorher erwähnten Beispiel, bei dem jedes Superwort in einer Speicherbank bis zu acht Operanden enthalten kann,
werden z.B.die zuerst eingelesenen Operanden, d.h. A1 bis
Ag, im Operandenpuffer gespeichert. Da der erste B-Operand (B1) in der gleichen Bank gespeichert wird wie A1 bis Ag,
wird B^ erst dann ausgelesen, wenn alle Α-Operanden (A. bis
A54) während des ersten Speicherhauptzyklus aus den ersten
acht Bänken ausgelesen worden sind. Danach tasten die Leseschaltungen gleichzeitig die ersten und neunten Bänke ab,
um nacheinander die Operanden Ag5 bis A72 aus der neunten
Bank und die Operanden B1 bis B- (oder bis zu acht Operanden)
aus der ersten Bank auszulesen. In der Zwischenzeit setzt der Puffer A1 usw. beim Auslesen von B1 usw.
frei, während er Agc usw. speichert. Infolgedessen werden
A1 und B1 freigegeben, worauf die Freigabe von Ap und B2
usw. folgt.
Ein besonderes Merkmal der Erfindung liegt in der Schaffung
einer Steuereinrichtung, welche auf die zuerst eintreffenden Daten zur Pufferung derselben anspricht.
Ein anderes Erfindungsmerkmal betrifft die Schaffung einer
Steuereinrichtung zu selektiven Verzögerung der wieder in den Speicher einzulesenden Resultantendaten·
509838/0846
Noch ein anderes Erfindungsmerkmal bezieht sich auf eine
zwischen den beiden Puffern vorgesehene Steuereinrichtung zur vorteilhaften Verzögerung der Datenströme um einen
optimalen Betrag, so daflöle Übertragung von Operanden aus
dem Speicher und von Resultanten zum Speicher in einer Mindestzeit erfolgt.
Ein spezieller Gesichtspunkt der Erfindung richtet sich auf die Bereitstellung von Befehlsvektoren mit Bits, die
für einen vorbestimmten Wert jedes Terms eines Operandenvektors repräsentativ sind, und welche zum selektiven
Durchschalten von die Sparse-Vektoren durchlassenden Registern verarbeitet werden. Die Sparse-Vektoren werden
zu den Registern übertragen, und ihre Operanden werden sequentiell in Abhängigkeit von der durch die Befehlsvektoren
gewährleisteten Steuerung durchgeschaltet, wobei die Sparse-Operandenvektoren zur Bildung der Sparse-Resultantenvektoren
durch den Rechner verarbeitet werden.
Gemäß diesem Merkmal der Erfindung schalten die Befehlsvektoren die Register selektiv durch, um die Operanden der
beiden Sparse-Öperandenvektoren für die anschließende Verarbeitung
durch den Rechner auszurichten. Dabei sind eine Vorrichtung zur Verarbeitung oder Behandlung der Befehlsvektoren in der Weise, daß die aus den Sparse-Operandenvektoren
gebildeten Sparse-ResuBantenvektoren entsprechend der logischen Steuerung der Befehlsvektoren selektiv
durchgeschaltet bzw. tormäßig gesteuert werden, sowie eine Vorrichtung zur Erzeugung eines Resultantenbefehlsvektors
vorgesehen, so daß letzterer und der Sparse-Resultantenvektor verdichtet in einem Speicher gespeichert werden
können.
Im folgenden sind bevorzugte Ausführungsformen der Erfin-
9838/0846
dung anhand der beigefügten Zeichnung näher erläutert. Es
zeigen:
Fig. 1 eine schematische Darstellung einer Speicherstelle
von Operandenvektoren A und B sowie des Resultantenvektors C in mehreren Speicherbänken eines Rechners,
Fig. 2 ein Blockschaltbild einer Puffersteuervorrichtung mit Merkmalen nach der Erfindung,
Fig. 3A bis 3D graphische Darstellungen der Arbeitsweise
der Puffersteuervorrichtung gemäß Fig. 2 zur Kanalübertragung von Operandenvektoren vom Speicher zu
den Rechenabschnitten des Rechners,
Fig. 4A bis 4D graphische Darstellungen der Arbeitsweise der Puffersteuervorrichtung gemäß Fig. 2 zur Kanal-Übertragung
der Resultantenvektoren von den Rechenabschnitten zum Speicher,
Fig. 5 ein Blockschaltbild einer erfindungsgemäßen Vorrichtung zur Verarbeitung von Sparse-Operandenvektoren
und Operandenbefehlsvektoren,
Fig. 6 ein Blockschaltbild einer erfindungsgemäßen Vorrichtung
zur Steuerung der Sparse-Resultantenvektoren,
Fig. 7 ein Blockschaltbild einer erfindungsgemäßen Vorrichtung
zur Erzeugung von Resultantenbefehlsvektoren und
Fig. 8 bis 10 graphische Darstellungen der Befehlsvektoren
509838/0846
und der Sparse-Vektoren zur Erläuterung der Vorrichtung gemäß den Fig. 5 bis 7.
In Fig. 1 ist eine typische Anordnung zur Speicherung von Daten in einer Anzahl von Speicherbänken eines Rechners
veranschaulicht. Gemäß Fig. 1 bestehen die mit A und B bezeichneten verschiedenen Vektoren jeweils aus mehreren Einzeloperanden
A1, A2, A, ... An sowie B1, B2, B, ... Bn.
Jeder Operand wird manchmal auch als "Wort" und jede Operandengruppe,
auch als "Superwort" (sword) bezeichnet. Für die Zwecke der Erläuterung sei vorausgesetzt, daß jedes
fortlaufende Superwort jedes Vektors in aufeinanderfolgenden Speicherstellen des Speichers gespeichert ist und jede
Speicherbank ein Superwort eines Einzelvektors zu speichern vermag. Gemäß Fig. 1 enthält die Bank 1 des Speichers z.B.
die Operanden A1 bis A0, die Bank 2 des Speichers die Operanden
Ag bis A1^ usw. Außerdem enthält die Speicherbank 1
auch die Operanden B1 bis B1- (die vorderen drei Stellen
sind unbesetzt), während die Bank 2 die Operanden Bg bis
B1, enthält usw. Wie noch näher erläutert werden wird, soll
der resultierende bzw. Resultantenvektor C in der Weise gespeichert
werden, daß die Resultanten C1 bis Cg in der Bank
1 (die beiden vorderen Bereiche sind unbesetzt), C„ bis C1^
in der Bank 2 gespeichert sind usw. Die unbesetzten bzw. unbelegten Bereiche sind nur dargestellt, um zu veranschaulichen,
daß solche Nichtbelegungen vorkommen können, und deren Zahl kann bei den vorliegenden Beispielen bei irgendeinem
Wert von 0 bis 7 liegen.
Die Vorrichtung zur optimalen Durchführung dieser Datenkanalübertragung
ist in Fig. 2 dargestellt, welche ein Blockschaltbild eines Puffer- und Steuersystems gemäß einer bevorzugten
Ausführungsform der Erfindung zeigt. Die Vorrichtung gemäß Fig. 2 weist ein Lese- oder Eingaberegister 10
509838/0846
mit einem über einen Kanal 11 geführten Eingang von der
Speicherzugriffsteuerung des Datenspeichers des Rechners
auf. Ein ähnliches Eingaberegister 12 empfängt seinen Eingang über einen Kanal 13 von der Speicherzugriffsteuerung
des Speichers des Rechners. Die Register 10 und 12 empfangen getrennte Operanden A und B. Das Eingaberegister
10 weist einen Ausgangskanal 14 zu einer Fan-in-Schaltung 15» einen Ausgangskanal 16 zu einem Zwei-Operanden-(1/4-Superwort)-Puffer
17 und einen Ausgangskanal 18 zu einer Fan-in-Schaltung 19 auf. Ebenso weist das Eingaberegister
12 einen Ausgangskanal 20 zu einer Fan-in-Schaltung 19» einen Ausgangskanal 21 zu einem Zwei-Operanden-(1 /4-Superwort)-Puffer
22 und einen Ausgangskanal 23 zu einer Fan-inSchaltung 24 auf. Die Fan-in-Schaltung 15 liefert ein Ausgangssignal
25 zu einem Zwei-Operanden- (1/4-Superwort) -Register 26, das seinerseits ein Ausgangssignal über einen
Kanal 27 zu einem Zwei-Operanden-(1/4-Superwort)-Register 28 liefert. Das Register 28 weist über einen Kanal 29
einen Ausgang zu den Datenaustausch- und Rechenabschnitten des Rechners auf. Auf ähnliche Weise liefert die Fan-in-Schaltung
24 über einen Kanal 30 ein Ausgangssignal zu einem Zwei-Operanden-(1/4-Superwort)-Register 31» das seinerseits über einen Kanal 32 ein Ausgangssignal zu einem
Zwei-Operanden-(1/4-Superwort)-Register 33 liefert. Der Ausgang des Registers 33 ist über einen Kanal 34 an die
Datenaustausch-und Rechenabschnitte des Rechners angeschlossen. Der Puffer 17 liegt mit seinem Ausgang über
einen Kanal 35 an der Fan-in-Schaltung 15, während der Ausgang des Puffers 22 über einen Kanal 36 an der Fan-inSchaltung 24 liegt. Die Fan-in-Schaltung 19 liegt mit ihrem
Ausgang über einen Kanal 37 am Puffer 38, der ein 128-Operanden-(i6-Feld)-Puffer
ist, dessen Ausgänge über Kanäle 39 und 40 mit den Fan-in-Schaltungen 15 bzw. 24 verbunden
sindo
509838/0848
In Fig. 2 geben die stark ausgezogenen Linien die möglichen Bahnen an, welche die die Operanden A und B darstellenden
Daten nehmen können, während die dünneren Linien die Steuerleitungen angeben. Gemäß Fig. 2 ist zwischen
den Registern 28 und 26 eine Freigabesteuereinheit 41, zwischen dem Register 26 und dem Puffer 17 eine Überladungssteuereinheit
42 und zwischen dem Puffer 17 und einer Steuereinheit 44 eine Überladungssteuereinheit 43
vorgesehen. Auf ähnliche Weise ist eine ÜberladungsSteuereinheit
45 zwischen den Registern 33 und 31 vorgesehen, während zwischen dem Register 31 und dem Puffer 22 eine
Überladungssteuereinheit 46 und zwischen dem Puffer 22 und der Steuereinheit 44 eine Überladungssteuereinheit
47 vorgesehen ist. Die Steuereinheit 44 liefert einen Steuerausgang 48 zur Fan-in-Schaltung 19.
Die bisher beschriebene Vorrichtung vermag die aus dem Speicher ausgelesenen Daten zu puffern. Obgleich die genaue
Arbeitsweise noch näher erläutert werden wird9 sei hier gesagt, daß speziell dann, wenn die Vektordaten A
zuerst einzutreffen beginnen, die verschiedenen ersten Operanden über den Kanal 14 zum Datenaustausch geleitet
werden. Da der Datenaustausch bisher den ersten Operanden vom Vektor B (B,.) noch nicht empfangen hat, werden diese
bis zu den ersten beiden Operanden (A1 und Ap) im Register
28 gespeichert. Wenn der Operand B^ noch nicht eingetroffen
ist, ist der Datenaustausch nicht für die Aufnahme der
Operanden A bereit. Infolgedessen wird ein Überladungssignal über den Kanal 41 zum Register 26 geleitet, wodurch
letzteres angewiesenwird, keine weiteren Operanden zum Register 28 zu leiten. Daher werden die Operanden bis zu den
nächsten beiden Operanden (A, und A^) im Register 26 gespeichert.
Wenn der Operand B^ noch nicht angekommen und das Register 26 nunmehr voll belegt ist, wird ein Über-
509838/0846
ladungssignal über die Steuereinheit 42 zum Puffer 17 geleitet.
Sodann wird der Puffer 17 betätigt, und die beiden nächsten Operanden (A. und Ag) werden zum Puffer 17
übertragen. Bei voller Belegung des Puffers 17 wird die Steuereinheit 44 über den Kanal 43 betätigt, um die Fanin-Schaltung
19 für die Aufnahme aller weiteren Daten A zu aktivieren. Alle weiteren Operanden A werden dann über
die Schaltung 19 zum Puffer 38 geleitet.
Wenn der erste Operand B eintrifft, wird dieser über den Kanal 23 durch die Fan-in-Schaltung 24 zum Register 33
übertragen. Die Datenaustauscheinrichtung, die nunmehr die Operanden A^ und B^ aufzunehmen vermag, läßt den Ausgang
dieser Operanden aus den Registern 28 und 33 zu. Wenn ein Operand zur Datenaustauscheinrichtung überführt worden
ist, wird der so ausgelesene Raum mit dem nächsten Operanden ausgefüllt. Gleichzeitig werden weitere Operanden A
in den Puffer 38 eingegeben, während Operanden aus dem Puffer 17 ausgelesen werden, und anschließend aus dem Puffer
38 ausgelesen. Dieser Vorgang dauert an, bis alle Operanden A und B aus dem Speicher ausgelesen worden sind.
Der in der Beschreibung benutzte Ausdruck "Hauptzyklus11
bezieht sich auf die einer einzigen Speicherbank zugeordnete Zeitspanne, während welcher diese Bank eine Anforderung
zu erfüllen vermag, um entweder Operanden zu liefern oder Resultanten zu speichern. Wenn eine Anforderung an
eine Speicherbank herangetragen wird, ist diese Bank erst nach Beendigung des Hauptzyklus wieder zugreifbar. Wie
speziell aus Fig. 1 hervorgeht, sind verschiedene Bänke sequentiell zugreifbar, so daß die einem Vektor zugeordneten,
gewünschten Operanden in fortlaufender Reihe fliessen. Zum Zweck der Beschreibung der Erfindung kann gesagt
werden, daß bis zu acht Speicherbänke während der einem
509838/0846
Hauptzyklus einer dieser Bänke äquivalenten Zeitspanne sequentiell zugreifbar sind. Es ist somit ersichtlich, daß
die Speicherbank, bei der der Zugriff zuerst erfolgt, erst nach Beendigung ihres Hauptzyklus wieder zugreifbar ist,
welcher gleichzeitig die für den Zugriff zu den ersten acht Bänken erforderliche Zeitspanne darstellt. Wenn daher an
einer die beiden Operanden A und B enthaltenden Speicherbank ein Zugriff bezüglich der Operanden A erfolgt, werden
die Operanden B bis zur Beendigung des ersten Hauptzyklus nicht ausgelesen, sondern erst nachdem die A-Operanden
A^ bis Ag^ aus den Bänken 1 bis 8 ausgelesen worden
sind. Folglich werden die Α-Operanden A^ bis Ag^ gepuffert.
Anschließend werden die nächsten Α-Operanden Ag1- usw. aus
der neunten Speicherbank ausgelesen und im Puffer 38 gepuffert, während gleichzeitig die B-Operanden B.. usw. aus
der ersten Speicherbank ausgelesen werden, Während die ersten Operanden B durch den Puffer für einen kontinuierlichen
Datenfluß zu den Datenaustausch- und Rechenabschnitten des Rechners verarbeitet werden, werden die ersten Operanden
A aus dem Puffer ausgelesen.
Obgleich sich die vorstehende Beschreibung auf den Fall bezieht, in welchem die Operanden A zuerst eintreffen, ist
der Vorgang dann, wenn die Operanden B zuerst eintreffen, ersichtlicherweise ähnlich, nur mit dem Unterschied, daß
die Operanden B im Puffer 38 gespeichert werden, bis die Operanden A eintreffen und verarbeitet werden. In dieser
Hinsicht bestimmt die Steuereinheit 44 die Eingangs- und Ausgangssteuerungen für die Fan-in-Schaltung 19 und den
Puffer 38 anhand davon, welcher Vektor zuerst einzutreffen beginnt.
Gemäß Fig. 2 werden die Resultantendaten von der Datenaustauscheinrichtung
über den Kanal 51 vom Register 50 empfangen und über einen Kanal 52 durch eine Torschaltung 53 zu
509838/0848
einem Puffer 61 überführt. Wenn die Speicherbank, in welcher
die Resultanten gespeichert werden sollen, frei ist, liefert die Speicherzugriffsteuereinheit über einen Steuerkanal
54 ein Freigabesignal, so daß die Daten über die Fan-in-Schaltung 56 geleitet werden können, um über einen
Kanal 57 zum Sngaberegister 58 und dann über einen Kanal
59 zur Speicherzugriffsteuereinheit überführt zu werden. Wenn jedoch die erste Speicherbank noch aktiv ist (z.B.
wenn immer noch Daten von den Operanden A oder B in diese
eingegeben werden), wird die Fan-in-Schaltung 56 nicht
aktiviert bzw. freigegeben, und die Daten der Resultante
C werden im Puffer 61 zwischengespeichert. Der Puffer 61,
der bis zu 128 Resultanten (sechzehn Speicherbänke) zu speichern vermag, betätigt über einen Steuerkanal 63 einen
Zähler 62 zum Zählen der im Puffer 61 gespeicherten Resultanten-Superworte.
Das Ausgangssignal vom Zähler 62 wird aus noch zu erläuternden Gründen über den Steuerkanal 64
zur Steuereinheit 44 geleitet. Der Puffer 61 liefert über einen Datenkanal 65 ein Ausgangssignal zur Fan-in-Schaltung
56, so daß die im Puffer 61 enthaltenen Daten in den Speicher eingelesen werden können, wenn die betreffende Speicherbank
für ihre Aufnahme frei ist.
Die Fig. 3A - 3C sind graphische Darstellungen zur Veranschaulichung der Arbeitsweise des Puffers in Verbindung
mit aus dem Speicher ausgelesenen Daten. Anhand von Fig.
3A sei nunmehr angenommen, daß der Vektor A zuerst eingeht. Fig. 3A zeigt einen Kreis, der in 32 gleich große Segmente
unterteilt ist, die jeweils mit der Bezeichnung A + O bis
A +248 beginnen. Die Fläche jedes Segments des Kreises
stellt jeweils die Operanden in einer einzelnen Speicherbank (Superwort) dar; jeder Quadrant gibt acht Bänke des
Speichers an, die während eines einzigen Hauptzyklus zugreifbar sind. Zum Zweck der Erläuterung sei angenommen,
509838/08Λ 6
daß ein Superwort (acht Operanden) während vier Ünterzyklen
des Rechners ausgelesen werden kann, während acht Superworte während eines Hauptzyklus ausgelesen werden
können. Somit stellen acht Unterzyklen einen Quadranten gemäß Fig. 3A dar, und diese bilden einen Hauptzyklus
des Speichers.
Obgleich dies für die vorliegenden Erläuterungen nicht erforderlich
ist, kann der 32. bzw. letzte Neben-oder Unterzyklus eines bestimmten Speicher-Hauptzyklus auch zum Adressieren
der gleichen Speicherbank durch einen anderen Operanden oder eine andere Resultante herangezogen werden.
Aus diesem Grund ist es tatsächlich nur erforderlich, 31 Unterzyklen einer einzigen Speicherbank zuzuordnen, während
der andere Unterzyklus sowohl für Auslesen als auch gleichzeitig für Adressierung benutzt werden kann«
Bezüglich des Diagramms von Fig. 3A sei angenommen, daß die mit A bezeichnete Linie an einer festen Stelle liegt und
daß sich beim Zirkulieren des Speichers der die Speicherstellen angebende Kreis in Richtung der Pfeile 70 im Uhrzeigersinn
dreht. Nach Beendigung von vier Unterzyklen des Rechners hat sich die Position des Kreises von Fig. 3A
mithin so verdreht, daß sich die Position A + 8 am Scheitelpunkt des Kreises an der Linie A befindet.
Gemäß Fig. 3B ist kein Zugriff zur Speicherbank 1 für Operanden B möglich, bis das Auslesen der Operanden A aus der
neunten Speicherbank beginnt und die ersten Operanden A1
bis Ag^ vollständig aus den Bänken 1 bis 8 ausgelesen worden
sind. In dem in Fig. 3B veranschaulichten Idealfall beginnt die eigentliche Lage der Operanden B an der Speicherbank
9 des Rechners. Mithin werden gemäß Fig. 3B die Α-Operanden A^ bis Ag aus der Bank 1 ausgelesen, während
9-8 38/0846
gleichzeitig die B-Operanden B1 bis BQ aus der Bank 9
ausgelesen werden. Nach Beendigung des ersten Hauptzyklus sind die Operanden B1 bis Bg^ aus den Speicherbänken 9 ausgelesen
worden, und die Leseschaltungen sind dann für das Auslesen der Α-Operanden (z.B. Agc) aus der Bank 9
und der B-Operanden (z.B. Bg,-) aus der Speicherbank 17
frei.
Falls jedoch die Operanden A und B die gleiche Bank des Speichers einnehmen, wird der eine der Operandenvektoren
nicht ausgelesen, während der andere Operandenvektor, etwa der Vektor A, in der Vorrichtung gemäß Figo 2 ständig gespeichert
und gepuffert wird. Wenn daher der Operand A zuerst eintrifft, werden zwei die Operanden A1 und A« darstellende
Operanden im Register 28 gespeichert, zwei die Operanden A, und A- darstellende Operanden im Register 26
gespeichert und zwei Operanden A,- und Ag im Puffer 17 gespeichert, während die restlichen Operanden A„ bis Ag» im
Puffer 38 gespeichert werden. (Aus den vorstehenden Ausführungen geht hervor, daß, obgleich Operanden anfänglich im
Puffer 17 gespeichert werden, bei der Verarbeitung durch die Fan-in-Schaltung 15 alle weiteren Operanden durch den
Puffer 38 zwischengespeichert werden.) Wie speziell aus Fig. 3C ersichtlich ist, werden dann nach Abschluß des ersten
Hauptzyklus des Speichers und nach dem Puffern von bis zu acht A-Superworten (Operanden A1 bis Ag«) durch die Leseschaltungen
die nächsten Α-Operanden Agc usw. aus der neunten
Speicherbank ausgelesen, während an der ersten Speicherbank ein Zugriff zum Auslesen von B-Operanden erfolgt. Nach
Abschluß der nächsten vier Unterzyklen des Rechnerspeichers sind dann neun Superworte (Operanden A1 bis A~») aus den
Speicherbänken 1 bis 9 und ein Superwort (Operanden B1 bis
Bo) aus der Speicherbank 1 ausgelesen worden. Wenn der Operand
B1 ausgelesen worden ist, können die Operanden A1 und
509838/0848
B1 zu den Rechenabschnitten übertragen werden. Nach der
Übertragung des ersten Α-Operanden zum Rechenteil werden die folgenden Operanden im Puffer um eine Stelle hochbewegt.
Anhand von Fig. 3D sei nunmehr angenommen, daß die A- und
B-Operandenvektoren an verschiedenen Speicherbänken beginnen,
wobei der Vektor B dem Vektor A um drei Bänke nachläuft. Genauer gesagt, wenn die Α-Operanden an der
Speicherbank 3 beginnen, während die B-Operanden an der Speicherbank 1 beginnen, werden unter diesen Bedingungen
die ersten Α-Operanden (A1 bis A-, g) aus den Speicherbänken
3 und 4 und die B-Operanden B1 bis B1 g aus den Speicherbänken
1 und 2 ausgelesen. Während der nächsten vier Unterzyklen des Speichers wird ein Superwort (Operanden A17 bis
A2^) ausgelesen, doch da die Leseschaltungen B17 nicht
auslesen können, werden B17 usw. vorübergehend ausgelassen,
und das A-Superwort (A17 bis A2,) wird gepuffert.
Der Vorgang wird daraufhin auf die beschriebene Weise fortgesetzt, bis A17 und A1Q das Register 28, A1Q und A2Qdas
Register 26 und A21 und A22, wie erwähnt, den Puffer 17
einnehmen. Die Operanden A2, bis Ag0, die während des mit
der dritten Speicherbank beginnenden ersten Hauptzyklus ausgelesen werden, werden dann über die Fan-in-Schaltung
zum Puffer 38 übertragen. Die Linie B verschiebt sich somit zur Position B1 im wesentlichen in den in den Fig. 3B und
3C veranschaulichten Zustand. Während der nächsten vier Unterzyklen des Rechners lesen die dem Speicher zugeordneten
Leseschaltungen weiterhin die Α-Operanden aus der Speicherbank aus, während gleichzeitig B-Operanden B17 üsw.
aus der dritten Speicherbank ausgelesen werden. Die Operanden B17 bis B2. werden mithin aus dem Speicher ausgelesen
und sequentiell über den Kanal 23 und das Register 33 zur Datenaustauscheinrichtung überführt, während gleich-
509838/0846
zeitig die Α-Operanden Ag,, bis Ag8 aus dem Speicher ausgelesen und im Puffer 38 gespeichert werden. Die mit den
Kanälen 29 und 34 verbundene, für die Aufnahme der in den Registern 28 und 33 gespeicherten Operanden A^ und
B1„ bereitstehende Datenaustauscheinrichtung verarbeitet
die Daten, so daß A^8 und B^8 als nächste für die Verarbeitung in die Reihe gelangen. Dieser Vorgang dauert während
der nächsten vier Unterzyklen an, bis die Operanden aus dem Puffer 17 freigesetzt sind, worauf die Datenauslesung
auf beschriebene Weise aus dem Puffer 38 erfolgt.
Während die Operanden A und B durch den Rechenabschnitt des Rechners verarbeitet werden, werden Resultanten C gebildet,
die von der Datenaustauscheinrichtung über den Kanal 51 zum Register 50 zurückgeführt werden. Falls die
ersten Resultanten C zu einem Zeitpunkt eintreffen, an
welchem die Operanden A oder B aus der gleichen Gruppe von Speicherbänken ausgelesen werden, tritt ein Konflikt
auf, weshalb es wünschenswert ist, die Resultanten C eine zweckmäßige Zeitspanne vor der Wiedereingabe in den Speicher
über die Speicherzugriffsteuereinheit zwischenzuspeichern. Die Resultanten C werden somit von der Datenaustauscheinrichtung
zum Register 50 und von diesem zur Torschaltung 53 übertragen. Anhand von Fig. 4A läßt sich
der einfachste Fall der Eingabe der Resultanten C in den
Speicher erläutern. Bei dem in Fig. 4A schematisch dargestellten Fall sind die Α-Operanden A^ bis A1^ aus den
Speicherbänken 1 bis 18 ausgelesen worden. Ebenso sind B-Operanden B. bis B80 aus den Speicherbänken 1 bis 10
ausgelesen worden. Wenn daher die erste C-Resultante am Register 50 ankommt, sind die ersten acht Speicherbänke
frei bzw. unbelegt, da die Operanden A aus der 19« Bank und die Operanden B aus der 11. Bank ausgelesen werden.
Da weiterhin die Ankuftszeit der Resultanten C mit dem
509838/0846
dritten Quadranten des Diagramms von Fig. 4A zusammenfällt, treten keine Behinderungen auf, wenn die Operanden
A den Hauptzyklus durchlaufen. Infolgedessen wird die Resultante C zum Puffer 61 übertragen, und ein von
der SpeicherzugriffSteuereinheit abgegebenes Signal, welches
das Freisein der ersten Speicherbank zur Aufnahme der Resultantendaten anzeigt, wird auf dem Kanal 54 der
Torschaltung 53 aufgeprägt, um die Fan-in-Schaltung 56
für die Betätigung des Eingaberegisters 58 zu aktivieren, so daß die Resultantendaten über den Kanal 59 und
die Speicherzugriffsteuereinheit in den Speicher eingegeben werden.
Ein Konflikt würde jedoch auftreten, wenn die ersten C-Resultanten
zu einem Zeitpunkt einträfen, an welchem aus den ersten Speicherbänken, in denen die C-Resultanten gespeichert
werden sollen, immer noch Operanden ausgelesen werden. Gemäß Fig. 4B sind beispielsweise Α-Operanden A^
bis Ag8 aus den Speicherbänken 1 bis 11 und B-Operanden
B.. bis B^2 aus den Speicherbänken 1 bis 3 ausgelesen worden.
Gemäß Fig, 1 ist daher vor dem Abschluß des Hauptzyklus und vor der Beendigung der Auslesung der B-Operanden
B2C bis Bg^ aus den Bänken 4 bis 8 kein Zugriff zur
ersten Speicherbank möglich. Aus diesem Grund müssen die Resultanten C bis zum Abschluß dieses Speicherzyklus gepuffert
werden. Folglich informiert ein von der Speicherzugriffsteuereinheit über den Kanal 54 der Fan-in-Schaltung
56 aufgeprägtes Signal diese Schaltung, daß kein Zugriff zu den Speicherbänken 1 bis 8 möglich ist, so daß die C-Resultantendaten
im Puffer 61 gepuffert werden. Der Puffer vermag dabei bis zu sechzehn Datensuperworte (128 Resultanten)
zu speichern. Wenn die Resultanten C während des zweiten Quadranten des Diagramms von Fig. 4B eintreffen,
speichert der Puffer 61 in diesem Fall bis zu acht Super-
509838/084S
worte der C-Resultanten (64 Resultanten). Gleichzeitig wird
der Zähler 62 betätigt, um aus noch näher zu erläuternden Gründen die im Puffer 61 gespeicherten Resultanten-Superworte
zu zählen. Nach beendigter Auslesung der B-Operanden
aus der ersten Speicherbank sind bis zu acht C-Resultanten-Superworte
(64 Resultanten) im Puffer 61 gespeichert. (Da bei dem in Fig. 4B dargestellten Fall die C-Resultanten zu
einem Zeitpunkt eintrafen, an welchem drei B-Operanden-Superworte aus den Speicherbänken 1 bis 3 ausgelesen worden
sind, werden nur fünf Superworte der Resultante C im Puffer 61 gespeichert.) Wenn die erste Speicherbank freigemacht
wordenist, betätigt die Speicherzugriffsteuereinheit
über den Kanal 54 die Fan-in-Schaltung 56, um die Übertragung
der Resultantendaten vom Puffer 61 zum Eingaberegister 58 und damit die kontinuierliche Überführung von Resultantendaten
in den Speicher zu ermöglichen. Weitere C-Resultanten
werden kontinuierlich im Puffer 61 zwischengespeichert.
Die Fig. 4C und 4D veranschaulichen zusammen den "ungünstigsten"
Fall bei der Rückführung der Resultanten C zum Speicher. Hierbei sind Α-Operanden A. bis A-pQQ aus ^en er~
sten 25 Speicherbänken und B-Operanden B^ bis B,. -,r aus den
ersten 17 Speicherbänken ausgelesen worden. Infolgedessen ist die erste Speicherbank anscheinand zur Aufnahme von
C-Resultantendaten frei. Die Adressierschaltungen des Lese- und Eingabeabschnitts des Speichers sind jedoch so ausgelegt,
daß jeweils 32 Speicherbänke die gleichen Adressierschaltungen benutzen. Da die C-Resultantendaten während des
vierten Quadranten oder Hauptzyklus eintreffen, wie in Fig. 4C angedeutet, tritt daher ein Konflikt auf, wenn die
Leseschaltungen das Auslesen der Operanden A aus der 33· Speicherbank beginnen, weil das Auslesen aus der 33. Speicherbank
und das Einschreiben in die erste Speicherbank
509838/084
S3
nicht gleichzeitig erfolgen können. Aus diesem Grund liefert die Speicherzugriffsteuereinheit über den Kanal 54
ein Signal an die Fan-in-Schaltung 56, so daß die ersten C-Resultantendaten im Puffer 61 gespeichert werden. Wie im
Fall von Fig. 4B werden die C-Resultantendaten somit kontinuierlich im Puffer 61 gespeichert. Wie erwähnt, liefert
der Zähler 62 eine Zählung der Zahl der im Puffer 61 gespeicherten Resultanten-Superworte, Wenn diese Zählung
den Wert 8 erreicht und damit die Speicherung von acht Superworten. der im Puffer 61 gespeicherten Resultanten
angibt, wie dies in Fig. 4C scheaatisch durch die gestrichelte
Linie angedeutet ist, liefert der Zähler 62 über den Kanal 64 ein Freigabesignal an die Steuereinheit 44,
um die Α-Operanden weiter zwischenzuspeichem. Der Grund
hierfür besteht darin, daß dann, wenn die Eingabe der C-Operanden an dem durch die gestrichelte Linie C1 in
Fig. 4C angedeuteten Punkt beginnen würde, ein Konflikt mit dem Auslesen der B-Operanden aus dem dritten Quadranten
des Speichers auftreten würde. Wenn die C-Resultanten
weiterhin mit acht zusätzlichen Superworten gespeichert werden, tritt ein Konflikt beim Auslesen der B-Operanden
aus dem vierten Quadranten auf.
Als Losung bieten sich zwei Möglichkeiten an. Einmal könnten
die C-Resultanten bis zu drei volle Speicherzyklen (24 Bänke) im Zustand gemäß Fig. 4B gepuffert werden,, Diese
Möglichkeit ist jedoch nicht besonders günstig, weil dabei Verzögerungen in der Ausnutzung der Resultanten auftreten
können und sich daraus auch Überlastung der Kapazität des Puffers 6i ergeben kann. Aus diesem Grund wird
eine zweite Möglichkeit als zweckmäßiger betrachtet, bei welcher der Zähler 62, wenn er eine Zählung von 8 erreicht
und die Resultanten nicht mehr zu den Eingaberegistern überführt werden können, die Steuereinheit 44 betätigt,
509 8 38/0846
- 82 -
um die Α-Operanden wahrend weiterer acht Superworte (8
Speicherbänke, 64 Operanden) zu puffern. Folglich werden gemäß Fig. 4D die Α-Operanden kontinuierlich aus dem
Speicher ausgelesen, während bis zu sechzehn volle Superworte (128 Operanden) der Α-Operanden im Puffer 38 gespeichert
werden. Zwischenzeitlich wird das Auslesen der B-Operanden vorübergehend während eines Hauptzyklus des
Speichers (64 Operanden) unterbrochen, und die C-Reöultanten
werden mit bis zu weiteren sieben Resultanten-Superworten (56 Resultanten) im Puffer 61 gespeichert, bis der
Zustand gemäß Fig. 4D erreicht ist. Die Α-Operanden werden somit an der Linie A ausgelesen, die B-Operanden werden
an der Linie B1 ausgelesen, und die C-Resultanten werden
an der Linie C" verarbeitet. Die C-Resultanten werden daher mit bis zu sechzehn vollen Speicherbänken gepuffert,
und die Α-Operanden werden gleichfalls mit bis zu sechzehn
vollen Speicherbänken gepuffert. In diesem Fall sind mithin die Α-Operanden A* bis Α,2ο aus den ersten vierzig
Speicherbänken und die B-Operanden B^ bis B^Qg aus
den ersten 24 Speicherbänken ausgelesen worden. Während der nächsten vier Unterzyklen des Rechners werden folglich
die Α-Operanden A^21 bis A,2Q aus der ^1· Speicherbank
und die B-Operanden B^q7 bis B2Q. aus der 25. Speicherbank ausgelesen, und die C-Resultanten C^ bis Cg werden
konfliktfrei in die erste Speicherbank eingelesen bzw.
eingegeben.
Ersichtlicherweise kann der größte Teil der Rechenverarbeitung der Operanden durch die Rechenabschnitte des Rechners
innerhalb einer Zeitspanne erfolgen, die einigen wenigen Unterzyklen einer Speicherbank äquivalent ist.
Wenn dabei die Resultanten in den gleichen Speicherbänken wie die Operanden gespeichert werden sollen, und zwar beginnend
mit der ersten Speicherbank, tritt wahrscheinlich
509838/0 848
SY
der in Verbindung mit Fig. 4B erläuterte Zustand ein. Es ist jedoch auch wahrscheinlich, daß die Resultanten in
nachfolgenden Speicherbänken gespeichert werden, wobei sich die Zustände gemäß den Fig. 4A und Fig. 4C und 4D
ergeben können.
Obgleich für das Verständnis der Erfindung nicht nötig, ist zu beachten, daß in Fig. 4D die Linien A, B und C an
den Trennlinien zwischen drei der vier Quadranten auftreten. Der Zugriff zu den Eingabe/Aus gang-Kanälen ist konfliktfrei
unter Ausnutzung von zweckmäßigen Pufferverfahren möglich, um einen Eingang/Ausgang-Zugriff an der vierten
Trennlinie zwischen den Quadranten zu ermöglichen (bei A + 218 in Fig. 4D oder A + 152 in Fig. 4B).
In Fig. 5 ist eine erfindungsgemäße Vorrichtung zur Verarbeitung
von Sparse-Operandenvektoren (operand sparse vectors) dargestellt, welche ein Leseregister 10 zur Aufnahme
eines Sparse-Operandenvektors A von der Speicherzugriffsteuereinheit und vom Speicher eines Rechners über
einen Kanal 11 aufweist. Der Ausgang des Leseregisters liegt an einem Puffer 102, dessen Ausgang über einen Kanal
103 wiederum an einem Operanden-Schieberegister 104 liegt. Auf ähnliche Weise empfängt ein Leseregister 12
einen Sparse-Operandenvektor B über einen Kanal 13 von der Speicherzugriffsteuereinheit und vom Speicher des Rechners
und liefert ein Ausgangssignal zu einem Puffer 107, welcher seinerseits über einen Kanal 108 ein Ausgangssignal
zu einem Operanden-Schieberegister 109 liefert. Die vorzugsweise eine Kapazität von bis zu 32 Operanden besitzenden
Puffer 102 und 107 dienen zur Ausrichtung der über die Kanäle 11 bzw. 13 eingehenden Operanden in einem ausgerichteten,
fortlaufend geordneten Operandenstrom oder -fluß in der Ausgangsrangfolge entsprechend der Eingangsreihen-
50983 8/0846
Sf
folge. Die Puffer 102 und 107 können aus der Vorrichtung gemäß Fig. 2 bestehen und auf die vorher beschriebene
Weise arbeiten.
Ein Leseregister 110 empfängt über einen Kanal 111 ein
Eingangssignal von der Speicherzugriffsteuereinheit und vom Speicher des Rechners und liefert ein Ausgangssignal
zu einem Puffer 112. Auf ähnliche Weise empfängt ein Leseregister 113 ein Eingangssignal über «inen Kanal 114 von
der Speicherzugriffsteuereinheit und vom Speicher des Rechners, um ein Ausgangssignal zu einem Puffer 115 zu liefern.
Wie noch deutlicher werden wird, wird der Sparse-Operandenvektor AVom Speicher über den Kanal 11 zum Leseregister
10 geleitet, während der Sparse-Operandenvektor B vom Speicher über den Kanal 13 zum Leseregister 12 geführt, ein
Operandenbefehlsvektor X über den Kanal 111 vom Speicher zum Leseregister 110 geleitet und ein Operandenbefehlsvektor über den Kanal 114 vom Speicher zum Leseregister 113
überführt wird. Wie ebenfalls noch deutlicher werden wird, enthalten die Befehlsvektoren X und Y die gleiche Zahl von
Bits, wie Operanden in den Öperandenvektoren A bzw. B vorhanden sind, und jede binäre "Eins" in den Befehlsvektoren
X und Y entspricht einem Nicht-Null-Operanden der betreffenden
Operandenvektoren A bzw. B, während jede binäre "Null" in den Befehls vektoren X und Y einem Nullwert-Operanden
der betreffenden Operandenvektoren A bzw· B entspricht.
Es ist jedoch zu beachten, daß die von den Leseregistern 10 und 12 erhaltenen Eingangssignale keine NuIlwert-Operanden
enthalten, da diese Sparse-Vektoren sind. Die Positionen der Nullwert-Operanden sind allerdings im
betreffenden Befehlsvektor mit Null-Bits bezeichnete
Die Puffer 112 und 115 vermögen bis zu 1024 Bits zu spei-
ehern. Der Ausgang des Puffers 112 ist über einen Kanal 116
509838/0
SG
zu einem X-Skalenregister 117 geführt, das seinerseits
ein Ausgangssignal zu einem X-Linksschiebenetz 118 liefert, welches wiederum über einen Kanal 119 ein Ausgangssignal
an ein X-Flip-Flop 120 liefert. Auf ähnliche Weise ist der Ausgang des Puffers 115 über einen Kanal 121 mit
einem Y-Skalenregister 122 verbunden, das sein Ausgangssignal an ein Y-Linksschiebenetz 123 liefert, dessen Ausgang
wiederum über einen Kanal 124 mit einem Y-Flip-Flop
125 verbunden ist. Das Ausgangssignal der Register 117
und 122 wird außerdem einem ODER-Glied 126 eingegeben, das ein Ausgangssignal zu einem Normalisierzählernetz 127 liefert,
welches seinerseits ein Ausgangssignal zu einem Zählschieberegister
128 liefert. Das Ausgangssignal vom Zählschieberegister 128 wird beiden LinksEchiebenetzen 118 und
123 zugeführt. Das Linksschiebenetz 118 liefert ein Ausgangssignal
über einen Kanal 119a zum X-Skalenregister 117,
während das Y-Linksochiebenetz ein Ausgangssignal über
einen Kanal 124a zum Y-Skalenregister 122 liefert.
Vom X-Flip-Flop 120 wird ein Aus gangs signal über einen Kanal 130 zu einem Operanden-Schieberegister 104 abgenommen,
während vom Y-Flip-Flop 125 ein Ausgangssignal über
einen Kanal 131 zu einem Operanden-Schieberegister 109 abgenommen wird. Außerdem werden rom X- und vom Y-Flip-Flop
120 bzw. 125 über einen Kanal 130 bzw. 131 oe ein
Ausgangssignal zur Vorrichtung gemäß Fig. 2 abgenommen. Ein Multiplexer 132 empfängt Singangssignale über einen
Kanal 133 vom Puffer 102, über einen Kanal 134 vom Puffer 107, über einen Kanal 135 vom Puffer 112 und über einen Kanal
136 vom Puffer 115. Der Multiplexer 132 liefert aus
noch näher zu erläuternden Gründen ein Ausgangssignal über einen Kanal 137 zur SpeicherzugriffSteuereinheit,
Im Betrieb der bisher beschriebenen Vorrichtung gemäß
509838/0 846
Fig. 5 werden die Α-Operanden der Sparse-Operandenvektoren
A vom Speicher über den Kanal 101 empfangen und im Puffer 102 gespeichert. Der Vektor A umfaßt eine Anzahl
von Α-Operanden, z.B. A1, A2, A„, Ag ... An, die jeweils
einen nicht Null entsprechenden Wert darstellen. Ebenso werden B Operanden des Sparse-Operandenvektors B (B1 - Bm)
vom Speicher aufgenommen und im Puffer 107 zwischengespeichert. Die Puffer 102 und 107 richten auf die in Verbindung
mit der Vorrichtung gemäß Fig. 2 näher beschriebene Weise die empfangenen Operanden in fortlaufender Folge
aus.
Wie erwähnt, enthält ein Sparse-Operandenvektor alle NichtNull-Operanden eines gewöhnlichen Operandenvektors. Zum
Zwecke der Beschreibung bezieht sich die folgende Erläuterung auf das Beispiel, bei dem die Operandenvektoren jeweils
sechzehn Operanden (A1 -,A-ig bzw. B.. - B^g) enthalten
und die Α-Operanden A^, A«, A1-, Ag, Aq, A11, A12 und
A1, jeweils einen Nullwert darstellen (so daß die Sparse-A-Vektoren
A1, A2, A„, Ag, A10, A1^, A1Cund A^ verbleiben).
Ebenso sei angenommen, daß die B-Operanden (B1, B^,
Bc, B6, B7, B8, B12, B13 und B1 ^ jeweils einen Null-Wert
darstellen (so daß die Sparse-B-Vektoren B2, B^, Bq, B^q,
B11, B15 und B1^ verbleiben). Wie erwähnt, richten die
Puffer 102 und 107 die A- und B-Operanden so aus, daß der zuerst eintreffende Α-Operand (A1) auf den zuerst eintreffenden
B-Operanden (B2), der als zweiter ankommende A«°Operand
(A2) auf den als zweiter ankommenden B-Operanden (B^),
der als dritter eintreffende Α-Operand (A-) auf den als
dritter eintreffenden B-Operanden (Bq) usw. ausgerichtet
wird. Wie erwähnt, vermögen die Register 104 und 109 jeweils vier Operanden zu speichern, so daß die Operanden
A1, A2, kj und Ag im Register 104 und die Operanden B2, B,,
Bq und B10 im Register 109 gespeichert werden, während die
509838/0 84
restlichen Operanden in den Puffern 102 und 107 gespeichert
werden. Die Sparse-Vektoren A und B sind daher auf die in Fig. 8 dargestellte Weise ausgerichtet.
Obgleich sich das vorliegende Beispiel auf Operandenvektoren
mit sechzehn Ausdrücken bezieht, wobei der Sparse-Operandenvektor A acht Ausdrücke und der Sparse-Operandenvektor
B sieben Ausdrücke besitzt, ist zu beachten, daß dies ein sehr einfaches Beispiel darstellt, das lediglich
zur Veranschaulichung des Arbeitsprinzips gewählt wurde, und daß die Vektoren normalerweise mehrere tausend Operanden
enthalten können. Im Fall von kleinen Vektoren, wie beim beschriebenen Beispiel, kann es tatsächlich
zweckmäßiger sein, die Operation auf andere als die beschriebene Weise durchzuführen. Zudem sind beim Beispiel
eines aus sechzehn Operanden bestehenden Vektors die Einzelheiten bezüglich der Handhabung von sehr langen Vektoren,
d.h. solchen mit mehr als etwa 32 Ausdrücken, weggelassen,
doch wird die Art und Weise der Handhabung dieser längeren Vektoren aus der folgenden Beschreibung noch
deutlicher ersichtlich. Aus diesem Grund muß ausdrücklich darauf hingewiesen werden, daß das aufgeführte einfache
Beispiel eines aus sechzehn Operanden bestehenden Vektors lediglich/beispielhaft angesehen werden soll und nur zur
Vereinfachung der Beschreibung gewählt wurde; die Weiterentwicklung der Operation zur Handhabung längerer Vektoren
wird aus der folgenden Beschreibung noch deutlicher.
Der X-Befehlsvektor enthält eine Anzahl von Bits, deren
Zahl der Zahl von Operanden im gesamten A-Operandenvektor entspricht. Ein binäres 1-Bit im X-Befehlsvektor zeigt an,
daß der entsprechende Α-Operand einen nicht einer Null entsprechenden
Wert besitzt, während ein binäres O-Bit im X-Befehlsvektor angibt, daß der entsprechende A-Operand
609838/0 846
einen Wert von Null besitzt und daher im Sparse-A-Vektor nicht enthalten ist. Auf ähnliche Weise enthält der Y-Befehlsvektor
eine Vielzahl von Bits mit dem Wert 1 und O, abhängig vom Wert des betreffenden B-Operanden0 Beim angegebenen
Beispiel, bei dem der A-Operandenvektor sechzehn Ausdrücke und der B-Operandenvektor ebenfalls sechzehn
Ausdrücke umfaßt, besitzen daher die X- und Y-Befehlsvektoren
jeweils sechzehn Bits, die auf die in Fig. 8 gezeigte Weise angeordnet sind. Gemäß Fig. 8 weist der X-Befehlsvektor
binäre "Einsen" in seiner ersten, zweiten, siebten, achten, zehnten, vierzehnten, fünfzehnten und sechzehnten
Stelle (von links nach rechts gelesen) entsprechend den nicht nullwertigen Α-Operanden auf, während der Y-Befehlsvektor
binäre "Einsen" in seiner zweiten, dritten, neunten, zehnten, elften, fünfzehnten und sechzehnten
Stelle (von links nach rechts gesehen) entsprechend den nicht einem Null-Wert entsprechenden B-Operanden aufweist.
Die X- und Y-Befehlsvektoren werden über Kanäle 111 bzw.
114 aus dem Speicher ausgelesen und in Puffern 112 bzw.
115 gespeichert. Ersichtlicherweise können der X-Befehlsvektor
und der Sparse-A-Operandenvektor unter Benutzung des gleichen Leseregisters über den gleichen Datenkanal
ausgelesen werden; auf ähnliche Weise können der Y-Befehlsvektor und der Sparse-B-Operandenvektor unter Heranziehung
des gleichen Leseregisters über den gleichen (gemeinsamen) Datenkanal ausgelesen werden. In diesem Fall kann eine nicht
dargestellte Schalteinrichtung vorgesehen sein, um die Α-Operanden zum Puffer 102, die X-Bits zum Puffer 112, die
B-Operanden zum Puffer 107 und die Y-Bits zum Puffer 115
zu überführen. (Ersichtlicherweise können die Puffer 102 und 107 bis zu 32 Operanden speichern, während die Puffer
112 und 115 bis zu 1024 Bits zu speichern vermögen.) Die Skalenregister 117 und 122 sind 16-Bit-Register .Die ersten
509838/0846
- se 20
sechzehn Bits der X- und Y-Befehlsvektoren (im vorliegenden
Fall X1 - X1 g und Y1 - Y1^) werden zu den Skalenregistern
117 bzw. 122 übertragen. Das Skalenregister 117
liefert seinen gesamten Inhalt von sechzehn Bits zum Linksschiebenetz
118, das seinerseits das erste Bit (X1) zum Setzen (oder Rückstellen)des Flip-Flops 120 überträgt und
die restlichen 15 Bits nach links verschiebt und zum Skalenregister 117 zurückführt, wo sie die ersten fünfzehn
Bitpositionen einnehmen, während die sechzehnte Bitposition unbesetzt bleibt. Wenn das erste Bit des X-Befehlsvektors
(was im vorliegenden Fall zutrifft) ein binäres Bit ist, wird das X-Flip-Flop 120 gesetzt, um über den Kanal
130 ein Durchschaltsignal zum Operanden-Schieberegister 104 zu liefern. Beim zweiten Durchgang des Befehlsvektors
durch das Linksschieberegister bewirkt das zweite Bit (X2)» welches die erste Stelle einnimmt, ein Setzen
(oder Rückstellen) des Flip-Flops 120, während die restlichen Bits nach links verschoben werden, so daß das dritte
Bit die erste Stelle oder Position im Register 117 einnimmt»1
Die Operanden-Schieberegister 104 und 109 liefern normalerweise ein Maschinen-Null-Ausgangssignal auf den
Kanälen 29 und 34, außer wenn sie durch das betreffende Flip-Flop 120 bzw. 125 durchgeschaltet sind. Wenn daher das
eine Register 104 oder 109 durchgeschaltet ist (und das andere nicht), gibt das eine einen Operanden ab, während das
andere weiterhin ein Maschinen-Null-Signal abgibt. Dieser Vorgang dauert so lange an, bis alle Bits verarbeitet worden
sind und das Register 117 geleert ist, und zu diesem Zeitpunkt überträgt der Puffer 112 die nächsten 16 Befehlsbits des X-Befehlsvektors zum Register 117, so daß der Vorgang
weiter ablaufen kann.
Auf ähnliche Weise schalten das Skalenregister 122 und das Linksschiebenetz 123 durch die Y-Befehlsbits schrittweise
509838/0846
fort, um das Y-Flip-Flop 125 zu setzen (und rückzustellen)
und dabei über den Kanal 131 Durchschaltsignale zum Operanden-Schieberegister 109 zu liefern. Die X- und Y-Flip-Flops
120 und 125 können beispielsweise monostabile MuItivibratoren sein, welche bei Eingang eines einer binären
1 entsprechenden Bits gesetzt werden und ein Durchschaltsignal liefern und bei Eingang eines einer binären
Null entsprechenden Bits rückgestellt werden.
Das ODER-Glied 126 läßt das ODER-Resultat der X- und Y-Befehlsbits
durch. Beim angenommenen Beispiel läßt das ODER-Glied 126 somit
1110001111100111
durch, wobei zu beachten ist, daß die vierten, fünften, sechsten, elften und zwölften Bits jeweils Nullen sind.
Wenn das erste Bit eine Null ist, was bei Koinzidenz von Nullen in den X- und Y-Befehlsvektoren der Fall sein kann,
zählt das Normalisierzählernetz 127 die Zahl der der nächsten binären "1" vorangehenden Nullen und betätigt daraufhin
das Zählschieberegister 128, um eine Ausgangssignal an die beiden Linksschiebenetze 118 und 123zu liefern und
deren Zählungen um die gleiche Zahl zu verschieben· Beim vierten Durchgang, wenn das erste Bit eine Null ist, zählt
daher das Normalisierzählernetz die dem nächsten 1-Bit
vorangehenden Null-Bits (in diesem Fall drei) und liefert die betreffende Zählung zum Register 128. Als Ergebnis werden
die Bits in den Netzen 118 und 123 um drei Stellen verschoben,
so daß die X- und Y-Befehlsvektoren bei der Rückführung
zu den Registern 117 und 122 ihre nächsten Bits" (X„ und Y„) in der vordersten Stelle aufweisen. Bei X^2,
Y12 läßt das Netz 127 wiederum eine Zählung von zwei aus,
um die Netze 118 und 123 erneut eine Linksverschiebung zum Überspringen von X^fX-j^» Y-|2 1^ Yi3 durchführen zu lassen,
8/0848
Aus den vorstehenden Ausführungen geht hervor, daß die X- und Y-Flip-Flops 120 bzw. 125 entsprechend der folgenden
Tabelle gesetzt und rückgestellt werden:
FIiD-FlOT) 120 | Vektor | Fliü-FlOD 125 | Vektor |
1 | X1 | O | Y1 |
1 | X2 | 1 | Y2 |
0 | X3 | 1 | Y3 |
1 | X7 | O | Y7 |
1 | X8 | O | Y8 |
0 | 1 | Y9 | |
1 | X10 | 1 | Y10 |
0 | X11 | 1 | Y11 |
1 | X14 | O | Y14 |
1 | X15 | 1 | Y15 |
1 | X16 | 1 | Y16 |
Die Durchsc haltsignale von den Flip-Flops 120 und 125 schalten die Register 104 bzw. 109 durch, um einen Operanden über
die Kanäle 29 bzw. 34 zu den Datenaustausch- und Rechenabschnitten des Rechners (nicht dargestellt) durchzulassen.
Wie erwähnt, enthalten die Register 104 und 109 (und die Puffer 102 und 107) die Operanden in der in Fig. 8 dargestellten
Folge. Gemäß der vorstehenden Tabelle und gemäß Fig. 8 liefert das Flip-Flop 120 während des ersten Unterzyklus
des Rechners somit ein Durchschaltsignal zum Register 104, um den ersten A-0peranden (A,.) zu vaarbeiten bzw. auf
den Kanal 138 aufζμβehalten. Das Flip-Flop 125 ist jedoch
rückgestellt, so daß kein Durchschaltsignal zum Register 109 geleitet und somit der erste B-Operand nicht durchge-
50 9 838/0846
lassen wird. Stattdessen läßt das Register 109» wie erwähnt, ein Maschinen-Null-Signal durch. Der nächste Operand
A (A2) tritt an die vordere Stelle im Register 104, so daß während des nächsten Unterzyklus die beiden Flip-Flops
120 und 125 die Register 104 und 109 zum Durchlassen von Ag und B2 durchschalten. Ebenso schaltet während
des nächsten Unterzyklus das Flip-Flop 125 das Register 109 zum Durchlassen von B, durch (das Register 104 läßt
wegen des Nuil-Ausgangssignals vom Flip-Flop 120 ein Maschinen-Null-Signal
durch). Während des nächsten Unterzyklus schaltet das Flip-Flop 120 das Register 104 zum
Durchlassen von A^ usw. durch die gesamten Vektoren durch.
Die Daten auf den Kanälen 29 und 34 fließen daher wie folgt:
Unterzyklus | Kanal 138 | Kanal 139 |
1 | A1 | 0 |
2 | A2 | B2 |
3 | 0 | B3 |
4 | A7 | 0 |
5 | A8 | 0 |
6 | 0 | V |
7 | A10 | B10 |
8 | 0 | B11 |
9 | A14 | 0 |
10 | A15 | B15 |
11 | A16 | B16 |
Der Multiplexer 132 empfängt die Signale von den Puffern 102, 107, 112 und 115 zur Weiterleitung von Anforderungen
509838/0846
250551
nach weiteren Vektordaten der A-, B-, X- und Y-Vektoren
zum betreffenden Puffer. Falls der Inhalt eines der Puffer geleert wird, wird daher ein diesen Zustand anzeigendes
Signal über den Multiplexer 132 zu der nicht dargestellten Speicherzugriffsteuereinheit übertragen,um weitere
Vektordaten für diesen Puffer abzurufen. Wie vorstehend erläutert, vermag die SpeicherzugriffSteuereinheit
jedem beliebigen Leseregister 10, 12, 110 und 113 während eines jeden Speicherzyklus Daten von einer Einzelgruppe
von Speicherbänken zu liefern. Infolgedessen ist es möglich, daß die einzelnen Puffer 102, 107, 112 und 115 zu
jedem beliebigen Zeitpunkt unterschiedliche Mengen an ihren jeweiligen Vektoren enthalten. Aus diesem Grund ist
es wahrscheinlich, daß der Multiplexer zu konfliktfreien Zeiten Datenanforderungen für verschiedene Vektoren erfüllt«
Falls jedoch Daten von zwei oder mehr Puffern angefordert werden, entspricht der Multiplexer dem Bedarf eines
dieser Puffer, und der Vorgang wird infolge des Fehlens eines erforderlichen Vektors vorübergehend unterbrochen.
Bezüglich der Ausrichtung und der Zeitsteuermerkmale der Pufferung oder Zwischenspeicherung wird auf die vorherigen
Ausführungen verwiesene
Die Recheneinheit des Rechners benutzt die auf den Kanälen 29 und 34 auftretenden Operanden zur Entwicklung von Resultanten
in Abhängigkeit von der jeweils durchgeführten, speziellen Rechenfunktion. Bei der Addition arbeitet die
Recheneinheit beispielsweise wie folgt: A1+0 « C1, A2+B2 m
C2, 0+B, » C,, A„+0 » Cr, usw. Bei der Subtraktion werden
die Funktionen A1-O - C1, A2-B2 - C2, 0-B3 ■ C , A17-O * C7
usw. durchgeführt. Beim Multiplizieren arbeitet die Recheneinheit wie folgt: Α,,.Ο » C1, A2»B2 » C2, 0^B3 « C3,
A7»0 * C7 usw. Beim Dividieren führt die Recheneinheit
die Funktionen A1ZO - C1, A2/B2 » C2, 0/B3 - C3, A?/0 » C7
509838/0846
usw. durch. Ersichtlicherweise ergibt die Multiplikation
mit einer Null eine Null-Resultante, während das Dividieren mit einem Null-Teiler eine unendliche Resultante
und das Dividieren mit einem Null-Dividenden eine Null*- Resultante ergibt. Wie insbesondere in Verbindung mit
Fig. 6 noch näher erläutert werden wird, sind derartige Operationen nicht zulässig, so daß sie unabhängig von
einer etwa durch die Recheneinheit durchgeführten Berechnung als Null unterdrückt werden.
In Fig. 6 ist eine Vorrichtung zur Überführung von Resultanten von den Datenaustausch- oder Rechenabschnitten des
Rechners zur SpeicherzugriffSteuereinheit oder zum Speicher eines Rechners dargestellt. Die C-Resultanten werden
von der Datenaustauscheinrichtung über einen Kanal 51 von einem Register 141 aufgenommen, dann zu einem Puffer 142
(der bis zu 128 Resultanten enthalten kann) übertragen und
von hier zum Eingaberegister 143 überführt, um über den Kanal 59 (zur Weiterverarbeitung) zur Speicherzugriffsteuereinheit
und zum Speicher des Rechners geliefert zu
werden. Die Einzelheiten der Pufferung bzw. Zwischenspeicherung und ihrer Zeitsteuerungen sind vorher in Verbindung
mit Fig. 2 näher erläutert worden. Die X- und Y-Durchschaltsignale von den Flip-Flops 120 und 125 gemäß Fig. 5
werden über Kanäle 130 und 131 zu UND-Gliedern 145, 146 und 147 geleitet. Genauer gesagt, werden die Durchschaltsignale
vom X-Flip-Flop 120 über den Kanal 130 zu einem
UND-Eingang der UND-Glieder 145 und 147 und diejenigen des Y-Flip-Flops 125 über einen Kanal 131 zum UND-Eingang von
UND-Gliedern 145 und 146 übertragen. Eine Funkti ons Steuereinheit 148 liefert Durchschaltausgangssignale über Kanäle
149 und 150. Im Fall von Multiplikations- oder Divisionsfunktionen wird ein Durchschaltausgangssignal über
einen Kanal 149 an einen dritten UND-Eingang des UND-Glieds 145 angelegt. Im Fall einer Additions- oder Subtraktions-
509838/-0846
funktion wird ein Durchschaltsignal über eine Torschaltung
150 an beide UND-Glieder 146 und 147 angelegt. Es ist somit ersichtlich, daß in der Multiplikations- oder Divisionsbetriebsart ein Durchschaltausgangssignal von beiden Flip-Flops
120 und 125 gemäß Fig. 5 erforderlich ist, um das UND-Glied 145 zu betätigen und ein Ausgangssignal von ihm
zu liefern. Ebenso ist ersichtlich, daß in der Additionsoder Subtraktionsbetriebsart ein Durchschaltausgangssignal
von einem (oder beiden) Flip-Flop^) 120 und/oder 125 selektiv das eine oder das andere (oder beide) UND-Glied(er)
146 und 147 betätigt. Die Ausgangssignale der UND-Glieder 145, 146 und 147 bilden Eingangssignale zu einem ODER-Glied
151. Ersichtlicherweise liefert das ODER-Glied 151 somit nur dann ein Ausgangssignal über den Kanal 152 zum
Register 141, wenn einer der beiden Operanden vorhanden
ist und sich die Funktionssteuereinheit 148 in ihrer Additions- oder Subtraktionsbetriebsart befindet, oder wenn
beide Operanden vorhanden sind und sich die Funktionssteuereinheit in ihrer Multiplikations- oder Divisionsbetriebsart
befindet. Folglich wird vom ODER-Glied 151 nur im Fall einer zulässigen Operation der Recheneinheit ein Ausgangssignal
abgegeben. In den Fällen, in denen ein Multiplikator, ein Divisor oder ein Dividend mit dem Wert Null vorhanden ist,
tritt daher kein Ausgangs signal vom ODER-Glied 151 auf dem Kanal 152 auf.
Das Auftastsignal am Kanal 152 steuert das Register 141
zur Ermöglichung eines Durchgangs der betreffenden Resultante zum Puffer 142, um anschließend im Speicher gespeichert
zu werden. In den Fällen, in denen durch die Recheneinheit eine nicht zulässige Berechnung durchgeführt wurde,
wird somit das Register 141 nicht durchgeschaltet, so daß die nicht zulässige Resultante nicht gespeichert wird. Stattdessen
wird diese nicht zulässige Resultante einfach verworfen bzw. übergangen.
509838/0846
250551
Aus dem vorstehenden Beispiel und aus der vorstehenden Beschreibung geht hervor, daß das Register 141 während
einer Additions- oder einer Subtraktionsfunktion durchgeschaltet
wird, um Resultanten C^, C2» C,, C^, CQ, Cq, C^q,
C11, ci4» ^15 "1^ C-ifi durcllzulassen· In der Multiplikations-
oder Divisionsbetriebsart wird das Register 141 dagegen zum Durchlassen der Resultanten C2, c-iq» ^15 1^1**
C1^ durchgeschaltet, während die anderen Resultanten als
nicht zulässige Resultanten vom Register 143 unterdrückt werden.
Bisher wurde vorausgesetzt, daß sich aus einer Multiplikations-
oder Divisionsfunktion ergebende Resultanten mit einem Wert Null oder einem unendlichen Wert nicht zulässige Resultanten darstellen. Es ist jedoch offensichtlich,
daß die Nichtspeicherung solcher Resultanten zur Voraussetzung
führt, daß sie Maschinen-Null-Signalen entsprechen«,
Obgleich diese Voraussetzung in den meisten Fällen zutreffen kann, können dann, wenn bestimmt werden soll,
welche Resultanten einen unendlichen Wert haben können,
die einzelnen Divisoren und Dividenden durch Vergleichsschaltungen in anderen Abschnitten des Rechners für die
Einführung in entsprechende Stellen des Speichers untersucht
werden.
Vorstehend ist erläutert worden, auf welche Weise Sparse-Vektoren
durch Befehlsvektoren logisch tormäßig gesteuert
werden können, um Rechenvorgänge zur Ableitung von im Speicher zu speichernden Sparse-Resultantenvektoren durchzuführen.
Derartige Sparse-Resultantenvektoren sind jedoch ohne einen Resultantenbefehlsvektor überhaupt nicht
brauchbar. Fig. 7 zeigt eine Vorrichtung zur Erzeugung des Resultantenbefehlsvektors Z, der - ebenso wie Operandenbefehlsvektoren
- aus einer Vielzahl von Bits besteht, bei
509838/0846
denen binär« "Einsen" die Nicht-Null-Resultanten des Resultantenvektors
und binäre "Nullen" Resultanten mit dem Wert Null angeben.
Gemäß Fig. 7 nimmt ein Leseregister 210 den X-Befehlsvektor
von der Speicherzugriffsteuereinheit und vom Speicher des Rechners über einen Kanal 211 auf und überträgt diese
Information zu einem X-Puffer 212. Ebenso empfängt ein Leseregister
213 den Y-Befehlsvektor von der Speicherzugriff-Steuereinheit
und vom Speicher des Rechners über einen Kanal 214, um diese Information zu einem Puffer 215 zu übertragen.
Die Bits werden sequentiell vom Puffer 212 und zu UND-Gliedern 245, 246 und 247 geleitet. Die Funktionssteuerung
148 (bei der es sich um die in Verbindung mit Fig. 6 beschriebene Vorrichtung handeln kann) gibt über
einen Kanal 149 ein eine Multiplikations- oder eine Divisionsfunktion
angebendes Durchschaltsignal oder über einen Kanal 150 ein derartiges, eine Additions- oder eine
Subtraktionsfunktion angebendes Signal ab. Das eine Multiplikations- und Divisionsfunktion anzeigende Ausgangssignal
der Funktionssteuereinheit 148 wird über einen Kanal 149 zu einem UND-Glied 246 geleitet, welches seine anderen
UND-Eingangssignale von beiden Puffern 212 und 215
empfängt. Die Funktionssteuereinheit 148 überträgt über den Kanal 150 Durchschalt- oder Auftastsignale, die Additions-
und Subtraktionsfunktionen anzeigen, zu UND-Gliedern 245 und 247. Die Aus gangs signale der UND-Glieder 245»
246 und 247 werden über ein ODER-Glied 251 übertragen, um anschließend den monostabilen Z-MuItivibrator (Flip-Flop)
260 zu setzen oder rückzustellen. Der Ausgang des Flip-Flops 260 ist mit dem Ausgangsregister 261 verbunden, um
das Ausgangssignal über einen Kanal 262 zur Datenaustauscheinrichtung
zu leiten.
509838/ÖS46
Da die X- und Y-Vektoren über die Puffer 212 bzw. 215
geleitet werden, werden sie zum Setzen und Rückstellen des Flip-Flops 260 über das ODER-Glied 251 zu den betreffenden
UND-Gliedern übertragen. In der Additionsoder Subtraktionsbetriebsart wird beispielsweise für jede
im X- oder im Y-Vektor auftretende binäre "Eins" das betreffende
UND-Glied 245 oder 247 betätigt, um das ODER-Glied 251 zu betätigen und das Flip-Flop 260 zu setzen
und dabei ein binäres 1-Ausgangssignal zum Register 261
zu übertragen. Wenn dagegen in der Multiplikations- oder Divisionsbetriebsart beide X- und Y-Bits binäre "Einsen"
sind, wird das UND-Glied 246 betätigt, um das ODER-Glied 251 zum Setzen des Flip-Flops 260 zu betätigen und dabei
ein binäres 1-Ausgangssignal zum Register 261 zu liefern.
In allen anderen Fällen wird das Flip-Flop 260 rückgestellt, um ein binäres O-Ausgangssignal zum Register 261
zu liefern. Der Z-Befehlsvektor wird hierbei gebildet und
zur Datenaustauscheinrichtung überführt, von wo er über den Kanal 140 durch das Register 141 zum Speicher geleitet
werden kann« Fig. 9 veranschaulicht den Sparse-C-Resultantenvektor und den Z-Befehlsvektor für das Beispiel
der Additions- oder Subtraktionsfunktion, während Fig. 10 den Sparse-C-Resultantenvektor und den Z-Befehlsvektor
für das Beispiel der Multiplikations- und Divisionsfunkr
tion zeigt.
Ersichtlicherweise entsprechen viele Abschnitte von Fig.
praktisch bestimmten Abschnitten gemäß den Fig. 5 und 6. Zur Vereinfachung der Schaltung können daher die Leseregister
210 und 213 die Leseregister 110 und 113 gemäß Fig.
und die Puffer 212 und 215 die Puffer 112 und 115 gemäß Fig. 5 sein. Die UND-Glieder 245, 246 und 247 können den
UND-Gliedern 145, 146, 147 gemäß Fig. 6 entsprechen, und das ODER-Glied 251 kann dem ODER-Glied 151 gemäß Fig. 6
509838/08^6
entsprechen; zur Erzielung einer ähnlichen Arbeitsweise ist jedoch vorzugsweise zwischen diesen Gliedern zu unterscheiden,
da die UND- und ODER-Glieder gemäß Fig. 7 vorzugsweise 16-Bit-Torschaltungen sind, während es sich bei
denen gemäß Fig. 6 vorzugsweise um 1-Bit-Torschaltungen handelt. Bei Anwendung einer solchen Gleichartigkeit der
Schaltung kann es sich jedoch als erforderlich erweisen, den Z-Befehlsvektor während eines zweiten Iterationsschritts der Daten zu erzeugen.
Mit der Erfindung wird somit eine Vorrichtung zum kontinuierlichen
Auslesen von Daten aus den Speicherabschnitten des Rechners zur Rechenverarbeitung durch die Rechenabschnitte
des Rechners und zum Einschreiben bzw. Eingeben der Resultanten in den Rechner-Speicherabschnitt vom Rechenabschnitt
aus geschaffen. Diese Vorrichtung arbeitet mit einem Mindestmaß an vorgegebenen Verzögerungen, und
sobald die Pufferung oder Zwischenspeicherung vorgenommen worden ist, brauchen keine weiteren Verzögerungen mehr
eingeführt zu werden. Erfindungsgemäß wird daher die Notwendigkeit
für die Einführung zusätzlicher Verzögerungen während der aufeinanderfolgenden Operationen des Rechners
ausgeschaltet. Stattdessen werden vorgegebene Verzögerungen zu Beginn oder nahe des Beginns jedes (Daten-)-Stroms
in Übereinstimmung mit der optimalen Betriebsweise und der Systemzeitsteuerung des Rechners festgelegt.
Ein Merkmal der Erfindung besteht darin, daß die Pufferung bzw. Zwischenspeicherung mit vom Datenzugriff unabhängigen
Geschwindigkeiten oder Folgen erfolgt. In Fällen mit "kurzen" Vektoren, (d.h. solchen mit weniger als etwa
48 Operanden), braucht somit keine Pufferung oder Zwischenspeicherung
vorgenommen zu werden, da die später eintreffenden Operanden nach Vervollständigung der ersten Operanden
509838/0846
auftreten. Wenn zudem in den Daten Lücken auftreten, kann
sich der Puffer selbst wieder für die optimalste Verarbei~ tung der Vektoren synchronisieren. Im Fall von Vektoren
"mittlerer" Länge, (d.h. solchen mit weniger als etwa 320 Operanden), wird ebenfalls eine weitere Optimierung
durch die beschriebene Freigabe von Steuerpfaden gewährleistet.
Mit der Erfindung wird in diesem Zusammenhang zudem eine Vorrichtung zur Ausrichtung von Sparse-Vektoren zur Durchführung
von arithmetischen Berechnungen an ihnen geschaffen. Die Erfindung betrifft dabei auch eine Vorrichtung
zur Verdichtung von Resultantenvektoren zwecks möglichst weitgehender Verkleinerung des für die Speicherung der Resultanten
erforderlichen Speicherraums. Wie insbesondere aus den Fig. 9 und 10 hervorgeht, lassen sich erhebliche
Einsparungen an Speicherraum durch Speicherung nur der
Nicht-Null-Operanden und -Resultanten zusammen mit dem nötigen Befehlsvektor erreichen. Nach der anschließenden
Verwendung der Resultanten, beispielsweise als Operanden in einer anschließenden Operation, können die Vektoren in
der gleichen Weise benutzt werden. Bei der erfindungsgemäßen Vorrichtung ist es möglich, Vektoren mit einer grossen
Zahl von Größen in einem Mindestraum im Rechnerspeicher zu speichern, und es ist dabei auch möglich, die Rechenzeit
in Verbindung mit Sparse-Vektoren zu verringern, speziell dann, wenn der Vektor eine große Zahl von Komponenten
mit einem vorbestimmten Wert von z.B. Null besitzt.
Mit der erfindungsgemäßen Vorrichtung ist es möglich,
große Vektoren, die Operanden und Resultanten darstellen, zwischen den Speicher- und Rechenabschnitten des Rechners
zu handhaben, ohne nachteilige Verzögerungen einzuführen, wie dies bei den bekannten Vorrichtungen der Fall ist.
609838/0846
Selbstverständlich ist die Erfindung weiteren Abwandlungen und Änderungen zugänglich, ohne daß vom Rahmen und vom
Grundgedanken der Erfindung abgewichen wird.
Zusammenfassend wird mit der Erfindung also eine zwischen den Speicher- und Rechenabschnitten eines Rechners angeordnete
Puffervorrichtung zur selektiven Zwischenspeicherung von Vektoren, um eine optimale Zeitsteuerung des Systems
zu gewährleisten, geschaffen. Die zuerst eintreffenden von zahlreichen Operandenvektoren werden im Puffer gespeichert,
bis der später ankommende Vektor eintrifft; zu diesem Zeitpunkt werden dann beide Vektoren zum Rechenabschnitt
übertragen. Der Puffer nimmt zum Kompensieren der Zeitsteuerung oder -Überwachung des Systems auch Operanden
auf. Bei der Rückführung der Resultanten wird der Resultantenvektor selektiv*zwischengespeichert, um seine einwandfreie
Speicherung zu gewährleisten, ohne das Auslesen der Operandenvektoren zu beeinträchtigen. Zur Optimierung der
Zeitsteuerung und zur weitgehenden Verringerung des Ausrüstungsaufwands und der Verzögerungen ist außerdem eine
Steuervorrichtung vorgesehen, welche in Abhängigkeit von der Ankunftszeit des Resultantenvektors selektiv zusätzlich
Operandenvektoren zwischenspeichert.
Ein Merkmal der Erfindung besteht in der Verarbeitung von ersten und zweiten Sparse-Vektoren, die jeweils Operanden
entsprechend Nicht-Null-Ausdrücken eines bestimmten Operandenvektors
enthalten, um die Operanden der Vektoren auszurichten. Erste und zweite Befehlsvektoren mit Bits, deren
binäre "Einsen" den Nicht-Null-Ausdrücken des betreffenden Operandenvektors und deren binäre "Nullen" den NuIlwert-Ausdrücken
des betreffenden Operandenvektors entsprechen können, werden durch eine logische Vorrichtung verarbeitet,
um den Puffer selektiv durchzuschalten und dadurch
609838/08AÖ
Hi
einen Operanden eines Sparse-Vektors zu verarbeiten, sooft ein binäres 1-Bit in einem entsprechenden Befehlsvektor
auftritt. Die ersten und zweiten Vektoren können auch zur Erzeugung eines dritten Befehlsvektors für einen Sparse-Resultantenvektor
herangezogen werden.
509838/084fc
Claims (45)
- PatentansprücheVorrichtung zur Übertragung von Daten zwischen den Speicher- und Rechenabschnitten eines elektronischen Rechners, wobei der Speicher einen ersten Vektor aus einer Anzahl aufeinanderfolgender erster Operanden und einen zweiten Vektor aus einer Anzahl aufeinanderfolgender zweiter Operanden enthält und mehrere nacheinander zugreifbare Speicherbänke aufweist, von denen zumindest einige den ersten Vektor und zumindest einige den zweiten Vektor enthalten, während zumindest bestimmte Speicherbänke einige Operanden sowohl des ersten als auch des zweiten Vektors enthalten, wobei der Speicher so ausgeführt ist, daß die Operanden des einen der beiden Vektoren aus der einen Speicherbank zugreifbar sind, während Operanden des anderen der beiden Vektoren aus der anderen Speicherbank zugreifbar sind, gekennzeichnet durch zwei Leseeinrichtungen zum fortlaufenden Auslesen der ersten und zweiten Operanden aus dem Speicher, durch eine selektiv betätigbare Puffereinrichtung zur Speicherung aufeinanderfolgender erster oder zweiter Operanden, durch eine erste Steuereinrichtung, die auf den Anfangs-Operanden der ersten und zweiten Vektoren mit früher an der ersten oder zweiten Leseeinrichtung eintreffendem Anfangs-Operanden anspricht und die erste Puffereinrichtung zur Speicherung aufeinanderfolgender Operanden dieses einen Vektors betätigt und welche weiterhin auf den Anfangs-Operanden des anderen der beiden Vektoren anspricht und die erste Puffereinrichtung betätigt, um aufeinanderfolgende Operanden des einen Vektors freizugeben, durch eine der ersten Leseeinrichtung und der ersten Puffepeinrichtung zugeordnete erste Ausgangseinrichtung zur Übertragung der aufeinanderfolgenden ersten Operanden509838/084 ivzum Rechenabschnitt und durch eine der zweiten Leseeinrichtung und der ersten Puffereinrichtung zugeordnete zweite Ausgangseinrichtung zur Übertragung der aufeinanderfolgenden zweiten Operanden zum Rechenabschnitt, wobei die entsprechenden ersten und zweiten Operanden durch die beiden Ausgangseinrichtungen in fortlaufend geordneten Strömen gleichzeitig zum Rechenabschnitt übertragbar sind.
- 2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Ausgangseinrichtung eine erste Registereinrichtung zur Speicherung einer vorbestimmten Anzahl von ersten Operanden und die zweite Ausgangseinrichtung eine zweite Registereinrichtung zur Speicherung einer vorbestimmten Anzahl der zweiten Operanden aufweist, daß die beiden Registereinrichtungen jeweils ein erstes Steuersignal abzugeben vermögen, welches für einen Zustand, daß das betreffende Register die vorbestimmte Zahl von Operanden gespeichert hat, repräsentativ ist, und daß die erste Steuereinrichtung in Abhängigkeit vom ersten Steuersignal die Puffereinrichtung für die Speicherung weiterer Operanden des genannten Vektors in Bereitschaft setzt.
- 3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die beiden Registereinrichtungen Register mit Ausgang nach dem Rang der Eingangsreihenfolge sind (firstin, first-out registers).
- 4. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die in der ersten Puffereinrichtung gespeicherten Operanden fortlaufend nach dem Rang ihrer Eingangsreihenfolge zur betätigten Registereinrichtung übertragbar sind, während vom betätigten Register Operanden zum Rechenabschnitt übertragen werden.509838/0846- 4fr-
- 5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die beiden Registereinrichtungen Register mit Ausgang nach dem Rang der Eingangsreihenfolge sind (first-in, first-out registers).
- 6. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Rechenabschnitt einen dritten Vektor mit einer Vielzahl von aufeinanderfolgenden, im Speicher zu speichernden Resultanten bildet, daß der Speicher gleichzeitig Resultanten in eine andere Speicherbank als die, aus der ein Zugriff zu den Operanden erfolgt, einzugeben vermag, daß die Vorrichtung Empfänger- oder Aufnahmeeinrichtungen zur Aufnahme aufeinanderfolgender Resultanten von den Rechenabschnitten, zweite Puffereinrichtungen zur Speicherung von Resultanten und durch den Speicher betätigbare Eingabeeinrichtungen zur Eingabe der fortlaufenden Resultanten von der zweiten Puffereinrichtung in aufeinanderfolgend bezeichnete Speicherbänke aufweist und daß der Speicher die Eingabeeinrichtung betätigt, wenn die für die Speicherung der Resultanten bestimmte Speicherbank nicht gleichzeitig von der ersten oder der zweiten Leseeinrichtung zugegriffen wird.
- 7. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß eine Zählereinrichtung vorgesehen ist, die eine Zählung der Anzahl von in der zweiten Puffereinrichtung gespeicherten Resultanten liefert, und daß die erste Steuereinrichtung in Abhängigkeit von einer vorbestimmten Zählung der Zählereinrichtung, welche angibt, daß die zweite Puffereinrichtung eine vorbestimmte Zahl von Resultanten enthält, zur Betätigung der ersten. Puffereinrichtung zwecks Speicherung weiterer Operanden betätigbar ist.509838/0846
- 8. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der erste und der zweite Vektor ein erster bzw. ein zweiter Sparse-Vektor sind und ein erster Befehlsvektor sowie ein zweiter Befehlsvektor eine erste bzw. eine zweite Reihe oder Folge von aufeinanderfolgenden Bits enthalten, wobei die Bits der beiden Befehlsvektoren jeweils einen ersten Binärwert, sooft der entsprechende Ausdruck des betreffenden ersten oder zweiten Operandenvektors einen nicht Null entsprechenden Wert darstellt, und einen zweiten Binärwert besitzen, wenn der genannte Ausdruck einem Null-Wert entspricht, daß weiterhin eine logische Einrichtung zur Verarbeitung der beiden Befehlsvektoren zur Lieferung erster und zweiter Durchschalt- bzw. Auftastsignale vorgesehen ist, daß die logische Einrichtung Prüfeinrichtungen zur sequentiellen Prüfung der Binärwerte der Bits der beiden Befehlsvektoren, eine erste Einrichtung zur Erzeugung des ersten Auftastsignals, sooft die Prüfeinrichtung ein Bit prüft, welches den ersten Binärwert im ersten Befehlsvektor besitzt, und eine zweite Einrichtung zur Lieferung des zweiten Auftastsignals aufweist, sooft die Prüfeinrichtung ein Bit mit dem ersten Binärwert im zweiten Befehlsvektor feststellt, daß die erste Ausgangseinrichtung ein erstes tormäßig steuerbares Register zur Speicherung von Operanden des ersten Sparse-Vektors aufweist, welches einen Ausgang aufweist und auf das erste Auftastsignal anspricht, um vom ersten Sparse-Vektor einen Operanden zum Rechenabschnitt zu liefern, und daß die zweite Ausgangseinrichtung ein zweites tormäßig steuerbares Register zur Speicherung von Operanden des zweiten Sparee-Vektors aufweist, welches einen Ausgang aufweist und zur Lieferung eines Operanden vom zweiten Sparse-Vektor zum Rechenabschnitt auf das zweite Auftastsignal anspricht.50S838/0846
- 9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die logische Einrichtung ein erstes Register zur Speicherung zumindest eines Teils des ersten Befehlsvektors und ein zweites Register zur Speicherung mindestens· eines Teils des zweiten Befehlsvektors und eine Schiebeeinrichtung zum sequentiellen Verschieben des Inhalts der beiden Register aufweist, daß die erste Signalerzeugungseinrichtung das erste Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im ersten Register befindet, und daß die zweite Signalerzeugungseinrichtung das zweite Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im zweiten Register befindet.
- 10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die Schiebeeinrichtung ein Schiebenetzwerk aufweist.
- 11. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß auf eine Koinzidenz der Bits der beiden Befehlsvektoren mit dem zweiten Binärwert ansprechende Koinzidenzeinrichtungen und Zählereinrichtungen zum Zählen der Anzahl der aufeinanderfolgenden, zusammenfallenden Bits mit dem zweiten Binärwert vorgesehen sind, und daß die Schiebeeinrichtung auf die Zählung der Zählereinrichtung anspricht, um zusätzlich den Inhalt der beiden Register um eine der Zählung entsprechende Zahl von Bits zu verschieben.
- 12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß die Koinzidenzeinrichtungen an die beiden Register angeschlossene ODER-Glieder zum Durchlassen eines Bitstroms mit einer Vielzahl von Bits aufweisen, wobei509838/0846die Bits des Bitstroms einen ersten Binärwert besitzen, wenn das betreffende Bit im ersten oder zweiten Befehlsvektor den ersten Binärwert besitzt, und einen zweiten Binärwert besitzen, wenn das entsprechende Bit im ersten und im zweiten Befehlsvektor den zweiten Binärwert besitzt, und daß die Zählereinrichtungen eine normalisierende Zählereinrichtung zum Zähler der den zweiten Binärwert besitzenden, aufeinanderfolgenden Bits im Bitstrom sowie ein drittes Register zur Speicherung eines für die Zählung repräsentativen Signals aufweisen.
- 13. Vorrichtung nach Anspruch 12, dadurch'gekennzeichnet, daß die normalisierende Zählereinrichtung betätigbar ist, wenn das erste Bit im Bitstrom den zweiten Binärwert besitzt.
- 14. Vorrichtung nach Anspruch 8, gekennzeichnet durch Aufnahmeeinrichtungen zum Empfangen der Sparse-Resultantenvektoren von den Rechenabschnitten des Rechners, wobei die Sparse-Resultantenvektoren eine Anzahl von aus den ersten und zweiten Operanden abgeleiteten Resultanten enthalten, durch eine Funktionssteuereinrichtung zur Lieferung eines dritten Auftastsignals, das anzeigt, daß die Resultanten das Ergebnis einer Multiplikations- oder einer Divisionsfunktion sind, und durch eine Tor-(schaltungs)einrichtung, die auf eine Koinzidenz zwischen dem ersten, dem zweiten und dem dritten Auftastsignal anspricht, um ausgewählte Resultanten von der Aufnahmeeinrichtung zu verarbeiten bzw. zum Speicher eines elektronischen Rechners zu übertragen.
- 15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß die Funktionssteuereinrichtung ein viertes Auftast-S09838/084Ssignal liefert, welches die Resultanten als Ergebnis einer Additions- oder einer Subtraktionsfunktion ausweist, und daß die Toreinrichtung zur Verarbeitung ausgewählter Resultanten von der Aufnahmeeinrichtung zum Speicher auf eine Koinzidenz zwischen dem vierten und entweder dem ersten oder dem zweiten Auftastsignal anspricht.
- 16. Vorrichtung nach Anspruch 15* dadurch gekennzeichnet, daß die Toreinrichtung ein erstes UND-Glied, das auf eine Koinzidenz zwischen dem ersten, zweiten und dritten Auftastsignal anspricht und ein erstes UND-Signal liefert, ein zur Lieferung eines zweiten UND-Signals auf eine Koinzidenz zwischen dem ersten und dem vierten Auftastsignal ansprechendes zweites UND-Glied, ein drittes UND-Glied, das zur Lieferung eines dritten UND-Signals auf eine Koinzidenz zwischen dem zweiten und dem vierten Auftastsignal anspricht, und ein ODER-Glied aufweist, das zur Steuerung der Aufnahmeeinrichtung auf das erste, das zweite oder das dritte UND-Signal anspricht.
- 17. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß die logische Einrichtung ein erstes Register zur Speicherung zumindest eines Teils des ersten Befehlsvektors und ein zweites Register zur Speicherung mindestens eines Teils des zweiten Befehlsvektors und eine Schiebeeinrichtung zum sequentiellen Verschieben des Inhalts der beiden Register aufweist, daß die erste Signalerzeugungseinrichtung das erste Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im ersten Register befindet, und daß die zweite Signalerzeugungseinrichtung das zweite Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im zweiten Register befindet.509836/08 4"6
- 18. Vorrichtung nach Anspruch 17, dadurch gekennzeichnet, daß auf eine Koinzidenz der Bits der beiden Befehlsvektoren mit dem zweiten Binärwert ansprechende Koinzidenzeinrichtungen und Zählereinrichtungen zum Zählen der Anzahl der aufeinanderfolgenden, zusammenfallenden Bits mit dem zweiten Binärwert vorgesehen sind, und daß die Schiebeeinrichtung auf die Zählung der Zählereinrichtung anspricht, um zusätzlich den Inhalt der beiden Register um eine der Zählung entsprechende Zahl von Bits zu verschieben.
- 19. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß die logische Einrichtung ein erstes Register zur Speicherung zumindest eines Teils des ersten Befehlsvektors und ein zweites Register zur Speicherung mindestens eines Teils des zweiten Befehlsvektors und eine Schiebeeinrichtung zum sequentiellen Verschieben des Inhalts der beiden Register aufweist, daß die erste Signalerzeugungseinrichtung das erste Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im ersten Register befindet, und daß die zweite Signalerzeugungseinrichtung das zweite Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im zweiten Register befindet.
- 20. Vorrichtung nach Anspruch 19,dadurch gekennzeichnet, daß auf eine Koinzidenz der Bits der beiden Befehlsvektoren mit dem zweiten Binärwert ansprechende Koinzidenzeinrichtungen und Zählereinrichtungen zum Zählen der Anzahl der aufeinanderfolgenden, zusammenfallenden Bits mit dem zweiten Binärwert vorgesehen sind, und daß die Schiebeeinrichtung auf die Zählung der Zählereinrichtung anspricht, um609838/0-Tf-zusätzlich den Inhalt der beiden Register um eine der Zählung entsprechende Zahl von Bits zu verschieben.
- 21. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, daß zweite logische Einrichtungen vorgesehen sind, die auf die ersten und zweiten Befehlsvektoren sowie auf das dritte und das vierte Auftastsignal ansprechen und einen dritten Befehlsvektor erzeugen, welcher eine Anzahl von Bits enthält, wobei ein Bit des dritten Befehlsvektors bei Koinzidenz zwischen einem dritten Auftastsignal und einem Bit mit erstem Binärwert in jedemersten und zweiten Befehlsvektor den ersten Binärwert hat oder bei Koinzidenz zwischen einem vierten Auftastsignal und einem Bit mit erstem Binärwert in einem der ersten und der zweiten Befehlsvektoren einen ersten Binärwert besitzt, während ein Bit des dritten Befehlsvektors bei Koinzidenz zwischen einem dritten Auftastsignal und einem Bit mit zweitem Binärwert in einem der ersten und zweiten Befehlsvektoren den zweiten Binärwert hat oder bei Koinzidenz zwischen dem vierten Auftastsignal und einem dmn zweiten Binärwert besitzenden Bit des ersten und des zweiten Befehlsvektors einen zweiten Binärwert besitzt.
- 22. Vorrichtung nach Anspruch 21, dadurch gekennzeichnet, daß die zweite logische Einrichtung ein erstes UND-Glied, das zur Lieferung eines ersten UND-Signals auf eine Koinzidenz zwischen dem dritten Auftastsignal und den den zweiten Binärwert besitzenden Bits des ersten und des zweiten Befehlsvektors anspricht, ein zweites UND-Glied, das zur Lieferung eines zweiten UND-Signals auf eine Koinzidenz zwischen dem vierten Auftastsignal und einem den ersten Binärwert besitzenden Bit des ersten Befehlsvektors anspricht, ein drittes UND-Glied, das zur Erzeu-8/0846gung eines dritten UND-Signals auf eine Koinzidenz zwischen dem vierten Auftastsignal und einem den ersten Binärwert besitzenden Bit des zweiten Befehlsvektors anspricht, ein zur Lieferung eines Setzsignals auf jedes der drei UND-Signale ansprechendes ODER-Glied und eine mit letzterem verbundene Einrichtung zur Erzeugung der Bits des dritten Befehlsvektors aufweist, so daß ein erzeugtes Bit einen ersten Binärwert besitzt, wenn vom ODER-Glied ein Stellsignal geliefert wird, und einen zweiten Binärwert besitzt, wenn das ODER-Glied kein Stellsignal abgibt.
- 23. Vorrichtung zur gleichzeitigen Verarbeitung bzw. Übertragung von Operanden eines ersten Vektors in Form von A1, A2, A, ... An und Operanden eines zweiten Vektors in Form von B^, B2, B, ... Bn zum Rechenabschnitt eines elektronischen Rechners, wobei die beiden Vektoren jeweils eine endliche Zahl von Operanden enthalten und wobei A*, A2, A^ ... A jeweils einzelne, aufeinanderfolgende erste Operanden des ersten Vektors und B., B2, B3 ... B jeweils einzelne aufeinanderfolgende zweite Operanden des zweiten Vektors darstellen, dadurch gekennzeichnet, daß eine Eingabeeinrichtung zur Aufnahme des ersten und des zweiten Vektors in zwei fortlaufend geordneten Operandenströmen und eine an die Eingabeeinrichtung angeschlossene erste Ausrichteinrichtung zur Ausrichtung der beiden Operandenströme vorgesehen sind, um Operandenpaare A^ und B^, A2 und B2, A, und B, ... A und B zu einer Ausgangseinrichtung zu liefern, wobei die Operanden jedes Paars in Zeitkoinzidenz zur Ausgangseinrichtung übertragen werden, und daß die Ausgangseinrichtung mit dem Rechenabschnitt verbunden ist und die Operandenpaare fortlaufend zu ihm überträgt.509838/0846
- 24. Vorrichtung nach Anspruch 23, dadurch gekennzeichnet, daß die erste Ausrichteinrichtung eine Einrichtung zur Speicherung von Operanden und eine Steuereinrichtung aufweist, die auf das erste Eintreffen der von der Eingabeeinrichtung empfangenen Operanden A1 und B^ zur selektiven Ansteuerung einer Puffereinrichtung anspricht, um die Operanden des betreffenden, dem zuerst eintreffenden Operanden zugeordneten Vektors zu speichern, und daß der Puffer die gespeicherten Operanden fortlaufend zur Ausgangseinrichtung liefert, und zwar nach dem Eintreffen der entsprechenden, nacheinander bzw. fortlaufend angeforderten Operanden des anderen Vektors an der Eingabeeinrichtung und nach ihrer Übertragung zur Ausgangseinrichtung .
- 25. Vorrichtung nach Anspruch 24, wobei der Rechenabschnitt die Operandenpaare zur Entwicklung eines Resultantenvektors in Form von C^, Cp, C, ... C verarbeitet, der eine endliche Zahl von Resultanten enthält, und wobei CL, Cp, C, ... C jeweils einen Einzelresultanten des Resultantenvektors darstellen, gekennzeichnet durch eine Aufnahmeeinrichtung zum Empfangen bzw. Aufnehmen des Resultantenvektors vom Rechenabschnitt in einem fortlaufend geordneten Resultantenstrom, durch einen an die Aufnahmeeinrichtung angeschlossenen zweiten Puffer zur Speicherung von Resultanten, wobei der zweite Puffer einen Ausgang aufweist, und durch eine zweite Steuereinrichtung, welche den zweiten Puffer zur Speicherung einer vorbestimmten Zahl von Resultanten anzusteuern vermag.
- 26. Vorrichtung nach Anspruch 25, dadurch gekennzeichnet, daß dem zweiten Puffer eine Einrichtung zur Betätigung der ersten Steuereinrichtung zugeordnet ist, um den509838/0846ersten Puffer zusätzliche Operanden speichern zu lassen, wenn im zweiten Puffer eine vorbestimmte Zahl von Resultanten gespeichert ist.
- 27. Vorrichtung nach Anspruch 26, dadurch gekennzeichnet, daß der Rechner einen Speicher mit einer Anzahl von die ersten und zweiten Vektoren enthaltenden Speicherbänken aufweist, daß die Eingabeeinrichtung an den Speicher angeschlossen ist, daß der Ausgang des zweiten Puffers mit dem Speicher verbunden ist, so daß Resultanten in mindestens einigen Speicherbänken speicherbar sind, daß der Speicher eine Sperrsignalanzeige dafür liefert, welche Speicherbänke nicht für die Speicherung von Resultanten zugreifbar sind, und daß die zweite Steuereinrichtung auf das Sperrsignal anspricht, um den zweiten Puffer zu veranlassen, die für die Speicherung in den nicht zugreifbaren Speicherbänken vorgesehenen Resultanten zu speichern.
- 28. Vorrichtung nach Anspruch 25, dadurch gekennzeichnet, daß der Rechner einen Speicher mit einer Anzahl von die ersten und zweiten Vektoren enthaltenden Speicherbähken aufweist, daß die Eingabeeinrichtung an den Speicher angeschlossen ist, daß der Ausgang des zweiten Puffers mit dem Speicher verbunden ist, so daß Resultanten in mindestens einigen Speicherbänken speicherbar sind, daß der Speicher eine Sperrsignalanzeige dafür liefert, welche Speicherbänke nicht für die Speicherung von Resultanten zugreifbar sind, und daß die zweite Steuereinrichtung auf das Sperrsignal anspricht, um den zweiten Puffer zu veranlassen, die für die Speicherung in den niGht zugreifbaren Speicherbänken vorgesehenen Resultanten zu speichern.509818/0846
- 29. Vorrichtung nach Anspruch 23, wobei der Rechenabschnitt die Operandenpaare zur Entwicklung eines Resultantenvektors In Form von C1, Cp> C, ... C verarbeitet, der eine endliche Zahl von Resultanten enthält, und wobei C-, C2* C, ... Cn jeweils einen Einzelresultanten des Resultantenvektors darstellen, gekennzeichnet durch eine Aufnahme einrichtung zum Empfangen bzw. Aufnehmen des Resultantenvektors vom Rechenabschnitt In einem fortlaufend geordneten Resultantenstrom, durch einen an die Aufnahmeeinrichtung angeschlossenen Puffer zur Speicherung von Resultanten, wobei der Puffer einen Ausgang aufweist, und durch eine zweite Steuereinrichtung, welche den Puffer zur Speicherung einer vorbestimmten Zahl von Resultanten anzusteuern vermag.
- 30. Vorrichtung nach Anspruch 29, dadurch gekennzeichnet, daß der Rechner einen Speicher mit einer Anzahl von die ersten und zweiten Vektoren enthaltenden Speicherbänken aufweist, daß die Eingabeeinrichtung an den Speicher angeschlossen ist, daß der Ausgang des Puffers mit dem Speicher verbunden ist, so daß Resultanten in mindestens einigen Speicherbänken speicherbar sind, daß der Speicher eine Sperrsignalanzeige dafür liefert, welche Speicherbänke nicht für die Speicherung von Resultanten zugreifbar sind, und daß die Steuereinrichtung auf das Sperrsignal anspricht, um den Puffer zu veranlassen, die für die Speicherung in den nicht zugreifbaren Speioherbänken vorgesehenen Resultanten zu speichern.
- 31. Vorrichtung zur Verarbeitung von Daten zwischen dem Speicher und den Rechenabschnitten eines elektronischen Rechners, wobei der Speicher einen ersten Sparse-Vektor nit einer Anzahl von ersten Operanden und einen zweiten509838/0846Sparse-Vektor mit einer Anzahl von zweiten Operanden enthält, wobei die ersten Operanden jeweils bestimmte derjenigen Ausdrücke eines entsprechenden ersten Operandenvektors darstellen, welche fUr einen vorbestimmten Wert nicht repräsentativ sind, und die zweiten Operanden jeweils bestimmte derjenigen Ausdrücke eines entsprechenden zweiten Operandenvektors darstellen, welche für einen vorbestimmten Wert nicht repräsentativ sind, wobei der Speicher weiterhin einen ersten Befehlsvektor mit einer Anzahl fortlaufender Bits und einen zweiten Befehlsvektor mit einer zweiten Anzahl fortlaufender Bits enthält, wobei mindestens ein Bit des ersten Befehlsvektozs einem bestimmten Ausdruck des ersten Operandenvektors entspricht und mindestens ein Bit des zweiten Befehlsvektors einem bestimmten Ausdruck des zweiten Operandenvektors entspricht, und wobei jedes Bit des ersten und des zweiten Befehlsvektors einen ersten Binärwert besitzt, wenn das Bit einem den vorbestimmten Wert nicht darstellenden Ausdruck entspricht, und jedes Bit des ersten und des zweiten Befehlsvektors einen zweiten Binärwert besitzt, wenn das Bit einem den vorbestimmten Wert darstellenden Ausdruck entspricht, ge kennzeichnet durch eine Ausrichteinrichtung zum Ausrichten jedes fortlaufenden ersten Operanden des ersten Sparse-Vektors auf jeden fortlaufenden zweiten Operanden des zweiten Sparse-Vektors, eine auf die Bits des ersten und des zweiten Befehlsvektors ansprechende logische Einrichtung zur Lieferung von ersten und zweiten Durchschalt- bzw. Auftastsignalen und eine Tor(schaltungs)einrichtung, die auf das erste Auftastsignal zur Verarbeitung bzw. Übertragung eines Operanden des ersten Sparse-Vektors von der Ausrichteinrichtung zum Rechenabschnitt und auf das zweite Auftastsignal zur Verarbeitung bzw. Übertragung eines Operanden des zweiten509338/0846Sparse-Vektors von der Ausrichteinrichtung zum Rechenabschnitt anspricht.
- 32. Vorrichtung nach Anspruch 31» dadurch gekennzeichnet, daß die logische Einrichtung ein erstes Register zur Speicherung zumindest eines Teils des ersten Befehlsvektors und ein zweites Register zur Speicherung zumindest eines Teils des zweiten Befehlsvektors, eine Schiebeeinrichtung zum sequentiellen Verschieben der Inhalte der beiden Register, eine erste Einrichtung zur Erzeugung des ersten Auftastsignals, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im ersten Register befindet, und eine zweite Einrichtung zur Erzeugung des zweiten Auftastsignals aufweist, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im zweiten Register befindet.
- 33. Vorrichtung naoh Anspruch 32, dadurch gekennzeichnet, daß die Schiebeeinrichtung ein Sohiebenetzwerk aufweist.
- 34. Vorrichtung nach Anspruch 32, dadurch gekennzeichnet, daß auf eine Koinzidenz der Bits der beiden Befehlsvektoren mit dem zweiten Binärwert ansprechende Koinzidenz-. einrichtungen und Zählereinrichtungen zum Zählen der Anzahl der aufeinanderfolgenden, zusammenfallenden Bits mit dem zweiten Binärwert vorgesehen sind, und daß die Schiebeeinrichtung auf die Zählung der Zählereinrichtung anspricht, um zusätzlich den Inhalt der beiden Register um eine der Zählung entsprechende Zahl von Bits zu verschieben.
- 35. Vorrichtung nach Anspruch 34, dadurch gekennzeichnet, daß die Koinzidenzeinrichtungen an die beiden Register angeschlossene ODER-Glieder zum Durchlassen eines Bit-509838/0846stroms mit einer Vielzahl von Bits aufweisen, wobei die Bits des Bitstroms einen ersten Binärwert besitzen, wenn das betreffende Bit im ersten oder zweiten Befehlsvektor den ersten Binärwert besitzt, und einen zweiten Binärwert besitzen, wenn das entsprechende Bit im ersten und. im zweiten Befehls vektor den zweiten Binärwert besitzt, und daß die Zählereinrichtungen eine normalisierende Zählereinrichtung zum Zählen der den zweiten Binärwert besitzenden, aufeinanderfolgenden Bits im Bitstrom sowie ein drittes Register zur Speicherung eines für die Zählung repräsentativen Signals aufweisen.
- 36. Vorrichtung nach Anspruch 35» dadurch gekennzeichnet, daß die normalisierende Zählereinrichtung betätigbar ist, wenn das erste Bit im Bitstrom den zweiten Binärwert besitzt.
- 37· Vorrichtung nach Anspruch 31, gekennzeichnet durch Aufnahmeeinrichtungen zum Empfangen der Sparse-Resultantenvektoren von den Rechenabschnitten des Rechners, wobei die Sparse-Resultantenvektoren eine Anzahl von aus den ersten und zweiten Operanden abgeleiteten Resultanten enthalten, durch eine Funktionssteuereinrichtung zur Lieferung eines dritten Auftastsignals, das anzeigt, daß die Resultanten das Ergebnis einer Multiplikationsoder einer Divisionsfunktion sind, und durch eine Tor-(schaltungs)einrichtung, die auf eine Koinzidenz zwischen dem ersten, dem zweiten und dem dritten Auftastsignal anspricht, um ausgewählte Resultanten von der Aufnahmeeinrichtung zu verarbeiten bzw. zum Speicher eines elektronischen Rechners zu übertragen.
- 38. Vorrichtung nach Anspruch 37, dadurch gekennzeichnet, daß509838/0846die Funktionssteuereinrichtung ein viertes Auftastsignal liefert, welches die Resultanten als Ergebnis einer Additions-oder einer Subtraktionsfunktion ausweist, und daß die Toreinrichtung zur Verarbeitung ausgewählter Resultanten von der Aufnahmeeinrichtung zum Speicher auf eine Koinzidenz zwischen dem vierten und entweder dem ersten oder dem zweiten Auftastsignal anspricht.
- 39. Vorrichtung nach Anspruch 38, dadurch gekennzeichnet, daß die Toreinrichtung ein erstes UND-Glied, das auf eine Koinzidenz zwischen dem ersten, zweiten und dritten Auftastsignal anspricht und ein erstes ÜND-Signal liefert, ein zur Lieferung eines zweiten UND-Signals auf eine Koinzidenz zwischen dem ersten unddem vierten Auftastsignal ansprechendes zweites UND-Glied, ein drittes UND-Glied, das zur Lieferung eines dritten UND-Signals auf eine Koinzidenz zwischen dem zweiten und dem vierten Auftastsignal anspricht, und ein ODER-Glied aufweist, das zur Steuerung der Aufnahmeeinrichtung auf das erste, das zweite oder das dritte UND-Signal anspricht.
- 40. Vorrichtung nach Anspruch 37» dadurch gekennzeichnet, daß die logische Einrichtung ein erstes Register zur Speicherung zumindest eines Teils des ersten Befehlsvektors und ein zweites Register zur Speicherung mindestens eines Teils des zweiten Befehlsvektors und eine Schiebeeinrichtung zum sequentiellen Verschieben des Inhalts der beiden Register aufweist, daß die erste Signalerzeugungseinrichtung das erste Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im ersten Register befindet, und daß die zweite Signalerzeugungseinrichtung das zweite509838/0846Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im zweiten Register befindet.
- 41. Vorrichtung nach Anspruch 40, dadurch gekennzeichnet, daß auf eine Koinzidenz der Bits der beiden Befehlsvektoren mit dem zweiten Binärwert ansprechende Koinzidenzeinrichtungen und Zählereinrichtungen zum Zählen der Anzahl der aufeinanderfolgenden, zusammenfallenden Bits mit dem zweiten Binärwert vorgesehen sind, und daß die Schiebeeinrichtung auf die Zählung der Zählereinrichtung anspricht, um zusätzlich den Inhalt der beiden Register um eine der Zählung entsprechende Zahl von Bits zu verschieben.
- 42. Vorrichtung nach Anspruch 39» dadurch gekennzeichnet, daß die logische Einrichtung ein erstes Register zur Speicherung zumindest eines Teils des ersten Befehlsvektors und ein zweites Register zur Speicherung mindestens eines Teils des zweiten Befehlsvektors und eine Schiebeeinrichtung zum sequentiellen Verschieben des Inhalts der beiden Register aufweist, daß die erste Signalerzeugungseinrichtung das erste Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im ersten Register befindet, und daß die zweite Signalerzeugungseinrichtung das zweite Auftastsignal liefert, wenn sich ein Bit mit dem ersten Binärwert in einer vorbestimmten Stelle im zweiten Register befindet.
- 43. Vorrichtung nach Anspruch 42, dadurch gekennzeichnet, daß auf eine Koinzidenz der Bits der beiden Befehlsvektoren mit dem zweiten Binärwert ansprechende Koinzidenzeinrichtungen und Zählereinrichtungen zum Zählen509838/0846der Anzahl der aufeinanderfolgenden, zusammenfallenden Bits mit dem zweiten Binärwert vorgesehen sind, und daß die Schiebeeinrichtung auf die Zählung der Zählereinrichtung anspricht, um zusätzlich den Inhalt der beiden Register um eine der Zählung entsprechende Zahl von Bits zu verschieben.
- 44. Vorrichtung nach Anspruch 38, dadurch gekennzeichnet, daß zweite logische Einrichtungen vorgesehen sind, die auf die ersten und zweiten Befehlsvektoren sowie auf das dritte und das vierte Auftastsignal ansprechen und einen dritten Befehlsvektor erzeugen, welcher eine Anzahl von Bits enthält, wobei ein Bit des dritten Befehlsvektors bei Koinzidenz zwischen einem dritten Auftastsignal und einem Bit mit erstem Binärwert in jedem ersten und zweiten Befehlsvektor den ersten Binärwert hat oder bei Koinzidenz zwischen einem vierten Auftastsignal und einem Bit mit erstem Binärwert in einem der ersten und der zweiten Befehlsvektoren einen ersten Binärwert besitzt, während ein Bit des dritten Befehlsvektors bei Koinzidenz zwischen einem dritten Auftastsignal und einem Bit mit zweitem Binärwert in einem der ersten und zweiten Befehlsvektoren den zweiten Binärwert hat, oder bei Koinzidenz zwischen dem vierten Auftastsignal und einem den zweiten Binärwert besitzenden Bit des ersten und des zweiten Befehlsvektors einen zweiten Binärwert besitzt.
- 45. Vorrichtung nach Anspruch 44, dadurch gekennzeichnet, daß die zweite logische Einrichtung ein erstes UND-Glied, das zur Lieferung eines ersten UND-Signals auf eine Koinzidenz zwischen dem dritten Auftastsignal und den den zweiten Binärwert besitzenden Bits des ersten und des zweiten Befehlsvektors anspricht, ein zweites UND-Glied,509838/0846das zur Lieferung eines zweiten UND-Signals auf eine Koinzidenz zwischen dem vierten Auftastsignal und einem den ersten Binärwert besitzenden Bit des ersten Befehlsvektors anspricht, ein drittes UND-Glied, das zur Erzeugung eines dritten UND-Signals auf eine Koinzidenz zwischen dem vierten Auftastsignal und einem den ersten Binärwert besitzenden Bit des zweiten Befehlsvektors anspricht, ein zur Lieferung eines Setzsignals auf jedes der drei UND-Signale ansprechendes ODER-Glied und eine mit letzterem verbundene Einrichtung zur Erzeugung der Bits des dritten Befehlsvektors aufweist, so daß ein erzeugtes Bit einen ersten Binärwert besitzt, wenn vom ODER-Glied ein Stellsignal geliefert wird, und einen zweiten Binärwert besitzt, wenn das - ODER-Glied kein Stellsignal abgibt.509838/0846Leerseite
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US450632A US3898626A (en) | 1974-03-13 | 1974-03-13 | Data processing apparatus |
US470896A US3919534A (en) | 1974-05-17 | 1974-05-17 | Data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2505518A1 true DE2505518A1 (de) | 1975-09-18 |
DE2505518C2 DE2505518C2 (de) | 1990-03-01 |
Family
ID=27036074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19752505518 Granted DE2505518A1 (de) | 1974-03-13 | 1975-02-10 | Vorrichtung zur uebertragung von daten zwischen den speicher- und rechenabschnitten eines elektronischen rechners |
Country Status (5)
Country | Link |
---|---|
JP (1) | JPS599944B2 (de) |
DE (1) | DE2505518A1 (de) |
FR (1) | FR2264323B1 (de) |
GB (1) | GB1479404A (de) |
NL (2) | NL181055C (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5933554A (ja) * | 1982-08-18 | 1984-02-23 | Nec Corp | オペランド供給装置 |
US5689653A (en) * | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
GB2476800A (en) | 2010-01-07 | 2011-07-13 | Linear Algebra Technologies Ltd | Sparse matrix vector multiplier using a bit map of non-zero elements to control scheduling of arithmetic operations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2241257A1 (de) * | 1971-08-25 | 1973-03-08 | Ibm | Datenverarbeitende anlage |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5223704B2 (de) * | 1971-09-02 | 1977-06-25 | ||
JPS5728219Y2 (de) * | 1973-12-26 | 1982-06-19 |
-
1975
- 1975-02-10 DE DE19752505518 patent/DE2505518A1/de active Granted
- 1975-02-11 GB GB576375A patent/GB1479404A/en not_active Expired
- 1975-02-19 JP JP50020823A patent/JPS599944B2/ja not_active Expired
- 1975-02-27 NL NL7502309A patent/NL181055C/xx not_active IP Right Cessation
- 1975-03-12 FR FR7507747A patent/FR2264323B1/fr not_active Expired
-
1986
- 1986-11-13 NL NL8602882A patent/NL8602882A/nl not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2241257A1 (de) * | 1971-08-25 | 1973-03-08 | Ibm | Datenverarbeitende anlage |
Also Published As
Publication number | Publication date |
---|---|
NL181055B (nl) | 1987-01-02 |
DE2505518C2 (de) | 1990-03-01 |
NL181055C (nl) | 1987-06-01 |
NL8602882A (nl) | 1987-03-02 |
GB1479404A (en) | 1977-07-13 |
NL7502309A (nl) | 1975-09-16 |
FR2264323A1 (de) | 1975-10-10 |
JPS599944B2 (ja) | 1984-03-06 |
AU7854475A (en) | 1976-08-26 |
JPS50123242A (de) | 1975-09-27 |
FR2264323B1 (de) | 1980-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1951552C3 (de) | Speichereinrichtung mit Sicherung durch Schutzschlüssel | |
DE1449765C3 (de) | Einrichtung zur Abfrage eines assoziativen Speichers | |
DE2819571C2 (de) | ||
DE1956604B2 (de) | Datenverarbeitungsanlage | |
DE2145120A1 (de) | Digitales Datenverarbeitungsgerat | |
DE1942005B2 (de) | Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten | |
DE1299145B (de) | Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen | |
DE1901343B2 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE2341549A1 (de) | Einrichtung zur ueberwachung und registrierung von betriebsvorgaengen in einer datenverarbeitungsanlage | |
DE2659621A1 (de) | Anordnung zum uebertragen von datenbloecken | |
DE2363846A1 (de) | Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE3107568A1 (de) | Datenverarbeitungseinrichtung | |
DE2505518A1 (de) | Vorrichtung zur uebertragung von daten zwischen den speicher- und rechenabschnitten eines elektronischen rechners | |
DE2459476C3 (de) | ||
CH632605A5 (en) | Data-processing system with normal parallel provision and execution of machine instructions | |
DE2610428A1 (de) | Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher | |
DE2161213B2 (de) | Verfahren und Steuereinheit zum Übertragen von Datenwortblöcken | |
DE1222290B (de) | Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten | |
DE2349590A1 (de) | Vorrichtung zur datenverarbeitung | |
DE2000608A1 (de) | Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage | |
DE1094020B (de) | Periodisch arbeitende numerische Rechenmaschine | |
DE2150292C2 (de) | Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen | |
DE2238833A1 (de) | Datenverarbeitungsanordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: HENKEL, G., DR.PHIL. FEILER, L., DR.RER.NAT. HAENZ |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |