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

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

Info

Publication number
JP3920395B2
JP3920395B2 JP08721097A JP8721097A JP3920395B2 JP 3920395 B2 JP3920395 B2 JP 3920395B2 JP 08721097 A JP08721097 A JP 08721097A JP 8721097 A JP8721097 A JP 8721097A JP 3920395 B2 JP3920395 B2 JP 3920395B2
Authority
JP
Japan
Prior art keywords
context
virtual address
translation
equivalent
address
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.)
Expired - Lifetime
Application number
JP08721097A
Other languages
English (en)
Other versions
JPH1083352A (ja
Inventor
アーメッド・ハッサン・モハメッド
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

Images

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)

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のセグメント部分111の内容によってその基底アドレス・セットを有するセグメント・テーブル130内のエントリ131の内容にアクセスするための索引として使用される。同様に、エントリ131の内容は、ページ・エントリ141の内容にアクセスするために、その基底アドレスとしてページ部分112を有するページ・テーブル140の索引として使用される。仮想アドレス110のページ・オフセット113と組み合わされたページ・エントリ141の内容が、物理アドレス150を形成する。
【0004】
64ビット・アドレス空間をサポートするプロセッサの登場により、順送りページ・テーブル方式を使用するMMUに付随するいくつかの欠点がある。1つの欠点は、この方式が共有をテーブルの細分性(たとえばSuperSPARCTMアーキテクチャの場合は256キロバイト、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の入力端子に結合されている制御線261をアクティブにする。この例では、第1の論理ゲート262はORゲートとして機能するように設計されている。制御線261がアクティブになるかまたはグローバル・ビット233がアクティブの場合、第1の論理ゲート262は第2の論理ゲート265の第1の入力端子に結合された制御線263をアクティブにする。
【0008】
さらに、TTEタグ230に入っている事前記憶済み仮想アドレス231が、変換するためにプロセッサによって直接供給された「プロセッサ仮想アドレス」236と呼ばれる要求仮想アドレスと比較される。この比較は第2の比較器270によって行われる。これらの仮想アドレスが同じであるか(ビット単位比較)、または等価である(ビット単位または非ビット単位比較)場合、第2の比較器270は第2の論理ゲート265の第2の入力端子に結合されている制御線264をアクティブにする。両方の入力端子が「アクティブ」信号を受け取った場合、第2の論理ゲート265は変換「ヒット」信号を送って、オペレーティング・システム・ソフトウェアに、TLBの変換テーブル内に変換が見つかったことを通知する。それ以外の場合は、すべての仮想−物理アドレス変換が入っているカーネル・ページ・テーブル内のエントリから変換を入手する。
【0009】
一般に、前述の従来のソフトウェア管理TLB変換方式では、複数のプロセスが物理オブジェクト(たとえば共有ライブラリ、メモリなど)を共有することができる。これらのプロセスは、単一の仮想アドレスを使用して共有物理ページにマップする。しかし、この変換方式は、それらのプロセスが同じ変換情報を使用する場合でも別々の各プロセスに別々のページ・テーブル・エントリとTTEを割り当てるため、カーネル・メモリやTLBなどの割振りメモリ使用を最適化することができない。
【0010】
最近、単一の変換エントリを共有するために同じ物理アドレス空間にマップする同様の仮想アドレスを使用して異なるアドレス空間からの変換ができるようにする他の変換方式が導入されている。この方式を「共通マスク」方式と呼ぶ。図2Cに示すように、共通マスク方式は、共有ビット235をアクティブにするとプロセスによって共有される1組の共通領域(すなわち共有物理ページ)を識別するビット・ベクトル234を使用してTTE210のコンテキストID232を拡張する。共有ビット235がアクティブでない場合は、ビット・ベクトル234は、非共有変換に使用される元のコンテキストIDを表す。共通マスク方式は、ユーセフA.ハリーディー(Yousef A.Khalidi)およびマドスードハン・タルリー(Madhusudhan Talluri)著「Improving the Address Translation Performance of Widely Shared 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】
本発明は、アドレス変換資源を共有するとき、いくつかのプロセスが変換索引バッファ(「TLB」)の同じ変換テーブル・エントリ(「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〜350nの1つから発信され、送受信ユニット330(たとえばモデム)から受け取った情報を伝播する。
【0020】
図3にはさらに、プロセッサ306と、メイン・メモリ310内のデータにアクセスするときにプロセッサ306が仮想アドレスを物理アドレスに変換するために使用するメモリ管理ユニット(「MMU」)307とを含む処理装置305が図示されている。MMU307は、主としてオペレーティング・システム・ソフトウェア(図示せず)とそのアドレス変換制御回路の両方によって制御されるTLB308と、複数のコンテキスト記憶素子(たとえばレジスタおよびその他の記憶構成要素)、すなわち基本コンテキスト記憶素子309aと、少なくとも1つのグループ・コンテキスト記憶素子309bを含む。基本コンテキスト記憶素子309aは、現行プロセスを固有に規定するために使用するコンテキスト識別番号を保持し、グループ・コンテキスト記憶素子309bは物理ページを共有するプロセスのコンテキスト識別標識として使用される。メイン・メモリ310は通常、メモリ・コントローラ311を含み、メモリ・コントローラ311はプロセッサ306から物理アドレスを受け取り、たとえばダイナミック・ランダム・アクセス・メモリ(「DRAM」)、ビデオ・ランダム・アクセス・メモリ(「VRAM」)および同様のものなどの記憶素子312からのデータのアクセスを制御する。
【0021】
コンピュータ・システム300では、以下に述べるように仮想−物理アドレス変換が行われる。まず、プロセッサ306が要求された仮想アドレスを生成し、要求された仮想アドレスをMMU307に転送する。MMU307、具体的にはアドレス変換制御回路は、物理アドレス探索を行い、その際、要求された仮想アドレスとコンテキスト情報(すなわち後述するグローバル・ビット、コンテキスト選択ビット、およびコンテキストID)を使用して、要求された仮想アドレスの変換情報がTLB308に格納されているかどうかを確認する。要求された仮想アドレスの物理アドレスがTLB308に入っている場合、TLB308は変換「ヒット」信号を出力し、次にプロセッサ306にその物理アドレスを渡す。その物理アドレスがTLB308に入っていない場合は、MMU307がプロセッサ306に変換「ミス」信号を送信することによってトラップを生成する。その後、オペレーティング・システム・ソフトウェアが、すべての仮想−物理アドレス変換を含むカーネル・ページ・テーブルの探索を行って、物理アドレスを入手し、プロセッサ306にそのアドレスを送る。
【0022】
図4を参照すると、組み合わさってアドレス変換を行うオペレーティング・システム・ソフトウェアとTLBのデータ構造体が図示されている。これらのデータ構造体については、本出願の出願人による「Separate Code And Data Contexts:An Architectural Approach To Virtual Text Sharing」という名称の同時出願米国特許出願(代理人整理番号第082225.P1176号)で詳しく開示されており、これは参照により本明細書に組み込まれる。これらのデータ構造体は、カーネル・ページ・テーブル410と、変換ソフトウェア・バッファ420と、TLB430とを含む。カーネル・ページ・テーブル410は、物理メモリに関連づけられたすべての物理ページを管理する。変換ソフトウェア・バッファ420は、基本的に、最も最近に使用されたアドレス変換のキャッシュとして機能する。これはこの変換方式の速度を高速化するので実装されることが好ましいが、任意選択であるのは明らかである。TLB430は、アドレス変換制御回路によって制御されてキャッシュと同様にして動作するメモリ(たとえば変換テーブル)である。TLB430は、選択された変換テーブル・エントリ(「TTE」)のタグを受け取り、そのTTEタグのビット部分を使用して、要求仮想アドレスに関連づけられた物理アドレスがTLB430に格納されているかどうかを確認する。
【0023】
図4を続けて参照すると、異なるプロセスが同じアプリケーションを実行し、同じ仮想アドレスを使用して同じ物理ページを参照するときは、資源が二重化されることが明らかである。本質的には、共通セグメントを使用するプロセスの数を確認し、共通セグメントをグループ・コンテキスト番号「k」によって識別される代理アドレス空間に分解することによって、グループ・プロセスを形成する。このグループ・プロセスは、このアドレス変換方式が以下の条件を採用して正確なアドレス指定を保証する限り、複数のプロセスに関連づけられたただ一つのTTEを使用する。1つの条件は、すべての参加プロセスについてすべての共有セグメントが同じ仮想アドレスにマップされなければならないことである。これによって、共有セグメントの仮想アドレスから物理アドレスへのアドレス変換がグループ内のすべてのプロセスについて同じになることが保証される。第2の条件は、グループ・コンテキスト番号によってアドレス指定されるアドレス空間が、基本コンテキスト番号に関連づけられた各専用アドレス空間とは別個のものであることである。言い換えると、1つのプロセスにおいて共有セグメントにアクセスする仮想アドレスは、そのグループのすべてのプロセスにおいて同じ共有セグメントにアクセスしなければならない。これによって、グループ内の1つのプロセスが、仮想アドレスにある専用セグメントをマップし、次にグループ内の残りのプロセスが異なる共有セグメントをマップするといことがなくなる。
【0024】
図5を参照すると、TLBの各エントリに関連づけられたアドレス変換制御回路500は、コンテキスト突合わせ回路520と、少なくとも1つの比較ユニット540と、複数の論路ゲート560および570とを備える。アドレス変換制御回路500は、コンピュータ・アーキテクチャ内に実装された基本コンテキスト記憶素子309aとグループ・コンテキスト記憶素子309bの両方からコンテキスト情報を受け取る。コンテキスト記憶素子309a〜309bには、「m」ビットのサイズのコンテキスト番号が入る(「m」は任意のサイズ)。さらに、アドレス変換制御回路500は、特定のプロセスまたはプロセスのグループに関連づけられたTTEタグ580を受け取る。図のように、TTEタグ580はいくつかのビット・フィールドを含むように修正されている。これらのビット・フィールドにはグローバル・ビット・フィールド581、コンテキスト選択ビット・フィールド582、コンテキスト番号ビット・フィールド、および事前記憶仮想アドレス584を保持するビット・フィールドが含まれるが、これらだけに限定されない。TTEタグ230は、64ビット幅(「TAG[63:0]」)であることが好ましく、そのうち事前記憶仮想アドレスが42ビット幅(「TAG[41:0]」)、コンテキスト番号フィールドが13ビット幅(「TAG[60−48]」)、コンテキスト選択ビット・フィールドおよびグローバル・ビット・フィールド(「TAG[62]」および「TAG[63]」)が1ビット幅であることが好ましい。TTEタグ230のフィールドは、選定したコンピュータ・アーキテクチャに応じて他のビット・サイズとすることができる。
【0025】
コンテキスト突合わせ回路520は、TTEタグ580内のコンテキスト番号ビット・フィールド583(サイズは「r」ビット)に入っているコンテキスト識別番号を、基本コンテキスト記憶素子309aまたはグループ・コンテキスト記憶素子309bに入っているコンテキスト番号と比較するように構成されている。コンテキスト選択ビット582は、どのコンテキスト番号をTTEタグ580内のコンテキスト識別番号と比較するか、すなわち、コンテキスト番号を基本コンテキスト記憶素子309a(コンテキスト選択ビット582がイナクティブの場合)から入手するか、それともグループ・コンテキスト記憶素子309b(コンテキスト選択ビット582がアクティブの場合)から入手するかを動的に選択する。事前記憶仮想アドレス584が「共有」ページに関連づけられている場合、オペレーティング・システム・ソフトウェアはアクティブなコンテキスト選択ビット582をロードする。それに対して、事前記憶仮想アドレス584が「非共有」ページと関連づけられている場合は、コンテキスト選択ビット582はイナクティブである。
【0026】
コンテキスト突合わせ回路520は、コンテキスト番号が一致していると判断した場合、アクティブ・コンテキスト突合わせ信号を第1の論理ゲート560の第1の入力端子に入力する。第1の論理ゲート560はORゲートとして機能する。一致していないと判断した場合は、イナクティブ・コンテキスト突合わせ信号が第1の論理ゲート560の第1の入力端子に転送される。さらに、特定の変換はコンテキストに依存しない場合があるため、グローバル・ビット581が第1の論理ゲート560の第2の入力端子に入力される。すべてのプロセスがオペレーティング・システム・カーネルを、そのアドレス空間の同じ仮想アドレスにマップするので、たとえば、グローバル・ビット581はオペレーティング・システムに対してオペレーティング・システム自体に単一のTTEを使用する仕組みを与える。しかし、オペレーティング・システムには現在、別個の保護ドメインが割り振られ、それによってオペレーティング・システムはより大きな仮想アドレスを持つことができるため、このアーキテクチャはあまり頻繁には使用されない。現在の多くのアーキテクチャではグローバル・ビット581を使用することができないため、その使用はこのアドレス指定アーキテクチャにとっては任意選択である。
【0027】
第1の論理ゲート560の入力の一方がアクティブ信号を受け取った場合、第1の論理ゲート560は、第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および比較ユニット522として図示されている。マルチプレクシング・ユニット521は、入力値として基本コンテキスト記憶素子309aのコンテキスト番号と、グループ・コンテキスト記憶素子309bのコンテキスト番号と、TTEタグのコンテキスト選択ビットのビット値に基づく選択信号とを受け取る「r」デュアル入力マルチプレクサを特徴としている。しかし、コンテキスト選択フィールドのビット・サイズとマルチプレクサの構成および特性によって、他の実施形態も使用することができる。比較ユニット522はデュアル入力比較器として図示されているが、他の構成要素も使用可能である。
【0029】
この実施形態では、コンテキスト選択ビットに従ってどちらのコンテキスト番号を選択しても、それが比較ユニット522の第1の入力端子に入力される。TTEタグに入っているコンテキスト識別番号が比較ユニット522の第2の入力端子に入力され、この2つの値が比較される。両者が同じ場合、比較ユニット522はアクティブ比較信号を第1の論理ゲート560の第1の入力端子に出力する。同じでない場合は、第1の論理ゲート560にイナクティブ比較信号を出力する。
【0030】
図6Bにコンテキスト突合わせ回路の他の実施形態を示す。この実施形態では、グループ・コンテキスト記憶素子と基本コンテキスト記憶素子の双方のコンテキスト番号が、それぞれ比較ユニット530と531の第1の入力端子に入力される。これらのコンテキスト番号は並列して、TTEタグによって与えられるコンテキスト識別番号と比較される。その結果、比較ユニット530および531はそれぞれの比較信号を出力し、それがそれぞれANDゲートとして機能する第1および第2の突合わせ論理ゲート532および533の第1の入力端子に入力される。第1の突合わせ論理ゲート532は、第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の変換テーブルのデータ構造体とTTEエントリを示すブロック図(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、530、531、540 比較ユニット、532、533 突合わせ論理ゲート。

Claims (6)

  1. プロセッサと、事前記憶仮想アドレスおよびコンテキスト識別番号を含む少なくとも1つの変換テーブル・エントリを有する変換テーブルを含む変換索引バッファと協調して動作するように構成され、プロセッサから要求された仮想アドレスを物理アドレスに変換するように構成されたアドレス変換制御回路であって、
    第1のコンテキスト記憶素子に第1のコンテキスト番号が含まれ、第2のコンテキスト記憶素子に第2のコンテキスト番号が含まれる複数のコンテキスト記憶素子と、
    コンテキスト突合わせ回路であって、
    (i)前記第1のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、(ii)第1のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第1の比較信号を出力する第1の比較ユニットと、
    (i)入力として第1の比較信号とコンテキスト選択ビットを受け、
    (ii)第1のコンテキスト突合わせ信号を第1の論理ユニットに出力する第1の突合わせ論理ゲートと、
    (i)前記第2のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、(ii)第2のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第2の比較信号を出力する第2の比較ユニットと、
    前記コンテキスト選択ビットを受けてこれを反転するインバータと、
    (i)入力として第2の比較信号と前記コンテキスト選択ビットの補数を受け、
    (ii)第2のコンテキスト突合わせ信号を前記第1の論理ユニットに出力する第2の突合わせ論理ゲートとを含むコンテキスト突合わせ回路と、
    事前記憶仮想アドレスを要求仮想アドレスと比較し、事前記憶仮想アドレスが要求仮想アドレスと等価であるか否かを示す比較信号を出力する比較ユニットと、
    前記第1の論理ユニットと前記比較ユニットとに結合し、前記コンテキスト識別番号が選択されたコンテキスト番号と等価であることを前記コンテキスト突合わせ信号が示し、かつ、事前記憶仮想アドレスが要求された仮想アドレスと等価であることを前記比較信号が示す場合に、変換ヒット信号を出力するように構成された第2の論理ユニットと、を備えるアドレス変換制御回路。
  2. プロセッサと、事前記憶仮想アドレスおよびコンテキスト識別番号を含む少なくとも1つの変換テーブル・エントリを有する変換テーブルを含む変換索引バッファと協調して動作するように構成され、プロセッサから要求された仮想アドレスを物理アドレスに変換するように構成されたアドレス変換制御回路であって、
    第1のコンテキスト番号を記憶するように構成された基本コンテキスト記憶素子と、
    第2のコンテキスト番号を記憶するように構成されたグループ・コンテキスト記憶素子と、
    コンテキスト突合わせ回路であって、
    (i)前記第1のコンテキスト番号と少なくとも1つの変換テーブル・エントリから前記コンテキスト識別番号を受けて両者を比較し、
    (ii)第1のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第1の比較信号を出力する第1の比較ユニットと、
    (i)入力として第1の比較信号とコンテキスト選択ビットを受け、
    (ii)第1のコンテキスト突合わせ信号を第1の論理ユニットに出力する第1の突合わせ論理ゲートと、
    (i)前記第2のコンテキスト番号と少なくとも1つの変換テーブル・エントリから前記コンテキスト識別番号を受けて両者を比較し、
    (ii)第2のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第2の比較信号を出力する第2の比較ユニットと、
    前記コンテキスト選択ビットを受けてこれを反転するインバータと、
    (i)入力として第2の比較信号と前記コンテキスト選択ビットの補数を受け、
    (ii)第2のコンテキスト突合わせ信号を前記第1の論理ユニットに出力する第2の 突合わせ論理ゲートとを含むコンテキスト突合わせ回路と、
    事前記憶仮想アドレスを要求仮想アドレスと比較し、事前記憶仮想アドレスが要求仮想アドレスと等価であるか否かを示す比較信号を出力する比較ユニットと、
    前記第1の論理ユニットと前記比較ユニットとに結合し、前記コンテキスト識別番号が選択されたコンテキスト番号と等価であることを前記コンテキスト突合わせ信号が示し、かつ、事前記憶仮想アドレスが要求された仮想アドレスと等価であることを前記比較信号が示す場合、変換ヒット信号を出力するように構成された第2の論理ユニットと、を備えるアドレス変換制御回路。
  3. バスと、
    前記バスに結合された処理ユニットとを備えるコンピュータ・システムであって、
    前記処理ユニットが、
    要求された仮想アドレスを物理アドレスに変換する要求を発行するように構成されたプロセッサと、
    前記プロセッサに結合されたメモリ管理ユニットとを含み、
    そのメモリ管理ユニットは、
    事前記憶仮想アドレスとコンテキスト識別番号とを含む少なくとも1つの変換テーブル・エントリを有する変換テーブルを含む変換索引バッファと、
    アドレス変換制御回路とを含み、
    そのアドレス変換制御回路は、
    第1のコンテキスト番号を記憶するように構成された基本コンテキスト記憶素子と、
    第2のコンテキスト番号を記憶するように構成されたグループ・コンテキスト記憶素子と、
    コンテキスト突合わせ回路であって、
    (i)前記第1のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、
    (ii)第1のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第1の比較信号を出力する第1の比較ユニットと、
    (i)入力として第1の比較信号とコンテキスト選択ビットを受け、
    (ii)第1のコンテキスト突合わせ信号を第1の論理ユニットに出力する第1の突合わせ論理ゲートと、
    (i)前記第2のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、
    (ii)第2のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第2の比較信号を出力する第2の比較ユニットと、
    前記コンテキスト選択ビットを受けてこれを反転するインバータと、
    (i)入力として第2の比較信号と前記コンテキスト選択ビットの補数を受け、
    (ii)第2のコンテキスト突合わせ信号を前記第1の論理ユニットに出力する第2の突合わせ論理ゲートとを含むコンテキスト突合わせ回路と、
    事前記憶仮想アドレスを要求仮想アドレスと比較し、事前記憶仮想アドレスが要求仮想アドレスと等価であるか否かを示す比較信号を出力する比較ユニットと、
    前記第1の論理ユニットと前記比較ユニットとに結合し、前記コンテキスト識別番号が選択されたコンテキスト番号と等価であることを前記コンテキスト突合わせ信号が示し、かつ、事前記憶仮想アドレスが要求された仮想アドレスと等価であることを前記比較信号が示す場合に、変換ヒット信号を出力するように構成された第2の論理ユニットと、を含むコンピュータ・システム。
  4. バスと、
    前記バスに結合された処理ユニットとを備えるコンピュータ・システムであって、
    前記処理ユニットは、
    要求された仮想アドレスの変換を要求するプロセッサと、
    前記プロセッサに結合されたメモリ管理ユニットとを含み、
    そのメモリ管理ユニットは、
    事前記憶仮想アドレスおよびコンテキスト識別番号を含む少なくとも1つの変換テーブル・エントリを有する変換テーブルを含む変換索引バッファと、
    アドレス変換制御回路とを含み、
    そのアドレス変換制御回路は、
    第1のコンテキスト番号を保持するように構成された基本コンテキスト記憶素子と、
    第2のコンテキスト番号を保持するように構成されたグループ・コンテキスト記憶素子と、
    コンテキスト突合わせ回路であって、
    (i)前記第1のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、
    (ii)第1のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第1の比較信号を出力する第1の比較ユニットと、
    (i)入力として第1の比較信号とコンテキスト選択ビットを受け、
    (ii)第1のコンテキスト突合わせ信号を第1の論理ユニットに出力する第1の突合わせ論理ゲートと、
    (i)前記第2のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、
    (ii)第2のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第2の比較信号を出力する第2の比較ユニットと、
    前記コンテキスト選択ビットを受けてこれを反転するインバータと、
    (i)入力として第2の比較信号と前記コンテキスト選択ビットの補数を受け、
    (ii)第2のコンテキスト突合わせ信号を前記第1の論理ユニットに出力する第2の突合わせ論理ゲートとを含むコンテキスト突合わせ回路と、
    事前記憶仮想アドレスを要求仮想アドレスと比較し、事前記憶仮想アドレスが要求仮想アドレスと等価であるか否かを示す比較信号を出力する比較ユニットと、
    前記第1の論理ユニットと前記比較ユニットとに結合し、前記コンテキスト識別番号が選択されたコンテキスト番号と等価であることを前記コンテキスト突合わせ信号が示し、かつ、事前記憶仮想アドレスが要求された仮想アドレスと等価であることを前記比較信号が示す場合に、変換ヒット信号を出力するように構成された第2の論理ユニットと、を含むコンピュータ・システム。
  5. 変換索引バッファを使用して電子装置からの仮想アドレスを物理アドレスに変換する方法であって、
    第1のコンテキスト番号を、基本コンテキスト記憶素子にロードするステップと、
    第2のコンテキスト番号を、グループ・コンテキスト記憶素子にロードするステップと、
    仮想アドレスに関連づけられた変換索引バッファの変換テーブルの変換テーブル・エントリのタグ部分を得るステップであって、そのタグ部分は、コンテキスト選択ビットとコンテキスト識別番号と事前記憶仮想アドレスとを含むステップと、
    前記第1のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、第1のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第1の比較信号を出力するステップと、
    入力として第1の比較信号とコンテキスト選択ビットを受け、第1のコンテキスト突合わせ信号を第1の論理ユニットに出力するステップと、
    前記第2のコンテキスト番号と前記コンテキスト識別番号を受けて両者を比較し、第2のコンテキスト番号がコンテキスト識別番号と等価であるか否かを示す第2の比較信号を出力するステップと、
    前記コンテキスト選択ビットを反転するステップと、
    入力として第2の比較信号と前記コンテキスト選択ビットの補数を受け、第2のコンテキスト突合わせ信号を前記第1の論理ユニットに出力するステップと、
    前記事前記憶仮想アドレスを仮想アドレスと比較するステップと、
    (i)前記第1のコンテキスト番号が前記コンテキスト識別番号と等価であることを前記第1のコンテキスト突合わせ信号が示すか、或いは、前記第2のコンテキスト番号が前記コンテキスト識別番号と等価であることを前記第2のコンテキスト突合わせ信号が示すこと、及び
    (ii)前記事前記憶仮想アドレスが仮想アドレスと等価であることを条件として、該当する仮想−物理アドレス変換が変換索引バッファ内に含まれていることをオペレーティング・システム・ソフトウェアに通知する変換ヒット信号を送信するステップと、を含む方法。
  6. (i)前記第1のコンテキスト番号が前記コンテキスト識別番号と等価でないことを前記第1のコンテキスト突合わせ信号が示し、かつ、前記第2のコンテキスト番号が前記コンテキスト識別番号と等価でないことを前記第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/620464 1996-03-22
US08/620,464 US5754818A (en) 1996-03-22 1996-03-22 Architecture and method for sharing TLB entries through process IDS

Publications (2)

Publication Number Publication Date
JPH1083352A JPH1083352A (ja) 1998-03-31
JP3920395B2 true 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)

Families Citing this family (63)

* 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
US6182210B1 (en) 1997-12-16 2001-01-30 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
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
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
US7003630B1 (en) 2002-06-27 2006-02-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor storage hierarchies
US7017025B1 (en) * 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
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 富士通株式会社 演算処理装置およびその制御方法
EP1807767A1 (en) * 2004-09-07 2007-07-18 Freescale Semiconductors, Inc. A virtual address cache and method for sharing data stored in a virtual address cache
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
CN101449256B (zh) 2006-04-12 2013-12-25 索夫特机械公司 对载明并行和依赖运算的指令矩阵进行处理的装置和方法
EP2523101B1 (en) 2006-11-14 2014-06-04 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
WO2008155841A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
TWI520070B (zh) 2011-03-25 2016-02-01 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段
WO2012135031A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
WO2012162188A2 (en) 2011-05-20 2012-11-29 Soft Machines, Inc. Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
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
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
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
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
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
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
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
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation 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
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3920395B2 (ja) アドレス変換制御回路及びアドレス変換方法
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
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US5526504A (en) Variable page size translation lookaside buffer
US8799621B2 (en) Translation table control
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5257361A (en) Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation
US7353361B2 (en) Page replacement policy for systems having multiple page sizes
US5860144A (en) Addressing method and system for providing access of a very large size physical memory buffer to a number of processes
US9146879B1 (en) Virtual memory management for real-time embedded devices
JPS623359A (ja) 仮想記憶方式
JPH04320553A (ja) アドレス変換機構
JPH04319747A (ja) アドレス変換機構
US10073644B2 (en) Electronic apparatus including memory modules that can operate in either memory mode or storage mode
JP4021555B2 (ja) バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
US7024536B2 (en) Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same
GB2386441A (en) Bus interface selection by page table attributes
US20230350811A1 (en) Real time input/output address translation for virtualized systems
JPH10143431A (ja) マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法
US5727179A (en) Memory access method using intermediate addresses
US6480940B1 (en) Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module
US6766435B1 (en) Processor with a general register set that includes address translation registers

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