DE2718849C2 - Datenverarbeitungsanlage für Datenelemente einer Matrix aus M Speichermoduln und mit p Prozessoren - Google Patents
Datenverarbeitungsanlage für Datenelemente einer Matrix aus M Speichermoduln und mit p ProzessorenInfo
- Publication number
- DE2718849C2 DE2718849C2 DE2718849A DE2718849A DE2718849C2 DE 2718849 C2 DE2718849 C2 DE 2718849C2 DE 2718849 A DE2718849 A DE 2718849A DE 2718849 A DE2718849 A DE 2718849A DE 2718849 C2 DE2718849 C2 DE 2718849C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- register
- multiplier
- matrix
- output
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Description
Die Erfindung betrifft eine Datenverarbeitungsanlage gemäß Oberbegriff des Anspruchs 1.
Mit zunehmenden Verarbeitungsgeschwindigkeiten der Rechner wurden Systeme entwickelt, die eine immer
größere Anzahl von parallelen Speichermoduln enthalten. So hat beispielsweise die Anlage Illiac IV in der
Größenordnung von 64 parallelen Speichern (vgl. DE-AS 18 13 916).
Parallele Speichersysteme leiden gewöhnlich unter unvermeidbaren Speicherkonflikten. Schwerwiegende
Abspeicherprobleme treten häufig bei der Ausführung von Matrix-Berechnungen auf. Man betrachte z. B. eine
typische zweidimensionale Matrix, deren Elemente spaltenweise in einem parallelen Speicherfeld gespeichert
sind. In einem derartigen Speichersystem kann auf Elemente, die in einer Zeile, in einer nach vorwärts
gerichteten Diagonalen und einer nach rückwärts gerichteten Diagonalen gespeichert sind, parallel
zugegriffen werden. Jedoch muß auf die Spaltenelemente seriell in jedem Speicher zugegriffen werden. Somit
entsteht ein Speicherkonflikt, der die Verarbcitungska-
pazität des parallelen Speichersystems beschrankt.
Andere Speichersysteme erlauben parallelen Zugriff zu einer Matrix-Spalte, können jedoch einen Konflikt
für einen Zeilenzugriff, einen diagonalen Zugriff oder einen anderen Matrix-Vektor-Zugriff verursachen. Das
Konfliktproblem wurde von Budnik und Kuck in ihrem Aufsatz »The Organization and Use of Parallel
Memories« in IEEE Transactions on Computers, Dezember 1971, Seiten 1566- 1569, sowie von Lawrie in
seinem Aufsatz »Access and Alignment of Data in an Array Processor«, veröffentlicht in IEEE Transactions
on Computers, Dezember 1975, Seiten 1145-1155,
diskutiert. Versuche, das Konfliktproblem zu lösen, führten zu relativ komplizierten Speichersystemen und
zu einer Erschwerung der Ausrichtung der Vielzahl von parallelen Speichern auf die zugehörige Vielzahl von
arithmetischen Einheiten oder Prozessoren.
Der Erfindung liegt daher die Aufgabe zugrunde, einen konfliktlosen linearen Vektorspeicher für eine
mehrdimensionale Matrix in einem ParalN-Speichersystem
zu schaffen, der relativ einfach aufgebaut ist und das Herumführen von Daten zwischen den parallelen
Speichern und der zugehörigen Vielfalt von arithmetischen Einheiten oder Prozessoren vereinfacht. Weiter
soll der vollständige konfliktlose lineare Vektorspeicher einen parallelen Zugriff nicht nur auf Zeilen, Spalten und
die Hauptdiagonalen in einer Matrix, sondern auch auf alle anderen linearen Matrixvektoren und nicht
benachbarte Elemente längs des linearen Vektors ermöglichen, wobei unter nicht benachbarten Elementen
diejenigen zu verstehen sind, die sich um mehr als eine Einheit in ihrem Speicherplatz vom Nachoarn
unterscheiden.
Dazu ist erfindungsgemäß eine Datenverarbeitungsanlage vorgesehen, die gemäß Kennzeichen des
Anspruchs 1 ausgebildet ist. Durch konfliktloses Speichern der Elemente aller linearen Vektoren einer
Matrix in der Vielzahl von Speichermoduln werden sämtliche Elemente eines beliebigen linearen Vektors
der Matrix zur Verarbeitung in schnellem Parallelbetrieb zugreifbar.
Bevorzugte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
Nachstehend werden bevorzugte Ausführungsbeispiele der Erfindung anhand der beigefügten Zeichnungen
im einzelnen beschrieben. Es zeigt
Fig. 1 eine erläuternde Darstellung einer mehrdimensionalen Matrix mit linearen Zugriffsvektoren,
wobei auf jedf.n Vektor parallel zugegriffen werden kann,
Fi g. 2 ein Blockdiagramm einer Datenverarbeitungsanordnung mit parallelen Speichern, wobei die
Speicherausricht- und Adressier-Markierungen im Rahmen der Erfindung verwendet werden,
Fig.3 ein detailliertes Blockdiagramm einer Rechneranordnung
mit parallelen Speichern gemäß Fig. 2,
Fig.4 eine zweidimensionaie Matrix, die konfliktlos
in der Rechneranordnung mit parallelen Speichern gemäß F i g. 3 speicherbar ist,
Fig.5 die Matrix aus Fig.4, die koniliktlos in der
Anordnung gemäß F i g. 3 gespeichert ist,
F i g. 6 eine Schaltung zur Erzeugung zweier Indiziermarkierungen,
die für den Zugriff auf die gespeicherte Matrix aus F i g. 5 benutzt werden,
Fig. 7 eine dreidimensionale Matrix, die in der Datenverarbeitungsanlage aus F i g. 3 konfliktlos speicherbar
ist,
Fig. 8 die Matrix aus Fig. 7, die konfliktlos in der Anlage gemäß F i g. 3 gespeichert ist,
F i g. 9 ein Diagramm einer Schaltung zur Erzeugung zweier Indiziermarkierungen, die zum Zugriff auf die
gespeicherte Matrix aus F i g. 4 verwendet werden,
j Die Erfindung kann mit Vorteil von der Einrichtung Gebrauch machen, die in der deutschen Offenlegungsschrift 26 19 418 beschrieben ist, ist jedoch darauf nicht beschränkt. Die Leistungsfähigkeit der Erfindung wird deutlich, wenn man jene mehrdimensionale Matrix 11
j Die Erfindung kann mit Vorteil von der Einrichtung Gebrauch machen, die in der deutschen Offenlegungsschrift 26 19 418 beschrieben ist, ist jedoch darauf nicht beschränkt. Die Leistungsfähigkeit der Erfindung wird deutlich, wenn man jene mehrdimensionale Matrix 11
ι ο betrachtet, die gemäß F i g. 1 von einem linearen Vektor
13 durchsetzt wird. Die Erfindung schafft nun ein Verfahren und eine Einrichtung zum parallelen Zugriff
auf alle Matrix-Elemente längs des Vektors 13. Insbesondere schafft die Erfindung ein Verfahren und
r> eine Einrichtung zum konfliktlosen Speichern der
Elemente aller linearen Vektoren einer mehrdimensionafen
Matrix in einer Rechenanlage mit einem parallelen Speicher und erlaubt damit eine parallele
Verarbeitung der Elemente längs eines beliebigen
2(i linearen Vektors.
Die parallele Verarbeitung gemäß der Erfindung geschieht gemäß Fig.2 mit Hilfe eines Ausricht-Netzwerkes
15, das zwischen mehreren Speichern 17 und mehreren Verarbeitungseinheiten 19 zwischengeschal-
2; tet ist. Das Ausnchtnetzwerk ordnet insbesondere
spezielle in der Vielzahl der Speicher gespeicherte Matrixelemente speziellen Verarbeitungseinheiten zu.
Wie man ieicht erkennt, müssen die Elemente einer mehrdimensionalen Matrix in der Vielzahl der Speicher
j» 17 gemäß einer geordneten Speicheranordnung aufbewahrt
werden.
Der erfindungsgemäße und nachfolgend im einzelnen beschriebene Speicher erzeugt zwei Indizierzeichen,
nämlich T(p) und Φ(π>). Zeichen T(p) richtet einen
1Ί speziellen Speicher 17 auf einen speziellen Prozessor 19
aus. Zeichen Φ(ηι) adressiert Speicher 17. In Kombination ordnen die Indizierzeichen T(p)und Φ(γπ)ολ& Daten
(beispielsweise ein Matrix-Element in binärer Darstellung), die an einer speziellen Adresse im Speicher 17
to gespeichert sind, einem speziellen Prozessor 19 zu.
Im Betrieb werden die Indizierzeichen in zwei verschiedenen Zeitbereichen erzeugt, und werden als
»Zug-Zeichen« und »Schiebe-Zeichen« bezeichnet. Zug-Zeichen werden erzeugt, um Daten aus einer
r> Adresse eines Speichers 17 im übertragenen Sinne
herauszuziehen, und einem Prozessor 19 zur Verarbeitung zuzuführen. Nach der Verarbeitung (d. h. Addition,
Multiplikation usw.) werden Schiebe-Zeichen erzeugt, die die verarbeiteten Daten in eine spezielle Adresse
ίο eines Speichers 17 zurückführen.
Vorzugsweise wird die Vielzahl von Speichern 17 als schnelle adressierbare Speichervorrichtungen etwa in
der Form von RAM (Speicher mit wahlfreiem Zugriff) ausgeführt. RAM und andere schnelle adressierbare
» Speicher sind in ihrer Konstruktion und ihrem Aufbau
an sich bekannt. Viele RAM sind kommerziell als einzelnes Chip erhältlich und ihre Verwendung in
digitalen Schaltungen ist an sich übliche Praxis. Die Auswahl und die Konstruktion eines speziellen Spei-
3« chers 17 ist anwendungsorientiert hinsichtlich der
Größe der Matrix, die gespeichert werden muß, und der gewünschten Rechengeschwindigkeit, so daß die üblichen
Kalkulationen hinsichtlich Größe/Geschwindigkeiten/Kosten angestellt werden. Vorzugsweise wird
τι ein schnelles Gerät verwendet, die Erfindung ist jedoch
insoweit nicht beschränkt und kann auch mit langsameren Hilfsspeichern arbeiten, etwa in der Form von
Magnetband-Einheiten und Magnet-Platten.
In ähnlicher Weise ist die Struktur und der Aufbau jedes Prozessors 19 anwendungsorientiert. Der Prozessor
19 kann als einfacher handelsüblicher Standard-Addierer ausgeführt sein, der für Anwendungen im
Rahmen einfacher Matrix-Additionen vorgesehen ist. Für komplizier:ere Anwendungsfälle kann jeder Prozessor
19 aus üblichen Standard-Arithmetikeinheiten aufgebaut sein, die üblicherweise in kleinen Vierfunktions-Elektronikrechnern
verwendet werden. Schließlich kann für eine extrem komplizierte Bearbeitung von Daten, die in der Vielzahl von Speichern 17 gespeichert
sind, jeder Prozessor 19 ein Mikroprozessor sein, der in üblicher Großintegrationstechnik (LSI) auf einem
einzigen Chip untergebracht und im Handel erhältlich ist. Als Beispie! wird auf die US-Patentschrift 38 78 514
verwiesen.
Die Erfindung enthält bezüglich der Anzahl der Prozessoren 19 und der Anzahl der Speicher 17 gewisse
Eigentümlichkeiten. Erstens sollte die Anzahl der Prozessoren 19 gleich einr Potenz von zwei sein. Wie
weiter unten ausgeführt wird, enthalten gewisse Berechnungen von Zeichen eine Division durch die
Anzahl der verwendeten Prozessoren 19. Da die Division durch eine Potenz von zwei einfach durch eine
Verschiebung oder Maskierung ausgeführt werden kann, während die Division durch andere Zahlen relativ
aufwendig ist, ist die Forderung, daß die Anzahl der Speicher eine Potenz von zwei sein soll, relativ wichtig
vom Standpunkt der praktischen Realisierung der Erfindung aus.
Zum zweiten ist die Anzahl der Prozessoren 19 relativ zur Zahl der Speicher 17 teilerfremd. Dies kann in
einfacher Weise dadurch geschehen, daß die Zahl der Speicher 17 als Primzahl gewählt wird. Gegenwärtig ist
die Arbeitsgeschwindigkeit von Prozessoren oft zweimal so groß wie die von Speichern. Eine Optimierung
wird unter diesen Bedingungen dadurch erreicht, daß die Anzahl der Speicher 17 als eine geringfügig größere
Primzahl als das Vierfache der Zahl der Prozessoren gewählt wird. Beispielsweise umfaßt eine recht gute
optimierte zusammengesetzte Anlage 16 Prozessoren 19 und 67 Speicher 17 (Fig. 2). Alternativ kann für eine
weniger umfangreiche Anlage die Zahl der Speicher 17 eine Primzahl sein, die geringfügig größer als die Anzahl
der Prozessoren 19 ist. Als Beispiel können vier Prozessoren 19 mit fünf Speichern 17 zusammenarbeiten,
wie F i g. 3 erläutert.
Man entnimmt der Fig. 3 weiter, daß ein Ausrichtnetzwerk
15 zwischen die Vielzahl der Speicher 17 und die Vielzahl der Prozessoren 19 geschaltet ist. Die
Funktion des Ausrichtnetzwerkes 15 besteht darin, einen speziellen Prozessor 19 einem speziellen Speicher
17 zuzuordnen und damit den Datenverkehr zwischen den beiden zu ermöglichen. Das Ausrichtnetzwerk 15
weist mehrere Multiplexer 21 auf, wobei jeweils ein Multiplexer 21 einem Prozessor 19 zugeordnet ist. Jeder
Multiplexer 21 ist mit seinem zugehörigen Prozessor 19 über einen zweiten Datenpfad 25 verbunden. Jeder
zweite Datenpfad 25 ist mit einem ersten zu je einem Speicher 17 führenden Datenpfad 23 verbunden, der in
Abhängigkeit von dem speziellen Speicherzeichen T(p) gewählt ist das an einem Steuereingang 26 jedes
Multiplexers 21 steht
Zur Erläuterung kann jeder Multiplexer 21 als ein einpoliger Mehrfachschalter '.erstanden werden, der
von den an dem Steuereingang 26 vorliegenden Speici »rzeichen T(p) gesteuert wird. Da es sich um
einen einpoligen Schalter handelt kann die Datenübertragung über den Multiplexer 21 nur seriell stattfinden.
Der Datenfluß kann durch Übergang von dem einpoligen Schalter zu einem achtpoligen Betrieb
erhöht werden, wodurch ein byte-serieller Datenfluß ermöglicht wird. Vorzugsweise wird für maximale
Geschwindigkeit ein Multiplexer 21 ausreichen, dessen Größe parallele Datenübertragung ermöglicht. Somit
kann ein 24poliger Mehrfachschalter, dessen Mehrfachanschlüsse gleich der Zahl der Speicher 17 in der
Anlage ist, eine Parallel-Übertragung von 24 Dalenbits ermöglichen.
Halbleiter-Multiplexer sind an sich bekannt und stehen in Groß-Integrationstechnik zur Verfügung. Als
Beispiel sei der Motorola 8-Line Multiplexer MC 10 164 genannt, der in einem Ausführungsmodul der Erfindung
eingesetzt wurde. Für eine größere Anlage mit 67 Speichern 17 wird eine Anzahl von MC 10 164-Einheiten
zu einem einzigen Multiplexer 21 parallel geschaltet.
Zu jedem Prozessor 19 und Speicher 17 gehört die erforderliche, nicht dargestellte Datenpufferung als
Schnittstelle für den Datenfluß durch den Multiplexer 21, und um ein ordnungsgemäßes Verarbeiten und
Abspeichern der Daten zu ermöglichen. Die Notwendigkeit des Puffers sowie ihre praktische Ausführung ist
in der Technik bekannt. Man wird ferner bedenken, daß die Pufferanforderungen bei paralleler Datenübertragung
geringer sind als bei serieller Datenübertragung.
In Verbindung mit der Erzeugung der Speicherzeichen T(p) für das Ausricht-Netzwerk 15 wird ein
Speicheradressenzeichen <P(m) erzeugt und auf den
Speicheradreß-Steuereingang 27 jedes Speichers 17 gegeben, so daß die Daten in einem speziellen Speicher
17 adressiert und aus dem Speicher 17 in den Prozessor 19 ausgelesen werden können, und so daß es ferner
möglich ist, die verarbeiteten Daten an einer Adresse eines speziellen Speichers 17 aus dem Prozessor 19
einzulesen.
Die Speicherzeichen T(p) und die Speicheradreß-Zeichen Φ(πί) werden entsprechend einer speziellen
Abspeicheranordnung für die Matrix-Elemente erzeugt Die Abspeicheranordnung und die zugehörige Schaltung
wird zunächst im Hinblick auf das Abspeichern einer zweidimensionalen Matrix erörtert. Danach wird
das Abspeichern einer dreidimensionalen Matrix betrachtet. Schließlich wird die Erweiterung der Abspeicher-Vereinbarung
auf das Abspeichern einer mehrdimensionalen Matrix erläutert
In einem zweidimensionalen Feld sind die primären Speicherindiziergleichungen die folgenden:
b.
" wobei
j.k
T(p)
base
«ι
.ν = [(rä)'' u - (rd)''' (j' ■ K + k + base)] mod M
ti = TXp) = [(J ■ K+k + base+rdp)] mod M
Anfangselement des M-Vektors,
der inkrementielle Zuwachs,
die Speicherzahl,
die Länge der Zeile,
die Anzahl der Speicher,
die Zahl, die die größte Potenz von zwei
kleiner als Mdarstellt
Speicherzeichen für Prozessor p.
Zahl der Startadresse für die Feldnotierung
(array mapping).
Abstand zwischen zwei aufeinanderfolgenden
Elementen eines M-Vektors
bedeuten. Als Beispiele seien genannt:
d = 1 für die Zeile,
d = K für die Spalte,
d = K + 1 für einen vorwärts gerichteten Diagonalen-Vektor,
d = K-] für einen rückwärts gerichteten Diagonalen-Vektor.
Aus dem Vorstehenden geht hervor, daß rd nicht ein Mehrfaches von M sein darf (sonst ist rd„,=0 und d~]
existiert weiter nicht) wodurch ein konfliktbehaftetes Abspeichern der Elemente angezeigt wird.
Mehrere Beispiele werden zur Erleichterung des Verständnisses der schaltungsmäßigen Verwirklichung
der Indizier-Gleichungen mitgeteilt. Sämtliche Beispiele
gehen von fünf Speichern 17 und vier Prozessoren 19 aus (Fig. 3). Ferner wird bei sämtlichen Beispielen ein
Standard-Format einer 7 mal 8 zweidimensionalen Matrix angenommen (F i g. 4), welche in das Speichersystem
beginnend bei der Basis 9 (Fig. 5) eingetragen wird. Nach den Beispielen wird eine ins einzelne
gehende Darstellung der Schaltungslogik gegeben, die zur Realisierung der genannten Gleichungen notwendig
ist.
Die Indizier-Gleichungen wurden für ein Null-Ursprungssystem entwickelt, dessen erster Speicher 17 mit
Null bezeichnet und dessen erste Speicher 17 Adresse mit Null numeriert ist (Fig.5). Man bemerke, daß die
Indiziergleichungen leicht modifiziert werden können, um sich anderen als Null-Ursprungssystemen anzupassen.
Die Basisznhl aus den Indiziergleichungen bezieht sich auf die erste Speicher 17-Stelle, an der die Matrix in
das Speichersystem eingetragen ist (Fig.5) für eine Matrix, die an Basis 9 beginnt. Ferner sieht man aus
Fig. 5, daß die Basis 0 beim Speicher MO, Adresse 0;
Basis 2 beim Speicher M 2, Adresse 0; sowie Basis 3 beim Speicher MZ, Adresse 0 logisch auftritt.
Jedoch dient die Speicher M4-Adresse 0 nicht zum Abspeichern von Matrix-Elementen, was durch einen
Querstrich (-) angedeutet ist. Die Basis 4 tritt am Speicher 4 und Adresse 1 auf. Man sieht, daß eine
Diagonale aus Speicher 17-Adressen nicht verwendet wird, wie die Striche andeuten, die sich ausgehend von
Speicher Λ/4-Adresse 0 zum Speicher MO Adresse 4 erstrecken. Man sieht weiter, daß sich ein wiederholendes
Muster entwickelt, was sich durch die Diagonale von Speicher MA Adresse 5 bis Speicher MO Adresse 9
erstreckt; andere Diagonalen sind in F i g. 5 durch Striche dargestellt. Solche Diagonalen werden in dem
Basis-Numerierungs-Schema nicht verwendet und dienten nicht zum Abspeichern von konfiiktfreien Matrix-Elementen.
Jedoch stellen die Diagonalen tatsächliche Speicheradressen dar, die zum Abspeichern anderer
Daten verwendet werden können.
Das in Fi g. 5 angegebene Abspeichermuster wiederholt sich in anderen System-Konfigurationen. In einer
Anlage von beispielsweise 16 Prozessoren 19, 67 Speichern 17 (F i g. 2) erstreckt sich eine Diagonale aus
Speicheradressen, die nicht Basiszahlen zugeordnet sind, von Speichern M 66 Adresse 0 herab bis Speicher
MO Adresse 66. Andere Diagonalen wiederholen sich wie in F i g. 5 angedeutet.
Die Matrix-Elemente werden in den Speicher Zeile für Zeile eingetragen. Fig. 5 zeigt das Eintragen der
Matrix gemäß Fig.4 in den Speicher, beginnend mit
Matrix-Element 0,0 an der Basis 9 und endend mit Matrix-Element 7,6 an der Basis 64.
Ausgehend von einer Matrix gemäß F i g. 4, die in den Speicher gemäß F i g. 5 eingetragen ist, werden mehrere
Beispiele angegeben, die das Holen verschiedener M-Vektoren erläutern.
Gewünschter M- Vektor = 2. Spalte beginnend mit Elemental,2).
/· = Zuwachs (Increment) = Einheit
A' =7
Berechnung:
A = IJ = I,A= 2;M = 5./V=4./· = I, base= 9
d = A'for column
d = A'for column
.-.rd = 1-7 = 1 (rd) ' =3 .(rd)(rd);,,1 = 7-3, = 21, =
jK + k + base^ 1 -7+2 + 9 = 18
X= \(rd) ' · u-(rd)'x(jK + k + basej\m
= [3//-3-18], = (31/+I)5
0V.k.u) = \j-K + k + hase+ rdx] .ι Ν 0{j.k.u) = [18 + 7(3z/+1)_5-l4
T(p) = \J -2 + A + hase+ rdp] m
0V.k.u) = \j-K + k + hase+ rdx] .ι Ν 0{j.k.u) = [18 + 7(3z/+1)_5-l4
T(p) = \J -2 + A + hase+ rdp] m
Tip) | - l(2p - 3)]5 | Speicher-Matrix Inhalt |
Prozessor Nr. P |
Speicher-Zuweisg. T(p) |
1 Prozessor m zugewiesener Inhalt 8 1 |
Speicher Nr. Il |
Speicher-Adresse Φ (./. fc H) |
2,2
52 |
0
1 |
3
0 |
u I
2.2 i |
O 1 |
6
11 |
||||
9
Fortsetzung
Speicher Nr. Speicher-Adresse Speicher-Matrix Prozessor Nr. Speichcr-Zuwcisg. Prozessor
Inhall zugewiesener Inhalt
ti Φ (./, k, ii) ρ 7Ί/Ί
2 8 3,2 2 2 3,2
3 4 1,2 3 4 4,2
4 9 4,2
Wie dargestellt, werden die richtigen Speicher 17-Adressen erzeugt und das Ausricht-Netzwerk 21 richtet die
jr; ersten vier Elemente der Spalte auf die vier Prozessoren 19 aus.
Ui Gewünschter M-Vektor= 3. Zeile, beginnend mit Element (3,0)
υ. Zuwachs (Inkrement) = 2
f| Berechnung:
' K = IJ = 3 r=l Basis = 9
!; d = 1 für Zeile
[ r ■ d = 2 ■ 1 = 2 (rdy' = 3 (/·</) · (rd)s ' = 2 · 35 = 1
i: JK+ k + base= 3-7+0 + 9 = 30
l!; x =
= [3ι/-3·30]5 = (3u)5
Speicher Nr. | Speicher-Adresse | Speicher-Matrix | Prozessor Nr. | Spcicher-Zuweisg. | Prozessor |
Inhalt | zugewiesener Inhalt | ||||
U | Φ (J. fc «) | P | T (p) | ||
0 | 7 | 3,0 | 0 | 0 | 3,0 |
1 | 9 | 3,6 | 1 | 2 | 3,2 |
2 | 8 | 3,2 | 2 | 4 | 3,4 |
3 | 9 | 4,1 | 3 | 1 | 3,6 |
4 | 8 | 3,4 |
Wieder wird auf die gewünschten Elemente a'js dem gewünschten Vektors ist, herausgeholt wird. Jedoch
Speicher 17 zugegriffen und sie werden in der richtigen erzeugt das Ausricht-Netzwerk 21 ein Zeichen T(p), das
Weise ausgerichtet. Man bemerke, daß aus dem gleich 3 ist, so daß das Element eliminiert wird.
Speicher M3 das (4,1)-Element, das nicht Teil des 50
Beispiel 3 Gewünschter M-Vektor = vorwärts gerichtete Diagonale beginnend mit Element (2,?.)
Zuwachs = 2
K=TJ = 2k= Ir = 2 base = 9
d= K+\
= 8 für Vorwärts-Diagonale
rrf=2-8 = 16 (rd)'] = 1 (rd)(rd)-] = 16-I5 = 1 jK+k+base = 2-7 + 2 + 9 = 25
rrf=2-8 = 16 (rd)'] = 1 (rd)(rd)-] = 16-I5 = 1 jK+k+base = 2-7 + 2 + 9 = 25
je = [rd(rd){ u-(rd)-} (j,K+k+base)\5
= [1-H-I-25I5 = M5
4>(/,fc a)= [25+ 16-(H)5]-4
4>(/,fc a)= [25+ 16-(H)5]-4
Speicher Nr. | Speicher-Adresse | Speicher-Matrix | Prozessor Nr. | Speicher-Zuweisg. | Prozessor |
zugewiesener Inhalt | |||||
U | Φ ('. ./. II) | /' | T(p) | ||
O | 6 | 2,2 | 0 | 0 | 2,2 |
1 | 10 | 4,4 | 1 | 1 | 4,4 |
2 | 14 | 6,6 | 7 | 2 | 6,6 |
3 | 18 | 3 | 3 | - | |
4 | 22 |
Wieder wird man erkennen, daß die richtigen Elemente herausgeholt und ausgerichtet wurden.
Die schaltungsmäßige Verwirklichung des vorstehend beschriebenen Abspeicherns für eine zweidimensionale
Matrix ist relativ einfach und kann mit üblicher Digital-Technik ausgeführt werden (Fig. 6). Eine
Anzahl von Speicherelementen, beispielsweise in der Form von Registern, werden dabei verwendet, wobei
anstelle der Register auch Speicher oder ähnliches genommen werden kann. Das u-Register 29 speichert
den Binärwert der Nummer des Speichers 17, der bei der Berechnung von Φ (j, k, unbenutzt wird. Somit ist das
«-Register 29 inkrementierbar oder in anderer Weise so in seinem Inhalt veränderbar, daß wahlweise Werte von
u von 0 bis zur Maximalzahl der Speicher 17 gespeichert werden können.
Das/-Register 31 und das jt-Register 33 speichern das
Anfangselement des Λί-Vektors, auf den zugegriffen
werden soll. Somit müssen sowohl das/Register 31 wie auch das jfc-Register 33 in ähnlicher Weise inkrementierbar
oder in anderer Weise veränderbar sein. Das K-Register 35 speichert die Länge der Zeile einer
Matrix, auf die zugegriffen wird.
Dieses Register bleibt während des ganzen Zugriffs auf eine vorgegebene Matrix unveränderbar. Wieder
muß das /^-Register 35 so in seinem Inhalt veränderbar
sein, daß es an Matrizen unterschiedlicher Zeilenlänge angepaßt werden kann. Das Base-Register 37 speichert
eine Binärdarstellung des Wertes der Basis oder Anfangsadresse der Matrix, auf die zugegriffen werden
solL Das Base-Register 37 ist von hinreichender Größe, so daß im wesentlichen sämtliche Adressen in einem
gegebenen Speicher dargestellt werden können. Somit hängt die Größe des Base-Registers 37 von der
Adressengröße des Speichers 17 und von der Anzahl der Speicher 17 ab, die in einer gegebenen Anlage
verwendet werden. Der in dem Base-Register 37 gespeicherte Wert bleibt während des gesamten
Zugriffs auf eine gegebene Matrix konstant.
Das p-Register 39 speichert die Binärdarsteüung der
Nummer des betreffenden Prozessors i9, der bei der Berechnung des Wertes von T(p) benutzt wird. Somit ist
das p-Register 39 von ausreichender Größe, damit die
Binärzahl der größten Nummer eines Prozessors 19 gespeichert werden kann. Der in dem p-Register 39
gespeicherte Wert wird für jede neue Berechnung des Wertes 7Jp}verändert
Das r-Register 41 speichert die Binärdarstellung des
Wertes des gewünschten Zuwachses an Elementen längs eines gegebenen M-Vektors. Somit hängt die
Größe des r-Registers 41 von dem größten Zuwachs ab, der bei einer gegebenen Berechnung verwendet werden
solL Gewöhnlich wird der Zuwachswert r als Einheit gewählt.
Schließlich speichert das d-Register 43 die Binärdarstellung
des Wertes d der gleich dem Abstand zwischen zwei aufeinanderfolgenden Elementen eines ΛΊ-Vektors
ist. Beispielsweise ist dgleich 1 für eine Zeile, K für eine
Spalte, K + 1 für eine vorwärts gerichtete Diagonale und K-1 für eine rückwärts gerichtete Diagonale. Das
(/-Register 43 muß inkrementierbar oder in anderer Weise veränderbar sein, darr.'t auf die verschiedenen
M-Vektoren zugegriffen werden kann.
Der in dsm /Register 31 gespeicherte Wert und der in dem /(-Register 35 gespeicherte Wert werden im
Multiplizierer 45 miteinander verknüpft. Der Multiplizierer 45 ist ein üblicher Binär-Multiplizierer oder kann
aus einer Vielzahl solcher Multiplizierer bestehen, von denen beispielsweise die Motorola MC1083 Multiplizierer
genannt seien. Die Anzahl von üblichen Multiplizierern, die parallel geschaltet werden, hängt von der
binären Länge der in dem /Register 31 und dem /(-Register 35 gespeicherten Werte ab. In ähnlicher
Weise werden die in dem r-Register 41 und in dem (/-Register gespeicherten Werte in dem Multiplizierer
47 verknüpft, dessen Aufbau dem Multiplizierer 45 ähnlich ist. Der Multiplizierer 49 verknüpft den Ausgang
des Multiplizierers 47 mit dem Wert, der im p-Register 39 gespeichert ist Ein üblicher Binäraddierer 51 dient
zur Kombination des Ausgangs des ir-Registers 33 mit
dem Base-Register 37. Ein zweiter Binäraddierer 53 dient zur Kombinierung des Ausgangs des Addierers 51
mit dem Multiplizierer 45. Der Ausgang des zweiten Addierers 53 wird mit dem Ausgang des Multiplizieren
49 in einem dritten Addierer 55 verknüpft.
Der Ausgang des Addierers 55 dient als Eingang 57 für einen binären Modulo-M-Obersetzer 59, dessen
Ausgang 61 das Zeichen T(p)ist. Der Binär/Modulo-M-Übersetzer
59 entspricht vorzugsweise demjenigen, der in der deutschen Offenlegungsschrift 26 19 418 beschrieben
ist. Der Obersetzer 59 liefert einen Modulo-M-Ausgang
61 des binären Eingangs 57, wobei M gleich der Anzahl der Speicher 17 in einer speziellen Anlage ist. So
ist beispielsweise in der Anlage, die in F i g. 2 dargestellt ist, M gleich 67 und in der Anlage gemäß F i g. 3 beträgt
M den Wert 5. Die soweit beschriebene Schaltung einschließlich des ivioduio-M-Umsetzers 59 erzeugt das
Zeichen T(p).
Der Ausgang des Addierers 53 wird von dem in dem u-Register 29 gespeicherten Wert in einem üblichen
Binär-Subtrahierer 63 subtrahiert Der Ausgang des Multiplizierers 47 adressiert einen Lesespeicher 65. Der
Lesespeicher 65 ist vorprogrammiert und gibt den Modulo-M-Wert seines Ausgangs aus, genommen in der
Potenz-1. Geeignete Leserspeicher für den Lesespeicher
65 sind in der deutschen Offenlegungsschrift 26 19 418 beschrieben. Der Ausgang 67 des Lesespeichers
65 wird mit dem Ausgang eines üblichen Subtrahierers 63 in einem dritten Multiplizierer 69
verknüpft, der in Aufbau und Wirkungsweise dem Multiplizierer 45 ähnlich ist Der Ausgang des
Multiplizierers 69 wird einem zweiten Modulo-Ai-Um-
setzer 71 zugeführt, der in Aufbau und Wirkungsweise
dem obenerwähnten Modulo- M-Umsetzer 59 identisch ist. Der Ausgang des Modulo-M-Umsetzers 71 wird im
Multiplizierer 73 mit dem Ausgang des Multiplizieren 47 verknüpft. Der Ausgang des Multiplizierers 73 wird
zum Ausgang des Addierers 53 im Addierer 75 addiert. Der Ausgang des Addierers 75 wird durch den
Eingang 77 einer Dividierschaltung 81 zugeführt, die durch die Zahl N dividiert, wobei N gleich der Anzahl
der Prozessoren 19 ist, die in einer spezieilen Anlage verwendet werden. Beispielsweise ist die Anlage gemäß
Fig. 2 die Zahl /Vgleich 16 und in der Anlage gemäß
F i g. 3 beträgt N4. Da N stets gleich einer Binärzahl ist.
ist die Dividierschaltung 81 einfach ein Schieberegister.
oder in einer anderen Ausführungsform ein Maskier generator. Der Ausgang 83 der Dividierschaltung 81 is
das Zeichen Φ (i.j, u).
Somit wird also die Erzeugung der Zeichen T(p) un< Φ (i, j, u) mittels üblicher Binärschagjtungen ausgeführt
die zusätzlich die Modulo-M-Umsetzer 59 und 7
enthalten, die in der bereits mehrfach erwähnte! Offenlegungsschrift 26 19 418 erläuiert sind.
Die Erweiterung der Erfindung von einer zweidimen sionalen Matrix auf eine dreidimensionale Matrix folg
einer einfachen logischen Progression. In einen dreidimensionalen Feld sind die beiden Primärspeicher
Indiziergleichungen die folgenden:
1. a. 0{\J,k,ii) = [JK ■ i + Kj + k + base+ rd ■ x]^ N
b. x=[(rd) 'ti-(rd) '(JK ■ i + Kj + A + hase)] mod M
2. u= 1\p) =
wobei
ij.k
1.1, K
base
das Anfangselement des M-Vektors,
die Dimension des Feldes,
die Anfangsadresse der Feldeintragung (array mapping),
Zuwachs,
Abstand zwischen zwei aufeinanderfolgenden Elementen eines V-Vektors,
die Zahl, die die höchste Potenz von zwei darstellt, die kleiner ist als M,
T(p) = Speicherzeichen für Prozessor P,
rd = ein Mehrfaches von M.
Man beach .e, daß eine dreidimensionale Matrix de Dimension 7x7x7 in Fig. 7 allgemein dargestellt isi
Eine derartige Matrix wird in fünf Speicher (Fig.2 gemäß der Erfindung eingetragen, und zwar auf die ii
F i g. 8 dargestellte Weise.
Beispiel einer dreidimensionalen Ausrichtung Gesuchter Λί-Vektor = Vektor mit den Elementen 011, 021,031 sowie 0,41
Zuwachs | = 1; base = 4; / = J = K = 7 (Dimension des Feldes). |
49 | Spcichcr-Matrix | l'io/essor Nr. | Spcicher-Zuwcisg. | Prozessor zugewiesener Inhalt |
Berechnung: | /' | /(/') | ||||
JK=TT= | 1;A = 1 | 051 | 0 | 2 | 011 | |
K = T | A = 7;«/= 7;(rrf) : =3 | 031 | 1 | 4 | 021 | |
i = OJ - | Speicher-Adresse | 011 | 2 | 1 | 031 | |
/· = 1; d = | Φ (II) | 041 | 3 | 3 | 041 | |
Speicher Nr. | 10 | 021 | - | - | - | |
ii | 6 | |||||
0 | 3 | |||||
I | 8 | |||||
2 | 4 | |||||
3 | ||||||
4 | ||||||
Die Schaltung für das konfliktlose Abspeichern und den konfliktlosen Zugriff auf die eben beschriebenen
dreidimensionale Matrix zeigt F i g. 9. Durch Vergleich mit der für den zweidimensionalen Fall in Fig.6
dargestellten Schaltung sieht man, daß nur vier Schaltungskomponenten der für den zweidimensionalen
Fall gültigen Schaltung hinzugerügt werden mußten, um das in Fig.9 dargestellte dreidimensionale System zu
erhalf n. Daher werden im folgenden nur die vier zulässigen Bauelemente erläutert.
Ein /-Register 83 speichert in binärer Form di( Anfangs-Z-Stelle des Anfangselementes eines Vektor:
M, auf den zugegriffen werden soll. Natürlich muß da: /-Register 83 inkrementierbar oder in anderer Weise s<
veränderbar sein, daß es auf die verschiedenei Anfangselemente-Stellen eingestellt werden kann. Eil
/K-Register 85 speichert den Wert der Größe /χ Κ de
dreidimensionalen Matrix. In dem obenerwähnte! Beispiel sind / und K gleich 7. Daher ist der in
JK- Register gespeicherte Wert in diesem Fall 49.
Die Ausgänge des /-Registers 83 und des /K-Registers
85 werden im Multiplizierer 87 summiert, der in Betrieb und Aufbau gleich dem Multiplizierer 45 ist Der
Ausgang des Multiplizierers 87 wird in einem Addierer
89 mit dem Ausgang des Addierers 53 verknüpft Der Addierer 89 isl: in Aufbau und Funktion den obenerwähnten Addierern 51,53 und 75 identisch.
Der restliche Teil der Schaltung für das Abspeichern einer dreidimensionalen Matrix gemäß der Erfindung ist
gleich der Schaltung für das zweidimensionale Abspeichern gemäß F i g. 6. Für eine dreidimensionale Matrix
wie für eine zweidimensionale Matrix sind also die Indizierzeichen T(p) und Φ(υ) durch Schaltungsbausteine und die Hinziufügung zweier Modulo-A/-Umsetzer 59
und 71 dargestellt, die aus der obenerwähnten Offenlegungsschrift 26 19 418 bekannt sind.
Bei Feldern höherer Dimension kann die zugehörige Schaltung gemiiß der gleichen logischen Progression
geschaffen werden wie bei der Erweiterung des zweidimensionalen Feldes zum dreidimensionalen Feld.
Ferner können höher dimensionale Felder durch bereits vorhandene Schaltungsbausteine realisiert werden,
vorausgesetzt, daß einige der Dimensionen konstant gehalten werden. Somit kann die an bevorzugten
Ausführungsbeispielen für zwei- und dreidimensionale Felder erläuterte Erfindung durch logische Progression
so erweitert werden, daß selbst höher dimensionale Felder behandelt werden können.
Natürlich ist die Erfindung auf die dargestellten Ausführungsbeispiele nicht beschränkt Beispielsweise
könnte der Ausgang des r-Registers 41 und des d-Registers 43 gemäß Fig.6 und 9 in einem
Modulo-Af-Lesespeicher summiert werden, ehe sie in
den Multiplizierer 49, den Lesespeicher 65 und den Multiplizierer 73 eingegeben werden. Ein derartiger
zusätzlicher Modulo-Af-Lesespeicher würde weitere Verarbeitung mit einer geringeren Anzahl von parallelen Bits erlauben. Diese Technik der abnehmenden
Anzahl paralleler Bits durch Verwendung Modulo-Ai-Lesespeicher kann an sich in jedem Anwendungsfall
verwirklicht werden. Ferner können verschiedene Permutationen der Multiplikation und Addition durch
geführt werden, wobei die gleichen Ergebnisse, nämlich
die Indizierzeichen 7J^>und Φ (i,j, k, i/Jerhalten werden.
erwünscht sein, das Ausricht-Netzwerk 15 in der Weise
zu duplizieren, daß zunächst ein erstes Ausricht-Netz
werk geschaffen wird, mit dem Matrixelemente aus der
Vielzahl von Speichern 17 in mehrere Prozessoren zur Verarbeitung herausgezogen werden (Zug-A'jsricht-Netzwerk) und ein zweites Ausricht-Netzwerk geschaffen wird, mit dem Matrix-Elemente aus der Mehrzahl
der Prozessoren zurück in die Mehrzahl der Speicher 17 geschoben werden (Schiebe-Ausricht-Netzwerk). Ein
derartiges Gegentakt-Ausricht-Netzwerk würde die Auslegung des Netzwerks wegen des in einer Richtung
erfolgenden Datenstroms erleichtern und würde allge
mein einen sehr gleichmäßigen, kreisförmigen Daten
strom ohne den Kostenaufwand für zusätzliche Schaltungsteile ermöglichen.
Insgesamt wurde eine Rechenspeicheranordnung für mehrdimensionalen parallelen Zugriff beschrieben, die
einen außerordentlich schnellen Zugriff auf Daten in einen mehrteiligen Rechenspeicher erleichtert. Die
Einrichtung ist besonders für Matrix-Berechnungen geeignet, bei denen Matrix-Elemente längs linearer
Matrix-Vektoren konfliktfrei in mehreren unabhängi
gen Speichern gespeichert und parallel mehreren
unabhängigen Prozessoren für schnelle Matrix-Manipulationen zugeordnet sind. Ein Ausricht-Netzwerk ist
zwischen die Mehrzahl der Speicher und die Mehrzahl der Prozessoren zwischengeschaltet und spricht auf die
Erzeugung von Speicher- und Adressenzeichen an und ordnet ein spezielles unter einer bestimmten Speicheradresse gespeichertes Matrixelement einem speziellen
Prozessor zur Verarbeitung zu.
Claims (8)
1. Datenverarbeitungsanlage für Datenelemente einer Matrix mit Speichermoduln der Anzahl M, mit
Prozessoren der Anzahl p, wobei p<M und ρ
teilerfremd zu M ist, mit einem zwischen die Speichermoduln und die Prozessormoduln geschalteten
Ausrichtnetzwerk, in welchem zur Behandlung von Vektoren zwischen den Speichermoduln und
Prozessormoduln parallele Übertragungswege für die gewünschten Datenelemente des jeweils angeforderten
Vektors ausgebildet sind, mit einer Steuereinrichtung, die an die Speichermoduln
Adressensignale Φ und an das Ausrichtnetz Ausrichtsignale T, die jeweils eine Verbindung zwischen
einem Prozessormodul und einem Speichermodul herstellen, abgibt, gekennzeichnet durch
ein erstes und zweites Register (31, 35) für die
Eingabe der Matrixindizes (j, k)des Anfangselementes
des Vektors; durch ein drittes Register zum Speichern der Anzahl der Matrixelemente, in dem
benachbarte Elemente längs eines Vektors beabstandet sind, durch ein viertes Register (43) zur
Eingabe eines die Richtung des Vektors in der Matrix kennzeichnenden Wertes, wobei d=\ für
einen in der Zeile liegenden Vektor, d= k für einen in der Spalte liegenden Vektor und d= k± η für schräg
nach vorwärts bzw. rückwärts liegende Vektoren gilt und wobei k die in einem fünften Register (33) jo
gespeicherte Länge der Zeile der Matrix ist, und durch eine Recheneinheit, welche aus den in den
ersten bis fünften Registern gespeicherten Werten eine Adresse Φ in Abhängigkeit von der Speichernummer
η und ein Ausrichtsignal (T) in Abhängig- J5 keit von der Prozessornummer erzeugt.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der Prozessoren eine
Potenz von 2 ist.
3. Einrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß mit jedem Prozessor (19) genau
ein Multiplexer (21) verbunden ist, der mit sämtlichen Speichermoduln und allen übrigen
Multiplexern gekoppelt ist.
4. Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung
einen Modulsignalgeber (53, 55, 57, 59, 61) zur Erzeugung mehrerer Modulsignale und einen
Adressensignalgeber (63, 69, 71, 75, 81) zur Erzeugung mehrerer Speicheradressensignale aufweist,
wobei je ein Modulsignal einem Prozessor zur Bezeichnung des mit diesem zum Datenaustausch zu
verbindenden Speichermoduls zugeordnet und jedem Speichermodul ein Speicheradressensignal
zugeordnet ist.
5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß der Modul-Signalgeber einen Multiplizierer
(45) aufweist, in welchem die Inhalte des ersten Registers (31) und des zweiten Registers (35)
multipliziert werden und dessen Ausgang dem to Eingang eines Addierwerks (51, 53) zugeführt ist, in
welchem zu dem Produkt der Inhalt des fünften Registers (33) sowie der Inhalt eines Basisregisters
(37) addiert werden; daß in einem zweiten Multiplizierer (47) die Inhalte eines sechsten, einen b5
inkrementell Zuwachs enthaltenden Registers (41) sowie des vierten Registers (43) multipliziert und das
Produkt einem dritten Multiplizierer (49) zugeführt wird, in dem zu dem Produkt der Inhalt eines
siebenten, die Prozessoranzahl ρ enthaltenden Registers (39) multipliziert wird; und daß in einem
weiteren Addierer (55) der Ausgang das Addierwerks (51,53) zum Ausgang des dritten Multiplizierers
(49) addiert und in einem Umsetzer (59) in die Zahl modulo der Anzahl der Speichermoduln (M)
umgesetzt wird.
6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß das Addierwerk einen weiteren Addierabschnitt (89) enthält, in welchem der Produktausgang des vierten Multiplizierers (87)
addiert wird, wobei in dem vierten Multiplizierer (87) das Produkt der Inhalte eines achten /K-Registers
(85) mit dem Inhalt eines neunten Registers ^/-Register 83) multipliziert wird.
7. Einrichtung nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, daß der Adressensignalgeber
einen an den Ausgang des zweiten Multiplizierers (47) angeschlossenen Kehrwertbilder (65)
aufweist; daß der Ausgang des Kehrwertbilders in einem vierten Multiplizierer (69) mit dem Ausgang
eines Subtrahierers (63) multipliziert wird; daß der Ausgang des Multiplizierers (69) einen zweiten
modulo-AMJmsetzer (71) umgesetzt, der Ausgang
des modulo-M-Umsetzers mit dem Ausgang des zweiten Multiplizierers (47) in einem fünften
Multiplizierer (73) verknüpft und einem dritten Addierer (75) zugeführt wird, welcher in einen
zweiten Eingang den Ausgang des Addierwerkes (51, 53) aufnimmt und die Summe beider Eingänge
einer Dividier-Schaltung (81) zuführt, wobei ein weiterer Eingang des Subtrahierers (63) den Inhalt
eines weiteren Registers (U-Register 29) aufnimmt.
8. Einrichtung nach einem der Ansprüche 5 — 7, dadurch gekennzeichnet, daß der Umsetzer (59, 71)
einen weiteren Addierer und einen weiteren Speicher aufweist, wobei ein Addierer zwei modulo-Λί-Eingänge
(M: die Anzahl der Speichermoduln) addiert, von denen jeder eine Binärzahl darstellt, die
kleiner als Mist und wobei eine der Binärzahlen der im Speicher umgesetzte Wert eines zweiten Teils
der ersten Binärzahl ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/682,526 US4051551A (en) | 1976-05-03 | 1976-05-03 | Multidimensional parallel access computer memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2718849A1 DE2718849A1 (de) | 1977-11-10 |
DE2718849C2 true DE2718849C2 (de) | 1981-10-29 |
Family
ID=24740091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2718849A Expired DE2718849C2 (de) | 1976-05-03 | 1977-04-28 | Datenverarbeitungsanlage für Datenelemente einer Matrix aus M Speichermoduln und mit p Prozessoren |
Country Status (4)
Country | Link |
---|---|
US (1) | US4051551A (de) |
JP (1) | JPS5927944B2 (de) |
DE (1) | DE2718849C2 (de) |
GB (1) | GB1547942A (de) |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4051551A (en) | 1976-05-03 | 1977-09-27 | Burroughs Corporation | Multidimensional parallel access computer memory system |
US4223391A (en) * | 1977-10-31 | 1980-09-16 | Burroughs Corporation | Parallel access alignment network with barrel switch implementation for d-ordered vector elements |
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4189767A (en) * | 1978-06-05 | 1980-02-19 | Bell Telephone Laboratories, Incorporated | Accessing arrangement for interleaved modular memories |
US4209839A (en) * | 1978-06-16 | 1980-06-24 | International Business Machines Corporation | Shared synchronous memory multiprocessing arrangement |
DE2843471C2 (de) * | 1978-10-05 | 1983-12-01 | Burroughs Corp., 48232 Detroit, Mich. | Ausrichtnetzwerk für parallelen Zugriff |
US4293910A (en) * | 1979-07-02 | 1981-10-06 | International Business Machines Corporation | Reconfigurable key-in-storage means for protecting interleaved main storage |
US4287566A (en) * | 1979-09-28 | 1981-09-01 | Culler-Harrison Inc. | Array processor with parallel operations per instruction |
US4365292A (en) * | 1979-11-26 | 1982-12-21 | Burroughs Corporation | Array processor architecture connection network |
US4412303A (en) * | 1979-11-26 | 1983-10-25 | Burroughs Corporation | Array processor architecture |
US4400768A (en) * | 1980-06-04 | 1983-08-23 | Burroughs Corporation | Parallel access computer memory system employing a power-of-two memory modules |
US4344134A (en) * | 1980-06-30 | 1982-08-10 | Burroughs Corporation | Partitionable parallel processor |
US4370732A (en) * | 1980-09-15 | 1983-01-25 | Ibm Corporation | Skewed matrix address generator |
US4449199A (en) * | 1980-11-12 | 1984-05-15 | Diasonics Cardio/Imaging, Inc. | Ultrasound scan conversion and memory system |
JPS57209570A (en) * | 1981-06-19 | 1982-12-22 | Fujitsu Ltd | Vector processing device |
JPS58128078A (ja) * | 1982-01-27 | 1983-07-30 | Dainippon Screen Mfg Co Ltd | メモリ装置の構成方法 |
JPS58146969A (ja) * | 1982-02-26 | 1983-09-01 | Toshiba Corp | インデツクス限定連続演算ベクトルプロセツサ |
GB2123998B (en) * | 1982-07-21 | 1986-10-22 | Marconi Avionics | Data memory arrangment |
WO1984000629A1 (en) * | 1982-07-21 | 1984-02-16 | Marconi Avionics | Multi-dimensional-access memory system |
JPS59146345A (ja) * | 1983-02-10 | 1984-08-22 | Masahiro Sowa | コントロ−ルフロ−並列計算機方式 |
FR2542875B1 (fr) * | 1983-03-18 | 1985-10-04 | Thomson Csf | Procede d'adressage de la memoire dans un transformateur numerique d'images |
US4630230A (en) * | 1983-04-25 | 1986-12-16 | Cray Research, Inc. | Solid state storage device |
US4736287A (en) * | 1983-06-20 | 1988-04-05 | Rational | Set association memory system |
US5204967A (en) * | 1984-05-29 | 1993-04-20 | Armstrong Philip N | Sorting system using cascaded modules with levels of memory cells among which levels data are displaced along ordered path indicated by pointers |
GB2165067B (en) * | 1984-09-26 | 1988-10-12 | Rational | Memory system |
US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
AU582632B2 (en) * | 1985-04-05 | 1989-04-06 | Raytheon Company | Method and apparatus for addressing a memory by array transformations |
US4783736A (en) * | 1985-07-22 | 1988-11-08 | Alliant Computer Systems Corporation | Digital computer with multisection cache |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
JPS62120574A (ja) * | 1985-11-20 | 1987-06-01 | Fujitsu Ltd | ベクトル処理装置 |
US5036453A (en) * | 1985-12-12 | 1991-07-30 | Texas Instruments Incorporated | Master/slave sequencing processor |
US4803617A (en) * | 1986-02-10 | 1989-02-07 | Eastman Kodak Company | Multi-processor using shared buses |
US4760525A (en) * | 1986-06-10 | 1988-07-26 | The United States Of America As Represented By The Secretary Of The Air Force | Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction |
DE3774369D1 (de) * | 1986-08-22 | 1991-12-12 | Fujitsu Ltd | Halbleiter-speicheranordnung. |
US4985832A (en) * | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5230079A (en) * | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
US5146606A (en) * | 1986-09-18 | 1992-09-08 | Digital Equipment Corporation | Systems for interconnecting and configuring plurality of memory elements by control of mode signals |
US5175865A (en) * | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
CA1289671C (en) * | 1986-10-28 | 1991-09-24 | Thinking Machines Corporation | Massively parallel processor |
US4811214A (en) * | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
EP0303696A1 (de) * | 1987-02-25 | 1989-02-22 | Digital Equipment Corporation | Parallelfeldverarbeitungssystem |
US4837678A (en) * | 1987-04-07 | 1989-06-06 | Culler Glen J | Instruction sequencer for parallel operation of functional units |
US5081575A (en) * | 1987-11-06 | 1992-01-14 | Oryx Corporation | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay |
US5276826A (en) * | 1988-01-04 | 1994-01-04 | Hewlett-Packard Company | Apparatus for transforming addresses to provide pseudo-random access to memory modules |
US5056000A (en) * | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
WO1990000287A1 (en) * | 1988-07-01 | 1990-01-11 | Morton Steven G | Intelligent floating-point memory |
US4989131A (en) * | 1988-07-26 | 1991-01-29 | International Business Machines Corporation | Technique for parallel synchronization |
EP0372185A3 (de) * | 1988-10-13 | 1990-11-07 | Pixar | Verfahren und Vorrichtung zum Speichern und Handhaben dreidimensionaler Datenfelder |
US5142638A (en) * | 1989-02-07 | 1992-08-25 | Cray Research, Inc. | Apparatus for sharing memory in a multiprocessor system |
DE68926043T2 (de) * | 1989-07-20 | 1996-08-22 | Toshiba Kawasaki Kk | Mehrprozessor-Computersystem |
US4951246A (en) * | 1989-08-08 | 1990-08-21 | Cray Research, Inc. | Nibble-mode dram solid state storage device |
US5121502A (en) * | 1989-12-20 | 1992-06-09 | Hewlett-Packard Company | System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing |
US5133073A (en) * | 1990-05-29 | 1992-07-21 | Wavetracer, Inc. | Processor array of N-dimensions which is physically reconfigurable into N-1 |
US5247637A (en) * | 1990-06-01 | 1993-09-21 | Cray Research, Inc. | Method and apparatus for sharing memory in a multiprocessor system |
JPH05509426A (ja) * | 1990-06-27 | 1993-12-22 | ルミニス ピーティーワイ リミテッド | 行列構造にアドレスするための整数論的割り当て発生回路 |
US5206952A (en) * | 1990-09-12 | 1993-04-27 | Cray Research, Inc. | Fault tolerant networking architecture |
US5247645A (en) * | 1991-03-12 | 1993-09-21 | International Business Machines Corporation | Dynamic memory mapper which supports interleaving across 2N +1, 2.sup.NN -1 number of banks for reducing contention during nonunit stride accesses |
US5359724A (en) * | 1992-03-30 | 1994-10-25 | Arbor Software Corporation | Method and apparatus for storing and retrieving multi-dimensional data in computer memory |
US5479624A (en) * | 1992-10-14 | 1995-12-26 | Lee Research, Inc. | High-performance interleaved memory system comprising a prime number of memory modules |
US5898882A (en) * | 1993-01-08 | 1999-04-27 | International Business Machines Corporation | Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage |
US5404464A (en) * | 1993-02-11 | 1995-04-04 | Ast Research, Inc. | Bus control system and method that selectively generate an early address strobe |
US5481743A (en) * | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
US5913070A (en) * | 1996-01-16 | 1999-06-15 | Tm Patents, L.P. | Inter-connector for use with a partitionable massively parallel processing system |
DE19643688C2 (de) * | 1996-10-23 | 2001-01-25 | Johannes Kneip | Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume |
JP2001134539A (ja) | 1999-11-01 | 2001-05-18 | Sony Computer Entertainment Inc | 面計算機及び面計算機における演算処理方法 |
US20050065263A1 (en) * | 2003-09-22 | 2005-03-24 | Chung James Y.J. | Polycarbonate composition |
JP2007522576A (ja) * | 2004-02-12 | 2007-08-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Io接続部を備えるデジタル信号処理集積回路 |
US7581079B2 (en) * | 2005-03-28 | 2009-08-25 | Gerald George Pechanek | Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions |
GB2496396B (en) * | 2011-11-09 | 2014-07-30 | Imagination Tech Ltd | Memory access for digital signal processing |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3274561A (en) * | 1962-11-30 | 1966-09-20 | Burroughs Corp | Data processor input/output control system |
US3349375A (en) * | 1963-11-07 | 1967-10-24 | Ibm | Associative logic for highly parallel computer and data processing systems |
US3537074A (en) * | 1967-12-20 | 1970-10-27 | Burroughs Corp | Parallel operating array computer |
US3535694A (en) * | 1968-01-15 | 1970-10-20 | Ibm | Information transposing system |
GB1394431A (en) * | 1971-06-24 | 1975-05-14 | Plessey Co Ltd | Multiprocessor data processing system |
US3980874A (en) * | 1975-05-09 | 1976-09-14 | Burroughs Corporation | Binary to modulo M translation |
US4051551A (en) | 1976-05-03 | 1977-09-27 | Burroughs Corporation | Multidimensional parallel access computer memory system |
-
1976
- 1976-05-03 US US05/682,526 patent/US4051551A/en not_active Expired - Lifetime
-
1977
- 1977-04-04 GB GB14071/77A patent/GB1547942A/en not_active Expired
- 1977-04-19 JP JP52045619A patent/JPS5927944B2/ja not_active Expired
- 1977-04-28 DE DE2718849A patent/DE2718849C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US4051551A (en) | 1977-09-27 |
JPS52133729A (en) | 1977-11-09 |
JPS5927944B2 (ja) | 1984-07-09 |
DE2718849A1 (de) | 1977-11-10 |
GB1547942A (en) | 1979-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2718849C2 (de) | Datenverarbeitungsanlage für Datenelemente einer Matrix aus M Speichermoduln und mit p Prozessoren | |
DE2819571C2 (de) | ||
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE2455803C2 (de) | Mehrprozessor-Datenverarbeitungsanlage | |
DE3132225C2 (de) | Einrichtung für die Adressierung gespeicherter Ergebniswerte bei einer schnellen Hadamard-Transformation | |
DE1914560C3 (de) | Schaltungsanordnung zur Verschiebung eines Datenwortes innerhalb eines Rechenelementen-Feldes | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE2230103A1 (de) | Adressiereinrichtung fuer einen speicher | |
DE1774052B1 (de) | Rechner | |
DE2913327A1 (de) | Multiplizierer fuer binaerdatenwoerter | |
DE3632639A1 (de) | Einrichtung zum verarbeiten von bilddaten durch faltung | |
DE2758829A1 (de) | Multiprozessor-datenverarbeitungssystem | |
DE2364253A1 (de) | Schaltungsanordnung fuer mikroprogrammierte geraete der datenverarbeitung | |
DE2532125A1 (de) | Modularbaustein fuer datenverarbeitungsanlagen | |
DE2625113C2 (de) | Speicherschutzeinrichtung | |
DE3507584C2 (de) | ||
DE3811145C2 (de) | ||
DE4215094A1 (de) | Bildverarbeitungsverfahren und -vorrichtung | |
DE2612665A1 (de) | Konvolutionsfunktionsgenerator und dessen anwendung in digitalfiltern | |
EP0090298A1 (de) | In MOS-Technik integrierter schneller Multiplizierer | |
DE3000012A1 (de) | Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage | |
EP0598112A1 (de) | Verfahren und anordnung zum bilden der summe einer kette von produkten | |
EP0254824A2 (de) | Verfahren zur zweidimensionalen diskreten Cosinus-Transformation | |
DE3026225C2 (de) | Datensichtgerät | |
DE1474024B2 (de) | Anordnung zur willkuerlichen umordnung von zeichen innerhalb eines informationswortes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
D2 | Grant after examination | ||
8328 | Change in the person/name/address of the agent |
Free format text: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING., PAT.-ANW., 2800 BREMEN |
|
8339 | Ceased/non-payment of the annual fee |