(57)【特許請求の範囲】
【請求項１】
ディジタルフィルタを形成するように主プロセッサと連携して使用され、複数のフィルタ処理素子を有するプログラム可能な副プロセッサにおいて、
前記複数のフィルタ処理素子の各々が、入力データを格納する入力データメモリと、前記入力データメモリから入力データを受信し、前記入力データを所望のビット数を持つデータに変換する変換ユニットと、前記変換ユニットにより供給される前記変換されたデータをそれぞれ受信する第１加算器及び第２加算器と、前記第１加算器の結果出力部に結合された入力部を持つ第１乗算器と、前記第２加算器の結果出力部に結合された入力部を持つ第２乗算器と、前記第１乗算器の他の入力部及び前記第２乗算器の他の入力部に結合された読取り出力部を持つ係数メモリと、前記第１乗算器の出力部及び前記第２乗算器の出力部にそれぞれ結合された入力部を持つ加算／減算器と、前記加算／減算器の出力部に結合された入力部を持ち、クロックの各サイクルにおいて数式の演算の中間結果を供給する出力部を持つ最終加算器とを有し、
前記フィルタ処理素子は更に、複数の部分結果レジスタを有し、当該レジスタのそれぞれが、前記最終加算器の出力部に結合された書込み入力部と、当該最終加算器の前記入力部の一つに結合された読取り出力部とを有し、前記フィルタ処理素子の各々は、前記最終加算器の出力部を介して結果を他のフィルタ処理素子に送信し、前記所望のビット数が、前記第１加算器及び第２加算器で使用されるビット数であることを特徴とするプログラム可能な副プロセッサ回路。
【請求項２】
請求項１に記載のプログラム可能な副プロセッサ回路において、
前記係数メモリから得られた係数を処理しかつ、当該メモリに当該係数を再ローディングする手段を有する更新ユニットを含むことを特徴とするプログラム可能な副プロセッサ回路。
【請求項３】
請求項２に記載のプログラム可能な副プロセッサ回路において、
前記更新ユニットが、前記入力データメモリから前記入力データを入力されるsgn演算器と、前記sgn演算器の結果を格納するレジスタsgn_xと、前記レジスタからの前記sgn演算器の結果を受け入れる入力部、及び前記主プロセッサからエラー信号を受入れる他の入力部を持つエクスクルーシブオアゲートと、前記エクスクルーシブオアゲートの出力に基づいて前記係数メモリからの係数値及び適応ステップに対応する定数を加算又は減算する加算／減算器とを有することを特徴とするプログラム可能な副プロセッサ回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ディジタルフィルタを形成するように主プロセッサと連携した使用に向けられるプログラム可能な副プロセッサ回路であって、制御ユニットにより制御されかつ、それぞれ少なくとも一つの加算器の入力に結合された読取り出力を持つ入力データレジスタを持つ複数のフィルタ処理素子と、当該加算器の結果出力に結合された入力を持ちかつ、他の入力が係数メモリの読取り出力に結合され、さらにクロックの各サイクルにおいて数式の演算の中間結果を供給する出力を持つ最終加算器の入力に結合された結果出力を有する少なくとも一つの多重器とを有するものに関する。
【０００２】
【従来の技術】
上述の回路は、複数のフィルタが要求される、例えば符号間干渉の低減、データレートの変更若しくは通信チャネルで発生するノイズの低減するためのマルチメディア装置と呼ばれる種々の装置として特に使用される。
【０００３】
ディジタルフィルタは基本的に、係数及び／若しくは加算値により特に乗算処理される信号が発生しかつ、次いで再入力される信号が間に生じる直列素子を有する。ディジタルフィルタを実現するには、３つの方法が知られている。一つは、特別なアルゴリズムの作用でフィルタを形成するＤＳＰ形式のプロセッサを使用する。なおこの方法は、大きな自由度を提供するが、フィルタの性能、特に速度に関して非常に制約を生じる。二つ目は、フィルタを直接形成する特化回路を使用する。この方法は、実現すべき高性能を可能にするが、多くの複雑な回路の開発が必要である。三つ目は、特別なプログラム可能な回路を使用する。この方法は、特化回路の高性能とＤＳＰプロセッサの高い柔軟性を適度に持ち合せる。特殊なプログラム可能なフィルタ（特化プログラムフィルタ）は、プロセッサを使用するプログラム可能なフィルタを含む。これは、フィルタにおいて実施すべき工程に最小限必要な状態に無駄を省いたＤＳＰプロセッサにより基本的に構築される。この内容は、最も興味深い回答である。
【０００４】
特化プログラムフィルタは、プログラム可能な係数を格納するレジスタを有する。このレジスタは、一般に、フィルタの与えられた形式、対称、帯域半減（half-band）、補間、デシメーション（decimation）、適応、複素形式を実現するために形成される。
【０００５】
【発明が解決しようとする課題】
このようなプログラムフィルタは、ヨーロッパ特許第EP0732809号から既知である。この文献によるプロセッサは、カスケード配置されかつ、同じクロック周波数を持つ２つのフィルタの演算が可能である。この演算には、２つのフィルタの部分的な結果を交互に格納する２つのレジスタを使用する。
【０００６】
本発明は、各々が異なるデータフォーマット及び異なるデータ入力レートを持つ場合であっても、フィルタの異なる形式の多重化を可能にするプログラム可能な回路を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上述の目的のため、複数の異なるフィルタを多重化について、個々のフィルタ処理素子は更に、多重化する所望のフィルタ数に等しい数の多数の部分結果レジスタを有する。個々のレジスタは、最終加算器の出力に結合された書込み入力と、最終加算器の入力の一つに結合された読取り出力を有する。
【０００８】
即ち、実数もしくは複素数である異なるフォーマットを持つ複数のフィルタは、処理可能である。
【０００９】
本発明の他の特別な実施例は、請求項２乃至８に規定されている。
【００１０】
本発明の上述の詳細な特徴は、限定されることのない本発明の実施例に係る以下の説明から明らかになるであろう。
【００１１】
【実施例】
異なる形式のフィルタを実現するにあたって、フィルタ有限インパルス応答フィルタが使用される。異なる形式のフィルタの各々は、実際、特性が標準フィルタの複雑性を低減若しくは増大させることにより得られる有限インパルス応答フィルタである。回路により処理可能なフィルタ形式は以下のものである。
【００１２】
対称フィルタ：このフィルタは、十分に単純化すべき多重器及びメモリを実現する対称係数を有する。実際問題、長さＬのみを有するフィルタ用に、［Ｌ／２］係数、［Ｌ／２］多重、Ｌ−１加算が必要である。対称フィルタは、以下の数式１で表される。
【数１】
0004854826.tif 000002
【００１３】
ここでｘ（１）は、瞬間ｉにおける入力信号で、ｎは図示しない既知のクロックにより計数された時間を示し、ｋは多数の係数で、そしてｗｋは係数ｋに対応する係数である。
【００１４】
適応フィルタ：このフィルタは、エラー信号を最小にするための係数に適応することで通信チャネルに適応可能なフィルタである。この適応フィルタは、以下の数式２及び数式３で表される。
【数２】
0004854826.tif 000003
【数３】
0004854826.tif 000004
【００１５】
ここでＫは適応ステップに対応し、x(n-i)＊は、データが複素数の場合x(n-1)の共役複素数で、e(n)は結果のエラーである。エラーは、ホストプロセッサにより演算される。数３のアルゴリズムの複雑さを低減する目的で、数４に示すアルゴリズムが演算速度を改善するエラー及びデータの演算用に使用される。
【数４】
0004854826.tif 000005
【００１６】
デシメーションフィルタ：このフィルタは、出力におけるデータレートが入力のものよりも低いフィルタである。このフィルタは、以下の数式５で表される。
【数５】
0004854826.tif 000006
【００１７】
ここでｄ（整数）はデシメーション係数である。
【００１８】
以下の数式６は、全てのフィルタ形式で可能な基本を規定する式である。
【数６】
0004854826.tif 000007
【００１９】
ここでＬはフィルタ長で、ｌは係数の数である。非対称フィルタの場合、第２期間(x(dn-L+k+1))は使用されない。
【００２０】
入力データフォーマットは、係数として供給され、そして必要な場合複素演算を実施する実数若しくは複素数が可能である。複素データの２つのセットを加えることは、２つの実数を加えることを要求し、複素データの２つのセットの多重化は４つの実数多重化と２つの実数加算を要求する。
【００２１】
異なるアルゴリズムのために必要な多重化及び加算の数のみならず、格納されるべき入力データの数及び係数値は、回路の構造を規定する対応する。対称フィルタは、多重化よりも２倍多く加えることを要求し、一方、他のフィルタは同じ数の多重化及び加算を使用する。対称フィルタが大きな値で使用され、そして加算器の特別なコストを最小に押えることにより、対称フィルタ用に最適化された構成が使用される。係数及びデータの数の問題は、メモリを共有することにより解決される。
【００２２】
図１の回路CO-PRは、ディジタルフィルタが多くのパラレルビットを要求しなくとも３２ビットバスを介して通信するホストプロセッサPR-Hと共働する副プロセッサである。この副プロセッサは、ホストプロセッサと副プロセッサとの間の通信と同期するＩ／Ｏユニットと、要求されたフィルタ特性を登録しかつ、実数フィルタ処理素子FPEを制御する制御ユニットCONTを有する。複数のフィルタ処理素子FPEは、必要な演算能力を得るために設けられ、その素子の数は、ｎｃ個である。
【００２３】
図２のフィルタ処理素子は、２つの主部品、操作部OPとメモリ部MACを有する。操作部は、フィルタ演算用の乗算部と加算部、そして適応フィルタの係数を更新する論理とを有する。メモリ部は、異なる多重化フィルタにより使用される全ての係数を格納するメモリW-tapsと、フィルタで使用される全ての入力データを格納するメモリｘ-dataと、MNFフィルタの部分結果を格納するレジスタy-dataの多数のNMFを有する。レジスタy-dataは、多重化演算用に特に提供される。入力ｗ_inはメモリw-tapsを初期化するために利用する。
【００２４】
データは、進行ラインData_inFと戻りラインData_inBの二本の双方向ラインを介してフィルタ処理素子の間を送信される。進行ラインは、右から左に向けてデータを送信する。このラインは対称フィルタの場合にのみ使用される。結果は、ポートｙ_in，ｙを介して右から左に送信される。
【００２５】
データが複数のフォーマットを持ち、デシメーションを実現でき、そしてデータが実数もしくは複素数であると、これらを認識しかつ、操作部に所望のデータが供給されるように第１及び第２加算器にこれらを供給するため入力データメモリx-dataから入力データを受信する手段を含む再編成ユニットREORGが提供される。レジスタx-dataから到来しかつ、前進ラインを介して送信されるデータＸａ，Ｘｂは、再編成ユニットにより前記第１加算器及び第２加算器で使用されるビット数のデータＸ′ａ，Ｘ′ｂに変換される。
【００２６】
操作部OPは、それぞれ第１乗算器３及び第２乗算器４の入力に結合された第１加算器１及び第２加算器２を有する。これらの乗算器は、結合７を介して係数メモリW-tapsから係数値を受信する他の入力を有する。第１及び第２乗算器はそれぞれ、出力が最終加算器と呼ばれる第３加算器６の入力に結合された加算／減算器５の入力に結合された出力を持つ。部分結果レジスタの一つから先行するサイクルで得られた結果y-oldを受入れ、この加算器の出力は、現在のサイクルに対応する演算結果ｙを供給する。これら二つの加算器１，２および乗算器３，４は、部分結果の演算に要するような演算及び乗算を実施する。更新ユニットUPDは、適応フィルタの場合に係数の適応を提供する。３２ビット乗算器３，４の各々は、一つのサイクルで処理される複素１６ビット乗算を実現するため、二つの１６ビット乗算器として使用できる。各加算器１，２は、二つの１６ビット加算器を有する。二つの８ビット操作として対応可能な１６ビット操作の各々について８ビットワードの使用が可能である。即ち、一つのフィルタ処理素子は、同時に２４個の８ビット操作まで対応できる。各操作は、平行して四つの８ビット操作若しくは図２の１６ビット操作として対応できる。二つの加算器１，２は、対称フィルタの場合に使用される。これらの加算器は、他の場合には短絡回路である。加算／減算器５は、複素乗算が必要な場合に減算器として使用され、そして他の場合は加算器として使用される。ユニットOPは、以下の数式を実現する。
【数７】
0004854826.tif 000008
【００２７】
ここで、（＋−）は実数係数、四重極における各部、若しくは複素乗算の場合には加算を、複素乗算の同期部の場合には減算を示す。ｗ０，ｗ１は連続実係数もしくは複素係数を示す。Ｘ'a及びＸ'ｂは戻りラインの入力データである。これらの値は、フィルタが対称でないとゼロである。ｙ(new)は部分結果ｙの最終演算値である。一方ｙ-oldは、他のフィルタ処理素子y_inの処理値もしくは部分結果である。
【００２８】
図４により詳細に示された更新ユニットUPDは適応フィルタの場合、ホストプロセッサで演算されたデータ"sgn_err"を受信し、そして数式４で示されるアルゴリズムを実施する。パイプライン機構及び副プロセッサとホストプロセッサとの間の通信に要求される時間のため、或る遅延によりエラーが生じ、データがこの時間中に格納される。前記ユニットは、データＸａを入力されるsgn演算器と、前記sgn演算器の結果を格納するsgn_xを有する。このユニットは更に、前記レジスタからの前記sgn演算器の結果とsgn_errとが供給される二つの入力部を持つエクスクルーシブオアゲートXORを有し、前記エクスクルーシブオアゲートの出力部が、加算／減算器+/-の入力部に結合され、前記加算／減算器+/-は、図３の結合７を介してメモリw-tapsから係数値w_inを受信する他の入力部と、適応工程に対応する前記ユニットの内部の定数Kを受信する他の入力部とを持つ。前記加算／減算器+/-は、前記エクスクルーシブオアゲートXORの出力に基づいて係数値w_in及び定数Kを加算又は減算し、係数メモリに格納される係数値w_outを供給する。
【００２９】
図３は二つのフィルタ処理素子EPE0，EPE1による四つの係数w0，w1，w2，w3を有するフィルタ用の時間領域における演算の工程を示す。ドットは係数の演算に対応する。各ドットに近い値は演算の瞬間を示す。四つの演算のセットは、同様のフィルタ処理素子により同時に実施される。縦矢印は結果ｙ(n)の伝達を示し、対角矢印はｘデータ補助語の特別な進捗を示す。補助語の分割は異なる演算結果の間のデータの進捗のみを変化させ演算を変化させない。複数のデータが個々の繰り返し（グレー直角におけるデータ）において使用される。最初は、頂部右ドットで使用され、一方、最後は底部左ドットに対応するドットで使用される。ｘ(dn)は頂部右ドットに対応するｙ(n)の演算に使用され、ｘ(dn-nｔ+1)は底部右ドットに対応するｙ(n)で使用され、そしてｘ(d(n-Px+1))は頂部左点に対応するｙ(n-Px+1)の演算に使用される。即ち、読取られるデータの数は、Rp=(Px-1)d+nｔである。更に、各３２ビットワードは読取られる隣接３２ビットの数が数式８を満たすようなPxデータを有する。
【数８】
0004854826.tif 000009
【００３０】
即ち、読取の数はｄ増加する。メモリx-data用に二つの読取ポートを持つと、二つの関数でデシメーションするフィルタを実現できる。各部分結果（ｎｔ＝１or２）用に同時に使用される２倍の入力データが対称フィルタで同時に使用される場合、１６ビット及び８ビット演算のみが許容され、メモリw-tapsについては３２ビットリードアウトが必要とされ、Px個の連続する部分結果が３２ビットリードアウトがレジスタy-data用に必要とされるために使用される。
【００３１】
係数の初期化もしくは更新のため、３２ビットリードインがメモリw-taps用に必要とされ、Pc個の連続する実数構造が格納され、そして３２ビットリードインがレジスタy-data用に必要とされる。結果Pxの新たなセットの演算の間、dPx個の新たな入力データが到来する。デシメーションが存在しないと、３２ビットリードインがメモリx-taps用に必要で、デシメーションフィルタの場合、複数の繰り返しがホストプロセッサとのリンクの限定された通過帯域用のデータ（各サイクルにおいてPx個のデータ）を格納することが必要である。
【００３２】
各フィルタは、収縮手法で同時に演算される特定長の小さなフィルタに分割される。即ち、各フィルタ処理素子は、同様の特性を持つフィルタの演算を行う。この特性は、他のフィルタとして同様の制御を要求する。よって、信号制御ユニットはフィルタ処理素子に関わらず十分である。図５の制御ユニットは、サイズNMFの４つのレジスタを有する。ここでNMFは多重化可能なフィルタの最大数である。この制御ユニットは複数の機能、レジスタTYPEに係数の数のような各フィルタの特性を格納する、レジスタCURADRに基本メモリアドレスを、レジスタBNDSにデータ及び係数レジスタの使用部の上限下限を格納する、ユニットADDGENによりフィルタ処理素子に必要なアドレスを発生する、そしてフィルタ処理素子の間のみならず再構築の制御機能を有する。
【００３３】
管理ユニットMUXMNGはフィルタ形式の関数として副プロセッサにおけるデータ通信を制御する組み合わせ論理回路である。
【図面の簡単な説明】
【図１】  フィルタ演算システムのブロック図である。
【図２】  フィルタ処理素子の詳細なブロック図である。
【図３】  演算の進行を示すブロック図である。
【図４】  図２のフィルタ処理素子を更新した素子のブロック図である。
【図５】  回路の制御ユニットの連携を示すブロック図である。
【図１】
0004854826.tif 000010
【図２】
0004854826.tif 000011
【図３】
0004854826.tif 000012
【図４】
0004854826.tif 000013
【図５】
0004854826.tif 000014