(57)【特許請求の範囲】
【請求項１】
プロセッサと、複数の書込み操作を生成するためのドライバとを備えるコンピュータシステムにより実行される方法であって、
前記コンピュータシステムにより管理されているメモリ内の第１のアドレス空間に対応する第１のアパーチャが、前記プロセッサから書込み操作を受信するステップと、
前記ドライバが、前記書込み操作に基づいて前記第１のアドレス空間にデータを書き込み、該書込み操作を複製することで生成した複数の書込み操作を前記メモリ内の複数のアドレス空間に同報通信するステップと、
前記複数のアドレス空間のうちの第２のアドレス空間に対応する第２のアパーチャが前記第１のアパーチャから前記書込み操作を受信すると、前記ドライバが、該書込み操作に基づいて該第２のアドレス空間に前記データを書き込み、該受信された書込み操作を複製することで生成した複数の書込み操作を前記メモリ内の複数のアドレス空間に同報通信するステップと
を含み、
前記第１のアパーチャには第１の階層が予め割り当てられ、前記第２のアパーチャには第２の階層が予め割り当てられ、
前記第１の階層が前記第２の階層よりも高い場合に、前記ドライバが、前記第２のアパーチャにより受信された書込み操作に基づいて前記データの書き込み、前記複製、及び前記同報通信を実行する、
方法。
【請求項２】
前記第１の階層が前記第２の階層よりも高くない場合には、前記ドライバが、無限ループを回避するために、前記第２のアパーチャにより受信された書込み操作をフィルタリングする、
請求項１に記載の方法。
【請求項３】
前記メモリが単一のメモリである、請求項１又は２に記載の方法。
【請求項４】
前記メモリが複数のメモリ集積回路を含む、請求項１又は２に記載の方法。
【請求項５】
前記メモリが少なくとも一つのグラフィックプロセッサのメモリを含む、請求項１又は２に記載の方法。
【請求項６】
前記複数のアドレス空間の一つに対応する第３のアパーチャが前記第２のアパーチャから前記書込み操作を受信すると、前記ドライバが、該書込み操作に基づいて、対応する第３のアドレス空間に前記データを書き込み、該受信した書込み操作を複製することで生成した複数の書込み操作を前記メモリ内の複数のアドレス空間に同報通信するステップ
を更に備える請求項１〜５のいずれか一項に記載の方法。
【請求項７】
プロセッサを備えるコンピュータシステムに、複数の書込み操作を生成するためのドライバを実行させ、
前記ドライバが、第１のアパーチャが前記プロセッサから受信した書込み操作に基づいて、前記コンピュータシステムにより管理されているメモリ内の第１のアドレス空間にデータを書き込み、該受信された書込み操作を複製することで生成した複数の書込み操作を前記複数のアドレス空間に同報通信し、
前記ドライバが、第２のアパーチャが前記第１のアパーチャから受信した前記書込み操作に基づいて、前記メモリ内の複数のアドレス空間のうちの第２のアドレス空間に前記データを書き込み、該受信された書込み操作を複製することで生成した複数の書込み操作を前記メモリ内の複数のアドレス空間に同報通信し、
前記第１のアパーチャが前記第１のアドレス空間に対応し、
前記第２のアパーチャが前記第２のアドレス空間に対応し、
前記第１のアパーチャには第１の階層が予め割り当てられ、前記第２のアパーチャには第２の階層が予め割り当てられ、
前記第１の階層が前記第２の階層よりも高い場合に、前記ドライバが、前記第２のアパーチャにより受信された書込み操作に基づいて前記データの書き込み、前記複製、及び前記同報通信を実行する、
プログラム。
【請求項８】
前記第１の階層が前記第２の階層よりも高くない場合には、前記ドライバが、無限ループを回避するために、前記第２のアパーチャにより受信された書込み操作をフィルタリングする、
請求項７に記載のプログラム。
【請求項９】
プロセッサと、複数の書込み操作を生成するためのドライバとを備えるコンピュータシステムであって、
前記コンピュータシステムにより管理されているメモリ内の第１のアドレス空間に対応する第１のアパーチャと、
前記メモリ内の複数のアドレス空間のうちの第２のアドレス空間に対応する第２のアパーチャと
を備え、
前記ドライバが、前記第１のアパーチャが前記プロセッサから受信した書込み操作に基づいて、前記第１のアドレス空間にデータを書き込み、該書込み操作を複製することで生成した複数の書込み操作を前記複数のアドレス空間に同報通信し、
前記ドライバが、前記第２のアパーチャが前記第１のアパーチャから受信した前記書込み操作に基づいて、前記第２のアドレス空間に前記データを書き込み、該受信された書込み操作を複製することで生成した複数の書込み操作を前記メモリ内の複数のアドレス空間に同報通信し、
前記第１のアパーチャには第１の階層が予め割り当てられ、前記第２のアパーチャには第２の階層が予め割り当てられ、
前記第１の階層が前記第２の階層よりも高い場合に、前記ドライバが、前記第２のアパーチャにより受信された書込み操作に基づいて前記データの書き込み、前記複製、及び前記同報通信を実行する、
コンピュータシステム。
【請求項１０】
前記第１の階層が前記第２の階層よりも高くない場合には、前記ドライバが、無限ループを回避するために、前記第２のアパーチャにより受信された書込み操作をフィルタリングする、
請求項９に記載のコンピュータシステム。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明は、複合装置システムに関し、さらに詳しくは、複数の装置にわたって書込み操作を同報通信するために書込み操作を複製することに関する。
【背景】
【０００２】
[0002]複合装置システムでは、装置の各々に関連するメモリに同じデータを頻繁に書き込む必要がある。例示的な複合装置システムとしてＮＶＩＤＩＡスケーラブルリンクインタフェース（ＳＬＩ）グラフィックシステムがある。そのようなシステムを使用しているときには、関連するグラフィックドライバには単一の書込み操作を実行させるが、ハードウェアには複数の装置の各々に関連するメモリへの関連データの書込みをさせることが望ましい場合が多い。
【０００３】
[0003]そのような能力をサポートしようとするときに生じる１つの潜在的な問題は、第１装置によって開始された書込み操作がドライバに送られ、次にドライバがそのような書込み操作を他の各装置のためだけでなく第１装置のためにも複製するときに発生する。そのような状況では、システムが無限ループやデッドロック等に陥るおそれがある。したがって、先行技術に関連するこれらおよび／または他の問題に対処する必要がある。
【概要】
【０００４】
[0004]複数ターゲットシステムで書込み操作を同報通信するためのシステム、方法、およびコンピュータプログラム製品を提供する。使用時に、書込み操作はアドレス空間の複数のアパーチャの１つで受信される。続いて、そのような書込み操作が複製され複数の書込み操作を生成する。この目的のために、書込み操作は複数のターゲットに同報通信される。そのようなターゲットの少なくとも１つは、少なくとも１つの追加書込み操作を生成する別の１つのアパーチャを含む。
【詳細な説明】
【０００５】
[0009]図１は、一実施形態に係る、複数ターゲットシステムで書込み操作を同報通信するための方法１００を示す。図示する通り、書込み操作はアドレス空間の複数のアパーチャの１つで受信される。動作１０２を参照されたい。本書の説明の文脈において、アパーチャとは各々、（まもなく明らかになるように）書込み操作を受信するとその複製を引き起こすアドレス空間の一意の部分を指す。例えば、様々な実施形態で、アパーチャは各々、アドレス範囲、不連続のアドレスの集合、および／または上記の定義を満たす任意の他のアパーチャを含むが、それらに限定されない。
【０００６】
[0010]様々な実施形態で、アドレス空間は論理および／または物理アドレス空間を含んでもよい。さらに、アドレス空間は単一のメモリの異なる部分、または異なるメモリ（すなわち異なるメモリ集積回路等）と関連してもよい。さらに、そのようなメモリは汎用メモリであってもよいし、かつ／または１つもしくは複数のプロセッサ（例えばグラフィックプロセッサ等）と関連してもよい。
【０００７】
[0011]引き続き図１に関連して、受信された書込み操作はその後複製されて、複数の書込み操作が生成される。動作１０４を参照されたい。そのような複製は、単一の書込み操作の受信が結果的に複数のそのような書込み操作を引き起こす任意のメカニズムを含んでもよい。
【０００８】
[0012]この目的のために、複製された書込み操作が複数のターゲットに同報通信されてもよい。動作１０６を参照されたい。本書の説明の文脈において、前述のターゲットとはアドレス空間の任意の部分を指し、動作１０２のアパーチャと重複することもあれば重複しないこともある。さらに、そのような同報通信とは、対応する書込み操作をターゲットが受信する結果をもたらす任意の種類の通信を指す。
【０００９】
[0013]様々な実施形態で、任意の個数（１、２−Ｎ）のアパーチャ、ターゲット、複製等を使用できることに注目されたい。例えば、あるデータを特定のターゲットに書き込むように構成された書込み操作の受信は、結果的に、ある同じデータを複数のターゲットに書き込むための複数の操作を引き起こすかもしれない。そのような実施例では、書き込まれるデータは同一であるかもしれないが、複製される書込み操作に関連するプロトコル、フォーマット、および／または他の特徴は、システムの構成等に応じて同一であるかもしれず、そうでないかもしれない（それでも依然として「複製」とみなされる）。
【００１０】
[0014]使用時に、動作１０６のターゲットの少なくとも１つは、少なくとも１つの追加書込み操作が生成されるようにアパーチャの別の１つを含む。この目的のために、一つの典型的な実施形態では、最初の書込み操作は、動作１０４に記載された複製を結果的に引き起こすだけでなく、さらなる追加の書込み操作を生成する追加の複製をも引き起こすかもしれない。
【００１１】
[0015]さらに、一部の実施形態では上記動作を繰り返してもよい。例えば追加書込み操作を複製して、複数の追加ターゲットのために複数の追加書込み操作を生成してもよく、追加ターゲットの少なくとも１つは、少なくとも１つの追加書込み操作を生成する少なくとも１つのアパーチャを含む。言うまでもなく、任意の個数の追加アパーチャをそのような仕方でトラバースして、任意の所望の数の書込み操作を生成してもよい。
【００１２】
[0016]無限ループ等を回避しながらも書込み操作のそのような複製を容易にするために、そのような問題を引き起こす書込み操作をフィルタリングしてもよい。例えば書込み操作があるアパーチャを対象とし、次にそのアパーチャがそれ自身を対象としていることが明らかになった場合には、そのような書込み操作は拒絶される。
【００１３】
[0017]書込み操作が特定のターゲット等に対して影響を及ぼす仕方について柔軟性を増大するように設計された一実施形態では、アパーチャを階層的に編成することができる。例えばアパーチャに異なる階層（０、１、２−Ｎ）を割り当てることができる。１つの考えられる実施形態では、そのような階層は予め定めておくことができる。
【００１４】
[0018]この目的のために、動作１０６の書込み操作は前述の階層を用いて条件付きで容認される。例えば、特定の書込み操作によってどのアパーチャがトラバースされたかに基づいて割り当てられる書込み操作レベルと、特定の書込み操作の対象となるアパーチャのうちの一つのアパーチャの階層に基づいて、書込み操作は条件付で容認される。一実施形態では、特定の書込み操作は、（どのアパーチャが特定の書込み操作によってトラバースされたかに基づいて割り当てられる）書込み操作レベルが、特定の書込み操作の対象となるアパーチャのうちの一つのアパーチャの階層より高い場合にだけ、容認される。
【００１５】
[0019]次に、ユーザの希望により前述のフレームワークが実現されるかもしれず、実現されないかもしれない、様々な任意のアーキテクチャおよび特徴に関して、より具体的な情報を提示する。以下の情報は例証を目的として提示するものであって、どのような形であれ限定と解釈すべきではないことに強く留意されたい。以下の特徴はいずれも、記載する他の特徴を排除するか否かに関係なく、任意に組み込むことができる。
【００１６】
[0020]図２は、一実施形態に係る、書込み操作を同報通信するための複数アパーチャアドレス空間２００を示す。選択肢として、本実施形態のアドレス空間２００は図１の方法１００を実行するために実装されてもよい。しかし、言うまでもなく、アドレス空間２００は任意の所望の環境で実現できる。また、前述の定義は本実施形態を説明する間適用できることにも留意されたい。
【００１７】
[0021]図示する通り、アドレス空間２００は、レベル０の書込み操作０を受信するとその複製を引き起こすようにされている第１レベルのアパーチャ２０２を含む。一実施形態では、レベル０の書込み操作０は中央処理装置（ＣＰＵ）から受信されてもよいし、ついでに言えば、任意の他のソースからも受信されてもよい。
【００１８】
[0022]本実施例では、第１レベルのアパーチャ２０２はレベル０の書込み操作０を２回複製して、図示するように２つのレベル１の書込み操作１を生成する。図示するように、２つのレベル１の書込み操作１は、２つの第２レベルのアパーチャ２０４の形を取る同サイズの２つのターゲットに同報通信される。図示するように、レベル０の書込み操作０が第１レベルのアパーチャ２０２に適用される際のオフセット２０５は、２つのレベル１の書込み操作１が第２レベルのアパーチャ２０４に適用される際に複製される。
【００１９】
[0023]本実施例では二重複製を示しているが、任意の数の複製を採用してもよいことに留意されたい。言うまでもなく、より多数またはより少数のターゲットが書込み操作を受け、それらのターゲットは任意の個数のアパーチャと重複するかもしれず、しないかもしれない。さらに、ターゲットは単一のメモリの異なる部分、または任意の個数の異なるメモリ（例えば異なる装置に関連する異なるメモリ集積回路等）と関連するかもしれない。この設計により、非常に柔軟なフレームワークが提供される。
【００２０】
[0024]ターゲットが第２レベルのアパーチャ２０４の形を取るという事実のおかげで、そのようなレベル１の書込み操作１は、この実施例では４つのレベル２の書込み操作２の複製および様々なターゲットへの同報通信を引き起こす。この事例では、そのようなターゲットは、第１レベルのアパーチャ２０２だけでなく、さらなる書込み操作の複製を引き起こさない三つの非アパーチャターゲット２０６も含む。
【００２１】
[0025]したがって、今明らかになるように、様々なアパーチャは各々、予め定められた階層レベル（１、２−Ｎ）に関連付けられる。さらに、書込み操作のレベルはＸと指定される。ここでＸは最後にトラバースされるアパーチャのレベルを含む（最初の書込み操作においてはＸ＝０である）。言うまでもなく、そのような取決めは単にアドレス空間２００の説明を明確にするために規定しただけであり、任意の取決めを使用してよい。
【００２２】
[0026]本実施形態の階層構造では、同報通信される書込み操作のレベルが、対象となるアパーチャのレベルを超えないというルールが設定される。そのようなルールは、無限ループ等を回避することを含め、しかしそれに限らず、様々な理由から設定されてよい。この設計により、第１レベルのアパーチャ２０２を対象とするレベル２の書込み操作２はフィルタリングされ、その結果、図示するように適用が阻止される。言うまでもなく、そのような階層やルールの有無に関係なく他の実施形態が想定される。さらに、所望の手法でターゲットおよびアパーチャの任意の重複を構成できる。
【００２３】
[0027]次に、図３−１０の説明中に、多種多様な構成、及び典型的なトランザクションに関する更なる情報を示す。言うまでもなく、以下の情報は単なる例証のために提示するものであって、どのような形であろうと限定して解釈すべきではない。
【００２４】
[0028]図３は、一実施形態に係る、２つの装置（例えばグラフィックプロセッサ等）と関連する２つのターゲットＡ、Ｂを持つ構成３００を示す図である。図示する通り、ターゲットと同報アパーチャ１とは重複しない。
【００２５】
[0029]図４は、別の実施形態に係る、２つの装置（例えばグラフィックプロセッサ等）と関連する２つのターゲットＡ、Ｂを持つ構成４００を示す図である。図示する通り、ターゲットＡと同報アパーチャ１とは重複している。１つの考えられる実施形態では、そのような構成は、複数のグラフィックプロセッサがＰＣＩＥブリッジチップなどの使用を介して単一のＰＣＩＥコントローラに接続される場合に使用され得る。
【００２６】
[0030]図５は、さらに別の実施形態に係る、４つの装置（例えばグラフィックプロセッサ等）と関連する４つのターゲットＡ、Ｂ、Ｃ、Ｄを持つ構成５００を示す図である。ターゲットＡ、Ｂ、Ｃ、Ｄと３つの同報アパーチャ１、２、３とは重複しない。図示する通り、書込み操作は同報アパーチャ３で受信されて複製され、非アパーチャターゲットＡ、Ｂに同報通信される。
【００２７】
[0031]図６は、さらに別の実施形態に係る、４つの装置（例えばグラフィックプロセッサ等）と関連する４つのターゲットＡ、Ｂ、Ｃ、Ｄを持つ構成６００を示す図である。図５の構成５００と同様に、ターゲットＡ、Ｂ、Ｃ、Ｄと３つの同報アパーチャ１、２、３とは重複しない。しかし、図示する通り、書込み操作は第２同報アパーチャ２で受信されて複製され、非アパーチャターゲットＣ、Ｄに同報通信される。
【００２８】
[0032]図７は、さらに別の実施形態に係る、４つの装置（例えばグラフィックプロセッサ等）と関連する４つのターゲットＡ、Ｂ、Ｃ、Ｄを持つ構成７００を示す図である。図５−６の構成５００、６００と同様に、ターゲットＡ、Ｂ、Ｃ、Ｄと３つの同報アパーチャ１、２、３とは重複しない。しかし、図示する通り、書込み操作は、第２および第３同報アパーチャ２，３に同報通信する第１同報アパーチャ１で受信されて複製され、非アパーチャターゲットＣ、Ｄに同報通信される。第２同報アパーチャ２で受信された書込み操作は複製され、非アパーチャターゲットＣ、Ｄに同報通信される。さらに、第３同報アパーチャ３で受信された書込み操作は複製されて、非アパーチャターゲットＡ、Ｂに同報通信される。
【００２９】
[0033]図８は、別の実施形態に係る、４つの装置（例えばグラフィックプロセッサ等）と関連する４つのターゲットＡ、Ｂ、Ｃ、Ｄを持つ構成８００を示す図である。図示する通り、ターゲットＡと第３同報アパーチャ３とが重複し、ターゲットＣと第２同報アパーチャ２とが重複し、ターゲットＤと第１同報アパーチャ１とが重複している。さらに図示する通り、書込み操作はターゲットＡ／第３同報アパーチャ３で受信され、非アパーチャターゲットＢおよびターゲットＡ／第３同報アパーチャ３への同報通信のために複製される。（第３同報アパーチャ３と一致する）ターゲットＡを対象とすることによって、結果的にライトスルー（ｗｒｉｔｅ  ｔｈｒｏｕｇｈ）が生じる（例えば、書込み操作が第３同報アパーチャ３によってそれ以上複製されない）。
【００３０】
[0034]図９は、別の実施形態に係る、４つの装置（例えばグラフィックプロセッサ等）と関連する４つのターゲットＡ、Ｂ、Ｃ、Ｄを持つ構成９００を示す図である。図示する通り、ターゲットＡと第３同報アパーチャ３とが重複し、ターゲットＣと第２同報アパーチャ２とが重複し、およびターゲットＤと第１同報アパーチャ１とが重複している。さらに図示する通り、書込み操作はターゲットＣ／第２同報アパーチャ２で受信され、ターゲットＣ／第２同報アパーチャ２およびターゲットＤ／第１同報アパーチャ１への同報通信のために複製される。図８の状況と同様に、ターゲットＣで受信された書込み操作は結果的に、ターゲットＤ／第１同報アパーチャ１を対象とする書込み操作に加えてライトスルーを発生させる。
【００３１】
[0035]本実施形態では、第２および第３同報アパーチャ２、３から生成されるターゲットアドレスが第１同報アパーチャ１のベースアドレス範囲を対象とするように階層ルールを設定することができるが、これらは追加の書込み操作を生成しない。したがって、（第１同報アパーチャ１と一致する）ターゲットＤを対象とすることによって、それ以上の書込み操作の複製を排除できる。
【００３２】
[0036]図１０は、別の実施形態に係る、４つの装置（例えばグラフィックプロセッサ等）と関連する４つのターゲットＡ、Ｂ、Ｃ、Ｄを持つ構成１０００を示す図である。図示する通り、ターゲットＡと第３同報アパーチャ３とが重複し、ターゲットＣと第２同報アパーチャ２とが重複し、ターゲットＤと第１同報アパーチャ１とが重複している。さらに図示する通り、書込み操作はターゲットＤ／第１同報アパーチャ１で受信され、ターゲットＡ／第３同報アパーチャ３およびターゲットＣ／第２同報アパーチャ２への同報通信のために複製される。
【００３３】
[0037]図８−９の状況と同様に、ターゲットＣで受信された書込み操作は結果的に、ターゲットＤ／第１同報アパーチャ１を対象とする書込み操作に加えてライトスルーを発生させる。また、図９に示す先の実施形態と同様に、第２および第３同報アパーチャ２、３から生成されるターゲットアドレスが第１同報アパーチャ１のベースアドレス範囲を対象とするように階層ルールを設定できるが、これらは追加の書込み操作を生成しない。したがって、（第１同報アパーチャ１と一致する）ターゲットＤを対象とすることによって、図示するようにそれ以上の書込み操作の複製を排除できる。
【００３４】
[0038]他方、ターゲットＡ／第３同報アパーチャ３を対象とする第１アパーチャ１からの書込み操作は結果的に、非アパーチャターゲットＢおよびターゲットＡ／第３同報アパーチャ３への同報通信のために書込み操作の複製を発生させる。（第３同報アパーチャ３と一致する）ターゲットＡを対象とすることによって、結果的にライトスルーが生じる（例えば、書込み操作が第３同報アパーチャ３によってそれ以上複製されない）。現在の構成１０００が示すように、同報アパーチャベースとターゲット範囲との重複は、４つの複合装置システムにおける最大限の柔軟性を可能にする。
【００３５】
[0039]次に、実現例を提供することを目的として、１つの例示的なフレームワークについてさらなる情報を示す。以下の詳細はどのような形でも限定して解釈すべきではないことに強く留意されたい。そのような取り得る実施形態では、ＣＰＵのＰＣＩ構成空間の制御レジスタに様々なビットを設定することによって、３つの同報アパーチャを独立に使用可能にすることができる。そのような実施形態では、各アパーチャは、ベースレジスタおよびマスクレジスタによって定義される、システムの物理アドレス空間に位置するメモリ領域を含む。ベースレジスタおよびマスクレジスタは１２ビット幅とすることができ、例えばアドレスビット３５：２４に関連付けることができる。
【００３６】
[0040]そのような実施例の状況において、マスクレジスタは、要求されたどのアドレスビット３５：２４がベース［３５：２４］と合致するかを決定する。換言すると、例えば（Ａ［３５：２４］＆マスク［１１：０］）＝＝（ベース［１１：０］＆マスク［１１：０］）であるならば、アドレスＡは同報アパーチャ内にある。そのような例示的な定義は結果的に、１６ＭＢから６４ＧＢまでのサイズ範囲とすることができかつ無理なく整列される同報アパーチャをもたらす。
【００３７】
[0041]本実施形態では、２つのターゲットレジスタを各同報アパーチャ、すなわちターゲットＡおよびターゲットＢに関連付けることができる。各ターゲットレジスタは１２ビット幅とすることができ、アドレスビット３５：２４に関連付けることができる。使用が許可された同報アパーチャを書込み操作が対象とする場合には、ターゲットＡによって記述されるアドレス領域にそれをリダイレクトすることができ、第２の書込みを同じデータでコピーし、ターゲットＢによって記述されるアドレス領域に送ることができる。
【００３８】
[0042]各ターゲットアドレス領域内のリダイレクトされた書込みのオフセットは、同報アパーチャ内の最初の書込み操作のオフセットと同一であってもよい。換言すると、同報アパーチャ内のアドレスＡへの着信書込みは、次の表１にある通り、下流で２つの書込み操作を引き起こす。
表１
書込みＡ［３５：２４］＝（ターゲットＡ［１１：０］＆マスク［１１：０］）|（〜マスク［１１：０］＆Ａ［３５：２４］）
書込みＢ［２３：０］＝Ａ［２３：０］
書込みＡ［３５：２４］＝（ターゲットＢ［１１：０］＆マスク［１１：０］）|（〜マスク［１１：０］＆Ａ［３５：２４］）
書込みＢ［２３：０］＝Ａ［２３：０］
【００３９】
[0043]一実施形態では、同報アパーチャはポストされた書込みに影響を及ぼすだけであるかもしれない。ポストされた書込みとは、ターゲットからの応答を要求または請求しない書込み操作を指す。読出しまたは任意の同報アパーチャへのポストされない（ｎｏｎ−ｐｏｓｔｅｄ）書込みは影響を受けず、それらの非修正アドレスに基づいて送信される。
【００４０】
[0044]一実施形態では、第３の同報アパーチャは、そのターゲットが最初の２つの同報アパーチャと重複してもよいという点で、他の２つの同報アパーチャとは異なるかもしれない。これは、ＣＰＵからの単一の書込み操作が結果的に複数の（例えば４つの）ターゲットアドレスへの書込み操作を引き起こすカスケード同報通信を生成するために使用できる。
【００４１】
[0045]表２は、関連実施形態の状況で必要に応じて適用可能な、考えられる様々なルールを示す表である。言うまでもなく、そのような情報は単なる説明のために提示するものであって、どのような形であろうと限定と解釈すべきではない。
表２
・各同報アパーチャのためのターゲットＡおよびターゲットＢは相互に重複しない。
・使用許可された同報アパーチャのベースアドレス範囲は、他の同報アパーチャのベースアドレス範囲と重複しない。
・「１」にセットされたマスクレジスタの全ビットは連続しており、「０」にリセットされた同じマスクレジスタのどのビットよりも重要である。
・同報通信メカニズムは、生成された書込みトラヒックで下流ＦＰＣＩバスを飽和させることが可能である。
・同報通信メカニズムは、下流ＦＰＣＩが飽和しない限り、下流ＣＰＵの書込み操作を抑制する原因にはならない。
【００４２】
[0046]様々な実施形態で、システムはピアツーピアトラヒックに対して機能するかもしれず、しないかもしれないことに留意されたい。１つのＰＣＩＥコントローラから別のＰＣＩＥコントローラへの書込みのようなピアツーピア書込み操作は、必ずしも一部の同報通信メカニズムによって修正または変更されない。換言すると、ピアツーピア書込みが、動作中の同報アパーチャのアドレス範囲を対象とする場合には、追加書込みまたはアドレス修正は発生しない（すなわちピアツーピア書込みの最初のアドレスが維持されて、下流等に送られる）。言うまでもなく、ピアツーピアトラヒックを可能にする他の実施形態も考えられる。
【００４３】
[0047]様々な実施形態において、適切な機能性を確実にするために何らかのソフトウェアドライバサポートを使用してもよい。例えば一実施形態では、グラフィックプロセッサのローカルメモリは、システム物理アドレス空間において、グラフィックプロセッサによって定義されたアドレス範囲に配置することができる。動作するために、同報アパーチャターゲット範囲はシステムのグラフィックプロセッサのローカルメモリを指し示す必要があるかもしれない。グラフィックプロセッサのローカルメモリのアドレス割当ては通常静的であるが、様々な目的のため（例えばホットプラグイベント等の後に新しい装置用の空間をアドレス空間に設けるため）に、オペレーティングシステムによって再配置することができる。このようにして、同報アパーチャに関連するターゲット範囲がそのような変化を追跡できるようにするためのメカニズムを使用することができる。
【００４４】
[0048]更なる実行可能な実施形態では、同報アパーチャおよび対応するターゲット範囲を構成するレジスタをＣＰＵに関連付けることができる。さらに、一部のオペレーティングシステムは必ずしも、それらに関連付けられる装置以外の装置に関連するリソースをドライバに参照させることができない。その結果、そのようなオペレーティングシステムを使用するプラットフォームでは、ドライバは必ずしも同報ターゲット範囲を直接移動させることができない。そのような場合、同報アパーチャの機能性が維持されるように必要に応じてＣＰＵの構成を変化させるために、チップセットドライバを設けてもよい。
【００４５】
[0049]一実施形態では、ドライバ間通信を可能にする何らかのソフトウェアインタフェースを設けてもよい。これらのインタフェースは、再計数中のグラフィックプロセッサのベースアドレスレジスタ（ＢＡＲ）の再プログラミングのような稀な事象に対処することができる。オペレーティングシステムの装置ドライバモデルがそのようなインタフェースをグラフィックドライバに利用させなくする状況では、前述のサービスに対する要求を遮って、グラフィックドライバの代わりに前述のチップセット装置ドライバと通信するフィルタドライバを設けてもよい。
【００４６】
[0050]一実施形態では、グラフィックプロセッサのＢＡＲの更新は下記表３に記載するように進めることができる。
表３
１．フィルタドライバをグラフィックミニドライバの上に配置する。
２．ＣＰＵの同報レジスタをプログラムするために高度構成および電力インタフェース（ＡＣＰＩ）方法を提供するＳＢＩＯＳ。
３．ＢＡＲが上位のオペレーティングシステムによって移動されたときにそれを検出する。
４．（ひとたび移動が検出されると）（フィルタドライバを用いて）ＡＣＰＩドライバを始動して、ＢＩＯＳでＡＣＰＩ方法を始動させ、ＣＰＵレジスタを更新する。
【００４７】
[0051]図１１は、様々な先の実施形態の様々なアーキテクチャおよび／または機能性を実現できる典型的なシステム１１００を示す図である。図示する通り、通信バス１１０２に接続された少なくとも１つのホストプロセッサ１１０１を含むシステム１１００が設けられる。システム１１００は主メモリ１１０４も含む。制御論理（ソフトウェア）およびデータは、ランダムアクセスメモリ（ＲＡＭ）の形を取ることのできる主メモリ１１０４に格納される。
【００４８】
[0052]システム１１００はまた、グラフィックプロセッサ１１０６およびディスプレイ１１０８、すなわちコンピュータモニタをも含む。一実施形態では、一以上のグラフィックプロセッサ１１０６はそれぞれ、複数のシェーダモジュール、ラスタライゼーションモジュール等を含んでもよい。前述のモジュールの各々が単一の半導体プラットフォーム上に位置し、グラフィック処理装置（ＧＰＵ）を形成してもよい。
【００４９】
[0053]本書の説明では、単一の半導体プラットフォームとは、単独単体の半導体をベースとする集積回路またはチップのことをいうこともある。単一半導体プラットフォームという用語は、オンチップオペレーションをシミュレートして、従来の中央処理装置（ＣＰＵ）およびバスの実装を利用する場合よりも大幅な改善を達成する、接続性を高めたマルチチップモジュールをいうこともある。言うまでもなく、様々なモジュールがユーザの希望に応じて別々に、または半導体プラットフォームの様々な組合せで配置されることもある。
【００５０】
[0054]システム１１００は二次記憶装置１１１０も含んでもよい。二次記憶装置１１１０は、例えばハードディスクドライブ、および／またはフロッピディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ等を表わす取外し可能な記憶ドライブを含む。取外し可能な記憶ドライブは取外し可能な記憶装置に対する読み書きを周知の方法で実行する。
【００５１】
[0055]コンピュータプログラムまたはコンピュータ制御論理アルゴリズムは、主メモリ１１０４および／または二次記憶装置１１１０に格納してよい。そのようなコンピュータプログラムが実行されると、システム１１００は様々な機能を実行できる。メモリ１１０４、記憶装置１１１０、および／または他の記憶装置は、コンピュータ可読媒体の考えられる例である。
【００５２】
[0056]一実施形態では、様々な先の図のアーキテクチャおよび／または機能性は、ホストプロセッサ１１０１、グラフィックプロセッサ１１０６、ホストプロセッサ１１０１およびグラフィックプロセッサ１１０６の両方の能力の少なくとも一部分を持つ集積回路（図示せず）、チップセット（すなわち関連機能等を実行するためのユニットとして動作するように設計され販売される一群の集積回路）、ならびに／またはついでに言うと他の集積回路により実現できる。
【００５３】
[0057]さらに、様々な先の図のアーキテクチャおよび／または機能性は、汎用コンピュータシステム、回路基板システム、エンターテイメント専用のゲームコンソールシステム、特定用途向けシステム、および／またはいずれかの他の所望のシステムにより実現できる。例えばシステム１１００は、デスクトップコンピュータ、ラップトップコンピュータ、および／または任意の他の型の論理の形を取ることができる。さらに、システム１１００は携帯情報端末（ＰＤＡ）装置、携帯電話機、テレビ等を含む様々な他の装置ｍの形を取ることができるが、これらに限定されない。
【００５４】
[0058]さらに、図示しないが、システム１１００は通信のためにネットワーク（例えば電気通信ネットワーク、構内通信網（ＬＡＮ）、無線ネットワーク、あるいは、インターネット、ピアツーピアネットワーク、ケーブルネットワーク等の広域ネットワーク（ＷＡＮ））に接続してもよい。
【００５５】
[0059]様々な実施形態を説明したが、当然ながら、それらは単なる実施例として提示したものであって、これに限定されるものではない。したがって好適な実施形態の広さおよび範囲は、上述した典型的な実施形態のいずれによっても限定されず、特許請求の範囲およびその均等物によってのみ定義される。
【図面の簡単な説明】
【００５６】
【図１】一実施形態に係る、複数ターゲットシステムで書込み操作を同報通信するための方法を示す図である。
【図２】一実施形態に係る、書込み操作を同報通信するための複数アパーチャアドレス空間を示す図である。
【図３】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図４】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図５】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図６】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図７】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図８】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図９】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図１０】様々な実施形態に係る、重複する又はしない様々な個数のターゲット及びアパーチャを備える構成を示す図である。
【図１１】先の様々な実施形態の様々なアーキテクチャおよび／または機能性を実現することのできる典型的なシステムを示す図である。
【符号の説明】
【００５７】
１１００…システム。
【図１】
0004985982.tif 000002
【図２】
0004985982.tif 000003
【図３】
0004985982.tif 000004
【図４】
0004985982.tif 000005
【図５】
0004985982.tif 000006
【図６】
0004985982.tif 000007
【図７】
0004985982.tif 000008
【図８】
0004985982.tif 000009
【図９】
0004985982.tif 000010
【図１０】
0004985982.tif 000011
【図１１】
0004985982.tif 000012