JP6297715B2 - コンピューティングデバイスの初期化トレース - Google Patents

コンピューティングデバイスの初期化トレース Download PDF

Info

Publication number
JP6297715B2
JP6297715B2 JP2016555320A JP2016555320A JP6297715B2 JP 6297715 B2 JP6297715 B2 JP 6297715B2 JP 2016555320 A JP2016555320 A JP 2016555320A JP 2016555320 A JP2016555320 A JP 2016555320A JP 6297715 B2 JP6297715 B2 JP 6297715B2
Authority
JP
Japan
Prior art keywords
computing device
trace
initialization
boot controller
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.)
Active
Application number
JP2016555320A
Other languages
English (en)
Other versions
JP2017507431A (ja
Inventor
シー. スワンソン,ロバート
シー. スワンソン,ロバート
トロー,シー.ブレンダン
ジェイ. ジンマー,ヴィンセント
ジェイ. ジンマー,ヴィンセント
ブルス,マリク
アール. リンズレイ,ジョン
アール. リンズレイ,ジョン
エス. ナトゥ,マヘシュ
エス. ナトゥ,マヘシュ
ジアカス,ディミトリオス
ダブリュー. コーン,ロバート
ダブリュー. コーン,ロバート
ランガラジャン,マドゥスダン
ニクジョウ,ババク
ディー. ブラノック,カーク
ディー. ブラノック,カーク
ジェイ. ワンダーリッチ,ラッセル
ジェイ. ワンダーリッチ,ラッセル
エフ. シュワルツ,マイルズ
エフ. シュワルツ,マイルズ
エス. ポーロウスキ,スティーヴン
エス. ポーロウスキ,スティーヴン
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017507431A publication Critical patent/JP2017507431A/ja
Application granted granted Critical
Publication of JP6297715B2 publication Critical patent/JP6297715B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

関連出願
本出願は、「INITIALIZATION TRACE OF A COMPUTING DEVICE」というタイトルで2014年3月26日に出願された、米国出願14/226,612の優先権を主張する。
本開示の実施形態は、コンピューティングデバイスの初期化(initialization)の分野に関連し、特にコンピューティングデバイスの初期化のモニタ(monitoring)及びトレース(tracing)に関連している。
本明細書での提供される背景説明は、本開示のコンテキストを一般的に示す目的である。本明細書中で別段の指示が無い限り、本セクションで説明した題材は、本出願の請求項に対する先行技術ではなく、且つ本セクションに含まれるものにより先行技術を認めるものでもない。
コンピューティングデバイスの電源がオンにされたとき、広範囲な初期化(initialization)プロセスが、コンピューティングデバイスが動作可能状態へ達する前に起こる。初期化プロセスは、メモリ、1つ以上のプロセッサ、メモリコントローラ等のようないくつかの特定のコントローラを含むハードウェアの初期化を含むことができる。各これらのハードウェアは、例えばリードオンリーメモリ(ROM)又はフラッシュメモリのようなコンピューティングデバイスのメモリに保存された、ファームウェアのような一連の命令の実行を通して初期化されうる。初期化プロセスは、順番に実行される初期化、同時に実行される初期化又はそれらのいかなる組合せを含みうる。例えば、タブレットやスマホのような比較的小さいコンピューティングデバイスは、適切にプラットフォームをブートするために同時にブートタスクを実行できる。この順番の又は同時のイベントは、適切に実行されたとき、コンピューティングデバイスを動作可能な状態へ到達させることができる。しかしながら、このような初期化プロセスのいかなる態様であっても不適切に実行された場合、コンピューティングデバイスは、動作可能状態に到達することはできず、又は危険にさらされる可能性がある。不適切な初期化は、コンピューティングデバイスが動作可能状態になることを阻む場合、ユーザは、コンピューティングデバイスが不適切に初期化されたことを知る方法が無い可能性がある。さらに、現在の技術では、たとえユーザが初期化プロセスが不適切に実行されたことを知ったとしても、実際にプロセスのどの部分が不適切に実行されたのかを見つけ出すことは時間が掛かり且つ困難でありうる。
図1は、本開示の様々な実施形態によるブートコントローラを有するコンピューティングデバイスの実例となる構成を説明する図である。 図2は、本開示の様々な実施形態によるブートコントローラによりモニタされる実例となるブートプロセスを説明する図である。 図3は、本開示の様々な実施形態による不揮発性メモリの実例となるメモリマップを説明する図である。 図4は、本開示の様々な実施形態による初期化トレースを生成する実例となるプロセスの流れを説明する図である。 図5は、本開示の様々な実施形態によるユーザドリブンチェックポイント(user driven checkpoint)を確立する実例となるプロセスの流れを説明する図である。 図6は、本開示の様々な実施形態によるコンピューティングデバイスを初期化するトレースをリプレイする実例となるプロセスの流れを説明する図である。
コンピューティングデバイスの初期化をトレースする方法、記憶媒体、及びプラットフォームコントローラが本明細書で説明される。実施形態において、プラットフォームコントローラは、ブートコントローラを含みうる。ブートコントローラは、いくつかの不揮発性メモリモジュールに接続され、この不揮発性メモリモジュールは、コンピューティングデバイス上で初期化プロセスを実行するその中に保存された初期化命令を有することができる。単一初期化プロセスは、いくつかのハードウェア、複数のマイクロコントローラ、複数のソフトウェアコンポーネント等の初期化を含み、それによりコンピューティングデバイスを動作可能な状態に到達させうる。いくつかの不揮発性メモリモジュールは、またブートコントローラにより実行されたときに、コンピューティングデバイスによる初期化命令の実行の少なくとも一部をブートコントローラにモニタさせ、第1の命令の実行のモニタされた部分のトレースを生成することができる。実施形態において、トレースは、ブートコントローラにより不揮発性メモリモジュールのいくつかに保存されうる。例えば、初期化命令は、いくつかの実施形態において、いくつかのコントローラ又はコンピューティングデバイスのエンジンを初期化することに利用されるファームウェアの形態を取ることができる。ブートコントローラは、これらのファームウェアの実行をモニタし、このモニタからトレースを生成できる。すなわち、ここでMは、いくつかのマイクロコントローラ(ブートコントローラ自身を含む)によりブートコントローラによってキャプチャされた初期化の数であり、システムブートは、全M初期化の集合体である。モニタされたトレースに加えて、例えば、一般性を失うこと無く、コンピューティングデバイスをマニュファクチャリングモード(manufacturing mode)、リカバリモード(recovery mode)、パフォーマンスモード(performance mode)等にブートする所定のトレースもありうる。いくつかの実施形態において、ブートコントローラは、コンピューティングデバイスの少なくとも一部を初期化するブートコントローラにアクセス可能ないかなるトレースもリプレイ(replay)できるように構成されうる。いくつかの実施形態において、トレースの一部はリプレイされうる。このことは、例えば、部分的な攻撃に関連するシグネチャ(signature)を見つけ出すのに役に立ちうる。これらのシグネチャは、その結果、このような攻撃からコンピューティングデバイスを保護することに利用できる。
以下の詳細な説明において、参照記号(reference)は、あらゆる個所で同様の番号が同様の部分を指定する本明細書の一部を形成する添付図面に対してされ、その中で説明により実施されうる実施形態が示される。他の実施形態も利用することができ、構造的又は論理的な変更が本開示の範囲から逸脱すること無く、行うことができることを理解されたい。したがって、以下の詳細な説明は、制限を行う趣旨で理解されるべきではなく、実施形態の範囲が添付の請求項及びその均等物によって規定される。
様々なオペレーション(operation)が、請求された発明の内容を理解するのに最も有用な方法で、複数の個別のアクションや順番のオペレーションとして説明されうる。しかしながら、説明の順序は、それらのオペレーションが必要な順序依存性があることを意味すると理解すべきではない。特に、それらのオペレーションは、本開示の順番で実行されないかも知れない。記載されたオペレーションは、記載された実施形態とは異なる順番で実行されうる。様々な追加のオペレーションが実行され及び/又は記載のオペレーションが追加の実施形態では除外されうる。
本開示の目的で、表現「A及び/又はB」(A and/or B)は、(A)、(B)、又は(A及びB)を意味する。本開示の目的で、表現「A、B、及び/又はC」(A, B, and/or C)は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B及びC)を意味する。明細書で表現「実施形態において、」(in an embodiment,)又は「いくつかの実施形態において、」(in embodiments,)を使う場合は、それぞれ同様の又は異なる1つ以上の実施形態を参照することができる。その上、「備える」(comprising)、「含む」(including)、「有する」(having)等が、本開示の実施形態に関して使われるときは、同義語である。
図1は、本開示のいくつかの実施形態によるブートコントローラ114を有するコンピューティングデバイス100の実例となる構成を示す。ブートコントローラ114は、コンピューティングデバイス100の初期化プロセスをモニタし、初期化プロセスのモニタに基づきトレースを生成するように構成することができる。実例となる初期化プロセスは、図2を参照してさらに詳細に検討される。これらに制限されないが、トレースの全部又は一部のリプレイ、又はコンピューティングデバイス100の初期化プロセスを検証する(validate)トレースの利用を含み、トレースは色々な方法で利用されることができ、これらは、以下でさらに詳細に検討される。
実施形態において、コンピューティングデバイス100は、プロセッサ102のような一つ以上のプロセッサと、コヒーレントドメイン(coherent domain)における1つ以上の処理要素(例えば、ベースボード管理コントローラ(BMC)、図1に示していないイノベーションエンジン(IE)、管理エンジン(ME)等)を含むことができる。本明細書において使用される、コヒーレントドメインは、所定のブートシーケンスに関与し、メモリ及び/又はハードウェアリソースを共用しうる全てのコントローラを参照しうる。いくつかの実施形態において、プロセッサ102は、グラフィックスモジュール104とメモリコントローラ106を含みうる。プロセッサ102は、単一のプロセッサコア又は複数のプロセッサコアから成り立ちうる。さらに、いくつかの実施形態において、プロセッサ102は、複数のプロセッサの一つでありうる。いくつかの実施形態では、複数の非コヒーレント及び/又はコヒーレントプロセッサは協力してプラットフォームを初期化するように働くことができる。マルチプロセッサの実施形態では、複数のプロセッサが同じタイプであり、すなわち、ホモジニアス、又は違うタイプであり、すなわち、ヘテロジニアスでありえ、いかなるタイプのシングル又はマルチコアプロセッサも含みうる。本開示は、プロセッサのタイプ及び/又は数にかかわらず、同様に適用可能である。
メモリコントローラ106は、いくつかの実施形態において、図示したようにプロセッサ102と同じパッケージ内に統合されうる。他の実施形態では、メモリコントローラ106は、ディスクリートチップであり又はコンピューティングデバイス100の別の部分に統合されうる。メモリコントローラ106は、1つ以上のランダムアクセスメモリ(RAM)108からの読み取り及びRAMへの書き込みを制御し、RAM108のリフレッシュも制御するように構成することができる。
いくつかの実施形態では、統合されたグラフィックスモジュール104が図示したようにプロセッサ102と同じパッケージに統合されうる。いくつかの実施形態においては、統合されたグラフィックスモジュール104が、ディスクリートチップであり、コンピューティングデバイス100の他の部分と統合され、システムオンチップ(SoC)として実装され、又はバスによって接続されたいくつかのディスクリートの部品として実装されうる。統合されたグラフィックスモジュール104は、コンピューティングデバイス100のディスプレイへ出力するグラフィカルデータを扱うように構成されたプロセッサを含むことができる。いくつかの実施形態において、統合されたグラフィックスモジュール104は、専用のグラフィックスカードで置き換えられうる。
プロセッサ102は、サウスブリッジ110と接続されうる。サウスブリッジ110は、例えば、プラットフォームコントローラハブ(PCH)、ファームウェアコントローラハブ(FCH)、入出力(I/O)コントローラハブ等のような、プラットフォームコントローラ又はその一部という形態を取りうる。本明細書で使用される、プラットフォームコントローラは、サウスブリッジ110やサウスブリッジ110に接続されるコントローラ及び/又はメモリを含みうる。サウスブリッジ110は、例えば、ファーメモリインタフェース(FMI)、1つ以上のペリフェラルコンポーネントインターコネクト(PCI)、ユニバーサルシリアルバス(USB)、ローピンカウント(LPC)ブリッジ、スーパーペリフェラルインタフェース(SPI)バス、システム管理バス(SMB)等を介して、コンピューティングデバイス100のI/O機能を調整することができる。これを達成するために、サウスブリッジ110は、例えば管理エンジン(ME)112と1つ以上の入出力(I/O)コントローラ116のようないくつかのコントローラ及び/又はエンジンを含むことができる。いくつかの実施形態では、複数のMEがコンピューティングデバイス100に統合されうる。例えば、上述のコンポーネントのサードパーティーベンダが提供するコード又はファームウェアを実行する第1のMEがあり、プラットフォームのコード又はファームウェアを実行する追加のMEがあっても良い。いくつかの実施形態では、サウスブリッジ110は、一緒に統合されたブートコントローラ114を有することができる。他の実施形態では、ブートコントローラ114は、ディスクリートチップ上に配置され、又はコンピューティングデバイス100の他のコンポーネントと一緒に統合されうる。これらのエンジンやコントローラは、単に説明のためのものであり、本開示を制限することを意味するものではないことを理解されたい。いくつかのコントローラ及び/又はエンジンが、本開示から逸脱することなく含まれうる。さらに、これらのコントローラは、本開示の範囲を逸脱すること無く、他の形態を取り、コンピューティングデバイス100の異なる位置に配置されうる。いくつかの実施形態では、サウスブリッジ110は、BMC又は他の内臓コントローラ(EC)、以下ではBMC/EC120のような帯域外(out-of-band)管理コントローラ及び例えばキーボード、マウス、カメラ、外付けハードドライブ等のような1つ以上の周辺デバイス122に接続されうる。いくつかの実施形態では、ブートコントローラ114は、BMC/EC120と統合されうる。サウスブリッジ110は、またファーメモリインタフェース(FMI:far memory interface)124、又は他のメモリインタフェースを含みうる。FMI124は、不揮発性メモリ(NVM)128にデータコネクション126を介して接続されうる。いくつかの実施形態では、NVM128は、例えばDDR4のようなダブルデータレート(DDR)仕様書に従って動作するように構成されうる。
上述の各コンポーネントは、コンピューティングデバイス100の追加のコンポーネントと同様に、コンポーネントが動作状態(operational state)に到達する前に初期化を必要とすることができる。その結果、コンピューティングデバイス100が動作状態に到達する前に、図2の初期化プロセス200のような複雑な初期化プロセスをコンピューティングデバイス100が受けうる。さらに、これらの多くのコンポーネントは、個別の初期化を達成するための特定のファームウェアにアクセスする必要がありうる。もし1つのコンポーネントでも正しく初期化されなかった場合は、コンピューティングデバイス100が、動作状態に達することが阻止され、コンピューティングデバイス100がウィルス、マルウェア、又はサイバー攻撃に対して脆弱な状態になりうる。
実施形態において、ブートコントローラ114は、図2に示したように、コンピューティングデバイス100の初期化プロセスをモニタし、モニタした初期化プロセスのトレースを生成するように構成することができる。このようなトレースは、リセットベクタの実行前の状態からコンピュータデバイス100への動作状態へのインスタンスを生成(instantiation)までの初期化手順の全部又は一部を含みうる。さらに、いくつかの実施形態では、例えばBMC、IE、ME、基本入出力システム(BIOS)、メモリコントローラ等の初期化のような各初期化手順は、そのようなコンポーネントの個別の初期化と関連するトレースセグメントを有することができる。そのような実施形態では、各トレースセグメントは、ブートコントローラ114により実行されるモニタリングを通じて生成されうる。さらに、これらの各コンポーネントは、例えば個別のコンポーネントのベンダーにより提供されうるトレースのような所定のトレースを有することができる。いくつかの実施形態では、コンピューティングデバイス100に対する初期化プロセスの開始前にブートコントローラ114の初期化するファームウェアを含むリードオンリーメモリ(ROM)と共に、このモニタリングはプロビジョニングブートコントローラ114によって遂行されうる。いくつかの実施形態において、ブートコントローラ114の本明細書に記載される機能を実行するのに必要な命令の全てが、ROM118に保存されうる。別の実施形態では、ROM118が動作状態に到達するまでのブートコントローラ114に関する初期化命令を単に含み、ブートコントローラ114は、NVM128のような他のメモリから実行可能な命令を読み出すことができる。
実施形態において、初期化プロセスのモニタリングを実行し、関連するトレースを生成するために、ブートコントローラ114は、NVM128のようなメモリにアクセスする必要がありうる。例えば、上述の通り、NVM128は、ブートコントローラ114に本明細書で記載した機能の少なくとも一部を実行させるような実行可能な命令を含みうる。実施形態において、ブートコントローラ114は、FMI124及びデータコネクション126経由でNVM128にアクセスし、ブートコントローラ114がモニタリングプロセスを実行できるように構成されうる。FMI124及びデータコネクション126は、上述のブートコントローラ114と同様の態様で初期化されうる。いくつかの実施形態において、FMI124とデータコネクション126は、ROM118を利用して初期化され、ブートコントローラ114を初期化するように使用されうる。別の実施形態では、FMI124及びデータコネクション126は、ROM118とは別のROMを利用して初期化されうる。いくつかの実施形態において、ブートコントローラ114、FMI124及びデータコネクション126は、コンピューティングデバイス100のパワーオンセルフテスト(POST)の前に初期化され、それにより、コンピューティングデバイス100の各個別のコンポーネントのPOSTの前の状態からコンピューティングデバイス又はその他のコンポーネントのモニタリングをイネーブルしうる。
実施形態において、NVM128は、トレースストア(trace store)130、トレースリプレイ識別子(trace replay identifier)132及び/又はファームウェアストア(firmware store)134を含むように構成することができる。トレースストア130は、ブートコントローラ114によって以前に生成されたトレース及び/又はブートコントローラ114によって現在生成されているトレースを保存するように構成することができる。さらに、いくつかの実施形態では、トレースストア130は、コンピューティングデバイス100の単一のコンポーネント又はコンポーネントのグループ、又はその全体として、特定の状態に初期化する能力を有する所定のトレースと共に構成されうる。例えば、一般性を失うことなく、リカバリ(recovery)、パフォーマンスモード(performance mode)への初期化、パワーエフィシェントモード(power efficient mode)への初期化、マルウェアプロテクションモード(malware protection mode)への初期化等をシステム全体として最適化する所定のトレースが存在しうる。本明細書においてブートコントローラメールボックスとして参照されるトレースリプレイ識別子(trace replay identifier)132は、コンピューティングデバイス100のユーザがリプレイを選択したトレースの識別子を保存するように構成されうる。実施形態において、ブートコントローラ114は、トレースがリプレイのために選択されたことを判定するためにトレースリプレイ識別子132をチェックするように構成され、もしその場合、所定のトレースにコンピューティングデバイス100に関する通常の初期化プロセスの代わりにリプレイさせるように構成されうる。このプロセスは、以下で図6を参照して、さらに詳細に検討される。ファームウェア134は、コンピューティングデバイス100の個別のコンポーネントを初期化するために必要な全てのファームウェア、又はその一部を含みうる。
いくつかの実施形態において、コンピューティングデバイス100の個別のコンポーネントは、ファームウェア134にアクセスし、個別のコンポーネントの初期化に必要なファームウェアを読み出す。このような実施形態において、ブートコントローラ114は、これらのアクセスをモニタし、トレースストア130に保存されるトレースの生成を補助するように構成されうる。他の実施形態において、ブートコントローラ114は、NVM128に対して仲介者(middleman)又は門番(gatekeeper)として働くように構成されうる。そのような実施形態において、ブートコントローラ114は、個別のコンポーネントからファームウェアストア134内に含まれるファームウェアに対するリクエストを受け取り、リクエストされたファームウェアに対するアクセスを提供することによりこのようなリクエストにサービスを提供しうる。いくつかの実施形態において、ファームウェアが適正なコンポーネントに対して提供されているかを保証するためのファームウェアへのアクセスを提供する前に、ブートコントローラ114は、ファームウェアのリクエスタが本物であることの確認を行うよう構成することができる。さらに、いくつかの実施形態において、ブートコントローラ114は、ファームウェアストア134内に保存されたファームウェアの更新(update)を実行するように構成されうる。このような実施形態において、ブートコントローラ114は、トレースストア130に保存された以前に記録されたトレースのリプレイに必要でありうる以前のバージョンのファームウェアを維持するように構成されうる。いくつかの実施形態によると、ブートコントローラ114は、生成されたトレースからチェックサム(checksum)を生成し、所定の検証コード(validation code)に対して比較し、初期化プロセスを検証するように構成することができる。いくつかの実施形態によると、もし初期化プロセスの検証が失敗した場合、ブートコントローラは、コンピューティングデバイスにトレースストア130からの以前に保存されたトレースを利用してコンピューティングデバイスに再初期化させるように構成することができる。これが遂行され、例えば、ブートコントローラ114によって、トレースリプレイ識別子132に以前に生成されたトレースの識別子を保存し、コンピューティングデバイスをリセットしうる。さらに、ブートコントローラ114は、トレースされた初期化プロセスの成功した検証のみに応じて、NVM128に生成されたトレースを保存する(persist)ように構成されうる。上述の通り、トレースは、コンピューティングデバイス100のいずれかのコンポーネント又はコンポーネントのグループ、又はその全体の初期化を含みうる。その結果、検証は、コンピューティングデバイス100のいずれかのコンポーネント又はコンポーネントのグループ又はその全体のトレース上で実行されうる。
図2は、本開示のいくつかの実施形態による実例となる初期化プロセス200を示す。初期化プロセスは、図1のブートコントローラ114によりモニタされ、トレースストア232内にトレースNが生成され、ここでNは、いくつかのトレースのうちの最近のトレースを表すことができる。初期化プロセス200は、ブロック204においてセキュリティ(SEC)フェーズで始まり、ここで中央処理ユニット(CPU)キャッシュは、フラッシュ(flush)され、基本入出力システム(BIOS)リセットベクタが実行されうる。ブロック206において、データエリアは、CPUキャッシュの中に確立され、スタックベースのプログラミング言語が、システムメモリの初期化の前に使用されうる。
ブロック208において、SECフェーズが、事前拡張ファームウェアインタフェース(PEI:pre-extensible firmware interface)に引き継ぐことができる。PEIフェーズで、BIOSがブロック210においてメモリに必要な速度を決定することができる。その後、メモリは、ブロック212で初期化されうる。ブロック214において、初期化プロセスが、見つかったメモリをメモリに関して定義されたアドレスマップにマップすることができる。このメモリマップは、見つかったメモリのメモリアドレスを、メモリマップによってカバーされるメモリ領域と関連付けることができる。例えば、メモリマップは、メモリアドレスの特定の範囲を予約済みメモリアドレスとして指定し、ブロック214における手順は、これらのメモリアドレスをそのように指定しうる。
ブロック216において、ブートプロセスのPEIフェーズが完了し、ドライバ実行環境(DXE:driver execution environment)が開始されうる。ブロック218においてチップセット及びサテライトコントローラがそれぞれのコンポーネントに関連したファームウェアを使用して初期化されうる。ブロック220において、中央処理ユニット(CPU)が初期化されうる。CPUが初期化された後、ポテンシャルブート可能パーティションの優先順位を付けたリストからブートデバイスを選ぶプロセスがブロック222において実行されうる。ブロック224において、PCIエニュメレーション(enumeration)プロセスが実行され、コンピューティングデバイスのPCIバスに接続されるデバイスが決定され、オプションROMがそれらのコンポーネントの初期化を開始しうる。ブロック226において、各ROMのシャドウ又はコピーがコンピューティングデバイスのメモリに保存されうる。ブロック228において、コンピューティングデバイスのオペレーティングシステム(OS)がブートされうる。
この初期化プロセス全体又はその部分は、ブートコントローラ114によってモニタされ、トレースストア232に保存されるトレースが生成されうる。上述の初期化プロセスは、初期化プロセスの例を単に説明することを意図している。このように説明した初期化プロセスは、コンピューティングデバイスの初期化を実行する実際のプロセスの一部分を表しているだけでありうる。初期化プロセスが追加のプロセスを含み、又はコンピューティングデバイスやその中に含まれるコンポーネントに依存して変化しうることを理解されたい。本開示は、コンピューティングデバイスによって実行されうる初期化プロセスにかかわらず同様に適用可能である。
図3は、本開示のいくつかの実施形態による、図1のNVM128のような不揮発性メモリの実例となるメモリマップ300を示す。メモリマップ300は、NVMのレイアウトを規定し、本開示のいくつかの態様で予約されるNVM内のメモリアドレスの範囲、又は領域を指定しうる。実施形態おいて、メモリマップ300は、ディスクリプタ(descriptor)領域302を含むことができる。ディスクリプタ領域302は、ブートコントローラ等のコンポーネントがいくつかの領域へのアクセスを制限するために使用しうるメモリマップ300によって定義された異なる領域へのアクセス許可を含みうる。トレースストア304は、コンピューティングデバイスの初期化プロセスのブートコントローラにより生成されたトレースを記憶するように構成することができる。メモリマップ300は、また図1のトレースリプレイ識別子132のようなリプレイされるトレースの識別子を保存するのに利用されうるブートコントローラメールボックス306を含みうる。実施形態において、メモリマップ300は、ROMのコピーを含みうるROMシャドウ308を含むことができ、ROMのコピーは以前に生成されたトレースにおいて特定されたROMのリプレイを可能にするためにコンピューティングデバイスの初期化で利用されうる。
実施形態において、トレースストア304は、コンピューティングデバイスを初期化するために必要な全てのプロセスを含むトレースを含みうる。いくつかの実施形態において、コンピューティングデバイスの個別のコンポーネントは、図1に示されるような個別のコンポーネント全てに対するファームウェアを含む単一のファームウェアストアを持つよりは、各ファームウェアストアを持ちうる。いくつかの実施形態において、各コンポーネントのファームウェアは、管理エンジン(ME)ファームウェア310、イノベーションエンジン(IE)ファームウェア314やベースボード管理コントローラ(BMC)ファームウェア318のような個別のストアに保存されことができる。これらの各ファームウェアストア、310、314及び318は、単に個別のコンポーネントの最新のファームウェアを含むだけではなく、以前に生成されたトレースをリプレイするために必要となりうる以前のバージョンのファームウェアも含むことができる。コンピュータデバイスの個別のコンポーネントの初期化に利用するファームウェアに類似して、メモリマップもオペレーティングシステム(OS)メモリ322領域を含みうる。この領域は、コンピューティングデバイス上にオペレーティングシステムのインスタンスを生成するために必要なメモリエントリを含むことができる。実施形態においては、OSメモリ322が、以下で図5を参照して検討されるように、ユーザドリブンチェックポイントに関するOS状態情報を含むことができる。
いくつかの実施形態においては、トレースストア304が、コンピューティングデバイスの個別のコンポーネントの初期化に必要な全てのプロセスを含むことができる。他の実施形態では、トレースストア304に保存されたトレースが、初期化プロセスの簡略化したバージョン(abridged version)を個別のコンポーネントの初期化を通して生成されたトレースセグメントに関連付けて含まれうる。例えば、トレースストアは、MEトレースセグメント312、IEトレースセグメント316、BMCトレースセグメント320及びOSトレースセグメント324に含まれるトレースセグメントと関連したトレースを含むことができる。トレースセグメントとトレースストア304内のトレースとの組合せは、コンピューティングデバイスに関する初期化プロセス全体を包含しうる。
図4は、本開示のいくつかの実施形態による、ブートコントローラによってコンピューティングデバイスの初期化トレースを生成するための実例となるプロセスフロー400を示す。ブロック402において、プロセスは例えば本明細書の他の場所で議論されたブートコントローラの初期化から始まりうる。ブロック404において、ブートコントローラは、例えば図2の初期化プロセス200のようなコンピューティングデバイスの初期化プロセスをモニタすることができる。ブロック406において、ブートコントローラは、既に検討したように、モニタされた初期化からトレースを生成することができる。
ブロック408で、初期化が成功したか否かについての判定が行われうる。いくつかの実施形態において、初期化が成功したか否かの判定は、初期化のトレースからブートコントローラによって生成されるチェックサムの検証に基づいて行われうる。この判定/検証プロセスは、ブートコントローラ、コンピュータデバイスの他のコンポーネント、ネットワーク経由でコンピューティングデバイスと接続されるうるリモートコンピューティングデバイス、又はコンピューティングデバイスのユーザ又はアドミニストレータによって実行されうる。このチェックサムは、例えば、各コンピューティングデバイスが異なるコンポーネントを有すが、アドミニストレータは、個別のコンピューティングデバイスの予想される初期化プロセスを保証したいサーバファーム(server farm)又はデータウェアハウス(data warehouse)において利用された場合に有益でありうる。このような環境では、個別のコンピューティングデバイスが個別のコンピューティングデバイスに関する予測される値(expected value)との比較のためチェックサムが中央のレポジトリ(central repository)に送信されうる。
他の実施形態では、初期化の成功が、コンピューティングデバイスによって実行されるシステムテストの結果に基づいて判定されうる。さらに他の実施形態では、ユーザ又はアドミニストレータがコンピューティングデバイスの実施可能性(operability)に基づいて初期化を検証することができる。
もし初期化が成功しなかった場合、プロセスは、失敗に終わった初期化タスクが実行されうるブロック409まで進み、その後、プロセスはプロセスが終了しうるブロック416へ進むことができる。いくつかの実施形態では、失敗に終わった初期化タスクが、ブートコントローラによるコンピュータシステムのリセット及び以前に生成されたトレースのリプレイを含み、それにより、コンピューティングデバイスを適切に初期化できる。他の実施形態では、失敗に終わった初期化タスクは、ユーザ又はアドミニストレータが制定したポリシーを含みうる。例えば、アドミニストレータが、既に検討した所定のトレースの1つのような、アドミニストレータが失敗に終わった初期化の場合に、それを利用してコンピューティングデバイス又はその一部を初期化したいと思うような所定のトレースを望みうる。さらに別の実施形態では、不成功に終わった初期化タスクが、ブートコントローラによるプロンプト又はログの生成を含み、それによりユーザ又はアドミニストレータに不成功に終わった初期化のコンピューティングデバイスを知らせることができる。
もし初期化が成功した場合は、プロセスは、ブロック410へ進むことができる。ブロック410において、ブートコントローラは、以前にセーブされた既存のトレースが存在するか否かを判定することができる。既存のトレースが存在しない場合、次にプロセスは、ブートコントローラがトレースをトレースNとしてセーブするブロック412へ進むことができ、ここでNは直近のトレースを示し、トレースはブロック416で終了しうる。既存のトレースが存在する場合は、いくつかの実施形態において、次に、プロセスがブロック414へ進むことができる。ブロック414でブートコントローラは以前のトレースNをトレースN−1と格下げし、他の以前に保存されたトレースに対しても同様にすることができる。他の実施形態において、ブートコントローラは、以前のトレースNを現在のトレースと単に置き換えることができる。以前のトレースが降格され又は置き換えられた後、プロセスは、ブロック416へ進み、プロセスは終了しうる。既に検討した通り、いくつかの実施形態において、コンピューティングデバイスの各コンポーネントと関連したトレースセグメントが存在しうる。そのような実施形態では、各コンポーネントに対してトレースセグメントNが存在しうる。このような各トレースセグメントは、初期化の成功(successfulness)を判定するために分析され、それぞれのコンポーネントの成功した初期化に対応してトレースNにアペンド(append)されうる。
図5は、コンピューティングデバイス上のユーザドリブンチェックポイントを確立するための実例となるプロセスフロー500を本開示のいくつかの実施形態にしたがって、説明する。プロセスは、オペレーティングシステム(OS)が通常動作状態に到達しうるブロック502で始まることができる。ブロック504で、ユーザドリブンチェックポイントに到達したかについて判定が行われうる。この判定は、ブートコントローラ、OSのコンポーネント、又は他の適切なコンポーネントによって行われうる。もしブートコントローラ以外のコンポーネントがこの判定を行う場合、次にいくつかの実施形態では、判定の肯定的な結果がブートコントローラに伝えられうる。このような判定は、コンピュータシステムの特定のアプリケーション又はイベントに基づいて行われ、それらはユーザによってコンピューティングデバイスの正常動作を示すチェックポイントとして定義されうる。例えば、チェックポイントは、電子メール(email)クライアント又は他の同様のイベントのようなユーザが通常利用する所定のアプリケーションの初期化によって定義されうる。ユーザドリブンチェックポイントが発生しなかったと判定された場合、次に、プロセスは、ブロック502へ戻り、OSは通常の動作を続けることができる。
イベントがユーザドリブンチェックポイントと判定された場合は、プロセスは、ブロック506へ進むことができる。ブロック506で、ブートコントローラは以前セーブされたチェックポイントの既存のトレースが存在するか否か判定することができる。もし既存のトレースが存在しない場合は、次にプロセスはブロック508へ進み、そこでブートコントローラは、このチェックポイントをトレースNとしてセーブし、ここでNは直近のトレースを示し、そして、プロセスはブロック502で通常のOS動作に戻ることができる。もし既存のトレースが存在する場合、次にプロセスはブロック510へ進み、そこではブートコントローラ、OSのコンポーネント、又は他の適切なコンポーネントがチェックポイントマネージャを起動しうる。チェックポイントマネージャが一旦起動されると、コンピューティングデバイスのユーザは、このチェックポイントに対するトレースを置き換えるか、以前に生成されたトレースNを降格させるか、チェックポイントマネージャによって判断するように促されうる。いくつかの実施形態では、チェックポイントマネージャはブートコントローラの一部でありうる。他の実施形態において、チェックポイントマネージャは、OSの一部として実装され、ブートコントローラと通信するように構成されうる。ブロック514で、もしユーザがそうように選択するか、又はブートコントローラがトレースNを現在のトレースと単に置換した場合には、以前のトレースNがブートマネージャによりトレースN−1に降格させられうる。以前のトレースNが降格され、又は置換された後に、プロセスは、OSが通常動作を続けられるブロック502まで進むことができる。保存できるトレースの数は、トレースを保持するメモリの記憶能力によってのみ制限されうることを理解されたい。
いくつかの実施形態において、トレースは、それぞれのトレースを保存させるユーザドリブンチェックポイントの指示を有することができる。いくつかの実施形態では、ユーザドリブンチェックポイントに基づいてトレースが構成され、もしユーザがこれらのトレースのうち1つをリプレイしたい場合、図6に示されたようにプロセス全体をユーザがリプレイしたいトレースを特定するユーザドリブンチェックポイントを選択することができる。
図6は、コンピュータデバイスを初期化するトレースのリプレイに関して実例となるプロセスフロー600を、本開示のいくつかの実施形態にしたがって説明する。プロセスは、ブートコントローラが初期化されるブロック602で始まることができる。ブロック604で、既に検討したように、ブートコントローラが、トレース識別子がブートコントローラメールボックスに保存されているか否か判定されうる。もしブートコントローラメールボックスに保存されたトレース識別子がない場合、プロセスは、コンピューティングデバイスが通常通り初期化されるブロック606へ進むことができる。その後、プロセスは、ブロック612で終了することができる。もしトレース識別子がブートコントローラメールボックスに保存されている場合、プロセスは、所定のトレースがブートコントローラによって取り出されうるブロック608へ進むことができる。ブロック610において、ブートコントローラは、通常の初期化プロセスの代わりにコンピューティングデバイスを初期化するトレースをリプレイすることができる。その後、プロセスは、ブロック612で終了することができる。いくつかの実施形態では、コンピューティングデバイスの各コンポーネントは、上述のようにトレースセグメントと関連付けられうる。そのような実施形態では、トレースのリプレイは、選択されたトレースのリプレイの実行と協調するこれらのトレースセグメントのリプレイを含むことができる。いくつかの実施形態において、トレースは、リモートサーバ、クラウド、ネットワーク接続ストレージ(NAS)、又は同種のものに保存されうる。そのような実施形態において、トレース識別子は、トレースが読み出されるアドレスも含むことができる。
いくつかの実施形態では、ブートコントローラメールボックスは、トレースを読み出した後に、フラッシュされうる。別の実施形態では、ユーザが新たなトレースの生成を決めるまで、ブートコントローラメールボックスは、コンピューティングデバイスの各初期化に関して使用される同じトレースを確保するように持続することができる。これは、ユーザがコンピューティングデバイスの一貫した初期化の確保を望んでいる場合に起こりうる。そのようなシナリオでは、コンピューティングデバイスのコンポーネントのファームウェア更新又コンピューティングデバイスへの新たなハードウェア又はソフトウェアの追加のような、コンピューティングデバイスへの変更が発生した場合にのみ、新たなトレースの生成をユーザが選択することができる。
本明細書の目的では、コンピュータ使用可能又はコンピュータ読取り可能媒体は、命令実行システム、装置、又はデバイスによって又は関連しての使用に関するプログラムを、含み、保存し、通信し、又は伝搬するいかなる媒体でもありうる。媒体は、揮発性又は不揮発性メモリでありうる。媒体は、電子的、磁気的、光学的、電磁気的、赤外線の、半導体システム(又は装置又はデバイス)又は伝搬媒体でありうる。コンピュータ読取り可能記憶媒体の例は、半導体、ソリッドステートのメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、固定磁気ディスク及び光学ディスクを含む。光学ディスクの現在の例は、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDを含む。
本開示の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態又はハードウェアとソフトウェアの両方を含む実施形態という形態を取りうる。いくつかの実施形態では、ソフトウェアは、これには制限されないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含みうる。その上、本開示は、コンピュータ又はいかなる命令実行システムによって使用される又は関連するプログラムコードを提供するコンピュータ使用可能又はコンピュータ読取り可能媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。
本明細書において、特定の実施形態が説明され、記述されてきたが、本開示の実施形態の範囲から逸脱すことなく当業者によって幅広い代替手段及び/又は均等の実装が、提示され記述された特定の実施形態と置き換えられることを理解されたい。本出願は、本明細書で検討された実施形態のいかなる改変又は変形もカバーすることを意図する。したがって、本開示の実施形態が制限されるのは、請求項及びその均等物によってのみであることを意図している。

いくつかの実施形態による、本開示のいくつかの例を説明する。例1は、ブートコントローラ、前記ブートコントローラに接続された1つ以上の不揮発性メモリモジュールとを備えた、プラットフォームコントローラであって、前記不揮発性メモリモジュールが、前記プラットフォームコントローラをホスティングするコンピューティングデバイスのプロセッサにより実行されたときに、前記コンピューティングデバイスを初期化する第1の複数の命令(first instructions)と、前記ブートコントローラにより実行されたときに、前記ブートコントローラに前記コンピューティングデバイスによる前記第1の複数の命令の実行の少なくとも一部をモニタさせ、前記1つ以上の不揮発性メモリモジュールに保存される前記第1の複数の命令の前記命令の前記モニタされた部分のトレースを生成する第2の複数の命令(second instructions)と、を中に保存する、プラットフォームコントローラ。
例2は、例1の前記発明特定事項を含むことができ、前記第2の命令が前記ブートコントローラによって実行されたときに、パワーオンセルフテスト(POST)の実行前の初期状態から前記コンピューティングデバイスへのオペレーティングシステム(OS)のインスタンスの作成が行われる後続の状態まで前記コンピューティングデバイスによる前記第1の命令の実行をモニタする例2。
例3は、例2の前記発明特定事項を含むことができ、前記ブートコントローラによって実行されたときに、前記第2の命令が、前記第1の命令の実行の成功に応じて前記1つ以上の不揮発性メモリに前記トレースを保存する、例3。
例4は、例1乃至3のうち1つの前記発明特定事項を含むことができ、前記1つ以上の不揮発性メモリモジュールは、前記ブートコントローラによって生成された、以前に前記第1の命令の複数のモニタされた実行の複数のトレースを保存する、例4。
例5は、例1乃至3のうち1つの前記発明特定事項を含むことができ、前記第2の命令は、前記ブートコントローラによって実行されたときに、さらに前記ブートコントローラに、リクエストに応答して、以前に生成され保存されたトレース選択のため前記コンピューティングデバイスのユーザに提示し、選択に応じて、前記以前に生成され保存されたトレースの選択された1つをリプレイし、前記コンピューティングデバイスを初期化する、例5。
例6は、例5の前記発明特定事項を含むことができ、前記選択されたトレースのリプレイが、さらに前記不揮発性メモリモジュール中の前記選択されたトレースと関連する識別子のストレージを含み、前記ブートコントローラの次の初期化に応じて、前記識別子へのアクセスを前記ブートコントローラに提供する、例6。
例7は、例6の前記発明特定事項を含むことができ、前記選択されたトレースのリプレイが、さらに、前記ブートコントローラの前記次の初期化に応じた前記1つ以上の不揮発性メモリモジュールからの前記識別子の読取り、前記識別子を介しての前記選択されたトレースの特定、及び前記コンピューティングデバイスの初期化する前記選択されたトレースの利用を含む、例7。
例8は、例1乃至3のうち1つの前記発明特定事項を含むことができ、前記第2の命令は、前記ブートコントローラよって実行されたときに、さらに、前記第1の命令の前記モニタされた実行の正常終了に応じて、前記ブートコントローラに前記トレースに基づきチェックサムを生成させる、例8。
例9は、例8の前記発明特定事項を含むことができ、前記第2の命令は、前記ブートコントローラによって実行されたときに、前記ブートコントローラに、前記チェックサムを予測されるチェックサムと比較し、前記コンピューティングデバイスの初期化を検証させる、例9。
例10は、例1乃至3のうち1つの前記発明特定事項を含むことができ、前記第1の命令は、前記コンピューティングデバイスに存在する複数のハードウェアコンポーネントを初期化する複数のファームウェアを含む、例10。
例11は、例10の前記発明特定事項を含むことができ、前記第2の命令は、前記ブートコントローラによって実行されたときに、さらに、前記ブートコントローラに、前記複数のハードウェアコンポーネントの各ハードウェアコンポーネントに対応するトレースセグメントの生成を通して前記トレースを生成し、前記トレースセグメントをアクセス及びリプレイするハードウェアコンポーネントに対応する各トレースセグメントを利用可能にする、例11。
例12は、命令を含む1つ以上のコンピュータ読取り可能媒体であって、前記命令は、コンピューティングデバイスのブートコントローラによって実行されたときに、前記ブートコントローラに、前記コンピューティングデバイスの基本入出力システム(BIOS)による前記コンピューティングデバイスの初期化をモニタさせ、ここで前記ブートコントローラ及び前記BIOSは、互いに独立であり、前記コンピューティングデバイスのメモリに前記モニタされた初期化の前記生成されたトレースを保存する、例12。
例13は、例12の前記発明特定事項を含むことができ、初期化のモニタが、パワーオンセルフテスト(POST)の実行の前の初期状態から、前記コンピューティングデバイス上にオペレーティングシステム(OS)のインスタンスを生成される後続の状態まで前記コンピューティングデバイスをモニタする、例13。
例14は、例12の前記発明特定事項を含むことができ、前記生成されたトレースの保存が、前記初期化の正常終了に応じて、前記1つ以上の不揮発性メモリモジュールに前記トレースを保存する、例14。
例15は、例14の前記発明特定事項を含むことができ、前記トレースの保存が、他の複数のトレースのレポジトリに前記トレースを保存し、ここで前記他のトレースが、前記コンピューティングデバイスの以前にモニタされた初期化から生成されたものである、例15。
例16は、例12乃至15のうち1つの前記コンピュータ読取り可能媒体を含み、前記命令は、前記ブートコントローラによって実行されたときに、さらに、前記ブートコントローラにリクエストに応答して以前に生成され保存された複数のトレースを選択のため前記コンピューティングデバイスのユーザに提示し、選択に応じて、前記以前に生成され保存されたトレースの選択された1つをリプレイし、前記コンピューティングデバイスを初期化する、例16。
例17は、例16の前記発明特定事項を含むことができ、前記選択されたトレースのリプレイが、さらに、前記ブートコントローラの初期化の間に前記ブートコントローラによってアクセス可能なロケーションに前記選択されたトレースに関連した識別子のストレージを含み、前記ブートコントローラに前記ブートコントローラの次の初期化に応じて、前記識別子へのアクセスを提供する、例17。
例18は、例17の前記発明特定事項を含むことができ、前記選択されたトレースのリプレイは、さらに、前記ブートコントローラの前記次の初期化に応じて、前記1つ以上の不揮発性メモリモジュールから前記識別子の読取り、前記識別子に基づく前記選択されたトレースの取得、及び前記コンピューティングデバイスを初期化する前記取得したトレースの利用を含む、例18。
例19は、例12乃至15のうち1つの前記発明特定事項を含むことができ、前記命令は、前記ブートコントローラによって実行されたときに、さらに、前記ブートコントローラに前記コンピューティングデバイスの前記初期化の正常終了に応じて、前記トレースに基づきチェックサムを生成させる、例19。
例20は、例19の前記発明特定事項を含むことができ、前記命令は、前記ブートコントローラによって実行されたときに、さらに、前記ブートコントローラに、前記チェックサムを予測されるチェックサムと比較させ、前記コンピューティングデバイスの初期化を検証させる、例20。
例21は、例12乃至15にうち1つに記載の前記発明特定事項を含むことができ、前記コンピューティングデバイスの前記初期化が、前記コンピューティングデバイスの複数のハードウェアコンポーネントを初期化するための複数のファームウェアの実行を含む、例21。
例22は、例21の前記発明特定事項を含み、前記命令は、前記ブートコントローラによって実行されたときに、さらに、前記ブートコントローラに複数のハードウェアコンポーネントに各ハードウェアコンポーネントに対応するトレースセグメントの生成を通して、前記トレースを生成せ、前記対応するハードウェアコンポーネントに対する前記トレースセグメントのアクセスを提供し、前記対応するハードウェアコンポーネントの前記複数のトレースセグメントのリプレイを可能にする、例22。
例23は、コンピュータ実施方法であって、コンピューティングデバイスのブートコントローラによって、前記コンピューティングデバイスの基本入出力システム(BIOS)による前記コンピューティングデバイスの初期化をモニタすることであって、前記ブートコントローラと前記BIOSは、相互に独立である、モニタすることと、前記ブートコントローラによって、前記コンピューティングデバイスの前記モニタした初期化のトレースを作成することと、前記ブートコントローラによって前記コンピューティングデバイスのメモリ中の前記初期化の生成されたトレースを保存することと、を含むコンピュータ実施方法。
例24が例23の前記発明特定事項を含み、前記コンピュータデバイスの前記初期化をモニタすることが、さらに、パワーオンセルフテスト(POST)の実行前の初期状態から、オペレーティングシステム(OS)が前記コンピュータ上にインスタンスを生成される後続の状態まで前記コンピューティングデバイスの前記初期化のモニタすることを含む、例24。
例25は、例24の前記発明特定事項を含むことができ、さらに前記ブートコントローラにより、前記初期化の正常終了に応じて、前記コンピューティングデバイスの不揮発性メモリにトレースを保存することを含む、例25。
例26は、例25の前記発明特定事項を含むことができ、前記トレースを保存することが、さらに、複数の他のトレースのレポジトリに前記トレースを保存することを含み、前記他のトレースが、前記コンピューティングデバイスの以前モニタされた初期化から生成されたものである、例26。
例27は、例23乃至26のいずれか1つの前記発明特定事項を含むことができ、さらにリクエストに応じて、前記ブートコントローラが、以前に生成し保存された複数のトレースを選択のために前記コンピューティングデバイスのユーザに提示し、以前に生成し保存された前記複数のトレースの1つの選択を受信し、以前に生成し保存された前記複数のトレースの前記選択された1つをリプレイし、コンピューティングデバイスを初期化することを含む、例27。
例28が例27の前記発明特定事項を含むことができ、前記選択されたトレースをリプレイすることが、前記コンピューティングデバイスの不揮発性メモリに前記選択されたトレースに関連する識別子を保存することを含む、例28。
例29は、例28の前記発明特定事項を含むことができ、前記選択されたトレースをリプレイすることが、さらに、前記ブートコントローラの前記次の初期化に応じて、前記不揮発性メモリから前記識別子を読取り、前記ブートコントローラのよって前記識別子に基づいて前記選択されたトレースを取得し、前記取得されたトレースを使用して前記コンピューティングデバイスを初期化することを含む、例29。
例30は、例23乃至26のうち1つの前記発明特定事項を含むことができ、さらに、前記ブートコントローラによって前記第1の命令の前記モニタされた実行の正常終了に応じて、前記トレースに基づいてチェックサムを生成することを含む例30。
例31は、例30の前記発明特定事項を含むことができ、さらに、前記ブートコントローラによって、予測されるチェックサムに対する前記生成されたチェックサムの検証を行うことと、前記生成されたチェックサムの前記検証が失敗したときに、前記ブートコントローラによって前記コンピューティングデバイスのユーザに知らせることを含む、例30。
例32は、例23乃至26のうち1つの前記発明特定事項を含むことができ、前記コンピューティングデバイスの初期化が、前記コンピューティングデバイスの複数のハードウェアコンポーネントを初期化する複数のファームウェアを実行することを含む、例32。
例33は、例32の前記発明特定事項を含むことができ、前記トレースを生成することが、さらに、前記複数のハードウェアコンポーネントの各ハードウェアコンポーネントに対応するトレースセグメントを生成することと、ここで前記トレースは、前記トレースセグメントの組合せを含み、前記対応するハードウェアコンポーネントに対する前記トレースセグメントのアクセスを提供することによって前記対応するハードウェアコンポーネントによる前記トレースセグメントのリプレイを可能にすることを含む、例33。
例34は、コンピューティングデバイスであって、コンピューティングデバイスの基本入出力システム(BIOS)による前記コンピューティングデバイスの初期化をモニタする手段と、ここで前記モニタする手段と前記BIOSは相互に独立であり、前記コンピューティングデバイスの前記モニタされた初期化のトレースを生成する手段と、前記コンピューティングデバイスのメモリ中に前記初期化の前記生成されたトレースを保存する手段とを有する例34。
例35は、例34の前記発明特定事項を含み、ここで前記コンピューティングデバイスの前記初期化をモニタする前記手段は、さらに、パワーオンセルフテスト(POST)の実行より前の初期状態からオペレーティングシステム(OS)が前記コンピューティングデバイス上にインスタンスが生成される後続の状態まで初期化をモニタする手段を含む、例35。
例36は、例35の前記発明特定事項を含むことができ、さらに、前記初期化の正常終了に応じて、前記コンピューティングデバイスの不揮発性メモリの中に前記トレースを保存する手段とを含む、例36。
例37は、例36の前記発明特定事項を含むことができ、前記トレースを保存する手段が、さらに複数の他のトレースのレポジトリに前記トレースを保存する手段を含み、ここで前記他のトレースは、前記コンピューティングデバイスの以前モニタされた初期化から生成される、例37。
例38は、例34乃至37のうち1つの前記発明特定事項を含むことができ、さらに、リクエストに応答して、以前に生成され保存された複数のトレースを選択のため前記コンピューティングデバイスのユーザに提示する手段と、以前に生成され保存された前記複数のトレースの選択された1つをリプレイし、前記コンピューティングデバイスを初期化する手段とを有する、例38。
例39は、例38の前記発明特定事項を含むことができ、前記選択されたトレースをリプレイする前記手段が、さらに、前記コンピューティングデバイスの不揮発性メモリ中の前記選択されたトレースに関連する識別子を保存する手段をさらに含む、例39。
例40は、例39の前記発明特定事項を含むことができ、前記選択されたトレースをリプレイする前記手段が、前記不揮発性メモリから前記識別子を読み取る手段と、前記識別子に基づき、前記選択されたトレースを取得する手段と、前記取得したトレースを使用して前記コンピューティングデバイスを初期化する手段をさらに含む例40。
例41は、前記34乃至37のうち1つの前記発明特定事項を含むことができ、さらに前記第1の命令の前記モニタされた実行の正常終了に応じて、前記トレースに基づき、チェックサムを生成する手段を含む、例41。
例42は、例41の前記発明特定事項を含むことができ、さらに、予測されるチェックサムに対して前記生成されたチェックサムを検証する手段と、前記生成されたチェックサムの前記検証が失敗した場合に、前記コンピューティングデバイスのユーザに知らせる手段とを含む、例42。
例43は、例34乃至37のうち1つの前記発明特定事項を含むことができ、前記コンピューティングデバイスの初期化が前記コンピューティングデバイスの複数のハードウェアコンポーネントを初期化する複数のファームウェアを実行することを含む、例43。
例44は、例43の前記発明特定事項を含むことができ、前記トレースを生成する前記手段が、さらに、前記複数のハードウェアコンポーネントに各ハードウェアコンポーネントに対応するトレースセグメントを生成する手段であって、前記トレースは、トレースセグメントの組合せを含み、前記対応するハードウェアコンポーネントに対する前記トレースセグメントへのアクセスを提供することにより、前記対応するハードウェアコンポーネントによる前記トレースセグメントのリプレイを可能にする手段とを、含む例44。

Claims (24)

  1. プラットフォームコントローラが、
    ブートコントローラと、
    前記ブートコントローラに接続された1つ以上の不揮発性メモリモジュールと、
    を備え、
    前記不揮発性メモリモジュールが、
    前記プラットフォームコントローラをホスティングするコンピューティングデバイスのプロセッサにより実行されたときに、前記コンピューティングデバイスを初期化する第1の複数の命令と、
    前記ブートコントローラにより実行されたときに、前記ブートコントローラに前記コンピューティングデバイスによる前記第1の複数の命令の実行の少なくとも一部をモニタさせ、前記第1の複数の命令の実行の前記モニタされた部分のトレースを生成し、前記1つ以上の不揮発性メモリモジュールに保存する第2の複数の命令と、
    を保存する、プラットフォームコントローラ。
  2. 前記第2の複数の命令が、前記ブートコントローラにより実行されたときに、パワーオンセルフテスト(POST)の実行前の初期状態から、オペレーティングシステム(OS)が前記コンピューティングデバイスにインスタンスを生成される後続の状態までの、前記コンピューティングデバイスよる前記第1の複数の命令の実行をモニタする、請求項1に記載のプラットフォームコントローラ。
  3. 前記第2の複数の命令が、前記ブートコントローラにより実行されたときに、前記第1の複数の命令の正常終了に応じて、前記1つ以上の不揮発性メモリモジュールに前記トレースを保存する、請求項2に記載のプラットフォームコントローラ。
  4. 前記1つ以上の不揮発性メモリモジュールが、前記ブートコントローラにより生成された、前記第1の複数の命令の以前にモニタされた複数の実行の複数のトレースを保存する、請求項1乃至3のいずれか1項に記載されたプラットフォームコントローラ。
  5. 前記第2の複数の命令が、前記ブートコントローラにより実行されたときに、さらに前記ブートコントローラに、
    リクエストに応答して、以前に生成され保存された複数のトレースを選択のため前記コンピューティングデバイスのユーザに提示し、
    前記以前に生成され保存されたトレースの選択された一つを、選択に応じて、リプレイし、前記コンピューティングデバイスを初期化する、請求項1乃至3のいずれか1項に記載のプラットフォームコントローラ。
  6. 前記選択されたトレースのリプレイが、さらに、前記1つ以上の不揮発性メモリモジュールへの前記選択されたトレースに関連する識別子の保存を含み、それにより、前記ブートコントローラの次の初期化に応じて、前記ブートコントローラに前記識別子へのアクセスを提供する、請求項5に記載のプラットフォームコントローラ。
  7. 前記選択されたトレースのリプレイが、
    前記ブートコントローラの前記次の初期化に応じて、前記1つ以上の不揮発性メモリモジュールから前記識別子の読み出しと、
    前記識別子を介した前記選択されたトレースの特定と、
    前記コンピューティングデバイスの初期化への前記選択されたトレースの利用と、
    をさらに含む、請求項6に記載のプラットフォームコントローラ。
  8. 前記第2の複数の命令が、前記ブートコントローラにより実行されたときに、さらに前記ブートコントローラに前記トレースに基づいて、前記第1の複数の命令の前記モニタされた実行の正常終了に応じて、チェックサムを生成させる、請求項1乃至3のいずれか1項に記載のプラットフォームコントローラ。
  9. 前記第2の複数の命令が、前記ブートコントローラにより実行されたときに、さらに前記ブートコントローラに前記コンピューティングデバイスの初期化をベリファイするために予測されるチェックサムと前記チェックサムを比較させる、請求項8に記載のプラットフォームコントローラ。
  10. 前記第1の複数の命令が、前記コンピューティングデバイスに存在する複数のハードウェアコンポーネントを初期化する複数のファームウェアを含む、請求項1乃至3のいずれか1項に記載のプラットフォームコントローラ。
  11. 前記第2の複数の命令が、前記ブートコントローラにより実行されたときに、さらに前記ブートコントローラに、
    前記複数のハードウェアコンポーネントの各ハードウェアコンポーネントに対応するトレースセグメントの生成を通して前記トレースを生成させ、
    前記対応するハードウェアコンポーネントに対する各トレースセグメントが、前記トレースセグメントへのアクセス及びリプレイができるようにされる、請求項10に記載のプラットフォームコントローラ。
  12. コンピューティングデバイスのブートコントローラにより、前記コンピューティングデバイスの基本入出力システム(BIOS)による前記コンピューティングデバイスの初期化をモニタすることであって、前記ブートコントローラ及び前記BIOSは、お互いに独立しており前記コンピューティングデバイスの前記初期化は、前記コンピューティングデバイスのプロセッサによって実行され、前記コンピューティングデバイスの前記プロセッサは、前記ブートコントローラとは異なる、初期化をモニタすることと、
    前記ブートコントローラにより前記コンピューティングデバイスの前記モニタされた初期化のトレースを生成することと、
    前記ブートコントローラにより、前記コンピューティングデバイスのメモリに前記初期化の前記生成されたトレースを保存することと、
    を含
    前記コンピューティングデバイスの前記初期化をモニタすることが、さらに、パワーオンセルフテスト(POST)の実行前の初期状態からオペレーティングシステム(OS)が前記コンピューティングデバイスにインスタンスを生成される後続の状態まで、前記コンピューティングデバイスの前記初期化をモニタすることを含む、コンピュータで実行させる方法。
  13. 前記初期化の正常終了に応じて、前記コンピューティングデバイスの不揮発性メモリに、前記ブートコントローラにより前記トレースを保存することをさらに含む、請求項12に記載の方法。
  14. 前記トレースを保存することが、さらに、複数の他のトレースのレポジトリに前記トレースを保存することを含み、前記他のトレースは前記コンピューティングデバイスの以前にモニタされた初期化から生成されたものである、請求項13に記載の方法。
  15. 前記方法が、さらに、
    リクエストに応答して、選択のために前記コンピューティングデバイスのユーザに以前に生成され保存された複数のトレースを提示することと、
    前記以前に生成され保存された複数のトレースの1つの選択を受信することと、
    前記以前に生成され保存された複数のトレースの前記選択された1つをリプレイすることにより前記コンピューティングデバイスを初期化することと、
    を含む請求項12乃至14のいずれか1項に記載された方法。
  16. 前記選択されたトレースをリプレイすることが、さらに、前記コンピューティングデバイスの不揮発性メモリに前記選択されたトレースに関連する識別子を保存することを含む、請求項15に記載の方法。
  17. 前記選択されたトレースをリプレイすることが、さらに、
    前記ブートコントローラの次の初期化に応じて、前記不揮発性メモリから前記識別子を読み取ることと、
    前記ブートコントローラにより、前記識別子に基づいて前記選択されたトレースを取得することと、
    前記取得されたトレースを使用して前記コンピューティングデバイスを初期化することと、
    を含む、請求項16に記載の方法。
  18. 前記ブートコントローラにより、第1の複数の命令のモニタされた実行の正常終了に応じて、前記トレースに基づいて、チェックサムを生成することをさらに含む請求項12乃至14のいずれか1項に記載された方法。
  19. 前記ブートコントローラにより、予測されるチェックサムに対して前記生成されたチェックサムを検証し、
    前記ブートコントローラにより、前記コンピューティングデバイスのユーザに前記生成されたチェックサムの検証が失敗したことを通知することをさらに含む請求項18記載の方法。
  20. 前記コンピューティングデバイスの初期化が、前記コンピューティングデバイスの複数のハードウェアコンポーネントを初期化する複数のファームウェアの実行を含む、請求項12乃至14のいずれか1項記載の方法。
  21. 前記トレースを生成することが、さらに
    前記複数のハードウェアコンポーネントの各ハードウェアコンポーネントに対応するトレースセグメントを生成することであって、前記トレースは、前記トレースセグメントの組合せを含む、トレースセグメントを生成することと、
    前記トレースセグメントに前記対応するハードウェアコンポーネントへのアクセスを提供し、前記対応するハードウェアコンポーネントによる前記トレースセグメントのリプレイを可能にすることと、を含む、請求項20に記載の方法。
  22. コンピューティングデバイスのブートコントローラにより実行されたときに、前記ブートコントローラに請求項12乃至14のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
  23. コンピューティングデバイスの基本入出力システム(BIOS)による前記コンピューティングデバイスの初期化をモニタする手段であって、前記モニタする手段と前記BIOSはお互いに独立しており前記コンピューティングデバイスの前記初期化は、前記コンピューティングデバイスのプロセッサによって実行され、前記コンピューティングデバイスの前記プロセッサは、前記初期化をモニタする手段とは異なる、初期化をモニタする手段と、
    前記コンピューティングデバイスの前記モニタされた初期化のトレースを生成する手段と、
    前記初期化の前記生成されたトレースを前記コンピューティングデバイスのメモリに保存する手段と、
    を備え、
    前記コンピューティングデバイスの前記初期化をモニタする前記手段がさらに、パワーオンセルフテスト(POST)の実行前の初期状態からオペレーティングシステム(OS)が前記コンピューティングデバイス上にインスタンスを生成される後続の状態までモニタする手段を含む、コンピューティングデバイス。
  24. コンピューティングデバイスのブートコントローラにより実行されたときに、前記ブートコントローラに請求項12乃至14のうちの一つに記載の方法を実行させる命令を含む1つ以上のコンピュータ読取り可能記憶媒体。
JP2016555320A 2014-03-26 2015-01-28 コンピューティングデバイスの初期化トレース Active JP6297715B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/226,612 2014-03-26
US14/226,612 US10146657B2 (en) 2014-03-26 2014-03-26 Initialization trace of a computing device
PCT/US2015/013317 WO2015147981A1 (en) 2014-03-26 2015-01-28 Initialization trace of a computing device

Publications (2)

Publication Number Publication Date
JP2017507431A JP2017507431A (ja) 2017-03-16
JP6297715B2 true JP6297715B2 (ja) 2018-03-20

Family

ID=54190553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016555320A Active JP6297715B2 (ja) 2014-03-26 2015-01-28 コンピューティングデバイスの初期化トレース

Country Status (6)

Country Link
US (1) US10146657B2 (ja)
EP (1) EP3123299A4 (ja)
JP (1) JP6297715B2 (ja)
KR (1) KR101931007B1 (ja)
CN (1) CN106030512B (ja)
WO (1) WO2015147981A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753836B2 (en) * 2014-09-12 2017-09-05 Intel Corporation Low power debug architecture for system-on-chips (SoCs) and systems
TWI599876B (zh) * 2014-10-09 2017-09-21 緯創資通股份有限公司 開機自我測試中的除錯方法以及使用該方法的裝置
US10318459B2 (en) * 2015-04-30 2019-06-11 Hewlett Packard Enterprise Development Lp Peripheral device server access
US10051059B2 (en) * 2015-06-05 2018-08-14 Fisher-Rosemount Systems, Inc. Methods and apparatus to control communications of endpoints in an industrial enterprise system based on integrity
US10346177B2 (en) 2016-12-14 2019-07-09 Intel Corporation Boot process with parallel memory initialization
US11113133B2 (en) 2016-12-27 2021-09-07 Intel Corporation Cross-component health monitoring and improved repair for self-healing platforms
US10956575B2 (en) * 2017-11-20 2021-03-23 Hewlett Packard Enterprise Development Lp Determine malware using firmware
KR102468737B1 (ko) * 2017-12-19 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
JP2021077263A (ja) * 2019-11-13 2021-05-20 レノボ・シンガポール・プライベート・リミテッド 解析システム、情報処理装置、電子機器、及び解析方法
CN111158984B (zh) * 2019-12-29 2023-08-18 浪潮商用机器有限公司 一种服务器硬件监控方法、装置、设备及存储介质
US11500747B2 (en) * 2020-01-30 2022-11-15 Dell Products L.P. Computer initialization debug message display system
US20230169171A1 (en) * 2020-05-11 2023-06-01 Intel Corporation Os-managed bios modules
KR20220149220A (ko) 2021-04-30 2022-11-08 삼성전자주식회사 메모리 장치
CN114564236B (zh) * 2022-01-24 2023-07-14 苏州浪潮智能科技有限公司 数据传输方法、装置、计算机设备和存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289448B1 (en) * 1998-06-26 2001-09-11 Sun Microsystems, Inc. Method, apparatus and computer program product for debugging a computer's boot process
JP2003076578A (ja) 2001-09-03 2003-03-14 Mitsubishi Electric Corp マイクロコンピュータ及びデバッグシステム並びにトレース情報収集方法
US7346809B2 (en) * 2004-08-05 2008-03-18 International Business Machines Corporation Bootable post crash analysis environment
US7506149B2 (en) * 2004-08-27 2009-03-17 Intel Corporation Method, program and system to update files in a computer system
US7673128B2 (en) 2005-04-22 2010-03-02 Intel Corporation Methods and apparatus to facilitate fast restarts in processor systems
JP2007172096A (ja) * 2005-12-20 2007-07-05 Hitachi Ltd 情報処理装置、および、その起動制御方法
JP4586750B2 (ja) 2006-03-10 2010-11-24 日本電気株式会社 コンピュータシステムおよび起動監視方法
CN100590602C (zh) 2006-08-15 2010-02-17 环达电脑(上海)有限公司 计算机初始化之远程监视模块
US8069344B2 (en) 2007-09-14 2011-11-29 Dell Products L.P. System and method for analyzing CPU performance from a serial link front side bus
JP5275715B2 (ja) * 2008-07-31 2013-08-28 株式会社日本デジタル研究所 エラー通知方法、情報処理装置および通信システム
JP5328720B2 (ja) * 2010-06-10 2013-10-30 株式会社コンテック 情報処理装置
CN102567042B (zh) * 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
WO2012117556A1 (ja) 2011-03-03 2012-09-07 富士通株式会社 情報処理装置及び情報処理装置制御方法
US8874892B1 (en) * 2011-05-26 2014-10-28 Phoenix Technologies Ltd. Assessing BIOS information prior to reversion
CN103514001A (zh) * 2012-06-27 2014-01-15 中兴通讯股份有限公司 处理器初始化方法及装置

Also Published As

Publication number Publication date
EP3123299A4 (en) 2018-01-24
KR101931007B1 (ko) 2018-12-19
US10146657B2 (en) 2018-12-04
KR20160110504A (ko) 2016-09-21
CN106030512B (zh) 2021-06-04
WO2015147981A1 (en) 2015-10-01
US20150278068A1 (en) 2015-10-01
JP2017507431A (ja) 2017-03-16
EP3123299A1 (en) 2017-02-01
CN106030512A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
JP6297715B2 (ja) コンピューティングデバイスの初期化トレース
CN103718165B (zh) Bios闪存攻击保护和通知
US9672112B2 (en) Backing up firmware during initialization of device
US10216936B2 (en) Method of preventing computer malfunction, computer program, and computer
US10599419B2 (en) Secure firmware updates using virtual machines to validate firmware packages
US11385903B2 (en) Firmware update patch
US9912535B2 (en) System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI)
JP5307196B2 (ja) シリコンに一体化されたコードのシステムへの提供
US10445255B2 (en) System and method for providing kernel intrusion prevention and notification
US9239725B2 (en) System and method for installing an OS via a network card supporting PXE
US20110225459A1 (en) Generating a debuggable dump file for a virtual machine
US20170286679A1 (en) System, Apparatus And Method For Performing Secure Memory Training And Management In A Trusted Environment
US20150378846A1 (en) Method, computer program, and computer for restoring set of variables
US11281768B1 (en) Firmware security vulnerability verification service
US20100268928A1 (en) Disabling a feature that prevents access to persistent secondary storage
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US11188407B1 (en) Obtaining computer crash analysis data
US11429298B2 (en) System and method for tying non-volatile dual inline memory modules to a particular information handling system
US11900128B2 (en) Modularized basic input output system (BIOS) firmware activation
US20130097412A1 (en) Performing A Boot Sequence In A Multi-Processor System
US20190026202A1 (en) System and Method for BIOS to Ensure UCNA Errors are Available for Correlation
US11675602B2 (en) Methods and systems for creating root-of-trust for computing system components
TWI662419B (zh) 具有儲存實體資源的本地磁碟的網路系統
US20230239317A1 (en) Identifying and Mitigating Security Vulnerabilities in Multi-Layer Infrastructure Stacks
US11755745B2 (en) Systems and methods for monitoring attacks to devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180104

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: 20180123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180221

R150 Certificate of patent or registration of utility model

Ref document number: 6297715

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250