JPS6136866A - メモリ装置 - Google Patents

メモリ装置

Info

Publication number
JPS6136866A
JPS6136866A JP15715984A JP15715984A JPS6136866A JP S6136866 A JPS6136866 A JP S6136866A JP 15715984 A JP15715984 A JP 15715984A JP 15715984 A JP15715984 A JP 15715984A JP S6136866 A JPS6136866 A JP S6136866A
Authority
JP
Japan
Prior art keywords
vector
data
memory
linear
sent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP15715984A
Other languages
English (en)
Other versions
JPH037977B2 (ja
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/ja
Publication of JPS6136866A publication Critical patent/JPS6136866A/ja
Publication of JPH037977B2 publication Critical patent/JPH037977B2/ja
Granted legal-status Critical Current

Links

Classifications

    • 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/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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、大規模な数値計算を支援するための高性能な
外部メモリ装置の方式に係る。
(従来技術とその問題点) イワユルスーパーコンピュータでは、大規模な数値計算
をサポートするために高速の外部メモリが提供されてい
る。
提供されている外部メモリのアーキテクチャは、通常、
ディスクデバイスと同様、ブロックランダムアクセスを
採用している0ブロツクランダムアクセスとは、例えは
ベクトル(V、)は、ブロック監 に分けられ、YOVI・・・マn−I P vn” n
+1・・・V 2 n−1gv2n・・・というように
長さnのブロックとして、外部メモリに格納される。こ
のアーキテクチャの採用は、従来のプログラムの書き換
えやオペレージ冨ンシステムの大幅な変更を避けること
を目的としている。
しかし、ブロックランダムアーキテクチャは、数値計算
では、不適なケースがある。例えば、2次元プレイ(人
−)ffi考えよう口このプレイが1」 AQOAOl ””0n−11AOn・・’ l A1
0 A11 ”’というように(i、j)の順でブロッ
クに分けられ、格納されているとする。いま(i、+c
−coomn+、すな1」 わち、ii固定し、jだけ0. 1. 2・・・と変え
て得られる6クト/l/A、0.Ail、 °−゛A、
n−1.A、、−°−を入出力する場合、ブロック単位
に転送することで、効率の良い入力、出力を行うことが
できる。
しかし、一方、(AiJl 1c(o、m))Jで表わ
されるベクトルA。4.A12.A2j・・・について
は、それぞれの要素全入出力する場合、それぞれ別のブ
ロックを参照する必要があり、長さmのベクトルの入力
または出力にともなって、最悪で、mブロックの入力ま
たは出力を必要とする。このようなアクセスパターンは
、例えば、偏微分方程式の差分解法の1つである陰解法
では、異った軸によるスキャンが必要なため、必然的に
存在する。その他にも多次元FFTや行列の積にも現わ
れる。すなわち、数値計算では、このようなアクセスパ
ターンは、ごく普通に現われると考えてよい。したがり
:m率良く使用するには、プログラム全工夫する努力が
必要で、また、そうした努力によっても高い性能を引き
出せないことがある。
もう一つの問題は、プラズマ粒子コードのようにランダ
ムな現象を計算しようとするとき、データの構造として
、ランダムな値を扱う場合が生ずる。一般には、リスト
ベクトル(間接アドレス)が必要となる。この場合、通
常ベクトルプロセッサはうまく動作しない。このため、
データ集合を値によってノートすることが試みられる。
計算システム全便って、ソートすることも可能だが、一
般に負担はかなシ大きくなシ、Iloを多発し、実行速
度の向上は期待できない、このため、外部メモリ中でソ
ートしてしまうことが望ましい0(発明の目的) 本発明の目的は、高性能でかつ柔軟なアクセスが可能で
、さらにランダムシミュレーションのサボーートも可能
な外部メモリ装置全提供することにある。
(発明の構成) 本発明によれば、計算システムからの指令にも出力バッ
ファと、前記入力バツフアからのベクトルデータを置換
し前記メモリモジュールへ送る逆線形置換手段と、前記
メモリモジュールからのベクトルデータを置換し前記出
力バッファへ送る線形置換手段と、前記出力バッファと
前記入力バッファの間にあって並列ソートの一部全実行
する並列ノート手段と、前記計算システムからの指令を
解釈し前記メモリモジー−ルに対し読み出し書き込み指
令やアドレスの生成や前記第1および第2の置換指令の
生成や前記並列ソート手段を制−咲“;゛L、噛1 (発明の原理) つぎに、本発明の原理について説明する。まず。
2次元プレイ(A、、)’を考える。このプレイの装置
」 素へのアクセスは、計算アルゴリズムに依存するが代表
的なアクセスは、列方向か行方向、あるいは対角方向が
想定される。簡単のため、このアレイのサイズ全人(4
,4)とする。メモリには次のように格納されていると
する。
Aoo  AOI  AO2A13 A20  All  Al1  A13A20   A
21   人22   A23八30  A31  A
32  A33このアレイの列方向のデータ要素は隣シ
合って格納されている。この場合’kl−1序ベクトル
形式、または簡単に順序ベクトルと呼ぶ。一方行方向の
データ要素AOO・人10炉A20 f A30やAo
l・A13A202人、□といつたベクトルは、4要素
はなれた要素に対するアクセスとなる。また、対向要素
AOO# A111 A22 # A33は、5要素は
なれた要素に対するアクセスとなる。それらを各々4−
順序ベクトル、5−順序ベクトルに対するアクセスと呼
ぶ。
3次元データアレイについても同様、A(nt。
n2 # n3 ) Kついて、(ここでnl 、 +
12 、 n3 はサイズ’r表わ搬、A、、kOKT
hO,1,2,・・・と変えて得られるベクトルは順序
ベクトルであシ、jを変えて得られるベクトルはn3−
順序ベクトル、iを変えて得られるベクトルはs n2
・n3−順序ベクトルである。
一般的には、外部メモリから計算システムへのデータの
転送はn−順序ベクトルを順序ベクトルに置換し転送す
ることでちゃ、外部メモリへの書き込みは、順序ベクト
ルをn−順序ベクトルに置換し、転送することに対応す
る。もう少し具体爾に説明するため、線形置換り、Th
次のように定義する。
Ld: b+d @ i  −+  i  (rnod
 M)  。
また、その逆置換り、は L”” : i →b−1−d oi (modλ1)
ここで、bとdは定数であう、dはd−順序ベクトルに
対応する定数である■ bとdはつぎのように与えられる。あるプログラムを例
として考える。以下の例で、添字11゜12.13は0
から始まシ、各々n1 1.n2 1゜n3−1で終る
ものとする。
dtmensIon A (nl g n2 、 n3
 )do  10  k=1.n ここで11 、12 、13は定数であシ、kは1nd
ex変数である。アレイAがアドレスaから格納されて
いるとすると、A(il、+2.k)はa十n2n3i
1+ n3i2 +k 、すなわちb’==a+n2 
 n3.+1+n3・電2であfi、 d=lである。
同様にA(+1゜sc、+3)については1)==1 
+ 12 ・n3 @ 11 + +3 pd ”” 
n 3である。
つぎに、メモリへの格納全説明する0高速の転送を行う
には、並列処理が本質的であシ、メモリは複数のメモリ
モジー−ルに分けられる。アレイデータはメモリモジュ
ールに沿ってベクトルとして格納される。例えば、A、
は、メモリモジュールOにA1□、1にA□2,2にA
13.・・・というように格納される。
メモリモジュールがM個あるとすると、アドレスAdd
のモジュール番号、モジュール内アドレスは、それぞれ
、 Add  mod  M 、 (Add/M)である。
また、転送すべきベクトル要素のアドレスは、第λ番目
のアートレスについて書けば、b+a−tでアシ、モジ
ュール番号、モジュール内アドレス−はそれぞれ、 (b+a −i) mod M 、 (b+d = )
/M)と表わされる。ここで〔x〕はXよシ小さくかつ
最大の整数を表わす。
ここで、b=b (mod M ) 、  d=d (
mod M )とすれば第1番目のモジー−ル番号は (b十a −i )mod M と表わすことができる(整数論より既知)。
線形置換は (b+a e i )  −+  i (modM )
であシ、この置換は、(d、M)−1、すなわち、Tと
Mが互いに素であるとき、競合なしに行われる。したが
って、Mは素数から選ばれることが望ましいが、競合を
解決する手段を用いれば、素数に限定することもない。
線形置換はつぎのように実行される。まずdに対応し、
d−順序ベクトルを順序ベクトル変換し、つぎにbに対
応し、得られた順序ベクトル全回転置換する。この置換
を例で説明する。いま、メモリモジュールが5つあると
し、アレイAのサイズが8X8であるとしアドレスOか
ら格納されているとする0A(it2)−A(2p2)
tA(3+2)tA(4、2)というベクトルはb=(
A(1,2)のアドレス)とし、d=8とすることで要
素のアドレスが得られる。A(1,2)のアドレスは1
oであシ、b=10 mod5=Q、d=8mod5=
3である。各要素のアドレスはA(1,2)tA(29
2)の順で 各モジュールから読み出されたベクトルはA(1,2)
pA(”p2)*  pA(2*2)pA(4,2)の
順であシ、 の置換が行なわれなければならない。このため、b=0
すなわち、回転置換を0ポジション行なう。
得られるベクトルは A(1t2)pA(”y2)p  1A(2t2)、A
(4#2)である。このベクトル要素を3要素飛びに集
めるA(1p2LA(2p2)tA(L2)tA(4p
2)t  tとなシ、順序ベクトルが得られる。この置
換をスキップ置換という。
このように、回転置換と、スキップ置換を組み合せるこ
とで線形置換を実現できる〇 一方逆置換Ldは、以上述べた線形置換の逆置換であシ
、まず、スキップ置換を行い、ついて回d’ d = 
1 (mad M ) から得られる〇 以上のようにして線形置換が行わわる。この線形置換全
使用して、指定されたデータの集合を値によりソートす
る方法をつぎに述べる0このソートは並列ソートであり
、基本的にはButcher’5sortであシ、長さ
nのbity)nic から長さ2nのt)itoni
c列を作成していく方法である。ノートの手間は要素数
をNとするとNlog2Nかかシ、heap 5ort
とくらべ手間は大きいが、処理が簡単なことと、並列処
理が可能な点で有利である。
はじめにbitonic 5ortの処理手順について
説明し、つぎに線形置換によるbitonic 5or
t  のサポートについて説明する。
長さ2 n(D bitonic列は次のように我わさ
れるa1a2 °” a na n41 °”a2nに
おいて このノートは(log2n+1 )段のシャツフル交換
と比較によって達成される。第4図は、n =4の場合
についての説明図である。図に示すようにシャツフル交
換は各膜島も同じスキームであり、シャツフル交換によ
り選ばれたデータのペアが互いの番号C6,C1p C
2P C3とすると、c、について(i、n+i)のベ
アを作る。したがって、長さ2nのbitonic列全
ノートするには、まずベクトル要素Iを1に、ベクトル
要素(n十i)をiに送シ、そのペアについてそれぞれ
比較することで行われる〇 線形置換を行なえば以上のベアは容易に得ることができ
る(回転置換のみで実行できる)0以上に説明したよう
に線形置換食用いることで数値計算で現われる大規模な
プレイを柔軟にアクセスでき、また並列ソートを導入し
、線形置換によりサポートすることでランダムシミュレ
ーションを効果的に実行できるような外部2″そり装置
が可能となる。
(実施例) つぎに図面を参照して本発明の詳細な説明する0第1図
は本発明の一実施例を示す、システム構成図である。計
算システム1(図示せず)は、外部メモリ装置2に、転
送線1st−介して指令を、転command (b 
、 d 、 n )ここでCommandはreadか
wrtteであシ、bはベクトルのベースアドレス、d
はスキップ距離、nは転送すべきベクトル長である。
まず、ベクトルデータの書き込みKついて説明する。転
送線18を介してwrite(b、d、n)のコマンド
が制御プロセッサ8に送られる0制御プロセツサ8は(
b、ct)Kもとすいて、前述のb/、d/を計算する
。(この計算は原理の説明で説明した)。
計算されたb/、 d/は転送線84を介して、逆線形
置換手段4に送られ、入力バツフア3とメモリモジュー
ル5□〜5mの間のデータの転送パスが確立される口ま
た、制御プロセッサ8は〔(b十d−1)/M〕の計算
を行い、各モジュール内アドレスを計算し、計算された
アドレスは転送線83と介して、入力バッファ3に送ら
れ、転送線34.〜34゜、逆線形置換手段4、転送線
451〜45m’にへてメモリモジュール51〜5mに
送られる。制御プロセッサ8はメモリモジュール51〜
5mKwrite 指45□〜45m’に介してメモリ
モジュール51〜5構成され、不正な書き込みを防止す
る(図示していない)。
ワぎに読み出しについて説明する。計算システム1から
はread (b 、 d 、 n )のコマンドが送
られでくる。制御プロセッサ8は書き込みと同様にして
、各メモリモジュール51〜5mにアドレスを生成し送
る。そして転送線85t−介して各メモリモジュール5
、〜5mに読み出し指令を送シ、ベクトルデータとして
、読み出されたデータと転送線56、〜56mt−介し
て線形置換手段6に送る。この前に制御プロセッサ8は
転送線86を介し、第1の置換手段6に(b、d)から
(τta)i生成し、転送パスを確立している。第1の
置換手段6によりデータベクトルの置換が行われ、転送
線67、〜67m’e介して出力バッファ7にデータは
送られる。ベクトル長nは、有効なベクトルの範データ
の交換が行われる。
つぎに、第2図に線形置換手段の構成例をブロック図で
示す。回転置換手段6□は転送線86を介して送られて
くる(τt ” )のうち、iに対応し、川、τポジシ
ョン回転置換を実行するものでシフ4ルジスタによシ実
現される・出力は、転送線6□1〜61m’Th介して
スキップ置換手段6□に送られる。スキップ置換手段6
□線(τt ” )のうち、正に対応して、1−飛びの
スキップ置換を行う。
このスキップ置換は、Swanson 、  R2O。
(”Interconnections f□rPar
alle1Memories to Unscramb
le p−orderedVeetors+’IEEE
、  Trans on Comput、、 Vol。
C−23,No、11 、pp 1105〜1115 
(1974))に述べられているに−apart 1n
terconnection(k−飛び相互結合)によ
シ容易に実現できる。
一方、ソートの指令は、計算システム1から次の形式で
行われるり 5ort (a 、 n ) aはソートすべきデータベクトルのスタートアドレス、
nは要素数である。いまデータベクトルが長さnのbi
tonic列であるとする。制御プロセッサ8は、並列
ソータ91〜9mへのパス79、〜79 を開き、ソー
トの準備を行う。
bitonic 5ort  では発明の原理の項で説
明したようにペア(i、n+1)t−比較器91〜9m
に送、≠必要があり、このためまず要素iを比較器91
〜タベクトルは読み出し時と同様に出力バッファ7に送
られ、転送線791〜79mff1介して比較器9□〜
9mに送られる。つぎに制御プロセッサ8は、線形置換
手段6に対してb = a + i 十n(mad M
 )。
d=1iセットし、ペアのもう一方のデータを同様にし
て、比較器9、〜9mに送る。比較器9、〜9rrlは
この2つのデータの大小を比較し、転送線89を介して
供給され制御プロセッサ8からの指令にもとづき、デー
タの交換を行ない、その結果全転送線931〜93mに
おく。そして書き込み時と同様にして、入力バッファ3
から逆線形置換手段4を介し、メモリモジュール5□〜
5mに書き込まれる。このときのアドレスは第4図に示
した1′)itonic 5ortのスキームから得ら
れる。
第3図に比較器9、〜9mのうちの1つのブロック図を
示す0転送線7L(i=1.2.・・・2口l)を介し
て送られてくる第1のデータは、ゲート911によって
、転送線917に送られレジスタ912に送られる。第
2のデータは、ゲート911により転送線918ヲ介し
、レジスタ913に送られる。大小比較交換器であシ、
転送機918. 920のデータを転送線921の内容
にしたがい交換するかあるいはそのままの順で、出力線
922と923に送る。ゲート916はまず転送線92
2の内容を転送線93 に送)、ついで転送線923の
内容を転送線93 に送シ出す。
(発明の効果) 以上説明したように本発明によれば、通常数値計算で現
われる大規模な行列やアレイを高速にかつ柔軟に計算シ
ステムとの間でデータ交換できるとともにランダムシミ
ュレーションのサポートを並列ソートで支援することの
できる外部メモリ装置が提供できる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す外部メモリ装置のブロ
ック図、第2図は線形置換手段のブロック図、第3図は
並列ノートの一つのコンポーネントのブロック図、第4
図はバイトニックソートのファ、8・・・制御プロセッ
サ、9□〜9m・・・比較器をそれぞれ示すり 72図 73図 74図

Claims (1)

    【特許請求の範囲】
  1. 1 素数個のメモリモジユールと、計算システムからの
    ベクトルデータを保持する入力バツフアと、前記計算シ
    ステムへのベクトルデータを保持する出力バツフアと、
    前記入力バツフアからのベクトルデータを置換し前記メ
    モリモジユールへ送る逆線形置換手段と、前記メモリモ
    ジユールからのベクトルデータを置換し前記出力バツフ
    アへ送る線形置換手段と、前記出力バツフアと前記入力
    バツフアの間にあつて並列ソートの一部を実行する並列
    ソート手段と、前記計算システムからの指令を解釈し前
    記メモリモジユールに対し読み出し書き込み指令やアド
    レスの生成や前記第1および第2の置換指令の生成や前
    記並列ソート手段を制御する制御部とから構成されるこ
    とを特徴とするメモリ装置。
JP15715984A 1984-07-30 1984-07-30 メモリ装置 Granted JPS6136866A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15715984A JPS6136866A (ja) 1984-07-30 1984-07-30 メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15715984A JPS6136866A (ja) 1984-07-30 1984-07-30 メモリ装置

Publications (2)

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

Family

ID=15643470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15715984A Granted JPS6136866A (ja) 1984-07-30 1984-07-30 メモリ装置

Country Status (1)

Country Link
JP (1) JPS6136866A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5137955A (en) * 1989-06-06 1992-08-11 Toray Industries, Inc. Propylene polymer film
JP2019172648A (ja) * 2017-05-30 2019-10-10 大阪ガスケミカル株式会社 化粧料添加剤、及びこれを含む化粧料

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5137955A (en) * 1989-06-06 1992-08-11 Toray Industries, Inc. Propylene polymer film
JP2019172648A (ja) * 2017-05-30 2019-10-10 大阪ガスケミカル株式会社 化粧料添加剤、及びこれを含む化粧料

Also Published As

Publication number Publication date
JPH037977B2 (ja) 1991-02-04

Similar Documents

Publication Publication Date Title
KR0125623B1 (ko) 데이타 프로세서 및 데이타 처리방법
US3544973A (en) Variable structure computer
Siegel et al. A survey of interconnection methods for reconfigurable parallel processing systems
EP0132926B1 (en) Parallel processor
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
EP0248906A1 (en) Multi-port memory system
JP2002518730A (ja) 単一命令複数データシステムに使用するレジスタにアクセスするレジスタおよびアクセス方法
JPS62264357A (ja) 並列プロセツサ・アレイにおけるプロセツサ付加のシミユレ−シヨン方法
KR20100120154A (ko) 데이터의 순열연산 실행장치 및 방법
CN111656339B (zh) 存储器装置及其控制方法
JPH0314063A (ja) マルチプロセッサシステム
JP2679994B2 (ja) ベクトル処理装置
Lakshmivarahan et al. Parallel sorting algorithms
EP1314099B1 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
JPH06162227A (ja) ベクトル並列計算機
US20040078093A1 (en) Array-type processor
JPS6136866A (ja) メモリ装置
EP0122739A2 (en) List vector control apparatus
JPH04316153A (ja) ニューロプロセッサ
CN114691085A (zh) 同时使用多个处理器来处理矩阵的系统
US3418632A (en) Means for merging sequences of data
JPH05143633A (ja) イソジオメトリツク形高速フーリエ変換実現方式
US7043417B1 (en) High speed software driven emulator comprised of a plurality of emulation processors with improved multiplexed data memory
JP2976418B2 (ja) パターンマッチング処理装置
JP2910108B2 (ja) ベクトルデータバッファ装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term