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
Application number
DE19752505518
Other languages
English (en)
Other versions
DE2505518A1 (de
Inventor
Maurice L. Hutson
Kurt Erben
Lewis St. Paul Minn. Us Bethany
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Control Data Corp
Original Assignee
Control Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US450632A external-priority patent/US3898626A/en
Priority claimed from US470896A external-priority patent/US3919534A/en
Application filed by Control Data Corp filed Critical Control Data Corp
Publication of DE2505518A1 publication Critical patent/DE2505518A1/de
Application granted granted Critical
Publication of DE2505518C2 publication Critical patent/DE2505518C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

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.
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.
DE19752505518 1974-03-13 1975-02-10 Vorrichtung zur uebertragung von daten zwischen den speicher- und rechenabschnitten eines elektronischen rechners Granted DE2505518A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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