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
Application number
JP4050171A
Other languages
English (en)
Inventor
Jeffery Y Lee
ジェフリー・イム=ユー・リー
Jamshed H Mirza
ジャムシード・ホルマズディヤール・ミールザー
Jr Robert J Stanton
ロバート・ジェームズ・スタントン・ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04320553A publication Critical patent/JPH04320553A/ja
Pending legal-status Critical Current

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サイクルを要
することがある。
【0003】アドレスされた命令またはデータが主記憶
装置内のどこにあるかを発見するためには、仮想アドレ
スから実アドレスへの変換を行なわなければならない。 これは、通常はページに基づいて行なわれる。実際、D
LATに記憶される変換は、ページ変換のみであり、ア
ドレスの最後の数ビットはそのページ内の位置であるか
ら、変換しなければならないのはページ・アドレスだけ
である。
【0004】ページ・サイズを1種だけサポートするア
ーキテクチャでは、ページの最適サイズは、小さなペー
ジと大きなページの相対的利点のトレード・オフによっ
て選択される。大きなページを用いると、ページング・
オーバーヘッドの償却がより良くなり、所与のDLAT
サイズに対する仮想空間のカバー範囲がより大きくなる
。一方、小さなページを用いると、所与の実記憶サイズ
に対して多くの異なる場所を維持でき、無駄になる実記
憶空間が最小になる。小さな(4KB)ページは、コー
ド・セグメント(命令)に適しているが、高性能の科学
技術コンピュータでは、しばしば大きな(1MB)ペー
ジが有利である。たとえば、単に可能なページ・クロッ
シングの数とDLATミスの数を減少させることによっ
て、大きなページから利益が得られる。したがって、こ
のようなコンピュータの最適設計のためには、複数のペ
ージ・サイズをサポートすることが望ましい。
【0005】
【発明が解決しようとする課題】したがって、本発明の
目的は、ハードウェアおよび設計に対する影響が最小の
、異なるサイズの仮想メモリ・ページをサポートする動
的アドレス変換機構を提供することである。
【0006】
【課題を解決するための手段】本発明の好ましい実施例
によれば、動的ルックアサイド・テーブル(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をサポートするように本発明を
実施できることが理解されよう。
【0008】
【実施例】まず、従来式のページング/セグメンテーシ
ョン仮想アドレス・システムについて説明する。この説
明では、用語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内に置
かれる。
【0010】セグメント/ページ・テーブル探索は、セ
グメント・テーブル原点レジスタ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ミ
ス時に発生するセグメント/ページ・テーブル探索より
もかなり高速である。
【0012】しかし、セグメント/ページ・テーブル探
索が実行される時でも、そのセグメント/ページ・テー
ブル探索によって、そのセグメントが一次記憶装置内ま
たは主記憶装置内に存在しないことが示され、その結果
、オペレーティング・システムが、二次記憶装置すなわ
ち直接アクセス記憶装置(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に出ている。この説明は、例示的なも
のであり、一般性を失うことなしに、本発明を他の異な
るアーキテクチャに適用できることが、当業者には理解
されよう。
【0014】以下の説明では、1MBの「大きい」ペー
ジを追加して、システム/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に渡されて
、実アドレスが完成する。
【0016】大きなページに必要なDLATを図5に示
す。これは、図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つのエントリが、比較のた
めに取り出される。
【0018】複数のサイズのページをサポートするDL
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のどちらか一方から読み取られる。
【0020】この手法は、1MBという第2のページ・
サイズをもサポートするための、最も単純な方法である
。しかし、必要なハードウェア・オーバーヘッドが大き
く、図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ページかを示す。
【0022】当初は、全てのビットが“0”にセットさ
れる。これは、そのセグメントに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に読
み込まれる。
【0024】この方法では、4KB変換の性能ならびに
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(バイト・インデックス)は、必ず仮想アドレスから
来る。
【0026】この手法を用いると、4KBページ用と1
MBページ用のDLATエントリの、それらの相対的使
用頻度に基づく動的割振りが可能になる。したがって、
異なるタイプのタスクに対して最適の性能が得られる。 さらに、この手法では、必要なハードウェアの増加は大
きくなく、4KBページと1MBページの両方に対して
最良の性能が得られる。ただし、DLATエントリのア
ドレッシング用および有効アドレスとの比較用に選択さ
れるビットは、異なる仮想アドレス・フォーマットおよ
び異なるDLATサイズと編成をサポートするように適
当に選択できることを理解されたい。したがって、上記
で説明した特定のビットは、例示的なものであって、変
更可能である。
【0027】
【図面の簡単な説明】
【図1】4KBページ・サイズを用いる仮想アドレス用
の可能なフォーマットを示すブロック図である。
【図2】上記の仮想アドレス用の、256個の合同クラ
スを有するDLATを使用する従来式の動的アドレス変
換構造のブロック図である。
【図3】1MBページと4MBページの間の関係および
それぞれのアクセス・キーを示すメモリ・マップである
。
【図4】4KBページ用の既存のDLATハードウェア
を示すブロック図である。
【図5】1MBページ用に必要なDLATを示すブロッ
ク図である。
【図6】4KBページ用と1MBページ用に別々のDL
ATを有する動的アドレス変換構造のブロック図である
。
【図7】2つのセクションに分離された単一のDLAT
と、最初にアクセスすべきセクションを選択する機構を
示すブロック図である。
【図8】4KBと1MBのページが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. 【請求項1】少なくとも2つのサイズのページをサポー
    トする、データ処理システム内の仮想記憶システム用ア
    ドレス変換機構であって、セグメント・インデックス・
    ビットとページ・インデックス・ビットと変位インデッ
    クス・ビットからなる、変換すべき仮想アドレスを記憶
    する手段と、前記の少なくとも2つのサイズのページす
    べて用の変換情報を記憶するための単一の動的ルックア
    サイド・テーブルと、前記の変換すべき仮想アドレスの
    セグメント・インデックス・ビットによってアドレスさ
    れる、ページ・サイズの履歴を記憶するためのステアリ
    ング・テーブル手段と、前記動的ルックアサイド・テー
    ブルをアドレスするために、前記ステアリング・テーブ
    ル手段に応答して、前記仮想アドレスのビットの少なく
    とも第1または第2の部分集合のうちの1つを選択する
    手段とを含む、アドレス変換機構。
  2. 【請求項2】前記動的ルックアサイド・テーブルが、前
    記少なくとも2つのサイズのテーブルに対応する少なく
    とも2つのセクションに分割されており、前記選択手段
    が、前記ステアリング・テーブル手段に記憶されている
    前記の変換すべき仮想アドレスのセグメント・インデッ
    クス・ビット用の履歴が、そのセグメントが第1または
    第2のページ・サイズのどちらを含むことを示している
    かに応じて、前記動的ルックアサイド・テーブルをアド
    レスするために、少なくとも仮想アドレス・ビットの選
    択されたグループを渡す、前記ステアリング・テーブル
    手段によって制御されるセレクタを含むことを特徴とす
    る、請求項1に記載のアドレス変換機構。
  3. 【請求項3】前記機構が、前記仮想アドレスの選択され
    たビットを、前記動的ルックアサイド・テーブルによっ
    て出力されるエントリの対応する仮想ページ識別ビット
    と比較して、前記動的ルックアサイド・テーブル内で一
    致が見出されるか否かを判定するためのコンパレータ手
    段を含んでおり、前記セレクタが、前記ステアリング・
    テーブル手段内に記憶された、前記の変換すべき仮想ア
    ドレスのセグメント・インデックス・ビット用の履歴が
    、そのセグメントが第1または第2のページ・サイズの
    どちらを含むことを示しているかに応じて、前記コンパ
    レータ手段に前記仮想アドレス・ビットの第1のサブセ
    ットまたは第2のサブセットを渡すことを特徴とする、
    請求項2に記載のアドレス変換機構。
  4. 【請求項4】前記動的ルックアサイド・テーブルが、前
    記の少なくとも2つのサイズのページに対応する変換デ
    ータを、前記動的ルックアサイド・テーブル内で混合し
    て交互に記憶しており、前記選択手段が、前記動的ルッ
    クアサイド・テーブルがアドレスされる方式を動的に変
    更し、変換に使用されるエントリのビットを選択するた
    めの、前記ステアリング・テーブル手段によって制御さ
    れる手段を含むことを特徴とする、請求項1に記載のア
    ドレス変換機構。
  5. 【請求項5】前記の動的ルックアサイド・テーブルがア
    ドレスされる方式を動的に変更し、変換に使用されるエ
    ントリのビットを選択するための前記手段が、前記ステ
    アリング・テーブル手段に記憶されている、前記の変換
    すべき仮想アドレスのセグメント・インデックス・ビッ
    トの履歴が、そのセグメントが第1または第2のページ
    ・サイズのどちらを含むことを示しているかに応じて、
    前記動的ルックアサイド・テーブルをアドレスするため
    に、少なくとも選択された仮想アドレス・ビットのグル
    ープまたは異なる選択された仮想アドレス・ビットのグ
    ループを渡すための第1マルチプレクサと、前記ステア
    リング・テーブル手段に記憶されている、前記の変換す
    べき仮想アドレスのセグメント・インデックス・ビット
    の履歴が、そのセグメントが第1または第2のページ・
    サイズのどちらを含むことを示しているかに応じて、前
    記動的ルックアサイド・テーブルから出力されるエント
    リからのページ・インデックス・ビット、または変換す
    べき仮想アドレスを記憶するための前記手段からの前記
    ページ・インデックス・ビットを渡すための第2マルチ
    プレクサとを含むことを特徴とする、請求項4に記載の
    アドレス変換機構。
JP4050171A 1991-03-13 1992-03-09 アドレス変換機構 Pending JPH04320553A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006525607A (ja) * 2003-04-30 2006-11-09 シリコン・グラフィックス・インコーポレイテッド コンピュータシステムにおいてアドレス変換を実行するシステム及び方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 仮想記憶システムのためのディレクトリ索引テーブル論理装置