JPH10133950A - ページテーブル更新方法および装置 - Google Patents

ページテーブル更新方法および装置

Info

Publication number
JPH10133950A
JPH10133950A JP9232815A JP23281597A JPH10133950A JP H10133950 A JPH10133950 A JP H10133950A JP 9232815 A JP9232815 A JP 9232815A JP 23281597 A JP23281597 A JP 23281597A JP H10133950 A JPH10133950 A JP H10133950A
Authority
JP
Japan
Prior art keywords
page table
value
entry
table entry
current
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
Application number
JP9232815A
Other languages
English (en)
Other versions
JP3880146B2 (ja
Inventor
Timothy Merrick Long
メリック ロング ティモシー
Christopher Amies
アミーズ クリストファー
Stoney Graham
ストーニー グラハム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Information Systems Research Australia Pty Ltd
Canon Inc
Original Assignee
Canon Information Systems Research Australia Pty Ltd
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Information Systems Research Australia Pty Ltd, Canon Inc filed Critical Canon Information Systems Research Australia Pty Ltd
Publication of JPH10133950A publication Critical patent/JPH10133950A/ja
Application granted granted Critical
Publication of JP3880146B2 publication Critical patent/JP3880146B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables

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)

Abstract

(57)【要約】 【課題】ページテーブル中の所定のページテーブル登録
項目を検索する検索処理を一時停止することなく、ペー
ジテーブルを更新する。 【解決手段】まず、現在のページテーブル登録項目値が
所定のページテーブル登録項目値であるか判定する(ス
テップ910)。現在のページテーブル登録項目値が所
定のページテーブル登録項目値でない場合、現在のペー
ジテーブル登録項目値を削除あるいは移動し(ステップ
912)、現在のページテーブル登録項目値が所定のペ
ージテーブル登録項目値でない場合、現在のページテー
ブル登録項目値の削除あるいは移動以前に、前記検索処
理が所定のページテーブル登録項目値の検索を完了する
まで待機する(ステップ916)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータを使
用したシステムにおける仮想メモリ管理方法に関り、特
にコンピュータ使用したシステムのためのメモリアクセ
スの仮想−物理マッピングに関する。
【0002】
【従来の技術】最近のプロセッサは、通常は、仮想アド
レスから物理アドレスへのマッピングをハードウエアに
より実行することで、仮想メモリシステムをハードウエ
アによりサポートしている。仮想メモリアドレス空間と
物理メモリアドレス空間はともに、所定サイズ、しばし
ば4Kバイトのサイズの「ページ」の集積と考えること
ができる。現在の仮想アドレス空間で定義された仮想メ
モリページと物理メモリページとの間のマッピングの集
合は、通常「ページテーブル」と呼ばれるデータ構造に
格納される。通常、ページテーブルのエントリは、更
に、アクセス保護情報と、ソフトウエアにより保持され
るフラグや参照される計数などのその他の情報を含んで
いる。そのページテーブル情報は各メモリの参照のほと
んどに用いられるため、非常に頻繁にアクセスされる。
あいにく、ページテーブルは、通常、中央処理装置(C
PU)内にオンチップで格納するには大きすぎる。その
かわりに、CPUが最近利用したページテーブルエント
リが変換ルックアサイドバッファ(translation lookas
ide buffer:TLB)によってキャッシュされるのが常であ
る。
【0003】仮想メモリアドレスで参照が行われた場
合、ほとんどのマッピングはTLB検索により直ちに行
われる。もし所望のエントリがTLBに見いだせなかっ
たなら(しばしばTLBミスと呼ばれる)、要求された
情報を取得するためにページテーブル検索が遂行され
る。さらに、もし所望のエントリが主記憶(例えば半導
体RAM)内のページテーブル内にも置かれていないな
らば、「ページフォルト」が発生し、適切な物理メモリ
ページが、例えばハードディスクなどの二次記憶システ
ム上に見つけだされ、その後のCPUによる直接アクセ
スのために主記憶にロードされる。そして、物理メモリ
ページのための適切なページテーブルエントリがページ
テーブルにロードされ、そこで所望のエントリが利用で
きる。複数のプロセッサがページテーブルにアクセスで
きるマルチプロセッサシステムでは、第2のプロセッサ
からのページテーブルの検索が進行している間に、第1
のプロセッサはページテーブルを更新しようとすること
ができる。その結果、衝突の可能性がある。この衝突の
可能性を解消するための機構が通常は要求され、あるい
は適所に設置される。
【0004】仮想メモリアドレスの一部を用いてページ
テーブルを直接指し示めすには、ページテーブルが、仮
想ページ番号から指し示めせるのと同じくらいの大きさ
であることが必要である。例えば、仮想メモリアドレス
の上位20ビットが仮想ページ番号として用いられてい
るとすると、1メガページ(1,048,576ページ)まで指
し示すことができる。100万を越える仮想ページを収
容するページテーブルは、メモリのかなりの部分を占有
する。それぞれ関連づけられたページテーブルを有する
いくつものアプリケーションが走るコンピュータシステ
ムでは、ページテーブルの総数は、このように物理メモ
リのほとんどの部分を占有する。それゆえにページテー
ブルのサイズを縮小することが望まれる。
【0005】ページテーブルのサイズを縮小するため
に、幾つかの技術を利用できる。このような技術のひと
つでは、ページテーブルのサイズを所定サイズに限定
し、仮想ページ番号により指し示されるエントリの要求
がページテーブルの範囲外であるなら、その要求のため
にひとつのエントリがページテーブルに作成される。こ
の方法により、ページテーブルは、仮想ページ番号によ
りアドレスできるのと同じサイズで生成されるのではな
く、必要なサイズへと増大(あるいは成長)する。
【0006】ページテーブルのサイズを縮小するもう一
つの技術は、主記憶の物理記憶ページをアドレスする、
より小さなページテーブル構造を指し示すのに利用され
ている、より小さな、ハッシングされたインデックス値
へと仮想ページ番号を縮小する方法で、仮想ページ番号
に「ハッシング関数」を適用することである。
【0007】ハッシング関数を適用する技術によりもた
らされるより小さなページテーブルは、「逆ページテー
ブル」あるいは「ハッシングされたページテーブル」と
して頻繁に参照される。ハッシング関数は、通常、仮想
メモリシステム内のほとんど全ての仮想ページ番号を、
ハッシングされたインデックス値とここでは呼ばれる、
より小さな、値の部分集合へとマッピングする。
【0008】その結果、仮想ページ番号へのハッシング
関数の適用により、ひとつのハッシングされたインデッ
クス値に複数の仮想ページ番号が一致することが起こり
得る。結果として、逆ページテーブルの検索において、
現在の仮想アドレスがハッシングされて(すなわちハッ
シュ関数が適用されて)ある仮想アドレスを有する逆ペ
ージテーブルエントリを指し示すのに利用されているハ
ッシングされたインデックス値が得られた場合に「ハッ
シュの衝突」が生じ、その仮想アドレスは現在の仮想ア
ドレスに一致しない。
【0009】同様に、逆ページテーブルに新たなエント
リを追加するとき、現在の仮想アドレスがハッシングさ
れて、有効なエントリ(すなわち、後述する有効フラグ
がセットされたエントリ)により現在占有されている逆
ページテーブルのエントリを指し示しているハッシング
されたインデックス値が得られた場合、「ハッシュの衝
突」が生じる。
【0010】
【発明が解決しようとする課題】システムのプロセッサ
(あるいはコプロセッサ)が、TLBミスのためにペー
ジテーブルの検索をしようとするのと同時に、システム
ソフトウエアがページテーブルを更新しようとすると、
衝突が生じる。この衝突の解決方法のひとつは、ページ
テーブルが更新されている間は、ページテーブルの検索
を締め出すことによりページテーブルの検索を防止する
ことである。けれども、この方法でページテーブルをロ
ックすることは、性能面において不利である。
【0011】上述した衝突は、マルチプロセッサシステ
ムにも(マルチプロセッサはいつでもページテーブルの
検索を行えるので)、単一のプロセッサシステムにも
(ページテーブル検索は基本的な操作なので、ページテ
ーブル自身を更新する特権的なオペレーティングシステ
ムコードを実行している間にさえも検索は行われ得るた
め)共通している。
【0012】例えば、グラフィックコプロセッサを用い
たシステムは、本質的にマルチプロセッサシステムであ
る。さらに、ページテーブルのアクセスに関してマルチ
プロセッサの同期が必要とされることは、同期処理中に
グラフィックコプロセッサが停止される必要があるかも
しれず、実際上画像処理が遅くなるため望ましくない。
【0013】本発明は上記従来例に鑑みてなされたもの
で、ページテーブルの検索を中止することなくページテ
ーブルエントリの移動あるいは削除を行うことができ、
処理を停滞させず、効率的に仮想メモリ管理にかかる処
理を実行することができるページメモリ更新方法および
装置を提供することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明の一態様によれば、ページテーブルの所定の
ページテーブルエントリ値を検索する検索処理を停止す
る必要なしに、前記ページテーブルの現在のページテー
ブルエントリ値を削除あるいは移動するページテーブル
の更新方法であって、(a)現在のページテーブルエン
トリ値が所定のページテーブルエントリ値であるか判定
する工程と、(b)現在のページテーブルエントリ値が
所定のページテーブルエントリ値でない場合、現在のペ
ージテーブルエントリ値を削除あるいは移動する工程
と、(c)現在のページテーブルエントリ値が所定のペ
ージテーブルエントリ値でない場合、現在のページテー
ブルエントリ値の削除あるいは移動以前に、前記検索処
理が所定のページテーブルエントリ値の検索を完了する
まで待機する工程とを備える。
【0015】あるいは、他の実施態様によれば、ページ
テーブルのページテーブルエントリ値を検索する検索処
理を停止する必要なしに、コンピュータシステム内の前
記ページテーブルの現在のページテーブルエントリ値を
削除あるいは移動するページテーブルの更新方法であっ
て、(a)ページテーブルエントリを検索する前記検索
処理が進行中であるか判定する工程と、(b)前記検索
処理が進行中でない場合、現在のページテーブルエント
リを削除あるいは移動する工程と、(c)ページエント
リ値の前記検索処理が進行中の場合、現在のページテー
ブルエントリ値の削除あるいは移動以前に所定時間待機
する工程とを備える。
【0016】あるいは、他の実施態様によれば、上記い
ずれかの方法によりページテーブルを更新する構成を備
えたページテーブル更新装置である。
【0017】あるいは、他の実施態様によれば、ページ
テーブルの所定のページテーブルエントリ値を検索する
検索処理を停止する必要なしに、前記ページテーブルの
現在のページテーブルエントリ値を削除あるいは移動す
るコンピュータプログラムが記録されたコンピュータ可
読の記憶媒体であって、現在のページテーブルエントリ
値が所定のページテーブルエントリ値であるか判定する
手段と、現在のページテーブルエントリ値が所定のペー
ジテーブルエントリ値でない場合、現在のページテーブ
ルエントリ値を削除あるいは移動する手段と、現在のペ
ージテーブルエントリ値が所定のページテーブルエント
リ値でない場合、現在のページテーブルエントリ値の削
除あるいは移動以前に、前記検索処理が所定のページテ
ーブルエントリ値の検索を完了するまで待機する工程と
を備える。
【0018】あるいは、他の実施態様によれば、ページ
テーブルのページテーブルエントリ値を検索する検索処
理を停止する必要なしに、コンピュータシステム内の前
記ページテーブルの現在のページテーブルエントリ値を
削除あるいは移動するコンピュータプログラムが記録さ
れたコンピュータ可読の記憶媒体であって、ページテー
ブルエントリを検索する前記検索処理が進行中であるか
判定する手段と、前記検索処理が進行中でない場合、現
在のページテーブルエントリを削除あるいは移動する手
段と、ページエントリ値の前記検索処理が進行中の場
合、現在のページテーブルエントリ値の削除あるいは移
動以前に所定時間待機する手段とを備える。
【0019】あるいは、他の実施態様によれば、上記い
ずれかの方法によって仮想メモリを管理する管理部を供
えるコンピュータシステムである。
【0020】
【発明の実施の態様】図1は、メモリ管理ユニット(M
MU)90の主要構成要素を示している。メモリ管理ユ
ニット(MMU)90は、仮想メモリアドレスを受け取
る入力手段91と、変換ルックアサイドバッファ92
(TLB)と、物理メモリアドレスを出力する出力手段
93と、図3を参照して後述する通り、仮想−物理メモ
リマップの検索に適合したページテーブル検索手段94
とを含む。
【0021】ページテーブル検索手段94は、ページテ
ーブル(本明細書で説明する)へのインデックスを提供
するために仮想メモリアドレスの少なくとも一部の操作
に適合したハッシュ関数手段95を含んでいる。ページ
テーブルは、コンピュータシステムのランダムアクセス
メモリ(RAM)96に格納されるのが望ましい。ある
いは、ページテーブルは、ハードディスクのような二次
記憶装置に格納されてもよい。この場合、ページテーブ
ルは、コンピュータシステムに要求されるとRAM96
にロードされる。
【0022】図2において、逆ページテーブル、あるい
はハッシングされたページテーブル100(ここではペ
ージテーブルと呼ぶ)は、2ワード(通常は1ワード3
2ビット)を含む複数のページテーブルエントリ101
とともに示されている。2つの32ビットワードの一番
目のワード102は物理メモリページ番号103を含ん
でおり、物理ページ番号103は、不図示のページオフ
セット番号とともにコンピュータシステムのメモリ(多
くの場合RAM)に格納された所望のデータ値への物理
メモリアドレスを形成する。この例では、物理メモリペ
ージ番号103は、この実施形態の例である32ビット
ワードよりも小さいため、残りのビットは予備ビット1
04としてたいてい空けておかれる。2つの32ビット
ワードのうちの二番目のワード105は、仮想メモリペ
ージ番号106と、予備ビット部107と、読みだし専
用フラグ108と、有効フラグ109とを含んでいる。
例えば、読みだし専用フラグ108や有効フラグ109
といったフラグは、値1(セット)あるいは0(アンセ
ット)を取り得る単一のビットでよい。読みだし専用フ
ラグ108(その一例としては、アドレスアクセス保護
情報フラグ)は、それがセットされている場合に、ペー
ジテーブルエントリ101により指し示される物理メモ
リ内のデータを上書きしてはならないことを示してい
る。有効フラグ109は、物理ページ番号と仮想ページ
番号がページテーブル100の有効なエントリであるか
どうかを示している。有効フラグ109のセットおよび
アンセットにより、ページテーブル検索には3つの出力
がありえる。よって、有効フラグは、例示された方法に
よって最も適切に説明される。
【0023】図8を参照すると、ページテーブル検索処
理700が示されている。ページテーブル検索処理は、
入口702の後に、ステップ704において与えられた
アドレスからハッシュインデックス(i)を作成し、これ
によりページテーブルエントリ101を示している。ス
テップ706で判定されたときにページテーブルエント
リ101の有効フラグ109がアンセットされており、
ページテーブルエントリ101がページテーブルの検索
結果としてアクセスされると、ステップ708に示すよ
うに、この後説明する「ページフォルト」が発生する。
一方、有効フラグ109がセットされ、ページテーブル
エントリ101がページテーブルの検索結果としてアク
セスされると、ページテーブルエントリ101の仮想メ
モリページ番号106がページテーブルの検索に用いら
れた仮想メモリアドレスの仮想ページ番号とステップ7
10で比較される。その仮想メモリアドレスは、仮想メ
モリアドレスから物理メモリアドレスへのマッピングが
求められたところの所望の仮想メモリアドレスである
(仮想−物理マップは仮想ページ番号と物理ページ番号
とを含む番号の対である)。比較の結果、もしページテ
ーブルエントリ101の仮想ページ番号106が所望の
仮想メモリアドレスの仮想ページ番号に一致していなけ
れば、ページテーブルエントリ101へのインデックス
(i)は(i+1)になるようステップ712で進められ、その
後のエントリが系統立って検索され、ページテーブルエ
ントリにそれぞれ対応する仮想ページ番号は、前記所望
の仮想ページ番号と一致するまで、あるいはアンセット
された有効フラグを有するページテーブルエントリが見
つかるまで比較される。所望の仮想ページ番号がページ
テーブルエントリ101に見いだせない場合には、物理
メモリアドレスが戻される(714)。けれども、ペー
ジテーブルの検索時、もしアンセットされた有効フラグ
を有するページテーブルエントリ101が最初に見つか
ったなら、ページフォルトが発生する。
【0024】最近の最新のコンピュータシステムにおい
ては、メモリ管理ユニットは通常「変換ルックアサイド
バッファ」(TLB)を備えている。変換ルックアサイ
ドテーブルは、仮想アドレスから物理アドレスへのマッ
ピングのテーブルであり、たいてい、ページテーブルの
最近使用されたエントリの、通常は小さなサイズのテー
ブルである。各TLBのエントリは、ページテーブルエ
ントリとほとんど同じ情報を含んでおり、TLBは実質
的に、最も最近使用されたページテーブルエントリの部
分集合である。たいてい、TLBはページテーブルエン
トリに含まれているのとほとんど同じアドレス保護情報
を含んでいる。TLBは、いずれかの仮想−物理アドレ
ス変換に対するハードウエアシステム要求の必要に応じ
てしばしば更新される。TLBは通常、ハードウエアシ
ステムが仮想−物理アドレス変換を要求したときに検索
される最初のテーブルである。TLBはページテーブル
に含まれる仮想−物理マップの全エントリの部分集合で
あるから、時には所望の仮想−物理メモリマップに対す
るハードウエアによる要求はTLB内には見いだせず、
結果として、ページテーブル検索が開始される。TLB
内に所望の仮想−物理マップが見つけられない場合、す
なわち、もし、有効フラグがセットされた、所望の仮想
ページ番号と一致する仮想ページ番号を含むTLBのエ
ントリがなければ、「TLBミス」が発生し、ページテ
ーブル検索が開始される。
【0025】TLBミスから生じるページテーブル検索
を図3を参照して説明する。図8のフローチャートはま
た、比較できる工程の要点を説明するものだが、後述す
る詳細全てを含むものではない。ページテーブル検索に
おいて、仮想−物理マッピングが検索された(すなわち
仮想メモリアドレスに対応する物理メモリアドレスが検
索された)ところの仮想メモリアドレスからの仮想ペー
ジ番号200は、TLB中では見つからず、仮想ページ
番号200は「ハッシュ」関数201の処理を施され
る。この、仮想ページ番号200に適用されたハッシュ
関数201の出力を、ページテーブルエントリの識別に
用いられるハッシュインデックス値202と呼ぶ。この
例では、一つのページテーブルエントリ(すなわちひと
つのページテーブルアドレス)にアドレス205を提供
するために、ページテーブルアドレス205は、ポイン
タベースアドレス値204を最上位のビット群とし、ハ
ッシュインデックス値202を中間のビット群とし、3
つのヌルビット208(すなわち000)を最下位のビ
ット群としてつなぎあわせることで構成される。最下位
ビット群として連結される3つのヌルビット208によ
り、ページテーブルアドレス205は、ページテーブル
エントリのバイトアドレスとして利用できる。
【0026】ページテーブルエントリ101は、現在の
ページテーブルアドレス205により指し示されるアド
レスから始めて、好ましくは一度に1ワードずつ読み出
される。ページテーブルエントリ101の仮想メモリペ
ージ番号106は、TLBミスをもたらした仮想ページ
番号200と比較される(209)。もしページ番号
(106,200)が等しければ、すなわち、一致する
ページ番号(106,200)が見つかったなら、ペー
ジテーブルエントリ101はTLBに書き込まれる。そ
の後の、仮想ページ番号200についてのTLBの検索
はTLBミスを引き起こさないであろう。ページ番号
(106,200)が等しくない(すなわち「ハッシュ
衝突」が生じた)場合、現在のハッシュインデックス値
205は、次のページテーブルエントリまでくり返しイ
ンクリメントされ(203)、次のページテーブルエン
トリの各々の仮想ページ番号は所望の仮想ページ番号2
00と比較される(209)。ハッシュインデックス値
205は、比較ステップ209が一致する仮想ページ番
号106,200を見いだすまで、あるいはアンセット
された有効フラグを有するページテーブルエントリ10
1にぶつかるまでインクリメント(203)できる。一
致する仮想ページ番号が見つかった場合、一致する仮想
ページ番号106を有するページテーブルエントリ10
1の対応する物理アドレス103はTLBに送られる。
対応する物理アドレス103はTLBに書き込まれ、T
LB中の必要とされる仮想−物理変換に提供するため、
所望の仮想ページ番号200に関連づけられる。
【0027】必要なら、インクリメントにより、所望の
一致が見いだされないままページテーブルの最後のエン
トリに達した場合、インクリメントしながらの所望の一
致の検索は、ページテーブルの先頭から開始される。し
たがって、どこが始まりであっても、望んでいる一致を
見つけるか、あるいはアンセットされたフラグを有する
エントリにぶつかるまで「ひとまわり(wrapping-aroun
d)」される。ページテーブルエントリの有効フラグ1
09は比較209の前にチェックされ、もし有効フラグ
109がアンセットされていればページフォルトが生
じ、その結果ページテーブル検索が終了する。ページテ
ーブルの検索はページテーブルの末尾からページテーブ
ルの先頭へとひとまわりすることができるため、所望の
ページテーブルエントリが見つからなくとも検索が終了
することを保証するために、少なくとも1つのページテ
ーブルエントリが、アンセットされた有効フラグを通常
は保持している。同様に、ページテーブルエントリが更
新あるいは削除あるいは現在のページテーブル位置から
そのページテーブルの他の位置に移動されるであろう場
合、複数のページテーブルエントリ101のいずれを更
新あるい削除あるいは移動するか決定するために、ほと
んど図3を参照して説明したようにページテーブル検索
が遂行される。
【0028】アンセットされた有効フラグ107が、現
在、ページフォルトを示すものではなく、ページテーブ
ルエントリが挿入(あるいは上書き)される可能性があ
ることを示すものであっても、ページテーブルの挿入、
すなわちページテーブルに挿入あるいは追加されたペー
ジテーブルエントリは、ページテーブル検索に関してほ
とんど上述した方法で遂行される。また、ページテーブ
ルの挿入は必ずしもTLBミスの結果ではなく、ページ
テーブルを挿入あるいは増やすというハードウエアある
いはソフトウエアによる特定の要求である。この説明
は、入口802を有する処理800として図9に示され
ている。ハッシュインデックス値(i)は、TLB中の仮
想ページ番号を供給するためにステップ804で生成さ
れる。ステップ806においては、そのインデックスは
検討され、TLBミスが発生すると、ステップ808
で、仮想アドレスを前記インデックスの仮想アドレスと
してセットし、そうして挿入が遂行される。ページテー
ブルエントリの最初のワード102(物理メモリアドレ
スを含む)は、システムソフトウエアあるいはハードウ
エアが完全に更新を完了する前にページテーブルエント
リが使用されることを防止するために、第2のワード1
03(仮想メモリアドレスを含む)以前に更新あるいは
挿入されることが望ましい。ステップ806で有効なイ
ンデックスであれば、TLBは「ヒット」し、ステップ
810でその仮想アドレスを挿入のために与えられた仮
想アドレスと比較する。等しければ、ステップ808
が、挿入を遂行するために再び呼び出される。等しくな
ければ、ステップ812は、インデックスをインクリメ
ントし、制御をステップ806に戻す。
【0029】図4乃至図6に関する説明は、ページテー
ブルエントリをページテーブルから取り除く、ページテ
ーブルエントリの削除の一例である。ページテーブルエ
ントリを除去あるいは削除するために、有効フラグを
「アンセット」にすることのみが必要とされる。これ
は、現在の位置にあるページテーブルエントリが上書き
可能であることを示している。
【0030】ページテーブル検索(上述)については、
ハッシュの衝突が生じた場合、所望の仮想ページ番号と
一致する仮想ページ番号を有する次のページテーブルエ
ントリが検索されるか、あるいはページテーブルエント
リの挿入においては(これも上述した)、ハッシュの衝
突が生じると、アンセットされた有効フラグを有するペ
ージテーブルエントリが見つかるまでハッシュインデッ
クス値202をインクリメントすることで、次の利用可
能な位置が検索される。それゆえ、削除あるいは除去さ
れるべきエントリは、ハッシングされたアドレス(すな
わちハッシュ関数の適用により得られるページテーブル
アドレス205)にはなく、ハッシングされたアドレス
により参照される位置以外のページテーブルエントリの
位置にある可能性がある。
【0031】図4において、便宜的に「スロット」と呼
ばれる、ページテーブルエントリ位置301を有するペ
ージテーブル300は「0」から「n」まで番号付けさ
れており、ページテーブルアドレス値「0」から「n」
を有するページテーブル300に対する「n+1」個の
登録位置を示している。複数のスロット301には「フ
リー」と印されており、これは、これらスロットにおけ
るページテーブルエントリがアンセットされた有効フラ
グを有しており、そのページテーブルのスロットはペー
ジテーブルエントリを自由に挿入できることを示してい
る。
【0032】この例では、ページテーブルアドレス値
「0」は「スロット0」に対応しており、ページテーブ
ルアドレス値「1」は「スロット1」に対応し、ページ
テーブルアドレス値「n」は「スロットn」に対応して
いる。それゆえ、例えばページテーブルの挿入時に、
「スロット2」302に挿入できるのであれば(すなわ
ち有効フラグがアンセットであれば)、ハッシュアドレ
ス値「2」のページテーブルエントリは「スロット2」
302に挿入されることが望ましい。しかしながら、
「スロット2」でハッシュの衝突が生じたなら、すなわ
ち有効フラグがセットされているなら、ページテーブル
エントリは次の利用可能な「スロット」に挿入される。
図4のページテーブルは、「スロット2」と「スロット
3」とにおいて同一の2つのハッシュテーブルアドレス
値を示している。これは、ページテーブルの挿入時にハ
ッシュの衝突が生じたこと、および、第1のページテー
ブルエントリは、ハッシュ関数の実行後にハッシュアド
レスが2(図中のハッシュ値=2)となった仮想ページ
アドレスを有し、その結果第1のページテーブルエント
リが「スロット2」に挿入されたことを示している。そ
の後、それもハッシュアドレス2を有する第2のページ
テーブルエントリは、「スロット2」が第1のページテ
ーブルエントリに使用されている(有効フラグがセット
されている)ためにハッシュの衝突を引き起こした。そ
のため、第2のページテーブルエントリは、次の利用可
能なスロットに挿入され、それがたまたま「スロット
3」である。ハッシュアドレス値3に対応する第3のペ
ージテーブルエントリは次に利用可能なスロット(スロ
ット4)に挿入され、このようにして続いていく。けれ
ども、ハッシュアドレス値に対応するスロットが利用で
きれば、対応するスロットが望ましい(例えば、ハッシ
ュアドレス9は、挿入要求されたときに利用可能であっ
た「スロット9」に挿入される)。
【0033】次に図5において、図4のページテーブル
から「スロット3」303のページテーブルエントリを
削除あるいは除去したいものとする。このエントリを削
除するために、「スロット3」303内のページテーブ
ルエントリのための有効フラグが「セット」から「アン
セット」に変更され、そのためにスロット3は自由に上
書きできる(すなわちフリーとなる)。しかしながら、
既に説明した通り、ページテーブルエントリのアンセッ
トされた有効フラグは、ページテーブルの検索を終了さ
せることができる。そのため、ハッシュ衝突によって高
い「スロット番号」に挿入された「スロット3」より大
きいスロット中のページテーブルエントリは、通常「フ
リー」305と印された最初のスロットまで、本例のペ
ージテーブル300では移動される。ページテーブルエ
ントリは、各ハッシュアドレス値が望ましいスロットに
対応するような方法で移動されることが望ましい。例え
ば、図6は、図4の「スロット3」のページテーブルエ
ントリの除去(削除)後の、図4のページテーブルエン
トリの望ましい配置を示している。すなわち、図4にお
ける、ハッシュアドレス値が3の「スロット4」306
のページテーブルエントリは「スロット3」に移され、
「スロット6」307のページテーブルエントリは「ス
ロット4」に移されて、その結果図6の配置となる。
【0034】ページテーブルエントリは、通常、ページ
テーブルエントリ上の更新操作(例えば移動操作)のた
めにマルチプルアクセスの必要がある。そのため、ペー
ジテーブルは、ページテーブルの検索が進行中であり、
まだページテーブルが自動的に(すなわち即座に)更新
できない場合にも、ほとんどいつも首尾一貫していなけ
ればならない。その結果、更新操作がページテーブルエ
ントリ上で行われている間に進行中のページテーブルの
検索によって、ページテーブルエントリを見つけること
ができないかもしれない。また、システムソフトウエア
あるいはハードウエアは、ページテーブルが更新されて
いる間に、そのページテーブルにアクセスできることが
望ましい。
【0035】その結果、図5に例示したように、ページ
テーブルエントリが第1のスロットから第2のスロット
(宛て先スロット)に移されるであろう以前に、宛て先
スロットに対応するハッシュ値を提供する仮想アドレス
は、未使用のアドレス(すなわち、ページテーブルでは
ほかに決して現れることのないであろう仮想アドレス)
に変更される。それにより、宛て先スロット上のページ
テーブルの検索は、ページテーブルエントリが、殊にペ
ージテーブルエントリの物理アドレスが宛て先スロット
に書き込まれている間には、試みられることはない。
【0036】ページテーブルエントリの移動が指示され
た宛て先スロットに存在しているページテーブルエント
リを用いたページテーブル検索の防止のため、「未使用
アドレス」を用いる代案は、ページテーブルの全ページ
テーブルエントリにアクセス保護フラグを追加して更に
持たせることである。追加されたアクセス保護フラグに
より、現在のページテーブルエントリについてセットさ
れている場合には、ページテーブル検索処理は現在のペ
ージテーブルエントリを無視し、進行中のページテーブ
ル検索を続行することができる。
【0037】現在のページテーブルエントリがくり上げ
られた場合、宛て先スロットの仮想アドレスが未使用に
変更される(すなわち、ページテーブルエントリが移動
されている間)か、あるいはページテーブルエントリの
有効フラグがアンセットされるであろうときに、現在の
ページテーブルエントリ上のページテーブル検索が進行
中でないことをMMU90が知っていることが望まし
い。一つの移動されているエントリ上でのページテーブ
ル検索が同時に起こることはまれであるけれども、移動
されている現在のページテーブルエントリに対してペー
ジテーブル検索が遂行されているならば、現在のエント
リの検索は、現在のページテーブルエントリが移動され
る前に完了する。これは図7に示されている。図示のと
おり、他のページテーブルエントリ位置(スロット)6
02に移動されるページテーブルエントリ601があ
り、ページテーブル検索603がページテーブルエント
リ601に向かって進行してそれを検索する間に、その
ページテーブルエントリの検索はページテーブルエント
リ601が移動される前に完了させることができる。ペ
ージテーブルの検索が成功する(すなわち検索によって
ページフォルトが起こらない)と、その後ページテーブ
ルエントリがTLB中で更新され、そのため、上述した
ように、ごく近い将来における同一のページテーブルエ
ントリへのアクセスの必要性は相当小さくなる。ページ
テーブルエントリは、その上でのページテーブル検索が
成功した後、移動される見込みが高い。その見込みは、
ページテーブルエントリの移動が行われている間には、
同一のエントリのページテーブル検索が当面行われない
であろうという見込みである。
【0038】本発明のもう一つの実施例においては、ペ
ージテーブルエントリの削除はほとんど上述通りである
が、まさに第1のページテーブルエントリ位置(第1の
スロット)から第2のページテーブルエントリ位置(第
2のスロット)へ移動されようとしているひとつのペー
ジテーブルエントリ上のページテーブル検索が同時発生
した場合には、そのページテーブルエントリの移動の完
了は、ページテーブル検索の完了にかかる、所定の、考
えられる最も長い時間遅延される。通常、ページテーブ
ルエントリの移動操作は、第1のページテーブルエント
リを第1のスロットから削除する工程と、第2のページ
テーブルエントリを第2のスロットから第1のスロット
に複写する工程と、第2のページテーブルエントリを削
除する工程とを含み、それによって第2のページテーブ
ルエントリを第2のスロットから第1のスロットへ実際
上移動する。
【0039】図4〜図7で説明した処理は、図10に示
された処理900により要約される。除去あるいは削除
は入口902から開始される。ステップ904で、ハッ
シュテーブルのインデックス値(i)に対するエントリの
所在が突き止められる。これが終えると、ステップ90
6では、そのエントリの仮想アドレスを無効値にセット
する。そしてステップ908では、エントリ(i)を使用
するもう一つのエントリ(j)を求めてページテーブルを
更に検索させる。そのようなエントリがないとステップ
910で判断されたなら、インデックス(i)におけるそ
のエントリの有効フラグはクリアされ、削除が完了す
る。このようなエントリがあれば、インデックス(j)の
エントリは、ステップ914でインデックス(i)に複写
される。それから待機ステップ916に入り、MMU9
0は同時進行のページテーブル検索ができる。検索に必
要な最大時間が満了したとき、ステップ918では、イ
ンデックス(i)を(j)の現在値にセットし、ステップ9
06に制御を戻す。
【0040】上述した各実施例では、ページテーブルエ
ントリが削除(あるいは除去)される場合、対応するT
LBのエントリは、MMU90がTLBを介して削除さ
れたページテーブルエントリにアクセスすることを防止
するために無効化されねばなない。TLBのエントリを
無効化するために、無効化されるTLBの各エントリの
有効フラグはアンセットされ、それゆえに無効化された
TLBエントリのTLB位置は、その後に上書きされる
ようフリーとなっている。普通、すべてのページテーブ
ルエントリが除去されるか、あるいはページテーブルが
物理メモリに再配置される場合、すべてのTLBエント
リは、TLBのエントリ全ての有効フラグをアンセット
する無効化サイクルによって無効化される。
【0041】好適な実施例(オプション1)およびその
他の実施例(オプション2)のためのページテーブルエ
ントリ削除の擬似コードを、付録として添付した。この
付録は、IBM PC/ATデバイスといったコンピュ
ータシステムやその互換機だけでなく、その他のコンピ
ュータシステムで動作できる好適な実施例を示してい
る。通常、本好適な実施例は、ディスク装置やテープあ
るいはインターネットのようなコンピュータネットワー
クから供給されるであろうソフトウエアによって実施さ
れる。
【0042】以上、本発明の好適な実施例を説明した
が、当業者は本発明の範囲を逸脱することなく変形する
ことは容易である。 <付録>この付録は、本発明の好適な(オプション1)
およびその他の(オプション2)実施例のためのページ
テーブル削除処理の擬似コードを提供する。 (擬似コード) ハッシュ関数をページテーブルエントリに対応する仮想ページアドレスに適用し 、ページテーブル中のエントリを検索する; do ページテーブルエントリ(第1のページテーブルエントリ)が削除さ れるスロットをハッシュする仮想アドレスを検索する if 見つかった場合 削除されるページテーブルエントリの仮想アドレスを許容さ れていないアドレスにセットする。そうすればMMUはこの エントリ(第1のページテーブルエントリ)をスキップする 第2のページテーブルエントリの物理アドレスを第1のペー ジテーブルエントリの対応する位置に複写する(すなわち上 書きする) 第2のページテーブルエントリの仮想アドレスおよび有効フ ラグビットを、第1のページテーブルエントリの対応する位 置に複写する(すなわち上書きする) if (オプション1)MMUが、第2のページテーブル エントリにおいて参照される仮想アドレス上で現在 検索を行っている場合 then 待機する (オプション1)until MMUが検索を完了する fi (オプション2)until 検索にかかると考えられる最も長い 時間 次のくり返しループで第2のページテーブルエントリを削除す る。 fi while 削除すべきエントリがまだある 第2のページテーブルエントリの仮想アドレスをヌルにセットし、有効フラグを アンセットする。 第2のページテーブルエントリの物理アドレスをヌルにセットする。 <擬似コード終了>
【発明の効果】以上説明したように、本発明によれば、
ページテーブルの検索を中止することなくページテーブ
ルエントリの移動あるいは削除を行うことができ、処理
を停滞させず、効率的に仮想メモリ管理にかかる処理を
実行することができる。
【0043】
【図面の簡単な説明】
【図1】メモリ管理ユニットの概要ブロック図である。
【図2】実施の態様における主記憶中のページテーブル
およびページテーブルエントリを示す図である。
【図3】実施の態様におけるページテーブル検索を示す
概要ブロック図である。
【図4】図2のページテーブルおよびページテーブルエ
ントリを削除する方法を示す図である。
【図5】図2のページテーブルおよびページテーブルエ
ントリを削除する方法を示す図である。
【図6】図2のページテーブルおよびページテーブルエ
ントリを削除する方法を示す図である。
【図7】実施の態様におけるページテーブルおよびテー
ブルのエントリを移動する処理を示す図である。
【図8】図2及び図3のページテーブルの検索を表すフ
ローチャートである。
【図9】図2及び図3の構成を用いたページテーブル挿
入を表すフローチャートである。
【図10】図2及び図3の構成を用いたページテーブル
削除を表すフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591146745 キヤノン インフォメーション システム ズ リサーチ オーストラリア プロプラ イエタリー リミテツド CANON INFORMATION S YSTEMS RESEARCH AUS TRALIA PLOPRIETZRY LIMITED オーストラリア国 2113 ニュー サウス ウェールズ州, ノース ライド, ト ーマス ホルト ドライブ 1 (72)発明者 ティモシー メリック ロング オーストラリア国 2113 ニューサウス ウエールズ州,ノース ライド,トーマス ホルト ドライブ 1 キャノン イン フォメーション システムズ リサーチ オーストラリア プロプライエタリー リ ミテッド内 (72)発明者 クリストファー アミーズ オーストラリア国 2113 ニューサウス ウエールズ州,ノース ライド,トーマス ホルト ドライブ 1 キャノン イン フォメーション システムズ リサーチ オーストラリア プロプライエタリー リ ミテッド内 (72)発明者 グラハム ストーニー オーストラリア国 2113 ニューサウス ウエールズ州,ノース ライド,トーマス ホルト ドライブ 1 キャノン イン フォメーション システムズ リサーチ オーストラリア プロプライエタリー リ ミテッド内

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 ページテーブルの所定のページテーブル
    エントリ値を検索する検索処理を停止する必要なしに、
    前記ページテーブルの現在のページテーブルエントリ値
    を削除あるいは移動するページテーブルの更新方法であ
    って、 (a)現在のページテーブルエントリ値が所定のページ
    テーブルエントリ値であるか判定する工程と、 (b)現在のページテーブルエントリの値が所定のペー
    ジテーブルエントリ値でない場合、現在のページテーブ
    ルエントリ値を削除あるいは移動する工程と、 (c)現在のページテーブルエントリ値が所定のページ
    テーブルエントリ値でない場合、現在のページテーブル
    エントリ値の削除あるいは移動以前に、前記検索処理が
    所定のページテーブルエントリ値の検索を完了するまで
    待機する工程とを備えることを特徴とするページテーブ
    ルの更新方法。
  2. 【請求項2】 前記ページテーブルは逆ページテーブル
    あるいはハッシュページテーブルであることを特徴とす
    る請求項1に記載のページテーブルの更新方法。
  3. 【請求項3】 現在のページテーブルエントリ値を移動
    する工程は、更に、現在のページテーブルエントリ値
    を、現在のページテーブルの位置から宛て先ページテー
    ブル位置へと複写する工程と、現在のページテーブルエ
    ントリ値を現在のページテーブル位置から削除する工程
    を含むことを特徴とする請求項1に記載のページテーブ
    ルの更新方法。
  4. 【請求項4】 前記ページテーブルはランダムアクセス
    メモリ(RAM)に格納されることを特徴とする請求項
    1に記載のページテーブルの更新方法。
  5. 【請求項5】 前記ページテーブルは二次記憶に格納さ
    れることを特徴とする請求項1に記載のページテーブル
    の更新方法。
  6. 【請求項6】 工程(a)は、 (aa) 現在のページテーブル値の与えられたアドレ
    スからハッシュインデックス値を生成する副工程と、 (ab) ハッシュインデックス値が有効であるか評価
    する副工程と、 (ac) ハッシュインデックス値が有効の場合、ハッ
    シュインデックス値から得た仮想アドレスを現在のペー
    ジテーブルエントリ値の与えられたページアドレスと比
    較する副工程と、 (ad) 工程(ac)の比較によりアドレスが等しく
    ないことが明らかになった場合、インデックス値をイン
    クリメントして工程(aa)に戻る副工程とを含むこと
    を特徴とする請求項2に記載のページテーブルの更新方
    法。
  7. 【請求項7】 更に、 (ae) 副工程(ac)の比較によりアドレスが等し
    いことが明らかになった場合、ハッシュアドレス値に対
    応する物理アドレスを発行して工程(a)を完了させる
    工程を含むことを特徴とする請求項6に記載のページテ
    ーブルの更新方法。
  8. 【請求項8】 工程(ac)の直後に、 (af)ハッシュ値が有効でない場合には、工程(a)
    を完了させるためにページフォルトを発生させる工程を
    更に含むことを特徴とする請求項7に記載のページテー
    ブルの更新方法。
  9. 【請求項9】 工程(ab)で決定されたハッシュイン
    デックス値が無効であるか、あるいは、工程(ac)の
    比較により両アドレスが等しいことが明らかになった場
    合、 (ag)ハッシュインデックス値によりアクセスされる
    仮想アドレスに、仮想アドレスと物理アドレスと有効フ
    ラグとをセットする工程を更に含むことを特徴とする請
    求項6に記載のページテーブルの更新方法。
  10. 【請求項10】 工程(b)および工程(c)は、
    (i)ハッシュテーブル中の与えられたアドレスに対す
    る現在のエントリのインデックス値を見つける副工程
    と、(ii)エントリのインデックス値によりアクセスさ
    れる仮想アドレスを無効値と設定する副工程と、(ii
    i)現在のエントリのインデックス値を置換する新たな
    エントリのインデックス値を識別するためにページテー
    ブルを検索する副工程と、(iv)工程(iii)において
    そのようなエントリが見つかったなら、工程(b)およ
    び(c)を完了させるべく、現在のエントリのインデッ
    クス値の有効フラグをクリアする副工程と、(v)その
    ようなエントリがあったなら、新たなエントリのインデ
    ックス値を現在のエントリのインデックス値に複写する
    副工程と、(vi)所定時間待機する副工程と、(vii)
    現在のインデックス値に新たなインデックス値をセット
    し、工程(ii)に戻る副工程とを含むことを特徴とする
    請求項6に記載のページテーブルの更新方法。
  11. 【請求項11】 ページテーブルのページテーブルエン
    トリ値を検索する検索処理を停止する必要なしに、コン
    ピュータシステム内の前記ページテーブルの現在のペー
    ジテーブルエントリ値を削除あるいは移動するページテ
    ーブルの更新方法であって、 (a)ページテーブルエントリを検索する前記検索処理
    が進行中であるか判定する工程と、 (b)前記検索処理が進行中でない場合、現在のページ
    テーブルエントリを削除あるいは移動する工程と、 (c)ページエントリ値の前記検索処理が進行中の場
    合、現在のページテーブルエントリ値の削除あるいは移
    動以前に所定時間待機する工程とを備えることを特徴と
    するページテーブルの更新方法。
  12. 【請求項12】 前記ページテーブルは逆ページテーブ
    ルあるいはハッシュページテーブルであることを特徴と
    する請求項11に記載のページテーブルの更新方法。
  13. 【請求項13】 現在のページテーブルエントリ値を移
    動する工程は、更に、現在のページテーブルエントリ値
    を、現在のページテーブルの位置から宛て先ページテー
    ブル位置へと複写する工程と、現在のページテーブルエ
    ントリ値を現在のページテーブル位置から削除する工程
    を含むことを特徴とする請求項11に記載のページテー
    ブルの更新方法。
  14. 【請求項14】 前記ページテーブルはランダムアクセ
    スメモリ(RAM)に格納されることを特徴とする請求
    項11に記載のページテーブルの更新方法。
  15. 【請求項15】 前記ページテーブルは二次記憶に格納
    されることを特徴とする請求項11に記載のページテー
    ブルの更新方法。
  16. 【請求項16】 工程(a)は、 (aa)現在のページテーブル値の与えられたアドレス
    からハッシュインデックス値を生成する副工程と、 (ab)ハッシュインデックス値が有効であるか評価す
    る副工程と、 (ac)ハッシュインデックス値が有効の場合、ハッシ
    ュインデックス値から得た仮想アドレスを現在のページ
    テーブルエントリ値の与えられたページアドレスと比較
    する副工程と、 (ad)工程(ac)の比較によりアドレスが等しくな
    いことが明らかになった場合、インデックス値をインク
    リメントしてステップ(aa)に戻る副工程とを含むこ
    とを特徴とする請求項12に記載のページテーブルの更
    新方法。
  17. 【請求項17】 更に、 (ae)工程(ac)の比較によりアドレスが等しいこ
    とが明らかになった場合、ハッシュアドレス値に対応す
    る物理アドレスを完了工程(a)に発行する工程を含む
    ことを特徴とする請求項16に記載のページテーブルの
    更新方法。
  18. 【請求項18】 工程(ac)の直後に、 (af)ハッシュ値が有効でない場合には、工程(a)
    を完了させるためにページフォルトを発生させる工程を
    更に含むことを特徴とする請求項17に記載のページテ
    ーブルの更新方法。
  19. 【請求項19】 工程(ab)で決定されたハッシュイ
    ンデックス値が無効であるか、あるいは、工程(ac)
    の比較により両アドレスが等しいことが明らかになった
    場合、 (ag)ハッシュインデックス値によりアクセスされる
    仮想アドレスに、仮想アドレスと物理アドレスと有効フ
    ラグとをセットする工程を更に含むことを特徴とする請
    求項16に記載のページテーブルの更新方法。
  20. 【請求項20】 工程(b)および工程(c)は、
    (i)ハッシュテーブル中の与えられたアドレスに対す
    る現在のエントリのインデックス値を見つける副工程
    と、(ii)エントリのインデックス値によりアクセスさ
    れる仮想アドレスを無効値と設定する副工程と、(ii
    i)現在のエントリのインデックス値を置換する新たな
    エントリのインデックス値を識別するためにページテー
    ブルを検索する副工程と、(iv)工程(iii)において
    そのようなエントリが見つかったなら、工程(b)およ
    び(c)を完了させるべく、現在のエントリのインデッ
    クス値の有効フラグをクリアする副工程と、(v)その
    ようなエントリがあったなら、新たなエントリのインデ
    ックス値を現在のエントリのインデックス値に複写する
    副工程と、(vi)所定時間待機する副工程と、(vii)
    現在のインデックス値に新たなインデックス値をセット
    し、工程(ii)に戻る副工程とを含むことを特徴とする
    請求項16に記載のページテーブルの更新方法。
  21. 【請求項21】 請求項1または11の方法によりペー
    ジテーブルを更新する構成を備えることを特徴とする装
    置。
  22. 【請求項22】 ページテーブルの所定のページテーブ
    ルエントリ値を検索する検索処理を停止する必要なし
    に、前記ページテーブルの現在のページテーブルエント
    リ値を削除あるいは移動するコンピュータプログラムが
    記録されたコンピュータ可読の記憶媒体であって、 現在のページテーブルエントリ値が所定のページテーブ
    ルエントリ値であるか判定する手段と、 現在のページテーブルエントリ値が所定のページテーブ
    ルエントリ値でない場合、現在のページテーブルエント
    リ値を削除あるいは移動する手段と、 現在のページテーブルエントリ値が所定のページテーブ
    ルエントリ値でない場合、現在のページテーブルエント
    リ値の削除あるいは移動以前に、前記検索処理が所定の
    ページテーブルエントリ値の検索を完了するまで待機す
    る工程とを備えることを特徴とする記憶媒体。
  23. 【請求項23】 ページテーブルのページテーブルエン
    トリ値を検索する検索処理を停止する必要なしに、コン
    ピュータシステム内の前記ページテーブルの現在のペー
    ジテーブルエントリ値を削除あるいは移動するコンピュ
    ータプログラムが記録されたコンピュータ可読の記憶媒
    体であって、 ページテーブルエントリを検索する前記検索処理が進行
    中であるか判定する手段と、 前記検索処理が進行中でない場合、現在のページテーブ
    ルエントリを削除あるいは移動する手段と、 ページエントリ値の前記検索処理が進行中の場合、現在
    のページテーブルエントリ値の削除あるいは移動以前に
    所定時間待機する手段とを備えることを特徴とする記憶
    媒体。
  24. 【請求項24】 請求項1または11の方法によって仮
    想メモリを管理する管理部を供えることを特徴とするコ
    ンピュータシステム。
JP23281597A 1996-08-28 1997-08-28 ページテーブル更新方法および装置 Expired - Fee Related JP3880146B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AUPO1946A AUPO194696A0 (en) 1996-08-28 1996-08-28 A method of efficiently updating hashed page tables
AU1946 1999-07-30

Publications (2)

Publication Number Publication Date
JPH10133950A true JPH10133950A (ja) 1998-05-22
JP3880146B2 JP3880146B2 (ja) 2007-02-14

Family

ID=3796259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23281597A Expired - Fee Related JP3880146B2 (ja) 1996-08-28 1997-08-28 ページテーブル更新方法および装置

Country Status (3)

Country Link
US (1) US6145064A (ja)
JP (1) JP3880146B2 (ja)
AU (1) AUPO194696A0 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9301178B2 (en) 2013-04-25 2016-03-29 Fujitsu Limited Data extraction method and data extraction device
JP2017515242A (ja) * 2014-05-06 2017-06-08 華為技術有限公司Huawei Technologies Co.,Ltd. メモリ管理方法およびデバイス

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269098B1 (en) * 1997-02-14 2001-07-31 Advanced Micro Devices, Inc. Method and apparatus for scaling number of virtual lans in a switch using an indexing scheme
JP2000067009A (ja) 1998-08-20 2000-03-03 Hitachi Ltd 主記憶共有型マルチプロセッサ
US6266705B1 (en) * 1998-09-29 2001-07-24 Cisco Systems, Inc. Look up mechanism and associated hash table for a network switch
US6560688B1 (en) * 1998-10-01 2003-05-06 Advanced Micro Devices, Inc. System and method for improving accelerated graphics port systems
US6324637B1 (en) * 1999-08-13 2001-11-27 Sun Microsystems, Inc. Apparatus and method for loading objects from a primary memory hash index
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US7075926B2 (en) * 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US6944162B1 (en) * 2000-10-03 2005-09-13 Alcatel Tuple-based lookup scheme for packet switching node
US7403974B1 (en) * 2001-06-25 2008-07-22 Emc Corporation True zero-copy system and method
US6889225B2 (en) * 2001-08-09 2005-05-03 Integrated Silicon Solution, Inc. Large database search using content addressable memory and hash
US6615337B1 (en) * 2001-08-09 2003-09-02 Advanced Micro Devices, Inc. Method and apparatus for maintaining coherency in a translation lookaside buffer
US7209932B2 (en) * 2002-03-25 2007-04-24 International Business Machines Corporation Method, system, and program for allocating tasks to a plurality of processors
US6981120B1 (en) * 2002-11-04 2005-12-27 Savaje Technologies, Inc. Method and apparatus for virtual memory segmentation
US7412449B2 (en) * 2003-05-23 2008-08-12 Sap Aktiengesellschaft File object storage and retrieval using hashing techniques
US7827374B2 (en) * 2006-06-12 2010-11-02 Oracle America, Inc. Relocating page tables
US8161263B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for indirect data prefetching
US8166277B2 (en) * 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
US8161265B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for multi-level indirect data prefetching
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US8161264B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for data prefetching using indirect addressing with offset
US8484439B1 (en) 2009-10-27 2013-07-09 Juniper Networks, Inc. Scalable hash tables
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US20150128262A1 (en) * 2011-10-28 2015-05-07 Andrew F. Glew Taint vector locations and granularity
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9619402B1 (en) * 2012-11-28 2017-04-11 Marvell International Ltd. Method and apparatus for optimizing translation of a virtual memory address into a physical memory address in a processor having virtual memory
CN103064638B (zh) * 2012-12-24 2016-03-30 华为技术有限公司 一种处理数据的方法、装置及系统
US10747679B1 (en) * 2017-12-11 2020-08-18 Amazon Technologies, Inc. Indexing a memory region
US10789369B2 (en) * 2018-06-12 2020-09-29 Fujitsu Limited Oblivious array shuffling in trusted execution environments
US11556482B1 (en) * 2021-09-30 2023-01-17 International Business Machines Corporation Security for address translation services

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497480A (en) * 1990-12-31 1996-03-05 Sun Microsystems, Inc. Broadcast demap for deallocating memory pages in a multiprocessor system
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
JP2842313B2 (ja) * 1995-07-13 1999-01-06 日本電気株式会社 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9301178B2 (en) 2013-04-25 2016-03-29 Fujitsu Limited Data extraction method and data extraction device
JP2017515242A (ja) * 2014-05-06 2017-06-08 華為技術有限公司Huawei Technologies Co.,Ltd. メモリ管理方法およびデバイス
US10552337B2 (en) 2014-05-06 2020-02-04 Huawei Technologies Co., Ltd. Memory management and device

Also Published As

Publication number Publication date
JP3880146B2 (ja) 2007-02-14
US6145064A (en) 2000-11-07
AUPO194696A0 (en) 1996-09-19

Similar Documents

Publication Publication Date Title
JPH10133950A (ja) ページテーブル更新方法および装置
EP3433747B1 (en) Adaptive extension of leases for entries in a translation lookaside buffer
US5493660A (en) Software assisted hardware TLB miss handler
EP0813713B1 (en) Lookaside buffer for address translation in a computer system
EP0695996B1 (en) Multi-level cache system
JP4608484B2 (ja) ストレージの無効化、バッファ・エントリの消去
US5003459A (en) Cache memory system
US7472253B1 (en) System and method for managing table lookaside buffer performance
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US4825412A (en) Lockout registers
US7496730B2 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
US10078588B2 (en) Using leases for entries in a translation lookaside buffer
KR100573446B1 (ko) 미세 단위 변환 식별
EP0911737A1 (en) Cache memory with reduced access time
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
US7249225B1 (en) Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy
KR101451045B1 (ko) 컴퓨터 메모리 관리방법 및 컴퓨터 프로그램제품과 이를 위한 데이터 저장 장치
JP3552114B2 (ja) キャッシュ・メモリ及び主記憶装置を更新する方法と装置及びコンピュータシステム
US7549035B1 (en) System and method for reference and modification tracking
EP0752662B1 (en) Method and apparatus for tagging a multi-way associative cache
US7483930B1 (en) Method and apparatus for maintaining an object-based write barrier to facilitate garbage-collection operations
EP0519685A1 (en) Address translation
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6931504B2 (en) Method and apparatus for relocating objects within an object-addressed memory hierarchy
EP0173909B1 (en) Look-aside buffer least recently used marker controller

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061011

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: 20061023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061107

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees