JP3223530B2 - データ転送命令生成処理方法 - Google Patents

データ転送命令生成処理方法

Info

Publication number
JP3223530B2
JP3223530B2 JP20772991A JP20772991A JP3223530B2 JP 3223530 B2 JP3223530 B2 JP 3223530B2 JP 20772991 A JP20772991 A JP 20772991A JP 20772991 A JP20772991 A JP 20772991A JP 3223530 B2 JP3223530 B2 JP 3223530B2
Authority
JP
Japan
Prior art keywords
data transfer
stride
instruction
data
specified
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 - Fee Related
Application number
JP20772991A
Other languages
English (en)
Other versions
JPH0546471A (ja
Inventor
直樹 末安
忠義 安東
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP20772991A priority Critical patent/JP3223530B2/ja
Publication of JPH0546471A publication Critical patent/JPH0546471A/ja
Application granted granted Critical
Publication of JP3223530B2 publication Critical patent/JP3223530B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のメモリモジュー
ルとプロセッサとを有する計算機システムにおける、メ
モリモジュールとプロセッサとの間のデータ転送を行う
データ転送命令を生成するための処理方法に関する。
【0002】
【従来の技術と発明が解決しようとする課題】図2は計
算機システムの構成例であり、複数のメモリモジュール
1とプロセッサ2とが接続されている。
【0003】各プロセッサ2は必要な何れのメモリモジ
ュール1にもアクセスすることができるように接続され
ているが、例えば主として対応する1個のメモリモジュ
ール1にアクセスしてデータを処理し、複数のプロセッ
サ2が或る1群のデータの各部分を分担して並列に処理
を進めることができる。
【0004】そのような並列処理に都合がよいように、
メモリモジュールに対するデータの配置を例えば利用者
が指定することにより、例えば図3に示すように、n個
のメモリモジュールに要素番号xから要素番号yまでの
要素からなるデータを、連続するw個の要素を幅として
同じメモリモジュールに配置する要素群とし、要素番号
順の幅をメモリモジュールにモジュール順に割り当てて
配置することが行われる。
【0005】この場合、第1モジュールから順次割り当
てて、第nモジュールに達したら、再び第1モジュール
に戻って残りの要素の配置し、全要素を配置するまで繰
り返すものとする。
【0006】このような配置のデータを処理するため
に、処理内容に応じてプロセッサのレジスタとメモリモ
ジュールとの間で必要な要素の転送が必要になり、その
場合にデータ転送命令を各メモリモジュールに対応して
設けることにより、各プロセッサがそれぞれ必要なメモ
リモジュール対応のデータ転送命令を実行して並列処理
を行うことができる。
【0007】本発明は、いわゆるコンパイラ等によって
前記のようなデータ転送命令を生成する場合に、複数の
命令列から最も実行コストの小さい命令列を選択して生
成するデータ転送命令生成処理方法を目的とする。
【0008】
【課題を解決するための手段】図1は、本発明の構成を
示す処理の流れ図である。図はデータ転送命令生成処理
方法の構成であって、n個のメモリモジュールとプロセ
ッサとを有し、一群の要素からなるデータを、連続する
w個の該要素ごとを幅として、該要素の番号順に該幅を
各該メモリモジュールに順次配置することを繰り返し
て、分散配置し、該メモリモジュールと該プロセッサと
の間で該データを転送する場合には、所要の各該メモリ
モジュールごとに対応して発行するデータ転送命令によ
って実行し、該データ転送命令のオペランドとする該要
素を、第1のデータ転送命令は、該要素の範囲とストラ
イドとを該要素の番号値によって指定し、第2のデータ
転送命令は、該要素の番号のリストによって指定するよ
うにした計算機システムにおける処理方法である。
【0009】転送対象のデータを、先頭の該要素番号、
末尾の該要素番号及び該ストライドによって指定され
て、所要のデータ転送命令を生成する場合に、第1の命
令生成法は、該指定のストライドがw以下の場合には、
該幅ごとに対応して第1のデータ転送命令を生成し、該
指定のストライドがwより大きい場合には、該指定の該
要素ごとに対応して第1のデータ転送命令を生成する。
【0010】第2の命令生成法は、nとwとの積と該指
定のストライドとの最小公倍数をオペランド指定の新ス
トライドとし、先頭の要素番号から当該メモリモジュー
ルにおける新ストライドの要素番号をすべて含む要素番
号を末尾の要素番号とした第1のデータ転送命令を、先
頭の要素番号を全要素の先頭から前記指定のストライド
おきに順次設定して(新ストライド)/(指定のストラ
イド)の数分生成する
【0011】第3の命令生成法は、該メモリモジュール
ごとに対応して第2のデータ転送命令を生成するものと
する。処理ステップ10で、該指定のデータ転送を満足す
るために必要な命令個数を各該命令生成法ごとに算出す
る。
【0012】処理ステップ11で、各該命令生成法による
各該命令個数に、第1及び第2のデータ転送命令に定め
る所定の各実行コストのうちの該当する該実行コストを
乗じて、各該命令生成法に対応するコストとする。
【0013】処理ステップ12で、該コストが最も小さく
なる該命令生成法を選択して、処理ステップ13で該選択
した命令生成法によって該データ転送命令を生成する。
【0014】
【作用】本発明の処理方法により、前記のような構成の
計算機システムにおける所要のデータ転送を実行する命
令列として、3種類の命令生成法によるデータ転送命令
列のうち、例えばデータ転送の命令実行時間の合計で表
す実行コストが最も小さい命令列を選択して命令を生成
するので、実行効率のよいプログラムを生成することが
できる。
【0015】
【実施例】図3によって説明したメモリモジュールとデ
ータ配置の例と同様に、メモリモジュールn、データは
要素xから要素yまで(以下において(x:y)と表
す)、幅はwとして説明する。
【0016】転送対象の要素として、要素の範囲を
(i:j)、ストライド(即ちアクセス要素間隔)をs
と指定されたとする。この場合当然x≦i≦j≦yであ
る。メモリモジュールからプロセッサのレジスタへのデ
ータ転送の場合として、第1のデータ転送命令は、 転送先レジスタ(a:b)←転送元メモリ(p:q:
s) のように表される命令で、メモリモジュール上の要素番
号pから、ストライドをsとして(即ちsごとの要素
を)、要素番号qまでのデータを、プロセッサのレジス
タ番号aからbまでのレジスタに転送する。
【0017】又、第2のデータ転送命令は、 転送先レジスタ(転送先リスト{a1,a2,a3,.... })←
転送元メモリ( 転送元リスト{p1,p2,p3,.... }) のように表される命令で、メモリモジュール上の、転送
元リストで指定される要素番号p1、p2、p3、....のデー
タを、プロセッサの、転送先リストで指定される番号
a1、a2、a3、....のレジスタに転送する。
【0018】第1の命令生成法は、指定のストライドs
がw以下の場合には、幅ごとに対応して第1のデータ転
送命令を生成し、指定のストライドsがwより大きい場
合には、指定の要素ごとに対応して第1のデータ転送命
令を生成する。
【0019】従って、第1の命令生成法の場合に生成さ
れる命令個数をα1とすると、指定のストライドsがw
以下の場合には、指定の先頭要素iは(((i-x)/w)+1) 番
目の幅にあり、末尾要素jは(((j-x)/w)+1) 番目の幅に
あることから、iを含む幅から、jを含む幅までの幅の
個数が命令個数となり、 α1=(((j-x)/w)+1)-(((i-x)/w)+1)+1=((j-x)/w)-((i-x)
/w)+1 である。
【0020】又、指定のストライドsがwより大きい場
合には、iからjまでのs間隔の要素数が命令個数とな
り、 α1=(j-i)/s+1 である。なお、上記の式及び後述の説明において、演算
記号「/」は、除算を行って、商の小数点以下を切り捨
てる(商の整数部のみをとる)ことを示すものとする。
【0021】第2の命令生成法は、nとwとの積と該指
定のストライドとの最小公倍数をオペランド指定の新ス
トライドとし、先頭の要素番号から当該メモリモジュー
ルにおける新ストライドの要素番号をすべて含む要素番
号を末尾の要素番号とした第1のデータ転送命令を、先
頭の要素番号を全要素の先頭から前記指定のストライド
おきに順次設定して(新ストライド)/(指定のストラ
イド)の数分生成する
【0022】従って、第2の命令生成法の場合に生成さ
れる命令個数をα2とし、n×wとsとの最小公倍数を
s'とすると、α2=s'/sとなり、最大の場合n×w個にな
る。第3の命令生成法は、メモリモジュールごとに対応
して第2のデータ転送命令を生成する。従って、第3の
命令生成法の場合に生成される命令個数をα3とする
と、α3は指定の要素が配置されたメモリモジュールの
個数に等しく、最大の場合はnになる。
【0023】図1の処理ステップ10では、以上によって
各命令生成法の場合の命令個数α1、α2、α3を算出
し、次に処理ステップ11で各場合のコストκ1、κ2、
κ3を、次のようにして求める。即ち、 κ1=Ct×α1 κ2=Ct×α2 κ3=Cl×α3 ここで、上式中のCtは第1のデータ転送命令、即ち前記
のようにオペランドのデータが(p:q:s)の形の3
個のパラメータで指定される命令、のコストであり、Cl
は第2のデータ転送命令、即ち前記のようにオペランド
のデータがリストで指定される命令、のコストであっ
て、例えば各命令の実行時間に基づいて定めておく。
【0024】処理ステップ12で、以上により求めたκ
1、κ2、κ3を比較して最小の1個を決定し、処理ス
テップ13では決定したコストに対応する命令生成法によ
ってデータ転送命令の列を生成する。
【0025】例えば、メモリモジュール個数を4とし
て、メモリモジュールA、B、C、Dとし、要素番号20
から60までのデータ(以下においてこれをデータ(20:6
0) のように表す) が、幅4で次のように配置されてい
るとする。
【0026】 メモリモジュールA (20:23),(36:39),(52:55) メモリモジュールB (24:27),(40:43),(56:59) メモリモジュールC (28:31),(44:47),(60:60) メモリモジュールD (32:35),(48:51) このデータから、例えば(20:60:2) で表される要素、即
ち要素番号20から60までのストライド2の要素を、プロ
セッサのレジスタ(1:21)に転送する命令を生成する場合
を考える。この場合の転送対象となる要素をリストで示
すと、 (20:60:2)={20,22,24,26,.......,56,58,60} である。
【0027】第1の命令生成法では、sがw以下の場合
に当たるので、次のように幅ごとに対応する命令が生成
され、α1=11となる。 (メモリモジュールA) 転送先レジスタ( 1: 2) ←転送元メモリ(20:22:2) (メモリモジュールB) 転送先レジスタ( 3: 4) ←転送元メモリ(24:26:2) (メモリモジュールC) 転送先レジスタ( 5: 6) ←転送元メモリ(28:30:2) (メモリモジュールD) 転送先レジスタ( 7: 8) ←転送元メモリ(32:34:2) (メモリモジュールA) 転送先レジスタ( 9:10) ←転送元メモリ(36:38:2) (メモリモジュールB) 転送先レジスタ(11:12) ←転送元メモリ(40:42:2) (メモリモジュールC) 転送先レジスタ(13:14) ←転送元メモリ(44:46:2) (メモリモジュールD) 転送先レジスタ(15:16) ←転送元メモリ(48:50:2) (メモリモジュールA) 転送先レジスタ(17:18) ←転送元メモリ(52:54:2) (メモリモジュールB) 転送先レジスタ(19:20) ←転送元メモリ(56:58:2) (メモリモジュールC) 転送先レジスタ(21) ←転送元メモリ(60) 第2の命令生成法では、n×w=16とs=2との最小公
倍数16を命令で使用するストライドとする命令が次のよ
うに生成され、α2=8となる。
【0028】メモリモジュールAについて説明すると、
メモリモジュールAには要素(20,21,22,23,36,37,38,3
9,52,53,54,55)のデータが格納されているので、転送範
囲として、先頭要素20から、ストライドが16のデータの
最終である要素52までを指定した転送命令を生成する
と、ストライドs’により要素20,36,52が転送される。
同様に、先頭要素22から要素54までを指定した転送メモ
リを生成すると、要素22,38,54が転送される。これをメ
モリモジュールB,C,D順に順次繰り返してs’/s
個生成すれば、指定のストライドsおきにデータを転送
する最小の転送命令を生成することが可能となる。 (メモリモジュールA) 転送先レジスタ( 1: 3) ←転送元メモリ(20:52:16) 転送先レジスタ( 4: 6) ←転送元メモリ(22:54:16) (メモリモジュールB) 転送先レジスタ( 7: 9) ←転送元メモリ(24:56:16) 転送先レジスタ(10:12) ←転送元メモリ(26:58:16) (メモリモジュールC) 転送先レジスタ(13:15) ←転送元メモリ(28:60:16) 転送先レジスタ(16:17) ←転送元メモリ(30:46:16) (メモリモジュールD) 転送先レジスタ(18:19) ←転送元メモリ(32:48:16) 転送先レジスタ(20:21) ←転送元メモリ(34:50:16) 第3の命令生成法では、メモリモジュールごとに、次の
ようにリストで要素を指定する1命令が生成され、α3
=4となる。
【0029】(メモリモジュールA) 転送先レジスタ{ 1, 2, 9,10,17,18}←転送元メモリ
{20,22,36,38,52,54} (メモリモジュールB) 転送先レジスタ{ 3, 4,11,12,19,20}←転送元メモリ
{24,26,40,42,56,58} (メモリモジュールC) 転送先レジスタ{ 5, 6,13,14,21}←転送元メモリ{2
8,30,44,46,60} (メモリモジュールD) 転送先レジスタ{ 7, 8,15,16}←転送元メモリ{32,3
4,48,50} 次に、例えば命令のコストとしてCt=2、Cl=5が与え
られているとすると、各命令生成法におけるコストは、 κ1=Ct×α1=2×11=22 κ2=Ct×α2=2×8=16 κ3=Cl×α3=5×4=20 となるので、この場合には最小コストを示す第2の命令
生成法が採用される。
【0030】
【発明の効果】以上の説明から明らかなように本発明に
よれば、計算機の複数のメモリモジュールとプロセッサ
との間のデータ転送のための命令生成において、複数の
データ転送命令列から最も実行コストを小さくできる命
令列を選択して生成し、実行効率のよいプログラムの生
成ができるという著しい工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の構成を示す処理の流れ図
【図2】 計算機システムの構成例ブロック図
【図3】 データの配置を説明する図
【符号の説明】
1 メモリモジュール 2 プロセッサ 10〜13 処理ステップ
フロントページの続き (56)参考文献 特開 昭63−225837(JP,A) 特開 昭57−113165(JP,A) 特開 昭61−55738(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/45 G06F 12/00 - 12/06 G06F 15/16 - 15/177 G06F 17/16

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 n個のメモリモジュールとプロセッサと
    を有し、 一群の要素からなるデータを、連続するw個の該要素ご
    とを幅として、該要素の番号順に該幅を各該メモリモジ
    ュールに順次配置することを繰り返して、分散配置し、 該メモリモジュールと該プロセッサとの間で該データを
    転送する場合には、所要の各該メモリモジュールごとに
    対応して発行するデータ転送命令によって実行し、 該データ転送命令のオペランドとする該要素を、第1の
    データ転送命令は、該要素の範囲とストライドとを該要
    素の番号値によって指定し、第2のデータ転送命令は、
    該要素の番号のリストによって指定するようにした計算
    機システムにおいて、 転送対象のデータを、先頭の該要素番号、末尾の該要素
    番号及び該ストライドによって指定されて、所要のデー
    タ転送命令を生成する場合に、 第1の命令生成法は、該指定のストライドがw以下の場
    合には、該幅ごとに対応して第1のデータ転送命令を生
    成し、該指定のストライドがwより大きい場合には、該
    指定の該要素ごとに対応して第1のデータ転送命令を生
    成し、 第2の命令生成法は、nとwとの積と該指定のストライ
    ドとの最小公倍数をオペランド指定の新ストライドと
    し、先頭の要素番号から当該メモリモジュールにおける
    新ストライドの要素番号をすべて含む要素番号を末尾の
    要素番号とした第1のデータ転送命令を、先頭の要素番
    号を全要素の先頭から前記指定のストライドおきに順次
    設定して(新ストライド)/(指定のストライド)の数
    分生成し、 第3の命令生成法は、該メモリモジュールごとに対応し
    て第2のデータ転送命令を生成するものとして、 該指定のデータ転送を満足するために必要な命令個数を
    各該命令生成法ごとに算出し、 各該命令生成法による各該命令個数に、第1及び第2の
    データ転送命令に定める所定の各実行コストのうちの該
    当する該実行コストを乗じて、各該命令生成法に対応す
    るコストとし、 該コストが最も小さくなる該命令生成法を選択して、該
    選択した命令生成法によって該データ転送命令を生成す
    るように構成されていることを特徴とするデータ転送命
    令生成処理方法。
  2. 【請求項2】 n個のメモリモジュールとプロセッサと
    を有し、 一群の要素からなるデータを、連続するw個の該要素ご
    とを幅として、該要素の番号順に該幅を各該メモリモジ
    ュールに順次配置することを繰り返して、分散配置し、 該メモリモジュールと該プロセッサとの間で該データを
    転送する場合には、所要の各該メモリモジュールごとに
    対応して発行するデータ転送命令によって実行し、 各該データ転送命令は、オペランドとする該要素を、該
    要素の範囲とストライドとを該要素の番号値によって指
    定するようにした計算機システムにおいて、 転送対象のデータを、先頭の該要素番号、末尾の該要素
    番号及び該ストライドによって指定されて、所要のデー
    タ転送命令を生成する場合に、nとwとの積と該指定のストライドとの最小公倍数をオ
    ペランド指定の新ストライドとし、先頭の要素番号から
    当該メモリモジュールにおける新ストライドの要素番号
    をすべて含む要素番号を末尾の要素番号としたデータ転
    送命令を、先頭の要素番号を全要素の先頭から前記指定
    のストライドおきに順次設定して(新ストライド)/
    (指定のストライド)の数分生成する ように構成されて
    なることを特徴とするデータ転送命令生成処理方法。
JP20772991A 1991-08-20 1991-08-20 データ転送命令生成処理方法 Expired - Fee Related JP3223530B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20772991A JP3223530B2 (ja) 1991-08-20 1991-08-20 データ転送命令生成処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20772991A JP3223530B2 (ja) 1991-08-20 1991-08-20 データ転送命令生成処理方法

Publications (2)

Publication Number Publication Date
JPH0546471A JPH0546471A (ja) 1993-02-26
JP3223530B2 true JP3223530B2 (ja) 2001-10-29

Family

ID=16544575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20772991A Expired - Fee Related JP3223530B2 (ja) 1991-08-20 1991-08-20 データ転送命令生成処理方法

Country Status (1)

Country Link
JP (1) JP3223530B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140142530A (ko) * 2013-06-04 2014-12-12 삼성전자주식회사 데이터 저장 장치 및 그것의 명령어 스케줄링 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140142530A (ko) * 2013-06-04 2014-12-12 삼성전자주식회사 데이터 저장 장치 및 그것의 명령어 스케줄링 방법
KR102079939B1 (ko) 2013-06-04 2020-02-21 삼성전자주식회사 데이터 저장 장치 및 그것의 명령어 스케줄링 방법

Also Published As

Publication number Publication date
JPH0546471A (ja) 1993-02-26

Similar Documents

Publication Publication Date Title
Wang A parallel method for tridiagonal equations
US4796179A (en) Multirate real time control system code generator
EP0282070B1 (en) Vector access to memories
CN1140497A (zh) 在计算设备中累加数值的方法和系统
Cole et al. Approximate parallel scheduling. II. Applications to logarithmic-time optimal parallel graph algorithms
Sridhar et al. A genetic algorithm for family and job scheduling in a flowline-based manufacturing cell
JP3223530B2 (ja) データ転送命令生成処理方法
JP3071899B2 (ja) 荷電ビーム描画用データ作成装置
US20020156611A1 (en) Performance simulation process, and multiprocessor application production process, and devices for implementing said processes
JPS5892077A (ja) 巻片編集印刷装置
Weber Parallel Implementation of the Accelerated Integer GCD Algorithm.
JPH06214803A (ja) 仮想空間ブロック配置方式
EP1008044B1 (en) Information processing
US5870603A (en) Method and system for storing exponent codes in a multi-processor computer to produce putputs according to an execution schedule
JPS635780B2 (ja)
JPH056269A (ja) プログラム結合装置
Uvacek et al. A new strategy for tactile hearing aids: tactile identification of preclassified signals (tips)
JPH07325806A (ja) マルチプロセッサシステムのプロセス割当方法
Bi Towards abstraction of message passing programming
JP2005018158A (ja) 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム
Dhodhi et al. Data path synthesis for easy testability
Pinter et al. Efficient Breadth-First Expansion
JPH0644270B2 (ja) ベクトルプロセッサの制御処理方式
JPS584477A (ja) 複数演算器のポインタによる制御方式
Ahmad et al. High-level synthesis of self-recoverable asics using micro rollback

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010724

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees