JPH037976B2 - - Google Patents

Info

Publication number
JPH037976B2
JPH037976B2 JP15715884A JP15715884A JPH037976B2 JP H037976 B2 JPH037976 B2 JP H037976B2 JP 15715884 A JP15715884 A JP 15715884A JP 15715884 A JP15715884 A JP 15715884A JP H037976 B2 JPH037976 B2 JP H037976B2
Authority
JP
Japan
Prior art keywords
vector
permutation
linear
address
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
JP15715884A
Other languages
English (en)
Other versions
JPS6136865A (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 JP15715884A priority Critical patent/JPS6136865A/ja
Publication of JPS6136865A publication Critical patent/JPS6136865A/ja
Publication of JPH037976B2 publication Critical patent/JPH037976B2/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)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、大規模な数値計算を支援するための
高性能な外部メモリ装置の方式に係る。
(従来技術とその問題点) いわゆるスーパーコンピユータでは、大規模な
数値計算をサポートするために高速の外部メモリ
が提供されている。
提供されている外部メモリのアーキテクチヤ
は、通常、デイスクデバイスと同様、ブロツクラ
ンダムアクセスを採用している。ブロツクランダ
ムアクセスとは、例えばベクトル{vi}は、ブロ
ツクに分けられ、v0v1…vo-1,vovo+1…v2o-1,v3o
…というように長さnのブロツクとして、外部メ
モリに格納される。このアーキテクチヤの採用
は、従来のプログラムの書き換えやオペレーシヨ
ンシステムの大幅な変更を避けることを目的とし
ている。
しかし、ブロツクランダムアーキテクチヤは、
数値計算では、不適当なケースがある。例えば、
2次元アレイ{Aij}を考えよう。このアレイが
A00A01…A0o-1,A0o…,A10A11…というように
(i,j)の順でブロツクに分けられ、格納され
ているとする。いま{Aij|j∈〔0,m〕}i、
すなわち、iを固定し、jだけ0,1,2…と変
えて得られるベクトルAi0,Ai1,…Aio-1,Aio
を入出力する場合、ブロツク単位に転送すること
で、効率の良い入力、出力を行うことができる。
しかし、一方、{Aij|i∈〔0,m〕}iで表わ
されるベクトルA0j,A1j,A2j…については、そ
れぞれの要素を入出力する場合、それぞれ別のブ
ロツクを参照する必要があり、長さmのベクトル
の入力又は出力にともなつて、最悪で、mブロツ
クの入力または出力を必要とする。このようなア
クセスパターンは、例えば、偏微分方程式の差分
解法の1つである陰解法では、異なつた軸による
スキヤンが必要なため、必然的に存在する。その
他にも多次元FETや行列の積にも現われる。す
なわち、数値計算では、このようなアクセスパタ
ーンは、ごく普通に現われると考えてよい。した
がつて、ブロツクランダムアクセスの外部メモリ
を、効率良く使用するには、プログラムを工夫す
る努力が必要で、また、そうした努力によつても
高い性能を引き出せないことがある。
(発明の目的) 本発明の目的は、語単位の処理を可能にするこ
とにより、きわめて高性能で、かつ柔軟なアクセ
スを実現する外部メモリ装置を提供することにあ
る。
(発明の構成) 本発明によれば、計算システムからの指令にも
とずきデータの転送を行なう外部メモリ装置であ
つて、素数個のメモリモジユールと前記計算シス
テムからのベクトルデータを保持する入力バツフ
アと、前記計算システムからのベクトルデータを
保持する出力バツフアと、前記メモリモジユール
の出力を線形置換し前記出力バツフアに送る線形
置換手段と、前記入力バツフアの出力を逆線形置
換し前記メモリモジユールに送る逆線形置換手段
と、前記計算システムからの指令を解釈し、前記
メモリモジユールへのアドレスは書き込み読み出
し指令の生成を行うとともに、前記線形置換手段
と前記逆線形置換手段に対して制御パラメータを
送る制御部とから構成されることを特徴とする外
部メモリ装置が得られる。
(発明の原理) つぎに、本発明の原理について説明する。ま
ず、2次元アレイ{Aij}を考える。このアレイ
の要素へのアクセスは、計算アルゴリズムに依存
するが、代表的なアクセスは、列方向か行方向、
あるいは対角方向が想定される。簡単のため、こ
のアレイのサイズをA(4,4)とする。メモリ
には次のように格納されているとする。
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−順序ベクトルに対するアクセスと呼
ぶ。
3次元データアレイについても同様、A(n1
n2,n3)について(ここでn1,n2,n3はサイズを
表わす)Aijkのkを0,1,2,…と変えて得ら
れるベクトルは順序ベクトルであり、jを変えて
得られるベクトルはn3−順序ベクトル、iを変え
て得られるベクトルは、n2・n3−順序ベクトルで
ある。
一般的には、外部メモリから計算システムへの
データの転送はn−順序ベクトルを順序ベクトル
に置換し転送することであり、外部メモリへの書
き込みは、順序ベクトルをn−順序ベクトルに置
換し、転送することに対応する。もう少し具体的
に説明するため、線形置換Ldを次のように定義
する。
Ld:b+d・i→i (mod M) また、その逆置換L-1 dは L-1 d:i→b+d・i (mod M) ここで、bとdは定数であり、dはd−順序ベ
クトルに対応する定数である。
bとdはつぎのように与えられる。あるプログ
ラムを例として考える。以下の例において、添字
i1,i2,i3は0から始まり、各々n1−1,n2−1,
n3−1で終るものとする。
ここで、i1,i2,i3は定数であり、kはindex変
数である。アレイAがアドレスaから格納されて
いるとすると、A(i1,i2,k)のアドレスはa+
n2・n3・i1+n3・i2+kであるから、b=a+
n2・n3・i1+n3・i2,d=1である。同様にA(i1
k,i3)についてはb=a+n2・n3・i1+i3,d=
n3である。
つぎに、メモリへの格納を説明する。高速の転
送を行うには、並列処理が本質的であり、メモリ
は複数のメモリモジユールに分けられる。アレイ
データはメモリモジユールに沿つてベクトルとし
て格納される。例えば、Aijは、メモリモジユー
ル0にA11、モジユール1にA12、モジユール2
にA13,…というように格納される。
メモリモジユールがM個あるとすると、アドレ
スAddのモジユール番号、モジユール内アドレス
は、それぞれ Add mod M,〔Add/M〕 である。
また、転送すべきベクトル要素のアドレスは、
第i番目のアドレスについて書けば、b+d・i
であり、モジユール番号、モジユール内アドレス
はそれぞれ、 (b+d・i)mod M,〔(b+d・i)/
M〕 と表わされる。ここで〔x〕はxより小さくかつ
最大の整数を表わす。
ここで、=b(mod M),=d(mod M)
とすれば第i番目のモジユール番号は (+・i)mod M と表わすことができる(整数論より既知)。
線形置換は (+・i)→i(mod M) であり、この置換は、(,M)=1、すなわち、
bとMが互いに素であるとき、競合なしに行われ
る。したがつて、Mは素数から選ばれることが望
ましいが、競合を解決する手段を併用すれば、素
数に限定する必要はない。
線形置換はつぎのように実行される。まずに
対応し、−順序ベクトルを順序ベクトルに変換
し、つぎにに対応し、得られた順序ベクトルを
回転置換する。この置換を例で説明する。いま、
メモリモジユールが5つあるとし、アレイAのサ
イズが8×8であり、アドレス0から格納されて
いるとする。A(1,2),A(2,2),A(3,
2),A(4,2)というベクトルはb=(A1,
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に入つている。
各モジユールから読み出されたベクトルはA
(1,2),A(3,2),−,A(2,2),A(4

2)の順であり、 0 3 1 4 0 1 2 3 の置換が行われなければならない。このため、
=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),− となり、順序ベクトルが得られる。この置換をス
キツプ置換という。
このように、回転置換と、スキツプ置換を組み
合せることで線形置換を実現できる。
一方逆置換L-1 dは、以上述べた線形置換の逆置
換であり、まず、スキツプ置換を行い、ついて回
転置換を行うことで達成される。この場合のスキ
ツプ置換、回転置換に与えられるパラメータb′,
d′は b′=M−b(mod M) d′・d=1(mod M) から得られる。
(実施例) つぎに図面を用いて詳細に説明する。第1図は
本発明の一実施例を示すシステム構成図である。
計算システム1は、外部メモリ装置2に、転送線
18を介して指令を、転送バス13,71を介し
てベクトルデータの入出力を行う。計算システム
1は次の形式のコマンド(指令)を制御プロセツ
サ8に送る。
command(b,d,n) ここでcommandはreadかwriteであり、bは
ベクトルのベースアドレス、dはスキツプ距離、
nは転送すべきベクトル長である。
まず、ベクトルデータの書き込みについて説明
する。転送線18を介してwrite(b,d,n)の
指令が制御プロセツサ8に送られる。制御プロセ
ツサ8は(b,d)にもとづいて、b′,d′を計算
する。(この計算は原理の説明で説明した)。計算
されたb′,d′は転送線84を介して、逆線形置換
手段4に送られ、入力バツフア3とメモリモジユ
ール51〜5nの間のデータの転送パスが確立され
る。また、制御プロセツサは〔(b+d・i)/
M〕の計算を行い、各モジユール内アドレスを計
算し、計算されたアドレスは転送線83を介し
て、入力バツフア3に送られ、転送線341〜3
n、逆線形置換手段4、転送線451〜45n
へてメモリモジユール51〜5nに送られるととも
に、制御プロセツサ8はメモリモジユール51
nにwrite指令を転送線85を介して送る。これ
でアドレスの設定がされる。つぎに計算システム
1から送られてきたベクトルデータを入力バツフ
アに取り込み、転送線341〜34n、逆線形置換
手段4、転送線451〜45nを介してメモリモジ
ユール51〜5nに送られ書き込まれる。ベクトル
長nは、書き込むべきベクトルの範囲を示すもの
で、入力バツフア3において、この情報により、
マスクビツトが生成され、不正な書込みを防止す
る方式(図示せず)がとられる。
つぎに読み出しについて説明する。計算システ
ム1からはread(b,d,n)のコマンドが送ら
れてくる。制御プロセツサ8は書き込みと同様に
して、各メモリモジユール51〜5nにアドレスを
生成し送る。そして転送線85を介して各メモリ
モジユール51〜5nに読み出し指令を送り、ベク
トルデータとして、読み出されたデータを転送線
561〜56nを介して線形置換手段6に送る。こ
の前に制御プロセツサ8は転送線86を介し、線
形置換手段6に(b,d)から(,)を生成
し、転送パスを確立している。線形置換手段6に
よりデータベクトルの置換が行われ、転送線67
〜67nを介して出力バツフア7にデータは送ら
れる。ベクトル長nは、有効なベクトルの範囲を
示すために用いられる(図示せず)。出力バツフ
ア7の内容は転送バス71を介し、計算システム
に送られる。
以上のように計算システムと外部メモリの間で
データの転送が行われる。
つぎに、第2図に線形置換手段の構成例をブロ
ツク図で示す。回転置換手段61は転送線86を
介して送られてくる(,)のうち、に対応
して、bポジシヨン回転置換を実行するものでシ
フトレジスタにより実現される。出力は、転送線
11〜61nを介してスキツプ置換手段62に送ら
れる。スキツプ置換手段62は(,)のうち、
dに対応して、−飛びのスキツプ置換を行う。
このスキツプ置換は、Swanson,R.C.
(“Interconnections for Parallel Memories to
Unscramblep−ordered Vectors,”IEEE,
Trans on Comput,Vol.C−23,NO.11,
pp1105〜1115(1974))に述べられているk−
apart interconnection(k−飛び相互結合)によ
り容易に実現できる。
(発明の効果) 以上に述べたように、本発明によれば、数値計
算で現われる大規模なデータ構造(主として行列
やアレイ)に対する柔軟アクセスが可能になり、
さらに並列処理により高速の処理が可能となる。
また、メモリモジユールの数を素数としたこと
でメモリの競合をなくすことができ、非常に簡単
な制御で、また簡素なシステム構成で高性能な外
部メモリ装置を可能にしている。
【図面の簡単な説明】
第1図は本発明の一実施例を示す外部メモリ装
置のシステム構成図、第2図は外部メモリ装置の
一部である線形置換手段のブロツク図である。 図において、1……計算システム、2……外部
メモリ装置、3……入力バツフア、4……逆線形
置換手段、51〜5n……メモリモジユール、6…
…線形置換手段、7……出力バツフア、8……制
御プロセツサ、をそれぞれ示す。

