JPH0836528A - 複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法 - Google Patents

複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法

Info

Publication number
JPH0836528A
JPH0836528A JP7018785A JP1878595A JPH0836528A JP H0836528 A JPH0836528 A JP H0836528A JP 7018785 A JP7018785 A JP 7018785A JP 1878595 A JP1878595 A JP 1878595A JP H0836528 A JPH0836528 A JP H0836528A
Authority
JP
Japan
Prior art keywords
address
page
address space
virtual
size
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.)
Withdrawn
Application number
JP7018785A
Other languages
English (en)
Inventor
Yousef A Khalidi
ヨーゼフ・エイ・カーリディ
Vikram P Joshi
ヴィクラム・ピイ・ジョシ
Madhusudhan Talluri
マドゥーサドハン・タルーリ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0836528A publication Critical patent/JPH0836528A/ja
Withdrawn 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
    • 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
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page 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)

Abstract

(57)【要約】 【目的】 複数ページ・サイズを使用して論理的にアド
レス指定可能な物理メモリにマップできる仮想メモリを
有するコンピュータ・システムを提供する。 【構成】 中間アドレス指定方式により、物理メモリの
小さい非連続の数ページを、仮想メモリのこれより大き
い1ページにマップできる。仮想アドレスを物理アドレ
スに直接変換するのではなく、仮想アドレスを中間アド
レスに変換し、これを物理アドレスに変換する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・システ
ムの分野に関するものであり、さらに詳細には複数のペ
ージ・サイズをサポートする仮想メモリ・コンピュータ
・システムにおける仮想ページの物理ページへのマッピ
ングに関するものである。
【0002】
【従来の技術】仮想メモリとは、アプリケーション・プ
ログラムが、大きく均一な一次メモリを有するようにメ
モリ・システムを使用できるようにする技術である。実
際には、メモリはより小さく、より細分化され、あるい
はハード・ディスク等の二次記憶装置により部分的にシ
ミュレートされてもよい。アプリケーションは仮想アド
レスを介してメモリにアクセスし、特殊なハードウェア
によって物理アドレス上に変換(マッピング)される。
ページング及びセグメンテーションは、仮想メモリの2
つの一般的な実施態様である。
【0003】ページング技術を用いて仮想メモリを実施
する場合、仮想アドレスのスペースはページと呼ばれる
多数の固定サイズのブロックに分割され、各ページは、
システムで利用できる同様のサイズのいずれかの物理ペ
ージにマッピングできる。通常、メモリ管理装置(MM
U)やページ化メモリ管理装置(PMMU)等の特殊な
メモリ管理ハードウェアが、仮想アドレスから物理アド
レスへのアドレス変換を実行する。この種のメモリ管理
では、物理(システム)メモリに存在しないデータにア
クセスしようとすると、PMMUが中央処理装置(CP
U)に割込み信号を送り、次に、アプリケーション・プ
ログラムが取り込みについて「知ら」ないうちに、オペ
レーティング・システムがその他の記憶装置(ハード・
ディスク等)からデータを取り込む。
【0004】ある仮想メモリ方式では、仮想メモリ・ス
ペースから物理メモリ・スペースへのマッピングが一つ
しかない。しかし、他の実施態様では、複数のアドレス
・スペースが存在することができ、それぞれ物理アドレ
ス・スペースへマッピングされる。従って、最初のプロ
セスが最初の仮想アドレスを使用して特定の物理アドレ
スを参照し、同じCPU上または複数プロセッサ環境の
別のCPU上で動く第2のプロセスが第2の仮想アドレ
スによって所与の物理アドレスを参照することになる。
このような場合、同じ物理アドレスに対応する2つの仮
想アドレスを「エイリアス」と呼ぶ。
【0005】2種類以上のサイズの仮想ページを使用し
て動作できるCPUもある。例えば、仮想メモリ・コン
ピュータ・システムの複数ページ・サイズをサポートす
るアドレス変換メカニズムが、1993年10月20日
に出願された米国特許出願08/139549号に記載
されている。さらに、複数のページ・サイズをサポート
する仮想アドレスから物理アドレスへの変換キャッシュ
が、1993年9月8日に出願された米国特許出願08
/118398号に記載されている。
【0006】複数のページ・サイズをサポートすること
により、マッピングされる仮想アドレス・スペースのニ
ーズを最も満たすように、マッピングに使用する仮想ペ
ージ・サイズが選択できる。大きいページを使用する
と、MMUの1個の変換エントリを使用して大量の仮想
メモリが変換できる。従って、MMUに必要な資源が少
なくなるので性能が上がる。しかし、大きいページを使
用すると、小さいページを使用する場合には遭遇しない
問題が起きることがある。大きいページは通常、物理メ
モリの1個の連続する部分になければならない。ページ
が大きくなればなるほど、そのページを物理メモリにロ
ードするために使用可能でなければならない物理メモリ
の1個の連続する部分が大きくなるのは明白である。通
常、ページ不在の場合に次のページを物理メモリのどこ
にロードするかを指示するのに使用される「自由」ペー
ジ・リストを維持する必要があるために、オーバヘッド
が生じる。ページ・サイズが複数の場合は、このオーバ
ヘッドが増大する。通常はページ・サイズごとに1つの
自由ページ・リストが必要だからである。
【0007】さらに、あるページ内の特定のワードを指
示するのに仮想または物理アドレスの特定数の最下位ビ
ットが使用される場合、ページ・サイズに関係なく、通
常はアドレス指定方式が使用される。あるページ内に使
用されるワードを指示するのに使用される最下位ビット
の数は、表されるページのサイズによって決まる。しか
し、ページ・サイズが与えられている場合、そのページ
内のワードの位置に充てられる最下位ビットの数は固定
され、そのアドレスが仮想アドレスでも物理アドレスで
も同じである。次に、仮想アドレスの残っている最上位
ビットを使用して、仮想メモリのどのページがアドレス
指定されているかが指示される。同様に、物理アドレス
の残っている最上位ビットを使用して、物理メモリのど
のページがアドレス指定されているかが指示される。こ
のアドレス指定方式では、アドレス指定されるページの
サイズの整数倍である境界に各ページを合わせる必要が
あることが暗黙の了解となっている。従って、あるペー
ジを物理メモリにロードする場合、ロードされるページ
と同じサイズの自由な連続部分を物理メモリ内で見つけ
るだけでは十分ではない。必要とされる自由な物理メモ
リの連続部分は、物理メモリにロードされるページのサ
イズによって規定されるページの境界で始まらなければ
ならない。ページ・サイズが大きくなるほど、所与のサ
イズの物理メモリ内で、所与のサイズのページを収容で
きる場所が少なくなる。
【0008】さらに、ページが大きいと、物理メモリの
アドレス指定される部分が小さいページより大きくなる
ので、小さいページを多数使用するより、大きいページ
を使用して物理メモリの1つの領域をマッピングするほ
うが好ましい。しかし、オペレーティング・システム
は、最初に大きいページを使用して仮想メモリの大きな
部分を物理メモリにマッピングするのではなく、時とと
もに小さいページを使用して仮想メモリを物理メモリに
マッピングする量を増加させることが多い。その結果、
1つの大きなページを使ってマッピングできるはずの仮
想メモリの連続領域が、小さい複数のページでマッピン
グされることになる。通常、この小さいページは物理メ
モリ内で非連続の領域を占める。
【0009】プロモーションと呼ばれるプロセスでは、
オペレーティング・システムが、小さい複数のページを
使用するマッピングが大きな1ページを使用したマッピ
ングに置換され、小さい複数ページのマッピングから大
きい1ページのマッピングへの置換を行う。この小さい
ページは通常、大きいページの境界で始まる物理メモリ
の連続部分に位置していないので、小さいページを大き
い1ページにプロモートするため、オペレーティング・
システムは、大きいページを収容できる物理メモリの適
切な部分を見つけ、その後で小さい複数ページの内容を
そこに移動しなければならない。従って、ページ・プロ
モーションにはメリットがあるが、プロモーション・プ
ロセスは時間のかかるプロセスである。
【0010】要約すると、従来技術では、複数のページ
・サイズがサポートされる場合でも、仮想ページは、サ
ポートされている仮想ページと同じページ・サイズの物
理ページを使用する物理メモリ内でサポートされる。つ
まり、仮想ページをバックアップ(back)する各物
理ページを、物理メモリでバックアップ(back)さ
れる仮想ページと同じサイズの物理メモリの連続したア
ドレス指定可能な領域から形成しなければならない。さ
らに、仮想ページをバックアップする物理メモリの連続
してアドレス指定可能な領域は、バックアップされる仮
想ページのサイズのページ位置合わせ境界で始まらなけ
ればならない。また物理ページでバックアップされる仮
想ページは、「穴」つまり仮想ページ内で物理メモリに
マッピングされない領域を全く含むことができない。以
上の制約が満たされることを保証するために、仮想メモ
リ・システム内で膨大な量のオーバヘッドが費やされ
る。
【0011】
【発明が解決しようとする課題】複数のページ・サイズ
を使用して物理メモリにマッピングできる仮想メモリを
有するコンピュータ・システム内で、論理的にアドレス
指定可能な物理メモリを提供することが本発明の課題で
ある。
【0012】
【課題を解決するための手段】中間アドレス指定方式を
使用することにより、物理メモリ内の非連続の小さい複
数ページを、これより大きいサイズの仮想メモリ1ペー
ジにマッピングできる。仮想アドレスを物理アドレスに
直接変換するのではなく、仮想アドレスを中間アドレス
に変換する。この中間アドレスは物理アドレスでも、物
理アドレスでなくてもよい。仮想ページが、ページ・サ
イズに適切な境界に位置合わせされた連続する物理メモ
リでバックアップ(back)されている場合は、中間
アドレスは物理アドレスであり、再度変換する必要はな
い。中間アドレスが物理アドレスでない場合は、次にこ
れが物理アドレスに変換される。仮想メモリの大きな1
ページが物理メモリのこれより小さい複数ページでバッ
クアップされている場合がそうである。
【0013】物理アドレスではない中間アドレスを使用
すると、物理メモリを論理メモリのように扱うことがで
きる。従って、物理メモリ内の非連続の小さいページ
を、中間変換を使用して一緒にマッピングして、大きな
1ページを形成することができる。このプロセスによ
り、物理メモリの1個の連続する領域を使用して大きい
ページをマッピングする必要がなくなる。さらに、この
プロセスにより、大きなページを物理メモリ内で対応す
る大きなページの境界に合わせる必要がなくなる。さら
に、仮想アドレスを中間アドレスのマッピングに変更
し、かつプロモーションを反映するように中間アドレス
を物理アドレスのマッピングに変更するだけで、小さい
複数ページを大きい1ページにプロモートできる。従っ
て、ページ・プロモーション操作中に、小さいページの
内容を、物理メモリ内で位置合わせした連続した大きい
1ページの領域に移動させる必要がなくなる。さらに、
仮想メモリ内の大きいページは、物理メモリの小さいペ
ージを一緒にマッピングすることによってバックアップ
できるので、仮想メモリの大きなページ・サイズの領域
で内部にこれより小さいページ・サイズの穴が1個以上
ある領域を、仮想メモリの大きな1ページとして扱い、
仮想アドレス・スペースの穴のない領域をバックアップ
するのに必要なだけの数のこれより小さいページを使用
して物理メモリ内でバックアップすることができる。ま
た、エイリアスが許されている方式では、このエイリア
スも中間アドレス指定方式のメリットを享受できる。
【0014】
【実施例】以下の記述では、説明のために、本発明が完
全に理解できるように、具体的な数字、素材及び構成を
示している。しかし本発明を具体的詳細なしに実施でき
ることは当業者には明白であろう。他の場合では、本発
明が不必要に曖昧にならないように、周知のシステムは
線図またはブロック図で示す。
【0015】図1には、本発明の実施例に基づいたメモ
リ管理ユニットを使用して、中間アドレスが物理アドレ
スでない場合に、仮想アドレスから中間アドレスへ、次
に物理アドレスへとアドレス変換を実施するコンピュー
タ・システムが図示されている。図1のコンピュータ・
システム100では、中央処理装置(CPU)110
は、仮想アドレスを使用してアドレス指定されたデータ
及び命令に基づいて作動する。この仮想アドレスは仮想
メモリの連続領域のページにグループ化される。コンピ
ュータ・システム100は、複数サイズの仮想ページを
同時に使用して作動できるので、仮想メモリの連続部分
を、大きい1ページまたはそれより小さい複数ページと
して交互に見ることができる。
【0016】CPU110が特定ページ内に格納されて
いる命令またはデータにアクセスしなければならない場
合、テストを行って、望ましい仮想ページの内容が現在
物理メモリ(PM)170に常駐しているか否かを判定
する。所望の仮想ページの内容が物理メモリ170に常
駐していることが判明した場合、CPU110は物理メ
モリ170内の所望の命令またはデータに直接アクセス
する。一方、所望の仮想ページの内容が物理メモリ17
0に常駐していないことが判明した場合、CPU110
は、所望の仮想ページの内容が物理メモリ170にロー
ドされるまで待たないと、物理メモリ170内の所望の
命令またはデータにアクセスできない。
【0017】メモリ管理ユニット(MMU)130は、
CPU110から受け取った仮想アドレス(VA)12
0を中間アドレス(IA)140に変換する。次に再マ
ッピング管理ユニット(RMU)150が中間アドレス
140を受け取って、それを物理アドレス(PA)16
0に変換する。これで物理アドレス160を使用して物
理メモリ170の適切な部分にアクセスできるようにな
る。中間アドレス・スペースの範囲は物理アドレス・ス
ペースの範囲と同じである。適切なページ境界で始まる
物理メモリの連続する一部分として、物理メモリ170
に格納されているページに仮想アドレスが含まれている
場合は、物理メモリ170にアクセスする時にMMU1
30によって提供される中間アドレスを物理アドレスと
して使用できる。このような場合、RMU150は単
に、中間アドレスを物理アドレスとしてパスする。つま
り中間アドレスを物理アドレスに変換しない。
【0018】他方、MMU130によって提供された中
間アドレスが、RMU150によって、物理メモリ17
0にアクセスできる一つまたは複数の物理アドレスに再
マッピングされる場合もある。非トリビアル中間アドレ
スが物理アドレスに変換される第1のケースは、変換さ
れる仮想アドレスを含む仮想アドレスのページが物理メ
モリの連続する一部分として物理メモリに格納されてい
る場合である。第2の非トリビアル中間アドレスが物理
アドレスに変換されるケースは、マッピングされる仮想
メモリより小さい物理メモリの一部分にしか該当するデ
ータがない場合である。非トリビアル中間アドレスが物
理アドレスに変換される第3のケースは、変換される仮
想アドレスを含む仮想アドレスのページが適切なページ
境界で開始する物理メモリの連続する一部分として物理
メモリに格納されていない場合に生じる。
【0019】MMU130及びRMU150が一緒に作
動して、物理メモリの複数ページを仮想メモリの1ペー
ジにマッピングする。RMU150によって仮想メモリ
の1ページにマッピングされた物理メモリの複数ページ
は、マッピング先の仮想ページとはページ・サイズが異
なってもよい。さらに、RMU150によって、物理メ
モリのサイズの異なる(または非連続の)複数ページを
一緒にして、これより大きい仮想1ページにマッピング
できる。従って、RMU150によって、物理メモリ1
70を論理メモリとして扱うことができるので、論理的
にアドレス指定できる。従って、物理メモリ170の非
連続部分を、RMU150によって仮想1ページに一緒
にマッピングできる。さらに、RMU150では大きい
ページを、物理メモリ170全体にわたるこれより小さ
い幾つかのページ要素にマッピングでき、この小さめの
ページは依然としてページ境界で開始するが、これが開
始するページ境界は、マッピング先の大きい方のページ
の境界ではなく、小さい方のページの境界である。ま
た、RMU150により、小さい仮想ページをこれより
大きい物理ページにマッピングできる。
【0020】CPU110がサポートするページの実際
のサイズは重要ではないが、メモリのページは通常、ワ
ードの2の数の整数乗のサイズである。ある実施例では
CPU110は4ページ・サイズをサポートしている。
このページ・サイズは、8Kワード(つまり213ワー
ド)、64Kワード(つまり216ワード)、512Kワ
ード(つまり219ワード)、及び4Mワード(つまり2
21ワード)のサイズである。従って、この実施例では、
最小サイズのページを除き、次に小さいサイズのページ
の8を一緒にマッピングして、各ページを形成すること
ができる。
【0021】コンピュータ・システム100のある実施
例では、システムの相互接続部(例えばシステム・バ
ス)が物理アドレス160(さらに、表示されていない
データ及び制御信号)を物理メモリ170に送る。代わ
りに、RMU150をシステム相互接続部の物理メモリ
170側に配置することができ、システム相互接続部は
中間アドレス140(さらに、表示されていないデータ
及び制御信号)をRMU150に送る。
【0022】適宜、コンピュータ・システム100にデ
ータ及び命令のキャッシュを追加することができる。キ
ャッシュには通常、アドレス・ベースのタグがある。シ
ステム100内のキャッシュの位置に応じて、キャッシ
ュのタグのアドレス・スペースは仮想アドレス・スペー
ス、中間アドレス・スペースまたは物理アドレス・スペ
ースになる。追加的なCPUを追加することによってコ
ンピュータ・システム100がマルチプロセッサ・シス
テムに拡張されていれば、システム100内の同様の状
況のキャッシュが、キャッシュの一貫性を維持するため
に、そのタグの同じアドレス・スペースを使用すること
ができる。さらに高速でキャッシュにアクセスするに
は、仮想または中間アドレスを使用してキャッシュのア
ドレスを指定することが予想される。
【0023】図2を見ると、中間アドレスが物理アドレ
スではない場合に、仮想アドレスから中間アドレスへ、
次に物理アドレスへとアドレス変換を実施するために、
変換索引バッファに基づいて本発明を実施したコンピュ
ータ・システムを示す。図2のコンピュータ・システム
200は図1のコンピュータ・システム100に似てい
る。図1のMMU130は、図2のコンピュータ・シス
テム200中で、TLBミス・ハンドラ235と連動す
る変換索引バッファ(TLB)230によって実現され
た状態で図示されている。TLB230は基本的に、変
換テーブル・エントリ(TTE)キャッシュである。各
変換テーブル・エントリ(TTE)は、少なくとも1仮
想ページの仮想アドレスから中間アドレスへの変換情報
を含む。TLB230に格納された変換テーブル・エン
トリを持たない仮想ページのために仮想アドレス変換が
要求されたら、TLBのミスが発生し、TLBミス・ハ
ンドラ235が要求された変換をTLB230に、そし
て最終的にはCPU110に供給する。
【0024】同様に、図1のRMU150は、図2のコ
ンピュータ・システム200中で、RLBミス・ハンド
ラ255と連動する再マッピング索引バッファ(RL
B)250によって実現された状態で図示されている。
RLB250の動作はTLB230と似ているが、TL
B230が仮想アドレスを中間アドレスに変換するのに
対して、RLB250が中間アドレスを物理アドレスに
変換する。このように、RLB250は基本的に再マッ
ピング・テーブル・エントリ(RTE)キャッシュであ
る。各再マッピング・テーブル・エントリ(RTE)
は、少なくとも1物理ページに対して中間アドレスから
物理アドレスへの変換情報を含む。RLB250に格納
された変換を持たない物理ページに対して物理アドレス
変換が要求されたら、RLBのミスが発生し、RLBミ
ス・ハンドラ255が要求された変換をRLB250に
供給する。
【0025】ある実施例では、TLBミス・ハンドラ2
35及びRLBミス・ハンドラ255は各々、TLBミ
ス処理機能またはRLBミス処理機能専用の別個のプロ
セッサで実行される。別の実施例では、TLBミス・ハ
ンドラ235及びRLBミス・ハンドラ255は両方と
も、TLBミス処理及びRLBミス処理機能の両方を専
門に実行する1台の別個のプロセッサによって実行され
る。さらに別の実施例では、TLBミス・ハンドラ23
5またはRLBミス・ハンドラ255(またはTLB2
35及びRLB255ミス・ハンドラの両方)はCPU
110が実行する。
【0026】さらに、TLBミス・ハンドラ235とR
LBミス・ハンドラ255が提供する機能は似ているの
で、TLBミス・ハンドラ235の実現には、RLBミ
ス・ハンドラ255の実現に使用できるのと同じアルゴ
リズムを使用できる。つまり1個のミス処理ハードウェ
アまたはソフトウェアの実現をサポートするだけでよ
い。
【0027】図3を見ると、変換テーブル・エントリと
再マッピング・テーブル・エントリとの関係が図示され
ている。図3では、変換テーブル・エントリ(TTE)
310が4つのフィールドで構成されていることが分か
る。TTE310の最初の2つのフィールドは、TLB
タグ・フィールド320及びTLBデータ・フィールド
330である。TLBタグ・フィールド320は、変換
される仮想アドレスを含む仮想メモリ・スペースの個々
のページを特定する。TLBデータ・フィールド330
は、TLBタグ・フィールド320によって特定された
仮想ページに対応する個々の中間アドレス・スペース・
ページを特定する。
【0028】TTE310の属性フィールド340は、
マッピングされるページのサイズ及びTTE310に対
応する仮想ページのデータ上で実行が許可される動作の
タイプに関する情報を含む。例えば、属性フィールド3
40は、TTE310に対応する仮想ページを読むこと
はできるがこれに書き込むことはできないことを示すビ
ットを含む。
【0029】TLBデータ・フィールド330の中間ア
ドレス・スペース・ページが、これをバックアップする
実際の物理アドレス・ページと等しい場合には、1ビッ
ト・フィールドの通過フラグ350がRLBにセットさ
れ、RLBが再マッピング変換を実行する必要がないこ
とを示す。実際には、通過ビットが設定されたら、RL
Bが物理アドレス変換として中間アドレス変換をそのま
まパスする。通過ビット350が設定されなければ、R
LBがRTE360等のRTEを使用し、中間アドレス
を物理アドレスに変換する。
【0030】図3で、再マッピング・テーブル・エント
リ(RTE)360が3つのフィールドで構成されてい
ることが分かる。RTE360の最初の2つのフィール
ドはRLBタグ・フィールド370及びRLBデータ・
フィールド380である。RLBタグ・フィールド37
0は、変換される中間アドレスを含む中間メモリ・スペ
ースの個々のページを特定する。RLBデータ・フィー
ルド380は、RLBタグ・フィールド370によって
特定される中間スペースのページに対応する個々の物理
アドレス・スペースのページを特定する。
【0031】RTE360の属性フィールド390は、
マッピングされるページのサイズ及びRTE360に対
応する中間ページのデータ上で実行が許可される動作の
タイプに関する情報を含む。例えば、属性フィールド3
90は、RTE360に対応する中間ページを読むこと
はできるがこれに書き込むことはできないことを示すビ
ットを含む。通常、RTE360の属性フィールド39
0に格納される情報は、TTE310の属性フィールド
340に格納される情報から見ると、冗長になる。この
ような場合、属性フィールド390をRTE360から
削除できる。
【0032】図4から図10は本発明の導入によって得
られる様々なメリットを実証する例を示す。単純に図示
するため、3つのページ・サイズを使用している。小さ
いサイズのページ、中サイズのページ、及び大きいサイ
ズのページがある。中サイズのページは、小さいサイズ
の2ページと同じサイズである。大きいサイズのページ
は、中サイズの2ページと同じサイズなので、小さいサ
イズの4ページと同じサイズである。このページの実際
のサイズは、これらの図の概念を示すのに重要ではな
い。
【0033】図4を見ると、中サイズの1ページ及び小
さいサイズの2ページを、仮想アドレス・スペースの領
域から中間アドレス・スペースの領域に、さらに物理ア
ドレス・スペースの領域にマッピングする様子が図示さ
れている。図4では、仮想アドレス・スペース410
は、仮想アドレス・スペースの小さいサイズの8ページ
の連続領域である。従って、仮想アドレス・スペース4
10は、小さいサイズの仮想アドレスの8ページVP−
0からVP−7で形成されている。
【0034】中サイズの1ページは小さいサイズの2ペ
ージ分に等しいので、仮想アドレス・スペース410
を、中サイズの4ページと見ることもできる。仮想アド
レス・スペース410のページは、ページを位置合わせ
しなければならない。従って、中サイズの最初のページ
は、小さいページVP−0とVP−1とを一緒にマッピ
ングして形成することができ、中サイズの2番目のペー
ジは、小さいページVP−2とVP−3とを一緒にマッ
ピングして形成することができ、中サイズの3番目のペ
ージは、小さいページVP−4とVP−5とを一緒にマ
ッピングして形成することができ、中サイズの4番目の
ページは、小さいページVP−6とVP−7とを一緒に
マッピングして形成することができた。仮想アドレス・
スペースのページ位置合わせの制約により、中サイズの
仮想アドレス・スペース・ページを、例えばVP−1と
VP−2とを一緒にマッピングして形成することはでき
なかった。VP−1が中サイズのページの境界で開始し
ていないからである。また、仮想アドレス・スペースの
連続ページの制約により、中サイズの仮想アドレス・ス
ペース・ページを、例えばVP−0とVP−2とを一緒
にマッピングして形成することはできなかった。VP−
0がVP−2と連続していないからである。
【0035】同様に、大きいサイズの1ページはサイズ
が中サイズの2ページ分に等しく、小さいサイズの4ペ
ージ分にも等しいので、仮想アドレス・スペース410
を、大きいサイズの2ページと見ることもできる。この
場合も、仮想アドレス・スペース410のページは、ペ
ージを位置合わせしなければならない。従って、大きい
サイズの最初のページは、小さいページVP−0、VP
−1、VP−2及びVP−3を一緒にマッピングして形
成することができ、大きいサイズの2番目のページは、
小さいページVP−4、VP−5、VP−6及びVP−
7を一緒にマッピングして形成することができた。仮想
アドレス・スペースのページ位置合わせの制約により、
大きいサイズの仮想アドレス・スペース・ページを、例
えばVP−1、VP−2、VP−3及びVP−4を一緒
にマッピングして形成することはできなかった。VP−
1が大きいサイズのページの境界で開始していないから
である。また、仮想アドレス・スペースの連続ページの
制約により、大きいサイズの仮想アドレス・スペース・
ページを、例えばVP−0とVP−2、VP−3及びV
P−4とを一緒にマッピングして形成することはできな
かった。VP−0がVP−2と連続していないからであ
る。
【0036】仮想アドレス・スペース410を、大きい
サイズ、中サイズ、及び小さいサイズのページの組合せ
と見ることもできる。従って、例えば仮想アドレス・ス
ペース410を、大きいサイズの1ページ、中サイズの
1ページ、及び小さいサイズの2ページと見ることがで
きる。この例では、大きいサイズの1ページをVP−
0、VP−1、VP−2及びVP−3で形成することが
できる。中サイズの1ページは、VP−4とVP−5と
で形成することができる。従って、VP−6及びVP−
7は各々、異なる小さいサイズのページを表すことにな
る。
【0037】図4では、中間アドレス・スペース450
は、中間アドレス・スペースの小さいサイズの4ページ
の連続領域である。中間アドレス・スペース450は、
中間アドレス指定された小さいサイズの4ページIP−
0からIP−3で形成されている。
【0038】中サイズの1ページは小さいサイズの2ペ
ージ分に等しいので、中間アドレス・スペース450
を、中サイズの2ページと見ることもできる。仮想アド
レス・スペース・ページの場合と同様、中間アドレス・
スペース450のページは、ページを位置合わせしなけ
ればならない。従って、中サイズの最初のページは、小
さいページIP−0とIP−1とを一緒にマッピングし
て形成することができ、中サイズの2番目のページは、
小さいページIP−2とIP−3とを一緒にマッピング
して形成することができた。中アドレス・スペースのペ
ージ位置合わせの制約により、中サイズの中間アドレス
・スペース・ページを、例えばIP−1とIP−2とを
一緒にマッピングして形成することはできない。IP−
1が中サイズのページの境界で開始していないからであ
る。また、中間アドレス・スペースの連続ページの制約
により、中サイズの中間アドレス・スペース・ページ
を、例えばIP−0とIP−2とを一緒にマッピングし
て形成することもできない。IP−0がIP−2と連続
していないからである。
【0039】同様に、大きいサイズの1ページはサイズ
が中サイズの2ページ分に等しく、小さいサイズの4ペ
ージ分にも等しいので、中間アドレス・スペース450
を、小さいページIP−0、IP−1、IP−2及びI
P−3を一緒にマッピングして形成した大きいサイズの
1ページと見ることもできる。
【0040】中間アドレス・スペース450を、中サイ
ズと小さいサイズのページの組合せと見ることもでき
る。従って、例えば中間アドレス・スペース450を、
中サイズの1ページと小さいサイズの2ページと見るこ
とができる。この例では、中サイズの1ページをIP−
0とIP−1とで形成することができた。従って、IP
−2及びIP−3は各々、異なる小さいサイズのページ
を表すことになった。
【0041】図4では、物理アドレス・スペース490
は、物理アドレス・スペースの小さいサイズの4ページ
の連続領域である。従って、物理アドレス・スペース4
90には中間アドレス・スペース450と同じ範囲があ
る。物理アドレス・スペース490は、物理的にアドレ
ス指定された小さいサイズの4ページPP−0からPP
−3で形成される。
【0042】中サイズの1ページは小さいサイズの2ペ
ージ分に等しいので、物理アドレス・スペース490
を、中サイズの2ページと見ることもできる。物理アド
レス・スペース490からの小さいページの複数が、中
間アドレス・スペース450の中サイズの1ページへ一
緒にマッピングされなければならない。従って、物理ア
ドレス・スペース490のページ部分は、小さいページ
を位置合わせしなければならない。従って、最初の中サ
イズのページは、小さいページPP−0とPP−1とを
一緒にマッピングして形成することができ、2番目の中
サイズのページは、小さいページPP−2とPP−3と
を一緒にマッピングして形成することができる。中間ア
ドレス・スペースを使用せずに物理アドレス・スペース
の領域を仮想アドレス・スペースの領域にマッピングす
るには、両方のアドレス・スペースの領域が連続性及び
位置合わせの制約に従わなければならない。中間アドレ
ス・スペースのマッピングが加わる場合、中間アドレス
領域は制約に従わなければならないが、物理アドレス・
スペースは従う必要がない。中間アドレス領域から物理
アドレス領域への多数の小さいサイズのマッピングを行
うことにより、小さいサイズの物理ページを任意に組み
合わせて、仮想アドレス・スペースから中間アドレス・
スペースへの大きい1ページのマッピングに対応させる
ことができる。中間アドレスから物理アドレスへの中サ
イズのページのマッピングは、その中サイズのページの
マッピングに関する制約に従わなければならない。
【0043】従って、TLB230で、中サイズの1ペ
ージのマッピングを利用してVP−2及びVP−3をI
P−0及びIP−1にマッピングする場合、IP−0及
びIP−1は連続性及び位置合わせの制約に従う。IP
−0及びIP−1に対応する物理ページは、同じ制約に
従う必要がない。PP−0及びPP−2が各々IP−0
及びIP−1に対応しているなら、RLB250では小
さいサイズの2ページのエントリ(472B及び474
B)が使用される。他方、PP−2及びPP−3がIP
−0及びIP−1に対応しているなら、RLB250で
は中サイズのマッピングの単一のエントリを使用でき
る。
【0044】同様に、大きいサイズの1ページはサイズ
が中サイズの2ページ分に等しく、小さいサイズの4ペ
ージ分にも等しいので、物理アドレス・スペース490
を、小さいページPP−0、PP−1、PP−2及びP
P−3を一緒にマッピングして形成した大きいサイズの
1ページと見ることができる。物理アドレス・スペース
490は、サイズが大きいサイズの1ページに等しいの
で、中間アドレス・スペース450の大きなサイズの1
ページを完全にバックアップするには、物理アドレス・
スペース490全体が必要である。しかし、この大きい
ページの部分を、物理アドレス・スペース490内に順
序よく保管する必要はない。例えば、大きいページの最
初の小さいページ・サイズの部分をPP−1に格納し、
大きいページの2番目の小さいページ・サイズの部分を
PP−3に格納し、大きいページの3番目の小さいペー
ジ・サイズの部分をPP−2に格納し、大きいページの
4番目の小さいページ・サイズの部分をPP−0に格納
することができた。
【0045】物理アドレス・スペース490を、中サイ
ズと小さいサイズのページの組合せと見ることもでき
る。従って、例えば物理アドレス・スペース490を、
中サイズの1ページと小さいサイズの2ページと見るこ
とができる。VP−0からVP−3が大きなページのマ
ッピングによってIP−0からIP−3にマッピングさ
れ、IP−0からIP−3が各々PP−0、PP−1、
PP−3及びPP−2に対応するなら、IP−0からI
P−1をPP−0からPP−1にマッピングするため
に、1中ページ・サイズのマッピングを利用できた。こ
のような場合には、IP−2をPP−3にマッピングす
るために小さい1ページのマッピングを使用し、IP−
3をPP−2にマッピングするために別の小さいページ
のマッピングを使用することができる。IP−0からI
P−1をPP−0からPP−1に中サイズのページでマ
ッピングするには、位置合わせ及び連続性の制約に従わ
なければならない。
【0046】図4では、変換索引バッファ(TLB)2
30が前述した変換機能を実行する。従って、TLB2
30は、仮想アドレス・スペース・ページを中間アドレ
ス・スペース・ページにマッピングする変換テーブル・
エントリ(TTE)を格納する。また、図4では、再マ
ッピング索引バッファ(RLB)250が前述した再マ
ッピング機能を実行する。従って、RLB250は、中
間アドレス・スペース・ページを物理アドレス・スペー
ス・ページにマッピングする再マッピング・テーブル・
エントリ(RTE)を格納する。
【0047】前述したように、図4には、中サイズの1
ページ及び小さいサイズの2ページを、仮想アドレス・
スペースの領域から中間アドレス・スペースの領域に、
次に物理アドレス・スペースの領域にマッピングする様
子が図示されている。中サイズのページ422は、仮想
アドレス・スペース410の小さいページVP−2及び
VP−3で形成され、線432Aで示されるように、中
間アドレス・スペース450のIP−0及びIP−1で
形成される中サイズのページ442にマッピングされ
る。中サイズのページ422及び442は、中サイズの
ページの境界に位置合わせされ、各々、仮想及び中間ア
ドレス・スペース410及び450の連続領域に形成さ
れている。TLB230のTTE432Bは、線432
Aで示されるマッピングを含む。アドレス・スペース4
10の中サイズのページ422は、小さいページPP−
0及びPP−2で形成された物理アドレス・スペース4
90の中サイズのページにマッピングされる。物理アド
レス・スペース410の中サイズのページ442の前半
(462)は、線472Aで示されるように、物理アド
レス・スペース490の小さいサイズのページPP−0
(482)にマッピングされる。RLB250のRTE
472Bは、線472Aで示されるマッピングを含む。
物理アドレス・スペース410の中サイズのページ44
2の後半(464)は、線474Aで示されるように、
物理アドレス・スペース490の小さいサイズのページ
PP−2(484)にマッピングされる。RLB250
のRTE474Bは、線474Aで示されるマッピング
を含む。中サイズのページ442は中サイズのページの
境界に位置合わせされ、中間アドレス・スペース450
の連続領域で形成されているが、物理アドレス・スペー
ス490におけるその物理的表現は物理メモリの中ペー
ジ・サイズの連続した1領域に制限されていないことに
注意されたい。また、この中サイズのページは、物理ア
ドレス・スペース490の中ページ・サイズの位置合わ
せ境界で開始するようにも制限されていない。それどこ
ろか、ページ482が実際に物理アドレス・スペース4
90の中ページ・サイズの位置合わせ境界で開始してい
るのは、単なる偶然の一致である。
【0048】図4では、仮想アドレス・スペース410
の小さい1ページ426(VP−5)が、線436Aで
示されるように、中間アドレス・スペース450の小さ
い1ページ446(IP−2)にマッピングされる。T
LB230のTTE436Aは線436Aで示されるマ
ッピングを含む。次に、中間アドレス・スペース450
の小さい1ページ466(IP−2)は、線476Aで
示されるように、物理アドレス・スペース490の小さ
い1ページ486(PP−1)にマッピングされる。R
LB250のRTE476Bは、線476Aで示される
マッピングを含む。同様に、仮想アドレス・スペース4
10の小さい1ページ428(VP−6)は、線438
Aで示されるように、中間アドレス・スペース450の
小さい1ページ448(IP−3)にマッピングされ
る。TLB230のTTE438Bは線438Aで示さ
れるマッピングを含む。次に、中間アドレス・スペース
450の小さい1ページ466(IP−3)は、線47
8で表示されるように、物理アドレス・スペース490
の小さい1ページ488(PP−3)にマッピングされ
る。
【0049】小さい1仮想ページ426から物理ページ
486に変換する場合、変換はまず中間アドレスに行わ
れ(426から446)、次に2番目の変換が物理アド
レスに行われる(466から486)。従って、中間ア
ドレス・スペースから物理アドレス・スペースへの再マ
ッピングができるように、RLB250にRTE476
Bが必要である。小さい1仮想ページ428から物理ペ
ージ488への変換の場合、変換はまず中間アドレスへ
と行われる(428から448)。しかし中間アドレス
は物理アドレスと同じである。従って、後者の場合に
は、中間アドレスから物理アドレス(つまり468から
488)への変換は単純で、通過フラグをTTE438
Bにセットして、この2番目の変換を行う必要がないこ
とを示すことができる。従って、TTEで通過が示され
る場合には、中間アドレス・スペースから物理アドレス
・スペースへの再マッピングを行う必要がないので、R
LB250にRTEは不必要である。
【0050】図4では、小さいサイズの物理ページPP
−1及び小さいサイズの物理ページPP−2の内容がス
ワップされていたら(つまりPP−1がIP−1をバッ
クアップし、PP−2がIP−02をバックアップする
ようになっていたら)、中間アドレス・スペース450
と物理アドレス・スペース490との間の再マッピング
は単純になる。こうなるのは、(IP−O及びIP−1
で形成された)中間サイズの中間アドレス・スペース・
ページ442を(PP−O及びPP−1で形成された)
中サイズの1物理アドレス・スペース・ページに直接マ
ッピングでき、(IP−2で形成された)小さいサイズ
の中間アドレス・ページ446が(PP−2で形成され
た)小さいサイズの1物理アドレス・スペース・ページ
に直接マッピングできたからである。いずれの場合も、
各中間ページは、そのページ・サイズに適した境界に位
置合わせされ、かつ連続している同じサイズの物理ペー
ジでバックアップされる。従って、TTE432B、4
36B及び438Bは各々、通過状態が存在することを
示す。従って、2番目の再マッピング変換が不必要であ
ったので、RLB250に有効なRTEを持つ必要はな
い。
【0051】図5及び図6はともに、小さいサイズの仮
想アドレスの数ページを大きいサイズの仮想アドレスの
1ページにプロモートする様子を示す。図5は、小さい
サイズの数ページを大きいサイズの1ページにプロモー
トする前に、仮想アドレス・スペースの1領域を中間ア
ドレス・スペースの1領域へ、次に物理アドレス・スペ
ースの1領域にマッピングする様子を示す。これに対し
て図6は、プロモーション後のマッピングを示す。ペー
ジ・プロモーションによって、TLBの大きい1ページ
のTTEをこれより小さい数ページのTTEに置換でき
る。従って、大きいページをマッピングすることによっ
て、TLBのヒットの可能性が高くなるというメリット
が実現される。中間アドレス指定方式を使用することに
より、仮想アドレス・スペースの大きいページ・サイズ
の1領域を、これより小さいページを一緒にマッピング
して物理メモリ内でバックアップすることができる。従
って、物理メモリのバックアップは、連続領域で、マッ
ピングに使用されるページのサイズが、物理メモリ内で
バックアップされる仮想メモリ・ページのサイズの境界
上で境界合わせするという伝統的な仮想メモリ・ページ
の規準に適合する必要はない。
【0052】図5を見ると、図5では、仮想アドレス・
スペース510は小さいサイズのページVP−0からV
P−3で形成されているので、図4の仮想アドレス・ス
ペース410の半分である。図5の中間アドレス・スペ
ース450及び物理アドレス・スペース490は、図4
の個々の対応スペースと同じである。図5には、小さい
サイズの数ページを大きいサイズの1ページにプロモー
トする前に、仮想アドレス・スペース510の領域を中
間アドレス・スペース450の領域へ、次に物理アドレ
ス・スペース490の領域へとマッピングする様子が図
示されている。図5では、TLB230及びRLB25
0が図4に対して変化しているのは、TLB230のT
TE内に格納されている変換情報及びRLB250のR
TE内に格納されている再マッピング情報が、図5のマ
ッピングを反映するように変化しているだけである。
【0053】図5では、仮想アドレス・スペース510
の小さい1ページ522(VP−0)が、線532Aで
示されるように、中間アドレス・スペース450の小さ
い1ページ542(IP−0)にマッピングされてい
る。TLB230のTTE532Bは線532Aで示さ
れるマッピングを含む。次に、中間アドレス・スペース
450の小さい1ページ562(IP−0)が、線57
2Aで示されるように、物理アドレス・スペース490
の小さい1ページ582(PP−3)にマッピングされ
る。RLB250のRTE572Bは線572Aで示さ
れるマッピングを含む。
【0054】同様に、仮想アドレス・スペース510の
小さい1ページ524(VP−1)は、線534Aで示
されるように、中間アドレス・スペース450の小さい
1ページ544(IP−1)にマッピングされている。
TLB230のTTE534Bは線534Aで示される
マッピングを含む。次に、中間アドレス・スペース45
0の小さい1ページ564(IP−1)が、線574A
で示されるように、物理アドレス・スペース490の小
さい1ページ584(PP−1)にマッピングされる。
RLB250のRTE574Bは線574Aで示される
マッピングを含む。
【0055】仮想アドレス・スペース510の小さい1
ページ526(VP−2)は、線536Aで示されるよ
うに、中間アドレス・スペース450の小さい1ページ
546(IP−2)にマッピングされている。TLB2
30のTTE536Bは線536Aで示されるマッピン
グを含む。次に、中間アドレス・スペース450の小さ
い1ページ566(IP−2)が、線576Aで示され
るように、物理アドレス・スペース490の小さい1ペ
ージ586(PP−0)にマッピングされる。RLB2
50のRTE576Bは線576Aで示されるマッピン
グを含む。
【0056】最後に、仮想アドレス・スペース510の
小さい1ページ528(VP−3)は、線538Aで示
されるように、中間アドレス・スペース450の小さい
1ページ548(IP−3)にマッピングされている。
TLB230のTTE538Bは線538Aで示される
マッピングを含む。次に、中間アドレス・スペース45
0の小さい1ページ568(IP−3)が、線578A
で示されるように、物理アドレス・スペース490の小
さい1ページ588(PP−2)にマッピングされる。
RLB250のRTE578Bは線578Aで示される
マッピングを含む。
【0057】図5では、仮想アドレス・スペース510
の小さいサイズの4ページVP−0からVP−3が、大
きいサイズの1ページにプロモートする準備が整ってい
る。先行技術では、物理メモリの領域の内容を移動し
て、物理メモリ内で大きいページの境界が位置合わせさ
れた大きい連続ページによって、プロモートされた大き
いページがバックアップされるようにしておかなけれ
ば、これらのページをプロモートできなかった。従っ
て、この例の小さいページ584の現在の内容がPP−
1に適切に配置されていても、小さいページ582の現
在の内容をPP−0に移動し、小さいページ586の現
在の内容をPP−2に移動し、小さいページ588の現
在の内容をPP−3に移動しておかないと、ページをプ
ロモートできなかった。最悪のケースのシナリオでは、
新しい大きいページをバックアップする小さいページの
内容全部を、新しい大きいページが大きいページの境界
と位置合わせされ、かつ物理メモリの連続領域から形成
された大きいページでバックアップされている物理メモ
リの部分に移動しなければならなかった。
【0058】図6を見ると、図6では、仮想アドレス・
スペース610、中間アドレス・スペース450及び物
理アドレス・スペース490は、図5の個々の対応スペ
ースと同じである。図6には、小さいサイズの数ページ
を大きいサイズの1ページにプロモートした後に、仮想
アドレス・スペース610の領域を中間アドレス・スペ
ース450の領域へ、次に物理アドレス・スペース49
0の領域へとマッピングする様子が図示されている。図
6では、TLB230が図5に対して変化しているの
は、TLB230のTTE内に格納されている変換情報
が、プロモーションによって生じた図6のマッピングを
反映するように変化しているだけである。図6では、R
LB250のRTE内に格納されている再マッピング情
報は、図5の値から変化していない。プロモーション
が、中間アドレス・スペース450から物理アドレス・
スペース490へのマッピングに影響しないからであ
る。
【0059】図6では、仮想アドレス・スペース510
の大きい1ページ622(VP−0、VP−1、VP−
2及びVP−3)が、線632Aで示されるように、中
間アドレス・スペース450の大きい1ページ642
(IP−0、IP−1、IP−2及びIP−3)にマッ
ピングされている。TLB230のTTE632Bは線
632Aで示されるマッピングを含む。従って、仮想ア
ドレス・スペース510と中間アドレス・スペース45
0との間のマッピングがプロモーションによって変化し
たので、ここでは小さい4ページが大きい1ページとし
て表されている。従って、以前にはTLBで(小さい旧
ページ毎に1つ)必要だったTTEが、大きい新ページ
のTTE1つに置換されている。中間アドレス・スペー
ス450と物理アドレス・スペース490とのページ間
のマッピングを変更する必要がなくプロモーション・プ
ロセスが生じたことに注意すべきである。
【0060】従って、中間アドレス・スペース450の
小さい1ページ562(IP−O)は、線572Aで示
されるように、依然として物理アドレス・スペース49
0の小さい1ページ582(PP−3)にマッピングさ
れ、RLB250のRTE572Bは依然として線57
2Aで示されるマッピングを含む。同様に、中間アドレ
ス・スペース450の小さい1ページ564(IP−
1)は、線574Aで示されるように、依然として物理
アドレス・スペース490の小さい1ページ584(P
P−1)にマッピングされ、RLB250のRTE57
4Bは依然として線574Aで示されるマッピングを含
む。また、中間アドレス・スペース450の小さい1ペ
ージ566(IP−2)は、線576Aで示されるよう
に、物理アドレス・スペース490の小さい1ページ5
86(PP−0)にマッピングされ、RLB250のR
TE576Bは線576Aで示されるマッピングを含
む。最後に、中間アドレス・スペース450の小さい1
ページ568(IP−3)は、線578Aで示されるよ
うに、物理アドレス・スペース490の小さい1ページ
588(PP−2)にマッピングされ、RLB250の
RTE578Bは線578Aで示されるマッピングを含
む。
【0061】従って、仮想アドレス・スペース510の
大きいサイズの1ページは物理アドレス・スペース49
0の小さいサイズの4ページでバックアップされている
が、物理メモリ内のバックアップ・ページは連続的で大
きいサイズのページの境界に位置合わせしなくてはなら
ないという要件は削除されている。従って、物理メモリ
内に常駐するページを再配置することによって生じるプ
ロモーションのオーバヘッドは、もはや適用されない。
【0062】図7及び図8を見ると、これらの図は両方
とも、小さいサイズの仮想アドレスの数ページを、小さ
いページ・サイズの「穴」を有する大きいサイズの仮想
アドレスの1ページとして処理する様子を示す。図7
は、小さいページ・サイズの穴が大きいサイズのページ
の末尾にある場合に、仮想アドレス・スペースの領域を
中間アドレス・スペースの領域に、次に物理アドレス・
スペースの領域へとマッピングする様子を示す。これに
対して図8は、小さいページ・サイズの穴が大きいサイ
ズのページの末尾でない場合のマッピングを示す。いず
れの場合も、TLB中の大きい1ページのTTEは、こ
れより小さい数ページのTTEを置換できる。従って、
連続領域であるにはマッピングに使用されるページのサ
イズであるという伝統的な仮想メモリ・ページの規準に
適合しない仮想アドレス・スペースの領域では、大きい
ページをマッピングすることによって、TLBのヒット
の可能性が高くなるというメリットが実現される。
【0063】図7を見ると、図7では、仮想アドレス・
スペース510、中間アドレス・スペース450及び物
理アドレス・スペース490は、図6の個々の対応スペ
ースと同じである。図7には、中サイズの1ページ及び
小さいサイズの1ページを、小さいサイズの「穴」が大
きいサイズのページの末尾にある大きいサイズの1ペー
ジとして扱う場合に、仮想アドレス・スペース610の
領域を中間アドレス・スペース450の領域へ、次に物
理アドレス・スペース490の領域へとマッピングする
様子が図示されている。図7では、TLB230及びR
LB250が図6に対して変化しているのは、TLB2
30のTTE内に格納されている変換情報及びRLB2
50のRTE内に格納されている再マッピング情報が図
7のマッピングを反映するように変化しているだけであ
る。
【0064】図7では、(VP−0、VP−1及びVP
−2で形成された)仮想アドレス・スペース510の領
域702を、末尾に小さいページ・サイズの「穴」(V
P−3)が1個ある大きいサイズの1ページ(722)
として扱う。実際には本発明によって、仮想アドレス・
スペースの領域を、実際に割り当てられたのより大きい
サイズのページにプロモートできる。従って、この例で
は、領域702を記述するためTLB内に小さい3ペー
ジのTTEを必要とするのではなく、領域722を記述
する大きい1ページのTTEが使用される。
【0065】仮想アドレス・スペース610の大きい1
ページ722は、線732Aで示されるように、中間ア
ドレス・スペース450の大きい1ページ742(IP
−O、IP−1、IP−2及びIP−3)にマッピング
される。TLB230のTTE732Bは線732Aで
示されるマッピングを含む。中間アドレス・スペース4
50で、実際に物理メモリでバックアップされるのは小
さいサイズの4セクションのうち3セクションだけであ
る。この例では、物理メモリの小さいページ・サイズの
一部分及び中ページ・サイズの一部分が一緒にマッピン
グされ、領域702をバックアップしていた。中間アド
レス・スペース450の中サイズの1ページ762(I
P−0及びIP−1)が、線772Aで示されるよう
に、物理アドレス・スペース490の中サイズの1ペー
ジ782(PP−0及びPP−1)にマッピングされ
る。RLB250のRTE772Bは線772Aで示さ
れるマッピングを含む。同様に、中間アドレス・スペー
ス450の小さい1ページ764(IP−2)が、線7
74Aで示されるように、物理アドレス・スペース49
0の小さい1ページ784(PP−3)にマッピングさ
れる。RLB250のRTE774Bは線774Aで示
されるマッピングを含む。
【0066】別の方法として、領域702の物理的バッ
クアップは、中間アドレス・スペース450の小さいサ
イズの3ページを物理アドレス・スペース490の小さ
いサイズの3ページにマッピングすることによって実施
できた。前者のケースでは、マッピングを行うのに、R
LB250に2つのRTE(1つは中サイズのページ
用、1つは小さいサイズのページ用)が必要である。後
者のケースでは、RLB250に3つのRTE(小さい
サイズのページ毎に1つずつ)が必要となるが、前者の
ケースで与えられた連続性の制約及び中サイズのページ
の境界合わせの制約がなくなる。
【0067】図8を見ると、図8では、仮想アドレス・
スペース610、中間アドレス・スペース450及び物
理アドレス・スペース490は、図7の個々の対応スペ
ースと同じである。図8には、中サイズの1ページ及び
小さいサイズの1ページを、小さいページ・サイズの
「穴」が大きいサイズのページの中にある大きいサイズ
の1ページとして扱う場合に、仮想アドレス・スペース
610の領域を中間アドレス・スペース450の領域
へ、次に物理アドレス・スペース490の領域へとマッ
ピングする様子が図示されている。図8では、TLB2
30及びRLB250が図7に対して変化しているの
は、TLB230のTTE内に格納されている変換情報
及びRLB250のRTE内に格納されている再マッピ
ング情報が図8のマッピングを反映するように変化して
いるだけである。
【0068】図8では、仮想アドレス・スペース510
の(VP−0及びVP−1で形成された)領域822及
び(VP−3で形成された)領域824が、一緒にマッ
ピングされて、内部に小さいページ・サイズの「穴」
(VP−2)1個がある(VP−0、VP−1、VP−
2及びVP−3で形成された)大きいサイズの1ページ
802Aとして扱われる。この場合も、実際には本発明
によって、仮想アドレス・スペースの領域を、実際に割
り当てられたのより大きいサイズのページにプロモート
できる。従って、この例では、領域832及び824を
記述するためTLB内に2つのTTEを必要とするので
はなく、領域802Aを記述する大きい1ページのTT
E(802B)が使用される。
【0069】仮想アドレス・スペース610の中サイズ
の1ページ822(VP−0及びVP−1)と小さいサ
イズの1ページ824(VP−3)は、線832及び線
834で各々示されるように、中間アドレス・スペース
450の大きい1ページ842(IP−O、IP−1、
IP−2及びIP−3)にマッピングされる。中間アド
レス・スペース450で、実際に物理メモリにバックア
ップされるのは小さいサイズの4セクションのうち3セ
クションだけである。この例では、物理メモリの小さい
ページ・サイズの一部分及び中ページ・サイズの一部分
が一緒にマッピングされ、領域824及び822をバッ
クアップしていた。中間アドレス・スペース450の中
サイズの1ページ862(IP−0及びIP−1)が、
線872Aで示されるように、物理アドレス・スペース
490の中サイズの1ページ882(PP−2及びPP
−3)にマッピングされる。同様に、中間アドレス・ス
ペース450の小さい1ページ864(IP−3)が、
線874Aで示されるように、物理アドレス・スペース
490の小さい1ページ884(PP−1)にマッピン
グされる。
【0070】別の方法として、領域822及び824の
物理的バックアップは、中間アドレス・スペース450
の小さいサイズの3ページを物理アドレス・スペース4
90の小さいサイズの3ページにマッピングすることに
よって実施できた。前者のケースでは、マッピングを行
うのに、RLBに2つのRTE(1つは中サイズのペー
ジ用、1つは小さいサイズのページ用)しか必要ではな
い。後者のケースではRLBに3つのRTE(小さいサ
イズのページ毎に1つずつ)が必要となるが、前者のケ
ースで与えられた連続性の制約及び中サイズのページの
境界合わせの制約がなくなる。
【0071】図9及び図10を見ると、これらの図は両
方とも、仮想アドレス・スペースのページ・サイズの異
なる2領域が物理メモリの似たサイズの同じページにバ
ックアップされる場合を示す。図9は、仮想アドレス・
スペースの小さいページ・サイズの異なる2領域が物理
メモリの小さいサイズの同じ1ページにバックアップさ
れている場合に、仮想アドレス・スペースの領域を中間
アドレス・スペースの領域に、次に物理アドレス・スペ
ースの領域へとマッピングする様子を示す。これに対し
て図10は、仮想アドレス・スペースの中ページ・サイ
ズの異なる2領域が、物理メモリの小さいサイズの同じ
2ページを一緒にマッピングすることによってバックア
ップされる場合のマッピングを示す。図9では、物理メ
モリの小さいサイズのページは、連続性の制約及び境界
合わせの制約に従う。しかし、図10では、中間アドレ
ス指定方式を使用することにより、物理アドレス・スペ
ースの小さいサイズの2ページを一緒にマッピングし
て、中サイズの異なる仮想メモリの2ページをバックア
ップすることができる。従って図10では、物理メモリ
で伝統的に与えられていた連続性の制約及び中サイズの
ページの境界合わせの制約がなくなる。
【0072】図9は、仮想アドレス・スペースの2つの
異なる小さいページ・サイズの領域が物理メモリの同じ
1つの小さいサイズのページでバックアップされている
場合に、仮想アドレス・スペースの領域を中間アドレス
・スペースの領域に、次に物理アドレス・スペースの領
域へとマッピングする様子を示す。図9では、仮想アド
レス・スペース610、中間アドレス・スペース450
及び物理アドレス・スペース490は、図8の個々の対
応スペースと同じである。図9では、TLB230及び
RLB250が図8に対して変化しているのは、TLB
230のTTE内に格納されている変換情報及びRLB
250のRTE内に格納されている再マッピング情報が
図9のマッピングを反映するように変化しているだけで
ある。
【0073】図9では、仮想アドレス・スペース610
の小さい1ページ922(VP−0)が、線932Aで
示されるように、中間アドレス・スペース450の小さ
い1ページ942(IP−1)にマッピングされてい
る。TLB230のTTE932Bは線932Aで示さ
れるマッピングを含む。次に、中間アドレス・スペース
450の小さい1ページ962(IP−1)が、線97
2Aで示されるように、物理アドレス・スペース490
の小さい1ページ982(PP−1)にマッピングされ
ている。RLB250のRTE972Bは線972Aで
示されるマッピングを含む。
【0074】同様に、仮想アドレス・スペース610の
小さい1ページ924(VP−3)が、線934Aで示
されるように、中間アドレス・スペース450の小さい
1ページ944(IP−2)にマッピングされている。
TLB230のTTE934Bは線934Aで示される
マッピングを含む。次に、中間アドレス・スペース45
0の小さい1ページ964(IP−2)が、線974A
で示されるように、物理アドレス・スペース490の小
さい1ページ984(PP−1)にマッピングされてい
る。RLB250のRTE974Bは線974Aで示さ
れるマッピングを含む。従って、中間アドレス指定の方
式により、仮想メモリの2ページを物理メモリの同じサ
イズの1ページでバックアップできることが分かる。
【0075】図10は、仮想アドレス・スペースの2つ
の異なる中ページ・サイズの領域が物理メモリの同じ小
さいサイズの2ページを一緒にマッピングすることによ
りバックアップされている場合に、仮想アドレス・スペ
ースの領域を中間アドレス・スペースの領域に、次に物
理アドレス・スペースの領域へとマッピングする様子を
示す。図10では、仮想アドレス・スペース610、中
間アドレス・スペース450及び物理アドレス・スペー
ス490は、図9の個々の対応スペースと同じである。
図10では、TLB230及びRLB250が図9に対
して変化しているのは、TLB230のTTE内に格納
されている変換情報及びRLB250のRTE内に格納
されている再マッピング情報が図10のマッピングを反
映するように変化しているだけである。
【0076】図10では、仮想アドレス・スペース61
0の中サイズの1ページ1032(VP−0及びVP−
1)が、線1032Aで示されるように、中間アドレス
・スペース450の中サイズの1ページ1042(IP
−0及びIP−1)にマッピングされている。TLB2
30のTTE1032Bは線1032Aで示されるマッ
ピングを含む。次に、中間アドレス・スペース450の
中サイズの1ページ1042の小さいページ・サイズの
前半1062(IP−0)が、線1072Aで示される
ように、物理アドレス・スペース490の小さいサイズ
の1ページ1082(PP−1)にマッピングされてい
る。RLB250のRTE1072Bは線1072Aで
示されるマッピングを含む。次に、中間アドレス・スペ
ース450の中サイズの1ページ1042の小さいペー
ジ・サイズの後半1064(IP−1)が、線1074
Aで示されるように、物理アドレス・スペース490の
小さいサイズの1ページ1084(PP−3)にマッピ
ングされている。RLB250のRTE1074Bは線
1074Aで示されるマッピングを含む。
【0077】同様に、仮想アドレス・スペース610の
中サイズの1ページ1026(VP−2及びVP−3)
が、線1036Aで示されるように、中間アドレス・ス
ペース450の中サイズの1ページ1046(IP−2
及びIP−3)にマッピングされている。TLB230
のTTE1036Bは線1036Aで示されるマッピン
グを含む。次に、中間アドレス・スペース450の中サ
イズの1ページ1046の小さいページ・サイズの前半
1066(IP−2)が、線1076Aで示されるよう
に、物理アドレス・スペース490の小さいサイズの1
ページ1082(PP−1)にマッピングされている。
RLB250のRTE1076Bは線1076Aで示さ
れるマッピングを含む。次に、中間アドレス・スペース
450の中サイズの1ページ1048の小さいページ・
サイズの後半1068(IP31)が、線1078Aで
示されるように、物理アドレス・スペース490の小さ
いサイズの1ページ1084(PP−3)にマッピング
されている。RLB250のRTE1078Bは線10
78Aで示されるマッピングを含む。従って、中間アド
レス指定の方式により、仮想メモリの2ページを物理メ
モリのこれより小さいサイズのページを一緒にマッピン
グすることによりバックアップできることが分かる。従
って、図10では中間アドレス指定の方式により、物理
メモリで伝統的に与えられていた連続性の制約及び中間
サイズのページの境界合わせの制約がなくなる。
【0078】本発明の方法および装置をその現時点で好
ましい実施例および代替実施例によって説明したが、当
分野の技術者には、特許請求の範囲の精神および範囲内
の改変および変更を施して本発明を実施できることが認
識されよう。本明細書および図面は、したがって、限定
的なものではなく、説明のためのものとみなされるべき
ものである。
【図面の詳細な説明】
【図1】 仮想アドレスから中間アドレスへ、次に物理
アドレスへとアドレス変換を実行するための、メモリ管
理ユニットに基づく本発明の実施例を使用したコンピュ
ータ・システムを示す図である。
【図2】 仮想アドレスから中間アドレスへ、次に物理
アドレスへとアドレス変換を実行するための、変換索引
バッファに基づく本発明の実施例を使用したコンピュー
タ・システムである。
【図3】 変換索引バッファの変換テーブル・エントリ
と再マッピング索引バッファの再マッピング・テーブル
・エントリとの関係を示す図である。
【図4】 中サイズの1ページ及び小さいサイズの2ペ
ージの、仮想アドレス・スペースの領域から中間アドレ
ス・スペースの領域へ、次に物理アドレス・スペースの
領域へのマッピングを示す図である。
【図5】 小さいサイズの数ページを大きいサイズの1
ページにプロモートする前の、仮想アドレス・スペース
の1領域の、中間アドレス・スペースの1領域へ、次に
物理アドレス・スペースの1領域へのマッピングを示す
図である。
【図6】 小さいサイズの数ページを大きいサイズの1
ページにプロモートした後の、仮想アドレス・スペース
の1領域の、中間アドレス・スペースの1領域へ、次に
物理アドレス・スペースの1領域へのマッピングを示す
図である。
【図7】 中サイズの1ページ及び小さいサイズの1ペ
ージが、大きいサイズのページの最後に小さいページ・
サイズの「穴」を有する大きいサイズの1ページとして
扱われる場合の、仮想アドレス・スペースの1領域の、
中間アドレス・スペースの1領域へ、次に物理アドレス
・スペースの1領域へのマッピングを示す図である。
【図8】 中サイズの1ページ及び小さいサイズの1ペ
ージが、大きいサイズのページ内に小さいページ・サイ
ズの「穴」を有する大きいサイズの1ページとして扱わ
れる場合の、仮想アドレス・スペースの1領域の、中間
アドレス・スペースの1領域へ、次に物理アドレス・ス
ペースの1領域へのマッピングを示す図である。
【図9】 仮想アドレス・スペースの小さいページ・サ
イズの異なる2つの領域が物理メモリ内の同じ小さいサ
イズの1ページにバックアップされる場合の、仮想アド
レス・スペースの1領域の、中間アドレス・スペースの
1領域へ、次に物理アドレス・スペースの1領域へのマ
ッピングを示す図である。
【図10】 仮想アドレス・スペースにある中ページ・
サイズの異なる2つの領域が、物理メモリ内の小さいサ
イズの同じ2つのページを一緒にマッピングすることに
よってバックアップされている場合の、仮想アドレス・
スペースの1領域の、中間アドレス・スペースの1領域
へ、次に物理アドレス・スペースの1領域へのマッピン
グを示す図である。
【符号の説明】
100 コンピュータ・システム、110 中央処理装
置(CPU) 120 仮想アドレス(VA)、130 メモリ管理ユ
ニット(MMU) 140 中間アドレス(IA)、150 再マッピング
管理ユニット(RMU) 160 物理アドレス(PA)、170 物理メモリ
(PM)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヴィクラム・ピイ・ジョシ アメリカ合衆国 94539 カリフォルニア 州・フレモント・デブラム コモン・ 43309 (72)発明者 マドゥーサドハン・タルーリ アメリカ合衆国 53705 ウィスコンシン 州・マディソン・プリンストン アヴェニ ュ ナンバーケイ・304

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 第1アドレスを第2アドレスに変換でき
    る第1再マッピング回路と、 第3アドレスを第4アドレスに変換できる第2再マッピ
    ング回路とを含み、 前記第1及び第3アドレスが共に第1アドレス・スペー
    ス内の同じ連続してアドレス指定可能な第1領域に属
    し、前記第2アドレスが第2アドレス・スペース内の連
    続してアドレス指定可能な第2領域に属し、前記第4ア
    ドレスが第2アドレス・スペース内の連続してアドレス
    指定可能な第3領域に属する、仮想メモリ・コンピュー
    タ・システム用の再マッピング装置。
  2. 【請求項2】 さらに、通過表示を受け取ることのでき
    る通過回路と、第1アドレス・スペースに属する第5ア
    ドレスとを含み、第2アドレス・スペースに属するもの
    として第5アドレスを提供する請求項1に記載の再マッ
    ピング装置。
  3. 【請求項3】 第1アドレスを第2アドレスに変換する
    ステップと、 第3アドレスを第4アドレスに変換するステップとを含
    み、 前記第1及び第3アドレスが共に第1アドレス・スペー
    ス内の同じ連続してアドレス指定可能な第1領域に属
    し、前記第2アドレスが第2アドレス・スペース内の連
    続してアドレス指定可能な第2領域に属し、前記第4ア
    ドレスが第2アドレス・スペース内の連続してアドレス
    指定可能な第3領域に属する仮想メモリ・コンピュータ
    ・システム用の再マッピング方法。
  4. 【請求項4】 さらに、第1アドレス・スペースに属す
    るものとして第5アドレス及び通過表示を受け取るステ
    ップと、 第2アドレス・スペースに属するものとして第5アドレ
    スを提供するステップとを含む、請求項3に記載の再マ
    ッピング方法。
  5. 【請求項5】 さらに、第1アドレスに対応する第1仮
    想アドレスを使用して情報に対する要求を生成するステ
    ップと、 第1仮想アドレスを第1アドレスに変換するステップ
    と、 物理メモリの第2アドレスに格納された情報を検索する
    ステップと、 情報を提供するステップとを含む、請求項3に記載の再
    マッピング方法。
  6. 【請求項6】 第1アドレスを第2アドレスに変換でき
    る第1再マッピング回路を提供するステップと、 第3アドレスを第4アドレスに変換できる第2再マッピ
    ング回路を提供するステップとを含み、 前記第1及び第3アドレスが共に第1アドレス・スペー
    ス内の同じ連続してアドレス指定可能な第1領域に属
    し、前記第2アドレスが第2アドレス・スペース内の連
    続してアドレス指定可能な第2領域に属し、前記第4ア
    ドレスが第2アドレス・スペース内の連続してアドレス
    指定可能な第3領域に属する、仮想メモリ・コンピュー
    タ・システム用の再マッピング装置を提供する方法。
  7. 【請求項7】 さらに、仮想メモリを使用して操作でき
    る中央処理装置(CPU)を提供するステップと、 CPUから供給された仮想アドレスを再マッピング装置
    に提供される中間アドレスに変換できるメモリ管理装置
    を提供するステップと、 第1アドレスに対応する第1仮想アドレスを使用してC
    PUが第1情報を要求した時に第2アドレスに格納され
    た第1情報を提供でき、第3アドレスに対応する第1仮
    想アドレスを使用してCPUが第2情報を要求した時に
    第4アドレスに格納された第2情報を提供できる物理メ
    モリを提供するステップとを含む請求項6に記載の方
    法。
  8. 【請求項8】 物理メモリの第1サイズの連続部分がマ
    ッピングに利用できる場合に、物理メモリの第1サイズ
    の連続部分をアドレス・スペースの第1サイズの連続部
    分にマッピングできるマッピング装置と、 マッピング装置に連結され、物理メモリの第2サイズの
    部分と物理メモリの第3サイズの部分とを論理的に結合
    でき、物理メモリの第1サイズの連続部分が利用できな
    い場合に、物理メモリの第2及び第3サイズの部分をア
    ドレス・スペースの第1サイズの連続部分にマッピング
    できる結合装置とを備える装置。
JP7018785A 1994-01-12 1995-01-12 複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法 Withdrawn JPH0836528A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18065894A 1994-01-12 1994-01-12
US180658 1994-01-12

Publications (1)

Publication Number Publication Date
JPH0836528A true JPH0836528A (ja) 1996-02-06

Family

ID=22661259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7018785A Withdrawn JPH0836528A (ja) 1994-01-12 1995-01-12 複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法

Country Status (6)

Country Link
US (1) US5784707A (ja)
EP (1) EP0663636B1 (ja)
JP (1) JPH0836528A (ja)
KR (1) KR100354772B1 (ja)
DE (1) DE69428881T2 (ja)
SG (1) SG45399A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000048754A (ko) * 1996-09-30 2000-07-25 칼 하인쯔 호르닝어 마이크로프로세서 및 스택 메모리를 갖는 회로장치
US7328288B2 (en) 2003-12-11 2008-02-05 Canon Kabushiki Kaisha Relay apparatus for relaying communication from CPU to peripheral device
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム
CN115964310A (zh) * 2023-03-16 2023-04-14 芯动微电子科技(珠海)有限公司 一种非线性多存储信道数据交织方法及交织模块

Families Citing this family (70)

* Cited by examiner, † Cited by third party
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
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6182201B1 (en) * 1997-04-14 2001-01-30 International Business Machines Corporation Demand-based issuance of cache operations to a system bus
KR100263672B1 (ko) * 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
US6065010A (en) * 1997-06-10 2000-05-16 Daikin Us Corporation Computer implemented method of generating virtual files for sharing information of physical information file
US6021482A (en) * 1997-07-22 2000-02-01 Seagate Technology, Inc. Extended page mode with a skipped logical addressing for an embedded longitudinal redundancy check scheme
US6067581A (en) * 1998-01-20 2000-05-23 Micron Electronics, Inc. Method for identifying the orignal source device in a transaction request initiated from address translator to memory control module and directly performing the transaction therebetween
US6301645B1 (en) * 1998-01-20 2001-10-09 Micron Technology, Inc. System for issuing device requests by proxy
US6275830B1 (en) * 1998-03-18 2001-08-14 Oracle Corporation Compile time variable size paging of constant pools
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
US6233666B1 (en) * 1998-09-17 2001-05-15 International Business Machines Corporation Deferred disk drive space allocation for virtual memory pages with management of disk address recording in multipage tables without external process interrupts for table for input/output to memory
US6609153B1 (en) 1998-12-24 2003-08-19 Redback Networks Inc. Domain isolation through virtual network machines
US6970992B2 (en) * 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6857058B1 (en) 1999-10-04 2005-02-15 Intel Corporation Apparatus to map pages of disparate sizes and associated methods
US6446186B1 (en) 1999-10-27 2002-09-03 Nvidia Corporation Method, apparatus and article of manufacture for mapping physical memory in a virtual address system
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US6718453B2 (en) * 2001-03-26 2004-04-06 Intel Corporation Apparatus and method for a channel adapter non-contiguous translation protection table
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US8719661B1 (en) 2010-11-15 2014-05-06 Vmware, Inc. Transparent and lightweight recovery from hardware memory errors
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB2381886B (en) * 2001-11-07 2004-06-23 Sun Microsystems Inc Computer system with virtual memory and paging mechanism
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
AU2003270288A1 (en) * 2002-09-30 2004-04-23 Theuer Thomas Schobel Method for regulating access to data in at least one data storage device in a system consisting of several individual systems
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7334108B1 (en) 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
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
US7426625B2 (en) 2004-03-31 2008-09-16 International Business Machines Corporation Data processing system and computer program product for support of system memory addresses with holes
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US20060004983A1 (en) * 2004-06-30 2006-01-05 Tsao Gary Y Method, system, and program for managing memory options for devices
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
WO2006032103A1 (en) * 2004-09-24 2006-03-30 Synaptic Laboratories Limited METHOD OF AND APPARATUS FOR MAPPING n-BIT IDENTIFIERS OF FEWER THAN 2n RESOURCES
US7516298B2 (en) * 2004-11-15 2009-04-07 Platform Solutions Incorporated Sparse table compaction method
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US7543123B2 (en) * 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
US8239657B2 (en) * 2007-02-07 2012-08-07 Qualcomm Incorporated Address translation method and apparatus
US20090031100A1 (en) * 2007-07-23 2009-01-29 David Hansen Memory reallocation in a computing environment
US8151076B2 (en) * 2008-04-04 2012-04-03 Cisco Technology, Inc. Mapping memory segments in a translation lookaside buffer
US7930515B2 (en) * 2008-07-29 2011-04-19 International Business Machines Corporation Virtual memory management
US8527697B2 (en) * 2009-07-20 2013-09-03 Netapp, Inc. Virtualized data storage in a network computing environment
US20110238946A1 (en) * 2010-03-24 2011-09-29 International Business Machines Corporation Data Reorganization through Hardware-Supported Intermediate Addresses
US8683169B2 (en) 2011-05-05 2014-03-25 International Business Machines Corporation Selecting an auxiliary storage medium for writing data of real storage pages
US8799611B2 (en) 2011-05-05 2014-08-05 International Business Machines Corporation Managing allocation of memory pages
US8656133B2 (en) 2011-05-05 2014-02-18 International Business Machines Corporation Managing storage extents and the obtaining of storage blocks within the extents
US8793444B2 (en) 2011-05-05 2014-07-29 International Business Machines Corporation Managing large page memory pools
US8868876B2 (en) 2011-12-28 2014-10-21 International Business Machines Corporation Dedicated large page memory pools
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
CN103077120B (zh) * 2012-12-31 2016-01-27 东软集团股份有限公司 程序共享内存的地址转换方法和装置
US9183057B2 (en) 2013-01-21 2015-11-10 Micron Technology, Inc. Systems and methods for accessing memory
US20160019161A1 (en) * 2013-03-12 2016-01-21 Hewlett-Packard Development Company, L.P. Programmable address mapping and memory access operations
CN104216833B (zh) * 2013-05-29 2017-10-10 华为技术有限公司 一种确定物理地址的方法及装置
US9405703B2 (en) * 2014-06-04 2016-08-02 Advanced Micro Devices, Inc. Translation lookaside buffer
GB2536201B (en) 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
GB2536880B (en) 2015-03-24 2021-07-28 Advanced Risc Mach Ltd Memory management
US10719451B2 (en) * 2017-01-13 2020-07-21 Optimum Semiconductor Technologies Inc. Variable translation-lookaside buffer (TLB) indexing
TW201928689A (zh) * 2017-12-21 2019-07-16 晨星半導體股份有限公司 硬體控制系統及硬體控制方法
CN110096457B (zh) * 2018-01-31 2023-05-23 联发科技股份有限公司 硬件控制系统及硬件控制方法
US20230176978A1 (en) * 2021-12-03 2023-06-08 Micron Technology, Inc. Address translation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2315744A1 (fr) * 1975-06-27 1977-01-21 Telemecanique Electrique Dispositif auxiliaire d'adressage virtuel
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
JPH1017137A (ja) * 1996-06-27 1998-01-20 Toyo Kanetsu Kk 仕分設備

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000048754A (ko) * 1996-09-30 2000-07-25 칼 하인쯔 호르닝어 마이크로프로세서 및 스택 메모리를 갖는 회로장치
US7328288B2 (en) 2003-12-11 2008-02-05 Canon Kabushiki Kaisha Relay apparatus for relaying communication from CPU to peripheral device
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム
CN115964310A (zh) * 2023-03-16 2023-04-14 芯动微电子科技(珠海)有限公司 一种非线性多存储信道数据交织方法及交织模块

