JP3982687B2 - 分離実行環境での複数の分離メモリへのアクセスの制御 - Google Patents

分離実行環境での複数の分離メモリへのアクセスの制御 Download PDF

Info

Publication number
JP3982687B2
JP3982687B2 JP2002512776A JP2002512776A JP3982687B2 JP 3982687 B2 JP3982687 B2 JP 3982687B2 JP 2002512776 A JP2002512776 A JP 2002512776A JP 2002512776 A JP2002512776 A JP 2002512776A JP 3982687 B2 JP3982687 B2 JP 3982687B2
Authority
JP
Japan
Prior art keywords
memory
page
processor
access
isolated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002512776A
Other languages
English (en)
Other versions
JP2004504663A (ja
JP2004504663A5 (ja
Inventor
ゴリバー,ロジャー
セカンド サットン,ジェイムズ・ザ
リン,デリック
サッカー,シュリーカント
ネイジャー,ギルバート
マッキーン,フランシス
ハーバート,ハワード
レネリス,ケネス
エリソン,カール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/618,738 external-priority patent/US6678825B1/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2004504663A publication Critical patent/JP2004504663A/ja
Publication of JP2004504663A5 publication Critical patent/JP2004504663A5/ja
Application granted granted Critical
Publication of JP3982687B2 publication Critical patent/JP3982687B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
(背景)
(発明の分野)
本発明は、マイクロプロセッサに関する。具体的には、本発明は、プロセッサ・セキュリティに関する。
【0002】
(関連技術の説明)
マイクロプロセッサ技術および通信技術の進歩によって、従来の取引の形を超えた応用分野の機会が開かれた。電子商取引(E−commerce)および産業間(B2B)トランザクションが、現在、普及しつつあり、常に増加する速度でグローバル・マーケット全体で行われている。残念ながら、現代のマイクロプロセッサ・システムは、ユーザに取引、通信、および取引実行の便利で効率的な方法を提供するが、悪辣な攻撃に対して脆弱でもある。これらの攻撃の例に、たとえば、ウィルス、侵入、セキュリティ・ブリーチ、およびタンパリングが含まれる。したがって、コンピュータ・システムの完全性を保護し、ユーザの信頼を高めるために、コンピュータ・セキュリティがますます重要になりつつある。
【0003】
悪辣な攻撃によって引き起こされる脅威は、複数の形態である可能性がある。ハッカーによる遠隔起動の侵入的攻撃は、数千または数百万のユーザに接続されたシステムの正常な動作を中断させる可能性がある。ウィルス・プログラムが、単一ユーザ・プラットフォームのコードおよび/またはデータを破壊する可能性がある。
【0004】
攻撃に対して保護する既存の技法は、多数の短所を有する。アンチウィルス・プログラムは、既知のウィルスだけをスキャンし、検出することができる。暗号または他のセキュリティ技法を使用するセキュリティ・コプロセッサまたはスマート・カードは、速度性能、メモリ容量、および柔軟性に制限を有する。さらに、オペレーティング・システムの再設計によって、ソフトウェア互換性の問題が生じ、開発労力への莫大な投資が必要になる。
【0005】
本発明の特徴および長所は、本発明の以下の詳細な説明から明らかになる。
【0006】
(説明)
本発明は、分離実行環境で複数の分離メモリへのメモリ・アクセスを制御する方法、装置、およびシステムである。ページ・マネージャを使用して、複数のページを、それぞれメモリの複数の異なる区域に分配する。メモリは、非分離区域と分離区域に分割される。ページ・マネージャが、メモリの分離区域に配置される。さらに、メモリ所有権ページ・テーブルによって、メモリの各ページが記述され、そのメモリ所有権ページ・テーブルもメモリの分離区域に配置される。ページ・マネージャは、ページがメモリの分離区域に分配される場合に、分離属性をページに割り当てる。その一方で、ページ・マネージャは、ページがメモリの非分離区域に分配される場合に、非分離属性をページに割り当てる。メモリ所有権ページ・テーブルに、各ページの属性が記録される。
【0007】
一実施形態では、通常実行モードおよび分離実行モードを有するプロセッサが、アクセス・トランザクションを生成する。アクセス・トランザクションは、構成設定を含む構成ストレージを使用して構成される。アクセス・トランザクションには、アクセスされるメモリの物理アドレスなどのアクセス情報が含まれる。構成設定によって、アクセス・トランザクションにかかわるメモリのページに関する情報が提供される。構成設定には、ページを分離または非分離として定義するページに関する属性と、プロセッサが分離実行モードに構成される時にアサートされる実行モード・ワードが含まれる。一実施形態では、実行モード・ワードが、プロセッサが分離実行モードであるかどうかを示す単一のビットである。構成ストレージに結合されたアクセス検査回路が、構成設定およびアクセス情報の少なくとも1つを使用して、アクセス・トランザクションを検査する。
【0008】
一実施形態では、アクセス検査回路に、TLBアクセス検査回路が含まれる。TLBアクセス検査回路は、アクセス・トランザクションが有効である場合に、アクセス許可信号を生成する。具体的に言うと、ページの属性に分離が設定され、実行モード・ワード信号がアサートされる場合に、TLBアクセス検査回路が、メモリの分離区域へのアクセス許可信号を生成する。したがって、プロセッサがメモリの分離区域の物理アドレスを要求する時に、そのプロセッサが分離実行モードで動作しており、物理アドレスに関連するページの属性に分離がセットされている場合に限って、アクセス・トランザクションが許可される。
【0009】
以下の説明では、説明のために、本発明の完全な理解を提供するために多数の詳細を示す。しかし、これらの詳細が、本発明を実践するのに必要ではないことを、当業者は諒解するであろう。他の場合には、本発明を不明瞭にしないために、周知の電気構造および電気回路を、ブロック図形式で示す。
【0010】
アーキテクチャの概要
コンピュータ・システムまたはコンピュータ・プラットフォームでセキュリティを提供するための原理の1つが、分離実行アーキテクチャという概念である。分離実行アーキテクチャには、直接にまたは間接にコンピュータ・システムまたはコンピュータ・プラットフォームのオペレーティング・システムと相互作用するハードウェア構成要素およびソフトウェア構成要素の論理定義および物理定義が含まれる。オペレーティング・システムおよびプロセッサは、さまざまな動作モードに対応する、リングと称する複数レベルの階層を有する場合がある。リングは、オペレーティング・システム内の専用のタスクを実行するように設計された、ハードウェア構成要素およびソフトウェア構成要素の論理的分割である。この分割は、通常は、特権の度合またはレベルすなわち、プラットフォームに対する変更を行う能力に基づく。たとえば、リング0は、最も内側のリングであり、階層の最上位である。リング0には、最もクリティカルな、特権を与えられた構成要素が含まれる。さらに、リング0のモジュールは、より低い特権を与えられたデータにもアクセスすることができるが、逆は成り立たない。リング3は、最も外側のリングであり、階層の最下位である。リング3には、通常は、ユーザまたはアプリケーションのレベルが含まれ、最低の特権を有する。リング1およびリング2は、セキュリティおよび/または保護のレベルが減少する、中間のリングである。
【0011】
図1Aは、本発明の一実施形態による論理オペレーティング・アーキテクチャ50を示す図である。論理オペレーティング・アーキテクチャ50は、オペレーティング・システムの構成要素およびプロセッサの抽象化である。論理オペレーティング・アーキテクチャ50には、リング0 10、リング1 20、リング2 30、リング3 40、およびプロセッサ・ナブ・ローダ52が含まれる。プロセッサ・ナブ・ローダ52は、プロセッサ・エグゼクティブ(PE)ハンドラのインスタンスである。PEハンドラは、後で説明するように、プロセッサ・エグゼクティブ(PE)の処理および/または管理に使用される。論理オペレーティング・アーキテクチャ50は、2つの動作モードすなわち、通常実行モードおよび分離実行モードを有する。論理オペレーティング・アーキテクチャ50内の各リングが、両方のモードで動作することができる。プロセッサ・ナブ・ローダ52は、分離実行モードのみで動作する。
【0012】
リング0 10には、2つの部分すなわち、通常実行リング0 11および分離実行リング0 15が含まれる。通常実行リング0 11には、通常はカーネルと称する、オペレーティング・システムにとってクリティカルなソフトウェア・モジュールが含まれる。このソフトウェア・モジュールには、主オペレーティング・システム(たとえばカーネル)12、ソフトウェア・ドライバ13、およびハードウェア・ドライバ14が含まれる。分離実行リング0 15には、オペレーティング・システム(OS)ナブ16およびプロセッサ・ナブ18が含まれる。OSナブ16は、OSエグゼクティブ(OSE)のインスタンスであり、プロセッサ・ナブ18は、プロセッサ・エグゼクティブ(PE)のインスタンスである。OSEおよびPEは、分離区域および分離実行モードに関連する保護された環境で動作するエグゼクティブ・エンティティの一部である。プロセッサ・ナブ・ローダ52は、システムのチップセット内に保持される保護されたブートストラップ・ローダ・コードであり、後で説明するように、プロセッサまたはチップセットから分離区域にプロセッサ・ナブ18をロードする責任を負う。
【0013】
同様に、リング1 20、リング2 30、およびリング3 40に、それぞれ、通常実行リング1 21、通常実行リング2 31、および通常実行リング3 41と、分離実行リング1 25、分離実行リング2 35、および分離実行リング3 45が含まれる。具体的に言うと、通常実行リング3に、N個のアプリケーション42から42が含まれ、分離実行リング3に、K個のアプレット46から46が含まれる。
【0014】
分離実行アーキテクチャの概念の1つが、コンピュータ・システム内のプロセッサおよびチップセットの両方によって保護される、分離区域と称するシステム・メモリ内の分離された領域の作成である。分離領域は、アドレス変換バッファ(TLB)アクセス検査によって保護される、キャッシュ・メモリ内に置くこともできる。また、下で説明するように、分離領域を複数の分離メモリ区域に副分割することができる。この分離領域へのアクセスは、分離読取サイクルおよび分離書込サイクルと称する特殊なバス(たとえばメモリ読み書き)サイクルを使用して、プロセッサのフロント・サイド・バス(FSB)からのみ許可される。特殊なバス・サイクルを、スヌープに使用することもできる。分離読取サイクルおよび分離書込サイクルは、分離実行モードで動作するプロセッサによって発行される。分離実行モードは、プロセッサ・ナブ・ローダ52と組み合わされた、プロセッサの特権命令を使用して初期化される。プロセッサ・ナブ・ローダ52は、リング0ナブ・ソフトウェア・モジュール(たとえばプロセッサ・ナブ18)を検証し、分離区域にロードする。プロセッサ・ナブ18は、分離実行に関するハードウェア関連のサービスを提供する。
【0015】
プロセッサ・ナブ18の作業の1つが、リング0のOSナブ16を検証し、分離区域にロードし、プラットフォーム、プロセッサ・ナブ18、およびオペレーティング・システム・ナブ16の組合せに一意の鍵階層のルートを生成することである。プロセッサ・ナブ18は、オペレーティング・システム・ナブ16の検証、ロード、およびログ記録を含む分離区域の初期セットアップおよび低水準管理と、オペレーティング・システム・ナブの秘密を保護するのに使用される対称鍵の管理を行う。プロセッサ・ナブ18は、他のハードウェアによって提供される低水準セキュリティ・サービスへのアプリケーション・プログラミング・インターフェース(API)抽象化も提供することができる。
【0016】
オペレーティング・システム・ナブ16は、主OS12(たとえば、オペレーティング・システムの保護されないセグメント)内のサービスへのリンクを提供し、分離区域内のページ管理を提供し、アプレット46から46を含むリング3アプリケーション・モジュール45を、分離区域に割り振られた保護されたページにロードする責任を有する。オペレーティング・システム・ナブ16は、リング0サポート・モジュールもロードする。下で説明するように、主OS12は、分離区域の外のページを管理する。
【0017】
オペレーティング・システム・ナブ16は、分離区域と普通の(たとえば非分離)区域との間のデータのページングをサポートすることを選択することができる。そうである場合には、オペレーティング・システム・ナブ16は、ページを普通のメモリに追い出す前に分離区域ページを暗号化し、ハッシュし、ページの復元の際にページ内容を検査する責任も負う。分離モードのアプレット46から46およびこれらのデータは、他のアプレットならびに、非分離空間アプリケーション(たとえば42から42)、ダイナミック・リンク・ライブラリ(DLL)、ドライバ、および主オペレーティング・システム12だけからのすべてのソフトウェア攻撃に対して抗タンパであり、抗モニタである。プロセッサ・ナブ18またはオペレーティング・システム・ナブ16だけは、アプレットの実行に干渉するかアプレットの実行を監視することができる。
【0018】
図1Bは、本発明の一実施形態による、オペレーティング・システム内のさまざまな要素10およびプロセッサのアクセス可能性を示す図である。例示のために、リング0 10およびリング3 40の要素だけを図示する。論理オペレーティング・アーキテクチャ50のさまざまな要素が、そのリング階層および実行モードに従って、アクセス可能物理メモリ60にアクセスする。
【0019】
アクセス可能物理メモリ60には、分離区域70と非分離区域80が含まれる。分離区域70には、アプレット・ページ72とナブ・ページ74が含まれる。非分離区域80には、アプリケーション・ページ82とオペレーティング・システム・ページ84が含まれる。分離区域70は、分離実行モードで動作する、オペレーティング・システムの要素およびプロセッサだけからアクセス可能である。非分離区域80は、リング0オペレーティング・システムのすべての要素およびプロセッサからアクセス可能である。
【0020】
主OS12、ソフトウェア・ドライバ13、およびハードウェア・ドライバ14を含む通常実行リング0 11は、OSページ84およびアプリケーション・ページ82の両方にアクセスすることができる。アプリケーション42から42を含む通常実行リング3は、アプリケーション・ページ82だけにアクセスすることができる。しかし、通常実行リング0 11と通常実行リング3 41の両方が、分離区域70にアクセスできない。
【0021】
OSナブ16およびプロセッサ・ナブ18を含む分離実行リング0 15は、アプレット・ページ72およびナブ・ページ74を含む分離区域70と、アプリケーション・ページ82およびOSページ84を含む非分離区域80の両方にアクセスすることができる。アプレット46から46を含む分離実行リング3 45は、アプリケーション・ページ82およびアプレット・ページ72だけにアクセスすることができる。アプレット46から46は、分離区域70に常駐する。
【0022】
図1Cは、本発明の一実施形態による、分離メモリ区域70が複数の分離メモリ区域71に分割され、非分離メモリ区域80が複数の非分離メモリ区域83に分割される、オペレーティング・システム内のさまざまな要素およびプロセッサを示す、図1Bに類似する図である。例示のために、リング0 10およびリング3 40の要素だけを図示する。論理オペレーティング・アーキテクチャ50のさまざまな要素が、そのリング階層および実行モードに従ってアクセス可能物理メモリ60にアクセスする。アクセス可能物理メモリ60には、複数の分離区域71と複数の非分離区域83が含まれる。
【0023】
複数の分離区域71には、アプレット・ページ72およびオペレーティング・システム(OS)ナブ・ページ74が含まれる。複数の分離区域71の1つに、プロセッサ・ナブ・ページ73に埋め込まれるプロセッサ・ナブ18(すなわちプロセッサ・エグゼクティブ(PE))も含まれる。複数の非分離区域83には、アプリケーション・ページ82とオペレーティング・システム(OS)ページ84が含まれる。複数の分離区域71は、分離実行モードで動作する、オペレーティング・システムの要素およびプロセッサだけからアクセス可能である。非分離区域83は、リング0のオペレーティング・システムの要素のすべておよびプロセッサからアクセス可能である。
【0024】
図1Cに示されたこの実施形態では、図1Bに示された単一ブロックの分離メモリ区域70とは異なって、分離メモリ区域70が、複数の分離メモリ区域71に分割され、分離メモリを使用する際の高められたプラットフォーム機能性が可能になる。複数の分離メモリ区域71をサポートするために、OSナブ・ページ74に埋め込まれるOSナブ16(すなわちOSエグゼクティブ(OSE))に、ページ・マネージャ75とメモリ所有権ページ・テーブル77が含まれる。OSナブは、ページ・マネージャ75を制御する。ページ・マネージャ75は、OSナブ・ページ74およびアプレット・ページ72などの複数の分離メモリ区域71と、OSページ84およびアプリケーション・ページ82などの非分離メモリ区域83にページを分配する責任を負う。ページ・マネージャ75は、メモリ所有権ページ・テーブル77も管理し、維持する。後で説明するように、メモリ所有権ページ・テーブル77によって、各ページが記述され、メモリ所有権ページ・テーブル77は、プロセッサによるアクセス・トランザクションの構成を助け、さらに、アクセス・トランザクションが有効であることを検証するのに使用される。ページ・マネージャ75が、複数の分離メモリ区域71および複数の非分離メモリ区域83を作成できるようにすることによって、アクセス可能物理メモリ60が、システム・メモリ要件の変更に容易に対処できるようになる。
【0025】
主OS12、ソフトウェア・ドライバ13、およびハードウェア・ドライバ14を含む通常実行リング0 11は、OSページ84とアプリケーション・ページ82の両方にアクセスすることができる。アプリケーション42から42を含む通常実行リング3は、アプリケーション・ページ82だけにアクセスすることができる。しかし、通常実行リング0 11および通常実行リング3 41の両方が、複数の分離メモリ区域71にアクセスすることができない。
【0026】
OSナブ16およびプロセッサ・ナブ18を含む分離実行リング0 15は、アプレット・ページ72およびOSナブ・ページ74を含む複数の分離メモリ区域71と、アプリケーション・ページ82およびOSページ84を含む複数の非分離メモリ区域83の両方にアクセスすることができる。アプレット46から46を含む分離実行リング3 45は、アプリケーション・ページ82およびアプレット・ページ72だけにアクセスすることができる。アプレット46から46は、複数の分離メモリ区域71に常駐する。
【0027】
図1Dは、本発明の一実施形態による、分離実行のためにメモリのページを分配する処理86を示す流れ図である。
【0028】
開始時に、処理86では、メモリのページを、それぞれアクセス可能物理メモリ60の異なる区域に分配する(ブロック87)。ページは、分離区域71と非分離区域83の両方に分配される。好ましい実施形態では、ページのサイズが固定される。たとえば、各ページを、4MBまたは4KBとすることができる。次に、処理86では、各ページに属性を割り当てる(ブロック88)。処理86では、ページがメモリの分離区域に分配される場合に分離属性をページに割り当て、ページがメモリの非分離区域に分配される場合に非分離属性をページに割り当てる。その後、処理86が終了する。
【0029】
図1Eは、本発明の一実施形態による、メモリ所有権ページ・テーブル77と、仮想アドレスを物理アドレスに変換する処理を示す図である。前に述べたように、ページ・マネージャ75が、メモリ所有権ページ・テーブル77を管理する。メモリ所有権ページ・テーブル77には、複数のページ・テーブル・エントリ93が含まれる。各ページ・テーブル・エントリ93に、下記の構成要素が含まれる:ページのベース95およびページの属性96(分離または非分離)。ページ・マネージャ75だけが、ページに割り当てられる属性96を変更することができる。各ページ98に、複数の物理アドレス99が含まれる。ページ・マネージャ75は、分離メモリ区域および非分離メモリ区域が変更される時に、メモリ所有権ページ・テーブル77をフラッシュするか、ページ・テーブル・エントリ93を無効化する。その後、ページ・マネージャ75が、分離メモリ区域および非分離メモリ区域を再割り当てし、初期化する。
【0030】
仮想アドレス212に、ページ・テーブル・コンポーネント91とオフセット92が含まれる。仮想アドレス212を物理アドレス99に変換する処理を、下で説明する。
【0031】
図1Fは、本発明の一実施形態を実践することができるコンピュータ・システム100を示す図である。コンピュータ・システム100には、プロセッサ110、ホスト・バス120、メモリ・コントローラ・ハブ(MCH)130、システム・メモリ140、入出力コントローラ・ハブ(ICH)150、不揮発性メモリまたはシステム・フラッシュ160、大容量記憶デバイス170、入出力デバイス175、トークン・バス180、マザーボード(MB)トークン182、リーダ184、およびトークン186が含まれる。MCH130は、分離実行モード、ホスト−周辺バス・インターフェース、メモリ制御などの複数の機能性を統合したチップセットに統合することができる。同様に、ICH150も、入出力機能を実行するために、MCH130と一緒にまたは別々にチップセットに統合することができる。説明を明瞭にするために、周辺バスのすべてが図示されているわけではない。システム100に、Peripheral Component Interconnect(PCI)、accelerated graphics port(AGP)、Industry Standard Architecture(ISA)バス、およびUniversal Serial Bus(USB)などの周辺バスも含めることができることが企図されている。
【0032】
プロセッサ110は、複合命令セット・コンピュータ(CISC)、縮小命令セット・コンピュータ(RISC)、very long instruction word(VLIW)、またはハイブリッド・アーキテクチャなど、すべてのタイプのアーキテクチャの中央処理装置を表す。一実施形態では、プロセッサ110が、Pentium(登録商標)シリーズ、IA−32(商標)、およびIA−64(商標)などのインテル・アーキテクチャ(IA)プロセッサとの互換性を有する。プロセッサ110には、通常実行モード112および分離実行回路115が含まれる。通常実行モード112は、プロセッサ110が非保護環境または分離実行モジュールによって提供されるセキュリティ機能がない普通の環境で動作するモードである。分離実行回路115は、プロセッサ110が分離実行モードで動作できるようにする機構を提供する。分離実行回路115は、分離実行モード用のハードウェア・サポートおよびソフトウェア・サポートを提供する。このサポートには、分離実行の構成、1つまたは複数の分離区域の定義、分離命令の定義(たとえばデコードおよび実行)、分離アクセス・バス・サイクルの生成、および分離モード割込みの生成が含まれる。
【0033】
一実施形態では、コンピュータ・システム100を、たとえばプロセッサ110などの1つの主中央制御装置だけを有する、デスクトップ・コンピュータなどの単一の処理システムとすることができる。他の実施形態では、コンピュータ・システム100に、図1Fに示されたものなど、たとえばプロセッサ110、110a、110bなどの複数のプロセッサを含めることができる。したがって、コンピュータ・システム100は、任意の数のプロセッサを有するマルチプロセッサ・コンピュータ・システムとすることができる。たとえば、マルチプロセッサのコンピュータ・システム100は、サーバまたはワークステーション環境の一部として動作することができる。プロセッサ110の基本的な説明およびオペレーションを、下で詳細に説明する。プロセッサ110の基本的な説明およびオペレーションが、図1Fに示された他のプロセッサ110aおよび110b、ならびに、本発明の一実施形態に従ってマルチプロセッサ・コンピュータ・システム100内で使用することができる任意の数の他のプロセッサに適用されることを、当業者は諒解するであろう。
【0034】
プロセッサ110は、複数の論理プロセッサを有することもできる。時々スレッドとも称する論理プロセッサは、ある区分ポリシに従って割り振られるアーキテクチャ的状態および物理リソースを有する、物理プロセッサ内の機能単位である。本発明の文脈では、用語「スレッド」および「論理プロセッサ」が、同一のことを意味するのに使用される。マルチスレッド・プロセッサは、複数のスレッドまたは複数の論理プロセッサを有するプロセッサである。マルチプロセッサ・システム(たとえばプロセッサ110、110a、110bを含むシステム)は、複数のマルチスレッド・プロセッサを有することができる。
【0035】
ホスト・バス120は、プロセッサ110またはプロセッサ110、110a、および110bが、他のプロセッサまたはデバイス、たとえばMCH130と通信できるようにするインターフェース信号を提供する。通常モードの外に、ホスト・バス120は、プロセッサ110が分離実行モードで構成される時にメモリ読取サイクルおよびメモリ書込サイクルに関する対応するインターフェース信号を有する分離アクセス・バス・モードを提供する。分離アクセス・バス・モードは、プロセッサ110が分離実行モードである間に開始されるメモリ・アクセスの際にアサートされる。分離アクセス・バス・モードは、命令プリフェッチ・サイクルおよびキャッシュ・ライトバック・サイクルに、アドレスが分離区域アドレス範囲内であり、プロセッサ110が分離実行モードで初期化される場合にもアサートされる。プロセッサ110は、分離アクセス・バス・サイクルがアサートされ、プロセッサ110が分離実行モードに初期化される場合に、分離区域アドレス範囲内のキャッシングされるアドレスへのスヌープ・サイクルに応答する。
【0036】
MCH130は、システム・メモリ140およびICH150などのメモリおよび入出力デバイスの制御および構成を提供する。MCH130は、分離メモリ読取サイクルおよび分離メモリ書込サイクルを含む、メモリ参照バス・サイクルでの分離アクセス・アサートを認識し、サービスするインターフェース回路を提供する。さらに、MCH130は、システム・メモリ140内の1つまたは複数の分離区域を表すメモリ範囲レジスタ(たとえばベース・レジスタおよび長さレジスタ)を有する。構成された後に、MCH130は、分離アクセス・バス・モードをアサートされていない、分離区域へのアクセスのすべてを打ち切る。
【0037】
システム・メモリ140には、システム・コードおよびデータが格納される。システム・メモリ140は、通常は、ダイナミック・ランダム・アクセス・メモリ(DRAM)またはスタティック・ランダム・アクセス・メモリ(SRAM)を用いて実装される。システム・メモリ140には、アクセス可能物理メモリ60(図1Bおよび1Cに図示)が含まれる。アクセス可能物理メモリには、ロードされたオペレーティング・システム142、分離区域70(図1B)または分離区域71(図1C)、および分離制御および状況空間148が含まれる。ロードされたオペレーティング・システム142は、オペレーティング・システムのうちでシステム・メモリ140にロードされた部分である。ロードされたOS142は、通常は、ブート読取専用メモリ(ROM)などのブート・ストレージ内のブート・コードを介して大容量記憶デバイスからロードされる。分離区域70(図1B)または分離区域71(図1C)は、分離実行モードで動作する時のプロセッサ110によって定義されるメモリ区域である。分離区域へのアクセスは、プロセッサ110および/またはMCH130もしくは分離区域機能性を統合する他のチップセットによって、制限され、実施される。分離制御および状況空間148は、プロセッサ110および/またはMCH130によって定義される、入出力風の、独立のアドレス空間である。分離制御および状況空間148には、主に、分離実行制御および状況レジスタが含まれる。分離制御および状況空間148は、既存のアドレス空間とオーバーラップせず、分離バス・サイクルを使用してアクセスされる。システム・メモリ140に、図示されていない他のプログラムまたはデータを含めることもできる。
【0038】
ICH150は、分離実行モード機能性を有するシステム内の既知の単一の点を表す。説明を明瞭にするために、1つのICH150だけを図示する。システム100は、ICH150に類似する多数のICHを有することができる。複数のICHがある時に、指定されたICHが、分離区域の構成および状況を制御するために選択される。一実施形態では、この選択が、外部ストラッピング・ピンによって実行される。当業者に既知のように、プログラマブル構成レジスタの使用を含む、他の選択方法を使用することができる。ICH150は、従来の入出力機能に加えて、分離実行モードをサポートするために設計された複数の機能性を有する。具体的に言うと、ICH150には、分離バス・サイクル・インターフェース152、プロセッサ・ナブ・ローダ52(図1Aに図示)、ダイジェスト・メモリ154、暗号鍵ストレージ155、分離実行論理処理マネージャ156、およびトークン・バス・インターフェース159が含まれる。
【0039】
分離バス・サイクル・インターフェース152には、分離読取バス・サイクルおよび分離書込バス・サイクルなどの分離バス・サイクルを認識し、サービスするために分離バス・サイクル信号にインターフェースする回路が含まれる。図1Aに示されたプロセッサ・ナブ・ローダ52には、プロセッサ・ナブ・ローダ・コードとそのダイジェスト(たとえばハッシュ)値が含まれる。プロセッサ・ナブ・ローダ52は、割り当てられた分離命令(たとえばIso−Init)の実行によって呼び出され、分離区域70または分離区域71の1つに転送される。分離区域から、プロセッサ・ナブ・ローダ52が、プロセッサ・ナブ18をシステム・フラッシュ(たとえば不揮発性メモリ160内のプロセッサ・ナブ18)から分離区域70にコピーし、その保全性を検証し、ログ記録し、プロセッサ・ナブの秘密を保護するのに使用される対称鍵を管理する。一実施形態では、プロセッサ・ナブ・ローダ52が、読取専用メモリ(ROM)内に実装される。セキュリティのために、プロセッサ・ナブ・ローダ52は、変更されず、抗タンパであり、置換不能である。通常はRAM内に実装されるダイジェスト・メモリ154には、プロセッサ・ナブ18の、オペレーティング・システム・ナブ16の、および分離実行空間にロードされた他のクリティカル・モジュール(たとえばリング0モジュール)の、ダイジェスト(たとえばハッシュ)値が格納される。
【0040】
暗号鍵ストレージ155には、システム100のプラットフォームについて一意の対象暗号化/復号鍵が保持される。一実施形態では、暗号鍵ストレージ155に、製造時にプログラムされる内部ヒューズが含まれる。代替案では、暗号鍵ストレージ155を、乱数ジェネレータおよびピンのストラップを用いて作成することもできる。分離実行論理処理マネージャ156は、分離実行モードで動作する論理プロセッサのオペレーションを管理する。一実施形態では、分離実行論理処理マネージャ156に、分離実行モードに参加する論理プロセッサの数を追跡する論理プロセッサ・カウント・レジスタが含まれる。トークン・バス・インターフェース159は、トークン・バス180にインターフェースする。プロセッサ・ナブ・ローダ・ダイジェスト、プロセッサ・ナブ・ダイジェスト、オペレーティング・システム・ナブ・ダイジェスト、および任意選択の追加のダイジェストの組合せによって、分離ダイジェストと称する、包括的な分離実行ダイジェストが表される。分離ダイジェストは、分離実行の構成およびオペレーションを制御するリング0コードを識別する指紋である。分離ダイジェストは、現在の分離実行の状態を証明または立証するのに使用される。
【0041】
不揮発性メモリ160には不揮発性情報が格納される。通常、不揮発性メモリ160は、フラッシュ・メモリで実装される。不揮発性メモリ160には、プロセッサ・ナブ18が含まれる。
【0042】
プロセッサ・ナブ18は、オペレーティング・システム・ナブ16の検証、ロード、およびログ記録を含む分離区域(システム・メモリ140内)の初期セットアップおよび低水準管理と、オペレーティング・システム・ナブの秘密を保護するのに使用される対称鍵の管理を行う。プロセッサ・ナブ18は、他のハードウェアによって提供される低水準セキュリティ・サービスへのアプリケーション・プログラミング・インターフェース(API)抽象化を提供することもできる。プロセッサ・ナブ18は、相手先商標製造会社(OEM)またはオペレーティング・システム・ベンダ(OSV)によって、ブート・ディスクを介して配布することもできる。
【0043】
大容量記憶デバイス170には、コード(たとえばプロセッサ・ナブ18)、プログラム、ファイル、データ、アプリケーション(たとえばアプリケーション42から42)、アプレット(たとえばアプレット46から46)、およびオペレーティング・システムなどのアーカイブ情報が格納される。大容量記憶デバイス170に、コンパクト・ディスク(CD)ROM172、フロッピ・ディスケット174、ハード・ドライブ176、および他の磁気記憶デバイスまたは光学記憶デバイスを含めることができる。大容量記憶デバイス170は、機械可読媒体を読み取る機構を備えている。
【0044】
入出力デバイス175には、入出力機能を実行するすべての入出力デバイスを含めることができる。入出力デバイス175の例には、入力デバイス(たとえば、キーボード、マウス、トラックボール、ポインティング・デバイス)のコントローラ、メディア・カード(たとえば、オーディオ、ビデオ、グラフィックス)、ネットワーク・カード、および他の周辺コントローラが含まれる。
【0045】
トークン・バス180は、ICH150とシステム内のさまざまなトークンの間のインターフェースを提供する。トークンとは、セキュリティ機能性を伴う専用の入出力機能を実行するデバイスである。トークンは、少なくとも1つの目的を予約された秘密鍵/公開鍵対と秘密鍵を用いてデータに署名する能力を含むスマート・カードに類似する特性を有する。トークン・バス180に接続されるトークンの例には、マザーボード・トークン182、トークン・リーダ184、および他のポータブル・トークン186(たとえばスマート・カード)が含まれる。ICH150内のトークン・バス・インターフェース159は、トークン・バス180を介してICH150に接続され、分離実行の状態を証明するように指令された時に、対応するトークン(たとえばマザーボード・トークン182、トークン186)が、有効な分離ダイジェスト情報だけに署名するようにする。セキュリティのために、トークンは、ダイジェスト・メモリに接続されなければならない。
【0046】
ソフトウェアで実施される時に、本発明の要素は、必要な作業を実行するコード・セグメントである。プログラム・セグメントまたはコード・セグメントは、プロセッサ可読媒体などの機械可読媒体に格納されるか、伝送媒体を介して、搬送波に組み込まれたコンピュータ・データ信号または搬送波によって変調される信号によって伝送される。「プロセッサ可読媒体」には、情報を格納するか転送することができるすべての媒体を含めることができる。プロセッサ可読媒体の例には、電子回路、半導体メモリ・デバイス、ROM、フラッシュ・メモリ、消去可能プログラマブルROM(EPROM)、フロッピ・ディスケット、コンパクト・ディスクROM(CD−ROM)、光ディスク、ハード・ディスク、光ファイバ媒体、無線(RF)リンク、などが含まれる。コンピュータ・データ信号には、電子ネットワーク・チャネル、光ファイバ、空気、電磁気、RFリンクなどの伝送媒体を介して伝播することができるすべての信号を含めることができる。コード・セグメントを、インターネット、イントラネットなどのコンピュータ・ネットワークを介してダウンロードすることができる。
【0047】
分離実行環境での複数の分離メモリへのアクセスの制御
本発明は、分離実行環境で、図1Cに示された複数の分離メモリ71へのメモリ・アクセスを制御する方法、装置、およびシステムである。図2Aは、本発明の一実施形態による、図1Fに示された分離実行回路115を示す図である。分離実行回路115には、コア実行回路205、アクセス・マネージャ220、およびキャッシュ・メモリ・マネージャ230が含まれる。
【0048】
コア実行ユニット205には、命令デコーダおよび実行ユニット210とアドレス変換バッファ(TLB)218が含まれる。命令デコーダおよび実行ユニット210は、命令フェッチ・ユニットから命令ストリーム215を受け取る。命令ストリーム215には、複数の命令が含まれる。命令デコーダおよび実行ユニット210は、命令をデコードし、デコードされた命令を実行する。これらの命令は、マイクロレベルまたはマクロレベルとすることができる。命令デコーダおよび実行ユニット210は、物理回路とするか、命令のデコードおよび実行の処理の抽象化とすることができる。さらに、命令に、分離命令と非分離命令を含めることができる。命令デコーダおよび実行ユニット210は、アクセス・トランザクションがある時に、仮想アドレス212を生成する。
【0049】
TLB218によって、仮想アドレス212が物理アドレス99に変換される。TLB218には、メモリ所有権ページ・テーブル(MOPT)77のキャッシュ219が含まれる。TLB218では、まず、キャッシュ219を調べて、仮想アドレス212と一致する物理アドレスおよび関連するページ・テーブル・エントリを見つける。物理アドレスがキャッシュ219内にない場合には、TLB218では、MOPT77自体を検索する。TLB218では、MOPTのベース221を使用して、物理アドレスを検索する。図1Eを参照すると、MOPTのベース221および仮想アドレス212のページ・テーブル・コンポーネント91から開始して、TLB218では、仮想アドレス212のページ・テーブル・エントリ93を見つける。前に述べたように、各ページ・テーブル・エントリ93に、ページのベース95およびページの属性96(分離または非分離)が含まれる。仮想アドレスのページのベース95およびオフセット構成要素92を使用して、TLB218で、仮想アドレスに対応する物理アドレス99を見つけることができる。TLBを使用する物理アドレスへの仮想アドレスの変換が、当技術分野で周知であることを諒解されたい。後で説明するように、ページの属性96(分離または非分離)は、分離実行のためにアクセス・トランザクションを構成する際に重要である。
【0050】
図2Aを参照すると、コア実行ユニット205は、制御/状況情報222、オペランド224、およびアクセス情報226を介して、アクセス・マネージャ220とインターフェースする。制御/状況情報222には、分離バス・サイクル・ジェネレータ220のさまざまな要素を操作する制御ビットおよびアクセス・マネージャ220からの状況データが含まれる。オペランド224には、アクセス・マネージャ220との間で読み書きされるデータが含まれる。アクセス情報226には、アドレス情報(たとえば、TLB218によって供給される物理アドレス)、読取/書込、およびアクセス・タイプの情報が含まれる。
【0051】
アクセス・マネージャ220は、命令実行の結果としてコア実行ユニット205から、制御/状況情報222を受け取り、供給し、オペランド224情報を受け取り、供給し、アクセス情報226を受け取り、キャッシュ・メモリ・マネージャ230からキャッシュ・アクセス信号235(たとえばキャッシュ・ヒット)および属性96(分離または非分離)を受け取る。アクセス・マネージャ220は、システム内の別のプロセッサから、外部分離アクセス信号278およびフロント・サイド・バス(FSB)アドレス情報信号228も受け取る。外部分離アクセス信号278は、システム内の別のプロセッサが分離メモリ区域の1つへのアクセスを試みる時にアサートされる。アクセス・マネージャ220は、分離アクセス信号272、アクセス許可信号274、およびプロセッサ・スヌープ・アクセス信号276を生成する。分離アクセス信号272は、プロセッサ110が分離モード命令を実行していることを示すためにプロセッサ110の外部のデバイス(たとえばチップセット)に送られる分離バス・サイクル230を生成するのに使用することができる。プロセッサ・スヌープ・アクセス信号276は、スヌープ・アクセスがヒットまたはミスのどちらであるかを判定するために、他のデバイスまたはチップセットが使用することができる。分離アクセス信号272、アクセス許可信号274、およびプロセッサ・スヌープ・アクセス信号276は、他の分離アクティビティまたは非分離アクティビティを制御し、監視するために、プロセッサ110によって内部的にも使用することができる。
【0052】
キャッシュ・メモリ・マネージャ230は、コア実行ユニット205からアクセス情報226を受け取り、アクセス・マネージャ220へのキャッシュ・アクセス信号235を生成する。キャッシュ・メモリ・マネージャ230には、当業者に既知のように、キャッシュ情報を格納するキャッシュ・メモリ232およびキャッシュ・トランザクションを管理する他の回路が含まれる。キャッシュ・アクセス信号235によって、キャッシュ・アクセスの結果が示される。一実施形態では、キャッシュ・アクセス信号235が、キャッシュ・アクセスからのキャッシュ・ヒットがある時にアサートされるキャッシュ・ヒット信号である。
【0053】
図2Bは、本発明の一実施形態による、図2Aに示されたアクセス・マネージャを示す図である。アクセス・マネージャ220には、構成ストレージ250およびアクセス検査回路270が含まれる。アクセス・マネージャ220は、図2Aに示されたコア実行ユニット205とオペランド224情報を交換し、コア実行ユニット205からアクセス情報226を受け取る。オペランド224情報には、物理アドレス99に関連するページの属性96(分離または非分離)が含まれる。アクセス・マネージャ220は、図2Aに示されているように、キャッシュ・マネージャ230からキャッシュ・アクセス信号235を受け取り、別のプロセッサから外部分離アクセス信号278およびFSBアドレス情報228を受け取る。アクセス・マネージャ220は、さらに、キャッシュ・マネージャ230から属性96(分離または非分離)を受け取る。属性は、キャッシュ・ラインごとである。アクセス情報226には、物理アドレス99、読取/書込(RD/WR#)信号284、およびアクセス・タイプ286が含まれる。アクセス情報226は、プロセッサ110によるアクセス・トランザクション中に生成される。アクセス・タイプ286によって、メモリ参照、入出力参照、および論理プロセッサ・アクセスを含むアクセスのタイプが示される。論理プロセッサ・アクセスには、分離されたイネーブルされた状態への論理プロセッサ進入(entry)と、分離されたイネーブルされた状態からの論理プロセッサ離脱(withdrawal)が含まれる。
【0054】
構成ストレージ250には、プロセッサ110によって生成されるアクセス・トランザクションを構成するための構成パラメータが含まれる。プロセッサ110は、通常実行モードと分離実行モードを有する。アクセス・トランザクションは、アクセス情報を有する。構成ストレージ250は、命令デコーダおよび実行ユニット210(図2A)からオペランド224情報を受け取る。構成ストレージ250には、ページの属性レジスタ251およびプロセッサ制御レジスタ252が含まれる。属性レジスタ251には、分離または非分離のいずれかがセットされる、物理アドレスに関連するページの属性96が含まれる。プロセッサ制御レジスタ252には、実行モード・ワード253が含まれる。実行モード・ワード253は、プロセッサ110が分離実行モードに構成される時にアサートされる。一実施形態では、実行モード・ワード253は、プロセッサ110が分離実行モードであるかどうかを示す単一のビットである。
【0055】
アクセス検査回路270は、構成パラメータ(たとえば実行モード・ワード253および属性96)およびアクセス情報226の少なくとも1つを使用して、アクセス・トランザクションを検査する。アクセス検査回路270は、構成ストレージ250内のパラメータ、プロセッサ110によって生成されるトランザクション内のアクセス情報226、およびFSBアドレス情報228の少なくとも1つを使用して、プロセッサ分離アクセス信号272、アクセス許可信号274、およびプロセッサ・スヌープ・アクセス信号276を生成する。FSBアドレス情報228は、通常は、別のプロセッサによって供給され、FSB上でスヌープされる。分離アクセス信号272は、プロセッサ110が分離実行モードに構成される時にアサートされる。アクセス許可信号274は、アクセスが許可されたことを示すのに使用される。プロセッサ・スヌープ・アクセス信号276は、別のプロセッサからのアクセスがヒットまたはミスのどちらをもたらしたかを判定するのに使用される。
【0056】
図3Aは、本発明の一実施形態による、アクセス検査回路270を示す図である。アクセス検査回路270には、TLBアクセス検査回路310と、FSBスヌープ検査回路330が含まれる。
【0057】
TLBアクセス検査回路310は、属性96および実行モード・ワード253を受け取って、アクセス許可信号274を生成する。分離区域へのアクセス許可信号274は、属性96に分離がセットされ、実行モード・ワード253がアサートされ、分離アクセスが有効であるか構成に従って許可されることが示される時にアサートされる。一実施形態では、TLBアクセス検査回路310が、論理「排他NOR」オペレーションを実行する。したがって、プロセッサが、分離区域の物理アドレスを要求する時に、そのプロセッサが分離実行モードで動作しており、物理アドレスに関連するページの属性に分離がセットされている場合に限って、アクセス・トランザクションが許可される。
【0058】
FSBスヌープ検査回路330は、TLBアクセス検査回路310に似た機能を実行する。FSBスヌープ検査回路330は、キャッシュ・アクセス信号235、外部分離アクセス信号278、および属性96を組み合わせることによって、プロセッサ・スヌープ・アクセス信号276を生成する。FSBスヌープ検査回路330には、第1コンバイナ342および第2コンバイナ344が含まれる。第1コンバイナ342は、スヌープされるラインの属性96(分離または非分離)をキャッシュ・マネージャ230から受け取り、スヌープを行う別のプロセッサから外部分離アクセス信号278を受け取る。属性は、キャッシュ・ラインごとである。一実施形態では、第1コンバイナ342が、論理「排他NOR」オペレーションを実行する。第2コンバイナ344は、第1コンバイナ342の結果をキャッシュ・アクセス信号235(たとえばキャッシュ・ヒット)と組み合わせる。一実施形態では、第2コンバイナ344が、論理ANDオペレーションを実行する。したがって、プロセッサは、スヌープするプロセッサが分離実行モードで動作しており、ページの属性に分離がセットされ、キャッシュ・ヒットがある時に限って、分離区域について別のプロセッサからのラインをスヌープすることができる。これらの条件が満たされる時に限って、アクセス・トランザクションが許可され、プロセッサ・スヌープ・アクセス信号276が、分離区域について生成される。
【0059】
FSBスヌープ検査回路330によって、すべてのプロセッサが分離メモリ区域アクセスのために初期化されているのではない時に、マルチプロセッサ・システムの正しい機能性が保証される。X−NOR要素342によって、スヌープ・ヒットが、分離アクセスのために割り振られたプロセッサからのみ発生することが保証される。あるプロセッサが、分離メモリ区域アクセスにまだ参加していない場合に、そのプロセッサは、分離メモリ区域アクセスに参加している別のプロセッサからラインをスヌープすることができない。同様に、分離アクセスについてイネーブルされているプロセッサは、まだイネーブルされていない別のプロセッサからのラインを偶然にスヌープはしない。
【0060】
キャッシュ・アクセス信号235がアサートされてキャッシュ・ヒットがあることが示され、外部分離アクセス信号278がアサートされ、属性96に分離がセットされている時に、分離区域に関するプロセッサ・スヌープ・アクセス信号276がアサートされ、アクセス・ヒットがあることが示される。
【0061】
図3Bは、本発明のもう1つの実施形態による、プロセス論理プロセッサ・オペレーションを管理するアクセス検査回路270を示す図である。アクセス検査回路270には、論理プロセッサ・マネージャ360が含まれる。
【0062】
1つの物理プロセッサが、複数の論理プロセッサを有することができる。各論理プロセッサは、論理プロセッサ・アクセスと称する、分離プロセッサ状態に入り、出ることができる。論理プロセッサ・アクセスは、通常は、対応する論理プロセッサが、分離進入(iso_enter)および分離エグジット(iso_exit)などの分離命令を実行する時に生成される。論理プロセッサ・マネージャ360は、論理プロセッサ・アクセスによって引き起こされる論理プロセッサ・オペレーションを管理する。本質的に、論理プロセッサ・マネージャ360は、プロセッサ内でイネーブルされた論理プロセッサの数を追跡する。論理プロセッサ・マネージャ360には、論理プロセッサ・レジスタ370、論理プロセッサ状態イネーブラ382、論理プロセッサ・アップデータ380、最小ディテクタ374、および最大ディテクタ376が含まれる。論理プロセッサ・レジスタ370には、現在イネーブルされている論理プロセッサの数を示すために、論理プロセッサ・カウント372が格納される。論理プロセッサ状態イネーブラ382は、論理プロセッサ・アクセスが有効である時に、論理プロセッサ状態をイネーブルする。論理プロセッサ・アップデータ380は、論理プロセッサ・アクセスに従って論理プロセッサ・カウント372を更新する。論理プロセッサ・アップデータ380は、イネーブルされた論理プロセッサ状態によってイネーブルされる。一実施形態では、論理プロセッサ・レジスタ370および論理プロセッサ・アップデータ380が、イネーブルを有するアップ/ダウン・カウンタとして実装される。最小ディテクタ374は、論理プロセッサ・カウント372が、最小論理プロセッサ値(たとえば0)と等しいかどうかを判定する。最大ディテクタ376は、論理プロセッサ・カウント372が、最大論理プロセッサ値を超えるかどうかを判定する。最大論理プロセッサ値は、プロセッサ110内で分離実行モードによってサポートすることができる論理プロセッサの最大個数を示す数である。
【0063】
論理プロセッサ・アップデータ380は、システム・リセット時に論理プロセッサ・レジスタ370を初期化する。論理プロセッサ・アップデータ380は、アクセス・トランザクションが論理プロセッサ進入に対応する時に、第1の(たとえば増分する)方向に論理プロセッサ・カウント372を更新する。論理プロセッサ・アップデータ380は、アクセス・トランザクションが論理プロセッサ・エグジット(exit)または論理プロセッサ離脱(withdrawal)に対応する時に、第1の方向と反対の第2の(たとえば減分する)方向に論理プロセッサ・カウント372を更新する。論理プロセッサ・カウント372が、最小論理プロセッサ値と等しい時に、論理プロセッサ・マネージャ360が、プロセッサ110に、キャッシュ・メモリ232(図2A)をメイン・メモリに書き込み、すべての分離情報から分離設定レジスタ(図2A)を書き込むことによってキャッシュ・メモリ232をクリアさせて、これらのストレージ要素の初期状態を復元させる。論理プロセッサ・カウント372が、最大論理プロセッサ値を超える時には、論理プロセッサの総数がプロセッサ内でサポートできる論理プロセッサの最大個数を超えたので、論理プロセッサ・マネージャ360が、プロセッサ110に、障害またはフォールト状態を生成させる。
【0064】
図4は、本発明の一実施形態による、分離実行に関するアクセス許可信号を生成する処理400を示す流れ図である。
【0065】
開始時に、処理400では、ページを複数の分離メモリ区域に分配する(ブロック410)。その後、処理400では、プロセッサを分離実行モードで構成するために、プロセッサ制御レジスタ内の実行モード・ワードをアサートする(ブロック420)。次に、処理400では、プロセッサからのアクセス・トランザクションからアクセス情報を受け取る(ブロック425)。アクセス情報には、物理アドレス(TLBによって供給される)、ページの属性(分離/非分離)、およびアクセス・タイプが含まれる。次に、処理400では、属性に分離がセットされ、実行モード・ワードがアサートされている(分離に設定されていることを示す)かどうかを判定する(ブロック430)。そうでない場合には、処理400では、障害またはフォールト状態を生成し(ブロック435)、終了する。アサートされている場合には、処理400では、アクセス許可信号をアサートする(ブロック440)。その後、処理400が終了する。
【0066】
図5は、本発明の一実施形態による、分離実行に関するプロセス論理プロセッサ・オペレーションを管理する処理500を示す流れ図である。
【0067】
開始時に、処理500では、イネーブルされた論理プロセッサがない時に、論理プロセッサ・レジスタを初期化する(ブロック510)。その後、処理500では、論理プロセッサ・アクセス命令(たとえばiso_enter、iso_exit)を実行する。論理プロセッサ・アクセス命令によって、実行モード・ワードがアサートされる。次に、処理500では、論理プロセッサ状態をイネーブルする(ブロック525)。次に、処理500では、論理プロセッサ・アクセス・タイプを判定する(ブロック530)。
【0068】
論理プロセッサ・アクセス・タイプが、論理プロセッサ進入である場合には、処理500では、第1の(たとえば増分する)方向に論理プロセッサ・カウントを更新する(ブロック540)。その後、処理500では、論理プロセッサ・カウントが最大論理プロセッサ値を超えたかどうかを判定する(ブロック550)。そうでない場合には、処理500はブロック570に進む。超えた場合には、処理500では、障害またはフォールト状態を生成し(ブロック560)、その後、終了する。
【0069】
論理プロセッサ・アクセス・タイプが、論理プロセッサ・エグジットまたは論理プロセッサ離脱である場合には、処理500では、論理プロセッサ・カウントを第1の方向と反対の第2の(たとえば減分する)方向に更新する(ブロック545)。その後、処理500では、論理プロセッサ・カウントが最小値(たとえば0)と等しいかどうかを判定する(ブロック555)。そうでない場合には、処理500はブロック570に進む。等しい場合には、処理500では、分離情報のすべてから、キャッシュ・メモリおよび分離設定レジスタを初期化する(ブロック565)。
【0070】
次に、処理500では、次の論理プロセッサ・アクセスがあるかどうかを判定する(ブロック570)。次の論理プロセッサ・アクセスがある場合には、処理500は、ブロック520に戻って、論理プロセッサ・アクセス命令を実行する。論理プロセッサ・アクセスがない場合には、処理550が終了する。
【0071】
分離実行環境でのメモリ・コントローラを使用する複数の分離メモリへのアクセスの制御
上の説明では、プロセッサ110内の分離実行処理に言及した。図1Cに示された、複数の分離メモリ区域71へのアクセスは、さらに、MCH130(図1F)によって制御される。図1Fを参照すると、プロセッサ110は、MCH130を、アドレス・ロケーションにマッピングされた入出力デバイスとみなす。分離メモリ区域70、特に複数の分離メモリ区域71(図1C)へのアクセスを有するために、プロセッサ110は、適宜MCH130内のメモリ構成ストレージを構成する必要がある。MCH130には、プロセッサ110が複数の非分離メモリ区域83(図1C)内のメモリ140にもアクセスできるようにする制御機能も含まれる。MCH130は、分離アクセス信号またはバス・サイクル情報など、ホスト・バス120を介してプロセッサ110から信号を受け取る。
【0072】
図1Fでは、MCH130が、プロセッサ110の外部に図示されている。しかし、MCH130をプロセッサ110の内部に含めることが可能である。この場合には、MCH130内のレジスタへの書込アクセスを外部化して、外部キャッシュがキャッシュ・コヒーレンシに関して参加できるようにする。
【0073】
本質的に、MCH130内のアクセス・コントローラは、図3Aに示されたアクセス検査回路270に類似する機能を実行する。プロセッサ110とMCH130の両方でアクセス一貫性を維持することによって、メモリへのアクセスをきちんと制御することができる。MCH130内のアクセス・コントローラは、プロセッサ110からのアクセス・トランザクションが有効であるかどうかを判定する。そうである場合には、アクセス・コントローラは、アクセス許可信号を返して、そのアクセス・トランザクションを完了させる。そうでない場合には、障害またはフォールト状態を生成する。さらに、MCH130内のアクセス・コントローラは、それ自体の構成および制御ストレージへの意図的なまたは偶発的な書込のすべてを保護する。MCH130は、メモリ140に直接にインターフェースするので、アクセス・コントローラは、リセット時に、分離メモリ区域の内容およびそれ自体の内部ストレージの初期化も提供する。
【0074】
図6は、本発明の一実施形態による、図1Fに示されたメモリ・コントローラ・ハブ(MCH)の分離区域アクセス・コントローラ135を示す図である。アクセス・コントローラ135には、構成ストレージ610、構成コントローラ640、およびMCHアクセス検査回路810が含まれる。
【0075】
構成ストレージ610によって、図1Fに示されたプロセッサ110によって生成されるアクセス・トランザクションが構成される。プロセッサ110は、通常実行モードと分離実行モードを有する。アクセス・トランザクションは、アクセス情報660を有する。アクセス情報660は、ホスト・バス120(図1F)を介して搬送され、アクセス情報660には、アドレス情報と分離アクセス状態が含まれる。アドレス情報は、物理アドレス662によって表される。分離アクセス状態は、分離アクセス信号664によって表される。分離アクセス信号664は、本質的に図2Aに示されたプロセッサ分離アクセス信号272と同等である。分離アクセス信号664は、プロセッサ110が複数の分離メモリ区域71(図1Cに図示)の1つへの有効な参照を生成する時にアサートされる。
【0076】
構成ストレージ610には、メモリ所有権ページ・テーブル(MOPT)77のキャッシュ660が含まれる。構成ストレージ610では、キャッシュ660内の物理アドレス662の検索を実行して、物理アドレスおよび関連するページ・テーブル・エントリを見つける。物理アドレスがキャッシュ219内にない場合には、構成ストレージ610で、MOPT77(図1E)自体で物理アドレス662の検索を実行する。構成ストレージ610では、MOPTのベース221を使用して、MOPT77内の物理アドレス662を検索する。図1Eも参照すると、MOPTのベース221から開始して、構成ストレージ610で、MOPT77への検索を実行し、物理アドレス662に関連するページ・テーブル・エントリ93を見つける。構成ストレージでは、ページ98の物理アドレスを検索して、その物理アドレスに関連するページ・テーブル・エントリ93を見つけることができる。各ページ・テーブル・エントリ93に、MCH130に関するアクセス・トランザクションを構成するのに重要な物理アドレスに関連するページの属性96(分離または非分離)が含まれる。物理アドレスおよび関連するページ・テーブル・エントリを突き止めるためのページ・テーブル内の検索の実行が、当技術分野で周知であることと、検索を実行する他の方法が、当業者の知識に含まれることを諒解されたい。
【0077】
構成ストレージ250には、MCH130によって生成されるアクセス・トランザクションを構成するための構成パラメータも含まれる。構成ストレージには、属性レジスタ611が含まれ、この属性レジスタ611に、検索によって見つけられる、分離または非分離のいずれかがセットされる、物理アドレスに関連する属性96が含まれる。前に説明したように、分離メモリ区域71は、分離実行モードのプロセッサ110だけからアクセス可能である。
【0078】
構成コントローラ640は、構成ストレージ610へのアクセスを制御し、メモリ140へのいくつかの制御機能を提供する。
【0079】
MCHアクセス検査回路810は、アクセス情報660、属性96、分離アクセス信号664、および分離メモリ優先順位736を使用してアクセス許可信号652を生成する。アクセス許可信号652は、アクセス・トランザクションが有効であるかどうかを示す。アクセス許可信号652を、プロセッサ110または他のチップセットまたは周辺デバイスが使用して、分離メモリ区域71へのアクセスの試みが許可されるかどうかを判定することができる。
【0080】
図7は、本発明の一実施形態による、図6に示されたMCHアクセス検査回路810を示す図である。
【0081】
MCHアクセス検査回路810は、属性96および分離アクセス信号664に基づいてアクセス許可信号652を生成する。アクセス許可信号652によって、アクセス・トランザクションが有効であるかどうかが示される。MCHアクセス検査回路810は、属性96および分離アクセス信号664を受け取って、アクセス許可信号652を生成する。分離区域へのアクセス許可信号652は、属性96に分離がセットされ、分離アクセス信号664がアサートされ、構成に従って分離アクセスが有効または許可されることが示される時に、アサートされる。一実施形態では、MCHアクセス検査回路810が、論理「排他NOR」オペレーションを実行する。したがって、プロセッサが分離区域の物理アドレスを要求する時に、そのプロセッサが分離実行モードで動作しており、物理アドレスに関連するページの属性に分離がセットされている場合に限って、アクセス・トランザクションが許可される。
【0082】
図8は、本発明の一実施形態による、MCHに関する分離実行のためにアクセス許可信号を生成する処理800を示す流れ図である。
【0083】
開始時に、処理800では、MCHに関するアクセス・トランザクションを構成する(ブロック810)。その後、処理800では、アクセス・トランザクションからアクセス情報を受け取る(ブロック820)。アクセス情報には、ページの物理アドレス、分離アクセス信号、および属性(分離/非分離)が含まれる。次に、処理800では、属性に分離がセットされているかどうか、および分離アクセス信号がアサートされているかどうかを判定する(ブロック830)。そうでない場合には、処理800では、障害またはフォールト状態を生成し(ブロック835)、その後、終了する。そうである場合には、処理800では、アクセス許可信号をアサートする(ブロック840)。その後、処理800が終了する。
【0084】
本発明を、例示的実施形態に関して説明してきたが、この説明は、制限的な意味で解釈されることを意図されていない。例示的実施形態のさまざまな修正形態ならびに本発明が関係する技術の当業者に明白な本発明の他の実施形態は、本発明の趣旨および範囲に含まれるとみなされる。
【図面の簡単な説明】
【図1A】 本発明の一実施形態によるオペレーティング・システムを示す図である。
【図1B】 本発明の一実施形態による、オペレーティング・システム内のさまざまな要素、プロセッサ、および単一の連続する分離メモリ区域のアクセス可能性を示す図である。
【図1C】 本発明の一実施形態による、オペレーティング・システム内のさまざまな要素およびプロセッサ、特に複数の分離メモリ区域および複数の非分離メモリ区域のアクセス可能性を示す、図1Bに類似する図である。
【図1D】 本発明の一実施形態による、分離実行のためにメモリのページを分配する処理を示す流れ図である。
【図1E】 本発明の一実施形態による、メモリ所有権ページ・テーブルと、仮想アドレスを物理アドレスに変換する処理を示す図である。
【図1F】 本発明の一実施形態を実践することができるコンピュータ・システムを示す図である。
【図2A】 本発明の一実施形態による、図1Fに示された分離実行回路を示す図である。
【図2B】 本発明の一実施形態による、図2Aに示されたアクセス・マネージャを示す図である。
【図3A】 本発明の一実施形態による、アクセス検査回路を示す図である。
【図3B】 本発明のもう1つの実施形態による、論理プロセッサ・オペレーションを管理するアクセス検査回路を示す図である。
【図4】 本発明の一実施形態による、分離実行に関するアクセス許可信号を生成する処理を示す流れ図である。
【図5】 本発明の一実施形態による、分離実行に関するプロセス・スレッド・オペレーションを管理する処理を示す流れ図である。
【図6】 本発明の一実施形態による、図1Fに示されたメモリ・コントローラ・ハブ(MCH)の分離区域アクセス制御を示す図である。
【図7】 本発明の一実施形態による、図6に示されたMCHアクセス検査回路を示す図である。
【図8】 本発明の一実施形態による、MCHに関する分離実行のためにアクセス許可信号を生成する処理を示す流れ図である。

Claims (12)

  1. 相互に接続されるプロセッサとメモリとを有する装置であって、
    複数のページを非分離区域と分離区域とに分割される前記メモリの複数の異なる区域にそれぞれ分配し、前記メモリの分離区域に配置され、前記プロセッサの制御の下で実行されるページ・マネージャと、
    前記メモリの分離区域に配置され、前記メモリの各ページを記述するメモリ所有権ページ・テーブルと、
    を含む装置。
  2. 相互に接続されるプロセッサとメモリとを有する装置の動作方法であって、
    複数のページを非分離区域と分離区域とに分割される前記メモリの複数の異なる区域に、前記メモリの分離区域に配置され、前記プロセッサの制御の下で実行されるページ・マネージャを使用して、それぞれ分配するステップと、
    前記メモリの分離区域に配置されるメモリ所有権ページ・テーブルに前記メモリの各ページを記述するステップと、
    を含む方法。
  3. 相互に接続されるプロセッサとメモリとを有するコンピュータに、
    複数のページを非分離区域と分離区域とに分割される前記メモリの複数の異なる区域に、前記メモリの分離区域に配置され、前記プロセッサの制御の下で実行されるページ・マネージャを使用して、それぞれ分配するステップと、
    前記メモリの分離区域に配置されるメモリ所有権ページ・テーブルに前記メモリの各ページを記述するステップと、
    を有する処理を実行させるコンピュータプログラム。
  4. チップセットと、
    前記チップセットに結合されたメモリと、
    前記チップセット及び前記メモリに結合され、通常実行モード及び分離実行モードを有するプロセッサと、
    複数のページを非分離区域と分離区域とに分割される前記メモリの複数の異なる区域にそれぞれ分配し、前記メモリの分離区域に配置され、前記プロセッサの制御の下で実行されるページ・マネージャと、
    前記メモリの分離区域に配置され、前記メモリの各ページを記述するメモリ所有権ページ・テーブルと、
    を含むシステム。
  5. 前記ページ・マネージャは、ページが前記メモリの分離区域に分配されている場合、前記ページに分離属性を割り当てる、請求項1記載の装置。
  6. 前記ページ・マネージャは、前記ページが前記メモリの非分離区域に分配されている場合、前記ページに非分離属性を割り当て、
    前記メモリ所有権ページ・テーブルは、各ページに対して前記属性を記録する、請求項5記載の装置。
  7. 通常実行モード及び分離実行モードを有する前記プロセッサによって生成され、アクセス情報を有するアクセス・トランザクションを構成するための構成設定を有する構成ストレージと、
    前記構成ストレージに接続され、前記構成設定と前記アクセス情報の少なくとも1つを使用して前記アクセス変換をチェックするアクセス検査回路と、
    をさらに有する、請求項6記載の装置。
  8. 前記構成設定は、ページの属性と実行モードワードとを有する、請求項7記載の装置。
  9. 前記メモリの各ページを記述するステップは、ページが前記メモリの分離区域に分配されている場合、前記ページに分離区域を割り当てるステップを有する、請求項2記載の方法。
  10. 前記メモリの各ページを記述するステップはさらに、
    前記ページが前記メモリの非分離区域に分配されている場合、前記ページに非分離属性を割り当てるステップと、
    各ページの属性をメモリ所有権ページ・テーブルに記録するステップと、
    を有する、請求項9記載の方法。
  11. 通常実行モード及び分離実行モードを有し、構成設定を有する構成ストレージを有する前記プロセッサによって生成され、アクセス情報を有するアクセス・トランザクションを構成するステップと、
    前記構成設定と前記アクセス情報との少なくとも1つを使用して、アクセス検査回路により前記アクセス・トランザクションをチェックするステップと、
    を有する、請求項10記載の方法。
  12. 前記構成設定は、ページの属性と実行モードワードとを有する、請求項11記載の方法。
JP2002512776A 2000-07-18 2001-07-13 分離実行環境での複数の分離メモリへのアクセスの制御 Expired - Lifetime JP3982687B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/618,738 US6678825B1 (en) 2000-03-31 2000-07-18 Controlling access to multiple isolated memories in an isolated execution environment
PCT/US2001/022027 WO2002006929A2 (en) 2000-07-18 2001-07-13 Controlling access to multiple isolated memories in an isolated execution environment

Publications (3)

Publication Number Publication Date
JP2004504663A JP2004504663A (ja) 2004-02-12
JP2004504663A5 JP2004504663A5 (ja) 2005-12-22
JP3982687B2 true JP3982687B2 (ja) 2007-09-26

Family

ID=24478929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002512776A Expired - Lifetime JP3982687B2 (ja) 2000-07-18 2001-07-13 分離実行環境での複数の分離メモリへのアクセスの制御

Country Status (8)

Country Link
JP (1) JP3982687B2 (ja)
CN (1) CN1252597C (ja)
AU (1) AU2001271996A1 (ja)
DE (1) DE10196440B4 (ja)
GB (1) GB2381626B (ja)
HK (1) HK1052237B (ja)
TW (1) TW526416B (ja)
WO (1) WO2002006929A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2378005A (en) * 2001-07-27 2003-01-29 Chien-Tzu Hou Method for Controlling Paged Memory Access Attributes
US7571318B2 (en) * 2002-03-27 2009-08-04 Advanced Micro Devices, Inc. Method and apparatus for improved security in a data processor
US7325115B2 (en) * 2003-11-25 2008-01-29 Microsoft Corporation Encryption of system paging file
EP1544820B1 (en) * 2003-12-11 2013-07-31 Atos Worldline S.A. Electronic data processing device
KR100917290B1 (ko) * 2004-06-24 2009-09-11 인텔 코오퍼레이션 신뢰 플랫폼 모듈의 보안 가상화를 위한 방법 및 장치
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US8074262B2 (en) 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US7571312B2 (en) 2005-05-13 2009-08-04 Intel Corporation Methods and apparatus for generating endorsement credentials for software-based security coprocessors
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7587595B2 (en) 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
US7477535B2 (en) * 2006-10-05 2009-01-13 Nokia Corporation 3D chip arrangement including memory manager
US9280659B2 (en) 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
US8060876B2 (en) 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US8064605B2 (en) 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8584229B2 (en) 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US8307180B2 (en) * 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
CN103209212B (zh) * 2013-03-22 2015-09-16 烽火通信科技股份有限公司 基于RIA的Web网管客户端中的数据缓存方法及系统
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
CN106528453B (zh) * 2015-09-10 2019-10-18 中国航空工业第六一八研究所 基于复合尺度页的页表分区管理装置和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
EP0600112A1 (de) * 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
US6542919B1 (en) * 1996-03-22 2003-04-01 Koninklijke Philips Electronics N.V. Operating system for use with protection domains in a single address space
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings

Also Published As

Publication number Publication date
WO2002006929A2 (en) 2002-01-24
JP2004504663A (ja) 2004-02-12
GB2381626A (en) 2003-05-07
CN1252597C (zh) 2006-04-19
CN1459059A (zh) 2003-11-26
HK1052237A1 (en) 2003-09-05
GB0303644D0 (en) 2003-03-19
GB2381626B (en) 2005-02-09
AU2001271996A1 (en) 2002-01-30
TW526416B (en) 2003-04-01
DE10196440B4 (de) 2006-03-23
WO2002006929A3 (en) 2002-04-25
DE10196440T5 (de) 2004-04-29
HK1052237B (zh) 2005-06-03

Similar Documents

Publication Publication Date Title
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
US6633963B1 (en) Controlling access to multiple memory zones in an isolated execution environment
JP3982687B2 (ja) 分離実行環境での複数の分離メモリへのアクセスの制御
US6795905B1 (en) Controlling accesses to isolated memory using a memory controller for isolated execution
US6934817B2 (en) Controlling access to multiple memory zones in an isolated execution environment
JP4719398B2 (ja) 分離実行のための分離命令
US11580264B2 (en) Systems and methods for controlling access to secure debugging and profiling features of a computer system
JP4822646B2 (ja) 分離実行環境で使用するためのキー階層の生成
US6957332B1 (en) Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7149854B2 (en) External locking mechanism for personal computer memory locations
JP4872001B2 (ja) メモリ・アクセス安全性管理
US7127579B2 (en) Hardened extended firmware interface framework
US7194634B2 (en) Attestation key memory device and bus
US7013484B1 (en) Managing a secure environment using a chipset in isolated execution mode
US6745306B1 (en) Method and system for restricting the load of physical address translations of virtual addresses
US7698507B2 (en) Protecting system management mode (SMM) spaces against cache attacks
US7013481B1 (en) Attestation key memory device and bus
WO2001075564A2 (en) Platform and method for remote attestation of a platform
US6754815B1 (en) Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7089418B1 (en) Managing accesses in a processor for isolated execution
US7111176B1 (en) Generating isolated bus cycles for isolated execution
US6769058B1 (en) Resetting a processor in an isolated execution environment
US9633213B2 (en) Secure emulation logic between page attribute table and test interface

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070529

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070628

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 3982687

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130713

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term