(57)【要約】【課題】ベクトル演算命令処理を高速化するベクトル処理装置を提供すること。【解決手段】マスクレジスタに番号を付与して複数用意し、命令発行手段において発行する命令に対応したマスクレジスタの番号を選択してマスクレジスタ判別手段への出力をハードウェアで実現し対応したマスクレジスタに格納されているマスクデータを使用したベクトル演算処理を行う。【選択図】図１
2009134547.tif 000002
【特許請求の範囲】
【請求項１】
命令を保持する命令記憶手段と、
前記命令記憶手段の内容を判別して命令発行を判定する命令発行手段と、
それぞれがベクトルデータを保持する複数のベクトルレジスタと、
前記ベクトルレジスタのワード数に対応したベクトルデータの演算有効または演算無効を判別するマスクデータを出力するマスクレジスタと、
前記命令発行手段より出力された前記マスクレジスタの更新命令に従って前記マスクレジスタの更新の可否を判断するマスクレジスタ制御手段と、
前記マスクレジスタの内容を前記命令発行手段より出力されたベクトル命令に従って判別する複数のマスクレジスタ判別手段と、
前記ベクトルレジスタの内容を前記命令発行手段より出力されたベクトル命令に従って出力するベクトルレジスタ選択手段と、
前記ベクトルレジスタ選択手段より出力されたベクトルデータを使用し前記命令発行手段より出力されたベクトル命令に従った演算を行う複数の演算器と、
前記演算器の出力である演算結果をベクトル命令と前記マスクレジスタ判別手段より出力されるマスクデータに従って前記ベクトルレジスタに出力する演算結果選択手段と
を具備するベクトル装置において、
前記マスクレジスタに番号を付与して複数用意し、
前記命令発行手段において発行する命令に対応したマスクレジスタの番号を選択して前記マスクレジスタ判別手段への出力をハードウェアで実現し、
対応したマスクレジスタに格納されているマスクデータを使用したベクトル演算処理を行うことによって、
前記マスクレジスタ更新命令の制約で命令発行不可となっていたマスクレジスタ更新命令とベクトル命令の発行を可能とさせることによって、
ソフトウェアの互換性を保ちながら、ベクトル命令処理の高速化を図る事を特徴とするベクトル処理装置。
【請求項２】
命令を保持する命令記憶手段と、
前記命令記憶手段の内容を判別して命令発行を判定する命令発行手段と、
それぞれがベクトルデータを保持する複数のベクトルレジスタと、
前記ベクトルレジスタのワード数に対応したベクトルデータの演算有効または演算無効を判別するマスクデータを出力するマスクレジスタと、
前記命令発行手段より出力された前記マスクレジスタの更新命令に従って前記マスクレジスタの更新の可否を判断するマスクレジスタ制御手段と、
前記マスクレジスタの内容を前記命令発行手段より出力されたベクトル命令に従って判別する複数のマスクレジスタ判別手段と、
前記ベクトルレジスタの内容をベクトル命令と前記マスクレジスタ判別手段より出力されるマスクデータに従って出力するベクトルレジスタ選択手段と、
前記ベクトルレジスタ選択手段より出力されたベクトルデータを使用し前記命令発行手段より出力されたベクトル命令に従った演算を行う複数の演算器と、前記演算器の出力である演算結果をベクトル命令に従って前記ベクトルレジスタに出力する演算結果選択手段と
を具備するベクトル装置において、
前記マスクレジスタに番号を付与して複数用意し、
前記命令発行手段において発行する命令に対応したマスクレジスタの番号を選択して前記マスクレジスタ判別手段への出力をハードウェアで実現し
対応したマスクレジスタに格納されているマスクデータを使用したベクトル演算処理を行うことによって、
前記マスクレジスタ更新命令の制約で命令発行不可となっていたマスクレジスタ更新命令とベクトル命令の発行を可能とさせることによって、
ソフトウェアの互換性を保ちながら、ベクトル命令処理の高速化を図る事を特徴とするベクトル処理装置。
【請求項３】
命令を保持する命令記憶手段と、
前記命令記憶手段の内容を判別して命令発行を判定する命令発行手段と、
それぞれがベクトルデータを保持する複数のベクトルレジスタと、
前記ベクトルレジスタのワード数に対応したベクトルデータの演算有効または演算無効を判別するマスクデータを出力するマスクレジスタと、
前記命令発行手段より出力された前記マスクレジスタの更新命令に従って前記マスクレジスタの更新の可否を判断するマスクレジスタ制御手段と、
前記マスクレジスタの内容を前記命令発行手段より出力されたベクトル命令に従って判別する複数のマスクレジスタ判別手段と、
前記ベクトルレジスタの内容を前記命令発行手段より出力されたベクトル命令に従って出力するベクトルレジスタ選択手段と、
前記ベクトルレジスタ選択手段より出力されたベクトルデータをベクトル命令と前記マスクレジスタ判別手段より出力されるマスクデータに従って演算を行う複数の演算器と、
前記演算器の出力である演算結果をベクトル命令に従って前記ベクトルレジスタに出力する演算結果選択手段と
を具備するベクトル装置において、
前記マスクレジスタに番号を付与して複数用意し、
前記命令発行手段において発行する命令に対応したマスクレジスタの番号を選択して前記マスクレジスタ判別手段への出力をハードウェアで実現し、
対応したマスクレジスタに格納されているマスクデータを使用したベクトル演算処理を行うことによって、
前記マスクレジスタ更新命令の制約で命令発行不可となっていたマスクレジスタ更新命令とベクトル命令の発行を可能とさせることによって、
ソフトウェアの互換性を保ちながら、ベクトル命令処理の高速化を図る事を特徴とするベクトル処理装置。
【請求項４】
前記演算器を使用しない前記ベクトルレジスタ間のベクトルデータ移動命令においても前記マスクレジスタに番号を付与して複数用意し、
前記命令発行手段において発行する命令に対応したマスクレジスタの番号を選択して前記マスクレジスタ判別手段への出力をハードウェアで実現し、
対応したマスクレジスタに格納されているマスクデータを使用したベクトルデータ移動処理を行うことによって、
前記マスクレジスタ更新命令の制約で命令発行不可となっていたマスクレジスタ更新命令とベクトル命令の発行を可能とさせることによって、
ソフトウェアの互換性を保ちながら、ベクトル命令処理の高速化を図る事を特徴とする請求項１から３のいずれか１項に記載のベクトル処理装置。
【請求項５】
前記命令発行手段の代わりに前記マスクレジスタ制御手段でマスクレジスタで命令に対応したマスクレジスタの番号付与の発行する事を特徴とする請求項１から４のいずれか１項に記載のベクトル処理装置。
【請求項６】
前記演算器の内で特定の演算器あるいはベクトルデータ移動命令に対応するマスクレジスタを設けて当該特定の演算器を使用する命令に対応したマスクレジスタの番号を選択し、前記マスクレジスタ判別手段に出力して対応したマスクレジスタに格納されているマスクデータを使用したベクトル処理を行う事を特徴とする請求項１から５のいずれか１項に記載のベクトル処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数マスクレジスタによるベクトル命令追い越し制御技術に関する。
【背景技術】
【０００２】
関連するベクトル装置を第８図において説明する。
図８において１０１はベクトル命令列を保持している命令記憶手段である。１０２は１０１命令記憶装置より出力された１３０ベクトル命令列を受けて本発明のベクトル処理装置に対してベクトル命令を発行する命令発行手段である。１０２命令発行手段において、先行して発行する命令がマスクレジスタの値をαに更新するマスクレジスタ更新命令であった場合、命令発行手段８００は、８０３マスクレジスタ更新命令を通じてマスクデータαを、８０１マスクレジスタ制御手段に対して通知する。
【０００３】
関連するベクトル装置の構成では、マスクレジスタは８０２マスクレジスタのみであるので、８０１命令発行手段は、マスクレジスタの番号の選択を行わない。加えて８０３マスクレジスタ更新命令に対してもマスクレジスタ番号を発行しない。
【０００４】
８０１マスクレジスタ制御手段は、マスクデータαを８０４マスクレジスタ更新データとして、８０２マスクレジスタに対して出力する。８０２マスクレジスタは、マスクレジスタαを受けて、当該マスクレジスタの値をαに更新する。
【０００５】
８０１命令発行手段において、先行するマスクレジスタ更新命令の次に発行すべきベクトル命令が、８０２マスクレジスタに格納されているマスクデータαを使用して１０７ベクトルレジスタＸと１０８ベクトルレジスタＹの値を演算器Ａで演算処理を行い、演算結果を１０７ベクトルレジスタＸに格納するベクトル演算命令であったとする。
Ｘ＜＝Ｘ exeA Ｙ (ＶＣ＝α)
８０１命令発行手段は、１３１ベクトル演算命令を通じ１１０ベクトルレジスタ選択手段に対して１０７ベクトルレジスタＸと１０８ベクトルレジスタＹからそれぞれ格納されているベクトルデータの読み出し指示を行う。
【０００６】
１１０ベクトルレジスタ選択手段は、１１１演算器Ａに対して１３６演算器Ａ入力
データを出力する。演算器Ａでは当該演算命令に従った演算処理を行い、１３９
演算器Ａ演算結果データを１１４演算結果選択手段に対して出力する。
【０００７】
演算結果と並行して、８０２マスクレジスタに格納されているマスクデータαを選択し、１１６マスクレジスタ整列手段Ａに対して８０５マスクレジスタデータとして出力する。１１６マスクデータ整列手段Ａでは、１３１ベクトル演算命令の内容から入力されたマスクデータを整列させ、結果を１５０整列手段Ａ出力マスクデータとして１１４演算結果選択手段に対して出力する。
【０００８】
１１４演算結果選択手段では、１５０整列手段Ａ出力マスクデータの値αを参照し、１３９演算器Ａ演算結果データを入力データとしてその有効無効を判別し、１４２ベクトルレジスタＸ入力データを通じて、１０７ベクトルレジスタＸに格納する。
【０００９】
１３０命令列が、上記の先行命令と後続命令の間にマスク更新命令が存在し、後続命令がマスク更新後にマスクレジスタに格納されたマスクデータを使用する命令であったとする。請求項１にの命令列例２に示された命令列であったとする。
<< 命令列例２ >>
命令１：ＶＣ ＜＝ α        (マスクレジスタの値をαとする)
命令２：Ｘ   ＜＝Ｘ exeA Ｙ (ＶＣ＝α)
命令３：ＶＣ ＜＝ β        (マスクレジスタの値をβとする)
命令４：Ｚ   ＜＝Ｙ exeB Ｚ (ＶＣ＝β)
【００１０】
関連技術ではマスクレジスタが１つだけであったので、先行命令が対応するαのマスクデータを使用する為、同命令が終了するまで、マスクレジスタをβに更新するマスク更新命令は発行不可である。また後続命令は、マスクレジスタ値βを使用するので、マスクレジスタをβに更新命令が完了するまで当該後続命令の発行が出来ないという課題があった。
【００１１】
関連するベクトル処理装置の構成での、以下の命令列３の動作は、タイムチャート図５として示している。
<< 命令列例３ >>
命令開始：
命令１ ：マスク更新命令 α→VC
命令２ ：演算器A使用命令(VC=αを使用)
命令３ ：演算器B使用命令(VC=αを使用)
命令４ ：マスク更新命令 β→VC
命令５ ：演算器C使用命令(VC=βを使用)
【００１２】
ここで、特許文献１にマスクレジスタ複数化によって命令処理を複数並列化してマスク付き命令処理の高速化を図る主眼は同一の技術が開示されている。しかし、複数のマスクレジスタを同時使用する為の、制御方法については何ら開示していない。
【００１３】
また、本発明は、ベクトルレジスタの出力が演算器の入力と１対１であり固定的に結合されている事を前提としていないが、特許文献２では、ベクトルレジスタの出力が演算器の入力と１対１かつ固定的に結合ざれているベクトル処理装置において、マスクビットを保持する第１のマスクレジスタと、演算器の入力と１対１対応かつ固定的に結合されるベクトルレジスタに対して、複数個のマスクレジスタを持つという事を前提とする技術が提案されている。
【特許文献１】特開昭５７−０２３１７４号公報
【特許文献２】特開平０１−１０６１７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述の関連技術では、単一のマスクレジスタによって、ベクトル命令の有効無効判別を行っていた為、マスクレジスタの内容を使用する先行するベクトル命令の後にマスクレジスタ更新命令と更新後のマスクレジスタの内容を使用するベクトル命令が後続命令としてあった場合、先行命令と後続命令に使用するベクトルレジスタや演算器に相互依存の関係が全く無かったとしても先行するベクトル命令処理が完了するまで後続のマスクレジスタ更新命令と更新後のマスクレジスタの内容を使用する後続命令の発行が出来なかった。
【００１５】
また、マスクレジスタはソフトウェアが認識可能であるため、マスクレジスタを複数用意した場合、関連するソフトウェアとの互換性を保つ事が困難であった。
【００１６】
これよりマスクレジスタ更新命令が頻発する命令列においては、ベクトル命令処理が低速であるという課題があった。
【００１７】
本発明は、以上のような課題を解決するためになされたもので、ベクトル演算命令処理を高速化するベクトル処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明では、マスクレジスタに番号を付与して複数用意し、命令発行手段で複数のマスクレジスタ番号の内、発行するベクトル命令に対応したマスクレジスタ番号を出力する事によって、従来マスクレジスタが１つであった為に発行出来なかった後続のマスクレジスタ更新命令を先行して発行させる事が出来る。
【００１９】
また、ベクトルレジスタや演算器の依存関係をふまえて、更新後のマスクレジスタの内容を使用する後続のベクトル命令の処理を従来比で高速に発行させベクトル命令処理を行う事が出来る。
【００２０】
加えて、ハードウェアとしての最新のマスクレジスタ番号のリネーミング処理を行う事からソフトウェアとしては１個のマスクレジスタを使用している様に見え、ソフトウェアの互換性を保つ事が出来る。
【発明の効果】
【００２１】
本発明によれば、複数のマスクレジスタを用意し、ソフトウェアによって指示されたマスクレジスタをハードウェアが番号付けをおこなう事でマスクデータの選択をしているので、ソフトウェアの互換性を失わずに、マスク更新命令があっても後続命令の発行を抑止する事が無く発行でき、ベクトル演算命令処理を高速化できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１を参照すると、本発明の一実施の形態としてのベクトル処理装置が示されている。
【００２３】
本発明の実施の形態として、マスクレジスタの数を３個として例示する。
本発明の実施の形態を説明する上で、まずマスク命令更新時の動作と、ベクトル演算命令時の動作について説明する。
【００２４】
図１において１０１はベクトル命令列を保持している命令記憶手段である。１０２は１０１命令記憶装置より出力された１３０ベクトル命令列を受けて本発明のベクトル処理装置に対してベクトル命令を発行する命令発行手段である。
【００２５】
１０２命令発行手段において、先行して発行する命令がマスクレジスタの値をαに更新するマスクレジスタ更新命令であった場合、命令発行手段１０２は当該命令以前のマスクレジスタ更新命令の履歴を参照する。未使用あるいは後続の命令に使用予定が無いマスクレジスタ番号をマスクレジスタ１０４から１０６の内のひとつを選択する。
【００２６】
本説明では先行発行するマスクレジスタ更新命令は１０４マスクレジスタ番号１を選択したものとする。１３２マスクレジスタ更新命令を通じてマスクデータαと当該マスクデータが更新されるべき１０４マスクレジスタ１番であることを１０３マスクレジスタ制御手段に対して通知する。
【００２７】
１０３マスクレジスタ制御手段では、１３２マスクレジスタ更新命令の内容を判別し、当該マスクレジスタ更新命令のマスクデータαを１４５マスクレジスタ更新データを通じて１０４マスクレジスタ番号１の値をαに更新する。
【００２８】
１０２命令発行手段において、先行するマスクレジスタ更新命令の次に発行すべきベクトル命令が、１０４ １番マスクレジスタに格納されているマスクデータαを使用して１０７ベクトルレジスタＸと１０８ベクトルレジスタＹの値を演算器Ａで演算処理を行い、演算結果を１０７ベクトルレジスタＸに格納するベクトル演算命令であったとする。
Ｘ＜＝Ｘ exeA Ｙ (ＶＣ＝α)
【００２９】
１０２命令発行手段は、１３１ベクトル演算命令を通じ１１０ベクトルレジスタ選択手段に対して１０７ベクトルレジスタＸと１０８ベクトルレジスタＹからそれぞれ格納されているベクトルデータの読み出し指示を行う。
【００３０】
１１０ベクトルレジスタ選択手段は、１１１演算器Ａに対して１３６演算器Ａ入力データを出力する。演算器Ａでは当該演算命令に従った演算処理を行い、１３９演算器Ａ演算結果データを１１４演算結果選択手段に対して出力する。
【００３１】
演算結果と並行して、１３１ベクトル演算命令は、１１５マスクレジスタ選択手段に対して１０４ １番マスクレジスタのマスクレジスタ番号を通知する。１１５マスクレジスタ選択手段は、１０４マスクレジスタに格納されているマスクデータαを選択し、１１６マスクレジスタ整列手段Ａに対して１４９マスクデータ選択結果として当該マスクデータを出力する。１１６マスクデータ整列手段Ａでは、１３１ベクトル演算命令の内容から入力されたマスクデータを整列させ、結果を１５０整列手段Ａ出力マスクデータとして１１４演算結果選択手段に対して出力する。
【００３２】
１１４演算結果選択手段では、１５０整列手段Ａ出力マスクデータの値αを参照し、１３９演算器Ａ演算結果データを入力データとしてその有効無効を判別し、１４２ベクトルレジスタＸ入力データを通じて、１０７ベクトルレジスタＸに格納する。
【００３３】
１０２命令発行手段で上記演算命令の次命令が、１０４ １番マスクレジスタに格納されているマスクデータを使用して１０８ベクトルレジスタＹと１０９ベクトルレジスタＺの値を演算器Ｂで演算処理を行い、演算結果を１０８ベクトルレジスタＺに格納するベクトル演算命令であったとする。
Ｚ＜＝Ｙ exeB Ｚ(ＶＣ＝α)
【００３４】
この時、先行命令(X<=X exeA Y)と後続命令(Z<=Y exeB Z)は、書き込み先が異なる事と同一の１０４ １番マスクレジスタに格納されているマスクデータαの使用を前提としている為、１０２命令発行手段では最速で２命令同時に発行が可能である。即ち１３０命令列が以下の様な場合はマスクレジスタが単一であっても命令の同時発行が可能である。
<< 命令列例１ >>
命令１：ＶＣ ＜＝ α        (マスクレジスタの値をαとする)
命令２：Ｘ   ＜＝Ｘ exeA Ｙ (ＶＣ＝α)
命令３：Ｚ   ＜＝Ｙ exeB Ｚ (ＶＣ＝α)
【００３５】
他方、１３０命令列が、上記の先行命令と後続命令の間にマスク更新命令が存在し、後続命令がマスク更新後にマスクレジスタに格納されたマスクデータを使用する命令であったとする。即ち以下の様な命令列であったとする。
<< 命令列例２ >>
命令１：ＶＣ ＜＝ α        (マスクレジスタの値をαとする)
命令２：Ｘ   ＜＝Ｘ exeA Ｙ (ＶＣ＝α)
命令３：ＶＣ ＜＝ β        (マスクレジスタの値をβとする)
命令４：Ｚ   ＜＝Ｙ exeB Ｚ (ＶＣ＝β)
【００３６】
関連技術ではマスクレジスタが１つだけであったので、先行命令が対応するαのマスクデータを使用する為、同命令が終了するまで、マスクレジスタをβに更新するマスク更新命令は発行不可である。また後続命令は、マスクレジスタ値βを使用するので、マスクレジスタをβに更新命令が完了するまで当該後続命令の発行が出来ない。
【００３７】
本発明では、１３０命令列が上述の命令列例２であった場合、命令１と命令２は上述の通りの動作を行う。
【００３８】
命令３のマスクデータをβに更新するマスクレジスタ更新命令は、命令１のマスクレジスタ更新命令の処理完了後あるいは処理中に命令発行が可能である。
【００３９】
１０２命令発行手段において、先行して発行する命令がマスクレジスタの値をβに更新するマスクレジスタ更新命令の場合、命令発行手段１０２は当該命令以前のマスクレジスタ更新命令の履歴を参照し、マスクデータαが格納されている１０４マスクレジスタ以外の番号を１０５乃至１０６より選択する。本説明では命令２のマスクレジスタ更新命令はマスクレジスタ番号２を選択したもとする。１３２マスクレジスタ更新命令を通じてマスクデータβと当該マスクデータが更新されるべき１０５マスクレジスタ２番であることを１０３マスクレジスタ制御手段に対して通知する。
【００４０】
１０３マスクレジスタ制御手段では、１３２マスクレジスタ更新命令の内容を判別し、当該マスクレジスタ更新命令のマスクデータβを１４５マスクレジスタ更新データを通じて１０５ ２番マスクレジスタの値をβに更新する。
【００４１】
命令４に関して１０２命令発行手段は、１３１ベクトル演算命令を通じ１１０ベクトルレジスタ選択手段に対して１０８ベクトルレジスタＹと１０９ベクトルレジスタＺからそれぞれ格納されているベクトルデータの読み出し指示を行う。
【００４２】
１１０ベクトルレジスタ選択手段は、１１２演算器Ｂに対して１３７演算器Ｂ入力データを出力する。演算器Ｂでは命令４に従った演算処理を行い、１４０演算器Ｂ演算結果データを１１４演算結果選択手段に対して出力する。
【００４３】
演算結果と並行して、１３１ベクトル演算命令は、１１５マスクレジスタ選択手段に対して１０５ ２番マスクレジスタのマスクレジスタ番号を通知する。１１５マスクレジスタ選択手段は、１０５マスクレジスタに格納されているマスクデータβを選択し、１１７マスクレジスタ整列手段Ｂに対して１４９マスクデータ選択結果として当該マスクデータβを出力する。１１７マスクデータ整列手段Ｂでは、命令４である１３１ベクトル演算命令の内容から入力されたマスクデータβを整列させ、結果を１５１整列手段Ｂ出力マスクデータとして１１４演算結果選択手段に対して出力する。
【００４４】
１１４演算結果選択手段では、１５２整列手段Ｂ出力マスクデータの値βを参照し、１４０演算器Ｂ演算結果データを入力データとして有効無効を判別し、１４４ベクトルレジスタＺ入力データを通じて、１０９ベクトルレジスタＺに格納する。
【００４５】
即ち、本発明を用いることによって、命令列例２では命令１と命令２の処理の過程に関わらず命令３が完了し次第命令４を発行する事が出来る。
【００４６】
本実施の形態の動作について、タイムチャートを用いて説明する。
１３０命令列として以下の命令列が発行されたと仮定する。
尚、説明の平易化の為、それぞれの演算器使用命令には、入力データの読み出し元ベクトルレジスタと演算結果の格納先ベクトルレジスタに関して相互依存関係が無いものとする。
<< 命令列例３ >>
命令開始：
命令１ ：マスク更新命令 α→VC
命令２ ：演算器A使用命令(VC=αを使用)
命令３ ：演算器B使用命令(VC=αを使用)
命令４ ：マスク更新命令 β→VC
命令５ ：演算器C使用命令(VC=βを使用)
【００４７】
命令開始を起点に、命令１のマスク更新命令は処理に必要なクロックサイクル数後に命令を完了する。命令１完了後にマスクレジスタの値αを使用する命令２演算器Ａ使用命令と命令３演算器Ｂ使用命令は、命令１の完了により並列に命令発行可能となる。
【００４８】
関連技術での命令処理では、命令２および命令３の内で処理に必要なクロックサイクル数が長い命令が完了しなければ、命令４のマスクレジスタの値をβとするマスク更新命令の発行は不可能であった。
【００４９】
上記を示したタイムチャートが図５である。
本発明の内、命令１のマスク更新命令完了後でなけば命令４のマスク更新命令が発行出来ないという最も遅いケースを示したのがタイムチャート図６である。
【００５０】
また、命令１のマスク更新命令に関係なく命令４のマスク更新命令が発行できるという最も速いケースを示したのがタイムチャート図７である。
【００５１】
命令２／命令４／命令５の処理に必要なクロックサイクル数は図５／６／７全て同一である。
【００５２】
同一の命令列例３に対してタイムチャートを用いて本発明と従来を比較すれば、明らかに本発明の方が速く命令を処理できる。
【００５３】
本発明の他の実施の形態として、その基本的構成は上記の通りであるが、請求項２の構成についても説明する。
【００５４】
図２を参照すると、本発明の一実施の形態としてのベクトル処理装置が示されている。
本実施の形態として、マスクレジスタの数を３個として例示する。
【００５５】
本実施の形態が請求項１の実施の形態と異なるのは、１５０整列手段Ａ出力マスクデータを、２００ベクトルレジスタ選択手段に入力する事によって、１３６演算器Ａに入力するデータである１３６演算器Ａ入力データの段階でデータの有効無効判別を行うことである。
【００５６】
図２において１０１はベクトル命令列を保持している命令記憶手段である。１０２は１０１命令記憶装置より出力された１３０ベクトル命令列を受けて本発明のベクトル処理装置に対してベクトル命令を発行する命令発行手段である。
【００５７】
１０２命令発行手段において、先行して発行する命令がマスクレジスタの値をαに更新するマスクレジスタ更新命令であった場合、命令発行手段１０２は当該命令以前のマスクレジスタ更新命令の履歴を参照する。未使用あるいは後続の命令に使用予定が無いマスクレジスタ番号をマスクレジスタを１０４から１０６の内のひとつを選択する。
【００５８】
本説明では先行発行するマスクレジスタ更新命令は１０４マスクレジスタ番号１を選択したものとする。１３２マスクレジスタ更新命令を通じてマスクデータαと当該マスクデータが更新されるべき１０４マスクレジスタ１番であることを１０３マスクレジスタ制御手段に対して通知する。
【００５９】
１０３マスクレジスタ制御手段では、１３２マスクレジスタ更新命令の内容を判別し、当該マスクレジスタ更新命令のマスクデータαを１４５マスクレジスタ更新データを通じて１０４マスクレジスタ番号１の値をαに更新する。
【００６０】
１０２命令発行手段において、先行するマスクレジスタ更新命令の次に発行すべきベクトル命令が、１０４ １番マスクレジスタに格納されているマスクデータαを使用して１０７ベクトルレジスタＸと１０８ベクトルレジスタＹの値を演算器Ａで演算処理を行い、演算結果を１０７ベクトルレジスタＸに格納するベクトル演算命令であったとする。
Ｘ＜＝Ｘ exeA Ｙ (ＶＣ＝α)
【００６１】
１０２命令発行手段は、１３１ベクトル演算命令を通じ２００ベクトルレジスタ選択手段に対して１０７ベクトルレジスタＸと１０８ベクトルレジスタＹからそれぞれ格納されているベクトルデータの読み出し指示を行う。
【００６２】
１３１ベクトル演算命令は、１１５マスクレジスタ選択手段に対して１０４  １番マスクレジスタのマスクレジスタ番号を通知する。１１５マスクレジスタ選択手段は、１０４マスクレジスタに格納されているマスクデータαを選択し、１１６マスクレジスタ整列手段Ａに対して１４９マスクデータ選択結果として当該マスクデータを出力する。１１６マスクデータ整列手段Ａでは、１３１ベクトル演算命令の内容から入力されたマスクデータを整列させ、結果を１５０整列手段Ａ出力マスクデータとして２００演算結果選択手段に対して出力する。
【００６３】
２００ベクトルレジスタ選択手段は、１５０整列手段Ａ出力マスクデータの値αを参照し、１５０整列手段Ａ出力マスクデータの値αを参照し１３６演算器Ａ入力データの有効無効を判別し、１１１演算器Ａに対して出力する。
【００６４】
演算器Ａでは当該演算命令に従った演算処理を行い、１３９演算器Ａ演算結果データを２０１演算結果選択手段に対して出力する。
【００６５】
２０１演算結果選択手段は１３１ベクトル演算命令に従って、１３９演算器Ａ演算結果データを選択し、１４２ベクトルレジスタＸ入力データを通じて、１０７ベクトルレジスタＸに書き込みを行う。
【００６６】
上記の様に、請求項２の本実施の形態の構成であっても、請求項１と同様の効果が得られる。
【００６７】
また、本発明の他の実施の形態として、請求項３の構成についても説明する。
図３を参照すると、本発明の一実施の形態としてのベクトル処理装置が示されている。
【００６８】
本実施の形態が請求項１および請求項２の実施の形態と異なるのは、１５０整列手段Ａ出力マスクデータを、３００演算器Ａに入力し、データの有効無効判別を行うことのみである。即ち、請求項３の本実施の形態の構成であっても、請求項１および請求項２と同様の効果が得られる。
【００６９】
また、本発明の他の実施の形態として、請求項４の構成についても説明する。
図３を参照すると、本発明の一実施の形態としてのベクトル処理装置が示されている。
【００７０】
本実施の形態が請求項１および請求項２の実施の形態と異なるのは、演算器を使用しないベクトルレジスタ間のベクトルデータ転送命令においても、本発明が適用可能である事である。
【００７１】
図４において１０１はベクトル命令列を保持している命令記憶手段である。１０２は１０１命令記憶装置より出力された１３０ベクトル命令列を受けて本発明のベクトル処理装置に対してベクトル命令を発行する命令発行手段である。
【００７２】
１０２命令発行手段において、先行して発行する命令がマスクレジスタの値をαに更新するマスクレジスタ更新命令であった場合、命令発行手段１０２は当該命令以前のマスクレジスタ更新命令の履歴を参照する。未使用あるいは後続の命令に使用予定が無いマスクレジスタ番号をマスクレジスタを１０４から１０６の内のひとつを選択する。
【００７３】
本説明では先行発行するマスクレジスタ更新命令は１０４マスクレジスタ番号１を選択したものとする。１３２マスクレジスタ更新命令を通じてマスクデータαと当該マスクデータが更新されるべき１０４マスクレジスタ１番であることを１０３マスクレジスタ制御手段に対して通知する。
【００７４】
１０３マスクレジスタ制御手段では、１３２マスクレジスタ更新命令の内容を判別し、当該マスクレジスタ更新命令のマスクデータαを１４５マスクレジスタ更新データを通じて１０４マスクレジスタ番号１の値をαに更新する。
【００７５】
１０２命令発行手段において、先行するマスクレジスタ更新命令の次に発行すべきベクトル命令が、１０４ １番マスクレジスタに格納されているマスクデータαを使用して１０７ベクトルレジスタＸの値を１０８ベクトルレジスタＹに転送する命令であったとする。
Ｙ＜＝Ｘ (ＶＣ＝α)
【００７６】
１０２命令発行手段は、１３１ベクトル演算命令を通じ１１０ベクトルレジスタ選択手段に対して１０７ベクトルレジスタＸから格納されているベクトルデータの読み出し指示を行う。
【００７７】
１３１ベクトル演算命令は、１１５マスクレジスタ選択手段に対して１０４  １番マスクレジスタのマスクレジスタ番号を通知する。１１５マスクレジスタ選択手段は、１０４マスクレジスタに格納されているマスクデータαを選択し、１１６マスクレジスタ整列手段Ａに対して１４９マスクデータ選択結果として当該マスクデータを出力する。１１６マスクデータ整列手段Ａでは、１３１ベクトル演算命令の内容から入力されたマスクデータを整列させ、結果を１５０整列手段Ａ出力マスクデータとして１１４演算結果選択手段に対して出力する。
【００７８】
１１０ベクトルレジスタ選択手段は、１３５ベクトルレジスタＸ出力データを受け、４００転送命令データとして１１４演算結果選択手段に対して出力する。
【００７９】
１１４演算結果選択手段は１３１ベクトル転送命令に従って、４００転送命令データを選択し、１４２ベクトルレジスタＸ入力データを通じて、１０７ベクトルレジスタＸに書き込みを行う。
【００８０】
上記の様に、請求項４の本実施の形態であるベクトル転送命令の構成であっても、請求項１と同様の効果が得られる。
【００８１】
また、請求項１から４までの構成では、命令発行手段で、マスクレジスタ番号の管理を行っている。請求項５では、マスクレジスタ番号の管理を、命令発行手段の代わりに、マスクレジスタ制御手段で行う事を示している。
【００８２】
最後に、請求項６では、複数のマスクレジスタの内、１つのマスクレジスタを特定の演算器に割り付ける事によって、請求項１から５までを実現させる事を示している。
【００８３】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施の形態に係るブロック構成図である。
【図２】本発明の他の実施の形態に係るブロック構成図である。
【図３】本発明の他の実施の形態に係るブロック構成図である。
【図４】本発明の他の実施の形態に係るブロック構成図である。
【図５】関連技術における命令処理を示したタイムチャートである。
【図６】本発明での命令処理を示したタイムチャートである。
【図７】本発明での命令処理最速ケースを示したタイムチャートである。
【図８】関連するベクトル装置に係るブロック構成図である。
【符号の説明】
【００８５】
１０１    命令記憶手段
１０２    命令発行手段
１０３    マスクレジスタ制御手段
１０４    １番マスクレジスタ
１０５    ２番マスクレジスタ
１０６    ３番マスクレジスタ
１０７    ベクトルレジスタＸ
１０８    ベクトルレジスタＹ
１０９    ベクトルレジスタＺ
１１０    ベクトルレジスタ選択手段
１１１    演算器Ａ
１１２    演算器Ｂ
１１３    演算器Ｃ
１１４    演算結果選択手段
１１５    マスクレジスタ選択手段
１１６    マスクレジスタ整列手段Ａ
１１７    マスクレジスタ整列手段Ｂ
１１８    マスクレジスタ整列手段Ｃ
１３０    命令列
１３１    ベクトル演算命令
１３２    マスクレジスタ更新命令
１３３    ベクトルレジスタZ出力データ
１３４    ベクトルレジスタY出力データ
１３５    ベクトルレジスタX出力データ
１３６    演算器Ａ入力データ
１３７    演算器Ｂ入力データ
１３８    演算器Ｃ入力データ
１３９    演算器Ａ演算結果データ
１４０    演算器Ｂ演算結果データ
１４１    演算器Ｃ演算結果データ
１４２    ベクトルレジスタＸ入力データ
１４３    ベクトルレジスタY入力データ
１４４    ベクトルレジスタZ入力データ
１４５    マスクレジスタ更新データ
１４６    １番マスクデータ
１４７    ２番マスクデータ
１４８    ３番マスクデータ
１４９    マスクデータ選択結果
１５０    整列手段Ａ出力マスクデータ
１５１    整列手段Ｂ出力マスクデータ
１５２    整列手段Ｃ出力マスクデータ
【図１】
2009134547.tif 000003
【図２】
2009134547.tif 000004
【図３】
2009134547.tif 000005
【図４】
2009134547.tif 000006
【図５】
2009134547.tif 000007
【図６】
2009134547.tif 000008
【図７】
2009134547.tif 000009
【図８】
2009134547.tif 000010