(57)【特許請求の範囲】
【請求項１】
コレクタノードと、それぞれがチップ上に配置され、およびオンチップ装置に結合された少なくとも１つの装置ノードとを含むオンチップバスのバストポロジ部であって、前記コレクタノードは、前記オンチップバスを介して複数のオンチップ装置を用いて複数の未処理トランザクションを実行することができ、各オンチップ装置が、前記オンチップバスを横切ってそのデータ信号の全てをパケットの形で伝送し、前記オンチップバスは、前記オンチップバスの論理部の外に、少なくとも１つのバスレジスタを含み、および前記複数のオンチップ装置のそれぞれは、前記オンチップ装置の論理部の外に、少なくとも１つの装置レジスタを含むバストポロジ部を備え、
前記バストポロジ内の前記装置レジスタと前記バスレジスタとの間で前記オンチップバスの論理部および前記オンチップ装置の論理部を介さず相互に通信する最上位レジスタ間通信を提供することができることを特徴とするオンチップバス。
【請求項２】
前記最上位レジスタ間通信を介してデータパケットを転送することができることを特徴とする請求項１に記載のオンチップバス。
【請求項３】
要求信号および許可信号を、それぞれ、前記最上位レジスタ間通信を介して転送することができることを特徴とする請求項１に記載のオンチップバス。
【請求項４】
前記オンチップバスは、分散パケットオンチップ（ＤＰＯ）バスであることを特徴とする請求項１に記載のオンチップバス。
【請求項５】
前記オンチップ装置は、ポイントツーポイントトポロジで配置されていることを特徴とする請求項１に記載のオンチップバス。
【請求項６】
前記オンチップ装置は、リングトポロジで配置されていることを特徴とする請求項１に記載のオンチップバス。
【請求項７】
前記オンチップバス内の前記オンチップ装置のトポロジを、ソフトウェアに基づいて選択することができることを特徴とする請求項１に記載のオンチップバス。
【請求項８】
前記オンチップバス内の前記オンチップ装置のトポロジを、ファームウェアに基づいて選択することができることを特徴とする請求項１に記載のオンチップバス。
【請求項９】
前記オンチップバス内の前記オンチップ装置のトポロジを、ハードウェアに基づいて選択することができることを特徴とする請求項１に記載のオンチップバス。
【請求項１０】
要求信号および許可信号に関して、前記装置レジスタおよび前記バスレジスタは、前記オンチップバス中の論理部を介さず、相互に直接通信することを特徴とする請求項１に記載のオンチップバス。
【請求項１１】
様々なトポロジへの前記オンチップバスの挿入をサポートするための物理層の変更を可能にする機構をさらに含むことを特徴とする請求項１に記載のオンチップバス。
【請求項１２】
前記バストポロジ内の前記装置ノードの１つを含み、第２のバストポロジ内に含まれる１つまたは複数の第２のオンチップ装置を用いて第２の装置レジスタとの最上位レジスタ間通信を行う第２のコレクタノードをさらに含むブリッジ装置をさらに備えたことを特徴とする請求項１に記載のオンチップバス。
【請求項１３】
前記コレクタノードおよび割り込みコレクタ装置は、ルートコレクタ装置に含まれることを特徴とする請求項１に記載のオンチップバス。
【請求項１４】
各オンチップバスに関連付けられた１つのコレクタノードがあることを特徴とする請求項１に記載のオンチップバス。
【請求項１５】
前記コレクタノードは、ルートコレクタ装置に含まれ、各オンチップバスに関連付けられた１つのルートコレクタ装置があることを特徴とする請求項１に記載のオンチップバス。
【請求項１６】
複数のオンチップ装置の１つに、アービトレーション装置に基づく前記オンチップバスが使用されることを特徴とする請求項１に記載のオンチップバス。
【請求項１７】
前記オンチップバスのトランザクションは、分割トランザクションに基づくことを特徴とする請求項１に記載のオンチップバス。
【請求項１８】
前記オンチップ装置は、メモリへのトランザクションを生成し、もしくはメモリへのトランザクションのターゲットであるマスタ装置として構成され得るオンチップ装置、またはメモリへのトランザクションのターゲットであるがメモリへのトランザクションを生成しないスレーブ装置として構成されることを特徴とする請求項１に記載のオンチップバス。
【請求項１９】
各々が、論理部の外に装置レジスタを有し、その論理部を介さずに、ＤＰＯルートコレクタ装置にパケット形式でオンチップバスを介してメモリ読取りまたはメモリ書込み要求を発行することができ、および各々が、前記ＤＰＯルートコレクタ装置から前記オンチップバスを介して前記メモリ読取りまたはメモリ書込み要求に応答したそれぞれの完了を受信することができる複数のオンチップ装置であって、各ＤＰＯルートコレクタ装置もまた、論理部の外にバスレジスタを有し、その論理部を介さずに、オフチッププロセッサにより発行されたメモリトランザクションを受け取り、またはオフチッププロセッサに指示された前記トランザクションへの完了を送信することができる複数のオンチップ装置
を備えたことを特徴とする集積回路チップ。
【請求項２０】
各メモリトランザクションは、メモリマップ入出力トランザクションであることを特徴とする請求項１９に記載の集積回路チップ。
【請求項２１】
ルートコレクタ装置を含み、および少なくとも１つの端末装置を一部含むオンチップバスであって、各端末装置は、前記オンチップバスには含まれないが前記オンチップバスを使用して通信を行うオンチップ装置を含み、前記ルートコレクタ装置は、各オンチップ装置との間のパケットデータ伝送を可能にするように構成され、前記オンチップバスは論理部の外にバスレジスタを含み、ならびに各々が論理部の外に装置レジスタを含むオンチップ装置であって、前記装置レジスタと前記バスレジスタとの間のデータに論理部を介さず相互に通信する最上位レジスタ間通信が確立されるオンチップバス
を備えたことを特徴とする集積回路チップ。
【請求項２２】
各オンチップ装置は、メモリ読取りまたはメモリ書込み要求を発行することができ、および各オンチップ装置は、前記メモリ読取りまたはメモリ書込み要求に応答してそれぞれの完了を受信することができることを特徴とする請求項２１に記載の集積回路チップ。
【請求項２３】
各オンチップ装置は、メモリ読取りまたはメモリ書込み要求を発行することができ、および各オンチップ装置は、前記メモリ読取りまたはメモリ書込み要求に応答してそれぞれの完了を受信することができ、各装置は、オフチッププロセッサにより発行されたメモリトランザクションを受信することもできる
ことを特徴とする請求項２１に記載の集積回路チップ。
【請求項２４】
各ルートコレクタ装置は、オフチッププロセッサにより発行されたメモリトランザクションを受け取り、または前記オフチッププロセッサに指示された前記トランザクションへの完了を送信することができることを特徴とする請求項２１に記載の集積回路チップ。
【請求項２５】
パケットの形でデータを伝送するオンチップバスおよび複数のアクセス側オンチップ装置を備えたシステムであって、
入りデータバスと、出データバスであって、前記入りデータバスおよび前記出データバスの各々１つが論理部の外にレジスタを含み、前記システムが、前記論理部を介さず相互に通信する最上位レジスタ間通信を提供するように４クロックサイクルの最短アービトレーションターンアラウンド時間で動作する出データバスと、
各バス装置に、個々のオンチップ装置バス要求信号に応答する個々のバス許可信号を提供し、各アクセス側装置に一意のアクセス時間スロット群が提供されることを保証することにより、どの２つのアクセス側オンチップ装置も前記バス装置に同時にアクセスしないようにするアービタ装置と、ならびに
前記アービタ装置に４クロックサイクル未満のパケットの識別情報を転送する予測サイクルであって、前記アービタが４クロックサイクル以下のパケットサイズを検出することができず、前記オンチップ装置バス要求信号および前記バス許可信号が、各々、前記論理部を介さず相互に通信する最上位レジスタ間通信を提供する予測サイクルと、
を含むことを特徴とするシステム。
【請求項２６】
装置ノードがアクセスしようとするとき、前記装置ノードは、要求をアサートし、およびその２つのアービタ信号の予測値を設定し、前記アービタ信号は、２つまたはそれ以上のサイクルを示し、予測情報は、前記サイクルの少なくとも１つで渡され、ならびに優先度情報は、前記サイクルの他のもので渡されることを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記装置は、前記アービタに前記予測値を提供する責任を負い、前記アービタが前記予測値を用いて、小さいパケットをどのように調停すべきか決定することを特徴とする請求項２５に記載のシステム。
【請求項２８】
１つまたは複数の第１の装置ノードを含む第１のバストポロジ、および１つまたは複数の第２の装置ノードを含む第２のバストポロジを含み、パケットの形でデータを送信するオンチップバスを備えたオンチップトポロジであって、前記オンチップバスは、ルートコレクタ装置と前記オンチップバスの論理部の外にバスレジスタを含み、
前記第１のバストポロジは、１つまたは複数のブリッジ装置を含み、論理部の外に装置レジスタを含む前記１つまたは複数の第１の装置ノードのそれぞれ、および前記１つまたは複数のブリッジ装置のそれぞれは、前記ルートコレクタ装置との通信を行い、
第２のバストポロジは、論理部の外に装置レジスタを含む１つまたは複数の第２の装置ノードを含み、前記第２の装置ノードのそれぞれは、前記第１のバストポロジの前記１つまたは複数のブリッジ装置の１つに接続されており、
前記第１の装置ノードの各々および前記第２の装置ノードの各々が、個々に、オンチップ装置に接続され、各オンチップ装置と前記ＤＰＯルートコレクタ装置のコレクタノードとの間で、論理部を介さず間接的または直接的に相互に通信する最上位レジスタ間通信を確立することができる
ことを特徴とするオンチップトポロジ。
【請求項２９】
前記第２のバストポロジは、前記第１のバストポロジの前記ブリッジ装置との通信を各々行う１つまたは複数の第２のブリッジ装置を含み、前記オンチップバスは、前記第３のバストポロジは１つまたは複数の第３の装置ノードを含む第３のバストポロジをさらに含み、前記第３の装置ノードのそれぞれは、前記第２のバストポロジの前記第２のブリッジ装置との最上位レジスタ間通信を行うことを特徴とする請求項２８に記載のオンチップトポロジ。
【請求項３０】
前記オンチップ装置に統合された直接メモリアクセス（ＤＭＡ）エンジンをさらに備えたことを特徴とする請求項２８に記載のオンチップトポロジ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスに関し、より詳細には、オンチップバスに関する。
【背景技術】
【０００２】
現在のオンチップバスは、種々のトポロジにおいてその構成要素を配置する機能を欠いている。したがって、オンチップバスの拡張性は大きな課題である。また、様々なオンチップ装置間の電気的インターフェイスは、それらの間の帯域幅が、多くの場合比較的低いために、大抵比較的低速である。これは、ＤＰＯバス内のオンチップバスの拡張性を低減し、これらのバスがデータの伝送速度を制限する。したがって、より多くのトポグラフィレベルに構成できるように設計することによって、分散バスシステムの性能および信頼性を高めることが求められている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、様々なトポグラフィに構成され得る設計を提供することにより、分散バスシステムの信頼性および性能を高めることが重要である。
【課題を解決するための手段】
【０００４】
本発明はオンチップバスに関する。一バージョンでは、コレクタノード、および少なくとも１つの装置ノードを含むオンチップバスを備えるオンチップバスアーキテクチャが提供される。各装置ノードはオンチップ装置との通信を行う。コレクタノードは、オンチップバスを介し、複数のオンチップ装置を用いて複数の未処理のトランザクションを実行することができる。各オンチップ装置は、そのデータ信号全てをパケットの形でオンチップバスを横切って伝送する。オンチップバスは少なくとも１つのバスレジスタを含み、複数のオンチップ装置の各々は、少なくとも１つの装置レジスタを含む。オンチップバスは、装置レジスタとバスレジスタとの間で最上位レジスタ間通信を提供することができる。一態様では、オンチップバスは分散パケットオンチップ（ＤＰＯ）バスである。
【０００５】
図面全体を通じ、同じ番号を用いて類似の機能および構成要素を参照する。
【発明を実施するための最良の形態】
【０００６】
分散パケットオンチップ（ＤＰＯ）（またはオンチップ）バスは、いくつかのオンチップ装置が、ルートコレクタ装置と各々通信するためのバス機構を提供する。ＤＰＯバスまたはオンチップバスは、ＤＰＯルートコレクタ装置、１つまたは複数のＤＰＯブリッジ装置、および１つまたは複数のＤＰＯ端末装置装置を含むいくつかの装置から形成され得る。これらの装置は、様々なトポロジで構成され得ると共に、ＤＰＯバスを使用するオンチップ装置に極めて高速なメッセージターンアラウンドを保証する。本開示内で説明するＤＰＯバスは、高い拡張性を有し、可変数のオンチップ装置に信頼性の高い通信を提供する。データの高速転送を可能にするＤＰＯバスを形成するオンチップ装置間で、パケットに基づくデータ伝送を行い、ＤＰＯルートコレクタ装置といくつかのＤＰＯ端末装置装置との間でパケットを経路指定することができる。ＤＰＯバスが様々なオンチップ装置と形成する個々のトポロジを、ＤＰＯバスを形成するときに選択することができる。
【０００７】
各ＤＰＯまたはオンチップバスは、１つのＤＰＯルートコレクタ装置を用いてオンチップ装置とオフチップ装置の間の通信を確立する。ＤＰＯバスは、各々が１つまたは複数のＤＰＯ端末装置装置を含む１つまたは複数の独立のバストポロジを含むように配置することができ、各端末装置装置はオンチップ装置への接続を可能にする。ＤＰＯブリッジ装置は、共にＤＰＯバスを形成する２つの独立バストポロジの（上下）接続を可能にする。したがって、最上位の独立バストポロジはＤＰＯルートコレクタ装置を含み、各下位独立バストポロジはＤＰＯブリッジ装置を含む。各独立バストポロジにより、その独立バストポロジに関連付けられた各オンチップ装置と、各独立バストポロジに関連付けられたＤＰＯルートコレクタ装置またはＤＰＯブリッジ装置との間のレジスタ間通信が確立される。本開示で説明するデータパケット伝送を確立するために、そのようなレジスタ間通信をデータパケットの伝送および／または要求／許可信号の伝送に規定することができる。
【０００８】
オンチップ装置とＤＰＯバスの間の各独立バストポロジ内のそのようなレジスタ間通信は、極めて高速に信頼性高くパケットを伝送する。本開示では、ＤＰＯバス１０４のいくつかの実施形態およびトポロジを説明し、一部の実施形態を図１、２、３、４、５、６、１０、１１、３０との関連で説明する。ＤＰＯバス１０４は、物理的には、ＤＰＯバスを介して通信するオンチップ装置１２０と同じ集積回路（ＩＣ）チップ１００上に位置する。
【０００９】
本発明では、ＤＰＯバス１０４の構成要素を、通常、コンピュータ環境内で動作するようなアプリケーションプログラムに類似した機能をインターフェイスし、提供するように構成することができる。ＤＰＯバス１０４を利用するそのようなアプリケーションプログラムを、ハードウェアおよびファームウェアならびにソフトウェアを用いてプログラムすることができる。オンチップ装置１２０とＤＰＯルートコレクタ装置１０３の組合せを用いて動作し得るアプリケーションプログラムの例には、それに限定しないが、ゲーム、ワードプロセッサ、スプレッドシートなどが含まれる。したがって、本明細書で開示するＤＰＯバス１０４は、オンチップデータ転送速度を増大させ、オンチップ装置機能を強化することができる。
【００１０】
ＤＰＯバス１０４の一部の実施形態は、信頼性が高く拡張可能な方式でチップ上でのデータパケット転送量を増大させることができる。一般に、ＤＰＯバスの一部の実施形態においては、ビデオ、オーディオ、無線などの広帯域アプリケーションを十分高速で処理するように構成することができる。ＤＰＯバス１０４の設計の詳細には、それに限定しないが、本開示で説明するタイミング、出力、レジスタファイル、干渉性、待ち時間などの態様が含まれる。
【００１１】
一実施形態では、ＤＰＯバスを含むＩＣチップは、ネットワーク化コンピュータ構成、独立型コンピュータ、メインフレームコンピュータ、マイクロプロセッサ、マイクロコンピュータ、有線ネットワークの一部分、無線ネットワークの一部分、電子装置、超小型電子装置、通信装置、計算処理装置などのうち１つまたは複数を含むことができるコンピュータ環境１１０内に組み込まれると想定される。図１に示すこのコンピュータ環境１１０は、メモリ１１４、中央処理装置（ＣＰＵ）１１６、および入出力回路１１８も含む。メモリ１１４、ＣＰＵ１１６、および／または入出力回路１１８のいずれも、当分野で一般に知られているネットワークまたは独立型コンピュータ構成内で動作するように構成することができる。また、メモリ１１４、ＣＰＵ１１６、入出力回路１１８、および／またはその他の構成要素のいずれも、ＩＣチップ１００内に含めることが可能である。
【００１２】
コンピュータ環境１１０およびそれに関連する構成要素の一実施形態については、本開示の後段で、図３２に関連してさらに説明する。メモリ１１４は、容易にアクセス可能な方式でデータおよびコンピュータプログラム（アプリケーションプログラムなど）を格納するように構成される。ＣＰＵ１１６は、特定のアプリケーションプログラムに指図されるようにデータに対してコンピュータ処理を実施する。入出力回路１１８は、同じコンピュータ内の異なるコンピュータ構成要素間、および同じコンピュータ環境内の異なるネットワークコンピュータ間において所望のデータ転送を可能にする。
【００１３】
本開示で図１との関連で説明するＤＰＯバス１０４（およびそれに接続されたオンチップ装置１２０）の多くの実施形態は、オフチップブリッジ１１７を介してオフチップバス１０６に接続される。ＤＰＯバスから（それ自体がオフチップ構成要素である）メモリ１１４、ＣＰＵ１１６、および／または入出力回路１１８に流れるデータは、オフチップブリッジ１１７およびオフチップバス１０６を介して流れるように構成される。本開示内では、オフチップバス１０６を、そのオフチップバス１０６との関連に基づくバックサイドバスとも呼ぶことができる。図１に示すオフチップブリッジ１１７およびオフチップバス１０６は、ＤＰＯバス１０４が、コンピュータ環境１１０の残りの部分（すなわちオフチップ部分）とインターフェイスするための機構を提供する。
【００１４】
図１に示すように、ＤＰＯルートコレクタ装置１０３の一実施形態は、割り込みコレクタ装置１２６およびコレクタノード１２９を含む。本開示内では、コレクタノード１２９は、いくつかのオンチップ装置１２０との間で、ＤＰＯバス１０４を介してパケットの形でメッセージおよびデータをやりとりする。ＤＰＯルートコレクタ装置１０３も、やはり、オフチップブリッジ１１７を介して、オフチップバス１０６および（メモリ１１４、ＣＰＵ１１６、入出力回路１１８など、おそらくネットワークを介して）それに接続された装置との通信を行う。したがって、コレクタノード１２９を、オンチップ装置１２０と任意のオフチップ装置の間のデータ伝送を制御しているとみなすことができる。
【００１５】
割り込みコレクタノード１２６は、ＤＰＯバス１０４を介してオンチップ装置１２０から生成された割り込みのフローを受け取り、それを処理する。図２には、割り込みコレクタ装置１２６をＤＰＯルートコレクタ装置１０３内に位置するものとして示してあるが、別の実施形態では、割り込みコレクタ装置１２６を、ＤＰＯ端末装置装置１０２内の別のオンチップ装置１２０として構成することができる。
【００１６】
ＤＰＯルートコレクタ装置１０３の別の実施形態は、割り込みコレクタ装置１２６とコレクタノード１２９との間の異なる機能および構造を提供することができるため、本開示内では、ＤＰＯルートコレクタ装置１０３、割り込みコレクタ装置１２６、および／またはコレクタノード１２９の１つまたは複数により実施されると記載する任意の機能または操作は、実際には、それら個々の装置のうちの他のものまたはそれらの組合せによって実施され得ることは理解される。別の実施形態では、ＤＰＯルートコレクタ装置１０３、割り込みコレクタ装置１２６、および／またはコレクタノード１２９の機能および構造は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの様々な組合せとして設けられ得る。
【００１７】
オンチップ装置１２０は、ＤＰＯバスを利用してその通常の処理を伝達し、または実施するコンピュータベースの装置または電子装置であるとみなされる。各オンチップ装置１２０は、それぞれのＤＰＯ装置ノード１２２を介してＤＰＯバス１０４と通信する。本開示内では、オンチップ装置１２０は、（単なるバス用の移送型機能ではない）アプリケーション／装置型の機能を提供することができる。オンチップ装置１２０の例には、それに限定しないが、オーディオ装置、ビデオ装置、ディジタルビデオディスク（ＤＶＤ）装置、ハードディスクドライブ（ＨＤＤ）装置、ユニバーサルシリアルバス（ＵＳＢ）装置、過電圧保護ユニット（ＵＥＥ）装置、イーサネット（登録商標）多重アクセス制御（ＥＭＡＣ）装置、フラッシュ装置などの例示的な電子および／またはコンピュータ装置を含むことができる。
【００１８】
本発明では、コレクタノード１２９を、ＤＰＯバス上の各独立バストポロジ内のオンチップ装置に、ポイントツーポイント、トークンリング、スパイラルトークンなど様々なトポロジを提供するように構成することができる。各ＤＰＯバス１０４の全てのオンチップ装置１２０は、ＤＰＯルートコレクタ装置１０３とデータ通信する。各ＤＰＯバス１０４のオンチップ装置１２０は、割り込みコレクタ装置１２６を介して単一のＤＰＯルートコレクタ装置１０３との割り込み通信を行う。
【００１９】
ＤＰＯルートコレクタ装置１０３のコレクタノード１２９は、コンピュータ環境１１０内に含まれるメモリ１１４、中央処理装置１１６、および入出力回路１１８と通信する。ＤＰＯルートコレクタ装置１０３のコレクタノード１２９は、オフチップブリッジ１１７およびオフチップバス１０６を介してオフチップネットワーク（図示せず）と通信するように構成される。このように、いくつかのＤＰＯルートコレクタ装置１０３を、それぞれのオフチップブリッジ１１７およびオフチップバス１０６を介してオフチップ装置に接続することができる。
【００２０】
それによって、ＤＰＯバス１０４は、図１に示すように、ＤＰＯルートコレクタ装置１０３と１つまたは複数のオンチップ装置１２０の間のオンチップ通信を確立することができる。また、図２に示すように、さらに多くのオンチップ装置１２０への通信を可能にする１つまたは複数のＤＰＯブリッジ装置２５２も含むことができる。図２では、オンチップ装置は、それらのＤＰＯブリッジ装置および／またはＤＰＯルートコレクタ装置に関連するポイントツーポイントトポロジとして示されているが、ＤＰＯバスは、関与する装置（ＤＰＯルートコレクタ装置１０３、ＤＰＯブリッジ装置２５２、およびオンチップ装置を含むＤＰＯ端末装置装置１０２）を、リングトポロジ、可変トポロジ、制御可能なトポロジ、および知られている既存のトポロジの任意の組合せとしても配置させ得ることを強調しておく。本開示内の様々な図における様々な装置および構成要素の物理的サイズは、それらの物理的サイズとはほとんど関係がない。例えば、図１で、コンピュータ環境１１０は、コンピュータネットワーク全体を表すが、ＩＣチップ１００は、電子装置中の単一のチップを表す。
【００２１】
図１の集積回路（ＩＣ）チップ１００の実施形態は電子回路部分１０１の少なくとも一部を含み、電子回路部分１０１は、ＤＰＯバス１０４の少なくとも一部を含む。ＩＣチップ１００の一部の実施形態は、コンピュータ環境１１０内に含まれる。電子回路部１０１は、ＤＰＯバス１０４を含むことができる。ＤＰＯバス１０４は、１つのＤＰＯルートコレクタ装置１０３、およびいくつかのＤＰＯ端末装置装置１０２を含むと共に、（図２に示す）ＤＰＯブリッジ装置２５２を１つまたは複数含み、あるいはこれを全く含まない。ＩＣチップ１００の一部のバージョンは、本開示で説明するようにコンピュータ環境１１０内に位置するのではなく、電子装置、制御装置、電子機械装置、マイクロコンピュータ、マイクロプロセッサ、および半導体処理を用いて製造される種類のＩＣチップを使用する公知の装置のいずれかの内にも存在し得る。
【００２２】
ＤＰＯバス１０４は、ＤＰＯ端末装置装置１０２の一部を含み、一部を除外することができる。例えば、ＤＰＯ端末装置装置１０２のＤＰＯ装置ノード１２２は、ＤＰＯバス１０４内に含まれるが、ＤＰＯ端末装置装置１０２のオンチップ装置１２０は、ＤＰＯバス１０４内に含まれない。オンチップ装置１２０の別の実施形態は、ＤＰＯバス１０４に異なる全体的機能を付与する異なる機能および構造を提供することができる。各オンチップ装置１２０またはＤＰＯ端末装置装置１０２は、実際には、別個のアプリケーションプログラム、あるいはアプリケーションプログラムの一部として動作するように構成され得る。したがって、個々のＩＣチップ１００を、ソフトウェアアプリケーションプログラムが、現在コンピュータまたは計算処理装置に読み込まれ、あるいはダウンロードされる方式と類似の機能的な方式で、個々のオンチップ装置１２０と共に構成することができる。
【００２３】
本開示内では、ＤＰＯ端末装置装置１０２、オンチップ装置１２０、および／またはＤＰＯ装置ノード１２２の構造を、ソフトウェア、ハードウェア、ファームウェア、またはそれらの様々な組合せとして存在するように構成することができる。各ＤＰＯ装置ノード１２２は、それに関連するオンチップ装置１２０と、図１に示すＤＰＯルートコレクタ装置１０３（または図２に示すＤＰＯブリッジ装置２５２）のコレクタノードとの間の通信を提供するように構成される。
【００２４】
図２に示す各独立バストポロジ２１０、２１１は、（ＤＰＯルートコレクタ装置１０３およびＤＰＯブリッジ装置を含む）コレクタノードを備える任意の装置、およびそのコレクタノードから直接係属するＤＰＯ端末装置１０２内のオンチップ装置１２０を含む。ＤＰＯバス１０４は、ＤＰＯルートコレクタ装置１０３の下に何個のオンチップ装置１２０および何個のＤＰＯブリッジ装置２５２が配置されるかによって決まる様々な独立バストポロジを提供するように配置され得る。例えば図１には、（各々が個々のＤＰＯ端末装置１０２内にある）２つのオンチップ装置１２０が、ＤＰＯルートコレクタ装置１０３に係属するものとして示されている。これら２つのオンチップ装置は、ＤＰＯルートコレクタ装置１０３のコレクタノードから形成されたその独立バストポロジ内のオンチップ装置１２０を表す。装置の設計規則に基づく任意の単一のＤＰＯルートコレクタ装置１０３には、限られた数のＤＰＯ端末装置１０２だけしか直接接続できないため、ＤＰＯバス１０４の１つの独立バストポロジには、付け加えられるオンチップ装置１２０の数に限度があり、したがって、その拡張性は限られている。
【００２５】
オンチップ装置１２０の数が増すに従って、ＤＰＯルートコレクタ装置１０３に直接係属する独立バストポロジ内に全てのオンチップ装置１２０を含むことは、さらに難しくなる。図２に示すＤＰＯブリッジ装置２５２は、ＤＰＯルートコレクタ装置１０３のコレクタノード１２９といくつかのＤＰＯ端末装置１０２との間のブリッジングおよび／または経路指定機能を提供することができる。
【００２６】
各ＤＰＯブリッジ装置２５２は、オンチップブリッジ装置２５０、コレクタノード２１４、およびＤＰＯ装置ノード１２２を含む。構造的に、各オンチップブリッジ装置２５０内のコレクタノード２１４は、ＤＰＯルートコレクタ装置１０３内のコレクタノード１２９と見なされ、コレクタノード１２９のように動作し、コレクタノード１２９と同様な方式で製造されることができるものである。構造的に、ＤＰＯブリッジ装置２５２内の各ＤＰＯ装置ノード１２２は、ＤＰＯ端末装置１０２内のＤＰＯ装置ノード１２２と見なされ、ＤＰＯ装置ノード１２２のように動作し、ＤＰＯ装置ノード１２２と同様な方式で製造されることができるものである。
【００２７】
図２に示す各独立バストポロジ２１０、２１１は、（１つまたは複数の）ＤＰＯブリッジ装置２５０を使用する異なるオンチップ装置１２０と、ＤＰＯルートコレクタ装置１０３と、ＤＰＯ端末装置１０２との間のポイントツーポイントトポロジとして現れる。本開示でＤＰＯバス１０４との関連で説明する概念は、ポイントツーポイント以外のトポロジ（トークンリングおよびスパイラルトークン、変更可能なトポロジ、本開示において示すトポロジの組合せなど）にも適用可能であると想定される。ＤＰＯルートコレクタ装置１０３、ＤＰＯ端末装置１０２、およびＤＰＯブリッジ装置２５０の別の実施形態では、ＤＰＯバス１０４をこれら３つの装置を構成ブロックとする異なるトポロジに統合して形成することができる。
【００２８】
ＤＰＯバス１０４に選択された様々なトポロジの一部の実施形態は、（例えばシステム設計者によって）配線によって接続された構成をとると想定される。したがって、様々な接続、回路、およびネットワークトポロジを、ＩＣチップ１００上に配線によって接続することができる。この実施形態では、ＤＰＯバス１０４のトポロジは、それが配線された後では（置き換え、付加、あるいは除去を可能にするＤＰＯバスの実施形態において、個々のオンチップ装置１２０またはＤＰＯブリッジ装置２５２を物理的に置き換え、付加し、あるいは除去することができる場合を除き）、変更することが難しい。この配線接続によるトポロジを用いると、各オンチップ装置１２０上で動作するアプリケーションプログラムは、図１に示すチップ１００上のＤＰＯバス１０４のトポロジに関するどんな詳細も知る必要がない。
【００２９】
所望のＤＰＯバス操作のために、各ＤＰＯ装置ノード１２２は、ＤＰＯルートコレクタ装置１０３またはＤＰＯブリッジ装置２５２内のコレクタノードに電子的に結合される。ＤＰＯブリッジ装置２５２内のコレクタノード２１４は、ＤＰＯルートコレクタ装置１０３内のコレクタノード１２９と同様な方式で接続されたオンチップ装置１２０と機能的にインターフェイスする。
【００３０】
インターフェイスの下からＤＰＯブリッジ装置２５２のコレクタノード２１４と通信する任意の装置は、図２に示すＤＰＯルートコレクタ装置１０３のコレクタノード１２９との場合と同様にやりとりする。インターフェイスの上からＤＰＯブリッジ装置２５２のＤＰＯ装置ノード１２２と通信する任意の装置は、ＤＰＯ端末装置１０２のＤＰＯ装置ノード１２２との通信と同様な方式でやりとりする。図２に示すように、ＤＰＯブリッジ装置２５２のＤＰＯ装置ノード１２２をＤＰＯルートコレクタ装置１０３（または別のＤＰＯブリッジ装置２５２）のコレクタノード１２９の下に接続することにより、いくつかのオンチップ装置１０２を、１つまたは複数の独立バストポロジでＤＰＯブリッジ装置２５２のコレクタノード２１４に従属的に接続することができる。個々のＤＰＯブリッジ装置２５２に係属する全てのオンチップ装置１２０は、それぞれ、ＤＰＯブリッジ装置２５２と同じ装置と通信するオンチップ装置１２０の追加の独立バストポロジを形成するようにクラスタ化されているとみなされ得る。
【００３１】
本開示の一態様では、ＤＰＯ端末装置１０２、ＤＰＯルートコレクタ装置１０３、およびＤＰＯブリッジ装置２５２の全てを、利用可能な、よく理解されている半導体処理技法を用いてＩＣチップ１００内に製造され、かつ／またはそれに連結することができる。半導体処理技法として周知な技法を用いて、任意の所望のトポロジのＤＰＯバス１０４と一緒にＩＣチップ１００を製造することが可能であり、本開示ではそれらについて詳細には説明しない。半導体処理には、（ＤＰＯ端末装置１０２、ＤＰＯブリッジ装置２５２、およびＤＰＯルートコレクタ装置１０３の様々なトポロジを含むことができる）ＤＰＯバス１０４を含むＩＣチップ１００を製造することが可能な技法を含む。
【００３２】
図２に示す個々の独立バストポロジ２１０、２１１の選択は、ＤＰＯバス１０４を介して特定のオンチップ装置１２０と通信するアプリケーションプログラム、オペレーティングシステム、またはその他の装置に対してシームレスである。したがって、各オンチップ装置は、そのオンチップ装置を含む独立バストポロジがポイントツーポイント、リング、またはその他のトポロジで配置されているか否かを示すためのソフトウェアやハードウェアなどを備える必要がない。
【００３３】
ＤＰＯバス１０４のポイントツーポイントトポロジおよびリングトポロジは、図２に示すように、独立バストポロジ２１０および独立バストポロジ２１１としてオンチップ装置１２０を区分化することを可能にする（リング、可変などのＤＰＯバスを用いたそれ以上の独立バストポロジも存在することができる）。独立バストポロジ２１０、２１１各々は、そのＤＰＯ端末装置１０２内に収容された１つまたは複数のオンチップ装置１２０を含む。各独立バストポロジ２１０、２１１は、１つのＤＰＯブリッジ装置２５２も含むことができる。
【００３４】
ＤＰＯバス１０４内の様々な装置には、様々な種類のノードが位置することができる。各ＤＰＯルートコレクタ装置１０３はコレクタノード１２９を含む。各ＤＰＯブリッジ装置２５２は、ＤＰＯ装置ノード１２２およびＤＰＯ装置ノード２１４を含む。各ＤＰＯ端末装置１０２はＤＰＯ装置ノード１２２を含む。また、ＤＰＯバストポロジ２００は、図１に示すものと類似のＩＣチップ１００上に配置された複数のＤＰＯ端末装置１０２も含む。各コレクタノード１２９または２１４は、１つまたは複数の他の従属装置（ＤＰＯ端末装置１０２またはＤＰＯブリッジ装置２５２）との間でデータ収集／データ伝送を行う。したがって、コレクタノード２１４、１２９は、同じ独立バストポロジ内の各装置（ＤＰＯ端末装置またはＤＰＯブリッジ装置）のＤＰＯ装置ノード１２２と共にデータを転送するように働く。（ＤＰＯブリッジ装置２５２のＤＰＯ端末装置１０２に含まれる）各ＤＰＯ装置ノード１２２は、同じ独立バストポロジ内の上に隣接する装置中のそれぞれのコレクタノード１２９、２１４と共にデータを転送するように働く。ＤＰＯ装置ノード１２２は、図１に示したものと類似の１つまたは複数の機能的オンチップ装置１２０を含む。
【００３５】
図２の各独立バストポロジ２１０、２１１に含まれるＤＰＯ端末装置１０２は、ＤＰＯバス１０４内に設けられた装置およびデータ接続を用いて（直接的または間接的に）ＤＰＯルートコレクタ装置１０３に（図２ではその下に）係属する。第１の独立バストポロジ２１０は、複数のＤＰＯ端末装置１０２および少なくとも１つのＤＰＯブリッジ装置２５２を含む。第２の独立バストポロジ２１１は、ＤＰＯブリッジ装置２５２を介してＤＰＯルートコレクタ装置１０３に間接的に係属する複数のＤＰＯ端末装置１０２を含む。したがって、第２の独立バストポロジ２１１中のどのオンチップ装置１２０もＤＰＯルートコレクタ装置１０３と直接通信しない。
【００３６】
各ＤＰＯブリッジ装置２５２を、追加のＤＰＯブリッジ装置２５２および／またはそれに接続されたＤＰＯ端末装置１０２を持つように構成することができる。各ＤＰＯブリッジ装置２５２の付加は、追加のＤＰＯブリッジ装置に追加のＤＰＯ端末装置１０２を接続することにより、オンチップ独立バストポロジ２１１を追加することができる。いくつかのブリッジを直列に接続して、さらに多くの独立バストポロジを形成することができる。
【００３７】
通信パス２０９は、図２に示す第２の独立バストポロジ２１１内で、各ＤＰＯ端末装置１０２の各ＤＰＯ装置ノード１２２と、接続されたＤＰＯブリッジ装置２５２のコレクタノード２１４との間のパケット通信を提供する。通信パス２０８は、第１の独立バストポロジ２１０内で、（各ＤＰＯブリッジ装置２５２または各ＤＰＯ端末装置１０２の）各ＤＰＯ装置ノード１２２と、ＤＰＯルートコレクタ装置１０３内のコレクタノード１２９との間のパケット通信のために設けられる。図２には２つの独立バストポロジ２１０、２１１だけしか示されていないが、任意の所与のＤＰＯバス内に１つ、２つ、３つ、またはそれ以上の独立バストポロジが存在し得ることを理解すべきである。
【００３８】
ＤＰＯバス１０４内で適正なトポロジ機能を提供するために、各上位通信パス２０８（すなわち、上位の独立バストポロジ内の通信パス）は、どの下位番号の通信パス２０９よりも多い、またはそれと等しいビット数を伝送し得るものと想定される。つまり、ＤＰＯルートコレクタ装置１０３により近い通信パス２０８は、順次、任意の下位の通信パス２０９よりも大きい帯域幅でデータを搬送することができるように構成される。
【００３９】
（例えば、１６ビット、３２ビット、６４ビットなどの）通信パス２０８および２０９の構成は、チップ上の様々な各オンチップＤＰＯ装置ノード１２２に必要とされる帯域幅に基づき、チップ設計者が選択することができる。このように、異なる通信パスで複数のパケットサイズを用いることにより、ブリッジ設計者は、アプリケーションプログラム、オペレーティングシステム、あるいは任意のソフトウェアがＤＰＯバス１０４の具体的なトポロジを認識することのない、簡略化した経路指定を行うことができる。
【００４０】
ＤＰＯバス１０４の一部の実施形態は、オンチップトポロジに応じて、異なる通信パス２０８、２０９に、構成可能なデータ幅（例えば、６４、３２、１６ビット）などの付加的な特性を提供する。本開示内では、データ幅はパケットサイズにも関連する。例えば、図２に示す一実施形態では、ＤＰＯルートコレクタ装置１０３と最上位独立バストポロジ２１０の間のノード１２９、１２２、および２１４の構成は、一実施形態ではそれぞれが６４ビット接続を含む通信パス２０８を介して通信を行う。次の独立バストポロジ２１１中の装置１０２および２５２は、その実施形態では３２ビット接続を含む通信パス２０９を介して通信を行う。
【００４１】
一実施形態では、図２に示すＤＰＯルートコレクタ装置１０３、ＤＰＯブリッジ装置２５２、ＤＰＯ端末装置１０２、独立バストポロジ２１０、２１１、および通信パス２０８、２０９を含むオンチップポイントツーポイントトポロジ２００は、本質的に例示のためのものであり、範囲を限定するためのものではない。したがって、提供され得る装置、ノード、独立バストポロジ、および通信パスの任意の類似のトポグラフィ（ｔｏｐｏｇｒａｐｈｙ）は、本開示の対象範囲内に含まれる。一実施形態では、ＤＰＯバス１０４内の装置および全てのノードが、データを伝送するためにパケット伝送を利用する（信号は非パケット形式で伝送され得る）。
【００４２】
一実施形態では、通信パス２０８、２０９は、固定され、あるいは配線によって接続されている。他の実施形態では、、ＤＰＯバス内の装置／ノードを物理的に変更することにより、あるいはユーザが、ＤＰＯバスを形成する装置１０３、２５２および／または１０２の動作を変更するようにソフトウェア、ファームウェアおよび／またはハードウェアを再構成し得るようにＤＰＯバスを構成することにより、経路指定トポロジを変更することができる。本開示の範囲で、（図１に示す）チップ１００上に様々な装置トポグラフィを提供することができる。
【００４３】
第２の独立バストポロジ２１１に示す各ＤＰＯ端末装置１０２は、同じＤＰＯブリッジ装置２５２と通信する。他のＤＰＯブリッジ装置２５２は、ＤＰＯルートコレクタ装置１０３のコレクタノード１２９または第１の独立バストポロジ２１０中の別のＤＰＯブリッジ装置２５２に直接係属するように構成され得る。したがって、第１の独立バストポロジ２１０内のＤＰＯブリッジ装置２５２に直接係属する任意のＤＰＯ端末装置１０２またはＤＰＯブリッジ装置２５２（およびそれに含まれるオンチップブリッジ装置２５０）は、第２の独立バストポロジ内に含まれるはずである。
【００４４】
（複数の独立バストポロジ２１０、２１１を含む）ＤＰＯバストポロジ２００は、通信パス２０８、２０９に沿ったＤＰＯ端末装置１０２（およびそれぞれのオンチップ装置１２０）への通信手段を提供する。所与のトランザクションを、１つまたは複数のＤＰＯバス１０４データ転送トランザクションによって達成することができる。図２に示すＤＰＯバス１０４と様々な種類のノード１２９、１２２、２１４との間のオンチップトポロジの変形形態は、本開示に示す操作機能の様々な実施形態を提供する。
【００４５】
図１に示すチップ１００が設計され、製造される際に、各独立バストポロジ２１０、２１１の異なる種類のトポロジ間で一部のＤＰＯ装置ノード１２２およびコレクタノード２１４を変更することができるネットワークトポロジを構成することも可能である。例えば、装置の第１のレベルにあり、コレクタノード１２９と通信するＤＰＯ端末装置１０２は、通信パス２０８を使用する。しかしそれとは別に、そのオンチップトポロジは、このＤＰＯ装置ノード１２２を、図２に示す通信パス２０９を使用してＤＰＯブリッジ装置２５２のコレクタノード２１４と通信するようにも構成することができるはずである。
【００４６】
したがって、ＤＰＯバス１０４は、様々なＤＰＯ端末装置１０２、ＤＰＯルートコレクタ装置１０３、およびブリッジ装置２５０間のデータ通信を提供する。一態様では、ＤＰＯバス１０４は、様々なオンチップ装置１２０間のデータ転送を実行し、またはそれを円滑に行う。したがって、別の一態様では、ＤＰＯバス１０４は、オフチップブリッジ１１７およびオフチップバス１０６を介した、任意のオンチップ装置１２０と（それぞれ、チップ外に位置する）メモリ１１４、入出力回路１１８、および／またはＣＰＵ１１６との間のデータ転送を実行し、またはそれを円滑に行う。
【００４７】
一実施形態では、図１に示すアービタ装置１３４は、各アクセス側装置に一意のアクセス時間スロット群が提供されるようにすることにより、（図３および４との関連で示すように要求信号を送信しており、許可信号の受け取りを待っている）どの２つのアクセス側オンチップ装置１２０もバス装置に同時にアクセスしないことを保証する個々のバス許可信号を各オンチップ装置に提供する。
【００４８】
各ＤＰＯバス１０４は、本開示内で説明する様々な機能を提供することができる。そのような機能には、それに限定しないが、以下のものが含まれるはずである。
【００４９】
ａ）各ＤＰＯ端末装置１０２とＤＰＯバス１０４の間の上位のレジスタ間通信。このアービトレーション方式（図１に示すアービタ１３４により提供されるものとして、図３１との関連で示す一実施形態）は、最上位のレジスタ間通信を利用して、アービタ１３４に要求信号を送るオンチップ装置によってＤＰＯバス１０４へアクセスできるようにする。アービタ１３４は、任意の２つの装置がＤＰＯデータバスに同時にアクセスしないように調整し、オンチップ装置に許可信号を送信する。本開示内では、「レジスタ間」という用語は、オンチップ装置とＤＰＯバスとの間の通信において、マルチプレクサ／デマルチプレクサを例外として、オンチップ装置中の装置レジスタがＤＰＯバス中のバスレジスタと直接通信を行う際に用いる。これは、本開示において図４との関連で示すように、１対のバスレジスタがＤＰＯバス内の論理部を取り囲み、１対の装置レジスタがオンチップ装置内の論理部を取り囲むことを意味する。ＤＰＯバスに関する論理が、（ソフトウェアおよびファームウェアも使用することができるが）好ましくはハードウェア接続を用いてバスレジスタと共に使用されるように同じチップ上に設計され、オンチップ装置に関する論理も、好ましくはハードウェア接続を用いて装置レジスタと共に使用されるように同じチップ上に設計されるため、論理部は極めて高速にインターフェイスすることができる。最上位のレジスタ間通信は、ＤＰＯバス１０４の多くの実施形態を介した通信の速度および信頼性を高めることができる。
【００５０】
ｂ）ＤＰＯバスの多くの実施形態では分割データ転送を使用することができる。アービタ１３４を用いる分割データ転送の一部の実施形態では、以前に送信された第１のデータパケットが受け取られたと確認される前に、ＤＰＯバスを介して第２のデータパケットを送信することができる。分割トランザクションとは、要求信号に応じて許可（完了）信号を必要とするトランザクションである。分割メモリ書込み操作では、送信側は、許可信号が完了したことの確認を受信することを期待する。（分割トランザクションとは異なる）通知データ転送とは、許可または完了を必要としないデータ転送である。例えば、通知メモリ書込み操作では、送信側は、許可信号が完了したか否かの確認を受信することを全く期待しない。
【００５１】
ｃ）パケットトランザクション（ｐａｃｋｅｔ  ｂａｓｅｄ  ｔｒａｎｓａｃｔｉｏｎ）構造とは、許可信号および／または要求信号で送信されたデータが、物理的にパケットの形であることを意味する。パケット構造は、一部の従来技術のバス構成に用いられた側波帯信号（ｓｉｄｅ−ｂａｎｄ  ｓｉｇｎａｌｓ）を不要にする。というのは、そのような情報をパケットヘッダの構造に含むことができるからである。パケットトランザクション構造に基づくＤＰＯバスは、アプリケーション層レベルで機能するとみなされ得る。というのは、データを移送するように働くだけの従来のバスプロトコルではなく、オンチップ装置が機能を提供することができるからである。例えば、ユーザは、オーディオシステム、ビデオシステム、フラッシュメモリ装置など一部のオンチップ装置を用いてＤＰＯバス１０４を構成することができる。パケットトランザクションは、ほとんどの場合、分割トランザクションである。
【００５２】
分割または通知データ転送機能およびパケットトランザクション構造機能は、ＤＰＯバス１０４の多くの実施形態で相互に関連している。分割データ転送は、要求が送信され、しばらくしてから許可（すなわち完了）が受け取られることを示す。というのは、パケットに基づくことが、要求および許可がパケットとして形成される（それらが、側波帯信号などを用いて伝達されない）こと意味するからである。パケットに基づく構造は、別個のパケットを送信する（後で、その別個のパケットを受信する）ことができるため、トランザクションを分割するのに適している。
【００５３】
そのようなＤＰＯバス１０４の機能は、それに限定されないが、以下の一部のものまたは全てを用いて実現できるネットワークに適用可能である。
【００５４】
ａ）同じチップ上で異なる装置に送信するために使用される可変ＤＰＯバス幅。例えば、１６、３２、および／または６４バイトといったＤＰＯバス幅を、異なる独立バストポロジまたは別個の装置に使用することができる。
【００５５】
ｂ）同じチップ上で異なる装置に送信するのに使用され得る（例えば７５、１２５、１５０ＭＨｚといった）可変ＤＰＯバス周波数。
【００５６】
ｃ）周辺装置相互接続（ＰＣＩ）、ＰＣＩ−Ｘ、およびＰＣＩエクスプレス装置およびプロトコルと統合することができるＤＰＯバス構成。
【００５７】
ｄ）可能な範囲での非ＰＣＩ装置およびプロトコルとのＤＰＯバス統合。
【００５８】
ｅ）可能な範囲での側波帯割り込みまたは帯域内割り込みの使用（側波帯はパケット伝送には使用されないため）。
【００５９】
本開示ではこれらの機能について説明する。これらの機能の全て、または一部の組合せを用いて、ＤＰＯバス１０４の様々な実施形態を提供することができる。例えば、本開示の対象範囲内に含まれるＤＰＯバス１０４を、これらの機能の１つ、複数、または全てを用いて提供することができる。したがって、１つのＤＰＯバス１０４に関連付けられた１つのＩＣチップ１００は、１つまたは複数のＤＰＯ端末装置１０２を含むネットワーク間のオンチップ通信を実装し、提供することができる。
【００６０】
図３および４に、特定の論理部と関連付けられたレジスタの使用がＤＰＯバス１０４の動作特性をどのように決定し得るかを示す。図３および４は、データパケットの転送に用いられるパケット転送部３０１を含む。図３は、シグナリング部３０２の一実施形態を含み、図４には、シグナリング部４０２の別の実施形態を示す。シグナリング部（図３の３０２および図４の４０２）は、パケット転送部３０１を介して所望の通信を確立するために使用される。パケット転送部３０１は、ＤＰＯバス１０４の通常動作時にパケット化データを転送するのに使用される。
【００６１】
パケット転送部３０１は、図３と図４とで同一のものとして示されており、レジスタ３４８、パケットデータ接続３５０、任意選択のマルチプレクサ３５２、レジスタ３５４、レジスタ３５６、パケットデータ接続３５８、およびレジスタ３６０を含む。任意選択のマルチプレクサ３５２およびレジスタ３５４は、パケット受信器３７０に含まれる。レジスタ３５６はパケット発生器３７２に含まれる。
【００６２】
レジスタ３４８、３５４、３５６、３６０は、別の場所に転送されるデータ、または別の場所から受け取り中のデータを短時間だけ収容することができるように構成される。パケット受信器３７０は、パケットの形でレジスタ３４８からパケットデータ接続３５０を介して送信されるパケット化データを受け取り、それを一時的に収容するように構成される。パケット送信器３７２は、パケットデータ接続３５８を介してオンチップ装置１２０内のレジスタ３６０に送信される前にレジスタ３５６内に一時的に収容されるパケットの形のデータを生成する。パケットデータ接続３５０は、パケットデータ接続３５８との閉じたループを形成しない。
【００６３】
図３との関連で示すシグナリング部３０２は、レジスタと論理部との相対的な位置関係から、図４との関連で示す信号交換部４０２と異なる方式で動作する。図３および４に示すように、ＤＰＯ端末装置１０２の各オンチップ装置１２０は、少なくとも１つのレジスタ（図３の３３０および図４の４０７、４３０）を含む。各ＤＰＯバス１０４は、少なくとも１つのレジスタ（図３の３３２、図４の４０６、４３２）を含む。図３および４に、図１に示す電子回路部に組み込むことができる、電子的に結合されたＤＰＯバス１０４およびオンチップ装置１２０の２つの実施形態を示す。
【００６４】
図３に、接続確立部３０２を提供するオンチップ装置１２０およびＤＰＯバス１０４の一実施形態を示す。図１に示すオンチップ装置１２０とＤＰＯバス１０４が関与する図３の接続確立部３０２の実施形態は、レジスタ出力のみの通信設計を提供する。図４に、上位のレジスタ間通信を提供するオンチップ装置１２０とＤＰＯバス１０４の論理およびレジスタ構成を示す。図４に示すレジスタ間通信は、ＤＰＯバス１０４内で、優れた、より信頼性の高い動作を提供するものと想定され、本開示の対象とする範囲に含まれる。図３との関連で示すレジスタ出力のみの通信設計も、本開示の対象とする範囲に含まれる。
【００６５】
図３に、（ＤＰＯバスを介してオンチップ装置１２０にデータ通信を提供する）図１に示す電子回路部１０１の一部として含むことができる接続確立部３０２の一実施形態を示す。接続確立部３０２は、アウトバウンド、インバウンド駆動装置３０４、３０８、およびアウトバウンド、インバウンド論理部３０９、３１０を含む。本開示内では、図３の３０９、３１０との関連で示す用語の「論理部」は、各論理部内の論理を非同期に動作するように構成するため、非同期論理を用いて動作する。図３との関連で示すように、駆動装置３０４はレジスタ３３０を含み、駆動装置３０８はレジスタ３３２を含む。
【００６６】
図３に関連して説明する接続確立部３０２の実施形態に示すように、オンチップ装置１２０は、駆動装置３０４および論理部３０９を含み、ＤＰＯバス１０４は、論理部３１０および駆動装置３０８を含む。一実施形態では、ＤＰＯバス１０４は、論理部３１０および駆動装置３０８を含む。一実施形態では、駆動装置３０４はレジスタ３３０を含み、駆動装置３０８はレジスタ３３２を含む。
【００６７】
図３に関連して説明する接続確立部３０２の実施形態に示すように、（オンチップ装置１２０からＤＰＯバス１０４に出て行く）第１方向の通信パス３１３は、オンチップ装置１２０の駆動装置３０４から論理部３１０を通ってレジスタ３３２に至る。第１方向の通信パス３１３は、オンチップ装置１２０中の駆動装置３０４からＤＰＯバス１０４中の論理部３１０に要求メッセージ３０５を送信するように構成される。ＤＰＯバス１０４中の論理部３１０は、ＤＰＯバス中の駆動装置３０８と通信する。
【００６８】
論理部３１０の複雑度に応じて、要求メッセージ３０５がレジスタ３３２に到達するのに少なからぬ数のクロックサイクルを必要とする場合がある。（ＤＰＯバス１０４からオンチップ装置１２０に入ってくる）第２方向の通信パス３１２は、駆動装置３０８から論理部３０９を通って装置レジスタ３３０に至る。装置レジスタ３３０は、一実施形態では、論理部３０９内に含まれる。したがって、第２方向の通信パス３１２は、駆動装置３０８から論理部３０９に許可信号３１１を送信するように構成される。論理部３０９の構成に応じて、許可信号３１１がレジスタ３３０に到達するのに少なからぬ数のクロックサイクルを必要とする場合がある。
【００６９】
接続確立部３０２の実施形態は、実際には多くの場合、要求信号３０５および許可信号３１１をそのそれぞれの通信パス３１３および３１２に沿って送信するのに必要とされる、理論的に最短で２クロックサイクルのターンアラウンドより相当に多くの時間を必要とする場合がある。この追加の時間の大部分は、論理部３１０を通って送信される要求信号３０５の非同期論理遅延によるものである。したがって、論理部内で送信される要求信号がレジスタ３０６に進むまでの時間は、少なからぬ数の追加のクロックサイクルを必要とする場合がある。
【００７０】
図３との関連で示すこの非同期論理遅延は、本開示の図４で示す論理部４１０の実施形態では生じない。というのは、レジスタ４０６、４３２は、両方とも、この論理部の外にあるからである。オンチップ装置１２０とＤＰＯバス１０４との間のパケットデータ通信の信頼性および速度を高める（そのため、一般に、ＤＰＯバス１０４の速度と信頼性も高める）ことができるのは、このレジスタの論理部からの分離である。本開示では、このレジスタの論理部からの分離を、最上位でのレジスタ間通信と呼ぶ。
【００７１】
図４に、図１に示すＤＰＯバス１０４が、オンチップ装置１２０と共に最上位でのレジスタ間構成を有するように構成されているレジスタバス通信部４０２の一実施形態を示す。本開示内では、図４の４０９、４１０との関連で述べる「論理部」という用語は、装置構成などにおける任意の種類の論理回路、ゲート、装置などをいう。
【００７２】
レジスタバス通信部４０２は、アウトバウンド、インバウンド駆動装置４０４、４０８、アウトバウンド、インバウンド論理部４０９、４１０、アウトバウンド、インバウンド装置レジスタ４０６、４０７を含む。第１方向の通信パス４１１は、駆動装置４０４から装置レジスタ４０６を経て論理部４１０に至る。第１方向の通信パス４１１は、要求信号４０５を送信するように構成される。任意選択で、図７との関連で示すマルチプレクサを、第１方向の通信パス４１１内で適用することができる。このマルチプレクサは、いくつかのオンチップ装置１２０が、１つのＤＰＯバス１０４と通信し、その論理を使用することを可能にする。第２方向の通信パス４１２は、駆動装置４０８から装置レジスタ４０７を介して論理部４１１に至る。第２方向の通信パス４１２は、許可信号４１５を送信するように構成される。オンチップ装置１２０中の駆動装置４０４はレジスタ４３０を含む。ＤＰＯバス１０４中の駆動装置４０８はレジスタ４３２を含む。第１方向の通信パスに挿入されたマルチプレクサを含むＤＰＯバスの実施形態では、第２方向の通信パス４１２にデマルチプレクサ（図示せず）を適用することができる。
【００７３】
図４との関連で示すレジスタバス通信部４０２の実施形態は、レジスタ４３０からレジスタ４０６への最上位でのレジスタ間通信を提供する。本開示内では、「最上位でのレジスタ間通信」という用語は、マルチプレクサまたはデマルチプレクサを例外として、送信側レジスタと受信側レジスタの間で論理が適用されない通信を指す。送信側レジスタと受信側レジスタの間に（マルチプレクサとデマルチプレクサ以外の）論理部を挿入すると、１クロックサイクルを超過する伝送時間に関して若干の不確実性が生じる。送信側レジスタと受信側レジスタとの間の論理部を除去することにより、送信側は、許可信号への応答（または応答データパケット）を確実に受信することができる。図４との関連で示すレジスタバス通信部４０２の実施形態は、レジスタ４３２から装置レジスタ４０７への最上位でのレジスタ間通信も提供する。レジスタ４０６とレジスタ４３２の間に論理部４１０を配置することにより、オンチップ装置１２０からＤＰＯバス１０４にレジスタ間通信が提供される。したがって、データがレジスタ４０６からレジスタ４３２まで進むのには、通常、１クロックサイクルだけしか必要としない。レジスタ４０７とレジスタ４３０の間に論理部４０９を配置することにより、ＤＰＯバス１０４からオンチップ装置１２０にレジスタ間通信が提供される。したがって、データがレジスタ４０７からレジスタ４３０まで進むのには、通常、１クロックサイクルだけしか必要としない。
【００７４】
各論理部４０９、４１０は、オンチップ装置１２０、ＤＰＯバス１０４のそれぞれに組み込まれているとみなされ得る。したがって、各論理部４０９、４１０は、電子回路部１０１の一部に関連付けられた論理を提供するように構成される。図４に示すレジスタバス通信部４０２の構成においてレジスタ間通信を用いると、ＤＰＯバス１０４は、レジスタ間の遅延を最小限に抑えることにより最上位でのチップの経路指定を容易に行うことができる。最上位レジスタ間の遅延によって、通常の状況下でのバスの最大周波数が決定される。ＤＰＯバス１０４の最上位のレジスタ間でのどんな遅延も、経路指定遅延に左右される。図３に示すレジスタ出力のみの設計での遅延は、経路指定遅延と論理部の非同期論理遅延の両方に左右される。図４の論理部４０９、４１０は、ＤＰＯバス１０４とオンチップバスの一部として作製することができる。というのは、各論理部は、それぞれ同じオンチップ装置１２０とＤＰＯバスとの中に位置する２つのそれぞれのレジスタの間に位置するからである。したがって、論理部４０９、４１０の論理を、ハードウェア、ソフトウェア、およびファームウェア技法を用いて極めて高速になるように作製することができる。それに比べて、図３の各論理部３１０、３０９は、各レジスタ３３２、３３０の上流側であるが、どのレジスタの下流側でもない。したがって、論理部３１０、３０９は、一般に、要求信号が送信された後で許可信号を返すためにより多くのクロックサイクルを必要とする。
【００７５】
図３のＤＰＯバス１０４の実施形態も図４のＤＰＯバス１０４の実施形態も、バスから信号を受け取り、その信号に基づくアクションを実施する機構を提供する。実施されるアクションは、図３の実施形態の論理部３０９、３１０、および図４の実施形態の論理部４０９、４１０に基づくものである。図３の論理部３０９、３１０、および論理部４０９、４１０は、オンチップ装置１２０およびＤＰＯバス１０４のコア論理を表す。
【００７６】
図３の実施形態において、各論理部３１０、３０９は、駆動装置３０４とレジスタ３３２との間、駆動装置３０８とレジスタ３３０との間の各々に挿入される。図４の実施形態において、各論理部４１０、４０９は、駆動装置４０４とレジスタ４０６との間、駆動装置４０８とレジスタ４０７との間の各々には位置しない。そうではなく、図４の実施形態では、各論理部４１０、４０９は、図３との関連で示す実施形態で生じる可能性がより高いと考えられる非同期論理遅延を大幅に低減するように、それぞれの駆動装置４０４、４０８からみてそれぞれのレジスタ４０６、４０７の下流側に位置する。
【００７７】
したがって、レジスタバス通信部４０２の図４の実施形態では、それぞれの論理部４１０、４０９は、（それぞれの駆動装置４０４、４０８中に位置する）それぞれのレジスタ４３０、４３２からそれぞれのレジスタ４０６、４０７への非常に高い水準でのレジスタ間通信を提供する。
【００７８】
それと比べて、図３では、それぞれの論理部３１０、３０９は、最上位でのレジスタ間通信を示すようには位置されていない（というのは、論理部３１０、３０９が、物理的に、それぞれの装置レジスタ３３２、３３０の下流側にはないからである）。したがって、接続確立部３０２の図３の実施形態での通信は、非同期論理遅延を許容するレジスタ出力のみの設計として提供される。
【００７９】
（図３に示す）接続確立部３０２を有するＤＰＯバス１０４の実施形態を用いて行われるメモリトランザクションは、要求から確認を受信するまでに最短で２クロックサイクルを必要とするが、通常は、相当大幅な遅延が発生することになる。つまり、オンチップ装置１２０により要求３０５が送信されてから、（それより相当多くなる可能性が高いが）最短で２クロックサイクル以内にオンチップ装置１２０に許可信号３１１が返される。伝送速度を大幅に減速させるのは、この遅延の不確実性である。
【００８０】
そのハイ信号レベルが論理部３１０に適用されるとすぐ、この２クロックサイクルの間に、駆動装置３０４が第１のクロック信号でその要求信号をハイにする。論理部３１０内でのデータの存続時間によって異なるその後のクロック信号では、ＤＰＯバス１０４内の駆動装置３０８は、要求３０５がハイになっているか否かを判定することができる。要求３０５がハイになっていた場合、駆動装置３０８は、その許可信号３１１をハイにする（これを論理部３０９により検出することができる）。要求３０５がハイになっていない場合、駆動装置３０８は、その許可信号３１１をローのままにする。したがって、図３に示す論理部３１０の実施形態は、通常は、相当数のクロックサイクルだけ延長される最短２クロックサイクル以内の許可信号３１１の中に要求信号３０５の状態を反映することができる。本開示内での「ハイ」および「ロー」という用語の使用は任意であり、範囲を限定するためのものではなく、ＤＰＯバス１０４内の２つの互いに異なる書込み可能な／読取り可能な信号レベルを示すためのものである。
【００８１】
それに比べて、図４に示すレジスタバス通信部４０２の実施形態は、オンチップ装置１２０への要求４０５に対する許可信号４１５を完了するのに最短で４クロックサイクルを要する。一実施形態では、要求信号４０５は、それがハイになることにより提供される。要求信号４０５がハイになったことは、様々なときにレジスタ４０６および論理部４１０に反映される。
【００８２】
要求信号４０５がハイになったことに基づき、論理部は、（レジスタ４３２を含む）駆動装置４０８とレジスタ４０７を介して論理部４０９に送信される許可信号４１５を生成する。オンチップ装置１２０の論理部４０９が許可信号４１５を受け取った（受け取った許可信号がハイになった）ことを、要求信号４０５への完了として反映することができる。つまり、図４に示すレジスタ通信部４０２を有するＤＰＯバス１０４の実施形態を用いてメモリトランザクションが行われる場合、送信側オンチップ装置１２０の論理部４０９が、要求信号４０５の送信に応答して完了（許可信号４１５）を受信するのに、最短で４つのクロックサイクルを要する。
【００８３】
次に、図４に関連して、非同期論理遅延を抑制するこの４クロックサイクルの最短期間について説明する。オンチップ装置１２０の論理部４０９が、（アービタ１３４にＤＰＯバス１０４の使用を要求する）要求信号を送ることを決定すると、次の（第１の）クロックサイクル内で要求信号４０５が適宜ハイにされる。実際には、第１のクロックサイクル中に、オンチップ装置１２０は、ＤＰＯバス１０４のレジスタ４０６に要求信号を送信する。第１のクロックサイクルの後、要求４０５はレジスタ４０６に受け取られ、そこに格納される。
【００８４】
第２のサイクルで、ハイの要求信号４０５はレジスタ４０６から論理部４１０に転送される。したがって、第２のクロックサイクルの後、ＤＰＯバス１０４の論理部４１０は、要求信号４０５がハイになっていると判定する。したがって、ＤＰＯバスの論理部４１０は、要求信号４０５がハイになったことに応答して（ハイになるなどにより）許可信号４１５を生成することができる。オンチップ装置１２０内の論理部４０９で受信された許可信号４１５は、要求信号４０５に対する完了とみなされることができる。
【００８５】
第３のクロックサイクルで、ＤＰＯバス１０４の論理部４１０から送信される許可信号４１５は、オンチップ装置１２０に戻る。第３のクロックサイクルの後、レジスタ４０７は、許可信号４１５がハイであるか否かを反映する。
【００８６】
第４のサイクルにおいて、許可信号４１５のハイの状態がある場合、その許可信号４１５がレジスタ４０７からオンチップ装置１２０の論理部４０９に送信される。論理部４０９が許可信号４１５からハイの状態の受信は、要求信号４０５に対する完了として作用し、要求信号４０５が受信され、ＤＰＯバス１０４のためにアービタ１３４によって受け入れられていることを示す。したがって、図４に示すレジスタバス通信部４０２の実施形態は、最短で４サイクルのアービトレーション時間で要求信号に対する完了を提供することができ、オンチップ装置１２０内とＤＰＯバス内の各論理部を取り囲む１対のレジスタを用いて、論理部が要求信号または許可信号を直接受信したときに発生する伝送遅延を抑えることにより遅延が抑制される。
【００８７】
要求信号（図３の３０５と図４の４０５）は、ＤＰＯバス１０４内のアービタへの要求として作用し、ある限られた期間だけＤＰＯバスを要求しているオンチップ装置１２０にＤＰＯバス１０４の使用を許可するよう求め、パケット通信を提供する。同様に、許可信号（図４の４１５と図３の３１１）は、ＤＰＯバス１０４のアービタ１３４からＤＰＯバス１０４を要求しているオンチップ装置１２０へのＤＰＯバス１０４の許可を完了する（または完了しない）ように作用する。
【００８８】
図３との関連で示すレジスタバス通信部３０２の実施形態は、要求信号から許可信号を返すまでに最短で２クロックサイクルを要するが、レジスタバス通信部の一部の実施形態は、非同期論理遅延のために、これらの最短クロックサイクル期間より長時間を必要とする場合がある。また、クロックサイクルが連続していないこともある。したがって、図３の実施形態の（例えば）許可信号への最短で２クロックサイクルでの完了は、実際にはコンピュータ動作での遅延、割り込み、処理遅延、データ伝送遅延などを含む非同期論理遅延として知られている原理に基づき、２、３、４、５、６またはそれ以上のクロックサイクルを必要とする場合がある。
【００８９】
図１に示す電子回路部１０１の実施形態において、オンチップ装置１２０のレジスタは、それぞれ、図４の駆動装置４１２のレジスタと最上位（または上位）での通信を行う。したがって、本開示で説明するＤＰＯバストポロジ２００の一部のバージョンは、図４に示す最上位でのレジスタ間通信を提供する。したがって、電子回路部１０１内のＤＰＯ端末装置１０２は、プロセスノード（これについては以下でより詳細に論じる）のトポグラフィを変更することにより、ほぼ任意のトポグラフィに作り上げることができ、加えて、異なるＤＰＯ端末装置１０２間で非常に高性能な帯域幅が達成される。
【００９０】
最上位レジスタ間の通信遅延は、どれも大部分は、経路指定遅延による結果である。しかし、図３に示すレジスタ出力のみの設計での遅延は、経路指定遅延と非同期論理遅延の両方により決定される。したがって、要求信号４０５が送信された後で許可信号４１５を受信するまでに必要とされる時間は、通常、図４の実施形態の方が図３の実施形態より大幅に短い。
【００９１】
一実施形態では、各ＤＰＯバストランザクションは、３つの異なる種類のパケットの１つを使用する。この実施形態におけるそれらの種類のパケットは、それぞれ、同じパケットヘッダサイズを有する。パケットヘッダを同サイズにすると、パケットヘッダの寸法を最初に考慮しないことによって、パケットヘッダをより効率よく処理し、取り扱うことができる。ＤＰＯバストポロジ２００は、パケットベースのトランザクション構造、すなわち、ＰＣＩ、ＰＣＩ−Ｘ、ＰＣＩエクスプレスなどのプロトコルおよび装置との容易な統合、非ＰＣＩプロトコルおよび装置との容易な統合、ならびに側波帯割込の使用を提供する。
【００９２】
【表１】
0004638216.tif 000002
【００９３】
ＤＰＯバスを介したメモリへのトランザクションは、（読取り要求や書込み要求などの）メモリ要求を実行するオンチップ装置により行われる。この要求に応答して、オンチップ装置は、ＤＰＯバスを介して完了を受信する。
【００９４】
したがって、オンチップバスの一実施形態は、ＤＰＯバスを介してオンチップ装置からのメモリ読取り／書込み要求を実行する。ＤＰＯバスの一実施形態は、読取り要求が出された後で読取り完了を必要とすることにより分割トランザクションを回避するように作用する。したがって、データ転送の一バージョンは、要求および、場合により完了を含む。この状況では、要求は、完了パケット以外の任意のパケットであるとみなされることができる。パケットの一バージョンでは、各分割トランザクションは、３種類のパケット、すなわち、（アドレスにより経路指定される）アドレスパケット、（装置ＩＤにより経路指定される）構成パケット、または（装置ＩＤにより経路指定される）完了パケットの１つにより構成される。
【００９５】
オンチップ装置１２０は、他のどんなオンチップ装置とも無関係な読取り／書込み要求に応答した、そのオンチップ装置における読取り／書込み完了を受信する。一実施形態では、要求に対して完了が送られる所定時刻がない。従来のシステムにおけるオンチップ装置は待機し、別の要求を出す前に第１の要求の完了を受信した。
【００９６】
本開示の一実施形態では、第１の要求の完了を受信する前に第２の要求が転送することができる。本開示のＤＰＯバス１０４の１つの利点は、アービトレーションを求める第２の要求が送信される前に（アービトレーションを求める）第１の要求信号に対する完了を受信する必要がないことである。これは、従来のシステムとは対照的に、より高い実効帯域幅を提供する。例えば、メモリへの要求が完了として戻るまで、ある定められた期間（２マイクロ秒など）のターンアラウンド時間があるシステムを考える。従来の装置は、別の要求を送信するためにその２マイクロ秒の遅延期間の間、待機する必要があった。パイプライン方式を利用する別の構成では、第２の要求は、第１の完了が戻る前に送信される。したがって、パイプライン方式はより高い実効帯域幅を提供することができる。
【００９７】
図２との関連で示したオンチップ装置１２０の複数の独立バストポロジ２１０、２１１を提供するためには、一部のオンチップ装置（例えば、オンチップブリッジ装置２５２など）が、マスタとスレーブの両方として働き、他のオンチップ装置（ＤＰＯ端末装置１０２など）がスレーブとしてだけ作用することが必要である。本開示におけるマスタ装置とは、メモリへのトランザクションを生成することができ、あるいはメモリへのトランザクションのターゲットとなり得る装置であり、スレーブ装置とは、メモリへのトランザクションのターゲットだけにしかなり得ない装置である。したがって、装置がメモリ要求を出すこともそれを受信することもできる場合、それをマスタ装置とする必要があり、そうではなく、メモリ要求を受信することだけしかできない場合、それをスレーブ装置として構成することができる。ＤＰＯバス１０４の一実施形態は、マスタ装置とスレーブ装置とを区別せず、両方の装置がメモリへのトランザクションを生成することも、メモリへのトランザクションのターゲットとなることも可能である。
【００９８】
図５に、図１に示すＩＣチップ１００上の電子回路部１０１内の複数のオンチップ装置１２０間でのデータ通信を可能にするＤＰＯバス１０４の一実施形態を示す。電子回路部１０１の一部は、中央処理装置（ＣＰＵ）１１６およびメモリ装置１１４との通信を行うことができる。図１に示す電子回路部１０１は、ＤＰＯバス１０４（バックサイドバスなど）、複数のオンチップ装置１２０、および直接メモリアクセス（ＤＭＡ）エンジン５０６を含む。ＤＭＡエンジン５０６は、オンチップ装置１２０とＤＰＯバス１０４との間のデータ通信に関連するＣＰＵ１１６への負荷を大きく軽減するように構成される。
【００９９】
図５に示す電子回路部１０１の実施形態を考慮すると、そこでは、所与のオンチップ装置１２０がメモリ装置１１４を用いたメモリトランザクションを実行しようとし、次いで、ＣＰＵ装置１１６がＤＭＡエンジン５０６にその特定のトランザクションを実行するよう指示し、ＣＰＵ装置がそのトランザクションを（通常は、ＤＭＡエンジン５０６からメモリ装置１１４への読取りを実行することにより）実行する。
【０１００】
図６のＤＰＯバス１０４の実施形態は、ＤＭＡエンジンが共に、ＤＰＯバス１０４を介した経路指定に関連付けられたアクションの多くを実施することに伴うＣＰＵ装置１１６への負荷を軽減する、分散ＤＭＡアーキテクチャを提供する。図６に、ＤＰＯバス１０４が、図１にも示した電子回路部１０１内の複数のオンチップ装置１２０間のデータ通信を提供することができる、別の実施形態を示す。図６の実施形態では、図５に示すような区別されたＤＭＡエンジン５０６が、各オンチップ装置１２０内に含まれる１つの統合されたＤＭＡエンジン６０２で置き換えられる。したがって、図６の実施形態では、各オンチップ装置１２０がＤＭＡエンジン６０２を含む。図６の電子回路部１０１の構成内では、各統合ＤＭＡエンジン６０２は、どのオンチップ装置１２０が別個のバスマスタになることも可能にする。図５の構成は、単一のバスマスタ装置（すなわち、ＤＭＡエンジン５０６）を含み、各オンチップ装置１２０は、スレーブ装置として動作する。
【０１０１】
一実施形態におけるＤＭＡエンジンを含まない任意の装置は、スレーブ装置として構成されているとみなされ得る。それに比べて、ＤＭＡエンジンを備える装置は、（ＤＰＯブリッジ装置２５２などの）マスタ装置とスレーブ装置との両方として構成されているとみなされ得る。バストラフィックを生成することができる（したがってバストラフィックを受信するはずである）装置はマスタ装置である。バストラフィックを受信することだけしかできない装置は、ＤＰＯ端末装置１０２などのスレーブ装置である。
【０１０２】
ＤＰＯバス１０４の一実施形態は、それぞれが複数の装置とやりとりするいくつかのブリッジを設けることにより（複数のマスタ装置とそれより少数のスレーブ装置とを含むことができる）分散ＤＭＡトポグラフィの改善を実現する。各ブリッジ装置は、マスタ装置とスレーブ装置との両方として構成される。
【０１０３】
複数のオンチップ装置１２０を伴う図６のＤＰＯバス１０４の実施形態は、設計段階でのオンチップトポロジの変更を可能にする。例えば、ＤＰＯバス１０４と直接通信する代わりに、ブリッジ、ルータ、またはその他の類似のネットワーク装置（ＤＰＯバス１０４との直接通信を行うブリッジまたはその他のネットワーク装置）と直接通信するように（１つまたは複数の）装置１０２を再構成することにより、図２に示したＤＰＯバストポロジ２００を変更することができる。
【０１０４】
そのようなオンチップトポロジの変更は、通常、装置の動作前のＤＰＯバス１０４の設計時に実施される。しかし、一部の実施形態では、改造バスのトポグラフィ的な再構成（ｒｅｔｒｏｆｉｔ  ｂｕｓ  ｔｏｐｏｇｒａｐｈｉｃａｌ  ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ）も可能である。したがって、ＤＰＯバストポロジは、トポロジを変更することを可能にし、オンチップブリッジまたはルータとして動作する別の装置を介して装置への通信を提供することにより、その（１つまたは複数の）装置が、異なる（多くの場合下位の）独立バストポロジに実質的に付加される。
【０１０５】
ＤＰＯバスの一部は、図７に示すマルチプレクサ部７５１を含むことができる。例えば、図４では、マルチプレクサは、レジスタ４０６の前の要求線４０５上に位置することができるはずである。マルチプレクサ部７５１は、（やはり図４に示す）入力レジスタ４０６、マルチプレクサ７５０、（やはり図４に示す）複数の駆動装置４０４を含む。本開示内では、マルチプレクサ７５０は、一般に、複数の駆動装置４０４からの信号を合成するように作用する。要求線にマルチプレクサ部７５１を含む実施形態は、レジスタ４０７の前の許可線４１５にデマルチプレクサも含む。多重化プロトコルと逆多重化プロトコルとのどちらを要求するかは、ＤＰＯバス１０４を介して移送されるパケット化トラフィックと一貫した判断であるべきである。一バージョンでは、マルチプレクサ７５０を、図１に示すＤＰＯバスのアービタ１３４の制御下で（複数の信号を合成するだけの）ダム処理を実行しているとみなすことができる。
【０１０６】
一実施形態では、図７に示すマルチプレクサ７５０は、他の装置に比べて低い伝搬遅延／時間定数と共に構成される。このマルチプレクサを、図１に示すＤＰＯバスアービタ１３４によって制御されるダム非同期マルチプレクサであるとみなすことができる。このＤＰＯバスアービタ１３４は、どのデータ線をラッチイン（ｌａｔｃｈ  ｉｎ）すべきか選択するために用いられる。性能を高めるために、マルチプレクサ７５０は、できるだけ少ない均一な遅延となるように設計される（と共に１クロックサイクル以内で操作すべきである）。
【０１０７】
マルチプレクサ７５０は、所与の下流側駆動装置から出力データバスを選択することができる。多くの実施形態において性能を向上させるために、このマルチプレクサを、チップの周りに分散するのではなく、受信側レジスタの隣に物理的に配置する。例えば、多くの実施形態では、マルチプレクサ７５０は、図１および２に示すＤＰＯルートコレクタ装置１０３内のコレクタノード１２９の一部として、あるいは図２に示すＤＰＯブリッジ装置２５２のコレクタノード２１４の一部として組み込むことができる。
【０１０８】
本明細書で説明するＤＰＯバス１０４構成の様々な実施形態では、（レジスタ間通信を用いて）完了パケットを読み取るのに、装置に向けられた読取り要求パケットに続いて最短で８システムクロックサイクルを要する。この８クロックサイクルは、（図３または４の３５８などを介して）読取り要求を送信するための２クロックサイクルと、アービトレーションを提供する（図４に示す４０５、４１５など）ための４サイクルと、（図３または４の３５０などを介して）読取り完了を送信するための２サイクルを含む。したがって、読取り要求が送信されてから対応する完了が受信するまでの合計時間は、最短で８クロックサイクルである。図３および４の実施形態は、パケット転送部３０１の最上位において最上位のレジスタ間通信を提供するため、ＤＰＯバスとオンチップ装置１２０との論理からもたらされる追加の遅延は著しく低減される。したがって、パケット転送部３０１は、レジスタ間構成に基づく極めて高速で、一貫したターンアラウンドを提供する。したがって、いくつかの装置では、伝搬遅延の影響が増大し得る。図２に示すようにブリッジ／ルータなどを用いて接続された装置の複数の独立バストポロジを使用するＤＰＯバス１０４構成では、信号が規則的に横断するオンチップ装置１２０の複数の独立バストポロジ２１０、２１１のために、マルチプレクサ７５０のタイミング要件がより顕著になる。
【０１０９】
ＤＰＯバス１０４の一部の実施形態は、特に分散ＤＭＡに基づくＩＣのために設計された、パケットに基づくオンチップバスである。ＤＰＯバスの別の実施形態は、様々な上位特性を有する。ＤＰＯバスの一部のバージョンは、分散直接メモリアクセス（ＤＭＡ）システムのために設計されている。したがって、ＤＰＯバストポロジ２００アーキテクチャの別の実施形態は、それらを現代のチップ設計で役立つものとする様々な動作特性、構成、およびトポグラフィを有する。例えば、ＤＰＯバス１０４の一部の実施形態は、メモリ待ち時間が長い状況において実行可能であることを保証する、複数の未処理トランザクションを実行できる機能を提供する。ＤＰＯバス１０４の一部の実施形態は、分割トランザクションを回避する。
【０１１０】
ＤＰＯバスの一部の実施形態は、パケットが関連するＤＰＯ端末装置１０２に関わらず一貫した、簡易なヘッダ構造を有する。ＤＰＯバス全体で同一のパケットヘッダサイズを有する類似のパケットトポグラフィを使用することにより、ＤＰＯバスは、パケット全てを、より均一に、一貫して、確実に、かつ効率よく処理することができる。一実施形態では、ＤＰＯバス１０４は、パケットの種類に関わらず（単純な６４ビット構造などの）一貫したヘッダ構造を持つ。そのような均一なヘッダ構成は、ＤＰＯバス１０４が異なるパケットを効果的に処理することを可能にする。つまり、ＤＰＯバス１０４は、個々のパケットのパケットヘッダ長を決定するステップに時間を浪費する必要がない。そのような処理遅延の低減は、図７との関連で示すようなマルチプレクサ７５０をレジスタと関連付けているシステムにおいて、特に有用である。
【０１１１】
また、ＤＰＯバス１０４のアーキテクチャを、複数の未処理設計要求を実行するように明確に設計することができる。例えば、比較的短期間に複数の要求を送信するために、ＤＰＯバスを使用するプロトコルの一部の実施形態を用いることができるが、さらに多くの信号完了を受信する時間を必要とする場合がある。
【０１１２】
本開示内で説明する機能の多く（図２との関連で示すＤＰＯバスによって接続された複数の装置の独立バストポロジ、図７との関連で示す伝搬遅延が短縮されたマルチプレクサ７５０の使用など）は、設計の容易なタイミングクロージャや、システム全体でのパケット完全性の維持や、検証プロセスの簡略化など他の利点を提供する。本開示の多くの実施形態では、要求パケット完了パケット構造は、メモリ待ち時間の非常に長いシステムにおいて高トラフィック帯域幅を可能にする。
【０１１３】
表２に、ＤＰＯバスによってサポートされるトランザクションの種類、トランザクションを完了するのに必要とされる分割トランザクション、および各トランザクションのパケットの種類の一実施形態の概要を示す。
【０１１４】
【表２】
0004638216.tif 000003
【０１１５】
一実施形態では、ＤＰＯバス１０４は、図２５、２６、２７、２９ａ、２９ｂに示すＤＰＯ装置などのように、作動可能信号（ｒｅａｄｙ  ｓｉｇｎａｌ）およびヘッド信号を含む２つの残存側波帯信号（ｒｅｍａｉｎｉｎｇ  ｓｉｄｅｂａｎｄ  ｓｉｇｎａｌ）を有する。実際には作動可能信号だけが常に信号として使用される。作動可能信号は、リセットされるときを除いて標準動作での使用がサポートされない最終手段の信号である。作動可能信号は、ＣＰＵが装置にあまりに多くの未処理要求を出しているために、その装置が応答しなければならない要求を格納するバッファ空間が不足している場合にのみ使用される。この場合、それは、上流側装置へのパケット応答に対する責任を回避することができる。
【０１１６】
一実施形態では、リセットされた後、ＤＰＯバス１０４は、入りパケットを解析できるようになったときにその作動可能信号をアサートすることができる。（信号がハイになるなど）作動可能信号がアサートされると、その信号はリセットまでアサートされたままになるはずである。要求側の装置は、そこにアドレス指定されたヘッダを求めて入りデータバスをサーチ／スヌープすることができる。装置は、入りヘッダ信号がアサートされたときにヘッダを求めてサーチ／スヌープするだけでよい。ヘッド信号は、出バスがパケットの開始を示すために使用する。一部の実施形態では、ヘッド信号がなければ、バスは絶対にアイドル状態になり得ない。
【０１１７】
オンチップ装置１２０は、完了、構成、メモリまたはメッセージを受け取ることができる。この装置は、コマンドを受け入れて完了を発行し、あるいは所与の要求に対してエラー完了を発行する。多くの実施形態では、どのオンチップ装置１２０も、単に、要求を無視することはできない。図１に示すＣＰＵ１１６は、いつでも装置に通知書込みを発行することができるため、装置は、読取り完了と制御トランザクションとを組み合わされたときに、これを収容するのに十分な大きさの受信バッファを持つ必要がある。装置は、常に、ＣＰＵ１１６から期待される最大パケットサイズを受信できる十分な空きバッファ空間を維持すべきである。
【０１１８】
読取り側装置により発行された読取り要求は、順番に来ることも、不規則に来ることもあり得るため、読取り要求に関連付けられたタグ（図示せず）をマッチさせることはその装置の責任である。一例では、このタグは、ヘッダのＰＴＡＧフィールド内に含まれ、どのデータが戻っているかを判定する完了のタグを伴う。一実施形態では、これは、読取り側装置が複数の未処理読取り要求を発行した場合に限り行われる。装置が出ＤＰＯバス上でトランザクションを実施しようとする場合、その装置は、まず、本開示内で説明するアービトレーション規則に従ってバスを要求する。
【０１１９】
一実施形態では、ＤＰＯバスは、ヘッダがバス上にあるときにアサートされるヘッダ利用可能信号を含むことができる。このインターフェイス上にはチップ選択線はない。オンチップ装置１２０の多くのバージョンは、パケットがその装置にアドレス指定されているか否かを決定するために、パケットへのヘッダをサーチ／スヌープする。一実施形態では、オンチップ装置１２０は、その装置にアドレス指定されていないインターフェイス上の任意のパケットを無視する。パケットのターゲットがその装置である場合には、必要に応じてデータペイロードを取り込む必要がある。
【０１２０】
要求パケットの一実施形態では、装置は、図８ａ、８ｂに示す要求プロセス８００の実施形態に従うことができる。完了パケットの一実施形態では、装置は、図９ａ、９ｂに示す完了パケットプロセスの実施形態に従う。図８ａ、８ｂおよび／または図９ａ、９ｂに示すプロセスのいずれも、公知のコンピュータプログラミング技法を用いて、図１に示すコンピュータ環境１１０内で実施することができる。
【０１２１】
図８ａ、８ｂに示す要求プロセス８００は、パケットが要求であることを判定する処理８０２を含む。要求プロセス８００は判断８０４に進み、そこで、その要求が、プロトコルで許容可能とみなされる種類の要求群であるか否か判定される。判断８０４への答えがＮＯである場合、要求プロセス８００は、処理８０６で、そのプロセスがサポートされていないと判定しており、要求プロセスは、処理８０８で非サポート完了を提供して終了する。
【０１２２】
判断８０４への答えがＹＥＳである場合、要求プロセス８００は判断８１０に進み、そこで、処理８０２で受信したパケットの種類がメッセージデータ型であるか否か判定される。判断８１０への答えがＹＥＳである場合、要求プロセス８００は判断８１２に進み、そこで、メッセージの内容が考慮され、８０２で受け取ったメッセージが有効であるか否か判定される。メッセージが、ＤＰＯバスを介して伝送されるメッセージの期待される形式に従っている場合、メッセージは有効であると判定される。
【０１２３】
判断８１２への答えがＹＥＳである場合、判断８１０および８１２により判定された受信されたメッセージは、処理８１４で処理され、要求プロセス８００が終了する。判断８１２への答えがＮＯである場合、要求プロセス８００は処理８１６に進み、そこで、処理８０２で受け取った要求が非サポート要求である（およびメッセージではない）と示され、要求プロセス８００が終了する。
【０１２４】
判断８１０への答えがＮＯである場合、図８ａ、８ｂに示す要求プロセス８００は判断８１８に進み、そこで、その要求が、そのオンチップ装置に格納されているモデルパラメータとの比較により定められる要求パケットに関する所定のモデルに違反しているか否か判定される。あらゆる要求は、所与のサイズの所定のヘッダ構成を持つ必要があり、パケット本体のサイズは、パケットモデルの例により様々である。パケットが、パケットモデルで記述される所定の形式に従っていない場合、受信したパケットの形式と期待される要求パケットの形式との比較により、オンチップ装置における受け取りパケットが要求パケットではないことが示される。判断８１８への答えがＹＥＳである場合、要求プロセス８００は処理８２０に進み、そこで、処理８０２で受け取った要求が不正な要求であることが決定され、処理８２２でコンピュータ環境に打ち切り／完了メッセージが送信され、その直後に要求プロセス８００が終了する。
【０１２５】
判断８１８への答えがＮＯである場合、要求プロセス８００は処理８２４でその要求を処理する。要求プロセス８００は判断８２６に到達し、そこで、処理８０２で受信したパケットの処理８２４での処理に成功したか否か判定される。判断８２６への答えがＮＯである場合、要求プロセス８００は処理８２８に進み、そこで再試行完了メッセージが送信される。判断８２６への答えがＹＥＳである場合、要求プロセス８００は判断８３０に進み、そこで、コンピュータ環境は、その要求が完了メッセージを必要とするか否か判定する。判断８３０への答えがＮＯである場合、要求プロセス８００は終了する。判断８３０への答えがＹＥＳである場合、要求プロセス８００は８３２に進み、そこで、パケットの送信側に正常完了が送信される。
【０１２６】
図９ａ、９ｂに、完了パケットプロセス９００の一実施形態を示す。完了パケットプロセス９００は、パケットが完了されたか否か判定する処理９０２を含む。処理９０４では、パケットのタグが未処理要求と対照してチェックされる。判断９０６では、完了パケットプロセス９００は、完了が期待されているか否か（例えば、その特定のノードからの要求が予期される以前に要求が送信されているか否か）判定する。判断９０６への答えがＮＯである場合、完了パケットプロセス９００は処理９０８に進み、そこで予期しない完了が生じ、処理９１０で予期しない完了メッセージが提供される。９１０に続き、完了パケットプロセス９００が終了する。
【０１２７】
判断９０６への答えがＹＥＳである場合、完了パケットプロセス９００は処理９１２に進み、そこで完了状況がチェックされる。次いで、完了パケットプロセス９００は、判断９１４に進み、そこで完了状況が正常であるか否か判定される。判断９１４への答えがＮＯである場合、完了パケットプロセス９００は判断９１７に進み、そこで完了状況が再試行であるか否か判定される。
【０１２８】
判断９１７への答えがＹＥＳである場合、処理９１８で、再要求により再試行ハンドルが次に渡され、次いで、完了パケットプロセス９００が終了する。判断９１７への答えがＮＯである場合、完了パケットプロセス９００は９２１に進み、そこで完了状況が打ち切りであるか否か判定される。判断９２１への答えがＹＥＳである場合、完了パケットプロセス９００は、処理９２２で、エラー／完了側打ち切りメッセージを送信し、次いで、完了パケットプロセス９００が終了する。判断９２１への答えがＮＯである場合、要求は、処理９２６で判定されたようにサポートされない。次いで、完了パケットプロセス９００は、エラー／非サポート要求メッセージを表示し、次いで、完了パケットプロセス９００が終了する。
【０１２９】
判断９１４への答えがＹＥＳである場合、完了パケットプロセス９００は判断９１６に進み、そこでエラービットが設定されているか否か判定される。判断９１６への答えがＹＥＳである場合、完了パケットプロセス９００は処理９１８に進み、そこでエラー／データ使用不能メッセージが送信される。判断９１６への答えがＮＯである場合、完了パケットプロセス９００は処理９２１に進み、そこで完了パケット中の入りデータが処理され、次いで、完了パケットプロセス９００が終了する。
【０１３０】
一実施形態では、出ＤＰＯバスポートは、データバスおよびアービトレーション信号を含む。アービトレーション信号は、複数のオンチップ装置１２０間で競合が生じたときにどのＤＰＯ端末装置１０２がＤＰＯバス１０４を使用することができるかを決定する。装置がこのポートに書き込もうとするとき、これは、まず、アービトレーション規則に従ってバスの調停を行う。出ＤＰＯバスポートは、メモリ空間要求およびメモリ構成空間完了の送信に使用されることが可能である。
【０１３１】
図１０に、ＤＰＯバスネットワークトポロジ部１０４０の別の実施形態の構成図を示す。ＤＰＯバスネットワークトポロジ部１０４０は、ユーザの制御下で変更され、独立バストポロジの任意のバストポグラフィに対して異なるＤＰＯバストポグラフィを提供することができる。ＤＰＯバスネットワークトポロジ部１０４０は、少なくとも２つのＦＩＦＯ装置、受信側ＦＩＦＯ１０４８と送信側ＦＩＦＯ１０５０とを含む。ＤＰＯバスネットワークトポロジ部１０４０は、個々のオンチップ物理層を任意に選択させように構成され、したがってソフトウェアおよびオペレーティングシステムの動作に基づいてトポロジが選択され、図１、２、３、４との関連で示した様々なトポロジを提供することができる。例えば、ＤＰＯ端末装置１０２をＤＰＯルートコレクタ装置１０３に接続するときに、図２との関連で示した物理的なポイントツーポイントネットワークトポロジを使用する必要はない。ユーザは、ポイントツーポイント構成を選択することも、ハードウェア／ファームウェアでのトークンリングトポグラフィを選択することもできる。
【０１３２】
図１０との関連で説明するＤＰＯバスネットワークトポロジ１０４０は、（ＤＰＯ端末装置１０２の一実施形態とみなされる場合もある）ベンダＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）装置１０４２、標準バスインターフェイスへの接合部１０４４、オフチップバス（ＯＣＢ）パケット化モジュール１０４６、受信側先入れ先出し（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）（ＦＩＦＯ）１０４８、送信側ＦＩＦＯ１０５０、オフチップバストランザクションおよび物理部１０５２、図１との関連で示したオフチップブリッジ１１７、およびオフチップバス１０６を含む。オフチップバスは、図１との関連で示したコンピュータ環境１１０のメモリ１１４、ＣＰＵ１１６および／または入出力回路１１８の一実施形態とのデータ通信パスを提供する。
【０１３３】
オフチップバストランザクションおよび物理部１０５２は、オフチップバス１０６での物理層インターフェイスの種類を決定する。オフチップバストランザクションおよび物理部１０５２は、別種の物理層インターフェイスであるとみなされる場合がある。ＯＣＢトランザクションおよび物理部１０５２は、ソフトウェア、ファームウェア、および／またはハードウェアを用いて、図２との関連で示したのと類似のポイントツーポイントネットワークトポロジ、トークンリングネットワークトポロジ、あるいは本開示で図１１との関連で示すスパイラルトークンネットワークトポロジで構成されことができる。一部の実施形態では、オフチップバストランザクションおよび物理部１０５２を含むネットワークは、直列または並列に配置された、いくつかの異なるトポロジを含むことができる。
【０１３４】
一実施形態では、オフチップバス（ＯＣＢ）パケット化モジュール１０４６は、データを、ネットワーク提供者１０４２の下で運用しているプロトコル（または規格）から、オンチップバス１０５４が運用しているプロトコル（または規格）に変換する。ＯＣＢパケット化モジュール１０４６が構成されると、送信側ＦＩＦＯ１０５０は、ＯＣＢパケット化モジュールがＯＣＢトランザクションおよび物理部１０５２に送信されるパケットを含む度にそのように構成され、パケットは、そのパケットが受信された順序に、送信側ＦＩＦＯ１０５０を介して送信される。ＯＣＢパケット化モジュール１０４６が構成されると、受信側ＦＩＦＯ１０４８は、ＯＣＢパケット化モジュール１０４６がＯＣＢトランザクションおよび物理部１０５２を受信することができるパケットを送信できるようになる度にそのように構成され、パケットは、そのパケットが受信された順序に、受信側ＦＩＦＯ１０４８を介して送信されることになる。オンチップ装置１２０内に含まれるコンピュータソフトウェアは、ＯＤＢトランザクションおよび物理部１０５２によって提供される個々のネットワークトポロジ（ポイントツーポイント、トークンリング、スパイラルトークンなど）と関係し、またはそのために設計されていなくても動作することができる。
【０１３５】
標準バスインターフェイスへの接合部１０４４は、異種のプロトコルとバストポロジとの間での通信を可能にするように、ベンダＩＰ１０４２とＯＣＢパケット化モジュール１０４６を接続するインターフェイスである。したがって、一実施形態では、ＯＣＢパケット化モジュール１０４６は、図１、２、４に示す各ＤＰＯ端末装置１０２の一部として含まれる。ＯＣＢパケット化モジュール１０４６は、標準バスインターフェイスへの接合部１０４４を用いてベンダＩＰのプロトコルとＯＣＢパケット化モジュール１０４６のプロトコルとの間で変換を行う。
【０１３６】
標準バスインターフェイスへの接合部１０４４を用いて変換が行われると、各パケットを完了することによってパケット伝送を行うことができるようになり、ＯＣＢトランザクションおよび物理部１０５２からＯＣＢパケット化モジュールに送信されるデータパケットは、短時間の間、受信側ＦＩＦＯ１０４８に位置する。ＯＣＢパケット化モジュール１０４６からＯＣＢトランザクションおよび物理部に送信されるデータパケットは、短時間の間、送信側ＦＩＦＯ１０５０に留まる。
【０１３７】
図１０に示す制御可能なトポグラフィを用いて、論理の残りの部分から物理層を切り離すことができる。したがって、ソフトウェアおよびオペレーティングシステムは、ＤＰＯバス１０４が、機能的に、ポイントツーポイント、トークンリング、スパイラルトークン、あるいは別の所望のトポグラフィのどれを持つように構成されていても、図１との関連で示した個々のＤＰＯ端末装置１０２内で動作することができる。
【０１３８】
ＤＰＯバスを様々なオンチップ装置トポロジで構成することができるだけでなく、ＤＰＯバス回路の異なる部分が異なるトポロジを使用することができる。図１１に、ＤＰＯバス１０４が、ＤＰＯバスの異なるトポロジ（および実施形態の組合せ）をシームレスに提供することができることを示す。例えば、ポイントツーポイント（トップダウン）ネットワークトポグラフィは、一般に、本開示内では、図１、２、３、４との関連で説明される。図１１に、２つの別個のバストポロジ１１０４、１１０６を含むネットワークトポロジ１１０２を示す。ネットワークトポグラフィ１１０２の上位のトークン独立バストポロジ１１０４は、（トークンリング、スパイラルトークン、その他類似のトークントポグラフィを含むことができる）トークンネットワークトポグラフィとして構成される。下位のトークン独立バストポロジ１１０６は、ポイントツーポイントトポロジとして配置される。独立バストポロジ１１０４内では、ＤＰＯ端末装置１０２のいくつかの装置ノード１２２は、スパイラルトークンＤＰＯコレクタ１１０８を含むリングトポグラフィを含むことができる。スパイラルトークンＤＰＯルートコレクタ装置１０３は、図１および２との関連で示したコレクタノード１２９および割り込みコレクタ装置１２６を含むＤＰＯルートコレクタ装置１０３のポイントツーポイント実施形態と類似の方式で（ただし、異なるネットワークトポロジ内でそれに適合されて）動作するスパイラルトークンコレクタノード１２９およびスパイラルトークン割り込みコレクタ装置１２６を含む。トークンリングおよびスパイラルトークントポグラフィは、一般に、ネットワーク技術として周知であり、本明細書では詳細に説明しない。
【０１３９】
上位トークン独立バストポロジ１１０４内のＤＰＯ端末装置１０２には、図２との関連で示した１つまたは複数のＤＰＯブリッジ装置２５２を含むことができる。上位トークン独立バストポロジ１１０４内では、ＤＰＯ端末装置１０２、ＤＰＯブリッジ装置２５２、およびスパイラルトークンＤＰＯコレクタ１１０８は、トークントポグラフィで構成される。図１１に示す上位トークン独立バストポロジ１１０４の実施形態内のＤＰＯ端末装置１０２およびＤＰＯブリッジ装置２５２のＤＰＯ装置ノード１２２の全ては、（トークントポグラフィに従って動作する）中央トークンアービタ１３４により調停される。
【０１４０】
図１１に示すように、上位トークン独立バストポロジ１１０４内のＤＰＯブリッジ装置２５２は、第２の独立バストポロジ１１０６内のＤＰＯ端末装置１０２のためのコレクタを形成することができる。図１１との関連で示すネットワークトポグラフィ１１０２の実施形態の独立バストポロジ１１０６は、ポイントツーポイントトポグラフィで配置されたＤＰＯ端末装置１０２を含むが、実際には、それらのＤＰＯ端末装置１０２を、トークン、スパイラルトークン、あるいは本開示内で説明するＤＰＯバス１０４上に存在し得る他の任意のネットワークトポグラフィでも配置することができる。
【０１４１】
様々なメモリマップを用いてオンチップ装置メモリ機能を提供することができる。図１２ａに、ＤＰＯバス１０４を簡略化するために使用することができるＤＰＯバス装置メモリマップ１０００の一実施形態を示す。ＰＣＩ装置にも非ＰＣＩ装置にも類似のメモリマップを使用することができる。ＤＰＯバス１０４上のＰＣＩ装置は、単一のＰＣＩエンドポイント装置機能と同じメモリマップを持ち得る。
【０１４２】
非ＰＣＩ装置でのメモリマップ１１００の一実施形態を図１２ｂに示す。構成トランザクションは、構成空間中のレジスタだけをターゲットとすることができる。メモリトランザクションは、メモリ空間中のレジスタだけをターゲットとすることができる。
【０１４３】
メモリは装置／機能に基づいて割り振られる。装置が、割り振られた空間を超える構成空間を必要とする場合、それ以上の構成空間に別の機能番号を割り振る。一実施形態では、装置は、メモリ空間を使用せず、構成空間を使用する。構成空間中のレジスタのマッピングは、装置依存とすることができる。一部の実施形態では、構成トランザクションを、装置、機能およびレジスタ番号によりアドレス指定することができる。
【０１４４】
ＤＰＯバスアドレスヘッダ形式１３００、１４００の一部のそれぞれの実施形態を、それぞれ、図１３と１４に示す。図１３に、６４ビットバスでの３２ビットアドレスパケットヘッダ形式の一実施形態を示す。図１４に、３２ビットバスでの３２ビットアドレスＤＰＯバスアドレスヘッダ形式の実施形態を示す。図１３のＤＰＯバスアドレスヘッダ形式１３００の実施形態は、単一のパケット内に含まれ、図１４のＤＰＯバスアドレスヘッダ形式１４００の実施形態は、２つのパケット間に広がっている。装置にアドレス指定されたメモリトランザクションは、図１３および１４との関連で示す、完全に復号化され得る３２ビットアドレスを使用する。
【０１４５】
図１に示した電子回路部１０１の一実施形態では、パケットの種類に関わらず、全てのパケットヘッダは同じサイズ（図１３および１４に示す３２ビットなど）を有することができる。電子回路部１０１の一実施形態では、各パケットヘッダは、ビッグエンディアン形式に従う（ただし、他の実施形態では、リトルエンディアンその他の形式も可能である）。したがって、電子回路部を通過するパケットなどに類似の形式を使用することにより、ＤＰＯバスの処理に関する混乱が減少し、通常は、データスループットが増加し、データ転送の速度および信頼性が増大する。
【０１４６】
表３に、図１３および１４に示す３２ビットアドレスヘッダの一実施形態のフィールドを示す。
【０１４７】
【表３】
0004638216.tif 000004
【０１４８】
表３に示すデータパケットフィールドの実施形態を用いて、論理が表４に示すパケットヘッダの後のデータペイロードを探すか否かが判定される。
【０１４９】
【表４】
0004638216.tif 000005
【０１５０】
表５に示すデータダブルワード（ＤＷ）数フィールドの一実施形態は、データ長をＤＷ数で記述する。
【０１５１】
【表５】
0004638216.tif 000006
【０１５２】
ＤＰＯバスは、ダブルワード（ＤＷ）が３２ビット（または４バイト）であるとみなす。各幅のヘッダ形式には差がないため、データバス幅を記述するヘッダには情報が示されない。データ幅は、ヘッダには影響を与えないが、データペイロードおよびデータ整合には影響する。本開示において示す異なるデータアライメント事例でのデータ転送について考慮する。表６に示すパケットの種類フィールドの実施形態は、本開示の一実施形態でパケットにより実施されるトランザクションの種類を記述する。
【０１５３】
【表６】
0004638216.tif 000007
【０１５４】
構成は、完了を有するメモリに書込みを行う。メモリ書込みが通知され、したがって、完了パケットを持たない。メモリ書込み状況をチェックするためにフラッシュ操作が用いられる。
【０１５５】
前述のように、側波帯を用いてＤＰＯバス１０４に割り込みを提供することができる。例えば、図３０では、各ＤＰＯ端末装置１０２とＤＰＯルートコレクタ装置１０３（より詳細には、図示しない接続を用いて、割り込みコレクタ装置１２６）との間に装置割り込み３０２０が延在している。また、各ＤＰＯブリッジ装置２５２とＤＰＯルートコレクタ装置１０３（より詳細には、図示しない接続を用いて、割り込みコレクタ装置１２６）との間に、ブリッジ割り込み３０２２も延在している。図３０に示すＤＰＯブリッジ装置２５２またはＤＰＯ端末装置１０２からＤＰＯルートコレクタ装置１０３への（一般に、データパケット伝送に関連する）その他の接続は、（図示しない接続を用いて）ＤＰＯルートコレクタ装置１０３内のコレクタノード１２９に接続される。割り込み信号を搬送する側波帯部分の機能は、側波帯で伝送されるデータの代わりにデータバス内で伝送されるパケットを用いることにより、ＤＰＯバス１０４の実施形態を用いて大部分が除去されるため、側波帯部分を割り込みなどの機能に使用することができる。そのため、そのレジスタ空間を介した割り込み報告機能を実装することは、そのオンチップ装置次第とされる。装置は、単一の割り込み信号を持つ。一実施形態では、ＤＰＯバス上の装置は、メインメモリへの単一の読取りトランザクションで待ち時間（例えば、一部のＤＰＯバスでは２から３マイクロ秒程度）を期待できる。これは、読取り要求が送信されてからデータと共に完了が戻るまでの時間であり、他のシステム待ち時間およびアービトレーション遅延を考慮に入れる。
【０１５６】
これを用いて、所与の装置が必要とする未処理読取り要求の数を判断することができる。例えば、一バージョンでは、要求ごとに１２８バイトのメモリを要求する装置は、表７に示す様々な数の未処理のパイプライン化要求で以下の読取り帯域幅を達成することができる。
【０１５７】
【表７】
0004638216.tif 000008
【０１５８】
トランザクションオーダリング
図１５に、通知要求パケット、非通知要求パケット、および完了パケットを使用したＤＰＯバスでのトランザクションオーダリングの一実施形態を示す。行に示すトランザクションは、列のトランザクションを渡すことが可能であり、不可能であり、または任意選択で可能である。トランザクションオーダリングは、特定のトランザクション群が順序付けされているか否かを反映しない。
【０１５９】
パケットヘッダ中のフィールド、リラックスオーダリング（ＲＯ）は、リラックスオーダリングが有効にされているか否かを指定する。一実施形態では、メモリ書込みは、リラックスオーダリングビットが設定されていない場合、他のメモリ書込みまたはメッセージ要求を渡さない。リラックスオーダリングビットが設定されている場合、その機能は任意選択である。別の実施形態では、通知メモリ書込みがメモリ読取り要求を渡す。一実施形態では、通知メモリ書込みは、ＲＯに応じて読取り完了を渡し、または任意選択で渡すことができる。一部の実施形態では、読取り要求は、装置のフラッシュ操作を改善するメモリ書込み操作またはメッセージ要求を渡すことができない。
【０１６０】
ＤＰＯバス１０４の別の実施形態では、読取り要求は、任意選択で、他の読取り要求、または他の完了を渡すことができる。別の実施形態では、読取り完了は、リラックスオーダリングビットがクリアである場合、メモリ書込みまたはメッセージ要求を渡すことができない。これは、フラッシュがメモリ書込み操作だけを考慮するように限定することにより、メモリ書込み状況のチェックに使用されるＣＰＵフラッシュ操作を改善する。これは、異なるトランザクションでの読取り完了を改善するが、読取り完了が区分化されている場合、各区分は順番に戻る。
【０１６１】
全てのバイトイネーブルがオフである長さ１サイクルのメモリ読取り要求を、フラッシュ操作という。フラッシュ操作は、要求側に、表８に示す宛先で前の通知書込みが完了していることを保証させる。
【０１６２】
【表８】
0004638216.tif 000009
【０１６３】
表９に、パケットタグ記述フィールドの一例を示す。表１０に、パケット機能記述フィールドの一例を示す。図１１に装置記述フィールドの一例を示す。
【０１６４】
【表９】
0004638216.tif 000010
【０１６５】
【表１０】
0004638216.tif 000011
【０１６６】
【表１１】
0004638216.tif 000012
【０１６７】
他の２つの重要な変数には、要求側ＩＤおよびトランザクションＩＤが含まれる。要求側ＩＤは、バス、装置および機能番号からなる。装置番号および機能番号は、表３との関連で説明し、バス番号は表１１との関連で説明してある。トランザクションＩＤは要求側ＩＤおよびパケットタグからなる。要求側ＩＤは、セルに含まれる情報がトランザクションの要求側を記述するものか、それとも完了側を記述するものかに応じて、完了側ＩＤとも呼ばれる。構成パケットヘッダ形式の一実施形態は、要求側ＩＤおよびパケットタグを含む。表１２に、図１６に示す３２ビットバスでのパケットヘッダの構成例を示す。
【０１６８】
【表１２】
0004638216.tif 000013
【０１６９】
レジスタトランザクションの種類は、ＤＣ［４：０］フィールドの値によって決定される。一実施形態では、構成トランザクションは、最後のダブルワードバイトイネーブル（ＬＤＢＥ）および最初のダブルワードバイトイネーブル（ＦＤＢＥ）フィールドが同一である場合にだけ正当である。一部の事例を表１３に示す。
【０１７０】
【表１３】
0004638216.tif 000014
【０１７１】
一バージョンでは、非ＰＣＩ装置だけが６４ビットレジスタアクセスの実行を許される。これは、ＤＰＯバスが構成トランザクションを用いた６４ビットアクセスをサポートしないからである。非ＰＣＩ装置での構成トランザクションは、ＤＰＯバス上でのメモリマップトランザクションである。表１４に、完了パケットヘッダ形式の一実施形態を示し、その一実施形態を図１７に表す。表１５に、完了状況形式の例を示す。図１６に通知要求パケット、非通知要求パケット、および完了パケットでの完了ペイロード形式の一実施形態を示す。
【０１７２】
【表１４】
0004638216.tif 000015
【０１７３】
【表１５】
0004638216.tif 000016
【０１７４】
【表１６】
0004638216.tif 000017
【０１７５】
一実施形態では、この完了ペイロード形式を制御するために構成空間に１ビットが設けられる。表１７に、リラックスオーダリング形式の一実施形態を示す。
【０１７６】
【表１７】
0004638216.tif 000018
【０１７７】
一実施形態では、リラックスオーダリング形式を制御するために構成空間に１ビットを設けることができる。
【０１７８】
【表１８】
0004638216.tif 000019
【０１７９】
バイト数および下位アドレス情報が必要とされるのは、読取り完了を複数の読取り完了パケットに区分化することができるからである。この情報は、バスおよび要求側が、入りデータを適正に追跡することを可能にする。区分の１つでエラーが発生した場合、要求側は、破壊された区分を再要求するだけでよい。
【０１８０】
読取り要求が発行され、読取り完了中のデータが複数のパケットに区分化された場合、その完了パケットは全て、同じトランザクションＩＤを共用し、順番に出現することになる。区分化を達成することができる方式には、いくつかの異なる実施形態がある。一実施形態では、各区分は、受信側でパケットが受信された順序（ＦＩＦＯなど）で配置され、この技法は、データ区分がデータ伝送時に混交されることがない場合には特にうまく機能する。ＤＰＯバス上のデータ伝送は、同じバス上を伝送されるため、データパケットの時間的混交の量は限られるはずである。別の実施形態では、別のヘッダフィールド（図示せず）がパケット内の個々の区分の区分順序番号を示す（例えば、１つの特定の区分とは、元は１つのパケットであったものの第１、第２、第３区分などである）。その場合、各区分の元の順序を再構築することができる。一実施形態では、異なる読取りトランザクション完了に厳格な順序付け規則はないが、所与のトランザクションでの区分化完了には厳格な順序付け規則がある。
【０１８１】
トランザクションの一実施形態についてメッセージのヘッダ内容と共に説明する。次に、オンチップ装置が要求側である場合について説明する。ある特定のオンチップ装置が要求を出しているものと想定する。そのオンチップ装置は、データサイズが１パケット当たり１２８バイトの最大パケットサイズを超えないという条件で、その後直ちに、メモリへの通知書込みを発行することができる。所与のオンチップ装置は、メモリへの非通知書込みを発行することができない。オンチップ装置は、データが到着したか否か知る必要がある場合、データがメモリ中にあることを保証するためにゼロ長読取りを発行することができる。
【０１８２】
表１９に示す以下の情報を用いて、所定のアドレス（０ｘ８０４０など）への６４ビットバス上での１２８バイトの通知書込みのための３２ビットアドレスパケットヘッダを形成することができる。
【０１８３】
【表１９】
0004638216.tif 000020
【０１８４】
装置は、エラーが発生したのでない限り通知トランザクションでは完了を受け取らない。装置が知っている間は、他に特に通知されない限り、送達が保証される。
【０１８５】
【表２０】
0004638216.tif 000021
【０１８６】
表２０の実施形態によれば、装置６、機能２は、データサイズが１パケット当たり１２８バイトのＭＴＵサイズに違反しないという条件で、直後にメモリへの読取り要求を発行するることができる。この装置は、３２ビットアドレスパケットを用いて読取り要求の発行を行い、データが完了パケットを使用して戻ることを期待する。
【０１８７】
表２１に示す情報を用いて、アドレス０８ｘ８０４０からの６４ビットバス上での６４バイトの読取り要求のための３２ビットアドレスパケットヘッダを形成することができる。
【０１８８】
【表２１】
0004638216.tif 000022
【０１８９】
データを伴う、または伴わない完了ヘッダは、表２２に示すヘッダ情報と共に戻され、その後に読取りデータを含む８データサイクルが続く。
【０１９０】
【表２２】
0004638216.tif 000023
【０１９１】
次に、ＣＰＵから（装置完了側を使用して）構成が提供される場合について説明する。ＣＰＵは特別な値を用いて装置をプログラムする。それは、表２３に示すヘッダおよびデータペイロード情報を有する構成パケットである。
【０１９２】
【表２３】
0004638216.tif 000024
【０１９３】
次いで、装置は表２４に示す完了を返す。
【０１９４】
【表２４】
0004638216.tif 000025
【０１９５】
一実施形態では、ＣＰＵは、オンチップ装置に関連付けられた設定メモリ空間を有する所定の値から所定の位置を６４バイト読み取る。装置は、表２５に示すヘッダ情報を有するメモリ読取り要求を受信する。
【０１９６】
【表２５】
0004638216.tif 000026
【０１９７】
次いで、装置は、読取り要求を実施し、表２６に示す以下の完了ヘッダ情報を有するデータを返す。
【０１９８】
【表２６】
0004638216.tif 000027
【０１９９】
ＤＰＯバスは、ビッグエンディアンまたはリトルエンディアンオンチップ装置を制御するように構成されることができる。ビッグエンディアン形式とリトルエンディアン形式とを切り替えるために、オンチップ装置は、そのデータを適当に「撹拌する」（または、メインメモリでこれを行うようソフトウェアに通知することができる）。以下の例は、ヘッダを含めて、データ転送がメモリ中、および６４ビット、３２ビットＤＰＯバス上でどのように存在することになるかを示すものである。
【０２００】
以下の例では、以下の項目を定義する。
【０２０１】
ａ）偶数ダブルワード（ＤＷ）アドレス＝０ｘＸＸＸＸＸＸＸ０または０ｘＸＸＸＸＸＸＸ８
ｂ）奇数ダブルワード（ＤＷ）アドレス＝０ｘＸＸＸＸＸＸＸ４または０ｘＸＸＸＸＸＸＸｃ
ｃ）ＤＰＯダブルワード（ＤＷ）＝ＤＰＯヘッダのＤＣ［４：０］フィールド
ｄ）ＤＰＯ  ＦＤＢＥ＝ＦＤＢＥ［３：０］ＤＰＯヘッダの最初のダブルワード（ＤＷ）バイトイネーブルフィールド
ｅ）ＤＰＯ  ＬＤＢＥ＝ＬＤＢＥ［３：０］ＤＰＯヘッダの最後のダブルワード（ＤＷ）バイトイネーブルフィールド
ｆ）ＤＰＯａｄｄｒ＝ＤＰＯヘッダのＡＤＤＲ［３１：２］、ＬＳＢビットは０。
【０２０２】
図１８に示す一実施形態では、３２ビット装置、１２バイト転送、偶数ダブルワード（ＤＷ）アドレスが示されている。図１９に示す別の例では、３２ビット装置、１２バイト転送、奇数ＤＷアドレス、ＢＥ（バイトイネーブル）使用が示されている。図１９に示す６４ビットバス上でのデータの整合は、図１８に示す前の例から変更されている。
【０２０３】
図２０に示す別の実施形態では、３２ビット装置、１６バイト転送、奇数ダブルワード（ＤＷ）アドレス、バイトイネーブル（本明細書に示すＦＤＢＥとＬＤＢＥを含むＢＥ）使用が示されている。６４ビットバスの６４ビット整合はバスの効率低下を生じるが、この効率低下は３２ビットバスに変換するときに再吸収されることに留意されたい。図２１に示す実施形態では、３２ビット装置、４バイト転送、奇数ダブルワード（ＤＷ）アドレス、バイトイネーブル使用が示されている。６４ビットバス上の３２ビット値の整合に留意されたい。また、３２ビットの転送でのバイトイネーブルを同一とし得ることにも留意されたい。
【０２０４】
図２２に、３２ビット装置、４バイト転送、偶数ダブルワード（ＤＷ）アドレス、バイトイネーブル使用を示す。６４ビットバス上の整合を考える。図２３に、６４ビット装置、８バイト転送、偶数ダブルワード（ＤＷ）アドレス、バイトイネーブル使用を示す。図２４に、６４ビット装置、８バイト転送、奇数ＤＷアドレス、バイトイネーブル使用を示す。６４ビットデータバス上の８バイトの整合を考える。
【０２０５】
本明細書で述べる方式では、ＤＰＯバスは、装置ノードが「コレクタ」への接続を介してシステムＣＰＵおよびメインメモリに接続することを可能にする。コレクタは、ＤＰＯバスの装置０、機能０である。
【０２０６】
図２５に、ＤＰＯバス１０４に関連付けられたコレクタノード１２９の例を示す。図２６、２７にＤＰＯバス１０４に関連付けられた複数の装置ノード１２２（６４ビット、３２ビット）の例を示す。図２９ａ、２９ｂに、全てがＤＰＯバス１０４内で関連付けられているＤＰＯブリッジ装置２５２（３２ビット、１６ビット）に含まれる例示的なコレクタノード２１４の異なる実施形態を示す。ＤＰＯルートコレクタ装置１０３内のコレクタノード１２９と、ＤＰＯブリッジ装置２５２内およびＤＰＯ端末装置１０２内の１つまたは複数のコレクタノード２１４と、ＤＰＯブリッジ装置２５２内の１つまたは複数のコレクタノード２１４は、システム構成時に様々なトポロジで関連付けることができる。図２を考慮すると、ＤＰＯバス１０４ごとに、図２５に示す１つのルートコレクタノード１２９がある。ＤＰＯルートコレクタ装置のコレクタノード１２９は、直接に、または図２に示すＤＰＯブリッジ装置２５２内のコレクタノード２１４を介して他の全ての装置ノード１２２と通信することができる。一実施形態では、コレクタノード１２９は、以下の一部または全部を含む。
【０２０７】
ａ）入りデータバス用のバスアービタ１３４
ｂ）入りデータバスポート
ｃ）出データバスポート
ｄ）構成レジスタ群
ｅ）側波帯割り込みコレクタ装置１２６との関連
表２７に、ルートコレクタノード１２９の一実施形態への接続を示す。本開示内では、（ＤＰＯブリッジ装置２５２とＤＰＯ端末装置１０２の両方に含まれる）ＤＰＯ装置ノード１２２は、コレクタノード２１４または１２９に接続されるものと想定する。表２７に、図３および４に関連して以下で説明する要求信号および許可信号の一バージョンを示す。
【０２０８】
【表２７】
0004638216.tif 000028
【０２０９】
ＤＰＯ装置ノード１２２は、装置ノードインターフェイスを用いて、図２５との関連で示すＤＰＯルートコレクタ装置１０３のコレクタノード１２９と（直接または間接に）通信を確立することにより、ＤＰＯバス１０４への装置接続を提供する。コレクタノード１２９は、ＤＰＯバス内の装置に、例えば、図１に示すＣＰＵ１１６やメインメモリ１１４などを含むシステム制御装置へのアクセスを提供する、データの入力元であるとみなされ得る。一部の実施形態では、ＤＰＯバスインターフェイスは、変動する（例えば、３２ビットまたは６４ビットなど）データバス構成を含むことができる。
【０２１０】
図２６、２７に、ＤＰＯバス１０４内に含まれる６４ビットと３２ビットの装置ノード１２２のそれぞれの構成図を示す。各ＤＰＯバス１０４に多数の装置ノードが存在することができる。各ＤＰＯ装置ノード１２２は、ＤＰＯルートコレクタ装置１０３内のコレクタノード１２９と通信する。各ＤＰＯ装置ノード１２２は、ＤＭＡユニットを含み、コレクタノード１２９を介してメインメモリに要求を出すことができる。表２８にＤＰＯ装置ノード１２２への接続を示す。これらの接続は、多くの場合、表２７に図２５との関連で示した接続から見て、同じ接続の反対端であることに留意されたい。
【０２１１】
【表２８】
0004638216.tif 000029
【０２１２】
図２９ａまたは２９ｂに示すブリッジノードは、図２８に示すように構成され得るＤＰＯブリッジ装置２５２内のコレクタノード２１４の、２つの実施形態（３２ビットと１６ビット）を示すものである。図２８に、ＤＰＯバスブリッジ番号付け例の一バージョンを示す。図２８に示すブリッジノードを使用して経路指定リソースを解放し、バスの柔軟性を提供する。ＤＰＯブリッジ装置２５２は、その機能により、２次インターフェイス上のＤＰＯ端末装置１０２内のＤＰＯ装置ノード１２２と、１次インターフェイス上のＤＰＯルートコレクタ装置１０３内のコレクタノード１２９との間の通信を提供する。
【０２１３】
図２８は、１つのＤＰＯ装置ノード１２２が、直接または別のＤＰＯブリッジ装置を介して（図２５との関連で示した）コレクタノード１２９と通信できるように、異なる独立バストポロジにおける複数のＤＰＯブリッジ装置２５２によってＤＰＯバスブリッジ１０４を構成することができることを示す。
【０２１４】
図２９ａと２９ｂを考慮すると、ＤＰＯブリッジ装置は、１次バスＸを２次バスＹと接続し、その場合、１次バスＸのデータ帯域幅は、２次バスＹのデータ帯域幅より大きいかそれと等しい。ＤＰＯブリッジ装置２５２は、その機能により、１次インターフェイス上のＤＰＯ装置ノード１２２と２次インターフェイス上のコレクタノード１２９との間の通信を提供する。１次回路および２次回路を制御するために、ＤＰＯブリッジ装置２５２の１次バスおよび２次バスに（図２９ａと２９ｂの両方に示す）別個のクロックおよびリセット入力を適用することができる。ＤＰＯブリッジ装置内の１次回路と２次回路の間での互いに異なるクロックは、１次回路が２次回路以上の速度で動作することができるようにする。最も多くのデータを伝達するＤＰＯバス１０４の部分でのデータ伝送速度を増大させるためには、ＤＰＯルートコレクタ装置により近い装置のクロック速度がより高いことが望ましい。１次回路と２次回路との間での互いに異なるリセットは、ＤＰＯバス内の個々の独立バストポロジに、リセットをより直接的に適用することができるようにする。Ｙは２次インターフェイスのバス番号を表し、ツリーを深さ優先で探索し、順次番号付けすることにより選択される。図２９ａと２９ｂに示すポイントツーポイントトポロジがこれを示している。図２９ａには、６４ビットＤＰＯバスブリッジの例示的な構成図を示す。図２９ｂには、３２ビットＤＰＯバスブリッジの例示的な構成図を示す。図２９ａでも２９ｂでも、ＤＰＯブリッジ装置２５２は、１次バスＸと２次バスＹを有する。
【０２１５】
表２９の信号は、ＤＰＯブリッジ装置２５２とＤＰＯルートコレクタ装置１０３との間の接続を示し、ＤＰＯブリッジ装置２５２の１次バスインターフェイスの一部とみなされ得る。ブリッジと装置との間の各出力ユニットへの接続を有する以下の表中の信号は、ブリッジ２次バスインターフェイスの一部である。ブリッジは、出力または２次バスへの幅および周波数の変更を可能にすることにより、経路指定リソースの負担を軽減する。表２９に、ＤＰＯブリッジ装置２５２に関連付けられた１次バス信号と２次バス信号との一実施形態を示す。
【０２１６】
【表２９】
0004638216.tif 000030
【０２１７】
図３０に、６４ビットＤＰＯバス上のノード間接続を含むＤＰＯバス１０４でのトポグラフィの例を示す。図３０には、所与のＤＰＯバス１０４について、複数のＤＰＯ端末装置１０２が単一のＤＰＯルートコレクタ装置１０３にどのように接続されるかが示されている（一部のＤＰＯ端末装置１０２は、ＤＰＯバスブリッジ装置２５２を用いて接続を確立する）。
【０２１８】
（アービトレーション）
アービトレーションとは、異なるオンチップ装置が所定の時刻におけるＤＰＯバスの使用を制御するように調停または競合するための機構である。様々な従来のアービトレーション技法があるが、それについては本明細書で詳述しない。図１、２、３、４との関連で示したオンチップ装置１２０の各実施形態は、（例えばＲＥＱ線上の）要求信号を使用してＤＰＯバスを要求することができる。この要求信号は、アービタ１３４に同期して読み込まれる。一実施形態では、ＤＰＯバスのアービタ１３４は、（例えば、パケット長が４クロックサイクル未満であるときに）予測値をラッチインする。アービタは、４クロックサイクル以下のパケットサイズを検出することができない。オンチップ装置１２０ごとの、オンチップ装置から見た要求から許可までの最短アービトレーション時間は、本開示の一実施形態について前述したように４クロックサイクルである。この４クロックサイクルの最短期間は、図４との関連で示したＤＰＯバス１０４でのレジスタ間設計規則のためであり、次にそれを、図３１に示すアービトレーション方式３１００の一実施形態との関連で説明する。
【０２１９】
アービトレーション方式３１００内では、時刻Ｔ０において、オンチップ装置は、その要求信号３１０２をアサートし、装置／ブリッジ要求制御優先度（ＣＰＲＩ）［１：０］線上に予測値３１０４を配置する。ＤＰＯバス１０４の１クロックサイクル後、時刻Ｔ１において、装置はその値を、その要求の残りでの優先値に変更する。オンチップ装置は、許可信号３１０６を使用してトランザクションが許可されるまで、要求をアサートに保持することができる。図１に示すアービタ１３４は、各要求トランザクションごとに予測値をラッチインする。装置／ブリッジＣＰＲＩ［１：０］信号３１０８は、（図２に示すＤＰＯ端末装置１０２および／またはＤＰＯブリッジ装置２５２からの）要求信号がアサートされたときにだけ有効である。その結果生じるアービトレーション信号の一実施形態を表３０に示す。
【０２２０】
【表３０】
0004638216.tif 000031
【０２２１】
アービトレーション内で守られ得る、様々な可能な要求規則がある。本開示の範囲内に留まりつつ、要求規則の１つ、複数、または全てを適用することができる。要求規則の一実施形態には、以下の一部または全部が含まれる。
【０２２２】
ａ）オンチップ装置は、バスが許可された場合、パケット全体を送信することができることを保証できるまでバスアクセスを要求しない。
【０２２３】
ｂ）要求信号３１０２の第１サイクルは、時間的に、予測サイクル３１０４と一致する。
【０２２４】
ｃ）要求信号３１０２中の残りのサイクルは、優先順に配置され得る。
【０２２５】
ｄ）４つの優先順位があり得るが、装置が要求することができるのは、２つの優先順位だけである。それら２つの値は、デフォルトで下から２つの優先度に指定され、ソフトウェアによりプログラム可能である。
【０２２６】
ｅ）要求側オンチップ装置間の優先度は、要求手順の間いつでも変更され得る。
【０２２７】
ｆ）要求が出されると、装置は、装置にバスが許可されるまで要求し続けることができる。
【０２２８】
ｇ）バスが許可されると、装置は、最短で１サイクルの間にその要求を除去することができる。
【０２２９】
ｈ）装置が要求を出し、次いで、その要求を削除しようとした場合には、それを除去することはできない。この場合、装置は、そのパケットをエラーパケットに指定することができる。また、パケットがデータペイロードを持っていた場合、それを除去し、ヘッダ中のデータパケットビットをクリアする必要がある。
【０２３０】
ｉ）アービタからの許可信号は、正確なパケット長で装置にアサートされる。
【０２３１】
本開示内では、第１サイクル（サイクル１）を要求手順の予測サイクルと呼ぶ。予測サイクルを使用してアービトレーションのために小さいパケットを識別し、バスバブルが吸収されるようにする必要がある。バスバブルとは、任意の無駄なバス帯域幅であると考えられる。１つのバスバブルは、ＤＰＯバスの実施形態では、１クロックサイクルの長さである。
【０２３２】
バスバブルは、バス上にアイドルサイクルがあり、バス上に、そのサイクル中に送信されている可能性のあるデータを有する少なくとも１つの装置がある場合に、発生している。バスバブルは、通常、バス上での可能な衝突を回避するために、無駄なバスサイクルをもたらすアービトレーション不確実性により発生する。アービタは、ＤＰＯルートコレクタ装置１０３での到着に際してヘッダからパケットの真の長さを取得し、それは、１、２、または３サイクルのパケットの場合、再調停の決定を行うには４サイクル遅すぎる。
【０２３３】
次に、装置ノードでのアービトレーションタイミングの一実施形態について説明する。以下の図に、所与の装置ノードでのアービトレーショントランザクションを示す。アービトレーションが必要なのは、装置がＤＰＯルートコレクタ装置１０３に送信する必要がある場合だけである。装置は、いつでもＤＰＯルートコレクタ装置１０３からパケットを受信することができる。図３１に、ＤＰＯバス装置でのアービトレーションタイミングの一バージョンを示し、その用語を表３１に示す。
【０２３４】
【表３１】
0004638216.tif 000032
【０２３５】
したがって、図３１は、ＤＰＯバス１０４内のアービトレーション方式の一実施形態を提供するものであるとみなされ得る。請求項３１に記載されるアービトレーション方式の一実施形態は、本開示で説明する最上位でのレジスタ間通信を利用するものである。以下の、ＤＰＯルートコレクタ装置１０３の同じコレクタノード１２９にアクセスしようとしている異なる装置ノード１２２間のアービトレーションは、図３１に示すアービトレーション方式を満たす。出力バスが使用されていないときには、出力をローにする。バス上の全ての伝送で、装置許可線がアービタからみてハイとすることができる。パケットが送信された後で、バスが再要求され、許可線が依然としてハイである場合、装置は続けて次のパケットを出力することができる。前述の波形はバス線から引き出されており、したがって、全ての入力値は所与の装置によって１サイクル後に見られることに留意されたい。
【０２３６】
所与のＤＰＯブリッジ装置２５２の一実施形態は、１次バス上でサービスを求める要求を出すときに、以下の規則の１つ、複数、または全てに従う。
【０２３７】
ａ）ＤＰＯブリッジ装置２５２はサービスを一度に１パケット要求する。
【０２３８】
ｂ）多くの実施形態では、２次から１次インターフェイスに入るパケットは、ＦＩＦＯ順に送達される。
【０２３９】
ｃ）１次インターフェイスでの要求優先度は、ＦＩＦＯ中のパケット全ての最高優先度に等しい。これは、パケットごとに評価される。
【０２４０】
ｄ）ブリッジは、パケットが、アービタにサービスを要求する前に１次バスに完全に送信され得ることを保証することができる。
【０２４１】
ｅ）ＤＰＯブリッジ装置２５２は、現在の要求が完了した後、その１次インターフェイス上で別の入り最大転送長パケットを処理するのに十分なバッファ空間がなくなることを検出すると、すぐにその作動可能信号を変更することができる。
【０２４２】
一実施形態では、ＤＰＯルートコレクタ装置１０３の所与のコレクタノード１２９は、そのノードの出力または２次データポートのためのアービタを含む。コレクタノード１２９のアービトレーションの一実施形態について説明する。送信側装置およびブリッジを適正に処理するために従わせることができる、アービトレーション要求を処理するための規則の一バージョンを以下に示す。
【０２４３】
ａ）ＤＰＯルートコレクタ装置１０３のコレクタノード１２９は、そのコレクタノードが、装置に割り振られた最大サイズのパケットを受け入れるのに十分なバッファ空間を持たない限り、装置のバスへのアクセスを許可しない。
【０２４４】
ｂ）許可信号のエッジは、次のパケットヘッダ位置を限定するのに使用されるため、アイドル状態にあるときにバスを保留にすることはできない。
【０２４５】
図３２に、図１との関連で示したＤＰＯバス１０４を含むことができるユーザインターフェイスを含む適当なコンピュータ環境またはネットワーク３２００の一例を示す。図１との関連で示したコンピュータ環境１１０は、図３２との関連で示すコンピュータ環境３２００の一実施形態である。類似のリソースが本明細書で説明するコンピュータ環境およびプロセスを利用することができる。
【０２４６】
（計算処理装置）
図３２に示すコンピュータ環境３２００は、一般的なコンピュータ環境であり、本明細書で説明する概念的ネットワーク技法を実装するのに使用されることが可能である。コンピュータ環境３２００は、コンピュータ環境の一例に過ぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲についてのいかなる制限も示唆するためのものではない。コンピュータ環境３２００は、例示的なコンピュータ環境３２００に示す構成要素のいずれか１つまたはそれらの組合せに関連するどんな依存性または要件を持つものであるとも解釈すべきではない。
【０２４７】
コンピュータ環境３２００は、コンピュータ３２０２の形で汎用計算処理装置を含む。コンピュータ３２０２は、例えば、独立型コンピュータ、ネットワーク化コンピュータ、メインフレームコンピュータ、ＰＤＡ、電話機、マイクロコンピュータまたはマイクロプロセッサ、あるいはプロセッサをメモリと組み合わせて使用する他の任意のコンピュータ装置の１つまたは複数とすることができる。コンピュータ３２０２の構成要素には、それだけに限らないが、（任意選択で暗号化プロセッサまたはコプロセッサを含む）１つまたは複数のプロセッサまたは処理クライアント３２０４、システムメモリ３２０６、およびプロセッサ３２０４とシステムメモリ３２０６を含む様々なシステム構成要素を結合するシステムバス３２０８を含み得る。コンピュータ環境３２００は、ネットワーク化装置で一般に知られている有線部および無線部を含み得る。
【０２４８】
システムバス３２０８は、様々なバスアーキテクチャのいずれかを使用したメモリバスまたはメモリ制御装置、周辺バス、アクセラレーテッドグラフィックスポート、およびプロセッサまたはローカルバスを含む、（ＤＰＯバス１０４など）いくつかの種類のバス構造のいずれか１つまたは複数を表す。例をあげると、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも呼ばれるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含むことができる。
【０２４９】
コンピュータ３２０２は、様々なコンピュータ読取り可能な媒体を含み得る。そのような媒体は、コンピュータ３２０２からアクセス可能であり、揮発性と不揮発性の両方、取り外し可能と固定の両方の媒体を含む任意の利用可能な媒体とすることができる。
【０２５０】
システムメモリ３２０６には、読取り専用メモリ（ＲＯＭ）３２１２などの不揮発性メモリ、および／またはランダムアクセスメモリ（ＲＡＭ）３２１０などの揮発性メモリの形のコンピュータ読取り可能な媒体が含まれる。始動時などに、コンピュータ３２０２内の要素間での情報の転送を支援する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）３２１４はＲＯＭ３２１２に格納される。ＲＡＭ３２１０は、処理クライアント３２０４から直ちにアクセス可能であり、かつ／またはそれによって現在操作されているデータおよび／またはプログラムモジュールを含むことができる。
【０２５１】
コンピュータ３２０２は、他の取り外し可能な／固定の、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。例として、図３２には、固定の不揮発性磁気媒体（図示せず）との間での読取りおよび書込みを行うハードディスクドライブ３２１６、取り外し可能な不揮発性磁気ディスク３２２０（「フロッピー（登録商標）ディスク」など）との間で読取りおよび書込みを行う磁気ディスクドライブ３２１８、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光媒体などの取り外し可能な不揮発性光ディスク３２２４との間で読取りおよび書込みを行う光ディスクドライブ３２２２が示されている。ハードディスクドライブ３２１６、磁気ディスクドライブ３２１８、および光ディスクドライブ３２２２は、それぞれ、１つまたは複数のデータ媒体インターフェイス３２２５によってシステムバス３２０８に接続される。またはこれに替えて、ハードディスクドライブ３２１６、磁気ディスクドライブ３２１８、および光ディスクドライブ３２２２は、１つまたは複数のインターフェイス（図示せず）によってもシステムバス３２０８に接続され得る。
【０２５２】
ディスクドライブおよびそれに関連するコンピュータ読取り可能な媒体は、コンピュータ３２０２に、コンピュータ読取り可能な命令、制御ノードデータ構造、プログラムモジュール、およびその他のデータの不揮発性記憶を提供する。例には、ハードディスクドライブ３２１６内のハードディスク、取り外し可能な磁気ディスク３２２０、および不揮発性光ディスク３２２４を示してあるが、磁気カセットその他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）その他の光記憶、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気的消去書込み可能ＲＯＭ（ＥＥＰＲＯＭ）など、コンピュータからアクセス可能なデータを格納することができる他の種類のコンピュータ読取り可能な媒体を利用して、例示的なコンピュータ環境３２００を実装することも可能であることを理解すべきである。
【０２５３】
ハードディスクドライブ３２１６に含まれるハードディスク、磁気ディスク３２２０、不揮発性光ディスク３２２４、ＲＯＭ３２１２、および／またはＲＡＭ３２１０には、例として、ＯＳ３２２６、１つまたは複数のアプリケーションプログラム３２２８、その他のプログラムモジュール３２３０、プログラムデータ３２３２を含む、任意の数のプログラムモジュールを格納することができる。各ＯＳ３２２６、１つまたは複数のアプリケーションプログラム３２２８、他のプログラムモジュール３２３０、プログラムデータ３２３２（あるいはそれらの何らかの組合せ）は、分散ファイルシステムをサポートする常駐コンポーネントの全部または一部を実装することができる。
【０２５４】
操作者は、キーボード３２３４やポインティングデバイス３２３６（「マウス」など）といった入力装置を介してコンピュータ３２０２にコマンドおよび情報を入力することができる。他の入力装置３２３８（具体的には図示せず）には、マイク、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナなどを含むことができる。上記その他の入力装置は、システムバス３２０８に結合された入出力インターフェイス３２４０を介して処理クライアント３２０４に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェイスおよびバス構造によっても接続され得る。
【０２５５】
ビデオアダプタ３２４４などのインターフェイスを介して、システムバス３２０８に、モニタ、フラットパネルディスプレイ、または他の種類のコンピュータディスプレイ３２４２を接続することも可能である。コンピュータディスプレイ３２４２以外の、他の出力周辺装置には、入出力インターフェイス３２４０を介してコンピュータ３２０２に接続され得るスピーカ（図示せず）やプリンタ３２４６などの構成要素も含まれ得る。
【０２５６】
コンピュータ３２０２は、リモートコンピュータ装置３２４８など、１つまたは複数のリモートコンピュータへの論理接続を用いたネットワーク化環境で動作することができる。例として、リモートコンピュータ装置３２４８は、パーソナルコンピュータ、携帯用コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスその他一般のネットワークノード、ゲームコンソールなどとすることができる。リモートコンピュータ装置３２４８は、コンピュータ３２０２に関連して本明細書で説明した要素および機能の多くまたは全てを含むことができる携帯用コンピュータとして示してある。
【０２５７】
コンピュータ３２０２とリモートコンピュータ装置３２４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）３２５０および一般の広域ネットワーク（ＷＡＮ）３２５２として示してある。そのようなネットワーク環境は、オフィス、企業規模コンピュータネットワーク、イントラネットおよびインターネットでは一般的なものである。
【０２５８】
ＬＡＭネットワーク環境で実装されるとき、コンピュータ３２０２は、ネットワークインターフェイスまたはアダプタ３２５４を介してローカルネットワーク３２５０に接続される。ＷＡＮネットワーク環境で実装されるとき、コンピュータ３２０２は、モデム３２５６、または広域ネットワーク３２５２を介して通信を確立するその他の手段を含むことができる。モデム３２５６は、コンピュータ３２０２に内蔵することも外付けとすることも可能であり、入出力インターフェイス３２４０または他の適当な機構を介してシステムバス３２０８に接続され得る。図示のネットワーク接続は例示のためのものであり、コンピュータ３２０２と３２４８の間の通信リンクを確立する他の手段も用いることができることを理解すべきである。
【０２５９】
コンピュータ環境３２００を用いて示すようなネットワーク化環境では、コンピュータ３２０２との関連で示すプログラムモジュール、あるいはその一部は、リモートのメモリ記憶装置にも格納されることができる。例をあげると、リモートアプリケーションプログラム３２５８は、リモートコンピュータ３２４８のメモリ装置に常駐している。図示するのために、アプリケーションプログラム、およびオペレーティングシステムなどその他の実行可能なプログラムコンポーネントは、本明細書では、別個のＷｅｂブロックとして示してあるが、そのようなプログラムおよびコンポーネントは、様々なときに、コンピュータ３２０２の様々な記憶構成要素に存在し、コンピュータ３２０２の（１つまたは複数の）データプロセッサにより実行されることが理解される。図示し、説明したネットワーク接続は例示のためのものであり、コンピュータ間の通信リンクを確立する他の手段も使用することができることは理解されるであろう。
【０２６０】
本明細書では、様々なモジュールおよび技法を、１つまたは複数のコンピュータまたはその他の装置により実行される、プログラムモジュールなどのコンピュータ実行可能な命令の一般的状況で説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、あるいは個々の抽象データ型を実装するルーチン、プログラム、制御オブジェクト３２５０、コンポーネント、制御ノードデータ構造３２５４などが含まれる。プログラムモジュールの機能は、様々な実施形態において、しばしば、所望に応じて組み合わされ、分散され得る。
【０２６１】
これらのモジュールおよび技法の実装形態は、何らかの形のコンピュータ読取り可能な媒体に格納され、あるいはそれを越えて伝送されることができる。コンピュータ読取り可能な媒体は、コンピュータからアクセス可能な任意の利用可能な媒体とすることができる。例をあげると、それだけに限らないが、コンピュータ読取り可能な媒体には、「コンピュータ記憶媒体」と「通信媒体」とを含むことができる。
【０２６２】
「コンピュータ記憶媒体」には、コンピュータ読取り可能な命令、制御ノードデータ後続、プログラムモジュール、その他のデータなど、情報の記憶のための任意のプロセスまたは技術で実装された揮発性の、および不揮発性の、取り外し可能な、および固定の媒体が含まれる。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリその他のメモリ技術、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）その他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶その他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、コンピュータからアクセス可能な他の任意の媒体が含まれる。
【０２６３】
「通信媒体」という用語には、それに限定されないが、搬送波やその他の移送機構などの変調データ信号中のコンピュータ読取り可能な命令、制御ノードデータ構造、プログラムモジュール、その他のデータが含まれる。通信媒体には、任意の情報配信媒体も含まれる。「変調データ信号」という用語は、信号中に情報を符号化するような方式でその特性の１つまたは複数が設定され、または変更されている信号を意味する。例をあげると、それに限定されないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、音響、無線周波数、赤外線その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ読取り可能な媒体の範囲内に含むことができる。
【０２６４】
以上、システムおよび方法を、構造的特徴および／または方法ステップに特有の言葉で説明してきたが、添付の特許請求の範囲で定義される本発明は、必ずしも、上述の特定の特徴またはステップに限定されるものではないことを理解すべきである。むしろ、それら特定の特徴およびステップは、特許請求される発明を実装する好ましい形態として開示したものである。
【図面の簡単な説明】
【０２６５】
【図１】分散パケットオンチップ（ＤＰＯ）バスを用いて接続された複数のオンチップ装置を含むチップの一実施形態を示す構成図である。
【図２】図１に示す集積回路上に位置し得るＤＰＯバスネットワークトポロジの別の実施形態を示す構成図である。
【図３】ＤＰＯバスを用いた通信の一実施形態を示す構成図である。
【図４】ＤＰＯバスを用いた通信の別の実施形態を示す構成図である。
【図５】標準直接メモリアクセス（ＤＭＡ）アーキテクチャの一実施形態を用いたＤＰＯバスを示す構成図である。
【図６】ＤＭＡアーキテクチャの別の実施形態を用いたＤＰＯバスを示す構成図である。
【図７】いくつかのオンチップ装置から提供された入力信号からＤＰＯバスの出力を選択するのに使用されるマルチプレクサの一実施形態を示す構成図である。
【図８ａ】要求パケットプロセスの一実施形態を示す流れ図である。
【図８ｂ】要求パケットプロセスの一実施形態を示す流れ図である。
【図９ａ】完了パケットプロセスの一実施形態を示す流れ図である。
【図９ｂ】完了パケットプロセスの一実施形態を示す流れ図である。
【図１０】トポロジが変更され得るＦＩＦＯ装置が関与するＤＰＯバスネットワークトポロジの別の実施形態を示す構成図である。
【図１１】上位トポロジがリング型であり、下位トポロジがポイントツーポイントトポロジである、いくつかのトポロジが関与するＤＰＯバスの別の実施形態を示す構成図である。
【図１２ａ】装置メモリマップの一実施形態を示す構成図である。
【図１２ｂ】装置メモリマップの別の実施形態を示す構成図である。
【図１３】６４ビットバスでの３２ビットアドレスパケットヘッダ形式の一実施形態を示す図である。
【図１４】３２ビットバスでの３２ビットアドレスＤＰＯバスアドレスヘッダ形式の別の実施形態を示す図である。
【図１５】ＤＰＯバスでのトランザクション順序付けの一実施形態を示す表である。
【図１６】３２ビットバスでのパケットヘッダの一実施形態を示す図である。
【図１７】完了パケットでの３２ビットパケットヘッダの一実施形態を示す図である。
【図１８】３２ビット装置、１２バイト転送、偶数ダブルワード（ＤＷ）アドレスの内容の一実施形態を示す図である。
【図１９】３２ビット装置、１２バイト転送、奇数ＤＷアドレスの内容の一実施形態を示す図である。
【図２０】３２ビット装置、１６バイト転送、奇数ＤＷアドレスの内容の一実施形態を示す図である。
【図２１】３２ビット装置、４バイト転送、奇数ＤＷアドレスの内容の一実施形態を示す図である。
【図２２】３２ビット装置、４バイト転送、偶数ＤＷアドレスの内容の一実施形態を示す図である。
【図２３】６４ビット装置、８バイト転送、偶数ＤＷアドレスの内容の一実施形態を示す図である。
【図２４】６４ビット装置、８バイト転送、奇数ＤＷアドレスの内容の一実施形態を示す図である。
【図２５】図１に示すＤＰＯルートコレクタ装置との間の信号の一実施形態を示す構成図である。
【図２６】６４ビットＤＰＯ端末装置の一実施形態を示す構成図である。
【図２７】３２ビットＤＰＯ端末装置の一実施形態を示す構成図である。
【図２８】複数のＤＰＯブリッジ装置を含むトポグラフィでの番号付け構成例を示す図である。
【図２９ａ】３２ビットの２次を用いた、図２に示すＤＰＯブリッジ装置の信号例を示す図である。
【図２９ｂ】１６ビットの２次を用いた、図２に示すＤＰＯブリッジ装置の信号例を示す図である。
【図３０】ＤＰＯルートコレクタ装置、いくつかのＤＰＯ端末装置、およびＤＰＯブリッジ装置を含むＤＰＯバスを形成するためのノード間接続例を示す図である。
【図３１】ＤＰＯバス装置でのアービトレーションタイミングの一バージョンを示す図である。
【図３２】ＤＰＯバスを利用し得るようなコンピュータ環境の一実施形態を示す構成図である。
【符号の説明】
【０２６６】
１０１  電子回路部
２００  ＤＰＯバストポロジ
２０８  通信パス
２０９  通信パス
２１０  独立バストポロジ
２１１  独立バストポロジ
３０１  パケット転送部
３０２  シグナリング部
３０５  要求メッセージ
３１１  許可信号
３１２  通信パス
３１３  通信パス
４０２  シグナリング部
４０５  要求信号
４１１  通信パス
４１２  通信パス
４１５  許可信号
７５１  マルチプレクサ部
８００  要求プロセス
９００  完了パケットプロセス
１０００  ＤＰＯバス装置メモリマップ
１０４０  ＤＰＯバスネットワークトポロジ
１０４８  受信側ＦＩＦＯ
１０５０  送信側ＦＩＦＯ
１１００  非ＰＣＩ装置でのメモリマップ
１１０２  ネットワークトポロジ
１１０４  上位のトークン独立バストポロジ
１１０６  下位のトークン独立バストポロジ
１３００  ＤＰＯバスアドレスヘッダ形式
１４００  ＤＰＯバスアドレスヘッダ形式
３２００  コンピュータ環境
３２１８  磁気ディスクドライブ
３２２２  光ディスクドライブ
【図１】
0004638216.tif 000033
【図２】
0004638216.tif 000034
【図３】
0004638216.tif 000035
【図４】
0004638216.tif 000036
【図５】
0004638216.tif 000037
【図６】
0004638216.tif 000038
【図７】
0004638216.tif 000039
【図８ａ】
0004638216.tif 000040
【図８ｂ】
0004638216.tif 000041
【図９ａ】
0004638216.tif 000042
【図９ｂ】
0004638216.tif 000043
【図１０】
0004638216.tif 000044
【図１１】
0004638216.tif 000045
【図１２ａ】
0004638216.tif 000046
【図１２ｂ】
0004638216.tif 000047
【図１３】
0004638216.tif 000048
【図１４】
0004638216.tif 000049
【図１５】
0004638216.tif 000050
【図１６】
0004638216.tif 000051
【図１７】
0004638216.tif 000052
【図１８】
0004638216.tif 000053
【図１９】
0004638216.tif 000054
【図２０】
0004638216.tif 000055
【図２１】
0004638216.tif 000056
【図２２】
0004638216.tif 000057
【図２３】
0004638216.tif 000058
【図２４】
0004638216.tif 000059
【図２５】
0004638216.tif 000060
【図２６】
0004638216.tif 000061
【図２７】
0004638216.tif 000062
【図２８】
0004638216.tif 000063
【図２９ａ】
0004638216.tif 000064
【図２９ｂ】
0004638216.tif 000065
【図３０】
0004638216.tif 000066
【図３１】
0004638216.tif 000067
【図３２】
0004638216.tif 000068