(57)【要約】【課題】  一つのベクトル命令のみで、最大値や最小値を、要素毎に算出可能とすると共に、長時間ベクトルデータレジスタ内要素の保持を不要としたベクトル演算装置を提供する。【解決手段】  複数のベクトルデータの要素の各々Ａ，Ｂを、比較に要する時間だけ保持するベクトルデータ保持回路３０を設け、要素Ａ，Ｂの減算処理による比較回路２０の比較結果に基いて、このベクトルデータ保持回路３０のうち最も大きい要素または最も小さい要素を選択して演算結果Ｃとして導出する。これにより、一つの命令で、要素毎に最大値または最小値を求めることが可能となり、この演算が行われ次第、ベクトルデータレジスタ４１〜４３には要素の保持が必要なくなり、次の要素の書込みが可能となる。【選択図】      図２
2008165279.tif 000002
【特許請求の範囲】
【請求項１】
ベクトルデータを連続して演算して最大値（または最小値）を求めるベクトル演算装置であって、
前記ベクトルデータの各々を保持する保持手段と、
前記ベクトルデータの比較演算をなす比較手段と、
この比較手段の比較結果に応じて前記保持手段に保持されているベクトルデータの一つを選択して最大値（または最小値）として導出する選択手段とを含むことを特徴とするベクトル演算装置。
【請求項２】
前記保持手段、前記比較手段、前記選択手段は、一つの命令で前記ベクトルデータの各要素毎に処理を実行して最大値（または最小値）を導出することを特徴とする請求項１記載のベクトル演算装置。
【請求項３】
ベクトルデータを連続して演算して最大値（または最小値）を求めるベクトル演算方法であって、
前記ベクトルデータの各々を保持する保持ステップと、
前記ベクトルデータの比較演算をなす比較ステップと、
この比較結果に応じて前記保持ステップで保持されたベクトルデータの一つを選択して最大値（または最小値）として導出する選択ステップとを含むことを特徴とするベクトル演算方法。
【請求項４】
前記保持ステップ、前記比較ステップ、前記選択ステップは、一つの命令で前記ベクトルデータの各要素毎に実行されることを特徴とする請求項３記載のベクトル演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はベクトル演算装置及びその方法に関し、特に複数のベクトルデータを入力としてこれらベクトルデータを連続して演算するベクトル演算装置及びその方法に関するものである。
【背景技術】
【０００２】
従来のベクトル演算装置において、要素毎に最大値または最小値を求めるためには、要素値の比較演算処理、この比較結果値の正負からのマスク生成処理、このマスク値に従った要素の選択処理、という一連の処理を複数の命令で実現している（特許文献１〜３等参照）。
【０００３】
ここで、特許文献４を参照すると、データの最大値や最小値を求めるための技術が開示されており、データの比較処理と、この比較結果によるデータの選択処理とを、一つの命令で実行するようにした構成が示されている。
【０００４】
【特許文献１】特開昭６０−２５１４７０号公報
【特許文献２】特開昭６１−１６０１７６号公報
【特許文献３】特開平９５−３２４６９９号公報
【特許文献４】特開２００４−０６２４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ベクトル演算装置において、複数のベクトルデータの最大値や最小値を算出するためには、上述したように、要素毎に複数の命令を実行することが必要であり、よって演算時間の増大や命令生成の機能が複雑となるという欠点があり、また、これら複数の処理の間の長い時間、ベクトルデータレジスタ内要素の保持が必要であるという欠点もある。
【０００６】
また、特許文献４に記載の技術は、単なるデータの最大値または最小値を求めるためのものであり、複数のベクトルデータを入力としてこれらベクトルデータを連続して演算するベクトル演算装置に関するものではない。
【０００７】
本発明の目的は、一つのベクトル命令のみで、最大値や最小値を、要素毎に算出可能とすると共に、長時間ベクトルデータレジスタ内要素の保持を不要としたベクトル演算装置及びその方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明によるベクトル演算装置は、ベクトルデータを連続して演算して最大値（または最小値）を求めるベクトル演算装置であって、前記ベクトルデータの各々を保持する保持手段と、前記入力ベクトルデータの比較演算をなす比較手段と、この比較手段の比較結果に応じて前記保持手段に保持されているベクトルデータの一つを選択して最大値（または最小値）として導出する選択手段とを含むことを特徴とする。
【０００９】
本発明によるベクトル演算方法は、ベクトルデータを連続して演算して最大値（または最小値）を求めるベクトル演算方法であって、前記ベクトルデータの各々を保持する保持ステップと、前記入力ベクトルデータの比較演算をなす比較ステップと、この比較結果に応じて前記保持ステップで保持されたベクトルデータの一つを選択して最大値（または最小値）として導出する選択ステップとを含むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、一つのベクトル命令のみで、最大値や最小値を、要素毎に算出することが可能になり、その結果、長時間ベクトルデータレジスタ内要素の保持を不要とし得るという効果がある。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明の実施の形態について図面を用いて説明する。図１は本発明の実施の形態を説明するための機能ブロック図である。図１を参照すると、本発明の実施の形態は、ベクトルデータＡ，Ｂを要素毎に比較する比較回路２０と、ベクトルデータＡ，Ｂを保持するベクトルデータ保持回路３０と、比較回路２０の比較結果を示す情報から、ベクトルデータ保持回路３０のベクトルデータＡ，Ｂのどちらか一方を選択する選択回路４０とを有している。
【００１２】
比較回路２０は（Ａ−Ｂ）の減算を行うものであり、最大値演算の場合、減算結果が０以上のときＡ≧Ｂを示す情報（“０”）を生成し、減算結果が負の値のときＡ＜Ｂを示す情報（“１”）を生成する。選択回路４０は、この比較情報がＡ≧Ｂを示す情報のとき、ベクトルデータ保持回路３０からベクトルデータＡを選択し、Ａ＜Ｂを示す情報のとき、ベクトルデータ保持回路３０からベクトルデータＢを選択する。
【００１３】
最小値演算の場合には、選択回路４０は、比較情報がＡ≧Ｂを示す情報（“０”）のとき、ベクトルデータ保持回路３０からベクトルデータＢを選択し、Ａ＜Ｂを示す情報（“１”）のとき、ベクトルデータ保持回路３０からベクトルデータＡを選択する。この選択回路４０の出力が演算結果Ｃとなる。
【００１４】
このようにして、本発明では、ベクトルデータを連続して演算するベクトル演算回路において、入力される複数のベクトルデータの各々を比較に要する時間だけ保持するベクトルデータ保持回路３０と、比較演算回路２０の比較結果に応じて、ベクトルデータ保持回路３０に保持されるベクトルデータの内最も大きい要素（小さい要素）を選択する選択回路４０を設けているので、最大値（最小値）を要素毎に、一つのベクトル命令で算出できることになる。
【００１５】
図２は本発明の具体的構成を示す実施例の回路図であり、図１と同等部分は同一符号により示している。図２を参照すると、本実施例のベクトル演算装置は、複数のベクトルデータを保持するベクトルデータレジスタ４１，４２，４３と、ベクトルデータレジスタ４１及び４２からそれぞれ連続して読み出されるベクトルデータＡ及びＢの各々を保持するレジスタ１０及び１１と、これらレジスタ１０及び１１に保持されたベクトルデータＡ及びＢを２入力とするベクトル比較回路２０とを有する。レジスタ１０，１１はベクトルデータＡ，Ｂの各々を入力として保持し、比較回路２０へ供給することを要素数だけ連続して行うものである。
【００１６】
ベクトル比較回路２０は、ベクトルデータＡを保持するレジスタ１０と、ベクトルデータＢを保持するレジスタ１１との２入力オペランドを受けて、（Ａ−Ｂ）の減算を行って比較情報（“０”または“１”）を生成し、選択回路４０に出力するものである。レジスタ３１はベクトルデータＡを保持し、またレジスタ３２はベクトルデータＢを保持し、それぞれ選択回路４０に出力するものである。
【００１７】
選択回路４０は、ベクトル比較回路２０による（Ａ−Ｂ）の減算結果、すなわち比較情報から、最大値演算の場合、比較情報が０以上のとき（Ａ≧Ｂを示す“０”のとき）ベクトルデータＡを選択し、また負の値のとき（Ａ＜Ｂを示す“１”のとき）Ｂを選択する。最小値演算の場合には、選択回路４０は、ベクトル比較回路２０による比較情報が０以上のとき（Ａ≧Ｂを示す“０”のとき）ベクトルデータＢを、負の値のとき（Ａ＜Ｂを示す“１”のとき）Ａを選択して、演算結果Ｃとして出力する。この演算結果Ｃはベクトルデータレジスタ４３及び４１，４２のいずれかに格納されることになる。
【００１８】
図２において、最大値演算を行う命令について動作を説明する。ベクトルデータＡ，Ｂは、それぞれ、要素数が連続してレジスタ１０，１１に保持されて比較回路２０に供給される。同時に、ベクトルデータ保持回路３０のレジスタ３１にベクトルデータＡが、レジスタ３２にベクトルデータＢが、それぞれ保持された後、選択回路４０に供給される。
【００１９】
ベクトル比較回路２０では、供給されるベクトルデータＡとベクトルデータＢとが減算されて比較され、ベクトルデータＡがＢより大きい、またはＢと一致した場合には“０”を出力し、またベクトルデータＡがＢより小さい場合には“１”を生成して比較情報として選択回路４０に供給する。
【００２０】
選択回路４０において、比較対象に対応するベクトルデータ保持回路３０で保持されたベクトルデータＡ，Ｂは選択回路４０によって次のように選択される。すなわち、最大値演算の場合には、比較情報が“０”のときレジスタ３１のベクトルデータＡが、“１”のときレジスタ３２のベクトルデータＢが、それぞれ選択される。
【００２１】
また、最小値演算の場合には、比較情報が“０”のときレジスタ３２のベクトルデータＢが、“１”のときレジスタ３１のベクトルデータＡが、それぞれ選択されることになる。これにより、最大値または最小値としての演算結果が得られるのである。以上の動作は要素数分を連続して行われ、要素毎に最大値（最小値）を算出することができる。
【００２２】
以上述べたように、要素毎に最大値（最小値）演算を算出するベクトル命令を生成して供給することにより、最大値（最小値）演算が一つのベクトル命令で要素毎に可能になるのである。また、この演算が行われ次第、ベクトルデータレジスタでの要素の保持の必要がなくなり、よって次の要素のベクトルデータレジスタへの書込みが可能となり、処理速度の大幅な向上が可能となる。
【００２３】
上記の実施例では、ベクトル比較回路２０は、（Ａ−Ｂ）の減算結果である比較情報が０以上のとき“０”を生成し、負の値のとき“１”を生成しているが、逆に、比較情報が０以上のとき“１”を生成し、負の値のとき“０”を生成してもよいことは明白である。
【００２４】
本発明はスーパーコンピュータのベクトル計算機におけるベクトル演算装置に適用可能であるが、広く一般のベクトル演算に適用できることは勿論である。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態のブロック図である。
【図２】本発明の実施例を示す具体的ブロック図である。
【符号の説明】
【００２６】
１０，１１，３１，３２  レジスタ
２０  比較回路
３０  ベクトルデータ保持回路
４０  選択回路
４１〜４３  ベクトルデータレジスタ
【図１】
2008165279.tif 000003
【図２】
2008165279.tif 000004