(57)【特許請求の範囲】
【請求項１】
ベクトル処理装置において、ベクトル収集命令とベクトル拡散命令の命令部分に、アクセスするメモリの先頭アドレスと終端アドレスを格納したレジスタを指定するフィールドを設け、追い越し制御回路において、ベクトルロード命令及びベクトルストア命令と同様に、ベクトル収集命令及びベクトル拡散命令においても、該命令で指定されているレジスタに基づき、該命令がアクセスするメモリの領域を得ることで、ベクトル収集命令とベクトル拡散命令を、追い越し制御の対象とし、
前記追い越し制御回路が、
命令発行部から発行されたメモリリクエストを受け付けるリクエスト受付手段と、
前記リクエスト受付手段で受け付けたリクエストが、ベクトルストア命令やベクトル拡散命令である場合に、これを受け取り保持するベクトルストア／ベクトル拡散命令保持手段と、
前記リクエスト受付手段で受け付けたリクエストのうち、ベクトルストア命令とベクトル拡散命令を除いた後続のリクエストを受け取り保持する後続命令保持手段と、
前記リクエスト受付手段にセットされるベクトルストア命令と、後続のベクトルロード命令のリクエストのアドレス計算を行うアクセス領域計算手段と、
を備え、
前記ベクトル拡散命令とベクトル収集命令は、前記アクセス領域計算手段を通らずに、前記ベクトルストア命令／ベクトル拡散命令保持手段と、前記後続命令保持手段とからそれぞれ第１、及び第２の信号線を介して、直接、第１、及び第２の領域保持手段へ送られ、
前記ベクトルストア命令／ベクトル拡散命令保持手段あるいは前記後続命令保持手段に、ベクトル拡散命令、ベクトル収集命令が保持されている場合には、前記第１、及び第２の信号線は、直接、前記第１、及び第２の領域保持手段に、アクセスするメモリの先頭アドレスと終端アドレスとを送り、
前記第１、及び第２の領域保持手段の内容に基づき、追い越しを判定する手段を備え、
ベクトルストア命令と同様に、ベクトル拡散命令においても、後続のメモリロード系命令の追越し可能とするとともに、ベクトル収集命令においても、メモリストア系命令を追い越して発行することを可能とした、ことを特徴とするベクトル収集・拡散命令実行順序制御装置。
【請求項２】
ベクトル処理装置において、ベクトル収集命令とベクトル拡散命令の命令部分に、アクセスするメモリの先頭アドレスと終端アドレスを格納したレジスタを指定するフィールドを設け、追い越し制御回路において、ベクトルロード命令及びベクトルストア命令と同様に、ベクトル収集命令及びベクトル拡散命令においても、該命令で指定されているレジスタに基づき、該命令がアクセスするメモリの領域を得ることで、ベクトル収集命令とベクトル拡散命令を、追い越し制御の対象とし、
前記追い越し制御回路が、
前記命令発行部から発行されたメモリリクエストを受け付けるリクエスト受付手段と、
前記リクエスト受付手段で受け付けたリクエストが、ベクトルストア命令やベクトル拡散命令の場合にこれを受け取り保持するベクトルストア／ベクトル拡散命令保持手段と、
前記リクエスト受付手段で受け付けたリクエストのうち、ベクトルストア命令とベクトル拡散命令を除いた後続のリクエストを受け取り保持する後続命令保持手段と、
前記ベクトルストア／ベクトル拡散命令保持手段から送出されるベクトルストア命令と、前記後続命令保持手段から送出されるベクトルロード命令のリクエストのアドレス計算を行うアクセス領域計算手段と、
前記アクセス領域計算手段で領域計算が行われたベクトルストア命令のアドレスを受け取り保持するとともに、ベクトル拡散命令の場合、前記ベクトルストア命令／ベクトル拡散命令保持手段からベクトル拡散命令のアドレスを受け取り保持する第１の領域保持手段と、
前記アクセス領域計算手段で領域計算が行われた後続のベクトルロード命令のアドレスを受け取り保持するとともに、ベクトル収集命令の場合、前記後続命令保持手段からベクトル収集命令のアドレスを受け取り保持する第２の領域保持手段と、
前記第１の領域保持手段で保持されるベクトルストア命令のアドレスまたはベクトル拡散命令のアドレスと、前記第２の領域保持手段で保持される後続のロード系命令のアドレスとを比較し、ロード系命令がベクトルストア命令あるいはベクトル拡散命令を追い越すことができるか否かをチェックする追越しチェック判定手段と、
前記追越しチェック判定手段における追い越しチェック結果に基づき、前記リクエスト受付手段より送出されるメモリリクエストと、前記後続命令保持手段から送出されるロード系リクエストと、前記ベクトルストア／ベクトル拡散命令保持手段から送出されるベクトルストア命令あるいはベクトル拡散命令のうちのいずれかから、メモリへアクセスするメモリリクエストを選択する選択手段と、
を備えている、ことを特徴とするベクトル収集・拡散命令実行順序制御装置。
【請求項３】
前記ベクトル拡散命令とベクトル収集命令がアクセスするメモリの先頭アドレスと終端アドレスを算出し、前記レジスタに格納する命令が、ソフトウェアによって作成される、
ことを特徴とする請求項１又は２記載のベクトル収集・拡散命令実行順序制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトルを単位とするロード／ストアを主記憶装置とベクトルレジスタとの間で行うベクトル処理装置に関し、特に、ベクトル収集命令とベクトル拡散命令実行順序制御装置に関する。
【０００２】
【従来の技術】
一般に、命令処理の高速化を目的としたベクトル処理装置においては、メモリアクセス系の命令で、先行するベクトルストア命令の領域に後続のロード系の命令のアクセス領域が重なっていない場合、後続のロード系命令を先にメモリアクセスを実行させ、メモリアクセスの高速化を図るというベクトルストア追い越し制御が行われている。
【０００３】
従来のベクトルストア追い越し制御回路では、追い越しを行うには、命令発行部からの命令を受け付け、メモリでアクセスする領域を計算し、追い越しが可能であるか否か判定を行う。なお、後続ロード命令によるベクトルストア追い越し制御については、例えば特開平９−２３１２０３号公報等の記載が参照される。
【０００４】
【発明が解決しようとする課題】
ところで、従来のベクトル処理装置において、この追い越し制御の対象とされている命令には、ベクトル拡散命令とベクトル収集命令（「ベクトル拡散・収集命令」とも略記される）は含まれていない。
【０００５】
これは、ベクトル拡散・収集命令がアクセスする領域と、他のメモリアクセス系命令と領域が重なっているか否かの判定が複雑であるため、追い越し判定のオーバヘッドが増大し、時間がかかり、性能改善の効果が得られないためである。
【０００６】
ベクトル拡散命令及びベクトル収集命令が使用されるケースを考えると、以下に示すプログラム（ＤＯループ）のように、配列の添え字に、さらに配列が指定されている間接参照の場合に用いられる場合がほとんどである。
【０００７】
特に、自動ベクトル化機能を有するコンパイラでは、配列Ｌのすべての要素が異なる値をもつことを前提に、ベクトル拡散命令を用いた命令列を生成する。
【０００８】
DO I ＝ １、N
A(L(I)) ＝ B(L(I)) ＋ C（I）＋ D
END  DO
ここで、コンパイラが配列Ａ及びＢのメモリアクセスに対応するベクトル拡散・収集命令を考えると、アクセスするメモリの先頭アドレスは、配列Ａ及びＢがメモリに割り付けられた値、終端アドレスは、配列Ａ及びＢの先頭アドレスに各々の配列サイズを加算した値とすることができる。
【０００９】
また、これらの先頭アドレスと終端アドレスを計算し、レジスタに格納する命令列を作成することは、コンパイラにとって容易である。
【００１０】
このように、ベクトル拡散・収集命令がアクセスするメモリの先頭アドレスおよび終端アドレスは、ハードウェア回路では、その簡単に値を計算することは困難であるが、ソフトウェア（コンパイラ）では、容易にその値を求めることが可能な場合が多い。
【００１１】
したがって、本発明は、上記課題及び知見に基づき創案されたものであって、その目的は、ベクトル処理装置において、ベクトル拡散命令とベクトル収集命令について簡単に追い越し制御がを可能とし、メモリアクセス系の処理時間を大きく改善し、処理性能を向上する装置を提供することにある。
【００１２】
【課題を解決するための手段】
前記目的を達成する本発明は、ベクトル拡散命令とベクトル収集命令に、アクセスするメモリの先頭アドレスと、終端アドレスを格納したレジスタを指定するフィールドを追加することにより、ベクトル拡散命令とベクトル収集命令においても、ベクトルストア命令と同じ性能改善効果が得られる命令の追越し制御機能を実現している。
【００１３】
より詳しくは、本発明において、追い越し制御回路は、命令発行部から発行されたメモリリクエストを受け付けるリクエスト受付手段と、前記リクエスト受付手段で受け付けたリクエストが、ベクトルストア命令やベクトル拡散命令である場合に、これを受け取り保持するベクトルストア／ベクトル拡散命令保持手段と、前記リクエスト受付手段で受け付けたリクエストのうち、ベクトルストア命令とベクトル拡散命令を除いた後続のリクエストを受け取り保持する後続命令保持手段と、前記リクエスト受付手段にセットされるベクトルストア命令と、後続のべクトルロード命令のリクエストのアドレス計算を行うアクセス領域計算手段と、を備え、ベクトル拡散命令とベクトル収集命令は、前記アクセス領域計算手段を通らずに、前記ベクトルストア命令／ベクトル拡散命令保持手段と、前記後続命令保持手段とからそれぞれ第１、及び第２の信号線を介して、直接、第１、及び第２の領域保持手段へ送られ、前記ベクトルストア命令／ベクトル拡散命令保持手段あるいは前記後続命令保持手段に、ベクトル拡散命令、ベクトル収集命令が保持されている場合には、前記第１、及び第２の信号線は、直接、前記第１、及び第２の領域保持手段に、アクセスするメモリの先頭アドレスと終端アドレスとを送り、前記第１、及び第２の領域保持手段の内容に基づき、追い越しを判定する手段を備え、ベクトルストア命令と同様に、ベクトル拡散命令においても、後続のメモリロード系命令の追越し可能とするとともに、ベクトル収集命令においても、メモリストア系命令を追い越して発行することを可能としたものである。
【００１４】
【発明の実施の形態】
本発明の実施の形態について説明する。本発明は、ベクトル処理装置において、ベクトル収集・拡散命令の命令部分に、アクセスするメモリの先頭アドレスと終端アドレスを格納したスカラレジスタを指定するフィールドを設けることにより、ベクトルロード・ストア命令と同様に、ベクトル収集・拡散命令においても、命令に指定されているスカラレジスタより、アクセスするメモリの領域を得ることができるため、ベクトルストア追越し制御において、ベクトル拡散・拡散命令を、追い越し制御の対象とすることを可能としたものである。
【００１５】
前記ベクトル拡散命令とベクトル収集命令がアクセスするメモリの先頭アドレスと終端アドレスを算出し、前記レジスタに格納する命令は、好ましくは、ソフトウェア（コンパイラ）によって作成される。
【００１６】
本発明は、その副作用として、ベクトル収集・拡散命令により指定されたアクセスするメモリの先頭アドレスおよび終端アドレスの値を制御することにより、ソフトウェアにより、ベクトル拡散・収集命令の追越し処理を制御する、ことも可能としている。
【００１７】
本発明の一実施の形態について、図１を参照して説明する。図１には、本発明に係るベクトル収集・拡散命令実行順序制御システムを用いた、メモリストア系命令追越し制御回路が示されている。
【００１８】
本発明の一実施の形態において、追越し制御回路は、命令発行部（１）から発行されたメモリリクエストを受け付けるリクエスト受付手段（２）と、前記リクエスト受付手段で受け付けたリクエストが、ベクトルストア命令やベクトル拡散命令の場合にこれを受け取り保持するベクトルストア／ベクトル拡散命令保持手段（３）と、リクエスト受付手段（２）で受け付けたリクエストのうち、ベクトルストア命令とベクトル拡散命令を除いた後続のリクエストを受け取り保持する後続命令保持手段（４）と、ベクトルストア／ベクトル拡散命令保持手段（３）から送出されるベクトルストア命令と、後続命令保持手段（４）から送出されるベクトルロード命令のリクエストのアドレス計算を行うアクセス領域計算手段（５）と、アクセス領域計算手段（５）で領域計算が行われたベクトルストア命令のアドレスを受け取り保持するとともに、ベクトル拡散命令の場合、前記ベクトルストア命令／ベクトル拡散命令保持手段（３）からベクトル拡散命令のアドレスを受け取り保持する第１の領域保持手段（６）と、アクセス領域計算手段（５）で領域計算が行われた後続のベクトルロード命令のアドレスを受け取り保持するとともに、ベクトル収集命令の場合、後続命令保持手段（４）からベクトル収集命令のアドレスを受け取り保持する第２の領域保持手段（７）と、第１の領域保持手段（６）で保持されるベクトルストア命令のアドレスまたはベクトル拡散命令のアドレスと、前記第２の領域保持手段（７）で保持される後続のロード系命令のアドレスとを比較し、ロード系命令がベクトルストア命令あるいはベクトル拡散命令を追い越すことができるか否かをチェックする追越しチェック判定手段（８）と、前記追越しチェック判定手段（８）における追い越しチェック結果に基づき、前記リクエスト受付手段より送出されるメモリリクエストと、前記後続命令保持手段から送出されるロード系リクエストと、前記ベクトルストア／ベクトル拡散命令保持手段から送出されるベクトルストア命令あるいはベクトル拡散命令のうちのいずれかから、メモリへアクセスするリクエストを選択する選択手段（９）と、を備えている。
【００１９】
ベクトル拡散命令とベクトル収集命令は、アクセスするメモリの領域を計算する必要がないため、アクセス領域計算手段（５）を通らずに、ベクトルストア命令／ベクトル拡散命令保持手段（ベクトルストア命令／ベクトル拡散命令保持レジスタ３）および後続命令保持手段（４）より、領域保持手段（領域保持レジスタ６、７）へ、直接、データを送るための信号線（１０２、１０３）を備えている。
【００２０】
この信号線（１０２、１０３）は、ベクトルストア命令／ベクトル拡散命令保持手段（３）、あるいは後続命令保持手段（４）に、ベクトル拡散命令、ベクトル収集命令が保持されている場合には、直接、領域保持手段（６、７）に、アクセスするメモリの先頭アドレスと終端アドレスを送る。
【００２１】
従って、ベクトルストア命令と同様に、ベクトル拡散命令においても、後続のメモリロード系命令の追越し制御が可能となる。またベクトル収集命令においても、メモリストア系命令を追い越して発行することができる。
【００２２】
【実施例】
本発明の実施例について図面を参照して以下に説明する。図１は、本発明の一実施例のベクトル収集・拡散命令実行順序制御装置の構成を示す図であり、メモリストア系命令追越し制御回路が示されている。図１を参照すると、このメモリストア系命令追越し制御回路は、命令発行部１と、リクエスト受付レジスタ２と、ベクトルストア命令／ベクトル拡散命令保持レジスタ３と、後続命令保持手段４と、アクセス領域計算手段５と、領域保持レジスタ６、７と、追越しチェック判定手段８と、選択手段９と、を備えて構成されている。
【００２３】
本発明の一実施例の動作について説明する。
【００２４】
リクエスト受付レジスタ２は、命令発行部１から発行されたメモリリクエストを信号線１００を介して受け付ける。
【００２５】
リクエスト受付レジスタ２により受け付けたリクエストがベクトルストア命令やベクトル拡散命令の場合には、信号線１０１を介して、ベクトルストア／ベクトル拡散命令保持レジスタ３により保持される。
【００２６】
またベクトルストア命令とベクトル拡散命令を除いた後続のリクエストは、信号線１０１を介して後続命令保持手段５により保持される。
【００２７】
アクセス領域計算パイプライン手段５は、信号線１０２を介して、ベクトルストア／ベクトル拡散命令保持レジスタ３から送出されるベクトルストア命令と、信号線１０３を介して後続命令保持手段５から送出されるベクトルロード命令、のリクエストのアドレス計算を行う。
【００２８】
この領域計算は、次式、
（各命令におけるアクセスするメモリの先頭アドレス）＋（ベクトル要素数−１）×（ベクトル要素間ディスタンス）
で行われる。
【００２９】
各領域保持レジスタ６は、アクセス領域計算手段５によって領域計算を行ったベクトルストア命令のアドレスを信号線１０４を介して受け、ベクトル拡散命令の場合は、信号線１０２を介して、リクエストベクトル拡散命令のアドレスを受け付ける。
【００３０】
領域保持レジスタ７は、信号線１０５を介して、後続のベクトルロード命令のアドレスを受け、また信号線１０３を介してベクトル収集命令のアドレスを受け、保持する。
【００３１】
追越しチェック判定手段８は、信号線１０６を介して送出される領域保持レジスタ６で保持したベクトルストア命令のアドレス、またはベクトル拡散命令のアドレスと、信号線１０７を介して送出される領域保持レジスタ７で保持した後続のロード系命令のアドレスとを比較し、ロード系命令がベクトルストアあるいはベクトル拡散命令を追い越すことができるか否かをチェックする。
【００３２】
選択手段９は、信号線１０１を介してリクエスト受付レジスタ２より送出されるメモリリクエストと、信号線１０３を介して送出されるロード系リクエストと、信号線１０２を介して送出されるベクトルストア命令あるいはベクトル拡散命令とを、追越しチェック判定手段８による追い越しが可能かどうかの制御信号（信号線１０８による）に基づき、信号線１０９により送出されるメモリリクエストを選別する。
【００３３】
かかる構成により、本発明の一実施例においては、ベクトルストア命令と同様に、ベクトル拡散命令においても、後続のメモリロード系命令の追越し制御が可能としており、ベクトル収集命令においても、メモリストア系命令を追い越して発行することができる。
【００３４】
【発明の効果】
以上説明したように、本発明によれば、ベクトル拡散・収集命令について、簡易な構成により、追い越し制御が可能となり、これにより、メモリアクセス系の処理時間を大きく改善することができる、という効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施例に構成を示す図である。
【符号の説明】
１  命令発行部
２  リクエスト受付レジスタ
３  ベクトルストア命令／ベクトル拡散命令保持レジスタ
４  後続命令保持手段
５  アクセス領域計算手段
６、７  領域保持レジスタ
８  追越し判定手段
９  選択手段
【図１】
0003698027.tif 000002