(57)【特許請求の範囲】
【請求項１】
先行するストア系命令と後続のロード系命令との追い越し制御を行うベクトル処理装置であって、
前記ストア系命令及び前記ロード系命令の命令語中に、メモリアクセスのアドレス領域のプログラム上での重なりの有無に応じて所定の値が設定される追い越しビットを設定し、前記ストア系命令がリストベクトルストア命令である場合に、前記追い越しビットを参照して追い越し制御が行われることを特徴とするベクトル処理装置。
【請求項２】
先行するストア系命令と後続のロード系命令との追い越し制御を行うベクトル処理装置であって、
ソフトウェアが命令語生成時に、前記ストア系命令及び前記ロード系命令のプログラム上でのアドレス領域の重なりの有無に応じて所定の値が設定される追い越しビットを参照して前記後続のロード系命令の追い越し制御を行う第１の追い越し判定手段と、前記ストア系命令及び前記ロード系命令のアドレス領域を計算し、計算した前記アドレス領域の重なりを参照して追い越し制御を行う第２の追い越し判定手段と、を少なくとも有することを特徴とするベクトル処理装置。
【請求項３】
前記ストア系命令がリストベクトルストア命令の場合は、前記第１の追い越し判定手段によって追い越しの可否が判定され、前記ストア系命令がベクトルストア命令の場合は、前記第２の追い越し判定手段によって追い越しの可否が判定されることを特徴とする請求項２記載のベクトル処理装置。
【請求項４】
前記先行ストア命令と前記後続ロード命令の前記アドレス領域のプログラム上での重なりがないことが判明している場合に、前記追い越しビットに”１”が設定され、前記アドレス領域が重なる場合、あるいは重なりが判別できない場合に、前記追い越しビットに”０”が設定され、前記追い越しビットの値が”１”の場合のみ、該追い越しビットに基づく追い越し判定が”追い越し可能”となることを特徴とする請求項１乃至３のいずれか一に記載のベクトル処理装置。
【請求項５】
前記ベクトル処理装置に、命令発行部と、該命令発行部から発行されたリクエストを受け付けるリクエスト受付手段と、該リクエスト受付手段で振り分けられたストア系命令とロード系命令とを各々保持するストア系命令保持手段及びロード系命令保持手段と、前記ストア系命令及び前記ロード系命令のアクセス領域を計算するアクセス領域計算手段と、該アクセス領域計算手段の計算結果に基づいてアクセス領域の重なりを判定するアドレス領域判定手段と、前記ストア系命令及び前記ロード系命令に含まれる前記追い越しビットを抽出する追い越しビット判定手段と、前記アドレス領域判定手段及び前記追い越しビット判定手段の判定結果を参照して追い越し判定を行う追い越しチェック判定手段と、を備えることを特徴とする請求項２乃至４のいずれか一に記載のベクトル処理装置。
【請求項６】
前記追い越しビットに代えて、前記ストア系命令及び前記ロード系命令の命令語毎に判定テーブルを設け、該判定テーブルを参照して追い越し制御が行われることを特徴とする請求項１乃至５のいずれか一に記載のベクトル処理装置。
【請求項７】
ベクトル処理装置における先行するストア系命令と後続のロード系命令との追い越し制御方法において、
前記ストア系命令及び前記ロード系命令におけるメモリアクセスのアドレス領域のプログラム上での重なりを判断するステップと、前記ストア系命令及び前記ロード系命令の命令語中に予め設けられた追い越しビットに、前記アドレス領域の重なりの有無に応じて所定の値を設定するステップと、前記ストア系命令がリストベクトルストア命令の場合に、前記追い越しビットを参照して追い越し判定を行うステップとを少なくとも有することを特徴とする追い越し制御方法。
【請求項８】
ベクトル処理装置における先行するストア系命令と後続のロード系命令との追い越し制御方法において、
ソフトウェアが命令語生成時に、前記ストア系命令及び前記ロード系命令のプログラム上でのアドレス領域の重なりを判断し、前記命令語中に予め設けられた追い越しビットに、前記アドレス領域の重なりの有無に応じて所定の値を設定するステップと、前記ストア系命令がリストベクトルストア命令の場合に、該追い越しビットを参照して前記後続のロード系命令の追い越し判定を行うステップと、前記ストア系命令がベクトルストア命令の場合に、各々の命令のアドレス領域を計算するステップと、計算した前記アドレス領域の重なりを参照して追い越し判定を行うステップと、を少なくとも有することを特徴とする追い越し制御方法。
【請求項９】
前記先行ストア命令と前記後続ロード命令の前記アドレス領域のプログラム上での重なりがないことが判明している場合に、前記追い越しビットに”１”を設定し、前記アドレス領域が重なる場合、あるいは重なりが判別できない場合に、前記追い越しビットに”０”を設定し、前記追い越しビットの値が”１”の場合のみ、該追い越しビットに基づく追い越し判定を行うことを特徴とする請求項７又は８に記載のベクトル処理装置による追い越し制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル処理装置及び該装置を用いた追い越し制御方法に関し、特に、メモリアクセス系命令の追い越し制御機能を有するベクトル処理装置及び該装置を用いた追い越し制御方法に関する。
【０００２】
【従来の技術】
一般に、命令処理の高速化を目的としたベクトル処理方式においては、メモリアクセス系の命令で先行するストア命令の領域に後続に発行されるロード系の命令のアクセス領域が重なっていない場合、後続のロード系命令のメモリアクセスを先に実行させ、メモリアクセスの高速化を図るというベクトルストア追い越し制御方式が行われている。
【０００３】
従来のこの種のベクトルストア命令追い越し制御は、例えば、特開平９−２３１２０３号公報に記載されているように、リクエスト受付時にメモリをアクセスするアドレス、及び領域が判明しているようなベクトルストア命令とロード系命令が追い越し制御の対象になっている。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のメモリアクセス系命令の追い越し制御機能を有しているベクトル処理装置においては、次のような課題がある。
【０００５】
その一つは、先行命令がリストベクトルストア命令の場合には、追い越し制御処理時にはメモリをアクセスするアドレス領域が不明であるため、後続のロード系命令とのアドレス領域の重なりをチェックすることができないので、後続のロード系命令は先行するリストベクトルストア命令を追い越して処理できないということである。
【０００６】
また、例えば、特開昭６１−１００８４５号公報に記載されているように、ソフトウェアでメモリアクセス順序の同期処理をPOST命令、およびWAIT命令によって制御するような追い越し制御方式によってメモリアクセスの高速化を図っている場合もある。この場合は、先行ストア系命令と後続ロード系命令の追い越し制御機能をハードウェアで有していないため、ソフトウェアで先行ストア命令と後続ロード命令のアドレス参照関係が認識できない場合は先行ベクトルストア命令と後続ロード系命令の参照アドレス領域が一致していない場合でも追い越しができないということである。
【０００７】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、先行ストア系命令と後続ロード系命令の追い越し制御を的確に行い、プログラム処理の高速化を図ることができるベクトル処理装置及び該装置を用いた追い越し制御方法を提供することにある。
【０００８】
【問題を解決するための手段】
上記目的を達成するため、本発明のベクトル処理装置は、先行するストア系命令と後続のロード系命令との追い越し制御を行うベクトル処理装置であって、前記ストア系命令及び前記ロード系命令の命令語中に、メモリアクセスのアドレス領域のプログラム上での重なりの有無に応じて所定の値が設定される追い越しビットを設定し、前記ストア系命令がリストベクトルストア命令である場合に、前記追い越しビットを参照して追い越し制御が行われるものである。
【０００９】
また、本発明のベクトル処理装置は、先行するストア系命令と後続のロード系命令との追い越し制御を行うベクトル処理装置であって、ソフトウェアが命令語生成時に、前記ストア系命令及び前記ロード系命令のプログラム上でのアドレス領域の重なりの有無に応じて所定の値が設定される追い越しビットを参照して前記後続のロード系命令の追い越し制御を行う第１の追い越し判定手段と、前記ストア系命令及び前記ロード系命令のアドレス領域を計算し、計算した前記アドレス領域の重なりを参照して追い越し制御を行う第２の追い越し判定手段と、を少なくとも有するものである。
【００１０】
本発明においては、前記ストア系命令がリストベクトルストア命令の場合は、前記第１の追い越し判定手段によって追い越しの可否が判定され、前記ストア系命令がベクトルストア命令の場合は、前記第２の追い越し判定手段によって追い越しの可否が判定されることが好ましい。
【００１１】
また、本発明においては、前記先行ストア命令と前記後続ロード命令の前記アドレス領域のプログラム上での重なりがないことが判明している場合に、前記追い越しビットに”１”が設定され、前記アドレス領域が重なる場合、あるいは重なりが判別できない場合に、前記追い越しビットに”０”が設定され、前記追い越しビットの値が”１”の場合のみ、該追い越しビットに基づく追い越し判定が”追い越し可能”となる構成とすることができる。
【００１２】
また、本発明においては、前記ベクトル処理装置に、命令発行部と、該命令発行部から発行されたリクエストを受け付けるリクエスト受付手段と、該リクエスト受付手段で振り分けられたストア系命令とロード系命令とを各々保持するストア系命令保持手段及びロード系命令保持手段と、前記ストア系命令及び前記ロード系命令のアクセス領域を計算するアクセス領域計算手段と、該アクセス領域計算手段の計算結果に基づいてアクセス領域の重なりを判定するアドレス領域判定手段と、前記ストア系命令及び前記ロード系命令に含まれる前記追い越しビットを抽出する追い越しビット判定手段と、前記アドレス領域判定手段及び前記追い越しビット判定手段の判定結果を参照して追い越し判定を行う追い越しチェック判定手段と、を備える構成とすることもできる。
【００１３】
また、本発明においては、前記追い越しビットに代えて、前記ストア系命令及び前記ロード系命令の命令語毎に判定テーブルを設け、該判定テーブルを参照して追い越し制御が行われる構成とすることもできる。
【００１４】
本発明の追い越し制御方法は、ベクトル処理装置における先行するストア系命令と後続のロード系命令との追い越し制御方法において、前記ストア系命令及び前記ロード系命令におけるメモリアクセスのアドレス領域のプログラム上での重なりを判断するステップと、前記ストア系命令及び前記ロード系命令の命令語中に予め設けられた追い越しビットに、前記アドレス領域の重なりの有無に応じて所定の値を設定するステップと、前記ストア系命令がリストベクトルストア命令の場合に、前記追い越しビットを参照して追い越し判定を行うステップとを少なくとも有するものである。
【００１５】
また、本発明の追い越し制御方法は、ベクトル処理装置における先行するストア系命令と後続のロード系命令との追い越し制御方法において、ソフトウェアが命令語生成時に、前記ストア系命令及び前記ロード系命令のプログラム上でのアドレス領域の重なりを判断し、前記命令語中に予め設けられた追い越しビットに、前記アドレス領域の重なりの有無に応じて所定の値を設定するステップと、前記ストア系命令がリストベクトルストア命令の場合に、該追い越しビットを参照して前記後続のロード系命令の追い越し判定を行うステップと、前記ストア系命令がベクトルストア命令の場合に、各々の命令のアドレス領域を計算するステップと、計算した前記アドレス領域の重なりを参照して追い越し判定を行うステップと、を少なくとも有するものである。
【００１６】
このように、本発明は上記構成により、先行するリストベクトルストア命令と後続のロード系命令のアドレス領域が重ならない場合に後続ロード系命令を先行して処理することができ、プログラム処理の高速化を図ることができる。
【００１７】
【発明の実施の形態】
本発明に係るベクトル処理装置は、その好ましい一実施の形態において、先行するストア系命令と後続に発行されるロード系命令のアクセスするアドレス領域を比較し、アドレス領域が重なっていない場合は後続のロード系命令のメモリアクセスを先に実行する命令追い越し制御手段を備えるベクトル処理装置において、命令語中に追い越しビットを設け、ソフトウェア（コンパイラ）によって命令語を生成する際に先行ストア命令と後続ロード命令のアクセスするアドレス領域がプログラム上重ならないことがわかっている場合に該追い越しビットを１にセットし、両アドレス領域の重なっている場合、あるいは重なりが判別できない場合は該ビットを０にセットし、該ビットを判別し後続ロード系命令の追い越しの可否を判定する追い越しビット判定手段を設けるものである。以下、本発明の一構成例を示す図１を参照して説明する。
【００１８】
図１に示すように、命令発行部１から発行されたメモリアクセス系命令はリクエスト受付レジスタ２で受け付け、受け付けた命令がストア系命令の場合はストア命令保持レジスタ３に、また、受け付けた命令がロード系命令の場合はロード命令保持レジスタ４に保持する。アクセス領域計算手段６は、ストア命令保持レジスタ３から送出されるベクトルストア命令と、ロード命令保持レジスタ４から送出されるロード系命令のアドレス領域計算を行う。領域保持手段７、８は、アクセス領域計算手段６により領域計算をおこなったアドレス領域を保持する。この場合、領域保持レジスタ７にはベクトルストア命令のアドレスを、また領域保持レジスタ８にはロード系命令のアドレスを保持する。アドレス領域判定手段９は、領域保持レジスタ７に保持されているベクトルストア命令のアドレス領域と、領域保持レジスタ８に保持されているロード系命令のアドレス領域を比較し、ロード系命令がベクトルストア命令を追い越すことができるかどうかアドレス領域を判定する。
【００１９】
また、ストア命令保持レジスタ３に保持された命令の命令語中の追い越し指示ビットを追い越しビット判定手段１０に送出し、ロード命令保持レジスタ４に保持されたロード系命令の追い越し指示ビットも追い越しビット判定手段１０に送出する。追い越しビット判定手段１０は、送出された追い越し指示ビットを比較し、ロード系命令がリストベクトルストア命令を追い越すことができるかどうかを判定する。この命令語中の追い越し指示ビットは、ソフトウェアにより命令語作成の際に設定され、先行リストベクトルストア命令と後続ロード系命令のアドレス領域がプログラム上重ならないことが判明している場合に追い越しビットが有効になる。追い越しチェック判定１１は、アドレス領域判定手段９と追い越しビット判定手段１０の判定結果から先行するストア系命令を後続のロード系命令が追い越せるかどうかを決定する。
【００２０】
一方、命令パイプライン保持手段５は、ロード命令保持レジスタ４から送出されるロード命令を、アクセス領域計算手段６、アドレス領域判定手段９、追い越しビット判定手段１０、及び追い越しチェック判定手段１１によってアドレス計算や追い越しチェック判定を行っている間、パイプラインで保持する。
【００２１】
選択手段１２は、リクエスト受付レジスタ２から送出されるロード系命令と、ロード命令保持レジスタ４から送出されるロード系命令と、ストア命令保持レジスタ３から送出されるストア系命令の中から、追い越しチェック判定手段１１により追い越しが可能かどうかの制御信号により１つを選択するセレクタである。
【００２２】
このようにして、本願発明では、ソフトウェアで先行するリストベクトルストア命令と後続のロード系命令の追い越しの可否を命令語中の追い越しビットで指定し、追い越しビット判定手段１０では、追い越しビットを判定して追い越しの可否を決定し、追い越し可能な場合は先行するリストベクトルストア命令を後続のロード系命令が追い越して処理することができるため、ベクトル命令列を高速に処理することができる。
【００２３】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の実施例について図１乃至図４を参照して説明する。図１は、本発明の一実施例に係るベクトル処理装置の構成を示すブロック図であり、図２は、命令語の構成を示す図である。また、図３は、各命令におけるアドレス領域の計算方法を説明するための図であり、図４は、本実施例のプログラムソースコードの一例を示す図である。
【００２４】
まず、図１を参照して本実施例のベクトル処理装置の各構成要素について説明する。リクエスト受付レジスタ２は、命令発行部１から発行されたメモリアクセス系命令を信号線１００を介して受け取る。リクエスト受付レジスタ２で受け付けた命令がストア系命令の場合（この判断回路は図示省略）は、信号線１０１を介してストア命令保持レジスタ３で保持される。また、リクエスト受付レジスタ２で受け付けた命令がロード系命令の場合は、信号線１０１を介してロード命令保持レジスタ４に保持されるが、ストア命令保持レジスタ３にストア命令が保持されていない場合は、ロード命令保持レジスタ４には格納せずに後述する選択手段１２に命令を送出する。
【００２５】
アクセス領域計算手段６は、信号線１０２を介してストア命令保持レジスタ３から送出されるベクトルストア命令と、信号線１０３を介してロード命令保持レジスタ４から送出されるロード系命令のメモリアクセスのアドレス領域を計算する。このアドレス領域計算において、アドレス領域の最終アドレスは、図３に示すように、各命令における｛先頭アドレス＋（ベクトル要素−１）×ベクトル要素間ディスタンス＋要素長｝で計算される。また、ロード系命令がスカラ命令の場合は、ベクトル要素＝１で計算される。
【００２６】
つまり、先頭アドレスから最終アドレスまでが各命令におけるアドレス領域となる。ここで、アクセス領域計算手段６は、ストア命令保持レジスタ３から送出された命令がリストベクトルストア命令の場合、アドレス領域計算は行わずに領域計算の結果を“０”にする。
【００２７】
領域保持レジスタ７は、アクセス領域計算手段６により領域計算を行ったベクトルストア命令のアドレス領域を信号線１０４を介して保持する。また、領域保持レジスタ８は、信号線１０５を介して、後続のベクトルロード命令のアドレス領域を保持する。アドレス領域判定手段９は、信号線１０６を介して送出される領域保持レジスタ７に保持したベクトルストア命令のアドレス領域と、信号線１０７を介して送出される領域保持レジスタ８に保持したロード系命令のアドレス領域とを比較し、後続ロード系命令がベクトルストア命令を追い越すことができるかどうかを判定し、追い越しが可能な場合は、信号線１０８を介して追い越しチェック判定手段１１に“１”を送出し、追い越しが不可能な場合は“０”を送出する。また、アドレス領域判定手段９は、領域保持レジスタ７から送出された値が“０”の場合、つまりリストベクトルストア命令の場合は、“０”を追い越しチェック判定手段１１に送出する。
【００２８】
また、ストア命令保持レジスタ３はレジスタ内の命令語（命令語については後述）中の命令を示すオペコード（ＯＰ）と追い越し指示ビットを、信号線１０９を介して追い越しビット判定手段１０に送出し、ロード命令保持レジスタ４はレジスタ内の命令語中の命令を示すオペコード（ＯＰ）と追い越し指示ビットを、信号線１１０を介して追い越しビット判定手段１０に送出する。追い越しビット判定手段１０は、信号線１０９、１１０を介して受け取ったオペコード（ＯＰ）と追い越し指示ビットを比較し、後続ロード系命令が先行するストア系命令を追い越せるかどうかを判定し、追い越しが可能な場合は、信号線１１１を介して追い越しチェック判定手段１１に“１”を送出し、追い越しが不可能な場合は“０”を送出する。また、ストア命令保持レジスタ３から送出されたオペコードがベクトルストア命令を示す場合は、追い越しチェック判定手段１１には“０”を送出する。
【００２９】
追い越しチェック判定手段１１は、アドレス領域判定手段９及び追い越しビット判定手段１０から送出される追い越し判定結果から、どちらかの判定結果が“１”の場合には先行するストア系命令を後続のロード系命令が追い越せると判定し、両方の判定結果が“０”の場合には後続のロード系命令が追い越せないと判定する。判定結果は信号線１１２を介して選択手段１２に送出される。
【００３０】
一方、命令パイプライン保持手段５は、ロード命令保持レジスタ４から送出されるロード命令をアクセス領域計算手段６、アドレス領域判定手段９、追い越しビット判定手段１０及び追い越しチェック判定手段１１によってアドレス領域計算や追い越しチェック判定を行っている間、パイプラインで保持する。ここではアドレス領域計算、追い越しチェック判定までに４Ｔかかると仮定し、命令パイプライン保持手段５は４段のレジスタ構成としている。
【００３１】
選択手段１２は、リクエスト受付レジスタ２から送出されるロード系命令と、ロード保持レジスタ４から命令パイプライン保持手段５を経由して送出されるロード系命令と、ストア命令保持レジスタ３から送出されるストア系命令の中から、追い越しチェック判定手段１１からの制御信号１１２を参照して１つの命令を選択し、信号線１１３を介して選択されたメモリリクエスト命令を送出する。すなわち、選択手段１２は、制御信号が“０”の場合は、追い越し不可を示すためストア系命令を選択し、制御信号が“１”の場合は追い越し可能を示すためロード系命令を選択する。
【００３２】
次に、図２を用いて命令語について説明する。図２（ａ）は、ベクトルロード命令、及びベクトルストア命令の命令語の一部を示している。命令語２００は、ＯＰ２０１、追い越し指示ビット２０２、先頭アドレス２０３、及びベクトル要素間ディスタンス２０４などで構成されている。ＯＰ２０１では命令の種類、例えばベクトルロード命令を指定する。追い越し指示ビット２０２は、ソフトウェア（コンパイラ）が命令語生成時に設定し、命令がロード系命令の場合に、先行するリストベクトルストア命令と該ロード系命令のアドレス領域がプログラム的に重ならないことが判明している場合に追い越し可能であることをフラグとして設定する。例えば、アドレス領域が重ならないことが判明している場合は追い越し指示ビットには“１”を、判明していない場合は追い越し指示ビットには“０”を設定する。
【００３３】
また、図２（ｂ）は、リストベクトルストア命令の命令語の一部を示している。命令語２１０は、ＯＰ２１１、追い越し指示ビット２１２、メモリをアクセスするアドレスが格納されているベクトルレジスタを示すＶＲ２１３などで構成されている。追い越し指示ビット２１２も図２（ａ）での命令語と同様に、ソフトウェア（コンパイラ）が制御しており、該リストベクトル命令でアクセスするアドレス領域と後続ロード系命令でアクセスするアドレス領域が重ならないことが判明している場合、後続ロード系命令は追い越し可能であることを指定し、アドレス領域が重ならないかどうか判明していない場合は、後続ロード系命令は追い越し不可能であることを指定する。
【００３４】
追い越しビット判定手段１０は、ストア命令保持レジスタ３内のストア系命令と、ロード命令保持レジスタ４内のロード系命令のオペコード、及び追い越し指示ビットを比較する。ストア命令保持レジスタ３からのストア系命令のオペコードがリストベクトルストア命令を示しており、かつストア系命令とロード系命令の両者の追い越し指示ビットが“１”の場合は、追い越し可能と判断し判定結果として追い越し可能であることを示す“１”を追い越しチェック判定手段１１に送出し、両者の追い越し指示ビットのうちどちらか片方でも“０”の場合は、追い越し不可能と判断し判定結果として追い越し不可能であることを示す“０”を追い越しチェック判定手段１１に送出する。また、ストア命令保持レジスタ３から送出されたストア系命令のオペコードがベクトルストア命令を示している場合は、追い越し指示ビットの内容に関わらず、判定結果として追い越しチェック判定手段１１には“０”を送出する。この場合は、後続ロード系命令の追い越しの可否はアドレス領域判定手段９での判定結果に依存することになる。
【００３５】
以上詳細に実施例の構成を述べたが、上記実施例では、追い越される対象となるストア系命令を１個としているが、任意の個数ｎであってもよい。その場合には、ベクトルストア命令保持レジスタはｎ個となり、領域保持レジスタも（ｎ＋１）個となる。また、命令語中の追い越し指示ビット数もｎビット用意する必要がある。
【００３６】
また、上記実施例では、ソフトウェアでの追い越し判定結果を命令語中のビットで指示しているが、命令語毎に判定テーブルを用意し、追い越しビット判定手段１０は該テーブルの内容にしたがって追い越しの可否の判定をすることも可能である。
【００３７】
次に、図４を用いて、ソフトウェア（コンパイラ）での追い越しの可否の判定例を説明する。
【００３８】
図４は、フォートランソースコードのＤＯループの一例である。２行目の左辺の処理：Ａ（Ｌ（Ｉ））がリストベクトルストア命令で処理されることを意味する。コンパイラはこれらの式を機械語（命令語）レベルに翻訳し、例えば、図４（ａ）で示されるコードは、図４（ｃ）のような命令列に翻訳される。ここで、図４（ｃ）の（５）のリストベクトルストア命令（ＶＳＣ）と（６）のベクトルロード命令（ＶＬＤ）で扱う配列をみてみると、ＶＳＣ命令でアクセスする配列はＡという配列であり、ＶＬＤ命令でアクセスする配列はＤという配列であることがわかる。コンパイラはこの配列をチェックし、この場合は別の配列をアクセスすることから先行するＶＳＣ命令と後続のＶＬＤ命令のアドレス領域は重ならないことが判明するので、両命令の追い越し指示ビットには“１”を設定する。
【００３９】
また、図４（ｂ）で示されるコードの命令列例を図４（ｄ）に示す。この場合、図４（ｄ）の（５）のＶＳＣ命令と（６）のＶＬＤ命令で扱う配列をみてみると、両者ともＡという配列になっていることがわかる。コンパイラはこの配列をチェックし、（６）のＶＬＤ命令は（５）のＶＳＣ命令よりも先に処理をすることはできないことがわかるので、両命令の追い越し指示ビットには“０”を設定する。
【００４０】
このように本実施例のベクトル処理装置及び該装置を用いた追い越し制御方法によれば、アクセス領域計算手段６、アドレス領域判定手段９等により、ベクトルストア命令とロード系命令の追い越し可否を判定すると共に、命令語中に追い越しビットを設け、ソフトウェア上でリストベクトルストア命令と後続のロード系命令の追い越し可否を判定することにより、的確にストア系命令とロード系命令の追い越し制御を行うことができ、プログラムの処理を高速化することができる。
【００４１】
【発明の効果】
以上説明したように、本発明のベクトル処理装置及び該装置を用いた追い越し制御方法によれば、以下記載の効果を奏する。
【００４２】
本発明の第１の効果は、ソフトウェアで先行するリストベクトルストア命令と後続のベクトルロード命令でアクセスするアドレス領域の重なりをチェックしており、その情報を元に追い越しビット判定手段で後続ロード系命令の追い越しの制御をしているので、先行するリストベクトルストア命令の処理を待たずに後続のロード系命令が追い越して処理でき、プログラムの処理を高速化できるということである。
【００４３】
また、本発明の第２の効果は、アクセス領域計算手段、及びアドレス領域判定手段を備えることによってベクトルストア命令とロード系命令のアドレス領域計算と該情報から追い越しの可否を判定しており、ベクトルストア命令とロード系命令の追い越しの判定はソフトウェアでアドレス領域の重なりをチェックしていないので、ソフトウェアでは追い越しの可否が判定できないようなケースでも先行するベクトルストア命令を後続のロード系命令が追い越して処理できるようになり、プログラムの処理を高速化できるということである。
【図面の簡単な説明】
【図１】本発明の一実施例に係るベクトル処理装置の構成を示すブロック図である。
【図２】本発明の一実施例に係る命令語の構成を示す図であり、（ａ）はベクトルロード／ストア命令語、（ｂ）はリストベクトルストア命令語を示す図である。
【図３】本発明の一実施例に係るアドレス領域の計算方法を説明するための図である。
【図４】本発明の一実施例に係るプログラムのソースコードの一部を示す図である。
【符号の説明】
１  命令発行部
２  リクエスト受付レジスタ
３  ストア命令保持レジスタ
４  ロード命令保持レジスタ
５  命令パイプライン保持手段
６  アクセス領域計算手段
７、８  領域保持レジスタ
９  アドレス領域判定手段
１０  追い越しビット判定手段
１１  追い越しチェック判定手段
１２  選択手段
１００〜１１３  信号線
２００  命令語
２０１  オペコード
２０２  追い越し指示ビット
２０３  先頭アドレス
２０４  要素間ディスタンス
２１０  命令語
２１１  オペコード
２１２  追い越し指示ビット
２１３  ベクトルレジスタ
【図１】
0003789320.tif 000002
【図２】
0003789320.tif 000003
【図３】
0003789320.tif 000004
【図４】
0003789320.tif 000005