JPH0559453B2 - - Google Patents

Info

Publication number
JPH0559453B2
JPH0559453B2 JP61078655A JP7865586A JPH0559453B2 JP H0559453 B2 JPH0559453 B2 JP H0559453B2 JP 61078655 A JP61078655 A JP 61078655A JP 7865586 A JP7865586 A JP 7865586A JP H0559453 B2 JPH0559453 B2 JP H0559453B2
Authority
JP
Japan
Prior art keywords
subscript
array
dimensional
register
block
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 - Lifetime
Application number
JP61078655A
Other languages
English (en)
Other versions
JPS62235659A (ja
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP61078655A priority Critical patent/JPS62235659A/ja
Publication of JPS62235659A publication Critical patent/JPS62235659A/ja
Publication of JPH0559453B2 publication Critical patent/JPH0559453B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、多次元配列のブロツク化アドレツシ
ング装置に関し、特にページング方式により仮想
化された階層記憶システムを備える計算機システ
ムにおける多次元配列データの写像法、及び参照
法に関する。
〔従来の技術〕
従来のこの種の多次元配列のブロツク化アドレ
ツシング装置は多次元配列の一次元記憶への写像
法及び参照法として比較的単純な算出法で一次元
アドレスに変換できるため、多くのプログラミン
グ言語で採用されている。配列の添字から一次元
アドレスの算出は、通常の計算機が備えている加
減算器、乗算器を用いて計算される。
配列要素A(I1,I2,……,In)への参照法とし
ては下記に示す計算式により与えられる。
(l1−I1+|d1|×(l2−I2+|d2|×(……|do-1
|×(lo−Io)……)))×s+b なお、配列の宣言をa(d1,d2,……,do)::
sとする(n>=1)。aは配列名、d1〜doは寸
法宣言子であり、寸法宣言子diはli:hiのペアで記
述される。liは下限値を、hiは上限値を示す。|di
|を寸法宣言子diの寸法と呼び、hi−li+1に等し
い。配列要素が占める記憶単位はsバイトとす
る。さらにプログラミング言語上で宣言された配
列に対して言語処理系(コンバイラ、インタプリ
タ等)が決定する、配列データ記憶領域の起点ア
ドレスをbとする。この起点アドレスbは、配列
要素a(l1,l2,……,lo)を指すアドレスと等価
である。
たとえば、二次元配列における多次元配列の写
像法は第4図aに示すように従来の写像法は縦割
り的で、配列要素A(1:4,1:4)の場合に、
A(i,j)に対する参照は計算式(i−1+3
×(j−1))×s+bにより求められる。これに
より、一次元空間上での配列要素の並びは第4図
bのようになる。配列データを用いてプログラミ
ングを行なう場合の典型的な配列要素への参照パ
ターンは、A(i,j)に対してiやjを変化さ
せて参照するループを構成する場合であるが、第
4図bからわかるように、添字iを+1もしくは
−1ずらして配列Aに参照することは一次元記憶
上では連続した記憶領域への参照になるのに対し
て、添字jを+1もしくは−1ずらして配列Aに
参照することは、一次元記憶上では不連続な記憶
領域への参照となる。
また、第4図bにおいて、配列要素A(1:4,
1:4)がページング方式による仮想記憶空間上
に展開されている様子を示すと、ページ・サイズ
は配列Aの要素4個分に等しい。計算機の処理装
置がある時間間隔γ中に配列要素4個を参照した
とする。この参照がA(i,1)i=1,4であ
るならばこの間に参照される記憶ページは1ペー
ジであるが、この参照がA(1,j)j=1,4
であるならばこの間に参照される記憶ページは4
ページに渡る。明かに後者の参照は局所性に欠
き、主記憶に配列A全体が入りきらない場合、主
記憶−二次記憶装置間で転送されるページ数が増
大する。平均的にみても必要となる主記憶ページ
数は2.5であり、A(1,j)j=1,4のような
参照になつて必要となる主記憶ページ数は増大す
る。このような現象によるプログラムの実行時間
増大、性能低下は、大規模な配列を用いる科学技
術計算プログラムにしばしばあらわれ、ワーキン
グ・セツト異常の一つとされている。この現象を
避けるためには、従来プログラムのコーデイング
法やアルゴリズムの設計階段において記憶参照の
局所性が保たれるように注意深く設計をすすめる
方法が一般的であり、プログラム作成を困難なも
のにしている。
そこで、比較的どのような参照パターンに対し
ても記憶参照の局所性の高い写像法が必要とな
る。これに関しては、サブマトリツクス法もしく
はブロツク化法と呼ばれる方式がある。ブロツク
化法により多次元配列を一次元記憶空間に写像す
る例として、二次元配列を一次元化する方式では
元の二次元配列の部分配列を一つのブロツクとし
て扱い、ブロツクに関する写像と、ブロツク内の
写像とを独立に行なう。例として配列要素A
(1:4,1:4)を部分配列2×2で写像した
場合の一次元記憶空間上での様子は第2図bに示
すようにページ・サイズが配列Aの要素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)j=1,4の
場合の必要主記憶ページ数が4から2に減少して
いる。平均的には2ページの主記憶ページが必要
であり、前者の写像法よりも低く押さえられてい
る。
〔発明が解決しようとする問題点〕
上述したように従来の多次元配列の一次元記憶
空間への写像法及び参照法は、展開された一次元
記憶空間がページング方式による仮想記憶空間で
実現されている場合に問題を生ずる。すなわち、
仮想記憶システムは参照の局所性を利用し、定義
された記憶空間は二次記憶装置に確保し、実際に
現在参照されている記憶ページのみを主記憶に配
置することで主記憶の有効利用を計つている。仮
想記憶システムが有効に作用するためには前提条
件である参照の局所性が成り立たなければならな
い。多次元配列を従来の方法で一次元記憶空間に
写像及び参照することは、この局所性に反する場
合がある。
また、ブロツク化写像法の有効性を示したが、
ブロツク化法は従来法式と比べ多次元空間から一
次元空間への写像コストが高く、その変換にはビ
ツトフイールドの切出し等が含まれ、従来のよう
にソフトウエアにより変換を行うことには問題が
あり、また、主記憶バンク上での衝突等の問題も
ある。本発明の目的はこれらの問題点を計算機の
アドレツシング・ハードウエアにより解決する多
次元配列のブロツク化アドレツシング装置を提供
することにある。
〔問題点を解決するための手段〕
本発明によれば、多次元配列データを一次元ア
ドレス空間に写像/参照するブロツク化アドレツ
シング装置において、 配列要素A(I1,I2,……Io)を示す各次元の添
字値Ii(0≦Ii≦di−1:1≦i≦n)を保持する
n個の添字値レジスタと、各次元の添字寸法di
(1≦i≦n−1)を2Nで割算を行い商が2のべ
き数となるように切上げたブロツク添字寸法RMi
(1≦i≦(n−1))を保持するn−1個の添字
寸法レジスタと、 前記添字値レジスタの上位N−1ビツトのブロ
ツクアドレス部RBi(1≦i≦n)と、前記添字
寸法レジスタのブロツク添字寸法値RMiから一次
元記憶空間のブロツクアドレスとして RB1+RM1×(RB2+RM2×(……(RMo-1×
RBo)……)を演算するブロツクアドレス演算手
段と、 前記添字値レジスタ下位Nビツト列のブロツク
内アドレス部RIi(1≦i≦n)のn個のビツト列
からRIo、(RIo+RIo-1)、(RIn+RIo-1+RIo-2)、
……(RIo+……RI1)のn個の演算値を求め、
演算結果の下位ビツト列を並べて一次元記憶空間
のブロツク内アドレスを生成するブロツク内アド
レス生成手段と、 前記ブロツクアドレス演算手段と前記ブロツク
内アドレス生成手段とに接続される一次元アドレ
スを保持する出力レジスタとから構成されること
を特徴とする多次元配列のブロツク化しアドレツ
シング装置が得られる。
〔実施例〕
次に本発明の実施例について図面を参照して説
明する。
第1図は本発明の一実施例を示す。第1図にお
いて、本実施例は多次元配列の一次元化アドレツ
シング方式により、三次元の添字アドレスから一
次元添字アドレスを生成する装置で、配列要素A
(i,j,k)を参照する場合配列添字k、配列
添字jおよび配列添字iをそれぞれ保持するレジ
スタ11,12および13と、添字iの添字寸法
を2のN乗で割つた商を切上げた値を保持する入
力レジスタ14と、添字jの添字寸法を2のN乗
で割つた商を切上げた値を保持する入力レジスタ
15と添字レベルでの一次元アドレスを出力する
出力レジスタ22とを含む。
レジスタ11,12および13は下位からNビ
ツト目とN+1ビツト目を境にして2つのフイー
ルドから成つている。Nの値は対象とする計算機
のページ・サイズ等をもとに定める必要があるが
ページ・サイズが4Kバイトの単精度実数を配列
要素の基準と考えるとN=4程度となる。すなわ
ち16×16×16の部分配列がひとつのブロツクとな
り、この部分配列が占める記憶サイズは単精度実
数配列の場合、4ページに相当する。配列要素が
8バイトの倍精度実数配列の場合には16×16×16
の部分配列8ページを占めることになる。
更にこの実施例においてはレジスタ11と入力
レジスタ15とに接続される掛け算器16と、レ
ジスタ12と掛け算器16とに接続される全加算
器18と、入力レジスタ14と全加算器18とに
接続される掛け算器17と、レジスタ13と掛け
算器17に接続されている全加算器19と、レジ
スタ11とレジスタ12とに接続されている全加
算器20と、全加算器20とレジスタ13とに接
続されている全加算器21とを含み、全加算器1
9〜21とレジスタ11とが出力レジスタ22に
接続されるように構成されている。
本実施例においてはブロツク内の一次元アドレ
ス計算において添字i,j,kのいずれかを連続
的に変化させて参照に対してバンク衝突を避ける
ようにしている。この過程は添字入力i,jの下
位Nビツトをそのまま出力に導かず、添字kとj
の下位Nビツトの和(あふれは捨てる)、添字k,
j,iの下位Nビツトの和(あふれは捨てる)を
用いる。第2図は複数バンクからなる主記憶装置
にブロツク化写像した場合を示す。第2図におい
て、8バイト並列、16バンクから構成される主記
憶装置にA(1:16,1:16,1:16)::8の配
列が写像された状態を示す。ここではN=4とし
ている。A(i,1,1)j=1,16A(1,1,
k)k=1,16等添字のいずれかを連続的にスラ
イドさせてのアクセスに対してバンク衝突を起こ
さない。ただし、添字i,j,kの和が一定にな
るような形で添字を変化させると同一バンクへの
参照となるので、そのような形での参照を含むプ
ログラムに対しては添字i,j,kの下位Nビツ
トをそのまま出力に導く。
このように本実施例はバンク衝突を回避するた
めの機構を備えている。計算機の主記憶装置は演
算処理装置等との間高速データ転送を行なうため
に複数バンクに分割されている場合があり、異な
るバンクに対するアクセスは高速に処理すること
が可能である。配列A(i,j,k)に対するi
もしくはj,kを変化させての連続参照も主記憶
中で同一バンクへのアクセスとならなければ高速
に処理可能である。
また、この実施例は三次元配列のブロツク化を
基本動作として行なうものであるのであるが、二
次元配列及び四次元以上の配列を一次元化するた
めにも使用可能である。第5図に本発明を多次元
の配列に対して構成した一実施例を示す。
第5図において、配列要素A(I1,I2,……Io
を参照する場合に各次元の添字値I1,I2,……Io
を保持するn個の添字値レジスタ501〜50o
と、I1,I2,……Ioの添字寸法d1,d2,……do-1
2Nで割算を行い商が2のべき数となるように切り
上げたブロツク添字寸法RMi(1≦i≦(n−1))
を保持するn−1個の添字寸法レジスタ511
51o-1と、添字値レジスタ501〜50oと添字
寸法レジスタ511〜51o-1に接続される掛け算
器521〜52o-1及び全加算器531〜53o-1
541〜54o-1と一次元アドレスを保持する出力
レジスタ55とを含む。
添字値レジスタ501〜50oは第1図のレジス
タ11,12と同様に下位ビツト目とN−1ビツ
ト目を境にして、下位Nビツトはブロツク内アド
レス部RIi(1≦i≦n)、上位N−1ビツトはブ
ロツクアドレス部RBi(1≦i≦n)とから成つ
ている。
添字値レジスタ50oのブロツク内アドレス部
RIoは、出力レジスタ55及び全加算器54o-1
送られ、添字値レジスタ501〜50o-1のブロツ
ク内アドレス部RIi(1≦i≦n)は、全加算器5
1〜54o-1に送られ、RIo、(RIo+R1o-1)、
(RIo+RIo-1+RIo-2)、……(RIo+……RI1)の
n個の演算値を求め、ブロツク内アドレスとして
出力レジスタ55に送られる。
また、ブロツクアドレス生成のために添字レジ
スタ501から51oのブロツクアドレス部RBi(1
≦i≦n)は、掛け算器52o-1及び全加算器5
1〜53o-1に送られ、添字寸法レジスタ511
〜51o-1に保持されているブロツク添字寸法
RM1,RM2,……RMo-1は掛け算器521〜52
に送られ、一次元記憶空間のブロツクアドレス
として次式の演算を行い出力レジスタ54に送出
する。
RB1+RM1×(RB2+RM2×(……(RMo-1×
RBo)……)出力レジスタ55の出力は一次元ア
ドレスとして送出される。
第3図はブロツク化写像法により二次元配列を
一次元記憶空間に写像する方式を示す。第3図に
おいて、まず二次元配列を一次元化する場合に
は、入力レジスタ13に値0をセツトする。ま
た、入力レジスタ14は値1をセツトする。すな
わち、配列要素A(i,j)の参照に対して、入
力レジスタ11に配列添字j、入力レジスタ12
に配列添字iの値をセツトし、入力レジスタ15
に添字iの添字寸法を2のN乗で割つた商を切上
げた値をセツトして使用する。この場合出力レジ
スタ22の下位Nビツトは意味を持たないので、
添字レベルの一次元アドレスから求めるべき一次
元アドレスを計算するまえに右にNビツトシフト
する必要がある。配列A(1:128,1:128)::
4に対して32×32でブロツク化されている状態で
A(i,j)に参照すると、各次元の添字値を保
持するレジスタ12,11に添字i,jの下限値
からの増分i−1,j−1をセツトする。各次元
の添字値を保持するレジスタ12,11はブロツ
ク化する単位が32×32であるので下位5ビツトが
ブロツク内アドレス部であり、下位5ビツトを除
いた上位がブロツクアドレス部である。添字寸法
を保持するレジスタ14には添字iの寸法128
を32で割つた商を切上げた値4をセツトする。二
次元配列の場合、添字寸法jは必要ない。
次に、装置を動作させることにより出力レジス
タ22に結果が得られる。出力レジスタ22のブ
ロツクアドレス部は、添字寸法iを保持するレジ
スタ12の値に添字値jの値を保持するレジスタ
11のブロツクアドレス部を掛けた値に、添字値
iの値を保持するレジスタのブロツクアドレスを
加算したものである。他方、出力レジスタ22の
ブロツク内アドレス部は、添字値jの値を保持す
るレジスタ11のブロツク内アドレス部と、この
値に添字値iの値を保持するレジスタ12のブロ
ツク内アドレス部を加算した値(あふれは捨て
る)を直列に並べたものである。
最後に出力レジスタ22に得られた値は添字レ
ベルの一次元アドレスであるので、さらに演算処
理装置により、配列要素の占める記憶サイズ4と
出力レジスタ22の値を掛け、さらに配列Aの起
点アドレスbを加算することにより求める一次元
アドレスが生成される。
また、四次元以上の配列を写像する場合である
が、この場合は配列添字を三次元単位に区切りブ
ロツク化し、その合成には従来の方法を用いるこ
ともできる。すなわち、配列A(i,j,k,1)
に対してはこれをA(ijk,1)とみなし、添字
ijkの算出に本装置を用い、添字ijkと1の合成に
は従来方法でこれを行なう。
〔発明の効果〕
以上述べたように、本発明は多次元配列の一次
元記憶空間への写像/参照をブロツク化写像法式
により行なうことで、ページング方式による仮想
記憶システムの主記憶−二次記憶装置間のページ
転送回数を低減することができる。ブロツク化写
像方式は、参照する配列要素を指す各次元の添字
値を保持するレジスタと各次元の添字寸法を保持
するレジスタを有し、添字値を保持するレジスタ
のブロツクアドレス部と添字寸法を示すレジスタ
の積和から一次元記憶空間のブロツクアドレスを
生成し、添字値を保持するレジスタのブロツク内
アドレス部の加算結果から一次元記憶空間のブロ
ツク内アドレスを生成する。多次元配列のブロツ
ク化アドレツシング装置を計算機の演算処理装置
内に設けることにより、バンク衝突を避けるとと
もに、従来の写像方式と同程度の時間コストによ
り写像することが可能である。
【図面の簡単な説明】
第1図は本発明の一実施例により三次元配列を
一次元記憶空間にブロツク化写像する装置を示す
図、第2図は複数バンクからなる主記憶装置にブ
ロツク化写像した場合を示す図、第3図はブロツ
ク化写像法により二次元配列を一次元記憶空間に
写像する方式を示す図、第4図は従来の方式によ
り二元配列を一次元記憶空間に写像する方式を示
す図、第5図は本発明の一実施例による多次元配
列を一次元記憶空間にブロツク化写像する装置を
示す図である。 11,12,13……配列添字を保持するレジ
スタ、14,15……入力レジスタ、16,17
……掛け算器、18,19……全加算器、20,
21……加算器、22……出力レジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 多次元配列データを一次元アドレス空間に写
    像/参照するブロツク化アドレツシング装置にお
    いて、 配列要素A(I1,I2,……Io)を指す各次元の添
    字値Ii(O≦Ii≦di−1:1≦i≦n)を保持する
    n個の添字値レジスタと、各次元の添字寸法di
    (1≦i≦n−1)を2Nで割算を行い商が2のべ
    き数となるように切上げたブロツク添字寸方法
    RMi(1≦i≦(n−1)を保持するn−1個の添
    字寸法レジスタと、 前記添字値レジスタの上位N−1ビツトのブロ
    ツクアドレス部RBi(1≦i≦n)と、前記添字
    寸法レジスタのブロツク添字寸法値RMiから一次
    元記憶空間のブロツクアドレスとしてRB1
    RM1×(RB2+RM2×(……(RMo-1×RBo)…
    …)を演算するブロツクアドレス演算手段と 前記添字値レジスタの下位Nビツト列のブロツ
    ク内アドレス部RIi(1≦i≦n)のn個のビツト
    列からRIo、(RIo+RIo-1)、(RIn+RIo-1+RIo-2
    ……(RIn+……+RI1)のn個の演算値を求め、
    演算結果の下位Nビツト列を並べて一次元記憶空
    間のブロツク内アドレスを生成するブロツク内ア
    ドレス生成手段と、 前記ブロツクアドレス演算手段と前記ブロツク
    内アドレス生成手段とに接続される一次元アドレ
    スを保持する出力レジスタとから構成されること
    を特徴とする多次元配列のブロツク化アドレツシ
    ング装置。
JP61078655A 1986-04-04 1986-04-04 多次元配列のブロツク化アドレツシング装置 Granted JPS62235659A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61078655A JPS62235659A (ja) 1986-04-04 1986-04-04 多次元配列のブロツク化アドレツシング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61078655A JPS62235659A (ja) 1986-04-04 1986-04-04 多次元配列のブロツク化アドレツシング装置

Publications (2)

Publication Number Publication Date
JPS62235659A JPS62235659A (ja) 1987-10-15
JPH0559453B2 true JPH0559453B2 (ja) 1993-08-31

Family

ID=13667873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61078655A Granted JPS62235659A (ja) 1986-04-04 1986-04-04 多次元配列のブロツク化アドレツシング装置

Country Status (1)

Country Link
JP (1) JPS62235659A (ja)

Also Published As

Publication number Publication date
JPS62235659A (ja) 1987-10-15

Similar Documents

Publication Publication Date Title
US5111389A (en) Aperiodic mapping system using power-of-two stride access to interleaved devices
CN108241890B (zh) 一种可重构神经网络加速方法及架构
Brandt Multigrid solvers on parallel computers
Gustavson et al. Recursive blocked data formats and BLAS’s for dense linear algebra algorithms
US5467459A (en) Imaging and graphics processing system
JP3639323B2 (ja) メモリ分散型並列計算機による連立1次方程式計算処理方法および計算機
US6381668B1 (en) Address mapping for system memory
JPH06318154A (ja) 算術演算の必要性を最小にする方法及びそのための結果キャッシュ
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
Ito et al. A special-purpose computer for gravitational many-body systems: GRAPE-2
JPH0812636B2 (ja) 仮想記憶制御方式の計算機システム
KR100474357B1 (ko) 다단계 분할을 이용한 기억소자 할당방법
JPH06162227A (ja) ベクトル並列計算機
US5900023A (en) Method and apparatus for removing power-of-two restrictions on distributed addressing
CA1115425A (en) Data processor with address extension
JP2814860B2 (ja) 画像拡大縮小装置
JPH0559453B2 (ja)
EP0313787A2 (en) A hardware mechanism for the dynamic customization of permutation using bit-matrix multiplication
JPH0289132A (ja) 論理アドレス生成方式
JPH0214364A (ja) 多次元配列の一次元記憶空間への写像・参照方式
JPH0559454B2 (ja)
JPH0522238B2 (ja)
Ye et al. High-performance NTT architecture for large integer multiplication
JP2806262B2 (ja) マルチプロセッサシステムのプロセス割当方法
JP2005189970A (ja) 多次元配列アクセス方法、多次元配列アクセス装置、メモリ制御装置、およびフーリエ変換装置