JP3324501B2 - 分割alu方式による並列演算を利用した演算処理装置、フィルタ計算方法及び記録媒体 - Google Patents
分割alu方式による並列演算を利用した演算処理装置、フィルタ計算方法及び記録媒体Info
- Publication number
- JP3324501B2 JP3324501B2 JP12451498A JP12451498A JP3324501B2 JP 3324501 B2 JP3324501 B2 JP 3324501B2 JP 12451498 A JP12451498 A JP 12451498A JP 12451498 A JP12451498 A JP 12451498A JP 3324501 B2 JP3324501 B2 JP 3324501B2
- Authority
- JP
- Japan
- Prior art keywords
- input data
- filter coefficient
- filter
- data
- storage means
- 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
Landscapes
- Complex Calculations (AREA)
Description
【0001】
【発明の属する技術分野】本発明は分割ALU方式によ
る並列演算処理を利用した演算処理装置、フィルタ計算
方法及び記録媒体に関する。
る並列演算処理を利用した演算処理装置、フィルタ計算
方法及び記録媒体に関する。
【0002】
【従来の技術】近年、マイクロプロセッサにおいて、分
割ALU(Arithmetic and Logic Unit)方式の演算命
令を持つマイクロプロセッサが知られている。分割AL
U方式の演算命令は、1個のALUを複数のALUに分
割して利用し、1命令で複数のデータに対してSIMD
(Single Instruction stream, Multiple Datastream)
タイプの並列処理を行う。例えば、図17に示すよう
に、64bitのALUを4つの16bitALUに分割し、
分割したALUを使用して4つの16bitのデータを並
列に処理する。このような分割ALU方式を使用した並
列処理の技術が、「MMX Technology Extension to the
Intel Architecture、 IEEE MICRO、Vol.16、No.4、pp4
2-50、1996年8月」、「The Design of the Microarchit
ecture of UltraSPARC(TM)-I、 Proceedings of The
IEEE、Vol. 83、No.12、pp1653-1663、1995年12月」、
「Digital, MIPS Add Multimedia Extensions、 Microp
rocessor Report、Vol.10、No.15、pp24-28、1996年11
月」及び、「Subword Parallelism with MAX-2、 IEEE
MICRO、Vol.16、No.4、pp51-59、1996年8月」に開示さ
れている。これらの文献に開示されてる分割ALU方式
を使用した並列処理の技術を使用して、データの並列度
の高い信号処理データ等を高速に処理することができ
る。
割ALU(Arithmetic and Logic Unit)方式の演算命
令を持つマイクロプロセッサが知られている。分割AL
U方式の演算命令は、1個のALUを複数のALUに分
割して利用し、1命令で複数のデータに対してSIMD
(Single Instruction stream, Multiple Datastream)
タイプの並列処理を行う。例えば、図17に示すよう
に、64bitのALUを4つの16bitALUに分割し、
分割したALUを使用して4つの16bitのデータを並
列に処理する。このような分割ALU方式を使用した並
列処理の技術が、「MMX Technology Extension to the
Intel Architecture、 IEEE MICRO、Vol.16、No.4、pp4
2-50、1996年8月」、「The Design of the Microarchit
ecture of UltraSPARC(TM)-I、 Proceedings of The
IEEE、Vol. 83、No.12、pp1653-1663、1995年12月」、
「Digital, MIPS Add Multimedia Extensions、 Microp
rocessor Report、Vol.10、No.15、pp24-28、1996年11
月」及び、「Subword Parallelism with MAX-2、 IEEE
MICRO、Vol.16、No.4、pp51-59、1996年8月」に開示さ
れている。これらの文献に開示されてる分割ALU方式
を使用した並列処理の技術を使用して、データの並列度
の高い信号処理データ等を高速に処理することができ
る。
【0003】代表的な信号処理として、FIR(Finite
Impulse Response)フィルタによるディジタルフィル
タ処理が知られている。このFIRフィルタによるフィ
ルタ処理(フィルタ計算)は、一般に、数式1で示され
る。
Impulse Response)フィルタによるディジタルフィル
タ処理が知られている。このFIRフィルタによるフィ
ルタ処理(フィルタ計算)は、一般に、数式1で示され
る。
【0004】
【数1】 x(n):時刻nの入力データ y(n):時刻nの出力データ n:時刻(n=0、1、2・・・) a(k):フィルタ係数(k=0、1、2、・・・、M
−1) M:フィルタのタップ数(フィルタ長)
−1) M:フィルタのタップ数(フィルタ長)
【0005】この数式1に示すフィルタ計算は、M(フ
ィルタのタップ数)回の演算(積和演算)にて算出され
る。なお、タップ数とはフィルタ長を示す。図18に、
このような、フィルタ計算の各時刻における入力データ
とフィルタ係数の組合せを示す。例えば、時刻nにおけ
る出力データy(n)は、フィルタ係数a(0)〜a
(M−1)と、時刻nにおける入力データx(n)から
過去の入力データx(n−M+1)までとを乗じた結果
の総和にて表される。即ち、出力データy(n)は、y
(n)=a(0)×x(n)+a(1)×x(n−1)
+a(2)×x(n−2)+・・・+a(M−1)×x
(n−M+1)にて表される。
ィルタのタップ数)回の演算(積和演算)にて算出され
る。なお、タップ数とはフィルタ長を示す。図18に、
このような、フィルタ計算の各時刻における入力データ
とフィルタ係数の組合せを示す。例えば、時刻nにおけ
る出力データy(n)は、フィルタ係数a(0)〜a
(M−1)と、時刻nにおける入力データx(n)から
過去の入力データx(n−M+1)までとを乗じた結果
の総和にて表される。即ち、出力データy(n)は、y
(n)=a(0)×x(n)+a(1)×x(n−1)
+a(2)×x(n−2)+・・・+a(M−1)×x
(n−M+1)にて表される。
【0006】分割ALU方式を使用したFIRフィルタ
によるフィルタ処理(フィルタ計算)の高速化の技術
が、「Using MMX(TM) Instructions to Compute a 16
-Bit Real FIR Filter、 Intel APPLICATION NOTE AP-5
59、1996年3月」に開示されている。以下、この文献に
開示されている分割ALU方式を使用したFIRフィル
タによるフィルタ処理(フィルタ計算)について図面を
参照して説明する。
によるフィルタ処理(フィルタ計算)の高速化の技術
が、「Using MMX(TM) Instructions to Compute a 16
-Bit Real FIR Filter、 Intel APPLICATION NOTE AP-5
59、1996年3月」に開示されている。以下、この文献に
開示されている分割ALU方式を使用したFIRフィル
タによるフィルタ処理(フィルタ計算)について図面を
参照して説明する。
【0007】図19は、分割ALU方式を使用したFI
Rフィルタによるフィルタ処理(フィルタ計算)を行う
演算処理装置の構成を示すブロック図である。この演算
処理装置は、データを入力する入力装置101と、入力
データに対してフィルタ計算を行うデータ処理装置10
2と、入力データ及びフィルタ係数を記憶する記憶装置
103と、出力データを出力する出力装置104とから
構成される。
Rフィルタによるフィルタ処理(フィルタ計算)を行う
演算処理装置の構成を示すブロック図である。この演算
処理装置は、データを入力する入力装置101と、入力
データに対してフィルタ計算を行うデータ処理装置10
2と、入力データ及びフィルタ係数を記憶する記憶装置
103と、出力データを出力する出力装置104とから
構成される。
【0008】記憶装置103は、入力データ記憶部10
5と、フィルタ係数記憶部106とから構成される。入
力データ記憶部105は、図20に示すように、入力装
置101から取得した最初の入力データを入力データ記
憶部105中の8の倍数のアドレスに配置し、以降の入
力データを下位アドレスから上位アドレスに向かって順
番に連続して配置して記憶する。なお、先頭の入力デー
タを8の倍数のアドレスに配列するのは、データ処理装
置102が、入力データ記憶部105から64bit分
(4データ分)の入力データをデータレジスタ108に
ロードする処理を高速に行うためである。これは、デー
タ処理装置102が、一般的に、8の倍数となるアドレ
スからロードする場合の方が、8の倍数とならないアド
レスからロードする場合に比べ、実行に要するクロック
数が少ないことによるものである。
5と、フィルタ係数記憶部106とから構成される。入
力データ記憶部105は、図20に示すように、入力装
置101から取得した最初の入力データを入力データ記
憶部105中の8の倍数のアドレスに配置し、以降の入
力データを下位アドレスから上位アドレスに向かって順
番に連続して配置して記憶する。なお、先頭の入力デー
タを8の倍数のアドレスに配列するのは、データ処理装
置102が、入力データ記憶部105から64bit分
(4データ分)の入力データをデータレジスタ108に
ロードする処理を高速に行うためである。これは、デー
タ処理装置102が、一般的に、8の倍数となるアドレ
スからロードする場合の方が、8の倍数とならないアド
レスからロードする場合に比べ、実行に要するクロック
数が少ないことによるものである。
【0009】図19に戻って、フィルタ係数記憶部10
6は、予め設定されたフィルタ係数を記憶する。なお、
フィルタ係数記憶部106におけるフィルタ係数の配列
については、後に説明する。
6は、予め設定されたフィルタ係数を記憶する。なお、
フィルタ係数記憶部106におけるフィルタ係数の配列
については、後に説明する。
【0010】データ処理装置102は、並列演算装置1
07と、データレジスタ108と、フィルタ係数レジス
タ109と、累算レジスタ110と、データ先頭ポイン
タ111と、データポインタ112と、フィルタ係数先
頭ポインタ113と、フィルタ係数ポインタ114とか
ら構成される。
07と、データレジスタ108と、フィルタ係数レジス
タ109と、累算レジスタ110と、データ先頭ポイン
タ111と、データポインタ112と、フィルタ係数先
頭ポインタ113と、フィルタ係数ポインタ114とか
ら構成される。
【0011】データレジスタ108は、64bitのレジ
スタからなり、入力データ記憶部105に記憶された4
データ分の入力データをロードする。フィルタ係数レジ
スタ109は、64bitのレジスタからなり、フィルタ
係数記憶部106に記憶された4タップ分のフィルタ係
数をロードする。累算レジスタ110は、64bitのレ
ジスタからなり、並列演算装置107による積和演算の
中間結果を逐次累算する。
スタからなり、入力データ記憶部105に記憶された4
データ分の入力データをロードする。フィルタ係数レジ
スタ109は、64bitのレジスタからなり、フィルタ
係数記憶部106に記憶された4タップ分のフィルタ係
数をロードする。累算レジスタ110は、64bitのレ
ジスタからなり、並列演算装置107による積和演算の
中間結果を逐次累算する。
【0012】データ先頭ポインタ111は、入力データ
記憶部105において予め設定された入力データを記憶
するための領域の先頭アドレスを示す。また、データポ
インタ112は、入力データ記憶部105に記憶された
入力データをデータレジスタ108にロードするための
アドレスを示す。フィルタ係数先頭ポインタ113は、
フィルタ係数記憶部106において予め設定されたフィ
ルタ係数を記憶するための領域の先頭アドレスを示す。
また、フィルタ係数ポインタ114は、フィルタ係数記
憶部106に記憶されたフィルタ係数をフィルタ係数レ
ジスタ109にロードするためのアドレスを示す。
記憶部105において予め設定された入力データを記憶
するための領域の先頭アドレスを示す。また、データポ
インタ112は、入力データ記憶部105に記憶された
入力データをデータレジスタ108にロードするための
アドレスを示す。フィルタ係数先頭ポインタ113は、
フィルタ係数記憶部106において予め設定されたフィ
ルタ係数を記憶するための領域の先頭アドレスを示す。
また、フィルタ係数ポインタ114は、フィルタ係数記
憶部106に記憶されたフィルタ係数をフィルタ係数レ
ジスタ109にロードするためのアドレスを示す。
【0013】並列演算装置107は、分割ALU方式に
より、図21に示すような4並列の積和演算を行う。ま
ず、並列演算装置107は、データレジスタ108にロ
ードされた4つの16bitデータa0、a1、a2、a
3と、フィルタ係数レジスタ109にロードされた4つ
の16bitデータb0、b1、b2、b3とをそれぞれ
組み合わせた4つの16bit乗算を並列に実行する。次
に、並列演算装置107は、4つの16bit乗算の演算
結果と、累算レジスタ110に格納されている4つの1
6bitデータc0、c1、c2、c3とを4並列に加算
する。並列演算装置107は、このような4並列積和演
算の演算結果を累算レジスタ110に格納する。
より、図21に示すような4並列の積和演算を行う。ま
ず、並列演算装置107は、データレジスタ108にロ
ードされた4つの16bitデータa0、a1、a2、a
3と、フィルタ係数レジスタ109にロードされた4つ
の16bitデータb0、b1、b2、b3とをそれぞれ
組み合わせた4つの16bit乗算を並列に実行する。次
に、並列演算装置107は、4つの16bit乗算の演算
結果と、累算レジスタ110に格納されている4つの1
6bitデータc0、c1、c2、c3とを4並列に加算
する。並列演算装置107は、このような4並列積和演
算の演算結果を累算レジスタ110に格納する。
【0014】データ処理装置102は、数式1に示すよ
うな時刻nにおける出力y(n)を算出するために、並
列演算装置107に、このような4並列積和演算を順次
実行させ、累積レジスタ110に累算された値を合計す
るフィルタ計算を実行させる。以下、図22に示す時刻
nにおける基本的なフィルタ計算を説明する。
うな時刻nにおける出力y(n)を算出するために、並
列演算装置107に、このような4並列積和演算を順次
実行させ、累積レジスタ110に累算された値を合計す
るフィルタ計算を実行させる。以下、図22に示す時刻
nにおける基本的なフィルタ計算を説明する。
【0015】まず、データ処理装置102は、図23
(a)に示すように、最初の4データ分の入力データを
入力データ記憶部105からデータレジスタ108にロ
ードし、フィルタ係数記憶部106から最初の4タップ
分のフィルタ係数をフィルタ係数レジスタ109にロー
ドする。並列演算装置107は、4並列積和演算を実行
し、演算結果を累算レジスタ110に格納する。
(a)に示すように、最初の4データ分の入力データを
入力データ記憶部105からデータレジスタ108にロ
ードし、フィルタ係数記憶部106から最初の4タップ
分のフィルタ係数をフィルタ係数レジスタ109にロー
ドする。並列演算装置107は、4並列積和演算を実行
し、演算結果を累算レジスタ110に格納する。
【0016】次に、データ処理装置102は、図23
(b)に示すように、次の4データ分の入力データを入
力データ記憶部105からデータレジスタ108にロー
ドし、フィルタ係数記憶部106から次の4タップ分の
フィルタ係数をフィルタ係数レジスタ109にロードす
る。並列演算装置107は、4並列積和演算を実行し、
演算結果を累算レジスタ110に加算して格納する。
(b)に示すように、次の4データ分の入力データを入
力データ記憶部105からデータレジスタ108にロー
ドし、フィルタ係数記憶部106から次の4タップ分の
フィルタ係数をフィルタ係数レジスタ109にロードす
る。並列演算装置107は、4並列積和演算を実行し、
演算結果を累算レジスタ110に加算して格納する。
【0017】このように、データ処理装置102は、順
次、入力データ及びフィルタ係数をレジスタにロード
し、並列演算装置107に4並列積和演算を実行させ
る。全てのタップ数、即ち、M回の積和演算を行った
後、データ処理装置102は、累積レジスタ110に累
算された各値を合計し、出力データy(n)を算出す
る。
次、入力データ及びフィルタ係数をレジスタにロード
し、並列演算装置107に4並列積和演算を実行させ
る。全てのタップ数、即ち、M回の積和演算を行った
後、データ処理装置102は、累積レジスタ110に累
算された各値を合計し、出力データy(n)を算出す
る。
【0018】なお、フィルタのタップ数が4の倍数でな
い場合、図24に示すように、フィルタ係数記憶部10
6の余りの部分には、0がセットさている。データ処理
装置102は、このような0がセットされたフィルタ係
数も含めて、フィルタ係数レジスタ109にロードし、
並列演算装置107に4並列積和演算を実行させる。
い場合、図24に示すように、フィルタ係数記憶部10
6の余りの部分には、0がセットさている。データ処理
装置102は、このような0がセットされたフィルタ係
数も含めて、フィルタ係数レジスタ109にロードし、
並列演算装置107に4並列積和演算を実行させる。
【0019】データ処理装置102は、このようなフィ
ルタ計算を、全体として更に高速に処理するため、4つ
の連続した時刻を1サイクルとしてフィルタ計算をする
工夫がなされている。以下、4つの連続した時刻におけ
るフィルタ計算について説明する。
ルタ計算を、全体として更に高速に処理するため、4つ
の連続した時刻を1サイクルとしてフィルタ計算をする
工夫がなされている。以下、4つの連続した時刻におけ
るフィルタ計算について説明する。
【0020】データ処理装置102は、図25に示すよ
うに、時刻nにおいて、入力データとフィルタ係数との
4並列積和演算を入力データx(n)から開始して、出
力データy(n)を算出し、また、時刻n+1におい
て、入力データとフィルタ係数との4並列積和演算を入
力データx(n+1)から開始して、出力データy(n
+1)を算出する。即ち、データ処理装置102は、時
刻毎にフィルタ係数を入力データに対して1タップ分ず
らして演算処理を行う。
うに、時刻nにおいて、入力データとフィルタ係数との
4並列積和演算を入力データx(n)から開始して、出
力データy(n)を算出し、また、時刻n+1におい
て、入力データとフィルタ係数との4並列積和演算を入
力データx(n+1)から開始して、出力データy(n
+1)を算出する。即ち、データ処理装置102は、時
刻毎にフィルタ係数を入力データに対して1タップ分ず
らして演算処理を行う。
【0021】このように、時刻毎に1タップ分ずらした
演算処理を行うために、フィルタ係数は、フィルタ係数
記憶部106に、図26に示すように配列され、記憶さ
れる。なお、フィルタのタップ数は、前述のように4の
倍数でない場合と、4つの連続した時刻において使用す
ることを考慮して、数式2により求められる実際のタッ
プ数M以上で最小の4の倍数+1で表されるKとする。
このとき、タップ数Kにおいて、実際のタップ数Mより
も多い分となるフィルタ係数には、0がセットされる。
演算処理を行うために、フィルタ係数は、フィルタ係数
記憶部106に、図26に示すように配列され、記憶さ
れる。なお、フィルタのタップ数は、前述のように4の
倍数でない場合と、4つの連続した時刻において使用す
ることを考慮して、数式2により求められる実際のタッ
プ数M以上で最小の4の倍数+1で表されるKとする。
このとき、タップ数Kにおいて、実際のタップ数Mより
も多い分となるフィルタ係数には、0がセットされる。
【0022】
【数2】 K:4並列積和演算のためのフィルタのタップ数 M:実際のフィルタのタップ数
【0023】更に、4の倍数+1となったKに、0が設
定されたフィルタ係数を3個分補って4の倍数とし、数
式3により表される分のフィルタ係数を1時刻分とし
て、フィルタ係数記憶部106に配列され、記憶され
る。
定されたフィルタ係数を3個分補って4の倍数とし、数
式3により表される分のフィルタ係数を1時刻分とし
て、フィルタ係数記憶部106に配列され、記憶され
る。
【0024】
【数3】 K:4並列積和演算のためのフィルタのタップ数 M:実際のフィルタのタップ数
【0025】最終的に、図26に示すように4つの連続
した時刻分(CF(0)〜CF(3))のフィルタ係数
が、フィルタ係数記憶部106に配列され、記憶され
る。第1の時刻用のフィルタ(CF(0))は、フィル
タ係数a(0)が8の倍数のアドレス位置になるように
フィルタ係数記憶部106に配置され、a(1)、a
(2)、・・・、a(K−1)と順に上位アドレスから
下位アドレスに向かって配置され、記憶される。また、
第2の時刻用のフィルタ(CF(1))は、第1の時刻
のフィルタ係数が、1タップ分ずれた配列となり、第1
の時刻用のフィルタの上位アドレスに記憶される。同様
に、第3及び第4の時刻用のフィルタ(CF(2)、C
F(3))は、第1の時刻用のフィルタ係数が2及び3
タップ分ずれた配列となり、第2の時刻用のフィルタの
上位アドレスに記憶される。なお、フィルタ係数を8の
倍数のアドレスを基準として配列するのは、前述した入
力データの配列と、同様の理由によるものである。
した時刻分(CF(0)〜CF(3))のフィルタ係数
が、フィルタ係数記憶部106に配列され、記憶され
る。第1の時刻用のフィルタ(CF(0))は、フィル
タ係数a(0)が8の倍数のアドレス位置になるように
フィルタ係数記憶部106に配置され、a(1)、a
(2)、・・・、a(K−1)と順に上位アドレスから
下位アドレスに向かって配置され、記憶される。また、
第2の時刻用のフィルタ(CF(1))は、第1の時刻
のフィルタ係数が、1タップ分ずれた配列となり、第1
の時刻用のフィルタの上位アドレスに記憶される。同様
に、第3及び第4の時刻用のフィルタ(CF(2)、C
F(3))は、第1の時刻用のフィルタ係数が2及び3
タップ分ずれた配列となり、第2の時刻用のフィルタの
上位アドレスに記憶される。なお、フィルタ係数を8の
倍数のアドレスを基準として配列するのは、前述した入
力データの配列と、同様の理由によるものである。
【0026】データ処理装置102は、このような、フ
ィルタ係数記憶部106に記憶されたフィルタ係数を使
用して、図27に示すような、4つの連続した時刻のフ
ィルタ計算を行う。即ち、データ処理装置102は、時
刻4jに、第1の時刻用のフィルタ(CF(0))を使
用し、時刻4j+1に、第2の時刻用のフィルタ(CF
(1))を使用し、時刻4j+2に、第3の時刻用のフ
ィルタ(CF(2))を使用し、時刻4j+3に、第4
の時刻用のフィルタ(CF(3))を使用し、それぞれ
フィルタ計算する。
ィルタ係数記憶部106に記憶されたフィルタ係数を使
用して、図27に示すような、4つの連続した時刻のフ
ィルタ計算を行う。即ち、データ処理装置102は、時
刻4jに、第1の時刻用のフィルタ(CF(0))を使
用し、時刻4j+1に、第2の時刻用のフィルタ(CF
(1))を使用し、時刻4j+2に、第3の時刻用のフ
ィルタ(CF(2))を使用し、時刻4j+3に、第4
の時刻用のフィルタ(CF(3))を使用し、それぞれ
フィルタ計算する。
【0027】以下、図27に示すような、入力データ及
びフィルタ係数が入力データ記憶部105及びフィルタ
係数レジスタ106に配置されている状態におけるデー
タ処理装置102のフィルタ計算の動作について図28
を参照して説明する。図28は、データ処理装置102
のフィルタ計算の動作を示すフローチャートである。
びフィルタ係数が入力データ記憶部105及びフィルタ
係数レジスタ106に配置されている状態におけるデー
タ処理装置102のフィルタ計算の動作について図28
を参照して説明する。図28は、データ処理装置102
のフィルタ計算の動作を示すフローチャートである。
【0028】まず、データ処理装置102は、累算レジ
スタ110の値をゼロクリアする(ステップS10
1)。
スタ110の値をゼロクリアする(ステップS10
1)。
【0029】データ処理装置102は、データポインタ
112に、時刻jにおける初期値を設定する(ステップ
S102)。即ち、データ処理装置102は、時刻jに
おいて、入力データ記憶部105からデータレジスタ1
08に入力データをロードするためのアドレスを示す初
期値(ADFRD)を、数式4を使用して求め、求めた
初期値をデータポインタ112に設定する。
112に、時刻jにおける初期値を設定する(ステップ
S102)。即ち、データ処理装置102は、時刻jに
おいて、入力データ記憶部105からデータレジスタ1
08に入力データをロードするためのアドレスを示す初
期値(ADFRD)を、数式4を使用して求め、求めた
初期値をデータポインタ112に設定する。
【0030】
【数4】ADRD = SD + 8 × j ADRD:データポインタ112の初期値 SD:データ先頭ポインタの値 j:時刻(j=0、1、2・・・)
【0031】データ処理装置102は、フィルタ係数ポ
インタ114に時刻i(i=0、1、2、3)における
初期値を設定する(ステップS103)。即ち、データ
処理装置102は、時刻iにおいて、フィルタ係数記憶
部106からフィルタ係数レジスタ109にフィルタ係
数をロードするためのアドレスを示す初期値(ADR
F)を、数式5を使用して求め、求めた初期値をフィル
タ係数ポインタ114に設定する。なお、初期値(AD
RF)は、フィルタ係数CF(i)の先頭アドレスとな
る。
インタ114に時刻i(i=0、1、2、3)における
初期値を設定する(ステップS103)。即ち、データ
処理装置102は、時刻iにおいて、フィルタ係数記憶
部106からフィルタ係数レジスタ109にフィルタ係
数をロードするためのアドレスを示す初期値(ADR
F)を、数式5を使用して求め、求めた初期値をフィル
タ係数ポインタ114に設定する。なお、初期値(AD
RF)は、フィルタ係数CF(i)の先頭アドレスとな
る。
【0032】
【数5】ADRF = SF + (K+3) × 2 ×
(i+1)− 8 ADRF:フィルタ係数ポインタ114の初期値 SF:フィルタ係数先頭ポインタ113の値 K:4並列積和演算用のフィルタのタップ数 i:時刻(i=0、1、2、3)
(i+1)− 8 ADRF:フィルタ係数ポインタ114の初期値 SF:フィルタ係数先頭ポインタ113の値 K:4並列積和演算用のフィルタのタップ数 i:時刻(i=0、1、2、3)
【0033】データ処理装置102は、入力データ記憶
部105に記憶されている入力データから、データポイ
ンタ112の示すアドレスに記憶されている4データ分
の入力データをデータレジスタ108にロードする(ス
テップS104)。
部105に記憶されている入力データから、データポイ
ンタ112の示すアドレスに記憶されている4データ分
の入力データをデータレジスタ108にロードする(ス
テップS104)。
【0034】データ処理装置102は、フィルタ係数記
憶部106に記憶されているフィルタ係数から、フィル
タ係数ポインタ114の示すアドレスに記憶されている
4タップ分のフィルタ係数をフィルタ係数レジスタ10
9にロードする(ステップS105)。
憶部106に記憶されているフィルタ係数から、フィル
タ係数ポインタ114の示すアドレスに記憶されている
4タップ分のフィルタ係数をフィルタ係数レジスタ10
9にロードする(ステップS105)。
【0035】並列演算装置107は、データレジスタ1
08にロードした4データ分の入力データと、フィルタ
係数レジスタ109にロードした4タップ分のフィルタ
係数とで4並列積和演算を行ない、演算結果を累算レジ
スタ110に加算して格納する(ステップS106)。
08にロードした4データ分の入力データと、フィルタ
係数レジスタ109にロードした4タップ分のフィルタ
係数とで4並列積和演算を行ない、演算結果を累算レジ
スタ110に加算して格納する(ステップS106)。
【0036】データ処理装置102は、次の4データ分
の入力データ及び4タップ分のフィルタ係数をデータレ
ジスタ108及びフィルタ係数レジスタ109にロード
して積和演算するために、データポインタ112及びフ
ィルタ係数ポインタ114をそれぞれ更新する(ステッ
プS107、S108)。即ち、データ処理装置102
は、データポインタ112及びフィルタ係数ポインタ1
14が示すアドレスが、入力データ記憶部105及びフ
ィルタ係数記憶部106の下位に配置された入力データ
及びフィルタ係数を示すように、データポインタ112
及びフィルタ係数ポインタ114の値から8(4データ
分、4タップ分)を減算し、減算後の値で更新する。
の入力データ及び4タップ分のフィルタ係数をデータレ
ジスタ108及びフィルタ係数レジスタ109にロード
して積和演算するために、データポインタ112及びフ
ィルタ係数ポインタ114をそれぞれ更新する(ステッ
プS107、S108)。即ち、データ処理装置102
は、データポインタ112及びフィルタ係数ポインタ1
14が示すアドレスが、入力データ記憶部105及びフ
ィルタ係数記憶部106の下位に配置された入力データ
及びフィルタ係数を示すように、データポインタ112
及びフィルタ係数ポインタ114の値から8(4データ
分、4タップ分)を減算し、減算後の値で更新する。
【0037】データ処理装置102は、全フィルタタッ
プ分の処理が終了したか否かの判別を行なう(ステップ
S109)。データ処理装置102は、全フィルタタッ
プ分の処理が終了していないと判別した場合、ステップ
S104に戻って、ステップS104〜ステップS10
9の処理を繰り返す(積和計算ループS100)。
プ分の処理が終了したか否かの判別を行なう(ステップ
S109)。データ処理装置102は、全フィルタタッ
プ分の処理が終了していないと判別した場合、ステップ
S104に戻って、ステップS104〜ステップS10
9の処理を繰り返す(積和計算ループS100)。
【0038】一方、データ処理装置102は、全フィル
タタップ分の処理が終了したと判別した場合、累算レジ
スタ110に記憶された4つの16bit数の総和(c0
+c1+c2+c3)を算出する(ステップS11
0)。即ち、全フィルタタップの処理が終了すると、累
算レジスタ110には、全タップのフィルタ計算結果が
4つの16bitの数値(c0〜c3)に分かれて格納さ
れる。データ処理装置102は、この4つの16bitの
数値の総和(c0+c1+c2+c3)を算出し、フィ
ルタ計算後の出力データとする。
タタップ分の処理が終了したと判別した場合、累算レジ
スタ110に記憶された4つの16bit数の総和(c0
+c1+c2+c3)を算出する(ステップS11
0)。即ち、全フィルタタップの処理が終了すると、累
算レジスタ110には、全タップのフィルタ計算結果が
4つの16bitの数値(c0〜c3)に分かれて格納さ
れる。データ処理装置102は、この4つの16bitの
数値の総和(c0+c1+c2+c3)を算出し、フィ
ルタ計算後の出力データとする。
【0039】データ処理装置102は、求めた出力デー
タを出力装置104に出力する(ステップS111)。
タを出力装置104に出力する(ステップS111)。
【0040】
【発明が解決しようとする課題】しかし、「Using MMX
(TM) Instructions to Compute a 16-Bit Real FIR F
ilter、 Intel APPLICATION NOTE AP-559、1996年3月」
に開示されているこのような演算処理装置は、すべての
入力データを入力データ記憶部102に連続して記憶す
るため、入力データ記憶部102のメモリ容量が増大し
てしまうといった問題があった。また、フィルタ係数の
値に0を設定し、記憶する必要があるため、フィルタ係
数記憶部106のメモリ容量が増大してしまうといった
問題があった。更に、フィルタ係数記憶部106に設定
した、0の値のフィルタ係数を使用して不必要な積和演
算をするため、フィルタ計算の全体の演算量が増加し、
処理速度が低下するといった問題があった。
(TM) Instructions to Compute a 16-Bit Real FIR F
ilter、 Intel APPLICATION NOTE AP-559、1996年3月」
に開示されているこのような演算処理装置は、すべての
入力データを入力データ記憶部102に連続して記憶す
るため、入力データ記憶部102のメモリ容量が増大し
てしまうといった問題があった。また、フィルタ係数の
値に0を設定し、記憶する必要があるため、フィルタ係
数記憶部106のメモリ容量が増大してしまうといった
問題があった。更に、フィルタ係数記憶部106に設定
した、0の値のフィルタ係数を使用して不必要な積和演
算をするため、フィルタ計算の全体の演算量が増加し、
処理速度が低下するといった問題があった。
【0041】この発明は、上記実状に鑑みてなされたも
ので、分割ALU方式による並列演算処理を利用した演
算処理装置において、メモリを効率よく利用し、高速に
演算処理を実行できる演算処理装置、フィルタ計算方法
及び記録媒体を提供することを目的とする。本発明の他
の目的は、各出力データに対して必要となる計算に対応
して、異なる並びのフィルタ係数によるフィルタ計算の
演算処理を実行できる演算処理装置、フィルタ計算方法
及び記録媒体を提供することである。
ので、分割ALU方式による並列演算処理を利用した演
算処理装置において、メモリを効率よく利用し、高速に
演算処理を実行できる演算処理装置、フィルタ計算方法
及び記録媒体を提供することを目的とする。本発明の他
の目的は、各出力データに対して必要となる計算に対応
して、異なる並びのフィルタ係数によるフィルタ計算の
演算処理を実行できる演算処理装置、フィルタ計算方法
及び記録媒体を提供することである。
【0042】
【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかる演算処理装置は、分割
ALU方式のALUを用いた並列演算処理にて、入力デ
ータをフィルタリングするために、入力データとフィル
タ係数との演算を並列に実行する並列演算手段を備えた
演算処理装置であって、入力データを論理的に先頭と終
端とがつながれた環状構造となる記憶領域に順次記憶す
る入力データ記憶手段と、前記入力データ記憶手段に記
憶された各入力データと1対1に対応して配列されたフ
ィルタ係数が記憶領域に満たされて記憶されたフィルタ
係数記憶手段と、前記並列演算手段が並列演算処理を行
うために、予め定められたデータ量の入力データを前記
入力データ記憶手段から読み込んで一時記憶する入力デ
ータ一時記憶手段と、前記並列演算手段が並列演算処理
を行うために、予め定められたデータ量のフィルタ係数
を前記フィルタ係数記憶手段から読み込んで一時記憶す
るフィルタ係数一時記憶手段と、を備え、前記並列演算
手段は、前記入力データ一時記憶手段に読み込まれた入
力データと前記フィルタ係数一時記憶手段に読み込まれ
たフィルタ係数とを積和演算し、入力データをフィルタ
リングする、ことを特徴とする。
め、本発明の第1の観点にかかる演算処理装置は、分割
ALU方式のALUを用いた並列演算処理にて、入力デ
ータをフィルタリングするために、入力データとフィル
タ係数との演算を並列に実行する並列演算手段を備えた
演算処理装置であって、入力データを論理的に先頭と終
端とがつながれた環状構造となる記憶領域に順次記憶す
る入力データ記憶手段と、前記入力データ記憶手段に記
憶された各入力データと1対1に対応して配列されたフ
ィルタ係数が記憶領域に満たされて記憶されたフィルタ
係数記憶手段と、前記並列演算手段が並列演算処理を行
うために、予め定められたデータ量の入力データを前記
入力データ記憶手段から読み込んで一時記憶する入力デ
ータ一時記憶手段と、前記並列演算手段が並列演算処理
を行うために、予め定められたデータ量のフィルタ係数
を前記フィルタ係数記憶手段から読み込んで一時記憶す
るフィルタ係数一時記憶手段と、を備え、前記並列演算
手段は、前記入力データ一時記憶手段に読み込まれた入
力データと前記フィルタ係数一時記憶手段に読み込まれ
たフィルタ係数とを積和演算し、入力データをフィルタ
リングする、ことを特徴とする。
【0043】この発明によれば、入力データ記憶手段
は、入力データを論理的に先頭と終端とがつながれた環
状構造となる記憶領域に順次記憶するため、使用済みの
データに上書きして効率よく入力データを記憶できる。
フィルタ係数記憶手段は、入力データ記憶手段に記憶さ
れた各入力データと1対1に対応して配列されたフィル
タ係数が記憶領域に満たされて記憶され、間隔を埋める
ための0を記憶する必要がないため、フィルタ係数を効
率よく記憶できる。入力データ一時記憶手段は、並列演
算手段が並列演算処理を行うために必要となる予め定め
られたデータ量の入力データを入力データ記憶手段から
読み込んで一時記憶する。フィルタ係数一時記憶手段
は、並列演算手段が並列演算処理を行うために必要とな
る予め定められたデータ量のフィルタ係数をフィルタ係
数記憶手段から読み込んで一時記憶する。並列演算手段
は、入力データ一時記憶手段に読み込まれた入力データ
とフィルタ係数一時記憶手段に読み込まれたフィルタ係
数とを積和演算し、入力データをフィルタリングする。
この結果、メモリを効率よく利用し、不必要な演算をす
ることなく高速に演算処理を実行できる。
は、入力データを論理的に先頭と終端とがつながれた環
状構造となる記憶領域に順次記憶するため、使用済みの
データに上書きして効率よく入力データを記憶できる。
フィルタ係数記憶手段は、入力データ記憶手段に記憶さ
れた各入力データと1対1に対応して配列されたフィル
タ係数が記憶領域に満たされて記憶され、間隔を埋める
ための0を記憶する必要がないため、フィルタ係数を効
率よく記憶できる。入力データ一時記憶手段は、並列演
算手段が並列演算処理を行うために必要となる予め定め
られたデータ量の入力データを入力データ記憶手段から
読み込んで一時記憶する。フィルタ係数一時記憶手段
は、並列演算手段が並列演算処理を行うために必要とな
る予め定められたデータ量のフィルタ係数をフィルタ係
数記憶手段から読み込んで一時記憶する。並列演算手段
は、入力データ一時記憶手段に読み込まれた入力データ
とフィルタ係数一時記憶手段に読み込まれたフィルタ係
数とを積和演算し、入力データをフィルタリングする。
この結果、メモリを効率よく利用し、不必要な演算をす
ることなく高速に演算処理を実行できる。
【0044】前記入力データ記憶手段は、前記入力デー
タ一時記憶手段が入力データの読み込みを開始する予め
決められた開始位置に合わせて入力データを配列し、前
記フィルタ係数記憶手段は、前記フィルタ係数一時記憶
手段がフィルタ係数の読み込みを開始する予め決められ
た開始位置に合わせて、論理的に先頭と終端とがつなが
れた環状構造となる記憶領域にフィルタ係数を配列して
もよい。この結果、入力データ及びフィルタ係数をそれ
ぞれの一時記憶手段に、高速に読み込むことができるた
め、高速に演算処理を実行できる。
タ一時記憶手段が入力データの読み込みを開始する予め
決められた開始位置に合わせて入力データを配列し、前
記フィルタ係数記憶手段は、前記フィルタ係数一時記憶
手段がフィルタ係数の読み込みを開始する予め決められ
た開始位置に合わせて、論理的に先頭と終端とがつなが
れた環状構造となる記憶領域にフィルタ係数を配列して
もよい。この結果、入力データ及びフィルタ係数をそれ
ぞれの一時記憶手段に、高速に読み込むことができるた
め、高速に演算処理を実行できる。
【0045】上記目的を達成するため、本発明の第2の
観点にかかる演算処理装置は、分割ALU方式のALU
を用いた並列演算処理にて、入力データをフィルタリン
グするために、入力データとフィルタ係数との演算を並
列に実行する並列演算手段を備えた演算処理装置であっ
て、入力データを論理的に先頭と終端とがつながれた環
状構造となる記憶領域に順次記憶する入力データ記憶手
段と、前記入力データ記憶手段に記憶された各入力デー
タと1対n(nは、2以上の自然数)に対応して配列さ
れたフィルタ係数が記憶領域に満たされて記憶されたフ
ィルタ係数記憶手段と、前記並列演算手段が並列演算処
理を行うために、予め定められたデータ量となる1列の
入力データ列を前記入力データ記憶手段から読み込んで
一時記憶する入力データ一時記憶手段と、前記並列演算
手段が並列演算処理を行うために、前記入力データ一時
記憶手段に一時記憶された1列の入力データ列のn倍の
データ量となるn列のフィルタ係数列を前記フィルタ係
数記憶手段から読み込んで一時記憶するフィルタ係数一
時記憶手段と、を備え、前記並列演算手段は、前記入力
データ一時記憶手段に読み込まれた1列の入力データ列
と前記フィルタ係数一時記憶手段に読み込まれたn列の
フィルタ係数列とを予め定められた順番に積和演算し、
入力データをフィルタリングする、ことを特徴とする。
観点にかかる演算処理装置は、分割ALU方式のALU
を用いた並列演算処理にて、入力データをフィルタリン
グするために、入力データとフィルタ係数との演算を並
列に実行する並列演算手段を備えた演算処理装置であっ
て、入力データを論理的に先頭と終端とがつながれた環
状構造となる記憶領域に順次記憶する入力データ記憶手
段と、前記入力データ記憶手段に記憶された各入力デー
タと1対n(nは、2以上の自然数)に対応して配列さ
れたフィルタ係数が記憶領域に満たされて記憶されたフ
ィルタ係数記憶手段と、前記並列演算手段が並列演算処
理を行うために、予め定められたデータ量となる1列の
入力データ列を前記入力データ記憶手段から読み込んで
一時記憶する入力データ一時記憶手段と、前記並列演算
手段が並列演算処理を行うために、前記入力データ一時
記憶手段に一時記憶された1列の入力データ列のn倍の
データ量となるn列のフィルタ係数列を前記フィルタ係
数記憶手段から読み込んで一時記憶するフィルタ係数一
時記憶手段と、を備え、前記並列演算手段は、前記入力
データ一時記憶手段に読み込まれた1列の入力データ列
と前記フィルタ係数一時記憶手段に読み込まれたn列の
フィルタ係数列とを予め定められた順番に積和演算し、
入力データをフィルタリングする、ことを特徴とする。
【0046】この発明によれば、入力データ記憶手段
は、入力データを論理的に先頭と終端とがつながれた環
状構造となる記憶領域に順次記憶するため、使用済みの
データに上書きして効率よく入力データを記憶できる。
フィルタ係数記憶手段は、入力データ記憶手段に記憶さ
れた各入力データと1対n(nは、2以上の自然数)に
対応して配列されたフィルタ係数が記憶領域に満たされ
て記憶され、間隔を埋めるための0を記憶する必要がな
いため、フィルタ係数を効率よく記憶できる。入力デー
タ一時記憶手段は、並列演算手段が並列演算処理を行う
ために、予め定められたデータ量となる1列の入力デー
タ列を入力データ記憶手段から読み込んで一時記憶す
る。フィルタ係数一時記憶手段は、並列演算手段が並列
演算処理を行うために、入力データ一時記憶手段に一時
記憶された1列の入力データ列のn倍のデータ量となる
n列のフィルタ係数列をフィルタ係数記憶手段から読み
込んで一時記憶する。並列演算手段は、入力データ一時
記憶手段に読み込まれた1列の入力データ列とフィルタ
係数一時記憶手段に読み込まれたn列のフィルタ係数列
とを予め定められた順番に積和演算し、入力データをフ
ィルタリングする。この結果、メモリを効率よく利用
し、不必要な演算をすることなく高速に演算処理を実行
できる。
は、入力データを論理的に先頭と終端とがつながれた環
状構造となる記憶領域に順次記憶するため、使用済みの
データに上書きして効率よく入力データを記憶できる。
フィルタ係数記憶手段は、入力データ記憶手段に記憶さ
れた各入力データと1対n(nは、2以上の自然数)に
対応して配列されたフィルタ係数が記憶領域に満たされ
て記憶され、間隔を埋めるための0を記憶する必要がな
いため、フィルタ係数を効率よく記憶できる。入力デー
タ一時記憶手段は、並列演算手段が並列演算処理を行う
ために、予め定められたデータ量となる1列の入力デー
タ列を入力データ記憶手段から読み込んで一時記憶す
る。フィルタ係数一時記憶手段は、並列演算手段が並列
演算処理を行うために、入力データ一時記憶手段に一時
記憶された1列の入力データ列のn倍のデータ量となる
n列のフィルタ係数列をフィルタ係数記憶手段から読み
込んで一時記憶する。並列演算手段は、入力データ一時
記憶手段に読み込まれた1列の入力データ列とフィルタ
係数一時記憶手段に読み込まれたn列のフィルタ係数列
とを予め定められた順番に積和演算し、入力データをフ
ィルタリングする。この結果、メモリを効率よく利用
し、不必要な演算をすることなく高速に演算処理を実行
できる。
【0047】前記フィルタ係数一時記憶手段は、前記入
力データ一時記憶手段が1列の入力データ列をn回読み
込む間に、n列のフィルタ係数列を1回読み込んでもよ
い。この結果、フィルタ係数をそれぞれのフィルタ係数
一時記憶手段に読み込む回数を減らすことができるた
め、高速に演算処理を実行できる。
力データ一時記憶手段が1列の入力データ列をn回読み
込む間に、n列のフィルタ係数列を1回読み込んでもよ
い。この結果、フィルタ係数をそれぞれのフィルタ係数
一時記憶手段に読み込む回数を減らすことができるた
め、高速に演算処理を実行できる。
【0048】上記目的を達成するため、本発明の第3の
観点にかかる演算処理装置は、分割ALU方式のALU
を用いた並列演算処理にて、入力データをフィルタリン
グするために、入力データとフィルタ係数との演算を並
列に実行する並列演算手段を備えた演算処理装置であっ
て、入力データを記憶領域に順次記憶する入力データ記
憶手段と、前記入力データ記憶手段に記憶された各入力
データと、各入力データから出力データを算出するのに
必要となる演算とに対応して配列されたフィルタ係数が
記憶領域に満たされて記憶されたフィルタ係数記憶手段
と、前記並列演算手段が並列演算処理を行うために、予
め定められたデータ量の入力データを前記入力データ記
憶手段から読み込んで一時記憶する入力データ一時記憶
手段と、前記並列演算手段が並列演算処理を行うため
に、予め定められたデータ量のフィルタ係数を前記フィ
ルタ係数記憶手段から読み込んで一時記憶するフィルタ
係数一時記憶手段と、を備え、前記並列演算手段は、前
記入力データ一時記憶手段に読み込まれた入力データと
前記フィルタ係数一時記憶手段に読み込まれたフィルタ
係数とを積和演算し、入力データをフィルタリングす
る、ことを特徴とする。
観点にかかる演算処理装置は、分割ALU方式のALU
を用いた並列演算処理にて、入力データをフィルタリン
グするために、入力データとフィルタ係数との演算を並
列に実行する並列演算手段を備えた演算処理装置であっ
て、入力データを記憶領域に順次記憶する入力データ記
憶手段と、前記入力データ記憶手段に記憶された各入力
データと、各入力データから出力データを算出するのに
必要となる演算とに対応して配列されたフィルタ係数が
記憶領域に満たされて記憶されたフィルタ係数記憶手段
と、前記並列演算手段が並列演算処理を行うために、予
め定められたデータ量の入力データを前記入力データ記
憶手段から読み込んで一時記憶する入力データ一時記憶
手段と、前記並列演算手段が並列演算処理を行うため
に、予め定められたデータ量のフィルタ係数を前記フィ
ルタ係数記憶手段から読み込んで一時記憶するフィルタ
係数一時記憶手段と、を備え、前記並列演算手段は、前
記入力データ一時記憶手段に読み込まれた入力データと
前記フィルタ係数一時記憶手段に読み込まれたフィルタ
係数とを積和演算し、入力データをフィルタリングす
る、ことを特徴とする。
【0049】この発明によれば、入力データ記憶手段に
記憶された各入力データと、各入力データから出力デー
タを算出するのに必要となる演算とに対応して配列され
たフィルタ係数が記憶領域に満たされて記憶されたフィ
ルタ係数記憶手段から、フィルタ係数一時記憶手段に読
み込まれたフィルタ係数を用いて積和演算を行ない入力
データをフィルタリングするため、演算の手順を変化さ
せることなしに、出力データごとに異なるフィルタ係数
を用いたフィルタ処理を実行できる。
記憶された各入力データと、各入力データから出力デー
タを算出するのに必要となる演算とに対応して配列され
たフィルタ係数が記憶領域に満たされて記憶されたフィ
ルタ係数記憶手段から、フィルタ係数一時記憶手段に読
み込まれたフィルタ係数を用いて積和演算を行ない入力
データをフィルタリングするため、演算の手順を変化さ
せることなしに、出力データごとに異なるフィルタ係数
を用いたフィルタ処理を実行できる。
【0050】上記目的を達成するため、本発明の第4の
観点にかかるフィルタ計算方法は、分割ALU方式のA
LUを用いた並列演算処理にて、入力データをフィルタ
リングするために、入力データとフィルタ係数との演算
を並列に実行する並列演算ステップを備えたフィルタ計
算方法であって、入力データを論理的に先頭と終端とが
つながれた環状構造となる記憶領域に順次記憶する入力
データ記憶ステップと、前記並列演算ステップにて並列
演算処理を行うために、予め定められたデータ量の入力
データを論理的に先頭と終端とがつながれた環状構造と
なる記憶領域から読み込んで一時記憶する入力データ一
時記憶ステップと、前記並列演算ステップにて並列演算
処理を行うために、予め定められたデータ量のフィルタ
係数を前記入力データ記憶ステップにより記憶された各
入力データと1対1に対応して配列されたフィルタ係数
が満たされて記憶された記憶領域から読み込んで一時記
憶するフィルタ係数一時記憶ステップと、を備え、前記
並列演算ステップは、前記入力データ一時記憶ステップ
にて入力データ一時記憶領域に読み込まれた入力データ
と前記フィルタ係数一時記憶ステップにてフィルタ係数
一時記憶領域に読み込まれたフィルタ係数とを積和演算
し、入力データをフィルタリングする、ことを特徴とす
る。
観点にかかるフィルタ計算方法は、分割ALU方式のA
LUを用いた並列演算処理にて、入力データをフィルタ
リングするために、入力データとフィルタ係数との演算
を並列に実行する並列演算ステップを備えたフィルタ計
算方法であって、入力データを論理的に先頭と終端とが
つながれた環状構造となる記憶領域に順次記憶する入力
データ記憶ステップと、前記並列演算ステップにて並列
演算処理を行うために、予め定められたデータ量の入力
データを論理的に先頭と終端とがつながれた環状構造と
なる記憶領域から読み込んで一時記憶する入力データ一
時記憶ステップと、前記並列演算ステップにて並列演算
処理を行うために、予め定められたデータ量のフィルタ
係数を前記入力データ記憶ステップにより記憶された各
入力データと1対1に対応して配列されたフィルタ係数
が満たされて記憶された記憶領域から読み込んで一時記
憶するフィルタ係数一時記憶ステップと、を備え、前記
並列演算ステップは、前記入力データ一時記憶ステップ
にて入力データ一時記憶領域に読み込まれた入力データ
と前記フィルタ係数一時記憶ステップにてフィルタ係数
一時記憶領域に読み込まれたフィルタ係数とを積和演算
し、入力データをフィルタリングする、ことを特徴とす
る。
【0051】この発明によれば、入力データ記憶ステッ
プは、入力データを論理的に先頭と終端とがつながれた
環状構造となる記憶領域に順次記憶するため、使用済み
のデータに上書きして効率よく入力データを記憶でき
る。入力データ一時記憶ステップは、並列演算ステップ
にて並列演算処理を行うために、入力データ記憶ステッ
プにより記憶された記憶領域から、予め定められたデー
タ量の入力データを読み込んで一時記憶する。フィルタ
係数一時記憶ステップは、並列演算ステップにて並列演
算処理を行うために、予め定められたデータ量のフィル
タ係数を入力データ記憶ステップにより記憶された各入
力データと1対1に対応して配列されたフィルタ係数が
満たされて記憶された記憶領域から読み込んで一時記憶
する。並列演算ステップは、入力データ一時記憶ステッ
プにて入力データ一時記憶領域に読み込まれた入力デー
タとフィルタ係数一時記憶ステップにてフィルタ係数一
時記憶領域に読み込まれたフィルタ係数とを積和演算
し、入力データをフィルタリングする。この結果、メモ
リを効率よく利用し、不必要な演算をすることなく高速
に演算処理を実行できる。
プは、入力データを論理的に先頭と終端とがつながれた
環状構造となる記憶領域に順次記憶するため、使用済み
のデータに上書きして効率よく入力データを記憶でき
る。入力データ一時記憶ステップは、並列演算ステップ
にて並列演算処理を行うために、入力データ記憶ステッ
プにより記憶された記憶領域から、予め定められたデー
タ量の入力データを読み込んで一時記憶する。フィルタ
係数一時記憶ステップは、並列演算ステップにて並列演
算処理を行うために、予め定められたデータ量のフィル
タ係数を入力データ記憶ステップにより記憶された各入
力データと1対1に対応して配列されたフィルタ係数が
満たされて記憶された記憶領域から読み込んで一時記憶
する。並列演算ステップは、入力データ一時記憶ステッ
プにて入力データ一時記憶領域に読み込まれた入力デー
タとフィルタ係数一時記憶ステップにてフィルタ係数一
時記憶領域に読み込まれたフィルタ係数とを積和演算
し、入力データをフィルタリングする。この結果、メモ
リを効率よく利用し、不必要な演算をすることなく高速
に演算処理を実行できる。
【0052】前記並列演算ステップは、前記入力データ
一時記憶ステップにて入力データ一時記憶領域に読み込
まれた入力データが、前記記憶領域の読込み開始位置か
ら記憶領域の終端位置までの間に記憶されていた場合
と、前記記憶領域の先頭位置から読込み開始位置までの
間に記憶されていた場合とに分けて前記フィルタ係数一
時記憶ステップにてフィルタ係数一時記憶領域に読み込
まれたフィルタ係数と積和演算し、入力データをフィル
タリングしてもよい。
一時記憶ステップにて入力データ一時記憶領域に読み込
まれた入力データが、前記記憶領域の読込み開始位置か
ら記憶領域の終端位置までの間に記憶されていた場合
と、前記記憶領域の先頭位置から読込み開始位置までの
間に記憶されていた場合とに分けて前記フィルタ係数一
時記憶ステップにてフィルタ係数一時記憶領域に読み込
まれたフィルタ係数と積和演算し、入力データをフィル
タリングしてもよい。
【0053】上記目的を達成するため、本発明の第5の
観点にかかるフィルタ計算方法は、分割ALU方式のA
LUを用いた並列演算処理にて、入力データをフィルタ
リングするために、入力データとフィルタ係数との演算
を並列に実行する並列演算ステップを備えたフィルタ計
算方法であって、入力データを論理的に先頭と終端とが
つながれた環状構造となる記憶領域に順次記憶する入力
データ記憶ステップと、前記並列演算ステップにて並列
演算処理を行うために、予め定められたデータ量となる
1列の入力データ列を論理的に先頭と終端とがつながれ
た環状構造となる記憶領域から読み込んで一時記憶する
入力データ一時記憶ステップと、前記並列演算ステップ
にて並列演算処理を行うために、前記入力データ一時記
憶ステップに一時記憶された1列の入力データ列のn倍
のデータ量となるn列のフィルタ係数列を前記入力デー
タ記憶ステップにより記憶された各入力データと1対n
に対応して配列されたフィルタ係数が満たされて記憶さ
れた記憶領域から読み込んで一時記憶するフィルタ係数
一時記憶ステップと、を備え、前記並列演算ステップ
は、前記入力データ一時記憶ステップにて入力データ一
時記憶領域に読み込まれた1列の入力データ列と前記フ
ィルタ係数一時記憶ステップにてフィルタ係数一時記憶
領域に読み込まれたn列のフィルタ係数列とを予め定め
られた順番に積和演算する、ことを特徴とする。
観点にかかるフィルタ計算方法は、分割ALU方式のA
LUを用いた並列演算処理にて、入力データをフィルタ
リングするために、入力データとフィルタ係数との演算
を並列に実行する並列演算ステップを備えたフィルタ計
算方法であって、入力データを論理的に先頭と終端とが
つながれた環状構造となる記憶領域に順次記憶する入力
データ記憶ステップと、前記並列演算ステップにて並列
演算処理を行うために、予め定められたデータ量となる
1列の入力データ列を論理的に先頭と終端とがつながれ
た環状構造となる記憶領域から読み込んで一時記憶する
入力データ一時記憶ステップと、前記並列演算ステップ
にて並列演算処理を行うために、前記入力データ一時記
憶ステップに一時記憶された1列の入力データ列のn倍
のデータ量となるn列のフィルタ係数列を前記入力デー
タ記憶ステップにより記憶された各入力データと1対n
に対応して配列されたフィルタ係数が満たされて記憶さ
れた記憶領域から読み込んで一時記憶するフィルタ係数
一時記憶ステップと、を備え、前記並列演算ステップ
は、前記入力データ一時記憶ステップにて入力データ一
時記憶領域に読み込まれた1列の入力データ列と前記フ
ィルタ係数一時記憶ステップにてフィルタ係数一時記憶
領域に読み込まれたn列のフィルタ係数列とを予め定め
られた順番に積和演算する、ことを特徴とする。
【0054】この発明によれば、入力データ一時記憶ス
テップは、入力データを論理的に先頭と終端とがつなが
れた環状構造となる記憶領域に順次記憶するため、使用
済みのデータに上書きして効率よく入力データを記憶で
きる。入力データ一時記憶ステップは、並列演算ステッ
プにて並列演算処理を行うために、予め定められたデー
タ量となる1列の入力データ列を入力データ記憶ステッ
プにて記憶された記憶領域から読み込んで一時記憶す
る。フィルタ係数一時記憶ステップは、並列演算ステッ
プにて並列演算処理を行うために、入力データ一時記憶
ステップに一時記憶された1列の入力データ列のn倍の
データ量となるn列のフィルタ係数列を入力データ記憶
ステップにより記憶された各入力データと1対nに対応
して配列されたフィルタ係数が満たされて記憶された記
憶領域から読み込んで一時記憶する。並列演算ステップ
は、入力データ一時記憶ステップにて入力データ一時記
憶領域に読み込まれた1列の入力データ列とフィルタ係
数一時記憶ステップにてフィルタ係数一時記憶領域に読
み込まれたn列のフィルタ係数列とを予め定められた順
番に積和演算する。この結果、メモリを効率よく利用
し、不必要な演算をすることなく高速に演算処理を実行
できる。
テップは、入力データを論理的に先頭と終端とがつなが
れた環状構造となる記憶領域に順次記憶するため、使用
済みのデータに上書きして効率よく入力データを記憶で
きる。入力データ一時記憶ステップは、並列演算ステッ
プにて並列演算処理を行うために、予め定められたデー
タ量となる1列の入力データ列を入力データ記憶ステッ
プにて記憶された記憶領域から読み込んで一時記憶す
る。フィルタ係数一時記憶ステップは、並列演算ステッ
プにて並列演算処理を行うために、入力データ一時記憶
ステップに一時記憶された1列の入力データ列のn倍の
データ量となるn列のフィルタ係数列を入力データ記憶
ステップにより記憶された各入力データと1対nに対応
して配列されたフィルタ係数が満たされて記憶された記
憶領域から読み込んで一時記憶する。並列演算ステップ
は、入力データ一時記憶ステップにて入力データ一時記
憶領域に読み込まれた1列の入力データ列とフィルタ係
数一時記憶ステップにてフィルタ係数一時記憶領域に読
み込まれたn列のフィルタ係数列とを予め定められた順
番に積和演算する。この結果、メモリを効率よく利用
し、不必要な演算をすることなく高速に演算処理を実行
できる。
【0055】上記目的を達成するため、本発明の第6の
観点にかかるフィルタ計算方法は、分割ALU方式のA
LUを用いた並列演算処理にて、入力データをフィルタ
リングするために、入力データとフィルタ係数との演算
を並列に実行する並列演算ステップを備えたフィルタ計
算方法であって、入力データを記憶領域に順次記憶する
入力データ記憶ステップと、前記並列演算ステップにて
並列演算処理を行うために、予め定められたデータ量の
入力データを論理的に先頭と終端とがつながれた環状構
造となる記憶領域から読み込んで一時記憶する入力デー
タ一時記憶ステップと、前記並列演算ステップにて並列
演算処理を行うために、予め定められたデータ量のフィ
ルタ係数を前記入力データ記憶ステップにより記憶され
た各入力データと、各入力データから出力データを算出
するのに必要となる演算とに対応して配列されたフィル
タ係数が満たされて記憶された記憶領域から読み込んで
一時記憶するフィルタ係数一時記憶ステップと、を備
え、前記並列演算ステップは、前記入力データ一時記憶
ステップにて入力データ一時記憶領域に読み込まれた入
力データと前記フィルタ係数一時記憶ステップにてフィ
ルタ係数一時記憶領域に読み込まれたフィルタ係数とを
積和演算し、入力データをフィルタリングする、ことを
特徴とする。
観点にかかるフィルタ計算方法は、分割ALU方式のA
LUを用いた並列演算処理にて、入力データをフィルタ
リングするために、入力データとフィルタ係数との演算
を並列に実行する並列演算ステップを備えたフィルタ計
算方法であって、入力データを記憶領域に順次記憶する
入力データ記憶ステップと、前記並列演算ステップにて
並列演算処理を行うために、予め定められたデータ量の
入力データを論理的に先頭と終端とがつながれた環状構
造となる記憶領域から読み込んで一時記憶する入力デー
タ一時記憶ステップと、前記並列演算ステップにて並列
演算処理を行うために、予め定められたデータ量のフィ
ルタ係数を前記入力データ記憶ステップにより記憶され
た各入力データと、各入力データから出力データを算出
するのに必要となる演算とに対応して配列されたフィル
タ係数が満たされて記憶された記憶領域から読み込んで
一時記憶するフィルタ係数一時記憶ステップと、を備
え、前記並列演算ステップは、前記入力データ一時記憶
ステップにて入力データ一時記憶領域に読み込まれた入
力データと前記フィルタ係数一時記憶ステップにてフィ
ルタ係数一時記憶領域に読み込まれたフィルタ係数とを
積和演算し、入力データをフィルタリングする、ことを
特徴とする。
【0056】この発明によれば、入力データ記憶ステッ
プで記憶された各入力データと、各入力データから出力
データを算出するのに必要となる演算とに対応して配列
されたフィルタ係数が記憶領域に満たされて記憶された
フィルタ係数記憶領域から、フィルタ係数一時記憶ステ
ップにてフィルタ係数一時記憶領域に読み込まれたフィ
ルタ係数を用いて積和演算を行ない入力データをフィル
タリングするため、演算の手順を変化させることなし
に、出力データごとに異なるフィルタ係数を用いたフィ
ルタ処理を実行できる。
プで記憶された各入力データと、各入力データから出力
データを算出するのに必要となる演算とに対応して配列
されたフィルタ係数が記憶領域に満たされて記憶された
フィルタ係数記憶領域から、フィルタ係数一時記憶ステ
ップにてフィルタ係数一時記憶領域に読み込まれたフィ
ルタ係数を用いて積和演算を行ない入力データをフィル
タリングするため、演算の手順を変化させることなし
に、出力データごとに異なるフィルタ係数を用いたフィ
ルタ処理を実行できる。
【0057】上記目的を達成するため、本発明の第7の
観点にかかる記録媒体は、コンピュータを演算処理装置
として機能させるプログラムを記録するコンピュータ読
み取り可能な記録媒体であって、該コンピュータを、入
力データを論理的に先頭と終端とがつながれた環状構造
となる記憶領域に順次記憶する入力データ記憶手段と、
前記入力データ記憶手段に記憶された各入力データと1
対1に対応して配列されたフィルタ係数が記憶領域に満
たされて記憶されたフィルタ係数記憶手段と、前記並列
演算手段が並列演算処理を行うために、予め定められた
データ量の入力データを前記入力データ記憶手段から読
み込んで一時記憶する入力データ一時記憶手段と、前記
並列演算手段が並列演算処理を行うために、予め定めら
れたデータ量のフィルタ係数を前記フィルタ係数記憶手
段から読み込んで一時記憶するフィルタ係数一時記憶手
段と、前記入力データ一時記憶手段に読み込まれた入力
データと前記フィルタ係数一時記憶手段に読み込まれた
フィルタ係数とを入力データをフィルタリングするため
に、分割ALU方式のALUを用いた並列演算処理にて
積和演算を並列に実行する並列演算手段として機能させ
るプログラムを記録することを特徴とする。
観点にかかる記録媒体は、コンピュータを演算処理装置
として機能させるプログラムを記録するコンピュータ読
み取り可能な記録媒体であって、該コンピュータを、入
力データを論理的に先頭と終端とがつながれた環状構造
となる記憶領域に順次記憶する入力データ記憶手段と、
前記入力データ記憶手段に記憶された各入力データと1
対1に対応して配列されたフィルタ係数が記憶領域に満
たされて記憶されたフィルタ係数記憶手段と、前記並列
演算手段が並列演算処理を行うために、予め定められた
データ量の入力データを前記入力データ記憶手段から読
み込んで一時記憶する入力データ一時記憶手段と、前記
並列演算手段が並列演算処理を行うために、予め定めら
れたデータ量のフィルタ係数を前記フィルタ係数記憶手
段から読み込んで一時記憶するフィルタ係数一時記憶手
段と、前記入力データ一時記憶手段に読み込まれた入力
データと前記フィルタ係数一時記憶手段に読み込まれた
フィルタ係数とを入力データをフィルタリングするため
に、分割ALU方式のALUを用いた並列演算処理にて
積和演算を並列に実行する並列演算手段として機能させ
るプログラムを記録することを特徴とする。
【0058】上記目的を達成するため、本発明の第8の
観点にかかる記録媒体は、コンピュータを演算処理装置
として機能させるプログラムを記録するコンピュータ読
み取り可能な記録媒体であって、該コンピュータを、入
力データを論理的に先頭と終端とがつながれた環状構造
となる記憶領域に順次記憶する入力データ記憶手段と、
前記入力データ記憶手段に記憶された各入力データと1
対n(nは、2以上の自然数)に対応して配列されたフ
ィルタ係数が記憶領域に満たされて記憶されたフィルタ
係数記憶手段と、前記並列演算手段が並列演算処理を行
うために、予め定められたデータ量となる1列の入力デ
ータ列を前記入力データ記憶手段から読み込んで一時記
憶する入力データ一時記憶手段と、前記並列演算手段が
並列演算処理を行うために、前記入力データ一時記憶手
段に一時記憶された1列の入力データ列のn倍のデータ
量となるn列のフィルタ係数列を前記フィルタ係数記憶
手段から読み込んで一時記憶するフィルタ係数一時記憶
手段と、前記入力データ一時記憶手段に読み込まれた1
列の入力データ列と前記フィルタ係数一時記憶手段に読
み込まれたn列のフィルタ係数列とを入力データをフィ
ルタリングするために、分割ALU方式のALUを用い
た並列演算処理にて予め定められた順番の積和演算を並
列に実行する並列演算手段として機能させるプログラム
を記録することを特徴とする。
観点にかかる記録媒体は、コンピュータを演算処理装置
として機能させるプログラムを記録するコンピュータ読
み取り可能な記録媒体であって、該コンピュータを、入
力データを論理的に先頭と終端とがつながれた環状構造
となる記憶領域に順次記憶する入力データ記憶手段と、
前記入力データ記憶手段に記憶された各入力データと1
対n(nは、2以上の自然数)に対応して配列されたフ
ィルタ係数が記憶領域に満たされて記憶されたフィルタ
係数記憶手段と、前記並列演算手段が並列演算処理を行
うために、予め定められたデータ量となる1列の入力デ
ータ列を前記入力データ記憶手段から読み込んで一時記
憶する入力データ一時記憶手段と、前記並列演算手段が
並列演算処理を行うために、前記入力データ一時記憶手
段に一時記憶された1列の入力データ列のn倍のデータ
量となるn列のフィルタ係数列を前記フィルタ係数記憶
手段から読み込んで一時記憶するフィルタ係数一時記憶
手段と、前記入力データ一時記憶手段に読み込まれた1
列の入力データ列と前記フィルタ係数一時記憶手段に読
み込まれたn列のフィルタ係数列とを入力データをフィ
ルタリングするために、分割ALU方式のALUを用い
た並列演算処理にて予め定められた順番の積和演算を並
列に実行する並列演算手段として機能させるプログラム
を記録することを特徴とする。
【0059】上記目的を達成するため、本発明の第9の
観点にかかる記録媒体は、コンピュータを演算処理装置
として機能させるプログラムを記録するコンピュータ読
み取り可能な記録媒体であって、該コンピュータを、入
力データを記憶領域に順次記憶する入力データ記憶手段
と、前記入力データ記憶手段に記憶された各入力データ
と、各入力データから出力データを算出するのに必要と
なる演算とに対応して配列されたフィルタ係数が記憶領
域に満たされて記憶されたフィルタ係数記憶手段と、前
記並列演算手段が並列演算処理を行うために、予め定め
られたデータ量の入力データを前記入力データ記憶手段
から読み込んで一時記憶する入力データ一時記憶手段
と、前記並列演算手段が並列演算処理を行うために、予
め定められたデータ量のフィルタ係数を前記フィルタ係
数記憶手段から読み込んで一時記憶するフィルタ係数一
時記憶手段と、前記入力データ一時記憶手段に読み込ま
れた入力データと前記フィルタ係数一時記憶手段に読み
込まれたフィルタ係数とを入力データをフィルタリング
するために、分割ALU方式のALUを用いた並列演算
処理にて積和演算を並列に実行する並列演算手段として
機能させるプログラムを記録することを特徴とする。
観点にかかる記録媒体は、コンピュータを演算処理装置
として機能させるプログラムを記録するコンピュータ読
み取り可能な記録媒体であって、該コンピュータを、入
力データを記憶領域に順次記憶する入力データ記憶手段
と、前記入力データ記憶手段に記憶された各入力データ
と、各入力データから出力データを算出するのに必要と
なる演算とに対応して配列されたフィルタ係数が記憶領
域に満たされて記憶されたフィルタ係数記憶手段と、前
記並列演算手段が並列演算処理を行うために、予め定め
られたデータ量の入力データを前記入力データ記憶手段
から読み込んで一時記憶する入力データ一時記憶手段
と、前記並列演算手段が並列演算処理を行うために、予
め定められたデータ量のフィルタ係数を前記フィルタ係
数記憶手段から読み込んで一時記憶するフィルタ係数一
時記憶手段と、前記入力データ一時記憶手段に読み込ま
れた入力データと前記フィルタ係数一時記憶手段に読み
込まれたフィルタ係数とを入力データをフィルタリング
するために、分割ALU方式のALUを用いた並列演算
処理にて積和演算を並列に実行する並列演算手段として
機能させるプログラムを記録することを特徴とする。
【0060】
【発明の実施の形態】以下、図面を参照して、この発明
の第1の実施の形態にかかる演算処理装置について説明
する。図1は、この発明の第1の実施の形態にかかる演
算処理装置の構成を示すブロック図である。この演算処
理装置は、データを入力する入力装置1と、入力データ
に対してフィルタ計算を行うデータ処理装置2と、入力
データ及びフィルタ係数を記憶する記憶装置3と、出力
データを出力する出力装置4とから構成される。
の第1の実施の形態にかかる演算処理装置について説明
する。図1は、この発明の第1の実施の形態にかかる演
算処理装置の構成を示すブロック図である。この演算処
理装置は、データを入力する入力装置1と、入力データ
に対してフィルタ計算を行うデータ処理装置2と、入力
データ及びフィルタ係数を記憶する記憶装置3と、出力
データを出力する出力装置4とから構成される。
【0061】記憶装置3は、入力データを記憶するリン
グ・メモリ15と、フィルタ係数を記憶するフィルタ係
数記憶部16とから構成される。リング・メモリ15及
びフィルタ係数記憶部16については、後に説明する。
グ・メモリ15と、フィルタ係数を記憶するフィルタ係
数記憶部16とから構成される。リング・メモリ15及
びフィルタ係数記憶部16については、後に説明する。
【0062】データ処理装置2は、並列演算装置7と、
データレジスタ8と、フィルタ係数レジスタ9と、累算
レジスタ10と、リング・メモリ先頭ポインタ17と、
リング・メモリ終端ポインタ18と、書き込みポインタ
19と、読み出しポインタ20と、フィルタ係数先頭ポ
インタ21と、フィルタ係数ポインタ22とから構成さ
れる。
データレジスタ8と、フィルタ係数レジスタ9と、累算
レジスタ10と、リング・メモリ先頭ポインタ17と、
リング・メモリ終端ポインタ18と、書き込みポインタ
19と、読み出しポインタ20と、フィルタ係数先頭ポ
インタ21と、フィルタ係数ポインタ22とから構成さ
れる。
【0063】並列演算装置7は、分割ALU方式により
4並列の積和演算を行う。即ち、データレジスタ8にロ
ードされた4データ分の入力データと、フィルタ係数レ
ジスタ9にロードされた4タップ分のフィルタ係数とを
4並列に乗算し、乗算結果を累算レジスタ10に加算し
て格納する。
4並列の積和演算を行う。即ち、データレジスタ8にロ
ードされた4データ分の入力データと、フィルタ係数レ
ジスタ9にロードされた4タップ分のフィルタ係数とを
4並列に乗算し、乗算結果を累算レジスタ10に加算し
て格納する。
【0064】データレジスタ8は、64bitのレジスタ
からなり、リング・メモリ15に記憶された4データ分
の入力データをロードする。フィルタ係数レジスタ9
は、64bitのレジスタからなり、フィルタ係数記憶部
16に記憶された4タップ分のフィルタ係数をロードす
る。累算レジスタ10は、64bitのレジスタからな
り、並列演算装置7による積和演算の中間結果を逐次累
算する。
からなり、リング・メモリ15に記憶された4データ分
の入力データをロードする。フィルタ係数レジスタ9
は、64bitのレジスタからなり、フィルタ係数記憶部
16に記憶された4タップ分のフィルタ係数をロードす
る。累算レジスタ10は、64bitのレジスタからな
り、並列演算装置7による積和演算の中間結果を逐次累
算する。
【0065】リング・メモリ先頭ポインタ17は、リン
グ・メモリ15において予め設定された入力データを記
憶するための領域の先頭アドレスを示す。
グ・メモリ15において予め設定された入力データを記
憶するための領域の先頭アドレスを示す。
【0066】リング・メモリ終端ポインタ18は、リン
グ・メモリ15において予め設定された入力データを記
憶するための領域の終端アドレスを示す。
グ・メモリ15において予め設定された入力データを記
憶するための領域の終端アドレスを示す。
【0067】書き込みポインタ19は、フィルタ計算開
始時におけるリング・メモリ15に記憶されている最新
の入力データのアドレスを示す。
始時におけるリング・メモリ15に記憶されている最新
の入力データのアドレスを示す。
【0068】読み出しポインタ20は、リング・メモリ
15に記憶された入力データをデータレジスタ8にロー
ドするためのアドレスを示す。
15に記憶された入力データをデータレジスタ8にロー
ドするためのアドレスを示す。
【0069】フィルタ係数先頭ポインタ21は、フィル
タ係数記憶部16において予め設定されたフィルタ係数
を記憶するための領域の先頭アドレスを示す。
タ係数記憶部16において予め設定されたフィルタ係数
を記憶するための領域の先頭アドレスを示す。
【0070】フィルタ係数ポインタ22は、フィルタ係
数記憶部16に記憶されたフィルタ係数をフィルタ係数
レジスタ9にロードするためのアドレスを示す。
数記憶部16に記憶されたフィルタ係数をフィルタ係数
レジスタ9にロードするためのアドレスを示す。
【0071】リング・メモリ15は、図2に示すよう
に、リング・メモリ先頭ポインタ17、リング・メモリ
終端ポインタ18、書き込みポインタ19及び読み出し
ポインタ20により、論理的に先頭と終端とがつながっ
た環状構造となって、入力装置1から取得した入力デー
タを記憶する。即ち、データ処理装置2は、入力装置1
から取得した入力データをリング・メモリ15に順次記
憶する。その際書き込みポインタ19の示すアドレスを
2バイト分(1データ分)ずつ加算しながらリング・メ
モリ15に順次記憶する。データ処理装置2は、書き込
みポインタ19の値がリング・メモリ終端ポインタ18
の値より大きくなった場合に、書き込みポインタ19の
値をリング・メモリ先頭ポインタ17の値にして、続け
てリング・メモリ15に入力データを記憶する。なお、
リング・メモリ先頭ポインタ17の示すリング・メモリ
15中のアドレスは、データ処理装置2が、リング・メ
モリ15から64bit分(4データ分)の入力データを
データレジスタ8にロードする処理を高速に行う、8の
倍数となっている。
に、リング・メモリ先頭ポインタ17、リング・メモリ
終端ポインタ18、書き込みポインタ19及び読み出し
ポインタ20により、論理的に先頭と終端とがつながっ
た環状構造となって、入力装置1から取得した入力デー
タを記憶する。即ち、データ処理装置2は、入力装置1
から取得した入力データをリング・メモリ15に順次記
憶する。その際書き込みポインタ19の示すアドレスを
2バイト分(1データ分)ずつ加算しながらリング・メ
モリ15に順次記憶する。データ処理装置2は、書き込
みポインタ19の値がリング・メモリ終端ポインタ18
の値より大きくなった場合に、書き込みポインタ19の
値をリング・メモリ先頭ポインタ17の値にして、続け
てリング・メモリ15に入力データを記憶する。なお、
リング・メモリ先頭ポインタ17の示すリング・メモリ
15中のアドレスは、データ処理装置2が、リング・メ
モリ15から64bit分(4データ分)の入力データを
データレジスタ8にロードする処理を高速に行う、8の
倍数となっている。
【0072】リング・メモリ15は、このような論理的
な環状構造からなり、新規の入力データを、フィルタ計
算に必要なくなった旧の入力データに上書きして記憶す
ることができるため、メモリを効率よく利用できる。
な環状構造からなり、新規の入力データを、フィルタ計
算に必要なくなった旧の入力データに上書きして記憶す
ることができるため、メモリを効率よく利用できる。
【0073】フィルタ係数記憶部16は、図3に示すよ
うな4つの連続した時刻分(CF(0)〜CF(3))
のフィルタ係数を記憶する。なお、フィルタ係数の実際
のタップ数Mが4の倍数でない場合を考慮して、数式6
に示すように、M以上でかつ4の倍数となるLをフィル
タ係数のタップ数とする。なお、MのLの差分のフィル
タ係数には0がセットされる。
うな4つの連続した時刻分(CF(0)〜CF(3))
のフィルタ係数を記憶する。なお、フィルタ係数の実際
のタップ数Mが4の倍数でない場合を考慮して、数式6
に示すように、M以上でかつ4の倍数となるLをフィル
タ係数のタップ数とする。なお、MのLの差分のフィル
タ係数には0がセットされる。
【0074】
【数6】 L:4並列積和演算のためのフィルタのタップ数 M:実際のフィルタのタップ数
【0075】第1の時刻用のフィルタ(CF(0))
は、フィルタ係数a(0)が、フィルタ係数記憶部10
6中のフィルタ係数先頭ポインタ113が示すアドレス
に配置され、a(L−1)、・・・a(2)、a
(1)、・・・、と順に下位アドレスから上位アドレス
に向かって配置され、記憶される。このフィルタ係数
は、リング・メモリ15と同様に、理論的に先頭と終端
がつながった環状構造を有する。このような、環状構造
とすることにより、空き領域の発生がないため、フィル
タ係数を記憶するためのメモリを効率よく利用すること
ができる。第2の時刻用のフィルタ(CF(1))は、
第1の時刻のフィルタ係数が、1タップ分ずれた配列と
なり、第1の時刻用のフィルタの上位アドレスに記憶さ
れる。同様に、第3及び第4の時刻用のフィルタ(CF
(2)、CF(3))は、第1の時刻用のフィルタ係数
が2及び3タップ分ずれた配列となり、第2の時刻用の
フィルタの上位アドレスに記憶される。
は、フィルタ係数a(0)が、フィルタ係数記憶部10
6中のフィルタ係数先頭ポインタ113が示すアドレス
に配置され、a(L−1)、・・・a(2)、a
(1)、・・・、と順に下位アドレスから上位アドレス
に向かって配置され、記憶される。このフィルタ係数
は、リング・メモリ15と同様に、理論的に先頭と終端
がつながった環状構造を有する。このような、環状構造
とすることにより、空き領域の発生がないため、フィル
タ係数を記憶するためのメモリを効率よく利用すること
ができる。第2の時刻用のフィルタ(CF(1))は、
第1の時刻のフィルタ係数が、1タップ分ずれた配列と
なり、第1の時刻用のフィルタの上位アドレスに記憶さ
れる。同様に、第3及び第4の時刻用のフィルタ(CF
(2)、CF(3))は、第1の時刻用のフィルタ係数
が2及び3タップ分ずれた配列となり、第2の時刻用の
フィルタの上位アドレスに記憶される。
【0076】なお、各時刻におけるフィルタ係数の4並
列積和演算用のタップ数は、数式6により求められたL
となる。数式6により求められたフィルタ係数の4並列
積和演算用のタップ数Lは、従来の数式3により求めら
れるフィルタ係数の4並列積和演算用のタップ数K+3
と比較すると、実際のタップ数Mの値が4の倍数+1の
場合に等しく、それ以外の場合に、4少なくなる。
列積和演算用のタップ数は、数式6により求められたL
となる。数式6により求められたフィルタ係数の4並列
積和演算用のタップ数Lは、従来の数式3により求めら
れるフィルタ係数の4並列積和演算用のタップ数K+3
と比較すると、実際のタップ数Mの値が4の倍数+1の
場合に等しく、それ以外の場合に、4少なくなる。
【0077】また、全体として4つの連続した時刻用の
フィルタ係数配列を生成するため、数式6により求めら
れたフィルタ係数の4並列積和演算用の総タップ数L×
4は、従来の数式3により求められるフィルタ係数の4
並列積和演算用の総タップ数(K+3)×4と比較する
と、実際のタップ数Mが4の倍数+1の場合に等しく、
それ以外の場合に、16少なくなる。従って、フィルタ
係数を保持するために必要なメモリ容量を削減すること
ができる。
フィルタ係数配列を生成するため、数式6により求めら
れたフィルタ係数の4並列積和演算用の総タップ数L×
4は、従来の数式3により求められるフィルタ係数の4
並列積和演算用の総タップ数(K+3)×4と比較する
と、実際のタップ数Mが4の倍数+1の場合に等しく、
それ以外の場合に、16少なくなる。従って、フィルタ
係数を保持するために必要なメモリ容量を削減すること
ができる。
【0078】データ処理装置2は、このような、フィル
タ係数記憶部16に記憶されたフィルタ係数を使用し
て、図4に示すような、4つの連続した時刻のフィルタ
計算を行う。即ち、データ処理装置2は、時刻4jに、
第1の時刻用のフィルタ(CF(0))を使用し、時刻
4j+1に、第2の時刻用のフィルタ(CF(1))を
使用し、時刻4j+2に、第3の時刻用のフィルタ(C
F(2))を使用し、時刻4j+3に、第4の時刻用の
フィルタ(CF(3))を使用し、それぞれフィルタ計
算する。
タ係数記憶部16に記憶されたフィルタ係数を使用し
て、図4に示すような、4つの連続した時刻のフィルタ
計算を行う。即ち、データ処理装置2は、時刻4jに、
第1の時刻用のフィルタ(CF(0))を使用し、時刻
4j+1に、第2の時刻用のフィルタ(CF(1))を
使用し、時刻4j+2に、第3の時刻用のフィルタ(C
F(2))を使用し、時刻4j+3に、第4の時刻用の
フィルタ(CF(3))を使用し、それぞれフィルタ計
算する。
【0079】以下、図4に示すような、入力データ及び
フィルタ係数がリング・メモリ15及びフィルタ係数記
憶部16に配置されている状態におけるデータ処理装置
2のフィルタ計算の動作について図5を参照して説明す
る。図5は、データ処理装置2のフィルタ計算の動作を
示すフローチャートである。
フィルタ係数がリング・メモリ15及びフィルタ係数記
憶部16に配置されている状態におけるデータ処理装置
2のフィルタ計算の動作について図5を参照して説明す
る。図5は、データ処理装置2のフィルタ計算の動作を
示すフローチャートである。
【0080】まず、データ処理装置2は、累算レジスタ
10の値をゼロクリアする(ステップS201)。
10の値をゼロクリアする(ステップS201)。
【0081】データ処理装置2は、入力装置1から取得
した入力データを書き込みポインタ19の示すリング・
メモリ15のアドレスにライトして記憶する(ステップ
S202)。
した入力データを書き込みポインタ19の示すリング・
メモリ15のアドレスにライトして記憶する(ステップ
S202)。
【0082】データ処理装置2は、読み出しポインタ2
0に、時刻jにおける初期値を設定する(ステップS2
03)。即ち、データ処理装置2は、時刻jにおいて、
リング・メモリ15からデータレジスタ8に入力データ
をロードするための初期値となる書き込みポインタ19
が示す最新の入力データのアドレスの値を超えない最大
の8の倍数の値、つまり、書き込みポインタ19が示す
値の下位3bitをゼロとした値を、読み出しポインタ2
0に設定する。
0に、時刻jにおける初期値を設定する(ステップS2
03)。即ち、データ処理装置2は、時刻jにおいて、
リング・メモリ15からデータレジスタ8に入力データ
をロードするための初期値となる書き込みポインタ19
が示す最新の入力データのアドレスの値を超えない最大
の8の倍数の値、つまり、書き込みポインタ19が示す
値の下位3bitをゼロとした値を、読み出しポインタ2
0に設定する。
【0083】データ処理装置2は、フィルタ係数ポイン
タ22に時刻i(i=0、1、2、3)における初期値
を設定する(ステップS204)。即ち、データ処理装
置2は、時刻iにおいて、フィルタ係数記憶部16から
フィルタ係数レジスタ9にフィルタ係数をロードするた
めのアドレスを示す初期値(ADRF)を、数式7を使
用して求め、求めた初期値をフィルタ係数ポインタ22
に設定する。なお、初期値(ADRF)は、フィルタ係
数CF(i)の先頭アドレスとなる。
タ22に時刻i(i=0、1、2、3)における初期値
を設定する(ステップS204)。即ち、データ処理装
置2は、時刻iにおいて、フィルタ係数記憶部16から
フィルタ係数レジスタ9にフィルタ係数をロードするた
めのアドレスを示す初期値(ADRF)を、数式7を使
用して求め、求めた初期値をフィルタ係数ポインタ22
に設定する。なお、初期値(ADRF)は、フィルタ係
数CF(i)の先頭アドレスとなる。
【0084】
【数7】ADRF = SF + L × 2 × i ADRF:フィルタ係数ポインタ22の初期値 SF:フィルタ係数先頭ポインタ21の値 L:4並列積和演算用のフィルタのタップ数 i:時刻(i=0、1、2、3)
【0085】データ処理装置2は、リング・メモリ15
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS20
5)。
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS20
5)。
【0086】データ処理装置2は、フィルタ係数記憶部
16に記憶されているフィルタ係数から、フィルタ係数
ポインタ22の示すアドレスに記憶されている4タップ
分のフィルタ係数をフィルタ係数レジスタ9にロードす
る(ステップS206)。
16に記憶されているフィルタ係数から、フィルタ係数
ポインタ22の示すアドレスに記憶されている4タップ
分のフィルタ係数をフィルタ係数レジスタ9にロードす
る(ステップS206)。
【0087】並列演算装置7は、データレジスタ8にロ
ードした4データ分の入力データと、フィルタ係数レジ
スタ9にロードした4タップ分のフィルタ係数とで4並
列積和演算を行い、演算結果を累算レジスタ10に加算
して格納する(ステップS207)。
ードした4データ分の入力データと、フィルタ係数レジ
スタ9にロードした4タップ分のフィルタ係数とで4並
列積和演算を行い、演算結果を累算レジスタ10に加算
して格納する(ステップS207)。
【0088】データ処理装置2は、次の4データ分の入
力データをデータレジスタ8にロードするために、読み
出しポインタ20を更新する(ステップS208)。即
ち、データ処理装置2は、読み出しポインタ20が示す
アドレスが、リング・メモリ15の上位に配置された入
力データを示すように、読み出しポインタ20の値に8
(4データ分)を加算し、加算後の値で更新する。
力データをデータレジスタ8にロードするために、読み
出しポインタ20を更新する(ステップS208)。即
ち、データ処理装置2は、読み出しポインタ20が示す
アドレスが、リング・メモリ15の上位に配置された入
力データを示すように、読み出しポインタ20の値に8
(4データ分)を加算し、加算後の値で更新する。
【0089】データ処理装置2は、更新後の読み出しポ
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別する(ステップS209)。即
ち、読み出しポインタ20は、フィルタ計算開始時にお
いて、初期値がリング・メモリ先頭ポインタ17と同じ
値でない場合にはフィルタ計算の途中でリング・メモリ
の終端に達する。そのため、データ処理装置2は、更新
後の読み出しポインタ20とリング・メモリ終端ポイン
タ18との大小比較等により、読み出しポインタ20
が、リング・メモリ15の終端に達しているか否かの判
別を行なう。
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別する(ステップS209)。即
ち、読み出しポインタ20は、フィルタ計算開始時にお
いて、初期値がリング・メモリ先頭ポインタ17と同じ
値でない場合にはフィルタ計算の途中でリング・メモリ
の終端に達する。そのため、データ処理装置2は、更新
後の読み出しポインタ20とリング・メモリ終端ポイン
タ18との大小比較等により、読み出しポインタ20
が、リング・メモリ15の終端に達しているか否かの判
別を行なう。
【0090】データ処理装置2は、更新後の読み出しポ
インタ20がリング・メモリ終端ポインタ18の値より
大きいと判別した場合、リング・メモリ先頭ポインタ1
7の値を読み出しポインタ20の値に代入して更新する
(ステップS210)。これにより、リング・メモリ1
5は、論理的な環状構造を構成する。
インタ20がリング・メモリ終端ポインタ18の値より
大きいと判別した場合、リング・メモリ先頭ポインタ1
7の値を読み出しポインタ20の値に代入して更新する
(ステップS210)。これにより、リング・メモリ1
5は、論理的な環状構造を構成する。
【0091】データ処理装置2は、次の4タップ分のフ
ィルタ係数をフィルタ係数レジスタ9にロードするため
に、フィルタ係数ポインタ22を更新する(ステップS
211)。即ち、データ処理装置2は、フィルタ係数ポ
インタ22の示すアドレスが、フィルタ係数記憶部16
の上位に配置されたフィルタ係数を示すように、フィル
タ係数ポインタ22の値に8(4タップ分)を加算し、
加算後の値で更新する。
ィルタ係数をフィルタ係数レジスタ9にロードするため
に、フィルタ係数ポインタ22を更新する(ステップS
211)。即ち、データ処理装置2は、フィルタ係数ポ
インタ22の示すアドレスが、フィルタ係数記憶部16
の上位に配置されたフィルタ係数を示すように、フィル
タ係数ポインタ22の値に8(4タップ分)を加算し、
加算後の値で更新する。
【0092】データ処理装置2は、全フィルタタップ分
の処理が終了したか否かの判別を行なう(ステップS2
12)。データ処理装置2は、全フィルタタップ分の処
理が終了していないと判別した場合、ステップS205
に戻って、ステップS205〜ステップS212の処理
を繰り返す(積和計算ループS200)。
の処理が終了したか否かの判別を行なう(ステップS2
12)。データ処理装置2は、全フィルタタップ分の処
理が終了していないと判別した場合、ステップS205
に戻って、ステップS205〜ステップS212の処理
を繰り返す(積和計算ループS200)。
【0093】一方、データ処理装置2は、全フィルタタ
ップ分の処理が終了したと判別した場合、累算レジスタ
10に記憶された4つの16bit数の総和(c0+c1
+c2+c3)を算出する(ステップS213)。即
ち、全フィルタタップの処理が終了すると、累算レジス
タ110は、全タップのフィルタ計算結果が4つの16
bitの数値(c0〜c3)に分かれて格納される。デー
タ処理装置2は、この4つの16bitの数値の総和(c
0+c1+c2+c3)を算出し、フィルタ計算後の出
力データとする。
ップ分の処理が終了したと判別した場合、累算レジスタ
10に記憶された4つの16bit数の総和(c0+c1
+c2+c3)を算出する(ステップS213)。即
ち、全フィルタタップの処理が終了すると、累算レジス
タ110は、全タップのフィルタ計算結果が4つの16
bitの数値(c0〜c3)に分かれて格納される。デー
タ処理装置2は、この4つの16bitの数値の総和(c
0+c1+c2+c3)を算出し、フィルタ計算後の出
力データとする。
【0094】データ処理装置2は、求めた出力データを
出力装置4に出力する(ステップS214)。
出力装置4に出力する(ステップS214)。
【0095】データ処理装置2は、次の時刻のフィルタ
計算のために、書き込みポインタ19を更新する(ステ
ップ215)。即ち、データ処理装置2は、書き込みポ
インタ19に2bit(1データ分)のアドレスを加算
し、加算後の値で更新する。
計算のために、書き込みポインタ19を更新する(ステ
ップ215)。即ち、データ処理装置2は、書き込みポ
インタ19に2bit(1データ分)のアドレスを加算
し、加算後の値で更新する。
【0096】データ処理装置2は、更新後の書き込みポ
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別する(ステップS216)。即
ち、データ処理装置2は、更新後の書き込みポインタ1
9とリング・メモリ終端ポインタ18との大小比較等に
より、書き込みポインタ19が、リング・メモリ15の
終端に達しているか否かの判別を行なう。
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別する(ステップS216)。即
ち、データ処理装置2は、更新後の書き込みポインタ1
9とリング・メモリ終端ポインタ18との大小比較等に
より、書き込みポインタ19が、リング・メモリ15の
終端に達しているか否かの判別を行なう。
【0097】データ処理装置2は、更新後の書き込みポ
インタ19がリング・メモリ終端ポインタ18の値より
大きいと判別した場合、リング・メモリ先頭ポインタ1
7の値を書き込みポインタ19の値に代入して更新する
(ステップS217)。
インタ19がリング・メモリ終端ポインタ18の値より
大きいと判別した場合、リング・メモリ先頭ポインタ1
7の値を書き込みポインタ19の値に代入して更新する
(ステップS217)。
【0098】以上説明したように、この第1の実施の形
態に係る発明によれば、入力データを、論理的な環状構
造からなるリング・メモリ15に記憶することにより、
新規の入力データを、フィルタ計算に必要なくなった旧
の入力データに上書きして記憶することができるため、
メモリを効率よく利用できる。また、フィルタ係数を論
理的な環状構造として、フィルタ係数記憶部16に記憶
することにより、空き領域の発生が抑え、フィルタ係数
を記憶するためのメモリを効率よく利用することができ
る。更に、フィルタ係数記憶部106に、0の値のフィ
ルタ係数を抑えて設定したため、フィルタ計算の全体の
演算量が減らして高速演算を実行できる。
態に係る発明によれば、入力データを、論理的な環状構
造からなるリング・メモリ15に記憶することにより、
新規の入力データを、フィルタ計算に必要なくなった旧
の入力データに上書きして記憶することができるため、
メモリを効率よく利用できる。また、フィルタ係数を論
理的な環状構造として、フィルタ係数記憶部16に記憶
することにより、空き領域の発生が抑え、フィルタ係数
を記憶するためのメモリを効率よく利用することができ
る。更に、フィルタ係数記憶部106に、0の値のフィ
ルタ係数を抑えて設定したため、フィルタ計算の全体の
演算量が減らして高速演算を実行できる。
【0099】次に、図面を参照して、この発明の第2の
実施の形態にかかる演算処理装置について説明する。第
2の実施の形態では、積和計算を行なう処理を2つに分
割して処理する点が第1の実施の形態と異なる。即ち、
第2の実施の形態では、積和計算を行なう処理を読み出
しポインタ20の初期位置からリング・メモリ15の終
端までに記憶された入力データを処理するループと、リ
ング・メモリの先頭から読み出しポインタ20の初期位
置の手前の位置までに記憶された入力データを処理する
ループとに分割して処理する。
実施の形態にかかる演算処理装置について説明する。第
2の実施の形態では、積和計算を行なう処理を2つに分
割して処理する点が第1の実施の形態と異なる。即ち、
第2の実施の形態では、積和計算を行なう処理を読み出
しポインタ20の初期位置からリング・メモリ15の終
端までに記憶された入力データを処理するループと、リ
ング・メモリの先頭から読み出しポインタ20の初期位
置の手前の位置までに記憶された入力データを処理する
ループとに分割して処理する。
【0100】第2の実施の形態の構成は、図1に示す第
1の実施の形態の構成と同じである。以下、入力データ
及びフィルタ係数がリング・メモリ15及びフィルタ係
数レジスタ16に配置されている状態におけるデータ処
理装置2のフィルタ計算の動作について図6を参照して
説明する。図6は、データ処理装置2のフィルタ計算の
動作を示すフローチャートである。なお、図6に示すフ
ローチャートは、図2のフローチャートに示す積和計算
ループ(S200)が、積和計算ループ1(S300)
及び積和計算ループ2(S301)の2つに分割されて
いる点が異なる。
1の実施の形態の構成と同じである。以下、入力データ
及びフィルタ係数がリング・メモリ15及びフィルタ係
数レジスタ16に配置されている状態におけるデータ処
理装置2のフィルタ計算の動作について図6を参照して
説明する。図6は、データ処理装置2のフィルタ計算の
動作を示すフローチャートである。なお、図6に示すフ
ローチャートは、図2のフローチャートに示す積和計算
ループ(S200)が、積和計算ループ1(S300)
及び積和計算ループ2(S301)の2つに分割されて
いる点が異なる。
【0101】まず、データ処理装置2は、累算レジスタ
10の値をゼロクリアする(ステップS302)。デー
タ処理装置2は、入力装置1から取得した入力データを
書き込みポインタ19の示すリング・メモリ15のアド
レスにライトして記憶する(ステップS303)。
10の値をゼロクリアする(ステップS302)。デー
タ処理装置2は、入力装置1から取得した入力データを
書き込みポインタ19の示すリング・メモリ15のアド
レスにライトして記憶する(ステップS303)。
【0102】データ処理装置2は、読み出しポインタ2
0に、時刻jにおける初期値を設定する(ステップS3
04)。データ処理装置2は、フィルタ係数ポインタ2
2に時刻i(i=0、1、2、3)における初期値を設
定する(ステップS305)。
0に、時刻jにおける初期値を設定する(ステップS3
04)。データ処理装置2は、フィルタ係数ポインタ2
2に時刻i(i=0、1、2、3)における初期値を設
定する(ステップS305)。
【0103】データ処理装置2は、リング・メモリ15
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS30
6)。データ処理装置2は、フィルタ係数記憶部16に
記憶されているフィルタ係数から、フィルタ係数ポイン
タ22の示すアドレスに記憶されている4タップ分のフ
ィルタ係数をフィルタ係数レジスタ9にロードする(ス
テップS307)。
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS30
6)。データ処理装置2は、フィルタ係数記憶部16に
記憶されているフィルタ係数から、フィルタ係数ポイン
タ22の示すアドレスに記憶されている4タップ分のフ
ィルタ係数をフィルタ係数レジスタ9にロードする(ス
テップS307)。
【0104】並列演算装置7は、データレジスタ8にロ
ードした4データ分の入力データと、フィルタ係数レジ
スタ9にロードした4タップ分のフィルタ係数とで4並
列積和演算を行い、演算結果を累算レジスタ10に加算
して格納する(ステップS308)。
ードした4データ分の入力データと、フィルタ係数レジ
スタ9にロードした4タップ分のフィルタ係数とで4並
列積和演算を行い、演算結果を累算レジスタ10に加算
して格納する(ステップS308)。
【0105】データ処理装置2は、次の4データ分の入
力データをデータレジスタ8にロードするために、読み
出しポインタ20を更新する(ステップS309)。デ
ータ処理装置2は、次の4タップ分のフィルタ係数をフ
ィルタ係数レジスタ9にロードするために、フィルタ係
数ポインタ22を更新する(ステップS310)。
力データをデータレジスタ8にロードするために、読み
出しポインタ20を更新する(ステップS309)。デ
ータ処理装置2は、次の4タップ分のフィルタ係数をフ
ィルタ係数レジスタ9にロードするために、フィルタ係
数ポインタ22を更新する(ステップS310)。
【0106】データ処理装置2は、更新後の読み出しポ
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別する(ステップS311)。デ
ータ処理装置2は、更新後の読み出しポインタ20の値
がリング・メモリ終端ポインタ18の値より小さいと判
別した場合、ステップS306に戻って、ステップS3
06〜ステップS311の処理を繰り返す(積和計算ル
ープ1S300)。
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別する(ステップS311)。デ
ータ処理装置2は、更新後の読み出しポインタ20の値
がリング・メモリ終端ポインタ18の値より小さいと判
別した場合、ステップS306に戻って、ステップS3
06〜ステップS311の処理を繰り返す(積和計算ル
ープ1S300)。
【0107】一方、データ処理装置2は、更新後の読み
出しポインタ20の値がリング・メモリ終端ポインタ1
8の値より大きいと判別した場合、データ処理装置2
は、全フィルタタップ分の処理が終了したか否かの判別
を行なう(ステップS312)。
出しポインタ20の値がリング・メモリ終端ポインタ1
8の値より大きいと判別した場合、データ処理装置2
は、全フィルタタップ分の処理が終了したか否かの判別
を行なう(ステップS312)。
【0108】データ処理装置2は、全フィルタタップ分
の処理が終了したと判別した場合、後述するステップS
320に進んで、累算レジスタ10に記憶された4つの
16bit数の総和を算出する。一方、データ処理装置2
は、全フィルタタップ分の処理が終了していないと判別
した場合、リング・メモリ先頭ポインタ17の値を読み
出しポインタ20の値に代入して更新する(ステップS
313)。
の処理が終了したと判別した場合、後述するステップS
320に進んで、累算レジスタ10に記憶された4つの
16bit数の総和を算出する。一方、データ処理装置2
は、全フィルタタップ分の処理が終了していないと判別
した場合、リング・メモリ先頭ポインタ17の値を読み
出しポインタ20の値に代入して更新する(ステップS
313)。
【0109】データ処理装置2は、リング・メモリ15
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS31
4)。データ処理装置2は、フィルタ係数記憶部16に
記憶されているフィルタ係数から、フィルタ係数ポイン
タ22の示すアドレスに記憶されている4タップ分のフ
ィルタ係数をフィルタ係数レジスタ9にロードする(ス
テップS315)。
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS31
4)。データ処理装置2は、フィルタ係数記憶部16に
記憶されているフィルタ係数から、フィルタ係数ポイン
タ22の示すアドレスに記憶されている4タップ分のフ
ィルタ係数をフィルタ係数レジスタ9にロードする(ス
テップS315)。
【0110】並列演算装置7は、データレジスタ8にロ
ードした4データ分の入力データと、フィルタ係数レジ
スタ9にロードした4タップ分のフィルタ係数とで4並
列積和演算を行い、演算結果を累算レジスタ10に加算
して格納する(ステップS316)。
ードした4データ分の入力データと、フィルタ係数レジ
スタ9にロードした4タップ分のフィルタ係数とで4並
列積和演算を行い、演算結果を累算レジスタ10に加算
して格納する(ステップS316)。
【0111】データ処理装置2は、次の4データ分の入
力データをデータレジスタ8にロードするために、読み
出しポインタ20を更新する(ステップS317)。デ
ータ処理装置2は、次の4タップ分のフィルタ係数をフ
ィルタ係数レジスタ9にロードするために、フィルタ係
数ポインタ22を更新する(ステップS318)。
力データをデータレジスタ8にロードするために、読み
出しポインタ20を更新する(ステップS317)。デ
ータ処理装置2は、次の4タップ分のフィルタ係数をフ
ィルタ係数レジスタ9にロードするために、フィルタ係
数ポインタ22を更新する(ステップS318)。
【0112】データ処理装置2は、更新後の読み出しポ
インタ20の値が読み出しポインタ20の初期値より大
きいか否かを判別する(ステップS319)。データ処
理装置2は、更新後の読み出しポインタ20の値が読み
出しポインタ20の初期値より小さいと判別した場合、
ステップS314に戻って、ステップS314〜ステッ
プS319の処理を繰り返す(積和計算ループ2S30
1)。
インタ20の値が読み出しポインタ20の初期値より大
きいか否かを判別する(ステップS319)。データ処
理装置2は、更新後の読み出しポインタ20の値が読み
出しポインタ20の初期値より小さいと判別した場合、
ステップS314に戻って、ステップS314〜ステッ
プS319の処理を繰り返す(積和計算ループ2S30
1)。
【0113】一方、データ処理装置2は、更新後の読み
出しポインタ20の値が読み出しポインタ20の初期値
より大きいと判別した場合、累算レジスタ10に記憶さ
れた4つの16bit数の総和(c0+c1+c2+c
3)を算出し、フィルタ計算後の出力データとする(ス
テップS320)。データ処理装置2は、求めた出力デ
ータを出力装置4に出力する(ステップS321)。
出しポインタ20の値が読み出しポインタ20の初期値
より大きいと判別した場合、累算レジスタ10に記憶さ
れた4つの16bit数の総和(c0+c1+c2+c
3)を算出し、フィルタ計算後の出力データとする(ス
テップS320)。データ処理装置2は、求めた出力デ
ータを出力装置4に出力する(ステップS321)。
【0114】データ処理装置2は、次の時刻のフィルタ
計算のために、書き込みポインタ19を更新する(ステ
ップ322)。データ処理装置2は、更新後の書き込み
ポインタ19の値がリング・メモリ終端ポインタ18の
値より大きいか否かを判別する(ステップS323)。
計算のために、書き込みポインタ19を更新する(ステ
ップ322)。データ処理装置2は、更新後の書き込み
ポインタ19の値がリング・メモリ終端ポインタ18の
値より大きいか否かを判別する(ステップS323)。
【0115】データ処理装置2は、更新後の書き込みポ
インタ19がリング・メモリ終端ポインタ18の値より
大きいと判別した場合、リング・メモリ先頭ポインタ1
7の値を書き込みポインタ19の値に代入して更新する
(ステップS324)。
インタ19がリング・メモリ終端ポインタ18の値より
大きいと判別した場合、リング・メモリ先頭ポインタ1
7の値を書き込みポインタ19の値に代入して更新する
(ステップS324)。
【0116】以上説明したように、この第2の実施の形
態に係る発明によれば、読み出しポインタ20の初期位
置からリング・メモリ15の終端までに記憶された入力
データと、リング・メモリ15の先頭から読み出しポイ
ンタ20の初期位置の手前の位置までに記憶された入力
データとを別の積和計算ループで処理する。このため、
積和計算ループ内での、読み出しポインタがリング・メ
モリ終端に達したかの判定および読み出しポインタのリ
ング・メモリ先頭への移動の処理が不要となる。また、
積和計算ループは繰り返し実行されるため、積和計算ル
ープ内のリング・メモリ15の終端処理を削減すること
でフィルタ計算全体の処理量を大きく削減し、高速演算
を実行できる。
態に係る発明によれば、読み出しポインタ20の初期位
置からリング・メモリ15の終端までに記憶された入力
データと、リング・メモリ15の先頭から読み出しポイ
ンタ20の初期位置の手前の位置までに記憶された入力
データとを別の積和計算ループで処理する。このため、
積和計算ループ内での、読み出しポインタがリング・メ
モリ終端に達したかの判定および読み出しポインタのリ
ング・メモリ先頭への移動の処理が不要となる。また、
積和計算ループは繰り返し実行されるため、積和計算ル
ープ内のリング・メモリ15の終端処理を削減すること
でフィルタ計算全体の処理量を大きく削減し、高速演算
を実行できる。
【0117】次に、図面を参照して、この発明の第3の
実施の形態にかかる演算処理装置について説明する。第
3の実施の形態では、積和演算ループ内で4つの連続し
た時刻の積和演算を1つの共通する入力データに対して
4つの時刻用のフィルタ係数を使用して同時にフィルタ
計算を行うことを特徴とする。図7は、この発明の第3
の実施の形態にかかる演算処理装置の構成を示すブロッ
ク図である。この演算処理装置は、データを入力する入
力装置1と、入力データに対してフィルタ計算を行うデ
ータ処理装置2と、入力データ及びフィルタ係数を記憶
する記憶装置3と、出力データを出力する出力装置4と
から構成される。
実施の形態にかかる演算処理装置について説明する。第
3の実施の形態では、積和演算ループ内で4つの連続し
た時刻の積和演算を1つの共通する入力データに対して
4つの時刻用のフィルタ係数を使用して同時にフィルタ
計算を行うことを特徴とする。図7は、この発明の第3
の実施の形態にかかる演算処理装置の構成を示すブロッ
ク図である。この演算処理装置は、データを入力する入
力装置1と、入力データに対してフィルタ計算を行うデ
ータ処理装置2と、入力データ及びフィルタ係数を記憶
する記憶装置3と、出力データを出力する出力装置4と
から構成される。
【0118】記憶装置3は、入力データを記憶するリン
グ・メモリ15と、フィルタ係数を記憶するフィルタ係
数記憶部23とから構成される。リング・メモリ15
は、第1の実施の形態と同一な論理的な環状構造からな
る。フィルタ係数記憶部23は、図8に示すように、後
述する4つのフィルタ係数レジスタ25(FR(0)〜
FR(3))にフィルタ係数を順番にロードすることが
できるように、図3に示す第1〜第4の時刻用のフィル
タ係数(CF(0)〜CF(0))が4タップずつ分か
れて記憶されている。
グ・メモリ15と、フィルタ係数を記憶するフィルタ係
数記憶部23とから構成される。リング・メモリ15
は、第1の実施の形態と同一な論理的な環状構造からな
る。フィルタ係数記憶部23は、図8に示すように、後
述する4つのフィルタ係数レジスタ25(FR(0)〜
FR(3))にフィルタ係数を順番にロードすることが
できるように、図3に示す第1〜第4の時刻用のフィル
タ係数(CF(0)〜CF(0))が4タップずつ分か
れて記憶されている。
【0119】図7に戻って、データ処理装置2は、並列
演算装置7と、データレジスタ8と、フィルタ係数レジ
スタ25と、累算レジスタ26と、リング・メモリ先頭
ポインタ17と、リング・メモリ終端ポインタ18と、
書き込みポインタ19と、読み出しポインタ20と、フ
ィルタ係数先頭ポインタ27と、フィルタ係数ポインタ
28とから構成される。
演算装置7と、データレジスタ8と、フィルタ係数レジ
スタ25と、累算レジスタ26と、リング・メモリ先頭
ポインタ17と、リング・メモリ終端ポインタ18と、
書き込みポインタ19と、読み出しポインタ20と、フ
ィルタ係数先頭ポインタ27と、フィルタ係数ポインタ
28とから構成される。
【0120】並列演算装置7及びデータレジスタ8は、
第1の実施の形態と同一である。リング・メモリ先頭ポ
インタ17、リング・メモリ終端ポインタ18、書き込
みポインタ19及び、読み出しポインタ20は、リング
・メモリ15と同様に、第1の実施の形態と同一であ
る。
第1の実施の形態と同一である。リング・メモリ先頭ポ
インタ17、リング・メモリ終端ポインタ18、書き込
みポインタ19及び、読み出しポインタ20は、リング
・メモリ15と同様に、第1の実施の形態と同一であ
る。
【0121】フィルタ係数レジスタ25は、4つの64
bitレジスタ(FR(0)〜FR(3))からなり、フ
ィルタ係数記憶部23に記憶された4×4タップ分のフ
ィルタ係数をロードする。累算レジスタ26は、4つの
64bitレジスタ(AR(0)〜AR(3))からな
り、並列演算装置7による4回の4並列積和演算の中間
結果を逐次累算する。
bitレジスタ(FR(0)〜FR(3))からなり、フ
ィルタ係数記憶部23に記憶された4×4タップ分のフ
ィルタ係数をロードする。累算レジスタ26は、4つの
64bitレジスタ(AR(0)〜AR(3))からな
り、並列演算装置7による4回の4並列積和演算の中間
結果を逐次累算する。
【0122】フィルタ係数先頭ポインタ27は、フィル
タ係数記憶部23において予め設定されたフィルタ係数
を記憶するための領域の先頭アドレスを示す。フィルタ
係数ポインタ28は、フィルタ係数記憶部23に記憶さ
れたフィルタ係数をフィルタ係数レジスタ25(FR
(0)〜FR(3))にロードするためのアドレスを示
す。
タ係数記憶部23において予め設定されたフィルタ係数
を記憶するための領域の先頭アドレスを示す。フィルタ
係数ポインタ28は、フィルタ係数記憶部23に記憶さ
れたフィルタ係数をフィルタ係数レジスタ25(FR
(0)〜FR(3))にロードするためのアドレスを示
す。
【0123】以下、データ処理装置2が行う4つの連続
した積和演算について図面を参照して説明する。図9に
示すように、4つの連続した時刻(時刻4j〜4j+
3)に積和演算する入力データとフィルタ係数との組み
合わせは、図9に示すような先頭の組み合わせを除き、
入力データが同一のものとなる。即ち、図9の先頭の組
み合わせ(最新の入力データを含む組み合わせ)の積和
演算以外は、図10に示すように、共通の入力データに
対して、各時刻のフィルタ係数を使用した積和演算が可
能となる。従って、データ処理装置2は、データレジス
タ8に入力データをロードし、フィルタ係数レジスタ2
5(FR(0)〜FR(3))に第1〜第4の時刻用の
フィルタ係数をロードして、4つの連続した4並列積和
演算を行う。それぞれの積和演算結果は、累算レジスタ
26(AR(0)〜AR(3))にそれぞれ加算され格
納される。この結果、データ処理装置2は、データレジ
スタ8に入力データをロードする回数を減らすことがで
きるため、全体として、処理を高速化することができ
る。
した積和演算について図面を参照して説明する。図9に
示すように、4つの連続した時刻(時刻4j〜4j+
3)に積和演算する入力データとフィルタ係数との組み
合わせは、図9に示すような先頭の組み合わせを除き、
入力データが同一のものとなる。即ち、図9の先頭の組
み合わせ(最新の入力データを含む組み合わせ)の積和
演算以外は、図10に示すように、共通の入力データに
対して、各時刻のフィルタ係数を使用した積和演算が可
能となる。従って、データ処理装置2は、データレジス
タ8に入力データをロードし、フィルタ係数レジスタ2
5(FR(0)〜FR(3))に第1〜第4の時刻用の
フィルタ係数をロードして、4つの連続した4並列積和
演算を行う。それぞれの積和演算結果は、累算レジスタ
26(AR(0)〜AR(3))にそれぞれ加算され格
納される。この結果、データ処理装置2は、データレジ
スタ8に入力データをロードする回数を減らすことがで
きるため、全体として、処理を高速化することができ
る。
【0124】以下、フィルタ係数が図8に示すようにフ
ィルタ係数記憶部23に配置されている状態におけるデ
ータ処理装置2のフィルタ計算の動作について図11を
参照して説明する。図11は、データ処理装置2のフィ
ルタ計算の動作を示すフローチャートである。
ィルタ係数記憶部23に配置されている状態におけるデ
ータ処理装置2のフィルタ計算の動作について図11を
参照して説明する。図11は、データ処理装置2のフィ
ルタ計算の動作を示すフローチャートである。
【0125】まず、データ処理装置2は、累算レジスタ
26の4つのレジスタ(AR(0)〜AR(3))の値
をゼロクリアする(ステップS402)。
26の4つのレジスタ(AR(0)〜AR(3))の値
をゼロクリアする(ステップS402)。
【0126】データ処理装置2は、読み出しポインタ2
0及びフィルタ係数ポインタ28に初期値を設定する
(ステップS404、ステップS405)。なお、読み
出しポインタ20の初期値には、書き込みポインタ19
の値を設定する。
0及びフィルタ係数ポインタ28に初期値を設定する
(ステップS404、ステップS405)。なお、読み
出しポインタ20の初期値には、書き込みポインタ19
の値を設定する。
【0127】次に、データ処理装置2は、4つの連続し
た時刻の積和演算において、入力データが共通とならな
い先頭の積和演算を処理する(先頭4タップ処理40
0)。最初に、データ処理装置2は、時刻nの積和演算
を行う。データ処理装置2は、入力装置1から取得した
入力データを書き込みポインタ19の示すリング・メモ
リ15のアドレスにライトして記憶する(ステップS4
06)。
た時刻の積和演算において、入力データが共通とならな
い先頭の積和演算を処理する(先頭4タップ処理40
0)。最初に、データ処理装置2は、時刻nの積和演算
を行う。データ処理装置2は、入力装置1から取得した
入力データを書き込みポインタ19の示すリング・メモ
リ15のアドレスにライトして記憶する(ステップS4
06)。
【0128】データ処理装置2は、リング・メモリ15
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS40
7)。
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS40
7)。
【0129】データ処理装置2は、フィルタ係数記憶部
23に記憶されているフィルタ係数から、フィルタ係数
ポインタ28の示すアドレスに記憶されている4タップ
分のフィルタ係数をフィルタ係数レジスタ26(FR
(0))にロードする(ステップS408)。
23に記憶されているフィルタ係数から、フィルタ係数
ポインタ28の示すアドレスに記憶されている4タップ
分のフィルタ係数をフィルタ係数レジスタ26(FR
(0))にロードする(ステップS408)。
【0130】並列演算装置7は、データレジスタ8にロ
ードした4データ分の入力データと、フィルタ係数レジ
スタ26(FR(0))にロードした4タップ分のフィ
ルタ係数との4並列積和演算を行い、演算結果を累算レ
ジスタ26(AR(0))に格納する(ステップS40
9)。
ードした4データ分の入力データと、フィルタ係数レジ
スタ26(FR(0))にロードした4タップ分のフィ
ルタ係数との4並列積和演算を行い、演算結果を累算レ
ジスタ26(AR(0))に格納する(ステップS40
9)。
【0131】データ処理装置2は、同様に、時刻n+
1、時刻n+2、時刻n+3の最初の積和演算を行う
(S410〜S421)。なお、データ処理装置2は、
時刻n+1に、フィルタ係数レジスタ25(FR
(1))にフィルタ係数ポインタ28の指すアドレス+
8のフィルタ係数をロードし、時刻n+2に、FR
(2)にフィルタ係数ポインタ28の指すアドレス+1
6のフィルタ係数をロードし、時刻n+3に、FR
(3)にフィルタ係数ポインタ28の指すアドレス+2
4のフィルタ係数をロードする。また、並列演算装置7
は、時刻n+1のときに、累算レジスタ26(AR
(1))に演算結果を格納し、時刻n+2のときに、A
R(2)に演算結果を格納し、時刻n+3のときに、A
R(3)に演算結果を格納する。
1、時刻n+2、時刻n+3の最初の積和演算を行う
(S410〜S421)。なお、データ処理装置2は、
時刻n+1に、フィルタ係数レジスタ25(FR
(1))にフィルタ係数ポインタ28の指すアドレス+
8のフィルタ係数をロードし、時刻n+2に、FR
(2)にフィルタ係数ポインタ28の指すアドレス+1
6のフィルタ係数をロードし、時刻n+3に、FR
(3)にフィルタ係数ポインタ28の指すアドレス+2
4のフィルタ係数をロードする。また、並列演算装置7
は、時刻n+1のときに、累算レジスタ26(AR
(1))に演算結果を格納し、時刻n+2のときに、A
R(2)に演算結果を格納し、時刻n+3のときに、A
R(3)に演算結果を格納する。
【0132】データ処理装置2は、全フィルタタップ分
の処理が終了したか否かの判別を行なう(ステップS4
22)。データ処理装置2は、全フィルタタップ分の処
理が終了したと判別した場合、後述するステップS43
5に進んで、累算レジスタ26に記憶された4つの16
bit数の総和を算出する。
の処理が終了したか否かの判別を行なう(ステップS4
22)。データ処理装置2は、全フィルタタップ分の処
理が終了したと判別した場合、後述するステップS43
5に進んで、累算レジスタ26に記憶された4つの16
bit数の総和を算出する。
【0133】一方、データ処理装置2は、全フィルタタ
ップ分の処理が終了していないと判別した場合、4デー
タ分の入力データをデータレジスタ8にロードするため
に、読み出しポインタ20に8(4データ分)を加算
し、加算後の値で更新する(ステップS423)。
ップ分の処理が終了していないと判別した場合、4デー
タ分の入力データをデータレジスタ8にロードするため
に、読み出しポインタ20に8(4データ分)を加算
し、加算後の値で更新する(ステップS423)。
【0134】データ処理装置2は、更新後の読み出しポ
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS424)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を読み出しポインタ20の値に代入して更新する(ス
テップS425)。
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS424)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を読み出しポインタ20の値に代入して更新する(ス
テップS425)。
【0135】データ処理装置2は、次の4×4タップ分
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ28に32(4×4タ
ップ分)を加算し、加算後の値で更新する(ステップS
426)。
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ28に32(4×4タ
ップ分)を加算し、加算後の値で更新する(ステップS
426)。
【0136】データ処理装置2は、リング・メモリ15
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS42
7)。
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ8にロードする(ステップS42
7)。
【0137】データ処理装置2は、フィルタ係数記憶部
23に記憶されているフィルタ係数から、フィルタ係数
ポインタ28の示すアドレスに記憶されている4×4タ
ップ分のフィルタ係数をフィルタ係数レジスタ25(F
R(0)〜FR(3))にロードする(ステップS42
8)。
23に記憶されているフィルタ係数から、フィルタ係数
ポインタ28の示すアドレスに記憶されている4×4タ
ップ分のフィルタ係数をフィルタ係数レジスタ25(F
R(0)〜FR(3))にロードする(ステップS42
8)。
【0138】並列演算装置7は、データレジスタ8にロ
ードした4データ分の入力データと、フィルタ係数レジ
スタ25にロードしたフィルタ係数との4並列積和演算
をそれぞれ行い、演算結果を累算レジスタ26にそれぞ
れ加算して格納する(ステップS429)。即ち、並列
演算装置7は、入力データとFR(0)との演算結果を
AR(0)に加算して格納し、入力データとFR(1)
との演算結果をAR(1)に加算して格納し、入力デー
タとFR(2)との演算結果をAR(2)に加算して格
納し、入力データとFR(3)との演算結果をAR
(3)に加算して格納する。
ードした4データ分の入力データと、フィルタ係数レジ
スタ25にロードしたフィルタ係数との4並列積和演算
をそれぞれ行い、演算結果を累算レジスタ26にそれぞ
れ加算して格納する(ステップS429)。即ち、並列
演算装置7は、入力データとFR(0)との演算結果を
AR(0)に加算して格納し、入力データとFR(1)
との演算結果をAR(1)に加算して格納し、入力デー
タとFR(2)との演算結果をAR(2)に加算して格
納し、入力データとFR(3)との演算結果をAR
(3)に加算して格納する。
【0139】データ処理装置2は、次の4データ分の入
力データをデータレジスタ8にロードするために、読み
出しポインタ20に8(4データ分)を加算し、加算後
の値で更新する(ステップS430)。
力データをデータレジスタ8にロードするために、読み
出しポインタ20に8(4データ分)を加算し、加算後
の値で更新する(ステップS430)。
【0140】データ処理装置2は、更新後の読み出しポ
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS431)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を読み出しポインタ20の値に代入して更新する(ス
テップS432)。
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS431)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を読み出しポインタ20の値に代入して更新する(ス
テップS432)。
【0141】データ処理装置2は、次の4×4タップ分
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ22に32(4×4タ
ップ分)を加算し、加算後の値でを更新する(ステップ
S433)。
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ22に32(4×4タ
ップ分)を加算し、加算後の値でを更新する(ステップ
S433)。
【0142】データ処理装置2は、全フィルタタップ分
の処理が終了したか否かの判別を行なう(ステップS4
34)。データ処理装置2は、全フィルタタップ分の処
理が終了していないと判別した場合、ステップS427
に戻って、ステップS427〜ステップS434の処理
を繰り返す(積和計算ループS401)。
の処理が終了したか否かの判別を行なう(ステップS4
34)。データ処理装置2は、全フィルタタップ分の処
理が終了していないと判別した場合、ステップS427
に戻って、ステップS427〜ステップS434の処理
を繰り返す(積和計算ループS401)。
【0143】一方、データ処理装置2は、全フィルタタ
ップ分の処理が終了したと判別した場合、累算レジスタ
26(AR(0)〜AR(3))に記憶されたそれぞれ
の4つの16bit数の総和を算出し、フィルタ計算後の
出力データとする(ステップS435)。
ップ分の処理が終了したと判別した場合、累算レジスタ
26(AR(0)〜AR(3))に記憶されたそれぞれ
の4つの16bit数の総和を算出し、フィルタ計算後の
出力データとする(ステップS435)。
【0144】データ処理装置2は、求めた出力データを
出力装置4に順次出力する(ステップS436)。
出力装置4に順次出力する(ステップS436)。
【0145】データ処理装置2は、次の4時刻分のフィ
ルタ計算のために、書き込みポインタ19に8(4デー
タ分)を加算し、加算後の値で更新する(ステップS4
37)。
ルタ計算のために、書き込みポインタ19に8(4デー
タ分)を加算し、加算後の値で更新する(ステップS4
37)。
【0146】データ処理装置2は、更新後の書き込みポ
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS438)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を書き込みポインタ19の値に代入して更新する(ス
テップS439)。
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS438)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を書き込みポインタ19の値に代入して更新する(ス
テップS439)。
【0147】以上説明したように、この第3の実施の形
態に係る発明によれば、データレジスタ8にロードされ
た入力データを複数の時刻のフィルタ計算に利用するこ
とにより、全体のロード回数を減らし、処理を高速化す
ることができる。また、フィルタ係数レジスタ25に、
4つの連続する時刻用のフィルタ係数を、一度にロード
することにより、全体のロード回数を減らし、処理を高
速化することができる。更に、積和計算ループ401に
て、4つの連続する時刻の積和演算処理を行なうことに
より、全体のループの数を減らし、処理を高速化するこ
とができる。
態に係る発明によれば、データレジスタ8にロードされ
た入力データを複数の時刻のフィルタ計算に利用するこ
とにより、全体のロード回数を減らし、処理を高速化す
ることができる。また、フィルタ係数レジスタ25に、
4つの連続する時刻用のフィルタ係数を、一度にロード
することにより、全体のロード回数を減らし、処理を高
速化することができる。更に、積和計算ループ401に
て、4つの連続する時刻の積和演算処理を行なうことに
より、全体のループの数を減らし、処理を高速化するこ
とができる。
【0148】上記の第3の実施の形態では、積和計算ル
ープ401内で毎回リング・メモリの終端を行なってい
るが、第2の実施の形態のように、積和ループを2つに
分割してもよい。
ープ401内で毎回リング・メモリの終端を行なってい
るが、第2の実施の形態のように、積和ループを2つに
分割してもよい。
【0149】次に、図面を参照して、この発明の第4の
実施の形態にかかる演算処理装置について説明する。第
4の実施の形態では、第3の実施の形態と同様に、積和
演算ループ内で8つの連続した時刻の積和演算を行うも
のであるが、その際、フィルタ係数を共有してフィルタ
計算を行うことを特徴とする。図12は、この発明の第
4の実施の形態にかかる演算処理装置の構成を示すブロ
ック図である。この演算処理装置は、データを入力する
入力装置1と、入力データに対してフィルタ計算を行う
データ処理装置2と、入力データ及びフィルタ係数を記
憶する記憶装置3と、出力データを出力する出力装置4
とから構成される。
実施の形態にかかる演算処理装置について説明する。第
4の実施の形態では、第3の実施の形態と同様に、積和
演算ループ内で8つの連続した時刻の積和演算を行うも
のであるが、その際、フィルタ係数を共有してフィルタ
計算を行うことを特徴とする。図12は、この発明の第
4の実施の形態にかかる演算処理装置の構成を示すブロ
ック図である。この演算処理装置は、データを入力する
入力装置1と、入力データに対してフィルタ計算を行う
データ処理装置2と、入力データ及びフィルタ係数を記
憶する記憶装置3と、出力データを出力する出力装置4
とから構成される。
【0150】記憶装置3は、入力データを記憶するリン
グ・メモリ15と、フィルタ係数を記憶するフィルタ係
数記憶部23とから構成される。リング・メモリ15及
びフィルタ係数記憶部23は、第3の実施の形態と同一
である。
グ・メモリ15と、フィルタ係数を記憶するフィルタ係
数記憶部23とから構成される。リング・メモリ15及
びフィルタ係数記憶部23は、第3の実施の形態と同一
である。
【0151】データ処理装置2は、並列演算装置7と、
データレジスタ29と、フィルタ係数レジスタ25と、
累算レジスタ30と、リング・メモリ先頭ポインタ17
と、リング・メモリ終端ポインタ18と、書き込みポイ
ンタ19と、読み出しポインタ20と、フィルタ係数先
頭ポインタ27と、フィルタ係数ポインタ28とから構
成される。
データレジスタ29と、フィルタ係数レジスタ25と、
累算レジスタ30と、リング・メモリ先頭ポインタ17
と、リング・メモリ終端ポインタ18と、書き込みポイ
ンタ19と、読み出しポインタ20と、フィルタ係数先
頭ポインタ27と、フィルタ係数ポインタ28とから構
成される。
【0152】データ処理装置2は、データレジスタ29
と累算レジスタ30だけが、図7の第3の実施の形態と
異なる。データレジスタ29は、2つの64bitレジス
タ(DR(0)、DR(1))からなり、リング・メモ
リ15に記憶された2×4データ分の入力データをロー
ドする。累算レジスタ30は、8つの64bitレジスタ
(AR(0)〜AR(7))からなり、並列演算装置7
による8回の4並列積和演算の中間結果を逐次累算す
る。
と累算レジスタ30だけが、図7の第3の実施の形態と
異なる。データレジスタ29は、2つの64bitレジス
タ(DR(0)、DR(1))からなり、リング・メモ
リ15に記憶された2×4データ分の入力データをロー
ドする。累算レジスタ30は、8つの64bitレジスタ
(AR(0)〜AR(7))からなり、並列演算装置7
による8回の4並列積和演算の中間結果を逐次累算す
る。
【0153】以下、データ処理装置2が行う8つの連続
した積和演算について図面を参照して説明する。図13
に示すように、8つの連続した時刻(時刻4j〜4j+
7)に積和演算する入力データとフィルタ係数との組み
合わせは、先頭の組み合わせを除き、入力データが同一
のものとなる。更に、最初の4時刻(時刻4j〜4j+
3)と残りの4時刻(時刻4j+4〜4j+7)とで
は、太枠で示したように、フィルタ係数が4タップずれ
て同一のものとなる。即ち、図14に示すように、共通
のフィルタ係数を4時刻経過後に使用した積和演算が可
能となる。従って、データ処理装置2は、データレジス
タ29(DR(0)、DR(1))に2×4データ分の
入力データをロードし、フィルタ係数レジスタ25(F
R(0)〜FR(3))に4×4タップ分のフィルタ係
数をロードして、8つの連続した4並列積和演算を行
う。それぞれの積和演算結果は、累算レジスタ30(A
R(0)〜AR(7))にそれぞれ加算され格納され
る。この結果、データ処理装置2は、データレジスタ2
9及びフィルタ係数レジスタ25に入力データ及びフィ
ルタ係数をロードする回数を減らすことができるため、
全体として、処理を高速化することができる。
した積和演算について図面を参照して説明する。図13
に示すように、8つの連続した時刻(時刻4j〜4j+
7)に積和演算する入力データとフィルタ係数との組み
合わせは、先頭の組み合わせを除き、入力データが同一
のものとなる。更に、最初の4時刻(時刻4j〜4j+
3)と残りの4時刻(時刻4j+4〜4j+7)とで
は、太枠で示したように、フィルタ係数が4タップずれ
て同一のものとなる。即ち、図14に示すように、共通
のフィルタ係数を4時刻経過後に使用した積和演算が可
能となる。従って、データ処理装置2は、データレジス
タ29(DR(0)、DR(1))に2×4データ分の
入力データをロードし、フィルタ係数レジスタ25(F
R(0)〜FR(3))に4×4タップ分のフィルタ係
数をロードして、8つの連続した4並列積和演算を行
う。それぞれの積和演算結果は、累算レジスタ30(A
R(0)〜AR(7))にそれぞれ加算され格納され
る。この結果、データ処理装置2は、データレジスタ2
9及びフィルタ係数レジスタ25に入力データ及びフィ
ルタ係数をロードする回数を減らすことができるため、
全体として、処理を高速化することができる。
【0154】以下、フィルタ係数がフィルタ係数記憶部
23に配置されている状態におけるデータ処理装置2の
フィルタ計算の動作について図15を参照して説明す
る。図15は、データ処理装置2のフィルタ計算の動作
を示すフローチャートである。
23に配置されている状態におけるデータ処理装置2の
フィルタ計算の動作について図15を参照して説明す
る。図15は、データ処理装置2のフィルタ計算の動作
を示すフローチャートである。
【0155】まず、データ処理装置2は、累算レジスタ
30の8つのレジスタ(AR(0)〜AR(7))の値
をゼロクリアする(ステップS503)。
30の8つのレジスタ(AR(0)〜AR(7))の値
をゼロクリアする(ステップS503)。
【0156】データ処理装置2は、読み出しポインタ2
0及びフィルタ係数ポインタ28に初期値を設定する
(ステップS504、ステップS505)。
0及びフィルタ係数ポインタ28に初期値を設定する
(ステップS504、ステップS505)。
【0157】次に、データ処理装置2は、8つの連続し
た時刻の積和演算において、入力データが共通とならな
い先頭の積和演算を処理する(先頭4タップ処理S50
0)。
た時刻の積和演算において、入力データが共通とならな
い先頭の積和演算を処理する(先頭4タップ処理S50
0)。
【0158】データ処理装置2は、フィルタ係数記憶部
23に記憶されているフィルタ係数から、フィルタ係数
ポインタ28の示すアドレスに記憶されている4×4タ
ップ分のフィルタ係数をフィルタ係数レジスタ26(F
R(0)〜FR(3))にロードする(ステップS50
6)。なお、FR(0)〜FR(3)にロードしたフィ
ルタ係数は、それぞれ4時刻後の積和演算にて再度使用
されるため、1度ロードすれば8つの連続する時刻の積
和演算で使用可能となる。
23に記憶されているフィルタ係数から、フィルタ係数
ポインタ28の示すアドレスに記憶されている4×4タ
ップ分のフィルタ係数をフィルタ係数レジスタ26(F
R(0)〜FR(3))にロードする(ステップS50
6)。なお、FR(0)〜FR(3)にロードしたフィ
ルタ係数は、それぞれ4時刻後の積和演算にて再度使用
されるため、1度ロードすれば8つの連続する時刻の積
和演算で使用可能となる。
【0159】データ処理装置2は、入力装置1から取得
した入力データを書き込みポインタ19の示すリング・
メモリ15のアドレスにライトして記憶する(ステップ
S507)。
した入力データを書き込みポインタ19の示すリング・
メモリ15のアドレスにライトして記憶する(ステップ
S507)。
【0160】データ処理装置2は、時刻nに、リング・
メモリ15に記憶されている入力データから、読み出し
ポインタ20の示すアドレスに記憶されている4データ
分の入力データをデータレジスタ29のDR(1)にロ
ードする(ステップS508)。
メモリ15に記憶されている入力データから、読み出し
ポインタ20の示すアドレスに記憶されている4データ
分の入力データをデータレジスタ29のDR(1)にロ
ードする(ステップS508)。
【0161】並列演算装置7は、データレジスタ29
(DR(1))にロードした4データ分の入力データ
と、フィルタ係数レジスタ26(FR(0))にロード
した4タップ分のフィルタ係数とで4並列積和演算を行
い、演算結果を累算レジスタ30(AR(0))に格納
する(ステップS509)。
(DR(1))にロードした4データ分の入力データ
と、フィルタ係数レジスタ26(FR(0))にロード
した4タップ分のフィルタ係数とで4並列積和演算を行
い、演算結果を累算レジスタ30(AR(0))に格納
する(ステップS509)。
【0162】並列演算装置2は、同様に、時刻n+1、
時刻n+2、時刻n+3の最初の積和演算を行う(ステ
ップS510〜S512)。なお、並列演算装置7は、
時刻n+1のときに、累算レジスタ26(AR(1))
に演算結果を格納し、時刻n+2のときに、AR(2)
に演算結果を格納し、時刻n+3のときに、AR(3)
に演算結果を格納する。
時刻n+2、時刻n+3の最初の積和演算を行う(ステ
ップS510〜S512)。なお、並列演算装置7は、
時刻n+1のときに、累算レジスタ26(AR(1))
に演算結果を格納し、時刻n+2のときに、AR(2)
に演算結果を格納し、時刻n+3のときに、AR(3)
に演算結果を格納する。
【0163】データ処理装置2は、次の4時刻分の積和
演算のために、書き込みポインタ19に8(4データ
分)を加算し、加算後の値で更新する(ステップS51
3)。
演算のために、書き込みポインタ19に8(4データ
分)を加算し、加算後の値で更新する(ステップS51
3)。
【0164】データ処理装置2は、更新後の書き込みポ
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS514)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を書き込みポインタ19の値に代入して更新する(ス
テップS515)。
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS514)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を書き込みポインタ19の値に代入して更新する(ス
テップS515)。
【0165】データ処理装置2は、読み出しポインタ2
0に書き込みポインタ19の値を設定する(ステップS
516)。
0に書き込みポインタ19の値を設定する(ステップS
516)。
【0166】データ処理装置2は、入力装置1から取得
した入力データを書き込みポインタ19の示すリング・
メモリ15のアドレスにライトして記憶する。時刻n+
4に、データ処理装置2は、リング・メモリ15に記憶
されている入力データから、読み出しポインタ20の示
すアドレスに記憶されている4データ分の入力データを
データレジスタ29のDR(0)にロードする(ステッ
プS517)。なお、DR(0)にロードした入力デー
タは、後述する積和計算ループ501に時刻n〜時刻n
+3用のデータとして使用されるものである。ここで先
にロードすることにより、以降の時刻n+4〜時刻n+
7の入力データによってリング・メモリ15の内容が上
書きされても積和演算が可能となる。
した入力データを書き込みポインタ19の示すリング・
メモリ15のアドレスにライトして記憶する。時刻n+
4に、データ処理装置2は、リング・メモリ15に記憶
されている入力データから、読み出しポインタ20の示
すアドレスに記憶されている4データ分の入力データを
データレジスタ29のDR(0)にロードする(ステッ
プS517)。なお、DR(0)にロードした入力デー
タは、後述する積和計算ループ501に時刻n〜時刻n
+3用のデータとして使用されるものである。ここで先
にロードすることにより、以降の時刻n+4〜時刻n+
7の入力データによってリング・メモリ15の内容が上
書きされても積和演算が可能となる。
【0167】データ処理装置2は、時刻n+4に、リン
グ・メモリ15から、読み出しポインタ20の示すアド
レスに記憶されている4データ分の入力データをDR
(1)にロードし、FR(0)にロードしたフィルタ係
数とで4並列積和演算を行い、演算結果をAR(4)に
格納する(ステップS518)。
グ・メモリ15から、読み出しポインタ20の示すアド
レスに記憶されている4データ分の入力データをDR
(1)にロードし、FR(0)にロードしたフィルタ係
数とで4並列積和演算を行い、演算結果をAR(4)に
格納する(ステップS518)。
【0168】データ処理装置2は、同様に、時刻n+
5、時刻n+6、時刻n+7の最初の積和演算を行う
(ステップS518〜S521)。なお、並列演算装置
7は、時刻n+5のときに、累算レジスタ26(AR
(5))に演算結果を格納し、時刻n+6のときに、A
R(6)に演算結果を格納し、時刻n+7のときに、A
R(7)に演算結果を格納する。
5、時刻n+6、時刻n+7の最初の積和演算を行う
(ステップS518〜S521)。なお、並列演算装置
7は、時刻n+5のときに、累算レジスタ26(AR
(5))に演算結果を格納し、時刻n+6のときに、A
R(6)に演算結果を格納し、時刻n+7のときに、A
R(7)に演算結果を格納する。
【0169】データ処理装置2は、次の4×4タップ分
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ28に32(4×4タ
ップ分)を加算し、加算後の値で更新する(ステップS
522)。
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ28に32(4×4タ
ップ分)を加算し、加算後の値で更新する(ステップS
522)。
【0170】データ処理装置2は、全フィルタタップ分
の処理が終了したか否かの判別を行なう(ステップS5
23)。データ処理装置2は、全フィルタタップ分の処
理が終了したと判別した場合、後述するステップS53
3に進んで、累算レジスタ30に記憶された8つの16
bit数の総和を算出する。
の処理が終了したか否かの判別を行なう(ステップS5
23)。データ処理装置2は、全フィルタタップ分の処
理が終了したと判別した場合、後述するステップS53
3に進んで、累算レジスタ30に記憶された8つの16
bit数の総和を算出する。
【0171】一方、データ処理装置2は、全フィルタタ
ップ分の処理が終了していないと判別した場合、フィル
タ係数記憶部23に記憶されているフィルタ係数から、
フィルタ係数ポインタ28の示すアドレスに記憶されて
いる4×4タップ分のフィルタ係数をフィルタ係数レジ
スタ26(FR(0)〜FR(3))にロードする(ス
テップS524)。
ップ分の処理が終了していないと判別した場合、フィル
タ係数記憶部23に記憶されているフィルタ係数から、
フィルタ係数ポインタ28の示すアドレスに記憶されて
いる4×4タップ分のフィルタ係数をフィルタ係数レジ
スタ26(FR(0)〜FR(3))にロードする(ス
テップS524)。
【0172】並列演算装置2は、時刻n、時刻n+1、
時刻n+2、時刻n+3の積和演算を行う(ステップS
525)。即ち、並列演算装置2は、時刻nに、演算結
果をAR(0)に加算して格納し、時刻n+1に、演算
結果をAR(1)に加算して格納し、時刻n+2に、演
算結果をAR(2)に加算して格納し、時刻n+3に、
演算結果をAR(3)に加算して格納する。
時刻n+2、時刻n+3の積和演算を行う(ステップS
525)。即ち、並列演算装置2は、時刻nに、演算結
果をAR(0)に加算して格納し、時刻n+1に、演算
結果をAR(1)に加算して格納し、時刻n+2に、演
算結果をAR(2)に加算して格納し、時刻n+3に、
演算結果をAR(3)に加算して格納する。
【0173】データ処理装置2は、次の4データ分の入
力データをデータレジスタ8にロードするために、読み
出しポインタ20に8(4データ分)を加算し、加算後
の値で更新する(ステップS526)。
力データをデータレジスタ8にロードするために、読み
出しポインタ20に8(4データ分)を加算し、加算後
の値で更新する(ステップS526)。
【0174】データ処理装置2は、更新後の読み出しポ
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS527)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を読み出しポインタ20の値に代入して更新する(ス
テップS528)。
インタ20の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS527)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を読み出しポインタ20の値に代入して更新する(ス
テップS528)。
【0175】データ処理装置2は、リング・メモリ15
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ29のDR(0)にロードする
(ステップS529)。
に記憶されている入力データから、読み出しポインタ2
0の示すアドレスに記憶されている4データ分の入力デ
ータをデータレジスタ29のDR(0)にロードする
(ステップS529)。
【0176】並列演算装置2は、時刻n+4、時刻n+
5、時刻n+6、時刻n+7の積和演算を行う(ステッ
プS530)。即ち、並列演算装置2は、時刻n+4
に、演算結果をAR(4)に加算して格納し、時刻n+
5に、演算結果をAR(5)に加算して格納し、時刻n
+6に、演算結果をAR(6)に加算して格納し、時刻
n+7に、演算結果をAR(7)に加算して格納する。
5、時刻n+6、時刻n+7の積和演算を行う(ステッ
プS530)。即ち、並列演算装置2は、時刻n+4
に、演算結果をAR(4)に加算して格納し、時刻n+
5に、演算結果をAR(5)に加算して格納し、時刻n
+6に、演算結果をAR(6)に加算して格納し、時刻
n+7に、演算結果をAR(7)に加算して格納する。
【0177】データ処理装置2は、次の4×4タップ分
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ22に32(4×4タ
ップ分)を加算し、加算後の値でを更新する(ステップ
S531)。
のフィルタ係数をフィルタ係数レジスタ25にロードす
るために、フィルタ係数ポインタ22に32(4×4タ
ップ分)を加算し、加算後の値でを更新する(ステップ
S531)。
【0178】データ処理装置2は、全フィルタタップ分
の処理が終了したか否かの判別を行う(ステップS53
2)。データ処理装置2は、全フィルタタップ分の処理
が終了していないと判別した場合、ステップS524に
戻って、ステップS524〜ステップS532の処理を
繰り返す(積和計算ループS501)。
の処理が終了したか否かの判別を行う(ステップS53
2)。データ処理装置2は、全フィルタタップ分の処理
が終了していないと判別した場合、ステップS524に
戻って、ステップS524〜ステップS532の処理を
繰り返す(積和計算ループS501)。
【0179】一方、データ処理装置2は、全フィルタタ
ップ分の処理が終了したと判別した場合、累算レジスタ
30(AR(0)〜AR(7))に記憶されたそれぞれ
の4つの16bit数の総和を算出し、フィルタ計算後の
出力データとする(ステップS533)。
ップ分の処理が終了したと判別した場合、累算レジスタ
30(AR(0)〜AR(7))に記憶されたそれぞれ
の4つの16bit数の総和を算出し、フィルタ計算後の
出力データとする(ステップS533)。
【0180】データ処理装置2は、求めた出力データを
出力装置4に順次出力する(ステップS534)。
出力装置4に順次出力する(ステップS534)。
【0181】データ処理装置2は、次の最初の4時刻分
の積和演算のために、書き込みポインタ19に8(4デ
ータ分)を加算し、加算後の値で更新する(ステップS
535)。
の積和演算のために、書き込みポインタ19に8(4デ
ータ分)を加算し、加算後の値で更新する(ステップS
535)。
【0182】データ処理装置2は、更新後の書き込みポ
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS536)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を書き込みポインタ19の値に代入して更新する(ス
テップS537)。
インタ19の値がリング・メモリ終端ポインタ18の値
より大きいか否かを判別し(ステップS536)、大き
いと判別した場合、リング・メモリ先頭ポインタ17の
値を書き込みポインタ19の値に代入して更新する(ス
テップS537)。
【0183】以上説明したように、この第4の実施の形
態に係る発明によれば、データレジスタ29にロードさ
れた入力データを複数の時刻の積和演算に利用すること
に加え、フィルタ係数レジスタ25にロードされたフィ
ルタ係数も複数の時刻の積和演算に使用することによ
り、全体のロード回数を減らし、処理を高速化すること
ができる。また、フィルタ係数レジスタ25に、8つの
連続する時刻用のフィルタ係数を、一度にロードするこ
とにより、全体のロード回数を減らし、処理を高速化す
ることができる。更に、積和計算ループ501にて84
つの連続する時刻の積和演算処理を行なうことにより、
全体のループの数を減らし、処理を高速化することがで
きる。
態に係る発明によれば、データレジスタ29にロードさ
れた入力データを複数の時刻の積和演算に利用すること
に加え、フィルタ係数レジスタ25にロードされたフィ
ルタ係数も複数の時刻の積和演算に使用することによ
り、全体のロード回数を減らし、処理を高速化すること
ができる。また、フィルタ係数レジスタ25に、8つの
連続する時刻用のフィルタ係数を、一度にロードするこ
とにより、全体のロード回数を減らし、処理を高速化す
ることができる。更に、積和計算ループ501にて84
つの連続する時刻の積和演算処理を行なうことにより、
全体のループの数を減らし、処理を高速化することがで
きる。
【0184】上記の第4の実施の形態では、積和計算ル
ープ501内で毎回リング・メモリの終端を行なってい
るが、第2の実施の形態のように、積和ループを2つに
分割してもよい。
ープ501内で毎回リング・メモリの終端を行なってい
るが、第2の実施の形態のように、積和ループを2つに
分割してもよい。
【0185】次に、図面を参照して、この発明の第5の
実施の形態にかかる演算処理装置について説明する。こ
こでは、入力データ、出力データ、フィルタ係数のそれ
ぞれが実部及び虚部を持つ、複素数FIRフィルタ計算
を実行する場合を例に挙げて説明する。複素数FIRフ
ィルタは、数式1に示されたFIRフィルタにおけるx
(n)、y(n)、a(k)を、それぞれ複素数xc
(n)、yc(n)、ac(k)に置き換えたもので、
数式8で表される。
実施の形態にかかる演算処理装置について説明する。こ
こでは、入力データ、出力データ、フィルタ係数のそれ
ぞれが実部及び虚部を持つ、複素数FIRフィルタ計算
を実行する場合を例に挙げて説明する。複素数FIRフ
ィルタは、数式1に示されたFIRフィルタにおけるx
(n)、y(n)、a(k)を、それぞれ複素数xc
(n)、yc(n)、ac(k)に置き換えたもので、
数式8で表される。
【0186】
【数8】 xc(n):時刻nの入力データ(複素数) yc(n):時刻nの出力データ(複素数) n:時刻(n=0、1、2・・・) ac(k):フィルタ係数(複素数)(k=0、1、
2、・・・、M−1) M:フィルタのタップ数(フィルタ長)
2、・・・、M−1) M:フィルタのタップ数(フィルタ長)
【0187】また、複素数xc(n)、yc(n)、a
c(k)は、数式9から数式11で表される。
c(k)は、数式9から数式11で表される。
【0188】
【数9】 xc(n) = xr(n) + xi(n)・j xc(n):時刻nの入力データ(複素数) xr(n):実部 xi(n):虚部 j:虚数単位(j×j=−1)
【0189】
【数10】 yc(n) = yr(n) + yi(n)・j yc(n):時刻nの出力データ(複素数) yr(n):実部 yi(n):虚部 j:虚数単位(j×j=−1)
【0190】
【数11】 ac(k) = ar(k) + ai(k)・j ac(k):フィルタ係数(複素数)(k=0、1、
2、・・・、M−1) ar(n):実部 ai(n):虚部 j:虚数単位(j×j=−1)
2、・・・、M−1) ar(n):実部 ai(n):虚部 j:虚数単位(j×j=−1)
【0191】従って、数式8に示した複素数FIRフィ
ルタは、数式9〜11により変形することができ、数式
12で表される。
ルタは、数式9〜11により変形することができ、数式
12で表される。
【0192】
【数12】 xc(n):時刻nの入力データ(複素数) yc(n):時刻nの出力データ(複素数) ac(k):フィルタ係数(複素数)(k=0、1、
2、・・・、M−1) xr(n)、yr(n)、ar(n):実部 xi(n)、yi(n)、ai(n):虚部 j:虚数単位(j×j=−1)
2、・・・、M−1) xr(n)、yr(n)、ar(n):実部 xi(n)、yi(n)、ai(n):虚部 j:虚数単位(j×j=−1)
【0193】以下、複素数FIRフィルタについて具体
的に説明する。入力データが、xr(0)、xi
(0)、xr(1)、xi(1)、xr(2)、xi
(2)、・・・というように、実部及び虚部が交互に入
力されると仮定する。この場合、数式12に示すよう
に、出力データyc(n)の実部yr(n)は、ar
(0)、−ai(0)、ar(1)、−ai(1)、a
r(2)、−ai(2)、・・・を係数とするタップ数
2MのFIRフィルタにより求めることができる。同様
に、出力データyc(n)の虚部yi(n)は、ai
(0)、ar(0)、ai(1)、ar(1)、ai
(2)、ar(2)、・・・を係数とするタップ数2M
のFIRフィルタにより求めることができる。
的に説明する。入力データが、xr(0)、xi
(0)、xr(1)、xi(1)、xr(2)、xi
(2)、・・・というように、実部及び虚部が交互に入
力されると仮定する。この場合、数式12に示すよう
に、出力データyc(n)の実部yr(n)は、ar
(0)、−ai(0)、ar(1)、−ai(1)、a
r(2)、−ai(2)、・・・を係数とするタップ数
2MのFIRフィルタにより求めることができる。同様
に、出力データyc(n)の虚部yi(n)は、ai
(0)、ar(0)、ai(1)、ar(1)、ai
(2)、ar(2)、・・・を係数とするタップ数2M
のFIRフィルタにより求めることができる。
【0194】複素数FIRフィルタは、入力データにお
ける実部及び虚部の入力と同様に、yr(0)、yi
(0)、yr(1)、yi(1)、yr(2)、yi
(2)、・・・というように実部及び虚部を交互に出力
するために、図16に示すように、実部計算用の係数及
び虚部計算用の係数が、各出力データを算出するのに必
要な演算に対応して、4通りの係数列に交互に配列され
る。すなわち、奇数番目の出力用のフィルタには、実部
計算用の係数となるar(0)、−ai(0)、ar
(1)、−ai(1)、ar(2)、−ai(2)、・
・・が配置される。一方、偶数番目の出力用のフィルタ
には、虚部計算用の係数となるai(0)、ar
(0)、ai(1)、ar(1)、ai(2)、ar
(2)、・・・が配列される。
ける実部及び虚部の入力と同様に、yr(0)、yi
(0)、yr(1)、yi(1)、yr(2)、yi
(2)、・・・というように実部及び虚部を交互に出力
するために、図16に示すように、実部計算用の係数及
び虚部計算用の係数が、各出力データを算出するのに必
要な演算に対応して、4通りの係数列に交互に配列され
る。すなわち、奇数番目の出力用のフィルタには、実部
計算用の係数となるar(0)、−ai(0)、ar
(1)、−ai(1)、ar(2)、−ai(2)、・
・・が配置される。一方、偶数番目の出力用のフィルタ
には、虚部計算用の係数となるai(0)、ar
(0)、ai(1)、ar(1)、ai(2)、ar
(2)、・・・が配列される。
【0195】第5の実施の形態にかかる演算処理装置の
特徴は、各出力データに対して必要となる計算に対応し
て、それぞれ異なる配列となるフィルタ係数使用してフ
ィルタ計算する点にある。従って、第5の実施の形態に
かかる演算処理装置は、図19に示すような従来の構成
となる演算処理装置においても、実現可能である。その
際、フィルタ係数記憶部106は、各出力データに対し
て必要となる計算に対応して、それぞれ異なる配列とな
るフィルタ係数を予め記憶する。すなわち、演算処理装
置は、複素数FIRフィルタを使用してフィルタ計算す
る場合に、前述のように、図16に示すようなフィルタ
係数をフィルタ係数記憶部106に予め記憶される。
特徴は、各出力データに対して必要となる計算に対応し
て、それぞれ異なる配列となるフィルタ係数使用してフ
ィルタ計算する点にある。従って、第5の実施の形態に
かかる演算処理装置は、図19に示すような従来の構成
となる演算処理装置においても、実現可能である。その
際、フィルタ係数記憶部106は、各出力データに対し
て必要となる計算に対応して、それぞれ異なる配列とな
るフィルタ係数を予め記憶する。すなわち、演算処理装
置は、複素数FIRフィルタを使用してフィルタ計算す
る場合に、前述のように、図16に示すようなフィルタ
係数をフィルタ係数記憶部106に予め記憶される。
【0196】以下、図16に示すフィルタ係数につい
て、詳細に説明する。フィルタ係数列CFc(0)は、
1、5、9、・・・、4i+1番目(iは0以上の整
数)の出力の計算に用いられるフィルタ係数であるの
で、実部計算用の係数を格納する。一方、フィルタ係数
列CFc(1)は、2、6、10、・・・、4i+2番
目の出力の計算に用いられるフィルタ係数であるので、
虚部計算用の係数を格納する。フィルタ係数列CFc
(2)には、CFc(0)の各係数を係数2個分ずらし
た係数列が格納される。同様に、フィルタ係数列CFc
(3)には、CFc(1)の各係数を係数2個分ずらし
た係数列が格納される。これは、従来の技術の説明で述
べたように、8の倍数となるアドレスからのロードのほ
うが、8の倍数とならないアドレスからのロードより高
速に実行できるためであり、従来の技術において、図2
6に示すように各係数の位置をずらした4通りの係数列
をフィルタ係数記憶部106に記憶しているのと同様の
効果を持つ。
て、詳細に説明する。フィルタ係数列CFc(0)は、
1、5、9、・・・、4i+1番目(iは0以上の整
数)の出力の計算に用いられるフィルタ係数であるの
で、実部計算用の係数を格納する。一方、フィルタ係数
列CFc(1)は、2、6、10、・・・、4i+2番
目の出力の計算に用いられるフィルタ係数であるので、
虚部計算用の係数を格納する。フィルタ係数列CFc
(2)には、CFc(0)の各係数を係数2個分ずらし
た係数列が格納される。同様に、フィルタ係数列CFc
(3)には、CFc(1)の各係数を係数2個分ずらし
た係数列が格納される。これは、従来の技術の説明で述
べたように、8の倍数となるアドレスからのロードのほ
うが、8の倍数とならないアドレスからのロードより高
速に実行できるためであり、従来の技術において、図2
6に示すように各係数の位置をずらした4通りの係数列
をフィルタ係数記憶部106に記憶しているのと同様の
効果を持つ。
【0197】演算処理装置は、実部及び虚部が交互に入
力される入力データを図28のフローチャートに従っ
て、順次フィルタ計算を行い実部及び虚部からなる出力
データを算出する。このように、第5の実施の形態にか
かる演算処理装置は、装置の構成及び、データ処理装置
の動作の流れを変えなくとも、フィルタ係数の配列を例
えば、複素数FIRフィルタの配列とするだけで、必要
となる実部及び虚部からなる出力データを算出すること
ができる。
力される入力データを図28のフローチャートに従っ
て、順次フィルタ計算を行い実部及び虚部からなる出力
データを算出する。このように、第5の実施の形態にか
かる演算処理装置は、装置の構成及び、データ処理装置
の動作の流れを変えなくとも、フィルタ係数の配列を例
えば、複素数FIRフィルタの配列とするだけで、必要
となる実部及び虚部からなる出力データを算出すること
ができる。
【0198】以上説明したように、この第5の実施の形
態に係る発明によれば、フィルタ係数記憶部106にあ
らかじめ記憶させるフィルタ係数の配置を、各出力デー
タに対して必要な計算に対応してそれぞれ異なった並び
のフィルタ係数とすることにより、各出力データごとに
必要とされるフィルタ計算を実行することができる。
態に係る発明によれば、フィルタ係数記憶部106にあ
らかじめ記憶させるフィルタ係数の配置を、各出力デー
タに対して必要な計算に対応してそれぞれ異なった並び
のフィルタ係数とすることにより、各出力データごとに
必要とされるフィルタ計算を実行することができる。
【0199】上記の第5の実施の形態では、演算処理装
置の構成、データ処理装置の動作の流れは従来の技術と
同一であるとして説明したが、これらは従来の技術と同
一である必要はなく、例えば本発明の第1の実施の形態
で述べた演算処理装置の構成、データ処理装置の動作の
流れを用いることもできる。その場合の、フィルタ係数
記憶部16に格納するフィルタ係数の配置は、本発明の
第1の実施の形態で述べたように、論理的に先頭と終端
がつながった環状構造とする。
置の構成、データ処理装置の動作の流れは従来の技術と
同一であるとして説明したが、これらは従来の技術と同
一である必要はなく、例えば本発明の第1の実施の形態
で述べた演算処理装置の構成、データ処理装置の動作の
流れを用いることもできる。その場合の、フィルタ係数
記憶部16に格納するフィルタ係数の配置は、本発明の
第1の実施の形態で述べたように、論理的に先頭と終端
がつながった環状構造とする。
【0200】上記の実施の形態では、64bitのALU
からなる並列演算装置7を使用し、分割ALU方式を用
いて4つの16bit積和演算を並列に実行する4並列積
和演算にてフィルタ計算を行ったが、ALUのbit数及
び分割数等は任意である。例えば、32bitのALUを
使用し、2並列積和演算にてフィルタ計算してもよい。
また、4つの16bit積和演算の結果を2個の32bit数
値で得るようなALUを使用してもよい。なお、ALU
のbit数を変更した場合、それに伴って各レジスタのbit
数も変更するものとする。
からなる並列演算装置7を使用し、分割ALU方式を用
いて4つの16bit積和演算を並列に実行する4並列積
和演算にてフィルタ計算を行ったが、ALUのbit数及
び分割数等は任意である。例えば、32bitのALUを
使用し、2並列積和演算にてフィルタ計算してもよい。
また、4つの16bit積和演算の結果を2個の32bit数
値で得るようなALUを使用してもよい。なお、ALU
のbit数を変更した場合、それに伴って各レジスタのbit
数も変更するものとする。
【0201】また、上記の実施の形態では、データ処理
装置2において、8の倍数のアドレスのメモリ(リング
・メモリ15等)からレジスタ(データレジスタ8等)
へのロードを高速に実行した場合について説明したが、
このロードアドレスは任意である。例えば、4の倍数の
アドレスのメモリからレジスタに高速にロードしてもよ
い。なお、ロードアドレスの変更した場合、それに伴っ
てメモリ(リング・メモリ15等)に記憶するデータの
配列も変更するものとする。
装置2において、8の倍数のアドレスのメモリ(リング
・メモリ15等)からレジスタ(データレジスタ8等)
へのロードを高速に実行した場合について説明したが、
このロードアドレスは任意である。例えば、4の倍数の
アドレスのメモリからレジスタに高速にロードしてもよ
い。なお、ロードアドレスの変更した場合、それに伴っ
てメモリ(リング・メモリ15等)に記憶するデータの
配列も変更するものとする。
【0202】なお、この発明の演算処理装置は、専用の
システムによらず、通常のコンピュータシステムを用い
て実現可能である。例えば、コンピュータに上述の動作
を実行するためのプログラムを格納した媒体(フロッピ
ーディスク、CD−ROM等)から該プログラムをイン
ストールすることにより、上述の処理を実行する演算処
理装置を構成することができる。
システムによらず、通常のコンピュータシステムを用い
て実現可能である。例えば、コンピュータに上述の動作
を実行するためのプログラムを格納した媒体(フロッピ
ーディスク、CD−ROM等)から該プログラムをイン
ストールすることにより、上述の処理を実行する演算処
理装置を構成することができる。
【0203】また、コンピュータにプログラムを供給す
るための媒体は、通信媒体(通信回線、通信ネットワー
ク、通信システムのように、一時的に且つ流動的にプロ
グラムを保持する媒体)でも良い。例えば、通信ネット
ワークの掲示板(BBS)に該プログラムを掲示し、こ
れをネットワークを介して配信してもよい。そして、こ
のプログラムを起動し、OSの制御下で、他のアプリケ
ーションプログラムと同様に実行することにより、上述
の処理を実行することができる。
るための媒体は、通信媒体(通信回線、通信ネットワー
ク、通信システムのように、一時的に且つ流動的にプロ
グラムを保持する媒体)でも良い。例えば、通信ネット
ワークの掲示板(BBS)に該プログラムを掲示し、こ
れをネットワークを介して配信してもよい。そして、こ
のプログラムを起動し、OSの制御下で、他のアプリケ
ーションプログラムと同様に実行することにより、上述
の処理を実行することができる。
【0204】
【発明の効果】以上説明したように、分割ALU方式の
並列演算処理を利用した演算処理装置において、メモリ
を効率よく利用し、高速に演算処理を実行することがで
きる。
並列演算処理を利用した演算処理装置において、メモリ
を効率よく利用し、高速に演算処理を実行することがで
きる。
【図1】この発明の第1の実施の形態にかかる演算処理
装置の構成を示すブロック図である。
装置の構成を示すブロック図である。
【図2】リング・メモリ15の入力データの配列を説明
する模式図である。
する模式図である。
【図3】フィルタ係数記憶部16のフィルタ係数の配列
を説明する模式図である。
を説明する模式図である。
【図4】リング・メモリ15の入力データとフィルタ係
数記憶部16のフィルタ係数の配列を説明する模式図で
ある。
数記憶部16のフィルタ係数の配列を説明する模式図で
ある。
【図5】この発明の第1の実施の形態にかかる演算処理
装置のフィルタ計算処理を説明するフローチャートであ
る。
装置のフィルタ計算処理を説明するフローチャートであ
る。
【図6】この発明の第2の実施の形態にかかる演算処理
装置のフィルタ計算処理を説明するフローチャートであ
る。
装置のフィルタ計算処理を説明するフローチャートであ
る。
【図7】この発明の第3の実施の形態にかかる演算処理
装置の構成を示すブロック図である。
装置の構成を示すブロック図である。
【図8】フィルタ係数記憶部23のフィルタ係数の配列
を説明する模式図である。
を説明する模式図である。
【図9】リング・メモリ15の入力データとフィルタ係
数記憶部23のフィルタ係数の配列を説明する模式図で
ある。
数記憶部23のフィルタ係数の配列を説明する模式図で
ある。
【図10】入力データとフィルタ係数との積和演算を説
明する模式図である。
明する模式図である。
【図11】この発明の第3の実施の形態にかかる演算処
理装置のフィルタ計算処理を説明するフローチャートで
ある。
理装置のフィルタ計算処理を説明するフローチャートで
ある。
【図12】この発明の第4の実施の形態にかかる演算処
理装置の構成を示すブロック図である。
理装置の構成を示すブロック図である。
【図13】リング・メモリ15の入力データとフィルタ
係数記憶部23のフィルタ係数の配列を説明する模式図
である。
係数記憶部23のフィルタ係数の配列を説明する模式図
である。
【図14】入力データとフィルタ係数との積和演算を説
明する模式図である。
明する模式図である。
【図15】この発明の第4の実施の形態にかかる演算処
理装置のフィルタ計算処理を説明するフローチャートで
ある。
理装置のフィルタ計算処理を説明するフローチャートで
ある。
【図16】この発明の第5の実施の形態にかかる演算処
理装置のフィルタ係数記憶部に記憶されるフィルタ係数
の一例を示す模式図である。
理装置のフィルタ係数記憶部に記憶されるフィルタ係数
の一例を示す模式図である。
【図17】分割ALU方式の並列処理を説明する模式図
である。
である。
【図18】フィルタ係数と入力データの組み合わせを説
明する模式図である。
明する模式図である。
【図19】従来の演算処理装置の構成を示すブロック図
である。
である。
【図20】入力データ記憶部105の入力データの配列
を説明する模式図である。
を説明する模式図である。
【図21】分割ALU方式の4並列積和演算を説明する
模式図である。
模式図である。
【図22】入力データとフィルタ係数との組み合わせを
説明する模式図である。
説明する模式図である。
【図23】データレジスタ108及びフィルタ係数レジ
スタ109のデータのロードを説明する模式図である。
スタ109のデータのロードを説明する模式図である。
【図24】フィルタ係数記憶部106に記憶されたフィ
ルタ係数の合計が4の倍数でなかった場合におけるフィ
ルタ係数の端数部を説明する模式図である。
ルタ係数の合計が4の倍数でなかった場合におけるフィ
ルタ係数の端数部を説明する模式図である。
【図25】データレジスタ108の時刻毎入力データを
ロードする位置が変化する様子を説明する模式図であ
る。
ロードする位置が変化する様子を説明する模式図であ
る。
【図26】フィルタ係数記憶部16のフィルタ係数の配
列を説明する模式図である。
列を説明する模式図である。
【図27】入力データとフィルタ係数との組み合わせを
説明する模式図である。
説明する模式図である。
【図28】従来の演算処理装置のフィルタ計算処理を説
明するフローチャートである。
明するフローチャートである。
1 入力装置 2 データ処理装置 3 記憶装置 4 出力装置 7 並列演算処理装置 8 データレジスタ 9 フィルタ係数レジスタ 10 累算レジスタ 15 リング・メモリ 16 フィルタ係数記憶部 17 リング・メモリ先頭ポインタ 18 リング・メモリ終端ポインタ 19 書き込みポインタ 20 読み出しポインタ 21 フィルタ係数先頭ポインタ 22 フィルタ係数ポインタ 23 フィルタ係数記憶部 25 フィルタ係数レジスタ 26 累算レジスタ 27 フィルタ係数先頭ポインタ 28 フィルタ係数ポインタ 29 データレジスタ 30 累算レジスタ 101 入力装置 102 データ処理装置 103 記憶装置 104 出力装置 107 並列演算処理装置 108 データレジスタ 109 フィルタ係数レジスタ 110 累算レジスタ 111 リング・メモリ 112 フィルタ係数記憶部 113 リング・メモリ先頭ポインタ 114 リング・メモリ終端ポインタ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/00 G06F 17/10 H03H 17/02 635
Claims (12)
- 【請求項1】分割ALU(Arithmetic and Logic Uni
t)方式のALUを用いた並列演算処理にて、入力デー
タをフィルタリングするために、入力データとフィルタ
係数との演算を並列に実行する並列演算手段を備えた演
算処理装置であって、 入力データを論理的に先頭と終端とがつながれた環状構
造となる記憶領域に順次記憶する入力データ記憶手段
と、 前記入力データ記憶手段に記憶された各入力データと1
対1に対応して配列されたフィルタ係数が記憶領域に満
たされて記憶されたフィルタ係数記憶手段と、 前記並列演算手段が並列演算処理を行うために必要とな
る予め定められたデータ量の入力データを前記入力デー
タ記憶手段から読み込んで一時記憶する入力データ一時
記憶手段と、 前記並列演算手段が並列演算処理を行うために必要とな
る予め定められたデータ量のフィルタ係数を前記フィル
タ係数記憶手段から読み込んで一時記憶するフィルタ係
数一時記憶手段と、を備え、 前記並列演算手段は、前記入力データ一時記憶手段に読
み込まれた入力データと前記フィルタ係数一時記憶手段
に読み込まれたフィルタ係数とを積和演算し、入力デー
タをフィルタリングする、 ことを特徴とする演算処理装置。 - 【請求項2】前記入力データ記憶手段は、前記入力デー
タ一時記憶手段が入力データの読み込みを開始する予め
決められた開始位置に合わせて入力データを配列し、 前記フィルタ係数記憶手段は、前記フィルタ係数一時記
憶手段がフィルタ係数の読み込みを開始する予め決めら
れた開始位置に合わせて、論理的に先頭と終端とがつな
がれた環状構造となる記憶領域にフィルタ係数を配列す
る、 ことを特徴とする請求項1に記載の演算処理装置。 - 【請求項3】分割ALU方式のALUを用いた並列演算
処理にて、入力データをフィルタリングするために、入
力データとフィルタ係数との演算を並列に実行する並列
演算手段を備えた演算処理装置であって、 入力データを論理的に先頭と終端とがつながれた環状構
造となる記憶領域に順次記憶する入力データ記憶手段
と、 前記入力データ記憶手段に記憶された各入力データと1
対n(nは、2以上の自然数)に対応して配列されたフ
ィルタ係数が記憶領域に満たされて記憶されたフィルタ
係数記憶手段と、 前記並列演算手段が並列演算処理を行うために、予め定
められたデータ量となる1列の入力データ列を前記入力
データ記憶手段から読み込んで一時記憶する入力データ
一時記憶手段と、 前記並列演算手段が並列演算処理を行うために、前記入
力データ一時記憶手段に一時記憶された1列の入力デー
タ列のn倍のデータ量となるn列のフィルタ係数列を前
記フィルタ係数記憶手段から読み込んで一時記憶するフ
ィルタ係数一時記憶手段と、を備え、 前記並列演算手段は、前記入力データ一時記憶手段に読
み込まれた1列の入力データ列と前記フィルタ係数一時
記憶手段に読み込まれたn列のフィルタ係数列とを予め
定められた順番に積和演算し、入力データをフィルタリ
ングする、 ことを特徴とする演算処理装置。 - 【請求項4】前記フィルタ係数一時記憶手段は、前記入
力データ一時記憶手段が1列の入力データ列をm(m
は、2以上の自然数)回読み込む間に、n列のフィルタ
係数列を1回読み込む、 ことを特徴とする請求項3に記載の演算処理装置。 - 【請求項5】分割ALU方式のALUを用いた並列演算
処理にて、入力データをフィルタリングするために、入
力データとフィルタ係数との演算を並列に実行する並列
演算手段を備えた演算処理装置であって、 入力データを記憶領域に順次記憶する入力データ記憶手
段と、 前記入力データ記憶手段に記憶された各入力データと、
各入力データから出力データを算出するのに必要となる
演算とに対応して配列されたフィルタ係数が記憶領域に
満たされて記憶されたフィルタ係数記憶手段と、 前記並列演算手段が並列演算処理を行うために必要とな
る予め定められたデータ量の入力データを前記入力デー
タ記憶手段から読み込んで一時記憶する入力データ一時
記憶手段と、 前記並列演算手段が並列演算処理を行うために必要とな
る予め定められたデータ量のフィルタ係数を前記フィル
タ係数記憶手段から読み込んで一時記憶するフィルタ係
数一時記憶手段と、を備え、 前記並列演算手段は、前記入力データ一時記憶手段に読
み込まれた入力データと前記フィルタ係数一時記憶手段
に読み込まれたフィルタ係数とを積和演算し、入力デー
タをフィルタリングする、 ことを特徴とする演算処理装置。 - 【請求項6】分割ALU方式のALUを用いた並列演算
処理にて、入力データをフィルタリングするために、入
力データとフィルタ係数との演算を並列に実行する並列
演算ステップを備えたフィルタ計算方法であって、 入力データを論理的に先頭と終端とがつながれた環状構
造となる記憶領域に順次記憶する入力データ記憶ステッ
プと、 前記並列演算ステップにて並列演算処理を行うために必
要となる予め定められたデータ量の入力データを、前記
入力データ記憶ステップにより記憶された記憶領域から
読み込んで一時記憶する入力データ一時記憶ステップ
と、 前記並列演算ステップにて並列演算処理を行うために必
要となる予め定められたデータ量のフィルタ係数を、前
記入力データ記憶ステップにより記憶された各入力デー
タと1対1に対応して配列されたフィルタ係数が満たさ
れて記憶された記憶領域から読み込んで一時記憶するフ
ィルタ係数一時記憶ステップと、を備え、 前記並列演算ステップは、前記入力データ一時記憶ステ
ップにて入力データ一時記憶領域に読み込まれた入力デ
ータと前記フィルタ係数一時記憶ステップにてフィルタ
係数一時記憶領域に読み込まれたフィルタ係数とを積和
演算し、入力データをフィルタリングする、 ことを特徴とするフィルタ計算方法。 - 【請求項7】前記並列演算ステップは、前記入力データ
一時記憶ステップにて入力データ一時記憶領域に読み込
まれた入力データが、前記記憶領域の読込み開始位置か
ら記憶領域の終端位置までの間に記憶されていた場合
と、前記記憶領域の先頭位置から読込み開始位置までの
間に記憶されていた場合とに分けて前記フィルタ係数一
時記憶ステップにてフィルタ係数一時記憶領域に読み込
まれたフィルタ係数と積和演算し、入力データをフィル
タリングする、 ことを特徴とする請求項6に記載のフィルタ計算方法。 - 【請求項8】分割ALU方式のALUを用いた並列演算
処理にて、入力データをフィルタリングするために、入
力データとフィルタ係数との演算を並列に実行する並列
演算ステップを備えたフィルタ計算方法であって、 入力データを論理的に先頭と終端とがつながれた環状構
造となる記憶領域に順次記憶する入力データ記憶ステッ
プと、 前記並列演算ステップにて並列演算処理を行うために、
予め定められたデータ量となる1列の入力データ列を、
前記入力データ記憶ステップにて記憶された記憶領域か
ら読み込んで一時記憶する入力データ一時記憶ステップ
と、 前記並列演算ステップにて並列演算処理を行うために、
前記入力データ一時記憶ステップに一時記憶された1列
の入力データ列のn倍のデータ量となるn列のフィルタ
係数列を、前記入力データ記憶ステップにより記憶され
た各入力データと1対nに対応して配列されたフィルタ
係数が満たされて記憶された記憶領域から読み込んで一
時記憶するフィルタ係数一時記憶ステップと、を備え、 前記並列演算ステップは、前記入力データ一時記憶ステ
ップにて入力データ一時記憶領域に読み込まれた1列の
入力データ列と前記フィルタ係数一時記憶ステップにて
フィルタ係数一時記憶領域に読み込まれたn列のフィル
タ係数列とを予め定められた順番に積和演算する、 ことを特徴とするフィルタ計算方法。 - 【請求項9】分割ALU方式のALUを用いた並列演算
処理にて、入力データをフィルタリングするために、入
力データとフィルタ係数との演算を並列に実行する並列
演算ステップを備えたフィルタ計算方法であって、 入力データを記憶領域に順次記憶する入力データ記憶ス
テップと、 前記並列演算ステップにて並列演算処理を行うために必
要となる予め定められたデータ量の入力データを、前記
入力データ記憶ステップにより記憶された記憶領域から
読み込んで一時記憶する入力データ一時記憶ステップ
と、 前記並列演算ステップにて並列演算処理を行うために必
要となる予め定められたデータ量のフィルタ係数を、前
記入力データ記憶ステップにより記憶された各入力デー
タと、各入力データから出力データを算出するのに必要
となる演算とに対応して配列されたフィルタ係数が満た
されて記憶された記憶領域から読み込んで一時記憶する
フィルタ係数一時記憶ステップと、を備え、 前記並列演算ステップは、前記入力データ一時記憶ステ
ップにて入力データ一時記憶領域に読み込まれた入力デ
ータと前記フィルタ係数一時記憶ステップにてフィルタ
係数一時記憶領域に読み込まれたフィルタ係数とを積和
演算し、入力データをフィルタリングする、 ことを特徴とするフィルタ計算方法。 - 【請求項10】コンピュータを演算処理装置として機能
させるプログラムを記録するコンピュータ読み取り可能
な記録媒体であって、 該コンピュータを、入力データを論理的に先頭と終端と
がつながれた環状構造となる記憶領域に順次記憶する入
力データ記憶手段と、前記入力データ記憶手段に記憶さ
れた各入力データと1対1に対応して配列されたフィル
タ係数が記憶領域に満たされて記憶されたフィルタ係数
記憶手段と、前記並列演算手段が並列演算処理を行うた
めに、予め定められたデータ量の入力データを前記入力
データ記憶手段から読み込んで一時記憶する入力データ
一時記憶手段と、前記並列演算手段が並列演算処理を行
うために、予め定められたデータ量のフィルタ係数を前
記フィルタ係数記憶手段から読み込んで一時記憶するフ
ィルタ係数一時記憶手段と、前記入力データ一時記憶手
段に読み込まれた入力データと前記フィルタ係数一時記
憶手段に読み込まれたフィルタ係数とを入力データをフ
ィルタリングするために、分割ALU方式のALUを用
いた並列演算処理にて積和演算を並列に実行する並列演
算手段として機能させるプログラムを記録したコンピュ
ータ読み取り可能な記録媒体。 - 【請求項11】コンピュータを演算処理装置として機能
させるプログラムを記録するコンピュータ読み取り可能
な記録媒体であって、 該コンピュータを、入力データを論理的に先頭と終端と
がつながれた環状構造となる記憶領域に順次記憶する入
力データ記憶手段と、前記入力データ記憶手段に記憶さ
れた各入力データと1対n(nは、2以上の自然数)に
対応して配列されたフィルタ係数が記憶領域に満たされ
て記憶されたフィルタ係数記憶手段と、前記並列演算手
段が並列演算処理を行うために、予め定められたデータ
量となる1列の入力データ列を前記入力データ記憶手段
から読み込んで一時記憶する入力データ一時記憶手段
と、前記並列演算手段が並列演算処理を行うために、前
記入力データ一時記憶手段に一時記憶された1列の入力
データ列のn倍のデータ量となるn列のフィルタ係数列
を前記フィルタ係数記憶手段から読み込んで一時記憶す
るフィルタ係数一時記憶手段と、前記入力データ一時記
憶手段に読み込まれた1列の入力データ列と前記フィル
タ係数一時記憶手段に読み込まれたn列のフィルタ係数
列とを入力データをフィルタリングするために、分割A
LU方式のALUを用いた並列演算処理にて予め定めら
れた順番の積和演算を並列に実行する並列演算手段とし
て機能させるプログラムを記録したコンピュータ読み取
り可能な記録媒体。 - 【請求項12】コンピュータを演算処理装置として機能
させるプログラムを記録するコンピュータ読み取り可能
な記録媒体であって、 該コンピュータを、入力データを記憶領域に順次記憶す
る入力データ記憶手段と、前記入力データ記憶手段に記
憶された各入力データと、各入力データから出力データ
を算出するのに必要となる演算とに対応して配列された
フィルタ係数が記憶領域に満たされて記憶されたフィル
タ係数記憶手段と、前記並列演算手段が並列演算処理を
行うために、予め定められたデータ量の入力データを前
記入力データ記憶手段から読み込んで一時記憶する入力
データ一時記憶手段と、前記並列演算手段が並列演算処
理を行うために、予め定められたデータ量のフィルタ係
数を前記フィルタ係数記憶手段から読み込んで一時記憶
するフィルタ係数一時記憶手段と、前記入力データ一時
記憶手段に読み込まれた入力データと前記フィルタ係数
一時記憶手段に読み込まれたフィルタ係数とを入力デー
タをフィルタリングするために、分割ALU方式のAL
Uを用いた並列演算処理にて積和演算を並列に実行する
並列演算手段として機能させるプログラムを記録したコ
ンピュータ読み取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12451498A JP3324501B2 (ja) | 1998-02-26 | 1998-05-07 | 分割alu方式による並列演算を利用した演算処理装置、フィルタ計算方法及び記録媒体 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4485498 | 1998-02-26 | ||
| JP10-44854 | 1998-02-26 | ||
| JP12451498A JP3324501B2 (ja) | 1998-02-26 | 1998-05-07 | 分割alu方式による並列演算を利用した演算処理装置、フィルタ計算方法及び記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11312075A JPH11312075A (ja) | 1999-11-09 |
| JP3324501B2 true JP3324501B2 (ja) | 2002-09-17 |
Family
ID=26384824
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12451498A Expired - Fee Related JP3324501B2 (ja) | 1998-02-26 | 1998-05-07 | 分割alu方式による並列演算を利用した演算処理装置、フィルタ計算方法及び記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3324501B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023223385A1 (ja) * | 2022-05-16 | 2023-11-23 | 日本電信電話株式会社 | 信号処理装置及び信号処理方法 |
-
1998
- 1998-05-07 JP JP12451498A patent/JP3324501B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH11312075A (ja) | 1999-11-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20090043836A1 (en) | Method and system for large number multiplication | |
| US6189021B1 (en) | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations | |
| US8909687B2 (en) | Efficient FIR filters | |
| US20050256917A1 (en) | Address generators integrated with parallel FFT for mapping arrays in bit reversed order | |
| CA1223664A (en) | Address computation system for digital processing apparatus | |
| US4797849A (en) | Pipelined vector divide apparatus | |
| JP3324501B2 (ja) | 分割alu方式による並列演算を利用した演算処理装置、フィルタ計算方法及び記録媒体 | |
| EP0474246A2 (en) | Image signal processor | |
| WO2009042107A2 (en) | Shift-add based parallel multiplication | |
| JP5262248B2 (ja) | 積和演算回路 | |
| JP3579087B2 (ja) | 演算器およびマイクロプロセッサ | |
| EP1197874B1 (en) | Signal processor and product-sum operating device for use therein with rounding function | |
| JP2011186999A (ja) | 浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラム | |
| JP3226823B2 (ja) | 高精度高桁乗算装置 | |
| JP4464380B2 (ja) | デジタルフィルタ | |
| JP4295234B2 (ja) | Fir型デジタルフィルタ | |
| KR100315303B1 (ko) | 디지탈 신호 처리기 | |
| JPS61213926A (ja) | Dsp演算処理方式 | |
| JPS58151644A (ja) | デイジタル演算装置 | |
| JP2001160736A (ja) | デジタルフィルタ回路 | |
| JP2002319844A (ja) | デジタルフィルタおよびその処理方法 | |
| JP3320767B2 (ja) | データ処理装置及びその制御方法 | |
| JPH05738B2 (ja) | ||
| JPH0652215A (ja) | 行列演算プロセッサ | |
| KR100251547B1 (ko) | 디지탈신호처리기(Digital Sgnal Processor) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |