JP3784990B2 - Configuration method of systolic array processor - Google Patents
Configuration method of systolic array processor Download PDFInfo
- Publication number
- JP3784990B2 JP3784990B2 JP10358099A JP10358099A JP3784990B2 JP 3784990 B2 JP3784990 B2 JP 3784990B2 JP 10358099 A JP10358099 A JP 10358099A JP 10358099 A JP10358099 A JP 10358099A JP 3784990 B2 JP3784990 B2 JP 3784990B2
- Authority
- JP
- Japan
- Prior art keywords
- cell
- array processor
- systolic array
- calculation
- boundary cell
- 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 - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
- Filters That Use Time-Delay Elements (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は逐次最小二乗アルゴリズム(以下、RLSアルゴリズムと略記する)の処理を行うためのシストリックアレイプロセッサの構成法に関する。
【0002】
【従来の技術】
図1に適応フィルタの基本モデルを示す。適応フィルタとはu(n)を入力信号、y(n)を出力信号とする可変係数フィルタ11であり、出力信号y(n)が参照信号d(n)に近づくように係数更新アルゴリズム12によりフィルタ係数が更新される。ここで、それぞれの信号はシンボルタイミングごとにサンプリングされるので、サンプリングされた後の信号をタイミングインデックスnを用いて表す。適応フィルタとして図2に示されるようなトランスバーサル形フィルタを考える。遅延量が1タイミング周期の遅延素子D1,D2,…,DN−1が直列に接続され、その一端の遅延素子D1に入力信号u(n)が入力され、その入力信号u(n)と、各遅延素子D1,…,DN−1の各出力u(n−1),…,u(n−N+1)とに対し、乗算器M0,M1,…,MN−1でそれぞれタップ係数w0(n),w1(n),…,wN-1(n)が乗算され、これら乗算結果が加算器13で加算されて出力信号y(n)となる。フィルタのタップ係数wk とし、入力と出力の関係は以下の式で表される。
【0003】
y(n) =Σ k=0 N-1 wk (n) u(n−k) (1)
ここで、タップ数をNとして、入力信号とタップ係数のベクトルをそれぞれ以下の式で定義する。
u(n) =(u(n) ,u(n−1),…,u(n−N+1))t (2)
w(n) =(w0(n),w1(n),…,wN-1(n))t (3)
添字tは転置を表す。このとき、フィルタの入出力関係は以下の式で表される。
【0004】
y(n) =w t (n) u(n) (4)
また、誤差信号e(n)は以下の式で表される。
e(n) =d(n)−w t (n) u(n) (5)
この誤差信号の荷重二乗平均を評価関数J(w)とする。
J(w)=Σ m=0 n λn-m |e(m) |2 (6)
ただし、λは忘却係数である。適応フィルタは評価関数J(w)を最小とす
るようにフィルタの各タップ係数を更新する。評価関数J(w)を最小とす
る解w(n) は、
R xx(n) w(n) =P(n) (7)
を満足する。ここでR xx(n) は入力信号の自己相関行列であり、P(n) は入
力信号と参照信号の相互相関行列である。式(7)は正規方程式と呼ばれている。ここでR xx(n) が正則であれば、式(7)により最適な係数ベクトルw(n
) は以下の式で与えられる。
【0005】
w(n) =R xx -1(n) P(n) (8)
式(8) に基づいてフィルタのタップ係数を更新する方法は評価関数J(w
)を最小にするという意味で最適であるが、R xx(n) の逆行列演算を行わなけ
ればならないので計算量が多い。そこで、より少ない計算量でフィルタのタップ係数を求めるアルゴリズムがいくつか知られている。その中で特に収束の速いアルゴリズムがRLSアルゴリズムである。RLSアルゴリズムはフィルタのタップ係数を逐次的に求める。これにより、式(8)の逆行列演算を行う必要がなくなり計算量が少なくなる。具体的に、RLSアルゴリズムでは以下の演算を行う。
【0006】
X(n) =(1/λ)R -1(n−1)u(n)
K(n) =X(n) /(1+u H (n) X(n) )
α(n) =y(n) −w H (n−1)u(n)
w(n) =w(n−1)+K(n) α* (n)
R -1(n) =(1/λ)R -1(n−1)−K(n) X H (n) (9)
ここで、添字*は複素共役を表し、Hは共役転置を表す。
【0007】
RLSアルゴリズムを用いても適応フィルタのタップ数が多くなると、計算量が増えるために実時間処理が困難となる。そこで、RLSアルゴリズムの処理をパイプライン並列的に行うことのできるシストリックアレイプロセッサが知られている。シストリックアレイプロセッサとは同一の機能を持つセルを規則的に配置して、RLSアルゴリズムの計算をパイプライン的に並列に行うものである。原理的には行列のQR分解(与えられた行列の固有値を効率的に求めるために、行列を直交行列と上三角行列に分解すること)とギブンズローテーション(与えられた行列に対して、その行列の値により導出される直交行列を用いて、与えられた行列の上三角行列化を行うこと)を用いることにより、処理のパイプライン並列化を可能としている。シストリックアレイプロセッサでは、各セルにおいて単純な計算を行い、計算結果を隣接セルに渡すということを繰り返すことによりRLSアルゴリズムの計算が行われる。従来のシストリックアレイプロセッサの構成を図3Aに示す。ここでフィルタのタップ数は3としている。シストリックアレイプロセッサにはバウンダリーセル(以下、boundary cell)BC(図3B)とインターナルセル(以下、internal cell)IC(図3C)とファイナルセル(以下、final cell) FC(図3D)の3種類のセルがあり、それぞれのセルにおいて図3に示される演算が行われる。delay unitはデータの転送を1タイミング遅らせる働きを持つ。u(n) はフィルタの各タップへの入力信号を表し、d(n)は参照信号を表す。
【0008】
タップ数のバウンダリーセルBC1,BC2,BC3が順次、遅延量が1タイミング周期の遅延素子Dを介して直列に接続され、バウンダリーセルBC3の出力側は遅延素子D3を介してファイナルセルFCに接続される。バウンダリーセルBC1の他方の出力側にインターナルセルIC11,IC12,IC13が順次接続され、バウンダリーセルBC2の他方の出力側にインターナルセルIC22,IC23が順次接続され、バウンダリーセルBC3の他方の出力側にインターナルセルIC33が接続される。インターナルセルIC11,IC12,IC13の各他方の出力側はバウンダリーセルBC2、インターナルセルIC22,IC23とそれぞれ接続され、インターナルセルIC22,IC23の各他方の出力側はバウンダリーセルBC3、インターナルセルIC33に接続され、インターナルセルIC33の他方の出力側はファイナルセルFCに接続される。つまりこれらセルBC,IC,FCは三角形の行列に配されている。
【0009】
各バウンダリーセルBCには遅延素子Dを介しての前段のバウンダリーセルよりの入力δinと、そのバウダリーセルBCに接続されているインターナルセルICからの入力u inとが与えられ、uin=0もしくはδin=0の時、次の計算を
行う。
x=β2 x,s=0,z=uin,δout =δin (10)
uin≠0かつδin≠0の時、以下の計算を行う。
【0010】
z=uin,x′=β2 x+δin|z|2 ,c=β2 x/x′,s=δinz/x′,x=x′,δout =cδin (11)
ここで、xはバウンダリーセル自身が持つ値であり正の実数となる。またβはRLSアルゴリズムにおける忘却係数λの平方根である。そのバウンダリーセルBCにおいて計算されたs,zは行方向の隣接するインターナルセルICに渡され、δinを用いて計算されたδout は遅延素子を介して1タイミング遅延されて次のバウンダリーセルに渡される。式(10)、(11)において、x,β,δin,δout ,cは正の実数でありs,z,uinは複素数となる。
【0011】
各インターナルセルにおいては行方向からの入力s,zと列方向からの入力uinとにより以下の計算を行う。
uout =uin−zx,x=x+s* uout (12)
uout は列方向に出力され、s,zはそのまま行方向に出力され、セルの持つ値xが更新される。この時、xの値は複素数となる。
【0012】
最後にファイナルセルFCにおいてこれに接続されたインターナルセルIC33からのuinと直前のバウンダリーセルBC3よりの遅延素子D3を介して入力されるδinとをかけることにより誤差信号e(n)が導出される。
e(n)=uinδin (13)
図3Aに示すように初段のバウンダリーセルBC1には入力信号u(1),u(2),u(3),…がタイミングごとに順次入力され、インターナルセルIC11にはバウンダリーセルBC1に対し、1タイミング遅れて0,u(1),u(2),…が順次入力され、インターナルセルIC12には、バウンダリーセルBC1に対し、2タイミング遅れて0,0,u(1),u(2),…が順次入力され、インターナルセルIC13にはバウンダリーセルBC1に対し、3タイミング遅れて参照信号d(1),d(2),d(3),…が順次入力される。
【0013】
バウンダリーセル・インターナルセルで以上の計算を行い、隣接セルにその結果を渡して、再び各セルで計算を行うという処理を繰り返すことにより、全体としてRLSアルゴリズムが処理され、誤差信号及びタップ係数を得ることができる。
上記、RLSアルゴリズムの処理を行うシストリックアレイプロセッサをASIC(Application Specific IC )などのプログラマブルデバイスを用いて設計する場合、内部で行われる演算として、浮動小数点演算ではなく固定小数点演算を用いると動作速度が速い。しかし、固定小数点演算を行う場合、桁あふれや丸め誤差等の問題が生じてしまう。スケーリング(入力される値を、あらかじめ1に正規化すること)を行うことにより乗算による桁あふれの問題は回避できるが、除算や和差算による桁あふれの問題が残る。そこで、各演算毎に最適なビットシフト量を求めてビットシフトを行う擬似浮動小数点演算を行うことにより、桁あふれの問題はなくなるが動作速度が遅くなる。動作速度の点では、固定小数点演算が最も速く、次に擬似浮動小数点演算となり、浮動小数点演算が最も遅い。
【0014】
シストリックアレイプロセッサにおいて固定小数点演算を行う場合、スケーリングを用いても除算と和差算の影響により桁あふれの問題が生じる可能性がある。式(11)、(12)においては和算の影響により桁あふれが生じる可能性がある。また、式(11)においてβ2 x≪δin|z|2 かつ|z|≪1の時に、x′≒δin|z|2 、よって|s|=1/|z|となってしまうので、sの値が大きくなり桁あふれを生じる可能性がある。桁あふれが生じてしまうと、RLSアルゴリズムの処理が正しく行われない。
【0015】
【発明が解決しようとする課題】
この発明は、シストリックアレイプロセッサをASIC(Application Specific IC )などのプログラマブルデバイスにより固定小数点演算を用いて設計する場合、桁あふれ等の影響により生ずる誤差を小さくすることを目的とする。
【0016】
【課題を解決するための手段】
この発明においては、固定小数点演算を用い、バウンダリーセルの演算の際に、しきい値を設け、入力のいずれかがしきい値以下である場合と他の場合とに応じて実行する演算を分ける。
この構成により、固定小数点演算により得られる結果の誤差を小さくして、浮動小数点演算により得られる結果の誤差に近ずける。
【0017】
【発明の実施の形態】
この発明の実施例においても、図3に示した従来と同様なRLSアルゴリズムの処理を行うシストリックアレイプロセッサを構成するが、この発明ではバウンダリーセルの演算のための条件文に小さな値のしきい値minを設けて以下の計算を行う。
【0018】
uin<min 又はδin<min 又はβ2 x+δin|z|2 <min であれば
{x=β2 x,s=0,z=uin,δout =δin}
を演算し、その他の場合は
{z=uin,x′=β2 x+δin|z|2 ,
c=β2 x/x′,s=δinz/x′,x=x′,
δout =cδin} (14)
を演算する。これにより、β2 x≪δin|z|2 かつ|z|≪1であっても、あるしきい値(min)の値より入力uinが小さければ、uin<minとなるのでs=0となり、除算の影響によりsの値が桁あふれを生じるという問題を回避することができる。またcやsの演算において(1/x′)を演算するため、x′が小さな値となったり、βは忘却係数λの平方根であり、従ってβ2 は著しく小さな値となり、かつδinが著しく小さな値であれば、x′が小さな値となり、(1/x′)の演算で桁あふれの問題が生じるが、この発明ではδin<min又はx′<minの場合は、cやsの演算は行わず、つまり1/x′の演算は行なわないため、1/x′が大きな値となって桁あふれが生じる問題は生じない。
【0019】
しきい値minの値は入力信号の変動状態や、演算ビット数などによって好ましい値が異なる。よって予めシミュレーションにより各種条件と対応した好ましいしきい値を求めておき、使用条件に適したしきい値minを選定すればよい。これらにより、桁あふれの影響により生じる誤差を小さくすることができる。
【0020】
【発明の効果】
この発明により、シストリックアレイプロセッサをASIC(Application Specific IC )などのプログラマブルデバイスにより固定小数点演算を用いて設計する場合、桁あふれ等の影響により生ずる誤差を小さくすることができる。その結果、浮動小数点演算により得られる結果の誤差に、固定小数点演算により得られる結果の誤差を近づけることができ、誤差を小さくすることができる。
【0021】
ここで、一例として推定するパラメータ数16におけるこの発明の効果について示す。図4は、ある適当な入力信号u(n) と参照信号d(n) を用いて、適応フィルタのタップ数16とした場合の、式(9)を用いて浮動小数点演算により導出したタップ係数と、シストリックアレイプロセッサを用いて導出したタップ係数との誤差を表している。誤差の単位は%である。boundary cell におけるしきい値を設定しない従来のシストリックアレイプロセッサにおいて、浮動小数点演算を用いて導出したタップ係数と、式(9)を用いて浮動小数点演算により導出したタップ係数との誤差は殆どない。これは、式(9)における計算と、シストリックアレイプロセッサにおいて行われる計算が数学的に等価なためである。次に、boundary cell においてしきい値(ここでは、一例としてしきい値を0.0001とした。)の設定を行う式(14)の方法を用いて、浮動小数点演算によりタップ係数を導出した場合、若干の誤差が生じている。これは、しきい値を設定することにより、式(9)の計算とシストリックアレイプロセッサ内部で行われる演算が数学的に等価でなくなったためである。次に、固定小数点演算(整数部10ビット、小数部22ビット)を行い、boundary cell 内部ではしきい値の設定を行わない式(10)、(11)の演算を行った場合は、大きな誤差を生じている。これは、桁あふれ等の影響のためと考えられる。最後に、固定小数点演算(整数部10ビット、小数部22ビット)を行い、boundary cell 内部における演算において条件文にしきい値を設定したこの発明の場合は、しきい値の設定を行わない場合と比較して誤差が大幅に減少している。これは、β2 x≪δin|z|2 かつ|z|≪1の時に除算の影響によりsの値が桁あふれを生じるという問題を回避することができているためである。したがって、この発明により、固定小数点演算を用いた場合の桁あふれ等の影響により生じる誤差の影響を小さくできる。
【図面の簡単な説明】
【図1】適応フィルタの基本モデルを表す図。
【図2】トランスバーサル形フィルタを表す図。
【図3】AはRLSアルゴリズムの処理を行う従来のシストリックアレイプロセッサの構成を示す図、B、C、Dはそれぞれboundary cell とinternal cell とfinal cellで行われる計算を示す図である。
【図4】推定するパラメータ数16として、従来のRLSアルゴリズムの数式により浮動小数点演算を用いて導出したタップ係数と、シストリックアレイプロセッサを用いて導出したタップ係数との誤差を表し、浮動小数点演算及び固定小数点演算のそれぞれについて、boundary cell におけるしきい値の設定を行う場合と行わない場合の4通りについて誤差を示す図。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a configuration method of a systolic array processor for performing processing of a sequential least squares algorithm (hereinafter abbreviated as RLS algorithm).
[0002]
[Prior art]
FIG. 1 shows a basic model of the adaptive filter. The adaptive filter is a
[0003]
y (n) = Σk = 0 N−1 w k (n) u (n−k) (1)
Here, assuming that the number of taps is N, vectors of input signals and tap coefficients are respectively defined by the following equations.
u (n) = (u (n), u (n−1),..., u (n−N + 1)) t (2)
w (n) = (w 0 (n), w 1 (n), ..., w N-1 (n)) t (3)
The subscript t represents transposition. At this time, the input / output relationship of the filter is expressed by the following equation.
[0004]
y (n) = w t (n) u (n) (4)
The error signal e (n) is expressed by the following equation.
e (n) = d (n) −w t (n) u (n) (5)
The weighted mean square of the error signal is defined as an evaluation function J ( w ).
J (w) = Σ m = 0 n λ nm | e (m) | 2 (6)
Where λ is a forgetting factor. The adaptive filter updates each tap coefficient of the filter so as to minimize the evaluation function J ( w ). The solution w (n) that minimizes the evaluation function J ( w ) is
R xx (n) w (n) = P (n) (7)
Satisfied. Here, R xx (n) is an autocorrelation matrix of the input signal, and P (n) is a cross-correlation matrix of the input signal and the reference signal. Equation (7) is called a normal equation. If R xx (n) is regular, the optimal coefficient vector w (n
) Is given by
[0005]
w (n) = R xx -1 (n) P (n) (8)
The method of updating the filter tap coefficient based on the equation (8) is based on the evaluation function J ( w
) Is minimized, but it requires a large amount of calculation because an inverse matrix operation of R xx (n) must be performed. Therefore, several algorithms for obtaining the filter tap coefficient with a smaller calculation amount are known. Among them, the RLS algorithm is a particularly fast convergence algorithm. The RLS algorithm sequentially obtains the filter tap coefficients. Thereby, it is not necessary to perform the inverse matrix operation of Expression (8), and the amount of calculation is reduced. Specifically, the RLS algorithm performs the following operations.
[0006]
X (n) = (1 / λ) R −1 (n−1) u (n)
K (n) = X (n ) / (1+ u H (n) X (n))
α (n) = y (n) −w H (n−1) u (n)
w (n) = w (n-1) + K (n) α * (n)
R -1 (n) = (1 / λ) R -1 (n-1) -K (n) X H (n) (9)
Here, the subscript * represents a complex conjugate, and H represents a conjugate transpose.
[0007]
Even if the RLS algorithm is used, if the number of taps of the adaptive filter increases, the amount of calculation increases, and real-time processing becomes difficult. Therefore, a systolic array processor capable of performing RLS algorithm processing in pipeline parallel is known. In the systolic array processor, cells having the same function are regularly arranged, and RLS algorithm calculations are performed in parallel in a pipeline manner. In principle, QR decomposition of a matrix (in order to efficiently determine the eigenvalues of a given matrix, decompose the matrix into an orthogonal matrix and an upper triangular matrix) and Givens rotation (for a given matrix, the matrix By using an orthogonal matrix derived from the value of (3), an upper triangular matrix of a given matrix is used), thereby enabling pipeline parallel processing. In the systolic array processor, calculation of the RLS algorithm is performed by repeating simple calculation in each cell and passing the calculation result to the adjacent cell. The configuration of a conventional systolic array processor is shown in FIG. 3A. Here, the number of filter taps is three. The systolic array processor includes a boundary cell BC (FIG. 3B), an internal cell IC (FIG. 3C), and a final cell FC (FIG. 3D). There are types of cells, and the operation shown in FIG. 3 is performed in each cell. The delay unit has a function of delaying data transfer by one timing. u (n) represents an input signal to each tap of the filter, and d (n) represents a reference signal.
[0008]
Boundary cells BC1, BC2 and BC3 of the number of taps are sequentially connected in series via a delay element D having a delay amount of one timing period, and the output side of boundary cell BC3 is connected to final cell FC via delay element D3. Connected. Internal cells IC11, IC12, IC13 are sequentially connected to the other output side of boundary cell BC1, internal cells IC22, IC23 are sequentially connected to the other output side of boundary cell BC2, and the other output of boundary cell BC3 is output. The internal cell IC 33 is connected to the side. The other output side of the internal cells IC11, IC12, IC13 is connected to the boundary cell BC2 and the internal cells IC22, IC23, respectively. The other output side of the internal cells IC22, IC23 is connected to the boundary cell BC3, the internal cell IC33. The other output side of the internal cell IC 33 is connected to the final cell FC. That is, these cells BC, IC, FC are arranged in a triangular matrix.
[0009]
Each boundary cell BC is given an input δ in from the previous boundary cell via the delay element D and an input u in from the internal cell IC connected to the boundary cell BC, and u in = When 0 or δ in = 0, the following calculation is performed.
x = β 2 x, s = 0, z = u in , δ out = δ in (10)
When u in ≠ 0 and δ in ≠ 0, the following calculation is performed.
[0010]
z = u in , x ′ = β 2 x + δ in | z | 2 , c = β 2 x / x ′, s = δ in z / x ′, x = x ′, δ out = cδ in (11)
Here, x is a value of the boundary cell itself and is a positive real number. Β is the square root of the forgetting factor λ in the RLS algorithm. The s and z calculated in the boundary cell BC are passed to the adjacent internal cell IC in the row direction, and δ out calculated using δ in is delayed by one timing through the delay element to be the next boundary. Passed to the cell. In Expressions (10) and (11), x, β, δ in , δ out , and c are positive real numbers, and s, z, and u in are complex numbers.
[0011]
In each internal cell, the following calculation is performed based on inputs s and z from the row direction and inputs u in from the column direction.
u out = u in −zx, x = x + s * u out (12)
u out is output in the column direction, s and z are output as they are in the row direction, and the value x of the cell is updated. At this time, the value of x is a complex number.
[0012]
Finally, in the final cell FC, the error signal e (n) is obtained by multiplying u in from the internal cell IC 33 connected thereto by δ in inputted through the delay element D3 from the immediately preceding boundary cell BC3. Derived.
e (n) = u in δ in (13)
As shown in FIG. 3A, input signals u (1), u (2), u (3),... Are sequentially input to the first stage boundary cell BC1 at each timing, and the internal cell IC11 is input to the boundary cell BC1. On the other hand, 0, u (1), u (2),... Are sequentially input with a delay of 1 timing, and 0, 0, u (1), ... with a delay of 2 timings with respect to the boundary cell BC1. u (2),... are sequentially input, and reference signals d (1), d (2), d (3),... are sequentially input to the internal cell IC13 with a delay of three timings with respect to the boundary cell BC1. .
[0013]
The RLS algorithm is processed as a whole by repeating the process of performing the above calculation in the boundary cell / internal cell, passing the result to the neighboring cell, and performing the calculation in each cell again, and the error signal and the tap coefficient are calculated. Obtainable.
When the systolic array processor that performs the RLS algorithm processing is designed using a programmable device such as an ASIC (Application Specific IC), the operation speed is obtained when a fixed-point operation is used instead of a floating-point operation. Is fast. However, when fixed-point arithmetic is performed, problems such as overflow and rounding errors occur. By carrying out scaling (normalizing the input value to 1 in advance), the problem of overflow due to multiplication can be avoided, but the problem of overflow due to division and sum / difference remains. Thus, by performing pseudo floating point arithmetic that obtains the optimum bit shift amount for each operation and performs bit shift, the problem of overflow is eliminated, but the operation speed is reduced. In terms of operating speed, fixed point arithmetic is the fastest, followed by pseudo floating point arithmetic, and floating point arithmetic is the slowest.
[0014]
When performing fixed-point arithmetic in a systolic array processor, even if scaling is used, a problem of overflow may occur due to the influence of division and sum / difference. In equations (11) and (12), overflow may occur due to the effect of summation. Also, β 2 x«δ in the equation (11) | when «1, x '≒ δ in | | z | 2 and | z z | 2, thus | s | = 1 / | becomes | z Therefore, there is a possibility that the value of s becomes large and overflow occurs. If an overflow occurs, the RLS algorithm is not correctly processed.
[0015]
[Problems to be solved by the invention]
An object of the present invention is to reduce an error caused by the influence of overflow or the like when a systolic array processor is designed using a fixed-point operation by a programmable device such as an ASIC (Application Specific IC).
[0016]
[Means for Solving the Problems]
In the present invention, a fixed-point operation is used, and a threshold value is provided when calculating a boundary cell, and an operation to be executed depending on whether one of the inputs is equal to or less than the threshold value or the other case. Divide.
With this configuration, the error of the result obtained by the fixed-point operation is reduced, and the error of the result obtained by the floating-point operation is approached.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
In the embodiment of the present invention as well, a systolic array processor that performs the same RLS algorithm processing as shown in FIG. 3 is configured. However, in the present invention, a small value is added to the conditional statement for the boundary cell operation. The following calculation is performed by setting a threshold value min.
[0018]
If u in <min or δ in <min or β 2 x + δ in | z | 2 <min, {x = β 2 x, s = 0, z = u in , δ out = δ in }
Otherwise, {z = u in , x ′ = β 2 x + δ in | z | 2 ,
c = β 2 x / x ′, s = δ in z / x ′, x = x ′,
δ out = c δ in } (14)
Is calculated. As a result, even if β 2 x << δ in | z | 2 and | z | << 1, if the input u in is smaller than the value of a certain threshold value (min), u in <min, so s = The problem that the value of s overflows due to the influence of division can be avoided. Also, since (1 / x ′) is calculated in the calculation of c and s, x ′ becomes a small value, β is the square root of the forgetting factor λ , and therefore β 2 becomes a very small value, and δ in is If the value is extremely small, x ′ becomes a small value, and the problem of overflow occurs in the operation of (1 / x ′). In the present invention, when δ in <min or x ′ <min, c and s Is not performed, i.e., 1 / x 'is not performed. Therefore, there is no problem that 1 / x' becomes a large value and overflow occurs.
[0019]
The preferable value of the threshold value min varies depending on the fluctuation state of the input signal, the number of calculation bits, and the like. Therefore, a preferable threshold value corresponding to various conditions may be obtained in advance by simulation, and a threshold value min suitable for the use condition may be selected. As a result, errors caused by the influence of overflow can be reduced.
[0020]
【The invention's effect】
According to the present invention, when a systolic array processor is designed using a fixed-point operation by a programmable device such as an ASIC (Application Specific IC), an error caused by the influence of overflow or the like can be reduced. As a result, the error of the result obtained by the fixed-point operation can be brought close to the error of the result obtained by the floating-point operation, and the error can be reduced.
[0021]
Here, the effect of the present invention in the parameter number 16 estimated as an example will be described. FIG. 4 shows a tap coefficient derived by floating point calculation using equation (9) when an appropriate input signal u (n) and reference signal d (n) are used and the number of taps of the adaptive filter is 16. And an error between the tap coefficient derived using the systolic array processor. The unit of error is%. In a conventional systolic array processor that does not set a threshold value in the boundary cell, there is almost no error between the tap coefficient derived using floating-point arithmetic and the tap coefficient derived using floating-point arithmetic using Equation (9). . This is because the calculation in equation (9) and the calculation performed in the systolic array processor are mathematically equivalent. Next, when the tap coefficient is derived by floating point calculation using the method of equation (14) that sets the threshold value (here, the threshold value is set to 0.0001 as an example) in the boundary cell Some errors have occurred. This is because the calculation of equation (9) and the operation performed inside the systolic array processor are no longer mathematically equivalent by setting the threshold value. Next, if fixed point arithmetic (
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a basic model of an adaptive filter.
FIG. 2 is a diagram illustrating a transversal filter.
FIG. 3A is a diagram illustrating a configuration of a conventional systolic array processor that performs processing of an RLS algorithm, and B, C, and D are diagrams illustrating calculations performed in a boundary cell, an internal cell, and a final cell, respectively.
FIG. 4 shows an error between a tap coefficient derived using floating-point arithmetic and a tap coefficient derived using a systolic array processor as the number of parameters to be estimated 16 according to a conventional RLS algorithm formula. The figure which shows an error about 4 types, when not setting with the setting of the threshold value in a boundary cell about each of a fixed point arithmetic.
Claims (1)
x=β 2 x,s=0,z=u in ,δ out =δ in
その他の場合は
z=u in ,x′=β 2 x+δ in |z| 2 ,
c=β 2 x/x′,s=δ in z/x′,x=x′,δ out =cδ in
の演算を行うバウンダリーセルと、インターナルセルと、ファイナルセルの各セルで演算を繰り返すことで逐次最小二乗アルゴリズムの計算を行うシストリックアレイプロセッサの構成方法において、
前記バウンダリーセルは、u in < min 又はδ in < min 又はβ 2 x+δ in |z| 2 < min であれば
x=β 2 x,s=0,z=u in ,δ out =δ in
但しminは使用条件に応じて選定されたしきい値
の演算を行うことを特徴とするシストリックアレイプロセッサの構成方法。 u in = 0 Or if δ in = 0
x = β 2 x, s = 0, z = u in , δ out = δ in
In other cases
z = u in , x ′ = β 2 x + δ in | z | 2 ,
c = β 2 x / x ′, s = δ in z / x ′, x = x ′, δ out = cδ in
In the method of configuring the systolic array processor that performs the calculation of the least-squares algorithm sequentially by repeating the calculation in each of the boundary cell, the internal cell, and the final cell,
The boundary cell, u in <min or [delta] in <min or β 2 x + δ in | if 2 <min | z
x = β 2 x, s = 0, z = u in , δ out = δ in
Where min is the threshold selected according to the operating conditions
A method of configuring a systolic array processor, characterized in that
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10358099A JP3784990B2 (en) | 1999-04-12 | 1999-04-12 | Configuration method of systolic array processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10358099A JP3784990B2 (en) | 1999-04-12 | 1999-04-12 | Configuration method of systolic array processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000293510A JP2000293510A (en) | 2000-10-20 |
JP3784990B2 true JP3784990B2 (en) | 2006-06-14 |
Family
ID=14357730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10358099A Expired - Fee Related JP3784990B2 (en) | 1999-04-12 | 1999-04-12 | Configuration method of systolic array processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3784990B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5787527B2 (en) * | 2011-01-18 | 2015-09-30 | キヤノン株式会社 | Signal processing circuit and ultrasonic diagnostic apparatus |
US9679260B2 (en) * | 2014-03-20 | 2017-06-13 | Huawei Technologies Co., Ltd. | System and method for adaptive filter |
JP7300814B2 (en) * | 2018-07-26 | 2023-06-30 | 日本無線株式会社 | Signal processing device and signal processing method |
-
1999
- 1999-04-12 JP JP10358099A patent/JP3784990B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000293510A (en) | 2000-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sudhashree et al. | Analysis of Low Complexity Memory Footprint Reduction for Delay and Area Efficient Realization of 2D FIR Filters | |
US7460916B2 (en) | Nonlinear system observation and control | |
CN100573440C (en) | A kind of parallel-to-serial adder and multiplier | |
US4947363A (en) | Pipelined processor for implementing the least-mean-squares algorithm | |
Ko et al. | Robust and computationally efficient digital IIR filter synthesis and stability analysis under finite precision implementations | |
Kaplun et al. | Technique to adjust adaptive digital filter coefficients in residue number system based filters | |
Fan et al. | Delta Levinson and Schur-type RLS algorithms for adaptive signal processing | |
JP3784990B2 (en) | Configuration method of systolic array processor | |
Subudhi et al. | VLSI design and implementation for adaptive filter using LMS algorithm | |
Diniz et al. | Adaptive Lattice-based RLS algorithms | |
Bistritz et al. | Inversion and factorization of non-Hermitian quasi-Toeplitz matrices | |
Prasad et al. | Time-Shared LUT-Less Pipelined LMS Adaptive Filter | |
Meyer-Baese et al. | Adaptive Systems | |
KR100281504B1 (en) | Adaptive equalization method and adaptive equalizer | |
JPH11112291A (en) | Adaptive equalizing method, adaptive equalizer, computer readable recording medium, reception device and data transmitting system | |
JPH11175510A (en) | Systolic array | |
Li et al. | STAR recursive least square lattice adaptive filters | |
Hsieh | A remedy for time distributed multi-step delayed input and state estimation | |
US6757702B1 (en) | Adaptive filter | |
JP3348845B2 (en) | Adaptive digital filter | |
Danninger | Architectural Exploration of Arbitrary Sampling Rate Converters/Author Matthias Danninger, BSC | |
Chowthri et al. | Design and implementation of low complexity LMS adaptive filter | |
Deshmukh et al. | Implementing digital filter using karatsuba algorithm with Chebyshev coefficient | |
AFRIN et al. | Implementation of LMS Adaptive Filter with Low Adaptation Delay for High Speed Applications | |
PARTHIBAN et al. | VLSI IMPLEMENTATION OF HIGH PERFORMANCE DISTRIBUTED ARITHMETIC (DA) BASED ADAPTIVE FILTER WITH FAST CONVERGENCE FACTOR |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050907 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20050907 |
|
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: 20060228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060316 |
|
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: 20090324 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140324 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |