JPH07200409A - 仮想アドレスを物理アドレスに変換する方法及び装置 - Google Patents

仮想アドレスを物理アドレスに変換する方法及び装置

Info

Publication number
JPH07200409A
JPH07200409A JP6236020A JP23602094A JPH07200409A JP H07200409 A JPH07200409 A JP H07200409A JP 6236020 A JP6236020 A JP 6236020A JP 23602094 A JP23602094 A JP 23602094A JP H07200409 A JPH07200409 A JP H07200409A
Authority
JP
Japan
Prior art keywords
virtual address
tag
translation
candidate
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP6236020A
Other languages
English (en)
Inventor
Yousef A Khalidi
ヨーゼフ・エイ・カーリディ
Glen R Anderson
グレン・アール・アンダーソン
Stephen A Chessin
スティーブン・エイ・チェッシン
Shing I Kong
シン・イプ・コング
Charles E Narad
チャールズ・イー・ナラド
Madhusudhan Talluri
マドゥーサドハン・タルーリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH07200409A publication Critical patent/JPH07200409A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 仮想アドレスを物理アドレスに変換する新規
な方法及び装置を提供する。 【構成】 1より大きい正の整数をLとするとき、L種
類のページサイズの各々は試験ページサイズであるよう
に選択されており、試験が実行される。試験中、変換記
憶バッファに対するポインタを計算する。変換すべき仮
想アドレスは試験ページサイズのマッピングに対応する
と仮定することにより、変換すべき仮想アドレスからポ
インタを計算する。このポインタは変換記憶バッファ候
補変換テーブルエントリを指示する。その候補変換テー
ブルエントリは候補タグと、候補データとを有する。候
補タグは特定の仮想アドレスを識別し、候補データは特
定の仮想アドレスに対応する特定の物理アドレスを識別
する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムの
分野に関する。さらに特定すれば、本発明は、仮想メモ
リコンピュータシステムにおける仮想アドレスから物理
アドレスへの変換に関する。
【0002】
【従来の技術】仮想メモリは、アプリケーションにシス
テムを大型で一様な一次メモリを提供するものとして認
識させる技法であり、現実には、これはより小型で、よ
り細分化され及び/又は一部がハードディスクなどの二
次記憶装置によってシミュレートされていても良い。ア
プリケーションは仮想アドレスを介してメモリをアクセ
スするのであるが、それらの仮想アドレスは特別のハー
ドウェアによって物理アドレスに変換(マッピング)さ
れる。ページングとセグメンテーションは仮想メモリの
2つの共通するインプリメンテーションである。
【0003】ページング技法を使用して仮想メモリを実
現する場合、仮想アドレススペースをページと呼ばれる
複数の固定サイズブロックに分割し、各々のページをシ
ステムで利用可能な同じ大きさの物理ページのいずれか
にマッピングすることができる。典型的には、メモリ管
理装置(MMU)などの特別のメモリ管理ハードウェア
が仮想アドレスから物理アドレスへのアドレス変換を実
行する。この型のメモリ管理では、物理(システム)メ
モリの中に存在していないデータをアクセスしようとす
ると、PMMUは中央処理装置(CPU)へ割込み信号
を送信する。次に、オペレーティングシステムはそのデ
ータを別の記憶装置(ハードディスクなど)から転送す
るが、アプリケーションはその転送についての「知識」
をもたない。ある仮想メモリスキーマにおいては、仮想
メモリスペースから物理メモリスペースへのマッピング
は唯一である。ところが、別のインプリメンテーション
では、いくつかのアドレススペースを設けることがで
き、その各々が物理アドレススペースに独自にマッピン
グされる。このように第1のプロセスは第1の仮想アド
レスを使用して所定の1つの物理アドレスを参照し、同
じCPU又は多重プロセッサ環境における異なるCPU
で実行中の第2のプロセスは第2の仮想アドレスによっ
てその所定の物理アドレスを参照することもありうる。
そのような場合には、同じ物理アドレスに対応するそれ
ら2つの仮想アドレスをエイリアスという。
【0004】CPUによっては、2つ以上のサイズの仮
想ページを使用して動作可能であるものがある。これに
より、マッピングに際して使用される仮想ページサイズ
をマッピング中の仮想アドレススペースの要求に最も良
く適合するものとして選択することができる。大きいペ
ージを使用する場合、MMU中の単一のエントリを使用
して大量の仮想メモリを変換できる。従って、MMUに
必要とされる資源は少なくてすみ、それにより、性能は
向上する。しかしながら、大きいページの使用によっ
て、小さいページを使用したときには起こらないメモリ
細分化の問題が生じる。
【0005】
【発明が解決しようとする課題】仮想アドレスを物理ア
ドレスに変換する新規な方法及び装置を開示する。
【0006】
【課題を解決するための手段】変換すべき仮想アドレス
は仮想ページオフセットと、仮想ページ番号とを有す
る。変換すべき仮想アドレスは1ページ分のメモリをア
ドレス指定する。このページのサイズはわからない。1
より大きい正の整数をLとするとき、その未知のページ
サイズは可能なL種類のページサイズのうちの1つであ
る。
【0007】L種類のページサイズの各々は試験ページ
サイズとなるように選択され、試験を実行する。試験
中、変換記憶バッファに対するポインタを計算する。変
換すべき仮想アドレスは試験ページサイズのマッピング
に対応すると仮定することにより、変換すべき仮想アド
レスからそのポインタを計算する。ポインタは変換記憶
バッファの1つの候補変換テーブルエントリを指示す
る。候補変換テーブルエントリは候補タグと、候補デー
タとを有する。候補タグは特定の仮想アドレスを識別
し、候補データは特定の仮想アドレスに対応する特定の
物理アドレスを識別する。
【0008】変換すべき仮想アドレスから仮想アドレス
ターゲットタグを抽出する。変換すべき仮想アドレスが
試験ページサイズのマッピングに対応すると仮定するこ
とにより、仮想アドレスターゲットタグを計算する。次
に、ターゲットタグと候補タグとを比較する。ターゲッ
トタグが候補タグと一致するならば、変換すべき仮想ア
ドレスに対応する物理アドレス変換として候補データを
提供する。本発明の方法及び装置の目的、特徴及び利点
は、以下の本発明の詳細な説明から明白になるであろ
う。
【0009】
【実施例】複数のページサイズを支援する仮想アドレス
/物理アドレス変換キャッシュを実現するための方法及
び装置を開示する。以下で説明する実施例では、ハード
ウェアは、比較すべきタグ値と、比較を実行すべきキャ
ッシュに対するポインタを計算することにより、変換キ
ャッシュのソフトウェア探索の支援を実行する。説明さ
れるハードウェア支援は実現するのが簡単であり且つ効
率も良い。変換が変換キャッシュの中に存在している場
合、1つの変換エントリを検索することによって変換を
実行できる。この実施例では、変換をソフトウェアによ
りキャッシュから検索させるので、変換キャッシュの頻
繁に使用される部分それ自体を仮想索引付きデータキャ
ッシュにキャッシングすることができる。
【0010】さらに、ソフトウェア実現探索構造を使用
する実施例においては、変換キャッシュの構造について
大きな融通性を得ることができる。すなわち、変換キャ
ッシュを複数の異なるページサイズに関わる変換を混合
する1つのキャッシュとなるように構成するか、あるい
は、各々が1つのページサイズに関わる変換を含むよう
なサブキャッシュに分割された1つのキャッシュとして
構成することが可能である。複数の変換キャッシュも採
用できる。従って、一実施例では、命令用に1つ、デー
タ用に1つの別個の変換キャッシュを設けることができ
る。全てのCPUとコンテキストに対して1つの大域変
換キャッシュがある実施例、CPUごとに1つの変換キ
ャッシュがあり、各変換キャッシュは全てのコンテキス
トを含むような実施例、コンテキストごとに1つの変換
キャッシュがあるが、それを全てのCPUにより共用す
る実施例、又はCPUごと、コンテキストごとに1つの
変換キャッシュを設けた実施例などの代替実施例も実現
可能である。最後に、システム変換を別個のコンテキス
トとして扱うことにより、ユーザ変換と、システム変換
とに対して別個の変換キャッシュを構成するような実施
例を実現することができる。
【0011】以下の説明中、本発明を完全に理解させる
ために、説明の便宜上、特定の数、材料及び構成を挙げ
る。しかしながら、それらの特定の詳細がなくとも本発
明を実施しうることは当業者には明白であろう。他の場
合には、本発明を無用にわかりにくくしないために、周
知のシステムを概略図又はブロック線図の形態で示して
ある。
【0012】そこで図1を参照すると、複数のページサ
イズを支援する仮想アドレス(VA)/物理アドレス
(PA)変換キャッシュを使用する仮想メモリコンピュ
ータシステムの1実施例が示されている。図1のコンピ
ュータシステム100では、中央処理装置(CPU)1
10はメモリバス120などのメモリ相互接続線路によ
って一次メモリ130と、二次メモリ140とに結合さ
れている。コンピュータシステム100の1実施例にお
いては、中央処理装置110は一次メモリ130を、二
次メモリ140をアクセスするときより速くアクセスす
ることができる。ところが、二次メモリ140ははるか
に大きいので、一次メモリ130より多くのデータを保
持できる。この実施例では、二次メモリ140を複数の
ページに分割してあり、中央処理装置110がそれらの
ページを必要とするときに、一次メモリ130に対して
ページをスワップイン、スワップアウトする。このよう
に、中央処理装置110は一次メモリ130で利用可能
であるより多くの量のメモリを、二次メモリ140の全
てのメモリを一次メモリ130の速度でアクセスできる
場合とほぼ等しい速度でアクセスすることができる。
【0013】中央処理装置110はデータキャッシュ1
70により支援される。データキャッシュ170は一次
メモリ130より小さいが、一次メモリ130より高速
でアクセス可能である。従って、中央処理装置110が
データを必要とするときには、まず、データキャッシュ
170でそのデータを利用できるか否かを判定するため
にデータキャッシュ170を検査する。データキャッシ
ュ170でデータが利用可能でないならば、要求された
データを含むページを一次メモリ130が記憶している
か否かを判定するために、一次メモリ130を検査す
る。一次メモリ130が要求されたデータを有していな
いならば、一次メモリ130を中央処理装置110がア
クセスできるように、要求されたデータを含むページを
二次メモリ140から一次メモリ130にコピーする。
データキャッシュ170を中央処理装置110により急
速にアクセスできるように、要求されたデータの少なく
とも一部をデータキャッシュ170へもコピーする。
【0014】中央処理装置110で実行中のプロセスが
データを要求するとき、プロセスは要求したデータを仮
想アドレスを使用して指定する。変換索引バッファ(T
LB)150は、少量の1組の最近に使用された又は頻
繁に使用される仮想アドレスに関する仮想アドレス/物
理アドレス変換情報を含むハードウェア装置である。T
LB150はハードウェアで実現されるので、中央処理
装置110に要求された仮想アドレスの物理アドレス変
換を急速に実行させることができる。ところが、TLB
150はごく少量の1組の仮想アドレスに関する変換し
か含んでいない。TLB150が中央処理装置110に
より要求されたアドレス変換を実行させることができな
い場合には、変換記憶バッファ160が要求されたアド
レス変換を提供できるか否かを判定するために、変換記
憶バッファ160を検査する。
【0015】変換記憶バッファ160はTLB150よ
り多くのアドレス変換を記憶している。変換記憶バッフ
ァ160は一次メモリ130に記憶されているので、中
央処理装置110によりこのバッファをTLB150と
同じ速さでアクセスするのは不可能である。一方、変換
記憶バッファ160はTLB150より大きいので、T
SB160は要求されたアドレス変換の発見に際してT
LB150より多くの機会を与えることになる。
【0016】さらに、TSB160は一次メモリ130
に常駐しているので、システム100はTSB160を
他の何らかのメモリオブジェクトとして扱うことがで
き、従って、TSB160の全体又はその一部をデータ
キャッシュ170へ移動できる。そこで、LB150が
CPU110に対して仮想アドレスの物理アドレス変換
を提供できない場合には、CPU110がTSB160
で要求された変換を発見する確率は高い。さらに、要求
された変換を含むTSB160の部分がデータキャッシ
ュ170にある確率も高い。従って、要求された変換を
TLB150が提供できない場合には、TSB160は
中央処理装置110に対して所望の仮想アドレス/物理
アドレス変換を急速に実行可能にすることが多い。
【0017】次に図2を参照すると、本発明の一実施例
に関わる階層変換構造が示されている。図2には、3段
階変換階層を示す。CPUが仮想アドレスから物理アド
レスへの変換を要求するたびに、変換をレベルIで実行
することが試行される。図2では、レベルIは変換索引
バッファ(TLB)220などのメモリ管理装置(MM
U)であるものとして示されている。レベルIは典型的
にはハードウェアで実現され、少数のアドレスに対して
高速変換を実行させることを特徴としている。レベルI
では必要とされる確率が最も高い変換を利用できるよう
に保証するために、レベルIで変換可能である1組のア
ドレスはその組の要素の更新につれて動的に変化する。
【0018】レベルIIは、図2では、変換記憶バッファ
(TSB)250により例示されている。本発明の一実
施例では、TSB250は一次メモリで実現されてい
る。従って、TSB250はTLB220ほど高速では
ないが、TLB220より多くの量の1組の変換要素を
維持することができる。従って、TLB220が変換を
提供できないとき(TLB「ミス」)には、その変換が
TSB250に記憶されているか否かを判定するために
TSB250を試験する。TSB250が変換を提供で
きるのであれば(TSB「ヒット」)、CPUと変換索
引バッファ220に変換を提供する。これに対し、TS
B250が変換を提供することができない(TSB「ミ
ス」)場合には、レベルIII の変換を実行する。
【0019】レベルIII の変換は遅いが、広範囲にわた
ることを特徴とする。典型的には、仮想メモリオペレー
ティングシステムはデータ記憶装置に記憶される大きい
ソフトウェア変換テーブル(BST)280を提供す
る。データ記憶装置は一次メモリ、二次メモリ又は一次
メモリと二次メモリの組合わせであれば良い。BST2
80は、存在している仮想アドレススペースから物理ア
ドレススペースへのあらゆる変換を含む。従って、レベ
ルIII の変換は相対的に長い時間を要するが、その結
果、変換が存在していれば、その変換が発見されること
になる。レベルIIIの変換を実行するときには、その結
果をCPUと、変換記憶バッファ250と、変換索引バ
ッファ220とに提供する。
【0020】図2を要約すると、CPUがTLB220
などのレベルI変換器に対して仮想アドレス要求(21
0)を生成したときに、レベルIの変換は実行される。
レベルIの変換が成功すれば(ヒット)、レベルIの変
換器は要求された仮想アドレスに対応する要求された物
理アドレス(230)を提供する。レベルIの変換が失
敗(ミス)であれば、TSB250などのレベルIIの変
換器に対して仮想アドレス要求240を発生する。レベ
ルIIの変換が成功すれば、仮想アドレス要求240に対
応する物理アドレス260をレベルIの変換器(TLB
220)に戻し、次にCPUに戻す(物理アドレス23
0)。これに対し、レベルIIの変換に失敗した場合に
は、BST280などのレベルIII の変換器へ仮想アド
レス要求270を送信する。BST280は範囲が広い
ので、物理アドレス変換が存在すれば、それを物理アド
レス290としてレベルIIの変換器(TSB250)に
戻す。その変換は物理アドレス260としてレベルIの
変換器(TLB220)にも提供され、最終的には物理
アドレス230としてCPUに提供される。
【0021】本発明はここでは3つの変換レベルを含む
一実施例によって説明されているが、変換レベルが4つ
以上あるか又は2つ以下しかない代替実施例も存在す
る。さらに、本発明はレベルIIにTSB250などの変
換記憶バッファをもつ実施例で説明されているが、本発
明の代替実施例はレベルIの変換器として変換記憶バッ
ファを使用するようなものであろう。
【0022】次に図3を参照すると、物理アドレスと仮
想アドレスとの関係が示されている。図3は、変換記憶
バッファの索引とターゲットの導出をさらに示す。図3
では、物理アドレス310は物理ページオフセット32
0と、物理ページ番号330から構成されているものと
して示してある。物理ページは物理一次メモリの連続部
分である。概念の上では、物理ページは1組の「行」に
分割されていると考えることができ、その場合、1つの
行は個別にアドレス指定できる最小の1組のデータを表
わす。物理ページ番号330は1組の物理ページからど
のページが選択されているかを指定し、物理ページオフ
セット320は所定の物理ページの中のアドレス指定さ
れる行を指定する。
【0023】物理ページのサイズは可変である。すなわ
ち、大きいページは小さいページより多くの行を持つ。
そのため、所定の量の物理メモリを分割するとき、小さ
いページに分割するときより、大きいページに分割する
ときはページ数が少なくなる。従って、大きいページに
対しては、小さいページの場合より物理アドレス310
のより多くのビットが物理ページオフセット320に向
けられる。それに相応して、大きいページに対しては、
小さいページの場合より少ないビット数の物理アドレス
310が物理ページ番号330用となる。所定のページ
の中の行の数が2の整数累乗となるように制約されてお
り且つ所定のページサイズについての物理ページの最大
数も2の整数累乗となるように制約されている場合に
は、その結果、物理アドレス310をM+Nビット2進
数として表現することができ、そのうち、物理アドレス
310のMビットは物理ページ番号330を指定するた
めに使用され、また、物理アドレス310のNビットは
物理ページオフセット320を指定するために使用され
る。
【0024】一実施例においては、40ビット物理アド
レススペースを使用し、8KBのサイズである小さいペ
ージと、64KBのサイズである小さいページと、64
KBのサイズである大きいページとを使用してそれをマ
ッピングするとする。この実施例では、物理アドレス3
10は40ビット2進数である。小さい(8KB)ペー
ジがアドレス指定されているとき、物理アドレス310
の13個の最下位ビット(LSb)で物理ページオフセ
ット320を表わす。物理アドレス310の27個の最
上位ビット(MSb)は、与えられた小さいページに関
わる物理ページ番号330を指定する。これに対し、大
きい(64KB)ページを使用している場合には、物理
アドレス310の16個の最下位ビットを使用して、大
きいページに関わる物理ページオフセット320を表わ
す。大きいページの場合、物理アドレス310の24個
のMSbを使用して、与えられた大きいページに関わる
所定の物理ページ番号330を指定する。
【0025】次に仮想アドレス340を参照すると、仮
想アドレス340は物理アドレス310の分割と同じよ
うに仮想ページオフセット350と、仮想ページ番号3
60とに分割されていることがわかる。与えられるペー
ジサイズに対して、仮想ページオフセット350は物理
ページオフセット320と等しい。典型的には、仮想メ
モリ技法を使用して大きい仮想アドレススペースを小さ
い物理アドレススペースにマッピングするので、与えら
れたページサイズに対して、通常、物理ページより仮想
ページの数のほうが多い。一実施例では、仮想アドレス
340は264の大きさの仮想アドレススペースを表わす
64ビット2進数である。8KBのサイズの小さいペー
ジを使用する場合、仮想ページオフセット350は仮想
アドレス340の13個のLSbであり、仮想ページ番
号は仮想アドレス340の51個のMSbである。同様
に、64KBのサイズの大きいページを使用する場合に
は、仮想ページオフセット350は仮想アドレス340
の16個のLSbであり、仮想ページ番号360は仮想
アドレス340の48個のMSbである。詳細な説明の
残りの部分を通して、特に指示のない限り、40ビット
の物理アドレススペースと、64ビットの仮想アドレス
スペースと、64KBの大きいページサイズ及び8KB
の小さいページサイズとをそれぞれ有する一実施例を説
明する。別の実施例では、仮想アドレススペース及び物
理アドレススペース、並びに大きいページ及び小さいペ
ージについて様々に異なるサイズを使用することができ
る。さらに、3つ以上のページサイズを使用できるよう
な代替実施例も存在する。また、仮想アドレススペース
より物理アドレススペースのほうが大きい代替実施例も
ある。
【0026】本発明の一実施例では、仮想アドレスから
物理アドレスへの変換を実行するために、ダイレクトマ
ッピング変換記憶バッファを使用する。この実施例にお
いては、変換記憶バッファは変換テーブルエントリ(T
TE)を含む。各TTEは1つの仮想アドレスから1つ
の物理アドレスへの特定の変換を実行させる。変換記憶
バッファが2の正の整数累乗個のTTEを含むように制
約されているならば、TSBのエントリの数の2を底と
する対数をNとしたとき、NビットのTSB索引370
を使用して、TSBバッファに直接にマッピングするこ
とができる。従って、512のエントリを有する変換記
憶バッファを採用する実施例においては、変換記憶バッ
ファに対する索引を9ビット2進数によって表わすこと
ができる。
【0027】概念の上では、仮想ページ番号360を2
つのフィールドに分割することができる。第1のフィー
ルドは仮想ページ番号360のN個の下位ビットであり
且つTSB索引370である。第2のフィールドは仮想
ページ番号360の残る上位ビットである。このフィー
ルドは変換記憶バッファターゲット380である。ター
ゲット380を使用して、TSB索引370により指定
される記憶場所に記憶されているTTEエントリが与え
られた仮想アドレス340に関わるTTEであるか否か
を判定することができる。そこで、512のエントリを
もつTSBの場合、与えられた仮想アドレスに関わる仮
想ページ番号360の9つのLSBはTSB索引370
を表わす。仮想ページ番号360の残りのMSbは変換
記憶バッファターゲット380を表わす。
【0028】以上説明したTSB索引付け方式に関わる
問題点は、仮想アドレスを変換すべき時点で、変換すべ
き仮想アドレスの仮想アドレススペースに対応するペー
ジサイズがわからないということである。ページサイズ
がわからないため、仮想アドレス340のどの部分が仮
想ページオフセット350に向けられ、どの部分が仮想
ページ番号360に向けられるかを確定することができ
ない。これが問題であるのは、TSB索引370は仮想
ページ番号360の既知の数の下位ビットであるように
定義されているが、ページサイズがわからないと、仮想
ページ番号360の下位ビットを確定できないからであ
る。この板ばさみを解決する方法は、考えうるページサ
イズごとにTSB索引370とTSBターゲット380
を計算し、次に、ページサイズごとに、TSBヒットが
見出されるまでそのページサイズに関わるTSB索引に
対応するTTEを検査するというものである。ページサ
イズごとにTSB索引に対応するTTEを検査した後に
ヒットが見出されなければ、TSBは要求された変換を
含んでおらず、より高いレベルの変換器(たとえば、B
ST)を採用することになる。
【0029】次に図4を参照すると、大きいページと小
さいページとに関わる変換テーブルエントリを混合する
変換記憶バッファが示されている。図4では、変換記憶
バッファ400は2N 個の変換情報要素アレイを記憶す
る連続する1組のメモリであることがわかる。従って、
タグ0 410とデータ0 420は共にTSB400
の第1の変換テーブルエントリを表わし、また、タグ2
N −1 430とタグデータ2N −1 440は共にT
SB400の最終変換テーブルエントリを表わす。
【0030】TTEを試験するときには、候補TTEの
タグフィールドを探索中のタグフィールドと比較する。
それらが一致しなければ、TTEは変換すべき仮想アド
レスに対応しない。これに対し、候補TTEのタグが変
換すべき仮想アドレスから計算したタグと一致する場合
には、変換すべき仮想アドレスに対する物理アドレスを
候補TTEの対応するデータフィールドで発見すること
ができ、TSBヒットが起こったことになる。
【0031】そこで、タグ0 410とデータ0 42
0を含むTTEを試験しているとすれば、変換すべき仮
想アドレスに対応する変換記憶バッファターゲットと、
タグ0 410とを比較することになるであろう。タグ
0 410が変換すべき仮想アドレスの変換記憶バッフ
ァターゲットと一致すれば、データ0 420に記憶さ
れている情報は変換すべき仮想アドレスに対する物理ア
ドレスを提供するであろう。
【0032】先に説明した通り、2つのページサイズ
(大きいものと小さいもの)をマッピングする変換記憶
バッファ400がある場合には、ヒットがあるか否かを
知るために、TSB400の2つのエントリを検査する
ことになる。小さいポインタ460は、小さいページサ
イズの仮想アドレスについてヒットが起こったか否かを
判定するために試験すべきTSB400の候補TTEを
指示し、大きいポインタ470は、変換すべき仮想あど
れすが大きいページサイズの仮想アドレスである場合に
ついて、TSBヒットが起こったか否かを判定するため
に使用すべきTSB400の候補TTEを指示する。
【0033】基底450は変換記憶バッファ400の始
まりを指示する。各々のTTEのサイズはわかっている
ので、与えられるTSB索引について、TSB索引と個
々のTTEのサイズとの積に基底450のアドレスを加
算することにより、TSB400に対するポインタを計
算することができる。基底450を仮想アドレスとして
指定することができるので、変換記憶バッファに対する
ポインタも仮想アドレスとすることができる。変換記憶
バッファ400の全体を、他のいかなるメモリオブジェ
クトと全く同じように、仮想メモリに記憶することがで
きる。従って、先に述べた通り、データ記憶キャッシュ
を揺するコンピュータシステムの実施例においては、T
SB400の全て又は一部がデータ記憶キャッシュに入
れられたり、待避させられたりすることになる。TSB
400の候補TTEをデータキャッシュで利用できる場
合には、変換記憶バッファのルックアップは非常に速
い。
【0034】TSB400を仮想索引付けする場合に
は、TSB400をアクセスするために使用されるポイ
ンタそれ自体を仮想アドレスから物理アドレスに変換す
る必要があるので、再帰的仮想アドレス変換が要求され
る。再帰的仮想アドレス変換は数多くの方法で実行可能
である。一実施例では、ポインタ変換が常に変換索引バ
ッファ内で利用可能であるように、TSBに対するポイ
ンタの仮想アドレスに関わる変換情報をTLBにロック
される変換索引バッファの1エントリに記憶する。
【0035】複数のTSBを実現することにより、セッ
トアソシエーティブTSBを有効に構成することが可能
である。セットアソシエーティブTSBの実施例では、
TSB400のような追加の変換記憶バッファは少なく
とも1つある。この実施例においては、TSBごとに大
きいポインタと小さいポインタを計算し、各ページサイ
ズについてTSBごとに1つのTTEを検査する。TS
B400に追加のTSBを付随させる場合、TSB40
0の大きいポインタにTSB400のサイズを加算する
ことにより、追加のTSBに対する大きいポインタを計
算する。同様に、TSB400の小さいポインタにTS
B400のサイズを加算することにより、追加のTSB
に対する小さいポインタを計算する。
【0036】次に図5を参照すると、変換記憶バッファ
のサンプル変換テーブルエントリが示されている。図5
では、変換テーブルエントリ500はTSBタグ510
と、TSBデータ550の2つの部分に分割されている
ことがわかる。TSBタグフィールド510は、変換テ
ーブルエントリ500が変換すべき仮想アドレスに対応
するか否かを判定するために必要な全ての情報を含む。
一方、TSBデータフィールド550は変換すべき仮想
アドレスを物理アドレスに変換するために必要な全ての
情報を提供する。
【0037】次にTSBタグ510を参照すると、TS
Bタグ510は3つのフィールドから構成されているこ
とがわかる。第1のフィールドは、TTE500により
変換される仮想アドレスに関わる仮想アドレス520の
上位ビットを含む。フィールド520に含むべき仮想ア
ドレスの上位ビットの最小数は、最小ページマッピング
に関わるページオフセット中のビット数と、TSB索引
を指定するために要求されるビット数との和を仮想アド
レス中のビットの総数から減算することにより計算でき
る。そこで、マッピングすべき最小ページサイズが8K
Bであり、TSBのエントリ数は512であり且つ仮想
アドレススペースは64ビットである例においては、T
TE500に対応する仮想アドレスの42個の上位ビッ
ト(64−(13+9))をフィールド520に記憶す
る。尚、この例では、大きいページサイズが64KBで
ある場合には、大きいページに関わる一致を判定するた
めに仮想アドレスの38個の上位ビット(64−(16
+9))のみが要求されるという点に注意する。最大ペ
ージに関わるページオフセット中のビット数が最小ペー
ジのページオフセットのビット数と、仮想索引を表わす
ために要求されるビットの数との和を越えない限り、大
きいページについて上位ビットの「余剰ビット」を含め
ることに害はない。そのようにすることの利点は、この
ような状況の下で、変換すべき仮想アドレスに対して1
つのTSBタグを計算するだけで良いこと及びページサ
イズごとに1つのTSBタグを候補TSBタグと比較で
きることである。この制約に違反する代替実施例におい
ては、ページサイズごとに1つのTSBタグを計算し
て、そのページサイズに関わる対応する候補TSBタグ
と比較することが可能である。
【0038】図5のTTEの実施例では、各コンテキス
トが別個の仮想アドレススペースを有することができる
が、あるいは、いくつかのコンテキストが同一の仮想ア
ドレススペースを使用し、それにより、「大域」仮想ア
ドレススペースを形成することも可能である。大域ビッ
ト540は、変換テーブルエントリ500がコンテキス
トに特有のものであるか否かを指定するために使用され
る。大域ビット540がセットされていれば、変換を要
求するコンテキストにかかわらず、フィールド520が
変換すべき仮想アドレスの上位ビットと一致するたびに
ヒットが起こる。これに反して、大域ビット540がセ
ットされていない場合には、変換テーブルエントリ50
0に対応する仮想アドレスはコンテキストに特有のもの
であり、フィールド520が変換すべき仮想アドレスの
上位ビットと一致し且つコンテキスト番号フィールド5
30に記憶されている値が変換すべき仮想アドレスを要
求するコンテキストに関わるコンテキスト番号と一致す
る場合に限ってヒットが起こる。
【0039】次にTSBデータフィールド550を参照
すると、TSBデータ550はページ属性フィールド5
60と、物理ページ番号フィールド570と、ページサ
イズフィールド580と、有効ビット590とを含む。
物理ページ番号フィールド570は、TTE500によ
り変換される仮想アドレスに対応する物理ページ番号を
含む。物理ページ番号570は、マッピングに際して使
用されている最小ページサイズについて物理ページ番号
を指定するために要求されるのと同じ数のビットが割当
てられているフィールドである。従って、物理アドレス
スペースが40ビットによって指定され且つ最小物理ペ
ージマッピングは8KBページである場合には、物理ペ
ージ番号フィールド570の大きさは27ビット(40
〜13)である。変換テーブルエントリ500が最小ペ
ージサイズマッピングより大きいページサイズに関わる
マッピングに対応する場合には、物理ページ番号フィー
ルド570の適切な数の上位ビットのみを使用して、変
換テーブルエントリの物理番号を含むようにし、残る下
位ビットは無視される。そこで、64KBページを変換
しており且つ最小ページサイズは8KBである場合に
は、その変換の物理ページ番号を指定するために物理ペ
ージ番号フィールド570の24個の上位ビットのみが
必要とされ、物理ページ番号フィールド570の残る3
つの下位ビットは無視されるであろう。
【0040】図5の変換テーブルエントリ500の実施
例においては、TSBデータ550の最下位ビットを使
用して、変換すべきページのページ属性560を記憶す
る。ページ属性の例は、変換のページをキャッシングで
きるか否か又はページが読取り/書込み特権を有する
か、読取り専用特権を有するかを指示するビットであ
る。
【0041】TSBデータフィールド550はページサ
イズフィールド580をも含む。この実施例では、使用
すべき2つのマッピングを可能な4つのページサイズか
ら成るユニバースから選択する。従って、この実施例に
おいては、ページサイズフィールド580は2ビットの
大きさであり、これを使用して、変換テーブルエントリ
500のページに対応する可能な4つのページサイズの
うちのページサイズを指定することができる。
【0042】最後に、TSBデータフィールド550は
その最上位ビットである有効ビット590を有する。有
効ビットフィールド590がセットされていれば、TT
E500に記憶されている変換は有効であり、それを使
用することができる。これに対し、有効ビット590が
セットされていない場合には、変換テーブルエントリ5
00は有効ではなく、それを使用して変換を実行するこ
とは不可能である。以下に図9に関連して論ずるが、T
SBデータフィールド550の最上位ビットに有効ビッ
トを導入することによって、この実施例は、数の表示の
最上位ビットにおいて整数の符号が指定されるというこ
とを活用する。以下の説明する通り、変換記憶バッファ
で有効変換が見出されたときに効率良く分岐するために
否定時分岐命令を使用できる。
【0043】次に図6を参照すると、TSBタグターゲ
ット及びTSBポインタを構成するために一実施例で使
用されるハードウェアが示されている。図6では、タグ
アクセスレジスタ610は、変換すべき仮想アドレスを
要求するコンテキストのコンテキスト番号と、変換すべ
き仮想アドレスの、変換記憶バッファのルックアップに
より要求される上位ビットとを含むレジスタである。す
なわち、最小ページサイズが8KBページであり且つ仮
想アドレススペースは64ビットにより指定されるよう
な実施例においては、タグアクセスレジスタ610は、
変換すべき仮想アドレスの51個の上位ビットタグアク
セスレジスタ610の51個の上位ビットに記憶する6
4ビットレジスタである。この実施例では、コンテキス
ト番号を13ビット以下で表現できるので、仮想アドレ
ス変換を要求したコンテキスト番号を記憶するためにタ
グアクセスレジスタ610の13個の下位ビットを使用
する。
【0044】変換索引バッファのルックアップの失敗後
に変換記憶バッファのルックアップを実行している場
合、変換記憶バッファのルックアップの実行を要求した
ときに、タグアクセスレジスタ610は変換索引バッフ
ァにより充填されるであろう。これに反し、変換記憶バ
ッファをレベルIの変換器として使用している場合に
は、アドレス変換を要求した時点で、タグアクセスレジ
スタ610はアドレス変換を要求しているCPUにより
充填されるであろう。タグターゲット論理は、検査すべ
き変換記憶バッファの各変換テーブルエントリのTSB
タグと比較すべきTSBタグターゲットでTSBタグタ
ーゲットレジスタ630を充填するビットシフティング
論理である。
【0045】同様に、TSBポインタ論理640はタグ
アクセスレジスタ610に記憶されている値を取り出
し、ページサイズごとに1つのTSBポインタを計算す
る。次に、それらのTSBポインタをTSBポインタレ
ジスタ650に記憶する。TSBポインタの計算を実行
するために、TSBポインタ論理640にTSBパラメ
ータ660を供給する。TSBパラメータ660に記憶
されている値は、オペレーティングシステムを初期設定
する時点でセットされる。別の実施例においては、パラ
メータは動的パラメータであり、必要に応じて変化す
る。たとえば、コンテキスト切替えの間にTSBパラメ
ータの値を変化させることができる。TSBパラメータ
660に関する情報をレジスタに記憶させることによっ
て、TSBを構成するに際して高度の融通性を維持でき
る。この融通性があるため、特定のコンピュータシステ
ム実現形態に対して最も有効に動作するようにTSBを
同調することができるのである。
【0046】図6に示す実施例では、初期設定時にセッ
トできるTSBパラメータ660はTSBスプリット6
62と、TSB基底664と、ページサイズ数666
と、ページサイズ668と、TSBサイズ670とを含
む。パラメータであるTSBスプリット662は1ビッ
トパラメータである。TSBスプリットが零にセットさ
れているとき、図4の変換記憶バッファのような変換記
憶バッファ構造が成立する。その構造においては、大き
いページと小さいページの変換テーブルエントリを同じ
変換記憶バッファに混合して記憶し、大きいポインタと
小さいポインタは同じ変換テーブルエントリアレイのエ
ントリを指示する。
【0047】次に図7を参照すると、別の変換記憶バッ
ファ700が示されている。この構造は、図6のパラメ
ータ、TSBスプリット662を1と等しくなるように
セットしたときに実現される。図7の変換記憶バッファ
700は2つの別個の部分変換記憶バッファに分割、す
なわち、二分割されている。小さいページ用部分変換記
憶バッファ710と、大きいページ用部分変換記憶バッ
ファ750とがある。小さいページ用部分変換記憶バッ
ファ710は小さい基底の基底値740と、小さいペー
ジに関わる変換テーブルエントリのアレイに対する小さ
いポインタ745のポインタ745とを有する。同様
に、大きいページ用部分変換記憶バッファ750は大き
い基底の基底値780と、大きいページ変換テーブルエ
ントリに対する大きいポインタのポインタ785とを有
する。
【0048】変換記憶バッファ400の構造と比べた場
合の変換記憶バッファ700の構造の利点は、変換記憶
バッファ400でヒットが見出されたときに、実際のヒ
ットが実現されたことを確認できるようになる前に、候
補のページサイズを検査することが必要である。これに
対し、変換記憶バッファ700はその構造中にページサ
イズを暗黙のうちに含んでおり、従って、候補がタグタ
ーゲットと一致するとわかった後にページサイズを検査
する必要はない。これは、小さいページ変換テーブル7
10が小さいページに関わる変換テーブルエントリのみ
から構成され、大きいページ変換記憶バッファ750は
大きいページに関わる変換テーブルエントリのみから構
成されているからである。
【0049】一方、実現形態によっては、変換記憶バッ
ファ700の構造より変換記憶バッファ400の構造の
ほうが効率良いこともある。これは、実現形態によって
は、仮想アドレスの変換が主として小さいページサイズ
変換又は大きいページサイズ変換のいずれかによって必
要とされるからである。そのような場合、小さいページ
用部分TSB710又は大きいページ用部分TSB75
0のいずれかはさほど利用されず、他方の部分TSBの
利用は過剰になってしまう。そのような場合には、部分
TSBの一方はスラッシングしており、他方はごくまれ
にアクセスされることになる。
【0050】再び図6を参照すると、パラメータのTS
Bスプリット662を含めることにより、変換記憶バッ
ファの構造を特定のシステムの要求に適合するように容
易に変更できる。ページサイズ数パラメータ662が2
にセットされていれば、TSBスプリットパラメータ6
62を1にセットした場合、分割は2つの部分TSBに
対して起こる。これに対し、ページサイズ数パラメータ
666が2以外の数である場合には、TSBスプリット
パラメータ662の設定によって、TSB構造を対応す
る数の部分TSBに分割させる。
【0051】そこでパラメータ、TSB基底664を参
照すると、TSBスプリットが指定されていなければ、
TSB基底664には唯一のTSB基底を記憶する。こ
れに対し、TSBスプリットが指定されている場合に
は、部分TSBの各々に関わる基底をTSB基底664
にパラメータとして記憶する。
【0052】フィールドページサイズ668は変換して
いるページの実際のサイズを記憶する。すなわち、大き
いページと小さいページがある場合には、ページサイズ
668には2つのエントリがあり、その一方のエントリ
は大きいページのサイズを含み、他方のエントリは小さ
いページのサイズを含む。別の実施例では、サイズをハ
ードウェアで暗示できるであろうと考え、従って、それ
らをレジスタに記憶させる必要はない。
【0053】最後に、パラメータ、TSBサイズ670
は特定の変換記憶バッファにおけるエントリの数を含
む。変換記憶バッファスプリットパラメータ662がセ
ットされている場合、TSBサイズは部分TSB中のエ
ントリの数を指定する。別の実施例では、部分TSBご
とに別個のTSBサイズがある。
【0054】TSBパラメータレジスタ660とタグア
クセスレジスタ610に記憶されている情報の全てを提
供されると、TSBポインタ論理640はTSBルック
アップ中に使用すべきTSBポインタを急速に計算し
て、この情報をTSBポインタレジスタ650に記憶す
ることができる。
【0055】次に図8を参照すると、TSBルックアッ
プの一実施例を表わすフローチャートが示されている。
TSBルックアッププロセス800は開始バブル810
で始まり、変換索引バッファのミスを検出することによ
りタグアクセスレジスタをロードさせるプロセスブロッ
ク820へ進む。プロセスブロック830では、タグア
クセスレジスタの内容と、TSBを記述するパラメータ
とを使用して変換記憶バッファポインタを計算する。T
SBタグターゲットもプロセスブロック830で計算す
る。一実施例においては、TSBポインタとタグターゲ
ットを図6に示すようにハードウェアにより計算する。
あるいは、ソフトウェアによってTSBポインタとタグ
ターゲットを計算することも可能である。
【0056】TSBポインタとタグターゲットを計算し
たならば、プロセスブロック840のプロセスを実行し
て、TSBポインタが指示する変換記憶バッファの変換
テーブルエントリの中の1つが変換すべき仮想アドレス
に関わる変換を含むか否かを判定するための検査を実行
する。TSBヒットを検査する手続きの一実施例につい
ては、以下に図9に関連してさらに詳細に説明する。
【0057】再び図8を参照すると、プロセスブロック
840でTSBヒットの検査手続きを実行した後、決定
ブロック850では、TSBヒットが起こったか否かを
判定するための試験を実行する。ヒットが起こっていれ
ば、決定経路854をたどってプロセスブロック860
へ進み、そこで、要求されている仮想アドレスから物理
アドレスへの変換を実行するために必要な変換データを
変換索引バッファにロードする。
【0058】図5に戻って簡単に説明すると、一実施例
では、変換索引バッファはTLBの変換エントリごとに
変換索引バッファタグと、変換索引バッファデータフィ
ールドとを有するような構造になっている。この実施例
においては、変換索引バッファデータフィールドは図5
の変換記憶バッファデータフィールド550と同じ構造
を有する。変換索引バッファタグフィールドは変換に対
する要求が出された時点でわかっている情報を有するの
で、変換索引バッファミスが検出されたとき、変換索引
バッファタグの構造に従うように形式設定された変換索
引バッファタグフィールドの内容でタグレジスタで充填
する。そこで、TSBヒットが起これば、変換記憶バッ
ファから変換索引データフィールドの内容を転送するだ
けで良い。変化エントリに関わる変換索引バッファタグ
は変換索引バッファのタグレジスタから直接に提供でき
る。さらに、変化記憶バッファデータフィールドは変換
索引バッファデータフィールドと同じ形式となるように
設定されているので、フィールドの内容の形式を再設定
する必要がないため、変換情報を変換索引バッファに急
速にロードすることができる。プロセスブロック860
で変換索引バッファに変換データをロードしたならば、
TSBルックアップ手続き800の処理は終端バブル8
80で終了する。
【0059】決定ブロック850に戻ると、TSBヒッ
トが起こらなかった場合には、処理は決定経路852に
沿ってプロセスブロック870へと続く。プロセスブロ
ック870では、TSBは変換すべき仮想アドレスに関
わる変換を含んでいないためにミスが起こっている。従
って、TSBミス処理手続きを実行することになる。
【0060】図2について簡単に説明すると、TSBミ
スに際して、ミス処理手続きは仮想メモリオペレーティ
ングシステムにより管理されている大きいソフトウェア
変換テーブル280を照会して、アドレス変換が存在し
ていれば、それを検索する。あるいは、ミス処理手続き
は、レベルIII の変換器を照会するのに先立って、レベ
ルIIとレベルIII との間の中間レベルの変換器を使用す
ることもできるであろう。中間レベル変換器の1例は、
さらに別の変換記憶バッファであろう。
【0061】次に図9を参照すると、TSBヒットが起
こったか否かを判定するために検査する手続きのフロー
チャートが示されている。図9では、TSBヒット検査
の手続き900は開始バブル910で始まり、変換記憶
バッファポインタと、タグターゲットとを各々のレジス
タから検索するプロセスブロック920へと進む。次
に、プロセスブロック930では、変換記憶バッファ
の、変換記憶バッファポインタにより指示される記憶場
所に記憶されている変換記憶バッファの候補タグを検索
する。これに続いて、プロセスブロック940では、対
応する変換記憶バッファの候補データを検索する。
【0062】プロセスブロック950では、ページサイ
ズごとの候補タグをターゲットタグに比較して試験す
る。決定ブロック960においては、一致が見出された
か否かを判定するために試験を実行する。一致が見出さ
れなかったならば、決定経路964をたどってプロセス
ブロック970に至り、ミスを宣言する。そこで、終端
バブル995をもって処理は完了し、この手続きから復
帰する。
【0063】これに対し、決定ブロック960でタグの
一致が検出された場合には、決定経路962をたどって
決定ブロック980へ進み、そこで、一致した変換テー
ブルエントリが有効であるか否かを判定するために試験
を実行する。成功を収めた候補の有効ビットデータフィ
ールドが上位ビットである場合、先に論じた通り、否定
時分岐命令により有効ビットを試験することができる。
【0064】決定ブロック980で、一致する変換テー
ブルエントリが無効であると判定されたならば、決定経
路982をたどってプロセスブロック970に至り、ミ
スを宣言する。これに対して、一致する変換テーブルエ
ントリが有効である場合には、決定経路984をたどっ
てプロセスブロック990へ進み、そこで、終端バブル
995で手続きを終了する前にヒットを宣言する。
【0065】一実施例では、手続き900をハードウェ
アで実現している。そのため、ページサイズごとにポイ
ンタにより指示されるTSBエントリの検査を並行して
実行することができる。あるいは、ソフトウェアの実行
を経て手続き900を実行する。ソフトウェアによる実
現は、ハードウェアの場合と比べて大きな融通性を与え
る。さらに、手続き900は、手続きの中の演算をイン
タリーブできるような構造をもつ。インタリーブによっ
て、検査を実行するために必要な時間の量を直線的に増
加させることなく、変換記憶バッファの複数のエントリ
の検査が可能になる。すなわち、TSBエントリを1つ
しか試験しなかったならば、中央処理装置が完了するの
に長い待ち時間を要する演算を待機している間に、遊休
サイクルが「浪費」されてしまうであろう。ページサイ
ズごとに1つのTSB変換テーブルエントリを検査する
ので、第1のページサイズに関わる試験によって発生し
た遊休サイクルのいくつかを使用して、第2のページサ
イズに関わる試験を実行できる。さらに、スーパースカ
ラプロセッサ(すなわち、複数の命令を並行して実行す
ることができるプロセッサ)で手続き900を実行する
場合には、ソフトウェアで実現されているときでも、T
SBの変換テーブルエントリを並行して検査できる。
【0066】本発明の方法及び装置を現時点で好ましい
実施例及び代替実施例によって説明したが、特許請求の
範囲の趣旨の範囲内の変形及び変更を伴って本発明を実
施しうることは当業者には認められるであろう。従っ
て、この明細書と図面は限定的な意味ではなく、例示と
してみなされるべきである。
【図面の簡単な説明】
【図1】 仮想アドレスから物理アドレスへのアドレス
変換を実行するために本発明の一実施例を使用するコン
ピュータシステムを示す図。
【図2】 仮想アドレスから物理アドレスに変換するた
めの多重レベル方式を示す図。
【図3】 物理アドレスと仮想アドレスとの関係、並び
に仮想アドレスから変換記憶バッファ索引及びターゲッ
トを導出する方法を示す図。
【図4】 複数のページサイズを支援する変換記憶バッ
ファの一実施例を示す図。
【図5】 変換記憶バッファ内部の変換テーブルエント
リを示す図。
【図6】 タグターゲット及び変換記憶バッファポイン
タを急速に導出するための本発明によるハードウェア論
理の使用を示す図。
【図7】 複数のページサイズを支援する変換記憶バッ
ファの代替実施例を示す図。
【図8】 本発明の一実施例により実行されるような変
換記憶バッファルックアップを示すフローチャート。
【図9】 変換記憶バッファヒットを検査するために本
発明の一実施例により採用されるような手続きのフロー
チャート。
【符号の説明】
100…コンピュータシステム、110…中央処理装
置、120…メモリバス、130…一次メモリ、140
…二次メモリ、150…変換索引バッファ(TLB)、
160…変換記憶バッファ(TSB)、170…データ
キャッシュ、220…変換索引バッファ(TLB)、2
50…変換記憶バッファ(TSB)、280…大きいソ
フトウェア変換テーブル(BST)、310…物理アド
レス、320…物理ページオフセット、330…物理ペ
ージ番号、340…仮想アドレス、350…仮想ページ
オフセット、360…仮想ページ番号、370…TSB
索引、380…変換記憶バッファターゲット。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グレン・アール・アンダーソン アメリカ合衆国 94306 カリフォルニア 州・パロ アルト・ウエスト チャールス トン ロード・280 (72)発明者 スティーブン・エイ・チェッシン アメリカ合衆国 94043 カリフォルニア 州・マウンテンビュー・フライン アヴェ ニュ ナンバー7・201 (72)発明者 シン・イプ・コング アメリカ合衆国 94025 カリフォルニア 州・メンロ パーク・オリーブ ストリー ト・330 (72)発明者 チャールズ・イー・ナラド アメリカ合衆国 95051 カリフォルニア 州・サンタ クララ・ブレイク アヴェニ ュ・92 (72)発明者 マドゥーサドハン・タルーリ アメリカ合衆国 53705 ウィスコンシン 州・マディソン・プリンストン アヴェニ ュ・ナンバーケイ・304

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 仮想アドレスを物理アドレスに変換する
    方法において、 仮想ページオフセットと、仮想ページ番号とを含み、1
    より大きい正の整数をLとするときにL種類のページサ
    イズのうちの1つである未知のページサイズによってマ
    ッピングされている変換すべき仮想アドレスを受ける過
    程と; 次に、(i) 変換すべき仮想アドレスが試験ページサイ
    ズのマッピングに対応すると仮定することにより、変換
    すべき仮想アドレスから、変換記憶バッファの特定の仮
    想アドレスを識別する候補タグと、その特定の仮想アド
    レスに対応する特定の物理アドレスを識別する候補デー
    タとから成る1つの候補変換テーブルエントリを指示す
    る変換記憶バッファに対するポインタを計算し、 (ii) 変換すべき仮想アドレスが試験ページサイズの
    マッピングに対応すると仮定することにより計算して、
    変換すべき仮想アドレスから仮想アドレスターゲットタ
    グを抽出し、 (iii) ターゲットタグを候補タグと比較し、 (iv) ターゲットタグが候補タグと一致すれば、変換
    すべき仮想アドレスに対応する物理アドレス変換として
    候補データを提供して、L個のページサイズの各々につ
    いて、L個のページサイズのうちの異なる1つを試験ペ
    ージサイズとなるように選択する過程とを有する方法。
  2. 【請求項2】 各ページサイズを使用して試験するたび
    に、その後、ターゲットタグが候補タグと一致していな
    い場合に変換が失敗したことを報知する過程をさらに含
    む請求項1記載の方法。
  3. 【請求項3】 仮想アドレスを物理アドレスに変換する
    方法において、 仮想ページオフセットと、仮想ページ番号とを含み、第
    1のページサイズ又は第1のページサイズとは等しくな
    い第2のページサイズである未知のページサイズによっ
    てマッピングされている変換すべき仮想アドレスを受け
    る過程と;変換すべき仮想アドレスは第1のページサイ
    ズのマッピングに対応すると仮定することにより変換す
    べき仮想アドレスから計算され、変換記憶バッファにお
    ける第1の特定の仮想アドレスを識別する第1の候補タ
    グと、第1の特定の仮想アドレスに対応する第1の特定
    の物理アドレスを識別する第1の候補データとから成る
    第1の候補変換テーブルエントリを指示する変換記憶バ
    ッファに対する第1のポインタと、変換すべき仮想アド
    レスは第2のページサイズのマッピングに対応すると仮
    定することにより計算され、変換記憶バッファにおける
    第2の特定の仮想アドレスを識別する第2の候補タグ
    と、第2の特定の仮想アドレスに対応する第2の特定の
    物理アドレスを識別する第2の候補データとから成る第
    2の候補変換テーブルエントリを指示する変換記憶バッ
    ファに対する第2のポインタを指示する過程と;変換す
    べき仮想アドレスは第1のページサイズのマッピングに
    対応すると仮定することにより第1の仮想アドレスター
    ゲットタグを計算し、変換すべき仮想アドレスは第2の
    ページサイズのマッピングに対応すると仮定することに
    より第2の仮想アドレスターゲットタグを計算して、変
    換すべき仮想アドレスから第1及び第2の仮想アドレス
    ターゲットタグを描出する過程と;第1のターゲットタ
    グを第1の候補タグと比較する過程と;第1のターゲッ
    トタグが第1の候補タグと一致するならば、変換すべき
    仮想アドレスに対応する物理アドレス変換として第1の
    候補データを提供する過程と;第2のターゲットタグを
    第2の候補タグと比較する過程と;第2のターゲットタ
    グが第2の候補タグと一致するならば、変換すべき仮想
    アドレスに対応する物理アドレス変換として第2の候補
    データを提供する過程とから成る方法。
  4. 【請求項4】 第1のターゲットタグが第1の候補タグ
    と一致せず且つ第2のターゲットタグが第2の候補タグ
    と一致しない場合に、変換が失敗したことを報知する過
    程をさらに含む請求項3記載の方法。
  5. 【請求項5】 仮想アドレスを物理アドレスに変換する
    装置において、 仮想ページオフセットと、仮想ページ番号とを含み、第
    1のページサイズ又は第1のページサイズとは等しくな
    い第2のページサイズである未知のページサイズによっ
    てマッピングされている変換すべき仮想アドレスを受け
    る受信手段と;受信手段に結合しており、変換すべき仮
    想アドレスは第1のページサイズのマッピングに対応す
    ると過程することにより、変換すべき仮想アドレスか
    ら、変換記憶バッファにおける第1の特定の仮想アドレ
    スを識別する第1の候補タグと、第1の特定の仮想アド
    レスに対応する第1の特定の物理アドレスを識別する第
    1の候補データとから成る第1の候補変換テーブルエン
    トリを指示する変換記憶バッファに対する第1のポイン
    タを計算すると共に、変換すべき仮想アドレスは第2の
    ページサイズのマッピングに対応すると仮定することに
    より、変換すべき仮想アドレスから、変換記憶バッファ
    における第2の特定の仮想アドレスを識別する第2の候
    補タグと、第2の特定の仮想アドレスに対応する第2の
    特定の物理アドレスを識別する第2の候補データとから
    成る第2の候補変換テーブルエントリを指示する変換記
    憶バッファに対する第2のポインタを計算する計算手段
    と;受信手段に結合しており、変換すべき仮想アドレス
    は第1のページサイズのマッピングに対応すると仮定す
    ることにより第1の仮想アドレスターゲットタグを計算
    し、変換すべき仮想アドレスは第2のページサイズのマ
    ッピングに対応すると仮定することにより第2の仮想ア
    ドレスターゲットタグを計算して、変換すべき仮想アド
    レスから第1及び第2の仮想アドレスターゲットタグ抽
    出する抽出手段と;計算手段及び抽出手段に結合してお
    り、第1のターゲットタグを第1の候補タグと比較する
    第1の比較手段と;第1の比較手段に結合しており、第
    1のターゲットタグが第1の候補タグと一致すれば、変
    換すべき仮想アドレスに対応する物理アドレス変換とし
    て第1の候補データを提供する第1の提供手段と;計算
    手段及び抽出手段に結合しており、第2のターゲットタ
    グを第2の候補タグと比較する第2の比較手段と;第2
    の比較手段に結合しており、第2のターゲットタグが第
    2の候補タグと一致すれば、変換すべき仮想アドレスに
    対応する物理アドレス変換として第2の候補データを提
    供する第2の提供手段とを具備する装置。
  6. 【請求項6】 第1の比較手段及び第2の比較手段に結
    合し、第1のターゲットタグが第1の候補タグと一致せ
    ず且つ第2のターゲットタグと第2の候補タグと一致し
    ない場合に、変換が失敗したことを報知する報知手段を
    さらに具備する請求項5記載の装置。
JP6236020A 1993-09-08 1994-09-06 仮想アドレスを物理アドレスに変換する方法及び装置 Withdrawn JPH07200409A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/118,398 US5479627A (en) 1993-09-08 1993-09-08 Virtual address to physical address translation cache that supports multiple page sizes
US118,398 1993-09-08

Publications (1)

Publication Number Publication Date
JPH07200409A true JPH07200409A (ja) 1995-08-04

Family

ID=22378330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6236020A Withdrawn JPH07200409A (ja) 1993-09-08 1994-09-06 仮想アドレスを物理アドレスに変換する方法及び装置

Country Status (4)

Country Link
US (2) US5479627A (ja)
EP (1) EP0642086B1 (ja)
JP (1) JPH07200409A (ja)
DE (1) DE69408922T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007052369A1 (ja) 2005-10-31 2007-05-10 Fujitsu Limited 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法
WO2008155825A1 (ja) 2007-06-19 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) * 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
DE69428881T2 (de) * 1994-01-12 2002-07-18 Sun Microsystems, Inc. Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
US5652872A (en) * 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
US5751990A (en) * 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
WO1996002035A1 (de) * 1994-07-09 1996-01-25 Gmd-Forschungszentrum Informationstechnik Gmbh Verfahren zum umsetzen einer virtuellen adresse in eine reale adresse
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5694567A (en) * 1995-02-09 1997-12-02 Integrated Device Technology, Inc. Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
US5897660A (en) * 1995-04-07 1999-04-27 Intel Corporation Method for managing free physical pages that reduces trashing to improve system performance
US5623692A (en) * 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5640591A (en) * 1995-05-15 1997-06-17 Nvidia Corporation Method and apparatus for naming input/output devices in a computer system
US5732404A (en) * 1996-03-29 1998-03-24 Unisys Corporation Flexible expansion of virtual memory addressing
US5809562A (en) * 1996-05-20 1998-09-15 Integrated Device Technology, Inc. Cache array select logic allowing cache array size to differ from physical page size
US5860147A (en) * 1996-09-16 1999-01-12 Intel Corporation Method and apparatus for replacement of entries in a translation look-aside buffer
US6175906B1 (en) * 1996-12-06 2001-01-16 Advanced Micro Devices, Inc. Mechanism for fast revalidation of virtual tags
US5897666A (en) * 1996-12-09 1999-04-27 International Business Machines Corporation Generation of unique address alias for memory disambiguation buffer to avoid false collisions
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
US5822576A (en) * 1997-03-26 1998-10-13 International Business Machines Corporation Branch history table with branch pattern field
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
US6182201B1 (en) * 1997-04-14 2001-01-30 International Business Machines Corporation Demand-based issuance of cache operations to a system bus
KR100263672B1 (ko) * 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
US6065010A (en) * 1997-06-10 2000-05-16 Daikin Us Corporation Computer implemented method of generating virtual files for sharing information of physical information file
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US5899994A (en) * 1997-06-26 1999-05-04 Sun Microsystems, Inc. Flexible translation storage buffers for virtual address translation
JP3264319B2 (ja) * 1997-06-30 2002-03-11 日本電気株式会社 バスブリッジ
US6192457B1 (en) 1997-07-02 2001-02-20 Micron Technology, Inc. Method for implementing a graphic address remapping table as a virtual register file in system memory
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6055617A (en) * 1997-08-29 2000-04-25 Sequent Computer Systems, Inc. Virtual address window for accessing physical memory in a computer system
US5999743A (en) * 1997-09-09 1999-12-07 Compaq Computer Corporation System and method for dynamically allocating accelerated graphics port memory space
US5986677A (en) * 1997-09-30 1999-11-16 Compaq Computer Corporation Accelerated graphics port read transaction merging
US5936640A (en) * 1997-09-30 1999-08-10 Compaq Computer Corporation Accelerated graphics port memory mapped status and control registers
US5905509A (en) * 1997-09-30 1999-05-18 Compaq Computer Corp. Accelerated Graphics Port two level Gart cache having distributed first level caches
US5949436A (en) * 1997-09-30 1999-09-07 Compaq Computer Corporation Accelerated graphics port multiple entry gart cache allocation system and method
US6057863A (en) * 1997-10-31 2000-05-02 Compaq Computer Corporation Dual purpose apparatus, method and system for accelerated graphics port and fibre channel arbitrated loop interfaces
US6157398A (en) 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US6289431B1 (en) * 1998-01-26 2001-09-11 Intel Corporation Method and apparatus for accessing more than 4 Gigabytes of physical memory with 4-byte table entries
US6625718B1 (en) * 1998-02-05 2003-09-23 Avaya Technology Corp. Pointers that are relative to their own present locations
US6081881A (en) * 1998-02-20 2000-06-27 Unisys Corporation Method of and apparatus for speeding up the execution of normal extended mode transfer instructions
US6108761A (en) * 1998-02-20 2000-08-22 Unisys Corporation Method of and apparatus for saving time performing certain transfer instructions
US6078338A (en) * 1998-03-11 2000-06-20 Compaq Computer Corporation Accelerated graphics port programmable memory access arbiter
US6230223B1 (en) 1998-06-01 2001-05-08 Compaq Computer Corporation Dual purpose apparatus method and system for accelerated graphics or second memory interface
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6594701B1 (en) 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
US6223239B1 (en) 1998-08-12 2001-04-24 Compaq Computer Corporation Dual purpose apparatus, method and system for accelerated graphics port or system area network interface
US6167476A (en) * 1998-09-24 2000-12-26 Compaq Computer Corporation Apparatus, method and system for accelerated graphics port bus bridges
US6457068B1 (en) 1999-08-30 2002-09-24 Intel Corporation Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation
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
JP2001184870A (ja) * 1999-12-27 2001-07-06 Mitsubishi Electric Corp 連想メモリ装置およびそれを用いた可変長符号復号装置
US6625715B1 (en) * 1999-12-30 2003-09-23 Intel Corporation System and method for translation buffer accommodating multiple page sizes
US7124286B2 (en) 2000-01-14 2006-10-17 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6973562B1 (en) * 2000-01-14 2005-12-06 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6598050B1 (en) * 2000-02-11 2003-07-22 Integrated Device Technology, Inc. Apparatus and method for limited data sharing in a multi-tasking system
US7133951B1 (en) 2000-02-29 2006-11-07 Bourekas Philip A Alternate set of registers to service critical interrupts and operating system traps
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6862689B2 (en) 2001-04-12 2005-03-01 Stratus Technologies Bermuda Ltd. Method and apparatus for managing session information
US7100028B2 (en) * 2000-08-09 2006-08-29 Advanced Micro Devices, Inc. Multiple entry points for system call instructions
US7058791B1 (en) 2000-08-09 2006-06-06 Advanced Micro Devices, Inc. Establishing a mode indication responsive to two or more indications
US6807622B1 (en) * 2000-08-09 2004-10-19 Advanced Micro Devices, Inc. Processor which overrides default operand size for implicit stack pointer references and near branches
US6742103B2 (en) 2000-08-21 2004-05-25 Texas Instruments Incorporated Processing system with shared translation lookaside buffer
EP1182571B1 (en) * 2000-08-21 2011-01-26 Texas Instruments Incorporated TLB operations based on shared bit
US6742104B2 (en) 2000-08-21 2004-05-25 Texas Instruments Incorporated Master/slave processing system with shared translation lookaside buffer
EP1262875A1 (en) * 2001-05-28 2002-12-04 Texas Instruments Incorporated Master/slave processing system with shared translation lookaside buffer
US20020133742A1 (en) * 2001-01-16 2002-09-19 Hsiu-Ying Hsu DRAM memory page operation method and its structure
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US6549997B2 (en) * 2001-03-16 2003-04-15 Fujitsu Limited Dynamic variable page size translation of addresses
US6938144B2 (en) * 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
US6807617B2 (en) 2001-04-02 2004-10-19 Advanced Micro Devices, Inc. Processor, method and apparatus with descriptor table storing segment descriptors of varying size
ATE545909T1 (de) * 2001-05-28 2012-03-15 Texas Instruments Inc Multiprozessorsystem mit gemeinsamem adressenübersetzungspufferspeicher
US6996750B2 (en) 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
GB2395307A (en) * 2002-11-15 2004-05-19 Quadrics Ltd Virtual to physical memory mapping in network interfaces
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7089397B1 (en) 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
US7188229B2 (en) * 2004-01-17 2007-03-06 Sun Microsystems, Inc. Method and apparatus for memory management in a multi-processor computer system
US7334108B1 (en) 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7296139B1 (en) 2004-01-30 2007-11-13 Nvidia Corporation In-memory table structure for virtual address translation system with translation units of variable range size
US7451271B2 (en) * 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US20060004983A1 (en) * 2004-06-30 2006-01-05 Tsao Gary Y Method, system, and program for managing memory options for devices
US7390551B2 (en) * 2004-07-02 2008-06-24 Caterpillar Inc. System and method for encapsulation and protection of components
US7418572B2 (en) * 2004-08-18 2008-08-26 International Business Machines Corporation Pretranslating input/output buffers in environments with multiple page sizes
US7685400B2 (en) * 2004-12-15 2010-03-23 International Business Machines Corporation Storage of data blocks of logical volumes in a virtual disk storage subsystem
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US20060224857A1 (en) 2005-03-29 2006-10-05 O'connor Dennis M Locking entries into translation lookaside buffers
US7386669B2 (en) * 2005-03-31 2008-06-10 International Business Machines Corporation System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
JP4783229B2 (ja) * 2006-07-19 2011-09-28 パナソニック株式会社 キャッシュメモリシステム
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
US7957951B2 (en) * 2007-03-16 2011-06-07 Robert Bosch Gmbh Address translation system for use in a simulation environment
US20080276067A1 (en) * 2007-05-01 2008-11-06 Via Technologies, Inc. Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel
US9153211B1 (en) * 2007-12-03 2015-10-06 Nvidia Corporation Method and system for tracking accesses to virtual addresses in graphics contexts
US7930515B2 (en) * 2008-07-29 2011-04-19 International Business Machines Corporation Virtual memory management
WO2012015766A2 (en) 2010-07-28 2012-02-02 Rambus Inc. Cache memory that supports tagless addressing
CN103282890B (zh) * 2011-01-12 2015-11-25 株式会社索思未来 程序执行装置以及编译器系统
DE102011052510A1 (de) * 2011-08-09 2013-02-14 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Verarbeitung von Daten eines Steuergeräts in einem Datenkommunikationsgerät
JP2013073270A (ja) * 2011-09-26 2013-04-22 Fujitsu Ltd アドレス変換装置、演算処理装置及び演算処理装置の制御方法
US9152570B2 (en) * 2012-02-27 2015-10-06 Vmware, Inc. System and method for supporting finer-grained copy-on-write page sizes
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
WO2014016650A1 (en) * 2012-07-27 2014-01-30 Freescale Semiconductor, Inc. Circuitry for a computing system and computing system
US10216642B2 (en) * 2013-03-15 2019-02-26 International Business Machines Corporation Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
US9612970B2 (en) 2014-07-17 2017-04-04 Qualcomm Incorporated Method and apparatus for flexible cache partitioning by sets and ways into component caches
US10089238B2 (en) 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US9495303B2 (en) * 2015-02-03 2016-11-15 Intel Corporation Fine grained address remapping for virtualization
US9792116B2 (en) * 2015-04-24 2017-10-17 Optimum Semiconductor Technologies, Inc. Computer processor that implements pre-translation of virtual addresses with target registers
US10180908B2 (en) 2015-05-13 2019-01-15 Qualcomm Incorporated Method and apparatus for virtualized control of a shared system cache
US9424155B1 (en) 2016-01-27 2016-08-23 International Business Machines Corporation Use efficiency of platform memory resources through firmware managed I/O translation table paging
CN108139981B (zh) * 2016-08-11 2020-08-14 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
US10719451B2 (en) * 2017-01-13 2020-07-21 Optimum Semiconductor Technologies Inc. Variable translation-lookaside buffer (TLB) indexing
CN108804350B (zh) * 2017-04-27 2020-02-21 华为技术有限公司 一种内存访问方法及计算机系统
US11082231B2 (en) * 2017-12-29 2021-08-03 Intel Corporation Indirection directories for cryptographic memory protection
US10970390B2 (en) * 2018-02-15 2021-04-06 Intel Corporation Mechanism to prevent software side channels
US10642728B2 (en) * 2018-02-28 2020-05-05 Micron Technology, Inc. Storage class memory status
US10769076B2 (en) 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric
US11088846B2 (en) * 2019-03-28 2021-08-10 Intel Corporation Key rotating trees with split counters for efficient hardware replay protection
US20200320016A1 (en) * 2019-04-08 2020-10-08 Advanced Micro Devices, Inc. Method enabling virtual pages to be allocated with noncontiguous backing physical subpages
US12182033B2 (en) * 2021-12-01 2024-12-31 Samsung Electronics Co., Ltd. Address translation cache and system including the same

