(57)【要約】【課題】命令を高速に処理することできるベクトル処理装置等を提供する。【解決手段】  ベクトル処理装置１１は、命令列１２が、ベクトルデータに含まれる要素を第１マスク情報に基づき保存する処理を含む第１命令と、所定の手順に従い、前記第１マスク情報に基づき第２マスク情報を生成する第２命令と、前記ベクトルデータに含まれる要素を前記第２マスク情報に基づき保存する処理を含む第３命令とを含む場合に、前記ベクトルデータの中から、前記第１命令に従い値を保存する要素と前記第３命令に従い値を保存する要素とを選び、選んだ前記要素に関する前記第１命令及び前記第３命令に応じた処理を、１回分の命令に応じた処理により実施する第１制御を行う第１命令制御部１０を有する。【選択図】  図１
2015022601.tif 000002
【特許請求の範囲】
【請求項１】
命令列が、ベクトルデータに含まれる要素を第１マスク情報に基づき保存する処理を含む第１命令と、所定の手順に従い、前記第１マスク情報に基づき第２マスク情報を生成する第２命令と、前記ベクトルデータに含まれる要素を前記第２マスク情報に基づき保存する処理を含む第３命令とを含む場合に、前記ベクトルデータの中から、前記第１命令に従い値を保存する要素と前記第３命令に従い値を保存する要素とを選び、選んだ前記要素に関する前記第１命令及び前記第３命令に応じた処理を、１回分の命令に応じた処理により実施する第１制御を行う第１命令制御部を
備えるベクトル処理装置。
【請求項２】
前記命令列が、前記第１命令と、前記第２命令と、前記第３命令とを含むか否かを判定する判定部を更に備え、
第１命令制御部は、前記判定部が前記第１命令乃至第３命令を含むと判定する場合に、前記第１制御を行う
請求項１に記載のベクトル処理装置。
【請求項３】
第１命令制御部は、前記第１制御を行うとともに、前記第２命令に応じて、前記第２マスク情報を生成する第２制御を行う
請求項１または請求項２に記載のベクトル処理装置。
【請求項４】
前記命令列が、更に、前記第２マスク情報を更新する第４命令を含む場合に、
第１命令制御部は、前記第１制御を開始するとともに、前記第４命令に応じて前記第２マスク情報を更新する
請求項１または請求項２に記載のベクトル処理装置。
【請求項５】
前記第２命令は、前記第１マスク情報に含まれるそれぞれの情報が有効である場合に該情報を無効に設定するとともに、前記情報が無効である場合に該情報を有効に設定することにより、前記第２マスク情報を算出する指示である
請求項１乃至請求項４のいずれかに記載のベクトル処理装置。
【請求項６】
前記第１マスク情報及び前記第２マスク情報を含むマスク情報に応じて、ベクトルレジスタから、演算対象であるデータを記憶する第１ベクトルレジスタを選択する第１クロスバスイッチと、
前記第１ベクトルレジスタが記憶するデータを、前記第１命令または前記第３命令に応じて処理することにより、第２データを算出する演算部と、
前記マスク情報に応じて、前記第２データを保存する第２ベクトルレジスタを選択する第２クロスバスイッチと
を更に備え、
前記第１命令制御部は、前記命令列に基づいて参照される前記第１マスク情報及び前記第２マスク情報に含まれる値が有効である値を選ぶことにより、前記マスク情報を算出するとともに、前記第１命令及び前記第３命令に応じた処理を、１回分の命令に応じた処理により実行するように前記演算部を制御する
請求項１乃至請求項５のいずれかに記載のベクトル処理装置。
【請求項７】
情報処理装置を用いて、命令列が、ベクトルデータに含まれる要素を第１マスク情報に基づき保存する処理を含む第１命令と、所定の手順に従い、前記第１マスク情報に基づき第２マスク情報を生成する第２命令と、前記ベクトルデータに含まれる要素を前記第２マスク情報に基づき保存する処理を含む第３命令とを含む場合に、前記ベクトルデータの中から、前記第１命令に従い値を保存する要素と前記第３命令に従い値を保存する要素とを選び、
選んだ前記要素に関する前記第１命令及び前記第３命令に応じた処理を１回分の命令に応じた処理により実施する第１制御を行うベクトル処理装置制御方法。
【請求項８】
前記命令列が、前記第１命令と、前記第２命令と、前記第３命令とを含むか否かを判定し、前記第１命令乃至第３命令を含むと判定する場合に、前記第１制御を行う請求項７に記載のベクトル処理装置制御方法。
【請求項９】
前記第１制御を行うとともに、前記第２命令に応じて、前記第２マスク情報を生成する第２制御を行う請求項７または請求項８に記載のベクトル処理装置制御方法。
【請求項１０】
前記命令列が、更に、前記第２マスク情報を更新する第４命令を含む場合に、第１命令制御部は、前記第１制御を開始するとともに、前記第４命令に応じて前記第２マスク情報を更新する請求項７または請求項８に記載のベクトル処理装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、ベクトル命令を処理するベクトル処理装置等に関する。
【背景技術】
【０００２】
図１４を参照しながら、一般的なベクトル処理装置１００が有する構成と、ベクトル処理装置１００が行う処理とについて説明する。図１４は、一般的なベクトル処理装置１００が有する構成を表すブロック図である。
【０００３】
図１４に示すように、ベクトル処理装置１００において、命令記憶部１０１は、命令発行部１０２に命令読み出し信号１２１を送信する。
【０００４】
命令発行部１０２は、命令読み出し信号１２１に応じて、命令記憶部１０１の中から命令を読み取る。
【０００５】
次に、命令発行部１０２は、読み取った命令がマスクレジスタ１０５におけるマスク情報に含まれる各情報を反転する命令（以降、「マスク反転命令」と表す。）であると判定する場合に、マスクレジスタ制御部１０４に、マスク反転命令をマスクレジスタ反転命令１２２として送信する。
【０００６】
マスクレジスタ制御部１０４は、命令発行部１０２が送信するマスクレジスタ反転命令１２２を受信する。次に、マスクレジスタ制御部１０４は、所定の手順に従い、受信したマスクレジスタ反転命令１２２に応じて、マスクレジスタ１０５が記憶する図１５に例示するマスク情報を、図１６に示すように反転し、反転したマスク情報をマスクレジスタ制御信号１２４として、マスクレジスタ１０５に送信する。図１５は、マスクレジスタ１０５が記憶可能なマスク情報の一例を概念的に表す図である。図１６は、反転したマスク情報の一例を概念的に表す図である。
【０００７】
この例の場合、所定の手順は、マスク情報に含まれる情報が１である場合に０を設定するとともに、マスク情報に含まれる情報が０である場合に１を設定する手順である。
【０００８】
マスクレジスタ１０５は、マスクレジスタ制御信号１２４を受信するのに応じて、反転したマスク情報を保存する。
【０００９】
マスク情報は、複数の要素（以降、ベクトルデータに含まれる要素と識別するために、単に「情報」と表すこともある）を含む。各情報は、ベクトルデータに含まれる各要素が有効であるか否かを表す情報等であるとともに、ベクトルデータに含まれる各要素に関連付けされている。すなわち、ベクトルデータに含まれる第Ａ要素（ただし、１≦Ａ≦Ｎ）は、マスク情報に含まれる第Ａ要素に関連付けされている。
【００１０】
たとえば、マスク情報に含まれる第Ａ要素における値が所定の値である場合、ベクトルデータに含まれる第Ａ要素における値は有効である。逆に、マスク情報に含まれる第Ａ要素における値が所定の値でない場合、ベクトルデータに含まれる第Ａ要素における値は無効である。以下の例において、所定の値は、たとえば、１であるとする。
【００１１】
たとえば、図１５に示すマスク情報の場合、要素番号６、９、１１、１２、１５及び１６に関連付けされたマスク情報が１であるため、ベクトルデータに含まれる第６、９、１１、１２、１５及び１６要素は有効である。
【００１２】
また、図１５に示すマスク情報の場合、マスクレジスタ制御部１０４は、図１６に示すように、０と１とを入れ替える。すなわち、マスクレジスタ制御部１０４は、要素番号６、９、１１、１２、１５及び１６に関連付けされたマスク情報を０に設定するとともに、要素番号１乃至５、７、８、１０、１３、１４、及び、１７乃至２０に関連付けされたマスク情報を０に設定する。
【００１３】
命令発行部１０２は、読み取った命令がマスク情報に応じてベクトルデータに含まれる各要素に演算を実施する命令（以降、「マスク付き演算命令」と表す。）であると判定する場合に、ベクトル命令制御部１０３に、該マスク付き演算命令を実行するのに必要な情報（たとえば、演算対象であるデータ等）を付随したベクトル演算命令１２３を送信する。
【００１４】
ベクトル命令制御部１０３は、たとえば、マスク付き演算命令を実行するのに必要な情報を記憶することができる。
【００１５】
ベクトル命令制御部１０３は、クロスバスイッチ１０７（以降、クロスバスイッチを「クロスバ」と表す）に、読み取るデータを記憶するベクトルレジスタ１１０を指定するクロスバ制御信号１２７を送信する。さらに、ベクトル命令制御部１０３は、クロスバ１０８に、保存するデータを記憶するベクトルレジスタ１１０を指定するクロスバ制御信号１２９を送信する。
【００１６】
それとともに、ベクトル命令制御部１０３は、命令記憶部１０１から受信した命令がマスク付き演算命令であると判定する場合に、選択論理部１０６に、マスクレジスタ１０５の値を選択するマスクレジスタ選択信号１２６を送信する。ベクトル命令制御部１０３は、クロスバ制御信号１２７及びクロスバ制御信号１２９を用いて、ベクトルレジスタ１１０の中から、データを送受信する特定のベクトルレジスタを指定する。
【００１７】
選択論理部１０６は、ベクトル命令制御部１０３が送信するマスクレジスタ選択信号１２６を受信するとともに、マスクレジスタ１０５からマスク情報１２５を受信する。次に、選択論理部１０６は、受信したマスクレジスタ選択信号１２６に基づいて、ベクトルデータに含まれる要素から、値を記憶する特定の要素を選ぶ。たとえば、図１５に示す例においては、選択論理部１０６は、要素番号６、９、１１、１２、１５及び１６を選ぶ。選択論理部１０６は、選んだ要素番号を、演算部出力データ制御マスクデータ１３０として、クロスバ１０８に送信する。
【００１８】
クロスバ１０７は、ベクトル命令制御部１０３が送信するクロスバ制御信号１２７を受信し、受信したクロスバ制御信号１２７に応じて、ベクトルレジスタ１１０から特定のベクトルレジスタを選ぶ。特定のベクトルレジスタは、いずれかの演算部１０９に、自装置が記憶するベクトルデータを、ベクトルレジスタ出力データ１３４として送信する。さらに、ベクトル命令制御部１０３は、演算部入力命令１２８を演算部１０９に送信する。
【００１９】
演算部１０９は、ベクトルレジスタ１１０が送信するベクトルデータを受信する。次に、演算部１０９は、ベクトル命令制御部１０３が送信する演算部入力命令１２８に応じて、演算の種類を判別する。次に、演算部１０９は、受信したベクトルデータに基づき判別した種類の演算を実行し、演算した結果（以降、「演算結果」と表す）を、演算結果データ１３２としてクロスバ１０８に送信する。
【００２０】
クロスバ１０８は、ベクトル命令制御部１０３からクロスバ制御信号１２９を受信するとともに、演算部１０９から演算結果データ１３２を受信する。クロスバ１０８は、受信したクロスバ制御信号１２９に応じた特定のベクトルレジスタに、ベクトルレジスタ入力データ１３３として演算結果データ１３２を送信する。特定のベクトルレジスタは、演算結果データ１３２及びベクトルレジスタ入力データ１３３を受信し、ベクトルレジスタ入力データ１３３に応じて、受信した演算結果データ１３２を保存する。
【００２１】
実行対象の命令がマスク付き演算命令である場合に、クロスバ１０８は、さらに、選択論理部１０６が選ぶ特定の要素に基づき、演算結果データ１３２をベクトルレジスタ１１０に保存するか否かを判定する。クロスバ１０８は、マスク情報が有効である場合に、該マスク情報に関連付けされたベクトルデータの要素を保存する。逆に、クロスバ１０８は、マスク情報が無効である場合に、該マスク情報に関連付けされたベクトルデータの要素を保存しない。
【００２２】
ベクトル処理装置１００は、マスク情報に含まれる各情報が有効であるか無効であるかによらず、命令に応じた演算を行い、その後、マスク情報に基づき、該演算が有効であるか無効であるかを判定する。このため、ベクトル処理装置１００は、マスク情報に基づき該演算が無効であると判定するデータ（すなわち、ベクトルデータに含まれる要素）にも、命令に応じた演算を行う。
【００２３】
特許文献１は、本発明に関連するベクトル処理装置に関する技術を開示する。
【００２４】
特許文献１が開示するベクトル制御回路は、マスクレジスタ及びマスクレジスタが記憶するデータを保存するテンポラリレジスタを有する。該ベクトル制御回路は、マスクレジスタを生成する場合に、マスクレジスタにおけるそれぞれの値を反転した値を、該テンポラリレジスタに保存する。
【００２５】
該ベクトル制御回路は、直近に実行されたマスク生成命令を含むマスク更新命令において更新されたマスクレジスタと、実行するマスクレジスタがすべて同一であった場合、マスクレジスタへ反転した値を保存することを抑止するとともに、該テンポラリレジスタが記憶する値をマスクレジスタが記憶する値として参照する。これにより、マスク反転命令の処理時間は短縮する。
【先行技術文献】
【特許文献】
【００２６】
【特許文献１】特許第４５０２９８３号
【発明の概要】
【発明が解決しようとする課題】
【００２７】
演算部１０９は、マスク情報に基づき演算結果が無効であるデータに対しても、演算を実施するため、有効な演算を行わない。すなわち、演算部１０９が無効な演算を行うことにより、利用者は、ベクトル処理装置が本来有する性能を十分に引き出すことができない。その結果、ベクトル処理装置を利用することにより実際に得られる実効性能は、十分に高くはない。
【００２８】
特許文献１が開示するベクトル制御回路は、上述のように、マスクレジスタへ反転した値を保存することを抑止する。しかし、該ベクトル制御回路は、マスク情報に基づき演算結果が無効であると判定されるデータに関して演算を行う。そのため、特許文献１が開示するベクトル制御回路において、実効性能は、十分に高くはない。
【００２９】
この場合、実効性能を高くすることにより、ベクトル処理装置は、より高速に命令を処理することができる。
【００３０】
そこで、本発明の主たる目的は、高速に命令を処理するベクトル処理装置等を提供することである。
【課題を解決するための手段】
【００３１】
前述の目的を達成するために、本発明に係るベクトル処理装置は、以下の構成を備えることを特徴とする。
【００３２】
すなわち、本発明に係るベクトル処理装置は、
命令列が、ベクトルデータに含まれる要素を第１マスク情報に基づき保存する処理を含む第１命令と、所定の手順に従い、前記第１マスク情報に基づき第２マスク情報を生成する第２命令と、前記ベクトルデータに含まれる要素を前記第２マスク情報に基づき保存する処理を含む第３命令とを含む場合に、前記ベクトルデータの中から、前記第１命令に従い値を保存する要素と前記第３命令に従い値を保存する要素とを選び、選んだ前記要素に関する前記第１命令及び前記第３命令に応じた処理を、１回分の命令に応じた処理により実施する第１制御を行う第１命令制御部を
を備えることを特徴とする。
【００３３】
また、本発明の他の見地として、本発明に係るベクトル処理装置制御方法は、
情報処理装置を用いて、命令列が、ベクトルデータに含まれる要素を第１マスク情報に基づき保存する処理を含む第１命令と、所定の手順に従い、前記第１マスク情報に基づき第２マスク情報を生成する第２命令と、前記ベクトルデータに含まれる要素を前記第２マスク情報に基づき保存する処理を含む第３命令とを含む場合に、前記ベクトルデータの中から、前記第１命令に従い値を保存する要素と前記第３命令に従い値を保存する要素とを選び、
選んだ前記要素に関する前記第１命令及び前記第３命令に応じた処理を１回分の命令に応じた処理により実施する第１制御を行う
ことを特徴とする。
【発明の効果】
【００３４】
本発明に係るベクトル処理装置等によれば、命令を高速に処理することできる。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１の実施形態に係るベクトル処理装置が有する構成を示すブロック図である。
【図２】一般的なベクトル処理装置における処理を概念的に表す図である。
【図３】第１の実施形態に係るベクトル処理装置における処理を概念的に表す図である。
【図４】第１の実施形態に係るベクトル処理装置における処理の流れを表すフローチャートである。
【図５】本発明の第２の実施形態に係るベクトル処理装置が有する構成を示すブロック図である。
【図６】第２の実施形態に係るベクトル処理装置における処理の流れを示すフローチャートである。
【図７】本発明の第３の実施形態に係るベクトル処理装置が有する構成を示すブロック図である。
【図８】第３の実施形態に係るベクトル処理装置における処理の流れを示すフローチャートである。
【図９】一般的なベクトル処理装置における処理を概念的に表す図である。
【図１０】第３の実施形態に係るベクトル処理装置における処理を概念的に表す図である。
【図１１】本発明の第４の実施形態に係るベクトル処理装置が有する構成を示すブロック図である。
【図１２】一般的なベクトル処理装置における処理を概念的に表す図である。
【図１３】第４の実施形態に係るベクトル処理装置における処理を概念的に表す図である。
【図１４】一般的なベクトル処理装置が有する構成を表すブロック図である。
【図１５】マスクレジスタが記憶可能なマスク情報の一例を概念的に表す図である。
【図１６】反転したマスク情報の一例を概念的に表す図である。
【発明を実施するための形態】
【００３６】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００３７】
＜第１の実施形態＞
本発明の第１の実施形態に係るベクトル処理装置１１が有する構成と、ベクトル処理装置１１が行う処理とについて、図１を参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るベクトル処理装置１１が有する構成を示すブロック図である。
【００３８】
第１の実施形態に係るベクトル処理装置１１（以降、「情報処理装置」とも表す。）は、第１命令制御部１０を有する。
【００３９】
第１命令制御部１０は、命令列１２を受信する。
【００４０】
命令列１２は、ベクトル処理装置１１が処理する命令を含む。たとえば、命令は、マスク反転命令、マスク付き演算命令、または、ベクトルデータを加算する命令（以降、「ベクトル加算命令」と表す。）等である。
【００４１】
第１命令制御部１０は、命令列１２が、マスク情報１３が含む各情報を反転するマスク反転命令、及び、各情報が有効であるか無効であるかに応じて、１つの演算部（不図示）が算出した値を保存するか否かを決めるマスク付き演算命令を含む場合に、情報が有効である要素に関連付けされた特定の要素を選ぶ。次に、第１命令制御部１０は、該特定の要素に関する演算命令に関する処理を、１回分の命令に応じた処理により実施する第１制御を行うことにより、一度に行う（詳細については、後述する）。
【００４２】
説明の便宜上、たとえば、命令列Ａ（すなわち、命令列１２の一例）は、以下に表すような命令１乃至命令３に示す命令列であるとする。また、特定のマスク情報１３の一例をマスク情報Ｘと表す。
【００４３】
・（命令１）マスク情報Ｘに基づくマスク付き演算命令（以降、「第１命令」とも表す）、
・（命令２）マスク情報Ｘに関するマスク反転命令以降（以降、「第２命令」とも表す）、
・（命令３）マスク情報Ｘに基づくマスク付き演算命令（以降、「第３命令」とも表す）、
（ただし、１つの演算部が、命令１及び命令３に示すマスク付き演算命令を処理するとともに、読み取り元であるベクトルレジスタと保存先であるベクトルレジスタとは独立である）。
【００４４】
以降、命令１において参照するマスク情報を「第１マスク情報」とも表す。また、命令３において参照するマスク情報を「第２マスク情報」とも表す。
【００４５】
また、説明の便宜上、マスク情報Ｘは、図１５に示すマスク情報であるとする。
【００４６】
まず、一般的なベクトル処理装置における処理について説明した後、本実施形態に係るベクトル処理装置１１における処理について説明する。
【００４７】
一般的なベクトル処理装置は、命令１に応じて、マスク情報Ｘに基づきベクトルデータにおける第６、９、１１、１２、１５及び１６要素のデータに関する処理を行う。次に、一般的なベクトル処理装置は、命令２に応じてマスク情報Ｘを反転することにより、図１６に示すマスク情報Ｘを算出する。次に、一般的なベクトル処理装置は、命令３に応じて、図１６に示すマスク情報Ｘに基づき、ベクトルデータにおける第１乃至５、７、８、１０、１３、１４、及び、１７乃至２０要素のデータに関する処理を行う。
【００４８】
図２は、一般的なベクトル処理装置における処理を概念的に表す図である。一般的なベクトル処理装置は、たとえば、第１命令（命令１）をクロックサイクルＴ１乃至Ｔ２において処理し、その後、第３命令（命令３）をクロックサイクルＴ２乃至Ｔ３において処理する。それとともに、一般的なベクトル処理装置は、第１命令（命令１）と並行に、第２命令（命令２）を処理する。
【００４９】
一般的なベクトル処理装置は、命令１を処理する場合に、ベクトルデータにおける各要素のデータに関する処理を行うが、マスク情報における情報が無効であることに関連付けされた要素（すなわち、第１乃至５、７、８、１０、１３、１４、及び、１７乃至２０要素、図２中に示す「第１命令」における黒塗りの部分）について、処理結果を保存しない。一方、一般的なベクトル処理装置は、マスク情報における情報が有効であることに関連付けされた要素（すなわち、第６、９、１１、１２、１５及び１６要素、図２中に示す「第１命令」における白抜きの部分）について、処理結果を保存する。
【００５０】
上述した処理とともに、一般的なベクトル処理装置は、命令２を処理することにより、マスク情報を反転する。
【００５１】
次に、一般的なベクトル処理装置は、命令３を処理する場合に、ベクトルデータにおける各要素のデータに関する処理を行うが、マスク情報における情報が有効であることに関連付けされた要素（すなわち、第１乃至５、７、８、１０、１３、１４、及び、１７乃至２０要素、図２中に示す「第３命令」における網掛けの部分）について、処理結果を保存する。一方、一般的なベクトル処理装置は、マスク情報における情報が無効であることに関連付けされた要素（すなわち、第１乃至５、７、８、１０、１３、１４、及び、１７乃至２０要素、図２中に示す「第３命令」における黒塗りの部分）について、処理結果を保存しない。
【００５２】
これに対して、本実施形態に係るベクトル処理装置１１において、第１命令制御部１０は、マスク付き演算命令に従い処理するベクトルデータに含まれる要素のうち、要素に関連付けされた情報が有効である特定の要素を選び、該特定の要素を含む演算命令を一度に実施する第１制御を行う。
【００５３】
たとえば、第１命令制御部１０は、命令１におけるマスク付き演算命令、及び、命令３におけるマスク付き演算命令に従い処理するベクトルデータのうち、要素に関連付けされた情報が有効である特定の要素を選ぶ。この場合、第１命令制御部１０は、命令１に応じて、第６、９、１１、１２、１５及び１６要素を選ぶとともに、命令３に応じて、第１乃至５、７、８、１０、１３、１４、及び、１７乃至２０要素を選ぶ。
【００５４】
この場合、第１命令制御部１０は、第１乃至２０要素を並べかえることなく順に選ぶ。すなわち、第１命令制御部１０が行う処理において、主記憶装置を間接参照するリストベクトル等に関する制御は不要である。
【００５５】
図３は、第１の実施形態に係るベクトル処理装置１１における処理を概念的に表す図である。図３において、矢印が示す右方向にクロックサイクル数が多くなる（すなわち、時刻が経過する）ことを表す。
【００５６】
ベクトル処理装置１１は、たとえば、第１命令（命令１）及び第３命令（命令３）に応じた処理を、クロックサイクルＴ１乃至Ｔ２において一度に実施する。すなわち、ベクトル処理装置１１は、第１命令及び第３命令を、１回の命令に応じた処理を実施することにより、一度に処理する。すなわち、第１命令制御部１０は、第１制御を行う。それとともに、ベクトル処理装置１１は、第１命令（命令１）と並行に、第２命令（命令２）を処理する。
【００５７】
すなわち、第１命令制御部１０は、命令１及び命令３に応じて、ベクトルデータのうち第１乃至２０要素のデータに関する処理を行う（図３における「第１命令及び第３命令を１回分の命令にて処理」）。
【００５８】
さらに、ベクトル処理装置１１は、命令２に応じて、マスク反転命令（図３における「第２命令」）に関する処理を行う。
【００５９】
特許文献１等が開示する一般的なベクトル処理装置は、命令１に関する処理を行った後に、命令３に関する処理を行う。一般的なベクトル処理装置は、命令１及び命令３に関する処理において、それぞれ、マスク情報に応じて算出した値を保存するか否かを判定する。
【００６０】
この結果、一般的なベクトル処理装置は、命令１において値を保存しない要素に関して、命令３において値を保存する。一方、一般的なベクトル処理装置は、命令１において値を保存する要素に関して、命令３において値を保存しない。
【００６１】
一般的なベクトル処理装置は、命令１において算出した値を保存しない要素に関する演算を行い、再度、同様の演算を命令３において行う。このため、一般的なベクトル処理装置においては、命令３を実施する時間が必要である。
【００６２】
これに対して、本実施形態に係るベクトル処理装置１１は、上述のように、ベクトルデータにおける第１乃至２０要素のデータに関して、一度の演算により、命令１及び命令３を処理する（すなわち、第１制御）。一般的なベクトル処理装置においては命令１において算出した値を保存しない要素に対しても、本実施形態に係るベクトル処理装置１１においては、上述した一度の演算に基づいて値を保存する。この結果、本実施形態に係るベクトル処理装置１１は、図２に例示するような、命令１及び命令３において重複する演算処理を行わないため、実効性能を上げることができる。
【００６３】
すなわち、第１の実施形態に係るベクトル処理装置１１によれば、命令に係る処理を高速にすることできる。
【００６４】
尚、ベクトル処理装置１１は、図４に示すように、命令１及び命令３を一度に実施する第１制御を行うとともに（ステップＳ５１）、命令２に応じて、マスク情報Ｘを反転してもよい（ステップＳ５２）。図４は、第１の実施形態に係るベクトル処理装置１１における処理の流れを表すフローチャートである。
【００６５】
ベクトル処理装置１１は、ステップＳ５１における処理を開始すれば、ステップＳ５２における処理を行うことができる。マスク反転命令と、マスク付き演算命令とを処理する装置が異なる場合においては、マスク付き演算命令に応じてマスク情報を読み取る処理と、マスク反転命令に応じてマスク情報を更新する処理とが重ならない場合に、マスク反転命令に応じた処理（以降、「第２制御」とも表す。）及び第１制御に応じた処理を並列に行ってもよい。
【００６６】
また、上述した説明において、第１命令制御部１０は、命令列１２を受信するとしたが、命令列１２を逐次的に受信してもよい。
【００６７】
さらに、第１マスク情報と第２マスク情報とは、図１５及び図１６に示すような関連を有していなくともよい。この場合、命令２は、ベクトルデータにおける要素の集合が、第１制御に従い算出した結果を保存する要素の集合を含むという条件を満たしていればよい。
【００６８】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００６９】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００７０】
図５と図６とを参照しながら、第２の実施形態に係るベクトル処理装置２３が有する構成と、ベクトル処理装置２３が行う処理とについて説明する。図５は、本発明の第２の実施形態に係るベクトル処理装置２３が有する構成を示すブロック図である。図６は、第２の実施形態に係るベクトル処理装置２３における処理の流れを示すフローチャートである。
【００７１】
本実施形態に係るベクトル処理装置２３は、判定部２１と、第１命令制御部１０とを有する。
【００７２】
まず、判定部２１は、命令列１２における各命令を調べることにより、命令列１２が所定の命令例であるか否かを判定する（ステップＳ５３）。すなわち、判定部２１は、命令列１２が、上述した命令列Ａを含むか否かを判定する（ステップＳ５３）。
【００７３】
次に、第１命令制御部１０は、命令列１２が命令列Ａを含むと判定部２１が判定する場合に（ステップＳ５３にてＹＥＳと判定）、上述のように第１制御を行う（ステップＳ５１）。
【００７４】
第１命令制御部１０は、命令列１２が命令列Ａを含まないと判定部２１が判定する場合に（ステップＳ５３にてＮＯと判定）、ステップＳ５１における処理を実施しない。
【００７５】
第２の実施形態に係るベクトル処理装置２３は、第１の実施形態と同様の構成を含むため、第２の実施形態は、第１の実施形態と同様の効果を享受することができる。すなわち、第２の実施形態に係るベクトル処理装置２３によれば、命令を高速に処理することできる。
【００７６】
さらに、判定部２１は、命令列１２が命令列Ａを含むか否かを判定する装置であるため、ソフトウェア等により判定部２１を実現する態様と比べれば、判定処理をより高速に行うことができる。すなわち、第２の実施形態に係るベクトル処理装置２３によれば、さらに、命令を高速に処理することできる。
【００７７】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【００７８】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００７９】
図７乃至図１０を参照しながら、第３の実施形態に係るベクトル処理装置４２が有する構成と、ベクトル処理装置４２が行う処理とについて説明する。図７は、本発明の第３の実施形態に係るベクトル処理装置４２が有する構成を示すブロック図である。図８は、第３の実施形態に係るベクトル処理装置４２における処理の流れを示すフローチャートである。図９は、一般的なベクトル処理装置における処理を概念的に表す図である。図１０は、第３の実施形態に係るベクトル処理装置４２における処理を概念的に表す図である。図１０において、矢印が示す右方向にクロックサイクル数が多くなる（すなわち、時刻が経過する）ことを表す。
【００８０】
本実施形態に係るベクトル処理装置４２は、第１命令制御部４１を有する。
【００８１】
説明の便宜上、命令列Ｂは、以下に表すような命令１乃至命令４に示す命令列であるとする。また、特定のマスク情報の一例をマスク情報Ｘと表す。マスク更新命令は、マスクレジスタが記憶可能なマスク情報における値を更新する命令である。
【００８２】
・（命令１）マスク情報Ｘに基づくマスク付き演算命令、
・（命令２）マスク情報Ｘに関するマスク反転命令、
・（命令３）マスク情報Ｘに基づくマスク付き演算命令、
・（命令４）マスク情報Ｘに関するマスク更新命令（以降、「第４命令」とも表す）、
（ただし、１つの演算部が、命令１及び命令３に示すマスク付き演算命令を処理するとともに、読み取り元であるベクトルレジスタと保存先であるベクトルレジスタとは独立である）。
【００８３】
まず、第１命令制御部４１は、命令列１２が命令列Ｂを含む場合に、上述したステップＳ５１における処理を行う。
【００８４】
次に、第１命令制御部４１は、命令列１２が命令列Ｂを含む場合に、命令４に応じて
マスクレジスタにおけるマスク情報１３を更新する（ステップＳ５５）。
【００８５】
一般的なベクトル処理装置は、図９に示すように、命令におけるマスク反転命令に応じた処理を行った後、命令３、及び、命令４を実行する。図９において、矢印が示す右方向にクロックサイクル数が多くなる（すなわち、時刻が経過する）ことを表す。一般的なベクトル処理装置は、たとえば、第１命令（命令１）をクロックサイクルＴ４乃至Ｔ５において処理し、その後、第３命令（命令３）をクロックサイクルＴ５乃至Ｔ６において処理する。それとともに、一般的なベクトル処理装置は、第１命令（命令１）と並行に、第２命令（命令２）を処理する。
【００８６】
命令列１２が、さらに、命令４より後に命令５（たとえば、マスク情報Ｘに基づくマスク付き演算命令等、以降、「第５命令」とも表す。）を含む場合、一般的なベクトル処理装置は、命令３におけるマスク付き演算命令に応じた処理を行った後に、命令５に応じた処理を行う。
【００８７】
これに対して、第３の実施形態に係るベクトル処理装置４２によれば、命令２を実行する必要がなくなる。その理由は、ベクトル処理装置４２が、上述したように、命令１及び命令３を、１回分の命令に応じた処理を実施する第１制御を行った後に、命令４に応じてマスク情報Ｘを更新するためである。すなわち、命令２に応じて更新されたマスク情報が、命令５以降の処理において、参照されることはない。
【００８８】
この結果、本実施形態に係るベクトル処理装置４２は、図１０に示すように、命令２におけるマスク反転命令に応じた処理を行わない。
【００８９】
ベクトル処理装置４２は、たとえば、第１命令（命令１）及び第３命令（命令３）に応じた処理を、クロックサイクルＴ４乃至Ｔ５において一度に実施する。すなわち、ベクトル処理装置４２は、第１命令及び第３命令を、１回の命令に応じた処理を実施することにより、一度に処理する。すなわち、第１命令制御部４１は、第１制御を行う。それとともに、ベクトル処理装置４２は、第１命令（命令１）と並行に、第４命令（命令４）を処理する。
【００９０】
図９と異なり、図１０において、「第２命令」は存在しない。すなわち、これは、ベクトル処理装置４２が、命令２におけるマスク反転命令に応じた処理を行わないことを表す。
【００９１】
命令列１２が、さらに、命令４以降に命令５（たとえば、マスク情報Ｘに基づくマスク付き演算命令等）を含む場合に、ベクトル処理装置４２は、命令４におけるマスク更新命令に応じた処理を行う（ステップＳ５５）とともに、命令５以降の命令に応じた処理を行う。
【００９２】
第３の実施形態に係るベクトル処理装置４２は、第１の実施形態と同様の構成を含むため、第３の実施形態は、第１の実施形態と同様の効果を享受することができる。すなわち、第３の実施形態に係るベクトル処理装置４２によれば、命令を高速に処理することできる。
【００９３】
ベクトル処理装置４２は、命令４におけるマスク更新命令に応じた処理を、上述したステップＳ５１における処理と並行して行ってもよい。この場合、さらに、本実施形態によれば、命令５以降の命令に応じた処理を、さらに、早期に行うことができる。
【００９４】
すなわち、第３の実施形態に係るベクトル処理装置４２によれば、上述した効果に加え、さらに、命令を高速に処理することできる。
【００９５】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第４の実施形態について説明する。本実施形態は、ベクトル処理装置１５０において、上述した本発明の各実施形態を実現する一例である。
【００９６】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００９７】
図１１乃至図１３を参照しながら、第４の実施形態に係るベクトル処理装置１５０が有する構成と、ベクトル処理装置１５０が行う処理とについて説明する。図１１は、本発明の第４の実施形態に係るベクトル処理装置１５０が有する構成を示すブロック図である。図１２は、一般的なベクトル処理装置における処理を概念的に表す図である。図１３は、第４の実施形態に係るベクトル処理装置における処理を概念的に表す図である。
【００９８】
本実施形態に係るベクトル処理装置１５０は、命令発行部１５１と、ベクトル命令制御部１５２とを含む。ベクトル命令制御部１５２は、第１命令制御部１１２を含む。さらに、命令発行部１５１は、第２の実施形態に説明したように、判定部１１１を含んでいてもよい。
【００９９】
第１命令制御部１１２は、ベクトル命令制御部１５２と別体であってもよい。同様に、判定部１１１は、命令発行部１５１と別体であってもよい。
【０１００】
ベクトル処理装置１５０が上述したような態様である場合、命令記憶部１０１は、命令発行部１５１に命令読み出し信号１２１を送信する。
【０１０１】
判定部１１１は、命令読み出し信号１２１に基づく一連の命令列を監視することにより、該命令列が、上述した命令列Ａを含むか否かを判定する。この場合、判定部１１１は、第２の実施形態に説明したように、該命令列が、上述した命令列Ｂを含むか否かを判定してもよい。
【０１０２】
判定部１１１は、命令列が命令列Ａまたは命令列Ｂを含む場合に、ベクトル命令制御部１５２に、命令１及び命令３に応じた処理を一度に実施するベクトル演算命令１５３を送信する。判定部１１１は、ベクトル演算命令１５３を、第１指示１４０として、第１命令制御部１１２に送信してもよい。
【０１０３】
ベクトル命令制御部１５２は、ベクトル演算命令１５３を受信する。第１命令制御部１１２は、受信したベクトル演算命令１５３に応じて、上述したように第１指示１４０に基づき自装置における各部に対して第１制御を行う。
【０１０４】
ベクトル命令制御部１５２は、選択論理部１０６にマスクレジスタ選択信号１５４を送信する。選択論理部１０６は、ベクトル命令制御部１５２が送信するマスクレジスタ選択信号１５４を受信し、受信したマスクレジスタ選択信号１５４に基づいて、ベクトルデータが有する要素から、値を保存する特定の要素を選ぶ。選択論理部１０６は、選んだ要素番号を、演算部出力データ制御マスクデータ１３０として、クロスバ１０８及び第１命令制御部１１２に送信する。
【０１０５】
第１命令制御部１１２は、選択論理部１０６が送信する演算部出力データ制御マスクデータ１３０を受信する。第１命令制御部１１２は、命令１に応じた処理において参照するマスク情報Ｘが有効である要素、及び、命令３に応じた処理において参照するマスク情報Ｘが有効である要素を選ぶ処理を、クロスバ制御信号１２７としてクロスバ１０７に送信する。
【０１０６】
さらに、第１命令制御部１１２は、第１制御に応じた処理を行う指示を、演算部入力命令１２８として演算部１０９に送信する。
【０１０７】
クロスバ１０７は、クロスバ制御信号１２７を受信し、受信したクロスバ制御信号１２７に応じて、特定のベクトルレジスタ１１０から値を読み出し、読み出した値を演算部入力データ１３１として、演算部１０９に送信する。
【０１０８】
演算部１０９は、演算部入力命令１２８及び演算部入力データ１３１を受信し、その後、演算部入力命令１２８に基づいた演算を、演算部入力データ１３１における値に対して実行する。演算部１０９は、算出した結果を、演算結果データ１３２として、クロスバ１０８に送信する。
【０１０９】
さらに、第１命令制御部１１２は、命令１において参照するマスク情報Ｘが有効であるデータを保存するベクトルレジスタ１１０、及び、命令３において参照するマスク情報Ｘが有効であるデータを保存するベクトルレジスタ１１０に、それぞれ送信するように制御する信号を、クロスバ制御信号１２９としてクロスバ１０８に送信する。
【０１１０】
上述した処理とともに、第１命令制御部１１２は、マスク反転命令に応じた制御を行ってもよい。
【０１１１】
図１２及び図１３を参照しながら、一般的なベクトル処理装置及びベクトル処理装置１５０が行う処理について対比しながら説明する。図１２における平行四辺形は、図２に示す矩形と同様の処理を表すこととする。すなわち、図１２における第１命令乃至第３命令は、図２における第１命令乃至第３命令に、それぞれ対応する。同様に、図１３における平行四辺形は、図３に示す矩形と同様の処理を表すこととする。すなわち、図１３における第１命令乃至第３命令は、図３における第１命令乃至第３命令に、それぞれ、対応する。
【０１１２】
図１２及び図１３において、矢印が示す右方向にクロックサイクル数が多くなる（すなわち、時刻が経過する）ことを表す。また、矢印と直交する方向には、ベクトル処理装置において処理を実施する各部の名称を示す。図１２及び図１３において、名称は、上から順に、ベクトルレジスタ１１０、クロスバ１０７、演算部１０９、クロスバ１０８、ベクトルレジスタ１１０である。
【０１１３】
一般的なベクトル処理装置は、第１命令乃至第３命令を処理する場合に、「背景技術」に示したような処理を行う。たとえば、一般的なベクトル処理装置が第１命令を処理する場合に、ベクトルレジスタ１１０、クロスバ１０７、演算部１０９、クロスバ１０８及びベクトルレジスタ１１０は、順に、第１命令に応じた処理を開始する。この一連の処理を図１２に示す平行四辺形の斜め線（すなわち、図１２に示す各部の名称の右側にある斜め線）で表す（図１３においても図１２と同様である）。
【０１１４】
すなわち、一般的なベクトル処理装置は、クロックサイクルＴ７乃至Ｔ９の期間において、第１命令及び第３命令に応じた処理を逐次的に実施する。
【０１１５】
一方、本実施形態に係るベクトル処理装置１５０は、第１命令乃至第３命令を処理する場合に、本実施形態に示したような処理を行う。たとえば、一般的なベクトル処理装置が第１命令を処理する場合に、ベクトルレジスタ１１０、クロスバ１０７、演算部１０９、クロスバ１０８及びベクトルレジスタ１１０は、順に、第１命令に応じた処理を開始する（図１３に示す各部の名称の右側にある斜め線）。
【０１１６】
すなわち、第１命令制御部１１２は、クロックサイクルＴ７乃至Ｔ８の期間において、第１命令及び第３命令を、１回分の命令に応じた処理を実施することにより、一度に処理する。この結果、ベクトル処理装置１５０における処理時間は、一般的なベクトル処理装置における処理時間に比べ、「Ｔ６−Ｔ５」の期間分短縮する。
【０１１７】
第４の実施形態に係るベクトル処理装置１５０は、第１の実施形態と同様の構成を含むため、第４の実施形態は、第１の実施形態と同様の効果を享受することができる。すなわち、第４の実施形態に係るベクトル処理装置１５０によれば、命令を高速に処理することできる。
【符号の説明】
【０１１８】
１０    第１命令制御部
１１    ベクトル処理装置
１２    命令列
１３    マスク情報
２１    判定部
２３    ベクトル処理装置
４１    第１命令制御部
４２    ベクトル処理装置
１００    ベクトル処理装置
１０１    命令記憶部
１０２    命令発行部
１０３    ベクトル命令制御部
１０４    マスクレジスタ制御部
１０５    マスクレジスタ
１０６    選択論理部
１０７    クロスバ
１０８    クロスバ
１０９    演算部
１１０    ベクトルレジスタ
１１１    判定部
１１２    第１命令制御部
１２１    命令読み出し信号
１２２    マスクレジスタ反転命令
１２３    ベクトル演算命令
１２４    マスクレジスタ制御信号
１２５    マスク情報
１２６    マスクレジスタ選択信号
１２７    クロスバ制御信号
１２８    演算部入力命令
１２９    クロスバ制御信号
１３０    演算部出力データ制御マスクデータ
１３１    演算部入力データ
１３２    演算結果データ
１３３    ベクトルレジスタ入力データ
１３４    ベクトルレジスタ出力データ
１４０    第１指示
１５０    ベクトル処理装置
１５１    命令発行部
１５２    ベクトル命令制御部
１５３    ベクトル演算命令
１５４    マスクレジスタ選択信号
【図１】
2015022601.tif 000003
【図２】
2015022601.tif 000004
【図３】
2015022601.tif 000005
【図４】
2015022601.tif 000006
【図５】
2015022601.tif 000007
【図６】
2015022601.tif 000008
【図７】
2015022601.tif 000009
【図８】
2015022601.tif 000010
【図９】
2015022601.tif 000011
【図１０】
2015022601.tif 000012
【図１１】
2015022601.tif 000013
【図１２】
2015022601.tif 000014
【図１３】
2015022601.tif 000015
【図１４】
2015022601.tif 000016
【図１５】
2015022601.tif 000017
【図１６】
2015022601.tif 000018