JP2000048009A - メモリアクセス処理装置および記録媒体 - Google Patents

メモリアクセス処理装置および記録媒体

Info

Publication number
JP2000048009A
JP2000048009A JP10212348A JP21234898A JP2000048009A JP 2000048009 A JP2000048009 A JP 2000048009A JP 10212348 A JP10212348 A JP 10212348A JP 21234898 A JP21234898 A JP 21234898A JP 2000048009 A JP2000048009 A JP 2000048009A
Authority
JP
Japan
Prior art keywords
instruction
memory access
vector register
vector
generating
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.)
Granted
Application number
JP10212348A
Other languages
English (en)
Other versions
JP3817073B2 (ja
Inventor
Nobuyoshi Yamaji
延佳 山地
Takashi Mochiyama
貴司 持山
Masato Morishima
政人 森島
Masaki Aoki
正樹 青木
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 JP21234898A priority Critical patent/JP3817073B2/ja
Publication of JP2000048009A publication Critical patent/JP2000048009A/ja
Application granted granted Critical
Publication of JP3817073B2 publication Critical patent/JP3817073B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 本発明は、隣接するメモリアクセス命令につ
いてベクトル計算機上で高速実行する命令を生成するメ
モリアクセス処理装置および記録媒体に関し、ベクトル
計算機において、隣接するメモリアクセス命令が存在す
るときに重複したメモリアクセスを削減して実行性能の
向上を図ることを目的とする。 【解決手段】 ソースプログラムを解析して隣接するメ
モリアクセス命令を検出する手段と、検出された隣接す
るメモリアクセス命令について両者に必要なデータを含
むメモリアクセス命令に変換する手段と、変換した命令
によってメモリから読み出されてロードされた第1のベ
クトルレジスタのデータを、スライドさせて第2のベク
トルレジスタに格納させる命令を生成する手段と、第1
のベクトルレジスタと第2のベクトルレジスタとの演算
を行う命令を生成する手段とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、隣接するメモリア
クセス命令についてベクトル計算機上で高速実行する命
令を生成するメモリアクセス処理装置および記録媒体に
関するものである。
【0002】
【従来の技術】一般に科学技術計算において、メモリア
クセスの性能はプログラムの処理速度を決定する重要な
1つの要因である。ベクトル計算機では、メモリ上に配
置されているデータをベクトルレジスタ上にロード(メ
モリアクセス)してそのベクトルレジスタを介して、高
速な演算を実現している。このため、メモリ上のデータ
をいかに効率良くレジスタ上に持ってくるか、データを
いかにレジスタ上に保持しつづけられるかが性能の鍵と
なる。
【0003】例えば以下のように2つの隣接するメモリ
アクセスが存在するFORTRANプログラムを例にと
る。 real a(10),b(10) ・・・・・・・・・・(1) do i=1,9 a(i)=b(i)+b(i+1) endo データをメモリからベクトルレジスタ上にロードする場
合に、上記プログラム中の、の部分で、アクセス要
素位置が1要素づれているときでも、図7に示すよう
に、2つのベクトルアクセス命令でそれぞれ個別にベク
トルレジスタ上にロードしていた。
【0004】
【発明が解決しようとする課題】このため、図7のの
アクセス(メモリからベクトルレジスタへのデータのロ
ード)と、のアクセスとがメモリ上のほとんど同じ同
一箇所をアクセスしているにもかかわらず、個別にそれ
ぞれメモリをアクセスしてベクトルレジスタ上にロード
する必要があり、メモリアクセスという非常に遅い処理
が重複した部分でも必要となり、全体の処理速度を大幅
に低下させてしまうという問題があった。
【0005】本発明は、これらの問題を解決するため、
ベクトル計算機において、隣接するメモリアクセス命令
が存在するときに重複したメモリアクセスを削減して実
行性能の向上を図ることを目的としている。
【0006】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、ソースプ
ログラム1は、コンパイル対象のソースプログラムであ
って、ここでは、隣接するメモリアクセス命令をベクト
ル計算機上で高速実行させる対象のソースプログラムで
ある。
【0007】コンパイラ2は、ソースプログラム1を解
析してベクトル化および最適化を行い、実行可能形式の
オブジェクト10を自動生成するものであって、ここで
は、最適化手段6などから構成されるものである。
【0008】最適化手段6は、各種最適化を行うもので
あって、ここでは、隣接するメモリアクセス命令をベク
トル計算機上で高速実行させるようにするものであり、
隣接アクセス認識手段7およびスライド命令利用手段8
などから構成されるものである。
【0009】隣接アクセス認識手段7は、隣接するアク
セス命令を検出するものである。スライド命令利用手段
8は、隣接するアクセス命令について、メモリから第1
のベクトルレジスタにデータをロードした後、スライド
して第2のベクトルレジスタに格納し、第1のベクトル
レジスタと第2のベクトルレジスタとを演算処理などさ
せるものである。
【0010】次に、動作を説明する。隣接アクセス認識
手段7がソースプログラム1を解析した情報をもとに隣
接するメモリアクセス命令を検出し、スライド命令利用
手段8が検出された隣接するメモリアクセス命令につい
て両者に必要なデータを含むメモリアクセス命令に変換
し、変換した命令によってメモリから読み出されてロー
ドされた第1のベクトルレジスタのデータを、スライド
させて第2のベクトルレジスタに格納させる命令を生成
し、第1のベクトルレジスタと第2のベクトルレジスタ
との演算を行う命令を生成するようにしている。
【0011】また、隣接するメモリアクセス命令の要素
数が1回のベクトル演算処理で実行し得る最大要素数の
整数倍以外のときに、隣接アクセス認識手段7がソース
プログラム1を解析した情報をもとに隣接するメモリア
クセス命令を検出し、スライド命令利用手段8が検出さ
れた隣接するメモリアクセス命令について両者に必要な
データを含むメモリアクセス命令に変換し、変換した命
令によってメモリから読み出されてロードされた第1の
ベクトルレジスタのデータを、スライドさせて第2のベ
クトルレジスタに格納させる命令を生成し、第2のベク
トルレジスタ中の処理不要な要素にマスクする命令を生
成し、更に、マスク命令で真(有意)となった要素につ
いて第1のベクトルレジスタと第2のベクトルレジスタ
との演算を行う命令を生成するようにしている。
【0012】また、隣接するメモリアクセス命令の要素
数が1回のベクトル演算処理で実行し得る最大要素数の
整数倍のときに、隣接アクセス認識手段7がソースプロ
グラム1を解析した情報をもとに隣接するメモリアクセ
ス命令を検出し、スライド命令利用手段8が隣接するメ
モリアクセス命令中の1つの命令によってメモリから読
み出されてロードされた第1のベクトルレジスタのデー
タを、スライドさせて第2のベクトルレジスタに格納さ
せる命令を生成し、第1のベクトルレジスタと第2のベ
クトルレジスタとの有意な部分の演算を行う命令を生成
し、更に、演算の実行されなかった要素についてメモリ
から読み出してレジスタにそれぞれロードする命令を生
成し、ロードしたレジスタの間の演算を行う命令を生成
するようにしている。
【0013】これらの際に、隣接するメモリアクセス命
令が同じ配列であるときに、上述した処理を行うように
している。従って、ベクトル計算機において、隣接する
メモリアクセス命令が存在するときに重複したメモリア
クセスを削減して実行性能の向上を図ることが可能とな
る。
【0014】
【発明の実施の形態】次に、図1から図6を用いて本発
明の実施の形態および動作を順次詳細に説明する。
【0015】図1は、本発明のシステム構成図を示す。
図1において、ソースプログラム1は、ベクトル計算機
上で動作させるようにコンパイルする対象のソースプロ
グラム(例えばFORTRANプログラム)である。
【0016】コンパイラ2は、ソースプログラム1を入
力としてベクトル計算機上で動作する実行可能形式のオ
ブジェクト10を自動生成するものであって、プログラ
ム入力手段3、ソース解析手段4、ベクトル化手段5、
最適化手段6、コード生成手段9から構成されるもので
ある。
【0017】プログラム入力手段3は、ソースプログラ
ム1を取り込むものである。ソース解析手段4は、取り
込んだソースプログラム1を形態素解析および構文解析
などを行い、処理を行い易い中間言語に変換するもので
ある。尚、ソース解析以降は、実際にはこの中間言語を
もとにベクトル化、最適化などを行うが、説明を簡単に
するためにソースプログラム1をもとにベクトル化、最
適化などを行うとして以下説明する。
【0018】ベクトル化手段5は、ソースプログラム1
のベクトル化を行い、ベクトル計算機上でベクトルレジ
スタを利用して高速並列実行可能なプログラムに変換す
るものである。
【0019】最適化手段6は、ベクトル化された後に最
適化を行うものであって、ここでは、隣接アクセス認識
手段7、およびスライド命令利用手段8などから構成さ
れるものである。
【0020】隣接アクセス認識手段7は、隣接するアク
セス命令を検出するものである。スライド命令利用手段
8は、隣接するアクセス命令について、メモリから第1
のベクトルレジスタにデータをロードした後、スライド
して第2のベクトルレジスタに格納し、第1のベクトル
レジスタと第2のベクトルレジスタとを演算処理などさ
せるものである(図2を用いて後述する)。
【0021】コード生成手段9は、最適化後に、実行可
能形式のオブジェクト10を生成するものである。オブ
ジェクト10は、ベクトル計算機上で実行可能なプログ
ラムである。
【0022】次に、図2のフローチャートの順序に従
い、図1の構成の動作を詳細に説明する。図2は、本発
明の動作説明フローチャートを示す。
【0023】図2において、S1は、プログラムを入力
する。これは、図1のプログラム入力手段3がソースプ
ログラム1を外部記憶装置などから取り込む。S2は、
ソースプログラムを解析する。これは、図1のソース解
析手段4が、S1で取り込んだソースプログラム1を形
態素解析および構文解析を行い、解析結果情報を生成す
る。
【0024】S3は、ベクトル化を行う。これは、S2
で解析した情報をもとに、ベクトル計算機上のベクトル
レジスタを利用して高速並列実行可能なように、プログ
ラムのベクトル化を行う。
【0025】S4は、同じ配列か判別する。これは、S
3でベクトル化したメモリアクセス命令の要素が同じ配
列か判別、例えば後述する図3の(a)のプログラム中
のb(i)とb(i+1)とが同じ配列か判別する。Y
ESの場合には、S5に進む。NOの場合には、本発明
に係るS5以降の処理ができないので、S10に進む。
【0026】S5は、隣接アクセスしているか判別す
る。これは、S4で同じ配列と判明したメモリアクセス
命令が隣接アクセスしているか判別する。YESの場合
には、S6に進む。NOの場合には、本発明に係るS6
以降の処理ができないので、S10に進む。
【0027】S6は、ベクトル長増加方式/ベクトル長
削減方式の選択処理を行う。これは、隣接するメモリア
クセス命令でアクセスする要素数が1回の並列処理で実
行可能な要素数、あるいはその整数倍でないか判別す
る。
【0028】S7は、ベクトル長増加方式か判別する。
これは、S6で隣接するメモリアクセス命令でアクセス
する要素数が1回の並列処理で実行可能な要素数、ある
いはその整数倍でないベクトル長増加方式(図3)か判
別する。YESの場合には、S8でベクトル長増加方式
(図3)の処理を行い、S10に進む。一方、NOの場
合には、S9でベクトル長削減方式(図4)の処理を行
い、S10に進む。
【0029】S8は、S7のYESでベクトル長増加方
式と判明したので、 (1)ベクトル長を+1する (2)b(i+1)に対するload命令(ロード命
令)をvslid命令(スライド命令)に置換する (3)ベクトル長を増加させたことによって、端点OF
Fのためのマスク生成する (4)vslid命令と、そのvslid命令の対象と
なるメモリアクセス(vload)以外のループ内の命
令にマスク処理を施す を実行する(図3を用いて後述する)。
【0030】S9は、S7のNOでベクトル長削減方式
と判明したので、 (1)ベクトル長を変更せずに、b(i+1)に対する
load命令をvslid命令に置換する (2)ベクトル長を−1する (3)ループ内の最後の要素に対する演算について、ス
カラ演算を実行する(図4を用いて後述する)。
【0031】S10は、コードを生成する。以上によっ
て、ソースプログラム1を入力とし、隣接するアクセス
命令の対象となる要素の配列が同じ場合(S4のYE
S、S5のYESの場合)、要素数が1回のベクトル並
列演算処理で実行できる最大要素数に等しいあるいはそ
の整数倍に等しくないときにベクトル長増加方式を選択
し、一方、等しいときにベクトル長削減方式を選択し、
これらベクトル長増加方式/ベクトル長削減方式の処理
後にコード生成を行い、オブジェクト10を自動生成す
ることにより、隣接するメモリアクセス命令について重
複したメモリアクセスを削減し、ベクトル計算機上で高
速実行可能なオブジェクトを生成することが可能とな
る。
【0032】図3は、本発明の説明図(その1)を示
す。これは、既述した図2のS8のベクトル長増加方式
の場合の具体例の説明図であって、隣接するアクセス命
令の対象となる要素の配列が同じ場合のものである。
【0033】図3の(a)は、ソースプログラム(FO
TRANプログラム)の例を示す。ここでは、図示の下
記の演算を行う。 図3の(b)は、オブジェクトの例を示す。これは、図
3の(a)のソースプログラムを、図2のフローチャー
ト中のS8で本発明に係るベクトル長増加方式に従って
生成したオブジェクトのイメージを示す。ここで、図中
のからについて、図3の(c)のからで順次詳
細に説明する。
【0034】図3の(c)において、は、ベクトル長
が1τで処理できる要素数(例えば16要素数)で割り
切れなかったので、ベクトル長増加方式が選択され、v1
v1の値を11に変更する(要素数10に+1して11に
変更する)。
【0035】は、図3の(b)のの命令vload vr1,
b(1:11)によって、bの要素(1〜11)を、vr1にロー
ドする。これは、メモリ上の要素1から要素11のデー
タ(ここでは、1.0)をベクトルレジスタvr1に図示
のようにロードする。
【0036】は、図3の(b)のの命令vslid vr2,
1,vr1によって、ベクトルレジスタvr1にロードされた要
素を、ベクトルレジスタvr2に例えば1要素スライドし
て格納する。ここで、ベクトルレジスタvr2の内容は、b
(2〜11)の要素であり、(?)は未定義領域である。
【0037】は、図3の(b)のの命令vgsm 11,mr
4によって、ベクトルレジスタvr2の末尾要素(?)は処
理してはならないため、マスク情報を生成する。 は、図3の(b)のvadd vr3,vr1,vr2,mr4によっ
て、マスクレジスタmr4の真となったマスク要素分の演
算(ベクトルレジスタvr1とベクトルレジスタvr2の内容
を加算してその加算結果をベクトルレジスタvr3に格納
する演算)を行う。この結果、図示のようにベクトルレ
ジスタvr3には、2.0という値が格納される。
【0038】は、図3の(b)のvstore vr3,a(1,1
0),mr4によって、マスクレジスタmr4の真となったマス
ク要素分のベクトルレジスタvr3のデータがメモリ上のa
(1,10)にストアされる。
【0039】以上によって、図3の(a)のソースプロ
グラム1中の隣接するメモリアクセス命令でアクセスす
る要素数が1τで処理できる要素数あるいはその整数倍
に等しくない場合にベクトル長増加方式として、から
の命令列を自動生成することにより、重複したメモリ
アクセスを無くし(スライド命令によって重複した部分
のデータをベクトルレジスタ間でスライドして他のベク
トルレジスタに格納し)、隣接したメモリアクセス命令
をベクトル計算機上で高速並列実行させることが可能と
なる。
【0040】図4は、本発明の説明図(その2)を示
す。これは、既述した図2のS9のベクトル長削減方式
の場合の具体例の説明図であって、隣接するアクセス命
令の対象となる要素の配列が同じ場合のものである。
【0041】図4の(a)は、ソースプログラム(FO
TRANプログラム)の例を示す。ここでは、図示の下
記の演算を行う。 図4の(b)は、オブジェクトの例を示す。これは、図
4の(a)のソースプログラムを、図2のフローチャー
ト中のS9で本発明に係るベクトル長削減方式に従って
生成したオブジェクトのイメージを示す。ここで、図中
のから、〇10について、図4の(c)のから、
〇10で順次詳細に説明する。
【0042】図4の(c)において、は、ベクトル長
が1τで処理できる要素数(例えば16要素数)で割り
切れたので、ベクトル長削減方式が選択され、v1v1の値
を10とする(要素数10のままとする)。
【0043】は、図4の(b)のの命令vload vr1,
b(1:10)によって、bの要素(1〜10)を、vr1にロー
ドする。これは、メモリ上の要素1から要素10のデー
タ(ここでは、1.0)をベクトルレジスタvr1に図示
のようにロードする。
【0044】は、図4の(b)のの命令vslid vr2,
1,vr1によって、ベクトルレジスタvr1にロードされた要
素を、ベクトルレジスタvr2に例えば1要素スライドし
て格納する。ここで、ベクトルレジスタvr2の末尾要素
(?)は格納されていない。
【0045】は、図4の(b)のの命令v1v1 9によ
って、ベクトル長を−1し、9とする。 は、図4の(b)のの命令vadd vr3,vr1,vr2によっ
て、ベクトルレジスタvr1とベクトルレジスタvr2の内容
を加算してその加算結果をベクトルレジスタvr3に格納
する演算を行う。この結果、図示のようにベクトルレジ
スタvr3には、9要素分の加算結果、2.0という値が
格納される。
【0046】は、図4の(b)のvstore vr3,a(1,
9)によって、ベクトルレジスタvr3のデータがメモリ上
のa(1,9)にストアされる。 は、図4の(b)のload r1,b(10)によって、ベク
トルレジスタvr1の10要素目の演算が不足しているの
でその演算に対しては、スカラ命令で演算する。ここで
は、b(10)要素をメモリからレジスタ(スカラレジスタ)
にロードする。
【0047】は、図4の(b)のload r2,b(11)に
よって、ベクトルレジスタvr1の11要素目の演算が不
足しているのでその演算に対しては、スカラ命令で演算
する。ここでは、b(11)要素をメモリからレジスタ(スカ
ラレジスタ)にロードする。
【0048】は、図4の(b)のadd r3,r1,r2によ
って、レジスタr1とレジスタr2の内容を加算してその加
算結果をレジスタr3に格納する演算を行う。この結果、
図示のようにレジスタr3には、10要素目と11要素目
の加算結果、2.0という値が格納される。
【0049】〇10は、図4の(b)の〇10 store r3,a
(10)によって、レジスタr3のデータをメモリのa(10)に
ストアする。以上によって、図4の(a)のソースプロ
グラム1中の隣接するメモリアクセス命令でアクセスす
る要素数が1τで処理できる要素数あるいはその整数倍
に等しい場合にベクトル長削減方式として、から、
〇10の命令列を自動生成することにより、重複したメモ
リアクセスを無くし(スライド命令によって重複した部
分のデータをベクトルレジスタ間でスライドして他のベ
クトルレジスタに格納し)、隣接したメモリアクセス命
令をベクトル計算機上で高速並列実行させることが可能
となる。特に、ベクトル長削減方式では、隣接するメモ
リアクセス命令が1回で処理する要素数が1τで処理で
きる要素数の整数倍のときに適用し、ベクトル演算より
も、スカラ演算の方が高速実行できるのでこの特質を有
効に利用し、より高速実行可能な命令列を自動生成した
ものである。
【0050】図5は、本発明の説明図(その3)を示
す。これは、既述した図3のベクトル長増加方式および
図4のベクトル長削減方式のメリットおよびデメリット
を表にまとめたものであって、図示の下記の通りであ
る。
【0051】 ベクトル長増加方式(図3) ベクトル長削減方式(図4) メリット : スカラ演算補充の不用 マスク生成の不用 デメリット: マスク生成 スカラ演算補充 したがって、これらメリット/デメリットを考慮して最
適なベクトル長増加方式あるいはベクトル長削減方式を
選択使用すればよい。例えば既述したように、ベクトル
レジスタを使用して1τで並列処理できる要素数(例え
ば16)に等しいときはベクトル削減方式を採用し、マ
スク生成を不用とし、スカラ演算補充(図4の〜、
〇10)を行い、高速化を図る。一方、等しくないときに
ベクトル長増加方式を採用し、スカラ演算補充を不用と
し、マスク生成(図3の)を行い、高速化を図る。
尚、ベクトルレジスタを使用して1τで並列処理できる
要素数(例えば16)に等しいか等しくないかで、ベク
トル長削減方式あるいはベクトル長増加方式のいずれか
を選択したが、他の基準によっていずれかを選択するよ
うにしてもよい。
【0052】図6は、本発明のハードウェアブロック図
を示す。これは、既述した図1から図5によって生成し
たオブジェクト10を、ベクトル計算機上で実行すると
きに必要な本発明に係るハードウェアのブロック図であ
る。
【0053】図6において、CPU21は、オブジェク
ト10を読み込んで各種処理を行うものである。ここで
は、CPU21は、オブジェクト10を解析して既述し
たベクトル命令を検出したときに図示のベクトル命令を
ベクトルプロセッサ(コプロセッサ)22に通知した
り、既述したスカラレジスタ命令を検出したときに図示
のスカラレジスタ読み出しデータを通知したり、スカラ
レジスタ書き込みデータを通知したりなどする。
【0054】ベクトルプロセッサ22は、ベクトル命令
に従い処理を行うものであって、CPU21との間でデ
ータの授受を行うCPUインタフェース手段23、受信
したベクトル命令を解析して該当制御を指示する命令制
御手段24、命令制御手段24からの指示に従い演算す
る演算手段25、VR/MR(ベクトルレジスタなどの
レジスタ)26、主記憶アクセス手段27、VCR(ベ
クトルコントロール手段)28などから構成されるもの
である。
【0055】主記憶29は、各種データなどを格納する
メモリである。ここで、CPU21がオブジェクトを読
み込んで解析し、ベクトル命令と判明したときにベクト
ルプロセッサ22に当該ベクトル命令を通知し、通知を
受けたベクトルプロセッサ22の命令制御手段24がこ
のベクトル命令を解析して指示を行い、この指示に従い
演算手段25がVR/MR26上のデータの演算を行
い、その結果を格納したり、CPU21に通知したりな
どし、一連の処理を実行する。
【0056】
【発明の効果】以上説明したように、本発明によれば、
ソースプログラム1中の隣接するメモリアクセス命令に
ついてベクトル計算機上で動作するスライド命令によっ
て重複した部分のデータをベクトルレジスタ間でスライ
ドして他のベクトルレジスタに格納する命令を自動生成
したオブジェクト10を出力する構成を採用しているた
め、隣接するメモリアクセス命令が存在するときに重複
したメモリアクセスを削減してベクトル計算機の実行性
能の向上を図ることが可能となる。また、隣接するメモ
リアクセス命令が1τで処理できる要素数の整数倍と一
致したときにベクトル長削減方式を選択し、不一致のと
きにベクトル長増加方式を選択することで、並列処理す
る要素数に最適な方式を自動選択し、より高速化を図る
ことが可能となる。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャートである。
【図3】本発明の説明図(その1)である。
【図4】本発明の説明図(その2)である。
【図5】本発明の説明図(その3)である。
【図6】本発明のハードウェアブロック図である。
【図7】従来技術の説明図である。
【符号の説明】
1:ソースプログラム 2:コンパイラ 3:プログラム入力手段 4:ソース解析手段 5:ベクトル化手段 6:最適化手段 7:隣接アクセス認識手段 8:スライド命令利用手段 9:コード生成手段 10:オブジェクト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 森島 政人 静岡県静岡市南町18番1号 株式会社富士 通静岡エンジニアリング内 (72)発明者 青木 正樹 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B056 AA04 BB32 EE07 FF05 FF10 5B081 CC33 CC41

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】隣接するメモリアクセス命令についてベク
    トル計算機上で高速実行する命令を生成するメモリアク
    セス処理装置において、 ソースプログラムを解析して隣接するメモリアクセス命
    令を検出する手段と、 上記検出された隣接するメモリアクセス命令について両
    者に必要なデータを含むメモリアクセス命令に変換する
    手段と、 上記変換した命令によってメモリから読み出されてロー
    ドされた第1のベクトルレジスタのデータを、スライド
    させて第2のベクトルレジスタに格納させる命令を生成
    する手段と、 上記第1のベクトルレジスタと上記第2のベクトルレジ
    スタとの演算を行う命令を生成する手段とを備えたこと
    を特徴とするメモリアクセス処理装置。
  2. 【請求項2】隣接するメモリアクセス命令についてベク
    トル計算機上で高速実行する命令を生成するメモリアク
    セス処理装置において、 ソースプログラムを解析して隣接するメモリアクセス命
    令を検出する手段と、 上記検出された隣接するメモリアクセス命令について両
    者に必要なデータを含むメモリアクセス命令に変換する
    手段と、 上記変換した命令によってメモリから読み出されてロー
    ドされた第1のベクトルレジスタのデータを、スライド
    させて第2のベクトルレジスタに格納させる命令を生成
    する手段と、 上記第2のベクトルレジスタ中の処理不要な要素にマス
    クする命令を生成する手段と、 上記マスク命令で真(有意)となった要素について上記
    第1のベクトルレジスタと上記第2のベクトルレジスタ
    との演算を行う命令を生成する手段とを備えたことを特
    徴とするメモリアクセス処理装置。
  3. 【請求項3】隣接するメモリアクセス命令についてベク
    トル計算機上で高速実行する命令を生成するメモリアク
    セス処理装置において、 ソースプログラムを解析して隣接するメモリアクセス命
    令を検出する手段と、 上記隣接するメモリアクセス命令中の1つの命令によっ
    てメモリから読み出されてロードされた第1のベクトル
    レジスタのデータを、スライドさせて第2のベクトルレ
    ジスタに格納させる命令を生成する手段と、 上記第1のベクトルレジスタと上記第2のベクトルレジ
    スタとの有意な部分の演算を行う命令を生成する手段と
    上記演算の実行されなかった要素についてメモリから読
    み出してレジスタにそれぞれロードする命令を生成する
    手段と、 上記ロードしたレジスタの間の演算を行う命令を生成す
    る手段とを備えたことを特徴とするメモリアクセス処理
    装置。
  4. 【請求項4】上記隣接するメモリアクセス命令の要素数
    が1回のベクトル演算処理で実行し得る最大要素数の整
    数倍以外のときに上記請求項1あるいは請求項2を選択
    して実行することを特徴とするメモリアクセス処理装
    置。
  5. 【請求項5】上記隣接するメモリアクセス命令の要素数
    が1回のベクトル演算処理で実行し得る最大要素数の整
    数倍のときに上記請求項3を選択して実行することを特
    徴とするメモリアクセス処理装置。
  6. 【請求項6】隣接するメモリアクセス命令が同じ配列で
    あることを特徴とする請求項1から請求項5のいずれか
    に記載のメモリアクセス処理装置。
  7. 【請求項7】ソースプログラムを解析して隣接するメモ
    リアクセス命令を検出する手段と、 上記検出された隣接するメモリアクセス命令について両
    者に必要なデータを含むメモリアクセス命令に変換する
    手段と、 上記変換した命令によってメモリから読み出されてロー
    ドされた第1のベクトルレジスタのデータを、スライド
    させて第2のベクトルレジスタに格納させる命令を生成
    する手段と、 上記第1のベクトルレジスタと上記第2のベクトルレジ
    スタとの演算を行う命令を生成する手段として機能させ
    るプログラムを記録したコンピュータ読取可能な記録媒
    体。
  8. 【請求項8】ソースプログラムを解析して隣接するメモ
    リアクセス命令を検出する手段と、 上記検出された隣接するメモリアクセス命令について両
    者に必要なデータを含むメモリアクセス命令に変換する
    手段と、 上記変換した命令によってメモリから読み出されてロー
    ドされた第1のベクトルレジスタのデータを、スライド
    させて第2のベクトルレジスタに格納させる命令を生成
    する手段と、 上記第2のベクトルレジスタ中の処理不要な要素にマス
    クする命令を生成する手段と、 上記マスク命令で真(有意)となった要素について上記
    第1のベクトルレジスタと上記第2のベクトルレジスタ
    との演算を行う命令を生成する手段として機能させるプ
    ログラムを記録したコンピュータ読取可能な記録媒体。
  9. 【請求項9】ソースプログラムを解析して隣接するメモ
    リアクセス命令を検出する手段と、 上記隣接するメモリアクセス命令中の1つの命令によっ
    てメモリから読み出されてロードされた第1のベクトル
    レジスタのデータを、スライドさせて第2のベクトルレ
    ジスタに格納させる命令を生成する手段と、 上記第1のベクトルレジスタと上記第2のベクトルレジ
    スタとの有意な部分の演算を行う命令を生成する手段と
    上記演算の実行されなかった要素についてメモリから読
    み出してレジスタにそれぞれロードする命令を生成する
    手段と、 上記ロードしたレジスタの間の演算を行う命令を生成す
    る手段として機能させるプログラムを記録したコンピュ
    ータ読取可能な記録媒体。
JP21234898A 1998-07-28 1998-07-28 メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体 Expired - Fee Related JP3817073B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21234898A JP3817073B2 (ja) 1998-07-28 1998-07-28 メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21234898A JP3817073B2 (ja) 1998-07-28 1998-07-28 メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2000048009A true JP2000048009A (ja) 2000-02-18
JP3817073B2 JP3817073B2 (ja) 2006-08-30

Family

ID=16621059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21234898A Expired - Fee Related JP3817073B2 (ja) 1998-07-28 1998-07-28 メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体

Country Status (1)

Country Link
JP (1) JP3817073B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7088276B1 (ja) * 2020-12-14 2022-06-21 日本電気株式会社 コンパイル装置、コンパイル方法、及びコンパイルプログラム
US11829754B2 (en) 2018-12-07 2023-11-28 Nec Corporation Compile device, compile method, and non-transitory computer readable medium for increasing a speed of a program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829754B2 (en) 2018-12-07 2023-11-28 Nec Corporation Compile device, compile method, and non-transitory computer readable medium for increasing a speed of a program
JP7088276B1 (ja) * 2020-12-14 2022-06-21 日本電気株式会社 コンパイル装置、コンパイル方法、及びコンパイルプログラム
WO2022130883A1 (ja) * 2020-12-14 2022-06-23 日本電気株式会社 コンパイル装置、コンパイル方法、及びコンパイルプログラム記録媒体

Also Published As

Publication number Publication date
JP3817073B2 (ja) 2006-08-30

Similar Documents

Publication Publication Date Title
US6113650A (en) Compiler for optimization in generating instruction sequence and compiling method
US5598561A (en) Optimizing compiler which generates multiple instruction streams to be executed in parallel
US20040003381A1 (en) Compiler program and compilation processing method
JPS6312029A (ja) 情報処理装置
JP4487479B2 (ja) Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
WO2006112045A1 (ja) 演算処理装置
JP2000048009A (ja) メモリアクセス処理装置および記録媒体
JP3887097B2 (ja) コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP3196625B2 (ja) 並列化コンパイル方式
JP3771682B2 (ja) ベクトル処理装置
Lescrenier et al. Large-scale unconstrained optimization on the FPS 164 and Cray X-MP vector processors
JP3734658B2 (ja) コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体
JP2018049461A (ja) コンパイル装置、コンパイル方法、および、コンパイルプログラム
JPH10177566A (ja) メモリアクセスの高速化処理装置および記録媒体
JP2019012324A (ja) コンパイラ
JPH0241562A (ja) ベクトル演算列分割処理方式
JP5549861B2 (ja) 分散メモリ型マルチプロセッサシステム及び分散メモリ型マルチプロセッサシステムの通信抑制方法
JP4579425B2 (ja) 情報処理装置
JP2004046747A (ja) ベクトル化方式
JPH04308935A (ja) コード生成装置
JPH08171554A (ja) ベクトル演算の最適化コンパイラ
JP2895892B2 (ja) データ処理装置
JPH03257579A (ja) コンパイラの並列化方式
JPS63159979A (ja) ベクトル演算における共通演算削除処理方式
JPH02132525A (ja) コンパイル方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060609

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140616

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees