JP3237065B2 - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JP3237065B2 JP3237065B2 JP32608190A JP32608190A JP3237065B2 JP 3237065 B2 JP3237065 B2 JP 3237065B2 JP 32608190 A JP32608190 A JP 32608190A JP 32608190 A JP32608190 A JP 32608190A JP 3237065 B2 JP3237065 B2 JP 3237065B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- type
- rights
- access
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-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)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明はデータ処理システムに関し、特に、メモリの
記憶場所を無許可のアクセスから保護するメモリアクセ
スシステムに関する。
記憶場所を無許可のアクセスから保護するメモリアクセ
スシステムに関する。
[従来の技術及び発明が解決しようとする問題点] 最新のコンピュータシステムは、システム内部の全て
の情報をオブジェクトと呼ばれるハードウェア認識、メ
モリ常駐情報構造によって表示するように編成されてい
る。これはオブジェクト指向コンピュータアーキテクチ
ャとして知られている。オブジェクトは、連続してアド
レス指定された1組の記憶場所に維持されている関連情
報を表示するデータのパッケージである。
の情報をオブジェクトと呼ばれるハードウェア認識、メ
モリ常駐情報構造によって表示するように編成されてい
る。これはオブジェクト指向コンピュータアーキテクチ
ャとして知られている。オブジェクトは、連続してアド
レス指定された1組の記憶場所に維持されている関連情
報を表示するデータのパッケージである。
オブジェクト指向プログラミングシステムでは、各タ
イプ又はクラスのオブジェクトは、そのクラスに属する
オブジェクトについて実行を許可されている1組の動作
を有する。これはオブジェクトベースアクセスメカニズ
ムとして知られている。オブジェクトの内部構造はプロ
グラマーにはわからない。プログラマーは許可された動
作によってオブジェクトを操作できるだけである。オブ
ジェクトに対するアクセスは、アクセス記述子と呼ばれ
るオブジェクトへのポインタによって行われる。アクセ
ス記述子は、そのオブジェクトに関するアクセス記述子
のホルダーにより許可されるオブジェクトに対する様々
な種類のアクセスを規定する種類の表示(rep)権利
(読取り権利又は書込み権利など)を記述する。
イプ又はクラスのオブジェクトは、そのクラスに属する
オブジェクトについて実行を許可されている1組の動作
を有する。これはオブジェクトベースアクセスメカニズ
ムとして知られている。オブジェクトの内部構造はプロ
グラマーにはわからない。プログラマーは許可された動
作によってオブジェクトを操作できるだけである。オブ
ジェクトに対するアクセスは、アクセス記述子と呼ばれ
るオブジェクトへのポインタによって行われる。アクセ
ス記述子は、そのオブジェクトに関するアクセス記述子
のホルダーにより許可されるオブジェクトに対する様々
な種類のアクセスを規定する種類の表示(rep)権利
(読取り権利又は書込み権利など)を記述する。
1982年4月13日Colley他に許可され且つIntel Corpor
ationに譲渡されている米国特許第4,325,120号には、2
つの基本的なタイプのオブジェクトをプロセッサにより
認識し、識別するオブジェクトベースアクセスメカニズ
ムが記載されている。第1の基本タイプは、通常データ
を含むデータセグメントである。第2の基本タイプは、
メモリ内の情報、すなわち、他のオブジェクトをアクセ
スするために使用されるアクセス記述子を含むアクセス
リストである。各アクセス記述子は、そのアクセス記述
子と関連するアクセスのエクステントを位置指定し且つ
限定するための情報を提供する。メモリへの無許可のア
クセスは、メモリにおいてオブジェクトに対する参照を
生成するプロセスで利用されるアクセス記述子を検査す
る保護メカニズムにより制御される。
ationに譲渡されている米国特許第4,325,120号には、2
つの基本的なタイプのオブジェクトをプロセッサにより
認識し、識別するオブジェクトベースアクセスメカニズ
ムが記載されている。第1の基本タイプは、通常データ
を含むデータセグメントである。第2の基本タイプは、
メモリ内の情報、すなわち、他のオブジェクトをアクセ
スするために使用されるアクセス記述子を含むアクセス
リストである。各アクセス記述子は、そのアクセス記述
子と関連するアクセスのエクステントを位置指定し且つ
限定するための情報を提供する。メモリへの無許可のア
クセスは、メモリにおいてオブジェクトに対する参照を
生成するプロセスで利用されるアクセス記述子を検査す
る保護メカニズムにより制御される。
初期のコンピュータシステムでは、アーキテクチャは
スーパーバイザ状態と、問題状態の2つのプログラム状
態を設けており、プロセッサは2つの状態の間で切替わ
る。問題状態のときは、全ての特権命令(入出力命令、
保護命令及び一連の制御命令)は無効である。スーパー
バイザ状態のときには、全ての命令が有効である。問題
状態で特権命令が表われると、特権動作例外を認識し
て、プログラム割込みが起こり、動作は制御される。主
メモリのいくつかの領域の内容を破壊又は誤用を保護す
るために、保護を実行する。記憶場所は、記憶ブロック
をキーによって識別し、このキーを記憶すべきデータと
共に供給された保護キーと比較することにより保護され
る。一致しないときには、例外を認識して、プログラム
割込みが起こり、動作は抑制される。
スーパーバイザ状態と、問題状態の2つのプログラム状
態を設けており、プロセッサは2つの状態の間で切替わ
る。問題状態のときは、全ての特権命令(入出力命令、
保護命令及び一連の制御命令)は無効である。スーパー
バイザ状態のときには、全ての命令が有効である。問題
状態で特権命令が表われると、特権動作例外を認識し
て、プログラム割込みが起こり、動作は制御される。主
メモリのいくつかの領域の内容を破壊又は誤用を保護す
るために、保護を実行する。記憶場所は、記憶ブロック
をキーによって識別し、このキーを記憶すべきデータと
共に供給された保護キーと比較することにより保護され
る。一致しないときには、例外を認識して、プログラム
割込みが起こり、動作は抑制される。
Colley他の特許のアーキテクチャの場合、プロセッサ
内で、スーパーバイザ状態と問題状態のような異なる実
行状態は不要になっている。このオブジェクト指向アー
キテクチャでは、プロセッサがスーパーバイザ状態にあ
るときにのみ実行される特権命令は不要である。メモリ
の保護は、いくつかの記憶場所ではなく、いくつかのオ
ブジェクトに対するアクセスを許可又は抑止することに
より実行される。
内で、スーパーバイザ状態と問題状態のような異なる実
行状態は不要になっている。このオブジェクト指向アー
キテクチャでは、プロセッサがスーパーバイザ状態にあ
るときにのみ実行される特権命令は不要である。メモリ
の保護は、いくつかの記憶場所ではなく、いくつかのオ
ブジェクトに対するアクセスを許可又は抑止することに
より実行される。
オブジェクト指向アーキテクチャでは、セグメントは
全てのアドレッシングと保護の基礎となる。セグメント
は、サイズ、すなわち長さを規定された単一の線形アド
レススペースである。セグメントは主メモリにあり、開
始アドレス、すなわちベースアドレスと関連している。
セグメント又はオブジェクトの内部の1つのデータ項目
の実際の物理アドレスを確定するために、セグメント内
部の項目の位置(項目の変位という)をセグメントのベ
ースアドレスに加算する。アドレッシングがセグメント
化されているシステムにおいては、セグメントを移動す
るために、セグメントのベースアドレスを更新すること
が必要である。しかしながら、ベースアドレス情報をメ
モリ全体と、プロセッサのレジスタに配分することがで
きる。すなわち、セグメントが移動するときには、その
変更を反映するためにセグメントの多数のコピーを位置
指定し且つ更新しなければならない。この問題を回避す
るために、Colley他のアーキテクチャはセグメントに関
する全ての情報を統合し、その情報をセグメントテーブ
ルに導入する。次に、セグメントに対する全ての参照は
このテーブルから必要なベースアドレスと長さ情報を得
ることが要求される。セグメントに対するどの参照も、
セグメント記述子をアクセスし、正しい現在ベースアド
レスと現在長さ情報を得るのである。
全てのアドレッシングと保護の基礎となる。セグメント
は、サイズ、すなわち長さを規定された単一の線形アド
レススペースである。セグメントは主メモリにあり、開
始アドレス、すなわちベースアドレスと関連している。
セグメント又はオブジェクトの内部の1つのデータ項目
の実際の物理アドレスを確定するために、セグメント内
部の項目の位置(項目の変位という)をセグメントのベ
ースアドレスに加算する。アドレッシングがセグメント
化されているシステムにおいては、セグメントを移動す
るために、セグメントのベースアドレスを更新すること
が必要である。しかしながら、ベースアドレス情報をメ
モリ全体と、プロセッサのレジスタに配分することがで
きる。すなわち、セグメントが移動するときには、その
変更を反映するためにセグメントの多数のコピーを位置
指定し且つ更新しなければならない。この問題を回避す
るために、Colley他のアーキテクチャはセグメントに関
する全ての情報を統合し、その情報をセグメントテーブ
ルに導入する。次に、セグメントに対する全ての参照は
このテーブルから必要なベースアドレスと長さ情報を得
ることが要求される。セグメントに対するどの参照も、
セグメント記述子をアクセスし、正しい現在ベースアド
レスと現在長さ情報を得るのである。
本発明の目的は、単純なアドレッシング構造から複雑
なアドレッシング構造に至るまで、各アドレッシングレ
ベルでアクセス保護を伴なって対応するオブジェクトア
ドレッシングメカニズムを提供することである。
なアドレッシング構造に至るまで、各アドレッシングレ
ベルでアクセス保護を伴なって対応するオブジェクトア
ドレッシングメカニズムを提供することである。
本発明の別の目的は、オブジェクトのあらかじめ規定
された特性を指定するシステムタイプと、オブジェクト
のタイプ特有ソフトウェア規定特性を指定する拡張タイ
プの双方を対応するオブジェクトタイプ管理メカニズム
を提供することである。
された特性を指定するシステムタイプと、オブジェクト
のタイプ特有ソフトウェア規定特性を指定する拡張タイ
プの双方を対応するオブジェクトタイプ管理メカニズム
を提供することである。
本発明の更に別の目的は、アクセス記述子の権利を拡
大又は制御するメカニズムを提供することである。
大又は制御するメカニズムを提供することである。
[問題点を解決するための手段] 簡単にいえば、上記の目的は、本発明によれば、オブ
ジェクトテーブルオブジェクト(42)と、ページテーブ
ルディレクトリオブジェクト(60)と、ページテーブル
オブジェクト(44)とを設けることにより達成される。
各オブジェクトは複数のワードから構成され、そのワー
ドはアクセス記述子か、又はデータワードのいずれかで
ある。各アクセス記述子は、プロセッサのメモリのアド
レススペースにある1つのオブジェクトを選択するため
のオブジェクトインデックスと、アクセス記述子により
選択されるオブジェクトについて許容された動作を指定
する権利フィールドとを含む。オブジェクトテーブルオ
ブジェクト(42)はプロセッサの初期設定時にプロセッ
サによりアクセス可能であるアドレスに記憶される。こ
のテーブルには、ページテーブルディレクトリオブジェ
クト(60)に対する物理アドレスを形成する際にプロセ
ッサが使用するためのオブジェクト記述子が記憶されて
いる。それぞれのオブジェクト記述子は、オブジェクト
記述子により参照されるオブジェクトのベースアドレス
を指定する第1の符号化フィールド(52)と、オブジェ
クトエントリタイプを含む第2の符号化フィールド(5
0)とを含む。ページテーブル(44)には、ページ形オ
ブジェクト(38)に対する物理アドレスを形成する際に
プロセッサが使用するためのページテーブルエントリが
記憶されており、各ページテーブルエントリはページ権
利フィールド(81)を有する。オフセット(22)は、ペ
ージテーブルエントリを位置指定する目的で選択された
ページテーブルに対して索引付けするために使用される
ページインデックス(PI)と、ペーシ形オブジェクト
(38)におけるデータエントリを位置指定するためにペ
ージテーブルエントリに記憶されたベースアドレス(7
9)と組合せて使用されるページオフセエット(PO)と
を含む。保護は、ページテーブルエントリのページ権利
フィールド(81)及びページテーブルディレクトリエン
トリの権利フィールド(50)をメモリアクセスのタイプ
と比較することにより実行される。アクセスがページテ
ーブルディレクトリエントリのページ権利フィールド
(62)又はページテーブルエントリのページ権利フィー
ルド(50)と一致していない場合には、誤りを起こす。
ジェクトテーブルオブジェクト(42)と、ページテーブ
ルディレクトリオブジェクト(60)と、ページテーブル
オブジェクト(44)とを設けることにより達成される。
各オブジェクトは複数のワードから構成され、そのワー
ドはアクセス記述子か、又はデータワードのいずれかで
ある。各アクセス記述子は、プロセッサのメモリのアド
レススペースにある1つのオブジェクトを選択するため
のオブジェクトインデックスと、アクセス記述子により
選択されるオブジェクトについて許容された動作を指定
する権利フィールドとを含む。オブジェクトテーブルオ
ブジェクト(42)はプロセッサの初期設定時にプロセッ
サによりアクセス可能であるアドレスに記憶される。こ
のテーブルには、ページテーブルディレクトリオブジェ
クト(60)に対する物理アドレスを形成する際にプロセ
ッサが使用するためのオブジェクト記述子が記憶されて
いる。それぞれのオブジェクト記述子は、オブジェクト
記述子により参照されるオブジェクトのベースアドレス
を指定する第1の符号化フィールド(52)と、オブジェ
クトエントリタイプを含む第2の符号化フィールド(5
0)とを含む。ページテーブル(44)には、ページ形オ
ブジェクト(38)に対する物理アドレスを形成する際に
プロセッサが使用するためのページテーブルエントリが
記憶されており、各ページテーブルエントリはページ権
利フィールド(81)を有する。オフセット(22)は、ペ
ージテーブルエントリを位置指定する目的で選択された
ページテーブルに対して索引付けするために使用される
ページインデックス(PI)と、ペーシ形オブジェクト
(38)におけるデータエントリを位置指定するためにペ
ージテーブルエントリに記憶されたベースアドレス(7
9)と組合せて使用されるページオフセエット(PO)と
を含む。保護は、ページテーブルエントリのページ権利
フィールド(81)及びページテーブルディレクトリエン
トリの権利フィールド(50)をメモリアクセスのタイプ
と比較することにより実行される。アクセスがページテ
ーブルディレクトリエントリのページ権利フィールド
(62)又はページテーブルエントリのページ権利フィー
ルド(50)と一致していない場合には、誤りを起こす。
本発明の別の面によれば、命令オブジェクトの1つは
権利拡大命令であり、タイプ定義オブジェクト(74)が
設けられている。タイプ定義オブジェクトはスーパーTD
Oビットである。TDOビットは、ゼロ(0)であるとき
は、TDOにより指定されるタイプと一致するタイプのオ
ブジェクト(拡張ビットが1である場合)、又は指定さ
れたTDOとTDOが一致しているオブジェクトについてアク
セス記述子の権利を拡大するためにTDOが使用されるよ
うに、権利拡大命令の実行中に解釈される。TDOビット
が1にセットされたときには、TDOはあらゆるアクセス
記述子の権利を拡大するために使用される。
権利拡大命令であり、タイプ定義オブジェクト(74)が
設けられている。タイプ定義オブジェクトはスーパーTD
Oビットである。TDOビットは、ゼロ(0)であるとき
は、TDOにより指定されるタイプと一致するタイプのオ
ブジェクト(拡張ビットが1である場合)、又は指定さ
れたTDOとTDOが一致しているオブジェクトについてアク
セス記述子の権利を拡大するためにTDOが使用されるよ
うに、権利拡大命令の実行中に解釈される。TDOビット
が1にセットされたときには、TDOはあらゆるアクセス
記述子の権利を拡大するために使用される。
本発明の上記の目的、特徴及び利点と、その他の目
的、特徴及び利点は、添付の図面に示すような本発明の
好ましい実施例の以下の詳細な説明から明白になるであ
ろう。
的、特徴及び利点は、添付の図面に示すような本発明の
好ましい実施例の以下の詳細な説明から明白になるであ
ろう。
[実施例] 本発明を具現化できるマイクロプロセッサは米国特許
出願第455625号(米国特許第5075842号)に更に詳細に
示されている。簡単に要約すると、マイクロプロセッサ
は、論理的には、命令取出し装置と、命令デコーダ/マ
イクロ命令シーケンサと、変換索引バッファと、局所バ
スシーケンサと、整数実行装置/浮動小数点装置という
5つの主要装置に分割される。
出願第455625号(米国特許第5075842号)に更に詳細に
示されている。簡単に要約すると、マイクロプロセッサ
は、論理的には、命令取出し装置と、命令デコーダ/マ
イクロ命令シーケンサと、変換索引バッファと、局所バ
スシーケンサと、整数実行装置/浮動小数点装置という
5つの主要装置に分割される。
変換索引バッファ(TLB)は、仮想メモリメカニズム
を実現するために必要なアドレス変換を実行する。アド
レス変換とメモリ保護には、記憶記述子及びページテー
ブルエントリから成る連想テーブルを使用する。TLBは
アドレスキャッシュと、アドレス加算器と、メモリ保護
検査用ハードウェアとを含む。
を実現するために必要なアドレス変換を実行する。アド
レス変換とメモリ保護には、記憶記述子及びページテー
ブルエントリから成る連想テーブルを使用する。TLBは
アドレスキャッシュと、アドレス加算器と、メモリ保護
検査用ハードウェアとを含む。
実行モード 米国特許出願第455625号(米国特許第5075842号)に
記載されているように、従来のオペレーティングシステ
ムの効率良いエミュレーションを支援するために、シス
テムはユーザーモードと、スーパーバイザモードという
2つの実行モードを有している。システムは特権命令の
概念を規定しない。全ての命令はいずれか一方のモード
で実行可能である。プログラムはそのアクセス表示(re
p)権利と、その実行モードの性質によって特権を獲得
する。現在線形アドレスペースにおけるページrep権利
の解釈は実行モードによって異なる。オペレーティング
システムが使用する記憶装置は、一般に、ユーザーアク
セスを許さないペーシrep権利を有するが、スーパーバ
イザモードでは読取り専門又は読取り/書込みであって
も良い。
記載されているように、従来のオペレーティングシステ
ムの効率良いエミュレーションを支援するために、シス
テムはユーザーモードと、スーパーバイザモードという
2つの実行モードを有している。システムは特権命令の
概念を規定しない。全ての命令はいずれか一方のモード
で実行可能である。プログラムはそのアクセス表示(re
p)権利と、その実行モードの性質によって特権を獲得
する。現在線形アドレスペースにおけるページrep権利
の解釈は実行モードによって異なる。オペレーティング
システムが使用する記憶装置は、一般に、ユーザーアク
セスを許さないペーシrep権利を有するが、スーパーバ
イザモードでは読取り専門又は読取り/書込みであって
も良い。
メモリ内の命令(14)は、オブジェクト(38)に対す
る仮想メモリアドレスであるアドレス(20)に含むと考
えられる。このアドレスはプロセッサ内のプロセッサレ
ジスタ(11)に記憶される。アドレスはオフセット(2
2)と、アクセス記述子(24)とを含む。アクセス記述
子(24)は、タグビット(33)を有する32ビットのワー
ドである。アクセス記述子はオブジェクトインデックス
(34)と、権利フィールド(35)とを含む。オブジェク
トインデックスは、メモリに記憶されているオブジェク
トに関する記憶記述子を含むオブジェクトテーブル(4
2)へのオフセットを提供する。それらのオブジェクト
の中の1つがページテーブル(44)である。記述子は符
号化フィールド(50)と、ベースアドレス(52)とを含
む。オブジェクトを記述するのは、共に物理オブジェク
トを表示する記憶ブロック及びページの物理的アドレス
に関するマッピング情報を提供するオブジェクトテーブ
ル(42)の中の1つのオブジェクトテーブルエントリで
ある。単純オブジェクトの場合、そのオブジェクトは物
理的アドレススペース内の1つのブロックにより直接に
表示される。物理ベースアドレス(52)はオブジェクト
テーブルエントリに記憶されている。オブジェクト内部
の情報は、仮想アドレスにおける単純オフセットを使用
して位置指定される。
る仮想メモリアドレスであるアドレス(20)に含むと考
えられる。このアドレスはプロセッサ内のプロセッサレ
ジスタ(11)に記憶される。アドレスはオフセット(2
2)と、アクセス記述子(24)とを含む。アクセス記述
子(24)は、タグビット(33)を有する32ビットのワー
ドである。アクセス記述子はオブジェクトインデックス
(34)と、権利フィールド(35)とを含む。オブジェク
トインデックスは、メモリに記憶されているオブジェク
トに関する記憶記述子を含むオブジェクトテーブル(4
2)へのオフセットを提供する。それらのオブジェクト
の中の1つがページテーブル(44)である。記述子は符
号化フィールド(50)と、ベースアドレス(52)とを含
む。オブジェクトを記述するのは、共に物理オブジェク
トを表示する記憶ブロック及びページの物理的アドレス
に関するマッピング情報を提供するオブジェクトテーブ
ル(42)の中の1つのオブジェクトテーブルエントリで
ある。単純オブジェクトの場合、そのオブジェクトは物
理的アドレススペース内の1つのブロックにより直接に
表示される。物理ベースアドレス(52)はオブジェクト
テーブルエントリに記憶されている。オブジェクト内部
の情報は、仮想アドレスにおける単純オフセットを使用
して位置指定される。
ページ形オブジェクトは、単レベルページテーブルを
使用して1組の物理ページにより表示される。2ページ
形オブジェクト(38)は、ページテーブル(44)及びペ
ージテーブルディレクトリ(60)を使用して1組の物理
ページにより表示される。ページ形オブジェクト記述子
と呼ばれるページ形オブジェクトに関するオブジェクト
テーブルエントリはページテーブルディレクトリ(60)
の物理ベースアドレス(61)を含む。このディレクトリ
は、ページテーブル(44)を含むページテーブルに関す
るページテーブルディレクトリエントリのアレイであ
る。ページテーブルディレクトリエントリは、オフセッ
ト(22)に位置するページテーブルディレクトリインデ
ックス(DI)を使用して索引付けすることにより見いだ
される。ページテーブルエントリは、オフセット(22)
に位置するページインデックス(PI)を使用して索引付
けすることにより見出される。2ページ形オブジェクト
エントリは、オフセット(22)に位置するページオフセ
ット(PO)を使用して索引付けすることにより見出され
る。
使用して1組の物理ページにより表示される。2ページ
形オブジェクト(38)は、ページテーブル(44)及びペ
ージテーブルディレクトリ(60)を使用して1組の物理
ページにより表示される。ページ形オブジェクト記述子
と呼ばれるページ形オブジェクトに関するオブジェクト
テーブルエントリはページテーブルディレクトリ(60)
の物理ベースアドレス(61)を含む。このディレクトリ
は、ページテーブル(44)を含むページテーブルに関す
るページテーブルディレクトリエントリのアレイであ
る。ページテーブルディレクトリエントリは、オフセッ
ト(22)に位置するページテーブルディレクトリインデ
ックス(DI)を使用して索引付けすることにより見いだ
される。ページテーブルエントリは、オフセット(22)
に位置するページインデックス(PI)を使用して索引付
けすることにより見出される。2ページ形オブジェクト
エントリは、オフセット(22)に位置するページオフセ
ット(PO)を使用して索引付けすることにより見出され
る。
オブジェクトアドレッシング 論理アドレススペースと、仮想アドレススペースと、
物理アドレススペースの3種類のアドレススペースが規
定されている。論理アドレススペースは、オブジェクト
セレクタと、オブジェクトオフセットとを含む線形アド
レスによってアクセスされる。仮想アドレススペースは
オブジェクトインデックス及びオブジェクトオフセット
によってアクセスされる。物理アドレススペースはオブ
ジェクト/ページテーブルエントリ及びブロック/ペー
ジオフセットによってアクセスされる。
物理アドレススペースの3種類のアドレススペースが規
定されている。論理アドレススペースは、オブジェクト
セレクタと、オブジェクトオフセットとを含む線形アド
レスによってアクセスされる。仮想アドレススペースは
オブジェクトインデックス及びオブジェクトオフセット
によってアクセスされる。物理アドレススペースはオブ
ジェクト/ページテーブルエントリ及びブロック/ペー
ジオフセットによってアクセスされる。
論理アドレススペースは仮想アドレススペースにマッ
ピングされ、その仮想アドレススペースは物理アドレス
スペースにマッピングされる。各スペースのアドレスは
以下で説明するような特有の構造を有する。
ピングされ、その仮想アドレススペースは物理アドレス
スペースにマッピングされる。各スペースのアドレスは
以下で説明するような特有の構造を有する。
物理アドレススペース 物理アドレススペースは読取り・書込みメモリ、読取
り専用メモリ及びメモリマップ形入出力装置に対応す
る。物理ワールドとの通信は物理アドレスによって行わ
れる。物理アドレススペースはバイトアドレス可能であ
り、アクセスのサイズに従ってアライメントされたメモ
リアドレスに対して原子単位の、それ以上は分割できな
いアクセス(読取り又は書込み)を保証しなければなら
ない。すなわち、ワードアクセスはワード境界にアライ
メントされなければならないのである。分割不可能なア
クセスにより、1組の記憶場所を読取っている又は書込
んでいるプロセッサは、別のプロセッサが同じ記憶場所
の読取り又は書込みを許される前に必ずその動作を完了
することになる。原子単位動作によれば、プロセッサが
1組の記憶場所を読取り且つ変更するとき、同じブロッ
クに対して原子単位動作を実行する別のプロセッサは動
作を遅延されるということが保証される。
り専用メモリ及びメモリマップ形入出力装置に対応す
る。物理ワールドとの通信は物理アドレスによって行わ
れる。物理アドレススペースはバイトアドレス可能であ
り、アクセスのサイズに従ってアライメントされたメモ
リアドレスに対して原子単位の、それ以上は分割できな
いアクセス(読取り又は書込み)を保証しなければなら
ない。すなわち、ワードアクセスはワード境界にアライ
メントされなければならないのである。分割不可能なア
クセスにより、1組の記憶場所を読取っている又は書込
んでいるプロセッサは、別のプロセッサが同じ記憶場所
の読取り又は書込みを許される前に必ずその動作を完了
することになる。原子単位動作によれば、プロセッサが
1組の記憶場所を読取り且つ変更するとき、同じブロッ
クに対して原子単位動作を実行する別のプロセッサは動
作を遅延されるということが保証される。
仮想アドレススペース 仮想アドレススペースは、オブジェクトト呼ばれる互
いに独立したアドレススペースの集合体である。1つの
オブウジェクトの中にあるデータは、いずれも、単純オ
フセットにより位置指定される。データの仮想アドレス
は、所望のアドレススペースを選択するオブジェクトイ
ンデックスと、アドレススペース内のそのデータを選択
するオブジェクトオフセットという2つの要素により指
定される。仮想アドレススペースのサイズは許可された
オブジェクトの数と、各オブジェクトの最大サイズとの
積である。
いに独立したアドレススペースの集合体である。1つの
オブウジェクトの中にあるデータは、いずれも、単純オ
フセットにより位置指定される。データの仮想アドレス
は、所望のアドレススペースを選択するオブジェクトイ
ンデックスと、アドレススペース内のそのデータを選択
するオブジェクトオフセットという2つの要素により指
定される。仮想アドレススペースのサイズは許可された
オブジェクトの数と、各オブジェクトの最大サイズとの
積である。
オブジェクトは保護の単位としても規定されている。
仮想アドレススペース内におけるアクセスを制御するた
めに、システムはオブジェクトインデックスの生成を保
護し且つ制限する。アクセス記述子(AD)は1つのオブ
ジェクトインデックスを含むものとして規定されてい
る。システムは、通常のデータをADポインタ表示のため
に使用するのを許可しないことによって、ADポインタを
保護する。アクセス記述子(AD)は仮想アドレススペー
スにあるオブジェクトのいずれかを指示することができ
る。従って、仮想アドレスは保護されたオブジェクトイ
ンデックス(すなわち、アクセス記述子)と、オブジェ
クトへの非保護オフセットとにより指定されることにな
る。
仮想アドレススペース内におけるアクセスを制御するた
めに、システムはオブジェクトインデックスの生成を保
護し且つ制限する。アクセス記述子(AD)は1つのオブ
ジェクトインデックスを含むものとして規定されてい
る。システムは、通常のデータをADポインタ表示のため
に使用するのを許可しないことによって、ADポインタを
保護する。アクセス記述子(AD)は仮想アドレススペー
スにあるオブジェクトのいずれかを指示することができ
る。従って、仮想アドレスは保護されたオブジェクトイ
ンデックス(すなわち、アクセス記述子)と、オブジェ
クトへの非保護オフセットとにより指定されることにな
る。
論理アドレススペース 直接に又は間接的にアクセス可能であるアクセス記述
子を概念の上で組としてアセンブルすると、論理(又は
瞬時)アドレススペースと呼ばれる第3の種類のアドレ
ススペースが形成される。論理アドレススペースが実行
環境の可視度を規定する。複数の論理アドレスが単一の
仮想アドレススペースにマッピングされる。できる限り
高い融通性を得るため、線形アドレスと、構造化アドレ
スという2種類の論理アドレスを規定している。
子を概念の上で組としてアセンブルすると、論理(又は
瞬時)アドレススペースと呼ばれる第3の種類のアドレ
ススペースが形成される。論理アドレススペースが実行
環境の可視度を規定する。複数の論理アドレスが単一の
仮想アドレススペースにマッピングされる。できる限り
高い融通性を得るため、線形アドレスと、構造化アドレ
スという2種類の論理アドレスを規定している。
第1の種類である線形アドレスは、実行環境を形成す
る4つのオブジェクト(オブジェクト・テーブルなるオ
ブジェクト,ページ・テーブルなるオブジェクト,ペー
ジ・テーブル・ディレクトリなるオブジェクト,タイプ
定義オブジェクト(TDO))により規定される。線形ア
ドレスは従来のプロセスアドレススペースの観念を表わ
すために使用される。所定の環境の中で解釈したとき、
線形アドレスは仮想アドレススペースにマッピングされ
る。線形アドレスの仮想アドレスへのマッピングは命令
解釈プロセスの基礎を成す部分である。線形アドレスで
は、オペランド規則子はオフセットのみを与える。現在
線形アドレススペースは暗示されるのである。線形アド
レスの上位2ビットは、実行環境を規定する4つのオブ
ジェクトの中の1つを暗黙に選択し、残る30ビットは選
択されたオブジェクトへのオフセットである。
る4つのオブジェクト(オブジェクト・テーブルなるオ
ブジェクト,ページ・テーブルなるオブジェクト,ペー
ジ・テーブル・ディレクトリなるオブジェクト,タイプ
定義オブジェクト(TDO))により規定される。線形ア
ドレスは従来のプロセスアドレススペースの観念を表わ
すために使用される。所定の環境の中で解釈したとき、
線形アドレスは仮想アドレススペースにマッピングされ
る。線形アドレスの仮想アドレスへのマッピングは命令
解釈プロセスの基礎を成す部分である。線形アドレスで
は、オペランド規則子はオフセットのみを与える。現在
線形アドレススペースは暗示されるのである。線形アド
レスの上位2ビットは、実行環境を規定する4つのオブ
ジェクトの中の1つを暗黙に選択し、残る30ビットは選
択されたオブジェクトへのオフセットである。
第2の種類である構造化アドレスは仮想アドレス(す
なわち、アクセス記述子+オフセット)により規定され
る。構造化アドレスは、高度オブジェクト指向保護機能
を呼び出すために使用される。構造化アドレスでは、オ
ペランド規則子は仮想アドレスを与える。システムは命
令ストりームの中でADを直接指定することを許さないの
で、命令の中のオペランド規則子のADセレクタを使用し
て、仮想アドレスのAD部を間接的に指定しなければなら
ない。ADセレクタは、プロセッサレジスタに局所的に記
憶されているADを指定する。これで、オブジェクトの瞬
時アドレス可能度を、プロセッサレジスタのADによりア
クセス可能なものだけに限定することになる。
なわち、アクセス記述子+オフセット)により規定され
る。構造化アドレスは、高度オブジェクト指向保護機能
を呼び出すために使用される。構造化アドレスでは、オ
ペランド規則子は仮想アドレスを与える。システムは命
令ストりームの中でADを直接指定することを許さないの
で、命令の中のオペランド規則子のADセレクタを使用し
て、仮想アドレスのAD部を間接的に指定しなければなら
ない。ADセレクタは、プロセッサレジスタに局所的に記
憶されているADを指定する。これで、オブジェクトの瞬
時アドレス可能度を、プロセッサレジスタのADによりア
クセス可能なものだけに限定することになる。
アクセス記述子とその権利 アクセス記述子(AD)はアドレススペース内のオブジ
ェクトに対する被保護ポインタである。システムはアク
セス記述子を偶発的な又は悪意による生成や変更から保
護する、 プログラムはオブジェクトを直接アドレスすることが
できず実行環境内のアクセス記述子を介して間接的にア
ドレスできるだけである。プログラムはオブジェクトに
対するアクセス記述子なしではそのオブジェクトを参照
できないので、プログラムの可視度を、それがアクセス
しなければならないオブジェクトのみに限定することが
可能である。
ェクトに対する被保護ポインタである。システムはアク
セス記述子を偶発的な又は悪意による生成や変更から保
護する、 プログラムはオブジェクトを直接アドレスすることが
できず実行環境内のアクセス記述子を介して間接的にア
ドレスできるだけである。プログラムはオブジェクトに
対するアクセス記述子なしではそのオブジェクトを参照
できないので、プログラムの可視度を、それがアクセス
しなければならないオブジェクトのみに限定することが
可能である。
アクセス記述子はオブジェクトインデックスと、権利
と、寿命ビットとを情報として含む。オブジェクトイン
デックスはオブジェクトを選択し、権利はADにおける読
取り権利、書込み権利及びタイプ権利を指定する。権利
はオブジェクトについて許容しうる動作を示す。権利は
アクセス記述子と関連しており、オブジェクト自体と関
連しているのではない。すなわち、異なるアクセス記述
子を選択すれば、同一のオブジェクトに対して異なる権
利を有することが可能である。寿命ビットは、ADが参照
するオブジェクトの寿命を示す。
と、寿命ビットとを情報として含む。オブジェクトイン
デックスはオブジェクトを選択し、権利はADにおける読
取り権利、書込み権利及びタイプ権利を指定する。権利
はオブジェクトについて許容しうる動作を示す。権利は
アクセス記述子と関連しており、オブジェクト自体と関
連しているのではない。すなわち、異なるアクセス記述
子を選択すれば、同一のオブジェクトに対して異なる権
利を有することが可能である。寿命ビットは、ADが参照
するオブジェクトの寿命を示す。
ADからオブジェクトへのマッピング オブジェクトは、システム幅の被保護ポインタである
アクセス記述子を使用して参照される。アクセス記述子
の中のオブジェクトインデックス(34)は、システム幅
のオブジェクトテーブル(42)の1つのオブジェクトテ
ーブルエントリ(OTE)を選択する。オブジェクトテー
ブルエントリは参照するオブジェクトの場所、サイズ、
タイプなどを指定する。
アクセス記述子を使用して参照される。アクセス記述子
の中のオブジェクトインデックス(34)は、システム幅
のオブジェクトテーブル(42)の1つのオブジェクトテ
ーブルエントリ(OTE)を選択する。オブジェクトテー
ブルエントリは参照するオブジェクトの場所、サイズ、
タイプなどを指定する。
記憶ブロックとページ 記憶ブロック及びページ オブジェクトは、物理的にいえば、記憶ブロック及び
/又は1組のページから構成されている。ブロックは物
理アドレススペース内の連続する1つの領域である。ブ
ロックを使用して1つの単純オブジェクト、ページテー
ブル又はページテーブルディレクトリを表すことができ
る。
/又は1組のページから構成されている。ブロックは物
理アドレススペース内の連続する1つの領域である。ブ
ロックを使用して1つの単純オブジェクト、ページテー
ブル又はページテーブルディレクトリを表すことができ
る。
記憶ブロックのベースアドレスはそのブロックの第1
の可視バイトを指示する。記憶ブロックのベースアドレ
スは64バイトの物理アドレス境界にアライメントされて
いなければならない。1つのブロックの長さは64バイト
から4096バイトまで様々である。ブロックが4Kバイト境
界を越えることはできない。
の可視バイトを指示する。記憶ブロックのベースアドレ
スは64バイトの物理アドレス境界にアライメントされて
いなければならない。1つのブロックの長さは64バイト
から4096バイトまで様々である。ブロックが4Kバイト境
界を越えることはできない。
1つ又は2つのレベルのページテーブルを伴なう1組
のページによって1つのオブジェクトを表示することも
可能である。第1のレベルのテーブルはページではな
く、記憶ブロックである。2ページオブジェクト(38)
を規定するページは、ページテーブル(44)により表わ
される。ページは4Kバイトの一定サイズのブロックであ
り、そのベースアドレスは4Kバイト境界にアライメント
されている。
のページによって1つのオブジェクトを表示することも
可能である。第1のレベルのテーブルはページではな
く、記憶ブロックである。2ページオブジェクト(38)
を規定するページは、ページテーブル(44)により表わ
される。ページは4Kバイトの一定サイズのブロックであ
り、そのベースアドレスは4Kバイト境界にアライメント
されている。
タグ付け オブジェクトはアクセス記述子及び/又はデータ、す
なわち、何らかの2進情報を含んでいても良い。アクセ
ス記述子とデータは同一のオブジェクトにあることがで
き、任意の順序でインタリーブすることも可能である。
システムによっては、アライメントされているメモリ内
の各4バイトワードがデータであるのか、又は有効なア
クセス記述子であるのかを指示するために、ワードを1
つのタグビットと関連させているものがある。有効なア
クセス記述子は4バイト境界にアライメントされている
と共に、そのタグビットが1にセットされていなければ
ならない。0のタグビットは、ワードがデータ又は参照
を不可能にする、すなわち、オブジェクトの内容を参照
するために使用できないようなアクセス記述子を含むこ
とを示すために使用される。
なわち、何らかの2進情報を含んでいても良い。アクセ
ス記述子とデータは同一のオブジェクトにあることがで
き、任意の順序でインタリーブすることも可能である。
システムによっては、アライメントされているメモリ内
の各4バイトワードがデータであるのか、又は有効なア
クセス記述子であるのかを指示するために、ワードを1
つのタグビットと関連させているものがある。有効なア
クセス記述子は4バイト境界にアライメントされている
と共に、そのタグビットが1にセットされていなければ
ならない。0のタグビットは、ワードがデータ又は参照
を不可能にする、すなわち、オブジェクトの内容を参照
するために使用できないようなアクセス記述子を含むこ
とを示すために使用される。
システムによっては、タグビットを利用できない。そ
のようなシステムでは、ワードをデータとして解釈する
か、又はアクセス記述子として解釈するかは動作によっ
て決まる。
のようなシステムでは、ワードをデータとして解釈する
か、又はアクセス記述子として解釈するかは動作によっ
て決まる。
ワード全部のワードアライメント読取り又は書込みの
際、動作に応じて、タグビットは保存されるか又は0に
セットされる。非ワードアライメント読取り又はワード
の一部の読取りの場合には、返される値のタグビットは
常に強制的に0とされる。データ操作(演算又は論理)
命令は、ソースオペランドのタグビットとは無関係に、
タグビットが強制的に0にされた結果を生成する。タグ
付けは米国特許出願第455625号(米国特許第5075842
号)に更に詳細に説明されている。
際、動作に応じて、タグビットは保存されるか又は0に
セットされる。非ワードアライメント読取り又はワード
の一部の読取りの場合には、返される値のタグビットは
常に強制的に0とされる。データ操作(演算又は論理)
命令は、ソースオペランドのタグビットとは無関係に、
タグビットが強制的に0にされた結果を生成する。タグ
付けは米国特許出願第455625号(米国特許第5075842
号)に更に詳細に説明されている。
タイプ付きオブジェクト いくつかのオブジェクトの内部編成は、そのアドレス
スペースの内部のデータ構造を指定し且つ解釈すること
により規定される。そのようなオブジェクトは保護シス
テム、プロセス間/プロセッサ間通信システム及び記憶
管理システムにおいて重大な役割を果たす。それらのシ
ステム規定オブジェクトを認識すると共に、その使用を
制限するために、それぞれのオブジェクトをコードによ
って識別しても良い。コードはオブジェクトタイプと呼
ばれ、オブジェクトのアドレスマッピング情報と共に維
持される。本発明によれば、ユーザーは独自のオブジェ
クトタイプを考案し、それらのタイプに一意のタイプコ
ードを割り当てることができる。
スペースの内部のデータ構造を指定し且つ解釈すること
により規定される。そのようなオブジェクトは保護シス
テム、プロセス間/プロセッサ間通信システム及び記憶
管理システムにおいて重大な役割を果たす。それらのシ
ステム規定オブジェクトを認識すると共に、その使用を
制限するために、それぞれのオブジェクトをコードによ
って識別しても良い。コードはオブジェクトタイプと呼
ばれ、オブジェクトのアドレスマッピング情報と共に維
持される。本発明によれば、ユーザーは独自のオブジェ
クトタイプを考案し、それらのタイプに一意のタイプコ
ードを割り当てることができる。
オブジェクトオフセット オブジェクトオフセットはオブジェクト内の1つのデ
ータを指定するために使用される32ビット順序数であ
る。これはオブジェクト内のデータ又はアクセス記述子
を指示することができる。オブジェクトオフセットは複
数のフィールドに分割されている。それらのフィールド
をどのように解釈するかはオブジェクトの表示によって
決まる。
ータを指定するために使用される32ビット順序数であ
る。これはオブジェクト内のデータ又はアクセス記述子
を指示することができる。オブジェクトオフセットは複
数のフィールドに分割されている。それらのフィールド
をどのように解釈するかはオブジェクトの表示によって
決まる。
オブジェクトサイズ オブジェクトのサイズはオブジェクトテーブルエント
リ(OTE)の符号化フィールド(50)に指定されてい
る。仮想アドレス(20)のオブジェクトオフセット(2
2)にオペランドサイズを加えたものを、アドレス変換
ごとに、参照したオブジェクトのサイズと比較する。こ
の動作は上下限検査と呼ばれ、別のオブジェクトに属し
ていると思われるデータが指定オブジェクトを越えて参
照されるのを阻止する。
リ(OTE)の符号化フィールド(50)に指定されてい
る。仮想アドレス(20)のオブジェクトオフセット(2
2)にオペランドサイズを加えたものを、アドレス変換
ごとに、参照したオブジェクトのサイズと比較する。こ
の動作は上下限検査と呼ばれ、別のオブジェクトに属し
ていると思われるデータが指定オブジェクトを越えて参
照されるのを阻止する。
オブジェクトの表示 オブジェクトは、共に物理オブジェクトを直接に又は
間接的に表示する記憶ブロックとページの物理アドレス
に関してマッピング情報を提供するオブジェクトテーブ
ルエントリにより表される。システムは様々に異なる最
大オブジェクトサイズに対して3種類のマッピング方式
を使用して、オブジェクト表示オーバーヘッドを最小限
に抑える。
間接的に表示する記憶ブロックとページの物理アドレス
に関してマッピング情報を提供するオブジェクトテーブ
ルエントリにより表される。システムは様々に異なる最
大オブジェクトサイズに対して3種類のマッピング方式
を使用して、オブジェクト表示オーバーヘッドを最小限
に抑える。
単純オブジェクト。単純オブジェクトは物理アドレス
スペース内の1つのブロックにより直接表示される。物
理ベースアドレスはオブジェクトテーブルエントリに直
接記憶される。そのようなエントリを単純オブジェクト
記述子と呼ぶ。
スペース内の1つのブロックにより直接表示される。物
理ベースアドレスはオブジェクトテーブルエントリに直
接記憶される。そのようなエントリを単純オブジェクト
記述子と呼ぶ。
ページ形オブジェクト。ページ形オブジェクトは単レ
ベル−ジテーブルを使用して1組の物理ページにより表
示される。ページ形オブジェクト記述子と呼ばれるペー
ジ形オブジェクトのオブジェクトテーブルエントリは、
ページに関するページテーブルエントリのアレイである
ページテーブルの物理アドレスを含む。
ベル−ジテーブルを使用して1組の物理ページにより表
示される。ページ形オブジェクト記述子と呼ばれるペー
ジ形オブジェクトのオブジェクトテーブルエントリは、
ページに関するページテーブルエントリのアレイである
ページテーブルの物理アドレスを含む。
2ページ形オブジェクト。2ページ形オブジェクトは
2レベルのページテーブルを使用して1組の物理ページ
により表示される。第1図に示す通り、2ページ形オブ
ジェクト記述子と呼ばれる2ページ形オブジェクトのオ
ブジェクトテーブルエントリは、図示したページテーブ
ル(44)を含めたページテーブルに関するページテーブ
ルエントリのアレイであるページテーブルディレクトリ
(60)の物理アドレスを含む。
2レベルのページテーブルを使用して1組の物理ページ
により表示される。第1図に示す通り、2ページ形オブ
ジェクト記述子と呼ばれる2ページ形オブジェクトのオ
ブジェクトテーブルエントリは、図示したページテーブ
ル(44)を含めたページテーブルに関するページテーブ
ルエントリのアレイであるページテーブルディレクトリ
(60)の物理アドレスを含む。
単純オブジェクトは単純オブジェクト記述子により規
定され且つ単一のブロックにより表示される。単純オブ
ジェクト記述子は物理ベースアドレスと、ブロック長さ
を含む。単純オブジェクトは4Kバイトの物理アドレス境
界を越えて広がることができない。
定され且つ単一のブロックにより表示される。単純オブ
ジェクト記述子は物理ベースアドレスと、ブロック長さ
を含む。単純オブジェクトは4Kバイトの物理アドレス境
界を越えて広がることができない。
単純オブジェクトオフセットは次のように区分されて
いる。
いる。
ディレクトリインデックスDI(ビット22から31)。こ
の10ビットフィールドは0でなければならない。そうで
ない場合には、PROTECTION誤りが起こる。
の10ビットフィールドは0でなければならない。そうで
ない場合には、PROTECTION誤りが起こる。
ページインデックスPI(ビット12から21)。この10ビ
ットフィールドは0でなければならない。そうでない場
合には、PROTECTION誤りが起こる。
ットフィールドは0でなければならない。そうでない場
合には、PROTECTION誤りが起こる。
ブロックオフセットSO(ビット0から11)。この12ビ
ットフィールドは、オペランドの第1のバイトの物理ア
ドレスを形成するためにブロックのベースアドレスに加
算されるバイト変位である。
ットフィールドは、オペランドの第1のバイトの物理ア
ドレスを形成するためにブロックのベースアドレスに加
算されるバイト変位である。
ページ形オブジェクト ページ形オブジェクトは、ページ形オブジェクト記述
子と呼ばれるオブジェクトテーブルエントリにより表わ
される。ページ形オブジェクトは1レベルのページテー
ブルによって実現される。各ページは個別的にスワップ
及び再配置が可能であるので、物理アドレススペースに
同時にページ形オブジェクトの全てのオブジェクトが表
われている必要はない。ページ形オブジェクトの1つの
項目をアクセスするためには、ページテーブルと選択さ
れたページを物理アドレススペース内に配置するだけで
良い。
子と呼ばれるオブジェクトテーブルエントリにより表わ
される。ページ形オブジェクトは1レベルのページテー
ブルによって実現される。各ページは個別的にスワップ
及び再配置が可能であるので、物理アドレススペースに
同時にページ形オブジェクトの全てのオブジェクトが表
われている必要はない。ページ形オブジェクトの1つの
項目をアクセスするためには、ページテーブルと選択さ
れたページを物理アドレススペース内に配置するだけで
良い。
ページ形オブジェクト記述子はオブジェクト長さを含
むが、オブジェクトを表示しているページのベースアド
レス(45)を含んでいない。ページ形オブジェクト記述
子のベースアドレスフィールド(45)はページテーブル
ブロックのベースアドレスを含む。ページテーブルブロ
ックの長さはオブジェクトのオブジェクト長さによって
規定される。
むが、オブジェクトを表示しているページのベースアド
レス(45)を含んでいない。ページ形オブジェクト記述
子のベースアドレスフィールド(45)はページテーブル
ブロックのベースアドレスを含む。ページテーブルブロ
ックの長さはオブジェクトのオブジェクト長さによって
規定される。
ページ形オブジェクトオフセット(22)は次のように
区分されている。
区分されている。
ディレクトリインデックスDI(ビット22から31)。こ
の10ビットフィールドは0でなければならない。そうで
ない場合には、PROTECTION誤りが起こる。
の10ビットフィールドは0でなければならない。そうで
ない場合には、PROTECTION誤りが起こる。
ページインデックス、PI(ビット12から21)。この10
ビットフィールドは、ページテーブルエントリに関して
選択されたページテーブル(44)に索引付けするために
使用される。
ビットフィールドは、ページテーブルエントリに関して
選択されたページテーブル(44)に索引付けするために
使用される。
ページオフセット、PO(ビット0から11)。この12ビ
ットフィールドは、バイト変位であり、ページ形オブジ
ェクト(38)におけるオペランドの第1のバイトを形成
するためにページのページテーブルエントリのベースア
ドレス(45)に付加される。
ットフィールドは、バイト変位であり、ページ形オブジ
ェクト(38)におけるオペランドの第1のバイトを形成
するためにページのページテーブルエントリのベースア
ドレス(45)に付加される。
2ページ形オブジェクト 第1図を参照。2ページ形オブジェクト(38)は、2
ページ形オブジェクト記述子と呼ばれるオブジェクトテ
ーブルエントリ(50、52)により表わされる。2ページ
形オブジェクトは2レベルのページテーブルによって実
現される。各ページ又はページテーブルは個別的にスワ
ップ及び再配置が可能であるので、2ページ形オブジェ
クトの全てのページ又はページテーブルが同時に物理ア
ドレススペースに現れている必要はない。2ページ形オ
ブジェクトの1つの項目をアクセスするためには、ペー
ジテーブルと、選択されたページテーブルと、選択され
たページとを物理アドレススペースに配置するだけで良
い。
ページ形オブジェクト記述子と呼ばれるオブジェクトテ
ーブルエントリ(50、52)により表わされる。2ページ
形オブジェクトは2レベルのページテーブルによって実
現される。各ページ又はページテーブルは個別的にスワ
ップ及び再配置が可能であるので、2ページ形オブジェ
クトの全てのページ又はページテーブルが同時に物理ア
ドレススペースに現れている必要はない。2ページ形オ
ブジェクトの1つの項目をアクセスするためには、ペー
ジテーブルと、選択されたページテーブルと、選択され
たページとを物理アドレススペースに配置するだけで良
い。
2ページ形オブジェクト記述子はオブジェクト長さを
含むが、ページのベースアドレスと、オブジェクトを表
示するページテーブルを共に含んでいない。2ページ形
オブジェクト記述子のベースアドレスフィールド(52)
は、ページテーブルディレクトリブロック(60)のベー
スアドレスを含む。ページテーブルディレクトリブロッ
クの長さはオブジェクトのオブジェクト長さによって規
定される。
含むが、ページのベースアドレスと、オブジェクトを表
示するページテーブルを共に含んでいない。2ページ形
オブジェクト記述子のベースアドレスフィールド(52)
は、ページテーブルディレクトリブロック(60)のベー
スアドレスを含む。ページテーブルディレクトリブロッ
クの長さはオブジェクトのオブジェクト長さによって規
定される。
2ページ形オブジェクトオフセットは次のように区分
されている。
されている。
ディレクトリインデックスDI(ビット22から31)。デ
ィレクトリインデックス(70)は、2ページ形オブジェ
クト記述子により指定されるページテーブルディレクト
リにおいて1つのページテーブルエントリを選択する。
ィレクトリインデックス(70)は、2ページ形オブジェ
クト記述子により指定されるページテーブルディレクト
リにおいて1つのページテーブルエントリを選択する。
ページインデックスPI(ビット12から21)。ページイ
ンデックス(72)は、指定されたページテーブルにおい
て1つのページテーブルエントリを選択する。
ンデックス(72)は、指定されたページテーブルにおい
て1つのページテーブルエントリを選択する。
ページオフセットPO(ビット11から0)。ページセッ
ト(74)はページへのオフセットとして使用される。ペ
ージオフセットは、オペランドの第1のバイトに関する
物理アドレスを形成するために、(ページテーブルエン
トリ内の)ベースアドレスに付加される。
ト(74)はページへのオフセットとして使用される。ペ
ージオフセットは、オペランドの第1のバイトに関する
物理アドレスを形成するために、(ページテーブルエン
トリ内の)ベースアドレスに付加される。
オブジェクト寿命 いくつかのオブジェクトの暗黙の割当と解除を支援す
ると共に、懸垂参照を阻止するために、システムはオブ
ジェクト寿命の概念を規定している。懸垂参照は、相対
的に短い寿命をもつオブジェクトを指示するアクセス記
述子が長い寿命をもつオブジェクトに記憶された場合に
のみ起こりうる。アクセス記述子、オブジェクト記述子
及びページテーブルエントリの符号化フィールドの部分
にある局所オブジェクト寿命ビットは、システムがオブ
ジェクトの寿命を確定し且つ潜在的懸垂参照アクセス記
述子が記憶されるのを阻止するための手段となる。
ると共に、懸垂参照を阻止するために、システムはオブ
ジェクト寿命の概念を規定している。懸垂参照は、相対
的に短い寿命をもつオブジェクトを指示するアクセス記
述子が長い寿命をもつオブジェクトに記憶された場合に
のみ起こりうる。アクセス記述子、オブジェクト記述子
及びページテーブルエントリの符号化フィールドの部分
にある局所オブジェクト寿命ビットは、システムがオブ
ジェクトの寿命を確定し且つ潜在的懸垂参照アクセス記
述子が記憶されるのを阻止するための手段となる。
局所ビット 局所ビットは各オブジェクトと関連し、その相対寿命
を示す。局所ビットはオブジェクトに関するオブジェク
ト記述子の符号化フィールド部、たとえば、オブジェク
トテーブル(42)の記憶記述子の符号化フィールド(5
0)に位置している。0の値は、オブジェクト寿命が規
定されていないオブジェクト寿命をもつ大域オブジェク
トを示す。1の値は、オブジェクト寿命が規定されてい
る局所オブジェクトを示す。
を示す。局所ビットはオブジェクトに関するオブジェク
ト記述子の符号化フィールド部、たとえば、オブジェク
トテーブル(42)の記憶記述子の符号化フィールド(5
0)に位置している。0の値は、オブジェクト寿命が規
定されていないオブジェクト寿命をもつ大域オブジェク
トを示す。1の値は、オブジェクト寿命が規定されてい
る局所オブジェクトを示す。
寿命検査 第7図を参照。オブジェクト寿命の検査は、ADが1つ
記憶されるたびに実行される。これには、ソースADと宛
先記憶場所の寿命を比較することが必要であるので、そ
の動作を寿命検査と呼んでいる。有効ソースADの関連す
る局所ビットが1にセットされており且つ(オブジェク
トテーブルエントリ又はページテーブルエントリの)宛
先記憶場所の寿命に関連する局所ビットが0(大域寿命
の値)にセットされている場合、PROTECTION.LIFETIME
誤りを報知する。宛先記憶場所は、他に保護誤りがなけ
れば変更されても良いが、局所寿命のADは決して宛先に
記憶されてはならない。
記憶されるたびに実行される。これには、ソースADと宛
先記憶場所の寿命を比較することが必要であるので、そ
の動作を寿命検査と呼んでいる。有効ソースADの関連す
る局所ビットが1にセットされており且つ(オブジェク
トテーブルエントリ又はページテーブルエントリの)宛
先記憶場所の寿命に関連する局所ビットが0(大域寿命
の値)にセットされている場合、PROTECTION.LIFETIME
誤りを報知する。宛先記憶場所は、他に保護誤りがなけ
れば変更されても良いが、局所寿命のADは決して宛先に
記憶されてはならない。
第7図によれば、AD(24)の符号化フィールド(35)
のAD局所ビットを、OTE寿命検査論理(150)で、宛先オ
ブジェクト寿命であるOTEアクセス記述子の符号化フイ
ールド(50)のOTE局所ビットと比較する。OTEの符号化
フィールド(50)のOTE局所ビットを、PTED寿命検査論
理(152)で、宛先オブジェクト寿命であるPTDEアクセ
ス記述子の符号化フィールド(62)のPTDE局所ビットと
比較する。PTDEの符号化フィールド(62)のPTDE局所ビ
ットを、PTE寿命検査論理(154)で、宛先オブジェクト
寿命であるPTEアクセス記述子の符号化フィールド(8
1)のPTE局所ビットと比較する。これらの検査のいずれ
かが失敗であれば、OR(156)の出力端子で保護寿命誤
り(158)が起こる。
のAD局所ビットを、OTE寿命検査論理(150)で、宛先オ
ブジェクト寿命であるOTEアクセス記述子の符号化フイ
ールド(50)のOTE局所ビットと比較する。OTEの符号化
フィールド(50)のOTE局所ビットを、PTED寿命検査論
理(152)で、宛先オブジェクト寿命であるPTDEアクセ
ス記述子の符号化フィールド(62)のPTDE局所ビットと
比較する。PTDEの符号化フィールド(62)のPTDE局所ビ
ットを、PTE寿命検査論理(154)で、宛先オブジェクト
寿命であるPTEアクセス記述子の符号化フィールド(8
1)のPTE局所ビットと比較する。これらの検査のいずれ
かが失敗であれば、OR(156)の出力端子で保護寿命誤
り(158)が起こる。
システムオブジェクトの暗黙の操作においては、明示
して指定しない限り、寿命検査は無視される。
して指定しない限り、寿命検査は無視される。
アクセス記述子がメモリに記憶されると、まず、寿命
検査が実行される。アクセス記述子がメモリに書込まれ
たときには、寿命検査は実行されない。
検査が実行される。アクセス記述子がメモリに書込まれ
たときには、寿命検査は実行されない。
マッピングテーブル オブジェクトテーブルのオブジェクト オブジェクトテーブルのオブジェクト(42)は仮想ア
ドレスマッピングの根として働く。オブジェクトテーブ
ルは16バイトオブジェクトテーブルエントリのアレイで
ある。アクセス記述子(24)のオブジェクトインデック
スフィールド(34)はオブジェクトテーブル(42)の1
つのオブジェクトテーブルエントリを選択する。オブジ
ェクトテーブルエントリについては以下に説明する。
ドレスマッピングの根として働く。オブジェクトテーブ
ルは16バイトオブジェクトテーブルエントリのアレイで
ある。アクセス記述子(24)のオブジェクトインデック
スフィールド(34)はオブジェクトテーブル(42)の1
つのオブジェクトテーブルエントリを選択する。オブジ
ェクトテーブルエントリについては以下に説明する。
オブジェクトテーブルはシステム規定システムタイプ
を有していない。オブジェクトテーブルOTに対するポイ
ンタであるADは大域寿命を有するが、オブジェクトテー
ブル(OT)のオブジェクトテーブルエントリ(OTE)又
はページテーブルエントリは局所寿命を有していなけれ
ばならない。これは、OTE及び組み込み記述子における
タイプ規定オブジェクト(TDO)ADを支援するために必
要である。
を有していない。オブジェクトテーブルOTに対するポイ
ンタであるADは大域寿命を有するが、オブジェクトテー
ブル(OT)のオブジェクトテーブルエントリ(OTE)又
はページテーブルエントリは局所寿命を有していなけれ
ばならない。これは、OTE及び組み込み記述子における
タイプ規定オブジェクト(TDO)ADを支援するために必
要である。
単一のシステム幅仮想アドレススペースを共用する全
てのプロセッサに対して、1つのシステム幅オブジェク
トテーブル(OT)が存在している。
てのプロセッサに対して、1つのシステム幅オブジェク
トテーブル(OT)が存在している。
システム規定オブジェクトインデックス 次のようなオブジェクトインデックスが規定されてい
る。オブジェクトインデックス 目的 0 空ADのために予約 1〜7 保持 8 オブジェクトテーブル 9〜15 保持 16〜31 オブジェクトタイプ0〜15 のためのディフオルトTDO AD ページテーブル又はページテーブルディレクトリ ページテーブル(44)は、ページ形オブジェクト及び
2ページ形オブジェクトについて1レベル又は2レベル
のマッピングを実行するために使用される。ページテー
ブルディレクトリ(60)は、2ページ形オブジェクトに
ついて第1のレベルのマッピングを実行するために使用
される。ページテーブル(又はページテーブルディレク
トリ)は、ページのベースアドレスを規定するページテ
ーブルエントリ(又はページテーブルディレクトリエン
トリ)と、仮想メモリ管理及びカーベージコレクション
のための他の情報を含む。
る。オブジェクトインデックス 目的 0 空ADのために予約 1〜7 保持 8 オブジェクトテーブル 9〜15 保持 16〜31 オブジェクトタイプ0〜15 のためのディフオルトTDO AD ページテーブル又はページテーブルディレクトリ ページテーブル(44)は、ページ形オブジェクト及び
2ページ形オブジェクトについて1レベル又は2レベル
のマッピングを実行するために使用される。ページテー
ブルディレクトリ(60)は、2ページ形オブジェクトに
ついて第1のレベルのマッピングを実行するために使用
される。ページテーブル(又はページテーブルディレク
トリ)は、ページのベースアドレスを規定するページテ
ーブルエントリ(又はページテーブルディレクトリエン
トリ)と、仮想メモリ管理及びカーベージコレクション
のための他の情報を含む。
ページテーブルとページテーブルディレクトリはシス
テム認識されるが、オブジェクトではなく、システムタ
イプを有していない。
テム認識されるが、オブジェクトではなく、システムタ
イプを有していない。
ページテーブル(44)は、それぞれが4バイトの長さ
をもつページテーブルエントリのアレイである。ページ
テーブルの各ページテーブルエントリは、ページ形オブ
ジェクト又は2ページ形オブジェクトにおける1つのペ
ージを表す。ページテーブルディレクトリ(60)の各ペ
ージテーブルディレクトリエントリは、2ページ形オブ
ジェクト(38)に関するページテーブル(44)を示す。
をもつページテーブルエントリのアレイである。ページ
テーブルの各ページテーブルエントリは、ページ形オブ
ジェクト又は2ページ形オブジェクトにおける1つのペ
ージを表す。ページテーブルディレクトリ(60)の各ペ
ージテーブルディレクトリエントリは、2ページ形オブ
ジェクト(38)に関するページテーブル(44)を示す。
ページ形オブジェクトのページテーブル又は2ページ
形オブジェクトのページテーブルディレクトリは可変サ
イズを有し、どの64バイト境界にもアライメントでき
る。2ページ形オブジェクトのページテーブルは4Kバイ
トのサイズでなければならず、また、4Kバイト境界にア
ライメントされていなければならない。
形オブジェクトのページテーブルディレクトリは可変サ
イズを有し、どの64バイト境界にもアライメントでき
る。2ページ形オブジェクトのページテーブルは4Kバイ
トのサイズでなければならず、また、4Kバイト境界にア
ライメントされていなければならない。
ページテーブルとページテーブルディレクトリはオブ
ジェクトではないので、仮想アドレススペースで直接ア
クセスできない。本発明の一実施例においては、物理ア
ドレスを使用してアクセスする。本発明の別の実施例で
は、ページテーブルを、それらが規定しているオブジェ
クトの一部にマッピングする。この第2の方法によれ
ば、ページテーブルディレクトリ又はページテーブルの
物理アドレスを複製する。ソフトウェアは、ページスワ
ップ中に物理アドレスの別名が更新されるように保証す
る。
ジェクトではないので、仮想アドレススペースで直接ア
クセスできない。本発明の一実施例においては、物理ア
ドレスを使用してアクセスする。本発明の別の実施例で
は、ページテーブルを、それらが規定しているオブジェ
クトの一部にマッピングする。この第2の方法によれ
ば、ページテーブルディレクトリ又はページテーブルの
物理アドレスを複製する。ソフトウェアは、ページスワ
ップ中に物理アドレスの別名が更新されるように保証す
る。
記述子のフォーマット データワード データワードのフィールドは次のように規定されてい
る。
る。
データ(ビット0から31)。このフィールドは何らか
のデータ値を含む。
のデータ値を含む。
タグ(タグビット)。このビットはデータ値に関して
は0である。
は0である。
アクセス記述子 第3図はアクセス記述子を示す。アクセス記述子のフ
ィールドは次のように規定されている。
ィールドは次のように規定されている。
読み取り権利(ビット0)。このビットは、このアク
セス記述子により参照されるオブジェクトの内容を読み
取ることが許可されることを指示する。
セス記述子により参照されるオブジェクトの内容を読み
取ることが許可されることを指示する。
書込み権利(ビット1)。このビットは、このアクセ
ス記述子により参照されるオブジェクトの内容を書込む
ことが許可されることを指示する。
ス記述子により参照されるオブジェクトの内容を書込む
ことが許可されることを指示する。
タイプ権利(ビット2から4)。この3ビットフィー
ルドをどのように解釈するかは、参照されるオブジェク
トのオブジェクトタイプによって決まる。ビットの名前 AD中のビット位置 タイプ権利1 ビット2 タイプ権利2 ビット3 タイプ権利3 ビット4 局所(ビット5)。このビットはオブジェクトの寿命
を示す。このビットは大域オブジェクトについては0で
あり、局所オブジェクトについては1である。
ルドをどのように解釈するかは、参照されるオブジェク
トのオブジェクトタイプによって決まる。ビットの名前 AD中のビット位置 タイプ権利1 ビット2 タイプ権利2 ビット3 タイプ権利3 ビット4 局所(ビット5)。このビットはオブジェクトの寿命
を示す。このビットは大域オブジェクトについては0で
あり、局所オブジェクトについては1である。
オブジェクトインデックス(ビット6から31)。この
26ビットフィールドはオブジェクトテーブルの1つのオ
ブジェクトテーブルエントリを選択する。
26ビットフィールドはオブジェクトテーブルの1つのオ
ブジェクトテーブルエントリを選択する。
タグ(タグビット)。有効アクセス記述子の場合、こ
のビットは1でなければならない。
のビットは1でなければならない。
混合ワード 混合ワードはでータワードと、アクセス記述子とが合
体したものである。すなわち、コンテクストに応じて、
混合ワードをデータワード又はアクセス記述子のいずれ
かとしてみなすことができる。
体したものである。すなわち、コンテクストに応じて、
混合ワードをデータワード又はアクセス記述子のいずれ
かとしてみなすことができる。
混合ワードの値は次のようなクラスに分割される。
(1) 有効アクセス記述子。有効アクセス記述子で
は、タグビットが1にセットされている。対応するイン
デックスに関するオブジェクトが規定されていれば、こ
こからオブジェクトを参照することができる(これを使
用してオブジェクトの内容を参照することができる)。
ADが期待されるときにタグビットが0である場合には、
CONSTRAINT.INVALID_AD誤りが起こる。
は、タグビットが1にセットされている。対応するイン
デックスに関するオブジェクトが規定されていれば、こ
こからオブジェクトを参照することができる(これを使
用してオブジェクトの内容を参照することができる)。
ADが期待されるときにタグビットが0である場合には、
CONSTRAINT.INVALID_AD誤りが起こる。
(2) データ。データワードのタグビットは0にセッ
トされている。データ値が生成されると、タグビットは
常に0にセットされる。データ値が期待されるとき、タ
グビットは無視され、0であると解釈される。データ値
が期待されるときにタグビットが1である場合には、誤
りは起こらない。
トされている。データ値が生成されると、タグビットは
常に0にセットされる。データ値が期待されるとき、タ
グビットは無視され、0であると解釈される。データ値
が期待されるときにタグビットが1である場合には、誤
りは起こらない。
仮想アドレス 第3図は、仮想アドレスのフォーマットを示す図であ
る。仮想アドレスのフィールドは次のように規定されて
いる。
る。仮想アドレスのフィールドは次のように規定されて
いる。
オブジェクトオフセット(バイト0から3)。この32
ビットフィールドは、仮想アドレス中のアクセス記述子
により参照されるオブジェクトへの順序数オフセットを
含む。
ビットフィールドは、仮想アドレス中のアクセス記述子
により参照されるオブジェクトへの順序数オフセットを
含む。
アクセス記述子(バイト4から7)。このADは、この
仮想アドレスにより参照されるオブジェクトを指定す
る。ADは、この仮想アドレスを使用する許容された動作
をさらに指定する。
仮想アドレスにより参照されるオブジェクトを指定す
る。ADは、この仮想アドレスを使用する許容された動作
をさらに指定する。
オブジェクトテーブルエントリ オブジェクトテーブル(42)は次に示すようなタイプ
のオブジェクトテーブルエントリを含むことができる。
オブジェクトテーブルエントリは全て16バイトのサイズ
である。特定のオブジェクトテーブルエントリは各オブ
ジェクトテーブルエントリのエントリタイプフィールド
(ビット96から98)により次のようにして認識される。
のオブジェクトテーブルエントリを含むことができる。
オブジェクトテーブルエントリは全て16バイトのサイズ
である。特定のオブジェクトテーブルエントリは各オブ
ジェクトテーブルエントリのエントリタイプフィールド
(ビット96から98)により次のようにして認識される。
000−無効オブジェクトテーブルエントリ 001−組込み記述子 010−無効単純オブジェクト記述子 011−単純オブジェクト記述子 100−無効ページ形オブジェクト記述子 101−ページ形オブジェクト記述子 110−無効2ページ形オブジェクト記述子 111−2ページ形オブジェクト記述子 終わりの6つの記述子をまとめて記憶記述子という。
記憶記述子のフォーマットを第4図に示す。有効な記憶
記述子は物理アドレスを含む。無効の記憶記述子−この
場合、ベースアドレスフィールドは有効であってはなら
ない−は、選択されたオブジェクトをアクセスできない
ことを示すために使用される。
記憶記述子のフォーマットを第4図に示す。有効な記憶
記述子は物理アドレスを含む。無効の記憶記述子−この
場合、ベースアドレスフィールドは有効であってはなら
ない−は、選択されたオブジェクトをアクセスできない
ことを示すために使用される。
無効単純オブジェクト記述子又は無効ページ形オブジ
ェクト記述子又は無効2ページ形オブジェクト記述子の
フィールドは次のように規定されている。
ェクト記述子又は無効2ページ形オブジェクト記述子の
フィールドは次のように規定されている。
TDO AD(ビット32から63)。このフィールド(51)
はこのオブジェクト記述子と関連するタイプ定義オブジ
ェクトADを含む。
はこのオブジェクト記述子と関連するタイプ定義オブジ
ェクトADを含む。
予約(ビット68から69)。このフィールドは0でなけ
ればならない。
ればならない。
ベースアドレス(ビット70から95)。この26ビットフ
ィールド(52)はブロック、ページテーブルディレクト
リの物理ベースアドレス(64バイト単位)を含む。これ
は2**32バイトの物理アドレススペースを構成する。
このフィールドは無効記憶記述子では解釈されない。
ィールド(52)はブロック、ページテーブルディレクト
リの物理ベースアドレス(64バイト単位)を含む。これ
は2**32バイトの物理アドレススペースを構成する。
このフィールドは無効記憶記述子では解釈されない。
エントリタイプ(ビット96から98)。この3ビットフ
ィールドはオブジェクトテーブルエントリのタイプと、
記述子の残り部分の定義を示す。
ィールドはオブジェクトテーブルエントリのタイプと、
記述子の残り部分の定義を示す。
アクセス状態(ビット99から103)。この5ビットフ
ィールドについては次の項で説明する。このフィールド
は単純オブジェクト記述子でのみ規定される。このフィ
ールドは他のエントリタイプのために保持される。
ィールドについては次の項で説明する。このフィールド
は単純オブジェクト記述子でのみ規定される。このフィ
ールドは他のエントリタイプのために保持される。
オブジェクト長さ(ビット114から119)。このフィー
ルドは、ベースアドレスフィールドにより参照される記
憶ブロックの64バイト単位の(符号化)長さを含む、 「符号化」という用語は、長さフィールドで、そのフ
ィールドが実際の長さではなく、実際の長さ−1を含む
ことを示すために使用される。
ルドは、ベースアドレスフィールドにより参照される記
憶ブロックの64バイト単位の(符号化)長さを含む、 「符号化」という用語は、長さフィールドで、そのフ
ィールドが実際の長さではなく、実際の長さ−1を含む
ことを示すために使用される。
単純オブジェクトでは、このフィールドはこの記述子
により規定される64バイト単位の(符号化)長さを含
む。
により規定される64バイト単位の(符号化)長さを含
む。
ページ形オブジェクト記述子では、このフィールドは
この記述子により規定される64Kバイト単位の(符号
化)長さ、すなわち、ページテーブル内のページテーブ
ルエントリの数(−1)/16を含む。
この記述子により規定される64Kバイト単位の(符号
化)長さ、すなわち、ページテーブル内のページテーブ
ルエントリの数(−1)/16を含む。
2ページ形オブジェクト記述子では、このフィールド
はこの記述子により規定される64Mバイト単位の(符号
化)長さ、すなわち、ページテーブル登録簿内のページ
テーブルエントリの数(−1)/16を含む。
はこの記述子により規定される64Mバイト単位の(符号
化)長さ、すなわち、ページテーブル登録簿内のページ
テーブルエントリの数(−1)/16を含む。
戻し書込み(ビット122)。このビットは、セグメン
ト、すなわちページがキャッシュ可能である場合に、オ
ブジェクトについて戻し書込みキャッシングをイネーブ
ルする。
ト、すなわちページがキャッシュ可能である場合に、オ
ブジェクトについて戻し書込みキャッシングをイネーブ
ルする。
オブジェクトタイプ(ビット124から127)。この4ビ
ットフィールドはオブジェクトのオブジェクトタイプを
符号化する。
ットフィールドはオブジェクトのオブジェクトタイプを
符号化する。
アクセス状態 アクセス状態フィールドは、ブロック及びページの管
理のための情報を含む。これは単純オブジェクト記述子
と、有効ページテーブルエントリ(PTE)とで見られ
る。このフィールドは無効オブジェクト記述子、ページ
形/2ページ形オブジェクト記述子、そしてページテーブ
ルディレクトリエントリ(PTDE)には現れない。
理のための情報を含む。これは単純オブジェクト記述子
と、有効ページテーブルエントリ(PTE)とで見られ
る。このフィールドは無効オブジェクト記述子、ページ
形/2ページ形オブジェクト記述子、そしてページテーブ
ルディレクトリエントリ(PTDE)には現れない。
第4図に示すアクセス状態フィールドの5つのビット
は次のように規定されている。
は次のように規定されている。
アクセス済み(OTEではビット99、PTEではビット
3)。このビットは、この記述子によって規定されるオ
ブジェクト又はページが既に参照(読取り又は書込み)
されていることを示す。関連する記憶装置が参照される
前に、このビットは確実に1となる。このビットはステ
ィッキービットである(すなわち、システムにより暗黙
にセットされるが、決してクリアされない)。
3)。このビットは、この記述子によって規定されるオ
ブジェクト又はページが既に参照(読取り又は書込み)
されていることを示す。関連する記憶装置が参照される
前に、このビットは確実に1となる。このビットはステ
ィッキービットである(すなわち、システムにより暗黙
にセットされるが、決してクリアされない)。
変更済み(OTEではビット100、PTEではビット4)。
このビットは、この記述子により規定されるオブジェク
ト又はページが既に重ね書きされていることを示す。こ
のビットは、関連する記憶装置が重ね書きされる前に、
確実に1になる。このビットはスティッキービットであ
る(すなわち、システムにより暗黙にセットされるが、
決してクリアされない)。
このビットは、この記述子により規定されるオブジェク
ト又はページが既に重ね書きされていることを示す。こ
のビットは、関連する記憶装置が重ね書きされる前に、
確実に1になる。このビットはスティッキービットであ
る(すなわち、システムにより暗黙にセットされるが、
決してクリアされない)。
混合済み(OTEではビット101、PTE又PTDEではビット
5)。このビットは、この記述子により規定されるオブ
ジェクト又はページにADが書込まれていることを示す。
このビットは、関連する記憶装置が0でないタグビット
によって重ね書きされる前に、確実に1になる。このビ
ットはスティッキービットである(すなわち、システム
により暗黙にセットされるが、決してクリアされな
い)。
5)。このビットは、この記述子により規定されるオブ
ジェクト又はページにADが書込まれていることを示す。
このビットは、関連する記憶装置が0でないタグビット
によって重ね書きされる前に、確実に1になる。このビ
ットはスティッキービットである(すなわち、システム
により暗黙にセットされるが、決してクリアされな
い)。
キャッシュ可能(OTEではビット102、PTEではビット
6)。このビットは、この記述子により規定されるオブ
ジェクト又はページをキャッシュできることを示す。キ
ャッシュ可能ビットは次のように符号化されている。
6)。このビットは、この記述子により規定されるオブ
ジェクト又はページをキャッシュできることを示す。キ
ャッシュ可能ビットは次のように符号化されている。
0−キャッシュせず 1−キャッシュ可能 局所(OTEではビット103、PTEではビット7)。この
ビットは、この記述子により規定されるオブジェクト又
はページの寿命を示す。大域オブジェクト又は大域ペー
ジの場合は0であり、局所オブジェクト又は局所ページ
の場合には1である。
ビットは、この記述子により規定されるオブジェクト又
はページの寿命を示す。大域オブジェクト又は大域ペー
ジの場合は0であり、局所オブジェクト又は局所ページ
の場合には1である。
メモリアクセス時に、メモリのOTE/PTEのアクセス済
みビット、変更済みビット又は混合済みビットを1にセ
ットすることが必要になる場合がある。この動作は原子
単位動作を使用して実行される。キャッシュ可能性と、
局所ビットは全く変更されない先行読取りの際にOTE/PT
Eが有効であり且つ特定のOTE/PTEでTLB無効化動作が実
行されていない限り、原稿単位読取りにより戻されたOT
E/PTEが無効であっても、それらのビットを変更するこ
とが許容される。
みビット、変更済みビット又は混合済みビットを1にセ
ットすることが必要になる場合がある。この動作は原子
単位動作を使用して実行される。キャッシュ可能性と、
局所ビットは全く変更されない先行読取りの際にOTE/PT
Eが有効であり且つ特定のOTE/PTEでTLB無効化動作が実
行されていない限り、原稿単位読取りにより戻されたOT
E/PTEが無効であっても、それらのビットを変更するこ
とが許容される。
OTE/PTEがソフトウェアにより無効化されたときは、
アクセス済みビット、変更済みビット及び混合済みビッ
トを同時に変更しても良いので、まず、有効ビットを変
更すべきである。
アクセス済みビット、変更済みビット及び混合済みビッ
トを同時に変更しても良いので、まず、有効ビットを変
更すべきである。
アクセス済みビット、変更済みビット及び混合済みビ
ットがメモリにおいてRMW動作を使用して変更されたと
きには、元のOTE/PTEの有効ビットを変更しなくとも良
い。
ットがメモリにおいてRMW動作を使用して変更されたと
きには、元のOTE/PTEの有効ビットを変更しなくとも良
い。
組込み記述子 組込みオブジェクト記述子 組込み記述子は特殊なシステム規定データ構造を保持
する。システムにより規定される唯一のそのようなデー
タ構造はセマフォーである。
する。システムにより規定される唯一のそのようなデー
タ構造はセマフォーである。
組込み記述子のフィールドは次のように規定されてい
る。
る。
記憶領域(ビット0から95)。この12バイト領域はデ
ータ構造を表示するために使用される。
ータ構造を表示するために使用される。
エントリタイプ(ビット96から98)。このフィールド
は、組込み記述子の場合、2#001#である。
は、組込み記述子の場合、2#001#である。
ディフォルトTDO使用(ビット99)。セットされてい
れば、この記述子は関連するディフォルトTDOを有す
る。クリアされていれば、TDO ADは記述子のビット32
から63にあると仮定される。(通常、ソフトウェアは組
込み記述子のこのビットをセットするものと考えられ
る)。
れば、この記述子は関連するディフォルトTDOを有す
る。クリアされていれば、TDO ADは記述子のビット32
から63にあると仮定される。(通常、ソフトウェアは組
込み記述子のこのビットをセットするものと考えられ
る)。
このタイプ(ビット124から127)。システムにより規
定される唯一の値は0100であり、これは、初めの3つの
ワードがセマフォーを保持しているであろうということ
を示す。
定される唯一の値は0100であり、これは、初めの3つの
ワードがセマフォーを保持しているであろうということ
を示す。
無効オブジェクトテーブルエントリ 無効オブジェクトテーブルエントリのフィールドは次
のように規定されている。
のように規定されている。
TDO AD(ビット32から63)。このフィールドは記憶
記述子の場合と同じように解釈されるが、それは、ディ
フォルトTDO使用フラグがクリア状態であるときに限ら
れる。
記述子の場合と同じように解釈されるが、それは、ディ
フォルトTDO使用フラグがクリア状態であるときに限ら
れる。
エントリタイプ(ビット96から98)。このフィールド
は、無効オブジェクトテーブルエントリの場合、2#00
0#である。
は、無効オブジェクトテーブルエントリの場合、2#00
0#である。
ディフォルトTDO使用(ビット99)。セットされてい
れば、この記述子は関連するディフォルトTDOを有す
る。クリアされていれば、TDO ADは記述子のビット32
から63にあると想定される。
れば、この記述子は関連するディフォルトTDOを有す
る。クリアされていれば、TDO ADは記述子のビット32
から63にあると想定される。
オブジェクトタイプ(ビット124から127)。このフィ
ールドは記憶記述子の場合と同じように解釈される。
ールドは記憶記述子の場合と同じように解釈される。
ページテーブルエントリ ページテーブル又はページテーブルディレクトリは同
様のフォーマットの4バイトページテーブルディレクト
リエントリのアレイを含む。ページテーブルディレクト
リにおけるページテーブルエントリはページテーブルを
指定し、ページテーブルにおけるページテーブルエント
リはページを指定する。
様のフォーマットの4バイトページテーブルディレクト
リエントリのアレイを含む。ページテーブルディレクト
リにおけるページテーブルエントリはページテーブルを
指定し、ページテーブルにおけるページテーブルエント
リはページを指定する。
有効ページテーブルエントリ(PTE)又は有効ページ
テーブルディレクトリエントリ(PTDE)のフィールドは
次のように規定されている。
テーブルディレクトリエントリ(PTDE)のフィールドは
次のように規定されている。
有効(ビット0)。このビットは、有効なページテー
ブルエントリ又はページテーブルディレクトリエントリ
を指示するために1である。
ブルエントリ又はページテーブルディレクトリエントリ
を指示するために1である。
ページ権利(ビット1〜2)。この2ビットフィール
ドは、(ページテーブルエントリでは)このページの内
容について、又は(ページテーブルディレクトリでは)
このページテーブルによるページに対して、異なる複数
の実行モードの許容された動作(読取り又は書込み)を
符号化する。1つのページが2組以上のページ権利によ
り制御されることもありうるので、有効権利は最小限で
も全ページ権利である。
ドは、(ページテーブルエントリでは)このページの内
容について、又は(ページテーブルディレクトリでは)
このページテーブルによるページに対して、異なる複数
の実行モードの許容された動作(読取り又は書込み)を
符号化する。1つのページが2組以上のページ権利によ
り制御されることもありうるので、有効権利は最小限で
も全ページ権利である。
アクセス状態(ビット3から7)。この5ビットフィ
ールドは記憶記述子におけるアクセス状態フィールドと
同様のものである。このフィールドはページテーブルエ
ントリの場合に規定され、ページテーブルディレクトリ
エントリの場合には保持される。
ールドは記憶記述子におけるアクセス状態フィールドと
同様のものである。このフィールドはページテーブルエ
ントリの場合に規定され、ページテーブルディレクトリ
エントリの場合には保持される。
ベースアドレス(ビット12から31)。この20ビットフ
ィールドはページの物理ベースアドレス(4096バイトの
単位ページ)を含む。
ィールドはページの物理ベースアドレス(4096バイトの
単位ページ)を含む。
無効ページテーブルディレクトリエントリのフィール
ドは次のように規定されている。
ドは次のように規定されている。
有効(ビット0)。このビットは、無効のページテー
ブルディレクトリエントリを指示するために0である。
ブルディレクトリエントリを指示するために0である。
仮想アドレス変換 メモリ要求に対し、命令は、それが読取りアクセスで
あれ、書込みアクセスであれ、アクセス記述子と、オブ
ジェクトオフセットと、要求の長さとを指定する。
あれ、書込みアクセスであれ、アクセス記述子と、オブ
ジェクトオフセットと、要求の長さとを指定する。
以下、ページ形オブジェクトをアクセスするための仮
想アドレスから物理アドレスへの変換を説明する。
想アドレスから物理アドレスへの変換を説明する。
(1) 要求の長さをオブジェクトオフセットに加算す
ることにより、メモリ要求の最終バイトを計算する。
ることにより、メモリ要求の最終バイトを計算する。
(2) 要求を2つの別個のメモリ要求として実行す
る。
る。
(3) 要求のタイプが必要とするrep権利を確定す
る。
る。
(4) 必要な権利がADの読取り権利及び書込み権利の
中に提示されていなければ、PROTECTION誤りを起こす。
中に提示されていなければ、PROTECTION誤りを起こす。
(5) アクセス記述子のオブジェクトインデックスに
より選択されたオブジェクトテーブルエントリを読取
る。エントリタイプと有効ビットはオブジェクトテーブ
ルエントリの符号化フィールドにある。エントリタイプ
が適切でなければ、DESCRIPTOR誤りを起こす。オブジェ
クトテーブルエントリが有効記憶記述子でなければ、VI
RTUAL MEMORY誤りを起こす。
より選択されたオブジェクトテーブルエントリを読取
る。エントリタイプと有効ビットはオブジェクトテーブ
ルエントリの符号化フィールドにある。エントリタイプ
が適切でなければ、DESCRIPTOR誤りを起こす。オブジェ
クトテーブルエントリが有効記憶記述子でなければ、VI
RTUAL MEMORY誤りを起こす。
(6) この説明に際しては、オブジェクトテーブルエ
ントリはページ形オブジェクトのものであると仮定す
る。メモリ要求のアドレスのオフセット部に見られるデ
ィレクトリインデックスとページインデックスがページ
テーブルに見られるページ形オブジェクト記述子におけ
るオブジェクト長さより大きい場合いには、PROTECTION
誤りを起こす。
ントリはページ形オブジェクトのものであると仮定す
る。メモリ要求のアドレスのオフセット部に見られるデ
ィレクトリインデックスとページインデックスがページ
テーブルに見られるページ形オブジェクト記述子におけ
るオブジェクト長さより大きい場合いには、PROTECTION
誤りを起こす。
(7) ページインデックス(アドレス中のオフセット
のビット12から21にある)を4倍し、それをオブジェク
ト記述子(オブジェクトテーブル中の)のベースアドレ
スに加算して、選択されたデータページテーブルエント
リ(ページテーブル中の)物理アドレスを形成する。
のビット12から21にある)を4倍し、それをオブジェク
ト記述子(オブジェクトテーブル中の)のベースアドレ
スに加算して、選択されたデータページテーブルエント
リ(ページテーブル中の)物理アドレスを形成する。
(8) ページテーブルエントリを読取り、ページテー
ブルエントリが無効であるとマークされていれば、VTRT
UAL_MEMORY誤りを起こす。
ブルエントリが無効であるとマークされていれば、VTRT
UAL_MEMORY誤りを起こす。
(9) アクセス記述子権利がページ権利を越える場合
には、RIGHTS PROTECTION誤りを起こす。
には、RIGHTS PROTECTION誤りを起こす。
(10) ページオフセット(アドレスオフセットフィー
ルドのビット0から11にある)をページテーブルのペー
ジテーブルエントリにあるベースアドレスと組み合わせ
て、メモリ要求により参照されたページ形オブジェクト
の物理アドレスを形成する。
ルドのビット0から11にある)をページテーブルのペー
ジテーブルエントリにあるベースアドレスと組み合わせ
て、メモリ要求により参照されたページ形オブジェクト
の物理アドレスを形成する。
オブジェクト参照試験 COMPARE_MIXEDとCHECK_TAG COMPARE_MIXED命令は2つのAD又はデータが互いに等
しいか否かを比較する。2つのオペランドがADである場
合、命令はそれらが同一のオブジェクトを参照するか否
かを試験する。2つのオペランドがデータである場合に
は、命令はデータ値が等しいか否かを試験する。CHECK_
TAG命令はタグビットを検査する。
しいか否かを比較する。2つのオペランドがADである場
合、命令はそれらが同一のオブジェクトを参照するか否
かを試験する。2つのオペランドがデータである場合に
は、命令はデータ値が等しいか否かを試験する。CHECK_
TAG命令はタグビットを検査する。
スーパーバイザモードにあるタグなしシステムでは、
タグビットはCOMPARE_MIXEDにおいてセットされると仮
定される。
タグビットはCOMPARE_MIXEDにおいてセットされると仮
定される。
ADがアクセス変数を表すために使用しているAda式
「アクセス_タイプ_変数=ヌル」では、オブジェクト
を参照するために依然として非ゼロデータ値を全く使用
できないので、COMPARE_MIXEDの代わりに0を伴なってC
HECK_TAGを使用すべきである。
「アクセス_タイプ_変数=ヌル」では、オブジェクト
を参照するために依然として非ゼロデータ値を全く使用
できないので、COMPARE_MIXEDの代わりに0を伴なってC
HECK_TAGを使用すべきである。
アクセス記述子の生成 保護システムは、タグビットが任意に1にセットされ
ないこと、寿命検査をバイパスしないこと及びミューテ
ータ動作を無視しないことを要求するが、被制御状況の
下では、システムソフトウェアが既存のオブジェクトに
対してアクセス記述子(AD)を生成しなければならない
場合もある。これはCREATE_ACCESS_DESCRIPTOR命令によ
って実行される。
ないこと、寿命検査をバイパスしないこと及びミューテ
ータ動作を無視しないことを要求するが、被制御状況の
下では、システムソフトウェアが既存のオブジェクトに
対してアクセス記述子(AD)を生成しなければならない
場合もある。これはCREATE_ACCESS_DESCRIPTOR命令によ
って実行される。
CREATE_ACCESS_DESCRIPTOR命令はデータワードをADに
変換する。
変換する。
オブジェクトアドレッシング命令 LOAD_PHYSICAL_ADDRESS LOAD_PHYSICAL_ADDRESS命令はオペランドの物理アド
レスを戻す。
レスを戻す。
タイプ管理とアクセス制御 タイプ付きオブジェクト 本発明によるタイプ付けメカニズムには、システムタ
イプと、拡張タイプの2種類がある。それらは互いに排
他的ではない。システムタイプはあらかじめ規定された
オブジェクトの特性であると見なすことができ、一方、
拡張タイプはタイプの一域識別子を構成し、タイプ特有
のソフトウェア規定機能を実行させる。システムタイプ
メカニズムは、特定のシステムタイプのオペランドを要
求するシステムタイプ特有の命令を実行させるものであ
る。拡張タイプメカニズムはユーザーが規定したタイプ
を支援する。これにより、ソフトウェア規定タイプ特有
動作と、拡張タイプの特定動作とが、それらの指定の機
能を実行する前に、オブジェクトのタイプを検査するこ
とが可能になる。この機能はタイプマネジャ方式のプロ
グラミングを支援する。
イプと、拡張タイプの2種類がある。それらは互いに排
他的ではない。システムタイプはあらかじめ規定された
オブジェクトの特性であると見なすことができ、一方、
拡張タイプはタイプの一域識別子を構成し、タイプ特有
のソフトウェア規定機能を実行させる。システムタイプ
メカニズムは、特定のシステムタイプのオペランドを要
求するシステムタイプ特有の命令を実行させるものであ
る。拡張タイプメカニズムはユーザーが規定したタイプ
を支援する。これにより、ソフトウェア規定タイプ特有
動作と、拡張タイプの特定動作とが、それらの指定の機
能を実行する前に、オブジェクトのタイプを検査するこ
とが可能になる。この機能はタイプマネジャ方式のプロ
グラミングを支援する。
タイプ定義オブジェクト(74)は、通常、いくつかの
タイプ特有手順を提供するタイプマネジャドメインオブ
ジェクト(71)に対する参照(75)を含む。
タイプ特有手順を提供するタイプマネジャドメインオブ
ジェクト(71)に対する参照(75)を含む。
オブジェクトタイプフィールド オブジェクトのシステムタイプは、そのオブジェクト
記述子のオブジェクトタイプフィールドにより指定され
る(米国特許出願第455625号(米国特許第5075842号)
を参照)。システムタイプの1つは、アーキテクチャ規
定フィールドを含まない総称(すなわち、単純平坦アド
レススペース)である。
記述子のオブジェクトタイプフィールドにより指定され
る(米国特許出願第455625号(米国特許第5075842号)
を参照)。システムタイプの1つは、アーキテクチャ規
定フィールドを含まない総称(すなわち、単純平坦アド
レススペース)である。
オブジェクトタイプフィールドは次のように符号化さ
れている。符号化(2進) オブジェクトタイプ 0000 総称 0001 タイプ定義オブジェクト 0010 プロセスオブジェクト 0011 ドメインオブジェクト 0100 予約 0101 ポートオブジェクト 0110〜0111 予約 1000〜1111 システムソスホウェアの ために利用可能 アーキタクチャは組込み記述子について1つのタイプ
値、すなわち0100を規定しており、これはセマフォーを
表わす。
れている。符号化(2進) オブジェクトタイプ 0000 総称 0001 タイプ定義オブジェクト 0010 プロセスオブジェクト 0011 ドメインオブジェクト 0100 予約 0101 ポートオブジェクト 0110〜0111 予約 1000〜1111 システムソスホウェアの ために利用可能 アーキタクチャは組込み記述子について1つのタイプ
値、すなわち0100を規定しており、これはセマフォーを
表わす。
タイプ定義オブジェクト(TDO) 第1図を参照。オブジェクト(38)の拡張タイプは、
オブジェクトテーブル(42)のオブジェクト記述子と関
連するタイプ定義オブジェクトのアクセス記述子(51)
により、明示して又はディフォルトを介して指定され
る。ディフォルトのタイプ定義オブジェクト(TDO)を
使用すべき場合、そのディフォルトTDOに関するオブジ
ェクトインデックスはオブジェクト又は組込み記述子の
タイプ符号化に16を加えたものである。たとえば、セマ
フォーの場合には、ディフォルトTDOはオブジェクトテ
ーブルのエントリ20である。
オブジェクトテーブル(42)のオブジェクト記述子と関
連するタイプ定義オブジェクトのアクセス記述子(51)
により、明示して又はディフォルトを介して指定され
る。ディフォルトのタイプ定義オブジェクト(TDO)を
使用すべき場合、そのディフォルトTDOに関するオブジ
ェクトインデックスはオブジェクト又は組込み記述子の
タイプ符号化に16を加えたものである。たとえば、セマ
フォーの場合には、ディフォルトTDOはオブジェクトテ
ーブルのエントリ20である。
タイプ定義オブジェクトは、タイプマネジャドメイン
(71)に対する参照アドレス(75)を含む。タイプマネ
ジャドメイン(71)は、特定のオブジェクトタイプの実
例を管理するために使用される他の情報を含む。これら
のタイプマネジャドメインは、手順(77)として又は場
合によっては独立プロセスとしてプログラムされている
ソフトウェア規定、タイプ特有動作を参照する。
(71)に対する参照アドレス(75)を含む。タイプマネ
ジャドメイン(71)は、特定のオブジェクトタイプの実
例を管理するために使用される他の情報を含む。これら
のタイプマネジャドメインは、手順(77)として又は場
合によっては独立プロセスとしてプログラムされている
ソフトウェア規定、タイプ特有動作を参照する。
TDO AD(51)のオブジェクトインデックスを拡張タ
イプの一意識別子として使用することもできる。このよ
うに、2**26(64メガ)までの拡張タイプを規定でき
る。
イプの一意識別子として使用することもできる。このよ
うに、2**26(64メガ)までの拡張タイプを規定でき
る。
システムオブジェクトの場合、オブジェクトタイプは
タイプ特有命令のセットを指示するために使用される
が、タイプ定義オブジェクトを使用して、アーキテクチ
ャ規定、タイプ特有動作に対しソフトウェア(すなわ
ち、手順の上の)拡張を実行することが可能である。
タイプ特有命令のセットを指示するために使用される
が、タイプ定義オブジェクトを使用して、アーキテクチ
ャ規定、タイプ特有動作に対しソフトウェア(すなわ
ち、手順の上の)拡張を実行することが可能である。
同じシステムオブジェクトタイプの異なる実例と様々
に異なるタイプ定義オブジェクトが関連していることは
ありうる。これにより、アーキテクチャ規定命令に対す
るソフトウェア拡張を実例ごとに規定することができ
る。
に異なるタイプ定義オブジェクトが関連していることは
ありうる。これにより、アーキテクチャ規定命令に対す
るソフトウェア拡張を実例ごとに規定することができ
る。
LOAD_TYPE_DEFINTION この命令は、ソースADにより参照されたオブジェクト
と関連するタイプ定義オブジェクトADを宛先にコピーす
る。指定されたオブジェクトがディフォルトTDOを有す
る場合、ディフォルトTDOに対するAD(タイプとrep権利
をいずれも持たず、大域寿命を指定する)は戻される。
と関連するタイプ定義オブジェクトADを宛先にコピーす
る。指定されたオブジェクトがディフォルトTDOを有す
る場合、ディフォルトTDOに対するAD(タイプとrep権利
をいずれも持たず、大域寿命を指定する)は戻される。
権利 アーキテクチャは様々な権利ビットを使用して、オブ
ジェクト又はADを操作しうる方法を制限する。権利ビッ
トには2組みあり、その一方の組はADに見られ、他方の
組はアクセス(すなわち、アドレス変換)経路中の様々
なページテーブルエントリに位置している。
ジェクト又はADを操作しうる方法を制限する。権利ビッ
トには2組みあり、その一方の組はADに見られ、他方の
組はアクセス(すなわち、アドレス変換)経路中の様々
なページテーブルエントリに位置している。
異なるADは同一のオブジェクトに対して異なるアクセ
ス権利を有することができる。1つのアクセス経路にお
ける権利は、そのアクセス経路の全てのユーザーによっ
て共用される。ソースADと同じ権利又はそれより少ない
権利をもってADを容易に複製できる。アクセス経路を同
様にして複製するのは不可能であるので、アーキテクチ
ャがアクセス経路中の権利に対して何らかの変更を加え
ると、そのアクセス経路の全てのユーザーが影響を受け
る。
ス権利を有することができる。1つのアクセス経路にお
ける権利は、そのアクセス経路の全てのユーザーによっ
て共用される。ソースADと同じ権利又はそれより少ない
権利をもってADを容易に複製できる。アクセス経路を同
様にして複製するのは不可能であるので、アーキテクチ
ャがアクセス経路中の権利に対して何らかの変更を加え
ると、そのアクセス経路の全てのユーザーが影響を受け
る。
ADは次のような権利ビットを含む。
−タイプ権利 −読取り権利 −書込み権利 アクセス経路中のページテーブルエントリは次の権利
ビットを含む。
ビットを含む。
−ページ権利 タイプ権利 ADのタイプ権利は、そのADにより参照されるオブジェ
クトに関して許容されるタイプ特有動作を規定する。AD
のタイプ権利ビットをどう解釈するかは、参照されるオ
ブジェクトのタイプによって決まる。総称オブジェクト
のタイプ権利ビットは解釈されない。システムオブジェ
クトごとのタイプ権利ビットの解釈はあらかじめ規定さ
れている。その内容については、この明細書を通して、
個々のシステムオブジェクトを解説する項で説明する。
解釈されないタイプ権利ビットはソフトウェア規定タイ
プ権利のために保持されており、個々のソフトウェアレ
ベルタイプマネジャによって解釈される。
クトに関して許容されるタイプ特有動作を規定する。AD
のタイプ権利ビットをどう解釈するかは、参照されるオ
ブジェクトのタイプによって決まる。総称オブジェクト
のタイプ権利ビットは解釈されない。システムオブジェ
クトごとのタイプ権利ビットの解釈はあらかじめ規定さ
れている。その内容については、この明細書を通して、
個々のシステムオブジェクトを解説する項で説明する。
解釈されないタイプ権利ビットはソフトウェア規定タイ
プ権利のために保持されており、個々のソフトウェアレ
ベルタイプマネジャによって解釈される。
アクセス記述子の読取り権利と書込み権利 読取り権利は参照されたオブジェクトの内容の読取り
を制御し、書込み権利は書込みを制御する。実際に許容
される動作は、ページテーブルのページ権利によっても
任意に確定される。これにより、アクセス不可能オブジ
ェクト(すなわち、カプセル封じオブジェクトに対して
はアクセスはない)と、読取り専用オブジェクトと、書
込み専用オブジェクトと、読取り・書込み可能オブジェ
クトの支援が可能になる。
を制御し、書込み権利は書込みを制御する。実際に許容
される動作は、ページテーブルのページ権利によっても
任意に確定される。これにより、アクセス不可能オブジ
ェクト(すなわち、カプセル封じオブジェクトに対して
はアクセスはない)と、読取り専用オブジェクトと、書
込み専用オブジェクトと、読取り・書込み可能オブジェ
クトの支援が可能になる。
実行権利は規定されない。すなわち、実行環境で命令
を実行するためには、読取り権利のみが要求されるので
ある。
を実行するためには、読取り権利のみが要求されるので
ある。
ページ権利 有効ページテーブルエントリにおけるページ権利は2
ページ形オブジェクト又はページ形オブジェクトのペー
ジの読取り/書込み権利を規定する。ページ権利は、ソ
フトウェア規定領域又は実行環境の領域に異なるアクセ
ス保護を受けさせるために使用される。
ページ形オブジェクト又はページ形オブジェクトのペー
ジの読取り/書込み権利を規定する。ページ権利は、ソ
フトウェア規定領域又は実行環境の領域に異なるアクセ
ス保護を受けさせるために使用される。
ページ権利の解釈は、現在プロセスの実行モードと、
プロセッサのPTEブレークモードとによって異なる。ス
ーパーバイザ実行モードと、ユーザー実行モードについ
て、ページ権利はそれぞれ次のように規定されている。 PETブレーク ユーザーモード スーパーバイザモード 1 00−読取り−書込み 読取り−書込み (書込み時ブレーク) 0 00−アクセスなし 読取り専用 x 01−アクセスなし 読取り−書込み x 10−読取り専用 読取り−書込み x 11−読取り−書込み 読取り−書込み 線形アドレススペースの命令領域を偶発的な変更から
保護するためには、AD読取り/書込み権利の代わりに、
ページ権利を使用する。
プロセッサのPTEブレークモードとによって異なる。ス
ーパーバイザ実行モードと、ユーザー実行モードについ
て、ページ権利はそれぞれ次のように規定されている。 PETブレーク ユーザーモード スーパーバイザモード 1 00−読取り−書込み 読取り−書込み (書込み時ブレーク) 0 00−アクセスなし 読取り専用 x 01−アクセスなし 読取り−書込み x 10−読取り専用 読取り−書込み x 11−読取り−書込み 読取り−書込み 線形アドレススペースの命令領域を偶発的な変更から
保護するためには、AD読取り/書込み権利の代わりに、
ページ権利を使用する。
プロセッサが物理アドレッシングモードにある(アド
レス変換はディスエーブルされている)とき、権利検査
はディスエーブルされる。
レス変換はディスエーブルされている)とき、権利検査
はディスエーブルされる。
前述のように、1つの項目に関するアクセス権利はア
クセス経路のレベルごとに権利フィールドにより規定さ
れる。各アクセス経路は次のようなものを含む。
クセス経路のレベルごとに権利フィールドにより規定さ
れる。各アクセス経路は次のようなものを含む。
ADの読取り権利と書込み権利。
2ページ形オブジェクトの場合、ページテーブルディ
レクトリエントリにおけるページ権利。
レクトリエントリにおけるページ権利。
ページ形オブジェクト又は2ページ形オブジェクトの
場合、ページテーブルエントリにおけるページ権利。
場合、ページテーブルエントリにおけるページ権利。
オブジェクトアドレスの有効権利はアクセス経路の最
小限の権利である。
小限の権利である。
INSPECT_ACCESS INSPECT_ACCESS命令は、ソースアドレスにより指定さ
れたアクセス経路の有効ページ権利を戻す。
れたアクセス経路の有効ページ権利を戻す。
タイプ定義オブジェクト タイプ定義オブジェクト(74)はアクセス権利の拡大
を制御するために使用される。タイプ定義オブジェクト
はあらかじめ規定されたシステムタイプを有する。
を制御するために使用される。タイプ定義オブジェクト
はあらかじめ規定されたシステムタイプを有する。
タイプ定義オブジェクトのAD(51)におけるタイプ権
利は次のように規定されている。
利は次のように規定されている。
タイプ権利1 解釈されず。
タイプ権利2 権利拡大。ビットが1であれば、AMPLIF
Y_RIGHTS命令でTDOを使用して良い。
Y_RIGHTS命令でTDOを使用して良い。
タイプ権利3 権利生成。ビットが1であれば、CREATE
_ACCESS_DESCRIPTOR命令でTDOを使用して良い。
_ACCESS_DESCRIPTOR命令でTDOを使用して良い。
第1図に示すタイプ定義オブジェクト(74)のフィー
ルドは次のように規定されている。
ルドは次のように規定されている。
スーパーTDO(ビット0)。権利拡大中、このビット
は次のように解釈される。
は次のように解釈される。
0−こののTDOにより指定されるタイプと一致するタイ
プのオブジェクトについて、ADを拡大するためにこのTD
Oを使用することができる。
プのオブジェクトについて、ADを拡大するためにこのTD
Oを使用することができる。
1−どのADを拡大するときにも、このTDOを使用でき
る。
る。
拡張(ビット1)。このオブジェクトをTDO ADとし
て有しているオブジェクトを管理するためにTDOを使用
する場合、このビットは1である。TDOで指定されてい
るのと同一のオブジェクトタイプを有するオブジェクト
を管理するためにTDOを使用する場合には、このビット
は0である。
て有しているオブジェクトを管理するためにTDOを使用
する場合、このビットは1である。TDOで指定されてい
るのと同一のオブジェクトタイプを有するオブジェクト
を管理するためにTDOを使用する場合には、このビット
は0である。
このビットにより、単一のTDOで、指定されたオブジ
ェクトタイプのオブジェクトをそのTDO ADとは関係な
く管理することも可能になる。
ェクトタイプのオブジェクトをそのTDO ADとは関係な
く管理することも可能になる。
オブジェクトタイプ(ビット28から31)。この4ビッ
トフィールドは、オブジェクト記述子にある対応するフ
ィールドと同じフォーマットを有するように規定されて
いる。AMPLIFY_RIRHTS命令では、拡張タイプビット及び
スーパーTDOビットが0である場合、このフィールドを
参照されたオブジェクトのオブジェクトタイプと比較す
る。
トフィールドは、オブジェクト記述子にある対応するフ
ィールドと同じフォーマットを有するように規定されて
いる。AMPLIFY_RIRHTS命令では、拡張タイプビット及び
スーパーTDOビットが0である場合、このフィールドを
参照されたオブジェクトのオブジェクトタイプと比較す
る。
権利操作 第8図を参照。ADのアクセス権利を増減するために、
2つの命令が規定されている。権利マスク(170)は、
権利拡大及び権利制限の間に命令のソース_2オペランド
で指定される。権利マスクは、局所ビットと、オブジェ
クトインデックスフィールドと、タグビットとを使用し
ないという点を除いて、アクセス記述子と同一のフォー
マットを有する。
2つの命令が規定されている。権利マスク(170)は、
権利拡大及び権利制限の間に命令のソース_2オペランド
で指定される。権利マスクは、局所ビットと、オブジェ
クトインデックスフィールドと、タグビットとを使用し
ないという点を除いて、アクセス記述子と同一のフォー
マットを有する。
AMPLIFY_RIGHTS命令(165)が復号される場合、アク
セス権利は、権利拡大論理(168)においてソースAD(1
62)のアクセス権利を権利マスク(170)のアクセス権
利と論理和演算することにより拡大される。第8図の権
利拡大論理(168)の内部の論理の流れを第9図に示
す。
セス権利は、権利拡大論理(168)においてソースAD(1
62)のアクセス権利を権利マスク(170)のアクセス権
利と論理和演算することにより拡大される。第8図の権
利拡大論理(168)の内部の論理の流れを第9図に示
す。
RESTRICT_RIGHTS命令(167)が復号される場合には、
アクセス権利は、権利制限論理(172)においてADのア
クセス権利を権利マスク(170)のアクセス権利の補数
と論理積演算することにより縮小される。第8図の権利
制限論理(172)の内部の論理の流れを第10図に示す。
アクセス権利は、権利制限論理(172)においてADのア
クセス権利を権利マスク(170)のアクセス権利の補数
と論理積演算することにより縮小される。第8図の権利
制限論理(172)の内部の論理の流れを第10図に示す。
AMPLIFY_RIGHTS命令は、権利拡大を伴なうタイプ定義
オブジェクトAD(51)を要求する。AMPLIFY_RIGHTS命令
はソースAD(162)の権利を権利マスク(170)により指
定される通りに拡大し、拡大したADを宛先(176)に記
憶する。
オブジェクトAD(51)を要求する。AMPLIFY_RIGHTS命令
はソースAD(162)の権利を権利マスク(170)により指
定される通りに拡大し、拡大したADを宛先(176)に記
憶する。
RESTRICT_RIGHTS命令は、ソースAD(174)の権利を権
利マスク(170)により指定される通りに除去し、制限
したADを宛先(176)に記憶する。
利マスク(170)により指定される通りに除去し、制限
したADを宛先(176)に記憶する。
アドレッシング環境のアクセス可能度を、プログラム
の実行に必要な、要求される最小限のアクセス権利を持
つオブジェクトに制限することができる。不要なアクセ
ス権利を除去(すなわち制限)する命令が与えられる。
アクセスの制限は、ADがパラメータとして手順に供給さ
れるか又は結果として戻される前に実行されるのが普通
である。
の実行に必要な、要求される最小限のアクセス権利を持
つオブジェクトに制限することができる。不要なアクセ
ス権利を除去(すなわち制限)する命令が与えられる。
アクセスの制限は、ADがパラメータとして手順に供給さ
れるか又は結果として戻される前に実行されるのが普通
である。
いくつか(システム又は拡張)のタイプ付きオブジェ
クトは、それに対応するタイプマネジャにより排他的に
操作される。タイプ付きオブジェクトに対するADは、そ
のタイプマネジャのドメインの外では、通常、タイプマ
ネジャの知識なしにオブジェクトをアクセスしたり、オ
ブジェクトを変更したりすることを阻止するために限定
されたアクセス権利(たとえば、アクセスなし又は読取
り専用の権利)を有する。タイプマネジャは、その制御
の下にあるタイプのオブジェクトについて、ADのアクセ
ス権利をドメイン外へ供給する前に制限(すなわち除
去)する。そのようなADがタイプマネジャに戻される
と、参照されたオブジェクトのタイプマネジャによる拡
大ができるように、アクセス権利はタイプマネジャのド
メインの中にある間に拡大(すなわち増加)される。
クトは、それに対応するタイプマネジャにより排他的に
操作される。タイプ付きオブジェクトに対するADは、そ
のタイプマネジャのドメインの外では、通常、タイプマ
ネジャの知識なしにオブジェクトをアクセスしたり、オ
ブジェクトを変更したりすることを阻止するために限定
されたアクセス権利(たとえば、アクセスなし又は読取
り専用の権利)を有する。タイプマネジャは、その制御
の下にあるタイプのオブジェクトについて、ADのアクセ
ス権利をドメイン外へ供給する前に制限(すなわち除
去)する。そのようなADがタイプマネジャに戻される
と、参照されたオブジェクトのタイプマネジャによる拡
大ができるように、アクセス権利はタイプマネジャのド
メインの中にある間に拡大(すなわち増加)される。
AMPLIFY_RIGHTS命令 以下のAMPLIFY_RIGHTS命令の説明を理解できるよう
に、第8図の権利拡大論理の内部のデータの流れを示す
第9図を参照する。
に、第8図の権利拡大論理の内部のデータの流れを示す
第9図を参照する。
演算:タイプ定義オブジェクトの制御の下で、指定さ
れたソースADの指定された権利ビットを拡大し、拡大し
たADを宛先に記憶する。
れたソースADの指定された権利ビットを拡大し、拡大し
たADを宛先に記憶する。
命令コード: 拡大 653REG source_1(val:m)source_2(val:o)src/dst
(vds:m) source_1 タイプ定義オブジェクト source_2 権利マスク src/dst ソース/宛先 アクション: TDO ADのタグビットを検査する(202)。ソースADの
タグビットが0であれば、CONSTAINT_INVALID AD誤りを
起こす(204)。
(vds:m) source_1 タイプ定義オブジェクト source_2 権利マスク src/dst ソース/宛先 アクション: TDO ADのタグビットを検査する(202)。ソースADの
タグビットが0であれば、CONSTAINT_INVALID AD誤りを
起こす(204)。
権利拡大が指定されているか否かを知るために、タイ
プ権利フィールドを検査する(206)。指定されていな
ければ、PROTECTION TYPE RIGHTS誤りを起こす(20
8)。
プ権利フィールドを検査する(206)。指定されていな
ければ、PROTECTION TYPE RIGHTS誤りを起こす(20
8)。
スーパーTDOビットを検査する(210)。TDOのスーパ
ーTDOビットが1であれば、論理ブロック(218)へ進
む。TDOのスーパーTDOビットが0であり且つ拡張ビット
が1であれば(212)、TYPE.MISMATCH誤りを起こす(21
6)。
ーTDOビットが1であれば、論理ブロック(218)へ進
む。TDOのスーパーTDOビットが0であり且つ拡張ビット
が1であれば(212)、TYPE.MISMATCH誤りを起こす(21
6)。
ソースオブジェクトのオブジェクトタイプをTDOによ
り制御されるオブジェクトタイプと比較する(214)。
タイプが異なっており且つTDOのユーパーTDOビットがゼ
ロであり(210)、さらに拡張ビットが0であれば(21
2)、TYPE.MISMATCH誤りを起こす(216)。
り制御されるオブジェクトタイプと比較する(214)。
タイプが異なっており且つTDOのユーパーTDOビットがゼ
ロであり(210)、さらに拡張ビットが0であれば(21
2)、TYPE.MISMATCH誤りを起こす(216)。
ソースオブジェクトのオブジェクトタイプとTDOによ
り制御されるオブジェクトタイプとが同じであれば(21
4)、ソースADの読取りビット、書込みビット及びタイ
プビットと、権利マスクの対応するビットとを論理和演
算して、宛先ADのタイプ権利を形成する(218)。
り制御されるオブジェクトタイプとが同じであれば(21
4)、ソースADの読取りビット、書込みビット及びタイ
プビットと、権利マスクの対応するビットとを論理和演
算して、宛先ADのタイプ権利を形成する(218)。
RESTRICT_RIGHTS命令 以下のRESTRICT_RIGHTS命令の説明を理解できるよう
に、第8図の権利制限論理の内部のデータの流れを示す
第10図を参照する。
に、第8図の権利制限論理の内部のデータの流れを示す
第10図を参照する。
演算:指定されたソースADの指定された権利ビットを
制限し、制限したADを宛先に記憶する。
制限し、制限したADを宛先に記憶する。
命令コード: 652REG source2(val:o)src/dst(vds:m) source 2 権利マスク src/dst ソース/宛先 アクション: 権利制限が指定されているか否かを知るために、タイ
プ権利フィールドを検査する(252)。指定されていな
ければ、PROTECTION TYPE RIGHTS誤りを起こす(25
4)。
プ権利フィールドを検査する(252)。指定されていな
ければ、PROTECTION TYPE RIGHTS誤りを起こす(25
4)。
ソースのタグビットが0であれば(256)、後続する
権利制限アクションを飛越し、データセグメントを宛先
に記憶する(260)。
権利制限アクションを飛越し、データセグメントを宛先
に記憶する(260)。
ソースのタグビットが1であれば(256)、権利マス
クの読取りビット、書込みビット及びタイプビットが1
であるソースADの対応する権利ビットを除去する(26
0)。制限したADを宛先に記憶する(260)。
クの読取りビット、書込みビット及びタイプビットが1
であるソースADの対応する権利ビットを除去する(26
0)。制限したADを宛先に記憶する(260)。
キャッシュ可能 キャッシュ可能ビットは、オブジェクト又はページの
「キャッシング」を阻止するために規定されている。こ
のビットは、キャッシングが許可されている場合は1で
あり、そうでなければ0である。キャッシングはメモリ
アクセスを遅延させ(たとえば、戻し書込み)、連続す
るメモリアクセスを単一のメモリトランザクションに統
合させる(たとえば、キャッシュ充填)。キャッシング
がディスエーブルされると、メモリアクセスは変更なし
で物理メモリに直接供給される。
「キャッシング」を阻止するために規定されている。こ
のビットは、キャッシングが許可されている場合は1で
あり、そうでなければ0である。キャッシングはメモリ
アクセスを遅延させ(たとえば、戻し書込み)、連続す
るメモリアクセスを単一のメモリトランザクションに統
合させる(たとえば、キャッシュ充填)。キャッシング
がディスエーブルされると、メモリアクセスは変更なし
で物理メモリに直接供給される。
メモリマップ形デバイスレジスタを有するシステムで
は、ページ又はオブジェクトのキャッシュ可能ビットは
0であるべきである。このビットは、二重キャッシング
を回避するために命令領域の外部キャッシングを阻止す
る目的で使用されても良く、あるいは、不要なキャッシ
ングトラフィックを回避するために共用オブジェクトの
キャッシングを阻止する目的で使用されても良い。
は、ページ又はオブジェクトのキャッシュ可能ビットは
0であるべきである。このビットは、二重キャッシング
を回避するために命令領域の外部キャッシングを阻止す
る目的で使用されても良く、あるいは、不要なキャッシ
ングトラフィックを回避するために共用オブジェクトの
キャッシングを阻止する目的で使用されても良い。
単純オブジェクト記述子又はページテーブルエントリ
におけるキャッシュ可能ビットは、参照されるオブジェ
クト又はページの内容をキャッシュすることができるか
否かを指示する。
におけるキャッシュ可能ビットは、参照されるオブジェ
クト又はページの内容をキャッシュすることができるか
否かを指示する。
本発明をその好ましい実施例に関連して特定して図示
し且つ説明したが、本発明の範囲から逸脱せずに上記の
形態及び詳細部の変更並びに他の形態及び少細部の変更
を実施しうることは当業者には理解できるであろう。
し且つ説明したが、本発明の範囲から逸脱せずに上記の
形態及び詳細部の変更並びに他の形態及び少細部の変更
を実施しうることは当業者には理解できるであろう。
第1図は、オブジェクトアドレッシング及び保護を支援
するプロセッサレジスタとシステムオブジェクトを示す
ブロック線図、 第2図は、第1図のオブジェクトオフセットのさらに詳
細なブロック線図、 第3図及び第4図は、合わせて、第1図のオブジェクト
テーブル内の記憶記述子を示す図、 第5図は、第1図のページテーブルディレクトリ内のペ
ージテーブルディレクトリエントリ(PTDE)を示す図、 第6図は、第1図のページテーブル内のページテーブル
エントリ(PTE)を示す図、 第7図は、寿命保護検査論理を示す図、 第8図は、権利拡大命令及び権利制限命令の実行論理を
示す図、 第9図は、第8図の権利拡大論理の内部におけるデータ
の流れを示す図、 第10図は、第8図の権利制限論理の内部におけるデータ
の流れを示す図である。 10……メモリスペース、11……プロセッサレジスタ、14
……命令、20……アドレス、22……オフセット、24……
アクセス記述子、30……アクセス記述子、32……データ
ワード、34……オブジェクトインデックス、35……符号
化フィールド、38……2ページオブジェクト、42……オ
ブジェクトテーブル、44……ページテーブル、50……符
号化フィールド、52……ベースアドレス、60……ページ
テーブルディレクトリ、61……ベースアドレス、62……
符号化フィールド、74……タイプ定義オブジェクト、79
……ベースアドレス、81……符号化フィールド
するプロセッサレジスタとシステムオブジェクトを示す
ブロック線図、 第2図は、第1図のオブジェクトオフセットのさらに詳
細なブロック線図、 第3図及び第4図は、合わせて、第1図のオブジェクト
テーブル内の記憶記述子を示す図、 第5図は、第1図のページテーブルディレクトリ内のペ
ージテーブルディレクトリエントリ(PTDE)を示す図、 第6図は、第1図のページテーブル内のページテーブル
エントリ(PTE)を示す図、 第7図は、寿命保護検査論理を示す図、 第8図は、権利拡大命令及び権利制限命令の実行論理を
示す図、 第9図は、第8図の権利拡大論理の内部におけるデータ
の流れを示す図、 第10図は、第8図の権利制限論理の内部におけるデータ
の流れを示す図である。 10……メモリスペース、11……プロセッサレジスタ、14
……命令、20……アドレス、22……オフセット、24……
アクセス記述子、30……アクセス記述子、32……データ
ワード、34……オブジェクトインデックス、35……符号
化フィールド、38……2ページオブジェクト、42……オ
ブジェクトテーブル、44……ページテーブル、50……符
号化フィールド、52……ベースアドレス、60……ページ
テーブルディレクトリ、61……ベースアドレス、62……
符号化フィールド、74……タイプ定義オブジェクト、79
……ベースアドレス、81……符号化フィールド
フロントページの続き (56)参考文献 John H.Crawford,P atrick P.Gelsinger 著,岩谷 宏 訳”80386 プログラミ ング”、初版,工学社,昭和63年7月25 日,p.397−434 Glenford J.Myers, Intel Corporatio n,”Advances in Com puter Architectur e”,Second Edition, (アメリカ合衆国),A Wiley− Interscience Publi cation,特許庁資料館昭和62年10 月6日受入,p.345−389 (58)調査した分野(Int.Cl.7,DB名) G06F 12/14 G06F 12/10 G06F 9/44 501 - 580 G06F 9/46 G06F 9/46 360
Claims (2)
- 【請求項1】プロセッサ内のプロセッサ・レジスタ(1
1)及びメモリ・スペース(10)を含むデータ処理シス
テムにあって、 前記プロセッサ・レジスタ(11)には、前記メモリ・ス
ペースでのオブジェクトの位置指定に用いるベース情報
および長さ情報を持つオブジェクト記述子を記憶する手
段が含まれており、 前記プロセッサ内にあって前記メモリ・スペース(10)
と通信する手段を備え、 前記プロセッサ内にあって命令(14)において指定され
た演算子によって演算の実行をする手段を備え、 2ページ形オブジェクト(38)を含むアドレス可能な複
数のオブジェクトが、前記前記メモリ・スペースのアド
レス・スペースに記憶されており、 前記複数のオブジェクトには、演算を規定する前記命令
(14)を含む複数の命令から構成される命令オブジェク
トが含まれ、 前記命令で参照されるアドレス(20)は、オフセット
(22)及びアクセス記述子(24)で特定される よう構成されているデータ処理システムであって: 前記複数のオブジェクトには、オブジェクト・テーブル
(42)とページ・テーブル・ディレクトリ(60)および
ページ・テーブル(44)が含まれ; 前記複数のオブジェクトのそれぞれはワードで構成さ
れ、それらのワードはアクセス記述子またはデータ・ワ
ードであり; 前記アクセス記述子のそれぞれは、 イ.前記アドレス・スペース内のオブジェクトを選択す
るオブジェクト・インデックス(34)と、 ロ.前記アクセス記述子で選択されたオブジェクトにつ
いて許容される動作を指定する権利フィールド(35)と を含み; 前記オブジェクト・テーブル(42)なるオブジェクト
は、前記プロセッサの初期設定時に前記プロセッサによ
りアクセス可能であるアドレスに記憶され、 前記オブジェクト・テーブル(42)には、前記ページ・
テーブル・ディレクトリ(60)なるオブジェクトに対す
る物理アドレスを形成するときに前記プロセッサが使用
するオブジェクト記述子が記憶されており、 前記オブジェクト記述子のそれぞれには、それにより参
照されるオブジェクトのベース・アドレスを指定する第
1の符号化フィールド(52)と、オブジェクト・エント
リ・タイプおよび長さ情報を含む第2の符号化フィール
ド(50)とが含まれ; 前記ページ・テーブル(44)には、前記2ページ形オブ
ジェクト(38)に対する物理アドレスを形成するときに
前記プロセッサが使用するページ・テーブル・エントリ
が記憶されており、 前記ページ・テーブル・エントリそれぞれには、ページ
権利フィールド(81)が含まれ; 前記ページ・テーブル・ディレクトリ(60)に記憶され
ているページ・テーブル・ディレクトリ・エントリのう
ちの1つのページ・テーブル・ディレクトリ・エントリ
は、前記ページ・テーブル(44)に対する物理アドレス
を形成するときに前記プロセッサが使用するものであ
り; 前記1つのページ・テーブル・ディレクトリ・エントリ
には、ページ権利フィールド(62)が含まれ; 前記オフセット(22)は、選択されたページ・テーブル
に対する索引付けであって1つのページ・テーブル・エ
ントリを位置指定するページ・インデックス(PI)と、
前記1つのページ・テーブル・エントリに記憶されたベ
ース・アドレス(79)と組み合わせて使用されて前記2
ページ形オブジェクト(38)において1つのデータエン
トリを位置指定するページ・オフセット(PO)とを含
み; 前記ページ・テーブル・エントリの前記ページ権利フィ
ールド(81)および前記ページ・テーブル・ディレクト
リ・エントリの前記ページ権利フィールド(62)を、メ
モリ・アクセスのタイプを示すタイプ・フィールドと比
較し、アクセスが、前記ページ・テーブル・ディレクト
リ・エントリの前記ページ権利フィールド(62)または
前記ページ・テーブル・エントリの前記ページ権利フィ
ールド(81)に一致しないという誤りを表明する手段を
備え; 命令オブジェクトの1つは権利拡大命令であり、 前記複数のオブジェクトには、タイプ定義オブジェクト
(74)が含まれ、 このタイプ定義オブジェクト(TDO)には、第1状態お
よび第2状態にセット可能なスーパーTDOビットが含ま
れ、 前記タイプ定義オブジェクトのスーパーTDOビットを第
1状態または第2状態にセットする手段が含まれ、 前記権利拡大命令の実行に際して前記スーパーTDOビッ
トを、それが第1状態にあるときは前記タイプ定義オブ
ジェクトで指定されたタイプに一致したタイプのアクセ
ス記述子について権利の拡大と解釈し、それが第2状態
にあるときは全てのアクセス記述子について権利の拡大
と解釈する手段を備える ことを特徴とするデータ処理システム。 - 【請求項2】プロセッサ内のプロセッサ・レジスタ(1
1)及びメモリ・スペース(10)を含み、前記プロセッ
サ・レジスタ(11)に、前記メモリ・スペースでのオブ
ジェクトの位置指定に用いるベース情報および長さ情報
を持つオブジェクト記述子を記憶する手段が含まれてい
る、データ処理システムにあって、 前記プロセッサは、前記メモリ・スペース(10)と通信
でき且つ命令(14)において指定された演算子によって
演算を実行でき、 2ページ形オブジェクト(38)を含むアドレス可能な複
数のオブジェクトが、前記前記メモリ・スペースのアド
レス・スペースに記憶されており、 前記複数のオブジェクトには、演算を規定する前記命令
(14)を含む複数の命令から構成される命令オブジェク
トが含まれ、 前記命令オブジェクトのうちの1つは権利拡大命令であ
り、 前記複数のオブジェクトには、タイプ定義オブジェクト
(74)含含まれ、 前記命令で参照されるアドレス(20)は、オフセット
(22)及びアクセス記述子(24)で特定され、 前記複数のオブジェクトには、オブジェクト・テーブル
・エントリ・タイプを含むオブジェクト・テーブル(4
2)と、ページ・テーブル・ディレクトリ・エントリを
有するページ・テーブル・ディレクトリ(60)、およ
び、ページ・テーブル(44)が含まれ、 前記複数のオブジェクトのそれぞれはワードで構成さ
れ、それらのワードはアクセス記述子またはデータ・ワ
ードであり; 前記アクセス記述子のそれぞれは、 イ.前記アドレス・スペース内のオブジェクトを選択す
るオブジェクト・インデックスと、 ロ.前記アクセス記述子で選択されたオブジェクトにつ
いて許容される動作を指定する権利フィールドと を含み; 前記オブジェクト・テーブル(42)は、前記プロセッサ
の初期設定時に前記プロセッサによりアクセス可能であ
るアドレスに記憶され、 前記オブジェクト・テーブル(42)には、前記ページ・
テーブル・ディレクトリ(60)に対する物理アドレスを
形成するときに前記プロセッサが使用するオブジェクト
記述子が記憶されており、 前記オブジェクト記述子のそれぞれには、それにより参
照されるオブジェクトのベース・アドレスを指定する第
1の符号化フィールド(52)と、オブジェクト・エント
リ・タイプおよび長さ情報を含む第2の符号化フィール
ド(50)とが含まれ; 前記ページ・テーブル(44)には、前記2ページ形オブ
ジェクト(38)に対する物理アドレスを形成するときに
前記プロセッサが使用するページ・テーブル・エントリ
が記憶されており、 前記ページ・テーブル・エントリそれぞれには、ページ
権利フィールド(81)が含まれ; 前記オフセット(22)は、選択されたページ・テーブル
に対する索引付けであって1つのページ・テーブル・エ
ントリを位置指定するページ・インデックス(PI)と、
前記1つのページ・テーブル・エントリに記憶されたベ
ース・アドレス(79)と組み合わせて使用されて前記2
ページ形オブジェクト(38)において1つのデータエン
トリを位置指定するページ・オフセット(PO)とを含ん
でいる という構成のデータ処理システムにおける動作の方法で
あって: A.前記ページ・テーブル・エントリの前記ページ権利フ
ィールド(81)を、前記オブジェクト・テーブル・エン
トリ・タイプと比較するステップと、 B.前記ページ・テーブル・ディレクトリ・エントリの前
記ページ権利フィールドを、前記オブジェクト・テーブ
ル・エントリ・タイプと比較するステップと、 C.前記ページ・テーブル・ディレクトリ・エントリのペ
ージ権利フィールド(62)または前記ページ・テーブル
・エントリの前記ページ権利フィールド(81)が、前記
オブジェクト・テーブル・エントリ・タイプと異なって
いるなら、誤りを表明するステップと、 D.前記タイプ定義オブジェクトのスーパーTDOビットを
第1状態または第2状態に設定するステップと、 E.前記権利拡大命令の実行に際して、前記スーパーTDO
ビットを、それが第1状態にあるときは、前記タイプ定
義オブジェクトで指定されたタイプに一致したタイプの
アクセス記述子について権利の拡大と解釈するステップ
と、 F.前記権利拡大命令の実行に際して、前記スーパーTDO
ビットを、それが第2状態にあるときは全てのアクセス
記述子について権利の拡大と解釈するステップと を備えることを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/455,635 US5075845A (en) | 1989-12-22 | 1989-12-22 | Type management and control in an object oriented memory protection mechanism |
US455,635 | 1989-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03220647A JPH03220647A (ja) | 1991-09-27 |
JP3237065B2 true JP3237065B2 (ja) | 2001-12-10 |
Family
ID=23809644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32608190A Expired - Fee Related JP3237065B2 (ja) | 1989-12-22 | 1990-11-29 | データ処理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5075845A (ja) |
JP (1) | JP3237065B2 (ja) |
DE (1) | DE4040994A1 (ja) |
GB (1) | GB2239333B (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247632A (en) * | 1989-01-23 | 1993-09-21 | Eastman Kodak Company | Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system |
JPH04505977A (ja) * | 1989-12-26 | 1992-10-15 | 富士通株式会社 | オブジェクト指向分散処理システム |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US5193184A (en) * | 1990-06-18 | 1993-03-09 | Storage Technology Corporation | Deleted data file space release system for a dynamically mapped virtual data storage subsystem |
US5390310A (en) * | 1991-09-30 | 1995-02-14 | Apple Computer, Inc. | Memory management unit having cross-domain control |
US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
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 |
US5428795A (en) * | 1992-07-31 | 1995-06-27 | International Business Machines Corporation | Method of and apparatus for providing automatic security control of distributions within a data processing system |
US5237616A (en) * | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5396630A (en) * | 1992-10-06 | 1995-03-07 | International Business Machines Corporation | Method and system for object management across process boundries in a data processing system |
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 |
US5432924A (en) * | 1993-12-15 | 1995-07-11 | Microsoft Corporation | Method and system for selectively applying an appropriate object ownership model |
US5836011A (en) * | 1995-01-20 | 1998-11-10 | International Business Machines Corporation | Implementation of teams and roles within a people oriented work environment |
US5671360A (en) * | 1995-01-20 | 1997-09-23 | International Business Machines Corporation | Project management tool implementing authority for a people oriented work environment tool |
US6178550B1 (en) * | 1995-01-31 | 2001-01-23 | Dell Usa | Mechanism for optimizing location of machine-dependent code |
US5644711A (en) * | 1995-05-26 | 1997-07-01 | Intel Corporation | Multi-privileged level directory access on the AT&T worldworxsm personal conferencing service |
US5867708A (en) * | 1995-11-20 | 1999-02-02 | International Business Machines Corporation | System, method, and article of manufacture for adding concurrency to a binary class in an object oriented system |
US5878428A (en) * | 1995-11-20 | 1999-03-02 | International Business Machines Corporation | System, method, and article of manufacture for adding transactional recovery to a binary class in an object oriented system |
US5873092A (en) * | 1995-12-14 | 1999-02-16 | International Business Machines Corporation | Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties |
US6782538B1 (en) | 1995-12-14 | 2004-08-24 | International Business Machines Corporation | Object oriented information handling system including an extensible instance manager |
US5765153A (en) * | 1996-01-03 | 1998-06-09 | International Business Machines Corporation | Information handling system, method, and article of manufacture including object system authorization and registration |
US5809506A (en) * | 1996-01-22 | 1998-09-15 | International Business Machines Corporation | Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto |
US5768566A (en) * | 1996-03-01 | 1998-06-16 | Microsoft Corporation | Method and facility for uninstalling a computer program package |
US5790843A (en) * | 1996-09-19 | 1998-08-04 | International Business Machines Corporation | System for modifying microprocessor operations independently of the execution unit upon detection of preselected opcodes |
US5864848A (en) * | 1997-01-31 | 1999-01-26 | Microsoft Corporation | Goal-driven information interpretation and extraction system |
WO2000031956A2 (en) * | 1998-11-25 | 2000-06-02 | Sony Electronics, Inc. | A method and apparatus for accessing stored digital programs |
CN100338571C (zh) * | 2003-09-27 | 2007-09-19 | 英特尔公司 | 处理器的扩展寄存器空间装置和方法 |
JP2005122474A (ja) * | 2003-10-16 | 2005-05-12 | Fujitsu Ltd | 情報漏洩防止プログラムおよびその記録媒体並びに情報漏洩防止装置 |
EP2023248B1 (en) * | 2006-04-24 | 2018-10-24 | Panasonic Intellectual Property Management Co., Ltd. | Data processing device, method, program, integrated circuit, and program generating device |
US8312509B2 (en) * | 2006-09-21 | 2012-11-13 | Intel Corporation | High integrity firmware |
US8364910B2 (en) * | 2007-03-08 | 2013-01-29 | Daniel Shawcross Wilkerson | Hard object: hardware protection for software objects |
US9026993B2 (en) * | 2008-06-27 | 2015-05-05 | Microsoft Technology Licensing, Llc | Immutable types in imperitive language |
US8495329B2 (en) * | 2009-04-13 | 2013-07-23 | Microsoft Corporation | Type system support for memory isolation permissions |
US9569282B2 (en) | 2009-04-24 | 2017-02-14 | Microsoft Technology Licensing, Llc | Concurrent mutation of isolated object graphs |
GB2482700A (en) * | 2010-08-11 | 2012-02-15 | Advanced Risc Mach Ltd | Memory access control |
US8533695B2 (en) * | 2010-09-28 | 2013-09-10 | Microsoft Corporation | Compile-time bounds checking for user-defined types |
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 |
PT3584708T (pt) | 2015-12-15 | 2022-07-27 | Lzlabs Gmbh | Gestão e prefixação de chave de proteção em sistema de emulação legado de espaço de endereço virtual |
US10635479B2 (en) * | 2016-12-19 | 2020-04-28 | Bitdefender IPR Management Ltd. | Event filtering for virtual machine security applications |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1498116A (en) * | 1974-04-18 | 1978-01-18 | Honeywell Inf Systems | Data processing systems |
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4315310A (en) * | 1979-09-28 | 1982-02-09 | Intel Corporation | Input/output data processing system |
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
IN165278B (ja) * | 1984-09-21 | 1989-09-09 | Digital Equipment Corp |
-
1989
- 1989-12-22 US US07/455,635 patent/US5075845A/en not_active Expired - Lifetime
-
1990
- 1990-09-11 GB GB9019820A patent/GB2239333B/en not_active Expired - Fee Related
- 1990-11-29 JP JP32608190A patent/JP3237065B2/ja not_active Expired - Fee Related
- 1990-12-20 DE DE4040994A patent/DE4040994A1/de not_active Ceased
Non-Patent Citations (2)
Title |
---|
Glenford J.Myers,Intel Corporation,"Advances in Computer Architecture",Second Edition,(アメリカ合衆国),A Wiley−Interscience Publication,特許庁資料館昭和62年10月6日受入,p.345−389 |
John H.Crawford,Patrick P.Gelsinger著,岩谷 宏 訳"80386 プログラミング"、初版,工学社,昭和63年7月25日,p.397−434 |
Also Published As
Publication number | Publication date |
---|---|
US5075845A (en) | 1991-12-24 |
DE4040994A1 (de) | 1991-06-27 |
GB2239333A (en) | 1991-06-26 |
GB2239333B (en) | 1993-12-01 |
GB9019820D0 (en) | 1990-10-24 |
JPH03220647A (ja) | 1991-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3237065B2 (ja) | データ処理システム | |
US5075848A (en) | Object lifetime control in an object-oriented memory protection mechanism | |
US5075842A (en) | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism | |
US6895491B2 (en) | Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching | |
JP4256167B2 (ja) | コンピュータメモリ保護方式の拡張機構 | |
JP2567594B2 (ja) | 複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット | |
US5809546A (en) | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers | |
US5418927A (en) | I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines | |
US6101590A (en) | Virtual memory system with local and global virtual address translation | |
US6430670B1 (en) | Apparatus and method for a virtual hashed page table | |
JP4608484B2 (ja) | ストレージの無効化、バッファ・エントリの消去 | |
US5003459A (en) | Cache memory system | |
US5893166A (en) | Addressing method and system for sharing a large memory address space using a system space global memory section | |
KR20080041707A (ko) | Tlb 록 표시자 | |
JPS60221851A (ja) | メモリ・アクセス・コントローラを具えるデータ処理装置 | |
US4825412A (en) | Lockout registers | |
US5724551A (en) | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers | |
US5787309A (en) | Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits | |
US6651156B1 (en) | Mechanism for extending properties of virtual memory pages by a TLB | |
US5287482A (en) | Input/output cache | |
US5895489A (en) | Memory management system including an inclusion bit for maintaining cache coherency | |
US6289431B1 (en) | Method and apparatus for accessing more than 4 Gigabytes of physical memory with 4-byte table entries | |
JP3554320B2 (ja) | オブジエクト指向メモリ保護メカニズムを採用するデータ処理システムで実行環境間の通信を実行するデータ処理システム | |
JPH035851A (ja) | バッファ記憶装置 | |
EP0389886B1 (en) | Ring reduction logic mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |