JP3645487B2 - Configuration access routing method - Google Patents

Configuration access routing method Download PDF

Info

Publication number
JP3645487B2
JP3645487B2 JP2000378304A JP2000378304A JP3645487B2 JP 3645487 B2 JP3645487 B2 JP 3645487B2 JP 2000378304 A JP2000378304 A JP 2000378304A JP 2000378304 A JP2000378304 A JP 2000378304A JP 3645487 B2 JP3645487 B2 JP 3645487B2
Authority
JP
Japan
Prior art keywords
configuration
node
access request
access
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000378304A
Other languages
Japanese (ja)
Other versions
JP2002183102A (en
Inventor
民夫 島谷
パトリック・ハミルトン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000378304A priority Critical patent/JP3645487B2/en
Publication of JP2002183102A publication Critical patent/JP2002183102A/en
Application granted granted Critical
Publication of JP3645487B2 publication Critical patent/JP3645487B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、特にコンフィグレーションレジスタへのアクセスルーティング方法に適用して有効な技術に関する。
【0002】
【従来の技術】
本発明者が検討した技術として、コンフィグレーションレジスタへのアクセスルーティング方法に関しては、以下のような技術が考えられる。たとえば、コンピュータシステムの初期化の際に、PCIバス上のPCIデバイスのコンフィグレーションレジスタは、単一のコンフィグレーション空間に連続的に重複しないように配置される。PCIデバイスのコンフィグレーションレジスタへのアクセスは、コンフィグレーション空間上のアドレスでレジスタを選択し、そのアドレスに対して書込みや読込みをすることで行われる。チップセットのコンフィグレーションレジスタへのアクセス方法に関しても、チップセットのコンフィグレーションレジスタをPCIデバイスと同じコンフィグレーション空間上に配置し、PCIデバイスのコンフィグレーションレジスタへのアクセス方法と同様な方法でチップセットのコンフィグレーションレジスタへアクセスする方法が知られている。
【0003】
【発明が解決しようとする課題】
ところで、前記のようなコンフィグレーションレジスタへのアクセスルーティング方法について、本発明者が検討した結果、以下のようなことが明らかとなった。具体的に、従来のコンピュータシステムにおけるコンフィグレーション空間の割当てを示す図6を用いて説明する。
【0004】
図6に示すように、コンフィグレーション空間500のうち、バス番号0のアドレス領域の一部501をチップセットのコンフィグレーションレジスタアクセス用に割当てる方法で、チップセットのコンフィグレーションレジスタをアクセスする際にはこの領域のアドレスを指定することで行う。この方法は、コンフィグレーション空間上で見れば、PCIデバイスとチップセットのコンフィグレーションレジスタの区別なく、CPUからのコンフィグレーションアクセスはPCIデバイスかチップセットかの区別を意識せずに行え、ソフトウェア的に簡単となる。
【0005】
しかしながら、これをハードウェア的に実現する方法は、逆に困難となる。特に、多ノードのコンピュータシステムでは、チップセットとPCIバスが各ノード毎にあり、すべてのノードのPCIデバイスとチップセットのコンフィグレーションレジスタを単一のコンフィグレーション空間上に配置し、任意のノードのCPUからコンフィグレーション空間上のすべてのコンフィグレーションレジスタにアクセスするためのルーティングをどのように実現するかという問題や、ノードで共通に利用するグローバルレジスタをどのように実現するかという問題があった。
【0006】
そこで、本発明の目的は、多ノードのコンピュータシステムにおいて、すべてのノードのPCIデバイスとチップセットのコンフィグレーションレジスタを単一のコンフィグレーション空間上に配置し、任意のノードのCPUからコンフィグレーション空間上のすべてのコンフィグレーションレジスタにアクセスできるルーティング方法を提供するものである。また、各ノードで共通に利用するグローバルレジスタを実現できるアクセスルーティング方法を提供するものである。
【0007】
【課題を解決するための手段】
前記目的を達成するために、本発明のコンピュータシステムでは、自ノードが発行するコンフィグレーションレジスタアクセス要求の宛先を自ノード行きか他ノード行きかを判定してルーティングするノード内コンフィグレーションアクセスルーティングコントローラと、各ノードのノード内コンフィグレーションアクセスルーティングコントローラをノード間で接続し、他ノード行きのコンフィグレーションレジスタアクセス要求を宛先のノードまでルーティングするノード間コンフィグレーションアクセスルーティングコントローラとを備えており、任意のノードのCPUからのコンフィグレーションレジスタアクセス要求を、任意のノードのコンフィグレーションレジスタへルーティングすることができるようにしたものである。
【0008】
また、ノード間コンフィグレーションアクセスルーティングコントローラはマルチキャストやブロードキャストが可能であり、複数ノードあるいは全ノードのコンフィグレーションレジスタを同時設定する機能を備えており、この機能によりグローバルレジスタを実現することができるようにしたものである。
【0009】
詳細に、本発明のコンフィグレーションアクセスルーティング方法は、CPUとメモリとPCIバス上のPCIデバイスと前記PCIバスをHost−PCIバスブリッジ経由で前記CPUと前記メモリに接続するノードコントローラとから構成されるノードと、少なくとも2つ以上のノード間を相互接続するクロスバーとからなるコンピュータシステムにおいて、前記ノードコントローラは、ノード内及びノード間のトランザクションの流れを制御するトランザクションコントローラと、ノード内のチップセットのコンフィグレーションを設定するコンフィグレーションレジスタと、前記コンフィグレーションレジスタ及び前記PCIバス上のPCIデバイスのコンフィグレーションレジスタへのアクセス要求のルーティングを制御するノード内コンフィグレーションアクセスルーティングコントローラとからなる構成において実現されるものである。
【0010】
前記構成において、前記トランザクションコントローラは、前記CPUと前記メモリと前記Host−PCIバスブリッジと前記ノード内コンフィグレーションアクセスルーティングコントローラと前記クロスバー内のアドレス・データバスクロスバースイッチに接続し、自ノードCPUあるいは自ノードPCIデバイスあるいは前記アドレス・データバスクロスバースイッチ経由の他ノードからのトランザクションを受け付け、前記トランザクションの種類を判定し、前記トランザクションがメモリへのアクセス要求トランザクションであるならば前記メモリにアクセス要求を送出し、前記トランザクションがPCIデバイスへのアクセス要求トランザクションであるならば前記PCIバスへアクセス要求を送出し、前記トランザクションがコンフィグレーションレジスタへのアクセス要求トランザクションであるならば前記ノード内コンフィグレーションアクセスルーティングコントローラにコンフィグレーションレジスタアクセス要求を送出するように動作するものである。
【0011】
また、前記コンフィグレーションアクセスルーティング方法において、前記ノード内コンフィグレーションアクセスルーティングコントローラは、前記トランザクションコントローラとスーパーバイザプロセッサと前記クロスバーの中のノード間コンフィグレーションアクセスルーティングコントローラに接続し、前記トランザクションコントローラと前記スーパーバイザプロセッサからのコンフィグレーションレジスタへのアクセス要求を調停し、受け付けたコンフィグレーションアクセス要求の宛先を判定し、前記コンフィグレーションアクセス要求が自ノードのコンフィグレーションレジスタへのアクセス要求であるならば、前記コンフィグレーションアクセス要求を自ノードのコンフィグレーションレジスタに送出し、前記コンフィグレーションアクセス要求が他ノードへのコンフィグレーションレジスタへのアクセス要求であるか、前記クロスバー内のコンフィグレーションレジスタへのアクセス要求であるか、あるいは、マルチキャスト・ブロードキャストのコンフィグレーションアクセス要求である場合は、前記ノード間コンフィグレーションアクセスルーティングコントローラに前記コンフィグレーションアクセス要求を送出するように動作するものである。
【0012】
さらに、前記ノード間コンフィグレーションアクセスルーティングコントローラは、各ノードから送出されたコンフィグレーションアクセス要求を調停し、受け付けたコンフィグレーションアクセス要求の宛先を判定し、前記コンフィグレーションアクセス要求の宛先がクロスバー内のコンフィグレーションレジスタへのアクセス要求であるならば、前記コンフィグレーションアクセス要求をクロスバー内のコンフィグレーションレジスタへ送出し、前記コンフィグレーションアクセス要求の宛先が特定ノードへのコンフィグレーションアクセス要求であるならば、そのノードのみに前記コンフィグレーションアクセス要求を送出し、複数のノードへのコンフィグレーションアクセス要求であるならば、前記コンフィグレーションアクセス要求を宛先の複数ノードに同時到着するようにマルチキャストし、すべてのノードへのコンフィグレーションアクセス要求であるならば、前記コンフィグレーションアクセス要求をすべてのノードに同時到着するようにブロードキャストするように動作するものである。
【0013】
また、前記コンフィグレーションアクセスルーティング方法において、すべてのノードのコンフィグレーションレジスタは単一のコンフィグレーション空間上に配置され、すべてのノードのCPUは、前記コンフィグレーション空間上のすべてのコンフィグレーションレジスタにアクセス可能であり、ノード構成を意識せずにコンフィグレーションレジスタをアクセスできるようにしたものである。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【0015】
まず、図1により、本発明の一実施の形態のコンフィグレーションアクセスルーティング方法を実現するためのコンピュータシステムの一例の構成を説明する。図1は本実施の形態のコンピュータシステムの一例を示す。本実施の形態のコンピュータシステムは、複数のノード10と、それらのノード10を相互接続するクロスバー100と、スーパーバイザプロセッサ150などから構成される。
【0016】
ノード10は、CPU20と、メモリ30と、PCIバス40上のPCIデバイス50と、PCIバス40をHost−PCIバスブリッジ60経由でCPU20とメモリ30に接続するノードコントローラ70などから構成される。
【0017】
ノードコントローラ70は、ノード内及びノード間のトランザクションの流れを制御するトランザクションコントローラ71と、ノード内のチップセットのコンフィグレーションを設定するコンフィグレーションレジスタ72と、チップセットのコンフィグレーションレジスタ72へのアクセス要求及びPCIバス40上のPCIデバイス50のコンフィグレーションレジスタ51へのアクセス要求のルーティングを制御するノード内コンフィグレーションアクセスルーティングコントローラ73などから構成される。
【0018】
トランザクションコントローラ71は、CPU20とメモリ30とHost−PCIバスブリッジ60とノード内コンフィグレーションアクセスルーティングコントローラ73とクロスバー100内のアドレス・データバスクロスバースイッチ110に接続し、自ノードCPU20あるいは自ノードPCIデバイス50あるいはアドレス・データバスクロスバースイッチ110経由の他ノードからのトランザクションを受け付け、トランザクションの種類を判定し、受け付けたトランザクションがメモリへのアクセス要求トランザクションであるならばメモリ30にアクセス要求を送出し、受け付けたトランザクションがPCIデバイスへのアクセス要求トランザクションであるならばHost−PCIバスブリッジ60経由でPCIバス40へアクセス要求を送出し、受け付けたトランザクションがコンフィグレーションレジスタへのアクセス要求トランザクションであるならばノード内コンフィグレーションアクセスルーティングコントローラ73にコンフィグレーションレジスタアクセス要求を送出する動作をする。
【0019】
ノード内コンフィグレーションアクセスルーティングコントローラ73は、トランザクションコントローラ71とスーパーバイザプロセッサ150とクロスバー100の中のノード間コンフィグレーションアクセスルーティングコントローラ120に接続し、CPU20とスーパーバイザプロセッサ150とノード間コンフィグレーションアクセスルーティングコントローラ120からのコンフィグレーションアクセス要求を受け付け、調停を行い、ノード内のチップセットのコンフィグレーションレジスタ72あるいはPCIデバイス50内のコンフィグレーションレジスタ51へのアクセス要求をルーティングする動作をする。
【0020】
次に、本実施の形態の作用について、図2、図3、図4、図5により、コンフィグレーションアクセスルーティング方法の一例を説明する。
【0021】
図2にノード内コンフィグレーションアクセスルーティングコントローラ73の一例の内部構成を示す。ノード内コンフィグレーションアクセスルーティングコントローラ73は、2組のコンフィグレーションアドレスレジスタ201,202と、2組のコンフィグレーションデータレジスタ203,204と、アービタ205と、アドレスデコーダ206と、ルータ207と、アービタ208と、ルータ209から構成される。
【0022】
コンフィグレーションアドレスレジスタ201,202には、コンフィグレーション空間上のアクセスしたいコンフィグレーションレジスタのアドレスを設定する。その後、コンフィグレーションデータレジスタ203,204にリード・ライトすることにより、コンフィグレーションアドレスレジスタ201,202に設定したアドレスに対して、コンフィグレーションアクセス要求がコンフィグレーションデータレジスタ203,204から宛先のコンフィグレーションレジスタまでルーティングされる。
【0023】
コンフィグレーションアドレスレジスタ201,202とコンフィグレーションデータレジスタ203,204のサイズは図4に示すとおり、各々32bitである。コンフィグレーションアドレスレジスタ201,202に設定するアドレスは、PCIバス40の仕様におけるバス番号、デバイス番号、ファンクション番号、レジスタ番号が、各々、コンフィグレーションアドレスレジスタ201,202のBit23−16(401)、Bit15−11(402)、Bit10−8(403)、Bit7−0(404)に順番に対応する。
【0024】
コンフィグレーションアドレスレジスタ201とコンフィグレーションデータレジスタ203はトランザクションコントローラ71と接続されており、CPU20からはIO空間上の特定のアドレスにマッピングされたレジスタに見える。そのアドレスに対してIOリード・ライトすることにより、トランザクションコントローラ71から、コンフィグレーションアドレスレジスタ201とコンフィグレーションデータレジスタ203へのリード・ライト要求が送出される。
【0025】
コンフィグレーションアドレスレジスタ202とコンフィグレーションデータレジスタ204はスーパーバイザプロセッサ150に接続されており、スーパーバイザプロセッサ150からのコンフィグレーションアクセス要求はこのコンフィグレーションアドレスレジスタ202とコンフィグレーションデータレジスタ204にアクセスすることで送出される。
【0026】
トランザクションコントローラ71とスーパーバイザプロセッサ150からのコンフィグレーションアクセス要求は、アービタ205によって調停される。調停されたコンフィグレーションアクセス要求は、アドレスデコーダ206に入り、宛先のノードの判定やマルチキャスト・ブロードキャストすべきコンフィグレーションレジスタへのアクセス要求であるかの判定が行われ、ルーティングに必要な情報が作成される。
【0027】
ルータ207はそのルーティング情報を元に、宛先を判定し、コンフィグレーションアクセス要求が自ノードのコンフィグレーションレジスタへのアクセス要求であるならば、コンフィグレーションアクセス要求をアービタ208にルーティングし、他ノードへのコンフィグレーションレジスタへのアクセス要求か、クロスバー100内のコンフィグレーションレジスタ130へのアクセス要求か、マルチキャスト・ブロードキャストのコンフィグレーションアクセス要求である場合は、クロスバー100内のノード間コンフィグレーションアクセスルーティングコントローラ120にコンフィグレーションアクセス要求をルーティングする。
【0028】
ルータ207とノード間コンフィグレーションアクセスルーティングコントローラ120からのコンフィグレーションアクセス要求は、アービタ208で調停される。調停されたコンフィグレーションアクセス要求は、ルータ209に入り、ルーティング情報から、コンフィグレーションアクセス要求の宛先が判定される。コンフィグレーションアクセス要求の宛先がPCIバス上のPCIデバイスへのコンフィグレーションレジスタならば、コンフィグレーションアクセス要求を、トランザクションコントローラ71とHost−PCIバスブリッジ60経由で、PCIバス40上にルーティングし、コンフィグレーションアクセス要求の宛先がノード内のチップセットのコンフィグレーションレジスタならば、コンフィグレーションアクセス要求をコンフィグレーションレジスタ72にルーティングする。
【0029】
図3にノード間コンフィグレーションアクセスルーティングコントローラ120の一例の構成を示す。図3は例として4ノードの場合を示している。4ノード以外の場合においても本発明は有効である。ノード間コンフィグレーションアクセスルーティングコントローラ120は、アービタ310と、ルータ320と、ブロードキャストルータ330と、アービタ340から構成される。
【0030】
アービタ310は各ノードからのコンフィグレーションアクセス要求を受け付け、複数ノードからのコンフィグレーションアクセス要求がある場合に調停を行う。アービタ310の調停によって選択されたコンフィグレーションアクセス要求は、ルータ320により、ルーティング情報が判定され、コンフィグレーションアクセス要求の宛先がクロスバー100内のコンフィグレーションレジスタ130ならば、コンフィグレーションアクセス要求をアービタ340にルーティングし、コンフィグレーション要求がノード10へのコンフィグレーションアクセス要求であるならば、コンフィグレーションアクセス要求をブロードキャストルータ330にルーティングする。
【0031】
ブロードキャストルータ330は、ルータ320から受け付けたコンフィグレーションアクセス要求のルーティング情報を判定し、コンフィグレーションアクセス要求の宛先が特定ノードへのコンフィグレーションレジスタへのアクセス要求であるならば、コンフィグレーションアクセス要求をそのノードのみへ送出し、複数のノードへのコンフィグレーションアクセス要求であるならば、コンフィグレーションアクセス要求を宛先の複数ノードに同時到着するようにマルチキャストし、すべてのノードへのコンフィグレーションアクセス要求であるならば、コンフィグレーションアクセス要求をすべてのノードに同時到着するようにブロードキャストする。
【0032】
ルータ320とスーパーバイザプロセッサ150からのコンフィグレーションアクセス要求は、アービタ340で調停され、クロスバー100のコンフィグレーションレジスタ130にルーティングされる。
【0033】
前述した従来のコンフィグレーション空間500の割当方法である図6を、本実施の形態のような多ノードシステム用に拡張した一例を図5に示す。拡張された部分は、ノードのチップセットのコンフィグレーションレジスタアクセス用に仮想的なPCIバス番号をノード毎に割当て、物理的にあるPCIバスの最後の番号の後にノードのチップセットのコンフィグレーションレジスタアクセス用のアドレス領域502を割当てたところである。これにより、単一のコンフィグレーション空間500上にすべてのノードのコンフィグレーションレジスタが配置され、ルーティングの宛先判定はコンフィグレーションアクセス要求のアドレスがコンフィグレーション空間500のどのアドレス領域にあるかを判定して行う。なお、図6においてチップセットのコンフィグレーションレジスタアクセス用に使用していたアドレス領域501は、各ノードで共通に利用するグローバルレジスタの領域として使用する。
【0034】
従って、本実施の形態によれば、自ノードが発行するコンフィグレーションレジスタアクセス要求の宛先を自ノード行きか他ノード行きかを判定してルーティングするノード内コンフィグレーションアクセスルーティングコントローラ73と、各ノード10のノード内コンフィグレーションアクセスルーティングコントローラ73をノード間で接続し、他ノード行きのコンフィグレーションレジスタアクセス要求を宛先のノード10までルーティングするノード間コンフィグレーションアクセスルーティングコントローラ120を備え、任意のノード10からのコンフィグレーションレジスタアクセス要求を、任意のノード10のコンフィグレーションレジスタ72までのルーティングを実現することができる。
【0035】
また、ノード間コンフィグレーションアクセスルーティングコントローラ120はマルチキャストやブロードキャストが可能であり、複数ノードあるいは全ノードのコンフィグレーションレジスタ72を同時設定可能であり、この機能によりグローバルレジスタを実現することができる。
【0036】
本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。たとえば、コンフィグレーション空間の割当てにおいては、前述した例に限られるものではなく、すべてのノードのコンフィグレーションレジスタを単一のコンフィグレーション空間上に配置していればよい。
【0037】
【発明の効果】
以上述べたように、本発明によれば、ノード内のコンフィグレーションアクセスルーティングコントローラとノード間のコンフィグレーションアクセスルーティングコントローラを組み合わせて、コンフィグレーションアクセス要求のルーティングを行うことにより、任意のノードのCPUから、コンピュータシステム上の任意のノードのコンフィグレーションレジスタへアクセスすることができる。さらに、ノード間のコンフィグレーションアクセスルーティングコントローラはコンフィグレーションアクセス要求をブロードキャストする機能を持ち、すべてのノードのレジスタに対して同時書込みができるので、そのようなレジスタをグローバルレジスタとして見なして利用することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態のコンフィグレーションアクセスルーティング方法を実現するためのコンピュータシステムを示す構成図である。
【図2】本発明の一実施の形態において、ノード内コンフィグレーションアクセスルーティングコントローラを示す構成図である。
【図3】本発明の一実施の形態において、ノード間コンフィグレーションアクセスルーティングコントローラを示す構成図である。
【図4】本発明の一実施の形態において、コンフィグレーションアドレスレジスタとコンフィグレーションデータレジスタのビットフォーマットを示す説明図である。
【図5】本発明の一実施の形態において、多ノードコンピュータシステムのために拡張したコンフィグレーション空間の割当てを示す説明図である。
【図6】従来のコンピュータシステムにおけるコンフィグレーション空間の割当てを示す説明図である。
【符号の説明】
10…ノード、20…CPU、30…メモリ、40…PCIバス、50…PCIデバイス、60…Host-PCIバスブリッジ、70…ノードコントローラ、71…トランザクションコントローラ、72…コンフィグレーションレジスタ、73…ノード内コンフィグレーションアクセスルーティングコントローラ、100…クロスバー、110…アドレス・データバスクロスバースイッチ、120…ノード間コンフィグレーションアクセスルーティングコントローラ、130…コンフィグレーションレジスタ、150…スーパーバイザプロセッサ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a computer system, and more particularly to a technique effective when applied to a method for routing an access to a configuration register.
[0002]
[Prior art]
As a technique examined by the present inventor, the following technique is conceivable with respect to a method for routing an access to the configuration register. For example, when the computer system is initialized, the configuration registers of PCI devices on the PCI bus are arranged so as not to be continuously overlapped in a single configuration space. Access to the configuration register of the PCI device is performed by selecting a register with an address on the configuration space and writing or reading the address. Regarding the method of accessing the configuration register of the chipset, the chipset configuration register is placed in the same configuration space as the PCI device, and the chipset configuration register is accessed in the same manner as the method of accessing the configuration register of the PCI device. A method for accessing the configuration register is known.
[0003]
[Problems to be solved by the invention]
By the way, as a result of the study of the access routing method to the configuration register as described above, the following has been clarified. Specifically, the configuration space allocation in a conventional computer system will be described with reference to FIG.
[0004]
As shown in FIG. 6, when accessing the chip set configuration register by accessing a part 501 of the address area of bus number 0 in the configuration space 500 for accessing the chip set configuration register. This is done by specifying the address of this area. This method can be viewed from the configuration space without distinguishing between the PCI device and chipset configuration registers, and the configuration access from the CPU can be performed without being aware of the distinction between the PCI device and the chipset. It will be easy.
[0005]
However, a method for realizing this in hardware becomes difficult. In particular, in a multi-node computer system, a chipset and a PCI bus are provided for each node, and PCI devices and chipset configuration registers of all nodes are arranged on a single configuration space, so that an arbitrary node There is a problem of how to realize routing for accessing all the configuration registers in the configuration space from the CPU, and a problem of how to realize a global register commonly used in the nodes.
[0006]
Therefore, an object of the present invention is to arrange PCI devices and chipset configuration registers of all nodes in a single configuration space in a multi-node computer system, and from any node CPU to the configuration space. Provides a routing method that allows access to all configuration registers. Further, the present invention provides an access routing method capable of realizing a global register that is commonly used by each node.
[0007]
[Means for Solving the Problems]
In order to achieve the above object, in the computer system of the present invention, an intra-node configuration access routing controller for determining whether a destination of a configuration register access request issued by the own node is destined for the own node or another node and routing Each node has an intra-node configuration access routing controller connected between the nodes, and an inter-node configuration access routing controller that routes configuration register access requests destined for other nodes to the destination node. The configuration register access request from the CPU can be routed to the configuration register of an arbitrary node.
[0008]
In addition, the inter-node configuration access routing controller is capable of multicasting and broadcasting, and has the function to set the configuration registers of multiple nodes or all nodes simultaneously, so that this function can realize a global register. It is what.
[0009]
Specifically, the configuration access routing method of the present invention comprises a CPU, a memory, a PCI device on a PCI bus, and a node controller that connects the PCI bus to the CPU and the memory via a Host-PCI bus bridge. In a computer system comprising a node and a crossbar interconnecting at least two or more nodes, the node controller includes a transaction controller that controls a flow of transactions within the node and between the nodes, and a chipset within the node. A configuration register for setting a configuration, and a node for controlling routing of access requests to the configuration register of the configuration device and the PCI device on the PCI bus. It is realized in a configuration consisting of a de-in configuration access the routing controller.
[0010]
In the above configuration, the transaction controller is connected to the CPU, the memory, the Host-PCI bus bridge, the intra-node configuration access routing controller, the address / data bus crossbar switch in the crossbar, and the own node CPU. Alternatively, it accepts a transaction from its own node PCI device or other node via the address / data bus crossbar switch, determines the type of the transaction, and requests access to the memory if the transaction is a memory access request transaction. If the transaction is an access request transaction to a PCI device, the access request is sent to the PCI bus, and the transaction Is intended to operate to deliver the configuration register access request to the node in the configuration access the routing controller if the access request transaction to the configuration register.
[0011]
Further, in the configuration access routing method, the intra-node configuration access routing controller is connected to the inter-node configuration access routing controller in the transaction controller, a supervisor processor, and the crossbar, and the transaction controller and the supervisor. Arbitrates an access request to the configuration register from the processor, determines the destination of the received configuration access request, and if the configuration access request is an access request to the configuration register of the own node, the configuration An access request is sent to the configuration register of the local node, and the configuration If the configuration access request is a request to access a configuration register to another node, a request to access the configuration register in the crossbar, or a configuration access request for multicast / broadcast, It operates to send the configuration access request to the inter-node configuration access routing controller.
[0012]
Further, the inter-node configuration access routing controller arbitrates the configuration access request sent from each node, determines the destination of the received configuration access request, and the destination of the configuration access request is within the crossbar. If it is an access request to the configuration register, the configuration access request is sent to the configuration register in the crossbar, and if the destination of the configuration access request is a configuration access request to a specific node, If the configuration access request is sent only to that node and the configuration access request is sent to a plurality of nodes, the configuration access request is required. Is operated to broadcast the configuration access request to all nodes at the same time if it is a configuration access request to all nodes. It is.
[0013]
In the configuration access routing method, the configuration registers of all nodes are arranged on a single configuration space, and the CPUs of all nodes can access all the configuration registers on the configuration space. The configuration register can be accessed without being aware of the node configuration.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0015]
First, the configuration of an example of a computer system for realizing the configuration access routing method according to the embodiment of the present invention will be described with reference to FIG. FIG. 1 shows an example of a computer system according to the present embodiment. The computer system according to the present embodiment includes a plurality of nodes 10, a crossbar 100 that interconnects the nodes 10, a supervisor processor 150, and the like.
[0016]
The node 10 includes a CPU 20, a memory 30, a PCI device 50 on the PCI bus 40, and a node controller 70 that connects the PCI bus 40 to the CPU 20 and the memory 30 via a Host-PCI bus bridge 60.
[0017]
The node controller 70 is a transaction controller 71 that controls the flow of transactions within and between nodes, a configuration register 72 that sets the configuration of a chipset in the node, and an access request to the configuration register 72 of the chipset. And an intra-node configuration access routing controller 73 that controls routing of an access request to the configuration register 51 of the PCI device 50 on the PCI bus 40.
[0018]
The transaction controller 71 is connected to the CPU 20, the memory 30, the Host-PCI bus bridge 60, the intra-node configuration access routing controller 73, the address / data bus crossbar switch 110 in the crossbar 100, and the own node CPU 20 or the own node PCI. A transaction from the other node via the device 50 or the address / data bus crossbar switch 110 is accepted, the type of transaction is judged, and if the accepted transaction is a memory access request transaction, an access request is sent to the memory 30. If the received transaction is a transaction for requesting access to a PCI device, the PCI bus 4 via the Host-PCI bus bridge 60 is used. To send an access request, received transaction operations for sending configuration register access request to the node configuration access the routing controller 73 if an access request transaction to the configuration register.
[0019]
The intra-node configuration access routing controller 73 is connected to the transaction controller 71, the supervisor processor 150, and the inter-node configuration access routing controller 120 in the crossbar 100, and the CPU 20, the supervisor processor 150, and the inter-node configuration access routing controller 120. The configuration access request is received, arbitration is performed, and the access request to the configuration register 72 of the chipset in the node or the configuration register 51 in the PCI device 50 is routed.
[0020]
Next, an example of the configuration access routing method will be described with reference to FIGS. 2, 3, 4, and 5 for the operation of the present embodiment.
[0021]
FIG. 2 shows an internal configuration of an example of the intra-node configuration access routing controller 73. The intra-node configuration access routing controller 73 includes two sets of configuration address registers 201 and 202, two sets of configuration data registers 203 and 204, an arbiter 205, an address decoder 206, a router 207, and an arbiter 208. The router 209 is configured.
[0022]
In the configuration address registers 201 and 202, the address of the configuration register to be accessed on the configuration space is set. Thereafter, by reading / writing to the configuration data registers 203 and 204, a configuration access request is sent from the configuration data registers 203 and 204 to the destination configuration register for the addresses set in the configuration address registers 201 and 202. Routed to.
[0023]
The sizes of the configuration address registers 201 and 202 and the configuration data registers 203 and 204 are each 32 bits as shown in FIG. The addresses set in the configuration address registers 201 and 202 are the bus number, device number, function number, and register number in the specification of the PCI bus 40, respectively, Bit 23-16 (401) and Bit 15 of the configuration address registers 201 and 202. -11 (402), Bit 10-8 (403), and Bit 7-0 (404).
[0024]
The configuration address register 201 and the configuration data register 203 are connected to the transaction controller 71 and appear to the CPU 20 as a register mapped to a specific address on the IO space. By performing IO read / write on the address, the transaction controller 71 sends a read / write request to the configuration address register 201 and the configuration data register 203.
[0025]
The configuration address register 202 and the configuration data register 204 are connected to the supervisor processor 150, and a configuration access request from the supervisor processor 150 is transmitted by accessing the configuration address register 202 and the configuration data register 204. The
[0026]
Configuration access requests from the transaction controller 71 and the supervisor processor 150 are arbitrated by the arbiter 205. The arbitrated configuration access request enters the address decoder 206, determines the destination node and determines whether it is an access request to the configuration register to be multicast / broadcast, and creates information necessary for routing. The
[0027]
The router 207 determines the destination based on the routing information. If the configuration access request is an access request to the configuration register of the own node, the router 207 routes the configuration access request to the arbiter 208 and sends it to another node. If the request is an access request to the configuration register, an access request to the configuration register 130 in the crossbar 100, or a configuration access request for multicast / broadcast, the inter-node configuration access routing controller 120 in the crossbar 100 Route configuration access requests to.
[0028]
Configuration access requests from the router 207 and the internode configuration access routing controller 120 are arbitrated by the arbiter 208. The arbitrated configuration access request enters the router 209, and the destination of the configuration access request is determined from the routing information. If the destination of the configuration access request is a configuration register for a PCI device on the PCI bus, the configuration access request is routed on the PCI bus 40 via the transaction controller 71 and the Host-PCI bus bridge 60, and the configuration is requested. If the destination of the access request is the configuration register of the chipset in the node, the configuration access request is routed to the configuration register 72.
[0029]
FIG. 3 shows an exemplary configuration of the inter-node configuration access routing controller 120. FIG. 3 shows the case of 4 nodes as an example. The present invention is effective even in cases other than four nodes. The inter-node configuration access routing controller 120 includes an arbiter 310, a router 320, a broadcast router 330, and an arbiter 340.
[0030]
The arbiter 310 receives configuration access requests from each node, and performs arbitration when there are configuration access requests from a plurality of nodes. The configuration access request selected by arbitration by the arbiter 310 is determined by the router 320 as routing information. If the destination of the configuration access request is the configuration register 130 in the crossbar 100, the configuration access request is sent to the arbiter 340. If the configuration request is a configuration access request to the node 10, the configuration access request is routed to the broadcast router 330.
[0031]
The broadcast router 330 determines the routing information of the configuration access request received from the router 320. If the destination of the configuration access request is an access request to the configuration register to a specific node, the broadcast router 330 If it is a configuration access request to multiple nodes, if it is a configuration access request to multiple nodes, it multicasts the configuration access request to arrive at multiple destination nodes simultaneously, and if it is a configuration access request to all nodes For example, a configuration access request is broadcast so as to arrive at all nodes simultaneously.
[0032]
Configuration access requests from the router 320 and the supervisor processor 150 are arbitrated by the arbiter 340 and routed to the configuration register 130 of the crossbar 100.
[0033]
FIG. 5 shows an example in which the above-described conventional configuration space 500 allocation method shown in FIG. 6 is expanded for a multi-node system like this embodiment. The expanded part assigns a virtual PCI bus number to each node for accessing the configuration register of the node chipset, and accesses the configuration register of the node chipset after the last number of the physical PCI bus. The address area 502 for use has been allocated. As a result, the configuration registers of all the nodes are arranged on a single configuration space 500, and routing destination determination is performed by determining which address area of the configuration space 500 the address of the configuration access request is in. Do. Note that the address area 501 used for accessing the configuration register of the chipset in FIG. 6 is used as a global register area commonly used by each node.
[0034]
Therefore, according to the present embodiment, the intra-node configuration access routing controller 73 for determining whether the destination of the configuration register access request issued by the own node is destined for the own node or another node and routing, and each node 10 The inter-node configuration access routing controller 73 is connected between the nodes, and the inter-node configuration access routing controller 120 for routing the configuration register access request destined for other nodes to the destination node 10 is provided. Routing of the configuration register access request to the configuration register 72 of any node 10 can be realized.
[0035]
Further, the inter-node configuration access routing controller 120 can perform multicasting and broadcasting, and can simultaneously set the configuration registers 72 of a plurality of nodes or all nodes, and a global register can be realized by this function.
[0036]
It goes without saying that the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention. For example, the configuration space allocation is not limited to the above-described example, and the configuration registers of all the nodes may be arranged on a single configuration space.
[0037]
【The invention's effect】
As described above, according to the present invention, a configuration access routing controller in a node and a configuration access routing controller between nodes are combined to perform routing of a configuration access request. The configuration register of any node on the computer system can be accessed. In addition, the configuration access routing controller between nodes has the function to broadcast configuration access requests and can write to the registers of all nodes at the same time, so such registers can be used as global registers. it can.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a computer system for realizing a configuration access routing method according to an embodiment of the present invention;
FIG. 2 is a block diagram showing an intra-node configuration access routing controller in an embodiment of the present invention.
FIG. 3 is a block diagram showing an inter-node configuration access routing controller in an embodiment of the present invention.
FIG. 4 is an explanatory diagram showing a bit format of a configuration address register and a configuration data register in the embodiment of the invention.
FIG. 5 is an explanatory diagram showing allocation of a configuration space expanded for a multi-node computer system in an embodiment of the present invention.
FIG. 6 is an explanatory diagram showing allocation of configuration space in a conventional computer system.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Node, 20 ... CPU, 30 ... Memory, 40 ... PCI bus, 50 ... PCI device, 60 ... Host-PCI bus bridge, 70 ... Node controller, 71 ... Transaction controller, 72 ... Configuration register, 73 ... In node Configuration access routing controller, 100 ... crossbar, 110 ... address / data bus crossbar switch, 120 ... inter-node configuration access routing controller, 130 ... configuration register, 150 ... supervisor processor.

Claims (3)

CPUとメモリとPCIバス上のPCIデバイスと前記PCIバスをHost−PCIバスブリッジ経由で前記CPUと前記メモリに接続するノードコントローラとから構成されるノードと、少なくとも2つ以上のノード間を相互接続するクロスバーとからなるコンピュータシステムにおいて、
前記ノードコントローラは、ノード内及びノード間のトランザクションの流れを制御するトランザクションコントローラと、ノード内のコンフィグレーションを設定するコンフィグレーションレジスタと、前記コンフィグレーションレジスタ及び前記PCIバス上のPCIデバイスのコンフィグレーションレジスタへのアクセス要求のルーティングを制御するノード内コンフィグレーションアクセスルーティングコントローラとからなり、
前記トランザクションコントローラは、前記CPUと前記メモリと前記Host−PCIバスブリッジと前記ノード内コンフィグレーションアクセスルーティングコントローラと前記クロスバー内のアドレス・データバスクロスバースイッチに接続し、自ノードCPUあるいは自ノードPCIデバイスあるいは前記アドレス・データバスクロスバースイッチ経由の他ノードからのトランザクションを受け付け、前記トランザクションの種類を判定し、前記トランザクションがメモリへのアクセス要求トランザクションであるならば前記メモリにアクセス要求を送出し、前記トランザクションがPCIデバイスへのアクセス要求トランザクションであるならば前記PCIバスへアクセス要求を送出し、前記トランザクションがコンフィグレーションレジスタへのアクセス要求トランザクションであるならば前記ノード内コンフィグレーションアクセスルーティングコントローラにコンフィグレーションレジスタアクセス要求を送出することを特徴とするコンフィグレーションアクセスルーティング方法。
A node composed of a CPU, a memory, a PCI device on the PCI bus, a node controller that connects the PCI bus to the memory via a Host-PCI bus bridge, and at least two nodes are interconnected. In a computer system consisting of a crossbar that
The node controller includes a transaction controller that controls a flow of transactions within and between nodes, a configuration register that sets a configuration within the node, a configuration register of the configuration device and a PCI device on the PCI bus It consists of an intra-node configuration access routing controller that controls the routing of access requests to
The transaction controller is connected to the CPU, the memory, the Host-PCI bus bridge, the intra-node configuration access routing controller, the address / data bus crossbar switch in the crossbar, and the own node CPU or the own node PCI. Accept a transaction from a device or other node via the address / data bus crossbar switch, determine the type of the transaction, and if the transaction is a memory access request transaction, send an access request to the memory, If the transaction is an access request transaction to a PCI device, an access request is sent to the PCI bus, and the transaction Configuration access routing method characterized by sending, if the access request transaction to Nrejisuta in the node configuration access the routing controller configuration register access request.
請求項1記載のコンフィグレーションアクセスルーティング方法において、
前記ノード内コンフィグレーションアクセスルーティングコントローラは、前記トランザクションコントローラとスーパーバイザプロセッサと前記クロスバーの中のノード間コンフィグレーションアクセスルーティングコントローラに接続し、前記トランザクションコントローラと前記スーパーバイザプロセッサからのコンフィグレーションレジスタへのアクセス要求を調停し、受け付けたコンフィグレーションアクセス要求の宛先を判定し、前記コンフィグレーションアクセス要求が自ノードのコンフィグレーションレジスタへのアクセス要求であるならば、前記コンフィグレーションアクセス要求を自ノードのコンフィグレーションレジスタに送出し、前記コンフィグレーションアクセス要求が他ノードへのコンフィグレーションレジスタへのアクセス要求であるか、前記クロスバー内のコンフィグレーションレジスタへのアクセス要求であるか、あるいは、マルチキャスト・ブロードキャストのコンフィグレーションアクセス要求である場合は、前記ノード間コンフィグレーションアクセスルーティングコントローラに前記コンフィグレーションアクセス要求を送出し、
前記ノード間コンフィグレーションアクセスルーティングコントローラは、各ノードから送出されたコンフィグレーションアクセス要求を調停し、受け付けたコンフィグレーションアクセス要求の宛先を判定し、前記コンフィグレーションアクセス要求の宛先がクロスバー内のコンフィグレーションレジスタへのアクセス要求であるならば、前記コンフィグレーションアクセス要求をクロスバー内のコンフィグレーションレジスタへ送出し、前記コンフィグレーションアクセス要求の宛先が特定ノードへのコンフィグレーションアクセス要求であるならば、そのノードのみに前記コンフィグレーションアクセス要求を送出し、複数のノードへのコンフィグレーションアクセス要求であるならば、前記コンフィグレーションアクセス要求を宛先の複数ノードに同時到着するようにマルチキャストし、すべてのノードへのコンフィグレーションアクセス要求であるならば、前記コンフィグレーションアクセス要求をすべてのノードに同時到着するようにブロードキャストすることを特徴とするコンフィグレーションアクセスルーティング方法。
The configuration access routing method according to claim 1,
The intra-node configuration access routing controller is connected to the inter-node configuration access routing controller in the cross controller and the transaction controller, the supervisor processor, and an access request to the configuration register from the transaction controller and the supervisor processor. To determine the destination of the received configuration access request, and if the configuration access request is an access request to the configuration register of the own node, the configuration access request is stored in the configuration register of the own node. The configuration access request sent to the other node If the request is an access request to the configuration register in the crossbar, or a configuration access request for multicast / broadcast, the configuration access routing controller between the nodes is configured with the configuration. Configuration access request,
The inter-node configuration access routing controller arbitrates the configuration access request sent from each node, determines the destination of the received configuration access request, and the destination of the configuration access request is the configuration in the crossbar. If it is a request to access a register, the configuration access request is sent to the configuration register in the crossbar. If the destination of the configuration access request is a configuration access request to a specific node, that node If the configuration access request is sent to only a plurality of nodes, the configuration access request is sent to the destination. Configuration access characterized by multicasting to arrive at a plurality of nodes at the same time and broadcasting the configuration access request to all nodes at the same time if it is a configuration access request to all nodes Routing method.
請求項1記載のコンフィグレーションアクセスルーティング方法において、
すべてのノードのコンフィグレーションレジスタは単一のコンフィグレーション空間上に配置され、すべてのノードのCPUは、前記コンフィグレーション空間上のすべてのコンフィグレーションレジスタにアクセス可能であることを特徴とするコンフィグレーションアクセスルーティング方法。
The configuration access routing method according to claim 1,
Configuration access characterized in that the configuration registers of all nodes are arranged on a single configuration space, and the CPUs of all nodes can access all the configuration registers on the configuration space. Routing method.
JP2000378304A 2000-12-13 2000-12-13 Configuration access routing method Expired - Fee Related JP3645487B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000378304A JP3645487B2 (en) 2000-12-13 2000-12-13 Configuration access routing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000378304A JP3645487B2 (en) 2000-12-13 2000-12-13 Configuration access routing method

Publications (2)

Publication Number Publication Date
JP2002183102A JP2002183102A (en) 2002-06-28
JP3645487B2 true JP3645487B2 (en) 2005-05-11

Family

ID=18846898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000378304A Expired - Fee Related JP3645487B2 (en) 2000-12-13 2000-12-13 Configuration access routing method

Country Status (1)

Country Link
JP (1) JP3645487B2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664909B2 (en) 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
US8346884B2 (en) 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US8032659B2 (en) 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7836211B2 (en) 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US7103064B2 (en) 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7917658B2 (en) 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US7698483B2 (en) 2003-01-21 2010-04-13 Nextio, Inc. Switching apparatus and method for link initialization in a shared I/O environment
US7046668B2 (en) 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US8102843B2 (en) 2003-01-21 2012-01-24 Emulex Design And Manufacturing Corporation Switching apparatus and method for providing shared I/O within a load-store fabric
US7953074B2 (en) 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
JP2009093545A (en) * 2007-10-11 2009-04-30 Toshiba Corp Vme board and method for controlling access to cr/csr register
JP2019059880A (en) * 2017-09-27 2019-04-18 一般財団法人電力中央研究所 Method of producing solidified carbide

Also Published As

Publication number Publication date
JP2002183102A (en) 2002-06-28

