(57)【要約】  本発明の実施例は、コンフィグレーション・レジスターのアクセス方法を対象とする。第１のレジスターへのアクセスが行われたという表示が受信される。この第１のレジスターは、コンフィグレーション・レジスターを指すインデックス変数を反映する。次に、第２のレジスターへのアクセスが行われたという表示が受信される。この第２のレジスターは、インデックス変数が指すコンフィグレーション・レジスターの内容の一部を反映する。次に、第１のレジスターへの別のアクセスが行われるのを待たずに、インデックス変数は別のコンフィグレーション・レジスターを指すよう変更される。他の実施例も説明され請求される。【特許請求の範囲】
【請求項１】
コンフィグレーション・レジスターのアクセス方法であって、
ａ）コンフィグレーション・レジスターを指すインデックス変数を反映する第１のレジスターへのアクセスが行われたという表示を受信する段階、及び次に、
ｂ）インデックス変数が指すコンフィグレーション・レジスターの内容の一部を反映する第２のレジスターへのアクセスが行われたという表示を受信する段階、及び次に、
ｃ）ｂ）に応じて、及び前記第１のレジスターへの別のアクセスが行われるのを待たずに、別のコンフィグレーション・レジスターを指すよう、インデックス変数を変更する段階
を有する、方法。
【請求項２】
前記第１のレジスターへのアクセスは、所与のコンフィグレーション・レジスターを指す所与のインデックス値の書き込みであり、
及び前記第２のレジスターへのアクセスは、前記所与のコンフィグレーション・レジスターの内容の一部である所与の内容値の書き込みである、請求項１記載の方法。
【請求項３】
前記所与のインデックス及び内容値の１つは、前記第１及び第２のレジスターへそれぞれ書き込まれる時に符号化される、請求項２記載の方法。
【請求項４】
前記所与のインデックス及び内容値の両方は、前記第１及び第２のレジスターへそれぞれ書き込まれる時に符号化される、請求項３記載の方法。
【請求項５】
ｃ）の後に、
ｄ）前記第２のレジスターへ別のアクセスが行われたという表示を受信する段階、及び次に
ｅ）ｄ）に応じて、及び前記第１のレジスターへの更に別のアクセスが行われる前に、前記インデックス変数を更に別のコンフィグレーション・レジスターを指すよう、変更する段階、及び次に、
ｄ）からｅ）を更に別のコンフィグレーション・レジスターを指すよう繰り返す段階
を更に有する、請求項２記載の方法。
【請求項６】
ｃ）において、前記インデックス変数は、自動インデックス付けを通じて、コンフィグレーション・レジスターを設定するために特別のモード動作に入った場合のみ変更される、請求項１記載の方法。
【請求項７】
複数のコンフィグレーション・レジスターの設定方法であって、
ａ）ｂ）からｅ）に従って、設定されるべき複数のコンフィグレーション・レジスターを有する集積回路（ＩＣ）部品を第１の動作モードにさせる段階、
ｂ）前記ＩＣ部品内の第１の制御レジスターに、レジスターの選択された１つにアクセスさせるよう、書き込む段階、及び次に、
ｃ）前記ＩＣ部品内の第２の制御レジスターに、前記レジスターの前記選択された１つの内容値を書き込む段階、及び次に、
ｄ）再び前記第１の制御レジスターに書き込まずに、前記第２の制御レジスターに、レジスターの別の選択された１つの更なる内容値を、書き込む段階、及び次に、
ｅ）前記レジスターの全てが設定されるまで、ｄ）を繰り返す段階
を有する、方法。
【請求項８】
更なる複数のコンフィグレーション・レジスターを設定する段階を更に有し、
ｆ）前記第１の動作モードを無効にし、及び次に、
ｇ）前記第１の制御レジスターに、更なるレジスターの選択された１つにアクセスさせるよう、書き込み、及び次に、
ｈ）前記第２の制御レジスターに、前記更なるレジスターの前記選択された１つの内容値を書き込み、及び次に、
前記更なるレジスターの全てが設定されるまでｇ）からｈ）を繰り返す
ことにより更なる複数のコンフィグレーション・レジスターを設定する、請求項７記載の方法。
【請求項９】
前記複数のレジスターは連続的に設定される、請求項８記載の方法。
【請求項１０】
集積回路（ＩＣ）部品であって、
複数のコンフィグレーション・レジスター、
カウンターを自動的にインクリメント又はデクリメントすることにより変更できる、第１のインデックス値を提供するカウンター、
前記第１のインデックス値を受信する第１の入力、第２のインデックス値を受信する第２の入力、前記複数のレジスターをインデックス付けするよう結合された出力を有し、前記カウンターを自動的にインクリメント又はデクリメントすることにより前記レジスターがインデックス付けされるＩＣ部品の動作モードを示す制御信号を受信する、マルチプレクサー・ロジック、及び
コンフィグレーション・レジスターへアクセスする要求が前記ＩＣ部品の外部から受信されたことを示す第１のハードウェア制御信号を受信する入力、及び前記カウンターへインクリメント又はデクリメント信号を提供する出力を有する、検出ロジック
を有する、部品。
【請求項１１】
前記第１のハードウェア制御信号は、前記ＩＣ部品のコンフィグレーション・データ・レジスターを書き込む要求を受信したことを示し、前記検出ロジックは、前記コンフィグレーション・レジスターを読み出す要求を受信したことを示す第２のハードウェア制御信号、アサートされている前記第１及び第２のハードウェア制御信号の何れか１つに応じてアサートされる前記インクリメント又はデクリメント信号を受信する入力を更に有する、請求項１０記載のＩＣ部品。
【請求項１２】
前記カウンターは、前記ＩＣ部品の外部から受信された前記ＩＣ部品のコンフィグレーション・アドレス・レジスターへの書き込み要求から取得されたインデックス値を読み込む更なる入力を有する、請求項１０記載のＩＣ部品。
【請求項１３】
コンピューター・システムであって、
第１のプロセッサー及び主記憶装置の組、
画像用サブシステム、及び
第１のポイント・ツー・ポイント接続を経由して前記第１の組に通信できるよう結合され、そして第２のポイント・ツー・ポイント接続を経由して前記画像用サブシステムに通信できるよう結合されるＩ／Ｏハブ、
前記第１の組と前記画像用サブシステム要素の間でブリッジとして動作する前記Ｉ／Ｏハブを有し、
前記Ｉ／Ｏハブは、複数のコンフィグレーション・レジスターを有し、一部のコンフィグレーション・レジスターの内容は、前記ブリッジの片側で受信されたトランザクション要求が、どのようにブリッジの別の側へ転送されるかを示し、及び
前記Ｉ／Ｏハブは、
第１のインデックス値を提供するカウンター、
カウンターを自動的にインクリメント又はデクリメントすることによりレジスターがインデックス付けされるモードである前記Ｉ／Ｏハブの動作モードを示す制御信号を受信し、前記第１のインデックス値を受信する第１の入力、第２のインデックス値を受信する第２の入力を更に有するマルチプレクサー・ロジック、及び
前記Ｉ／Ｏハブの外部から受信された、コンフィグレーション・レジスターへアクセスする要求を示す第１のハードウェア制御信号を受信する入力、前記カウンターにインクリメント又はデクリメント信号を提供する出力を有する検出ロジック
を更に有する、システム。
【請求項１４】
第３のポイント・ツー・ポイント接続を経由して前記Ｉ／Ｏハブに、及び第４のポイント・ツー・ポイント接続を経由して前記第１の組に通信可能なように結合された、第２のプロセッサーと主記憶装置の組を更に有し、そして前記Ｉ／Ｏハブは、前記第２の組と前記画像用サブシステムの間で更にブリッジとして動作する、請求項１３記載のシステム。
【請求項１５】
第５のポイント・ツー・ポイント接続を経由して前記Ｉ／Ｏハブに通信可能なように結合されたネットワーク・インターフェース制御部を更に有する、請求項１４記載のシステム。
【請求項１６】
前記Ｉ／Ｏハブは、共にレジスターの選択された１つを指すポート番号、機能番号、及びレジスター番号を有するコンフィグレーション・アドレス・レジスター、及びレジスターの選択された１つの内容の一部を反映するコンフィグレーション・データ・レジスターを更に有する、請求項１３記載のシステム。
【請求項１７】
ソフトウェア・アクセス可能なレジスターの設定方法であって、
ａ）コンピューター・システム内で、前記システムの複数のソフトウェア・アクセス可能なレジスターの１つを指すインデックス変数にアクセスすることを目的とする第１のバス・イベント、及び前記インデックス変数が指すレジスターの内容にアクセスすることを目的とする第２のバス・イベントを検出する段階、及び次に
ｂ）前記ソフトウェア・アクセス可能なレジスターのいくつかを設定するために、ブロック・モードに変更する段階、及び次に
ｃ）前記システム内で、前記インデックス変数が指すレジスターの１つを更新することを目的とする第３のバス・イベントを検出する段階、及び次に
ｄ）ｃ）に応じて、及び前記インデックス変数にアクセスすることを目的とする別のバス・イベントを待たずに、前記インデックス変数を前記複数のレジスターの別の１つを指すよう変更する段階
を有する、方法。
【請求項１８】
前記第１のバス・イベントは、所与のインデックス値を前記システムの第１のレジスターに書き込み、前記所与のインデックス値は前記複数のソフトウェア・アクセス可能なレジスターの所与の１つを指し、
及び前記第２のバス・イベントは所与の内容値を前記システムの第２のレジスターに書き込み、前記システムはそして前記所与の内容値を所与の前記ソフトウェア・アクセス可能なレジスターに書き込む、
請求項１７記載の方法。
【請求項１９】
前記所与のインデックス及び内容値は、前記第１及び第２のレジスターにそれぞれ書き込まれる時に符号化される、請求項１８記載の方法。
【請求項２０】
ｄ）の後に、
ｅ）前記複数のレジスターの前記別の１つを更新する第４のバス・イベントを検出する段階、及び次に、
ｆ）ｅ）に応じて、及び前記インデックス変数を更新する更に別のバス・イベントを受信する前に、前記インデックス変数を前記複数のレジスターの更に別の１つを指すよう変更する段階、
を更に有する、請求項１７記載の方法。
【請求項２１】
第１及び第２のレジスターは、前記システムのホストＣＰＵ  Ｉ／Ｏアドレス空間に割り付けられる、請求項１８記載の方法。
【請求項２２】
製品であって、
機械によりアクセスされる時に、
ａ）第１の複数のコンフィグレーション・レジスターは以下のｂ）からｄ）に従い設定される、ブロック・モード動作、及び次に、
ｂ）第１の制御レジスターにアクセスするバス・トランザクション、及び次に、
ｃ）第２の制御レジスターにアクセスする別のバス・トランザクション、及び次に、
ｄ）前記第１の制御レジスターにアクセスする更なるバス・トランザクションを有さずに、それぞれが第２の制御レジスターにアクセスする複数の更なるバス・トランザクション
を開始するデータを有する、機械アクセス可能な媒体
を有する、製品。
【請求項２３】
前記媒体は、機械によりアクセスされた時に、前記ブロック・モードから通常モ―ドへの復帰を生じるデータを更に有し、通常モードでは、第２のコンフィグレーション・レジスターは、前記第１の制御レジスターにアクセスするバス・トランザクションを、そして次に前記第２の制御レジスターにアクセスする別のバス・トランザクションを開始することにより設定される、請求項２２記載の製品。
【請求項２４】
前記データは、前記第１及び第２の制御レジスターをホスト／ＣＰＵ  Ｉ／Ｏアドレス空間へ割り付けられるよう処理する、請求項２３記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
以下に説明される本発明の実施例は、１つ以上のコンピューター・システムの集積回路部品を含む、コンピューター・システムの機能の設定に用いられる、ソフトウェア・アクセス可能なレジスターへのアクセスに関する。
【背景技術】
【０００２】
コンピューター・システムは、一般に、Ｉｎｔｅｌ  Ｃｏｒｐ．（カリフォルニア州、サンタクララ）によるＰＥＮＴＩＵＭ（登録商標）プロセッサー等のプロセッサー、及び主記憶装置を含む、複数の基本的な集積回路（ＩＣ）部品を有する。多くの場合、システム・インターフェース部品（システム・チップセットとも称される）も用いられ、プロセッサーが画像用サブシステム、ネットワーク・インターフェース制御部、及び大容量記憶装置等の多くの他のＩＣ部品及び周辺装置と通信できるようにする。各ＩＣ部品は、システムが総合的な目的を達成するよう支援するために、共に動作する特定の機能を実現するよう設計される。
【０００３】
上記の基本ＩＣ部品のうち、システム・チップセットは最も多くの数の異なる機能に対応する。なぜならシステム・チップセットは多くの場合、プロセッサーと他のＩＣ部品の間だけでなく、周辺装置と主記憶装置の間の通信のブリッジとしても動作するからである。ＩＣ製造資源をより効率的に利用するために、単一のシステム・チップセットは異なる種類のプロセッサー、記憶装置、及び周辺装置の組合せに対応するよう、十分に柔軟に設計される。この柔軟性は、システム・チップセットを、複数の内部、ソフトウェア・アクセス可能なレジスター（コンフィグレーション・レジスターとも称される）に応じてコンフィグレーション及び機能が設定される、設定可能な、内部ハードウェアと共に設計することにより達成できる。与えられたコンピューター・システムの電源投入後、システム・チップセット内の（及びプロセッサー及び記憶装置等の他の基本ＩＣ部品内の）コンフィグレーション・レジスターは、一般的にオペレーティング・システム・プログラムの制御下で、所望の値を書き込まれる。
【０００４】
Ｉｎｔｅｌ  Ｃｏｒｐ．の８２４４３ＢＸホスト・ブリッジ／コントローラー・チップセットの場合、コンフィグレーション・レジスターの設定（コンフィグレーション空間の設定とも称される）は、以下の通りで良い。２つの制御レジスターが、ホスト／中央演算処理装置（ＣＰＵ）Ｉ／Ｏアドレス空間、つまりコンフィグレーション・アドレス・レジスター（ＣＯＮＦＡＤＤ、１６進数のアドレスＣＦ８により称される場合もある）及びコンフィグレーション・データ・レジスター（ＣＯＮＦＤＡＴＡ、１６進数のアドレスＣＦＣにより称される場合もある）からアクセス可能である。何れのコンフィグレーション・レジスターへのアクセスも、最初にＣＯＮＦＡＤＤへアクセスし、そして選択されたレジスターを（選択されたレジスターを「指す」ようにＣＯＮＦＡＤＤを適切に書き込むことにより）識別する。次に、選択されたレジスターの現在の値を有するＣＯＮＦＤＡＴＡへのアクセスが実行され、新しい値を書き込む。選択されたレジスターは、従って、適切に更新される。別のコンフィグレーション・レジスターを設定するために、同様の２段階のアクセス動作が繰り返される。つまり、最初に（ＣＯＮＦＡＤＤを書き込むことにより）次のレジスターを指し、そして次に（新しい値をＣＯＮＦＤＡＴＡに書き込むことにより）更新を要求する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
コンピューター・システムの基本ＩＣ部品、特にシステム・チップセット内のコンフィグレーション・レジスターの数は、将来のコンピューター・アーキテクチャに向けて有意に増加する傾向がある事が分かっている。例えば、（複数のプロセッサー、他のＩＣ部品、及び周辺装置との）ポイント・ツー・ポイント接続のシステム相互接続に対応するチップセットでは、各システムの初期化時に変更及び／又は設定する数百のレジスターがあって良い。更に、これらのレジスターは、将来においてより幅広くなり、より多くのコンフィグレーション・データが設定される必要があるだろう。最終的に、多くの場合、一般にコンフィグレーション・レジスターのアクセスのために定義される、バス・プロトコル及びバス周期は、メモリー・アクセスを目的とした場合に比べ、比較的遅い。例えば、これは高速な設定プロセスの必要性が認識されていないからである。これらの要因は共に、将来のコンピューター・システムにおいて初期化プロセスを有意に減速させることが予想される。
【実施例】
【０００６】
本発明の実施例は、例として図示され、添付の図により制限されるものではない。図中の同様の参照符号は同様の要素を示す。本願明細書における「単一」表記の本発明の実施例は、必ずしも同一の実施例ではなく、少なくとも１つであることを意味する。
【０００７】
図１は、コンピューター・システムの初期化プロセスを加速する一連のコンフィグレーション・レジスターへのアクセス方法のフローチャートを示す。図１は、「受信機」、例えば設定のためのコンフィグレーション・レジスター及び関連するハードウェアが存在する、システム・チップセット部品により実行される動作を示す。一方、図２は、「送信機」、例えば設定されたホスト／ＣＰＵから見た、コンフィグレーション・レジスターへのアクセス方法を示す。図１では、動作は、アドレス・レジスターへのアクセスが行われたとうい表示の受信から開始する（動作１０４）。アドレス・レジスターは、例えば、上述の１６進数アドレスＣＦ８にあるＣＯＮＦＡＤＤであって良い。アクセスが行われ、一連のコンフィグレーション・レジスターのうち所与のコンフィグレーション・レジスターを指す所与のインデックス値が書き込まれて良い。また、アドレス・レジスターからインデックス値を読み出しても良い。何れの場合も、動作はブロック１０８で実行される。
【０００８】
ブロック１０８では、本願明細書ではデータ・レジスターと称する別のレジスターへのアクセスが行われたという表示が受信される。例えば、このアクセスは、所与のコンフィグレーション・レジスターの内容の部分である所与の内容値の書き込みで良い。次に、動作は、一連のコンフィグレーション・レジスターのうち別のコンフィグレーション・レジスターを指すようインデックス値を変更する（ブロック１１２）。これはアドレス・レジスターへの別のアクセスを待たずに実行される。言い換えると、インデックスは自動的に別のコンフィグレーション・レジスターを指すように変更される。これは、それぞれ次のコンフィグレーション・レジスター毎にアドレス・レジスターへ別にアクセスすることを回避するので、コンフィグレーション・レジスターを設定するプロセス全体の加速を助ける。集積回路（ＩＣ）部品のこの動作モードは、本願明細書では特別又はブロック・モード動作とも呼ばれる。
【０００９】
上述のプロセスは複数ある。第１に所与のインデックス及び内容値の１つ又は両方は、アドレス及びデータ・レジスターへそれぞれ書き込まれる時に、符号化されて良い。以下の例は、図４のコンピューター・システムと接続されている。図４では、インデックス値はアドレス・レジスターの複数のフィールドの組合せから抽出又は導出される。更に、例えば、自動インデックス付けを経由して一連のレジスターを設定するために、予めブロック・モード動作に入っている場合のみ、インデックス変数は自動的に変更されて良い。通常モード及びブロック・モードのプロセスの例は、図２に示される。更に別の変形では、インデックス変数の変更は、一連のレジスターが昇順又は降順アドレスに従って連続的に設定されるよう、固定のインクリメント又はデクリメントであって良い。最後に、インデックス変数は、アドレス・レジスターから分離した論理構造（例えば、カウンター又はレジスター）により実現されて良い。他の変形も可能である。
【００１０】
上述の連続する２つ以上のコンフィグレーション・レジスターへのアクセス方法は、続いて、図１に示されるように、データ・レジスターへの別のアクセスが行われたという表示を受信する（ブロック１１４）。次に、ブロック１１４における更なる表示の受信に応じて、及びアドレス・レジスターへの更に別のアクセスを受信する前に、インデックス変数は一連のコンフィグレーション・レジスターのうち更に別のコンフィグレーション・レジスターを指すよう変更される（ブロック１１８）。ブロック１１４及び１１８における動作は、更なるデータ・レジスターへのアクセスが受信された場合、一連のコンフィグレーション・レジスターのうち更に別のコンフィグレーション・レジスターを指すよう、繰り返されて良い。
【００１１】
留意すべきは、上記のプロセスは、（データ・レジスターの内容に基づき）選択されたコンフィグレーション・レジスターに実際に書き込まれる新たな内容値を含む設定に適することである。更に、上記の動作はアドレス又はデータ・レジスターの何れかへのアクセスが行われたという表示を受信するが、これは例えば、バス・イベント（例えば、アドレス及び／又はデータ・レジスターを目的とした特定のバス・トランザクション）の特定の種類の検出だけでなく、例えばブロック１０４に関連して、アドレス・レジスターに実際に新しいインデックス値が書き込まれた事を検出することも含まれると理解されるべきである。同様に、ブロック１０８では、データ・レジスターへのアクセスが行われたという表示の受信は、データ・レジスターを目的とした特定のバス・イベントが検出されること、又は新しい内容値がデータ・レジスターに書き込まれたことであって良い。レジスターへのアクセスが行われたという表示を受信する他の方法が用いられても良い。
【００１２】
図２は、送信機（例えばホスト／ＣＰＵ）から見た、コンフィグレーション・レジスターの設定方法のフローチャートを示す。実際には２つの異なるプロセスが示され、これらはブロック・モードが有効か否かに依存して（ブロック２０２）、一方又は他方のプロセスが実行されて良い。この例では、コンフィグレーション・レジスターの同一のセットが両方のプロセスで設定される。図２の左側に示されるプロセスでは（通常モードの動作）、インデックス値０１、０２、０３の３つのコンフィグレーション・レジスターが、ブロック２０４から２２４に従って設定される。このプロセスで留意すべき点は、２段階の動作が各レジスターに対し行われることである。例えば、レジスターをインデックス値０１に設定するために、ブロック２０４及び２０８は、続けて以下の動作を行う。つまり、最初にインデックス値がアドレス・レジスター（本実施例では１６進数アドレスＣＦ８）に書き込まれ、次にデータ・レジスター（１６進数アドレスＣＦＣ）のコンフィグレーション・データ又は内容値を読み出す又は書き込む。
【００１３】
図２の左側のプロセスと対比し、右側のプロセスは、基本的に本実施例においてブロック２１２及び２２０に記述された動作を除去し、それらを次の連続するインデックスに自動インクリメントで置き換えることによる（ブロック２１０及び２１８）、自動インデックス付けの利点がある。設定されるべきコンフィグレーション・レジスターが比較的多数の場合、アドレス・レジスターＣＦ８への書き込み動作全体を除去することにより、時間が有意に節約される。
【００１４】
留意すべき点は、図２に示される方法に対応するＩＣ部品は、コンフィグレーション・レジスターの設定動作の２つのモードを有して良いことである。１つはブロック・モードであり、図２の右側のフローに例示される。他方は通常モードであり、同図の左側に示される。ＩＣ部品は、従って、ブロック・モード動作を有効又は無効に設定できるよう、ソフトウェア・アクセス可能な更なるレジスターと共に設計されて良い。これはコンフィグレーション・レジスターの異なるグループが、異なるモードに設定されることを許可し、有意に時間を節約する。例えば、比較的大きい、レジスターの最初のグループは、ブロック・モードにおいて連続的に設定される。ＩＣ部品は、次に通常モードに戻り、（最初のグループと連続的に続いていない）次のグループの最初のレジスターへジャンプする。この機能は図３に示される。図３では、最初に、インデックス又はアドレス１−６を有するグループは、ブロック・モードで設定される。次にＩＣ部品は通常モードなり、アドレス２１のレジスターを設定する。続いて、ブロック・モードは、アドレス５４−５９のレジスターを設定する。そして次に、通常モードになり、アドレス１０４の単独のレジスターを設定する。続いて、ブロック・モードになり、レジスター１７４−１８０を連続的に設定する。
【００１５】
図４は、コンフィグレーション・レジスターの自動インデックス付けを可能にするＩＣ部品の部分の論理図である。ＩＣ部品はシステム・チップセット、プロセッサー、又はコンピューター・システムの他の基本ＩＣ部品であって良い。複数のコンフィグレーション・レジスター３０４は、ＩＣ部品、例えばＩＣ部品のコア・ロジックと共にオンチップで（図示されない）提供される。これらレジスター３０４のそれぞれは、マルチプレクサー・ロジック３０８の出力によりインデックス付けされて良い。一旦インデックス付け又は選択されると、選択されたレジスター（図では「データ」と称される場合もある）の一部又は全ては、ハードウェア制御信号ＣＦＣリード・コマンドの制御下で、データ・レジスター（ＣＦＣ、図示されない）へ転送される。また、データは、ハードウェア制御信号ＣＦＣライト・コマンドの制御下で、選択されたレジスターに書き込まれて良い。ＣＦＣライト及びリード・コマンドは、要求が（例えば、ＩＣ部品の外部から）受信され、データ・レジスター（ＣＦＣ）をそれぞれ書き込み及び読み出しすることを示す、信号の例である。
【００１６】
マルチプレクサー・ロジック３０８は、２つの入力を有して良い。第１の入力は、カウンター３１２からインデックス値を受信して良い。同時に、第２の入力は、本実施例では、予めインデックス値が書き込まれたアドレス・レジスター（ＣＦ８）から直接導出されたインデックス値を受信して良い。マルチプレクサー・ロジック３０８の出力は、カウンター３１２からのインデックス値とアドレス・レジスター（ＣＦ８）から取得されたインデックス値の間から、ＩＣ部品の動作モードを指示するブロック・モード・イネーブル制御信号に従い選択される。
【００１７】
カウンター３１２により提供されるインデックス値は、例えばカウンター３１２を自動的にインクリメント又はデクリメントすることにより、変更できる。インクリメント又はデクリメント信号は検出ロジック３１６により提供されて良い。
【００１８】
運用では、ＩＣ部品が通常モードにある場合、コンフィグレーション・レジスター３０４に提供されたインデックスは、ＣＦ８の内容がソフトウェアによって書き込まれている場合、ＣＦ８の内容から導出されて良い。しかしながら、ブロック・モードが有効となっている場合、インデックスはカウンター３１２から取得される。ブロック・モード・イネーブル信号のアサートは、カウンター３１２にＣＦ８から取得した値をロード可能にする。ＣＦ８は、検出ロジック３１６の指示に従い自動的にインクリメントされる、インデックス値を続いて提供する。検出ロジック３１６が、コンフィグレーション・レジスターへのアクセス要求を（例えば、ＩＣ部品の外部から）受信している場合、及び特にＣＦＣライト又はリード・コマンドを検出している場合はいつでも、カウンター３１２は次のコンフィグレーション・レジスターを指すようインクリメントされる。自動インデックス付け機能を実現する他の論理設計を用いることもできる。
【００１９】
図５は、チップセット部品のコンフィグレーション・レジスターが自動インデックス付けにより設定できる、コンピューター・システムのブロック図である。本実施例のチップセット部品は、Ｉ／Ｏハブ４１６と称される。Ｉ／Ｏハブ４１６は、一方ではプロセッサーと主記憶装置４０４との間のブリッジとして、また他方では１つ以上のＩ／Ｏ要素４０８、４１２として動作する。本実施例では、Ｉ／Ｏ要素４０８は、ネットワーク・インターフェース制御部であり、要素４１２は画像制御部／サブシステムである。Ｉ／Ｏハブ４１６は、更に別の要素（図示されない）と通信するために用いられる、追加ポートを備えて良い。
【００２０】
本実施例では、４つのプロセッサーと主記憶装置の組４０４が示される。この組は一般に１つ以上存在できる。これらプロセッサーと主記憶装置の各組は、互いに通信できるよう、図の通り独立な、高速データの、ポイント・ツー・ポイント接続により結合されている。ポイント・ツー・ポイント接続は、１つ以上の「レーン」を有して良く、各レーンは、関連するＩ／Ｏバッファ回路（図示されない）と共に、プリント基板上の単一の経路で構成され、主に２つのプロセッサーと主記憶装置の組４０４の間の間接的な通信に用いられて良い。更にポイント・ツー・ポイント接続はまた、Ｉ／Ｏハブ４１６とＩＣ部品４０８、４１２を通信できるよう結合するために用いられる。ポイント・ツー・ポイント接続は、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｂａｓｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  １．０ａ（２００３年４月１５日）に準拠して動作するよう設計されて良い。
【００２１】
コンフィグレーション・レジスターのセット４２４、及びアドレス及びデータ・レジスターの対はＩ／Ｏハブ４１６に設けられる。例えば、コンフィグレーション・アドレス・レジスター（ＣＦ８）は、ポート番号、機能番号、及びレジスター番号のフィールドで定義されて良い。これらのフィールドの内容は、共に、あるものは符号化の形式を通じて、コンフィグレーション・レジスター４２４の選択された１つに書き込まれる。この選択されたレジスター４２４の内容は、コンフィグレーション・データ・レジスター（ＣＦＣ）に反映される。
【００２２】
少なくともコンフィグレーション・レジスター４２４の一部は、Ｉ／Ｏハブ４１６により実現されているブリッジの片側で受信されたトランザクション要求が、どのようにブリッジの反対側に転送されるかを示して良い。レジスター４２４は、例えばデバイス識別子、ベンダー識別子、タイマー、メモリー制御、及びタイミング、エラー状態、メモ帳等を含む、他の機能を設定するよう設計されて良い。更に、図示されないが、Ｉ／Ｏハブ４１６は、上述の自動インデックス付け機能を実現するために必要な、図４に示された論理図のような、論理回路を有しても良い。
【００２３】
図５のシステムを用いて、ブロック・モードでレジスター４２４を設定する方法を以下に説明する。最初に、レジスター４２４の１つを指すインデックス変数へのアクセスを目的とした、バス・イベントの所定の種類が検出される。例えば、インデックス変数は、コンフィグレーション・アドレス・レジスター（ＣＦ８）に反映されて良く、ＣＦ８は、システムのホストの中央演算処理装置（ＣＰＵ）のＩ／Ｏアドレス空間に割り付けられ、どのプロセッサーと記憶装置の組４０４によってもアクセス可能なようにする。Ｉ／Ｏハブ４１６のロジックは、ＣＦ８へのアクセスを目的としたバス・イベントについて、接続４０５又は４０７の何れかを監視するよう設計できる。
【００２４】
そのようなバス・イベントを検出すると、ロジックは、インデックス変数が指すレジスター４２４の１つを更新することを目的としたバス・イベントが続いて起こることを期待する。このバス・イベントは、ＣＦＣを対象とし、選択された／インデックス付けされたコンフィグレーション・レジスター４２４を目的とした又はそれから引き出された内容値を読み出す又は書き込むトランザクションであって良い。次に、Ｉ／Ｏハブ４１６はブロック・モードであるので、後のバス・イベントが検出された場合はいつでも、論理回路は、インデックス変数へのアクセスを目的とした別のバス・イベントを待たずに、インデックス変数をコンフィグレーション・レジスター４２４の別の１つを指すように変更する。留意すべき点は、インデックス変数のこの変更は、アドレス・レジスター（ＣＦ８）が続けて読み出される場合、ＣＦ８に反映されて良い。更に、インデックス変数が指すコンフィグレーション・レジスターの現在の内容は、続けてデータ・レジスター（ＣＦＣ）の読み出しがある場合、ＣＦＣに反映されて良い。ブロック・モードが有効である限り、論理回路はインデックス変数を（コンフィグレーション・レジスターの別の１つを指すよう）、データ・レジスターへのアクセスを目的とするバス・イベントが検出される毎に、アドレス・レジスター（ＣＦ８）を更新するバス・イベントを要求せずに、変更し続けて良い。
【００２５】
纏めると、インデックスを自動的に変更することによりコンフィグレーション・レジスターへアクセスする方法及び装置の種々の実施例が説明された。本願明細書では、本発明は特定の実施例を参照して説明された。しかしながら、請求項に定義される本発明の広範な精神及び範囲から逸脱することなく、種々の変形及び変更が成されて良いことは明らかである。例えば、図５は、Ｉ／Ｏハブ４１６内に存在し、「フロントサイド」接続４０５、４０７を経由してアクセスされるコンフィグレーション及び制御レジスター４２４、４２０を示すが、他にもプロセッサーと記憶装置の組４０４内又はＩＣ部品４０８、４１２内に存在して良く、そしてプラットフォーム管理システム４１６を経由して低速バス（図示されない）を通じてアクセスされても良い。本願明細書及び図は、従って、限定的ではなく、説明的意味であると見なされる。
【図面の簡単な説明】
【００２６】
【図１】コンピューター・システムの初期化プロセスを加速する一連のコンフィグレーション・レジスターへのアクセス方法のフローチャートを示す。
【図２】「送信機」、例えば設定されたホスト／ＣＰＵから見た、コンフィグレーション・レジスターへの２つの異なるアクセス方法を示す。
【図３】ブロック・モードにおいて個別に設定されて良いコンフィグレーション・レジスターの３つのグループを示す。
【図４】コンフィグレーション・レジスターの自動インデックス付けを可能にするＩＣ部品の部分の論理図である。
【図５】チップセット部品のコンフィグレーション・レジスターが自動インデックス付けにより設定できる、コンピューター・システムのブロック図である。
【図１】
2007507045.tif 000002
【図２】
2007507045.tif 000003
【図３】
2007507045.tif 000004
【図４】
2007507045.tif 000005
【図５】
2007507045.tif 000006
【国際調査報告】
2007507045.tif 000007
2007507045.tif 000008
2007507045.tif 000009