(57)【特許請求の範囲】
【請求項１】
データレジスタの出力および係数レジスタの出力を積和演算する積和演算器であって、
前記データレジスタの出力および前記係数レジスタの出力を乗算する乗算手段と、
該乗算手段の出力を受け取る加算手段と、
該加算手段の出力を保持する中間データラッチ手段とを具備し、
前記加算手段は、前記乗算手段の出力と前記中間データラッチ手段の出力とを加算するようになっており、
前記データレジスタは、新しいデータを転送したとき、以前に転送されたデータが順次シフトし、前記新しいデータと前記以前に転送されたデータを保持するように構成された複数のデータ用レジスタユニットを備え、
前記係数レジスタは、前記データ用レジスタユニットに対応する複数の係数用レジスタユニットを備えたことを特徴とする積和演算器。
【請求項２】
前記データレジスタおよび前記係数レジスタは、ＣＰＵが繋がれたデータバスに接続され、前記加算手段の出力は演算結果ラッチ手段を介して該データバスへ供給されるようになっていることを特徴とする請求項１の積和演算器。
【請求項３】
前記データレジスタの入力には、前記データバスからのデータと前記加算手段からの演算結果出力とを選択するセレクタが設けられていることを特徴とする請求項２の積和演算器。
【請求項４】
前記データレジスタの入力には、前記データバスからのデータと前記演算結果ラッチ手段の出力とを選択するセレクタが設けられていることを特徴とする請求項２の積和演算器。
【請求項５】
前記演算結果ラッチ手段は、複数の演算結果用レジスタユニットを備え、前記ＣＰＵが以前の演算結果を参照できるようになっていることを特徴とする請求項２の積和演算器。
【請求項６】
前記データレジスタは複数設けられ、該複数のデータレジスタの任意の１つの出力をセレクタで選択して前記乗算手段へ供給するようにしたことを特徴とする請求項１の積和演算器。
【請求項７】
前記複数のデータレジスタは分割して使用され、該各データレジスタに対応する複数の演算を行うようになっていることを特徴とする請求項６の積和演算器。
【請求項８】
前記複数のデータレジスタは一括して使用され、該各データレジスタは連結してデータのシフトを行うようになっていることを特徴とする請求項６の積和演算器。
【請求項９】
前記係数レジスタは複数設けられ、該複数の係数レジスタの任意の１つの出力をセレクタで選択して前記乗算手段へ供給するようにしたことを特徴とする請求項１の積和演算器。
【請求項１０】
前記複数の係数レジスタは分割して使用され、該各係数レジスタに対応する複数の演算を行うようになっていることを特徴とする請求項９の積和演算器。
【請求項１１】
前記複数の係数レジスタは一括して使用され、該各係数レジスタは連結して係数のシフトを行うようになっていることを特徴とする請求項９の積和演算器。
【請求項１２】
前記データレジスタの任意のデータ用レジスタユニットを、新しいデータを転送したときでも以前に転送されたデータのシフトを行わずに所定のデータを保持する固定データ用レジスタユニットとして構成したことを特徴とする請求項１の積和演算器。
【請求項１３】
前記データレジスタを構成する複数のデータ用レジスタユニットは、新たなデータの入力によりシフトアウトされたデータを保持するシフトアウトデータ用レジスタユニットを備え、該シフトアウトデータ用レジスタユニットのデータを使用して逆シフトを行い、前の状態に戻せるようにしたことを特徴とする請求項１の積和演算器。
【請求項１４】
前記係数レジスタの各係数用レジスタユニットは、物理アドレス通りにアクセスされるようになっている請求項１の積和演算器。
【請求項１５】
前記係数レジスタの各係数用レジスタユニットは、新しいデータを転送したとき、以前に転送されたデータが順次シストし、前記新しいデータと前記以前に転送されたデータを保持するようになっている請求項１の積和演算器。
【請求項１６】
前記データレジスタは複数設けられ、該複数のデータレジスタの任意の１つの出力をセレクタで選択して積和演算を行うようにしたことを特徴とする請求項１の積和演算器。
【請求項１７】
前記係数レジスタは複数設けられ、該複数の係数レジスタの任意の１つの出力をセレクタで選択して積和演算を行うようにしたことを特徴とする請求項１の積和演算器。
【請求項１８】
前記各データレジスタに対する係数レジスタの選択を、該各データレジスタに対してそれぞれ１ビットずつ設けられた係数レジスタ選択用ビット設定部に係数レジスタ選択用ビットを設定して該係数レジスタの選択を行うようにしたことを特徴とする請求項１７の積和演算器。
【請求項１９】
前記のデータレジスタ、係数レジスタ、乗算手段、加算手段、中間データラッチ手段、演算結果ラッチ手段およびセレクタが複数組設けられ、
第１の組のセレクタは、前記データバスからのデータ、前記第１の組の演算結果ラッチ手段の出力および第２の組の演算結果ラッチ手段の出力のいずれか１つを選択して、前記第１の組のデータレジスタの入力に供給することを特徴とする請求項４の積和演算器。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は積和演算器に関し、特に、ＩＩＲ（Infinit Impulse Response）およびＦＩＲ（Finit Impulse Response）の演算に適した積和演算器に関する。
近年、自動車或いはメカトロニクス等の分野において、例えば、検出したデータ等からノイズ成分を取り除くために、積和演算器およびＤＳＰ等を利用したディジタルフィルタによりフィルタリング処理を行っている。そして、フィルタリング演算を高速に実行するために、積和演算器の動作の高速化が要望されている。
【０００２】
【従来の技術】
従来、積和演算器は、例えば、自動車およびメカトロニクス等の分野におけるフィルタリング回路に利用されている。
図１２は積和演算器を適用した一例の概略的な構成を示す図であり、同図(a) は自動車におけるアンチロック・ブレーキ・システム（ＡＢＳ）の構成を概略的に示し、同図(b) は同図(a) における要部構成を示している。
【０００３】
図１２(a) において、参照符号 200はアンチロック・ブレーキ・システム,201はブレーキペダル,202はブレーキ用シリンダ,203ブレーキオイル・タンク,204はＡＢＳアクチュエータ, そして,209はＡＢＳコンピュータを示している。また、参照符号205a〜205dはブレーキ装置（ブレーキキャリパー),206a〜206dはタイヤ, 207a〜207dはロータ, そして，208a〜208dはスピードセンサを示している。
【０００４】
図１２(b) に示されるように、センサ208(スピードセンサ208a〜208d) は、例えば、タイヤと共に回転するロータ207(208a〜208d) の周囲に設けられたマグネットを検出するようになっており、該センサ208 の出力はパルス幅カウンタ（ＰＷＣ)291で計数される。パルス幅カウンタ291 の出力Ｄは、積和演算器292 へ供給されて所定の積和演算が行われ、また、積和演算器292 の出力は、ＡＢＳ演算器293 へ供給されて所定の演算が行われ、該ＡＢＳ演算器293 の出力に応じてＡＢＳアクチュエータ204 が制御されるようになっている。すなわち、例えば、フルブレーキ時でタイヤがロックするような場合でも、ＡＢＳアクチュエータ204 がブレーキ用の油圧を制御してタイヤのロックを防止するようになっている。
【０００５】
図１３はノイズ成分が含まれた検出データの例を示す図である。同図に示されるように、例えば、図１２における自動車のセンサ208 の出力には様々なノイズが含まれることになり、その結果、パルス幅カウンタ291 の出力Ｄにもノイズ成分が含まれることになる。
そこで、例えば、時刻（測定時刻）ｔ0 における出力データ（値Ｘt0) を求める場合に、測定時刻ｔ0 の実際の測定データ（Ｄ0)と共に、該時刻ｔ0 よりも前の時刻（ｔ-1, ｔ-2, …) における測定データ（Ｄt-1,Ｄt-2,…) を使用してノイズ成分を取り除いた値Ｘt0を求めることが行われている。
【０００６】
具体的に、時刻ｔ0 における値Ｘt0は、例えば、次の▲１▼式によるＦＩＲ演算によりフィルタリングを行い、ノイズ成分を取り除いて求めることができる。
Ｘt0＝ 1/2・Ｄt ＋ 1/4・Ｄt-1 ＋ 1/8・Ｄt-2 ＋ 1/8・Ｄt-3   ……  ▲１▼
図１４は従来の積和演算器の一例の構成を示すブロック図である。同図において、参照符号 101はデータレジスタ,102は係数レジスタ,103は積演算部（乗算回路), 104は和演算部（加算回路), 105は中間データラッチ部,106は演算結果ラッチ部,107はデータバス, そして,110はＣＰＵを示している。
【０００７】
図１４に示されるように、データレジスタ101 は、アドレスＡ0 〜Ａ3 の４つのレジスタユニット101a〜101dを有し、各レジスタユニット101a〜101dにはそれぞれデータバス107 から所定のデータが供給されるようになっている。同様に、係数レジスタ102 も、アドレスＢ0 〜Ｂ3 の４つのレジスタユニット102a〜102dを有し、各レジスタユニット102a〜102dに対してもそれぞれデータバス107 から所定の係数が供給されるようになっている。
【０００８】
データレジスタ101 のレジスタユニット101a〜101dに保持されたデータと、係数レジスタ102 のレジスタユニット102a〜102dに保持された係数とは、積演算部103 において掛け合わされ、各対応するデータおよび係数の乗算結果が、和演算部104 および中間データラッチ部105 により順次加算されて、例えば、上述した式▲１▼に示すようなＦＩＲ演算が行われる。
【０００９】
すなわち、時刻ｔ0 における値Ｘt0を上記▲１▼式によるＦＩＲ演算で求める場合、例えば、ＣＰＵ110 の指示に従って、データレジスタ101 におけるアドレスＡ0 のレジスタユニット101aには時刻ｔ0 におけるデータ（測定データ）Ｄt0が書き込まれ、アドレスＡ1 のレジスタユニット101bには時刻ｔ-1におけるデータ（時刻ｔの直前のデータ）Ｄt-1 が書き込まれ、アドレスＡ2 のレジスタユニット101cには時刻ｔ-2におけるデータ（時刻ｔ-1の直前のデータ）Ｄt-2 が書き込まれ、そして、アドレスＡ3 のレジスタユニット101dには時刻ｔ-3におけるデータ（時刻ｔ-2の直前のデータ）Ｄt-3 が書き込まれる。ここで、係数レジスタ102 のアドレスＢ0 〜Ｂ3 には、前述した▲１▼式における係数 1/2, 1/4, 1/8, 1/8 がそれぞれ書き込まれている。そして、▲１▼式に従った積和演算が実行されて、時刻ｔ0 における値（フィルタリング処理後の値）Ｘt0が算出されることになる。
【００１０】
ところで、時刻ｔ0 における値Ｘt0が算出された後、時刻ｔ+1における値Ｘt+1 が演算されることになるが、この場合、データレジスタ101 における全てのアドレスＡ0 〜Ａ3 のデータを書き換える必要がある。すなわち、時刻ｔ+1における値Ｘt+1 を上記▲１▼式によるＦＩＲ演算で求める場合、例えば、ＣＰＵ110 の指示に従って、データレジスタ101 におけるアドレスＡ0 のレジスタユニット101aには時刻ｔ+1におけるデータ（測定データ）Ｄt+1 が書き込まれ、アドレスＡ1 のレジスタユニット101bには時刻ｔにおけるデータＤt0が書き込まれ、アドレスＡ2 のレジスタユニット101cには時刻ｔ-1におけるデータＤt-1 が書き込まれ、そして、アドレスＡ3 のレジスタユニット101dには時刻ｔ-2におけるデータＤt-2 が書き込まれる。尚、係数レジスタ102 のアドレスＢ0 〜Ｂ3 には、時刻ｔ0 における値Ｘt0を算出する場合と同様に、▲１▼式における係数 1/2, 1/4, 1/8, 1/8 がそれぞれ書き込まれている。そして、▲１▼式に従った積和演算が実行されて、時刻ｔ+1における値Ｘt+1 が算出されることになる。
【００１１】
【発明が解決しようとする課題】
上述したように、図１４に示す従来の積和演算器は、例えば、▲１▼式に基づくＦＩＲ演算（フィルタリング演算）を行う度毎に、データレジスタ101 の各レジスタユニット101a〜101dに書き込むデータを全て入れ替える必要があった。そのために、フィルタリング演算を高速に実行することが困難であった。
【００１２】
また、従来、データレジスタ101 の各レジスタユニット101a〜101dに書き込んだデータをポインタにより特定してフィルタリング演算を行うことも考えられているが、このポインタを使用したフィルタリング演算は、最新のデータを書き込むレジスタユニットの特定或いはポインタの制御等が複雑となるため、実際には、図１４の積和演算器が使用されているのが実情である。
【００１３】
本発明は、上述した従来の積和演算器が有する課題に鑑み、積和演算器の動作を高速化して、フィルタリング演算を高速に実行することを目的とする。
【００１４】
【課題を解決するための手段】
本発明によれば、データレジスタ１の出力および係数レジスタ２の出力を積和演算する積和演算器であって、前記データレジスタ１の出力および前記係数レジスタ２の出力を乗算する乗算手段３と、該乗算手段３の出力を受け取る加算手段４と、該加算手段４の出力を保持する中間データラッチ手段５とを具備し、前記加算手段４は、前記乗算手段３の出力と前記中間データラッチ手段５の出力とを加算するようになっており、前記データレジスタ１は、新しいデータを転送したとき、以前に転送されたデータが順次シフトし、前記新しいデータと前記以前に転送されたデータを保持するように構成された複数のデータ用レジスタユニット１ａ〜１ｄを備え、前記係数レジスタ２は、前記データ用レジスタユニット１ａ〜１ｄに対応する複数の係数用レジスタユニット２ａ〜２ｄを備えたことを特徴とする積和演算器が提供される。
【００１５】
【作用】
本発明の積和演算器は、データレジスタ１の出力および係数レジスタ２の出力を乗算する乗算手段３と、乗算手段３の出力を受け取る加算手段４と、加算手段４の出力を保持する中間データラッチ手段５とを備える。加算手段４は、乗算手段３の出力と中間データラッチ手段５の出力とを加算するようになっており、データレジスタ１を構成する複数のデータ用レジスタユニット１ａ〜１ｄは、新しいデータを転送したとき、以前に転送されたデータが順次シフトし、新しいデータと以前に転送されたデータを保持するようにされている。そして、データレジスタ１を構成するデータ用レジスタユニット１ａ〜１ｄに保持されたデータおよび係数レジスタ２の対応する係数用レジスタユニット２ａ〜２ｄに保持された係数は、積和演算される。これにより、積和演算器の動作を高速化して、フィルタリング演算を高速に実行することができる。
【００１６】
【実施例】
以下、図面を参照して本発明に係る積和演算器の実施例を説明する。
図１は本発明に係る積和演算器の第１実施例の構成を示すブロック図である。同図において、参照符号１はデータレジスタ, ２は係数レジスタ, ３は積演算部（乗算回路),４は和演算部（加算回路),５は中間データラッチ部, ６は演算結果ラッチ部, ７はデータバス, そして, １０はＣＰＵを示している。
【００１７】
図１に示されるように、データレジスタ１は、４つのレジスタユニット１ａ〜１ｄより成るシフトレジスタとして構成され、レジスタユニット１ａに書き込まれたデータが順次１ａ→１ｂ→１ｃ→１ｄとシフトするようになっている。係数レジスタ２は、アドレスＢ0 〜Ｂ3 の４つのレジスタユニット２ａ〜２ｄを有し、各レジスタユニット２ａ〜２ｄに対してそれぞれデータバス７から所定の係数が供給されるようになっている。
【００１８】
データレジスタ１のレジスタユニット１ａ〜１ｄに保持されたデータおよび係数レジスタ２のレジスタユニット２ａ〜２ｄに保持された係数は積演算部３において掛け合わされ、各対応するデータおよび係数の乗算結果が、和演算部４および中間データラッチ部５により順次加算されて、例えば、従来技術において説明した式▲１▼に示すようなＦＩＲ演算が行われる。
【００１９】
すなわち、時刻ｔ0 における値（フィルタリング処理後の値Ｘt0）を前述した▲１▼式によるＦＩＲ演算で求める場合、例えば、ＣＰＵ１０の指示に従って、データレジスタ１におけるレジスタユニット１ａに時刻ｔ0 におけるデータ（測定データ）Ｄt0が書き込まれる。そして、レジスタユニット１ｂにはそれまでレジスタユニット１ａに書き込まれていたデータ（時刻ｔ-1におけるデータ）Ｄt-1 がシフトして書き込まれ、レジスタユニット１ｃにはそれまでレジスタユニット１ｂに書き込まれていたデータ（時刻ｔ-2におけるデータ）Ｄt-2 がシフトして書き込まれ、そして、レジスタユニット１ｄにはそれまでレジスタユニット１ｃに書き込まれていたデータ（時刻ｔ-3におけるデータ）Ｄt-3 がシフトして書き込まれるようになっている。ここで、レジスタユニット１ｄに書き込まれていたデータは、それまでレジスタユニット１ｃに保持されていたデータに上書きされて消失（シフトアウト）することになる。また、係数レジスタ102 のアドレスＢ0 〜Ｂ3 には、前述した▲１▼式における係数 1/2, 1/4, 1/8, 1/8 がそれぞれ書き込まれており、該▲１▼式に従った積和演算が実行されて、時刻ｔ0 における値Ｘt0が算出されることになる。
【００２０】
次に、時刻ｔ0 における値Ｘt0が算出された後、時刻ｔ+1における値Ｘt+1 が演算されることになるが、この場合、上述した処理と同様に、データレジスタ１のレジスタユニット１ａに時刻ｔ+1におけるデータ（測定データ）Ｄt+1 が書き込まれ、レジスタユニット１ｂ〜１ｄには、それまでレジスタユニット１ａ〜１ｃに保持されていたデータがシフトされて書き込まれる。尚、それまでレジスタユニット１ｄに保持されていたデータは、新たにシフトされて来るレジスタユニット１ｃのデータに上書きされてシフトアウトされることになる。
【００２１】
このように、図１に示す本実施例の積和演算器においては、前述した図１４に示す従来の積和演算器のアドレスマッピング方式のデータレジスタ101 をシフトレジスタ方式のデータレジスタ１として構成するようになっている。すなわち、データを入力する時、次のアドレスを考慮することなく、或る決まったアドレス（レジスタユニット１ａ）に新たなデータを転送すると共に、古いデータを順次転送するようになっている。これにより、フィルタリング演算を行う度毎にデータレジスタの各レジスタユニットに書き込むデータを全て入れ替える必要が無くなり、積和演算器の動作を高速化してフィルタリング演算を高速に実行することが可能となる。
【００２２】
図２は本発明に係る積和演算器の第２実施例の構成を示すブロック図である。同図に示す第２実施例では、図１の第１実施例におけるデータレジスタ１を２つ（複数）のデータレジスタ１１および１２で構成すると共に、係数レジスタ２を２つ（複数）の係数レジスタ２１および２２で構成するようになっている。すなわち、本第２実施例は、積和演算を２つに分けて実行してＩＩＲ演算に適するように構成されている。
【００２３】
データレジスタ１１はレジスタユニット（データ用レジスタユニット）１１ａ〜１１ｄより成るシフトレジスタとして構成され、また、データレジスタ１２はレジスタユニット１２ａ〜１２ｄより成るシフトレジスタとして構成されている。さらに、係数レジスタ２１はレジスタユニット（係数用レジスタユニット）２１ａ〜２１ｄで構成され、また、係数レジスタ２２はレジスタユニット２２ａ〜２２ｄで構成されている。そして、２つのデータレジスタ１１および１２の出力はセレクタ８１で選択されて積演算部３へ供給され、また、２つの係数レジスタ２１および２２の出力はセレクタ８２で選択されて積演算部３へ供給されるようになっている。他の構成は、図１に示す第１実施例と同様である。
【００２４】
図３は本発明に係る積和演算器の第３実施例の構成を示すブロック図であり、基本的な構成は、図１に示す第１実施例と同様である。
図３に示されるように、本第３実施例では、データレジスタ１のレジスタユニット１ｄを固定データ用レジスタユニットとして構成し、例えば、レジスタユニット１ａに新しいデータを転送したときでも以前に転送されたデータのシフトを行わずに所定のデータを保持し続けるようになっている。この固定データ用レジスタユニット１ｄは、例えば、所定の定数を加算して積和演算を行うために使用される。すなわち、具体的には、積和演算（ΣＡＸ＋ＢＹ＋Ｃ）における定数項Ｃを生成するために使用され、定数項を有する積和演算を高速に行うことができるようになっている。
【００２５】
図４は本発明に係る積和演算器の第４実施例の構成を示すブロック図であり、前述した第１実施例に対してセレクタ９を追加した構成となっている。
すなわち、本第４実施例では、図４に示されるように、データレジスタ１の入力にセレクタ９が設けられ、該セレクタ９によって、データバス７からのデータと和演算部４の出力（演算結果出力）とを選択してデータレジスタ１へ供給するようになっている。このように、データバス７およびＣＰＵ１０を経由することなく、積和演算の結果（和演算部４の出力）を直接セレクタ９を介してデータレジスタ１へ供給することにより、ＣＰＵ１０およびデータバス７の負担を軽減して、連続的に積和演算を実行することができるようになっている。このＣＰＵ１０等の負担を軽減して、連続的に積和演算を実行することができるという効果は、以下の第５実施例および第６実施例においても同様である。
【００２６】
図５は本発明に係る積和演算器の第５実施例の構成を示すブロック図である。同図に示す第５実施例では、積和演算器を複数組設けて積和演算システムを構成するようになっており、２つ以上のバンクを有する構成における積和演算を行う場合に、演算結果を次段のデータレジスタ（１２）に自動転送することで２次以上のＩＩＲ演算の構成を容易にするものである。
【００２７】
すなわち、第１の積和演算器は、第１のデータレジスタ１１, 第１の係数レジスタ２１，第１の積演算部３１，第１の和演算部４１，第１の中間データラッチ部５１，第１の演算結果ラッチ部６１およびセレクタ９１で構成され、また、第２の積和演算器は、第２のデータレジスタ１２, 第２の係数レジスタ２２，第２の積演算部３２，第２の和演算部４２，第２の中間データラッチ部５２，第２の演算結果ラッチ部６２およびセレクタ９２で構成されている。
【００２８】
第１のセレクタ９１は、データバス７からのデータ，および，第１の演算結果ラッチ部６１の出力を選択して第１のデータレジスタ１１へ供給するようになっている。また、第２のセレクタ９２は、データバス７からのデータ，第１の演算結果ラッチ部６１の出力，および，第２の演算結果ラッチ部６２の出力を選択して第２のデータレジスタ１２へ供給するようになっている。ここで、第１および第２のデータレジスタ１１および１２を構成するレジスタユニット１１ａ〜１１ｄおよび１２ａ〜１２ｄに保持されているデータは、データバス７を介してＣＰＵ１０が確認し、また、修正（書き換え）可能なようになっている。尚、本第５実施例の積和演算システムは、前述したように、複数次（例えば、２次）のＩＩＲ演算を行うのに適したものである。
【００２９】
図６は本発明に係る積和演算器の第６実施例の構成を示すブロック図である。同図に示す第６実施例では、前述した第２実施例と同様に、データレジスタ１を２つ（複数）のデータレジスタ１１および１２で構成すると共に、係数レジスタ２を２つ（複数）の係数レジスタ２１および２２で構成するようになっている。ここで、参照符号 80aおよび80b は係数レジスタ選択用ビット設定部を示している。
【００３０】
データレジスタ１１はレジスタユニット（データ用レジスタユニット）１１ａ〜１１ｄより成るシフトレジスタとして構成され、また、データレジスタ１２はレジスタユニット１２ａ〜１２ｄより成るシフトレジスタとして構成されている。また、係数レジスタ２１はレジスタユニット（係数用レジスタユニット）２１ａ〜２１ｄで構成され、また、係数レジスタ２２はレジスタユニット２２ａ〜２２ｄで構成されている。そして、２つのデータレジスタ１１および１２の出力はセレクタ８１で選択されて積演算部３へ供給され、また、２つの係数レジスタ２１および２２の出力はセレクタ８２で選択されて積演算部３へ供給されるようになっている。
【００３１】
データレジスタ１１の入力には、データバス７からのデータと演算結果ラッチ部６の出力とを選択するセレクタ９１が設けられ、同様に、データレジスタ１２の入力には、データバス７からのデータと演算結果ラッチ部６の出力とを選択するセレクタ９２が設けられている。ここで、各データレジスタ１１，１２に対する係数レジスタ２１，２２の選択は、係数レジスタ選択用ビット設定部80a,80b に対して係数レジスタ選択用ビット“０”，“１”を設定することにより、行われる。すなわち、例えば、係数レジスタ選択用ビット設定部80a にデータ“０”が設定されると、一方の係数レジスタ２１およびデータレジスタ１１の出力を選択して積演算部３に供給し、また、係数レジスタ選択用ビット設定部80b にデータ“１”が設定されると、他方の係数レジスタ２２およびデータレジスタ１２の出力を選択して積演算部３に供給するようになっている。尚、本実施例においても、データレジスタ１１および１２を構成するレジスタユニット１１ａ〜１１ｄおよび１２ａ〜１２ｄに保持されているデータは、データバス７を介してＣＰＵ１０が確認および書き換えできるようになっている。
【００３２】
図７は本発明に係る積和演算器の第７実施例の構成を示すブロック図であり、上述した第６実施例の一部を変形したものである。
この第７実施例では、第６実施例のセレクタ９２に対してデータレジスタ１１の出力（レジスタユニット１１ｄの出力）を供給し、２つのデータレジスタ１１および１２を一括して使用することができるようになっている。すなわち、セレクタ９２がデータレジスタ１１の出力を選択することでデータレジスタ１１を構成するレジスタユニット１１ａ〜１１ｄおよびデータレジスタ１２を構成するレジスタユニット１２ａ〜１２ｄを一連のシフトレジスタとして使用することができるようになっている。
【００３３】
このように、本第７実施例の積和演算器においては、２つのデータレジスタ１１および１２を分割して使用し、該各データレジスタに対応する複数の演算を行ってもよく、或いは、２つのデータレジスタ１１および１２を一括して使用し、該各データレジスタを連結してデータのシフトを行ってもよい。
図８は本発明に係る積和演算器の第８実施例の構成を示すブロック図である。同図に示す第８実施例では、１つの係数レジスタ２に対して２つのデータレジスタ１１および１２が設けられ、これらデータレジスタ１１および１２の出力をセレクタ８で選択して積演算部３へ供給するようになっている。
【００３４】
この図８に示す第８実施例では、２つのデータレジスタ１１および１２に対して共通に１つの係数レジスタ２を設けるようになっている。すなわち、本第８実施例では、例えば、係数レジスタ２を別のバンクで共通して使うことができるため、メモリの節約および転送回数の低減を行うことが可能となる。
図９は本発明に係る積和演算器の第９実施例の構成を示すブロック図である。同図に示す第９実施例では、４つのレジスタユニット２ａ〜２ｄで構成される係数レジスタ２に対して、５つのレジスタユニット１ａ〜１ｅで構成されるデータレジスタ１が設けられている。ここで、レジスタユニット１ｅは、新たなデータの入力によりシフトアウトされたデータを保持するためのシフトアウトデータ用のレジスタユニットであり、該シフトアウトデータ用レジスタユニット１ｅのデータを使用して逆シフトを行って前の状態に戻せるようになっている。
【００３５】
すなわち、本第９実施例では、データレジスタ１に対して新たなデータが転送されると、それまで各レジスタユニット１ａ〜１ｄに保持されていたデータがレジスタユニット１ｂ〜１ｅにシフトして書き込まれる。そして、例えば、オーバーフロー等により、前の状態に戻したい場合には、レジスタユニット１ｂ〜１ｅに保持されたデータを逆方向にシフトしてレジスタユニット１ａ〜１ｄに書き込み、係数レジスタ２のレジスタユニット２ａ〜２ｄおよびデータレジスタ１のレジスタユニット１ａ〜１ｄに保持された値を使用して積和演算を行うことになる。
【００３６】
図１０は本発明に係る積和演算器の第１０実施例の構成を示すブロック図であり、第１図に示す第１実施例において、演算結果ラッチ部６を複数（４つ）のレジスタユニット６ａ〜６ｄにより構成したものである。これら演算結果用レジスタユニット６ａ〜６ｄは、シフトレジスタとして構成され、新たな演算結果が演算結果ラッチ部６（レジスタユニット６ａ）へ供給されると、それまでレジスタユニット６ａ〜６ｃに保持されていたデータがレジスタユニット６ｂ〜６ｄにシフトして書き込まれるようになっている。そして、それまでレジスタユニット６ｄに保持されていたデータは、データバス７を介してＣＰＵ１０へ供給される。尚、各レジスタユニット６ａ〜６ｄに対してＣＰＵ１０が直接アクセスして演算結果の修正を後から行うように構成することもできる。
【００３７】
図１１は本発明に係る積和演算器の第１１実施例の構成を示すブロック図であり、ｎ個のバンクを持ち、４項までの積和演算（実際には、この項数は２以上ならいくらでもよい）が可能なモデル（積和演算システム）を示すものである。
すなわち、本第１１実施例において、データレジスタは、それぞれデータＸ０〜Ｘ３を保持する複数（４つ）のレジスタユニット111a〜111d, 112a〜112d, …, 11na〜11ndで構成された複数組（ｎ組）のデータレジスタ１１１〜１１ｎを有する第１のデータレジスタ群と、それぞれデータＹ０〜Ｙ３を保持する複数（４つ）のレジスタユニット121a〜121d, 122a〜122d, …, 12na〜12ndで構成された複数組（ｎ組）のデータレジスタ１２１〜１２ｎを有する第２のデータレジスタ群とで構成されている。また、係数レジスタは、それぞれ係数ＣＡ０〜ＣＡ３を保持する複数（４つ）のレジスタユニット211a〜211d, 212a〜212d, …, 21na〜21ndで構成された複数組（ｎ組）の係数レジスタ２１１〜２１ｎを有する第１の係数レジスタ群と、それぞれ係数ＣＢ０〜ＣＢ３を保持する複数（４つ）のレジスタユニット221a〜221d, 222a〜222d, …, 22na〜22ndで構成された複数組（ｎ組）の係数レジスタ２２１〜２２ｎを有する第２の係数レジスタ群とで構成されている。そして、複数のデータレジスタ１１１〜１１ｎおよび１２１〜１２ｎの出力はセレクタ８１で選択されて積演算部３へ供給され、また、複数の係数レジスタ２１１〜２１ｎおよび２２１〜２２ｎの出力はセレクタ８２で選択されて積演算部３へ供給されている。また、第１および第２のデータレジスタ群の入力には、データバス７からのデータと演算結果ラッチ部６の出力との一方を選択して供給するセレクタ９１および９２が設けられている。
【００３８】
さらに、本第１１実施例では、制御部１００が設けられ、該制御部１００からの制御信号によりセレクタ９１，９２および８１，８２、積演算部３、和演算部４の制御が行われるようになっている。
図１１に示す第１１実施例では、積和演算器（システム）で演算するデータは、最大で係数レジスタＣＡ×データレジスタＸを４回＋係数レジスタＣＢ×データレジスタＹを４回行い、この全ての加算を実行したものに相当する。すなわち、係数レジスタ２１のレジスタユニット211a〜211dにＣＡ０〜ＣＡ３、データレジスタ１１のレジスタユニット111a〜111dにＸ０〜Ｘ３、係数レジスタ２２のレジスタユニット221a〜221dにＣＢ０〜ＣＢ３、そして、データレジスタ１２のレジスタユニット121a〜121dにＹ０〜Ｙ３のデータが保持されている場合、項数設定最大の場合、ＣＡ０・Ｘ０＋ＣＡ１・Ｘ１＋ＣＡ２・Ｘ２＋ＣＡ３・Ｘ３＋ＣＢ０・Ｙ０＋ＣＢ１・Ｙ１＋ＣＢ２・Ｙ２＋ＣＢ３・Ｙ３：すなわち、（ΣＣＡ・Ｘ＋ΣＣＢ・Ｙ）を演算することになる。
【００３９】
そして、図１１に示す第１１実施例では、最初に係数レジスタ２１，２２およびデータレジスタ１１，１２に所定の係数およびデータの値を設定し、その後、例えば、第１のデータレジスタ１１の一番目のレジスタユニット111aに対して新たなデータを供給するだけで、データレジスタ１１の他のレジスタユニット111b〜111dには、それまでレジスタユニット111a〜111cに保持されていた値がシフトして書き込まれて積和演算が実行される。また、例えば、第２のデータレジスタ１２の一番目のレジスタユニット121aは前回の演算時のデータが演算結果ラッチ部６およびセレクタ９２を介して供給され、データレジスタ１２の他のレジスタユニット121b〜121dには、それまでレジスタユニット121a〜121cに保持されていた値がシフトして書き込まれて積和演算が実行される。尚、ｎ個の各バンクにおいても、同様の積和演算処理が行われる。
【００４０】
上述したように、本実施例の積和演算器は、フィルタ演算時の膨大なデータの転送処理を画期的に速くすることができ、また同時に、転送を記述したプログラムステップを縮小することがができる。
【００４１】
【発明の効果】
以上、詳述したように、本発明の積和演算器によれば、データレジスタをシフトレジスタとして構成することによって、積和演算器の動作を高速化して、フィルタリング演算を高速に実行することができる。
【図面の簡単な説明】
【図１】本発明に係る積和演算器の第１実施例の構成を示すブロック図である。
【図２】本発明に係る積和演算器の第２実施例の構成を示すブロック図である。
【図３】本発明に係る積和演算器の第３実施例の構成を示すブロック図である。
【図４】本発明に係る積和演算器の第４実施例の構成を示すブロック図である。
【図５】本発明に係る積和演算器の第５実施例の構成を示すブロック図である。
【図６】本発明に係る積和演算器の第６実施例の構成を示すブロック図である。
【図７】本発明に係る積和演算器の第７実施例の構成を示すブロック図である。
【図８】本発明に係る積和演算器の第８実施例の構成を示すブロック図である。
【図９】本発明に係る積和演算器の第９実施例の構成を示すブロック図である。
【図１０】本発明に係る積和演算器の第１０実施例の構成を示すブロック図である。
【図１１】本発明に係る積和演算器の第１１実施例の構成を示すブロック図である。
【図１２】従来の積和演算器の一例の構成を示すブロック図である。
【図１３】ノイズ成分が含まれた検出データの例を示す図である。
【図１４】積和演算器を適用した一例の概略的な構成を示す図である。
【符号の説明】
１，１１，１２…データレジスタ
２，２１，２２…係数レジスタ
３…積演算部（乗算回路）
４…和演算部（加算回路）
５…中間データラッチ部（中間データラッチ手段）
６…演算結果ラッチ部（演算結果ラッチ手段）
７…データバス
８，８１，８２…セレクタ
９，９１，９２…セレクタ
１０…ＣＰＵ
【図１】
0003693367.tif 000002
【図２】
0003693367.tif 000003
【図３】
0003693367.tif 000004
【図４】
0003693367.tif 000005
【図５】
0003693367.tif 000006
【図６】
0003693367.tif 000007
【図７】
0003693367.tif 000008
【図８】
0003693367.tif 000009
【図９】
0003693367.tif 000010
【図１０】
0003693367.tif 000011
【図１１】
0003693367.tif 000012
【図１２】
0003693367.tif 000013
【図１３】
0003693367.tif 000014
【図１４】
0003693367.tif 000015