(57)【要約】  実施形態によれば、システムプログラムは、情報処理装置のブートモードが、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第１モード、またはＧＵＩＤパーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第２モードのいずれに設定されているかを判定する。前記システムプログラムは、前記ブートモードの判定結果に応じて、第１トラステッド・プラットフォーム・モジュールまたは第２トラステッド・プラットフォーム・モジュールをイネーブルにする。
2015181963.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
システムプログラムを格納する不揮発性メモリと、
第１トラステッド・プラットフォーム・モジュールと、
前記第１トラステッド・プラットフォーム・モジュールよりも新しいバージョンの第２トラステッド・プラットフォーム・モジュールとを具備し、
前記システムプログラムは、
情報処理装置のブートモードが、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第１モード、またはＧＵＩＤパーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第２モードのいずれに設定されているかを、前記ブートモードを示す設定値に基づいて判定し、
前記ブートモードの判定結果に応じて、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールをイネーブルにするための処理を実行して、前記ブートモードが前記第１モードである場合には前記第１トラステッド・プラットフォーム・モジュールをイネーブルにし、前記ブートモードが前記第２モードである場合には前記第２トラステッド・プラットフォーム・モジュールをイネーブルにする
機能を実行するように前記プロセッサを制御する、情報処理装置。
【請求項２】
前記システムプログラムは、さらに、
前回ブートされたオペレーティングシステムに関する情報に基づいて、前記前回ブートされたオペレーティングシステムが、前記第２トラステッド・プラットフォーム・モジュールをサポートする第１タイプのオペレーティングシステムであるか否かを判定し、
前記前回ブートされたオペレーティングシステムのタイプの判定結果に基づいて、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールをイネーブルにするための処理を実行して、前記前回ブートされたオペレーティングシステムが前記第１タイプのオペレーティングシステムである場合には前記第２トラステッド・プラットフォーム・モジュールをイネーブルにし、前記前回ブートされたオペレーティングシステムが前記第１タイプのオペレーティングシステムでない場合には前記第１トラステッド・プラットフォーム・モジュールをイネーブルにする
機能を実行するように前記プロセッサを制御する、請求項１記載の情報処理装置。
【請求項３】
前記前回ブートされたオペレーティングシステムに関する前記情報が存在する場合、前記システムプログラムは、前記ブートモードの判定結果よりも前記前回ブートされたオペレーティングシステムのタイプの判定結果を優先的に使用して、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールのいずれをイネーブルにすべきかを決定する機能を実行するように前記プロセッサを制御する、請求項２記載の情報処理装置。
【請求項４】
前記第１トラステッド・プラットフォーム・モジュールは第１ハードウェアデバイスによって実現されており、
前記第２トラステッド・プラットフォーム・モジュールはソフトウェアによって実現されており、
前記システムプログラムは、さらに、
前記情報処理装置内に前記第１ハードウェアデバイスが存在するか否かを判定し、
前記第１ハードウェアデバイスの有無の判定結果に基づいて、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールをイネーブルにするための処理を実行して、前記第１ハードウェアデバイスが存在する場合には前記第１トラステッド・プラットフォーム・モジュールをイネーブルにし、前記第１ハードウェアデバイスが存在しない場合には前記第２トラステッド・プラットフォーム・モジュールをイネーブルにする
機能を実行するように前記プロセッサを制御する、請求項１記載の情報処理装置。
【請求項５】
前記ブートモードを示す設定値が利用可能である場合、前記システムプログラムは、前記第１ハードウェアデバイスの有無の判定結果よりも前記ブートモードの判定結果を優先的に使用して、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールのいずれをイネーブルにすべきかを決定する機能を実行するように前記プロセッサを制御する、請求項４記載の情報処理装置。
【請求項６】
前記システムプログラムは、さらに、
トラステッド・プラットフォーム・モジュールバージョンの自動切り替え機能の有効または無効を設定するための第１設定項目と、利用すべきトラステッド・プラットフォーム・モジュールバージョンを手動で設定するための第２設定項目とを含むセットアップ画面を表示する機能を実行するように前記プロセッサを制御し、
前記第１設定項目の設定値が前記自動切り替え機能の有効を示す場合、前記ブートモードの判定結果に応じて、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールがイネーブルにされ、
前記第１設定項目の設定値が前記自動切り替え機能の無効を示す場合、前記第２設定項目の設定値に応じて、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールがイネーブルにされる、請求項１記載の情報処理装置。
【請求項７】
前記第１トラステッド・プラットフォーム・モジュールおよび前記第２トラステッド・プラットフォーム・モジュールの少なくとも一方はソフトウェアによって実現されている、請求項１記載の情報処理装置。
【請求項８】
前記第１トラステッド・プラットフォーム・モジュールをイネーブルにすることは、第１ハードウェアデバイスに第１ファームウェアを実行させることを含み、
前記第２トラステッド・プラットフォーム・モジュールをイネーブルにすることは、前記第１ハードウェアデバイスに前記第１ファームウェアとは異なる第２ファームウェアを実行させることを含む、請求項１記載の情報処理装置。
【請求項９】
情報処理装置のブートモードが、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第１モード、またはＧＵＩＤパーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第２モードのいずれに設定されているかを、前記ブートモードを示す設定値に基づいて判定することと、
前記ブートモードの判定結果に応じて、第１トラステッド・プラットフォーム・モジュールまたは前記第１トラステッド・プラットフォーム・モジュールよりも新しいバージョンの第２トラステッド・プラットフォーム・モジュールをイネーブルにするための処理を実行して、前記ブートモードが前記第１モードである場合には前記第１トラステッド・プラットフォーム・モジュールをイネーブルにし、前記ブートモードが前記第２モードである場合には前記第２トラステッド・プラットフォーム・モジュールをイネーブルにすることとを具備する、トラステッド・プラットフォーム・モジュールのバージョン切り替え方法。
【請求項１０】
コンピュータによって実行されるコンピュータプログラムであって、前記コンピュータプログラムは、
前記コンピュータのブートモードが、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第１モード、またはＧＵＩＤパーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第２モードのいずれに設定されているかを、前記ブートモードを示す設定値に基づいて判定することと、
前記ブートモードの判定結果に応じて、第１トラステッド・プラットフォーム・モジュールまたは前記第１トラステッド・プラットフォーム・モジュールよりも新しいバージョンの第２トラステッド・プラットフォーム・モジュールをイネーブルにするための処理を実行して、前記ブートモードが前記第１モードである場合には前記第１トラステッド・プラットフォーム・モジュールをイネーブルにし、前記ブートモードが前記第２モードである場合には前記第２トラステッド・プラットフォーム・モジュールをイネーブルにすること
の機能を実行するように前記コンピュータを制御するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記載される実施形態は、トラステッド・プラットフォーム・モジュール（ＴＰＭ）を利用するための技術に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、タブレットコンピュータといった種々の情報処理装置が開発されている。この種の情報処理装置においては、その装置をマルウェア等から守るためのセキュリティ機能の実現が求められる。【０００３】
このため、例えば、最近の情報処理装置においては、トラステッドコンピューティングを実現するための機能を実行するように構成されたトラステッド・プラットフォーム・モジュール（ＴＰＭ）が搭載し始められている。【０００４】
最近では、従来のＴＰＭよりも新たなバージョンのＴＰＭも開発されている。この新たなバージョンのＴＰＭの利用は、より高いセキュリティレベルの実現に有用である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２５０１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、現状では、新たなバージョンのＴＰＭをアクセス可能なオペレーティングシステムは、ある限られたタイプのオペレーティングシステムに限られている。したがって、情報処理装置の動作環境によっては、この新たなバージョンのＴＰＭを利用することができない場合がある。【０００７】
本発明の一形態の目的は、情報処理装置の動作環境に適したバージョンのトラステッド・プラットフォーム・モジュールを利用することができる情報処理装置およびトラステッド・プラットフォーム・モジュールのバージョン切り替え方法を提供することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、情報処理装置は、プロセッサと、システムプログラムを格納する不揮発性メモリと、第１トラステッド・プラットフォーム・モジュールと、前記第１トラステッド・プラットフォーム・モジュールよりも新しいバージョンの第２トラステッド・プラットフォーム・モジュールとを具備する。前記システムプログラムは、情報処理装置のブートモードが、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第１モード、またはＧＵＩＤパーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第２モードのいずれに設定されているかを、前記ブートモードを示す設定値に基づいて判定し、前記ブートモードの判定結果に応じて、前記第１トラステッド・プラットフォーム・モジュールまたは前記第２トラステッド・プラットフォーム・モジュールをイネーブルにするための処理を実行して、前記ブートモードが前記第１モードである場合には前記第１トラステッド・プラットフォーム・モジュールをイネーブルにし、前記ブートモードが前記第２モードである場合には前記第２トラステッド・プラットフォーム・モジュールをイネーブルにする、機能を実行するように前記プロセッサを制御する。
【図面の簡単な説明】
【０００９】
【図１】図１は実施形態に係る情報処理装置の外観を示す例示的な斜視図である。
【図２】図２は同実施形態の情報処理装置のシステム構成を示す例示的なブロック図である。
【図３】図３は同実施形態の情報処理装置のＢＩＯＳセットアップによって設定または変更可能な幾つかの設定項目を示す例示的な図である。
【図４】図４は同実施形態の情報処理装置によって実行されるトラステッド・プラットフォーム・モジュール（ＴＰＭ）バージョン切り替え処理の手順を示す例示的なフローチャートである。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、例えば、デスクトップ型パーソナルコンピュータ、ノートブック型パーソナルコンピュータ、タブレットコンピュータ、または他の各種情報処理装置として実現されうる。以下では、この情報処理装置が、ノートブック型パーソナルコンピュータ１０として実現されている場合を想定する。
【００１１】
図１は、ディスプレイユニットを開いた状態におけるコンピュータ１０を正面側から見た斜視図である。このコンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とを備える。ディスプレイユニット１２には、液晶表示装置（ＬＣＤ）３１のような表示装置が組み込まれている。さらに、ディスプレイユニット１２の上端部には、カメラ（Ｗｅｂカメラ）３２が配置されている。
【００１２】
ディスプレイユニット１２は、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面がディスプレイユニット１２で覆われる閉塞位置との間を回動自在にコンピュータ本体１１に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有している。この筐体の上面には、キーボード１３、タッチパッド１４、指紋センサ１５、本コンピュータ１０をパワーオン／オフするための電源スイッチ１６、および幾つかの機能ボタン１７、等が配置されている。さらに、コンピュータ本体１１には、幾つかのＵＳＢポート２２が設けられている。
【００１３】
図２は、本コンピュータ１０のシステム構成を示す。本コンピュータ１０は、ＣＰＵ１１１、システムコントローラ１１２、主メモリ１１３、グラフィクスプロセッシングユニット（ＧＰＵ）１１４、ＢＩＯＳ−ＲＯＭ１１６、ストレージデバイス（ハードディスクドライブ（ＨＤＤ）またはソリッドステートドライブ（ＳＳＤ））１１７、光ディスクドライブ（ＯＤＤ）１１８、ＢＴ（Ｂｌｕｅｔｏｏｔｈ（登録商標））モジュール１２０、無線ＬＡＮモジュール１２１、エンベデッドコントローラ（ＥＣ）１３０、２種類のトラステッド・プラットフォーム・モジュール（ＴＰＭ）１４１、１４２、等を備えている。
【００１４】
ＣＰＵ１１１は、ストレージデバイス１１７から主メモリ１１３にロードされる様々なプログラムを実行するように構成されたプロセッサである。様々なプログラムの例は、オペレーティングシステム（ＯＳ）２０１、および様々なアプリケーションプログラムを含む。
【００１５】
また、ＣＰＵ１１１は、不揮発性メモリであるＢＩＯＳ−ＲＯＭ１１６に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳはハードウェア制御のためのシステムプログラムである。このシステムプログラム（ＢＩＯＳ）は、オペレーティングシステム（ＯＳ）２０１とハードウェアとの間のインタフェースを行う。このＢＩＯＳは、いわゆるレガシーＢＩＯＳの機能と、Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）の機能とを兼ね備えたＵＥＦＩ  ＢＩＯＳとして実現されている。
【００１６】
トラステッド・プラットフォーム・モジュール（ＴＰＭ）１４１は、ＴＰＭ仕様（例えばＴＰＭバージョン１．２）で定義された様々なセキュリティ機能を実行するように構成されている。トラステッド・プラットフォーム・モジュール（ＴＰＭ）１４２は、トラステッド・プラットフォーム・モジュール（ＴＰＭ）１４１よりも新しいＴＰＭバージョン、例えばＴＰＭバージョン２．０で定義された様々なセキュリティ機能を実行するように構成されている。ＴＰＭバージョン２．０においては、ＴＰＭバージョン１．２よりも高いセキュリティレベルを実現するための機能が追加されている。
【００１７】
トラステッド・プラットフォーム・モジュール（ＴＰＭ）１４１およびトラステッド・プラットフォーム・モジュール（ＴＰＭ）１４２の各々は、ハードウェアデバイスであるセキュリティーチップ（ハードウェアＴＰＭ）であってもよい。
【００１８】
あるいは、ＴＰＭ１４１、１４２の各々は、プロセッサ上で走るソフトウェアによって実現されたソフトウェアＴＰＭであってもよい。ソフトウェアＴＰＭを実現する技術の例は、Ｉｎｔｅｌ（登録商標）Ｐｌａｔｆｏｒｍ  Ｔｒｕｓｔ  Ｔｅｃｈｎｏｌｏｇｙを含む。
【００１９】
本コンピュータ１０は、これら新旧２つのバージョンのＴＰＭ（ＴＰＭ１．２、ＴＰＭ２．０）の双方をサポートしている。したがって、ＴＰＭ２．０をサポートしておりＴＰＭ２．０をシステム要件として必要とする第１タイプのオペレーティングシステムのみならず、ＴＰＭ１．２のみをサポートしておりＴＰＭ２．０を利用することができない別のタイプのオペレーティングシステムに対しても、セキュリティ機能を有するシステム環境を提供することができる。
【００２０】
上述の別のタイプのオペレーティングシステムの例は、例えば、Ｗｉｎｄｏｗｓ７（登録商標）を含む。第１タイプのオペレーティングシステムの例は、Ｗｉｎｄｏｗｓ８（登録商標）以降のオペレーティングシステム、例えば、Ｗｉｎｄｏｗｓ８（登録商標）、Ｗｉｎｄｏｗｓ８．１（登録商標）、等を含む。
【００２１】
Ｗｉｎｄｏｗｓ８／８．１は、ＴＰＭ２．０を必要とするオペレーティングシステムであり、ＴＰＭ２．０ベースのセキュリティ機能を実行するように構成されている。Ｗｉｎｄｏｗｓ８／８．１は、ＴＰＭ２．０をアクセスするためのデバイスドライバを備えており、このデバイスドライバを介してＴＰＭ２．０の機能を利用することができる。
【００２２】
したがって、Ｗｉｎｄｏｗｓ８／８．１は、例えば、Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）の機能とＴＰＭ２．０のセキュリティ機能とを使用して、より安全性の高い機能を実行することができる。
【００２３】
一方、Ｗｉｎｄｏｗｓ７に対してはＴＰＭ２．０をアクセスするためのデバイスドライバは提供されていないため、Ｗｉｎｄｏｗｓ７は、ＴＰＭ２．０の機能を利用することができない。
【００２４】
ＴＰＭ１．２とＴＰＭ２．０の双方をコンピュータ１０上に実装する方法としては、以下の方法を使用することができる。
【００２５】
（１）ＴＰＭ１．２とＴＰＭ２．０の双方をハードウェアＴＰＭ（ハードウェアデバイス）によって実装する方法
（２）ＴＰＭ１．２をハードウェアＴＰＭによって実装し、ＴＰＭ２．０をソフトウェアＴＰＭによって実装する方法
（３）ＴＰＭ１．２をソフトウェアＴＰＭによって実装し、ＴＰＭ２．０をハードウェアＴＰＭによって実装する方法
（４）ＴＰＭ１．２とＴＰＭ２．０の双方をソフトウェアＴＰＭによって実装する方法
あるいは、１つのハードウェアデバイスによってＴＰＭ１．２とＴＰＭ２．０の双方を実現してもよい。この場合、このハードウェアデバイスによって実行されるべきファームウェア、つまりこのハードウェアデバイス内の不揮発性メモリに格納されているファームウェアを、ＴＰＭ１．２に対応する機能を実行するための第１ファームウェアとＴＰＭ２．０に対応する機能を実行するための第２ファームウェアとの間で切り替える方法を使用しても良い。例えば、ＢＩＯＳは、ハードウェアデバイス内の不揮発性メモリに格納されている第１ファームウェアを第２ファームウェアに書き換えても良い。これにより、ＢＩＯＳは、ＴＰＭ２．０をイーブルにすることができる。あるいは、ＢＩＯＳは、ハードウェアデバイス内の不揮発性メモリに格納されている第２ファームウェアを第１ファームウェアに書き換えても良い。これにより、ＢＩＯＳは、ＴＰＭ１．２をイーブルにすることができる。第１ファームウェアおよび第２ファームウェアは、ＢＩＯＳ−ＲＯＭ１１６内に格納されていても良い。ハードウェアデバイスをＴＰＭ１．２として動作させる場合には、ＢＩＯＳは、ＢＩＯＳ−ＲＯＭ１１６内の第１ファームウェアをハードウェアデバイス内の不揮発性メモリにライトしてもよい。ハードウェアデバイスをＴＰＭ２．０として動作させる場合には、ＢＩＯＳは、ＢＩＯＳ−ＲＯＭ１１６内の第２ファームウェアをハードウェアデバイス内の不揮発性メモリにライトしてもよい。
【００２６】
あるいは、ハードウェアデバイス内の不揮発性メモリに第１ファームウェアおよび第２ファームウェアの双方が予め格納されていても良い。この場合には、ＢＩＯＳは、実行すべきファームウェアをハードウェアデバイスに指示することによってこのハードウェアデバイスをＴＰＭ１．２またはＴＰＭ２．０として機能させることができる。
【００２７】
上述のＢＩＯＳは、オペレーティングシステムをブートするための２種類のブートモード（第１モード、第２モード）をサポートしている。
【００２８】
第１モードは、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするためのブートモードである。この第１モードは、Ｃｏｍｐａｔｉｂｉｌｉｔｙ  Ｓｕｐｐｏｒｔ Ｍｏｄｕｌｅ（ＣＳＭ）ブート、またはレガシーブートと称される。
【００２９】
第２モードは、ＧＵＩＤ（Ｇｌｏｂａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）パーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするためのブートモードである。この第２モードは、ＵＥＦＩブートと称される。このＵＥＦＩブートを使用することにより様々なＵＥＦＩ機能を利用することが可能となる。ＵＥＦＩ機能の例は、セキュアブート等を含む。ＵＥＦＩのセキュアブートを使用することにより、安全性の高いブートプロセスを実行することができる。
【００３０】
コンピュータ１０において第１モード（ＣＳＭブート）または第２モード（ＵＥＦＩブート）のどちらのブートモードを使用するかは、ＢＩＯＳ（ＵＥＦＩ  ＢＩＯＳ）によって提供されるセットアップ画面を使用して指定することができる。
【００３１】
一般に、Ｗｉｎｄｏｗｓ７が使用されている動作環境においてはＣＳＭブートが使用され、Ｗｉｎｄｏｗｓ８／８．１が使用されている動作環境においてはＵＥＦＩブートが使用されることが多い。
【００３２】
すなわち、通常、Ｗｉｎｄｏｗｓ７は、ＣＳＭブートを使用してストレージデバイス１１７にインストールされる。この場合、Ｗｉｎｄｏｗｓ７のインストールプロセスにおいては、ストレージデバイス１１７はマスターブートレコード（ＭＢＲ）で初期化される。マスターブートレコード（ＭＢＲ）は、ブートローダと、パーティションテーブルとを含む。パーティションテーブルは、ストレージデバイス１１７内の各パーティションの位置を示す。パーティションテーブルは、ブートすべきパーティション（アクティブパーティション）を示すブートフラグも含む。Ｗｉｎｄｏｗｓ７は、マスターブートレコード（ＭＢＲ）によって管理されるあるパーティション内にインストールされる。したがって、通常、Ｗｉｎｄｏｗｓ７が使用されているコンピュータ環境におけるブートモードは、ＣＳＭブートである。
【００３３】
例えば、本コンピュータ１０がＷｉｎｄｏｗｓ７がプリインストールされた状態で工場出荷される場合には、本コンピュータ１０のデフォルトのブートモードはＣＳＭブートであってもよい。つまり、本コンピュータ１０は、ブートモードがＣＳＭブートに設定された状態で工場出荷されてもよい。
【００３４】
一方、Ｗｉｎｄｏｗｓ８／８．１は、セキュアブートのようなＵＥＦＩの機能を必要とする。したがって、ＯＳ２０１としてＷｉｎｄｏｗｓ８／８．１が使用される場合には、通常、このＯＳ２０１は、ＵＥＦＩブートを使用してストレージデバイス１１７にインストールされる。この場合、Ｗｉｎｄｏｗｓ８／８．１のインストールプロセスにおいては、ストレージデバイス１１７はＧＰＴで初期化される。ＧＰＴで初期化されたストレージデバイス１１７においては、複数のＧＰＴエントリが設定される。各ＧＰＴエントリは、対応するパーティションの先頭位置および終了位置を示す。ストレージデバイス１１７においては、ＵＥＦＩ  ＯＳローダ等を格納するためのＵＥＦＩシステムパーティションと、オペレーティングシステムを格納するためのＯＳパーティション、等が作成される。Ｗｉｎｄｏｗｓ８／８．１は、ＯＳパーティション内にインストールされる。したがって、通常、Ｗｉｎｄｏｗｓ８／８．１が使用されている動作環境におけるブートモードは、ＵＥＦＩブートである。
【００３５】
例えば、本コンピュータ１０がＷｉｎｄｏｗｓ８／８．１がプリインストールされた状態で工場出荷される場合には、本コンピュータ１０のデフォルトのブートモードはＵＥＦＩブートであってもよい。つまり、本コンピュータ１０は、ブートモードがＵＥＦＩブートに設定された状態で工場出荷されてもよい。
【００３６】
さらに、ＢＩＯＳは、利用すべきＴＰＭバージョンを手動で設定（変更）する機能を有している。利用すべきＴＰＭバージョンの手動設定は、ＢＩＯＳによって提供されるセットアップ画面を用いて実現することができる。
【００３７】
しかし、ＢＩＯＳのセットアップ画面を用いた手動設定は、ユーザにＢＩＯＳセットアップに関する知識と、設定（変更）のための煩わしい操作とを強要することになる可能性がある。
【００３８】
そこで、本実施形態では、ＢＩＯＳは、ＴＰＭバージョンの自動切り替え機能も有している。この自動切り替え機能は、利用すべきＴＰＭバージョンをコンピュータ１０の現在の動作環境に応じて自動的に切り替える機能である。
【００３９】
本実施形態では、利用すべきＴＰＭバージョンの切り替えは、以下の自動切り替え条件の少なくとも１つを使用して、実行することができる。
【００４０】
（１）ブートモード
（２）ＯＳタイプ
（３）ハードウェアＴＰＭの有無
まず、ブートモードを自動切り替え条件として使用する場合について説明する。
【００４１】
上述したように、一般に、上述の別のタイプのＯＳ（例えば、Ｗｉｎｄｏｗｓ７）が使用されている動作環境においてはＣＳＭブートが使用され、上述の第１タイプのＯＳ（例えば、Ｗｉｎｄｏｗｓ８／８．１）が使用されている動作環境においてはＵＥＦＩブートが使用される。このことを利用し、自動切り替え機能は、ブートモード（ＣＳＭブート／ＵＥＦＩブート）に応じて、利用すべきＴＰＭバージョンを自動的に切り替えることができる。より詳しくは、コンピュータ１０がパワーオンされた時、ＢＩＯＳは、ブートモードを示すＢＩＯＳセットアップ内の設定値に基づいて、ブートモードがＣＳＭブートまたはＵＥＦＩブートのいずれに設定されているかを判定する。そして、ＢＩＯＳは、ブートモードの判定結果に応じて、ＴＰＭ１．２（第１トラステッド・プラットフォーム・モジュール）またはＴＰＭ２．０（第２トラステッド・プラットフォーム・モジュール）をイネーブルにするための処理を実行する。
【００４２】
ブートモードがＣＳＭブートに設定されているならば、ＢＩＯＳは、ＴＰＭ１．２（第１トラステッド・プラットフォーム・モジュール）をイネーブルにする。一方、ブートモードがＵＥＵＩブートであれば、ＢＩＯＳは、ＴＰＭ２．０（第２トラステッド・プラットフォーム・モジュール）をイネーブルにする。
【００４３】
これにより、Ｗｉｎｄｏｗｓ７がブートされる場合にはＴＰＭ１．２を自動的に動作させることができ、またＷｉｎｄｏｗｓ８／８．１がブートされる場合にはＴＰＭ２．０を自動的に動作させることができる。
【００４４】
次に、ＯＳタイプを自動切り替え条件として使用する場合について説明する。
【００４５】
オペレーティングシステムがブートされた後、ＢＩＯＳは、このオペレーティングシステムに関する情報（このオペレーティングシステムのバージョン情報）をこのオペレーティングシステムから取得し。この取得したＯＳ情報をＢＩＯＳ−ＲＯＭ１１６に格納することができる。したがって、ＯＳ情報がＢＩＯＳ−ＲＯＭ１１６に存在するならば、コンピュータ１０がパワーオンされた時に、ＢＩＯＳは、ＢＩＯＳ−ＲＯＭ１１６に格納されているＯＳ情報、つまり前回ブートされたオペレーティングシステムに関する情報に基づいて、前回ブートされたオペレーティングシステムのタイプを知ることができる。一般に、今回ブートされるべきオペレーティングシステムのタイプは、前回ブートされたオペレーティングシステムのタイプと同じである場合が多い。このことを利用し、自動切り替え機能は、前回ブートされたオペレーティングシステムのタイプに応じて、利用すべきＴＰＭバージョンを自動的に切り替えることができる。
【００４６】
より詳しくは、コンピュータ１０がパワーオンされた時、ＢＩＯＳは、前回ブートされたオペレーティングシステムが、ＴＰＭ２．０をサポートする上述の第１タイプのオペレーティングシステムであるか否かを判定する。そして、ＢＩＯＳは、前回ブートされたオペレーティングシステムのタイプの判定結果に応じて、ＴＰＭ１．２（第１トラステッド・プラットフォーム・モジュール）またはＴＰＭ２．０（第２トラステッド・プラットフォーム・モジュール）をイネーブルにするための処理を実行する。
【００４７】
前回ブートされたオペレーティングシステムが、上述の第１タイプのオペレーティングシステムではないならば、つまりＴＰＭ２．０をサポートしない上述の別のタイプのオペレーティングシステムであるならば、ＢＩＯＳは、ＴＰＭ１．２（第１トラステッド・プラットフォーム・モジュール）をイネーブルにする。一方、前回ブートされたオペレーティングシステムが、上述の第１タイプのオペレーティングシステムであるならば、ＢＩＯＳは、ＴＰＭ２．０（第２トラステッド・プラットフォーム・モジュール）をイネーブルにする。
【００４８】
このようにして、ＯＳ情報が存在する環境においては、前回ブートされたオペレーティングシステムに応じて、ＴＰＭ１．２またはＴＰＭ２．０が自動的にイネーブルにされる。
【００４９】
次に、ハードウェアＴＰＭの有無を自動切り替え条件として使用する場合について説明する。
【００５０】
ハードウェアＴＰＭの有無を自動切り替え条件として使用するという方法は、例えば、ＴＰＭ１．２がハードウェアＴＰＭによって実現されており且つＴＰＭ２．０がソフトウェアＴＰＭによって実現されているシステム構成に好適である。コンピュータ１０にＷｉｎｄｏｗｓ７がプリインストールされた場合には、このコンピュータ１０はＴＰＭ１．２のハードウェアＴＰＭを搭載した状態で工場出荷されてもよい。一方、コンピュータ１０にＷｉｎｄｏｗｓ８／８．１がプリインストールされた場合には、このコンピュータ１０は、そのコストを削減するために、ＴＰＭ１．２のハードウェアＴＰＭを搭載しない状態で工場出荷されてもよい。このことを利用して、自動切り替え機能は、ハードウェアＴＰＭの有無に応じて、利用すべきＴＰＭバージョンを自動的に切り替えることができる。
【００５１】
より詳しくは、コンピュータ１０がパワーオンされた時、ＢＩＯＳは、ハードウェアＴＰＭ（ＴＰＭ１．２を実現する第１ハードウェアデバイス）が存在するか否かを判定する。そして、ＢＩＯＳは、ハードウェアＴＰＭが存在するか否かの判定結果に応じて、ＴＰＭ１．２（ハードウェアＴＰＭ）またはＴＰＭ２．０（ソフトウェアＴＰＭ）をイネーブルにするための処理を実行する。
【００５２】
ハードウェアＴＰＭが存在するならば、ＢＩＯＳは、ＴＰＭ１．２（ハードウェアＴＰＭ）をイネーブルにする。一方、ハードウェアＴＰＭが存在しないならば、ＢＩＯＳは、ＴＰＭ２．０（ソフトウェアＴＰＭ）をイネーブルにする。
【００５３】
このようにして、ハードウェアＴＰＭが存在するシステム構成（Ｗｉｎｄｏｗｓ７がプレインストールされているシステム構成）である場合にはＴＰＭ１．２を自動的に動作させることができ、またハードウェアＴＰＭが存在しないシステム構成（Ｗｉｎｄｏｗｓ８／８．１がプレインストールされているシステム構成）である場合にはＴＰＭ２．０を自動的に動作させることができる。
【００５４】
上述の「ブートモード」、「ＯＳタイプ」、「ハードウェアＴＰＭの有無」の３つの自動切り替え条件の内、「ブートモード」と「ＯＳタイプ」は、コンピュータ１０で使用されるオペレーティングシステムがコンピュータ１０の工場出荷後にユーザによって変更されることに対処することができる。
【００５５】
また、「ブートモード」を自動切り替え条件として使用する方法は、コンピュータ１０の初回起動時においてもコンピュータ１０の動作環境に適したＴＰＭバージョンを動作させることができる。
【００５６】
なお、ＯＳ情報が既に存在する場合においては、「ＯＳタイプ」を自動切り替え条件として使用する方法は、「ブートモード」を自動切り替え条件として使用する方法よりもコンピュータ１０の動作環境に適したＴＰＭバージョンを精度良く選択できる可能性がある。なぜなら、Ｗｉｎｄｏｗｓ７がＵＥＦＩブートでブートされる場合もありえるためである。
【００５７】
本実施形態では、３つの自動切り替え条件から選択された１以上の自動切り替え条件の組み合わせを使用して、上述の自動切り替え機能を実行することができる。
【００５８】
図３は、ＢＩＯＳセットアップによって設定または変更可能な幾つかの設定項目を示す。
【００５９】
ＢＩＯＳによって表示されるセットアップ画面３００は、「ＴＰＭ  Ｖｅｒｓｉｏｎ切り替え」、「ＴＰＭ  Ｖｅｒｓｉｏｎ」、「Ｂｏｏｔ  Ｍｏｄｅ」の設定項目を表示することができる。
【００６０】
設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ切り替え」は、利用すべきＴＰＭバージョンを自動的に切り替える自動切り替え機能を有効または無効に設定するための設定項目である。ユーザは、キーボードを操作することによって、「ＴＰＭ  Ｖｅｒｓｉｏｎ切り替え」を「有効（自動）」または「無効（手動）」を設定することができる。ユーザによって「有効（自動）」が選択された場合には、利用すべきＴＰＭバージョンは自動で切り替えられる。ユーザによって「無効（手動）」が選択された場合には、利用すべきＴＰＭバージョンは手動で切り替えることが必要となる。
【００６１】
ユーザによって「有効（自動）」が選択された場合には、自動切り替え条件をユーザに設定または変更させるための画面３０２がセットアップ画面３００上にポップアップされてもよい。ユーザは、「ブートモード」、「ＯＳタイプ」、「ハードウェアＴＰＭの有無」の内の少なくとも１つを自動切り替え条件として有効することができる。
【００６２】
２つ以上の自動切り替え条件が有効な場合には、より優先度の高い自動切り替え条件に基づいて決定されたＴＰＭバージョンがイネーブルにされる。例えば、「ＯＳタイプ」の優先度が最も高く、「ブートモード」の優先度が２番目に高く、「ハードウェアＴＰＭの有無」の優先度が最も低くても良い。
【００６３】
なお、これら自動切り替え条件の優先順位はユーザが変更できるようにしても良い。
【００６４】
図４のフローチャートは、ＢＩＯＳ（ＵＥＦＩ  ＢＩＯＳ）によって実行されるＴＰＭバージョン切り替え処理の手順を示す。
【００６５】
コンピュータ１０がパワーオンされた時、まず、ＢＩＯＳが実行される。ＢＩＯＳは、設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ切り替え」に対応する設定値に基づいて、ＴＰＭバージョンの自動切り替え機能が有効であるか否かを判定する（ステップＳ１００）。
【００６６】
ＴＰＭバージョンの自動切り替え機能が有効であるならば（ステップＳ１００のＹＥＳ）、ＢＩＯＳは、自動切り替え条件を示す設定値に基づいて、「ハードウェアＴＰＭ（ＨＷ  ＴＰＭ）の有無」が自動切り替え条件として有効であるか否かを判定する（ステップＳ１０２）。
【００６７】
「ＨＷ  ＴＰＭの有無」が自動切り替え条件として有効であるならば、ＢＩＯＳは、コンピュータ１０内にハードウェアＴＰＭが存在するか否かを判定する（ステップＳ１０４）。そして、ＢＩＯＳは、ハードウェアＴＰＭが存在するか否かの判定結果に応じて、ＴＰＭ１．２（ハードウェアＴＰＭ）またはＴＰＭ２．０（ソフトウェアＴＰＭ）をイネーブルにするための処理を実行する。この場合、実際にＴＰＭ１．２（ハードウェアＴＰＭ）またはＴＰＭ２．０（ソフトウェアＴＰＭ）をイネーブルにしてもよいが、動作させるべきＴＰＭバージョンを表すための変数に、ＴＰＭ１．２またはＴＰＭ２．０のいずれかを示す値を代入してもよい。以下では、この変数にＴＰＭ１．２またはＴＰＭ２．０を示す値を代入し、ＴＰＭバージョン切り替え処理の最後の段階で、この変数に基づいて、ＴＰＭ１．２またはＴＰＭ２．０を実際にイネーブルにする処理を実行する場合を想定する。
【００６８】
ハードウェアＴＰＭが存在するならば、ＢＩＯＳは、変数にＴＰＭ１．２を示す値を代入する（ステップＳ１０６）。一方、ハードウェアＴＰＭが存在しないならば、ＢＩＯＳは、この変数にＴＰＭ２．０を示す値を代入する（ステップＳ１０７）。
【００６９】
「ＨＷ  ＴＰＭの有無」が自動切り替え条件として有効でないならば、ステップＳ１０４、Ｓ１０６、Ｓ１０７の処理は実行されない。
【００７０】
次に、ＢＩＯＳは、自動切り替え条件を示す設定値に基づいて、「ブートモード」が自動切り替え条件として有効であるか否かを判定する（ステップＳ１０８）。
【００７１】
「ブートモード」が自動切り替え条件として有効であるならば、ＢＩＯＳは、「ＨＷ  ＴＰＭの有無」の判定結果よりも「ブートモード」の判定結果を優先的に使用して、ＴＰＭ１．２またはＴＰＭ２．０のいずれをイネーブルにすべきかを決定する。
【００７２】
すなわち、ＢＩＯＳは、まず、ＢＩＯＳ−ＲＯＭ１１６から設定項目「Ｂｏｏｔ  Ｍｏｄｅ」に対応する設定値（Ｂｏｏｔ  Ｍｏｄｅ情報）をリードする。この設定値のリードが成功したならば、ＢＩＯＳは、この設定値に基づいて、現在のブートモードがＵＥＦＩブートまたはＣＳＭブートのいずれに設定されているかを判定する（ステップＳ１１０）。現在のブートモードがＣＳＭブートに設定されているならば、ＢＩＯＳは、上述の変数にＴＰＭ１．２を示す値を代入する（ステップＳ１１２）。一方、現在のブートモードがＵＥＦＩブートに設定されているならば、ＢＩＯＳは、変数にＴＰＭ２．０を示す値を代入する（ステップＳ１１４）。
【００７３】
「ブートモード」が自動切り替え条件として有効ではないか、あるいは上述のＢｏｏｔ  Ｍｏｄｅ情報のリードが失敗した場合には、ステップＳ１１０、Ｓ１１２、Ｓ１１４の処理は実行されない。
【００７４】
次に、ＢＩＯＳは、自動切り替え条件を示す設定値に基づいて、「ＯＳタイプ」が自動切り替え条件として有効であるか否かを判定する（ステップＳ１１６）。
【００７５】
「ＯＳタイプ」が自動切り替え条件として有効であるならば、ＢＩＯＳは、ＯＳ情報が存在することを条件に、「ＨＷ  ＴＰＭの有無」の判定結果および「ブートモード」の判定結果よりも「ＯＳタイプ」の判定結果を優先的に使用して、ＴＰＭ１．２またはＴＰＭ２．０のいずれをイネーブルにすべきかを決定する。
【００７６】
すなわち、ＢＩＯＳは、まず、前回ブートされたＯＳを示すＯＳ情報が存在するか否かを判定する（ステップＳ１１８）。ＯＳ情報が存在するならば、このＯＳ情報に基づいて、ＢＩＯＳは、前回ブートされたＯＳが上述の第１タイプのＯＳ（Ｗｉｎｄｏｗｓ８以降のＯＳ）であるか否かを判定する（ステップＳ１２０）。前回ブートされたＯＳが上述の第１タイプのＯＳではないならば、ＢＩＯＳは、上述の変数にＴＰＭ１．２を示す値を代入する（ステップＳ１２２）。一方、前回ブートされたＯＳが上述の第１タイプのＯＳであるならば、ＢＩＯＳは、変数にＴＰＭ２．０を示す値を代入する（ステップＳ１２４）。
【００７７】
「ＯＳタイプ」が自動切り替え条件として有効ではないか、あるいは上述のＯＳ情報が存在しない場合には、ステップＳ１２０、Ｓ１２２、Ｓ１２４の処理は実行されない。
【００７８】
この後、ＢＩＯＳは、上述の変数の現在の値に応じて、ＴＰＭ１．２またはＴＰＭ２．０のいずれかを実際にイネーブルにするための処理を実行する。すなわち、ＢＩＯＳは、まず、上述の変数がＴＰＭ１．２またはＴＰＭ２．０のいずれを示すかを判定する（ステップＳ１２６）。
【００７９】
変数がＴＰＭ２．０を示すならば、ＢＩＯＳは、ＴＰＭ１．２をディスエーブルにし（ステップＳ１２８）、そしてＴＰＭ２．０をイネーブルにする（ステップＳ１３０）。さらに、ＢＩＯＳは、イネーブルにされた現在のＴＰＭバージョンを示す値を設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」の設定値に反映させる（ステップＳ１３６）。ここでは、ＴＰＭ２．０がイネーブルにされたので、ＴＰＭ２．０が設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」の設定値に反映される。ステップＳ１３６の処理によって、ＢＩＯＳセットアップ画面に表示される設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」の値を、実際にイネーブルにされたＴＰＭバージョンと一致させることができる。
【００８０】
変数がＴＰＭ１．２を示すならば、ＢＩＯＳは、ＴＰＭ２．０をディスエーブルにし（ステップＳ１３２）、そしてＴＰＭ１．２をイネーブルにする（ステップＳ１３４）。さらに、ＢＩＯＳは、イネーブルにされた現在のＴＰＭバージョンを示す値を設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」の設定値に反映させる（ステップＳ１３６）。ここでは、ＴＰＭ１．２がイネーブルにされたので、ＴＰＭ１．２が設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」の設定値に反映される。ステップＳ１３６の処理によって、ＢＩＯＳセットアップ画面に表示される設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」の値を、実際にイネーブルにされたＴＰＭバージョンと一致させることができる。
【００８１】
ＴＰＭバージョンの自動切り替え機能が無効（手動設定）であるならば（ステップＳ１００のＮＯ）、ＢＩＯＳは、設定項目「ＴＰＭ  Ｖｅｒｓｉｏｎ」に対応する設定値に基づいて、利用すべきＴＰＭバージョンがＴＰＭ２．０またはＴＰＭ１．２のいずれに設定されているかを判定する（ステップＳ１３８）。
【００８２】
利用すべきＴＰＭバージョンがＴＰＭ２．０に設定されているならば、ＢＩＯＳは、ＴＰＭ１．２をディスエーブルにし（ステップＳ１４０）、そしてＴＰＭ２．０をイネーブルにする（ステップＳ１４２）。
【００８３】
利用すべきＴＰＭバージョンがＴＰＭ１．２に設定されているならば、ＢＩＯＳは、ＴＰＭ２．０をディスエーブルにし（ステップＳ１４４）、そしてＴＰＭ１．２をイネーブルにする（ステップＳ１４６）。
【００８４】
このようにして、コンピュータ１０のパワーオン時には、ＯＳのブートに先だって、ＴＰＭ１．２またはＴＰＭ２．０のいずれかがイネーブルにされる。
【００８５】
そして、ＴＰＭ１．２またはＴＰＭ２．０のいずれかがイネーブルにされた後に、設定項目「Ｂｏｏｔ  Ｍｏｄｅ」に対応する設定値に従って、ＯＳをブートするためのプロセス（ＣＳＭブートまたはＵＥＦＩブート）が実行される。ＣＳＭブートにおいては、ＢＩＯＳからＭＢＲ内のブートローダに制御が渡される。一方、ＵＥＦＩブートにおいては、ＢＩＯＳからＵＥＦＩシステムパーティション内のＵＥＦＩ  ＯＳローダに制御が渡される。
【００８６】
図４で説明したＴＰＭバージョン切り替え処理の手順によれば、有効にされた自動切り替え条件（「ＯＳタイプ」、「ブートモード」、または「ハードウェアＴＰＭの有無」の少なくとも１つ）に基づいて、ＴＰＭ１．２またはＴＰＭ２．０のいずれをイネーブルにすべきかが自動的に決定される。
【００８７】
なお、「ＯＳタイプ」、「ブートモード」、または「ハードウェアＴＰＭの有無」の少なくとも１つは、デフォルトの自動切り替え条件として予め有効に設定されていても良い。例えば、「ブートモード」がデフォルトの自動切り替え条件として予め有効に設定されていても良い。あるいは、例えば、「ブートモード」と「ＯＳタイプ」の両方が、デフォルトの自動切り替え条件として予め有効に設定されていても良い。あるいは、「ブートモード」と「ハードウェアＴＰＭの有無」の両方が、デフォルトの自動切り替え条件として予め有効に設定されていても良い。
【００８８】
あるいは、「ＯＳタイプ」と「ハードウェアＴＰＭの有無」の両方が、デフォルトの自動切り替え条件として予め有効に設定されていても良い。あるいは、「ＯＳタイプ」、「ブートモード」、および「ハードウェアＴＰＭの有無」の全てがデフォルトの自動切り替え条件として予め有効に設定されていても良い。
【００８９】
以上説明したように、本実施形態においては、「ブートモード」を自動切り替え条件として利用することができる。この場合、コンピュータ１０のブートモードが、マスターブートレコード（ＭＢＲ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第１モード（ＵＥＦＩブート）、またはＧＵＩＤパーティションテーブル（ＧＰＴ）で初期化されたストレージデバイスからオペレーティングシステムをブートするための第２モード（ＣＳＭブート）のいずれに設定されているかが、ＢＩＯＳセットアップ内のブートモードを示す設定値に基づいて判定される。そして、このブートモードの判定結果に応じて、第１トラステッド・プラットフォーム・モジュール（例えばＴＰＭ１．２）または第２トラステッド・プラットフォーム・モジュール（例えばＴＰＭ２．０）をイネーブルにするための処理が実行される。よって、コンピュータ１０の動作環境（例えば、ブートされるＯＳのタイプ）に適したＴＰＭバージョンを動作させることができる。
【００９０】
なお、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００９１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2015181963.tif 000003
【図２】
2015181963.tif 000004
【図３】
2015181963.tif 000005
【図４】
2015181963.tif 000006
【国際調査報告】
2015181963.tif 000007
2015181963.tif 000008