Similar Documents

Publication Publication Date Title
US8255605B2 (en) Scalable distributed memory and I/O multiprocessor system
US10042804B2 (en) Multiple protocol engine transaction processing
US7281055B2 (en) Routing mechanisms in systems having multiple multi-processor clusters
JP3669653B2 (en) Computer system
US7047372B2 (en) Managing I/O accesses in multiprocessor systems
US8185683B2 (en) Bridge, information processing system, and access control method
JP3645487B2 (en) Configuration access routing method
US7849256B2 (en) Memory controller with ring bus for interconnecting memory clients to memory devices
US20030233388A1 (en) Transaction management in systems having multiple multi-processor clusters
TWI396088B (en) Method and apparatus for performing an atomic semaphore operation
US7039740B2 (en) Interrupt handling in systems having multiple multi-processor clusters
JPH096717A (en) System and method for data processing containing buffering mechanism for inbound and outbound read as well as posted write
US20030225909A1 (en) Address space management in systems having multiple multi-processor clusters
US20040117561A1 (en) Snoop filter bypass
US20030043790A1 (en) Multi-master bus architecture for system -on-chip designs
US6628662B1 (en) Method and system for multilevel arbitration in a non-blocking crossbar switch
JPH1049482A (en) Dual host bridge with peer-to-peer support
JP2009110032A (en) Bridge, information processor, information processing system, and global address management method
TW200407712A (en) Configurable multi-port multi-protocol network interface to support packet processing
US6119191A (en) Performing PCI access cycles through PCI bridge hub routing
US7640387B2 (en) Method and apparatus for implementing heterogeneous interconnects
JP2003216565A (en) Computer system and configuration access routing method
JP3661249B2 (en) Multiprocessor system
US20240012684A1 (en) Memory disaggregation method, computing system implementing the method
JPH0512220A (en) Multiprocessor system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080210

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees