(57)【要約】  本発明によるデータ処理システムは、少なくとも第１および第２のモジュールのグループを備え、各モジュールは、データ処理ファシリティと、そのモジュールから別のモジュールへのデータ送信をタイミング調整するクロックと、データの送信に使用可能なタイム・スロットの個数をカウントするタイム・スロット・カウンタとを有する。モジュールはその動作状態でデータ送信がイネーブルされ、タイム・スロットのカウントされた個数が所定の数以下である第１動作状態と、その動作状態でデータ送信がディスエーブルされ、タイム・スロットのカウントされた個数が所定の数を超えている第２動作状態とを有し、各モジュールはそれが第２動作状態であるときを通知する通知ファシリティを有する。このデータ処理システムは、他のモジュールが、それらが第２動作状態であることを通知したかどうかを検出する少なくとも１つの検出ファシリティを有し、モジュールのそれぞれは、そのモジュールが第２動作状態であり、他のモジュールのそれぞれはそれが第２動作状態であることを通知し終えたときにタイム・スロット・カウンタをリセットする初期化ファシリティを有する。
2008532411.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１および第２のモジュールのグループを備えるデータ処理システムであって、各モジュールは、
データ処理ファシリティと、
前記モジュールから別のモジュールへのデータ送信をタイミング調整するクロックと、
データの送信に使用可能なタイム・スロットの個数をカウントするタイム・スロット・カウンタと、
を有し、
前記モジュールは、その動作状態でデータ送信がイネーブルされる、タイム・スロットの前記カウントされた個数が所定の数以下である第１動作状態と、その動作状態でデータ送信がディスエーブルされる、前記個数が前記所定の数を超えている第２動作状態とを有し、
各モジュールは、それが前記第２動作状態であるときを通知する通知ファシリティを有し、
前記データ処理システムは、他のすべてのモジュールが、それらが前記第２動作状態であることを通知し終えたかどうかを検出する検出ファシリティを有し、
前記モジュールは、前記モジュールが前記第２動作状態であり、前記他のモジュールのそれぞれが、それが前記第２動作状態であることを通知し終えたときに、前記タイム・スロット・カウンタをリセットする初期化ファシリティを有する
データ処理システム。
【請求項２】
前記モジュールの前記クロックのサイクル時間は、多くとも平均サイクル時間の所定の一部分だけ異なり、前記所定の個数のタイム・スロットの持続時間は、前記一部分の逆数値未満である、請求項１に記載のシステム。
【請求項３】
前記所定の個数のタイム・スロットの前記持続時間は、前記逆数値の１／４より長く、前記逆数値の３／４より短い、請求項２に記載のシステム。
【請求項４】
請求項１に記載のモジュールのさらなるグループを有し、前記グループのサブセットのモジュールは、それらが前記第２動作状態であるときに前記さらなるグループのサブセットのモジュールに通知し、前記さらなるグループのサブセットのモジュールは、それらが前記第２動作状態であるときに前記グループのサブセットのモジュールに通知する、請求項１に記載のシステム。
【請求項５】
相互に独立したクロックを有する少なくとも第１および第２のモジュールのグループを備えるデータ処理システムを動作させる方法であって、モジュールごとに、
ａ．タイム・スロットの個数をカウントするカウンタを初期化するステップと、
ｂ．各タイム・スロットで、データが別のモジュールへの送信に使用可能であるかどうかを決定し、使用可能である場合に、前記データを送信するステップと、
ｃ．各タイム・スロットでタイム・スロットの個数のカウントを増分するステップと、
ｄ．前記カウントされた個数が所定の数を超えていない場合に、前記方法をステップｂから繰り返すステップと、
ｅ．前記カウントされた個数が前記所定の数を超えている場合に、これを前記グループの他のモジュールに通知するステップと、
ｆ．前記グループの前記他のモジュールが、前記所定の数が超えられたことを通知し終えるまで待つステップと、
ｇ．前記方法をステップａから繰り返すステップと
を有する方法。
【発明の詳細な説明】
【背景技術】
【０００１】
将来のデータ処理システムは、多数のモジュールを含むことになる。明瞭な機能および明確に定義されたインターフェースを有するモジュールを使用することで、これらのシステムの迅速な開発が容易になる。そのような応用例の一例が、携帯電話機である。モジュールは、たとえば、ＲＦモジュール、誤りコーディング／デコーディング・モジュール、信号コーディング／デコーディング・モジュール、さまざまなユーザ定義機能をソフトウェアで実施することを可能にする汎用プロセッサ、および他のモジュールの間からのデータ・トラフィックを案内するルータまたはスイッチである。ネットワークの形での実施はネットワークが比較的簡単に任意のサイズにスケーリングされ得るので、有利である。ネットワークのスイッチまたはルータおよび他のモジュールは、相互に異なるチップに組み込まれてもよい。ネットワーク・トポロジに対する代替案として、モジュールは、１つまたは複数のバス上に手配され、またはポイント・ツー・ポイント接続を有してもよい。バス内とネットワーク・トポロジ内との両方で、さまざまなデータ・ストリームが、リンクとも表される、２つのモジュールの間の共通通信経路を共用してもよい。
【０００２】
ここで、システムにまたがるデータ送信が、ストリーミングの形で手配される、すなわち、データが、周期的に送信されると仮定する。さまざまなストリームの完全な共存を可能にするために、これらのストリームは、相互に独立でなければならない、すなわち、余分なストリームの追加が、既存のストリームに影響してはならない。
【０００３】
システム内のすべてのモジュールが、正確に同一のクロックによって制御される場合には、異なるストリームのデータがネットワーク内で衝突しないように、ネットワークを介する送信を手配する（すなわち、それらの送信をスケジューリングする）ことが可能である。しかし、さまざまな実用的な状況では、すべてのモジュールは、名目上のみ同一周波数を使用している。この周波数は温度依存ドリフトにより経時的に変化する場合もある。これは、その実際の周波数値が、所与の許容範囲内でわずかに異なることを許容されることを意味する（独立同期［plesiochronous］リンク）。あるいは、言い換えれば、各デバイス／スイッチ／トランスミッタは、有界の周波数誤差を有するそれ自体の独立のクロックを有する。
【０００４】
これは、長時間において、比較的低速のスイッチでのバッファ・オーバーフロー（読取速度が書込速度より低い）または比較的高速のスイッチでのバッファ・アンダーフロー（読取速度が書込速度より高い）および同一リンクを共用する異なるストリームに属するデータの間の送信衝突をもたらし得る。モジュールの間でのフロー制御メッセージの交換によって、これらの問題を克服することが可能である。しかし、フロー制御メッセージの交換は、特にシリアル・リンクを使用する場合に、電力消費に関して非常にコストがかかる可能性がある。たとえば、２．５ＧＨｚ  １０ｂ／８ｂ  ＰＬＬベースのシリアル・リンクを検討されたい。そのようなリンクは、アクティブであるときまたは低電力モードになった後にアクティブ化されるときに電力を消費する。通常のアクティブ化時間は、数千ｎｓ程度（たとえば、２０００ｎｓ）である。たとえば、３２ビットのフロー制御メッセージ（１６ｎｓ）を送信するだけのために、このリンクは、２０１６ｎｓ分の電力を消費する必要があり、これは多すぎる。
【０００５】
米国特許第６０２６１３３号に記載のもう１つの既知の手法は、モジュールの高速局所クロックを調整するのに中央基準クロックを使用する。調整は、電圧制御発振器の電圧を制御することによって実行される。しかし、そのような手配は、各モジュール内に位相ロック・ループを必要とし、これは、設計を複雑にする。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、バッファ・オーバーフロー／アンダーフローが、フロー制御メッセージを必要とせずに防がれる、比較的単純なシステムおよびシステムを動作させる方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明によれば、この目的は、請求項１に記載のシステムにおいて実現される。この目的は、さらに、請求項５に記載のシステムを動作させる方法において実現される。
【０００８】
本発明によるシステムおよび方法では、システム全体にまたがるデータ送信ペースが、最も低速のリンクのペースに適応される。そのため、すべてのモジュールの局所時間が、最も低速のクロック／スイッチ／リンクに対する差を補償するために規則的な間隔で訂正される。これらの間隔では、したがって、訂正の瞬間の間に、すべてのリンクでの、規定された最大値を超えないデータ部分の送信が、行なわれ得る。データのそのような部分を物理リンク上にセットすることが、Ｎクロック・サイクルを要すると仮定する。したがって、局所クロックの各Ｎサイクルの後に、モジュールは、グループ内の他のモジュールとのアラインメントを待つ。この同期化アルゴリズムは、次のように働く。リンク送信の初期化のときに、各スイッチは、Ｎ個のタイム・スロットをカウントし、戻りリンクを介してそのすべての直接のアクティブ隣接スイッチに、それがレディ［Ready―準備完了―］であることの信号を送信する。タイム・スロットは、局所クロックのクロック・サイクルに対する固定された関係を有する。
【０００９】
スイッチは、その全ての直接のアクティブ隣接スイッチあらレディ・フィードバックを受信し、Ｎ個のタイム・スロットのそれ自体のカウントを終了したときに、Ｎ個のタイム・スロットのカウントをもう一度開始し、やはり、このカウントが終了したときに、その隣接スイッチにレディ・フィードバックを発行する。このステップが繰り返される。
【００１０】
この形で、オーバーフロー／アンダーフローまたはさまざまなストリームの間の衝突が効率的な対応で防がれる。
【００１１】
好ましくは、モジュールのクロックのサイクル時間は、多くとも平均サイクル時間の所定の一部分だけ異なり、所定の個数のタイム・スロットの持続時間は、前記一部分の逆数値未満である。この一部分は、クロック・サイクル時間の最大の差（ΔＴ）を平均クロック・サイクル時間（Ｔ）によって割ったものと定義される。
【００１２】
Ｔ／ΔＴの後にタイム・スロット・カウンタの初期化を実行することによって、あるモジュールが、他のモジュールが処理できるものより多いデータを供給できることが、防がれる。
【００１３】
最も好ましくは、所定の個数のタイム・スロットの持続時間は、逆数値の１／４より長く、逆数値の３／４より短い。３／４より短い持続時間を使用することによって、許容される許容範囲からの逸脱が即座にオーバーフローをもたらすことが、防がれる。逆数比の１／４より短い持続時間は、比較的大きいオーバーヘッドをもたらすはずである。
【００１４】
驚くべきことに、このシステムの各モジュールが、各他のモジュールによって通知されることは、必要ではない。一実施形態で、本発明によるシステムは、請求項１に記載のモジュールのさらなるグループを有し、グループのサブセットのモジュールは、第２動作状態であるときにさらなるグループのサブセットのモジュールに通知し、さらなるグループのサブセットのモジュールは、第２動作状態であるときにグループのサブセットのモジュールに通知する。また、この場合に、オーバーフロー／アンダーフローのないデータ・トラフィックが、実現され得る。
【００１５】
そのようなものとして知られる再サンプル方針が、別のモジュールから受信されるデータを再サンプリングするのに使用されてもよい。そのような方針は、たとえば米国特許第５６４４６０４号に記載されている。
【００１６】
本発明の上記および他の態様を、図面を参照して、より詳細に説明する。
【発明を実施するための最良の形態】
【００１７】
図１に、複数のモジュールを備えるデータ処理システムを概略的に示す。図示の実施形態では、データ処理システムは、４つのスイッチＳＷ１、ＳＷ２、ＳＷ３、およびＳＷ４を有するネットワークを備える。ネットワーク・スイッチは、チェーン様の形で手配される、すなわち、スイッチＳＷ１およびＳＷ２は、互いにデータを交換することができ、スイッチＳＷ２およびＳＷ３は、互いにデータを交換することができ、スイッチＳＷ３およびＳＷ４は、互いにデータを交換することができる。データ交換チャネルは、対称のブロック矢印によって象徴的に示されている。ネットワーク・スイッチは、さらに、機能モジュールＦＭ１、…、ＦＭ８に結合される。各モジュールは、データ処理ファシリティを有する。たとえば、スイッチは、データ・ルーティング・ファシリティおよびデータ・バッファリング・ファシリティを有し、機能モジュールは、数学演算、論理演算、記憶などのファシリティ［facility―機能―］を提供する。
【００１８】
わかりやすくするために、ここで、図２に、２つのモジュールＭ１、Ｍ２を有するさらなるシステムをより詳細に示す。トポロジは異なるが、これらのモジュールのより詳細な説明は、図１のモジュールにも関係する。この図のモジュールは、相互に独立のクロックＣＬ１、ＣＬ２を有する。図示の実施形態では、クロックは、局所クロック・ジェネレータであるが、クロック信号を受け取る入力であってもよい。クロックは、そのモジュールから別のモジュールへのデータ送信のタイミング調整のために働く。図２に示されているように、モジュールＭ１およびＭ２のそれぞれは、それぞれ、データの送信に使用可能なタイム・スロットの個数をカウントするタイム・スロット・カウンタＣＮＴ１、ＣＮＴ２を有する。このシステムの電源投入またはリセットのときに、このカウンタは、カウント０に初期化される。これらのモジュールは、タイム・スロットのカウントされる個数が所定の数以下である第１動作状態を有する。この第１状態では、データ送信が、イネーブル［enable―可能に―］される。データは、モジュールの局所クロックと同期して送信される。局所クロックは、別々に送信されてもよく、あるいは、１０ｂ／８ｂエンコーディングなどで、データに埋め込まれて送信されてもよい。モジュールは、タイム・スロットのカウントされる個数が所定の数を超えている第２動作状態を有する。この第２動作状態では、データ送信が、ディスエーブル［disable―不能に―］される。
【００１９】
各モジュールは、そのモジュールが第２動作状態であるときを通知する通知ファシリティを有する。図示の実施形態では、モジュールＭ１は、通知信号線Ｎ１２を有し、モジュールＭ２は、通知信号線Ｎ２２を有する。
【００２０】
この処理システムは、他のモジュールが、それらが第２動作状態であることを通知し終えたかどうかを検出する検出ファシリティＤＥＴを有する。図示の実施形態では、モジュールＭ１、Ｍ２は、１つの検出ファシリティＤＥＴを共用する。その代わりに、モジュールのそれぞれが、別々の検出ファシリティを有してもよい。検出ファシリティは、たとえば、ＡＮＤゲートであってもよく、このＡＮＤゲートは、両方のモジュールが、それらが第２動作状態であることを論理「１」を用いて通知した場合に論理的に信号「１」を与える。その代わりに、検出ファシリティはＯＲゲートであってもよく、このＯＲゲートは、両方のモジュールが、それらが第２動作状態であることを論理「０」を用いて通知した場合に論理的に信号「０」を与える。検出ファシリティが、任意の個数のモジュールから通知信号を受け取ってもよいことは、明白である。
【００２１】
タイム・スロット・カウンタＣＮＴ１およびＣＮＴ２は、検出ファシリティの出力に結合されたリセット入力ＲＥＳを有する。各モジュールが第２動作状態であることを示す検出ファシリティＤＥＴからの信号の際に、タイム・スロット・カウンタは、０に初期化される。その結果、モジュールは、もう一度第１動作状態になり、データ送信を再開することができる。
【００２２】
図３に、グループのモジュールの１つに関する処理ステップを概略的に示す。グループの他のモジュールは、同一の形で動作させられる。
【００２３】
ステップＳ１で、カウンタがタイム・スロットの個数をカウントするために初期化される。タイム・スロットは、局所クロックのクロック期間に関係する固定サイズを有する。たとえば、タイム・スロットは、クロック・サイクルの一部分、単一のクロック・サイクル、または複数のクロック・サイクルの持続時間を有する。
【００２４】
各タイム・スロットで実行されるステップＳ２では、データが別のモジュールへの送信に使用可能であるかどうかが決定され、そうである場合には、ステップＳ３で、前記データが送信される。その代わりに、データが受信されてもよい。データは、まず、必ずグループのモジュールに送信されるが、そのデータが、グループの外部のモジュールにさらに送信されてもよい。データが使用可能でない場合には、ステップＳ４で、タイム・スロットが、送信なしで終わる。
【００２５】
ステップＳ５で、タイム・スロットが終わった後に、またはタイム・スロット内の別の瞬間に、タイム・スロットの個数のカウントが、増分される。
【００２６】
ステップＳ６で、カウントされた数が、所定の数を超えているかどうかを決定する。そうでない場合には、この方法は、ステップＳ２で継続する。
【００２７】
カウントされた数が、所定の数を超えている場合には、ステップＳ７で、これがグループの他のモジュールに通知される。これは、たとえば信号またはメッセージによって通信されてもよい。
【００２８】
ステップＳ８では、モジュールは、グループの他のモジュールが、所定の数が超えられていることを知らせ終えるまで待つ。
【００２９】
グループの各他のモジュールが、それがそのタイム・スロット・サイクルを完了したことを通知し終えた場合に、この方法は、ステップＳ１から繰り返される。
【００３０】
各モジュールが、他のモジュールのそれぞれからの、そのモジュールが第２動作状態であることの通知を有する必要があることは、必要ではない。モジュールのタイム・スロット・カウンタの初期化が、そのモジュールが直接に通信するモジュールからの通知に依存することが、十分である。たとえば、図４に示された４個のモジュールの直線アレイを検討されたい。この実施形態は、後続の通知依存性を有する。モジュールＭ１は、モジュールＭ２に通知し、モジュールＭ２は、モジュールＭ１およびＭ３に通知し、モジュールＭ３は、モジュールＭ２およびＭ４に通知し、モジュールＭ４は、モジュールＭ３に通知する。図４のシステムは、モジュールＭ３、Ｍ４のさらなるグループを有するシステムと考えることができ、ここで、グループＭ１、Ｍ２のサブセットＭ２のモジュールは、第２動作状態であるときにさらなるグループＭ３、Ｍ４のサブセットＭ３のモジュールに通知し、さらなるグループＭ３、Ｍ４のサブセットＭ３のモジュールは、第２動作状態であるときにグループＭ１、Ｍ２のサブセットＭ２のモジュールに通知する。たとえば、モジュールＭ１が比較的遅いクロックを有し、タイム・スロットの所定のカウントに達するのに基準クロックの１０時間単位の処理時間を必要とし、他のモジュールが、同一の基準クロックの９時間単位だけを必要とすると仮定する。後続の表に、タイム・スロット・カウンタがこのシステム内で初期化される瞬間を示す。
【表１】
2008532411.tif 000003
【００３１】
この表では、モジュールＭ１が、１０時間単位の後にその通知を与え、他のモジュールが、９時間単位の後に通知を与えたことがわかる。通知依存性に鑑みて、モジュールＭ２は、モジュールＭ１を待ち、これらの両方が、時刻１０にそれらのタイム・スロット・カウンタを初期化する。Ｍ３およびＭ４は、時刻９に初期化する。それらの処理時間に鑑みて、これらのモジュールは、次の通知を完了２の時刻に与える。Ｍ１は、時刻２０に終了される。Ｍ２は、モジュールＭ２の初期化と共に待っていたので、今や、時刻１９に終了される。他の２つのモジュールは、時刻１８に終了される。Ｍ１のスロット・カウンタは、時刻２０に初期化される。Ｍ２のスロット・カウンタは、Ｍ１を待ち、やはり時刻２０に初期化される。Ｍ３は、時刻１８にそれ自体の通知を与えているが、Ｍ２からの通知をも受け取った時刻１９にのみ、そのスロット・カウンタを初期化する。Ｍ４は、時刻１８に完了され、それと同時にＭ３から通知を受け取っている。したがって、Ｍ４は、そのタイム・スロット・カウンタを時刻１８に初期化する。完了３の行に、どの時刻に、モジュールが３回目に第２動作状態に達したかが示されている。ここで、モジュールＭ４が、そのタイム・スロット・カウンタを即座にリセットするのではなく、モジュールＭ４がそれでもモジュールＭ３からの通知を受け取らなければならないので、１時間単位を待つことがわかる。この形で、モジュールのそれぞれの間のデータ・トラフィックが同期化され、その結果、バッファ・オーバーフロー／アンダーフローが防がれる。
【００３２】
本発明の保護の範囲が、本明細書で説明された実施形態に制限されないことに注意されたい。このシステムの諸部分は、ハードウェア、ソフトウェア、またはその組合せで実施されてもよい。また、本発明の保護の範囲は、添付の特許請求の範囲の参照符号によっては制限されない。単語「備える」および「有する」は、添付の特許請求の範囲で述べられた部分以外の部分を除外しない。要素の前の単語「ａ（ｎ）」は、複数のこれらの要素を除外しない。本発明の一部を形成する手段は、専用ハードウェアの形またはプログラムされた汎用プロセッサの形のどちらで実施されてもよい。本発明は、各新規の特徴または特徴の組合せに存する。
【図面の簡単な説明】
【００３３】
【図１】本発明によるデータ処理システムの第１実施形態を示す図である。
【図２】本発明によるデータ処理システムの第２実施形態をより詳細に示す図である。
【図３】本発明による方法を示す図である。
【図４】本発明によるさらなる実施形態を示す図である。
【図１】
2008532411.tif 000004
【図２】
2008532411.tif 000005
【図３】
2008532411.tif 000006
【図４】
2008532411.tif 000007
【国際調査報告】
2008532411.tif 000008
2008532411.tif 000009
2008532411.tif 000010