Claims (1)

    【特許請求の範囲】
  1. 1 素数個のメモリモジユールと、計算システム
    からのベクトルデータを保持する入力バツフア
    と、前記計算システムからのベクトルデータを保
    持する出力バツフアと、前記メモリモジユールの
    出力を線形置換し前記出力バツフアに送る線形置
    換手段と、前記入力バツフアの出力を逆線形置換
    し前記メモリモジユールに送る逆線形置換手段
    と、前記計算システムからの指令を解読し、前記
    メモリモジユールへのアドレスや書き込み読み出
    し指令の生成を行なうとともに、前記線形置換手
    段と前記逆線形置換手段に対して制御パラメータ
    を送る制御部とから構成されることを特徴とする
    外部メモリ装置。
JP15715884A 1984-07-30 1984-07-30 外部メモリ装置 Granted JPS6136865A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15715884A JPS6136865A (ja) 1984-07-30 1984-07-30 外部メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15715884A JPS6136865A (ja) 1984-07-30 1984-07-30 外部メモリ装置

Publications (2)

Publication Number Publication Date
JPS6136865A JPS6136865A (ja) 1986-02-21
JPH037976B2 true JPH037976B2 (ja) 1991-02-04

Family

ID=15643449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15715884A Granted JPS6136865A (ja) 1984-07-30 1984-07-30 外部メモリ装置

