DE1901343A1 - Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten - Google Patents

Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten

Info

Publication number
DE1901343A1
DE1901343A1 DE19691901343 DE1901343A DE1901343A1 DE 1901343 A1 DE1901343 A1 DE 1901343A1 DE 19691901343 DE19691901343 DE 19691901343 DE 1901343 A DE1901343 A DE 1901343A DE 1901343 A1 DE1901343 A1 DE 1901343A1
Authority
DE
Germany
Prior art keywords
data
units
shift
registers
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19691901343
Other languages
English (en)
Other versions
DE1901343C3 (de
DE1901343B2 (de
Inventor
Wilhelm Anacker
Wang Chu P
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1901343A1 publication Critical patent/DE1901343A1/de
Publication of DE1901343B2 publication Critical patent/DE1901343B2/de
Application granted granted Critical
Publication of DE1901343C3 publication Critical patent/DE1901343C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

Böblingen, 8. Januar I969 km-sk
Anmelderin: International Business Machines
Corporation, Armonk, N. Y. 1Ό5Ο4-
Amtliches Aktenzeichen: Neuanmeldung ■
Aktenz.d. Anmelder in: YO 967 059
Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossene! Speichereinheiten
Die Erfindung betrifft eine Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten sowie mit Koppelregistern, über die die Verarbeitungseinheiten Datenwörter von den zugeordneten Speichereinheiten empfangen, und worin aus je r Bits, bestehende Datenwörter in mehrere Speichereinheiten verteilt gespeichert sind und worin Mittel zur Umsetzung dieser Datenwörter in eine bestimmte Speichereinheit, von der aus die Verarbeitung in der zugeordneten Verarbeitungseinheit erfolgt, vorgesehen sind.
Ein Problem moderner Datenverarbeitung besteht darin, die Verarbeitungszeit für große Datenmengen zu reduzieren. Wenn z.B. eine Gruppe von Zahlen mit einer anderen Gruppe von Zahlen zu multiplizieren ist, erfordert jede Multi-
967 059
909833/1373
BAD OftKSINAU
plikationsoperation zwiscihen zwei Zahlen der Gruppen eine bestimmte Zeit. Wenn daher die Gruppen aus sehr vielen Zahlenwerten bestehen, ist ein großer Zeitaufwand not-· wendig, um die Multiplikation der Gruppen auszuführen. Derartige· Schwierigkeiten ergeben sich besonders bei Matrizenrechnungen. Die einzelnen Werte einer Matrix, von denen jeder als Datenwort aufgefaßt werdenkann, sind zeilenweise in einem Speicher mit wahlfreiem Zugriff gespeichert. Der Zugriff zu den Wörterm.einer derartigen Zeile ist insofern beschränkt, als zu einer bestimmten Zeit jeweils nur ein Wort der Zeile dem Speicher entnommen werden kann. Ein.gleichzeitiger Zugriff zu gleich geordneten, d.h. einer Kolonne der Matrix angehörenden Wörtern verschiedener Zeilen ist nur dann möglich, wenn jede Zeile in einer separaten Speichereinheit gespeichert ist. Zur Bildung des Produktes von zwei. Matrizen, von denen jede die Dimension R aufweist, ist eine Summe von fK-Multiplikationen notwendig, die in aufeinanderfolgenden Schritten ausgeführt werden müssen. Der hierfür benötigte hohe Zeitaufwand lann verringert v/erden, wenn es gelingt, eine Anzahl dieser Multiplikationen unter Verwendung mehrerer Verarbeitungseinheiten parallel auszuführen. Für eine derartige parallele Multiplikation ist es jedoch wesentlich, daß für die Matrixelemente sowohl zeilenweise als auch spaltenweise ein paralleler Zugriff besteht. Es ist daher notwendig, daß die ursprünglich zeilenweise gespeicherten Wörter einer der beiden Matrizen in Spaltenform umgesetzt werden, und zwar in einer solchen Weise, daß die
YO 967 059 »09..833/1373
BAD ORIGINAL ^5
Wörter der Zelle dieser Matrix und die Datenwörter einer zugeordneten Spalte der anderen Matrix der gleichen Verarbeitungseinheit zur Verfügung stehen, wobei ein ; .' :.:.„?.or Zugriff zu einem Spaltenwort und einem umgesetzten Zeilenwort für alle Verarbeitungseinheiten parallel möglich sein muß.
Zur Ausführung derartiger Umsetzungsoperationen sind verschiedene Anordnungen bekannt geworden (USA-Patent J 258 und Z> 217 317). Bei diesen Anordnungen geschieht die Umsetzung in der jeweiligen Speichereinheit durch Verwendung von Magnetkernspeiohermatrizen mit einer besonders gefädelten Leitungsführung für die Treib- und Leseleitungen· Die Herstellung derartiger Spetoher-Umsetzer-Matrizen ist wegen der umfangreichen Fädelarbeit relativ aufwendig· Nachteilig ist auch, daß in einer Datenverarbeitungsanlage« die universell anwendbar sein soll, wegen der Ausführungsmöglichkeit von Matrizenrechenoperationen anstelle oder neben den herköosnlichen Speichereinheiten cle Speicher mit Umsetzerverdrahtung vorgesehen werden müssen·
Natürlich kann die Datenumsetzung auch durch ein entsprechendes Umsetzerprogramm vorgenommen werden· Ein solches Programm erfordert aber eine sehr hohe Anzahl Spei cher-Datenentnahme-und WiedereinschcÄjbzyklen, wodurch der in der Parallelverarbeitung enthaltene Zeitvorteilteil#»i^e wieder verloren geht·
ve 907 059 809833/1373
BAO
Die Aufgabe vorliegender Erfindung besteht darin, eine für Parallel-bzw. Mehrfachverarbeitung geeignete Datenverarbeitungsanlage anzugeben, bei der die oben erläuterten Datenumsetzungen ohne Verwendung von SpezialSpeichern und mit einem relativ geringen Einrichtungs-und Zeitaufwand ausgeführt werden können. Erfindungsgemäß geschieht dies dadurch, daß zwischen den Speichereinheiten und den VerarbeitungseinheiteriVSchieberegister vorgesehen sind, von denen jedes den Stufen gleicher Stellenordnung in den Koppelregistern zugeordnet ist, und daß eine Verschiebe- · Steuereinheit vorgesehen ist, die nach Übernahme mehrerer Wörter von den Speicher-Oder den Verarbeitungseinheiten in die Schieberegister diese parallel zur Ausführung einer vorbestimmten Anzahl Stellenverschiebungen steuert.
Durch aufeinanderfolgende Entnahme-Verschiebe- und Wiedereinschreibzyklen können so die -verteilt gespeicherten Datenwörter um so viele Speichereinheiten versetzt werden, bis die gewünschte kolonnenförmige Datenwortformation erreicht ist. Da die Entnahmen, Verschiebeoperationen und das Wiedereinschreiben für alle Speichereinheiten parallel erfolgt, ist nur ein geringer Zeitaufwand zur Ausführung der Umsetzungsoperation notwendig«
Verschiedene vorteilhafte Ausgestaltungen der Erfindung sind aus den Ansprüchen zu ersehen. Nachfolgend ist ein Ausführungsbeispiel der Erfindung anhand einer Zeichnung dargestellt. Die Zeichnung zeigt ein vereinfachtes Block-
YO 967 059 Q 0 9 8 3 3 / 1 3 7 3
BAD Ö
schaltbild einer entsprechend den Prinzipien der Erfindung ausgebildeten Datenverarbeitungsanlage.
Die in der Figur dargestellte Einrichtung umfaßt drei Speicher'einheiten Ml, M2 und MJ, sowie drei Verarbeitungseinheiten P1, P2 und PJ. Die Prinzipien der Erfindung sind jedoch nicht auf diese Zahl von Speicher- und ■Verarbeitungseinheiten beschränkt. Vielmehr ergibt sich diese Zahl daraus, daß zum Zwecke der einfachen Erläuterung eine JxJ-Matrix gewählt wurde, um die Umsetzung einer Reihe von Worten, die in drei Speichereinheiten gespeichert sind, in eine Kolonne, die in einer einzelnen Speichereinheit gespeichert ist, zu demonstrieren. Jedes Wort in den Speieherheiten ist 8 Bits lang, so daß 8 Schieberegister zur Ausführung der Umsetzungsoperation benötigt werden. Jede Speichereinheit M1, M2 und MJ ist mit einem Datenregister D Rl, DR2 und DRJ verbunden. Die erste signifikante Bitstelle des Registers DR1 ist mit einer Stufe M1 eines ersten Schieberegisters SR1 verbunden. Die erste signifikante Bitstelle des Registers DR2 ist mit der Stufe M2 des Schieberegisters SR1 verbunden, und die erste signifikante Bitstelle des Registers DRJ ist mit der Stufe MJ des Schieberegisters SR1 verbunden. In ähnlicher Weise sind alle entsprechenden zweiten signifikanten Bitstellen der Datenregister DR1, DR2 und DRJ mit den entsprechenden Stufen M1, M2 und MJ eines Schieberegisters SR2 verbunden, usw., bis zu einem achten Schieberegister SR8, deseen Stufen jeweils mit den achten signifikanten Bitstellen der Datenregister DR1, DR2 und DRJ YO 967 059 9 0 9 8 3 3/1373
verbunden sind.
Die drei Verarbeitungseinheiten P1, P2 und PJ sind konventionelle Datenverarbeitungseinheiten, die zur Ausführung von Multiplikationen, Divisionen, Additionen und Subtraktionen sowie verschiedener anderer Operationen in der Lage sind. Jede der Verarbeitungseinheiten P1,-P2 und Pj) besitzt ein.Datenregister PDR1, PDR2 und PDRJ, und jedes dieser Datenregister ist ebenso wie die Datenregister DR1, DR2 uswTVOruppen von 8 Datenbits zu speiehern. Jedes der Datenregister PDR1, PDR2 und PDRJ ist mit den Schieberegistern SRI - SR8 in der. gleichen Weise verbunden, wie es zuvor für die Datenregister DR1, DR2, DRJ der Speichereinheiten M1, M2 und M3 beschrieben worden ist. Jede der Verarbeitungseinheiten P1 - PJ besitzt zwei Indexregister X und Y, wobei die Indexregister X.., Y^ die Indexregister der Verarbeitungseinheit P1, die Indexregister X2 und Y2 die Indexregister der Verarbeitungseinheit P2 und die Indexregister X,, und Y^ die Indexregister der Verarbeitungseinheit PJ sind.Eine Schiebesteuereinheit SGU liefert gleichzeitig Schiebeimpulse zu allen Schieberegistern SR als Reaktion auf ein Steuersignal auf der Schiebd.eitung SL. Mit der Schiebesteuereinheit SCU ist ein Zähler m verbunden, der zur SchiebeSteuereinheit SCU Signale liefert, die bestimmen, um wieviele Positionen der Inhalt eines jeden der Schieberegister SR1 -. SR8 nach links verschöben werden soll.
909033/13 73
YO 967 059
BAD
Jede der Speichereinheiten M1, M2 und M5 ist mit Datenworten geladen, deren Adressen als r+O, r+1, ... r+8, p+Ö, p+1, ... p+1 bezeichnet sind, worin" r und ρ eine willkürlich gewählte Basis-oder Startadresse für die Datenworte in den Speichereinheiten sind.
Bevor nun erläutert wird, wie die Schieberegister SR zur Ausführung einer Matrixumsetzung verwendet werden, soll zur Erleichterung des Verständnisses der Erfindung die Art und Weise erläutert werden, in welcher das Produkt einer Matrix A und einer Matrix B gebildet wird. Entsprechend der Regel für die Matrizenmultipljlation gilt:
k=1
Es soll angenommen werden, daß die Matrix A aus 5x5 Worten und die Matrix B ebenfalls aus ^x.J> Worten besteht. Die Matrix C stellt das Resultat der Multiplikation dar. Der Index "i" ist den Zeilen der Worte und der Index
j" ist den Spalten zugeordnet.
Matrix A 3=1 3=2
Matrix B
Matrix C
i=1 a21 a12 a15 X b11 b12 b15 211 C12. C13
i=2 ä51 a22 a25 >21 b22 b25 I
221 C22
G25
1=5 a52 a55 >51 b52 b55 251 C52
Wenn die Matrix C gebildet wird, ergeben sich neun Produkte
909833/1373
5 1 1 }
= a.
+ a12b22r +
C21 - a21b11 + a22b21
C22 = a2ib12 + a22b22
Wie aus der Figur ersichtlich 1st, sind die Worte b11, b12 ... b33 der Matrix B in den drei Spdchereinheiten M1# M2 und M3 auf den .Adressen r+0, r+1, r+2 ... r+8 gespeichert* worin r eine willkürlich gewählte Basisadresse ist. Die Datenworte der Matrix A sind in den Speichereinheiten M1# M2 und M3 auf den Adressen p+0, p+1, p+2 ... p+8 gespeichert, worin ρ eine willkürlich gewählte Basisadresse ist. Da ein Produkt, wie beispielsweise C11, gleich a^b.^ + a-jgbpi + a13b31 ^st* is^ es zur Ausnutzung der Möglichkeiten der Vielfachverarbeitung erwünscht, daß die erste Verarbeitungseinheit P1 alle ihre Informationen oder Daten von .,der ersten Speichereinheit M1, die zweite Verarbeitungseinheit P2 alle ihre Daten von der zweiten Speichereinheit M2 und in gleicher Weise die dritte Verarbeitungseinheit alle ihre Daten von der Speicherehheit VO empfängt, so daß.alle Verarbeitungseinheiten P1 t P2 und
YO 967 059
809833/1373
BAO
P3 die. Daten gleichzeitig verarbeiten können, um ein Produkt, wie beispielsweise c-j-j *ci2·* 0T^ "" CT5 zu bilden· Es ist ersichtlich, daß ohne Umsetzung der Matrix A das Produkt C11 nicht durch Vielfachverarbeitung gebildet werden kann, da die Worte in den Positionen p+0, p+1, p+8 auf die Speichereinheiten nicht so verteilt sind, daß die Worte a.... und b^ in der ersten Speichereinheit, a12 ■und bg-1 in der zweiten Spei eher einheit sowie &*-, , b^ in der dritten Speichereinheit gespeichert sind. Die in der Matrix A enthaltene und in den verschiedenen Speichereinheiten gespeicherte Information muß daher umgesetzt werden, um die oben genannte Vielfachverarbeitung zu gestatten. Zur Ausführung der Umsetzung von Matrix A wird der folgende Algorithmus verwendet:
1. Zähler m wird auf O gestellt (m=O)
2. Ein nicht dargestellter Programmzähler k wird ■■-',. c-
. . auf η gestellt (k = ή)
3. Die Indexregister Y werden wie folgt eingestellt: Y1 = 0, Y2 = (n+1), Y5 = 2 (n+1)
h. Die Indexregister X werden wie folgt eingestellt:
X1 = o, X2 = (n+1), X^ = 2(n+1)
2 2 p
5. Lesen von <p+x.j> mod η ; <p+x27 mod η ;^g+x^mod η
6. Verschieben um m-Stellen nach links
7. Schreiben von ^q+y^ mod η ; <£l+y2> mod η ;
8., Inkrementieren von m um 1
9. Inkrementieren von Y um n.
10. Dekrementleren von X um η
11. Dekrementieren von k um 1
12. Zurückkehren zu Schritt 5, wenn k > 0 und wiederholen.
YO 967 059 9 0 9 8 3 3/1373
In diesem Algorithmus ist k ein Programmzählerj der in den Verarbeitungseinheiten P1> P2, PJ enthalten, in der Figur jedoch nicht dargestellt ist. Es handelt sich dabei um einen Zähler, der in konventioneller Weise die Programmschritte zählt und eine Anzeige über den Stand der Ver-
arbeitung liefert. Der Ausdruck mod η stellt eine Abkürzung für "modulo 9" dar, inodem der Rang: η der Matrix im gewählten Beispiel 5 ist. In einer Folge der Ziffern 0,1,2,3,4,5,6,7,8, wie' sie in dem Ausdruck "modulo 9" enthalten ist, sind die Ziffern -9,9,18 äquivalent zu 0; -8,10,19 äquivalent zu 1; -7,11,20 äquivalent zu 2, ... usw,
Um eine Matrixumsetzung zu bewirken, wird der 7JsCs\\qv m auf 0 gestellt, während der nicht dargestellte Zähler k auf den Wert J eingestellt wird, da der Rang η der Matrix J5 ist. Des weiteren werden-die Indexregister Y.. und X. der Verarbeitungseinheit P1 auf 0 gestellt, die Indexregister Yo und X2 der Verarbeitungseinheit P2 auf (n+1), d.h. 4, und die Indexregister Y-, und X^ der Verarbeitungseinheit PJ jeweils auf den Wert 2 (n+1), d.h. 8, eingestellt.
Der Schritt 5 des Algorithmus besteht in einem gleichzeitigen Lesen der Worte, die auf den Adressen <p+X.j> mod 9, <p+X2 > mod 9 und <p+X- > mod 9 gespeichert sind, und in einer Eingabe dieser .;orte in die entsprechenden Schieberegister SR1, SR2 ... SR8. Da X1 = 0. X0 = 4 und X-, = 8, lauten die betreffenden Adressen: p+0, p'+4 und p+8. Die auf diesen Adressen gespeicherten
YO 967 059 909833/1373
. bad ii
Daten sind die Werte a^* ^22 und ag/, der Matrix A. Der Schritt 6 verlangt, daß der Inhalt der Schieberegister SR um m-Stellen nach links verschoben wird. Da Jedoch m=0, findet keine Verschiebung statt.
Im Schritt 7 wird der Inhalt der Schieberegister SR über die Datenregister DR1, DR2 und DRJ zurück in die Speidtereinheiten geschrieben, und zwar auf die Adressen
ο , 2 ' 2
<q+Y>mod n 1^ ^q+Y > mod n
ο , 2 2
<q+Y1>mod η ,<q+Y2>mod n 1^ ^q+Y3 /> mod n · Da Y1 = °> Y2 = k und Y, = 8, haben die Werte a^, a22 und ag, die neuen Adressen q+0, q+4 und q+8, worin q eine von ρ abweichende willkürlich gewählte Basisädresse in den Speicher· einheiten M1, M2 und VO ist.
In den folgenden Schritten 8 bis 12 des Algorithmus wird m auf 1 gesetzt, Y wird um ρ erhöht, X um 3 verringert und k wird um 1 verringert, so daß sein neuer Inhalt 2 ist. Da k> O ist, werden die Spe ichereinhe It en M1, M2 und MJ gelesen entsprechend dem Schritt 5 des Algorithmus« In Schritt 5 werden daher die neu eingestellten Zustände <j>-j5>mod 9* <p+1 >mod 9 und<p+5>mod 9gelesen· Da <p-3>mod 9Ξ=<ρ+6>, wird der Inhalt der Adressen <p+6 ^,φ+Ι^ und ^p+5^> in die Schieberegister SR eingegeben. Es handelt sieh dabei um die Worte a,vj, a^2 und a^. Da m=1,bewirkt die SchiebeSteuereinheit SCU eine Verschiebung des Inhaltes aller Schieberegister um eine Stelle nach links. Die neuen Adressen der verschobenen Worte sind <.q+3>mod 9, <q+7>mod 9 und <.q+11 > mod 9, wobei die letztere ^ <q+2> ist. Die neuen Adressen für die Worte YO O67 059 90-9*33/1373
BAD
sind daher
* <Q+7> und<q+2^ .
Nach dem zweiten Schreibschritt ergeben sich folgende Zustände: m=2, Y wurde um 3 erhöht und enthält nun den Wert +6, X wurde um 3 verringert und enthält nun den Wert -6 und k ά 1.Da k ä5rO£ist, erfolgt eine Rückkehr zu. Sohritt 5 des Algorithmus, wo die auf den Adressen <p-6 >mod 9, <p-2>mod 9 und <p+2^jnod 9 gespeicherten Worte in die Schieberegister SR1, SRö .... SR8 eingelesen werden. Da <p-6>mod 9 ΞΞ <p+3> und <p-2>mod 9 Ξ <Ρ+73' werden entsprechend den Adressen p+3, p+^ und p+2 die Worte ά^λ* a32 "1^ ai3 gelesen und in die Schieberegister gebracht sowie um zwei Stellen nach links verschoben.' In Übereinstimmung mit Schritt 7 haben die um zwei Stellen verschobenen Worte die folgenden neuen Adressen:
+6> mod 9, •Cq.j+iO^ mod 9 2 ^q+1>und ^q1 +H^ mod
rz ^1λ+5 ? · Die neuen Adressen fünra1-,, api und &^o sind dementsprechend q+6, q+1 und q+5· Da der Schritt des Algorithmus für k den Wert 0 ergibt, ist die Umsetzung der Matrix A beendet. Durch einen Vergleich der p-Adressen mit den q-Adressen ist ersichtlich, daß jede Wortzeile, deren Werte zuvor über die drei Speichereinheiten M1, M2 und M3 verteilt gespeichert waren, nun in eine Kolonne umgesetzt worden ist, die in einer einzelnen Speichereinheit enthalten ist.
Die Umsetzung einer Matrix des Ranges 3 erfolgt somit in der aus der nachstehenden Darstellung ersichtlichen
YO 967 059
Ö09833/1373
BAD ORIGINAL
--■ p+0 - 13 - p+8 1901-343 m=O
Weise: i I
Lesen von q+O p+4 q+8
Verschieben 1
Schreiben
nach
q+4
Lesen von p+6 i
Stellenver-Schiebung(1)
Schreiben nach
m=1
Lesen von p+3
Stellenver- /-— Schiebung(2)
Schreiben
nach q+6
m=2
Zur Ausführung der paralleta. Multiplikation mit den nach beendeter Umsetzung nun in der neuen Ordnung gespeicherten Worten kann ein herkömmlicher Algorithmus Verwendung finden. Z.B. kann die parallele Multiplikation in folgenden Schritten durch paralleles Multiplizieren der in einer jeden der Speichere inhe it en M1, M2 und MJ gespeicherten Vierte mit anschließender Akkumulation der Resultate ausgeführt werden:
Schritt I r+0 r+4 r+8 worin m=0; und
3 und 6
χ X X X=Oi
Y=O,
q+0 q+4 q+8
r+3 r+7 r+2 1373
X X X
q+3 q+7
909
q+2
833/
γο 967 059
19013Λ3
r+6
q+6-
Ii
s+0
r+1
χ
q+1
I)
s+4
r+5
q+5
s+8,
Da das Matrizenprodukt
= a
+ a-
12
in der
ist ersichtlich, daß alle Werte des Produktes c
Speichereinheit M1 gespeichert sind und auch das Resultat in der Spächereinheit M1 gespeichert wird, z.B. auf der Adresse s+0, wobei s eine willkürlich gewählte Basisadresse ist. Ebenso enthält die Speichereinheit M2 alle Werte für das Matrizenprodukt C22 , und das Produkt selbst ist in der gleichen Speichereinheit auf .der Adresse s+4 gespeichert. In der gleichen Weise sind alle Werte für das Produkt c„ in der Speichereinheit M3 enthalten, und das Produkt selbst ist auf der Adresse s+8 gespeichert· Um die Produkte C21, c,2 und C1^ zu bilden, muß der Inhalt der umgesetzten Matrix Af um eine Position nach links
verschoben werden, so daß die Spalten der y/örter gleichzeitig für die Verarbeitungseinheiten P1, P2 und P^ verfügbar sind. Die erforderlichen Verschiebungen sind aus der nachstehenden darstellung ersichtlich:
r+3 r+7 r+2 worin
χ χ χ m = 1
q+4 q+8 q+0 X = 5
Y = 0, 5, 6
q+4 q+8
967 059
9098 3 3/1373
. - 15 - χ 1901343
X χ r+5
r+6 r+1 X
χ χ q>5
q+7 q+2
q+5
q+7
r+O r+4 r+8
X X X
q+1 q+5 q+6
q+6 q+1 q+5
I! i! U
s+5 s+7 S+2
Durch diese einzelnen W* se hiebungen der umgesetzten Matrix A1 werden die Produkte* C21, o«2 und C1, gebildet, indem alle Werte für Cp1 sich in der Speichereinheit M1, alle Werte für C52 der Speichereinheit M2 und alle Werte für C15 in der Speichereinheit M3 enthalten sind.
Wenn m=2, X=6 und Y=O, 5 und 6, werden durch Verschiebung der umgesetzten Matrix A1 um zwei Speichereinheiten nach links alle zur Bildung des Produktes c,- benötigten Werte in die Speichereinheit M1, alle zur Bildung des Produktes C12 benötigten werte in die Speichereinheit M2 und alle zur Bildung des Produktes C2, benötigten Werte in die
967 059
909833/1373 BAD ORIGINAL
Speichereinheit 1ΥΓ3 gebracht, so daß die Verarbeitungseinheiten P1, P2 und PJ parallel Multiplikationen und Additionen mit denWerten aus den Speichereinheiten M1, M2 und 10 zur Bildung der Produkte c,-., c-p und Cg-* ausführen können. Die Resultatmatrix C wird auf den Adressen s+0, s+1 ... s+8 der Speichereinheiten" M1, M2 und MJ gespeichert. Wie bereits erwähnt, wurde die relativ kjfceine JxJ-Matrix gewählt, um die Beschreibung des-erfindungsgemäßen Ausfiihrungsbeispiels zu vereinfachen. Es ist offenöiehblich, daß durch einfache Änderung der Programm-" schritte der Rang der zu verarbeitenden Matrizen und die Zahl der Speicher- und Verarbeitungseinheiten erheblich erhöht werden kann· Die Verbindung der Datenregister DR mit den Schieberegistern SR ist in diesen Fällen die gleiche, wie sie oben beschrieben wurde. Alle gleichste lügen Bits der Datenregister sind mit einem Schieberegister verbunden, ein separates Schieberegister wird für jede Bitstelle eines Speicherwortes verwendet, und jedes Schiebregister hat so viele Stellen wie Speichereinheitenvorhanden sind. Die erfindungsgemäße Anordnung kann sowohl zur Umsetzung von Wortkolonnen, die über separate Speichereinheiten verteilt gespeichert sind, in eine einzelne Wortreihe in einer Speichereinheit als auch zur Umsetzung von Wortreihen, die in separaten Speichereinheiten enthalten sind, in eine einzelne Wortkolonne in einer Speichereinheit verwendet werden.
Die Erfindung ist besonders dort anwendbar,' wo große Matrizen zu multiplizieren sind, da die Geschwindigkeit YO 967 059 909833/1373
BAOOfBÖKttt Λ
derartiger Multiplikationen durch Anwendung der Prinzipien vorliegender Erfindung stark erhöht wird. Allgemein gesprochen ist die Geschwindigkeit der Verarbeitung einer Matrix vom Range η durch konventionelle SpeicherZugriffe
"5 2
in der Größenordnung von nr + η , während die Erfindung
2 eine Geschwindigkeit in der Größenordnung von 2n + 2n + Ktsr ermöglicht, w.orin tsr die Schaltzeit des Schieberegisters und K eine Konstante sind. Für große Werte von η ist die Zeiteinsparung beträchtlich.
In der erfindungsgemäßen Anordnung können gewöhnliche Speichereinheiten mit wahlfreiem Zugriff verwendet werden, ohne daß eine Änderung ihres Schaltungsaufbaues zur Erreichung der höheren Multiplikationgeschwindigkeit nötig wäre. Die höhere Geschwindigkeit geht auf Kostendsr Schieberegister, deren Aufwand im Vergleich zu den bekannten Anordnungen zur Matrizenumsetzung vernachlässigbar klein ist.
Der Typ der verwendeten Speichereinheiten M1, Μ2, M^, der Schieberegister SR, der Datenregister DR, sowie der Verarbeitungseinheiten P1, P2 und Pj3 ist für die Ausübung vorliegender Erfindung unwesentlich. Die verschiedenen logischen Schaltungen, Lese-Sehreibschaltungen und Zähler des dargestellten Ausführungsbeispiels sind bekannter Art, wie sie beispielsweise im USA-Patent 3 258 584 oder 3 106 698 dargestellt sind.
YO 967 059 909133/137
BAD

Claims (1)

  1. 8. Januar I969 km-sk
    Paten ta nsprüche
    1. Datenverarbeitungsanlage mit mehreren Verarbeitnngseinheiten und an diese angeschlossenen Speiqherein-■heiten sowie mit Koppelregistern, über die die Verarbeitungseinheiten von den zugeordneten Speichereinheiten Datenwörter empfangen, und worin aus je r-Bits bestehende Datenwörter in mehrere Speichereinheiten verteilt gespeichert und Miutel vorgesenen sina zur Umsetzung dieser Dätenwörter in eine bestimmte Speichereinheit, von der aus die Verarbeitung in der zugeordneten Verarbeitungseinheit erfolgt, dadurch gekennzeichnet, daß zwischen den Speichereinheiten und den Verarbeitungseinheiten r Schieberegister (SR) vorgesehen sind, von denen jedes den Stufen gleicher Stellenordnung in den Koppelregistern zugeordnet ist, und daß eine Verschiebesteuereinheit (SCU) vorgesehen ist, die nach Übernahme mehrerer Wörter von den Speicher-oder Verarbeitungseinheiten in die Schieberegister diese parallel zur Ausführung einer vorbestimmten Anzahl Stellenverschiebungen steuert.
    YO 967 059 909833/1373
    BAOORlGlNAt
    2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß jede Speichereinheit ein rstufiges Koppelregister (DR) aufweist, dass jede Stufe dieses Registers mit einem bestimmten der Schieberegister (SR) verbunden ist, daß die Stufen eines jeden dieser Schieberegister den Stufen gleicher ütellenordnung in den Datenregistern der verschiedenen Speichereinheiten zugeordnet ist unddaß die Reihenfolge dieser Zuordnung einer Gruppenordnung entspricht, in der zusammengehörige Datenwörter in den Speichereinheiten verteilt gespeichert sind,
    3. Datenverarbeitungsanlage nach Anspruch 1 und 2, dadurch gekennzeichnet, daß jede Verarbeitungseinheit ein r-stufiges Datenregister (PDR) aufweist, daß jede Stufe dieses Registers mit einem bestimmten der Schieberegister (SR) verbunden ist und daß die Stufen eines jeden dieser Schieberegister den Stufen gleicher Stellenordnung in den Datenregistern der verschiedenen Verarbeitungseinheiten zugeordnet ist,
    4. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Datenregister (DR und PDR) und die Schieberegister (SR) eine gleichzeitige Aufnahme bzw. Abgabe aller Bits eines Datenwortes gestatten·
    ;o 967 05? 9 0 9 8 3 3/1373
    5· Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Schieberegister (SR) eine. Schiebetaktzeit aufweisen, die klein ist im Verhältnis zur Dauer eines Speicherzyklus der einen wahlfreien.Zugriff gestattenden' Speichereinheiten (Mt, M2, M3).
    6. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Schieberegister (SR) mit einer Ausgangs-Eingangs-Rück·* kopplung versehen sind.
    7· Datenverarbeitungsanlage nach einem der Ansprüohe 1 bis 6, dadurch gekennzeichnet, daß die Verschiebesteuereinheit (SCU) einen Zähler (m) aufweist, dessen Zählstand die Stellenverschiebungen bestimmt und mit jedem Speicher -oder Verarbeitungszyklus um einen konstanten Wert verändert wird.
    8» Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Über mehrere Speichereinheiten verteilt gespeicherten Datenworte Datengruppen angehören, die die Zeilen einer Datenmatrix darstellen, und daß zur Umsetzung dieser Zeilen in Datenwortkolonnen, von denen jede in einer inviduellen Speichereinheit (M1j M2, M3) enthalten sein soll, in aufeinanderfolgendenEntnahme-Verschiebe-und Wiedereinschreibzyklen zuerst die um eine Speichereinheit, danach
    YO 967 059 909833/1373
    -21 - 19Q1343
    die um zwei Speichereinheiten usw.zu versetzenden Datenwörter parallel aus den betreffenden Speichereinheiten ausgelesen und in die Schieberegister übertragen werden und nach jeder dieser Überttagungen unter Steuerung des bis zum Range der Matrix fortschaltbaren Zählers (m) jeweils die betreffende Verschiebung und anschließend eine Rückspeicherung der verschobenen Datenwörter in Kolonnenform in die Speichereinheiten erfolgt.
    . 9. Datenverarbeitungsanlage nach einem' der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die über mehrere Speichereinheiten verteilt gespeicherten Datenwörter den Zeilen von zwei miteinander zu multiplizierenden Datenmatrizen (A,B) angehören, daß zur gleichzeitigenBildung der Datenwörter der Resultatmatrix (C) durch die Verarbeitungseinheiten jede Zelle der einen Matrix (A) in eine dieser Zeile zugeordnete Speichereinheit in Spaltenform durch aufeinanderfolgende Entnahme-Verschiebe-und Wiedereinschreibzyklen umgesetzt wird und daß die Zahl der nach jeder Entnahme in den Schieberegistern (SR) auszuführenden Ver- - Schiebungen durch den bis zum Range der Matrix fortschaltbaren Zähler (m) gesteuert wird.
    909833/1373
    059
    10. Datenverarbeitungsanlage nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß jede der.Verarbeitungs- einheiten zwei Indexregister (X,Y) aufweist, von denen das eine den Adressen der aus der zugeordneten Speichereinheit zu entnehmenden Matrixz-eilen-Datenwörter und das andere den Adressen der in Spaltenform wieder einzuschreibenden Matrixfceilen-.Datenwörter zugeordnet ist, daß am Beginn der Umsetzung die Indexregister(X1, Y1)der ersten Verarbeitungseinheit (P1) auf 0, die Indexregister (X2,Y2) der zweiten Verarbeitungseinheit· (P2) auf n+1, die der dritten Vararbeitungseinheit (PJ) auf 2(n+1) usw. eingestellt werden, wobei η der Rang der Matrix ist, und daß nach jedem Entnahme-Verschiebe-und Wiedereinschreibzyklus die dem Wiedereinschreiben zugeordneten Indexregister (/) in ihrem inhalt um η erhöht und die der Entnahme zugeordneten Indexregister (X) in ihrem Inhalt um η verringert werden.
    YO 967 059 909833/1373
DE1901343A 1968-01-15 1969-01-11 Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen Expired DE1901343C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US69776768A 1968-01-15 1968-01-15

Publications (3)

Publication Number Publication Date
DE1901343A1 true DE1901343A1 (de) 1969-08-14
DE1901343B2 DE1901343B2 (de) 1970-09-10
DE1901343C3 DE1901343C3 (de) 1974-02-07

Family

ID=24802454

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1901343A Expired DE1901343C3 (de) 1968-01-15 1969-01-11 Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen

Country Status (5)

Country Link
US (1) US3535694A (de)
DE (1) DE1901343C3 (de)
FR (1) FR1601993A (de)
GB (1) GB1209999A (de)
NL (1) NL6900001A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0022274A1 (de) * 1979-07-10 1981-01-14 Texas Instruments Incorporated Mikro-Vektor-Prozessor

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3633173A (en) * 1970-03-16 1972-01-04 Hughes Aircraft Co Digital scan converter
US3794984A (en) * 1971-10-14 1974-02-26 Raytheon Co Array processor for digital computers
US3763365A (en) * 1972-01-21 1973-10-02 Evans & Sutherland Computer Co Computer graphics matrix multiplier
US3760368A (en) * 1972-04-21 1973-09-18 Ibm Vector information shifting array
US3936806A (en) * 1972-07-12 1976-02-03 Goodyear Aerospace Corporation Solid state associative processor organization
CA986625A (en) * 1972-07-12 1976-03-30 Kenneth E. Batcher Solid state associative processor organization
JPS512302A (en) * 1974-06-24 1976-01-09 Fujitsu Ltd Johotensohoshiki
US4136383A (en) * 1974-10-01 1979-01-23 Nippon Telegraph And Telephone Public Corporation Microprogrammed, multipurpose processor having controllable execution speed
GB1513586A (en) * 1975-11-21 1978-06-07 Ferranti Ltd Data processing
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
US4179747A (en) * 1976-12-14 1979-12-18 Pitney-Bowes, Inc. Mailing system
US4122534A (en) * 1977-06-17 1978-10-24 Northern Telecom Limited Parallel bidirectional shifter
US4223391A (en) * 1977-10-31 1980-09-16 Burroughs Corporation Parallel access alignment network with barrel switch implementation for d-ordered vector elements
US4291374A (en) * 1978-07-24 1981-09-22 Pitney Bowes Inc. Mailing system
US4293920A (en) * 1979-09-04 1981-10-06 Merola Pasquale A Two-dimensional transform processor
US4288858A (en) * 1979-10-01 1981-09-08 General Electric Company Inverse two-dimensional transform processor
US4506345A (en) * 1982-07-02 1985-03-19 Honeywell Information Systems Inc. Data alignment circuit
DE3434046A1 (de) * 1984-09-17 1986-03-27 Siemens AG, 1000 Berlin und 8000 München Parallelrechner
US4672613A (en) * 1985-11-01 1987-06-09 Cipher Data Products, Inc. System for transferring digital data between a host device and a recording medium
AU595378B2 (en) * 1986-08-22 1990-03-29 Commonwealth Scientific And Industrial Research Organisation Content-addressable memory system with active memory circuit
FR2617621B1 (fr) * 1987-07-03 1989-12-01 Thomson Semiconducteurs Memoire de transposition pour circuit de traitement de donnees
US5673321A (en) * 1995-06-29 1997-09-30 Hewlett-Packard Company Efficient selection and mixing of multiple sub-word items packed into two or more computer words
GB2338094B (en) * 1998-05-27 2003-05-28 Advanced Risc Mach Ltd Vector register addressing
US6282634B1 (en) 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
EP1546863B1 (de) * 2002-09-24 2010-01-20 Interdigital Technology Corporation Rechnerisch effiziente mathematische maschine
US8051124B2 (en) * 2007-07-19 2011-11-01 Itt Manufacturing Enterprises, Inc. High speed and efficient matrix multiplication hardware module
US8341362B2 (en) * 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3243786A (en) * 1960-12-16 1966-03-29 Thompson Ramo Wooldridge Inc Associative memory cell selecting means
US3277449A (en) * 1961-12-12 1966-10-04 Shooman William Orthogonal computer
US3411139A (en) * 1965-11-26 1968-11-12 Burroughs Corp Modular multi-computing data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0022274A1 (de) * 1979-07-10 1981-01-14 Texas Instruments Incorporated Mikro-Vektor-Prozessor

Also Published As

Publication number Publication date
US3535694A (en) 1970-10-20
NL6900001A (de) 1969-07-17
DE1901343C3 (de) 1974-02-07
GB1209999A (en) 1970-10-28
FR1601993A (de) 1970-09-21
DE1901343B2 (de) 1970-09-10

Similar Documents

Publication Publication Date Title
DE1901343A1 (de) Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten
DE2803989C2 (de) Digitaldatenspeicher mit wahlfreiem Zugriff
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
DE1499193C3 (de) Speicher-Adressierschaltung
DE2310631C3 (de) Speicherhierarchie für ein Datenverarbeitungssystem
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2347387A1 (de) Permutationsschaltung
DE4019135A1 (de) Serieller speicher auf ram-basis mit parallelem voraus-lesen
DE2230103A1 (de) Adressiereinrichtung fuer einen speicher
DE2062165A1 (de) Verfahren und Anordnung zum Sortieren oder Mischen von Datensätzen
DE2423265C3 (de) Optimierende Rechenmaschine
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE1190706B (de) In zwei abwechselnden Zyklen arbeitende programmgesteuerte elektronische digitale Rechenmaschine
DE1524898A1 (de) Datenspeicher fuer Datenverarbeitungsanlagen zur gleichzeitigen Entnahme mehrerer Worte
DE2121490A1 (de) Orthogonaler Datenspeicher
DE2349590A1 (de) Vorrichtung zur datenverarbeitung
DE3341339C2 (de) Befehlsfolgegenerator
DE2649147A1 (de) Assoziativspeicher
DE2057124A1 (de) Assoziativspeicher
DE2605066A1 (de) Kanalzuordnungsschaltung zur herstellung einer zeitvielfach-breitbandverbindung
DE1474380A1 (de) Matrixspeicheranordnung
DE3340078A1 (de) Prozessor-zelle zur verwendung in einer aus derartigen zellen gebildeten anordnung
DE69231172T2 (de) Datenspeicher und bildverarbeitungssystem mit einem solchen datenspeicher
DE2406830C3 (de) Einrichtung zur Programmvorgabe für die numerische Steuerung einer Werkzeugmaschine
DE2261221C2 (de) Steuerwerk in einer Datenverarbeitungsanlage

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee