(57)【要約】【課題】チェイニングパスが必要なときに、演算器に含まれるレジスタへの無駄なラッチをなくし、リソースの削減および消費電力の低減化を図る。【解決手段】レジスタリードユニット４−１のチェイニング回路４２は、例えば、演算器１−１のベクトル演算で使用しているスカラデータと、演算器１−２の演算結果であるスカラデータと格納するレジスタが一致するか否かを判定し、一致した場合にはチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮを生成する。この場合には、チェイニング回路４２は、チェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮを用いて、演算器１−２の出力データＤＳＴ１−ＤＡＴＡを演算器１−１にチェインパスさせるとともに、レジスタ１３はそれをラッチするようになっている。【選択図】  図１
2004303058.tif 000002
【特許請求の範囲】
【請求項１】
ベクトルデータとスカラデータをそれぞれ格納する複数からなるレジスタ群と、
ベクトルデータまたはスカラデータを用いて２つのデータ間の演算を行うｎ個の演算器と、
前記ｎ個の演算器の各演算結果を取り込み、チェイニングが必要なときにその各演算結果を所望の演算器の入力側に供給する２ｎ個のチェイニング回路とを備え、
前記各チェイニング回路は、前記チェイニングが可能なときに対応する演算器に対してチェイニング・イネーブル信号を生成するようになっており、
前記各演算器は、前記レジスタ群からのデータまたは前記ｎ個の演算器からの演算データのうちの１つを一時的に格納する記憶素子を含み、
前記記憶素子は、前記チェイニング・イネーブル信号がある場合にはそのチェイニングに係る演算器からの演算データを記憶するようになっていることを特徴とするベクトルプロセッサ。
【請求項２】
第１演算器でベクトル演算の演算中に、第２演算器のスカラ演算の演算結果を使用できるベクトルプロセッサにおいて、
前記第１演算器のベクトル演算で使用しているスカラデータと、前記第２演算器の演算結果であるスカラデータと、を格納するレジスタが一致したか否かを検出し、一致したときにはチェイニング・イネーブル信号を生成するようにし、
前記チェイニング・イネーブル信号が生成された場合に、前記第２演算器からの出力データを前記第１演算器にパスさせて、その第１演算器が有するパイプラインレジスタにラッチさせるようにしたことを特徴とするベクトルプロセッサのデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル演算を高速に実行するベクトルプロセッサおよびその演算処理方法に関するものである。
【０００２】
【従来の技術】
ベクトルプロセッサは、第１の演算器の出力を、第２の演算器の入力として使用する場合には、いったんレジスタを経由することで１サイクル余分な処理を行わずに、第１の演算器の出力を第２の演算器の入力側にパスする経路を設けることで実行サイクルを短縮する手法が、チェイニング手法として知られている。
【０００３】
このようなチェイニング手法を用いた従来装置としては、データ処理装置（特許文献１参照）や、ベクトル演算処理装置（特許文献２参照）などが知られている。
特許文献１に記載のデータ処理装置は専用レジスタを指定することにより、また、特許文献２に記載のベクトル演算処理装置は汎用レジスタの少なくとも１つを指定することにより、チェイニングパスを有効にする方法（手段）が開示されている。
【０００４】
【特許文献１】
特開昭６１−２３２７６号公報
【特許文献２】
特開昭５６−８８５６１号公報
【０００５】
【発明が解決しようとする課題】
しかし、特許文献１に記載のデータ処理装置では、専用のレジスタを持つようになっているので回路の増加となり、特に、チェイニングのパスを増加したい場合などには、回路規模が増加してしまうという不具合がある。
また、特許文献２に記載のベクトル演算処理装置では、汎用レジスタを使用しているので汎用性に優れるが、第１の演算結果が常に変化しないような演算（演算の途中で一度だけ入力を変化させたい場合など）でも、常に前の演算結果を取り込んでくるような形になってしまう。
【０００６】
ところで、ベクトルプロセッサにおいて、並列動作が可能な複数の演算器と、ベクトルデータを格納するベクトルレジスタと、スカラレジスタを格納するスカラレジスタとを備えるものが知られている。
このようなプロセッサにおいて、ベクトルレジスタ同士の演算は、例えば次の（１）式のようになる。
【０００７】
ΣＶＲｘ〔ｉ〕＋Ｖｒｙ〔ｉ〕・・・・（１）
この場合には、同じ要素同士を掛け合わせればよいが、その要素として値が一定になる場合が多い演算係数や定数の場合には、同一のデータをベクトルレジスタにいくつも重複して書き込む必要があり、リソースの有効利用という点から非効率的である。
【０００８】
一方、ベクトルレジスタとスカラレジスタの演算の場合には、例えば次の（２）式のようになる。
ΣＶＲｘ〔ｉ〕＋ＳＲｙ・・・・（２）
この場合には、第２のオペランドＳＲｙを変更したい場合には、いったんベクトル演算を停止させ、そのオペランドＳＲｙを書き換えてから新たに演算を行うなどの特別な操作が必要となるため、命令コードの複雑化が考えられる。
【０００９】
換言すると、演算の途中において、一度だけ値を書き込むような第１の演算（スカラ演算）の演算結果を、第２のベクトル演算の入力としたい場合には、従来のチェイニング手法では、第１の演算をベクトル化するなどのソフトウエア側での工夫が必要であると共に、必要でない演算をも行うために消費電力の増加などのデメリットも考えられる。
【００１０】
そこで、本発明の目的は、チェイニングパスが必要なときに、演算器に含まれるレジスタへの無駄なラッチをなくすようにし、リソースの削減および消費電力の低減化を図ることができるベクトルプロセッサおよびその演算処理方法を提供することにある。
【００１１】
【課題を解決するための手段】
上記の課題を解決し本発明の目的を達成するために、各発明は、以下のように構成した。
すなわち、第１の発明は、ベクトルデータとスカラデータをそれぞれ格納する複数からなるレジスタ群と、ベクトルデータまたはスカラデータを用いて２つのデータ間の演算を行うｎ個の演算器と、前記ｎ個の演算器の各演算結果を取り込み、チェイニングが必要なときにその各演算結果を所望の演算器の入力側に供給する２ｎ個のチェイニング回路とを備え、前記各チェイニング回路は、前記チェイニングが可能なときに対応する演算器に対してチェイニング・イネーブル信号を生成するようになっており、前記各演算器は、前記レジスタ群からのデータまたは前記ｎ個の演算器からの演算データのうちの１つを一時的に格納する記憶素子を含み、前記記憶素子は、前記チェイニング・イネーブル信号がある場合にはそのチェイニングに係る演算器からの演算データを記憶するようにした。
【００１２】
また、第２の発明は、第１演算器でベクトル演算の演算中に、第２演算器のスカラ演算の演算結果を使用できるベクトルプロセッサにおいて、前記第１演算器のベクトル演算で使用しているスカラデータと、前記第２演算器の演算結果であるスカラデータと、を格納するレジスタが一致したか否かを検出し、一致したときにはチェイニング・イネーブル信号を生成するようにし、前記チェイニング・イネーブル信号が生成された場合に、前記第２演算器からの出力データを前記第１演算器にパスさせて、その第１演算器が有するパイプラインレジスタにラッチさせるようにした。
【００１３】
このように本発明は、少なくとも１つの汎用レジスタに対してチェイニングパスを設けるとともに、チェイニングパスが、そのレジスタに対するデータの書き込み要求と読み出し要求とが重なった場合に有効になるようにし、そのデータをチェイニングに係る演算器に伝えるようにした。
このため、本発明によれば、チェイニングパスが必要ときに、演算器が有するレジスタの無駄なラッチがなくなり、リソースの削減および消費電力の低減化を図ることができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
図１は、本発明のベクトルプロセッサの実施形態の構成を示すブロック図である。
この実施形態に係るベクトルプロセッサは、図１に示すように、ｎ個からなる演算器１−１、１−１・・・・１−ｎと、レジスタライト回路２と、レジスタ群３と、ｎ個のレジスタリードユニット４−１、４−２・・・・４−ｎおよびｎ個のレジスタリードユニット５−１、５−２・・・・５−ｎからなるレジスタリード回路６と、プログラム制御回路７と、を備えている。
【００１５】
演算回路１−１は演算を行う回路であり、マルチプレクサ１１、１２と、記憶素子であるレジスタ（パイプラインレジスタ）１３、１４と、演算ブロック１５と、制御ブロック１６とを備えている。
マルチプレクサ１１には、プログラム制御回路７からのイネーブル信号ＳＲＣＡ１−ＥＮと、レジスタリードユニット４−１からのチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮが供給され、その両信号は制御ブロック１６からの制御により後述のように選択されるようになっている。
【００１６】
マルチプレクサ１２には、プログラム制御回路７からのイネーブル信号ＳＲＣＢ１−ＥＮと、レジスタリードユニット５−１からのチェイニング・イネーブル信号ＳＲＣＢ１−ＣＨＥＮが供給され、その両信号は制御ブロック１６からの制御により選択されるようになっている。
ここで、イネーブル信号ＳＲＣＡ１−ＥＮ、ＳＲＣＢ１−ＥＮは、演算器１−１に対するデータの書き込みを許可する信号である。
【００１７】
レジスタ１３は、レジスタリードユニット４−１からのデータＳＲＣＡ１−ＤＡＴＡを記憶するものであり、マルチプレクサ１１からのイネーブル信号ＳＲＣＡ１−ＥＮまたはレジスタリードユニット４−１からのチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮにより動作するようになっている。
レジスタ１４は、レジスタリードユニット５−１からのデータＳＲＣＢ１−ＤＡＴＡを記憶するものであり、マルチプレクサ１２からのイネーブル信号ＳＲＣＢ１−ＥＮまたはレジスタリードユニット５−１からのチェイニング・イネーブル信号ＳＲＣＢ１−ＣＨＥＮにより動作するようになっている。
【００１８】
演算ブロック１５は、レジスタ１３およびレジスタ１４に記憶されるデータを用いて所望の演算を行うものである。この演算ブロック１５（演算器１−１）の演算結果である演算データＤＳＴ１−ＤＡＴＡは、レジスタライト回路２、レジスタリードユニット４−１〜４−ｎの各チェイニング回路４２、およびレジスタリードユニット５−１〜５−ｎの各チェイニング回路（図示せず）に供給されるようになっている。
【００１９】
制御ブロック１６は、プログラム制御回路７からの指令に基づき、演算命令がベクトル命令またはスカラ命令であるかを判定し、この判定の結果、スカラ命令の場合には、マルチプレクサ１１またはマルチプレクサ１２がイネーブル信号ＳＲＣＡ１−ＥＮまたはイネーブル信号ＳＲＣＡ１−ＥＮを選択してレジスタ１３またはレジスタ１４に出力する制御を行う。また、その判定の結果、ベクトル命令の場合には、マルチプレクサ１１またはマルチプレクサ１２がチェイニング・イネーブル信号ＳＲＣＡ１−ＥＮまたはチェイニング・イネーブル信号ＳＲＣＡ１−ＥＮを選択してレジスタ１３またはレジスタ１４に出力する制御を行う。
【００２０】
また、制御ブロック１６は、演算ブロック１６からの演算データＤＳＴ１−ＤＡＴＡの出力を許可するイネーブル信号ＤＳＴ１−ＥＮを、レジスタライト回路２に出力するようになっている。
演算器１−２〜１−ｎの内部の構成は、演算器１−１と同様であるが、その入力信号と出力信号が異なるので、その各種の信号との関係について以下に説明する。
【００２１】
演算器１−２〜１−ｎには、レジスタリードユニット４−２〜４−ｎから出力されるデータＳＲＣＡ２−ＤＡＴＡ〜ＳＲＣＡｎ−ＤＡＴＡ、およびレジスタリードユニット５−２〜５−ｎから出力されるデータＳＲＣＢ２−ＤＡＴＡ〜ＳＲＣＢｎ−ＤＡＴＡが入力されるようになっている。
また、演算器１−２〜１−ｎには、プログラム制御回路７から出力されるイネーブル信号ＳＲＣＡ２−ＥＮ〜ＳＲＣＡｎ−ＥＮ、およびイネーブル信号ＳＲＣＢ２−ＥＮ〜ＳＲＢＡｎ−ＥＮが入力されるようになっている。
【００２２】
さらに、演算器１−２〜１−ｎには、レジスタリードユニット４−２〜４−ｎから出力されるチェイニング・イネーブル信号ＳＲＣＡ２−ＣＨＥＮ〜ＳＲＣＡｎ−ＣＨＥＮ、およびレジスタリードユニット５−２〜５−ｎから出力されるチェイニング・イネーブル信号ＳＲＣＢ２−ＣＨＥＮ〜ＳＲＣＢｎ−ＣＨＥＮから出力されるようになっている。
【００２３】
また、演算器１−２〜１−ｎからの演算データＤＳＴ２−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡは、レジスタライト回路２、レジスタリードユニット４−１〜４−ｎの各チェイニング回路４２、およびレジスタリードユニット５−１〜５−ｎの各チェイニング回路（図示せず）に供給されるようになっている。
さらに、演算器１−２〜１−ｎからのイネーブル信号ＤＳＴ２−ＥＮ〜ＤＳＴｎ−ＥＮは、レジスタライト回路２に出力するようになっている。
【００２４】
レジスタライト回路２は、演算器１−１〜１−ｎからのイネーブル信号ＤＳＴ１−ＥＮ〜ＤＳＴｎ−ＥＮと、プログラム制御回路７からのセル指定信号ＤＳＴ１−ＳＥＬ〔ｍ〕〜ＤＳＴｎ−ＳＥＬ〔ｍ〕とに基づき、レジスタ群３の所望のレジスタに格納する書き込み信号ＷＲ−ＥＮ〔ｍ〕と、その所望のレジスタに格納する書き込みデータＷＲ−ＤＡＴＡ〔ｍ〕を生成するようになっている。
【００２５】
また、レジスタライト回路２は、演算器１−１〜１−ｎからの各イネーブル信号ＤＳＴ１−ＥＮ〜ＤＳＴｎ−ＥＮと、これに対応するプログラム制御回路７からの各セル指定信号ＤＳＴ１−ＳＥＬ〔ｍ〕〜ＤＳＴｎ−ＳＥＬ〔ｍ〕との間で論理積演算を行い、各書き込み信号ＤＳＴ１−ＷＥ〔ｍ〕〜ＤＳＴｎ−ＷＥ〔ｍ〕を生成するようになっている。例えば、イネーブル信号ＤＳＴ１−ＥＮとセル指定信号ＤＳＴ１−ＳＥＬ〔ｍ〕との間で論理積演算を行い、書き込み信号ＤＳＴ１−ＷＥ〔ｍ〕を生成するようになっている。
【００２６】
レジスタライト回路２で生成される書き込み信号ＤＳＴ１−ＷＥ〔ｍ〕〜ＤＳＴｎ−ＷＥ〔ｍ〕は、レジスタリードユニット４−１〜４−ｎの各チェイニング回路４２、およびレジスタリードユニット５−１〜５−ｎの各チェイニング回路（図示せず）に供給されるようになっている。
レジスタ群３は、演算器１−１〜１−ｎからの各演算データＤＳＴ１−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡを格納するためのｍ個のレジスタからなる。このｍ個のレジスタは、ベクトルデータを格納するベクトルレジスタと、スカラデータを格納するスカラレジスタとからなる。
【００２７】
このレジスタ群３のｍ個のレジスタの各データは、レジスタリードユニット４−１〜４−ｎの各リードレジスタ選択回路４１、およびレジスタリードユニット５−１〜５−ｎの各リードレジスタ選択回路（図示せず）に供給されるようになっている。
レジスタリードユニット４−１〜４−ｎは、レジスタ群３のうちの所望のレジスタのデータまたは演算器１−１〜１−ｎからのデータＤＳＴ１−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡのうちの１つを選択的に読み出し、この読み出したデータＳＲＣＡ１−ＤＡＴＡ〜ＳＲＣＡｎ−ＤＡＴＡを、対応する演算器１−１〜１−ｎに供給するようになっている。
【００２８】
また、レジスタリードユニット４−１〜４−ｎは、チェイニング回路４２により後述のようにチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮ〜ＳＲＣＡｎ−ＣＨＥＮを生成し、これを対応する演算器１−１〜１−ｎに供給するようになっている。
このため、レジスタリードユニット４−１は、図１に示すように、リードレジスタ選択回路４１と、チェイニング回路４２と、マルチプレクサ（ＭＵＸ）４３とを備えている。
【００２９】
リードレジスタ選択回路４１は、プログラム制御回路７からのイネーブル信号ＳＲＣＡ１−ＥＮとセル選択信号ＳＲＣＡ１−ＳＥＬ〔ｍ〕に基づき、レジスタ群３のｍ個のレジスタのうちの１つからのデータを選択してマルチプレクサ４３に供給するようになっている。
チェイニング回路４２は、レジスタライト回路２からの書き込み信号ＤＳＴ１−ＷＥ〔ｍ〕〜ＤＳＴｎ−ＷＥ〔ｍ〕と、リードレジスタ選択回路４１からの読み出し信号ＳＲＣＡ１−ＲＥ〔ｍ〕とに基づいてチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮを生成するとともに、チェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮが生成されたときには、演算器１−１〜１−ｎからのデータＤＳＴ１−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡのうちの１つが、マルチプレクサ４３に供給されるようになっている。
【００３０】
マルチプレクサ４３は、通常はリードレジスタ選択回路４１で選択されたレジスタ群３のレジスタのうちの１のデータを出力し、チェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮが出力されたときには、チェイニング回路４２から出力されるデータＤＳＴ１−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡのうちの１つを出力させるものである。
【００３１】
ここで、レジスタリードユニット４−２〜４−ｎは、その内部構成はレジスタリードユニット４−１と同様であるのでその説明は省略し、その入力信号と出力信号は図示の通りである。
次に、レジスタリードユニット５−１〜５−ｎは、レジスタ群３のうちの所望のレジスタのデータまたは演算器１−１〜１−ｎからのデータＤＳＴ１−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡのうちの１つを選択的に読み出し、この読み出したデータＳＲＣＢ１−ＤＡＴＡ〜ＳＲＣＢｎ−ＤＡＴＡを、対応する演算器１−１〜１−ｎに供給するようになっている。
【００３２】
また、レジスタリードユニット５−１〜５−ｎは、チェイニング回路（図示せず）によりチェイニング・イネーブル信号ＳＲＣＢ１−ＣＨＥＮ〜ＳＲＣＢｎ−ＣＨＥＮを生成し、これに対応する演算器１−１〜１−ｎに供給するようになっている。
ここで、レジスタリードユニット５−１〜５−ｎの内部構成は、レジスタリードユニット４−１〜４−ｎと同様であるので、その説明は省略する。
【００３３】
プログラム制御回路７は、ベクトル命令またスカラ命令に基づいて、演算器１−１〜１−ｎがその命令に基づいて演算を行い、その演算結果をレジスタ群３の所望のレジスタへ格納したり、またはその演算結果をそのまま演算器１−１〜１−ｎに入力させたりするために、各部に上記のような各信号を供給する回路である。
【００３４】
次に、チェイニング回路４２の具体的な構成について、図２を参照して説明する。
このチェイニング回路４２は、ｎ個のコンパレータ（比較器）４２１−１〜４２１−ｎと、ｎ個のアンド回路４２２−１〜４２２−ｎと、オア回路４２３と、オア回路４２４とを備えている。
【００３５】
コンパレータ４２１−１〜４２１−ｎの一方の各入力端子には、レジスタライト回路３からの各書き込み可能信号ＤＳＴ１−ＷＥ〔ｍ〕〜ＤＳＴｎ−ＷＥ〔ｍ〕がそれぞれ入力され、その他方の各入力端子にはリードレジスタ選択回路４１からの読み出し信号ＳＲＣＡ１−ＲＥ〔ｍ〕が入力されるようになっている。
コンパレータ４２１−１〜４２１−ｎからの各出力信号は、オア回路４２３に供給されて論理和演算行われ、その演算結果がチェイニング・イネーブル信号ＳＲＣＡ−ＣＨＥＮとして出力されるようになっている。また、コンパレータ４２１−１〜４２１−ｎからの各出力信号は、対応するアンド回路４２２−１〜４２２−ｎの一方の各入力端子に供給されるようになっている。
【００３６】
さらに、アンド回路４２２−１〜４２２−ｎの他方の各入力端子には、演算器１−１〜１−ｎからのデータＤＳＴ１−ＤＡＴＡ〜ＤＳＴｎ−ＤＡＴＡが入力されるようになっている。また、アンド回路４２２−１〜４２２−ｎの各出力信号は、オア回路４２３に供給されて論理和演算行われ、その演算結果がデータＳＲＣＡ−ＤＡＴＡとして出力されるようになっている。
【００３７】
次に、このような構成からなる実施形態の演算処理について、図１および図２を参照して説明する。
この演算処理例では、演算器１−１でベクトル演算の演算中に、演算器１−２のスカラ演算の演算結果を入力として使用する場合であって、演算器１−１のベクトル演算で使用しているスカラデータと、演算器１−２の演算結果であるスカラデータとを格納するレジスタが一致する場合について説明する。
【００３８】
この場合には、演算器１−１のレジスタ１３にはスカラデータが格納され、レジスタ１４にはベクトルデータが格納され、この両データが演算ブロック１５で演算されているものとする。演算器１−１は、その演算結果であるデータＤＳＴ１−ＤＡＴＡを、レジスタライト回路２、レジスタリードユニット４−１〜４−ｎ、およびレジスタリードユニット５−１〜５−ｎにそれぞれ出力する。
【００３９】
ここで、レジスタ１３に格納されるスカラデータは、レジスタ群３中の任意のレジスタに格納されているものが使用される。
このように、演算器１−１のベクトル演算の演算中に、演算器１−２のスカラ演算の演算結果であるスカラデータＤＳＴ２−ＤＡＴＡを、演算器１−１にチェイニングパスさせる場合の動作について説明する。
【００４０】
この場合には、そのスカラデータＤＳＴ２−ＤＡＴＡは、レジスタライト回路２によりレジスタ群３中のうちの上記と同じレジスタに格納されるとともに、レジスタリードユニット４−１のチェイニング回路４２によりパスされてデータＳＲＣＡ１−ＤＡＴＡとなり、演算器１−１のレジスタ１３の内容が書き換えられる。
【００４１】
すなわち、レジスタライト回路２は、演算器１−２からのイネーブル信号ＤＳＴ２−ＥＮと、プログラム制御回路７からセル指定信号ＤＳＴ２−ＳＥＬ〔ｍ〕に基づき、レジスタ群３の上記のレジスタに格納する書き込み信号ＷＲ−ＥＮ〔ｍ〕と、その上記のレジスタに格納する書き込みデータＷＲ−ＤＡＴＡ〔ｍ〕を生成する。この結果、レジスタライト回路２は、スカラデータＤＳＴ２−ＤＡＴをその上記のレジスタに格納する。
【００４２】
また、レジスタライト回路２は、演算器１−１〜１−ｎからの各イネーブル信号ＤＳＴ１−ＥＮ〜ＤＳＴｎ−ＥＮと、これに対応するプログラム制御回路７からの各セル指定信号ＤＳＴ１−ＳＥＬ〔ｍ〕〜ＤＳＴｎ−ＳＥＬ〔ｍ〕との間でそれぞれ論理積演算を行い、各書き込み信号ＤＳＴ１−ＷＥ〔ｍ〕〜ＤＳＴｎ−ＷＥ〔ｍ〕を生成し、この各生成信号をレジスタリードユニット４−１のチェイニング回路４２に出力する。
【００４３】
この場合には、セル指定信号ＤＳＴ２−ＳＥＬ〔ｍ〕が、イネーブル信号ＤＳＴ２−ＥＮによって書き込み信号ＤＳＴ２−ＷＥ〔ｍ〕として出力される。
さらに、リードレジスタ選択回路４１は、プログラム制御回路７からのイネーブル信号ＳＲＣＡ１−ＥＮとセル選択信号ＳＲＣＡ１−ＳＥＬ〔ｍ〕との論理積演算を行い、その演算結果である読み出し信号データＳＲＣＡ−ＲＥ〔ｍ〕をチェイニング回路４２に出力する。
【００４４】
図２に示すチェイニング回路４２のコンパレータ４２１−１〜４２１−ｎの一方の各入力端子には、レジスタライト回路３からの各書き込み可能信号ＤＳＴ１−ＷＥ〔ｍ〕〜ＤＳＴｎ−ＷＥ〔ｍ〕がそれぞれ入力され、その他方の各入力端子にはリードレジスタ選択回路４１からの読み出し信号ＳＲＣＡ１−ＲＥ〔ｍ〕が入力される。
【００４５】
この場合には、コンパレータ４２１−２に入力される書き込み可能信号ＤＳＴ２−ＷＥ〔ｍ〕と読み出し信号ＳＲＣＡ１−ＲＥ〔ｍ〕が一致するので、その一致信号がオア回路４２３を経由してチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮとして出力される。このチェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮは、マルチプレクサ４３と演算器１−１のマルチプレクサ１１とにそれぞれ供給される。
【００４６】
また、アンド回路４２２−２は、その一方の入力端子にコンパレータ４２１−２からの上記の一致信号が入力され、その他方の入力端子に演算器１−２で演算された出力データＤＳＴ２−ＤＡＴＡが供給されている。このため、アンド回路４２２−２からは、上記の一致信号によってその出力データＤＳＴ２−ＤＡＴＡが出力され、この出力データがマルチプレクサ４３に供給される。
【００４７】
マルチプレクサ４３は、チェイニング・イネーブル信号ＳＲＣＡ１−ＣＨＥＮにより、チェイニング回路４２から出力される出力データをＤＳＴ２−ＤＡＴＡを演算器１−１のレジスタ１３に転送可能とする。
このとき、チェイニング回路４２からチェイニング・イネーブル信号ＳＲＣＢ−ＣＨＥＮがマルチプレクサを経由してレジスタ１３のイネーブル信号として使用されている。このため、その出力データＤＳＴ２−ＤＡＴＡは、レジスタ１３に格納される。
【００４８】
従って、演算器１−１は、レジスタ１４に格納されるベクトルデータと、上記のように演算器１−２の演算結果をパスさせてレジスタ１３に格納させたスカラデータとを用いてベクトル演算を行うことができる。
以上説明したように、この実施形態によれば、演算器１−１でベクトル演算の演算中に演算器１−２のスカラ演算の演算結果を入力として使用する場合のように、チェイニングが起こった場合に演算器のレジスタに必要なデータをラッチするようにした。このため、チェイニングが成立していない場合には、無駄なデータを演算器のレジスタにラッチせずに済むので、低消費電力化を実現することができる。
【００４９】
次に、上記の実施形態に係るベクトルプロッセを、画像処理の１つであるＤＣＴ演算処理に適用した場合について説明する。
ＤＣＴ（離散コサイン変換）は、画像データとＤＣＴ係数を掛け合わせる以下の（３）式のような演算処理である。
ΣＶＲ〔ｉ〕＊ＳＲ・・・・（３）
ここで、ＶＲ〔ｉ〕は画像データを格納したベクトルレジスタを示し、ＳＲはＤＣＴ係数を格納したスカラレジスタを示す。
【００５０】
ここで、ＤＣＴ係数にベクトルレジスタを使用しても良いが、画像データの高周波数側の係数の殆どが「０」である場合が多いため、ベクトルレジスタのリソース（資源）の節約という観点から、本実施例では「０」以外の値が示された場合にのみスカラレジスタに書き込みを行うことができる。
このため、スカラレジスタに書き込みがあった場合にのみ演算器側のパイプライン処理用のレジスタも動作させ、リソースの節約と同時に無駄な回路を動作させることなく、消費電力の低減化を図ることができる。
【００５１】
【発明の効果】
以上説明したように、本発明によれば、チェイニングパスが必要ときに、演算器が有するレジスタの無駄なラッチがなくなり、リソースの削減および消費電力の低減化を図ることができる。
【図面の簡単な説明】
【図１】本発明の実施形態の構成を示すブロック図である。
【図２】図１のチェイニング回路の具体的な構成を示す回路図である。
【符号の説明】
１−１〜１−ｎは演算器、２はレジスタライト回路、３はレジスタ群、４−１〜４−ｎはレジスタリードユニット、５−１〜５−ｎはレジスタリードユニット、６はレジスタリード回路、７はプログラム制御回路、１１、１２はマルチプレクサ、１３、１４はレジスタ１３、１４、１５は演算ブロック、１６は制御ブロック、４１はリードレジスタ選択回路、４２はチェイニング回路、４３はマルチプレクサである。
【図１】
2004303058.tif 000003
【図２】
2004303058.tif 000004