JPH07182240A - アドレス変換を行う装置及び方法 - Google Patents
アドレス変換を行う装置及び方法Info
- Publication number
- JPH07182240A JPH07182240A JP6279699A JP27969994A JPH07182240A JP H07182240 A JPH07182240 A JP H07182240A JP 6279699 A JP6279699 A JP 6279699A JP 27969994 A JP27969994 A JP 27969994A JP H07182240 A JPH07182240 A JP H07182240A
- Authority
- JP
- Japan
- Prior art keywords
- translation
- entry
- block
- virtual address
- 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
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
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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
変換を行い、同時に複数ページ・サイズを支援する変換
メカニズムを実現するための方法及び装置を提供する。 【構成】 物理メモリの連続部分を記述するための少な
くとも1つのページ・フレーム記述子(PFD)と、仮
想メモリの連続部分を記述するための少なくとも1つの
変換ブロック(TB)と、ハッシュ・リストとを備えて
いる。
Description
ムに関するものである。とりわけ、本発明は、仮想メモ
リ・コンピュータ・システムにおける仮想アドレスと物
理アドレスとの変換に関するものである。
て、該システムが、大形で、一様な一次メモリ(実際に
は、より小型で、断片化され、かつ、ハード・ディスク
のような二次記憶装置によって部分的にシミュレートさ
れるか、あるいは、そのいずれかである)を提供するも
のであるかのように思わせることが可能な技法である。
アプリケーションは、特殊なハードウェアによって物理
アドレスに変換(マッピング)される仮想アドレスを介
してメモリにアクセスする。ページング及びセグメンテ
ーションは、仮想メモリの一般的な2つの実施手段であ
る。
施する場合、仮想アドレス空間は、ページと呼ばれるい
くつかの固定サイズのブロックに分割され、各ページ
は、該システムにおいて利用可能な、同様のサイズの物
理ページのうち任意のページにマッピングすることが可
能である。一般に、メモリ管理ユニット(MMU)また
はページ式メモリ管理ユニット(PMMU)のような特
殊メモリ管理ハードウェアが、仮想アドレスから物理ア
ドレスへのアドレス変換を実施する。このタイプのメモ
リ管理では、物理(システム)メモリに存在しないデー
タにアクセスを試みると、PMMUが中央演算処理装置
(CPU)に対して割り込み信号を送り、オペレーティ
ング・システムは、アプリケーションには、「分からな
い」ようにして、他の記憶装置(ハード・ディスクのよ
うな)からのデータを転送する。
から物理メモリ空間へのマッピングは1回だけしか行わ
れない。一方、他の実施例では、いくつかのアドレス空
間が設けられ、それぞれ、物理アドレス空間に対してそ
れ自体のマッピングを行うことが可能である。従って、
第1のプロセスでは、第1の仮想アドレスを利用して所
定の物理アドレスを参照することが可能であり、マルチ
プロセッサ環境において、同じCPUまたは異なるCP
Uで実行される第2のプロセスでは、第2の仮想アドレ
スによって、前記所定の物理アドレスを参照することに
なる。こうした場合、同じ物理アドレスに対応する2つ
の仮想アドレスは、「エイリアス」と呼ばれる。
ジを利用して、操作可能なものもある。このため、マッ
ピングされる仮想アドレス空間の要求に最も良く合致す
るように、マッピングに利用される仮想ページ・サイズ
を選択することが可能になる。大きいページを利用する
場合、MMUにおける単一変換エントリを利用して、大
量の仮想メモリを変換することが可能である。従って、
MMUが必要とする資源が少なくなれば、結果として、
性能が向上することになる。しかし、大きいページを利
用すると、小さいページが用いられる場合には遭遇する
ことのない、メモリの断片化問題が生じることになる。
メモリにマッピングされる仮想メモリを備えたコンピュ
ータ・システムのためにアドレス変換を行うための新規
な方法および装置を提供することにある。
の連続部分を記述するための少なくとも1つのページ・
フレーム記述子と、仮想メモリの連続部分を記述するた
めの少なくとも1つの変換ブロックと、ハッシュ・リス
トを備えている。
ドレス、基底物理アドレスから始まる物理アドレス範
囲、及び、変換エントリ・ポインタを備えている。
底仮想アドレスから始まる仮想アドレス範囲、及び、変
換ブロックの仮想アドレス範囲のマッピングに利用され
るページ・サイズを備えている。各変換ブロックは、さ
らに、ヘッダ、及び、少なくとも1つの変換エントリも
備えている。各ヘッダは変換ブロック・ポインタを備
え、各変換エントリは逆方向ポインタを備えている。変
換ブロックの各変換エントリは、変換ブロックの仮想ア
ドレス範囲における異なる等サイズの変換範囲に対応し
ている。
・ページ・フレームによって指示される場合、変換エン
トリの逆方向ポインタが対応するページ・フレームを記
述したページ・フレーム記述子を指示し、このページ・
フレーム記述子の変換エントリ・ポインタが、変換エン
トリを指示する。
ントリを備えている。各ハッシュ・エントリには、変換
ヘッダ・ポインタ、及び、ハッシュ・エントリに固有の
関連するハッシュ・インデックスが設けられている。少
なくとも1つの変換ブロックから成る仮想アドレス変換
連鎖が存在している場合、仮想アドレス変換連鎖の各変
換ブロック毎に仮想アドレス範囲があり、仮想アドレス
変換連鎖の変換ブロックにおける仮想アドレス範囲の各
仮想アドレスにハッシングを施すことによって、同じハ
ッシュ・エントリのハッシュ・インデックスを得ること
が可能になる。ハッシュ・インデックスが得られたハッ
シュ・エントリの変換ヘッダ・ポインタは、仮想アドレ
ス変換連鎖における第1の変換ブロックを指示する。仮
想アドレス変換連鎖の中に、2つ以上の変換ブロックが
ある場合、第1の変換ブロックの変換ブロック・ポイン
タが、仮想アドレス変換連鎖の第2の変換ブロックを指
示し、第1の変換ブロックを除く仮想アドレス変換連鎖
の全ての変換ブロックが、仮想アドレス変換連鎖におけ
る異なる変換ブロックの変換ブロック・ポインタによっ
て指示される。
変換を行い、同時に複数ページ・サイズを支援する変換
メカニズムを実現するための方法及び装置が開示され
る。例えば、仮想アドレスが与えられると、変換メカニ
ズムは、対応する物理アドレス(存在すれば)を提供す
る。代わりに、物理アドレスが与えられると、変換メカ
ニズムは、対応する仮想アドレス(存在すれば)を提供
する。エイリアシングが可能な場合、変換メカニズム
は、特定の物理アドレスに対する全ての仮想アドレスを
提供する。変換メカニズムは、多様なサイズのページの
1つによって、物理メモリの一部をマッピングできるよ
うにすることによって、複数ページ・サイズを支援す
る。変換メカニズムは、また、さまざまなサイズのペー
ジによって、大きい物理ページの多重マッピングを行え
るようにすることによって、複数ページ・サイズを支援
する。
全な理解が得られるように、特定の数、材料、及び、構
成が示される。ただし、当該技術の熟練者には明らかな
ように、特定の細部にこだわらなくても、本発明の実施
は可能である。他の例においては、本発明が不必要に曖
昧にならないようにするため、周知のシステムは、略図
またはブロック図の形で示される。
サイズを支援するアドレス変換メカニズムを利用した、
仮想メモリ・コンピュータ・システムの実施例が示され
ている。アドレス変換メカニズムは、変換すべき仮想ア
ドレス(VA)が与えられると、対応する物理アドレス
(PA)が存在する場合には、仮想アドレスを対応する
物理アドレスに変換する。アドレス変換メカニズムは、
変換すべき物理アドレスが与えられると、対応する仮想
アドレスが存在する場合には、物理アドレスを対応する
仮想アドレスに変換する。エイリアシングが可能な場
合、アドレス変換メカニズムは、与えられた物理アドレ
スに対応する全ての仮想アドレスを見つけることが可能
である。
いて、中央演算処理装置(CPU)110は、メモリ・
バス120のようなメモリ相互接続手段によって、一次
メモリ130及び二次メモリ140に結合されている。
コンピュータ・システム100の実施例の場合、中央演
算処理装置110は、二次メモリ140に対するアクセ
スよりも速く、一次メモリ130にアクセスすることが
可能である。しかし、二次メモリ140は、一次メモリ
130よりもはるかに大きい。従って、二次メモリ14
0は、一次メモリ130よりも多くのデータを保持する
ことが可能である。この実施例の場合、二次メモリ14
0は、ページに分割され、ページは、中央演算処理装置
110が必要とするところに応じて、一次メモリ130
に対してスワップ・インまたはスワップ・アウトされ
る。こうして、中央演算処理装置110は、あたかも、
一次メモリ130の速度で、二次メモリ140の全ての
メモリにアクセスできるかのように、ほぼ同じ速度で、
一次メモリ130において利用可能なメモリより多くの
メモリにアクセスすることが可能になる。
タを必要とする場合、まず、一次メモリ130をチェッ
クして、一次メモリ130に、必要なデータを納めたペ
ージが含まれているか否かを確認する。一次メモリ13
0が必要なデータを備えていない場合、必要なデータを
納めたページは、二次メモリ140から一次メモリ13
0にコピーされるので、中央演算装置110によるアク
セスが可能になる。
れるプロセスがデータを必要とする場合、該プロセス
は、仮想アドレスを利用して、必要なデータを指定する
ことになる。アドレス変換バッファ(TLB)150
は、最近、または、頻繁に用いられる仮想アドレスの小
集合に関する仮想アドレス・物理アドレス変換を納めた
ハードウェア装置である。TLB150は、ハードウェ
アで実施されるので、要求された仮想アドレスの物理ア
ドレス変換を中央演算処理装置110に対して迅速に供
給することが可能である。ただし、TLB150には、
可能性のある仮想アドレスの小集合に関する変換だけし
か含まれていない。TLB150が、中央演算処理装置
110の要求するアドレス変換を提供することができな
い場合、別の変換メカニズムを利用して、要求されたア
ドレス変換を行うことになる。
ての仮想アドレスに変換することも可能である。例え
ば、ページが物理メモリから消去された場合、消去され
たページを指示している全ての仮想アドレスを見つける
ことができるので、対応する全ての変換テーブル・エン
トリを無効にすることが可能である。また、物理アドレ
スから仮想アドレスに変換する計算ステップが不要にな
る場合もあるが、やはり、特定の物理ページを指示する
仮想ページの位置指定を行う必要はある。例えば、特定
の物理アドレスを納めた特定の物理ページを指示する、
1つ以上の仮想ページに関連した1つ以上の属性を検査
し、あるいは、変更することが必要になる可能性があ
る。
物理アドレス・仮想アドレス変換を実施するための基準
を作成する毎に、該基準には、特定の物理アドレスを含
む特定の物理ページを指示する仮想ページの識別は行わ
れるが、特定の物理アドレスに対応する仮想アドレスを
実際に計算するステップは実施されない事例が含まれ
る。同様に、仮想アドレスから物理アドレスへの変換を
計算するステップは、不要であるが、特定の仮想アドレ
スを指示する変換エントリまたはページ・フレーム記述
子の位置を指定することは必要になる場合もある(例え
ば、1つ以上の属性を検査または変更するため)。やは
り、簡略化のため、今後明らかになるように、仮想アド
レス・物理アドレス変換を実施するための基準を作成す
る毎に、該基準には、特定の仮想アドレスに対応する物
理アドレスを含む物理ページの識別は行われるが、特定
の仮想アドレスに対応する物理アドレスを実際に計算す
るステップは実施されない事例が含まれる。
の1つに関する階層構造が示されている。図2には、3
レベルの変換階層が示されている。CPUが、仮想アド
レスから物理アドレスへの変換を要求する毎に、レベル
Iによる変換が試みられる。図2において、レベルI
は、アドレス変換バッファ(TLB)220のようなメ
モリ管理ユニット(MMU)として示されている。上述
のように、レベルIは、一般に、ハードウェアで実施さ
れ、小数のアドレスについて高速変換を行うことを特徴
とする。レベルIにおいて変換可能なアドレス集合は、
必要とされる可能性の最も高い変換が、レベルIにおい
て確実に利用できるようにするため、変換集合の構成要
素が更新されるのに応じて、動的に変化する。
ァ(TSB)がある。本発明の実施例の場合、TSB
は、一次メモリによって実施される。従って、TLB2
20ほど速くはないが、TSBは、TLB220よりも
大きい変換構成要素の集合を保持することが可能であ
る。従って、TLB220が、変換を提供できない(T
LB「ミス」)場合、TSBをテストして、必要な変換
がTSBに記憶されているか否かが確認される。その変
換がTSBによって提供し得る(TSB「ヒット」)場
合には、該変換は、CPU及びアドレス変換バッファ2
20に提供される。一方、TSBが変換を提供できない
(TSB「ミス」)場合には、レベルIIIの変換が実
施される。
よりも遅く、総合的であることを特徴とする。一般に、
仮想メモリ・オペレーティング・システムは、データ記
憶装置に記憶された大形のソフトウェア変換テーブル
(BST)280を提供する。例えば、データ記憶装置
は、一次メモリ、二次メモリ、または、一次メモリと二
次メモリの組み合わせとして設けることが可能である。
BST280は、仮想アドレス空間から物理アドレス空
間への全ての存在する変換を含んでいる。従って、レベ
ルIIIの変換は、比較的長時間を要するが、存在すれ
ば、変換を見つけ出すことができる。レベルIIIの変
換を行うと、その結果は、CPU、変換記憶バッファ、
及び、アドレス変換バッファ220に提供される。
PUがTLB220のようなレベルIのトランスレータ
に対する仮想アドレス要求(210)を発生すると実施
される。レベルIの変換がうまくゆけば、レベルIのト
ランスレータは、要求された仮想アドレス210に対応
する要求された物理アドレス(230)を提供する。
うなレベルIIのトランスレータに対して、仮想アドレ
ス要求240が行われる。レベルIIの変換がうまくゆ
けば、仮想アドレス要求240に対応する物理アドレス
260が、レベルIのトランスレータに戻され、さらに
は、CPUに戻される(物理アドレス230)。
ST280のようなレベルIIIのトランスレータに仮
想アドレス要求270が送られる。BST280は、総
合的であるため、物理アドレス変換が存在すれば、物理
アドレス290としてレベルIIのトランスレータ(T
SB)に戻される。変換は、物理アドレス260として
レベルIのトランスレータ(TLB220)にも提供さ
れ、最終的には、物理アドレス230としてCPUに供
給される。
施例によって行っているが、よりレベルの多い、また
は、少ない変換を含む代替実施例も存在する。さらに、
本発明の解説は、BST280のようなレベルIIIの
大形ソフトウェア変換テーブルの実施例によって行って
いるが、本発明の代替実施例には、解説の変換メカニズ
ムが、レベルIのトランスレータとして、あるいは、よ
り可能性が高いのは、レベルIIのトランスレータとし
て利用されるものもある。
仮想アドレスとの関係が示されている。図3には、さら
に、仮想アドレス・物理アドレス変換を実施する際に用
いられる、ハッシュ・インデックスの導出が示されてい
る。図3において、物理アドレス310は、物理ページ
・オフセット320と物理ページ数330から構成され
るものとして示されている。物理ページは物理メモリの
連続部分である。概念としては、物理ページは、「行」
の集合に分割されるものとみなすことが可能であり、こ
の場合、行は、個々にアドレス指定可能な最小のデータ
集合を表している。物理ページ・オフセット320は、
所定の物理ページ内においてアドレス指定されている行
を指定する。物理ページ数330は、物理ページ集合の
うちからどのページが選択されているかを指定する。
ことが可能である。大きいページは、小さいページより
も多くの行を備えることになる。このため、所定の量の
物理メモリは、小さいページに分割するよりも、大きい
ページに分割したほうがページ数を少なくすることがで
きる。従って、小さいページの場合より、大きいページ
のほうが、物理ページ・オフセット320に充当される
物理アドレス310のビット数が多くなる。相応じて、
小さいページの場合より、大きいページのほうが、物理
ページ数330に充当される物理アドレス310のビッ
ト数が少なくなる。
なるように制約が加えられており、所定のページ・サイ
ズに関する物理ページの総数も、やはり、2の整数乗に
なるように制約が加えられている場合、物理アドレス3
10は、K+Lビットの2進数として表すことができる
が、ここで、物理アドレス310のKビットは、物理ペ
ージ数330を指定するために利用され、物理アドレス
310のLビットは、物理ページ・オフセット320を
指定するために利用される。
またはいくつかの小さいページであるかのように取り扱
うことが可能である。実施例の1つでは、40ビットの
物理アドレス空間が用いられる。この物理アドレス空間
は、サイズが8KBの小さいページと、サイズが64K
Bの大きいページを利用して、マッピングされる。この
実施例の場合、物理アドレス310は40ビットの2進
数である。小さい(8KB)ページがアドレス指定され
ている場合、物理アドレス310の13の最下位ビット
(LSb)(213=8K)が、物理ページ・オフセット
320を表すことになる。物理アドレス310の27の
上位ビット(MSb)が、所定の小さいページに関する
物理ページ数330を表すことになる。一方、大きい
(64KB)のページが利用されている場合、物理アド
レス310の16の下位ビット(LSb)(216=64
K)が、大きいページに関する物理ページ・オフセット
320を提供するために利用されることになる。大きい
ページの場合、物理アドレス310の24のMSbを利
用して、所定の物理ページに関する所定の物理ページ数
が指定されることになる。
仮想アドレス340は、物理アドレス310の分割と同
様のやり方で、仮想ページ・オフセット350及び仮想
ページ数360に分割されることが分かる。仮想アドレ
ス340は、多くの異なるページ・サイズによってマッ
ピングすることが可能であるが、所定の仮想アドレスに
関するページ・サイズの選択が済むと、所定の仮想アド
レスは、いつでも、1つのページ・サイズだけでマッピ
ングすることが可能になる。所定のページ・サイズに関
して、仮想ページ・オフセット350は、対応する物理
ページ・オフセット320と等しくなる。仮想メモリ技
法は、一般に、大きい仮想アドレス空間から小さい物理
アドレス空間へのマッピングに利用されるので、所定の
ページ・サイズに関して、通常は、物理ページよりも仮
想ページのほうが多くなる。
サイズの仮想アドレス・スペースを表す64ビットの2
進数である。サイズが8KBの小ページが用いられる場
合は、仮想ページ・オフセット350は仮想アドレス3
40の13のLSbとなり、仮想ページ数360は仮想
アドレス340の51のMSbとなる。同様にして、サ
イズが64KBの大ページが用いられる場合は、仮想ペ
ージ・オフセット350は仮想アドレス340の16の
LSbとなり、仮想ページ数360は、仮想アドレス3
40の48のMSbとなる。以後の詳細な説明では、別
途の注記がなされていない限り、物理アドレス・スペー
スが40ビットであり、仮想アドレス・スペースが64
ビットであり、大小のページ・サイズがそれぞれ64K
Bと8KBである実施例を説明する。別の実施例では、
仮想アドレスと物理アドレス、及び大小のページについ
て異なるサイズのものを用いることができる。更に、別
の実施例では、2つ以上のサイズを用いることができ
る。その他に、更に別の実施例では、仮想アドレス・ス
ペースよりも物理アドレスのスペースの方が大きい。
法で、仮想アドレス340のM+Nの最下位ビットから
Mの上位ビットを抜き出すことによってハッシュ・リス
ト・インデックスが作成される。その後、ハッシュ・リ
スト・インデックスは、仮想アドレス340を対応する
物理アドレス310に変換する場合に、ハッシュ・テー
ブルにインデックス付けするために使用される。
3つのページの、メモリの一つの連続部分へのマッピン
グが示されている。図4では、大ページ412は物理メ
モリの連続部分をマッピングする。大ページ412は一
連の行から成っているものとみなすことができ、ページ
の各行は大ページ412の“上部”からのオフセットに
よって特定することができる。このような場合、大ペー
ジ・オフセット410は、ページ内の個々の行を特定す
るために用いられるフィールドである。すなわち、例え
ば、大ページ412が16Kの行から成っているものと
すると、大ページ・オフセット410は14ビットのフ
ィールド(214=16K)となろう。
ングされたメモリの同一部分を、2つの中間サイズのペ
ージによってマッピングすることも可能であり、その場
合、各々の中間サイズのページは大ページ412の半分
のサイズである。これは中間ページ0 422と、中間
ページ1 424によって示されている。そこで、大ペ
ージ・オフセット410の残りの下位ビットが、参照中
の特定の中間サイズ・ページに中間ページ・オフセット
420を付与する。このように、中間ページ・オフセッ
ト420が0の値を有し、中間ページ選択ビット426
も0の値を有する場合は、中間ページ0 422の最初
の行がアドレス指定されることになる。これを大ページ
412及び大ページ・オフセット410と比較すると、
このような場合に大ページ412の最小の行も特定され
ることが理解されよう。
ドに1が記入され、中間ページ選択ビットフィールド4
26にも1が記入されている場合は、中間ページ1 4
24の最後の行が、アドレス指定されているメモリの行
となろう。ページ・オフセットが全ての1を含む大ペー
ジ・オフセット410であるとみなされる場合、これは
大ページ412の最終行と対応する。
リをマッピングする実施例の場合、中間ページ0 42
2は大ページ412のメモリの最初の8Kの行をマッピ
ングし、中間ページ1 424が大ページ412の最後
の8Kの行をマッピングする。大ページ・オフセット4
10は依然として14ビットのフィールドである。中間
ページ・オフセット420、及び対応する中間ページ選
択ビット426とみなした場合、大ページ・オフセット
410の上位ビットは、中間ページ0 422、又は中
間ページ1 424のいずれがアドレス指定されている
かを特定する。そこで、大ページ・オフセット410の
13の下位ビット(213=8K)は選択ビット426に
よって特定された中間ページの中間ページ・オフセット
420を付与することになる。
イズのページに分割されるものとみることができる。こ
のことは、小ページ0 432、小ページ1 434、
小ページ2 436及び小ページ3 438によって示
されている。このような場合、大ページ・オフセット4
10は小ページ選択ビット440と、小ページ・オフセ
ット430に分割されるものとみなすことができる。大
ページ・オフセット410が16KBのページを特定す
る14ビットのフィールドである例を引き続き検討する
と、大ページを4分割することによって、各々が4KB
のサイズの4つの小ページが作成される。この例では、
大ページ・オフセット410の2つの上位ビット(22
=4)によって小ページ選択ビット440が得られ、大
ページ・オフセット410の12の下位ビット(212=
4K)によって、小ページ選択ビット440により特定
された小ページに小ページ・オフセット430が付与さ
れる。
連続部分内で異なるサイズのページを組み合わせること
も可能である。すなわち、上記とは異なり、大ページ4
12が一つの中間ページと、2つの小ページに分割され
るものとみなすことができる。従って、例えば、大ペー
ジ412の最初の半分を、中間ページ0 422によっ
てマッピングし、大ページ412の後の半分を、小ペー
ジ2 436と、小ページ3 438によってマッピン
グすることができる。
サイズ毎の3つのマッピングを示しているが、特定のメ
モリ部分にそれ以上、又はそれ以下のページ・サイズを
マッピングすることが可能である。更に、各ページが2
の整数乗である行数から成っている限り、より小さいペ
ージのマッピングはより大きいページのマッピングに常
に適合する。例えば、別の実施例では、2つのページ・
サイズだけがマッピングされる。この別の実施例では、
小ページのサイズは8KBであり、大ページのサイズは
64KBである。
つ以上のハードウェア・ページのサイズを有することが
できる。コンピュータ・システムが一つ、又は一つ以上
のハードウェア・ページのサイズのいずれを有するにせ
よ、コンピュータ・システムは最小限のハードウェア・
ページのサイズを有している。オペレーティング・シス
テムは最小限のハードウェア・ページ・サイズと少なく
とも同じサイズのページを用いる。オペレーティング・
システムがハードウェア・ページ・サイズよりも大きい
サイズの単数又は複数のページ・サイズを用いる場合、
これらのページは充分な数の連続する同サイズのハード
ウェア・ページを互いに結合することによって構成さ
れ、必要なオペレーティング・システムのページ・サイ
ズが作成される。オペレーティング・システムのページ
は代表的には、2の整数乗と、ハードウェア・ページ・
サイズのサイズとの積である。このように、例えば、物
理メモリは、コンピュータ・システムによって4KBの
サイズのハードウェア・ページへと分割されることがで
きる。ハードウェア・ページ・サイズで全ての仮想メモ
リ動作を実行するのではなく、仮想メモリのオペレーテ
ィング・システムは、ページをメモリに転送する際に実
際に使用されるより大きいページを有することができ
る。このように、実施例では、ハードウェア・ページの
サイズが4KBである場合でも、仮想メモリのオペレー
ティング・システムはサイズが8KBと64KBのペー
ジでの動作を実行可能である。このような場合、各々の
8KBのオペレーティング・システムのページは、2つ
の連続するハードウェア・ページから成っており、各々
の64KBのオペレーティング・システムのページは、
16の連続するハードウェア・ページから成っている。
このような実施例では、ハードウェア・サイズが4KB
の16の連続するページを、オペレーティング・システ
ムの8KBの8つの小ページ、又はオペレーティング・
システムの64KBの一つの大ページであるとみなすこ
とができる。
ら物理アドレスへの変換を可能にする機構が図示されて
いる。図5の同じ機構を、物理アドレスから仮想アドレ
スへの変換にも使用できる。一つ以上の仮想アドレスを
所定の物理アドレスにマッピングできる場合は、図5の
機構を、所定の物理アドレスの全ての別名の仮想アドレ
スを決定するために使用できる。更に、図5の機構によ
って、同時に一つ以上のページ・サイズについて、物理
アドレスを仮想アドレス・マッピングへとマップするこ
とができる。その上、図5の機構によって、一つ以上の
ページ・サイズを用いて物理メモリの特定の連続部分を
同時にマッピングすることができる。
限り、図5の説明では一貫して主要な実施例を参照す
る。一実施例では、2つのハードウェア・ページ・サイ
ズがあり、それは8KBと64KBである。オペレーテ
ィング・システムのページ・サイズも2つあり、オペレ
ーティング・システムの小さいページ・サイズは、小さ
いハードウェア・ページ・サイズ(すなわち8KB)と
等しく、オペレーティング・システムの大きいページ・
サイズは、小さいハードウェア・ページ・サイズ(すな
わち64KB)と等しい。
4は、情報のオペレーティング・システム・ページ(ペ
ージ・フレーム)を記憶するために使用されている物理
メモリ内の特定の連続領域を記述するために、仮想メモ
リのオペレーティング・システムによって作成される各
々のページ・フレーム記述子である。ページ・フレーム
記述子は、それが記述するページ・フレーム用の物理ア
ドレス・ベースを特定するフィールドを有している。こ
のフィールドは記述されるページ・フレームを記憶する
ために使用される物理メモリ内の連続領域の始点での物
理アドレスを含んでいる。ページ・フレーム記述子は更
に、ページ・フレームの物理アドレス範囲を特定するフ
ィールドを有している。ページ・フレーム記述子内の変
換ポインタ・フィールドは、少なくとも一つの仮想アド
レス変換が存在する場合、所定のページフレームについ
て第1の仮想アドレス変換を指示する変換ポインタを含
んでいる。特定のページ・フレーム記述子に対応する仮
想アドレスが存在しない場合は、変換ポインタはその旨
を指示する。このような事態は、例えば、ページ・フレ
ーム記述子が、そこにロードされるべきデータを未だ有
している空いたメモリを記述する場合、又は、ページ・
フレーム記述子が、そこにロードされたデータを有する
が、起動中のプロセスが目下のところデータを使用して
いないページ・フレームを記述する場合に生ずる。
び546を参照すると、各々のブロックは仮想メモリを
物理スペースへマッピングするための変換ブロックであ
る。従って、各ブロックは仮想アドレス・スペースの連
続部分を表す。ブロック内で、仮想アドレス・スペース
の連続部分は、一つの大ページ、又は幾つかのより小さ
いページとしてマッピングされる。各変換ブロックは関
連するハッシュ・インデックスを有している。各変換ブ
ロックはヘッダと、変換エントリの配列へと分割されて
いる。主要な実施例では、大ページを表す変換ブロック
は一つの変換エントリだけを有し、一方、小ページを表
す変換ブロックは、複数の、例えば8つの変換エントリ
を有する。従って、主要な実施例では、小ページに対応
する変換ブロックには、大ページに対応する変換ブロッ
クよりも多くの記憶スペースが割当てられる。何故なら
ば、小ページの変換ブロックは大ページの変換ブロック
よりも多くの変換エントリを有しているからである。
よってマップされる仮想アドレス・スペースの連続部分
全体に関する情報を含んでいる。これには、マップされ
るメモリ部分の基底仮想アドレスや、ブロック内の変換
エントリの数や、有効な変換エントリの数や、ブロック
内の全ての変換エントリのページ・サイズや、ブロック
内の全ての変換エントリに共通のその他の属性等のよう
な情報が含まれる。一つ以上の変換ブロックが同じハッ
シュ・インデックスと関連する場合は、ヘッダには特定
のハッシュ・インデックスと関連する次の変換ブロック
へのポインタが含まれる。
ントリが利用するページのサイズを示すページ・サイズ
・インジケータ、逆方向ポインタ及び変換エントリに対
応するハードウェア・ページに特有の属性から成ってい
る。逆方向ポインタはページ・フレーム記述子を示す。
想アドレスを使用している文脈を特定する関連する文脈
数を有する。文脈数は変換ブロックによってマップされ
る仮想アドレスの全てに共通であるので、この文脈数は
変換ブロックのヘッダに記憶されることができる。文脈
数が用いられる場合は、仮想アドレス変換は、変換ブロ
ックのヘッダに記憶された文脈数が、変換されるべき仮
想アドレスに関連する文脈と一致した場合だけ有効であ
る。この説明のため、文脈数は仮想アドレスの一部であ
るものと考えることができる。
特定の物理アドレス用に仮想アドレスが存在するなら
ば、特定の物理アドレスを含むページ・フレームを記述
するページ・フレーム記述子は、変換ブロック内の変換
エントリへのポインタを含む変換ポインタ・フィールド
を有する。一方、変換ポインタによって指示される変換
エントリ内の逆方向ポインタは、ページ・フレーム記述
子を指示する。
特定の物理アドレス用の所定の仮想アドレスが得られ
る。この変換は、変換される物理アドレスを含むページ
・フレームを記述するページ・フレーム記述子が検知さ
れるまで、ページ・フレーム記述子を検索することによ
って行われる。この動作が行われる理由は、全てのペー
ジ・フレーム記述子が物理アドレスの基底フィールドと
範囲フィールドを有しているからである。フレーム記述
子を有効に探索するには幾つかの公知の技術がある。こ
れらの技術は公知であるので、ここでは詳細には説明し
ないが、代表的には、いくつかの種類のルックアップ・
テーブル・データ構造を実施することが含まれる。
・フレームに対応するページ・フレーム記述子が一旦識
別されると、ページ・フレーム記述子の変換ポインタが
点検される。変換ポインタが、変換されるべき物理アド
レスに対応する仮想アドレスがないことを指示した場合
は、変換プロセスは(変換されるべきアドレスがないの
で)変換を行わずに終了する。そうではない場合は、変
換ブロック内の対応する変換エントリを検知するため
に、ページ・フレーム記述子の変換ポインタが用いられ
る。次に、変換されるべき物理アドレスに対応する仮想
アドレスを計算するのに利用される情報を導出するた
め、ブロックのヘッダをアクセスするのにヘッダインジ
ケータが利用される。例えば、主要な実施例では、ヘッ
ダは、変換ブロックが一つの大ページを記述し、一つの
変換エントリだけを有することを指示し、且つ、変換ブ
ロック用の基底仮想アドレスを供給する。変換されるべ
き物理アドレス用のページ・オフセットは、変換される
べき物理アドレスの適宜のLSb数を抜き出すことによ
って検知することができる。抜き出されるビット数は変
換エントリ用のページ・サイズによって左右される。ペ
ージ・オフセットを変換ブロックヘッダ内に記憶された
仮想基底アドレスに付加すると、変換される物理アドレ
スに対応する仮想アドレスが得られる。
有する場合は、変換の計算はやや複雑になる。変換ブロ
ック内の変換エントリの位置を計算するために、変換の
ヘッダインジケータを利用することができる。例えば、
ヘッダインジケータはブロックヘッダの始端へのポイン
タとして利用できる。変換エントリのメモリ・アドレス
が判明しており、ヘッダと各変換エントリのサイズも判
明しているので、変換ブロック内の変換エントリの位置
を計算することができる。あるいは、ヘッダインジケー
タは、変換ブロック内の変換エントリの位置を指示する
数であることができ、その場合は、ヘッダと各変換エン
トリのサイズが判明しているので、ヘッダの始端のメモ
リ・アドレスを計算することができる。変換されるべき
物理アドレス用のページ・オフセットは上記のように計
算することができる。しかし、この時点で、変換エント
リ数から1が減算され、その差が、単一の変換エントリ
でマップされたメモリのサイズと乗算される。次に積が
ページ・オフセットに加算され、次に、その和が変換ブ
ロックヘッダに記憶された仮想基底アドレスに加算され
て、変換されるべき物理アドレスに対応する仮想アドレ
スが算出される。
換エントリは別の変換ブロック(又は同じ変換ブロッ
ク)内の変換エントリに指示することができる順方向ポ
インタを有する。順方向ポインタによって指示された変
換エントリは、記述される物理ページ用の別名に対応す
る。このように、特定のページ・フレームが変換エント
リの連鎖を指示する。連鎖内の各変換エントリは、変換
されるべき物理アドレス用の一つの別名を記述する。こ
の連鎖構造によって、所定の物理アドレスに関して全て
の仮想アドレスの検索が可能になる。
式が図5に、PFD510で開始される連鎖で示されて
いる。このように、ページ・フレーム記述子510によ
って記述されるページ内に、変換されるべき物理アドレ
スがあるものと想定すると、PFD510内のページ・
フレーム・ポインタは、矢印520で示したように、ブ
ロック540の変換エントリTN1を指示していること
が判る。変換エントリTN1は、変換されるべき物理ア
ドレス用の第1の仮想アドレス変換を行う。更に、矢印
530によって示されるように、ブロック540の変換
エントリTN1は、ブロック542の変換エントリTN
3を指示するポインタを有している。矢印530をたど
ると、ページ・フレーム記述子510内の物理アドレス
をマップする第2の仮想アドレスが、ブロック542の
変換エントリTN3内に見い出される。第3の変換があ
る場合は、変換エントリTN3内のポインタは、その変
換を含む別のブロックを指示するであろう。しかし、こ
の場合は、変換エントリTN3から出る矢印はない。従
って、変換連鎖(TN3)の終了が明らかになり、変換
されるべき物理アドレスに対応する全てのエイリアスが
検索されたことになる。
リTN2へ向かう矢印522をたどることによって、次
にTN2から、ブロック546の変換エントリTN5へ
の矢印532を辿ることによって、PFD512内に含
まれる物理アドレスの変換が可能である。第3の例とし
て、ページ・フレーム記述子514内に含まれる物理ア
ドレスは、ブロック544の変換エントリTN4へ向か
う矢印524をたどることによって、次にブロック54
6の変換エントリTN6への矢印534をたどることに
よって変換可能である。
そのマッピング・リスト上の、より小さいサイズのペー
ジのマッピングを有することができることに留意された
い。一実施例では、ページ・フレーム記述子は、異なる
ページ・サイズの各々のページ・サイズがページ・フレ
ーム記述子によって表されるサイズ未満であるか、等し
い限り、異なるページ・サイズのマッピングを有するこ
とができる。このような場合、各々の対応する変換エン
トリは同じページ・フレーム記述子を再指示するが、異
なる変換エントリはページ・フレーム記述子内の異なる
領域を再指示することができる。
記述子のページ・サイズよりも大きいページ・サイズの
マッピングが特定のページ・フレーム記述子のマッピン
グ・リストに存在することができる。この場合は、マッ
ピングはマッピング・リスト内のページ・サイズを上昇
せしめることによって記憶される。大きいマッピングは
第1のページ・フレーム記述子だけを再指示し、変換プ
ロセスはこの場合を処理するように修正される。
アドレスを物理アドレスに変換するためにも利用でき
る。これはハッシュ・リスト560によって行われる。
ハッシュ・リスト560はハッシュエントリ(HE0-F
)から成っている。各ハッシュエントリは空である
か、又は変換ブロックを指示するポインタを含んでい
る。
換ブロックを指定するのに充分な大きさのものが選択さ
れる。図5の例では、ハッシュ・リスト560は16の
エントリを有しており、従って、ハッシュ・リストへの
インデックスは4ビット(24 =16)によって指定さ
れることになる。ほとんどの実施例で、より大きいハッ
シュ・リストが使用される。しかし、この例では、説明
を簡単にするために16のエントリを有するハッシュ・
リストが使用される。主要な実施例では、変換ブロック
は、一つのエントリを有する大ページ変換ブロックであ
れ、8つのエントリを有する小ページ変換ブロックであ
れ、64KBをマップする。64KBは16ビットの2
進数(216=64K)によって表すことができるので、
ハッシュ・インデックスは、変換されるべき仮想アドレ
スの20の(すなわち16プラス4の)下位ビットか
ら、4つの上位ビットを抜き出すことによって、変換さ
れるべき仮想アドレスから作成されることになる。この
ように、図3を簡単に参照すると、一実施例では、Nは
16に等しく、Mは4に等しいことが理解されよう。
ックスは空である場合も、空でない場合もあるハッシュ
・エントリを含むハッシュ・リスト内にインデックス付
けする。ハッシュ・エントリのポインタが空である場合
は、変換されるべき仮想アドレスに対応する物理アドレ
スはない。そこで第1の変換ブロックが点検され、変換
されるべき仮想アドレスが第1の変換ブロック内に含ま
れているか否かが判定される。変換ブロックの範囲は、
(ヘッダ内に記憶された)基底仮想アドレスで始まり、
変換ブロックのエントリの最大数と、ブロック内の個々
の変換エントリによって記述されるメモリのサイズとの
乗算した値だけ継続する。変換されるべき仮想アドレス
がこの範囲内にある場合は、変換されるべき仮想アドレ
スを含むとみられる第1の変換ブロックの変換エントリ
が点検されて、それが有効な変換エントリであるか否か
が判定される。それが有効な変換エントリではない場合
は、変換は存在しない。しかし、変換エントリが有効で
ある場合は、変換されるべき仮想アドレス用の物理アド
レスは、第1変換ブロックのヘッダ、変換エントリ及び
変換エントリの逆方向ポインタによって指示されるペー
ジ・フレーム・エントリに含まれる情報から計算するこ
とができ、仮想アドレスから物理アドレスへの変換が達
成されていることになる。
ュ・リスト・エントリによって指示された変換ブロッ
ク)が変換されるべき仮想アドレスに対応しない場合
は、第1変換ブロックのヘッダが点検されて、ヘッダが
空のポインタを含んでいるか、又は別の変換ブロックへ
のポインタを含んでいるかが判定される。他方、ヘッダ
が第2の変換ブロックへのポインタを含んでいる場合
は、第2の変換ブロックが点検されて、それが変換され
るべき仮想アドレスに対応するか否かが判定される。こ
のプロセスは、変換が達成され、有効ではない変換エン
トリ内で変換されるべき仮想アドレスを含む変換ブロッ
クが検知され、又は、変換連鎖を出るまで反復される。
ロセスは、物理アドレスから仮想アドレスへの変換プロ
セスと相反形である。仮想アドレスを物理アドレスに変
換する場合、変換ブロックと、変換されるべき仮想アド
レスを含む仮想アドレス範囲を記述するブロック内の変
換エントリとを検知するために、変換ブロックのヘッダ
の情報が利用される。変換エントリに対応するページ・
フレーム記述子を位置決めするために、変換エントリの
逆方向ポインタが利用される。そこで、ページ・フレー
ムの物理基底アドレスを物理ページ・オフセットに加算
することによって、物理アドレスが作成される。
ロセスが2つの例について図5に示されている。第1の
例では、変換されるべき仮想アドレスから抜き出された
ハッシュ・インデックスは、ハッシュ・リスト560の
ハッシュ・エントリHE4 である。HE4 を点検するこ
とによって、(矢印572で示すように)ブロック54
0のヘッダ550が検知される。次に、変換ブロック5
40のヘッダ550が点検されて、変換ブロック540
が変換中の仮想アドレスを含むアドレス・スペースに対
応するか否かが判定される。対応せず、適宜の変換エン
トリが有効である場合は、変換が検知され、適宜の変換
エントリからの逆方向ポインタを、変換されるべき仮想
アドレスの物理アドレスを含むPFDへと逆に指示する
ことができる。対応しており、適宜の変換エントリが有
効ではない場合は、変換は存在しない。このように、変
換されるべき仮想アドレスが変換エントリTN1と関連
するアドレス・スペース内に含まれている場合は、逆方
向ポインタ521がPFD510へと逆に指示しよう。
一方、変換されるべき仮想アドレスが、変換エントリT
N2と関連するアドレス・スペース内に含まれている場
合は、逆方向ポインタ523がPFD512へと逆に指
示しよう。変換ブロック550が、変換中の仮想アドレ
スを含むアドレス・スペースと対応しない場合は、ヘッ
ダ550内のポインタは変換ブロック544へと指示す
る。変換ブロック544は同じハッシュ・インデックス
を有する別の仮想アドレス・マッピングである。次に、
この仮想アドレス・マッピングが点検されて、このマッ
ピングが変換されるべき仮想アドレスを含むか否かが判
定される。再度、含んでおり、適宜の変換エントリが有
効である場合は、変換が検知されたことになる。含んで
いるが、適宜の変換エントリが有効ではない場合は、変
換は存在せず、逆方向ポインタ525はTN4から逆に
PFD514へと指示することができる。変換ブロック
544が、変換される仮想アドレスを含むアドレス・ス
ペースに対応しない場合は、ヘッダ554用のポインタ
が空であるので、検知されるべきその他の仮想アドレス
・マッピングは存在せず、変換されるべき所定の仮想ア
ドレスには変換は存在しない。
ドレスから抜き出されたハッシュ・インデックスは、ハ
ッシュ・リスト560のハッシュエントリHEc であ
る。ハッシュエントリHEc は(矢印574に示すよう
に)ヘッダ552を指示し、逆方向ポインタ531は変
換エントリTN3からPFD510を指示する。一方、
ブロック542のヘッダ552は、(矢印584で示す
ように)ブロック546のヘッダ556へのポインタを
含み、逆方向ポインタ533と535は、変換エントリ
TN5及びTN6から、PFD512と514をそれぞ
れ指示する。図5では逆方向ポインタは常に変換エント
リからPFDへと指示するものの、別の実施例では、変
換エントリTN3のポインタ531のような逆方向ポイ
ンタは、TN1のような変換エントリを指示できること
に留意されたい。このような場合、TN3からの逆方向
ポインタはTN1に指示し、次に、変換エントリTN1
の逆方向ポインタ521はPFD510を指示すること
になろう。
の方法でアクセス可能なデータ構造を提示する。第1の
方法では、ハッシュ・リストへのインデックスで開始す
ることによって、データ構造をアクセスして、変換され
るべき仮想アドレス用の物理アドレス変換を行うことが
できる。第2の方法では、ページ・フレーム記述子で開
始することによって、データ構造をアクセスして、所定
の物理アドレスに対応する全ての仮想アドレス変換を行
うことができる。
リのオペレーティング・システムによって用いられる全
てのページ・サイズをマッピングするのに充分な大きさ
であるように選択された。このような場合、変換が存在
する場合は、図5の変換機構は常に第1のハッシュで変
換を行う。所定の変換ブロックによってマップされるメ
モリのサイズが、各変換ブロックが有効な変換エントリ
で密集するように選択され、又、最も普及したページ・
サイズを変換ブロックでマッピングできる場合に、図5
の変換機構は最も効率よく動作する。別の実施例では、
多重のハッシュ機能が用いられる。このように、例え
ば、小ページ変換ブロックだけが、(8つではなく)4
つの変換変換エントリを有するように一実施例を変更し
たものと想定してみる。この別の実施例では、小ページ
変換ブロックは32KBの仮想アドレス・スペースをマ
ップすることができ、大ページ・アドレス・ブロックは
依然として64KBのアドレス・スペースをマップする
であろう。このように、大ページ変換ブロックのアドレ
ス・スペースは依然として16ビット2進数で表現され
るものの、小ページ変換ブロックのアドレス・スペース
は16ビット2進数で表現されよう。この別の実施例で
は、仮想アドレスから物理アドレスに変換する場合、2
つのハッシュ・インデックスと変換連鎖が横移動されな
ければならないことがある。第1のハッシュ・インデッ
クスは、仮想アドレスがより小さいページ・サイズに対
応するものと想定することによって、変換されるべき仮
想アドレスから抜き出される。従って、4ビットのハッ
シュ・インデックスがある図5の例では、第1のハッシ
ュ・インデックスは、変換されるべき仮想アドレスの1
9の下位ビットから、4つの上位ビットを抜き出すこと
によって作成されることになる。次に、第1ハッシュ・
インデックスのハッシュエントリで開始される変換連鎖
が点検される。アドレス・スペースの一部として、変換
されるべき仮想アドレスを含む変換ブロックが連鎖内で
検知されない場合は、変換されるべき仮想アドレスが大
ページ・サイズに対応するものと想定することによっ
て、変換されるべき仮想アドレスから第2のハッシュ・
インデックスが抜き出される。このように、4ビットの
ハッシュ・インデックスがある図5の例を継続して参照
すると、第2のハッシュ・インデックスは、変換される
べき仮想アドレスの20の下位ビットから4つの上位ビ
ットを抜き出すことによって作成されることになる。第
2のハッシュ・インデックスは第2変換連鎖の基底で第
2のハッシュエントリを提供する。このようにして、各
ハッシュ・リストに対応する変換ブロックを密集状態に
保つことができる。それによって、変換ブロック構造を
保持するのに必要なメモリの容量は最小限にされる。
サイズは一つしかない。(小ページ・サイズ)ハードウ
ェアのページ・サイズが一つの実施例では、小ページ変
換ブロックの個々の変換エントリを用いる場合、変換エ
ントリは物理メモリのハードウェア・ページ・サイズ部
分に対応する。大ページ変換ブロックの個々の変換エン
トリを用いる場合、変換エントリは物理メモリの8つの
連続するページ・サイズ部分に対応する。(8つのハー
ドウェア・サイズ・ページ×ハードウェア・サイズ・ペ
ージ当たりの8KBは、64KB、すなわち一つの大サ
イズのオペレーティング・システムのページに等し
い。)次に、オペレーティング・システムは変換エント
リを必要に応じて複数の変換エントリへと拡張すること
ができる。
サイズは対応するオペレーティング・システムのページ
・サイズと同サイズであるものの、この限定性は保持す
る必要がないことに留意されたい。従って、例えば、別
の実施例では、最小限のハードウェア・ページ・サイズ
は4KBであり、一方、オペレーティング・システムの
小ページ・サイズは8KBでもよいであろう。このよう
な場合は、2つのアプローチが可能であろう。第1のア
プローチでは、小ページ変換ブロック内の各変換エント
リは最小限のサイズのハードウェア・ページに対応し、
オペレーティング・システムの小ページを記述するため
に2つの変換エントリが利用されることになる。第2の
アプローチでは、オペレーティング・システムの各々の
小ページ用に、小ページ変換ブロック内には変換エント
リは一つしかなく、その場合、仮想アドレスが物理アド
レスに変換中に、オペレーティング・システムは小ペー
ジ変換ブロックエントリを必要に応じた適宜の数の変換
エントリへと拡張することになる。
のサイズがあり、オペレーティング・ページの大ページ
・サイズがハードウェアの大ページ・サイズの倍数であ
る場合同じ問題が生ずる。従って、例えば2つのハード
ウェア・ページ・サイズ(8KBと32KB)があるよ
うに、一実施例を変更することが可能である。子の場合
は、オペレーティング・システムの大(64KB)ペー
ジ・サイズが大きい変換ブロックによって表現された場
合、第1のアプローチが採用されると、大ページ変換ブ
ロックは2つの変換エントリを有することになる。(3
2KBのハードウェア・ページ毎に一つ)第2のアプロ
ーチが採用される場合は、大ページ変換ブロックは一つ
の変換エントリだけを有し、変換エントリは、仮想アド
レスが物理アドレスに変換中に必要に応じて2つの変換
エントリに拡張されよう。
よってマップされたアドレス・スペースのサイズと、変
換ブロック内の変換エントリの最大数との積に等しい)
アドレス・スペースのNビットのアドレス可能なセクシ
ョンをマップし、更に、ハッシュ・リスト・インデック
スがMビット数によって特定される場合、変換されるべ
き仮想アドレス用のハッシュ・リストへのインデックス
は、(図3に示すように)変換されるべき仮想アドレス
のNの下位ビットの上位に現れるMの下位ビットを抜き
出すことによって作成される。別の実施例ではハッシュ
・インデックスの別の計算方法を利用できる。すなわ
ち、別の実施例では例えば、ハッシュ・インデックス情
報は仮想アドレスと、仮想アドレスを用いている文脈を
識別する文脈数との関数である。
る変換ブロックは一つ以上の有効な変換エントリを有す
ることができる。このような場合、仮想アドレスを可能
性として2つの位置で表現でき(ページ・サイズ毎に一
箇所)、一つの一だけが変換を行う。常に最小のページ
に対応するインデックスで先ず開始することによって、
各ページ・サイズ毎に異なるハッシュ・インデックスが
計算される場合は常に、変換されるべき仮想アドレスを
含む変換ブロックが最初に検知され、この変換ブロック
が検知されると探索は終結する。一方、一つ以上のペー
ジ・サイズについて同一であるハッシュ・インデックス
について連鎖の横移動が行われ、ハッシュ・インデック
スの最小サイズのページに対応しない有効ではない変換
エントリを含む変換ブロックが検知された場合、探索が
終了する前に、連鎖の残り部分を照合して、連鎖がより
小さいページ・サイズの変換ブロックを含んでいるか否
かを判定しなければならない。
用した仮想アドレスから物理アドレスへの変換を図示し
た流れ図が示されている。図6では、仮想アドレスから
物理アドレスへの変換手順600は開始バブル610か
ら始まり、変換されるべき仮想アドレスからハッシュ・
インデックスが計算される処理ブロック620へと進
む。判断ブロック630で、ハッシュ・リストが点検さ
れ、変換されるべき仮想アドレスから計算されたハッシ
ュ・インデックスに対応するハッシュエントリが第1変
換ブロックを指示しているか、又は、それが空であるか
の判定が行われる。ハッシュ・リストが空である場合
は、判断経路632は手順ブロック670をたどり、そ
こでは手順が端末バブル690で終了する前に、変換が
存在しない状態が宣言される。複数のハッシュ・インデ
ックスがある場合には、次のハッシュ・インデックスが
計算され、手順は終了するのではなく判断ブロック63
0へと続くことに留意されたい。
ッシュ・リストが空ではない場合、判断経路634は手
順ブロック640へと進み、そこでハッシュエントリに
よって指示された変換ブロックが点検される。次に、判
断ブロック650で、変換ブロックが変換されるべき仮
想アドレスを含んでいるか否かが判定される。変換が有
効ではない場合、判断経路656は手順ブロック670
に進み、そこで変換が存在しない状態が宣言される。複
数のハッシュ・インデックスがある場合、次のハッシュ
・インデックスが計算され、手順は終了するのではな
く、判断ブロック630に続くことに再度留意された
い。さらに、一つ以上のページ・サイズについて同一で
あるハッシュ・インデックスのために連鎖が横移動さ
れ、又、ハッシュ・インデックスの最小サイズのページ
に対応しない有効ではない変換エントリを含む変換ブロ
ックが検知された場合、探索が終了する前に、連鎖の残
り部分を照合して、連鎖がより小さいページ・サイズの
変換ブロックを含んでいるか否かを判定しなければなら
ないことに留意されたい。
あることが判明すると、判断経路658はブロック68
0に進み、そこで変換の検知状態が宣言される。次に、
手順が端末バブル690で終了する前に、物理アドレス
変換が計算される。
検される変換ブロックが、変換されるべき仮想アドレス
を含んでいない場合、判断経路654は判断ブロック6
60に進み、そこで、点検される変換ブロックが変換ブ
ロック・リストの最後のブロックであるか否かを判定す
る検査が行われる。点検される変換ブロックのヘッダ内
のポインタが空である場合、同じハッシュ・インデック
スを有する、点検されるべき他の変換ブロックは存在せ
ず、判断経路664は手順ブロック670に進む。その
場合は、端末バブル690で手順が終了する前に、変換
が存在しない状態が宣言される。複数のハッシュ・イン
デックスがある場合、次のハッシュ・インデックスが計
算され、手順は終了するのではなく、判断ブロック63
0に続くことに再度留意されたい。
・リストが点検される際に、点検される変換ブロックの
ヘッダ内のポインタが、別の変換ブロックを指示してい
ることが判明すると、判断経路662は手順ブロック6
40に進み、そこで、指示されている変換ブロックが点
検される。このようにして、変換連鎖の点検は、変換さ
れるべき仮想アドレスを含む変換ブロッンクが検知され
るまで、又は、連鎖の最後のリンクの点検が終了するま
で継続される。
ら仮想アドレスへの変換を示した流れ図が図示されてい
る。図7では、物理アドレスから仮想アドレスへの変換
手順700は、開始バブル710で始まり、変換される
べき物理アドレスを含むページ・フレームを記述するペ
ージ・フレーム記述子が存在するか否かを判定する検査
が行われる判断ブロック715に進む。判断ブロック7
15で、このようなページ・フレーム記述子が存在しな
いことが判定されると、判断経路716は端末バブル7
60に進み、そこで(変換が行われるべきアドレスが存
在しないので)変換が行われずに終了する。
べき物理アドレスを含むページ・フレームを記述するペ
ージ・フレーム記述子が存在することが判定されると、
判断経路718は手順ブロック720に進み、そこで、
変換されるべき物理アドレスを含むページ・フレームを
記述するページ・フレーム記述子が点検されて、それが
マッピング・リスト内に第1変換ブロックへのポインタ
を含んでいるか否かが判定される。判断ブロック730
で、変換されるべき物理アドレスを含むページ・フレー
ム記述子内のポインタが空であることが判定されると、
変換は存在せず、判断経路732は端末バブル760に
進み、そこで再び、手順は(変換が行われるべきアドレ
スが存在しないので)変換が行われずに終了する。
ージ・フレーム記述子のマッピング・リストが空ではな
い場合には、第1変換ブロック内の変換エントリを判定
するために、ページ・フレーム記述子内の変換ポインタ
が用いられる。このような場合は、判断経路734は処
理ブロック740に進み、そこで、実際に仮想アドレス
が必要ならば、変換エントリに対応する仮想アドレスが
計算される。そうではない場合は、例えば、変換ブロッ
ク内の属性が点検、又は変更される。次に、判断ブロッ
ク750で、点検中の変換ブロックの変換エントリが点
検されて、その順方向ポインタが空であるか否かが判定
される。順方向ポインタが空である場合は、変換される
べき物理アドレスに対応する全ての仮想アドレスが識別
されたことになり、判断経路754は端末バブル760
に進み、そこで手順は終了する。
変換ブロックの変換エントリの順方向ポインタが別の
(又は同じ)変換ブロック内の別の変換エントリを指示
しているものと判定された場合は、判断経路752は手
順740に進む。手順ブロック740では、変換リスト
内の次の変換エントリが点検され、物理アドレス用の仮
想アドレスの別名が提供される。
が検知され、変換手順が端末バブル760で終了するま
で継続される。
適な実施例、及び別の実施例に関連して説明してきた
が、本発明は添付の特許請求項の趣旨と範囲内で修正と
変更が可能であることが、専門家には理解されよう。従
って、本明細書と図面は、限定的なものではなく、説明
目的であるとみなされるべきものである。
実施するコンピュータ・システムを示す図である。
のマルチ・レベル・アプローチを示す図である。
び、仮想アドレスからハッシュ・インデックスを導き出
す方法を示す図である。
サイズのマッピングを示す図である。
ある。
レスから物理アドレスへの変換を表したフロー・チャー
トである。
レスから仮想アドレスへの変換を表したフロー・チャー
トである。
構、280…大型ソフトウエア変換テーブル、560…
ハッシュ・リスト。
Claims (6)
- 【請求項1】 物理メモリにマッピングされる仮想メモ
リを備えたコンピュータ・システムのアドレス変換を行
う装置において、 基底物理アドレス、その基底物理アドレスから始まる物
理アドレス範囲、及び変換エントリ・ポインタを備え、
物理メモリの連続部分を記述する少なくとも1つのペー
ジ・フレーム記述子と、 基底仮想アドレス、基底仮想アドレスから始まる仮想ア
ドレス範囲、変換ブロックの仮想アドレス範囲をマッピ
ングするのに利用されるページ・サイズ、変換ブロック
・ポインタを備えるヘッダ、及びそれぞれが逆方向ポイ
ンタを備える少なくとも1つの変換エントリを備える変
換ブロックであって、変換ブロックの各変換エントリイ
が仮想アドレス範囲における異なる等サイズの変換範囲
に対応し、ある変換エントリの変換範囲が物理メモリ・
ページ・フレームによって戻される場合、変換エントリ
の逆方向ポインタが対応するページ・フレームを記述し
たページ・フレーム記述子を指示し、このページ・フレ
ーム記述子の変換エントリ・ポインタが変換エントリを
指示するようになっている、仮想メモリの連続部分を記
述するための少なくとも1つの変換ブロックと、 複数のハッシュ・エントリを備え、各ハッシュ・エント
リには変換ヘッダ・ポインタ、及びハッシュ・エントリ
に固有の関連するハッシュ・インデックスが設けられて
おり、少なくとも1つの変換ブロックの仮想アドレス変
換連鎖が存在して、仮想アドレス変換連鎖の各変換ブロ
ック毎に仮想アドレス範囲があり、仮想アドレス変換連
鎖の変換ブロックにおける仮想アドレス範囲の各仮想ア
ドレスにハッシングを施すことによって、同じハッシュ
・エントリのハッシュ・インデックスを得ることが可能
になる場合、ハッシュ・インデックスが得られたハッシ
ュ・エントリの変換ヘッダ・ポインタは仮想アドレス変
換連鎖における第1の変換ブロックを指示し、仮想アド
レス変換連鎖の中に2つ以上の変換ブロックがある場
合、第1の変換ブロックの変換ブロック・ポインタが仮
想アドレス変換連鎖の第2の変換ブロックを指示し、第
1の変換ブロックを除く仮想アドレス変換連鎖の全ての
変換ブロックが、仮想アドレス変換連鎖における異なる
変換ブロックの変換ブロック・ポインタによって指示さ
れるハッシュ・リストから構成される、 アドレス変換装置。 - 【請求項2】 物理メモリにマッピングされる仮想メモ
リを備えたコンピュータ・システムでアドレス変換を行
う方法において、 (a)基底物理アドレス、基底物理アドレスから始まる
物理アドレス範囲、及び変換エントリ・ポインタを備
え、物理メモリの連続部分を記述する少なくとも1つの
ページ・フレーム記述子を設けるステップと、 (b)基底仮想アドレス、基底仮想アドレスから始まる
仮想アドレス範囲、変換ブロックの仮想アドレス範囲を
マッピングするのに利用されるページ・サイズ、変換ブ
ロック・ポインタを備えるヘッダ、及びそれぞれが逆方
向ポインタを備える少なくとも1つの変換エントリを備
える変換ブロックであって、変換ブロックの各変換エン
トリイが仮想アドレス範囲における異なる等サイズの変
換範囲に対応し、ある変換エントリの変換範囲が物理メ
モリ・ページ・フレームによって戻される場合、変換エ
ントリの逆方向ポインタが対応するページ・フレームを
記述したページ・フレーム記述子を指示し、このページ
・フレーム記述子の変換エントリ・ポインタが変換エン
トリを指示するようになっている、仮想メモリの連続部
分を記述するための少なくとも1つの変換ブロックを設
けるステップと、 (c)複数のハッシュ・エントリを備え、各ハッシュ・
エントリには変換ヘッダ・ポインタ、及びハッシュ・エ
ントリに固有の関連するハッシュ・インデックスが設け
られており、少なくとも1つの変換ブロックの仮想アド
レス変換連鎖が存在して、仮想アドレス変換連鎖の各変
換ブロック毎に仮想アドレス範囲があり、仮想アドレス
変換連鎖の変換ブロックにおける仮想アドレス範囲の各
仮想アドレスにハッシングを施すことによって、同じハ
ッシュ・エントリのハッシュ・インデックスを得ること
が可能になる場合、ハッシュ・インデックスが得られた
ハッシュ・エントリの変換ヘッダ・ポインタは仮想アド
レス変換連鎖における第1の変換ブロックを指示し、仮
想アドレス変換連鎖の中に2つ以上の変換ブロックがあ
る場合、第1の変換ブロックの変換ブロック・ポインタ
が仮想アドレス変換連鎖の第2の変換ブロックを指示
し、第1の変換ブロックを除く仮想アドレス変換連鎖の
全ての変換ブロックが、仮想アドレス変換連鎖における
異なる変換ブロックの変換ブロック・ポインタによって
指示されるハッシュ・リストを設けるステップと、 (d)変換すべき仮想アドレスを受けるステップと、 (e)変換すべき仮想アドレスから第1の変換ハッシュ
・インデックスを抽出するステップと、 (f)第1の変換ハッシュ・インデックスに対応するハ
ッシュ・エントリが空でない場合、第1の変換ハッシュ
・インデックスに対応するハッシュ・エントリの変換ヘ
ッダ・ポインタによって指示される変換ブロックを検査
を受ける変換ブロックとし、検査を受けた変換ブロック
の仮想アドレス範囲を検査して、変換すべき仮想アドレ
スが、検査を受ける変換ブロックの仮想アドレス範囲内
に含まれているか否かを判定するステップと、 (g)変換すべき仮想アドレスが、検査を受ける変換ブ
ロックの仮想アドレス範囲内に含まれている場合、変換
すべき仮想アドレスを含む変換範囲を備えた、検査を受
ける変換ブロックの変換エントリを検査して、変換エン
トリが有効か否かを判定し、その変換エントリが有効で
あれば、変換エントリの逆方向ポインタを利用して、変
換エントリによって指示されるページ・フレームを記述
するページ・フレーム記述子の位置指定を行うステップ
と、 (h)変換すべき仮想アドレスが、検査を受ける変換ブ
ロックの仮想アドレス範囲内に含まれていなければ、検
査を受ける変換ブロックの変換ブロック・ポインタを検
査して、その変換ブロック・ポインタが空でなければ、
検査を受ける変換ブロックの変換ブロック・ポインタに
よって指示される変換ブロックを検査を受ける変換ブロ
ックとし、ステップ(g)及び(h)を繰り返すステッ
プから構成される、アドレス変換方法。 - 【請求項3】 さらに、 (i)変換すべき物理アドレスを受けるステップと (j)変換すべき物理アドレスを含む物理アドレス範囲
を備えたページ・フレーム記述子が存在するか否かを判
定するステップと、 (k)変換すべき物理アドレスを含む物理アドレス範囲
を備えたページ・フレーム記述子が存在する場合、その
ページ・フレーム記述子の変換エントリ・ポインタを検
査して、その変換エントリ・ポインタが変換エントリを
指示しているか否かを確認するステップと、 (l)変換エントリ・ポインタが変換エントリを指示し
ている場合、変換エントリ・ポインタによって指示され
る変換エントリを検査を受ける変換エントリとするステ
ップと、 (m)検査を受ける変換エントリ、及び、検査を受ける
変換エントリを含む変換ブロックのヘッダを利用して、
変換される物理アドレスに対応する仮想アドレスを識別
するステップが含まれていることを特徴とする、 請求項2に記載のアドレス変換方法。 - 【請求項4】 特定の物理ページが、2つ以上の仮想ペ
ージによってマッピング可能であり、変換ブロックの変
換エントリには、さらに、正方向ポインタが備わってい
て、物理ページが2つ以上の仮想ページによってマッピ
ングされる場合、少なくとも2つの変換エントリを備え
た物理アドレス変換連鎖が存在し、物理アドレス変換連
鎖の各変換エントリ毎に、ページ・フレーム記述子によ
って記述される物理ページの物理アドレス範囲の少なく
とも一部に対応する仮想アドレス範囲が設けられ、前記
ページ・フレーム記述子の変換エントリ・ポインタが、
物理アドレス変換連鎖の第1の変換エントリを指示し、
第1の変換エントリの正方向ポインタが、物理アドレス
変換連鎖における第2の変換エントリを指示し、第1の
変換エントリを除く物理アドレス変換連鎖の全ての変換
エントリが、物理アドレス変換連鎖における異なる変換
エントリの変換エントリ・ポインタによって指示され、
さらに、 (n)ステップ(l)で識別される変換エントリを含む
物理アドレス変換連鎖における全ての変換エントリを、
順次、検査を受ける変換エントリにして、ステップ
(m)を繰り返すステップが含まれることを特徴とす
る、 請求項3に記載のアドレス変換方法。 - 【請求項5】 物理メモリにマッピングされる仮想メモ
リを備えたコンピュータ・システムでアドレス変換を行
う方法において、 (a)基底物理アドレス、基底物理アドレスから始まる
物理アドレス範囲、及び変換エントリ・ポインタを備
え、物理メモリの連続部分を記述する少なくとも1つの
ページ・フレーム記述子を設けるステップと、 (b)基底仮想アドレス、基底仮想アドレスから始まる
仮想アドレス範囲、変換ブロックの仮想アドレス範囲を
マッピングするのに利用されるページ・サイズ、変換ブ
ロック・ポインタを備えるヘッダ、及びそれぞれが逆方
向ポインタを備える少なくとも1つの変換エントリを備
える変換ブロックであって、変換ブロックの各変換エン
トリイが仮想アドレス範囲における異なる等サイズの変
換範囲に対応し、ある変換エントリの変換範囲が物理メ
モリ・ページ・フレームによって戻される場合、変換エ
ントリの逆方向ポインタが対応するページ・フレームを
記述したページ・フレーム記述子を指示し、このページ
・フレーム記述子の変換エントリ・ポインタが変換エン
トリを指示するようになっている、仮想メモリの連続部
分を記述するための少なくとも1つの変換ブロックを設
けるステップと、 (c)複数のハッシュ・エントリを備え、各ハッシュ・
エントリには変換ヘッダ・ポインタ、及びハッシュ・エ
ントリに固有の関連するハッシュ・インデックスが設け
られており、少なくとも1つの変換ブロックの仮想アド
レス変換連鎖が存在して、仮想アドレス変換連鎖の各変
換ブロック毎に仮想アドレス範囲があり、仮想アドレス
変換連鎖の変換ブロックにおける仮想アドレス範囲の各
仮想アドレスにハッシングを施すことによって、同じハ
ッシュ・エントリのハッシュ・インデックスを得ること
が可能になる場合、ハッシュ・インデックスが得られた
ハッシュ・エントリの変換ヘッダ・ポインタは仮想アド
レス変換連鎖における第1の変換ブロックを指示し、仮
想アドレス変換連鎖の中に2つ以上の変換ブロックがあ
る場合、第1の変換ブロックの変換ブロック・ポインタ
が仮想アドレス変換連鎖の第2の変換ブロックを指示
し、第1の変換ブロックを除く仮想アドレス変換連鎖の
全ての変換ブロックが、仮想アドレス変換連鎖における
異なる変換ブロックの変換ブロック・ポインタによって
指示されるハッシュ・リストを設けるステップと、 (d)変換すべき仮想アドレスを受けて、ステップ
(e)〜(h)を実施するステップと、 (e)変換すべき仮想アドレスから第1の変換ハッシュ
・インデックスを抽出するステップと、 (f)第1の変換ハッシュ・インデックスに対応するハ
ッシュ・エントリが空でない場合、第1の変換ハッシュ
・インデックスに対応するハッシュ・エントリの変換ヘ
ッダ・ポインタによって指示される変換ブロックを検査
を受ける変換ブロックとし、検査を受けた変換ブロック
の仮想アドレス範囲を検査して、変換すべき仮想アドレ
スが検査を受ける変換ブロックの仮想アドレス範囲内に
含まれているか否かを判定するステップと、 (g)変換すべき仮想アドレスが、検査を受ける変換ブ
ロックの仮想アドレス範囲内に含まれている場合、変換
すべき仮想アドレスを含む変換範囲を備えた、検査を受
ける変換ブロックの変換エントリを検査して、変換エン
トリが有効か否かを判定し、その変換エントリが有効で
あれば、変換エントリの逆方向ポインタを利用して、変
換エントリによって後指示れるページ・フレームを記述
するページ・フレーム記述子の位置指定を行うステップ
と、 (h)変換すべき仮想アドレスが、検査を受ける変換ブ
ロックの仮想アドレス範囲内に含まれていなければ、検
査を受ける変換ブロックの変換ブロック・ポインタを検
査して、変換ブロック・ポインタが空でなければ、検査
を受ける変換ブロックの変換ブロック・ポインタによっ
て指示される変換ブロックを検査を受ける変換ブロック
とし、ステップ(g)及び(h)を繰り返すステップ
と、 (i)変換すべき物理アドレスを受けて、ステップ
(j)〜(m)を実施するステップと (j)変換すべき物理アドレスを含む物理アドレス範囲
を備えたページ・フレーム記述子が存在するか否かを判
定するステップと、 (k)変換すべき物理アドレスを含む物理アドレス範囲
を備えたページ・フレーム記述子が存在する場合、その
ページ・フレーム記述子の変換エントリ・ポインタを検
査して、変換エントリ・ポインタが変換エントリを指示
しているか否かを確認するステップと、 (l)変換エントリ・ポインタが変換エントリを指示し
ている場合、変換エントリ・ポインタによって指示され
る変換エントリを検査を受ける変換エントリとするステ
ップと、 (m)検査を受ける変換エントリ、及び、検査を受ける
変換エントリを含む変換ブロックのヘッダを利用して、
変換される物理アドレスに対応する仮想アドレスを識別
するステップから構成される、 アドレス変換方法。 - 【請求項6】 特定の物理ページが、2つ以上の仮想ペ
ージによってマッピング可能であり、変換ブロックの変
換エントリには、さらに、正方向ポインタが備わってい
て、物理ページが2つ以上の仮想ページによってマッピ
ングされる場合、少なくとも2つの変換エントリを備え
た物理アドレス変換連鎖が存在し、物理アドレス変換連
鎖の各変換エントリ毎に、ページ・フレーム記述子によ
って記述される物理ページの物理アドレス範囲に対応す
る仮想アドレス範囲が設けられ、前記ページ・フレーム
記述子の変換エントリ・ポインタが物理アドレス変換連
鎖の第1の変換エントリを指示し、第1の変換エントリ
の正方向ポインタが物理アドレス変換連鎖における第2
の変換エントリを指示し、第1の変換エントリを除く物
理アドレス変換連鎖の全ての変換エントリが、物理アド
レス変換連鎖における異なる変換エントリの変換エント
リ・ポインタによって指示され、さらに、 (n)ステップ(l)で識別される変換エントリを含む
物理アドレス変換連鎖における全ての変換エントリを、
順次、検査を受ける変換エントリにして、ステップ
(m)を繰り返すステップが含まれることを特徴とす
る、請求項5に記載のアドレス変換方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US139,549 | 1993-10-20 | ||
US08/139,549 US5446854A (en) | 1993-10-20 | 1993-10-20 | Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07182240A true JPH07182240A (ja) | 1995-07-21 |
JP3577575B2 JP3577575B2 (ja) | 2004-10-13 |
Family
ID=22487216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27969994A Expired - Fee Related JP3577575B2 (ja) | 1993-10-20 | 1994-10-20 | アドレス変換を行う装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5446854A (ja) |
EP (1) | EP0650124B1 (ja) |
JP (1) | JP3577575B2 (ja) |
KR (1) | KR100343027B1 (ja) |
DE (1) | DE69427625T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006221636A (ja) * | 2005-02-07 | 2006-08-24 | Samsung Electronics Co Ltd | Run単位アドレスマッピングテーブル及びそれの構成方法 |
JP2011204247A (ja) * | 2006-02-22 | 2011-10-13 | Sony Computer Entertainment Inc | 独立論理アドレス空間とそれぞれに対するアクセス管理を提供する方法および装置 |
Families Citing this family (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336180B1 (en) | 1997-04-30 | 2002-01-01 | Canon Kabushiki Kaisha | Method, apparatus and system for managing virtual memory with virtual-physical mapping |
US5555387A (en) * | 1995-06-06 | 1996-09-10 | International Business Machines Corporation | Method and apparatus for implementing virtual memory having multiple selected page sizes |
DE69428881T2 (de) * | 1994-01-12 | 2002-07-18 | Sun Microsystems, Inc. | Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt |
JP3604176B2 (ja) * | 1994-09-14 | 2004-12-22 | 株式会社東芝 | 仮想空間管理方法及び分散処理システム |
US5887190A (en) * | 1995-05-15 | 1999-03-23 | Nvidia Corporation | System for determining from a command storing in a storage circuit an application program which has initiated the command to determine an input/output device address |
US7577782B2 (en) * | 1996-02-02 | 2009-08-18 | Sony Corporation | Application programming interface for data transfer and bus management over a bus structure |
US6519268B1 (en) | 1996-03-07 | 2003-02-11 | Sony Corporation | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure |
US5873123A (en) * | 1996-06-25 | 1999-02-16 | International Business Machines Corporation | Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries |
US5855013A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Method and apparatus for creating and maintaining a computer database utilizing a multi-purpose data format |
US5930827A (en) * | 1996-12-02 | 1999-07-27 | Intel Corporation | Method and apparatus for dynamic memory management by association of free memory blocks using a binary tree organized in an address and size dependent manner |
AUPO648397A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
US6012132A (en) * | 1997-03-31 | 2000-01-04 | Intel Corporation | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table |
US6088780A (en) * | 1997-03-31 | 2000-07-11 | Institute For The Development Of Emerging Architecture, L.L.C. | Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address |
US6182201B1 (en) * | 1997-04-14 | 2001-01-30 | International Business Machines Corporation | Demand-based issuance of cache operations to a system bus |
US6289138B1 (en) | 1997-04-30 | 2001-09-11 | Canon Kabushiki Kaisha | General image processor |
US6195674B1 (en) | 1997-04-30 | 2001-02-27 | Canon Kabushiki Kaisha | Fast DCT apparatus |
US6414687B1 (en) | 1997-04-30 | 2002-07-02 | Canon Kabushiki Kaisha | Register setting-micro programming system |
AUPO647997A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Memory controller architecture |
US6061749A (en) | 1997-04-30 | 2000-05-09 | Canon Kabushiki Kaisha | Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword |
US6707463B1 (en) | 1997-04-30 | 2004-03-16 | Canon Kabushiki Kaisha | Data normalization technique |
US6249853B1 (en) | 1997-06-25 | 2001-06-19 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
US6282625B1 (en) | 1997-06-25 | 2001-08-28 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
US6069638A (en) * | 1997-06-25 | 2000-05-30 | Micron Electronics, Inc. | System for accelerated graphics port address remapping interface to main memory |
US6112285A (en) * | 1997-09-23 | 2000-08-29 | Silicon Graphics, Inc. | Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support |
US6182089B1 (en) | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US6157398A (en) | 1997-12-30 | 2000-12-05 | Micron Technology, Inc. | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
US7071946B2 (en) * | 1997-12-30 | 2006-07-04 | Micron Technology, Inc. | Accelerated graphics port for a multiple memory controller computer system |
US6252612B1 (en) | 1997-12-30 | 2001-06-26 | Micron Electronics, Inc. | Accelerated graphics port for multiple memory controller computer system |
US6108733A (en) * | 1998-01-20 | 2000-08-22 | Micron Technology, Inc. | Method for extending the available number of configuration registers |
US6243775B1 (en) | 1998-01-20 | 2001-06-05 | Micron Technology, Inc. | System for extending the available number of configuration registers |
US6272576B1 (en) | 1998-01-20 | 2001-08-07 | Micron Technology, Inc. | Method for extending the available number of configuration registers |
US6185655B1 (en) * | 1998-01-22 | 2001-02-06 | Bull, S.A. | Computer system with distributed data storing |
US6321276B1 (en) * | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
US6594701B1 (en) | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
US6233667B1 (en) * | 1999-03-05 | 2001-05-15 | Sun Microsystems, Inc. | Method and apparatus for a high-performance embedded memory management unit |
US6535867B1 (en) * | 1999-09-29 | 2003-03-18 | Christopher J. F. Waters | System and method for accessing external memory using hash functions in a resource limited device |
US6625715B1 (en) * | 1999-12-30 | 2003-09-23 | Intel Corporation | System and method for translation buffer accommodating multiple page sizes |
US6480950B1 (en) * | 2000-01-24 | 2002-11-12 | Oracle International Corporation | Software paging system |
US6549997B2 (en) * | 2001-03-16 | 2003-04-15 | Fujitsu Limited | Dynamic variable page size translation of addresses |
US6938144B2 (en) * | 2001-03-22 | 2005-08-30 | Matsushita Electric Industrial Co., Ltd. | Address conversion unit for memory device |
US7007152B2 (en) * | 2001-12-28 | 2006-02-28 | Storage Technology Corporation | Volume translation apparatus and method |
US20040024729A1 (en) * | 2002-07-30 | 2004-02-05 | Worley John S. | Method and system for storing sparse data in memory and accessing stored sparse data |
US7617249B2 (en) * | 2003-09-06 | 2009-11-10 | Oracle International Corporation | Method and system of handling document operation requests on documents having large collections with constrained memory |
US7076632B2 (en) * | 2003-10-16 | 2006-07-11 | International Business Machines Corporation | Fast paging of a large memory block |
US7278008B1 (en) | 2004-01-30 | 2007-10-02 | Nvidia Corporation | Virtual address translation system with caching of variable-range translation clusters |
US7334108B1 (en) | 2004-01-30 | 2008-02-19 | Nvidia Corporation | Multi-client virtual address translation system with translation units of variable-range size |
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 |
US7418582B1 (en) | 2004-05-13 | 2008-08-26 | Sun Microsystems, Inc. | Versatile register file design for a multi-threaded processor utilizing different modes and register windows |
US7739577B2 (en) * | 2004-06-03 | 2010-06-15 | Inphase Technologies | Data protection system |
US7937525B2 (en) * | 2004-06-25 | 2011-05-03 | Intel Corporation | Method and apparatus for decoding a virtual machine control structure identification |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7290116B1 (en) * | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US7519796B1 (en) | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Efficient utilization of a store buffer using counters |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7543132B1 (en) | 2004-06-30 | 2009-06-02 | Sun Microsystems, Inc. | Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes |
US7616218B1 (en) * | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
CN103258572B (zh) | 2006-05-12 | 2016-12-07 | 苹果公司 | 存储设备中的失真估计和消除 |
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US20080028181A1 (en) * | 2006-07-31 | 2008-01-31 | Nvidia Corporation | Dedicated mechanism for page mapping in a gpu |
US8347064B1 (en) | 2006-09-19 | 2013-01-01 | Nvidia Corporation | Memory access techniques in an aperture mapped memory space |
US8352709B1 (en) | 2006-09-19 | 2013-01-08 | Nvidia Corporation | Direct memory access techniques that include caching segmentation data |
US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
US8601223B1 (en) | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
US7546439B1 (en) * | 2006-09-22 | 2009-06-09 | Sun Microsystems, Inc. | System and method for managing copy-on-write faults and change-protection |
US7549035B1 (en) * | 2006-09-22 | 2009-06-16 | Sun Microsystems, Inc. | System and method for reference and modification tracking |
US7472253B1 (en) * | 2006-09-22 | 2008-12-30 | Sun Microsystems, Inc. | System and method for managing table lookaside buffer performance |
US8707011B1 (en) * | 2006-10-24 | 2014-04-22 | Nvidia Corporation | Memory access techniques utilizing a set-associative translation lookaside buffer |
US8700883B1 (en) | 2006-10-24 | 2014-04-15 | Nvidia Corporation | Memory access techniques providing for override of a page table |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US8504794B1 (en) | 2006-11-01 | 2013-08-06 | Nvidia Corporation | Override system and method for memory access management |
US8533425B1 (en) | 2006-11-01 | 2013-09-10 | Nvidia Corporation | Age based miss replay system and method |
US8347065B1 (en) * | 2006-11-01 | 2013-01-01 | Glasco David B | System and method for concurrently managing memory access requests |
US8607008B1 (en) | 2006-11-01 | 2013-12-10 | Nvidia Corporation | System and method for independent invalidation on a per engine basis |
US8706975B1 (en) | 2006-11-01 | 2014-04-22 | Nvidia Corporation | Memory access management block bind system and method |
US8700865B1 (en) | 2006-11-02 | 2014-04-15 | Nvidia Corporation | Compressed data access system and method |
WO2008068747A2 (en) | 2006-12-03 | 2008-06-12 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US7957951B2 (en) * | 2007-03-16 | 2011-06-07 | Robert Bosch Gmbh | Address translation system for use in a simulation environment |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8429493B2 (en) * | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US20090006804A1 (en) * | 2007-06-29 | 2009-01-01 | Seagate Technology Llc | Bi-level map structure for sparse allocation of virtual storage |
US8259497B2 (en) * | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8225181B2 (en) * | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) * | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US7930515B2 (en) * | 2008-07-29 | 2011-04-19 | International Business Machines Corporation | Virtual memory management |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8713330B1 (en) | 2008-10-30 | 2014-04-29 | Apple Inc. | Data scrambling in memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) * | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8862859B2 (en) * | 2010-05-07 | 2014-10-14 | International Business Machines Corporation | Efficient support of multiple page size segments |
US8745307B2 (en) | 2010-05-13 | 2014-06-03 | International Business Machines Corporation | Multiple page size segment encoding |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8493781B1 (en) | 2010-08-12 | 2013-07-23 | Apple Inc. | Interference mitigation using individual word line erasure operations |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
KR20130014943A (ko) * | 2011-08-01 | 2013-02-12 | 삼성전자주식회사 | 임의의 메모리 집합을 지원하는 메모리 구성 장치 및 방법 |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9058268B1 (en) | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60204048A (ja) * | 1984-03-28 | 1985-10-15 | Hitachi Ltd | 仮想記憶方式 |
US4648033A (en) * | 1984-09-07 | 1987-03-03 | International Business Machines Corporation | Look-aside buffer LRU marker controller |
JPS6184754A (ja) * | 1984-10-03 | 1986-04-30 | Hitachi Ltd | 拡張アドレス変換装置 |
US5247632A (en) * | 1989-01-23 | 1993-09-21 | Eastman Kodak Company | Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system |
JP2858795B2 (ja) * | 1989-07-14 | 1999-02-17 | 株式会社日立製作所 | 実記憶割り当て方法 |
US5077826A (en) * | 1989-08-09 | 1991-12-31 | International Business Machines Corporation | Cache performance in an information handling system employing page searching |
US5319761A (en) * | 1991-08-12 | 1994-06-07 | International Business Machines Corporation | Directory look-aside table for a virtual storage system including means for minimizing synonym entries |
-
1993
- 1993-10-20 US US08/139,549 patent/US5446854A/en not_active Expired - Lifetime
-
1994
- 1994-10-18 EP EP94307642A patent/EP0650124B1/en not_active Expired - Lifetime
- 1994-10-18 DE DE69427625T patent/DE69427625T2/de not_active Expired - Fee Related
- 1994-10-20 KR KR1019940026838A patent/KR100343027B1/ko not_active IP Right Cessation
- 1994-10-20 JP JP27969994A patent/JP3577575B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006221636A (ja) * | 2005-02-07 | 2006-08-24 | Samsung Electronics Co Ltd | Run単位アドレスマッピングテーブル及びそれの構成方法 |
JP2011204247A (ja) * | 2006-02-22 | 2011-10-13 | Sony Computer Entertainment Inc | 独立論理アドレス空間とそれぞれに対するアクセス管理を提供する方法および装置 |
US8533426B2 (en) | 2006-02-22 | 2013-09-10 | Sony Corporation | Methods and apparatus for providing independent logical address space and access management |
Also Published As
Publication number | Publication date |
---|---|
EP0650124B1 (en) | 2001-07-04 |
JP3577575B2 (ja) | 2004-10-13 |
KR950012220A (ko) | 1995-05-16 |
DE69427625D1 (de) | 2001-08-09 |
DE69427625T2 (de) | 2002-05-08 |
KR100343027B1 (ko) | 2002-11-23 |
EP0650124A1 (en) | 1995-04-26 |
US5446854A (en) | 1995-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07182240A (ja) | アドレス変換を行う装置及び方法 | |
US5956756A (en) | Virtual address to physical address translation of pages with unknown and variable sizes | |
US7089398B2 (en) | Address translation using a page size tag | |
US5313611A (en) | Method and apparatus for maintaining a lookup table for storing function values | |
KR920005280B1 (ko) | 고속 캐쉬 시스템 | |
US5058003A (en) | Virtual storage dynamic address translation mechanism for multiple-sized pages | |
US5426750A (en) | Translation lookaside buffer apparatus and method with input/output entries, page table entries and page table pointers | |
US7809921B2 (en) | Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries | |
US4587610A (en) | Address translation systems for high speed computer memories | |
US6012132A (en) | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table | |
CA1332984C (en) | Dual cache memory | |
US6205531B1 (en) | Method and apparatus for virtual address translation | |
EP0243724A2 (en) | Multilevel storage hierarchy with a variable address mode | |
JP2005538465A (ja) | ページ・サイズ指標に基づきハッシュされる部分的タグを用いる変換索引バッファ | |
KR100233212B1 (ko) | 가상 기억장치 변환을 효율적으로 공용하기 위한 장치 및 방법 | |
JPH04319747A (ja) | アドレス変換機構 | |
JPH0749812A (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
JPH0247775B2 (ja) | ||
JP2001175536A (ja) | 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置 | |
JPH10254718A (ja) | キャッシュ効果オブジェクトローダ | |
JPH04320553A (ja) | アドレス変換機構 | |
US4821171A (en) | System of selective purging of address translation in computer memories | |
TW201710911A (zh) | 選擇性預取實體接續快取線至包含被載入分頁表之快取線 | |
US10884948B2 (en) | Replacing pointers with hashing in tree-based page table designs | |
JP2008512758A (ja) | 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040519 |
|
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: 20040608 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040629 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |