(57)【要約】  電子回路、詳細には受信回路はストリーム処理回路（１０ａ〜ｃ）のチェーンを含む。ストリーム処理回路（１０ａ〜ｃ）は制御パラメータ値を受け取るための制御パラメータ入力を有する。可変のブロック・サイズをもつデータを受け取る回路の設計を容易にするために、複数のストリーム処理回路（１０ａ〜ｃ）のそれぞれのストリームの中のサンプルのブロックのブロック・サイズ、各特定のブロック用の制御パラメータ値を選択する制御回路（１４）が含まれる。制御回路は、選択されたブロック・サイズおよび制御パラメータ値を指定する命令を局所制御回路（１１）に伝達する。各局所制御回路は、制御回路（１４）およびチェーンからのそれぞれ対応するストリーム処理回路（１０ａ〜ｃ）の制御入力に結合される。各特定の局所制御回路（１１）は、命令の少なくとも一部を受け取り、命令からのパラメータ値をそれに対応するストリーム処理回路（１０ａ〜ｃ）に適用するように構成される。特定の局所制御回路（１１）は、連続する制御パラメータ更新の時点の間のブロック・サイズ依存時間間隔をカウントすることによって、命令からのブロック・サイズを使用して制御パラメータ更新のタイミングを制御する。結果として、ストリーム処理回路（１０ａ〜ｃ）の設計をブロック・サイズに適合させる必要がない。
2007528539.tif 000002
【特許請求の範囲】
【請求項１】
事前設計された、特殊化されたストリーム処理回路設計データのライブラリを準備することと、
実質的に前記ストリーム処理回路設計データを変更することなしに、前記ストリーム処理回路設計データを含めることによって、集積回路のストリーム処理チェーンに沿った選択された位置で前記ストリーム処理回路のうちの選択されたストリーム処理回路を組み込む集積回路の集積回路設計データを生成することと、
各局所制御回路が、少なくとも１つの可変の制御パラメータ値を必要とするそれぞれのストリーム処理回路の制御パラメータ入力に結合され、連続する制御パラメータ更新の時点の間のブロック・サイズ依存時間間隔をカウントすることによって制御パラメータ更新のタイミングを制御するように構成される、局所制御回路を前記集積回路設計に付加することと、
ブロック・サイズおよびパラメータ値を指定する命令を前記局所制御回路に与えるための共通制御回路を前記集積回路設計に付加することと
を含む、集積回路の製造に使用する方法。
【請求項２】
前記集積回路設計データにより集積回路を製造することを含む、請求項１に記載の方法。
【請求項３】
前記局所制御回路のうちの少なくとも１つが、共通ブロック・サイズを相互に使用して動作する複数のストリーム処理回路の制御パラメータ入力に結合される出力を有し、前記局所制御回路のうちの少なくとも１つが、前記複数のストリーム処理回路の前記制御パラメータの更新のタイミングを共通して合わせる、請求項１に記載の方法。
【請求項４】
連続するストリーム処理回路のペアの間にサンプル値のそれぞれのストリームを通すように相互に結合されるストリーム処理回路のチェーンであって、前記ストリーム処理回路の少なくとも一部が制御パラメータ値を受け取るための制御パラメータ入力を有するストリーム処理回路のチェーンと、
各特定のブロック用の制御パラメータ値を選択し、選択されたブロック・サイズおよび前記制御パラメータ値を指定する命令を伝達するために、複数の前記ストリーム処理回路の前記それぞれのストリーム中のサンプルのブロックの前記ブロック・サイズを選択するように構成される共通制御回路と、
各局所制御回路が、前記共通制御回路および前記チェーンからのそれぞれの対応するストリーム処理回路の制御入力に結合される複数の局所制御回路であって、各特定の局所制御回路が、前記命令の少なくとも一部を受け取り、前記命令からのパラメータ値を各特定の局所制御回路に対応するストリーム処理回路に適用するように構成され、前記特定の局所制御回路が、連続する制御パラメータ更新の時点の間のブロック・サイズ依存時間間隔をカウントすることによって、前記命令からのブロック・サイズを使用して制御パラメータ更新のタイミングを制御する複数の局所制御回路と
を備える電子回路。
【請求項５】
前記ストリーム処理回路は、前記サンプル・サイクルのどこに新しいサンプルが生成されるか示すように構成され、各特定の局所制御回路が、入力に対する前記時点の前の時点以来、各特定の局所制御回路に対応するストリーム処理回路に示されたいくつかの新しいサンプル値を代表するカウントを決定するそれぞれのカウンタを備え、前記カウントが前記共通制御回路からの命令内に指定されたブロック・サイズを表すとき、前記局所制御回路が前記制御パラメータの更新をトリガするように構成される、周期的サンプル・サイクル内で動作する請求項４に記載の電子回路。
【請求項６】
前記局所制御回路が、前記局所制御回路に対応するストリーム処理回路と前記対応するストリーム処理回路用の入力サンプルの供給源との間にサンプル・バッファを備え、前記カウンタが前記サンプル・バッファの入力において新しいサンプル値をカウントし、前記サンプル・バッファが、前記対応するストリーム処理回路への新しいサンプルの供給を、前記新しいサンプル値が前記カウントを更新するために使用される処理サイクルに対して少なくとも１つの処理リサイクルだけ遅延させる、請求項５に記載の電子回路。
【請求項７】
前記局所制御回路のうちの少なくとも１つが、前記共通制御回路から受け取る命令情報の項目をバッファに入れるように構成されるＦＩＦＯ命令バッファを備え、各項目が制御パラメータ値指定およびブロック・サイズ指定を含み、前記局所制御回路のうちの前記少なくとも１つが前記ＦＩＦＯ命令バッファからの連続する項目によって指定された前記制御パラメータ値を前記局所制御回路のうちの前記少なくとも１つに対応するストリーム処理回路に連続的に適用するように構成され、前記項目の前記制御パラメータ値が更新によって置き替えられた後の前記時間間隔が、前記項目によって指定された前記ブロック・サイズによって指定された時間間隔の長さをカウントすることによって選択される、請求項５に記載の電子回路。
【請求項８】
前記局所制御回路のうちの少なくとも１つが、前記局所制御回路のうちの前記少なくとも１つに対応するストリーム処理回路用の複数の制御パラメータ値をストアするためのルックアップ・テーブル・メモリを備え、前記ルックアップ・テーブル・メモリが、前記局所制御回路のうちの前記少なくとも１つの前記対応するストリーム処理回路の前記制御パラメータ入力に結合されるストア・データ出力を有し、前記共通制御回路からの前記命令が前記ルックアップ・テーブル・メモリ内にアドレスの識別を含み、前記局所制御回路のうちの前記少なくとも１つが前記識別を使用して前記ルックアップ・テーブル・メモリにアドレス指定する、請求項５に記載の電子回路。
【請求項９】
通信信号のフレームを受信するための受信回路を備え、前記受信回路がフレームの開始点を検出するための検出器を備え、前記受信回路が前記チェーン用のサンプル値の入力ストリームを生成し、前記開始点の各々に対して所定の時間関係でそれぞれリセット信号を生成するように構成され、前記リセット信号が前記局所制御回路に供給され、前記局所制御回路が前記リセット信号に応じて前記カウントをリセットする、請求項５に記載の電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ストリーム処理回路に関し、詳細には、そのような電子ストリーム処理回路を含む集積回路に関する。
【背景技術】
【０００２】
高い処理能力の信号処理は、チェーンで動作する多数のストリーム処理回路を使用して実現することができる。各ストリーム処理回路は連続するサンプル値（時間離散的な信号値）のそれぞれの入力ストリームを処理し、別のストリーム処理回路で使用するためにそれぞれの出力ストリームを生成し、ストリーム処理回路は入力ストリームからのサンプル値に応じて出力ストリーム中の連続する出力サンプル値を決定する。
【０００３】
大部分のストリーム処理回路は、一般に、１つまたは限られた数の機能を高効率で実行することを目的とする、特殊化された設計を有する。例えば、フーリエ変換を行なうための、等化（または一般にフィルタリング）を行なうための、誤り訂正を行なうための、復調、復元、インターリービングなどを行なうための特殊化されたストリーム処理回路がある。一般に、各タイプのストリーム処理の設計は、多くの異なる集積回路において用途ごとに行なわれる。通常、特殊化された回路が使用されるが、ある機能について、設計は特殊化されたプログラムをもつ汎用信号プロセッサを含めることができる。集積回路設計者は、そのような特殊化された設計のライブラリから集積回路設計を組み立てる。この段階で、集積回路設計者が特殊化されたストリーム処理回路の設計を変更しなくてはならないことはきわめて望ましくない。
【０００４】
ストリーム処理回路は、特殊化されているが、一般に、全く柔軟さがないわけではない。ストリームからのサンプル値用のこれらの特殊化されたストリーム処理回路の入力および出力に加えて、これらの特殊化されたストリーム処理回路は、制御パラメータ値が与えられる時間間隔の間にサンプル値のすべてを処理するのに影響する制御パラメータ値を適用するための制御入力を有することができる。ある制御パラメータは、これらの回路がその機能を実行するのに適合するように使用することができる。例えば、制御パラメータ値はフーリエ変換またはインターリーブ・ブロックのブロック・サイズを指定でき、制御パラメータはサンプル値（出力されるべき各サンプル値のビットの数）の精度、復調方法、帯域幅などを指定できる。設計者の集積回路の機能に必要な制御パラメータ値が、その集積回路のストリーム処理回路に与えられるのを確実にすることが集積回路設計者の仕事である。
【０００５】
ある集積回路では、ストリーム処理回路に与えられる制御パラメータ値は時間の関数として変化しなければならない。これは、例えば、通信システムにおけるメッセージ・フレームを処理する集積回路の場合である。フレーム中のサンプルの位置に依存して、異なる処理が必要になることがある。例えば、異なる復調方式、または異なる訂正手順が必要になることがある。一般に、制御パラメータ値はブロック単位で変化する。すなわち、ストリームは、連続するサンプルの各々である連続するブロックに分割されると考えられ、それぞれのブロックの処理の間、それぞれの制御パラメータ値がストリーム処理回路に与えられる。ブロック・サイズは、異なるストリーム処理回路では異なることがあり、処理待ち時間のために、連続するブロックを異なるストリーム処理回路用に区切る時点は一般に一致しない。
【０００６】
特定用途のための制御回路を含め、適切な制御パラメータ値を適切な時にストリーム処理回路に適用することは集積回路設計者の仕事である。従来、集積回路は、一般に制御パラメータ値がそれぞれのストリーム処理回路に与えられるレジスタに制御パラメータ値を書き込むことによって制御パラメータ値の適用を制御するために、中央制御回路、一般的にはマイクロ・コントローラを含む。中央制御回路は、処理中、所定の時間に所定の選択されたストリーム処理回路用の制御パラメータ値を更新するために、時間の進行をモニタするようにプログラムされる。
【０００７】
この従来の設計は中央制御プロセッサの設計にかなりのオーバーヘッドを必要とすることが見出された。ある時間に、異なるストリーム処理回路の制御パラメータ値を次々と速やかに更新することが必要になることがある。これは、中央プロセッサが短い時間間隔で多くの更新を処理する能力を有しなければならないことを意味する。
【０００８】
さらに、従来の設計は、ストリーム処理回路のある実装を別の実装と取り替えることにより集積回路の設計を変える製品の改良を妨げることが見出された。新しいストリーム処理回路が異なるタイミングの性質を有するとき、これは回路全体にわたって制御パラメータの変更のタイミングに影響するので、中央制御回路が再設計されなければならないことになる。実際には、これがストリーム処理回路を変えないように圧力をかける。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特に、本発明の目的は、パラメータ制御型ストリーム処理回路のチェーンをもつ電子回路の設計を可能にし、制御パラメータの適用が高能力の中央プロセッサを必要としない技法を提供することである。
【００１０】
特に、本発明の目的は、パラメータ制御型ストリーム処理回路のチェーンをもつ電子回路の設計を可能にし、１つまたは複数のパラメータ制御型ストリーム処理回路を取り替える新しい設計がなされるとき、回路の設計に最小限のさらなる変更しか必要としない技法を提供することである。
【００１１】
特に、本発明の目的は、ストリーム処理回路の制御パラメータ値の変更のタイミングを制御するために中央制御ユニットが必要とされないストリーム処理回路のチェーンを使用してデータのストリームを処理する電子回路を提供することである。
【課題を解決するための手段】
【００１２】
本発明の１つの態様によれば、用途特定電子回路は、事前設計され特殊化されたストリーム処理回路設計のライブラリを使用して設計され、ストリーム処理回路のうちの選択されたものをストリーム処理チェーンに沿った選択された位置に、実質的にストリーム処理回路設計を変更することなしに組み込む。各局所制御回路が、少なくとも１つの可変の制御パラメータ値を必要とするそれぞれのストリーム処理回路用である局所制御回路、ならびにブロック・サイズおよびパラメータ値を指定する命令を局所制御回路に与えるための共通制御回路を付加することによって、電子回路は特定用途向けにされる。局所制御回路を使用して制御パラメータ更新のタイミングを制御する。（本明細書で使用されるような「ライブラリ」は、より大きな各回路設計のためにライブラリからの設計を再設計することなしに、さまざまなより大きな回路設計に組み込むことができる副回路設計の集合である。）
本発明による電子回路は請求項４に記載される。本発明によれば、制御パラメータ値をストリーム処理回路に適用するための制御回路は、共通制御回路および局所制御回路を備える。共通制御回路は、制御パラメータ値およびブロック・サイズを選択し、ブロック・サイズは、新しいパラメータ値によって置き替えられる前にパラメータ値がストリーム処理に与えられる時間間隔の長さを決定する。共通制御回路は、選択されたパラメータ値およびブロック・サイズを指定する命令を局所制御回路に伝達する。局所制御回路は、前の更新からブロック・サイズに応じて時間の長さをカウントすることによって、パラメータ値更新のタイミングを管理する。
【００１３】
好ましくは、ストリーム処理回路は、それらが新しいサンプル値を出力するクロック・サイクルを示すように構成され、局所制御回路は新しいサンプルの数をカウントすることによって時間の長さをカウントする。結果として、サンプル値の出力タイミングが変わるようにストリーム回路が変えられるとき、制御回路は変えられる必要がない。
【００１４】
好ましくは、局所制御回路はサンプル遅延回路を含み、ブロック中の最初の新しいサンプル値の受取り時に制御パラメータ更新をトリガした後、その最初の新しいサンプル値はストリーム処理回路に与えられることが可能になる。したがって、ブロック用の制御パラメータの更新がブロックの最初のサンプル値と一致する、または、さらに所定の数のクロック・サイクルだけ先行することを確実にするための時間が利用可能になる。
【００１５】
好ましくは、局所制御回路は、共通制御回路からの命令情報の項目のためのマルチプレイスＦＩＦＯバッファを含む。一般に、各項目はブロック・サイズ指定およびパラメータ値指定を含み、項目のうちのブロック・サイズ指定は、項目のうちの指定されたパラメータ値を更新することが必要になるに先立ってどれくらいの時間が必要か決定する。項目は順にＦＩＦＯバッファから使用される。ＦＩＦＯバッファを使用することによって、共通制御回路が命令を与えなければならない速度への要求を緩和することができ、それは、後の局所使用のために、パラメータ値更新がストリーム処理回路でほとんどまたは全く生じないスラック時間間隔内に、命令を与えることが可能であるからである。
【００１６】
本発明のこれらおよび他の目的ならびに有利な態様は、図を使用する非限定的な例によって説明される。
【発明を実施するための最良の形態】
【００１７】
図１は、受信回路９、中央制御プロセッサ１４、バス１６、ならびにストリーム処理回路１０ａ〜ｃおよび局所制御回路１２ａ〜ｃのネットワークをもつ電子回路を示す。単純なチェーンがネットワークの例として示されているが、多数の相互接続されたチェーンを含むより複雑なネットワークが使用されてもよいことを理解されよう。ストリーム処理回路１０ａ〜ｃは入力および出力および制御パラメータ入力を有する。チェーンにおいて、ストリーム処理回路１０ａ〜ｃおよび局所制御回路１２ａ〜ｃはユニットとして構成されており、ユニットの各々は、ストリームからの連続するサンプル値を供給するための出力１１を介し、制御パラメータ値を与えるためのさらなる出力を介して対応するストリーム処理回路に結合される局所制御回路１２ａ〜ｃを含む。各ユニット（最後のユニットを除いて）のストリーム処理回路１０ａ〜ｃのストリーム出力は、次のユニットの局所制御回路１２ａ〜ｃの入力に結合される。受信回路９はチェーンの入力および中央制御回路に結合される。中央制御プロセッサ１４は、バス１６を介して、およびオプションとして共通リセット接続１８を介して局所制御回路１２ａ〜ｃに結合される。
【００１８】
例として本発明は受信回路９をもつ受信システムを使用して説明されるが、本発明はそのような受信システムに制限されないことを理解すべきである。動作中、受信回路９は、情報のフレームを表す変調された情報を含む通信信号を処理する。フレームは、一般に、ヘッダ情報、およびヘッダ情報によって指定された方法で通信信号上に変調されるデータを含む。受信回路９はフレームの開始を検出し、ヘッダ情報の内容を決定する。受信回路９は、また、通信信号をサンプリングし（または、より正確には、通信信号を処理することにより得られた信号をサンプリングすることによって）、結果として生じるサンプル値を順次に出力する。
【００１９】
これらのサンプル値はストリーム処理回路１０ａ〜ｃによって処理され、サンプルは、フレームの開始に対するサンプルの位置（サンプルが得られる時点）に依存して、およびオプションとして、ヘッダからの情報に依存して別々に扱われることができる。
【００２０】
受信回路９は、フレームの開始の時点に関する情報およびヘッダに関する情報を中央制御プロセッサ１４に信号で送る。フレームの開始の時点に関する情報は、ストリーム処理回路１０ａ〜ｃにより処理されなければならないフレームに対して、サンプルのフレーム・サイクルの開始において最初のサンプルを識別する。第１のストリーム処理回路１０ａは、これらのサンプルを、機能を実行するための入力として使用する。第１のストリーム処理回路１０ａは出力サンプルを生成し、それらを第２のストリーム処理回路１０ｂで使用するために順次に出力し、第２のストリーム処理回路１０ｂは他の機能等を実行する。
【００２１】
異なるストリーム処理回路１０ａ〜ｃの機能は、例えば、サンプルのブロックのフーリエ変換を実行すること、等価、サンプルからのデータ・ビットをデマップすること、サンプルをインターリーブすること、誤り訂正を実行することなどを含む。これらの機能の多くはサンプルのブロックを使用し、異なる機能は異なるサイズにされたブロックを使用する。例えば、フーリエ変換が得られるブロックは６４サンプル長にすることができ、インターリーブ・ブロックは異なる数のサンプルからなることができる。
【００２２】
機能の制御パラメータ（ブロック・サイズなど）は、異なるブロックに対し、例えばフレーム中の異なる位置に対応するブロックに対し、時間に応じて異なることができる。例えば、ストリーム処理回路１０ａ〜ｄのフィードバック・ループの帯域幅パラメータは、フレーム中の位置が進むにつれて減少することができ、またはあるブロックに対してサンプル当たりの有効ビットの数を記述するパラメータがフレーム中のブロックの位置に応じて調整されてもよい。中央制御プロセッサ１４は局所制御回路１２ａ〜ｃを使用して、ストリーム処理回路の制御パラメータを変えるときを制御する。
【００２３】
動作中、中央制御プロセッサ１４は、バス１６を介して命令を局所制御回路１２ａ〜ｃに送る。各命令は特定の局所制御回路１２ａ〜ｃで指示され、データのブロックの処理の間にこの局所制御回路１２ａ〜ｃはそれに対応するストリーム処理回路１０ａ〜ｃに適用しなければならない１つまたは複数の制御パラメータ値を指定する。命令は、データのブロック中のいくつかのサンプルを規定するブロック・サイズも指定する。
【００２４】
各局所制御回路１１は、制御パラメータを、ブロックのサンプルの到着の開始から各局所制御回路１１に対応するストリーム処理回路に適用する。局所制御回路１２ａ〜ｃは、それの入力に到着するサンプルの数をカウントすることによってブロックが開始するときを決定する。カウントが、ブロック・サイズに対応するいくつかのサンプルが到着したことを示すと、次のブロックの最初のサンプルが、対応するストリーム処理回路１０ａ〜ｃに与えられる前に、または好ましくは実質的に同時に、局所制御回路１１は、それが対応するストリーム処理回路に適用する制御パラメータを更新する。
【００２５】
局所制御回路１２ａ〜ｃは、中央制御プロセッサ１４から受け取った命令を用いて、与えられることになる局所制御回路１２ａ〜ｃの制御パラメータおよび時間を引き出す。制御パラメータの変更と共に、局所制御回路１２ａ〜ｃは、この受け取った命令からのブロック・サイズによって規定されたサンプルの数が到着し終わったとき、制御パラメータの次の更新をトリガするためにカウントを再開する。実施形態では、サンプルの数のカウントをリセットし、最初の有効な制御パラメータをロードするために、中央制御プロセッサ１４または受信回路９が、また、フレームの処理の開始時点をマークするためのリセット信号をすべての局所制御回路に与える。
【００２６】
図２は局所制御回路の実施形態を示す。制御回路は、バス・レシーバ２０、命令バッファ２２、カウンタ２４、およびサンプル・バッファ２６を含む。バス・レシーバはバス１６に結合されるインタフェースおよび命令バッファ２２に結合される出力を有する。命令バッファは、パラメータをストリーム処理回路（図示せず）に与えるための出力２３およびブロック・サイズ情報を与えるためのカウンタ２４に結合される出力を有する。カウンタ２４は、サンプルのストリーム用の入力２５に結合されるカウント入力、ならびにクロック入力ＣＬＫを有する。サンプル・バッファ２６はサンプルのストリーム用の入力２５に結合される入力、および、サンプルのストリームをストリーム処理回路（図示せず）に出力するための出力を有する。
【００２７】
動作中、バス・レシーバ２０は、中央制御プロセッサ１４（図示せず）からの命令を、バス１６を介して受け取る。各命令は１つまたは複数の制御パラメータおよびブロック・サイズを含む。バス・レシーバ２０は受け取った命令からのデータを命令バッファ２２に書き込む。各命令は入力２５に到着するサンプルのそれぞれのブロックに有効である。ブロックからのサンプルが入力２５に到着すると、命令バッファ２２は命令からの制御パラメータを制御パラメータ出力２３において適用する（オプションとして、当然、パラメータ・レジスタおよび／または命令デコーダが命令バッファ２２とストリーム処理回路との間で使用されてもよい）。命令からのブロック・サイズはブロックの開始時にカウンタ２４にロードされる。カウンタ２４は、ブロックからのサンプルが入力２５に到着するたびにカウントダウンし、カウンタ２４が０になるとそれは次の命令からの制御パラメータおよびブロック・サイズを与えるために命令バッファ２２をトリガする。
【００２８】
好ましくは、回路はクロック入力ＣＬＫにおけるクロック信号によってマークされたサンプル・サイクル内で動作する。新しいサンプルがサンプル・サイクルごとに局所制御回路１２ａ〜ｃの入力に到着する必要がないことを理解されるべきである。新しいサンプルは、例えば、不規則なサンプル・サイクルでｎサンプル・サイクル（ｎ＝２、３…）ごとに到着することができる。これは、サンプルを供給するストリーム処理回路１０ａ、ｂによって実行される処理機能（および／または受信回路９）に依存する。実施形態では、少なくともいくつかのストリーム処理回路１０ａ〜ｂによって供給されるサンプル・データは、有効なサンプルがクロック入力ＣＬＫにおいて信号で伝えられたサンプル・サイクル内に供給されたかどうかを示すための、例えば入力２５においてサンプルに付随する「有効」ビットの形態の情報を含む。
【００２９】
サンプル・バッファ２６はサンプルを一般にクロック信号ＣＬＫの１サイクルの間バッファに入れる。好ましくは、サンプルは新しいサンプルが到着したという信号に応じてのみサンプル・バッファ２６内で置き替えられる（しかし、当然、サンプルが入力２５で繰り返されている場合、サンプルはサイクルごとにコピーされてもよい）。
【００３０】
カウンタ２４はクロックＣＬＫのサンプル・サイクルにおいてのみカウント値を減少させるように構成され、サンプルを供給するストリーム処理回路１０ａ、ｂ（または受信回路９）は新しいサンプルの供給を示す。その結果、命令バッファ２２からのパラメータ値の更新は、有効なサンプルが供給されるサイクルに応じてトリガされる。好ましくは、カウンタ２４は、新しいブロックの最初のサンプルを受け取るとき制御パラメータ値の更新が生じるように構成される。サンプル・バッファ２６はサンプル値を、一般に、クロック信号ＣＬＫの１サイクルの間、バッファに入れる。結果として、局所制御回路１２ａ〜ｃは、新しいブロックの最初のサンプル値がストリーム処理回路１０ａ〜ｃに与えられる前に、すなわち、サンプル・バッファ２６が前のブロックからの、もしあれば、最後のサンプルを依然として対応するストリーム処理回路１０ａ〜ｃに供給しているときに、サンプル・サイクル内で制御パラメータ値の更新をトリガするための時間を有する。したがって更新された制御パラメータ値は、まず、新しいブロックの最初のサンプルと共にストリーム処理回路１０ａ〜ｃに与えられる。サンプル・バッファ２６がより大きな遅延を与えると、制御パラメータ値の更新を、ブロックからの最初の新しいサンプル値が与えられる前に、所定の数のサンプル・サイクルで実現することさえできる。
【００３１】
本発明は、命令からのブロック・サイズ・データによって設定されるダウン・カウンタに関して説明されたが、パラメータ更新をトリガするコンパレータが、カウンタ２４中のカウント値を命令レジスタ２２からのブロック・サイズ・データと比較するために使用されてもよいことを理解されよう。この場合、任意のタイプのカウンタを使用することができる。
【００３２】
カウンタ２４のサンプル・カウントは、ストリーム処理回路１０ａ〜ｄが有効なサンプルが供給されるかどうか示すための情報を生成すると仮定して説明されたが、カウントを制御する他の方法が使用されてもよいことを理解されよう。例えば、命令は、（新しいサンプルがサンプル・サイクルごとに供給されない場合）ブロック中のサンプル・サイクルの総数を指定できる。この場合、カウンタ２４は、サンプル・サイクルの指定された総数が発生し終わるまですべてのサンプル・サイクルをカウントし、それから制御パラメータ値の更新をトリガすることができる。この場合、サンプル・バッファ２６は必要ないことがある。クロック・サイクルの総数を指定するより複雑な方法が、例えば、また、サンプル間のクロック・サイクルの数を指定することによって、命令の中で使用されてもよい。しかし、サンプル・サイクルよりもサンプルをカウントすること、およびストリーム処理回路からの新しいサンプルの識別を使用することは、１つまたは複数のストリーム処理回路が取り替えられる新しいタイプの電子回路が設計されるとき最小限の再設計でよいことになるという利点がある。
【００３３】
それぞれ単一のストリーム処理回路１０ａ〜ｃが、それぞれ各局所制御回路１２ａ〜ｃの後にくるように示されるが、実際に、ストリーム処理回路１０ａ〜ｃの任意の１つまたは複数がサブチェーンに構成された複数のより小さいストリーム処理回路で構成されてもよいことを理解されよう。これらのより小さいストリーム処理回路の各々、または少なくとも一部は、より小さいストリーム処理回路を含むストリーム処理回路１０ａ〜ｃの前にある局所制御回路１２ａ〜ｃからの少なくとも１つの制御パラメータを受け取る。これは例えば、サブチェーン内のすべてのより小さいストリーム処理回路が常に同じブロック・サイズを使用するとき、使用することができ、小さいストリーム処理回路は常に対応する制御パラメータ値を変えることになる。
【００３４】
オプションとして、制御パラメータ遅延バッファがそのようなより小さいストリーム処理回路の一部に設けられてもよい。そのようなバッファは、より小さなストリーム処理回路のうちの他のバッファへの新しい制御パラメータの適用に対し新しい制御パラメータの適用を遅らせることができる。この場合、遅延は、サブチェーンの入力へのブロックの最初のサンプルの到着と、それぞれのより小さいストリーム処理回路の入力への結果として生じたブロックの最初のサンプルの到着との間のそれぞれの遅延に対応して選択される。
【００３５】
好ましくは、命令バッファ２２は、バス１６からの命令の到着の順に、命令からの制御パラメータ値およびブロック・サイズを出力するＦＩＦＯバッファである。しかし、本発明から逸脱することなく、単一の最後に受け取った命令のためだけの記憶部をもつバッファが使用されてもよい。新しい命令が必要であることをカウンタ２４が示すと、命令が命令バッファから読み出され、カウント値および制御パラメータが命令に応じてセットされる（制御パラメータについては、例えば制御パラメータ・レジスタ（図示せず）にロードすることによって）。当然、これは、中央処理回路１４に、前の命令によって制御されたブロックのすべてのサンプルが到着し終わる前に命令を与えるように要求する。ＦＩＦＯバッファはこの要求を緩和する。ＦＩＦＯバッファリングの代わりに、他のタイプのバッファリングが、例えば、命令の中の命令シーケンス番号フィールドを使うことによって使用されて、命令が制御パラメータおよびブロック・サイズを与えるために使用されることになる順序を制御することができる。
【００３６】
フレームの開始において初期化の準備が必要であることがある。好ましくは、中央処理回路１４または受信回路９は、サンプル・サイクルをマークするためにリセット信号を局所制御回路１２ａ〜ｄに供給し、受信回路９はフレーム中の定義済みの位置に対応するサンプル値、一般に最初の有効なサンプル値を供給する。この最初の有効なサンプル値の供給の後、次第に増加する遅延と共に、ストリーム処理回路１０ａ〜ｃは有効な新しいサンプル値の生成を開始することになる。好ましくは、ストリーム処理回路１０ａ〜ｂが、フレーム中のマークされた位置でまたは後でサンプル値からの導出物に応じて決定される最初のサンプル値を出力するまで、ストリーム処理回路１０ａ〜ｂは有効なサンプルが出力されることを示さない。
【００３７】
この場合、好ましくは、局所制御回路１２ａ〜ｄはそれのカウンタ２４をリセット信号に応じてリセットし、カウンタ２４は、最初の有効なサンプル値がストリーム処理回路１０ａ〜ｃに到着するとき、最初に受け取った命令からの制御パラメータが対応するストリーム処理回路１０ａ〜ｃに供給されるように、ある値（例えば、１）にリセットされる。その時の前に、制御回路１２ａ〜ｃは、それに対応するストリーム処理回路１０ａ〜ｃにディセーブリング・パラメータ値を適用する。
【００３８】
オプションの代替として、ストリーム処理回路１０ａ〜ｃが最初の新しいサンプルの受取りまで動作を一時停止するように構成される場合、最初に受け取った命令からの制御パラメータ値が、リセットに応じて直ぐに、または所定の数のクロック・サイクルの後で、対応するストリーム処理回路１０ａ〜ｃに与えられてもよい。フレーム中の最初のブロックから引き出されたサンプルが到着し終わらないうちに、ストリーム処理回路１０ａ〜ｃが無用なサンプルを出力するタイプである場合、局所制御回路がこれらの無用なサンプルをカウントし、その後最初の関連する制御パラメータを局所制御回路に対応するストリーム処理回路１０ａ〜ｃに適用することが好ましい。この場合、好ましくは、中央制御プロセッサ１４は、初期命令を局所制御回路１２ａ〜ｃに与え、局所制御回路１２ａ〜ｃは、最初の関連する制御パラメータが与えられなければならない前に到着し終わらなければならないサンプルのカウントを指定する。
【００３９】
図３は局所制御回路の代替の実施形態を示す。この回路では、ルックアップ・テーブル・メモリ３０が命令バッファ２２の出力と制御パラメータ出力２３との間に付加された。動作中、ルックアップ・テーブル・メモリ３０は、それぞれの制御パラメータ値をそれぞれのアドレス指定可能な記憶場所に格納する。命令バッファ２２内の各命令はこれらの制御パラメータ値のうちの１つのアドレス（またはアドレスを識別する他の情報）を含む。命令が命令バッファ２２から出力されると、識別されたアドレスはルックアップ・テーブル・メモリ３０のアドレス入力に与えられ、ルックアップ・テーブル・メモリ３０は応答して制御パラメータのアドレス指定された組を出力する。このようにして、命令を短く保ち、バス１５上で帯域幅を保持することができる。制御パラメータ値は、中央制御プロセッサ１４によって、例えばバス１５を使用する任意の適切なインタフェース（図示せず）を介してルックアップ・テーブル・メモリ３０にストアされてもよいが、制御パラメータ値の組は、例えばルックアップ・テーブル・メモリ３０を実装するためのＲＯＭを使用することによって電子回路の製造の間にセットされてもよい。
【００４０】
一般的な用途において、ストリーム処理回路は、フーリエ変換プロセッサ、等価器、復調器、インターリーバー、および誤り訂正回路を含む。この用途では、受信回路９は通信信号を増幅し、ダウンコンバートし、ダウンコンバートされた信号をサンプリングする。受信回路９はｎサンプル・サイクル（例えばｎ＝４）ごとに１回、ダウンコンバートされた信号の新しいサンプルを出力する。
【００４１】
第１のストリーム・プロセッサは、ｍサンプル値（例えば、ｍ＝６４）のブロックを受け取り、各ブロックのＦＦＴを計算し、フーリエ係数をそれぞれのサンプル値として各々出力するＦＦＴプロセッサである。第２のストリーム・プロセッサは、フーリエ係数を等価する（例えば、周波数依存ファクタを適用する）等価プロセッサである。一般に、ストリーム処理回路のブロック・サイズは、ＦＦＴプロセッサが入力ブロックごとに出力するフーリエ係数の数に対応する。等価パラメータはブロックの中で一定のままであるが、連続するブロックの間で変えることができる。これは、等価パラメータを命令からの制御パラメータとして等価プロセッサに適用することによって行なうことができるが、代替として等価プロセッサはそれを行なうための内部フィードバック・ループを有してもよく、その場合、命令からの制御パラメータはフィードバック・ループの帯域幅を決定し、帯域幅は、フレームの開始時に初期値で、フレームが進むにつれて次第に狭い値にセットされることができる。
【００４２】
等価プロセッサは等価されたサンプルを出力する。復調ストリーム・プロセッサは等価されたサンプルから復調されたビットを引き出し、これらのビットを出力する。命令からの制御パラメータは、場合によっては、命令の生成を制御するために受信回路９から中央制御プロセッサ１４に供給される、ヘッダからの情報に依存さえする、フレームの中で変えることができる変調の形式を制御する。
【００４３】
復調ストリーム・プロセッサは、復調されたデータをもつサンプル値を生成する。サンプル値当たりの有効ビットの数は異なるブロックで異なることができ、または異なる入力サンプル値から復調されたデータは出力サンプルに組み合わされることができる。インターリーバーおよび／または誤り訂正ストリーム・プロセッサは、一般にフーリエ変換プロセッサなどのブロック・サイズと異なるサイズのブロックにおいて、復調ストリーム・プロセッサからの出力サンプル値を処理する。ブロック・サイズは、フレームの開始からのブロックの位置に依存して変わることができる。中央制御回路は、局所制御回路に与えられる命令によってブロック・サイズを制御する。
【００４４】
理解されるように、図１の回路の設計は集積回路のモジュラー設計を容易にする。図４はＩＣを製造するためのシステムを概略的に示す。第１の記憶媒体４０は、さまざまな特殊化された機能のためのストリーム処理回路の設計データのライブラリを格納する。第２の記憶媒体４２（または第１の記憶媒体４０）は、局所制御回路１２ａ〜ｄおよび中央制御プロセッサ１４のための設計データを格納する。設計コンピュータ４４は設計者のインタフェース端末４６から制御される。この端末から、設計者は複数の異なるストリーム処理回路を選択し、選択されたストリーム処理回路のチェーンをもつ設計を生成するようにコンピュータ４４に命令する。設計者は、また、ブロック・シーケンス番号に応じて、異なるブロックに対して、異なるストリーム処理回路に与えられなければならない制御パラメータ値を指定し、必要ならば、設計者はブロック・サイズも指定する。
【００４５】
設計コンピュータ４４は選択されたストリーム処理回路の設計データを第１の記憶媒体４０から読み出し、この設計データを実質的にそのまま使用して（随意に参照によって）集積回路設計を生成する。設計コンピュータ４４は、中央制御プロセッサの設計データ、および選択された各ストリーム処理回路（または、これらのストリーム処理回路によって使用されるブロック・サイズが常に等しい場合、選択されたストリーム処理回路のサブチェーン）のための局所制御プロセッサ設計データのコピーを付加する。次に、設計コンピュータ４４は中央制御プロセッサ１４用のプログラムを生成して設計者によって選択されたパラメータおよびブロック・サイズを指定する命令を生成し、それらの命令を関連する局所制御回路に送る。設計コンピュータ４４は、結果として得られた集積回路設計を第３の記憶媒体４９（第３の記憶媒体４９は第１および／または第２の記憶媒体であってもよい）にストアする。ＩＣ製造システム４８は集積回路設計データを使用して、集積された設計データにより集積回路を製造することができる。
【００４６】
後に、集積回路設計がストリーム処理回路の実装の１つまたは複数を取り替えることによって変えられる場合、設計コンピュータ４４は集積回路設計データを再度読み出し、関連するストリーム処理回路の設計データ（またはそれに対する参照）を置き替える。制御パラメータ更新のタイミングの変更は必要ない。
【図面の簡単な説明】
【００４７】
【図１】ストリーム処理回路のネットワークを示す図である。
【図２】局所制御回路を示す図である。
【図３】１組の制御回路を示す図である。
【図４】ＩＣを製造するためのシステムを概略的に示す図である。
【図１】
2007528539.tif 000003
【図２】
2007528539.tif 000004
【図３】
2007528539.tif 000005
【図４】
2007528539.tif 000006
【国際調査報告】
2007528539.tif 000007
2007528539.tif 000008