Country Status (1)

Country Link
JP (1) JPS6136865A (ja)

Also Published As

Publication number Publication date
JPS6136865A (ja) 1986-02-21

Similar Documents

Publication Publication Date Title
US5956274A (en) Memory device with multiple processors having parallel access to the same memory area
EP0263924B1 (en) On-chip bit reordering structure
EP0248906A1 (en) Multi-port memory system
JP2002518730A (ja) 単一命令複数データシステムに使用するレジスタにアクセスするレジスタおよびアクセス方法
KR100503094B1 (ko) 넓은 메모리 밴드위스를 갖는 디지털 신호 처리 장치 및그 메모리 맵핑 방법
US4736442A (en) System and method for orthogonal image transformation
EP1217581A2 (en) Processing of an image organized in pixel tiles
KR100772287B1 (ko) 대규모 병렬 프로세서 어레이를 메모리 어레이에 비트직렬 방식으로 접속하는 방법 및 장치
JPH037976B2 (ja)
JPH04295953A (ja) 要素プロセッサの2次元アレイを内蔵する並列データ処理装置および要素プロセッサのサブアレイユニット
JPH037977B2 (ja)
JPS6149246A (ja) イメ−ジ回転処理方式
JP2025511246A (ja) メモリアーキテクチャ
JPH0117183B2 (ja)
JP2855899B2 (ja) 機能メモリ
JPS6333348B2 (ja)
JPH04360425A (ja) 半導体記憶装置
JPS6125192B2 (ja)
CN121858473A (zh) 一种基于dma硬件的快速转置方法和装置
JPS62133575A (ja) メモリ装置
JPH0467280A (ja) 並列データ処理装置
JPS6059622B2 (ja) 画像メモリのデ−タ交換装置
JPS62226380A (ja) イメ−ジ回転回路
JPS59186057A (ja) イメ−ジメモリシステムにおけるアクセス処理方式
JPH0236008B2 (ja)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term