[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2006515088A - 実時間アプリケーションのためのメモリ管理を改良する方法 - Google Patents

実時間アプリケーションのためのメモリ管理を改良する方法 Download PDF

Info

Publication number
JP2006515088A
JP2006515088A JP2004558763A JP2004558763A JP2006515088A JP 2006515088 A JP2006515088 A JP 2006515088A JP 2004558763 A JP2004558763 A JP 2004558763A JP 2004558763 A JP2004558763 A JP 2004558763A JP 2006515088 A JP2006515088 A JP 2006515088A
Authority
JP
Japan
Prior art keywords
memory
translation information
address translation
address
real
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
JP2004558763A
Other languages
English (en)
Other versions
JP4129458B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006515088A publication Critical patent/JP2006515088A/ja
Application granted granted Critical
Publication of JP4129458B2 publication Critical patent/JP4129458B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

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)
  • Debugging And Monitoring (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

【課題】
コンピュータ・システムにおけるメモリ管理を改善する。
【解決手段】
アドレス変換情報のサブセットが、CPUによる高速アクセスのためにそのようなアドレス変換情報を保存するために予約されたキャッシュ・メモリにおける他のタイプのアドレス変換情報によって置換されないようにする。このようにして、CPUは、キャッシュに保存されたアドレス変換情報のサブセットを識別することができる。

Description

本発明は、一般的に言えば、コンピュータ・システムにおけるメモリ管理に関し、更に詳しく言えば、コンピュータ・システムにおいて稼動する実時間アプリケーションのパフォーマンスを向上させるためのメモリ・アドレス変換機構の改良に関するものである。
最新のコンピュータ・システムでは、そのコンピュータ・システムの物理メモリ又は実メモリというリソースを管理するために、仮想メモリとして知られている技法が使用されている。この技法は、非常に大量のメモリの幻影をアプリケーションに与える。当初、仮想メモリ・システムは、物理的メモリ又は実メモリが小さ過ぎるという問題を解決するために開発された。これは、大量のメモリを有する最新のシステムでは最早1つの要因とはなり得ないが、仮想メモリ機構自体は、別の理由で価値あるものであることを証明した。これらの理由のうち、仮想メモリ機構は、メモリ・アプリケーション及び/又はメモリ保護、並びに、アプリケーション・プログラムの設計を簡素化する。
仮想メモリシステムでは、複数のページ・テーブル・エントリ(PTE)を有するページ・テーブルによって、仮想アドレスが実アドレスに変換される。一般に、そのようなページ・テーブルは、DRAMチップのようなコンピュータ・システムのメイン・メモリに保存される。しかし、CPUとメイン・メモリとの間を接続するメモリ・バスはCPUの動作速度よりもずっと遅いので、CPUとメイン・メモリとの間にはボトルネックが存在する。実時間応答を必要としないアプリケーションに対しては、このボトルネックが不可避的な問題を生じることはないであろう。しかし、多くの実時間アプリケーションは、このボトルネックが、そのようなアプリケーションの操作において認識し得るような遅延を生じるものと理解する。
このボトルネックの問題を回避するための既知の技法は、中央処理装置(CPU)に近接している変換索引緩衝機構(TLB)と呼ばれる特殊なキャッシュにPTEを保存することである。一般に、TLBはCPU内にオンチップで常駐し、CPUによりサーチされるPTEの特定のセットがTLBに保存されている限り、メイン・メモリにおけるページ・テーブルのルックアップと関連した如何なる遅延も排除されるか又はかなり減少する。PTEの特定のセットがTLBにおいて見つからないとき、この事象は、一般には、TLBミスとして定義される。
一般的に、メモリ読取り要求、及び/又は、書込み要求が行われると、仮想メモリから実メモリへのマッピングがTLB内にキャッシュされる。TLBミスが存在するとき、専用のハードウェア又はソフトウェアが正しいPTEをTLBに再ロードしなければならない。TLBのソフトウェア再ロード又はハードウェア再ロードは、パフォーマンスを考慮するとかなり高価なものになることがある。それは、そのような再ロードが、メイン・メモリからPTEを読み出すこと及び一致を見つけることを必要とするためである。一般に、それは、一致を見つけるために3つまでのキャッシュ・ライン・ミスを処理することが可能である。従って、実時間アプリケーションにおいては、TLBミスを生じることは望ましくない。
従って、本発明は、「請求の範囲」の請求項1に記載されたようなコンピュータ・システムにおけるメモリ管理を改良するための方法及び他の請求項に記載されたようなコンピュータ・プログラムを提供する。
本発明及びそれの利点をより完全に理解するためには、添付図面と関連して行われる以下の説明を参照すべきである。
本願において開示されるすべての機能は、別の方法を示されてない場合、ハードウェア又はソフトウェア、或いは、それの組み合わせでもって遂行することが可能である。しかし、好適な実施例では、それらの機能が、コンピュータ・プログラム・コードのようなコード、ソフトウェア、及び/又は、それ以外の方法を示されてない場合にはそのような機能を遂行するようにコード化された集積回路に従って、コンピュータのようなプロセッサ又は電子的データ・プロセッサによって遂行される。
添付図面の図1を参照すると、参照番号100は、実時間アプリケーションのための改良されたメモリ管理機構を図解する高レベルのブロック図を全体的に指す。この場合、その高レベルのブロック図100は、仮想メモリを使用したコンピュータ・システムにも適用することが可能である。最新のコンピュータ・システムはこのカテゴリに含まれる。ページ・テーブル106に保存されたページ・テーブル・エントリ(PTE)(図示されていない)及び変換索引緩衝機構(TLB)108を使用して、仮想アドレス102が実アドレス又は物理アドレス104に変換される。詳しく言えば、仮想アドレス102は、仮想ページ番号(VPN)102A及びページ・オフセット102Bを含む。同様に、実アドレス104は、ページ・フレーム番号(PFN)104A及びページ・オフセット104Bを含む。仮想アドレス102のVPN102Aだけが実アドレスのPFN104Aに変換されることが望ましい。ページ・オフセット102Bは、修正することなくページ・オフセット104Bにコピーされる。
TLBミスが存在するとき、又は、TLBにおけるPTEがページ・テーブル106からの新しいPTE(ミスしたページを含む)でもって置換されなければならないとき、TLBを援助するためのハードウェア及び/又はソフトウェアのページ置換アルゴリズム(PRA)110も使用される。実時間アプリケーションのためのメモリ管理機構100を改良するために、テーブル・ロック機構112がTLB108及びPRA110と共に相互作用する。
少なくとも、中央処理装置(CPU)(図示されていない)は、別の方法が示されない場合、この関連において必要なほとんどのオペレーション及び/又は計算を直接的に又は間接的に制御する。CPUに結合されたメモリ(図示されていない)もページ・テーブル106を保存している。PRA110は、それがハードウェアとして実装される場合、TLB108及びTLBロック機構112に結合される。それがソフトウェアとして実装される場合、PRA110は、メモリ(図示されていない)に保存され、TLBミスが生じた場合、CPUによって実行されるであろう。
一般に、ページ・テーブル106を保存するメモリに対してCPUがアクセスを得ることは、(CPUの推測し得る短いクロック・サイクルに比べて)比較的長い期間を必要とする。TLB108は、当初、ページ・テーブル106からの利用可能なPTEの部分を動的に保存するために使用される特別のキャッシュである。特に、TLB108は、高速アクセスのためにPTEの比較的小さいセットを保存するための連想メモリである。或るフィールドの値が与えられると、連想メモリにおけるハードウェア機構がすべてのレコードをサーチし、その与えられた値を含むフィールドを持ったレコードを戻す。VPN102Aが与えられると、TLB108におけるハードウェア機構は、TLBにおけるすべてのPTEをサーチし、TLBミスが存在しない場合にPFN104Aを戻す。本発明の真意から逸脱することなく、TLB108の代わりに他のタイプの連想メモリを使用してもよいことに留意してほしい。
一般に、TLB108は、CPUが近い将来に使用するかもしれない幾つかのPTEを動的にキャッシュするために使用される。実際に、PRA110は、CPUが、近い将来、どのページを使用するかもしれないかを予測し、それに従って、どのPTEが所与の時点にTLB108に保存されるべきかを決定する。現在では、最低使用頻度(LRU)アルゴリズム(図示されていない)を含むがそれに限定されない多くの種々のページ置換アルゴリズムがその分野では知られている。TLBミスが存在するとき、LRUアルゴリズムは、最も長い期間使用されてなかった(即ち、最近最も使用されていない)PTEを新しいPTE(例えば、TLBにおいてミスしたPTE)でもって置換する。
このページ置換方式は、メモリ管理機構100のパフォーマンス全体を徐々に最適化し得るが、その方式は、それが実時間アプリケーションにおいて持ち得る潜在的な悪影響を考慮していない。TLMロック機構112は、TLB108及びPRA110と共に働くことによってこの問題を克服するために示される。一般に、TLBロック機構112は、実時間アプリケーションに対して割り振られたPTEのセットが、ページ・テーブル106に属するPTEの別のセットと置換されないようにする。換言すれば、TLBロック機構112は、PRA110が何を決定するかに関係なく、実時間アプリケーションに対して割り振られたPTEのセットをロックし、そのPTEのセットがTLB108から排除されないようにする。
本発明が必ずしも実時間アプリケーションに限定されないが、そのようなアプリケーションが本発明から最も利益を受けそうであるということに留意することは重要である。一般に、本発明は、任意のタイプのアプリケーション及び/又は任意の特定のアプリケーションを、TLBミスの場合に置換されないようにするために適用可能であると考えるべきである。
次に、図2を参照すると、実時間アプリケーションのための改良されたメモリ管理機構の好適な実施例を図示するための低レベルのブロック図200が示される。一般に、メモリ要求は、CPU(図示されていない)から有効アドレス(EA)202の形式で行われる。EA202は仮想アドレス(VA)204に変換され、仮想アドレスは、順次、実アドレス(RA)206に変換される。有効アドレス(EA)202は、有効セグメントID(ESID)202A、ページ番号(PN)202B、及びオフセット202Cを含む。同様に、VA204は、仮想セグメントID(VSID)204A、ページ番号(PN)204B、及びオフセット204Cを有する。なお、VSID204AをPN204Bと連結することによって、仮想ページ番号(VPN)204Dが作成されることが望ましい。
EA202は、セグメント索引バッファ(SLB)208及び変換索引緩衝機構(TLB)210に送られる。SLB208は、EA202をVA204に変換するように構成される。なお、SLB208はESID202AをVSID204Aに変換し、一方、PN202B及びオフセット202Cは、それぞれ、PN204B及びオフセット204Cにコピーされることが望ましい。
VPN204D及びEA202が与えられると、CPUは、EA202によりインデックスされたすべてのPTEをアクセスすること及びVPN204Dを比較することにより、ページ・テーブル・エントリ(PTE)における一致(即ち、PTEヒット)を求めてTLB210をサーチする。ヒットが存在する場合、実ページ番号(RPN)212が戻される。なお、そのような比較を行うために、TAGコンパレータ214が論理素子216と共に使用されることが望ましい。特に、TAGコンパレータ214は、VPN204DがTLB210におけるVPN218と一致するとき、論理素子216がRPN212を通過することを可能にする。VPN204DがTLB210におけるVPN218に一致しないとき、TAGコンパレータ214は、論理素子216がRPN212を通過させないようにする。
TLBミスが存在する場合、TLB再ロード機構(図示されていない)がメモリ(図示されていない)におけるページ・テーブル(図示されていない)をサーチし、TLB210を再ロードする。従来のTLB構造では、合同クラスにおけるPTEのどのセットが置換されるべきかを表すために、最少使用頻度(LRU)アルゴリズム220のようなページ置換アルゴリズム(PRA)が使用される。
TLBの再ロードの場合、どのセットが置換されるべきかを選択するために、一組の範囲指定レジスタ222、クラスID、置換セット224、置換管理テーブル(RMT)226、及び置換セット制御ブロック230が使用される。特に、範囲指定レジスタ222はRMT226に接続され、クラスIDをRMT226に送る。TLBの再ロードは、EA202を範囲指定レジスタ222に送ることによって達成される。範囲指定レジスタ222においてヒットが存在する場合、クラスIDが生成され、RMT226に送られる。RMTはRMT置換制御ビットを生成し、そのRMT置換生成制御ビットがRMT置換制御バス232を介して置換セット制御ブロック230に送られる。置換セット制御ブロック230は、RMT置換制御ビット及びTLB210からの置換セット224を使用して、どのセットを置換すべきかを決定する。
図3は、RMT226の例を示す。この例では、RMT226は、8個のTLBセット(列)と交差した8個のクラスID(行)のマトリクスを含む。なお、RMT226は、TLB210内のセットが所与のクラスIDに相関するとき、そのセットの置換管理ステータスに関するオペレーティング・システム・ソフトウェアの判断を表すことが望ましい。
好適な実施例では、RMT226はソフトウェア管理されたテーブルである。ソフトウェアはその構造を維持し、RMTエントリの意味を解釈する。一般に、RTM226は、有効アドレスの範囲をTLBの1つ又は複数のセットにマップする場合に使用される。また、クラスID(即ち、TLB226の行)は、所与のアドレス範囲を表す。この例では、クラスID0は、他のクラスIDによって明確には提供されない任意のアドレス範囲に対応する。しかる後、その与えられたクラスIDが、RMTに送られ、RMTによりインデックスとして使用される。そのクラスIDをインデックスとして使ってRMT226がアクセスされ、情報がRMT置換制御バス232を介して送られる。
この例では、RMT226は8x8マトリクスである。換言すれば、TLB210は8ウェイ・セット・アソシアティブである(即ち、それは8個のセットを有する)。従って、各RMTエントリは8ビットを有する。特に、RMT226は、クラスIDの行0ではTLBセット0−2から「1」を定義され、その行の残りでは「0」を定義される。従って、クラスID0に関しては、TLBに対してデータが置換されるべき場合、それは、最初の3セット、即ち、TLBのセット0−2において更新可能である。更に、クラスID0は、これらのセットの排他的使用を有する。従って、クラスID0に対しては、TLBのセット0−2は排他的である。クラスID0は、範囲指定レジスタにおいてヒットしないアドレスに対してデフォルト・クラスIDを提供する。
クラスID1に関しては、RMTは、セット0−2及びセット4−7において「0」を定義され、セット3に対して「1」を定義される。クラスID1に対応するいずれのデータもセット0−2又はセット4−7では置換されるべきではない。その代わり、データはセット3において置換されるべきである。クラスID2及びクラスID3は、共に、同じセット、即ち、セット7を置換する。従って、クラスID2及びクラスID3の両方ともセット7だけを置換すべきである。クラスID4は、置換に対する有効な候補である幾つかのセットを有する。これらは、セット4、5、及び6である。
セット置換の最終的な選択は、LRUアルゴリズムのような任意のページ置換アルゴリズム(PRA)によって行われる。換言すれば、RMTによる置換に対して適格なセットがマークされ、しかる後、図2の置換セット選択ブロック230に含まれたLRUアルゴリズムの制御ロジック(図示されていない)が使用されて、置換されるべきセットの選択を完成させる。
実時間アプリケーションのための改良されたメモリ管理機構を示す高レベルのブロック図である。 実時間アプリケーションのための改良されたメモリ管理機構の好適な実施例を示す低レベルのブロック図である。 図2の改良されたメモリ管理機構と関連して使用されるべき置換管理テーブル(RMT)の一例を示す図である。

Claims (8)

  1. 処理ロジック並びに第1及び第2メモリを有するコンピュータ・システムにおいてメモリ管理を改良するための方法であって、
    前記第1メモリにおける仮想アドレス及び実アドレスの間のアドレス変換情報を保存するステップと、
    前記処理ロジックからのより高速のアクセスのために、アドレス変換情報のサブセットを含む前記アドレス変換情報の少なくとも一部分を前記第2メモリに保存するステップであって、前記第2メモリが前記第1メモリよりも前記処理ロジックに近接している、ステップと、
    アドレス変換情報の前記サブセットが、前記第1メモリに保存された他のアドレス変換情報でもって置換されないようにするステップと、
    を含む、方法。
  2. 前記第1及び第2メモリが、それぞれ、メイン・メモリ及び前記コンピュータ・システムの変換索引緩衝機構(TLB)である、請求項1に記載の方法。
  3. 前記アドレス変換情報が、1つ又は複数のページ・テーブル・エントリ(PTE)を有する1つ又は複数のページ・テーブルに保存される、請求項1に記載の方法。
  4. アドレス変換情報の前記サブセットが実時間アプリケーションに対して割り振られる、請求項1に記載の方法。
  5. アドレス変換情報の前記サブセットが、前記第1メモリに保存された他のアドレス変換情報でもって置換されないようにする前記ステップが、更に、
    各々が有効アドレスの所与のアドレス範囲を表す1つ又は複数のクラスIDを範囲指定レジスタに対して生成するステップと、
    前記1つ又は複数のクラスIDをインデックスとして使用して置換管理テーブル(RMT)をアクセスするステップと、
    前記1つ又は複数のクラスIDを前記アドレス変換情報の前記少なくとも一部分の1つ又は複数のセットにマップするステップと、
    前記アドレス変換情報のどのセットが置換に対して適格であるかを前記RMTに基づいて決定するステップと、
    置換に対して適格であると決定された前記アドレス変換情報のセットのみに関して置換アルゴリズムを遂行するステップと、
    を含む、請求項1乃至4のいずれかに記載の方法。
  6. 前記処理ロジックから有効アドレスの形でメモリ要求を行うステップと、
    前記有効アドレスに対応した仮想アドレスを生成するステップと、
    前記仮想アドレスを実アドレスに対応させるアドレス変換情報の第1セットを求めて前記第2メモリをサーチするステップと、
    前記第2メモリがアドレス変換情報の前記第1セットを保存していないということを決定するとき、アドレス変換情報の前記第1セットを求めて前記第1メモリをサーチするステップと、
    前記第1メモリがアドレス変換情報の前記第1セットを保存しているということを決定するとき、前記第1メモリにおけるアドレス変換情報の第2セットを置換するためにアドレス変換情報の前記第1セットを前記第2メモリ上にロードするステップであって、アドレス変換情報の前記第2セットが実時間アプリケーションに対して割り振られていない、ステップと、
    を更に含む、請求項1乃至5のいずれかに記載の方法。
  7. 処理ロジック並びに第1及び第2メモリを有するコンピュータ・システムにおけるメモリ管理機構であって、請求項1乃至6のいずれかに記載の方法を実行する、メモリ管理機構。
  8. 処理ロジック並びに第1及び第2メモリを有するコンピュータ・システムにおけるメモリ管理を改良するためのコンピュータ・プログラムであって、具体化されたコンピュータ・プログラムを持った媒体を有し、コンピュータ・システムにおいて稼動するとき請求項1乃至6のいずれかに記載の方法を実行する、コンピュータ・プログラム。
JP2004558763A 2002-12-12 2003-11-21 メモリ管理を改良するための方法、メモリ管理機構及びコンピュータ・プログラム Expired - Fee Related JP4129458B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/318,541 US7103748B2 (en) 2002-12-12 2002-12-12 Memory management for real-time applications
PCT/GB2003/005108 WO2004053698A2 (en) 2002-12-12 2003-11-21 Improved tlb management for real-time applications

Publications (2)

Publication Number Publication Date
JP2006515088A true JP2006515088A (ja) 2006-05-18
JP4129458B2 JP4129458B2 (ja) 2008-08-06

Family

ID=32506386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004558763A Expired - Fee Related JP4129458B2 (ja) 2002-12-12 2003-11-21 メモリ管理を改良するための方法、メモリ管理機構及びコンピュータ・プログラム

Country Status (11)

Country Link
US (1) US7103748B2 (ja)
EP (1) EP1581873B1 (ja)
JP (1) JP4129458B2 (ja)
KR (1) KR100843536B1 (ja)
CN (1) CN100397367C (ja)
AT (1) ATE390667T1 (ja)
AU (1) AU2003302824A1 (ja)
CA (1) CA2505610C (ja)
DE (1) DE60320026T2 (ja)
IL (1) IL169136A0 (ja)
WO (1) WO2004053698A2 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7355601B2 (en) * 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
US6862027B2 (en) * 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
JP2005132525A (ja) * 2003-10-29 2005-05-26 Toyota Industries Corp 産業車輌における立席型運転席用背もたれ構造
US7519791B2 (en) * 2004-02-06 2009-04-14 Intel Corporation Address conversion technique in a context switching environment
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US7362705B2 (en) * 2004-05-13 2008-04-22 International Business Machines Corporation Dynamic load-based credit distribution
JP4233492B2 (ja) * 2004-06-02 2009-03-04 富士通マイクロエレクトロニクス株式会社 アドレス変換装置
US7840757B2 (en) * 2004-07-29 2010-11-23 International Business Machines Corporation Method and apparatus for providing high speed memory for a processing unit
US20060045031A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization using multiple state machines
US20060047862A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization
US7546401B2 (en) * 2004-09-23 2009-06-09 International Business Machines Corporation Byte to byte alignment of multi-path data
US20060080511A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Enhanced bus transactions for efficient support of a remote cache directory copy
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US7577794B2 (en) 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US7385925B2 (en) * 2004-11-04 2008-06-10 International Business Machines Corporation Data flow control method for simultaneous packet reception
US7260765B2 (en) * 2004-12-17 2007-08-21 International Business Machines Corporation Methods and apparatus for dynamically reconfigurable parallel data error checking
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
US20060140122A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Link retry per virtual channel
US20060159023A1 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation CRC error history mechanism
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7275125B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
US7206886B2 (en) * 2005-02-24 2007-04-17 International Business Machines Corporation Data ordering translation between linear and interleaved domains at a bus interface
US7234017B2 (en) * 2005-02-24 2007-06-19 International Business Machines Corporation Computer system architecture for a processor connected to a high speed bus transceiver
US7194567B2 (en) * 2005-02-24 2007-03-20 International Business Machines Corporation Method and system for ordering requests at a bus interface
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7500062B2 (en) * 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
JP2007233615A (ja) * 2006-02-28 2007-09-13 Fujitsu Ltd アドレス変換装置
US7886112B2 (en) * 2006-05-24 2011-02-08 Sony Computer Entertainment Inc. Methods and apparatus for providing simultaneous software/hardware cache fill
US7908439B2 (en) * 2007-06-25 2011-03-15 International Business Machines Corporation Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
US8099579B2 (en) * 2007-07-13 2012-01-17 International Business Machines Corporation System and method for cache-locking mechanism using segment table attributes for replacement class ID determination
US8244979B2 (en) * 2007-07-13 2012-08-14 International Business Machines Corporation System and method for cache-locking mechanism using translation table attributes for replacement class ID determination
US20090049272A1 (en) * 2007-08-13 2009-02-19 International Business Machines Corporation Method for improving the performance of software-managed tlb
US8966219B2 (en) * 2007-10-30 2015-02-24 International Business Machines Corporation Address translation through an intermediate address space
US8108617B2 (en) * 2008-02-08 2012-01-31 International Business Machines Corporation Method to bypass cache levels in a cache coherent system
JP5300407B2 (ja) 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
KR100987332B1 (ko) 2008-11-07 2010-10-18 서울대학교산학협력단 메모리 구조에 따른 메모리 관리 장치
EP2192493A1 (en) 2008-11-28 2010-06-02 ST Wireless SA Method of paging on demand for virtual memory management in a processing system, and corresponding processing system
US8397049B2 (en) * 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
CN102662869B (zh) * 2012-04-01 2015-08-26 龙芯中科技术有限公司 虚拟机中的内存访问方法和装置及查找器
US9003125B2 (en) 2012-06-14 2015-04-07 International Business Machines Corporation Cache coherency protocol for allowing parallel data fetches and eviction to the same addressable index
US9086980B2 (en) 2012-08-01 2015-07-21 International Business Machines Corporation Data processing, method, device, and system for processing requests in a multi-core system
US9213532B2 (en) 2013-09-26 2015-12-15 Oracle International Corporation Method for ordering text in a binary
US11216361B2 (en) 2016-06-29 2022-01-04 Western Digital Technologies, Inc. Translation lookup and garbage collection optimizations on storage system with paged translation table
US10229048B2 (en) 2016-06-29 2019-03-12 Western Digital Technologies, Inc. Unified paging scheme for dense and sparse translation tables on flash storage systems
US10235287B2 (en) 2016-06-29 2019-03-19 Western Digital Technologies, Inc. Efficient management of paged translation maps in memory and flash
US10175896B2 (en) 2016-06-29 2019-01-08 Western Digital Technologies, Inc. Incremental snapshot based technique on paged translation systems
US10353813B2 (en) 2016-06-29 2019-07-16 Western Digital Technologies, Inc. Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices
US10579522B2 (en) * 2016-09-13 2020-03-03 Andes Technology Corporation Method and device for accessing a cache memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727485A (en) 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US5487162A (en) * 1992-02-25 1996-01-23 Matsushita Electric Industrial Co., Ltd. Cache lock information feeding system using an address translator
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5594886A (en) 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
EP0856797B1 (en) 1997-01-30 2003-05-21 STMicroelectronics Limited A cache system for concurrent processes
JP2000200221A (ja) * 1998-10-30 2000-07-18 Nec Corp キャッシュメモリ装置及びその制御方法
US6442664B1 (en) * 1999-06-01 2002-08-27 International Business Machines Corporation Computer memory address translation system
US6430667B1 (en) * 2000-04-13 2002-08-06 International Business Machines Corporation Single-level store computer incorporating process-local address translation data structures
EP1182569B8 (en) 2000-08-21 2011-07-06 Texas Instruments Incorporated TLB lock and unlock operation
JP2002140234A (ja) 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
US20030159003A1 (en) 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
US7020748B2 (en) 2003-01-21 2006-03-28 Sun Microsystems, Inc. Cache replacement policy to mitigate pollution in multicore processors

Also Published As

Publication number Publication date
DE60320026T2 (de) 2009-05-14
JP4129458B2 (ja) 2008-08-06
EP1581873A2 (en) 2005-10-05
KR20050088077A (ko) 2005-09-01
EP1581873B1 (en) 2008-03-26
CN100397367C (zh) 2008-06-25
KR100843536B1 (ko) 2008-07-04
IL169136A0 (en) 2007-07-04
AU2003302824A1 (en) 2004-06-30
DE60320026D1 (de) 2008-05-08
CA2505610A1 (en) 2004-06-24
ATE390667T1 (de) 2008-04-15
CN1820258A (zh) 2006-08-16
WO2004053698A3 (en) 2006-01-12
CA2505610C (en) 2009-06-23
US20040117592A1 (en) 2004-06-17
WO2004053698A2 (en) 2004-06-24
US7103748B2 (en) 2006-09-05
AU2003302824A8 (en) 2004-06-30

Similar Documents

Publication Publication Date Title
JP4129458B2 (ja) メモリ管理を改良するための方法、メモリ管理機構及びコンピュータ・プログラム
US5493660A (en) Software assisted hardware TLB miss handler
US6014732A (en) Cache memory with reduced access time
US7426626B2 (en) TLB lock indicator
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
JP2014078248A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
CN108459975B (zh) 用于有效使用地址转换缓存的技术
US20160140042A1 (en) Instruction cache translation management
US6553477B1 (en) Microprocessor and address translation method for microprocessor
US10423534B2 (en) Cache memory
US20060236070A1 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
US7007135B2 (en) Multi-level cache system with simplified miss/replacement control
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
US10545877B2 (en) Apparatus and method for accessing an address translation cache
JPH10124389A (ja) キャッシュ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080310

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: 20080513

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080519

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

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

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: 20110523

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140523

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees