(57)【特許請求の範囲】
【請求項１】
少なくともＢＩＯＳ（Basic Input Output System）のプログラムを記憶するＢＩＯＳ記憶部と、
前記ＢＩＯＳのプログラムを実行することでオペレーティングシステムを起動するメイン制御部と、
周辺機器を管理し、前記ＢＩＯＳ記憶部にアクセス可能なサブ制御部と
を備え、
前記サブ制御部は、前記メイン制御部が処理を実行中に並列して、前記ＢＩＯＳ記憶部が記憶する前記ＢＩＯＳのプログラムデータからダイジェスト値を計算可能なダイジェスト計算部を備え、
前記メイン制御部は、前記ダイジェスト値に基づいて、前記ＢＩＯＳのプログラムの正当性を判定する
情報処理装置。
【請求項２】
前記ＢＩＯＳ記憶部は、前記メイン制御部から前記サブ制御部を経由してアクセス可能に構成されている
請求項１に記載の情報処理装置。
【請求項３】
前記ダイジェスト計算部は、前記サブ制御部の動作の開始に応じて、前記ダイジェスト値を計算する
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記ダイジェスト計算部は、前記メイン制御部からの前記ダイジェスト値の計算要求に応じて、前記ダイジェスト値を計算する
請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記ダイジェスト計算部は、
外部電源から電力が供給される第１モードの場合に、前記サブ制御部の動作の開始に応じて、前記ダイジェスト値を計算し、
自装置が内蔵するバッテリから電力が供給される第２モードの場合に、前記メイン制御部からの前記ダイジェスト値の計算要求に応じて、前記ダイジェスト値を計算する
請求項１又は請求項２に記載の情報処理装置。
【請求項６】
前記メイン制御部は、前記ダイジェスト値を前記サブ制御部から取得し、取得した前記ダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果に基づいて、前記ＢＩＯＳのプログラムの正当性を判定する
請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項７】
前記サブ制御部は、前記ダイジェスト計算部が計算した前記ダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果を前記メイン制御部に送信し、
前記メイン制御部は、前記サブ制御部から前記比較結果を取得し、取得した前記比較結果に基づいて、前記ＢＩＯＳのプログラムの正当性を判定する
請求項１から請求項５のいずれか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置では、オペレーティングシステム（以下、ＯＳという）を起動する際に、ＰＯＳＴ（Power On Self Test）処理が実行される（例えば、特許文献１を参照）。ＰＯＳＴ処理には、例えば、ＢＩＯＳ（Basic Input Output System）などのプログラムのインテグリティチェック（完全性のチェック）が含まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−７６２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、情報処理装置の機能増加に伴って、ＢＩＯＳのプログラムを記憶するＢＩＯＳメモリの記憶容量が増大してきている。そのため、従来の情報処理装置では、ＢＩＯＳなどのプログラムのインテグリティチェックに要する時間が増大する傾向にあり、システムの起動時間が長くなるという問題があった。
【０００５】
本発明は、上記問題を解決すべくなされたもので、その目的は、システムの起動時間を短縮することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記問題を解決するために、本発明の一態様は、少なくともＢＩＯＳ（Basic Input Output System）のプログラムを記憶するＢＩＯＳ記憶部と、前記ＢＩＯＳのプログラムを実行することでオペレーティングシステムを起動するメイン制御部と、周辺機器を管理し、前記ＢＩＯＳ記憶部にアクセス可能なサブ制御部とを備え、前記サブ制御部は、前記メイン制御部が処理を実行中に並列して、前記ＢＩＯＳ記憶部が記憶する前記ＢＩＯＳのプログラムデータからダイジェスト値を計算可能なダイジェスト計算部を備え、前記メイン制御部は、前記ダイジェスト値に基づいて、前記ＢＩＯＳのプログラムの正当性を判定する情報処理装置である。
【０００７】
また、本発明の一態様は、上記の情報処理装置において、前記ＢＩＯＳ記憶部は、前記メイン制御部から前記サブ制御部を経由してアクセス可能に構成されていてもよい。
【０００８】
また、本発明の一態様は、上記の情報処理装置において、前記ダイジェスト計算部は、前記サブ制御部の動作の開始に応じて、前記ダイジェスト値を計算するようにしてもよい。
【０００９】
また、本発明の一態様は、上記の情報処理装置において、前記ダイジェスト計算部は、前記メイン制御部からの前記ダイジェスト値の計算要求に応じて、前記ダイジェスト値を計算するようにしてもよい。
【００１０】
また、本発明の一態様は、上記の情報処理装置において、前記ダイジェスト計算部は、外部電源から電力が供給される第１モードの場合に、前記サブ制御部の動作の開始に応じて、前記ダイジェスト値を計算し、自装置が内蔵するバッテリから電力が供給される第２モードの場合に、前記メイン制御部からの前記ダイジェスト値の計算要求に応じて、前記ダイジェスト値を計算するようにしてもよい。
【００１１】
また、本発明の一態様は、上記の情報処理装置において、前記メイン制御部は、前記ダイジェスト値を前記サブ制御部から取得し、取得した前記ダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果に基づいて、前記ＢＩＯＳのプログラムの正当性を判定するようにしてもよい。
【００１２】
また、本発明の一態様は、上記の情報処理装置において、前記サブ制御部は、前記ダイジェスト計算部が計算した前記ダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果を前記メイン制御部に送信し、前記メイン制御部は、前記サブ制御部から前記比較結果を取得し、取得した前記比較結果に基づいて、前記ＢＩＯＳのプログラムの正当性を判定するようにしてもよい。
【発明の効果】
【００１３】
本発明によれば、システムの起動時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態によるノートＰＣの主要なハードウェア構成の一例を示す図である。
【図２】第１の実施形態によるノートＰＣの機能構成の一例を示すブロック図である。
【図３】第１の実施形態におけるＥＣによるダイジェスト値の計算処理の一例を示すフローチャートである。
【図４】第１の実施形態におけるバッテリから電力供給を受ける場合のノートＰＣの起動処理の一例を示す図である。
【図５】第１の実施形態における外部電源から電力供給を受ける場合のノートＰＣの起動処理の一例を示す図である。
【図６】第１の実施形態におけるノートＰＣの起動処理の一例を説明する図である。
【図７】第２の実施形態におけるＥＣによるダイジェスト値の計算処理の一例を示すフローチャートである。
【図８】第２の実施形態におけるバッテリから電力供給を受ける場合のノートＰＣの起動処理の一例を示す図である。
【図９】第２の実施形態における外部電源から電力供給を受ける場合のノートＰＣの起動処理の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態による、情報処理装置について図面を参照して説明する。
【００１６】
［第１の実施形態］
図１は、第１の実施形態によるノートＰＣ１の主要なハードウェア構成の一例を示す図である。なお、本実施形態において、情報処理装置の一例として、ノートＰＣ１について説明する。
【００１７】
図１に示すように、ノートＰＣ１は、ＣＰＵ１１と、メインメモリ１２と、ビデオサブシステム１３と、表示部１４と、チップセット２１と、ＨＤＤ２２と、ＵＳＢコネクタ２３と、オーディオシステム２４と、ＷＬＡＮカード２５と、エンベデッドコントローラ（ＥＣ）３１と、ＢＩＯＳメモリ３２と、入力部３３と、電源回路３４とを備える。
なお、本実施形態において、ＣＰＵ１１と、チップセット２１とは、メイン制御部１０に対応する。
【００１８】
ＣＰＵ（Central Processing Unit）１１は、プログラム制御により種々の演算処理を実行し、ノートＰＣ１全体を制御している。
メインメモリ１２は、ＣＰＵ１１の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ１２は、例えば、複数個のＤＲＡＭ（Dynamic Random Access Memory）チップで構成される。この実行プログラムには、ＢＩＯＳ（Basic Input Output System）のプログラム、ＯＳ、周辺機器類をハードウェア操作するための各種ドライバ、各種サービス／ユーティリティ、アプリケーションプログラム等が含まれる。
【００１９】
ビデオサブシステム１３は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、ＣＰＵ１１からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、表示部１４に描画データ（表示データ）として出力する。
表示部１４は、例えば、液晶ディスプレイであり、ビデオサブシステム１３から出力された描画データ（表示データ）に基づく表示画面を表示する。
【００２０】
チップセット２１は、ＵＳＢ（Universal Serial Bus）、シリアルＡＴＡ（AT Attachment）、ＳＰＩ（Serial Peripheral Interface）バス、ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、及びｅＳＰＩ（Embedded Serial Peripheral Interface）バスなどのコントローラを備えており複数のデバイスが接続される。図１では、デバイスの例示として、ＨＤＤ２２と、ＵＳＢコネクタ２３と、オーディオシステム２４と、ＷＬＡＮカード２５と、エンベデッドコントローラ３１とが、チップセット２１に接続されている。
【００２１】
ＨＤＤ（Hard Disk Drive）２２は、ＯＳ、各種ドライバ、各種サービス／ユーティリティ、アプリケーションプログラム、及び各種データを記憶する。
ＵＳＢコネクタ２３は、ＵＳＢを利用した周辺機器類を接続するためのコネクタである。
オーディオシステム２４は、音データの記録、再生、出力を行う。
ＷＬＡＮ（Wireless Local Area Network）カード２５は、ワイヤレス（無線）ＬＡＮにより、ネットワークに接続して、データ通信を行う。
【００２２】
エンベデッドコントローラ３１（サブ制御部の一例）は、ノートＰＣ１のシステム状態に関わらず、各種デバイス（周辺装置やセンサ等）を監視し制御するワンチップマイコン（One-Chip Microcomputer）である。また、エンベデッドコントローラ３１は、電源回路３４を制御する電源管理機能を有している。なお、エンベデッドコントローラ３１は、不図示のＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されるとともに、複数チャネルのＡ／Ｄ入力端子、Ｄ／Ａ出力端子、タイマ、及びデジタル入出力端子を備えている。エンベデッドコントローラ３１には、それらの入出力端子を介して、例えば、入力部３３、及び電源回路３４などが接続されており、エンベデッドコントローラ３１は、これらの動作を制御する。
【００２３】
また、エンベデッドコントローラ３１は、ＳＰＩを有しており、ＳＰＩを介してＢＩＯＳメモリ３２と接続されている。本実施形態では、例えば、Slave Attached Flash方式により、ＢＩＯＳメモリ３２がエンベデッドコントローラ３１に接続されており、メイン制御部１０は、エンベデッドコントローラ３１を経由してＢＩＯＳメモリ３２にアクセス可能である。なお、Slave Attached Flash方式では、メイン制御部１０をマスター（Master）として、スレイブ（Slave）であるエンベデッドコントローラ３１が接続され、さらに、エンベデッドコントローラ３１には、スレイブとしてＢＩＯＳメモリ３２が接続されている。この接続により、エンベデッドコントローラ３１からＢＩＯＳメモリ３２へのアクセスが可能になるとともに、メイン制御部１０からエンベデッドコントローラ３１を経由したＢＩＯＳメモリ３２へのアクセスが可能になる。
【００２４】
また、エンベデッドコントローラ３１は、ＡＣＰＩ（Advanced Configuration and Power Interface）仕様に規定されたシステム状態（例えば、Ｓ０状態〜Ｓ５状態）に応じて、電源回路３４を制御する。ここで、Ｓ０状態は、最もアクティブな状態であり、通常の稼動状態（通常動作状態）である。また、Ｓ１状態〜Ｓ５状態は、ノートＰＣ１の各構成へのクロック停止、又は給電停止を行う状態の異なるスリープ状態（省電力の待機電源モード）である。
【００２５】
また、エンベデッドコントローラ３１は、電源回路３４により、ノートＰＣ１が外部電源から電力が供給される場合（第１モードの場合）と、ノートＰＣ１（自装置）が内蔵するバッテリ３５から電力が供給される場合（第２モードの場合）とを検出可能である。
【００２６】
ＢＩＯＳメモリ３２（ＢＩＯＳ記憶部の一例）は、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）やフラッシュＲＯＭなどの電気的に書き換え可能な不揮発性メモリで構成される。ＢＩＯＳメモリ３２は、Slave Attached Flash方式などのメイン制御部１０からエンベデッドコントローラ３１を経由してアクセス可能な方式により、エンベデッドコントローラ３１に接続されており、ＢＩＯＳメモリ３２は、メイン制御部１０からエンベデッドコントローラ３１を経由してアクセス可能に構成されている。ＢＩＯＳメモリ３２は、ＢＩＯＳ、及びエンベデッドコントローラ３１などを制御するためのシステムファームウェアなどを記憶する。ＢＩＯＳメモリ３２は、例えば、ＢＩＯＳのプログラム、各種設定情報、等を記憶する。また、ＢＩＯＳメモリ３２は、ＢＩＯＳのプログラムデータから予め得られたダイジェスト値を記憶する。
【００２７】
入力部３３は、例えば、キーボード、ポインティング・デバイス、タッチパッドなどの入力デバイスである。
電源回路３４は、例えば、ＤＣ／ＤＣコンバータ、充放電ユニットなどを含んでおり、ＡＣ／ＤＣアダプタからの外部電源、又はバッテリ３５から供給される直流電圧を、ノートＰＣ１を動作させるために必要な複数の電圧に変換する。また、電源回路３４は、エンベデッドコントローラ３１からの制御に基づいて、ノートＰＣ１の各部に電力を供給する。また、電源回路３４は、ノートＰＣ１が外部電源から電力が供給される場合（第１モードの場合）と、ノートＰＣ１（自装置）が内蔵するバッテリ３５から電力が供給される場合（第２モードの場合）とを検出し、検出結果をエンベデッドコントローラ３１に出力する。
【００２８】
バッテリ３５は、例えば、リチウムイオンバッテリであり、ＡＣ／ＤＣアダプタからの外部電源が供給される場合に、電源回路３４によって、充電される。また、バッテリ３５は、ＡＣ／ＤＣアダプタからの外部電源が供給されない状態において、電源回路３４を介して、ノートＰＣ１の各構成に電力を供給する。
【００２９】
次に、図２を参照して、本実施形態によるノートＰＣ１の機能構成について説明する。
図２は、本実施形態によるノートＰＣ１の機能構成の一例を示すブロック図である。
図２に示すように、ノートＰＣ１は、メイン制御部１０と、エンベデッドコントローラ（ＥＣ）３１とを備える。なお、図２において、本実施形態の発明に関する主要な機能構成のみを記載している。
【００３０】
なお、図２において、メイン制御部１０と、エンベデッドコントローラ３１とは、電源回路３４から異なる電源が供給される。エンベデッドコントローラ３１は、電源ブロックＤＢ１に含まれ、メイン制御部１０よりも先に電源供給（電力供給）される。また、メイン制御部１０は、電源ブロックＤＢ２に含まれ、電源ブロックＤＢ１の電源が供給された後に電源が供給される。
【００３１】
例えば、ノートＰＣ１が外部電源から電力が供給される場合（第１モードの場合）に、電源ブロックＤＢ１であるエンベデッドコントローラ３１に電力が供給され、入力部３３によりノートＰＣ１の起動要求を受けた際に、電源ブロックＤＢ２であるメイン制御部１０に電力が供給される。
また、ＡＣ／ＤＣアダプタが接続されていない状態であり、ノートＰＣ１が外部電源から電力が供給されていない場合（第２モードの場合）には、入力部３３によりノートＰＣ１の起動要求を受けた際に、電源ブロックＤＢ１から電源ブロックＤＢ２の順に連続して電力が供給される。すなわち、ノートＰＣ１（自装置）が内蔵するバッテリ３５から電力が供給される場合（第２モードの場合）は、入力部３３によりノートＰＣ１の起動要求を受けた際に、エンベデッドコントローラ３１とメイン制御部１０に連続して電力が供給される。
【００３２】
エンベデッドコントローラ３１は、ダイジェスト計算部４０を備える。
ダイジェスト計算部４０は、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータからダイジェスト値を計算する。ここで、ダイジェスト値は、ＢＩＯＳのプログラムデータから、例えば、ハッシュ関数などを用いて計算される情報であり、ＢＩＯＳのプログラムデータから一意に決定される。ダイジェスト値は、ＢＩＯＳのプログラムデータが改ざんされていないこと（ＢＩＯＳのプログラムの正当性）を証明するための情報である。
【００３３】
ダイジェスト計算部４０は、メイン制御部１０が処理（例えば、ＢＩＯＳプログラムによる処理）を実行中に並列して、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータからダイジェスト値を計算可能である。
また、ダイジェスト計算部４０は、例えば、第１モードの場合に、エンベデッドコントローラ３１の動作の開始に応じて、ダイジェスト値を計算する。また、ダイジェスト計算部４０は、例えば、第２モードの場合に、メイン制御部１０からのダイジェスト値の計算要求に応じて、ダイジェスト値を計算する。
【００３４】
エンベデッドコントローラ３１は、ダイジェスト計算部４０を用いて、ＢＩＯＳのプログラムデータからダイジェスト値を計算する。エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したダイジェスト値を、メイン制御部１０に送信する。
【００３５】
メイン制御部１０は、ＣＰＵ１１とチップセット２１とを有し、ＢＩＯＳのプログラムを実行することでＯＳ（例えば、Ｗｉｎｄｏｗｓ（登録商標））を起動する。メイン制御部１０は、ＯＳ起動後に、ＯＳ上で動作する各種アプリケーションを実行する。
メイン制御部１０は、ＯＳを起動する際に、ＢＩＯＳにより、ＰＯＳＴ処理を実行する。メイン制御部１０は、例えば、ダイジェスト計算部４０が計算したダイジェスト値に基づいて、ＢＩＯＳのプログラムの正当性を判定する。すなわち、メイン制御部１０は、ＢＩＯＳのプログラムの実行により、ＢＩＯＳのプログラムのインテグリティチェック（完全性のチェック）を実行する。
【００３６】
例えば、メイン制御部１０は、エンベデッドコントローラ３１からダイジェスト計算部４０が計算したダイジェスト値を取得するとともに、エンベデッドコントローラ３１を介して、ＢＩＯＳメモリ３２が記憶する予め得られている比較用のダイジェスト値（正当なダイジェスト値）を取得する。メイン制御部１０は、ダイジェスト計算部４０が計算したダイジェスト値と、ＢＩＯＳメモリ３２が記憶する正当なダイジェスト値とを比較して、当該比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。メイン制御部１０は、比較結果が一致である場合に、ＢＩＯＳのプログラムの正当性を判定する。
【００３７】
次に、図面を参照して、本実施形態によるノートＰＣ１の動作について説明する。
図３は、本実施形態におけるエンベデッドコントローラ３１によるダイジェスト値の計算処理の一例を示すフローチャートである。
【００３８】
図３に示すように、エンベデッドコントローラ３１に電源が供給されて動作を開始すると、エンベデッドコントローラ３１は、まず、エンベデッドコントローラ３１の初期化処理を実行する（ステップＳ１０１）。
【００３９】
次に、エンベデッドコントローラ３１は、外部電源が供給されているか否かを判定する（ステップＳ１０２）。エンベデッドコントローラ３１は、電源回路３４から外部電源が供給されているか否かの情報を取得し、ＡＣ／ＤＣアダプタが接続されて外部電源が供給されているか否かを判定する。エンベデッドコントローラ３１は、外部電源が供給されている場合（ステップＳ１０２：ＹＥＳ、第１モードの場合）に、処理をステップＳ１０４に進める。また、エンベデッドコントローラ３１は、外部電源が供給されていない場合（ステップＳ１０２：ＮＯ、第２モードの場合）に、処理をステップＳ１０３に進める。
【００４０】
ステップＳ１０３において、エンベデッドコントローラ３１は、ダイジェスト値の計算要求を受信したか否かを判定する。エンベデッドコントローラ３１は、メイン制御部１０からダイジェスト値の計算要求を受信した場合（ステップＳ１０３：ＹＥＳ）に、処理をステップＳ１０４に進める。また、エンベデッドコントローラ３１は、メイン制御部１０からダイジェスト値の計算要求を受信していない場合（ステップＳ１０３：ＮＯ）に、処理をステップＳ１０３に戻す。
【００４１】
ステップＳ１０４において、エンベデッドコントローラ３１は、ＢＩＯＳのプログラムデータのダイジェスト値を計算する。エンベデッドコントローラ３１は、ダイジェスト計算部４０にダイジェスト値を計算させ、ダイジェスト計算部４０は、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータから、ハッシュ関数などを用いて、ダイジェスト値を計算する。すなわち、エンベデッドコントローラ３１は、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータを読み出し、ハッシュ関数などを用いて、ダイジェスト値を計算する。
【００４２】
次に、エンベデッドコントローラ３１は、ダイジェスト値の送信要求を受信したか否かを判定する（ステップＳ１０５）。エンベデッドコントローラ３１は、メイン制御部１０からダイジェスト値の送信要求を受信した場合（ステップＳ１０５：ＹＥＳ）に、処理をステップＳ１０６に進める。また、エンベデッドコントローラ３１は、メイン制御部１０からダイジェスト値の送信要求を受信していない場合（ステップＳ１０５：ＮＯ）に、処理をステップＳ１０５に戻す。
【００４３】
ステップＳ１０６において、エンベデッドコントローラ３１は、ダイジェスト値をメイン制御部１０に送信する。すなわち、エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したダイジェスト値を、メイン制御部１０に送信する。ステップＳ１０６の処理後に、エンベデッドコントローラ３１は、処理をステップＳ１０３に戻す。
【００４４】
次に、図４及び図５を参照して、本実施形態によるノートＰＣ１の起動処理について説明する。
図４は、本実施形態におけるバッテリ３５から電力供給を受ける場合（第２モードの場合）のノートＰＣ１の起動処理の一例を示す図である。
【００４５】
図４に示すように、第２モードの場合、入力部３３によりノートＰＣ１の起動要求を受けると、電源ブロックＤＢ１及び電源ブロックＤＢ１に電力が供給され、まず、エンベデッドコントローラ３１が電源ＯＮ（オン）の状態になって動作を開始する（ステップＳ２０１）。
また、メイン制御部１０が電源ＯＮの状態になって動作を開始する（ステップＳ２０２）。
【００４６】
次に、メイン制御部１０は、ダイジェスト値の計算要求をエンベデッドコントローラ３１に送信する（ステップＳ２０３）。
【００４７】
エンベデッドコントローラ３１は、メイン制御部１０からのダイジェスト値の計算要求の受信に応じて、ダイジェスト値を計算する（ステップＳ２０４）。エンベデッドコントローラ３１のダイジェスト計算部４０は、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータから、ハッシュ関数などを用いて、ダイジェスト値を計算する。すなわち、ダイジェスト計算部４０は、ＳＰＩによりＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータを読み出し、ハッシュ関数などを用いて、ダイジェスト値を計算する。
【００４８】
また、エンベデッドコントローラ３１がダイジェスト値を計算している間に、メイン制御部１０は、デバイス初期化を実行する（ステップＳ２０５）。メイン制御部１０は、エンベデッドコントローラ３１によるダイジェスト値の計算処理に並列して、ノートＰＣ１が備える各種デバイスの初期化処理を実行する。
【００４９】
次に、メイン制御部１０は、ダイジェスト値の送信要求をエンベデッドコントローラ３１に送信する（ステップＳ２０６）。
次に、エンベデッドコントローラ３１は、メイン制御部１０からのダイジェスト値の送信要求の受信に応じて、ダイジェスト値をメイン制御部１０に送信する（ステップＳ２０７）。すなわち、エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したＢＩＯＳプログラムデータのダイジェスト値を、メイン制御部１０に送信する。
【００５０】
次に、メイン制御部１０は、ダイジェスト値のチェック処理を実行する（ステップＳ２０８）。メイン制御部１０は、エンベデッドコントローラ３１から受信したダイジェスト値と、ＢＩＯＳメモリ３２が記憶するダイジェスト値とを比較して、当該比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。
【００５１】
メイン制御部１０は、例えば、ＢＩＯＳのプログラムが正当である場合（インテグリティチェックの結果が問題ない場合）に、ＯＳの起動処理を含む通常処理（ステップＳ２０９）に進める。また、メイン制御部１０は、例えば、ＢＩＯＳのプログラムが正当でない場合（インテグリティチェックの結果に問題がある場合）に、処理を中断し、ＯＳの起動処理は行わず、システムをシャットダウンさせる。
次に、ステップＳ２０９において（ＢＩＯＳのプログラムが正当である場合）、メイン制御部１０は、ＯＳの起動処理を含む通常処理を実行して、ＯＳの起動を完了する。
【００５２】
次に、図５は、本実施形態における外部電源から電力供給を受ける場合（第１モードの場合）のノートＰＣ１の起動処理の一例を示す図である。
【００５３】
図５に示すように、第１モードの場合、まず、ＡＣ／ＤＣアダプタがノートＰＣ１に接続されることで、電源ブロックＤＢ１に電力が供給され、エンベデッドコントローラ３１が電源ＯＮの状態になって動作を開始する（ステップＳ３０１）。
【００５４】
次に、エンベデッドコントローラ３１は、エンベデッドコントローラ３１の動作の開始に応じて、ダイジェスト値を計算する（ステップＳ３０２）。エンベデッドコントローラ３１のダイジェスト計算部４０は、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータから、ハッシュ関数などを用いて、ダイジェスト値を計算する。すなわち、ダイジェスト計算部４０は、ＳＰＩによりＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータを読み出し、ハッシュ関数などを用いて、ダイジェスト値を計算する。
【００５５】
一方で、入力部３３によりノートＰＣ１の起動要求を受けると、電源ブロックＤＢ１に電力が供給され、メイン制御部１０が電源ＯＮの状態になって動作を開始する（ステップＳ３０３）。
【００５６】
次に、メイン制御部１０は、デバイス初期化を実行する（ステップＳ３０４）。メイン制御部１０は、ノートＰＣ１が備える各種デバイスの初期化処理を実行する。
続く、ステップＳ３０５からステップＳ３０８までの処理は、上述した図４に示すステップＳ２０６からステップＳ２０９までの処理と同様であるため、ここではその説明を省略する。
【００５７】
なお、上述した例では、外部電源からの電力供給に伴うエンベデッドコントローラ３１の動作の開始に応じて、エンベデッドコントローラ３１がダイジェスト値を自動で計算する例を説明したが、これに限定されるものではない。例えば、上述したステップＳ３０８の処理に再度、ダイジェスト値を計算する場合には、エンベデッドコントローラ３１がは、図４と同様にダイジェスト値の計算要求に応じてダイジェスト値を計算するようにしてもよい。
【００５８】
次に、図６を参照して、本実施形態におけるノートＰＣ１の起動処理の詳細について説明する。
図６は、本実施形態におけるノートＰＣ１の起動処理の一例を説明する図である。この図において、バッテリ３５から電力供給を受ける第２モードの場合のノートＰＣ１の起動処理について説明する。
また、図６において、本実施形態との比較のために、上段に従来技術の起動処理を示し、下段に本実施形態の起動処理を示す。
【００５９】
まず、図６の上段の従来技術の起動処理では、時刻Ｔ０において、電源ブロックＤＢ１及び電源ブロックＤＢ１に電力が供給されると、例えば、ＤＭＡ（Direct Memory Access）機能などを用いて、従来のＢＩＯＳメモリは、記憶するＢＩＯＳプログラムが読み出され、メインメモリ１２に記憶（ロード）される。
【００６０】
また、時刻Ｔ１において、従来のエンベデッドコントローラが動作を開始し、初期化処理を実行する。
また、時刻Ｔ２において、従来のメイン制御部が、ＢＩＯＳプログラムによる動作を開始し、各種デバイスの初期化処理を実行する。
【００６１】
次に、時刻Ｔ３において、従来のエンベデッドコントローラは、初期化処理が終了すると、次に、通常処理を実行する。
【００６２】
また、時刻Ｔ４において、従来のメイン制御部は、各種デバイスの初期化処理が終了すると、次に、ＢＩＯＳのプログラムデータのダイジェスト値を計算する処理を実行し、時刻Ｔ８において、ダイジェスト値のチェック（インテグリティチェック）を実行する。
次に、時刻Ｔ９において、従来のメイン制御部は、通常処理を実行する。
このように、従来技術の起動処理では、起動時間として、時刻Ｔ０から時刻Ｔ９までの期間を必要とする。
【００６３】
これに対して、下段の本実施形態の起動処理では、時刻Ｔ０において、電源ブロックＤＢ１及び電源ブロックＤＢ１に電力が供給されると、例えば、ＤＭＡ機能などを用いて、ＢＩＯＳメモリ３２は、記憶するＢＩＯＳプログラムが読み出され、メインメモリ１２に記憶（ロード）される。
【００６４】
また、時刻Ｔ１において、エンベデッドコントローラ３１が動作を開始し、エンベデッドコントローラ３１の初期化処理を実行する。
また、時刻Ｔ２において、メイン制御部１０が、ＢＩＯＳプログラムによる動作を開始し、エンベデッドコントローラ３１にダイジェスト値の計算要求を送信するとともに、各種デバイスの初期化処理を実行する。
【００６５】
次に、時刻Ｔ３において、エンベデッドコントローラ３１は、初期化処理が終了すると、ダイジェスト値の計算要求に応じて、ＢＩＯＳのプログラムデータのダイジェスト値を計算する処理を実行する。エンベデッドコントローラ３１のダイジェスト計算部４０は、ＳＰＩによりＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータを読み出し、ハッシュ関数などを用いて、ダイジェスト値を計算する。このように、本実施形態のノートＰＣ１では、メイン制御部１０による初期化処理に平行して、エンベデッドコントローラ３１が、ＢＩＯＳのプログラムデータのダイジェスト値を計算する。
【００６６】
次に、時刻Ｔ５において、エンベデッドコントローラ３１によるダイジェスト値を計算する処理が終了し、時刻Ｔ６において、メイン制御部１０による初期化処理が終了すると、メイン制御部１０は、ダイジェスト値のチェック（インテグリティチェック）を実行する。メイン制御部１０は、例えば、エンベデッドコントローラ３１にダイジェスト値の送信要求を送信して、エンベデッドコントローラ３１からダイジェスト値を取得する。そして、メイン制御部１０は、エンベデッドコントローラ３１から受信したダイジェスト値と、ＢＩＯＳメモリ３２が記憶するダイジェスト値とを比較して、当該比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。
【００６７】
次に、時刻Ｔ７において、メイン制御部１０は、ダイジェスト値のチェックが正常に終了すると、通常処理を実行する。
このように、本実施形態の起動処理では、起動時間として、時刻Ｔ０から時刻Ｔ７までの期間を必要とする。すなわち、本実施形態の起動処理では、上段の従来技術に比べて、起動時間を、時刻Ｔ７から時刻Ｔ９までの期間ΔＴだけ短縮することができる。
【００６８】
以上説明したように、本実施形態によるノートＰＣ１（情報処理装置）は、ＢＩＯＳメモリ３２（ＢＩＯＳ記憶部）と、メイン制御部１０（ＣＰＵ１１、及びチップセット２１）と、エンベデッドコントローラ３１（サブ制御部）とを備える。ＢＩＯＳメモリ３２は、少なくともＢＩＯＳのプログラムを記憶する。メイン制御部１０は、ＢＩＯＳのプログラムを実行することでオペレーティングシステムを起動する。エンベデッドコントローラ３１は、周辺機器を管理し、ＢＩＯＳメモリ３２にアクセス可能であり、メイン制御部１０が処理を実行中に並列して、ＢＩＯＳメモリ３２が記憶するＢＩＯＳのプログラムデータからダイジェスト値を計算可能なダイジェスト計算部４０を備える。メイン制御部１０は、ダイジェスト計算部４０が計算したダイジェスト値に基づいて、ＢＩＯＳのプログラムの正当性を判定する。
【００６９】
これにより、本実施形態によるノートＰＣ１は、上述した図６に示すように、エンベデッドコントローラ３１が、ＢＩＯＳのプログラムデータのダイジェスト値を計算している間に、メイン制御部１０がダイジェスト値の計算処理以外の処理を実行することができる。そのため、本実施形態によるノートＰＣ１は、システムの起動時間を短縮することができる（図６の期間ΔＴを参照）。
【００７０】
また、本実施形態では、ＢＩＯＳメモリ３２は、メイン制御部１０からエンベデッドコントローラ３１を経由してアクセス可能に構成（例えば、Slave Attached Flash方式で構成）されている。すなわち、メイン制御部１０は、エンベデッドコントローラ３１を経由してＢＩＯＳメモリ３２にアクセス可能である。
【００７１】
これにより、本実施形態によるノートＰＣ１では、メイン制御部１０が、例えば、ＢＩＯＳのプログラムの処理を実行中に、エンベデッドコントローラ３１が、単独でＢＩＯＳメモリ３２にアクセスすることができる。そのため、本実施形態によるノートＰＣ１では、メイン制御部１０の処理中に、ＢＩＯＳのプログラムデータのダイジェスト値を計算することができる。
【００７２】
また、本実施形態では、ダイジェスト計算部４０は、エンベデッドコントローラ３１の動作の開始に応じて、ＢＩＯＳのプログラムデータのダイジェスト値を計算する。
これにより、本実施形態によるノートＰＣ１は、エンベデッドコントローラ３１が、自動的にＢＩＯＳのプログラムデータのダイジェスト値の計算を開始するため、さらに効率良くシステムの起動時間を短縮することができる。
【００７３】
また、本実施形態では、ダイジェスト計算部４０は、メイン制御部１０からのダイジェスト値の計算要求に応じて、ＢＩＯＳのプログラムデータのダイジェスト値を計算する。
これにより、本実施形態によるノートＰＣ１は、メイン制御部１０がダイジェスト値の計算要求を送信することで、例えば、ＯＳの起動後に適宜、ダイジェスト値を計算することができる。そのため、本実施形態によるノートＰＣ１は、ＯＳの起動時以外にも、ＢＩＯＳのプログラムの正当性をチェックすることが可能になり、不正なプログラムが実行されることを抑制することができる。
【００７４】
また、本実施形態では、ダイジェスト計算部４０は、外部電源から電力が供給される第１モードの場合に、エンベデッドコントローラ３１の動作の開始に応じて、ダイジェスト値を計算する。また、ダイジェスト計算部４０は、自装置が内蔵するバッテリ３５から電力が供給される第２モードの場合に、メイン制御部１０からのダイジェスト値の計算要求に応じて、ダイジェスト値を計算する。
【００７５】
これにより、本実施形態によるノートＰＣ１は、外部電源から電力が供給されるか否かに応じて、ダイジェスト値の計算処理の開始手法を切り替えるため、外部電源から電力が供給されるか否かのモードに応じて効率良くＯＳの起動時間を短縮することができる。
【００７６】
また、本実施形態では、メイン制御部１０は、ダイジェスト値をエンベデッドコントローラ３１から取得し、取得したダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。
これにより、本実施形態によるノートＰＣ１は、メイン制御部１０が、計算したダイジェスト値をエンベデッドコントローラ３１から取得するため、取得したダイジェスト値を、インテグリティチェックの履歴として残したり、ダイジェスト値を他の処理に活用したりすることができる。
【００７７】
［第２の実施形態］
次に、図面を参照して、第２の実施形態によるノートＰＣ１について説明する。
本実施形態では、上述した第１の実施形態において、メイン制御部１０が実行していたダイジェスト値の比較処理を、エンベデッドコントローラ３１が実行する変形例について説明する。
【００７８】
なお、第２の実施形態によるノートＰＣ１の主要なハードウェア構成及び機能構成は、図１及び図２に示す第１の実施形態と同様であるため、ここではその説明を省略する。
本実施形態において、エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果をメイン制御部１０に送信する。そして、メイン制御部１０は、エンベデッドコントローラ３１から比較結果を取得し、取得した比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。
【００７９】
次に、図面を参照して、本実施形態によるノートＰＣ１の動作について説明する。
図７は、本実施形態におけるエンベデッドコントローラ３１によるダイジェスト値の計算処理の一例を示すフローチャートである。
【００８０】
図７に示すように、エンベデッドコントローラ３１に電源が供給されて動作を開始し、ステップＳ４０１からステップＳ４０４までの処理は、上述した図３に示すステップＳ１０１からステップＳ１０４までの処理と同様であるため、ここではその説明を省略する。
【００８１】
ステップＳ１０４において、ＢＩＯＳのプログラムデータのダイジェスト値を計算した後、エンベデッドコントローラ３１は、ダイジェスト値の比較処理を実行する（ステップＳ４０５）。エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したダイジェスト値と、ＢＩＯＳメモリ３２が記憶する正当なダイジェスト値とを比較する。エンベデッドコントローラ３１は、当該比較の結果、ダイジェスト計算部４０が計算したダイジェスト値と、ＢＩＯＳメモリ３２が記憶する正当なダイジェスト値とが一致するか否かの比較結果を生成する。
【００８２】
次に、エンベデッドコントローラ３１は、ダイジェスト値の比較結果の送信要求を受信したか否かを判定する（ステップＳ４０６）。エンベデッドコントローラ３１は、メイン制御部１０からダイジェスト値の比較結果の送信要求を受信した場合（ステップＳ４０６：ＹＥＳ）に、処理をステップＳ４０７に進める。また、エンベデッドコントローラ３１は、メイン制御部１０からダイジェスト値の比較結果の送信要求を受信していない場合（ステップＳ４０６：ＮＯ）に、処理をステップＳ４０６に戻す。
【００８３】
ステップＳ４０７において、エンベデッドコントローラ３１は、ダイジェスト値の比較結果をメイン制御部１０に送信する。すなわち、エンベデッドコントローラ３１は、上述したステップＳ４０５の比較処理の結果であるダイジェスト値の比較結果を、メイン制御部１０に送信する。ステップＳ４０７の処理後に、エンベデッドコントローラ３１は、処理をステップＳ４０３に戻す。
【００８４】
次に、図８及び図９を参照して、本実施形態によるノートＰＣ１の起動処理について説明する。
図８は、本実施形態におけるバッテリ３５から電力供給を受ける場合（第２モードの場合）のノートＰＣ１の起動処理の一例を示す図である。
【００８５】
図８に示すように、第２モードの場合、入力部３３によりノートＰＣ１の起動要求を受けると、電源ブロックＤＢ１及び電源ブロックＤＢ１に電力が供給される。図８に示すステップＳ５０１からステップＳ５０４までの処理は、上述した図4に示すステップＳ２０１からステップＳ２０４までの処理と同様であるため、ここではその説明を省略する。
【００８６】
ステップＳ５０５において、エンベデッドコントローラ３１は、ダイジェスト値の比較結果を生成する。すなわち、エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したダイジェスト値と、ＢＩＯＳメモリ３２が記憶する正当なダイジェスト値とを比較し、当該比較結果を生成する。
【００８７】
また、エンベデッドコントローラ３１がダイジェスト値を計算している間に、メイン制御部１０は、デバイス初期化を実行する（ステップＳ５０６）。メイン制御部１０は、エンベデッドコントローラ３１によるダイジェスト値の計算処理に並列して、ノートＰＣ１が備える各種デバイスの初期化処理を実行する。
【００８８】
次に、メイン制御部１０は、ダイジェスト値の比較結果の送信要求をエンベデッドコントローラ３１に送信する（ステップＳ５０７）。
次に、エンベデッドコントローラ３１は、メイン制御部１０からの比較結果の送信要求の受信に応じて、ダイジェスト値の比較結果をメイン制御部１０に送信する（ステップＳ５０８）。
【００８９】
次に、メイン制御部１０は、ダイジェスト値のチェック処理を実行する（ステップＳ５０９）。メイン制御部１０は、エンベデッドコントローラ３１から受信したダイジェスト値の比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。メイン制御部１０は、例えば、ＢＩＯＳのプログラムが正当である場合に、ＯＳの起動処理を含む通常処理（ステップＳ５１０）に進める。また、メイン制御部１０は、例えば、ＢＩＯＳのプログラムが正当でない場合に、処理を中断し、ＯＳの起動処理は行わず、システムをシャットダウンさせる。
次に、ステップＳ５１０において（ＢＩＯＳのプログラムが正当である場合）、メイン制御部１０は、ＯＳの起動処理を含む通常処理を実行して、ＯＳの起動を完了する。
【００９０】
次に、図９は、本実施形態における外部電源から電力供給を受ける場合（第１モードの場合）のノートＰＣ１の起動処理の一例を示す図である。
【００９１】
図９に示すように、第１モードの場合、まず、ＡＣ／ＤＣアダプタがノートＰＣ１に接続されることで、電源ブロックＤＢ１に電力が供給され、ステップＳ６０１及びステップＳ６０２の処理は、上述した図６に示すステップＳ３０１及びステップＳ３０２の処理と同様であるため、ここではその説明を省略する。
また、ステップＳ６０３の処理は、上述した図８に示すステップＳ５０５の処理と同様であるため、ここではその説明を省略する。
【００９２】
一方で、入力部３３によりノートＰＣ１の起動要求を受けると、電源ブロックＤＢ１に電力が供給され、メイン制御部１０が電源ＯＮの状態になって動作を開始し（ステップＳ６０４）、メイン制御部１０は、デバイス初期化を実行する（ステップＳ６０５）。
続く、ステップＳ６０６からステップＳ６０９までの処理は、上述した図８に示すステップＳ５０７からステップＳ５１０までの処理と同様であるため、ここではその説明を省略する。
【００９３】
以上説明したように、本実施形態によるノートＰＣ１では、エンベデッドコントローラ３１は、ダイジェスト計算部４０が計算したダイジェスト値と、予め得られている正当なダイジェスト値とを比較し、当該比較結果をメイン制御部１０に送信する。また、メイン制御部１０は、エンベデッドコントローラ３１から比較結果を取得し、取得した比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定する。
【００９４】
これにより、本実施形態によるノートＰＣ１は、ダイジェスト値の計算処理だけでなく、ダイジェスト値の比較処理を、メイン制御部１０の処理に並列して、エンベデッドコントローラ３１が行うため、さらに、ＯＳの起動時間をさらに短縮することができる。
【００９５】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、情報処理装置がノートＰＣ１である場合の例を説明したが、これに限定されるものではない。情報処理装置は、例えば、タブレット端末装置、デスクトップＰＣなどの他の装置であってもよい。
【００９６】
また、上記の各実施形態において、エンベデッドコントローラ３１（ダイジェスト計算部４０）がＢＩＯＳのプログラムデータのダイジェスト値を計算する例を説明したが、これに限定されるものではない。エンベデッドコントローラ３１（ダイジェスト計算部４０）は、例えば、ＢＩＯＳメモリ３２が記憶する他のプログラム又はデータのダイジェスト値や、ＢＩＯＳメモリ３２以外のデバイスが記憶するデータ又はプログラムのダイジェスト値、等を計算するようにしてもよい。
【００９７】
また、上記の各実施形態において、エンベデッドコントローラ３１（ダイジェスト計算部４０）は、ＢＩＯＳのプログラムデータの全体のダイジェスト値を計算する例を説明したが、これに限定されるものではない。エンベデッドコントローラ３１（ダイジェスト計算部４０）は、例えば、ＢＩＯＳの一部機能、又はフェイズ（階層）、所定の領域ごとに、ダイジェスト値を計算するようにしてもよい。
【００９８】
また、上記の各実施形態において、ノートＰＣ１は、ＯＳを起動する際に、ダイジェスト値を計算して、ＢＩＯＳのプログラムのインテグリティチェックを行う例を説明したが、これに限定されるものではない。ノートＰＣ１は、例えば、スタンバイモードやスリープモードなどの待機モード（例えば、Ｓ１状態〜Ｓ５状態）からの復帰の際や、ＯＳの起動後の各種処理において、エンベデッドコントローラ３１（ダイジェスト計算部４０）がダイジェスト値を計算してインテグリティチェックを行うようにしてもよい。
【００９９】
なお、上述したノートＰＣ１が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したノートＰＣ１が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したノートＰＣ１が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１００】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にノートＰＣ１が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１０１】
また、上述した機能の一部又は全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１０２】
１  ノートＰＣ
１０  メイン制御部
１１  ＣＰＵ
１２  メインメモリ
１３  ビデオサブシステム
１４  表示部
２１  チップセット
２２  ＨＤＤ
２３  ＵＳＢコネクタ
２４  オーディオシステム
２５  ＷＬＡＮカード
３１  エンベデッドコントローラ（ＥＣ）
３２  ＢＩＯＳメモリ
３３  入力部
３４  電源回路
３５  バッテリ
４０  ダイジェスト計算部
【要約】      （修正有）【課題】機能増加に伴うシステムの起動時間を短縮する。【解決手段】情報処理装置（ノートＰＣ）において、ＥＣ（エンベデッドコントローラ）３１は、メイン制御部１０からのダイジェスト値の計算要求の受信に応じて、ダイジェスト値を計算するＳ２０４。メイン制御部１０は、ＥＣ３１がダイジェスト値を計算している間に、並列して、デバイス初期化を実行するＳ２０５。ＥＣ３１は、メイン制御部１０からのダイジェスト値の送信要求の受信に応じて、ダイジェスト値をメイン制御部１０に送信するＳ２０７。メイン制御部１０は、ＥＣ３１から受信したダイジェスト値と、ＢＩＯＳメモリが記憶するダイジェスト値とを比較して、当該比較結果に基づいて、ＢＩＯＳのプログラムの正当性を判定するＳ２０８。【選択図】図４【図１】
0006808793.tif 000002
【図２】
0006808793.tif 000003
【図３】
0006808793.tif 000004
【図４】
0006808793.tif 000005
【図５】
0006808793.tif 000006
【図６】
0006808793.tif 000007
【図７】
0006808793.tif 000008
【図８】
0006808793.tif 000009
【図９】
0006808793.tif 000010