(57)【要約】【課題】トラステッドプラットフォームモジュールを共有するためのシステム及び方法を提供する。【解決手段】本発明に係る方法は、トラステッドプラットフォームモジュール（ＴＰＭ）を共有するための方法であって、ＴＰＭ（１３０）で実行されているオペレーティングシステム（ＯＳ）（１２１）レベルのプロセスの実行を一時停止することと、前記ＴＰＭ（１３０）によって、非ＯＳ（１２１）レベルのプロセスを実行することとを含む。また、  前記ＴＰＭ（１３０）による前記ＯＳ（１２１）レベルのプロセスの実行をレジュームすることをさらに含む。また、前記ＴＰＭ（１３０）の状態を保存することをさらに含む。【選択図】図１
2010508572.tif 000002
【特許請求の範囲】
【請求項１】
トラステッドプラットフォームモジュール（ＴＰＭ）を共有するための方法であって、
ＴＰＭ（１３０）で実行されているオペレーティングシステム（ＯＳ）（１２１）レベルのプロセスの実行を一時停止することと、
前記ＴＰＭ（１３０）によって、非ＯＳ（１２１）レベルのプロセスを実行することと
を含む方法。
【請求項２】
前記ＴＰＭ（１３０）による前記ＯＳ（１２１）レベルのプロセスの実行をレジュームすること
をさらに含む
請求項１に記載の方法。
【請求項３】
前記ＴＰＭ（１３０）の状態を保存すること
をさらに含む
請求項１に記載の方法。
【請求項４】
前記非ＯＳ（１２１）レベルのプロセスを実行することは、
システムローカリティエンティティ（ＳＬＥ）（２３４）に関連付けられる非ＯＳ（１２１）レベルのプロセスを実行すること
を含む
請求項１に記載の方法。
【請求項５】
前記非ＯＳ（１２１）レベルのプロセスの前記ＴＰＭ（１３０）の使用要求を示すようにセットされるフラグ（１３２）を監視すること
をさらに含む
請求項１に記載の方法。
【請求項６】
トラステッドプラットフォームモジュール（ＴＰＭ）を共有するためのシステム（１）であって、
オペレーティングシステム（ＯＳ）（１２１）レベルのプロセスを実行するように作動可能なＴＰＭ（１３０）を備え、
前記ＴＰＭ（１３０）は、前記ＯＳ（１２１）レベルのプロセスの前記実行を一時停止し、非ＯＳ（１２１）レベルのプロセスを実行するように作動可能である
システム。
【請求項７】
前記非ＯＳ（１２１）レベルのプロセスは、システムローカリティエンティティ（ＳＬＥ）（２３４）に関連付けられている
請求項６に記載のシステム。
【請求項８】
前記ＴＰＭ（１３０）は、前記非ＯＳ（１２１）レベルのプロセスを実行する要求を示す要求フラグ（１３２）を備える
請求項６に記載のシステム。
【請求項９】
前記ＴＰＭ（１３０）を使用して前記非ＯＳ（１２１）レベルのプロセスを実行することを要求する通知を受信するように作動可能なオペレーティングシステム（１２１）
をさらに備える
請求項６に記載のシステム。
【請求項１０】
前記非ＯＳ（１２１）レベルのプロセスを実行する要求を示す要求フラグ（１３２）をセットするように作動可能なＳＬＥ（２３４）をさらに備える、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、トラステッドプラットフォームモジュールを共有するためのシステム及び方法に関する。
【背景技術】
【０００２】
トラステッドコンピューティンググループ（ＴＣＧ）は、トラステッドプラットフォームモジュール（ＴＰＭ）のようなハードウェア対応のトラステッドコンピューティング技術及びセキュリティ技術の業界標準仕様を開発及び推進している。
ＴＰＭは、コンピューティングプラットフォーム上のさまざまなデバイス及び／又はハードウェアの完全性を記憶及び報告するのに使用され、プラットフォーム情報、並びに、パスワード、鍵、及び証明書のようなシークレットをセキュアにラッピング及び記憶するのに使用される。
ＴＰＭは、本質的には、ＴＰＭがコンピューティングシステムによってスポーン（spawn）された或るプロセスのデータの処理を行っている間、ＴＰＭが最初のプロセスの処理を終えるまで、他のどのプロセスもＴＰＭによる処理を受けることができないような単一コマンド処理デバイスである。
さらに、現在ＴＰＭ上で実行されているプロセスを始動したエンティティ以外のどのエンティティも、そのプロセスの実行中にＴＰＭとの接続を確立することができない。
その上、単一のエンティティは、通例、ＴＰＭとの通信を所望しているオペレーティングシステム（ＯＳ）レベルでスポーンされたすべてのプロセス／エンティティのスケジューラとして機能する。
このスケジューラエンティティは、通常、その作動中にＴＰＭの制御を放棄することを拒否する。
【０００３】
ＴＰＭを排他的に使用する２つのエンティティは、ＴＣＧソフトウェアスタック（ＴＳＳ）及びＴＰＭ基本サービス（ＴＢＳ）である。
ＴＳＳは、ＴＣＧの仕様及びガイドラインに従ってセキュリティサービスを提供し、コンピュータのＯＳの制御内で実行する。
ＴＢＳは、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムの最も近時のＴＰＭアウェアバージョンのＴＰＭを仮想化する。
しかしながら、いくつかの状況では、ＯＳの外部にあるコンピュータシステムのファームウェアは、ユーザ動作が不注意なものであろうと敵意のあるものであろうと、それらのユーザ動作による干渉に対してより高い耐性を有する場合があり、変更される可能性がより少ないので、ＯＳの制御外で暗号化又は解読のようなセキュリティオペレーションを行うことが好ましい場合がある。
あいにく、鍵及びソフトウェアを記憶するのに利用可能なメモリは、通常、ファームウェア及び基本入出力システム（ＢＩＯＳ）に限られ、ＢＩＯＳは、ファームウェアに存在し得る。
しかしながら、ＢＩＯＳ、ファームウェア、外付けデバイス、又はコンピュータマザーボード上の別の回路のような別のエンティティが、セキュリティオペレーションについてＴＰＭ機能の利用を試みる場合、ＴＰＭのシングルプロセス操作制限によって、ＴＳＳ／ＴＢＳとのコンフリクトの危険がもたらされる。
コンフリクトは、遅延及び状態破損の形を取る場合がある。
遅延は、ＴＳＳ／ＴＢＳがＴＰＭを使用している間に起こるが、制御を放棄しない。
状態破損は、別のエンティティが、ＴＳＳ／ＴＢＳによる使用期間と使用期間との間にＴＰＭを使用し、ＴＳＳ／ＴＢＳが依拠していた、不変であるべきレジスタの状態を変更する場合に起こる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、トラステッドプラットフォームモジュールを共有するためのシステム及び方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の一形態は、トラステッドプラットフォームモジュール（ＴＰＭ）を共有するための方法であって、ＴＰＭ（１３０）で実行されているオペレーティングシステム（ＯＳ）（１２１）レベルのプロセスの実行を一時停止することと、前記ＴＰＭ（１３０）によって、非ＯＳ（１２１）レベルのプロセスを実行することとを含む。
【図面の簡単な説明】
【０００６】
【図１】トラステッドプラットフォームモジュール（ＴＰＭ）を共有するためのシステムの一実施形態を示すブロック図である。
【図２】図１のＴＰＭを共有するためのシステムの実施形態をさらに示すブロック図である。
【図３】ＴＰＭを共有するための方法の一実施形態を示すフロー図である。
【発明を実施するための形態】
【０００７】
本発明の好ましい実施形態及びその利点は、図面の図１〜図３を参照することによって最も良く理解される。
同様の数字は、さまざまな図面の同様の対応する部分に使用される。
図１は、トラステッドプラットフォームモジュール（ＴＰＭ）を共有するためのシステム１の一実施形態を示すブロック図である。
図１に示す実施形態では、システム１は、マザーボード１００を有するコンピュータシステム１０を備える。
マザーボード１００は、中央処理装置（ＣＰＵ）１１０、メモリ１２０、ＴＰＭ１３０、ファームウェア１４０、及び回路１５０を保持する。
図１に示す実施形態では、ファームウェア１４０は、基本入出力システム（ＢＩＯＳ）１４０を含む。
回路１５０は、マザーボード１００上の任意の回路又はデバイスとすることができ、別のセキュリティデバイス、組み込みデバイス、プラットフォーム拡張部、インターフェース、又はバスコントローラが含まれるが、これらに限定されるものではない。
ＢＩＯＳ１４０は、オペレーティングシステム（ＯＳ）１２１がロードされて実行される前にコンピュータシステム１０上で動作するファームウェアである。
しかしながら、従来のＢＩＯＳを組み込んでいないが、その代わり他のファームウェアシステムを使用するコンピュータシステム１０の他の方法及び／又は実施形態を用いることができることが理解されるべきである。
コンピュータシステム１０は、任意のタイプのコンピューティングシステムを備えることができる。
このコンピューティングシステムは、パーソナルコンピュータ、携帯情報端末（ＰＤＡ）、マイクロコントローラ、組み込みシステム、通信デバイス、及びエンターテインメントデバイス等であるが、これらに限定されるものではない。
本明細書で使用されるように、「ＴＰＭ」という用語は、ハードウェア対応のトラステッドコンピューティングの基礎を提供する任意のデバイスを含み、トラステッドコンピューティンググループ（ＴＣＧ）によって提供される仕様を満たすデバイスに限定されない。
【０００８】
図１では、ＴＰＭ１３０は、ＴＰＭビジーフラグ１３１（ＴＰＭ１３０が使用中であること、又は、システムローカリティエンティティ（system locality entity）（ＳＬＥ）から発行されたプロセス及び／若しくは要求を現在実行中であることを示す）並びに要求フラグ１３２（システムローカリティプロセス及び／若しくはＳＬＥから発行された要求を実行するためのＴＰＭ１３０の使用要求を示す）を備える。
ＳＬＥは、制限的なＴＰＭ内部暗号機能へのアクセスを許可され且つＴＰＭ内部暗号能力を一般的使用のためにユーザにもアプリケーションにも明らかにしないというＴＰＭ制約条件に準拠するエンティティである。
ＳＬＥは、これらの制約条件に準拠する任意のコンポーネントとすることができ、プラットフォームファームウェア（たとえば、ファームウェア１４０）と、ＢＩＯＳ（たとえば、ＢＩＯＳ１４１）と、マザーボード１００上の他のチップと、キーボード、指紋リーダのような周辺デバイス等とを含むことができる。
ＳＬＥは、したがって、ＴＰＭの内部暗号機能を、汎用アプリケーション及びユーザを排除する論理境界に拡張する。
ＳＬＥは、不正なＯＳがなりすますことができないハードウェア信号又はそのローカリティのために指定されたメモリマップドＩ／Ｏ（ＭＭＩＯ）範囲上でＴＰＭと通信することによってなりすますことができないハードウェア信号のいずれかを使用して自身の「ローカリティ」を証明する。
さらに、ＳＬＥは、ハイパーバイザ／仮想マシンモニタのような、物理的又は仮想的なものにできることが理解されるべきである。
【０００９】
図１に示す実施形態では、コンピュータシステム１０は、アドインデバイス１０１も備える。
アドインデバイス１０１は、プラグインカード、媒体リーダ、セキュリティデバイス、又はコンピュータシステム１０と共に使用できる他の任意のタイプのデバイスとすることができる。
図１では、スマートカード１１、ユニバーサルシリアルバス（ＵＳＢ）デバイス１２、及びセキュリティデバイス１３が、コンピュータシステム１０に通信連結されているものとして示されている。
セキュリティデバイス１３は、任意のタイプのセキュリティ関連デバイスを備えることができる。
このセキュリティ関連デバイスは、指紋リーダ又は網膜スキャナのようなバイオメトリックデバイス等であるが、これに限定されるものではにない。
図１に示すシステム１では、１つ又は複数のＳＬＥエンティティ（たとえば、スマートカード１１、ＵＳＢデバイス１２、セキュリティデバイス１３、アドインデバイス１０１、ファームウェア１４０、ＢＩＯＳ１４１、回路１５０等のうちの１つ又は複数）は、ＴＰＭ１３０からのサービスを使用し且つ／又は別の方法でＴＰＭ１３０にサービスを要求することができる。
作動中、ＴＰＭ１３０のサービスを使用し且つ／又は別の方法で要求するために、要求フラグ１３２がセットされるか、又は、通知がＯＳ１２１を通じて送信される。
この通知は、ＣＰＵ１１０によって処理され、少なくとも一時的にメモリ１２０に記憶される。
【００１０】
いくつかの実施形態では、システムバスを通じてＴＰＭ１３０へ汎用入出力（ＧＰＩＯ）メッセージを送信し、ＭＭＩＯを使用することにより、要求フラグ１３２をセット又はクリアすることができる。
ＭＭＩＯは、同じバスを使用してメモリ及び入出力（Ｉ／Ｏ）デバイスの双方にアクセスし、いくつかのメモリアドレスは、メモリ空間へのアクセス用ではなくＩ／Ｏ用に確保されるようになっている。
ＴＣＧ仕様は、異なるローカリティ用のメモリ範囲を定義している。
ＴＰＭ１３０に通信するエンティティが所与のローカリティにあるということは、そのエンティティがＴＰＭ１３０と通信するのに使用したメモリ範囲に基づいてＴＰＭ１３０に保証される。
【００１１】
図２は、図１のシステム１をさらに示すブロック図である。
図２に示す実施形態では、コンピューティングシステム１０は、ユーザプロセスレイヤ２１、システムプロセスレイヤ２２、カーネルモードレイヤ２３、及びファームウェア／ハードウェアレイヤ２４を備える。
ＯＳ１２１は、ユーザプロセスレイヤ２１からシステムプロセスレイヤ２２を通じてカーネルモードレイヤ２３に広がる。
ユーザプロセスレイヤ２１は、ＴＰＭ１３０のセキュリティ機能の使用を所望する２つのアプリケーション２１１及び２１２を備える。
たとえば、オーディオファイル又はデジタルビデオディスク（ＤＶＤ）を再生するのに必要とされる場合があるように、アプリケーション２１１及び２１２は、データを処理するために暗号化又は解読を必要とする場合がある。
ＴＰＭ１３０の資源の使用を所望するアプリケーション又は他のエンティティのタイプ及び量は変化し得ることが理解されるべきである。
【００１２】
（たとえば、レイヤ２１、２２、及び２３内でＯＳ１２１の制御によって制御され且つ／又はＯＳ１２１の制御下で別の方法で遂行される）ＯＳレベルにおいて、ＴＰＭ１３０の所望のセキュリティ機能を取得し且つ／又は所望のセキュリティ機能に別の方法でアクセスするために、アプリケーション２１１及び２１２のうちの１つは、ＴＰＭ１３０上でプロセスの実行を始動する。
アプリケーション２１１及び２１２は、ＴＣＧソフトウェアスタック（ＴＳＳ）２２１を通じてＴＰＭ１３０とインターフェースする。
ＴＳＳ２２１は、ＴＰＭデバイスドライバライブラリー（ＴＤＤＬ）又はＴＰＭ基本サービス（ＴＢＳ）２２２にアクセスする。
ＴＳＳ２２１及びＴＤＤＬ／ＴＢＳ２２２は、システムプロセスレイヤ２２に配置されている。
システムプロセスレイヤ２２は、ユーザプロセスレイヤ２３よりも下にある。
ＴＤＤＬ／ＴＢＳ２２２は、入出力（Ｉ／Ｏ）システム２３２を使用してＴＰＭ１３０を駆動するように特定のＴＰＭデバイスドライバ２３１を選択する。
Ｉ／Ｏシステム２３２は、ＧＰＩＯ又はＭＭＩＯを備えることができるが、これらに限定されるものではない。
【００１３】
ユーザプロセスレイヤ２１、システムプロセスレイヤ２２、カーネルモードレイヤ２３、及びファームウェア／ハードウェアレイヤ２４は、資源への異なるアクセス度を表し、レイヤが高いほど、アクセス度は大きくなる。
たとえば、コンピュータシステム１０のユーザ（複数可）は、コンピュータシステム１０の寿命の間に、アプリケーション２１１及び２１２のようなユーザプロセスレイヤ２１の多くのアプリケーションをインストール、パッチ、及び削除することができる。
しかしながら、いくつかの実施形態では、ＴＰＭ１３０は、不正操作できないようにされ、ユーザによる変更ができない。
一般に、ＯＳ１２１の制御下で動作するアプリケーション２１１及び２１２のようなどのアプリケーションも、おそらくユーザ、ハッカ、又はウィルスによる攻撃を受けるおそれがある。
たとえば、攻撃には、データをコピー又は破損するためにデータへの不適切なアクセスを取得しようとする試みが含まれ得る。
したがって、ＯＳ１２１の外部ではアクセスがより多く制限され、このＯＳ１２１の外部にセキュリティサービスを移動させることによって、複数の形態のコンピュータ攻撃を防止することができる。
【００１４】
ＳＬＥ２３４は、ファームウェア／ハードウェアレイヤ２４に配置できる任意のタイプのデバイスを備え、したがって、ユーザアプリケーションレイヤ２１に配置されたアプリケーション２１１及び２１２によって提供されるセキュリティレベルよりも高いセキュリティレベルを潜在的に提供することができる。
いくつかの実施形態では、ＳＬＥ２３４は、スマートカード１１、ＵＳＢデバイス１２、セキュリティデバイス１３、アドインデバイス１０１、ファームウェア１４０、ＢＩＯＳ１４１、又は回路１５０（図１）のうちの１つ又は複数を備えることができる。
しかしながら、他のタイプのアプリケーション及び／又はエンティティがファームウェア／ハードウェアレイヤ２４に存在することができ、ＳＬＥ２３４を備えることができることが理解されるべきである。
【００１５】
ＳＬＥ２３４は、要求フラグ１３２をセットすることによるか、又は別のタイプの通知を送信することによるかのいずれかで、アプリケーション２１１又は２１２を使用するためのＴＰＭ１３０上で実行されているＯＳ１２１レベルのプロセスを中断するように構成されている。
たとえば、通知は、ＴＰＭ１３０、ＴＳＳ２２１、ＴＢＳ２２２、アプリケーション２１１若しくは２１２、又はＯＳ１２１の他の任意のエンティティへ送信することができる。
要求フラグ１３２は、Ｉ／Ｏシステム２３２を使用してセットすることもできるし、又はＯＳ１２１を通過することによってセットすることもできる。
また、通知は、Ｉ／Ｏシステム２３２を通じてＴＰＭ１３０へ渡すこともできるし、又はおそらくＷＭＩを使用して適切な受信者へルーティングするためにＯＳ１２１へ渡すこともできる。
したがって、ＯＳ１２１レベルのプロセスは、中断及び／又は一時停止されて、非ＯＳ１２１レベルのプロセス（たとえば、ＳＬＥ２３４に関連付けられ且つ／又はＯＳ１２１のレイヤ２１、２２、及び２３の外付け又は外部のエンティティによって別の方法で発行されたプロセス）のＴＰＭ１３０による実行が可能になる。
【００１６】
ＴＰＭ１３０が、ＯＳ１２１レベルのプロセス及び／又はＯＳ１２１レベルのアプリケーション（たとえば、ＯＳ１２１の制御下にあるアプリケーション２１１及び／又は２１２）の要求を実行している時、ＴＰＭ１３０が使用中であることを示すＴＰＭビジーフラグ１３１は、セットされていない。
ＴＰＭ１３０がＴＣＧ仕様を満たす場合に、ＴＣＧ  ＴＰＭ仕様は、シングルプロセスのシングルユーザのデバイスを提供するので、現在のプロセスは、ＴＰＭ１３０の排他的使用を有する。
システム１の実施形態は、要求フラグ１３２を使用して、ＯＳ１２１レベルのプロセスの実行を中断又は一時停止し且つＳＬＥ２３４プロセスを実行するＳＬＥ２３４による要求をシグナリングすることによりＴＰＭ１３０の共有を可能にするための少なくとも１つのメカニズム（スマートカード１１、ＵＳＢデバイス１２、セキュリティデバイス１３、アドインデバイス１０１、ファームウェア１４０、又は回路１５０のうちの１つ等）を提供する。
【００１７】
図３は、ＴＰＭ共有方法の一実施形態を示すフロー図である。
この方法は、ブロック３０１で開始する。
ブロック３０１において、ＴＳＳ２２１は、（たとえば、アプリケーション２１１又は２１２のために）ＯＳ１２１レベルのプロセスをＴＰＭ１３０上で実行する。
図３は、ＴＳＳ２２１を使用して説明されているが、ＴＤＤＬ／ＴＢＳ２２２、又はＴＰＭ１３０の資源にアクセスできる別のＯＳ１２１レベルのアプリケーションのような、他のエンティティが、ＴＰＭ１３０を使用している可能性もある。
ブロック３０２において、ＳＬＥ２３４がＴＰＭ１３０（たとえば、ファームウェア１４０、ＢＩＯＳ１４１、回路１５０、マザーボード１００上の別の回路、マザーボード１００の外付けデバイス、及び／又はＴＰＭ１３０の使用が認可された他の任意のＳＬＥ）の使用を所望することが示されている。
上記で論述したように、この要求は、ＯＳ１２１の外部で遂行される暗号化プロセス又は解読プロセスのためのものとすることができる。
【００１８】
ブロック３０３において、ＳＬＥ２３４は、ＴＰＭ１３０に対して自身を認証し、ＴＰＭ１３０の使用の認可を取得する。
たとえば、認証は、ＭＭＩＯを介して、事前に定義されたローカリティメモリ範囲を使用するメッセージを送信することを必要とする場合がある。
ブロック３０４において、ＳＬＥ１４０は、たとえば、要求フラグ１３２をセットすることにより、且つ／又は、ＷＭＩ、ＧＰＩＯ、ＭＭＩＯ、若しくはＳＬＥ２３４がＴＰＭ１３０若しくはＯＳ１２１で実行されているプロセスのいずれかにシグナリングすることを可能にする他の任意の方法を使用して通知を送信することにより、ＴＰＭ１３０の使用を要求する。
他の方法も（たとえば、インターラプト要求（ＩＲＱ）を使用して）使用できることも理解されるべきである。
【００１９】
ブロック３０５において、ＴＳＳ２２１は、要求フラグ１３２のステータスを監視することにより、又は、ＳＬＥ２３４の要求の通知を別の方法で受信することにより、ＳＬＥ２３４の要求に気付く。
ＴＰＭ１３０の制御のＴＳＳ２２１からＳＬＥ２３４へのハンドオフは、協調的に又はプリエンプティブに（ｐｒｅｅｍｐｔｉｖｅｌｙ）行うことができる。
判定ブロック３０６において、ＳＬＥ２３４は、協調的手法又はプリエンプティブ手法（ｐｒｅｅｍｐｔｉｖｅ  ａｐｐｒｏａｃｈ）のいずれかを続ける。
プリエンプティブ手法が選択される場合、この方法は、ブロック３０７ａに進む。
ブロック３０７ａにおいて、ＳＬＥ２３４は、ＴＳＳ２２１のプロセスの実行を一時停止し、ＴＰＭ１３０の状態を保存し、この方法は、ブロック３１０に進む。
判定ブロック３０６において、協調的手法が選択される場合、この方法は、ブロック３０７ｂに進む。
ブロック３０７ｂにおいて、ＴＳＳ２２１はクリーンアッププロセスを開始する一方、ＳＬＥ２３４は待機する。
たとえば、いくつかの実施形態では、協調的手法を使用して、ＴＳＳ２２１は、それ自身のプロセスを一時停止し、ＴＰＭ１３０の状態を保存し、次に、要求フラグ１３２をクリアする。
判定ブロック３０８において、ＴＳＳ２２１がクリーンアッププロセスを終了したか否かの判断が、要求フラグ１３２のステータスを監視することによって行われる。
ＴＳＳ２２１がまだ終了していない場合、この方法は、ブロック３０９に進み、ブロック３０９において、ＳＬＥ２３４は、ＴＳＳ２２１のステータスの監視を続け、要求フラグ１３２を監視することによって、ＴＳＳ２２１が終了したか否かを判断する。
いくつかの実施形態では、システム１は、すべてのデバイスについてプリエンプション（ｐｒｅｅｍｐｔｉｏｎ）を使用するように実施することもできるし、すべてのデバイスについて協調を使用するように実施することもできるし、又は一定のデバイスについては協調を使用し他のデバイスについてはプリエンプションを使用するように実施することもできる（たとえば、システム設計者、ユーザ、アドミニストレータ等によって設定される）ことが理解されたい。
他の実施形態では、協調的プロセス又はプリエンプティブプロセス（ｐｒｅｅｍｐｔｉｖｅ  ｐｒｏｃｅｓｓ）を行うか否かの判断は、タスクの優先順位に基づく（たとえば、優先順位の高いタスクはプリエンプティブプロセスを使用し、優先順位の低いタスクは協調的プロセスを使用する）。
ＴＰＭ１３０は、ＴＣＧ仕様に従って実施されるとき、自身のレジスタ値を保存するためにSaveState()コマンド応答し、自身のレジスタ値を回復するためにRestoreState()コマンドに応答することができる。
ＴＳＳ２２１又はＳＬＥ２３４は、いずれがＴＰＭ１３０を制御していようとも、いずれもこのようなコマンドを発行することができる。
【００２０】
ＴＳＳ２２１が、ＴＰＭ１３０の制御を解放すると、ＴＳＳ２２１は、ブロック３１０において、（たとえば、要求フラグ１３２をクリアし且つ／又はＴＳＳ２２１を使用してＴＰＭ１３０の機能にアクセスしていたＯＳ１２１のアプリケーションにステータスを報告することによって）この解放をシグナリングする。
いくつかの実施形態では、ＴＳＳ２２１は、プリエンプトされた（ｐｒｅｅｍｐｔｅｄ）ことを報告するか、又は、プロセスを完了する時間推定を提供する。
この時間推定は、ＳＬＥ２３４がＴＰＭ１３０を使用している時間を含む。
ブロック３１１において、ＳＬＥ２３４は、ＴＰＭ１３０にアクセスし且つ／又は別の方法でＴＰＭ１３０を制御し、ビジーフラグ１３１をセットする。
ブロック３１２において、ＳＬＥ２３４は、自身のプロセスを実行し、その終結又は完了時に、ブロック３１３においてＴＰＭ１３０を解放する。
いくつかの実施形態では、ＴＰＭ１３０を解放することは、ファームウェア１４０のプロセスをクリーンアップすること、ビジーフラグ１３１をクリアすること、ＴＳＳ２２１のプロセスから状態を回復すること、及びＴＳＳ２２１に通知することを含む。
【００２１】
ブロック３１４において、ＴＳＳ２２１は、ＴＰＭ１３０に再接続する。
いくつかの実施形態では、ＴＰＭ１３０への再接続は、ＴＳＳ２２１が、ＳＬＥ２３４に関連付けられるプロセスが完了したという通知を受信することに応答して、又は、ＴＳＳ２２１がビジーフラグ１３１を監視することの結果として行われる。
いくつかの実施形態では、ＴＰＭ１３０の使用がＴＳＳ２２１に復帰してＴＳＳ２２１のプロセスの完了を容易にすることを確実にするために、ＴＰＭ１３０、及び／又は、ＴＳＳ２１を使用してＴＰＭ１３０にアクセスしていたＯＳ２１のアプリケーションは、ＳＬＥ２３４のプロセスが完了したことを別の方法で通知される。
保存されたＴＰＭ１３０の状態が、ＳＬＥ２３４によって回復されなかった場合、ＴＳＳ２２１が、ＴＰＭ１３０の状態を回復する。
ＴＳＳ２２１のプロセスの実行は、ブロック３１５においてレジュームされる（ｉｓ ｒｅｓｕｍｅｄ）。
【００２２】
このように、システム１の実施形態によって、ＴＰＭ１３０によるＯＳレベルのプロセスの完了前にＴＰＭ１３０の制御を放棄できるようなＴＰＭ１３０の資源の共有使用が可能になる。
いくつかの実施形態では、システム１によって、ＴＰＭ１３０の資源を共有するプリエンプティブ手法及び／又は協調的手法が可能になる。
【符号の説明】
【００２３】
１０・・・コンピュータシステム
１１・・・スマートカード
１２・・・ＵＳＢデバイス
１３・・・セキュリティデバイス
１００・・・マザーボード
１０１・・・アドインデバイス
１１０・・・ＣＰＵ
１２０  メモリ
１２１・・・ＯＳ
１３０・・・ＴＰＭ
１３１  ビジーフラグ
１３２  要求フラグ
１４０  ファームウェア
１４１・・・ＢＩＯＳ
１５０・・・回路
２１・・・ユーザプロセスレイヤ
２２・・・システムプロセスレイヤ
２３・・・カーネルモードレイヤ
２４・・・ファームウェア／ハードウェアレイヤ
２１１・・・アプリケーション１
２１２・・・アプリケーション２
２２１・・・ＴＳＳ
２２２・・・ＴＤＤＬ／ＴＢＳ
２３１・・・ＴＰＭデバイスドライバ
２３２・・・Ｉ／Ｏシステム
２３４・・・ＳＬＥ
【図１】
2010508572.tif 000003
【図２】
2010508572.tif 000004
【図３】
2010508572.tif 000005
【国際調査報告】
2010508572.tif 000006
2010508572.tif 000007
2010508572.tif 000008