Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH037977B2 - - Google Patents
[go: Go Back, main page]

JPH037977B2 - - Google Patents

Info

Publication number
JPH037977B2
JPH037977B2 JP59157159A JP15715984A JPH037977B2 JP H037977 B2 JPH037977 B2 JP H037977B2 JP 59157159 A JP59157159 A JP 59157159A JP 15715984 A JP15715984 A JP 15715984A JP H037977 B2 JPH037977 B2 JP H037977B2
Authority
JP
Japan
Prior art keywords
vector
data
sent
permutation
transfer line
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
JP59157159A
Other languages
Japanese (ja)
Other versions
JPS6136866A (en
Inventor
Takenori Makino
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP15715984A priority Critical patent/JPS6136866A/en
Publication of JPS6136866A publication Critical patent/JPS6136866A/en
Publication of JPH037977B2 publication Critical patent/JPH037977B2/ja
Granted legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、大規模な数値計算を支援するための
高性能な外部メモリ装置の方式に係る。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a high-performance external memory device system for supporting large-scale numerical calculations.

(従来技術とその問題点) いわゆるスーパーコンピユータでは、大規模な
数値計算をサポートするために高速の外部メモリ
が提供されている。
(Prior art and its problems) So-called supercomputers are provided with high-speed external memory to support large-scale numerical calculations.

提供されている外部メモリのアーキテクチヤ
は、通常、デイスクデパイスと同様、ブロツクラ
ンダムアクセスを採用している。ブロツクランダ
ムアクセスとは、例えばベクトル{vi}は、ブロ
ツクに分けられ、v0v1…vo-1,vo,vo+1…v2o-1
v2o…というように長さnのブロツクとして、外
部メモリに格納される。このアーキテクチヤの採
用は、従来のプログラムの書き換えやオペレーシ
ヨンシステムの大幅な変更を避けることを目的と
している。
The external memory architectures provided typically employ block random access, similar to disk devices. Block random access means that, for example, a vector {v i } is divided into blocks, v 0 v 1 ...v o-1 , v o , v o+1 ...v 2o-1 ,
It is stored in external memory as a block of length n, such as v 2o . The purpose of adopting this architecture is to avoid rewriting existing programs or making major changes to the operating system.

しかし、ブロツクランダムアーキテクチヤは、
数値計算では、不適なケースがある。例えば、2
次元アレイ{Aij}を考えよう。このアレイが
A00A01…A0o-1,A0o…,A10A11…というように
(i,j)の順でブロツクに分けられ、格納され
ているとする。いま{Aij|∈〔0,m〕}i、す
なわち、iを固定し、jだけ0,1,2…と変え
て得られるベクトルAi0,Ai1,…Aio-1,Aio…を
入出力する場合、ブロツク単位に転送すること
で、効率の良い入力、出力を行うことができる。
しかし、一方、{Aij|i∈〔0,m〕}jで表わ
されるベクトルA0j,A1j,A2j…については、そ
れぞれの要素を入出力する場合、それぞれ別のブ
ロツクを参照する必要があり、長さmのベクトル
の入力または出力にともなつて、最悪で、mブロ
ツクの入力または出力を必要とする。このような
アクセスパターンは、例えば、偏微分方程式の差
分解法の1つである陰解法では、異つた軸による
スキヤンが必要なため、必然的に存在する。その
他にも多次元FFTや行列の積にも現われる。す
なわち、数値計算では、このようなアクセスパタ
ーンは、ごく普通に現われると考えてよい。した
がつて、ブロツクランダムアクセスの外部メモリ
を、効率良く使用するには、プログラムを工夫す
る努力が必要で、また、そうした努力によつても
高い性能を引き出せないことがある。
However, block random architecture
There are cases where numerical calculations are inappropriate. For example, 2
Consider a dimensional array {A ij }. This array
It is assumed that the blocks are divided and stored in the order of (i, j), such as A 00 A 01 . . . A 0o -1 , A 0o . . . , A 10 A 11 . Now {A ij |∈[0,m]}i, that is, the vectors A i0 , A i1 , ...A io-1 , A io ... obtained by fixing i and changing only j to 0, 1, 2, etc. When inputting and outputting data, efficient input and output can be achieved by transferring it in blocks.
However, on the other hand, for the vectors A 0j , A 1j , A 2j . With input or output of a vector of length m, in the worst case, m blocks of input or output are required. Such an access pattern necessarily exists because, for example, in the implicit method, which is one of the differential resolution methods for partial differential equations, scans using different axes are required. It also appears in multidimensional FFT and matrix multiplication. In other words, it can be considered that such an access pattern appears quite commonly in numerical calculations. Therefore, in order to efficiently use block random access external memory, it is necessary to make efforts to devise programs, and even with such efforts, high performance may not be obtained.

もう一つの問題は、プラズマ粒子コードのよう
にランダムな現象を計算しようとするとき、デー
タの構造として、ランダムな値を扱う場合が生ず
る。一般には、リストベクトル(間接アドレス)
が必要となる。この場合、通常ベクトルプロセツ
サはうまく動作しない。このため、データ集合を
値によつてソートすることが試みられる。計算シ
ステムを使つて、ソートすることも可能だが、一
般に負担はかなり大きくなり、I/Oを多発し、
実行速度の向上は期待できない。このため、外部
メモリ中でソートしてしまうことが望ましい。
Another problem is that when attempting to calculate random phenomena such as plasma particle codes, random values may be handled as a data structure. In general, list vector (indirect address)
Is required. Vector processors usually do not work well in this case. For this reason, an attempt is made to sort the data set by value. It is possible to sort using a calculation system, but it generally requires a considerable burden and requires a lot of I/O.
No improvement in execution speed can be expected. For this reason, it is desirable to sort them in external memory.

(発明の目的) 本発明の目的は、高性能でかつ柔軟なアクセス
が可能で、さらにランダムシミユレーシヨンのサ
ポートも可能な外部メモリ装置を提供することに
ある。
(Object of the Invention) An object of the present invention is to provide an external memory device that has high performance, allows flexible access, and can also support random simulation.

(発明の構成) 本発明によれば、計算システムからの指令にも
とずきデータの転送を行なう外部メモリであつて
素数個のメモリモジユールと、前記計算システム
からのベクトルデータを保持する入力バツフア
と、前記計算システムへのベクトルデータを保持
する出力バツフアと、前記入力バツフアからのベ
クトルデータを置換し前記メモリモジユールへ送
る逆線形置換手段と、前記メモリモジユールから
のベクトルデータを置換し前記出力バツフアへ送
る線形置換手段と、前記出力バツフアと前記入力
バツフアの間にあつて並列ソートの一部を実行す
る並列ソート手段と、前記計算システムからの指
令を解釈し前記メモリモジユールに対し読み出し
書き込み指令やアドレスの生成や前記第1および
第2の置換指令の生成や前記並列ソート手段を制
御する制御部とから構成されることを特徴とする
メモリ装置が得られる。
(Structure of the Invention) According to the present invention, an external memory that transfers data based on instructions from a computing system includes a prime number of memory modules, and an input that holds vector data from the computing system. a buffer, an output buffer for holding vector data to the computing system, inverse linear permutation means for replacing vector data from the input buffer and sending it to the memory module, and replacing the vector data from the memory module. linear permutation means for sending to the output buffer; parallel sorting means for performing a part of parallel sorting between the output buffer and the input buffer; A memory device is obtained, comprising a control unit that generates read/write commands and addresses, generates the first and second replacement commands, and controls the parallel sorting means.

(発明の原理) つぎに、本発明の原理について説明する。ま
ず、2次元アレイ{Aij}を考える。このアレイ
の要素へのアクセスは、計算アルゴリズムに依存
するが、代表的なアクセスは、列方向か行方向、
あるいは対角方向が想定される。簡単のため、こ
のアレイのサイズをA(4,4)とする。メモリ
には次のように格納されているとする。
(Principle of the invention) Next, the principle of the invention will be explained. First, consider a two-dimensional array {A ij }. Access to the elements of this array depends on the computational algorithm, but typical access is column-wise or row-wise.
Alternatively, a diagonal direction is assumed. For simplicity, the size of this array is assumed to be A(4,4). Assume that the following is stored in memory:

A00 A01 A02 A03 A10 A11 A12 A13 A20 A21 A22 A23 A30 A31 A32 A33 このアレイの列方向のデータ要素は隣り合つて
格納されている。この場合を1−順序ベクトル形
式、または簡単に順序ベクトルと呼ぶ。一方行方
向のデータ要素A00,A10,A20,A30やA01,A11
A21,A31といつたベクトルは、4要素はなれた
要素に対するアクセスとなる。また、対向要素
A00,A11,A22,A33は、5要素はなれた要素に
対するアクセスとなる。それらを各々4−順序ベ
クトル、5−順序ペクトルに対するアクセスと呼
ぶ。
A 00 A 01 A 02 A 03 A 10 A 11 A 12 A 13 A 20 A 21 A 22 A 23 A 30 A 31 A 32 A 33The data elements in the column direction of this array are stored next to each other. This case is called a 1-ordered vector format, or simply an ordered vector. One row direction data elements A 00 , A 10 , A 20 , A 30 , A 01 , A 11 ,
Vectors such as A 21 and A 31 access elements separated by four elements. Also, the opposing element
A 00 , A 11 , A 22 , and A 33 are accesses to elements five elements apart. These are called accesses to a 4-ordered vector and a 5-ordered vector, respectively.

3次元データアレイについても同様、A(n1
n2,n3)について、(ここでn1,n2,n3はサイズ
を表わす)AijkのKを0,1,2,…と変えて得
られるベクトルは順序ベクトルであり、jを変え
て得られるベクトルはn3−順序ベクトル、iを変
えて得られるベクトルは、n2・n3−順序ベクトル
である。
Similarly, for the three-dimensional data array, A(n 1 ,
n 2 , n 3 ) (where n 1 , n 2 , n 3 represent the size), the vector obtained by changing K of A ijk to 0, 1, 2, ... is an ordinal vector, and if j is The vector obtained by changing i is an n 3 -ordered vector, and the vector obtained by changing i is an n 2 ·n 3 -ordered vector.

一般的には、外部メモリから計算システムへの
データの転送はn−順序ベクトルを順序ベクトル
に置換し転送することであり、外部メモリへの書
き込みは、順序ベクトルをn−順序ベクトルに置
換し、転送することに対応する。もう少し具体的
に説明するため、線形置換Ldを次のように定義
する。
Generally, data is transferred from an external memory to a computing system by replacing an n-ordered vector with an ordered vector, and writing to an external memory is performed by replacing an ordinal vector with an n-ordered vector. Corresponds to transfer. To explain more specifically, linear permutation L d is defined as follows.

Ld:b+d・i→i (modM), また、その逆置換L-1 dは L-1 d:i→b+d・i (modM), ここで、bとdは定数であり、dはd−順序ベ
クトルに対応する定数である。
L d :b+d・i→i (modM), and its inverse substitution L -1 d is L -1 d :i→b+d・i (modM), where b and d are constants, and d is d - is a constant corresponding to an ordinal vector.

bとdはつぎのように与えられる。あるプログ
ラムを例として考える。以下の例で、添字i1,i2
i3は0から始まり、各々n1−1,n2−1,n3−1
で終るものとする。
b and d are given as follows. Consider a program as an example. In the example below, the subscripts i 1 , i 2 ,
i 3 starts from 0, n 1 -1, n 2 -1, n 3 -1 respectively
It shall end with

ここで、i1,i2,i3は定数であり、kはindex変
数である。アレイAがアドレスaから格納されて
いるとすると、A(i1,i2,k)はa+n2n3i1
n3i2+k、すなわちb=a+n2−n3・i1+n3・i2
あり、d=1である。同様にA(i1,k,i3)につ
いてはb=a+n2・n3・i1+i3,d=n3である。
Here, i 1 , i 2 , i 3 are constants, and k is an index variable. If array A is stored starting from address a, then A(i 1 , i 2 , k) is a+n 2 n 3 i 1 +
n 3 i 2 +k, that is, b=a+n 2 −n 3 ·i 1 +n 3 ·i 2 , and d=1. Similarly, for A(i 1 , k, i 3 ), b=a+n 2 ·n 3 ·i 1 +i 3 and d=n 3 .

つぎに、メモリへの格納を説明する。高速の転
送を行うには、並列処理が本質的であり、メモリ
は複数のメモリモジユールに分けられる。アレイ
データはメモリモジユールに沿つてベクトルとし
て格納される。例えば、Aijは、メモリモジユー
ル0にA11,1にA12,2にA13,…というように
格納される。
Next, storage in memory will be explained. Parallel processing is essential for high-speed transfer, and memory is divided into multiple memory modules. Array data is stored as vectors along the memory module. For example, A ij is stored in memory module 0 as A 11 , memory module 1 as A 12 , memory module 2 as A 13 , and so on.

メモリモジユールがM個あるとすると、アドレ
スAddのモジユール番号、モジユール内アドレス
は、それぞれ、 Add mod M,〔Add/M〕 である。
Assuming that there are M memory modules, the module number and address within the module of the address Add are Add mod M and [Add/M], respectively.

また、転送すべきベクトル要素のアドレスは、
第i番目のアドレスについて書けば、b+d・i
であり、モジユール番号、モジユール内アドレス
はそれぞれ、 (b+d・i)modM,〔b+d−i)/M〕 と表わされる。ここで〔x〕はxより小さくかつ
最大の整数を表わす。
Also, the address of the vector element to be transferred is
If we write about the i-th address, then b+d・i
The module number and address within the module are respectively expressed as (b+d·i) modM and [b+d−i)/M]. Here, [x] represents the largest integer smaller than x.

ここで、=b(modM),=d(modM)と
すれば第i番目のモジユール番号は (+・i)modM と表わすことができる(整数論より既知)。
Here, if =b(modM) and =d(modM), the i-th module number can be expressed as (+·i)modM (known from number theory).

線形置換は (+・i)→i(modM) であり、この置換は、(,M)=1、すなわち、
bとMが互いに素であるとき、競合なしに行われ
る。したがつて、Mは素数から選ばれることが望
ましいが、競合を解決する手段を用いれば、素数
に限定することもない。
The linear permutation is (+・i)→i(modM), and this permutation is (,M)=1, that is,
This is done without contention when b and M are relatively prime. Therefore, although it is desirable that M be selected from prime numbers, it is not limited to prime numbers if a means for resolving conflicts is used.

線形置換はつぎのように実行される。まずに
対応し、−順序ベクトルを順序ベクトルに変換
し、つぎにに対応し、得られた順序ベクトルを
回転置換する。この置換を例で説明する。いま、
メモリモジユールが5つあるとし、アレイAのサ
イズが8×8であるとしアドレス0から格納され
ているとする。A(1,2),A(2,2),A(3,
2),A(4,2)というベクトルはb=(A(1,
2)のアドレス)とし、d=8とすることで要素
のアドレスが得られる。A(1,2)のアドレス
は10であり、=10mod5=0,=8mod5=3
である。各要素のアドレスはA(1,2),A(2,
2)の順で 10,18,26,34 であり、それぞれ、メモリモジユール0,3,
1,4に入つている。
The linear permutation is performed as follows. First, correspond to convert the -ordinal vector into an ordinal vector, then correspond to and rotate and permute the obtained ordinal vector. This replacement will be explained with an example. now,
Assume that there are five memory modules, that the size of array A is 8×8, and that array A is stored starting from address 0. A(1,2), A(2,2), A(3,
2), A(4,2) is b=(A(1,
2), and by setting d=8, the address of the element can be obtained. The address of A(1,2) is 10, =10mod5=0,=8mod5=3
It is. The address of each element is A(1,2), A(2,
2) are 10, 18, 26, and 34 in the order of memory modules 0, 3, and 34, respectively.
It's in 1 and 4.

各モジユールから読み出されたベクトルはA
(1,2),A(3,2),−,A(2,2),A(4

2)の順であり、 0,3,1,4 0 1 2 3 の置換が行なわれなければならない。このため、
b=0すなわち、回転置換を0ポジシヨン行な
う。得られるベクトルは A(1,2),A(3,2),−,A(2,2),A
(4,2) である。このベクトル要素を3要素飛びに集める
と A(1,2),A(2,2),A(3,2),A(4

2),−, となり、順序ベクトルが得られる。この置換をス
キツプ置換という。
The vector read from each module is A
(1,2), A(3,2), -, A(2,2), A(4

2), and the following substitutions must be made: 0, 3, 1, 4 0 1 2 3. For this reason,
b=0, that is, rotational replacement is performed at 0 position. The resulting vectors are A(1,2), A(3,2), -, A(2,2), A
(4,2). If we collect these vector elements in 3-element intervals, we get A(1,2), A(2,2), A(3,2), A(4

2), −, and an ordered vector is obtained. This replacement is called skip replacement.

このように、回転置換と、スキツプ置換を組み
合せることで線形置換を実現できる。
In this way, linear permutation can be realized by combining rotation permutation and skip permutation.

一方逆置換L-1 dは、以上述べた線形置換の逆置
換であり、まず、スキツプ置換を行い、ついて回
転置換を行うことで達成される。この場合のスキ
ツプ置換、回転置換に与えれるパラメータb′,
d′は b′=M−b(modM) d′・d=1(modM) から得られる。
On the other hand, the inverse permutation L -1 d is an inverse permutation of the linear permutation described above, and is achieved by first performing a skip permutation and then performing a rotation permutation. Parameter b′ given to skip permutation and rotation permutation in this case,
d' is obtained from b'=M-b(modM) d'・d=1(modM).

以上のようにして線形置換が行われる。この線
形置換を使用して、指定されたデータの集合を値
によりソートする方法をつぎに述べる。このソー
トは並列ソートであり、基本的にはBatcher′s
sortアルゴリズムをベースにしている。
Linear replacement is performed as described above. A method for sorting a specified set of data by value using this linear permutation will be described below. This sort is a parallel sort, basically Batcher′s
It is based on the sort algorithm.

Batcher′s sortアルゴリズムはBitonic sortで
あり、長さnのbitonicから長さ2nのbitonic列を
作成していく方法である。ソートの手間は要素数
をNとするとN log2Nかかり、heap sortとく
らべて手間は大きいが、処理が簡単なことと、並
列処理が可能な点で有利である。
Batcher's sort algorithm is Bitonic sort, which is a method of creating a bitonic sequence of length 2n from bitonics of length n. Sorting requires N log 2 N, where N is the number of elements, and is more time-consuming than heap sort, but it is advantageous in that processing is simple and parallel processing is possible.

はじめにbitonic sortの処理手順について説明
し、つぎに線形置換によるbitonic sortのサポー
トについて説明する。
First, we will explain the processing procedure of bitonic sort, and then we will explain how bitonic sort is supported by linear permutation.

長さ2nのbitonic列は次のように表わされる a1a2…aoao+1…a2o において {in ならば ai-1<ai i>n ならば ai-1>ai} である。 A bitonic sequence of length 2n is expressed as follows a 1 a 2 …a o a o+1 …a 2o If {in then a i-1 <a i i> n then a i-1 > a i }.

このソートは(log2n+1)段のシヤツフル交
換と比較によつて達成される。第4図は、n=4
の場合についての説明図である。図に示すように
シヤツフル交換は各段とも同じスキームであり、
シヤツフル交換により選ばれたデータのペアが互
いに比較され大小関係により、小さい方を左へ、
大きい方を右へ出力する。
This sorting is accomplished by (log 2 n+1) stages of shuffle exchange and comparison. In Figure 4, n=4
It is an explanatory diagram about the case. As shown in the figure, the shuffle replacement scheme is the same for each stage.
The pairs of data selected by the shuffle exchange are compared with each other, and based on the size relationship, the smaller one is moved to the left.
Output the larger one to the right.

このシヤツフル交換はそれぞれ左から順に比較
の番号C0,C1,C2,C3とすると、Ciについて
(i,n+i)のペアを作る。したがつて、長さ
2nのbitonic列をソートするには、まずベクトル
要素iをiに、ベクトル要素(n+i)をiに送
り、そのペアについてそれぞれ比較することで行
われる。
This shuffle exchange creates a pair (i, n+i) for C i , assuming that the comparison numbers are C 0 , C 1 , C 2 , and C 3 in order from the left. Therefore, the length
To sort 2n bitonic columns, first, vector element i is sent to i, vector element (n+i) is sent to i, and the pairs are compared.

線形置換を行なえば以上のペアは容易に得るこ
とができる(回転置換のみで実行できる)。
The above pairs can be easily obtained by performing linear permutation (this can be done only by rotational permutation).

以上に説明したように線形置換を用いることで
数値計算で現われる大規模なアレイを柔軟にアク
セスでき、また並列ソートを導入し、線形置換に
よりサポートすることでランダムシミユレーシヨ
ンを効果的に実行できるような外部メモリ装置が
可能となる。
As explained above, by using linear permutation, we can flexibly access large arrays that appear in numerical calculations, and by introducing parallel sorting and supporting it with linear permutation, we can effectively perform random simulations. External memory devices such as those that can be used become possible.

(実施例) つぎに図面を参照して本発明を詳細に説明す
る。第1図は本発明の一実施例を示す、システム
構成図である。計算システム1(図示せず)は、
外部メモリ装置2に、転送線18を介して指令
を、転送バス131〜13n,711〜71nを介し
てベクトルデータの入出力を行う。計算システム
1は次の形式のコマンド(指令)を制御プロセツ
サ8に送る。
(Example) Next, the present invention will be described in detail with reference to the drawings. FIG. 1 is a system configuration diagram showing an embodiment of the present invention. The calculation system 1 (not shown) is
Commands are input and output to the external memory device 2 via the transfer line 18, and vector data is input and output via the transfer buses 13 1 to 13 n and 71 1 to 71 n . Computing system 1 sends commands of the following format to control processor 8.

command(b,d,n) ここでcommandはreadかwriteであり、bは
ベクトルのベースアドレス、dはスキツプ距離、
nは転送すべきベクトル長である。
command (b, d, n) where command is read or write, b is the vector base address, d is the skip distance,
n is the vector length to be transferred.

まず、ベクトルデータの書き込みについて説明
する。転送線18を介してwrite(b,d,n)の
コマンドが制御プロセツサ8に送られる。制御プ
ロセツサ8は(b,d)にもとづいて、前述の
b′,d′を計算する。(この計算は原理の説明で説
明した)。計算されたb′,d′は転送線84を介し
て、逆線形置換手段4に送られ、入力バツフア3
とメモリモジユール51〜5nの間のデータの転送
パスが確立される。また、制御プロセツサ8は
〔(b+d・i)/M〕の計算を行い、各モジユー
ル内アドレスを計算し、計算されたアドレスは転
送線83と介して、入力バツフア3に送られ、転
送線341〜34o、逆線形置換手段4、転送線4
1〜45nをへてメモリモジユール51〜5nに送
られる。制御プロセツサ8はメモリモジユール5
〜5nにwrite指定を転送線85を介して送る。
これでアドレスの設定がされる。つぎに計算シス
テム1から送られてきたベクトルデータを入力バ
ツフアに取り込み、転送線341〜34n、逆線形
置換手段4、転送線451〜45nを介してメモリ
モジユール51〜5nに送られ書き込まれる。ベク
トル長nは、書き込みべきベクトルの範囲を示す
もので、入力バツフア3において、この情報によ
り、マスクビツトが生成され、不正な書き込みを
防止する(図示していない)。
First, writing of vector data will be explained. A write (b, d, n) command is sent to the control processor 8 via the transfer line 18. The control processor 8 performs the above-mentioned processing based on (b, d).
Calculate b′ and d′. (This calculation was explained in the explanation of the principle). The calculated b' and d' are sent to the inverse linear substitution means 4 via the transfer line 84, and input to the input buffer 3.
A data transfer path is established between the memory modules 5 1 to 5 n and the memory modules 5 1 to 5 n . Further, the control processor 8 calculates [(b+d・i)/M], calculates the address within each module, and the calculated address is sent to the input buffer 3 via the transfer line 83 and transferred to the transfer line 34. 1 to 34 o , inverse linear replacement means 4, transfer line 4
5 1 to 45 n to memory modules 5 1 to 5 n . Control processor 8 is memory module 5
A write designation is sent to 1 to 5 n via the transfer line 85.
The address is now set. Next, the vector data sent from the calculation system 1 is taken into the input buffer and sent to the memory modules 5 1 - 5 n via the transfer lines 34 1 - 34 n , the inverse linear substitution means 4, and the transfer lines 45 1 - 45 n . sent to and written to. The vector length n indicates the range of vectors to be written, and in the input buffer 3, mask bits are generated based on this information to prevent unauthorized writing (not shown).

つぎに読み出しについて説明する。計算システ
ム1からはread(b,d,n)のコマンドが送ら
れてくる。制御プロセツサ8は書き込みと同様に
して、各メモリモジユール51〜5nにアドレスを
生成し送る。そして転送線85を介して各メモリ
モジユール51〜5nに読み出し指令を送り、ベク
トルデータとして、読み出されたデータと転送線
561〜56nを介して線形置換手段6に送る。こ
の前に制御プロセツサ8は転送線86を介し、第
1の置換手段6に(b,d)から(,)を生
成し、転送バスを確立している。第1の置換手段
6によりデータベクトルの置換が行われ、転送線
671〜67nを介して出力バツフア7にデータは
送られる。ベクトル長nは、有効なベクトルの範
囲を示すために用いられる(図示せず)。出力バ
ツフア7の内容は転送バス71を介し、計算シス
テムに送られる。
Next, reading will be explained. A read (b, d, n) command is sent from the computing system 1. The control processor 8 generates and sends addresses to each memory module 5 1 to 5 n in the same manner as in writing. Then, a read command is sent to each of the memory modules 5 1 to 5 n via the transfer line 85, and the read data and the read data are sent as vector data to the linear replacement means 6 via the transfer lines 56 1 to 56 n . Before this, the control processor 8 generates (,) from (b, d) to the first replacement means 6 via the transfer line 86, thereby establishing a transfer bus. The data vector is replaced by the first replacing means 6, and the data is sent to the output buffer 7 via the transfer lines 67 1 to 67 n . Vector length n is used to indicate the range of valid vectors (not shown). The contents of the output buffer 7 are sent to the computing system via a transfer bus 71.

以上のように計算システムと外部メモリの間で
データの交換が行われる。
As described above, data is exchanged between the computing system and the external memory.

つぎに、第2図に線形置換手段の構成例をブロ
ツク図で示す。回転置換手段61は転送線86を
介して送られてくる(,)のうち、に対応
して、ポジシヨン回転置換を実行するものでシ
フトレジスタにより実現される。出力は、転送線
11〜61nを介してスキツプ置換手段62に送ら
れる。スキツプ置換手段62は(,)のうち、
dに対応して、−飛びのスキツプ置換を行う。
このスキツプ置換は、Swanson,R.C.
(“Interconnections for Parallel Memories to
Unscramble p−ordered Vectors,”IEEE,
Trans on Comput.,Vol.C−23,NO.11,
pp1105〜1115(1974))に述べられているk−
apart interconnection(k−飛び相互結合)によ
り容易に実現できる。
Next, FIG. 2 shows a block diagram of an example of the configuration of the linear replacement means. The rotation permutation means 61 executes b -position rotation permutation corresponding to (,) sent through the transfer line 86, and is realized by a shift register. The outputs are sent to the skip replacement means 62 via transfer lines 611 to 61n . Skip replacement means 6 2 is (,),
Corresponding to d, - skip substitution is performed.
This skip substitution is based on Swanson, R.C.
(“Interconnections for Parallel Memories to
Unscramble p-ordered Vectors,” IEEE,
Trans on Comput., Vol.C−23, No.11,
pp1105-1115 (1974))
This can be easily realized by apart interconnection (k-interconnection).

一方、ソートの指令は、計算システム1から次
の形式で行われる。
On the other hand, a sort command is issued from the calculation system 1 in the following format.

sort(a,n) aはソートすべきデータベクトルのスタートア
ドレス、nは要素数である。いまデータベクトル
が長さnのbitonic列であるとする。制御プロセ
ツサ8は、並列ソート91〜9nへのパス791
79nを開き、ソートの準備を行う。
sort(a,n) a is the start address of the data vector to be sorted, and n is the number of elements. Assume that the data vector is a bitonic sequence of length n. The control processor 8 connects paths 79 1 to 9 n to parallel sorts 9 1 to 9 n.
79 Open n and prepare for sorting.

bitonic sortでは発明の原理の項で説明したよ
うにペア(i,n+i)を比較器91〜9nに送る
必要があり、このためまず要素iを比較器91
nに送る。線形置換6には(,)が送られ
るが、ここで=i+a(modM),=1であ
る。メモリモジユールから読み出された長さmの
データベクトルは読み出し時と同様に出力バツフ
ア7に送られ、転送線791〜79nを介して比較
器91〜9nに送られる。つぎに制御プロセツサ8
は、線形置換手段6に対して=a+i+n
(modM),=1をセツトし、ペアのもう一方の
データを同様にして、比較器91〜9nに送る。比
較器91〜9nはこの2つのデータの大小を比較
し、転送線89を介して供給され制御プロセツサ
8からの指令にもとづき、データの交換を行な
い、その結果を転送線931〜93nにおく。そし
て書き込み時と同様にして、入力バツフア3から
逆線形置換手段4を介し、メモリモジユール51
〜5nに書き込まれる。このときのアドレスは第
4図に示したbitonic sortのスキームから得られ
る。
In bitonic sort, as explained in the section on the principle of the invention, it is necessary to send the pair (i, n+i) to the comparators 9 1 to 9 n , so first element i is sent to the comparators 9 1 to 9 n.
9 Send to n . (,) is sent to the linear permutation 6, where =i+a(modM), =1. The data vector of length m read from the memory module is sent to the output buffer 7 in the same manner as when reading, and is sent to the comparators 9 1 -9 n via transfer lines 79 1 -79 n . Next, control processor 8
is =a+i+n for the linear replacement means 6
(modM), = 1, and similarly sends the other data of the pair to the comparators 9 1 to 9 n . The comparators 9 1 to 9 n compare the magnitudes of these two data, exchange the data based on the commands from the control processor 8 supplied via the transfer line 89, and send the results to the transfer lines 93 1 to 93. Put it in n . Then, in the same way as when writing, from the input buffer 3 through the inverse linear replacement means 4, the memory module 5 1
~5 written to n . The address at this time can be obtained from the bitonic sort scheme shown in FIG.

第3図に比較器91〜9nのうちの1つのブロツ
ク図を示す。転送線79i(i=1,2,…,m)
を介して送られてくる第1のデータは、ゲート9
11によつて、転送線917に送られレジスタ9
12に送られる。第2のデータは、ゲート911
により転送線918を介し、レジスタ913に送
られる。大小比較器914はレジスタ912と9
13の内容と比べ、制御プロセツサからの転送線
89の内容にしたがい、結果を転送線921を介
して交換器915に送る。交換器915は通常の
セレクタで構成されるデータの交換器であり、転
送線918,920のデータを転送線921の内
容にしたがい交換するかあるいはそのままの順
で、出力線922と923に送る。ゲート916
はまず転送線922の内容を転送線93iに送り、
つで転送線923の内容を転送線93iに送り出
す。
FIG. 3 shows a block diagram of one of the comparators 9 1 -9 n . Transfer line 79 i (i=1, 2,..., m)
The first data sent through gate 9
11 to the transfer line 917 and register 9
Sent to 12th. The second data is gate 911
is sent to register 913 via transfer line 918. The magnitude comparator 914 is connected to registers 912 and 9.
13, the result is sent to the exchanger 915 via a transfer line 921 according to the content of a transfer line 89 from the control processor. Exchanger 915 is a data exchanger composed of ordinary selectors, and exchanges the data on transfer lines 918 and 920 according to the contents of transfer line 921, or sends the data to output lines 922 and 923 in that order. gate 916
first sends the contents of transfer line 922 to transfer line 93 i ,
The contents of the transfer line 923 are sent to the transfer line 93i .

(発明の効果) 以上説明したように本発明によれば、通常数値
計算で現われる大規模な行列やアレイを高速にか
つ柔軟に計算システムとの間でデータ交換できる
とともにランダムシミユレーシヨンのサポートを
並列ソートで支援することのできる外部メモリ装
置が提供できる。
(Effects of the Invention) As explained above, according to the present invention, data can be exchanged quickly and flexibly with a calculation system for large-scale matrices and arrays that normally appear in numerical calculations, and support for random simulation is also provided. An external memory device that can support parallel sorting can be provided.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例を示す外部メモリ装
置のブロツク図、第2図は線形置換手段のブロツ
ク図、第3図は並列ソートの一つのコンポーネン
トのブロツク図、第4図はバイトニツクソートの
説明図である。 図において、2……外部メモリ装置、3……入
力バツフア、4……逆線形置換手段、51〜5n
…メモリモジユール、6……線形置換手段、7…
…出力バツフア、8……制御プロセツサ、91
n……比較器をそれぞれ示す。
FIG. 1 is a block diagram of an external memory device showing one embodiment of the present invention, FIG. 2 is a block diagram of a linear permutation means, FIG. 3 is a block diagram of one component of parallel sorting, and FIG. 4 is a block diagram of a bytenik. It is an explanatory diagram of sorting. In the figure, 2...external memory device, 3...input buffer, 4...inverse linear replacement means, 51 to 5n ...
...Memory module, 6...Linear replacement means, 7...
...Output buffer, 8...Control processor, 9 1 ~
9 n ...Indicates a comparator.

Claims (1)

【特許請求の範囲】[Claims] 1 素数個のメモリモジユールと、計算システム
からのベクトルデータを保持する入力バツフア
と、前記計算システムへのベクトルデータを保持
する出力バツフアと、前記入力バツフアからのベ
クトルデータを置換し前記メモリモジユールへ送
る逆線形置換手段と、前記メモリモジユールから
のベクトルデータを置換し前記出力バツフアへ送
る線形置換手段と、前記出力バツフアと前記入力
バツフアの間にあつて並列ソートの一部を実行す
る並列ソート手段と、前記計算システムからの指
令を解釈し前記メモリモジユールに対し読み出し
書き込み指令やアドレスの生成や前記第1および
第2の置換指令の生成や前記並列ソート手段を制
御する制御部とから構成されることを特徴とする
メモリ装置。
1. A prime number of memory modules, an input buffer that holds vector data from a computing system, an output buffer that holds vector data to the computing system, and a memory module that replaces the vector data from the input buffer. linear permutation means for permuting vector data from the memory module and sending it to the output buffer; and a parallel permutation means between the output buffer and the input buffer for performing a part of the parallel sort. a control unit that interprets instructions from the computing system, generates read/write commands and addresses for the memory module, generates the first and second replacement commands, and controls the parallel sorting unit; A memory device comprising:
JP15715984A 1984-07-30 1984-07-30 Memory device Granted JPS6136866A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15715984A JPS6136866A (en) 1984-07-30 1984-07-30 Memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15715984A JPS6136866A (en) 1984-07-30 1984-07-30 Memory device

Publications (2)

Publication Number Publication Date
JPS6136866A JPS6136866A (en) 1986-02-21
JPH037977B2 true JPH037977B2 (en) 1991-02-04

Family

ID=15643470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15715984A Granted JPS6136866A (en) 1984-07-30 1984-07-30 Memory device

Country Status (1)

Country Link
JP (1) JPS6136866A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2515884B2 (en) * 1989-06-06 1996-07-10 東レ株式会社 Propylene polymer film
JP7163070B2 (en) * 2017-05-30 2022-10-31 大阪ガスケミカル株式会社 Cosmetic additives and cosmetics containing the same

Also Published As

Publication number Publication date
JPS6136866A (en) 1986-02-21

Similar Documents

Publication Publication Date Title
KR0125623B1 (en) Data processor and data processing method
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
US5956274A (en) Memory device with multiple processors having parallel access to the same memory area
Siegel et al. A survey of interconnection methods for reconfigurable parallel processing systems
EP0248906A1 (en) Multi-port memory system
US5586256A (en) Computer system using multidimensional addressing between multiple processors having independently addressable internal memory for efficient reordering and redistribution of data arrays between the processors
US5247613A (en) Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel
US5367692A (en) Parallel computer system including efficient arrangement for performing communications among processing node to effect an array transposition operation
JP2002518730A (en) Register and method for accessing register used in single instruction multiple data system
JPS62264357A (en) Simulation of processor addition for parallel processor array
JPS62208158A (en) Multiprocessor system
JPH05508044A (en) Communication switching system for multiprocessor systems
US5394553A (en) High performance array processor with nonlinear skewing of elements
JPH07120312B2 (en) Buffer memory controller
WO2002019129A2 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
US5603046A (en) Method for complex data movement in a multi-processor data processing system
JPH037977B2 (en)
JPH04295953A (en) Parallel data processor with built-in two-dimensional array of element processor and sub-array unit of element processor
EP0373299A2 (en) Method and apparatus for memory routing scheme
JP2503702B2 (en) Address translation device
JPH037976B2 (en)
CN119301679A (en) Memory Architecture
JP2839597B2 (en) Device for creating charged beam drawing data
JP3209630B2 (en) Data transfer device and multiprocessor system
JP2025502112A (en) Data Processing

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term