(57)【特許請求の範囲】
【請求項１】
ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサであって、
第１の比較演算器と、第２の比較演算器と、第１の演算器と、第２の演算器と、第３の演算器と、レジスタとを備え、
前記第１の比較演算器は、第１の比較演算信号と第１の入力信号と第２の入力信号とが入力され、該第１の入力信号と該第２の入力信号に対して前記第１の比較演算信号が示す比較を行い、該比較の結果を出力し、
前記第２の比較演算器は、第２の比較演算信号と第３の入力信号と第４の入力信号とが入力され、該第３の入力信号と該第４の入力信号に対して前記第２の比較演算信号が示す比較を行い、該比較の結果を出力し、
前記第１の演算器は、第１の制御信号と、前記第１の比較演算器による比較の結果と、前記レジスタが既に保持している値とが入力され、前記第１の制御信号に応じて、前記第１の比較演算器による比較の結果と、該比較の結果と前記レジスタの値の論理積と、該比較の結果と前記レジスタの値の論理和とのいずれか１つを第１の演算結果として出力し、
前記第２の演算器は、第２の制御信号と、前記第２の比較演算器による比較の結果と、前記レジスタが既に保持している値とが入力され、前記第２の制御信号に応じて、前記第２の比較演算器による比較の結果と、該比較の結果と前記レジスタの値の論理積と、該比較の結果と前記レジスタの値の論理和とのいずれか１つを第２の演算結果として出力し、
前記第３の演算器は、第３の制御信号と、前記第１の演算結果と、前記第２の演算結果とが入力され、前記第３の制御信号に応じて、前記第１の演算結果と、前記第１の演算結果と前記第２の演算結果の論理積と、前記第１の演算結果と前記第２の演算結果の論理和とのいずれか１つを実行結果として前記レジスタに出力し、
前記レジスタは、前記第３の演算器からの前記実行結果を新たに保持し、出力することを特徴とするＶＬＩＷプロセッサ。
【請求項２】
第１の比較命令と、前記第１の比較命令に対応し、「合成しない」、「論理積」、「論理和」のいずれかを示す第１の合成指定と、第２の比較命令と、前記第２の比較命令に対応し、「合成しない」、「論理積」、「論理和」のいずれかを示す第２の合成指定と、「合成しない」、「論理積」、「論理和」のいずれかを示す第３の合成指定とを含む１つのＶＬＩＷ命令の実行を制御する制御部であって、
前記第１の比較命令に含まれる比較演算子と２つの入力オペランドを夫々示す信号を、前記第１の比較演算信号と前記第１の入力信号と前記第２の入力信号として前記第１の比較演算器に入力し、
前記第２の比較命令に含まれる比較演算子と２つの入力オペランドを夫々示す信号を、前記第２の比較演算信号と前記第３の入力信号と前記第４の入力信号として前記第２の比較演算器に入力し、
前記第１の合成指定に応じた前記第１の制御信号と、前記第２の合成指定に応じた前記第２の制御信号とを、前記第１の演算器と、前記第２の演算器とに夫々入力し、
前記第２の比較命令が空でないときに、前記第３の合成指定に応じた前記第３の制御信号を、前記第３の演算器に入力する制御部をさらに備えることを特徴とする請求項１に記載のＶＬＩＷプロセッサ。
【請求項３】
前記制御部は、
前記第２の比較命令が空であるときと、前記第３の合成指定が空であるときのいずれか一方に該当する場合に、
前記第１の比較命令に応じた前記第１の比較演算信号と前記第１の入力信号と前記第２の入力信号を前記第１の比較演算器に入力し、
前記第１の演算結果を前記実行結果として出力することを示す前記第３の制御信号を前記第３の演算器に入力することを特徴とする請求項２に記載のＶＬＩＷプロセッサ。
【請求項４】
前記第１の演算器は、
前記第１の比較演算器による比較の結果と前記レジスタが既に保持している値が入力される第１のＡＮＤゲートと第１のＯＲゲートと、
前記第１の制御信号と、前記第１の比較演算器による比較の結果と、前記第１のＡＮＤゲートの出力と、前記第１のＯＲゲートの出力とが入力される第１のセレクタとを有し、
前記第１のセレクタは、前記第１の制御信号に応じて、３つの入力のうちの１つを前記第１の演算結果に選択して出力することを特徴とする請求項１から３のいずれか１項に記載のＶＬＩＷプロセッサ。
【請求項５】
前記第２の演算器は、
前記第２の比較演算器による比較の結果と前記レジスタが既に保持している値が入力される第２のＡＮＤゲートと第２のＯＲゲートと、
前記第２の制御信号と、前記第２の比較演算器による比較の結果と、前記第２のＡＮＤゲートの出力と、前記第２のＯＲゲートの出力とが入力される第２のセレクタとを有し、
前記第２のセレクタは、前記第２の制御信号に応じて、３つの入力のうちの１つを前記第２の演算結果に選択して出力することを特徴とする請求項１から４のいずれか１項に記載のＶＬＩＷプロセッサ。
【請求項６】
前記第３の演算器は、
前記第１の演算結果と前記第２の演算結果が入力される第３のＡＮＤゲートと第３のＯＲゲートと、
前記第３の制御信号と、前記第１の演算結果と、前記第３のＡＮＤゲートの出力と、前記第３のＯＲゲートの出力とが入力される第３のセレクタとを有し、
前記第３のセレクタは、前記第３の制御信号に応じて、３つの入力のうちの１つを前記実行結果に選択して出力することを特徴とする請求項１から５のいずれか１項に記載のＶＬＩＷプロセッサ。
【請求項７】
前記レジスタは、プレディケイトレジスタであることを特徴とする請求項１から６のいずれか１項に記載のＶＬＩＷプロセッサ。
【請求項８】
１つ前のＶＬＩＷ命令の実行結果を保持するためのレジスタを備えるＶＬＩＷプロセッサにより実行されるＶＬＩＷ命令であって、
第１の比較命令を格納する第１の比較命令フィールドと、
第１の合成指定を格納する第１の合成指定フィールドと、
第２の比較命令を格納する第２の比較命令フィールドと、
第２の合成指定を格納する第２の合成指定フィールドと、
第３の合成指定を格納する第３の合成指定フィールドとを含み、
前記第１の合成指定は、前記ＶＬＩＷプロセッサが前記第１の比較命令を実行することによる比較の結果と、前記比較の結果と前記レジスタに既に保持している値の論理積と、前記比較の結果と前記レジスタに既に保持している値の論理和とのいずれを、前記ＶＬＩＷプロセッサが第１の演算結果とするかを示すものであり、
前記第２の合成指定は、前記ＶＬＩＷプロセッサが前記第２の比較命令を実行することによる比較の結果と、前記比較の結果と前記レジスタに既に保持している値の論理積と、前記比較の結果と前記レジスタに既に保持している値の論理和とのいずれを、前記ＶＬＩＷプロセッサが第２の演算結果とするかを示すものであり、
前記第２の比較命令フィールドが空でないときに、前記第３の合成指定は、前記第１の演算結果と、前記第１の演算結果と前記第２の演算結果の論理積と、前記第１の演算結果と前記第２の演算結果の論理和とのいずれを、前記ＶＬＩＷプロセッサが今回のＶＬＩＷ命令の実行結果とするかを示すものであることを特徴とするＶＬＩＷ命令。
【請求項９】
前記第２の比較命令フィールドと、前記第３の合成指定フィールドとのいずれか一方が空であることは、前記第１の演算結果を、前記ＶＬＩＷプロセッサが今回のＶＬＩＷ命令の実行結果とすることを示すことを特徴とする請求項８に記載のＶＬＩＷ命令。
【請求項１０】
第１の比較命令と、第２の比較命令と、「合成しない」、「論理積」、「論理和」のいずれか１つを示す第１と第２の合成指定と、「合成しない」、「論理積」、「論理和」のいずれか１つを示す第３の合成指定とを含むＶＬＩＷ命令が入力され、レジスタを備えるＶＬＩＷプロセッサにおけるＶＬＩＷ命令の実行方法であって、
前記第１の合成指定が「合成しない」を示す場合には、前記第１の比較命令が示す比較の結果を第１の演算結果として出力し、他の場合には、前記第１の合成指定が示す論理演算を、前記第１の比較命令が示す比較の結果と前記レジスタが既に保持している値とに対して行って得た値を前記第１の演算結果として出力し、
前記第２の合成指定が「合成しない」を示す場合には、前記第２の比較命令が示す比較の結果を第２の演算結果として出力し、他の場合には、前記第２の合成指定が示す論理演算を、前記第２の比較命令が示す比較の結果と前記レジスタが既に保持している値とに対して行って得た値を前記第２の演算結果として出力し、
前記第２の比較命令が空でないときであって、前記第３の合成指定が「合成しない」を示す場合には、前記第１の演算結果を今回のＶＬＩＷ命令の実行結果として前記レジスタに出力し、前記第２の比較命令が空でないときであって、前記第３の合成指定が「論理積」または「論理和」を示す場合には、前記第３の合成指定が示す論理演算を、前記第１の演算結果と前記第２の演算結果に対して行って得た値を今回のＶＬＩＷ命令の実行結果として前記レジスタに出力し、
前記レジスタにより前記実行結果を新たに保持し、出力することを特徴とする実行方法。
【請求項１１】
前記第２の比較命令と、前記第３の合成指定とのいずれか一方が空であるときに、前記第１の演算結果を今回のＶＬＩＷ命令の実行結果として前記レジスタに出力することを特徴とする請求項１０に記載の実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の比較命令を含むＶＬＩＷ命令、及び該ＶＬＩＷ命令を実行する技術に関する。
【背景技術】
【０００２】
１サイクルで複数の命令を実行することができることから、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）命令を利用するプロセッサ（ＶＬＩＷプロセッサ）が様々な分野で用いられている。
【０００３】
例えば、画像処理の際に、エッジ検出など、隣接画素間で画素値の比較を行って注目画素の画素値を決定する処理では、複雑な条件判定が必要である。式（１）は、エッジ検出フィルタの処理例を示す。
res=(val>c && (val>b || val==b && (sc==0 || sc==2)))?1:0;      (1)
【０００４】
式（１）における「？」の前において、各英字は引数を示し、数字
は即値を示す。また、「＆＆」、「｜｜」は、「論理積」と「論理和」を夫々示す。また、各等号と不等号は、比較処理を示す。また、式（１）の右辺において、「？」前の部分をＸとすれば、式（１）は、Ｘが真であれば、ｒｅｓの値を１とし、Ｘが偽であれば、ｒｅｓの値を０とする処理を示す。
【０００５】
図１８は、分岐命令を利用して、式（１）に示す処理をＶＬＩＷプロセッサへ実装する際のプログラム例を示す。
【０００６】
また、例えば、分岐命令を利用して、図１９のプログラムが示すように、下記の式（２）に示す処理をＶＬＩＷプロセッサに実装することもできる。
res=((d01==0)&&(d11!=0))&&(((d02!=0)&&(d12==0))||((d00!=0)&&(d10==0)))   (2)
【０００７】
例えば、図１８のプログラムにおける２行目〜５行目、図１９のプログラムにおける２行目〜５行目に示すように、１つの分岐命令（ｂｒｆ）と１つの比較命令（ｃｍｐ）が並列に実行される。そのため、１サイクルで１命令しか実行できないプロセッサより処理効率を高めることができる。
【０００８】
しかしながら、一般的に、分岐命令は、時間がかかるという問題がある。例えば、分岐ペナルティが２であるとした場合、図１８に示すプログラムの実行に９サイクルがかかり、図１９に示すプログラムの実行に１２サイクルがかかってしまう。
【０００９】
ＶＬＩＷプロセッサに関して、様々な視点からの技術が提案されている。
例えば、特許文献１には、プレディケイトレジスタを用いることにより条件分岐を取り除く手法が開示されている。
【００１０】
この手法を適用したＶＬＩＷプロセッサは、１つのＶＬＩＷ命令に含まれる複数の演算命令フィールドの１つ以上の演算命令フィールドに対応して設けられた複数の演算器を有する。各演算器は、対応する１つ以上の演算命令フィールドが示す演算を行う演算回路と、該演算回路の演算を実行するか否かを決定する値を格納するレジスタ（プレディケイトレジスタ）と、予め定められた命令について、その命令の演算結果を評価した値を全ての演算器内の上記レジスタに書き込む格納手段を備える。各演算器内の演算回路は、上記プレディケイトレジスタを指定された演算命令について、当該プレディケイトレジスタに書き込まれた値に応じて当該演算命令を実行するか否かを決定する。
【００１１】
また、特許文献２には、ＶＬＩＷプロセッサに汎用的な積和回路を並列に設け、１サイクルで複雑な条件判定（複合テスト）を行い条件分岐する手法が開示されている。
【００１２】
また、特許文献３には、複数サイクルに分けて演算した複数の条件コードを単一の条件コードセットにまとめる手法が開示されている。
【００１３】
また、特許文献４には、現在の比較命令と前のサイクルの比較命令から生成される状態情報のブール組合せの結果を求める手法が開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平１０−２７１０２号公報
【特許文献２】特開平７−３０２１９９号公報
【特許文献３】特開２００８−１４６５４４号公報
【特許文献４】特表２００３−５２０３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
特許文献１による手法は、プレディケイトレジスタを条件分岐の代わりに利用したものであり、演算器間のレジスタファイルの転送の回数を減らすためには有用であるが、式（１）と式（２）に示すような、階層の構成が複雑な条件判定文の場合には、効率向上の効果が限定されている。
【００１６】
特許文献２による手法は、積和標準形で表すことができるあらゆる条件の組合せを１サイクルで評価できるようにするものであり、画像処理など、条件の組合せがある程度限定されていてもよい場合にはハードウェアが必要以上に肥大化する問題がある。
【００１７】
特許文献３に開示された手法は、複数ビットから成る条件コードセットにより複数の分岐先への分岐を効率的に実現することができるが、例えば、式（１）に示すエッジ検出フィルタのような、分岐先が１つしかない場合には非効率的である。
【００１８】
特許文献４に開示された手法は、現在の比較命令と前のサイクルの比較命令から生成される状態情報のブール組合せの結果を求めることができる。しかし、例えば、式（１）と式（２）に示すような処理は、複数の比較命令の結果の組合せ（例えば論理演算）をする必要があり、特許文献４の手法による効率化が困難である。
【００１９】
１サイクルに複数の命令を実行可能であるＶＬＩＷプロセッサの特性を生かし、小さな回路規模で、式（１）と式（２）が示すような、複雑な条件判定処理を効率良く実行できる技術が望まれている。
【課題を解決するための手段】
【００２０】
本発明の１つの態様は、ＶＬＩＷプロセッサである。該ＶＬＩＷプロセッサは、第１の比較演算器、第２の比較演算器、第１の演算器、第２の演算器、第３の演算器、レジスタを備える。
【００２１】
第１の比較演算器は、第１の比較演算信号と第１の入力信号と第２の入力信号とが入力され、該第１の入力信号と該第２の入力信号に対して第１の比較演算信号が示す比較を行い、該比較の結果を出力する。
【００２２】
第２の比較演算器は、第２の比較演算信号と第３の入力信号と第４の入力信号とが入力され、該第３の入力信号と該第４の入力信号に対して第２の比較演算信号が示す比較を行い、該比較の結果を出力する。
【００２３】
第１の演算器は、第１の制御信号と、第１の比較演算器による比較の結果と、レジスタが既に保持している値とが入力され、第１の制御信号に応じて、第１の比較演算器による比較の結果と、該比較の結果とレジスタの値の論理積と、該比較の結果とレジスタの値の論理和とのいずれか１つを第１の演算結果として出力する。
【００２４】
第２の演算器は、第２の制御信号と、第２の比較演算器による比較の結果と、レジスタが既に保持している値とが入力され、第２の制御信号に応じて、第２の比較演算器による比較の結果と、該比較の結果とレジスタの値の論理積と、該比較の結果とレジスタの値の論理和とのいずれか１つを第２の演算結果として出力する。
【００２５】
第３の演算器は、第３の制御信号と、第１の演算結果と、第２の演算結果とが入力され、第３の制御信号に応じて、第１の演算結果と、第１の演算結果と第２の演算結果の論理積と、第１の演算結果と第２の演算結果の論理和とのいずれか１つを実行結果としてレジスタに出力する。
レジスタは、第３の演算器からの実行結果を新たに保持し、出力する。
【００２６】
本発明の別の態様は、ＶＬＩＷ命令の命令構造である。この命令構造は、第１の比較命令を格納する第１の比較命令フィールドと、第１の合成指定を格納する第１の合成指定フィールドと、第２の比較命令を格納する第２の比較命令フィールドと、第２の合成指定を格納する第２の合成指定フィールドと、第３の合成指定を格納する第３の合成指定フィールドを含む。
【００２７】
第１の合成指定は、第１の比較命令が示す比較の結果と、該比較の結果と１つ前のＶＬＩＷ命令の実行結果の論理積と、該比較の結果と１つ前のＶＬＩＷ命令の実行結果の論理和とのいずれを第１の演算結果とするかを示すものである。
【００２８】
第２の合成指定は、第２の比較命令が示す比較の結果と、該比較の結果と１つ前のＶＬＩＷ命令の実行結果の論理積と、該比較の結果と１つ前のＶＬＩＷ命令の実行結果の論理和とのいずれを第２の演算結果とするかを示すものである。
【００２９】
第３の合成指定は、第１の演算結果と、第１の演算結果と第２の演算結果の論理積と、第１の演算結果と第２の演算結果の論理和とのいずれを今回のＶＬＩＷ命令の実行結果とするかを示すものである。
【００３０】
本発明のさらなる別の態様は、第１の比較命令と、第２の比較命令と、「合成しない」、「論理積」、「論理和」のいずれか１つを示す第１と第２の合成指定と、「論理積」と「論理和」のいずれかを示す第３の合成指定とを含むＶＬＩＷ命令が入力され、レジスタを備えるＶＬＩＷプロセッサにおけるＶＬＩＷ命令の実行方法である。
【００３１】
該実行方法は、第１の合成指定が「合成しない」を示す場合には、第１の比較命令が示す比較の結果を第１の演算結果として出力し、他の場合には、第１の合成指定が示す論理演算を、第１の比較命令が示す比較の結果とレジスタが既に保持している値とに対して行って得た値を第１の演算結果として出力する。
【００３２】
また、第２の合成指定が「合成しない」を示す場合には、第２の比較命令が示す比較の結果を第２の演算結果として出力し、他の場合には、第２の合成指定が示す論理演算を、第２の比較命令が示す比較の結果とレジスタが既に保持している値とに対して行って得た値を第２の演算結果として出力する。
【００３３】
さらに、第３の合成指定が示す論理演算を、第１の演算結果と第２の演算結果に対して行って得た値を今回のＶＬＩＷ命令の実行結果としてレジスタに出力する。レジスタにより、該実行結果を新たに保持し、出力する。
【００３４】
なお、上記態様のＶＬＩＷプロセッサを装置やシステムに置換えて表現したものや、上記態様の命令構造を有するＶＬＩＷ命令や、該ＶＬＩＷ命令を含むプログラムや、該ＶＬＩＷ命令及び上記態様の方法を実行するＶＬＩＷプロセッサなども、本発明の態様としては有効である。
【発明の効果】
【００３５】
本発明にかかる技術によれば、ＶＬＩＷプロセッサにおいて、小さな回路規模で複雑な条件判定処理を効率良く実行することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明にかかる技術の原理を説明するためのＶＬＩＷプロセッサを示す図である。
【図２】図１に示すＶＬＩＷプロセッサが対応するＶＬＩＷ命令の構造を示す図である。
【図３】図２に示すＶＬＩＷ命令における比較命令に含まれる比較演算子の例を示す図である。
【図４】図２に示すＶＬＩＷ命令と図１に示すＶＬＩＷプロセッサにおける各信号との対応関係を示す図である（その１）。
【図５】図２に示すＶＬＩＷ命令と図１に示すＶＬＩＷプロセッサにおける各信号との対応関係を示す図である（その２）。
【図６】本発明の実施の形態にかかるＶＬＩＷプロセッサを示す図である。
【図７】図６に示すＶＬＩＷプロセッサにおける第１の演算器を示す図である。
【図８】図６に示すＶＬＩＷプロセッサにおける第２の比較演算器を示す図である。
【図９】図６に示すＶＬＩＷプロセッサにおける第３の演算器を示す図である。
【図１０】パターンＡの命令の場合に図６に示すＶＬＩＷプロセッサが実行する処理を説明するための図である。
【図１１】パターンＢの命令の場合に図６に示すＶＬＩＷプロセッサが実行する処理を説明するための図である。
【図１２】パターンＣの命令の場合に図６に示すＶＬＩＷプロセッサが実行する処理を説明するための図である。
【図１３】パターンＤの命令の場合に図６に示すＶＬＩＷプロセッサが実行する処理を説明するための図である。
【図１４】式（１）に示す処理を図６に示すＶＬＩＷプロセッサへ実装する際の分割例を示す図である。
【図１５】式（１）に示す処理を図６に示すＶＬＩＷプロセッサへ実装する際のプログラム例を示す図である。
【図１６】式（２）に示す処理を図６に示すＶＬＩＷプロセッサへ実装する際の分割例を示す図である。
【図１７】式（１）に示す処理を図６に示すＶＬＩＷプロセッサへ実装する際のプログラム例を示す図である。
【図１８】式（１）に示す処理を従来のＶＬＩＷプロセッサへの実装例を示す図である。
【図１９】式（２）に示す処理を従来のＶＬＩＷプロセッサへの実装例を示す図である。
【発明を実施するための形態】
【００３７】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００３８】
本発明の具体的な実施の形態を説明する前に、まず、図１〜図５を参照して本発明にかかる技術の原理を説明する。
【００３９】
図１に示すＶＬＩＷプロセッサ１０は、第１の比較演算器１２２、第２の比較演算器１２４、第１の演算器１３０、第２の演算器１４０、第３の演算器１５０、レジスタ５０を備える。第１の比較演算器１２２と第２の比較演算器１２４は、通常のプロセッサに備えられた、算術演算のための加減算器やＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）であってもよい。
【００４０】
第１の比較演算器１２２は、第１の比較演算信号Ｖ１、第１の入力信号Ｖ１１、第２の入力信号Ｖ１２が入力され、第１の入力信号Ｖ１１と第２の入力信号Ｖ１２に対して第１の比較演算信号Ｖ１が示す比較を行い、該比較の結果を出力する。第１の比較演算器１２２による比較の結果を、第１の比較結果ＣＭＰ１という。
【００４１】
第２の比較演算器１２４は、第２の比較演算信号Ｖ２、第３の入力信号Ｖ２１、第４の入力信号Ｖ２２が入力され、第３の入力信号Ｖ２１と第４の入力信号Ｖ２２に対して第２の比較演算信号Ｖ２が示す比較を行い、該比較の結果を出力する。第２の比較演算器１２４による比較の結果を、第２の比較結果ＣＭＰ２という。
【００４２】
第１の演算器１３０は、第１の制御信号ｃｔｒ１と、第１の比較結果ＣＭＰ１と、レジスタ５０が既に保持している値（ＰＲ）とが入力され、第１の制御信号ｃｔｒ１に応じて、第１の比較結果ＣＭＰ１、第１の比較結果ＣＭＰ１とレジスタ５０の値ＰＲの論理積と、第１の比較結果ＣＭＰ１とレジスタの値ＰＲの論理和とのいずれか１つを第１の演算結果ＣＲ１として出力する。
【００４３】
第２の演算器１４０は、第２の制御信号ｃｔｒ２と、第２の比較結果ＣＭＰ２と、レジスタ５０の値ＰＲとが入力され、第２の制御信号ｃｔｒ２に応じて、第２の比較結果ＣＭＰ２、第２の比較結果ＣＭＰ２とレジスタ５０の値ＰＲの論理積と、第２の比較結果ＣＭＰ２とレジスタの値ＰＲの論理和とのいずれか１つを第２の演算結果ＣＲ２として出力する。
【００４４】
第３の演算器１５０は、第３の制御信号ｃｔｒ３と、第１の演算結果ＣＲ１と、第２の演算結果ＣＲ２とが入力され、第３の制御信号ｃｔｒ３に応じて、第１の演算結果ＣＲ１と、第１の演算結果ＣＲ１と第２の演算結果ＣＲ２の論理積と、第１の演算結果ＣＲ１と第２の演算結果ＣＲ２の論理和とのいずれか１つを実行結果（ＰＲ＋）としてレジスタ５０に出力する。
【００４５】
レジスタ５０は、第３の演算器１５０からの実行結果ＰＲ＋を新たに保持し、必要に応じて出力する。レジスタ５０に保持していた値ＰＲは、この実行結果ＰＲ＋により上書される。
【００４６】
ＶＬＩＷプロセッサ１０は、図２に示す構造のＶＬＩＷ命令を実行することができる。ここで、図２〜図３を参照して、ＶＬＩＷプロセッサ１０が実行するＶＬＩＷ命令の構造を説明する。
【００４７】
図２に示すように、該ＶＬＩＷ命令は、第１の比較命令ＣＯＭＰＡＲＥ１を格納する第１比較命令フィールド、該第１の比較命令ＣＯＭＰＡＲＥ１に対応する第１の合成指定ＣＭＢ１を格納する第１の合成指定フィールド、第２の比較命令ＣＯＭＰＡＲＥ２を格納する第２の比較命令フィールド、該第２の比較命令ＣＯＭＰＡＲＥ２に対応する第２の合成指定ＣＭＢ２を格納する第２の合成指定フィールド、第３の合成指定ＣＭＢ３を格納する第３の合成指定フィールド含む。
【００４８】
第１の比較命令ＣＯＭＰＡＲＥ１と第２の比較命令ＣＯＭＰＡＲＥ２は、通常の比較命令であり、２つの入力オペランドと１つの比較演算子ｏｐにより構成される。２つの入力オペランドは、該１つの比較演算子ｏｐが示す比較演算の比較対象に該当する。
【００４９】
図３は、第１の比較命令ＣＯＭＰＡＲＥ１と第２の比較命令ＣＯＭＰＡＲＥ２に含まれる比較演算子ｏｐの例を示す。図示のように、比較演算子ｏｐは、「ＬＴ」、「ＬＥ」、「ＥＱ」、「ＮＥ」、「ＧＴ」、「ＧＥ」などがあり、夫々「Ｌｉｔｔｌｅ  Ｔｈａｎ」、「Ｌｉｔｔｌｅ  Ｔｈａｎ  ｏｒ  Ｅｑｕａｌ  Ｔｏ」、「Ｅｑｕａｌ  Ｔｏ」、「Ｎｏｔ  Ｅｑｕａｌ  Ｔｏ」、「Ｇｒｅａｔｅｒ  Ｔｈａｎ」、「Ｇｒｅａｔｅｒ  Ｔｈａｎ  ｏｒ  Ｅｑｕａｌ  Ｔｏ」を意味する。
【００５０】
第１の比較命令ＣＯＭＰＡＲＥ１による比較の結果は、図１に示すＶＬＩＷプロセッサ１０における第１の比較結果ＣＭＰ１に対応し、第２の比較命令ＣＯＭＰＡＲＥ２による比較の結果は、図１に示すＶＬＩＷプロセッサ１０における第２の比較結果ＣＭＰ２に対応する。また、第１の比較命令ＣＯＭＰＡＲＥ１と第１の合成指定ＣＭＢ１により決まる演算結果は、ＶＬＩＷプロセッサ１０における第１の演算結果ＣＲ１に対応し、第２の比較命令ＣＯＭＰＡＲＥ２と第２の合成指定ＣＭＢ２により決まる演算結果は、ＶＬＩＷプロセッサ１０における第２の演算結果ＣＲ２に対応する。今回のＶＬＩＷ命令の実行結果は、ＶＬＩＷプロセッサ１０における実行結果ＰＲ＋に対応し、１つ前のＶＬＩＷ命令の実行結果は、ＶＬＩＷプロセッサ１０における実行結果ＰＲに対応する。これに関して、後に図４と図５を参照して詳細に説明する。
【００５１】
第１の合成指定ＣＭＢ１は、第１の比較命令ＣＯＭＰＡＲＥ１が示す比較の結果（第１の比較結果ＣＭＰ１）と、該第１の比較結果ＣＭＰ１と実行結果ＰＲの論理積と、該第１の比較結果ＣＭＰ１と実行結果ＰＲの論理和とのいずれを演算結果（第１の演算結果ＣＲ１）とするかを示す。
【００５２】
第２の合成指定ＣＭＢ２は、第２の比較命令ＣＯＭＰＡＲＥ２が示す比較の結果（第２の比較結果ＣＭＰ２）と、該第２の比較結果ＣＭＰ２と実行結果ＰＲの論理積と、該第２の比較結果ＣＭＰ２と実行結果ＰＲの論理和とのいずれを演算結果（第２の演算結果ＣＲ２）とするかを示す。
【００５３】
第３の合成指定ＣＭＢ３は、第１の演算結果ＣＲ１と第２の演算結果ＣＲ２の論理積と、第１の演算結果ＣＲ１と第２の演算結果ＣＲ２の論理和とのいずれを今回のＶＬＩＷ命令の実行結果（実行結果ＰＲ＋）とするかを示す。
【００５４】
図４と図５は、図２に示すＶＬＩＷ命令の各構成要素の具体例と、ＶＬＩＷプロセッサ１０が夫々の具体例のＶＬＩＷ命令を実行する際における各信号との対応関係を示す。図４は、ＶＬＩＷ命令に関して、第３の合成指定ＣＭＢ３を除いた部分を示し、ＶＬＩＷプロセッサ１０に関しては、第１の制御信号ｃｔｒ１と第２の制御信号ｃｔｒ２を示す。図５は、ＬＩＷ命令とＶＬＩＷプロセッサ１０に、第３の合成指定ＣＭＢ３と第３の制御信号ｃｔｒ３を示す。
【００５５】
第１の比較命令ＣＯＭＰＡＲＥ１は、前述したように、通常の比較命令と同様に、１つの比較演算子と２つの入力オペランドから構成される。ＶＬＩＷプロセッサ１０において、第１の比較命令ＣＯＭＰＡＲＥ１に含まれる比較演算子が示す比較演算を指示する信号は、第１の比較演算信号Ｖ１として第１の比較演算器１２２に入力される。また、第１の比較命令ＣＯＭＰＡＲＥ１に含まれる２つのオペランドは、第１の入力信号Ｖ１１と第２の入力信号Ｖ１２として、第１の比較演算器１２２に入力される。
【００５６】
第１の合成指定ＣＭＢ１は、「合成しない」、「論理積（ＡＮＤ）」、「論理和（ＯＲ）」のいずれかを示す。「合成しない」は、第１の比較結果ＣＭＰ１を第１の演算結果ＣＲ１とすることを示す。なお、「合成をしない」を示す第１の合成指定ＣＭＢ１は、「合成をしない」を示すことができれば、如何なる文字であってもよく、図４の例では、空である第１の合成指定ＣＭＢ１により、「合成しない」を示す。
【００５７】
第１の合成指定ＣＭＢ１が「合成しない」を示すときに、ＶＬＩＷプロセッサ１０において、第１の比較結果ＣＭＰ１を第１の演算結果ＣＲ１として出力するよう指示第１の制御信号ｃｔｒ１が第１の演算器１３０に入力される。
【００５８】
第１の合成指定ＣＭＢ１が「合成しない」以外、すなわち論理積と論理和のいずれかの論理演算を示すときに、ＶＬＩＷプロセッサ１０において、第１の比較結果ＣＭＰ１と前回の実行結果ＰＲに対して、第１の合成指定ＣＭＢ１が示す論理演算を行って得た結果を第１の演算結果ＣＲ１として出力するよう指示する第１の制御信号ｃｔｒ１が第１の演算器１３０に入力される。
【００５９】
第２の比較命令ＣＯＭＰＡＲＥ２も、前述したように、通常の比較命令と同様に、１つの比較演算子と２つの入力オペランドから構成される。ＶＬＩＷプロセッサ１０において、第２の比較命令ＣＯＭＰＡＲＥ２に含まれる比較演算子が示す比較演算を指示する信号は、第２の比較演算信号Ｖ２として第２の比較演算器１２４に入力される。また、第２の比較命令ＣＯＭＰＡＲＥ２に含まれる２つのオペランドは、第３の入力信号Ｖ２１と第４の入力信号Ｖ２２として、第２の比較演算器１２４に入力される。
【００６０】
第２の合成指定ＣＭＢ２は、第１の合成指定ＣＭＢ１と同様に、「合成しない」、「論理積（ＡＮＤ）」、「論理和（ＯＲ）」のいずれかを示す。「合成しない」は、第２の比較結果ＣＭＰ２を第２の演算結果ＣＲ２とすることを示す。なお、「合成をしない」を示す第２の合成指定ＣＭＢ２も、「合成をしない」を示すことができれば、如何なる文字であってもよく、図４の例では、空である第２の合成指定ＣＭＢ２により、「合成しない」を示す。
【００６１】
第２の合成指定ＣＭＢ２が「合成しない」を示すときに、ＶＬＩＷプロセッサ１０において、第２の比較結果ＣＭＰ２を第２の演算結果ＣＲ２として出力するよう指示第２の制御信号ｃｔｒ２が第２の演算器１４０に入力される。
【００６２】
第２の合成指定ＣＭＢ２が「合成しない」以外、すなわち論理積と論理和のいずれかの論理演算を示すときに、ＶＬＩＷプロセッサ１０において、第２の比較結果ＣＭＰ２と前回の実行結果ＰＲに対して、第２の合成指定ＣＭＢ２が示す論理演算を行って得た結果を第２の演算結果ＣＲ２として出力するよう指示する第２の制御信号ｃｔｒ２が第２の演算器１４０に入力される。
【００６３】
第３の合成指定ＣＭＢ３は、「論理積（ＡＮＤ）」、「論理和（ＯＲ）」のいずれかの論理演算を示す。ＶＬＩＷプロセッサ１０において、第１の演算結果ＣＲ１と第２の演算結果ＣＲ２に対して、第３の合成指定ＣＭＢ３が示す論理演算の結果を実行結果ＰＲ＋として出力するように指示する第３の制御信号ｃｔｒ３が第３の演算器１５０に入力される。
【００６４】
なお、第２の比較命令フィールドと、第３の合成指定フィールドは、空である場合もある。図５に示すように、ＣＯＭＰＡＲＥ命令が１つしかないとき、すなわち第２に比較命令フィールドが空であるときに、第３の合成指定ＣＭＢ３が参照されず、第１の演算結果ＣＲ１を今回の命令の実行結果ＰＲ＋として出力するよう指示する第３の制御信号ｃｔｒ３が第３の演算器１５０に入力される。また、第３の合成指定ＣＭＢ３が無いときにも同様に、第１の演算結果ＣＲ１を今回の命令の実行結果ＰＲ＋として出力するよう指示する第３の制御信号ｃｔｒ３が第３の演算器１５０に入力される。この２つの場合において、第２の比較演算器１２４、第２の演算器１４０による演算がなされない。
【００６５】
図２に示すＶＬＩＷ命令に対応するＶＬＩＷプロセッサ１０によれば、小さな回路規模で、複数の比較処理が含まれる条件判定処理を効率良く行うことができる。これに関して、以下の実施の形態を用いて詳細に説明する。
【００６６】
図６は、本発明の実施の形態にかかるＶＬＩＷプロセッサ１００を示す。重複を避けるため、図６において、図１に示す構成要素（信号を含む）と同様のものについて同様の符号を付与しており、これらの構成要素に関しては、必要があるときにのみ説明する。
【００６７】
ＶＬＩＷプロセッサ１００は、制御部１１０、第１の比較演算器１２２、第２の比較演算器１２４、第１の演算器１３０、第２の演算器１４０、第３の演算器１５０、プレディケイトレジスタ１６０を備える。
【００６８】
制御部１１０は、入力されたＶＬＩＷ命令を格納する命令レジスタ（図示せず）を有し、該命令レジスタに格納されたＶＬＩＷ命令に基づいて、第１の比較演算信号Ｖ１、第１の入力信号Ｖ１１、第２の入力信号Ｖ１２、第２の比較演算信号Ｖ２、第３の入力信号Ｖ２１、第４の入力信号Ｖ２２、第１の制御信号ｃｔｒ１、第２の制御信号ｃｔｒ２、第３の制御信号ｃｔｒ３を出力する。
【００６９】
具体的には、制御部１１０は、第１の比較命令ＣＯＭＰＡＲＥ１に含まれる比較演算子と２つのオペランドを夫々示す第１の比較演算信号Ｖ１、第１の入力信号Ｖ１１、第２の入力信号Ｖ１２を第１の比較演算器１２２に出力する。
【００７０】
また、制御部１１０は、第２の比較命令ＣＯＭＰＡＲＥ２に含まれる比較演算子と２つのオペランドを夫々示す第２の比較演算信号Ｖ２、第３の入力信号Ｖ２１、第４の入力信号Ｖ２２を第２の比較演算器１２４に出力する。
【００７１】
また、制御部１１０は、第１の合成指定ＣＭＢ１に応じた第１の制御信号ｃｔｒ１、第２の合成指定ＣＭＢ２に応じた第２の制御信号ｃｔｒ２、第３の合成指定ＣＭＢ３に応じた第３の制御信号ｃｔｒ３を、第１の演算器１３０、第２の演算器１４０、第３の演算器１５０に夫々出力する。なお、第２の比較命令ＣＯＭＰＡＲＥ２及び第２の合成指定ＣＭＢ２が空であるときと、第３の合成指定ＣＭＢ３が空であるときのいずれか一方に該当する場合には、制御部１１０は、第３の合成指定ＣＭＢ３を「合成しない」であると理解してその旨を示す第３の制御信号ｃｔｒ３信号を第３の演算器１５０に出力する。
【００７２】
第１の比較演算器１２２は、比較演算を行って第１の比較結果ＣＭＰ１を第１の演算器１３０に出力する。第２の比較演算器１２４は、比較演算を行って第２の比較結果ＣＭＰ２を第２の演算器１４０に出力する。
【００７３】
図７は、第１の演算器１３０を示す。第１の演算器１３０は、ＡＮＤゲート１３２、ＯＲゲート１３４、セレクタ１３６を備える。
【００７４】
ＡＮＤゲート１３２とＯＲゲート１３４は、第１の比較演算器１２２からの第１の比較結果ＣＭＰ１と、プレディケイトレジスタ１６０からの実行結果ＰＲが入力され、夫々論理積と論理和をセレクタ１３６に出力する。
【００７５】
セレクタ１３６には、ＡＮＤゲート１３２からの論理積、ＯＲゲート１３４からの論理和、第１の比較結果ＣＭＰ１、制御部１１０からの第１の制御信号ｃｔｒ１が入力され、第１の制御信号ｃｔｒ１に従って、入力された３つの値のうちの１つを選択して第３の演算器１５０に出力する。セレクタ１３６の出力は、第１の演算結果ＣＲ１となる。
【００７６】
具体的には、第１の演算器１３０は、第１の制御信号ｃｔｒ１が「合成しない」を示すときに、第１の比較結果ＣＭＰ１を第１の演算結果ＣＲ１として出力する。一方、第１の制御信号ｃｔｒ１が「論理積」を示すときには、ＡＮＤゲート１３２の出力を第１の演算結果ＣＲ１として出力し、第１の制御信号ｃｔｒ１が「論理和」を示すときには、ＯＲゲート１３４の出力を第１の演算結果ＣＲ１として出力する。
【００７７】
図８は、第２の演算器１４０を示す。第２の演算器１４０は、ＡＮＤゲート１４２、ＯＲゲート１４４、セレクタ１４６を備える。
【００７８】
ＡＮＤゲート１４２とＯＲゲート１４４は、第２の比較演算器１２４からの第２の比較結果ＣＭＰ２と、プレディケイトレジスタ１６０からの実行結果ＰＲが入力され、夫々論理積と論理和をセレクタ１４６に出力する。
【００７９】
セレクタ１４６には、ＡＮＤゲート１４２からの論理積、ＯＲゲート１４４からの論理和、第２の比較結果ＣＭＰ２、制御部１１０からの第２の制御信号ｃｔｒ２が入力され、第２の制御信号ｃｔｒ２に従って、入力された３つの値のうちの１つを選択して第３の演算器１５０に出力する。セレクタ１４６の出力は、第２の演算結果ＣＲ２となる。
【００８０】
具体的には、第２の演算器１４０は、第２の制御信号ｃｔｒ２が「合成しない」を示すときに、第２の比較結果ＣＭＰ２を第２の演算結果ＣＲ２として出力する。一方、第２の制御信号ｃｔｒ２が「論理積」を示すときには、ＡＮＤゲート１４２の出力を第２の演算結果ＣＲ２として出力し、第２の制御信号ｃｔｒ２が「論理和」を示すときには、ＯＲゲート１４４の出力を第２の演算結果ＣＲ２として出力する。
【００８１】
図９は、第３の演算器１５０を示す。第３の演算器１５０は、ＡＮＤゲート１５２、ＯＲゲート１５４、セレクタ１５６を備える。
【００８２】
ＡＮＤゲート１５２とＯＲゲート１５４は、第１の演算器１３０からの第１の演算結果ＣＲ１と第２の演算器１４０からの第２の演算結果ＣＲ２が入力され、夫々論理積と論理和をセレクタ１５６に出力する。
【００８３】
セレクタ１５６には、ＡＮＤゲート１５２からの論理積、ＯＲゲート１５４からの論理和、第１の演算結果ＣＲ１、制御部１１０からの第３の制御信号ｃｔｒ３が入力され、第３の制御信号ｃｔｒ３に従って、入力された３つの値のうちの１つを選択してプレディケイトレジスタ１６０に出力する。セレクタ１５６の出力は、実行結果ＰＲ＋となる。
【００８４】
具体的には、第３の演算器１５０は、第３の制御信号ｃｔｒ３が「合成しない」を示すときに、第１の演算結果ＣＲ１を実行結果ＰＲ＋として出力する。一方、第３の制御信号ｃｔｒ３が「論理積」を示すときには、ＡＮＤゲート１５２の出力を実行結果ＰＲ＋として出力し、第３の制御信号ｃｔｒ３が「論理和」を示すときには、ＯＲゲート１５４の出力を実行結果ＰＲ＋として出力する。
【００８５】
プレディケイトレジスタ１６０は、第３の演算器１５０からの最新の実行結果ＰＲ＋を保持する。すなわち、今回のＶＬＩＷ命令の実行結果の実行結果ＰＲ＋は、次のＶＬＩＷ命令の実行時には、実行結果ＰＲとなる。
【００８６】
図１０〜図１３を参照して、図２に示すＶＬＩＷ命令における各比較命令と合成指定の組合せのパターン毎に、ＶＬＩＷプロセッサ１００が実行する処理を説明する。
【００８７】
＜パターンＡ＞
パターンＡは、ＶＬＩＷ命令に第１の比較命令ＣＯＭＰＡＲＥ１と第２の比較命令ＣＯＭＰＡＲＥ２が共にあると共に、全ての合成指定（ＣＭＢ１、ＣＭＢ２、ＣＭＢ３）が、「論理積」と「論理和」のいずれかを示すパターンである。パターンＡは、パターンＡ（１）〜パターンＡ（４）の４つが含まれる。
【００８８】
図１０に示すように、パターンＡ（１）は、全ての合成指定が「ＡＮＤ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＡＮＤ  ＣＯＭＰＡＲＥ２＿ＡＮＤ  ＡＮＤ」の場合である。
【００８９】
該パターンＡ（１）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と第２の比較結果ＣＭＰ２の論理積と、実行結果ＰＲ（１つ前の実行結果）との論理積である。
【００９０】
パターンＡ（２）は、全ての合成指定が「ＯＲ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＯＲ  ＣＯＭＰＡＲＥ２＿ＯＲ  ＯＲ」の場合である。
【００９１】
該パターンＡ（２）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と第２の比較結果ＣＭＰ２の論理和と、実行結果ＰＲとの論理和である。
【００９２】
パターンＡ（３）は、第１の合成指定ＣＭＢ１と第２の合成指定ＣＭＢ２が共に「ＡＮＤ」を示し、第３の合成指定ＣＭＢ３が「ＯＲ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＡＮＤ  ＣＯＭＰＡＲＥ２＿ＡＮＤ  ＯＲ」の場合である。
【００９３】
該パターンＡ（３）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と第２の比較結果ＣＭＰ２の論理和と、実行結果ＰＲとの論理積である。
【００９４】
パターンＡ（４）は、第１の合成指定ＣＭＢ１と第２の合成指定ＣＭＢ２が共に「ＯＲ」を示し、第３の合成指定ＣＭＢ３が「ＡＮＤ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＯＲ  ＣＯＭＰＡＲＥ２＿ＯＲ  ＡＮＤ」の場合である。
【００９５】
該パターンＡ（４）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と第２の比較結果ＣＭＰ２の論理積と、実行結果ＰＲとの論理和である。
【００９６】
すなわち、該パターンＡの命令の場合に、ＶＬＩＷプロセッサ１００は、１サイクルで、２つの比較命令の実行と、第１の比較命令が示す比較の結果と実行結果ＰＲとの論理演算と、第２の比較命令が示す比較の結果と実行結果ＰＲとの論理演算と、該２つの論理演算の結果のさらなる論理演算を行うことができる。
【００９７】
＜パターンＢ＞
パターンＢは、ＶＬＩＷ命令に第１の比較命令ＣＯＭＰＡＲＥ１と第２の比較命令ＣＯＭＰＡＲＥ２が共にあり、第１の合成指定ＣＭＢ１と第２の合成指定ＣＭＢ２のいずれか一方が空であり、第３の合成指定ＣＭＢ３が「論理積」と「論理和」のいずれかを示すパターンである。パターンＢは、パターンＢ（１）〜パターンＢ（４）の４つが含まれる。
【００９８】
図１１に示すように、パターンＢ（１）は、第１の合成指定ＣＭＢ１が「ＡＮＤ」を示し、第２の合成指定ＣＭＢ２が空であり、第３の合成指定ＣＭＢ３が「ＯＲ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＡＮＤ  ＣＯＭＰＡＲＥ２＿    ＯＲ」の場合である。
【００９９】
該パターンＢ（１）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と実行結果ＰＲとの論理積と、第２の比較結果ＣＭＰ２との論理和である。
【０１００】
パターンＢ（２）は、第１の合成指定ＣＭＢ１が空であり、第２の合成指定ＣＭＢ２が「ＡＮＤ」を示し、第３の合成指定ＣＭＢ３が「ＯＲ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿    ＣＯＭＰＡＲＥ２＿ＡＮＤ  ＯＲ」の場合である。
【０１０１】
該パターンＢ（２）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第２の比較結果ＣＭＰ２と実行結果ＰＲの論理積と、第１の比較結果ＣＭＰ１との論理和である。
【０１０２】
パターンＢ（３）は、第１の合成指定ＣＭＢ１が「ＯＲ」であり、第２の合成指定ＣＭＢ２が空であり、第３の合成指定ＣＭＢ３が「ＡＮＤ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＯＲ  ＣＯＭＰＡＲＥ２＿    ＡＮＤ」の場合である。
【０１０３】
該パターンＢ（３）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と実行結果ＰＲとの論理和と、第２の比較結果ＣＭＰ２との論理積である。
【０１０４】
パターンＢ（４）は、第１の合成指定ＣＭＢ１が空であり、第２の合成指定ＣＭＢ２が「ＯＲ」を示し、第３の合成指定ＣＭＢ３が「ＡＮＤ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿    ＣＯＭＰＡＲＥ２＿ＯＲ  ＡＮＤ」の場合である。
【０１０５】
該パターンＢ（４）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第２の比較結果ＣＭＰ２と実行結果ＰＲの論理積と、第１の比較結果ＣＭＰ１との論理和である。
【０１０６】
すなわち、該パターンＢの命令の場合に、ＶＬＩＷプロセッサ１００は、１サイクルで、２つの比較命令の実行と、片方の比較命令が示す比較の結果と実行結果ＰＲの論理演算と、該論理演算の結果と他方の比較命令の実行結果の更なる論理演算を行うことができる。
【０１０７】
＜パターンＣ＞
パターンＣは、ＶＬＩＷ命令に第１の比較命令ＣＯＭＰＡＲＥ１と第２の比較命令ＣＯＭＰＡＲＥ２が共にあり、第１の合成指定ＣＭＢ１と第２の合成指定ＣＭＢ２のいずれも空であり、第３の合成指定ＣＭＢ３が「論理積」と「論理和」のいずれかを示すパターンである。パターンＣは、パターンＣ（１）〜パターンＣ（２）の４つが含まれる。
【０１０８】
図１２に示すように、パターンＣ（１）は、第３の合成指定ＣＭＢ３が「ＡＮＤ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿    ＣＯＭＰＡＲＥ２＿    ＡＮＤ」の場合である。
【０１０９】
該パターンＣ（１）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と第２の比較結果ＣＭＰ２の論理積である。
【０１１０】
パターンＣ（２）は、第３の合成指定ＣＭＢ３が「ＯＲ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿    ＣＯＭＰＡＲＥ２＿    ＯＲ」の場合である。
【０１１１】
該パターンＣ（２）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と第２の比較結果ＣＭＰ２の論理和である。
【０１１２】
すなわち、該パターンＣの命令の場合に、ＶＬＩＷプロセッサ１００は、１サイクルで、２つの比較命令の実行と、該２つの比較命令が夫々示す比較の結果の論理演算を行うことができる。
【０１１３】
＜パターンＤ＞
上述したパターンＡ〜Ｃのいずれの場合においても、ＶＬＩＷ命令に２つの比較命令が含まれる。本パターンＤは、１つの比較命令（第１の比較命令ＣＯＭＰＡＲＥ１）のみを含むＶＬＩＷ命令の場合である。パターンＤは、パターンＤ（１）〜パターンＤ（３）の３つが含まれる。
【０１１４】
図１３に示すように、パターンＤ（１）は、第１の比較命令ＣＯＭＰＡＲＥ１に対応する第１の合成指定ＣＭＢ１が「ＡＮＤ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＡＮＤ」の場合である。
【０１１５】
該パターンＤ（１）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と実行結果ＰＲの論理積である。
【０１１６】
パターンＤ（２）は、第１の比較命令ＣＯＭＰＡＲＥ１に対応する第１の合成指定ＣＭＢ１が「ＯＲ」を示すＶＬＩＷ命令「ＣＯＭＰＡＲＥ１＿ＯＲ」の場合である。
【０１１７】
該パターンＤ（２）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１と実行結果ＰＲの論理和である。
【０１１８】
パターンＤ（３）は、第１の比較命令ＣＯＭＰＡＲＥ１に対応する第１の合成指定ＣＭＢ１が空であるＶＬＩＷ命令「ＣＯＭＰＡＲＥ１」の場合である。
【０１１９】
該パターンＤ（３）のときに、ＶＬＩＷプロセッサ１００が得た実行結果ＰＲ＋は、第１の比較結果ＣＭＰ１である。
【０１２０】
すなわち、該パターンＤの命令の場合に、ＶＬＩＷプロセッサ１００は、１サイクルで、１つの比較命令の実行を行うことができる。
【０１２１】
ここで、ＶＬＩＷプロセッサ１００への実装例を説明する。なお、以下において、プログラムの具体例の中で、分かりやすいように、「論理積」と「論理和」を示す第３の合成指定ＣＭＢ３を夫々「Ｆａｎｄ」と「Ｆｏｒ」で表わす。また、各プログラムの例において、１ラインは１サイクルの処理を示す。
【０１２２】
図１４に示すように、式（１）が示す処理を、５つの比較演算Ａ１〜Ａ５、４つの論理演算Ｂ１〜Ｂ４、処理の結果をセットするＣ１に分割することができる。本実施の形態におけるＶＬＩＷ命令及びＶＬＩＷプロセッサ１００によれば、１サイクルにおいて、２つの比較命令の並列実行、夫々の比較命令が示す比較の結果と１つ前の実行結果ＰＲ（プログラムの視点からは１ライン前の処理結果）との論理演算、２つの論理演算のさらなる論理演算が可能であるため、式（１）に示す処理を図１４に示すように分割し、分岐命令を使用せずにＶＬＩＷプロセッサ１００へ実装することができる。
【０１２３】
図１５は、式（１）に示す処理をＶＬＩＷプロセッサ１００へ実装する際のプログラムの例を示す。
【０１２４】
該プログラムの１ライン目が示す処理は、第１の比較「ＳＣ＝＝０」と、第２の比較「ＳＣ＝＝２」を並列に行うと共に、２つの比較結果を論理和演算して、該論理和演算の結果をプレディケイトレジスタ１６０に格納する処理である。なお、２つの「ｃｏｍｐａｒｅ」は、第１の比較命令と第２の比較命令であり、第１の合成指定ＣＭＢ１と第２の合成指定ＣＭＢ２のいずれも空であり、「合成をしない」を示す。これは、図１２に示すパターンＣ（２）の処理である。
【０１２５】
２ライン目が示す処理は、第１の比較「ｖａｌ＝＝ｂ」と、第２の比較「ｖａｌ＞ｂ」を並列に実行すると共に、第１の比較結果と１ライン目の実行結果（プレディケイトレジスタ１６０の値）の論理積と、第２の比較結果との論理和を得てプレディケイトレジスタ１６０に格納する処理である。これは、図１１に示すパターンＢ（１）の処理である。
【０１２６】
３ライン目が示す処理は、第１の比較（ｖａｌ＞ｃ）を実行すると共に、第１の比較結果と２ライン目の実行結果との論理積を得てプレディケイトレジスタ１６０に格納する処理である。これは、図１３に示すパターンＤ（１）の処理である。
【０１２７】
４ライン目が示す処理は、プレディケイトレジスタ１６０の値に応じて引数ｒｅｓに1を格納する命令「ｍｓｅｔ」を実行する処理である。
【０１２８】
このように、本実施の形態のＶＬＩＷプロセッサ１００によれば、式（１）が示す処理を４サイクルで完了することができる。
【０１２９】
前述したように、式（１）が示す処理を従来のＶＬＩＷプロセッサに分岐命令により実装する際に、分岐ペナルティを２サイクルである場合には、９サイクルが必要である（図１８）。
【０１３０】
また、図１６は、式（２）が示す処理を分割した態様を示す。図示のように、式（２）が示す処理を、６つの比較演算Ａ１〜Ａ６、５つの論理演算Ｂ１〜Ｂ５、処理の結果をセットする処理Ｃ１に分割することができる。
【０１３１】
図１７は、式（２）が示す処理を図１６に示すように分割して、ＶＬＩＷプロセッサ１００へ実装する際のプログラムの例を示す。
【０１３２】
該プログラムの１ライン目が示す処理は、第１の比較「ｄ０２≠０」と、第２の比較「ｄ１２＝＝０」を並列に行うと共に、２つの比較結果を論理積演算して、該論理積演算の結果をプレディケイトレジスタ１６０に格納する処理である。これは、図１２に示すパターンＣ（１）の処理である。
【０１３３】
２ライン目が示す処理は、第１の比較「ｄ００≠０」と、第２の比較「ｄ１０＝０」を並列に実行すると共に、第１の比較結果と１ライン目の実行結果の論理和と、第２の比較結果と１ライン目の実行結果の論理和との論理積を得てプレディケイトレジスタ１６０に格納する処理である。これは、図１０に示すパターンＡ（４）の処理である。
【０１３４】
３ライン目が示す処理は、第１の比較（ｄ１１≠０）と、第２の比較（ｄ０１＝０）を並列に実行すると共に、第１の比較結果と２ライン目の実行結果の論理積と、第２の比較結果と２ライン目の実行結果の論理積との論理積を得てプレディケイトレジスタ１６０に格納する処理である。これは、図１０に示すパターンＡ（１）の処理である。
【０１３５】
４ライン目が示す処理は、プレディケイトレジスタ１６０の値に応じて引数ｒｅｓに1を格納する命令「ｍｓｅｔ」を実行する処理である。
【０１３６】
このように、本実施の形態のＶＬＩＷプロセッサ１００によれば、式（２）が示す処理を４サイクルで完了することができる。
【０１３７】
前述したように、式（２）に示す処理を従来のＶＬＩＷプロセッサに分岐命令により実行する際に、分岐ペナルティを２サイクルである場合には、１２サイクルが必要である（図１９）。
【０１３８】
このように、本実施の形態のＶＬＩＷプロセッサ１００によれば、複数の比較処理が含まれる条件判定処理を効率良く行うことができる。
【０１３９】
本願発明者は、画像に対するエッジ検出処理における条件判定処理をＶＬＩＷプロセッサ１００に実行させた結果、通常のＶＬＩＷプロセッサの２倍ほどの速度を得ることを確認した。
【０１４０】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１４１】
例えば、ＶＬＩＷプロセッサ１００において、最新の実行結果ＰＲ＋を保持するレジスタとしてプレディケイトレジスタ１６０が用いられている。一般的に、プレディケイトレジスタは１ビットであり、汎用レジスタは１６ビットまたは３２ビットである。ＶＬＩＷプロセッサ１００において、ＶＬＩＷ命令の実行結果が１ビットであるため、プレディケイトレジスタ１６０を用いることにより、さらに回路規模を抑制することができる。勿論、最新の実行結果ＰＲ＋を保持するレジスタとして汎用レジスタを用いてもよい。
【０１４２】
また、例えば、上述したように、１つの比較命令のみを実行する場合には、第３の合成指定ＣＭＢ３が空であってもよい。この場合、第３の合成指定フィールドを空にせず、他の命令の即値フィールドなどの別の用途に用いてもよい。
【符号の説明】
【０１４３】
１０  ＶＬＩＷプロセッサ
５０  レジスタ
１００  ＶＬＩＷプロセッサ
１１０  制御部
１２２  第１の比較演算器
１２４  第２の比較演算器
１３０  第１の演算器
１３２  ＡＮＤゲート
１３４  ＯＲゲート
１３６  セレクタ
１４０  第２の演算器
１４２  ＡＮＤゲート
１４４  ＯＲゲート
１４６  セレクタ
１５０  第３の演算器
１５２  ＡＮＤゲート
１５４  ＯＲゲート
１５６  セレクタ
１６０  プレディケイトレジスタ
ｃｔｒ１  第１の制御信号
ｃｔｒ２  第２の制御信号
ｃｔｒ３  第３の制御信号
ＣＯＭＰＡＲＥ１  第１の比較命令
Ｅ２  第２の比較命令
ＣＭＢ１  第１の合成指定
ＣＭＢ２  第２の合成指定
ＣＭＢ３  第３の合成指定
ＣＭＰ１  第１の比較結果
ＣＭＰ２  第２の比較結果
ＣＲ１  第１の演算結果
ＣＲ２  第２の演算結果
ＰＲ  前回の実行結果
ＰＲ＋  今回の実行結果
Ｖ１  第１の比較演算信号
Ｖ１１  第１の入力信号
Ｖ１２  第２の入力信号
Ｖ２  第２の比較演算信号
Ｖ２１  第３の入力信号
Ｖ２２  第４の入力信号
【図１】
0005813484.tif 000002
【図２】
0005813484.tif 000003
【図３】
0005813484.tif 000004
【図４】
0005813484.tif 000005
【図５】
0005813484.tif 000006
【図６】
0005813484.tif 000007
【図７】
0005813484.tif 000008
【図８】
0005813484.tif 000009
【図９】
0005813484.tif 000010
【図１０】
0005813484.tif 000011
【図１１】
0005813484.tif 000012
【図１２】
0005813484.tif 000013
【図１３】
0005813484.tif 000014
【図１４】
0005813484.tif 000015
【図１５】
0005813484.tif 000016
【図１６】
0005813484.tif 000017
【図１７】
0005813484.tif 000018
【図１８】
0005813484.tif 000019
【図１９】
0005813484.tif 000020