JPH0214364A - 多次元配列の一次元記憶空間への写像・参照方式 - Google Patents

多次元配列の一次元記憶空間への写像・参照方式

Info

Publication number
JPH0214364A
JPH0214364A JP63060890A JP6089088A JPH0214364A JP H0214364 A JPH0214364 A JP H0214364A JP 63060890 A JP63060890 A JP 63060890A JP 6089088 A JP6089088 A JP 6089088A JP H0214364 A JPH0214364 A JP H0214364A
Authority
JP
Japan
Prior art keywords
subscript
mapping
dimensional
array
memory
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.)
Pending
Application number
JP63060890A
Other languages
English (en)
Inventor
Naoki Nishi
直樹 西
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63060890A priority Critical patent/JPH0214364A/ja
Publication of JPH0214364A publication Critical patent/JPH0214364A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ページング方式により仮想化された階層記憶
システムを備えるベクトル計算機における多次元配列デ
ータの写像・参照方式に関するものである。
〔従来の技術〕
配列の宣言をA(di、d2.−−一、dn):Sとす
る(n≧1)。八は配列基、d1〜dnは寸法宣言子で
あり、寸法宣言子diはLi二Hiのベアで記述される
。Liは下限値を、Hiは上限値を示す。1d11を寸
法宣言子diの寸法と呼び、Hi−Li+1に等しい。
配列要素が占める記憶単位はSバイトとする。
さらにプロゲラばフグ言語上で宣言された配列に対して
言語処理系(コンパイラ、インタプリタ等)が決定する
、配列データ記憶領域の起点アドレスをbとする。bは
、配列要素A(Ll、L2゜−−−、Ln)を指すアド
レスと等価である。以下、上記で与えた記号を説明のた
めに用いる。
従来の配列要素A(Jl 、J2、−−− 、Jn )
への参照法は下記に示す計算式により与えられる。
(Jl−L1+1dllメ(J2−L2+1d21)X
(−−−1dn−11X(Jn−Ln)−−−)Xs+
bこの多次元配列の一次元記憶への写像法及び参照法は
、比較的単純な算出法で一次元アドレスに変換できるた
め、多くのプログラミング言語で採用されている。配列
の添字から一次元アドレスの算出は、コンパイル時もし
くは通常の計算機が備えている加減算器、乗算器を用い
て実行時に計算される。
第6図(a)に二次元配列を例として従来の多次元配列
の写像法を示す。従来の写像法は縦割り的である。A(
1:4,1:4)を例とすると、A(i、j)に対する
参照は計算式(i−1+4*−(j−1))米s+bに
より求められる。
これKよシ、−次元空間上での配列要素の並びは第6図
(b)のようになる。配列データを用いてプロゲラばン
グを行なう場合の典型的な配列要素への参照パターンは
、A(i、j)に対してiやjを変化させて参照するル
ープを構成する場合であるが、第6図(b)かられかる
ように、添字iを+1もしくは−1ずらして配列Aに参
照することは一次元記憶上では連続した記憶領域への参
照になるのに対して、添字jを+1もしくは−1ずらし
て配列人に参照することは、−次元記憶上では不連続な
記憶領域への参照となる。
〔発明が解決しようとする課題〕
上述した従来の多次元配列の一次元記憶空間への写像法
及び参照法は、展開された一次元記憶空間がページング
方式による仮想記憶空間で実現されている場合に問題を
生ずる。
仮想記憶システムは参照の局所性を利用し、定義された
記憶空間は二次記憶装置に確保し、実際に現在参照され
ている記憶ページのみを主記憶に配置することで主記憶
の有効利用を計っている。
仮想記憶システムが有効に作用するためには前提条件と
して参照の局所性が成シ立たなければならない。多次元
配列を従来の方法で一次元記憶空間に写像及び参照する
ことは、この局所性に反する場合がある。
第6図(b)は配列A(1:4,1:4)がページング
方式による仮想記憶空間上に展開されている様子をも示
している。第6図(b)においてページ・サイズは配列
Aの要素4個分に等しい。計算機の処理装置がある時間
間隔τ中に配列要素4個を参照したとする。この参照が
A (i+ 1 ) ! =1−4であるならばこの間
に参照される記憶ページは1ページであるが、この参照
がA(ll J ) J =1.4であるならばこの間
に参照される記憶ページは4ページに渡る。明かに後者
の参照は局所性に欠き、主記憶に配列A全体が入りきら
ない場合、主記憶−二次記憶装置間で転送されるページ
数が増大する。平均的にみても必要となる主記憶ページ
数は2.5であり、A(i、j)j=1.4のような参
照によって必要となる主記憶ページ数は増大する。
このような現象によるプログラムの実行時間増大、性能
低下は、大規模な配列を用いる科学技術計算プログラム
にしばしばあられれ、ワーキング・セット異常の一つと
されている。この現象を避けるためには、従来プログラ
ムのコーディング法やアルゴリズムの設計段階において
記憶参照の局所性が保たれるように注意深く設計をすす
める方法が一般的であシ、プログラム作成を困難なもの
にしている。
そこで、比較的どのような参照パターンに対しても記憶
参照の局所性の高い写像法が必要となる。
これに関しては、サブマトリ、ジス法もしくはブロック
化法と呼ばれる方式がある。第5図(a)にブロック化
法により多次元配列を一次元記憶空間に写像する例とし
て、二次元配列を一次元化する方法を示す。
この方式では元の二次元配列の部分配列を一つのブロッ
クとして扱い、ブロックに関する写像と、ブロック内の
写像とを独立に行なう。例として配列A(1:4,1:
4)を部分配列2米2で写像した場合の一次元記憶空間
上での様子を第5図(b)に示す。
第5図(b)においてページ・サイズは配列人の要素4
個分に等しい場合を示している。計算機の処理装置があ
る時間間隔τ中に配列要素4個を参照したとする。この
参照がA(i 、1)i=1.4であるならばこの間に
参照される記憶ページは2ページであり、この参照がA
(1,j)j=1 。
4である場合もこの間に参照される記憶ページは2ペー
ジである。先にあけた従来の写像法と比べるとA(i、
1)i=1.4の場合の必要主記憶ページ数が1から2
に増加したかわりに、A(1゜j)、i=i、4の場合
の必要主記憶ページ数が4から2に減少している。平均
的には2ページの主記憶ページが必要であり、従来の写
像法よりも低く押さえられている。
以上、ブロック化写像法の有効性を示したが、ブロック
化法は従来法式と比べ多次元空間から一次元空間への写
像コストが高く、その変換にはビットフィールドの切出
し等が含まれ、従来のようにソフトウェアにより変換を
行うことには問題がある。また、単純なブロック化写像
法は、同時に複数のメモリアクセスを処理するベクトル
計算機に適用した場合バンク競合を引き起こす。バンク
競合を起こしにくい形の写像、競合回避の制御方式など
が問題となる。
〔課題を解決するための手段〕
本発明の方式は、複数のメモリバンク、各メモリバンク
へアドレスを供給するネットワークおよび複数のメモリ
参照要求が同時刻に同一バンクに集中することを解決す
るバンク競合解決回路から構成されてなるベクトル計算
機用メモリシステムにおける多次元配列の一次元記憶空
間への写像・参照方式において、 多次元配列の各添字値を保持する第1の手段と、各次元
の添字寸法を保持する第2の手段を有し、上記第1の手
段によって保持されている各添字値のブロックアドレス
部と第2の手段によって保持されている添字寸法のブロ
ックアドレス部の積和から生成された一次元記憶空間の
プロ、クアドレスと、上記第1の手段によって保持され
ている添字値のブロック内アドレス部の加算によシ生成
された回転置換された一次元記憶空間内のブロック内ア
ドレスを用いて、複数のメモリバンクに対して同時にア
クセスすることを特徴とする。
〔実施例〕
以下、図面を参照しながら本発明の実施例について説明
する。
第1図は本発明による多次元配列の一次元記憶空間への
写像・参照方式により、三次元の添字アドレスから一次
元添字アドレスを生成する装置の一実施例である。
第1図において、lはメモリアクセスに関するボート競
合/バンク競合解決回路、2はメモリモジュールへのア
ドレス送出を行うボート回路(#Oから#N−1のN個
、但しNは2のべき乗)、3は複数のボートから送出さ
れたメモリアクセス要求が主記憶不在(ページファルト
)を発生していないかどうかを判定し、主記憶中に目的
ページがある場合はアドレスネットワークを介してメモ
リモジュールにアドレスを分配するアドレス変換/アド
レス・ネットワーク、4は記憶装置を構成するメモリバ
ンク、5〜12はレジスタである。
第2図にボート競合/バンク競合解決回路lの詳細、第
3図にボート回路2の詳細を示す。
配列宣言A(Nl 、N2 、N3):二Sを部分配列
A sub (n 1 r n 2 r n 3 )で
ブロック化し、参照起点A (il J 、k)から要
素間距離Adist(al、ciz、cls)でベクト
ルアクセスする場合、レジスタ5には配列Aの起点アド
レス、レジスタ6にはブロックサイズrlN21/n2
J、レジスタ7にはブロックサイズ「1N31/n3J
、レジスタ8には参照起点1ルジスタ9には参照起点j
ルジスタ10には参照起点にルジスタ11には要素間距
離d1、レジスタ12には要素間距離d2、レジスタ1
3には要素間距離d3、がセットされる。
次に本実施例における各種パラメタの関係を示す。
・あるメモリモジー−ル#Pに属するメモリバンク番号
(i:メモリバンク番号、O≦1)は、(imodN)
が#Pに等しいバンクである。
・各メモリバンクのデータ幅は配列要素占める記憶サイ
ズSに等しいものとし、各ユニットが生成するアドレス
は記憶サイズS単位のアドレスとする。
・ベクトルとして連続アクセスする要素数は2のべき乗
に等しいものとする。
・全バンク数は2のべき乗に等しいものとする。
・全ボート数は2のべき乗に等しいものとする。
・バンクのサイクル時間に対応するクロック数は2のべ
き乗に等しいものとする。
・全バンク数は、(バンクサイクルタイムのクロ、り数
)×(全ボート数)に等しいものとする。
・ページサイズは2のべき乗に等しく、がっ、(全バン
ク数)XSに等しいか、小さいものとする。
次に第1図〜第3図を用いて本実施例の動作を、ボート
競合/バンク競合解決処理、ボートからのアドレス送出
処理に分けて説明する。
・ボート競合/バンク競合解決処理 この処理過程は、レジスタ8〜13がボート競合/バン
ク競合解決回路lに送られボート回路2への出力信号1
4〜17を生成するものであり、第2図を用いて説明す
る。
先ず、配列Aの参照起点A (’ + J + k)の
各添字値はレジスタ8〜10を介して添字iは19、添
字jは20、添字には21に初期設定される。
他方、ベクトルアクセスするための配列要素間距離Ad
ist(di 、d2.d3)の各添字距離はレジスタ
11〜13を介して3人力加算器25の入力となるとと
もに、添字距離dlはシフタ22の入力、添字距離d2
はシフタ23の入力、添字距離d3はシフタ24の入力
となる。3人力加算器25の出力は、同時にアクセスす
る要素数の決定回路26の入力となる。同時にアクセス
する要素数の決定回路26の出力信号は17と36の二
程類あり、各出力信号の値は次式によって定まる。
(17の出力値)=最大値(10gz(全ボート数N 
) −(26,の回路への入力値の下位ピットから00
”が連続する数)、0) (36の出力値゛)=(バンク・サイクル・タイム)×
(17の出力値) 8゜(5:庁S企り肘用) /(全バンク数) 同時にアクセスする要素数の決定回路26の出力17は
シフタ22〜24に送られ、シフタはレジスタ11〜1
3の入力である添字距離di−d3を出力信号17の入
力(同時にアクセスする要素数の決定回路の出力信号)
に従って左シフトし、加算器27〜290入力とする。
また、決定回路26の出力信号17はボート回路2にも
送られる。
結果として得られる出力信号14〜16は下表のように
なる。出力信号17をN′とすると、同時に処理される
要素数は2N′個であり、出力信号14〜16は(i、
J#k)を2N′個単位のアクセス開始起点の初期値と
して、 N1個処理後の次の開始起点を順次生成してい
く。
時刻の変化(to、tl、tl、−−−)の間隔Δtは
同時にアクセスする要素数の決定回路27の出力信号1
7によって決定され、レジスタ19〜21の出力信号は
、出力信号36で指定されたT数毎に、toからt1時
刻の出力へ、tlがら122時刻出力へと切り換えられ
る。
ボート回路は、この出力信号14〜16の開始起点信号
切り換えられる度、順次、新しい開始起点信号を基に各
ボートがアクセスすべき−次元記憶空間でのアドレスを
生成し、メモリモジュールへ送出する。
・ボートからのアドレス送出処理 この処理過程は、レジスタ5〜7.11−13の内容と
ボート競合/バンク競合解決回路lの出力信号14〜1
7を各ボート回路の入力信号として、アドレスネットワ
ークを介して複数のメモリバンクから構成されるメモリ
モジュール4にアクセスするアドレスを送出するもので
あり、全てのボート回路2が同じ動作を行う、以下任意
のボート#Pに関して第3図を用いて説明する。
先ず、同時にアクセスする要素数の入力信号17はボー
ト活性化回路36に送られ、自ポー14Pが動作するべ
きかどうかを決定する。決定の方法は、入力信号17の
値をN′とすると下記のようになる。
xF(#P≦2”)THEN 動作する LSE 動作しない END  IF 以降の動作は、ボート活性化回路30の決定がゝゝ動作
する“となった場合に行われるものである。
次にレジスタ31〜33には自ボートがアクセスする配
列Aの添字がセットされる。時刻txにおける2N1個
単位のアクセス開始起点14〜16の値は(i+dlX
2”Xx、j+dlX2”Xx。
k+dlX2”XX )でちゃ、レジスタ31〜33に
セットされる値は((i+d I X2N′Xx )+
(di×#P)、(j+dlx2”xx)+(dlx#
P)、(k+dlX2  XX)+(dlX#P))と
なる。
次に、6〜7と31〜33のレジスタの値からレジスタ
34の値を求める過程が、多次元配列を一次元メモリ空
間上に変換写像する処理である。
レジスタ31〜33のブロックアドレス部から一次元記
憶空間上のブロック番号が、ブロック31〜33内アド
レス部から一次元記憶空間上のブロック内アドレスが求
められる。ここでレジスタ33のブロック内アドレス部
のビット幅は全バンク数を表現するビット幅に等しい。
最後に、レジスタ34の一次元記憶空間上のアドレスと
配列Aの起点アドレス(レジスタ5の内容)から最終的
なアドレス(レジスタ35の内容)が決定される。最終
的なアドレスは、モジー−ル内アドレスを示す出力信号
18とモジー−ル番号を示す出力信号19から構成され
、出力信号19はアドレスネットワークのスイッチング
に用いられ、モジュール内アドレス(出力信号18)が
アドレスネットワークを通して送られる。
以上、第1〜3図を用いて、ボート競合/バンク競合解
決回路1とボート回路2の動作を説明した。結果として
得られる一次元記憶空間上での配列の写像例を第4図に
示す。
第4図において、メモリバンク数は16、配列要素が占
める記憶サイズは8バイトとしている。
バンクサイクルタイムがボートサイクルタイムに等しけ
れば、ボート数は2,4,8.16の倒れでも構わない
配列A(j、j、k)に対して、Adist (d 1
 。
d2 、d3)でベクトルアクセスする場合、ボート数
を16、バンクサイクルタイムをITとして例をあげる
と、 ・dl=l 、d2=0 、d3=oの場合、N′=4
、同時アクセス数は16個 ・dl=0 、d2=l 、d3=0の場合、N′=4
、同時アクセス数は16個 ・dl=1 、d2=0 、d3=2の場合、N′=4
、同時アクセス数は16個 ・dl=1 、d2=1 、d3=oの場合、N′−3
、同時アクセス数は8個 となる。
〔発明の効果〕
以上述べたように、本発明は、参照する配列要素を指す
各次元の添字値を保持するレジスタと各次元の添字寸法
を保持するレジスタを有し、添字値を保持するレジスタ
のブロックアドレス部と添字寸法を示すレジスタの積和
から一次元記憶空間のブロックアドレスを生成し、添字
値を保持するレジスタのブロック内アドレス部の加算に
よシ回転置換された一次元記憶空間のブロック内アドレ
スを生成する、多次元配列のブロック化アドレッシング
装置をベクトル計算機内に設けることにより、多次元配
列の一次元記憶空間への写像/参照をブロック化して行
い、ベージング方式による仮想記憶システムの主記憶−
二次記憶装置間のページ転送回数を低減し、パンク衝突
を避けるとともに、従来の写像方式と同程度の時間コス
トによシ写像することが可能なメモリシステムを提供し
ている。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は本実施例
におけるボート競合/パンク競合解決回路の詳細図、第
3図は本実施例におけるボート回路の詳細図、第4図は
本実施例によるブロック化写像法による三次元配列の写
像図、第5図は従来のブロック化写像法による二次元配
列の写像図、第6図は従来のフォートラン的写像法によ
る二次元配列の写像図をそれぞれ示す。 l・・・・・・ボート競合/パンク競合解決回路、2・
・・・・・ボート回路、3・・・・・・アドレス変換/
アドレス・ネットワーク、4・・・・・・メモリモジュ
ール、5〜13゜20〜22.31〜33,34.35
・・・・・・レジスタ、23〜25・・・・・・シフタ
、26.28〜30・・・・・・加算器、27・・・・
・・決定回路、36・・・・・・ボート活性化回路。 代理人 弁理士  内 原   晋 第1図 8〜ノ3゛入力信号 74〜17:  土カイ言号 第2図 ′ε バシクO 粥6区 、c=I、4 ♂=1.4

Claims (1)

    【特許請求の範囲】
  1. 複数のメモリバンク、各メモリバンクへアドレスを供給
    するネットワークおよび複数のメモリ参照要求が同時に
    同一バンクに集中することを解決するバンク競合解決回
    路から構成されてなるベクトル計算機用メモリシステム
    における多次元配列の一次元記憶空間への写像・参照方
    式において、多次元配列の各添字値を保持する第1の手
    段と、各次元の添字寸法を保持する第2の手段を有し、
    上記第1の手段によって保持されている各添字値のブロ
    ックアドレス部と第2の手段によって保持されている添
    字寸法のブロックアドレス部の積和から生成された一次
    元記憶空間のブロックアドレスと、上記第1の手段によ
    って保持されている添字値のブロック内アドレス部の加
    算により生成された回転置換された一次元記憶空間内の
    ブロック内アドレスを用いて、複数のメモリバンクに対
    して同時にアクセスすることを特徴とする多次元配列の
    一次元記憶空間への写像・参照方式。
JP63060890A 1988-03-14 1988-03-14 多次元配列の一次元記憶空間への写像・参照方式 Pending JPH0214364A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63060890A JPH0214364A (ja) 1988-03-14 1988-03-14 多次元配列の一次元記憶空間への写像・参照方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63060890A JPH0214364A (ja) 1988-03-14 1988-03-14 多次元配列の一次元記憶空間への写像・参照方式

Publications (1)

Publication Number Publication Date
JPH0214364A true JPH0214364A (ja) 1990-01-18

Family

ID=13155406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63060890A Pending JPH0214364A (ja) 1988-03-14 1988-03-14 多次元配列の一次元記憶空間への写像・参照方式

Country Status (1)

Country Link
JP (1) JPH0214364A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6268452B1 (en) 1998-04-17 2001-07-31 Nitto Boseki Co., Ltd. Process for the production of allylamine polymer
US6395849B1 (en) 1997-10-29 2002-05-28 Nitto Boseki Co., Ltd. Processes for producing N,N-dialkylallylamine polymers and N,N-dialkyllylamine polymers
EP1260379A2 (en) 2001-05-22 2002-11-27 Fuji Photo Film Co., Ltd. Inkjet recording sheet
US6811839B2 (en) 2000-11-09 2004-11-02 Canon Kabushiki Kaisha Recording medium and image forming process using the same
DE102017109416A1 (de) 2016-05-13 2017-11-16 Ajinomoto Co., Inc. Polyallylamin-Derivat
WO2023095466A1 (ja) 2021-11-25 2023-06-01 味の素株式会社 樹脂シート

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6395849B1 (en) 1997-10-29 2002-05-28 Nitto Boseki Co., Ltd. Processes for producing N,N-dialkylallylamine polymers and N,N-dialkyllylamine polymers
US6268452B1 (en) 1998-04-17 2001-07-31 Nitto Boseki Co., Ltd. Process for the production of allylamine polymer
US6811839B2 (en) 2000-11-09 2004-11-02 Canon Kabushiki Kaisha Recording medium and image forming process using the same
EP1260379A2 (en) 2001-05-22 2002-11-27 Fuji Photo Film Co., Ltd. Inkjet recording sheet
DE102017109416A1 (de) 2016-05-13 2017-11-16 Ajinomoto Co., Inc. Polyallylamin-Derivat
DE102017109416B4 (de) 2016-05-13 2024-02-15 Ajinomoto Co., Inc. Polyallylamin-Derivat
WO2023095466A1 (ja) 2021-11-25 2023-06-01 味の素株式会社 樹脂シート

Similar Documents

Publication Publication Date Title
Hwang et al. An orthogonal multiprocessor for parallel scientific computations
US8589468B2 (en) Efficient matrix multiplication on a parallel processing device
US7506134B1 (en) Hardware resource based mapping of cooperative thread arrays (CTA) to result matrix tiles for efficient matrix multiplication in computing system comprising plurality of multiprocessors
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
JPH01116850A (ja) アドレス写像方式
JPS6126712B2 (ja)
WO1990004235A1 (en) Parallel data processor
Bu et al. A design methodology for fixed-size systolic arrays
US7836118B1 (en) Hardware/software-based mapping of CTAs to matrix tiles for efficient matrix multiplication
US4939642A (en) Virtual bit map processor
JPH0214364A (ja) 多次元配列の一次元記憶空間への写像・参照方式
US5659714A (en) Data processor including memory for associating data elements of two-dimensional array which are numbered in spiral order with element numbers thereof
EP0253956B1 (en) An addressing technique for providing simultaneous read modify and write operations with serpentine configured rams
US20230289398A1 (en) Efficient Matrix Multiply and Add with a Group of Warps
US6356988B1 (en) Memory access system, address converter, and address conversion method capable of reducing a memory access time
EP0313787A2 (en) A hardware mechanism for the dynamic customization of permutation using bit-matrix multiplication
Harper A multiaccess frame buffer architecture
Kobori et al. A high speed computation system for 3D FCHC lattice gas model with FPGA
CN110766150A (zh) 一种深度卷积神经网络硬件加速器中的区域并行数据载入装置及方法
JPS62235660A (ja) 多次元配列のブロツク化アドレツシング装置
Park et al. Efficient matrix multiplication using cache conscious data layouts
JPS60204048A (ja) 仮想記憶方式
VanCourt et al. Application-Specific Memory Interleaving for FPGA-Based Grid Computations: A General Design Technique
Kumar et al. The GF11 parallel computer
Papakonstantinou A Method to Generate the Prime Cascades of an Arbitrary Switching Function