(57)【要約】仮想メモリアクセスを実行するための方法および装置である。ソフトウェアオブジェクト（３５０）が実行される。ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立する。２次テーブル（４３０）を確立する。ソフトウェアオブジェクト（３５０）の実行に基づいてメモリアクセス要求を受信する。２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定する。ソフトウェアオブジェクト（３５０）の実行に応答して、実行セキュリティレベルと現在アクセスされているセグメントに係るセキュリティレベルの間の整合を検証する。実行セキュリティレベルと現在アクセスされているセグメントに係るセキュリティレベルの間の整合に応答して、２次テーブル（４３０）に基づいて仮想メモリアドレスを決定する。仮想メモリアドレスに対応する物理メモリ位置を特定する。物理メモリ位置の特定に基づいて、メモリの一部にアクセスする。
2005508039.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアオブジェクト（３５０）を実行するステップと、
前記ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立するステップと、
前記セキュリティレベルのうちの少なくとも一つを使用してマルチテーブル・メモリアクセスを実行するステップと、
前記オブジェクト（３５０）の前記機能を実行するステップとを含む方法。
【請求項２】
前記ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立するステップは、メモリの少なくとも一部のメモリアクセスに関するセキュリティレベルを割り当てるステップをさらに含む、請求項１記載の方法。
【請求項３】
前記セキュリティレベルのうちの少なくとも一つを使用してマルチテーブル・メモリアクセスを実行するステップは、さらに
２次テーブル（４３０）を確立するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に基づいて、メモリアクセス要求を受信するステップと、
前記メモリアクセス要求に基づいて、前記２次テーブル（４３０）および少なくとも一つの仮想メモリテーブル（４１０）を用いて、マルチレベル・テーブルアクセスを実行するステップと、
前記マルチレベル・テーブルアクセスに基づいて、メモリの一部にアクセスするステップとを含む、請求項１記載の方法。
【請求項４】
前記２次テーブル（４３０）を確立するステップはさらに、
物理メモリ（３４５）を複数のセグメントに分割するステップと、
前記２次テーブル（４３０）から削除する少なくとも一つの前記セグメントおよび削除されない少なくとも一つの前記セグメントを決定するステップと、
前記削除されたセグメントにデフォルトのセキュリティレベルを割り当てるステップと、
前記削除されないセグメントにあるセキュリティレベルを割り当てるステップと、
少なくとも一つの割り当てられたセグメントを仮想メモリ位置に関係付けるステップとを含む、請求項４記載の方法。
【請求項５】
前記メモリアクセス要求に基づいて、マルチレベル・テーブルアクセスを実行するステップは、さらに
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップと、
前記オブジェクト（３５０）の実行に応答して、実行セキュリティレベルと現在アクセスされているセグメントに係るセキュリティレベルの間の整合を検証するステップと、
前記実行セキュリティレベルと前記現在アクセスされているセグメントに係るセキュリティレベルの間の整合に応答して、前記２次テーブル（４３０）に基づいて仮想メモリアドレスを決定するステップと、
前記仮想メモリアドレスに対応する物理メモリ位置を特定するステップとを含む、請求項４記載の方法。
【請求項６】
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップは、
前記仮想メモリテーブル（４１０）から物理アドレス（５５３）を決定するステップと、
前記物理アドレス（５５３）に基づいて、実行されているセグメントを判定するステップと、
前記実行されているセグメントを判定するステップに基づいて、現在のセキュリティレベルを定義するステップとを含む、請求項６記載の方法。
【請求項７】
仮想メモリアクセスを実行する装置であって、
バス（３１５）に結合されたプロセッサ（３１０）と、
少なくとも一つのソフトウェアオブジェクト（３５０）を前記プロセッサ（３１０）に結合するための手段と、
メモリ装置（３４０）と、
前記バス（３１５）および前記メモリ装置（３４０）に結合され、少なくとも一つのセキュリティレベルに基づいて、前記ソフトウェアオブジェクト（３５０）を実行している前記プロセッサ（３１０）に応答して、前記プロセッサ（３１０）に前記メモリ装置（３４０）の少なくとも一部についてのマルチレベル・テーブルメモリアクセスを提供するメモリアクセスインターフェイス（３１５）とを備える装置。
【請求項８】
前記メモリアクセスインターフェイス（３１５）は、２次テーブル（４３０）に結合された仮想メモリアクセステーブル（４１０）を含み、前記メモリアクセスインターフェイス（３１５）は、セキュリティレベルに基づいて前記メモリ装置（３４０）の少なくとも一部にアクセスするために、仮想メモリアドレス指定の仕組みを提供する、請求項１３記載の装置。
【請求項９】
コンピュータによって実行されたときに、ある方法を実行する命令を記憶した、コンピュータ読み取り可能なプログラム記録媒体であって、当該方法は、
ソフトウェアオブジェクト（３５０）を実行するステップと、
前記ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立するステップと、
２次テーブル（４３０）を確立するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に基づいて、メモリアクセス要求を受信するステップと、
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に応答して、実行セキュリティレベルと現在アクセスされているセグメントに係るセキュリティレベルの間の整合を検証するステップと、
前記実行セキュリティレベルと前記現在アクセスされているセグメントに係るセキュリティレベルの間の整合に応答して、前記２次テーブル（４３０）に基づいて仮想メモリアドレスを決定するステップと、
前記仮想メモリアドレスに対応する物理メモリ位置を特定するステップと、
前記物理メモリ位置の特定に基づいて、メモリの一部にアクセスするステップと、
前記セキュリティレベルのうちの少なくとも一つを使用してマルチテーブル・メモリアクセスを実行するステップと、
前記オブジェクト（３５０）の前記機能を実行するステップとを含む、コンピュータ読み取り可能なプログラム記録媒体。
【請求項１０】
コンピュータによって実行されたときに、請求項１７記載の方法を実行する命令を記憶した、コンピュータ読み取り可能なプログラム記録媒体であって、
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップは、
前記仮想メモリテーブル（４１０）から物理アドレス（５５３）を決定するステップと、
前記物理アドレス（５５３）に基づいて、実行されているセグメントを判定するステップと、
前記実行されているセグメントを判定するステップに基づいて、現在のセキュリティレベルを定義するステップとを含む、コンピュータ読み取り可能なプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータシステムのオペレーションに関し、さらに詳細には、セキュアなメモリアクセスを提供するための物理アドレスベースのセキュリティ手法を実行するための方法および装置に関する。
【背景技術】
【０００２】
コンピュータまたはコンピュータシステムは今日の産業用および家庭用の数多くのアプリケーションにおいて重要な要素である。製造システム、電力システム、製品配送システム、文書システム等々のような数多くのシステムがプロセッサを使用するコンピュータシステム上で動作している。これらのプロセッサは様々な試験を実行し、相互に影響しあう複数のソフトウェアプログラムを実行する。しばしば、入出力装置はプロセッサおよびソフトウェアプログラムのオペレーションの操作を許可する。プロセッサのオペレーションの際には、特定のソフトウェア構造（つまり、ソフトウェアオブジェクト、サブルーチン、スタンドアローンプログラムなど）が制御可能であり、他のソフトウェア構造に対して優先度を与えることができるようにする、標準レベルのセキュリティが望ましい。許可されていないまたは不注意なプロセッサによるアクセスまたはオペレーションを防止するために、特定のソフトウェア構造および特定のプロセッサ機能へのアクセスはしばしば制限される。現在のコンピュータアーキテクチャには仮想メモリを利用する仕組みが含まれている。仮想メモリの仕組みでは、コンピュータシステム内の物理メモリに常駐するいくつかのシステム定義テーブルを用いる。通常、これらのシステムテーブル内のエントリーは予め決定されており、特定のソフトウェア構造へのアクセスを制限する予約セクションを含んでいる。
【０００３】
コンピュータシステムはシングルタスクの装置から、マルチタスクの装置へと進化してきた。コンピュータシステムは、多くのタスクを実行し、それらのリソース（資源）利用を監督するオペレーティングシステムを採用する。一般的に、あるユーザがプロセスを起動する（つまり、ワードプロセッサなどのアプリケーションプログラムを開く）とき、オペレーティングシステムは特定のコンピュータ資源（つまり、メモリの一部）をそのタスクによる利用のために割り当てる。しかしながら、多くのコンピュータ資源は、このような方法では割り当てることができず、または割り当てられない。例えば、プリンタドライバは複数のタスクによって頻繁に使用される。従って、オペレーティングシステムは通常そのような共有の資源に関係するタスクに対してアクセス権およびプロトコルを定める。このようなオペレーティングシステムの努力のおかげで、コンピュータシステムは効率的な方法で複数のタスクを同時に実行できるのである。
【０００４】
そのようなコンピュータ環境の一つの重要な見地は「セキュリティ（安全性、安全保障）」である。マルチタスクのコンピュータシステムは、ユーザプロセスからそれらのオペレーティングシステムを守り、複数のプロセスを相互に守るためにセキュリティおよびプロテクションサービスを採用する。プロテクションがない場合、異常なプログラムがオペレーティングシステムまたは他のプロセスに属するメモリ空間内のプログラムコードやデータを、意図的にではなくとも破壊することが可能となる。少なくともこの文脈においては、セキュリティは、例えそれが意図的な悪意のある行為を防止することを予期させるものであるとしても、意図的な悪意のある行為を阻止することまで含むものではない。
【０００５】
ｘ８６プロセッサのような多くのプロセッサは、特権（privilege）レベルのような、複数のセキュリティレベルを提供する。図１に、複数のセキュリティレベルの代表例を示す。図１の逆ピラミッド型の構造は、４つのレベルのセキュリティ（特権）レベル０、レベル１、レベル２およびレベル３を示す。オペレーティングシステムには、レベル０などの基本特権レベルが与えられている。セキュリティレベル０によって与えられる特権は、特定のソフトウェア構造に対して、レベル１−３などの後続のセキュリティレベルによって提供されるアクセスを取得することを許可する。もしあるソフトウェア構造がセキュリティレベル２の特権しか許可されていないときは、その特定のソフトウェア構造は、特権レベル２または３が与えられたオペレーションに対するアクセスおよび制御しか持たない。多くの場合、マイクロソフトウィンドウズ（登録商標）のような数多く出回っているオペレーティングシステムは、複数の特権レベルの機能を完全には利用していない。いくつかのソフトウェアオペレーティングシステムは、レベル０とレベル３のような、２つの特権レベルしか使用していない。
【０００６】
オペレーティングシステムサービスおよびすべてのドライバがセキュリティレベル０で動作するとき、ユーザアプリケーションプログラムはセキュリティレベル３で実行されうる。このことが、コンピュータシステムを様々なセキュリティ上のリスクにさらしうる。ほとんどのドライバは、セキュリティレベル０の最大特権レベルで動作しているので、すべてのコンピュータ資源にアクセスを持つので、とりわけそれが当てはまる。従って、モデム装置などの、コンピュータシステム内のある装置を制御するドライバへの許可されないアクセスが、システム破壊をもたらすモデムの許可されない動作を生じさせる可能性がある。さらに、システムメモリへの不許可アクセスが、重要なデータおよびソフトウェアプログラムの消失を引き起こす可能性がある。
【０００７】
本発明は、上述の一以上の問題を克服し、または少なくともそれらの問題の影響を低減することを目的とする。
【発明の開示】
【発明の概要】
【０００８】
本発明の一態様において、仮想メモリアクセスを実行する方法が提供される。ソフトウェアオブジェクトが実行される。ソフトウェアオブジェクトに対するセキュリティレベルが確立される。複数のセキュリティレベルのうちの少なくとも一つを用いたマルチテーブル・メモリアクセスが実行される。オブジェクトの機能が実行される。
【０００９】
本発明の他の態様において、仮想メモリアクセスを実行する装置が提供される。本発明の装置は、バスに結合されたプロセッサと、少なくとも一つのソフトウェアオブジェクトをプロセッサに結合する手段と、メモリユニットと、バスおよびメモリユニットに結合されたメモリアクセスインターフェイスとを備え、このメモリアクセスインターフェイスは、ソフトウェアオブジェクトを実行するプロセッサに応答して、少なくとも一つのセキュリティレベルに基づいて、メモリユニットの少なくとも一部に対するマルチレベルテーブルメモリアクセスをプロセッサに提供する。
【発明を実施するための最良の形態】
【００１０】
添付の図面とともに以下の説明を参照することによって、本発明を理解することができるであろう。図面中、類似の参照符号は類似の要素を示す。
本発明は様々な変形や代替形態をとることが可能であるが、その特定の実施形態を例示のために図示し、以下で詳細に説明する。しかしながら、本明細書中の特定実施形態についての説明は、開示された特定の形態に本発明を限定しようとするものではなく、むしろ反対に添付の特許請求の範囲に定義された発明の精神および範囲に入る、すべての変形例、均等物、および代替物を含めようとするものである、ことを理解してもらいたい。
【００１１】
本発明の例示となる実施形態を以下に説明する。明確にするために、本明細書では現実の実施物の特徴をすべて説明することはしない。そのような実際の実施形態の開発においては、開発者の特定の目的を達成するために、常に様々な実施形態に応じた決定を行わなければならないことが理解できるであろう。そのような目的の例としては、実施形態毎に変化する、システムに関係する順守事項であったり、ビジネス上の制約事項であったりする。さらに、そのような開発努力がたとえ複雑で時間のかかるものであったとしても、本発明の開示による利益を享受する当業者にとっては、日常的な仕事に過ぎない。
【００１２】
図１に、セキュリティアクセスシステムを用いたメモリアクセスを提供する本発明の実施形態を示す。本発明の実施形態は、コンピュータシステムの一以上のプロセッサによって開始されたメモリアクセスの間、セキュリティを提供するための複数（マルチプル）メモリアクセステーブルシステムを提供する。本発明の実施形態はまた、１次仮想メモリアクセステーブルおよび２次メモリアクセステーブルを利用した仮想メモリアクセスシステムを提供し、それによってメモリアクセスの際のセキュリティが高くなる。
【００１３】
図２に、本発明に従ったシステム２００の一実施形態を示す。システム２００は処理装置２１０と、キーボード２３０、マウス２４０、入力ペン２５０などの複数の入出力装置と、モニタなどの表示装置２２０とを備える。一実施形態において、本発明によって開示されるセキュリティレベルシステムは、処理装置２１０に存在する。入出力装置２３０，２４０，２５０の一つからの入力が、処理装置２１０内の１以上のソフトウェア構造（オペレーティングシステムを含む）の実行を開始させる。次に、システム２００内のメモリがアクセスされて、処理装置２１０内の様々なソフトウェア構造が実行される。本発明の実施形態は、システム２００にプログラムされた所定のセキュリティエントリーに基づいて、１以上のソフトウェア構造によって開始されたメモリアクセスを制限する。
【００１４】
図３は、本発明に従った処理装置２１０の一実施形態の簡略化ブロック図である。一実施形態である処理装置２１０は、プロセッサ３１０と、メモリアクセスインターフェイス３２０と、メモリユニット３４０と、ソフトウェアオブジェクトまたはソフトウェア構造のようなプログラマブルオブジェクト３５０とを有する。プロセッサ３１０は、複数のプロセッサ（図示せず）を含む、マイクロプロセッサとすることができる。メモリ装置３４０は、磁気テープメモリ、フラッシュメモリ、ランダムアクセスメモリ、半導体チップ上に配置されたメモリ等のような物理メモリを含む、物理メモリセクション３４５を有する。半導体チップ上に配置されるメモリは、シンクロナス・ダイナミック・ランダム・アクセスメモリ（ＳＤＲＡＭ）、ダブルレート・ダイナミック・ランダム・アクセス・メモリ（ＤＤＲＡＭ）等の、様々な形態のなかから任意の形態をとることができる。プロセッサ３１０は、システムメモリ・アクセスインターフェイス３２０を介して、メモリユニットと通信する。一実施形態において、メモリアクセスインターフェイス３２０は従来型の構造を持ち、メモリ装置３４０にメモリアドレスとロジック信号を供給して、所望のメモリトランザクションの特性を与える。
【００１５】
一実施形態において、プロセッサ３１０はホストバス３１５に結合される。プロセッサ３１０はホストバス３１５を介して、メモリアクセスインターフェイス３２０およびオブジェクト３５０と通信する。メモリアクセスインターフェイス３２０はホストバス３１５およびメモリユニット３４０に結合される。プロセッサ３１０はまた、周辺装置との通信に用いられる１次バス３２５に結合される。一実施形態において、１次バス３２５はＰＣＩ（peripheral component interconnect）バスである（PCI仕様書、Rev.2.1を参照）。表示装置２２０を駆動するビデオコントローラ（図示せず）およびその他の装置（つまり、ＰＣＩ装置）は１次バス３２５に結合される。コンピュータシステム２００は、２次ＰＣＩバス（図示せず）のようなその他のバス、または当業者に既知のその他の周辺装置（図示せず）を含んでもよい。
【００１６】
プロセッサ３１０は、オブジェクト３５０からの命令をもとに、複数のコンピュータ処理オペレーションを実行する。オブジェクト３５０は、プロセッサ３１０に複数の機能を実行させるソフトウェア構造を含む。さらに、オペレーティングシステムのような、オブジェクト３５０の複数のサブセクション、マイクロソフトワード（登録商標）のようなユーザインターフェイス・ソフトウェアシステムなどは同時に存在して、プロセッサ３１０内でオペレーションを実行することができる。本発明の実施形態はプロセッサ３１０にセキュリティレベルアクセスと特権を与える。
【００１７】
オブジェクト３５０から提供されたソフトウェアコードの実行に応答して、１以上のオブジェクト３５０の開始によって起動されたタスクを実行するために、プロセッサ３１０は１以上のメモリアクセスを実行する。プロセッサ３１０によって実行されるメモリアクセスは、実行（execution）コードの記憶のためのメモリ位置へのアクセスと、記憶されたメモリ位置からデータを取得するためのメモリアクセスとを含む。しばしば、特定のメモリ位置に記憶された特定のデータに対するアクセスが、選択されたいくつかのオブジェクト３５０の一つによって制限される。本発明の実施形態は、システム２００内の特定メモリ位置へのアクセスを制限する、マルチテーブルセキュリティアクセスを提供する。プロセッサ３１０は、メモリアクセスインターフェイス３２０を介して、メモリアクセスを実行する。メモリアクセスインターフェイス３２０はメモリ装置３４０に対するアクセスを提供する。メモリ装置３４０は、物理メモリ３４５と、仮想メモリ３４２とを含む（すなわち、物理メモリは、本発明の開示による利益を得た当業者に知られている仮想メモリ技術を用いて組織されている）。本発明の少なくとも一つの実施形態において、マルチテーブル仮想メモリアクセスプロトコルが提供される。
【００１８】
図４は、本発明に従ったメモリアクセスインターフェイス３２０の一実施形態のブロック図である。一実施形態において、メモリアクセスインターフェイス３２０は、仮想メモリアクセステーブル４１０と、２次テーブル４３０とを含む。本発明の実施形態は、仮想メモリシステムを用いたメモリアクセスの実行を提供する。本発明の実施形態において用いられる仮想メモリシステムは、マルチレベルテーブルアドレッシング機構（すなわち、２次テーブル４３０とともに仮想メモリアクセステーブル４１０を用いる）を使用して、仮想メモリアドレスにアクセスする。所望の物理メモリ位置を示すのに、仮想メモリアドレスがプロセッサ３１０によって使用される。
【００１９】
仮想メモリアドレスを定義するのに、システム２００は仮想メモリアクセステーブル４１０を、２次テーブル４３０のような、少なくとも一つの他のテーブルとの組み合わせで用いる。仮想メモリアクセステーブル４１０および２次アクセステーブル４３０は物理メモリアドレスに繋がる仮想メモリアドレス（リニアアドレス）を変換するのに使用される。物理メモリアドレスは、物理メモリ３４５内のメモリ位置を指し示す。本発明の実施形態によって提供されるマルチレベルメモリテーブルシステムは、２次テーブル４３０が仮想メモリアクセステーブル４１０のセクション全体を定義することを可能にする。ある場合には、２次テーブル４３０は、仮想メモリアクセステーブル４１０には存在していない可能性のある仮想メモリアドレスの一部を定義する。２次テーブル４３０は、仮想メモリアクセステーブル４１０によって生成される仮想メモリアドレスをもとにして、物理メモリ位置をさらに定義するための精密調整装置として用いることができる。これによって、より正確な、そして高速な仮想メモリアドレスの定義ができるようになる。
【００２０】
一実施形態において、図３に示すように、複数のサブセットテーブルをそのなかに含む２次テーブル４３０が、物理メモリ３４０またはシステム２００のメインメモリ（図示せず）に記憶される。保証されていない（unsecured）または未証明の（unverified）ソフトウェア構造またはオブジェクト３５０が２次テーブル４３０へのアクセスを得ることを防ぐために、２次テーブル４３０は高いセキュリティレベルで記憶される。一実施形態において、プロセッサ３１０は、あるオブジェクト３５０から送られた命令に基づいて、物理メモリ３４５のある位置に対するアクセスを要求する。プロセッサ３１０からのメモリアクセス要求に応答して、メモリアクセスインターフェイス３２０は仮想メモリアクセステーブル３１０に仮想メモリアドレスを生成するように指示する。仮想メモリアドレスは、２次テーブル４３０によって、さらに規定される。次に、仮想メモリアドレスは仮想メモリ３４２内の位置を指し示す。次に、プロセッサ３１０は仮想メモリ位置に対するアクセスを要求する。仮想メモリ位置は次に物理メモリ３４５内の対応する位置を決定するために用いられる。
【００２１】
プロセッサ３１０によって実行されるメモリアクセスを実行するための一実施形態を、図５Ａ、図５Ｂに図示し、以下で説明する。図５Ａに、データプロセッサまたはコンピュータシステム内にセキュリティレベル属性を記憶し、読み出すためのメモリシステム５００の一実施形態を示す。一実施形態において、メモリシステム５００はシステム２００の処理装置２１０内に統合される。メモリシステム５００は、メモリにアクセスするのに仮想アドレス指定構造を使用するデータプロセッサ（図示せず）において便利である。例えば、メモリシステム５００は、ｘ８６タイプのマイクロプロセッサに実装されているページングの仕組みのような、ページングの仕組みを用いてメモリのアドレス指定を行うときに、プロセッサ３１０によって使用される。一実施形態において、ｘ８６システムでは、一つのメモリページは４Ｋバイトのメモリを含む。さらに、メモリシステム５００は、ページレベルで適切なセキュリティレベル属性を割り当てる、プロセッサ３１０の特定のアプリケーションをもたらす。
【００２２】
メモリシステム５００は、ｘ８６タイプのマイクロプロセッサのページング装置によって受信されうる仮想、リニア、中間（intermediate）アドレスとは対照的に、ページ部５１０とオフセット部５２０とから構成される物理アドレス５５３を受信する。一実施形態において、ページ部５１０のデータは適切なメモリページをアドレスし、オフセット部５２０のデータは選択されたページ部５１０内の特定のオフセットメモリ位置をアドレスする。メモリシステム５００は、ｘ８６タイプのマイクロプロセッサ内のページング装置（図示せず）によって生成されるような、物理アドレス５５３を受信する。
【００２３】
一般的に拡張セキュリティ属性テーブル（extended security attributes table; ESAT）と呼ばれる、マルチレベル・ルックアップテーブル５３０は物理アドレスのページ部５１０を受信する。マルチレベル・ルックアップテーブル５３０は、メモリの各ページに関係するセキュリティ属性を記憶する。すなわち、各ページは、そのページに関連づけられた、特定のセキュリティレベル属性を有する。一実施形態において、ページに関連づけられたセキュリティ属性はマルチレベル・ルックアップテーブル５３０に記憶される。例えば、各ページに関連づけられたセキュリティ属性は、ルックダウン（look down）、セキュリティコンテクスト（security context）ID、ライトウェイトコールゲート（lightweight call gate）、リードイネーブル（read enable）、ライトイネーブル（write enable）、エグゼキュート（execute）、エクスターナル・マスターライト・イネーブル（external master write enable）、エクスターナル・マスターリード・イネーブル（external master read enable）、エンクリプトメモリ（encrypt memory）、セキュリティ・インストラクション・イネーブルド（security instructions enabled）などを含む。これらの属性の多くは、本明細書の開示の利益を得た当業者には既知のものである。
【００２４】
一実施形態において、マルチレベル・ルックアップ・テーブル５３０はシステム２００のシステムメモリ（図示せず）に配置されている。代替の実施形態においては、マルチレベル・ルックアップ・テーブル５３０は、システム２００を使用するマイクロプロセッサを含むプロセッサ３１０に統合される。従って、マルチレベル・ルックアップ・テーブル５３０が動作可能な速度は、少なくとも部分的には、システムメモリの速度に依存する。システムメモリの速度は、プロセッサ３１０の速度に比較すると、通常は相対的に遅い。従って、マルチレベル・ルックアップ・テーブル５３０を使用してセキュリティ属性を読み出すプロセスは、システム２００の全体としての動作を遅くする。セキュリティ属性を見つけて、読み出すのに必要な時間を短縮するために、マルチレベル・ルックアップ・テーブル５３０に並列にキャッシュ５４０が実装される。キャッシュ５４０は、プロセッサ３１０と同じ半導体ダイ上に配置することもできるし（すなわち、キャッシュとプロセッサ３１０とが一つの半導体チップ上に集積される）、プロセッサダイの外に配置することもできる。一般的には、キャッシュ５４０の速度は、マルチレベル・ルックアップ・テーブル５３０の速度よりも実質的に速い。キャッシュ５４０は、ページのより小さなサブセットおよびマルチレベル・ルックアップ・テーブル５３０内に含まれるそれらのセキュリティ属性を含む。従って、キャッシュ５４０に記憶されたページについては、セキュリティ属性を読み出す動作が実質的に強化される。
【００２５】
図５Ｂに、メモリ内のあるページに関連づけられたセキュリティ属性を記憶し、読み出すのに使用されるマルチレベル・ルックアップ・テーブル５３０の一実施形態を示す。マルチレベル・ルックアップ・テーブル５３０は、一般にESATディレクトリと呼ばれる第１テーブル５５０、および一般にESATと呼ばれる第２テーブル５５２を含む。通常、第１テーブル５５０は、複数のESAT５５２についての開始アドレスのディレクトリを含み、その中には各ページのセキュリティ属性が記憶される。ここで説明した実施形態では、メモリ全体をマップするのに単一のESATディレクトリ５５０が使用される。
【００２６】
最高次ビットを含み、一般にディレクトリ（DIR）５５４と呼ばれる、物理アドレス５５３の第１部分は、第１テーブル５５０へのポインタとして使われる。物理アドレス５５３はまた、アドレスされているテーブル５５０，５５２を特定することができる、テーブルデータ５７０を含む部分を有する。物理アドレス５５３はさらにテーブル５５０，５５２内に、特定のエントリー５６０，５８０へとつながる、オフセット５２０を含む。第１テーブル５５０は、システムメモリ内の基準アドレス５５５に配置されている。物理アドレス５５３のDIR部分５５４が基準アドレス５５５に加えられてエントリー５６０を特定し、それは第２テーブル５５２のなかの一つの適切なアドレスの基準アドレスを指す。一実施形態において、複数の第２テーブル５５２をマルチレベル・ルックアップ・テーブル５３０内に配置することができる。通常、第１テーブル５５０のエントリー５６０のそれぞれは、第２テーブル５５２内の複数のアドレスのうちの一つの開始アドレスを指す。すなわち、各エントリー５５５は独自の別々のESAT５５２を指し示すことができる。
【００２７】
一実施形態においては、第１テーブル５５０および複数の第２テーブルのそれぞれは、物理メモリ３４５の１ページを占有する。従って、ページングがイネーブルにされた、ｘ８６タイプのマイクロプロセッサ内の従来型メモリ管理装置が、必要に応じてシステムメモリに対してテーブル５５０，５５２をスワップによって出し入れすることができる。つまり、テーブル５５０，５５２のマルチレベル構成によって、メモリシステム５００を正しく動作させるために、テーブル５５２のすべてが物理メモリ３４５に同時に配置する必要がない。もし、物理メモリ内に現在配置されていないテーブル５５２の一つが、第１テーブル５５０のあるエントリー５６０によって要求されたとすると、ｘ８６マイクロプロセッサの従来型メモリ管理装置（図示せず）が、ハードディスクドライブなどの主記憶からそのページを読み出し、システムメモリ内のアクセス可能な場所に要求されたページ５５２を記憶する。このテーブル５５０，５５２の１ページサイジングが、マルチレベル・ルックアップ・テーブル５３０を記憶するのに必要なシステムメモリの量を減らし、テーブル５５０，５５２を使用してメモリにアクセスするのに必要なメモリスワップの回数を減らす。
【００２８】
一実施形態において、各ページのサイズは４Kバイトであり、システムメモリの合計は１６Mバイトである。従って、おおよそ４０００のESATテーブル５５２が１ページ内に配置される。一実施形態では、４０００のESATテーブル５５２のそれぞれは、４０００セットのセキュリティ属性を包含することができる。さらに、ESATディレクトリ５５０は４０００のESATテーブル５５２のそれぞれについての開始アドレスを含む。第１テーブル５５０のエントリー５６０は、適切な第２テーブル５５２の基準アドレスを指し示す。適切な第２テーブル５５２内の好適なエントリー５８０が、物理アドレス５５３の第２部分５５２（テーブル部）をエントリー５６０に含まれる基準アドレス５５５に加えることによって特定される。一実施形態において、エントリー５８０は、物理メモリ３４５内の特定されたページに関連づけられた所定のセキュリティ属性を含む。図５Ａ、図５Ｂに示されたマルチテーブル構成は例示のための実施形態であって、この開示の利益を得た当業者であれば、本発明に従った様々なマルチテーブル構成を実現することができるであろう。
【００２９】
図６は、本発明の一実施形態に従った方法の流れ図である。システム２００によってオブジェクト３５０が開始される（ブロック６１０）。特定のソフトウェアプログラム（例えば、マイクロソフトワード（登録商標））などのオブジェクト３５０が、マウス２４０などの入出力装置のアクティべーションによって開始される。オブジェクト３５０がシステム２００によって開始されると、プロセッサ３１０はオブジェクト３５０によって供給されたコードを実行する（ブロック６２０）。次に、システム２００は、オブジェクト３５０についての所定のセキュリティレベルに基づいてセキュリティレベルを確立する（ブロック６３０）。次に、システム２００はマルチテーブルメモリ／リソースアクセスを実行する（ブロック６４０）。システム２００によって実行される、このマルチテーブルメモリ／リソースアクセスについては、以下で詳細に説明する。確立されたセキュリティレベルおよびシステム２００によって実行されるマルチレベルメモリ／リソースアクセスに基づいて、次にオブジェクト３５０の機能が実行される。オブジェクト３５０の機能には、文書作成、無線モデムなどのモデムによって開始される通信の実行などが含まれる（ブロック６５０）。
【００３０】
図７は、図６のブロック６４０で説明した、マルチテーブル・メモリ／リソースアクセスを実行する一実施形態の流れ図である。システム２００は、２次テーブル設定機能を実行する（ブロック７１０）。２次テーブルの設定には、２次テーブル４３０におけるセキュリティレベルデータの設定および／または更新が含まれる。２次テーブル４３０は、仮想メモリアクセステーブル４１０内の複数のセクションを定義するために使用することができる。２次テーブル４３０は、仮想メモリアクセステーブル４１０からは消えている、テーブルエントリー（例えば、図５Ｂの５６０，５８０）のセクション全体に関連するデータを含むことができる。
【００３１】
一実施形態においては、システム２００は物理メモリ３４５をページに分割して、プロセッサ３１０はページに基づいて物理メモリ３４５にアクセスする。一実施形態では、ページは、ｘ８６プロセッサと互換性をもつように、４Ｋバイトのメモリセクションに定義される。仮想メモリアクセステーブル４１０および２次テーブル４３０は、テーブル４１０，４３０へのインデックスを含む。これらのインデックスは、物理メモリ３４５の特定部分を示すのに用いられる、物理アドレス５５３を計算するのに使用可能である。プロセッサ３１０によって実行される、テーブル４１０，４３０を用いたメモリへのアクセスについては、以下でさらに詳しく説明する。
【００３２】
システム２００が２次テーブル４３０を設定すると、システム２００はプロセッサ３１０からのメモリアクセス要求をチェックする（ブロック７２０）。プロセッサ３１０からのメモリアクセス要求は、通常、オブジェクト３５０から促される。いくつかのオブジェクト３５０は、それらのタスク、例えばモデムを介した通信の開始、特定の文書に関するデータの読み込みなどを実行するのに、大規模なメモリアクセスを必要とする。システム２００は、メモリアクセス要求が受信されたかどうかを決定する（ブロック７３０）。システムがメモリアクセス要求が受信されていないと決定したとき、システム２００は、図７のブロック７３０からブロック７２０へ戻る経路によって示されるように、メモリアクセス要求のチェックを継続する。
【００３３】
システム２００がメモリアクセスが要求されたと決定したとき、システム２００は、本発明の一実施形態に従って、マルチレベルテーブルアクセスを実行する（ブロック７４０）。このシステムによって実行されるマルチレベルテーブルアクセスのさらに詳細な説明を以下で行う。システムがブロック７４０で説明したマルチテーブルアクセスを実行すると、次にシステム２００はマルチレベル・テーブルアクセスに応答して、適切なメモリアクセスを許可する（ブロック７５０）。すなわち、システム２００は、メモリ要求をプロセッサ３１０に要求することを促したオブジェクト３５０に、プロセッサ３１０によって要求された物理メモリ３４５のアクセスを実際に獲得することを許可する。
【００３４】
図８に、図７のブロック７１０に示された、２次テーブル４３０を設定する方法の一実施形態を示す。システム２００は物理メモリ３４５を複数のセグメントに分割する。これらのセグメントはしばしばメモリページと呼ばれる。一実施形態においては、セグメント／ページは、４キロバイトに相当するメモリに分割される（ブロック８１０）。一実施形態においては、物理メモリ３４５の４Ｋバイトセグメントへの分割は、この開示の利益を得た当業者に既知のハードウェアプロセスによって実行することが可能である。代替の実施形態においては、物理メモリ３４５のセグメントへの分割は、この開示の利益を得た当業者に既知のソフトウェア技術を用いて実行可能である。
【００３５】
システム２００はどのセグメントを２次テーブル４３０から削除する（省く）かを決定し、削除機能を実行する（ブロック８２０）。２次テーブル４３０から削除されたセグメントは、デフォルトのセキュリティレベルを割り当てることが可能なメモリページである。削除されたセグメントは、ブロードレベルまたはローレベルのセキュリティレベルを割り当てることが可能なメモリページを含む。従って、システム２００は、削除されたセグメントにデフォルトのセキュリティレベルを割り当てる（ブロック８３０）。削除されたセグメントには最も低いセキュリティレベルが割り当てられるので、削除されたセグメントは事実上、プロセッサ３１０にメモリへのアクセスを促す任意のソフトウェアオブジェクト３５０からアクセスされうる。
【００３６】
次に、システム２００は、物理メモリ３４５内の削除されなかったセグメント／ページのそれぞれに対応する、セキュリティレベルを割り当てる（ブロック８４０）。システム２００は、プロセッサ３１０を介した特定のオブジェクト３５０による予想されるアクセスに基づいて、メモリページにセキュリティレベルを割り当てる。システム２００は、削除されていないセグメント／ページに適切なセキュリティレベルを割り当てる一方で、処理装置２１０内の特定のハードウェア装置および他のメモリ位置を保護する。
【００３７】
セキュリティレベルが割り当てられると、システム２００は特定のセグメント／ページを仮想メモリ３４２に対して関係付ける（ブロック８５０）。仮想メモリアドレスは、特定のセキュリティレベルに基づいて、特定の物理メモリセグメント３４５を指し示すことができる。次に、システム２００は、仮想メモリ３４２の物理メモリ３４５のセグメントに対する関係（correlation）を利用して、マルチレベル２次テーブル４３０を作成する（ブロック８６０）。一実施形態では、メモリリソースを節約するために、２次テーブル４３０内の特定のスペースが削除される。上述したように、削除されたメモリ位置にはデフォルトのセキュリティレベル（通常は最低のセキュリティレベル）が割り当てられる。
【００３８】
図９に、図７のブロック７４０で示した、マルチレベル・テーブルアクセス・プロセスを実行する一実施形態を示す。メモリアクセス要求を受信した後、システム２００は、要求されたメモリアクセスに応答して、２次テーブル内のセキュリティレベルを決定する（ブロック９１０）。システム２００は、プロセッサ３１０内でソフトウェアの実行を開始したオブジェクト３５０のタイプに関するプロセッサ３１０に対する指示に応答して、メモリアクセスに基づいて、２次テーブル４３０内のセキュリティレベルを決定する。特定のソフトウェアオブジェクト３５０は、メモリ内の特定の重要データへのアクセス、および／または処理装置３１０内の入出力装置へのアクセスを許可する、より高いレベルのセキュリティアクセスを必要とする。例えば、データの通信転送を必要とするソフトウェアオブジェクト３５０は、処理装置３１０からの重要データにアクセスするために、高いセキュリティレベルをクリアする必要がある。対象的に、マイクロソフトワード（登録商標）などのデータプロセッサ機能を実行するソフトウェアオブジェクト３５０は、そのタスクを実行するのに、低いレベルのセキュリティをクリアすればよい。
【００３９】
次に、システム２００は、メモリアクセス要求を開始した、ソフトウェアオブジェクト３５０の実行セキュリティレベル（execution security level）およびメモリアクセスの対象となるページのセキュリティレベルを審査する（ブロック９２０）。プロセッサ３１０は、現在実行しているソフトウェアオブジェクト３５０のセキュリティレベルと、メモリアクセスの対象となるページのセキュリティレベルとを、それらが合致するかどうか（つまり、要求されたメモリアクセスを許可するかどうか）を決定するために比較する。これによって、物理メモリ３４５内の特定の重要データへのアクセスが許可されない特定のソフトウェアが、特定のメモリ位置にアクセスしたり、制御したりすることを防止する。次に、システム２００は、適切なセキュリティレベルを、ソフトウェアオブジェクト３５０によって開始された特定のアクセス要求に対して関係付ける（ブロック９３０）。
【００４０】
次に、システム２００は、２次テーブルアドレスを、物理メモリ３４５内の位置に対応する仮想メモリ３４２に関係付ける。システム２００は物理メモリ３４５の位置を特定し、適切なセキュリティレベルを物理メモリページに関係付ける（ブロック９５０）。一実施形態において、メモリアクセスインターフェイス３２０は、仮想メモリ３４２の追跡および仮想メモリ３４２と物理メモリ３４５内の位置との関係付けを実行する。
【００４１】
図１０は、図９のブロック９１０に示すように、プロセッサ３１０のメモリアクセス要求に応答して、２次テーブル４３０内のセキュリティレベルを決定する一実施形態を示す。システム２００は、仮想メモリアクセステーブル４１０からのメモリアクセス要求に応答して、物理アドレス５５３を決定する（ブロック１０１０）。次に、システム２００が、ソフトウェアオブジェクト３５０に応答して、プロセッサ３１０によって現在実行されているメモリセグメント／ページの位置を、物理アドレス５５３をもとに特定する（ブロック１０２０）。ソフトウェアオブジェクト３５０に基づいたコードを実行しているとき、システム２００はプロセッサ３１０が実行をしているページのセキュリティレベルを判定する。それによって、現在のセキュリティレベルを決定することができる。従って、システム２００はセキュリティレベルを決定するのに、メモリセグメント／ページを効率的に使用する（ブロック１０４０）。次に、システム２００は、決定されたセキュリティレベルをプロセッサ３１０に送り、正当なメモリアクセスを実行する（ブロック１０３０）。図１０に示したステップを完了すると、図９のブロック９１０に示されたように、２次テーブル内のセキュリティレベルを決定するステップは実質的に完了する。
【００４２】
図１１に、図７のブロック７５０に説明した、適切なメモリアクセスを実行するためのステップの一実施形態の流れ図を示す。システム２００は、特定のメモリアクセス要求に対応するセキュリティレベルをチェックする（ブロック１１１０）。セキュリティレベルは、プロセッサ３１０によって実行されている特定のソフトウェアオブジェクト３５０に基づいて、特定のメモリ要求に関係付けることができる。次に、システム２００はメモリ／リソースへのアクセスを許可するのに十分なセキュリティレベルかどうかを判定する（ブロック１１２０）。システム２００は、セキュリティレベルの認可が、プロセッサ３１０から要求されているメモリアクセスを許可し、特定のメモリ位置へのアクセス得るのに適当かどうかをチェックする。
【００４３】
システム２００が、プロセッサ３１０からの特定のメモリアクセス要求に基づいて、メモリ／リソースアクセスを許可するには、セキュリティレベルが十分高くないと判定したときは、システム２００は要求されたメモリ／リソースアクセスを拒否する（ブロック１１４０）。システム２００が、要求されたメモリ／リソースアクセスを許可するのに、セキュリティレベルは十分足りていると判定したときは、システム２００は、プロセッサ３１０またはソフトウェアオブジェクト３５０に対し、物理メモリ３４５内の特定のメモリ位置へのアクセスを獲得するのを許可する（ブロック１１３０）。図１１に示したステップを完了すると、図７のブロック７５０に示されたように、適切なメモリアクセスを許可するプロセスは実質的に完了する。本発明によって教示される原理は、他のタイプの自動化フレームワークにも採用することができる。
【００４４】
上述の特定の実施形態は例示の目的のためだけのものであり、本明細書の教示の利益を得た当業者には明らかなように、異なってはいるが、均等なやり方で、本発明を変形し、実施することが可能である。さらに、添付の特許請求の範囲に記載した以外に、ここに開示した構造または設計の細部にまで限定することを意図していない。従って、上述の特定実施形態は変更され、または変形されうるが、そのような変形物のすべては本発明の範囲および精神の範囲内であると考えられることは明白である。従って、保護が求められる範囲は、添付の特許請求の範囲に記載される。
【図面の簡単な説明】
【００４５】
【図１】コンピュータシステムのセキュアアクセスのための複数の特権レベルを表した図。
【図２】本発明の一実施形態に従って用いることが可能なコンピュータシステムのブロック図。
【図３】本発明の一実施形態に従った、図２に示された処理装置のさらに詳細なブロック図。
【図４】本発明の一実施形態に従った、図３に示したメモリアクセスインターフェイスのさらに詳細なブロック図。
【図５Ａ】図１ないし４に示されたプロセッサによって実行されたメモリアクセスのブロック図。
【図５Ｂ】図１ないし４に示されたプロセッサによって実行されたメモリアクセスのブロック図。
【図６】本発明の一実施形態に従った、セキュリティ構造を用いたメモリアクセスを実行する方法の流れ図。
【図７】本発明の一実施形態に従った、図６に示したマルチテーブル・メモリアクセスを実行する方法の流れ図。
【図８】本発明の一実施形態に従った、図７で説明した２次テーブルを設定する方法の流れ図。
【図９】本発明の一実施形態に従った、図７で説明したマルチレベル・テーブルアクセスを実行する方法の流れ図。
【図１０】本発明の一実施形態に従った、図９で説明した２次テーブル内のセキュリティレベルを決定する方法の流れ図。
【図１１】本発明の一実施形態に従った、図７で説明したマルチレベル・テーブルアクセスに応答した、適切なメモリアクセスを促進する方法の流れ図。
【図１】
2005508039.tif 000003
【図３】
2005508039.tif 000004
【図４】
2005508039.tif 000005
【図５Ａ】
2005508039.tif 000006
【図５Ｂ】
2005508039.tif 000007
【図６】
2005508039.tif 000008
【図７】
2005508039.tif 000009
【図８】
2005508039.tif 000010
【図９】
2005508039.tif 000011
【図１０】
2005508039.tif 000012
【図１１】
2005508039.tif 000013
【国際公開パンフレット】
2005508039.tif 000014
2005508039.tif 000015
2005508039.tif 000016
2005508039.tif 000017
2005508039.tif 000018
2005508039.tif 000019
2005508039.tif 000020
2005508039.tif 000021
2005508039.tif 000022
2005508039.tif 000023
2005508039.tif 000024
2005508039.tif 000025
2005508039.tif 000026
2005508039.tif 000027
2005508039.tif 000028
2005508039.tif 000029
2005508039.tif 000030
2005508039.tif 000031
2005508039.tif 000032
2005508039.tif 000033
2005508039.tif 000034
2005508039.tif 000035
2005508039.tif 000036
2005508039.tif 000037
2005508039.tif 000038
2005508039.tif 000039
【国際公開パンフレット（コレクトバージョン）】
2005508039.tif 000040
【手続補正書】
【提出日】平成16年1月6日(2004.1.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウェアオブジェクト（３５０）を実行するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に関連してメモリアクセスを実行するために物理アドレスを関連づけるステップと、
前記物理アドレスを用いて、前記ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立するステップと、
２次テーブル（４３０）を提供するステップと、
前記２次テーブル（４３０）を使用して、前記ソフトウェアオブジェクト（３５０）の実行に関連して前記メモリアクセスを実行するために、前記セキュリティレベルを使用して、マルチテーブル・メモリアクセスを実行するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に関連した機能を実行するステップとを含む方法。
【請求項２】
前記ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立するステップは、メモリの少なくとも一部のメモリアクセスに関するセキュリティレベルを割り当てるステップをさらに含む、請求項１記載の方法。
【請求項３】
前記セキュリティレベルを使用してマルチテーブル・メモリアクセスを実行するステップは、さらに
２次テーブル（４３０）を確立するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に基づいて、メモリアクセス要求を受信するステップと、
前記メモリアクセス要求に基づいて、前記２次テーブル（４３０）および少なくとも一つの仮想メモリテーブル（４１０）を用いて、マルチレベル・テーブルアクセスを実行するステップと、
前記マルチレベル・テーブルアクセスに基づいて、メモリの一部にアクセスするステップとを含む、請求項１記載の方法。
【請求項４】
前記２次テーブル（４３０）を確立するステップはさらに、
物理メモリ（３４５）を複数のセグメントに分割するステップと、
前記２次テーブル（４３０）から削除する少なくとも一つの前記セグメントおよび削除されない少なくとも一つの前記セグメントを決定するステップと、
前記削除されたセグメントにデフォルトのセキュリティレベルを割り当てるステップと、
前記削除されないセグメントにあるセキュリティレベルを割り当てるステップと、
少なくとも一つの割り当てられたセグメントを仮想メモリ位置に関係付けるステップとを含む、請求項３記載の方法。
【請求項５】
前記メモリアクセス要求に基づいて、マルチレベル・テーブルアクセスを実行するステップは、さらに
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップと、
前記オブジェクト（３５０）の実行に応答して、実行セキュリティレベルと現在アクセスされているセグメントに係るセキュリティレベルの間の整合を検証するステップと、
前記実行セキュリティレベルと前記現在アクセスされているセグメントに係るセキュリティレベルの間の整合に応答して、前記２次テーブル（４３０）に基づいて仮想メモリアドレスを決定するステップと、
前記仮想メモリアドレスに対応する物理メモリ位置を特定するステップとを含む、請求項３記載の方法。
【請求項６】
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップは、
前記仮想メモリテーブル（４１０）から物理アドレス（５５３）を決定するステップと、
前記物理アドレス（５５３）に基づいて、実行されているセグメントを判定するステップと、
前記実行されているセグメントを判定するステップに基づいて、現在のセキュリティレベルを定義するステップとを含む、請求項５記載の方法。
【請求項７】
仮想メモリアクセスを実行する装置であって、
バス（３１５）に結合されたプロセッサ（３１０）と、
少なくとも一つのソフトウェアオブジェクト（３５０）を前記プロセッサ（３１０）に結合するための手段と、
メモリ装置（３４０）と、
前記バス（３１５）および前記メモリ装置（３４０）に結合され、メモリアクセスを提供するために物理アドレスを関連付けるように構成され、少なくとも一つのセキュリティレベルに基づいて、前記ソフトウェアオブジェクト（３５０）を実行している前記プロセッサ（３１０）に応答して、前記プロセッサ（３１０）に前記物理アドレスに関連したマルチレベル・テーブルメモリアクセスを提供するように構成されたメモリアクセスインターフェイス（３１５）とを備える装置。
【請求項８】
前記メモリアクセスインターフェイス（３１５）は、２次テーブル（４３０）に結合された仮想メモリアクセステーブル（４１０）を含み、前記メモリアクセスインターフェイス（３１５）は、セキュリティレベルに基づいて前記メモリ装置（３４０）の少なくとも一部にアクセスするために、仮想メモリアドレス指定の仕組みを提供する、請求項７記載の装置。
【請求項９】
コンピュータによって実行されたときに、ある方法を実行する命令を記憶した、コンピュータ読み取り可能なプログラム記録媒体であって、当該方法は、
ソフトウェアオブジェクト（３５０）を実行するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に関連してメモリアクセスを実行するために物理アドレスを関連づけるステップと、
前記物理アドレスに基づいて、前記ソフトウェアオブジェクト（３５０）についてのセキュリティレベルを確立するステップと、
２次テーブル（４３０）を確立するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に基づいて、メモリアクセス要求を受信するステップと、
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップと、
前記ソフトウェアオブジェクト（３５０）の実行に応答して、実行セキュリティレベルと現在アクセスされているセグメントに係るセキュリティレベルの間の整合を検証するステップと、
前記実行セキュリティレベルと前記現在アクセスされているセグメントに係るセキュリティレベルの間の整合に応答して、前記２次テーブル（４３０）に基づいて仮想メモリアドレスを決定するステップと、
前記仮想メモリアドレスに対応する物理メモリ位置を特定するステップと、
前記物理メモリ位置の特定に基づいて、メモリの一部にアクセスするステップと、
前記セキュリティレベルのうちの少なくとも一つを使用してマルチテーブル・メモリアクセスを実行するステップと、
前記オブジェクト（３５０）の前記機能を実行するステップとを含む、コンピュータ読み取り可能なプログラム記録媒体。
【請求項１０】
コンピュータによって実行されたときに、請求項９記載の方法を実行する命令を記憶した、コンピュータ読み取り可能なプログラム記録媒体であって、
前記２次テーブル（４３０）内のセグメントに対応する少なくとも一つのセキュリティレベルを決定するステップは、
前記仮想メモリテーブル（４１０）から物理アドレス（５５３）を決定するステップと、
前記物理アドレス（５５３）に基づいて、実行されているセグメントを判定するステップと、
前記実行されているセグメントを判定するステップに基づいて、現在のセキュリティレベルを定義するステップとを含む、コンピュータ読み取り可能なプログラム記録媒体。
【国際調査報告】
2005508039.tif 000041
2005508039.tif 000042