JPH04320553A - アドレス変換機構 - Google Patents
アドレス変換機構Info
- Publication number
- JPH04320553A JPH04320553A JP4050171A JP5017192A JPH04320553A JP H04320553 A JPH04320553 A JP H04320553A JP 4050171 A JP4050171 A JP 4050171A JP 5017192 A JP5017192 A JP 5017192A JP H04320553 A JPH04320553 A JP H04320553A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- page
- address
- virtual address
- virtual
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、全般的にはデータ処理
システム用の仮想記憶機構に関し、具体的には既存のハ
ードウェアをわずかに変更するだけで異なるページ・サ
イズをサポートする技法に関する。
システム用の仮想記憶機構に関し、具体的には既存のハ
ードウェアをわずかに変更するだけで異なるページ・サ
イズをサポートする技法に関する。
【0002】
【従来の技術】データ処理システム用の仮想記憶機構の
編成と管理は、たとえばハーベイ・M・ディーテル(H
arvey M. Deitel)著 ”An Int
roduction to Operating Sy
stems”、Addison−Wesley(198
4年)、ハロルド・ロリン(Harold Lorin
)およびハーベイ・M・ディーテル著 ”Operat
ing Systems”、Addison−Wesl
ey(1981年)、およびハロルド・S・ストーン(
Harold S. Stone)著 ”High−P
erformance Computer Archi
tecture”、Addison−Wesley(1
987年)に記載されている。仮想記憶システムにおい
て、ページングは、そのシステムのユーザに、実際に使
用可能な空間よりもかなり大きく見えるメモリ空間を提
供する、再配置とアドレス対物理位置の結合とを行なう
機構である。仮想記憶という概念の主要な特徴は、走行
中のプロセス内で参照されるアドレスを、主記憶装置内
で使用可能なアドレスから切り離すことである。走行中
のプロセスによって参照されるアドレスを仮想アドレス
と称し、主記憶装置内で使用可能なアドレスを実アドレ
スと称する。プロセス実行の際に仮想アドレスを実アド
レスにマッピングしなければならず、これは、動的アド
レス変換(DAT)機構の機能である。このような機構
の1つは、最近の仮想アドレス変換を記憶するディレク
トリ・ルックアサイド(索引)・テーブル(DLAT)
(変換索引緩衝機構(TLB)とも称する)を使用する
ものである。DLAT内に記憶された仮想アドレスの変
換プロセスは、1つまたは多くとも2つのマシン・サイ
クルしか要しない。DLAT内に記憶されていないアド
レスでは、DATプロセスは、15〜60サイクルを要
することがある。
編成と管理は、たとえばハーベイ・M・ディーテル(H
arvey M. Deitel)著 ”An Int
roduction to Operating Sy
stems”、Addison−Wesley(198
4年)、ハロルド・ロリン(Harold Lorin
)およびハーベイ・M・ディーテル著 ”Operat
ing Systems”、Addison−Wesl
ey(1981年)、およびハロルド・S・ストーン(
Harold S. Stone)著 ”High−P
erformance Computer Archi
tecture”、Addison−Wesley(1
987年)に記載されている。仮想記憶システムにおい
て、ページングは、そのシステムのユーザに、実際に使
用可能な空間よりもかなり大きく見えるメモリ空間を提
供する、再配置とアドレス対物理位置の結合とを行なう
機構である。仮想記憶という概念の主要な特徴は、走行
中のプロセス内で参照されるアドレスを、主記憶装置内
で使用可能なアドレスから切り離すことである。走行中
のプロセスによって参照されるアドレスを仮想アドレス
と称し、主記憶装置内で使用可能なアドレスを実アドレ
スと称する。プロセス実行の際に仮想アドレスを実アド
レスにマッピングしなければならず、これは、動的アド
レス変換(DAT)機構の機能である。このような機構
の1つは、最近の仮想アドレス変換を記憶するディレク
トリ・ルックアサイド(索引)・テーブル(DLAT)
(変換索引緩衝機構(TLB)とも称する)を使用する
ものである。DLAT内に記憶された仮想アドレスの変
換プロセスは、1つまたは多くとも2つのマシン・サイ
クルしか要しない。DLAT内に記憶されていないアド
レスでは、DATプロセスは、15〜60サイクルを要
することがある。
【0003】アドレスされた命令またはデータが主記憶
装置内のどこにあるかを発見するためには、仮想アドレ
スから実アドレスへの変換を行なわなければならない。 これは、通常はページに基づいて行なわれる。実際、D
LATに記憶される変換は、ページ変換のみであり、ア
ドレスの最後の数ビットはそのページ内の位置であるか
ら、変換しなければならないのはページ・アドレスだけ
である。
装置内のどこにあるかを発見するためには、仮想アドレ
スから実アドレスへの変換を行なわなければならない。 これは、通常はページに基づいて行なわれる。実際、D
LATに記憶される変換は、ページ変換のみであり、ア
ドレスの最後の数ビットはそのページ内の位置であるか
ら、変換しなければならないのはページ・アドレスだけ
である。
【0004】ページ・サイズを1種だけサポートするア
ーキテクチャでは、ページの最適サイズは、小さなペー
ジと大きなページの相対的利点のトレード・オフによっ
て選択される。大きなページを用いると、ページング・
オーバーヘッドの償却がより良くなり、所与のDLAT
サイズに対する仮想空間のカバー範囲がより大きくなる
。一方、小さなページを用いると、所与の実記憶サイズ
に対して多くの異なる場所を維持でき、無駄になる実記
憶空間が最小になる。小さな(4KB)ページは、コー
ド・セグメント(命令)に適しているが、高性能の科学
技術コンピュータでは、しばしば大きな(1MB)ペー
ジが有利である。たとえば、単に可能なページ・クロッ
シングの数とDLATミスの数を減少させることによっ
て、大きなページから利益が得られる。したがって、こ
のようなコンピュータの最適設計のためには、複数のペ
ージ・サイズをサポートすることが望ましい。
ーキテクチャでは、ページの最適サイズは、小さなペー
ジと大きなページの相対的利点のトレード・オフによっ
て選択される。大きなページを用いると、ページング・
オーバーヘッドの償却がより良くなり、所与のDLAT
サイズに対する仮想空間のカバー範囲がより大きくなる
。一方、小さなページを用いると、所与の実記憶サイズ
に対して多くの異なる場所を維持でき、無駄になる実記
憶空間が最小になる。小さな(4KB)ページは、コー
ド・セグメント(命令)に適しているが、高性能の科学
技術コンピュータでは、しばしば大きな(1MB)ペー
ジが有利である。たとえば、単に可能なページ・クロッ
シングの数とDLATミスの数を減少させることによっ
て、大きなページから利益が得られる。したがって、こ
のようなコンピュータの最適設計のためには、複数のペ
ージ・サイズをサポートすることが望ましい。
【0005】
【発明が解決しようとする課題】したがって、本発明の
目的は、ハードウェアおよび設計に対する影響が最小の
、異なるサイズの仮想メモリ・ページをサポートする動
的アドレス変換機構を提供することである。
目的は、ハードウェアおよび設計に対する影響が最小の
、異なるサイズの仮想メモリ・ページをサポートする動
的アドレス変換機構を提供することである。
【0006】
【課題を解決するための手段】本発明の好ましい実施例
によれば、動的ルックアサイド・テーブル(DLAT)
を、システム・アーキテクチャに第2のページ・サイズ
が追加できるように変更する。本発明の1手法では、D
LATを、小さな(4KB)ページ用と大きな(1MB
)ページ用の2つのセグメントに分割する。ステアリン
グ・テーブルが、セグメントが最後に含んだのが4KB
ページか1MBページかを示す。各セグメントがDAT
機構によって変換される際に、そのセグメントに含まれ
るページ・サイズ(1MBまたは4KB)が知られ、こ
の情報を使用して、DLATのインデクシングに使用す
るアドレス・バスを選択する。代替手法では、DLAT
を分割せず、任意のエントリ中の2つの異なるページ・
フォーマットのいずれかを交互に保持/試験/選択でき
る。ステアリング・テーブルは、DLATがアドレスさ
れる方式を動的に変更し、変換に使用されるそのエント
リのビットを選択する。
によれば、動的ルックアサイド・テーブル(DLAT)
を、システム・アーキテクチャに第2のページ・サイズ
が追加できるように変更する。本発明の1手法では、D
LATを、小さな(4KB)ページ用と大きな(1MB
)ページ用の2つのセグメントに分割する。ステアリン
グ・テーブルが、セグメントが最後に含んだのが4KB
ページか1MBページかを示す。各セグメントがDAT
機構によって変換される際に、そのセグメントに含まれ
るページ・サイズ(1MBまたは4KB)が知られ、こ
の情報を使用して、DLATのインデクシングに使用す
るアドレス・バスを選択する。代替手法では、DLAT
を分割せず、任意のエントリ中の2つの異なるページ・
フォーマットのいずれかを交互に保持/試験/選択でき
る。ステアリング・テーブルは、DLATがアドレスさ
れる方式を動的に変更し、変換に使用されるそのエント
リのビットを選択する。
【0007】本発明の好ましい実施例では、4KBと1
MBの2つの仮想アドレス・ページ・サイズをサポート
するものとして説明し、具体的な31ビット仮想アドレ
ス・フォーマットと256個の合同クラスを有するDL
ATとを仮定するが、以下の説明から、教示の原理を直
接に拡張することにより、異なるページ・サイズ、異な
る仮想アドレス・フォーマット、および異なる数の合同
クラスを有するDLATをサポートするように本発明を
実施できることが理解されよう。
MBの2つの仮想アドレス・ページ・サイズをサポート
するものとして説明し、具体的な31ビット仮想アドレ
ス・フォーマットと256個の合同クラスを有するDL
ATとを仮定するが、以下の説明から、教示の原理を直
接に拡張することにより、異なるページ・サイズ、異な
る仮想アドレス・フォーマット、および異なる数の合同
クラスを有するDLATをサポートするように本発明を
実施できることが理解されよう。
【0008】
【実施例】まず、従来式のページング/セグメンテーシ
ョン仮想アドレス・システムについて説明する。この説
明では、用語DLATを動的ルックアサイド・テーブル
に対して使用するが、この用語は、変換ルックアサイド
・バッファを指すTLBと同義に使用できることが、当
業者には理解されよう。従来式のページング/セグメン
テーション仮想アドレス・システムでは、仮想アドレス
・フォーマットは、図1に示すようなもので、セグメン
ト・インデックス(SX)用のs−ビット、ページ・イ
ンデックス(PX)用のp−ビット、および変位インデ
ックス(DX)用のd−ビットを含む。仮想アドレスは
、たとえば32ビットで、そのうちのビットA1〜A1
1がセグメント・ビットを含み、ビットA12〜A19
がページ・ビットを含み、ビットA20〜A31が変位
ビットを含む。
ョン仮想アドレス・システムについて説明する。この説
明では、用語DLATを動的ルックアサイド・テーブル
に対して使用するが、この用語は、変換ルックアサイド
・バッファを指すTLBと同義に使用できることが、当
業者には理解されよう。従来式のページング/セグメン
テーション仮想アドレス・システムでは、仮想アドレス
・フォーマットは、図1に示すようなもので、セグメン
ト・インデックス(SX)用のs−ビット、ページ・イ
ンデックス(PX)用のp−ビット、および変位インデ
ックス(DX)用のd−ビットを含む。仮想アドレスは
、たとえば32ビットで、そのうちのビットA1〜A1
1がセグメント・ビットを含み、ビットA12〜A19
がページ・ビットを含み、ビットA20〜A31が変位
ビットを含む。
【0009】図2に示すように、仮想アドレスはアドレ
ス・ジェネレータ20によって生成される。アドレス・
ジェネレータ20は、中央演算処理装置(CPU)(図
示せず)の一部である。最も最近に参照されたページは
、DLAT21内にエントリを有する。256の合同ク
ラスを有するDLATの場合、仮想アドレスのビットA
12〜A19を使用して、DLAT21をアドレスする
。DLAT21から読み取られたアドレスされたエント
リからの仮想ページ識別ビットが、コンパレータ22内
で、仮想アドレスのビットA1〜A11と比較される。 一致しない場合、DLATミスが発生している。DLA
Tミス時には、アドレス変換は、たとえばセグメント/
ページ・テーブル探索を介して得られ、DLAT内に置
かれる。
ス・ジェネレータ20によって生成される。アドレス・
ジェネレータ20は、中央演算処理装置(CPU)(図
示せず)の一部である。最も最近に参照されたページは
、DLAT21内にエントリを有する。256の合同ク
ラスを有するDLATの場合、仮想アドレスのビットA
12〜A19を使用して、DLAT21をアドレスする
。DLAT21から読み取られたアドレスされたエント
リからの仮想ページ識別ビットが、コンパレータ22内
で、仮想アドレスのビットA1〜A11と比較される。 一致しない場合、DLATミスが発生している。DLA
Tミス時には、アドレス変換は、たとえばセグメント/
ページ・テーブル探索を介して得られ、DLAT内に置
かれる。
【0010】セグメント/ページ・テーブル探索は、セ
グメント・テーブル原点レジスタ23内の値と仮想アド
レスのビットA1〜A11を加算器24内で加算して、
セグメント・マップ・テーブル25用のインデックス値
を得ることから始まる。各セグメントごとに別々のペー
ジ・マップ・テーブルがあるので、セグメント・マップ
・テーブル25から出力されたエントリを仮想アドレス
のビットA12〜A19に加算して、ページ・マップ・
テーブル26のエントリのアドレスを得る。ページ・マ
ップ・テーブル26から出力されたエントリは、この仮
想ページが常駐する実記憶域内のページ・フレームを提
供し、ORゲート27によって渡され、アドレス・ジェ
ネレータ20の変位ビットA20〜A31と連結されて
、実アドレス・レジスタ28内の実アドレスを形成する
。
グメント・テーブル原点レジスタ23内の値と仮想アド
レスのビットA1〜A11を加算器24内で加算して、
セグメント・マップ・テーブル25用のインデックス値
を得ることから始まる。各セグメントごとに別々のペー
ジ・マップ・テーブルがあるので、セグメント・マップ
・テーブル25から出力されたエントリを仮想アドレス
のビットA12〜A19に加算して、ページ・マップ・
テーブル26のエントリのアドレスを得る。ページ・マ
ップ・テーブル26から出力されたエントリは、この仮
想ページが常駐する実記憶域内のページ・フレームを提
供し、ORゲート27によって渡され、アドレス・ジェ
ネレータ20の変位ビットA20〜A31と連結されて
、実アドレス・レジスタ28内の実アドレスを形成する
。
【0011】一方、DLAT21内で一致が存在する場
合、コンパレータ22がANDゲート29をイネーブル
し、ANDゲート29はDLAT21から出力されたエ
ントリをORゲート27に渡す。この場合、DLAT2
1から出力されたエントリは、連想実アドレス・フィー
ルドであり、変位ビットA20〜A31に連結されて、
実アドレス・レジスタ28内で実記憶アドレスを形成す
る。明らかに、このアドレス変換の処理は、DLATミ
ス時に発生するセグメント/ページ・テーブル探索より
もかなり高速である。
合、コンパレータ22がANDゲート29をイネーブル
し、ANDゲート29はDLAT21から出力されたエ
ントリをORゲート27に渡す。この場合、DLAT2
1から出力されたエントリは、連想実アドレス・フィー
ルドであり、変位ビットA20〜A31に連結されて、
実アドレス・レジスタ28内で実記憶アドレスを形成す
る。明らかに、このアドレス変換の処理は、DLATミ
ス時に発生するセグメント/ページ・テーブル探索より
もかなり高速である。
【0012】しかし、セグメント/ページ・テーブル探
索が実行される時でも、そのセグメント/ページ・テー
ブル探索によって、そのセグメントが一次記憶装置内ま
たは主記憶装置内に存在しないことが示され、その結果
、オペレーティング・システムが、二次記憶装置すなわ
ち直接アクセス記憶装置(DASD)(図示せず)上の
セグメントを突きとめ、そのセグメント用のページ・テ
ーブルを生成し、適当なページを主記憶装置にロードす
ることがあることが理解されよう。そのセグメントが主
記憶装置内にある場合でも、所望のページが主記憶装置
内になく、その結果、オペレーティング・システムが二
次記憶装置上のページを突きとめ、そのページを主記憶
装置内にロードすることがある。
索が実行される時でも、そのセグメント/ページ・テー
ブル探索によって、そのセグメントが一次記憶装置内ま
たは主記憶装置内に存在しないことが示され、その結果
、オペレーティング・システムが、二次記憶装置すなわ
ち直接アクセス記憶装置(DASD)(図示せず)上の
セグメントを突きとめ、そのセグメント用のページ・テ
ーブルを生成し、適当なページを主記憶装置にロードす
ることがあることが理解されよう。そのセグメントが主
記憶装置内にある場合でも、所望のページが主記憶装置
内になく、その結果、オペレーティング・システムが二
次記憶装置上のページを突きとめ、そのページを主記憶
装置内にロードすることがある。
【0013】前述の説明は、従来式のDLAT構造に関
するものである。このようなDLAT構造は、単一の仮
想アドレス・ページ・サイズしかサポートしない。本発
明では、複数の仮想アドレス・ページ・サイズがサポー
トされるようにこの構造を変更する。本発明の好ましい
実施例は、このアーキテクチャに第2のページ・サイズ
が追加できるように、IBMシステム/370−XA(
拡張アーキテクチャ)を実施するプロセッサのDLAT
の変更に関して説明する。IBMシステム/370−X
Aは、IBMシステム/370アーキテクチャから、後
者が24ビット・メモリ・アドレスを使用するのに対し
て31ビット・メモリ・アドレスを使用する点で区別さ
れる。したがって、システム/370−XAは、2ギガ
・バイト(GB)までのメモリをアドレスすることがで
きる。この例では、追加されるページ・サイズは1MB
であり、既存のページ・サイズは4KBである。IBM
システム/370アーキテクチャの動的アドレス変換の
説明は、IBM刊行物 No.GA22−7000−1
0 ”IBM System/370, Princi
ples of Operation” の pp.3
−20〜3−22に出ている。この説明は、例示的なも
のであり、一般性を失うことなしに、本発明を他の異な
るアーキテクチャに適用できることが、当業者には理解
されよう。
するものである。このようなDLAT構造は、単一の仮
想アドレス・ページ・サイズしかサポートしない。本発
明では、複数の仮想アドレス・ページ・サイズがサポー
トされるようにこの構造を変更する。本発明の好ましい
実施例は、このアーキテクチャに第2のページ・サイズ
が追加できるように、IBMシステム/370−XA(
拡張アーキテクチャ)を実施するプロセッサのDLAT
の変更に関して説明する。IBMシステム/370−X
Aは、IBMシステム/370アーキテクチャから、後
者が24ビット・メモリ・アドレスを使用するのに対し
て31ビット・メモリ・アドレスを使用する点で区別さ
れる。したがって、システム/370−XAは、2ギガ
・バイト(GB)までのメモリをアドレスすることがで
きる。この例では、追加されるページ・サイズは1MB
であり、既存のページ・サイズは4KBである。IBM
システム/370アーキテクチャの動的アドレス変換の
説明は、IBM刊行物 No.GA22−7000−1
0 ”IBM System/370, Princi
ples of Operation” の pp.3
−20〜3−22に出ている。この説明は、例示的なも
のであり、一般性を失うことなしに、本発明を他の異な
るアーキテクチャに適用できることが、当業者には理解
されよう。
【0014】以下の説明では、1MBの「大きい」ペー
ジを追加して、システム/370−XAのベクトル・プ
ロセッサの性能を向上させる。ここで図3を参照すると
、このアーキテクチャ用の1MBページと4KBページ
の間の関係が示されている。大きい1MBページ31は
、対応する1MBキー32によって識別される。サイズ
に関しては、1MBページ31は、256個の小さい4
KBページ35からなり、各4KBページ35は、対応
する4KBキー36によって識別される。
ジを追加して、システム/370−XAのベクトル・プ
ロセッサの性能を向上させる。ここで図3を参照すると
、このアーキテクチャ用の1MBページと4KBページ
の間の関係が示されている。大きい1MBページ31は
、対応する1MBキー32によって識別される。サイズ
に関しては、1MBページ31は、256個の小さい4
KBページ35からなり、各4KBページ35は、対応
する4KBキー36によって識別される。
【0015】図2に示した4KBページ用の既存のDL
ATアーキテクチャの一部を、図4に示す。たとえば、
コンパレータ42の出力がDLAT「ヒット」を示すと
、DLAT41から出力されたエントリを、実アドレス
・レジスタ48に入れられるようになることを理解され
たい。図2を参照して説明したように、IBMシステム
/370−XAの仮想アドレスは、仮想アドレス・ジェ
ネレータ40に記憶されるアドレス・ビットA1〜A3
1を含む。アドレス・ビットA1〜A11は、セグメン
ト・インデックス(SX)・ビットであり、アドレス・
ビットA12〜A19は、ページ・インデックス(PX
)・ビットであり、アドレス・ビットA20〜A31は
、変位インデックス(DX)・ビットである。256個
の合同クラスを有するDLATの場合、仮想アドレスの
ビットA12〜A19を使用して、DLAT41をアド
レスする。DLAT41から読み取られるアドレスされ
たエントリの仮想ページ識別部分は、コンパレータ42
内で仮想アドレス・ビットA1〜A11と比較される。 一致すなわち「ヒット」とコンパレータ42が判定する
場合、DLAT41から読み取られるアドレスされたエ
ントリは、実アドレス・レジスタ48のビットRA1〜
RA19に入力される。この仮想アドレスの仮想アドレ
ス変位インデックス・ビットA20〜A31が、実アド
レス・レジスタのビットRA20〜RA31に渡されて
、実アドレスが完成する。
ATアーキテクチャの一部を、図4に示す。たとえば、
コンパレータ42の出力がDLAT「ヒット」を示すと
、DLAT41から出力されたエントリを、実アドレス
・レジスタ48に入れられるようになることを理解され
たい。図2を参照して説明したように、IBMシステム
/370−XAの仮想アドレスは、仮想アドレス・ジェ
ネレータ40に記憶されるアドレス・ビットA1〜A3
1を含む。アドレス・ビットA1〜A11は、セグメン
ト・インデックス(SX)・ビットであり、アドレス・
ビットA12〜A19は、ページ・インデックス(PX
)・ビットであり、アドレス・ビットA20〜A31は
、変位インデックス(DX)・ビットである。256個
の合同クラスを有するDLATの場合、仮想アドレスの
ビットA12〜A19を使用して、DLAT41をアド
レスする。DLAT41から読み取られるアドレスされ
たエントリの仮想ページ識別部分は、コンパレータ42
内で仮想アドレス・ビットA1〜A11と比較される。 一致すなわち「ヒット」とコンパレータ42が判定する
場合、DLAT41から読み取られるアドレスされたエ
ントリは、実アドレス・レジスタ48のビットRA1〜
RA19に入力される。この仮想アドレスの仮想アドレ
ス変位インデックス・ビットA20〜A31が、実アド
レス・レジスタのビットRA20〜RA31に渡されて
、実アドレスが完成する。
【0016】大きなページに必要なDLATを図5に示
す。これは、図4に示したDLATに類似しているが、
仮想アドレス・ジェネレータ50のビットA4〜A11
を使用してDLAT51をアドレスし、仮想アドレスの
ビットA1〜A3を、コンパレータ52内で、DLAT
51から読み取られるアドレスされたエントリの対応す
る仮想ページ識別ビットと比較し、実アドレス・レジス
タ58内の実アドレスが、DLAT51から読み取られ
たセグメント・アドレス・ビットRA1〜RA11と、
仮想アドレス・ビットA12〜A31から渡されたペー
ジと、変位インデックス・ビットRA12〜RA31か
らなる点が異なっている。
す。これは、図4に示したDLATに類似しているが、
仮想アドレス・ジェネレータ50のビットA4〜A11
を使用してDLAT51をアドレスし、仮想アドレスの
ビットA1〜A3を、コンパレータ52内で、DLAT
51から読み取られるアドレスされたエントリの対応す
る仮想ページ識別ビットと比較し、実アドレス・レジス
タ58内の実アドレスが、DLAT51から読み取られ
たセグメント・アドレス・ビットRA1〜RA11と、
仮想アドレス・ビットA12〜A31から渡されたペー
ジと、変位インデックス・ビットRA12〜RA31か
らなる点が異なっている。
【0017】図4及び図5では、DLAT41および5
1は共に、2ウェイ・セット連想式で256個の合同ク
ラスをもたらす512個のエントリを有する。したがっ
て、DLATをアドレスするには8ビット(すなわち、
A12〜A19、またはA4〜A11)のアドレスが必
要であり、同じセットから2つのエントリが、比較のた
めに取り出される。
1は共に、2ウェイ・セット連想式で256個の合同ク
ラスをもたらす512個のエントリを有する。したがっ
て、DLATをアドレスするには8ビット(すなわち、
A12〜A19、またはA4〜A11)のアドレスが必
要であり、同じセットから2つのエントリが、比較のた
めに取り出される。
【0018】複数のサイズのページをサポートするDL
AT機構を実施する手法は3つあり、これらを以下で詳
細に説明する。第1は、大きなページ用のDLATを追
加することである。第2は、既存のDLATを4KBペ
ージ用と1MBページ用の2つのセクションに区分する
ことである。第3は、任意のエントリ中の2つの異なる
ページ・フォーマットのいずれかを交互に保持/試験/
選択できる、異なるタイプのDLATを創造することで
ある。もちろん、これらの手法はそれぞれ、3種以上の
ページをサポートするように適当に変更できることを理
解されたい。
AT機構を実施する手法は3つあり、これらを以下で詳
細に説明する。第1は、大きなページ用のDLATを追
加することである。第2は、既存のDLATを4KBペ
ージ用と1MBページ用の2つのセクションに区分する
ことである。第3は、任意のエントリ中の2つの異なる
ページ・フォーマットのいずれかを交互に保持/試験/
選択できる、異なるタイプのDLATを創造することで
ある。もちろん、これらの手法はそれぞれ、3種以上の
ページをサポートするように適当に変更できることを理
解されたい。
【0019】4KBと1MBのページ・エントリは、完
全に異なるフォーマットを有するので、図6に示すよう
に第2のDLATを追加することができる。この配置構
成は、仮想アドレスのビットA12〜A19によってア
ドレスされる4KBページDLAT61と、仮想アドレ
スのビットA4〜A11によってアドレスされる1MB
ページDLAT65を含む。アドレス変換が必要な時に
は、両方のDLATがアクセスされ、各DLATが仮想
アドレス・ジェネレータ60からの適当なビットを使用
する。DLATの1つが有効な変換エントリを保持する
場合には、ヒットが1つだけ存在し、そのことがコンパ
レータ62および66によって判定される。したがって
、どちらかの実アドレス・レジスタが正しい場合には、
コンパレータの出力が、どちらの実アドレスが正しいか
を示し、正しい実アドレスが実アドレス・レジスタ68
または69のどちらか一方から読み取られる。
全に異なるフォーマットを有するので、図6に示すよう
に第2のDLATを追加することができる。この配置構
成は、仮想アドレスのビットA12〜A19によってア
ドレスされる4KBページDLAT61と、仮想アドレ
スのビットA4〜A11によってアドレスされる1MB
ページDLAT65を含む。アドレス変換が必要な時に
は、両方のDLATがアクセスされ、各DLATが仮想
アドレス・ジェネレータ60からの適当なビットを使用
する。DLATの1つが有効な変換エントリを保持する
場合には、ヒットが1つだけ存在し、そのことがコンパ
レータ62および66によって判定される。したがって
、どちらかの実アドレス・レジスタが正しい場合には、
コンパレータの出力が、どちらの実アドレスが正しいか
を示し、正しい実アドレスが実アドレス・レジスタ68
または69のどちらか一方から読み取られる。
【0020】この手法は、1MBという第2のページ・
サイズをもサポートするための、最も単純な方法である
。しかし、必要なハードウェア・オーバーヘッドが大き
く、図4および図5に示した単一ページ・サイズDLA
Tに必要なハードウェアの約2倍になる。さらに、アド
レス・チップ上に必要な入出力ピンの数が増え、多重チ
ップ・モジュール上でより大きなチップ空間を要する。 これは、米国特許出願第285176号で採用された手
法である。
サイズをもサポートするための、最も単純な方法である
。しかし、必要なハードウェア・オーバーヘッドが大き
く、図4および図5に示した単一ページ・サイズDLA
Tに必要なハードウェアの約2倍になる。さらに、アド
レス・チップ上に必要な入出力ピンの数が増え、多重チ
ップ・モジュール上でより大きなチップ空間を要する。 これは、米国特許出願第285176号で採用された手
法である。
【0021】図7は、第2の手法を示し、本発明の2つ
の好ましい代替実施例のうちの1つを示す図である。こ
の手法では、既存のDLAT71を、4KBページ用の
セクション71aと、1MBページ用のセクション71
bの2セクションに分離する。仮想アドレスのセグメン
ト・インデックス・ビットA1〜A11を使用して、ス
テアリング・テーブル74をアドレスする。ステアリン
グ・テーブル74は、1セグメント当り1ビット、2ギ
ガ・バイト(GB)の仮想メモリでは2048ビットの
情報からなる。ステアリング・テーブル74の各ビット
は、そのセグメントが最後に含んだのが4KBページか
1MBページかを示す。
の好ましい代替実施例のうちの1つを示す図である。こ
の手法では、既存のDLAT71を、4KBページ用の
セクション71aと、1MBページ用のセクション71
bの2セクションに分離する。仮想アドレスのセグメン
ト・インデックス・ビットA1〜A11を使用して、ス
テアリング・テーブル74をアドレスする。ステアリン
グ・テーブル74は、1セグメント当り1ビット、2ギ
ガ・バイト(GB)の仮想メモリでは2048ビットの
情報からなる。ステアリング・テーブル74の各ビット
は、そのセグメントが最後に含んだのが4KBページか
1MBページかを示す。
【0022】当初は、全てのビットが“0”にセットさ
れる。これは、そのセグメントに4KBページが含まれ
ることを意味する。各セグメントが動的アドレス変換(
DAT)機構によって変換される際に、そのセグメント
に含まれるページ・サイズ(1MBまたは4KB)が知
られる。このビットは、そのセグメントが1MBの「大
きい」ページだけを含む場合には“1”にセットされ、
そうでない場合には“0”にセットされる。セグメント
の履歴を知ることによって、DLAT71のインデクシ
ングにアドレス・バスA5〜A11とA13〜A19の
どちらを使用するかを、セレクタ75を介して選択する
ことができる。
れる。これは、そのセグメントに4KBページが含まれ
ることを意味する。各セグメントが動的アドレス変換(
DAT)機構によって変換される際に、そのセグメント
に含まれるページ・サイズ(1MBまたは4KB)が知
られる。このビットは、そのセグメントが1MBの「大
きい」ページだけを含む場合には“1”にセットされ、
そうでない場合には“0”にセットされる。セグメント
の履歴を知ることによって、DLAT71のインデクシ
ングにアドレス・バスA5〜A11とA13〜A19の
どちらを使用するかを、セレクタ75を介して選択する
ことができる。
【0023】この例示的な実施例のDLAT71の2つ
のセクション71aと71bは、簡単にするために等し
いセクションになっているが、これは必要条件ではない
。4KBページ用のDLAT71は128個の合同クラ
スしか有さないので、エントリ・フォーマットが変更さ
れる。仮想アドレスからの余分のビットは、4KBペー
ジのDLATエントリに記憶される。仮想アドレス・ジ
ェネレータ70からの仮想アドレス・ビットA1〜A1
2は、そのセグメントが4KBページを含んだことをス
テアリング・テーブル74が示す場合には、コンパレー
タ72内でのDLATとの比較のために選択される。 仮想アドレス・ビットA13〜A19は、4KB D
LATエントリをアドレスするために選択され、「ヒッ
ト」とコンパレータ72が判定したときは、DLAT7
1から出力されたエントリが、実アドレス・レジスタ7
8に読み込まれる。1MBページの場合、仮想アドレス
・ビットA5〜A11が、DLATエントリをアドレス
するために選択され、仮想アドレス・ビットA1〜A4
が、1MBのDLATエントリとの比較のために選択さ
れる。この場合、「ヒット」の結果、DLAT71から
出力されるエントリが、実アドレス・レジスタ79に読
み込まれる。
のセクション71aと71bは、簡単にするために等し
いセクションになっているが、これは必要条件ではない
。4KBページ用のDLAT71は128個の合同クラ
スしか有さないので、エントリ・フォーマットが変更さ
れる。仮想アドレスからの余分のビットは、4KBペー
ジのDLATエントリに記憶される。仮想アドレス・ジ
ェネレータ70からの仮想アドレス・ビットA1〜A1
2は、そのセグメントが4KBページを含んだことをス
テアリング・テーブル74が示す場合には、コンパレー
タ72内でのDLATとの比較のために選択される。 仮想アドレス・ビットA13〜A19は、4KB D
LATエントリをアドレスするために選択され、「ヒッ
ト」とコンパレータ72が判定したときは、DLAT7
1から出力されたエントリが、実アドレス・レジスタ7
8に読み込まれる。1MBページの場合、仮想アドレス
・ビットA5〜A11が、DLATエントリをアドレス
するために選択され、仮想アドレス・ビットA1〜A4
が、1MBのDLATエントリとの比較のために選択さ
れる。この場合、「ヒット」の結果、DLAT71から
出力されるエントリが、実アドレス・レジスタ79に読
み込まれる。
【0024】この方法では、4KB変換の性能ならびに
1MBページの性能が保たれる。追加されるハードウェ
アは最小限で、この例の場合には、ステアリング・テー
ブル74用の2048ビット、すなわちたった1個の論
理チップである。これによって、ハードウェアに対する
影響を最小限に抑えて、大きなページのサポートが実現
される。この手法の部分実施または変形も可能である。 たとえば、1組または1クラスのセグメントを1ビット
でグループ化する、より小さなステアリング・テーブル
を作ることができる。これによって、そのセグメントの
サイズを推測することができる。これは、チップ数の増
加を要しない。これは推測であるから、誤った推測の際
には、その後に他のDLAT部分をアクセスしなければ
ならないので、性能の低下が伴う。
1MBページの性能が保たれる。追加されるハードウェ
アは最小限で、この例の場合には、ステアリング・テー
ブル74用の2048ビット、すなわちたった1個の論
理チップである。これによって、ハードウェアに対する
影響を最小限に抑えて、大きなページのサポートが実現
される。この手法の部分実施または変形も可能である。 たとえば、1組または1クラスのセグメントを1ビット
でグループ化する、より小さなステアリング・テーブル
を作ることができる。これによって、そのセグメントの
サイズを推測することができる。これは、チップ数の増
加を要しない。これは推測であるから、誤った推測の際
には、その後に他のDLAT部分をアクセスしなければ
ならないので、性能の低下が伴う。
【0025】図8に第3の手法を示す。ステアリング・
テーブル84は、やはりこの設計の欠くことのできない
部分である。しかし、このテーブルは、DLAT81の
どのセクションを使用するかを選択するのに使用される
のではなく、DLATがアドレスされる方式を動的に変
更し、変換に使用されるエントリのビットを選択するの
に使用される。ステアリング・テーブルのビットが“0
”で、4KBページを示す場合には、仮想アドレス・ジ
ェネレータ80からの仮想アドレス・ビットA12〜A
19が、DLATエントリ選択のためにマルチプレクサ
86によって渡される。ステアリング・テーブルのビッ
トが“1”で、1MBページを示す場合には、仮想アド
レスの8ビット、ビットA4〜A11が、DLATエン
トリ選択のためにマルチプレクサ86によって渡される
。いずれの場合でも、エントリの11ビットの仮想ペー
ジ識別フィールドが、コンパレータ82内で仮想アドレ
ス・ビットA1〜A11と比較される。仮想アドレスの
ビットA1〜A11が有効なDLATエントリ内の仮想
ページ識別ビットと一致すると、そのエントリがその仮
想アドレスに対する変換を含むことを示す。次に、この
ステアリング・テーブル・ビットを使用して、実アドレ
ス・レジスタ88内の実アドレスのビットRA12〜R
A19のソースを、マルチプレクサ87を介して選択す
る。このテーブル・ビットが“0”の場合、そのDLA
Tエントリが、実アドレスのビットRA12〜RA19
を供給する。このテーブル・ビットが“1”の場合、仮
想アドレスのビットA12〜A19が、変更なしに使用
される。実アドレス(セグメント)・ビットA1〜A1
1は、ステアリング・テーブル・ビットの値とは無関係
に、必ずDLATエントリから来、ビットA20〜A3
1(バイト・インデックス)は、必ず仮想アドレスから
来る。
テーブル84は、やはりこの設計の欠くことのできない
部分である。しかし、このテーブルは、DLAT81の
どのセクションを使用するかを選択するのに使用される
のではなく、DLATがアドレスされる方式を動的に変
更し、変換に使用されるエントリのビットを選択するの
に使用される。ステアリング・テーブルのビットが“0
”で、4KBページを示す場合には、仮想アドレス・ジ
ェネレータ80からの仮想アドレス・ビットA12〜A
19が、DLATエントリ選択のためにマルチプレクサ
86によって渡される。ステアリング・テーブルのビッ
トが“1”で、1MBページを示す場合には、仮想アド
レスの8ビット、ビットA4〜A11が、DLATエン
トリ選択のためにマルチプレクサ86によって渡される
。いずれの場合でも、エントリの11ビットの仮想ペー
ジ識別フィールドが、コンパレータ82内で仮想アドレ
ス・ビットA1〜A11と比較される。仮想アドレスの
ビットA1〜A11が有効なDLATエントリ内の仮想
ページ識別ビットと一致すると、そのエントリがその仮
想アドレスに対する変換を含むことを示す。次に、この
ステアリング・テーブル・ビットを使用して、実アドレ
ス・レジスタ88内の実アドレスのビットRA12〜R
A19のソースを、マルチプレクサ87を介して選択す
る。このテーブル・ビットが“0”の場合、そのDLA
Tエントリが、実アドレスのビットRA12〜RA19
を供給する。このテーブル・ビットが“1”の場合、仮
想アドレスのビットA12〜A19が、変更なしに使用
される。実アドレス(セグメント)・ビットA1〜A1
1は、ステアリング・テーブル・ビットの値とは無関係
に、必ずDLATエントリから来、ビットA20〜A3
1(バイト・インデックス)は、必ず仮想アドレスから
来る。
【0026】この手法を用いると、4KBページ用と1
MBページ用のDLATエントリの、それらの相対的使
用頻度に基づく動的割振りが可能になる。したがって、
異なるタイプのタスクに対して最適の性能が得られる。 さらに、この手法では、必要なハードウェアの増加は大
きくなく、4KBページと1MBページの両方に対して
最良の性能が得られる。ただし、DLATエントリのア
ドレッシング用および有効アドレスとの比較用に選択さ
れるビットは、異なる仮想アドレス・フォーマットおよ
び異なるDLATサイズと編成をサポートするように適
当に選択できることを理解されたい。したがって、上記
で説明した特定のビットは、例示的なものであって、変
更可能である。
MBページ用のDLATエントリの、それらの相対的使
用頻度に基づく動的割振りが可能になる。したがって、
異なるタイプのタスクに対して最適の性能が得られる。 さらに、この手法では、必要なハードウェアの増加は大
きくなく、4KBページと1MBページの両方に対して
最良の性能が得られる。ただし、DLATエントリのア
ドレッシング用および有効アドレスとの比較用に選択さ
れるビットは、異なる仮想アドレス・フォーマットおよ
び異なるDLATサイズと編成をサポートするように適
当に選択できることを理解されたい。したがって、上記
で説明した特定のビットは、例示的なものであって、変
更可能である。
【0027】
【図1】4KBページ・サイズを用いる仮想アドレス用
の可能なフォーマットを示すブロック図である。
の可能なフォーマットを示すブロック図である。
【図2】上記の仮想アドレス用の、256個の合同クラ
スを有するDLATを使用する従来式の動的アドレス変
換構造のブロック図である。
スを有するDLATを使用する従来式の動的アドレス変
換構造のブロック図である。
【図3】1MBページと4MBページの間の関係および
それぞれのアクセス・キーを示すメモリ・マップである
。
それぞれのアクセス・キーを示すメモリ・マップである
。
【図4】4KBページ用の既存のDLATハードウェア
を示すブロック図である。
を示すブロック図である。
【図5】1MBページ用に必要なDLATを示すブロッ
ク図である。
ク図である。
【図6】4KBページ用と1MBページ用に別々のDL
ATを有する動的アドレス変換構造のブロック図である
。
ATを有する動的アドレス変換構造のブロック図である
。
【図7】2つのセクションに分離された単一のDLAT
と、最初にアクセスすべきセクションを選択する機構を
示すブロック図である。
と、最初にアクセスすべきセクションを選択する機構を
示すブロック図である。
【図8】4KBと1MBのページがDLAT内で混合さ
れ、DLATのアドレス方式がページのサイズに応じて
動的に変更される代替実施例を示す、ブロック図である
。
れ、DLATのアドレス方式がページのサイズに応じて
動的に変更される代替実施例を示す、ブロック図である
。
31 1MBページ
32 1MBキー
35 4KBページ
36 4KBキー
50 仮想アドレス・ジェネレータ
51 DLAT
52 コンパレータ
58 実アドレス・レジスタ
60 仮想アドレス・ジェネレータ
61 4KBページDLAT
62 コンパレータ
65 1MBページDLAT
66 コンパレータ
68 実アドレス・レジスタ
69 実アドレス・レジスタ
74 ステアリング・テーブル
75 セレクタ
Claims (5)
- 【請求項1】少なくとも2つのサイズのページをサポー
トする、データ処理システム内の仮想記憶システム用ア
ドレス変換機構であって、セグメント・インデックス・
ビットとページ・インデックス・ビットと変位インデッ
クス・ビットからなる、変換すべき仮想アドレスを記憶
する手段と、前記の少なくとも2つのサイズのページす
べて用の変換情報を記憶するための単一の動的ルックア
サイド・テーブルと、前記の変換すべき仮想アドレスの
セグメント・インデックス・ビットによってアドレスさ
れる、ページ・サイズの履歴を記憶するためのステアリ
ング・テーブル手段と、前記動的ルックアサイド・テー
ブルをアドレスするために、前記ステアリング・テーブ
ル手段に応答して、前記仮想アドレスのビットの少なく
とも第1または第2の部分集合のうちの1つを選択する
手段とを含む、アドレス変換機構。 - 【請求項2】前記動的ルックアサイド・テーブルが、前
記少なくとも2つのサイズのテーブルに対応する少なく
とも2つのセクションに分割されており、前記選択手段
が、前記ステアリング・テーブル手段に記憶されている
前記の変換すべき仮想アドレスのセグメント・インデッ
クス・ビット用の履歴が、そのセグメントが第1または
第2のページ・サイズのどちらを含むことを示している
かに応じて、前記動的ルックアサイド・テーブルをアド
レスするために、少なくとも仮想アドレス・ビットの選
択されたグループを渡す、前記ステアリング・テーブル
手段によって制御されるセレクタを含むことを特徴とす
る、請求項1に記載のアドレス変換機構。 - 【請求項3】前記機構が、前記仮想アドレスの選択され
たビットを、前記動的ルックアサイド・テーブルによっ
て出力されるエントリの対応する仮想ページ識別ビット
と比較して、前記動的ルックアサイド・テーブル内で一
致が見出されるか否かを判定するためのコンパレータ手
段を含んでおり、前記セレクタが、前記ステアリング・
テーブル手段内に記憶された、前記の変換すべき仮想ア
ドレスのセグメント・インデックス・ビット用の履歴が
、そのセグメントが第1または第2のページ・サイズの
どちらを含むことを示しているかに応じて、前記コンパ
レータ手段に前記仮想アドレス・ビットの第1のサブセ
ットまたは第2のサブセットを渡すことを特徴とする、
請求項2に記載のアドレス変換機構。 - 【請求項4】前記動的ルックアサイド・テーブルが、前
記の少なくとも2つのサイズのページに対応する変換デ
ータを、前記動的ルックアサイド・テーブル内で混合し
て交互に記憶しており、前記選択手段が、前記動的ルッ
クアサイド・テーブルがアドレスされる方式を動的に変
更し、変換に使用されるエントリのビットを選択するた
めの、前記ステアリング・テーブル手段によって制御さ
れる手段を含むことを特徴とする、請求項1に記載のア
ドレス変換機構。 - 【請求項5】前記の動的ルックアサイド・テーブルがア
ドレスされる方式を動的に変更し、変換に使用されるエ
ントリのビットを選択するための前記手段が、前記ステ
アリング・テーブル手段に記憶されている、前記の変換
すべき仮想アドレスのセグメント・インデックス・ビッ
トの履歴が、そのセグメントが第1または第2のページ
・サイズのどちらを含むことを示しているかに応じて、
前記動的ルックアサイド・テーブルをアドレスするため
に、少なくとも選択された仮想アドレス・ビットのグル
ープまたは異なる選択された仮想アドレス・ビットのグ
ループを渡すための第1マルチプレクサと、前記ステア
リング・テーブル手段に記憶されている、前記の変換す
べき仮想アドレスのセグメント・インデックス・ビット
の履歴が、そのセグメントが第1または第2のページ・
サイズのどちらを含むことを示しているかに応じて、前
記動的ルックアサイド・テーブルから出力されるエント
リからのページ・インデックス・ビット、または変換す
べき仮想アドレスを記憶するための前記手段からの前記
ページ・インデックス・ビットを渡すための第2マルチ
プレクサとを含むことを特徴とする、請求項4に記載の
アドレス変換機構。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US66856891A | 1991-03-13 | 1991-03-13 | |
| US668568 | 1991-03-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04320553A true JPH04320553A (ja) | 1992-11-11 |
Family
ID=24682854
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4050171A Pending JPH04320553A (ja) | 1991-03-13 | 1992-03-09 | アドレス変換機構 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5475827A (ja) |
| EP (1) | EP0506236A1 (ja) |
| JP (1) | JPH04320553A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006525607A (ja) * | 2003-04-30 | 2006-11-09 | シリコン・グラフィックス・インコーポレイテッド | コンピュータシステムにおいてアドレス変換を実行するシステム及び方法 |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5617554A (en) * | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
| US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
| US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
| DE19526960A1 (de) * | 1994-09-27 | 1996-03-28 | Hewlett Packard Co | Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung |
| US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
| US5752275A (en) * | 1995-03-31 | 1998-05-12 | Intel Corporation | Translation look-aside buffer including a single page size translation unit |
| US5946716A (en) * | 1996-05-30 | 1999-08-31 | Hewlett-Packard Company | Sectored virtual memory management system and translation look-aside buffer (TLB) for the same |
| US5860147A (en) * | 1996-09-16 | 1999-01-12 | Intel Corporation | Method and apparatus for replacement of entries in a translation look-aside buffer |
| US5918251A (en) * | 1996-12-23 | 1999-06-29 | Intel Corporation | Method and apparatus for preloading different default address translation attributes |
| US6012132A (en) | 1997-03-31 | 2000-01-04 | Intel Corporation | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table |
| US6088780A (en) * | 1997-03-31 | 2000-07-11 | Institute For The Development Of Emerging Architecture, L.L.C. | Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address |
| US6226730B1 (en) * | 1998-06-05 | 2001-05-01 | Intel Corporation | Achieving page hit memory cycles on a virtual address reference |
| JP2000276404A (ja) * | 1999-03-29 | 2000-10-06 | Nec Corp | 仮想記憶装置および仮想記憶方法、並びに記録媒体 |
| 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 |
| US7337360B2 (en) | 1999-10-19 | 2008-02-26 | Idocrase Investments Llc | Stored memory recovery system |
| US6594780B1 (en) | 1999-10-19 | 2003-07-15 | Inasoft, Inc. | Operating system and data protection |
| US6947970B2 (en) * | 2000-12-19 | 2005-09-20 | Intel Corporation | Method and apparatus for multilevel translation and protection table |
| US6549997B2 (en) * | 2001-03-16 | 2003-04-15 | Fujitsu Limited | Dynamic variable page size translation of addresses |
| US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
| US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
| US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
| US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US6981125B2 (en) * | 2003-04-22 | 2005-12-27 | International Business Machines Corporation | Method and apparatus for managing shared virtual storage in an information handling system |
| US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
| US20080104362A1 (en) * | 2006-10-25 | 2008-05-01 | Buros William M | Method and System for Performance-Driven Memory Page Size Promotion |
| US8024546B2 (en) * | 2008-10-23 | 2011-09-20 | Microsoft Corporation | Opportunistic page largification |
| US9058268B1 (en) | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
| US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
| US9424201B2 (en) * | 2013-03-14 | 2016-08-23 | Nvidia Corporation | Migrating pages of different sizes between heterogeneous processors |
| US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
| US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5534337A (en) * | 1978-08-31 | 1980-03-10 | Fujitsu Ltd | Multi assumption space control system |
| JPS5712494A (en) * | 1980-06-23 | 1982-01-22 | Nippon Telegr & Teleph Corp <Ntt> | Storage protecting system |
| JPS6417137A (en) * | 1987-07-13 | 1989-01-20 | Nippon Telegraph & Telephone | Control system for large-capacity page |
| JPH03231346A (ja) * | 1990-02-06 | 1991-10-15 | Yokogawa Electric Corp | 可変長ページ式メモリ管理装置 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR10582E (fr) * | 1970-06-29 | 1909-07-30 | Paul Alexis Victor Lerolle | Jeu de serrures avec passe-partout |
| US3938100A (en) * | 1974-06-07 | 1976-02-10 | Control Data Corporation | Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques |
| US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
| US4356549A (en) * | 1980-04-02 | 1982-10-26 | Control Data Corporation | System page table apparatus |
| US4638426A (en) * | 1982-12-30 | 1987-01-20 | International Business Machines Corporation | Virtual memory address translation mechanism with controlled data persistence |
| US4682281A (en) * | 1983-08-30 | 1987-07-21 | Amdahl Corporation | Data storage unit employing translation lookaside buffer pointer |
| US4823259A (en) * | 1984-06-29 | 1989-04-18 | International Business Machines Corporation | High speed buffer store arrangement for quick wide transfer of data |
| US4695950A (en) * | 1984-09-17 | 1987-09-22 | International Business Machines Corporation | Fast two-level dynamic address translation method and means |
| JPS61148551A (ja) * | 1984-12-24 | 1986-07-07 | Hitachi Ltd | アドレス変換方式 |
| JPS62237547A (ja) * | 1986-04-09 | 1987-10-17 | Hitachi Ltd | アドレス変換方式 |
| US4774659A (en) * | 1986-04-16 | 1988-09-27 | Astronautics Corporation Of America | Computer system employing virtual memory |
| US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
| JP2960415B2 (ja) * | 1987-05-22 | 1999-10-06 | 株式会社日立製作所 | 記憶保護方法および装置 |
| JP2635058B2 (ja) * | 1987-11-11 | 1997-07-30 | 株式会社日立製作所 | アドレス変換方式 |
| US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
| US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| US5133058A (en) * | 1989-09-18 | 1992-07-21 | Sun Microsystems, Inc. | Page-tagging translation look-aside buffer for a computer memory system |
| US5263140A (en) * | 1991-01-23 | 1993-11-16 | Silicon Graphics, Inc. | Variable page size per entry translation look-aside buffer |
-
1992
- 1992-02-26 EP EP92301627A patent/EP0506236A1/en not_active Withdrawn
- 1992-03-09 JP JP4050171A patent/JPH04320553A/ja active Pending
-
1994
- 1994-04-01 US US08/223,366 patent/US5475827A/en not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5534337A (en) * | 1978-08-31 | 1980-03-10 | Fujitsu Ltd | Multi assumption space control system |
| JPS5712494A (en) * | 1980-06-23 | 1982-01-22 | Nippon Telegr & Teleph Corp <Ntt> | Storage protecting system |
| JPS6417137A (en) * | 1987-07-13 | 1989-01-20 | Nippon Telegraph & Telephone | Control system for large-capacity page |
| JPH03231346A (ja) * | 1990-02-06 | 1991-10-15 | Yokogawa Electric Corp | 可変長ページ式メモリ管理装置 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006525607A (ja) * | 2003-04-30 | 2006-11-09 | シリコン・グラフィックス・インコーポレイテッド | コンピュータシステムにおいてアドレス変換を実行するシステム及び方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0506236A1 (en) | 1992-09-30 |
| US5475827A (en) | 1995-12-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5475827A (en) | Dynamic look-aside table for multiple size pages | |
| US7089398B2 (en) | Address translation using a page size tag | |
| US5375214A (en) | Single translation mechanism for virtual storage dynamic address translation with non-uniform page sizes | |
| US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
| US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
| US5058003A (en) | Virtual storage dynamic address translation mechanism for multiple-sized pages | |
| US5526504A (en) | Variable page size translation lookaside buffer | |
| US6014732A (en) | Cache memory with reduced access time | |
| US8151085B2 (en) | Method for address translation in virtual machines | |
| US5893930A (en) | Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer | |
| US6189074B1 (en) | Mechanism for storing system level attributes in a translation lookaside buffer | |
| US6012132A (en) | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table | |
| US6442664B1 (en) | Computer memory address translation system | |
| JP3666689B2 (ja) | 仮想アドレス変換方法 | |
| US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
| CA2057494A1 (en) | Translation lookaside buffer | |
| US6073226A (en) | System and method for minimizing page tables in virtual memory systems | |
| JPH0749812A (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
| JPH04352256A (ja) | メモリ空間を節約する方法および装置 | |
| JPH04232551A (ja) | 多重仮想アドレス変換方法及び装置 | |
| JPH0619793A (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
| US6766434B2 (en) | Method for sharing a translation lookaside buffer between CPUs | |
| US5341485A (en) | Multiple virtual address translation per computer cycle | |
| JP3210637B2 (ja) | データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム | |
| JPH0769867B2 (ja) | 仮想記憶システムのためのディレクトリ索引テーブル論理装置 |