JP2001188675A - データ転送装置 - Google Patents

データ転送装置

Info

Publication number
JP2001188675A
JP2001188675A JP37258699A JP37258699A JP2001188675A JP 2001188675 A JP2001188675 A JP 2001188675A JP 37258699 A JP37258699 A JP 37258699A JP 37258699 A JP37258699 A JP 37258699A JP 2001188675 A JP2001188675 A JP 2001188675A
Authority
JP
Japan
Prior art keywords
length
value
register
data transfer
holding
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
JP37258699A
Other languages
English (en)
Inventor
Eiji Nomura
英司 野村
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 Engineering Ltd
Original Assignee
NEC Engineering 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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP37258699A priority Critical patent/JP2001188675A/ja
Publication of JP2001188675A publication Critical patent/JP2001188675A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 データの一部切出しをして転送する際に、そ
の切出しが任意のn次元の切出しであっても1命令で転
送可能にする。 【解決手段】 各次元のディスタンスの値や各次元のデ
ィスタンスごとのアドレス計算途中の値を保持するメモ
リ205,206と、各次元の初期レングス値を保持するレン
グスレジスタ111,121と、レングスを減算した結果を保
持するレングス計算レジスタ112,122,132を備える。
減算器106は、各レングス計算レジスタ112,122,132の
減算に共用され、データ転送ごとに1つずつ順次に減算
する。レングスの減算結果が1になるタイミングで、2
つメモリ205,206の該当する番地を読み出し、読み出さ
れたメモリ205と1タイミング前のレジスタ202の値か、
読み出されたアドレス計算保持レジスタ206の値を加算
し、その加算結果をアドレスレジスタ202に保持するこ
とで、アドレスを出力していく。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ転送装置、特
に、並列計算機におけるディスタンス転送の高速化を実
現するデータ転送装置に関する。
【0002】
【従来の技術】並列計算機間のデータ転送を高速に行う
データ転送方式としてディスタンス転送が知られてい
る。ディスタンス転送とは、並列計算機のメモリの連続
データを一定間隔の距離(ディスタンス)ごとに切り出
し、他の並列計算機に転送するデータ転送方式をいう。
一般的に、ディスタンスごとのデータの切出しには、ソ
フトウェア上で実行するループを用いて行う方法がある
が、この方法では切り出すデータの数だけ命令を与えな
くてはならなく、これが大きなオーバヘッドとなってい
る。そこで、近年、オーバヘッドの軽減、すなわち、い
くつかのデータを1命令でまとめて転送することが要求
されている。
【0003】この要請に応えるために、例えば、特開平
8-235135号公報に記載の技術では、データ転送を開始す
る先頭要素のアドレス( ベースアドレス),ディスタ
ンスおよびデータ転送の要素数(レングス)を1命令で
与えて、切り出すデータのメモリアドレスをレングスの
数だけ計算し、データの転送を行うことが提案されてい
る。この公開公報に開示された手法は、図10に示すよ
うに、ベースアドレスレジスタ301,ディスタンスレジ
スタ302,レングスレジスタ303,アドレスレジスタ30
4,アドレス加算器305およびレングス減算器306を備
え、1アクセスごとに1アクセス前のアドレス加算結果
を保持するアドレスレジスタ304とディスタンスレジス
タ302の各値を加算した値のアドレスによって、アドレ
スレジスタ304を更新し、レングスの値だけそのアドレ
スにアクセスするものである。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た従来技術では、ディスタンスが1種類しかないため、
1次元的な切り出しは1命令でできるが、2次元あるい
は3次元的なデータの切出しが必要とされるアプリケー
ションにおいては、やはり、ディスタンスを変更するご
とに命令を追加しなければならなくなるため、複数の命
令群を必要としてしまい、本来、不必要とされるオーバ
ヘッドが生じるという問題点がある。
【0005】本発明の主な目的は、1次元,2次元,3
次元のデータの切出しはもちろん、任意のn次元でのデ
ータの切出しを1命令で行えるデータ転送装置を提供す
ることにある。
【0006】
【課題を解決するための手段】第1の本発明のデータ転
送装置は、多次元のデータの切出しを伴う並列計算機の
データ転送装置において、データ転送のためにアクセス
すべきデータの差分(ディスタンス)およびデータ転送
の要素数(レングス)がそれぞれn個あるとき、前記デ
ィスタンスの大きさをn次元のデータ切出しをするため
の次元に切り替えるメモリ上でのアドレスの間隔とし、
次元を切り替えるまでの要素数を前記レングスとして、
n次元のデータを切り出すためのアドレス計算を1命令
で行なうことを特徴とする。
【0007】第2の本発明のデータ転送装置は、n次元
のデータの切出しを伴う並列計算機のデータ転送装置に
おいて、それぞれがデータ転送の要素数(レングス)を
保持するn個の初期レングス保持手段と、データ転送の
実行ごとに前記レングスを順次に減算する減算手段と、
それぞれが前記減算結果を保持するn個のレングス保持
手段と、それぞれがデータ転送のためにアクセスすべき
データの差分(ディスタンス)を保持するn個のディス
タンス保持手段と、前記レングス分のデータ転送が終了
するごとに、対応する前記ディスタンスを該データ転送
のベースアドレスに順次に加算する加算手段と、前記加
算結果を保持するn個のアドレス保持手段とを備え、1
命令によって前記減算および加算をn個の前記レングス
および前記ディスタンスについて実行することを特徴と
する。
【0008】第3の本発明のデータ転送装置は、3次元
のデータの切出しを伴う並列計算機のデータ転送装置に
おいて、データ転送の要素数(レングス)について保持
・減算を行なうレングス計算部およびデータ転送のため
にアクセスすべきデータの差分(ディスタンス)につい
て保持・加算を行なうディスタンス計算部を有し、前記
レングス計算部は、データ転送の初期第1レングス値を
保持する第1レングスレジスタと、データ転送の初期第
2レングス値を保持する第2レングスレジスタと、前記
初期第1レングス値からの減算結果を保持する第1レン
グス計算レジスタと、前記初期第2レングス値からの減
算結果を保持する第2レングス計算レジスタと、データ
転送の初期第3レングス値を保持するとともに該初期第
3レングス値からの減算結果を保持する第3レングス計
算レジスタと、データ転送ごとに前記第1レングス計算
レジスタを最下位桁として、順次に前記第2レングス計
算レジスタおよび前記第3レングス計算レジスタまでを
1つずつ減算する減算器とを備え、前記ディスタンス計
算部は、第1,第2およ第3レングス対応の第1,第2
および第3ディスタンスを保持するディスタンス格納メ
モリと、該データ転送のベースアドレスに前記第1,第
2および第3ディスタンス値を加算した結果を保持する
アドレス計算保持メモリと、前記第1レングス計算レジ
スタの値が1になると前記第2ディスタンス値の加算、
前記第2レングス計算レジスタの値が1になると前記第
3ディスタンス値の加算、その他の場合には前記第1デ
ィスタンス値の加算を行なう加算器と、該加算器の出力
を保持するアドレスレジスタとを備えることを特徴とす
る。
【0009】第4の本発明のデータ転送装置は、3次元
のデータの切出しを伴う並列計算機のデータ転送装置に
おいて、データ転送の要素数(レングス)について保持
・減算を行なうレングス計算部およびデータ転送のため
にアクセスすべきデータの差分(ディスタンス)につい
て保持・加算を行なうディスタンス計算部を有し、前記
レングス計算部は、データ転送の初期第1レングス値を
保持する第1レングスレジスタと、データ転送の初期第
2レングス値を保持する第2レングスレジスタと、デー
タ転送の初期総レングス値を保持するとともに該初期総
レングス値からの減算結果を保持する総レングス計算レ
ジスタと、前記初期第1レングス値からの減算結果を保
持する第1レングス計算レジスタと、前記初期第2レン
グス値からの減算結果を保持する第2レングス計算レジ
スタと、データ転送ごとに前記総レングス計算レジスタ
を1つずつ減算する第1の減算器と、前記第1レングス
計算レジスタを最下位桁として、順次に前記第2レング
ス計算レジスタまでを1つずつ減算する第2の減算器と
を備え、前記ディスタンス計算部は、第1,第2およ第
3レングス対応の第1,第2および第3ディスタンス値
を保持するディスタンス格納メモリと、該データ転送の
ベースアドレスに前記第1,第2および第3ディスタン
ス値を加算した結果を保持するアドレス計算保持メモリ
と、前記第1レングス計算レジスタの値が1になると前
記第2ディスタンスの加算、前記第2レングス計算レジ
スタの値が1になると前記第3ディスタンス値の加算、
その他の場合には前記第1ディスタンス値の加算を行な
う加算器と、該加算器の出力を保持するアドレスレジス
タとを備えることを特徴とする。
【0010】第5の本発明のデータ転送装置は、3次元
のデータの切出しを伴う並列計算機のデータ転送装置に
おいて、データ転送の要素数(レングス)について保持
・減算を行なうレングス計算部およびデータ転送のため
にアクセスすべきデータの差分(ディスタンス)につい
て保持・加算を行なうディスタンス計算部を有し、複数
アドレスから成るブロック単位のブロックデータ転送を
行うために、前記レングス計算部は、データ転送の初期
第1レングス値を保持する第1レングスレジスタと、デ
ータ転送の初期第2レングス値を保持する第2レングス
レジスタと、データ転送の初期総レングス値を保持する
とともに該初期総レングス値に対する減算結果を保持す
る総レングス計算レジスタと、前記初期第1レングス値
からの減算結果を保持する第1レングス計算レジスタ
と、前記初期第2レングス値からの減算結果を保持する
第2レングス計算レジスタと、ブロックデータ転送ごと
に前記総レングス計算レジスタを、前記初期第1レング
ス値を所定のブロック数で分割したブロック値ずつ減算
する第1の減算器と、前記ブロックデータ転送ごとに前
記第1レングス計算レジスタを前記ブロック値ずつ減算
する第2の減算器と、前記初期第1レングス値分の前記
ブロックデータ転送が終了するごとに前記第2レングス
計算レジスタを1つずつ減算する第3の減算器とを備
え、前記ディスタンス計算部は、第1,第2およ第3レ
ングス対応の第1,第2および第3ディスタンスを保持
するディスタンス格納メモリと、該データ転送のベース
アドレスに前記第1,第2および第3ディスタンスを加
算した結果を保持するアドレス計算保持メモリと、前記
初期第1レングス値分の前記ブロックデータ転送が終了
すると前記第2ディスタンス値の加算、前記第2レング
ス計算レジスタの値が1になると前記第3ディスタンス
値の加算、その他の場合には前記第1ディスタンス値の
加算を行なう加算器と、該加算器の出力を保持するアド
レスレジスタとを備えることを特徴とする。
【0011】第6の本発明のデータ転送装置は、n次元
のデータの切出しを伴う並列計算機のデータ転送装置に
おいて、データ転送の要素数(レングス)について保持
・減算を行なうレングス計算部およびデータ転送のため
にアクセスすべきデータの差分(ディスタンス)につい
て保持・加算を行なうディスタンス計算部を有し、複数
アドレスから成るブロック単位のブロックデータ転送を
行うために、前記レングス計算部は、データ転送の初期
第1レングス値を保持する第1レングスレジスタと、デ
ータ転送の初期第2レングス値〜初期第nレングス値を
保持するレングス格納メモリと、データ転送の初期総レ
ングス値を保持するとともに該初期総レングス値に対す
る減算結果を保持する総レングス計算レジスタと、前記
初期第1レングス値からの減算結果を保持する第1レン
グス計算レジスタと、前記初期第2レングス値〜前記初
期第nレングス値からの減算結果を保持するレングス計
算保持メモリと、データ転送ごとに前記総レングス計算
レジスタを、前記初期第1レングス値を所定のブロック
数で分割したブロック値ずつ減算する第1の減算器と、
データ転送ごとに前記第1レングス計算レジスタを前記
ブロック値ずつ減算する第2の減算器と、前記第1レン
グス計算レジスタの値が1になると、前記レングス計算
保持メモリが保持する該当減算結果を順次に1つ減算す
る第3の減算器とを備え、前記ディスタンス計算部は、
第1,第2およ第3レングス対応の第1,第2および第
3ディスタンス値を保持するディスタンス格納メモリ
と、該データ転送のベースアドレスに前記第1,第2お
よび第3ディスタンス値を加算した結果を保持するアド
レス計算保持メモリと、前記第1レングス計算レジスタ
の値が前記ブロック値以下になると前記第2ディスタン
スの加算、前記第2レングス計算レジスタの値が1にな
ると前記第3ディスタンス値の加算、その他の場合には
前記第1ディスタンス値の加算を行なう加算器と、該加
算器の出力を保持するアドレスレジスタとを備えること
を特徴とする。
【0012】具体的には、本発明によるデータ転送装置
は、レングス計算のために、第1レングスレジスタ(図
1の111),第2レングスレジスタ(図1の121)と、第
1レングス計算レジスタ(図1の112)〜第3レングス
計算レジスタ(図1の132)のように、各レングスにレ
ングスレジスタとレングス計算レジスタを設けている。
ここで、レングスとは各次元の転送要素数をいう。例え
ば、第1レングスとは1次元で切り出す要素数で、第2
レングスとは第1レングスで示された要素群の数(第2
ディスタンスのブロック数)である。
【0013】また、ディスタンスの計算が同時に複数で
は行われないことに注目して、加算器を1つだけ設け
て、各ディスタンスの値および各ディスタンスの計算結
果をディスタンス格納メモリ205とアドレス計算保持メ
モリ206に保持することを特徴としている。
【0014】各ディスタンスの計算は、レングス計算レ
ジスタの値が1になるまで加算し、その加算結果をその
アドレス計算保持メモリ206の該当番地に上書きし続け
る。すなわち、レングスレジスタは、レングスの値を保
持し、またレングス計算レジスタには 各次元のディス
タンスの要素数を減算していき、ディスタンスを変える
タイミングを計っている。従って、それぞれn個のディ
スタンス、レングスの値を1命令で受け取ると、nディ
スタンス転送、すなわち、n次元のデータの切出しが1
命令でできるようになる。
【0015】
【発明の実施の形態】本発明の上記および他の目的,特
徴および利点を明確にすべく、以下添付した図面を参照
しながら、本発明の実施の形態につき詳細に説明する。
【0016】本発明の具体的な説明に入る前に、まず、
本発明が採用する多次元的なデータの切り出しについて
簡単に説明する。並列計算機のデータ転送装置におい
て、データ転送を開始する先頭要素のアドレス(ベース
アドレス),データ転送のためにアクセスすべきデータ
の差分(ディスタンス)およびデータ転送の要素数(レ
ングス)を用いてアドレス計算をする際に、n個のディ
スタンスおよびレングスの値があるとき、ディスタンス
の大きさをn次元のデータ切出しをするための次元に切
り替えるメモリ上でのアドレスの間隔とし、次元を切り
替えるまでの要素数をレングスとすれば、n次元のデー
タの切り出すためのアドレスが計算できる。
【0017】図9は3次元モデルのデータ切出しのイメ
ージ図であって、d1,d2およびd3によって方向付けられ
る立方体で3次元の展開を表現している。ここで、1次
元のデータの切出しを1命令でできる転送を1ディスタ
ンス転送、2次元のデータの切出しを1命令でできる転
送を2ディスタンス転送、同様に、任意のn次元のデー
タの切出しを1命令でできる転送をnディスタンス転送
と呼ぶこととする。したがって、図9は3ディスタンス
転送で実現できる、3次元のデータの切出しイメージを
示すことになる。
【0018】図8は、このような3次元モデルのデータ
の切出しを行なったときの1次元的な実際のメモリにお
けるアドレス展開の様子を示す。図8において、白い小
円はアドレスを表しており、ベースアドレスBAから第1
ディスタンス値D1の間隔で第1レングス値L1だけ続いて
いる。これが1次元の展開である。そして、この第1レ
ングス値L1のアドレス群が第2ディスタンス値D2の間隔
で第2レングス値L2だけ続く。これが2次元の展開であ
る。更に、この第2レングス値L2のアドレス群が第3デ
ィスタンス値D3の間隔で第3レングス値L3だけ続く。こ
こで、第1,第2および第3の各ディスタンス値D1,D2,
D3はそれぞれ異なっていてもよく、また、第1,第2お
よび第3の各レングス値L1,L2,L3もそれぞれ異なってい
てもよい。
【0019】次に、本発明が適用されるノード間データ
転送について簡単に説明する。図7は2台の計算ノード
3および4がノード間ネットワーク5を介してデータ転送
を行う場合の概略図である。いま、計算ノード3がマス
タとなって計算ノード4との間でデータ転送を行うもの
として説明する。
【0020】CPU31はノート゛間転送命令を発行する前に、
データ転送の実行に必要なパラメータを作成し、メモリ
ネットワーク33を介して主記憶装置34に格納する。続い
て、CPU31はノード間データ転送命令を発行する。この
命令は、メモリネットワーク33を経由して、データ転送
装置32に送られる。また、この命令には、先にパラメー
タを格納した主記憶装置34のアドレスを含む。データ転
送装置32は主記憶装置34から、そのパラメータをフェッ
チする。データ転送装置32はデータ転送装置42との間で
データ転送を行ない、この結果、CPU31は主記憶装置44
との間でデータの授受を行なうことができる。データ転
送装置32はデータ転送が終了すると終了報告を主記憶装
置34に書き込む。CPU31は終了報告を監視しており、こ
れを読み取ることによってデータ転送の終了を確認す
る。
【0021】さて、図1を参照すると、本発明の一実施
の形態としてのデータ転送装置が示されている。本デー
タ転送装置は、3次元のデータ切出しを1命令でできる
3ディスタンス転送対応のものであり、レングス計算部
11とディスタンス計算部2を有する。
【0022】レングス計算部1は、1次元,2次元およ
び3次元の各データ切出しに対応する部分と、各次元に
共通する部分とが有る。すなわち、第1レングスレジス
タ111,第1レングス計算レジスタ112,セレクタ113,
比較器114および第1レングス終端レジスタ115は第1次
元対応、第2レングスレジスタ121,第2レングス計算
レジスタ122,セレクタ123,比較器124および第2レン
グス終端レジスタ125は第2次元対応、第3レングス計
算レジスタ132,セレクタ133,比較器134および第3レ
ングス終端レジスタ135は第3次元対応の部分であり、
アンドゲート101,減算器106およびセレクタ107は共通
部分である。
【0023】L1,L2,L3はそれぞれ第1レングス値,第2
レングス値,第3レングス値である。Vはこれらの各値
が有効であることを示すバリッドビットであって、前述
のパラメータの一部を成し、データ転送開始に当たり、
第1レングス値L1等が入力する1タイミングだけ有効化
される。
【0024】第1レングスレジスタ111は初期第1レン
グス値L10を格納する。セレクタ113は、バリッドビット
Vが有効なら初期第1レングス値L10、第1レングス終端
レジスタ115の内容が“1”なら第1レングスレジスタ1
11が保持する初期第1レングス値L10、その他の場合に
は減算器104の出力をそれぞれ受け入れて、第1レング
ス計算レジスタ112に出力する。これは、それぞれ初期
設定、第1レングスレジスタ112への再度の(次の高次
元についての)初期第1レングス値L10の設定および減
算結果(カレントな第1レングス値L1)の格納に対応す
る。第1レングス計算レジスタ112はセレクタ113の出力
を格納し、その出力はセレクタ107に入力して減算の対
象に供される。比較器114はセレクタ113の出力を“1”
と比較し、等しいときに、すなわち1次元のデータ転送
が終了ときに第1レングス終端レジスタ115に“1”を
出力する。
【0025】第2レングスレジスタ121は初期第2レン
グス値L20を格納する。セレクタ123は、バリッドビット
Vが有効なら初期第2レングス値L20、第1レングス終端
レジスタ115の内容が“1”なら減算器106の出力、第2
レングス終端レジスタ125の内容が“1”なら第2レン
グスレジスタ121が保持する初期第2レングス値L20、そ
の他の場合には第2レングス計算レジスタ122の出力を
それぞれ受け入れて、第2レングス計算レジスタ122に
出力する。これは、初期設定、1次元のデータ転送終了
に伴う第2レングス値L2の減算、第2レングス計算レジ
スタ122への再度の(次の高次元についての)初期第2レ
ングスL20の設定および第2レングス値L2の保持に対応
する。第2レングス計算レジスタ122はセレクタ123の出
力を格納し、その出力はセレクタ107に入力して減算の
対象に供される。比較器124はセレクタ123の出力を
“1”と比較し、等しいとき、すなわち2次元のデータ
転送が終了ときに第2レングス終端レジスタ125に
“1”を出力する。
【0026】3次元対応の回路については、それが最終
のレングス計算対応であることから、第3レングスレジ
スタというのは存在しない。セレクタ133は、バリッド
ビットVが有効なら入力する初期第3レングス値L30、第
2レングス終端レジスタ125が“1”なら減算器106の出
力、その他の場合には第3レングス計算レジスタ132の
出力をそれぞれ受け入れて第3レングス計算レジスタ13
2に出力する。これは、初期設定、2次元のデータ転送
終了に伴う第3レングス値L3の減算および第3レングス
値L3の保持に対応する。比較器134はセレクタ133の出力
を“1”と比較し、等しいとき、すなわち2次元のデー
タ転送が終了ときに第3レングス終端レジスタ135に
“1”を出力する。
【0027】セレクタ107は、第1レングス終端レジス
タ115が“1”を保持するときに第2レングス計算レジ
スタ122の出力、第2レングス終端レジスタ125が“1”
を保持するときに第3レングス計算レジスタ132の出
力、その他のときに第1レングス計算レジスタ112の出
力をそれぞれ受け入れて減算器106に出力する。これら
の意義は、上述の説明ならびに図8および図9を参照す
ることによって容易に理解し得るであろう。セレクタ10
7の出力は減算器106に入力し、そこで1だけ減算されて
セレクタ113,123およびセレクタ133に供給される。減
算器106における減算は、上述の説明から明らかなよう
に、第1レングス値L1,第2レングス値L2,第3レング
ス値L3のいずれかの2つ以上について同時に行なわれる
ことはない。そこで、物量が多くなってしまう減算器10
6を各次元に共通使用して、物量を削減したのである。
【0028】アンドゲート101は第1レングス終端レジ
スタ115,第2レングス終端レジスタ125および第3レン
グス終端レジスタ135の出力の論理積をとり、全ての出
力が“1”であるときにレングス計算の終了を認識し、
前述の終了報告を主記憶装置34に書き込む。
【0029】次ぎに、ディスタンス計算部2について説
明する。ディスタンス計算部2は、図1に示すとおり、
加算器201,アドレスレジスタ202,3つのセレクタ203,
207,208,オアゲート204,ディスタンス格納メモリ205
およびアドレス計算保持メモリ206から成る。
【0030】ディスタンス格納メモリ205は、ディスタ
ンス値を保持するメモリであり、データ転送開始時に主
記憶装置34から第1,第2および第3の各ディスタンス
値D1,D2およびD3が3つのアドレスにそれぞれ書き込ま
れる。その経路は図面の煩雑化を回避するために省略し
ている。そして、第1レングス終端レジスタ115が
“1”のときにはD2、第2レングス終端レジスタ125が
“1”のときにはD3、その他のときにはD1がそれぞれ加
算器203に読み出される。
【0031】アドレス計算保持メモリ206は、アドレス
計算の結果を保持するメモリであって、データ転送開始
時に主記憶装置34からベースアドレス値BAがセレクタ20
8を介して4つのアドレスに書き込まれる。なお、4つ
のアドレスの内の1つは、動作中に何らか原因でベース
アドレス値BAが失われたときの予備のためのものであ
る。アドレス計算保持メモリ206の読出しは、ディスタ
ンス格納メモリ205の読出しと同じであって、図1に示
されるように、その読出しアドレスはディスタンス格納
メモリ205の読出しアドレスと同じである。アドレス計
算保持メモリ206の内容として書き入れられた“BA+nD
1”等はn回目のアドレス計算の結果を示す。読み出され
たアドレス計算の結果はセレクタ203に供給される。
【0032】セレクタ203は、オアゲート204が“1”を
出力するときにはアドレス計算保持メモリ206の出力を
選択し、“0”を出力するときにはアドレスレジスタ20
2の出力を選択する。オアゲート204は、第1レングス終
端レジスタ115および第2レングス終端レジスタ125の論
理和演算を行ない、その結果をセレクタ203に出力す
る。加算器201は、ディスタンス格納メモリ205から読み
出してきたディスタンス値とセレクタ203が選択したア
ドレス計算結果とを加算し、セレクタ207経由でアドレ
スレジスタ202に出力する。アドレスレジスタ202は、そ
の加算結果を保持する。加算結果はセレクタ207経由で
アドレス計算保持メモリ206に、また、アドレスレジス
タ202の保持内容はセレクタ203にそれぞれ返される。ア
ドレスレジスタ202の保持内容はデータ転送のためのア
ドレスとして使用される。なお、セレクタ207は、バリ
ッドビットVが有効なときにはベースアドレス値BA、無
効なときには加算器203の出力を受け入れる。
【0033】さて、次に、本実施の形態の動作について
図2に示すフローチャートを参照して説明する。
【0034】<動作1>まず、ベースアドレス値BA,第
1ディスタンス値D1,第2ディスタンス値D2,第3ディ
スタンス値D3,初期第1レングス値L0,初期第2レング
ス値L20および初期第3レングス値L30を図7の主記憶装
置34から受け取り、それぞれ、アドレス計算保持メモリ
206の第1〜第4番地,ディスタンス格納メモリ205の第
1番地,第2番地,第3番地,第1レングスレジスタ11
1および第1レングス計算レジスタ112,第2レングスレ
ジスタ121および第2レングス計算レジスタ122,第3レ
ングス計算レジスタ132に書き込む(図2のステップS
1〜S4)。
【0035】この場合、初期第1レングス値L10,初期
第2レングス値L20,初期アドレス値BAが、それぞれ第
1レングスレジスタ111,第2レングスレジスタ121,ア
ドレスレジスタ202に書き込まれるのは図1から明らか
である。初期第1レングス値〜初期第3レングス値L10
〜L30が対応するレングス計算レジスタ112〜132に書き
込まれるのは、バリッドビッドVが有効なことからセレ
クタ113〜133,207がこれらを受け入れることによる。
【0036】<動作2>次に、ディスタンス格納メモリ
205の第1番地から読み出した第1ディスタンス値D1
と、アドレスレジスタ202から読み出した値を加算器201
が加算し(ステップS5)、その計算結果をアドレスレ
ジスタ202に書き込む。これは、このときには、“その
他”の場合に該当するので、ディスタンス格納メモリ20
5の第1番地とアドレス計算保持メモリ206の第2番地が
選択されるが、オアゲート204は“0”を出力している
(バリッドビッドVが“0”)のでセレクタ203はアドレ
スレジスタ202の出力を受け入れることによる。同時に
アドレス計算保持メモリ206の第1ディスタンスの計算を
保持する第2番地に上述の加算結果を上書きする。な
お、アドレス計算保持メモリ206の第1番地に書き込ま
れたBAは故障に備える冗長なデータとして扱われる。
【0037】一方、レングス計算部11においては、第1
レングス終端レジスタ115および第2レングス終端レジ
スタ125が“1”ではないため、セレクタ107は第1レン
グス計算レジスタ112の出力を選択するので、減算器106
は第1レングス値L1を1つ減算する(ステップS6)。
このときにはバリッどビットVはもはや“1”ではなく
なっているため、セレクタ113は減算器107の出力を選択
し、それは第1レングス計算レジスタ112に書き込まれ
る。
【0038】<動作3>上述の動作は、第1レングス値
L1=1になるまで続けられ(ステップS7)、その中で
L1を1ずつ減算し(ステップS6)、その結果は第1レ
ングス計算レジスタ112に書き込まれていく。これと同
時に、ディスタンス格納メモリ205の第1番地から読み
出した第1ディスタンス値D1と、アドレスレジスタ202
の値を加算し(ステップS5)、その計算結果をアドレ
スレジスタ202に書き込み、また、アドレス計算保持メ
モリ206の第1ディスタンスの計算結果を保持する第2
番地に上書きしていく。この間、オアゲート204は
“0”を出力しているので、セレクタ203はアドレスレ
ジスタ202の出力を選択する。また、セレクタ113は減算
器106、セレクタ123は第2レングス計算レジスタ122、セ
レクタ133は第3レングス計算レジスタ132の各出力を選
択している。
【0039】<動作4>第1レングス値L1=1になると
(ステップS7)、第1レングス終端レジスタ115は
“1”を出力するため、次のタイミングで、ディスタン
ス格納メモリ205の第2番地から読み出した第2ディス
タンス値D2と、アドレス計算メモリ206の第2ディスタ
ンスの計算結果を保持する第3番地の値(初期値である
ベースアドレス値BA)を加算し(ステップS9)、その
計算結果をアドレスレジスタ202に書き込む。同時にア
ドレス計算保持メモリ206の第2ディスタンスの計算結
果を保持する第3番地に上書きする。このとき、オアゲ
ート204は“1”を出力し、これによってセレクタ203は
アドレス計算保持メモリ206の出力を受け入れる。
【0040】これと同じタイミングで、第2レングス計
算レジスタ122の値を1減算し、(ステップS10)、
第2レングス計算レジスタ122に書き込む。これは、こ
のときには第1レングス終端レジスタ115が“1”を出
力するので、セレクタ107は第2レングス計算レジスタ1
22の出力を選択し、かつ、セレクタ123は減算器106の出
力を選択することによる。また、セレクタ113は第1レ
ングスレジスタ111を選択するため、第1レングス計算
レジスタ114には第1レングスレジスタ111が保持してい
る初期第1レングス値L10が書き込まれる(ステップS
4)。なお、ステップS11は、次元が1次元から2次
元に変わったことによるベースアドレスの移動である。
【0041】<動作5>上述の<動作>および<動作4
>は、第2レングス値L2=1になるまで(ステップS
8)繰り返される(ステップS4)。
【0042】<動作6>第2レングス値L2=1(ステッ
プS8)、かつL1=1になった次のタイミングで、ディ
スタンス格納メモリ205の第3番地から読み出した第3
ディスタンス値D3と、アドレス計算メモリ206の第3デ
ィスタンスの計算結果を保持する第4番地の値(初期値
BA)を加算し(ステップS14)、その計算結果をアド
レスレジスタ202に書き込むと同時にアドレス計算保持
メモリ206の第3ディスタンスの計算結果を保持する第
4番地に上書きする。このとき、オアゲート204は
“1”を出力し、これによってセレクタ203はアドレス
計算保持メモリ206の出力を受け入れる。
【0043】これと同じタイミングで、第3レングス計
算レジスタ132には、1減算した(ステップS16)結
果が書き込まれる。これは、このときには第2レングス
終端レジスタ125が“1”を出力するので、セレクタ107
は第3レングス計算レジスタ132の出力を選択し、かつ
セレクタ133は減算器106の出力を選択することによる。
また、セレクタ123は第2レングスレジスタ121を選択す
るため、第2レングスレジスタ121の値L2を第2レング
ス計算レジスタ112に書き込み(ステップS3)、第1
レングス計算レジスタ112には第1レングスレジスタが
保持している初期第1レングス値L10が書き込まれる
(ステップS4)。なお、ステップS14は、新たな3
次元に移動したことによる1次元レベルのベースアドレ
スの移動であり、ステップS15は、新たな3次元に移
動したことによる2次元レベルのベースアドレスの移動
である。
【0044】<動作7><動作3>〜<動作6>はL3=
1になるまで(ステップS12)、繰り返される。ステ
ップS12でL3=1(L2=L1=1でもある)になった時
を最後にデータ転送を終える。このとき、アンドゲート
101は“1”を主記憶装置34に出力して終了報告をする
ことになる。
【0045】この例によると、ベースアドレス値BA,第
1ディスタンス値D1,第2ディスタンス値D2,第3ディス
タンス値D3,初期第1レングス値L10,初期第2レング
ス値L2 0および初期第3レングスL30が1命令で与えられ
たら、アクセスする3次元のデータのアドレスをすべて
ハードウェアで計算し、出力することができる。これ
は、一般にディスタンスの値がn個であっても、1命令
で与えられたら、すべてのアドレスを一命令で出力する
ことができることを意味し、この結果、任意のn次元モ
デルについて、不要なオーバヘッドをなくすことがで
き、データ転送の高速化を実現することができる。
【0046】次に、本発明の第2の実施の形態として、
第3レングス計算レジスタ132の代りに総レングスと総
レングスを順次減算するための減算器109をはじめ、セ
レクタ103,総レングス計算レジスタ102,比較器104お
よび総レングス終端レジスタ105を設けた例を説明す
る。この例では、3次元の切出しの途中であってもデー
タ転送を終了することが可能になる。構成を図3に示
す。この場合の動作は、第1の実施の形態における動作
説明の<動作5>以外を以下のように置き換えることに
より説明できる。なお、第1の実施の形態についての上
述の説明と重複する点およびその説明から容易に類推で
きる点は説明を省略する。
【0047】<動作1>まず、ベースアドレス値BA,第
1ディスタンス値D1,第2ディスタンス値D2,第3ディ
スタンス値D3,初期総レングス値L0,初期第1レングス
値L10,初期第2レングス値L20を図7の主記憶装置34か
ら受け取り、それぞれ対応する各レジスタおよびメモリ
に書き込む。セレクタ103はバリドビットVが有効なとき
だけ入力される総レングス値Lを受け入れ、その他のと
きには減算器109の出力を受け入れ総レングス計算レジ
スタ102に出力する。総レングス計算レジスタ102の出力
は比較器104で1と比較され、1と等しくなると終了報
告がされる。
【0048】<動作2>次に、ディスタンス格納メモリ
205の第1番地から読み出した第1ディスタンス値D1
と、アドレスレジスタ202から読み出した値(初期値で
あるベースアドレス値BA)を加算し、その計算結果をア
ドレスレジスタ202に書き込むと同時に、アドレス計算
保持メモリ202の第1ディスタンスの計算結果を保持す
る第2番地に上書きする。また、これと同時に減算器10
9は総レングス値L、減算器106は第1レングス値L1を1
ずつ減算し、その結果をそれぞれ総レングスレジスタ10
2と第1レングス計算レジスタ112に書き込む。
【0049】<動作3>L1=1になるまでLおよびL1を
1ずつ減算し、その結果をそれぞれ総レングスレジスタ
102と第1レングス計算レジスタ112に書き込む。これと
同時にディスタンス格納メモリ205の第1ディスタンス
値D1を格納している第1番地から読み出した 第1ディ
スタンス値D1と、アドレスレジスタ202の値を加算し、
その計算結果をアドレスレジスタ202に書き込み、また
アドレス計算保持メモリ206の第1ディスタンスの計算
結果を保持する第2番地に上書きしていく。
【0050】<動作4>L1=1なった次のタイミング
で、ディスタンス格納メモリ205の第2ディスタンス値D
2をが格納している第2番地から読み出した第2ディス
タンス値D2と、アドレス計算メモリ206の第2ディスタン
スの計算結果を保持する第3番地の値(初期値であるベ
ースアドレス値BA)を加算し、その計算結果をアドレス
レジスタ202に書き込むと同時に、アドレス計算保持メ
モリ202の第2ディスタンスの計算結果を保持する第3
番地に上書きする。また、これと同じタイミングで第2
レングスレジスタ値L2を1減算して第2レングス計算レ
ジスタ122に書き込み、また 総レングス計算レジスタ10
2には、一つ前の総レングスレジスタ値Lを1減算した結
果が書き込まれ、第1レングス計算レジスタ112には第
1レングスレジスタ111が保持している初期第1レング
ス値L10が書き込まれる。
【0051】<動作6>L2=1、かつL1=1になった次の
タイミングで、ディスタンス格納メモリ205の第3番地
から読み出した第3ディスタンス値D3と、アドレス計算
メモリ206の第3ディスタンスの計算結果をを保持する
第4番地の値(初期値であるベースアドレス値BA)を加
算し、その計算結果をアドレスレジスタ202に書き込む
と同時に、アドレス計算保持メモリ206の第3ディスタ
ンスの計算結果を保持する第4番地に上書きする。ま
た、これと同じタイミングでまた総レングス計算レジス
タ102には、1つ減算した結果が書き込まれ、第2レン
グスレジスタ121が保持している初期第2レングス値L20
が第2レングス計算レジスタ122に書き込まれ、第1レ
ングス計算レジスタ112には第1レングスレジスタ111が
保持している初期第1レングス値の値L10が書き込まれ
る。
【0052】<動作7>L=1になるまで<動作3>〜<
動作6>を繰り返す。<動作6>中にL=1になった時を
最後にデータ転送を終えるが、もちろん、<動作6>に
たどり着く前にL=1の条件を満たした場合でもデータ転
送は終わる。これは、初期第1レングス値L10と初期第
2レングス値L20とで定まる総レングス以下、または第
1の実施の形態におけるように、初期第1レングス値L1
0,初期第2レングス値L20および初期第3レングス値L3
0で定まる総レングス以下の任意の総レングスを初期総
レングス値L0によって指定するようにしたことによる。
【0053】次に、本発明の第3の実施の形態として、
第1レングスを所定の要素数でブロック分割することで
第2の実施の形態をさらに工夫した例を提示する。これ
により、ブロック分割したブロックごとにベースアドレ
ス,レングスおよびディスタンスを与え、各ブロックご
とに 同時にいくつものアドレスを出力することが可能
になり、更にデータ転送の高速化を実現することができ
る。図4は第レングスをブロック内最大要素数LBの要素
数で分割するデータ転送装置の上位部分の構成を示し、
図5はこのときフローチャートを示す。この第3の実施
の形態の図4に示す装置の動作は、第1の実施の形態に
関する動作の説明における<動作2>から<動作7>を
以下のように置き換えることで説明できる。
【0054】<動作2>次に、ディスタンス格納メモリ
205の第1ディスタンス値D1を格納している第1番地か
ら読み出した第1ディスタンスの値D1と、アドレスレジ
スタ202の値(初期値であるベースアドレス値BA)を加
算し(図5のステップT7)、その計算結果をアドレス
レジスタ202に書き込むと同時にアドレス計算保持メモ
リ206の第1ディスタンスの計算結果を保持する第2番
地に上書きしていく。また、これと同時に減算器109は
総レングス値L、減算器116は第1レングス値L1から、あ
らかじめ指定されているブロック内最大要素数LBを減算
し(ステップT8)、その結果をそれぞれ総レングス計算
レジスタ102と第1レングス計算レジスタ112に書き込
み、第1レングス計算レジスタ112の値をセレクタ10Dに
出力する。
【0055】ここで、比較器117はLBとL1を比較してお
り、LB<L1の間は“0”、LB≧L1になると“1”を出力
する。第1レングス計算レジスタ115は比較器117の出力
を保持し、セレクタ10Dは第1レングス終端レジスタ115
が“0”ならLB、“1”ならL1を選択し、次段(本デー
タ転送装置の下位部分)のレングス計算部(不図示)へ
出力する。次段のレングス計算部とは、例えば、図1に
示したようなレングス計算部11の内の第1レングス対応
部分がブロックの数だけ存在し、それぞれが同時に動作
する。その各レングス計算部はセレクタ10Dから与えら
れたLBまたはL1を図1におけるL10の代りに使用して動
作する。また、この各レングス計算部に対応するディス
タンス計算部は、図4のディスタンス計算部2のアドレ
スレジスタ202の出力にブロック間距離相当のアドレス
を加えたアドレスをベースアドレスとしてアドレス計算
を行う。
【0056】<動作3>L1≦LBになるまで(ステップ
T9)、総レングス値Lおよび第1レングス値L1をブロ
ック内最大要素数LBずつ減算し(ステップT8)、その
結果をそれぞれ総レングスレジスタ102と第1レングス計
算レジスタ112に書き込む。これと同時にディスタンス
格納メモリ205の第1ディスタンス値D1を格納している
第1番地から読み出した第1ディスタンス値D1と、アド
レスレジスタ202の値を加算し(ステップT7)、その
計算結果をアドレスレジスタ202に書き込み、またアド
レス計算保持メモリ206の第1ディスタンスの計算結果
を保持する第2番地に上書きしていく。
【0057】<動作4>L1≦LBなった(ステップT9)
次のタイミングで、ディスタンス格納メモリ205の第2
ディスタンス値D2を格納している第2番地から読み出し
た第2ディスタンス値D2と、アドレス計算保持メモリ20
6の第2ディスタンスの計算結果を保持する第3番地の
値(初期値であるベースアドレス値BA)を加算し(ステ
ップT12)、その計算結果をアドレスレジスタ202に
書き込む。同時にアドレス計算保持メモリ206の第2ディ
スタンスの計算結果を保持する第3番地に上書きする。
これと同じタイミングで第2レングスレジスタ値L2を1
減算し(ステップT13)、第2レングス計算レジスタ1
22に書き込む。また、 総レングス計算レジスタ102に
は、一つ前の総レングス計算レジスタ102の値から、LB
以下になった第1レングス計算レジスタ112の値を減算
した(ステップT10)結果が書き込まれ、第1レング
ス計算レジスタ112には第1レングスレジスタ111の値L1
が書き込まれる(ステップT6)。
【0058】<動作5>L2が1になるまで(ステップT
11)、<動作2>,<動作3>および<動作4>を繰
り返す。
【0059】<動作6>L2=1(ステップT11)、か
つ、L1≦LBになった(ステップT19)次のタイミング
で、ディスタンス格納メモリ205の第3番地から読み出
した第3ディスタンス値D3と、アドレス計算保持メモリ
206の第3ディスタンスの計算結果を保持する第4番地
の値(初期値であるベースアドレス値BA)を加算し(ス
テップT16)、その計算結果をアドレスレジスタ202
に書き込む。同時にアドレス計算保持メモリ206の第3デ
ィスタンスの計算結果を保持する第4番地に上書きす
る。また、これと同じタイミングで、総レングス計算レ
ジスタ102には、一つ前の総レングス計算レジスタ102の
値から、LB以下になった第1レングス計算レジスタ112
の値を減算した(ステップT8)結果が書き込まれ、第
2レングスレジスタ値L2を第2レングス計算レジスタ122
に書き込み(ステップT3)、第1レングス計算レジス
タ112には第1レングスレジスタ値L1が書き込まれる
(ステップT6)。
【0060】<動作7>L1≦LB(ステップT9)、か
つ、L1=L(ステップT15)になるまで<動作2>〜<
動作6>を繰り返す。<動作6>の時にL1≦LB、かつ、
L1=Lになった時を最後にデータ転送を終える。もちろ
ん、<動作6>にたどり着く前にこの条件を満たした場
合でもデータ転送は終わる。
【0061】次に、本発明の第4の実施の形態として、
その基本的構成は上記の通りであるが、第2レングスか
ら第(n-1)レングスまでのレングス計算部分の内、レ
ングスレジスタおよびレングス計算レジスタをメモリで
代替させた構成を図6に示す。図6において、レングス
格納メモリ127とレングス計算保持メモリ128は図1に示
した第2レングスレジスタ121と第2レングス計算レジ
スタ122,第3レングス計算レジスタ132の代りに置き換
えたものである。これらメモリを用いることによって、
さらなる物量削減や、LSIの小型化を実現することがで
きる。図3は第3レングスまでしかない例であるため、
レングス格納メモリ127およびレングス計算保持メモリ1
28の意義が希薄になっているが、より高次元までのデー
タの切り出しを扱う場合には、これらのメモリ化の意義
が出てくる。
【0062】なお、レングス格納メモリ127およびレン
グス計算保持メモリ128のアドレスは各次元に対応す
る。また、第2レングス計算レジスタ122,セレクタ12
3,比較器124および第2レングス終端レジスタ125は、
「第2」の名称が付いていても、第2レングスから第
(n−1)レングスまでのそれぞれに共用し得る。
【0063】
【発明の効果】本発明の効果は、1命令でnディスタン
ス転送を可能とし、従来技術ではなくすことができなか
ったオーバヘッドを軽減することができ、高速なデータ
転送を実現できることである。その理由は、n次元分の
ディスタンスをディスタンス格納メモリに格納し、アド
レス計算保持メモリは、各レングス計算レジスタの状態
に応じて、必要とする番地を読み出し各ディスタンスを
順次加算した結果を保持し、その呼び出されたアドレス
計算保持メモリの加算結果とディスタンス格納メモリの
ディスタンス値との加算結果をアドレスレジスタに書き
込み出力することが1命令でできる構成としたからであ
る。
【0064】また、n次元のデータの切出しを途中の指
定したところで終わらすことができ、それにより、不要
なデータを送出しないで済み、データ転送をより早く終
了させることができるようにすることも可能である。そ
れには、第nレングスレジスタ、第nレングス計算レジ
スタの代りに、総レングスレジスタと総レングスを順次
減算するための減算器を設けることにより、総レングス
の減算結果が“1”になった時点を最終として転送を終
了するように構成すればよい。
【0065】さらに、次元が高くなると、その分だけ必
要となる計算が増え、加算器・減算器を増えるところで
あるが、この加算器・減算器を増やすことなく計算を実
行することができ、次元を高くすることにより増える筈
の物量を増やすことなく、データ転送を実現できるよう
にすることも可能である。それには、異なるディスタン
スの計算を同時に行うことがないことや第1レングス以
降の計算を同時に行うことがないことに着目し、加算器
・減算器を共用するように構成すればよい。
【0066】なお、本発明が上記各実施例に限定され
ず、本発明の技術思想の範囲内において、各実施例は適
宜変更され得ることは明らかである。例えば、以上の説
明は、明確化を図るため、主として、3次元データの切
り出しを伴うデータ転送を例にとって行ったが、より高
次元n(n≧4)のデータの切り出しを伴う場合にも、
本発明は容易に適用できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態のブロック図
【図2】本発明の第1の実施の形態の動作経過を示すフ
ローチャート
【図3】本発明の第2の実施の形態のブロック図
【図4】本発明の第3の実施の形態のブロック図
【図5】本発明の第3の実施の形態の動作経過を示すフ
ローチャート
【図6】本発明の第4の実施の形態のブロック図
【図7】本発明が適用されるノード間データ転送システ
ムの例を示す図
【図8】3次元モデルのデータの切出しを行ったときの
具体例を示す図
【図9】3次元のデータ切出しのイメージ図
【図10】従来例の構成図
【符号の説明】
2 ディスタンス計算部 11 レングス計算部 12 レングス計算部 13 レングス計算部 14 レングス計算部 102 総レングス計算レジスタ 103 セレクタ 104 比較器 105 総レングス終端レジスタ 106 減算器 107 セレクタ 108 セレクタ 109 減算器 10A セレクタ 10B 比較器 10C アンドゲート 10D セレクタ 111 第1レングスレジスタ 112 第1レングス計算レジスタ 113 セレクタ 114 比較器 115 第1レングス終端レジスタ 116 減算器 117 比較器 121 第2レングスレジスタ 122 第2レングス計算レジスタ 123 セレクタ 124 比較器 125 第2レングス終端レジスタ 126 減算器 127 レングス格納メモリ 128 レングス計算保持メモリ 131 第3レングスレジスタ 132 第3レングス計算レジスタ 133 セレクタ 134 比較器 135 第3レングス終端レジスタ 201 加算器 202 アドレスレジスタ 203 セレクタ 204 オアゲート 205 ディスタンス格納メモリ 206 アドレス計算保持メモリ 207 セレクタ 208 セレクタ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 多次元のデータの切出しを伴う並列計算
    機のデータ転送装置において、データ転送のためにアク
    セスすべきデータの差分(ディスタンス)およびデータ
    転送の要素数(レングス)がそれぞれn個あるとき、前
    記ディスタンスの大きさをn次元のデータ切出しをする
    ための次元に切り替えるメモリ上でのアドレスの間隔と
    し、次元を切り替えるまでの要素数を前記レングスとし
    て、n次元のデータを切り出すためのアドレス計算を1
    命令で行なうことを特徴とするデータ転送装置。
  2. 【請求項2】 n次元のデータの切出しを伴う並列計算
    機のデータ転送装置において、 それぞれがデータ転送の要素数(レングス)を保持する
    n個の初期レングス保持手段と、 データ転送の実行ごとに前記レングスを順次に減算する
    減算手段と、 それぞれが前記減算結果を保持するn個のレングス保持
    手段と、 それぞれがデータ転送のためにアクセスすべきデータの
    差分(ディスタンス)を保持するn個のディスタンス保
    持手段と、 前記レングス分のデータ転送が終了するごとに、対応す
    る前記ディスタンスを該データ転送のベースアドレスに
    順次に加算する加算手段と、 前記加算結果を保持するn個のアドレス保持手段とを備
    え、1命令によって前記減算および加算をn個の前記レ
    ングスおよび前記ディスタンスについて実行することを
    特徴とするデータ転送装置。
  3. 【請求項3】 3次元のデータの切出しを伴う並列計算
    機のデータ転送装置において、 データ転送の要素数(レングス)について保持・減算を
    行なうレングス計算部およびデータ転送のためにアクセ
    スすべきデータの差分(ディスタンス)について保持・
    加算を行なうディスタンス計算部を有し、 前記レングス計算部は、 データ転送の初期第1レングス値を保持する第1レング
    スレジスタと、 データ転送の初期第2レングス値を保持する第2レング
    スレジスタと、 前記初期第1レングス値からの減算結果を保持する第1
    レングス計算レジスタと、 前記初期第2レングス値からの減算結果を保持する第2
    レングス計算レジスタと、 データ転送の初期第3レングス値を保持するとともに該
    初期第3レングス値からの減算結果を保持する第3レン
    グス計算レジスタと、 データ転送ごとに前記第1レングス計算レジスタを最下
    位桁として、順次に前記第2レングス計算レジスタおよ
    び前記第3レングス計算レジスタまでを1つずつ減算す
    る減算器とを備え、 前記ディスタンス計算部は、 第1,第2およ第3レングス対応の第1,第2および第
    3ディスタンスを保持するディスタンス格納メモリと、 該データ転送のベースアドレスに前記第1,第2および
    第3ディスタンス値を加算した結果を保持するアドレス
    計算保持メモリと、 前記第1レングス計算レジスタの値が1になると前記第
    2ディスタンス値の加算、前記第2レングス計算レジス
    タの値が1になると前記第3ディスタンス値の加算、そ
    の他の場合には前記第1ディスタンス値の加算を行なう
    加算器と、 該加算器の出力を保持するアドレスレジスタとを備える
    ことを特徴とするデータ転送装置。
  4. 【請求項4】 3次元のデータの切出しを伴う並列計算
    機のデータ転送装置において、 データ転送の要素数(レングス)について保持・減算を
    行なうレングス計算部およびデータ転送のためにアクセ
    スすべきデータの差分(ディスタンス)について保持・
    加算を行なうディスタンス計算部を有し、 前記レングス計算部は、 データ転送の初期第1レングス値を保持する第1レング
    スレジスタと、 データ転送の初期第2レングス値を保持する第2レング
    スレジスタと、 データ転送の初期総レングス値を保持するとともに該初
    期総レングス値からの減算結果を保持する総レングス計
    算レジスタと、 前記初期第1レングス値からの減算結果を保持する第1
    レングス計算レジスタと、 前記初期第2レングス値からの減算結果を保持する第2
    レングス計算レジスタと、 データ転送ごとに前記総レングス計算レジスタを1つず
    つ減算する第1の減算器と、 前記第1レングス計算レジスタを最下位桁として、順次
    に前記第2レングス計算レジスタまでを1つずつ減算す
    る第2の減算器とを備え、 前記ディスタンス計算部は、 第1,第2およ第3レングス対応の第1,第2および第
    3ディスタンス値を保持するディスタンス格納メモリ
    と、 該データ転送のベースアドレスに前記第1,第2および
    第3ディスタンス値を加算した結果を保持するアドレス
    計算保持メモリと、 前記第1レングス計算レジスタの値が1になると前記第
    2ディスタンスの加算、前記第2レングス計算レジスタ
    の値が1になると前記第3ディスタンス値の加算、その
    他の場合には前記第1ディスタンス値の加算を行なう加
    算器と、 該加算器の出力を保持するアドレスレジスタとを備える
    ことを特徴とするデータ転送装置。
  5. 【請求項5】 3次元のデータの切出しを伴う並列計算
    機のデータ転送装置において、 データ転送の要素数(レングス)について保持・減算を
    行なうレングス計算部およびデータ転送のためにアクセ
    スすべきデータの差分(ディスタンス)について保持・
    加算を行なうディスタンス計算部を有し、複数アドレス
    から成るブロック単位のブロックデータ転送を行うため
    に、 前記レングス計算部は、 データ転送の初期第1レングス値を保持する第1レング
    スレジスタと、 データ転送の初期第2レングス値を保持する第2レング
    スレジスタと、 データ転送の初期総レングス値を保持するとともに該初
    期総レングス値に対する減算結果を保持する総レングス
    計算レジスタと、 前記初期第1レングス値からの減算結果を保持する第1
    レングス計算レジスタと、 前記初期第2レングス値からの減算結果を保持する第2
    レングス計算レジスタと、 ブロックデータ転送ごとに前記総レングス計算レジスタ
    を、前記初期第1レングス値を所定のブロック数で分割
    したブロック値ずつ減算する第1の減算器と、 前記ブロックデータ転送ごとに前記第1レングス計算レ
    ジスタを前記ブロック値ずつ減算する第2の減算器と、 前記初期第1レングス値分の前記ブロックデータ転送が
    終了するごとに前記第2レングス計算レジスタを1つず
    つ減算する第3の減算器とを備え、 前記ディスタンス計算部は、 第1,第2およ第3レングス対応の第1,第2および第
    3ディスタンスを保持するディスタンス格納メモリと、 該データ転送のベースアドレスに前記第1,第2および
    第3ディスタンスを加算した結果を保持するアドレス計
    算保持メモリと、 前記初期第1レングス値分の前記ブロックデータ転送が
    終了すると前記第2ディスタンス値の加算、前記第2レ
    ングス計算レジスタの値が1になると前記第3ディスタ
    ンス値の加算、その他の場合には前記第1ディスタンス
    値の加算を行なう加算器と、 該加算器の出力を保持するアドレスレジスタとを備える
    ことを特徴とするデータ転送装置。
  6. 【請求項6】 n次元のデータの切出しを伴う並列計算
    機のデータ転送装置において、 データ転送の要素数(レングス)について保持・減算を
    行なうレングス計算部およびデータ転送のためにアクセ
    スすべきデータの差分(ディスタンス)について保持・
    加算を行なうディスタンス計算部を有し、複数アドレス
    から成るブロック単位のブロックデータ転送を行うため
    に、 前記レングス計算部は、 データ転送の初期第1レングス値を保持する第1レング
    スレジスタと、 データ転送の初期第2レングス値〜初期第nレングス値
    を保持するレングス格納メモリと、 データ転送の初期総レングス値を保持するとともに該初
    期総レングス値に対する減算結果を保持する総レングス
    計算レジスタと、 前記初期第1レングス値からの減算結果を保持する第1
    レングス計算レジスタと、 前記初期第2レングス値〜前記初期第nレングス値から
    の減算結果を保持するレングス計算保持メモリと、 データ転送ごとに前記総レングス計算レジスタを、前記
    初期第1レングス値を所定のブロック数で分割したブロ
    ック値ずつ減算する第1の減算器と、 データ転送ごとに前記第1レングス計算レジスタを前記
    ブロック値ずつ減算する第2の減算器と、 前記第1レングス計算レジスタの値が前記ブロック値以
    下になると、前記レングス計算保持メモリが保持する該
    当減算結果を順次に1つ減算する第3の減算器とを備
    え、 前記ディスタンス計算部は、 第1,第2およ第3レングス対応の第1,第2および第
    3ディスタンス値を保持するディスタンス格納メモリ
    と、 該データ転送のベースアドレスに前記第1,第2および
    第3ディスタンス値を加算した結果を保持するアドレス
    計算保持メモリと、 前記第1レングス計算レジスタの値が前記ブロック値以
    下になると前記第2ディスタンスの加算、前記第2レン
    グス計算レジスタの値が1になると前記第3ディスタン
    ス値の加算、その他の場合には前記第1ディスタンス値
    の加算を行なう加算器と、 該加算器の出力を保持するアドレスレジスタとを備える
    ことを特徴とするデータ転送装置。
  7. 【請求項7】 前記減算器は、その一方の入力側に設け
    られたセレクタによって前記第1レングス計算レジス
    タ,第2レジスタ計算レジスタまたは第3レングス計算
    レジスタからの入力を切り替えることによって全てのレ
    ングス値の減算に共用されることを特徴とする請求項3
    に記載のデータ転送装置。
  8. 【請求項8】 前記第2の減算器は、その一方の入力側
    に設けられたセレクタによって前記第1レングス計算レ
    ジスタまたは第2レジスタ計算レジスタからの入力を切
    り替えることによって全ての第1レングス値および第2
    レングス値の減算に共用されることを特徴とする請求項
    4に記載のデータ転送装置。
  9. 【請求項9】 前記加算器は、前記第1ディスタンス
    値,第2ディスタンス値および第3ディスタンス値の加
    算に共用されることを特徴とする請求項3ないし請求項
    8のいずれかに記載のデータ転送装置。
JP37258699A 1999-12-28 1999-12-28 データ転送装置 Pending JP2001188675A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP37258699A JP2001188675A (ja) 1999-12-28 1999-12-28 データ転送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37258699A JP2001188675A (ja) 1999-12-28 1999-12-28 データ転送装置

Publications (1)

Publication Number Publication Date
JP2001188675A true JP2001188675A (ja) 2001-07-10

Family

ID=18500704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37258699A Pending JP2001188675A (ja) 1999-12-28 1999-12-28 データ転送装置

Country Status (1)

Country Link
JP (1) JP2001188675A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007505373A (ja) * 2003-09-08 2007-03-08 フリースケール セミコンダクター インコーポレイテッド Simdオペレーションを実行するデータ処理システム及び方法
JP2008003708A (ja) * 2006-06-20 2008-01-10 Hitachi Ltd 映像処理エンジンおよびそれを含む映像処理システム
JP2008204428A (ja) * 2007-02-22 2008-09-04 Samsung Electronics Co Ltd 3次元アドレスマッピングを用いたメモリアクセス方法
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置
US9905748B2 (en) 2013-05-13 2018-02-27 Murata Manufacturing Co., Ltd. Vibrating device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007505373A (ja) * 2003-09-08 2007-03-08 フリースケール セミコンダクター インコーポレイテッド Simdオペレーションを実行するデータ処理システム及び方法
JP2008003708A (ja) * 2006-06-20 2008-01-10 Hitachi Ltd 映像処理エンジンおよびそれを含む映像処理システム
JP2008204428A (ja) * 2007-02-22 2008-09-04 Samsung Electronics Co Ltd 3次元アドレスマッピングを用いたメモリアクセス方法
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置
US9905748B2 (en) 2013-05-13 2018-02-27 Murata Manufacturing Co., Ltd. Vibrating device

Similar Documents

Publication Publication Date Title
US4930066A (en) Multiport memory system
JP3327621B2 (ja) オブジェクトソートとエッジ計算を行うグラフィックシステム及びその方法
CN110674053B (zh) Ssd数据存储节点管理方法、装置、计算机设备及存储介质
JP2628493B2 (ja) コサイン変換計算装置並びに計算装置等を備えた画像コード装置及び画像デコード装置
JP3312317B2 (ja) 補間プロセツサ
CN110032538B (zh) 一种数据读取系统和方法
JPH0698159A (ja) 2値化方法及び装置
EP0198341B1 (en) Digital data processing circuit having a bit reverse function
CN108377394A (zh) 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质
US5535412A (en) Circular buffer controller
US6684267B2 (en) Direct memory access controller, and direct memory access control method
CN110515872B (zh) 直接内存存取方法、装置、专用计算芯片及异构计算系统
JP2001188675A (ja) データ転送装置
US5179647A (en) Method and apparatus for implementing adaptive forward differencing using integer arithmetic
CN113497627A (zh) 一种数据压缩和解压缩方法、装置及系统
CN115860080A (zh) 计算核、加速器、计算方法、装置、设备、介质及系统
WO2021031154A1 (zh) 神经网络的特征图装载方法及设备
JP2001043084A (ja) プロセッサ装置
JPH02126321A (ja) 命令コードのデコード装置
JPS6046456B2 (ja) デ−タアクセス装置
JP3786329B2 (ja) 符号化復号化装置
JP2889479B2 (ja) ヒストグラム構築回路
JP2551397B2 (ja) 画像信号符号化システム
CN116931885A (zh) 关系图生成方法、装置、设备及存储介质
JP4257626B2 (ja) メモリアクセス装置