DE1901343A1 - Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten - Google Patents
Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen SpeichereinheitenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix 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
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)
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:
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
χ χ χ 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
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
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)
- 8. Januar I969 km-skPaten ta nsprüche1. 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/1373BAOORlGlNAt2. 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/13735· 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, danachYO 967 059 909833/1373-21 - 19Q1343die 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/137305910. 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
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)
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)
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)
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 |
-
1968
- 1968-01-15 US US697767A patent/US3535694A/en not_active Expired - Lifetime
- 1968-12-16 FR FR1601993D patent/FR1601993A/fr not_active Expired
- 1968-12-17 GB GB59925/68A patent/GB1209999A/en not_active Expired
-
1969
- 1969-01-02 NL NL6900001A patent/NL6900001A/xx unknown
- 1969-01-11 DE DE1901343A patent/DE1901343C3/de not_active Expired
Cited By (1)
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 |