(57)【要約】  回路は、高優先度回路と非高優先度回路とを有する。高優先度回路は、差動シリアル通信リンクの１つの経路に高優先度情報を伝達するように動作可能である。非高優先度回路は、この１つの経路に非高優先度情報を伝達する。高優先度情報は、非高優先度情報より先に伝達される。一例では、上記回路は、高優先度回路と非高優先度回路とに動作可能に結合されたフロー制御配分器を備える。フロー制御配分器は、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分する。フロー制御配分器は、高優先度クレジットに基づいて高優先度情報の通信を制御する。フロー制御配分器は、非高優先度クレジットに基づいて非優先度情報の通信を制御する。
2010539823.tif 000002
【特許請求の範囲】
【請求項１】
差動シリアル通信リンクの１つの経路に高優先度情報を伝達するように動作可能な高優先度回路と、
前記１つの経路に非高優先度情報を伝達するように動作可能な非高優先度回路とを備え、前記高優先度情報は前記非高優先度情報より先に伝達される回路。
【請求項２】
前記高優先度回路と前記非高優先度回路に動作可能に結合され、前記高優先度情報と前記非高優先度情報とを受信し、前記１つの経路に、前記非高優先度情報より先に前記高優先度情報を伝達するように動作可能なアービタを更に備える、請求項１に記載の回路。
【請求項３】
前記高優先度情報および前記非高優先度情報の一方に基づいてパケットを生成するように動作可能なパケット生成器を更に備え、パケットは、該パケットに前記高優先度情報および前記非高優先度情報の前記一方が含まれることを示すヘッダを含む、請求項１に記載の回路。
【請求項４】
前記高優先度回路と前記非高優先度回路とに動作可能に結合され、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分し、前記高優先度クレジットに基づいて前記高優先度情報の通信を、前記非高優先度クレジットに基づいて前記非高優先度情報の通信をそれぞれ制御するように動作可能なフロー制御配分器を更に備える、請求項１に記載の回路。
【請求項５】
前記高優先度回路は前記高優先度クレジットに基づいて高優先度情報を伝達するように動作可能であり、前記非高優先度回路は、前記非高優先度クレジットに基づいて非高優先度情報を伝達するように動作可能である、請求項４に記載の回路。
【請求項６】
前記フロー制御配分器は、前記高優先度回路が前記高優先度情報を伝達するときに、前記高優先度クレジットから少なくとも１クレジットを減算し、前記非高優先度回路が前記高優先度情報を伝達するときに、前記非高優先度クレジットから少なくとも１クレジットを減算するように動作可能である請求項４に記載の回路。
【請求項７】
前記差動シリアル通信リンクのダウンストリーム経路から前記総フロー制御クレジット数を含む情報を受信するように動作可能な受信器を更に備える、請求項６に記載の回路。
【請求項８】
前記受信器は、前記受信した情報のペイロードを無ブロックコンプリーション回路に伝達するように動作可能である、請求項７に記載の回路。
【請求項９】
前記フロー制御配分器は、前記総フロー制御クレジット数に基づいて、前記高優先度クレジットにクレジットの第１の割合を加算し、前記非高優先度クレジットにクレジットの第２の割合を加算するように動作可能である請求項７に記載の回路。
【請求項１０】
前記フロー制御配分器は、前記高優先度クレジットが所定値未満の場合、前記総フロー制御クレジット数に基づいて前記高優先度クレジットに少なくとも１クレジットを加算し、前記高優先度クレジットが、前記所定値以上の場合、前記総フロー制御クレジット数に基づいて、前記非高優先度クレジットに少なくとも１クレジットを加算するよう動作可能である、請求項７に記載の回路。
【請求項１１】
前記フロー制御配分器は、
前記総フロー制御クレジット数を前記高優先度クレジットと前記非高優先度クレジットとに配分するように動作可能な配分器と、
前記総フロー制御クレジット数に基づいて前記高優先度クレジットに少なくとも１クレジットを加算し、前記高優先度情報が伝達されるときに、前記高優先度クレジットから少なくとも１クレジットを減算するように動作可能な高優先度追跡回路と、
前記総フロー制御クレジット数に基づいて前記非高優先度クレジットに少なくとも１クレジットを加算し、前記非高優先度情報が伝達されるときに、前記非高優先度クレジットから少なくとも１クレジットを減算するように動作可能な非高優先度追跡回路とを備える、請求項４に記載の回路。
【請求項１２】
前記高優先度追跡回路は、
前記高優先度クレジットに配分されたクレジットをカウントするように動作可能な高優先度累積カウンタと、
前記高優先度回路に動作可能に結合され、前記高優先度情報が伝達されるときに使用されるクレジットをカウントするように動作可能な高優先度使用カウンタと、
前記高優先度使用カウンタに動作可能に結合され、前記使用されるクレジットに基づいて前記高優先度クレジットから前記少なくとも１クレジットを減算するように動作可能な高優先度減算回路とを備える、請求項１１に記載の回路。
【請求項１３】
前記非高優先度追跡回路は、
前記非高優先度クレジットに配分されたクレジットをカウントするように動作可能な非高優先度累積カウンタと、
前記非高優先度回路に動作可能に結合され、前記非高優先度情報が伝達されるときに使用されるクレジットをカウントするように動作可能な非高優先度使用カウンタと、
前記非高優先度使用カウンタに動作可能に結合され、前記使用されるクレジットに基づいて前記非高優先度クレジットから前記少なくとも１クレジットを減算するように動作可能な非高優先度減算回路とを備える、請求項１１に記載の回路。
【請求項１４】
前記フロー制御配分器は、
前記高優先度情報の伝達に必要なクレジットの数が、前記高優先度クレジット以下の場合に、前記高優先度回路による前記高優先度情報の伝達を可能にするように動作可能な高優先度比較器と、
前記非高優先度情報の伝達に必要なクレジットの数が、前記非高優先度クレジット以下の場合に、前記非高優先度回路による前記非高優先度情報の伝達を可能にするように動作可能な非高優先度比較器とを備える、請求項１１に記載の回路。
【請求項１５】
差動シリアル通信リンクの１つの経路からパケットを受信するように動作可能であり、前記パケットを高優先度情報および非高優先度情報の一方に分類するように動作可能なパケットパーサと、
無ブロックの高優先度インタフェースに前記高優先度情報を伝達するように動作可能な高優先度回路と、
非高優先度インタフェースに前記非高優先度情報を伝達するように動作可能な非高優先度回路とを備える回路。
【請求項１６】
前記１つの経路は、１つのダウンストリーム経路または１つのアップストリーム経路である、請求項１５に記載の回路。
【請求項１７】
前記無ブロックの高優先度インタフェースはシステムメモリに動作可能に結合されている、請求項１５に記載の回路。
【請求項１８】
送信器と受信器とを有する送受信器を更に備え、前記送信器は、前記受信器がパケットを受信できる容量に基づいて、フロー制御クレジット情報を送信するように動作可能である、請求項１５に記載の回路。
【請求項１９】
差動シリアル通信リンクの１つの経路の情報の優先度を制御する方法であって、
総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分するステップと、
前記高優先度クレジットに基づいて、前記差動シリアル通信リンクの前記１つの経路に高優先度情報を選択的に伝達するステップと、
前記非高優先度クレジットに基づいて、前記差動シリアル通信リンクの前記１つの経路に非高優先度情報を選択的に伝達するステップとを含み、前記高優先度情報は、前記非高優先度情報より先に伝達される方法。
【請求項２０】
前記高優先度情報の伝達に必要なクレジットの数が、前記高優先度クレジット以下の場合に、前記高優先度情報を伝達するステップと、
前記非高優先度情報の伝達に必要なクレジットの数が、前記非高優先度クレジット以下の場合に、前記非高優先度情報を伝達するステップとを更に含む、請求項１９に記載の方法。
【請求項２１】
少なくとも１つのプロセッサと、
メモリと、
前記少なくとも１つのプロセッサと前記メモリとに動作可能に結合された複数優先度通信システムと、
前記複数優先度通信システムに動作可能に結合され、高優先度情報に基づいて表示情報を生成するように動作可能なディスプレイとを備え、
前記複数優先度通信システムは、
差動シリアル通信リンクの１つのアップストリーム経路からパケットを受信するように動作可能であり、前記パケットを高優先度情報および非高優先度情報の一方に分類するように動作可能なパケットパーサと、
前記メモリに動作可能に結合された無ブロックの高優先度インタフェースに、前記高優先度情報を伝達するように動作可能なアップストリーム高優先度回路と、
非高優先度インタフェースに前記非高優先度情報を伝達するように動作可能なアップストリーム非高優先度回路とを有するアップストリーム集積回路と、
前記１つのアップストリーム経路に前記高優先度情報を伝達するように動作可能なダウンストリーム高優先度回路と、
前記１つのアップストリーム経路に非高優先度情報を伝達するように動作可能なダウンストリーム非高優先度回路と、前記高優先度情報は前記非高優先度情報より先に伝達され、
前記ダウンストリーム高優先度回路と前記ダウンストリーム非高優先度回路とに動作可能に結合され、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分し、前記高優先度クレジットに基づいて前記高優先度情報の通信を、前記非高優先度クレジットに基づいて前記非高優先度情報の通信をそれぞれ制御するように動作可能なフロー制御配分器とを複数優先度通信システムとを有するダウンストリーム集積回路とを含む、
デバイス。
【請求項２２】
１つの経路に高優先度情報を伝達するように動作可能な高優先度回路と、
前記１つのアップストリーム経路に非高優先度情報を伝達するように動作可能な非高優先度回路と、を備え、前記高優先度情報は前記非高優先度情報より先に伝達される回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、差動シリアル通信回路に関し、より詳細には、差動通信回路を使用して、複数の優先度を有する情報を通信するための方法および装置に関連する。
【背景技術】
【０００２】
グラフィックプロセッサ、ハードディスク、ネットワークカードや、その他の高速Ｉ／Ｏデバイスなどの入出力（Ｉ／Ｏ）デバイスの処理速度を高速化するために、チップセットとＩ／Ｏデバイス間の帯域幅を広帯域化することが求められている。チップセットとＩ／Ｏデバイス間の帯域幅を広帯域化する１つの方法として、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）などの差動シリアル通信リンクを使用する方法がある。ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）は、多くの場合「仮想チャネル」と呼ばれる複数の差動通信リンクを使用する、柔軟な複合型のシリアル−パラレルインタフェースフォーマットである。各リンクは、情報を送信するための送信レーンと、情報を受信するための受信レーンとを有する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
各差動シリアル通信リンクについて、ハードウェアを追加する必要がある。このため、複数の差動シリアル通信リンクを使用するには、１つの差動シリアル通信リンクを使用するよりも必要なハードウェアが多くなる。ハードウェアの追加によりチップセットが大型化するが、これは、多くのポータブルデバイスの用途では望ましくない。更に、ハードウェアの追加により集積回路の電力使用も増えるが、これも、多くのポータブルデバイスでは望ましくない。
【０００４】
また、一部の用途では、各リンクが、すべての要求を、スヌープ（snoop）が必要な経路にエイリアス（alias）することができない場合、複数の差動シリアル通信リンクが許容されない。したがって、１つの差動シリアル通信リンクしか利用できない。しかし、１つの差動シリアル通信リンクしか使用できない場合、優先度の高い情報が優先度の低い情報の後にキューイングされる可能性があり、望ましくない。
【０００５】
このため、さまざまな要求のなかでも、差動通信リンクをサポートするためのハードウェアを最小限に低減しつつ、差動通信リンクにおける優先度の高い情報のスループットを改善するための方法および装置を提供することが望ましい。
【課題を解決するための手段】
【０００６】
一例では、回路は、高優先度回路と非高優先度回路とを有する。高優先度回路は、差動シリアル通信リンクの１つの経路に高優先度情報を伝達する。非高優先度回路は、この１つの経路に非高優先度情報を伝達する。高優先度情報は、可能な場合は、非高優先度情報より先に伝達される。一例では、上記回路は、高優先度回路と非高優先度回路とに動作可能に結合されたフロー制御配分器を備える。フロー制御配分器は、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分する。フロー制御配分器は、高優先度クレジットに基づいて高優先度情報の通信を制御する。フロー制御配分器は、非高優先度クレジットに基づいて非優先度情報の通信を制御する。また、上記の機能を提供する方法も使用される。
【０００７】
上記回路と方法は、ほかの利点のなかでも、１つの差動シリアル通信リンクにおいて優先度の高い情報のスループットを決定可能に（deterministic）する。１つの差動シリアル通信リンクを使用することにより、リンクのサポートに必要なハードウェアを最小限に低減することができる。リンクのサポートに必要なハードウェアを最小限に低減することで、電力使用を低減できると共に、回路および／または当該回路を使用するデバイスを全体的に小型化することができる。また、本上記回路と方法は、複数の差動シリアル通信リンクが許容されない用途において、複数優先度通信を提供する。上記以外の利点は、通常の知識を有する当業者であれば理解できるであろう。
【０００８】
一例では、上記回路は、高優先度情報または非高優先度情報に基づいてパケットを生成するパケット生成器を有する。パケットは、このパケットに、高優先度情報と非高優先度情報のいずれが含まれるかを示すヘッダパラメータを含む。一例では、パケットに高優先度情報が含まれる場合、ヘッダ中のトラフィッククラスパラメータが第１の値に設定される。パケットに非高優先度情報が含まれる場合、トラフィッククラスパラメータが第２の値に設定される。
【０００９】
一例では、フロー制御配分器は、配分器と、高優先度追跡回路と、非高優先度追跡回路とを有する。配分器は、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分する。高優先度追跡回路は、総フロー制御クレジット数（例えば、フロー制御クレジットの更新）に基づいて、高優先度クレジットに少なくとも１クレジットを加算する。高優先度追跡回路は、高優先度情報が伝達されるときに、高優先度クレジットから少なくとも１クレジットを減算する。非高優先度追跡回路は、総フロー制御クレジット数（例えば、フロー制御クレジットの更新）に基づいて、非高優先度クレジットに少なくとも１クレジットを加算する。非高優先度追跡回路は、非高優先度情報が伝達されるときに、非高優先度クレジットから少なくとも１クレジットを減算する。
【００１０】
一例では、上記回路は、パケットパーサと、高優先度回路と、非高優先度回路とを有する。パケットパーサは、差動シリアル通信リンクの１つの経路からパケットを受信する。パケットパーサは、パケットを、高優先度情報と非高優先度情報とに分類する。高優先度回路は、無ブロックの高優先度インタフェースに高優先度情報を伝達する。高優先度回路は、非高優先度インタフェースに非優先度情報を伝達する。また、上記の機能を提供する方法も使用される。
【００１１】
一例では、複数優先度通信システムは、アップストリーム（upstream）集積回路とダウンストリーム（downstream）集積回路とを有する。集積回路は、パケットパーサと、アップストリーム高優先度回路と、アップストリーム非高優先度回路とを有する。パケットパーサは、差動シリアル通信リンクの１つのアップストリーム経路からパケットを受信する。パケットパーサは、パケットを、高優先度情報と非高優先度情報とに分類する。アップストリーム高優先度回路は、無ブロックの高優先度インタフェースに高優先度情報を伝達する。アップストリーム非高優先度回路は、非高優先度インタフェースに非優先度情報を伝達する。ダウンストリーム集積回路は、ダウンストリーム高優先度回路と、ダウンストリーム非高優先度回路と、フロー制御配分器とを有する。ダウンストリーム高優先度回路は、高優先度情報を１つのアップストリーム経路に伝達する。ダウンストリーム非高優先度回路は、非高優先度情報をこの１つのアップストリーム経路に伝達する。高優先度情報は、可能な場合は、非高優先度情報より先に伝達される。フロー制御配分器は、ダウンストリーム高優先度回路とダウンストリーム非高優先度回路とに動作可能に結合されている。フロー制御配分器は、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分する。フロー制御配分器は、高優先度クレジットに基づいて高優先度情報の通信を制御する。フロー制御配分器は、非高優先度クレジットに基づいて非優先度情報の通信を制御する。
【００１２】
一例では、デバイスは、少なくとも１つのプロセッサと、メモリと、複数優先度通信システムと、ディスプレイとを有する。複数優先度通信システムは、少なくとも１つのプロセッサとメモリとに動作可能に結合されている。複数優先度通信システムは、アップストリーム集積回路とダウンストリーム集積回路とを有する。アップストリーム集積回路は、パケットパーサと、アップストリーム高優先度回路と、アップストリーム非高優先度回路とを有する。パケットパーサは、差動シリアル通信リンクの１つのアップストリーム経路からパケットを受信する。パケットパーサは、パケットを、高優先度情報と非高優先度情報とに分類する。アップストリーム高優先度回路は、メモリに動作可能に結合された無ブロックの高優先度インタフェースに、高優先度情報を伝達する。アップストリーム非高優先度回路は、非高優先度インタフェースに非優先度情報を伝達する。ダウンストリーム集積回路は、ダウンストリーム高優先度回路と、ダウンストリーム非高優先度回路と、フロー制御配分器とを有する。ダウンストリーム高優先度回路は、高優先度情報を１つのアップストリーム経路に伝達する。ダウンストリーム非高優先度回路は、非高優先度情報をこの１つのアップストリーム経路に伝達する。高優先度情報は、非高優先度情報より先に伝達される。フロー制御配分器は、ダウンストリーム高優先度回路とダウンストリーム非高優先度回路とに動作可能に結合されている。フロー制御配分器は、総フロー制御クレジット数を高優先度クレジットと非高優先度クレジットとに配分する。フロー制御配分器は、高優先度クレジットに基づいて高優先度情報の通信を制御する。フロー制御配分器は、非高優先度クレジットに基づいて非優先度情報の通信を制御する。ディスプレイは、複数優先度通信システムに動作可能に結合されている。ディスプレイは、高優先度情報に基づいて表示情報を生成する。
【図面の簡単な説明】
【００１３】
【図１】複数優先度通信システムを備えるデバイスの一例の機能ブロック図。
【図２】複数優先度通信システムが実行しうるステップの例を示すフローチャート。
【図３】複数優先度通信システムの一例の機能ブロック図。
【図４】複数優先度通信システムのフロー制御配分器の一例の機能ブロック図。
【図５】フロー制御配分器が実行しうるステップの例を示すフローチャート。
【図６】複数優先度通信システムの高優先度制御回路と非高優先度制御回路の実装例の機能ブロック図。
【発明を実施するための形態】
【００１４】
本発明は、添付の図面を参照しつつ以下に記載する説明を読めば、より容易に理解できるであろう。図面において、同じの参照符号は同じ要素を参照している。
【００１５】
ここで使用するように、「モジュール」、「回路」および／または「ステージ」との用語は、１つ以上のソフトウェアまたはファームウエアプログラムを実行する電子回路、１つ以上のプロセッサ（例えば、マイクロプロセッサ、ＤＳＰまたは中央処理装置などの共有プロセッサ、専用プロセッサ、プロセッサ群があるが、これらに限定されない）およびメモリ、コンビネーショナル論理回路、ＡＳＩＣ、ならびに／あるいは、ここに記載する機能を提供するのに適したほかのコンポーネントを含むことができる。
【００１６】
次に図１を参照すると、デバイス１００の機能ブロック図が示される。デバイス１００は、例えば、携帯電話、モバイルコンピュータおよび／または据置き型のコンピュータ、プリンタ、ＬＡＮインタフェース（無線および／または有線）、メディアプレーヤ、ビデオデコーダおよび／またはエンコーダ、ならびに／あるいは他の適したデジタルデバイスであってもよい。デバイス１００は、少なくとも１つのプロセッサ１０２と、チップセット１０４（メモリおよび／またはＩ／Ｏデバイスへのブリッジ回路など）と、高速Ｉ／Ｏデバイス１０６（グラフィックプロセッサ（またはコア）および関連するディスプレイ１１０、ハードディスク、ネットワークカードまたはその他の適した高速Ｉ／Ｏデバイスなど）と、システムメモリ１０８とを備える。
【００１７】
プロセッサ１０２は、チップセット１０４に動作可能に結合され、チップセット１０４からの要求を処理する。一部の実施形態では、チップセット１０４は、システムメモリ１０８に動作可能に結合されたメモリコントローラ１１１を備える。システムメモリ１０８は、チップセット１０４から伝達される情報を記憶する。別の実施形態では、プロセッサ１０２が、システムメモリ１０８に動作可能に結合されたメモリコントローラ１１１を備え、システムメモリ１０８はプロセッサ１０２から伝達される情報を記憶する。チップセット１０４と高速Ｉ／Ｏデバイス１０６とは、複数優先度通信システム１１２を介して通信を行う。
【００１８】
複数優先度通信システム１１２は、ダウンストリーム回路１１４とアップストリーム回路１１６とを備える。一部の実施形態では、ダウンストリーム回路１１４とアップストリーム回路１１６とはそれぞれ、別個の集積回路として実装することができる。ダウンストリーム回路１１４とアップストリーム回路１１６とは、例えばＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）または他の適した差動シリアル通信リンクなどの差動シリアル通信リンク１１８を介して通信を行うように動作可能である。差動シリアル通信リンク１１８は、アップストリーム経路１２０とダウンストリーム経路１２２とを有する。ダウンストリーム回路１１４は、ダウンストリーム送信器１２４とダウンストリーム受信器１２６とを備える。ダウンストリーム送信器１２４は、アップストリーム経路１２０にパケットの形で情報を伝達する。ダウンストリーム受信器１２６は、ダウンストリーム経路１２２からパケットの形で情報を受信する。アップストリーム回路１１６は、アップストリーム送信器１２８とアップストリーム受信器１３０とを備える。アップストリーム送信器１２８は、アップストリーム経路１２２にパケットの形で情報を伝達する。アップストリーム受信器１３０は、アップストリーム経路１２０からパケットの形で情報を受信する。
【００１９】
複数優先度通信システム１１２は、送信器１２４，１２８が受信器１２６，１３０に送信する情報が多くなり過ぎないように、フロー制御機構を使用する。このフロー制御機構では、受信器１２６，１３０が、所定数のクレジットを送信器１２４，１２８に提供し、この数は、受信器１２６，１３０が、受信した情報を記憶できるバッファ空間の量に対応している。送信器１２４，１２８は、全クレジットを使い果たすと、受信器１２６，１３０がクレジットを解放するまで、情報の送信を中断する。複数優先度通信システム１１２は、１つの差動シリアル通信リンクのクレジットを、優先度の高いフロー制御クレジットと、優先度の高くないフロー制御クレジットとに割り当て、差動シリアル通信リンク１１８を介して伝達される情報の優先度を制御している。
【００２０】
優先度の高くない要求は、メモリコントローラ１１１の非高優先度インタフェース１３２に伝達される。優先度の高い要求は、メモリコントローラ１１１の無ブロックの高優先度インタフェース１３４に伝達される。無ブロックの高優先度インタフェース１３４により、長時間、情報がブロックされたりキューキングされることなく、優先度の高い要求が、システムメモリ１０８に伝達されることが保証される。このようにして、優先度の高い要求が、優先度の高くない要求より先にシステムメモリ１０８に伝達される。優先度の高い要求に対して、メモリコントローラ１１１は、優先度の高い要求に基づいてシステムメモリ１０８から情報を取得し、この情報を、無ブロックコンプリーション経路１３６を介して、アップストリーム回路１１６に伝達する。無ブロックコンプリーション経路１３６により、システムメモリ１０８から取得された情報が、長時間ブロックされたり、キューキングされることなく、アップストリーム回路１１６に伝達されることが保証される。
【００２１】
次に、図２を参照すると、複数優先度通信システム１１２のダウンストリーム回路１１４または他の適した構造が実行しうるステップの例を示し、２００で総称する。この処理はステップ２０２から開始し、ステップ２０２において、アップストリーム受信器１３０がダウンストリーム送信器１２４に総フロー制御クレジット数を提供する。ステップ２０４において、ダウンストリーム回路１１４が、総フロー制御クレジット数を、高優先度クレジットと非高優先度クレジットとに配分する（例えば分ける）。例えば、総フロー制御クレジット数が６０の場合、２０の高優先度クレジットと４０の非高優先度クレジットとに配分されうる。
【００２２】
ステップ２０６において、ダウンストリーム回路１１４が、高優先度クレジットに基づいて、高優先度情報を、差動シリアル通信リンク１１８のアップストリーム経路１２０に選択的に伝達する。より詳細には、高優先度情報を伝達するのに足る高優先度クレジットが存在する場合、ダウンストリーム回路１１４は高優先度情報をアップストリーム経路に伝達する。高優先度クレジットが不足している場合、アップストリーム受信器１３０が、高優先度情報を伝達するのに十分なクレジットをダウンストリーム送信器１２４に提供するまで、ダウンストリーム回路１１４は、高優先度情報を伝達するのを待機する。
【００２３】
ステップ２０８において、ダウンストリーム回路１１４は、高優先度情報が、非高優先度情報より先に伝達されるように、非高優先度クレジットに基づいて、差動シリアル通信リンク１１８のアップストリーム経路１２０に非高優先度情報を選択的に伝達する。より詳細には、非高優先度情報を伝達するのに足る非高優先度クレジットが存在する場合、ダウンストリーム回路１１４は非高優先度情報をアップストリーム経路に伝達する。非高優先度クレジットが不足している場合、アップストリーム受信器１３０が、非高優先度情報を伝達するのに十分なクレジットをダウンストリーム送信器１２４に提供するまで、ダウンストリーム回路１１４は、非高優先度情報を伝達するのを待機する。プロセスは、ステップ２１０で終了する。
【００２４】
次に図３を参照すると、ダウンストリーム回路１１４とアップストリーム回路１１６の一例の機能ブロック図が示される。ダウンストリーム回路１１４は、ダウンストリーム送信器１２４、ダウンストリーム受信器１２６、パケット生成器３００、アービタ３０２、フロー制御配分器３０４、ダウンストリームパケットパーサ３０５、非高優先度制御回路３０６、ダウンストリーム非高優先度回路３０７、高優先度制御回路３０８、およびダウンストリーム高優先度回路３０９を備える。パケット生成器３００は、ダウンストリーム送信器１２４とアービタ３０２とに動作可能に結合されている。アービタ３０２は、非高優先度制御回路３０６と高優先度制御回路３０８とに動作可能に結合されている。非高優先度制御回路３０６と高優先度制御回路３０８とは、フロー制御配分器３０４に動作可能に結合され、フロー制御配分器３０４は、ダウンストリーム受信器１２６に動作可能に結合されている。ダウンストリームパケットパーサ３０５は、ダウンストリーム受信器１２６と、ダウンストリーム非高優先度回路３０７と、ダウンストリーム高優先度回路３０９とに動作可能に結合されている。
【００２５】
非高優先度制御回路３０６は、非高優先度情報３１０を受信し、（非高優先度情報３１０に基づいて）非高優先度情報３１１をアービタ３０２に選択的に伝達する。より詳細には、非高優先度フロー制御情報３１２により、非高優先度情報３１１を伝達するのに十分な非高優先度クレジットを使用できることが示される場合、非高優先度制御回路３０６は、非高優先度情報３１１をアービタ３０２に伝達する。非高優先度フロー制御情報３１２により、非高優先度情報３１１を伝達するための非高優先度クレジットが不足していることが示される場合、非高優先度回路３０６は、十分なクレジットが使用可能になるまで、非高優先度情報３１０をバッファおよび／またはストールする。
【００２６】
同様に、高優先度制御回路３０８は、高優先度情報３１４を受信し、（高優先度情報３１４に基づいて）高優先度情報３１５をアービタ３０２に選択的に伝達する。より詳細には、高優先度フロー制御情報３１６により、高優先度情報３１５を伝達するのに十分な高優先度クレジットを使用できることが示される場合、高優先度制御回路３０８は、高優先度情報３１５をアービタ３０２に伝達する。高優先度フロー制御情報３１６により、高優先度情報３１５を伝達するための高優先度クレジットが不足していることが示される場合、高優先度回路３１０は、十分なクレジットが使用可能になるまで、高優先度情報３１４をバッファおよび／またはストールする。
【００２７】
フロー制御配分器３０４は、ダウンストリーム受信器１２６から総フロー制御クレジット数３１８を受信し、クレジットを高優先度クレジットと非高優先度クレジットとに配分する。また、フロー制御配分器３０４は、非高優先度フロー制御情報３１２に基づいて、非高優先度制御回路３０６による非高優先度情報３１０，３１１の通信を制御するようにも動作可能である。更に、フロー制御配分器３０４は、高優先度フロー制御情報３１６に基づいて、高優先度制御回路３０８による高優先度情報３１４，３１５の通信を制御する。
【００２８】
また、フロー制御配分器３０４は、高優先度制御回路３０８が高優先度情報３１４，３１５を伝達するときに、高優先度クレジットの使用を追跡するようにも動作可能である。例えば、高優先度制御回路３０８が、メモリリード要求を含む高優先度情報を伝達する場合、高優先度クレジットから、１要求（またはヘッダ）クレジットが引かれうる。同様に、フロー制御配分器３０４は、非高優先度制御回路３０６が非高優先度情報３１０，３１１を伝達するときに、非高優先度クレジットの使用を追跡する。
【００２９】
更に、フロー制御配分器３０４は、総フロー制御クレジット数３１８に基づいて、残りの高優先度クレジットに新しい高優先度フロー制御クレジットを加算し、残りの非高優先度クレジットに新しい非高優先度クレジットを加算する。一部の実施形態では、フロー制御配分器３０４は、高優先度クレジットに所定量のクレジットを加算し、非高優先度クレジットに任意の追加のクレジットを加算しうる。例えば、総フロー制御クレジット情報３１８により、新しいクレジットが３０あることが示される場合、フロー制御配分器３０４は、高優先度クレジットに２０クレジットを加算し、非高優先度クレジットに残りの１０クレジットを加算しうる。別の実施形態では、フロー制御配分器３０４は、高優先度クレジットに第１の割合のクレジットを加算し、非高優先度クレジットに第２の割合のクレジットを加算しうる。例えば、総フロー制御クレジット情報３１８により、新しいクレジットが５０あることが示される場合、フロー制御配分器３０４は、高優先度クレジットに新しいクレジットの２０％（例えば、１０クレジット）を加算し、非高優先度クレジットに新しいクレジットの８０％（例えば、４０クレジット）を加算しうる。
【００３０】
アービタ３０２は、非高優先度情報３１１と高優先度情報３１５とを受信する。アービタ３０２は、非高優先度情報３１１より先に高優先度情報３１５を伝達する。一部の実施形態では、アービタ３０２は、非高優先度情報３１１と高優先度情報３１５との多重化を行ない、非高優先度情報３１１と高優先度情報３１５とを含む複合情報３２０を生成してもよい。
【００３１】
パケット生成器３００は複合情報３２０を受信し、複合情報３２０に基づいて１つ以上のパケット３２２を生成する。パケット生成器３００が高優先度情報３１５を含むパケットを生成する場合に、パケット生成器３００は、パケットのペイロードに高優先度情報３１５が含まれることを示すように、パケットのヘッダ中のトラフィッククラス識別子を設定する。同様に、パケット生成器３００が非高優先度情報３１１を含むパケットを生成する場合に、パケット生成器３００は、ペイロードに非高優先度情報３１１が含まれることを示すように、ヘッダ中のトラフィッククラスを設定する。ダウンストリーム送信器１２４は、パケット３２２を受け取って、差動シリアル通信リンク１１８のアップストリーム経路１２０にパケット３２２を送信する。
【００３２】
一部の実施形態では、ダウンストリーム受信器１２６からの１つ以上の受信パケット３２３が、ダウンストリーム無ブロックコンプリーション回路３５０に伝達される。別の実施形態では、ダウンストリームパケットパーサ３０５は、ダウンストリーム受信器１２６からの１つ以上の受信パケット３２３を、パケット３２３のヘッダ中のトラフィッククラスに基づいて、高優先度情報３２５と非高優先度情報３２７とに分ける。例えば、ダウンストリームパケットパーサ３０５は、パケット３２３を、トラフィッククラスが１などの第１の値に設定されている場合は高優先度情報３２５に分け、トラフィッククラスが０などの第２の値に設定されている場合は非高優先度情報３２７に分けうる。高優先度情報３２５は、ダウンストリーム高優先度回路３０９に伝達される。非高優先度情報３２７は、ダウンストリーム非高優先度回路３０７に伝達される。
【００３３】
アップストリーム回路１１６は、アップストリーム送信器１２８、アップストリーム受信器１３０、アップストリームパケットパーサ３２４、アップストリーム高優先度回路３２６、アップストリーム非高優先度回路３２８、フロー制御クレジット追跡回路３３０、およびコンプリーション回路３３１を備える。アップストリーム受信器１３０は、アップストリームパケットパーサ３２４とフロー制御クレジット追跡回路３３０とに動作可能に結合されている。アップストリームパケットパーサ３２４は、アップストリーム受信器１３０と、アップストリーム高優先度回路３２６と、アップストリーム非高優先度回路３２８とに動作可能に結合されている。フロー制御クレジット追跡回路３３０は、アップストリーム受信器１３０とアップストリーム送信器１２８とに動作可能に結合されている。無ブロックコンプリーション回路３３１は、アップストリーム送信器１２８に動作可能に結合されている。
【００３４】
アップストリーム受信器１３０は、差動シリアル通信リンク１１８のアップストリーム経路１２０から１つ以上のパケット３２２を受信する。受信器１３０は、パケット３２２をアップストリームパケットパーサ３２４に伝達する。アップストリームパケットパーサ３２４は、パケット３２２を、パケット３２２のヘッダ中のトラフィッククラスに基づいて、高優先度情報３３４と非高優先度情報３３６とに分ける。例えば、アップストリームパケットパーサ３２４は、パケット３２２を、トラフィッククラスが１などの第１の値に設定されている場合は高優先度情報３３４に分け、トラフィッククラスが０などの第２の値に設定されている場合は非高優先度情報３３６に分けうる。
【００３５】
高優先度回路３２６は、高優先度情報３３４を受信し、高優先度インタフェース１３４にこれを伝達する。非高優先度回路３２８は、非高優先度情報３３６を受信し、非高優先度インタフェース１３２にこれを伝達する。上で説明したように、高優先度インタフェース１３４はシステムメモリ１０８に無ブロックの経路を提供し、これにより、高優先度情報３３４が非高優先度情報３３６より優先的にシステムメモリ１０８に伝達されることが保証される。
【００３６】
フロー制御追跡回路３３０は、受信器１３０が受信可能な情報量を追跡する。より詳細には、フロー制御追跡回路３３０は、アップストリーム高優先度回路３２６とアップストリーム非高優先度回路３２８のキャパシティ情報３３８をモニタする。フロー制御追跡回路３３０は、キャパシティ情報３３８に基づいて総フロー制御クレジット数情報３１８を生成する。アップストリーム送信器１２８は、総フロー制御クレジット情報３１８を受信し、差動シリアル通信リンク１１８のダウンストリーム経路１２２に、総フロー制御クレジット情報３１８を伝達する。
【００３７】
コンプリーション回路３３１は、無ブロックコンプリーション経路１３６を介して、システムメモリ１０８から、高優先度要求と非高優先度要求に基づいて情報を受信する。コンプリーション回路３３１は、無ブロックコンプリーション経路１３６を介して受信した情報に基づいて、パケット３２３を生成する。コンプリーション回路３３１がパケット３２３を生成するとき、コンプリーション回路３３１は、ペイロードに高優先度情報３２５が含まれることを示すように、パケット３２３のヘッダ中のトラフィッククラスを設定する。ダウンストリーム送信器１２４は、パケット３２３を受け取って、差動シリアル通信リンク１１８のダウンストリーム経路１２２にパケット３２３を送信する。
【００３８】
次に図４を参照すると、フロー制御配分器３０４の機能ブロック図の例が示される。フロー制御配分器３０４は、配分器回路４００、高優先度クレジット追跡回路４０２、高優先度比較器４０４、非高優先度クレジット追跡回路４０６、および非高優先度比較器４０８を備える。高優先度クレジット追跡回路４０２は、配分器回路４００と高優先度比較器４０４とに動作可能に結合されている。非高優先度クレジット追跡回路４０６は、配分器回路４００と非高優先度比較器４０８とに動作可能に結合されている。
【００３９】
配分器回路４００は、総フロー制御クレジット情報３１８を受信し、総フロー制御クレジット情報３１８を、高優先度クレジット４１０と非高優先度クレジット４１２とに配分する。上で説明したように、一部の実施形態では、フロー制御配分器３０４は、高優先度クレジットに所定量のクレジットを加算し、非高優先度クレジットに残りのクレジットを加算しうる。別の実施形態では、フロー制御配分器３０４は、高優先度クレジットに第１の割合のクレジットを加算し、非高優先度クレジットに第２の割合のクレジットを加算しうる。
【００４０】
高優先度クレジット追跡回路４０２は、高優先度累積カウンタ４１４、高優先度減算器４１６、高優先度クレジットレジスタ４２０、および高優先度使用カウンタ４２２を備える。高優先度減算器４１６は、高優先度累積カウンタ４１４と、高優先度使用カウンタ４２２と、高優先度クレジットレジスタ４２０とに動作可能に結合されている。高優先度クレジットレジスタ４２０は、高優先度比較器４０４の第１の入力４２４に動作可能に結合されている。高優先度使用カウンタ４２２は、減算器４１６と、必要高優先度クレジット情報４３７とに動作可能に結合されている。
【００４１】
高優先度累積カウンタ４１４は、高優先度クレジット４１０に基づいて、高優先度蓄積情報４２８を生成する。より詳細には、高優先度累積カウンタ４１４は、ディストリビューション回路４００から受け取る高優先度クレジット４１０ごとにインクリメントされ、高優先度クレジット４１０に基づいて高優先度蓄積情報４２８を生成する。別の実施形態では、クレジットが直接伝達されてもよい。この例では、高優先度累積カウンタ４１４がインクリメントされるが、一部の実施形態では高優先度累積カウンタ４１４がデクリメントされても、ここに記載する機能を提供するために他の適した構造が使用されてもよいことを、当業者は理解するであろう。
【００４２】
高優先度クレジットレジスタ４２０は、現在の高優先度クレジット情報４３０を記憶して、第１の入力４２４にこれを提供する。高優先度減算器４１６は、高優先度蓄積情報４２８と高優先度使用情報４３６とに基づいて、使用可能高優先度クレジット情報４３２を生成する。使用可能高優先度クレジット情報４３２は、高優先度クレジットレジスタ４２０に記憶すべきクレジットの数を示す。
【００４３】
高優先度使用カウンタ４２２は、高優先度フロー制御情報３１６と必要高優先度クレジット情報４３７とに基づいてインクリメントされる。より詳細には、高優先度使用カウンタ４２２は、差動シリアル通信リンク１１８のアップストリーム経路１２０に高優先度情報を伝達するために使用される現在の必要高優先度クレジット情報４３７ごとにインクリメントされ、これに基づいて高優先度使用情報４３６を生成する。この例では、高優先度使用カウンタ４２２がインクリメントされるが、一部の実施形態では高優先度使用カウンタ４２２がデクリメントされても、ここに記載する機能を提供するために他の適した構造が使用されてもよいことを、当業者は理解するであろう。
【００４４】
高優先度比較器４０４は、現在の高優先度クレジット４３０と、アップストリーム経路１２０に高優先度情報を伝達するために必要なクレジットの数を示す必要高優先度クレジット情報４３７とを受信する。高優先度比較器４０４は、現在の高優先度クレジット４３０と必要高優先度クレジット情報４３７とに基づいて、高優先度フロー制御情報３１６を生成する。より詳細には、高優先度比較器４０４は、必要高優先度クレジット情報４３７が現在の高優先度クレジット４３０以下の場合に、フロー制御情報３１６を生成する。
【００４５】
非高優先度クレジット追跡回路４０６は、非高優先度累積カウンタ４３８、非高優先度減算器４４０、非高優先度クレジットレジスタ４４４、および非高優先度使用カウンタ４４６を備える。非高優先度減算器４４０は、非高優先度累積カウンタ４３８と、非高優先度使用カウンタ４４６と、非高優先度クレジットレジスタ４４４とに動作可能に結合されている。非高優先度クレジットレジスタ４４４は、非高優先度比較器４０８の第１の入力４４６に動作可能に結合されている。非高優先度使用カウンタ４４６は、非高優先度減算器４４０と、必要非高優先度クレジット情報４５８とに動作可能に結合されている。
【００４６】
非高優先度累積カウンタ４３８は、非優先度クレジット４１２に基づいて、非高優先度蓄積情報４５０を生成する。より詳細には、非高優先度累積カウンタ４３８は、ディストリビューション回路４００から受け取る非高優先度クレジット４１２ごとにインクリメントされ、非高優先度クレジット４１２に基づいて非高優先度蓄積情報４５０を生成する。この例では、非高優先度累積カウンタ４３８がインクリメントされるが、一部の実施形態では非高優先度累積カウンタ４３８がデクリメントされても、ここに記載する機能を提供するために他の適した構造が使用されてもよいことを、当業者は理解するであろう。
【００４７】
非高優先度クレジットレジスタ４４４は、現在の非高優先度クレジット情報４５２を記憶して、第１の入力４４６にこれを提供する。非高優先度減算器４４０は、非高優先度蓄積情報４５０と非高優先度使用情報４５６とに基づいて、利用可能非高優先度クレジット情報４５４を生成する。使用可能非高優先度クレジット情報４５４は、非高優先度クレジットレジスタ４４４に記憶すべきクレジットの数を示す。
【００４８】
非高優先度使用カウンタ４４６は、非高優先度フロー制御情報３１２と必要非高優先度クレジット情報４５８とに基づいてインクリメントされる。より詳細には、非高優先度使用カウンタ４４６は、差動シリアル通信リンク１１８のアップストリーム経路１２０に非高優先度情報を伝達するために使用される現在の必要非高優先度クレジット情報４５８ごとにインクリメントされ、これに基づいて非高優先度使用情報４５６を生成する。この例では、非高優先度使用カウンタ４４６がインクリメントされるが、一部の実施形態では非高優先度使用カウンタ４４６がデクリメントされても、ここに記載する機能を提供するために他の適した構造が使用されてもよいことを、当業者は理解するであろう。
【００４９】
非高優先度比較器４０８は、現在の非高優先度クレジット４５２と、アップストリーム経路１２０に非高優先度情報を伝達するために必要なクレジットの数を示す必要非高優先度クレジット情報４５８とを受信する。非高優先度比較器４０８は、現在の非高優先度クレジット４５２と必要非高優先度クレジット情報４５８とに基づいて、非高優先度フロー制御情報３１２を生成する。より詳細には、非高優先度比較器４０８は、必要非高優先度クレジット情報４５８が現在の非高優先度クレジット４５２以下の場合に、非高優先度フロー制御情報３１２を生成する。
【００５０】
次に図５を参照すると、フロー制御配分器３０４が実施しうるステップの例を示し、５００で総称する。この処理はステップ５０２から開始し、ステップ５０２において、ダウンストリーム回路１１４とアップストリーム回路１１６間の差動シリアル通信リンク１１８が初期化される。ステップ５０４において、配分器回路４００が、アップストリーム受信器１３０から総フロー制御情報３１８を受信する。ステップ５０６において、配分器回路４００は、総クレジット数情報３１８を高優先度クレジット４１０に配分する。ステップ５０８において、配分器回路４００は、総クレジット数情報３１８を非高優先度クレジット４１２に配分する。
【００５１】
ステップ５１０において、フロー制御配分器３０６は、高優先度情報３１４を差動通信リンク１１８のアップストリーム経路１２０に伝達すべきかどうかを判定する。高優先度情報３１４を伝達すべき場合、ステップ５１２において、高優先度比較器４０４が、必要高優先度クレジット４３７が現在の高優先度クレジット４３０以下であるかどうかを判定する。必要高優先度クレジット４３７が現在の高優先度クレジット４３０を超えている場合、ステップ５１４において、フロー制御配分器３０４は、高優先度クレジットが更新されているかどうかを判定する。高優先度クレジットが更新されている場合、処理はステップに５１２に戻る。
【００５２】
ステップ５１２において、高優先度比較器４０４が、必要高優先度クレジット４３７が現在の高優先度クレジット４３０未満であると判定した場合、ステップ５１８において、高優先度減算器４１８は、高優先度フロー制御情報３１６に基づいてクレジットを減算する。また、必要高優先度クレジット４３７が現在の高優先度クレジット４３０以下である場合、ステップ５２０において、高優先度比較器４０４は高優先度フロー制御情報３１６を生成し、処理がステップ５２２で終了する。
【００５３】
ステップ５１０において、フロー制御配分器３０６が、高優先度情報３１４を伝達すべきではないと判定した場合、ステップ５２４において、フロー制御配分器は、非高優先度情報３１０を伝達すべきかどうかを判定する。非高優先度情報３１０を伝達すべき場合、ステップ５２６において、非高優先度比較器４０８が、必要非高優先度クレジット４５２が現在の非高優先度クレジット４３０以下であるかどうかを判定する。必要非高優先度クレジット４５２が現在の非高優先度クレジット４５８を超えている場合、ステップ５２８において、フロー制御配分器３０４は、非高優先度クレジットが更新されているかどうかを判定する。非高優先度クレジットが更新されている場合、処理はステップに５２６に戻る。
【００５４】
ステップ５２６において、非高優先度比較器４０８が、必要非高優先度クレジット４５８が現在の非高優先度クレジット４５２以下であると判定した場合、ステップ５３２において、非高優先度減算器４４２は、非高優先度フロー制御情報３１２に基づいてクレジットを減算する。また、必要非高優先度クレジット４５８が現在の非高優先度クレジット４５２未満である場合、ステップ５３４において、非高優先度比較器４０８は非高優先度フロー制御情報３１６を生成し、処理がステップ５２２で終了する。
【００５５】
次に図６を参照すると、高優先度制御回路３０８と非高優先度制御回路３０６の実装例の機能ブロック図が示される。高優先度制御回路３０８は、高優先度ＡＮＤゲート６００と高優先度バッファ６０２とを有する。高優先度バッファ６０２は、高優先度情報３１５を受信し、高優先度フロー制御情報３１６によって高優先度ＡＮＤゲート６００が作動されるまで高優先度情報３１４を記憶する。このように、高優先度フロー制御情報３１６により、高優先度情報３１４，３１５を伝達するために十分な高優先度フロー制御クレジットが使用可能であることが示されると高優先度情報３１４が、高優先度制御回路３０８によって伝達される。
【００５６】
非高優先度制御回路３０６は、非高優先度ＡＮＤゲート６０４と非高優先度バッファ６０６とを有する。非高優先度バッファ６０６は、非高優先度情報３１０を受信し、非高優先度フロー制御情報３１２によって非高優先度ＡＮＤゲート６０４が作動されるまで非高優先度情報３１０を記憶する。このように、非高優先度フロー制御情報３１１により、非高優先度情報３１０，３１１を伝達するために十分な非高優先度フロー制御クレジットが使用可能であることが示されると非高優先度情報３１１が、非高優先度制御回路３０６によって伝達される。
【００５７】
上で説明したように、ほかの利点のなかでも、１つの差動シリアル通信リンクにおいて優先度の高い情報のスループットを上げることができる。１つの差動シリアル通信リンクを使用することにより、リンクのサポートに必要なハードウェアを最小限に低減することができる。リンクのサポートに必要なハードウェアを最小限に低減することで、電力使用を低減できると共に、回路およびデバイスを全体的に小型化することができる。また、本方法および装置は、複数の差動シリアル通信リンクが許容されない用途において複数優先度通信を提供する。上記以外の利点は、通常の知識を有する当業者であれば理解できるであろう。
【００５８】
本開示には特定の例が含まれるものの、本開示はこれらに限定されない点を理解すべきである。図面、本明細書および下記の特許請求の範囲を検討すれば、当業者は、本開示の趣旨と範囲から逸脱することなく、数多くの変更、変形、バリエーション、置換および均等物に想到できるであろう。
【図１】
2010539823.tif 000003
【図２】
2010539823.tif 000004
【図３】
2010539823.tif 000005
【図４】
2010539823.tif 000006
【図５】
2010539823.tif 000007
【図６】
2010539823.tif 000008
【国際調査報告】
2010539823.tif 000009
2010539823.tif 000010