Family Cites Families (13)

* 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
US4285040A (en) * 1977-11-04 1981-08-18 Sperry Corporation Dual mode virtual-to-real address translation mechanism
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
JPS62237547A (ja) * 1986-04-09 1987-10-17 Hitachi Ltd アドレス変換方式
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
US5263140A (en) * 1991-01-23 1993-11-16 Silicon Graphics, Inc. Variable page size per entry translation look-aside buffer
DE4102245A1 (de) * 1991-01-24 1992-08-13 Ilka Maschinenfabrik Halle Gmb Sicherheitseinrichtung fuer kaelteaggregate mit ammoniak als kaeltemittel
EP0506236A1 (en) * 1991-03-13 1992-09-30 International Business Machines Corporation Address translation mechanism
EP0508577A1 (en) * 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
US5327372A (en) * 1992-01-17 1994-07-05 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device
US5465337A (en) * 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007052369A1 (ja) 2005-10-31 2007-05-10 Fujitsu Limited 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法
US7797494B2 (en) 2005-10-31 2010-09-14 Fujitsu Limited Arithmetic processor, information processing apparatus and memory access method in arithmetic processor
KR101006093B1 (ko) * 2005-10-31 2011-01-07 후지쯔 가부시끼가이샤 연산 처리 장치, 정보 처리 장치, 및 연산 처리 장치의메모리 액세스 방법
WO2008155825A1 (ja) 2007-06-19 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法
JPWO2008155825A1 (ja) * 2007-06-19 2010-08-26 富士通株式会社 演算処理装置および演算処理方法
JP4608011B2 (ja) * 2007-06-19 2011-01-05 富士通株式会社 演算処理装置および演算処理方法
US8296518B2 (en) 2007-06-19 2012-10-23 Fujitsu Limited Arithmetic processing apparatus and method

