JPH08212136A - 仮想メモリ変換処理を効率的に共有する方法及び装置 - Google Patents

仮想メモリ変換処理を効率的に共有する方法及び装置

Info

Publication number
JPH08212136A
JPH08212136A JP7308105A JP30810595A JPH08212136A JP H08212136 A JPH08212136 A JP H08212136A JP 7308105 A JP7308105 A JP 7308105A JP 30810595 A JP30810595 A JP 30810595A JP H08212136 A JPH08212136 A JP H08212136A
Authority
JP
Japan
Prior art keywords
address
cpu
memory
page
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
JP7308105A
Other languages
English (en)
Inventor
Madhusudhan Talluri
マドフスダン・タルーリ
Yousef A Khalidi
ユーセフ・エイ・カリディ
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 JPH08212136A publication Critical patent/JPH08212136A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 TLBまたはページテーブルを用いた仮想
メモリ変換処理のより効率的な共有を図るための方法及
び装置を提供する。 【解決手段】 本発明に基づき、装置150は、CP
U151と共に作動するオペレーティングシステム16
2を有し、これは、異なる仮想メモリ変換エントリを識
別するアドレス識別ルーチンと、異なる仮想メモリ変換
エントリへ第1マスク値を割り当てるマスク割り当てル
ーチンと、TLB等に前記第1マスク値と対応するただ
1つのアドレスとしての、異なる仮想メモリ変換エント
リを書き込む、書き込みルーチンとを有するようにプロ
グラムされる。比較機構(164)は、変換リクエスト
仮想メモリ変換値の第2マスク値と、前記第1マスク値
とを比較して、両者が対応しているか否かを確かめる
が、対応している場合は、第1マスク値に対応するただ
1つのアドレスが仮想メモリ変換アドレスとして用いら
れることになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムの、仮想メモリアドレス(または、仮想メモリ変換
エントリ)と物理的メモリアドレスとの変換オペレーシ
ョンに関する。本発明は、特に、異なる処理の異なる仮
想アドレスに対して、1つの仮想メモリ変換エントリを
用いて、1つの物理的メモリアドレスにマッピングを行
うコンピュータシステムに関する。
【0002】
【従来の技術】図1には、CPU22を有する汎用コン
ピュータ20が示されており、CPU22はシステムバ
ス28を通して主メモリ(一般にランダムアクセスメモ
リ)24及び第2メモリ(一般にリスク記憶装置)26
に接続されている。キーボード、モニタ、プリンタ、ま
たはデータ収集カードのような入出力デバイス30もシ
ステムバス28に接続されている。CPU22は主メモ
リ24に格納された1つまたは2つ以上のコンピュータ
プログラムを実行する。コンピュータプログラムに記述
された殆どの命令及びデータは対応する仮想アドレスを
有する。次に、各仮想アドレスは主メモリ24内に位置
する物理的アドレスへと変換される。主メモリ24の中
に必要な情報が存在しない場合は、ページフォルトが発
生し、CPU22は必要な情報を第2メモリ26から主
メモリ24へロードする。
【0003】コンピュータに於いて仮想アドレスを使用
する技術は、一般に「仮想記憶方式」と呼ばれている。
実際、コンピュータは全て仮想記憶方式に依存すること
大である。仮想記憶方式によって、コンピュータの実際
のメモリ記憶容量を越えるアドレスの大きさを含むプロ
グラムを実行することができる。従って、プログラマー
はプログラム作成にあたってメモリサイズを考慮しなく
てすみ、またプログラムが、異なるメモリ容量のハード
ウェア環境間に於ける移植性を有することになる。
【0004】上記のように、仮想アドレスと物理的アド
レス間での変換が必要となる。仮想アドレスはプログラ
ムがローカルに使用するアドレスである。物理的アドレ
スは主メモリ24に於ける情報の実際の物理的位置を特
定するものである。
【0005】図2に示すのは、仮想アドレスと物理的ア
ドレス間の変換オペレーションである。主メモリ24に
格納されたコンピュータプログラム32には命令セット
が含まれており、そのような命令セットの要素の1つが
図2の34で示されている。命令34は、仮想アドレス
“0004734”(36)に対応するメモリの内容を
レジスタ“R”へ移動(“MOV”)させるコマンドで
ある。アドレスの数値は16進法で表されている。仮想
アドレス36は仮想ページ番号“0004”(38)を
有し、これは、仮想メモリページアドレスとも呼ばれ、
ページテーブル40にマッピングされる。ページテーブ
ル40はページテーブル変換エントリ42のセットを有
する。各ページテーブル変換エントリ42は仮想ページ
番号44、ページ枠に於ける有無ビット(valid bit)
46、及び物理的ページ番号48(物理的メモリページ
アドレスとも呼ばれる)を有する。有無ビットが(デジ
タル値の1に)セットされている場合は、物理的ページ
番号48が、仮想ページ番号38に対応して主メモリ2
4に存在していることを意味する。有無ビットがセット
されない場合は、ページフォルトが発生し、物理的ペー
ジ番号48はCPU22によって第2メモリ26に於い
て見つけられなければならない。物理的ページ番号48
は、主メモリ24に於けるメモリのページを特定する。
主メモリ24という言葉と物理的メモリという言葉とは
ここでは同じものを指す。
【0006】図2に於いては、仮想ページ番号が仮想ア
ドレスとして使用されているのが示されている。仮想ペ
ージ番号が、仮想アドレスを導出するエントリで置き換
えられ得ることは当業者には理解されよう。また、本明
細書に於いて、仮想ページ番号、または仮想メモリ変換
エントリに付された符号は、仮想アドレスを引き出すの
に用いられる全ての仮想ページ番号システム、若しくは
その方式を表すものとして用いられている。
【0007】完全な物理的なアドレス50には、物理的
ページ番号48及びページオフセット52が含まれる。
ページオフセット52は、必要なアドレスが存在するメ
モリのページに於ける列を特定するものである。ページ
オフセット52は、仮想アドレス36の仮想オフセット
部分54から(変換せずに)直接得られる。
【0008】要するに、仮想アドレス36から物理的ア
ドレス50を得るために、仮想アドレスの仮想ページ番
号38(この例では“0004”)が、ページテーブル
40に存在するページテーブル変換エントリ42へマッ
ピングされるのである。ページテーブル変換エントリ4
2が1にセットされた有無ビットを有する場合は、仮想
ページ番号に対応する物理的ページ番号が存在する。物
理的ページ番号(この例では16進法で“01FD”)
は、物理的アドレス50の一部分をなす。物理的アドレ
ス50の他の部分は、ページオフセット値52(この例
では“734”)であって、これは仮想アドレス36の
仮想オフセット部分54から得られる。
【0009】図3に示すのは、ページテーブル40に於
ける特定の物理的ページと物理的メモリ24内の異なる
物理的な位置との間の対応関係である。図3のページテ
ーブル40に於いては、有無ビットが1にセットされた
各エントリは物理的メモリ24の位置を示すポインタを
有する。有無ビットは0にセットされたページテーブル
のエントリに対しては、ページフォルトが発生し、メモ
リのページが第2メモリ26から設置されて物理的メモ
リ24に格納されなければならないことになり、その後
ページテーブル40のこれに対応する変更がなされる。
【0010】ページテーブル40の効率を改善するべ
く、近年のコンピュータは、特別なキャッシュメモリを
有し、これは直近に使用された変換処理を追跡するもの
である。直近の変換処理は格納されるが、これは1つの
仮想ページ番号に対する変換処理がひとたび用いられる
と、それは近い未来の時点で再び使用される蓋然性が高
いからである。この特別なアドレス変換キャッシュメモ
リは変換索引バッファ(TLB)と呼ばれ、ここでは符
号60で示されている。図1及び図3にはTLB60が
示されている。図3に於いて、TLB60がTLB変換
エントリ62のセットを有することが理解されよう。T
LB変換エントリ62は仮想ページ番号44、有無ビッ
ト46、及び物理的ページ番号48を有するのが一般的
である。
【0011】コンピュータプログラムを実行するCPU
22は、初めに、コンピュータプログラムからの各仮想
ページ番号とTLB60のエントリとを比較する。この
ページ番号とエントリとに一致が見られる(ヒットと呼
ぶ)場合は、TLB60からの物理的ページ番号が用い
られて前述のような方法で、物理的アドレス50を形成
する。
【0012】一般的には、TLB60はハードウェアに
於いて実現され、従って、ページテーブル40よりも少
ない数のエントリを有するものとなる。TLB60のサ
イズが小さいために、TLBミスが頻繁に発生する。T
LBミスが発生すると、ページテーブル40を照会し
て、物理的アドレスを定める。ページテーブル40が必
要な情報を有する場合は、この情報をページテーブル4
0からTLB60にロードすることができる。
【0013】TLB60から物理的アドレスを得る速度
は、ページテーブル40から物理的アドレスを得るより
も非常に早いので、TLB60に格納される情報量を改
善する努力が続けられている。このための1つの方法
は、TLB60の物理的なサイズを大きくすることであ
る。もちろん、この方法ではコストが掛かることにな
る。他の技術としては、TLBエントリの数を増やさず
に、TLB60によってマッピングされるメモリのサイ
ズを最大化する方法がある。この例としては、スーパー
ページ方式(superpages)及びパーシャルサブブロック
方式(partial-subblocking)を使用する方法がある。
多くの市販のチップのアーキテクチャでは一定の形式若
しくは他の形式のスーパーページ方式が使用されてお
り、その例としては、SPARC(登録商標)チップ
(サンマイクロシステムズ社:米国カリフォルニア州、
Mountain View)、Alpha(登録商
標)チップ(デジタルイクイップメント社:米国マサチ
ューセッツ州、Maynard)、PowerPC(登
録商標)チップ(モトローラ社:米国イリノイ州、Sc
haumberg)などがある。これらの方式は、所与
のメモリ領域をマッピングするのに必要とされるTLB
エントリ62の数を低減するための基本的な考え方を共
通のものとしている。
【0014】スーパーページ方式は、同じ処理に関する
連続的なベースページに対して幾つかのエントリを用い
る代わりに、1つのTLBエントリを用いることによっ
て、TLBの性能を改善するものである。この方法は、
コンピュータ上で実行される1種類の処理に対してのみ
適用されるという点で、幾らか限界がある。巨大な商用
システム及びマルチユーザーシステムは、同じメモリオ
ブジェクトを参照する多くの処理を有する。例えば、使
用頻度の高いライブラリ、プログラムテキストセグメン
ト、及び共有バッファ領域は、それぞれ1つの物理的ア
ドレスへの数百のマッピングを有する。この現象は、図
4に於いて示されている。
【0015】図4には、コンピュータシステム上で実行
される処理i、処理j、及び処理kが示されている。処
理iに於ける各メモリアドレスはコンテキスト番号(co
ntext number)(プログラム番号)によって識別される
が、これは図4に於いてCTX_iとして示されてお
り、仮想アドレスは図に於いてはVA_iとして示され
ている。アドレス(CTX_i、VA_i)は特定の物
理的ページ番号48(物理的メモリページアドレス)を
指す。同様に他の処理に於いて用いられる他のメモリア
ドレスは同じ物理的ページ番号を指す。即ち、処理jの
CTX_j、VA_j及び処理kのCTX_k、VA_
kは同じ物理的ページ番号48を指すのである。
【0016】図5に示すのは、図4に於いて示されたオ
ペレーションに対応するTLB60である。各TLB変
換エントリ62(TLB60の各列)はコンテキスト識
別値(context identification)(CTX)、仮想アド
レス(VA)、物理的ページ(PP)を有し、また有無
ビット及び保護ビットのような属性値を有する。物理的
ページ(物理的メモリページアドレス)PP_xはTL
B60に於いて3回現れることに注意されたい。即ち、
(CTX_i、VA_i)、(CTX_j、VA_
j)、及び(CTX_k、VA_k、VA_k)がそれ
ぞれ同じ物理的ページPP_Xへマッピングされる。各
仮想アドレスを同じ物理的ページにマッピングするのに
唯1つのTLBエントリを用いるようなTLBの必要性
は大変に高いものである。このようなTLBは、TLB
の1つのエントリを用いて複数の仮想アドレスをマッピ
ングすることができるので、1つのTLBが有する情報
の内容を著しく拡張する。
【0017】CPU22からの各アドレスは、(CPU
に於けるコンテキストレジスタからの)コンテキスト番
号(CTX_CPU)及び仮想アドレス(VA_CP
U)を含む。TLBもしくはページテーブルによって変
換されるべくCPUから受け取ったアドレスは、変換リ
クエスト仮想メモリ変換値と呼ばれる。
【0018】図5に示すように、フルアソシアティブ方
式TLB60に於けるデータ処理は同時並行的に実行さ
れる。即ち、CPU22からの各アドレスは、同時にT
LB60に於ける各値に与えられる。TLBの幾つかの
ページテーブルエントリに対して下の式が真の場合は、
TLB「ヒット」が宣言される。
【0019】
【数1】
【0020】この記述は、CPUからのコンテキスト識
別値(CTX_CPU)が、TLBに与えられたコンテ
キスト識別値(CTX_PTE、例えば図5に於けるC
TX_i)と等しく、CPUからTLBに与えられた仮
想アドレス(VA_CPU)が、TLBに於ける仮想ア
ドレス(VA_PTE、例えば図5に於けるVA_i)
と等しい場合はTLBヒットが生ずる、ということを示
している。図5には、CPX_CPUが各TLBエント
リに与えられ、一致が見られた場合「ヒット」が確認さ
れることが示されている。このオペレーションを行うた
めには周知のハードウェアが用いられる。
【0021】セットアソシアティブ方式TLBに於いて
は、CPU22からの各アドレスは同時にCTX_CP
U及びVA_CPUによって識別されたTLBセットの
各値に対して与えられる。
【0022】同じ物理的アドレスに対して複数の仮想ア
ドレスエントリを用いる方法の問題点はTLB60に限
られず、同じ問題が主メモリ24に於けるページテーブ
ル40をサーチするソフトウェアに関しても生ずる。同
じ物理的アドレスに変換する多くの仮想アドレスが存在
する場合、ページテーブル40は不必要に大きくなる。
この結果、このような大きなテーブルに於いて所望の変
換処理をサーチするために、時間が掛かることになる。
従って、同じ物理的メモリページアドレスにマッピング
される各仮想メモリページアドレスに対して、唯1つの
メモリ変換エントリを用いる主メモリページテーブル4
0の必要性は非常に高い。
【0023】
【発明が解決しようとする課題】従って、本発明は、T
LBまたはページテーブルを用いた仮想メモリ変換処理
のより効率的な共有を図るための方法及び装置を提供す
ることを目的とする。
【0024】
【課題を解決するための手段】上記の課題を解決するた
めの、本発明の実施態様の1つは、コンピュータに於け
る仮想メモリ変換処理を共有するような変換装置であ
る。装置は、CPUと共に作動するオペレーティングシ
ステムを有する。オペレーティングシステムは、アドレ
ス識別ルーチンを有するようにプログラムされており、
このアドレス識別ルーチンは、コンピュータ上で実行さ
れる複数の異なる処理について、物理的メモリに於ける
1つ以上の共通のページアドレスへのマッピングを行
う、異なる仮想メモリ変換エントリを識別するものであ
る。オペレーティングシステムはまた、異なる仮想メモ
リ変換エントリへ第1マスク値を割り当てるマスク割り
当てルーチンと、変換索引バッファ、若しくはページテ
ーブルに、前記第1マスク値と対応するただ1つのアド
レスとしての、異なる仮想メモリ変換エントリを書き込
む、書き込みルーチンとを有する。比較機構は、変換リ
クエスト仮想メモリ変換値の第2マスク値と、前記第1
マスク値とを比較して、前記第2マスク値が、前記第1
マスク値と対応しているか否かを確かめる。2つのマス
ク値が対応している場合は、第1マスク値に対応するた
だ1つのアドレスが仮想メモリ変換アドレスとして用い
られることになる。
【0025】本発明には、仮想メモリ変換処理を共有す
る方法が含まれる。この方法は、コンピュータ上で実行
される複数の異なる処理について、物理的メモリに於け
る1つ以上の共通のページアドレスへのマッピングを行
う、複数の異なる仮想メモリ変換処理を識別する過程を
含む。この方法はまた、複数の異なる仮想メモリ変換処
理に対して第1マスク値を割り当てる過程と、前記第1
マスク値と対応するただ1つのアドレスとして、複数の
異なる仮想メモリ変換処理を格納する過程とを有する。
この方法では、最後に、変換リクエスト仮想メモリ変換
値の第2マスク値と、前記第1マスク値とを比較して、
前記第2マスク値が、前記第1マスク値と対応している
か否かを確かめ、その結果により、変換リクエスト仮想
メモリ変換値を共通の物理的メモリページアドレスにマ
ッピングするか否かを決定する過程を有する。
【0026】本発明が、変換索引バッファを用いて実現
される場合、仮想アドレス変換処理の共有により、一定
の数の変換索引バッファエントリで、実質的により大き
な範囲の情報を包含できることになる。本発明が、ペー
ジテーブルを用いて実現される場合、ページテーブルエ
ントリ、及びそれを格納するのに必要なメモリの量は、
実質的に少なくなる。従って、ページテーブルの大き
さ、ページテーブルエントリをサーチするのにかかる時
間は、実質的に小さくなる。
【0027】
【発明の実施の形態】本発明は、TLB60及びページ
テーブル40に用いられるメモリ変換エントリを再定義
する方法及び装置に関する。本発明によれば、同一の物
理的メモリページアドレスにマッピングされる全てのメ
モリ変換エントリが、同等クラス(equivalency clas
s)に割り当てられる。この同等クラスは、関連するマ
スクスキームを有し、これにより、異なる仮想メモリ変
換エントリから同一の物理的メモリページアドレスへの
変換が可能となる。従って、異なる処理(例えば、図4
の処理i、処理j、処理k)からの異なる仮想メモリ変
換エントリは、TLB若しくはページテーブルに於ける
ただ1つのメモリ変換エントリを通して識別される。
【0028】本発明の技術は、異なる処理のページに対
するエントリを、1つのTLBエントリを共有する形に
することにより、TLBの性能を改善する。従って、各
TLBエントリがより多くの情報を表すことになる。本
発明をソフトウェアテーブルに適用した場合は、変換エ
ントリの共有によって、ページテーブルに必要なメモリ
サイズを小さくすることができる。更に、ページテーブ
ルのサーチに必要な時間が短縮される。
【0029】本発明は、CPUからのコンテキストデー
タ、及びTLBまたはメモリページテーブルのメモリ変
換エントリの再定義によるものである。即ち、本発明に
基づいて、マスクを画定するmビット、及び識別番号
(従来の技術の項で用いたCTX_CPU値)を画定す
るnビットを有する複数のビットワードの形式で表され
るコンテキストデータをCPUが処理する。本発明に基
づくメモリ変換エントリは、同等クラスビット、mビッ
トのマスク部分若しくはnビットの識別部分を含む、複
数のビットワードを有する。このシステムは図6に示さ
れている。CPUから与えられた処理コンテキスト情報
(CTX_CPU)は図の左側に示されており、一方メ
モリ変換エントリ情報(CTX_MTE)は図の右側に
示されている。
【0030】各メモリ変換エントリは、同等クラスに関
する情報を有する。同等クラスは、共通の物理的メモリ
ページアドレスを共有する全てのメモリオブジェクト
(メモリページテーブルエントリ若しくはTLBエント
リ)を含む。例えば、図5に於いて、TLB60の3つ
のエントリは同じ物理的メモリアドレス(PP_X)を
有し、これは、図4に於いて示すように、同じ物理的メ
モリ位置にマッピングを行う。この場合に於いては同等
クラスが存在するので、同等ビット(図6のEC)は1
にセットされる。次に、mビット長マスク(m bit long
mask)は特定の同等クラスに特徴を与えるのに用いら
れる。従って、例えば、図5のTLB60の3つのエン
トリは、1にセットされた同等クラスと、特定の同等ク
ラスを画定するmビットワードとを有する1つのTLB
エントリにまとめられる。この状態は図7に示されてい
る。図5のTLB60とは異なり、図7のTLB80
は、物理的メモリページアドレスPP_Xのみが、1つ
のメモリ変換エントリ(列)82と関連している。列8
2のCTX_MTE値は、1にセットされた同等ビット
84を有し、また、第2同等ビットが特定されているこ
とを表す2進法の2(0010)にセットされた、4つ
のmビット86を有する。
【0031】同等クラスが存在していない場合は、同等
ビットが0にセットされ、nビット長識別ワード(n bi
t long identification word)が、CTX_MTEワー
ドに於いて用いられる。後者の状態は、従来技術のメモ
リ変換オペレーションと等しい。
【0032】本発明によれば、CPUからのコンテキス
ト値(CTX_CPU)がメモリ変換エントリ(CTX
_MTE)に対するコンテキスト値と対応し、CPUか
らの仮想ページアドレス(VA_CPU)がメモリ変換
エントリの仮想ページアドレス(VA_MTE)と等し
い場合は、同等クラスに属するメモリ項目に対する、仮
想ページアドレスから物理的ページアドレスへのメモリ
変換オペレーションが行われる。CTX_CPU及びC
TX_MTEのデータフォーマットは図6の形であるこ
とに注意されたい。即ち、更に後述するように、このエ
ントリは同等クラス情報を処理することによって実行さ
れる。このオペレーションは以下のごとく数学的に記述
され得る。
【0033】
【数2】
【0034】関数f(CTX_CPU,CTX_MT
E)は以下のようにして実現される。
【0035】
【数3】
【0036】第1行ではCTX_MTEの同等ビット
(EC)をチェックする。ビットが1にセットされてい
る場合は、CPUからのワードのマスク値部分(CTX
_CPU.mask)が、メモリエントリのワードのマ
スク値部分(CTX_MTE.mask)と対応してい
るが否かを確認するオペレーションを行う。これらの値
は等しい値である必要はない。第2行の“&”によって
特定される論理和オペレーションが非ゼロ値を戻した場
合は、ブール値「真」が戻され、これはマスクの一致が
みられることを示している。例えば、2進法のシステム
では、送られたCTX_CPU.mask値が“001
0”で、CTX_MTE.mask値が“0010”な
らば、第2行のオペレーションは値“0010”を戻
す。これは非ゼロ値であり、ブール値が「真」であるこ
とを示している。一方、送られたCTX_CPU.ma
sk値が“1001”で、CTX_MTE.mask値
が“0110”ならば、第2行のオペレーションは値
“0000”を戻す。これはゼロ値であり、ブール値が
「偽」であることを示している。ブール値「真」は、2
つの値に一致がみられることを表し、一方、ブール値
「偽」は一致がみられないことを表している。
【0037】CPUからのマスク値(CTX_CPU.
mask)と、メモリエントリからのマスク値(CTX
_MTE.mask)とは不要であることに注意された
い。また、所与の同等クラスの対する多くのコンテキス
ト値が存在し得ることを思い出されたい。CTX_MT
E.mask項目は全てのクラスをマッピングする。C
PUから送られた値(CTX_CPU.mask)でブ
ール値「真」が生成される場合はすべて、同等クラスと
の一致が存在するのである。
【0038】コードの残りの行は、同等クラスが存在し
ない場合の処理を行うものである。この場合の処理は、
従来の、同等クラスが存在しないことを前提とした処理
と同じ処理となる。第4行の記述は、CPUからの識別
ビット(CTX_CPU.id)がメモリ変換エントリ
からの識別ビット(CTX_MTE.id)と等しい場
合、ブール値「真」が戻される、ということを表してい
る。図6から、この値がnビット量であることを思い出
されたい。
【0039】図4の例は、3つの処理セットが1つの物
理的ページアドレスにマッピングされる状態を示してい
る。この状態の特徴は、1つの同等クラスが用いられて
いる点である。即ち、1つの同等クラスが1つのページ
をマッピングするのである。CTX_CPU.mask
により、同等クラスの一定の番号が特定されるので、1
つの物理的アドレスの集合を1つの同等クラスがマッピ
ングするように、本発明が拡張され得る。例えば、1つ
の同等クラスが、ライブラリーファイル、VA_1にマ
ッピングされるlibc、VA_2にマッピングされる
libnsl、及びVA_3にマッピングされるlib
fooを表すことになる。
【0040】CTX_MTE.maskが1つまたは2
つ以上の同等クラスの識別をし得ることも理解されよ
う。例えば、第2同等クラスが、ファイル<VA_1に
マッピングされるlibc、VA_4にマッピングされ
るlibX>を表す場合、libcに属するページに対
するCTX_MTEは、CTX_MTE.maskに於
いて2つのビットセットを有することにより両同等クラ
スを表す。
【0041】図7には比較機構90が示されており、こ
れはCPUからの値(CTX_CPU,VA_CPU)
とTLB80に於ける値とを比較するのに用いられる。
比較オペレーションは同時並行的に行われる。図8に示
すのは1つのセル92であって、これは、CTX_MT
Eワードからの情報の1ビットとの比較を行うのに用い
られるものである。図9に示すのはセルのセット92A
〜92Hであり、結合されて、8ビットCTX_MTE
ワードと16ビットCTX_CPUワードとを比較する
回路を形成する。
【0042】図8には、一般にTLBで用いられるセル
に相当する標準領域(standard region)93が示され
ている。標準領域93に入力された「ワード」は、CT
X_MTEワードからのmまたはnビットをロード若し
くは格納するのに用いられる一方、PIDライン99
は、識別タグCTX_CPUビットをロードするのに用
いられ、反転PIDライン98はPIDビットを反転し
てロードする。
【0043】標準領域93は、マスクライン94、反転
マスクマッチライン96、トランジスタQ1、及びトラ
ンジスタQ2を有するように設けられている。マスクラ
イン94はマスクタグCTX_CPUビットをロードす
る。トランジスタQ1、Q2は、格納されたCTX_M
TEビットとマスクライン94上のマスクビットとの間
でNANDオペレーションを実行する。一致が見られる
場合は、反転マスクマッチラインがローレベルの信号を
送る。一致がみられない場合は、反転マスクマッチライ
ンがハイレベルの信号を送る。次に、図9に示すよう
に、インバータ100により信号が逆にされて、AND
オペレーションが効率的に実行される。
【0044】図9に示すモード回路102は、同等クラ
スビットを読み取る。同等クラスビットがハイレベルに
ある場合は、反転マスクマッチラインが選択され、そう
でない場合は、マッチラインが選択され、回路は従来の
ように動作して、CTX_CPU識別タグとCTX_M
TE識別タグとを比較する。本発明の実施において必要
とされる比較オペレーションを実行するべく設けられる
ハードウェアの構成には、様々なものが考えられること
は当業者には理解されよう。
【0045】全てのTLBエントリが同時に比較される
前記の方法(scenario)は、フルアソシアティブ方式T
LBを画定するものである。このような構成に於いて
は、TLBのどのラインも新しいTLB値をインサート
するのに用いられる。
【0046】本発明が、セットアソシアティブ方式TL
Bと共に実現される場合には、以下の技術を用いてTL
Bへのインサートがなされる。
【0047】
【数4】
【0048】この疑似コードは、同等ビットがゼロにセ
ットされる場合は、識別ビット上及び仮想アドレス“h
(id,VA)”上で、ハッシングが実行される。
【0049】従来より知られているように、ハッシング
では、要素Xが数として取り扱われ、ハッシュ関数と呼
ばれる算術関数fHが使用されて、物理的アドレスf
H(X)が計算される。数多くのハッシュ関数が使用さ
れるが、その1つは定数nによってXを除し、余りをア
ドレスとして使用するものである。例えば、fH(X,
Y)=XまたはYをnで除した余り、となる。
【0050】従って、セットアソシアティブ方式TLB
を用いて本発明を実現する1つの方法は、図6に示すよ
うに、CTX_MTE.idのnビットによって画定さ
れる数値上でハッシングを実行することである。
【0051】前記のコードの第2行は、同等クラスが確
認されない場合は、仮想アドレス上でのみ、ハッシング
が実行されることを表している。
【0052】セットアソシアティブ方式TLBに於ける
値の検索は、h(id,VA)を用いてTLBセットを
選択することにより行われる。このオペレーションは、
上記の疑似コードの第1行に相当する。このハッシュオ
ペレーションが失敗した場合は、ハッシュ関数h(0,
VA)が用いられる。このオペレーションは上記疑似コ
ードの第2行に相当する。このオペレーションのシーケ
ンスは逆にしてもよい。
【0053】セットアソシアティブ方式TLBによる本
発明の別の実施例では、多重プローブ法(multiple pro
be approach)が用いられる。この技術では、CTX_
CPUにセットされたビットによって、定数の組C
o...Cjが選択される(例えば、CTX_CPUの
上位のn/2ビットいずれかがセットされた場合は、C
oが選択され、そうでない場合は、Cjが選択され
る)。次に、h(id,VA)を用いた検索が行われ、
次にh′(Co,VA)を使用し、次にh′(Cj,V
A)を使用するなどして検索が行われる。ハッシュ関数
h()とh′()は異なる関数であり得ることに注意さ
れたい。
【0054】本発明のメモリ変換技術は、ここまでTL
Bに関連して述べられてきた。しかし、この技術はペー
ジテーブルにも同様に適用することができる。ページテ
ーブルについては従来の技術の項で図2及び図3を参照
しつつ述べた。図2及び図3に示すページテーブルの構
成は、記述子のセットとして実現され、この記述子セッ
トは異なる記述子間にポインタを有する。ページテーブ
ルの記述子セットは図10に於いて示されている。ペー
ジテーブル140は、記述子のセット144A〜144
Cを指すハッシュバケットアレイ(hash bucket arra
y)142を有する。言い換えれば、ハッシングを行う
ことによりハッシュアドレス(バケット)146が生成
されるのである。ハッシュアドレス146は記述子14
4Aを指す。記述子144Aは記述子144Bを指し、
記述子Bは記述子Cを指す。この形式のページテーブル
は従来より知られている。多重ページサイズを用いる特
に有用なページテーブルの構成は、「多重ページサイズ
を用いる仮想メモリコンピュータシステムアドレス変換
機構(Virtual Memory Computer System Address Trans
lation Mechanism that Supports Multiple Page Size
s)」という表題の、1993年10月20日に出願の
米国特許出願第08/139,549号明細書に記載さ
れている。この出願は、本発明の譲受人に譲渡されてお
り、ここではこの出願の明細書を参照されたい。
【0055】図10の各記述子144は、仮想メモリブ
ロックの開始仮想アドレス(VA_i,PTE)、マッ
ピングが存在するアドレススペースを表すCTX_CP
U、次の記述子を指すポインタ(next ptr)、
記述子の長さ(length_i)、及びページテーブ
ルエントリのアレイ(pte_i,1...pte_
i,len)を有する。
【0056】前述のように、ページテーブルは、TLB
ミスの後サーチされるのが一般的である。サーチオペレ
ーションは、TLBに関して述べたサーチと類似してい
る。仮想アドレスからの変換が必要なときは、CPU
は、VA_CPUワード及び、現在のCPUコンテキス
トを記述するワード(CTX_CPU)と共に制御ソフ
トウェアを提供する。次に、ハッシュ関数(h(CTX
_CPU,VA_CPU))が、これらの値で用いられ
て、図10のハッシュバケット146のような、ハッシ
ュ値が選択される。ハッシュバケット146は記述子1
44を指し示す。そして、各記述子の、前に定義した式
1を満足するものがサーチされる。
【0057】このサーチは以下の関数によって行われる
が、この関数は、その記述子がCPUからの仮想ページ
アドレスに対応するページテーブルエントリを有するか
否かを確認する関数である。
【0058】
【数5】
【0059】この関数は、求めるページテーブルエント
リを有する記述子を見つけるものである。上記のよう
に、各記述子は、ベースアドレスVA_PTEと長さl
engthとを有する。VA_CPU値が、記述子によ
って特定される範囲(desc.VA_PTE,des
c.VA_PTE+length)の中にある場合は、
記述子は、VA_CPUと一致がみられるページテーブ
ルエントリを有する
【0060】コードの第1行は、CPUからの仮想ペー
ジアドレス(VA_CPU)を特定し、求める記述子
(desc)が関数に入れられる。第2行の“if”ク
ローズは、CPUからの仮想ページアドレス(VA_C
PU)が、記述子のベース物理的ページアドレス(de
sc.VA_PTE)より大きいか否かをチェックす
る。第3行は、CPUからの仮想ページアドレス(VA
_CPU)が、記述子の最大のアドレス(desc.V
A_PTE+length)より小さいか否かをチェッ
クする。図10に示すように、項目の長さが記述子の長
さを特定することを想起されたい。CPUからのアドレ
ス(VA_CPU)が特定された範囲の中にある場合
は、相等関数(the equal function)は真(1)とな
り、そうでない場合は偽(0)となる。
【0061】記述子から実際の物理的ページ番号を戻す
べく、以下の関数が用いられる。
【0062】
【数6】
【0063】第1行に於いて有効関数が定義され、CP
Uからの仮想ページアドレス及びサブジェクト記述子が
入れられる。次に、インデックス値が定義されるが、こ
れは、ページテーブルの仮想アドレス番号(desc.
VA_PTE)から、CPUから受け取った仮想ページ
アドレス番号(VA_CPU)を引いて差を求め、この
差をページサイズで除したものとして定義される。例え
ば、CPUからの仮想ページアドレス番号(VA_CP
U)が8934で、相等関数により選択されたページテ
ーブルの仮想ページアドレス番号(desc.VA_P
TE)が8000で、ページサイズが100の場合、イ
ンデックス値i=(8934−8000)/100=9
(小数点以下は切り捨てられる)となる。次に、第3行
に記されているように、iはPTEアレイにインデック
スとして入れられる。前述の例によれば、インデックス
iはPTEアレイの10番目のエントリに入れられるこ
とが理解されよう。第4行は、有無ビットがここでセッ
トされているか否かを確認するテストを行う。有効な場
合は、真の1の値が戻され、そうでない場合は偽の0の
値が戻される。
【0064】ページテーブルに関して行われる前述のオ
ペレーションは、(図6に示すように)本発明に基づき
画定されたCTX_CPU値及びCTX_MTE値を利
用する。例えば、図10の各記述子144のCTXi_
CPUタームは、図6に示すCTX_MTEタームと置
き換えられる。即ち、CTXi_MTEタームは、同等
クラス及び、mマスクビットまたはn識別ビットを有す
る。同様に、各ページテーブル140は、mマスクビッ
トまたはn識別ビットを有するCTX_CPU値を入れ
られる。
【0065】ページテーブルの一致を確認するべく、各
記述子は以下のロジックについてテストされる。
【0066】
【数7】
【0067】ここに表されるオペレーションは、前述さ
れている。CTX_CPU及びCTX_MTEタームに
ついては、図6を参照しつつ前に述べられている。サー
チストラテジーは、ソフトウェアに於いて実行される。
サーチストラテジーは、フルアソシアティブ、若しくは
セットアソシアティブ方式のページテーブルのために実
行されるものである。TLBの場合のサーチストラテジ
ーはページテーブルのサーチストラテジーにも同様に適
用できる。
【0068】図11には、汎用コンピュータに組み込ま
れた本発明の実施態様が示されている。コンピュータ1
50は、TLB152と接続されたCPU151を有す
る。TLB152は、図8及び図9に関連して記述され
たTLBと同様のかたちで実現されるのが望ましい。C
PU151は、入出力デバイス156のセットのインタ
フェースとなるシステムバス154に接続されている。
CPU151は主メモリ160にも接続されている。主
メモリ160には、UNIX(登録商標)オペレーティ
ングシステムのようなオペレーティングシステム162
が格納されている。主メモリ160には、仮想アドレス
メモリ方式を用いる実行可能なプログラムも格納され
る。
【0069】主メモリ160には、図6を参照しつつ述
べた同等クラスメモリ変換機構170される。標準的な
技術が用いられて、オペレーティングシステム162
が、CPU151が本発明に基づくCTX_CPUによ
る識別を利用するように強制する。1つの物理的アドレ
スにマッピングされる異なる仮想メモリアドレスを認識
するようにオペレーティングシステム162が変えられ
ることにも注意されたい。即ち、オペレーティングシス
テム162は、アドレス識別ルーチンを有するように初
めから変えておくことができるのである。例えば、アド
レス識別ルーチンは、図5のTLB60をスキャンし
て、3つの仮想ページアドレスが1つの同じ物理的ペー
ジアドレスにマッピングされるのを確認できるのであ
る。また、マスク割り当てルーチンがオペレーティング
システムに付加されて、3つの仮想ページアドレスがマ
スク値を割り当てられるようにできる。更に、オペレー
ティングシステム162に書き込みルーチンが組み込ま
れて、図7のように、3つの仮想ページアドレスが1つ
のアドレスとして書き込まれるようにできる。
【0070】主メモリ160にはページテーブル172
が格納され、これは例えば図10に関して前述したのと
同じ型のページテーブルである。更に、主メモリ160
にはページテーブルサーチプログラム174が格納さ
れ、前述と同様のページテーブルのサーチストラテジー
が実現される。
【0071】以上の本発明の特定の実施例についての記
述は、本発明を例示して説明するために記述されたもの
である。従って、本発明は、前述した実施例のみに限ら
れるものでなく、上記の技術に鑑みて様々な改変が可能
であることは明らかである。例示のため、以下他の実施
態様を記述する。
【0072】本発明の技術は、逆にされハッシングされ
たページテーブルにも適用することができる。本発明の
技術が、複数の「近似(nearly equal)」要素を1つの
値にマッピングするハッシュ表探索にも適用できること
は、当業者には理解されよう。従って、本発明は、仮想
アドレス及び物理的アドレスへの適用に限られないこと
になる。しかし、本明細書に於いては、仮想アドレス及
び物理的アドレスの間の変換オペレーションのみ例示し
てあることは理解されよう。ページテーブルまたはTL
Bに関するオペレーションには、属性の処理、プロテク
トのチェック処理、及び関連する関数が含まれる。これ
らのオペレーションは従来技術に基づいて行われる。ま
た、本発明の実現には様々な方法があることも、当業者
には理解されよう。例えば、本発明のマスク方式はTL
Bにもページテーブルにも適用され得る。このような方
式では、TLB及びページテーブルは、本発明に基づく
マスク方式エントリと、従来技術の標準的エントリとを
有する。本発明は、マスクエントリと標準的エントリと
を有するTLB及び、標準的エントリのみを用いるペー
ジテーブルを用いても実現される。これとは別に、本発
明は、マスクエントリと標準的エントリとを有するペー
ジテーブル及び、標準的エントリのみを用いるTLBを
用いても実現される。
【0073】以上の実施例は、本発明の精神及び実施態
様を説明し、これによって当業者が、本発明及び、特定
の使用に適するように改変した様々な本発明の実施態様
を利用できるように選択されたものである。本発明の範
囲については請求の範囲に記載されている。
【0074】
【発明の効果】以上より、本発明により、TLBまたは
ページテーブルを用いた仮想メモリ変換処理のより効率
的な共有を図るための方法及び装置が提供される。
【図面の簡単な説明】
【図1】仮想メモリ方式を実施する従来のコンピュータ
システムを示した図である。
【図2】図1の装置に於ける、ページテーブルのオペレ
ーションを示した図である。
【図3】主メモリ及び第2メモリに関するページテーブ
ルと変換索引バッファとの間の関係を示した図である。
【図4】同じ物理的アドレスへマッピングされる異なる
仮想アドレスと共に、異なる処理のセットを示したもの
である。
【図5】変換索引バッファを示した図である。
【図6】本発明に基づいて使用される、メモリ変換情報
を示した図である。
【図7】本発明のメモリ変換情報と共に、変換索引バッ
ファを示した図である。
【図8】変換索引バッファに於ける個々のビットを比較
するのに用いられる回路を示した図である。
【図9】図8の回路と、それに類似した変換索引バッフ
ァに於けるワードを比較する回路とを結合したものを示
した図である。
【図10】本発明の1実施例に於いて用いられるページ
テーブルを示した図である。
【図11】本発明の1実施例に基づく一般的なコンピュ
ータの構成を示した図である。
【符号の説明】
20 コンピュータシステム 22 CPU 24 主メモリ 26 第2メモリ 28 システムバス 30 入出力デバイス 32 プログラム 34 プログラムに含まれる命令の1つ 36 仮想アドレス 38 仮想ページ番号 40 ページテーブル 42 ページテーブル変換エントリ 44 仮想ページ番号 46 (ページ枠に於ける)有無ビット 48 物理的ページ番号 50 物理的アドレス 52 ページオフセット 54 (仮想アドレスの)仮想オフセット部分 60 変換索引バッファ(TLB) 62 TLB変換エントリ 80 変換索引バッファ(TLB) 82 メモリ変換エントリ 84 同等ビット 86 mビット 90 比較機構 92 セル 93 標準領域 94 マスクライン 96 反転マスクマッチライン 98 反転PIDライン 99 PIDライン 100 インバータ 102 モード回路 140 ページテーブル 142 ハッシュバケットアレイ 144 記述子 146 ハッシュバケット 150 コンピュータ 151 CPU 152 変換索引バッファ(TLB) 154 システムバス 156 入出力デバイス 160 主メモリ 162 オペレーティングシステム 164 実行可能なプログラム 170 同等クラスメモリ変換機構 172 ページテーブル 174 ページテーブルサーチプログラム 180 第2メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ユーセフ・エイ・カリディ アメリカ合衆国カリフォルニア州94086・ サニーベイル・ウェストガーランドテラス 633

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 仮想メモリ変換処理を共有するコンピ
    ュータであって、 前記コンピュータが、 中央処理ユニット(CPU)と、 前記CPUと共に作動するオペレーティングシステム
    と、 前記CPU及び前記オペレーティングシステムと共に作
    動する比較機構とを有し、 前記オペレーティングシステムが、 前記コンピュータ上で実行される複数の異なる処理に関
    して、1または2以上の共通の物理的メモリページアド
    レスへマッピングする複数の異なる仮想メモリ変換エン
    トリを識別する、アドレス識別ルーチンと、 第1マスク値を、前記複数の異なる仮想メモリ変換エン
    トリに割り当てる、マスク割り当てルーチンと、 前記複数の異なる仮想メモリ変換エントリを、前記第1
    マスク値に関する1つのアドレスとして書き込む、書き
    込みルーチンとを有するようにプログラムされているこ
    とを特徴とし、 前記比較機構が、変換リクエスト仮想メモリ変換値の第
    2マスク値と前記第1マスク値とを比較して、前記第2
    マスク値が前記第1マスク値に対応するか否かを確認
    し、それによって、前記変換リクエスト仮想メモリ変換
    値が前記共通の物理的メモリページアドレスに対応する
    か否かを確認することを特徴とする仮想メモリ処理を共
    有するコンピュータ。
  2. 【請求項2】 前記オペレーティングシステムが、前
    記複数の異なる仮想メモリ変換エントリを、同等クラス
    として画定するようにプログラムされていることを特徴
    とする請求項1に記載のコンピュータ。
  3. 【請求項3】 前記オペレーティングシステムが、前
    記同等クラスを、同等クラスビットによって識別するよ
    うにプログラムされていることを特徴とする請求項2に
    記載のコンピュータ。
  4. 【請求項4】 前記オペレーティングシステムが、前
    記同等クラスビットと前記第1マスク値とを結合して、
    コンテキストメモリ変換エントリワードを生成するよう
    にプログラムされていることを特徴とする請求項3に記
    載のコンピュータ。
  5. 【請求項5】 前記オペレーティングシステムが、前
    記同等クラスビットと前記第1マスク値とを結合して、
    複数の同等クラスに対応するコンテキストメモリ変換エ
    ントリワードを生成するようにプログラムされているこ
    とを特徴とする請求項3に記載のコンピュータ。
JP7308105A 1994-11-02 1995-11-01 仮想メモリ変換処理を効率的に共有する方法及び装置 Pending JPH08212136A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/333,487 1994-11-02
US08/333,487 US5630087A (en) 1994-11-02 1994-11-02 Apparatus and method for efficient sharing of virtual memory translations

Publications (1)

Publication Number Publication Date
JPH08212136A true JPH08212136A (ja) 1996-08-20

Family

ID=23302995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7308105A Pending JPH08212136A (ja) 1994-11-02 1995-11-01 仮想メモリ変換処理を効率的に共有する方法及び装置

Country Status (3)

Country Link
US (1) US5630087A (ja)
JP (1) JPH08212136A (ja)
KR (1) KR100233212B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102509472B1 (ko) * 2022-06-07 2023-03-14 리벨리온 주식회사 뉴럴 프로세싱 장치 및 그의 공유 페이지 테이블 사용 방법
US11789791B1 (en) 2022-06-07 2023-10-17 Rebellions Inc. Neural processing device and method for using shared page table thereof

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715407A (en) * 1992-03-06 1998-02-03 Rambus, Inc. Process and apparatus for collision detection on a parallel bus by monitoring a first line of the bus during even bus cycles for indications of overlapping packets
FR2717280B1 (fr) * 1994-03-10 1996-04-05 Bull Sa Procédé de gestion de l'héritage multiple d'objets persistants et partagés.
US5754818A (en) * 1996-03-22 1998-05-19 Sun Microsystems, Inc. Architecture and method for sharing TLB entries through process IDS
US5819252A (en) * 1996-04-10 1998-10-06 Digital Equipment Corporation Method and apparatus for handling and detecting an invalid use of a data structure
US6427162B1 (en) * 1996-05-02 2002-07-30 Sun Microsystems, Inc. Separate code and data contexts: an architectural approach to virtual text sharing
US5954812A (en) * 1996-10-29 1999-09-21 Texas Instruments Incorporated Apparatus for caching system management memory in a computer having a system management mode employing address translation
US5913923A (en) * 1996-12-06 1999-06-22 National Semiconductor Corporation Multiple bus master computer system employing a shared address translation unit
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
US6199151B1 (en) * 1998-06-05 2001-03-06 Intel Corporation Apparatus and method for storing a device row indicator for use in a subsequent page-miss memory cycle
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US6728859B1 (en) * 2001-07-13 2004-04-27 Mips Technologies, Inc. Programmable page table access
US6782464B2 (en) * 2001-07-17 2004-08-24 International Business Machines Corporation Mapping a logical address to a plurality on non-logical addresses
US7010791B2 (en) * 2001-09-20 2006-03-07 Intel Corporation Method for implementing multiple type hierarchies
US6826671B2 (en) * 2001-10-09 2004-11-30 Sun Microsystems, Inc. Method and device for a context-based memory management system
US20040037556A1 (en) * 2002-02-26 2004-02-26 Matz Bret Allen Systems and methods for active monitoring and management of fiber links
DE10260606B4 (de) * 2002-12-23 2006-03-30 Infineon Technologies Ag Vorrichtung zur Übersetzung mehrerer virtueller Adressen auf eine einzige physikalische Adresse
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US20050144422A1 (en) * 2003-12-30 2005-06-30 Mcalpine Gary L. Virtual to physical address translation
JP4064380B2 (ja) * 2004-07-29 2008-03-19 富士通株式会社 演算処理装置およびその制御方法
US9244855B2 (en) 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US7996628B2 (en) * 2008-02-14 2011-08-09 International Business Machines Corporation Cross adapter shared address translation tables
US9208102B2 (en) 2013-01-15 2015-12-08 Qualcomm Incorporated Overlap checking for a translation lookaside buffer (TLB)
US10719451B2 (en) * 2017-01-13 2020-07-21 Optimum Semiconductor Technologies Inc. Variable translation-lookaside buffer (TLB) indexing
KR20200123912A (ko) * 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654790A (en) * 1983-11-28 1987-03-31 Amdahl Corporation Translation of virtual and real addresses to system addresses
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
JPH0520197A (ja) * 1991-07-09 1993-01-29 Hitachi Ltd 記憶管理システム及びマイクロプロセツサ
US5386527A (en) * 1991-12-27 1995-01-31 Texas Instruments Incorporated Method and system for high-speed virtual-to-physical address translation and cache tag matching
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
US5440710A (en) * 1994-03-08 1995-08-08 Exponential Technology, Inc. Emulation of segment bounds checking using paging with sub-page validity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102509472B1 (ko) * 2022-06-07 2023-03-14 리벨리온 주식회사 뉴럴 프로세싱 장치 및 그의 공유 페이지 테이블 사용 방법
US11789791B1 (en) 2022-06-07 2023-10-17 Rebellions Inc. Neural processing device and method for using shared page table thereof

