(57)【特許請求の範囲】
【請求項１】
同一要素番号を有する要素を要素単位でＳＲＡＭに格納する要素単位ベクトルレジスタと、前記要素単位ベクトルレジスタからの前記要素の読み出し、前記要素間の演算、および前記要素単位ベクトルレジスタへの前記演算の結果の書き込みを制御するベクトル演算処理部と、前記要素単位ベクトルレジスタのクロックをベクトルマスク制御またはベクトル長制御により読み書きが行われない前記要素単位で停止するクロック停止処理部と、を備えることを特徴とするベクトル処理装置。
【請求項２】
前記ベクトル演算処理部は、前記要素単位ベクトルレジスタから読み出した前記要素を切り替える読み出しクロスバと、前記要素間の前記演算を行う演算器と、前記演算器の出力を切り替える書き込みクロスバを備え、 
前記クロック停止処理部は、クロックを供給するクロック供給処理部と、前記要素単位ベクトルレジスタ内のどの前記要素がマスク有効かを示すマスクレジスタと、前記クロック供給処理部の出力、および前記マスクレジスタの出力から前記要素単位で前記クロックを停止するクロックゲーティング処理部と、を備えることを特徴とする請求項１記載のベクトル処理装置。
【請求項３】
前記ベクトル演算処理部は、前記要素単位ベクトルレジスタから読み出した前記要素を切り替える読み出しクロスバと、前記要素間の前記演算を行う演算器と、前記演算器の出力を切り替える書き込みクロスバを備え、
前記クロック停止処理部は、ベクトル長を保持するベクトル長レジスタと、前記ベクトル長レジスタの出力をデコードするベクトル長レジスタ制御処理部と、クロックを供給するクロック供給処理部の出力、および前記ベクトル長レジスタ制御処理部の出力から前記要素単位で前記クロックを停止するクロックゲーティング処理部と、を有することを特徴とする請求項１記載のベクトル処理装置。
【請求項４】
前記演算器は、オペランドを一時保持するオペランド保持レジスタを有し、前記読み出しクロスバは、前記演算の第一オペランド側の前記要素を前記オペランド保持レジスタへの入力側へ切り替え、前記演算の第二オペランド側の前記要素を演算器の第二オペランド入力側へ切り替える回路を有することを特徴とする請求項２または請求項３記載のベクトル処理装置。
【請求項５】
前記ベクトル処理装置は、ベクトル命令を保持する命令格納処理部と、ベクトル命令を解読し演算器への制御、および前記要素単位ベクトルレジスタへの制御を行う命令発行処理部と、前記読み出しクロスバの制御を行う読み出しクロスバ制御処理部と、前記書き込みクロスバの制御を行う書き込みクロスバ制御処理部と、を有することを特徴とする請求項２乃至請求項４のいずれかに記載のベクトル処理装置。
【請求項６】
同一要素番号を有する要素が要素単位でＳＲＡＭに格納された要素単位ベクトルレジスタからの前記要素の読み出し、前記要素間の演算、および前記要素単位ベクトルレジスタへの前記演算の結果の書き込みを制御するベクトル演算処理ステップと、前記要素単位ベクトルレジスタのクロックをマスク制御またはベクトル長制御により読み書きが行われない前記要素単位で停止するクロック停止処理ステップと、を含むことを特徴とするベクトル処理方法。
【請求項７】
前記ベクトル演算処理ステップは、読み出しクロスバにより前記要素単位ベクトルレジスタから読み出した前記要素を切り替える読出切替処理ステップと、演算器により前記要素間の前記演算を行う演算処理ステップと、書き込みクロスバにより前記演算器の出力を切り替える書込切替処理ステップを含み、前記クロック停止処理ステップは、クロックを供給するクロック供給処理ステップと、前記要素単位ベクトルレジスタ内のどの前記要素がマスク有効かを示すマスクレジスタの出力から前記要素単位での前記クロックを停止するクロックゲーティング処理ステップを含むことを特徴とする請求項６記載のベクトル処理方法。
【請求項８】
前記ベクトル演算処理ステップは、読み出しクロスバにより前記要素単位ベクトルレジスタから読み出した前記要素を切り替える読出切替処理ステップと、演算器により前記要素間の前記演算を行う演算処理ステップと、書き込みクロスバにより前記演算器の出力を切り替える書込切替処理ステップを含み、
前記クロック停止処理ステップは、ベクトル長を保持するベクトル長レジスタの出力をデコードするベクトル長レジスタ制御処理ステップと、前記のベクトル長レジスタのデコード出力から前記要素単位での前記クロックを停止するクロックゲーティング処理ステップを含むことを特徴とする請求項６記載のベクトル処理方法
【請求項９】
前記ベクトル演算処理ステップは、オペランドを一時保持するオペランド保持レジスタを有し、前記読出切替処理ステップは、前記演算の第一オペランド側の前記要素を前記オペランド保持レジスタへの入力側へ切り替え、前記演算の第二オペランド側の前記要素を前記演算器の第二オペランド入力側へ切り替えることを特徴とする請求項７または請求項８記載のベクトル処理方法。
【請求項１０】
前記ベクトル演算処理ステップは、ベクトル命令を保持する命令格納処理ステップと、ベクトル命令を解読し前記演算器への制御、および前記要素単位ベクトルレジスタへの制御を行う命令発行処理ステップと、前記読み出しクロスバの制御を行う読み出しクロスバ制御処理ステップと、前記書き込みクロスバの制御を行う書き込みクロスバ制御処理ステップと、を含むことを特徴とする請求項７乃至請求項９のいずれかに記載のベクトル処理方法。
【請求項１１】
同一要素番号を有する要素が要素単位でＳＲＡＭに格納された要素単位ベクトルレジスタからの前記要素の読み出し、前記要素間の演算、および前記要素単位ベクトルレジスタへの前記演算の結果の書き込みを制御するベクトル演算処理と、前記要素単位ベクトルレジスタのクロックをマスク制御またはベクトル長制御により読み書きが行われない前記要素単位で停止するクロック停止処理と、コンピュータに実行させることを特徴とするプログラム。
【請求項１２】
前記ベクトル演算処理は、読み出しクロスバにより前記要素単位ベクトルレジスタから読み出した前記要素を切り替える読出切替処理と、演算器により前記要素間の前記演算を行う演算処理と、書き込みクロスバにより前記演算器の出力を切り替える書込切替処理を含み、前記クロック停止処理は、クロックを供給するクロック供給処理と、前記要素単位ベクトルレジスタ内のどの前記要素がマスク有効かを示すマスクレジスタの出力から前記要素単位での前記クロックを停止するクロックゲーティング処理と、を含むことを特徴とする請求項１１記載のプログラム。
【請求項１３】
前記ベクトル演算処理は、読み出しクロスバにより前記要素単位ベクトルレジスタから読み出した前記要素を切り替える読出切替処理と、演算器により前記要素間の前記演算を行う演算処理と、書き込みクロスバにより前記演算器の出力を切り替える書込切替処理を含み、
前記クロック停止処理は、ベクトル長を保持するベクトル長レジスタの出力をデコードするベクトル長レジスタ制御処理と、前記のベクトル長レジスタのデコード出力から前記要素単位での前記クロックを停止するクロックゲーティング処理を含むことを特徴とする請求項１１記載のプログラム。
【請求項１４】
前記要素間の前記演算を行う演算器は、オペランドを一時保持するオペランド保持レジスタを有し、前記読み出しクロスバは、前記演算の第一オペランド側の前記要素を前記オペランド保持レジスタへの入力側へ切り替え、前記演算の第二オペランド側の前記要素を前記演算器の第二オペランド入力側へ切り替える回路を有することを特徴とする請求項１１または請求項１２記載のプログラム。
【請求項１５】
前記ベクトル演算処理は、ベクトル命令を保持する命令格納処理と、ベクトル命令を解読し前記要素間の前記演算を行う演算器への制御、および前記要素単位ベクトルレジスタへの制御を行う命令発行処理と、前記読み出しクロスバの制御を行う読み出しクロスバ制御処理と、前記書き込みクロスバの制御を行う書き込みクロスバ制御処理と、を含むことを特徴とする請求項１１乃至請求項１４のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はベクトル処理装置に関し、特に消費電力を低減するベクトル処理装置、ベクトル処理方法、およびプログラムに関する。
【背景技術】
【０００２】
ベクトル演算処理装置での消費電力を低減する技術が、特許文献１に記載されている。特許文献１の技術は、ベクトル命令で使用されないベクトルレジスタのクロックをレジスタ単位で停止する構成である。
【０００３】
また、ベクトルレジスタの読み出しを高い自由度で行う技術が、特許文献２に記載されている。特許文献２の技術は、同一の要素番号を有する要素をグループ化して、各グループ毎に読み出しを行う構成である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３４９６８号公報
【特許文献２】特開２００７−２８０２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１、特許文献２の技術では、ベクトルマスク制御やベクトル長制御により、ベクトル命令で読み書きが行われない要素に対して要素毎にクロックを停止し、消費電力を低減する技術の記載がない。
【０００６】
本発明の目的は、上記問題点を解決するベクトル処理装置、ベクトル処理方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明のベクトル処理装置は、同一要素番号を有する要素を要素単位でＳＲＡＭに格納する要素単位ベクトルレジスタと、前記要素単位ベクトルレジスタからの前記要素の読み出し、前記要素間の演算、および前記要素単位ベクトルレジスタへの前記演算の結果の書き込みを制御するベクトル演算処理部と、前記要素単位ベクトルレジスタのクロックをベクトルマスク制御またはベクトル長制御により読み書きが行われない前記要素単位で停止するクロック停止処理部と、を備える。
【０００８】
本発明のベクトル処理方法は、同一要素番号を有する要素を要素単位でＳＲＡＭに格納された要素単位ベクトルレジスタからの前記要素の読み出し、前記要素間の演算、および前記要素単位ベクトルレジスタへの前記演算の結果の書き込みを制御するベクトル演算処理ステップと、前記要素単位ベクトルレジスタのクロックをマスク制御またはベクトル長制御により読み書きが行われない前記要素単位で停止するクロック停止処理ステップと、を含む。
【０００９】
本発明のプログラムは、同一要素番号を有する要素を要素単位でＳＲＡＭに格納された要素単位ベクトルレジスタからの前記要素の読み出し、前記要素間の演算、および前記要素単位ベクトルレジスタへの前記演算の結果の書き込みを制御するベクトル演算処理と、前記要素単位ベクトルレジスタのクロックをマスク制御またはベクトル長制御により読み書きが行われない前記要素単位で停止するクロック停止処理と、をコンピュータに実行させる。
【発明の効果】
【００１０】
本発明の効果は、ベクトルマスク制御やベクトル長制御により、ベクトル命令で読み書きが行われない要素に対する制御で消費電力を低減できることである。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態であるベクトル処理装置（１）１０の構成図である。
【図２】本発明の第２の実施の形態であるベクトル処理装置（２）２０の構成図である。
【図３】要素単位ベクトルレジスタ１３、および要素単位ベクトルレジスタ３７の構成の１例を示す図である。
【図４】本発明の第２実施の形態であるベクトル処理装置（２）の動作（時刻０）の１例を示す図である。
【図５】本発明の第２実施の形態であるベクトル処理装置（２）の動作（時刻１）の１例を示す図である。
【図６】本発明の第２実施の形態であるベクトル処理装置（２）の動作（時刻２）の１例を示す図である。
【図７】本発明の第２実施の形態であるベクトル処理装置（２）の動作（時刻３）の１例を示す図である。
【図８】本発明の第２実施の形態であるベクトル処理装置（２）の動作（時刻４）の１例を示す図である。
【図９】本発明の第２実施の形態であるベクトル処理装置（２）の動作（時刻n）の１例を示す図である。
【図１０】本発明の第２実施の形態であるベクトル処理装置（２）２０の動作を示すタイミングチャートの１例を示す図である。
【図１１】本発明の第３の実施の形態であるベクトル処理装置（３）４０の構成図である。
【図１２】ベクトルレジスタの構成の１例である。
【発明を実施するための形態】
【００１２】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１３】
図１は、本発明の第１の実施の形態であるベクトル処理装置（１）１０の構成図である。
【００１４】
ベクトル処理装置（１）１０は、要素単位ベクトルレジスタ１３と、ベクトル演算処理部１１と、クロック停止処理部１２から構成されている。
【００１５】
図３は、要素単位ベクトルレジスタ１３の構成の１例を示す図である。
【００１６】
要素単位ベクトルレジスタ１３は、ＳＲＡＭ（ＳｔａｔｉｃＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）に各レジスタ単位で要素を番号順に格納するのではなく（図１２参照）、
各ベクトルレジスタＶ０〜Ｖ７の各要素の中で要素番号が同一である要素を、要素単位でＳＲＡＭに格納するような構成を採用している。
【００１７】
図３の例では、ベクトルレジスタは、Ｖ０〜Ｖ７の８個であり、要素は要素番号＃００〜＃１５に対応する１６個と想定している。
【００１８】
図３を参照すると、ＳＲＡＭ＃０には、ベクトルレジスタＶ０の要素番号＃００の要素（Ｖ０−＃００）と、ベクトルレジスタＶ１の要素番号＃００の要素（Ｖ１−＃００）と、ベクトルレジスタＶ２の要素番号＃００の要素（Ｖ２−＃００）と、以下、要素（Ｖ３−＃００）と、要素（Ｖ４−＃００）と、要素（Ｖ５−＃００）と、要素（Ｖ６−＃００）と、要素（Ｖ７−＃００）が格納されている。
【００１９】
同様に、ＳＲＡＭ＃１〜ＳＲＡＭ＃１５には、同様に要素単位で同一要素番号の要素が格納されている。
【００２０】
尚、ＳＲＡＭは記憶素子にフリップフロップ回路を用いているので、クロック入力を停止することにより、読み込み／書き込み動作が抑止され消費電力が削減可能である。
【００２１】
また、ベクトル演算処理部１１は、要素単位ベクトルレジスタ１３からの要素の読み出し、要素間の演算、および要素単位ベクトルレジスタ１３への演算の結果の書き込みを制御する。
【００２２】
クロック停止処理部１２は、要素単位で要素単位ベクトルレジスタ１３のクロックを停止する。
【００２３】
このため、本発明の第１の実施の形態であるベクトル処理装置（１）１０は、マスク制御やベクトル長制御により、ベクトル命令で読み書きが行われない要素に対して、要素単位で消費電力を低減できることである。
【００２４】
その理由は、ベクトルレジスタを要素単位でＳＲＡＭに格納するような構成とし、マスク制御やベクトル長制御によりベクトル命令で読み書きが行われない要素を要素単位でクロックを停止するような構成を採用したためである。
【００２５】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００２６】
図２は、本発明の第２の実施の形態であるベクトル処理装置（２）２０の構成図である。
【００２７】
ベクトル処理装置（２）２０は、要素単位ベクトルレジスタ３７と、ベクトル演算処理部３８と、クロック停止処理部（１）３０とから構成されている。
【００２８】
要素単位ベクトルレジスタ３７は、例えば、ベクトルレジスタＶ０からＶ７の８個で、要素０から要素ｎから構成されている。
【００２９】
ベクトル演算処理部３８は、命令格納処理部２１と、命令発行処理部２２と、読み出しクロスバ２４と、演算器３６と、書き込みクロスバ２９と、読み出しクロスバ制御処理部２３と、書き込みクロスバ制御処理部３５とから構成されている。
【００３０】
演算器３６は、ベクトル加算、ベクトル乗算等の演算を行う演算器（Ａ）２６と、演算器（Ｂ）２７と、演算器（Ｃ）２８と、オペランドを一時保持するオペランド保持レジスタ２５から構成されている。
【００３１】
演算器（Ａ）２６は、図示していないが、演算器Ａパイプライン（１）と演算器Ａパイプライン（２）の２段のパイプラインで構成されていると想定している。
【００３２】
オペランド保持レジスタ２５は、演算器で２つ以上のベクトルデータのオペランドの演算を処理するときに、１つ目のオペランドを１サイクル余計に保持し２つ目のオペランドを受けるタイミングに合わせる機能をもつ。
【００３３】
読み出しクロスバ２４は、要素単位ベクトルレジスタ３７から読み出されたデータ（ベクトル要素）を各入力口から出力口へ切り替える。
【００３４】
読み出しクロスバ制御処理部２３は、読み出しクロスバ２４に対してどのタイミングでどの各入力口からどの出力口へ切り替えするかどうかを指示する。
【００３５】
書き込みクロスバ２９は、演算器３６の出力を受け取って、入力口から出力口の要素単位ベクトルレジスタ３７への切り替えを制御する。
【００３６】
書き込みクロスバ制御処理部３５は、書き込みクロスバ２９に対してどのタイミングで要素単位ベクトルレジスタ３７のどの要素の出力口へ切り替えすればよいかを指示する。
【００３７】
命令格納処理部２１は、ベクトル命令の格納処理を行う。命令発行処理部２２は、命令格納処理部２１から受け取ったベクトル命令を解読し命令がマスク有効命令か否かを判別する。
【００３８】
また、命令発行処理部２２は、ベクトル命令が使用するリソース（要素単位ベクトルレジスタ３７、演算器３６等）を判別する処理と、現在そのリソースが使用可能状態か否かを判別する処理と、要素単位ベクトルレジスタ３７に対し読み出しの開始タイミングを指示する処理と、読み出しクロスバ２４を制御する読み出しクロスバ制御処理部２３に対して指示する処理を
行う。
【００３９】
さらに、命令格納処理部２１は、演算器３６のどの演算器が何の命令の処理をいつ開始するか指示する処理と、書き込みクロスバ２９を制御する書き込みクロスバ制御処理部３５に対して指示する処理を行う。
【００４０】
クロック停止処理部（１）３０は、マスクレジスタ３３と、マスクレジスタ制御処理部３２と、クロック供給処理部３１と、クロックゲーティング処理部３４とから構成されている。
【００４１】
マスクレジスタ３３は、全ベクトルレジスタ共通でベクトルレジスタ内のどの要素がマスク有効かを保持する。
【００４２】
マスクレジスタ制御処理部３２は、命令発行処理部２２からの指示によりどの要素がマスク有効かを示すマスクデータをマスクレジスタ３３に設定する。
【００４３】
クロック供給処理部３１は、装置全体のクロックを供給する機能をもつが、ここでは、要素単位ベクトルレジスタ３７に対するクロックを供給する処理に特化して記述されている。
【００４４】
クロックゲーティング処理部３４は、マスクレジスタ３３の値に基づいて要素単位ベクトルレジスタ３７に対するクロックの供給停止を行う。
【００４５】
尚、読み出しクロスバ制御処理部２３と、書き込みクロスバ制御処理部３５は、ハードウェアで実現してもよいしソフトウェアで実現してもよい。
【００４６】
また、要素単位ベクトルレジスタ３７、ベクトル演算処理部３８、およびクロック停止処理部（１）３０は、それぞれ、本発明の第１実施の形態であるベクトル処理装置（１）１０の要素単位ベクトルレジスタ１３と、ベクトル演算処理部１１と、クロック停止処理部１２の１例である。
【００４７】
図４から図９は、本発明の第２実施の形態であるベクトル処理装置（２）２０の動作（時刻０から時刻nまで）の１例を示す図である。
【００４８】
図１０は、本発明の第２実施の形態であるベクトル処理装置（２）２０の動作を示すタイミングチャートの１例を示す図である。
【００４９】
次に、本発明の第２の実施の形態であるベクトル処理装置（２）２０の動作について、図２、図３、図４〜図９、および図１０を参照して説明する。
【００５０】
本発明の第２の実施の形態であるベクトル処理装置（２）２０の動作を説明する上で、ベクトルレジスタＶ０（第一オペランド）とベクトルレジスタＶ１（第二オペランド）のデータを読み出し演算器（Ａ）２６で演算を行い、結果をベクトルレジスタＶ２へ格納するベクトル演算命令時の動作について説明する。
【００５１】
まず、命令発行処理部２２は、ベクトル命令を解読しリソースの空き状況を管理して実行可能な状態を判別し、実行可能になり次第順次命令発行を行う。
【００５２】
次に、命令発行処理部２２は、要素単位ベクトルレジスタ３７、演算器（Ａ）２６、マスクレジスタ制御処理部３２、読み出しクロスバ制御処理部２３、および書き込みクロスバ制御処理部３５に対して動作指示を出す。
【００５３】
また、命令発行処理部２２は、ベクトル命令を解読すると、ベクトルレジスタＶ０とベクトルレジスタＶ１からデータを読み出すことを必要であると判別し、要素単位ベクトルレジスタ３７のＶ０とＶ１に対して読み出し指示を出す。
【００５４】
要素単位ベクトルレジスタ３７は、この指示に従い、要素０から順次ベクトルレジスタ内データを読み出し読み出しクロスバ２４にデータを送出する。このとき、要素０はＶ０とＶ１とも同じＳＲＡＭに格納されているため、Ｖ１はタイミングを１サイクルずらして読み出しを開始する必要がある。
【００５５】
次に、命令発行処理部２２は、ベクトルレジスタＶ０とＶ１の読み出し開始タイミングを読み出しクロスバ制御処理部２３に指示する。この指示から読み出しクロスバ制御処理部２３は、読み出しクロスバ２４に対し、どのタイミングのデータをどの演算器の入力口に出力するかどうかの指示を出す。
【００５６】
この指示に従い、読み出しクロスバ２４は、ベクトルレジスタＶ０とベクトルレジスタＶ１から読み出された各要素のデータを演算器（Ａ）２６の対応する入力口へのデータの切り替えを行う。
【００５７】
読み出しクロスバ２４は、演算の第一オペランド側の要素をオペランド保持レジスタ２５への入力側へ切り替え、演算の第二オペランド側の要素を演算器の第二オペランド入力側へ切り替える。
【００５８】
このときの切り替え動作の詳細を図４から図９、図１０を用いて説明すると、時刻０では、Ｖ０の要素０のデータＶ０（０）が、要素０用のポートから入力され演算器（Ａ）２６の第一オペランド側に出力され、オペランド保持レジスタ２５に格納される（図４参照）。
【００５９】
時刻１では、Ｖ１の要素０のデータＶ１（０）が要素０用のポートから入力され演算器（Ａ）２６の第二オペランド側に出力されると同時に、Ｖ０の要素１のデータＶ０（１）が要素１用のポートから送られ演算器（Ａ）２６の第一オペランド側に出力される（図５参照）。
【００６０】
同様に、時刻２ではＶ０の要素２のデータＶ０（２）とＶ１の要素１Ｖ１（１）のデータが演算器（Ａ）２６の第一／第二オペランドへと出力される（図６参照）。時刻ｎではＶ０のデータ供給は終了しＶ１の要素ｎＶ１（ｎ）のみが演算器（Ａ）２６の第二オペランド側に出力される。
【００６１】
さらに、命令発行処理部２２は、演算器（Ａ）２６の演算結果のベクトルレジスタＶ２への書き込み開始タイミングを書き込みクロスバ制御処理部３５に指示する。
【００６２】
この指示から、書き込みクロスバ制御処理部３５は、書き込みクロスバ２９に対し、どのタイミングで演算器（Ａ）２６から出された演算結果をベクトルレジスタＶ２のどの要素番号に対応するＳＲＡＭに出力するかどうかの指示を出す。
【００６３】
この指示に従い、書き込みクロスバ２９は、演算器（Ａ）２６から出された演算結果をベクトルレジスタＶ２の各要素に対するＳＲＡＭのパスへの切り替えを行う。
【００６４】
図６から図９を用いて、このときの切り替え動作の詳細を説明すると、時刻２では、演算器（Ａ）２６からの要素０の演算結果が入力され要素０用のポートから出力される（図６、図１０参照）。時刻３では、演算器（Ａ）２６からの要素１の演算結果が入力されポート１へ出力される（図７、図１０）。同様にして、時刻ｎでは演算器（Ａ）２６からの要素ｎ−２の演算結果が入力され要素ｎ−２用のポートへ出力される（図９、図１０参照）。時刻ｎ＋２では演算器（Ａ）２６からの要素ｎの演算結果が入力され要素ｎ用のポートへ出力される（図１０参照）。
【００６５】
一方、命令発行処理部２２は、ベクトル命令がマスク有効命令であることを判別すると、マスクレジスタ制御処理部３２に対して、どの要素がマスク有効かを示すマスクデータをマスクレジスタ３３に設定するように指示する。
【００６６】
クロックゲーティング処理部３４は、クロック供給処理部３１から送られたクロックと
マスクレジスタ３３の出力とがＡＮＤされベクトル命令で有効でない要素が格納されているＳＲＡＭへのクロック供給が停止される。
【００６７】
このため、レジスタの読み出し時には固定のデータが出力され、レジスタの書き込み時には書き込み動作を一切行わないが、元々処理する必要のない要素であるので処理としては問題なく、電力削減が可能になる。
【００６８】
この実施例では、要素１，３，４がマスク無効であるため、要素１，３，４に対応するＳＲＡＭへのクロック供給が停止されている。
【００６９】
このため、本発明の第２の実施の形態であるベクトル処理装置（２）２０の効果は、ベクトル命令で、読み書きが行われない有効でない要素に対して消費電力を低減できることである。
【００７０】
その理由は、ベクトルレジスタを要素単位でＳＲＡＭに格納するように構成し、ベクトル命令で、読み書きが行われない要素単位でクロックの停止を制御するような構成を採用したためである。
【００７１】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
【００７２】
図１１は、本発明の第３の実施の形態であるベクトル処理装置（３）４０の構成図である。
【００７３】
ベクトル処理装置（３）４０は、本発明の第２の実施の形態であるベクトル処理装置（２）２０と比べて、クロック停止処理部（２）４１が異なっている。
【００７４】
クロック停止処理部（２）４１は、ベクトル長レジスタ４２と、ベクトル長制御処理部４３と、クロック供給処理部３１と、クロックゲーティング処理部３４とから構成されている。
【００７５】
尚、図１１に示す例では、要素開始アドレスが要素０であると想定している。
【００７６】
命令発行処理部２２は、命令格納処理部２１から受け取ったベクトル命令を解読し命令のベクトル長を判別する処理と、解読した命令が使用するリソースを判別し、現在そのリソースが使用可能状態か否かを判別する処理と、要素単位ベクトルレジスタ３７に対し読み出し開始タイミングを指示する処理を行う。
【００７７】
次に、命令発行処理部２２は、読み出しクロスバ２４を制御する読み出しクロスバ制御処理部２３に対する指示を行う。
【００７８】
さらに、命令格納処理部２１は、演算器３６のどの演算器が何の命令の処理をいつ開始するかの指示と、書き込みクロスバ２９を制御する書き込みクロスバ制御処理部３５に対する指示を行う。
【００７９】
一方、ベクトル長レジスタ４２は、全ベクトルレジスタ共通で実行命令のベクトル長が現在いくつになっているかどうかのデータを保持する。
【００８０】
ベクトル長制御処理部４３は、ベクトル長レジスタ４２の値によりどの要素が有効でないかの判定を行う。
【００８１】
クロックゲーティング処理部３４は、ベクトル長制御処理部４３から送られた有効なベクトル長以降の無効な要素に対して要素単位でのクロックの供給停止を行う。
【００８２】
このため、本発明の第３の実施の形態であるベクトル処理装置（３）４０の効果は、有効なベクトル長以降の読み書きが行われない無効な要素に対して消費電力を低減できることである。
【００８３】
その理由は、ベクトルレジスタを要素単位でＳＲＡＭに格納するように構成し、有効なベクトル長以降の読み書きが行われない無効な要素単位でクロックの停止を制御するような構成を採用したためである。
【符号の説明】
【００８４】
１０    ベクトル処理装置（１）
１１    ベクトル演算処理部
１２    クロック停止処理部
１３    要素単位ベクトルレジスタ
２０    ベクトル処理装置（２）
２１    命令格納処理部
２２    命令発行処理部
２３    読み出しクロスバ制御処理部
２４    読み出しクロスバ
２５    オペランド保持レジスタ
２６    演算器（Ａ）
２７    演算器（Ｂ）
２８    演算器（Ｃ）
２９    書き込みクロスバ
３０    クロック停止処理部（１）
３１    クロック供給処理部
３２    マスクレジスタ制御処理部
３３    マスクレジスタ
３４    クロックゲーティング処理部
３５    書き込みクロスバ制御処理部
３６    演算器
３７    要素単位ベクトルレジスタ
３８    ベクトル演算処理部
４０    ベクトル処理装置（３）
４１    クロック停止処理部（２）
４２    ベクトル長レジスタ
４３    ベクトル長制御処理部
【図１】
0005491113.tif 000002
【図２】
0005491113.tif 000003
【図３】
0005491113.tif 000004
【図４】
0005491113.tif 000005
【図５】
0005491113.tif 000006
【図６】
0005491113.tif 000007
【図７】
0005491113.tif 000008
【図８】
0005491113.tif 000009
【図９】
0005491113.tif 000010
【図１０】
0005491113.tif 000011
【図１１】
0005491113.tif 000012
【図１２】
0005491113.tif 000013