Also Published As

Publication number Publication date
EP0642086A1 (en) 1995-03-08
DE69408922D1 (de) 1998-04-16
US5479627A (en) 1995-12-26
US5956756A (en) 1999-09-21
DE69408922T2 (de) 1998-11-26
EP0642086B1 (en) 1998-03-11

Similar Documents

Publication Publication Date Title
JPH07200409A (ja) 仮想アドレスを物理アドレスに変換する方法及び装置
JP3577575B2 (ja) アドレス変換を行う装置及び方法
US9767038B2 (en) Systems and methods for accessing a unified translation lookaside buffer
US8799621B2 (en) Translation table control
CN111949572B (zh) 页表条目合并方法、装置及电子设备
US8296547B2 (en) Loading entries into a TLB in hardware via indirect TLB entries
US8151085B2 (en) Method for address translation in virtual machines
US7089398B2 (en) Address translation using a page size tag
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US6205531B1 (en) Method and apparatus for virtual address translation
US6073226A (en) System and method for minimizing page tables in virtual memory systems
JP2001175536A (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
JP2005538465A (ja) ページ・サイズ指標に基づきハッシュされる部分的タグを用いる変換索引バッファ
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
CN112631961A (zh) 一种内存管理单元、地址转译方法以及处理器
CN116594925B (zh) 一种地址转换系统、处理器、地址转换方法及电子设备
TWI590053B (zh) 選擇性預取實體接續快取線至包含被載入分頁表之快取線
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
JPH0371355A (ja) キヤツシユ検索装置および検索方法
JP2008511882A (ja) 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法
US6567907B1 (en) Avoiding mapping conflicts in a translation look-aside buffer
US6674441B1 (en) Method and apparatus for improving performance of an accelerated graphics port (AGP) device
JPS623354A (ja) キヤツシユメモリ・アクセス方式
US12450163B1 (en) Virtual memory circuit for selecting address space and page table
US20250181516A1 (en) Method and apparatus for translating virtual address for processing-in memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040513

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20040831