JP2013509621A - メモリ管理装置及び仮想メモリ領域を提供する方法 - Google Patents
メモリ管理装置及び仮想メモリ領域を提供する方法 Download PDFInfo
- Publication number
- JP2013509621A JP2013509621A JP2012530409A JP2012530409A JP2013509621A JP 2013509621 A JP2013509621 A JP 2013509621A JP 2012530409 A JP2012530409 A JP 2012530409A JP 2012530409 A JP2012530409 A JP 2012530409A JP 2013509621 A JP2013509621 A JP 2013509621A
- Authority
- JP
- Japan
- Prior art keywords
- page
- virtual
- addresses
- physical
- virtual address
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- 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
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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/652—Page size control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
Description
2.ページ内の物理アドレスは、固定された境界で区切られていなければならない。ページ内の物理アドレスは、当該ページのサイズの倍数でなければならない。ページ内の物理アドレスを他のまたは任意に選択された境界で区切ることは不可能である。
3.ある種の仮想メモリシステムは、可能なページサイズの中から、複数のページサイズをサポートする。ある場合には、定められた規則に従い、2ページ以上が仮想アドレス空間だけでなく物理アドレス空間でも連続していればそれらを組み合わせてより大きなページを形成することがある。しかし一般的には、単一の仮想アドレス空間内で任意のサイズのページを組み合わせて使用するのは不可能、非実用的、または不利である。
4.ページは、仮想アドレス空間内の固定された境界でマッピングされなければならない。そのような仮想アドレスは、ページのサイズの倍数でなければならない。ページを他のまたは任意に選択された仮想アドレスにマッピングすることは不可能である。ある仮想アドレスに既にマッピングされたページを、より上位または下位の仮想アドレス、すなわちそのように固定された境界で区切られていない新規仮想アドレスに再マッピングすることは不可能である。
5.ページ全体が仮想アドレス空間にマッピングされる。未使用、予備、またはマッピング未実施のスペースをページ内に維持することは不可能である。ページの有効サイズは、ページのサイズに等しくなければならない。
6.仮想アドレスのページオフセット部分は変換されないが、ページ内のページオフセットとして変更なしに用いられる。さもなければページオフセットは、変換またはマッピング処理を施されない。
7.ページテーブルエントリは、ページ全体を仮想アドレス空間にマッピングする。ページテーブルエントリを用いてページの一部をマッピングすることは不可能である。複数のページテーブルエントリを同一ページ、または同一ページの一部にマッピングすることは無意味である。
8.きめ細かい保護およびアクセス制御が提供されない。保護およびアクセス制御は上述のように、固定されたサイズのページに限定される。しかし実際には、制御が必要なデータの論理ユニットを1個以上の固定されたサイズのページに確実にぴったり合わせることは不可能である。
9.メモリがマッピングされた関数またはプロシージャの作成および管理方法が提供されない。
10.メモリがマッピングされた仮想ルックアップテーブルの作成および管理方法が提供されない。プログラミングにおいて、いくつかの計算の結果をルックアップテーブルとして提供することが望ましい場合が多い。例えば、仮想ルックアップテーブルは、自然数の2乗根を提供することができる。理想的には、そのようなルックアップテーブルへのエントリが最初に仮想アドレスでアクセスされたときに、ユーザー定義関数が呼び出されてそのような位置で関連する値が計算されてもよい。そのような値を小さいページに配置しておき、次いで仮想アドレス空間にマッピングすることができる。しかし、既存の仮想メモリシステムでは、非常に大きいページサイズが必要とされ、所望の結果に加えていくつかの数の2乗根の計算が必要とされよう。このため仮想ルックアップテーブルが現実的でなくなる。
11.既存データの大量複製無しに実行可能な、仮想メモリ領域内での任意の量のデータの再配置、挿入、または削除する方法が提供されない。
12.変換ルックアサイドバッファに存在する限られたページテーブルエントリの使用を最適化する方法が不十分である。
従って、物理メモリを仮想アドレス空間へマッピングするより柔軟且つ効率的な方法に対するニーズが存在する。
1.異なるサイズまたは異なる有効サイズのページを連続的な仮想アドレス空間にマッピングする。
2.ページの有効サイズ(すなわち、ページ内のアドレスがマッピングされる仮想アドレスの数)はページのサイズと同じである必要はない。ページの有効サイズは、その時々で異なっていてもよい。
3.ページのサイズまたは有効サイズは固定されている必要はなく、ページ毎に異なってよく、任意の好都合なサイズであってもよい。ページのサイズまたは有効サイズは、ページフレームサイズに一切依存しない。
4.ページは、未使用、マッピング未実施、または予備のスペースを所有している。ページ内の未使用、マッピング未実施、または予備のスペースはその時々で変動してもよい。ページサイズに等しいデータをページが保存する必要はなく、未使用スペースを有していてもよいため、異なる量のデータを保存する。
5.ページ内の物理アドレスは、固定された境界で区切る必要がない。ページがマッピングされる仮想アドレスは、固定された境界で区切る必要がない。
6.ページテーブルエントリは2以上のページ、または2以上ページの一部を仮想アドレス空間にマッピングすることができる。複数のページテーブルエントリがページ、またはページの一部にマッピングされる。
7.仮想メモリ領域の任意の部分に対してきめ細かいアクセス制御および保護を提供する。可変または異なるサイズのページに対してアクセス制御および保護を提供する。更に、ページの一部に対してアクセス制御および保護を提供することができる。
8.仮想メモリ領域内で任意の量のデータを再配置、挿入、および削除する方法を提供し、その動作は物理メモリ内で大量のデータの複製を必要としない。
9.効率的なメモリのマッピングされた関数およびプロシージャの作成および管理方法を提供する。効率的な仮想ルックアップテーブルの作成および管理方法も提供する。提供される仮想ルックアップテーブルの動作は、所望以外のルックアップテーブルエントリの値の計算を必要としない。
10.変換ルックアサイドバッファ内における限られた数のページテーブルエントリの使用を最適化する方法を提供する。
更なる目的および利点は、以下の説明および図面を参照しながら明らかになる。
1.1個以上の新規のページをページデータベース内に挿入する。
2.ページデータベース内の1個以上の既存のページを削除する。
3.データベース内のページを他のページに置換する。
4.ページデータベース内のページの順序を再配置する。
5.ページデータベース内の1個以上のページのサイズを増やす。
6.ページデータベース内の1個以上のページのサイズを減らす。
7.ページデータベース内の1個以上のページを仮想アドレス空間内のより上位アドレスに改めて関連付ける。
8.ページデータベース内の1個以上のページを仮想アドレス空間内のより下位のアドレスに改めて関連付ける。
9.そのようなページ内の未使用スペースを用いて新規のデータを既存のページに挿入して、当該ページの有効サイズを増やす。
10.ページデータベース内のページから既存データを削除し、そのようなページ内の未使用スペースを増やして、当該ページの有効サイズを減らす。
11.ページテーブルまたは変換ルックアサイドバッファ内の1個以上のマッピングエントリを変更することにより、既存のマッピングを再マッピングまたは無効にする。
Claims (54)
- 物理アドレス空間を仮想アドレス空間にマッピングするメモリ管理装置であって、
a.複数の仮想アドレスを含む仮想アドレス空間、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間、
c.1個以上の変換記述子、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子とページ内の複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持する装置を含み、
i.変換記述子によりマッピングされた前記アドレスの数が2n(nは自然数)に等しくない、または
ii.変換記述子に関連付けられた前記仮想アドレスの数が2n(nは自然数)に等しくない、または
iii.変換記述子に関連付けられた前記物理アドレスの数が2n(nは自然数)に等しくないメモリ管理装置。 - 物理アドレス空間を仮想アドレス空間にマッピングするメモリ管理装置であって、
a.複数の仮想アドレスを含む仮想アドレス空間、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間、
c.1個以上の変換記述子、および
i.仮想アドレス空間の1個以上の仮想アドレスの範囲と変換記述子との関連を維持し、
ii.変換記述子と1個以上の物理アドレスの範囲との関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持する装置を含み、
i.変換記述子に関連付けられた仮想アドレスの範囲内の第1の仮想アドレスが、前記変換記述子によりマッピングされた前記アドレスの数の倍数ではない、または
ii.前記変換記述子に関連付けられた物理アドレスの範囲内の第1の物理アドレスが、前記変換記述子によりマッピングされた前記アドレスの数の倍数ではないメモリ管理装置。 - 物理アドレス空間を仮想アドレス空間にマッピングするメモリ管理装置であって、
a.複数の仮想アドレスを含む仮想アドレス空間、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間、
c.1個以上の変換記述子、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子と複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持する装置を含み、
i.仮想アドレスのページオフセットを含むビットの値が、自身に関連付けられた物理アドレスの対応ビットの値に等しくない、または
ii.仮想アドレス内のページオフセットが、自身に関連付けられた物理アドレスと、前記関連付けられた物理アドレスが含まれるページの前記物理アドレスとの差に等しくないメモリ管理装置。 - 物理アドレス空間を仮想アドレス空間にマッピングするメモリ管理装置であって、
a.複数の仮想アドレスを含む仮想アドレス空間、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間、
c.1個以上の変換記述子、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子と複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持する装置を含み、
前記仮想アドレス空間内の最上位または最下位仮想アドレスにマッピングされた物理アドレスを含まないページのサイズまたは有効サイズが、2n(nは自然数)に等しくない数であるメモリ管理装置。 - 物理アドレス空間を仮想アドレス空間にマッピングするメモリ管理装置であって、
a.複数の仮想アドレスを含む仮想アドレス空間、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間、
c.1個以上の変換記述子、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子と複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持する装置を含み、
ページが仮想アドレス空間にマッピングされる複数の物理アドレスを含んでいて、前記ページはまた予備のスペースを含み、予備のスペースとは前記仮想アドレス空間にマッピング可能であるが、前記仮想アドレス空間にはマッピングされていない前記ページ内の複数の物理アドレスである、メモリ管理装置。 - 変換記述子が、前記変換記述子に関連付けられた1個以上の仮想アドレスに対するアクセス制御を行なうべく構成されている、請求項1、2、3、4、または5のいずれか1項に記載のメモリ管理装置。
- ページがマッピングされる前記仮想アドレスが、
i.前記ページのサイズの倍数でも
ii.前記ページの有効サイズの倍数でも
ない、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。 - ページの前記物理アドレスが、
i.前記ページのサイズの倍数でも
ii.前記ページの有効サイズの倍数でも
ない、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。 - ページのサイズが2n(nは自然数)に等しくない数である、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- 仮想アドレス空間にマッピングされたページのサイズが、同じく前記仮想アドレス空間にマッピングされた他のページのサイズより大きく、且つ前記他のページのサイズが1より大きい、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- 前記ページのサイズが前記他のページのサイズの倍数ではない、請求項10に記載のメモリ管理装置。
- ページの有効サイズが2n(nは自然数)に等しくない数である、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- 仮想アドレス空間にマッピングされたページの有効サイズが、同じく前記仮想アドレス空間にマッピングされた他のページの有効サイズにより大きく、且つ前記他のページのサイズが1より大きい、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- 前記ページの有効サイズが前記他のページの有効サイズの倍数ではない、請求項13に記載のメモリ管理装置。
- ページ内の物理アドレスを仮想アドレスにマッピングするページテーブルエントリが、前記ページ内の1個以上の他の物理アドレスを前記仮想アドレスにマッピングするページテーブルエントリではない、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- ページテーブルエントリがページ内に含まれる物理アドレスを仮想アドレスにマッピングし、且つ他のページ内に含まれる物理アドレスを前記仮想アドレスにマッピングする、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- ページのサイズまたは有効サイズが、単一の変換記述子に関連付けられた前記ページ内に含まれる物理アドレスの数の倍数ではない、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- 仮想アドレスが、前記仮想アドレスがアクセスされた場合にフォールトハンドラにより呼び出されるプロシージャに関連付けられている、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。
- 前記プロシージャがページに値を保存して、前記ページを前記仮想アドレス空間にマッピングする、請求項18に記載のメモリ管理装置。
- 前記プロシージャが設定可能である、請求項18に記載のメモリ管理装置。
- 仮想ルックアップテーブルを更に含み、前記仮想ルックアップテーブルが複数のルックアップテーブルエントリを含んでいて、各ルックアップテーブルエントリには1個以上の仮想アドレスが関連付けられていて、
前記プロシージャは、前記ルックアップテーブルエントリに関連付けられた仮想アドレスがアクセスされた場合に、前記ルックアップテーブルエントリに対応する値を決定し、前記値をページに保存して、前記ページを前記仮想アドレス空間にマッピングする、請求項18に記載のメモリ管理装置。 - 前記ルックアップテーブルエントリに関連付けられた仮想アドレスがアクセスされない場合、前記ルックアップテーブルエントリの値を計算する必要も前記仮想アドレス空間に保存する必要もない、請求項21に記載のメモリ管理装置。
- a.前記仮想アドレス空間内の複数の仮想アドレスに論理的に保存された複数のデータ要素を含む仮想メモリ領域、および
i.1個以上のページ内の1個以上の物理アドレスをそれらの既存の仮想アドレスから分離する、および
ii.前記1個以上物理アドレスを新規仮想アドレスに改めて関連付けることにより、
b.前記仮想メモリ領域内の1個以上のデータ要素をそれらの既存の仮想アドレスから前記仮想アドレス空間内の新規仮想アドレスに再配置するためのデータ再配置モジュールを更に含む、請求項1、2、3、4、5、または6のいずれか1項に記載のメモリ管理装置。 - 新規位置に再配置された物理アドレスの数が2n(nは自然数)に等しい数である、請求項23に記載のメモリ管理装置。
- 新規位置に再配置された物理アドレスの数が2n(nは自然数)に等しくない数である、請求項23に記載のメモリ管理装置。
- a.前記データ再配置モジュールに、1個以上の既存データ要素を新規仮想アドレスに再配置させる、および
b.既に仮想アドレスにマッピングされていない追加的な物理アドレスであるページ内の追加的な物理アドレスを、他の物理アドレスがマッピングされている仮想アドレスよりも下位の仮想アドレスにマッピングすることにより、
前記仮想メモリ領域に1個以上の追加的なデータ要素を挿入するデータ挿入モジュールを更に含む、請求項23に記載のメモリ管理装置。 - a.ページ内の物理アドレスを自身がマッピングされている前記仮想アドレスからマッピング解除する、および
b.前記データ再配置モジュールに、1個以上の既存データ要素を新規仮想アドレスに再配置させることにより、
前記仮想メモリ領域内の1個以上のデータ要素を削除するデータ削除モジュールを更に含む、請求項23に記載のメモリ管理装置。 - メモリ管理装置内の物理アドレス空間を仮想アドレス空間にマッピングする方法であって、
a.複数の仮想アドレスを含む仮想アドレス空間を提供するステップ、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間を提供するステップ、
c.1個以上の変換記述子を提供するステップ、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子とページ内の複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持するステップを含み、
i.変換記述子によりマッピングされた前記アドレスの数が2n(nは自然数)に等しくない、または
ii.変換記述子に関連付けられた前記仮想アドレスの数が2n(nは自然数)に等しくない、または
iii.変換記述子に関連付けられた前記物理アドレスの数が2n(nは自然数)に等しくない方法。 - メモリ管理装置内の物理アドレス空間を仮想アドレス空間にマッピングする方法であって、
a.複数の仮想アドレスを含む仮想アドレス空間を提供するステップ、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間を提供するステップ、
c.1個以上の変換記述子を提供するステップ、および
i.仮想アドレス空間の1個以上の仮想アドレスの範囲と変換記述子との関連を維持し、
ii.変換記述子と1個以上の物理アドレスの範囲との関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持する装置を提供するステップを含み、
i.変換記述子に関連付けられた仮想アドレスの範囲内の第1の仮想アドレスが、前記変換記述子によりマッピングされた前記アドレスの数の倍数ではない、または
ii.変換記述子に関連付けられた物理アドレスの範囲内の第1の物理アドレスが、前記変換記述子によりマッピングされた前記アドレスの数の倍数ではない方法。 - メモリ管理装置内の物理アドレス空間を仮想アドレス空間にマッピングする方法であって、
a.複数の仮想アドレスを含む仮想アドレス空間を提供するステップ、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間を提供するステップ、
c.1個以上の変換記述子を提供するステップ、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子とページ内の複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持するステップを含み、
i.仮想アドレスのページオフセットを含むビットの値が、自身に関連付けられた物理アドレスの対応ビットの値に等しくない、または
ii.仮想アドレス内のページオフセットが、自身に関連付けられた物理アドレスと、前記関連付けられた物理アドレスが含まれるページ内の物理アドレスとの差に等しくない方法。 - メモリ管理装置内の物理アドレス空間を仮想アドレス空間にマッピングする方法であって、
a.複数の仮想アドレスを含む仮想アドレス空間を提供するステップ、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間を提供するステップ、
c.1個以上の変換記述子を提供するステップ、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子とページ内の複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持するステップを含み、
ページのサイズまたは有効サイズが、2n(nは自然数)に等しくない数である方法。 - メモリ管理装置内の物理アドレス空間を仮想アドレス空間にマッピングする方法であって、
a.複数の仮想アドレスを含む仮想アドレス空間を提供するステップ、
b.各ページが1個以上の物理アドレスを含む複数のページを含む物理アドレス空間を提供するステップ、
c.1個以上の変換記述子を提供するステップ、および
i.複数の仮想アドレスと変換記述子との関連を維持し、
ii.変換記述子と複数の物理アドレスとの関連を維持することにより、
d.複数の仮想アドレスと複数の物理アドレスとの関連を維持するステップを含み、
ページが仮想アドレス空間にマッピングされる複数の物理アドレスを含んでいて、前記ページはまた予備のスペースを含み、予備のスペースとは前記仮想アドレス空間にマッピング可能であるが、前記仮想アドレス空間にはマッピングされていない前記ページ内の複数の物理アドレスである方法。 - 変換記述子が、前記変換記述子に関連付けられた1個以上の仮想アドレスに対するアクセス制御を行なうべく構成されている、メモリ管理装置内の物理アドレス空間を仮想アドレス空間にマッピングする方法。
- ページがマッピングされる前記仮想アドレスが、
i.前記ページのサイズの倍数でも、
ii.前記ページの有効サイズの倍数でも
ない、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。 - ページの前記物理アドレスが、
i.前記ページのサイズの倍数でも、
ii.前記ページの有効サイズの倍数でも
ない、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。 - ページのサイズが2n(nは自然数)に等しくない数である、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- 仮想アドレス空間にマッピングされたページのサイズが、同じく前記仮想アドレス空間にマッピングされた他のページのサイズより大きく、且つ前記他のページのサイズが1より大きい、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- 前記ページのサイズが前記他のページのサイズの倍数ではない、請求項37に記載のメモリ管理装置。
- ページの有効サイズが2n(nは自然数)に等しくない数である、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- 仮想アドレス空間にマッピングされたページの有効サイズが、同じく前記仮想アドレス空間にマッピングされた他のページの有効サイズにより大きく、且つ前記他のページのサイズが1より大きい、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- 前記ページの有効サイズが前記他のページの有効サイズの倍数ではない、請求項40に記載のメモリ管理装置。
- ページ内の物理アドレスを仮想アドレスにマッピングするページテーブルエントリが、前記ページ内の1個以上の他の物理アドレスを前記仮想アドレスにマッピングするページテーブルエントリではない、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- ページテーブルエントリがページ内に含まれる物理アドレスを仮想アドレスにマッピングし、且つ他のページ内に含まれる物理アドレスを前記仮想アドレスにマッピングする、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- ページのサイズまたは有効サイズが、単一の変換記述子に関連付けられた前記ページ内に含まれる物理アドレスの数の数の倍数ではない、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- 仮想アドレスが、前記仮想アドレスがアクセスされた場合に呼び出されるプロシージャに関連付けられている、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。
- 前記プロシージャがページに値を保存して、前記ページを前記仮想アドレス空間にマッピングする、請求項45に記載のメモリ管理装置。
- 前記プロシージャが設定可能である、請求項45に記載のメモリ管理装置。
- a.複数のルックアップテーブルエントリを含む仮想ルックアップテーブルであって、各ルックアップテーブルエントリに1個以上の仮想アドレスが関連付けられている仮想ルックアップテーブルを提供する、および
b.ルックアップテーブルエントリに対応する値をページに保存し、前記ルックアップテーブルエントリに関連付けられた仮想アドレスがアクセスされた場合に、前記ページを仮想アドレス空間にマッピングする、請求項28、29、30、31、32、または33のいずれか1項に記載の方法。 - 前記ルックアップテーブルエントリに関連付けられた仮想アドレスがアクセスされない場合、前記ルックアップテーブルエントリの値を計算する必要も前記仮想アドレス空間に保存する必要もない、請求項48に記載のメモリ管理装置。
- a.前記仮想アドレス空間内の複数の仮想アドレスに論理的に保存された複数のデータ要素を含む仮想メモリ領域を提供するステップ、および
i.1個以上のページ内の1個以上の物理アドレスをそれらの既存の仮想アドレスから分離する、および
ii.前記1個以上物理アドレスを新規仮想アドレスに改めて関連付けることにより、
b.前記仮想メモリ領域内の1個以上のデータ要素をそれらの既存の仮想アドレスから前記仮想アドレス空間内の新規仮想アドレスに再配置するステップ、
請求項28、29、30、31、32、または33のいずれか1項に記載の方法。 - 新規位置に再配置された物理アドレスの数が2n(nは自然数)に等しい数である、請求項50に記載のメモリ管理装置。
- 新規位置に再配置された物理アドレスの数が2n(nは自然数)に等しくない数である、請求項50に記載のメモリ管理装置。
- a.1個以上の既存データ要素を新規仮想アドレスに再配置させる、および
b.既に仮想アドレスにマッピングされていない追加的な物理アドレスであるページ内の追加的な物理アドレスを、他の物理アドレスがマッピングされている仮想アドレスよりも下位の仮想アドレスにマッピングすることにより、
前記仮想メモリ領域の1個以上の追加的なデータ要素を前記仮想アドレス空間に挿入する、請求項50に記載のメモリ管理装置。 - a.ページ内の物理アドレスを自身がマッピングされている前記仮想アドレスからマッピング解除する、および
b.1個以上の既存データ要素を新規仮想アドレスに再配置させることにより、
前記仮想メモリ領域内の1個以上のデータ要素を削除する、請求項50に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2020/CHE/2009 | 2009-09-25 | ||
IN2020CH2009 | 2009-09-25 | ||
PCT/IN2010/000641 WO2011048606A2 (en) | 2009-09-25 | 2010-09-22 | Virtual-memory system with variable-sized pages |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013509621A true JP2013509621A (ja) | 2013-03-14 |
JP5647252B2 JP5647252B2 (ja) | 2014-12-24 |
Family
ID=43757915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012530409A Active JP5647252B2 (ja) | 2009-09-25 | 2010-09-22 | メモリ管理装置及び仮想メモリ領域を提供する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20120185667A1 (ja) |
EP (1) | EP2529309A2 (ja) |
JP (1) | JP5647252B2 (ja) |
CN (1) | CN102754086B (ja) |
CA (1) | CA2775306A1 (ja) |
WO (1) | WO2011048606A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021531583A (ja) * | 2018-07-27 | 2021-11-18 | アーム・リミテッド | メモリ・システム内に記憶されている制御テーブルのための二分探索手順 |
JP2021532468A (ja) * | 2018-07-27 | 2021-11-25 | アーム・リミテッド | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014504381A (ja) * | 2010-05-19 | 2014-02-20 | カムレッシュ ガンディー | データオブジェクトの構成 |
US20130254511A1 (en) * | 2010-10-22 | 2013-09-26 | St-Ericsson Sa | Improving Storage Lifetime Using Data Swapping |
JP5393813B2 (ja) * | 2012-01-27 | 2014-01-22 | 京セラドキュメントソリューションズ株式会社 | メモリー管理装置および画像処理装置 |
JP5949046B2 (ja) * | 2012-03-28 | 2016-07-06 | ソニー株式会社 | 記録装置、記録方法 |
US9058268B1 (en) * | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
CN103793331B (zh) * | 2012-10-31 | 2016-12-21 | 安凯(广州)微电子技术有限公司 | 一种物理内存管理方法及装置 |
US9329991B2 (en) | 2013-01-22 | 2016-05-03 | Seagate Technology Llc | Translation layer partitioned between host and controller |
US10114758B2 (en) * | 2013-09-13 | 2018-10-30 | Nvidia Corporation | Techniques for supporting for demand paging |
US9519649B2 (en) | 2013-10-07 | 2016-12-13 | International Business Machines Corporation | Free space management in a database |
US9213600B2 (en) | 2013-11-11 | 2015-12-15 | Seagate Technology Llc | Dynamic per-decoder control of log likelihood ratio and decoding parameters |
CN105468542B (zh) * | 2014-09-03 | 2019-03-26 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN106528453B (zh) * | 2015-09-10 | 2019-10-18 | 中国航空工业第六一八研究所 | 基于复合尺度页的页表分区管理装置和方法 |
WO2017044124A1 (en) * | 2015-09-11 | 2017-03-16 | Hewlett Packard Enterprise Development Lp | Switch process virtual address space |
KR101754348B1 (ko) * | 2016-06-17 | 2017-07-06 | 고려대학교 산학협력단 | 정보 저장 테이블을 관리하는 분석 시스템 및 그의 제어 방법 |
US10169246B2 (en) * | 2017-05-11 | 2019-01-01 | Qualcomm Incorporated | Reducing metadata size in compressed memory systems of processor-based systems |
CN107644000B (zh) * | 2017-09-20 | 2020-11-03 | 中国核动力研究设计院 | 一种基于at96总线的页面扩展方法 |
GB2568301B (en) | 2017-11-13 | 2020-05-13 | Advanced Risc Mach Ltd | Address space access control |
US10599580B2 (en) * | 2018-05-23 | 2020-03-24 | International Business Machines Corporation | Representing an address space of unequal granularity and alignment |
DE112019007482T5 (de) * | 2019-06-21 | 2022-04-21 | Intel Corporation | Verfahren, systeme, fertigungartikel und vorrichtungen zur steuerung von adressraumisolierung in einer virtuellen maschine |
CN110287131B (zh) * | 2019-07-01 | 2021-08-20 | 潍柴动力股份有限公司 | 一种内存管理方法及装置 |
WO2021120132A1 (zh) * | 2019-12-19 | 2021-06-24 | 华为技术有限公司 | 一种存储***及数据交叉方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6417137A (en) * | 1987-07-13 | 1989-01-20 | Nippon Telegraph & Telephone | Control system for large-capacity page |
US5708790A (en) * | 1995-12-12 | 1998-01-13 | International Business Machines Corporation | Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system |
US7620793B1 (en) * | 2006-08-28 | 2009-11-17 | Nvidia Corporation | Mapping memory partitions to virtual memory pages |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555387A (en) * | 1995-06-06 | 1996-09-10 | International Business Machines Corporation | Method and apparatus for implementing virtual memory having multiple selected page sizes |
US5835961A (en) * | 1996-05-03 | 1998-11-10 | Digital Equipment Corporation | System for non-current page table structure access |
US6477612B1 (en) * | 2000-02-08 | 2002-11-05 | Microsoft Corporation | Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process |
US7484070B1 (en) * | 2004-01-09 | 2009-01-27 | Conexant Systems, Inc. | Selective memory block remapping |
US7296139B1 (en) * | 2004-01-30 | 2007-11-13 | Nvidia Corporation | In-memory table structure for virtual address translation system with translation units of variable range size |
US8504795B2 (en) * | 2004-06-30 | 2013-08-06 | Intel Corporation | Method, system, and program for utilizing a virtualized data structure table |
US7386700B2 (en) * | 2004-07-30 | 2008-06-10 | Sandisk Il Ltd | Virtual-to-physical address translation in a flash file system |
US7895410B1 (en) * | 2005-06-14 | 2011-02-22 | Oracle America, Inc. | Method and apparatus for facilitating adaptive page sizes |
US7516297B2 (en) * | 2005-11-10 | 2009-04-07 | Hewlett-Packard Development Company, L.P. | Memory management |
US7752417B2 (en) * | 2006-06-05 | 2010-07-06 | Oracle America, Inc. | Dynamic selection of memory virtualization techniques |
US8527734B2 (en) * | 2009-01-23 | 2013-09-03 | International Business Machines Corporation | Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system |
JP2011018182A (ja) * | 2009-07-08 | 2011-01-27 | Panasonic Corp | アドレス変換装置 |
-
2010
- 2010-09-22 JP JP2012530409A patent/JP5647252B2/ja active Active
- 2010-09-22 US US13/498,098 patent/US20120185667A1/en not_active Abandoned
- 2010-09-22 CA CA2775306A patent/CA2775306A1/en not_active Abandoned
- 2010-09-22 EP EP10796153.4A patent/EP2529309A2/en not_active Withdrawn
- 2010-09-22 WO PCT/IN2010/000641 patent/WO2011048606A2/en active Application Filing
- 2010-09-22 CN CN201080052852.5A patent/CN102754086B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6417137A (en) * | 1987-07-13 | 1989-01-20 | Nippon Telegraph & Telephone | Control system for large-capacity page |
US5708790A (en) * | 1995-12-12 | 1998-01-13 | International Business Machines Corporation | Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system |
US7620793B1 (en) * | 2006-08-28 | 2009-11-17 | Nvidia Corporation | Mapping memory partitions to virtual memory pages |
Non-Patent Citations (2)
Title |
---|
CSNB200801048001; Douglas E.Comer: Essentials of Computer Architecture 第1版, 20080422, P.207,208, 株式会社翔泳社 * |
JPN6014003738; Douglas E.Comer: Essentials of Computer Architecture 第1版, 20080422, P.207,208, 株式会社翔泳社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021531583A (ja) * | 2018-07-27 | 2021-11-18 | アーム・リミテッド | メモリ・システム内に記憶されている制御テーブルのための二分探索手順 |
JP2021532468A (ja) * | 2018-07-27 | 2021-11-25 | アーム・リミテッド | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット |
JP7359837B2 (ja) | 2018-07-27 | 2023-10-11 | アーム・リミテッド | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット |
JP7397057B2 (ja) | 2018-07-27 | 2023-12-12 | アーム・リミテッド | メモリ・システム内に記憶されている制御テーブルのための二分探索手順 |
US11907301B2 (en) | 2018-07-27 | 2024-02-20 | Arm Limited | Binary search procedure for control table stored in memory system |
Also Published As
Publication number | Publication date |
---|---|
EP2529309A2 (en) | 2012-12-05 |
WO2011048606A3 (en) | 2011-06-23 |
CN102754086B (zh) | 2015-09-16 |
US20120185667A1 (en) | 2012-07-19 |
CN102754086A (zh) | 2012-10-24 |
WO2011048606A2 (en) | 2011-04-28 |
JP5647252B2 (ja) | 2014-12-24 |
CA2775306A1 (en) | 2011-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5647252B2 (ja) | メモリ管理装置及び仮想メモリ領域を提供する方法 | |
EP2510444B1 (en) | Hierarchical translation tables control | |
TWI356995B (en) | Data processing apparatus having memory protection | |
US10956340B2 (en) | Hardware-based pre-page walk virtual address transformation independent of page size utilizing bit shifting based on page size | |
US10061711B2 (en) | File access method and apparatus, and storage system | |
US6230248B1 (en) | Method and apparatus for pre-validating regions in a virtual addressing scheme | |
JP3640978B2 (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
US7149873B2 (en) | Methods and apparatus for a dual address space operating system | |
KR102440128B1 (ko) | 통합된 객체 인터페이스를 위한 메모리 관리 장치, 시스템 및 그 방법 | |
KR20210033054A (ko) | 컴퓨터 프로세서의 가상 머신 레지스터 | |
WO2008094455A2 (en) | Hierarchical immutable content-addressable memory processor | |
US11409663B2 (en) | Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes | |
US11237980B2 (en) | File page table management technology | |
US11334499B2 (en) | Method for locating metadata | |
US9047175B2 (en) | System and method for storing and modifying data objects | |
KR20210038992A (ko) | 하이퍼바이저의 존재를 기반으로 한 컴퓨터 프로세서의 동적 구성 | |
CA2758235A1 (en) | Device and method for storage, retrieval, relocation, insertion or removal of data in storage units | |
JP2015060571A (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
Wongchaowart et al. | A content-aware block placement algorithm for reducing PRAM storage bit writes | |
JP2013140546A (ja) | メモリ管理装置 | |
KR20190005135A (ko) | 비휘발성 메모리의 데이터 스와핑 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140507 |
|
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: 20141008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5647252 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |