DE2505518C2 - - Google Patents
Info
- Publication number
- DE2505518C2 DE2505518C2 DE19752505518 DE2505518A DE2505518C2 DE 2505518 C2 DE2505518 C2 DE 2505518C2 DE 19752505518 DE19752505518 DE 19752505518 DE 2505518 A DE2505518 A DE 2505518A DE 2505518 C2 DE2505518 C2 DE 2505518C2
- Authority
- DE
- Germany
- Prior art keywords
- operands
- memory
- buffer
- vector
- results
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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
Die Erfindung bezieht sich auf eine Vorrichtung zur
Übertragung von Daten in einem Datenstrom von Operan
den von Vektoren zwischen dem Speicherabschnitt und
dem Rechenabschnitt eines elektronischen Rechners nach
dem Oberbegriff des Patentanspruches 1.
Bei der Datenverarbeitung ist es häufig wünschenswert,
vergleichsweise große Datenmengen in kürzest möglicher
Zeit zwischen den einzelnen Abschnitten eines Rechners
zu übertragen. Beispielsweise werden die im Speicher
abschnitt gespeicherten Daten normalerweise fortlaufend
aus den Speicherbänken ausgelesen, um anschließend im
Rechenabschnitt 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 gespeicherte
Operanden darstellen. Außerdem ist es häufig wünschens
wert, eine Resultante darstellende Daten in den gleichen
oder in benachbarten Speicherbänken zu speichern.
Vektoroperationen sind von einem Rechner durchzufüh
rende Operationen, bei denen einzelne von mehreren,
einen Vektor darstellende Operanden sequentiell mit
einzelnen von mehreren, einen anderen Vektor darstel
lenden Operanden verarbeitet werden, um mehrere Resul
tanten zu erhalten, die einen dritten Vektor darstellen.
Beispielsweise umfaßt ein einfacher Vektor A + B = C
die aufeinanderfolgenden Operationen von A₁ + B₁ = C₁,
A₂ + B₂ = C₂, A₃ + B₃ = C₃ . . . A n + B n = C n, wobei A₁,
A₂, A₃ . . . A n, den Vektor A, B₁, B₂, B₃ . . . B n den
Vektor B und C₁, C₂, C₃ . . . C n den resultierenden Vek
tor C darstellen. Gewöhnlich wird vor der Berechnung
der Vektoraufgabe der aus A₁, A₂, A₃ . . . A n bestehende
Vektor A in aufeinanderfolgenden Speicherbänken von
mehreren Speicherbänken des Speicherabschnitts gespei
chert. Der aus B₁, B₂, B₃ . . . B n bestehende Vektor B
wird ebenfalls in aufeinanderfolgenden Speicherbänken
gespeichert, und der aus C₁, C₂, C₃ . . . C n bestehende
resultierende Vektor C soll in mehreren Speicherbän
ken des Speicherabschnitts gespeichert werden. Häufig
sind die Speicherbänke, in denen die Vektoren A und
B gespeichert werden, die gleichen oder einander über
lappende Speicherbänke, und der resultierende Vektor
C muß dabei in den gleichen Speicherbänken wie die Ope
randenvektoren oder diese überlappenden Speicherbänken
des Speicherabschnitts gespeichert werden.
Normalerweise vermögen Leseregister bzw. Eingabeeinrich
tungen eines Speicherabschnitts während einer bestimm
ten Zeitspanne nur einen einzigen Datenblock aus einer
Speicherbank herauszugreifen. Aus diesem Grund ist es
weder möglich, die Operanden der Vektoren A und B gleich
zeitig aus einer einzigen Speicherbank herauszulesen,
noch während eines einzigen Hauptzyklus der Speicher
bank eine Resultante C in der gleichen Speicherbank
zu speichern.
Wenn die Operanden der Vektoren A und B in der glei
chen Speicherbank erscheinen, mußte bisher der zuerst
auftretende Operand eine vorbestimmte Zeit lang ver
zögert werden, bis der als zweiter auftretende Operand
ausgelesen ist. Gemäß Fig. 1 werden beispielsweise die
Vektoren A und B in der gleichen Speicherbank des Spei
cherabschnitts gespeichert; die Operanden A₁ bis A₈
werden dabei als Superwort in der Speicherbank 1, die
Operanden A₉ bis A₁₆ als Superwort in der Speicherbank
2 gespeichert usw., während die Operanden B₁ bis B₅
als Superwort in der Speicherbank 1, die Operanden B₆
bis B₁₃ als Superwort in der Speicherbank 2 gespeichert
werden usw. Bei den bisher benutzten Rechnern ist es
üblich, zunächst den Operanden A₁ aus der Bank 1 heraus
zulesen. Der Operand A₁ wird dann verzögert, bis der
Operand B₁ ausgelesen worden ist, und die Operanden
A₁ und B₁ werden dann zu den Rechenabschnitten des Rech
ners überführt, um C₁ zu erhalten. Sodann werden die
Operanden B verzögert, bis A₂ ausgelesen worden ist.
Hierauf werden die Operanden A verzögert, bis B₂ aus
gelesen worden ist. Dieser Vorgang läuft mit einer Ver
zögerung nach jedem aufeinanderfolgenden Lesevorgang
eines Operanden ab, so daß sich erhebliche Verzögerungen
ergeben.
Wie noch näher erläutert werden wird, ergeben sich zu
dem 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 Speicherabschnitts nach
einander aus den verschiedenen Speicherbänken heraus
greifbar. Gemäß Fig. 1 können beispielsweise während
eines Hauptzyklus bis zu acht fortlaufende Speicher
bänke einen Zugriff erlauben. Dabei können jedoch nur
die Operanden eines Vektors aus den verschiedenen Spei
cherbänken herausgegriffen werden, wobei es nicht mög
lich ist, während eines einzigen Speicher-Hauptzyklus
Operanden A i aus der Gruppe von acht Speicherbänken
und Operanden B j aus anderen der gleichen acht Speicher
bänke auszulesen.
Aus der DE-OS 22 41 257 ist eine Datenverarbeitungs
anlage bekannt, die einen Übertragungs-Verriegelungs
mechanismus zwischen mehreren Datenverarbeitungsein
richtungen haben soll, von denen jede über einen eigen
en Arbeitsspeicher verfügt und Daten aus einem gemein
samen Großraumspeicher adressiert. Hierzu hat die be
kannte Datenverarbeitungsanlage zunächst einen Haupt
speicher und mehrere einzelne Verarbeitungseinrichtun
gen. Jede Verarbeitungseinrichtung umfaßt einen Arbeits
speicher und eine Speichersteuerung, so daß die Spei
cherung von Signalen für die einzelnen Verarbeitungs
einrichtungen steuerbar ist. Ein Verzeichnisregister
ermöglicht eine assoziative Adressierung, um die Adres
se im Hauptspeicher von Daten festzulegen, die in den
jeweiligen Arbeitsspeichern gespeichert sind. Durch
verschiedene Informationssignale in den Verzeichnis
registern können Zustände angezeigt werden, so daß
sichergestellt ist, daß ein Operand in allen Arbeits
speichern genau umgespeichert wird, oder so daß ange
zeigt wird, daß ein bestimmter Arbeitsspeicher die ein
zige Umspeicherung eines bestimmten Operanden enthält,
oder so daß angezeigt wird, daß ein Operand im Arbeits
speicher von demjenigen im Hauptspeicher verschieden
ist. Wenn eine Abfrage durch einen Arbeitsspeicher nach
Information erfolgt, dann bewirkt das zugeordnete Ver
zeichnisregister zunächst ein Abtasten der Verzeich
nisregister aller übrigen Arbeitsspeicher, um festzu
stellen, ob die Information in einem anderen Arbeits
speicher vorhanden ist, und um zu bestimmen, ob die
Information zutreffend ist. Die bekannte Datenverar
beitungsanlage sieht kein Ausrichten von Operanden von
zwei oder mehr Vektoren vor, um einen "Strom" logischer
Operationen in der Logikeinheit eines Rechners vorzu
nehmen. Es wird hier assoziative Adressierung zum Ver
binden mehrerer Arbeitsspeicher mit einem Hauptspei
cher vorgenommen, um einen wirksamen Datenfluß zwischen
den einzelnen Arbeitsspeichern zu gewährleisten.
Es ist Aufgabe der vorliegenden Erfindung, eine Vorrich
tung zur Übertragung von Daten zwischen dem Speicher
abschnitt und dem Rechenabschnitt eines elektronischen
Rechners zu schaffen, bei der eine rasche Datenüber
tragung auch dann möglich ist, wenn ein zur Verzöge
rung von Operanden dienender Pufferspeicher voll ist.
Diese Aufgabe wird bei einer Vorrichtung nach dem Ober
begriff des Patentanspruches 1 erfindungsgemäß durch
die in dessen kennzeichnendem Teil enthaltenen Merk
male gelöst.
Vorteilhafte Weiterbildungen der Erfindung ergeben sich
aus den Patentansprüchen 2 und 3.
Der in der Beschreibung benutzte Ausdruck "Operanden
vektor" bedeutet einen Vektor mit einer Vielzahl von
Operanden, die in einem fortlaufend geordneten Strom
angeordnet sind. Der Ausdruck "Resultantenvektor" be
zieht sich auf einen Vektor mit einer Anzahl von Re
sultanten, die ebenfalls in einem fortlaufend geord
neten Strom angeordnet sind.
Daten, welche zumindest zwei Gruppen von zu den Rechen
abschnitten des Rechners zu überführenden Operanden
darstellen, werden durch Puffereinrichtungen bzw. einen
Puffer geleitet. Die zuerst ankommenden Daten werden
dabei verzögert, bis die zweiten Daten für das Ausle
sen 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") ge
meinsam mit den entsprechenden Daten vom zweiten Vektor.
Bei einem Beispiel, bei dem jedes Superwort in einer
Speicherbank bis zu acht Operanden enthalten kann, wer
den z. B. die zuerst eingelesenen Operanden, d. h. A₁
bis A₈, im Operandenpuffer gespeichert. Da der erste
B-Operand (B₁) in der gleichen Speicherbank gespeichert
wird wie die Operanden A₁ bis A₈, wird der Operand B₁
erst dann ausgelesen, wenn alle A-Operanden (A₁ bis
A₆₄) während des ersten Speicherhauptzyklus aus den
ersten acht Speicherbänken ausgelesen worden sind. Da
nach tasten die Leseregister gleichzeitig die ersten
und neunten Speicherbänke ab, um nacheinander die Ope
randen A₆₅ bis A₇₂ aus der neunten Speicherbank und
die Operanden B₁ bis B₅ (oder bis zu acht Operanden)
aus der ersten Speicherbank auszulesen. In der Zwischen
zeit setzt der Puffer den Operanden A₁ usw. beim Aus
lesen des Operanden B₁ usw. frei, während er den Operan
den A₆₅ usw. speichert. Infolgedessen werden die Ope
randen A₁ und B₁ freigegeben, worauf die Freigabe von
den Operanden A₂ und B₂ usw. folgt.
Die Steuereinrichtung spricht auf die zuerst eintref
fenden Daten zur Pufferung derselben an und verzögert
selektio die wieder in den Speicherabschnitt einzulesen
den Resultantendaten.
Die zwischen den beiden Puffereinrichtungen vorgesehe
ne Steuereinrichtung dient zur vorteilhaften Verzöge
rung der Datenströme um einen optimalen Betrag, so daß
die Übertragung von Operanden aus dem Speicherabschnitt
und von Resultanten zum Speicherabschnitt in einer Min
destzeit erfolgt.
Im folgenden sind bevorzugte Ausführungsformen der Er
fin
dung anhand der beigefügten Zeichnung näher erläutert. Es
zeigt
Fig. 1 eine schematische Darstellung einer Speicherstelle
von Operandenvektoren A und B sowie eines Resultan
tenvektors C in mehreren Speicherbänken eines Rech
ners,
Fig. 2 ein Blockschaltbild eines Ausführungsbeispiels
der Erfindung,
Fig. 3A bis 3D graphische Darstellungen zur Erläuterung der Arbeitsweise
des Ausführungsbeispiels gemäß Fig. 2 zur Daten
übertragung von Operandenvektoren vom Speicherabschnitt zum
Rechenabschnitt des Rechners und
Fig. 4A bis 4D graphische Darstellungen zur Erläuterung der Arbeitsweise
des Ausführungsbeispiels gemäß Fig. 2 zur Daten
übertragung der Resultantenvektoren vom Rechen
abschnitt zum Speicherabschnitt des Rechners.
In Fig. 1 ist eine typische Anordnung zur Speicherung von
Daten in einer Anzahl von Speicherbänken eines Rechners
veranschaulicht. Gemäß Fig. 1 bestehen
verschiedene Vektoren A und B jeweils aus mehreren Ein
zeloperanden A₁, A₂, A₃ . . . A n sowie B₁, B₂, B₃ . . . B n.
Jeder Operand wird manchmal auch als "Wort" und jede Ope
randengruppe auch als "Superwort" bezeichnet. Für
die Zwecke der Erläuterung sei vorausgesetzt, daß jedes
fortlaufende Superwort jedes Vektors in aufeinanderfolgen
den Speicherstellen des Speicherabschnitts (im folgenden kurz "Speicher" genannt) gespeichert ist und jede
Speicherbank ein Superwort eines Einzelvektors zu speichern
vermag. Gemäß Fig. 1 enthält die Speicherbank (im folgenden kurz "Bank" genannt) 1 des Speichers z. B.
die Operanden A₁ bis A₈, die Bank 2 des Speichers die Ope
randen A₉ bis A₁₆ usw. Außerdem enthält die Speicherbank 1
auch die Operanden B₁ bis B₅ (die vorderen drei Stellen
sind unbesetzt), während die Bank 2 die Operanden B₆ bis
B₁₃ enthält usw. Wie noch näher erläutert werden wird, soll
der Resultantenvektor C in der Weise ge
speichert werden, daß die Resultanten C₁ bis C₆ in der Bank
1 (die beiden vorderen Bereiche sind unbesetzt), C₇ bis C₁₄
in der Bank 2 gespeichert sind usw. Die unbesetzten bzw.
unbelegten Bereiche sind nur dargestellt, um zu veranschau
lichen, daß solche Nichtbelegungen vorkommen können, und de
ren Zahl kann bei den vorliegenden Beispielen bei irgend
einem Wert von 0 bis 7 liegen.
Eine Vorrichtung zur optimalen Durchführung einer Daten
kanalübertragung ist in Fig. 2 dargestellt, welche ein Block schaltbild ein be vorzugtes Ausführungsbeispiel der Erfindung zeigt. Die Vorrich tung gemäß Fig. 2 weist ein Lese- oder Eingaberegister 10 mit einem über einen Kanal 11 geführten Eingang von der Speicherzugriffsteuerung des Datenspeichers des Rechners auf. Ein ähnliches Lese- oder 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 zur Fan-in-Schaltung 19, einen Ausgangskanal 21 zu einem Zwei-Operanden-(1/4-Super wort)-Puffer 22 und einen Ausgangskanal 23 zu einer Fan-in- Schaltung 24 auf. Die Fan-in-Schaltung 15 liefert ein Aus gangssignal 25 zu einem Zwei-Operanden-(1/4-Superwort)-Re gister 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 sei nerseits ü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 ange schlossen. 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-in- Schaltung 24 liegt. Die Fan-in-Schaltung 19 liegt mit ihrem Ausgang über einen Kanal 37 am Puffer 38, der ein 128-Ope randen-(16-Feld)-Puffer ist, dessen Ausgänge über Kanäle 39 und 40 mit den Fan-in-Schaltungen 15 bzw. 24 verbunden sind.
kanalübertragung ist in Fig. 2 dargestellt, welche ein Block schaltbild ein be vorzugtes Ausführungsbeispiel der Erfindung zeigt. Die Vorrich tung gemäß Fig. 2 weist ein Lese- oder Eingaberegister 10 mit einem über einen Kanal 11 geführten Eingang von der Speicherzugriffsteuerung des Datenspeichers des Rechners auf. Ein ähnliches Lese- oder 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 zur Fan-in-Schaltung 19, einen Ausgangskanal 21 zu einem Zwei-Operanden-(1/4-Super wort)-Puffer 22 und einen Ausgangskanal 23 zu einer Fan-in- Schaltung 24 auf. Die Fan-in-Schaltung 15 liefert ein Aus gangssignal 25 zu einem Zwei-Operanden-(1/4-Superwort)-Re gister 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 sei nerseits ü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 ange schlossen. 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-in- Schaltung 24 liegt. Die Fan-in-Schaltung 19 liegt mit ihrem Ausgang über einen Kanal 37 am Puffer 38, der ein 128-Ope randen-(16-Feld)-Puffer ist, dessen Ausgänge über Kanäle 39 und 40 mit den Fan-in-Schaltungen 15 bzw. 24 verbunden sind.
In Fig. 2 geben die stark ausgezogenen Linien die mög
lichen Bahnen an, welche die die Operanden der Vektoren A und B dar
stellenden Daten nehmen können, während die dünneren Li
nien die Steuerleitungen angeben. Gemäß Fig. 2 ist zwi
schen den Registern 28 und 26 eine Freigabesteuerleitung
41, zwischen dem Register 26 und dem Puffer 17 eine Über
ladungssteuerleitung 42 und zwischen dem Puffer 17 und
einer Steuereinheit 44 eine Überladungssteuerleitung 43
vorgesehen. Auf ähnliche Weise ist eine Überladungssteuer
leitung 45 zwischen den Registern 33 und 31 vorgesehen,
während zwischen dem Register 31 und dem Puffer 22 eine
Überladungssteuerleitung 46 und zwischen dem Puffer 22
und der Steuereinheit 44 eine Überladungssteuerleitung
47 vorgesehen ist. Die Steuereinheit 44 liefert ein Signal über
eine Steuerleitung 48 zur Fan-in-Schaltung 19.
Die bisher beschriebene Vorrichtung vermag die aus dem
Speicher ausgelesenen Daten zu puffern bzw. zwischen zu speichern. Obgleich die ge
naue Arbeitsweise noch näher erläutert werden wird, sei
hier gesagt, daß speziell dann, wenn die Vektordaten des Vektors A
zuerst einzutreffen beginnen, die verschiedenen ersten
Operanden über den Kanal 14 zum Datenaustausch geleitet
werden. Da der Datenaustausch bisher den ersten Operanden (B₁)
vom Vektor B noch nicht empfangen hat, werden diese
bis zu den ersten beiden Operanden (A₁ und A₂) im Register
28 gespeichert. Wenn der Operand B₁ noch nicht eingetroffen
ist, ist der Datenaustausch nicht für die Aufnahme der
Operanden des Vektors A bereit. Infolgedessen wird ein Überladungs
signal über die Leitung 41 zum Register 26 geleitet, wodurch
letzteres angewiesen wird, keine weiteren Operanden zum Re
gister 28 zu leiten. Daher werden die Operanden bis zu den
nächsten beiden Operanden (A₃ und A₄) im Register 26 ge
speichert. Wenn der Operand B₁ noch nicht angekommen und
das Register 26 nunmehr voll belegt ist, wird ein Über
ladungssignal über die Steuerleitung 42 zum Puffer 17 ge
leitet. Sodann wird der Puffer 17 betätigt, und die bei
den nächsten Operanden (A₅ und A₆) werden zum Puffer 17
übertragen. Bei voller Belegung des Puffers 17 wird die
Steuereinheit 44 über die Leitung 43 betätigt, um die Fan-
in-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 die Aus
gabe dieser Operanden aus den Registern 28 und 33 zu. Wenn
ein Operand zur Datenaustauscheinrichtung überführt wor
den ist, wird der so ausgelesene Raum mit dem nächsten Ope
randen ausgefüllt. Gleichzeitig werden weitere Operanden des Vektors A
in den Puffer 38 eingegeben, während Operanden aus dem
Puffer 17 ausgelesen werden, und anschließend aus dem Puf
fer 38 ausgelesen. Dieser Vorgang dauert an, bis alle Ope
randen der Vektoren A und B aus dem Speicher ausgelesen worden sind.
Der in der Beschreibung benutzte Ausdruck "Hauptzyklus"
bezieht sich auf die einer einzigen Speicherbank zugeord
nete Zeitspanne, während welcher diese Bank eine Anforde
rung 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 zugeord
neten, gewünschten Operanden in fortlaufender Reihe fließen.
Zum Zweck der Beschreibung der Erfindung kann gesagt
werden, daß bis zu acht Speicherbänke während der einem
Hauptzyklus einer dieser Bänke äquivalenten Zeitspanne
sequentiell zugreifbar sind. Es ist somit ersichtlich, daß
die Speicherbänke, 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 der Vektoren A und B enthaltenden Speicher
bank ein Zugriff bezüglich der Operanden des Vektors A erfolgt, wer
den die Operanden des Vektors B bis zur Beendigung des ersten Hauptzyklus
nicht ausgelesen, sondern erst nachem die A-Operan
den A₁ bis A₆₄ aus den Bänken 1 bis 8 ausgelesen worden
sind. Folglich werden A-Operanden A₁ bis A₆₄ gepuffert.
Anschließend werden die nächsten A-Operanden A₆₅ usw. aus
der neunten Speicherbank ausgelesen und im Puffer 38 ge
puffert, während gleichzeitig die B-Operanden B₁ usw. aus
der ersten Speicherbank ausgelesen werden. Während die
ersten Operanden des Vektors B durch den Puffer für einen kontinuier
lichen Datenfluß zu den Datenaustausch- und Rechenabschnit
ten des Rechners verarbeitet werden, werden die ersten Ope
randen des Vektors A aus dem Puffer ausgelesen.
Obgleich sich die vorstehende Beschreibung auf den Fall be
zieht, in welchem die Operanden des Vektors A zuerst eintreffen, ist
derVorgang dann, wenn die Operanden des Vektors B zuerst eintreffen,
ersichtlicherweise ähnlich, nur mit dem Unterschied, daß
die Operanden des Vektors B im Puffer 38 gespeichert werden, bis die
Operanden des Vektors 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 Datenaus
tauscheinrichtung über den Kanal 51 vom Register 50 empfan
gen und über einen Kanal 52 durch eine Torschaltung 53 zu
einem Puffer 61 überführt. Wenn die Speicherbank, in wel
cher die Resultanten gespeichert werden sollen, frei ist,
liefert die Speicherzugriffsteuereinheit über einen Steuer
kanal 54 ein Freigabesignal, so daß die Daten über die
Fan-in-Schaltung 56 geleitet werden können, um über einen
Kanal 57 zu einem Eingaberegister 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 der Vektoren 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 Resul
tanten-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 Spei
cherbank für ihre Aufnahme frei ist.
Die Fig. 3A-3C sind graphische Darstellungen zur Veran
schaulichung 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 Speicher
bank (Superwort) dar; jeder Quadrant gibt acht Bänke des
Speichers an, die während eines einzigen Hauptzyklus zu
greifbar sind. Zum Zweck der Erläuterung sei angenommen,
daß ein Superwort (acht Operanden) während vier Unter
zyklen 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 an
deren Operanden oder eine andere Resultante herangezogen
werden. Aus diesem Grund ist es tatsächlich nur erforder
lich, 31 Unterzyklen einem einzigen Quadranten zuzuordnen,
während der andere Unterzyklus sowohl dü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 Un
terzyklen 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 des Vektors B möglich, bis das Auslesen der Operanden des Vektors A
aus der neunten Speicherbank beginnt und die ersten Operanden
A₁ bis A₆₄ vollständig aus den Bänken 1 bis 8 aus
gelesen worden sind. In dem in Fig. 3B veranschaulichten
Idealfall beginnt die eigentliche Lage der Operanden des Vektors B
an der Speicherbank 9 des Rechners. Mithin werden gemäß
Fig. 3B die A-Operanden A₁ bis A₈ aus der Bank 1 ausgele
sen, während
gleichzeitig die B-Operanden B₁ bis B₈ aus der Bank 9
ausgelesen werden. Nach Beendigung des ersten Hauptzyklus
sind die Operanden B₁ bis B₆₄ aus den Speicherbänken 9-16
ausgelesen worden, und die Leseregister sind dann für
das Auslesen der A-Operanden (z. B. A₆₅) aus der Bank 9
und der B-Operanden (z. B. B₆₅) aus der Speicherbank 17
frei.
Falls jedoch die Operanden der Vektoren 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äß Fig. 2 ständig ge
speichert und gepuffert wird. Wenn daher der Operand des Vektors A
zuerst eintrifft, werden zwei die Operanden A₁ und A₂ dar
stellende Operanden im Register 28 gespeichert, zwei die
Operanden A₃ und A₄ darstellende Operanden im Register 26
gespeichert und zwei Operanden A₅ und A₆ im Puffer 17 ge
speichert, während die restlichen Operanden A₇ bis A₆₄ im
Puffer 38 gespeichert werden. (Aus den vorstehenden Ausfüh
rungen 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. 30 ersichtlich ist, werden dann nach Abschluß des er
sten Hauptzyklus des Speichers und nach dem Puffern von bis
zu acht A-Superworten (Operanden A₁ bis A₆₄) durch die Lese
register die nächsten A-Operanden A₆₅ usw. aus der neun
ten Speicherbank ausgelesen, während an der ersten Speicher
bank ein zugriff zum Auslesen von B-Operanden erfolgt. Nach
Abschluß der nächsten vier Unterzyklen des Rechnerspeichers
sind dann neun Superworte (Operanden A₁ bis A₇₂) aus den
Speicherbänken 1 bis 9 und ein Superwort (Operanden B₁ bis
B₈) aus der Speicherbank 1 ausgelesen worden. Wenn der Ope
rand B₁ ausgelesen worden ist, können die Operanden A₁ und
B₁ zu den Rechenabschnitten übertragen wer
den. Nach der Übertragung des ersten A-Operanden zum Re
chenteil werden die folgenden Operanden im Puffer um eine
Stelle angehoben.
Anhand von Fig. 3D sei nunmehr angenommen, daß die A- und
B-Operandenvektoren an verschiedenen Speicherbänken be
ginnen, wobei der Vektor B dem Vektor A um zwei Bänke
nachläuft. Genauer gesagt, wenn die B-Operanden an der
Speicherbank 3 beginnen, während die A-Operanden an der
Speicherbank 1 beginnen, werden unter diesen Bedingungen
die ersten A-Operanden (A₁ bis A₁₆) aus den Speicherbänken
1 und 2 und die B-Operanden B₁ bis B₁₆ aus den Speicher
bänken 3 und 4 ausgelesen. Während der nächsten vier Un
terzyklen des Speichers wird ein Superwort (Operanden
B₁₇ bis B₂₄) ausgelesen, doch da die Leseregister A₁₇
nicht auslesen können, werden A₁₇ usw. vorübergehend aus
gelassen, und das B-Superwort (B₁₇ bis B₂₄) wird gepuffert.
Der Vorgang wird daraufhin auf die beschriebene Weise fort
gesetzt, bis B₁₇ und B₁₈ das Register 28, B₁₉ und B₂₀ das
Register 26 und B₂₁ und B₂₂, wie erwähnt, den Puffer 17
einnehmen. Die Operanden B₂₃ bis B₆₄, die während des mit
der dritten Speicherbank beginnenden ersten Hauptzyklus
ausgelesen werden, werden dann über die Fan-in-Schaltung
19 zum Puffer 38 übertragen. Die Linie B verschiebt sich
somit zur Position B′ 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 zuge
ordneten Leseregister weiterhin die B-Operanden aus der
elften Speicherbank aus, während gleichzeitig A-Operanden A₁₇
usw. aus der dritten Speicherbank ausgelesen werden. Die
Operanden A₁₇ bis A₂₄ werden mithin aus dem Speicher aus
gelesen und sequentiell über den Kanal 23 und das Register
33 zur Datenaustauscheinrichtung überführt, während gleich
zeitig die B-Operanden B₆₅ bis B₇₂ aus dem Speicher aus
gelesen 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
B₁₇ bereitstehende Datenaustauscheinrichtung verarbeitet
die Daten, so daß A₁₈ und B₁₈ als nächste für die Verar
beitung in die Reihe gelangen. Dieser Vorgang dauert wäh
rend der nächsten vier Unterzyklen an, bis die Operanden
aus dem Puffer 17 freigesetzt sind, worauf die Datenaus
lesung auf beschriebene Weise aus dem Puffer 38 erfolgt.
Während die Operanden der Vektoren 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 der Vektoren 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 Spei
cher über die Speicherzugriffsteuereinheit zwischenzu
speichern. Die Resultanten C werden somit von der Daten
austauscheinrichtung 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 darge
stellten Fall sind die A-Operanden A₁ bis A₁₄₄ aus den
Speicherbänken 1 bis 18 ausgelesen worden. Ebenso sind
B-Operanden B₁ bis B₈₀ 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 des Vektors A aus der 19. Bank
und die Operanden des Vektors B aus der 11. Bank ausgelesen werden.
Da weiterhin die Ankunftszeit der Resultanten C mit dem
dritten Quadranten des Diagramms von Fig. 4A zusammen
fällt, treten keine Behinderungen auf, wenn die Operan
den des Vektors A den Hauptzyklus durchlaufen. Infolgedessen wird
die Resultante C zum Puffer 61 übertragen, und ein von
der Speicherzugriffsteuereinheit abgegebenes Signal, wel
ches 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 aktivie
ren, so daß die Resultantendaten über den Kanal 59 und
die Speicherzugriffsteuereinheit in den Speicher eingege
ben werden.
Ein Konflikt würde jedoch auftreten, wenn die ersten C-Re
sultanten zu einem Zeitpunkt einträfen, an welchem aus
den ersten Speicherbänken, in denen die C-Resultanten ge
speichert werden sollen, immer noch Operanden ausgelesen
werden. Gemäß Fig. 4B sind beispielsweise A-Operanden A₁
bis A₈₈ aus den Speicherbänken 1 bis 11 und B-Operanden
B₁ bis B₃₂ aus den Speicherbänken 1 bis 3 ausgelesen wor
den. Gemäß Fig. 1 ist daher vor dem Abschluß des Haupt
zyklus und vor der Beendigung der Auslesung der B-Operan
den B₂₅ bis B₆₄ 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 ge
puffert werden. Folglich informiert ein von der Speicherzu
griffsteuereinheit ü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-Re
sultantendaten im Puffer 61 gepuffert werden. Der Puffer 61
vermag dabei bis zu sechzehn Datensuperworte (128 Resul
tanten) 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
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-Super
worte 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-Su
perworte aus den Speicherbänken 1 bis 3 ausgelesen worden
sind, werden nur fünf Superworte der Resultante C im Puf
fer 61 gespeichert.) Wenn die erste Speicherbank freige
macht worden ist, betätigt die Speicherzugriffsteuereinheit
über den Kanal 54 die Fan-in-Schaltung 56, um die Übertra
gung der Resultantendaten vom Puffer 61 zum Eingaberegister
58 und damit die kontinuierliche Überführung von Resultan
tendaten in den Speicher zu ermöglichen. Weitere C-Resul
tanten werden kontinuierlich im Puffer 61 zwischengespei
chert.
Die Fig. 4C und 4D veranschaulichen zusammen den "ungün
stigsten" Fall bei der Rückführung der Resultanten C zum
Speicher. Hierbei sind A-Operanden A₁ bis A₂₀₀ aus den er
sten 25 Speicherbänken und B-Operanden B₁ bis B₁₃₆ aus den
ersten 17 Speicherbänken ausgelesen worden. Infolgedessen
ist die erstes Speicherbank anscheinend zur Aufnahme von
C-Resultantendaten frei. Die Adressierschaltung des Lese
und Eingabeabschnitts des Speichers sind jedoch so ausge
legt, daß jeweils 32 Speicherbänke die gleichen Adressier
schaltungen 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
Leseregister das Auslesen der Operanden des Vektors A aus der 33.
Speicherbank beginnen, weil das Auslesen aus der 33. Spei
cherbank und das Einschreiben in die erste Speicherbank
nicht gleichzeitig erfolgen können. Aus diesem Grund lie
fert 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 kon
tinuierlich im Puffer 61 gespeichert. Wie erwähnt, liefert
der Zähler 62 eine Zählung der Zahl der im Puffer 61 ge
speicherten 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 schematisch durch die gestrichelte
Linie angedeutet ist, liefert der Zähler 62 über
den Kanal 64 ein Freigabesignal an die Steuereinheit 44,
um die A-Operanden weiter zwischenzuspeichern. Der Grund
hierfür besteht darin, daß dann, wenn die Eingabe der
C-Operanden an dem durch die gestrichelte Linie C′ in
Fig. 4C angedeuteten Punkt beginnen würde, ein Konflikt
mit dem Auslesen der B-Operanden aus dem dritten Quadran
ten 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 Lösung bieten sich zwei Möglichkeiten an. Einmal könn
ten die C-Resultanten bis zu drei voll Speicherzyklen
(24 Bänke) im Zustand gemäß Fig. 4B gepuffert werden. Diese
Möglichkeit ist jedoch nicht besonders günstig, weil da
bei Verzögerungen in der Ausnutzung der Resultanten auf
treten können und sich daraus auch eine Überlastung der Kapa
zität des Puffers 61 ergeben kann. Aus diesem Grund wird
eine zweite Möglichkeit als zweckmäßiger betrachtet, bei
welcher der Zähler 62, wen 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,
um die A-Operanden während weiterer acht Superworte (8
Speicherbände, 64 Operanden) zu puffern. Folglich werden
gemäß Fig. 4D die A-Operanden kontinuierlich aus dem
Speicher ausgelesen, während bis zu sechzehn volle Super
worte (128 Operanden) der A-Operanden im Puffer 38 ge
speichert werden. Zwischenzeitlich wird das Auslesen der
B-Operanden vorübergehend während eines Hauptzyklus des
Speichers (64 Operanden) unterbrochen, und die C-Resultan
ten werden mit bis zu weiteren sieben Resultanten-Super
worten (56 Resultanten) im Puffer 61 gespeichert, bis der
Zustand gemäß Fig. 4D erreicht ist. Die A-Operanden wer
den somit an der Linie A ausgelesen, die B-Operanden wer
den an der Linie B′ 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 A-Operanden werden gleichfalls mit bis zu sech
zehn vollen Speicherbänken gepuffert. In diesem Fall sind
mithin die A-Operanden A₁ bis A₃₂₀ aus den ersten vier
zig Speicherbänken und die B-Operanden B₁ bis B₁₉₆ aus
den ersten 24 Speicherbänken ausgelesen worden. Während
der nächsten vier Unterzyklen des Rechners werden folg
lich die A-Operanden A₃₂₁ bis A₃₂₈ aus der 41. Speicher
bank und die B-Operanden B₁₉₇ bis B₂₀₄ aus der 25. Speicher
bank ausgelesen, und die C-Resultanten C₁ bis C₈ wer
den konfliktfrei in die erste Speicherbank eingelesen bzw.
eingegeben.
Ersichtlicherweise kann der größte Teil der Rechenverar
beitung der Operanden durch die Rechenabschnitte des Rech
ners 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 be
ginnend mit der ersten Speicherbank, tritt wahrscheinlich
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/Ausgang-Kanälen
ist konfliktfrei unter Ausnutzung von zweckmäßigen Puf
ferverfahren 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).
Zwischen den Speicher- und Rechenabschnitten eines Rech
ners angeordnete Puffereinrichtungen dienen also zur
selektiven Zwischenspeicherung von Vektoren, um eine
optimale Zeitsteuerung des Rechners zu gewährleisten.
Die zuerst eintreffenden von zahlreichen Operandenvek
toren werden in den Puffereinrichtungen gespeichert,
bis der später ankommende Vektor eintrifft; zu diesem
Zeitpunkt werden dann beide Vektoren zum Rechenabschnitt
übertragen. Die Puffereinrichtungen nehmen zum Kompensie
ren der Zeitsteuerung des Rechners auch Operanden auf.
Bei der Rückführung der Resultanten wird der Resultanten
vektor selektiv zwischengespeichert, um seine einwand
freie Speicherung zu gewährleisten, ohne das Auslesen
der Operandenvektoren zu beeinträchtigen. Zur Optimie
rung der Zeitsteuerung und zur weitgehenden Verringe
rung des Ausrüstungsaufwands und der Verzögerungen ist
außerdem eine Steuereinrichtung vorgesehen, welche in
Abhängigkeit von der Ankunftszeit des Resultantenvektors
selektiv zusätzliche Operandenvektoren zwischenspeichert.
Claims (4)
1. Vorrichtung zur Übertragung von Daten in einem Da
tenstrom von Operanden von Vektoren zwischen dem
Speicherabschnitt und dem Rechenabschnitt eines
elektronischen Rechners, wobei der Speicherabschnitt
aus mehreren sequentiell zugreifbaren Speicherbän
ken besteht, in denen Operanden von Vektoren gespei
chert werden, mit:
- - einem ersten und einem zweiten Leseregister (10, 12) zum Auslesen von ersten und zweiten Operanden erster und zweiter Vektoren aus auf einanderfolgenden Speicherbänken des Speicher abschnitts (Fig. 3A bis 3D),
- - einer an das erste Leseregister (10) angeschlos senen ersten Ausgabeeinrichtung (15, 26, 28) zum Übertragen aufeinanderfolgender erster Operanden des ersten Vektors zum Rechenab schnitt,
- - einer an das zweite Leseregister (12) ange schlossenen zweiten Ausgabeeinrichtung (24, 31, 33) zum Übertragen aufeinanderfolgender zweiter Operanden des zweiten Vektors zum Re chenabschnitt,
- - einer zwischen dem ersten Leseregister (10) und der ersten Ausgabeeinrichtung (15, 26, 28) liegenden ersten Puffereinrichtung (17) und
- - einer zwischen dem zweiten Leseregister (12) und der zweiten Ausgabeeinrichtung (24, 31, 33) liegenden zweiten Puffereinrichtung (22),
dadurch gekennzeichnet,
- daß eine Steuereinrichtung (44) über eine Fan- in-Schaltung (19) feststellt, welcher der Ope randen des ersten oder zweiten Vektors an den Leseregistern (10, 12) und ersten und zweiten Puffereinrichtungen (17, 22) zuerst einzutreffen beginnt, und bei festgestelltem Überlauf der ersten oder zweiten Puffereinrichtung (17, 22) eine dritte Puffereinrichtung (38) betätigt, in die die Operanden des zuerst eintreffenden Vektors bis zur Beendigung des Anforderungszyklus an eine Speicherbank des Speicherabschnitts (Fig. 3A bis 3D) übertragen werden, und daß beim Einlesen der Operanden des danach ein treffenden Vektors die Operanden des ersten und zweiten Vektors an die jeweilige Ausgabe einrichtung (25, 26, 28; 24, 31, 33) überführt werden.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeich
net, daß der Rechenabschnitt einen dritten Vektor
mit einer Vielzahl von aufeinanderfolgenden, im Spei
cherabschnitt zu speichernden Resultanten bildet,
daß der Speicherabschnitt gleichzeitig Resultanten
in eine andere Speicherbank als die, aus der ein
Zugriff zu den Operanden erfolgt, einzugeben ver
mag, daß Aufnahmeeinrichtungen zur Aufnahme aufein
anderfolgender Resultanten vom Rechenabschnitt, eine
vierte Puffereinrichtung (61) zur Speicherung von
Resultanten und eine durch den Speicherabschnitt
betätigbare Eingabeeinrichtung (50, 53) zur Einga
be der fortlaufenden Resultanten von der vierten
Puffereinrichtung (61) in aufeinanderfolgend bezeich
nete Speicherbänke vorgesehen sind, und daß der Spei
cherabschnitt die Eingabeeinrichtung (50, 53) betä
tigt, wenn auf die für die Speicherung der Resul
tanten bestimmte Speicherbank nicht gleichzeitig
vom ersten oder zweiten Leseregister (10, 12) ein
Zugriff erfolgt.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß eine Zählereinrichtung (62) eine Zählung der
Anzahl von in der vierten Puffereinrichtung (61)
gespeicherten Resultanten liefert, und daß die Steu
ereinrichtung (44) in Abhängigkeit von einer vor
bestimmten Zählung der Zählereinrichtung (62, wel
che angibt, daß die vierte Puffereinrichtung (61)
eine vorbestimmte Zahl von Resultanten enthält, zur
Betätigung der dritten Puffereinrichtung (38) zwecks
Speicherung weiterer Operanden betätigbar ist.
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 DE2505518A1 (de) | 1975-09-18 |
DE2505518C2 true 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19545179A1 (de) * | 1995-02-06 | 1996-08-08 | Hewlett Packard Co | Vektorspeicheroperationen |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5933554A (ja) * | 1982-08-18 | 1984-02-23 | Nec Corp | オペランド供給装置 |
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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
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
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19545179A1 (de) * | 1995-02-06 | 1996-08-08 | Hewlett Packard Co | Vektorspeicheroperationen |
Also Published As
Publication number | Publication date |
---|---|
AU7854475A (en) | 1976-08-26 |
NL7502309A (nl) | 1975-09-16 |
NL181055B (nl) | 1987-01-02 |
GB1479404A (en) | 1977-07-13 |
DE2505518A1 (de) | 1975-09-18 |
FR2264323B1 (de) | 1980-05-30 |
FR2264323A1 (de) | 1975-10-10 |
NL181055C (nl) | 1987-06-01 |
JPS599944B2 (ja) | 1984-03-06 |
JPS50123242A (de) | 1975-09-27 |
NL8602882A (nl) | 1987-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1966633C3 (de) | Datenverarbeitungsanlage mit überlappter Arbeitsweise bei Verwendung eines Haupt- und Pufferspeichers | |
DE2415900C3 (de) | Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen | |
DE2455803C2 (de) | Mehrprozessor-Datenverarbeitungsanlage | |
DE1803767A1 (de) | Elektronisches Datenverarbeitungssystem | |
DE2617408B2 (de) | Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie | |
DE2215066A1 (de) | Informationsspeicher mit Schieberegister | |
DE2252489A1 (de) | Speichersystem | |
DE1286789B (de) | Einrichtung an einem elektronischen Ziffernrechner zum schnellen Datenaustausch zwischen der Verarbeitungseinheit und dem zentralen Speicher | |
DE2856680A1 (de) | Befehlspuffer fuer ein datenverarbeitungssystem | |
DE3013064C2 (de) | Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher | |
DE3107568A1 (de) | Datenverarbeitungseinrichtung | |
DE3343348A1 (de) | Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher | |
DE1237812B (de) | Datenverarbeitungsgeraet mit mehreren Speichern | |
DE2505518C2 (de) | ||
DE2558417A1 (de) | Datenverarbeitungssystem | |
DE2355814C2 (de) | Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung | |
DE2610428A1 (de) | Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher | |
DE1808678B2 (de) | Verfahren und schaltungsanordnung fuer elektronische daten waehlvermittlungsanlagen mit einem zentralen speicher | |
DE2404887A1 (de) | Kanal fuer den informationsaustausch zwischen einem rechner und schnellen peripheren einheiten | |
DE2854286A1 (de) | Schaltungsanordnung mit einem befehlspuffer fuer eine cachespeichereinheit eines datenverarbeitungssystems | |
DE2000608A1 (de) | Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage | |
DE1449816C3 (de) | Schaltungsanordnung zur Steuerung des Zugriffs zu einem Magnettrommelspeicher | |
DE3016269C2 (de) | ||
DE2238833A1 (de) | Datenverarbeitungsanordnung | |
DE3835125A1 (de) | 8-bit-steuereinrichtung fuer direkten zugriff |
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 |