(57)【要約】  一実施の形態によれば、コンピュータシステムが開示される。このコンピュータシステムは、関連する第１のスレッド識別（ＩＤ）を有する第１のスレッドと、関連する第２のスレッドＩＤを有する第２のスレッドとを有する中央処理装置（ＣＰＵ）を備える。このコンピュータシステムはまた、結合されてＣＰＵからアクセス要求を受け取り、アクセス要求に含まれているスレッドＩＤを調べて、どのスレッドがアクセスを要求しているかを判断するチップセットを備える。【選択図】図１
2008518363.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
中央処理装置（ＣＰＵ）であって、
関連する第１のスレッド識別（ＩＤ）を有する第１のスレッドと、
関連する第２のスレッドＩＤを有する第２のスレッドと
を有する中央処理装置（ＣＰＵ）と、
結合されて該ＣＰＵからアクセス要求を受け取り、前記アクセス要求に含まれているスレッドＩＤを調べて、どのスレッドがアクセスを要求しているかを判断するチップセットと
を備える、コンピュータシステム。
【請求項２】
前記第１のスレッドは、データへのフルアクセスが提供される非制限スレッドであり、前記第２のスレッドは、データへの制限されたアクセス権が提供される制限付きスレッドである、請求項１に記載のコンピュータシステム。
【請求項３】
前記チップセットに結合されるメモリ装置をさらに備え、前記非制限スレッドには該メモリ装置のすべてのページに対するアクセス権が提供され、前記制限付きスレッドには前記メモリ装置の割り振られる領域へのアクセス権が提供される、請求項２に記載のコンピュータシステム。
【請求項４】
前記ＣＰＵ及び前記チップセットは、コンピュータシステムの制限付き構成要素を変更できるようにし、前記非制限構成要素を変更しないままにできるようにする、請求項２に記載のコンピュータシステム。
【請求項５】
前記非制限スレッドは前記制限付きスレッドに対して管理アクセス権（supervisory access）を有し、前記非制限スレッドが前記制限付きスレッドのアクセスレベルを調べられるようにする、請求項４に記載のコンピュータシステム。
【請求項６】
前記チップセットは、前記制限付きスレッドにより変更することができないタイマ資源及び割り込み資源を備える、請求項２に記載のコンピュータシステム。
【請求項７】
前記チップセットは、前記非制限スレッドが前記制限付きスレッドにより処理される事象を生成できるようにするレジスタをさらに備える、請求項２に記載のコンピュータシステム。
【請求項８】
前記チップセットは、前記制限付きスレッドに関連するウィンドウを前記非制限スレッドに関連するウィンドウの上に配置できないように、前記非制限スレッドがモニタ上にウィンドウを表示できるようにするグラフィックスインタフェースを備える、請求項２に記載のコンピュータシステム。
【請求項９】
前記チップセットは、前記非制限スレッドに、前記ディスクコントローラ（１４２）に結合されるハードディスク上のデータへのフルアクセスを提供し、前記制限付きスレッドに、前記ハードディスクの特定のセクションへのアクセス権を提供するディスクコントローラを備える、請求項２に記載のコンピュータシステム。
【請求項１０】
前記ディスクコントローラは、
前記非制限スレッドに関連する第１のインタフェースと、
前記制限付きスレッドに関連する第２のインタフェースと、
ＤＭＡエンジンと
を備える、請求項９に記載のコンピュータシステム。
【請求項１１】
前記チップセットは、出力オーディオストリームが前記非制限スレッド及び前記制限付きスレッドに対して独立して動作して、該制限付きスレッドが該非制限スレッドをミュート化しないようにすることができるオーディオコントローラを備える、請求項２に記載のコンピュータシステム。
【請求項１２】
前記オーディオコントローラは、入力ストリームをまず前記非制限スレッドに送り、前記オーディオデータを前記制限付きスレッドに渡すべきか否かを判断できるようにするモードを含む、請求項１１に記載のコンピュータシステム。
【請求項１３】
前記チップセットは、前非制限スレッドにフルアクセスを許可し、前記制限付きスレッドに制限付きアクセス権を許可するネットワークコントローラを備える、請求項２に記載のコンピュータシステム。
【請求項１４】
前記制限付きスレッドにより送られるパケットは、検査又は変更のために前記非制限スレッドが利用できるようにされ、前記ネットワークから受け取られたパケットはまず、前記制限付きスレッドが利用できるようになる前に前記非制限スレッドにより検査される、請求項１３に記載のコンピュータシステム。
【請求項１５】
装置のデータ資源にアクセスする要求を受け取ること、
該要求に関連するスレッド識別（ＩＤ）を調べること、及び
該スレッドＩＤが非制限スレッドからの要求を示す場合、前記データ資源へのフルアクセスを提供すること
を含む、方法。
【請求項１６】
前記スレッドＩＤが制限付きスレッドからの要求を示す場合、前記データ資源の所定の構成要素へのアクセス権を提供することをさらに含む、請求項１５に記載の方法。
【請求項１７】
システムであって、
ハードディスクドライブと、
該ハードディスクドライブに結合されるディスクコントローラであって、
非制限スレッドに関連づけられて、該非制限スレッドに前記ハードディスクドライブ上のデータへのフルアクセスを許可する第１のインタフェースと、
制限付きスレッドに関連づけられて、該制限付きスレッドに前記ハードディスクの特定のセクションへのアクセス権を許可する第２のインタフェースと
を有するディスクコントローラと
を備える、システム。
【請求項１８】
前記ディスクコントローラはＤＭＡエンジンをさらに備える、請求項９に記載のシステム。
【請求項１９】
プログラム命令を具現する１つ又は複数のコンピュータ可読媒体を含む製品であって、前記プログラム命令は、処理装置によって実行されると、該処理装置に、
装置のデータ資源にアクセスする要求を受け取ること、
該要求に関連するスレッド識別（ＩＤ）を調べること、及び
該スレッドＩＤが非制限スレッドからの要求を示す場合、前記データ資源へのフルアクセスを提供すること
を実行させる、製品。
【請求項２０】
前記プログラム命令は、処理装置によって実行されると、該処理装置に、前記スレッドＩＤが制限付きスレッドからの要求を示す場合、前記データ資源の所定の構成要素へのアクセス権を提供することをさらに実行させる、請求項１９に記載の製品。
【請求項２１】
チップセットであって、中央処理装置（ＣＰＵ）から受け取るアクセス要求に含まれるスレッドＩＤを調べて、該アクセス要求が、関連する第１のスレッド識別（ＩＤ）を有する第１のスレッドからのものであるか、又は関連する第２のスレッドＩＤを有する第２のスレッドからのものであるかを判断するスレッド識別（ＩＤ）チェッカと
を備える、チップセット。
【請求項２２】
前記第１のスレッドは、データへのフルアクセスが提供される非制限スレッドであり、前記第２のスレッドは、データへの制限されたアクセス権が提供される制限付きスレッドである、請求項２１に記載のチップセット。
【請求項２３】
前記非制限スレッドは前記制限付きスレッドに対して管理アクセス権を有し、前記非制限スレッドが前記制限付きスレッドのアクセスレベルを調べられるようにする、請求項４に記載のチップセット。
【請求項２４】
前記制限付きスレッドにより変更することができないタイマ資源及び割り込み資源を備える、請求項２２に記載のチップセット。
【請求項２５】
前記非制限スレッドが前記制限付きスレッドにより処理される事象を生成できるようにするレジスタをさらに備える、請求項２４に記載のチップセット。
【請求項２６】
前記制限付きスレッドに関連するウィンドウを前記非制限スレッドに関連するウィンドウの上に配置できないように、前記非制限スレッドがモニタ上にウィンドウを表示できるようにするグラフィックスインタフェースを備える、請求項２２に記載のチップセット。
【請求項２７】
前記非制限スレッドに、前記ディスクコントローラ（１４２）に結合されるハードディスク上のデータへのフルアクセスを提供し、前記制限付きスレッドに、前記ハードディスクの特定のセクションへのアクセス権を提供するディスクコントローラを備える、請求項２２に記載のチップセット。
【請求項２８】
出力オーディオストリームが前記非制限スレッド及び前記制限付きスレッドに対して独立して動作して、該制限付きスレッドが該非制限スレッドをミュート化しないようにすることができるオーディオコントローラを備える、請求項２２に記載のチップセット。
【請求項２９】
前非制限スレッドにフルアクセスを許可し、前記制限付きスレッドに制限付きアクセス権を許可するネットワークコントローラを備える、請求項２２に記載のチップセット。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の分野］
本発明はコンピュータシステムに関し、特に、信頼性のある環境又はセキュアな環境で動作することができるコンピュータシステムに関する。
【０００２】
［著作権通知］
本明細書に含まれるものは、著作権保護の対象となる資料である。著作権所有者は、いかなる人物による、特許商標庁の特許ファイル又は記録に見られる本特許開示のファクシミリ複製に対しても異を唱えないが、著作権に対するすべての権利を、それがいかなるものであれ保有するものである。
【背景技術】
【０００３】
「分離実行」及び「分離ストレージ」から恩恵を受ける種々のアプリケーションがある。分離実行とは、他のソフトウェアが妨げることができず、観察することもできないコードを実行する能力である。分離実行は、セキュリティソフトウェア並びに悪意はないが出来の悪いソフトウェアからの保護にとって重要である。たとえば、出来の悪いデバイスドライバは、オペレーティングシステム（ＯＳ）の適切な動作に干渉し、結果として時間が重要なアプリケーション（デジタルビデオレコーダ等）の動作を妨げるクラッシュを生じさせる恐れがある。
【０００４】
分離ストレージは、許可を受けた所有者のみがアクセス可能な不揮発性メモリにデータを記憶させる能力に関する。したがって、他のソフトウェアはそのデータを変更又は削除する能力を有しない。削除の概念は、ＯＳ又はそのデバイスドライバにおけるエラーにより、ディスク上のデータにアクセス不能になる恐れがあるため重要である。
【０００５】
本発明について、同様の参照符号が同様の要素を示す添付図面の図に限定ではなく例として示す。
【発明を実施するための最良の形態】
【０００６】
コンピュータシステムでの制限付き実行環境及び非制限実行環境のメカニズムについて記載する。本発明の以下の詳細な説明では、多くの具体的な詳細を、本発明の完全な理解を提供するために記す。しかし、本発明がこういった具体的な詳細なしで実行可能なことが当業者には理解されよう。また場合によっては、既知の構造及び装置は詳細にではなくブロック図の形で示し、本発明を曖昧にしないようにする。
【０００７】
本明細書において「一実施形態（one embodiment）」又は「一実施形態（an embodiment）」と言うときは、その実施形態に関連して説明される特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書の各所で見られる「一実施形態では」という語句は、必ずしもすべて同じ実施形態を指すわけではない。
【０００８】
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズム及び象徴的表現に関して提示される。こういったアルゴリズム的な説明及び表現は、データ処理分野の当業者が他の当業者に自身の作業の実質を最も有効に伝えるために使用する手段である。
【０００９】
アルゴリズムは、本明細書において、また一般に、所望の結果につながる自己無矛盾の一連のステップであると考えられる。ステップとは、物理量の物理的な操作を必要とするものである。必ずではないが通常、これらの量は、記憶、転送、結合、比較、及び他の様式で操作されることが可能な電気信号又は磁気信号の形をとる。時により、主に一般的な用法という理由により、これらの信号をビット、値、要素、記号、文字、用語、数等として言及することが都合のよいことが証明されている。
【００１０】
しかし、これらの用語及び同様の用語は、すべて適当な物理量が関連づけられるべきであり、これらの量に適用される都合のよいラベルにすぎないことを念頭に置かれたい。特記しない限り、又は以下の考察から明らかなように、説明全体を通して、「処理」、「計算」、「算出」、「求める」、又は「表示」等の用語を利用した考察が、コンピュータシステムのレジスタ及びメモリ内の物理的な（電子的な）量として表されるデータを操作して、コンピュータシステムメモリ、レジスタ、又は他のこのような情報記憶装置、伝送装置、又は表示装置内の物理量として同様に表される他のデータに変換するコンピュータシステム又は同様の電子計算装置の動作及び処理を指すことが理解される。
【００１１】
本発明は、本明細書における動作を実行する装置にも関する。この装置は、要求される目的のために特別に構築されてもよく、又はコンピュータに記憶されているコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータシステムバスにそれぞれ結合されるフロッピーディスク、光ディスク、ＣＤ−ＲＯＭ及び光磁気ディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード若しくは光カードを含む任意の種類のディスク又は電子命令の記憶に適した任意の種類の媒体等であるがこれらに限定されないコンピュータ可読記憶媒体に記憶することができる。
【００１２】
本明細書において提示するアルゴリズム及び表示は、特定のいかなるコンピュータ又は他の装置に固有に関連するものではない。各種の汎用システムを本明細書の教示によるプログラムと併せて使用してもよく、又は必要な方法ステップを実行する、より特化された装置を構築するほうが都合のよいことが証明される場合もある。種々のこのようなシステムに求められる構造は以下の説明から明らかになろう。さらに、本発明は任意の特定のプログラミング言語を参照して説明されない。種々のプログラミング言語を、本明細書において述べる本発明の教示を実施するために使用してもよいことが理解されよう。
【００１３】
プログラミング言語（複数可）の命令は、１つ又は複数の処理装置（たとえば、プロセッサ、コントローラ、制御処理装置（ＣＰＵ）、実行コア等）で実行することができる。
【００１４】
図１は、コンピュータシステム１００の一実施形態のブロック図である。コンピュータシステム１００は、バス１０５に結合される中央処理装置（ＣＰＵ）１０２を備える。一実施形態によれば、ＣＰＵ１０２は複数のコア１０３を備える。たとえば、ＣＰＵ１０２はコア０及びコア１を備える。一実施形態では、コンピュータシステム１００は複数のオペレーティングシステムを同時に実行する。このような実施形態では、別個のＯＳが各コア１０３で動作する。したがって、第１のＯＳがコア０で動作し、第２のＯＳがコア１で動作する。さらなる実施形態では、個々のコアのそれぞれは２つ以上のスレッドを実行することができる。しかし、以下の説明では、スレッドという用語を、ＯＳを実施しているプロセッサ機能を示すために使用する。
【００１５】
一実施形態では、ＣＰＵ１０２は、カリフォルニア州サンタクララ所在のIntel Corporationから入手可能なＰｅｎｔｉｕｍ（登録商標）ＩＩプロセッサファミリ、Ｐｅｎｔｉｕｍ（登録商標）ＩＩＩプロセッサ、及びＰｅｎｔｉｕｍ（登録商標）ＩＶプロセッサを含むＰｅｎｔｉｕｍ（登録商標）プロセッサファミリのプロセッサである。別法として、他のＣＰＵを使用してもよい。
【００１６】
チップセット１０７もバス１０５に結合される。チップセット１０７はメモリ制御ハブ（ＭＣＨ）１１０を含む。ＭＣＨ１１０は、メインシステムメモリ１１５に結合されるメモリコントローラ１１２を含んでもよい。メインシステムメモリ１１５は、データ、及びＣＰＵ１０２又はシステム１００に備えられる他の任意の装置によって実行される一連の命令を記憶する。一実施形態では、メインシステムメモリ１１５はダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含むが、他のメモリタイプを使用して実装してもよい。
【００１７】
一実施形態によれば、ＭＣＨ１１０はスレッドＩＤチェッカ１１２を備える。ＩＤチェッカ１１６は、バス１０５を介してＣＰＵから、どのスレッドがメモリ又はＩ／Ｏアクセスを実行しているかを示すスレッドＩＤを受け取る。一実施形態では、スレッドＩＤチェッカ１１２は特定のメモリ領域を特定のスレッドに割り振る。
【００１８】
さらなる実施形態では、１つの非制限スレッドにすべてのメモリページに対するアクセス権が提供され、１つ又は複数の他の制限付きスレッドに特定のページのみへのアクセス権が提供される。さらに、ＣＰＵ１０２及びチップセット１１０は、コンピュータシステム１００プラットフォームの制限付き構成要素を変更できるようにする一方で、プラットフォームの非制限構成要素はリセットされない。さらなる実施形態では、非制限スレッドは制限付きスレッドに対して管理アクセス権を有することができる。このような管理アクセス権は、非制限スレッドが制限付きスレッドのアクセスレベルを調べられるようにする。
【００１９】
ＭＣＨは、タイマ資源及び割り込み資源１１４並びにリセットレジスタ及び電源管理レジスタ１１６も備える。タイマ資源及び割り込み資源は非制限スレッドに提供されて、非制限スレッドが、制限付きスレッド（複数可）により（故意に、又は偶発的に）変更できないタイマサービス及び割り込みサービスを有することを可能にする。
【００２０】
リセットレジスタ及び電源管理レジスタ１１６もまた非制限スレッドのために実装される。リセットレジスタ及び電源管理レジスタ１１６は、制限付きスレッドによって処理される事象を発生させる。これにより、制限付きスレッドはリセットポリシー及び電源管理ポリシーを所有することができる。一実施形態によれば、ＭＣＨ１１０は、普通ならばシステム管理割り込み（ＳＭＩ）を発生させる恐れのある危機的事象が、ＳＭＩに代えて非制限スレッドへの割り込みを発生させるようにする。これにより、制限付きスレッドで実行中のＯＳの実行フローを妨げることなく、ＯＳ独立スレッドを非制限スレッドで実行できるようになる。
【００２１】
ＭＣＨ１１０は、グラフィックスアクセラレータ１３０に結合されるグラフィックスインタフェース１１３を備えることもできる。一実施形態によれば、グラフィックスインタフェース１１３は、制限付きスレッドに関連するウィンドウを非制限スレッドに関連するウィンドウの上に配置することができないように、非制限スレッドがディスプレイモニタ（図示せず）にウィンドウを表示できるようにする。
【００２２】
ＭＣＨ１１０は、ハブインタフェースを介して入／出力制御ハブ（ＩＣＨ）１４０に結合される。ＩＣＨ１４０は、コンピュータシステム１００内の入／出力（Ｉ／Ｏ）装置へのインタフェースを提供する。ＩＣＨ１４０は、ディスクコントローラ１４２、オーディオコントローラ１４４、及びネットワークコントローラ１４６を含む。ディスクコントローラ１４２は１つ又は複数のディスクドライブ（図示せず）とインタフェースして、チップセット１０７とドライブとの間のデータ転送を制御する制御する。
【００２３】
一実施形態によれば、非制限スレッドは、ディスクコントローラ１４２を介してハードディスク２６０上のデータへのフルアクセスが許可される。しかし、このような実施形態では、制限付きスレッドにはディスク２６０の特定のセクションへのアクセスが許可されない。図２は、ディスクに結合されるディスクコントローラ１４２の一実施形態を示すブロック図である。ディスクコントローラ１４２は、インタフェース２３０及びＤＭＡエンジン２５０を備える。インタフェース２３０はインタフェース０及びインタフェース１を備える。
【００２４】
インタフェース０及びインタフェース１は、ハードディスク２６０上のデータにアクセスするソフトウェアへの独立したインタフェースを提示する。たとえば、或る構成空間は非制限スレッドにより見ることができる一方で、他の構成空間は１つ又は複数の非制限スレッドにより見ることができる。ＤＭＡエンジン２５０は、ハードディスク２６０間の直接メモリアクセスに役立つ。
【００２５】
再び図１を参照すると、オーディオコントローラ１４４は、音声の録音及び再生を調整するように動作する。一実施形態によれば、オーディオコントローラ１４４は、出力オーディオストリームが非制限スレッド及び制限付きスレッドに向けて独立して動作できるようにする。これは、制限付きスレッドが非制限スレッドを「ミュート化」しないようにする。さらなる実施形態では、オーディオコントローラ１４４は、入力ストリームをまず非制限スレッドに送れるようにするモードを含み、これは、オーディオデータを制限付きスレッドに渡すべきか否かを決めることができる。
【００２６】
ネットワークコントローラ１４６は、コンピュータシステム１００をコンピュータネットワーク（図１に示さず）にリンクし、機械間での通信をサポートする。一実施形態によれば、非制限スレッドはネットワークコントローラ１４６へのフルアクセスが許可されるが、制限付きスレッドはフルアクセスを有しない。一実施形態では、制限付きスレッドにより「送られる」パケットはまず、検査又は変更のために非制限スレッドが利用できるようにされる。さらに、ネットワークから受け取られたパケットはまず、制限付きスレッドが利用できるようになる前に非制限スレッドにより検査することができる。
【００２７】
図３は、コンピュータシステム１００でのメモリアクセス要求又はＩ／Ｏアクセス要求の場合の一実施形態の流れ図である。処理ブロック３１０では、装置へのアクセス要求はＣＰＵ１０２からチップセット１０７において受け取られる。たとえば、このようなメモリ１１５へのアクセス要求をＭＣＨ１１０において受け取ってもよい。同様に、ハードディスク２６０へのアクセス要求をディスクコントローラ１４２において受け取ってもよい。
【００２８】
処理ブロック３２０において、スレッドＩＤチェッカ１１６は、要求に含まれているスレッドＩＤを調べて、要求側スレッドを判断する。判断ブロック３３０において、要求側スレッドが制限付きスレッドであるか、又は非制限スレッドであるかが判断される。非制限スレッドの場合、非制限スレッドに、要求が向けられる装置からのデータへのフルアクセスが提供される（処理ブロック３４０）。
【００２９】
しかし、制限付きスレッドの場合、検査が行われて、制限付きスレッドが要求された資源へのアクセス権を有するか否かが判断される（処理ブロック３５０）。判断ブロック３６０において、制限付きスレッドが要求されたデータにアクセスできるか否かが判断される。アクセスが明記されている場合、スレッドに、要求が向けられる装置からの要求されたデータへのアクセス権が提供される（処理ブロック３７０）。しかし、スレッドが要求されたデータへのアクセス権を有しないと判断される場合、アクセスは拒絶される（処理ブロック３８０）。
【００３０】
おそらく、本発明の多くの代替及び変更が、上記説明を読んだ後に当業者に明らかになろうが、例示として図示し説明されたいかなる特定の実施形態も決して限定とみなされるものではないことを理解されたい。したがって、各種実施形態の詳細への言及は特許請求の範囲の限定を意図するものではなく、特許請求の範囲それ自体には、本発明の本質であるとみなされる特徴のみが記される。
【図面の簡単な説明】
【００３１】
【図１】コンピュータシステムの一実施形態のブロック図である。
【図２】ディスクに結合されているディスクコントローラの一実施形態を示すブロック図である。
【図３】コンピュータシステムの動作の一実施形態の流れ図である。
【図１】
2008518363.tif 000003
【図２】
2008518363.tif 000004
【図３】
2008518363.tif 000005
【国際調査報告】
2008518363.tif 000006
2008518363.tif 000007
2008518363.tif 000008