JPH03225455A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPH03225455A
JPH03225455A JP2337003A JP33700390A JPH03225455A JP H03225455 A JPH03225455 A JP H03225455A JP 2337003 A JP2337003 A JP 2337003A JP 33700390 A JP33700390 A JP 33700390A JP H03225455 A JPH03225455 A JP H03225455A
Authority
JP
Japan
Prior art keywords
processor
page
address
descriptor
page table
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.)
Pending
Application number
JP2337003A
Other languages
English (en)
Inventor
Konrad K Lai
コンラツド・ケイ・ライ
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
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH03225455A publication Critical patent/JPH03225455A/ja
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理システムに関し、特に、メモリの記
憶場所を無許可のアクセスから保護するメモリアクセス
メカニズムに関する。
〔従来の技術及び発明が解決しようとする問題点〕
最新のコンピュータシステムは、システム内部の全ての
情報をオブジェクトと呼ばれるー・−ドウエア認識、メ
モリ常駐情報構造によって表示するように編成されてい
る。これはオブジェクト指向コンピュータアーキテクチ
ャとして知られている。
オブジェクトは、連続してアドレス指定された1組の記
憶場所に維持されている関連情報を表示するデータのパ
ッケージである。
オブジェクト指向プログラミングシステムでは、各タイ
プ又はクラスのオブジェクトは、そのクラスに属するオ
ブジェクトについて実行を許可されている1組の動作を
有する。これはオブジェクトベースアクセスメカニズム
として知られている。
オブジェクトの内部構造はプログラマ−にはわからない
。プログラマ−は許可された動作によってオブジェクト
を操作できるだけである。オブジェクトに対するアクセ
スは、アクセス記述子と呼ばれるオブジェクトへのポイ
ンタによって行われる。
アクセス記述子は、そのオブジェクトに関するアクセス
記述子のホルダーによう許可されるオブジェクトに対す
る様々な種類のアクセスを規定する種類の表示(rep
)権利(読取り権利又は書込み権利など)を記述する。
1982年4月13日KCOII・y他に許可され且つ
Int@l Corporation Kll渡されて
いる米国特許第4.325.120号には、2つの基本
的なタイプのオブジェクトをプロセッサにより認識し、
識別するオブジェクトベースアクセスメカニズムが記載
されている。第1の基本タイプは、通常データを含むデ
ータセグメントである。第2の基本タイプは、メモリ内
の情報、すなわち、他のオブジェクトをアクセスするた
めに使用されるアクセス記述子を含むアクセスリストで
ある。各アクセス記述子は、そのアクセス記述子と関連
するアクセスのエクステントを位置指定し且つ限定する
ための情報を提供する。メモリへの無許可のアクセスは
、メモリにおいてオブジェクトK対する参照を生成する
プロセスで利用されるアクセス記述子を検査する保護メ
カニズムにより制御される。
初期のコンピュータシステムでは、アーキテクチャはス
ーパーバイザ状態と、問題状態の2つのプログラム状態
を設けておシ、プロセッサは2つの状態の間で切替わる
。問題状態のときは、全ての特権命令(入出力命令、保
護命令及び一連の制御命令)は無効である。スーパーバ
イザ状態のときには、全ての命令が有効である。問題状
態で特権命令が現われると、特権動作例外を認識して、
プログラム割込みが起こシ、動作は抑制される。
主メモリのいくつかの領域の内容る破壊又は誤用から保
護するために、保護を実行する。記憶場所は、記憶ブロ
ックをキーによって識別し、このキーを記憶すべきデー
タと共に供給された保護キーと比較することにより保護
される。一致しないときには、例外を認識して、プログ
ラム割込みが起こシ、動作は抑制される。
Co11ay 他の特許のアーキテクチャの場合、プロ
セッサ内で、スーパーバイザ状態と問題状態のような異
なる実行状態は不要になっている。このオブジェクト指
向アーキテクチャでは、プロセッサがス−パーバイザ状
態にあるときにのみ実行される特権命令は不要である。
メモリの保護は、いくつかの記憶場所ではなく、いくつ
かのオブジェクトK対するアクセスを許可又は抑止する
ことにより実行される。
オブジェクト指向アーキテクチャでは、セグメントは全
てのアドレッシングと保護の基礎となる。
セグメントは、サイズ、すなわち長さを規定された単一
の線形アドレススペースである。セグメントは主メモリ
にあり、開始アドレス、すなわちベースアドレスと関連
している。セグメント又はオブジェクトの内部の1つの
データ項目の実際の物理アドレスを確定するために、セ
グメント内部の項目の位置(項目の変位という)をセグ
メントのベースアドレスに加算する。アドレッシングが
セグメント化されているシステムにおいては、セグメン
トを移動するために、セグメントのベースアドレスを更
新することが必要である。しかし表から、ベースアドレ
ス情報をメモリ全体と、プロセッサのレジスタに配分す
ることができる。すなわち、セグメントが移動するとき
には、その変更を反映するために、セグメントの多数の
コピーを位置指定し且つ更新しなければならない。この
問題を回避するために、Co11ey他のアーキテクチ
ャはセグメントに関する全ての情報を統合し、その情報
をセグメントテーブルに導入する。次に、セグメントに
対する全ての参照はこのテーブルから必要なベースアド
レスと長さ情報を得ることが要求される。セグメント一
対するどの参照も、セグメント記述子をアクセスし、正
しい現在ベースアドレスと現在長さ情報を得ることであ
る。
このメカニズムをさらに改良するために、Col ly
他のシステムはセグメントテーブルのアドレスマツピン
グレベルを越える第2のアドレスマツピングレベルを設
けている。各プログラム装置は、実行時に、プログラム
の実行中に装置が必要とすると思われる全てのセグメン
トに関するセグメント番号(セグメント記述子のインデ
ックス)のリストを供給される。プログラムは、命令中
の各オペランドの一部として、アクセス可能なセグメン
トのリストに対するインデックスを指定することにより
、特定の1つのセグメントを選択する。このリストはア
クセスリストとして知られている。
この種のメカニズムは「ケイパビリティベース保護メカ
ニズム」と呼ばれ、すぐれた保護を実行するのであるが
、非常に複雑なプログラミング手順が必要である。
オブジェクト指向アーキテクチャでは、特権命令の観念
はない。特権命令は、中央処理装置(cpo)がスーパ
ーバイザ状態にあるときにのみ実行可能な命令である。
スーパーパイプ状態スーパーバイザプログラムを実行し
ている状態である。スーパーバイザプログラムとは、資
源の使用を調整し且つCPUの動作の流れを維持する制
御プログラムである。スーパーバイザ状態にあるときは
、ユーザーのプログラムを実行できない。ユーザーのプ
ログラムは、CPUが入出力命令及びその他の特権命令
を実行することができない状態である問題状態にあると
きに実行される。これは「状態ベース保護メカニズム」
と呼ばれる。
オブジェクト指向アーキテクチャを支援する最新のデー
タ処理システムが同一のI・−ドウエアで状態保護メカ
ニズムをも支援できるようKなるためには、システムは
、スーパーバイザ状態及びユーザー状態を採用する初期
の型のオペレーティングシステムとの間で互換性を有し
ていなければならない。
従って、本発明の目的は、ケイパビリティベース保護メ
カニズム又は状態ペース保護メカニズムのいずれかを支
援するメモリアクセス保護メカニズムを提供することで
ある。
〔問題点を解決するための手段〕
本発明では、オブジェクトをCo 11 ey他の特許
のように2つの基本タイプに分割することは行わない。
その代わりに、メモリに記憶された各32ビツトワード
をタグとして知られている33番目のビットと関連させ
る。このタグビットが1にセットされている場合、ワー
ドはアクセス記述子である。タグビットがOにセットさ
れていれば、ワードはデータワードである。このように
1オブジエクトをデータセグメントのリストを含むオブ
ジェクトと、アクセス記述子のリストを含むオブジェク
トという2つの基本タイプに分けるのではなく、それら
の別個のリストを排除したのである。
本発明の種類のシステムにおいては、メモリから取出さ
れ、アクセス記述子であると想定されるワードのタグビ
ットが1にセットされている場合にのみ、ユーザーはア
クセス記述子を要求する動作を実行することができる。
タグビットがOであれば、それは無効アクセス記述子で
ある。
本発#4は、2状態保護モデルに基づくオペレーティン
グシステムを本発明の原理に従って構成されたコンピュ
ータシステムに、大きな変形を行う必要なくボートでき
るという利点をさらに有する。
本発明は、1つのオブジェクトがアクセス記述子及び/
又はデータを含むことができるという利点を有する。す
なわち、どのような2進情報を含むことも可能々のであ
る。アクセス記述子とデータは同一のオブジェクトにあ
ることができ、任意の順序でインタリーブしていること
も可能である。
本発明の保護メカニズムは、問題/スーパーバイザ状態
を使用せずに、タグビットを利用することにより、メモ
リの保全性をユーザーの妨害から保護する。
本発明の上記の目的、特徴及び利点と、その他の目的、
特徴及び利点は、添付のrgJ面に示すような本発明の
好ましい一実施例の以下の詳細な説明から明白になるで
あろう。
〔実施例〕
そこで、第1図に関して説明する上、マイクロプロセッ
サは、論理上、命令取出し装置(2)と、命令デコーダ
/マイクロ命令シーケンサ(4)と、変換索引バッファ
(8)と、バス制御装置(9)と、整数実行装置/浮動
小数点装置(6)という5つの主要な装置に分割される
これら全ての装置の相互間の通信経路はデータバスと、
マイクロ命令バスと、マイクロ命令有効信号を含む制御
信号を搬送する信号線とから成る。
マイクロ命令バスは自律装置のアクティビティを制御し
且つ同期させる。それぞれの装置について以下に簡単に
説明する。
命令取出し装置(IFU)は、命令デコーダ(ID)に
より使用するための命令を主メモリから取出し、先取り
し且つキャッシングする。
命令デコーダ(rD)i!命令(マクロコード)の実行
を復号し且つ制御する。装置を命令を復号し、オベラ/
ドのアドレッシングと取出しを実行し、ブランチ命令(
すなわち、命令ボイ/り操作)を処理し、実行マイクロ
命令を発生するか又はマイクロプログラムの流れを開始
する。
マイクロ命令シーケンサ(MI S )は、初期設定と
、直接処理するには複雑すぎるマクロ命令と、例外条件
及び割込み条件とを処理するために1マイクロコードの
流れを順序付けする。MISはマイクロコードROMと
、マイクロコードの流れを順序付けする論理とを含む。
MISが実行する機能には、次のマイクロ命令の取出し
、マイクロプログラムの分岐9例外条件の処理、IDと
関連して実行されるマクロ命令境界の検出及び事象の追
跡などがある。
整数実行装置(工gu)Fi、ID及びMISVCより
発行されるマイクロ命令の大半を実行する。装置はプロ
グラマ−に見えるレジスタと、1イクロコードにより使
用されるスフ2ンチレジスタと、ALUと、その命令を
実行するために必要とされる論理とを含む。浮動小数点
装置(FPU)は、浮動小数点演算と、!I5数の乗算
及び除算とを実行するために必要とされる論理を含む。
変換索引バッファ(TLB)は、仮想メモリメカニズム
を実現するために必要なアドレス変換を実行する。アド
レス変換とメモリ保護には、記憶記述子及びページテー
ブルエントリから成る連想テーブルを使用する。TLB
はアドレスキャンシュと、アドレス加算器と、メモリ保
護検査用−・−ドウエアとを含む。
最後に、バス制御論理(BCL)は外部バスアクセスを
パイプライン化し且つ順序付けする。BCLは外部局所
バスに対するインタフェース−・−ドウエアを含み、バ
スプロトコルを管理し、外部事象(たとえば、割込み、
初期設定)を認識する。
実行モード システムは、従来のオペレーティングシステムの効率良
いエミュレーションを支援するために、二一ザーモード
と、スーパーバイザモードという2つの実行モードを有
する。システムは特権命令の概念を規定しない。全ての
命令はいずれか一方のモードで実行できる。プログラム
はそのアクセス表示(rep)権利と、その実行モード
の性質によって特権を獲得する。現在線形アドレススペ
ースのベージrep権利の解釈は、実行モードによって
異なる。オペレーティングシステムが使用スル記憶装置
は、通常、ユーザーアクセスを許可しないページrep
権利を有するが、スーパーバイザモードでは読取り専用
又は読取り/書込みであっても良い。
タグなしシステムでは、実行モードをユーザー%−)’
カラスーパーバイザモードに誤り生させずに変化させる
唯一の方法は、同時係属特許出願第号(書類番号D−1
258)K記載されているシステム呼出し命令である。
第    号(D−1258)で説明しているように、
システムドメインオブジェクトはオペレーティングシス
テムに関する一連のエントリ手順を含む。
次に、第2図を参照してアクセスメカニズムを説明する
オブジェクト(38)は主メモリスペース(1o)に記
憶されている。オブジェクトの32ピントワードは、タ
グビットである33番目のビットを有していても良い。
メモリ内の命令(14)は、オブジェクト(38)に対
する仮想メモリアドレスであるアドレス(20)を含ん
でいても良い。このアドレスはプロセッサのレジスタス
ペース(11)Kするプロセッサレジスタの1つに記憶
される。アドレスはオフセット(22)と、アクセス記
述子(24)とを含む。アクセス記述子(24)は、タ
グを有する32ビツト ワードである。アクセス記述子
はオブジェクトインデックス(34)と、権利フィール
ド(35)とを含む。
オブジェクトインデックスは、メモリに記憶されている
オブジェクトに関する記憶記述子を含むオブジェクトテ
ーブル(42) VC対するオフセットを提供する。そ
れらのオブジェクトの中の1つはページテーブル(44
)である。記述子は符号化フィールド(50)と、ベー
スアドレス(52)とを含む。
オブジェクトは、合わせて物理オブジェクトを表示する
記憶ブロックとページの物理アドレスKIQIするマツ
ピング情報を提供するオブジェクトテーブル(42)の
オブジェクトテーブルエントリにより記述される。単純
オブジェクトの場合、オブジェクトは物理アドレススペ
ースにあるブロックにより直接表示される。物理ベース
アドレス(52)はオブジェクトテーブルエントリに記
憶される。
すなわち、エントリ(44)は単純オブジェクト記述子
である。オブジェクト内の情報は、仮想アドレス(20
)の単純オフセット (22)を使用することにより位
置指定される。
ページ形オブジェクトは、単しベルページf−プル(4
4)を使用して1組の物理ページによ)表示される。ペ
ージ形オブジェクト記述子と呼ばれるページ形オブジェ
クトのオブジェクトテーブルエントリは、ページに関す
るページテーブルエントリのアレイであるページテーブ
ルの物理ベースアドレスttむ。ページテーブルエント
リは、オフセット(22)に位置するページインデック
スを使用する索引付けKよって見出される。
プロセッサ制御ブロック、すなわちPRCB(28)と
呼ばれる別のオブジェクトはメモリから取出されて、プ
ロセッサレジスタスペースに記憶される。
さらに、プロセス制御ブロック、すなわちPCB(64
)もメモリから増出されて、プロセッサレジスタスペー
スに記憶される。PRCBのエントリ(30)は現在プ
ロセスに関する情報を含むと共に、使用中のシステムが
タグビットを含むことを指示するために符号化されてい
るタグイネーブルピット(40)を含む。PCB(64
)は、タグ付けを採用しないシステムに関してプロセッ
サがスーパーバイザ状態にあるか又はユーザー状態にあ
るかを指示するために符号化されている実行モードピッ
ト(41)を含むエントリ(31)を有する。タグ付け
がイネーブルされているシステムでは、タグビット情報
は、タグビットがメモリ参照のために有効アクセス記述
子を使用していることを指示する1であることを確認す
る九めに、検査回路である保護論理(13)において組
合される。第3図には、保護論理(13)をさらに詳細
に示す。これに対し、タグ付けを利用しないシステムの
場合には、実行モードピットは、スーパーパイプ状態に
セントサれたとき、誤り検査回路に1を強制的に導入す
るので、データ参照のためにアクセス記述子が使用され
ても保護メカニズムは誤りを指示しない。実行モードピ
ットがユーザーモードを指示し且つスーパーバイザタイ
プの命令、たとえば5END命令が実行されているとき
には、その命令のアクセス記述子は0であるタグビット
を有するので、その結果、保護論理には誤りが起こるこ
とになる。
次に、第3図に関して説明する。権利検査論理(106
)には、あらゆる適切な状況の下でタグビットがオンで
あるアクセス記述子が供給される。タグイネーブルピッ
l−(101)が印加されず且つ実行モード(103)
がスーパーバイザにセットされている場合には、AND
(102)の出力はタグビットをOR回路(104)に
強制的に導入する。タグイネ−プルピッ) (101)
が印加され且つアクセス記述子が現われているならば、
タグはアクセス記述子に対してけ1であるので、タグ信
号線(105)の信号は印加される。実行モードがスー
パーバイザモードにセットされているか又はユーザーモ
ードにセットされているかにかかわらず、OR回路(1
04)の出力は権利検査論理にタグ信号を供給する。デ
ータをADとして使用してメモリ参照しようとすると、
この信号(111)はOになり、誤りハンドラ(114
)にC0N5TRAINT、INVALID  AD 
 誤りが報知される。アクセス記述子の権利フィールド
(109)が権利タイプのオブジェクトを指示し且つア
クセス記述子の権利がページ権利(107)と一致して
いる場合に動作は許可される。そうでないときには、i
!!シー・ンドラ(114)にRIGHTS  PRO
TECTION誤F:J(03)が報知される。
ユーザーモードにおいては、特権命令はスーパーバイザ
モードでのみ実行可能であるので、ユザーは有効アクセ
ス記述子を指定することができない。ユーザーモードで
アクセス記述子が現われたならば、強制タグとタグビッ
トはいずれも1でないため、I?ffALID ACC
ES8  DESCRIPTOR誤シが指示される。
要約すると、プロセッサに内部記憶されるタグイネーブ
ルフラグは、プロセッサ内部の情報の解釈を制御する。
タグ付けがディスエーブルされ且ツ実行モードがスーパ
ーバイザでない場合、検査論理の行動はタグ付けがイネ
ーブルされているときと同じである。タグ付けがディス
エーブルされ且つ実行モードがスーパーバイザである場
合にも、検査論理の行動は同じであるが、ただし、検査
論理がアクセス記述子であることを要求する値はいずれ
もアクセス記述子であると想定される。すなわち、暗黙
タグが検査論理に供給される。タグを使用しないシステ
ムでは、プロセッサタグイネプルはOにセットされる。
これにより、ディスバンチングなどのプロセッサ動作を
実行させることができるようになシ、また、データはア
クセス記述子として解釈される。従って、プロセスによ
るアクセス記述子の参照は、いずれも、プロセスがスー
パーバイザモードにある場合にのみ起こることを許され
る特権動作になる。
オブジェクトアドレッシング 論理アドレススペースと、仮想アドレススペースと、物
理アドレススペースの3種類のアドレススペースが規定
されている。論理アドレススペースは、オブジェクトセ
レクタと、オブジェクトオフセットとを含む線形アドレ
スによってアクセスされる。仮想アドレススペースはオ
ブジェクトインデックス及びオブジェクトオフセットに
よってアクセスされる。物理アドレススペースはオブジ
ェクト/ページテーブルエントリ及びブロック/ページ
オフセットによってアクセスされる。
論理アドレススペースハ仮想アドレススペースにマツピ
ングされ、その仮想アドレススペースは物理アドレスス
ペースにマツピングされる。各スペースのアドレスは以
下で説明するような特有の構造を有する。
物理アドレススペース 物理アドレススペースは読取り一書込みメモリ。
読取り専用メモリ及びメモリマツプ形入出力装置に対応
する。物理ワールドとの通信は物理アドレスによって行
われる。物理アドレススペースはバイトアドレス可能で
あり、アクセスのサイズに従つてアライメントされたメ
モリアドレスに対して原子単位の、それ以上は分割でき
ないアクセス(読取り又は書込み)を保証しなければな
らない。
すなわち、ワードアクセスはワード境界にアライメント
されなければならないのである。分割不可能なアクセス
により、1組の記憶場所を読取っている又は書込んでい
るプロセッサは、別のプロセッサが同じ記憶場所の読取
り又は書込みを許される前に必ずその動作を完了するこ
とになる。原子単位動作によれば、プロセッサが1組の
記憶場所を読取シ且つ変更するとき、同じブロックに対
して原子単位動作を実行する別のプロセッサは動作を遅
延されるということが保証される。
仮想アドレススペース 仮想アドレススペースは、オブジェクトと呼ばれる互い
に独立したアドレススペースの集合体である。1つのオ
ブジェクトの中にあるデータは、いずれも、単純オフセ
ットにより位置指定されると、データの仮想アドレスは
、所望のアドレススペースを選択するオブジェクトイン
デックスと、アドレススペース内のそのデータを選択す
るオブジェクトオフセットという2つの要素により指定
される。仮想アドレススペースのサイズは許可されたオ
ブジェクトの数と、各オブジェクトの最大サイズとの積
である。
オブジェクトは保護の単位としても規定されている。仮
想アドレススペース内におけるアクセスを制御するため
に、システムはオブジェクトインデックスの生成を保護
し且つ制限する。アクセス記述子(AD)は1つのオブ
ジェクトインデックスを含むものとしてシステムにより
規定されている。
システムは、通常のデータをADポインタ表示のために
使用するのを許可しないことによって、ADポインタを
保護する。アクセス記述子(AD)は仮想アドレススペ
ースにあるオブジェクトのいずれかを指示することがで
きる。従って、仮想アドレスは保護されたオブジェクト
インデックス(スナわち、アクセス記述子)と、オブジ
ェクトへの非保護オフセットとくより指定されることに
なる。
論理アドレススペース 直接に又は間接的にアクセス可能であるアクセス記述子
を概念の上で組としてアセンブルすると、論理(又は瞬
時)アドレススペースと呼ばれる第3の種類のアドレス
スペースが形成される。論理アドレススペースは実行環
境の可視度を規定する。
複数の論理アドレスが単一の仮想アドレススペースにマ
ツピングされる。できる限シ高い融通性を得るため、線
形アドレスと、構造化アドレスという2種類の論理アド
レスを規定している。
第1の種類である線形アドレスは、実行環境を形成する
4つのオブジェクトにより規定される。
線形アドレスは従来のプロセスアドレススペースの観念
を表わすために使用される。所定の環境の中で解釈した
とき、線形アドレスは仮想アドレススペースにマツピン
グされる。線形アドレスの仮想アドレスへのマツピング
は命令解釈プロセスの基礎を成す部分である。線形アド
レスでは、オペランド規則子はオフセットのみを与える
。現在線形アドレススペースは暗示されるのである。線
形アドレスの上位2ビツトは、実行環境を規定する4つ
のオブジェクトの中の1つを暗黙に選択し、残る30ビ
ツトは選択されたオブジェクトへのオフセットである。
第2の種類である構造化アドレスは仮想アドレス(すな
わち、アクセス記述子+オフセット)により規定される
。構造化アドレスは、高度オブジェクト指向保護機能を
呼出すために使用される。
構造化アドレスでは、オペランド規則子は仮想アドレス
を与える。システムは命令ストリームの中でADを直接
指定することを許さないので、命令の中のオペランド規
則子のADセレクタを使用して、仮想アドレスのAD部
を間接的に指定しなければならない。ADセレクタは、
プロセッサレジスタに局所的に記憶されているADを指
定する。
これで、オブジェクトの瞬時アドレス可能度を、プロセ
ッサレジスタのADによりアクセス可能なものだけに限
定することになる。
アクセス記述子とその権利 アクセス記述子(AD)はアドレススペース内のオブジ
ェクトに対する被保護ポインタである。
システムはアクセス記述子を偶発的彦又は悪意による生
成や変更から保護する。
プログラムはオブジェクトを直接アドレスすることがで
きず、実行環境内のアクセス記述子を介して間接的にア
ドレスできるだけである。プログラムはオブジェクトに
対するアクセス記述子なしではそのオブジェクトを参照
できないので、プログラムの可視度を、それがアクセス
しなければならないオブジェクトのみ恍限定することが
可能である。
アクセス記述子はオブジェクトインデックスと、権利と
、寿命ビットとを情報として含む。オブジェクトインデ
ックスはオブジェクトを選択し、権利はADにおける読
取り権利、書込み権利及びタイプ権利を指定する。権利
はオブジェクトについて許容しうる動作を示す。権利は
アクセス記述子上関連しておシ、オブジェクト自体と関
連しているのではない。すなわち、異なるアクセス記述
子を選択すれば、同一のオブジェクトに対して異なる権
利を有することが可能である。寿命ビットは、ADが参
照するオブジェクトの寿命を示し、ADからオブジェク
トへのマツピング オブジェクトは、システム幅の被保護ポインタであるア
クセス記述子を使用して参照される。アクセス記述子の
中のオブジェクトインデックスは、システム幅のオブジ
ェクトテーブル(42)の1つのオブジェクトテーブル
エントリ(OTE)を選択する。オブジェクトテーブル
エントリは参照するオブジェクトの場所、サイズ、タイ
プ表どを指定する。
記憶ブロックとページ オブジェクトは、物理的にいえば、記憶ブロック及び/
又は1組のページから構成されている。
ブロックは物理アドレススペース内の連続する1つの領
域である。ブロックを使用して1つの単純オブジェクと
、ページテーブル又はページテーブルディレクトリを表
わすことができる。
記憶ブロックのベースアドレスはそのブロックの第1の
可視バイトを指示する。記憶ブロックのベースアドレス
は64バイトの物理アドレス境界にアライメントされて
bなければならない。1つのブロックの長さは64バイ
トから4096バイトまで様々である。ブロックが4に
バイト境界を越えることはできない。
1つ又は2つのレベルのページテーブルを伴なう1組の
ページによって1つのオブジェクトを表示することも可
能である。第1のレベルのテーブルはページではなく、
記憶ブロックである。オブジェクト(38)を規定する
ページは、ページテーブル(44)により表わされる。
ページは4にバイトの一定サイズのブロックであり、そ
のベースアドレスは4にバイト境界にアライメントされ
ている。
タグ付は オブジェクトハアクセス記述子及び/又はデータ、すな
わち、何らかの2進情報を含んでbても良い。アクセス
記述子とデータは同一のオブジェクトにあることができ
、任意の順序でインタリーブすることも可能である。
システムによっては、アライメントされているメモリ内
の各4バイトワードがデータであるのか、又は有効なア
クセス記述子であるのかを指示するために1 ワードを
1つのタグビットと関連させているものがある。有効な
アクセス記述子は4バイト境界にアライメントされてい
ると共に1そのタグビットがIK上セツトれていなけれ
ばならない。0のタグビットは、ワードがデータ又は参
照を不可能にする、すなわち、オブジェクトの内容を参
照する丸めに使用できないようなアクセス記述子を含む
ことを示すために使用される。
他のシステムでは、タグビットを利用できない。
そのような7ステムでは、ワードをデータとして解釈す
るか、又はアクセス記述子として解釈するかは動作によ
って決まる。
ワード全部のワードアライメント読取り又は書込みの際
、動作に応じて、タグビットは保存されるか又はOにセ
ットされる。非ワードアライメント読取り又はワードの
一部の読取りの場合には、返される値のタグビットは常
に強制的KOとされる。データ操作(演算又は論理)命
令は、ソースオペランドのタグビットとは無関係に、タ
グビットが強制的にOにされた結果を生成する。
タイプ付きオブジェクト いくつかのオブジェクトの内部編成は、そのアドレスス
ペースの内部のデータ構造を指定し且つ解釈することに
より規定される。そのようなオブジェクトは保護システ
ム、プロセス間/プロセッサ間通信システム及び記憶管
理システムにおいて重大な役割を果たす。それらのシス
テム規定オブジェクトを認識すると共に、その使用を制
御するために、それぞれのオブジェクトをコードによっ
て識別しても良い。コードはオブジェクトタイプと呼ば
れ、オブジェクトのアドレスマツピンク情報と共に維持
される。ユーザーは独自のオブジェクトタイプを考案し
、それらのタイプに一意のタイプコードを割当てること
ができる。
オブジェクトオフセット オブジェクトオフセットはオブジェクト内の1つのデー
タを指定するために使用される32ビツト順序数である
。これはオブジェクト内のデータ又はアクセス記述子を
指示することができる。オブジェクトオフセットは複数
のフィールドに分割されている。それらのフィールドを
どのように解釈するかはオブジェクトの表示によって決
まる。
オブジェクトサイズ オブジェクトのサイズはオブジェクトテーブルエントリ
(OTE)の符号化フィールド(50)に指定されてい
る。仮想アドレスのオブジェクトオフセットにオペラン
ドサイズを加えたものを、アドレス変換ごとに、参照し
たオブジェクトのサイズと比較する。この動作は上下限
検査と呼ばれ、別のオブジェクトに属していると思われ
るデータが指定オブジェクトを越えて参照されるのを阻
止する。
オブジェクトの表示 オブジェクトは、共に物理オブジェクトを直接K又は間
接的に表示する記憶ブロックとページの物理アドレスに
関してマツピング情報を提供するオブジェクトテーブル
エントリにより表わされる。
システムは様々に異なる最大オブジェクトサイズに対し
て3種類のマツピング方式を使用して、オブジェクト表
示オーバーヘッドを最小限に抑える。
単純オブジェクト。単純オブジェクトは物理アドレスス
ペース内の1つのブロックにより直接表示される。物理
ベースアドレスはオブジェクトテーブルエントリに直接
記憶される。そのようなエントリを単純オブジェクト記
述子と呼ぶ。
ページ形オブジェクト。ページ形オブジェクトは単レベ
ルページテーブルを使用して1組の物理ページにより表
示される。ページ形オブジェクト記述子と呼ばれるペー
ジ形オブジェクトのオブジェクトテーブルエントリは、
ページ(関するページテーブルエントリのアレイである
ページテーブルの物理アドレスを含む。
2ページ形オブジエクト。2ページ形オブジエクトは2
レベルのページテーブルを使用して1組の物理ページに
より表示される。2ページ形オブジエクト記述子と呼ば
れる2ページ形オブジエクトのオブジェクトテーブルエ
ントリは、ページテプルに関するページテーブルエント
リのアレイであるページテーブルディレクトリの物理ア
ドレスを含む。
単純オブジェクトは単純オブジェクト記述子により規定
さえ且つ単一のブロックにより表示される。単純オブジ
ェクト記述子は物理ベースアドレスと、ブロック長さと
を含む。単純オブジェクトは4にバイトの物理アドレス
境界を越えて広がることができない。
単純オブジェクトオフセットは次のように区分されてい
る。
ディレクトリインデックスDI(ビット22から31)
。このlOビットフィールドはOでなければならない。
そうでない場合には、PROTECTION誤りが起こ
る。
ページインデックスPI(ビット12から27)。
この10ビツトフイールドは10でなければならない。
そうでない場合には、PROTECTION 誤りが起
こる。
ブロックオフセットSO(ビットOから11)。
この12ビツトフイールドは、オペランドの第1のバイ
トの物理アドレスを形成するためにブロックのベースア
ドレスに加算されるバイト変位である。
ページ形オブジェクト ページ形オブジェクトは、ページ形オブジェクト記述子
と呼ばれるオブジェクトテーブルエントリにより表わさ
れる。ページ形オブジェクトFiルベルのページテーブ
ルによって実現される。各ページは個別的にスワップ及
び再配置が可能であるので、物理アドレススペースに同
時にページ形オブジェクトの全てのオブジェクトが現わ
れている必要はない。ページ形オブジェクトの1つの項
目ヲアクセスするには、ページテーブルと選択されたペ
ージを物理アドレススペース内に配置するだけで良い。
ページ形オブジェクト記述子はオブジェクト長さを含む
が、オブジェクトを表示しているページのベースアドレ
ス(45)を含んでいない。ページ形オブジェクト記述
子のベースアドレスフィール)”(45)Rページテー
ブルブロックのベースアドレスを含む。ページテーブル
ブロックの長さはオブジェクトのオブジェクト長さによ
って規定される。
ページ形オブジェクトオフセット(22) H次のよう
に区分されている。
ディレクトリインデックス、or(ビット22から31
)。この10ビツトフイールドは0で々ければならない
。そうで麿い場合には、PROTECTION誤りが起
こる。
ページインデックス、pr(ビット12から27)。
この10ビツトフイールドは、ページテーブルエントリ
に関して選択されたページテーブル(44)に索引付け
するために使用される。
ページオフセッと、po(ビットOから11)。
この12ビツトフイールドは、バイト変位であり、ペー
ジ形オブジェクト (38)におけるオペランドの第1
のバイトを形成するためにページのページテーブルエン
トリのベースアドレス(45)K付加される。
2ページ形オブジエクト 2ページ形オブジエクトは、2ページ形オブジエクト記
述子と呼ばれるオブジェクトテーブルエントリにより表
わされる。2ページ形オブジエクトは2レベルのページ
テーブルによって実現される。各ページ又はページテー
ブルは個別的にスワップ及び再配置が可能であるので、
2ページ形オブジエクトの全てのページ又はページテー
ブルが同時に物理アドレススペースに現われている必要
はない。2ページ形オブジエクトの1つの項目をアクセ
スするには、ページテーブルと、選択されたページテー
ブルと、選択されたページとを物理アドレススペースに
配置するだけで良い。
2ページ形オブジエクト記述子はオブジェクト長さを含
むが、ページのベースアドレスと、オブジェクトを表示
するページテーブルを共に含んでいない。2ページ形オ
ブジエクト記述子のベーアアドレスフィールドは、ペー
ジテーブルデイレクトリブロックのベースアドレスを含
む。ページテーブルデイレクトリブロックの長さはオブ
ジェクトのオブジェクト長さによって規定される。
2ページ形オブジエクトオフセツトは次のように区分さ
れている。
ディレクトリインデックス01  (ビット22から3
1)。ディレクトリインデックスは、2ページ形オブジ
エクト記述子により指定されるページテーブルディレク
トリにおいて1つのページテーブルエントリを選択する
ページインデックスPI(ビット12から27)。
ページインデックスは、指定されたページテーブルにお
いて1つのページテーブルエントリを選択する。
ページオフセットPO(ビット11から0)。
ページオフセットはページへのオフセットとして使用さ
れる。ページオフセットは、オペランドの第1のバイト
に関する物理アドレスを形成するために、(ページテー
ブルエントリ内の)ベースアドレスに付加される。
マツピングテーブル オブジェクトテーブルオブジェクト (42)は仮想ア
ドレスマツピングの根として働く。オブジェクトテーブ
ルは16バイトオブジエクトテーブルエントリのアレイ
である。アクセス記述子にあるオブジェクトインデック
スフィールド(34)は、オブジェクトテーブル(OT
)の1つのオブジェクトテーブルエントリを選択する。
オブジェクトテーブルエントリについては以下に説明す
る。
オブジェクトテーブルはシステム規定システムタイプを
持たない。OTE対するポインタであるADは大域寿命
を有するが、オブジェクトテーブル(OT)のオブジェ
クトテーブルエントリ(OTE )又1−iページテー
ブルエントリは局所寿命を有していなければならなり0
これは、O’rEのタイプ定義オブジェクト(TDO)
AD及び組込み記憶子を支援するために必要である。
単一のシステム幅仮想アドレススペースを共用する全て
のプロセッサに対して1つのシステム幅オブジェクトテ
ーブル(OT)がある。
システム規定オブジェクトインデックスシステムは以下
に示すようなオブジェクトインデックスを規定するが、
これらのインデックスは他の目的に使用されてはならな
い。
オブジェクトインデックス   目的 0         空ADの九めに予約1〜7   
   保持 8          オブジェクトテーブル9〜15
      保持 16〜31       オブジェクトタイプO〜15
のためのデイ フォルトTDOAD ページテーブル又はページテーブルディレクトリページ
テーブルは、ページ形オブジェクト及び2ページ形オブ
ジエクHCついてルベル又は2レベルのマツピングを実
行するために使用される。
ページテーブルディレクトリは2ページ形オブジエクト
について第1のレベルのマツピングを実行するために使
用される。ページテーブルディレクトリ#′i′特許出
願第     号(D−1259)Kさらに詳細に説明
されている。ページテーブル(又はページテーブルディ
レクトリ)は、ページのベースアドレスと、仮想メモリ
管理及びガーベージコレクションのための他の情報とを
規定するページテーブルエントリ(又はページテーブル
ディレクトリエントリ)を含む。
ページテーブルとページテーブルディレクトリはシステ
ム認識されるが、オブジェクトではなく、システムタイ
プを持たない。
ページテーブルは、それぞれが4バイトの長さであるペ
ージテーブルエントリのアレイである。
ページテーブルの各ページテーブルエントリはページ形
オブジェクト又F!2ページ形オブジェクトにおける1
つのページを記述する。ページテーブルディレクトリの
各ページテーブルエントリは2ページ形オブジエク)K
関するページテーブルを記述する。
ページ形オブジェクトのページテーブル又は2ページ形
オブジエクトのページテーブルディレクトリは、様々に
サイズを変化させることができると共に、どの64バイ
ト境界にもアライメントできる。2ページ形オブジエク
トのページテーブルFi4にバイトのサイズでなければ
ならず、また、4にバイト境界にアライメントされてい
なければならない。
ページテーブルとページテーブルディレクトリはオブジ
ェクトではないので、仮想アドレススペースで直接アク
セスできない。それらをアクセスする1つの方法は、物
理アドレスを使用するものである。別の方法によれば、
ページテーブルを、それらが規定しているオブジェクト
の一部にマツピングする。この第2の方法では、ページ
テーブルディレクトリ又はページテーブルの物理アドレ
スを複製しなければ)らない。ページスワツピング中に
物理アドレスの別名が更新されるように保証するのはソ
フトウェアである。
記述子のフォーマット データワード 第5図はデータワードの図である。データワードのフィ
ールドは次のように規定されている。
データ(ビットO〜31)。このフィールドは何らかの
データ値を含む。
タグ(タグビット)。データ値の場合、このビットはO
である。
アクセス記述子 第6図はアクセス記述子の図である。アクセス記述子の
フィールドは次のように規定されている。
読取り権利(ビット0)。このビットは、このアクセス
記述子により参照されるオブジェクトの内容の読取シが
許可されることを指示する。
書込み権利(ビット1)。このビットは、このアクセス
記述子により参照されるオブジェクトの内容の書込みが
許可されることを指示する。
タイプ権利(ビット2〜4)。この3ビツトフイールド
をどう解釈するかは、参照されるオブジェクトのオブジ
ェクトタイプによって確定される。
局所(ビット5)。このビットはオブジェクトの寿命を
指示する。このビットは、大域オブジェクトの場合は0
であり、局所オブジェクトの場合には1である。オブジ
ェクトの寿命F!、特許出願第号(D−1259)にさ
らに詳細に詳記されている。
オブジェクトインデックス(ビット6〜31)。
この26ビツトフイールドは、オブジェクトテーブル0
1つのオブジェクトテーブルエントリを選択する。
タグ(タグビット)。有効アクセス記述子の場合、この
ビットは1でなければならない。
混合ワード 混合ワードはデータワードと、アクセス記述子とが合体
し九ものである。すなわち、コンチクストに応じて、混
合ワードをデータワード又はアクセス記述子のいずれか
としてみなすことができる。
混合ワードの値は次のようなりラスに分割される。
(1)有効アクセス記述子。有効アクセス記述子では、
タグビットが1にセットされている。対応するインデッ
クスに関するオブジェクトが規定されていれば、ここか
らオブジェクトを参照することができる(これを使用し
てオブジェクトの内容を参照することができる)。AD
が期待されるときにタグビットが0である場合には、C
0N5TRAINr。
INVALID  A o la りが起こる。
■ データ。データワードのタグビットはOにセットさ
れている。データ値が生成されると、タグビットは常に
OK上セツトれる。データ値が期待されるとき、タグビ
ットは無袂され、Oであると解釈される。データ値が期
待されるときにタグビットが1である場合には、誤プは
起こらない。
仮想アドレス 第7図は、仮想アドレスのフォーマットを示す図である
。仮想アドレスのフィールドは次のように規定されてい
る。
オブジェクトオフセット(バイトOから3)。
この32ビツトフイールドは、仮想アドレス中のアクセ
ス記述子により参照されるオブジェクトへの順序数オフ
セットを含む。
アクセス記述子(バイト4から1)。このADけ、この
仮想アドレスにより参照されるオブジェクトを指定する
。ADは、この仮想アドレスを使用する許容された動作
をさらに指定する。
オブジェクトテーブルエントリ オブジェクトテーブル(42)は次に示すようなタイプ
のオブジェクトテーブルエントリを含むことができる。
オブジェクトテーブルエントリは全て16バイトのサイ
ズである。特定のオブジェクトテーブルエントリは各オ
ブジェクトテーブルエントリのエントリタイプフィール
ド(ビット96から98)により次のようにして識別さ
れる。
00〇−無効オブジェクトテーブルエントリ001−組
込み記述子 01〇−無効単純オブジェクト記述子 011−単純オブジェクト記述子 100−無効ページ形オブジェクト記述子101−ペー
ジ形オブジェクト記述子 11〇−無効2ページ形オブジエクト記述子 111−2ページ形オブジエクト記述子終わりの6つの
記述子をまとめて記憶記述子という。有効な記憶記述子
は物理アドレスを含む。無効の記憶記述子−この場合、
ベースアドレスフィールドは有効であってはならない−
は、選択されたオブジェクトをアクセスできないことを
示すために使用される。
無効単純オブジェクト記述子又は無効ページ形オブジェ
クト記述子又は無効2ページ形オブジエクト記述子のフ
ィールドは次のように規定されている。
TDOAD(ビット32から63)。このフィールドは
このオブジェクト記述子と関連するタイプ定義オブジェ
クトADを含む。
予約(ビット68から69)。このフィールドはOでな
ければならない。
ベースアドレス(ビット1Gから95)。この26ビツ
トフイールドはブロック、ページテーブル又はページテ
ーブルディレクトリの物理ベースアドレス(64バイト
単位)を含む。これは2*932バイトの物理アドレス
スペースを構成する。
このフィールドは無効記憶記述子では解釈されない。
エントリタイプ(ビット96から98)。この3ビツト
フイールドはオブジェクトテーブルエントリのタイプと
、記述子の残り部分の定義とを示す。
アクセス状1!(ビット99から103)。この5ビツ
トフイールドについては次の項で説明する。
このフィールドは単純オブジェクト記述子でのみ規定さ
れる。このフィールドは他のエントリタイプのために保
持される。
オブジェクト長さ(ビット114から119)。このフ
ィールドは、ベースアドレスフィールドにより参照され
る記憶ブロックの64バイト単位の(符号化)長さを含
む。
「符号化」という用語は、長さフィールドで、そのフィ
ールドが実際の長さではなく、実際の長さ−1を含むこ
とを示すために使用される。
単純オブジェクトでは、このフィールドはこの記述子に
より規定される64バイト単位の(符号化)長さを含む
ページ形オブジェクト記述子では、このフィールドはこ
の記述子により規定される64にバイト単位の(符号化
)長さ、すなわち、ページテーブル内のページテーブル
エントリの数(−1)/16を含む。
2ページ形オブジエクト記述子では、このフィールドは
この記述子により規定される64Mバイト単位の(符号
化)長さ、すなわち、ページテーブル登録簿内のページ
テーブルエン) IJO数(−1)/16を含む。
戻し書込み(ビット122)。このビットは、セグメン
と、すなわちページがキャッシュ可能である場合に、オ
ブジェクトについて戻し書込みキャッシングをイネーブ
ルする。
オブジェクトタイプ(ビット124から127)。
この4ビツトフイールドはオブジェクトのオブジェクト
タイプを符号化する。
アクセス状態 アクセス状態は、ブロック及びページの管理のための情
報を含む。これは単純オブジェクト記述子と、有効ペー
ジテーブルエントリとで見られる。
このフィールドは無効オブジェクト記述子、ページ形/
2ページ形オブジェクト記述子、そしてページテーブル
ディレクトリエントリには現われない。
ページテーブルエントリ ページテーブル又はページテーブルディレクトリは同様
のフォーマットの4バイトページテーブルデイレクトリ
エントリのアレイを含む。ページテーブルディレクトリ
におけるページテーブルエントリはページテーブルを指
定し、ページテーブルにおけるページテーブルエントリ
はページを指定する。
有効ページテーブルエントリ又は有効ページテーブルデ
ィレクトリエントリのフィールドは次のように規定され
ている。
有効(ビット0)。このビットは、有効なページテーブ
ルエントリ又はページテーブルディレクトリエントリを
指示するために1である。
ページ権利(ビット1〜2)。この2ビツトフイールド
ハ、(ページテーブルエントリでは)このページの内容
について、又は(ページテーブルディレクトリでは)こ
のページテーブルによるページに対して、異なる複数の
実行モードの許容された動作(読取り又は書込み)を符
号化する。1つのページが2組以上のページ権利により
制御されることもありうるので、有効権利は最小限でも
全ページ権利である。
アクセス状態(ビット3から7)。この5ビツトフイー
ルドは記憶記述子におけるアクセス状態フィールドと同
様のものである。このフィールドはページテーブルエン
トリの場合に規定され、ページテーブルディレクトリエ
ントリの場合には保持される。
ベースアドレス(ビット12から31)。この20ビツ
トフイールドはページの物理ベースアドレス(4096
バイトの単位ページ)を含む。
無効ページテーブルディレクトリエントリのフィールド
は次のように規定されている。
有効(ビット0)。このビットは、無効のページテーブ
ルディレクトリエントリを指示するために0である。
仮想アドレス変換 第2図を参照すると、メモリ要求に対し、命令(14)
は、それが読堆りアクセスであれ、書込みアクセスであ
れ、アクセス記述子(24)と、 アドレス(22)内
のオブジェクトオフセット(22)と、要求の長さとを
指定する〇 以下、ページ形オブジェクト (38)をアクセスする
ための仮想アドレス(20)から物理アドレスへの変換
を説明する。
(1)要求の長さをオブジェクトオフセットに加算する
ことにより、メモリ要求の最終バイトを計算する。
(2)要求を2つの別個のメモリ要求として実行する。
(3)  i!求のタイプが必要とするrep権利を確
定する。
(4)必要な権利がADの読取り権利及び書込み権利(
35)の中に提示されていなければ、PROTECTI
ON誤りを起こす。
(5)アクセス記述子のオブジェクトインデックス(3
4)により選択されたオブジェクトテーブルエントリ(
15)を読取る。エントリタイプを有効ビットはオブジ
ェクトテーブルエントリの符号化フィールド(50)に
ある。エントリタイプが適切でなければ、DESCRI
PTOR誤りを起こす。オブジェクトテーブルエントリ
が有効記憶記述子でなければ、VIRTUAL MEM
ORY誤りt起?ニーf。
(6)オブジェクトテーブルエントリはページ形オブジ
ェクトのものであると仮定すると、メモリ要求のアドレ
スのオフセット部(22)に見られるディレクトリイン
デックスとページインデックスがページテーブル(44
)に見られるページ形オブジェクト記述子(11)にお
けるオブジェクト長さより大きい場合には、PROTE
CTION laシを起こす。
(7)  ページインデックス(アドレス中のオフセッ
トのビット12から27にある)を4倍し、それをオブ
ジェクト記述子(オブジェクトテーブル−42中の)の
ベースアドレスに加算して、ページテーブル(44)中
の選択されたデータページテーブルエントリ(17)の
物理アドレスを形成する。
(8)ページテーブルエントリ(17)を読取り、ペー
ジテーブルエントリが無効であるとマークされThれば
、VIRTUAL  ugMonyw4りを起こす。
(9)アクセス記述子権利(35)がページ権利(46
)を越える場合に#i、RIGHTS PROTECT
ION誤りを起こす。
α1 ページオフセット(アドレスオフセットフィール
ドのビットoからIIKある)をページテーブル(44
)のページテーブルエントリにあるベースアドレス(4
5)と組合せて、メモリ要求により参照されたページ形
オブジェクト(38)の物理アドレスを形成する。
オブジェクト参照試験 COMPARE  MIXED命令とCHECK  T
AG命令COMPARE  MIXED 命令は2つの
AD又はデータが互いに等しいか否かを比較する。2つ
のオペランドがADである場合、命令はそれらが同一の
オブジェクトを参照するか否かを試験する。2つのオペ
ランドがデータである場合には、命令はデータ値が等し
いか否かを試験する。CHECK TAG命令はタグビ
ットを検査する。
スーパーバイザモードにあるタグなしシステムでは、タ
グビットはCOMPARE  MIXED においてセ
ットされると仮定される。
ADがアクセス変数を表わすために使用しているAds
式「アクセス−タイプ−変数=ヌル」では、オブジェク
トを参照するために依然として非ゼロデータ値を全く使
用できないので、COMPARK  MIXEDの代わ
シKOを伴なってCHECK〜TAGを使用すべきであ
る。
アクセス記述子の生成 保護システムは、タグビットが任意に1にセットされな
いこと、寿命検査をバイパスしないこと及びミューデー
タ動作を無視しないことを要求するが、被制御状況の下
では、システムソフトウェアが既存のオブジェクトに対
してアクセス記述子(AD)を生成しなければならない
場合もある。これはCREATE:  AC(’ESS
  DESCRIPTOR命令によって実行される。
CREATE  ACCESS  DESCRIPTO
R命令はデータワードをADに変換する。
オブジェクトアドレッシング命令 LOAD   PHYSICAL   ADDRESS
LOAD  PHYSICAL  ADDRESS  
命令はオペランドの物理アドレスを戻す。
本発明をその好ましい実施例に関連して特定して図示し
且つ説明したが、本発明の範囲から逸脱せずに上記の形
態及び詳細部の変更並びに他の形態及び詳細部の変更を
実施しうろことは当業者には理解できるであろう。
【図面の簡単な説明】
第1図は、本発明が具現化されるマイクロプロセッサの
主な構成要素のそれぞれを示す機能ブロック線図、第2
図は、第1図の変換索引バッファ(TLB)のプロセッ
サレジスタ部分と、第1図に示す主メモリにおいてオブ
ジェクトアドレッシング及び保護を支援するシステムオ
ブジェクトとを示すさらに詳細なブロック線図、第3図
は、第1図の保護論理のさらに詳細なブロック線図、第
4図1から第4図6は、本発明の様々な命令フォーマッ
トの図、第5図は、データワードの図、第6図は、アク
セス記述子の図、第7図は、仮想アドレスフォーマット
の図、第8図は、第2図のプロセッサ制御ブロックのプ
ロセッサ制御装置の図、第9図は、第2図のプロセス制
御ブロックのプロセス制御装置の図である。 10−−・・主メモリスペース、11・・・・レジスタ
スペース、13・・會・保護論理、14・・・・命令、
15・・・・オブジェクト記述子、16・・・・アドレ
ッシングメカニズム、17・・・・ページテーブルエン
トリ、20@−―・仮想アドレス、22・・・争オフセ
ッと、24・・・・アクセス記述子、28・・會・プロ
セッサ制御ブロック、30・・−・アクセス記述子、3
411@・−オブジェクトインデックス、38・−I参
ページ形オブジェクと、42・会會・オブジェクトテー
ブル、44−−@拳ページテーブル、5゜・・・・符号
化フィールド、52拳・・・物理ベースアドレス、64
・―・・プロセス制御ブロック、10Q−−−−インバ
ータ、102−@、。 AND、104−−−−OR,10B  ””権利検査
論理。 FIG、1 FIG、3 杼、ソ FIG、5 FIG、7 アOt?ン+j副分明 FIG、8 フーロク久偽り全嘴n FIG、9 手 続 補 正 書 (方式) %式% 1、事件の表示 平成2年特許願第337003号 2、発明の名称 データ処理システム 3、補正をする者 事件との関係 特 許 出 願 人 名称(氏名) インテル・コーポレーション 以上

Claims (2)

    【特許請求の範囲】
  1. (1)メモリ(10)と; 前記メモリ(10)に接続し、命令(14)で指定され
    る演算子によつて演算を実行することができる少なくと
    も1つのプロセッサ(12)とを含み、前記プロセッサ
    は少なくとも2つの動作モードで動作することができ、
    前記動作モードの1つは、アプリケーションプログラム
    を呼出すためのユーザーモードであり、前記動作モード
    の別のものは、オペレーティングシステムを呼出すため
    のスーパーバイザモードであり、前記命令はいずれか一
    方のモードで実行可能であり、 ページ形オブジェクト(38)を含む複数のアドレッシ
    ング可能オブジェクトは、前記メモリのアドレススペー
    スに記憶されており、 前記アドレススペースは前記1つのプロセッサと、他の
    いくつかのプロセッサにより共用され、 前記1つのプロセッサは、ベース情報と、長さ情報とを
    記憶して、前記アドレススペース内でオブジェクトを位
    置指定する際に使用するためのオブジェクト記述子を記
    憶するアドレッシングメカニズム(16)を含み、 前記複数のアドレッシング可能オブジェクトは、演算を
    規定する前記命令(14)を含む命令から構成される命
    令オブジェクトを含み、 前記命令で参照されるアドレス(20)はオフセット(
    22)及びアクセス記述子(24)として指定され、 前記複数のオブジェクトはプロセッサオブジェクト(2
    8)と、オブジェクトテーブルオブジェクト(42)と
    、ページテーブルオブジェクト(44)と、プロセスオ
    ブジェクト(64)とを含むようなデータ処理システム
    において、 前記プロセッサは、ワードと、前記メモリから読取られ
    る各ワードと関連するタグビット(48)とを前記プロ
    セッサの内部に記憶するプロセッサレジスタを含み、 前記プロセッサレジスタ(11)で、各ワードと関連す
    る前記タグビット(48)は、第1の符号化を伴なうと
    きは前記ワードがデータワードであることを指示し、第
    2の符号化を伴なうときは前記ワードが有効アクセス記
    述子であることを指示し、前記オブジェクトはそれぞれ
    複数のワードから構成されており、前記ワードはアクセ
    ス記述子(30)か、データワード(32)のいずれか
    であり、前記アクセス記述子(30)は、 (イ)前記アドレススペースで1つのオブジェクトを選
    択するためのオブジェクトインデックス(34)と、 (ロ)前記アクセス記述子により選択される前記ページ
    形オブジェクト(38)について許容される動作を指定
    する権利フィールド(27)とをそれぞれ含み、 前記プロセッサオブジェクト(28)はプロセッサ制御
    ブロック(29)を含み、 前記プロセッサ制御ブロック(29)にあるアクセス記
    述子(33)はタグイネーブルビット(40)を含み、 前記オブジェクトテーブルオブジェクト(42)は、プ
    ロセッサの初期設定時に前記プロセッサによりアクセス
    可能であるアドレスに記憶され、前記オブジェクトテー
    ブルは、前記アドレススペースを共用する前記1つのプ
    ロセッサ及び前記他のいくつかのプロセッサと関連し、 前記オブジェクトテーブルには、前記ページテーブルオ
    ブジェクトに対する物理アドレスを形成する際に前記ア
    ドレッシングメカニズム(10)により使用するための
    オブジェクト記述子(15)が記憶されており、 前記オブジェクト記述子(15)は、それぞれ、前記ア
    クセス記述子により参照されるページテーブルオブジェ
    クトのベースアドレスと、サイズとを指定する第1の符
    号化フィールド(50)と、第2の符号化フィールド(
    52)とを含み、 前記ページテーブル(44)には、前記ページ形オブジ
    ェクト(38)に対する物理アドレスを形成する際に前
    記アドレッシングメカニズム(10)により使用するた
    めのページテーブルエントリ(17)が記憶されており
    、 前記オフセット(22)は、前記ページテーブルエント
    リを位置指定する目的で選択されたページテーブルに対
    して索引付けするために使用されるページインデックス
    と、前記ページ形オブジェクト(38)の1つのデータ
    エントリを位置指定するために前記ページテーブルエン
    トリに記憶されたベースアドレスと組合せて使用される
    ページオフセットとを含み、 既知の仮想アドレスと、前記オブジェクトインデックス
    (34)とを前記オブジェクトテーブル(42)へのイ
    ンデックスとして利用することにより、前記オブジェク
    トテーブルで第1のオブジェクト記述子を位置指定する
    第1の手段(54)が設けられ、 前記アドレッシングメカニズム(16)は、オブジェク
    ト記述子(44)のベースアドレスを前記ページオフセ
    ットと組合せて、前記ページ形オブジェクト(38)を
    位置指定するためのアドレスを形成する手段を含み、 前記プロセスオブジェクト(64)は前記プロセッサで
    現在実行中のプロセスを規定し、前記プロセスオブジエ
    クトは、実行環境を指定し、そのプログラムの実行状態
    を記録し且つ前記プロセスに割当てられているシステム
    資源に関する情報を維持するプロセス制御ブロックを含
    み、 前記プロセス制御ブロックにある前記アクセス記述子の
    1つ(66)は、前記ユーザーモード又は前記スーパー
    バイザモードのいずれかを表わす値にセットすることが
    できる実行モード指示手段(68)を含み、 前記タグイネーブルビット(40)が前記ディスエーブ
    ル状態にあり且つ前記実行モード指示手段(68)が前
    記スーパーバイザモードを表わす前記値にセットされて
    いる場合に、タグ信号(111)を印加する手段(10
    0、102、104)が設けられていることを特徴とす
    るデータ処理システム。
  2. (2)メモリ(10)と; 前記メモリ(10)に接続し、命令(14)で指定され
    る演算子によつて演算を実行することができる少なくと
    も1つのプロセッサ(12)とを含み、前記プロセッサ
    は少なくとも2つの動作モードで動作することができ、
    前記動作モードの1つは、アプリケーションプログラム
    を呼出すためのユーザーモードであり、前記動作モード
    の別のものは、オペレーティングシステムを呼出すため
    のスーパーバイザモードであり、前記命令はいずれか一
    方のモードで実行可能であり、 ページ形オブジェクト(38)を含む複数のアドレッシ
    ング可能オブジェクトは、前記メモリのアドレススペー
    スに記憶されており、 前記アドレススペースは前記1つのプロセッサと、他の
    いくつかのプロセッサとにより共用され、前記1つのプ
    ロセッサは、ベース情報と、長さ情報とを記憶して、前
    記アドレススペース内でオブジェクトを位置指定する際
    に使用するためのオブジェクト記述子を記憶するアドレ
    ッシングメカニズム(16)を含み、 前記複数のアドレッシング可能オブジェクトは、演算を
    規定する前記命令(14)を含む命令から構成される命
    令オブジェクトを含み、 前記命令で参照されるアドレス(20)はオフセット(
    22)及びアクセス記述子(24)として指定され、 前記複数のオブジェクトはプロセッサオブジェクト(2
    8)と、オブジェクトテーブルオブジェクト(42)と
    、ページテーブルオブジェクト(44)と、プロセスオ
    ブジェクト(64)とを含むようなデータ処理システム
    において、 A、プロセッサレジスタ(11)で、各ワードと関連す
    る前記タグビット(48)は、第1の符号化を伴なうと
    きは前記ワードがデータワードであることを指示し、第
    2の符号化を伴なうときには前記ワードが有効アクセス
    記述子であることを指示し、 前記オブジェクトはそれぞれ複数のワードから構成され
    ており、前記ワードはアクセス記述子(30)か、デー
    タワード(32)のいずれかであり、前記アクセス記述
    子(30)は、 (a)、前記アドレススペースで1つのオブジェクトを
    選択するためのオブジェクトインデックス(34)と、 (b)、前記アクセス記述子により選択される前記ペー
    ジ形オブジェクト(38)ついて許容される動作を指定
    する権利フィールド(27)とをそれぞれ含み、前記プ
    ロセッサオブジェクト(28)はプロセッサ制御ブロッ
    ク(29)を含み、 前記プロセッサ制御ブロック(29)にあるアクセス記
    述子(33)はタグイネーブルビット(40)を含むよ
    うに構成され、前記プロセッサ内の前記プロセッサレジ
    スタ(11)の内部に前記ワードと、前記メモリから読
    取られる各ワードと関連するタグビット(48)とを記
    憶する過程と; B、前記アドレススペースを共用する前記1つのプロセ
    ッサ及び前記他のいくつかのプロセッサと関連している
    前記オブジェクトテーブルオブジェクト(42)を、プ
    ロセッサの初期設定時に前記プロセッサによりアクセス
    可能であるアドレスに記憶する過程と; C、前記オブジェクトテーブルに、前記ページテーブル
    オブジェクトに対する物理アドレスを形成する際に前記
    アドレッシングメカニズムに(10)により使用するた
    め、前記アクセス記述子により参照されるページテーブ
    ルオブジェクトのベースアドレスと、サイズとを指定す
    る第1の符号化フィールド(50)と、第2の符号化フ
    ィールド(52)とを含むオブジェクト記述子(15)
    を記憶する過程と; D、前記ページテーブル(44)に、前記ページ形オブ
    ジェクト(38)に対する物理アドレスを形成する際に
    前記アドレッシングメカニズム(10)により使用する
    ためのページテーブルエントリ(17)を記憶する過程
    と; E、前記ページテーブルエントリを位置指定する目的で
    選択されたページテーブルに対して索引付けするために
    前記オフセット(22)中のページインデックスを利用
    すると共に、前記ページ形オブジェクト(38)の1つ
    のデータエントリを位置指定するために前記ページテー
    ブルエントリに記憶されたベースアドレスと組合せて使
    用されるページオフセットを利用する過程と; F、既知の仮想アドレスと、前記オブジェクトインデッ
    クス(34)とを前記オブジェクトテーブル(42)へ
    のインデックスとして利用することにより、前記オブジ
    ェクトテーブルで第1のオブジェクト記述子を位置指定
    する過程と; G、前記プロセッサオブジェクト(64)は前記プロセ
    ッサで現在実行中のプロセスを規定し、前記プロセスオ
    ブジェクトは、実行環境を指定し、そのプログラムの実
    行状態を記録し且つ前記プロセスに割当てられているシ
    ステム資源に関する情報を維持するプロセス制御ブロッ
    クを含み、オブジェクト記述子(44)のベースアドレ
    スを前記ページオフセットと組合せて、前記ページ形オ
    ブジェクト(38)を位置指定するためのアドレスを形
    成する過程と、 H、前記プロセス制御ブロック中の前記アクセス記述子
    の1つ(66)にある実行モード指示手段(68)を、
    前記ユーザーモード又は前記スーパーバイザモードのい
    ずれかを表わす値にセットする過程と; I、前記タグイネーブルビット(40)が前記デイスエ
    ーブル状態にあり且つ前記実行モード指示手段(68)
    が前記スーパーバイザモードを表わす前記値にセットさ
    れている場合に、タグ信号を印加する過程とから成る方
    法。
JP2337003A 1989-12-22 1990-11-30 データ処理システム Pending JPH03225455A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/455,625 US5075842A (en) 1989-12-22 1989-12-22 Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US455,625 1989-12-22

Publications (1)

Publication Number Publication Date
JPH03225455A true JPH03225455A (ja) 1991-10-04

Family

ID=23809597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2337003A Pending JPH03225455A (ja) 1989-12-22 1990-11-30 データ処理システム

Country Status (4)

Country Link
US (1) US5075842A (ja)
JP (1) JPH03225455A (ja)
DE (1) DE4040963C2 (ja)
GB (1) GB2239335B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097597A (ja) * 2006-09-21 2008-04-24 Intel Corp 高インテグリティファームウェア

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0438011A3 (en) * 1990-01-18 1993-05-19 International Business Machines Corporation Logic on main storage memory cards for insertion and extraction of tag bits
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
US5297279A (en) * 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5414812A (en) * 1992-03-27 1995-05-09 International Business Machines Corporation System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
CA2097540C (en) * 1993-06-01 1998-05-12 William G. O'farrell Accessing remote data objects in a distributed memory environment
JP2986051B2 (ja) * 1993-08-04 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US5504887A (en) * 1993-09-10 1996-04-02 International Business Machines Corporation Storage clustering and packing of objects on the basis of query workload ranking
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
US6292879B1 (en) * 1995-10-25 2001-09-18 Anthony S. Fong Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6457019B1 (en) 1999-02-11 2002-09-24 Oracle Corp. Memory management within a run-time environment
US6877161B1 (en) 1999-02-11 2005-04-05 Oracle International Corp. Address calculation of invariant references within a run-time environment
US6434685B1 (en) 1999-02-11 2002-08-13 Oracle Corp. Paged memory management system within a run-time environment
US6499095B1 (en) 1999-02-11 2002-12-24 Oracle Corp. Machine-independent memory management system within a run-time environment
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation 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
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
WO2002006929A2 (en) * 2000-07-18 2002-01-24 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7415708B2 (en) 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US20050080934A1 (en) * 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
MX2011002377A (es) * 2008-09-02 2011-09-21 Gen Electric Procedimiento para remover sulfuro de hidrogeno en petroleo crudo.
US9934166B2 (en) 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US9569612B2 (en) 2013-03-14 2017-02-14 Daniel Shawcross Wilkerson Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality
US9411600B2 (en) * 2013-12-08 2016-08-09 Intel Corporation Instructions and logic to provide memory access key protection functionality
CA3005949C (en) * 2015-12-15 2022-08-02 Jan Jaeger Protection key management and prefixing in virtual address space legacy emulation system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
GB2059652B (en) * 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4480306A (en) * 1981-05-22 1984-10-30 Data General Corporation Digital data processing system using unique ALU register files and micro-instruction stacks
US4498131A (en) * 1981-05-22 1985-02-05 Data General Corporation Data processing system having addressing mechanisms for processing object-based information and a protection scheme for determining access rights to such information
US4498132A (en) * 1981-05-22 1985-02-05 Data General Corporation Data processing system using object-based information and a protection scheme for determining access rights to such information and using multilevel microcode techniques
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4791550A (en) * 1985-02-13 1988-12-13 Rational Higher order language-directed computer
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097597A (ja) * 2006-09-21 2008-04-24 Intel Corp 高インテグリティファームウェア
JP2011238277A (ja) * 2006-09-21 2011-11-24 Intel Corp 高インテグリティファームウェア
US8312509B2 (en) 2006-09-21 2012-11-13 Intel Corporation High integrity firmware

Also Published As

Publication number Publication date
DE4040963A1 (de) 1991-06-27
US5075842A (en) 1991-12-24
GB2239335A (en) 1991-06-26
GB2239335B (en) 1993-11-24
GB9019822D0 (en) 1990-10-24
DE4040963C2 (de) 1998-01-22

Similar Documents

Publication Publication Date Title
US5075842A (en) Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5075845A (en) Type management and control in an object oriented memory protection mechanism
US5075848A (en) Object lifetime control in an object-oriented memory protection mechanism
US5157777A (en) Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism
US5517651A (en) Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes
US6895491B2 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US5095526A (en) Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
US5319760A (en) Translation buffer for virtual machines with address space match
WO1996012231A1 (en) A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5339417A (en) Computer system with two levels of guests
US5187791A (en) Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag
TWI790350B (zh) 記憶體存取中的守衛標籤檢查的控制
US6763328B1 (en) Method and data processing system for emulating virtual memory utilizing threads
CN112639750B (zh) 用于控制存储器存取的装置及方法
US20060026577A1 (en) Method and system for replacing instructions and instruction blocks in computer code
US7269825B1 (en) Method and system for relative address translation
JPH1055281A (ja) 非セグメント化仮想アドレス空間を備えるマイクロプロセッサによってセグメント化仮想アドレス空間をエミュレートするシステムおよび方法
EP0550286A2 (en) 2-Level multi-processor synchronization protocol
US5280592A (en) Domain interlock
JP7349437B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
JP3554320B2 (ja) オブジエクト指向メモリ保護メカニズムを採用するデータ処理システムで実行環境間の通信を実行するデータ処理システム
US5117491A (en) Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
US6446094B1 (en) Data structure for emulating virtual memory working spaces
JPH06318179A (ja) 仮想メモリ・システム
JP2608680B2 (ja) Cpu実行方法