JP3140853B2 - データ駆動型フィルタ装置 - Google Patents

データ駆動型フィルタ装置

Info

Publication number
JP3140853B2
JP3140853B2 JP04209918A JP20991892A JP3140853B2 JP 3140853 B2 JP3140853 B2 JP 3140853B2 JP 04209918 A JP04209918 A JP 04209918A JP 20991892 A JP20991892 A JP 20991892A JP 3140853 B2 JP3140853 B2 JP 3140853B2
Authority
JP
Japan
Prior art keywords
register
data
output
row
stored
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
Application number
JP04209918A
Other languages
English (en)
Other versions
JPH0661788A (ja
Inventor
俊弥 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP04209918A priority Critical patent/JP3140853B2/ja
Publication of JPH0661788A publication Critical patent/JPH0661788A/ja
Priority to US08/416,538 priority patent/US5636150A/en
Application granted granted Critical
Publication of JP3140853B2 publication Critical patent/JP3140853B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はデジタル信号をフィル
タ処理するためのデジタルフィルタに関し、特に、デー
タ駆動方式に従ってデジタル信号のフィルタ処理を行な
うデータ駆動型フィルタ装置に関する。
【0002】
【従来の技術】信号処理の分野においては、正確に所望
の信号処理を実行するために、波形整形、ノイズ成分の
除去および所望の信号成分の抽出などが行なわれる。こ
のような処理のためにはフィルタが用いられる。フィル
タには、受動素子(インダクタンスL、キャパシタCお
よび抵抗R)を用いるLCRフィルタ、演算増幅器およ
び抵抗RならびにキャパシタCを用いる能動フィルタが
ある。このLCRフィルタおよび能動フィルタはアナロ
グ信号をアナログ形態でフィルタ処理しており、アナロ
グフィルタと呼ばれる。
【0003】一方において、映像信号および/または音
声信号などを処理する分野においては、信号処理の精密
化、容易化および高度化などのために、信号はデジタル
形態で処理されることが多い。この場合、アナログ信号
がデジタル信号に変換された後にこのデジタル信号に対
し所望の信号処理が実行される。このようなデジタル信
号処理分野においても、ノイズ成分の除去および所望の
成分の抽出などのためにフィルタ処理が実行される。こ
のフィルタ処理は、デジタル回路を用いてデジタル的に
実行される。このフィルタ処理を行なうデジタル回路は
デジタルフィルタと呼ばれる。
【0004】デジタルフィルタは、基本的には、加減算
器と、1標本化周期(アナログ−デジタル変換されたと
きのサンプリング信号周期:または入力デジタル信号が
与えられる周期)遅延させる遅延素子Dを基本構成要素
として備える。このようなデジタルフィルタは、広く一
般に用いられるようになってきている。
【0005】
【発明が解決しようとする課題】デジタルフィルタを構
成する場合、そのハードウェア構成を固定的に設定した
ならば、アナログフィルタ回路では可能であったフィル
タ係数の変更およびタップ数の変更は容易を行なうこと
ができない。デジタルフィルタにおいては、フィルタ係
数は、乗算器の係数で表わされ、この乗算係数の変更
は、ハードウェア構成が固定された場合変更が困難とな
るからである。また、デジタルフィルタにおいては、タ
ップ数は、遅延回路の段数(または乗算器の数)で決定
される。タップ数を変更するためには、遅延回路の段数
(または乗算器の数)を変更する必要があり、容易には
行なうことができない。
【0006】上述のような固定されたハードウェア構成
を備えるデジタルフィルタの欠点を克服する方法とし
て、以下の2種類の方法が考えられる。
【0007】その1つは、係数(乗算係数)を任意の値
に変更することのできる専用LSIを用いることであ
り、もう1つは、プログラム可能なプロセサを用いるも
のである。
【0008】第1の手法においては、タップ係数(乗算
係数すなわちフィルタ係数)を外部から与える構成が用
いられる。この場合、タップ係数は変更可能であるもの
の、デジタルフィルタ自体の構造は固定されている。F
IR(有限長インパルス応答)フィルタ、IIR(無限
長インパルス応答)フィルタ、または両者を組合わせた
フィルタ構成の場合、他の構成に変更することはできな
い。そのため、その用途が限定されるという欠点が生じ
る。
【0009】第2の方法は、DSP(デジタル信号プロ
セサ)または従来のデータ駆動型プロセサなど信号処理
用プロセサを用いるものである。これらの信号処理用プ
ロセサを用いてデジタルフィルタを構成した場合には、
プログラムによりその処理内容を変更することができ
る。しかしながら、データ処理を行なうためのプログラ
ムには、フィルタ処理そのものの処理を行なう命令以外
の命令が含まれる。プロセサを用いてデジタルフィルタ
を構成した場合、その最小演算命令は、加算、減算、乗
算などの命令であり、このため命令の数が増大する。デ
ータ駆動型プロセサにおいては、あるノードにおいて必
要とされる条件が揃ったときにそのノードが発火する。
各ノードにはそれぞれ演算命令が割当てられる。したが
って、このような単位演算命令を用いてデジタルフィル
タを構成した場合、命令の数が増えるため、応じて等価
的にノードの数が増大し、発火条件の判別、必要データ
の待合わせなどフィルタ処理以外のデータ処理を実行す
る必要があり、このフィルタ処理以外の処理実行時間が
オーバーヘッドとなり、高速でフィルタ処理を行なうこ
とができないという問題が生じる。
【0010】上述のように、専用LSIを用いてデジタ
ルフィルタを構成した場合、そのハードウェア構成は固
定され、プログラム可能ではないため、任意のフィルタ
を構成することができないという欠点がある。
【0011】またプログラム可能なプロセサを用いた場
合にはその命令の内容がフィルタ処理の基本要素となっ
ていないため、命令実行時間によるオーバーヘッドが生
じ、高速でフィルタ処理を行なうことができないという
問題が生じる。
【0012】それゆえ、この発明の目的は、高速でフィ
ルタ処理を行なうことのできるデジタルフィルタ装置を
提供することである。
【0013】この発明の他の目的は、任意のフィルタ構
造を容易に実現することのできるデジタルフィルタ装置
を提供することである。
【0014】
【課題を解決するための手段】この発明に係るデータ駆
動型フィルタ装置は、複数のレジスタを有するレジスタ
ファイルを備える。このレジスタファイルは、データを
格納するデータフィールドと、このデータフィールドに
おけるレジスタを特定する行先情報を格納する行先フィ
ールドとを含む。このレジスタファイルにおける1エン
トリーはデータフィールドのレジスタと行先フィールド
のレジスタとを含む。好ましくは、このレジスタファイ
ルの1エントリーが、フィルタ処理における基本演算命
令に対応する。
【0015】この発明に係るデータ駆動型フィルタ装置
はさらに、外部から与えられる入力データをレジスタフ
ァイルのデータフィールド内の所定のレジスタへ書込む
データ入力手段と、乗算器と加算シフト複合演算器とを
含む演算手段と、レジスタファイル内のデータフィール
ドに含まれるレジスタの内容を読出し、この演算手段へ
与える読出手段と、演算手段の出力をレジスタファイル
のデータフィールド内のレジスタへ書込む書込手段を含
む。この読出手段が読出すレジスタの指定は、プログラ
ム可能である。また、書込手段は、行先フィールド内の
レジスタのプログラム可能な行先情報が示すレジスタへ
データを書込む手段を含む。
【0016】この発明に係るデータ駆動型フィルタ装置
は、さらに、レジスタファイル内の所定のレジスタの内
容を読出して装置外部へ出力する出力手段を備える
【0017】
【作用】演算手段は、フィルタ処理に必要とされる乗算
器と加算シフト複合演算器を含む。この演算手段は、デ
ジタルフィルタの基本ユニットを構成する。デジタルフ
ァイルのデータフィールド内のレジスタの内容は演算手
段へ与えられ、所定の演算が実行される。この演算手段
による演算はフィルタの基本単位の演算である。したが
って、このデータレジスタの読出/書込命令は、フィル
タ処理の基本単位命令となっており、フィルタ処理以外
の命令を実行する必要がなく高速でフィルタ処理を行な
うことができる。
【0018】またデータレジスタの書込/読出先を変更
することによりFIRフィルタおよびIIRフィルタい
ずれをも実現することができるのみならず、所望の構造
のフィルタを構築することができる。
【0019】また、乗算係数(フィルタ係数)をデータ
レジスタ内に保持しておくことにより容易にフィルタ係
数を変更することができ、フィルタ特性の変更を容易に
行なうことができる。
【0020】また、レジスタファイルのエントリーの数
を調整することにより容易にフィルタのタップ数を変更
することができる。
【0021】
【実施例】図1はこの発明の一実施例であるデータ駆動
型フィルタ装置の全体の構成を概略的に示すブロック図
である。図1において、データ駆動型フィルタ装置は、
入力データを受ける入力部20と、複数のレジスタを含
み、処理されるべきデータおよび処理後のデータを格納
するレジスタファイル10と、このレジスタファイル1
0に格納された最終演算結果を読出して装置外部へ出力
する出力部30を含む。
【0022】レジスタファイル10は、その構成は後に
詳細に説明するが、データ駆動型構成を実現するため
に、処理データのみならず、この処理データの書込先を
特定する行先情報を格納するレジスタも備える。すなわ
ち、レジスタファイル10は、処理データを格納するデ
ータフィールドと、このデータフィールド内の特定のレ
ジスタを特定する行先情報を格納する行先フィールドと
を含む。このデータフィールドおよび行先フィールドは
それぞれ複数のレジスタを含む。
【0023】入力部20は、レジスタファイル10の所
定のレジスタ(この所定のレジスタはプログラムにより
指定され、実現すべきフィルタ構造によって異なる)へ
入力データを書込む。入力部20はまた、後に説明する
が、1つの入力データに関連する処理が完了するまで次
のデータの入力を待合わせる機能を備える。
【0024】出力部30は、このレジスタファイル10
の所定のレジスタ(フィルタの最終ユニットに対応する
レジスタ)の内容を読出して装置外部へ出力する。この
構成についても後に詳細に説明する。
【0025】データ駆動型フィルタ装置はさらに、乗算
器1a〜1nを含む第1の演算器群40と、加算シフト
複合演算器2a〜2nを含む第2の演算器群50を含
む。この第1の演算器群40および第2の演算器群50
に含まれる乗算器および加算シフト複合演算器の数は複
数ではなく、1つであってもよい。1個の乗算器1(乗
算器1a〜1nを総称的に示す)と1個の加算シフト複
合演算器2(加算シフト複合演算器2a〜2nを総称的
に示す)で1つの単位フィルタ構造が実現される。この
第1の演算器群40および第2の演算器群50へは、レ
ジスタファイル10のデータレジスタの内容が伝達され
る。処理結果は、この第1の演算器群40および第2の
演算器群50へ与えられたデータと同一エントリーの行
先レジスタの内容が指定するレジスタへ書込まれる。特
に、第1の演算器群40の処理結果が書込まれるレジス
タは予め固定的に設定される。
【0026】レジスタファイル10は、単一代入単一読
出のルールに従ってデータの書込および読出が実行され
る。ここで「単一代入単一読出」のルールとは、一度読
出されたデータは消費され、再び利用されることがない
というルールである。また、このルールでは書込み読出
しが完了するまで行なわれない。ただしこのルールは、
定数データ(フィルタ係数:乗算係数)は除く。すなわ
ち、オーバーライトされたときには、新しいデータが有
効となる。
【0027】図2は、図1に示すレジスタファイルの内
部構成を具体的に示す図である。図2において、レジス
タファイル10は、情報を格納するためのレジスタファ
イルRFと、このレジスタファイルRFのデータ書込お
よび読出を制御する書込/読出制御部RWCを含む。レ
ジスタファイルRFは、データフィールドDAFと、行
先フィールドDEFを含む。データフィールドDAF
は、複数のデータレジスタDARを含み、行先フィール
ドDEFは、複数の行先レジスタDERを含む。図2に
おいて同一行に配置されるレジスタがこのレジスタファ
イルの1エントリーを構成する。データレジスタDAR
のデータが読出されて第1または第2の演算器群へ与え
られたとき同様に関連の行先レジスタDERの内容が読
出され書込/読出制御部RWCへ与えられる。書込/読
出制御部RWCは、第1または第2の演算器群からの出
力データをこの行先レジスタDERからの行先情報に従
って対応のデータレジスタへ書込む。書込/読出制御部
RWCはデータレジスタDARおよび行先レジスタDE
Rそれぞれ独立にその書込/読出を制御することができ
る。
【0028】レジスタファイル10はさらに、この書込
/読出制御部RWCの動作を制御するプログラムコント
ロール部100を含む。プログラムコントロール部10
0は、このフィルタ装置が実現するフィルタ処理内容を
決定するプログラムを格納するプログラムメモリPM
と、このプログラムメモリPMに格納されたプログラム
に従って書込/読出制御部RWCの動作を制御するシー
ケンスコントローラSCを含む。この書込/読出制御部
RWCは、したがってシーケンスコントローラSCの出
力情報に従って、順次、または並列にレジスタファイル
RFの内容の書込および読出、ならびにバス接続制御を
実行する。
【0029】図2においては、入力部20および出力部
30はともに書込/読出制御部RWCを介してデータの
入出力を行なうように示されている。これは書込/読出
制御部RWCが入出力インタフェース回路の機能をも併
せて備えるためである。さらに図2においては、入力部
20および出力部30はシーケンスコントローラSCの
制御を受けるように示される。これはプログラムメモリ
PMに書込まれたプログラムに従って入力部20が入力
データINを書込むデータレジスタを特定するアドレス
および出力部30が出力データOUTを生成するためデ
ータフィルタDAFの特定のデータレジスタDARを指
定するアドレスをそれぞれこのシーケンスコントローラ
SCの制御の下に設定されることを示すためである。シ
ーケンスコントローラSCが入力部20および出力部3
0にこのレジスタファイルRF内のデータレジスタのア
ドレスを設定することはなく、書込/読出制御部RWC
がシーケンスコントローラSCの制御の下に入力部20
および出力部30とデータの入出力を行なう構成とされ
てもよい。このとき、書込/読出制御部RWCはシーケ
ンスコントローラSCの制御の下に入力データINの書
込および出力データOUTの読出をレジスタファイルR
Fに対して実行する。
【0030】プログラムメモリPMへは、外部からプロ
グラムを書込むことができる(この書込経路は示さ
ず)。
【0031】また図2においては、レジスタファイル1
0内部にプログラムコントローラ100が設けられるよ
うに示されている。このプログラムコントローラ100
は、レジスタファイル10の外部に設けられて装置外部
から書込/読出制御部RWCを制御する構成が用いられ
てもよい。
【0032】[レジスタの構成]図3は、レジスタファ
イルの構成および接続形態を示す図である。図3におい
て、レジスタファイル10は、1エントリーとしてデー
タレジスタDARと行先レジスタDERを含む。
【0033】このデータレジスタDARのレジスタの配
置は、命令iirおよび命令firに従ってその意味が
変更される。命令iirは、IIRフィルタ処理を実行
するための命令であり、命令firはFIRフィルタ処
理を実行するための命令である。図3においては、この
命令iirが指定されたときのレジスタの配置を示す。
【0034】図3において、データレジスタDARは、
処理されるべきデータを格納するA1レジスタ、A2レ
ジスタ、Cレジスタ、入力データを格納するBレジス
タ、乗算結果(Xの計算結果)を格納するXレジスタ、
処理データを格納するDレジスタを含む。
【0035】A1レジスタおよびCレジスタに格納され
たデータは、第1の演算器群40に含まれる乗算器1へ
与えられる。乗算器1の乗算結果(Xの計算結果)は書
込回路62を介して同じエントリー内のXレジスタへ格
納される。
【0036】Bレジスタ、XレジスタおよびDレジスタ
の格納するデータは第2の演算器群50に含まれる加算
シフト複合演算器2へ与えられる。加算シフト複合演算
器2は、加算器22と、加算器22の出力を所定ビット
シフトするシフト回路24を含む。BレジスタおよびX
レジスタの格納するデータが加算器22へ与えられる。
Dレジスタの格納するデータはシフト回路24における
シフトビット数を決定する。シフト回路24は、そのシ
フト数がプログラマブルな回路であり、そのシフト操作
により除算を実行する。
【0037】行先レジスタDERは、加算シフト複合演
算器2の出力を格納する位置を示す行先情報を格納する
Eレジスタと、A1レジスタのデータを書込むレジスタ
を特定する行先情報を格納するFレジスタを含む。この
EレジスタおよびFレジスタはそれぞれ複数の行先を特
定することができる。EレジスタおよびFレジスタの格
納する行先情報はプログラム可能であり、プログラムメ
モリPM(図2参照)に格納された命令に従ってシーケ
ンスコントローラSCおよび書込/読出制御部RWCの
制御の下に対応の行先情報がプログラムされる。
【0038】図3においては、さらにこのデータの書込
および読出を実行するために書込回路61、62および
63が示される。書込回路61は、Fレジスタに格納さ
れた行先情報をデコードし、対応のレジスタへA1レジ
スタの格納するデータを書込む。書込回路62は乗算器
1の出力を同一エントリー内のXレジスタへ書込む。書
込回路63は、Eレジスタに格納された行先情報をデコ
ードし、加算シフト複合演算器2の出力を対応のレジス
タへ書込む。この書込回路61、62および63は図2
に示す読出/制御部RWCに含まれる。また、このデー
タレジスタDARおよび行先レジスタDERからのデー
タ読出は、それぞれ独立に図2に示す読出/書込制御部
RWCにより実行される。各レジスタは読出/書込制御
部RWCの制御の下にそれぞれ対応のデータバスに接続
される。このレジスタとデータバスとの接続はプログラ
ムにより決定される。
【0039】上述のようにレジスタファイルにおける1
エントリーのレジスタにおいて、各レジスタはどの演算
に利用されるかはプログラムにより固定的に設定され
る。すなわちAレジスタおよびCレジスタは乗算用のデ
ータを格納するために利用され、BレジスタおよびDレ
ジスタは加算シフト複合演算のために利用される。それ
ら以外の演算には利用されない。また、各レジスタに
は、初期値および読出専用の定数を格納することができ
る。このレジスタからのデータの書込および読出は単一
代入/単一読出(1回限りの書込および読出)のルール
に従って実行される。定数が格納されたレジスタは、書
込は行なわれず、その定数を複数回読出すことができ
る。
【0040】また、行先レジスタDERに含まれるEレ
ジスタおよびFレジスタの行先情報はプログラム可能で
ある。したがって、任意の構造のフィルタを容易に構成
することができる。
【0041】図4はfir命令によるレジスタの接続構
成を示す図である。命令firの場合、データレジスタ
DARは、Aレジスタ、Cレジスタ、Bレジスタ、Xレ
ジスタ、およびDレジスタを含む。CレジスタおよびB
レジスタの格納するデータは乗算器1へ与えられる。す
なわち、CレジスタおよびBレジスタは乗算のためにの
み利用されるデータを格納する。Aレジスタ、Xレジス
タおよびDレジスタに格納されるデータは、加算シフト
複合演算器2へ与えられる。Xレジスタへは、この乗算
器1の乗算結果が書込回路62を介して書込まれる。
【0042】上述のように、fir命令においても、各
データレジスタは予め定められた演算のためにのみ利用
される。
【0043】行先レジスタDERは、Bレジスタに格納
されたデータを書込むレジスタを特定する行先情報を格
納し、Fレジスタは加算シフト複合演算器2の出力デー
タを格納するレジスタを特定する行先情報を格納する。
【0044】このfir命令においても、各レジスタに
は初期値および読出専用の定数を置くことができる。各
レジスタ(データレジスタ)に対しては単一代入/単一
読出のルールに従ったデータの書込および読出が行なわ
れる(読出専用の定数を除く)。
【0045】EレジスタおよびFレジスタに格納される
データはプログラム可能である。したがって、このfi
r命令の場合においてもフィルタの構成を容易に変更す
ることができる。
【0046】この図3および図4に示すレジスタはレジ
スタファイルにおける1エントリーを構成する。1エン
トリーは、1つのiir命令またはfir命令に対応す
る。命令により各レジスタと乗算器および加算シフト複
合演算器との間の接続が決定される。
【0047】図5は、iir命令およびfir命令両者
を実現するためのレジスタファイルの1エントリーの構
成およびレジスタ間の接続を示す図である。図5におい
て、レジスタファイルが1エントリーとして、図3に示
す構成と同様、データレジスタDARがA1レジスタ、
A2レジスタ、Cレジスタ、Bレジスタ、Xレジスタ、
およびDレジスタを含む。行先レジスタDERはEレジ
スタおよびFレジスタを含む。
【0048】命令firおよび命令iirに従って演算
器群40および50へ与えられるデータを切換えるため
にスイッチ回路71、72および73が設けられる。ス
イッチ回路71は、命令firおよびiirに従ってA
1レジスタおよびBレジスタの伝達経路を切換える。す
なわち、スイッチ回路71は、fir命令の場合にはB
レジスタのデータを左出力Lへ出力し、A1レジスタの
格納データを右出力Rへ伝達する。スイッチ回路71
は、iir命令の場合には、Bレジスタの格納データを
右出力Rへ伝達しA1レジスタの格納データを左出力L
へ伝達する。
【0049】スイッチ回路72は、fir命令の場合に
はスイッチ回路71の左出力Lから与えられたデータを
左出力Lへ伝達し、iir命令の場合には与えられたデ
ータを右出力Rへ伝達する。スイッチ回路73はスイッ
チ回路72と同様の動作を行ない、fir命令の場合に
は入力データを左出力Lへ伝達し、iir命令の場合に
は入力データを右出力Rへ伝達する。
【0050】図5においては、スイッチ回路72および
73へ行先レジスタDERに含まれるEレジスタおよび
Fレジスタの格納データが伝達されるように示されてい
る。すなわち、スイッチ回路72および73がこのスイ
ッチ回路72および73が行先情報をデコードし、デー
タ伝達線を振分ける機能を備えるように示される(図3
および図4に示す書込回路の機能を備える)。これは、
スイッチ回路72および73は単にデータ伝達経路を切
換える機能のみを備え、そのスイッチ回路の出力に図3
および図4に示す書込回路61、および63が設けられ
る構成が利用されてもよい。
【0051】この図5に示すようにスイッチ回路71、
72および73のデータ伝達経路を命令iirおよびf
irに従って切換えることにより、同一のレジスタ構成
を用いてfir命令およびiir命令いずれを実行する
ことができFIRフィルタおよびIIRフィルタいずれ
をも実現することができ、かつまた両者を組合わせた結
合型フィルタをも構成することができる。
【0052】[命令ブロック構造]iir命令およびf
ir命令はデータフロー形式で表現される。以下、この
命令の記述および内部構造について説明する。
【0053】図6はiir命令の記述および内部構造を
示す図である。図6(A)において、iir命令は4入
力2出力命令である。入力A、B、CおよびDは、図3
に示すレジスタに対応し、また出力EおよびFはレジス
タEおよびFに対応する。入力データとしては、初期値
または定数が含まれてもよい。
【0054】図6(B)において、iir命令は、4つ
のノード81、82、83および84を含む。ノード8
1は加算ノードであり、ノード82は乗算を行なうノー
ドである。ノード83はデータを所定ビットシフトさせ
るシフト演算を行なうノードであり、ノード84は与え
られたデータ所定時間遅延させる遅延(Z-1)を実行す
るノードである。
【0055】ノード81は、乗算ノード(Xノード)の
出力とB入力に与えられたデータを加算する。ノード8
2は、C入力とノード84の出力またはA1入力とを乗
算する。ノード83は、ノード81(加算ノード:+ノ
ード)の出力をD入力に与えられたビット数だけシフト
させる。ノード84はA2入力を所定時間(1T:Tは
1サンプリング期間)遅延させる。入力A1およびA2
はどちらか一方が入力される。同時に入力A1およびA
2が与えられることは禁止される。ノード84の出力が
F出力(Fレジスタの行先情報が特定するレジスタ)へ
伝達され、ノード83の出力がE出力(Eレジスタの行
先情報が特定するレジスタ)へ伝達される。
【0056】図3に示す構成においては、ノード84の
実行する遅延(Z-1)を実現する演算器は示されていな
い。これは等価的にデータレジスタDARにおけるA2
レジスタからA1レジスタへのデータ転送により実現さ
れる(図3においてA2レジスタからA1レジスタへの
矢印で示す)。
【0057】図7は、fir命令の記述および構造を示
す図である。図7(A)において、fir命令は、4入
力2出力の命令で表現される。入力A、B、CおよびD
は、図4に示すAレジスタ、Bレジスタ、Cレジスタお
よびDレジスタに対応し、E出力およびF出力はEレジ
スタおよびFレジスタの格納する行先情報が特定する行
先へ結合されることを示す。
【0058】図7(B)において、fir命令は、その
内部構造として、乗算(X)を行なうノード91と、加
算(+)を行なうノード92と、所定ビット入力データ
をシフトさせる操作を行なうノード93と、ノード93
の出力を所定時間遅延させる遅延操作(Z-1)を行なう
ノード94を含む。ノード91は、入力BおよびCの乗
算を行なう。ノード92は、乗算器91の出力と入力A
との加算を行なう。ノード93は、加算ノード92の出
力をD入力が指定するビット数シフトさせて出力する。
ノード94はノード93の出力を1サンプリング期間遅
延させて出力する。
【0059】図6(B)に示す加算ノード(81,9
2)およびシフト操作ノード(83および93)は図1
に示すように加算シフト複合演算器として1つの演算器
で表現される。
【0060】図6および図7に示すiir命令およびf
ir命令の内部構造はそれぞれIIRフィルタおよびF
IRフィルタの単位構造に対応する。次に一般的なフィ
ルタをこの命令iirおよびfirが示す内部構造へ分
解する方法について説明する。
【0061】[フィルタのプログラム実施例]まずデジ
タルフィルタの構成の基本について説明する。
【0062】標本化周期Tで標本化された入力系列を
{xn}=x0、x1、x2、…xn…とし、フィルタ
の出力系列を{yn}=y0、y1、y2、…yn…と
する。一般に、このデジタルフィルタにおいては入力系
列{xn}と出力系列{yn}とは差分方程式を用いて
以下のように関係付けられる。
【0063】yn=Σak・xn-k −Σbk・yn-k ここで、第1項の総和はk=0〜Mに対して行なわれ、
第2項の総和はk=1〜Nに対して実行される。
【0064】すなわち、時刻t=nTにおけるフィルタ
の出力ynは、入力xn-M からxnの(M+1)個の過
去および現在の入力と、出力yn-N からyn-1 までのn
個の過去のフィードバックされた出力(係数bkが0で
ない場合)との差分により決定される。
【0065】通常この入力系列{xn}および出力系列
{yn}はz変換される。z変換により、標本値入力系
列{xn}は、 X(z)=Σxn・z-n と表現される。総和はn=0から無限大に対して実行さ
れる。z-1は単位遅延演算子と呼ばれる。このz変換に
より、出力Y(Z)は、 Y(z)=A(z)・X(z) と表現される。H(z)は伝達関数と呼ばれる。上述の
式において、係数bkがすべて0の場合には、出力信号
ynは、過去の出力信号を用いないで決定される。この
フィルタ処理を実現するデジタルフィルタは非巡回型デ
ジタルフィルタと呼ばれ、トランスバーサルフィルタ
(遅延素子の各タップ出力の加重和を得る構成)が一般
に古くから知られている。
【0066】一方、係数bkのうち少なくとも1個0で
ない係数が存在する場合、すなわち過去の出力が現在の
出力に影響を及ぼす場合この構成は巡回型デジタルフィ
ルタと呼ばれる。巡回型フィルタの伝達関数を指数に展
開すると、通常はz-1の無限級数で表現される。すなわ
ちインパルス入力に対して出力が無限に続く。このため
この巡回型フィルタを無限インパルス応答フィルタ(I
IRフィルタ)と呼ぶ。一方、非巡回型フィルタでは、
この伝達関数の級数は有限である。このため非巡回型フ
ィルタは有限インパルス応答フィルタ(FIRフィル
タ)と呼ばれる。
【0067】まず、代表的なフィルタの構成について説
明し、次にこれを図6に示す命令構造に分解する手順に
ついて説明する。まず2次のIIRフィルタを構成する
場合について説明する。2次のIIRフィルタは、遅延
が2次項まであるフィルタを指す。
【0068】図8は2次IIRフィルタの構成と命令へ
の分解手順を示す図である。図8において、2次IIR
フィルタは、縦列接続された加算器101、102、1
03、および104と、加算器104の出力を係数4で
除算する除算器105を含む。IIRフィルタはさら
に、加算器102の出力を1サンプリング周期遅延させ
る遅延回路105と、遅延回路105の出力に所定の係
数0.6を乗算して加算器102へ与える乗算器106
と、遅延回路105の出力に係数0.7を乗算して加算
器103へ与える乗算器107と、遅延回路105の出
力をさらに1サンプリング期間遅延させる遅延回路10
8と、遅延回路108の出力に係数0.5乗算して加算
器101へ与える乗算器109と、遅延回路108の出
力に係数0.8を乗算して加算器104へ与える乗算器
110を含む。
【0069】この図8に示す2次IIRフィルタを、次
に図6に示すiir命令に分解する。iir命令は、加
算(+)操作、シフト操作、乗算操作(X)、および遅
延操作を含む。シフト操作により除算を実行することが
できる。この図8に示す2次IIRフィルタを加算、シ
フト、乗算および遅延の単位に分割する。
【0070】すなわち、加算器101、遅延回路10
8、および乗算器109を、第1のiir命令で表現す
る。加算器102、遅延回路105、および乗算器10
6を、第2のiir命令で表現する。加算器103およ
び乗算器107を第3のiir命令で表現する。加算器
104、除算器105および乗算器110を第4のii
r命令で表現する。この第1ないし第4のiir命令#
1〜#4をフローグラフで表わすと図9に示す記述が得
られる。
【0071】乗算器106、107、109および11
0の乗算係数はそれぞれの命令におけるC入力へ与えら
れる定数により表現される。
【0072】図9において、IIRフィルタは、4つの
縦列接続されたiir命令#1〜#4により表現され
る。第1のiir命令#1は、A入力に、第2のiir
命令#2のF出力を受け、B入力に外部からの入力デー
タを受け、C入力に定数0.5を受け、D入力に定数0
を受ける。第1のiir命令#1のA入力には図6に示
すA2入力が利用される。
【0073】第2のiir命令#2は、自身のF出力を
A入力に受け、第1のiir命令#1のE出力をそのB
入力に受け、C入力に定数0.6を受け、D入力に定数
0を受ける。第2のiir命令#2はそのA入力とし
て、A2入力を利用する。
【0074】第3のiir命令#3は、そのA入力に第
2のiir命令#2のF出力を受け、B入力に第2のi
ir命令#2のE出力を受け、そのC入力に定数0.7
を受け、D入力に定数0を受ける。第3のiir命令#
3は、そのA入力としてA1入力を利用する。
【0075】第4のiir命令#4は、そのA入力に、
第1のiir命令のF出力を受け、そのB入力に、第3
のiir命令#3のE出力を受け、そのC入力に定数
0.8を受け、D入力に定数2を受ける。第4のiir
命令#4のE出力からフィルタ処理結果が出力される。
【0076】iir命令のD入力は、シフト操作におけ
るシフトビット数を決定するデータが与えられる。この
シフト操作によりデータの割算が実現される。図8に示
すフィルタ構成においては、除算操作は除算器105に
おいてのみ実行されている。この係数4による除算は、
2ビット下位方向へデータをシフトさせることにより実
現される。したがって、第4のiir命令#4のD入力
に対して定数2が与えられる。残りのiir命令#1〜
#3に対しては除算操作は実行されないため、それぞれ
のD入力へは定数0が与えられる。
【0077】図10は、図9に示すフローグラフをテキ
スト形式で記述したプログラムを示す図である。図10
において右端の番号1〜6はプログラム番号を示し、左
端の番号0〜4はレジスタファイルにおける行番号(エ
ントリー番号)を示す。この行番号はデータの行先を示
す行の番号と1対1に対応する。次にプログラムの内容
について説明する。
【0078】(1) プログラム番号1の「initi
al」は初期値の宣言を示す。「1(A2)=0」は、
第1のiir命令#1のA2レジスタの格納値、すなわ
ち遅延操作Z-1の入力初期値が0であることを示してい
る。
【0079】また「2(A2)=0」は、第2のiir
命令#2のA2レジスタの初期値が0であることすなわ
ちその操作(Z-1)の初期値が0であることを示す。
【0080】(2) プログラム2の「input」は
外部からのデータ入力を示す。「1(B)」はこの入力
データを第1のiir命令#1に対応する第1行のレジ
スタBに格納することを示す。
【0081】(3) プログラム番号3の「iir」は
iir命令を示す。iir( ,,0.5,0)はii
r命令に利用される定数を示す。括弧内の値は、各入力
の定数すなわちiir(A2,B,C,D)の対応の入
力に対する定数を表わす。プログラム番号3のプログラ
ムにおいては以下のことが示される。
【0082】A2入力に対しては定数値は設定されない
(変数のみ)。B入力に対しても定数値は設定されな
い。C入力に対しては定数0.5が設定される。D入力
に対しては定数0が設定される。定数値が存在しない場
合は「,」のみで示す。すなわち、第1のiir命令
(プログラム番号1)に対しては、乗算係数として0.
5が設定され、またシフトビット数としては0が設定さ
れシフト動作が行なわれず、除算が行なわれないことを
示す。
【0083】「2(B)!4(H)」はこのiir命令
のデータの行先を示し、括弧の前に付された番号が行先
行数すなわち、E出力およびF出力の行先を示してお
り、このE出力とF出力の行先は!により区別される。
プログラム番号3においては以下のことが示される。
【0084】2(B):E出力は2行目の第2のiir
命令のB入力へ与えられる。F出力は第4行の第4のi
ir命令のA1入力へ与えれられる。
【0085】(4) プログラム番号4についてはii
r命令の各定数はプログラム番号3のiir命令のそれ
らと同様である。データ出力先として複数個存在する。
すなわち、E出力は第2行のA2入力へ与えられかつ第
3行のiir命令のB入力へ与えられる。第1ないし第
4のiir命令はレジスタファイルにおける各行と対応
しており、したがって、レジスタファイルの第2行およ
び第3行のA2レジスタおよびBレジスタへこの第2の
iir命令のE出力が伝達されることを示す。
【0086】F出力は第1のiir命令のA2入力およ
び第3のiir命令のA1入力へ伝達される。すなわち
レジスタファイルにおける第1行および第3行のA2レ
ジスタおよびA1レジスタへこの第2のiir命令のF
出力が入力される。
【0087】(5) プログラム番号5のiir命令に
ついてはその定数およびE出力の定義については上で説
明したものと同じである。「absorb」は、行先が
ないことを示す。すなわち第3のiir命令のF出力は
出力されないことを示す。
【0088】(6) プログラム番号6においてiir
命令の定義およびF出力の行先については上の第3のi
ir命令の場合と同様である。「output」はこの
第4のiir命令のE出力が出力データとして装置外部
へ出力されてフィルタ処理結果を示すデータとして利用
されることを示す。
【0089】このテキスト形式で記述されたプログラム
はレジスタファイルの各行にそれぞれ対応する。すなわ
ち、第1ないし第4のiir命令はそれぞれレジスタフ
ァイルの第1行ないし第4行のエントリーに対応する。
このプログラムに従ってレジスタファイルへのデータの
書込および読出が実行される。
【0090】[フィルタ装置の具体的動作]次に具体的
な動作を以下の順序で説明する。
【0091】(a)動作の規則を説明する。(b)レジ
スタの状態を実行順序に従って示す。(c)実行効率を
調べ、無駄なオーバーヘッドが生じていないことを実証
する、および(d)複数(4つ)の演算器を持った場合
の動作を説明する。
【0092】「基本ルール」 (1)A2レジスタ、A1レジスタおよびBレジスタに
は初期値が格納される。これらのレジスタA2、A1お
よびBの格納データは新しく入力されたデータにより更
新される。CレジスタおよびDレジスタに格納される定
数は更新されない。定数でない場合には新しく与えられ
る入力データにより更新される。定数でないか否かはi
ir命令により決定される。
【0093】(2) すべてのレジスタの値は1回書込
1回読出に限定される。すなわち単一代入単一読出のル
ールが適用される。ただし定数を除く。
【0094】(3) レジスタA1に格納されたデータ
と加算シフトを含む演算器の計算結果を複数かつ任意の
行へ書込むことができる(プログラム可能である)。こ
の行先はそれぞれE出力およびF出力としてプログラム
(図10参照)時において各命令に対応してプログラム
により指定される。
【0095】(4) 加算シフト複合演算を除く演算の
結果は予め定められたレジスタに書込まれる(Xレジス
タ)。
【0096】以下に説明する計算の実施例においては第
1の演算器群40は1個の乗算器を含み、第2の演算器
群50は1個の加算シフト複合演算器を含むと想定す
る。
【0097】「計算のルール」 (1) 演算は、行番号すなわちプログラム番号にかか
わらずデータが揃ったものから順次実行される。
【0098】(2) 演算は、加算シフト、次いで乗算
の優先順位で実行される。 (3) 同じ演算に対するデータが同時に揃った場合に
は行番号の逆順にその演算が実行される。すなわち行番
号の大きい方の命令に従った演算が先に実行される。
【0099】(4) A2レジスタからA1レジスタへ
のデータの移動(遅延の表現)およびF出力におけるデ
ータのコピー(Fレジスタが複数の行先情報を含む場
合)は、すべて演算の前に実行される。 (5) 行先が複数存在する場合には、行先がすべて空
いていない状態でない限りその演算は実行されない。す
なわち演算は、行先が空いておりかつデータが揃った場
合に実行される。以下の説明においては加算シフト複合
演算のE出力および乗算操作結果のF出力による転送の
場合にこのルールが適用される。
【0100】(6) 後の演算が前の演算より優先され
ることはない(演算順序における追越しは生じない)。
【0101】次にこの図8に示す2次IIRフィルタ処
理動作を実行する際のレジスタファイル内のデータの動
きについて説明する。
【0102】図11は、レジスタの初期状態と各レジス
タと演算器との関係を示す図である。レジスタの初期状
態は図10に示すプログラムが書込まれ、内部状態が初
期設定された状態を示す。この状態において、Cレジス
タおよびDレジスタにはそれぞれ定数が書込まれる。A
1レジスタおよびCレジスタは乗算器に結合される。B
レジスタおよびXレジスタは加算器へ結合され、Dレジ
スタはシフト回路へ結合される。A1レジスタから読出
されたデータはFレジスタに格納された行先情報に従っ
て対応のレジスタへ書込まれる。
【0103】シフト回路すなわち加算シフト複合演算器
の出力はEレジスタに格納された行先情報に従って対応
のレジスタに書込まれる。この図11において左端に示
す番号はレジスタファイルにおける行番号を示しかつ図
10に示す各プログラムの行番号と1対1に対応する。
1行ないし4行のE1レジスタにはデータ1、0、0、
および1が初期値として格納されている。この格納デー
タは単なる一例であり、フィルタ処理動作実行時におい
てはこのA1レジスタに初期設定された値は無効データ
として処理される。
【0104】図12は、第1サイクルの動作を示す図で
ある。図12(A)において、第1行のBレジスタへデ
ータ“1”が格納される。この入力動作と並行して、第
4行のA1レジスタのデータ“1”を用いた乗算が行な
われ、その乗算結果がXレジスタへ格納される。
【0105】すなわち、図12(b)に示すようにブロ
ック#1の加算器の入力にデータ“1”が与えられ、ま
たブロック#4の加算器の入力にデータ“0.8”が与
えられる。
【0106】図13は、第2サイクルの実行動作時にお
けるレジスタの内容およびそのときのデジタルフィルタ
におけるデータの分布状態を示す図である。図13
(A)において、入力部からは新たにデータは与えられ
ず、入力待ち状態となる。第4行のエントリーにおいて
は、BレジスタとXレジスタにデータが揃ったため、加
算シフト動作が実行される。第4行に対応する命令の結
果はEレジスタの内容で決定されるレジスタに書込まれ
る。第4のiir命令のEレジスタには「出力」が指定
される。したがって、データ“0.2”が外部に出力さ
れる。
【0107】一方、第3行のエントリーにおいては、A
1レジスタのデータ“0”とCレジスタのデータ0.7
との乗算が実行され、その乗算結果が対応のXレジスタ
に格納される。
【0108】ここで、図においてレジスタにおいて空欄
の部分はその格納データが消費されたことを示す。単一
代入単一読出のルールに従ってレジスタファイルへのデ
ータの書込および読出が実行されているため、書込まれ
かつ読出されたれデータは再び利用されないからであ
る。以下の説明においても同様とする。
【0109】この図13(A)に示すデータの状態をデ
ジタルフィルタにおけるデータに対応付けると図13
(B)に示すようになる。すなわち、ブロック#4にお
いて、加算器において0と0.8とが加算され次いでシ
フト操作による除算が行なわれ、0.2が出力される。
【0110】ブロック#3においては、その乗算器にお
いて係数0.7と0との乗算が行なわれ、その乗算結果
“0”が加算器へ与えられる。乗算操作と加算シフト複
合操作は互いに異なる演算器により実行されるため、互
いに並列に実行することができる。
【0111】図14は、第3実行サイクルおけるレジス
タの内容およびフィルタにおけるデータの配置を示す図
である。図14(a)に示すように、第3のiir命令
における加算シフト操作結果が第4行のDレジスタへ書
込まれ、一方第2行のiir命令のA1レジスタとCレ
ジスタのデータの乗算が行なわれその乗算結果が第2行
のXレジスタに格納される。
【0112】すなわち図14(B)に示すように、ブロ
ック#2の加算器の入力“0”が確定状態となり、また
ブロック#4の加算器の入力、すなわちプログラム#3
の加算器出力が“0”に確定する。
【0113】図15は、第4実行サイクルにおけるデー
タレジスタの内容とそのときのデジタルフィルタにおけ
る確定データの分布を示す図である。図15(A)にお
いて、第1行のA1レジスタおよびCレジスタに格納さ
れたデータの乗算が行なわれその乗算結果がXレジスタ
に格納される。すなわち、図15(B)に示すように、
ブロック#1における乗算器の乗算結果が確定し、ブロ
ック#1の加算器の入力が確定する。次いで、遅延素子
の操作を実現するためにデータのコピーが実行される。
【0114】図15(A)において、第2行のBレジス
タおよびXレジスタのデータは確定している。したがっ
て、第1行のA1レジスタとCレジスタの乗算と並行し
て加算されたシフト操作を実行できるように思われる。
しかしながらこの場合計算ルールにおいて後からの演算
は前の演算よりも優先されないというルールに従って、
この第2行のBレジスタとXレジスタのデータの加算お
よびシフト動作は行なわれない。
【0115】図16は、遅延操作を実現する際のレジス
タのデータの動きを示す図である。図16(A)におい
て、まず第1行のA2レジスタのデータ“0”が第1行
および第4行のA1レジスタへコピーされる。これによ
り、ブロック#1に含まれる遅延素子の操作が実現され
る。
【0116】図16(B)において、次いで第2行のA
2レジスタのデータが第1行のA2レジスタと、第2行
および第3行のA1レジスタへコピーされる。これによ
りブロック#2における遅延素子の遅延操作が実現され
る。デジタルフィルタにおける各乗算器の入力が確定す
る。
【0117】図16(C)において、第2行のBレジス
タおよびXレジスタのデータに対し加算シフト演算が実
行され、この演算結果は第2行のA2レジスタおよび第
3行のBレジスタへ格納される。これは、ブロック#2
において加算が行なわれ、その加算結果が遅延素子入力
およびブロック#3の加算器入力へ与えられて確定状態
となったことを示す。
【0118】図17は、図16に示す動作に続く操作に
おけるデータレジスタにおけるデータの配置を示す図で
ある。図17(A)において、第4行のA1レジスタお
よびCレジスタのデータの乗算が行なわれその乗算結果
がXレジスタに格納される。これはブロック#4におけ
る乗算器の出力が確定した状態に対応する。
【0119】図17(B)に示すように、上述のコピー
動作、加算およびシフト演算操作、および乗算操作を順
次実行すると、最終的にデータとしては、第3行のBレ
ジスタおよび第4行のXレジスタのデータが確定した状
態となる。すなわち、上述の操作を実行することにより
図17(C)に示すごとくブロック#3における加算器
の入力およびブロック#4における乗算器出力が確定し
た状態となる。この上述のコピー動作は常に遅延操作を
実行する場合行なわれる。以下の説明においてはこの図
16(A)ないし図17(A)に示す操作は省略し、図
17(B)に示す最終状態のみを示す。
【0120】図18は、第6実行サイクルにおけるデー
タのデータレジスタにおける配置およびデジタルフィル
タにおける確定データの状態を示す図である。図18
(A)に示すように、第3行のA1レジスタおよびCレ
ジスタの乗算が行なわれその乗算結果が第3行のXレジ
スタに書込まれる。この乗算操作と並行して、第4行の
BレジスタおよびXレジスタを用いた加算シフト演算操
作が実行され、その演算結果のデータ“0”が出力デー
タとして出力される。
【0121】図19は、第7実行サイクル時におけるレ
ジスタファイルにおけるデータの配置およびデジタルフ
ィルタにおける対応のデータの配置状態を示す図であ
る。図19(A)に示すように、第2行のA1レジスタ
とCレジスタのデータを用いた乗算が行なわれ、該乗算
結果がXレジスタに格納される。この乗算操作と並行し
て、第3行のBレジスタとXレジスタの加算およびシフ
ト演算操作が実行され、この演算操作結果が第4行のB
レジスタに格納される。
【0122】すなわち図19(B)に示すように、ブロ
ック#2における加算器の入力すなわち乗算器の出力が
確定しかつブロック#4の加算器の入力すなわちブロッ
ク#3の出力が確定状態となる。
【0123】図20は第8実行サイクルにおけるデータ
レジスタにおけるデータの配置およびそのときのデジタ
ルフィルタにおけるデータの配置形態を示す図である。
図20(A)において次の入力データ“2”が第1行の
Bレジスタへ格納される。この格納と並行して、第1行
のA1レジスタとCレジスタとの乗算が実行されその乗
算結果が第1行のXレジスタへ書込まれる。また同時に
第1行のBレジスタとXレジスタのデータに対する加算
シフト操作が実行され、その演算操作結果が第2行のB
レジスタへ格納される。すなわち、第1行のデータレジ
スタに対し乗算操作と加算およびシフト演算操作が行な
われかつ新しい入力データの格納が実行される。
【0124】すなわち、図20(B)に示すようにブロ
ック#1の加算器の出力すなわちブロック#2の加算器
の入力が確定しかつブロック#1の乗算器の出力が確定
する。以降、この新しい入力データ“2”を用いて同様
の動作が繰り返される。
【0125】図21は、第9実行サイクルにおけるデー
タのデータレジスタにおける配置を示す図である。図2
1において、第2行のBレジスタおよびXレジスタのデ
ータを用いた加算シフト演算操作が実行され、この結果
が第3行のBレジスタおよび第2項のA2レジスタへ格
納される。次いで第2行の命令実行前に遅延素子の遅延
操作が実行される。すなわち、A2レジスタの格納デー
タのA1レジスタへの転送が実行される。具体的には、
第1行のA1レジスタの内容が第1行および第4行のA
1レジスタへ転送され、第2行のA2レジスタの内容が
第1行のA2レジスタ、第2行および第3行のA1レジ
スタへ転送される。この転送操作実行後上述の加算シフ
ト複合演算操作が実行される。この加算シフト演算操作
と並行して、第4行のA1レジスタとCレジスタの乗算
が実行され、その乗算結果が第4行のXレジスタに格納
される。
【0126】図22は第10実行サイクルにおけるデー
タレジスタにおけるデータの配置を示す図である。図2
2において、第3行のA1レジスタとCレジスタの格納
データの乗算が行なわれその乗算結果が第3行のXレジ
スタに格納される。この乗算操作と並行して、第4行の
BレジスタとXレジスタの格納データに対する加算およ
びシフト演算操作が実行され、その複合演算操作結果が
出力データとして出力される。
【0127】図23は、第11実行動作サイクルにおけ
るデータレジスタにおけるデータの配置を示す図であ
る。図23において、第2行のA1レジスタとCレジス
タの格納データの乗算が行なわれ該乗算結果が第2行の
Xレジスタに格納される。この乗算操作と並行して、第
3行のBレジスタおよびXレジスタの格納データに対す
る加算およびシフト演算操作が実行され、その演算結果
が第4行のBレジスタに格納される。
【0128】図24は第12実行サイクルにおけるデー
タレジスタ内のデータの配置を示す図である。図24に
おいて、新たに第1行のDレジスタに次のデータ“3”
が入力される。このデータの入力と並行して、第1行の
A1レジスタとCレジスタの格納データに対する乗算が
行なわれその乗算結果が第1行のXレジスタに格納され
る。またこの入力および乗算操作と並行して、第1行の
BレジスタおよびXレジスタに格納されたデータに対す
る加算およびシフト複合演算操作が実行され、その演算
結果が第2行のBレジスタへ格納される。このとき、第
1のiir命令における「4(A1)」の操作は、先の
図21に示すコピー動作により実行されている。
【0129】図25は第13実行サイクルにおけるデー
タレジスタにおけるデータの配置を示す図である。第1
2実行サイクルにおいて第1ないし第4行のA1レジス
タのデータはすべて消費されている。このため、A2レ
ジスタからA1レジスタへのデータ転送(コピー動作)
が実行される。これにより遅延素子による遅延操作が実
現される。コピー操作後、第4行のデータ(“0”)と
第4行のCレジスタとの乗算が行なわれその乗算結果が
第4行のXレジスタへ格納される。この乗算操作と並行
して、第2行のBレジスタおよびXレジスタの格納デー
タによる加算およびシフト演算操作が実行され、その演
算操作結果は第3行のBレジスタおよび第2行のA2レ
ジスタへ格納される。
【0130】図26は、第14実行サイクル完了後のデ
ータレジスタにおけるデータの配置を示す図である。第
4行のBレジスタおよびXレジスタの格納データに対し
加算およびシフト演算操作が実行され、その演算操作結
果が出力データとして出力される。この加算シフト演算
操作と並行して、第3行のA1レジスタおよびCレジス
タの格納データを利用した乗算が実行され、該乗算結果
がXレジスタへ格納される。
【0131】図27(A)は第15実行サイクル完了後
のデータレジスタにおけるデータの配置を示す図であ
る。図27(A)において、第2行のA1レジスタとC
レジスタの格納データによる乗算が行なわれこの乗算結
果が第2行のXレジスタへ格納される。この乗算操作と
並行して、第3行のBレジスタおよびXレジスタの格納
データによる加算およびシフト演算操作が実行され、そ
の演算操作結果が第4行のBレジスタへ格納される。こ
の加算およびシフト演算操作と並行して、第2行のA1
レジスタとCレジスタの格納データによる乗算が行なわ
れ該乗算結果が第2行のXレジスタに格納される。
【0132】図27(8)は、第16実行サイクル完了
時におけるデータレジスタ内のデータの配置を示す図で
ある。図27(B)において、まず第1行のBレジスタ
およびXレジスタの格納データを用いて加算およびシフ
ト演算操作が実行されその演算操作結果が第2行のBレ
ジスタへ書込まれる。次いで第1行のA1レジスタおよ
びCレジスタの格納データによる乗算が実行されその乗
算結果が第1行のXレジスタ内へ格納される。このXレ
ジスタ内へのデータ格納と並行またはその完了後に新し
い入力データ“4”が第1行のBレジスタへ格納され
る。以降上述の動作が繰り返し実行される。すなわち、
第1行のA1レジスタの格納データが2回消費された
(読出される)ときに第1行のBレジスタへ新しい入力
データが格納される。第1行ないし第4行のA1レジス
タのデータがすべて一度消費された場合A2レジスタか
らのデータのコピーが実行される。
【0133】上述の動作において、各エントリー(行)
において所望のデータが揃ったときに演算が実行され
る。この演算データが揃ったか否かの判別は、各データ
レジスタに対する書込制御回路が書込を行なったことを
検出することにより行なわれる。必要な2つのデータレ
ジスタへの書込が行なわれたときにデータの読出が行な
われ所望の演算が実行される。複数の行において同一演
算に対して同時にデータが確定した場合には優先順位
(行番号の大きい方)に従って演算が実行される。
【0134】この構成としては以下の構成が考えられ
る。各レジスタに対応して読出/書込制御回路を設け、
この書込/読出制御回路の制御の下に演算器へのデータ
の伝送および所望データの揃ったことの検出を行なう。
どのレジスタへデータを書込むかはEレジスタおよびF
レジスタにプログラムされたデータにより決定される。
したがってこのプログラムされたデータに従って、書込
制御回路が対応のデータレジスタへのデータの書込を実
行する。この場合においても、各レジスタに対応して読
出制御回路が設けられ、この読出制御回路がEレジスタ
からの行先情報が自己に割当てられたアドレス(レジス
タ位置指定情報)と一致した場合に与えられたデータを
書込む。この場合、読出制御回路はデータ読出時におい
て対応のEレジスタまたはFレジスタの内容を読出す構
成となる。すなわち、IIR命令実行時においては、A
1レジスタとCレジスタの内容を読出す場合にはEレジ
スタの内容も同時に読出され、BレジスタとXレジスタ
の内容を読出す場合にはFレジスタの内容が同時に読出
される。乗算結果の格納は、固定的に定められており、
乗算のために選択されたエントリーを指定する情報と同
じエントリーのXレジスタが書込可能状態とされデータ
が書込まれる。
【0135】上述の動作および計算ルール等は、図2に
示すシーケンスコントローラSCおよび読出/書込制御
部RWCにより実現される。
【0136】図28は、上述の実行サイクル2ないし実
行サイクル16における各演算器の稼動状況を示す図で
ある。図28において、○は稼動状態を示し、空白状態
はデータ待ち状態すなわち演算器のアイドル状態を示
す。
【0137】図28から明らかなように、サイクル5な
いし16において、乗算器および加算シフト複合演算器
はすべて駆動状態となっており初期動作時を除く安定状
態時においては演算器が100%動作するフル稼動状態
が得られている。すなわち、各動作サイクルにおいて演
算器が駆動されており命令実行待ちによるオーバーヘッ
ドは生じず、高速でフィルタ処理を実行することが可能
となる。
【0138】上述のフィルタ処理は乗算器1つおよび加
算およびシフト複合演算器1つを用いてフィルタ処理を
実現している。次に4つの演算器、すなわち4つの乗算
器および4つの加算シフト複合演算器を用いてフィルタ
処理を行なう場合の動作について説明する。
【0139】図29は4つの演算器によりフィルタ処理
する際のデータレジスタにおけるデータの配置を示す図
である。図29(A)において、先の図12の場合と同
様の状態が初期設定される。図29(A)においては入
力データ“1”が第1行のBレジスタに格納された状態
が示される。この状態においては、図29(B)に示す
ようにブロック#1〜#4の加算器の入力がそれぞれ初
期設定された状態となっており、また乗算器の入力も初
期設定された状態となっている。以下の説明において
は、演算器のふるまいを観察するために、1サイクルの
動作を加算シフト複合演算器を示す状態(a)と乗算器
を示す状態(b)の2つに分割して観察する。
【0140】図30は、第1の実行サイクルにおけるデ
ータレジスタにおけるデータの配置およびデジタルフィ
ルタにおけるデータの分布状態を示す図である。図30
(A)に示すように、第1の実行サイクルにおいては、
第1行ないし第4行のA1レジスタとCレジスタの乗算
操作が並列に実行され、その乗算結果が対応のXレジス
タへ格納される。シフトおよび加算演算操作はXレジス
タに確定データが存在していないため実行されない。
【0141】この状態は図30(B)に示すように、各
ブロック#1〜#4の乗算器において並列に乗算が実行
されその乗算結果が確定した状態を示す。
【0142】図31は、第2の実行サイクルにおけるデ
ータレジスタ内のデータの配置およびそのときのデジタ
ルフィルタにおけるデータの状態を示す図である。A1
レジスタのデータがすべて消費された状態において、A
2レジスタからA1レジスタへのコピー動作が実行され
る。すなわち、図31(A)に示すようにまず第1行の
A2レジスタの格納データが第1行および第4行のA1
レジスタへ格納される。次いで図31(B)に示すよう
に第2行のA2レジスタに格納されているデータが第1
行のA2レジスタ、第2行および第3行のA1レジスタ
へ転送される。このときまた、第1行のBレジスタおよ
びXレジスタの格納データによる加算およびシフト操作
が実行される。
【0143】図32は図31に示す動作サイクルの次に
実行される状態を示す図である。図32(A)におい
て、コピー動作完了後、第1行ないし第4行のBレジス
タおよびXレジスタの内容がそれぞれ対応の加算シフト
演算器に転送される。この演算結果が対応のEレジスタ
が示す行先情報に格納される。第1行のBレジスタおよ
びXレジスタの加算およびシフト結果は第2行のBレジ
スタへ格納される。第2行のBレジスタおよびXレジス
タの演算結果は第3行のBレジスタおよび第2行のA2
レジスタへ格納される。第3行のBレジスタおよびXレ
ジスタの格納データの加算およびシフト演算結果は第4
行のBレジスタへ格納される。第4行のBレジスタおよ
びXレジスタの演算結果は出力データとして出力され
る。この場合、Bレジスタに対しては、それぞれの行番
号が1つ大きい行番号へ演算結果の書込が行なわれる。
第2行に対する演算結果に対してのみ第2行のA2レジ
スタへもデータが書込まれる。
【0144】このときまた第1行のBレジスタへ次の入
力データ(“2”)が書込まれる。この状態により図3
2(B)に示すように各ブロック#1〜#4の加算器の
入力が確定状態となりかつ第2行のA2レジスタの内容
が確定状態となる。
【0145】図33はこの加算およびシフト演算操作完
了後のデータレジスタ内のデータの配置を示す図であ
る。図33(A)に示すようにA1レジスタの格納デー
タとBレジスタの格納データとの乗算が行なわれその乗
算結果がXレジスタへ格納される。これにより図33
(B)に示すように各ブロック#1、#2、#3、およ
び#4の乗算器の出力がすべて“0”の確定状態とな
る。ここで、演算は、加算およびシフト演算が乗算より
も先に行なわれる計算ルールが適用されていることを想
起されたい。
【0146】図34は第3実行サイクル状態完了時のデ
ータレジスタ内のデータの配置およびデジタルフィルタ
内のデータの状態を示す図である。図34(A)は加算
およびシフト演算操作実行完了時のデータレジスタ内の
データの配置を示し、図34(B)は乗算操作完了後の
データレジスタ内のデータの配置を示す。図34(A)
には、A2レジスタからA1レジスタへの図31に示す
コピー動作および加算およびシフト演算操作完了後の状
態が示される。この状態においてはまた新たに第1行の
Bレジスタへ入力データ“3”が書込まれる。Bレジス
タとXレジスタのデータを用いて加算およびシフト演算
操作が実行され、出力データが出力される。
【0147】図34(B)においては、A1レジスタの
格納データとCレジスタの格納データとの乗算が実行さ
れその乗算結果がXレジスタに格納される。
【0148】上述の動作を実行することにより、図34
(C)に示すように出力データ“0”が得られ、各ブロ
ック#1〜#4の加算器の入力も確定状態となる。なお
この図35(A)においても、BレジスタおよびXレジ
スタのデータによる加算およびシフト演算操作が実行さ
れかつA2レジスタからA1レジスタへのデータのコピ
ー動作も実行されている。コピー動作完了後に加算およ
びシフト演算操作が実行される。この図35(A)の状
態完了後図35(B)に示す乗算が実行される。以降こ
の動作を繰り返す。
【0149】上述の乗算を並列に実行する構成の場合、
各レジスタからは並列にデータが読出されかつ並列にデ
ータが書込まれる。この場合、その各レジスタにおいて
先のデータの書込完了後にデータの読出が行なわれ、デ
ータの読出は有効データの書込完了後でないと実行され
ない。
【0150】図36はこの4つの演算器すなわち4つの
乗算と4つの加算およびシフト複合演算器を用いた場合
の各演算器の稼動状態を示す図である。図36におい
て、乗算はXで示し、加算およびシフト演算操作は「+
shift」で示す。それぞれにおいて、○は演算器が
稼動状態にある状態を示し、空白部分は非稼動状態すな
わちデータ入力待合わせ状態を示す。図36から明らか
なように、実行サイクル2ないし4においては、演算器
がすべて稼動状態となっており、高速でフィルタ処理す
ることがわかる。
【0151】[4次FIRフィルタのプログラム実施
例]次に、代表的なフィルタ構成例として4次のFIR
フィルタについて考察する。
【0152】図37は4次のFIRデジタルフィルタの
構成を示す図である。図37に示す4次FIRデジタル
フィルタは、転置型トランスバーサルフィルタとも呼ば
れる。図37において、FIRフィルタは、入力データ
と所定の乗算係数とを乗算する乗算回路201、20
2、203および204と、加算回路205、206、
207および208と、遅延器209、210および2
11と除算器212を含む。乗算回路201〜204は
互いに並列に配置される。加算器と遅延器とは交互に配
置される。
【0153】加算器205は乗算器201の出力とデー
タ0とを加算する。遅延回路209は加算器205の出
力を所定期間(1サンプル周期)遅延する。加算器20
6は、乗算器202の出力と遅延器209の出力を加算
する。遅延器210は、加算器216の出力を所定期間
(1サンプル周期)遅延する。加算器207は遅延器2
10の出力と乗算器203の出力を加算する。遅延器2
01は加算器207の出力を所定期間遅延する。加算器
208は乗算器204の出力と遅延器211の出力とを
加算する。除算器212は加算器208の出力を係数4
で除算し出力データを生成する。
【0154】図37に示すFIRフィルタでは同一構成
が縦続接続される。このFIRフィルタをfir命令に
従ってブロックに分割する。fir命令は、4入力2出
力命令であるが、その内部構造として乗算操作、加算操
作、シフト操作および遅延操作を含む。したがってこの
図37に示すFIRフィルタを乗算器、加算器および遅
延素子を含む1つのブロックを単位として分割する。F
IRデジタルフィルタはブロック#1〜#4に分割さ
れ、各ブロック#1〜#4がそれぞれfir命令で表現
される。
【0155】図38はこのデジタルフィルタをfir命
令で記述した場合のフローグラフを示す図である。図3
8において、第1のfir命令#1は、A入力に定数0
を受け、B入力に入力データを受け、C入力に定数0.
1を受け、D入力に定数0を受ける。第2のfir命令
#2は、A入力に第1のfir命令#1のF出力を受
け、B入力に入力データを受け、C入力に定数0.2を
受け、D入力に定数0を受ける。第3のfir命令#3
は、A入力に第2のfir命令#1のF出力を受け、B
入力に入力データを受け、C入力に定数0.3を受け、
D入力に定数0を受ける。第4のfir命令#4は、A
入力に第3のfir命令#3のF出力を受け、B入力に
入力データを受け、C入力に定数0.4を受け、D入力
に定数2を受ける。第4のfir命令#4のF出力から
データ処理後の出力データが出力される。
【0156】図39は図38に示すフローグラフをテキ
スト形式で記述したプログラムを示す図である。以下図
39を参照してこのプログラムについて説明する。
【0157】図39において左端の番号は行番号を示
し、レジスタファイルにおけるエントリーの行に1対1
に対応する。図39のプログラムの右端の番号はプログ
ラム番号を示す。
【0158】プログラム1:プログラム1の「init
ial」は初期値の宣言を示す。「2(A)=0」は第
2行のレジスタAの格納データを“0”に初期設定する
ことを示す。すなわち第2のfir命令#2のA入力、
すなわち加算器の入力初期値が“0”であることを示
す。同様に「3(A)=4(A)=0」は第3および第
4のfir命令#3および#4のA入力、すなわちその
加算器の入力値が“0”に初期設定されることを示す。
【0159】プログラム2:「input」は外部から
のデータの入力を示す。「1(B),2(B),3
(B),4(B)」は、この入力データが、第1ないし
第4のfir命令のB入力へ与えられることを示す。す
なわち、レジスタファイルにおいて第1ないし第4行の
Bレジスタに外部からの入力データが格納されることを
示す。
【0160】プログラム3:「fir」はfir命令を
示す。「fir(0, ,0.1,0)」はこのfir
命令における定数を示す。括弧内の値は入力の定数、す
なわちfir(A,B,C,D)における入力A、B、
CおよびDのそれぞれの定数を表わす。このプログラム
番号3のfir命令においては、Aの定数値が0、Bへ
は定数値でなく変数が与えられ、C入力の定数値が0.
5に設定され、Dの定数値が0に設定される。レジスタ
ファイルにおいては、定数は変更されない。複数回読出
が可能である。B入力には入力データが与えられ、この
データを格納するレジスタBにおいては単一代入単一読
出のルールが適用される。
【0161】「absorb!2(A)」はE出力およ
びF出力の行先を示す。この場合、「absorb」は
E出力はどの命令へも伝達されないことを示し、F出力
が第2のfir命令のA入力へ与えられることを示す。
すなわちレジスタファイルにおいて第2行のAレジスタ
へ格納されることを示す。E出力とF出力とは「!」で
区別される。
【0162】プログラム4、5:命令firの定数の定
義は上で示したプログラム3のそれと同じであり、その
行先についてもプログラム3の場合と同じである。すな
わち、第2のfir命令のF出力は第3のfir命令の
A入力へ与えられ、第3のfir命令のF出力は第4の
fir命令のA入力へ与えられる。
【0163】プログラム6:fir命令の定数について
は上と同じである。出力における「output」はこ
の第4のfir命令のF出力が装置外部へ出力され、出
力データとして利用されることを示す。
【0164】[FIRフィルタ操作の具体的動作]FI
Rフィルタ処理の場合においても以下のルールが適用さ
れる。
【0165】[基本ルール]第1行のエントリーのAレ
ジスタには定数が格納される。第2行ないし第4行のA
レジスタの値は初期値であり、新たに与えられるデータ
により更新される。また第1ないし第4行のCレジスタ
およびDレジスタの格納値は定数であるため、これらの
データは更新されない。
【0166】定数以外のデータには、すべてのレジスタ
において1回書込/1回読出すなわち単一代入単一読出
のルールが適用される。
【0167】Eレジスタに格納される行先情報およびF
レジスタに格納される行先情報により、複数かつ任意の
行先レジスタを指定することができる(プログラム可能
である)。このFIRフィルタ処理においてはBレジス
タの格納データはEレジスタの行先情報により指定され
た行先へ伝達されるが、この場合「absorb」であ
るため出力されない。シフト操作結果は、Fレジスタに
格納された行先情報が特定するレジスタへ伝達される。
【0168】乗算を行なう演算器が1つ、および加算お
よびシフトを含む演算器が1つ存在する。
【0169】[計算ルール]iir命令の場合と同様で
ある。すなわち、 (1) 演算は行番号にかかわらず必要データが揃った
ものから順次実行される。
【0170】(2) 演算は加算およびシフトが乗算よ
りも優先的に実行される。 (3) 同一の演算に対しデータが同時に揃った場合に
は、行番号の逆順、すなわち大きい行番号の命令に対す
る操作が実行される。
【0171】(4) 加算およびシフト複合演算におい
てFレジスタが複数の行先を指定する場合、行先のレジ
スタがすべて空状態でない限りその演算は実行されな
い。
【0172】(5) 後からの演算が前の演算より優先
されることはない(演算の追越しは生じない)。
【0173】次に具体的動作について説明する。 (0) 初期設定 図40はレジスタファイルにおける各レジスタの初期状
態と演算器との接続関係およびそのときのFIRデジタ
ルフィルタにおけるデータの配置を示す図である。
【0174】図40(A)において、初期状態において
は、第1行ないし第4行のCレジスタには乗算係数が定
数データとして格納され、また第1行ないし第4行のD
レジスタにはシフト操作におけるシフトビット数を示す
ためのデータが定数データとして格納される。
【0175】FIRフィルタ処理においては、Bレジス
タの格納データとCレジスタの格納データとが乗算器へ
与えられ、乗算操作を受ける。AレジスタとXレジスタ
のデータが加算操作を受け、次いでシフト操作を受け
る。乗算操作の結果はXレジスタへ格納される。加算お
よびシフト操作の演算結果はFレジスタに格納された行
先情報が特定するレジスタへ書込まれる。
【0176】図40(B)に示すように、初期状態にお
いては、乗算器における乗算係数(フィルタ係数)が設
定されかつブロック#4における除算器の除算係数が初
期設定される。係数4で除算をするため、シフト操作で
2ビット下位ビット方向へデータがシフトされる。
【0177】Aレジスタに格納されたデータはそれぞれ
加算器の一方入力のデータを与える。ブロック#1にお
ける加算器の一方入力は定数“0”に固定される。
【0178】(1) 実行サイクル1 図41は実行サイクル1における各レジスタのデータの
配置およびそのときのデジタルフィルタにおけるデータ
の配置を示す図である。この実行サイクル1(実行状態
1)においては、外部から入力データ“1”が与えら
れ、第1行ないし第4行のBレジスタにこの入力データ
が格納される。この状態においては、図41(B)に示
すように、乗算器の入力が確定した状態となる。
【0179】(2) 実行サイクル2 図42は実行サイクル2(実行状態2)のレジスタファ
イルにおける各レジスタのデータの配置およびそのとき
のレジスタフィルタのデータの分布を示す図である。
【0180】この実行サイクル2においてはまず第4行
のBレジスタの格納データとCレジスタの格納データの
乗算が実行される。乗算に必要なデータが揃いかつ一番
行番号の大きい行に対する乗算が実行される計算ルール
に従っている。この乗算結果は第4行のXレジスタに格
納される。すなわち、図42(B)に示すように、ブロ
ック#4において乗算器の出力が確定状態となる。
【0181】(3) 実行サイクル3 図43は実行サイクル3(実行状態3)におけるレジス
タのデータの配置およびそのときのフィルタにおけるデ
ータの分布を示す図である。実行サイクル3において
は、まず第4行のエントリーにおいて、Aレジスタおよ
びXレジスタのデータが揃ったためこれらのデータを用
いて加算およびシフト演算操作が実行される。この加算
およびシフト演算操作により出力データが生成される。
この加算およびシフト演算操作と平行して、第3行のB
レジスタの格納データとCレジスタの格納データとの乗
算が実行され、その乗算結果が第3行のXレジスタに格
納される。すなわち、図43(B)に示すように、ブロ
ック#4において、加算および除算が実行され、出力デ
ータ“0.1”が生成される。これと並行して、ブロッ
ク#3において、乗算が実行され、その乗算結果“0.
3”がXレジスタに格納される。
【0182】(4) 実行サイクル4 図44は実行サイクル4(実行状態4)におけるレジス
タファイルのデータの格納状態およびデジタルフィルタ
のデータの分布を示す図である。図44(A)に示すよ
うに、第2行のBレジスタの格納データとCレジスタの
格納データとの乗算が実行され、その乗算結果が第2行
のXレジスタ格納される。この乗算操作と並行して、第
3行のAレジスタおよびXレジスタのデータを用いて加
算およびシフト演算操作が実行され、その演算結果が第
4行のAレジスタに格納される。
【0183】すなわち、図44(B)に示すように、ブ
ロック#3における加算および遅延が実行される。
【0184】iir命令の場合、遅延操作はレジスタ間
のデータ転送により実現される。このfir命令におい
ては、遅延操作は、前段のブロックの加算およびシフト
操作が1サイクル遅れて実行されているため、等価的に
表現されていることになる。
【0185】同様に、ブロック#2において、乗算が実
行されており、その乗算器の出力が確定状態となる。
【0186】(5) 実行サイクル5 図45は実行サイクル5(実行状態5)の完了後のレジ
スタファイルにおける各レジスタの格納データおよびそ
のときのデジタルフィルタのデータの分布を示す図であ
る。
【0187】図45(A)に示すように、まず第1行の
BレジスタとAレジスタ、Cレジスタの格納データを用
いて乗算が実行され、その乗算結果が第1行のXレジス
タに格納される。この乗算と並行して、第2行のAレジ
スタとXレジスタの格納データを用いた加算およびシフ
ト演算操作が実行され、その演算操作結果が第3行のA
レジスタに格納される。
【0188】この乗算および加算・シフト演算操作と並
行して、第1行ないし第4行のBレジスタに新たな入力
データ“2”が格納される。
【0189】すなわち図45(B)に示すように、ブロ
ック#1において乗算器の出力が確定し、またブロック
#2において、その遅延素子の出力が確定状態となり、
かつさらにブロック#1〜#4の乗算器の入力が確定状
態となる。
【0190】(6) 実行サイクル6 図46は実行サイクル6(実行状態6)における各レジ
スタ格納データおよびそのときのデジタルフィルタにお
けるデータの分布を示す図である。図46(A)に示す
ように、第4行のBレジスタとCレジスタの格納データ
を用いて乗算が実行され、その乗算結果が第4行のXレ
ジスタに格納される。この乗算操作と並行して、第1行
のAレジスタとXレジスタの格納データを用いて加算お
よびシフト演算操作が実行され、その演算結果が第2行
のAレジスタに格納される。
【0191】すなわち、図46(B)に示すように、ブ
ロック#1の遅延素子の出力が新たに確定状態となり、
またブロック#4において、乗算器の出力が確定状態と
なる。
【0192】(7) 実行サイクル7 図47は実行サイクル7における各レジスタの格納デー
タおよびそのときのデジタルフィルタにおけるデータの
分布を示す図である。図47(A)に示すように、第4
行のAレジスタとXレジスタの格納データを用いて加算
およびシフト演算が実行され、その演算結果が出力デー
タとして出力される。
【0193】この加算およびシフト演算操作と並行し
て、第3行のBレジスタとCレジスタの格納データを用
いて乗算が実行され、その乗算結果が第3行のXレジス
タに格納される。
【0194】すなわち、図47(B)に示すように、ブ
ロック#3において乗算器の出力が確定し、またブロッ
ク#4において加算および除算が実行され出力データが
生成される。
【0195】(8) 実行サイクル8 図48は実行サイクル8(実行状態8)のレジスタファ
イルの各レジスタの格納データおよびそのときのデジタ
ルフィルタにおけるデータの分布を示す図である。
【0196】図48(A)に示すように、第3行のAレ
ジスタおよびXレジスタの格納データ用いて加算および
シフト演算操作が実行され、その演算結果が第4行のA
レジスタに格納される。この加算およびシフト演算操作
と並行して、第2行のBレジスタおよびCレジスタの格
納データを用いて乗算が実行され、その乗算結果が第2
行のXレジスタに格納される。
【0197】すなわち図48(B)に示すように、ブロ
ック#2において乗算器の出力データが確定し、またブ
ロック#3において、遅延素子の出力データが確定す
る。
【0198】(9) 実行サイクル9 図49は実行サイクル9(実行状態9)の各レジスタの
格納データおよびそのときのデジタルフィルタにおける
データの分布を示す図である。図49(A)に示すよう
に、第1行のBレジスタおよびCレジスタの格納データ
を用いて乗算が実行され、その乗算結果が第1行のXレ
ジスタに格納される。また、第2行のAレジスタとXレ
ジスタの格納データを用いて加算およびシフト演算が実
行され、その演算結果が第3行のAレジスタに格納され
る。これらの演算と並行して、第1行ないし第4行のB
レジスタに次の入力データが格納される。すなわち、図
49(B)に示すように、ブロック#1において乗算器
のデータが確定し、ブロック#2の遅延素子の出力デー
タが確定し、またブロック#1〜#4の乗算器の入力が
確定状態となる。
【0199】(10) 実行サイクル10 図50は実行サイクル10(実行状態10)のレジスタ
の格納データおよびそのときのデジタルフィルタのデー
タの分布を示す図である。図50(A)に示すように、
まず第4行のBレジスタおよびCレジスタの格納データ
を用いた乗算が実行され、その乗算結果が第4行のXレ
ジスタに格納される。
【0200】また第1行のAレジスタおよびXレジスタ
の格納データ用いて加算およびシフト演算が実行され、
その演算結果が第2行のAレジスタに格納される。
【0201】すなわち図50(B)に示すように、ブロ
ック#1の遅延素子の出力データが確定状態となり、ま
たブロック#4の乗算器の出力データが確定状態とな
る。
【0202】(11) 実行サイクル11 図51は実行サイクル11(実行状態11)の各レジス
タの格納データおよびそのときのデジタルフィルタにお
けるデータの分布を示す図である。図51(A)に示す
ように、まず第4行のAレジスタおよびXレジスタの格
納データを用いて加算およびシフト演算が実行され、そ
の演算結果が出力データとして出力される。この加算お
よびシフト演算と並行して、第3行のBレジスタとCレ
ジスタの格納データを用いた乗算が実行され、その乗算
結果が第3行のXレジスタに格納される。
【0203】すなわち、ブロック#3における乗算器の
出力データが確定状態となり、またブロック#4から出
力データが出力される。
【0204】(12) 実行サイクル12 図52は実行サイクル12(実行状態12)におけるレ
ジスタの格納データおよびデジタルフィルタにおけるデ
ータの分布を示す図である。図52(A)に示すよう
に、まず第2行のBレジスタおよびCレジスタの格納デ
ータを用いて乗算が実行され、その乗算結果が第2行の
Xレジスタに格納される。この乗算操作と並行して、第
3行のAレジスタおよびXレジスタを用いて加算および
シフト操作が実行され、その演算結果が第4行のAレジ
スタに格納される。
【0205】すなわち図52(B)に示すように、ブロ
ック#2における乗算器の出力が確定し、またブロック
#3の遅延素子の出力が確定状態となる。
【0206】(13) 実行サイクル13 図53は実行サイクル13(実行状態13)における各
レジスタの格納データおよびそのときのデジタルフィル
タにおけるデータの分布を示す図である。図53(A)
において、第1行のBレジスタおよびCレジスタの格納
データを用いて乗算が実行され、その乗算結果が第1行
のXレジスタに格納される。この乗算と並行して、第2
行のAレジスタおよびXレジスタの格納データを用いて
加算およびシフト演算が実行され、その演算結果が第3
行のAレジスタに格納される。これらの演算と並行し
て、第1行ないし第4行のB入力に新たな入力データが
格納される。
【0207】すなわち図53(B)に示すようにブロッ
ク#1〜#4の乗算器の入力が確定状態となり、またブ
ロック#1の乗算器の出力が確定し、またブロック#2
の遅延素子の出力が確定状態となる。
【0208】(14) 実行サイクル14 図54は、実行サイクル14(実行状態14)における
レジスタの格納データおよびそのときのデジタルフィル
タのデータの分布を示す図である。図54(A)におい
て、第4行のBレジスタおよびCレジスタの格納データ
を用いて乗算が実行され、その乗算結果が第4行のXレ
ジスタに格納される。この乗算と並行して、第1行のA
レジスタおよびXレジスタの格納データを用いて加算お
よびシフト演算が実行され、その演算結果か第2行のA
レジスタに格納される。
【0209】すなわち図54(B)に示すように、ブロ
ック#1の遅延素子の出力が確定状態となり、またブロ
ック#4の乗算器の出力が確定状態となる。
【0210】(15) 実行サイクル15 図55は実行サイクル15(実行状態15)におけるレ
ジスタの格納データおよびそのときのデジタルフィルタ
におけるデータの分布を示す図である。図55(A)に
おいて、まず第4行のAレジスタおよびXレジスタの格
納データを用いて加算およびシフト演算が実行され、そ
の演算結果は出力データとして出力される。この加算お
よびシフト演算と並行して、第3行のBレジスタとCレ
ジスタの格納データを用いて乗算が実行され、その乗算
結果が第3行のXレジスタに格納される。
【0211】すなわち図55(B)に示すように、#4
から出力データが生成されて出力され、かつブロック#
3において乗算器の出力が確定状態となる。
【0212】上述のように、1つの乗算器と1つの加算
およびシフト演算器を用いる構成においては、行番号の
大きいエントリーのデータを用いてまず乗算が実行さ
れ、次いで加算およびシフト演算が実行される。この操
作を、加算およびシフト演算操作を乗算操作と並行に実
行し、Bレジスタに格納されるデータがすべて消費され
るまで順次実行する。これにより、FIRフィルタ処理
を高速で実行することができる。
【0213】図56は前述のサイクル2ないし16にお
ける各演算器の稼動状況を示す図である。図56におい
て○印は稼動状態を示し、空白はデータ待ち状態を示
す。図56に示されるように、第4サイクルないし第1
6サイクルにおいて乗算器(X)および加算およびシフ
ト複合演算器(+shift)はすべて稼動状態にあ
り、初期動作時を除く安定時においては演算器は100
%のフル稼動状態となっており、命令実行のオーバーヘ
ッドなく高速でフィルタ処理が行なわれているのが見ら
れる。
【0214】上述の説明においては、1個の乗算器およ
び1個の加算シフト演算器が利用されている。この場合
4個の乗算器および4個の加算シフト演算器を用いてフ
ィルタ処理を実行することができる。以下この場合の構
成について説明する。
【0215】(0) 初期状態 図57は、4個の乗算器と、4個の加算およびシフト演
算器を用いた場合の各レジスタの初期状態を示す図であ
る。初期状態においては、第1行ないし第4行のBレジ
スタに入力データが格納される。またこのとき、Cレジ
スタおよびDレジスタにおいて乗算係数およびシフト係
数が定数データとして初期設定される。さらに、Aレジ
スタにおいては、その初期値が設定される。
【0216】(1) 実行サイクル1 図58は実行サイクル1におけるレジスタの各格納デー
タとそのときのデジタルフィルタにおけるデータの分布
を示す図である。実行サイクル1(実行状態1)におい
ては、加算およびシフト演算動作は実行されない。乗算
動作のみが実行される。すなわち図58(A)に示すよ
うに、第1行ないし第4行のBレジスタとCレジスタの
格納データの乗算が行なわれ、各乗算結果が対応のXレ
ジスタに格納される。
【0217】すなわち図58に示すように、ブロック#
1〜#4各々において乗算が並列に実行され、各乗算器
の出力データが確定状態となる。
【0218】(2) 実行サイクル2 図59は実行サイクル2のレジスタの格納データおよび
そのときのデジタルフィルタにおけるデータの分布を示
す図である。図59(A)において、第1ないし第4行
のAレジスタおよびXレジスタの格納データを用いて加
算およびシフト演算が実行される。このとき、演算結果
は次のエントリー(次の行)のAレジスタに格納され
る。第4行のAレジスタおよびCレジスタのデータの演
算結果は出力データとして出力される。
【0219】すなわち図59(B)に示すように、各ブ
ロック#1〜#4各々において、遅延素子の出力データ
が確定状態となるとともに、ブロック#4においては、
除算器の出力が確定状態となり、出力データが生成され
る。
【0220】この第2サイクルにおいてはBレジスタに
は有効データは存在しないため、乗算は実行されない。
すなわち、複数個の乗算器と複数個の加算およびシフト
演算器を利用する場合には、乗算が行なわれ、次いで加
算およびシフト演算が実行される。この動作が繰り返し
新しい入力データに対して実行される。
【0221】この第2サイクルにおいて、加算およびシ
フト演算と並行して、Bレジスタへのデータの格納およ
び乗算が並行に実行される。すなわち、第1サイクルに
おいて、乗算が行なわれると次いで第1行ないし第4行
のBレジスタにデータが入力される。したがって、この
場合、第2サイクル以降において、乗算器と加算シフト
演算器は常時稼動状態となり、演算器が入力データ待合
わせ状態となることはなく、高速でフィルタ処理を実行
することが可能となる。
【0222】ここで図58(B)および図59(B)に
おいて、括弧で示したデータは、それぞれのサイクルに
おいて並行して実行された操作の結果得られるデータを
示す。
【0223】レジスタとバス(演算器とレジスタとを結
合するバス)との接続はプログラムにより決定される。
複数の演算器、すなわち複数の乗算器と複数の加算およ
びシフト演算器を用いる構成の場合、各行並列に動作す
るため、各行のレジスタと演算器との接続はプログラム
より一意的に固定される。この場合、同一種類の演算に
おいて各行の優先順位を判別する必要はない。
【0224】しかしながら、1個の乗算器と1個の加算
およびシフト複合演算器を利用する構成の場合、1つの
演算(乗算または加算シフト演算)を行なう場合、各行
において優先順位を判別する必要がある。この優先順位
を判別し、必要なデータが揃った場合にデータを読出す
構成について以下に説明する。
【0225】図60は、レジスタファイルにおける各レ
ジスタの書込/読出制御を行なう構成を示す図である。
この図60は、図2に示す書込/読出制御部の構成をよ
り具体的に示す。
【0226】図60において、代表的に2種類のレジス
タを示す。この2種類のレジスタは同一の演算に使用さ
れるデータを格納する。
【0227】レジスタ#11に対し、書込ゲート311
aおよび読出ゲート312aが設けられる。レジスタ#
12に対し書込ゲート311bおよび読出ゲート312
bが設けられる。
【0228】第2行において、レジスタ#21に対し書
込ゲート311cおよび読出ゲート312cが設けられ
る。同様にレジスタ#12に対し、書込ゲート311d
および読出ゲート312dが設けられる。
【0229】第3行において、レジスタ#31に対し書
込ゲート311eおよび読出ゲート312eが設けられ
る。レジスタ#32に対し書込ゲート311fおよび読
出ゲート312fが設けられる。
【0230】第4行において、レジスタ#41に対し書
込ゲート311gおよび読出ゲート312gが設けら
れ、レジスタ#42に対し書込ゲート311hおよび読
出ゲート312hが設けられる。
【0231】書込ゲート311a〜311hはそれぞれ
ライトイネーブル信号WE11、WE12、WE21、
WE22、WE31、WE32、WE41およびWE4
2に応答してそれぞれ活性状態となり、関連の書込デー
タバス362aまたは362b上のデータを対応のレジ
スタへ書込む。
【0232】各行において、レジスタの読出を制御する
ために読出制御回路315a〜315dが設けられる。
【0233】第4行の読出制御回路315dはライトイ
ネーブル信号WE41およびWE42がともに活性状態
となり、レジスタ#41および#42にデータが書込ま
れたときに活性状態となり、対応の読出ゲート312g
および312hをイネーブルし、レジスタ#41および
#42をそれぞれ読出データバス360aおよび360
bへ接続する。読出データバス360aおよび360b
は演算器350に結合される。演算器350は乗算器ま
たは加算シフト複合演算器である。
【0234】第3行の読出制御回路315cは、ライト
イネーブル信号WE31およびWE32がともに活性状
態となり、かつ読出制御回路315dがデータ読出を指
示していないときに活性化され、読出ゲート312eお
よび312fを活性状態とする。
【0235】第2行の読出制御回路315bは、ライト
イネーブル信号WE21、WE22が活性状態となりか
つ、読出制御回路315cおよび315dがともにデー
タ読出を指示していないときに活性化され、対応の読出
ゲート312cおよび312dを活性状態とする。
【0236】第1行の読出制御回路315aは、ライト
イネーブル信号WE11およびWE12の活性状態にな
り、かつ、読出制御回路315b、315cおよび31
5dがデータ読出を指示していないときに活性状態とな
り、対応の読出ゲート312aおよび312bを活性状
態とする。
【0237】演算器350の出力はレジスタ選択回路3
50を介して所望のデータバスへ伝達される。いずれの
データバスへこの演算器350の出力が伝達されるかは
プログラムにより決定される。レジスタ選択回路351
は、EレジスタまたはFレジスタの内容をデコードし、
対応の書込ゲートを活性化するためのライトイネーブル
信号WEを発生するとともに、演算器350からのデー
タを対応の書込データバス上に伝達する。演算器350
の出力がいずれの書込データバス上に伝達されるかは実
現されるフィルタの構造により決定される。演算器35
0が乗算器の場合には、この乗算器出力はXレジスタへ
出力されるため、Xレジスタ対応の書込データバスへ伝
達される。この場合、レジスタ選択回路351は、別の
構成が用いられ、EレジスタまたはFレジスタにかかわ
りなく、読出制御回路315a〜315dの出力に応じ
て、データ読出を受けた行に対応するXレジスタへデー
タを伝達する。
【0238】上述の構成において、読出制御回路315
a〜315dは下位の読出制御回路(行番号の大きい読
出制御回路)がデータ読出を行なっていないときにのみ
ライトイネーブル信号に応答して読出ゲートをイネーブ
ル状態とする。それにより、常に優先順位に従ってデー
タの読出を実行することができるとともに、演算に必要
なデータが揃ったときには即座に演算を実行することが
できる。
【0239】図61は読出制御回路の具体的構成の一例
を示す図である。図61(A)において、読出制御回路
315は、一方のライトイネーブル信号WEa1をその
S入力に受けるセット・リセット(SR)フリップフロ
ップ401と、他方のライトイネーブル信号WEa2を
そのS入力に受けるSRフリップフロップ402と、S
Rフリップフロップ401および402の出力と、下位
側の読出制御回路のインバータ回路の出力を受けるAN
D回路403と、AND回路403の出力を反転して上
位の読出制御回路に含まれるAND回路の入力へ与える
インバータ回路405と、AND回路403の出力をS
入力に受けるSRフリップフロップ404と、SRフリ
ップフロップ404のQ出力を所定時間遅延させる遅延
回路406を含む。
【0240】遅延回路406の出力はフリップフロップ
401、402および404のリセット入力Rへ与えら
れる。またフリップフロップ404のQ出力は対応の読
出ゲートへ読出イネーブル信号として与えられる。次に
動作についてその動作波形図である図61(B)を参照
して説明する。
【0241】下位のインバータ回路の出力が“L”の場
合には、下位のレジスタ(行番号の大きいレジスタ)に
おいてデータが揃っており先に下位側において演算が実
行されることを示す。したがってこの場合、ライトイネ
ーブル信号WEa1およびWEa2がともに活性状態と
なり対応のレジスタに有効データが書込まれ、フリップ
フロップ401および402がセット状態となった場合
でもAND回路403の出力は“L”状態にある。
【0242】下位のインバータ回路の出力が“H”に立
上がると、この行のレジスタの格納データを用いて演算
が実行されるべきことを示す。このとき、AND回路4
03の出力が“H”に立上がり、インバータ回路405
の出力が“L”に立下がる。インバータ回路405の出
力が上位のAND回路の入力に与えられている。これに
より上位側における演算が禁止される。
【0243】AND回路403の出力が“H”に立上が
ると、フリップフロップ404のQ出力が“H”へ立上
がり、対応の読出ゲートがイネーブル状態となり、レジ
スタの内容が読出データバスに伝達される。所定時間が
経過すると、遅延回路406の出力よりフリップフロッ
プ401、402および404がリセットされ、読出ゲ
ートはディスエーブル状態とされるとともに、AND回
路403の出力も“L”に立下がり、上位の読出制御回
路を読出可能状態に設定する(インバータ回路405の
出力が“H”となる)。この図61に示す構成におい
て、フリップフロップ404はAND回路403の
“H”の信号をセット入力Sに受けているときにリセッ
ト入力Rに“H”の信号を受けてリセット状態とされ
る。この構成は、セット状態にする駆動トランジスタよ
りもリセット状態に設定するトランジスタの方の駆動能
力を大きく設定することにより実現される。すなわち、
セット能力よりもリセット能力の方が大きくされる。
【0244】この構成において、一方のレジスタが定数
データを格納する場合には、フリップフロップ401ま
たは402のQ出力を常時“H”状態に設定する必要が
ある。この構成は、定数データを格納するレジスタに対
応するフリップフロップのリセット入力Rに対しては、
遅延回路406の出力が伝達されないようにプログラム
により固定する。すなわち、遅延回路406とフリップ
フロップ401または402との間にスイッチ回路を設
けておき、このスイッチ回路の導通/遮断を定数値であ
るか否かを示すプログラムより決定する。
【0245】上述の構成により、優先順位を乱すことな
く必要なデータが揃ったときに演算を実行することが可
能となる。ここで、乗算操作と加算シフト複合演算操作
とでは、加算およびシフト演算操作が優先される。この
場合、加算シフト演算操作に利用されるレジスタに対す
る読出制御回路の出力を、乗算回路に利用されるデータ
を格納するレジスタに設けられる読出制御回路の活性/
不活性を指定する信号として利用すればよい(すなわち
AND回路403の入力へ与えればよい)。
【0246】[処理性能]本発明によるデータ駆動型フ
ィルタ装置を用いた場合、従来のデータ駆動型プロセサ
を用いるフィルタ処理と比べて、IIRフィルタ処理を
実現する場合には45ないし60倍の処理速度が得られ
る。同様にデータ駆動型プロセサを用いてFIRフィル
タ処理を実現する場合の構成と比べて5ないし10倍の
処理速度を得ることができる。
【0247】また専用LSIを用いるフィルタ装置と比
べて、タップ数を自由に設定することができる(レジス
タファイルにおけるエントリーの数の増減はプログラム
により容易に実行することができる)。このため、フィ
ルタ装置を処理用途に応じて任意にその構成を設定する
ことができ、いずれの用途においても容易に対応するこ
とが可能となる。
【0248】さらに、上述の実施例においては、IIR
フィルタおよびFIRフィルタそれぞれを個別に構成し
ているが、両者を組合わせる結合型フィルタをも容易に
構成することが可能となる。
【0249】
【発明の効果】以上のように、この発明によれば、デー
タ、定数および初期値が単一代入単一読出のルールで書
込/読出が行なわれる複数のレジスタを有するレジスタ
ファイルと、乗算器と加算シフト複合演算器とを有する
演算器群とでフィルタ装置を構成したため、FIRフィ
ルタ処理およびIIRフィルタ処理における基本フィル
タ演算を最小命令単位として表現することができ、フィ
ルタ処理にのみ関連する命令を用いてフィルタ処理を実
行することができ、高速でフィルタ処理を実行すること
が可能となる。
【0250】また、レジスタファイルのエントリー数は
タップ数に対応するため、このエントリー数はプログラ
ムにより設定可能であり、さらに任意の構成のフィルタ
を容易に実現することが可能となる。
【図面の簡単な説明】
【図1】この発明に従うデータ駆動型フィルタ装置の全
体の構成を概略的に示すブロック図である。
【図2】図1に示すレジスタファイルの概略構成を示す
図である。
【図3】iir命令におけるレジスタファイル内のレジ
スタ間の接続およびレジスタファイル内のレジスタの構
成を示す図である。
【図4】fir命令におけるレジスタファイル内のレジ
スタ間の接続およびレジスタファイルの構成を示す図で
ある。
【図5】iir命令およびfir命令両者兼用時におけ
るレジスタファイルの接続構成およびレジスタファイル
の構成を示す図である。
【図6】iir命令の記述形式およびその内部構造を示
す図である。
【図7】fir命令の記述形式およびその内部構造を示
す図である。
【図8】2次のIIRフィルタの構成と本発明における
iir命令への分解手順を示す図である。
【図9】図8に示す2次のIIRフィルタをiir命令
で記述した際のフローグラフを示す図である。
【図10】図9に示すフローグラフをテキスト形式で記
述した際のプログラムコーディングを示す図である。
【図11】図8に示すフィルタ処理を実現する際の初期
状態におけるレジスタファイルの各レジスタの格納デー
タの状態および演算器との接続構成を示す図である。
【図12】IIRフィルタ処理実行時における実行サイ
クル1におけるレジスタファイル内の各レジスタの格納
データおよびそのときのデジタルフィルタにおけるデー
タの分布を示す図である。
【図13】IIRフィルタ処理実行時における第2実行
サイクルにおける各レジスタの格納データおよびそのと
きのデジタルフィルタのデータの分布を示す図である。
【図14】IIRフィルタ処理実行時における第3実行
サイクルにおける各レジスタの格納データおよびそのと
きのデジタルフィルタのデータの分布を示す図である。
【図15】IIRフィルタ処理実行時における第4実行
サイクルにおける各レジスタの格納データおよびそのと
きのデジタルフィルタのデータの分布を示す図である。
【図16】IIRフィルタ処理実行時における第5実行
サイクルの動作を詳細に示す図である。
【図17】IIRフィルタ処理実行時における第5実行
サイクルの詳細な動作およびこのサイクル完了時におけ
る各レジスタの格納データおよびそのときのデジタルフ
ィルタにおけるデータの分布を示す図である。
【図18】IIRフィルタ処理実行時における第6実行
サイクル時の各レジスタの格納データおよびそのときの
デジタルフィルタにおけるデータの分布を示す図であ
る。
【図19】IIRフィルタ処理実行時における第7実行
サイクル時の各レジスタの格納データおよびそのときの
デジタルフィルタにおけるデータの分布を示す図であ
る。
【図20】IIRフィルタ処理実行時における第8実行
サイクル時の各レジスタの格納データおよびそのときの
デジタルフィルタにおけるデータの分布を示す図であ
る。
【図21】IIRフィルタ処理実行時における第9実行
サイクル時の各レジスタの格納データを示す図である。
【図22】IIRフィルタ処理実行時における第10実
行サイクル時の各レジスタの格納データを示す図であ
る。
【図23】IIRフィルタ処理実行時における第11実
行サイクル時の各レジスタの格納データを示す図であ
る。
【図24】IIRフィルタ処理実行時における第12実
行サイクル時の各レジスタの格納データを示す図であ
る。
【図25】IIRフィルタ処理実行時における第13実
行サイクル時の各レジスタの格納データを示す図であ
る。
【図26】IIRフィルタ処理実行時における第14実
行サイクル時の各レジスタの格納データを示す図であ
る。
【図27】IIRフィルタ処理実行時における第15お
よび16実行サイクル時の各レジスタの格納データを示
す図である。
【図28】IIRフィルタ処理実行時の第2ないし第1
6動作サイクル時における各演算器の稼動状態を示す図
である。
【図29】複数の演算器を用いたIIRフィルタ処理実
行時における各レジスタの格納データおよびそのときの
デジタルフィルタにおけるデータの分布を示す図であ
る。
【図30】複数の演算器を用いてIIRフィルタ処理を
実行する際の第1実行動作サイクル時における各レジス
タの格納データおよびそのときのデジタルフィルタ内の
データの分布を示す図である。
【図31】複数の演算器を用いてIIRフィルタ処理を
実行する際の第2実行サイクル時の格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図32】複数の演算器を用いてIIRフィルタ処理を
実行する際の第3の動作サイクル時における各レジスタ
の格納データおよびそのときのデジタルフィルタ内のデ
ータの分布を示す図である。
【図33】複数の演算器を用いてIIRフィルタ処理を
実行する際の乗算操作完了時における各レジスタの格納
データおよびそのときのデジタルフィルタ内のデータの
分布を示す図である。
【図34】複数の演算器を用いてIIRフィルタ処理を
実行する際の第3の動作サイクル時における各レジスタ
の格納データおよびそのときのデジタルフィルタ内のデ
ータの分布を示す図である。
【図35】複数の演算器を用いてIIRフィルタ処理を
実行する際の第4の動作サイクル時における各レジスタ
の格納データおよびそのときのデジタルフィルタ内のデ
ータの分布を示す図である。
【図36】複数の演算器を用いてIIRフィルタ処理を
実行した際の各動作サイクル時における演算器の稼動状
況を示す図である。
【図37】4次のFIRフィルタの構成およびfir命
令への分解手順を示す図である。
【図38】図37に示す4次のFIRフィルタをfir
命令で記述する際のフローグラフを示す図である。
【図39】図38に示すフローグラフをテキスト形式で
記述した際のプログラムコーディングを示す図である。
【図40】FIRフィルタ処理実行時における初期状態
の各レジスタ格納データおよび演算器との接続関係とそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図41】FIRフィルタ処理実行時における第1実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図42】FIRフィルタ処理実行時における第2実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図43】FIRフィルタ処理実行時における第3実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図44】FIRフィルタ処理実行時における第4実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図45】FIRフィルタ処理実行時における第5実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図46】FIRフィルタ処理実行時における第6実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図47】FIRフィルタ処理実行時における第7実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図48】FIRフィルタ処理実行時における第8実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図49】FIRフィルタ処理実行時における第9実行
サイクル時における各レジスタの格納データおよびその
ときのデジタルフィルタ内のデータの分布を示す図であ
る。
【図50】FIRフィルタ処理実行時における第10実
行サイクル時における各レジスタの格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図51】FIRフィルタ処理実行時における第11実
行サイクル時における各レジスタの格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図52】FIRフィルタ処理実行時における第12実
行サイクル時における各レジスタの格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図53】FIRフィルタ処理実行時における第13実
行サイクル時における各レジスタの格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図54】FIRフィルタ処理実行時における第14実
行サイクル時における各レジスタの格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図55】FIRフィルタ処理実行時における第15実
行サイクル時における各レジスタの格納データおよびそ
のときのデジタルフィルタ内のデータの分布を示す図で
ある。
【図56】FIRフィルタ処理実行時における第2ない
し第16実行サイクル時における各演算器の稼動状況を
示す図である。
【図57】複数の演算器を用いたFIRフィルタ処理実
行時における各レジスタの格納データを示す図である。
【図58】複数の演算器を用いてFIRフィルタ処理を
実行する際の第1動作サイクル時における各レジスタの
格納データおよびそのときのデジタルフィルタ内のデー
タの分布を示す図である。
【図59】複数の演算器を用いてFIRフィルタ処理を
実行する際の第2動作サイクル時における各レジスタの
格納データおよびそのときのデジタルフィルタ内のデー
タの分布を示す図である。
【図60】レジスタファイル内のレジスタの読出制御を
行なう構成の一例を示す図である。
【図61】図60に示す読出制御回路の構成および動作
を示す図である。
【符号の説明】
1,1a〜1n 乗算器 2,2a〜2n 加算シフト複合演算器 10 レジスタファイル 20 入力部 22 加算器 24 シフト演算器 30 出力部 40 第1の演算器群 50 第2の演算器群 DAF データフィールド DEF 行先フィールド DAR データレジスタ DER 行先レジスタ A1 レジスタ A2 レジスタ C レジスタ B レジスタ X レジスタ D レジスタ E レジスタ F レジスタ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 15/82 630 G06F 15/82 630E 650 650A (56)参考文献 特開 昭64−69115(JP,A) 特開 昭58−13012(JP,A) 特開 昭58−147223(JP,A) 特開 昭58−147224(JP,A) シャープ技報、[52](1992−3)畠 山耕一,芳田真一,宮田宗一「32ビッ ト・データ駆動型プロセッサの性能評 価」p.53−56 (58)調査した分野(Int.Cl.7,DB名) H03H 17/02 653 H03H 17/02 613 H03H 17/02 655 H03H 17/02 671 G06F 15/82 610 G06F 15/82 630 G06F 15/82 650 JICSTファイル(JOIS) 実用ファイル(PATOLIS) 特許ファイル(PATOLIS)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のレジスタを有するレジスタファイ
    ルを備え、前記レジスタファイルは、処理すべきおよび
    処理後のデータを格納するデータフィールドと、このデ
    ータフィールドにおけるレジスタを特定する行先情報を
    格納する行先フィールドとを含み、かつ前記レジスタフ
    ァイルの1つのエントリーはデータフィールドに含まれ
    るデータレジスタと行先フィールドに含まれる行先レジ
    スタとを有し、 外部からのデータを受け、前記レジスタファイルのデー
    タフィールド内の所定のレジスタへ該受けたデータを書
    込むデータ入力手段と、 乗算器と加算シフト複合演算器とを含む演算手段と、 前記レジスタファイルの前記データフィールド内のデー
    タレジスタの内容を読出し前記演算手段へ与える読出手
    と、 前記演算手段の出力を前記データフィールド内のレジス
    タへ書込む書込手段とを備え、前記書込手段は前記行先
    フィールド内の行先レジスタが記憶する行先情報が示す
    データレジスタへ前記演算手段の出力を書込む手段と、前記データレジスタの書込み/読出し先を可変とする手
    段とを含み、 前記レジスタファイルの前記データフィールド内の所定
    のデータレジスタの内容を読出し装置外部へ出力する出
    力手段を備える、データ駆動型フィルタ装置。
  2. 【請求項2】 請求項1に記載のデータ駆動型フィルタ
    装置において、更に、前記レジスタファイルのエントリ
    ー数を可変とする手段を備える、データ駆動型フィルタ
    装置。
JP04209918A 1992-08-06 1992-08-06 データ駆動型フィルタ装置 Expired - Fee Related JP3140853B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04209918A JP3140853B2 (ja) 1992-08-06 1992-08-06 データ駆動型フィルタ装置
US08/416,538 US5636150A (en) 1992-08-06 1995-04-03 Data driven type digital filter unit and data driven type information processor including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04209918A JP3140853B2 (ja) 1992-08-06 1992-08-06 データ駆動型フィルタ装置

Publications (2)

Publication Number Publication Date
JPH0661788A JPH0661788A (ja) 1994-03-04
JP3140853B2 true JP3140853B2 (ja) 2001-03-05

Family

ID=16580823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04209918A Expired - Fee Related JP3140853B2 (ja) 1992-08-06 1992-08-06 データ駆動型フィルタ装置

Country Status (1)

Country Link
JP (1) JP3140853B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505221B1 (en) * 1999-09-20 2003-01-07 Koninklijke Philips Electronics N.V. FIR filter utilizing programmable shifter
JP2004030366A (ja) 2002-06-27 2004-01-29 Sharp Corp フィルタ装置、データ駆動型情報処理装置、フィルタ方法、フィルタプログラムおよびフィルタプログラムを記録した機械読取り可能な記録媒体
WO2004034247A1 (ja) * 2002-10-10 2004-04-22 Fujitsu Limited 前置処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
シャープ技報、[52](1992−3)畠山耕一,芳田真一,宮田宗一「32ビット・データ駆動型プロセッサの性能評価」p.53−56

Also Published As

Publication number Publication date
JPH0661788A (ja) 1994-03-04

Similar Documents

Publication Publication Date Title
US5636150A (en) Data driven type digital filter unit and data driven type information processor including the same
US4633386A (en) Digital signal processor
JPH07507411A (ja) 2の累乗である係数を用いるディジタルフィルタ
US4947363A (en) Pipelined processor for implementing the least-mean-squares algorithm
US4939684A (en) Simplified processor for digital filter applications
WO2000062421A1 (en) Digital filter and method for performing a multiplication based on a look-up table
WO2000008756A1 (en) Multiplierless digital filtering
JP3140853B2 (ja) データ駆動型フィルタ装置
JPH082014B2 (ja) 多段デジタル・フィルタ
JP4388141B2 (ja) ディジタルフィルタ用共有リソース
US5886912A (en) Processing elements connected in cascade having a controllable bypass
JPH03217112A (ja) デジタル信号処理回路
JP4295234B2 (ja) Fir型デジタルフィルタ
JP3701033B2 (ja) データ駆動型情報処理装置
Ramesh et al. Implementation and Design of FIR Filters using Verilog HDL and FPGA
EP0928518B1 (en) Parallel decimator apparatus
JPH0113244B2 (ja)
JP2922451B2 (ja) 信号処理装置
Lakshmanna et al. FPGA implementation of High Order FIR Filter Using Distributed Arithmetic operation
JPH04364525A (ja) 並列演算装置
JPS5813012A (ja) ディジタル信号処理回路
JPS62293811A (ja) フアイナイト・インパルス・レスポンス・デジタル・フイルタ
JP2545798B2 (ja) デイジタル信号処理回路
JPH06309164A (ja) ディジタル信号処理回路
JPH09205346A (ja) ディジタルフィルタ

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000718

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071215

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081215

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees