(57)【要約】【課題】条件分岐や最大値演算または最小値演算を高速に実行可能な演算プロセッサを提供すること。【解決手段】各プロセッサエレメント１３１〜１３ｎの命令実行部１０は、データ入力ポート２００，２０１から入力されたデータの大小を比較し、命令コード２０３の入力値を基に、前記比較結果の出力値とフラグレジスタ８１の値とのいずれか１つを選択し、この結果に基づいて、前記データ入力ポート２００，２０１から入力されたデータの中から１つを選択してデータ出力ポート２０４から出力する。これにより、例えば、２つの数ｒ０，ｒ１のうちの大きい方の値を求め、その結果をｒ２に格納する処理“ｒ２＝ｍａｘ（ｒ０，ｒ１）”の実行手順は、“ＭＡＸ　ｒ２，ｒ０，ｒ１”となり、１命令ステップで実行可能となる。但し、ＭＡＸ命令は最大値命令（２つの数ｒ０，ｒ１のうちの大きい方の値をｒ２に格納する命令）とする。【選択図】　　図２
2004062401.tif 000002
【特許請求の範囲】
【請求項１】
条件分岐処理を行う演算プロセッサであって、
演算を実行する演算実行手段と、
前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、
前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、
前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから１つを選択し、当該選択されたデータを前記レジスタ手段に出力する選択命令実行手段と、を備えたことを特徴とする演算プロセッサ。
【請求項２】
命令コードに基づいて、複数のデータの中から適当なデータを選択する演算プロセッサであって、
演算を実行する演算実行手段と、
前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、
前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、
指示された命令コードに基づいて所定の処理を行う命令実行手段と、を備え、
前記命令実行手段は、
複数の入力データの値をそれぞれ比較して、前記複数の入力データの中で値が最大または最小のデータを示す情報を出力する比較手段と、
指定された命令コードに応じて、前記比較手段から出力された情報または前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグのいずれかを選択して出力する第１の選択手段と、
前記第１の選択手段から出力された情報またはフラグに基づいて、前記レジスタ手段から入力された複数の入力データから１つを選択し、当該選択されたデータを前記レジスタ手段に出力する第２の選択手段と、を有することを特徴とする演算プロセッサ。
【請求項３】
前記指定された命令コードが、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記複数の入力データから１つを出力するよう指示する命令コードである場合、
前記第１の選択手段は、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグを出力し、
前記第２の選択手段は、前記選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから１つを選択することを特徴とする請求項２記載の演算プロセッサ。
【請求項４】
前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最大のデータを出力するよう指示する命令コードである場合、
前記比較手段は、前記複数の入力データの中で値が最大のデータを示す情報を出力し、
前記第１の選択手段は、前記比較手段から出力された情報を出力し、
前記第２の選択手段は、前記第１の選択手段から出力された情報が示すデータを選択し、
前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最小のデータを出力するよう指示する命令コードである場合、
前記比較手段は、前記複数の入力データの中で値が最小のデータを示す情報を出力し、
前記第１の選択手段は、前記比較手段から出力された情報を出力し、
前記第２の選択手段は、前記第１の選択手段から出力された情報が示すデータを選択することを特徴とする請求項２または３記載の演算プロセッサ。
【請求項５】
画像信号を処理する画像処理手段として請求項１、２、３または４記載の演算プロセッサを利用したことを特徴とするカメラ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、条件分岐（条件付き分岐命令）や最大値演算または最小値演算の処理を効率良く実行させるための演算プロセッサおよび当該演算プロセッサを用いたカメラ装置に関する。
【０００２】
【従来の技術】
従来、ＳＩＭＤ（Ｓｉｎｇｌｅ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｍｕｌｔｉｐｌｅ　Ｄａｔａ）型並列演算プロセッサでは、複数のデータに対して同じ演算を同時に実行することにより、演算処理を高速化している。すなわち、当該演算プロセッサでは、複数のプロセッサエレメントの各々において、１つの命令ストリームに対する処理を並列で行う構成であるため、そのままでは処理結果に依存してその後の処理が与えられるような命令ステップ（例えば、条件分岐の命令ステップ）を含む一連の命令ステップを、この１つの命令ストリームに沿って、各プロセッサエレメントにおいて並列に実行することができない。
【０００３】
この問題を解決するため、文献：「Ｙ．Ｆｕｊｉｔａ　ｅｔ　ａｌ（ＮＥＣ）　“ＩＭＡＰ：Ｉｎｔｅｇｒａｔｅｄ　Ｍｅｍｏｒｙ　Ａｒｒａｙ　Ｐｒｏｃｅｓｓｏｒ”，　Ｊｏｕｒｎａｌ　ｏｆ　Ｃｉｒｃｕｉｔｓ，　Ｓｙｓｔｅｍｓ　ａｎｄ　Ｃｏｍｐｕｔｅｒｓ，　Ｖｏｌ．２，　Ｎｏ．３，　ｐｐ２２７−２４５，　１９９２」では、プロセッサエレメント毎に、命令バス上の命令ストリームに従って処理をするかどうかを表すマスクレジスタを設置し、命令バスに条件分岐のそれぞれの分岐先に相当する命令ストリームを時分割で流すことにより、条件分岐を実行している。すなわち、ハードウェアにおいて、この条件分岐を専門に行う回路を設ける構成とし、これにより条件分岐を実行し、その結果、分岐先が同じとなるプロセッサエレメント同士は並列に実行することができるようにして、条件分岐処理の高速化を実現している。
【０００４】
従来のＳＩＭＤ（Ｓｉｎｇｌｅ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｍｕｌｔｉｐｌｅ　Ｄａｔａ）型並列演算プロセッサとしては、例えば図４に示すようなものがある。図４は、文献：「Ｙ．Ｆｕｊｉｔａ　ｅｔ　ａｌ（ＮＥＣ）　“ＩＭＡＰ：Ｉｎｔｅｇｒａｔｅｄ　Ｍｅｍｏｒｙ　Ａｒｒａｙ　Ｐｒｏｃｅｓｓｏｒ”，　Ｊｏｕｒｎａｌ　ｏｆ　Ｃｉｒｃｕｉｔｓ，Ｓｙｓｔｅｍｓ　ａｎｄ　Ｃｏｍｐｕｔｅｒｓ，　Ｖｏｌ．２，　Ｎｏ．３，　ｐｐ２２７−２４５，　１９９２」におけるＳＩＭＤ型並列演算プロセッサの主要な構成を示すブロック図である。但し、同図では、上記プロセッサの主要な構成要素として命令発行部９００と演算処理部９０１のみを示している。
【０００５】
図４に示すように、演算処理部９０１は複数のプロセッサエレメント９０３１〜９０３ｎを備えて構成されている。また、命令発行部９００は、命令バス９０２を介して複数のプロセッサエレメント９０３１〜９０３ｎに接続されている。各プロセッサエレメント９０３１〜９０３ｎは、対応する汎用レジスタ９０６１〜９０６ｎと、マスクレジスタ９０７１〜９０７ｎと、演算実行部９０８１〜９０８ｎとを有している。
【０００６】
以下、図４に示した従来の演算プロセッサにおいて、条件分岐を処理する場合の動作について説明する。図４に示す演算プロセッサでは、条件分岐（条件付き分岐命令の略語とする）を処理する場合に、各プロセッサエレメント９０３１〜９０３ｎにおいて、マスクレジスタ９０７１〜９０７ｎがそれぞれ参照され、マスクレジスタ９０７１〜９０７ｎのうち、値が１となっているマスクレジスタに対応するプロセッサエレメントのみが命令バス９０２上の条件分岐を実行する。
【０００７】
図５は、一般的な演算プロセッサにおける条件分岐の実行手順を説明するフローチャートである。図５のフローチャートに示す条件分岐の処理を、図４に示した従来の演算プロセッサで実行する場合、例えば、以下に示すような命令ステップ列となり、この場合、この条件分岐の処理に６命令ステップを要していることになる。
【０００８】
ＣＭＰ　ｒ０，ｒ１
ＳＥＴＭＲ
ＭＵＬ　ｒ２，ｒ０，ｒ３
ＩＮＶＭＲ
ＡＤＤ　ｒ２，ｒ１，ｒ３
ＣＬＲＭＲ
【０００９】
ここで、ｒ０〜ｒ３はレジスタを表し、ＣＭＰ命令は比較命令、ＭＵＬ命令は乗算命令、ＡＤＤ命令は加算命令を表し、ＳＥＴＭＲ命令、ＩＮＶＭＲ命令、ＣＬＲＭＲ命令は、それぞれ比較命令の結果、フラグの値をマスクレジスタ４０７１〜４０７ｎにセットする命令、マスクレジスタ４０７１〜４０７ｎの値を反転する命令、マスクレジスタ４０７１〜４０７ｎの値をクリア（１をセット）する命令を表すものとする。
【００１０】
まず、“ＣＭＰ　ｒ０，ｒ１”の命令ステップで、各プロセッサエレメントでは、ｒ０とｒ１との大小関係を比較し、この比較結果（真偽にそれぞれ対応する“１”または“０”）を、ＳＥＴＭＲ命令によりマスクレジスタ４０７１〜４０７ｎにセットする。その結果、“ＣＭＰ　ｒ０，ｒ１”の命令ステップでの比較結果が真であったプロセッサエレメントのみが、対応するマスクレジスタに１がセットされて、次の“ＭＵＬ　ｒ２，ｒ０，ｒ３”の命令ステップが実行されることになる。
【００１１】
次に、その下に位置するＩＮＶＭＲの命令ステップにより、マスクレジスタ４０７１〜４０７ｎの値が反転されるため、その結果として、前述の比較結果が真であったプロセッサエレメントのマスクレジスタの値は０に反転され、これとは逆に、前述の比較結果が偽であったプロセッサエレメントのマスクレジスタの値は１に反転されるため、この時、１に反転されたプロセッサエレメントのみが次の“ＡＤＤ　ｒ２，ｒ１，ｒ３”の命令ステップを実行することになる。最後にＣＬＲＭＲの命令ステップにより、マスクレジスタ４０７１〜４０７ｎの値を全て１にクリア（リセット）し、通常処理に戻る。
【００１２】
【発明が解決しようとする課題】
しかしながら、上記従来の演算プロセッサにあっては、マスクレジスタ４０７の値を設定するためにＳＥＴＭＲ，ＩＮＶＭＲ，ＣＬＲＭＲ等の分岐制御用の命令を実行する必要があり、実際に必要な演算処理の実行命令数に比較してＳＥＴＭＲ等の分岐制御用命令の実行命令数の割合が多くなり、条件分岐処理の高速化を妨げるという問題点があった。この問題点は、分岐後の実行命令数が少ない条件分岐、すなわち規模の小さい条件分岐の場合には特に顕著な問題点となっていた。
【００１３】
本発明は、上記従来の問題点に鑑みてなされたものであって、条件分岐を高速に実行可能な演算プロセッサおよび当該演算プロセッサを用いたカメラ装置を提供することを目的としている。また、最大値演算または最小値演算を高速に実行可能な演算プロセッサおよび当該演算プロセッサを用いたカメラ装置を提供することも目的としている。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る演算プロセッサは、条件分岐処理を行う演算プロセッサであって、演算を実行する演算実行手段と、前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから１つを選択し、当該選択されたデータを前記レジスタ手段に出力する選択命令実行手段と、を備えている。したがって、データに依存して演算内容が変わる条件分岐処理を高速化することができる。
【００１５】
また、本発明に係る演算プロセッサは、命令コードに基づいて、複数のデータの中から適当なデータを選択する演算プロセッサであって、演算を実行する演算実行手段と、前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、指示された命令コードに基づいて所定の処理を行う命令実行手段と、を備え、前記命令実行手段は、複数の入力データの値をそれぞれ比較して、前記複数の入力データの中で値が最大または最小のデータを示す情報を出力する比較手段と、指定された命令コードに応じて、前記比較手段から出力された情報または前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグのいずれかを選択して出力する第１の選択手段と、前記第１の選択手段から出力された情報またはフラグに基づいて、前記レジスタ手段から入力された複数の入力データから１つを選択し、当該選択されたデータを前記レジスタ手段に出力する第２の選択手段と、を有している。したがって、僅かなハードウェアの追加で、データに依存して演算内容が変わる条件分岐処理または最大値演算若しくは最小値演算を高速化することができる。
【００１６】
また、本発明に係る演算プロセッサは、前記指定された命令コードが、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記複数の入力データから１つを出力するよう指示する命令コードである場合、前記第１の選択手段は、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグを出力し、前記第２の選択手段は、前記選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから１つを選択する。したがって、データに依存して演算内容が変わる条件分岐処理を高速化することができる。
【００１７】
また、本発明に係る演算プロセッサは、前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最大のデータを出力するよう指示する命令コードである場合、前記比較手段は、前記複数の入力データの中で値が最大のデータを示す情報を出力し、前記第１の選択手段は、前記比較手段から出力された情報を出力し、前記第２の選択手段は、前記第１の選択手段から出力された情報が示すデータを選択し、前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最小のデータを出力するよう指示する命令コードである場合、前記比較手段は、前記複数の入力データの中で値が最小のデータを示す情報を出力し、前記第１の選択手段は、前記比較手段から出力された情報を出力し、前記第２の選択手段は、前記第１の選択手段から出力された情報が示すデータを選択する。したがって、データに依存して演算内容が変わる最大値演算または最小値演算を高速化できる。
【００１８】
さらに、本発明に係るカメラ装置は、画像信号を処理する画像処理手段として請求項１、２、３または４記載の演算プロセッサを利用している。したがって、高速撮影を可能にすると共に、仕様変更が容易なカメラ装置を提供することができる。
【００１９】
【発明の実施の形態】
以下、本発明に係る演算プロセッサの実施の形態について、〔第１の実施形態〕，〔第２の実施形態〕の順に図面を参照して詳細に説明する。また、本発明に係るカメラ装置を〔第３の実施形態〕として、図面を参照して詳細に説明する。なお、第１および第２の実施形態の演算プロセッサはＳＩＭＤ（Ｓｉｎｇｌｅ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｍｕｌｔｉｐｌｅ　Ｄａｔａ）型並列演算プロセッサである。
【００２０】
〔第１の実施形態〕
図１は、本発明に係る第１の実施形態の演算プロセッサの構成を示すブロック図である。同図に示すように、第１の実施形態の演算プロセッサは、命令発行部１と、命令バス２と、複数のプロセッサエレメント３１〜３ｎとを備えて構成されている。
【００２１】
各プロセッサエレメント３１〜３ｎは、後述する演算実行部７１〜７ｎでの演算結果の置数等に用いられる特許請求の範囲のレジスタ手段に該当する汎用レジスタ６１〜６ｎと、演算実行手段に該当する演算実行部７１〜７ｎと、演算実行部７１〜７ｎでの演算結果により生成される様々なフラグを格納するフラグレジスタ手段に該当するフラグレジスタ８１〜８ｎと、選択命令実行手段に該当する選択命令実行部９１〜９ｎとを有している。また、選択命令実行部９１は、汎用レジスタ６１に接続されたデータ入力ポート１００，１０１と、データ出力ポート１０２と、条件入力ポート１０３と、選択器１０４とを有している。なお、図示は省略しているが、選択命令実行部９２〜９ｎの構成も選択命令実行部９１の構成と同じであり、プロセッサエレメント３２〜３ｎの構成もプロセッサエレメント３１の構成と同じである。
【００２２】
このような構成の演算プロセッサにおいて、命令発行部１から読み出された命令は命令バス２を介して各プロセッサエレメント３１〜３ｎに供給される。そして、プロセッサエレメント３１において、選択命令実行部９１の選択器１０４は、条件入力ポート１０３から入力されたフラグの値に応じて、データ入力ポート１００，１０１から入力された２つのデータのいずれか一方を選択し、データ出力ポート１０２から出力する。データ入力ポート１００，１０１およびデータ出力ポート１０２は汎用レジスタ６１に接続されており、汎用レジスタ６１には演算実行部７１による現在までの演算結果が置数されている。また、条件入力ポート１０３はフラグレジスタ８１に接続されており、複数ある演算結果フラグの中から任意のフラグの値を入力できるようになっている。
【００２３】
以下、本実施形態の演算プロセッサにおける条件分岐の所要命令ステップ数を、従来の演算プロセッサと比較する。図５のフローチャートに示した条件分岐の処理を行う場合の、本実施形態の演算プロセッサによる命令ステップ列を以下に示す。
【００２４】
ＭＵＬ　ｒ２，ｒ０，ｒ３
ＡＤＤ　ｒ４，ｒ１，ｒ３
ＣＭＰ　ｒ０，ｒ１
ＳＥＬ　ｒ２，ｒ２，ｒ４
【００２５】
ここで、上記ＳＥＬ命令は本発明で提案する選択命令を表すものとし、より具体的には、“ＳＥＬ　ｒ２，ｒ２，ｒ４”は、各プロセッサエレメント３１〜３ｎにおいて直前のＣＭＰ命令の実行結果によるフラグ値を条件入力ポート１０３に入力し、レジスタｒ２，ｒ４の値をデータ入力ポート１００，１０１に入力し、データ出力ポート１０２からの出力値をレジスタｒ２に格納することにより、上記ＣＭＰ命令ステップの実行結果に応じて、レジスタｒ２の値とｒ４の値のいずれか１つを選択してレジスタｒ２に代入する処理を実行することを意味する命令ステップであるものとする。
【００２６】
図５に示した両方の分岐先の処理ステップ５０１，５０２に対応する命令“ＭＵＬ　ｒ２，ｒ０，ｒ３”および“ＡＤＤ　ｒ４，ｒ１，ｒ３”を比較処理ステップ５００に対応する命令“ＣＭＰ　ｒ０，ｒ１”よりも先に実行し、両方の演算結果を一時的にレジスタｒ２，ｒ４に退避しておく。その後で“ＣＭＰ　ｒ０，ｒ１”を実行し、その比較結果に応じてレジスタｒ２またはｒ４から値を選択する選択命令“ＳＥＬ　ｒ２，ｒ２，ｒ４”を実行することにより、レジスタｒ２に適切な演算結果が代入される。
【００２７】
このような命令ステップの配置としたため、全てのプロセッサエレメント３１〜３ｎで、命令列のシーケンスを乱すことなく各プロセッサエレメントで同時に実行することが可能となり、しかも、各プロセッサエレメントでそれぞれ適切な結果を得ることができる。
【００２８】
また、図１に示した構成の演算プロセッサで図５に示したフローの処理を実行した場合、従来では６命令ステップを要していたが、本実施形態では選択命令実行部９によって選択命令ＳＥＬを行うことによって４命令ステップで実行可能である。したがって、データに依存して演算内容が変わる条件分岐処理を高速化することができる。
【００２９】
なお、本実施形態の説明ではデータ入力ポートを２つ、条件入力ポートを１つとしたが、データ入力ポートを３つ以上、条件入力ポートを２つ以上有し、３つ以上のデータから１つを選択しても良い。この場合、３つ以上に分岐する条件分岐処理を高速に実行することができる。
【００３０】
〔第２の実施形態〕
図２は、本発明に係る第２の実施形態の演算プロセッサの構成を示すブロック図である。同図に示すように、第２の実施形態のプロセッサエレメント１３１〜１３ｎは、図１に示したプロセッサエレメント３１〜３ｎが有する選択命令実行部９の代わりに、選択命令に基づく条件分岐処理や最大値演算または最小値演算を行う特許請求の範囲の命令実行手段に該当する命令実行部１０１〜１０ｎを有している。命令実行部１０１〜１０ｎは、２つのデータ入力ポート２００，２０１と、１ビットの条件入力ポート２０２と、命令コード入力ポート２０３と、データ出力ポート２０４と、第２の選択手段に該当する選択器２０５と、第１の選択手段に該当する選択器２０６と、比較手段に該当する比較器２０７とを有している。なお、図示は省略しているが、プロセッサエレメント１３２〜１３ｎの構成は、プロセッサエレメント１３１の構成と同じである。
【００３１】
選択器２０５は、選択器２０６からの出力値に応じて、データ入力ポート２００，２０１から入力された２つのデータのいずれか一方を選択し、データ出力ポート２０４から出力する。比較器２０７は、データ入力ポート２００，２０１から入力された２つのデータの値の大小を比較し、最大または最小のデータを示す情報を１ビットで選択器２０６に出力する。選択器２０６は、命令コード入力ポート２０３に入力された命令コードに応じて、条件入力ポート２０２から入力されたデータと比較器２０７から出力された情報のいずれか一方を選択し、選択器２０５に出力する。データ入力ポート２００，２０１およびデータ出力ポート２０４は汎用レジスタ６１に接続されており、条件入力ポート２０２はフラグレジスタ８１に接続されており、命令コード入力ポート２０３は命令バス２に接続されている。
【００３２】
以下、本実施形態の演算プロセッサにおける条件分岐処理、最大値演算または最小値演算を実行する場合の動作について説明する。
【００３３】
＜条件分岐処理＞
選択命令を用いて条件分岐処理を実行する場合は、第１の実施形態で説明した手順と同様の手順で行う。但し、選択器２０６から選択器２０５に入力するデータとして条件入力ポート２０２から入力されたデータの方を選択するために、命令コード入力ポート２０３に選択命令であることを示す命令コードを入力する。
【００３４】
＜最大値演算、最小値演算＞
最大値演算または最小値演算を実行する場合には、命令コード入力ポート２０３に最大命令または最小命令であることを示す命令コードを入力し、選択器２０６から選択器２０５に入力するデータとして比較器２０７から出力されたデータを選択する。比較器２０７がデータ入力ポート２００，２０１に入力されたデータの値の大小を比較し、その比較結果が選択器２０５に入力されることにより、データ入力ポート２００，２０１に入力されたデータのうち、値の大きい方（または小さい方）がデータ出力ポート２０４から出力される。したがって、プロセッサエレメント毎に最大値または最小値を得ることができる。
【００３５】
本実施形態の演算プロセッサを用いて、例えば、２つの数ｒ０，ｒ１のうち大きい方の値を求め、その結果をｒ２に格納する処理“ｒ２＝ｍａｘ（ｒ０，ｒ１）”を実行する場合、その実行手順は以下に示すように１命令ステップで実行することができる。なお、下記ＭＡＸ命令は最大値命令を表すものとし、２つの数ｒ０，ｒ１のうちの大きい方の値をｒ２に格納することを表す。
【００３６】
ＭＡＸ　ｒ２，ｒ０，ｒ１
【００３７】
一方、選択命令を実行する場合、その実行手順は次のようになり、２命令ステップを要する。
【００３８】
ＣＭＰ　ｒ０，ｒ１
ＳＥＬ　ｒ２，ｒ０，ｒ１
【００３９】
このように、命令実行部１０１〜１０ｎを有することで、データに依存して演算内容が変わる最大値演算または最小値演算を高速化できる。また、本実施形態の命令実行部１０１〜１０ｎは、第１の実施形態の選択命令実行部９１〜９ｎに比較器２０７１〜２０７ｎと１ビットの選択器２０６１〜２０６ｎを付け加えるだけで実現可能である。さらに、一般的なプロセッサの命令セットの中には、通常、比較命令が存在するので、比較器についても元々存在しているのが普通であり、この比較器を利用すれば新たに追加しなければならないハードウェアはほとんどなく、僅かなハードウェアの追加だけで最大値演算や最小値演算を高速に実行することができる。
【００４０】
なお、本実施形態では比較器２０７を例に説明したが、比較器２０７の代わりに減算器を用いても良い。その場合は、減算器の結果の符号を表すビットを選択器２０６に入力する構成となり、同様の効果を得ることができる。
【００４１】
また、本実施形態ではデータ入力ポートを２つ、条件入力ポートを１つとし、比較手段は２つの数の大小を比較する比較器２０７としたが、データ入力ポートを３つ以上、条件入力ポートを２つ以上、比較手段として３つ以上の数の大小を比較する比較器を有し、選択命令として実行する場合は３つ以上の数の中から１つを選択し、最大値命令または最小値命令として実行する場合は３つ以上の数の最大値または最小値を求めても良い。
【００４２】
〔第３の実施形態〕
図３は、本発明に係る第３の実施形態のカメラ装置の構成を示すブロック図である。同図に示すように、本実施形態のカメラ装置は、撮像部３００と、Ａ／Ｄ変換器３０１と、特許請求の範囲の画像処理手段に該当する画像処理プロセッサ３０２と、画像蓄積部または画像伝送部３０３を備えて構成されている。なお、画像処理プロセッサ３０２には、上記第１または第２の実施形態の演算プロセッサが用いられる。
【００４３】
撮像部３００によって撮影された画像はＡ／Ｄ変換器３０１によってデジタル信号に変換された後、画像処理プロセッサ３０２によって処理され、画像蓄積部または画像伝送部３０３に送られる。本実施形態によれば、専用の画像処理回路を用いたカメラ装置に比べて、画像処理プロセッサ３０２を制御するソフトウェアを変更するだけで画像処理仕様を変えることができる。また、画像処理プロセッサ３０２として高速の演算プロセッサを用いているため、高速撮像、すなわち画像処理を高速に行えるカメラ装置を実現できる。
【００４４】
【発明の効果】
以上説明したように、本発明に係る演算プロセッサによれば、データに依存して演算内容が変わる条件分岐処理または最大値演算若しくは最小値演算を高速化することができる。また、高速撮影を可能にすると共に仕様変更が容易なカメラ装置を提供することができる。
【図面の簡単な説明】
【図１】本発明に係る第１の実施形態の演算プロセッサの構成を示すブロック図
【図２】本発明に係る第２の実施形態の演算プロセッサの構成を示すブロック図
【図３】本発明に係る第３の実施形態のカメラ装置の構成を示すブロック図
【図４】文献「Ｙ．Ｆｕｊｉｔａ　ｅｔ　ａｌ（ＮＥＣ）　“ＩＭＡＰ：Ｉｎｔｅｇｒａｔｅｄ　Ｍｅｍｏｒｙ　Ａｒｒａｙ　Ｐｒｏｃｅｓｓｏｒ”，Ｊｏｕｒｎａｌ　ｏｆ　Ｃｉｒｃｕｉｔｓ，　Ｓｙｓｔｅｍｓ　ａｎｄ　Ｃｏｍｐｕｔｅｒｓ，　Ｖｏｌ．２，　Ｎｏ．３，　ｐｐ２２７−２４５，　１９９２」における演算プロセッサの主要な構成を示すブロック図
【図５】一般的な演算プロセッサにおける条件分岐の実行手順を説明するフローチャート
【符号の説明】
１　命令発行部
２　命令バス
３１〜３ｎ　プロセッサエレメント
６１〜６ｎ　汎用レジスタ
７１〜７ｎ　演算実行部
８１〜８ｎ　フラグレジスタ
９１〜９ｎ　選択命令実行部
１０　選択命令・最大値命令・最小値命令実行部
１００，１０１　データ入力ポート
１０２　データ出力ポート
１０３　条件入力ポート
１０４　選択器
２００，２０１　データ入力ポート
２０２　条件入力ポート
２０３　命令コード入力ポート
２０４　データ出力ポート
２０５　選択器
２０６　選択器
２０７　比較器
３００　撮像部
３０１　Ａ／Ｄ変換器
３０２　画像処理プロセッサ
３０３　画像蓄積部または画像伝送部
９００　命令発行部
９０１　演算処理部
９０２　命令バス
９０３１〜４０３ｎ　プロセッサエレメント
９０６１〜９０６ｎ　汎用レジスタ
９０７１〜９０７ｎ　マスクレジスタ
９０８１〜９０８ｎ　演算実行部
【図１】
2004062401.tif 000003
【図２】
2004062401.tif 000004
【図３】
2004062401.tif 000005
【図４】
2004062401.tif 000006
【図５】
2004062401.tif 000007