JP3998787B2 - 様々なデフォルト・アドレス変換属性を事前ロードする方法および装置 - Google Patents
様々なデフォルト・アドレス変換属性を事前ロードする方法および装置 Download PDFInfo
- Publication number
- JP3998787B2 JP3998787B2 JP35482697A JP35482697A JP3998787B2 JP 3998787 B2 JP3998787 B2 JP 3998787B2 JP 35482697 A JP35482697 A JP 35482697A JP 35482697 A JP35482697 A JP 35482697A JP 3998787 B2 JP3998787 B2 JP 3998787B2
- Authority
- JP
- Japan
- Prior art keywords
- translation
- default
- attribute
- address
- conversion
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
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
【発明の属する技術分野】
本発明はコンピュータ・システムの分野に関する。詳細には、本発明はメモリ管理の領域に関する。
【0002】
【従来の技術】
メモリ・アドレッシング方式は、仮想メモリを実施するためにページングと呼ばれる技術をしばしば使用する。ページングを使用する場合、仮想アドレス空間(すなわち、プロセッサの実行ユニット、またはプロセッサのセグメンテーション・ユニットに関連する実行ユニットのどちらかによって発生するアドレス空間)は、ページと呼ばれる固定サイズのブロックに分割され、それらのおのおのはシステム上で利用できるいずれかの物理アドレス(すなわち、ハードウェアの記憶場所に対応するアドレス)にマップされる。通常のコンピュータ・システムでは、メモリ管理ユニットは、ページング・アルゴリズムにしたがって1つまたは複数のページ・テーブルを使用して、仮想アドレスの物理アドレスへのマッピングを判定および継続する。
【0003】
プロセッサの実行ユニットから仮想アドレスを受けると、通常のメモリ管理ユニットは、最初にページ・テーブルを使用して、仮想アドレスをそれに対応する物理アドレスに変換する。ページ・テーブルはしばしば主記憶装置に記憶されているので、ページ・テーブルへのアクセスには時間がかかる。ページング変換の速度を上げるために、ある種のコンピュータ・システムは、最も最近に使用した変換を、変換索引バッファまたはTLB(しばしばプロセッサに配置される、より高速のメモリ)に記憶する。変換を必要とする仮想アドレスが発生すると、メモリ管理ユニットは最初にTLBの変換を検索し、その後ページ・テーブルにアクセスする。TLBに変換が記憶されている場合は、TLB「ヒット」が現れ、TLBは変換を行う。しかし、変換がTLBに記憶されていない場合は、TLB「不在」が現れ、ページ不在ハンドラが呼び出されてページ・テーブルにアクセスし、変換を実行する。
【0004】
ページ不在ハンドラを処理するために、幾つかの異なる技術が利用されるが、その中には、1)ページ・テーブルにアクセスするためのプロセッサ上のハードウェア(「ハードウェア・ページ不在ハンドラ」と呼ばれる)、2)実行するとページ・テーブルのアクセスを制御するオペレーティング・システム・ルーチン(「ソフトウェア・ページ不在ハンドラ」と呼ばれる)などが含まれる。ある種のシステムは、TLB不在を処理する多数の技術を使用する。例えば、1つのシステムでは、ハードウェア・ページ不在ハンドラを使用してハッシュされたページ・テーブルにアクセスし、ソフトウェア・ページ不在ハンドラを使用してハッシュされていないページ・テーブルの移動を制御する。したがってここでは、「ページ不在ハンドラ」という語句は、別のアドレス変換ユニットが変換を行わない場合に、変換を行うための任意の技術を指すのに使用される。
【0005】
ソフトウェア・ページ不在ハンドラを使用する際には、TLB不在が発生すると、プロセッサは現行処理の実行を中断し、中断した処理の実行環境(すなわち中断した処理の実行再開に必要な情報)を記憶し、ソフトウェア・ページ不在ハンドラを実行してページング変換を実施することになる。ソフトウェア・ページ不在ハンドラを実行すると変換が生じ、通常その変換はTLBに導入される。ソフトウェア・ページ不在ハンドラが完了すると、プロセッサは中断した処理の実行を再開する。
【0006】
ある種のコンピュータ・システムは、現在では、アドレス拡張を使用して仮想アドレス空間をさらにその各領域に分割するが、個々の各領域は1つまたは複数のページを含むことができる。各領域はそれぞれ、領域識別子(「アドレス空間識別子」とも呼ばれる)によって識別される。ある種のコンピュータ・システムでは、Nビットの仮想アドレスを使用して、2 N 個の異なる仮想アドレス空間の領域を識別する。2 N 個の領域はそれぞれ、任意数の異なる用途に使用される可能性がある。さらに、仮想メモリの異なる領域の異なる様々な用途がそれぞれ、異なるメモリ・アクセス文字(たとえば局所的、大域的など)を有する場合がある。
【0007】
TLBへの変換の導入は、通常は一つまたは複数のTLB導入レジスタを使用して行われる。例えば、ページ不在ハンドラはTLB導入レジスタに変換を記憶し、その変換をTLBに収納させるようにプロセッサに命令する。TLB導入レジスタは、しばしば領域識別フィールド、変換属性フィールド、仮想ページ番号フィールド、および物理ページ番号フィールドを含む。変換属性フィールドは、アクセス中のページの様々な文字を識別するデータ(例えばアクセス保護など)を記憶するために使用される。
【0008】
【発明が解決しようとする課題】
通常のコンピュータ・システムは、ページ不在を認識すると、1)仮想ページ番号および領域識別子をTLB導入レジスタにロードし、2)ページ不在ハンドラに命令して物理ページ番号およびその属性をTLB導入レジスタにロードさせる。一領域中の各ページの属性は変化する可能性があるが、一領域中の各ページの大部分はしばしば同じ属性を有する。ただし、ページ不在ハンドラは、変換が収納されるたびに、一領域中の個々のページの属性をロードしなければならない。TLBの充填は他のタイプのイベント(例えば、除外、割り込み、オペレーティング・システムの呼び出しなど)よりはるかに高い率で起こるので、ページ不在ハンドラはできる限り簡素化されることが望ましい。本発明はそれを実現することを目的とする。
【0009】
【課題を解決するための手段】
仮想アドレスから物理アドレスへの変換の変換ユニットへの導入を簡素化するための方法および装置について記述する。本発明の1つの態様によれば、コンピュータ・システムで使用する装置は、一般に変換ユニット、デフォルト属性記憶区域、および事前ロード・ユニットを含む状態で提供される。変換ユニットは仮想アドレスを物理アドレスに変換する変換を記憶し、これらの個々の変換は属性フィールドを含む。デフォルト変換属性記憶区域は、幾つかのデフォルト変換属性を記憶する。事前ロード・ユニットは、デフォルト変換ユニットおよび変換ユニットに結合される。仮想アドレスの変換が変換ユニットに記憶されていないことを示す信号を変換ユニットから受信すると、これに応答して事前ロード・ユニットは、適当なデフォルト変換属性を変換ユニットへ伝送する。
【0010】
本発明は、以下の説明および本発明を図示する添付の図面を参照することによって、最も良く理解することができよう。
【0011】
【発明の実施の形態】
以下の記述では、多数の特定の詳細を示し、本発明を全体的に理解することができるようにする。ただし、これらの詳細を含まずに本発明を実行する場合があることを理解されたい。その他の例では、不必要に本発明を不明瞭にしないために、周知の回路、構造、および技術については詳細に示していない。
【0012】
概要
TLBの充填を簡素化するための方法および装置について記述する。一実施形態では、プロセッサは記憶区域を含み、幾つかの異なる仮想アドレス・セットの個々に対するデフォルト変換属性を記憶する。TLB不在に応答して、プロセッサはTLB導入レジスタに、仮想アドレスの適当なデフォルト変換属性を事前ロードする。事前ロードされたデフォルト変換属性が妥当な場合は、ページ不在ハンドラはTLB導入レジスタの属性フィールドをロードせず、TLB充填の性能は向上する。しかし、このデフォルト変換属性が妥当でない場合は、ページ不在ハンドラは妥当な属性をこの事前ロードされたデフォルト属性に単に上書きする。代替の実施形態では、デフォルト変換属性は、TLBのエントリに直接事前ロードされ、TLB導入レジスタは、使用される場合も使用されない場合もあり、また存在する場合も存在しない場合もある。
【0013】
本発明の一実施形態
図1は、あるビット数の仮想アドレスによってアドレス指定することができる、異なる仮想領域を図示するブロック・ダイアグラムである。図1は、0から63までの番号が付けられた、64個のビットを有する仮想アドレス100を示す図である。本発明の一実施形態では、仮想アドレス100の上側ビットN個を使用して、2N 個の異なる仮想領域105を識別する。したがって、図1に図示する例に示すように、異なる個々の仮想領域は、2(64-N)バイトのアドレス指定可能な空間を有する。この実施形態は64ビット・コンピュータ・システムに関連して記述しているが、本発明は64ビット・コンピュータ・システムに限定されるものではない。
【0014】
異なる実施形態では、任意数の異なる属性を、任意数の異なる方法で領域およびページに割り当てる場合がある。例えば、異なる実施形態では、任意数の異なる方法で仮想領域をページに分解することができる。例えば、個々の仮想領域は一つまたは複数のページを含むことができる、領域ごとに異なるサイズのページを含むことができる、同一の領域がサイズの異なるページを含むことができる、などがある。さらに、異なる実施形態では、任意数の異なる方法でアクセス保護基準を指定することができる。例えば、同一の保護キーがある領域のあらゆるページに対して使用される場合がある、個々のページにそれ自体の保護キーがある場合があるなど。さらに、異なる実施形態では、任意数の異なる方法でキャッシュ方式を扱うことができる。例えば、同一のキャッシング・プロトコルがある領域のあらゆるページに対して使用される場合がある、個々のページがそれ自体のキャッシング・プロトコルをもつ場合があるなど。アドレス拡張を使用して仮想空間の異なる領域を識別する一実施形態について記述したが、代替の実施形態が異なる仮想領域をサポートする必要はない。
【0015】
図2は、本発明の一実施形態の例示的な実施を図示するブロック・ダイアグラムである。図2は、物理アドレス205への変換を必要とする、Kビットを含む仮想アドレス200を示す図である。仮想アドレス200は仮想領域識別フィールド210、仮想ページ番号フィールド220、およびオフセット・フィールド215を含む。オフセット・フィールド215はmビットを含む。多数のページ・サイズ(例えば4K、16K,4M)がサポートされている実施形態では、オフセット・フィールド215および仮想ページ番号フィールド220のビット数は、仮想アドレスが属するページ・サイズに左右される。オフセットの可変サイズを、図2に、オフセット・フィールド215と仮想ページ番号フィールド220の間の破線によって図示する。
【0016】
一実施形態では、仮想領域識別子フィールド210のNビットを使用して、レジスタ・セット225中の1つのレジスタを識別する。レジスタ・セット225は2 N 個のレジスタを含み、その時点で実行中の処理に関連する個々の領域の、領域識別子およびデフォルト変換属性を記憶する。この実施形態では、レジスタ・セット225は、プロセッサによって多重タスクされているあらゆる処理のデフォルト変換属性を必ずしも記憶しない。各領域のデフォルト変換属性は、ある処理と別の処理の間で異なるように選ぶことができる。その時点で多重タスクされている処理のデフォルト変換属性は、主記憶装置とレジスタ225の間で、オペレーティング・システムによってスワップされる。もちろん、代替の実施形態では、これより多数または少数のレジスタを含むことができる。
【0017】
既に述べたように、本発明の代替の実施形態が、異なる仮想領域をサポートする必要はない(すなわち、本発明の代替の実施形態はアドレス拡張として領域識別子を使用しない)。また、レジスタ・セットを使用してデフォルト変換属性を記憶し、仮想アドレスのビットに基づいてデフォルト変換属性が選択される一実施形態について記述したが、代替の実施形態では、任意数の異なる技術を使用して、デフォルト変換属性を記憶する、またはそこから選択する、あるいはその両方を行うことができる。例えば、デフォルト変換属性は、1)特定または全ての領域のデフォルト変換属性をハード・ワイヤすることによって記憶される、2)特定または全ての仮想アドレス(仮想領域をサポートしないコンピュータ・システムを含む)のデフォルト変換属性をハード・ワイヤすることによって記憶される、3)プロセッサ外部の記憶領域に記憶される、またはソフトウェア・ハンドラによってアクセスされる、あるいはその両方が行われる、4)仮想アドレスにその時点で関連している命令に基づいて選択される(例えば、入出力命令を実行すると1組のデフォルト変換属性を選択することになるが、非入出力命令を実行すると他の1組のデフォルト変換属性を選択することになる場合がある)などの可能性がある。「デフォルト変換属性記憶区域」という語句は、ここではデフォルト変換属性を記憶するための任意の機構を指して使用される。「デフォルト変換属性選択基準」という語句は、ここではデフォルト変換属性記憶区域のデフォルト変換属性から選択するための任意の技術を指して使用される。
【0018】
デフォルト・ページ・サイズ、デフォルト・キャッシュ・プロトコル、デフォルト保護キーなどを含む任意数の属性が、デフォルト変換属性の一部として記憶される可能性がある。一例を挙げると、ある領域のデフォルト・ページ・サイズは、その領域で最もよくアクセスされるまたは現れる、あるいはその両方であるページ・サイズを表現するために選択されることになる。その領域で最もよくアクセスされるまたは現れる、あるいはその両方であるページ・サイズを選択すれば、事前ロードされたデフォルト・ページ・サイズは、より頻繁にその領域に属する仮想アドレスの妥当なページ・サイズになることになる。保護キーは任意数の目的に使用されるが、本発明の一実施形態では、保護キーは定義域ベースの保護モデルをサポートし、単一アドレス空間オペレーティング・システム・モデルが異なるキー識別子を保護定義域に割り当てることができるようにするために使用される。デフォルト変換属性の一部として保護キーを使用する一実施形態では、領域のデフォルト保護キーがその領域識別子となる。
【0019】
仮想アドレス200の仮想ページ番号と共に、レジスタ225の識別された1つからの領域識別子がTLB230に送信される。TLB230は任意数の方法で導入されている(例えば、1つまたは複数の完全に連合するキャッシュ、1つまたは複数の直接マップされたキャッシュ、完全に連合するキャッシュと直接マップされたキャッシュとの組み合わせなど)。TLB230が仮想アドレス200の変換を含む場合は、TLB230から物理ページ番号が取り出され、これがオフセット・フィールド215からのmビットと連結されて物理アドレス205を生成する。
【0020】
しかし、TLBが仮想アドレス200の変換を含まない場合は、TLB不在障害が発生する。TLB不在障害に応答して、事前ロード回路240は、TLB導入レジスタ・セット245に、識別されたレジスタからのデフォルト変換属性を事前ロードする。さらに、ページ不在ハンドラ・セット250が呼び出され、仮想アドレスの変換を決定する。このページ不在ハンドラ・セット250は、様々なタイプ(例えばハードウェアまたはソフトウェア・ページ不在ハンドラ)であること、および様々な技術(例えばハッシュされたページ・テーブル、ハッシュされた様々な機能、線形ページ・テーブルなど)を使用することができる、任意数のページ不在ハンドラを代表している。多数のページ不在ハンドラが設けられている場合は、任意数の技術を利用してそれらのページ不在ハンドラからの選択を行うことができるが、それらの技術には、1つのページ不在ハンドラがページ不在であることによって次のページ不在ハンドラが呼び出される階層構成も含まれる。したがって本発明は、ページ不在ハンドラの数またはタイプ、ならびにそれらのページ不在ハンドラが使用する技術によって制限されるものではない。
【0021】
TLB導入レジスタ245に事前ロードされたデフォルト変換属性が変換に妥当な場合、ページ不在ハンドラは、TLB導入レジスタに変換の物理ページ番号はロードするが、変換属性はロードしない。このようにして、変換属性をロードしないので、ページ不在ハンドラの性能は向上する。
【0022】
しかし、事前ロードされたデフォルト変換属性が妥当でない場合は、ページ不在ハンドラは妥当な変換属性と物理ページ番号を両方ともTLB導入レジスタ245にロードしなければならない。TLB導入レジスタ245に妥当な変換が記憶されると、TLB230に変換がインストールされる。
【0023】
デフォルト変換属性の事前ロードはまた、仮想領域中の全てまたはほとんどのページが同一の変換属性を共有する場合に、ページ・テーブルのサイズを減少させるためにも使用される。例えば、仮想領域中の全てのページが同一の変換属性を共有する場合は、それらの共通の変換属性がレジスタ・セット225中の識別されたレジスタから事前ロードされることになるので、共通の変換属性をあらゆるページ・テーブルの個々のエントリに記憶する必要はない。
【0024】
本発明が仮想アドレスから物理アドレスへの変換を助ける一実施形態について記述したが、代替の実施形態では、本発明を使用して、仮想アドレスの変換済みアドレスへの変換を行う場合がある。変換済みアドレスは後に物理アドレスに転換される。さらに、一実施形態について、特定のフィールドに関連して記述した(例えば仮想ページ番号フィールド220は仮想領域識別子フィールド210を含む)が、代替の実施形態では異なるフィールドを使用して、本発明を実施する可能性がある(例えば、代替の実施形態では、仮想ページ番号フィールドは仮想領域識別子フィールドを含まない、または部分的にこれと重複することもない場合がある)。
【0025】
TLB導入レジスタは任意数のレジスタを表現し、TLB230中の導入用変換データの記憶に限定される必要はない。例えば、TLB導入レジスタのフィールドは、変換以外にも情報を含む、異なる幾つかのシステム・レジスタに属する場合がある。変換の完了に応答して、変換はこれらの異なる幾つかのレジスタからTLB230へ送信され、TLB230のエントリに記憶される。
【0026】
前述のように、本発明の一実施形態では、デフォルト変換属性を、TLB導入レジスタではなくTLBエントリに直接事前ロードする。このような実施形態では、TLB導入レジスタを含む場合と含まない場合とがある。「TLBユニット」という用語は、ここではTLBと、存在する場合にはこれに関連する導入レジスタを指して使用される。したがって、デフォルト変換属性のTLBユニットへの事前ロードとは、いずれかの導入レジスタの事前ロードか、またはTLB中のあるエントリの事前ロードかのどちらかを指す。
【0027】
「アドレス変換ユニット」という用語は、ここでは、コンピュータ・システム中の仮想アドレス変換のための任意の機構を指して使用され、1)TLBユニット、2)ソフトウェアまたはハードウェア・ページ不在ハンドラなどを含む。本発明は、導入用デフォルト変換属性のTLBへの事前ロードに限定されるものではなく、導入用デフォルト変換属性を任意のアドレス変換ユニットに事前ロードするために使用される場合がある(例えば、変換を記憶している何らかの形態の主記憶装置ベース・テーブルに、デフォルト変換属性を事前ロードする)。事前ロード回路が事前ロードを実行する一実施形態について記述したが、代替の実施形態ではソフトウェアを使用して事前ロードを実行する可能性もある。「事前ロード・ユニット」という用語は、ここでは、導入用デフォルト変換属性をアドレス変換ユニットに事前ロードするための任意の機構を指して使用される。
【0028】
図3は、本発明の一実施形態による、仮想アドレスを対応する物理アドレスに変換せよという要求に応答して実行される各段階を図示する、フロー・ダイアグラムである。このフロー・ダイアグラムは段階300から開始し、ここから制御は段階310に移る。
【0029】
段階310に示すように、TLBが仮想アドレスの変換を含むかどうかを判別する。一致が見つかった場合は、フローは段階320に移り、そこでこの一致する変換を使用して仮想アドレスの対応する物理アドレスを決定し、フロー・ダイアグラムは終了する。見つからない場合は、フローは段階330に移る。
【0030】
段階330に示すように、仮想アドレスの仮想ページ番号はTLB導入レジスタに記憶される。段階330から、フローは段階340に移る。
【0031】
段階340に示すように、仮想アドレスのデフォルト変換属性がTLB導入レジスタに事前ロードされる。領域識別子が使用されている場合は、その領域の領域識別子もまた、TLB導入レジスタにロードされる場合がある。段階340から、制御は段階350に移る。
【0032】
段階350でTLB不在障害が発生し、フローは段階360に移る。障害の発生およびその処理は、当技術分野で周知である。段階350から、制御は段階360に移る。
【0033】
段階360に示すように、TLB不在障害はページ不在ハンドラによって処理される。ソフトウェア・ページ不在ハンドラの場合は、プロセッサは現行処理の実行を中断し、中断した処理の実行環境(すなわち、中断した処理の実行再開に必要な情報)を記憶し、ソフトウェア・ページ不在ハンドラを呼び出して変換を実施する。ページ不在ハンドラは、プロセッサに命令してTLB導入レジスタに変換を記憶させ、TLBに変換を導入し、中断した処理の実行を再開する。ハードウェア・ページ不在ハンドラの場合は、ハードウェア・ページ不在ハンドラは、(例えばページ・テーブルにアクセスする、ハード・ワイヤード変換を使用することなどによって)変換を実施し、またはTLBに変換を導入する、あるいはその両方を行う。段階360については、図4に関連してさらに記述する。段階360から、制御は段階370に移る。
【0034】
段階370に示すように、プロセッサは中断した処理の実行を再開する。ソフトウェア・ページ不在ハンドラの場合、プロセッサはTLB不在障害が命令(すなわち、段階300に記述した仮想アドレスを生成する命令)を引き起こした時点から、中断した処理の実行を再開する。その間に、同一の仮想アドレスが再び生成されることになる。ただし、今回は変換がTLBに記憶されている。その結果、制御はフロー・ダイアグラムを通過し、仮想アドレスに対応する物理アドレスを決定する段階320で終了する。
【0035】
図4は、本発明の一実施形態による、図3の段階360で実行された各段階のさらに詳細な説明を図示するフロー・ダイアグラムである。ソフトウェア・ページ不在ハンドラが使用される場合は、図4に示す各段階は、ソフトウェア・ページ不在ハンドラの実行に応答して実行されることになる。TLB不在障害が発生する段階350から、制御は段階400に移る。
【0036】
段階400に示すように、仮想アドレスの変換を決定し、制御は段階410に移る。段階400を実行するために、任意数の技術が使用される可能性がある。
【0037】
段階410で、事前ロードされたデフォルト変換属性が、決定した変換に対して妥当であるかどうかを判別する。妥当であれば、フローは段階430に移る。妥当でない場合には、フローは段階420に移る。このようにして、事前ロードされたデフォルト変換属性(最も頻繁に使用される属性でなければならない)が妥当な場合には、変換の属性部分をロードする必要をなくすことによって、TLBの充填は簡素化される。段階410は、任意数の技術を使用して実行される可能性があり、1)ページ・テーブルのエントリ中の妥当な変換属性(あるいは所与ページの変換属性がデフォルト変換属性と異なるかどうか)を指示するデータを記憶すること、2)オペレーティング・システムを実施して、デフォルト変換属性と異なる変換属性を有する特定のアドレス範囲を試験することなどを含む。
【0038】
段階420に示すように、事前ロードされてTLB導入レジスタに記憶されたデフォルト変換属性は、妥当な属性で上書きされる。多数のデフォルト変換属性が事前ロードされている場合は、異なる実施形態では、妥当でない属性のみに選択的に上書きすることができる。段階420から、フローは段階430に移る。
【0039】
段階430で、決定した変換の物理ページ番号がTLB導入レジスタにロードされる。段階430から、フローは段階440に移る。
【0040】
段階440に示すように、変換はTLBにインストールされ、フローは段階370に移る。ソフトウェア・ページ不在ハンドラの場合は、ソフトウェア・ページ不在ハンドラは、実行時に変換のインストールおよび中断された処理の再開を引き起こす、1つまたは複数の命令を含む。
【0041】
例示的コンピュータ・システム
図5は、本発明の一実施形態による、ソフトウェア・ページ不在ハンドラを含む例示的コンピュータ・システム500のブロック・ダイアグラムである。例示的コンピュータ・システム500は、バス515によって記憶装置510と結合されるプロセッサ505を含む。さらに、キーボード520およびディスプレイ525など、幾つかのユーザ入出力装置もまたバス515に結合される場合があるが、これらの部分は本発明に不可欠なものではない。ネットワーク530もまたバス515に結合される場合がある。プロセッサ505は、CISC、RISC、VLIW、またはハイブリッド・アーキテクチャなど、いずれかのアーキテクチャ・タイプの中央処理装置を表現する。さらに、プロセッサ505は1つまたは複数のチップ上で実施される可能性がある。記憶装置510は、1つまたは複数のデータ記憶機構を表現する。例えば、記憶装置510は、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュ・メモリ装置、またはその他の器械可読媒体、あるいはそれらの組み合わせを含む場合がある。バス515は、1つまたは複数のバス(例えばPCI、ISA、X−Bus、EISA、VESA)、およびブリッジ(バス・コントローラとも呼ばれる)を表現する。この実施形態では単一プロセッサ・コンピュータ・システムに関して記述したが、本発明は多重プロセッサ・コンピュータ・システムで実施することができる。
【0042】
図5はまた、記憶装置510が、変換を決定するためのソフトウェア・ページ不在ハンドラ535およびページ・テーブル・セット540を内部に記憶していることも図示している。もちろん、記憶装置510が、オペレーティング・システムおよび様々なアプリケーション(図示せず)などの付加的なソフトウェアを含むことが好ましいが、これらは本発明の理解には不要である。
【0043】
図5は、プロセッサ505が実行ユニット545、レジスタ・セット550、TLB555、事前ロード回路560、TLB導入レジスタ・セット565、およびイベント処理ユニット570を含むことを付加的に図示する。実行ユニット545は、物理アドレスに変換するため、仮想アドレスのフィールドを伝送するようにレジスタ・セット550およびTLB555に結合される。レジスタ550およびTLB555は、図2に関連して記述した方法と同様の方法で、事前ロード回路560およびTLB導入レジスタ565と共に動作する。
【0044】
TLB不在に応答して、イベント処理ユニット570はソフトウェア・ページ不在ハンドラ535の実行を開始する。ソフトウェア・ページ不在ハンドラ535を実行すると、プロセッサ505はページ・テーブル・セット540から変換を引き出し、前述のようにそれらの変換をTLB555に収容する。ソフトウェア・ページ不在ハンドラ535は、事前ロードされたデフォルト変換属性が妥当な場合には、デフォルト変換属性の事前ロードを利用するように書き込まれている。
【0045】
前述のように、本発明は、ページ不在ハンドラの数またはタイプ、ならびにそれらのページ不在ハンドラが使用する技術によって制限されるものではない。したがって、単一のソフトウェア・ページ不在ハンドラを有するコンピュータ・システムを示したが、代替の実施形態では、任意数の異なる技術を使用する、任意数のソフトウェアまたはハードウェア・ページ不在ハンドラあるいはその両方を含むことが可能である。具体的には、代替の実施形態は、ソフトウェア・ページ不在ハンドラ535に加えて、またはこれの代わりに、プロセッサに組み込まれたハードウェア・ページ不在ハンドラを有することができる。
【0046】
図5は単一のTLBを有するプロセッサを図示するが、このプロセッサの代替の実施形態では、TLB導入レジスタを共有するか、または別々のTLB導入レジスタを有する場合がある多数のTLB(例えばデータTLB、命令TLBなど)を含むことができる。記憶区域という用語は、ここでは、記憶装置510や、プロセッサ内の1つまたは複数のレジスタなどの記憶装置中の位置を含めた、データを記憶するための任意の機構を指して使用される。
【0047】
代替の実施形態
本発明を、幾つかの実施形態に関して説明したが、本発明が、記述した実施形態に限定されるものではないことを当業者なら理解するであろう。本発明の方法および装置は、修正および変更を加えて実行することができる。したがって、以上の記述は、本発明の制限ではなく例示であるとみなされたい。
【図面の簡単な説明】
【図1】 本発明の一実施形態による、特定ビット数の仮想アドレスによってアドレス指定することができる異なる仮想領域を図示するブロック・ダイアグラムである。
【図2】 本発明の一実施形態の例示的な実施を図示するブロック・ダイアグラムである。
【図3】 本発明の一実施形態による、仮想アドレスを対応する物理アドレスに変換せよという要求に応答して実行される各段階を図示するフロー・ダイアグラムである。
【図4】 本発明の一実施形態による、図3の段階360で実行される各段階のさらに詳細な説明を図示するフロー・ダイアグラムである。
【図5】 本発明の一実施形態による、例示的なコンピュータ・システムのブロック・ダイアグラムである。
【符号の説明】
200 仮想アドレス
205 物理アドレス
210 仮想領域番号フィールド
215 オフセット・フィールド
220 仮想ページ番号フィールド
225 レジスタ・セット
230 TLB
240 事前ロード回路
245 TLB導入レジスタ・セット
250 ページ不在ハンドラ・セット
Claims (27)
- 仮想アドレスを物理アドレスに変換する変換索引バッファと、
前記変換索引バッファに接続され、仮想アドレスを物理アドレスに変換するときの属性を決める変換属性フィールドを含む変換索引バッファ導入レジスタと、
それぞれがデフォルト変換属性フィールドを含むレジスタ・セットと、
前記レジスタ・セットと変換属性フィールドとに結合され、変換索引バッファ導入レジスタが使用するための対応するデフォルト変換属性を事前ロードするが、変換しようとする仮想アドレスの変換に対して妥当でないとき、デフォルト変換属性が置き換えられる事前ロード・ユニットと
を含むことを特徴とするプロセッサ。 - 前記仮想アドレスのNビットが、対応する前記デフォルト変換属性フィールドを持つ前記レジスタ・セット内のレジスタを識別するために使用されることを特徴とする請求項1記載のプロセッサ。
- 前記変換属性フィールドに記憶されたデータが、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも1つを含むことを特徴とする請求項2記載のプロセッサ。
- 前記変換索引バッファに接続され、その変換索引バッファ内でページ不在が発生すると、変換のためのページ番号を生成するためのページ不在ハンドラをさらに含むことを特徴とする請求項1記載のプロセッサ。
- 前記変換索引バッファに接続され、その変換索引バッファ内でページ不在が発生すると、変換のためのページ番号を生成するためのソフトウエアページ不在ハンドラを呼び出すイベント処理ユニットをさらに含むことを特徴とする請求項1記載のプロセッサ。
- 仮想アドレスを物理アドレスに変換する時に使用するために、変換属性フィールドに事前ロードする方法であって、
前記仮想アドレスに対する変換が現在利用可能であるか否かを検出するステップと、
複数の記憶されたデフォルト変換属性の一つを、前記変換属性フィールドのための対応するデフォルト変換属性として選択するステップと、
前記仮想アドレスの変換が新しい変換を生成するために現在利用可能でないときに、前記対応するデフォルト変換属性を事前ロードするステップと、
その事前ロードされたデフォルト変換属性が妥当であればそれを用い、妥当でないならそれを妥当な変換属性で上書きするステップと
を含むことを特徴とする方法。 - 前記仮想アドレスの変換のための仮想ページ番号を記憶するステップをさらに有することを特徴とする請求項6記載の方法。
- 前記事前ロードするステップが、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも1つを識別するために、前記デフォルト変換属性を事前ロードすることを特徴とする請求項6記載の方法。
- 前記事前ロードする際にソフトウエア・ページ不在ハンドラを実行することを含むことを特徴とする請求項6記載の方法。
- コンピュータ・システムで使用する装置であって、その装置が、
仮想アドレスを物理アドレスに変換するための複数の変換を記憶するように構成されたアドレス変換ユニットであって、前記複数の変換のそれぞれが、前記仮想アドレスに含まれていない属性を決めるための変換属性フィールドを含む、前記アドレス変換ユニットと、
複数のデフォルト変換属性を記憶するように構成されたデフォルト変換属性記憶領域と、
ある仮想アドレスの変換が前記アドレス変換ユニットに記憶されていないことを指示する信号を受信するように結合された第1入力を有する事前ロード・ユニットと、
を有する、前記コンピュータ・システムで使用する装置において、
前記複数のデフォルト変換属性のそれぞれが、前記仮想アドレスの異なる仮想領域に対して選択され、
前記事前ロード・ユニットが、前記デフォルト変換属性記憶領域に接続されると共に前記アドレス変換ユニットに接続され、事前ロードに引き続いてページ不在ハンドラを用いて前記変換を決定し、前記アドレス変換ユニットに前記変換を完成するのに必要な残りのデータを記憶する前に、前記仮想アドレスの前記仮想領域を識別するNビットに基づいて前記複数のデフォルト変換属性からデフォルト変換属性を選択し、前記アドレス変換ユニットに現在選択されたデフォルト変換属性を事前ロードすることを特徴とする、前記コンピュータ・システムで使用する装置。 - 前記複数のデフォルト変換属性のそれぞれが、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも1つを含むことを特徴とする請求項10記載の装置。
- 前記アドレス変換ユニットに接続されたハードウエア・ページ不在ハンドラとソフトウエア・ページ不在ハンドラのいずれか1つをさらに有することを特徴とする請求項10または11記載の装置。
- 前記デフォルト変換属性記憶領域がレジスタのセットであることを特徴とする請求項10〜12のいずれかに記載の装置。
- 前記レジスタのセットのそれぞれがデフォルト変換属性フィールドを有することを特徴とする請求項13記載の装置。
- 仮想ページ番号フィールド、物理ページ番号フィールド、変換属性フィールドを含む変換索引バッファ導入領域をさらに有することを特徴とする請求項10〜14のいずれかに記載の装置。
- 前記仮想アドレスのNビットが、前記デフォルト変換属性記憶領域のレジスタのセット内の対応するレジスタを識別するために用いられることを特徴とする請求項13〜15のいずれかに記載の装置。
- 前記アドレス変換ユニットがアドレス変換索引バッファであることを特徴とする請求項10、11、13〜16のいずれかに記載の装置。
- 前記アドレス変換索引バッファに接続されたハードウエア・ページ不在ハンドラをさらに有することを特徴とする請求項17に記載の装置。
- ソフトウエア・ページ不在ハンドラを呼び出すイベント処理ユニットをさらに有することを特徴とする請求項10、11、13〜17のいずれかに記載の装置。
- 前記アドレス変換ユニット、前記デフォルト変換属性記憶領域、前記事前ロード・ユニットを有するプロセッサと、
前記プロセッサに接続され、前記信号に応答して前記プロセッサによって実行されるソフトウエア・ページ不在ハンドラを記憶する記憶装置であって、前記ソフトウエア・ページ不在ハンドラの実行によって、前記事前ロード・ユニットによって妥当でないデフォルト変換属性がロードされていると、前記プロセッサが前記変換属性フィールドに妥当な値を書き込む、前記記憶装置と
をさらに有することを特徴とする請求項10、11、13〜17のいずれかに記載の装置。 - 前記信号に応答して仮想ページ番号フィールドに仮想アドレスの少なくとも一部を記憶することを特徴とする請求項19または20に記載の装置。
- 前記変換属性フィールドが変換に用いる属性を決めることを特徴とする請求項10〜21のいずれかに記載の装置。
- 変換を、仮想アドレスを物理アドレスに変換するためのアドレス変換ユニットに記憶するコンピュータで実施する方法であって、
前記仮想アドレスが前記アドレス変換ユニットに記憶されていない変換を検出するステップと、
デフォルト変換属性記憶領域にデフォルト変換属性を記憶するステップと
を有する方法において、
前記デフォルト変換属性のそれぞれが、前記仮想アドレスの異なった仮想領域に対して選択されており、
前記仮想アドレスの前記仮想領域を識別するNビットに基づいて現在選択されたデフォルト変換属性として前記複数のデフォルト変換属性の1つを選択するステップと、
前記アドレス変換ユニットに前記現在選択されたデフォルト変換属性を事前ロードするステップと、
前記事前ロードするステップに続いてページ不在ハンドラを使用して前記変換を決定するステップと、
前記アドレス変換ユニットに、前記変換を完了するために必要な残りのデータを記憶するステップと
を有することを特徴とする前記方法。 - 前記アドレス変換ユニットに、前記変換を完了するために必要な残りのデータを記憶するステップが
前記変換が前記事前ロードされたデフォルト変換属性を含んでいると、前記事前ロードされたデフォルト変換属性を上書きせずに、前記アドレス変換ユニットにその変換を記憶し、
前記変換が前記事前ロードされたデフォルト変換属性を含んでいないと、前記事前ロードされたデフォルト変換属性を正しい変換属性で上書きすることを特徴とする請求項23に記載の方法。 - 前記アドレス変換ユニットに、前記変換を完了するために必要な残りのデータを記憶するステップの前に、前記アドレス変換ユニットに前記変換の仮想ページ番号を記憶するステップをさらに有することを特徴とする請求項23に記載の方法。
- 前記事前ロードするステップは、ページ・サイズ、キャッシュ・プロトコル、メモリに関連する保護キーの少なくとも1つを識別するために、前記現在選択されたデフォルト変換属性を事前ロードすることを特徴とする請求項23〜25のいずれかに記載の方法。
- 前記決定するステップが、ソフトウエア・ページ不在ハンドラを実行するステップを有することを特徴とする請求項23〜26のいずれかに記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/771,845 | 1996-12-23 | ||
US08/771,845 US5918251A (en) | 1996-12-23 | 1996-12-23 | Method and apparatus for preloading different default address translation attributes |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10228419A JPH10228419A (ja) | 1998-08-25 |
JP3998787B2 true JP3998787B2 (ja) | 2007-10-31 |
Family
ID=25093117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35482697A Expired - Fee Related JP3998787B2 (ja) | 1996-12-23 | 1997-12-24 | 様々なデフォルト・アドレス変換属性を事前ロードする方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5918251A (ja) |
EP (1) | EP0851357B1 (ja) |
JP (1) | JP3998787B2 (ja) |
CN (1) | CN1153145C (ja) |
DE (1) | DE69724572T2 (ja) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6041366A (en) * | 1998-02-02 | 2000-03-21 | International Business Machines Corporation | System and method for dynamic specification of input/output attributes |
US6205531B1 (en) * | 1998-07-02 | 2001-03-20 | Silicon Graphics Incorporated | Method and apparatus for virtual address translation |
US7275246B1 (en) * | 1999-01-28 | 2007-09-25 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US8065504B2 (en) * | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US6301648B1 (en) * | 1999-08-18 | 2001-10-09 | Ati International Srl | Method and apparatus for processing memory accesses utilizing a TLB |
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 |
US6560689B1 (en) * | 2000-03-31 | 2003-05-06 | Intel Corporation | TLB using region ID prevalidation |
US6622225B1 (en) | 2000-08-31 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | System for minimizing memory bank conflicts in a computer system |
US6654858B1 (en) | 2000-08-31 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol |
US6779142B1 (en) | 2000-08-31 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Apparatus and method for interfacing a high speed scan-path with slow-speed test equipment |
US6633960B1 (en) * | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Scalable directory based cache coherence protocol |
US6738836B1 (en) * | 2000-08-31 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Scalable efficient I/O port protocol |
US6636955B1 (en) * | 2000-08-31 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Mechanism for synchronizing multiple skewed source-synchronous data channels with automatic initialization feature |
US6546453B1 (en) | 2000-08-31 | 2003-04-08 | Compaq Information Technologies Group, L.P. | Proprammable DRAM address mapping mechanism |
US6671822B1 (en) | 2000-08-31 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache |
US6754739B1 (en) | 2000-08-31 | 2004-06-22 | Hewlett-Packard Development Company | Computer resource management and allocation system |
US6662319B1 (en) * | 2000-08-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Special encoding of known bad data |
US6751721B1 (en) * | 2000-08-31 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Broadcast invalidate scheme |
US6704817B1 (en) | 2000-08-31 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Computer architecture and system for efficient management of bi-directional bus |
US6668335B1 (en) | 2000-08-31 | 2003-12-23 | Hewlett-Packard Company, L.P. | System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths |
US6678840B1 (en) | 2000-08-31 | 2004-01-13 | Hewlett-Packard Development Company, Lp. | Fault containment and error recovery in a scalable multiprocessor |
US7213087B1 (en) | 2000-08-31 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Mechanism to control the allocation of an N-source shared buffer |
US7099913B1 (en) | 2000-08-31 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Speculative directory writes in a directory based cache coherent nonuniform memory access protocol |
US6567900B1 (en) | 2000-08-31 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Efficient address interleaving with simultaneous multiple locality options |
US6681295B1 (en) | 2000-08-31 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Fast lane prefetching |
US6715057B1 (en) | 2000-08-31 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes |
US6546465B1 (en) | 2000-08-31 | 2003-04-08 | Hewlett-Packard Development Company, L.P. | Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol |
US6662265B1 (en) | 2000-08-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Mechanism to track all open pages in a DRAM memory system |
US6961781B1 (en) | 2000-08-31 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Priority rules for reducing network message routing latency |
DE10131124A1 (de) * | 2001-06-28 | 2003-01-23 | Infineon Technologies Ag | Konfigurierbare Adressierungsvorrichtung |
GB2378779B (en) * | 2001-08-14 | 2005-02-02 | Advanced Risc Mach Ltd | Accessing memory units in a data processing apparatus |
US6782446B2 (en) * | 2001-08-22 | 2004-08-24 | Intel Corporation | Method to prevent corruption of page tables during flash EEPROM programming |
US7124273B2 (en) * | 2002-02-25 | 2006-10-17 | Intel Corporation | Method and apparatus for translating guest physical addresses in a virtual machine environment |
US7581010B2 (en) * | 2003-07-14 | 2009-08-25 | Microsoft Corporation | Virtual connectivity with local connection translation |
US20050160229A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
US7206916B2 (en) * | 2004-03-08 | 2007-04-17 | Sun Microsystems, Inc. | Partial address compares stored in translation lookaside buffer |
JP4233492B2 (ja) * | 2004-06-02 | 2009-03-04 | 富士通マイクロエレクトロニクス株式会社 | アドレス変換装置 |
US7424584B2 (en) * | 2004-08-12 | 2008-09-09 | International Business Machines Corporation | Key-controlled object-based memory protection |
US7617380B2 (en) * | 2005-08-25 | 2009-11-10 | Broadcom Corporation | System and method for synchronizing translation lookaside buffer access in a multithread processor |
EP2011018B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US7886112B2 (en) * | 2006-05-24 | 2011-02-08 | Sony Computer Entertainment Inc. | Methods and apparatus for providing simultaneous software/hardware cache fill |
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 |
US9244855B2 (en) | 2007-12-31 | 2016-01-26 | Intel Corporation | Method, system, and apparatus for page sizing extension |
JP5347024B2 (ja) * | 2009-06-24 | 2013-11-20 | パナソニック株式会社 | メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置 |
US8364933B2 (en) * | 2009-12-18 | 2013-01-29 | International Business Machines Corporation | Software assisted translation lookaside buffer search mechanism |
US8694755B1 (en) * | 2010-03-17 | 2014-04-08 | Ambarella, Inc. | Virtual memory management for real-time embedded devices |
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 | 美商英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
IN2014CN03678A (ja) | 2011-11-22 | 2015-09-25 | Soft Machines Inc | |
CN104040491B (zh) | 2011-11-22 | 2018-06-12 | 英特尔公司 | 微处理器加速的代码优化器 |
US9378150B2 (en) * | 2012-02-28 | 2016-06-28 | Apple Inc. | Memory management unit with prefetch ability |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
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 |
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 |
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 |
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 |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
CN103116555B (zh) * | 2013-03-05 | 2014-03-05 | 中国人民解放军国防科学技术大学 | 基于多体并行缓存结构的数据访问方法 |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
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 |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
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 |
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 |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
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 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0175398A3 (en) * | 1984-08-17 | 1989-08-30 | Koninklijke Philips Electronics N.V. | Data processing system comprising a memory access controller which is provided for combining descriptor bits of different descriptors associated with virtual addresses |
US5060137A (en) * | 1985-06-28 | 1991-10-22 | Hewlett-Packard Company | Explicit instructions for control of translation lookaside buffers |
US4774659A (en) * | 1986-04-16 | 1988-09-27 | Astronautics Corporation Of America | Computer system employing virtual memory |
US4881075A (en) * | 1987-10-15 | 1989-11-14 | Digital Equipment Corporation | Method and apparatus for adaptive data compression |
US4980816A (en) * | 1987-12-18 | 1990-12-25 | Nec Corporation | Translation look-aside buffer control system with multiple prioritized buffers |
US5179674A (en) * | 1988-07-25 | 1993-01-12 | Digital Equipment Corporation | Method and apparatus for predicting valid performance of virtual-address to physical-address translations |
US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
JPH02205953A (ja) * | 1989-02-03 | 1990-08-15 | Nec Corp | アドレス変換装置 |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5412787A (en) * | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
EP0506236A1 (en) * | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Address translation mechanism |
RU1804645C (ru) * | 1991-03-27 | 1993-03-23 | Институт Точной Механики И Вычислительной Техники Им.С.А.Лебедева | Центральный процессор |
US5278963A (en) * | 1991-06-21 | 1994-01-11 | International Business Machines Corporation | Pretranslation of virtual addresses prior to page crossing |
US5465337A (en) * | 1992-08-13 | 1995-11-07 | Sun Microsystems, Inc. | Method and apparatus for a memory management unit supporting multiple page sizes |
US5493660A (en) * | 1992-10-06 | 1996-02-20 | Hewlett-Packard Company | Software assisted hardware TLB miss handler |
US5442766A (en) * | 1992-10-09 | 1995-08-15 | International Business Machines Corporation | Method and system for distributed instruction address translation in a multiscalar data processing system |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
US5561814A (en) * | 1993-12-22 | 1996-10-01 | Intel Corporation | Methods and apparatus for determining memory operating characteristics for given memory locations via assigned address ranges |
US5652872A (en) * | 1994-03-08 | 1997-07-29 | Exponential Technology, Inc. | Translator having segment bounds encoding for storage in a TLB |
JP3740195B2 (ja) * | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
US5809563A (en) * | 1996-11-12 | 1998-09-15 | Institute For The Development Of Emerging Architectures, Llc | Method and apparatus utilizing a region based page table walk bit |
-
1996
- 1996-12-23 US US08/771,845 patent/US5918251A/en not_active Expired - Lifetime
-
1997
- 1997-05-23 EP EP97303535A patent/EP0851357B1/en not_active Expired - Lifetime
- 1997-05-23 DE DE69724572T patent/DE69724572T2/de not_active Expired - Lifetime
- 1997-12-23 CN CNB971255857A patent/CN1153145C/zh not_active Expired - Fee Related
- 1997-12-24 JP JP35482697A patent/JP3998787B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0851357B1 (en) | 2003-09-03 |
CN1153145C (zh) | 2004-06-09 |
JPH10228419A (ja) | 1998-08-25 |
CN1192009A (zh) | 1998-09-02 |
DE69724572T2 (de) | 2004-04-08 |
EP0851357A1 (en) | 1998-07-01 |
DE69724572D1 (de) | 2003-10-09 |
US5918251A (en) | 1999-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3998787B2 (ja) | 様々なデフォルト・アドレス変換属性を事前ロードする方法および装置 | |
US5918250A (en) | Method and apparatus for preloading default address translation attributes | |
US8151085B2 (en) | Method for address translation in virtual machines | |
EP1096385B1 (en) | A method and apparatus for forming an entry address | |
US5752275A (en) | Translation look-aside buffer including a single page size translation unit | |
EP0642086B1 (en) | Virtual address to physical address translation cache that supports multiple page sizes | |
JP3666689B2 (ja) | 仮想アドレス変換方法 | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
US4774653A (en) | Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers | |
US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
US20040117587A1 (en) | Hardware managed virtual-to-physical address translation mechanism | |
TW376488B (en) | Virtual memory system with local and global virtual address translation | |
JPH0628262A (ja) | ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法 | |
US20040117588A1 (en) | Access request for a data processing system having no system memory | |
JPH03142644A (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
MX2008013345A (es) | Memoria asociada de instrucciones etiquetada virtualmente con un comportamiento etiquetado fisicamente. | |
WO1998044419A1 (en) | A method and apparatus for implementing a page table walker with a sliding field | |
US9996474B2 (en) | Multiple stage memory management | |
JP2013065325A (ja) | アドレス変換方法及び装置 | |
JP2007520014A (ja) | 状況切換え環境中におけるアドレス変換技術 | |
US5463750A (en) | Method and apparatus for translating virtual addresses in a data processing system having multiple instruction pipelines and separate TLB's | |
US20040117591A1 (en) | Data processing system having no system memory | |
EP0212129B1 (en) | Method of updating information in a translation lookaside buffer | |
EP0486154B1 (en) | Method of operating a virtual memory system | |
JPS6167160A (ja) | 仮想アドレス変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040917 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061010 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070110 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070424 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070621 |
|
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: 20070710 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070808 |
|
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: 20100817 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110817 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110817 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120817 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |