(57)【要約】      （修正有）【課題】ソフトウェアプログラムに関連付けられたアクセス権に基づいて要求を処理する。【解決手段】複数の資源を含むコンピュータシステムにおいて、複数の資源の指定された資源にアクセスする要求をソフトウェアプログラムから受信し、複数の資源の指定された資源が保護資源２０４であるかどうかを判断し、複数の資源の指定された資源が保護資源２０４である場合において、コンピュータシステムが保護動作モードで動作しているときは、要求を拒否し、コンピュータシステムが保護動作モードで動作していないときは、ソフトウェアプログラムに関連付けられたアクセス権に基づいて要求を処理する。【選択図】図２Ｂ
2006048687.tif 000002
【特許請求の範囲】
【請求項１】
複数の資源（２０４ａ〜２０４ｂ、２１２）を含むコンピュータシステム（２２０）で使用され、コンピュータによって実施される方法（５００）であって、
（Ａ）前記複数の資源（２０４ａ〜２０４ｂ、２１２）の指定された資源にアクセスする要求（６０２）を、ソフトウェアプログラム（１１２）から受信する（５０２）ステップと、
（Ｂ）前記複数の資源（２０４ａ〜２０４ｂ、２１２）の前記指定された資源が保護資源（２０４ｂ）であるかどうかを判断する（５０４）ステップと、
（Ｃ）前記複数の資源の前記指定された資源が保護資源である場合において、
（Ｃ−１）前記コンピュータシステム（２２０）が保護動作モードで動作しているときは、前記要求を拒否する（５１０）ステップと、
（Ｃ−２）前記コンピュータシステム（２２０）が前記保護動作モードで動作していないときは、前記ソフトウェアプログラム（１１２）に関連付けられたアクセス権に基づいて、前記要求（６０２）を処理する（５１２）ステップと、
を実行するステップと、
を含む方法。
【請求項２】
前記ステップ（Ｃ−２）は、
（Ｃ−２−ａ）前記ソフトウェアプログラムに関連付けられた特権レベルを特定する（５１４）ステップと、
（Ｃ−２−ｂ）前記特権レベルに関連付けられた前記アクセス権を特定する（５１６）ステップと、
（Ｃ−２−ｃ）前記アクセス権が、前記複数の資源の前記指定された資源にアクセスする権利を含む場合（５１８）にのみ、前記要求を許可する（５２２）ステップと
を含む請求項１に記載の方法。
【請求項３】
（Ｄ）前記複数の資源（２０４ａ〜２０４ｂ、２１２）の前記指定された資源が、保護資源（２０４ｂ）でない場合（５０４）に、前記ソフトウェアプログラムに関連付けられたアクセス権に基づいて前記要求（６０２）を処理する（５０６）ステップ
をさらに含む請求項１に記載の方法。
【請求項４】
複数の資源（２０４ａ〜２０４ｂ、２１２）を含むコンピュータシステム（２２０）で使用されるデバイスであって、
前記複数の資源（２０４ａ〜２０４ｂ、２１２）の指定された資源にアクセスする要求（６０２）をソフトウェアプログラム（１１２）から受信する（５０２）手段と、
前記複数の資源（２０４ａ〜２０４ｂ、２１２）の前記指定された資源が保護資源（２０４ｂ）であるかどうかを判断する（５０４）手段と、
保護資源アクセス制御手段であって、
前記コンピュータシステム（２２０）が保護動作モードで動作しており、かつ、前記複数の資源の前記指定された資源が保護資源である場合に、前記要求（６０２）を拒否する（５１０）手段と、
前記コンピュータシステム（２２０）が前記保護動作モードで動作しておらず、かつ、前記複数の資源の前記指定された資源が保護資源である場合に、前記ソフトウェアプログラム（１１２）に関連付けられたアクセス権に基づいて前記要求（６０２）を処理する（５１２）手段と、
を備える保護資源アクセス制御手段と
を備えるデバイス。
【請求項５】
複数の資源（２０４ａ〜２０４ｂ、２１２）を含むコンピュータシステム（２２０）で使用され、コンピュータによって実施される方法であって、
（Ａ）前記コンピュータシステム（２２０）のソフトウェアプログラム（１１２）によるアクセスから保護される前記複数の資源（２０４ａ〜２０４ｂ、２１２）のサブセット（２０４ｂ）を特定するステップと、
（Ｂ）前記複数の資源（２０４ａ〜２０４ｂ、２１２）の前記保護されるサブセット（２０４ｂ）と、アドレス空間の第１のサブセットとの間のマッピングを特定する（７０４）ステップと、
（Ｃ）前記コンピュータシステム（２２０）が、保護動作モードで動作する場合（７０６）に、前記アドレス空間の第２のサブセットであって、前記第１のサブセットを含まない第２のサブセットを前記ソフトウェアプログラム（１１２）に割り当てる（７１０）ステップと、
（Ｄ）前記コンピュータシステム（２２０）が、前記保護動作モードで動作しない場合（７０６）に、前記アドレス空間の第３のサブセットであって、前記第１のサブセットを含む第３のサブセットを、前記ソフトウェアプログラムに割り当てる（７０８）ステップと
を含む方法。
【請求項６】
前記コンピュータシステム（２２０）は、
複数のパーティション
を備え、
前記アドレス空間は、
前記複数のパーティションの選択されたパーティションに関連付けられた物理アドレス空間
を含み、
前記ソフトウェアプログラム（１１２）は、
前記複数のパーティションの前記選択されたパーティションで実行されるオペレーティングシステム
を含む
請求項５に記載の方法。
【請求項７】
複数の資源（２０４ａ〜２０４ｂ、２１２）を含むコンピュータシステム（２２０）で使用されるデバイスであって、
前記コンピュータシステム（２２０）のソフトウェアプログラム（１１２）によるアクセスから保護される前記複数の資源（２０４ａ〜２０４ｂ、２１２）のサブセット（２０４ｂ）を特定する手段と、
前記複数の資源（２０４ａ〜２０４ｂ、２１２）の前記保護されるサブセット（２０４ｂ）と、アドレス空間の第１のサブセットとの間のマッピングを特定する（７０４）手段と、
前記コンピュータシステムが保護動作モードで動作する場合に、前記アドレス空間の第２のサブセットであって、前記第１のサブセットを含まない第２のサブセットを、前記ソフトウェアプログラムに割り当てる手段と、
前記コンピュータシステム（２２０）が、前記保護動作モードで動作しない場合（７０６）に、前記アドレス空間の第３のサブセットであって、前記第１のサブセットを含む第３のサブセットを、前記ソフトウェアプログラム（１１２）に割り当てる（７１０）手段と
を備えるデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータアーキテクチャに関し、特に、コンピュータシステムの資源へのアクセスを制御する技法に関する。
【０００２】
［関連出願の相互参照］
本出願は、２００４年８月３日に同時に出願された同一出願人の「Resource Protection in a Computer System with Direct Hardware Resource Access」と題する米国特許出願第１０／９１０，６３０号に関連する。
【背景技術】
【０００３】
コンピュータは、メモリ（例えば、ＲＯＭおよびＲＡＭ）、プロセッサレジスタ、および入出力デバイスを含めて、さまざまな資源を含む。
初期のコンピュータアーキテクチャでは、コンピュータで実行されるあらゆるプログラムが、制限なく、あらゆる資源にアクセスすることができた。
例えば、オペレーティングシステムであろうと、デバイスドライバであろうと、アプリケーションプログラムであろうと、あらゆるプログラムが、あらゆるメモリロケーションの値の読み出しおよび書き込みを行うことができた。
このようなコンピュータアーキテクチャは、設計および実施が比較的簡単であるという利点を有していたが、設計が不完全なプログラムまたは悪意のあるプログラムが、不適切な方法で資源を変更することによってコンピュータを誤動作させることができるという不都合を有していた。
例えば、アプリケーションプログラムは、オペレーティングシステムが依拠するデータを不注意で、または、悪意を持って変更することができ、それによって、オペレーティングシステムを誤動作させたり、クラッシュさせたりすることができた。
別の例として、第１のアプリケーションプログラムが、第２のアプリケーションプログラムが使用するデータを上書きすることができ、それによって、第２のアプリケーションプログラムを誤動作させたり、クラッシュさせたりすることができた。
【０００４】
この問題に対処するために使用されてきた一技法は、コンピュータで実行される各ソフトウェアプログラムに、特定の１組の資源アクセス権（「特権」とも呼ばれる）を提供することである。
特定のアプリケーションプログラムは、例えば、メインメモリの特定のサブセットおよび特定の１組のＩ／Ｏデバイスにアクセスする権利を有することができる。
別のアプリケーションプログラムは、メインメモリの異なるサブセットおよび異なる１組のＩ／Ｏデバイスにアクセスする権利を有することができる。
オペレーティングシステムは、通常、すべての資源にアクセスする権利を有する。
【０００５】
ハードウェアおよび／またはソフトウェアで実施することができる資源アクセス制御メカニズムは、これらのアクセス権を実施するために提供される。
特定のプログラムが、特定のオペレーションが特定の資源で実行されることを要求すると、アクセス制御メカニズムは、そのプログラムが、要求したオペレーションを指定した資源で実行する権利を有するかどうかを判断する。
そのプログラムがこのような権利を有する場合、アクセス制御メカニズムは、要求されたオペレーションが進行することを可能にする。
そうでない場合、アクセス制御メカニズムは、その要求を拒否し、通常、フォールトを生成する。
【０００６】
特定のコンピュータシステムでは、多数の資源、および、各資源に関連付けることができる多種多様なアクセス権（資源から読み出す権利、資源へ書き込む権利、資源でソフトウェアを実行する権利等）が存在し得る。
ほとんどのシステムは、個々に構成可能な１組のアクセス権を各プログラムに割り当てることを可能にするのではなく、１組の「特権レベル」を定義し、これら特権レベルのそれぞれが、特定の１組のアクセス権に関連付けられる。
次に、各プログラムには、予め定義された特権レベルの１つが割り当てられ、それによって、そのプログラムには、割り当てられた特権レベルに関連付けられた１組のアクセス権が許可される。
【０００７】
２つの特権レベルを有するコンピュータシステムの簡単な例を考える。
この２つの特権レベルとは、
（１）最高特権レベル（most-privileged level）（時に「カーネル特権レベル」と呼ばれる）、および、
（２）下位特権レベル（less-privileged level）（時に「アプリケーションプログラム特権レベル」と呼ばれる）
である。
カーネル特権レベルで実行されるプログラムは、すべての資源ですべてのオペレーションを実行する権利を有することができる一方、アプリケーションプログラム特権レベルで実行されるプログラムは、通常、プロセッサの命令セットの一定のサブセット内の命令のみを実行する権利、および、コンピュータのメモリのサブセットのみにアクセスする権利を有する。
このようなシステムでは、通常、オペレーティングシステムにカーネル特権レベルが割り当てられる一方、通常、アプリケーションプログラムにアプリケーションプログラム特権レベルが割り当てられる。
特権レベルを使用することによって、個々のアクセス権の割り当ておよび特定をプログラムごとに行う必要なく、特定のプログラムに許可されたアクセス権の割り当ておよび特定を、そのプログラムの特権レベルを参照することにより行うことが可能になる。
特権レベルの使用については、同一出願人の「Method and System for Privilege-Level-Access to Memory Within a Computer」と題する米国特許出願であって、２００３年５月１日に公開された公開番号第ＵＳ２００３／００８４２５６Ａ１号にさらに詳細に説明されている。
この米国特許出願は、参照により本明細書に援用される。
【０００８】
コンピュータシステムには、任意の個数の特権レベルが存在することができる。
通常、特権レベルには、０から開始して順次番号が付けられる。
例えば、０から３の番号が付けられた４つの特権レベルが存在するシステムを考える。
特権レベル０は、通常、最高特権レベルである。
オペレーティングシステムは、通常、特権レベル０を有する。
中間の特権レベル（特権レベル１や２等）は、デバイスドライバ、および、コンピュータの資源のサブセットへの比較的高いアクセス等級を必要とする他のソフトウェアプログラムに許可することができる。
最低特権レベル（例えば、特権レベル３）は、通常、アプリケーションプログラムに割り当てられる。
【特許文献１】米国特許公開第ＵＳ２００３／００８４２５６Ａ１号
【非特許文献１】Intel (R) Itanium (R) Architecture Software Developer's Manual，第２．１版（２００２年１０月）第２巻第１１章
【非特許文献２】Itanium (R) Processor Family System Abstraction Layer Specification（２００２年１１月）
【非特許文献３】Intel (R) Itanium (R) Processor Family System Abstraction Layer Specification Update（２００３年１月）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特権レベルの使用等を通じて資源アクセス制御権を実施するコンピュータシステムは、それによって、プログラムが、システムを誤動作させるおそれのある方法で資源にアクセスことを防止する。
しかしながら、コンピュータアーキテクチャが進歩し続けるにつれて、上述した技法は、コンピュータシステムのすべての資源について、必要な種類および等級の資源アクセス制御を十分に提供しないことがある。
したがって、コンピュータシステムの資源へのアクセスを制御する改良された技法が必要とされている。
【課題を解決するための手段】
【００１０】
複数の資源を含むコンピュータシステムにおいて、複数の資源の指定された資源にアクセスする要求をソフトウェアプログラムから受信し、複数の資源の指定された資源が保護資源であるかどうかを判断し、複数の資源の指定された資源が保護資源である場合において、コンピュータシステムが保護動作モードで動作しているときは、要求を拒否し、コンピュータシステムが保護動作モードで動作していないときは、ソフトウェアプログラムに関連付けられたアクセス権に基づいて要求を処理する技法が開示される。
【００１１】
本発明のさまざまな態様および実施の形態の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになろう。
【発明を実施するための最良の形態】
【００１２】
コンピュータシステムの保護資源へのアクセスを制御する技法が開示される。
コンピュータシステムは複数の資源を含むことができる。
これら複数の資源には、保護資源および非保護資源の双方が含まれる。
コンピュータシステムは、最高特権レベルや下位特権レベル等の複数の特権レベルを認識することができる。
さらに、コンピュータシステムは、保護モードで動作することもできるし、非保護モードで動作することもできる。
保護モードでは、すべてのソフトウェアプログラム（最高特権を与えられた特権レベルを有するソフトウェアプログラムを含む）が、保護資源へのアクセスを拒否される。
非保護モードでは、適切な特権レベルを有するソフトウェアプログラムが、保護資源にアクセスすることができる。
一実施の形態では、特定のプログラムへ割り当てられたアドレス空間の範囲外のアドレスへ保護資源をマッピングすることによって、その特定のプログラムの保護資源へのアクセスを拒否することができる。
【００１３】
図１を参照して、従来技術のコンピュータシステム１００のブロック図を示す。
このコンピュータシステム１００は、ハードウェアレイヤ１０２、オペレーティングシステムレイヤ１０４、およびアプリケーションプログラムレイヤ１０６を含む。
コンピュータシステム１００のオペレーティングシステムおよびアプリケーションプログラムは、ハードウェアレイヤ１０２のハードウェアで実行される。
したがって、図１に示す「レイヤ」１０４および１０６は、ハードウェアレイヤ１０２の上に物理的に層化されたコンポーネントの物理的なレイヤを表すものではない。
そうでなく、コンピュータシステム１００は、コンピュータシステム１００のハードウェアおよびソフトウェア間の相互作用の説明を助けるものとしてのレイヤ１０２、１０４、および１０６から成るものとして示されている。
特に、コンピュータシステムをこのようなレイヤの観点で概念化して示し、高位レイヤの要素が低位レイヤの要素に依存することを強調し、かつ、レイヤ間の制御およびデータの流れを示すことは一般に行われることである。
【００１４】
ハードウェアレイヤ１０２は、コンピュータシステム１００の物理コンポーネントを備える。
このような物理コンポーネントには、例えば、プロセッサ１０８、メモリ記憶コンポーネント１１０ａ〜１１０ｃ、内部バスおよび信号ライン１１６〜１１９、バスコントローラ１２０ａ〜１２０ｂ、およびさまざまな周辺インターフェースカード１２４〜１２９が含まれ得る。
プロセッサ１０８は、メモリコンポーネント１１０ａ〜１００ｃから取得された命令ストリームを実行する命令実行デバイスである。
プロセッサ１０８は、レジスタ１３０と呼ばれる内部メモリ記憶コンポーネントを含む。
レジスタ１３０には、メモリコンポーネント１１０ａ〜１１０ｃよりもはるかに高速にアクセスすることができる。
プロセッサ１０８は、内部バス１１６および１１７ならびにバスコントローラ１２０ａを介して、メモリコンポーネント１１０ａ〜１１０ｃからのデータおよび命令の読み出し、ならびに、メモリコンポーネント１１０ａ〜１１０ｃへのデータおよび命令の書き込みを行う。
はるかに大きなデータ記憶容量は、周辺データ記憶デバイスに存在する。
この周辺データ記憶デバイスは、内部バス１１６、１１８、および１１９、バスコントローラ１２０ａ〜１２０ｂ、ならびに周辺デバイス相互接続カード１２４〜１２９の１つまたは２つ以上を介してプロセッサ１０８によりアクセスされるディスクドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ、およびこのような他のコンポーネント等である。
例えば、記憶された大規模プログラムの命令は、ディスクドライブに存在し、そのプログラムの実行中に必要に応じて取り出して、メモリコンポーネント１１０ａ〜１１０ｃに記憶することができる。
高性能なコンピュータほど、それに対応してより複雑な内部バス相互接続および追加コンポーネントを有する複数のプロセッサを含むことができる。
【００１５】
オペレーティングシステムレイヤ１０４は、オペレーティングシステムと呼ばれるソフトウェアプログラム１１２を含んだ論理レイヤである。
オペレーティングシステムは、ハードウェアレイヤ１０２のハードウェアコンポーネントを制御することができる。
現代のオペレーティングシステムは、比較的大きく、かつ、複雑であり、通常、同時に実行される多数のサブプログラムから成る。
一方、オペレーティングシステム１１２は、そのコアにおいて、アプリケーションプログラムにより利用されて、メモリおよび周辺デバイスからの読み出しやメモリおよび周辺デバイスへの書き込み等の機能をハードウェアレイヤ１０２のハードウェアコンポーネントに実行させることができるプログラムコードを含む。
【００１６】
アプリケーションプログラミングレイヤ１０６は、１つまたは２つ以上のアプリケーションプログラムを含む。
図示および説明を簡略化するために、図１には、２つのアプリケーションプログラム１３４ａ〜１３４ｂを示す。
オペレーティングシステム１１２は、仮想メモリ領域１３６ａ〜１３６ｂをそれぞれアプリケーションプログラム１３４ａ〜１３４ｂに割り当てる。
この仮想メモリ領域１３６ａ〜１３６ｂは、物理メモリの追加領域ではなく、むしろ、メモリコンポーネント１１０ａ〜１１０ｃのメモリロケーションへマッピングされた論理領域であることに留意されたい。
アプリケーションプログラム１３４ａ〜１３４ｂによる、対応する仮想メモリ領域１３６ａ〜１３６ｂにアクセスする要求は、オペレーティングシステム１１２を通過する。
オペレーティングシステム１１２は、要求された読み出し／書き込みオペレーションを、メモリコンポーネント１１０ａ〜１１０ｃの適切なロケーション（単数または複数）に対して実行する。
これに加えて、オペレーティングシステム１１２は、アプリケーションプログラム１３４ａ〜１３４ｂによる、それらアプリケーションプログラムの各仮想メモリ領域１３６ａ〜１３６ｂの範囲外のメモリアドレスにアクセスするどの要求も拒否し、それによって、一定の資源アクセス制御を提供する。
【００１７】
アプリケーションプログラム１３４ａ〜１３４ｂを、その対応する仮想メモリ領域１３６ａ〜１３６ｂのメモリへのアクセスに限定することができる一方法は、上述した特権ベースのアクセス制御技法を使用することによるものである。
例えば、最高特権を与えられた特権レベルは、オペレーティングシステム１１２に割り当てることができ、下位特権を与えられた特権レベルは、アプリケーションプログラム１３４ａ〜１３４ｂの双方に割り当てることができる。
オペレーティングシステム１１２は、オペレーティングシステム１１２の最高特権ステータスのために、メモリコンポーネント１１０ａ〜１１０ｃのどのメモリロケーションにもアクセスすることができる。
これとは対照的に、アプリケーションプログラム１３４ａ〜１３４ｂには、アプリケーションプログラム１３４ａ〜１３４ｂの下位特権ステータスのために、メモリ記憶コンポーネント１１０ａ〜１１０ｃに直接アクセスするプロセッサ命令を実行する能力を持たせないようにすることができる。
したがって、アプリケーションプログラム１３４ａ〜１３４ｂは、オペレーティングシステム１１２を通じて間接的にのみメモリコンポーネント１１０ａ〜１１０ｃにアクセスすることができる。
オペレーティングシステム１１２は、アプリケーションプログラム１３４ａ〜１３４ｂによる、それらの各仮想メモリ領域１３６ａ〜１３６ｂの範囲外のメモリロケーションにアクセスする要求の処理を拒絶することができる。
通常、オペレーティングシステムは、仮想メモリ部分のアクセス権をハードウェアにおいて指示し、それによって、ハードウェアが特権資源へのアクセスを許可または拒絶することが可能になる。
【００１８】
アプリケーションレイヤ１０６は、オペレーティングシステム１１２によって提供されたさまざまなサービス１３８ａ〜１３８ｃを含むことができる。
これらさまざまなサービス１３８ａ〜１３８ｃを通じて、アプリケーションプログラム１３４ａ〜１３４ｂは、オペレーティングシステム１１２と通信することができる。
このようなサービス１３８ａ〜１３８ｃは、例えば、外部デバイスへのデータの書き込みや外部デバイスからのデータの取り出し、システム情報（内部クロックやシステム構成情報等）へのアクセス等のオペレーションの実行をアプリケーションプログラム１３４ａ〜１３４ｂに可能にすることができる。
【００１９】
上記説明では、複数のプログラムが、図１に示すシステム１００等のシングルプロセッサのコンピュータシステムで同時に実行されるものとして説明されているが、一時に１つのプロセスのみがプロセッサ１０８で実行される。
同時のプログラムの実行は、第１のプログラム１３４ａからの命令および第２のプログラム１３４ｂからの命令の実行をプロセッサ１０８に交互に行わせることによって模擬的に行うことができる。
オペレーティングシステム１０４は、通常、第１のプログラム１３４ａから命令のサブセットを取り出して、それら命令をプロセッサ１０８で実行し、第２のプログラム１３４ｂから命令のサブセットを取り出して、それら命令をプロセッサ１０８で実行し、以下同様に繰り返すことによって、このような「マルチスレッディング」を管理する。
このようなマルチスレッディングを効率的な方法で管理するオペレーティングシステムを実施するさまざまな技法は、当業者に既知である。
【００２０】
このようなシステムでは、各プログラムに関連付けられた特権レベルが、そのプログラムからの命令がプロセッサ１０８で実行されている間に実施されることが重要である。
いくつかのシステムでは、このような実施は、レジスタファイル１３０にプロセッサステータスレジスタを含めることによって行われる。
このプロセッサステータスレジスタは、現在実行されているプログラムの特権レベルを指定する１つまたは２つ以上のビットを含む。
本明細書では、このようなビットを「カレント特権レベル」（ＣＰＬ（current privilege level））ビットと呼ぶことにする。
例えば、２つの特権レベルを認識するシステムでは、単一のＣＰＬビットを使用することができ、このＣＰＬビットでは、０の値が最高特権レベルを表し、１の値が下位特権レベルを表す。
【００２１】
このようなシステムでは、ハードウェアレイヤ１０２が、ＣＰＬビットへのアクセスを制御する。
下位特権コードが上位特権オペレーションを実行するには、下位特権コード（アプリケーションプログラム１３４ａ〜１３４ｂのコード等）は、ハードウェアレイヤ１０２を通じてオペレーティングシステムレイヤ１０４へフォールトまたはトラップをトリガしなければならない。
これに応答して、ハードウェアレイヤ１０２は、上位特権を与えられた特権レベルを示すようにＣＰＬビットの値を設定し、制御を上位特権コードへ移して、下位特権コードの代わりに或るオペレーションを実行する。
最高特権を与えられた特権レベルを有するオペレーティングシステム１１２等のソフトウェアプログラムは、どの特権レベル（最高特権レベルを含む）を必要とするオペレーションも、下位特権コードに代わって実行できることが、この説明から理解されるべきである。
次に、上位特権コードは、割り込み復帰（return-from-interruption）命令を実行することができる。
この命令は、制御を下位特権コードに戻す前に、ＣＰＬビットの下位特権値を元に戻す。
【００２２】
例えば、オペレーティングシステム１１２によるアプリケーションプログラム１３４ａ〜１３４ｂの一方の命令の実行を考える。
アプリケーションプログラム１３４ａ〜１３４ｂの一方からの命令の実行前に、オペレーティングシステム１１２は、（ハードウェアトラップ／フォールトを使用して）ＣＰＬビットの値を、下位特権を与えられた（アプリケーションプログラム）特権レベルを表す１に設定することができる。
次に、オペレーティングシステム１１２は、アプリケーションプログラム命令の実行を開始することができる。
このアプリケーションプログラム命令は、アプリケーションプログラム特権レベルに関連付けられた資源アクセス制限を伴って実行される。
システム管理オペレーション（制御レジスタの内容および特定動作向けデータ構造体（operating-specific data structure）の内容を操作するオペレーション等）を実行する前に、オペレーティングシステム１１２は、ハードウェアフォールトまたはトラップを使用して、ＣＰＬビットの値を、最高特権を与えられた（カーネル）特権レベルを表す０に設定することができる。
次に、オペレーティングシステム１１２は、所望のシステム管理機能を実行することができる。
この実行後、ハードウェアレイヤ１０２は、現在の特権レベルを、アプリケーションプログラムの特権レベルに戻すことができる。
このように、オペレーティングシステム１１２は、全システム資源への全面的なアクセスを有するオペレーションを実行できる一方、アプリケーションプログラム１３４ａ〜１３４ｂは、システム資源への限られたアクセスを提供される。
【００２３】
図１に示すコンピュータシステムは、３つのレイヤ１０２、１０４、および１０６を含むが、現代のコンピュータアーキテクチャの中には、さらにレイヤを含むものがある。
例えば、図２Ａを参照して、ハードウェアレイヤ１０２、オペレーティングシステムレイヤ１０４、アプリケーションレイヤ１０６、およびハードウェアインターフェースレイヤ２０２を含むコンピュータシステム２００を示す。
ハードウェアインターフェースレイヤ２０２は、ハードウェアレイヤ１０２とオペレーティングシステムレイヤ１０４との間に挿入されている。
ハードウェアインターフェースレイヤ２０２は、その名前が示唆するように、オペレーティングシステムレイヤ１０４とハードウェアレイヤ１０２との間のインターフェースとして動作する。
ハードウェアインターフェースレイヤ２０２は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせを含むことができる。
【００２４】
ハードウェアインターフェースレイヤ２０２の１つの目的は、プロセッサ１０８およびハードウェアレイヤ１０２の他のコンポーネントが実施される特定の方法に関係なく、オペレーティングシステムレイヤ１０４がこのようなコンポーネントと通信できる単一の抽象インターフェースを提供することとすることである。
その結果、ハードウェアインターフェースレイヤ２０２は、オペレーティングシステムレイヤ１０４もアプリケーションレイヤ１０６も変更することなく、さまざまな方法でプロセッサ１０８および他のハードウェアコンポーネントを実施することを可能にする。
その結果、ハードウェアレイヤ１０２のコンポーネントの設計者は、より大きな柔軟性を有し、オペレーティングシステム１１２およびアプリケーションプログラム１３４ａ〜１３４ｂの設計者は、オペレーティングシステム１１２およびアプリケーションプログラム１３４ａ〜１３４ｂを設計する際に、ハードウェアレイヤ１０２の実施の詳細を考慮する必要がない。
その結果、オペレーティングシステム１１２、アプリケーションプログラム１３４ａ〜１３４ｂ、およびハードウェアレイヤ１０２のハードウェアコンポーネントを開発するのに必要な時間およびコストを削減することができる。
【００２５】
例えば、Ｉｎｔｅｌ（登録商標）のＩｔａｎｉｕｍ（登録商標）アーキテクチャは、プロセッサ抽象レイヤ（ＰＡＬ）およびシステム抽象レイヤ（ＳＡＬ）を定義する。
本発明の一実施の形態では、ハードウェアインターフェースレイヤ２０２はＰＡＬおよびＳＡＬを含む。
ＰＡＬは、「Intel (R) Itanium (R) Architecture Software Developer's Manual」の第２．１版（２００２年１０月）の第２巻第１１章に定義されている。
この文献は、参照により本明細書に援用される。
ＳＡＬは、「Itanium (R) Processor Family System Abstraction Layer Specification」（２００２年１１月）およびその対応する「Intel (R) Itanium (R) Processor Family System Abstraction Layer Specification Update」（２００３年１月）に定義されている。
これら文献の双方とも、参照により本明細書に援用される。
【００２６】
一般に、ＰＡＬは、プロセッサ１０８の複数の実施態様に対して単一のソフトウェアインターフェースを維持するために、ソフトウェアプログラム（オペレーティングシステム１１２やアプリケーションプログラム１３４ａ〜１３４ｂ等）とプロセッサ１０８との間の抽象インターフェース（ファームウェアで実施される）を提供する。
ＰＡＬは、オペレーティングシステム１１２がプロセッサ１０８の一貫したビューを維持できるように、異なるプロセッサの実施態様において異なる方法で実施される可能性のあるそれらプロセッサ機能をカプセル化する。
これらの機能には、プロセッサの初期化、構成、およびエラーハンドリング等の非動作時の（non-performance）重要な機能が含まれる。
ＰＡＬは２つの主要なコンポーネントから成る。
第１のコンポーネントは、１組の割り込みエントリポイントである。
これら１組の割り込みエントリポイントは、リセット、初期化、およびマシンチェック等のハードウェアイベントによって直接呼び出される。
これらの割り込みエントリポイントは、プロセッサ初期化やエラー復旧等の機能を実行する。
第２のＰＡＬコンポーネントは１組のプロシージャである。
これら１組のプロシージャは、上位レベルのファームウェア（後述するＳＡＬ等）およびソフトウェアによって呼び出すことができ、それによって、
（１）プロセッサ１０８の識別、構成、および能力に関する情報を取得することができ、
（２）キャッシュの初期化等の実施態様に依存した機能を実行することができ、
（３）電力管理やプロセッサの特徴の有効／無効等の機能を通じてハードウェアレイヤ１０２と相互作用することをソフトウェア（例えば、オペレーティングシステム１１２およびアプリケーションプログラム１３４ａ〜１３４ｂ）に可能にすることができる。
【００２７】
ＳＡＬは、当該ＳＡＬがコンピュータシステム２２０のプラットフォームにファームウェアインターフェースを提供する点を除いて、ＰＡＬが実行する機能と同様の機能を実行する。
用語「プラットフォーム」は、プロセッサ１０８、バス１１６〜１１９、およびメモリ１１０ａ〜１１０ｃを含むハードウェアレイヤ１０２のコンポーネントを指す。
ＳＡＬは、プロセッサ１０８と直接相互作用しないが、オペレーティングシステム１１２と同様に、ＰＡＬを通じてプロセッサ１０８と相互作用する。
【００２８】
ハードウェアインターフェースレイヤ２０２が実行できる別の機能は、パーティショニング可能コンピュータシステムにおける複数の「パーティション」の確立および保守である。
用語「パーティショニング可能コンピュータシステム」は、複数のパーティションに論理的に細分可能なコンピュータシステムを指す。
この複数のパーティションのそれぞれには、コンピュータの資源の一部が割り当てられる。
例えば、各パーティションには、特定のプロセッサおよびメインメモリの一部を割り当てることができる。
さらに、各パーティションは、各パーティションのオペレーティングシステムおよびソフトウェアアプリケーションを実行することができ、それ以外に、独立した物理的なコンピュータと同様に動作することができる。
したがって、単一のパーティショニング可能コンピュータシステムは、複数の別個の物理的なコンピュータと同じ機能を提供する。
【００２９】
ハードウェアインターフェースレイヤ２０２は、パーティションに資源を割り当てることができ、ソフトウェアプログラムがソフトウェアプログラムのパーティション内の資源のみにアクセスできることを保証する。
理想的には、パーティショニングされないコンピュータシステムで実行されるように設計された従来のオペレーティングシステムおよびアプリケーションプログラムも、パーティショニング可能コンピュータシステムのパーティションにおいて変更なしで実行することができる。
ハードウェアインターフェースレイヤ２０２は、特定のパーティションのオペレーティングシステムが発行したすべての資源アクセス要求をインターセプトし、その要求がアドレス指定する資源（例えば、メモリロケーション）を特定し、割り当てられた資源を使用してその要求を満たし、そして、オペレーティングシステムへその結果を返すことができる。
【００３０】
このようなパーティション管理、より一般的には資源管理を実行するために、システム２００は、パーティション構成情報２０８ａ〜２０８ｂを含むことができる。
このような情報２０８ａ〜２０８ｂは、例えば、各パーティションに割り当てられた資源（例えば、プロセッサ、メモリ、Ｉ／Ｏポート）を指定するテーブルを含むことができる。
ハードウェアインターフェースレイヤ２０２は、オペレーティングシステムレイヤ１０４が発行した資源アクセス要求を処理する際に、このような情報２０８ａ〜２０８ｂにアクセスすることができる。
【００３１】
図２Ａに示す特定のシステム２００では、パーティション構成情報の第１の部分２０８ａがハードウェアインターフェースレイヤ２０２に含まれるのに対して、パーティション構成情報の第２の部分２０８ｂは、ハードウェアレイヤ１０２に含まれることに留意されたい。
さらに、図２Ａに示すシステム２００では、オペレーティングシステムレイヤ１０４は、ハードウェアインターフェースレイヤ２０２を通じて、パーティション構成情報２０８ａ〜２０８ｂにのみアクセスできることにも留意されたい。
ハードウェアインターフェースレイヤ２０２は、例えば、オペレーティングシステムレイヤ１０４が、パーティション構成情報２０８ａ〜２０８ｂにアクセスするのに十分高い特権レベルを有することを確認することができる。
【００３２】
ハードウェアレイヤ１０２は、図２Ａでは、２つの部分１０２ａ〜１０２ｂを備えるものとして示されている。
このように、オペレーティングシステムレイヤ１０４は、ハードウェアインターフェースレイヤ２０２を通じて部分１０２ｂ（パーティション構成情報２０８ｂ等）の資源にのみアクセスすることができる。
一方、オペレーティングシステムレイヤ１０４は、ハードウェアレイヤ１０２の他の部分１０２ａの資源に、直接、すなわちハードウェアインターフェースレイヤ２０２を通過することなく、アクセスすることができる。
変換索引バッファ（ＴＬＢｓ）２１４は、オペレーティングシステム１０４がハードウェアインターフェースレイヤ２０２を通過することなくアクセスできるハードウェアレイヤ１０２の資源の一例である。
【００３３】
ハードウェアレイヤ１０２およびハードウェアインターフェースレイヤ２０２が保持するパーティション構成情報２０８ａ〜２０８ｂおよび他の情報は、例えば、レジスタ、オンボードメモリ、またはメインメモリ１１０ａ〜１１０ｃの一部に記憶することができる。
このような情報２０４ａ〜２０４ｂは、ハードウェアレイヤ１０２およびハードウェアインターフェースレイヤ２０２に対してアクセス可能ではあるが、オペレーティングシステム１１２に対してもアプリケーションプログラム１３４ａ〜１３４ｂに対してもアクセス可能でないことが望ましい場合がある。
しかしながら、オペレーティングシステム１１２は、通常、最高特権を与えられた特権レベルを有し、この特権レベルによると、オペレーティングシステム１１２はすべてのシステム資源にアクセスできるということを思い出されたい。
一方、パーティション構成情報２０８ａ〜２０８ｂの一部またはすべてが、メモリコンポーネント１１０ａ〜１１０ｃ、または、オペレーティングシステム１１２に対してアクセス可能な別の資源に記憶される場合、上記で開示した技法が使用されると、オペレーティングシステム１１２はこのような情報２０８ａ〜２０８ｂを変更することができる。
最高特権を与えられた特権レベルを有するソフトウェアプログラムであっても、そのソフトウェアプログラムによるアクセスから、パーティション構成情報２０８ａ〜２０８ｂ等の資源を保護する技法の例を次に説明する。
【００３４】
図２Ｂを参照して、本発明の一実施の形態によるコンピュータシステム２２０の図を示す。
このコンピュータシステム２２０は、図２Ａに示すコンピュータシステム２００と同様に、ハードウェアレイヤ１０２、ハードウェアインターフェースレイヤ２０２、オペレーティングシステムレイヤ１０４、およびアプリケーションレイヤ１０６を含む。
また、システム２２０は、保護資源２０４ａ〜２０４ｂも含む。
詳細には、コンピュータシステム２２０のハードウェアインターフェースレイヤ２０２が保護資源２０４ａを含む一方、コンピュータシステム２２０のハードウェアレイヤ１０２は保護資源２０４ｂを含む。
図２Ｂに示す実施の形態では、保護資源２０４ａおよび２０４ｂは、それぞれパーティション構成情報２０８ａおよび２０８ｂを含む。
これに加えて、保護資源２０４ｂは保護モード指示子２０６を含む。
以下でさらに詳細に説明するように、コンピュータシステム２２０は、オペレーティングシステムレイヤ１０４およびアプリケーションレイヤ１０６のソフトウェアがたとえ最大特権を与えられた特権レベルを有していても、そのソフトウェアの保護資源２０４ａ〜２０４ｂへのアクセスが防止される保護モードで動作することができる。
【００３５】
保護モード指示子２０６は、コンピュータシステム２２０が保護モードで動作するかどうかを示す。
保護モード指示子２０６は、例えば、ハードウェアインターフェースレイヤ２０２のレジスタ（プロセッサステータスレジスタ（ＰＳＲ）等）の１つまたは２つ以上のビットで実施することができる。
以下の説明のために、保護モード指示子２０６は１ビット値ＰＭであり、ＰＭ＝０の場合、コンピュータシステム２２０は非保護モードで動作し、ＰＭ＝１の場合、コンピュータシステム２２０は保護モードで動作すると仮定する。
コンピュータシステム２２０が非保護モードで動作する場合、最高特権を与えられた特権レベルを有するソフトウェア（例えば、オペレーティングシステム１１２）は、保護資源２０４ａ〜２０４ｂを含めて、すべての資源への制限のないアクセスを与えられる。
【００３６】
コンピュータシステム２２０が保護モードで動作する場合、すべての特権レベルのすべてのソフトウェアによる保護資源２０４ａ〜２０４ｂへのアクセスが拒否される。
本発明の一実施の形態では、保護モード指示子２０６の値は、ハードウェアインターフェースレイヤ２０２（例えば、ＰＡＬ）によって開始されたハードウェアフォールトによってのみ変更することができる。
オペレーティングシステム１１２も他のどのソフトウェアプログラムも、そのソフトウェアプログラムの特権レベルにかかわらず、保護モード指示子２０６の値を変更することはできない。
これによって、ハードウェアインターフェースレイヤ２０２（例えば、ＰＡＬ）のみが保護資源２０４ａ〜２０４ｂへのアクセスを取得して許可できることが保証される。
保護モード指示子２０６の値は、このようなハードウェアフォールトからの復帰時にその前の値（例えば、１）に戻すことができる。
【００３７】
図３を参照して、ハードウェアインターフェースレイヤ２０２およびハードウェアレイヤ１０２によって実行されて、本発明の一実施の形態による保護モード指示子２０６の値を設定する方法３００のフローチャートを示す。
図４を参照して、ハードウェアインターフェースレイヤ２０２およびハードウェアレイヤ１０２によって実行されて、本発明の一実施の形態による方法３００を実行する動作を示すデータフロー図を示す。
【００３８】
方法３００は、例えば、ハードウェアインターフェースレイヤ２０２で実行される管理プロセス４０４によって実行することができる。
管理プロセス４０４は、例えば、保護資源２０４ａ〜２０４ｂへのアクセスがハードウェアレイヤ１０２によって認可されるＳＡＬの一部とすることができる。
図２Ｂおよび図４には、単一のハードウェアインターフェースレイヤ２０２のみが示されているが、ハードウェアインターフェースレイヤ２０２をさらに細分して、ＰＡＬやＳＡＬ等のレイヤを追加することができる。
この場合、管理プロセス４０４はＳＡＬに存在することができ、保護資源２０４へのアクセス要求をＰＡＬに行うことができる。
【００３９】
方法３００は、例えば、システム起動時にオペレーティングシステム１１２が生成することができるリセット割り込み４０６によってトリガされる（ステップ３０２）。
リセット方法３００は、ハードウェアインターフェースレイヤ２０２の既知のエントリポイントを有する割り込みサービスルーチンとして実施することができる。
リセット割り込み４０６は、例えば、コンピュータシステム２２０のコールドブート、ウォームブート、または他の種類のリセットを実行するために生成することができる。
また、方法３００は、例えば、コンピュータシステム２２０で現在実行されているオペレーティングシステムをアンロードした後に実行することもできる。
【００４０】
ハードウェアレイヤ２０２は、保護モード指示子２０６のデフォルト値を記憶するデフォルト保護モード指示子４１８を含む。
デフォルトにされた保護モード指示子４１８は、ＣＭＯＳやフラッシュＲＡＭ等の永続記憶媒体または半永続記憶媒体に記憶することができる。
デフォルト保護モード指示子４１８の値は、製造時に初期値として設定することができる。
また、管理プロセス４０４は、リセットプロセス中および／またはリセットプロセス後に、デフォルト保護モード指示子４１８の値を変更することをユーザ４０８に可能にすることもできる。
例えば、コンピュータシステム２２０の電源投入時に、管理プロセス４０４は、構成ユーザインターフェース（ＵＩ）４１６をユーザ４０８に提示することができる。
この構成ユーザインターフェース４１６は、デフォルト保護モード指示子４１８等の構成情報の現在の値を表示する。
ユーザ４０８は、構成ＵＩ４１６を通じて構成変更コマンド４２０を管理プロセス４０４へ提供することができ、それによって、デフォルト保護モード指示子４１８の値を変更するように管理プロセス４０４へ命令することができる。
デフォルト保護モード指示子４１８は、ユーザ４０８が次に変更するまで、この値を維持することができる。
【００４１】
図３に戻って、方法３００は、保護モード指示子２０６のデフォルト値を特定する（ステップ３０４）。
管理プロセス４０４は、デフォルト保護モード指示子４１８からこの値を読み出すことによって、この値を特定することができる。
代替的に、デフォルト保護モード指示子４１８の値は、管理プロセス４０４内にハードコード化することもできる。
例えば、０のデフォルト保護モード指示子の値と共に管理プロセス４０４をハードコード化することができる。
この場合、管理プロセス４０４は、別個のデフォルト保護モード指示子４１８を必要とすることなく、ステップ３０４で０の値を特定することができる。
【００４２】
管理プロセス４０４は、特定したデフォルト保護モードの値を保護モード指示子２０６へ書き込む（ステップ３０６）。
オペレーティングシステム１１２は、ハードディスクドライブ等の永続記憶媒体からオペレーティングシステムレイヤ１０４内へロードされる（ステップ３０８）。
ステップ３０８は、例えば、オペレーティングシステムレイヤ１０４のローダ（図示せず）によって実行することができる。
方法３００は、ロードされたオペレーティングシステム１１２を用いてコンピュータシステム２２０をブートする（ステップ３１０）。
ステップ３０８および３１０を実行する技法は当業者に既知である。
以下でさらに詳細に説明するように、ブートプロセスが完了すると、オペレーティングシステム１１２（および、最高特権を与えられた特権レベルを有する他のあらゆるプログラム）は、保護モード指示子２０６の値に応じて、保護資源２０４（図２Ｂ）へのアクセスを許可されたり、拒否されたりする。
【００４３】
図５を参照して、本発明の一実施の形態による資源アクセス要求を処理するのに実行できる方法５００のフローチャートを示す。
図６を参照して、ハードウェアレイヤ１０２のコンポーネントによる方法５００の実行を示すブロック図を示す。
【００４４】
方法５００は、非保護資源２１２の１つや保護資源２０４ｂの１つ等のハードウェアレイヤ１０２の資源にアクセスする要求６０２を受信する（ステップ５０２）。
図６に示す実施の形態では、ハードウェアレイヤ１０２は、非保護資源２１２および保護資源２０４ｂへのアクセスを制御するハードウェア資源アクセス制御メカニズム６１４を含む。
このハードウェア資源アクセス制御メカニズム６１４は、保護資源アクセス制御メカニズム６１２および特権ベースアクセス制御メカニズム６１０を含む。
保護資源アクセス制御メカニズム６１２は、保護資源２０４ｂへのアクセスを制御する。
特権ベースアクセス制御メカニズム６１０は、非保護資源２１２へのアクセスを制御する。
【００４５】
ハードウェア資源アクセス制御メカニズム６１４は、例えば、オペレーティングシステム１１２からの要求６０２、または、アプリケーションレイヤ１０６で実行されるアプリケーション１３４ａ〜１３４ｂの１つからの要求６０２を受信することができる。
方法５００は、このアクセス要求６０２が、保護資源２０４ｂのいずれかへのアクセスを要求するものであるかどうかを判断する（ステップ５０４）。
ステップ５０４を実行するのに使用できる技法の例については、以下でさらに詳細に説明する。
【００４６】
要求６０２が、保護資源２０４のいずれへのアクセスも要求するものでない場合、方法５００は、従来の特権ベースアクセス制御技法を使用して要求６０２を処理する（ステップ５０６）。
ステップ５０６は、例えば、特権ベースアクセス制御メカニズム６１０によって実行することができる。
特権ベースアクセス制御メカニズム６１０は、保護資源２０４ｂに内部アクセスすることができ、現在の特権レベル６０８等のこのような資源を利用して、要求された資源への要求側プログラムのアクセスを許可するかどうかを判断できることに留意されたい。
【００４７】
その結果、非保護資源２１２にアクセスする要求は、特権ベース資源アクセス制御を使用する従来のシステムと同じ方法で処理することができる。
図５に示す方法５００は、特権レベルに基づくアクセス制御を使用するが、これは本発明の要件ではない。
それとは逆に、非保護資源２１２にアクセスする要求は、どの方法によってもハンドリングすることができる。
【００４８】
アクセス要求６０２が保護資源２０４ｂのいずれかへのアクセスを要求するものである場合、方法５００は、コンピュータシステム２２０が保護モードで動作しているかどうかを判断する（ステップ５０８）。
保護資源アクセス制御メカニズム６１２は、例えば、保護モード指示子２０６の値を読み出すことによってステップ５０８を実行することができる。
コンピュータシステム２２０が保護モードで動作している場合、方法５００は、アクセス要求６０２を拒否する（ステップ５１０）。
保護資源アクセス制御メカニズム６１２は、例えば、アクセス拒否６０４をオペレーティングシステム１１２へ送信することにより、または、フォールトを信号で伝達することにより、ステップ５１０を実行することができる。
したがって、コンピュータシステム２２０が保護モードで動作している場合には、最高特権を与えられた特権レベルを有するプログラムを含めて、すべてのプログラムは、保護資源２０４ｂへのアクセスを拒否される。
【００４９】
コンピュータシステム２２０が保護モードで動作していない場合、方法５００は、特権ベースアクセス制御メカニズム６１０を使用して要求６０２を処理する（ステップ５１２）。
以下でさらに詳細に説明するように、特権ベースアクセス制御メカニズム６１０は、要求側プログラムの特権レベルに基づいて要求６０２を許可することもできるし、拒否することもできる。
【００５０】
アクセス制御メカニズム６１０は、現在の特権レベル６０８の値を特定し（ステップ５１４）、保護資源２０４にアクセスする権利を有する１組の特権レベルを特定する（ステップ５１６）。
特権レベルの特定のサブセットは、例えば、保護資源２０４ｂにアクセスする権利を有するものとして予め定義しておくことができる。
本発明の一実施の形態では、最高特権を与えられた特権レベル（例えば、特権レベル０）を有するプログラムのみが、保護資源２０４ｂにアクセスする権利を有する。
ただし、任意の特権レベルまたは特権レベルの組み合わせを、保護資源２０４ｂにアクセスできるものとして定義することができる。
【００５１】
アクセス制御メカニズム６１０は、現在の特権レベル６０８が、保護資源２０４ｂにアクセスする権利を有する特定された１組の特権レベルにあるかどうかを判断する（ステップ５１８）。
現在の特権レベル６０８が、保護資源２０４ｂにアクセスする権利を有する特定された１組の特権レベルにない場合には、アクセス制御メカニズム６１０は、アクセス要求６０２を拒否する（ステップ５２０）。
アクセス制御メカニズム６１０は、例えば、要求６０２が拒否されたことを示す応答６０６をオペレーティングシステム１１２へ送信することができる。
現在の特権レベル６０８が、保護資源２０４ｂにアクセスする権利を有する特定された１組の特権レベルにある場合には、アクセス制御メカニズム６１０は、要求６０２を許可する（ステップ５２２）。
この許可は、要求されたオペレーションを指定された資源で実行することや、オペレーティングシステム１１２（または他の要求側プログラム）へ応答６０６で任意の適切な結果を返すこと等によって行われる。
応答６０６は、例えば、保護資源２０４から読み出されたデータを含むことができる。
【００５２】
方法５００の１つの効果は、コンピュータシステム２２０が保護モードで動作している場合に、保護資源２０４ｂへのすべてのソフトウェアプログラムのアクセスを拒否すること、および、コンピュータシステム２２０が非保護モードで動作している場合に、適切な特権レベル（最高特権レベル等）を有するソフトウェアプログラムに対してのみアクセスを許可することである。
換言すると、コンピュータシステム２２０が保護モードで動作している場合には、最高特権アクセスレベルを有するプログラムであっても、保護資源２０４ｂへのアクセスが拒否される。
【００５３】
アクセス制御メカニズム６１０は、コンピュータシステム２２０が非保護モードで動作している場合にのみ、従来の技法を使用してアクセス要求６０２をハンドリングするものとして上述されているが、これは本発明の要件ではない。
それとは逆に、特権ベースアクセス制御メカニズム６１０は、保護資源および非保護資源にアクセスする要求を同様に処理することができる。
例えば、アクセス制御メカニズム６１０は、保護資源２０４にアクセスする権利を、非保護資源にアクセスする権利を定義するのと同様に定義することができる。
アクセス制御メカニズム６１０は、例えば、「保護資源読み出し」権および「保護資源書き込み」権を定義することができる。
アクセス制御メカニズム６１０は、このような権利を、存在する各特権レベルに関連付けることができる。
例えば、最大特権を与えられた特権レベルについては、保護資源２０４ｂからの読み出しおよび書き込みを行う権利を許可することができる一方、他のすべての特権レベルについては、保護資源２０４からの読み出しおよび書き込みを行う権利を拒否することができる。
このような権利が拒否されると、アクセス制御メカニズム６１０は、非保護資源にアクセスする要求をハンドリングするのに使用するのと同じ（従来の）手続きを使用して、保護資源２０４にアクセスする要求をハンドリングすることができる。
このような方式では、ステップ５１２は、ステップ５０６と同様に実施することができる。
【００５４】
説明を簡単にするために、図６に示す実施の形態は、コンピュータシステム２２０が保護モードで動作しているかどうかを示す単一の保護モード指示子２０６を使用することに留意されたい。
このようなシステムでは、システム２２０が保護モードで動作している場合に、保護資源２０４ｂにアクセスする要求がたとえハードウェアインターフェースレイヤ２０２によって行われても、このような要求はすべて拒否される。
【００５５】
代替的に、資源アクセス要求がソフトウェアプログラム（オペレーティングシステム１１２等）によって行われると、保護モード指示子２０６の現在の状態を一時レジスタに保存することができる。
その後、保護モード指示子２０６の値を「無効」値に設定することができ、その結果、要求をハンドリングするコンポーネント（例えば、ハードウェアインターフェースレイヤ２０２またはハードウェアレイヤ１０２）は、制限なく保護資源２０４にアクセスすることができる。
資源アクセス要求がハンドリングされると、制御をオペレーティングシステム１１２または他の要求側プロセスに戻す前に、保護モード指示子２０６の前の値を一時レジスタから戻すことができる。
【００５６】
図６に示す実施の形態は、ハードウェアレイヤ１０２の保護資源２０４ｂにアクセスする要求が、オペレーティングシステム１１２によってハードウェアレイヤ１０２に直接行われることを必要とするが、同様の技法は、オペレーティングシステム１１２による保護資源２０４ｂにアクセスする要求を、ハードウェアインターフェースレイヤ２０２を通じて間接的にハンドリングすることにも適用できるし、ハードウェアインターフェースレイヤ２０２自体の保護資源２０４ａにアクセスする要求をハンドリングすることにも適用できる。
これらの場合のいずれにおいても、図５に関して上述した技法を適用して、保護資源２０４にアクセスするオペレーティングシステムの要求の許可または拒否を行うことができる。
【００５７】
図５に示す方法５００は、資源アクセス要求６０２（図６）が、保護資源２０４のいずれかへのアクセスを要求するものであるかどうかを（ステップ５０４で）判断することを思い出されたい。
この判断は、さまざまな方法のどの方法でも行うことができる。
例えば、保護資源２０４は、１つまたは２つ以上の特定マシン向けレジスタ（ＭＳＲ（machine-specific register））をハードウェアレイヤ１０２に含むことができる。
ＭＳＲは、複数のプロセッサを有するコンピュータシステムおよび／または複数のプロセッサコアを有するプロセッサに共通に使用されるレジスタの一種である。
このようなシステムでは、すべてのプロセッサ、シングルチップのすべてのプロセッサコア、または特定のプロセッサもしくはプロセッサコアがＭＳＲを共有（使用に利用可能）することができる。
したがって、ＭＳＲは、従来のプロセッサレジスタと異なり、プロセッサおよび／またはプロセッサコア間で共有される情報を制御することもできるし、共有されない情報を制御することもできる。
１組のＭＳＲを保護資源として予め定義することができる。
この場合、本明細書に開示した技法を使用して、このようなＭＳＲへのアクセスを制御することができる。
この１組の保護ＭＳＲは、ハードウェアレイヤ１０２および／またはハードウェアインターフェースレイヤ２０２によって定義することができる。
アクセス要求６０２がＭＳＲへのアクセスを要求するものである場合、管理プロセス４０４は、要求されたＭＳＲが保護資源２０４の１つであることを上述したテーブルが示すかどうかを判断することによって、ステップ５０４を実行することができる。
【００５８】
本発明の別の実施の形態では、オペレーティングシステム１１２に割り当てられたアドレス範囲の範囲外（および、保護資源２０４が保護される、コンピュータシステム２２０の他のあらゆるオペレーティングシステムに割り当てられたアドレス範囲の範囲外）にあるアドレス範囲に保護資源２０４をマッピングすることによって、保護資源２０４は実施される。
より具体的には、コンピュータシステム２２０のブートアップ時に特定のアドレス空間をオペレーティングシステム１１２に割り当てる技法は既知である。
コンピュータシステム２２０は、例えば、マルチパーティションコンピュータシステムとすることができる。
この場合、オペレーティングシステム１１２は、複数のオペレーティングシステムの１つとすることができ、複数のオペレーティングシステムのそれぞれは、コンピュータシステム２２０の別個のパーティションで実行される。
各パーティションにはアドレス空間（「物理アドレス空間」と呼ばれる）を関連付けることができ、このアドレス空間を通じて、そのパーティションのオペレーティングシステム１１２および他のコンポーネントは、そのパーティションに割り当てられた資源（メモリロケーションやＭＳＲ等）にアクセスすることができる。
【００５９】
例えば、コンピュータシステム２２０は、あたかも、メモリコンポーネント１１０ａ〜１１０ｃが単一のメモリコンポーネントであるかのように、単一の連続したアドレス空間（「システムアドレス空間」と呼ばれる）を使用して、複数のメモリコンポーネント１１０ａ〜１１０ｃのメモリロケーションをアドレス指定することを可能にする１つまたは２つ以上のメモリコントローラを含むことができる。
以下の説明の例のために、コンピュータシステム２２０のシステムアドレス空間は、５０ビットアドレスを使用してすべてにアドレス指定可能であると仮定する。
【００６０】
さらに、コンピュータシステム２２０は２つのパーティションを含み、各パーティションは各パーティションのオペレーティングシステムを有するものと仮定する。
５０ビットシステムアドレス空間が、２つのパーティション間で均等に分割されたとすると、各パーティションには、４９ビットアドレス空間が割り当てられることになる。
このような各アドレス空間は、その高位ビットが明確である５０ビットアドレス空間とみなすことができる。
このような例では、保護資源２０４を、高位ビット（例えば、ビット５０）がセットされた５０ビットアドレスにマッピングすることができる。
例えば、「メモリマップドＩ／Ｏ」を使用するメモリアドレスを使用してＩ／Ｏデバイスをアドレス指定することを可能にする技法が既知である。
他のあらゆる種類のコンピュータ資源も、特定のオペレーティングシステムに割り当てられた物理アドレス空間のメモリアドレスを通じて同様にアドレス指定可能とすることができる。
【００６１】
保護資源２０４がオペレーティングシステム１１２（またはコンピュータシステム２２０の他のあらゆるオペレーティングシステムもしくはプロセス）によってアクセスされるのを防止するために、管理プロセス４０４は、（図３のステップ３０８の後に）各パーティション（および関連したオペレーティングシステム）に、４９ビット物理アドレス空間がそのパーティションに割り当てられたことを通知することができる。
ブートアップ後、各オペレーティングシステムは、各オペレーティングシステムの４９ビット物理アドレス空間のアドレスを使用してメモリにアクセスすることができる。
ハードウェアインターフェースレイヤ２０２を使用して、このような４９ビットアドレスを、メモリコンポーネント１１０ａ〜１１０ｃの適切なメモリロケーションにアクセスするのに使用できる５０ビットシステムアドレスへ変換する技法は既知である。
【００６２】
図７を参照して、本発明の一実施の形態においてブートアップ時に管理プロセス４０４によって実行されて、保護資源２０４を、特定のオペレーティングシステムに割り当てられた物理アドレス空間の一部へマッピングする方法のフローチャートを示す。
図７に示す方法は、方法３００（図３）のステップ３０８（オペレーティングシステム１１２のロード）とステップ３１０（システム２２０のブート）との間で実行することができる。
図７に示す方法は、マルチパーティションコンピュータシステムでは、パーティションごとに（したがって、オペレーティングシステムごとに）実行できることに留意されたい。
【００６３】
オペレーティングシステム１１２をロードした（ステップ３０８）後、管理プロセス４０４は、デフォルトの物理アドレス空間を特定して、オペレーティングシステム１１２に割り当てる（ステップ７０２）。
上述したように、２つのパーティションのコンピュータシステムでは、デフォルトで、全システムアドレス空間よりも１ビット少ないビットを含んだ物理アドレス空間を各オペレーティングシステムに割り当てることができる。
例えば、５０ビットシステムアドレスを有する２つのパーティションのコンピュータシステムでは、デフォルトで、４９ビット物理アドレス空間を各オペレーティングシステムに割り当てることができる。
より一般的には、管理プロセス４０４は、コンピュータシステム２２０において、物理アドレス空間をパーティションに割り当てる任意の既存のメカニズムを使用してオペレーティングシステム１１２に割り当てられるデフォルトの物理アドレス空間を特定することができる。
例えば、パーティション構成情報２０８の構成レジスタは、コンピュータシステム２２０のパーティションに割り当てられるデフォルトの物理アドレス空間を定義することができる。
【００６４】
管理プロセス４０４は、特定されたデフォルトの物理アドレス空間の一部へ保護資源２０４をマッピングする（ステップ７０４）。
例えば、０（ＬＳＢ）から４８（ＭＳＢ）までの番号が付けられたビットを有する４９ビット物理アドレス空間の場合、管理プロセス４０４は、保護資源２０４を、最上位ビット（例えば、ビット４８）がセットされたアドレスへマッピングすることができる。
代替的に、管理プロセス４０４は、付加ビット（例えば、ビット４９）をデフォルトのアドレス空間に追加して、この付加ビットがセットされたアドレスへ保護資源２０４をマッピングすることができる。
【００６５】
管理プロセス４０４は、コンピュータシステム２２０が保護モードでブートするかどうかを判断する（ステップ７０６）。
管理プロセス４０４は、例えば、ステップ３０４（図３）で特定された保護モード指示子の値を参照することによってステップ７０６を実行することができる。
【００６６】
コンピュータシステム２２０が保護モードでブートされない場合には、管理プロセス４０４は、デフォルトの物理アドレス空間をオペレーティングシステム１１２に割り当てる（ステップ７０８）。
コンピュータシステム２２０が保護モードでブートされる場合には、管理プロセス４０４は、デフォルトの物理アドレス空間の非保護部分をオペレーティングシステム１１２に割り当てる（ステップ７１０）。
この「非保護部分」は、保護資源２０４がマッピングされるアドレスを含まない、デフォルトの物理アドレス空間の部分を指す。
例えば、デフォルトの物理アドレス空間が４９ビットアドレス空間である上述した実施の形態では、最上位ビット（例えば、ビット４９）がセットされた（１に等しい）アドレス、すなわち、５０ビットアドレス空間の上半分へ保護資源２０４をマッピングすることができる。
その場合、デフォルトのアドレス空間の「非保護部分」は、最上位ビットがクリアされた（０に等しい）４９ビットアドレス空間、すなわち、５０ビットアドレス空間の下半分になる。
管理プロセス４０４は、その物理アドレス空間が４８ビット幅であり、それによって、第４９ビットがセットされた（保護）アドレスが除かれることをオペレーティングシステム１１２に通知することによって、オペレーティングシステム１１２にこのようなアドレス空間を割り当てることができる。
【００６７】
物理アドレス空間をオペレーティングシステム１１２に割り当てた後、管理プロセス４０４は、図３に関して上述したように、コンピュータシステムをブートする（ステップ３１０）。
その後、オペレーティングシステム１１２が、保護資源２０４へのアクセスを要求する資源アクセス要求を発行すると、コンピュータシステム２００が保護モードで動作していない場合にのみ、コンピュータシステム２００の従来のメモリアクセス制御メカニズムを利用して、オペレーティングシステム１１２が保護資源２０４にアクセスすることを可能にすることができる。
【００６８】
例えば、図５に示す方法５００は、ステップ５０４で、資源アクセス要求６０２（図６）が保護資源２０４へのアクセスを要求するものであるかどうかを判断することを思い出されたい。
ステップ５０４は、例えば、パーティショニング可能コンピュータシステムにすでに存在するメカニズムを使用して、要求６０２のアドレスが、オペレーティングシステム１１２に割り当てられた物理アドレス空間内にあるかどうかを判断することによって実行することができる。
コンピュータシステム２００が保護モードで動作している間、オペレーティングシステム１１２が保護資源２０４にアクセスしようと試みると、これらの従来のメカニズムは、要求されたアドレスが、オペレーティングシステム１１２に割り当てられた物理アドレス空間の範囲外にあると認識することによって（例えば、その高位ビットがセットされているので）、このような試みを検出する。
コンピュータシステム２００が非保護モードで動作している間、オペレーティングシステム１１２または他のプログラムが保護資源２０４にアクセスしようと試みると、図５に関して上述した技法を使用して、適切な特権レベルを有するプログラムのみが保護資源２０４にアクセスできることを保証することができる。
【００６９】
本明細書に開示した技法の１つの利点は、それら技法によって、最高特権アクセスレベルを有するプログラムであっても、それらプログラムによるアクセスから、ハードウェアインターフェースレイヤ２０２のパーティション構成情報２０８等の指定された資源を保護することが可能になることである。
上述したように、アクセス特権を実施する従来のコンピュータシステムでは、最高特権アクセスレベルを有するプログラム（オペレーティングシステム等）は、コンピュータシステムのすべての資源にアクセスすることが可能にされる。
このような制限のないアクセスは、一定のコンピュータシステムでは許容できる場合があり、望ましい場合さえあるが、コンピュータシステム（パーティショニング可能コンピュータシステム等）によっては、最高特権アクセスレベルを有するプログラムであっても、それらプログラムによるアクセスから、一定の資源（パーティション構成情報２０８等）を保護することが望ましい場合ある。
このような資源をオペレーティングシステムに対してアクセス可能にすると、例えば、オペレーティングシステムが、パーティション構成情報２０８を変更することが可能になり、それによって、他のパーティションのオペレーションとインターフェースすることが可能になる。
このような結果、パーティショニング可能コンピュータによって保証されるべきパーティション間のセキュリティが侵害されることになる。
【００７０】
本明細書に開示した技法のもう１つの利点は、それら技法によって、コンピュータシステムのオペレーティングシステム（単数または複数）またはアプリケーションプログラムを変更する必要なく、別の資源保護レベルをコンピュータシステムに追加することが可能になることである。
換言すると、本明細書に開示した技法は、オペレーティングシステム１１２とアプリケーションレイヤ１０６で実行されるアプリケーションプログラムとに対してトランスペアレントな方法で実施することができる。
それによって、このような技法は、上述した方法で保護資源２０４を保護する保護方式と共に作動するオペレーティングシステムおよびアプリケーションを変更するのに必要な費用および時間の追加を回避する。
さらに、このような技法は、オペレーティングシステム（単数または複数）およびアプリケーションプログラムとは独立に実施されるので、このような技法は、オペレーティングシステム（単数または複数）およびアプリケーションプログラムが実施される方法とは関係なく、所望の資源を保護することができる。
【００７１】
この発明を特定の実施の形態の観点から上述してきたが、上記実施の形態は、例示としてのみ提供され、この発明の範囲を限定するものでも画定するものでもないことが理解されるべきである。
他のさまざまな実施の形態も特許請求の範囲の範囲内に含まれる。
他のさまざまな実施の形態には、以下のものが含まれるが、これらに限定されるものではない。
例えば、本明細書で説明した要素およびコンポーネントは、さらに分割されて、コンポーネントを追加することもできるし、互いに結合して、同じ機能を実行するさらに少ない数のコンポーネントを形成することもできる。
【００７２】
保護資源２０４の特定の例を上記で提供しているが、本明細書に開示した技法は、あらゆる種類の資源を保護するのに使用することができる。
例えば、本明細書に開示した技法は、パーティションに関連したシステム構成情報、メモリの領域、Ｉ／Ｏコントローラ、プロセッサ構成情報、テスト／診断資源、およびレジスタを保護するのに使用することができる。
上記例の保護資源２０４は、ハードウェアレイヤ１０２およびハードウェアインターフェースレイヤ２０２の双方に配置されるが、これは本発明の要件ではない。
それとは逆に、本明細書に開示した技法は、コンピュータシステムのあらゆるコンポーネントまたはレイヤに配置された資源を保護するのに使用することができる。
同様に、アクセス制御は、上記例では、ハードウェアインターフェースレイヤ２０２の管理プロセス４０４によって実行されるが、これも本発明の要件ではない。
それとは逆に、アクセス制御は、コンピュータシステムのあらゆるコンポーネントまたはコンポーネントの組み合わせによって実行することができる。
さらに、ＩＡ−６４のＰＡＬおよびＳＡＬが、ハードウェアインターフェースレイヤ２０２の例として本明細書で説明されるが、本明細書に開示した技法は、あらゆるコンピュータアーキテクチャと共に実施することができる。
【００７３】
管理プロセス４０４は、本明細書では、さまざまな機能を実行するものとして説明されている。
代替的に、管理プロセス４０４は、例えば管理プロセッサとして実施することもできる。
管理プロセッサは、サーバで一般に使用されて、適切なオペレーティングシステムと共にサーバをブートアップする等のシステム管理機能を実行するプロセッサである。
【００７４】
本明細書で説明した一定の例は、２つの特権レベル（最高特権レベルおよび下位特権レベル）を認識するアクセス制御方式に言及しているが、本明細書に開示した技法は、あらゆる個数の特権レベルを認識するアクセス制御方式と共に使用することができる。
さらに、上記で提供した例では、保護資源２０４は、コンピュータシステム２２０が保護モードで動作している場合に、最高特権レベルを有するプログラムによってのみアクセスすることができるが、これは本発明の要件ではない。
それとは逆に、コンピュータシステム２２０が保護モードで動作している場合に、所定の特権レベルならば、どの特権レベルを有するプログラムにもアクセスを提供することができる。
例えば、１組の特権レベル（特権レベル０や１等）を、保護資源２０４へのアクセスが許可される特権レベルの組として指定することができる。
【００７５】
上述した例では、コンピュータシステム２２０は、保護モードまたは非保護モードのいずれでも動作するように構成することができるが、これは本発明の要件ではない。
それとは逆に、常に保護モードで動作するように特定のコンピュータシステムを構成することができる。
この場合、オペレーティングシステムレイヤ１０４およびアプリケーションレイヤ１０２で実行されるプログラムには、保護資源２０４へのアクセスが提供されることはない。
【００７６】
上述した技法は、例えば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実施することができる。
上述した技法は、プログラマブルコンピュータで実行される１つまたは２つ以上のコンピュータプログラムで実施することができる。
このプログラマブルコンピュータは、プロセッサ、プロセッサによって読み出し可能な記憶媒体（例えば、揮発性メモリおよび不揮発性メモリ、ならびに／または、記憶素子を含む）、少なくとも１つの入力デバイス、ならびに少なくとも１つの出力デバイスを含む。
入力デバイスを使用して入力された入力にプログラムコードを適用して、説明した機能を実行し、出力を生成することができる。
この出力は、１つまたは２つ以上の出力デバイスへ提供することができる。
【００７７】
添付した特許請求の範囲の範囲内に入る各コンピュータプログラムは、あらゆるプログラミング言語で実施することができ、アセンブリ言語、マシン言語、高級手続型プログラミング言語、オブジェクト指向型プログラミング言語等で実施することができる。
このプログラミング言語は、例えば、コンパイラ型プログラミング言語であってもよいし、インタープリタ型プログラミング言語であってもよい。
【００７８】
このような各コンピュータプログラムは、マシン可読記憶デバイスに有形に実施されて、コンピュータプロセッサにより実行されるコンピュータプログラム製品で実施することができる。
この発明の方法のステップは、コンピュータプロセッサが、コンピュータ可読媒体に有形に実施されたプログラムを実行し、入力に対して操作を行って出力を生成することによりこの発明の機能を実行することによって実行することができる。
適切なプロセッサには、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの双方が含まれる。
一般に、プロセッサは、読み出し専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受け取る。
コンピュータプログラム命令を有形に実施するのに適した記憶デバイスには、例えば、すべての形態の不揮発性メモリが含まれる。
この不揮発性メモリは、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスを含む半導体メモリデバイス、内部ハードディスクやリムーバブルディスク等の磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭ等である。
上記のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）またはＦＰＧＡ（フィールドプログラマブルゲートアレイ）によって補完することもできし、ＡＳＩＣまたはＦＰＧＡに実装することもできる。
また、コンピュータは、一般に、内部ディスク（図示せず）やリムーバブルディスク等の記憶媒体からもプログラムおよびデータを受け取ることができる。
これらの要素は、従来のデスクトップコンピュータまたはワークステーションコンピュータ、および、本明細書で説明した方法を実施するコンピュータプログラムを実行するのに適した他のコンピュータにも見ることができる。
これらの要素は、あらゆるデジタル印刷エンジンもしくはマーキングエンジン、表示モニタ、または、用紙、フィルム、表示スクリーン、もしくは他の出力媒体にカラーピクセルもしくはグレースケールピクセルを生成できる他のラスタ出力デバイスと共に使用することができる。
【図面の簡単な説明】
【００７９】
【図１】ハードウェアレイヤ、オペレーティングシステムレイヤ、およびアプリケーションレイヤを含む従来技術のコンピュータシステムのブロック図である。
【図２Ａ】ハードウェアレイヤ、ハードウェアインターフェースレイヤ、オペレーティングシステムレイヤ、およびアプリケーションレイヤを含む従来技術のコンピュータシステムのブロック図である。
【図２Ｂ】本発明の一実施の形態による保護資源を含むコンピュータシステムのブロック図である。
【図３】本発明の一実施の形態において実行されて、本発明の一実施の形態による保護モード指示子の値を設定する一方法のフローチャートである。
【図４】図２Ｂのハードウェアインターフェースレイヤによって実行されて、本発明の一実施の形態による図３の方法を実行する動作を示すデータフロー図である。
【図５】本発明の一実施の形態による資源アクセス要求を処理する方法のフローチャートである。
【図６】本発明の一実施の形態による図２Ｂのハードウェアインターフェースレイヤによって実行されて図５の方法を実行する動作を示すブロック図である。
【図７】本発明の一実施の形態によるブートアップ時に図２Ｂのハードウェアインターフェースレイヤによって実行されて、保護資源をアドレス空間の一部へマッピングする方法のフローチャートである。
【符号の説明】
【００８０】
１０２ａ，１０２ｂ・・・ハードウェアレイヤ，
１０４・・・オペレーティングシステムレイヤ，
１０６・・・アプリケーションレイヤ，
１１２・・・オペレーティングシステム，
２０２・・・ハードウェアインターフェースレイヤ，
２０４ａ，２０４ｂ・・・保護資源，
２０６・・・保護モード指示子，
２０８ａ，２０８ｂ・・・パーティション構成情報，
２１２・・・非保護資源，
４０４・・・管理プロセス，
４０６・・・リセット割り込み，
４０８・・・ユーザ，
４１６・・・構成ユーザインターフェース，
４１８・・・デフォルト保護モード指示子，
４２０・・・構成変更コマンド，
６１０・・・特権ベースアクセス制御メカニズム，
６１２・・・保護資源アクセス制御メカニズム，
６１４・・・ハードウェア資源アクセス制御メカニズム，
【図１】
2006048687.tif 000003
【図２Ａ】
2006048687.tif 000004
【図２Ｂ】
2006048687.tif 000005
【図３】
2006048687.tif 000006
【図４】
2006048687.tif 000007
【図５】
2006048687.tif 000008
【図６】
2006048687.tif 000009
【図７】
2006048687.tif 000010