(57)【特許請求の範囲】
【請求項１】
複数の構成要素からなるベクトルの前記要素の有効無効を表すマスクビットを格納する複数のマスクレジスタを有するマスクビット数演算装置であって、演算対象となる前記要素に対応した前記要素の有効無効を表すマスクビット生成命令実行時のベクトル長と有効な前記マスクビットの数を数える演算での前記ベクトル長を比較し、前記マスクデータを要素の所定の値との比較結果毎に順次加算処理を行い、前記ベクトル長が一致した場合に前記加算処理の結果を出力することを特徴とするマスクビット数演算装置。
【請求項２】
複数の構成要素からなるベクトルの前記要素の有効無効を表すマスクビットを格納する複数のマスクレジスタを有するマスクビット数演算装置であって、演算対象となる前記要素に対応した前記要素の有効無効を表すマスクビット生成命令実行時のベクトル長と有効な前記マスクビットの数を数える演算での前記ベクトル長を比較し、前記ベクトル長が一致しない場合に有効な前記マスクビットの数を数える演算を一括して前記マスクビット一括演算手段で行うことを特徴とするマスクビット数演算装置。
【請求項３】
複数の構成要素からなるベクトルの前記要素の有効無効を表すマスクビットを格納する複数のマスクレジスタを有するマスクビット数演算装置であって、
前記マスクビット数演算装置は、上位装置より出力された演算対象となるそれぞれの前記要素に対応し前記要素の有効無効を所定の値と比較して判別しマスクビットを生成するマスクビット生成手段と、前記マスクビット生成手段より生成された前記マスクビットを格納する複数のマスクレジスタと、前記マスクレジスタより出力された所定の値と比較してマスクビットをベクトル長を考慮して一括して有効な前記マスクビットの数を数える演算を行うマスクビット一括演算手段を有し、
前記マスクレジスタ対応に設けられ前記マスクビットを生成した時の命令で指定された前記ベクトル長を格納保持するベクトル長保持手段Ａと、前記マスクビット生成手段より出力された前記マスクデータと前記要素を前記所定の値と比較し、比較結果毎に順次加算処理を行う加算カウンタ手段と、前記加算カウンタ手段の結果を格納し保持する結果保持手段と、前記加算カウンタ手段で加算処理を行った有効な前記マスクビットの数を数える演算命令に対応する前記ベクトル長を格納するベクトル長保持手段Ｂと、前記有効な前記マスクビットの数を数える演算処理実行時に前記ベクトル長保持手段Ａと前記ベクトル長保持手段Ｂに格納された前記ベクトル長の比較を行う結果選択制御手段とを有し、
前記結果選択制御手段での比較結果によって一致した場合は前記結果保持手段より出力される結果を、不一致の場合は前記マスクレジスタに格納されている対応する全ての前記マスクビットの前記有効な前記マスクビットの数を数える演算を一括して前記マスクビット一括演算手段で行い、出力される結果を前記結果選択手段で選択し前記有効な前記マスクビットの数を数える演算の演算結果とする事を特徴とするマスクビット数演算装置。
【請求項４】
請求項３記載のマスクビット数演算装置において、前記結果選択制御手段、前記加算カウンタ手段、前記ベクトル長保持手段Ａ、前記ベクトル長保持手段Ｂ、前記マスクビット一括演算手段、前記結果選択制御手段をハードウエア制御としたことを特徴とするマスクビット数演算装置。
【請求項５】
請求項１、２、３または４記載のマスクビット数演算装置とベクトル命令処理装置を有することを特徴とするベクトル処理装置。
【請求項６】
入出力装置と中央処理装置と主記憶装置と請求項５記載のベクトル処理装置をバスで接続したことを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はベクトル演算処理装置に関し、特にマスクビット生成命令実行時のベクトル長と有効なマスクビットの数を数える演算の高速化に関する。
【０００２】
【従来の技術】
従来、ベクトルレジスタの各ワード毎に対応しベクトルデータの演算有効又は無効を判別するマスクビットに対して、マスクビットの数を数える演算(以後ＰＣＮＴ演算とする)演算において加算カウンタ手段を用いた場合は、マスクビット生成処理が入力データとある値を比較して有効か無効かを示す事からマスクビット生成処理中に加算処理を行っていた。または、マスクビット一括演算手段を用いていた。
【０００３】
特開平７−２７１７６５号公報「ベクトル演算装置」には,マスクデータの全ビットに対して先頭ビットから有効ベクトル長で指定された値のビットまでのマスクデータはそのまま出力し、有効ベクトル長で指定された値のビットから最大有効長ビットまでのマスクデータをそのまま出力し、有効ベクトル長で
指定された値のビットから最大有効長ビットまでのマスクデータは”０”に差し替え出力する有効ビット判定部と、有効ビット判定済みのすべてのマスクデータに対して値が”１”であるビット数を計算するビット”１”カウント演算部を有するベクトル演算装置が開示されている。
【０００４】
【発明が解決しようとする課題】
従来、ベクトルレジスタの各ワード毎に対応しベクトルデータの演算有効又は無効を判別するマスクビットに対して、ＰＣＮＴ演算において加算カウンタ手段を用いた場合は、マスクビット生成処理が入力データとある値を比較して有効か無効かを示す事からマスクビット生成処理中に加算処理を行う事ができるが、ベクトル長が変化した場合、再度加算カウンタ手段で計算を行わなければならないという問題点があった。他方マスクビット一括演算手段を用いた場合は、マスクビット生成処理が完了した後、ベクトル長の変化を考慮し再計算する事無く一括して演算を行う事が出来るが、ベクトル長が変化しない場合はマスクビット生成処理中にカウンタを用いて行った演算と比較し、低速であるという欠点があった。
【０００５】
特開平７−２７１７６５号公報「ベクトル演算装置」には,ベクトル長の変化を考慮していない。
【０００６】
【課題を解決するための手段】
本発明第一のマスクビット数演算装置は、複数の構成要素からなるベクトルの前記要素の有効無効を表すマスクビットを格納する複数のマスクレジスタを有するマスクビット数演算装置であって、演算対象となる前記要素に対応した前記要素の有効無効を表すマスクビット生成命令実行時のベクトル長と有効な前記マスクビットの数を数える演算での前記ベクトル長を比較し、前記マスクデータを要素の所定の値との比較結果毎に順次加算処理を行い、前記ベクトル長が一致した場合に前記加算処理の結果を出力することを特徴とするマスクビット数演算装置。
【０００７】
本発明第二のマスクビット数演算装置は、複数の構成要素からなるベクトルの前記要素の有効無効を表すマスクビットを格納する複数のマスクレジスタを有するマスクビット数演算装置であって、演算対象となる前記要素に対応した前記要素の有効無効を表すマスクビット生成命令実行時のベクトル長と有効な前記マスクビットの数を数える演算での前記ベクトル長を比較し、前記ベクトル長が一致しない場合に前記マスクビットの前記有効な前記マスクビットの数を数える演算を一括して前記マスクビット一括演算手段で行う。
【０００８】
本発明第三のマスクビット数演算装置は、複数の構成要素からなるベクトルの前記要素の有効無効を表すマスクビットを格納する複数のマスクレジスタを有するマスクビット数演算装置であって、前記マスクビット数演算装置は、上位装置より出力された演算対象となるそれぞれの前記要素に対応し前記要素の有効無効を所定の値と比較して判別しマスクビットを生成するマスクビット生成手段と、前記マスクビット生成手段より生成された前記マスクビットを格納する複数のマスクレジスタと、前記マスクレジスタより出力された所定の値と比較してマスクビットをベクトル長を考慮して一括して有効な前記マスクビットの数を数える演算を行うマスクビット一括演算手段を有し、前記マスクレジスタ対応に設けられ前記マスクビットを生成した時の命令で指定された前記ベクトル長を格納保持するベクトル長保持手段Ａと、前記マスクビット生成手段より出力された前記マスクデータと前記要素を前記所定の値と比較し、比較結果毎に順次加算処理を行う加算カウンタ手段と、前記加算カウンタ手段の結果を格納し保持する結果保持手段と、前記加算カウンタ手段で加算処理を行った前記有効な前記マスクビットの数を数える演算命令に対応する前記ベクトル長を格納するベクトル長保持手段Ｂと、前記有効な前記マスクビットの数を数える演算処理実行時に前記ベクトル長保持手段Ａと前記ベクトル長保持手段Ｂに格納された前記ベクトル長の比較を行う結果選択制御手段とを有し、前記結果選択制御手段での比較結果によって一致した場合は前記結果保持手段より出力される結果を、不一致の場合は前記マスクレジスタに格納されている対応する全ての前記マスクビットの前記有効な前記マスクビットの数を数える演算を一括して前記マスクビット一括演算手段で行い、出力される結果を前記結果選択手段で選択し前記有効な前記マスクビットの数を数える演算の演算結果とする。
【０００９】
本発明第四のマスクビット数演算装置は、  本発明第三のマスクビット数演算装置であって、前記結果選択制御手段、前記加算カウンタ手段、前記ベクトル長保持手段Ａ、前記ベクトル長保持手段Ｂ、前記マスクビット一括演算手段、前記結果選択制御手段をハードウエア制御とした。
【００１０】
本発明のベクトル処理装置は、本発明第一、第二、第三または第四のマスクビット数演算装置とベクトル命令処理装置を有する。
【００１１】
本発明の情報処理装置は入出力装置と中央処理装置と主記憶装置と本発明のベクトル処理装置をバスで接続した。
【００１２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１３】
図１は、本発明実施の形態のマスクビット数演算装置の構成を示すブロック図である。図１を参照すると、主記憶装置１はベクトルデータが格納されている。主記憶装置１は格納されているベクトルデータをベクトルレジスタ２１に対して出力する。
【００１４】
マスクビット生成命令はベクトル命令処理装置２２により解釈される。マスクビット生成命令により、マスクビット生成手段２３３はベクトルレジスタ２１より出力されたベクトルデータの要素が有効であるか無効であるかを各要素に対して比較する。マスクビット生成手段２３３は、各要素の比較処理が出来次第、比較結果として逐次マスクビットを出力する。加算カウンタ手段２３６は、マスクビット生成処理中に次処理対象命令として有効なマスクビットの数を数える演算(以後ＰＣＮＴ演算とする)を行う場合、マスクビット生成手段２３３より逐次出力されているマスクビットの値を逐次累積加算する。ベクトル長保持手段Ｂ２３８は、ＰＣＮＴ演算処理のベクトル長を格納し保持するレジスタを有する。結果保持手段２３７は、加算カウンタ手段２３６の結果を格納し保持するレジスタを有する。マスクビット生成命令時にマスクビット生成手段２３３からマスクレジスタ２３４に対してマスクビットが格納されるが、ベクトル長保持手段Ａ２３５は、マスクレジスタ２３４に格納されたマスクビットと対応しマスク生成命令のベクトル長を格納する。
【００１５】
結果選択制御手段２３１では、マスクビット生成命令終了時にベクトル長保持手段Ａ２３５に保持してあるマスクビット生成命令のベクトル長と、ベクトル長格納手段Ｂ２３８に保持してあるベクトル長の比較を行う。比較の結果ベクトル長が一致した場合、結果選択制御手段２３１は、結果保持手段２３７に保持された値を選択し、不一致の場合は、マスクビット一括演算手段２３９の出力を選択する。マスクビット一括演算手段２３９は、結果選択手段２３２で不一致となった場合にあらためてマスクレジスタ２３４より格納されている全てのマスクビットを読み出し、ＰＣＮＴ演算のベクトル長に従い、ＰＣＮＴ演算を行う。
【００１６】
次に、本発明の実施の形態の動作について図面を参照して説明する。マスクビット生成命令はベクトル命令処理装置２２により解釈される。マスクビット生成命令により、主記憶装置１からベクトルデータが複数のベクトルレジスタ２１に対して出力される。この時、マスクビット生成命令のベクトル長をベクトル長格納保持手段Ａ２３５に格納する。ベクトルレジスタ２１より出力されたベクトルデータの要素が有効であるか無効であるかを各要素に対して比較するマスクビット生成手段２３３は、各要素の比較処理が出来次第、比較結果として逐次マスクビットを出力する。
【００１７】
マスクビット生成命令処理実行中にＰＣＮＴ演算を発行した場合、加算カウンタ手段２３６は、逐次出力される各要素に対するマスクビットの累積加算処理を行う。同時に当該ＰＣＮＴ演算のベクトル長をベクトル長保持手段Ｂ２３８に格納し保持しておく。また、マスクレジスタに対してはＰＣＮＴ演算の有無に関わらずマスクビット生成手段２３３での比較生成されたマスクビットが出来次第、値を格納する。
【００１８】
マスクビット生成手段２３３において全ての要素に対する比較が終わった時点で、ＰＣＮＴ命令が発行されていた場合、加算カウンタ手段２３６では、全ての要素に対する累積加算処理は完了する。結果保持手段２３７は、加算カウンタ手段２３６の累積加算結果を格納する。同時に結果選択制御手段２３１は、ベクトル長保持手段Ａ２３５に格納されているマスクデータ生成命令のベクトル長とベクトル長保持手段Ｂ２３８に格納されているＰＣＮＴ演算のベクトル長の比較を行う。
【００１９】
比較結果が一致していた場合、即ちマスクビット生成命令とＰＣＮＴ演算の有効ベクトル長が同一の場合は、加算カウンタ手段２３６で累積加算した結果をＰＣＮＴ演算の結果と出来る事から、結果選択手段２３２に対して結果保持手段２３７の値を選択する。
【００２０】
比較結果が不一致の場合は、加算カウンタ手段２３６で累積加算した結果をＰＣＮＴ演算の結果とできない為、改めてマスクレジスタ２３４より当該マスク生成命令結果として格納された全てのマスクビットを読み出し指示を行う。マスクビット一括演算手段２３９では、ＰＣＮＴ演算の指示を受けた時、該命令のベクトル長を適用し、マスクレジスタ２３４より読み出されたマスクデータのに対して一括演算処理を行う。結果選択手段２３２は、改めてマスクビット一括演算手段２３９でＰＣＮＴ演算を行った場合、この結果をＰＣＮＴ演算の結果とし結果選択手段２３２に対してマスクビット一括演算手段２３９の値を選択する様指示する。
【００２１】
図２は、本発明実施の形態のベクトル処理装置の構成を示すブロック図である。ベクトル処理装置２は、上位装置９から命令とベクトルレジスタ２１を経由してデータの供給を受け、ベクトル命令処理装置２２で命令を処理し、マスクビット数演算装置２３で演算し、結果をベクトル命令処理装置２２へ返す。ベクトル命令処理装置２２はされに上位装置９へ結果を転送する。
【００２２】
図３は、本発明の実施の形態の情報処理装置を示すブロック図である。
【００２３】
本発明の情報処理装置は、ベクトル演算装置２、中央処理装置３、主記憶装置１、入出力装置４、およびそれぞれを接続するバス５から構成される。中央処理装置３は入出力装置４および主記憶装置１とバス５で接続されている。また、主記憶装置１は、中央処理装置３および入出力装置４とバス５で接続されている。中央処理装置３は主記憶装置１内に格納された制御プログラムを読み出し、その指示に従って入出力装置４あるいはベクトル演算装置２に対し指示を出し、入出力装置４からの情報をバス５を経由して主記憶装置１へストアしまたは主記憶装置１内の情報を読み出し入出力装置４へ書き込む。
【００２４】
【発明の効果】
この様にマスクビットの逐次累積加算処理を行う加算カウンタ手段２３６と、ベクトル長保持手段Ａ２３５とベクトル長保持手段Ｂ２３８、および結果選択制御手段２３１と結果選択制御手段２３１を用いる事により、ベクトル長保持手段Ａ２３５に格納されたマスクデータ生成命令のベクトル長とベクトル長保持手段Ｂ２３８に格納されたＰＣＮＴ演算のベクトル長を比較する事により、マスクビット生成命令処理が完了した時点でＰＣＮＴ演算結果が求められる事から、両ベクトル長が一致した場合はマスクビット一括演算手段２３９のみでＰＣＮＴ演算を行う装置より高速にＰＣＮＴ演算の結果を出力する事が出来るという効果を有する。
【図面の簡単な説明】
【図１】本発明実施の形態のマスクビット数演算装置の構成を示すブロック図である。
【図２】本発明実施の形態のベクトル処理装置の構成を示すブロック図である。
【図３】本発明実施の形態の情報処理装置の構成を示すブロック図である。
【符号の説明】
１    主記憶装置
２    ベクトル処理装置
３    中央処理装置
４    入出力装置
５    バス
９    上位装置
２１    ベクトルレジスタ
２２    ベクトル命令処理装置
２３    マスクビット数演算装置
２３１    結果選択制御手段
２３２    結果選択手段
２３３    マスクビット生成手段
２３４    マスクレジスタ
２３５    ベクトル長保持手段Ａ
２３６    加算カウンタ手段
２３７    結果保持手段
２３８    ベクトル長保持手段Ｂ
２３９    マスクビット一括演算手段
【図１】
0003693873.tif 000002
【図２】
0003693873.tif 000003
【図３】
0003693873.tif 000004