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 Prozessoren

Info

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
Application number
DE2718849A
Other languages
English (en)
Other versions
DE2718849A1 (de
Inventor
Duncan Harries Champaign Ill. Lawrie
Chandrakant Ratilal Audubon Pa. Vora
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE2718849A1 publication Critical patent/DE2718849A1/de
Application granted granted Critical
Publication of DE2718849C2 publication Critical patent/DE2718849C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
ι ο 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.
Beispiel 1
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
.-.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
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.
Beispiel 2
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
je = [rd(rd){ u-(rd)-} (j,K+k+base)\5
= [1-H-I-25I5 = M5
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.
Ferner kann es in gewissen Anwendungsfällen
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.
Hierzu 5 Blatt Zeichnungen

Claims (8)

Patentansprüche:
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.
DE2718849A 1976-05-03 1977-04-28 Datenverarbeitungsanlage für Datenelemente einer Matrix aus M Speichermoduln und mit p Prozessoren Expired DE2718849C2 (de)

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)

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

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

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