JP3693367B2 - 積和演算器 - Google Patents
積和演算器 Download PDFInfo
- Publication number
- JP3693367B2 JP3693367B2 JP17683994A JP17683994A JP3693367B2 JP 3693367 B2 JP3693367 B2 JP 3693367B2 JP 17683994 A JP17683994 A JP 17683994A JP 17683994 A JP17683994 A JP 17683994A JP 3693367 B2 JP3693367 B2 JP 3693367B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- product
- coefficient
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
【産業上の利用分野】
本発明は積和演算器に関し、特に、IIR(Infinit Impulse Response)およびFIR(Finit Impulse Response)の演算に適した積和演算器に関する。
近年、自動車或いはメカトロニクス等の分野において、例えば、検出したデータ等からノイズ成分を取り除くために、積和演算器およびDSP等を利用したディジタルフィルタによりフィルタリング処理を行っている。そして、フィルタリング演算を高速に実行するために、積和演算器の動作の高速化が要望されている。
【0002】
【従来の技術】
従来、積和演算器は、例えば、自動車およびメカトロニクス等の分野におけるフィルタリング回路に利用されている。
図12は積和演算器を適用した一例の概略的な構成を示す図であり、同図(a) は自動車におけるアンチロック・ブレーキ・システム(ABS)の構成を概略的に示し、同図(b) は同図(a) における要部構成を示している。
【0003】
図12(a) において、参照符号 200はアンチロック・ブレーキ・システム,201はブレーキペダル,202はブレーキ用シリンダ,203ブレーキオイル・タンク,204はABSアクチュエータ, そして,209はABSコンピュータを示している。また、参照符号205a〜205dはブレーキ装置(ブレーキキャリパー),206a〜206dはタイヤ, 207a〜207dはロータ, そして,208a〜208dはスピードセンサを示している。
【0004】
図12(b) に示されるように、センサ208(スピードセンサ208a〜208d) は、例えば、タイヤと共に回転するロータ207(208a〜208d) の周囲に設けられたマグネットを検出するようになっており、該センサ208 の出力はパルス幅カウンタ(PWC)291で計数される。パルス幅カウンタ291 の出力Dは、積和演算器292 へ供給されて所定の積和演算が行われ、また、積和演算器292 の出力は、ABS演算器293 へ供給されて所定の演算が行われ、該ABS演算器293 の出力に応じてABSアクチュエータ204 が制御されるようになっている。すなわち、例えば、フルブレーキ時でタイヤがロックするような場合でも、ABSアクチュエータ204 がブレーキ用の油圧を制御してタイヤのロックを防止するようになっている。
【0005】
図13はノイズ成分が含まれた検出データの例を示す図である。同図に示されるように、例えば、図12における自動車のセンサ208 の出力には様々なノイズが含まれることになり、その結果、パルス幅カウンタ291 の出力Dにもノイズ成分が含まれることになる。
そこで、例えば、時刻(測定時刻)t0 における出力データ(値Xt0) を求める場合に、測定時刻t0 の実際の測定データ(D0)と共に、該時刻t0 よりも前の時刻(t-1, t-2, …) における測定データ(Dt-1,Dt-2,…) を使用してノイズ成分を取り除いた値Xt0を求めることが行われている。
【0006】
具体的に、時刻t0 における値Xt0は、例えば、次の▲1▼式によるFIR演算によりフィルタリングを行い、ノイズ成分を取り除いて求めることができる。
Xt0= 1/2・Dt + 1/4・Dt-1 + 1/8・Dt-2 + 1/8・Dt-3 …… ▲1▼
図14は従来の積和演算器の一例の構成を示すブロック図である。同図において、参照符号 101はデータレジスタ,102は係数レジスタ,103は積演算部(乗算回路), 104は和演算部(加算回路), 105は中間データラッチ部,106は演算結果ラッチ部,107はデータバス, そして,110はCPUを示している。
【0007】
図14に示されるように、データレジスタ101 は、アドレスA0 〜A3 の4つのレジスタユニット101a〜101dを有し、各レジスタユニット101a〜101dにはそれぞれデータバス107 から所定のデータが供給されるようになっている。同様に、係数レジスタ102 も、アドレスB0 〜B3 の4つのレジスタユニット102a〜102dを有し、各レジスタユニット102a〜102dに対してもそれぞれデータバス107 から所定の係数が供給されるようになっている。
【0008】
データレジスタ101 のレジスタユニット101a〜101dに保持されたデータと、係数レジスタ102 のレジスタユニット102a〜102dに保持された係数とは、積演算部103 において掛け合わされ、各対応するデータおよび係数の乗算結果が、和演算部104 および中間データラッチ部105 により順次加算されて、例えば、上述した式▲1▼に示すようなFIR演算が行われる。
【0009】
すなわち、時刻t0 における値Xt0を上記▲1▼式によるFIR演算で求める場合、例えば、CPU110 の指示に従って、データレジスタ101 におけるアドレスA0 のレジスタユニット101aには時刻t0 におけるデータ(測定データ)Dt0が書き込まれ、アドレスA1 のレジスタユニット101bには時刻t-1におけるデータ(時刻tの直前のデータ)Dt-1 が書き込まれ、アドレスA2 のレジスタユニット101cには時刻t-2におけるデータ(時刻t-1の直前のデータ)Dt-2 が書き込まれ、そして、アドレスA3 のレジスタユニット101dには時刻t-3におけるデータ(時刻t-2の直前のデータ)Dt-3 が書き込まれる。ここで、係数レジスタ102 のアドレスB0 〜B3 には、前述した▲1▼式における係数 1/2, 1/4, 1/8, 1/8 がそれぞれ書き込まれている。そして、▲1▼式に従った積和演算が実行されて、時刻t0 における値(フィルタリング処理後の値)Xt0が算出されることになる。
【0010】
ところで、時刻t0 における値Xt0が算出された後、時刻t+1における値Xt+1 が演算されることになるが、この場合、データレジスタ101 における全てのアドレスA0 〜A3 のデータを書き換える必要がある。すなわち、時刻t+1における値Xt+1 を上記▲1▼式によるFIR演算で求める場合、例えば、CPU110 の指示に従って、データレジスタ101 におけるアドレスA0 のレジスタユニット101aには時刻t+1におけるデータ(測定データ)Dt+1 が書き込まれ、アドレスA1 のレジスタユニット101bには時刻tにおけるデータDt0が書き込まれ、アドレスA2 のレジスタユニット101cには時刻t-1におけるデータDt-1 が書き込まれ、そして、アドレスA3 のレジスタユニット101dには時刻t-2におけるデータDt-2 が書き込まれる。尚、係数レジスタ102 のアドレスB0 〜B3 には、時刻t0 における値Xt0を算出する場合と同様に、▲1▼式における係数 1/2, 1/4, 1/8, 1/8 がそれぞれ書き込まれている。そして、▲1▼式に従った積和演算が実行されて、時刻t+1における値Xt+1 が算出されることになる。
【0011】
【発明が解決しようとする課題】
上述したように、図14に示す従来の積和演算器は、例えば、▲1▼式に基づくFIR演算(フィルタリング演算)を行う度毎に、データレジスタ101 の各レジスタユニット101a〜101dに書き込むデータを全て入れ替える必要があった。そのために、フィルタリング演算を高速に実行することが困難であった。
【0012】
また、従来、データレジスタ101 の各レジスタユニット101a〜101dに書き込んだデータをポインタにより特定してフィルタリング演算を行うことも考えられているが、このポインタを使用したフィルタリング演算は、最新のデータを書き込むレジスタユニットの特定或いはポインタの制御等が複雑となるため、実際には、図14の積和演算器が使用されているのが実情である。
【0013】
本発明は、上述した従来の積和演算器が有する課題に鑑み、積和演算器の動作を高速化して、フィルタリング演算を高速に実行することを目的とする。
【0014】
【課題を解決するための手段】
本発明によれば、データレジスタ1の出力および係数レジスタ2の出力を積和演算する積和演算器であって、前記データレジスタ1の出力および前記係数レジスタ2の出力を乗算する乗算手段3と、該乗算手段3の出力を受け取る加算手段4と、該加算手段4の出力を保持する中間データラッチ手段5とを具備し、前記加算手段4は、前記乗算手段3の出力と前記中間データラッチ手段5の出力とを加算するようになっており、前記データレジスタ1は、新しいデータを転送したとき、以前に転送されたデータが順次シフトし、前記新しいデータと前記以前に転送されたデータを保持するように構成された複数のデータ用レジスタユニット1a〜1dを備え、前記係数レジスタ2は、前記データ用レジスタユニット1a〜1dに対応する複数の係数用レジスタユニット2a〜2dを備えたことを特徴とする積和演算器が提供される。
【0015】
【作用】
本発明の積和演算器は、データレジスタ1の出力および係数レジスタ2の出力を乗算する乗算手段3と、乗算手段3の出力を受け取る加算手段4と、加算手段4の出力を保持する中間データラッチ手段5とを備える。加算手段4は、乗算手段3の出力と中間データラッチ手段5の出力とを加算するようになっており、データレジスタ1を構成する複数のデータ用レジスタユニット1a〜1dは、新しいデータを転送したとき、以前に転送されたデータが順次シフトし、新しいデータと以前に転送されたデータを保持するようにされている。そして、データレジスタ1を構成するデータ用レジスタユニット1a〜1dに保持されたデータおよび係数レジスタ2の対応する係数用レジスタユニット2a〜2dに保持された係数は、積和演算される。これにより、積和演算器の動作を高速化して、フィルタリング演算を高速に実行することができる。
【0016】
【実施例】
以下、図面を参照して本発明に係る積和演算器の実施例を説明する。
図1は本発明に係る積和演算器の第1実施例の構成を示すブロック図である。同図において、参照符号1はデータレジスタ, 2は係数レジスタ, 3は積演算部(乗算回路),4は和演算部(加算回路),5は中間データラッチ部, 6は演算結果ラッチ部, 7はデータバス, そして, 10はCPUを示している。
【0017】
図1に示されるように、データレジスタ1は、4つのレジスタユニット1a〜1dより成るシフトレジスタとして構成され、レジスタユニット1aに書き込まれたデータが順次1a→1b→1c→1dとシフトするようになっている。係数レジスタ2は、アドレスB0 〜B3 の4つのレジスタユニット2a〜2dを有し、各レジスタユニット2a〜2dに対してそれぞれデータバス7から所定の係数が供給されるようになっている。
【0018】
データレジスタ1のレジスタユニット1a〜1dに保持されたデータおよび係数レジスタ2のレジスタユニット2a〜2dに保持された係数は積演算部3において掛け合わされ、各対応するデータおよび係数の乗算結果が、和演算部4および中間データラッチ部5により順次加算されて、例えば、従来技術において説明した式▲1▼に示すようなFIR演算が行われる。
【0019】
すなわち、時刻t0 における値(フィルタリング処理後の値Xt0)を前述した▲1▼式によるFIR演算で求める場合、例えば、CPU10の指示に従って、データレジスタ1におけるレジスタユニット1aに時刻t0 におけるデータ(測定データ)Dt0が書き込まれる。そして、レジスタユニット1bにはそれまでレジスタユニット1aに書き込まれていたデータ(時刻t-1におけるデータ)Dt-1 がシフトして書き込まれ、レジスタユニット1cにはそれまでレジスタユニット1bに書き込まれていたデータ(時刻t-2におけるデータ)Dt-2 がシフトして書き込まれ、そして、レジスタユニット1dにはそれまでレジスタユニット1cに書き込まれていたデータ(時刻t-3におけるデータ)Dt-3 がシフトして書き込まれるようになっている。ここで、レジスタユニット1dに書き込まれていたデータは、それまでレジスタユニット1cに保持されていたデータに上書きされて消失(シフトアウト)することになる。また、係数レジスタ102 のアドレスB0 〜B3 には、前述した▲1▼式における係数 1/2, 1/4, 1/8, 1/8 がそれぞれ書き込まれており、該▲1▼式に従った積和演算が実行されて、時刻t0 における値Xt0が算出されることになる。
【0020】
次に、時刻t0 における値Xt0が算出された後、時刻t+1における値Xt+1 が演算されることになるが、この場合、上述した処理と同様に、データレジスタ1のレジスタユニット1aに時刻t+1におけるデータ(測定データ)Dt+1 が書き込まれ、レジスタユニット1b〜1dには、それまでレジスタユニット1a〜1cに保持されていたデータがシフトされて書き込まれる。尚、それまでレジスタユニット1dに保持されていたデータは、新たにシフトされて来るレジスタユニット1cのデータに上書きされてシフトアウトされることになる。
【0021】
このように、図1に示す本実施例の積和演算器においては、前述した図14に示す従来の積和演算器のアドレスマッピング方式のデータレジスタ101 をシフトレジスタ方式のデータレジスタ1として構成するようになっている。すなわち、データを入力する時、次のアドレスを考慮することなく、或る決まったアドレス(レジスタユニット1a)に新たなデータを転送すると共に、古いデータを順次転送するようになっている。これにより、フィルタリング演算を行う度毎にデータレジスタの各レジスタユニットに書き込むデータを全て入れ替える必要が無くなり、積和演算器の動作を高速化してフィルタリング演算を高速に実行することが可能となる。
【0022】
図2は本発明に係る積和演算器の第2実施例の構成を示すブロック図である。同図に示す第2実施例では、図1の第1実施例におけるデータレジスタ1を2つ(複数)のデータレジスタ11および12で構成すると共に、係数レジスタ2を2つ(複数)の係数レジスタ21および22で構成するようになっている。すなわち、本第2実施例は、積和演算を2つに分けて実行してIIR演算に適するように構成されている。
【0023】
データレジスタ11はレジスタユニット(データ用レジスタユニット)11a〜11dより成るシフトレジスタとして構成され、また、データレジスタ12はレジスタユニット12a〜12dより成るシフトレジスタとして構成されている。さらに、係数レジスタ21はレジスタユニット(係数用レジスタユニット)21a〜21dで構成され、また、係数レジスタ22はレジスタユニット22a〜22dで構成されている。そして、2つのデータレジスタ11および12の出力はセレクタ81で選択されて積演算部3へ供給され、また、2つの係数レジスタ21および22の出力はセレクタ82で選択されて積演算部3へ供給されるようになっている。他の構成は、図1に示す第1実施例と同様である。
【0024】
図3は本発明に係る積和演算器の第3実施例の構成を示すブロック図であり、基本的な構成は、図1に示す第1実施例と同様である。
図3に示されるように、本第3実施例では、データレジスタ1のレジスタユニット1dを固定データ用レジスタユニットとして構成し、例えば、レジスタユニット1aに新しいデータを転送したときでも以前に転送されたデータのシフトを行わずに所定のデータを保持し続けるようになっている。この固定データ用レジスタユニット1dは、例えば、所定の定数を加算して積和演算を行うために使用される。すなわち、具体的には、積和演算(ΣAX+BY+C)における定数項Cを生成するために使用され、定数項を有する積和演算を高速に行うことができるようになっている。
【0025】
図4は本発明に係る積和演算器の第4実施例の構成を示すブロック図であり、前述した第1実施例に対してセレクタ9を追加した構成となっている。
すなわち、本第4実施例では、図4に示されるように、データレジスタ1の入力にセレクタ9が設けられ、該セレクタ9によって、データバス7からのデータと和演算部4の出力(演算結果出力)とを選択してデータレジスタ1へ供給するようになっている。このように、データバス7およびCPU10を経由することなく、積和演算の結果(和演算部4の出力)を直接セレクタ9を介してデータレジスタ1へ供給することにより、CPU10およびデータバス7の負担を軽減して、連続的に積和演算を実行することができるようになっている。このCPU10等の負担を軽減して、連続的に積和演算を実行することができるという効果は、以下の第5実施例および第6実施例においても同様である。
【0026】
図5は本発明に係る積和演算器の第5実施例の構成を示すブロック図である。同図に示す第5実施例では、積和演算器を複数組設けて積和演算システムを構成するようになっており、2つ以上のバンクを有する構成における積和演算を行う場合に、演算結果を次段のデータレジスタ(12)に自動転送することで2次以上のIIR演算の構成を容易にするものである。
【0027】
すなわち、第1の積和演算器は、第1のデータレジスタ11, 第1の係数レジスタ21,第1の積演算部31,第1の和演算部41,第1の中間データラッチ部51,第1の演算結果ラッチ部61およびセレクタ91で構成され、また、第2の積和演算器は、第2のデータレジスタ12, 第2の係数レジスタ22,第2の積演算部32,第2の和演算部42,第2の中間データラッチ部52,第2の演算結果ラッチ部62およびセレクタ92で構成されている。
【0028】
第1のセレクタ91は、データバス7からのデータ,および,第1の演算結果ラッチ部61の出力を選択して第1のデータレジスタ11へ供給するようになっている。また、第2のセレクタ92は、データバス7からのデータ,第1の演算結果ラッチ部61の出力,および,第2の演算結果ラッチ部62の出力を選択して第2のデータレジスタ12へ供給するようになっている。ここで、第1および第2のデータレジスタ11および12を構成するレジスタユニット11a〜11dおよび12a〜12dに保持されているデータは、データバス7を介してCPU10が確認し、また、修正(書き換え)可能なようになっている。尚、本第5実施例の積和演算システムは、前述したように、複数次(例えば、2次)のIIR演算を行うのに適したものである。
【0029】
図6は本発明に係る積和演算器の第6実施例の構成を示すブロック図である。同図に示す第6実施例では、前述した第2実施例と同様に、データレジスタ1を2つ(複数)のデータレジスタ11および12で構成すると共に、係数レジスタ2を2つ(複数)の係数レジスタ21および22で構成するようになっている。ここで、参照符号 80aおよび80b は係数レジスタ選択用ビット設定部を示している。
【0030】
データレジスタ11はレジスタユニット(データ用レジスタユニット)11a〜11dより成るシフトレジスタとして構成され、また、データレジスタ12はレジスタユニット12a〜12dより成るシフトレジスタとして構成されている。また、係数レジスタ21はレジスタユニット(係数用レジスタユニット)21a〜21dで構成され、また、係数レジスタ22はレジスタユニット22a〜22dで構成されている。そして、2つのデータレジスタ11および12の出力はセレクタ81で選択されて積演算部3へ供給され、また、2つの係数レジスタ21および22の出力はセレクタ82で選択されて積演算部3へ供給されるようになっている。
【0031】
データレジスタ11の入力には、データバス7からのデータと演算結果ラッチ部6の出力とを選択するセレクタ91が設けられ、同様に、データレジスタ12の入力には、データバス7からのデータと演算結果ラッチ部6の出力とを選択するセレクタ92が設けられている。ここで、各データレジスタ11,12に対する係数レジスタ21,22の選択は、係数レジスタ選択用ビット設定部80a,80b に対して係数レジスタ選択用ビット“0”,“1”を設定することにより、行われる。すなわち、例えば、係数レジスタ選択用ビット設定部80a にデータ“0”が設定されると、一方の係数レジスタ21およびデータレジスタ11の出力を選択して積演算部3に供給し、また、係数レジスタ選択用ビット設定部80b にデータ“1”が設定されると、他方の係数レジスタ22およびデータレジスタ12の出力を選択して積演算部3に供給するようになっている。尚、本実施例においても、データレジスタ11および12を構成するレジスタユニット11a〜11dおよび12a〜12dに保持されているデータは、データバス7を介してCPU10が確認および書き換えできるようになっている。
【0032】
図7は本発明に係る積和演算器の第7実施例の構成を示すブロック図であり、上述した第6実施例の一部を変形したものである。
この第7実施例では、第6実施例のセレクタ92に対してデータレジスタ11の出力(レジスタユニット11dの出力)を供給し、2つのデータレジスタ11および12を一括して使用することができるようになっている。すなわち、セレクタ92がデータレジスタ11の出力を選択することでデータレジスタ11を構成するレジスタユニット11a〜11dおよびデータレジスタ12を構成するレジスタユニット12a〜12dを一連のシフトレジスタとして使用することができるようになっている。
【0033】
このように、本第7実施例の積和演算器においては、2つのデータレジスタ11および12を分割して使用し、該各データレジスタに対応する複数の演算を行ってもよく、或いは、2つのデータレジスタ11および12を一括して使用し、該各データレジスタを連結してデータのシフトを行ってもよい。
図8は本発明に係る積和演算器の第8実施例の構成を示すブロック図である。同図に示す第8実施例では、1つの係数レジスタ2に対して2つのデータレジスタ11および12が設けられ、これらデータレジスタ11および12の出力をセレクタ8で選択して積演算部3へ供給するようになっている。
【0034】
この図8に示す第8実施例では、2つのデータレジスタ11および12に対して共通に1つの係数レジスタ2を設けるようになっている。すなわち、本第8実施例では、例えば、係数レジスタ2を別のバンクで共通して使うことができるため、メモリの節約および転送回数の低減を行うことが可能となる。
図9は本発明に係る積和演算器の第9実施例の構成を示すブロック図である。同図に示す第9実施例では、4つのレジスタユニット2a〜2dで構成される係数レジスタ2に対して、5つのレジスタユニット1a〜1eで構成されるデータレジスタ1が設けられている。ここで、レジスタユニット1eは、新たなデータの入力によりシフトアウトされたデータを保持するためのシフトアウトデータ用のレジスタユニットであり、該シフトアウトデータ用レジスタユニット1eのデータを使用して逆シフトを行って前の状態に戻せるようになっている。
【0035】
すなわち、本第9実施例では、データレジスタ1に対して新たなデータが転送されると、それまで各レジスタユニット1a〜1dに保持されていたデータがレジスタユニット1b〜1eにシフトして書き込まれる。そして、例えば、オーバーフロー等により、前の状態に戻したい場合には、レジスタユニット1b〜1eに保持されたデータを逆方向にシフトしてレジスタユニット1a〜1dに書き込み、係数レジスタ2のレジスタユニット2a〜2dおよびデータレジスタ1のレジスタユニット1a〜1dに保持された値を使用して積和演算を行うことになる。
【0036】
図10は本発明に係る積和演算器の第10実施例の構成を示すブロック図であり、第1図に示す第1実施例において、演算結果ラッチ部6を複数(4つ)のレジスタユニット6a〜6dにより構成したものである。これら演算結果用レジスタユニット6a〜6dは、シフトレジスタとして構成され、新たな演算結果が演算結果ラッチ部6(レジスタユニット6a)へ供給されると、それまでレジスタユニット6a〜6cに保持されていたデータがレジスタユニット6b〜6dにシフトして書き込まれるようになっている。そして、それまでレジスタユニット6dに保持されていたデータは、データバス7を介してCPU10へ供給される。尚、各レジスタユニット6a〜6dに対してCPU10が直接アクセスして演算結果の修正を後から行うように構成することもできる。
【0037】
図11は本発明に係る積和演算器の第11実施例の構成を示すブロック図であり、n個のバンクを持ち、4項までの積和演算(実際には、この項数は2以上ならいくらでもよい)が可能なモデル(積和演算システム)を示すものである。
すなわち、本第11実施例において、データレジスタは、それぞれデータX0〜X3を保持する複数(4つ)のレジスタユニット111a〜111d, 112a〜112d, …, 11na〜11ndで構成された複数組(n組)のデータレジスタ111〜11nを有する第1のデータレジスタ群と、それぞれデータY0〜Y3を保持する複数(4つ)のレジスタユニット121a〜121d, 122a〜122d, …, 12na〜12ndで構成された複数組(n組)のデータレジスタ121〜12nを有する第2のデータレジスタ群とで構成されている。また、係数レジスタは、それぞれ係数CA0〜CA3を保持する複数(4つ)のレジスタユニット211a〜211d, 212a〜212d, …, 21na〜21ndで構成された複数組(n組)の係数レジスタ211〜21nを有する第1の係数レジスタ群と、それぞれ係数CB0〜CB3を保持する複数(4つ)のレジスタユニット221a〜221d, 222a〜222d, …, 22na〜22ndで構成された複数組(n組)の係数レジスタ221〜22nを有する第2の係数レジスタ群とで構成されている。そして、複数のデータレジスタ111〜11nおよび121〜12nの出力はセレクタ81で選択されて積演算部3へ供給され、また、複数の係数レジスタ211〜21nおよび221〜22nの出力はセレクタ82で選択されて積演算部3へ供給されている。また、第1および第2のデータレジスタ群の入力には、データバス7からのデータと演算結果ラッチ部6の出力との一方を選択して供給するセレクタ91および92が設けられている。
【0038】
さらに、本第11実施例では、制御部100が設けられ、該制御部100からの制御信号によりセレクタ91,92および81,82、積演算部3、和演算部4の制御が行われるようになっている。
図11に示す第11実施例では、積和演算器(システム)で演算するデータは、最大で係数レジスタCA×データレジスタXを4回+係数レジスタCB×データレジスタYを4回行い、この全ての加算を実行したものに相当する。すなわち、係数レジスタ21のレジスタユニット211a〜211dにCA0〜CA3、データレジスタ11のレジスタユニット111a〜111dにX0〜X3、係数レジスタ22のレジスタユニット221a〜221dにCB0〜CB3、そして、データレジスタ12のレジスタユニット121a〜121dにY0〜Y3のデータが保持されている場合、項数設定最大の場合、CA0・X0+CA1・X1+CA2・X2+CA3・X3+CB0・Y0+CB1・Y1+CB2・Y2+CB3・Y3:すなわち、(ΣCA・X+ΣCB・Y)を演算することになる。
【0039】
そして、図11に示す第11実施例では、最初に係数レジスタ21,22およびデータレジスタ11,12に所定の係数およびデータの値を設定し、その後、例えば、第1のデータレジスタ11の一番目のレジスタユニット111aに対して新たなデータを供給するだけで、データレジスタ11の他のレジスタユニット111b〜111dには、それまでレジスタユニット111a〜111cに保持されていた値がシフトして書き込まれて積和演算が実行される。また、例えば、第2のデータレジスタ12の一番目のレジスタユニット121aは前回の演算時のデータが演算結果ラッチ部6およびセレクタ92を介して供給され、データレジスタ12の他のレジスタユニット121b〜121dには、それまでレジスタユニット121a〜121cに保持されていた値がシフトして書き込まれて積和演算が実行される。尚、n個の各バンクにおいても、同様の積和演算処理が行われる。
【0040】
上述したように、本実施例の積和演算器は、フィルタ演算時の膨大なデータの転送処理を画期的に速くすることができ、また同時に、転送を記述したプログラムステップを縮小することがができる。
【0041】
【発明の効果】
以上、詳述したように、本発明の積和演算器によれば、データレジスタをシフトレジスタとして構成することによって、積和演算器の動作を高速化して、フィルタリング演算を高速に実行することができる。
【図面の簡単な説明】
【図1】本発明に係る積和演算器の第1実施例の構成を示すブロック図である。
【図2】本発明に係る積和演算器の第2実施例の構成を示すブロック図である。
【図3】本発明に係る積和演算器の第3実施例の構成を示すブロック図である。
【図4】本発明に係る積和演算器の第4実施例の構成を示すブロック図である。
【図5】本発明に係る積和演算器の第5実施例の構成を示すブロック図である。
【図6】本発明に係る積和演算器の第6実施例の構成を示すブロック図である。
【図7】本発明に係る積和演算器の第7実施例の構成を示すブロック図である。
【図8】本発明に係る積和演算器の第8実施例の構成を示すブロック図である。
【図9】本発明に係る積和演算器の第9実施例の構成を示すブロック図である。
【図10】本発明に係る積和演算器の第10実施例の構成を示すブロック図である。
【図11】本発明に係る積和演算器の第11実施例の構成を示すブロック図である。
【図12】従来の積和演算器の一例の構成を示すブロック図である。
【図13】ノイズ成分が含まれた検出データの例を示す図である。
【図14】積和演算器を適用した一例の概略的な構成を示す図である。
【符号の説明】
1,11,12…データレジスタ
2,21,22…係数レジスタ
3…積演算部(乗算回路)
4…和演算部(加算回路)
5…中間データラッチ部(中間データラッチ手段)
6…演算結果ラッチ部(演算結果ラッチ手段)
7…データバス
8,81,82…セレクタ
9,91,92…セレクタ
10…CPU
Claims (19)
- データレジスタの出力および係数レジスタの出力を積和演算する積和演算器であって、
前記データレジスタの出力および前記係数レジスタの出力を乗算する乗算手段と、
該乗算手段の出力を受け取る加算手段と、
該加算手段の出力を保持する中間データラッチ手段とを具備し、
前記加算手段は、前記乗算手段の出力と前記中間データラッチ手段の出力とを加算するようになっており、
前記データレジスタは、新しいデータを転送したとき、以前に転送されたデータが順次シフトし、前記新しいデータと前記以前に転送されたデータを保持するように構成された複数のデータ用レジスタユニットを備え、
前記係数レジスタは、前記データ用レジスタユニットに対応する複数の係数用レジスタユニットを備えたことを特徴とする積和演算器。 - 前記データレジスタおよび前記係数レジスタは、CPUが繋がれたデータバスに接続され、前記加算手段の出力は演算結果ラッチ手段を介して該データバスへ供給されるようになっていることを特徴とする請求項1の積和演算器。
- 前記データレジスタの入力には、前記データバスからのデータと前記加算手段からの演算結果出力とを選択するセレクタが設けられていることを特徴とする請求項2の積和演算器。
- 前記データレジスタの入力には、前記データバスからのデータと前記演算結果ラッチ手段の出力とを選択するセレクタが設けられていることを特徴とする請求項2の積和演算器。
- 前記演算結果ラッチ手段は、複数の演算結果用レジスタユニットを備え、前記CPUが以前の演算結果を参照できるようになっていることを特徴とする請求項2の積和演算器。
- 前記データレジスタは複数設けられ、該複数のデータレジスタの任意の1つの出力をセレクタで選択して前記乗算手段へ供給するようにしたことを特徴とする請求項1の積和演算器。
- 前記複数のデータレジスタは分割して使用され、該各データレジスタに対応する複数の演算を行うようになっていることを特徴とする請求項6の積和演算器。
- 前記複数のデータレジスタは一括して使用され、該各データレジスタは連結してデータのシフトを行うようになっていることを特徴とする請求項6の積和演算器。
- 前記係数レジスタは複数設けられ、該複数の係数レジスタの任意の1つの出力をセレクタで選択して前記乗算手段へ供給するようにしたことを特徴とする請求項1の積和演算器。
- 前記複数の係数レジスタは分割して使用され、該各係数レジスタに対応する複数の演算を行うようになっていることを特徴とする請求項9の積和演算器。
- 前記複数の係数レジスタは一括して使用され、該各係数レジスタは連結して係数のシフトを行うようになっていることを特徴とする請求項9の積和演算器。
- 前記データレジスタの任意のデータ用レジスタユニットを、新しいデータを転送したときでも以前に転送されたデータのシフトを行わずに所定のデータを保持する固定データ用レジスタユニットとして構成したことを特徴とする請求項1の積和演算器。
- 前記データレジスタを構成する複数のデータ用レジスタユニットは、新たなデータの入力によりシフトアウトされたデータを保持するシフトアウトデータ用レジスタユニットを備え、該シフトアウトデータ用レジスタユニットのデータを使用して逆シフトを行い、前の状態に戻せるようにしたことを特徴とする請求項1の積和演算器。
- 前記係数レジスタの各係数用レジスタユニットは、物理アドレス通りにアクセスされるようになっている請求項1の積和演算器。
- 前記係数レジスタの各係数用レジスタユニットは、新しいデータを転送したとき、以前に転送されたデータが順次シストし、前記新しいデータと前記以前に転送されたデータを保持するようになっている請求項1の積和演算器。
- 前記データレジスタは複数設けられ、該複数のデータレジスタの任意の1つの出力をセレクタで選択して積和演算を行うようにしたことを特徴とする請求項1の積和演算器。
- 前記係数レジスタは複数設けられ、該複数の係数レジスタの任意の1つの出力をセレクタで選択して積和演算を行うようにしたことを特徴とする請求項1の積和演算器。
- 前記各データレジスタに対する係数レジスタの選択を、該各データレジスタに対してそれぞれ1ビットずつ設けられた係数レジスタ選択用ビット設定部に係数レジスタ選択用ビットを設定して該係数レジスタの選択を行うようにしたことを特徴とする請求項17の積和演算器。
- 前記のデータレジスタ、係数レジスタ、乗算手段、加算手段、中間データラッチ手段、演算結果ラッチ手段およびセレクタが複数組設けられ、
第1の組のセレクタは、前記データバスからのデータ、前記第1の組の演算結果ラッチ手段の出力および第2の組の演算結果ラッチ手段の出力のいずれか1つを選択して、前記第1の組のデータレジスタの入力に供給することを特徴とする請求項4の積和演算器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17683994A JP3693367B2 (ja) | 1994-07-28 | 1994-07-28 | 積和演算器 |
US08/430,493 US5904731A (en) | 1994-07-28 | 1995-04-28 | Product-sum device suitable for IIR and FIR operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17683994A JP3693367B2 (ja) | 1994-07-28 | 1994-07-28 | 積和演算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0844703A JPH0844703A (ja) | 1996-02-16 |
JP3693367B2 true JP3693367B2 (ja) | 2005-09-07 |
Family
ID=16020738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17683994A Expired - Lifetime JP3693367B2 (ja) | 1994-07-28 | 1994-07-28 | 積和演算器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5904731A (ja) |
JP (1) | JP3693367B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405229B1 (en) | 1998-01-29 | 2002-06-11 | Sanyo Electric Co., Ltd. | Digital filters |
JP3291461B2 (ja) * | 1998-01-30 | 2002-06-10 | 三洋電機株式会社 | デジタルフィルタ |
FR2776093A1 (fr) * | 1998-03-10 | 1999-09-17 | Philips Electronics Nv | Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique |
US6295545B1 (en) * | 1998-11-12 | 2001-09-25 | Pc-Tel, Inc. | Reduction of execution times for convolution operations |
FR2790322A1 (fr) * | 1999-02-26 | 2000-09-01 | Koninkl Philips Electronics Nv | Recepteur, circuit programmable et procede de calcul de filtres numeriques |
US6301596B1 (en) * | 1999-04-01 | 2001-10-09 | Ati International Srl | Partial sum filter and method therefore |
US6449630B1 (en) * | 1999-04-07 | 2002-09-10 | Mitsubishi Electric Research Laboratories, Inc. | Multiple function processing core for communication signals |
US7107302B1 (en) * | 1999-05-12 | 2006-09-12 | Analog Devices, Inc. | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units |
US6877021B2 (en) * | 2001-03-28 | 2005-04-05 | Classic Solutions Pty Limited | Calculation method and apparatus |
JP3584027B2 (ja) * | 2002-03-12 | 2004-11-04 | 沖電気工業株式会社 | デジタルフィルタ |
US7366747B2 (en) * | 2003-02-12 | 2008-04-29 | Oki Electric Industry Co., Ltd. | Digital filter circuit and data processing method |
US8706791B2 (en) * | 2009-07-30 | 2014-04-22 | Ceva D.S.P. Ltd. | Low power fir filter in multi-MAC architecture |
US20110153995A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same |
WO2020194594A1 (ja) * | 2019-03-27 | 2020-10-01 | Tdk株式会社 | ニューラルネットワーク演算処理装置及びニューラルネットワーク演算処理方法 |
US11329634B1 (en) * | 2019-05-09 | 2022-05-10 | Dialog Semiconductor B.V. | Digital filter structure |
US11107453B2 (en) | 2019-05-09 | 2021-08-31 | Dialog Semiconductor B.V. | Anti-noise signal generator |
US11706062B1 (en) | 2021-11-24 | 2023-07-18 | Dialog Semiconductor B.V. | Digital filter |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2096380A1 (ja) * | 1970-01-20 | 1972-02-18 | Tasso Joseph | |
US3781821A (en) * | 1972-06-02 | 1973-12-25 | Ibm | Selective shift register |
DE3235678A1 (de) * | 1982-09-27 | 1984-03-29 | Siemens AG, 1000 Berlin und 8000 München | Transversalfilter mit einem analogen schieberegister |
US4618941A (en) * | 1983-09-19 | 1986-10-21 | Motorola, Inc. | Apparatus and method for generating filtered multilevel data from NRZ data |
US4636976A (en) * | 1984-09-28 | 1987-01-13 | Data General Corporation | Bit shifting apparatus |
US5081573A (en) * | 1984-12-03 | 1992-01-14 | Floating Point Systems, Inc. | Parallel processing system |
JPS61160176A (ja) * | 1984-12-29 | 1986-07-19 | Hitachi Ltd | ベクトル処理装置 |
US4829463A (en) * | 1985-03-27 | 1989-05-09 | Akai Electric Co. Ltd. | Programmed time-changing coefficient digital filter |
JPS6297062A (ja) * | 1985-10-23 | 1987-05-06 | Mitsubishi Electric Corp | デイジタルシグナルプロセツサ |
JP2632876B2 (ja) * | 1987-10-23 | 1997-07-23 | キヤノン株式会社 | 画像処理装置 |
JP2690932B2 (ja) * | 1988-03-18 | 1997-12-17 | 株式会社日立製作所 | ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム |
JPH02137514A (ja) * | 1988-11-18 | 1990-05-25 | Sanyo Electric Co Ltd | デジタル信号処理装置 |
US4975947A (en) * | 1989-02-22 | 1990-12-04 | Texas Instruments Incorporated | System to share the DSP computation resources |
DE69028668T2 (de) * | 1989-07-25 | 1997-04-24 | Canon Kk | Bildverarbeitungsgerät |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
JPH0377418A (ja) * | 1989-08-18 | 1991-04-03 | Mitsubishi Electric Corp | ディジタルフィルタ |
US5050119A (en) * | 1989-10-06 | 1991-09-17 | North American Philips Corporation | Optimized sparse transversal filter |
JPH0767063B2 (ja) * | 1990-01-23 | 1995-07-19 | ヤマハ株式会社 | デジタル信号処理回路 |
JPH0772864B2 (ja) * | 1990-05-11 | 1995-08-02 | パイオニア株式会社 | ディジタル信号プロセッサ |
JP2959104B2 (ja) * | 1990-10-31 | 1999-10-06 | 日本電気株式会社 | 信号処理プロセッサ |
US5136622A (en) * | 1991-02-28 | 1992-08-04 | Thomson, S.A. | Shift register, particularly for a liquid crystal display |
EP0537397B1 (en) * | 1991-10-17 | 1997-02-05 | International Business Machines Corporation | Adaptive FIFO memory controller |
JPH05108693A (ja) * | 1991-10-18 | 1993-04-30 | Mitsubishi Electric Corp | Iirデジタルフイルタ装置 |
GB2267588B (en) * | 1992-06-06 | 1996-03-20 | Motorola Inc | FIFO memory system |
US5457805A (en) * | 1992-06-30 | 1995-10-10 | Nec Corporation | Microcomputer enabling high speed execution of product-sum operation |
US5309382A (en) * | 1992-10-01 | 1994-05-03 | Silicon Graphics, Inc. | Binary shifter |
KR100295257B1 (ko) * | 1993-01-20 | 2001-09-17 | 다카노 야스아키 | 디지탈필터 |
DE69433031T2 (de) * | 1993-01-22 | 2004-04-22 | Olympus Optical Co., Ltd. | Bildprozessor |
US5367476A (en) * | 1993-03-16 | 1994-11-22 | Dsc Communications Corporation | Finite impulse response digital filter |
JP2883784B2 (ja) * | 1993-04-27 | 1999-04-19 | 株式会社東芝 | マイクロコンピュータ |
-
1994
- 1994-07-28 JP JP17683994A patent/JP3693367B2/ja not_active Expired - Lifetime
-
1995
- 1995-04-28 US US08/430,493 patent/US5904731A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5904731A (en) | 1999-05-18 |
JPH0844703A (ja) | 1996-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3693367B2 (ja) | 積和演算器 | |
US8271571B2 (en) | Microprocessor | |
US6209017B1 (en) | High speed digital signal processor | |
US4490807A (en) | Arithmetic device for concurrently summing two series of products from two sets of operands | |
CN100437467C (zh) | 部分逐位置换 | |
US4839851A (en) | Programmable data path device | |
JP3605181B2 (ja) | 掛け算累算命令を使用したデータ処理 | |
EP0754998A1 (en) | An arithmetic unit | |
JP2001516916A (ja) | デジタル信号処理能力を有するデータ処理装置 | |
US6202077B1 (en) | SIMD data processing extended precision arithmetic operand format | |
JP3938238B2 (ja) | 高速フーリエ変換処理装置 | |
CA1223664A (en) | Address computation system for digital processing apparatus | |
JP3476960B2 (ja) | 算術論理演算装置及び制御方法 | |
KR100222032B1 (ko) | 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 | |
EP1131699A1 (en) | A data processing system and method for performing an arithmetic operation on a plurality of signed data values | |
US6983298B2 (en) | Method and apparatus for linear interpolation using gradient tables | |
US5822609A (en) | Processing circuit for performing a convolution computation | |
JP3305406B2 (ja) | プログラム制御のプロセッサ | |
JPH08123670A (ja) | モジュラー演算を計算するデバイス及びこれを用いたスマートカード | |
JPH02205923A (ja) | 演算プロセッサ | |
US5646874A (en) | Multiplication/multiplication-accumulation method and computing device | |
KR100315303B1 (ko) | 디지탈 신호 처리기 | |
KR100251547B1 (ko) | 디지탈신호처리기(Digital Sgnal Processor) | |
EP1197874B1 (en) | Signal processor and product-sum operating device for use therein with rounding function | |
KR100623604B1 (ko) | 데이터 처리장치 및 그의 데이터 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041005 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050621 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080701 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090701 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100701 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100701 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110701 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110701 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110701 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120701 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120701 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130701 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |