分散パケットオンチップ(DPO)(またはオンチップ)バスは、いくつかのオンチップ装置が、ルートコレクタ装置と各々通信するためのバス機構を提供する。DPOバスまたはオンチップバスは、DPOルートコレクタ装置、1つまたは複数のDPOブリッジ装置、および1つまたは複数のDPO端末装置装置を含むいくつかの装置から形成され得る。これらの装置は、様々なトポロジで構成され得ると共に、DPOバスを使用するオンチップ装置に極めて高速なメッセージターンアラウンドを保証する。本開示内で説明するDPOバスは、高い拡張性を有し、可変数のオンチップ装置に信頼性の高い通信を提供する。データの高速転送を可能にするDPOバスを形成するオンチップ装置間で、パケットに基づくデータ伝送を行い、DPOルートコレクタ装置といくつかのDPO端末装置装置との間でパケットを経路指定することができる。DPOバスが様々なオンチップ装置と形成する個々のトポロジを、DPOバスを形成するときに選択することができる。
各DPOまたはオンチップバスは、1つのDPOルートコレクタ装置を用いてオンチップ装置とオフチップ装置の間の通信を確立する。DPOバスは、各々が1つまたは複数のDPO端末装置装置を含む1つまたは複数の独立のバストポロジを含むように配置することができ、各端末装置装置はオンチップ装置への接続を可能にする。DPOブリッジ装置は、共にDPOバスを形成する2つの独立バストポロジの(上下)接続を可能にする。したがって、最上位の独立バストポロジはDPOルートコレクタ装置を含み、各下位独立バストポロジはDPOブリッジ装置を含む。各独立バストポロジにより、その独立バストポロジに関連付けられた各オンチップ装置と、各独立バストポロジに関連付けられたDPOルートコレクタ装置またはDPOブリッジ装置との間のレジスタ間通信が確立される。本開示で説明するデータパケット伝送を確立するために、そのようなレジスタ間通信をデータパケットの伝送および/または要求/許可信号の伝送に規定することができる。
オンチップ装置とDPOバスの間の各独立バストポロジ内のそのようなレジスタ間通信は、極めて高速に信頼性高くパケットを伝送する。本開示では、DPOバス104のいくつかの実施形態およびトポロジを説明し、一部の実施形態を図1、2、3、4、5、6、10、11、30との関連で説明する。DPOバス104は、物理的には、DPOバスを介して通信するオンチップ装置120と同じ集積回路(IC)チップ100上に位置する。
本発明では、DPOバス104の構成要素を、通常、コンピュータ環境内で動作するようなアプリケーションプログラムに類似した機能をインターフェイスし、提供するように構成することができる。DPOバス104を利用するそのようなアプリケーションプログラムを、ハードウェアおよびファームウェアならびにソフトウェアを用いてプログラムすることができる。オンチップ装置120とDPOルートコレクタ装置103の組合せを用いて動作し得るアプリケーションプログラムの例には、それに限定しないが、ゲーム、ワードプロセッサ、スプレッドシートなどが含まれる。したがって、本明細書で開示するDPOバス104は、オンチップデータ転送速度を増大させ、オンチップ装置機能を強化することができる。
DPOバス104の一部の実施形態は、信頼性が高く拡張可能な方式でチップ上でのデータパケット転送量を増大させることができる。一般に、DPOバスの一部の実施形態においては、ビデオ、オーディオ、無線などの広帯域アプリケーションを十分高速で処理するように構成することができる。DPOバス104の設計の詳細には、それに限定しないが、本開示で説明するタイミング、出力、レジスタファイル、干渉性、待ち時間などの態様が含まれる。
一実施形態では、DPOバスを含むICチップは、ネットワーク化コンピュータ構成、独立型コンピュータ、メインフレームコンピュータ、マイクロプロセッサ、マイクロコンピュータ、有線ネットワークの一部分、無線ネットワークの一部分、電子装置、超小型電子装置、通信装置、計算処理装置などのうち1つまたは複数を含むことができるコンピュータ環境110内に組み込まれると想定される。図1に示すこのコンピュータ環境110は、メモリ114、中央処理装置(CPU)116、および入出力回路118も含む。メモリ114、CPU116、および/または入出力回路118のいずれも、当分野で一般に知られているネットワークまたは独立型コンピュータ構成内で動作するように構成することができる。また、メモリ114、CPU116、入出力回路118、および/またはその他の構成要素のいずれも、ICチップ100内に含めることが可能である。
コンピュータ環境110およびそれに関連する構成要素の一実施形態については、本開示の後段で、図32に関連してさらに説明する。メモリ114は、容易にアクセス可能な方式でデータおよびコンピュータプログラム(アプリケーションプログラムなど)を格納するように構成される。CPU116は、特定のアプリケーションプログラムに指図されるようにデータに対してコンピュータ処理を実施する。入出力回路118は、同じコンピュータ内の異なるコンピュータ構成要素間、および同じコンピュータ環境内の異なるネットワークコンピュータ間において所望のデータ転送を可能にする。
本開示で図1との関連で説明するDPOバス104(およびそれに接続されたオンチップ装置120)の多くの実施形態は、オフチップブリッジ117を介してオフチップバス106に接続される。DPOバスから(それ自体がオフチップ構成要素である)メモリ114、CPU116、および/または入出力回路118に流れるデータは、オフチップブリッジ117およびオフチップバス106を介して流れるように構成される。本開示内では、オフチップバス106を、そのオフチップバス106との関連に基づくバックサイドバスとも呼ぶことができる。図1に示すオフチップブリッジ117およびオフチップバス106は、DPOバス104が、コンピュータ環境110の残りの部分(すなわちオフチップ部分)とインターフェイスするための機構を提供する。
図1に示すように、DPOルートコレクタ装置103の一実施形態は、割り込みコレクタ装置126およびコレクタノード129を含む。本開示内では、コレクタノード129は、いくつかのオンチップ装置120との間で、DPOバス104を介してパケットの形でメッセージおよびデータをやりとりする。DPOルートコレクタ装置103も、やはり、オフチップブリッジ117を介して、オフチップバス106および(メモリ114、CPU116、入出力回路118など、おそらくネットワークを介して)それに接続された装置との通信を行う。したがって、コレクタノード129を、オンチップ装置120と任意のオフチップ装置の間のデータ伝送を制御しているとみなすことができる。
割り込みコレクタノード126は、DPOバス104を介してオンチップ装置120から生成された割り込みのフローを受け取り、それを処理する。図2には、割り込みコレクタ装置126をDPOルートコレクタ装置103内に位置するものとして示してあるが、別の実施形態では、割り込みコレクタ装置126を、DPO端末装置装置102内の別のオンチップ装置120として構成することができる。
DPOルートコレクタ装置103の別の実施形態は、割り込みコレクタ装置126とコレクタノード129との間の異なる機能および構造を提供することができるため、本開示内では、DPOルートコレクタ装置103、割り込みコレクタ装置126、および/またはコレクタノード129の1つまたは複数により実施されると記載する任意の機能または操作は、実際には、それら個々の装置のうちの他のものまたはそれらの組合せによって実施され得ることは理解される。別の実施形態では、DPOルートコレクタ装置103、割り込みコレクタ装置126、および/またはコレクタノード129の機能および構造は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの様々な組合せとして設けられ得る。
オンチップ装置120は、DPOバスを利用してその通常の処理を伝達し、または実施するコンピュータベースの装置または電子装置であるとみなされる。各オンチップ装置120は、それぞれのDPO装置ノード122を介してDPOバス104と通信する。本開示内では、オンチップ装置120は、(単なるバス用の移送型機能ではない)アプリケーション/装置型の機能を提供することができる。オンチップ装置120の例には、それに限定しないが、オーディオ装置、ビデオ装置、ディジタルビデオディスク(DVD)装置、ハードディスクドライブ(HDD)装置、ユニバーサルシリアルバス(USB)装置、過電圧保護ユニット(UEE)装置、イーサネット(登録商標)多重アクセス制御(EMAC)装置、フラッシュ装置などの例示的な電子および/またはコンピュータ装置を含むことができる。
本発明では、コレクタノード129を、DPOバス上の各独立バストポロジ内のオンチップ装置に、ポイントツーポイント、トークンリング、スパイラルトークンなど様々なトポロジを提供するように構成することができる。各DPOバス104の全てのオンチップ装置120は、DPOルートコレクタ装置103とデータ通信する。各DPOバス104のオンチップ装置120は、割り込みコレクタ装置126を介して単一のDPOルートコレクタ装置103との割り込み通信を行う。
DPOルートコレクタ装置103のコレクタノード129は、コンピュータ環境110内に含まれるメモリ114、中央処理装置116、および入出力回路118と通信する。DPOルートコレクタ装置103のコレクタノード129は、オフチップブリッジ117およびオフチップバス106を介してオフチップネットワーク(図示せず)と通信するように構成される。このように、いくつかのDPOルートコレクタ装置103を、それぞれのオフチップブリッジ117およびオフチップバス106を介してオフチップ装置に接続することができる。
それによって、DPOバス104は、図1に示すように、DPOルートコレクタ装置103と1つまたは複数のオンチップ装置120の間のオンチップ通信を確立することができる。また、図2に示すように、さらに多くのオンチップ装置120への通信を可能にする1つまたは複数のDPOブリッジ装置252も含むことができる。図2では、オンチップ装置は、それらのDPOブリッジ装置および/またはDPOルートコレクタ装置に関連するポイントツーポイントトポロジとして示されているが、DPOバスは、関与する装置(DPOルートコレクタ装置103、DPOブリッジ装置252、およびオンチップ装置を含むDPO端末装置装置102)を、リングトポロジ、可変トポロジ、制御可能なトポロジ、および知られている既存のトポロジの任意の組合せとしても配置させ得ることを強調しておく。本開示内の様々な図における様々な装置および構成要素の物理的サイズは、それらの物理的サイズとはほとんど関係がない。例えば、図1で、コンピュータ環境110は、コンピュータネットワーク全体を表すが、ICチップ100は、電子装置中の単一のチップを表す。
図1の集積回路(IC)チップ100の実施形態は電子回路部分101の少なくとも一部を含み、電子回路部分101は、DPOバス104の少なくとも一部を含む。ICチップ100の一部の実施形態は、コンピュータ環境110内に含まれる。電子回路部101は、DPOバス104を含むことができる。DPOバス104は、1つのDPOルートコレクタ装置103、およびいくつかのDPO端末装置装置102を含むと共に、(図2に示す)DPOブリッジ装置252を1つまたは複数含み、あるいはこれを全く含まない。ICチップ100の一部のバージョンは、本開示で説明するようにコンピュータ環境110内に位置するのではなく、電子装置、制御装置、電子機械装置、マイクロコンピュータ、マイクロプロセッサ、および半導体処理を用いて製造される種類のICチップを使用する公知の装置のいずれかの内にも存在し得る。
DPOバス104は、DPO端末装置装置102の一部を含み、一部を除外することができる。例えば、DPO端末装置装置102のDPO装置ノード122は、DPOバス104内に含まれるが、DPO端末装置装置102のオンチップ装置120は、DPOバス104内に含まれない。オンチップ装置120の別の実施形態は、DPOバス104に異なる全体的機能を付与する異なる機能および構造を提供することができる。各オンチップ装置120またはDPO端末装置装置102は、実際には、別個のアプリケーションプログラム、あるいはアプリケーションプログラムの一部として動作するように構成され得る。したがって、個々のICチップ100を、ソフトウェアアプリケーションプログラムが、現在コンピュータまたは計算処理装置に読み込まれ、あるいはダウンロードされる方式と類似の機能的な方式で、個々のオンチップ装置120と共に構成することができる。
本開示内では、DPO端末装置装置102、オンチップ装置120、および/またはDPO装置ノード122の構造を、ソフトウェア、ハードウェア、ファームウェア、またはそれらの様々な組合せとして存在するように構成することができる。各DPO装置ノード122は、それに関連するオンチップ装置120と、図1に示すDPOルートコレクタ装置103(または図2に示すDPOブリッジ装置252)のコレクタノードとの間の通信を提供するように構成される。
図2に示す各独立バストポロジ210、211は、(DPOルートコレクタ装置103およびDPOブリッジ装置を含む)コレクタノードを備える任意の装置、およびそのコレクタノードから直接係属するDPO端末装置102内のオンチップ装置120を含む。DPOバス104は、DPOルートコレクタ装置103の下に何個のオンチップ装置120および何個のDPOブリッジ装置252が配置されるかによって決まる様々な独立バストポロジを提供するように配置され得る。例えば図1には、(各々が個々のDPO端末装置102内にある)2つのオンチップ装置120が、DPOルートコレクタ装置103に係属するものとして示されている。これら2つのオンチップ装置は、DPOルートコレクタ装置103のコレクタノードから形成されたその独立バストポロジ内のオンチップ装置120を表す。装置の設計規則に基づく任意の単一のDPOルートコレクタ装置103には、限られた数のDPO端末装置102だけしか直接接続できないため、DPOバス104の1つの独立バストポロジには、付け加えられるオンチップ装置120の数に限度があり、したがって、その拡張性は限られている。
オンチップ装置120の数が増すに従って、DPOルートコレクタ装置103に直接係属する独立バストポロジ内に全てのオンチップ装置120を含むことは、さらに難しくなる。図2に示すDPOブリッジ装置252は、DPOルートコレクタ装置103のコレクタノード129といくつかのDPO端末装置102との間のブリッジングおよび/または経路指定機能を提供することができる。
各DPOブリッジ装置252は、オンチップブリッジ装置250、コレクタノード214、およびDPO装置ノード122を含む。構造的に、各オンチップブリッジ装置250内のコレクタノード214は、DPOルートコレクタ装置103内のコレクタノード129と見なされ、コレクタノード129のように動作し、コレクタノード129と同様な方式で製造されることができるものである。構造的に、DPOブリッジ装置252内の各DPO装置ノード122は、DPO端末装置102内のDPO装置ノード122と見なされ、DPO装置ノード122のように動作し、DPO装置ノード122と同様な方式で製造されることができるものである。
図2に示す各独立バストポロジ210、211は、(1つまたは複数の)DPOブリッジ装置250を使用する異なるオンチップ装置120と、DPOルートコレクタ装置103と、DPO端末装置102との間のポイントツーポイントトポロジとして現れる。本開示でDPOバス104との関連で説明する概念は、ポイントツーポイント以外のトポロジ(トークンリングおよびスパイラルトークン、変更可能なトポロジ、本開示において示すトポロジの組合せなど)にも適用可能であると想定される。DPOルートコレクタ装置103、DPO端末装置102、およびDPOブリッジ装置250の別の実施形態では、DPOバス104をこれら3つの装置を構成ブロックとする異なるトポロジに統合して形成することができる。
DPOバス104に選択された様々なトポロジの一部の実施形態は、(例えばシステム設計者によって)配線によって接続された構成をとると想定される。したがって、様々な接続、回路、およびネットワークトポロジを、ICチップ100上に配線によって接続することができる。この実施形態では、DPOバス104のトポロジは、それが配線された後では(置き換え、付加、あるいは除去を可能にするDPOバスの実施形態において、個々のオンチップ装置120またはDPOブリッジ装置252を物理的に置き換え、付加し、あるいは除去することができる場合を除き)、変更することが難しい。この配線接続によるトポロジを用いると、各オンチップ装置120上で動作するアプリケーションプログラムは、図1に示すチップ100上のDPOバス104のトポロジに関するどんな詳細も知る必要がない。
所望のDPOバス操作のために、各DPO装置ノード122は、DPOルートコレクタ装置103またはDPOブリッジ装置252内のコレクタノードに電子的に結合される。DPOブリッジ装置252内のコレクタノード214は、DPOルートコレクタ装置103内のコレクタノード129と同様な方式で接続されたオンチップ装置120と機能的にインターフェイスする。
インターフェイスの下からDPOブリッジ装置252のコレクタノード214と通信する任意の装置は、図2に示すDPOルートコレクタ装置103のコレクタノード129との場合と同様にやりとりする。インターフェイスの上からDPOブリッジ装置252のDPO装置ノード122と通信する任意の装置は、DPO端末装置102のDPO装置ノード122との通信と同様な方式でやりとりする。図2に示すように、DPOブリッジ装置252のDPO装置ノード122をDPOルートコレクタ装置103(または別のDPOブリッジ装置252)のコレクタノード129の下に接続することにより、いくつかのオンチップ装置102を、1つまたは複数の独立バストポロジでDPOブリッジ装置252のコレクタノード214に従属的に接続することができる。個々のDPOブリッジ装置252に係属する全てのオンチップ装置120は、それぞれ、DPOブリッジ装置252と同じ装置と通信するオンチップ装置120の追加の独立バストポロジを形成するようにクラスタ化されているとみなされ得る。
本開示の一態様では、DPO端末装置102、DPOルートコレクタ装置103、およびDPOブリッジ装置252の全てを、利用可能な、よく理解されている半導体処理技法を用いてICチップ100内に製造され、かつ/またはそれに連結することができる。半導体処理技法として周知な技法を用いて、任意の所望のトポロジのDPOバス104と一緒にICチップ100を製造することが可能であり、本開示ではそれらについて詳細には説明しない。半導体処理には、(DPO端末装置102、DPOブリッジ装置252、およびDPOルートコレクタ装置103の様々なトポロジを含むことができる)DPOバス104を含むICチップ100を製造することが可能な技法を含む。
図2に示す個々の独立バストポロジ210、211の選択は、DPOバス104を介して特定のオンチップ装置120と通信するアプリケーションプログラム、オペレーティングシステム、またはその他の装置に対してシームレスである。したがって、各オンチップ装置は、そのオンチップ装置を含む独立バストポロジがポイントツーポイント、リング、またはその他のトポロジで配置されているか否かを示すためのソフトウェアやハードウェアなどを備える必要がない。
DPOバス104のポイントツーポイントトポロジおよびリングトポロジは、図2に示すように、独立バストポロジ210および独立バストポロジ211としてオンチップ装置120を区分化することを可能にする(リング、可変などのDPOバスを用いたそれ以上の独立バストポロジも存在することができる)。独立バストポロジ210、211各々は、そのDPO端末装置102内に収容された1つまたは複数のオンチップ装置120を含む。各独立バストポロジ210、211は、1つのDPOブリッジ装置252も含むことができる。
DPOバス104内の様々な装置には、様々な種類のノードが位置することができる。各DPOルートコレクタ装置103はコレクタノード129を含む。各DPOブリッジ装置252は、DPO装置ノード122およびDPO装置ノード214を含む。各DPO端末装置102はDPO装置ノード122を含む。また、DPOバストポロジ200は、図1に示すものと類似のICチップ100上に配置された複数のDPO端末装置102も含む。各コレクタノード129または214は、1つまたは複数の他の従属装置(DPO端末装置102またはDPOブリッジ装置252)との間でデータ収集/データ伝送を行う。したがって、コレクタノード214、129は、同じ独立バストポロジ内の各装置(DPO端末装置またはDPOブリッジ装置)のDPO装置ノード122と共にデータを転送するように働く。(DPOブリッジ装置252のDPO端末装置102に含まれる)各DPO装置ノード122は、同じ独立バストポロジ内の上に隣接する装置中のそれぞれのコレクタノード129、214と共にデータを転送するように働く。DPO装置ノード122は、図1に示したものと類似の1つまたは複数の機能的オンチップ装置120を含む。
図2の各独立バストポロジ210、211に含まれるDPO端末装置102は、DPOバス104内に設けられた装置およびデータ接続を用いて(直接的または間接的に)DPOルートコレクタ装置103に(図2ではその下に)係属する。第1の独立バストポロジ210は、複数のDPO端末装置102および少なくとも1つのDPOブリッジ装置252を含む。第2の独立バストポロジ211は、DPOブリッジ装置252を介してDPOルートコレクタ装置103に間接的に係属する複数のDPO端末装置102を含む。したがって、第2の独立バストポロジ211中のどのオンチップ装置120もDPOルートコレクタ装置103と直接通信しない。
各DPOブリッジ装置252を、追加のDPOブリッジ装置252および/またはそれに接続されたDPO端末装置102を持つように構成することができる。各DPOブリッジ装置252の付加は、追加のDPOブリッジ装置に追加のDPO端末装置102を接続することにより、オンチップ独立バストポロジ211を追加することができる。いくつかのブリッジを直列に接続して、さらに多くの独立バストポロジを形成することができる。
通信パス209は、図2に示す第2の独立バストポロジ211内で、各DPO端末装置102の各DPO装置ノード122と、接続されたDPOブリッジ装置252のコレクタノード214との間のパケット通信を提供する。通信パス208は、第1の独立バストポロジ210内で、(各DPOブリッジ装置252または各DPO端末装置102の)各DPO装置ノード122と、DPOルートコレクタ装置103内のコレクタノード129との間のパケット通信のために設けられる。図2には2つの独立バストポロジ210、211だけしか示されていないが、任意の所与のDPOバス内に1つ、2つ、3つ、またはそれ以上の独立バストポロジが存在し得ることを理解すべきである。
DPOバス104内で適正なトポロジ機能を提供するために、各上位通信パス208(すなわち、上位の独立バストポロジ内の通信パス)は、どの下位番号の通信パス209よりも多い、またはそれと等しいビット数を伝送し得るものと想定される。つまり、DPOルートコレクタ装置103により近い通信パス208は、順次、任意の下位の通信パス209よりも大きい帯域幅でデータを搬送することができるように構成される。
(例えば、16ビット、32ビット、64ビットなどの)通信パス208および209の構成は、チップ上の様々な各オンチップDPO装置ノード122に必要とされる帯域幅に基づき、チップ設計者が選択することができる。このように、異なる通信パスで複数のパケットサイズを用いることにより、ブリッジ設計者は、アプリケーションプログラム、オペレーティングシステム、あるいは任意のソフトウェアがDPOバス104の具体的なトポロジを認識することのない、簡略化した経路指定を行うことができる。
DPOバス104の一部の実施形態は、オンチップトポロジに応じて、異なる通信パス208、209に、構成可能なデータ幅(例えば、64、32、16ビット)などの付加的な特性を提供する。本開示内では、データ幅はパケットサイズにも関連する。例えば、図2に示す一実施形態では、DPOルートコレクタ装置103と最上位独立バストポロジ210の間のノード129、122、および214の構成は、一実施形態ではそれぞれが64ビット接続を含む通信パス208を介して通信を行う。次の独立バストポロジ211中の装置102および252は、その実施形態では32ビット接続を含む通信パス209を介して通信を行う。
一実施形態では、図2に示すDPOルートコレクタ装置103、DPOブリッジ装置252、DPO端末装置102、独立バストポロジ210、211、および通信パス208、209を含むオンチップポイントツーポイントトポロジ200は、本質的に例示のためのものであり、範囲を限定するためのものではない。したがって、提供され得る装置、ノード、独立バストポロジ、および通信パスの任意の類似のトポグラフィ(topography)は、本開示の対象範囲内に含まれる。一実施形態では、DPOバス104内の装置および全てのノードが、データを伝送するためにパケット伝送を利用する(信号は非パケット形式で伝送され得る)。
一実施形態では、通信パス208、209は、固定され、あるいは配線によって接続されている。他の実施形態では、、DPOバス内の装置/ノードを物理的に変更することにより、あるいはユーザが、DPOバスを形成する装置103、252および/または102の動作を変更するようにソフトウェア、ファームウェアおよび/またはハードウェアを再構成し得るようにDPOバスを構成することにより、経路指定トポロジを変更することができる。本開示の範囲で、(図1に示す)チップ100上に様々な装置トポグラフィを提供することができる。
第2の独立バストポロジ211に示す各DPO端末装置102は、同じDPOブリッジ装置252と通信する。他のDPOブリッジ装置252は、DPOルートコレクタ装置103のコレクタノード129または第1の独立バストポロジ210中の別のDPOブリッジ装置252に直接係属するように構成され得る。したがって、第1の独立バストポロジ210内のDPOブリッジ装置252に直接係属する任意のDPO端末装置102またはDPOブリッジ装置252(およびそれに含まれるオンチップブリッジ装置250)は、第2の独立バストポロジ内に含まれるはずである。
(複数の独立バストポロジ210、211を含む)DPOバストポロジ200は、通信パス208、209に沿ったDPO端末装置102(およびそれぞれのオンチップ装置120)への通信手段を提供する。所与のトランザクションを、1つまたは複数のDPOバス104データ転送トランザクションによって達成することができる。図2に示すDPOバス104と様々な種類のノード129、122、214との間のオンチップトポロジの変形形態は、本開示に示す操作機能の様々な実施形態を提供する。
図1に示すチップ100が設計され、製造される際に、各独立バストポロジ210、211の異なる種類のトポロジ間で一部のDPO装置ノード122およびコレクタノード214を変更することができるネットワークトポロジを構成することも可能である。例えば、装置の第1のレベルにあり、コレクタノード129と通信するDPO端末装置102は、通信パス208を使用する。しかしそれとは別に、そのオンチップトポロジは、このDPO装置ノード122を、図2に示す通信パス209を使用してDPOブリッジ装置252のコレクタノード214と通信するようにも構成することができるはずである。
したがって、DPOバス104は、様々なDPO端末装置102、DPOルートコレクタ装置103、およびブリッジ装置250間のデータ通信を提供する。一態様では、DPOバス104は、様々なオンチップ装置120間のデータ転送を実行し、またはそれを円滑に行う。したがって、別の一態様では、DPOバス104は、オフチップブリッジ117およびオフチップバス106を介した、任意のオンチップ装置120と(それぞれ、チップ外に位置する)メモリ114、入出力回路118、および/またはCPU116との間のデータ転送を実行し、またはそれを円滑に行う。
一実施形態では、図1に示すアービタ装置134は、各アクセス側装置に一意のアクセス時間スロット群が提供されるようにすることにより、(図3および4との関連で示すように要求信号を送信しており、許可信号の受け取りを待っている)どの2つのアクセス側オンチップ装置120もバス装置に同時にアクセスしないことを保証する個々のバス許可信号を各オンチップ装置に提供する。
各DPOバス104は、本開示内で説明する様々な機能を提供することができる。そのような機能には、それに限定しないが、以下のものが含まれるはずである。
a)各DPO端末装置102とDPOバス104の間の上位のレジスタ間通信。このアービトレーション方式(図1に示すアービタ134により提供されるものとして、図31との関連で示す一実施形態)は、最上位のレジスタ間通信を利用して、アービタ134に要求信号を送るオンチップ装置によってDPOバス104へアクセスできるようにする。アービタ134は、任意の2つの装置がDPOデータバスに同時にアクセスしないように調整し、オンチップ装置に許可信号を送信する。本開示内では、「レジスタ間」という用語は、オンチップ装置とDPOバスとの間の通信において、マルチプレクサ/デマルチプレクサを例外として、オンチップ装置中の装置レジスタがDPOバス中のバスレジスタと直接通信を行う際に用いる。これは、本開示において図4との関連で示すように、1対のバスレジスタがDPOバス内の論理部を取り囲み、1対の装置レジスタがオンチップ装置内の論理部を取り囲むことを意味する。DPOバスに関する論理が、(ソフトウェアおよびファームウェアも使用することができるが)好ましくはハードウェア接続を用いてバスレジスタと共に使用されるように同じチップ上に設計され、オンチップ装置に関する論理も、好ましくはハードウェア接続を用いて装置レジスタと共に使用されるように同じチップ上に設計されるため、論理部は極めて高速にインターフェイスすることができる。最上位のレジスタ間通信は、DPOバス104の多くの実施形態を介した通信の速度および信頼性を高めることができる。
b)DPOバスの多くの実施形態では分割データ転送を使用することができる。アービタ134を用いる分割データ転送の一部の実施形態では、以前に送信された第1のデータパケットが受け取られたと確認される前に、DPOバスを介して第2のデータパケットを送信することができる。分割トランザクションとは、要求信号に応じて許可(完了)信号を必要とするトランザクションである。分割メモリ書込み操作では、送信側は、許可信号が完了したことの確認を受信することを期待する。(分割トランザクションとは異なる)通知データ転送とは、許可または完了を必要としないデータ転送である。例えば、通知メモリ書込み操作では、送信側は、許可信号が完了したか否かの確認を受信することを全く期待しない。
c)パケットトランザクション(packet based transaction)構造とは、許可信号および/または要求信号で送信されたデータが、物理的にパケットの形であることを意味する。パケット構造は、一部の従来技術のバス構成に用いられた側波帯信号(side−band signals)を不要にする。というのは、そのような情報をパケットヘッダの構造に含むことができるからである。パケットトランザクション構造に基づくDPOバスは、アプリケーション層レベルで機能するとみなされ得る。というのは、データを移送するように働くだけの従来のバスプロトコルではなく、オンチップ装置が機能を提供することができるからである。例えば、ユーザは、オーディオシステム、ビデオシステム、フラッシュメモリ装置など一部のオンチップ装置を用いてDPOバス104を構成することができる。パケットトランザクションは、ほとんどの場合、分割トランザクションである。
分割または通知データ転送機能およびパケットトランザクション構造機能は、DPOバス104の多くの実施形態で相互に関連している。分割データ転送は、要求が送信され、しばらくしてから許可(すなわち完了)が受け取られることを示す。というのは、パケットに基づくことが、要求および許可がパケットとして形成される(それらが、側波帯信号などを用いて伝達されない)こと意味するからである。パケットに基づく構造は、別個のパケットを送信する(後で、その別個のパケットを受信する)ことができるため、トランザクションを分割するのに適している。
そのようなDPOバス104の機能は、それに限定されないが、以下の一部のものまたは全てを用いて実現できるネットワークに適用可能である。
a)同じチップ上で異なる装置に送信するために使用される可変DPOバス幅。例えば、16、32、および/または64バイトといったDPOバス幅を、異なる独立バストポロジまたは別個の装置に使用することができる。
b)同じチップ上で異なる装置に送信するのに使用され得る(例えば75、125、150MHzといった)可変DPOバス周波数。
c)周辺装置相互接続(PCI)、PCI−X、およびPCIエクスプレス装置およびプロトコルと統合することができるDPOバス構成。
d)可能な範囲での非PCI装置およびプロトコルとのDPOバス統合。
e)可能な範囲での側波帯割り込みまたは帯域内割り込みの使用(側波帯はパケット伝送には使用されないため)。
本開示ではこれらの機能について説明する。これらの機能の全て、または一部の組合せを用いて、DPOバス104の様々な実施形態を提供することができる。例えば、本開示の対象範囲内に含まれるDPOバス104を、これらの機能の1つ、複数、または全てを用いて提供することができる。したがって、1つのDPOバス104に関連付けられた1つのICチップ100は、1つまたは複数のDPO端末装置102を含むネットワーク間のオンチップ通信を実装し、提供することができる。
図3および4に、特定の論理部と関連付けられたレジスタの使用がDPOバス104の動作特性をどのように決定し得るかを示す。図3および4は、データパケットの転送に用いられるパケット転送部301を含む。図3は、シグナリング部302の一実施形態を含み、図4には、シグナリング部402の別の実施形態を示す。シグナリング部(図3の302および図4の402)は、パケット転送部301を介して所望の通信を確立するために使用される。パケット転送部301は、DPOバス104の通常動作時にパケット化データを転送するのに使用される。
パケット転送部301は、図3と図4とで同一のものとして示されており、レジスタ348、パケットデータ接続350、任意選択のマルチプレクサ352、レジスタ354、レジスタ356、パケットデータ接続358、およびレジスタ360を含む。任意選択のマルチプレクサ352およびレジスタ354は、パケット受信器370に含まれる。レジスタ356はパケット発生器372に含まれる。
レジスタ348、354、356、360は、別の場所に転送されるデータ、または別の場所から受け取り中のデータを短時間だけ収容することができるように構成される。パケット受信器370は、パケットの形でレジスタ348からパケットデータ接続350を介して送信されるパケット化データを受け取り、それを一時的に収容するように構成される。パケット送信器372は、パケットデータ接続358を介してオンチップ装置120内のレジスタ360に送信される前にレジスタ356内に一時的に収容されるパケットの形のデータを生成する。パケットデータ接続350は、パケットデータ接続358との閉じたループを形成しない。
図3との関連で示すシグナリング部302は、レジスタと論理部との相対的な位置関係から、図4との関連で示す信号交換部402と異なる方式で動作する。図3および4に示すように、DPO端末装置102の各オンチップ装置120は、少なくとも1つのレジスタ(図3の330および図4の407、430)を含む。各DPOバス104は、少なくとも1つのレジスタ(図3の332、図4の406、432)を含む。図3および4に、図1に示す電子回路部に組み込むことができる、電子的に結合されたDPOバス104およびオンチップ装置120の2つの実施形態を示す。
図3に、接続確立部302を提供するオンチップ装置120およびDPOバス104の一実施形態を示す。図1に示すオンチップ装置120とDPOバス104が関与する図3の接続確立部302の実施形態は、レジスタ出力のみの通信設計を提供する。図4に、上位のレジスタ間通信を提供するオンチップ装置120とDPOバス104の論理およびレジスタ構成を示す。図4に示すレジスタ間通信は、DPOバス104内で、優れた、より信頼性の高い動作を提供するものと想定され、本開示の対象とする範囲に含まれる。図3との関連で示すレジスタ出力のみの通信設計も、本開示の対象とする範囲に含まれる。
図3に、(DPOバスを介してオンチップ装置120にデータ通信を提供する)図1に示す電子回路部101の一部として含むことができる接続確立部302の一実施形態を示す。接続確立部302は、アウトバウンド、インバウンド駆動装置304、308、およびアウトバウンド、インバウンド論理部309、310を含む。本開示内では、図3の309、310との関連で示す用語の「論理部」は、各論理部内の論理を非同期に動作するように構成するため、非同期論理を用いて動作する。図3との関連で示すように、駆動装置304はレジスタ330を含み、駆動装置308はレジスタ332を含む。
図3に関連して説明する接続確立部302の実施形態に示すように、オンチップ装置120は、駆動装置304および論理部309を含み、DPOバス104は、論理部310および駆動装置308を含む。一実施形態では、DPOバス104は、論理部310および駆動装置308を含む。一実施形態では、駆動装置304はレジスタ330を含み、駆動装置308はレジスタ332を含む。
図3に関連して説明する接続確立部302の実施形態に示すように、(オンチップ装置120からDPOバス104に出て行く)第1方向の通信パス313は、オンチップ装置120の駆動装置304から論理部310を通ってレジスタ332に至る。第1方向の通信パス313は、オンチップ装置120中の駆動装置304からDPOバス104中の論理部310に要求メッセージ305を送信するように構成される。DPOバス104中の論理部310は、DPOバス中の駆動装置308と通信する。
論理部310の複雑度に応じて、要求メッセージ305がレジスタ332に到達するのに少なからぬ数のクロックサイクルを必要とする場合がある。(DPOバス104からオンチップ装置120に入ってくる)第2方向の通信パス312は、駆動装置308から論理部309を通って装置レジスタ330に至る。装置レジスタ330は、一実施形態では、論理部309内に含まれる。したがって、第2方向の通信パス312は、駆動装置308から論理部309に許可信号311を送信するように構成される。論理部309の構成に応じて、許可信号311がレジスタ330に到達するのに少なからぬ数のクロックサイクルを必要とする場合がある。
接続確立部302の実施形態は、実際には多くの場合、要求信号305および許可信号311をそのそれぞれの通信パス313および312に沿って送信するのに必要とされる、理論的に最短で2クロックサイクルのターンアラウンドより相当に多くの時間を必要とする場合がある。この追加の時間の大部分は、論理部310を通って送信される要求信号305の非同期論理遅延によるものである。したがって、論理部内で送信される要求信号がレジスタ306に進むまでの時間は、少なからぬ数の追加のクロックサイクルを必要とする場合がある。
図3との関連で示すこの非同期論理遅延は、本開示の図4で示す論理部410の実施形態では生じない。というのは、レジスタ406、432は、両方とも、この論理部の外にあるからである。オンチップ装置120とDPOバス104との間のパケットデータ通信の信頼性および速度を高める(そのため、一般に、DPOバス104の速度と信頼性も高める)ことができるのは、このレジスタの論理部からの分離である。本開示では、このレジスタの論理部からの分離を、最上位でのレジスタ間通信と呼ぶ。
図4に、図1に示すDPOバス104が、オンチップ装置120と共に最上位でのレジスタ間構成を有するように構成されているレジスタバス通信部402の一実施形態を示す。本開示内では、図4の409、410との関連で述べる「論理部」という用語は、装置構成などにおける任意の種類の論理回路、ゲート、装置などをいう。
レジスタバス通信部402は、アウトバウンド、インバウンド駆動装置404、408、アウトバウンド、インバウンド論理部409、410、アウトバウンド、インバウンド装置レジスタ406、407を含む。第1方向の通信パス411は、駆動装置404から装置レジスタ406を経て論理部410に至る。第1方向の通信パス411は、要求信号405を送信するように構成される。任意選択で、図7との関連で示すマルチプレクサを、第1方向の通信パス411内で適用することができる。このマルチプレクサは、いくつかのオンチップ装置120が、1つのDPOバス104と通信し、その論理を使用することを可能にする。第2方向の通信パス412は、駆動装置408から装置レジスタ407を介して論理部411に至る。第2方向の通信パス412は、許可信号415を送信するように構成される。オンチップ装置120中の駆動装置404はレジスタ430を含む。DPOバス104中の駆動装置408はレジスタ432を含む。第1方向の通信パスに挿入されたマルチプレクサを含むDPOバスの実施形態では、第2方向の通信パス412にデマルチプレクサ(図示せず)を適用することができる。
図4との関連で示すレジスタバス通信部402の実施形態は、レジスタ430からレジスタ406への最上位でのレジスタ間通信を提供する。本開示内では、「最上位でのレジスタ間通信」という用語は、マルチプレクサまたはデマルチプレクサを例外として、送信側レジスタと受信側レジスタの間で論理が適用されない通信を指す。送信側レジスタと受信側レジスタの間に(マルチプレクサとデマルチプレクサ以外の)論理部を挿入すると、1クロックサイクルを超過する伝送時間に関して若干の不確実性が生じる。送信側レジスタと受信側レジスタとの間の論理部を除去することにより、送信側は、許可信号への応答(または応答データパケット)を確実に受信することができる。図4との関連で示すレジスタバス通信部402の実施形態は、レジスタ432から装置レジスタ407への最上位でのレジスタ間通信も提供する。レジスタ406とレジスタ432の間に論理部410を配置することにより、オンチップ装置120からDPOバス104にレジスタ間通信が提供される。したがって、データがレジスタ406からレジスタ432まで進むのには、通常、1クロックサイクルだけしか必要としない。レジスタ407とレジスタ430の間に論理部409を配置することにより、DPOバス104からオンチップ装置120にレジスタ間通信が提供される。したがって、データがレジスタ407からレジスタ430まで進むのには、通常、1クロックサイクルだけしか必要としない。
各論理部409、410は、オンチップ装置120、DPOバス104のそれぞれに組み込まれているとみなされ得る。したがって、各論理部409、410は、電子回路部101の一部に関連付けられた論理を提供するように構成される。図4に示すレジスタバス通信部402の構成においてレジスタ間通信を用いると、DPOバス104は、レジスタ間の遅延を最小限に抑えることにより最上位でのチップの経路指定を容易に行うことができる。最上位レジスタ間の遅延によって、通常の状況下でのバスの最大周波数が決定される。DPOバス104の最上位のレジスタ間でのどんな遅延も、経路指定遅延に左右される。図3に示すレジスタ出力のみの設計での遅延は、経路指定遅延と論理部の非同期論理遅延の両方に左右される。図4の論理部409、410は、DPOバス104とオンチップバスの一部として作製することができる。というのは、各論理部は、それぞれ同じオンチップ装置120とDPOバスとの中に位置する2つのそれぞれのレジスタの間に位置するからである。したがって、論理部409、410の論理を、ハードウェア、ソフトウェア、およびファームウェア技法を用いて極めて高速になるように作製することができる。それに比べて、図3の各論理部310、309は、各レジスタ332、330の上流側であるが、どのレジスタの下流側でもない。したがって、論理部310、309は、一般に、要求信号が送信された後で許可信号を返すためにより多くのクロックサイクルを必要とする。
図3のDPOバス104の実施形態も図4のDPOバス104の実施形態も、バスから信号を受け取り、その信号に基づくアクションを実施する機構を提供する。実施されるアクションは、図3の実施形態の論理部309、310、および図4の実施形態の論理部409、410に基づくものである。図3の論理部309、310、および論理部409、410は、オンチップ装置120およびDPOバス104のコア論理を表す。
図3の実施形態において、各論理部310、309は、駆動装置304とレジスタ332との間、駆動装置308とレジスタ330との間の各々に挿入される。図4の実施形態において、各論理部410、409は、駆動装置404とレジスタ406との間、駆動装置408とレジスタ407との間の各々には位置しない。そうではなく、図4の実施形態では、各論理部410、409は、図3との関連で示す実施形態で生じる可能性がより高いと考えられる非同期論理遅延を大幅に低減するように、それぞれの駆動装置404、408からみてそれぞれのレジスタ406、407の下流側に位置する。
したがって、レジスタバス通信部402の図4の実施形態では、それぞれの論理部410、409は、(それぞれの駆動装置404、408中に位置する)それぞれのレジスタ430、432からそれぞれのレジスタ406、407への非常に高い水準でのレジスタ間通信を提供する。
それと比べて、図3では、それぞれの論理部310、309は、最上位でのレジスタ間通信を示すようには位置されていない(というのは、論理部310、309が、物理的に、それぞれの装置レジスタ332、330の下流側にはないからである)。したがって、接続確立部302の図3の実施形態での通信は、非同期論理遅延を許容するレジスタ出力のみの設計として提供される。
(図3に示す)接続確立部302を有するDPOバス104の実施形態を用いて行われるメモリトランザクションは、要求から確認を受信するまでに最短で2クロックサイクルを必要とするが、通常は、相当大幅な遅延が発生することになる。つまり、オンチップ装置120により要求305が送信されてから、(それより相当多くなる可能性が高いが)最短で2クロックサイクル以内にオンチップ装置120に許可信号311が返される。伝送速度を大幅に減速させるのは、この遅延の不確実性である。
そのハイ信号レベルが論理部310に適用されるとすぐ、この2クロックサイクルの間に、駆動装置304が第1のクロック信号でその要求信号をハイにする。論理部310内でのデータの存続時間によって異なるその後のクロック信号では、DPOバス104内の駆動装置308は、要求305がハイになっているか否かを判定することができる。要求305がハイになっていた場合、駆動装置308は、その許可信号311をハイにする(これを論理部309により検出することができる)。要求305がハイになっていない場合、駆動装置308は、その許可信号311をローのままにする。したがって、図3に示す論理部310の実施形態は、通常は、相当数のクロックサイクルだけ延長される最短2クロックサイクル以内の許可信号311の中に要求信号305の状態を反映することができる。本開示内での「ハイ」および「ロー」という用語の使用は任意であり、範囲を限定するためのものではなく、DPOバス104内の2つの互いに異なる書込み可能な/読取り可能な信号レベルを示すためのものである。
それに比べて、図4に示すレジスタバス通信部402の実施形態は、オンチップ装置120への要求405に対する許可信号415を完了するのに最短で4クロックサイクルを要する。一実施形態では、要求信号405は、それがハイになることにより提供される。要求信号405がハイになったことは、様々なときにレジスタ406および論理部410に反映される。
要求信号405がハイになったことに基づき、論理部は、(レジスタ432を含む)駆動装置408とレジスタ407を介して論理部409に送信される許可信号415を生成する。オンチップ装置120の論理部409が許可信号415を受け取った(受け取った許可信号がハイになった)ことを、要求信号405への完了として反映することができる。つまり、図4に示すレジスタ通信部402を有するDPOバス104の実施形態を用いてメモリトランザクションが行われる場合、送信側オンチップ装置120の論理部409が、要求信号405の送信に応答して完了(許可信号415)を受信するのに、最短で4つのクロックサイクルを要する。
次に、図4に関連して、非同期論理遅延を抑制するこの4クロックサイクルの最短期間について説明する。オンチップ装置120の論理部409が、(アービタ134にDPOバス104の使用を要求する)要求信号を送ることを決定すると、次の(第1の)クロックサイクル内で要求信号405が適宜ハイにされる。実際には、第1のクロックサイクル中に、オンチップ装置120は、DPOバス104のレジスタ406に要求信号を送信する。第1のクロックサイクルの後、要求405はレジスタ406に受け取られ、そこに格納される。
第2のサイクルで、ハイの要求信号405はレジスタ406から論理部410に転送される。したがって、第2のクロックサイクルの後、DPOバス104の論理部410は、要求信号405がハイになっていると判定する。したがって、DPOバスの論理部410は、要求信号405がハイになったことに応答して(ハイになるなどにより)許可信号415を生成することができる。オンチップ装置120内の論理部409で受信された許可信号415は、要求信号405に対する完了とみなされることができる。
第3のクロックサイクルで、DPOバス104の論理部410から送信される許可信号415は、オンチップ装置120に戻る。第3のクロックサイクルの後、レジスタ407は、許可信号415がハイであるか否かを反映する。
第4のサイクルにおいて、許可信号415のハイの状態がある場合、その許可信号415がレジスタ407からオンチップ装置120の論理部409に送信される。論理部409が許可信号415からハイの状態の受信は、要求信号405に対する完了として作用し、要求信号405が受信され、DPOバス104のためにアービタ134によって受け入れられていることを示す。したがって、図4に示すレジスタバス通信部402の実施形態は、最短で4サイクルのアービトレーション時間で要求信号に対する完了を提供することができ、オンチップ装置120内とDPOバス内の各論理部を取り囲む1対のレジスタを用いて、論理部が要求信号または許可信号を直接受信したときに発生する伝送遅延を抑えることにより遅延が抑制される。
要求信号(図3の305と図4の405)は、DPOバス104内のアービタへの要求として作用し、ある限られた期間だけDPOバスを要求しているオンチップ装置120にDPOバス104の使用を許可するよう求め、パケット通信を提供する。同様に、許可信号(図4の415と図3の311)は、DPOバス104のアービタ134からDPOバス104を要求しているオンチップ装置120へのDPOバス104の許可を完了する(または完了しない)ように作用する。
図3との関連で示すレジスタバス通信部302の実施形態は、要求信号から許可信号を返すまでに最短で2クロックサイクルを要するが、レジスタバス通信部の一部の実施形態は、非同期論理遅延のために、これらの最短クロックサイクル期間より長時間を必要とする場合がある。また、クロックサイクルが連続していないこともある。したがって、図3の実施形態の(例えば)許可信号への最短で2クロックサイクルでの完了は、実際にはコンピュータ動作での遅延、割り込み、処理遅延、データ伝送遅延などを含む非同期論理遅延として知られている原理に基づき、2、3、4、5、6またはそれ以上のクロックサイクルを必要とする場合がある。
図1に示す電子回路部101の実施形態において、オンチップ装置120のレジスタは、それぞれ、図4の駆動装置412のレジスタと最上位(または上位)での通信を行う。したがって、本開示で説明するDPOバストポロジ200の一部のバージョンは、図4に示す最上位でのレジスタ間通信を提供する。したがって、電子回路部101内のDPO端末装置102は、プロセスノード(これについては以下でより詳細に論じる)のトポグラフィを変更することにより、ほぼ任意のトポグラフィに作り上げることができ、加えて、異なるDPO端末装置102間で非常に高性能な帯域幅が達成される。
最上位レジスタ間の通信遅延は、どれも大部分は、経路指定遅延による結果である。しかし、図3に示すレジスタ出力のみの設計での遅延は、経路指定遅延と非同期論理遅延の両方により決定される。したがって、要求信号405が送信された後で許可信号415を受信するまでに必要とされる時間は、通常、図4の実施形態の方が図3の実施形態より大幅に短い。
一実施形態では、各DPOバストランザクションは、3つの異なる種類のパケットの1つを使用する。この実施形態におけるそれらの種類のパケットは、それぞれ、同じパケットヘッダサイズを有する。パケットヘッダを同サイズにすると、パケットヘッダの寸法を最初に考慮しないことによって、パケットヘッダをより効率よく処理し、取り扱うことができる。DPOバストポロジ200は、パケットベースのトランザクション構造、すなわち、PCI、PCI−X、PCIエクスプレスなどのプロトコルおよび装置との容易な統合、非PCIプロトコルおよび装置との容易な統合、ならびに側波帯割込の使用を提供する。
DPOバスを介したメモリへのトランザクションは、(読取り要求や書込み要求などの)メモリ要求を実行するオンチップ装置により行われる。この要求に応答して、オンチップ装置は、DPOバスを介して完了を受信する。
したがって、オンチップバスの一実施形態は、DPOバスを介してオンチップ装置からのメモリ読取り/書込み要求を実行する。DPOバスの一実施形態は、読取り要求が出された後で読取り完了を必要とすることにより分割トランザクションを回避するように作用する。したがって、データ転送の一バージョンは、要求および、場合により完了を含む。この状況では、要求は、完了パケット以外の任意のパケットであるとみなされることができる。パケットの一バージョンでは、各分割トランザクションは、3種類のパケット、すなわち、(アドレスにより経路指定される)アドレスパケット、(装置IDにより経路指定される)構成パケット、または(装置IDにより経路指定される)完了パケットの1つにより構成される。
オンチップ装置120は、他のどんなオンチップ装置とも無関係な読取り/書込み要求に応答した、そのオンチップ装置における読取り/書込み完了を受信する。一実施形態では、要求に対して完了が送られる所定時刻がない。従来のシステムにおけるオンチップ装置は待機し、別の要求を出す前に第1の要求の完了を受信した。
本開示の一実施形態では、第1の要求の完了を受信する前に第2の要求が転送することができる。本開示のDPOバス104の1つの利点は、アービトレーションを求める第2の要求が送信される前に(アービトレーションを求める)第1の要求信号に対する完了を受信する必要がないことである。これは、従来のシステムとは対照的に、より高い実効帯域幅を提供する。例えば、メモリへの要求が完了として戻るまで、ある定められた期間(2マイクロ秒など)のターンアラウンド時間があるシステムを考える。従来の装置は、別の要求を送信するためにその2マイクロ秒の遅延期間の間、待機する必要があった。パイプライン方式を利用する別の構成では、第2の要求は、第1の完了が戻る前に送信される。したがって、パイプライン方式はより高い実効帯域幅を提供することができる。
図2との関連で示したオンチップ装置120の複数の独立バストポロジ210、211を提供するためには、一部のオンチップ装置(例えば、オンチップブリッジ装置252など)が、マスタとスレーブの両方として働き、他のオンチップ装置(DPO端末装置102など)がスレーブとしてだけ作用することが必要である。本開示におけるマスタ装置とは、メモリへのトランザクションを生成することができ、あるいはメモリへのトランザクションのターゲットとなり得る装置であり、スレーブ装置とは、メモリへのトランザクションのターゲットだけにしかなり得ない装置である。したがって、装置がメモリ要求を出すこともそれを受信することもできる場合、それをマスタ装置とする必要があり、そうではなく、メモリ要求を受信することだけしかできない場合、それをスレーブ装置として構成することができる。DPOバス104の一実施形態は、マスタ装置とスレーブ装置とを区別せず、両方の装置がメモリへのトランザクションを生成することも、メモリへのトランザクションのターゲットとなることも可能である。
図5に、図1に示すICチップ100上の電子回路部101内の複数のオンチップ装置120間でのデータ通信を可能にするDPOバス104の一実施形態を示す。電子回路部101の一部は、中央処理装置(CPU)116およびメモリ装置114との通信を行うことができる。図1に示す電子回路部101は、DPOバス104(バックサイドバスなど)、複数のオンチップ装置120、および直接メモリアクセス(DMA)エンジン506を含む。DMAエンジン506は、オンチップ装置120とDPOバス104との間のデータ通信に関連するCPU116への負荷を大きく軽減するように構成される。
図5に示す電子回路部101の実施形態を考慮すると、そこでは、所与のオンチップ装置120がメモリ装置114を用いたメモリトランザクションを実行しようとし、次いで、CPU装置116がDMAエンジン506にその特定のトランザクションを実行するよう指示し、CPU装置がそのトランザクションを(通常は、DMAエンジン506からメモリ装置114への読取りを実行することにより)実行する。
図6のDPOバス104の実施形態は、DMAエンジンが共に、DPOバス104を介した経路指定に関連付けられたアクションの多くを実施することに伴うCPU装置116への負荷を軽減する、分散DMAアーキテクチャを提供する。図6に、DPOバス104が、図1にも示した電子回路部101内の複数のオンチップ装置120間のデータ通信を提供することができる、別の実施形態を示す。図6の実施形態では、図5に示すような区別されたDMAエンジン506が、各オンチップ装置120内に含まれる1つの統合されたDMAエンジン602で置き換えられる。したがって、図6の実施形態では、各オンチップ装置120がDMAエンジン602を含む。図6の電子回路部101の構成内では、各統合DMAエンジン602は、どのオンチップ装置120が別個のバスマスタになることも可能にする。図5の構成は、単一のバスマスタ装置(すなわち、DMAエンジン506)を含み、各オンチップ装置120は、スレーブ装置として動作する。
一実施形態におけるDMAエンジンを含まない任意の装置は、スレーブ装置として構成されているとみなされ得る。それに比べて、DMAエンジンを備える装置は、(DPOブリッジ装置252などの)マスタ装置とスレーブ装置との両方として構成されているとみなされ得る。バストラフィックを生成することができる(したがってバストラフィックを受信するはずである)装置はマスタ装置である。バストラフィックを受信することだけしかできない装置は、DPO端末装置102などのスレーブ装置である。
DPOバス104の一実施形態は、それぞれが複数の装置とやりとりするいくつかのブリッジを設けることにより(複数のマスタ装置とそれより少数のスレーブ装置とを含むことができる)分散DMAトポグラフィの改善を実現する。各ブリッジ装置は、マスタ装置とスレーブ装置との両方として構成される。
複数のオンチップ装置120を伴う図6のDPOバス104の実施形態は、設計段階でのオンチップトポロジの変更を可能にする。例えば、DPOバス104と直接通信する代わりに、ブリッジ、ルータ、またはその他の類似のネットワーク装置(DPOバス104との直接通信を行うブリッジまたはその他のネットワーク装置)と直接通信するように(1つまたは複数の)装置102を再構成することにより、図2に示したDPOバストポロジ200を変更することができる。
そのようなオンチップトポロジの変更は、通常、装置の動作前のDPOバス104の設計時に実施される。しかし、一部の実施形態では、改造バスのトポグラフィ的な再構成(retrofit bus topographical reconfiguration)も可能である。したがって、DPOバストポロジは、トポロジを変更することを可能にし、オンチップブリッジまたはルータとして動作する別の装置を介して装置への通信を提供することにより、その(1つまたは複数の)装置が、異なる(多くの場合下位の)独立バストポロジに実質的に付加される。
DPOバスの一部は、図7に示すマルチプレクサ部751を含むことができる。例えば、図4では、マルチプレクサは、レジスタ406の前の要求線405上に位置することができるはずである。マルチプレクサ部751は、(やはり図4に示す)入力レジスタ406、マルチプレクサ750、(やはり図4に示す)複数の駆動装置404を含む。本開示内では、マルチプレクサ750は、一般に、複数の駆動装置404からの信号を合成するように作用する。要求線にマルチプレクサ部751を含む実施形態は、レジスタ407の前の許可線415にデマルチプレクサも含む。多重化プロトコルと逆多重化プロトコルとのどちらを要求するかは、DPOバス104を介して移送されるパケット化トラフィックと一貫した判断であるべきである。一バージョンでは、マルチプレクサ750を、図1に示すDPOバスのアービタ134の制御下で(複数の信号を合成するだけの)ダム処理を実行しているとみなすことができる。
一実施形態では、図7に示すマルチプレクサ750は、他の装置に比べて低い伝搬遅延/時間定数と共に構成される。このマルチプレクサを、図1に示すDPOバスアービタ134によって制御されるダム非同期マルチプレクサであるとみなすことができる。このDPOバスアービタ134は、どのデータ線をラッチイン(latch in)すべきか選択するために用いられる。性能を高めるために、マルチプレクサ750は、できるだけ少ない均一な遅延となるように設計される(と共に1クロックサイクル以内で操作すべきである)。
マルチプレクサ750は、所与の下流側駆動装置から出力データバスを選択することができる。多くの実施形態において性能を向上させるために、このマルチプレクサを、チップの周りに分散するのではなく、受信側レジスタの隣に物理的に配置する。例えば、多くの実施形態では、マルチプレクサ750は、図1および2に示すDPOルートコレクタ装置103内のコレクタノード129の一部として、あるいは図2に示すDPOブリッジ装置252のコレクタノード214の一部として組み込むことができる。
本明細書で説明するDPOバス104構成の様々な実施形態では、(レジスタ間通信を用いて)完了パケットを読み取るのに、装置に向けられた読取り要求パケットに続いて最短で8システムクロックサイクルを要する。この8クロックサイクルは、(図3または4の358などを介して)読取り要求を送信するための2クロックサイクルと、アービトレーションを提供する(図4に示す405、415など)ための4サイクルと、(図3または4の350などを介して)読取り完了を送信するための2サイクルを含む。したがって、読取り要求が送信されてから対応する完了が受信するまでの合計時間は、最短で8クロックサイクルである。図3および4の実施形態は、パケット転送部301の最上位において最上位のレジスタ間通信を提供するため、DPOバスとオンチップ装置120との論理からもたらされる追加の遅延は著しく低減される。したがって、パケット転送部301は、レジスタ間構成に基づく極めて高速で、一貫したターンアラウンドを提供する。したがって、いくつかの装置では、伝搬遅延の影響が増大し得る。図2に示すようにブリッジ/ルータなどを用いて接続された装置の複数の独立バストポロジを使用するDPOバス104構成では、信号が規則的に横断するオンチップ装置120の複数の独立バストポロジ210、211のために、マルチプレクサ750のタイミング要件がより顕著になる。
DPOバス104の一部の実施形態は、特に分散DMAに基づくICのために設計された、パケットに基づくオンチップバスである。DPOバスの別の実施形態は、様々な上位特性を有する。DPOバスの一部のバージョンは、分散直接メモリアクセス(DMA)システムのために設計されている。したがって、DPOバストポロジ200アーキテクチャの別の実施形態は、それらを現代のチップ設計で役立つものとする様々な動作特性、構成、およびトポグラフィを有する。例えば、DPOバス104の一部の実施形態は、メモリ待ち時間が長い状況において実行可能であることを保証する、複数の未処理トランザクションを実行できる機能を提供する。DPOバス104の一部の実施形態は、分割トランザクションを回避する。
DPOバスの一部の実施形態は、パケットが関連するDPO端末装置102に関わらず一貫した、簡易なヘッダ構造を有する。DPOバス全体で同一のパケットヘッダサイズを有する類似のパケットトポグラフィを使用することにより、DPOバスは、パケット全てを、より均一に、一貫して、確実に、かつ効率よく処理することができる。一実施形態では、DPOバス104は、パケットの種類に関わらず(単純な64ビット構造などの)一貫したヘッダ構造を持つ。そのような均一なヘッダ構成は、DPOバス104が異なるパケットを効果的に処理することを可能にする。つまり、DPOバス104は、個々のパケットのパケットヘッダ長を決定するステップに時間を浪費する必要がない。そのような処理遅延の低減は、図7との関連で示すようなマルチプレクサ750をレジスタと関連付けているシステムにおいて、特に有用である。
また、DPOバス104のアーキテクチャを、複数の未処理設計要求を実行するように明確に設計することができる。例えば、比較的短期間に複数の要求を送信するために、DPOバスを使用するプロトコルの一部の実施形態を用いることができるが、さらに多くの信号完了を受信する時間を必要とする場合がある。
本開示内で説明する機能の多く(図2との関連で示すDPOバスによって接続された複数の装置の独立バストポロジ、図7との関連で示す伝搬遅延が短縮されたマルチプレクサ750の使用など)は、設計の容易なタイミングクロージャや、システム全体でのパケット完全性の維持や、検証プロセスの簡略化など他の利点を提供する。本開示の多くの実施形態では、要求パケット完了パケット構造は、メモリ待ち時間の非常に長いシステムにおいて高トラフィック帯域幅を可能にする。
表2に、DPOバスによってサポートされるトランザクションの種類、トランザクションを完了するのに必要とされる分割トランザクション、および各トランザクションのパケットの種類の一実施形態の概要を示す。
一実施形態では、DPOバス104は、図25、26、27、29a、29bに示すDPO装置などのように、作動可能信号(ready signal)およびヘッド信号を含む2つの残存側波帯信号(remaining sideband signal)を有する。実際には作動可能信号だけが常に信号として使用される。作動可能信号は、リセットされるときを除いて標準動作での使用がサポートされない最終手段の信号である。作動可能信号は、CPUが装置にあまりに多くの未処理要求を出しているために、その装置が応答しなければならない要求を格納するバッファ空間が不足している場合にのみ使用される。この場合、それは、上流側装置へのパケット応答に対する責任を回避することができる。
一実施形態では、リセットされた後、DPOバス104は、入りパケットを解析できるようになったときにその作動可能信号をアサートすることができる。(信号がハイになるなど)作動可能信号がアサートされると、その信号はリセットまでアサートされたままになるはずである。要求側の装置は、そこにアドレス指定されたヘッダを求めて入りデータバスをサーチ/スヌープすることができる。装置は、入りヘッダ信号がアサートされたときにヘッダを求めてサーチ/スヌープするだけでよい。ヘッド信号は、出バスがパケットの開始を示すために使用する。一部の実施形態では、ヘッド信号がなければ、バスは絶対にアイドル状態になり得ない。
オンチップ装置120は、完了、構成、メモリまたはメッセージを受け取ることができる。この装置は、コマンドを受け入れて完了を発行し、あるいは所与の要求に対してエラー完了を発行する。多くの実施形態では、どのオンチップ装置120も、単に、要求を無視することはできない。図1に示すCPU116は、いつでも装置に通知書込みを発行することができるため、装置は、読取り完了と制御トランザクションとを組み合わされたときに、これを収容するのに十分な大きさの受信バッファを持つ必要がある。装置は、常に、CPU116から期待される最大パケットサイズを受信できる十分な空きバッファ空間を維持すべきである。
読取り側装置により発行された読取り要求は、順番に来ることも、不規則に来ることもあり得るため、読取り要求に関連付けられたタグ(図示せず)をマッチさせることはその装置の責任である。一例では、このタグは、ヘッダのPTAGフィールド内に含まれ、どのデータが戻っているかを判定する完了のタグを伴う。一実施形態では、これは、読取り側装置が複数の未処理読取り要求を発行した場合に限り行われる。装置が出DPOバス上でトランザクションを実施しようとする場合、その装置は、まず、本開示内で説明するアービトレーション規則に従ってバスを要求する。
一実施形態では、DPOバスは、ヘッダがバス上にあるときにアサートされるヘッダ利用可能信号を含むことができる。このインターフェイス上にはチップ選択線はない。オンチップ装置120の多くのバージョンは、パケットがその装置にアドレス指定されているか否かを決定するために、パケットへのヘッダをサーチ/スヌープする。一実施形態では、オンチップ装置120は、その装置にアドレス指定されていないインターフェイス上の任意のパケットを無視する。パケットのターゲットがその装置である場合には、必要に応じてデータペイロードを取り込む必要がある。
要求パケットの一実施形態では、装置は、図8a、8bに示す要求プロセス800の実施形態に従うことができる。完了パケットの一実施形態では、装置は、図9a、9bに示す完了パケットプロセスの実施形態に従う。図8a、8bおよび/または図9a、9bに示すプロセスのいずれも、公知のコンピュータプログラミング技法を用いて、図1に示すコンピュータ環境110内で実施することができる。
図8a、8bに示す要求プロセス800は、パケットが要求であることを判定する処理802を含む。要求プロセス800は判断804に進み、そこで、その要求が、プロトコルで許容可能とみなされる種類の要求群であるか否か判定される。判断804への答えがNOである場合、要求プロセス800は、処理806で、そのプロセスがサポートされていないと判定しており、要求プロセスは、処理808で非サポート完了を提供して終了する。
判断804への答えがYESである場合、要求プロセス800は判断810に進み、そこで、処理802で受信したパケットの種類がメッセージデータ型であるか否か判定される。判断810への答えがYESである場合、要求プロセス800は判断812に進み、そこで、メッセージの内容が考慮され、802で受け取ったメッセージが有効であるか否か判定される。メッセージが、DPOバスを介して伝送されるメッセージの期待される形式に従っている場合、メッセージは有効であると判定される。
判断812への答えがYESである場合、判断810および812により判定された受信されたメッセージは、処理814で処理され、要求プロセス800が終了する。判断812への答えがNOである場合、要求プロセス800は処理816に進み、そこで、処理802で受け取った要求が非サポート要求である(およびメッセージではない)と示され、要求プロセス800が終了する。
判断810への答えがNOである場合、図8a、8bに示す要求プロセス800は判断818に進み、そこで、その要求が、そのオンチップ装置に格納されているモデルパラメータとの比較により定められる要求パケットに関する所定のモデルに違反しているか否か判定される。あらゆる要求は、所与のサイズの所定のヘッダ構成を持つ必要があり、パケット本体のサイズは、パケットモデルの例により様々である。パケットが、パケットモデルで記述される所定の形式に従っていない場合、受信したパケットの形式と期待される要求パケットの形式との比較により、オンチップ装置における受け取りパケットが要求パケットではないことが示される。判断818への答えがYESである場合、要求プロセス800は処理820に進み、そこで、処理802で受け取った要求が不正な要求であることが決定され、処理822でコンピュータ環境に打ち切り/完了メッセージが送信され、その直後に要求プロセス800が終了する。
判断818への答えがNOである場合、要求プロセス800は処理824でその要求を処理する。要求プロセス800は判断826に到達し、そこで、処理802で受信したパケットの処理824での処理に成功したか否か判定される。判断826への答えがNOである場合、要求プロセス800は処理828に進み、そこで再試行完了メッセージが送信される。判断826への答えがYESである場合、要求プロセス800は判断830に進み、そこで、コンピュータ環境は、その要求が完了メッセージを必要とするか否か判定する。判断830への答えがNOである場合、要求プロセス800は終了する。判断830への答えがYESである場合、要求プロセス800は832に進み、そこで、パケットの送信側に正常完了が送信される。
図9a、9bに、完了パケットプロセス900の一実施形態を示す。完了パケットプロセス900は、パケットが完了されたか否か判定する処理902を含む。処理904では、パケットのタグが未処理要求と対照してチェックされる。判断906では、完了パケットプロセス900は、完了が期待されているか否か(例えば、その特定のノードからの要求が予期される以前に要求が送信されているか否か)判定する。判断906への答えがNOである場合、完了パケットプロセス900は処理908に進み、そこで予期しない完了が生じ、処理910で予期しない完了メッセージが提供される。910に続き、完了パケットプロセス900が終了する。
判断906への答えがYESである場合、完了パケットプロセス900は処理912に進み、そこで完了状況がチェックされる。次いで、完了パケットプロセス900は、判断914に進み、そこで完了状況が正常であるか否か判定される。判断914への答えがNOである場合、完了パケットプロセス900は判断917に進み、そこで完了状況が再試行であるか否か判定される。
判断917への答えがYESである場合、処理918で、再要求により再試行ハンドルが次に渡され、次いで、完了パケットプロセス900が終了する。判断917への答えがNOである場合、完了パケットプロセス900は921に進み、そこで完了状況が打ち切りであるか否か判定される。判断921への答えがYESである場合、完了パケットプロセス900は、処理922で、エラー/完了側打ち切りメッセージを送信し、次いで、完了パケットプロセス900が終了する。判断921への答えがNOである場合、要求は、処理926で判定されたようにサポートされない。次いで、完了パケットプロセス900は、エラー/非サポート要求メッセージを表示し、次いで、完了パケットプロセス900が終了する。
判断914への答えがYESである場合、完了パケットプロセス900は判断916に進み、そこでエラービットが設定されているか否か判定される。判断916への答えがYESである場合、完了パケットプロセス900は処理918に進み、そこでエラー/データ使用不能メッセージが送信される。判断916への答えがNOである場合、完了パケットプロセス900は処理921に進み、そこで完了パケット中の入りデータが処理され、次いで、完了パケットプロセス900が終了する。
一実施形態では、出DPOバスポートは、データバスおよびアービトレーション信号を含む。アービトレーション信号は、複数のオンチップ装置120間で競合が生じたときにどのDPO端末装置102がDPOバス104を使用することができるかを決定する。装置がこのポートに書き込もうとするとき、これは、まず、アービトレーション規則に従ってバスの調停を行う。出DPOバスポートは、メモリ空間要求およびメモリ構成空間完了の送信に使用されることが可能である。
図10に、DPOバスネットワークトポロジ部1040の別の実施形態の構成図を示す。DPOバスネットワークトポロジ部1040は、ユーザの制御下で変更され、独立バストポロジの任意のバストポグラフィに対して異なるDPOバストポグラフィを提供することができる。DPOバスネットワークトポロジ部1040は、少なくとも2つのFIFO装置、受信側FIFO1048と送信側FIFO1050とを含む。DPOバスネットワークトポロジ部1040は、個々のオンチップ物理層を任意に選択させように構成され、したがってソフトウェアおよびオペレーティングシステムの動作に基づいてトポロジが選択され、図1、2、3、4との関連で示した様々なトポロジを提供することができる。例えば、DPO端末装置102をDPOルートコレクタ装置103に接続するときに、図2との関連で示した物理的なポイントツーポイントネットワークトポロジを使用する必要はない。ユーザは、ポイントツーポイント構成を選択することも、ハードウェア/ファームウェアでのトークンリングトポグラフィを選択することもできる。
図10との関連で説明するDPOバスネットワークトポロジ1040は、(DPO端末装置102の一実施形態とみなされる場合もある)ベンダIP(Internet Protocol)装置1042、標準バスインターフェイスへの接合部1044、オフチップバス(OCB)パケット化モジュール1046、受信側先入れ先出し(first−in first−out)(FIFO)1048、送信側FIFO1050、オフチップバストランザクションおよび物理部1052、図1との関連で示したオフチップブリッジ117、およびオフチップバス106を含む。オフチップバスは、図1との関連で示したコンピュータ環境110のメモリ114、CPU116および/または入出力回路118の一実施形態とのデータ通信パスを提供する。
オフチップバストランザクションおよび物理部1052は、オフチップバス106での物理層インターフェイスの種類を決定する。オフチップバストランザクションおよび物理部1052は、別種の物理層インターフェイスであるとみなされる場合がある。OCBトランザクションおよび物理部1052は、ソフトウェア、ファームウェア、および/またはハードウェアを用いて、図2との関連で示したのと類似のポイントツーポイントネットワークトポロジ、トークンリングネットワークトポロジ、あるいは本開示で図11との関連で示すスパイラルトークンネットワークトポロジで構成されことができる。一部の実施形態では、オフチップバストランザクションおよび物理部1052を含むネットワークは、直列または並列に配置された、いくつかの異なるトポロジを含むことができる。
一実施形態では、オフチップバス(OCB)パケット化モジュール1046は、データを、ネットワーク提供者1042の下で運用しているプロトコル(または規格)から、オンチップバス1054が運用しているプロトコル(または規格)に変換する。OCBパケット化モジュール1046が構成されると、送信側FIFO1050は、OCBパケット化モジュールがOCBトランザクションおよび物理部1052に送信されるパケットを含む度にそのように構成され、パケットは、そのパケットが受信された順序に、送信側FIFO1050を介して送信される。OCBパケット化モジュール1046が構成されると、受信側FIFO1048は、OCBパケット化モジュール1046がOCBトランザクションおよび物理部1052を受信することができるパケットを送信できるようになる度にそのように構成され、パケットは、そのパケットが受信された順序に、受信側FIFO1048を介して送信されることになる。オンチップ装置120内に含まれるコンピュータソフトウェアは、ODBトランザクションおよび物理部1052によって提供される個々のネットワークトポロジ(ポイントツーポイント、トークンリング、スパイラルトークンなど)と関係し、またはそのために設計されていなくても動作することができる。
標準バスインターフェイスへの接合部1044は、異種のプロトコルとバストポロジとの間での通信を可能にするように、ベンダIP1042とOCBパケット化モジュール1046を接続するインターフェイスである。したがって、一実施形態では、OCBパケット化モジュール1046は、図1、2、4に示す各DPO端末装置102の一部として含まれる。OCBパケット化モジュール1046は、標準バスインターフェイスへの接合部1044を用いてベンダIPのプロトコルとOCBパケット化モジュール1046のプロトコルとの間で変換を行う。
標準バスインターフェイスへの接合部1044を用いて変換が行われると、各パケットを完了することによってパケット伝送を行うことができるようになり、OCBトランザクションおよび物理部1052からOCBパケット化モジュールに送信されるデータパケットは、短時間の間、受信側FIFO1048に位置する。OCBパケット化モジュール1046からOCBトランザクションおよび物理部に送信されるデータパケットは、短時間の間、送信側FIFO1050に留まる。
図10に示す制御可能なトポグラフィを用いて、論理の残りの部分から物理層を切り離すことができる。したがって、ソフトウェアおよびオペレーティングシステムは、DPOバス104が、機能的に、ポイントツーポイント、トークンリング、スパイラルトークン、あるいは別の所望のトポグラフィのどれを持つように構成されていても、図1との関連で示した個々のDPO端末装置102内で動作することができる。
DPOバスを様々なオンチップ装置トポロジで構成することができるだけでなく、DPOバス回路の異なる部分が異なるトポロジを使用することができる。図11に、DPOバス104が、DPOバスの異なるトポロジ(および実施形態の組合せ)をシームレスに提供することができることを示す。例えば、ポイントツーポイント(トップダウン)ネットワークトポグラフィは、一般に、本開示内では、図1、2、3、4との関連で説明される。図11に、2つの別個のバストポロジ1104、1106を含むネットワークトポロジ1102を示す。ネットワークトポグラフィ1102の上位のトークン独立バストポロジ1104は、(トークンリング、スパイラルトークン、その他類似のトークントポグラフィを含むことができる)トークンネットワークトポグラフィとして構成される。下位のトークン独立バストポロジ1106は、ポイントツーポイントトポロジとして配置される。独立バストポロジ1104内では、DPO端末装置102のいくつかの装置ノード122は、スパイラルトークンDPOコレクタ1108を含むリングトポグラフィを含むことができる。スパイラルトークンDPOルートコレクタ装置103は、図1および2との関連で示したコレクタノード129および割り込みコレクタ装置126を含むDPOルートコレクタ装置103のポイントツーポイント実施形態と類似の方式で(ただし、異なるネットワークトポロジ内でそれに適合されて)動作するスパイラルトークンコレクタノード129およびスパイラルトークン割り込みコレクタ装置126を含む。トークンリングおよびスパイラルトークントポグラフィは、一般に、ネットワーク技術として周知であり、本明細書では詳細に説明しない。
上位トークン独立バストポロジ1104内のDPO端末装置102には、図2との関連で示した1つまたは複数のDPOブリッジ装置252を含むことができる。上位トークン独立バストポロジ1104内では、DPO端末装置102、DPOブリッジ装置252、およびスパイラルトークンDPOコレクタ1108は、トークントポグラフィで構成される。図11に示す上位トークン独立バストポロジ1104の実施形態内のDPO端末装置102およびDPOブリッジ装置252のDPO装置ノード122の全ては、(トークントポグラフィに従って動作する)中央トークンアービタ134により調停される。
図11に示すように、上位トークン独立バストポロジ1104内のDPOブリッジ装置252は、第2の独立バストポロジ1106内のDPO端末装置102のためのコレクタを形成することができる。図11との関連で示すネットワークトポグラフィ1102の実施形態の独立バストポロジ1106は、ポイントツーポイントトポグラフィで配置されたDPO端末装置102を含むが、実際には、それらのDPO端末装置102を、トークン、スパイラルトークン、あるいは本開示内で説明するDPOバス104上に存在し得る他の任意のネットワークトポグラフィでも配置することができる。
様々なメモリマップを用いてオンチップ装置メモリ機能を提供することができる。図12aに、DPOバス104を簡略化するために使用することができるDPOバス装置メモリマップ1000の一実施形態を示す。PCI装置にも非PCI装置にも類似のメモリマップを使用することができる。DPOバス104上のPCI装置は、単一のPCIエンドポイント装置機能と同じメモリマップを持ち得る。
非PCI装置でのメモリマップ1100の一実施形態を図12bに示す。構成トランザクションは、構成空間中のレジスタだけをターゲットとすることができる。メモリトランザクションは、メモリ空間中のレジスタだけをターゲットとすることができる。
メモリは装置/機能に基づいて割り振られる。装置が、割り振られた空間を超える構成空間を必要とする場合、それ以上の構成空間に別の機能番号を割り振る。一実施形態では、装置は、メモリ空間を使用せず、構成空間を使用する。構成空間中のレジスタのマッピングは、装置依存とすることができる。一部の実施形態では、構成トランザクションを、装置、機能およびレジスタ番号によりアドレス指定することができる。
DPOバスアドレスヘッダ形式1300、1400の一部のそれぞれの実施形態を、それぞれ、図13と14に示す。図13に、64ビットバスでの32ビットアドレスパケットヘッダ形式の一実施形態を示す。図14に、32ビットバスでの32ビットアドレスDPOバスアドレスヘッダ形式の実施形態を示す。図13のDPOバスアドレスヘッダ形式1300の実施形態は、単一のパケット内に含まれ、図14のDPOバスアドレスヘッダ形式1400の実施形態は、2つのパケット間に広がっている。装置にアドレス指定されたメモリトランザクションは、図13および14との関連で示す、完全に復号化され得る32ビットアドレスを使用する。
図1に示した電子回路部101の一実施形態では、パケットの種類に関わらず、全てのパケットヘッダは同じサイズ(図13および14に示す32ビットなど)を有することができる。電子回路部101の一実施形態では、各パケットヘッダは、ビッグエンディアン形式に従う(ただし、他の実施形態では、リトルエンディアンその他の形式も可能である)。したがって、電子回路部を通過するパケットなどに類似の形式を使用することにより、DPOバスの処理に関する混乱が減少し、通常は、データスループットが増加し、データ転送の速度および信頼性が増大する。
表3に、図13および14に示す32ビットアドレスヘッダの一実施形態のフィールドを示す。
表3に示すデータパケットフィールドの実施形態を用いて、論理が表4に示すパケットヘッダの後のデータペイロードを探すか否かが判定される。
表5に示すデータダブルワード(DW)数フィールドの一実施形態は、データ長をDW数で記述する。
DPOバスは、ダブルワード(DW)が32ビット(または4バイト)であるとみなす。各幅のヘッダ形式には差がないため、データバス幅を記述するヘッダには情報が示されない。データ幅は、ヘッダには影響を与えないが、データペイロードおよびデータ整合には影響する。本開示において示す異なるデータアライメント事例でのデータ転送について考慮する。表6に示すパケットの種類フィールドの実施形態は、本開示の一実施形態でパケットにより実施されるトランザクションの種類を記述する。
構成は、完了を有するメモリに書込みを行う。メモリ書込みが通知され、したがって、完了パケットを持たない。メモリ書込み状況をチェックするためにフラッシュ操作が用いられる。
前述のように、側波帯を用いてDPOバス104に割り込みを提供することができる。例えば、図30では、各DPO端末装置102とDPOルートコレクタ装置103(より詳細には、図示しない接続を用いて、割り込みコレクタ装置126)との間に装置割り込み3020が延在している。また、各DPOブリッジ装置252とDPOルートコレクタ装置103(より詳細には、図示しない接続を用いて、割り込みコレクタ装置126)との間に、ブリッジ割り込み3022も延在している。図30に示すDPOブリッジ装置252またはDPO端末装置102からDPOルートコレクタ装置103への(一般に、データパケット伝送に関連する)その他の接続は、(図示しない接続を用いて)DPOルートコレクタ装置103内のコレクタノード129に接続される。割り込み信号を搬送する側波帯部分の機能は、側波帯で伝送されるデータの代わりにデータバス内で伝送されるパケットを用いることにより、DPOバス104の実施形態を用いて大部分が除去されるため、側波帯部分を割り込みなどの機能に使用することができる。そのため、そのレジスタ空間を介した割り込み報告機能を実装することは、そのオンチップ装置次第とされる。装置は、単一の割り込み信号を持つ。一実施形態では、DPOバス上の装置は、メインメモリへの単一の読取りトランザクションで待ち時間(例えば、一部のDPOバスでは2から3マイクロ秒程度)を期待できる。これは、読取り要求が送信されてからデータと共に完了が戻るまでの時間であり、他のシステム待ち時間およびアービトレーション遅延を考慮に入れる。
これを用いて、所与の装置が必要とする未処理読取り要求の数を判断することができる。例えば、一バージョンでは、要求ごとに128バイトのメモリを要求する装置は、表7に示す様々な数の未処理のパイプライン化要求で以下の読取り帯域幅を達成することができる。
トランザクションオーダリング
図15に、通知要求パケット、非通知要求パケット、および完了パケットを使用したDPOバスでのトランザクションオーダリングの一実施形態を示す。行に示すトランザクションは、列のトランザクションを渡すことが可能であり、不可能であり、または任意選択で可能である。トランザクションオーダリングは、特定のトランザクション群が順序付けされているか否かを反映しない。
パケットヘッダ中のフィールド、リラックスオーダリング(RO)は、リラックスオーダリングが有効にされているか否かを指定する。一実施形態では、メモリ書込みは、リラックスオーダリングビットが設定されていない場合、他のメモリ書込みまたはメッセージ要求を渡さない。リラックスオーダリングビットが設定されている場合、その機能は任意選択である。別の実施形態では、通知メモリ書込みがメモリ読取り要求を渡す。一実施形態では、通知メモリ書込みは、ROに応じて読取り完了を渡し、または任意選択で渡すことができる。一部の実施形態では、読取り要求は、装置のフラッシュ操作を改善するメモリ書込み操作またはメッセージ要求を渡すことができない。
DPOバス104の別の実施形態では、読取り要求は、任意選択で、他の読取り要求、または他の完了を渡すことができる。別の実施形態では、読取り完了は、リラックスオーダリングビットがクリアである場合、メモリ書込みまたはメッセージ要求を渡すことができない。これは、フラッシュがメモリ書込み操作だけを考慮するように限定することにより、メモリ書込み状況のチェックに使用されるCPUフラッシュ操作を改善する。これは、異なるトランザクションでの読取り完了を改善するが、読取り完了が区分化されている場合、各区分は順番に戻る。
全てのバイトイネーブルがオフである長さ1サイクルのメモリ読取り要求を、フラッシュ操作という。フラッシュ操作は、要求側に、表8に示す宛先で前の通知書込みが完了していることを保証させる。
表9に、パケットタグ記述フィールドの一例を示す。表10に、パケット機能記述フィールドの一例を示す。図11に装置記述フィールドの一例を示す。
他の2つの重要な変数には、要求側IDおよびトランザクションIDが含まれる。要求側IDは、バス、装置および機能番号からなる。装置番号および機能番号は、表3との関連で説明し、バス番号は表11との関連で説明してある。トランザクションIDは要求側IDおよびパケットタグからなる。要求側IDは、セルに含まれる情報がトランザクションの要求側を記述するものか、それとも完了側を記述するものかに応じて、完了側IDとも呼ばれる。構成パケットヘッダ形式の一実施形態は、要求側IDおよびパケットタグを含む。表12に、図16に示す32ビットバスでのパケットヘッダの構成例を示す。
レジスタトランザクションの種類は、DC[4:0]フィールドの値によって決定される。一実施形態では、構成トランザクションは、最後のダブルワードバイトイネーブル(LDBE)および最初のダブルワードバイトイネーブル(FDBE)フィールドが同一である場合にだけ正当である。一部の事例を表13に示す。
一バージョンでは、非PCI装置だけが64ビットレジスタアクセスの実行を許される。これは、DPOバスが構成トランザクションを用いた64ビットアクセスをサポートしないからである。非PCI装置での構成トランザクションは、DPOバス上でのメモリマップトランザクションである。表14に、完了パケットヘッダ形式の一実施形態を示し、その一実施形態を図17に表す。表15に、完了状況形式の例を示す。図16に通知要求パケット、非通知要求パケット、および完了パケットでの完了ペイロード形式の一実施形態を示す。
一実施形態では、この完了ペイロード形式を制御するために構成空間に1ビットが設けられる。表17に、リラックスオーダリング形式の一実施形態を示す。
一実施形態では、リラックスオーダリング形式を制御するために構成空間に1ビットを設けることができる。
バイト数および下位アドレス情報が必要とされるのは、読取り完了を複数の読取り完了パケットに区分化することができるからである。この情報は、バスおよび要求側が、入りデータを適正に追跡することを可能にする。区分の1つでエラーが発生した場合、要求側は、破壊された区分を再要求するだけでよい。
読取り要求が発行され、読取り完了中のデータが複数のパケットに区分化された場合、その完了パケットは全て、同じトランザクションIDを共用し、順番に出現することになる。区分化を達成することができる方式には、いくつかの異なる実施形態がある。一実施形態では、各区分は、受信側でパケットが受信された順序(FIFOなど)で配置され、この技法は、データ区分がデータ伝送時に混交されることがない場合には特にうまく機能する。DPOバス上のデータ伝送は、同じバス上を伝送されるため、データパケットの時間的混交の量は限られるはずである。別の実施形態では、別のヘッダフィールド(図示せず)がパケット内の個々の区分の区分順序番号を示す(例えば、1つの特定の区分とは、元は1つのパケットであったものの第1、第2、第3区分などである)。その場合、各区分の元の順序を再構築することができる。一実施形態では、異なる読取りトランザクション完了に厳格な順序付け規則はないが、所与のトランザクションでの区分化完了には厳格な順序付け規則がある。
トランザクションの一実施形態についてメッセージのヘッダ内容と共に説明する。次に、オンチップ装置が要求側である場合について説明する。ある特定のオンチップ装置が要求を出しているものと想定する。そのオンチップ装置は、データサイズが1パケット当たり128バイトの最大パケットサイズを超えないという条件で、その後直ちに、メモリへの通知書込みを発行することができる。所与のオンチップ装置は、メモリへの非通知書込みを発行することができない。オンチップ装置は、データが到着したか否か知る必要がある場合、データがメモリ中にあることを保証するためにゼロ長読取りを発行することができる。
表19に示す以下の情報を用いて、所定のアドレス(0x8040など)への64ビットバス上での128バイトの通知書込みのための32ビットアドレスパケットヘッダを形成することができる。
装置は、エラーが発生したのでない限り通知トランザクションでは完了を受け取らない。装置が知っている間は、他に特に通知されない限り、送達が保証される。
表20の実施形態によれば、装置6、機能2は、データサイズが1パケット当たり128バイトのMTUサイズに違反しないという条件で、直後にメモリへの読取り要求を発行するることができる。この装置は、32ビットアドレスパケットを用いて読取り要求の発行を行い、データが完了パケットを使用して戻ることを期待する。
表21に示す情報を用いて、アドレス08x8040からの64ビットバス上での64バイトの読取り要求のための32ビットアドレスパケットヘッダを形成することができる。
データを伴う、または伴わない完了ヘッダは、表22に示すヘッダ情報と共に戻され、その後に読取りデータを含む8データサイクルが続く。
次に、CPUから(装置完了側を使用して)構成が提供される場合について説明する。CPUは特別な値を用いて装置をプログラムする。それは、表23に示すヘッダおよびデータペイロード情報を有する構成パケットである。
次いで、装置は表24に示す完了を返す。
一実施形態では、CPUは、オンチップ装置に関連付けられた設定メモリ空間を有する所定の値から所定の位置を64バイト読み取る。装置は、表25に示すヘッダ情報を有するメモリ読取り要求を受信する。
次いで、装置は、読取り要求を実施し、表26に示す以下の完了ヘッダ情報を有するデータを返す。
DPOバスは、ビッグエンディアンまたはリトルエンディアンオンチップ装置を制御するように構成されることができる。ビッグエンディアン形式とリトルエンディアン形式とを切り替えるために、オンチップ装置は、そのデータを適当に「撹拌する」(または、メインメモリでこれを行うようソフトウェアに通知することができる)。以下の例は、ヘッダを含めて、データ転送がメモリ中、および64ビット、32ビットDPOバス上でどのように存在することになるかを示すものである。
以下の例では、以下の項目を定義する。
a)偶数ダブルワード(DW)アドレス=0xXXXXXXX0または0xXXXXXXX8
b)奇数ダブルワード(DW)アドレス=0xXXXXXXX4または0xXXXXXXXc
c)DPOダブルワード(DW)=DPOヘッダのDC[4:0]フィールド
d)DPO FDBE=FDBE[3:0]DPOヘッダの最初のダブルワード(DW)バイトイネーブルフィールド
e)DPO LDBE=LDBE[3:0]DPOヘッダの最後のダブルワード(DW)バイトイネーブルフィールド
f)DPOaddr=DPOヘッダのADDR[31:2]、LSBビットは0。
図18に示す一実施形態では、32ビット装置、12バイト転送、偶数ダブルワード(DW)アドレスが示されている。図19に示す別の例では、32ビット装置、12バイト転送、奇数DWアドレス、BE(バイトイネーブル)使用が示されている。図19に示す64ビットバス上でのデータの整合は、図18に示す前の例から変更されている。
図20に示す別の実施形態では、32ビット装置、16バイト転送、奇数ダブルワード(DW)アドレス、バイトイネーブル(本明細書に示すFDBEとLDBEを含むBE)使用が示されている。64ビットバスの64ビット整合はバスの効率低下を生じるが、この効率低下は32ビットバスに変換するときに再吸収されることに留意されたい。図21に示す実施形態では、32ビット装置、4バイト転送、奇数ダブルワード(DW)アドレス、バイトイネーブル使用が示されている。64ビットバス上の32ビット値の整合に留意されたい。また、32ビットの転送でのバイトイネーブルを同一とし得ることにも留意されたい。
図22に、32ビット装置、4バイト転送、偶数ダブルワード(DW)アドレス、バイトイネーブル使用を示す。64ビットバス上の整合を考える。図23に、64ビット装置、8バイト転送、偶数ダブルワード(DW)アドレス、バイトイネーブル使用を示す。図24に、64ビット装置、8バイト転送、奇数DWアドレス、バイトイネーブル使用を示す。64ビットデータバス上の8バイトの整合を考える。
本明細書で述べる方式では、DPOバスは、装置ノードが「コレクタ」への接続を介してシステムCPUおよびメインメモリに接続することを可能にする。コレクタは、DPOバスの装置0、機能0である。
図25に、DPOバス104に関連付けられたコレクタノード129の例を示す。図26、27にDPOバス104に関連付けられた複数の装置ノード122(64ビット、32ビット)の例を示す。図29a、29bに、全てがDPOバス104内で関連付けられているDPOブリッジ装置252(32ビット、16ビット)に含まれる例示的なコレクタノード214の異なる実施形態を示す。DPOルートコレクタ装置103内のコレクタノード129と、DPOブリッジ装置252内およびDPO端末装置102内の1つまたは複数のコレクタノード214と、DPOブリッジ装置252内の1つまたは複数のコレクタノード214は、システム構成時に様々なトポロジで関連付けることができる。図2を考慮すると、DPOバス104ごとに、図25に示す1つのルートコレクタノード129がある。DPOルートコレクタ装置のコレクタノード129は、直接に、または図2に示すDPOブリッジ装置252内のコレクタノード214を介して他の全ての装置ノード122と通信することができる。一実施形態では、コレクタノード129は、以下の一部または全部を含む。
a)入りデータバス用のバスアービタ134
b)入りデータバスポート
c)出データバスポート
d)構成レジスタ群
e)側波帯割り込みコレクタ装置126との関連
表27に、ルートコレクタノード129の一実施形態への接続を示す。本開示内では、(DPOブリッジ装置252とDPO端末装置102の両方に含まれる)DPO装置ノード122は、コレクタノード214または129に接続されるものと想定する。表27に、図3および4に関連して以下で説明する要求信号および許可信号の一バージョンを示す。
DPO装置ノード122は、装置ノードインターフェイスを用いて、図25との関連で示すDPOルートコレクタ装置103のコレクタノード129と(直接または間接に)通信を確立することにより、DPOバス104への装置接続を提供する。コレクタノード129は、DPOバス内の装置に、例えば、図1に示すCPU116やメインメモリ114などを含むシステム制御装置へのアクセスを提供する、データの入力元であるとみなされ得る。一部の実施形態では、DPOバスインターフェイスは、変動する(例えば、32ビットまたは64ビットなど)データバス構成を含むことができる。
図26、27に、DPOバス104内に含まれる64ビットと32ビットの装置ノード122のそれぞれの構成図を示す。各DPOバス104に多数の装置ノードが存在することができる。各DPO装置ノード122は、DPOルートコレクタ装置103内のコレクタノード129と通信する。各DPO装置ノード122は、DMAユニットを含み、コレクタノード129を介してメインメモリに要求を出すことができる。表28にDPO装置ノード122への接続を示す。これらの接続は、多くの場合、表27に図25との関連で示した接続から見て、同じ接続の反対端であることに留意されたい。
図29aまたは29bに示すブリッジノードは、図28に示すように構成され得るDPOブリッジ装置252内のコレクタノード214の、2つの実施形態(32ビットと16ビット)を示すものである。図28に、DPOバスブリッジ番号付け例の一バージョンを示す。図28に示すブリッジノードを使用して経路指定リソースを解放し、バスの柔軟性を提供する。DPOブリッジ装置252は、その機能により、2次インターフェイス上のDPO端末装置102内のDPO装置ノード122と、1次インターフェイス上のDPOルートコレクタ装置103内のコレクタノード129との間の通信を提供する。
図28は、1つのDPO装置ノード122が、直接または別のDPOブリッジ装置を介して(図25との関連で示した)コレクタノード129と通信できるように、異なる独立バストポロジにおける複数のDPOブリッジ装置252によってDPOバスブリッジ104を構成することができることを示す。
図29aと29bを考慮すると、DPOブリッジ装置は、1次バスXを2次バスYと接続し、その場合、1次バスXのデータ帯域幅は、2次バスYのデータ帯域幅より大きいかそれと等しい。DPOブリッジ装置252は、その機能により、1次インターフェイス上のDPO装置ノード122と2次インターフェイス上のコレクタノード129との間の通信を提供する。1次回路および2次回路を制御するために、DPOブリッジ装置252の1次バスおよび2次バスに(図29aと29bの両方に示す)別個のクロックおよびリセット入力を適用することができる。DPOブリッジ装置内の1次回路と2次回路の間での互いに異なるクロックは、1次回路が2次回路以上の速度で動作することができるようにする。最も多くのデータを伝達するDPOバス104の部分でのデータ伝送速度を増大させるためには、DPOルートコレクタ装置により近い装置のクロック速度がより高いことが望ましい。1次回路と2次回路との間での互いに異なるリセットは、DPOバス内の個々の独立バストポロジに、リセットをより直接的に適用することができるようにする。Yは2次インターフェイスのバス番号を表し、ツリーを深さ優先で探索し、順次番号付けすることにより選択される。図29aと29bに示すポイントツーポイントトポロジがこれを示している。図29aには、64ビットDPOバスブリッジの例示的な構成図を示す。図29bには、32ビットDPOバスブリッジの例示的な構成図を示す。図29aでも29bでも、DPOブリッジ装置252は、1次バスXと2次バスYを有する。
表29の信号は、DPOブリッジ装置252とDPOルートコレクタ装置103との間の接続を示し、DPOブリッジ装置252の1次バスインターフェイスの一部とみなされ得る。ブリッジと装置との間の各出力ユニットへの接続を有する以下の表中の信号は、ブリッジ2次バスインターフェイスの一部である。ブリッジは、出力または2次バスへの幅および周波数の変更を可能にすることにより、経路指定リソースの負担を軽減する。表29に、DPOブリッジ装置252に関連付けられた1次バス信号と2次バス信号との一実施形態を示す。
図30に、64ビットDPOバス上のノード間接続を含むDPOバス104でのトポグラフィの例を示す。図30には、所与のDPOバス104について、複数のDPO端末装置102が単一のDPOルートコレクタ装置103にどのように接続されるかが示されている(一部のDPO端末装置102は、DPOバスブリッジ装置252を用いて接続を確立する)。
(アービトレーション)
アービトレーションとは、異なるオンチップ装置が所定の時刻におけるDPOバスの使用を制御するように調停または競合するための機構である。様々な従来のアービトレーション技法があるが、それについては本明細書で詳述しない。図1、2、3、4との関連で示したオンチップ装置120の各実施形態は、(例えばREQ線上の)要求信号を使用してDPOバスを要求することができる。この要求信号は、アービタ134に同期して読み込まれる。一実施形態では、DPOバスのアービタ134は、(例えば、パケット長が4クロックサイクル未満であるときに)予測値をラッチインする。アービタは、4クロックサイクル以下のパケットサイズを検出することができない。オンチップ装置120ごとの、オンチップ装置から見た要求から許可までの最短アービトレーション時間は、本開示の一実施形態について前述したように4クロックサイクルである。この4クロックサイクルの最短期間は、図4との関連で示したDPOバス104でのレジスタ間設計規則のためであり、次にそれを、図31に示すアービトレーション方式3100の一実施形態との関連で説明する。
アービトレーション方式3100内では、時刻T0において、オンチップ装置は、その要求信号3102をアサートし、装置/ブリッジ要求制御優先度(CPRI)[1:0]線上に予測値3104を配置する。DPOバス104の1クロックサイクル後、時刻T1において、装置はその値を、その要求の残りでの優先値に変更する。オンチップ装置は、許可信号3106を使用してトランザクションが許可されるまで、要求をアサートに保持することができる。図1に示すアービタ134は、各要求トランザクションごとに予測値をラッチインする。装置/ブリッジCPRI[1:0]信号3108は、(図2に示すDPO端末装置102および/またはDPOブリッジ装置252からの)要求信号がアサートされたときにだけ有効である。その結果生じるアービトレーション信号の一実施形態を表30に示す。
アービトレーション内で守られ得る、様々な可能な要求規則がある。本開示の範囲内に留まりつつ、要求規則の1つ、複数、または全てを適用することができる。要求規則の一実施形態には、以下の一部または全部が含まれる。
a)オンチップ装置は、バスが許可された場合、パケット全体を送信することができることを保証できるまでバスアクセスを要求しない。
b)要求信号3102の第1サイクルは、時間的に、予測サイクル3104と一致する。
c)要求信号3102中の残りのサイクルは、優先順に配置され得る。
d)4つの優先順位があり得るが、装置が要求することができるのは、2つの優先順位だけである。それら2つの値は、デフォルトで下から2つの優先度に指定され、ソフトウェアによりプログラム可能である。
e)要求側オンチップ装置間の優先度は、要求手順の間いつでも変更され得る。
f)要求が出されると、装置は、装置にバスが許可されるまで要求し続けることができる。
g)バスが許可されると、装置は、最短で1サイクルの間にその要求を除去することができる。
h)装置が要求を出し、次いで、その要求を削除しようとした場合には、それを除去することはできない。この場合、装置は、そのパケットをエラーパケットに指定することができる。また、パケットがデータペイロードを持っていた場合、それを除去し、ヘッダ中のデータパケットビットをクリアする必要がある。
i)アービタからの許可信号は、正確なパケット長で装置にアサートされる。
本開示内では、第1サイクル(サイクル1)を要求手順の予測サイクルと呼ぶ。予測サイクルを使用してアービトレーションのために小さいパケットを識別し、バスバブルが吸収されるようにする必要がある。バスバブルとは、任意の無駄なバス帯域幅であると考えられる。1つのバスバブルは、DPOバスの実施形態では、1クロックサイクルの長さである。
バスバブルは、バス上にアイドルサイクルがあり、バス上に、そのサイクル中に送信されている可能性のあるデータを有する少なくとも1つの装置がある場合に、発生している。バスバブルは、通常、バス上での可能な衝突を回避するために、無駄なバスサイクルをもたらすアービトレーション不確実性により発生する。アービタは、DPOルートコレクタ装置103での到着に際してヘッダからパケットの真の長さを取得し、それは、1、2、または3サイクルのパケットの場合、再調停の決定を行うには4サイクル遅すぎる。
次に、装置ノードでのアービトレーションタイミングの一実施形態について説明する。以下の図に、所与の装置ノードでのアービトレーショントランザクションを示す。アービトレーションが必要なのは、装置がDPOルートコレクタ装置103に送信する必要がある場合だけである。装置は、いつでもDPOルートコレクタ装置103からパケットを受信することができる。図31に、DPOバス装置でのアービトレーションタイミングの一バージョンを示し、その用語を表31に示す。
したがって、図31は、DPOバス104内のアービトレーション方式の一実施形態を提供するものであるとみなされ得る。請求項31に記載されるアービトレーション方式の一実施形態は、本開示で説明する最上位でのレジスタ間通信を利用するものである。以下の、DPOルートコレクタ装置103の同じコレクタノード129にアクセスしようとしている異なる装置ノード122間のアービトレーションは、図31に示すアービトレーション方式を満たす。出力バスが使用されていないときには、出力をローにする。バス上の全ての伝送で、装置許可線がアービタからみてハイとすることができる。パケットが送信された後で、バスが再要求され、許可線が依然としてハイである場合、装置は続けて次のパケットを出力することができる。前述の波形はバス線から引き出されており、したがって、全ての入力値は所与の装置によって1サイクル後に見られることに留意されたい。
所与のDPOブリッジ装置252の一実施形態は、1次バス上でサービスを求める要求を出すときに、以下の規則の1つ、複数、または全てに従う。
a)DPOブリッジ装置252はサービスを一度に1パケット要求する。
b)多くの実施形態では、2次から1次インターフェイスに入るパケットは、FIFO順に送達される。
c)1次インターフェイスでの要求優先度は、FIFO中のパケット全ての最高優先度に等しい。これは、パケットごとに評価される。
d)ブリッジは、パケットが、アービタにサービスを要求する前に1次バスに完全に送信され得ることを保証することができる。
e)DPOブリッジ装置252は、現在の要求が完了した後、その1次インターフェイス上で別の入り最大転送長パケットを処理するのに十分なバッファ空間がなくなることを検出すると、すぐにその作動可能信号を変更することができる。
一実施形態では、DPOルートコレクタ装置103の所与のコレクタノード129は、そのノードの出力または2次データポートのためのアービタを含む。コレクタノード129のアービトレーションの一実施形態について説明する。送信側装置およびブリッジを適正に処理するために従わせることができる、アービトレーション要求を処理するための規則の一バージョンを以下に示す。
a)DPOルートコレクタ装置103のコレクタノード129は、そのコレクタノードが、装置に割り振られた最大サイズのパケットを受け入れるのに十分なバッファ空間を持たない限り、装置のバスへのアクセスを許可しない。
b)許可信号のエッジは、次のパケットヘッダ位置を限定するのに使用されるため、アイドル状態にあるときにバスを保留にすることはできない。
図32に、図1との関連で示したDPOバス104を含むことができるユーザインターフェイスを含む適当なコンピュータ環境またはネットワーク3200の一例を示す。図1との関連で示したコンピュータ環境110は、図32との関連で示すコンピュータ環境3200の一実施形態である。類似のリソースが本明細書で説明するコンピュータ環境およびプロセスを利用することができる。
(計算処理装置)
図32に示すコンピュータ環境3200は、一般的なコンピュータ環境であり、本明細書で説明する概念的ネットワーク技法を実装するのに使用されることが可能である。コンピュータ環境3200は、コンピュータ環境の一例に過ぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲についてのいかなる制限も示唆するためのものではない。コンピュータ環境3200は、例示的なコンピュータ環境3200に示す構成要素のいずれか1つまたはそれらの組合せに関連するどんな依存性または要件を持つものであるとも解釈すべきではない。
コンピュータ環境3200は、コンピュータ3202の形で汎用計算処理装置を含む。コンピュータ3202は、例えば、独立型コンピュータ、ネットワーク化コンピュータ、メインフレームコンピュータ、PDA、電話機、マイクロコンピュータまたはマイクロプロセッサ、あるいはプロセッサをメモリと組み合わせて使用する他の任意のコンピュータ装置の1つまたは複数とすることができる。コンピュータ3202の構成要素には、それだけに限らないが、(任意選択で暗号化プロセッサまたはコプロセッサを含む)1つまたは複数のプロセッサまたは処理クライアント3204、システムメモリ3206、およびプロセッサ3204とシステムメモリ3206を含む様々なシステム構成要素を結合するシステムバス3208を含み得る。コンピュータ環境3200は、ネットワーク化装置で一般に知られている有線部および無線部を含み得る。
システムバス3208は、様々なバスアーキテクチャのいずれかを使用したメモリバスまたはメモリ制御装置、周辺バス、アクセラレーテッドグラフィックスポート、およびプロセッサまたはローカルバスを含む、(DPOバス104など)いくつかの種類のバス構造のいずれか1つまたは複数を表す。例をあげると、そのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、拡張ISA(EISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとも呼ばれるPCI(Peripheral Component Interconnects)バスを含むことができる。
コンピュータ3202は、様々なコンピュータ読取り可能な媒体を含み得る。そのような媒体は、コンピュータ3202からアクセス可能であり、揮発性と不揮発性の両方、取り外し可能と固定の両方の媒体を含む任意の利用可能な媒体とすることができる。
システムメモリ3206には、読取り専用メモリ(ROM)3212などの不揮発性メモリ、および/またはランダムアクセスメモリ(RAM)3210などの揮発性メモリの形のコンピュータ読取り可能な媒体が含まれる。始動時などに、コンピュータ3202内の要素間での情報の転送を支援する基本ルーチンを含む基本入出力システム(BIOS)3214はROM3212に格納される。RAM3210は、処理クライアント3204から直ちにアクセス可能であり、かつ/またはそれによって現在操作されているデータおよび/またはプログラムモジュールを含むことができる。
コンピュータ3202は、他の取り外し可能な/固定の、揮発性/不揮発性コンピュータ記憶媒体も含むことができる。例として、図32には、固定の不揮発性磁気媒体(図示せず)との間での読取りおよび書込みを行うハードディスクドライブ3216、取り外し可能な不揮発性磁気ディスク3220(「フロッピー(登録商標)ディスク」など)との間で読取りおよび書込みを行う磁気ディスクドライブ3218、CD−ROM、DVD−ROM、その他の光媒体などの取り外し可能な不揮発性光ディスク3224との間で読取りおよび書込みを行う光ディスクドライブ3222が示されている。ハードディスクドライブ3216、磁気ディスクドライブ3218、および光ディスクドライブ3222は、それぞれ、1つまたは複数のデータ媒体インターフェイス3225によってシステムバス3208に接続される。またはこれに替えて、ハードディスクドライブ3216、磁気ディスクドライブ3218、および光ディスクドライブ3222は、1つまたは複数のインターフェイス(図示せず)によってもシステムバス3208に接続され得る。
ディスクドライブおよびそれに関連するコンピュータ読取り可能な媒体は、コンピュータ3202に、コンピュータ読取り可能な命令、制御ノードデータ構造、プログラムモジュール、およびその他のデータの不揮発性記憶を提供する。例には、ハードディスクドライブ3216内のハードディスク、取り外し可能な磁気ディスク3220、および不揮発性光ディスク3224を示してあるが、磁気カセットその他の磁気記憶装置、フラッシュメモリカード、CD−ROM、ディジタル多用途ディスク(DVD)その他の光記憶、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去書込み可能ROM(EEPROM)など、コンピュータからアクセス可能なデータを格納することができる他の種類のコンピュータ読取り可能な媒体を利用して、例示的なコンピュータ環境3200を実装することも可能であることを理解すべきである。
ハードディスクドライブ3216に含まれるハードディスク、磁気ディスク3220、不揮発性光ディスク3224、ROM3212、および/またはRAM3210には、例として、OS3226、1つまたは複数のアプリケーションプログラム3228、その他のプログラムモジュール3230、プログラムデータ3232を含む、任意の数のプログラムモジュールを格納することができる。各OS3226、1つまたは複数のアプリケーションプログラム3228、他のプログラムモジュール3230、プログラムデータ3232(あるいはそれらの何らかの組合せ)は、分散ファイルシステムをサポートする常駐コンポーネントの全部または一部を実装することができる。
操作者は、キーボード3234やポインティングデバイス3236(「マウス」など)といった入力装置を介してコンピュータ3202にコマンドおよび情報を入力することができる。他の入力装置3238(具体的には図示せず)には、マイク、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナなどを含むことができる。上記その他の入力装置は、システムバス3208に結合された入出力インターフェイス3240を介して処理クライアント3204に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、他のインターフェイスおよびバス構造によっても接続され得る。
ビデオアダプタ3244などのインターフェイスを介して、システムバス3208に、モニタ、フラットパネルディスプレイ、または他の種類のコンピュータディスプレイ3242を接続することも可能である。コンピュータディスプレイ3242以外の、他の出力周辺装置には、入出力インターフェイス3240を介してコンピュータ3202に接続され得るスピーカ(図示せず)やプリンタ3246などの構成要素も含まれ得る。
コンピュータ3202は、リモートコンピュータ装置3248など、1つまたは複数のリモートコンピュータへの論理接続を用いたネットワーク化環境で動作することができる。例として、リモートコンピュータ装置3248は、パーソナルコンピュータ、携帯用コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスその他一般のネットワークノード、ゲームコンソールなどとすることができる。リモートコンピュータ装置3248は、コンピュータ3202に関連して本明細書で説明した要素および機能の多くまたは全てを含むことができる携帯用コンピュータとして示してある。
コンピュータ3202とリモートコンピュータ装置3248の間の論理接続は、ローカルエリアネットワーク(LAN)3250および一般の広域ネットワーク(WAN)3252として示してある。そのようなネットワーク環境は、オフィス、企業規模コンピュータネットワーク、イントラネットおよびインターネットでは一般的なものである。
LAMネットワーク環境で実装されるとき、コンピュータ3202は、ネットワークインターフェイスまたはアダプタ3254を介してローカルネットワーク3250に接続される。WANネットワーク環境で実装されるとき、コンピュータ3202は、モデム3256、または広域ネットワーク3252を介して通信を確立するその他の手段を含むことができる。モデム3256は、コンピュータ3202に内蔵することも外付けとすることも可能であり、入出力インターフェイス3240または他の適当な機構を介してシステムバス3208に接続され得る。図示のネットワーク接続は例示のためのものであり、コンピュータ3202と3248の間の通信リンクを確立する他の手段も用いることができることを理解すべきである。
コンピュータ環境3200を用いて示すようなネットワーク化環境では、コンピュータ3202との関連で示すプログラムモジュール、あるいはその一部は、リモートのメモリ記憶装置にも格納されることができる。例をあげると、リモートアプリケーションプログラム3258は、リモートコンピュータ3248のメモリ装置に常駐している。図示するのために、アプリケーションプログラム、およびオペレーティングシステムなどその他の実行可能なプログラムコンポーネントは、本明細書では、別個のWebブロックとして示してあるが、そのようなプログラムおよびコンポーネントは、様々なときに、コンピュータ3202の様々な記憶構成要素に存在し、コンピュータ3202の(1つまたは複数の)データプロセッサにより実行されることが理解される。図示し、説明したネットワーク接続は例示のためのものであり、コンピュータ間の通信リンクを確立する他の手段も使用することができることは理解されるであろう。
本明細書では、様々なモジュールおよび技法を、1つまたは複数のコンピュータまたはその他の装置により実行される、プログラムモジュールなどのコンピュータ実行可能な命令の一般的状況で説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、あるいは個々の抽象データ型を実装するルーチン、プログラム、制御オブジェクト3250、コンポーネント、制御ノードデータ構造3254などが含まれる。プログラムモジュールの機能は、様々な実施形態において、しばしば、所望に応じて組み合わされ、分散され得る。
これらのモジュールおよび技法の実装形態は、何らかの形のコンピュータ読取り可能な媒体に格納され、あるいはそれを越えて伝送されることができる。コンピュータ読取り可能な媒体は、コンピュータからアクセス可能な任意の利用可能な媒体とすることができる。例をあげると、それだけに限らないが、コンピュータ読取り可能な媒体には、「コンピュータ記憶媒体」と「通信媒体」とを含むことができる。
「コンピュータ記憶媒体」には、コンピュータ読取り可能な命令、制御ノードデータ後続、プログラムモジュール、その他のデータなど、情報の記憶のための任意のプロセスまたは技術で実装された揮発性の、および不揮発性の、取り外し可能な、および固定の媒体が含まれる。コンピュータ記憶媒体には、それだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリその他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)その他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶その他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、コンピュータからアクセス可能な他の任意の媒体が含まれる。
「通信媒体」という用語には、それに限定されないが、搬送波やその他の移送機構などの変調データ信号中のコンピュータ読取り可能な命令、制御ノードデータ構造、プログラムモジュール、その他のデータが含まれる。通信媒体には、任意の情報配信媒体も含まれる。「変調データ信号」という用語は、信号中に情報を符号化するような方式でその特性の1つまたは複数が設定され、または変更されている信号を意味する。例をあげると、それに限定されないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、音響、無線周波数、赤外線その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ読取り可能な媒体の範囲内に含むことができる。
以上、システムおよび方法を、構造的特徴および/または方法ステップに特有の言葉で説明してきたが、添付の特許請求の範囲で定義される本発明は、必ずしも、上述の特定の特徴またはステップに限定されるものではないことを理解すべきである。むしろ、それら特定の特徴およびステップは、特許請求される発明を実装する好ましい形態として開示したものである。