JPH1091525A - 変換索引バッファ及びメモリ管理システム - Google Patents
変換索引バッファ及びメモリ管理システムInfo
- Publication number
- JPH1091525A JPH1091525A JP9133245A JP13324597A JPH1091525A JP H1091525 A JPH1091525 A JP H1091525A JP 9133245 A JP9133245 A JP 9133245A JP 13324597 A JP13324597 A JP 13324597A JP H1091525 A JPH1091525 A JP H1091525A
- Authority
- JP
- Japan
- Prior art keywords
- field
- page
- bits
- 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.)
- Pending
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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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)
Abstract
(57)【要約】
【課題】最小のページ・アドレス以上で未使用ビットを
含まない、利用効率の高い変換索引バッファおよびメモ
リ管理方法を提供する。 【解決手段】ダーティ・ビットまたはプレゼンス・ビッ
トのいずれかをアドレス・タグ・フィールドへ移動さ
せ、これを仮想ページ番号と比較して、ヒットがあるか
どうかを判定する。プレゼンス/ダーティ・ビット・フ
ィールドの他のビットは物理ページ番号(PPN)フィ
ールドに残される。
含まない、利用効率の高い変換索引バッファおよびメモ
リ管理方法を提供する。 【解決手段】ダーティ・ビットまたはプレゼンス・ビッ
トのいずれかをアドレス・タグ・フィールドへ移動さ
せ、これを仮想ページ番号と比較して、ヒットがあるか
どうかを判定する。プレゼンス/ダーティ・ビット・フ
ィールドの他のビットは物理ページ番号(PPN)フィ
ールドに残される。
Description
【0001】
【発明の属する技術分野】本発明は総括的にコンピュー
タ用のメモリ・システムに関し、詳細には、仮想または
物理アドレス変換用のキャッシュ編成に関する。
タ用のメモリ・システムに関し、詳細には、仮想または
物理アドレス変換用のキャッシュ編成に関する。
【0002】
【従来の技術】仮想メモリはコンピュータ中に物理的に
存在しているものよりも大幅に大きいアドレス空間をコ
ンピュータ・プログラマに与えるために、コンピュータ
・アーキテクチャで使用されているアドレス指定手法で
ある。仮想メモリ空間の一部は仮想物理アドレス変換に
よって物理メモリ空間の一部にマップされる。変換は通
常、所与のページ番号に対して、対応する物理ページ番
号を作成するページ・テーブルによって達成される。こ
の変換手法は物理メモリを離散した部分すなわちいわゆ
るページに分割することを必要とする。仮想メモリのペ
ージはオペレーティング・システムが必要とする場合
に、物理アドレス空間に取り込まれる。
存在しているものよりも大幅に大きいアドレス空間をコ
ンピュータ・プログラマに与えるために、コンピュータ
・アーキテクチャで使用されているアドレス指定手法で
ある。仮想メモリ空間の一部は仮想物理アドレス変換に
よって物理メモリ空間の一部にマップされる。変換は通
常、所与のページ番号に対して、対応する物理ページ番
号を作成するページ・テーブルによって達成される。こ
の変換手法は物理メモリを離散した部分すなわちいわゆ
るページに分割することを必要とする。仮想メモリのペ
ージはオペレーティング・システムが必要とする場合
に、物理アドレス空間に取り込まれる。
【0003】
【発明が解決しようとする課題】ページ・サイズの選択
にはトレードオフが付随する。ページが小さければ小さ
いほど、多くのエントリがページ・テーブルに必要とな
る。その結果、ページ・テーブルによって消費されるメ
モリが多くなる。通常、このページ・テーブルは常にメ
モリ内に存在していなければならない。しかしながら、
ページを大きくすると、所与のページのメモリ空間全部
をプログラムが必要としない場合に、内部に分断化(fra
gmentation)が生じる。さらに、大きいページ・サイズ
はより広いI/O帯域幅を消費し、プロセス起動時間を
長くする。
にはトレードオフが付随する。ページが小さければ小さ
いほど、多くのエントリがページ・テーブルに必要とな
る。その結果、ページ・テーブルによって消費されるメ
モリが多くなる。通常、このページ・テーブルは常にメ
モリ内に存在していなければならない。しかしながら、
ページを大きくすると、所与のページのメモリ空間全部
をプログラムが必要としない場合に、内部に分断化(fra
gmentation)が生じる。さらに、大きいページ・サイズ
はより広いI/O帯域幅を消費し、プロセス起動時間を
長くする。
【0004】これらのトレードオフの釣り合いをとるた
めに提案されている技法は、可変ページ・サイズを設け
ることである。通常、この技法によって、オペレーティ
ング・システムが所与のプロセスに対して異なるページ
・サイズを指定することが可能となる。この場合、所与
のプロセスに対するページ・テーブルのエントリは適宜
修正され、ページ・サイズの変化を反映するようにな
る。可変ページ・サイズは仮想物理アドレス変換を記憶
するために使用されるキャッシュに重大な影響を及ぼ
す。仮想物理アドレスを格納するために使用される変換
索引バッファ(TLB)の一例を図1に示す。このTL
Bはコンテンツ・アドレス可能メモリ(CAM)に格納
された固定長タグを有する。ページ・サイズを変更する
と、コンテンツ・アドレス可能メモリに格納する必要の
あるビット数が影響を受ける。
めに提案されている技法は、可変ページ・サイズを設け
ることである。通常、この技法によって、オペレーティ
ング・システムが所与のプロセスに対して異なるページ
・サイズを指定することが可能となる。この場合、所与
のプロセスに対するページ・テーブルのエントリは適宜
修正され、ページ・サイズの変化を反映するようにな
る。可変ページ・サイズは仮想物理アドレス変換を記憶
するために使用されるキャッシュに重大な影響を及ぼ
す。仮想物理アドレスを格納するために使用される変換
索引バッファ(TLB)の一例を図1に示す。このTL
Bはコンテンツ・アドレス可能メモリ(CAM)に格納
された固定長タグを有する。ページ・サイズを変更する
と、コンテンツ・アドレス可能メモリに格納する必要の
あるビット数が影響を受ける。
【0005】可変長ページに対するアドレス変換をキャ
ッシュする手法の一つがKongに対して発行された米
国特許第5,465,337号に記載されており、この
特許は可変ページ・サイズに適合する変換索引バッファ
(TLB)を含んでいる、可変ページ・サイズ用のメモ
リ管理ユニット(MMU)を開示している。Kongの
TLBは他のTLBと同様に複数のエントリを含んでい
る。各エントリは対応する仮想ページのサイズを指定す
るサイズ・フィールドと、最大のページ・サイズに対応
する固定仮想ページ・フィールドと、仮想ページの指定
されたサイズに応じて可変数のビットを固定仮想ページ
・フィールドに付加する可変長フィールドと、対応する
物理アドレス・フィールドとを含んでいる。MMUも固
定長および可変長のフィールドで構成された可変長ペー
ジ番号の適正なビット数を、上位アドレスの上位アドレ
ス・ビットの対応する数と比較して、TLBにヒットが
あったか、ミスがあったかを特定する手段を含んでい
る。ヒットがあった場合には、TLBは対応する物理ア
ドレスを与え、このアドレスは次いで仮想アドレスのオ
フセットと組み合わされて、完全な物理アドレスを形成
する。Kongの手法の問題の1つは各TLBエントリ
が最小のページ・アドレス以外のすべてに対して未使用
ビット(使用されないビット)を含んでいることであ
る。それ故、シリコン面積と製造コストの両面で高価な
TLBの利用度が下がる。Kongの他の欠点はページ
全体をメモリに取り込んで、実際にはどれくらいが必要
なのかには関わりなく、一度にメモリからスワップ・ア
ウトされることである。
ッシュする手法の一つがKongに対して発行された米
国特許第5,465,337号に記載されており、この
特許は可変ページ・サイズに適合する変換索引バッファ
(TLB)を含んでいる、可変ページ・サイズ用のメモ
リ管理ユニット(MMU)を開示している。Kongの
TLBは他のTLBと同様に複数のエントリを含んでい
る。各エントリは対応する仮想ページのサイズを指定す
るサイズ・フィールドと、最大のページ・サイズに対応
する固定仮想ページ・フィールドと、仮想ページの指定
されたサイズに応じて可変数のビットを固定仮想ページ
・フィールドに付加する可変長フィールドと、対応する
物理アドレス・フィールドとを含んでいる。MMUも固
定長および可変長のフィールドで構成された可変長ペー
ジ番号の適正なビット数を、上位アドレスの上位アドレ
ス・ビットの対応する数と比較して、TLBにヒットが
あったか、ミスがあったかを特定する手段を含んでい
る。ヒットがあった場合には、TLBは対応する物理ア
ドレスを与え、このアドレスは次いで仮想アドレスのオ
フセットと組み合わされて、完全な物理アドレスを形成
する。Kongの手法の問題の1つは各TLBエントリ
が最小のページ・アドレス以外のすべてに対して未使用
ビット(使用されないビット)を含んでいることであ
る。それ故、シリコン面積と製造コストの両面で高価な
TLBの利用度が下がる。Kongの他の欠点はページ
全体をメモリに取り込んで、実際にはどれくらいが必要
なのかには関わりなく、一度にメモリからスワップ・ア
ウトされることである。
【0006】したがって、上述の制限を受けることのな
いメモリ管理手法が依然として、必要とされている。
いメモリ管理手法が依然として、必要とされている。
【0007】したがって、本発明の目的は、従来技術の
システムの制限を受けないメモリ管理システムを提供す
ることである。
システムの制限を受けないメモリ管理システムを提供す
ることである。
【0008】本発明の他の目的は、このための変換索引
バッファ(TLB)を提供することである。
バッファ(TLB)を提供することである。
【0009】
【課題を解決するための手段】本発明には2つの態様が
ある。最初のものは新しいメモリ編成であり、第2のも
のはこの新しいメモリ編成に適合した変換索引バッファ
(TLB)である。本発明による仮想メモリ編成は各仮
想ページを2つ以上のセクタに分解する。これらのセク
タの各々は、必要な場合にのみディスクから物理メモリ
(たとえば、DRAM)に取り込むことができる。これ
は仮想ページに関する付加的なレベルの解決をもたらす
ものであり、これによって不必要なデータを物理メモリ
に取り込まないことで、メモリおよび/またはI/O帯
域幅の要件が最小限のものとなる。システムはさらに、
データまたはアプリケーションの特性に基づいてオペレ
ーティング・システムが決定する多数のさまざまなセク
タに、仮想ページを分解する機能を含んでいる。このシ
ステムは広範囲にわたるアプリケーションに対して性能
を最適化するに当たり、オペレーティング・システム設
計者に与えられる許容度を大幅に広げるものである。
ある。最初のものは新しいメモリ編成であり、第2のも
のはこの新しいメモリ編成に適合した変換索引バッファ
(TLB)である。本発明による仮想メモリ編成は各仮
想ページを2つ以上のセクタに分解する。これらのセク
タの各々は、必要な場合にのみディスクから物理メモリ
(たとえば、DRAM)に取り込むことができる。これ
は仮想ページに関する付加的なレベルの解決をもたらす
ものであり、これによって不必要なデータを物理メモリ
に取り込まないことで、メモリおよび/またはI/O帯
域幅の要件が最小限のものとなる。システムはさらに、
データまたはアプリケーションの特性に基づいてオペレ
ーティング・システムが決定する多数のさまざまなセク
タに、仮想ページを分解する機能を含んでいる。このシ
ステムは広範囲にわたるアプリケーションに対して性能
を最適化するに当たり、オペレーティング・システム設
計者に与えられる許容度を大幅に広げるものである。
【0010】本発明の第2の態様において、上述した仮
想メモリ・システムに適合したTLBが提供される。T
LBは複数のエントリで構成されている。各エントリは
4つの一次フィールドを含んでいる。最初のフィールド
は仮想ページ番号を格納するタグ・フィールドである。
仮想ページ番号に対応する物理ページ番号がTLBエン
トリの第2のフィールドに格納される。この物理ページ
番号フィールドの長さは、TLBエントリのサイズ・フ
ィールドに格納されている、指定されたサイズにしたが
って変動する。第3のフィールドは物理ページ番号フィ
ールドと同様な可変長フィールドであり、可変数のプレ
ゼンス・ビット(Pビット)およびダーティ・ビット
(Dビット)を格納する。(以下、本明細書では、プレ
ゼンスをP、ダーティをDと略して記す。)このフィー
ルド内のビット数はこのTLBエントリに対応する仮想
ページのセクタの数によって決定される。各セクタには
プレゼンス・ビット1つとダーティ・ビット1つがあ
る。実施の形態の一つにおいて、このフィールドは仮想
ページ・サイズがたとえば最小限の4キロバイト(4K
B)から最大限の16メガバイト(16MB)間で大き
くなる場合に、最小限の4ビットから最大限の16ビッ
トまで2倍ずつ増大する。このようにして、セクタの数
はサイズ・フィールドによって指定された連続したより
大きい各ページ・サイズになると2倍ずつ増加する。可
変長P/Dビットによって使用される追加ビットは物理
ページ番号フィールドのビットを消費するので、この好
ましい実施の形態においては、物理ページ番号フィール
ド(N)ビット数プラス可変長P/Dフィールドのビッ
ト数(P+D)(ここで、PはPビットの数で、DはD
ビットの数を表わす)はさまざまなページ・サイズのす
べてに対して一定のままとなる。これはTLBの物理ペ
ージ番号フィールドに未使用ビットを作り出すことがな
い。
想メモリ・システムに適合したTLBが提供される。T
LBは複数のエントリで構成されている。各エントリは
4つの一次フィールドを含んでいる。最初のフィールド
は仮想ページ番号を格納するタグ・フィールドである。
仮想ページ番号に対応する物理ページ番号がTLBエン
トリの第2のフィールドに格納される。この物理ページ
番号フィールドの長さは、TLBエントリのサイズ・フ
ィールドに格納されている、指定されたサイズにしたが
って変動する。第3のフィールドは物理ページ番号フィ
ールドと同様な可変長フィールドであり、可変数のプレ
ゼンス・ビット(Pビット)およびダーティ・ビット
(Dビット)を格納する。(以下、本明細書では、プレ
ゼンスをP、ダーティをDと略して記す。)このフィー
ルド内のビット数はこのTLBエントリに対応する仮想
ページのセクタの数によって決定される。各セクタには
プレゼンス・ビット1つとダーティ・ビット1つがあ
る。実施の形態の一つにおいて、このフィールドは仮想
ページ・サイズがたとえば最小限の4キロバイト(4K
B)から最大限の16メガバイト(16MB)間で大き
くなる場合に、最小限の4ビットから最大限の16ビッ
トまで2倍ずつ増大する。このようにして、セクタの数
はサイズ・フィールドによって指定された連続したより
大きい各ページ・サイズになると2倍ずつ増加する。可
変長P/Dビットによって使用される追加ビットは物理
ページ番号フィールドのビットを消費するので、この好
ましい実施の形態においては、物理ページ番号フィール
ド(N)ビット数プラス可変長P/Dフィールドのビッ
ト数(P+D)(ここで、PはPビットの数で、DはD
ビットの数を表わす)はさまざまなページ・サイズのす
べてに対して一定のままとなる。これはTLBの物理ペ
ージ番号フィールドに未使用ビットを作り出すことがな
い。
【0011】TLBの他の実施の形態についても論じる
が、これは可変長P/Dフィールドの長さが連続したよ
り大きい各ページ・サイズになると2倍ずつ増加するの
を可能とするものである。これを可能とするTLBには
2つのタイプがある。最初のタイプにおいて、log2
(P+D)(ここで、PはPビットの数で、DはDビッ
トの数を表わす)が整数ではない場合、P/Dフィール
ドの上位2つのビットは無視される。このタイプは等し
いサイズのセクタを必要とする。可変長P/Dフィール
ドが一度に2倍ずつ増加するのを可能とする第2のタイ
プはセクタのサイズに同じ制約を課すものではない。こ
の第2のタイプはサイズが等しくないセクタを認めるも
のであり、それ故、所与のページに対して任意の数のセ
クタが存在できる。このタイプはオペレーティング・シ
ステムを若干複雑なものとし、個々のセクタのサイズを
追跡しなければならなくなる。任意の数の異なる規約(c
onvention)を使用して、これらの場合のセクタ・サイズ
を決定することができる。上書きの要件はセクタ・サイ
ズの合計が仮想ページ・サイズと等しくなければならな
いというものである。簡単な例は3つのセクタがあり、
1つのセクタがページ・サイズの半分であり、他の2つ
がページ・サイズの4分の1である場合である。この第
2の手法は指定されたページ・サイズに関わりなく、T
LBエントリの各々のすべてのビットを使用するという
利点がある。しかしながら、これが達成されるのは、オ
ペレーティング・システムを若干複雑にすることによる
ものであり、個々のセクタのサイズを追跡しなければな
らなくなる。
が、これは可変長P/Dフィールドの長さが連続したよ
り大きい各ページ・サイズになると2倍ずつ増加するの
を可能とするものである。これを可能とするTLBには
2つのタイプがある。最初のタイプにおいて、log2
(P+D)(ここで、PはPビットの数で、DはDビッ
トの数を表わす)が整数ではない場合、P/Dフィール
ドの上位2つのビットは無視される。このタイプは等し
いサイズのセクタを必要とする。可変長P/Dフィール
ドが一度に2倍ずつ増加するのを可能とする第2のタイ
プはセクタのサイズに同じ制約を課すものではない。こ
の第2のタイプはサイズが等しくないセクタを認めるも
のであり、それ故、所与のページに対して任意の数のセ
クタが存在できる。このタイプはオペレーティング・シ
ステムを若干複雑なものとし、個々のセクタのサイズを
追跡しなければならなくなる。任意の数の異なる規約(c
onvention)を使用して、これらの場合のセクタ・サイズ
を決定することができる。上書きの要件はセクタ・サイ
ズの合計が仮想ページ・サイズと等しくなければならな
いというものである。簡単な例は3つのセクタがあり、
1つのセクタがページ・サイズの半分であり、他の2つ
がページ・サイズの4分の1である場合である。この第
2の手法は指定されたページ・サイズに関わりなく、T
LBエントリの各々のすべてのビットを使用するという
利点がある。しかしながら、これが達成されるのは、オ
ペレーティング・システムを若干複雑にすることによる
ものであり、個々のセクタのサイズを追跡しなければな
らなくなる。
【0012】本発明の好ましい実施の形態はダーティ・
ビットまたはプレゼンス・ビットのいずれかをアドレス
・タグ・フィールドへ移動させ、これを仮想ページ番号
と比較して、ヒットがあるかどうかを判定する。プレゼ
ンス/ダーティ・ビット・フィールドの他のビットは物
理ページ番号(PPN)フィールドに残される。ページ
・サイズが大きくなったときに、プレゼンスおよびダー
ティ・フィールド内のビット数が、タグとPPNのフィ
ールドが小さくなっているのと同じ割合で増えるため、
この実施の形態はすべてのページ・サイズに対してTL
Bエントリのすべてのビットを使用する。
ビットまたはプレゼンス・ビットのいずれかをアドレス
・タグ・フィールドへ移動させ、これを仮想ページ番号
と比較して、ヒットがあるかどうかを判定する。プレゼ
ンス/ダーティ・ビット・フィールドの他のビットは物
理ページ番号(PPN)フィールドに残される。ページ
・サイズが大きくなったときに、プレゼンスおよびダー
ティ・フィールド内のビット数が、タグとPPNのフィ
ールドが小さくなっているのと同じ割合で増えるため、
この実施の形態はすべてのページ・サイズに対してTL
Bエントリのすべてのビットを使用する。
【0013】本発明の上記およびその他の目的、特徴お
よび利点は添付図面を参照して進められる、本発明の好
ましい実施の形態に関する以下の詳細な説明からより容
易に明らかとなろう。
よび利点は添付図面を参照して進められる、本発明の好
ましい実施の形態に関する以下の詳細な説明からより容
易に明らかとなろう。
【0014】
【発明の実施の形態】図2を参照すると、本発明による
変換索引バッファ(TLB)が総括的に10で示されて
いる。TLB 10はコンピュータ・システムの要件に
応じて、フル・アソシエーティブ、セット・アソシエー
ティブ、直接マッピングを含む任意の数の形態をとるこ
とができる。好ましい実施の形態において、TLB 1
0はその内部でのヒット率を最高のものとするためフル
・アソシエーティブであるが、これに限定されるもので
はない。
変換索引バッファ(TLB)が総括的に10で示されて
いる。TLB 10はコンピュータ・システムの要件に
応じて、フル・アソシエーティブ、セット・アソシエー
ティブ、直接マッピングを含む任意の数の形態をとるこ
とができる。好ましい実施の形態において、TLB 1
0はその内部でのヒット率を最高のものとするためフル
・アソシエーティブであるが、これに限定されるもので
はない。
【0015】TLBはエントリ12および14などの複
数のエントリを含んでいる。各エントリは複数のフィー
ルドで構成されている。これらのフィールドの各々をT
LBエントリ12を参照して説明する。この説明はTL
B内の他のすべてのエントリ(たとえば、14)にも同
様に適用されるものである。TLBエントリ12の最初
のフィールドはタグ・フィールド16で、これは仮想ペ
ージ番号(VPN)を格納する。この仮想ページ番号は
このエントリ12が対応している仮想アドレスの最上位
ビットで構成されている。他のビットについては以下で
説明する仮想アドレス内の対応するVPNフィールド2
6と比較されて、TLBでヒットしたか、ミスしたかを
判定されるのは、このフィールド16の内容である。し
たがって、これをタグと呼ぶ。このエントリに対するペ
ージのサイズに応じて、可変数のこれらのビットを比較
で使用する。
数のエントリを含んでいる。各エントリは複数のフィー
ルドで構成されている。これらのフィールドの各々をT
LBエントリ12を参照して説明する。この説明はTL
B内の他のすべてのエントリ(たとえば、14)にも同
様に適用されるものである。TLBエントリ12の最初
のフィールドはタグ・フィールド16で、これは仮想ペ
ージ番号(VPN)を格納する。この仮想ページ番号は
このエントリ12が対応している仮想アドレスの最上位
ビットで構成されている。他のビットについては以下で
説明する仮想アドレス内の対応するVPNフィールド2
6と比較されて、TLBでヒットしたか、ミスしたかを
判定されるのは、このフィールド16の内容である。し
たがって、これをタグと呼ぶ。このエントリに対するペ
ージのサイズに応じて、可変数のこれらのビットを比較
で使用する。
【0016】次の2つのエントリについては、これらの
間の境界がこれら2つのフィールドの間に引かれている
破線32によって示されているように変動するものであ
るから、まとめて説明する。第2のフィールドは可変長
の物理ページ番号(PPN)フィールド18である。こ
のフィールドはタグ・フィールド16に格納されている
仮想ページ番号に対応する物理アドレスの上位アドレス
ビットに対応する可変数のビットを格納する。仮想アド
レスのセクタ・フィールド28およびオフセット・フィ
ールド30のいくつかのビットと組み合わされて、総括
的に34で示す物理アドレスを形成するのは、このフィ
ールド18の内容である。これらのフィールドを組み合
わせる厳密な態様については、以下で検討する。PPN
フィールド18の長さはTLBエントリ12のサイズ・
フィールド22に指定された仮想ページ・サイズにした
がって変動する。このサイズ・フィールド22も対応す
る仮想ページに対するセクタの数を間接的に決定する。
間の境界がこれら2つのフィールドの間に引かれている
破線32によって示されているように変動するものであ
るから、まとめて説明する。第2のフィールドは可変長
の物理ページ番号(PPN)フィールド18である。こ
のフィールドはタグ・フィールド16に格納されている
仮想ページ番号に対応する物理アドレスの上位アドレス
ビットに対応する可変数のビットを格納する。仮想アド
レスのセクタ・フィールド28およびオフセット・フィ
ールド30のいくつかのビットと組み合わされて、総括
的に34で示す物理アドレスを形成するのは、このフィ
ールド18の内容である。これらのフィールドを組み合
わせる厳密な態様については、以下で検討する。PPN
フィールド18の長さはTLBエントリ12のサイズ・
フィールド22に指定された仮想ページ・サイズにした
がって変動する。このサイズ・フィールド22も対応す
る仮想ページに対するセクタの数を間接的に決定する。
【0017】フィールド20はフィールド18と同様、
可変数のビットを含んでいる。このフィールド20は2
つの独立したフィールドで構成されている。すなわち、
対応するセクタが物理メモリに存在しているかどうかを
各々が示す複数のプレゼンス・ビットを含んでいるプレ
ゼンス・フィールドと、対応するセクタに書き込みが行
われており、したがってダーティであることを各ビット
が示す複数のダーティ・ビットを含んでいるダーティ・
フィールドである。この可変長P/Dフィールド20の
長さはフィールド22によって指定されたページ・サイ
ズによって間接的に決定される。サイズ・フィールド2
2の内容が可変長PPNフィールド18が必要とするビ
ット数を決定する。ページのサイズが最小値から最大値
へ増加したときに、可変長P/Dフィールド20は可変
PPNフィールド18内の未使用ビットを占める。これ
により、サイズ・フィールド22に指定されたページ・
サイズに関わりなく、PPNフィールド18に未使用ビ
ットが生じることがなくなる。これら2つのフィールド
18および20の間の関係については、以下で図3ない
し図5に関して詳細に検討する。
可変数のビットを含んでいる。このフィールド20は2
つの独立したフィールドで構成されている。すなわち、
対応するセクタが物理メモリに存在しているかどうかを
各々が示す複数のプレゼンス・ビットを含んでいるプレ
ゼンス・フィールドと、対応するセクタに書き込みが行
われており、したがってダーティであることを各ビット
が示す複数のダーティ・ビットを含んでいるダーティ・
フィールドである。この可変長P/Dフィールド20の
長さはフィールド22によって指定されたページ・サイ
ズによって間接的に決定される。サイズ・フィールド2
2の内容が可変長PPNフィールド18が必要とするビ
ット数を決定する。ページのサイズが最小値から最大値
へ増加したときに、可変長P/Dフィールド20は可変
PPNフィールド18内の未使用ビットを占める。これ
により、サイズ・フィールド22に指定されたページ・
サイズに関わりなく、PPNフィールド18に未使用ビ
ットが生じることがなくなる。これら2つのフィールド
18および20の間の関係については、以下で図3ない
し図5に関して詳細に検討する。
【0018】TLBに対して示されている最後のフィー
ルドは保護フィールド24であり、これは対応する仮想
ページに関連づけられた各種の保護ビットを格納する。
これらの保護ビットはオペレーティング・システムに、
メモリ内のある種のデータへのアクセスを禁止するある
程度の安全保護を与える。このような保護フィールドを
使用することはコンピュータ設計の分野で周知のもので
ある。ユーザ/スーパバイザ・フィールドや当分野で周
知の他のフィールドなどの付加的なフィールドをTLB
に含めることもできる。本発明によるTLBは図2に示
したフィールドの厳密な数に限定されるものではない。
ルドは保護フィールド24であり、これは対応する仮想
ページに関連づけられた各種の保護ビットを格納する。
これらの保護ビットはオペレーティング・システムに、
メモリ内のある種のデータへのアクセスを禁止するある
程度の安全保護を与える。このような保護フィールドを
使用することはコンピュータ設計の分野で周知のもので
ある。ユーザ/スーパバイザ・フィールドや当分野で周
知の他のフィールドなどの付加的なフィールドをTLB
に含めることもできる。本発明によるTLBは図2に示
したフィールドの厳密な数に限定されるものではない。
【0019】TLB12の詳細を図3に示す。3種類の
ページ・サイズ、すなわち4KB、64KBおよび16
MBに対する各種のフィールドの内容を示す。これらの
サイズは説明のためのものであって、限定を目的とした
ものではない。第1の場合には、4KBのページ・サイ
ズがサイズ・フィールド22に指定されている。好まし
い実施の形態において、これは最小許容ページ・サイズ
である。他の実施の形態においては、しかしながら、こ
のページ・サイズを4KBよりも小さくすることができ
る。次いで、このページ・サイズが可変長PPNフィー
ルド18の長さを決定する。フィールド18内のビット
数は次の式によって決定される。 PPN=L−log2(SIZE) ただし、SIZEはサイズ・フィールド22に指定され
たサイズに等しく、Lは物理アドレス内のビット数に等
しい。
ページ・サイズ、すなわち4KB、64KBおよび16
MBに対する各種のフィールドの内容を示す。これらの
サイズは説明のためのものであって、限定を目的とした
ものではない。第1の場合には、4KBのページ・サイ
ズがサイズ・フィールド22に指定されている。好まし
い実施の形態において、これは最小許容ページ・サイズ
である。他の実施の形態においては、しかしながら、こ
のページ・サイズを4KBよりも小さくすることができ
る。次いで、このページ・サイズが可変長PPNフィー
ルド18の長さを決定する。フィールド18内のビット
数は次の式によって決定される。 PPN=L−log2(SIZE) ただし、SIZEはサイズ・フィールド22に指定され
たサイズに等しく、Lは物理アドレス内のビット数に等
しい。
【0020】可変長P/Dフィールド20は4つのビッ
ト、すなわち2つのプレゼンス・ビット(P1,P0)お
よび2つのダーティ・ビット(D1,D0)を含んでい
る。各プレゼンス・ビットはページの対応するセクタが
現在物理メモリに存在しているかどうかを示す。同様
に、各ダーティ・ビットは対応するセクタに書き込みが
行われたかどうか、すなわちダーティであるかどうかを
示す。それ故、指定された4KBのページには2つのセ
クタが存在する。好ましい実施の形態において、各ペー
ジには少なくとも2つのセクタがある。しかしながら、
これはTLBの編成の要件ではない。
ト、すなわち2つのプレゼンス・ビット(P1,P0)お
よび2つのダーティ・ビット(D1,D0)を含んでい
る。各プレゼンス・ビットはページの対応するセクタが
現在物理メモリに存在しているかどうかを示す。同様
に、各ダーティ・ビットは対応するセクタに書き込みが
行われたかどうか、すなわちダーティであるかどうかを
示す。それ故、指定された4KBのページには2つのセ
クタが存在する。好ましい実施の形態において、各ペー
ジには少なくとも2つのセクタがある。しかしながら、
これはTLBの編成の要件ではない。
【0021】図3に示した第2の場合は、64KBのペ
ージ・サイズに関するものである。当業者には、24=
16であるから、物理ページ番号(PPN)が64KB
のページに対して4KBのページの物理ページ番号より
も4ビット少ないビットを含んでいることが明らかであ
ろう。これら少ない4ビットは可変長P/Dフィールド
の4つの追加ビットによって使用される。4つの追加ビ
ットのうち2つは追加のプレゼンス・ビットP3および
P2に使用される。他の2つのビットは2つの追加ダー
ティ・ビットD3およびD2に使用される。4つのプレゼ
ンス・ビットと4つのダーティ・ビットがあるため、可
変長P/Dフィールドは4つのセクタをサポートする。
それ故、セクタの数は4KBのページ・サイズから64
KBのページ・サイズへ2倍増加する。セクタの数は2
倍増加し、連続したより大きい各ページ・サイズにな
る。この点をさらに説明するため、16MBのページ・
サイズも図3に示されている。この場合、可変長P/D
フィールドは16ビット、すなわち8つのプレゼンス・
ビット(P0ないしP7)および8つのダーティ・ビット
(D0ないしD7)を含んでいる。物理ページ番号フィー
ルド18の長さは適宜短くなっている。16MBのペー
ジ・サイズはそれ故、8つのセクタを含んでおり、各プ
レゼンス・ビットとダーティ・ビットが対応するセクタ
に関連づけられている。好ましい実施の形態において、
同じ添字のついたプレゼンス・ビットおよびダーティ・
ビットは同じセクタに対応している。好ましくは、図3
に示すように、小さいページ・サイズに対するプレゼン
ス・ビットおよびダーティ・ビットは、ページ・サイズ
が大きくなったときに、P/Dフィールドの同じ位置に
おかれる。このレイアウトは実際のハードウェア・イン
プリメンテーションを容易とする。論理的には、しかし
ながら、これらのビットはページ・サイズがあるものか
ら次のものへと大きくなったときに、P/Dフィールド
内の任意の位置を占めることができる。
ージ・サイズに関するものである。当業者には、24=
16であるから、物理ページ番号(PPN)が64KB
のページに対して4KBのページの物理ページ番号より
も4ビット少ないビットを含んでいることが明らかであ
ろう。これら少ない4ビットは可変長P/Dフィールド
の4つの追加ビットによって使用される。4つの追加ビ
ットのうち2つは追加のプレゼンス・ビットP3および
P2に使用される。他の2つのビットは2つの追加ダー
ティ・ビットD3およびD2に使用される。4つのプレゼ
ンス・ビットと4つのダーティ・ビットがあるため、可
変長P/Dフィールドは4つのセクタをサポートする。
それ故、セクタの数は4KBのページ・サイズから64
KBのページ・サイズへ2倍増加する。セクタの数は2
倍増加し、連続したより大きい各ページ・サイズにな
る。この点をさらに説明するため、16MBのページ・
サイズも図3に示されている。この場合、可変長P/D
フィールドは16ビット、すなわち8つのプレゼンス・
ビット(P0ないしP7)および8つのダーティ・ビット
(D0ないしD7)を含んでいる。物理ページ番号フィー
ルド18の長さは適宜短くなっている。16MBのペー
ジ・サイズはそれ故、8つのセクタを含んでおり、各プ
レゼンス・ビットとダーティ・ビットが対応するセクタ
に関連づけられている。好ましい実施の形態において、
同じ添字のついたプレゼンス・ビットおよびダーティ・
ビットは同じセクタに対応している。好ましくは、図3
に示すように、小さいページ・サイズに対するプレゼン
ス・ビットおよびダーティ・ビットは、ページ・サイズ
が大きくなったときに、P/Dフィールドの同じ位置に
おかれる。このレイアウトは実際のハードウェア・イン
プリメンテーションを容易とする。論理的には、しかし
ながら、これらのビットはページ・サイズがあるものか
ら次のものへと大きくなったときに、P/Dフィールド
内の任意の位置を占めることができる。
【0022】TLBは論理ブロック36と、所与の仮想
アドレスに関してTLB内でヒットがあったか、ミスが
あったかを示す比較器38とを含んでいる。比較器38
はタグ・フィールド16の内容を、仮想アドレスの仮想
ページ番号(VPN)26と比較する。2つが同一であ
る場合には、比較器38は仮想ページ番号26によって
著されているページが物理メモリに存在していることを
示す。比較器38はサイズ・フィールドによって指定さ
れたページのサイズに応じて、VPNフィールド26内
の可変数のビットをタグ・フィールド16の対応する数
のビットと比較する。
アドレスに関してTLB内でヒットがあったか、ミスが
あったかを示す比較器38とを含んでいる。比較器38
はタグ・フィールド16の内容を、仮想アドレスの仮想
ページ番号(VPN)26と比較する。2つが同一であ
る場合には、比較器38は仮想ページ番号26によって
著されているページが物理メモリに存在していることを
示す。比較器38はサイズ・フィールドによって指定さ
れたページのサイズに応じて、VPNフィールド26内
の可変数のビットをタグ・フィールド16の対応する数
のビットと比較する。
【0023】論理ブロック36は比較器38からの出力
信号Page Presentを、仮想アドレスのセク
タ・フィールド28、TLBエントリのプレゼンス・ビ
ット、およびサイズ・フィールドからのサイズ・ビット
を受け取って、セクタ・フィールド28によって指定さ
れたセクタがメモリ内に存在しているかどうかを判定す
る。セクタが必要に応じて、すなわちオン・デマンドで
取り込まれるだけであるため、ページがメモリ内に存在
していると比較器が示したとしても、これは必ずしも必
要なセクタが存在していることを意味するものではな
い。ページのセクタの1つが物理メモリ内に存在してい
ることを意味しているにすぎない。論理36はこれらの
入力を取り入れて、仮想アドレスによって指定されたセ
クタが実際に物理メモリに存在している場合には、HI
T/MISS信号を生成する。論理ブロックの正確なイ
ンプリメンテーションは選択したTLBの特定な編成、
たとえば、フル・アソシエーティブであるか直接マップ
されるものであるかに応じて決定されるものである。当
業者は、本明細書の記載にしたがって論理ブロック36
および比較器38をインプリメントすることができよ
う。
信号Page Presentを、仮想アドレスのセク
タ・フィールド28、TLBエントリのプレゼンス・ビ
ット、およびサイズ・フィールドからのサイズ・ビット
を受け取って、セクタ・フィールド28によって指定さ
れたセクタがメモリ内に存在しているかどうかを判定す
る。セクタが必要に応じて、すなわちオン・デマンドで
取り込まれるだけであるため、ページがメモリ内に存在
していると比較器が示したとしても、これは必ずしも必
要なセクタが存在していることを意味するものではな
い。ページのセクタの1つが物理メモリ内に存在してい
ることを意味しているにすぎない。論理36はこれらの
入力を取り入れて、仮想アドレスによって指定されたセ
クタが実際に物理メモリに存在している場合には、HI
T/MISS信号を生成する。論理ブロックの正確なイ
ンプリメンテーションは選択したTLBの特定な編成、
たとえば、フル・アソシエーティブであるか直接マップ
されるものであるかに応じて決定されるものである。当
業者は、本明細書の記載にしたがって論理ブロック36
および比較器38をインプリメントすることができよ
う。
【0024】論理ブロック36はサイズ・フィールドを
使用して、可変長P/Dフィールド内のどのビットがフ
ィールド内のプレゼンス・ビットを表しているかを判定
する。図3から明らかなように、たとえば、セクタ1お
よび0のプレゼンス・ビットは、サイズ・フィールドに
よって指定されたページのサイズに応じて、フィールド
内で位置を変化させる。サイズ・フィールドは同様に、
仮想アドレス内のどのビットがセクタ番号を指定してい
るかを判定する。4KBのページの場合、このページ・
サイズに存在しているセクタが2つだけであるため、セ
クタ・フィールドの最上位ビットだけが、希望するセク
タ番号を符号化する。一方、16MBのページ・サイズ
の場合、セクタ・フィールド28が仮想ページ番号フィ
ールド26に隣接した仮想アドレスの3つのアドレス・
ビットを含んでいるのは、16MBのページが8つのこ
のようなセクタを含んでいるからである。オフセット・
フィールド30の長さも、セクタを符号化するのに必要
なビット数に応じて変化する。
使用して、可変長P/Dフィールド内のどのビットがフ
ィールド内のプレゼンス・ビットを表しているかを判定
する。図3から明らかなように、たとえば、セクタ1お
よび0のプレゼンス・ビットは、サイズ・フィールドに
よって指定されたページのサイズに応じて、フィールド
内で位置を変化させる。サイズ・フィールドは同様に、
仮想アドレス内のどのビットがセクタ番号を指定してい
るかを判定する。4KBのページの場合、このページ・
サイズに存在しているセクタが2つだけであるため、セ
クタ・フィールドの最上位ビットだけが、希望するセク
タ番号を符号化する。一方、16MBのページ・サイズ
の場合、セクタ・フィールド28が仮想ページ番号フィ
ールド26に隣接した仮想アドレスの3つのアドレス・
ビットを含んでいるのは、16MBのページが8つのこ
のようなセクタを含んでいるからである。オフセット・
フィールド30の長さも、セクタを符号化するのに必要
なビット数に応じて変化する。
【0025】論理ブロック36がヒットを示した場合に
は、TLBエントリの物理ページ番号(PPN)フィー
ルド18が仮想アドレスのセクタ・フィールド28およ
びオフセット・フィールド30と組み合わされて、以下
で説明するように、実際の物理アドレスを形成する。フ
ィールドの各々におけるビット数を、128ビットの仮
想アドレスおよび32ビットの物理アドレスに対する以
下の表1に示す。他の長さのアドレスも使用できる。
「PPNフィールド」の「サブ」フィールドは「PPN
フィールド」を構成している2つのサブフィールド、す
なわち「PPN」と「P/D」内のビットの小計であ
る。
は、TLBエントリの物理ページ番号(PPN)フィー
ルド18が仮想アドレスのセクタ・フィールド28およ
びオフセット・フィールド30と組み合わされて、以下
で説明するように、実際の物理アドレスを形成する。フ
ィールドの各々におけるビット数を、128ビットの仮
想アドレスおよび32ビットの物理アドレスに対する以
下の表1に示す。他の長さのアドレスも使用できる。
「PPNフィールド」の「サブ」フィールドは「PPN
フィールド」を構成している2つのサブフィールド、す
なわち「PPN」と「P/D」内のビットの小計であ
る。
【0026】
【表1】
【0027】図2に示したTLBの他の実施の形態を図
4に示す。この実施の形態において、可変長P/Dフィ
ールド20はページ・サイズの各連続した増加に対して
2ビットずつ大きくなることができる。これによってペ
ージ・サイズに対する制御を高めることが可能となる。
図4に示すように、4KB、16KB、64KBおよび
256KBのページ・サイズが可能である。これらのサ
イズは例であって、限定を目的とするものではない。ペ
ージ・サイズがページ・サイズの各連続した増加に対し
て4倍ずつ増えていくため、22=4であるから、物理
ページ番号フィールド長は2ビットずつ短くなる。ただ
し、可変長P/Dフィールド20はあらゆる場合にこれ
らのビットをすべて消費するものではない。図4に示す
実施の形態により、ページを2のべき乗、すなわち2、
4または8であるセクタ数に分割することがだけが可能
となる。これが実際には4KBのページの場合なのは、
可変長P/Dフィールドによってサポートされているセ
クタが2つだからである。しかしながら、16KBのペ
ージの場合、可変長P/D20は6ビットを含んでい
る。6ビットがサポートできるのは多くても3つのセク
タである。3は2の因数ではないので、可変長P/Dフ
ィールドのビットのうちの2つは使用されないか、ある
いは図4に示すように無視されるかする。64KBとい
う次のサイズのページの場合にも、可変長P/Dビット
はすべて使用される。この場合、可変長P/Dビットは
8ビットを含んでおり、これは4つのセクタをサポート
できる。しかしながら、ページ・サイズが256KBま
で増加した場合、P/Dフィールド20のビットの2つ
がまた無視される。TLBを拡張して、256KBを超
えるもっと大きいほかのページ・サイズをサポートする
ようにすることができるであろうが、P/Dフィールド
の16ビットすべてがまた消費される16MBにページ
・サイズが達するまで、より多くのP/Dのビットが無
視されることとなる。4MBのページの場合、P/Dフ
ィールド20のビットのうち6つが使用されない。それ
故、ページ・サイズを指定する際の融通性を高めること
には、代償がいる。
4に示す。この実施の形態において、可変長P/Dフィ
ールド20はページ・サイズの各連続した増加に対して
2ビットずつ大きくなることができる。これによってペ
ージ・サイズに対する制御を高めることが可能となる。
図4に示すように、4KB、16KB、64KBおよび
256KBのページ・サイズが可能である。これらのサ
イズは例であって、限定を目的とするものではない。ペ
ージ・サイズがページ・サイズの各連続した増加に対し
て4倍ずつ増えていくため、22=4であるから、物理
ページ番号フィールド長は2ビットずつ短くなる。ただ
し、可変長P/Dフィールド20はあらゆる場合にこれ
らのビットをすべて消費するものではない。図4に示す
実施の形態により、ページを2のべき乗、すなわち2、
4または8であるセクタ数に分割することがだけが可能
となる。これが実際には4KBのページの場合なのは、
可変長P/Dフィールドによってサポートされているセ
クタが2つだからである。しかしながら、16KBのペ
ージの場合、可変長P/D20は6ビットを含んでい
る。6ビットがサポートできるのは多くても3つのセク
タである。3は2の因数ではないので、可変長P/Dフ
ィールドのビットのうちの2つは使用されないか、ある
いは図4に示すように無視されるかする。64KBとい
う次のサイズのページの場合にも、可変長P/Dビット
はすべて使用される。この場合、可変長P/Dビットは
8ビットを含んでおり、これは4つのセクタをサポート
できる。しかしながら、ページ・サイズが256KBま
で増加した場合、P/Dフィールド20のビットの2つ
がまた無視される。TLBを拡張して、256KBを超
えるもっと大きいほかのページ・サイズをサポートする
ようにすることができるであろうが、P/Dフィールド
の16ビットすべてがまた消費される16MBにページ
・サイズが達するまで、より多くのP/Dのビットが無
視されることとなる。4MBのページの場合、P/Dフ
ィールド20のビットのうち6つが使用されない。それ
故、ページ・サイズを指定する際の融通性を高めること
には、代償がいる。
【0028】本発明によるTLBの第3の実施の形態を
図5に示す。この実施の形態はページ・サイズにかかわ
りなく、PPNフィールドのすべてのビットが使用され
るという点で、図4に示した実施の形態の制限を解決し
たものである。換言すると、物理ページ番号フィールド
18の長さと可変長P/Dフィールド20の長さの合計
は、すべてのページ・サイズにわたって一定のままであ
る。図5に示すタイプは、実際には、任意の整数のセク
タで構成されている。4KBのページ・サイズは2つの
セクタを含んでおり、16KBのページ・サイズは3つ
のセクタを含んでおり、64KBのページ・サイズは4
つのセクタを含んでいるなどとなり、セクタの数はペー
ジ・サイズの各連続した増加に対して1つずつ増加す
る。
図5に示す。この実施の形態はページ・サイズにかかわ
りなく、PPNフィールドのすべてのビットが使用され
るという点で、図4に示した実施の形態の制限を解決し
たものである。換言すると、物理ページ番号フィールド
18の長さと可変長P/Dフィールド20の長さの合計
は、すべてのページ・サイズにわたって一定のままであ
る。図5に示すタイプは、実際には、任意の整数のセク
タで構成されている。4KBのページ・サイズは2つの
セクタを含んでおり、16KBのページ・サイズは3つ
のセクタを含んでおり、64KBのページ・サイズは4
つのセクタを含んでいるなどとなり、セクタの数はペー
ジ・サイズの各連続した増加に対して1つずつ増加す
る。
【0029】セクタ数が2の倍数ではないページ・サイ
ズの場合、セクタ・サイズは等しくなくなる。たとえ
ば、16KBのページ・サイズの場合、P/Dフィール
ド20は3つのセクタをサポートしている。ページを3
分の1に分割するのが困難であるから、本発明によるオ
ペレーティング・システムはセクタのうちの1つ、たと
えばセクタ0がページの半分(8KB)を含んでおり、
ほかの2つのセクタがページの4分の1(4KB)を含
んでいるようにする手法を用いる。それ故、セクタはま
とまってページ全体を構成するが、各ページは一様なサ
イズを持たないこととなる。これによって、オペレーテ
ィング・システムの複雑度が増すが、ひとたび規約が選
択されれば、容易に管理できる。4KBのページと16
KBのページは、これに対し、ページを等しいサイズの
セクタに分割できるため、この問題を生じない。しかし
ながら、256KBのページは、この場合も奇数のペー
ジがあるため、16KBのページと同じ問題を引き起こ
す。この場合も、あるセクタがあるサイズとなり、他の
セクタが他のサイズとなって、セクタがまとまってペー
ジ全体を構成するようになる規約を用いる。同様な規約
を図5に示されていない他のページ・サイズに用いるこ
とができるが、これも本発明によってサポートされるも
のである。
ズの場合、セクタ・サイズは等しくなくなる。たとえ
ば、16KBのページ・サイズの場合、P/Dフィール
ド20は3つのセクタをサポートしている。ページを3
分の1に分割するのが困難であるから、本発明によるオ
ペレーティング・システムはセクタのうちの1つ、たと
えばセクタ0がページの半分(8KB)を含んでおり、
ほかの2つのセクタがページの4分の1(4KB)を含
んでいるようにする手法を用いる。それ故、セクタはま
とまってページ全体を構成するが、各ページは一様なサ
イズを持たないこととなる。これによって、オペレーテ
ィング・システムの複雑度が増すが、ひとたび規約が選
択されれば、容易に管理できる。4KBのページと16
KBのページは、これに対し、ページを等しいサイズの
セクタに分割できるため、この問題を生じない。しかし
ながら、256KBのページは、この場合も奇数のペー
ジがあるため、16KBのページと同じ問題を引き起こ
す。この場合も、あるセクタがあるサイズとなり、他の
セクタが他のサイズとなって、セクタがまとまってペー
ジ全体を構成するようになる規約を用いる。同様な規約
を図5に示されていない他のページ・サイズに用いるこ
とができるが、これも本発明によってサポートされるも
のである。
【0030】本発明の他の実施の形態を図6に示す。こ
の実施の形態においては、プレゼンス・ビットだけが可
変PPNに書き込まれ、ダーティ・ビットは可変長タグ
・フィールドに移されている。このフィールドも仮想ペ
ージ・サイズに合わせて伸縮するものであるから、プレ
ゼンス・ビットをタグ・フィールドに置き、ダーティ・
ビットをPPNフィールドに置くこともできる。この実
施の形態はタグ・フィールドのビット、ならびに他の場
合にはページ・サイズが変化すると使用されなくなるP
PNフィールドのものも使用するという他の利点を有し
ている。
の実施の形態においては、プレゼンス・ビットだけが可
変PPNに書き込まれ、ダーティ・ビットは可変長タグ
・フィールドに移されている。このフィールドも仮想ペ
ージ・サイズに合わせて伸縮するものであるから、プレ
ゼンス・ビットをタグ・フィールドに置き、ダーティ・
ビットをPPNフィールドに置くこともできる。この実
施の形態はタグ・フィールドのビット、ならびに他の場
合にはページ・サイズが変化すると使用されなくなるP
PNフィールドのものも使用するという他の利点を有し
ている。
【0031】図6は所与のTLBエントリ12に対する
3種類のページ・サイズ(4KB、16KB、及び25
6KB)を示している。4KBのページは2つのセクタ
を含んでおり、それ故、可変長ダーティ・フィールド4
2に2つのダーティ・ビットを、また可変長プレセンス
・フィールド46に2つのプレゼンス・ビットを含んで
いる。可変ダーティ・フィールド42に隣接してタグ・
フィールド40が示されており、また可変長PPNフィ
ールド44は可変プレゼンス・フィールド46に隣接し
ている。タグ・フィールド40内のビット数とダーティ
・フィールド42内のビット数とは、この実施形態にお
いて、すべてのページ・サイズに対して一定である。タ
グ・フィールドの長さがページのサイズによって変動す
るため、これは上述の他の実施の形態には当てはまらな
い。他の実施の形態においては、タグ・フィールド内の
これらのビットは使用されないこととなる。この実施の
形態においては、これらは図6に示すようにダーティ・
ビットによって消費されるか、あるいはプレゼンス・ビ
ットによって消費されるかのいずれかとなる。
3種類のページ・サイズ(4KB、16KB、及び25
6KB)を示している。4KBのページは2つのセクタ
を含んでおり、それ故、可変長ダーティ・フィールド4
2に2つのダーティ・ビットを、また可変長プレセンス
・フィールド46に2つのプレゼンス・ビットを含んで
いる。可変ダーティ・フィールド42に隣接してタグ・
フィールド40が示されており、また可変長PPNフィ
ールド44は可変プレゼンス・フィールド46に隣接し
ている。タグ・フィールド40内のビット数とダーティ
・フィールド42内のビット数とは、この実施形態にお
いて、すべてのページ・サイズに対して一定である。タ
グ・フィールドの長さがページのサイズによって変動す
るため、これは上述の他の実施の形態には当てはまらな
い。他の実施の形態においては、タグ・フィールド内の
これらのビットは使用されないこととなる。この実施の
形態においては、これらは図6に示すようにダーティ・
ビットによって消費されるか、あるいはプレゼンス・ビ
ットによって消費されるかのいずれかとなる。
【0032】図6に示した第2の場合は、16KBのペ
ージ・サイズに対するものである。このサイズのページ
は4つのセクタを含んでおり、それ故、4つのプレゼン
ス・ビットと4つのダーティ・ビットを消費する。4つ
のプレゼンス・ビット(P0ないしP3)はPPNフィー
ルド44内の未使用のビットを占め、また4つのダーテ
ィ・ビット(D0ないしD3)はタグ・フィールド内の未
使用のビットを占める。同様な結果が、8つのセクタを
使用し、それ故、8つのプレゼンス・ビット(P0−
P7)と8つのダーティ・ビット(D0ないしD7)を使
用する256KBのページにも達成される。128ビッ
トの仮想アドレスおよび32ビットの物理アドレスに対
するこれらのビットの割振りの例を、以下の表2に示
す。表2において、タグ・フィールドが3つのページ・
サイズのすべてに対して一定な118ビットを含んでい
ることが明らかであろう。他のページ・サイズに対して
同様な結果が達成され、従って、本発明は本明細書で図
示説明したページ・サイズに限定されるものではない。
PPNフィールドもすべてのページ・サイズにわたって
一定な22ビットを含んでおり、すべての場合のTLB
エントリ全体に対して合計140ビットをもたらし、未
使用のビットがなくなるようになる。これはTLBメモ
リに対するメモリの利用度を最大限度のものとする。
ージ・サイズに対するものである。このサイズのページ
は4つのセクタを含んでおり、それ故、4つのプレゼン
ス・ビットと4つのダーティ・ビットを消費する。4つ
のプレゼンス・ビット(P0ないしP3)はPPNフィー
ルド44内の未使用のビットを占め、また4つのダーテ
ィ・ビット(D0ないしD3)はタグ・フィールド内の未
使用のビットを占める。同様な結果が、8つのセクタを
使用し、それ故、8つのプレゼンス・ビット(P0−
P7)と8つのダーティ・ビット(D0ないしD7)を使
用する256KBのページにも達成される。128ビッ
トの仮想アドレスおよび32ビットの物理アドレスに対
するこれらのビットの割振りの例を、以下の表2に示
す。表2において、タグ・フィールドが3つのページ・
サイズのすべてに対して一定な118ビットを含んでい
ることが明らかであろう。他のページ・サイズに対して
同様な結果が達成され、従って、本発明は本明細書で図
示説明したページ・サイズに限定されるものではない。
PPNフィールドもすべてのページ・サイズにわたって
一定な22ビットを含んでおり、すべての場合のTLB
エントリ全体に対して合計140ビットをもたらし、未
使用のビットがなくなるようになる。これはTLBメモ
リに対するメモリの利用度を最大限度のものとする。
【0033】
【表2】
【0034】表2の「TAGフィールド」および「PP
Nフィールド」内の「サブ」フィールドは対応するフィ
ールドに対するサブフィールドのビットの合計、たとえ
ば、PPN_Sub=PPN+プレゼンス である。こ
れと同じ関係が表1に対して保持される。表に示すよう
に、「TAGフィールド」と「PPNフィールド」とに
使用されるビット数はすべてのページ・サイズにわたり
一定である。さらに、TLBエントリの140ビットは
すべて各ページ・サイズに使用されている。この構成に
より、メモリの利用度は最高限度のものとなる。
Nフィールド」内の「サブ」フィールドは対応するフィ
ールドに対するサブフィールドのビットの合計、たとえ
ば、PPN_Sub=PPN+プレゼンス である。こ
れと同じ関係が表1に対して保持される。表に示すよう
に、「TAGフィールド」と「PPNフィールド」とに
使用されるビット数はすべてのページ・サイズにわたり
一定である。さらに、TLBエントリの140ビットは
すべて各ページ・サイズに使用されている。この構成に
より、メモリの利用度は最高限度のものとなる。
【0035】図7は仮想アドレスとTLBエントリ12
の内容とがどのようにして組み合わされて、TLBでヒ
ットがあったときに、TLBに物理アドレスを形成する
かを示している。仮想アドレスは3つの独立したフィー
ルドを有していると見なすことができる。フィールド5
4は最大のページ・サイズに対する上位アドレス・ビッ
トに対応している。最小のページ・サイズに対するアド
レス・ビットが他のフィールド58を構成している。こ
れらのビットは常に、物理アドレスのオフセット構成要
素の一部であり、したがって、物理アドレスのオフセッ
ト・フィールドに直接入れることができる。フィールド
54と58の間のフィールド56は、以下で説明するよ
うに、仮想ページのサイズに応じて、オフセット構成要
素の一部であって、それ故物理アドレスのオフセット・
フィールドに含まれているものであっても、あるいは物
理ページ番号の一部であって、物理アドレスの一部とし
て含まれないものであってもよい。
の内容とがどのようにして組み合わされて、TLBでヒ
ットがあったときに、TLBに物理アドレスを形成する
かを示している。仮想アドレスは3つの独立したフィー
ルドを有していると見なすことができる。フィールド5
4は最大のページ・サイズに対する上位アドレス・ビッ
トに対応している。最小のページ・サイズに対するアド
レス・ビットが他のフィールド58を構成している。こ
れらのビットは常に、物理アドレスのオフセット構成要
素の一部であり、したがって、物理アドレスのオフセッ
ト・フィールドに直接入れることができる。フィールド
54と58の間のフィールド56は、以下で説明するよ
うに、仮想ページのサイズに応じて、オフセット構成要
素の一部であって、それ故物理アドレスのオフセット・
フィールドに含まれているものであっても、あるいは物
理ページ番号の一部であって、物理アドレスの一部とし
て含まれないものであってもよい。
【0036】TLBエントリ12は図7に示すように、
3つのフィールド、すなわち、PPNフィールド60、
プレゼンス・フィールド62およびサイズ・フィールド
64を含んでいる。サイズ・フィールド64は論理ブロ
ック66へ送られ、該ブロックは3状態バッファ68お
よび70のイネーブル入力72および78をそれぞれ駆
動する2つの出力バス74および76を有している。3
状態バッファ・ドライバ68および70は本質的にマル
チプレクサとして作用して、サイズ・フィールド64に
指定されたページ・サイズに応じて、プレゼンス・フィ
ールド62からのプレゼンス・ビット、または仮想アド
レスの中間フィールド56からのビットのいずれかを多
重化する。プレゼンス・フィールド62および中間フィ
ールド56内の対応する各ビットに関して、3状態ドラ
イバ68および70は相互に排他の関係にある。すなわ
ち3状態ドライバ68または3状態ドライバ70のいず
れかが使用可能とされるが、バス競合が引き起こされる
ため、両方とも使用可能とされることがない。図6に示
した例の場合、PPNフィールドにはプレゼンス・ビッ
ト、または物理ページ番号に一部のいずれかである6つ
のビットがある。3状態ドライバ68に送られるのも、
これら6つのビットである。同様に、中間フィールド5
6の6つのビットは3状態ドライバ70へ送られる。3
状態ドライバ68および70は各々が、個別に制御可能
な6つの独立した3状態ドライバのバンクを含んでい
る。ドライバ68中の1つの3状態ドライバ、およびド
ライバ70のうちの1つの出力は結びつけられて、有効
なマルチプレクサを形成し、プレゼンス・ビットまたは
対応する中間フィールド・ビットのいずれかが、サイズ
に応じて、物理アドレスの中間フィールド内の対応する
ビットに対して多重化されるようにする。当業者には、
論理枠66に含まれている論理、ならびに本明細書に含
まれている記載に基づく多重化回路とを実施することが
できよう。Kongはこれらのフィールドを組み合わせ
る同様な方法も教示しており、この主題に関するその教
示を参照することにより、本明細書の一部となるもので
ある。
3つのフィールド、すなわち、PPNフィールド60、
プレゼンス・フィールド62およびサイズ・フィールド
64を含んでいる。サイズ・フィールド64は論理ブロ
ック66へ送られ、該ブロックは3状態バッファ68お
よび70のイネーブル入力72および78をそれぞれ駆
動する2つの出力バス74および76を有している。3
状態バッファ・ドライバ68および70は本質的にマル
チプレクサとして作用して、サイズ・フィールド64に
指定されたページ・サイズに応じて、プレゼンス・フィ
ールド62からのプレゼンス・ビット、または仮想アド
レスの中間フィールド56からのビットのいずれかを多
重化する。プレゼンス・フィールド62および中間フィ
ールド56内の対応する各ビットに関して、3状態ドラ
イバ68および70は相互に排他の関係にある。すなわ
ち3状態ドライバ68または3状態ドライバ70のいず
れかが使用可能とされるが、バス競合が引き起こされる
ため、両方とも使用可能とされることがない。図6に示
した例の場合、PPNフィールドにはプレゼンス・ビッ
ト、または物理ページ番号に一部のいずれかである6つ
のビットがある。3状態ドライバ68に送られるのも、
これら6つのビットである。同様に、中間フィールド5
6の6つのビットは3状態ドライバ70へ送られる。3
状態ドライバ68および70は各々が、個別に制御可能
な6つの独立した3状態ドライバのバンクを含んでい
る。ドライバ68中の1つの3状態ドライバ、およびド
ライバ70のうちの1つの出力は結びつけられて、有効
なマルチプレクサを形成し、プレゼンス・ビットまたは
対応する中間フィールド・ビットのいずれかが、サイズ
に応じて、物理アドレスの中間フィールド内の対応する
ビットに対して多重化されるようにする。当業者には、
論理枠66に含まれている論理、ならびに本明細書に含
まれている記載に基づく多重化回路とを実施することが
できよう。Kongはこれらのフィールドを組み合わせ
る同様な方法も教示しており、この主題に関するその教
示を参照することにより、本明細書の一部となるもので
ある。
【0037】図8を参照すると、方法80が流れ図の形
で示されており、この流れ図は本発明にしたがってセク
タ式仮想メモリ空間を管理するためにオペレーティング
・システムが取り入れたステップを示している。最初の
ステップ82において、オペレーティング・システムは
周知の技法にしたがって仮想アドレスを生成する。ステ
ップ84はページが物理メモリに現在存在しているかど
うかを調べるためにチェックを行う。このステップは実
際にはハードウェアで行われるが、ソフトウェアで行う
こともできる。ページが存在しない場合には、ページ・
フォルトが発生し、オペレーティング・システムはステ
ップ86でTLB内の仮想アドレスに対応したTLBエ
ントリを作成する。ただし、ページ全体をロードするの
ではなく、オペレーティング・システムはステップ88
で、仮想アドレスによって指定された単一のセクタのみ
をロードする。セクタがロードされると、対応するプレ
ゼンスがセットされ、対応するダーティ・ビットがステ
ップ90で、ステップ86で作成されたTLBエントリ
からクリアされる。
で示されており、この流れ図は本発明にしたがってセク
タ式仮想メモリ空間を管理するためにオペレーティング
・システムが取り入れたステップを示している。最初の
ステップ82において、オペレーティング・システムは
周知の技法にしたがって仮想アドレスを生成する。ステ
ップ84はページが物理メモリに現在存在しているかど
うかを調べるためにチェックを行う。このステップは実
際にはハードウェアで行われるが、ソフトウェアで行う
こともできる。ページが存在しない場合には、ページ・
フォルトが発生し、オペレーティング・システムはステ
ップ86でTLB内の仮想アドレスに対応したTLBエ
ントリを作成する。ただし、ページ全体をロードするの
ではなく、オペレーティング・システムはステップ88
で、仮想アドレスによって指定された単一のセクタのみ
をロードする。セクタがロードされると、対応するプレ
ゼンスがセットされ、対応するダーティ・ビットがステ
ップ90で、ステップ86で作成されたTLBエントリ
からクリアされる。
【0038】一方、ページが存在している場合には、方
法80は仮想アドレスによって指定されたセクタが物理
メモリに存在しているかどうかを調べるためにチェック
を行う。このステップも本発明の好ましい実施の形態に
おいてはハードウェアで行われる。セクタが存在してい
ない場合には、オペレーティング・システムはステップ
88でセクタをロードし、ステップ90で、対応するプ
レゼンス・ビットをセットし、対応するダーティ・ビッ
トをクリアする。これは実際上ページ・フォルトではあ
るが、細分性がはるかに細かいところが異なっている。
法80は仮想アドレスによって指定されたセクタが物理
メモリに存在しているかどうかを調べるためにチェック
を行う。このステップも本発明の好ましい実施の形態に
おいてはハードウェアで行われる。セクタが存在してい
ない場合には、オペレーティング・システムはステップ
88でセクタをロードし、ステップ90で、対応するプ
レゼンス・ビットをセットし、対応するダーティ・ビッ
トをクリアする。これは実際上ページ・フォルトではあ
るが、細分性がはるかに細かいところが異なっている。
【0039】セクタが存在している場合には、オペレー
ティング・システムは現行の仮想メモリ・アクセスが書
込みであるか、あるいは読取りであるかをステップ94
で判定する。読取りの場合には、オペレーティング・シ
ステムが他の活動をする必要はない。しかしながら、書
込みの場合には、オペレーティング・システムはステッ
プ96において、対応するダーティ・ビットを、この仮
想アドレスに対応するTLBエントリにセットする。あ
るいは、ダーティ・ビットを、オペレーティング・シス
テムが関与するのを必要としないハードウェアにセット
することもできる。
ティング・システムは現行の仮想メモリ・アクセスが書
込みであるか、あるいは読取りであるかをステップ94
で判定する。読取りの場合には、オペレーティング・シ
ステムが他の活動をする必要はない。しかしながら、書
込みの場合には、オペレーティング・システムはステッ
プ96において、対応するダーティ・ビットを、この仮
想アドレスに対応するTLBエントリにセットする。あ
るいは、ダーティ・ビットを、オペレーティング・シス
テムが関与するのを必要としないハードウェアにセット
することもできる。
【0040】本発明の好ましい実施の形態で本発明の原
理を図示説明してきたが、本発明をこのような原理から
逸脱することなく、構成および細部において改変できる
ことを理解すべきである。首記の特許請求の範囲の精神
および範囲に属するすべての改変形および変形が、特許
請求の範囲に含まれる。
理を図示説明してきたが、本発明をこのような原理から
逸脱することなく、構成および細部において改変できる
ことを理解すべきである。首記の特許請求の範囲の精神
および範囲に属するすべての改変形および変形が、特許
請求の範囲に含まれる。
【0041】以上、本発明の実施例について詳述した
が、以下、本発明の各実施態様の例を示す。
が、以下、本発明の各実施態様の例を示す。
【0042】(実施態様1)仮想ページ番号フィール
ド、セクタ・フィールド、およびオフセットを含んでい
る仮想アドレスを物理アドレスに変換する変換索引バッ
ファ(TLB)(10)において、各エントリがタグ・
フィールド(40)と、仮想ページに対応する物理ペー
ジ番号フィールド(44)と、可変数Pのビットを有し
ているプレセンス・フィールド(46)であって、プレ
ゼンス・フィールド内の各ビットが仮想ページの対応す
るセクタが物理メモリに存在しているかどうかを示して
いるプレゼンス・フィールド(46)と、可変数Dのビ
ットを有しているダーティ・フィールド(42)であっ
て、ダーティ・フィールド内の各ビットが仮想ページの
対応するセクタが修正されたかどうかを示しているダー
ティ・フィールド(42)とを含んでいる複数のTLB
エントリ(12)と、仮想アドレスの仮想ページ番号フ
ィールドに結合された第1の入力、TLBエントリのタ
グ・フィールドに結合された第2の入力、および仮想ペ
ージ番号フィールドの内容がタグ・フィールドの1つの
内容と等しいかどうかを示す出力信号をもたらす出力を
有している比較器(50)と、TLBエントリのプレゼ
ンス・フィールドに結合された第1の入力、比較器の出
力に結合されて、出力信号を受け取る第2の入力、仮想
アドレスのセクタ・フィールドに結合された第3の入
力、および仮想ページのセクタが物理メモリに存在して
いるかどうかを示すHIT/MISS信号をもたらす出
力を有している論理回路(52)と、仮想アドレスによ
ってアドレスされたセクタが物理メモリに存在している
ことをHIT/MISS信号が示している場合に、仮想
アドレスを対応するTLBエントリからの物理ページ番
号と組み合わせる手段(66、68、70)とを有する
変換索引バッファ。
ド、セクタ・フィールド、およびオフセットを含んでい
る仮想アドレスを物理アドレスに変換する変換索引バッ
ファ(TLB)(10)において、各エントリがタグ・
フィールド(40)と、仮想ページに対応する物理ペー
ジ番号フィールド(44)と、可変数Pのビットを有し
ているプレセンス・フィールド(46)であって、プレ
ゼンス・フィールド内の各ビットが仮想ページの対応す
るセクタが物理メモリに存在しているかどうかを示して
いるプレゼンス・フィールド(46)と、可変数Dのビ
ットを有しているダーティ・フィールド(42)であっ
て、ダーティ・フィールド内の各ビットが仮想ページの
対応するセクタが修正されたかどうかを示しているダー
ティ・フィールド(42)とを含んでいる複数のTLB
エントリ(12)と、仮想アドレスの仮想ページ番号フ
ィールドに結合された第1の入力、TLBエントリのタ
グ・フィールドに結合された第2の入力、および仮想ペ
ージ番号フィールドの内容がタグ・フィールドの1つの
内容と等しいかどうかを示す出力信号をもたらす出力を
有している比較器(50)と、TLBエントリのプレゼ
ンス・フィールドに結合された第1の入力、比較器の出
力に結合されて、出力信号を受け取る第2の入力、仮想
アドレスのセクタ・フィールドに結合された第3の入
力、および仮想ページのセクタが物理メモリに存在して
いるかどうかを示すHIT/MISS信号をもたらす出
力を有している論理回路(52)と、仮想アドレスによ
ってアドレスされたセクタが物理メモリに存在している
ことをHIT/MISS信号が示している場合に、仮想
アドレスを対応するTLBエントリからの物理ページ番
号と組み合わせる手段(66、68、70)とを有する
変換索引バッファ。
【0043】(実施態様2)各TLBエントリ(12)
がTビットを含んでいる可変長タグ・フィールド(4
0)と、仮想ページに対応しており、対応する物理アド
レスが2Nに等しいページ・サイズを有するようにNに
等しい可変数のビットを有している可変長物理ページ番
号フィールド(44)と、可変数Pのビットを有する可
変長プレゼンス・フィールド(46)であって、プレゼ
ンス・フィールド内の各ビットが仮想ページの対応する
セクタが物理メモリに存在しているかどうかを示してい
る可変長プレゼンス・フィールド(46)と、可変数D
のビットを有する可変長ダーティ・フィールド(42)
であって、ダーティ・フィールド内の各ビットが仮想ペ
ージの対応するセクタがダーティであるかどうかを示し
ている可変長ダーティ・フィールド(42)と、対応す
る仮想ページのサイズを示すサイズ・フィールド(4
8)とを含んでいる実施態様1に記載の変換索引バッフ
ァ(TLB)。
がTビットを含んでいる可変長タグ・フィールド(4
0)と、仮想ページに対応しており、対応する物理アド
レスが2Nに等しいページ・サイズを有するようにNに
等しい可変数のビットを有している可変長物理ページ番
号フィールド(44)と、可変数Pのビットを有する可
変長プレゼンス・フィールド(46)であって、プレゼ
ンス・フィールド内の各ビットが仮想ページの対応する
セクタが物理メモリに存在しているかどうかを示してい
る可変長プレゼンス・フィールド(46)と、可変数D
のビットを有する可変長ダーティ・フィールド(42)
であって、ダーティ・フィールド内の各ビットが仮想ペ
ージの対応するセクタがダーティであるかどうかを示し
ている可変長ダーティ・フィールド(42)と、対応す
る仮想ページのサイズを示すサイズ・フィールド(4
8)とを含んでいる実施態様1に記載の変換索引バッフ
ァ(TLB)。
【0044】(実施態様3)各TLBエントリ(12)
に対して、タグ・フィールド(40)内のビット数T
と、物理ページ番号フィールド(44)内のビット数N
と、プレゼンス・フィールド(46)内のビット数P
と、ダーティ・フィールド(42)内のビット数Dとの
合計が、サイズ・フィールドによって指定されるすべて
のページ・サイズに対して一定である実施態様2に記載
の変換索引バッファ(TLB)。
に対して、タグ・フィールド(40)内のビット数T
と、物理ページ番号フィールド(44)内のビット数N
と、プレゼンス・フィールド(46)内のビット数P
と、ダーティ・フィールド(42)内のビット数Dとの
合計が、サイズ・フィールドによって指定されるすべて
のページ・サイズに対して一定である実施態様2に記載
の変換索引バッファ(TLB)。
【0045】(実施態様4)各TLBエントリ(12)
に対して、可変長タグ・フィールド(40)と可変長ダ
ーティ・フィールド(42)とが、サイズ・フィールド
によって指定されるすべてのページ・サイズに対して一
定数のビットを有している連続した組合せフィールドを
形成している実施態様2に記載の変換索引バッファ(T
LB)。
に対して、可変長タグ・フィールド(40)と可変長ダ
ーティ・フィールド(42)とが、サイズ・フィールド
によって指定されるすべてのページ・サイズに対して一
定数のビットを有している連続した組合せフィールドを
形成している実施態様2に記載の変換索引バッファ(T
LB)。
【0046】(実施態様5)各TLBエントリ(12)
に対して、可変長タグ・フィールド(40)と可変長プ
レゼンス・フィールド(46)とが、サイズ・フィール
ドによって指定されるすべてのページ・サイズに対して
一定数のビットを有している連続した組合せフィールド
を形成している実施態様4に記載の変換索引バッファ
(TLB)。
に対して、可変長タグ・フィールド(40)と可変長プ
レゼンス・フィールド(46)とが、サイズ・フィール
ドによって指定されるすべてのページ・サイズに対して
一定数のビットを有している連続した組合せフィールド
を形成している実施態様4に記載の変換索引バッファ
(TLB)。
【0047】(実施態様6)各TLBエントリ(12)
に対して、可変長物理ページ番号フィールド(44)と
可変長ダーティ・フィールド(42)とが、サイズ・フ
ィールドによって指定されるすべてのページ・サイズに
対して一定数のビットを有している連続した組合せフィ
ールドを形成している実施態様2に記載の変換索引バッ
ファ(TLB)。
に対して、可変長物理ページ番号フィールド(44)と
可変長ダーティ・フィールド(42)とが、サイズ・フ
ィールドによって指定されるすべてのページ・サイズに
対して一定数のビットを有している連続した組合せフィ
ールドを形成している実施態様2に記載の変換索引バッ
ファ(TLB)。
【0048】(実施態様7)仮想メモリ・システムにお
いて限定された量の物理メモリを管理する方法(80)
において、仮想ページを2つ以上のセクタに分割するス
テップと、仮想アドレスによって指定された仮想ページ
が物理メモリ(84)内に存在しているかどうかを判定
するステップと、仮想アドレスによって指定された仮想
ページ内のセクタが物理メモリ(92)内に存在してい
るかどうかを判定するステップと、セクタが物理メモリ
内に存在している場合に、仮想アドレスによって指定さ
れたセクタ内の物理位置にアクセスするステップとを有
する方法(80)。
いて限定された量の物理メモリを管理する方法(80)
において、仮想ページを2つ以上のセクタに分割するス
テップと、仮想アドレスによって指定された仮想ページ
が物理メモリ(84)内に存在しているかどうかを判定
するステップと、仮想アドレスによって指定された仮想
ページ内のセクタが物理メモリ(92)内に存在してい
るかどうかを判定するステップと、セクタが物理メモリ
内に存在している場合に、仮想アドレスによって指定さ
れたセクタ内の物理位置にアクセスするステップとを有
する方法(80)。
【0049】(実施態様8)セクタに対応するプレゼン
ス・ビット(90)を対応するTLBエントリにセット
するステップを含んでいる実施態様7に記載の仮想メモ
リ・システムにおいて限定された量の物理メモリを管理
する方法。
ス・ビット(90)を対応するTLBエントリにセット
するステップを含んでいる実施態様7に記載の仮想メモ
リ・システムにおいて限定された量の物理メモリを管理
する方法。
【0050】(実施態様9)仮想ページを2つ以上のセ
クタに分割するステップが各ページがN個のアドレス・
ビットを含んでいる仮想メモリ・ページ・サイズを選択
するステップと、仮想ページ・サイズを対応するTLB
エントリ(86)に対するサイズ・フィールドに格納す
るステップと、ページが物理メモリに存在していない場
合に、対応するTLBエントリ(86)であって、各T
LBエントリが対応するセクタが物理メモリに存在して
いるかどうかを示す仮想ページ内の各セクタに対するプ
レゼンス・ビットを有するプレゼンス・フィールドを含
んでおり、かつ対応するセクタがダーティであるかどう
かを示すための仮想ページ内の各セクタに対するダーテ
ィ・ビットを有しているダーティ・フィールドを含んで
いるTLBエントリ(86)を作成するステップと、セ
クタが物理メモリ内に存在していない場合に、セクタを
物理メモリ(88)にロードするステップと、セクタに
対応するプレゼンス・ビット(90)を対応するTLB
エントリにセットするステップとを含んでいる実施態様
8に記載の仮想メモリ・システムにおいて限定された量
の物理メモリを管理する方法。
クタに分割するステップが各ページがN個のアドレス・
ビットを含んでいる仮想メモリ・ページ・サイズを選択
するステップと、仮想ページ・サイズを対応するTLB
エントリ(86)に対するサイズ・フィールドに格納す
るステップと、ページが物理メモリに存在していない場
合に、対応するTLBエントリ(86)であって、各T
LBエントリが対応するセクタが物理メモリに存在して
いるかどうかを示す仮想ページ内の各セクタに対するプ
レゼンス・ビットを有するプレゼンス・フィールドを含
んでおり、かつ対応するセクタがダーティであるかどう
かを示すための仮想ページ内の各セクタに対するダーテ
ィ・ビットを有しているダーティ・フィールドを含んで
いるTLBエントリ(86)を作成するステップと、セ
クタが物理メモリ内に存在していない場合に、セクタを
物理メモリ(88)にロードするステップと、セクタに
対応するプレゼンス・ビット(90)を対応するTLB
エントリにセットするステップとを含んでいる実施態様
8に記載の仮想メモリ・システムにおいて限定された量
の物理メモリを管理する方法。
【0051】(実施態様10)ページが物理メモリに存
在していない場合に、対応するTLBエントリを作成す
るステップが、可変長タグ・フィールドであって、タグ
・フィールド内のビット数が対応するTLBエントリ内
のサイズ・フィールドに指定されたページ・サイズの関
数であるタグ・フィールドに、TLBエントリに関連づ
けられた可変長タグ(86)を格納するステップと、可
変長物理ページ番号(PPN)フィールドであって、タ
グ・フィールド内のビット数が対応するTLBエントリ
内のサイズ・フィールドに指定されたページ・サイズの
関数であるPPNフィールドに、仮想アドレスに関連づ
けられた物理ページ番号(86)を格納するステップと
を含んでいる実施態様9に記載の仮想メモリ・システム
において限定された量の物理メモリを管理する方法。
在していない場合に、対応するTLBエントリを作成す
るステップが、可変長タグ・フィールドであって、タグ
・フィールド内のビット数が対応するTLBエントリ内
のサイズ・フィールドに指定されたページ・サイズの関
数であるタグ・フィールドに、TLBエントリに関連づ
けられた可変長タグ(86)を格納するステップと、可
変長物理ページ番号(PPN)フィールドであって、タ
グ・フィールド内のビット数が対応するTLBエントリ
内のサイズ・フィールドに指定されたページ・サイズの
関数であるPPNフィールドに、仮想アドレスに関連づ
けられた物理ページ番号(86)を格納するステップと
を含んでいる実施態様9に記載の仮想メモリ・システム
において限定された量の物理メモリを管理する方法。
【0052】(実施態様11)仮想アドレスを物理アド
レスに変換する変換索引バッファ(TLB)(10)に
おいて、前記変換索引バッファの各エントリが、物理ペ
ージ内の各セクタのサイズを表わすサイズ・フィールド
(22)と、タグ・フィールド(16)と、物理ページ
番号フィールド(18)と、プレゼンス/ダーティ・フ
ィールド(20)とを有し、プレゼンス/ダーティ・フ
ィールドを物理ページ番号フィールド上に設け、サイズ
・フィールドのサイズにしたがって、プレゼンス/ダー
ティ・フィールドのビット数を少なくとも2ビットずつ
増減させ、その増減に応じたビット数の物理ページ番号
フィールドのビット数を減少または増加させる変換索引
バッファ。
レスに変換する変換索引バッファ(TLB)(10)に
おいて、前記変換索引バッファの各エントリが、物理ペ
ージ内の各セクタのサイズを表わすサイズ・フィールド
(22)と、タグ・フィールド(16)と、物理ページ
番号フィールド(18)と、プレゼンス/ダーティ・フ
ィールド(20)とを有し、プレゼンス/ダーティ・フ
ィールドを物理ページ番号フィールド上に設け、サイズ
・フィールドのサイズにしたがって、プレゼンス/ダー
ティ・フィールドのビット数を少なくとも2ビットずつ
増減させ、その増減に応じたビット数の物理ページ番号
フィールドのビット数を減少または増加させる変換索引
バッファ。
【0053】(実施態様12)仮想アドレスを物理アド
レスに変換する変換索引バッファ(TLB)(10)に
おいて、前記変換索引バッファの各エントリが、物理ペ
ージ内の各セクタのサイズを表わすサイズ・フィールド
(48)と、タグ・フィールド(40)と、物理ページ
番号フィールド(44)と、プレゼンス・フィールドと
(46)、ダーティ・フィールド(42)とを有し、プ
レゼンス・フィールドまたはダーティ・フィールドのど
ちらか一方をタグ・フィールドに配置し、プレゼンス・
フィールドまたはダーティ・フィールドの他方を物理ペ
ージ番号フィールドに配置して、サイズ・フィールドの
サイズに従ってプレゼンス・フィールドおよびダーティ
・フィールドのビット数を増減させ、その増減に応じて
タグ・フィールドおよび物理ページ番号フィールドの各
々のフィールドのビット数を減少または増加させる変換
索引バッファ。
レスに変換する変換索引バッファ(TLB)(10)に
おいて、前記変換索引バッファの各エントリが、物理ペ
ージ内の各セクタのサイズを表わすサイズ・フィールド
(48)と、タグ・フィールド(40)と、物理ページ
番号フィールド(44)と、プレゼンス・フィールドと
(46)、ダーティ・フィールド(42)とを有し、プ
レゼンス・フィールドまたはダーティ・フィールドのど
ちらか一方をタグ・フィールドに配置し、プレゼンス・
フィールドまたはダーティ・フィールドの他方を物理ペ
ージ番号フィールドに配置して、サイズ・フィールドの
サイズに従ってプレゼンス・フィールドおよびダーティ
・フィールドのビット数を増減させ、その増減に応じて
タグ・フィールドおよび物理ページ番号フィールドの各
々のフィールドのビット数を減少または増加させる変換
索引バッファ。
【0054】
【発明の効果】以上のように、本発明を用いると、最小
のページ・アドレス以上で未使用ビットを含まない、利
用効率の高い変換索引バッファおよびメモリ管理方法を
提供する。また、データの必要度に応じて読込むセクタ
・サイズを変更できる変換索引バッファおよびメモリ管
理方法を提供する。
のページ・アドレス以上で未使用ビットを含まない、利
用効率の高い変換索引バッファおよびメモリ管理方法を
提供する。また、データの必要度に応じて読込むセクタ
・サイズを変更できる変換索引バッファおよびメモリ管
理方法を提供する。
【図1】従来技術の変換索引バッファ(TLB)のブロ
ック図である。
ック図である。
【図2】可変長物理ページ番号(PPN)と可変長プレ
ゼンス/ダーティ(P/D)・フィールドを有する、本
発明によるTLBのブロック図である。
ゼンス/ダーティ(P/D)・フィールドを有する、本
発明によるTLBのブロック図である。
【図3】3種類のページ・サイズに対する各種のフィー
ルドの間でのビットの割振りを示す、図2のTLBのT
LBエントリの1つの詳細図である。
ルドの間でのビットの割振りを示す、図2のTLBのT
LBエントリの1つの詳細図である。
【図4】可変長P/Dフィールド内のビット数が連続し
たより大きい各ページ・サイズになると2ビットずつ増
加できるようにする、図2のTLBの第2の実施の形態
を示す図である。
たより大きい各ページ・サイズになると2ビットずつ増
加できるようにする、図2のTLBの第2の実施の形態
を示す図である。
【図5】これも可変長P/D内のビット数が連続したよ
り大きい各ページ・サイズになると2ビットずつ増加で
きるようにするが、図4に示した第2の実施の形態にお
けるようにある種のページ・サイズに対して未使用のビ
ットを生じることのない、図2のTLBエントリの第3
の実施の形態を示す図である。
り大きい各ページ・サイズになると2ビットずつ増加で
きるようにするが、図4に示した第2の実施の形態にお
けるようにある種のページ・サイズに対して未使用のビ
ットを生じることのない、図2のTLBエントリの第3
の実施の形態を示す図である。
【図6】TLB中のすべてのビットがすべてのページ・
サイズに使用されるように、可変長タグ・フィールド内
にダーティ・ビットを含んでいる、図2のTLBの第4
の、しかも好ましい実施の形態を示す図である。
サイズに使用されるように、可変長タグ・フィールド内
にダーティ・ビットを含んでいる、図2のTLBの第4
の、しかも好ましい実施の形態を示す図である。
【図7】TLBエントリの各種のフィールドおよび仮想
アドレスをどのように組み合わせて、物理アドレスを形
成するかを示す、図2に示したTLBのブロック図であ
る。
アドレスをどのように組み合わせて、物理アドレスを形
成するかを示す、図2に示したTLBのブロック図であ
る。
【図8】本発明にしたがってセクタ式仮想メモリ・シス
テムを管理するため、オペレーティング・システムによ
って実行されるステップを示す流れ図である。
テムを管理するため、オペレーティング・システムによ
って実行されるステップを示す流れ図である。
Claims (1)
- 【請求項1】仮想ページ番号フィールド、セクタ・フィ
ールド、およびオフセットを含んでいる仮想アドレスを
物理アドレスに変換する変換索引バッファ(TLB)に
おいて、 各エントリがタグ・フィールドと、 仮想ページに対応する物理ページ番号フィールドと、 可変数Pのビットを有しているプレセンス・フィールド
であって、プレゼンス・フィールド内の各ビットが仮想
ページの対応するセクタが物理メモリに存在しているか
どうかを示しているプレゼンス・フィールドと、 可変数Dのビットを有しているダーティ・フィールドで
あって、ダーティ・フィールド内の各ビットが仮想ペー
ジの対応するセクタが修正されたかどうかを示している
ダーティ・フィールドとを含んでいる複数のTLBエン
トリと、 仮想アドレスの仮想ページ番号フィールドに結合された
第1の入力、TLBエントリのタグ・フィールドに結合
された第2の入力、および仮想ページ番号フィールドの
内容がタグ・フィールドの1つの内容と等しいかどうか
を示す出力信号をもたらす出力を有している比較器と、 TLBエントリのプレゼンス・フィールドに結合された
第1の入力、比較器の出力に結合されて、出力信号を受
け取る第2の入力、仮想アドレスのセクタ・フィールド
に結合された第3の入力、および仮想ページのセクタが
物理メモリに存在しているかどうかを示すHIT/MI
SS信号をもたらす出力を有している論理回路と、 仮想アドレスによってアドレスされたセクタが物理メモ
リに存在していることをHIT/MISS信号が示して
いる場合に、仮想アドレスを対応するTLBエントリか
らの物理ページ番号と組み合わせる手段とを有する変換
索引バッファ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/656,938 US5946716A (en) | 1996-05-30 | 1996-05-30 | Sectored virtual memory management system and translation look-aside buffer (TLB) for the same |
US656,938 | 1996-05-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1091525A true JPH1091525A (ja) | 1998-04-10 |
Family
ID=24635200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9133245A Pending JPH1091525A (ja) | 1996-05-30 | 1997-05-23 | 変換索引バッファ及びメモリ管理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5946716A (ja) |
EP (1) | EP0810527A1 (ja) |
JP (1) | JPH1091525A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4998554B2 (ja) * | 2007-06-20 | 2012-08-15 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493347B2 (en) * | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
KR100263672B1 (ko) * | 1997-05-08 | 2000-09-01 | 김영환 | 가변적인 페이지 크기를 지원하는 어드레스 변환장치 |
US6336160B1 (en) * | 1998-06-19 | 2002-01-01 | International Business Machines Corporation | Method and system for dividing a computer processor register into sectors and storing frequently used values therein |
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 |
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 |
US6457107B1 (en) | 2000-02-28 | 2002-09-24 | International Business Machines Corporation | Method and apparatus for reducing false sharing in a distributed computing environment |
US6622204B1 (en) * | 2000-09-14 | 2003-09-16 | Cypress Semiconductor Corp. | Content-addressable memory with cascaded match, read and write logic in a programmable logic device |
US6732248B2 (en) | 2001-06-28 | 2004-05-04 | International Business Machines, Corporation | System and method for ghost offset utilization in sequential byte stream semantics |
KR20030008945A (ko) * | 2001-07-21 | 2003-01-29 | 이원석 | 인터넷 멀티미디어 이벤트 카드 저작기 |
KR100450675B1 (ko) * | 2002-03-19 | 2004-10-01 | 삼성전자주식회사 | 성능향상 및 전력소모를 감소시킬 수 있는 tlb |
US6912644B1 (en) | 2003-03-06 | 2005-06-28 | Intel Corporation | Method and apparatus to steer memory access operations in a virtual memory system |
US7089397B1 (en) | 2003-07-03 | 2006-08-08 | Transmeta Corporation | Method and system for caching attribute data for matching attributes with physical addresses |
US7100018B2 (en) * | 2003-07-31 | 2006-08-29 | Silicon Graphics, Inc. | System and method for encoding page size information |
US7146457B2 (en) * | 2003-09-24 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Content addressable memory selectively addressable in a physical address mode and a virtual address mode |
US7610407B2 (en) * | 2003-12-11 | 2009-10-27 | Hewlett-Packard Development Company, L.P. | Method for exchanging information between at least two participants via at least one intermediary to limit disclosure between the participants |
US7917480B2 (en) * | 2004-08-13 | 2011-03-29 | Google Inc. | Document compression system and method for use with tokenspace repository |
US7068192B1 (en) * | 2004-08-13 | 2006-06-27 | Google Inc. | System and method for encoding and decoding variable-length data |
US8407239B2 (en) * | 2004-08-13 | 2013-03-26 | Google Inc. | Multi-stage query processing system and method for use with tokenspace repository |
US8438569B2 (en) * | 2004-10-14 | 2013-05-07 | International Business Machines Corporation | Broadcasting a condition to threads executing on a plurality of on-chip processors |
WO2007132457A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | 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 |
WO2008139441A2 (en) * | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
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 |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
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 |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
KR20100050789A (ko) * | 2008-11-06 | 2010-05-14 | 삼성전자주식회사 | 메모리 장치 및 그것을 포함하는 메모리 시스템 |
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 |
US7962727B2 (en) * | 2008-12-05 | 2011-06-14 | Globalfoundries Inc. | Method and apparatus for decompression of block compressed data |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
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 |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
EP2569718B1 (en) * | 2010-05-11 | 2018-07-11 | Intel Corporation | Recording dirty information in software distributed shared memory systems |
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 |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines 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 |
US8261003B2 (en) * | 2010-08-11 | 2012-09-04 | Lsi Corporation | Apparatus and methods for managing expanded capacity of virtual volumes in a storage system |
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 |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US8832382B2 (en) | 2011-12-21 | 2014-09-09 | Ati Technologies Ulc | Sub page and page memory management apparatus and method |
US9323691B2 (en) | 2012-03-08 | 2016-04-26 | Freescale Semiconductor, Inc. | Multiple page size memory management unit |
US9405703B2 (en) * | 2014-06-04 | 2016-08-02 | Advanced Micro Devices, Inc. | Translation lookaside buffer |
US10304155B2 (en) | 2017-02-24 | 2019-05-28 | Advanced Micro Devices, Inc. | Delta color compression application to video |
US11153578B2 (en) | 2018-04-27 | 2021-10-19 | Ati Technologies Ulc | Gradient texturing compression codec |
EP3857387A4 (en) * | 2018-09-28 | 2022-05-18 | INTEL Corporation | ADDRESS TRANSLATION BUFFER TO IMPLEMENT AN ADAPTIVE PAGE SIZE |
US20200320016A1 (en) * | 2019-04-08 | 2020-10-08 | Advanced Micro Devices, Inc. | Method enabling virtual pages to be allocated with noncontiguous backing physical subpages |
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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263140A (en) * | 1991-01-23 | 1993-11-16 | Silicon Graphics, Inc. | Variable page size per entry translation look-aside buffer |
EP0506236A1 (en) * | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Address translation mechanism |
JP2839060B2 (ja) * | 1992-03-02 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムおよびデータ処理方法 |
US5465337A (en) * | 1992-08-13 | 1995-11-07 | Sun Microsystems, Inc. | Method and apparatus for a memory management unit supporting multiple page sizes |
JPH07182239A (ja) * | 1993-12-24 | 1995-07-21 | Nec Corp | セグメント分割管理システム |
US5440710A (en) * | 1994-03-08 | 1995-08-08 | Exponential Technology, Inc. | Emulation of segment bounds checking using paging with sub-page validity |
WO1996012231A1 (en) * | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein |
US5708790A (en) * | 1995-12-12 | 1998-01-13 | International Business Machines Corporation | Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system |
-
1996
- 1996-05-30 US US08/656,938 patent/US5946716A/en not_active Expired - Lifetime
-
1997
- 1997-04-30 EP EP97107221A patent/EP0810527A1/en not_active Withdrawn
- 1997-05-23 JP JP9133245A patent/JPH1091525A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4998554B2 (ja) * | 2007-06-20 | 2012-08-15 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US5946716A (en) | 1999-08-31 |
EP0810527A1 (en) | 1997-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1091525A (ja) | 変換索引バッファ及びメモリ管理システム | |
US20210374069A1 (en) | Method, system, and apparatus for page sizing extension | |
US5694567A (en) | Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits | |
US8966219B2 (en) | Address translation through an intermediate address space | |
JP3740195B2 (ja) | データ処理装置 | |
EP1866772B1 (en) | Method and apparatus for fragment processing in a vitual memory system | |
JP4256167B2 (ja) | コンピュータメモリ保護方式の拡張機構 | |
US5721874A (en) | Configurable cache with variable, dynamically addressable line sizes | |
JP3666689B2 (ja) | 仮想アドレス変換方法 | |
JP2014078248A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
JPH07200405A (ja) | 情報をキャッシュするための回路および方法 | |
US8751751B2 (en) | Method and apparatus for minimizing cache conflict misses | |
JP2008542948A (ja) | コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ | |
US20160210243A1 (en) | Memory Paging for Processors using Physical Addresses | |
US5132927A (en) | System for cache space allocation using selective addressing | |
CN115794681A (zh) | 适用于risc-v的多级可扩展tlb结构 | |
US7024536B2 (en) | Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same | |
US6324632B1 (en) | Processing a data stream | |
US9261946B2 (en) | Energy optimized cache memory architecture exploiting spatial locality | |
JPH10283259A (ja) | 情報処理装置およびプロセッサ | |
US5278964A (en) | Microprocessor system including a cache controller which remaps cache address bits to confine page data to a particular block of cache | |
JP2007280421A (ja) | データ処理装置 | |
US20050071566A1 (en) | Mechanism to increase data compression in a cache | |
US6766435B1 (en) | Processor with a general register set that includes address translation registers | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 |