(57)【特許請求の範囲】
【請求項１】
コンピュータシステムを備える情報処理装置であって、
第１のファームウェアと第２のファームウェアを記憶可能なメモリと、
ランタイムファームウェアを記憶可能なシステムメモリを有し、ファームウェアの認証および前記ファームウェアを用いた処理を実行可能なコントローラと、
を備え、
前記コントローラは、
前記コンピュータシステムのシャットダウン後、かつ、前記コンピュータシステムが起動する前に、前記ランタイムファームウェアを前記メモリに前記第２のファームウェアとして記憶し、
前記ランタイムファームウェアを前記メモリに記憶する前に、前記コンピュータシステムに当該コンピュータシステムの起動を阻止するための信号を出力し、
前記コンピュータシステムが起動されると前記システムメモリに前記第１のファームウェアをロードして、前記第１のファームウェアを認証し、
前記第１のファームウェアの認証に成功するとき、当該第１のファームウェアを用いた処理を開始し、
前記第１のファームウェアの認証に失敗するとき、前記第２のファームウェアを用いた処理を開始する
情報処理装置。
【請求項２】
前記コントローラは、
前記第１のファームウェアの認証に失敗するとき、
前記第２のファームウェアが前記第１のファームウェアとして前記メモリに記憶されるように書き換える
請求項１に記載の情報処理装置。
【請求項３】
前記コントローラは、
前記第１のファームウェアの認証に失敗するとき、
前記コンピュータシステムをシャットダウンまたは再起動し、前記システムメモリから認証に失敗した前記第１のファームウェアを消去し、
再度前記コンピュータシステムが起動された際に、前記システムメモリに書き換えられた前記第１のファームウェアをロードする
請求項２に記載の情報処理装置。
【請求項４】
前記システムメモリは、揮発性メモリであり、
前記コントローラは、前記システムメモリから認証に失敗した前記第１のファームウェアを消去する際、当該システムメモリへの通電を停止する
請求項３に記載の情報処理装置。
【請求項５】
前記コントローラと前記メモリを接続するプラットフォームコントローラを備え、
前記メモリは、
前記コンピュータシステムのファームウェアをさらに記憶する
請求項１から請求項４のいずれか一項に記載の情報処理装置。
【請求項６】
コンピュータシステムと、
ランタイムファームウェアを記憶可能なシステムメモリを有し、ファームウェアの認証および前記ファームウェアを用いた処理を実行可能なコントローラと、
第１のファームウェアと第２のファームウェアを記憶可能なメモリと、を備える情報処理装置の情報処理方法であって、
前記コントローラは、
前記コンピュータシステムのシャットダウン後、かつ、前記コンピュータシステムが起動する前に、前記ランタイムファームウェアを前記メモリに前記第２のファームウェアとして記憶する第１のステップと、
前記ランタイムファームウェアを前記メモリに記憶する前に、前記コンピュータシステムに当該コンピュータシステムの起動を阻止する信号を出力する第２のステップと、
前記コンピュータシステムが起動されると前記システムメモリに前記第１のファームウェアをロードして、前記第１のファームウェアを認証する第３のステップと、
前記第１のファームウェアの認証に成功する時、当該第１のファームウェアを用いた処理を開始し、
前記第１のファームウェアの認証に失敗するとき、前記第２のファームウェアを用いた処理を開始する第４のステップと、を有する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ：Personal Computer）をはじめとする多くの情報処理装置は、主たるコンピュータシステム（以下、ホストシステム、単にホストまたはシステムと呼ぶこともある）とは別個に、特定の機能を実現するための組み込み制御器（ＥＣ：Embedded Controller）を備える。ＥＣを構成するハードウェアの動作を制御するためのソフトウェアとして独自のファームウェア（以下、ＥＣＦＷ）が用いられる。ＥＣは、起動時において所定のファームウェア（ＦＷ：firmware）ローダに基づく処理を開始し、フラッシュＲＯＭ（Read Only Memory）に予め記憶されておいたＥＣＦＷイメージ（ＥＣＦＷ  ＩＭＧ：EC Firmware Image）を読み出し、読み出したＥＣＦＷ  ＩＭＧをＥＣに内蔵されるＳＲＡＭ（Static Random Access Memory）に記憶する。但し、フラッシュＲＯＭに記憶されるＥＣＦＷ  ＩＭＧは、悪意あるプログラム（マルウェア；malware）により破損するリスクがある。そのため、認証に成功したＥＣＦＷ  ＩＭＧをプライマリＥＣＦＷ  ＩＭＧとし、プライマリＥＣＦＷ  ＩＭＧを複製してバックアップＥＣＦＷ  ＩＭＧとしてフラッシュＲＯＭに記憶しておくことが提案されていた。  
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Ｐｌａｔｆｏｒｍ  Ｆｉｒｍｗａｒｅ  Ｒｅｓｉｌｉｅｎｃｙ  Ｇｕｉｄｅｌｉｎｅｓ”，ＮＩＳＴ（Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ）  Ｓｐｅｃｉａｌ  Ｐｕｂｌｉｃａｔｉｏｎ  ８００−１９３，Ｍａｙ  ２０１８，Ｕ．Ｓ．  Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｃｏｍｍｅｒｃｅ，［令和１年１２月１０日検索］，インターネット＜URL: https://doi.org/10.6028/NIST.SP.800-193＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、プライマリＥＣＦＷ  ＩＭＧとバックアップＥＣＦＷ  ＩＭＧのいずれも破損した場合には、ＦＷローダに基づく処理が中断してしまうために、情報処理装置が依然として利用できなくなる可能性が残される。例えば、予期しない脆弱性（vulnerability）を悪用してマルウェアがホストシステムに感染する場合には、ホストシステムによりＥＣＦＷ  ＩＭＧが格納される領域が上書き（overwrite）される可能性がある。上書きによって、２つのＥＣＦＷ  ＩＭＧがいずれも破損するとＥＣ１４はいずれのＥＣＦＷの認証に失敗するため、ホストシステムが起動できなくなるという課題が残されていた。
【課題を解決するための手段】
【０００５】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様に係る情報処理装置は、コンピュータシステムを備える情報処理装置であって、第１のファームウェアと第２のファームウェアを記憶可能なメモリと、ランタイムファームウェアを記憶可能なシステムメモリを有し、ファームウェアの認証および前記ファームウェアを用いた処理を実行可能なコントローラと、を備え、前記コントローラは、前記処理の実行を開始する前または前記処理の実行中に、前記ランタイムファームウェアを前記メモリに前記第２のファームウェアとして記憶し、前記コンピュータシステムが起動されると前記システムメモリに前記第１のファームウェアをロードして、前記第１のファームウェアを認証し、前記第１のファームウェアの認証に成功する時、当該第１のファームウェアを用いた処理を開始し、前記第１のファームウェアの認証に失敗するとき、前記第２のファームウェアを用いた処理の実行を開始する。
【０００６】
上記の情報処理装置において、前記コントローラは、前記第１のファームウェアの認証に失敗するとき、前記第２のファームウェアが前記第１のファームウェアとして前記メモリに記憶されるように書き換えてもよい。
【０００７】
上記の情報処理装置において、前記コントローラは、前記第１のファームウェアの認証に失敗するとき、前記コンピュータシステムをシャットダウンまたは再起動し、前記システムメモリから認証に失敗した前記第１のファームウェアを消去し、再度前記前記コンピュータシステムが起動された際に、前記システムメモリに書き換えられた前記第１のファームウェアをロードしてもよい。
【０００８】
上記の情報処理装置は、前記システムメモリは、揮発性メモリであり、前記コントローラは、前記システムメモリから認証に失敗した前記第１のファームウェアを消去する際、当該システムメモリへの通電を停止してもよい。
【０００９】
上記の情報処理装置において、前記コンピュータシステムは、自部への通電が停止または供給電力が低下するとき起動が制限され、前記コントローラは、自部のシステムメモリのリセット前に、前記通電の停止または前記供給電力の低下を通知してもよい。
【００１０】
上記の情報処理装置において、前記コントローラと前記メモリを接続するプラットフォームコントローラを備え、前記メモリは、前記コンピュータシステムのファームウェアをさらに記憶してもよい。
【００１１】
上記の情報処理装置において、前記処理の実行を開始する前または前記処理の実行中の期間は、前記コンピュータシステムがシャットダウンまたは再起動するときを含み、前記コントローラは、前記シャットダウンまたは前記再起動する際、前記ランタイムファームウェアを前記メモリに前記第２のファームウェアとして記憶した後に前記システムメモリをリセットしてもよい。
【００１２】
本発明の第２態様に係る情報処理方法は、コンピュータシステムと、ランタイムファームウェアを記憶可能なシステムメモリを有し、ファームウェアの認証および前記ファームウェアを用いた処理を実行可能なコントローラと、第１のファームウェアと第２のファームウェアを記憶可能なメモリと、を備える情報処理装置の情報処理方法であって、前記コントローラは、前記処理の実行を開始する前または前記処理の実行中に、前記ランタイムファームウェアを前記メモリに前記第２のファームウェアとして記憶する第１のステップと、前記コンピュータシステムが起動されると前記システムメモリに前記第１のファームウェアをロードして、前記第１のファームウェアを認証する第２のステップと、前記第１のファームウェアの認証に成功するとき、当該第１のファームウェアを用いた処理を開始し、前記第１のファームウェアの認証に失敗するとき、前記第２のファームウェアを用いた処理を開始する第３のステップと、を有する情報処理方法である。
【発明の効果】
【００１３】
本発明の実施形態によれば、メモリに格納されたファームウェアが破損しても、動作を回復することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係る情報処理装置の概要を示す説明図である。
【図２】本実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【図３】本実施形態に係るランタイムリカバリ処理を開始する状況の一例を示す説明図である。
【図４】本実施形態に係るランタイムリカバリ処理の第１のステップの例を示す説明図である。
【図５】本実施形態に係るランタイムリカバリ処理の第２のステップの例を示す説明図である。
【図６】本実施形態に係るランタイムリカバリ処理の第３のステップの例を示す説明図である。
【図７】本実施形態に係るランタイムリカバリ処理の第４のステップの例を示す説明図である。
【図８】本実施形態に係るランタイムリカバリ処理の第５のステップの例を示す説明図である。
【図９】本実施形態に係るランタイムリカバリ処理の第６のステップの例を示す説明図である。
【図１０】本実施形態に係るＥＣのリセット時または電源オフ時におけるＥＣＦＷ  ＩＭＧの消去例を示す説明図である。
【図１１】本実施形態に係るランタイムリカバリ処理期間の例を示す説明図である。
【図１２】本実施形態に係るホストシステムにおけるＢＩＯＳを用いた処理の例を示すフローチャートである。
【図１３】本実施形態に係るＥＣＦＷを用いた処理の例を示すフローチャートである。
【図１４】本実施形態に係るＦＷローダを用いたランタイムリカバリ処理の例を示すフローチャートである。
【図１５】従来のＥＣの構成例を示す説明図である。
【図１６】従来の情報処理装置の構成例を示す説明図である。
【図１７】従来のフラッシュＲＯＭの使用形態の一例を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態の概要について、図面を参照して説明する。
図１は、本実施形態に係る情報処理装置１０の概要を示す説明図である。
情報処理装置１０は、コンピュータシステムを備え、ハードウェアとしてＰＣＨ１１と、フラッシュＲＯＭ１２と、ＥＣ１４と、を含んで構成される。
ＰＣＨ（Platform Controller Hub）１１は、自部に接続するデバイスとの各種のデータの入出力を制御するためのＩ／Ｏコントローラ１１７を備える。Ｉ／Ｏコントローラ１１７は、フラッシュＲＯＭ１２と接続するためのＳＰＩフラッシュコントローラ１１７ｓを備える。
フラッシュＲＯＭ（Read Only Memory）１２には、ディスクリプタ（Descriptor）の他に、ホストシステム（単に、ホストとも呼ばれる）のＢＩＯＳ（Basic Input-output System）、プライマリＥＣＦＷ  ＩＭＧ（EC Firmware Image）およびバックアップＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２に記憶可能とする。ディスクリプタは、個々のファームウェアの格納位置を示すコードを含む。
【００１６】
ＥＣ（Embedded Controller）１４は、ＣＰＵ１４１（後述）と、ＳＲＡＭ１４３と、ブートＲＯＭ１４５を含んで構成される。ＳＲＡＭ（Static Random Access Memory）１４３は、主にデータを格納するデータ領域（data space）と、実行に係るプログラム（実行プログラム）を格納するコード領域（code space）を有する。実行プログラムとしてランタイム（run-time）ＥＣＦＷ  ＩＭＧ）が記憶される。ブートＲＯＭ１４５にはブートローダを予め保存させておく。ブートローダは、ＦＷ（Firmware）ローダを含んで構成される。ＣＰＵ（Central Processing Unit）１４１は、ＦＷローダに記述された指令で指示される処理として、フラッシュＲＯＭ１２からプライマリＥＣＦＷ  ＩＭＧを読み出し、読み出したプライマリＥＣＦＷ  ＩＭＧに対して認証処理を行う。認証に成功するとき、ＣＰＵ１４１は、プライマリＥＣＦＷ  ＩＭＧを用いた処理の実行を開始する。また、ＣＰＵ１４１は、プライマリＥＣＦＷ  ＩＭＧを用いた処理の実行中または、次に実行を再開する前に、その時点で処理が実行中であるランライムＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２の予備領域（reserved space）にバックアップＥＣＦＷ  ＩＭＧとして記憶する。認証に失敗する場合には、ＣＰＵ１４１は、バックアップＥＣＦＷ  ＩＭＧを読み出し、読み出したバックアップＥＣＦＷ  ＩＭＧを用いた処理を開始する。
【００１７】
よって、ＥＣ１４に備わるＳＲＡＭ１４３には、予めフラッシュＲＯＭ１２に記憶させておいた既存のバックアップＥＣＦＷ  ＩＭＧに代えて、ランタイムＥＣＦＷ  ＩＭＧがロード（load）される。ランタイムＥＣＦＷ  ＩＭＧは、フラッシュＲＯＭ１２に予め記憶される既存のバックアップＥＣＦＷ  ＩＭＧとは異なり、ホストシステムからはアクセスできないＳＲＡＭ１４３に記憶される。そのため、ランタイムＥＣＦＷ  ＩＭＧは、ホストシステムに感染したマルウェアの実行により破損されるリスクは低い。特にホストシステムの動作停止中にランタイムＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２にバックアップＥＣＦＷ  ＩＭＧとして記憶することで、プライマリＥＣＦＷ  ＩＭＧとバックアップＥＣＦＷ  ＩＭＧの両者の破損のために情報処理装置１０が正常に動作を再開できなくなるリスクを回避することができる。なお、ＥＣＦＷ  ＩＭＧのＩＭＧ（イメージ）とは、イメージファイルの略称である。イメージファイルとは、相互間で階層構造（ファイル構造）を有する複数のファイルからなるセットを指す。本願では、ＥＣＦＷ  ＩＭＧからＩＭＧもしくはイメージを省略して、単にＥＣＦＷまたはＦＷと呼ぶことがある。
【００１８】
次に、情報処理装置１０のハードウェア構成例について説明する。
図２は、本実施形態に係る情報処理装置１０のハードウェア構成例を示すブロック図である。情報処理装置１０は、ＰＣＨ１１、フラッシュＲＯＭ１２、システムメモリ１３１、ＬＣＤ１３３、ＨＤＤ１３５、ＥＣ１４およびキーボード１５１を含んで構成される。
ＰＣＨ１１は、各種のデータの入出力を制御し、ＣＰＵ１１１の機能を支援するチップセットである。ＰＣＨ１１は、ＣＰＵ１１１、ＧＰＵ１１３、メモリコントローラ１１５およびＩ／Ｏコントローラ１１７を備える。
これらのデバイスのうち、ＣＰＵ１１１、メモリコントローラ１１５およびシステムメモリ１３１は、システムデバイスＳＤを構成する。システムデバイスは、情報処理装置１０としての機能の発揮に要するコンピュータシステム（つまり、ホストシステム）を構成する最低限のデバイスである。
【００１９】
ＣＰＵ（Central Processing Unit）１１１は、所定のプログラムを実行し、情報処理装置１０の全体の機能を制御するプロセッサである。本願では、各種のプログラムに記述された指令で指示される種々の処理を実行することを、プログラムの実行、またはプログラムを実行する、などと呼ぶ。ＣＰＵ１１１は、ＨＤＤ１３５に記憶されたＢＩＯＳ、ＯＳ、デバイスドライバ、ユーティリティなどのプログラムを読み出し、システムメモリ１３１にロードする。ＣＰＵ１１１は、システムメモリ１３１にロードしたプログラムを実行する。
【００２０】
ＧＰＵ（Graphics Processing Unit）１１３は、画像表示に関連する処理を実行するプロセッサである。ＧＰＵ１１３は、ＣＰＵ１１１から入力された描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、ＬＣＤ１３３に表示データとして出力する。
メモリコントローラ１１５は、自部に接続される各種のメモリとのインタフェースを備える。メモリコントローラ１１５は、例えば、システムメモリ１３１およびＨＤＤ１３５のそれぞれとの間で各種のデータを入出力する。
【００２１】
Ｉ／Ｏコントローラ１１７は、自部に接続されるデバイスを用いて各種のデータを入出力するためのインタフェースを備える。Ｉ／Ｏコントローラ１１７は、ＵＳＢ（Universal Serial Bus）、シリアルＡＴＡ（Advanced Technology  Attachment）、ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、およびＬＰＣ（Low Pin Count）バスなどのインタフェースを備え、複数のデバイスを接続可能とする。Ｉ／Ｏコントローラ１１７は、フラッシュＲＯＭ１２との接続に用いられるＳＰＩバスを接続するためのＳＰＩ（Serial Peripheral Interface）フラッシュコントローラ１１７ｓ（図１、図１６）と、ＥＣ１４との接続に用いられるｅＳＰＩ（extended Serial Peripheral Interface）バスを接続するためのｅＳＰＩマスタコントローラ１１７ｅ（図１６）とを備える。
【００２２】
フラッシュＲＯＭ１２は、主にファームウェアの記憶に用いられる記憶媒体である。フラッシュＲＯＭ１２に記憶されるファームウェアには、ＢＩＯＳとＥＣＦＷがある。ＢＩＯＳは、システムデバイスへの電力供給中に実行され、システムデバイスに接続される他のデバイスとの低レベルの入出力を行うためのプログラムである。ＥＣＦＷは、ＥＣ１４のＣＰＵ１４１により実行され、ＥＣ１４の機能を発揮するために実行される。フラッシュＲＯＭ１２は、システムデバイスに係るファームウェアと、ＥＣＦＷとで共用されるためシェアドフラッシュ（        shared flash）として機能する。フラッシュＲＯＭ１２には、ディスクリプタがさらに記憶される。ディスクリプタは、個々のファームウェアを示す識別情報と、フラッシュＲＯＭ１２におけるその格納位置を示すアドレスが記述される。フラッシュＲＯＭ１２は、電気的に書き換え可能な不揮発性メモリ（non-volatile memory）である。フラッシュＲＯＭ１２は、ＳＰＩフラッシュコントローラ１１７ｓとＳＰＩバスを用いて接続するためのＳＰＩコントローラインタフェースを備える。
【００２３】
システムメモリ１３１は、ＣＰＵ１１１が実行する実行プログラムを読み込むコード領域、実行プログラムの実行に要するパラメータなどの設定データや実行により取得されたデータを記録するためのデータ領域として用いられるメモリである。システムメモリ１３１は、例えば、１個または複数個のＤＲＡＭ（Dynamic Random Access Memory）チップを含んで構成される。
ＬＣＤ（Liquid Crystal Display；液晶ディスプレイ）１３３は、ＧＰＵ１１３から入力される表示データに基づく表示情報を表示する。表示情報は、画像、文字、記号、図形のいずれかまたはこれらの組み合わせを含む。
ＨＤＤ（Hard Disk Drive）１３５は、各種のプログラムやデータを保存する補助記憶装置である。保存されるプログラムには、ＯＳ、デバイスドライバ、サービス／ユーティリティ（以下、ユーティリティ）、アプリケーションプログラム（以下、アプリ）などが含まれる。ＨＤＤ１３５は、電気的に書き換え可能な不揮発性メモリである。
【００２４】
ＥＣ１４は、例えば、ホストシステムの動作状態に関わらず、自部に接続される各種のデバイスの動作状態の制御、情報処理装置１０を構成する各デバイスへの電力供給の制御などを行う。図１に示す例では、キーボード１５１が接続され、ＥＣ１４は、キーボード１５１が受け付けた操作に基づく操作入力情報をシステムに出力する。ＥＣ１４は、ＣＰＵ１４１、ＳＲＡＭ１４３およびブートＲＯＭ１４５を含んで構成される。
【００２５】
ＣＰＵ１４１は、ＥＣＦＷを実行してその機能を実現する。但し、ＣＰＵ１４１は、自部への電力の供給開始を検出するときブート処理を開始する。ブート処理とは、プログラム（例えば、ＣＰＵ１４１では、ＥＣＦＷ）を実行可能な状態にするための一連の処理である。ブート処理には、例えば、自部に接続される接続デバイスの検出、初期化、ＥＣＦＷのフラッシュＲＯＭ１２からの読み出し（ロード）、読み出したＥＣＦＷの検証、および検証に成功したＥＣＦＷのＳＲＡＭ１４３への記憶などの処理が含まれる。ＣＰＵ１４１は、ホストシステムの動作モードごとに各デバイスに必要とする電力の供給を制御する。例えば、ＣＰＵ１４１は、ホストシステムの動作停止中には、少なくともシステムデバイスとその制御下で動作するデバイス（例えば、ＣＰＵ１１１、ＧＰＵ１１３、メモリコントローラ１１５、システムメモリ１３１、ＬＣＤ１３３、およびＨＤＤ１３５）への電力の供給を停止する。その場合でも、ＣＰＵ１４１は、Ｉ／Ｏコントローラ１１７、フラッシュＲＯＭ１２、およびＥＣ１４への電力供給を維持してもよい。
ＥＣＦＷの修復、再起動に係るランタイムリカバリ（run-time recovery）処理については、後述する。
【００２６】
ＳＲＡＭ（Static Random Access memory）１４３は、データ領域とコード領域を有する。コード領域は、ＣＰＵ１４１が実行する実行プログラムを読み込む領域を含む。データ領域は、実行プログラムの実行に要するパラメータなどの設定データや実行により取得されたデータを記録するための領域を含む。ＳＲＡＭ１４３は、自部への電力の供給が停止されると記憶内容が失われる揮発性メモリ（volatile memory）である。
【００２７】
ブートＲＯＭ１４５は、主にブートローダ（boot loader）を予め記憶する不揮発性メモリである。ブートローダは、ＣＰＵ１４１によるブート処理の実行に用いられるプログラムである。ブートローダには、ＦＷローダ１４５ｆが含まれる。ＦＷローダ１４５ｆは、ＥＣＦＷのフラッシュＲＯＭ１２からの読み出し、ＥＣＦＷの検証およびＥＣＦＷのＳＲＡＭ１４３への記憶をＣＰＵ１４１が実行するためのプログラムである。ＣＰＵ１４１は、自部への電力の供給開始後、ブート処理の開始前にブートＲＯＭ１４５からブートローダを読み出し、ブートローダの検証に成功した後、読み出したブートローダをＳＲＡＭ１４３に記憶する。これにより、ＣＰＵ１４１は、ブート処理の実行を開始することができる。本願では、実行を開始することを起動と呼ぶことがある。
【００２８】
なお、従来の情報処理装置では、図１５に例示されるように、ＥＣ１４は、データＲＡＭ１４５と内部フラッシュＲＯＭ１４５ｉを備え、内部フラッシュＲＯＭ１４５ｉに予めＥＣＦＷ  ＩＭＧを記憶しておくことが通例であった。これに対し、本実施形態に係る情報処理装置１０は、図２、図１６に例示されるように、ＥＣ１４において内部フラッシュＲＯＭ１４５ｉを備えず、ＥＣ１４とは別個にフラッシュＲＯＭ１２を備える。フラッシュＲＯＭ１２には、ＥＣＦＷ  ＩＭＧに限らず、他種のファームウェア（例えば、ホストシステムのＢＩＯＳ、ＭＥ（Management Engine）ファームウェア）やそれらの格納位置を示すディスクリプタともに記憶しておく。ＥＣ１４のＣＰＵ１４１は、起動時にＦＷローダ１４５ｆに基づく処理を実行し、ＰＣＨ１１を経由してフラッシュＲＯＭ１２からＥＣＦＷ  ＩＭＧを読み出し、ＥＣ１４に内蔵されるＳＲＡＭ１４３のコード領域１４３ｂにＥＣＦＷ  ＩＭＧを記憶する。ＣＰＵ１４１は、フラッシュＲＯＭ１２にアクセスする際、例えば、ｅＳＰＩバスとＳＰＩバスを用い、ｅＳＰＩマスタコントローラ１１７ｅとＳＰＩフラッシュコントローラ１１７ｓを経由する。よって、各種のファームウェアを記憶したフラッシュＲＯＭ１２は、ホストシステムとＥＣ１４とで共用される。このようにフラッシュＲＯＭ１２を共用する仕組みはＭＡＦＳ（Master Attached Flash Sharing）と呼ばれ、その目的で用いられるフラッシュＲＯＭ１２が上記のようにシェアドフラッシュと呼ばれることがある。本実施形態に係る情報処理装置１０は、この仕組みを採用することで、従来の情報処理装置よりも製造コストが低減しメンテナンスが容易となる。
【００２９】
但し、フラッシュＲＯＭ１２は、ホストシステムからもアクセス可能であるため、ホストシステムの動作によりＥＣＦＷが破損するリスクは免れない。例えば、ホストシステムは情報処理装置１０の外部からマルウェアに感染され、感染されたマルウェアの実行によってＥＣＦＷ  ＩＭＧの一部が削除または書き換えられるおそれがある。そこで、ＣＰＵ１４１は、起動時にＦＷローダに基づく処理を実行して所定のプロトコル（例えば、標準楕円曲線ディジタル署名アルゴリズム（ＥＣＤＳＡ：Elliptic Curve Digital Signature Algorithm）を用いてＥＣＦＷ  ＩＭＧを認証し、その完全性（integrity）を検証する。ＣＰＵ１４１は、認証に成功する場合、ＳＲＡＭ１４３にロードしたＥＣＦＷ  ＩＭＧに基づく処理の実行を開始し、認証に失敗する場合、ＣＰＵ１４１は、ＥＣＦＷ  ＩＭＧに基づく処理を実行しない。但し、ＥＣＦＷ  ＩＭＧが破損してしまうとＥＣ１４が動作できなくなり、ひいては情報処理装置１０の動作が再開できなくなってしまう。そのため、ＥＣＦＷ  ＩＭＧの破損が検出されるとき、ＥＣＦＷ  ＩＭＧを修復して、情報処理装置１０の動作を正常に再開させることが望まれる。そこで、本実施形態では、ＣＰＵ１４１は後述するランタイムリカバリ処理において、ＥＣＦＷ  ＩＭＧの実行中であって次に再起動する前に、その処理に係るＥＣＦＷ  ＩＭＧであるランタイムファームウェアをフラッシュＲＯＭ１２にバックアップＥＣＦＷ  ＩＭＧ（図１７）として、プライマリＥＣＦＷ  ＩＭＧとは別個に格納する。
【００３０】
そして、ＣＰＵ１４１は、起動時におけるＦＷローダに基づく処理においてプライマリＥＣＦＷ  ＩＭＧの破損が検出される場合、ＥＣ１４はプライマリＥＣＦＷ  ＩＭＧの認証に失敗したと判定し、その後、ＣＰＵ１４１は、バックアップＥＣＦＷ  ＩＭＧを読み出し、読み出したバックアップＥＣＦＷ  ＩＭＧに対する認証に成功するとき、そのバックアップＥＣＦＷ  ＩＭＧに基づく処理を開始する。
【００３１】
次に、本実施形態に係るランタイムリカバリ処理の例について説明する。
図３−図９は、それぞれ本実施形態に係るランタイムリカバリ処理を説明するための説明図である。ランタイムリカバリ処理は、ＥＣ１４のＣＰＵ１４１により実行され、主にＦＷローダ１４５ｆに記述された指令で指示される一連の処理である。
図３に示すように、ランタイムリカバリ処理は、ＣＰＵ１４１がＥＣＦＷ  ＩＭＧの実行中または遅くとも次の再起動前に、例えば、フラッシュＲＯＭ１２に記憶されたプライマリＥＣＦＷ  ＩＭＧが破損したと判定するときに開始すればよい。ランタイムリカバリ処理は、ステップＳ１０２−Ｓ１１２を有し、ステップＳ１０２−Ｓ１１２はそれぞれ図４−図９に対応する。なお、図３−図９では、ＰＣＨ１１、ＣＰＵ１４１、ブートＲＯＭ１４５の図示が省略されている。
【００３２】
（ステップＳ１０２）ＣＰＵ１４１は、その時点で実行中のランタイムＥＣＦＷ  ＩＭＧをＳＲＡＭ１４３のコード領域１４３ｂから読み取り、読み取ったランタイムＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２の予備領域にバックアップＥＣＦＷ  ＩＭＧとして記憶する（図４）。その後、ステップＳ１０４の処理に進む。
（ステップＳ１０４）ＣＰＵ１４１は、フラッシュＲＯＭ１２からプライマリＥＣＦＷ  ＩＭＧを読み取り、ＳＲＡＭ１４３のコード領域１４３ｂに記憶（ロード）する。ＣＰＵ１４１は、読み取ったプライマリＥＣＦＷ  ＩＭＧに対して所定の認証処理を行って、その完全性を検証する。ＣＰＵ１４１は、認証処理において、例えば、ＥＣＤＳＡを用いることができる。ＣＰＵ１４１は、認証処理に失敗するときプライマリＥＣＦＷ  ＩＭＧが破損していると判定し（図５）、ステップＳ１０６の処理に進む。
認証処理に成功するときプライマリＥＣＦＷ  ＩＭＧが破損していないと判定し、以降のステップの処理に進まずに、プライマリＥＣＦＷ  ＩＭＧの実行を開始する。
【００３３】
（ステップＳ１０６）ＣＰＵ１４１は、フラッシュＲＯＭ１２に記憶されたバックアップＥＣＦＷ  ＩＭＧを、プライマリＥＣＦＷ  ＩＭＧが記憶されていた記憶領域（プライマリ領域）に複製（コピー）することで、プライマリＥＣＦＷ  ＩＭＧを修復する（図６）。その後、ステップＳ１０８の処理に進む。
（ステップＳ１０８）ＣＰＵ１４１は、フラッシュＲＯＭ１２に記憶されたバックアップＥＣＦＷ  ＩＭＧを消去する（図７）。その後、ステップＳ１１０の処理に進む。
（ステップＳ１１０）ＣＰＵ１４１は、ＥＣ１４の動作の再起動（リセット）が指示されるとき、またはＥＣ１４への電力供給を停止するとき（電源オフ）、揮発性メモリであるＳＲＡＭ１４３に記憶されたプライマリＥＣＦＷ  ＩＭＧが消去される（図８）。その後、ステップＳ１１２の処理に進む。
【００３４】
（ステップＳ１１２）ＣＰＵ１４１は、自部の動作の再起動を開始またはＥＣ１４への電力供給を再開（電源オン）するとき、ブートＲＯＭ１４５からブートローダを読み取り、読み取ったブートローダをＳＲＡＭ１４３のコード領域１４３ｂにロードする。その後、ＣＰＵ１４１は、ブートローダに含まれるＦＷローダ１４５ｆの実行を開始する。ＦＷローダ１４５ｆを用いた処理として、ＣＰＵ１４１は、フラッシュＲＯＭ１２から複製されたプライマリＥＣＦＷ  ＩＭＧを読み取り、読み取ったＥＣＦＷ  ＩＭＧをＳＲＡＭ１４３のコード領域１４３ｂに記憶する。ＣＰＵ１４１は、プライマリＥＣＦＷ  ＩＭＧに対して所定の認証処理を行って、その完全性を検証する。この場合には、自部の再起動または電源オフとなる直前に実行中であったランタイムＥＣＦＷ  ＩＭＧがロードされるので、認証処理の成功が期待される（図９）。ＣＰＵ１４１は、ロードされたプライマリＥＣＦＷ  ＩＭＧの実行を開始する。その後、ステップＳ１０２の処理に戻る。
【００３５】
なお、ランタイムリカバリ処理において、ステップＳ１０８の処理を省略し、バックアップＥＣＦＷ  ＩＭＧを消去せずにフラッシュＲＯＭ１２に記憶させたまま残してもよい。その場合には、ステップＳ１１２において、プライマリＥＣＦＷ  ＩＭＧに対する認証処理に失敗するとき、ＣＰＵ１４１は、バックアップＥＣＦＷ  ＩＭＧを読み取り、ＳＲＡＭ１４３にロードし、バックアップＥＣＦＷ  ＩＭＧに対して所定の認証処理を実行してもよい。認証処理に成功するとき、ＣＰＵ１４１は、バックアップＥＣＦＷ  ＩＭＧの実行を開始する。これにより、システムの冗長性を強化することができる。
【００３６】
次に、本実施形態に係るランタイムリカバリ処理の開始タイミングの例について説明する。図１０に示すようにＥＣ１４のリセットまたは電源オフによりＳＲＡＭ１４３への電力供給が停止されると、ＥＣ１４がフラッシュＲＯＭ１２にプライマリＥＣＦＷ  ＩＭＧを記憶する前にＳＲＡＭ１４３に記憶されたデータ（ランタイムＥＣＦＷ  ＩＭＧを含む）が消去されてしまう。そこで、ＣＰＵ１４１は、ＥＣ１４をリセットまたは電源オフとする前に予めプライマリＥＣＦＷ  ＩＭＧに対して認証処理を実行しておくとともに、認証処理の失敗が検出される前にランタイムＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２にバックアップしておくべきである。
【００３７】
また、ＥＣＦＷを更新する際、更新後のＥＣＦＷを有効にするためにＥＣ１４はリセット処理を行う。より具体的には、ＥＣＦＷを更新する際、ホストシステムはシャットダウン処理を行い、その後、ＥＣ１４のＣＰＵ１４１はＥＣ１４への電力供給を停止し、再起動する（リブート）。ＣＰＵ１４１は、ブート処理の過程で更新後のＥＣＦＷをフラッシュＲＯＭ１２から読み出してＳＲＡＭ１４３にロードし、ロードしたＥＣＦＷについて認証処理を行う。ＣＰＵ１４１は、認証処理に成功したとき更新後のＥＣＦＷの実行を開始する。そして、ホストシステムは、自システムについてブート処理を開始する（リブート）。
他方、ホストシステムがシャットダウン処理を行った後、ＣＰＵ１４１はＥＣ１４への電力供給を停止する（電源オフ）。その後、ユーザの操作に応じて起動指示を検出するとき、ＥＣ１４のＣＰＵ１４１は再起動し、再起動が完了した後、ホストシステムは自システムのブート処理を開始する。
【００３８】
そこで、ＣＰＵ１４１は、図１１に例示されるように、ホストシステムからシャットダウンまたは再起動が通知されるときにランタイムリカバリ処理を開始すればよい。再起動を行う場合には、ＣＰＵ１４１は、上記のランタイムリカバリ処理のステップＳ１０２〜Ｓ１１２の全てをランタイムリカバリ期間中に実行する。ホストシステムのシャットダウンによりＥＣ１４への電力供給が停止される場合には、ＣＰＵ１４１は、上記のランタイムリカバリ処理のステップＳ１０２〜Ｓ１１０をランタイムリカバリ期間中に実行する。
【００３９】
次に、本実施形態に係るランタイムリカバリ処理に係る各部の動作について説明する。
図１２は、ホストシステムにおけるＢＩＯＳを用いた処理の例を示すフローチャートである。
（ステップＳ１２２）ＰＣＨ１１のＣＰＵ１１１は、ＥＣ１４に再起動の実行指示を通知するよう要求されたか否かを判定する。要求されたと判定する場合（ステップＳ１２２  ＹＥＳ）、ステップＳ１２４の処理に進む。要求されていないと判定する場合（ステップＳ１２２  ＮＯ）、ステップＳ１２６の処理に進む。
【００４０】
その前提として、ＰＣＨ１１のＣＰＵ１１１は、例えば、所定のユーティリティを実行してシステムの動作状態として再起動、シャットダウン等を指示するための指示画面をＬＣＤ１３３に表示させ、自装置に接続される入力部（図示せず）から動作状態を示す操作信号の入力を待ち受ける。また、ＥＣ１４のＣＰＵ１４１は、例えば、自部に接続された電源ボタンの押下の検出に応じて、ＰＣＨ１１に再起動を示す操作信号を出力する。
ＰＣＨ１１のＣＰＵ１１１は、再起動を示す操作信号の入力を検出するとき、ＥＣ１４への再起動の実行指示の通知をＢＩＯＳに要求する。ＰＣＨ１１のＣＰＵ１１１は、再起動を示す操作信号の入力を検出するとき、ＥＣ１４への再起動の実行指示の通知をＢＩＯＳに要求する。なお、ＣＰＵ１１１は、例えば、シャットダウンを示す操作信号の入力を検出するとき、またはＥＣ１４から低電力通知信号（後述）の入力を検出するとき、システム（ホスト）のシャットダウンが指示されたと判定する。
【００４１】
（ステップＳ１２４）ＰＣＨ１１のＣＰＵ１１１は、ＥＣ１４に再起動の実行指示を通知する。その後、ステップＳ１２８の処理に進む。
（ステップＳ１２６）ＣＰＵ１１１は、シャットダウンが指示されたか否かを判定する。シャットダウンが指示されたと判定する場合（ステップＳ１２６  ＹＥＳ）、ステップＳ１２８の処理に進む。シャットダウンが指示されていないと判定する場合（ステップＳ１２８  ＮＯ）、ステップＳ１２２の処理に戻る。
（ステップＳ１２８）ＣＰＵ１１１は、システムのシャットダウンをＥＣ１４に通知し、自システムのシャットダウンを開始する。その後、図１２に示す処理を終了する。
【００４２】
図１３は、ＥＣＦＷを用いた処理の例を示すフローチャートである。
（ステップＳ１４２）ＥＣ１４のＣＰＵ１４１は、ＰＣＨ１１のＣＰＵ１１１から再起動の実行指示を待ち受ける。再起動の実行指示が入力される場合（ステップＳ１４２  ＹＥＳ）、ステップＳ１４４の処理に進む。再起動の実行指示が入力されない場合（ステップＳ１４２  ＮＯ）、ステップＳ１４８の処理に進む。
（ステップＳ１４４）ＣＰＵ１４１は、リセットフラグの値を１に設定する。リセットフラグは、シャットダウン後の再起動の要否を示す設定情報である。リセットフラグの値が１とは、シャットダウン後の再起動を示す。リセットフラグの値が０とは、シャットダウン後の再起動を不要とすることを示す。その後、ステップＳ１４６の処理に進む。
【００４３】
（ステップＳ１４６）ＣＰＵ１４１は、ＰＣＨ１１のＣＰＵ１１１からシステムのシャットダウン通知を待ち受ける。シャットダウンが通知される場合（ステップＳ１４６  ＹＥＳ）、ステップＳ１５０の処理に進む。シャットダウンが通知されない場合（ステップＳ１４６  ＮＯ）、ステップＳ１４６の処理を繰り返す。
（ステップＳ１４８）ＣＰＵ１４１は、ＰＣＨ１１のＣＰＵ１１１からシステムのシャットダウン通知を待ち受ける。シャットダウンが通知される場合（ステップＳ１４８  ＹＥＳ）、ステップＳ１５０の処理に進む。シャットダウンが通知されない場合（ステップＳ１４８  ＮＯ）、ステップＳ１４２の処理に戻る。
【００４４】
（ステップＳ１５０）ＣＰＵ１４１は、ＰＣＨ１１のＣＰＵ１１１に低電力通知信号ｂａｔＬｏｗ＃を出力する。低電力通知信号ｂａｔＬｏｗ＃は、二次電池から供給される電力がシステムデバイスの動作のための所定の電力の下限以下に低下したことを通知するための信号である。ＣＰＵ１１１は、ＥＣ１４から低電力通知信号ｂａｔＬｏｗ＃が入力されることで、再起動が阻止される。その後、ステップＳ１５２の処理に進む。
なお、ステップＳ１４６、Ｓ１４８におけるシャットダウン通知が、直前にＣＰＵ１１１に出力した低電力通知信号ｂａｔＬｏｗ＃に応じて出力された信号である場合には、ステップＳ１５０の処理が省略されてもよい。これにより、低電力通知信号ｂａｔＬｏｗ＃の重複が防止される。
（ステップＳ１５２）ＣＰＵ１４１は、ブートローダの起動を指示し、ＦＷローダに基づくランタイムリカバリ処理の実行を開始させる。ＣＰＵ１４１は、再起動直後にリセットフラグの初期値を０と設定する。その後、図１３の処理を終了する。
【００４５】
図１４は、ＦＷローダを用いたランタイムリカバリ処理の例を示すフローチャートである。
（ステップＳ１６２）ＥＣ１４のＣＰＵ１４１は、ブートローダの起動指示を待ち受ける。起動指示を検出するとき（ステップＳ１６２  ＹＥＳ）、ブートローダの起動を開始することで、ブートローダに含まれるＦＷローダの実行を開始する。その後、ステップＳ１６４の処理に進む。起動指示が検出されないとき（ステップＳ１６４  ＮＯ）、ステップＳ１６２の処理を繰り返す。
（ステップＳ１６４）ＣＰＵ１４１は、ＳＲＡＭ１４３から読み出したランタイムＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２の予備領域にバックアップＥＣＦＷ  ＩＭＧとして記憶する。その後、ステップＳ１６６の処理に進む。
【００４６】
（ステップＳ１６６）ＣＰＵ１４１は、フラッシュＲＯＭ１２からプライマリＥＣＦＷ  ＩＭＧを読み出し、ＳＲＡＭ１４３にロードする。その後、ステップＳ１６８の処理に進む。
（ステップＳ１６８）ＣＰＵ１４１は、ＥＣＤＳＡを用いてプライマリＥＣＦＷ  ＩＭＧに対して認証処理を行う。その後、ステップＳ１７０の処理に進む。
（ステップＳ１７０）ＣＰＵ１４１は、認証処理に成功したか否かを判定する。認証処理に成功した場合（ステップＳ１７０  ＹＥＳ）、ステップＳ１７６の処理に進む。認証処理に失敗した場合（ステップＳ１７０  ＮＯ）、ステップＳ１７２の処理に進む。
【００４７】
（ステップＳ１７２）ＣＰＵ１４１は、フラッシュＲＯＭ１２の予備領域に記憶したバックアップＥＣＦＷ  ＩＭＧをフラッシュＲＯＭ１２のプライマリ領域にプライマリＥＣＦＷ  ＩＭＧとして複製する。その後、ステップＳ１７４の処理に進む。
（ステップＳ１７４）ＣＰＵ１４１は、フラッシュＲＯＭ１２の予備領域に記憶したバックアップＥＣＦＷ  ＩＭＧを消去する。その後、ステップＳ１７６の処理に進む。
【００４８】
（ステップＳ１７６）ＣＰＵ１４１は、設定されたリセットフラグの値が１であるか否かを判定する。１である場合（ステップＳ１７６  ＹＥＳ）、ステップＳ１７８の処理に進む。０である場合（ステップＳ１７６  ＮＯ）、ステップＳ１８０の処理に進む。
（ステップＳ１７８）ＣＰＵ１４１は、再起動する。その後、図１４に示す処理を終了する。
（ステップＳ１８０）ＣＰＵ１４１は、シャットダウン処理を行い、処理の完了後、再起動せずに電源オフのまま図１４に示す処理を終了する。
【００４９】
なお、図１４の処理のうち、ステップＳ１７４の処理は省略されてもよい。ステップＳ１７４の処理を省略する場合、ＣＰＵ１４１は、再起動直後にプライマリＥＣＦＷ  ＩＭＧを読み出し、読み出したプライマリＥＣＦＷ  ＩＭＧに対して認証処理を行ってもよい。認証処理に成功する場合、ＣＰＵ１４１は、プライマリＥＣＦＷ  ＩＭＧの実行を開始する。認証処理に失敗する場合、ＣＰＵ１４１は、バックアップＥＣＦＷ  ＩＭＧを読み出し、読み出したバックアップＥＣＦＷ  ＩＭＧの実行を開始してもよい。
【００５０】
以上に説明したように、本実施形態に係る情報処理装置１０は、コンピュータシステムを備え、第１のファームウェア（例えば、プライマリＥＣＦＷ  ＩＭＧ）と第２のファームウェア（バックアップＥＣＦＷ  ＩＭＧ）を記憶するメモリ（例えば、フラッシュＲＯＭ１２）とを備える。情報処理装置１０は、第１のファームウェアの認証に成功するとき、当該第１のファームウェアを用いた処理の実行を開始するコントローラ（例えば、ＥＣ１４）を備える。そして、コントローラは、第１のファームウェアを用いた処理の実行を開始する前またはその処理の実行中に、当該処理に用いるファームウェア（ランタイムＥＣＦＷ  ＩＭＧ）をメモリに第２のファームウェアとして記憶し、第１のファームウェアの認証に失敗するとき、第２のファームウェアを用いた処理の実行を開始する。
この構成により、コンピュータシステムからのアクセスにより第１のファームウェアが損傷して認証に失敗しても、コンピュータシステムからアクセスできないコントローラの動作に用いられていたファームウェアをもって修復される。そのため、コントローラの処理、ひいてはコンピュータシステムの動作が正常に回復する。
【００５１】
また、コントローラは、第１のファームウェアの認証に失敗するとき、当該コントローラの処理の実行時のファームウェアをメモリに記憶してもよい。
この構成により、メモリに記憶された第１のファームウェアの認証の失敗が検出された時点で、メモリに記憶されたコントローラのファームウェアが修復される。そのため、ファームウェアの修復を要しない時点における、無用な修復を回避することができる。
【００５２】
また、コントローラは、コンピュータシステムがシャットダウンまたは再起動するとき、処理の実行時のランタイムファームウェアをメモリに記憶した後、自部のシステムメモリをリセットしてもよい。
この構成により、シャットダウンまたは再起動の直前に、ランタイムファームウェアをメモリに退避することができる。再起動が完了するまでメモリはコンピュータシステムからアクセスされないため、メモリに退避されたランタイムファームウェアが損傷するリスクを低減することができる。
【００５３】
また、コントローラのシステムメモリは、揮発性メモリであり、コントローラは、そのシステムメモリをリセットするとき、当該システムメモリへの通電を停止してもよい。
この構成により、システムメモリに記憶され、認証に失敗したファームウェアを迅速に消去し、修復されたファームウェアを用いた処理を確実に開始することができる。
【００５４】
また、コンピュータシステムは、自部への通電が停止または供給電力が低下するとき起動が制限され、コントローラは、自部のシステムメモリのリセット前に、通電の停止または供給電力の低下を通知してもよい。
この構成により、コントローラは、システムメモリのリセット前にコンピュータシステムの起動を制限することができる。そのため、コンピュータシステムの動作によりシステムウェアが損傷するリスクを低減することができる。
【００５５】
また、情報処理装置１０は、コントローラとメモリを接続するプラットフォームコントローラ（例えば、ＰＣＨ１１）を備え、メモリは、コンピュータシステムのファームウェアをさらに記憶してもよい。
この構成により、メモリはコンピュータシステムのファームウェアとコントローラのファームウェアとの間で共用された環境（例えば、シェアドフラッシュ）であっても、コントローラのファームウェアの修復がなされる。そのため、コンピュータシステムとコントローラでメモリを共用することで、ファームウェアのメンテナンスに係る労力を軽減しながら、コントローラのファームウェアの修復を実現することで、情報処理装置１０の可用性（availability）を維持することができる。
【００５６】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。上記の実施形態において説明した各構成は、矛盾しない限り任意に組み合わせることができる。
【００５７】
例えば、ＰＣＨ１１にＩ／Ｏコントローラ１１７が含まれていれば、ＰＣＨ１１においてＣＰＵ１１１とメモリコントローラ１１５は省略され、ＰＣＨ１１とは別体であってもよい。ＧＰＵ１１３も、ＰＣＨ１１とは別体であってもよい。
上記の説明では、情報処理装置１０が主にノートＰＣである場合を例にしたが、これには限られない。情報処理装置１０は、デスクトップＰＣ、タブレット端末、スマートフォン、などのいずれの形態で実現されてもよい。
【符号の説明】
【００５８】
１０…情報処理装置、１１…ＰＣＨ、１２…フラッシュＲＯＭ、１４…ＥＣ、１１１…ＣＰＵ、１１３…ＧＰＵ、１１５…メモリコントローラ、１１７…Ｉ／Ｏコントローラ、１３１…システムメモリ、１３３…ＬＣＤ、１３５…ＨＤＤ、１４１…ＣＰＵ、１４３…ＳＲＡＭ、１４５…ブートＲＯＭ、１５１…キーボード
【図１】
0006918994.tif 000002
【図２】
0006918994.tif 000003
【図３】
0006918994.tif 000004
【図４】
0006918994.tif 000005
【図５】
0006918994.tif 000006
【図６】
0006918994.tif 000007
【図７】
0006918994.tif 000008
【図８】
0006918994.tif 000009
【図９】
0006918994.tif 000010
【図１０】
0006918994.tif 000011
【図１１】
0006918994.tif 000012
【図１２】
0006918994.tif 000013
【図１３】
0006918994.tif 000014
【図１４】
0006918994.tif 000015
【図１５】
0006918994.tif 000016
【図１６】
0006918994.tif 000017
【図１７】
0006918994.tif 000018