JPH1083352A - アドレス変換制御回路及びアドレス変換方法 - Google Patents

アドレス変換制御回路及びアドレス変換方法

Info

Publication number
JPH1083352A
JPH1083352A JP9087210A JP8721097A JPH1083352A JP H1083352 A JPH1083352 A JP H1083352A JP 9087210 A JP9087210 A JP 9087210A JP 8721097 A JP8721097 A JP 8721097A JP H1083352 A JPH1083352 A JP H1083352A
Authority
JP
Japan
Prior art keywords
context
translation
virtual address
address
equivalent
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.)
Granted
Application number
JP9087210A
Other languages
English (en)
Other versions
JP3920395B2 (ja
Inventor
Ahmed Hassan Mohamed
アーメッド・ハッサン・モハメッド
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 JPH1083352A publication Critical patent/JPH1083352A/ja
Application granted granted Critical
Publication of JP3920395B2 publication Critical patent/JP3920395B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

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)【要約】 【課題】 プロセッサおよびTLBと協調して動作して
TLBの共有エントリを介した仮想−物理アドレス変換
を行うアドレス変換制御回路。 【解決手段】 アドレス変換制御回路は、基本コンテキ
スト記憶素子と、グループ・コンテキスト記憶素子と、
コンテキスト突合わせユニットと、比較ユニットと、論
理ユニットとを備える。コンテキスト突合わせ回路は基
本コンテキスト記憶素子およびグループ・コンテキスト
記憶素子に結合され、それらのコンテキスト番号を受け
取り、TLBの選択された変換エントリからコンテキス
ト識別番号とコンテキスト選択ビット値を読み取る。同
時に、比較ユニットがそのエントリに入っている仮想ア
ドレスを変換が要求された仮想アドレスと比較する。論
理ユニットがコンテキスト突合わせ回路と比較ユニット
から出力を受け取り、オペレーティング・システム・ソ
フトウェアに、該当する変換がTLB内で見つかったか
どうかを通知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般には電子的アド
レス指定に関する。具体的には、本発明は変換索引バッ
ファの変換テーブル・エントリを共有することによって
パフォーマンスを向上させるアドレス指定アーキテクチ
ャおよび方法に係わる。
【0002】
【従来の技術】現在、仮想−物理アドレス変換を行うた
めにコンピュータ内に実装された様々なアドレス指定ア
ーキテクチャがある。このようなアドレス指定アーキテ
クチャは一般に、コンピュータのプロセッサと組み合わ
さって動作して、たとえば図1の「順送りページ・テー
ブル」方式などの特定のアドレス変換方式を実行するメ
モり管理ユニット(「MMU」)として実装される。
【0003】順送りページ・テーブル方式100は、3
つの別個のテーブル、すなわち、コンテキスト・テーブ
ル120、セグメント・テーブル130、およびページ
・テーブル140に次々にアクセスすることによって仮
想アドレス110を物理アドレス150に変換する。仮
想アドレス110は、まず、MMUの初期設定中のプロ
セッサ・レジスタ・セットアップの内容(すなわちルー
ト・テーブル・ポインタ115)と、コンテキスト・レ
ジスタ116内の情報とを組み合わせることによって物
理アドレス150に変換される。コンテキスト・レジス
タ116は、同じ仮想アドレスを処理するプロセスを固
有に識別する情報を記憶する記憶素子(たとえばプロセ
ッサ・レジスタ)である。ルート・テーブル・ポインタ
115をコンテキスト・レジスタ116の情報と組み合
わせることによって、コンテキスト・テーブル120の
エントリ121を指すポインタを作成する。このエント
リ121は、仮想アドレス110のセグメント部分11
1の内容によってその基底アドレス・セットを有するセ
グメント・テーブル130内のエントリ131の内容に
アクセスするための索引として使用される。同様に、エ
ントリ131の内容は、ページ・エントリ141の内容
にアクセスするために、その基底アドレスとしてページ
部分112を有するページ・テーブル140の索引とし
て使用される。仮想アドレス110のページ・オフセッ
ト113と組み合わされたページ・エントリ141の内
容が、物理アドレス150を形成する。
【0004】64ビット・アドレス空間をサポートする
プロセッサの登場により、順送りページ・テーブル方式
を使用するMMUに付随するいくつかの欠点がある。1
つの欠点は、この方式が共有をテーブルの細分性(たと
えばSuperSPARCTMアーキテクチャの場合は2
56キロバイト、MIPS(R)アーキテクチャの場合
は4メガバイト)で行う必要があることである。したが
って、順送りページ・テーブル方式をサポートするアー
キテクチャは、すべての参加プロセスが、仮想ページの
任意のセットのマッピングを共有するのではなく、ペー
ジ・テーブルによってマップされたすべてのページを共
有する必要がある。順送りページ・テーブル方式に付随
するもう一つの欠点は、64ビット・アドレス空間がよ
り頻繁に使用されるために、固定サイズの仮想−物理ア
ドレス変換テーブルをサポートするのに大量の物理メモ
リが必要になることである。これは、コスト効果の高い
手法ではない。他の欠点は、この方式は、オブジェクト
の共有に使用される仮想アドレスをセグメン・テーブル
境界またはページ・テーブル境界上で正しく位置合わせ
しなければならないために、位置合わせ要件が課される
ことである。これは、前述のようにページ・テーブル細
分性(page table granularity)での共有を維持するた
めに必要なものである。
【0005】ここ数年の時間の経過に伴い、64ビット
・アドレス空間が明らかに受け入れられるようになった
ことによって、固定ページ・テーブル要件を課さないソ
フトウエア管理変換索引バッファ(「TLB」)によっ
て仮想メモリをサポートするコンピュータ・アーキテク
チャが急激に必要になっている。TLBは、主としてコ
ンピュータのオペレーティング・システムによって管理
される小型キャッシュである。TLBは、変換テーブル
と、図2Bに示すように、要求されたアドレス変換に関
係する情報が変換テーブル・エントリ(「TTE」)に
入っているかどうかをオペレーティング・システム・ソ
フトウェアに通知するタグ比較回路とを含むメモリを備
える。
【0006】次に図2Aを参照すると、TLBの変換テ
ーブル200のデータ構造体はいくつかのエントリ
(「TTE」)210を含み、各TTEはデータ220
とタグ230を含む。TTEタグ230は、事前記憶済
み仮想アドレス(「VA」)231と、プロセスを固有
に識別するために使用されるプロセス・コンテキスト識
別標識(「コンテキストID」)232と、グローバル
・ビット233とを含む。データは、物理ページ番号
(「PPN」)221とページ属性(たとえば保護、参
照、修正など)222とを含む。
【0007】従来のソフトウェア管理TLB変換方式を
サポートするために使用されるタグ比較回路を図2Bに
示す。この回路250はTTEタグ230を受け取り、
コンテキストID232をデュアル入力比較器255の
一方の入力端子に入力する。この回路250は、コンピ
ュータのプロセス・システム状態を表すために、特定の
コンテキスト切換え時にオペレーティング・システムに
よってロードされた選択されたコンテキスト番号を保持
するコンテキスト・レジスタ260をさらに備える。比
較器255が、コンテキストID232がコンテキスト
・レジスタに入っている選択されたコンテキスト番号に
相当すると判断した場合、比較器255は第1の論理ゲ
ート262の第1の入力端子に結合されている制御線2
61をアクティブにする。この例では、第1の論理ゲー
ト262はORゲートとして機能するように設計されて
いる。制御線261がアクティブになるかまたはグロー
バル・ビット233がアクティブの場合、第1の論理ゲ
ート262は第2の論理ゲート265の第1の入力端子
に結合された制御線263をアクティブにする。
【0008】さらに、TTEタグ230に入っている事
前記憶済み仮想アドレス231が、変換するためにプロ
セッサによって直接供給された「プロセッサ仮想アドレ
ス」236と呼ばれる要求仮想アドレスと比較される。
この比較は第2の比較器270によって行われる。これ
らの仮想アドレスが同じであるか(ビット単位比較)、
または等価である(ビット単位または非ビット単位比
較)場合、第2の比較器270は第2の論理ゲート26
5の第2の入力端子に結合されている制御線264をア
クティブにする。両方の入力端子が「アクティブ」信号
を受け取った場合、第2の論理ゲート265は変換「ヒ
ット」信号を送って、オペレーティング・システム・ソ
フトウェアに、TLBの変換テーブル内に変換が見つか
ったことを通知する。それ以外の場合は、すべての仮想
−物理アドレス変換が入っているカーネル・ページ・テ
ーブル内のエントリから変換を入手する。
【0009】一般に、前述の従来のソフトウェア管理T
LB変換方式では、複数のプロセスが物理オブジェクト
(たとえば共有ライブラリ、メモリなど)を共有するこ
とができる。これらのプロセスは、単一の仮想アドレス
を使用して共有物理ページにマップする。しかし、この
変換方式は、それらのプロセスが同じ変換情報を使用す
る場合でも別々の各プロセスに別々のページ・テーブル
・エントリとTTEを割り当てるため、カーネル・メモ
リやTLBなどの割振りメモリ使用を最適化することが
できない。
【0010】最近、単一の変換エントリを共有するため
に同じ物理アドレス空間にマップする同様の仮想アドレ
スを使用して異なるアドレス空間からの変換ができるよ
うにする他の変換方式が導入されている。この方式を
「共通マスク」方式と呼ぶ。図2Cに示すように、共通
マスク方式は、共有ビット235をアクティブにすると
プロセスによって共有される1組の共通領域(すなわち
共有物理ページ)を識別するビット・ベクトル234を
使用してTTE210のコンテキストID232を拡張
する。共有ビット235がアクティブでない場合は、ビ
ット・ベクトル234は、非共有変換に使用される元の
コンテキストIDを表す。共通マスク方式は、ユーセフ
A.ハリーディー(Yousef A.Khalid
i)およびマドスードハン・タルリー(Madhusu
dhan Talluri)著「Improving
the Address Translation P
erformance of Widely Shar
ed Pages」という標題のサン・マイクロシステ
ムズ・ラボラトリーズの出版物で開示されている。しか
し、共通マスク・マッピング方式は複雑なアドレス指定
アーキテクチャを必要とすることによって管理コストが
高くつく。
【0011】
【発明が解決しようとする課題】上述のように、図2C
の共通マッピング方式には限界があり、管理コストが高
くつく。たとえば、コンテキスト・レジスタのサイズが
「m+n」ビットに等しい場合、共通マスク・アーキテ
クチャはプロセスを固有に識別するために「m」ビット
を割り振り、マスクのコンテキスト識別子に「n」ビッ
トを割り振るとすると、所与の時点で共有することがで
きるオブジェクトの合計数は「n」個のオブジェクトに
制限される。その結果、オペレーティング・システムは
これらの「n」ビットを慎重に割り振らなければなら
ず、それには割振り制御のための追加のシステム・オー
バーヘッドを必要とする。
【0012】本発明の焦点は、TLBの変換テーブルの
使用効率を最適化するために、TTEタグに格納する追
加情報を使用する、改良型アドレス指定アーキテクチャ
の提供にある。
【0013】
【課題を解決するための手段】提案するアドレス指定ア
ーキテクチャは、システムに2m+n 個のグループを与え
る番号としてフル・コンテキスト識別子を使用する。各
プロセス・グループは、仮想アドレス空間のサイズによ
ってのみ制限される複数のオブジェクトを共有すること
ができる。プログラムの局所性を利用して複数グループ
・メンバーシップをサポートすることができる。ページ
・フォールト時には、オペレーティング・システムはグ
ループ・コンテキスト・レジスタに、アクセスするオブ
ジェクトの対応するグループ識別子をロードすることが
できる。これは小ページ・フォールトであるため、パフ
ォーマンスはあまり低下しない。
【0014】本発明は、プロセッサと変換索引バッファ
(「TLB」)と組み合わせて動作して仮想アドレスを
物理アドレスに変換すると同時に、TLBの共有エント
リを使用するアドレス変換制御回路である。TLBの変
換テーブルの各エントリは、少なくとも事前記憶済み仮
想アドレスと、コンテキスト識別番号と、コンテキスト
選択ビットとを含む。アドレス変換制御回路の好ましい
実施態様は、基本コンテキスト記憶素子と、グループ・
コンテキスト記憶素子と、コンテキスト突合わせ回路
と、比較ユニットと、論理ユニットとを備える。コンテ
キスト突合わせ回路は、基本コンテキスト記憶素子とグ
ループ・コンテキスト記憶素子とに結合され、それらの
コンテキスト番号を受け取り、選択された変換テーブル
・エントリからコンテキスト識別番号とコンテキスト選
択ビット値を読み取る。それと並列して、比較ユニット
がそのエントリに入っている事前記憶済み仮想アドレス
を要求された仮想アドレスと比較する。論理ユニットが
コンテキスト突合わせ回路と比較ユニットの出力を受け
取って、TLBに該当する仮想−物理アドレス変換が入
っているかどうかをオペレーティング・システム・ソフ
トウェアに通知する。コンテキスト突合わせ回路と比較
ユニットからのアクティブ出力は、TLBに変換が入っ
ていることを示す。
【0015】コンテキスト突合わせ回路には2つの好ま
しい実施態様がある。第1の実施態様は、マルチプレク
シング・ユニットと比較ユニットを含む。マルチプレク
シング・ユニットは、選択されたコンテキスト番号を出
力する。このコンテキスト番号は、基本コンテキスト記
憶素子とグループ・コンテキスト記憶素子によって供給
されるコンテキスト番号のうちのいずれか1つであり、
コンテキスト選択ビットのビット値によって決まる。比
較ユニットは、選択されたコンテキスト番号をコンテキ
スト識別番号と比較して、一致があるかどうかを調べ
る。一致がある場合は、論理ユニットにアクティブ・コ
ンテキスト突合わせ信号を出力する。第2の実施態様
は、特定の論理ゲートと組み合わせて一対の比較ユニッ
トを使用して、より実装が難しいマルチプレクシング・
ユニットの使用を回避する。
【0016】
【発明の実施の形態】本発明の特徴と利点は、以下の本
発明の詳細な説明を読めば明らかになろう。
【0017】本発明は、アドレス変換資源を共有すると
き、いくつかのプロセスが変換索引バッファ(「TL
B」)の同じ変換テーブル・エントリ(「TTE」)を
共有することができるようにする改良型アドレス指定ア
ーキテクチャを開示する。多くの特定の詳細を記載する
が、それらの特定の詳細は本発明を実施するのに必要な
ものではないことは明らかである。他の場合には、本発
明が不明瞭にならないように、周知の回路、装置、およ
び同様のものについては説明しないことがある。
【0018】本明細書では、特定の周知の技術について
一般的に定義する。たとえば、「プロセス」とは、正常
な実行のためにアドレス変換資源(すなわち割り当てら
れたコード、データ、スタック、共有ライブラリ)に依
存する、プロセッサによって実行される一連の動作ステ
ップであると定義される。各プロセスには、固有のアド
レス変換ハンドルが割り当てられる。「プロセッサのグ
ループ」とは、共同して動作して特定の操作を実行する
プロセスの集合である。「アクティブにされた」または
「アクティブ」という用語は、通信線を通って伝播する
信号が「論理ハイ」であること、または、信号がアクテ
ィブ・ロー信号である場合には「論理ロー」であること
を示す。
【0019】図3を参照すると、本発明の改良型アドレ
ス指定アーキテクチャを使用するコンピュータ・システ
ムの簡略化された実施形態が図示されている。コンピュ
ータ・システム300は、通信リンク360を介して複
数の端末(たとえばパーソナル・コンピュータ、ダム端
末など)350a〜350nに結合されている。コンピ
ュータ・システム300は、第1のバス315を介して
共に結合された処理装置305とメイン・メモリ310
を含む。第1のバス315は、第1のバス315と第2
のバス325(たとえばI/Oバス)との間に通信経路
を形成する入出力コントローラ320に結合されてい
る。第2のバス325は、複数の端末350a〜350
nの1つから発信され、送受信ユニット330(たとえ
ばモデム)から受け取った情報を伝播する。
【0020】図3にはさらに、プロセッサ306と、メ
イン・メモリ310内のデータにアクセスするときにプ
ロセッサ306が仮想アドレスを物理アドレスに変換す
るために使用するメモリ管理ユニット(「MMU」)3
07とを含む処理装置305が図示されている。MMU
307は、主としてオペレーティング・システム・ソフ
トウェア(図示せず)とそのアドレス変換制御回路の両
方によって制御されるTLB308と、複数のコンテキ
スト記憶素子(たとえばレジスタおよびその他の記憶構
成要素)、すなわち基本コンテキスト記憶素子309a
と、少なくとも1つのグループ・コンテキスト記憶素子
309bを含む。基本コンテキスト記憶素子309a
は、現行プロセスを固有に規定するために使用するコン
テキスト識別番号を保持し、グループ・コンテキスト記
憶素子309bは物理ページを共有するプロセスのコン
テキスト識別標識として使用される。メイン・メモリ3
10は通常、メモリ・コントローラ311を含み、メモ
リ・コントローラ311はプロセッサ306から物理ア
ドレスを受け取り、たとえばダイナミック・ランダム・
アクセス・メモリ(「DRAM」)、ビデオ・ランダム
・アクセス・メモリ(「VRAM」)および同様のもの
などの記憶素子312からのデータのアクセスを制御す
る。
【0021】コンピュータ・システム300では、以下
に述べるように仮想−物理アドレス変換が行われる。ま
ず、プロセッサ306が要求された仮想アドレスを生成
し、要求された仮想アドレスをMMU307に転送す
る。MMU307、具体的にはアドレス変換制御回路
は、物理アドレス探索を行い、その際、要求された仮想
アドレスとコンテキスト情報(すなわち後述するグロー
バル・ビット、コンテキスト選択ビット、およびコンテ
キストID)を使用して、要求された仮想アドレスの変
換情報がTLB308に格納されているかどうかを確認
する。要求された仮想アドレスの物理アドレスがTLB
308に入っている場合、TLB308は変換「ヒッ
ト」信号を出力し、次にプロセッサ306にその物理ア
ドレスを渡す。その物理アドレスがTLB308に入っ
ていない場合は、MMU307がプロセッサ306に変
換「ミス」信号を送信することによってトラップを生成
する。その後、オペレーティング・システム・ソフトウ
ェアが、すべての仮想−物理アドレス変換を含むカーネ
ル・ページ・テーブルの探索を行って、物理アドレスを
入手し、プロセッサ306にそのアドレスを送る。
【0022】図4を参照すると、組み合わさってアドレ
ス変換を行うオペレーティング・システム・ソフトウェ
アとTLBのデータ構造体が図示されている。これらの
データ構造体については、本出願の出願人による「Se
parate Code And Data Cont
exts:An Architectural App
roach To Virtual Text Sha
ring」という名称の同時出願米国特許出願(代理人
整理番号第082225.P1176号)で詳しく開示
されており、これは参照により本明細書に組み込まれ
る。これらのデータ構造体は、カーネル・ページ・テー
ブル410と、変換ソフトウェア・バッファ420と、
TLB430とを含む。カーネル・ページ・テーブル4
10は、物理メモリに関連づけられたすべての物理ペー
ジを管理する。変換ソフトウェア・バッファ420は、
基本的に、最も最近に使用されたアドレス変換のキャッ
シュとして機能する。これはこの変換方式の速度を高速
化するので実装されることが好ましいが、任意選択であ
るのは明らかである。TLB430は、アドレス変換制
御回路によって制御されてキャッシュと同様にして動作
するメモリ(たとえば変換テーブル)である。TLB4
30は、選択された変換テーブル・エントリ(「TT
E」)のタグを受け取り、そのTTEタグのビット部分
を使用して、要求仮想アドレスに関連づけられた物理ア
ドレスがTLB430に格納されているかどうかを確認
する。
【0023】図4を続けて参照すると、異なるプロセス
が同じアプリケーションを実行し、同じ仮想アドレスを
使用して同じ物理ページを参照するときは、資源が二重
化されることが明らかである。本質的には、共通セグメ
ントを使用するプロセスの数を確認し、共通セグメント
をグループ・コンテキスト番号「k」によって識別され
る代理アドレス空間に分解することによって、グループ
・プロセスを形成する。このグループ・プロセスは、こ
のアドレス変換方式が以下の条件を採用して正確なアド
レス指定を保証する限り、複数のプロセスに関連づけら
れたただ一つのTTEを使用する。1つの条件は、すべ
ての参加プロセスについてすべての共有セグメントが同
じ仮想アドレスにマップされなければならないことであ
る。これによって、共有セグメントの仮想アドレスから
物理アドレスへのアドレス変換がグループ内のすべての
プロセスについて同じになることが保証される。第2の
条件は、グループ・コンテキスト番号によってアドレス
指定されるアドレス空間が、基本コンテキスト番号に関
連づけられた各専用アドレス空間とは別個のものである
ことである。言い換えると、1つのプロセスにおいて共
有セグメントにアクセスする仮想アドレスは、そのグル
ープのすべてのプロセスにおいて同じ共有セグメントに
アクセスしなければならない。これによって、グループ
内の1つのプロセスが、仮想アドレスにある専用セグメ
ントをマップし、次にグループ内の残りのプロセスが異
なる共有セグメントをマップするといことがなくなる。
【0024】図5を参照すると、TLBの各エントリに
関連づけられたアドレス変換制御回路500は、コンテ
キスト突合わせ回路520と、少なくとも1つの比較ユ
ニット540と、複数の論路ゲート560および570
とを備える。アドレス変換制御回路500は、コンピュ
ータ・アーキテクチャ内に実装された基本コンテキスト
記憶素子309aとグループ・コンテキスト記憶素子3
09bの両方からコンテキスト情報を受け取る。コンテ
キスト記憶素子309a〜309bには、「m」ビット
のサイズのコンテキスト番号が入る(「m」は任意のサ
イズ)。さらに、アドレス変換制御回路500は、特定
のプロセスまたはプロセスのグループに関連づけられた
TTEタグ580を受け取る。図のように、TTEタグ
580はいくつかのビット・フィールドを含むように修
正されている。これらのビット・フィールドにはグロー
バル・ビット・フィールド581、コンテキスト選択ビ
ット・フィールド582、コンテキスト番号ビット・フ
ィールド、および事前記憶仮想アドレス584を保持す
るビット・フィールドが含まれるが、これらだけに限定
されない。TTEタグ230は、64ビット幅(「TA
G[63:0]」)であることが好ましく、そのうち事
前記憶仮想アドレスが42ビット幅(「TAG[41:
0]」)、コンテキスト番号フィールドが13ビット幅
(「TAG[60−48]」)、コンテキスト選択ビッ
ト・フィールドおよびグローバル・ビット・フィールド
(「TAG[62]」および「TAG[63]」)が1
ビット幅であることが好ましい。TTEタグ230のフ
ィールドは、選定したコンピュータ・アーキテクチャに
応じて他のビット・サイズとすることができる。
【0025】コンテキスト突合わせ回路520は、TT
Eタグ580内のコンテキスト番号ビット・フィールド
583(サイズは「r」ビット)に入っているコンテキ
スト識別番号を、基本コンテキスト記憶素子309aま
たはグループ・コンテキスト記憶素子309bに入って
いるコンテキスト番号と比較するように構成されてい
る。コンテキスト選択ビット582は、どのコンテキス
ト番号をTTEタグ580内のコンテキスト識別番号と
比較するか、すなわち、コンテキスト番号を基本コンテ
キスト記憶素子309a(コンテキスト選択ビット58
2がイナクティブの場合)から入手するか、それともグ
ループ・コンテキスト記憶素子309b(コンテキスト
選択ビット582がアクティブの場合)から入手するか
を動的に選択する。事前記憶仮想アドレス584が「共
有」ページに関連づけられている場合、オペレーティン
グ・システム・ソフトウェアはアクティブなコンテキス
ト選択ビット582をロードする。それに対して、事前
記憶仮想アドレス584が「非共有」ページと関連づけ
られている場合は、コンテキスト選択ビット582はイ
ナクティブである。
【0026】コンテキスト突合わせ回路520は、コン
テキスト番号が一致していると判断した場合、アクティ
ブ・コンテキスト突合わせ信号を第1の論理ゲート56
0の第1の入力端子に入力する。第1の論理ゲート56
0はORゲートとして機能する。一致していないと判断
した場合は、イナクティブ・コンテキスト突合わせ信号
が第1の論理ゲート560の第1の入力端子に転送され
る。さらに、特定の変換はコンテキストに依存しない場
合があるため、グローバル・ビット581が第1の論理
ゲート560の第2の入力端子に入力される。すべての
プロセスがオペレーティング・システム・カーネルを、
そのアドレス空間の同じ仮想アドレスにマップするの
で、たとえば、グローバル・ビット581はオペレーテ
ィング・システムに対してオペレーティング・システム
自体に単一のTTEを使用する仕組みを与える。しか
し、オペレーティング・システムには現在、別個の保護
ドメインが割り振られ、それによってオペレーティング
・システムはより大きな仮想アドレスを持つことができ
るため、このアーキテクチャはあまり頻繁には使用され
ない。現在の多くのアーキテクチャではグローバル・ビ
ット581を使用することができないため、その使用は
このアドレス指定アーキテクチャにとっては任意選択で
ある。
【0027】第1の論理ゲート560の入力の一方がア
クティブ信号を受け取った場合、第1の論理ゲート56
0は、第2の論理ゲート570の第1の入力端子にアク
ティブ信号を送る。アドレス指定アーキテクチャがグロ
ーバル・ビット581を使用しない場合は、当然、論理
ゲート560を取り除き、この実施形態ではコンテキス
ト突合わせ回路520の出力を第2の論理ゲート570
に送ることができる。第2の論理ゲート570はAND
ゲートとして機能することが好ましい。第2の論理ゲー
ト570の第2の入力端子は、比較ユニット540の出
力端子に結合され、比較ユニット540は、TTEタグ
に含まれている事前記憶仮想アドレスをプロセッサから
送られた要求仮想アドレスと比較する。この2つの仮想
アドレスが同じ場合、TTEに正しい変換情報が入って
いることを示し、比較ユニット540は第2の論理ゲー
ト570の第2の入力端子にアクティブ比較信号を出力
する。これによって、第2の論理ゲート570はプロセ
ッサに変換「ヒット」信号を出力して、TLBによって
そのアドレス変換に対応することができることを示す。
それに対して、第1の論理ゲート560(またはグロー
バル・ビットがない場合はコンテキスト突合わせ回路)
がイナクティブ信号を出力するか、比較ユニット540
がイナクティブ信号を出力する場合、アドレス変換回路
500は変換「ミス」信号を出力して、TLBに変換が
入っておらず、したがってカーネル・ページ・テーブル
へのアクセスが必要であることを示す。
【0028】図6Aおよび図6Bを参照すると、コンテ
キスト突合わせ回路520の実施形態が図示されてい
る。図6Aで、コンテキスト突合わせ回路520はマル
チプレクシング・ユニット521および比較ユニット5
22として図示されている。マルチプレクシング・ユニ
ット521は、入力値として基本コンテキスト記憶素子
309aのコンテキスト番号と、グループ・コンテキス
ト記憶素子309bのコンテキスト番号と、TTEタグ
のコンテキスト選択ビットのビット値に基づく選択信号
とを受け取る「r」デュアル入力マルチプレクサを特徴
としている。しかし、コンテキスト選択フィールドのビ
ット・サイズとマルチプレクサの構成および特性によっ
て、他の実施形態も使用することができる。比較ユニッ
ト522はデュアル入力比較器として図示されている
が、他の構成要素も使用可能である。
【0029】この実施形態では、コンテキスト選択ビッ
トに従ってどちらのコンテキスト番号を選択しても、そ
れが比較ユニット522の第1の入力端子に入力され
る。TTEタグに入っているコンテキスト識別番号が比
較ユニット522の第2の入力端子に入力され、この2
つの値が比較される。両者が同じ場合、比較ユニット5
22はアクティブ比較信号を第1の論理ゲート560の
第1の入力端子に出力する。同じでない場合は、第1の
論理ゲート560にイナクティブ比較信号を出力する。
【0030】図6Bにコンテキスト突合わせ回路の他の
実施形態を示す。この実施形態では、グループ・コンテ
キスト記憶素子と基本コンテキスト記憶素子の双方のコ
ンテキスト番号が、それぞれ比較ユニット530と53
1の第1の入力端子に入力される。これらのコンテキス
ト番号は並列して、TTEタグによって与えられるコン
テキスト識別番号と比較される。その結果、比較ユニッ
ト530および531はそれぞれの比較信号を出力し、
それがそれぞれANDゲートとして機能する第1および
第2の突合わせ論理ゲート532および533の第1の
入力端子に入力される。第1の突合わせ論理ゲート53
2は、第2の入力値としてTTEタグからコンテキスト
選択ビット値を受け取る。コンテキスト選択のビット値
はインバータ・ゲート534によって反転されるたた
め、第2の突合わせ論理ゲート533は、第2の入力値
としてコンテキスト選択ビットの補数を受け取る。した
がって、第1および第2の突合わせ論理ゲート532お
よび533のうちの一方だけが、図5の第1の論理ゲー
ト560にアクティブ信号を出力する。したがって、こ
の実施形態では、第1の論理ゲート560は、グローバ
ル・ビットを使用する場合は3つの入力端子を必要とし
て3入力ORゲートとして機能し、グローバル・ビット
を使用しない場合は2入力ORゲートとして機能する。
【0031】コンテキスト突合わせ回路の第2の実施形
態に伴う利点は、アドレス変換制御回路内の論理回路の
量が削減されることに関連する。この場合、nビット比
較器と2ビット・マルチプレクサを必要とし、実装がよ
り難しいnビット・マルチプレクサは必要がない。さら
に、比較器を並列して処理することができ、それによっ
てシステムの合計ゲート遅延が少なくなる。
【0032】以上、改良型アドレス指定方式について説
明した。当業者なら、本発明の代替実施態様がわかるで
あろう。好ましい実施例は、例示のために使用したので
あり、本発明の範囲を限定するものとみなすべきではな
い。
【図面の簡単な説明】
【図1】 従来の順送りページ・テーブル・マッピング
方式を示す図。
【図2】 TLBの変換テーブルのデータ構造体とTT
Eエントリを示すブロック図(A)、TLBの変換テー
ブルと共に使用される従来のタグ比較回路を示すブロッ
ク図(B)、共通マスク変換方式をサポートするTTE
のコンテキストIDのデータ構造体を示すブロック図
(C)。
【図3】 改良型ソフトウェア管理TLB変換方式を使
用するコンピュータ・システムを示すブロック図。
【図4】 改良型ソフトウェア管理TLB変換方式を示
すデータ構造の図。
【図5】 改良型ソフトウェア管理TLB変換方式をサ
ポートするアドレス指定変換制御回路の実施形態を示す
図。
【図6】 図5のコンテキスト突合わせ回路のそれぞれ
異なる二つの実施形態を示す詳細ブロック図。
【符号の説明】
305 処理装置、 306 プロセッサ、 307
メモリ管理ユニット 308 変換索引バッファ、 309 コンテキスト記
憶素子、 310 メイン・メモリ、 315 第1の
バス、 320 入出力コントローラ 350 端末、 360 通信リンク、 410 カー
ネル・ページ・テーブル、 420 変換ソフトウェア
・バッファ、 430 TLB、 500 アドレス変
換制御回路、 520 コンテキスト突合わせ回路、
521 マルチプレクシング・ユニット、 522、5
30、531、540 比較ユニット、532、533
突合わせ論理ゲート。
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと、事前記憶仮想アドレスお
    よびコンテキスト識別番号を含む少なくとも1つの変換
    テーブル・エントリを有する変換テーブルを含む変換索
    引バッファと協調して動作するように構成され、プロセ
    ッサから要求された仮想アドレスを物理アドレスに変換
    するように構成されたアドレス変換制御回路であって、 第1のコンテキスト記憶素子に第1のコンテキスト番号
    が含まれ、第2のコンテキスト記憶素子に第2のコンテ
    キスト番号が含まれる複数のコンテキスト記憶素子と、 前記複数のコンテキスト記憶素子に結合され、前記コン
    テキスト識別番号が前記第1および第2のコンテキスト
    番号のうちの1つである選択されたコンテキスト番号と
    等価で、事前記憶仮想アドレスが要求された仮想アドレ
    スと等価である場合に、変換ヒット信号を出力して変換
    索引バッファが現在物理アドレスを格納していることを
    示す回路とを備えるアドレス変換制御回路。
  2. 【請求項2】 プロセッサと、事前記憶仮想アドレスお
    よびコンテキスト識別番号を含む少なくとも1つの変換
    テーブル・エントリを有する変換テーブルを含む変換索
    引バッファと協調して動作するように構成され、プロセ
    ッサから要求された仮想アドレスを物理アドレスに変換
    するように構成されたアドレス変換制御回路であって、 第1のコンテキスト番号を記憶するように構成された基
    本コンテキスト記憶素子と、 第2のコンテキスト番号を記憶するように構成されたグ
    ループ・コンテキスト記憶素子と、 前記基本コンテキスト記憶素子から前記第1のコンテキ
    スト番号と、前記グループ・コンテキスト記憶素子から
    前記第2のコンテキスト番号と、少なくとも1つの変換
    テーブル・エントリから前記コンテキスト識別番号とを
    受け取り、前記コンテキスト識別番号が前記第1および
    第2のコンテキスト番号のうちの1つである選択された
    コンテキスト番号と等価であるか否かを示す少なくとも
    1つのコンテキスト突合わせ信号を出力するように構成
    されたコンテキスト突合わせ回路と、 事前記憶仮想アドレスを要求された仮想アドレスと比較
    し、事前記憶仮想アドレスが要求された仮想アドレスと
    等価であるか否かを示す比較信号を出力するように構成
    された比較ユニットと、 前記コンテキスト突合わせ回路と前記比較ユニットとに
    結合され、前記コンテキスト突合わせ信号が前記コンテ
    キスト識別番号が前記選択されたコンテキスト番号と等
    価であることを示し、前記比較信号が事前記憶仮想アド
    レスが要求された仮想アドレスと等価であることを示し
    ている場合、変換ヒット信号を出力するように構成され
    た論理ユニットとを備えるアドレス変換制御回路。
  3. 【請求項3】 バスと、 前記バスに結合された処理ユニットとを備えるコンピュ
    ータ・システムであって、前記処理ユニットが、 要求された仮想アドレスを物理アドレスに変換する要求
    を発行するように構成されたプロセッサと、 前記プロセッサに結合されたメモリ管理ユニットとを含
    み、そのメモリ管理ユニットは、 事前記憶仮想アドレスとコンテキスト識別番号とを含む
    少なくとも1つの変換テーブル・エントリを有する変換
    テーブルを含む変換索引バッファと、 (i)第1のコンテキスト番号と第2のコンテキスト番
    号と前記コンテキスト識別番号とを受け取り、(ii)
    前記コンテキスト識別番号が前記第1および第2のコン
    テキスト番号のうちの1つである選択されたコンテキス
    ト番号と等価であり、事前記憶仮想アドレスが要求され
    た仮想アドレスと等価である場合に変換ヒット信号を出
    力して変換索引バッファに現在物理アドレスが格納され
    ていることを示すように構成されたアドレス変換制御回
    路とを含むコンピュータ・システム。
  4. 【請求項4】 バスと、 前記バスに結合された処理ユニットとを備えるコンピュ
    ータ・システムであって、前記処理ユニットは、 要求された仮想アドレスの変換を要求するプロセッサ
    と、 前記プロセッサに結合されたメモリ管理ユニットとを含
    み、そのメモリ管理ユニットは、 事前記憶仮想アドレスおよびコンテキスト識別番号を含
    む少なくとも1つの変換テーブル・エントリを有する変
    換テーブルを含む変換索引バッファと、 アドレス変換制御回路とを含み、そのアドレス変換制御
    回路は、 第1のコンテキスト番号を保持するように構成された基
    本コンテキスト記憶素子と、 第2のコンテキスト番号を保持するように構成されたグ
    ループ・コンテキスト記憶素子と、 前記基本コンテキスト記憶素子から前記第1のコンテキ
    スト番号と、前記グループ・コンテキスト記憶素子から
    前記第2のコンテキスト番号と、少なくとも1つの変換
    テーブル・エントリとから前記コンテキスト識別番号を
    受け取り、前記コンテキスト識別番号が前記第1および
    第2のコンテキスト番号のうちの1つである選択された
    コンテキスト番号と等価であるか否かを示す少なくとも
    1つのコンテキスト突合わせ信号を出力するコンテキス
    ト突合わせ回路と、 事前記憶仮想アドレスを要求された仮想アドレスと比較
    し、事前記憶仮想アドレスが要求された仮想アドレスと
    等価であるか否かを示す比較信号を出力する比較ユニッ
    トと、 前記コンテキスト突合わせ回路と前記比較ユニットとに
    結合され、前記コンテキスト突合わせ信号が前記コンテ
    キスト識別番号が前記選択されたコンテキスト番号と等
    価であることを示し、前記比較信号が事前記憶仮想アド
    レスが要求された仮想アドレスと等価であることを示す
    場合に、変換ヒット信号を出力する論理ユニットとを含
    むコンピュータ・システム。
  5. 【請求項5】 変換索引バッファを使用して電子装置か
    らの仮想アドレスを物理アドレスに変換する方法であっ
    て、 第1のコンテキスト番号を、基本コンテキスト記憶素子
    にロードするステップと、 第2のコンテキスト番号を、グループ・コンテキスト記
    憶素子にロードするステップと、 仮想アドレスに関連づけられた変換索引バッファの変換
    テーブルの変換テーブル・エントリのタグ部分を得るス
    テップであって、そのタグ部分は、コンテキスト選択ビ
    ットとコンテキスト識別番号と事前記憶仮想アドレスと
    を含むステップと、 前記第1および第2のコンテキスト番号のうちの1つを
    選択するステップと、 前記第1および第2のコンテキスト番号のうちの前記1
    つを前記コンテキスト識別番号と比較するステップと、 前記事前記憶仮想アドレスを仮想アドレスと比較するス
    テップと、 (i)前記第1および第2のコンテキスト番号のうちの
    前記1つが前記コンテキスト識別番号と等価で、(i
    i)前記事前記憶仮想アドレスが仮想アドレスと等価で
    あることを条件として、変換ヒット信号を送信するステ
    ップとを含む方法。
  6. 【請求項6】 (i)前記第1および第2のコンテキス
    ト番号が前記記憶コンテキスト番号と等価でないかまた
    は、(ii)前記記憶仮想アドレスが仮想アドレスと等
    価でないことを条件として、変換ミス信号を送信するス
    テップをさらに含む請求項5に記載の方法。
JP08721097A 1996-03-22 1997-03-24 アドレス変換制御回路及びアドレス変換方法 Expired - Lifetime JP3920395B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/620,464 US5754818A (en) 1996-03-22 1996-03-22 Architecture and method for sharing TLB entries through process IDS
US08/620464 1996-03-22

Publications (2)

Publication Number Publication Date
JPH1083352A true JPH1083352A (ja) 1998-03-31
JP3920395B2 JP3920395B2 (ja) 2007-05-30

Family

ID=24486057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08721097A Expired - Lifetime JP3920395B2 (ja) 1996-03-22 1997-03-24 アドレス変換制御回路及びアドレス変換方法

Country Status (4)

Country Link
US (1) US5754818A (ja)
EP (1) EP0797149B1 (ja)
JP (1) JP3920395B2 (ja)
DE (1) DE69707181T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008512758A (ja) * 2004-09-07 2008-04-24 フリースケール セミコンダクター インコーポレイテッド 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
WO2008155841A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427162B1 (en) * 1996-05-02 2002-07-30 Sun Microsystems, Inc. Separate code and data contexts: an architectural approach to virtual text sharing
US6247040B1 (en) * 1996-09-30 2001-06-12 Lsi Logic Corporation Method and structure for automated switching between multiple contexts in a storage subsystem target device
US6081849A (en) * 1996-10-01 2000-06-27 Lsi Logic Corporation Method and structure for switching multiple contexts in storage subsystem target device
JPH11122301A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd アドレス変換接続装置
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6122719A (en) 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6108760A (en) * 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US6633922B1 (en) * 1997-12-15 2003-10-14 International Business Machines Corporation Object access mechanism that dynamically switches between multiple distributed access models
US6240509B1 (en) * 1997-12-16 2001-05-29 Intel Corporation Out-of-pipeline trace buffer for holding instructions that may be re-executed following misspeculation
US6182210B1 (en) 1997-12-16 2001-01-30 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
US6463522B1 (en) 1997-12-16 2002-10-08 Intel Corporation Memory system for ordering load and store instructions in a processor that performs multithread execution
US6772324B2 (en) 1997-12-17 2004-08-03 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
US6226735B1 (en) 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6564311B2 (en) 1999-01-19 2003-05-13 Matsushita Electric Industrial Co., Ltd. Apparatus for translation between virtual and physical addresses using a virtual page number, a physical page number, a process identifier and a global bit
US6745317B1 (en) 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
EP1182571B1 (en) * 2000-08-21 2011-01-26 Texas Instruments Incorporated TLB operations based on shared bit
US6560690B2 (en) 2000-12-29 2003-05-06 Intel Corporation System and method for employing a global bit for page sharing in a linear-addressed cache
US7073044B2 (en) * 2001-03-30 2006-07-04 Intel Corporation Method and apparatus for sharing TLB entries
US6728858B2 (en) 2001-03-30 2004-04-27 Intel Corporation Method and apparatus including heuristic for sharing TLB entries
US7085889B2 (en) * 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory
US7017025B1 (en) * 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
US7003630B1 (en) 2002-06-27 2006-02-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor storage hierarchies
US7089397B1 (en) 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
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
US7206916B2 (en) * 2004-03-08 2007-04-17 Sun Microsystems, Inc. Partial address compares stored in translation lookaside buffer
JP4064380B2 (ja) * 2004-07-29 2008-03-19 富士通株式会社 演算処理装置およびその制御方法
US8522253B1 (en) * 2005-03-31 2013-08-27 Guillermo Rozas Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
EP2011018B1 (en) 2006-04-12 2016-07-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
EP2527972A3 (en) 2006-11-14 2014-08-06 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
US8799620B2 (en) 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
WO2012037491A2 (en) 2010-09-17 2012-03-22 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
EP2689326B1 (en) 2011-03-25 2022-11-16 Intel Corporation Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
TWI533129B (zh) 2011-03-25 2016-05-11 軟體機器公司 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊
EP2710480B1 (en) 2011-05-20 2018-06-20 Intel Corporation An interconnect structure to support the execution of instruction sequences by a plurality of engines
TWI666551B (zh) 2011-05-20 2019-07-21 美商英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
CN104040491B (zh) 2011-11-22 2018-06-12 英特尔公司 微处理器加速的代码优化器
IN2014CN03678A (ja) 2011-11-22 2015-09-25 Soft Machines Inc
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9323692B2 (en) 2014-04-17 2016-04-26 International Business Machines Corporation Managing translation of a same address across multiple contexts using a same entry in a translation lookaside buffer
US9317443B2 (en) 2014-04-17 2016-04-19 International Business Machines Corporation Managing translations across multiple contexts using a TLB with entries directed to multiple privilege levels and to multiple types of address spaces
US10977192B1 (en) * 2016-04-08 2021-04-13 Amazon Technologies, Inc. Real-time memory-page state tracking and its applications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4525778A (en) * 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5319761A (en) * 1991-08-12 1994-06-07 International Business Machines Corporation Directory look-aside table for a virtual storage system including means for minimizing synonym entries
US5630087A (en) * 1994-11-02 1997-05-13 Sun Microsystems, Inc. Apparatus and method for efficient sharing of virtual memory translations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008512758A (ja) * 2004-09-07 2008-04-24 フリースケール セミコンダクター インコーポレイテッド 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
WO2008155841A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法

Also Published As

Publication number Publication date
EP0797149B1 (en) 2001-10-10
JP3920395B2 (ja) 2007-05-30
US5754818A (en) 1998-05-19
EP0797149A3 (en) 1998-09-02
EP0797149A2 (en) 1997-09-24
DE69707181T2 (de) 2002-06-06
DE69707181D1 (de) 2001-11-15

Similar Documents

Publication Publication Date Title
JP3920395B2 (ja) アドレス変換制御回路及びアドレス変換方法
US20210374069A1 (en) Method, system, and apparatus for page sizing extension
US5752275A (en) Translation look-aside buffer including a single page size translation unit
US6230248B1 (en) Method and apparatus for pre-validating regions in a virtual addressing scheme
US5956756A (en) Virtual address to physical address translation of pages with unknown and variable sizes
US8799621B2 (en) Translation table control
US3761881A (en) Translation storage scheme for virtual memory system
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5918250A (en) Method and apparatus for preloading default address translation attributes
US5860144A (en) Addressing method and system for providing access of a very large size physical memory buffer to a number of processes
US5463739A (en) Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
US6560690B2 (en) System and method for employing a global bit for page sharing in a linear-addressed cache
EP0506236A1 (en) Address translation mechanism
US9146879B1 (en) Virtual memory management for real-time embedded devices
US6442664B1 (en) Computer memory address translation system
JPH04319747A (ja) アドレス変換機構
US10073644B2 (en) Electronic apparatus including memory modules that can operate in either memory mode or storage mode
JPH1124992A (ja) バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
US6480940B1 (en) Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module
JP2001075824A (ja) アクセス方法及びアクセス処理プログラムを記録した記録媒体
JPH077355B2 (ja) 情報処理装置
JP2000172564A (ja) キャッシュ一致保証制御を行う情報処理装置
JPH04358242A (ja) アドレス変換装置およびアドレス変換方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040324

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140223

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term