(57)【要約】複数のシリアルリンク又はレーンにわたって、送信機と受信機との間のデータ通信する方法及び装置を提供し、そこでは、送信機に、各グループの第１ビットが受信側にて正しい順序で到達するのを確実にするような態様で、ビットダウンのシリアル化したグループを複数のシリアルリンクの各々に送信させる。本発明の様々な例は、レーン間の最大スキューのバジェットを定めることを含む。このような例では、レーン間のスキュー割当の決定に続いて、送信すべきデータをＮビットのグループに分割する。ここに、Ｎは、ＳのＭ倍よりも大きい数であり、Ｍは、レーン数であり、Ｓは、ビット時間にて割り当てたスキューである。
2009525625.tif 000002
【特許請求の範囲】
【請求項１】
送信すべきデータを有する送信機と、受信機との間で、データを送信する方法であって、
複数のシリアルリンクが、前記送信機と前記受信機との間に設けられており、
ａ）前記複数のシリアルリンク間のスキュー割当を決定するステップと、
ｂ）ＮをＭ×Ｓよりも大きい整数とし、Ｍをレーン数とし、Ｓをビット時間にて割り当てたスキューとして、ビット数Ｎを決定するステップと、
ｃ）送信すべきデータの第１のＮビットをキャプチャするステップ、及び前記複数のシリアルリンクのうちの第１のシリアルリンクにて前記第１のＮビットの送信を開始するステップと、
ｄ）送信すべきデータの第２のＮビットをキャプチャするステップ、及び約Ｎ／Ｍビット時間で、前記複数のシリアルリンクのうちの前記第１のシリアルリンクにて前記送信の開始に続いて、前記複数のシリアルリンクのうちの第２のシリアルリンクにて前記第２のＮビットの送信を開始するステップと、
を含む、データ送信方法。
【請求項２】
前記第１のＮビットをキャプチャするステップは、前記送信機に設けられたメモリをアクセスし、前記第１のＮビットをシリアル化するステップを含む、請求項１に記載の方法。
【請求項３】
前記第２のＮビットをキャプチャするステップは、前記送信機に設けられたメモリをアクセスし、前記第２のＮビットをシリアル化するステップを含む、請求項２に記載の方法。
【請求項４】
前記受信機に、前記第１のＮビット及び前記第２のＮビットをさらに含む、請求項１に記載の方法。
【請求項５】
次に指定のレーンにて、追加のＮビットのグループをキャプチャして送信するステップをさらに含み、該送信ステップの開始は、送信すべき全てのデータが送信されるまで、Ｎ／Ｍビット時間で分けられている、請求項１に記載の方法。
【請求項６】
複数のシリアルリンクによる使用に適合させる送信機であって、
送信用のパケットを格納するように動作可能な、アクセスされる時にマルチビット出力を送出するパケットメモリと、
前記複数のシリアルリンク間のスキュー割当を決定する手段と、
ＮをＭ×Ｓよりも大きい整数とし、Ｍをレーン数とし、Ｓをビット時間における前記スキュー割当として、ビット数Ｎを決定する手段と、
送信すべきデータの第１のＮビットをキャプチャする手段、及び前記複数のシリアルリンクのうちの第１のシリアルリンクにて前記第１のＮビットの送信を開始する手段と、
送信すべきデータの第２のＮビットをキャプチャする手段、及び約Ｎ／Ｍビット時間で、前記複数のシリアルリンクのうちの前記第１のシリアルリンクにて前記送信の開始に続いて、前記複数のシリアルリンクのうちの第２のシリアルリンクにて前記第２のＮビットの送信を開始する手段とを備える、送信機。
【請求項７】
前記第１のＮビットをキャプチャする手段は、前記パケットメモリにアクセスし、前記第１のＮビットをシリアル化する手段を備える、請求項６に記載の送信機。
【請求項８】
前記第２のＮビットをキャプチャする手段は、前記パケットメモリにアクセスし、前記第２のＮビットをシリアル化する手段を備える、請求項７に記載の送信機。
【請求項９】
複数のシリアルリンクにわたって、送信機と受信機との間でデータを送信する方法であって、
ａ）前記シリアルリンク間のスキュー割当を決定するステップと、
ｂ）ＮをＳのＭ倍よりも大きい整数とし、Ｍをレーン数とし、Ｓを前記スキュー割当として、ビット数Ｎを決定するステップと、
ｃ）送信バッファからＮビットをキャプチャするステップと、
ｄ）シリアルリンクポインタにて指定されたシリアルリンクにて、前記キャプチャしたＮビットを送信するステップと、
ｅ）前記シリアルリンクポインタを更新するステップと、
ｆ）前記送信バッファから次のＮビットをキャプチャするステップと、
ｇ）最後の送信の開始以降に、Ｎ／Ｍビット時間が経過したか否かを決定するステップと、
ｈ）送信すべき更なるデータがあるか否かを決定するステップと、
ｉ）ステップ（ｄ）〜（ｈ）を繰り返すステップとを含む、データ送信方法。
【請求項１０】
前記リンク間のスキュー割当を決定するステップは、テーブルを参照するステップを含む、請求項９に記載の方法。
【請求項１１】
前記Ｎビットをキャプチャするステップは、前記データをメモリから読み出し、シリアル化するステップを含む、請求項９に記載の方法。
【請求項１２】
前記テーブルは、前記送信機が設けられる集積回路の外部日設けられる、請求項１０に記載の方法。
【請求項１３】
前記シリアルリンクポインタを更新するステップは、カウンタをインクリメントするステップを含む、請求項９に記載の方法。
【請求項１４】
Ｎは、８の時間である、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、高速データ通信に関し、特に、高速シリアルデータの多数のストリームを受信し、デシリアル化し、配列するのに用いられる回路の複雑性の低減に関する。
【背景技術】
【０００２】
半導体生産技法における進歩は、何百万個ものトランジスタを含み、他の様々なコンポーネント及びその相互接続とともに、極めて高集積度の回路をもたらしている。この進歩によってもたらされた集積回路は、比較的低コストでかなりの電子機能性を提供している。このような進歩は、デジタル及びアナログの集積回路の双方に組み入れられ、これらの進歩は、様々な集積回路間又はモジュール間のデータの高速の通信又は転送が要求される製品を含む、様々なコンシューマ電子製品をもたらしている。
【０００３】
従来、データ転送速度を高めるための要件を、パラレルデータ通信路の数を増加させるなどの手段によって満たしていた。即ち、従来から、広めのバスを用いて、データ転送速度を高めるための要件を満たしていた。 しかしながら、このようなやり方には、幾つかの欠点がある。 例えば、ワイドパラレルバスは、より基板スペースを費し、これにより、コストを増大させる。更に、ワイドパラレルバスは、典型的には、これらのワイドパラレルバスとインターフェースする、チップ又は集積回路に高めのピンカウントを必要とし、この高ピンカウントは、多くのチップ領域を費やし、且つ大きめのパッケージが必要となり、この双方は高めのコストをもたらす。
【０００４】
データ転送速度を高めるための別のやり方は、少なめの信号経路を提供することであり、これらの信号経路は、より高速にデータを転送するのに用いられる。典型的には、このような装置は、送信機側にパラレル―シリアル変換を転送側に設け、シリアル−パラレル返還を受信側に設ける。
【０００５】
現在の多くのアーキテクチャは、集積回路間及び／又はモジュール間に、ワイドパラレルバスに代えて高速シリアル通信路を提供している。このようなアーキテクチャは、限定する必要はないが、ピンカウントを減少させ、基板スペース要件を低減させるという利点をもたらす。
【０００６】
場合によって、複数の高速シリアルデータ経路が、有効データ転送レートを増大させるために設けられる。残念なことに、多数の高速シリアルデータ経路を組み入れる従来のシステムは、スキュー問題があり、適切にデータをデスキューして再構成するためのバッファ及び制御ロジックなどの追加の回路を設けなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
デスキュー及び／又は再構成の動作に用いられるバッファ及び制御ロジックに対する要件を低減又は排除する、集積回路間及び／又はモジュール間に、高速データ通信を提供する方法及び装置が必要である。
【課題を解決するための手段】
【０００８】
本発明によれば、複数のシリアルリンク又はレーンにわたって、送信機と受信機との間のデータ通信する方法及び装置を提供し、そこでは、送信機に、各グループの第１ビットが受信側にて正しい順序で到達するのを確実にするような態様で、ビットダウンのシリアル化したグループを複数のシリアルリンクの各々に送信させる。
【０００９】
本発明の様々な例は、レーン間の最大スキューのバジェット（ｂｕｄｇｅｔ）を定めることを含む。このような例では、レーン間のスキュー割当の決定に続いて、送信すべきデータをＮビットのグループに分割する。ここに、Ｎは、ＳのＭ倍よりも大きい数であり、Ｍは、レーン数であり、Ｓは、ビット時間にて割り当てたスキューである。
【００１０】
以下、更なる特徴と利点について、図面を参照して実施例としてのみ説明する。
【発明を実施するための最良の形態】
【００１１】
包括的には、本発明は、従来からのデータ受信機で見られるデスキューのオーバーヘッド及び再編成を低減又は排除する方法及び装置を提供することに関する。 特に、複数のシリアルリンク（これは、レーンとしても知られている）の幾つかにおける伝送に、所定量の遅延を導入することにより、受信機に到達するデータを整列させることができることは知られており、従って、バイト順の再編成は必要ではない。
【００１２】
以下、“一実施例”、“実施例”又は同様な表現は、特定の構成要素、構造、動作、又はこの実施例と組み合わせて説明する特徴が、本発明の少なくとも１つの十知りえに含められることを意味している。従って、このような用語又は表現を用いることは、必ずしも同一の実施例に全てを参照するものではない。更に、１つ以上の実施例に適切な態様で様々な特定の構成要素、構造、動作、又は特徴を組み合わせることができる。
【００１３】
集積回路（ＩＣ）、半導体デバイス、モノリシックデバイス、マイクロ電子デバイス、及びチップは、一般的にエレクトロニクス分野において互換性を持って用いられることがよくある。 これらが当該分野で一般に理解されるときには、本発明は、その全てに適用可能である。
【００１４】
シリアルリンクがデータ通信に用いられる場合、典型的にはパラレルのデータは、シリアルビットストリームに変換され、シリアルリンクにわたって送られる。受信側では、このシリアルビットストリームは、パラレルデータに戻され、データをパラレルで用いることができるようにする。相互接続のバンド幅が、シリアルビットストリームのビットレートに制限されることは明らかである。
【００１５】
前述のシリアルリンクによってもたらされるバンド幅を増大させるのに用いる１つの方法は、多数シリアルレーンを設けることである。送信機にとって、これは、単に、一度に２，３，４，又は場合によってより多くのビットを送信する必要がある。各連続ビット期間に、２以上のビットが送信される。各ビットが、０，１，２，３，４，５，６，７．．．で番号付けされる場合、ビット０及び１は共に、第１ビット時間に送信され、ビット２及び３は共に、第２ビット時間に送信されるなどである。一度に送信されるシリアルビットの数は、一般に、レーン数と称される。４レーンの道路として考えてみると、２レーンの道路の２倍の車両（シリアルビット）を搬送することができる。
【００１６】
相互接続が同期している場合（即ち、データのタイミングが、クロックエッジなどの何らかの同期イベントに関連づけられている場合）、ビットは、ほぼ同時に、即ち同じ同期イベントで受信機に到達すると予想することができる。しかしながら、完全なる同期シリアルリンクは、周波数でかなり制限され、即ち、この周波数は、バンド幅を制限する。高めの周波数で動作させるために、シリアルラインを駆動するのに用いられる回路は、埋め込み式の同期技法を実装することが考えられ、この場合、受信機は、“クロック”をシリアルデータから回復させることができるような態様でシリアルデータを符号化する。このやり方では、クロックをシリアルデータストリームから回復させて、スキューをレーン間で展開させることになる。上記の例を用いれば、ビット１は、ビット０より前に到着しうる。或いは又、ビット０は、ビット３とともに到着しうるし、ビット２は、ビット５とともに到着しうるなどである。超短波では、実際に、レーン間で多重のビット時間のスキューになりうる。元のビットストリームを回復するために、受信機は、ビットを再構成できなければならない。この処理を、ビットストリームのデスキューと称することができる。
【００１７】
レーンをデスキューする一般的なやり方は、それぞれ各レーンに対して送信される同期コード（シンクコード）を使用することである。シンクコードを同時に各レーンに送信する場合、受信機は、シンクコードの受信間の遅延を検出することができ、受信したビットストリームをどのようにデスキューするかについて、この情報を用いる。このやり方の１つの欠点は、受信機が全ての容易ではない動作を行わなければならないことである。送信機が、受信機に対して簡単にデスキューさせることはほとんどない。これは、受信機を高価な製造プロセスで実装する場合、即ちデジタルロジック（例えば、ＤＲＡＭプロセス）に十分に適していない場合に、問題となりうる。また、必要な動作を送信機と受信機との間で分ける場合に達成できる設計よりも、全ての動作をその一方に押し込むことは複雑な設計をもたらすことにもなる。
【００１８】
本発明の様々な例は、各グループ（各レーン）の第１ビットが受信側にて正しい順序で到着するのを保証するような態様で、指示器、即ち送信機に、各レーンにビットのシリアル化したグループを送信させる。
【００１９】
本発明の様々な例は、レーン間の最大スキューのバジェットを定め、即ち決定する。このような例では、レーン間のスキュー割当の決定に続いて、データをＮビットのグループに分割する。ここに、Ｎは、ＳのＭ倍よりも大きい数であり、Ｍは、レーン数であり、Ｓは、ビット時間にて割り当てたスキューである。
【００２０】
例えば、２レーンで、且つ５ビット時間のスキュー割当の場合、Ｎは１０を超えるようにしなければならない。この例では、１６（２バイト）が良好な選択となる。４レーンで、且つ５ビット時間の場合では、Ｎは４＊５＝２０を超えるようにしなければならず、おそらく２４ビット（３バイト）が利便性のある選択となる。
【００２１】
次に、送信機は、送信すべき最初のＮビットデータをキャプチャして、これらのビットをレーン０で送信し始める。次のＮビットは、レーン１で送信することになるが、Ｎ／Ｍビット時間を通した後まで送信するわけではない。これは、ビットグループが全てのレーンで開始されるまで、各レーンにて続ける。約Ｎ／Ｍビット時間（この値は、一般にＮ／Ｍが整数にまるめられるので、前後しうる）の後に、送信機は、レーン０にて別のＮビットのグループを送信することができる。
【００２２】
本発明の模範的な例を、２レーンで、且つ５ビット時間（即ち、Ｍ＊Ｓ＝１０）のスキューで、以下説明する。ビット数は、利便性からＮ＝１６（２バイト）として選定することができる。キャプチャしたバイト０及び１を、レーン０にて送信する。続いて、８ビット期間後（１６／２＝８）の時点で開始して、バイト４及び５は、レーン０で送信し始める。この例では、受信側には、レーン１のビットは、レーン０の８ビット時間後に到着しうる。しかしながら、５ビット時間のスキュー割当の故に、レーン１のビットは、レーン０のビット後に最少３ビット時間となるか、又はレーン０のビット後に最多１３ビットの到着となりうる。如何なる場合も、レーン１におけるＮビットの第１グループは、常に、レーン０のＮビットの第１グループの後、且つレーン０のＮビットの第２グループの前に到着する。これは、受信機にとって、到着順が保証されるため、そのグループをデスキューするのが極めて容易になる。
【００２３】
次に、２レーンで、且つ９ビットのスキュー・バゲットのより複雑な模範的な例を考える。ここで、Ｎ＝２４を選定した場合を想定する（２＊９＝１８より大きくする必要があるためである）。２４ビットの第１グループは、時刻０にてレーン０で開始する。２４ビットの第２グループは、レーン１にて１２ビット時間後（２４／２＝１２）に開始する。受信側にて、レーン１のデータは、早くて３ビット時間後（１２−９）か、又は遅くて２１ビット時間前（１２＋９）に到着するが、まだレーン０にて送信された第１及び第２のグループ間に常にあることになる。
【００２４】
図３を参照するに、本発明による模範的な処理３００を説明する。第１の動作で、レーン間のスキューに関する決定をする（３０２）。この決定は、適切な任意の態様で行い、例えば、送信機は、動的に更新されるテーブルを参照する。このようなテーブルは、送信機の集積回路内か、又はその集積回路の外部に設けることができる。或いは又、レーン間のスキューは、特定の設計に特徴づけることができ、スキューを送信機デバイスに工場で予めプログラムしておくこともできる。次に、ビット数Ｎに関する決定を行い（３０４）、これは、送信用のグループのビット数である。上述したように、Ｎは、ＳのＭ倍よりも大きい数であり、Ｍは、レーン数であり、Ｓは、ビット時間における予め予想したスキューである。次に、Ｎビットをメモリからキャプチャする（３０６）。このようなメモリは、送信バッファと称され、又はパケットＦＩＦＯと称する。送信すべきデータを格納するのに、任意の好適な素子を用いることができる。次に、キャプチャしたデータの送信を開始し（３０８）、このデータは、複数のレーンのうちの指定したもので送信される。送信するための適切なレーンを指示する任意の適切な手段を用いることができる。或る実施例では、ポインタを用いてレーンを指示することができ、次に、データが送信される次のレーンを指し示すように、このポインタをインクリメントし（３１０）、或いはそうでなければ更新する。次に、送信データの次のＮビットをキャプチャする（３１２）。最後の送信が始まって以降、Ｎ／Ｍビット時間を経過したか否かの決定をする（３１４）。この決定（３１４）が、否定的であれば、処理３００は、この決定が肯定的になるのを待つ。この決定（３１４）が肯定的であれば、更なるデータを送信すべきか否かに関する決定をする（３１６）。更なるデータを送信しないのであれば、処理３００は終了する（３１８）。しかしながら、更なるデータを送信するのであれば、制御は、ステップ３０８に向かい、処理３００は、適切なデータ量を送信するまでループする。
【００２５】
本発明の実施例は、受信機の許容される複雑性が制限されるシリアルデータ送信システムに適用することができる。連続するレーンにわたってビット送信を遅延させる簡単なやり方は、幾つかの複雑性を、受信機から送信機にシフトさせて、送信機の複雑性をほとんど増大させることなく、受信機のタスクをより簡単化させることができる。
【００２６】
本発明は、上述した実施例に制限するものではなく、請求の範囲及びその等価の範囲内で任意の実施例を実現することができることは明らかである。
【図面の簡単な説明】
【００２７】
【図１】データ送信機とデータ受信装置との間で複数のシリアルリンクを含む、従来のシステムの概略ブロック図であり、デスキュー及び再構成の動作を支援するように用いられるバイトレコーダバッファを更に示す図である。
【図２】本発明によるシステムの概略ブロック図であり、受信機側のデータ再構成動作を排除するように、シリアルシンクの送信機側に、所定の遅延を導入したシステムを示す図である。
【図３】本発明による方法を示すフロー図である。
【図１】
2009525625.tif 000003
【図２】
2009525625.tif 000004
【図３】
2009525625.tif 000005