IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 廣逹電腦股▲ふん▼有限公司の特許一覧

特開2023-98807システム管理割り込みデータの収集に用いる方法及びシステム
<>
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図1
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図2
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図3A
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図3B
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図4
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図5
  • 特開-システム管理割り込みデータの収集に用いる方法及びシステム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023098807
(43)【公開日】2023-07-11
(54)【発明の名称】システム管理割り込みデータの収集に用いる方法及びシステム
(51)【国際特許分類】
   G06F 11/07 20060101AFI20230704BHJP
【FI】
G06F11/07 178
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022102636
(22)【出願日】2022-06-27
(31)【優先権主張番号】17/646,449
(32)【優先日】2021-12-29
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】508018934
【氏名又は名称】廣達電腦股▲ふん▼有限公司
【氏名又は名称原語表記】Quanta Computer Inc.
【住所又は居所原語表記】No.188,Wenhua 2nd Rd.,Guishan Dist.,Taoyuan City 333,Taiwan
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】許 智翔
(72)【発明者】
【氏名】李 韋緯
(72)【発明者】
【氏名】蔡 尚麟
(72)【発明者】
【氏名】方 略治
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042KK02
5B042KK15
5B042MA06
5B042MA08
5B042MA09
5B042MC05
(57)【要約】
【課題】システム管理割り込みデータの収集に用いる方法及びシステムを提供する。
【解決手段】コンピュータシステムにおけるシステム管理割り込み(SMI)に関連するデータを保存するシステム及び方法を提供する。中央処理ユニットにおいて、システム管理割り込みの通知を受信する。中央処理ユニットは、システム管理モードに入る。基本入出力システム(BIOS)のシステム管理ハンドラーは、中央処理ユニットのブートストラッププロセッサにより実行される。システム管理割り込みは、ブートストラッププロセッサにより起動される。システム管理割り込みデータは、ブートストラッププロセッサのレジスタに保存される。SMIデータは、アクセス可能なフォーマットに変換される。変換後のSMIデータはメモリに保存される。
【選択図】図5
【特許請求の範囲】
【請求項1】
コンピュータシステムであって、
基本入出力システム(BIOS)と、
メモリと、
前記メモリ及び前記BIOSに結合された中央処理ユニットと、を備え、
前記中央処理ユニットは、システム管理モードにおいてシステム管理割り込み(SMI)をトリガーするために前記BIOSに保存されたシステム管理割り込みハンドラーを実行するブートストラッププロセッサを有しており、前記ブートストラッププロセッサは、前記システム管理割り込みハンドラーを実行して、前記SMIに関連するデータを前記メモリに保存することを特徴とするシステム。
【請求項2】
前記メモリに結合されたベースメントマネジメントコントローラー(BMC)をさらに備え、前記メモリは、前記BMCに結合されたフラッシュメモリであり、前記BMCは、前記データをシステムエラーログに保存し、前記システムエラーログに保存された前記データは、インテリジェントプラットフォーム管理インターフェース(IPMI)コマンドを介してアクセス可能であることを特徴とする請求項1に記載のシステム。
【請求項3】
前記メモリ内の前記データは、オペレーティングシステムドライバを介してアクセス可能であることを特徴とする請求項1に記載のシステム。
【請求項4】
揮発性メモリをさらに備え、前記メモリは、不揮発性メモリであり、前記ブートストラッププロセッサは、前記SMIのタイプを判別し、前記SMIのタイプがリブートを要求するかに基づいて、前記中央処理ユニットのリブート後に、前記揮発性メモリ内の前記データを前記不揮発性メモリに複製することを特徴とする請求項1に記載のシステム。
【請求項5】
前記SMIは、
前記中央処理ユニットのサウスブリッジチップの入力ポートをシグナリングするハードウェアコンポーネントと、
前記中央処理ユニット上のRAS(reliability-availability-serviceable)ファームウェアと、
周辺装置とインターフェースするオペレーティングシステムと、
のうち何れかにより起動されることを特徴とする請求項1に記載のシステム。
【請求項6】
コンピュータシステムにおいて、システム管理割り込み(SMI)に関連するデータを保存する方法であって、
前記方法は、
中央処理ユニットにおいて、前記SMIの通知を受信する工程と、
システム管理モードに入る工程と、
前記中央処理ユニットのブートストラッププロセッサにより、基本入出力システム(BIOS)のシステム管理ハンドラーを実行する工程と、
前記ブートストラッププロセッサにより、前記SMIを起動する工程と、
SMIデータを、前記ブートストラッププロセッサのレジスタに保存する工程と、
前記SMIデータを、アクセス可能なフォーマットに変換する工程と、
変換後の前記SMIデータをメモリに保存する工程と、
を含むことを特徴とする方法。
【請求項7】
前記メモリは、ベースメントマネジメントコントローラー(BMC)に結合されたフラッシュメモリであり、前記BMCは、前記変換後の前記SMIデータをシステムエラーログに保存することを特徴とする請求項6に記載の方法。
【請求項8】
前記SMIのタイプがリブートを要求するか否かを判別する工程と、
前記中央処理ユニットをリブートする工程であって、前記メモリは不揮発性メモリである、工程と、
前記リブート後に、前記メモリの前記変換後の前記SMIデータを揮発性共有メモリに複製する工程と、
をさらに含むことを特徴とする請求項6に記載の方法。
【請求項9】
前記SMIは、
前記中央処理ユニットのサウスブリッジチップの入力ポートをシグナリングするハードウェアコンポーネントと、
RAS(reliability-availability-serviceable)ファームウェアと、
周辺装置とインターフェースするオペレーティングシステムと、
のうち何れかにより起動されることを特徴とする請求項6に記載の方法。
【請求項10】
コンピュータシステムであって、
基本入出力システム(BIOS)と、
揮発性共有メモリと、
不揮発性メモリと、
前記揮発性共有メモリ、前記不揮発性メモリ及び前記BIOSに結合された中央処理ユニットと、を備え、
前記中央処理ユニットは、システム管理モードにおいてシステム管理割り込み(SMI)をトリガーするために前記BIOSに保存されたシステム管理割り込みハンドラーを実行するブートストラッププロセッサを有しており、
前記ブートストラッププロセッサは、前記SMIのタイプがリブートを要求するか否かに基づいて、前記SMIハンドラーを実行して、前記SMIに関連するデータを、前記ブートストラッププロセッサのレジスタから前記揮発性メモリ又は前記不揮発性メモリに保存することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムにおける操作信頼性に関し、より具体的には、さらなる分析のために、システム管理割り込み(system management interrupt、SMI)データのアクセス可能なロギングを可能にするシステムに関する。
【背景技術】
【0002】
サーバは、高需要アプリケーション(例えば、ネットワークベースシステムやデータセンター)に多く使用されている。クラウドコンピューティングアプリケーションの出現は、データセンターの需要をますます増加させている。データセンターは、複数のサーバを有しており、サーバは、データを保存し、アプリケーションを実行し、アプリケーションは、リモート接続されたコンピュータデバイスユーザーによりアクセスされる。一般的なデータセンターは、物理的なラック構造と、それに付随する電源及び通信接続を有する。各ラックは、複数のアプリケーションサーバ及びストレージサーバを収容する。各サーバは、通常、ハードウェアコンポーネント(例えば、プロセッサ、メモリデバイス、ネットワークインターフェースカード、電源、他の専用のハードウェア等)を有する。各サーバは、通常、ベースメントマネジメントコントローラー(baseboard management controller)を有しており、サーバの操作を管理すると共に、操作データを、ラックのサーバを管理する中央管理基地局(central management station)に伝達する。
【0003】
通常のサーバは、処理ユニットを有し、処理ユニットは、計算処理のために複数のコアを有する。コアは、オペレーティングシステム(operating system)を実行して、サーバ内の他のハードウェアコンポーネントと通信する。オペレーティングシステムの1つの機能は、ハードウェアコンポーネントの誤動作を示すエラーを判断することである。
【0004】
システム管理モード(system management mode、SMM)は、システム全体の機能(例えば、コンピュータシステムにおける電源管理又はシステムハードウェア制御等)を処理するために提供される周知の特殊用途の操作モードである。SMMは、明確且つ容易に分離可能なプロセッサ環境を提供し、プロセッサ環境の操作は、オペレーティングシステム又は実行工程(executive)及びソフトウェアアプリケーションに対して透過的(transparently)である。処理ユニットは、分離したアドレス空間(separate address space)でSMMファームウェアコードを実行し、処理ユニットの他の操作モードは、分離したアドレス空間にアクセスできない。SMMは、システム管理割り込み(SMI)を介してのみ入ることができる。一般的に、SMMは、コンピュータシステムのブートストラッププロセッサ(BSP)又はコアによって実行される。
【0005】
SMMは、オペレーティングシステム(OS)の実行中にシステム管理操作を実行するためのファームウェア/BIOSの操作モードである。実行中に、CPUチップセットは、構成されたイベント(configured events)を検出してSMIに信号を送信し、CPUがSMMエントリーポイント(entry point)にジャンプしてSMMに入ることをトリガーする。SMMに入ると、ブートストラッププロセッサ(BSP)がそれぞれのSMMサービスを終了してSMMを抜け出るまで、全てのコア/スレッド(thread)もSMMモードに入る。
【0006】
多くのプロセッサアーキテクチャにおいて、割り込みプロセスは、メモリ、インターフェース、プロセッサ又は周辺装置からの要求の待ち時間を短縮するために使用される。一般的に、システム管理割り込み(SMI)は、ソフトウェア又はハードウェアによってトリガーされる。割り込みハンドラー(interrupt handler)は、BIOSを有するハードウェア抽象層(abstraction layer、HAL)の一部としてファームウェアによって実行される。割り込みハンドラーは、SMIをトリガーする。SMI割り込みが発生すると、オペレーティングシステムの実行が中断される。SMIに関連するデータは、通常、SMMを実行するCPU内のレジスタ(例えば、モデル固有レジスタ(MSR)等)に保存される。SMMの実行中、システムサービス及びアプリケーションが停止し、サービスを提供することができなくなるので、コンピュータシステムのダウンタイムになる。また、これは、オペレーティングシステムが、チップセットがいつSMIに信号を送信したかを知る方法がなく、他のタイプの割り込みに関連するデータのようにSMIデータを補足することができないことを意味する。
【0007】
しかしながら、ユーザーが、オペレーティングシステムにおけるSMIのソース及びSMIの割り込みタイプを追跡したい場合には、ユーザーはMSRにアクセスしなければならない。しかし、MSRは、特別なプロセッサに設計されており、通常アクセスすることができない。MSRに保存されているデータへの迅速なアクセスは、プロセッサチップベンダーによって提供される開発ツールを使用して、MSRに保存されているソース及び割り込みタイプデータをダンプ(dump)する必要がある。
【0008】
このように、現在、ファームウェアによってトリガーされるSMIのソースを追跡するのが困難であるため、ユーザーは、SMIに関連するデータに容易にアクセスすることができない。特定のSMIの原因が未知であるため、SMIデータは、計算パフォーマンスを向上させるのに役立つ可能性がある。SMIの原因を知ることで、過度の割り込みが発生した場合に、SMMが長時間実行され、プロセッサが他の操作を実行できなくなることによって、システムパフォーマンスを低下させるような、過度のダウンタイムを抑制することができる。
【0009】
よって、システム管理割り込みに関連するデータに容易にアクセスできるようにするシステムに対するニーズがある。プロセッサレジスタからSMIデータを読み取るために特別な開発ツールにアクセスする必要のないシステムに対する別のニーズもある。また、SMIの根本原因を分析するために、BMCが管理するイベントログにSMIデータを保存するシステムも必要である。
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、システム管理割り込みデータの収集に用いる方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0011】
実施形態という用語及び同様の用語は、本開示及び以下の請求項の発明の全てを広く言及することを意図している。これらの用語を含む複数の提示は、本明細書に記載される発明を限定するものではなく、以下の請求項の意義や範囲を限定するものでもないことを理解されるべきである。本明細書でカバーされる本発明の実施形態は、この概要ではなく、以下の請求項により定義される。この概要は、本開示の各種態様の高レベルの概説であり、以下の詳細な説明の段落においてさらに記載されるいくつかの概念を紹介するものである。この概要は、請求される発明の重要な又は必須の特徴を特定することを意図しておらず、請求された発明の範囲を決定するために単独で使用されることを意図していない。発明は、本開示の明細書全体、任意の又は全ての図面、及び、各請求項の適切な部分を参照することによって理解されるべきである。
【0012】
開示される一例は、基本入出力システム(BIOS)と、メモリと、メモリ及びBIOSに結合された中央処理ユニットと、を有するコンピュータシステムである。中央処理ユニットは、システム管理モードにおいてシステム管理割り込み(SMI)をトリガーするためにBIOSに保存されたシステム管理割り込みハンドラーを実行するブートストラッププロセッサを有する。ブートストラッププロセッサは、システム管理割り込みハンドラーを実行して、システム管理割り込みに関連するデータをメモリに保存する。
【0013】
例示的なシステムのさらなる実施形態では、コンピュータシステムは、メモリに結合されたベースメントマネジメントコントローラー(BMC)を有する。別の実施形態では、メモリが、BMCに結合されたフラッシュメモリであり、BMCは、データをシステムエラーログ(system error log、SEL)に保存する。別の実施形態では、システムエラーログ上に保存されるデータは、インテリジェントプラットフォーム管理インターフェース(IPMI)コマンドによりアクセス可能である。別の実施形態では、メモリは、共有揮発性メモリ(shared volatile memory)である。別の実施形態では、メモリ内のデータは、オペレーティングシステムドライバによりアクセス可能である。別の実施形態では、コンピュータシステムは、サーバである。別の実施形態では、システムは、揮発性メモリを有し、且つ、メモリは、不揮発性(non-volatile memory)メモリである。ブートストラッププロセッサは、SMIのタイプを判別し、リブートを必要とするSMIのタイプに基づいて、中央処理ユニットのリブート後に、揮発性メモリ内のデータを不揮発性メモリに複製する。別の実施形態では、中央処理ユニットは、ブートストラッププロセッサを有する複数のプロセッサを有する。別の実施形態では、システム管理割り込みは、中央処理ユニットのサウスブリッジチップ(south bridge chip)の入力ポートにシグナリングするハードウェアコンポーネントによって起動される。別の実施形態では、システム管理割り込みは、中央処理ユニット上のRAS(reliability-availability-serviceable)ファームウェアから起動される。別の実施形態では、システム管理割り込みは、周辺装置とインターフェースするオペレーティングシステムから起動される。別の実施形態では、データは、メモリに保存される前に、ジェイソン(JavaScript(登録商標) Object Notation、JSON)フォーマットに変換される。
【0014】
別の開示される例は、コンピュータシステムにおいて、システム管理割り込み(SMI)に関連するデータを保存する方法である。中央処理ユニットにおいて、システム管理割り込みの通知を受信する。中央処理ユニットは、システム管理モードに入る。基本入出力システム(BIOS)のシステム管理ハンドラーは、中央処理ユニットのブートストラッププロセッサにより実行される。システム管理割り込みは、ブートストラッププロセッサにより起動される。システム管理割り込みデータは、ブートストラッププロセッサのレジスタに保存される。SMIデータは、アクセス可能なフォーマットに変換される。変換後のSMIデータは、メモリに保存される。
【0015】
例示的な方法の別の実施形態では、メモリは、ベースメントマネジメントコントローラー(BMC)に結合されたフラッシュメモリである。BMCは、データをシステムエラーログに保存する。別の実施形態では、方法は、オペレーティングシステムドライバにより、メモリに保存されたSMIデータへのアクセスを可能にする工程をさらに有する。別の実施形態では、方法は、システム管理割り込みのタイプがリブートを要求するか否かを判別する工程を有する。メモリは、不揮発性メモリである。中央処理ユニットがリブートされる。メモリ内のデータは、リブート後に揮発性共有メモリに複製される。別の実施形態では、システム管理割り込みは、プロセッサチップセットのサウスブリッジチップの入力ポートにシグナリングするハードウェアコンポーネント、RASファームウェア、又は、周辺装置とインターフェースするオペレーティングシステムのうち何れかにより起動される。別の実施形態では、データは、ジェイソン(JSON)フォーマットに変換される。
【0016】
開示される別の例は、基本入出力システム(BIOS)と、揮発性共有メモリと、不揮発性メモリと、メモリ及びBIOSに結合された中央処理ユニットと、を有するコンピュータシステムである。中央処理ユニットは、BIOSに保存されたシステム管理割り込みハンドラーを実行して、システム管理モードにおいてシステム管理割り込み(SMI)をトリガーするブートストラッププロセッサを有する。SMIのタイプがリブートを必要するか否かに基づいて、ブートストラッププロセッサは、システム管理割り込みハンドラーを実行して、システム管理割り込みに関連するデータを、ブートストラッププロセッサのレジスタから揮発性メモリ又は不揮発性メモリに保存する。
【発明の効果】
【0017】
本発明により、操作信頼性が向上する。
【0018】
本発明の上述した特徴及び他の特徴は、以下の詳細な説明を読み取り、図面を参照することによって明らかになる。
【図面の簡単な説明】
【0019】
図1】SMIデータのロギングをアクセス可能な位置で可能にするファームウェアを有するコンピューティングシステムのブロック図である。
図2】SMI中のロギング機能の実行を示す工程図である。
図3A】ハードウェア生成割り込みに関する例示的なログエントリーを示す図である。
図3B】ソフトウェア生成割り込みに関する例示的なログエントリーを示す図である。
図4】例示的なルーティンからJSONフォーマットで収集されるデータの表である。
図5】SMIデータの割り込み及び収集の例示的なルーティンのフローチャートである。
図6】リブート後にSMIデータの保存位置を決定する例示的なルーティンのフローチャートである。
【発明を実施するための形態】
【0020】
本発明は、各種修正及び代替形式を受け入れることが可能であるが、特定の実施形態が、例示的に図面に示され、本明細書において詳細に記載される。しかし、本発明は、開示された特定の形態に限定されることを意図していないことを理解されたい。むしろ、本発明は、特許請求の範囲に定義される本発明の趣旨及び範囲に含まれる全ての修正物、均等物及び代替物をカバーする。
【0021】
本発明は、多くの異なる形式で具体化される。図面に示され、且つ、ここで詳細に記述され、本発明を解釈する代表的な実施形態は、本発明の原理の例示又は説明としてみなされ、且つ、説明される実施形態の開示される広い態様を限定することを目的としていない。その程度を達成するため、例えば、要約、発明内容及び実施形態で開示されているが、請求項に明確に記載されていない要素及び限定は、単独で又は集合的に、暗示、推論又は他の方法で請求項に組み込まれるべきではない。本発明を詳細に説明する目的のため、特に断りのない限り、単数形は複数形を含み、その逆も同様である。また、「有する」という用語は「制限なしに有する」ことを意味する。さらに、近似の用語、例えば、「約(about)」、「ほとんど(almost)」、「実質的に(substantially)」、「おおよそ(approximately)」、「概ね(generally)」等の近似の用語は、ここでは、「…で(at)」、「…近くで(near)」、「…に近接して(nearly at)」、「…の3~5%内で」、「製造誤差の許容範囲内で」、又は、これらの任意の論理的組み合わせの意味を含むことができる。
【0022】
本発明は、システム管理割り込み(SMI)に関連するデータを収集するとともに、アクセス可能なフォーマットでデータを保存できるようにするルーティンに関する。例示的なルーティンは、割り込みハンドラーファームウェアにより実行され、SMIデータを、アクセス可能なフォーマットに変換する。SMIデータは、コントローラー(例えば、ベースメントマネジメントコントローラー(BMC))によりアクセス可能な共有メモリ又は不揮発性メモリに保存される。開示される例示的なルーティンは、ユーザーが、システム管理割り込み(SMI)のソースを容易に追跡できるようにし、SMIは、ファームウェアによりトリガーされる。SMIデータへの迅速なアクセスは、過度なSMIによるコンピュータシステムのパフォーマンス低下を防止する。また、このルーティンは、SMIデータに関してプロセッサレジスタをチェックするための専用の開発ツールが不要である。
【0023】
図1は、SMIデータの収集及びアクセス可能なストレージに対する機能を有するコンピュータシステム100のブロック図である。この例において、コンピュータシステム100はサーバであるが、ここで開示される原理は、SMIを処理するためにシステム管理モジュール(SMM)を使用するオペレーティングシステムを有する任意のコンピュータシステムに組み込まれる。コンピュータシステム100は、中央処理ユニット(CPU)110と、プラットフォームBIOS112と、ベースメントマネジメントコントローラー(BMC)114と、オペレーティングシステム(OS)116と、を有する。この例におけるCPU110は、ブートストラッププロセッサ(BSP)120、ノースブリッジチップ122及びサウスブリッジチップ124を有する処理コアのセットを有するチップセットである。
【0024】
この例において、ノースブリッジチップ122は、メモリ操作を処理する。サウスブリッジチップ124は、コンピュータシステム100の基本的な入力/出力機能を実行する。ノースブリッジ122とサウスブリッジチップ124の別の機能は、異なるRAS(reliability-availability-serviceable)機能を処理することである。RAS機能は、コンピュータシステム100内の周辺コンポーネントの信頼性、可用性を高め、サービスを促進するように設計されている。この例において、RAS機能は、周辺コンポーネント(例えば、アドオンカード(add-on card)、デュアルインラインメモリモジュール(DIMM)及びハードディスクドライブ(HDD)等)の装置エラーを検出する。
【0025】
コンピュータシステム100は、スタティックランダムアクセスメモリ(SRAM)であってもよい共有メモリ130を有する。また、コンピュータシステム100は、フラッシュメモリ又は類似デバイスであってもよい不揮発性メモリ132を有する。専用のBMCフラッシュメモリ134は、BMCファームウェア及びシステムエラーログ(SEL)136を保存する。この例において、不揮発性メモリ132及び専用のBMCフラッシュメモリ134は、同じフラッシュメモリであってもよいし、別のフラッシュメモリであってもよい。BMC114は、BMCフラッシュメモリ134にアクセスして、SEL136内にエントリーを追加することができる。外部装置(例えば、データセンター内の管理サーバ等)は、ネットワークインターフェースを介してBMC114と通信し、SEL136内のエントリーを読み取る。BMC114は、共有メモリ130に書き込まれたデータにアクセスすることもできる。この例において、共有メモリ130は、ASPEEDにより提供されるAST2500等のBMCチップ上の内部RAMであり、システムメモリにマッピングされている。
【0026】
この例において、コンピュータシステム100は、サウスブリッジチップ124により管理される入力/出力機能にアクセスする様々なハードウェア周辺装置を有する。この例において、ハードウェア周辺装置は、ペリフェラルコンポーネントインターフェースエクスプレス(PCIe)デバイス、デュアルインラインメモリモジュール(DIMM)、ハードディスクドライブ(HDD)、又は、ソリッドステートドライブ(SDD)、ユニバーサルシリアルバス(USB)デバイス、シリアルペリフェラルインターフェース(SPI)デバイス、及び、システムマネジメントバス(SMBUS)デバイスを有する。PCIeデバイスは、拡張カード(例えば、NICs(ネットワークインターフェースCards)、リダンダントアレイオブインエクスペンシブディスクズ(RAID)カード、フィールドプログラマブルゲートアレイ(FPGA)カード、ソリッドステートドライブ(SSD)カード、デュアルインラインメモリデバイス、及び、グラフィック処理ユニット(GPU)カード)を有する。このような装置は多数存在してもよく、本明細書で説明する装置と異なるタイプの装置を含んでもよいことを理解されたい。
【0027】
サウスブリッジチップ124は、エラー報告及び他のRAS機能を管理するためのRASシリコン140を有する。サウスブリッジチップ124は、一組の入力/出力ポート142を有する。また、サウスブリッジチップ124は、BMC114に結合されたSMI#ポート144を有する。さらに、サウスブリッジチップ124は、PCIeポート146及びシャーシオープンポート148を有する。この例において、PCIe装置150は、PCIeポート146に結合されており、割り込みを要求する。PCIe装置150は、複数のPCIe装置を表してもよいことを理解されたい。シャーシオープンポート148は、センサー割り込みを受信する。例えば、センサーは、シャーシオープンセンサー152であり、シャーシオープンセンサー152は、コンピュータシステム100のシャーシが開放されていることを検出した場合に、割り込みを要求する。ポート144,146,148からの割り込みは、以下に説明するように、ハードウェア割り込みである。他の入力/出力デバイス154は、入出力ポート142にアクセスすることができるキーボード、マウス又はビデオデバイスである。特定の入力/出力ポート(0B2h)は、ソフトウェア割り込みを生成するために、オペレーティングシステム116によってアクセスされ得る。
【0028】
プラットフォームBIOS112は、システム管理割り込み(SMI)ハンドラーファームウェア160(以下、SMIハンドラー160とも呼ばれる)を有する。この例において、SMIハンドラー160は、システム管理割り込みを処理する。この例において、SMIハンドラー160は、別のプロセッサコアがSMMに入るのを一時停止する間、ブートストラッププロセッサ120により実行される。ブートストラッププロセッサ120は、SMIデータを保存するMSRを有する一連のモデル固有レジスタ(MSR)を有する。
【0029】
上述したように、システム管理モード(SMM)は、オペレーティングシステム(OS)116の実行中にBIOS112によってシステム管理操作を実行するための操作モードである。コンピュータシステム100の実行中、CPU110のチップセットは、特定の構成されたイベントを検出する。このような構成されたイベントは、プロセッサコア、メモリデバイス、周辺装置、及び、割り込みをトリガーする他のコンポーネントからの通知を含む。この例において、特定の構成されたイベントは、SMIに信号を送る。SMIは、SMMエントリーポイントにジャンプすることにより、ブートストラッププロセッサ120をトリガーして、SMMに入る。SMMに入る間、ブートストラッププロセッサ(BSP)120がそれぞれのSMMサービスを終了してSMMを抜け出るまで、全てのコア/スレッドもSMMモードに入る。
【0030】
この例において、コンピュータシステム100がSMMに入ることができる三つの方法がある。一つ目は、マザーボード又はプロセッサチップセットのハードウェアが、サウスブリッジチップ124の指定されたピン(例えば、SMI#入力ポート144)に信号を送ることにより、SMI通知を送信する。この信号は、独立したイベントとすることができる。二つ目は、ソフトウェアSMIは、システムソフトウェア(例えば、オペレーティングシステム116)により、I/Oアクセスを介して、マザーボードロジックによって特別とみなされる位置にアクセスすることによりトリガーされる。例えば、入力ポート142の入力ポート0B2hが、I/Oアクセスのための特別な位置として用いられてもよい。三つ目に、位置へのI/O書き込みが、外部装置(例えば、PCIeデバイス)から受信される。ファームウェア(例えば、BIOS112)は、書き込みを受信するとともに、プロセッサチップセットに対して、SMIをトリガーするための要求を行う。
【0031】
ハードウェアにより生じるSMIの例は、熱センサー(thermal-sensor)イベント、スロットル起動(throttling activation)、システムマネジメントRAMアクセス、シャーシオープン(chassis open)、システム電源ボタン押下、システムマネジメントバス(SMBus)イベント、電源管理イベント(PME)、PCIエクスプレス(PCIe)ホットプラグイベント、リアルタイムクロック(RTC)アラーム起動、及び、様々なシステム状態関連アクティビティを有する。ソフトウェアにより起動されるSMIの例は、RASイベントである。例えば、RASイベントは、EINJアドバンスドコンフィグレーションアンドパワーインターフェイス(ACPI)テーブルに基づいてエラー注入(error injection)を提供するRASツールによって使用される。ソフトウェアにより起動されるSMIの他の例は、例えば、BIOSアプリケーションがオペレーティングシステム内のソフトウェアSMIをトリガーするようなアプリケーション要求であってもよい。
【0032】
図2は、図1のSMIハンドラー160により実行されるSMIデータを収集及び保存する工程を有する、SMIを処理する例示的なプロセスのフローチャートである。初期のSMIは、CPU110のブートストラッププロセッサ120をトリガーして、SMMに入る(210)。上述したように、SMIは、ハードウェアデバイスによって、ソフトウェア(例えば、BIOS112のファームウェア)を介して、又は、外部装置からオペレーティングシステム(OS)116を介して、トリガーされる。オペレーティングシステム116がSMMにある場合、ブートストラッププロセッサ120は、MSRレジスタの状態をスキャンして、SMIソースをチェックする(220)。そして、CPU110は、対応するコールバック機能を実行する。たとえば、電源ボタンが押下された場合、SMM内の機能コードは、IOポート(例えば、0xCF9)を書き込んで、システムをオフにする。別の例は、USBがレガシーモードで動作している場合、SMM内の機能コードがUSBレジスタを起動する。SMIに関連するデータを収集するために、例示的なルーティンは、記録ログがSMIデータを得られるようにする(230)。その後、プロセッサは、適切な機能を実行して、SMIをアドレスする(240)。
【0033】
SMIデータの記録において(220)、システムファームウェアは、SMIデータが収集される必要があるか否かをチェックする。この例において、BIOSがSMMでかなりの時間を費やすので、このような収集がシステム100のパフォーマンスに影響を与えない限り、各SMIに関連するデータができるだけ十分に収集される。BIOSセットアップオプションは、SMMでの過度の時間を防ぐために、収集機能を無効にするオプションを有してもよい。SMIデータを収集する必要がある場合、SMIハンドラー160は、データの収集を開始する。この例において、SMIハンドラー160は、SMIデータを収集するとともに、SMIデータをアクセス可能なデータフォーマットに変換する。この例において、オリジナルSMIデータは、ジェイソン(JSON)フォーマットに変換され、アクセス可能なメモリに保存される。好ましくは、オープンスタンダードのファイルフォーマット、及び、データ交換に用いることができる他のアクセス可能なデータフォーマットが用いられる。
【0034】
その後、SMIハンドラー160は、SMIタイプに基づいて、変換後のデータを揮発性(BMC共有メモリ、例えば、RAM130)又は不揮発性メモリ空間(NVRAM、フラッシュメモリ132)に保存する。SMIタイプがシステムリブートを要求しない通常の場合において、SMIハンドラー160は、SMIデータを共有メモリ130に保存して、ユーザーに、OSドライバーを介してデータを読み取らせる。BMC114も共有メモリ130にアクセスすることがあるので、BMC114は、データを取り出して、専用のBMCフラッシュメモリ134のSEL136に保存する。
【0035】
この例において、SMIタイプがシステムリブートを必要とする場合、変換後のSMIデータを不揮発性メモリに保存して、システムがリブートした場合にSMIデータを保存する。例えば、SMIが、システムリブート又はハングアップを引き起こす可能性のある訂正不可能なエラーによりトリガーされる場合、システムファームウェアは、データロスを防ぐためにデータをフラッシュメモリ132に保存する。
【0036】
図3Aは、システムエラーログ(例えば、図1のシステムエラーログ136)に保存されるハードウェアベースのSMIのデータレコード310を示す図である。データレコード310は、ソースと、割り込みが起動前に発生した最後のブート割り込みであるかどうかと、割り込みの時間と、割り込みのタイプと、を有する。この例において、割り込みは、外部ハードウェアデバイス(XHCI)から発生する。識別された外部ハードウェアデバイスに関連するレジスタが調べられ、SMIがトリガーされた理由を判定することができる。別の例は、USBデバイスが、エラーに対応するレジスタビットを書き込むことである。
【0037】
図3Bは、システムエラーログ(例えば、図1のシステムエラーログ136)に保存されるソフトウェアベースのSMIのデータレコード320を示す図である。データレコード320は、ソースと、割り込みが最後のブート割り込みであるかどうかと、割り込みの時間と、割り込みのタイプと、を有する。この例において、割り込みは、フラッシュメモリの読み取りの試みが失敗したことにより発生する。
【0038】
データレコード(例えば、データレコード310又は320)がSEL136に保存される場合、ユーザーは、インテリジェントプラットフォーム管理インターフェース(IPMI)コマンドを用いて、BMC114を介してレコードに直接アクセスすることができる。例えば、IPMIコマンドを介して取得されるレコードのセットは、以下の通りである。
1 | 07/01/2019 | 09:05:14 | ソフトウェアマネジメント割り込み | ハードウェア | PCIデバイスホットプラグ | アサ―ト済み
2 | 07/01/2019 | 09:05:14 | ソフトウェアマネジメント割り込み | ソフトウェア | ウオッチドッグタイマー |
この例において、第一ログエントリーは、PCIデバイスからSMIが発生したことを示し、第二ログエントリーは、ウオッチドッグタイマーから割り込みが発生したことを示す。
【0039】
図4は、特定の割り込みに関連するSMIデータについて、収集されたSMIデータから導出されるJSONデータフォーマットのテーブル400を示す図である。テーブル400は、属性(attribute)カラム410と、データタイプカラム412と、読み取り状態カラム414と、説明カラム416と、を有する。属性カラム410は、SMIデータから導出された該当する(applicable)属性をリストする。データタイプカラム412は、属性のデータフォーマット(例えば、文字列(string)又はブール(Boolean))を示す。読み取り状態カラム414は、データが読み取り専用であるか否かを示す。説明カラム416は、属性の説明を有する。
【0040】
属性ロウ420は、割り込みがハードウェア又はソフトウェアソースの何れから発生したかを判断するソースの記述を有する。最後のブート割り込み属性ロウ422は、割り込みが、最後のブートによってトリガーされたか否かを示す。タイムスタンプ属性ロウ424は、割り込みの時間を示す。タイプ属性ロウ426は、割り込みのタイプを示すとともに、SMIをトリガーしたコンポ―ネント又はハンドラーを決定するのに用いられる。
【0041】
SMIデータは、SMIのソースを識別することを可能にする。SMIのソースの識別によって、BIOSは、SMIハンドラーを、全体のシステムを停止できない別の割り込みハンドラーに変えて、コンピュータシステム100の操作効率を向上させる。SMIデータは、誤動作しているコンポーネントを示す場合がある。よって、オペレーターは、コンポーネントを修復又は交換するように警告され得る。SMIデータのタイムスタンプ属性は、何れのアプリケーションが実行され、システムに影響したかを追跡するのに役立つ。SMIデータの最後のブート割り込み属性は、何れの種類のSMIがシステムに影響を与え、リブートを生させたのかを追跡するのに役立つ。
【0042】
図5は、SMIハンドラー160により実行される例示的な収集及び保存プロセスのフローチャートである。ルーティンは、まず、ブートストラッププロセッサ120のMSRをスキャンする(510)。ルーティンは、MSRに保存されたSMIデータを読み取るとともに、SMIデータがSMIの発生を示すか否かを判断し、データを収集するか否かを判断する(512)。ルーティンが、データを収集する必要がないと判断した場合(512)、ルーティンは、元のハンドラー工程に戻る(514)。
【0043】
ルーティンが、データを収集する必要があると判断した場合(512)、ルーティンは、MSRからSMIデータを収集する(516)。収集されたデータは、この例では、JSONフォーマットに変換される(518)。ルーティンは、収集されたデータから、SMIのタイプをレビューする。ルーティンは、SMI割り込みがリブートを要求するか否かを判断する(520)。SMI割り込みがリブートを要求しない場合、ルーティンは、レコードを共有揮発性メモリ(例えば、図1のRAM130)に保存する(522)。その後、ルーティンは、元のハンドラー工程にループする(514)。SMI割り込みがリブートを要求する場合、ルーティンは、レコードを不揮発性メモリ(例えば、図1のフラッシュメモリ132)に保存する(524)。その後、ルーティンは、元のハンドラー工程にループする(514)。
【0044】
図6は、リブートが発生した後に、フラッシュメモリ132等のNVRAMに保存されたSMIデータを処理するプロセスを示す図である。図6のルーティンは、BIOS POST時間において、BIOSが、任意のSMIデータレコードがNVRAMに保存されるか否かを確認するとともに、それを共有メモリ130に転送して、SMIデータにアクセスできるようにすることを確実にする。よって、SMI割り込みによりリブートした場合、SMIデータは、共有メモリ130を介してアクセス可能になる。
【0045】
ルーティンは、オリジナルのブート工程(例えば、BIOS POSTの実行)から開始される(610)。次に、ルーティンは、SMIデータレコードが不揮発性メモリに保存されているか否かを判断する(612)。不揮発性メモリにSMIデータが保存されている場合、ルーティンは、そのデータを共有メモリに書き込む(614)。その後、ルーティンは、元のブート工程にループする(616)。不揮発性メモリに保存されたSMIデータがない場合、ルーティンは、元のブート工程を続行する(616)。このようにして、リブート後、不揮発性メモリに以前に保存された任意のSMIデータは、共有揮発性メモリを介してアクセス可能である。
【0046】
図5及び図6の工程は、図1のコンピュータシステム100のSMIデータのロギング及びストレージを実行するための例示的な機械可読命令を代表するものである。この例において、機械可読命令は、(a)プロセッサ、(b)コントローラー、及び/又は、(c)一つ以上の他の適切な処理装置により実行されるアルゴリズムを有する。アルゴリズムは、例えば、フラッシュメモリ、CD-ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタルビデオ(versatile)ディスク(DVD)、又は、他のメモリデバイス等の有形媒体に保存されたソフトウェアで具現化され得る。しかしながら、当業者であれば、アルゴリズム全体及び/又はその一部が、プロセッサ以外の装置により実行され、及び/又は、周知の方法でファームウェア若しくは専用のハードウェア(例えば、特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、フィールドプログラム可能論理回路(FPLD)、フィールドプログラマブルゲートアレイ(FPGA)、離散装置等で実施される)に具現化され得ることを容易に理解するであろう。例えば、インターフェースの一部又は全てのコンポーネントは、ソフトウェア、ハードウェア、及び/又は、ファームウェアにより実行される。また、図5及び図6のフローチャートにより示される機械可読命令の一部又は全ては、手動で実施されてもよい。さらに、例示的なアルゴリズムが図5及び図6に示すフローチャートを参照して開示されているが、当業者であれば、例示的な機械可読命令を実行する多くの他の方法が代わりに用いられてもよいことを理解するであろう。例えば、ブロックの実行順序は変更されてもよく、及び/又は、記載されたいくつかのブロックは、変更、除去、又は、結合されてもよい。
【0047】
本願で使用する「コンポーネント」、「モジュール」、「システム」等の用語は、通常、ハードウェア(例えば、回路)、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は、一つ以上の特殊機能を有する操作機器に関連するエンティであるコンピュータ関連エンティティを指す。例えば、コンポーネントは、これに限定されないが、プロセッサ(例えば、デジタルシグナルプロセッサ)上で実行されるプロセス、プロセッサ、オブジェクト、実行可能なスレッド、プログラム、及び/又は、コンピュータである。例えば、コントローラー上で実行されるアプリケーション及びコントローラーの両方をコンポーネントとすることができる。一つ以上のコンポーネントは、プロセス及び/又は実行のスレッド内に存在することができ、コンポーネントは、一つのコンピュータ上に配置され、及び/又は、二つ以上のコンピュータ間で分散されてもよい。さらに、「装置」は、ハードウェアが特殊機能を実行できるようにするソフトウェアの実行により特殊化される汎用ハードウェア、コンピュータ可読媒体に保存されたソフトウェア、又は、それらの組み合わせである。
【0048】
本発明の様々な実施形態を上述したが、それらは例として示されたものであり、これに限定されないことを理解されたい。本発明の思想を脱しない範囲内で各種の変形を加えることができる。よって、本発明の幅と範囲は、上述した実施形態によって限定されるべきではない。むしろ、本発明の範囲は、以下の特許請求の範囲及びその均等物により定義されるべきである。また、一つ以上の実施形態に関して、本発明が既に説明及び記述されているが、当業者であれば、本明細書と添付画面を閲読して理解した後に、同等の変更及び修正を考えつくであろう。さらに、本発明の特定の特徴は、いくつかの実施形態のうち何れかに関して開示されているが、このような特徴は、所定の又は特定のアプリケーションに対して、他の実施形態の一つ以上の他の特徴と結合する。
【0049】
ここで使用される用語は、特定の実施形態を説明するだけの目的であり、本発明を限定するものではない。特に定義されない限り、ここで使用される単数形「一」、「一つの」、「この」は、複数形も同様に含む。さらに、「有する」、「含む」等の用語が詳細な説明及び/又は請求項に用いられているが、このような用語は、「備える」と同様の意味を有する。
【0050】
特に定義されない限り、ここで用いられる全ての用語(技術及び科学用語を含む)は、当業者によって一般的に理解されるものと同じ意味を有する。さらに、一般的に使用される辞書に定義されている用語は、特に定義されない限り、従来の技術の文脈における意味と同じ意味を有すると解釈されるべきであり、理想化又は過度に形式的な意味として解釈されるべきではない。
【符号の説明】
【0051】
100…コンピュータシステム
110…中央処理ユニット(CPU)
112…プラットフォームBIOS
114…ベースメントマネジメントコントローラー(BMC)
116…オペレーティングシステム(OS)
120…ブートストラッププロセッサ(BSP)
122…ノースブリッジチップ
124…サウスブリッジチップ
130…共有メモリ
132…不揮発性メモリ
134…BMCフラッシュメモリ
136…システムエラーログ(SEL)
140…RASシリコン
142…入力/出力ポート
144…SMI#ポート
146…PCIeポート
148…シャーシオープンポート
150…PCIe装置
152…シャーシオープンセンサー
154…入力/出力デバイス
160…システム管理割り込み(SMI)ハンドラーファームウェア
210、220、230、240、510、512、514、516、518、520、522、524、610、612、614、616…操作
310、320…データレコード
400…テーブル
410…属性(attribute)カラム
412…データタイプカラム
414…読み取り状態カラム
416…説明カラム
420…属性ロウ
422…最後のブート割り込み属性ロウ
424…タイムスタンプ(timestamp)属性ロウ
426…タイプ属性ロウ
図1
図2
図3A
図3B
図4
図5
図6