Also Published As

Publication number Publication date
EP0663636A1 (en) 1995-07-19
SG45399A1 (en) 1998-01-16
DE69428881T2 (de) 2002-07-18
KR950033840A (ko) 1995-12-26
EP0663636B1 (en) 2001-10-31
US5784707A (en) 1998-07-21
KR100354772B1 (ko) 2003-01-24
DE69428881D1 (de) 2001-12-06

Similar Documents

Publication Publication Date Title
JPH0836528A (ja) 複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法
US6212613B1 (en) Methods and apparatus for reusing addresses in a computer
US5956756A (en) Virtual address to physical address translation of pages with unknown and variable sizes
US5313611A (en) Method and apparatus for maintaining a lookup table for storing function values
US6604184B2 (en) Virtual memory mapping using region-based page tables
JP4562919B2 (ja) ダイナミック・ディスプレイ・メモリを実装するための方法および装置
US5617554A (en) Physical address size selection and page size selection in an address translator
US5386524A (en) System for accessing information in a data processing system
US5918250A (en) Method and apparatus for preloading default address translation attributes
US6145064A (en) Method of efficiently updating hashed page tables
US7809921B2 (en) Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
EP0149389A2 (en) Address translation control system
JPH03220644A (ja) コンピユータ装置
US6434685B1 (en) Paged memory management system within a run-time environment
US7117337B2 (en) Apparatus and method for providing pre-translated segments for page translations in segmented operating systems
JP2000227874A (ja) コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置
US20030005257A1 (en) Memory table and memory manager for use in managing memory
JP2007520014A (ja) 状況切換え環境中におけるアドレス変換技術
EP0674269B1 (en) Translation mechanism for input/output addresses
US7107431B2 (en) Apparatus and method for lazy segment promotion for pre-translated segments
US6918023B2 (en) Method, system, and computer program product for invalidating pretranslations for dynamic memory removal
US7660908B2 (en) Implementing virtual packet storage via packet work area
JPH09319658A (ja) 可変ページサイズのメモリ管理方式
JP2004355187A (ja) 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置
JP3204098B2 (ja) 動的アドレスデコードキャッシュ制御方式

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20040831