(57)【特許請求の範囲】
【請求項１】
第１の通信プロトコルを使用して第１のデータポートを介してデータを通信するように構成された第１の通信回路と、
リードリクエスト及びライトリクエストが受信される順序で前記リードリクエスト及び前記ライトリクエストを処理する第２の通信プロトコルを使用して第２のデータポートを介してデータを通信するように構成された第２の通信回路と、
前記第１の通信回路の前記第１のデータポートと前記第２の通信回路の前記第２のデータポートとの間でデータを通信するように構成されたブリッジ回路であって、バッファ回路を経由して前記第２の通信回路に全てのノンポステッドライトを通信し、前記バッファ回路をバイパスする通信経路を経由してバッファリングなしで前記第２の通信回路にポステッドライトを通信するように構成されたブリッジ回路と
を備えるシステム。
【請求項２】
前記第１の通信回路に接続されたメモリと、
前記第１の通信回路に結合され、前記メモリからデータをキャッシュするためのキャッシュを有する処理回路と
を更に備え、
前記第１の通信回路は、前記キャッシュによってキャッシュされている前記メモリのメモリアドレスを示すリードリクエストを前記第１のデータポートで受信したことに応答して、前記キャッシュから前記メモリアドレスに対応するデータ値を取り出すように更に構成され、
保留中のノンポステッドライトによってブロックされている前記キャッシュからのデータ値のライトバックに関するデッドロックが、バッファ回路を経由する前記第２の通信回路への前記ノンポステッドライトの通信によって防止される、請求項１に記載のシステム。
【請求項３】
前記ブリッジ回路は、前記第２の通信回路へのノンポステッドライトよりも前記第２の通信回路へのポステッドライトを優先させるように更に構成される、請求項１又は２に記載のシステム。
【請求項４】
前記バッファ回路は、先入れ先出し（ＦＩＦＯ）バッファであり、
前記ブリッジ回路は、前記バッファ回路をバイパスする通信経路を経由してポステッド及びノンポステッドリードを通信するように構成される、請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記ブリッジ回路は、前記第１の通信プロトコルを使用して前記第１の通信回路とデータを通信し、前記第２の通信プロトコルを使用して前記第２の通信回路とデータを通信するように構成される、請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記ブリッジ回路は、前記第１の通信回路と前記第２の通信回路との間のポステッドリード及びライトトランザクションのためのアドレス変換を実行するように構成及び準備されたアドレス変換回路を含む、請求項１から５のいずれか一項に記載のシステム。
【請求項７】
前記ブリッジ回路は、前記第１の通信回路又は前記第２の通信回路の一方からのリード及びライトトランザクションに、前記アドレス変換回路をバイパスするデータパスでの、前記第１の通信回路又は前記第２の通信回路の他方へのアクセスを提供するように構成されたダイレクトメモリアクセス回路を含む、請求項６に記載のシステム。
【請求項８】
前記ブリッジ回路及び前記第２の通信回路は、前記第１の通信回路からノンポステッドライトを受信したことに応答して、第１の期間内に前記ノンポステッドライトに確認応答を提供するように構成され、
前記バッファ回路は、前記第１の期間において前記第１の通信回路によって発行され得るノンポステッドライトリクエストの少なくとも最大数をバッファリングするように構成される、請求項１から７のいずれか一項に記載のシステム。
【請求項９】
前記バッファ回路は、前記第１の期間において前記第１の通信回路によって発行され得るノンポステッド及びポステッドライトリクエストの最大数より少ない数をバッファリングするように構成される、請求項８に記載のシステム。
【請求項１０】
前記ブリッジ回路は、前記第１の通信回路からの書き込みに応答して、前記書き込みがポステッドライトかノンポステッドライトかを宛先アドレスに基づいて判定するように構成された回路を含む、請求項１から９のいずれか一項に記載のシステム。
【請求項１１】
第１の通信回路を使用して、第１の通信プロトコルを用いて第１のデータポートを介してデータを通信することと、
第２の通信回路を使用して、リードリクエスト及びライトリクエストが受信される順序で前記リードリクエスト及び前記ライトリクエストを処理する第２の通信プロトコルを用いて第２のデータポートを介してデータを通信することと、
前記第１の通信回路から前記第２の通信回路へバッファ回路を経由して全てのノンポステッドライトを通信することと、
前記バッファ回路をバイパスする通信経路を経由してバッファリングなしで前記第１の通信回路から前記第２の通信回路へポステッドライトを通信することと
を含むデータ通信方法。
【請求項１２】
前記第１の通信回路から前記第２の通信回路へのポステッドライトの通信は、前記バッファ回路に記憶されているノンポステッドライトを通信する前に、前記ポステッドライトを前記第２の通信回路に通信することを含む、請求項１１に記載の方法。
【請求項１３】
前記第１の通信回路に接続されたメモリに記憶されたデータと前記第１の通信回路に接続されたキャッシュに記憶されたデータとの間のデータコヒーレンシを維持するために、前記第１の通信回路を用いることを更に含む、請求項１１又は１２に記載の方法。
【請求項１４】
前記第１の通信回路と前記第２の通信回路との間のポステッドリード及びライトトランザクションのためのアドレス変換を実行することを更に含む、請求項１１から１３のいずれか一項に記載の方法。
【請求項１５】
前記第１の通信回路から書き込みを受信したことに応答して、前記書き込みがポステッドライトかノンポステッドライトかを宛先アドレスに基づいて判定することと、
前記書き込みがノンポステッドライトであると判定したことに応答して、前記ノンポステッドライトを前記バッファ回路にルーティングすることと、
前記書き込みがポステッドライトであると判定したことに応答して、前記バッファ回路をバイパスする前記通信経路に前記ポステッドライトをルーティングすることと
を更に含む、請求項１１から１４のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に集積回路（ＩＣ）に関し、より詳細にはデータ通信に関する。
【背景技術】
【０００２】
プログラマブル集積回路（ＩＣ）は、特定の論理機能を実行するようにプログラムすることができるデバイスである。１つのタイプのプログラマブルＩＣであるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、通常、プログラマブルタイルのアレイを含む。各プログラマブルタイルは、プログラマブルインターコネクトとプログラマブルロジックの両方を含み得る。プログラマブルインターコネクトは、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続された様々な長さの多数のインターコネクトラインを、通常、含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザーデザインのロジックを実装する。プログラマブルインターコネクトおよびプログラマブルロジックは、プログラマブルエレメントがどのように構成されるかを規定する内部コンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによって、通常、プログラムされる。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってＦＰＧＡに書き込むことができる。その後、個々のメモリセルの集合状態が、ＦＰＧＡの機能を決定する。
【０００３】
いくつかのプログラマブルＩＣには、プログラムコードを実行できるエンベデッドプロセッサが含まれる。プロセッサは、ＩＣの「プログラマブル回路」とも総称されるプログラマブルロジック回路およびプログラマブルインターコネクト回路を含む同じダイの一部として製造することができる。プロセッサ内でのプログラムコードの実行は、ＩＣ上で利用可能であり得るプログラマブル回路を「プログラムすること」または「構成すること」と区別できる、ということを理解されたい。ＩＣのプログラマブル回路をプログラムまたは構成する行為は、プログラマブル回路内にコンフィギュレーションデータによって特定される様々な物理的回路の実装をもたらす。
【０００４】
エンベデッドプロセッサシステムを有するプログラマブルＩＣは、しばしば、オペレーティングメモリ、ソフトウェア命令記憶部、入力／出力、およびコンピュータシステムの他の構成要素を含み、システムオンチップ（ＳＯＣ）ソリューションと呼ばれることもある。設計者は、プログラマブルロジックに複雑な機能を実装して、効率とスループットを向上させることができる。このアーキテクチャーの組み合わせにより、シリアルとパラレルの処理の有利な混合、フレキシビリティ、およびスケーラビリティがもたらされ、特にインテリジェントビデオ、デジタル通信、マシンシステム、医療機器の分野において、より最適なシステムパーティションが可能になる。
【０００５】
設計者に利用可能な様々なオプションが与えられると、設計は、ソフトウェアと１つ以上の集積回路のプログラマブルロジックとの間で分割されたいくつかの部分を含むことができる。しかしながら、異なる部分間の通信のための適切なアレンジメントを実装することは、設計者に課題を提起する。データバスアーキテクチャは、システムの様々な部分間における及び外部装置とのデータ通信のための便利な方法を提供する。
【０００６】
データバスは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）、ＡＭＢＡ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの多数の異なるデータバスプロトコルで実装することができる。設計者は、選択されたデータバスプロトコルに準拠した方法でデータバスとの間でデータを通信するためのインターフェース回路を実装する。
【発明の概要】
【０００７】
第１の通信プロトコルを使用して第１のデータポートを介してデータを通信する第１の通信回路を含むシステムが開示される。システムはまた、第２の通信プロトコルを使用して第２のデータポートを介してデータを通信する第２の通信回路を含む。第２の通信プロトコルは、リードリクエストとライトリクエストが受信される順序で、リードリクエストとライトリクエストを処理する。ブリッジ回路が、第１の通信回路の第１のデータポートと第２の通信回路の第２のデータポートとの間でデータを通信するように構成される。ブリッジ回路は、バッファ回路を介してノンポステッドライトを第２の通信回路に伝達し、ポステッドライトを、バッファ回路をバイパスする通信経路を介して第２の通信回路に伝達するように構成される。
【０００８】
データ通信のための方法もまた開示される。第１の通信回路を使用して、データは、第１の通信プロトコルを使用して第１のデータバスを介して通信される。第２の通信回路を使用して、リードリクエストとライトリクエストが受信される順序でリードリクエストとライトリクエストを処理する第２の通信プロトコルを使用して第２のデータバスを介して、データが通信される。ノンポステッドライトは、バッファ回路を介して第１の通信回路から第２の通信回路に伝達される。ポステッドライトは、バッファ回路をバイパスする通信経路を介して第１の通信回路から第２の通信回路に伝達される。
【０００９】
第１の通信プロトコルを使用して第１のデータポートを介してデータを通信する第１の通信回路を含む他のシステムも開示される。システムはまた、リードリクエストとライトリクエストが受信される順序でリードリクエストとライトリクエストを処理する第２の通信プロトコルを使用して第２のデータポートを介してデータを通信する第２の通信回路を含む。システムはブリッジ回路も含む。ブリッジ回路は、バッファ回路を含む第１および第２のデータポート間の第１の通信経路を有する。ブリッジ回路はまた、バッファ回路をバイパスする第１および第２のデータポート間の第２の通信経路を有する。ブリッジ回路は、第１の通信回路から受信したライトトランザクションがポステッドライトかノンポステッドライトかを判定するように構成された入力回路を含む。ライトトランザクションがノンポステッドライトであると判定したことに応答して、入力回路は、ノンポステッドライトを第２の通信経路を介して第２の通信回路に供給する。ライトトランザクションがポステッドライトであると判定したことに応答して、入力回路は、ポステッドライトを第２の通信経路を介して第２の通信回路に供給する。
【００１０】
他の特徴が、以下の詳細な説明および特許請求の範囲の考察から認識されるであろう。
【００１１】
開示された方法および回路の様々な態様および特徴は、以下の詳細な説明を概観し、図面を参照して明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】１つ以上の実施形態と一致する、通信ブリッジ回路を有するシステムを示す。
【図２】１つ以上の実施形態と一致する、第１および第２の通信回路並びに通信ブリッジ回路を動作させるプロセスを示す。
【図３】１つ以上の実施形態と一致する、ＡＸＩ−ＰＣＩｅブリッジ回路を示す。
【図４】１つ以上の実施形態と一致して構成され得るプログラマブルＩＣを示す。
【発明を実施するための形態】
【００１３】
プログラマブルＩＣは、異なるそれぞれの通信プロトコルを使用してデータを通信する回路を含むことができる。例えば、プログラマブルＩＣは、ＡＸＩ通信プロトコルを使用して、第１のバス上のシステムの異なる部分間でデータを通信し、ＰＣＩｅ通信プロトコルを使用して、システムのＩ／Ｏポートに接続された外部デバイスと通信してもよい。異なる通信プロトコルを使用する回路間でデータを通信する場合、各プロトコルで使用されるデータフォーマット間でデータを変換するためにインターフェース回路を使用することができる。
【００１４】
しかし、様々な通信プロトコルによって使用される順序付け規則のために、通信回路が処理を続ける前に、各通信回路が他からのデータを必要とするデッドロック状況が生じることがある。たとえば、ＡＸＩデバイスからＰＣＩｅデバイスへのデータチャネルがノンポステッドライトによってブロックされると、デッドロックが発生することがある。ノンポステッドライトでは、送信デバイスが次のデータトランザクションを進める前に、受信デバイスがトランザクションの成功または失敗を示すために、確認応答で応答する必要がある。ノンポステッドライトは、例えば、Ｉ／Ｏ書き込み、及び／又はコンフィギュレーションライトを含むことができる。対照的に、ポステッドライトは、他のトランザクションを進める前に確認応答を必要としないライトトランザクションである。ポステッドライトは、例えば、メモリ書き込みおよび／またはデータメッセージを含むことができる。参照を容易にするために、ポステッド及びノンポステッドのリード及びライトは、データトランザクションと総称されることがある。
【００１５】
幾つかのアプローチは、ダウンストリームＰＣＩｅデバイスが追加のデータトランザクションを処理できる状態になるまで、ブリッジ回路内にＡＸＩデバイスからのすべてのダウンストリームデータトランザクションをバッファリングすることによって、ＡＸＩデバイスとＰＣＩｅデバイス間のデッドロックを防止することができる。データトランザクションをバッファリングすることにより、順序付け規則を維持しながら、ＡＸＩデバイスが新しいデータトランザクションを発行し続けるようにすることができる。より具体的には、ＡＸＩデバイスは、ＰＣＩｅデバイスからのアップストリーム確認応答をブロックする可能性のある保留中のアップストリームデータトランザクションを完了するために必要なデータトランザクションを発行してもよい。しかし、バッファリングされ得るダウンストリームトランザクションの数は、ブリッジ回路で利用可能なバッファ記憶によって制限される。さらに、アプリケーションに応じて、ノンポステッドライトが完了するのを待っている間に、多数のダウンストリームリード／ライトトランザクションを受け取ることがある。
【００１６】
第１の通信プロトコル（例えば、ＡＸＩ）を使用してデータを通信する第１のデバイスと、第２の通信プロトコル（例えばＰＣＩｅ）を使用してデータを通信する第２のデバイスとの間でデータを通信するためのデッドロック耐性のあるブリッジ回路を含むシステムが開示される。ブリッジ回路は、第１の通信プロトコルを使用して第１の通信回路とデータを通信し、第２の通信プロトコルを使用して第２の通信回路とデータを通信するように構成される。通信プロトコルのうちの少なくとも１つは、リードリクエストとライトリクエストが受信される順序で、リードリクエストとライトリクエストを処理するように構成される。ブリッジは、バッファを介して第２のデバイスへダウンストリームノンポステッドライトを伝達することによってデッドロックを防止するように構成される。他のダウンストリームリード／ライトリクエストは、バッファリングすることなく、第１のデバイスから第２のデバイスに伝達される。このアプローチでは、すべてのダウンストリームデータトランザクションをバッファリングするアプローチと比較して、バッファリングする必要があるデータトランザクションが少なくなる。したがって、バッファサイズを縮小することができ、それにより製造コストを低減することができる。
【００１７】
開示された回路および方法は、様々な通信プロトコルを使用して回路間でデータを通信するために使用され得る。しかし、説明を簡単にするために、ＡＸＩデバイスとＰＣＩｅデバイスとの間のデータ通信を参照して、例と実施形態を主に説明する。
【００１８】
ここで図面を参照すると、図１は、１つ以上の実施形態による通信ブリッジ回路１２０を有するシステムを示す。システムは、第１の通信プロトコル（例えば、ＡＸＩ）を使用して第１のデータポート１１２を介して通信するように構成された第１の通信回路１１０を含む。システムはまた、リードリクエストとライトリクエストが受信される順序でリードリクエストとライトリクエストを処理する第２の通信プロトコル（たとえばＰＣＩｅ）を使用して第２のデータポート１３２を介してデータを通信するように構成された第２の通信回路１３０を含む。
【００１９】
ブリッジ回路１２０が、第１の通信回路の第１のデータポートと第２の通信回路の第２のデータポートとの間でデータを通信するように構成される。ブリッジ回路１２０は、第１の通信プロトコルを使用して第１の通信回路１１０とデータを通信し、第２の通信プロトコルを使用して第２の通信回路１３０とデータを通信するように構成される。
【００２０】
図２は、１つ以上の実施形態と一致する、第１および第２の通信回路並びに通信ブリッジ回路を動作させるためのプロセスを示す。説明を容易にするために、図１および図２を一緒に議論する。ブロック２１０において、データは、第１の通信プロトコルを使用して第１の通信回路１１０によって通信される。ブロック２２０において、データは、第２の通信回路１３０によって通信される。ブロック２１０および２２０で実行される通信は、例えば、第１および第２の通信回路１１０および１３０、処理回路１４０、メモリ１６０、および／または外部回路を含む様々な回路とデータを送受信することができる。第１および第２の通信回路によって通信されるデータが、第１および第２の通信回路間の通信のためである場合、判定ブロック２３０が、プロセスをブロック２４０に向ける。そうでない場合、判定ブロック２３０は、プロセスをブロック２１０に戻す。
【００２１】
ブロック２４０において、データは、ブリッジ回路１２０を使用して、第１の通信回路と第２の通信回路との間で通信される。ブリッジ回路１２０は、２つの通信プロトコルによって使用されるそれぞれのデータフォーマット間でデータメッセージ／パケットを変換することによって、第１および第２の通信回路間でデータを通信する。ブリッジ回路１２０は、ライトトランザクションがポステッドライトトランザクションかノンポステッドライトトランザクションかによって、第１の通信回路１１０から第２の通信回路１３０へライトトランザクションを異なる方法で通信する２４２。ノンポステッドライトトランザクションの場合、判定ブロック２４４は、ブロック２４６において、ブリッジ回路１２０に、バッファ回路１２２を介して第１の通信回路１１０から第２の通信回路１３０へノンポステッドライトトランザクションを通信させる。ポステッドライトトランザクションの場合、判定ブロック２４４は、ブロック２４８で、ブリッジ回路１２０に、バッファ回路１２２をバイパスする通信パスを使用して第２の通信回路１３０にポステッドライトを通信させる。上述したように、第１の通信回路１１０から第２の通信回路１３０へのノンポステッドライトのバッファリングは、第１および第２の通信回路がデッドロック状態になるのを防止するのに役立つ。
【００２２】
様々なアプリケーションにおいて、第１および第２の通信回路は、通信に加える機能を実行してもよく、様々な通信プロトコルを使用して通信してもよい。１つの可能なアプリケーションでは、第１の通信回路１１０は、処理回路１４０のキャッシュ１５０に記憶されたデータとメモリ１６０に記憶されたデータとの間の一貫性を維持するように構成されたキャッシュコヒーレントインターコネクトであってもよい。処理回路１４０、キャッシュ１５０、およびメモリ１６０（破線で示されている）は、例示的なアプリケーションの議論を容易にするために図１に示されており、システムの他のいくつかの実施形態には必要とされない。
【００２３】
例示的なキャッシュコヒーレントインターコネクトアプリケーションでは、第１の通信回路は、データポート１１２でのリードリクエストの受信に応答して、キャッシュ１５０およびメモリ１６０内のデータ値を読み取り／スヌープし、修正／ライトバックすることができる。例えば、キャッシュ１５０によってキャッシュされるメモリ１４０のメモリアドレスを示すリードリクエストを受信することに応答して、第１の通信回路１１０は、メモリアドレスに対応するデータ値をキャッシュから取り出すことができる。第１の通信回路１１０は、メモリ１６０およびキャッシュ１５０とデータを通信し、キャッシュコヒーレンシを維持するために、ＡＸＩコヒーレンシ・エクステンション（ＡＣＥ）を使用することができる。
【００２４】
ブリッジ回路１２０によるノンポステッドライトのバッファリングがなければ、デッドロックが、第１のＡＸＩ通信回路（例えば１１０）と第２のＰＣＩｅ通信回路（例えば１３０）との間で発生する可能性がある。次の例は、図１に示すシステムにおいてデッドロックがどのように発生し、防止されるかを示す。
１）メモリ１６０のメモリアドレス（Ｘ）が、キャッシュ１５０にキャッシュされる。
２）第２の通信回路１３０が、キャッシュされたメモリアドレス（Ｘ）へのアップストリームライト（Ａ）を実行する。
３）処理回路１４０が、第２の通信回路１３０へのダウンストリームノンポステッドライト（Ｂ）を実行する。このノンポステッドライト（Ｂ）は、第２の通信回路１３０が、ノンポステッドライト（Ｂ）を完了するための確認応答（Ｃ）を提供する前に、アップストリームライト（Ａ）の完了を必要とする。
４）第１の通信回路のデータポート１１２が、例えば、ノンポステッドライト（Ｂ）のためにブリッジ１２０によって受け入れられない保留中のダウンストリームリード／ライトリクエスト（Ｄ）によって、ブロックされるようになる。
５）前のステップとは無関係に、キャッシュ１５０は、キャッシュされたアドレス（Ｘ）のメモリへのライトバック（Ｅ）をトリガすることができる。
６）ライトバック（Ｅ）は、ノンポステッドライト（Ａ）の後にスケジュールされる。
７）アップストリームライト（Ａ）は、第１の通信回路１１０に、キャッシュされたアドレス（Ｘ）をスヌープ（Ｆ）させる。
【００２５】
上記のシナリオでは、アドレス（Ｘ）の前回のライトバック（Ｅ）が完了するまで、アドレス（Ｘ）のスヌープ（Ｆ）は確認応答されない。ノンポステッドライト（Ｂ）が前に進んで、第１の通信回路１１０によってリード／ライトリクエスト（Ｄ）が発行されるまで、ライトバック（Ｅ）は完了しない。スヌープ（Ｆ）で待機中のアップストリームライト（Ａ）が完了するまで、ノンポステッドライト（Ｂ）は完了できない。これらのトランザクションのいずれも進行できないため、通信回路はデッドロック状態にある。ダウンストリームリード／ライトリクエストをバッファリングすることによって、ブリッジ回路は、ノンポステッドライトが完了するのを待つ間に、新しいリード／ライトトランザクションを受け取り続けることができる。したがって、第１の通信回路は、リード／ライトリクエストＤによってブロックされず、アドレス（Ｘ）のライトバック（Ｅ）を実行し、スヌープ（Ｆ）を実行して、アップストリームライトＡを完了することができ、それによって、デッドロックを解決する。
【００２６】
上に示したように、デッドロックは、すべてのダウンストリームリード／ライトトランザクションをバッファリングすることによって回避することができる。ブリッジ回路１２０は、ダウンストリームリード／ライトトランザクションを必ずしも全てバッファリングせずとも、デッドロックを防止することができる。１つ以上の実施形態では、ブリッジ回路１２０は、バッファ回路（図１に図示せず）内に第１の通信回路１３０から第２の通信回路１７０へのノンポステッドライトのみをバッファリングするように構成される。ノンポステッドライトは、例えば、先入れ先出し（ＦＩＦＯ）バッファにバッファリングされてもよい。ブリッジ回路１２０は、バッファリングすることなく、第２の通信回路１３０に他のダウンストリームリード／ライトトランザクションを提供する。これにより、バッファリングする必要があるデータトランザクションの数が削減され、全てのダウンストリームデータトランザクションをバッファリングする場合と比較して、バッファサイズが縮小される。いくつかの実施形態では、バッファ回路は、所与の時間に保留中のノンポステッドライトの少なくとも最大数を格納するように構成される。例えば、ブリッジ回路および第２の通信回路が、第１の期間内にノンポステッドライトを完了するように構成されている場合、バッファ回路は、第１の期間内に第１の通信回路によって発行され得るノンポステッドライトリクエストの少なくとも最大数をバッファリングするように構成することができる。ノンポステッドライトの数は、ポステッドライトおよびノンポステッドライトの合計数よりも大幅に少なくなる可能性があるため、バッファサイズは、第１の期間内に発行される可能性のあるポステッドライトおよびノンポステッドライトの最大数をバッファリングするために必要なバッファサイズよりも小さくすることができる。
【００２７】
ブリッジ回路１２０は、ブリッジ回路によってバッファリングされている保留中のノンポステッドライトよりもポステッドライトを優先させることができる。これにより、ブリッジ回路は、ポステッドライトの進行を保証することができる。さらに、ポステッドライトは、さもなければアイドル状態であるダウンストリームチャネルを利用することができ、それによってスループットが向上する。
【００２８】
様々なアプリケーションにおいて、第１および第２の通信回路１１０および１３０は、ノンポステッドライトによってブロックされているダウンストリームチャネルから生じる他のデッドロックシナリオに従い得ることが理解される。ブリッジ回路１２０によるノンポステッドライトのバッファリングは、同様に、このようなシナリオにおけるデッドロックを回避するのに役立つ。
【００２９】
図３は、１つ以上の実施形態と一致するＡＸＩ−ＰＣＩｅブリッジ回路を示す。ＡＸＩ−ＰＣＩｅブリッジ回路３１０は、ＡＸＩ通信回路（図３には図示せず）とＰＣＩｅインターフェース３４０との間でデータを通信するように構成される。ＰＣＩｅインターフェース３４０は、ＰＣＩｅ通信プロトコルに従って、ＰＣＩｅインターフェースに接続されたＰＣＩｅデバイス（図示せず）とのデータトランザクション３５０を開始する。ＰＣＩｅは、トランザクション層３４２、データリンク層３４４、および物理層３４６からなる階層プロトコルである。トランザクション層３４２は、（リクエストおよびレスポンスに関する）パケットベースのスプリットトランザクションを使用して、パケットベースのトランザクションを開始および維持する。データリンク層３４４は、データパケットの送信のためのシーケンス番号付けおよび巡回冗長検査（ＣＲＣ）を提供する。物理層３４６は、それぞれが送信ペアの信号線と受信ペアの信号線とを含むいくつかのデータレーンを使用して、データを送信および受信する。
【００３０】
ＡＸＩ−ＰＣＩｅブリッジ回路３１０は、ダウンストリームデータ３０２をＡＸＩ通信回路からＰＣＩｅインターフェース３４０に通信するためのダウンストリーム回路３２０を含む。ノンポステッドライトは、先入れ先出し（ＦＩＦＯ）バッファ３２８を介して、ＡＸＩ−ＰＣＩｅブリッジ回路３１０によってＰＣＩｅインターフェース３４０に伝達される。他のデータトランザクション（ポステッドリード／ライトおよびノンポステッドリード）は、ＦＩＦＯバッファ３２８をバイパスするデータパス３２２を介して、ＡＸＩ−ＰＣＩｅブリッジ回路３１０によってＰＣＩｅインターフェース３４０に伝達される。図３に示すように、ダウンストリーム回路は、ＡＸＩプロトコルによって使用されるアドレス（例えば、ＡＸＩデータバス上のＡＸＩ−ＰＣＩｅブリッジ回路３１０のアドレス）と、ＰＣＩｅインターフェース３４０に接続されたＰＣＩｅデバイスに使用されるアドレスとの間の変換を実行するように構成されたアドレス変換回路３２６を含んでもよい。ＰＣＩｅの場合、デバイスのコンフィギュレーションレジスタにアクセスするため、コンフィギュレーションリード／ライト（コンフィギュレーションライトはノンポステッドである）にアドレス変換は不要であることに留意されたい。従って、ノンポステッドリードは、データパス３２４を経由してアドレス変換回路３２６をバイパスすることができる。
【００３１】
いくつかの実施形態では、ＡＸＩ−ＰＣＩｅブリッジ回路３１０は、ダウンストリームデータ３０２内のノンポステッドライトを識別し、ノンポステッドライトをＦＩＦＯバッファ３２８にルーティングする入力回路３２１を含む。いくつかの実施形態では、入力回路３２１は、ライトリクエストの宛先アドレスに基づいて、ライトリクエストがポステッドライトかノンポステッドライトかを判定することができる。宛先アドレスがコンフィギュレーションアドレス空間の範囲内にある場合、ライトリクエストはノンポステッドライトと判定される。
【００３２】
ＡＸＩ−ＰＣＩｅブリッジ回路３１０はまた、アップストリームデータ３０４をＰＣＩｅインターフェース３４０からＡＸＩ通信デバイスに伝達するためのアップストリーム回路３３０を含む。アップストリーム回路３３０は、ＰＣＩｅデバイスによって使用されるアドレスとＡＸＩプロトコルによって使用されるアドレスとの間の変換を実行するように構成されたアドレス変換回路３３６を含む。ダウンストリーム回路３２０と同様に、変換回路３３６は、割り込みなどの、いくつかのアップストリームデータに対してアドレス変換を実行する必要はない。アドレス変換を必要としないアップストリームデータは、アドレス変換回路３３６をバイパスするデータパス３３４を経由してＡＸＩ通信回路に伝達されてもよい。
【００３３】
図３は、ＡＸＩ−ＰＣＩｅブリッジ回路に含まれ得るすべての回路を示すものではなく、他の回路が様々な実施形態において含まれることを排除するものではない。むしろ、開示された回路は、様々な他の機能を実行するための追加の回路を含むように適合されてもよい。例えば、いくつかの実施形態では、ＡＸＩ−ＰＣＩｅブリッジ回路３１０は、アドレス変換なしでプロトコルの１つによって使用されるアドレスへの直接アクセスを提供するために使用され得るダイレクトメモリアクセス（ＤＭＡ）回路３６０を含み得る。種々の実施形態は、追加的または代替的に、様々な他の回路を含むことができる。
【００３４】
図４は、１つ以上の実施形態に従って構成され得るプログラマブルＩＣ４０２を示す。プログラマブルＩＣは、プロセッシングサブシステム４１０およびプログラマブルロジックサブシステム４３０を含むシステムオンチップ（ＳＯＣ）とも呼ばれる。プロセッシングサブシステム４１０は、ユーザープログラムの実行を介して、ユーザーデザインのソフトウェア部分を実行するようにプログラムされてもよい。プログラムは、コンフィギュレーションデータストリームの一部として指定されてもよく、またはオンチップ若しくはオフチップのデータストレージデバイスから取り出されてもよい。プロセッシングサブシステム４１０は、１つ以上のソフトウェアプログラムを実行するための様々な回路４１２，４１４，４１６、および４１８を含むことができる。回路４１２，４１４，４１６、および４１８は、例えば、１つ以上のプロセッサコア、浮動小数点ユニット（ＦＰＵ）、割り込み処理ユニット、オンチップメモリ、メモリキャッシュ、および／またはキャッシュコヒーレントインターコネクトを含むことができる。
【００３５】
プログラマブルＩＣ４０２のプログラマブルロジックサブシステム４３０は、ユーザーデザインのハードウェア部分を実装するようにプログラムすることができる。例えば、プログラマブルロジックサブシステムは、コンフィギュレーションデータストリームに指定された一組の回路を実装するようにプログラムすることができるいくつかのプログラマブルリソース４３２を含むことができる。プログラマブルリソース４３２は、プログラマブルインターコネクト回路、プログラマブルロジック回路、およびコンフィギュレーションメモリセルを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザーデザインのロジックを実装する。プログラマブルインターコネクト回路は、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続された様々な長さの多数のインターコネクトラインを含むことができる。
【００３６】
プログラマブルリソース４３２は、プログラマブルインターコネクト回路およびプログラマブルロジック回路がどのように構成されるかを定めるコンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによってプログラムすることができる。次いで、個々のメモリセルの集合状態が、プログラマブルリソース４３２の機能を判定する。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってプログラマブルＩＣ４０２に書き込むことができる。いくつかの実施形態では、コンフィギュレーションデータは、プログラマブルロジックサブシステム４３０に含まれるコンフィギュレーションコントローラ４３４によってコンフィギュレーションメモリセルにロードされてもよい。いくつかの他の実施形態では、コンフィギュレーションデータは、プロセッシングサブシステム４１０によって実行される始動プロセスによってコンフィギュレーションメモリセルにロードされてもよい。
【００３７】
プログラマブルＩＣ４０２は、プロセッシングサブシステム４１０を、プログラマブルロジックサブシステム４３０内に実装された回路と相互接続するための様々な回路を含むことができる。この例では、プログラマブルＩＣ４０２は、プロセッシングサブシステム４１０およびプログラマブルロジックサブシステム４３０の様々なデータポート間でデータ信号をルーティングすることができるコアスイッチ４２６を含む。コアスイッチ４２６はまた、プログラマブルロジックサブシステム４３０またはプロセッシングサブシステム４１０のいずれかと、プログラマブルＩＣの様々な他の回路（例えば、内部データバス）との間でデータ信号をルーティングすることもできる。代替的または追加的に、プロセッシングサブシステム４１０は、コアスイッチ４２６をバイパスして、プログラマブルロジックサブシステムに直接接続するためのインターフェースを含むことができる。そのようなインターフェースは、例えば、ＡＲＭによって公表されたＡＭＢＡ  ＡＸＩプロトコル仕様（ＡＸＩ）を使用して、実装することができる。
【００３８】
いくつかの実施形態では、プロセッシングサブシステム４１０およびプログラマブルロジックサブシステム４３０は、メモリコントローラ４２１を介してオンチップメモリ４２２またはオフチップメモリ（図示せず）のメモリ位置を読み書きすることもできる。メモリコントローラ４２１は、限定しないが、１６ビット、３２ビット、ＥＣＣ付き１６ビットなどであれ、デュアルデータレート（ＤＤＲ）２、ＤＤＲ３、低電力（ＬＰ）ＤＤＲ２タイプのメモリを含む１つ以上の異なるタイプのメモリ回路と通信するように実装することができる。メモリコントローラ４２１が通信することができる異なるメモリタイプのリストは、例示のみのために提供されており、限定または網羅的なものではない。図４に示すように、プログラマブルＩＣ４０２は、サブシステム４１０および４３０によって使用される仮想メモリアドレスを、メモリコントローラ４２１が特定のメモリ位置にアクセスするために使用する物理メモリアドレスに変換するためのメモリ管理ユニット４２０およびトランスレーションルックアサイドバッファ４２４を含むことができる。
【００３９】
プログラマブルＩＣは、外部回路とのデータ通信のための入出力（Ｉ／Ｏ）サブシステム４５０を含むことができる。Ｉ／Ｏサブシステム４５０は、例えば、フラッシュメモリタイプＩ／Ｏデバイス、高性能Ｉ／Ｏデバイス（例えば、ＰＣＩｅ）、低性能インターフェース、デバッグＩ／Ｏデバイス、および／またはＲＡＭ  Ｉ／Ｏデバイスを含む様々なタイプのＩ／Ｏデバイスまたはインターフェースを含むことができる。
【００４０】
Ｉ／Ｏサブシステム４５０は、４６０Ａおよび４６０Ｂとして示す１つ以上のフラッシュメモリインターフェース４６０を含むことができる。例えば、フラッシュメモリインターフェース４６０のうちの１つ以上は、４ビット通信用に構成されたクワッドシリアル・ペリフェラル・インターフェース（ＱＳＰＩ）として実装することができる。フラッシュメモリインターフェース４６０のうちの１つ以上は、パラレル８ビットＮＯＲ／ＳＲＡＭタイプのインターフェースとして実装することができる。フラッシュメモリインターフェース４６０のうちの１つ以上は、８ビットおよび／または１６ビット通信用に構成されたＮＡＮＤインターフェースとして実装することができる。記載された特定のインターフェースは、例示のために提供され、限定のためではないことを理解されたい。異なるビット幅を有する他のインタフェースを使用することができる。
【００４１】
Ｉ／Ｏサブシステム４５０は、メモリインタフェース４６０より高い性能レベルを提供する１つ以上のインターフェース４６２を含むことができる。インターフェース４６２Ａ〜４６２Ｃの各々は、ＤＭＡコントローラ４６４Ａ〜４６４Ｃにそれぞれ結合することができる。例えば、インターフェース４６２のうちの１つ以上は、ユニバーサルシリアルバス（ＵＳＢ）タイプのインターフェースとして実装することができる。インターフェース４６２のうちの１つ以上は、ギガビットイーサネットタイプのインターフェースとして実装することができる。インターフェース４６２のうちの１つ以上は、セキュアデジタル（ＳＤ）タイプのインターフェースとして実装することができる。
【００４２】
Ｉ／Ｏサブシステム４５０はまた、インターフェース４６２よりも低い性能レベルを提供する、インターフェース４６６Ａ〜４６６Ｄなどの１つ以上のインターフェース４６６を含むことができる。例えば、インターフェース４６６のうちの１つ以上は、汎用Ｉ／Ｏ（ＧＰＩＯ）タイプのインターフェースとして実装することができる。インターフェース４６６のうちの１つ以上は、汎用非同期送受信回路（ＵＡＲＴ）タイプのインターフェースとして実装することができる。インターフェース４６６のうちの１つ以上は、シリアル・ペリフェラル・インターフェース（ＳＰＩ）バスタイプのインターフェースの形態で実装することができる。インターフェース４６６のうちの１つ以上は、コントローラエリアネットワーク（ＣＡＮ）タイプのインターフェースおよび／またはＩ２Ｃタイプのインターフェースの形態で実装することができる。インターフェース４６６のうちの１つ以上は、トリプルタイマーカウンタ（ＴＴＣ）および／またはウォッチドッグタイマー（ＷＤＴ）タイプのインターフェースの形態で実装することもできる。
【００４３】
Ｉ／Ｏサブシステム４５０は、プロセッサＪＴＡＧ（ＰＪＴＡＧ）インターフェース４６８Ａおよびトレースインターフェース４６８Ｂなどの１つ以上のデバッグインターフェース４６８を含むことができる。ＰＪＴＡＧインターフェース４６８Ａは、プログラマブルＩＣ４０２のための外部デバッグインターフェースを提供することができる。トレースインターフェース４６８Ｂは、プロセッシングサブシステム４１０またはプログラマブルロジックサブシステム４３０からデバッグ、例えば、トレース情報を受信するためのポートを提供することができる。
【００４４】
図示されているように、インターフェース４６０，４６２，４６６、および４６８の各々は、マルチプレクサ４７０に結合することができる。マルチプレクサ４７０は、プログラマブルＩＣ４０２の外部ピン、例えばプログラマブルＩＣ４０２が配置されるパッケージのボールなどに直接ルーティングまたは結合され得る複数の出力を提供する。例えば、プログラマブルＩＣ４０２のＩ／Ｏピンは、インターフェース４６０，４６２，４６６、および４６８の間で共有することができる。ユーザは、インターフェース４６０〜４６８のどれを使用するか、したがって、どれをマルチプレクサ４７０を介してプログラマブルＩＣ４０２のＩ／Ｏピンに結合するかを選択するように、コンフィギュレーションデータストリームによって、マルチプレクサ４７０を構成することができる。Ｉ／Ｏサブシステム４５０はまた、インターフェース４６２〜４６８をプログラマブルロジックサブシステムのプログラマブルロジック回路に接続するためのファブリックマルチプレクサＩ／Ｏ（ＦＭＩＯ）インターフェース（図示せず）を含むことができる。これに加えて、またはこれに代えて、プログラマブルロジックサブシステム４３０は、プログラマブルロジック内に１つ以上のＩ／Ｏ回路を実装するように構成することができる。いくつかの実施形態では、プログラマブルＩＣ４０２は、電力および／または安全管理のための様々な回路を有するサブシステム４４０を含むこともできる。例えば、サブシステム４４０は、プログラマブルＩＣ４０２の様々なサブシステムに電力を供給するために使用される１つ以上の電圧ドメインを監視および維持するように構成された電力管理ユニット４４６を含むことができる。いくつかの実施形態では、電力管理ユニット４４６は、使用中のサブシステムへの電力を停止することなく、アイドル時に、個々のサブシステムの電力を停止して、電力消費を低減することができる。
【００４５】
サブシステム４４０は、正しい動作を保証するためにサブシステムのステータスを監視する安全回路を含むこともできる。例えば、サブシステム４４０は、（例えば、ステータスレジスタ４４４に示されるような）様々なサブシステムのステータスを監視するように構成された１つ以上のリアルタイムプロセッサ４４２を含むことができる。リアルタイムプロセッサ４４２は、エラーを検出することに応答して幾つかのタスクを実行するように構成することができる。例えば、いくつかのエラーの場合、リアルタイムプロセッサ４４２は、エラーの検出に応答してアラートを生成することができる。別の例として、リアルタイムプロセッサ４４２は、サブシステムをリセットして、サブシステムを正しい動作に復元しようと試みることができる。サブシステム４４０は、様々なサブシステムを相互接続するために使用され得るスイッチネットワーク４４８を含む。例えば、スイッチネットワーク４４８は、様々なサブシステム４１０，４３０，及び４４０をＩ／Ｏサブシステム４５０の様々なインターフェースに接続するように構成することができる。いくつかのアプリケーションでは、スイッチネットワーク４４８を使用して、監視されるサブシステムからリアルタイムプロセッサ４４２を分離することもできる。そのような分離は、リアルタイムプロセッサ４４２が他のサブシステムで発生するエラーの影響を受けないことを保証するために、特定のアプリケーション規格（例えば、ＩＥＣ−６１５０８  ＳＩＬ３またはＩＳＯ−２６２６２規格）によって要求されることがある。
【００４６】
第１の通信プロトコルを使用して第１のデータポートを介してデータを通信するように構成された第１の通信回路と、リード及びライトリクエストが受信される順序でリード及びライトリクエストを処理する第２の通信プロトコルを使用して第２のデータポートを介してデータを通信するように構成された第２の通信回路と、第１の通信回路の第１のデータポートと第２の通信回路の第２のデータポートとの間でデータを通信するように構成されたブリッジ回路であって、ノンポステッドライトを、バッファ回路を経由して第２の通信回路に伝達し、ポステッドライトを、バッファ回路をバイパスする通信経路を経由して第２の通信回路に伝達するように構成されたブリッジ回路と、を含むシステムが開示され得る。
【００４７】
そのようなシステムは、第１の通信回路に接続されたメモリと、第１の通信回路に結合され、メモリからデータをキャッシュするためのキャッシュを有する処理回路とを更に含んでもよく、第１の通信回路は、キャッシュによってキャッシュされるメモリのメモリアドレスを示すリードリクエストを第１のデータポートで受信することに応答して、キャッシュからメモリアドレスに対応するデータ値を取り出すように更に構成され、保留中のノンポステッドライトによってブロックされているキャッシュからのデータ値のライトバックに関するデッドロックが、バッファ回路を経由する第２の通信回路へのノンポステッドライトの通信によって、防止される。
【００４８】
そのようなシステムでは、ブリッジ回路は、第２の通信回路へのノンポステッドライトよりも第２の通信回路へのポステッドライトを優先させるようにさらに構成することができる。
【００４９】
そのようなシステムでは、バッファ回路が、先入れ先出し（ＦＩＦＯ）バッファであってもよい。
【００５０】
そのようなシステムでは、ブリッジ回路は、第１の通信プロトコルを使用して第１の通信回路とデータを通信し、第２の通信プロトコルを使用して第２の通信回路とデータを通信するように構成されてもよい。
【００５１】
そのようなシステムでは、ブリッジ回路は、第１の通信回路と第２の通信回路との間のポステッドリードおよびライトトランザクションのためにアドレス変換を実行するように構成および準備されたアドレス変換回路を含むことができる。
【００５２】
そのようなシステムでは、ブリッジ回路は、第１または第２の通信回路のうちの１つからのリードおよびライトトランザクションに、アドレス変換回路をバイパスするデータパスでの、第１または第２の通信回路のうちの他の１つへのアクセスを提供するように構成されたダイレクトメモリアクセス回路を含んでもよい。
【００５３】
そのようなシステムでは、ブリッジ回路および第２の通信回路は、第１の通信回路からのノンポステッドライトを受信したことに応答して、第１の期間内にノンポステッドライトに確認応答を提供するように構成されてもよく、バッファ回路は、第１の期間において第１の通信回路によって発行され得るノンポステッドライトリクエストの少なくとも最大数をバッファリングするように構成される。
【００５４】
そのようなシステムでは、バッファ回路は、第１の期間に第１の通信回路によって発行され得るノンポステッドおよびポステッドライトリクエストの最大数より少ない数をバッファリングするように構成することができる。
【００５５】
そのようなシステムでは、ブリッジ回路は、第１の通信回路からの書き込みに応答して、書き込みがポステッドライトかノンポステッドライトかを判定するように構成された回路を含むことができる。
【００５６】
そのようなシステムでは、ブリッジ回路は、第１の通信回路からの書き込みに応答して、書き込みがポステッドライトかノンポステッドライトかを宛先アドレスに基づいて判定するように構成された回路を含むことができる。
【００５７】
別の例では、データ通信のための方法が提供され得る。そのようなデータ通信方法は、第１の通信回路を使用して、第１の通信プロトコルを使用して第１のデータポートを介してデータを通信することと、第２の通信回路を使用して、リードリクエストとライトリクエストが受信される順序でリードリクエストとライトリクエストを処理する第２の通信プロトコルを使用して第２のデータポートを介してデータを通信することと、第１の通信回路から第２の通信回路へバッファ回路を経由してノンポステッドライトを通信することと、バッファ回路をバイパスする通信経路を経由して第１の通信回路から第２の通信回路へポステッドライトを通信することと、を含み得る。
【００５８】
このような方法では、第１の通信回路から第２の通信回路へのポステッドライトの通信は、バッファ回路に記憶されたノンポステッドライトを通信する前に、ポステッドライトを第２の通信回路に通信することを含んでもよい。
【００５９】
このような方法は、第１の通信回路に接続されたメモリと第１の通信回路に接続されたキャッシュに記憶されたデータの間のデータコヒーレンシを維持するために、第１の通信回路を用いることを更に含んでもよい。
【００６０】
そのような方法では、バッファ回路が、先入れ先出し（ＦＩＦＯ）バッファである。
【００６１】
そのような方法は、第１の通信回路と第２の通信回路との間のポステッドリードトランザクションおよびライトトランザクションのためのアドレス変換を実行することをさらに含むことができる。
【００６２】
このような方法は、第１の通信回路から書き込みを受信することに応答して、書き込みがポステッドライトかノンポステッドライトかを宛先アドレスに基づいて判定することをさらに含むことができる。
【００６３】
そのような方法は、書き込みがノンポステッドライトであると判定したことに応答して、ノンポステッドライトをバッファ回路にルーティングすることと、書き込みがポステッドライトであると判定したことに応答して、バッファ回路をバイパスする通信経路にポステッドライトをルーティングすることとを、更に含んでもよい。
【００６４】
他のシステムが開示され得る。このようなシステムは、第１の通信プロトコルを使用して第１のデータポートを介してデータを通信するように構成された第１の通信回路と、リードリクエストとライトリクエストが受信される順序でリードリクエストとライトリクエストを処理する第２の通信プロトコルを使用して第２のデータポートを介してデータを通信するように構成された第２の通信回路と、バッファ回路を含む第１のデータポートと第２のデータポートとの間の第１の通信経路、バッファ回路をバイパスする第１および第２のデータポート間の第２の通信経路、及び第１の通信回路から受信したライトトランザクションがポステッドライトかノンポステッドライトかを判定し、ライトトランザクションがノンポステッドライトであると判定したことに応答して、ノンポステッドライトを第２の通信経路を経由して第２の通信回路に提供し、ライトトランザクションがポステッドライトであると判定したことに応答して、ポステッドライトを第２の通信経路を経由して第２の通信回路に提供するように構成された入力回路を含むブリッジ回路とを含んでもよい。
【００６５】
そのようなシステムでは、入力回路は、ライトトランザクションがポステッドライトであるかノンポステッドライトであるかを、ライトトランザクションに示された宛先アドレスに基づいて判定するように、構成することができる。
【００６６】
この方法および回路は、様々なシステムおよびアプリケーションに適用可能であると考えられる。他の態様および特徴は、明細書の考察から当業者には明らかであろう。例えば、態様および特徴は、場合によっては個々の図に記述されることがあるが、組合せが明示的に示されていない場合でも、組合せとして明示的に記述されている場合でも、ある図の特徴を他の図の特徴と組み合わせることができる、ということが理解されるであろう。本明細書および図面は、単なる例示としてみなされ、本発明の真の範囲は、添付の特許請求の範囲によって示されることが意図されている。
【図１】
0006382446.tif 000002
【図２】
0006382446.tif 000003
【図３】
0006382446.tif 000004
【図４】
0006382446.tif 000005