Also Published As

Publication number Publication date
US5630087A (en) 1997-05-13
KR100233212B1 (ko) 1999-12-01
KR960018907A (ko) 1996-06-17

Similar Documents

Publication Publication Date Title
JPH08212136A (ja) 仮想メモリ変換処理を効率的に共有する方法及び装置
EP1096385B1 (en) A method and apparatus for forming an entry address
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
US5119290A (en) Alias address support
US5465337A (en) Method and apparatus for a memory management unit supporting multiple page sizes
KR960001946B1 (ko) 우선 변환 참조버퍼
US5526504A (en) Variable page size translation lookaside buffer
US5479627A (en) Virtual address to physical address translation cache that supports multiple page sizes
US6216214B1 (en) Apparatus and method for a virtual hashed page table
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US6256715B1 (en) System and method of performing gateway access
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
CA1332984C (en) Dual cache memory
JPH04319747A (ja) アドレス変換機構
US7493464B2 (en) Sparse matrix
US5319761A (en) Directory look-aside table for a virtual storage system including means for minimizing synonym entries
JPH05210593A (ja) マイクロプロセッサのためのメモリ区分化装置およびセグメント記述子をセグメント・レジスタへロードする方法
JPS623357A (ja) Tlb制御方法
JPH07281948A (ja) メモリ制御装置
US4984150A (en) Virtual memory control management system
EP0442474B1 (en) Apparatus and method for controlling cache memory
US6327646B1 (en) Translation look-aside buffer utilizing high-order bits for fast access
JPH11238015A (ja) プロセッサ装置
US7181587B1 (en) Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment