JP2005135396A - アドレス変換制御のためのシャドウ・ページテーブル - Google Patents
アドレス変換制御のためのシャドウ・ページテーブル Download PDFInfo
- Publication number
- JP2005135396A JP2005135396A JP2004289030A JP2004289030A JP2005135396A JP 2005135396 A JP2005135396 A JP 2005135396A JP 2004289030 A JP2004289030 A JP 2004289030A JP 2004289030 A JP2004289030 A JP 2004289030A JP 2005135396 A JP2005135396 A JP 2005135396A
- Authority
- JP
- Japan
- Prior art keywords
- page
- shadow
- directory
- memory
- pages
- 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.)
- Granted
Links
Images
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/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
Abstract
【解決手段】 所定のページの複数のバージョン、すなわちディレクトリーバージョン、テーブルバージョンおよびデータバージョンを格納する。データバージョンは、ソフトウェアオブジェクトがページに格納されると信じるデータを含む。ページのディレクトリーバージョンとテーブルバージョンは、仮想アドレスシステムによって使用されるアドレス変換マップ上の制限を満たすためのある方法で変更されたページの中身のバージョンを含む。ページが、ディレクトリーまたはテーブルとして仮想アドレスシステムによって使用されている場合、そのページのディレクトリーバージョンまたはテーブルバージョンの各々が使用される。ページが読み出しリクエストのターゲットである場合、ページのデータバージョンが使用される。
【選択図】 図5
Description
添付の図面とともに、以上の課題を解決するための手段と後述の発明を実施するための最良の形態を読むと、本発明をよりよく理解される。本発明を説明するために本発明の例示的な構成を図示するが、本発明は開示するこの特定の方法および手段には限定されない。
アドレス変換制御を使用して、メモリアクセス制御ポリシーに違反して使用されうる仮想アドレスマッピングを効果的に拒否することによって、メモリアクセス制御ポリシーを実装することができる。一般的に、アドレス変換制御は、アドレス変換マップを編集する際の試行に実質的な制限をかけることによって、このマップが安全なままであるように(このマップが、所与のソフトウェアのエンティティに対し、このエンティティによって立入禁止(または書き込み不可)となっているページへのリンク(または、書き換え可能なリンク)を見えないようにするという意味で)有効に働く。典型的には、マップを編集するためのリクエストを実行することが、このマップを望ましくない状態に置くかどうか判断するために、これらの実質的な制限が、このリクエストを評価することによって課せられる。望ましくない状態が起きる場合、要求されたリクエストを実行することが、要求された状態を維持するように、このリクエストは変更される。(例えば、結果的に、このポリシーの下で読み出し可能だが書き込み不可であるページへの読み出し/書き込みリンクとなるマップを編集するためのリクエストを、読み出し専用としてこのリンクをマークするように変更することができる。)この技術に関する問題は、ソフトウェアの正しい振る舞いが、ときには、このソフトウェアがメモリに書き込んだと信じる値を含んでいるメモリに依存するということである。(例えば、チェックサムをヴェリファイする場合では)リクエストを変更することは、ソフトウェアが書き込んだと信じる値とは異なる値をメモリに含ませる原因となる。本発明は、ページマップのページとして使用するページの異なる複数のバージョン、すなわち、ソフトウェアオブジェクトにさらされたデータバージョン、および、マップの安全性を壊さずに、アドレス変換処理の一部として使用することができる1または複数のマップバージョン、を保持することによってこの問題に対処する。このようなページのデータバージョンへのマップは、読み出し専用にされる。結果、このページへの書き込みは、異なるバージョンが同期するようにページを編集することができるATCによって遮られる。
図1は、本発明の諸態様を実施することができる例示的なコンピューティング環境を示している。コンピューティングシステム環境100は適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関するいかなる限定を示唆することも意図したものでもない。また、このコンピューティング環境100は、例示的オペレーティング環境100の中に示すいかなるコンポーネントの1つまたは組合せに関し、なんらかの依存性も要件ももつとは解釈されるべきではない。
図2は、仮想アドレスシステムの一例を示している。図2に描かれた例は、ページ型の仮想アドレススキームである。ただしこれは、セグメンテーションのように、仮想アドレッシングが他のモデルに基づくことができることを理解されるであろう。図2に示すスキームは、インテル(登録商標)x86プロセッサ上で利用できる仮想アドレッシングスキームの1つなどの2レベルのアドレススキームである。このスキームは、下記のように、1つが、仮想ページ識別子を物理ページに変換するために、2つのレベルの手段を使用しなければならないという意味で“2レベル”である。
読み出し専用のビット306は、エントリーの最終のターゲットであるデータページが、読み出し/書き込み(この場合、ビットはクリアされている)として扱われるべきであるかまたは読み出し専用(この場合、ビットはセットされている)として扱われるべきであるかを示す。もし、ターゲットのデータページが読み出し専用である場合、そのページへの書き込みリクエストは、失敗する。(MMU220を使用して、ページの読み出し専用の状態を守らせることができる。)この読み出し専用ビットは、ディレクトリーのエントリーとテーブルのエントリーの両方に存在することができる。もし、データページへ最後に導かれるディレクトリーおよびテーブルのリンクが、各々の読み出し専用ビットに関し競合する設定となっている場合、競合解決ルールが使用され、ターゲットのデータページが読み出し/書き込みか読み出し専用かを判断することができる。例えば、競合ルールは、ページが読み出し/書き込みとして扱われるために、そのページへ導くディレクトリーのリンクおよびテーブルのリンクの両方が、読み出し/書き込みにマークされなければならない(両方のエントリー中の読み出し専用ビット306がクリアされなければならない)ことを提示することができる。同じページが、マップを通した異なるパスによって到達可能となることができる。そして、このページが読み出し/書き込みとして扱われるかまたは読み出し専用として扱われるかは、どのパスがそのページに到達するために使用されるかに依存するかもしれない。
図2から3に関連して説明した仮想アドレススキームの一つの特徴は、そこが、対応する仮想アドレスの存在しない物理メモリの一部であることが可能であることである。この所見の結果は、メモリのどの部分が与えられても、アドレス変換マップがメモリのその部分へ導かないことを保証することによって、メモリのその部分へのアクセスを禁止することができるということである。実際には、そのメモリ位置が仮想アドレスをもたないので、立入禁止区域にレンダリングされる(renderd)。(多くのシステム(インテル(登録商標)x86プロセッサなど)では、ほとんどすべてのメモリアクセスリクエストは、仮想アドレスによって作成される。アクセスリクエストが、物理アドレスによって作成される制限された環境に対しては、パラレルアクセス制御メカニズムを使用することができる。)
・CR3は、D1の中にある。
・すべてのD1とD2のページは、適切なポリシーの下で読み出し可能である。
・D1ページからのどのスモールリンクもD2ページを指す。
・D2ページからのリンクはこのポリシーの下で読み出し可能なページを指す。
・書き込み有効なD2ページからのどの読み出し−書き込みリンクも、このポリシーの下で書き込み可能であり、かつDにはないページを指す。
・D1からのラージリンクのラージページのターゲットに含まれるどのスモールページも、このポリシーのもとで読み出し可能である。もし、このリンクが読み出し−書き込みである場合、スモールページもまた、このポリシーのもとで書き込み可能であってDには存在しない。
(1)リクエストを拒否する。または、
(2)不変条件が満たされ続ける形式にリクエストを変更する。
オプション(1)は、実際には、多数のアクセスリクエストを拒絶する必要があるという不利がある。これは、コンピュータシステムの機能を崩壊させる。しかしながら、オプション(2)では、ソフトウェアオブジェクトは、1つの値を1つの記憶位置に書き込むことになる。この記憶位置は、ソフトウェアオブジェクトが書き込んだと信じている値と異なる変更された値を最後には記憶することになりうる。前述のように、ソフトウェアの補正機能(チェックサム検証など)は、ソフトウェアがメモリに書き込んだと信じる実際の値を格納しているメモリに依存しうる。したがって、オプション(2)もまた、ソフトウェアの機能を崩壊させる。本発明は、1つのページの複数のバージョンを格納することによって、この問題に対処する。1つのバージョンは、プログラムがそのページに書き込んでいると信じる正確なデータを含んでいる。このページの他のコピーは、もし、アドレス変換処理において使用される場合、保持されるべき適切な不変条件をもたらすデータのバージョンを含んでいる。
本発明の一つの特徴によれば、ページの複数の表現が存在することができる。同じページの複数の表現は、プログラムがそのページに実際に書き込むデータを含むページのバージョン、およびページディレクトリーとページテーブルとして、アドレス変換処理において使用するのに安全である、ページの他の(「シャドウ(shadow)」)バージョンが存在することを保証する。この文脈において「使用するのに安全(Safe to use)」とは、ディレクトリー(または、場合によってはテーブル)としてのシャドウページの使用が、ATCシステムによって適用される不変条件が違反されることを引き起こさないであろうということを意味する。
ページd(x),t(x),およびm(x)は、ページx上で定義された変換を実行することによって作成される。以下に、それらの変換の好ましい実施形態を説明する。
ページが、より効率的に表されるのを可能にする最適化があるが、各ページの3つのコピー(すなわち、d(x),t(x),およびm(x))を格納することができる。第一に、もし、上述のアルゴリズムが、すでに格納されているバージョンと同一であるシャドウページを結果として作成する場合、シャドウページは、作成される必要は無い。したがって、ほとんどのページに対し、ページの1つのバージョンのみが格納される必要がある。どの場合においても、このようなページxに対し、d(x),t(x),およびm(x)のPFNはすべて同じである。
上述のように、インテル(登録商標)x86プロセッサ(ならびに様々な他のプロセッサ)は、ラージページの使用をサポートする。その場合、どのページテーブルも、仮想アドレスを物理アドレスに変換することに関係していない。上述のシャドウイングメカニズムにラージページを機能させるために、たとえ、このシャドウページテーブルがどの実ページテーブルとも対応しないとしても、1つのシャドウページテーブルを1つのラージページのために作成することができる。したがって、ページディレクトリーxが、ラージリンクを含む場合、そのページのディレクトリーバージョン(すなわち、d(x))を、xのラージリンクに対応するエントリーにスモールリンクを含むように作成することができる。このスモールリンクは、シャドウページテーブル(すなわち、t(x))を指す。そしてこのシャドウページテーブルは、ラージページを作り上げる個々のスモールページへのリンクを含む。上述のシャドウイングアルゴリズムの一部は、特定のページを読み出し専用としてマークすることを含むので、ラージページをスモールページに解体することは、全ラージページを読み出し専用ページとしてマークしなければならないことを回避する。ラージページの一部である個々のスモールページは、必要なら読み出し専用にマークすることができる。(読み出し専用としてラージページをマークすることの不利益は、そのようなページへの各書き込みリクエストが例外を生成し、その書き込みが該当する不変条件に違反することなしに行われることができるかどうか判断するために、より特権的なコンポーネント(例えば、ATCを実行するコンポーネント)によって評価されなければならないという点である。この方法で処理されるべきラージページへの各書き込みリクエストを要求することは、システムパフォーマンスをきわめて低下させる可能性がある。)
110 コンピュータ
120 処理装置
121 システムバス
130 システムメモリ
131 ROM
132 RAM
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 その他のプログラムモジュール
137 プログラムデータ
140 固定、不揮発性のメモリ用インターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 その他のプログラムモジュール
147 プログラムデータ
150 取外し可能な不揮発性のメモリ用インターフェース
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク(LAN)
172 モデム
173 ワイドエリアネットワーク(WAN)
180 リモートコンピュータ
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
Claims (24)
- アドレス変換マップのためのシャドウページを作成する方法を実行するためのコンピュータ実行可能命令をその上にエンコードしたコンピュータ読取り可能な媒体であって、
前記アドレス変換マップは、ページディレクトリーおよび複数のページテーブルを含み、前記ページディレクトリーは、複数のページテーブルへのリンクを含み、前記ページテーブルの各々は、複数のデータページへのリンクを含み、
前記ページディレクトリーおよび前記ページテーブルの各々は前記データページの1つに格納されてなり、前記方法は、
前記複数のページテーブルの少なくとも1つに対し、前記複数のページテーブルの1つに基づく第1のシャドウページテーブルを作成するステップであって、前記第1のシャドウページテーブルは、次の観点、すなわち、
前記第1のシャドウページテーブル中の少なくとも1つのエントリーが、前記複数のページテーブルの内の第1のページテーブルの中の、そのエントリーの対応するリンクと異なるデータページにリンクする点、および
前記第1のシャドウページテーブルは、前記複数のページの内の第1のページの中の対応するリンクが、読み出し/書き込みである1または複数の読み出し専用リンクを含む点において、前記複数のページテーブルの第1のページテーブルと異なるステップと、
前記ページディレクトリーに基づくシャドウページディレクトリーを作成するステップであって、前記ページディレクトリーは、前記複数のページテーブルの1つへのリンクを含み、前記シャドウページディレクトリーは、前記複数のページテーブルの前記1つへのリンクの代わりに前記シャドウページテーブルへのリンクを含むステップとを備えることを特徴とするコンピュータ読取り可能な媒体。 - ポリシーが、メモリへのアクセスを管理し、前記仮想アドレスに適用された前記アドレス変換マップに基づく前記メモリへのアクセスは、結果として前記ポリシーに違反することをもたらし、前記仮想アドレスに適用されない前記シャドウページディレクトリーおよび前記第1のシャドウページテーブルは、結果として前記ポリシー違反をもたらさない
ことを特徴とする請求項1に記載のコンピュータ読取り可能な媒体。 - 各前記データページは、メモリの特定のフレームに格納され、前記ページディレクトリーは第1のフレームに格納され、前記方法は、
前記第1のフレームと異なる第2のフレームにある前記ページディレクトリーのコピーを保持するステップと、
前記第1フレームにあるシャドウページディレクトリーを格納するステップとをさらに備えることを特徴とする請求項1に記載のコンピュータ読取り可能な媒体。 - 前記ページディレクトリーは、第1のサイズのページへのリンクを備え、前記第1のサイズのページは、複数の第2のサイズのページを備え、前記方法は、
前記複数の第2のサイズのページへのリンクを含む第2のシャドウページテーブルを作成するステップであって、前記シャドウページディレクトリーは、前記第2のシャドウページテーブルへのリンクを含むステップをさらに備えることを特徴とする請求項1に記載のコンピュータ読取り可能な媒体。 - 複数の、個々にアドレス割り当て可能な、読み出し・書き込み可能な構成要素を備えるメモリであって、前記個々にアドレス割り当て可能な構成要素の各々は、それに関係付けられる物理アドレスを有するメモリと、
仮想アドレスおよび前記個々にアドレス割り当て可能な構成要素の前記物理アドレス間のマッピングを定義するアドレス変換データ構造と、
前記個々にアドレス割り当て可能な構成要素の内の第1の構成要素にアクセスするためのリクエストを受けるメモリマネジャーであって、前記リクエストは、仮想アドレスに基づく個々にアドレス割り当て可能な前記構成要素の内の前記第1の構成要素を特定する前記リクエストとを備え、
前記メモリマネジャーは、アドレス変換構造のシャドウ表現を含むデータに基づく構成要素であって個々にアドレス割り当て可能な構成要素の内の前記第1の構成要素の物理アドレスに前記仮想アドレスを変換することを特徴とするメモリの使用を管理するためのシステム。 - 前記メモリは、複数のページに編成化され、前記個々にアドレス割り当て可能な構成要素の内の第1の構成要素は、前記複数のページの1つの中に配置され、前記アドレス変換構造は、(1)前記複数のページへのリンクを含む複数のページテーブル、および(2)前記複数のページテーブルへのリンクを含むページディレクトリーを含み、前記アドレス変換構造の前記シャドウ表現は、少なくとも1つのリンクに関して前記アドレス変換構造とは異なることを特徴とする請求項5に記載のシステム。
- 前記ページディレクトリーおよび前記ページテーブルに含まれるリンクの各々は1または複数の属性を含み、前記シャドウ表現の中の少なくとも1つのリンクは、少なくとも1つの属性に関する前記アドレス変換構造において対応するリンクとは異なることを特徴とする請求項6に記載のシステム。
- 前記ページディレクトリーおよび各ページテーブルは、前記複数のページの1つに格納され、
前記ページの各々は、それに関係付けられる物理位置記述子を有し、前記ページディレクトリーおよび前記ページテーブル中の前記リンクの各々は、前記物理位置記述子に基づきページの1つを特定することを特徴とする請求項6に記載のシステム。 - 前記シャドウ表現は、前記ページディレクトリーの少なくとも1つあるいは前記ページテーブルの1つの代替のバージョンを含み、前記代替のバージョンは、代替のバージョンが基づくページと異なる物理位置記述子を有するページに格納されることを特徴とする請求項8に記載のシステム。
- 前記ポリシーは、メモリのアクセシビリティを管理し、前記アドレス変換構造は、前記ポリシーの違反に対してメモリを公開し、前記システムは、
前記アドレス変換構造に基づくシャドウ表現を作成し、前記シャドウ表現が、仮想アドレスに基づきメモリにアクセスするために使用される場合、前記ポリシーの違反を生じないことを保証するメモリアクセス制御マネジャーをさらに備えることを特徴とする請求項5に記載のシステム。 - 前記ポリシーが、アクセス不可として前記メモリの一部を定義し、前記メモリアクセス制御マネジャーは、シャドウ表現が前記メモリの一部に対する仮想アドレスを公開しないことを保証する
ことを特徴とする請求項10に記載のシステム。 - 前記ポリシーは、読み出し可能であるが書き込み不可としてメモリの一部を定義し、前記メモリアクセス制御マネジャーは、前記シャドウ表現が、読み出し専用として前記メモリの一部にマークする1または複数の属性を含むことを保証することを特徴とする請求項10に記載のシステム。
- 前記メモリアクセス制御マネジャーは、シャドウ表現が、読み出し専用として、(1)アドレス変換構造、および(2)シャドウ表現の少なくとも1つを格納するメモリの部分を読み出し専用としてマークする1または複数の属性を含むことを保証することを特徴とする請求項10に記載のシステム。
- メモリユニットに読み出しまたは書き込みをするためのリクエストを受けるステップであって、前記リクエストは、仮想アドレスに基づく前記メモリの前記ユニットを特定するステップと、
仮想アドレスと物理アドレス間の関係を定義するマップの表現に基づく前記メモリユニットにアクセスするステップであって、前記マップは、前記メモリの1または複数のページに格納され、前記マップの前記表現は、前記1または複数のページの内の第1のページに基づく少なくとも1つのシャドウページを含み、前記仮想アドレスに基づく前記メモリにアクセスするために使用される場合に、前記マップは、メモリアクセスポリシーの違反を生じる少なくとも1つの態様を含み、前記シャドウページは、前記仮想アドレスに基づいて前記メモリにアクセスするための前記マップの前記表現の使用が前記メモリアクセスポリシーに違反しないような方法で、前記1または複数のページの内の前記第1のページと異なるステップと、
前記アクセスリクエストで明記された読み出しまたは書き込みを実行するステップとを備えることを特徴とするメモリアクセスリクエストを実行する方法。 - 前記メモリアクセスポリシーは、アクセス不可として前記メモリの一部を定義し、前記マップは、仮想アドレスマッピングを定義する前記メモリの部分への書き込み可能なリンクを公開し、前記マップの前記表現は、仮想アドレスマッピングを定義する前記メモリの部分への書き込み可能なリンクを公開しないことを特徴とする請求項14に記載の方法。
- 前記マップは、(1)前記1または複数のページの組へのリンクを含む複数のテーブル、および(2)前記複数のテーブルへのリンクを含むディレクトリーを含み、前記少なくとも1つのシャドウページは、前記シャドウディレクトリーの中の少なくとも1つのリンクが、少なくとも前記複数のテーブルの1つの代わりにシャドウページテーブルを指すという点で前記ディレクトリーとは異なるシャドウディレクトリーを含むことを特徴とする請求項14に記載の方法。
- 前記マップは、前記1または複数のページの組へのリンクを含む複数のテーブルを備え、前記シャドウページは、前記テーブルの1つに基づく表現を含み、前記シャドウページは、前記テーブルの前記1つに存在する第1のリンクの表現を含み、前記第1のリンクは、前記テーブルの前記1つの中の読み出し/書き込みリンクであり、前記シャドウページは、前記シャドウページ表現の前記第1のリンクが読み出し専用にマークされている点で、前記テーブルの前記1つと異なることを特徴とする請求項14に記載の方法。
- 前記シャドウページは、ディレクトリーを含み、前記メモリユニットは、複数の第2サイズのページを含む第1サイズのページによって網羅され、前記マップは、前記第1サイズのページへのリンクを含むディレクトリーを含み、前記シャドウページは、前記ディレクトリーに基づいており、前記シャドウページは、前記シャドウページが前記第1サイズのページへのリンクの代わりにテーブルへのリンクを含むという点で、前記ディレクトリーとは異なり、前記テーブルは、前記第1サイズのページに含まれる第2サイズのページへのリンクを含むことを特徴とする請求項14に記載の方法。
- アドレス変換マップの代表であるデータ構造をその上にエンコードしたコンピュータ読取り可能な媒体であって、前記アドレス変換マップは、ページディレクトリーを含み、前記ディレクトリーは、複数のページテーブルへのリンクを含み、各前記ページテーブルは、前記コンピュータ読取り可能な媒体の中の特定のフレームに格納され、各ページテーブルは、前記コンピュータ読取り可能な媒体の複数のページへのリンクを含み、前記データ構造は、
複数のページテーブルの内の第1のページテーブルに基づくシャドウページテーブルと、前記ページディレクトリーに基づくシャドウページテーブルであって、前記ページディレクトリーは、複数のページテーブルの内の前記第1のページテーブルへのリンクを含む第1のエントリーを含み、前記シャドウページテーブルは、第1のエントリーに対応する第2のエントリーを含み、前記第2のエントリーは、複数のページテーブルの内の前記第1のページテーブルへのリンクの代わりに前記シャドウページテーブルへのリンクを含むことを特徴とするコンピュータ読取り可能な媒体。 - 前記複数のページテーブルの内の第1のページテーブルは、第1のフレームに格納され、前記シャドウページテーブルは、第2のフレームに格納され、前記ページディレクトリー中のリンクが、前記第1のフレームの識別子を含み、および、シャドウページディレクトリー中の対応するリンクが、前記第2のフレームの識別子を含む点において、前記シャドウページディレクトリーは、前記ページディレクトリーと異なることを特徴とする請求項19に記載のコンピュータ読取り可能な媒体。
- 前記複数のページテーブルの前記第1のページテーブルは、前記ページの内の第1のページへのリンクを含み、前記シャドウページテーブルは、前記ページの内の第1のページへのリンクの代わりに該第1のページに基づく表現へのリンクを含み、前記第1のページに基づく前記表現は、前記第1のページとは異なるフレームに格納されることを特徴とする請求項19に記載のコンピュータ読取り可能な媒体。
- 前記複数のページの内の第1のページは、前記ページディレクトリーまたは前記複数のページテーブルの内の第1のページテーブルのいずれかを格納することを特徴とする請求項21に記載のコンピュータ読取り可能な媒体。
- 前記複数のページテーブルの内の第1のページテーブルは、読み出し可能かつ書き込み可能として前記複数のページの内の第1のページを指定するリンクを含み、前記シャドウページテーブル中の対応するリンクは、前記複数のページの内の第1のページを読み出し可能のみとして指定することを特徴とする請求項22に記載のコンピュータ読取り可能な媒体。
- 前記ページディレクトリーおよび前記複数のページテーブルの内の第1のページテーブルは、仮想アドレスに基づいてメモリにアクセスするために使用される場合、メモリアクセスポリシーの違反をもたらすような少なくとも1つの特徴を含み、前記シャドウページディレクトリーおよびシャドウページテーブルは、前記仮想アドレスに基づき前記シャドウページディレクトリーおよび前記シャドウページテーブルを通してメモリにアクセスすることが、前記メモリアクセスポリシーの違反を生じないようなデータを含むことを特徴とする請求項19に記載のコンピュータ読取り可能な媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/697,197 US7310721B2 (en) | 2003-10-30 | 2003-10-30 | Shadow page tables for address translation control |
US10/697,197 | 2003-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005135396A true JP2005135396A (ja) | 2005-05-26 |
JP4928721B2 JP4928721B2 (ja) | 2012-05-09 |
Family
ID=34423388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004289030A Expired - Fee Related JP4928721B2 (ja) | 2003-10-30 | 2004-09-30 | アドレス変換制御のためのシャドウ・ページテーブル |
Country Status (10)
Country | Link |
---|---|
US (1) | US7310721B2 (ja) |
EP (1) | EP1528474B1 (ja) |
JP (1) | JP4928721B2 (ja) |
KR (1) | KR101150079B1 (ja) |
CN (1) | CN1612112B (ja) |
AU (1) | AU2004218602B2 (ja) |
BR (1) | BRPI0404279A (ja) |
CA (1) | CA2482872C (ja) |
MX (1) | MXPA04009350A (ja) |
RU (1) | RU2373566C2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305106A (ja) * | 2007-06-06 | 2008-12-18 | Hitachi Ltd | 仮想計算機の制御プログラムおよび仮想計算機システム |
JP2011128787A (ja) * | 2009-12-16 | 2011-06-30 | Internatl Business Mach Corp <Ibm> | アドレス変換を高速化する方法及びシステム |
JP6317048B1 (ja) * | 2015-04-15 | 2018-04-25 | クアルコム,インコーポレイテッド | バースト変換ルックアサイドバッファ |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430570B1 (en) | 2003-04-28 | 2008-09-30 | Ibrix, Inc. | Shadow directory structure in a distributed segmented file system |
EP1634175B1 (en) | 2003-05-28 | 2015-06-24 | Citrix Systems, Inc. | Multilayer access control security system |
TWI249670B (en) * | 2004-04-29 | 2006-02-21 | Mediatek Inc | System and method capable of sequentially writing a flash memory |
US7395405B2 (en) * | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US7721094B2 (en) * | 2005-05-06 | 2010-05-18 | Microsoft Corporation | Systems and methods for determining if applications executing on a computer system are trusted |
US7299337B2 (en) * | 2005-05-12 | 2007-11-20 | Traut Eric P | Enhanced shadow page table algorithms |
EP1883865A4 (en) * | 2005-05-24 | 2010-12-15 | Marathon Techn Corp | FAULT TOLERANT COMPUTER SYSTEM WITH SYMMETRIC MULTIPROCESSOR |
US7657725B2 (en) * | 2005-06-24 | 2010-02-02 | Sigmatel, Inc. | Integrated circuit with memory-less page table |
US7814287B2 (en) * | 2005-07-15 | 2010-10-12 | Xensource, Inc. | Using writeable page tables for memory address translation in a hypervisor environment |
US7681200B2 (en) * | 2005-07-22 | 2010-03-16 | Microsoft Corporation | Secure hardware desktop buffer composition |
EP1955526B1 (en) | 2005-12-02 | 2010-05-05 | Citrix Systems, Inc. | Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource |
WO2008011030A2 (en) * | 2006-07-17 | 2008-01-24 | Xensource, Inc | Tracking current time on multiprocessor hosts and virtual machines |
US7739466B2 (en) * | 2006-08-11 | 2010-06-15 | Intel Corporation | Method and apparatus for supporting immutable memory |
GB2442495B (en) * | 2006-10-02 | 2009-04-01 | Transitive Ltd | Method and apparatus for handling dynamically linked function cells with respect to program code conversion |
US7885932B2 (en) * | 2006-11-01 | 2011-02-08 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US8490148B2 (en) | 2007-03-12 | 2013-07-16 | Citrix Systems, Inc | Systems and methods for managing application security profiles |
US7853678B2 (en) | 2007-03-12 | 2010-12-14 | Citrix Systems, Inc. | Systems and methods for configuring flow control of policy expressions |
US8631147B2 (en) | 2007-03-12 | 2014-01-14 | Citrix Systems, Inc. | Systems and methods for configuring policy bank invocations |
US7865589B2 (en) | 2007-03-12 | 2011-01-04 | Citrix Systems, Inc. | Systems and methods for providing structured policy expressions to represent unstructured data in a network appliance |
US7853679B2 (en) | 2007-03-12 | 2010-12-14 | Citrix Systems, Inc. | Systems and methods for configuring handling of undefined policy events |
US7870277B2 (en) | 2007-03-12 | 2011-01-11 | Citrix Systems, Inc. | Systems and methods for using object oriented expressions to configure application security policies |
JP5260081B2 (ja) | 2008-02-25 | 2013-08-14 | パナソニック株式会社 | 情報処理装置及びその制御方法 |
US8578483B2 (en) * | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
US8024546B2 (en) * | 2008-10-23 | 2011-09-20 | Microsoft Corporation | Opportunistic page largification |
US8301863B2 (en) * | 2008-11-17 | 2012-10-30 | International Business Machines Corporation | Recursive logical partition real memory map |
US8135937B2 (en) * | 2008-11-17 | 2012-03-13 | International Business Machines Corporation | Logical partition memory |
US10255463B2 (en) | 2008-11-17 | 2019-04-09 | International Business Machines Corporation | Secure computer architecture |
US8225069B2 (en) | 2009-03-31 | 2012-07-17 | Intel Corporation | Control of on-die system fabric blocks |
US20100262722A1 (en) * | 2009-04-10 | 2010-10-14 | Christophe Vauthier | Dynamic Assignment of Graphics Processing Unit to a Virtual Machine |
US8812907B1 (en) | 2010-07-19 | 2014-08-19 | Marathon Technologies Corporation | Fault tolerant computing systems using checkpoints |
US8954697B2 (en) * | 2010-08-05 | 2015-02-10 | Red Hat, Inc. | Access to shared memory segments by multiple application processes |
US8364932B2 (en) * | 2010-10-29 | 2013-01-29 | Vmware, Inc. | System and method to prioritize large memory page allocation in virtualized systems |
US9606936B2 (en) * | 2010-12-16 | 2017-03-28 | Advanced Micro Devices, Inc. | Generalized control registers |
US20130013605A1 (en) | 2011-07-08 | 2013-01-10 | Stanfill Craig W | Managing Storage of Data for Range-Based Searching |
WO2013048943A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Active state power management (aspm) to reduce power consumption by pci express components |
US9116793B2 (en) | 2012-06-12 | 2015-08-25 | International Business Machines Corporation | Maintaining versions of data in solid state memory |
US9122582B2 (en) * | 2012-06-12 | 2015-09-01 | International Business Machines Corporation | File system for maintaining data versions in solid state memory |
US9122581B2 (en) * | 2012-06-12 | 2015-09-01 | International Business Machines Corporation | Data versioning in solid state memory |
US9135161B2 (en) | 2012-06-12 | 2015-09-15 | International Business Machines Corporation | Flash translation layer system for maintaining data versions in solid state memory |
EP2883131B1 (en) * | 2012-08-07 | 2020-11-18 | Nokia Technologies Oy | Access control for wireless memory |
US9251002B2 (en) | 2013-01-15 | 2016-02-02 | Stratus Technologies Bermuda Ltd. | System and method for writing checkpointing data |
US9436844B2 (en) | 2013-08-29 | 2016-09-06 | Microsoft Technology Licensing, Llc | Access enablement security circuit |
US9716708B2 (en) | 2013-09-13 | 2017-07-25 | Microsoft Technology Licensing, Llc | Security certificates for system-on-chip security |
WO2015102873A2 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
WO2015102874A2 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
US9588844B2 (en) | 2013-12-30 | 2017-03-07 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods using data forwarding |
US9805194B2 (en) | 2015-03-27 | 2017-10-31 | Intel Corporation | Memory scanning methods and apparatus |
US10387325B2 (en) | 2017-11-28 | 2019-08-20 | International Business Machines Corporation | Dynamic address translation for a virtual machine |
CN109388524B (zh) * | 2018-10-09 | 2021-10-01 | 郑州云海信息技术有限公司 | 虚拟磁盘格式的寻址方法和计算机可读存储介质 |
CN111290714B (zh) * | 2020-02-06 | 2023-09-05 | 北京百度网讯科技有限公司 | 数据读取方法和装置 |
CN112988508B (zh) * | 2021-03-04 | 2022-03-18 | 浙江中控研究院有限公司 | 一种基于内存隔离的可信plc嵌入式系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6299844A (ja) * | 1985-10-28 | 1987-05-09 | Hitachi Ltd | アドレス変換装置 |
JPH10312338A (ja) * | 1997-05-13 | 1998-11-24 | Toshiba Corp | メモリ制御装置、及びメモリ制御方法 |
US6233668B1 (en) * | 1999-10-27 | 2001-05-15 | Compaq Computer Corporation | Concurrent page tables |
US20020116590A1 (en) * | 2001-02-20 | 2002-08-22 | International Business Machines Corporation | Method of managing memory |
JP2003256278A (ja) * | 2002-02-28 | 2003-09-10 | Hitachi Ltd | 情報保護方法及びその実施装置並びにその処理プログラム |
US20030177435A1 (en) * | 2002-03-18 | 2003-09-18 | Robin Budd | End-to-end checksumming for read operations |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3102495B2 (ja) * | 1989-12-28 | 2000-10-23 | 株式会社日立製作所 | 仮想記憶管理方法 |
EP1526472A3 (en) | 1995-02-13 | 2006-07-26 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5960463A (en) * | 1996-05-16 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache controller with table walk logic tightly coupled to second level access logic |
US6105103A (en) * | 1997-12-19 | 2000-08-15 | Lsi Logic Corporation | Method for mapping in dynamically addressed storage subsystems |
US7565509B2 (en) | 2002-04-17 | 2009-07-21 | Microsoft Corporation | Using limits on address translation to control access to an addressable entity |
US7058768B2 (en) | 2002-04-17 | 2006-06-06 | Microsoft Corporation | Memory isolation through address translation data edit control |
US7478235B2 (en) | 2002-06-28 | 2009-01-13 | Microsoft Corporation | Methods and systems for protecting data in USB systems |
-
2003
- 2003-10-30 US US10/697,197 patent/US7310721B2/en not_active Expired - Fee Related
-
2004
- 2004-08-06 EP EP04018744.5A patent/EP1528474B1/en not_active Not-in-force
- 2004-09-10 KR KR1020040072560A patent/KR101150079B1/ko active IP Right Grant
- 2004-09-17 BR BR0404279-4A patent/BRPI0404279A/pt not_active Application Discontinuation
- 2004-09-24 MX MXPA04009350A patent/MXPA04009350A/es active IP Right Grant
- 2004-09-28 CN CN2004100831088A patent/CN1612112B/zh not_active Expired - Fee Related
- 2004-09-29 CA CA2482872A patent/CA2482872C/en not_active Expired - Fee Related
- 2004-09-30 JP JP2004289030A patent/JP4928721B2/ja not_active Expired - Fee Related
- 2004-10-20 AU AU2004218602A patent/AU2004218602B2/en not_active Ceased
- 2004-10-29 RU RU2004131609/09A patent/RU2373566C2/ru not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6299844A (ja) * | 1985-10-28 | 1987-05-09 | Hitachi Ltd | アドレス変換装置 |
JPH10312338A (ja) * | 1997-05-13 | 1998-11-24 | Toshiba Corp | メモリ制御装置、及びメモリ制御方法 |
US6233668B1 (en) * | 1999-10-27 | 2001-05-15 | Compaq Computer Corporation | Concurrent page tables |
US20020116590A1 (en) * | 2001-02-20 | 2002-08-22 | International Business Machines Corporation | Method of managing memory |
JP2003256278A (ja) * | 2002-02-28 | 2003-09-10 | Hitachi Ltd | 情報保護方法及びその実施装置並びにその処理プログラム |
US20030177435A1 (en) * | 2002-03-18 | 2003-09-18 | Robin Budd | End-to-end checksumming for read operations |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305106A (ja) * | 2007-06-06 | 2008-12-18 | Hitachi Ltd | 仮想計算機の制御プログラムおよび仮想計算機システム |
JP2011128787A (ja) * | 2009-12-16 | 2011-06-30 | Internatl Business Mach Corp <Ibm> | アドレス変換を高速化する方法及びシステム |
JP6317048B1 (ja) * | 2015-04-15 | 2018-04-25 | クアルコム,インコーポレイテッド | バースト変換ルックアサイドバッファ |
Also Published As
Publication number | Publication date |
---|---|
CA2482872C (en) | 2013-07-30 |
EP1528474B1 (en) | 2017-11-15 |
BRPI0404279A (pt) | 2005-06-21 |
AU2004218602A1 (en) | 2005-05-19 |
RU2373566C2 (ru) | 2009-11-20 |
RU2004131609A (ru) | 2006-04-10 |
CN1612112A (zh) | 2005-05-04 |
KR101150079B1 (ko) | 2012-06-01 |
KR20050041868A (ko) | 2005-05-04 |
AU2004218602A8 (en) | 2010-01-07 |
MXPA04009350A (es) | 2005-05-04 |
US7310721B2 (en) | 2007-12-18 |
EP1528474A2 (en) | 2005-05-04 |
CN1612112B (zh) | 2011-09-28 |
US20050097298A1 (en) | 2005-05-05 |
CA2482872A1 (en) | 2005-04-30 |
AU2004218602B2 (en) | 2010-01-21 |
EP1528474A3 (en) | 2008-07-02 |
JP4928721B2 (ja) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4928721B2 (ja) | アドレス変換制御のためのシャドウ・ページテーブル | |
US7058768B2 (en) | Memory isolation through address translation data edit control | |
US7644246B2 (en) | Using limits on address translation to control access to an addressable entity | |
US8954695B1 (en) | Secure pool memory management | |
KR100918530B1 (ko) | 어드레스 매핑 캐시들의 엔트리 소거 방법, 및 사용 관리 시스템 | |
US7882317B2 (en) | Process isolation using protection domains | |
KR101024819B1 (ko) | 메모리 액세스 요청을 처리하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들이 인코딩되어 있는 컴퓨터 판독가능 저장 매체, 컴퓨터 메모리 관리 방법, 및 메모리 액세스 제어 시스템 | |
JP4688490B2 (ja) | 高セキュリティ実行モードにおいて高セキュリティカーネルを使用するトラステッド・クライアント | |
US5390310A (en) | Memory management unit having cross-domain control | |
KR20190026909A (ko) | 컴퓨팅 장치의 메모리 내 페이지 접근 제어 | |
US20050086517A1 (en) | Page granular curtained memory via mapping control | |
US20100228936A1 (en) | Accessing memory locations for paged memory objects in an object-addressed memory system | |
US20060047959A1 (en) | System and method for secure computing | |
KR20030088492A (ko) | 메모리의 부분들의 보안 방법 및 장치 | |
JP5338435B2 (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
JP2009104555A (ja) | Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070928 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110222 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110523 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110526 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111107 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120207 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120213 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4928721 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |