説明

ベクトル演算装置及びその方法

【課題】 一つのベクトル命令のみで、最大値や最小値を、要素毎に算出可能とすると共に、長時間ベクトルデータレジスタ内要素の保持を不要としたベクトル演算装置を提供する。
【解決手段】 複数のベクトルデータの要素の各々A,Bを、比較に要する時間だけ保持するベクトルデータ保持回路30を設け、要素A,Bの減算処理による比較回路20の比較結果に基いて、このベクトルデータ保持回路30のうち最も大きい要素または最も小さい要素を選択して演算結果Cとして導出する。これにより、一つの命令で、要素毎に最大値または最小値を求めることが可能となり、この演算が行われ次第、ベクトルデータレジスタ41〜43には要素の保持が必要なくなり、次の要素の書込みが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はベクトル演算装置及びその方法に関し、特に複数のベクトルデータを入力としてこれらベクトルデータを連続して演算するベクトル演算装置及びその方法に関するものである。
【背景技術】
【0002】
従来のベクトル演算装置において、要素毎に最大値または最小値を求めるためには、要素値の比較演算処理、この比較結果値の正負からのマスク生成処理、このマスク値に従った要素の選択処理、という一連の処理を複数の命令で実現している(特許文献1〜3等参照)。
【0003】
ここで、特許文献4を参照すると、データの最大値や最小値を求めるための技術が開示されており、データの比較処理と、この比較結果によるデータの選択処理とを、一つの命令で実行するようにした構成が示されている。
【0004】
【特許文献1】特開昭60−251470号公報
【特許文献2】特開昭61−160176号公報
【特許文献3】特開平95−324699号公報
【特許文献4】特開2004−062401号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ベクトル演算装置において、複数のベクトルデータの最大値や最小値を算出するためには、上述したように、要素毎に複数の命令を実行することが必要であり、よって演算時間の増大や命令生成の機能が複雑となるという欠点があり、また、これら複数の処理の間の長い時間、ベクトルデータレジスタ内要素の保持が必要であるという欠点もある。
【0006】
また、特許文献4に記載の技術は、単なるデータの最大値または最小値を求めるためのものであり、複数のベクトルデータを入力としてこれらベクトルデータを連続して演算するベクトル演算装置に関するものではない。
【0007】
本発明の目的は、一つのベクトル命令のみで、最大値や最小値を、要素毎に算出可能とすると共に、長時間ベクトルデータレジスタ内要素の保持を不要としたベクトル演算装置及びその方法を提供することである。
【課題を解決するための手段】
【0008】
本発明によるベクトル演算装置は、ベクトルデータを連続して演算して最大値(または最小値)を求めるベクトル演算装置であって、前記ベクトルデータの各々を保持する保持手段と、前記入力ベクトルデータの比較演算をなす比較手段と、この比較手段の比較結果に応じて前記保持手段に保持されているベクトルデータの一つを選択して最大値(または最小値)として導出する選択手段とを含むことを特徴とする。
【0009】
本発明によるベクトル演算方法は、ベクトルデータを連続して演算して最大値(または最小値)を求めるベクトル演算方法であって、前記ベクトルデータの各々を保持する保持ステップと、前記入力ベクトルデータの比較演算をなす比較ステップと、この比較結果に応じて前記保持ステップで保持されたベクトルデータの一つを選択して最大値(または最小値)として導出する選択ステップとを含むことを特徴とする。
【発明の効果】
【0010】
本発明によれば、一つのベクトル命令のみで、最大値や最小値を、要素毎に算出することが可能になり、その結果、長時間ベクトルデータレジスタ内要素の保持を不要とし得るという効果がある。
【発明を実施するための最良の形態】
【0011】
以下に、本発明の実施の形態について図面を用いて説明する。図1は本発明の実施の形態を説明するための機能ブロック図である。図1を参照すると、本発明の実施の形態は、ベクトルデータA,Bを要素毎に比較する比較回路20と、ベクトルデータA,Bを保持するベクトルデータ保持回路30と、比較回路20の比較結果を示す情報から、ベクトルデータ保持回路30のベクトルデータA,Bのどちらか一方を選択する選択回路40とを有している。
【0012】
比較回路20は(A−B)の減算を行うものであり、最大値演算の場合、減算結果が0以上のときA≧Bを示す情報(“0”)を生成し、減算結果が負の値のときA<Bを示す情報(“1”)を生成する。選択回路40は、この比較情報がA≧Bを示す情報のとき、ベクトルデータ保持回路30からベクトルデータAを選択し、A<Bを示す情報のとき、ベクトルデータ保持回路30からベクトルデータBを選択する。
【0013】
最小値演算の場合には、選択回路40は、比較情報がA≧Bを示す情報(“0”)のとき、ベクトルデータ保持回路30からベクトルデータBを選択し、A<Bを示す情報(“1”)のとき、ベクトルデータ保持回路30からベクトルデータAを選択する。この選択回路40の出力が演算結果Cとなる。
【0014】
このようにして、本発明では、ベクトルデータを連続して演算するベクトル演算回路において、入力される複数のベクトルデータの各々を比較に要する時間だけ保持するベクトルデータ保持回路30と、比較演算回路20の比較結果に応じて、ベクトルデータ保持回路30に保持されるベクトルデータの内最も大きい要素(小さい要素)を選択する選択回路40を設けているので、最大値(最小値)を要素毎に、一つのベクトル命令で算出できることになる。
【0015】
図2は本発明の具体的構成を示す実施例の回路図であり、図1と同等部分は同一符号により示している。図2を参照すると、本実施例のベクトル演算装置は、複数のベクトルデータを保持するベクトルデータレジスタ41,42,43と、ベクトルデータレジスタ41及び42からそれぞれ連続して読み出されるベクトルデータA及びBの各々を保持するレジスタ10及び11と、これらレジスタ10及び11に保持されたベクトルデータA及びBを2入力とするベクトル比較回路20とを有する。レジスタ10,11はベクトルデータA,Bの各々を入力として保持し、比較回路20へ供給することを要素数だけ連続して行うものである。
【0016】
ベクトル比較回路20は、ベクトルデータAを保持するレジスタ10と、ベクトルデータBを保持するレジスタ11との2入力オペランドを受けて、(A−B)の減算を行って比較情報(“0”または“1”)を生成し、選択回路40に出力するものである。レジスタ31はベクトルデータAを保持し、またレジスタ32はベクトルデータBを保持し、それぞれ選択回路40に出力するものである。
【0017】
選択回路40は、ベクトル比較回路20による(A−B)の減算結果、すなわち比較情報から、最大値演算の場合、比較情報が0以上のとき(A≧Bを示す“0”のとき)ベクトルデータAを選択し、また負の値のとき(A<Bを示す“1”のとき)Bを選択する。最小値演算の場合には、選択回路40は、ベクトル比較回路20による比較情報が0以上のとき(A≧Bを示す“0”のとき)ベクトルデータBを、負の値のとき(A<Bを示す“1”のとき)Aを選択して、演算結果Cとして出力する。この演算結果Cはベクトルデータレジスタ43及び41,42のいずれかに格納されることになる。
【0018】
図2において、最大値演算を行う命令について動作を説明する。ベクトルデータA,Bは、それぞれ、要素数が連続してレジスタ10,11に保持されて比較回路20に供給される。同時に、ベクトルデータ保持回路30のレジスタ31にベクトルデータAが、レジスタ32にベクトルデータBが、それぞれ保持された後、選択回路40に供給される。
【0019】
ベクトル比較回路20では、供給されるベクトルデータAとベクトルデータBとが減算されて比較され、ベクトルデータAがBより大きい、またはBと一致した場合には“0”を出力し、またベクトルデータAがBより小さい場合には“1”を生成して比較情報として選択回路40に供給する。
【0020】
選択回路40において、比較対象に対応するベクトルデータ保持回路30で保持されたベクトルデータA,Bは選択回路40によって次のように選択される。すなわち、最大値演算の場合には、比較情報が“0”のときレジスタ31のベクトルデータAが、“1”のときレジスタ32のベクトルデータBが、それぞれ選択される。
【0021】
また、最小値演算の場合には、比較情報が“0”のときレジスタ32のベクトルデータBが、“1”のときレジスタ31のベクトルデータAが、それぞれ選択されることになる。これにより、最大値または最小値としての演算結果が得られるのである。以上の動作は要素数分を連続して行われ、要素毎に最大値(最小値)を算出することができる。
【0022】
以上述べたように、要素毎に最大値(最小値)演算を算出するベクトル命令を生成して供給することにより、最大値(最小値)演算が一つのベクトル命令で要素毎に可能になるのである。また、この演算が行われ次第、ベクトルデータレジスタでの要素の保持の必要がなくなり、よって次の要素のベクトルデータレジスタへの書込みが可能となり、処理速度の大幅な向上が可能となる。
【0023】
上記の実施例では、ベクトル比較回路20は、(A−B)の減算結果である比較情報が0以上のとき“0”を生成し、負の値のとき“1”を生成しているが、逆に、比較情報が0以上のとき“1”を生成し、負の値のとき“0”を生成してもよいことは明白である。
【0024】
本発明はスーパーコンピュータのベクトル計算機におけるベクトル演算装置に適用可能であるが、広く一般のベクトル演算に適用できることは勿論である。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態のブロック図である。
【図2】本発明の実施例を示す具体的ブロック図である。
【符号の説明】
【0026】
10,11,31,32 レジスタ
20 比較回路
30 ベクトルデータ保持回路
40 選択回路
41〜43 ベクトルデータレジスタ

【特許請求の範囲】
【請求項1】
ベクトルデータを連続して演算して最大値(または最小値)を求めるベクトル演算装置であって、
前記ベクトルデータの各々を保持する保持手段と、
前記ベクトルデータの比較演算をなす比較手段と、
この比較手段の比較結果に応じて前記保持手段に保持されているベクトルデータの一つを選択して最大値(または最小値)として導出する選択手段とを含むことを特徴とするベクトル演算装置。
【請求項2】
前記保持手段、前記比較手段、前記選択手段は、一つの命令で前記ベクトルデータの各要素毎に処理を実行して最大値(または最小値)を導出することを特徴とする請求項1記載のベクトル演算装置。
【請求項3】
ベクトルデータを連続して演算して最大値(または最小値)を求めるベクトル演算方法であって、
前記ベクトルデータの各々を保持する保持ステップと、
前記ベクトルデータの比較演算をなす比較ステップと、
この比較結果に応じて前記保持ステップで保持されたベクトルデータの一つを選択して最大値(または最小値)として導出する選択ステップとを含むことを特徴とするベクトル演算方法。
【請求項4】
前記保持ステップ、前記比較ステップ、前記選択ステップは、一つの命令で前記ベクトルデータの各要素毎に実行されることを特徴とする請求項3記載のベクトル演算方法。

【図1】
image rotate

【図2】
image rotate