JP2005505053A - Aggregation of hardware events in a multi-node system (aggregation of hardware events) - Google Patents
Aggregation of hardware events in a multi-node system (aggregation of hardware events) Download PDFInfo
- Publication number
- JP2005505053A JP2005505053A JP2003533136A JP2003533136A JP2005505053A JP 2005505053 A JP2005505053 A JP 2005505053A JP 2003533136 A JP2003533136 A JP 2003533136A JP 2003533136 A JP2003533136 A JP 2003533136A JP 2005505053 A JP2005505053 A JP 2005505053A
- Authority
- JP
- Japan
- Prior art keywords
- node
- event
- register
- primary
- remote
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
- Exchange Systems With Centralized Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】マルチノード・システムにおけるハードウェア・イベントの集約化を開示すること。
【解決手段】遠隔ノードで発生したイベントが、遠隔ノードのファームウェアが一次ノードの第1のレジスタに書き込みを行うことによって、一次ノードに転送される(114)。イベントは、一次ノードの第1のレジスタから一次ノードの第2のレジスタに伝達される(116)。それに自動的に応答して、一次ノードで割り込みが生成される(118)。割り込みの発生に応答して、一次ノードの割り込みハンドラが、遠隔ノードで生成したイベントを処理するために、一次ノードでコードを呼び出す(120)。
【選択図】図1Disclosed is a consolidation of hardware events in a multi-node system.
An event that occurs at a remote node is forwarded to a primary node by the remote node firmware writing to a first register of the primary node (114). The event is communicated 116 from the primary register of the primary node to the second register of the primary node. In response, an interrupt is generated at the primary node (118). In response to the occurrence of the interrupt, the interrupt handler at the primary node calls code at the primary node to process the event generated at the remote node (120).
[Selection] Figure 1
Description
【技術分野】
【0001】
本発明は、一般に、プロセッサやメモリなどを備える2以上のノードが存在するコンピュータ・システムであるマルチノード・コンピュータ・システムに関し、より詳細には、そのようなシステムのノードによって生成されるハードウェア・イベントの管理に関する。
【背景技術】
【0002】
コンピュータ・システムでは、様々なハードウェアが、処理する必要のあるイベントを生成する。例えば、ACPI(拡張構成および電源インターフェース(advanced configuration and power interface))仕様は、電源管理/構成機構を提供する。ACPI互換ハードウェアを含むACPI互換コンピュータ・システムでは、内部および外部イベントに応答して、システム自身が電源をオン、オフすることができ、特定のハードウェア要素を電力監視点(powervantage point)から管理することもできる。低電力モード(low-power mode)にあるネットワーク・カードは、例えば、接続されているネットワークからデータ・パケットを受信したときに、イベントを生成することができ、低電力モードから抜け出すことができる。このイベントは、ネットワーク・カードがその一部を成すコンピュータ・システムによって受信され、その結果、例えば、コンピュータ・システムは、それまで入っていた低電力モードから抜け出すことができる。別のタイプのイベントに、ホットプラグ(hot-plug)・イベントがあり、このイベントは、システム稼動中にハードウェア・カードがコンピュータ・システムに挿入されたり、コンピュータ・システムから取り外されたりした場合に発生する。
【発明の開示】
【発明が解決しようとする課題】
【0003】
ACPIイベント、ならびにその他のタイプのハードウェア・イベントの不都合な点は、それらのイベントが、イベントを発生させたハードウェアをその一部として含むコンピュータ・システムによってイベント処理が行われると想定していることである。すなわち、ハードウェア・イベントはしばしば、マルチノード・システム非認識(multi-node system unaware)のアーキテクチャに基づいて定められ、したがって、当該アーキテクチャをシングルノード・システムであると想定する。マルチノード・コンピュータ・システムには、自身のプロセッサやメモリなどを備えた複数のノードが存在しており、それらに処理が分散される。さらに、ACPIイベント・ハードウェアを実装するチップセット自体が、一般にはマルチノード非認識である。ACPI対応のオペレーティング・システムは一般に、システム内にはACPIイベント・ハードウェアのインスタンスが1つだけ存在するものと想定し、また大抵は複製ACPIイベント・ハードウェアを認識しない。
【0004】
したがって、現在のハードウェア・イベント処理アーキテクチャはしばしば、マルチノード・コンピュータ・システムのある遠隔ノード内で生成されたイベントはそのノードによって処理されると想定している。例えば、システムの一次すなわちブート・ノードがイベントの通知を受信する機構も存在せず、このノードがイベントを操作し、遠隔ノードにイベントをどのように処理すべきか指示する機構も存在しない。オペレーティング・システムにどのノードでイベントが発生したかを通知するために、標準的なACPIイベント・ハードウェアによって提供される機構も存在しない。これは問題と言えるが、このようになったのは、ハードウェアを操作するためのオペレーティング・システムの方針が、システム全体でACPIイベント・ハードウェアのインスタンスは1つであると想定しているためである。しかし、この想定は、標準的なACPIイベント・ハードウェアに基づいて設計されたマルチノード・システムについては当てはまらない。ここで説明した理由、およびその他の理由のため、本発明が必要とされている。
【課題を解決するための手段】
【0005】
本発明は、マルチノード・システムにおけるハードウェア・イベントの集約化に関する。本発明の方法では、遠隔ノードで発生したイベントが、遠隔ノードのファームウェアが一次ノードの第1のレジスタに書き込みを行うことによって、一次ノードに転送される。イベントは、一次ノードの第1のレジスタから一次ノードの第2のレジスタに伝達される。それに自動的に応答して、一次ノードで割り込みが生成される。割り込みの生成に応答して、一次ノードの割り込みハンドラが、遠隔ノードで発生したイベントを処理するために、一次ノードでコードを呼び出す。
【0006】
本発明のマルチノード・システムは、一次ノードと1つまたは複数の遠隔ノードを含む。一次ノードは、互いに通信可能に結合された第1のレジスタと第2のレジスタを備える。第2のレジスタは、一次ノードのイベント用に通常は予約されている。一次ノードは、イベントを処理するためのマルチノード非認識コードも含み、このコードは、第1のレジスタから第2のレジスタへのイベントの転送に応答して生成される割り込みに応答して呼び出される。イベントは遠隔ノードで発生して、一次ノードの第1のレジスタに転送され、イベントの最終的な処理は一次ノードによって行われる。イベントは、一次ノードの第1のレジスタから第2のレジスタに自動的に伝達される。
【0007】
本発明の製造物品は、コンピュータ可読媒体および媒体中の手段を含む。この手段は、一次ノードの第1のレジスタに書き込まれたイベントを一次ノードの第2のレジスタに自動的に伝達して、遠隔ノードで発生したイベントを第1のレジスタから第2のレジスタに転送するためのものである。第2のレジスタへの書き込みに自動的に応答して、一次ノードで割り込みが生成される。前記手段は、イベントを処理するために、割り込みの生成に応答して、一次ノードでコードを呼び出すためのものでもある。本発明のその他の特徴および利点は、本発明の現在のところ好ましい実施形態の以下の詳細な説明を、添付の図面と併せ読むことにより明らかとなるであろう。
【発明を実施するための最良の形態】
【0008】
概要
図1には、本発明の好ましい実施形態による方法100が示されている。方法100の機能を、製造物品のコンピュータ可読媒体中の手段として実施することができる。例えば、コンピュータ可読媒体を、記録可能データ記憶媒体または変調搬送波信号(modulated carrier signal)とすることができる。方法100の各部分は、破線106で分割された列102および列104によってそれぞれ示される、マルチノード・システムの遠隔ノードおよび一次すなわちブート・ノードで実行される。
【0009】
ハードウェア・イベントは最初、遠隔ノードで発生する(108)。ハードウェア・イベントは、ホットプラグ・イベントなどのACPI(拡張構成および電源インターフェース)イベント、あるいは別のタイプのハードウェア・イベントまたは他のイベントとすることができる。イベントは、遠隔ノードでPMI(プラットフォーム管理割り込み(platform management interrupt))などの割り込みを生成する(110)。具体的には、割り込みルータ(interruptrouter)などの遠隔ノードのコンポーネントが、割り込みを生成する。割り込みの生成に応答して、ファームウェアの割り込みハンドラ(firmwareinterrupt handler)がイベントを検出し、遠隔ノード上で呼び出される(112)。ファームウェアの割り込みハンドラは、イベントを一次ノードの第1のレジスタに書き込むことによって、イベントを遠隔ノードから一次ノードに転送する(114)。例えば、遠隔ノードのファームウェアのPMIハンドラは、イベントを一次ノードのGPIO(汎用入出力)レジスタ(generalpurpose input/output register)に転送することができる。
【0010】
一次ノードでは、第1のレジスタへのイベントの書き込みに自動的に応答して、一次ノードの第1のレジスタの出力と第2のレジスタの入力とを直接接続したコネクションを介して、イベントが伝達される(116)。第2のレジスタは好ましくは、遠隔ノードで発生したイベント用にではなく、一次ノードで発生したイベント用に通常は予約されている。このようにして、方法100は、第2のレジスタなど、一次ノードで発生したイベント専用に通常は使用される一次ノードのレジスタを利用する。ACPIイベントの場合、第2のレジスタは、こうしたイベント用に予約されているGPE(汎用イベント)レジスタ(general purpose event register)とすることができる。第2のレジスタへのイベントの書き込みによって、一次ノードでSCI(システム構成割り込み(systemconfiguration interrupt))割り込みなどの割り込みが生成される(118)。
【0011】
一次ノードでの割り込みの生成によって、コードが呼び出される(120)。このコードは、前記割り込みを最終的に発生させる元となったイベントを処理するためのものである。例えば、ACPIイベントの場合、当該コードをオペレーティング・システム(OS)のACPIドライバとすることができる。イベントが一次ノードで生成されたものではないことをコードが認識しない点で、このコードはマルチノード非認識である。このようにして、方法100は、標準ACPIドライバなどの標準的なドライバを使用することができ、したがって、一次ノード以外のノードで発生したイベントに対応できるように、これらのドライバを書き換える必要はない。
【0012】
前記コードは、イベントを処理するために特定のプロセスを呼び出す(122)。このプロセスはこれまでとは異なり、マルチノード認識(multi-node aware)であり、具体的には一次ノード以外のノードで発生したイベントに対応できるように設計される。例えば、このプロセスをAML(ACPIマシン語)メソッド(ACPIMachine Language method)とすることができる。AMLはコンパクトな、トークン化された(tokenize)、抽象マシン語である。このプロセスは、遠隔ノードにイベントを処理するための適切な指示を出し(124)、イベントはこの指示に従って遠隔ノードで処理される(126)。例えば、プロセスは、コントローラやその他のハードウェアなど、イベントが発生したハードウェアを遠隔操作する。
【0013】
背景技術
図2には、イベント・アーキテクチャ200の一例が示されており、それに基づき本発明の実施形態を実施することができる。アーキテクチャ200は、具体的にはACPIイベント用とし、シングルノード・システムに関して説明されるが、本発明の実施形態に従ってマルチノード・システムに拡張することができる。プラットフォーム・ハードウェア202は、ACPIイベントを生成するコントロール・カードおよびその他のタイプのハードウェアを含む。ハードウェア202は、その設定を、例えば、一種のファームウェアであるBIOS(基本入出力システム)204から受信することができる。OS非依存のコンポーネント206は、ACPIレジスタ208、ACPI BIOS210、およびACPIテーブル212を含む。ACPIレジスタ208は、詳細な説明の前のセクションで説明した第2のレジスタを含む。ACPI BIOS210は、一種のファームウェアであり、ハードウェア202のACPI設定を記録することができる。ACPIテーブル212は、ACPIドライバ/AMLインタプリタ(ACPI driver and AML interpreter)216によって使用される、ハードウェア202へのインターフェースを記述する。
【0014】
ACPIドライバ/AMLインタプリタ216は好ましくは、ACPIドライバによって呼び出されて遠隔ノード・イベントを処理する、詳細な説明の前のセクションで説明したプロセスを含むか、またはそのようなプロセスにアクセスすることができる。ACPIドライバは一般に、所与のOSにとって標準的なものであり、AMLで記述されたプロセスの解釈および構文解析を行うためのAMLインタプリタを含む。すなわち、プロセスは非標準的であり、遠隔ノード・イベントのような所与の状況に特化したものとすることができるが、ACPIドライバ自体は一般に標準的なものである。ACPIドライバ/AMLインタプリタ216は、プラットフォーム・ハードウェア202のために、OSのデバイス・ドライバ214と対話を行う。デバイス・ドライバは、ハードウェアをOSにつなげるソフトウェア・ルーチンである。
【0015】
さらに、デバイス・ドライバ214およびACPIドライバ/AMLインタプリタ216は、OSカーネル218と対話を行う。カーネルは、ふつうメモリ内に常駐し、基本サービスを提供するOSの基本部分である。カーネルは、ハードウェアに最も近いOSの部分であり、一般にデバイス・ドライバ214とインターフェースをとることによってハードウェアを活動化する。カーネル218の上に、コンピュータ・システム上で動作するアプリケーション・プログラム222が存在する。カーネル218は、電源管理サービスを提供し管理するために設計されたOSの一部である、OSPM(OS電源管理)システム・コード(OS power management system code)220とも対話を行う。
【0016】
図3には、マルチノード・システム300の一例が示されており、それに関して本発明の実施形態を実施することができる。マルチノード・システム300は、相互接続306を介して相互接続された複数のノード302a、302b、...、302nを含む。ノードの1つは一次すなわちブート・ノードであり、その他のノードはこの一次ノードにとって遠隔ノードである。ノードの各々は、1つまたは複数のCPU(中央処理装置)、または揮発性もしくは不揮発性メモリ、あるいはその両方、およびハードディスク・ドライブやフロッピー(R)ディスク・ドライブなどの1つまたは複数の記憶装置のうちのどれかまたはすべてを任意選択で含むことができる。例えば、ノード302aは、CPU308、メモリ312、サービス・プロセッサ310、および記憶装置314を有する。同様に、ノード302bは、CPU316、サービス・プロセッサ318、メモリ320、および記憶装置322を有する。最後に、ノード302nは、CPU324、サービス・プロセッサ326、メモリ328、および記憶装置330を有する。
【0017】
遠隔ノードのハードウェア・イベントの一次すなわちブート・ノードへの集約化
図4は、本発明の一実施形態によってハードウェア・イベントがどのように遠隔ノードから一次すなわちブート・ノードに集約化されるかを示したフローチャート400である。チャート400は、遠隔ノードNとも呼ばれる第1の遠隔ノード402によって実行される機能と、一次すなわちブート・ノード404によって実行される機能とに分かれている。第1の遠隔ノード402によって実行される機能は、一次ノード404によって実行される機能から、破線406によって分けられている。遠隔ノード402以外の他の遠隔ノードを含むこともできる。
【0018】
チャート400は、第1の遠隔ノード402で発生したイベントの一次ノード404への集約化または合体化(coalescing)に関して描かれている。あるイベントが、線414で示すようにノード402のホットプラグ・コントローラ412で発生する。このイベントをホットプラグACPIイベントとする。コントローラ412はハードウェア・カードのノード402への挿入およびノード402からの取り外しを検出する。前記イベントがノード402の割り込みルータ416によって検出され、それに応答して、割り込みルータが、線418で示すようにPMI割り込みを生成する。この割り込みの生成に応答して、ノード402のPMI割り込みハンドラ420は最初に、線422で示すようにPMI割り込みを無効化する。割り込みハンドラ420は次に、一次ノード404のGPIOレジスタ426にイベントを書き込むことによって、線424で示すようにイベントを一次ノードに通知する。
【0019】
一次ノード404のGPIOレジスタ426にイベントを書き込むと、線428に示すように、そのイベントは一次ノード404のGPEレジスタ430に自動的に転送される。これは、GPIOレジスタ426がGPEレジスタ430に少なくとも通信可能に結合され、好ましくは直接接続されるためである。GPEレジスタ430へのイベントの書き込みによって、線432に示すようにSCI割り込みが生成される。OSの割り込みハンドラ434がSCI割り込みを処理し、それに応答して、ノード404のACPIドライバ438が、線436に示すように呼び出される。ドライバ438は、それに応答して、線442に示すようにAMLメソッド444を呼び出す。AMLメソッド444は、遠隔ハードウェア・イベントを処理するように特殊化されており、一方、ドライバ438は好ましくは、遠隔ハードウェア・イベントを処理するように修正されていない標準的なACPIドライバとする。同様に、GPEレジスタ430は、ローカル・ハードウェア・イベントを処理するのに通常使用されるACPIレジスタとする。
【0020】
AMLメソッド444は最初、線446に示すようにコントローラ412を操作して、コントローラ412で発生した遠隔イベントを処理する。この処理が行われると、AMLメソッド444は、線448に示すようにホットプラグ・イベントを消去し、線450に示すようにPMI割り込みを再有効化する。AMLメソッド444は最後に、線452に示すようにイベントの処理が完了したことをドライバ438に通知し、線440に示すようにGPEレジスタ430からイベントを消去する。このようにして、第1の遠隔ノード402のホットプラグ・コントローラ412で生成されたホットプラグ・イベントが、レジスタ430と、これ以外の通常の場合は一次ノードのイベント用に使用されるマルチノード非認識のドライバ438とを利用して当該イベントを処理するために、ブート・ノード404に集約化される。これは、一次ノード404以外のノードのイベント用に予約されたレジスタとしてレジスタ426を使用することによって、またマルチノード認識のメソッド444を備えることによって達成される。言い換えれば、ドライバ438はマルチノード非認識コードであるが、メソッド444はマルチノード認識プロセスである。遠隔ノード402以外の他の遠隔ノードも同様の方式で処理される。
【0021】
図5には、本発明の一実施形態によるマルチノード・システム500が示されており、このシステム内で図4のフローチャート400を実施することができる。システム500は一次ノード502を含み、一次ノードは、図5には示されていない相互接続を介すなどして、複数の遠隔ノード510a、510b、...、510nに通信可能に結合される。例えば、一次ノード502を図4のブート・ノード404とすることができ、一方、図4の遠隔ノード402を遠隔ノード510a、510b、...、510nの1つとすることができる。
【0022】
一次ノード502は、好ましくはマルチノード非認識のオペレーティング・システムのイベント・ドライバ504と、好ましくはマルチノード認識のメソッド512とを含む。ドライバ504を図4のACPIドライバ438とすることができ、一方、メソッド512を図4のメソッド444とすることができる。ドライバ504は、一次ノード502で生成されたイベントに対して標準化されており、遠隔ノード510a、510b、...、510nで生成されたイベントに対してはそうでないという点で、マルチノード非認識である。一次ノード502はレジスタ506およびレジスタ508を含み、それぞれ図4のGPEレジスタ430およびGPIOレジスタ426を含むことができる。レジスタ506は好ましくは、一次ノード502で発生したハードウェア・イベント用に通常は予約されており、一方、レジスタ508は好ましくは、遠隔ノード510a、510b、...、510nで発生したイベント用に予約されている。
【0023】
したがって、システム500内では、遠隔ノード510a、510b、...、510nで生成されたイベントは、転送先として予約されているレジスタ508に転送される。それに自動的に応答して、次にこのイベントは、レジスタ508からレジスタ506に転送されて、一次ノード502でのハードウェア・イベント用に通常は予約されているレジスタ506が使用される。レジスタ508は好ましくは、レジスタ506に直接接続されるが、レジスタ508は少なくとも、レジスタ506に通信可能に結合される。マルチノード非認識であるためイベントが一次ノード502で生成されたと認識しているドライバ504は次に、メソッド512を呼び出す。メソッド512はマルチノード認識であるので、イベントを適切に操作し処理することができる。このようにして、マルチノード非認識のドライバ504が、マルチノード・システム500内でも利用できるようになる。
【0024】
従来技術を上回る利点
本発明の実施形態は、従来技術を上回る利点を提供する。本発明は、本発明を用いなければマルチノード認識でもマルチノード操作可能(multi-node operable)でもないアーキテクチャ内で、遠隔ノードのハードウェア・イベントを一次すなわちブート・ノードに合体化または集約化することを可能にする。こうした集約化は、当該アーキテクチャの一次ノードのドライバを必ずしも書き換える必要なく達成され、これらのドライバが通常は一次ノードのイベント用に参照するレジスタを使用して達成される。したがって、ACPIイベントなどのハードウェア・イベントの集約化は、ACPI仕様から逸脱することなく、またACPI準拠のドライバを変更することなく、達成することができる。
【0025】
代替実施形態
本明細書では説明のために本発明の具体的な実施形態を説明してきたが、本発明の主旨および範囲から逸脱することなく様々な修正を施し得ることは理解されよう。例えば、本発明は実質的に、ホットプラグ・イベントなどのACPIハードウェア・イベントに関して説明された。しかし、本発明自体は、そのようなイベントに制限されるものではない。例えば、本発明は、その他のタイプのイベント、およびその他のタイプのハードウェア・イベントにも適合可能である。
【0026】
別の例として、本発明は実質的に、他の通常の場合は一次ノードで生成されたイベント用に予約されたマルチノード非認識のドライバとある種のレジスタ群とに関して説明された。しかし、本発明自体は、そのようなものに制限されるものではない。例えば、本発明は、特別に記述されたマルチノード認識のドライバにも適合可能であり、そうしたドライバは、マルチノード・システムのすべての遠隔ノードが使用するためにパーティション分割されたある種のレジスタ群を精査することができる。すなわち、ドライバによって直接読み取られるレジスタ群は、マルチノード・システムで使用するためにパーティションに分割することができ、本発明が実質的に説明されたように、一次ノードで使用するために通常は予約されることがない。したがって、本発明の保護の範囲は、添付の特許請求の範囲およびその均等物によってのみ制限される。
【図面の簡単な説明】
【0027】
【図1】登録特許の第1ページに記載するよう推奨された、本発明の好ましい実施形態による方法のフローチャートである。
【図2】本発明の実施形態を実施することができる、例示的なハードウェア・イベント・アーキテクチャの図である。
【図3】本発明の実施形態を実施することができる、マルチノード・システムの一例の図である。
【図4】本発明の一実施形態による、図3のマルチノード・システムなどのマルチノード・システム内で行われる、図2のイベント・アーキテクチャなどに関するイベントの転送および処理の全体フローを詳細に示した図である。
【図5】本発明の一実施形態によるマルチノード・システム、特にその一次ノードのレジスタの図である。【Technical field】
[0001]
The present invention relates generally to a multi-node computer system, which is a computer system having two or more nodes comprising a processor, memory, etc., and more particularly to hardware generated by the nodes of such a system. Concerning event management.
[Background]
[0002]
In a computer system, various hardware generates events that need to be processed. For example, the ACPI (advanced configuration and power interface) specification provides a power management / configuration mechanism. In ACPI-compatible computer systems that include ACPI-compatible hardware, the system itself can be turned on and off in response to internal and external events, and certain hardware elements are managed from a powervantage point You can also A network card that is in low-power mode can generate an event, for example, when it receives a data packet from a connected network, and can exit the low-power mode. This event is received by the computer system of which the network card is a part, so that, for example, the computer system can get out of the low power mode that it had previously entered. Another type of event is a hot-plug event, which occurs when a hardware card is inserted or removed from the computer system while the system is running. Occur.
DISCLOSURE OF THE INVENTION
[Problems to be solved by the invention]
[0003]
The disadvantages of ACPI events, as well as other types of hardware events, are that they are assumed to be handled by a computer system that includes as part of the hardware that generated the event. That is. That is, hardware events are often defined based on a multi-node system unaware architecture, and therefore assume that the architecture is a single-node system. A multi-node computer system has a plurality of nodes each having its own processor, memory, etc., and processing is distributed among them. Furthermore, the chipset itself that implements the ACPI event hardware is generally multi-node unaware. ACPI-capable operating systems generally assume that there is only one instance of ACPI event hardware in the system and are usually unaware of duplicate ACPI event hardware.
[0004]
Thus, current hardware event processing architectures often assume that events generated within a remote node of a multi-node computer system are processed by that node. For example, there is no mechanism for the primary or boot node of the system to receive notification of an event, and there is no mechanism for this node to handle the event and instruct the remote node how to handle the event. There is also no mechanism provided by standard ACPI event hardware to inform the operating system which node an event has occurred. This is a problem, but this is because the operating system policy for operating the hardware assumes that there is one instance of ACPI event hardware in the entire system. It is. However, this assumption does not apply for multi-node systems designed based on standard ACPI event hardware. There is a need for the present invention for the reasons described herein, and for other reasons.
[Means for Solving the Problems]
[0005]
The present invention relates to hardware event aggregation in a multi-node system. In the method of the present invention, an event occurring at a remote node is transferred to the primary node by the remote node firmware writing to the first register of the primary node. The event is communicated from the first register of the primary node to the second register of the primary node. In response, an interrupt is generated at the primary node. In response to generating the interrupt, the interrupt handler at the primary node calls code at the primary node to handle the event that occurred at the remote node.
[0006]
The multi-node system of the present invention includes a primary node and one or more remote nodes. The primary node includes a first register and a second register communicatively coupled to each other. The second register is normally reserved for primary node events. The primary node also includes multi-node unrecognized code for handling the event, which is called in response to an interrupt generated in response to the transfer of the event from the first register to the second register. . The event occurs at the remote node and is transferred to the first register of the primary node, and the final processing of the event is performed by the primary node. Events are automatically communicated from the first register of the primary node to the second register.
[0007]
The article of manufacture of the present invention includes a computer readable medium and means in the medium. This means automatically transmits the event written in the first register of the primary node to the second register of the primary node and transfers the event generated at the remote node from the first register to the second register. Is to do. An interrupt is generated at the primary node in response to writing to the second register automatically. The means is also for calling code at the primary node in response to generating an interrupt to handle the event. Other features and advantages of the present invention will become apparent from the following detailed description of the presently preferred embodiments of the invention, taken in conjunction with the accompanying drawings.
BEST MODE FOR CARRYING OUT THE INVENTION
[0008]
Overview FIG. 1 illustrates a
[0009]
A hardware event initially occurs at the remote node (108). The hardware event may be an ACPI (Extended Configuration and Power Interface) event, such as a hot plug event, or another type of hardware event or other event. The event generates an interrupt, such as a PMI (platform management interrupt) at the remote node (110). Specifically, a remote node component, such as an interrupt router, generates an interrupt. In response to the generation of the interrupt, a firmware interrupt handler detects the event and is called on the remote node (112). The firmware interrupt handler forwards the event from the remote node to the primary node by writing the event to the primary node's first register (114). For example, the remote node firmware PMI handler can forward the event to the GPIO (general purpose input / output register) of the primary node.
[0010]
In the primary node, the event is automatically transmitted in response to the writing of the event to the first register via the connection directly connecting the output of the first register and the input of the second register of the primary node. (116). The second register is preferably reserved for events that occurred at the primary node rather than for events that occurred at the remote node. In this way, the
[0011]
The generation of an interrupt at the primary node calls the code (120). This code is for processing the event that ultimately caused the interrupt to occur. For example, in the case of an ACPI event, the code can be an operating system (OS) ACPI driver. This code is multi-node unrecognized in that the code does not recognize that the event was not generated at the primary node. In this way, the
[0012]
The code invokes a specific process to handle the event (122). This process is different from before, and is multi-node aware, specifically designed to handle events that occur on nodes other than the primary node. For example, this process can be an AML (ACPI Machine Language) method. AML is a compact, tokenized, abstract machine language. The process issues an appropriate instruction to process the event to the remote node (124), and the event is processed at the remote node according to this instruction (126). For example, the process remotely operates hardware in which an event has occurred, such as a controller or other hardware.
[0013]
2. Background Art FIG. 2 shows an example of an
[0014]
ACPI driver /
[0015]
In addition, the
[0016]
FIG. 3 illustrates an example of a
[0017]
Aggregation of Remote Node Hardware Events to Primary or Boot Node FIG. 4 illustrates how hardware events are aggregated from a remote node to primary or boot node according to one embodiment of the present invention. It is the
[0018]
The
[0019]
Writing an event to the GPIO register 426 of the
[0020]
The
[0021]
FIG. 5 illustrates a
[0022]
The
[0023]
Accordingly, within
[0024]
Advantages over the prior art Embodiments of the present invention provide advantages over the prior art. The present invention coalesces or aggregates remote node hardware events into a primary or boot node within an architecture that would otherwise not be multi-node aware or multi-node operable. Make it possible. Such aggregation is achieved without necessarily having to rewrite the primary node drivers of the architecture, and these drivers are typically achieved using registers that are referenced for primary node events. Thus, the consolidation of hardware events such as ACPI events can be achieved without departing from the ACPI specification and without changing ACPI-compliant drivers.
[0025]
Alternative Embodiments Although specific embodiments of the invention have been described herein for purposes of illustration, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the present invention has been substantially described with respect to ACPI hardware events, such as hot plug events. However, the present invention is not limited to such an event. For example, the present invention is adaptable to other types of events and other types of hardware events.
[0026]
As another example, the present invention has been substantially described with respect to multi-node unrecognized drivers and certain groups of registers reserved for other normal cases of events generated at the primary node. However, the present invention itself is not limited to such a case. For example, the present invention is also adaptable to specially described multi-node aware drivers, which are a group of registers that are partitioned for use by all remote nodes of a multi-node system. Can be scrutinized. That is, the registers that are read directly by the driver can be partitioned for use in a multi-node system and are usually reserved for use on the primary node, as the invention has been substantially described. It will not be done. Accordingly, the scope of protection of the present invention is limited only by the appended claims and equivalents thereof.
[Brief description of the drawings]
[0027]
FIG. 1 is a flow chart of a method according to a preferred embodiment of the present invention, recommended to be described on page 1 of a registered patent.
FIG. 2 is an exemplary hardware event architecture diagram in which embodiments of the invention may be implemented.
FIG. 3 is a diagram of an example multi-node system in which embodiments of the invention may be implemented.
4 shows in detail the overall flow of event forwarding and processing, such as the event architecture of FIG. 2, performed within a multi-node system, such as the multi-node system of FIG. 3, according to one embodiment of the invention. It is a figure.
FIG. 5 is a diagram of a multi-node system, particularly its primary node registers, according to one embodiment of the invention.
Claims (9)
前記イベントを前記一次ノードの前記第1のレジスタから前記一次ノードの第2のレジスタ(506)に伝達するステップ(116)と、
前記一次ノードの前記第2のレジスタへの書き込みに自動的に応答して、前記一次ノードで割り込みを生成するステップ(118)と、
前記遠隔ノードで発生した前記イベントを処理するために、前記割り込みの発生に応答して、前記一次ノードの割り込みハンドラによって、前記一次ノードでコードを呼び出すステップ(120)とを含む方法。Transferring (114) an event occurring at a remote node from the remote node to the primary node, by the firmware of the remote node writing to a first register (508) of the primary node;
Communicating the event from the first register of the primary node to a second register (506) of the primary node;
Automatically generating an interrupt at the primary node in response to writing to the second register of the primary node;
Calling a code at the primary node by an interrupt handler at the primary node in response to the occurrence of the interrupt to process the event that occurred at the remote node.
請求項1ないし7のいずれかに記載の方法を実行するための前記媒体中の手段を含む物品。A computer readable medium;
An article comprising means in the medium for performing the method of any of claims 1-7.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/968,768 US6988155B2 (en) | 2001-10-01 | 2001-10-01 | Aggregation of hardware events in multi-node systems |
| PCT/US2002/030967 WO2003029999A1 (en) | 2001-10-01 | 2002-09-26 | Aggregation of hardware events in multi-node systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2005505053A true JP2005505053A (en) | 2005-02-17 |
| JP3940397B2 JP3940397B2 (en) | 2007-07-04 |
Family
ID=25514747
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003533136A Expired - Fee Related JP3940397B2 (en) | 2001-10-01 | 2002-09-26 | Aggregation of hardware events in multi-node systems |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US6988155B2 (en) |
| EP (1) | EP1449097B1 (en) |
| JP (1) | JP3940397B2 (en) |
| CN (1) | CN1303545C (en) |
| AT (1) | ATE382898T1 (en) |
| DE (1) | DE60224438T2 (en) |
| TW (1) | TWI235920B (en) |
| WO (1) | WO2003029999A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008123442A (en) * | 2006-11-15 | 2008-05-29 | Toshiba Corp | Information processing apparatus and control method of information processing apparatus |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6889277B2 (en) * | 2002-04-18 | 2005-05-03 | Sun Microsystems, Inc. | System and method for dynamically tuning interrupt coalescing parameters |
| US6988156B2 (en) * | 2002-04-18 | 2006-01-17 | Sun Microsystems, Inc. | System and method for dynamically tuning interrupt coalescing parameters |
| US7197587B2 (en) * | 2002-06-19 | 2007-03-27 | Hewlett-Packard Development Company, L.P. | Systems-events core for monitorings system events for a cellular computer system within a parent computer system, system-event manager for monitoring system events for more than one cellular computer system, and related system and method |
| US7305508B2 (en) * | 2003-10-22 | 2007-12-04 | Hewlett-Packard Development Company, L.P. | Semaphoring system between system firmware and hardware manipulation subsystem |
| US7254726B2 (en) * | 2003-11-10 | 2007-08-07 | Dell Products L.P. | System and method for managing system events by creating virtual events in an information handling system |
| US7752371B2 (en) * | 2003-12-29 | 2010-07-06 | Broadcom Corporation | System and method for interrupt abstraction |
| US7496929B2 (en) * | 2004-05-28 | 2009-02-24 | Intel Corporation | Performance of operations on a hardware resource through integral interpretive execution |
| US20060047878A1 (en) * | 2004-08-25 | 2006-03-02 | Zilavy Daniel V | GPE register block |
| US7389297B1 (en) * | 2004-09-02 | 2008-06-17 | Sun Microsystems, Inc. | Method for exit negotiation with aggregate application descendents |
| US8745124B2 (en) * | 2005-10-31 | 2014-06-03 | Ca, Inc. | Extensible power control for an autonomically controlled distributed computing system |
| US7949813B2 (en) * | 2007-02-06 | 2011-05-24 | Broadcom Corporation | Method and system for processing status blocks in a CPU based on index values and interrupt mapping |
| CN102495792A (en) * | 2011-11-04 | 2012-06-13 | 杭州中天微系统有限公司 | Interface device for multi-event control and real-time monitoring during online debugging |
| US9940272B1 (en) | 2015-04-09 | 2018-04-10 | Juniper Networks, Inc. | Hardware-based handling of missing interrupt propagation |
| US9886332B2 (en) | 2015-05-04 | 2018-02-06 | International Business Machines Corporation | Storage and application intercommunication using ACPI |
| US10365987B2 (en) | 2017-03-29 | 2019-07-30 | Google Llc | Synchronous hardware event collection |
| US9875167B1 (en) | 2017-03-29 | 2018-01-23 | Google Inc. | Distributed hardware tracing |
| TWI733284B (en) * | 2019-12-24 | 2021-07-11 | 瑞昱半導體股份有限公司 | Hardware setting device and hardware setting method thereof |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5165018A (en) | 1987-01-05 | 1992-11-17 | Motorola, Inc. | Self-configuration of nodes in a distributed message-based operating system |
| JPH0268632A (en) * | 1988-09-05 | 1990-03-08 | Toshiba Corp | Interruption controller |
| US5282272A (en) * | 1990-12-21 | 1994-01-25 | Intel Corporation | Interrupt distribution scheme for a computer bus |
| US5282271A (en) * | 1991-10-30 | 1994-01-25 | I-Cube Design Systems, Inc. | I/O buffering system to a programmable switching apparatus |
| JPH07311752A (en) | 1994-05-11 | 1995-11-28 | Internatl Business Mach Corp <Ibm> | Decentralized data processing system and initial program loading method |
| JP3177117B2 (en) | 1994-05-11 | 2001-06-18 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | Method and apparatus for updating control codes in multiple nodes |
| US5842026A (en) * | 1996-07-01 | 1998-11-24 | Sun Microsystems, Inc. | Interrupt transfer management process and system for a multi-processor environment |
| US5968189A (en) * | 1997-04-08 | 1999-10-19 | International Business Machines Corporation | System of reporting errors by a hardware element of a distributed computer system |
| US6247091B1 (en) * | 1997-04-28 | 2001-06-12 | International Business Machines Corporation | Method and system for communicating interrupts between nodes of a multinode computer system |
| US6055643A (en) | 1997-09-25 | 2000-04-25 | Compaq Computer Corp. | System management method and apparatus for supporting non-dedicated event detection |
| US6256740B1 (en) | 1998-02-06 | 2001-07-03 | Ncr Corporation | Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric |
| US6247077B1 (en) | 1998-02-06 | 2001-06-12 | Ncr Corporation | Highly-scalable parallel processing computer system architecture |
| US6219742B1 (en) | 1998-04-29 | 2001-04-17 | Compaq Computer Corporation | Method and apparatus for artificially generating general purpose events in an ACPI environment |
| US6148361A (en) * | 1998-12-17 | 2000-11-14 | International Business Machines Corporation | Interrupt architecture for a non-uniform memory access (NUMA) data processing system |
| US6272618B1 (en) * | 1999-03-25 | 2001-08-07 | Dell Usa, L.P. | System and method for handling interrupts in a multi-processor computer |
| US6457135B1 (en) | 1999-08-10 | 2002-09-24 | Intel Corporation | System and method for managing a plurality of processor performance states |
| US6691234B1 (en) * | 2000-06-16 | 2004-02-10 | Intel Corporation | Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state |
-
2001
- 2001-10-01 US US09/968,768 patent/US6988155B2/en not_active Expired - Fee Related
-
2002
- 2002-09-26 EP EP02780400A patent/EP1449097B1/en not_active Expired - Lifetime
- 2002-09-26 DE DE60224438T patent/DE60224438T2/en not_active Expired - Lifetime
- 2002-09-26 AT AT02780400T patent/ATE382898T1/en not_active IP Right Cessation
- 2002-09-26 CN CNB028193784A patent/CN1303545C/en not_active Expired - Fee Related
- 2002-09-26 TW TW091122110A patent/TWI235920B/en not_active IP Right Cessation
- 2002-09-26 JP JP2003533136A patent/JP3940397B2/en not_active Expired - Fee Related
- 2002-09-26 WO PCT/US2002/030967 patent/WO2003029999A1/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008123442A (en) * | 2006-11-15 | 2008-05-29 | Toshiba Corp | Information processing apparatus and control method of information processing apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1449097A4 (en) | 2007-02-28 |
| TWI235920B (en) | 2005-07-11 |
| DE60224438D1 (en) | 2008-02-14 |
| DE60224438T2 (en) | 2009-01-22 |
| CN1561493A (en) | 2005-01-05 |
| EP1449097B1 (en) | 2008-01-02 |
| ATE382898T1 (en) | 2008-01-15 |
| CN1303545C (en) | 2007-03-07 |
| EP1449097A1 (en) | 2004-08-25 |
| US6988155B2 (en) | 2006-01-17 |
| US20030065853A1 (en) | 2003-04-03 |
| WO2003029999A1 (en) | 2003-04-10 |
| JP3940397B2 (en) | 2007-07-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3940397B2 (en) | Aggregation of hardware events in multi-node systems | |
| US6480972B1 (en) | Data processing system and method for permitting a server to remotely perform diagnostics on a malfunctioning client computer system | |
| US6223240B1 (en) | Bus bridge architecture for a data processing system capable of sharing processing load among a plurality of devices | |
| US5937200A (en) | Using firmware to enhance the functionality of a controller | |
| JPH04318654A (en) | Redirection system for interruption to microprocessor | |
| WO2018209513A1 (en) | Hard drive operation method and hard drive manager | |
| US5968174A (en) | Method and apparatus for implementing a 32-bit operating system which supports 16-bit code | |
| US7698476B2 (en) | Implementing bufferless direct memory access (DMA) controllers using split transactions | |
| WO2021247113A1 (en) | System and method for scheduling sharable pcie endpoint devices | |
| JPH10222453A (en) | Method and system for dynamically converting bus address in computer system | |
| US20100169069A1 (en) | Composite device emulation | |
| US20060085573A1 (en) | Multi-context selection with PCI express to support hardware partitioning | |
| US7302512B1 (en) | Interrupt steering in computing devices to effectuate peer-to-peer communications between device controllers and coprocessors | |
| US20030065868A1 (en) | Distributed peer-to-peer communication for interconnect busses of a computer system | |
| CN117971135B (en) | Storage device access method and device, storage medium and electronic device | |
| US5809333A (en) | System for implementing peripheral device bus mastering in desktop PC via hardware state machine for programming DMA controller, generating command signals and receiving completion status | |
| CN108549611A (en) | A kind of driving realization method and system based on gt9 family chips | |
| US6687744B1 (en) | Data processing system and method for permitting a server computer system to function as a virtual keyboard to a client computer system | |
| JP3569341B2 (en) | Parallel computer system | |
| JP3189894B2 (en) | Virtual computer system | |
| JP2003330871A (en) | Data transfer device | |
| JPS61269545A (en) | computer system | |
| JPS62286155A (en) | Multi cpu control system | |
| US7843961B2 (en) | Hardware device emulation | |
| JPS6228876A (en) | Information processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060509 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060809 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060816 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061109 |
|
| 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: 20070327 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070330 |
|
| 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: 20110406 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |