JP2002536717A - 仮想メモリシステムにおけるメモリアクセスの改善技術 - Google Patents

仮想メモリシステムにおけるメモリアクセスの改善技術

Info

Publication number
JP2002536717A
JP2002536717A JP2000596461A JP2000596461A JP2002536717A JP 2002536717 A JP2002536717 A JP 2002536717A JP 2000596461 A JP2000596461 A JP 2000596461A JP 2000596461 A JP2000596461 A JP 2000596461A JP 2002536717 A JP2002536717 A JP 2002536717A
Authority
JP
Japan
Prior art keywords
memory
tlb
cache
processor
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000596461A
Other languages
English (en)
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2002536717A publication Critical patent/JP2002536717A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 本発明に従って、メモリアクセスの待ち時間を短縮するための方法および装置を開示する。 【解決手段】 変換索引バッファ(110)に新しいエントリが作成される場合には、その新しいTLBエントリは、メモリ(108)内の対応するTLBページを指示する。TLB(110)の更新と同時に、TLBページをTLBページキャッシュ(114)内に格納することにより、TLBページはプロセッサ(102)の時間的に近い位置に移動させられる。TLBページキャッシュ(114)は、メインメモリ(108)よりもプロセッサ(102)に時間的に近い。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、一般に、コンピューティングシステムに関する。本発明は、特に、
メモリ管理システムに関し、より詳細には、仮想メモリアドレッシングを利用す
るコンピュータメモリシステムにおいて、変換索引バッファを用いるプロセッサ
がメモリのページにアクセスする際に生じる待ち時間を、短縮するための方法お
よび装置に関する。
【0002】
【発明の背景】
仮想メモリシステムは、システムのメインメモリが比較的小さなアドレス空間
を有している場合でも、非常に大容量のメモリのアドレッシングを可能にするシ
ステムである。仮想メモリシステムは、特に、ページやセグメントなどのメモリ
管理単位を、仮想メモリアドレスおよび対応する物理メモリアドレスを有するよ
うに規定することによって、上記の機能を提供する。特定の仮想メモリアドレス
は、メインメモリ内に含まれていても良いし、ディスクスペースなどの比較的低
速な代替メモリ内に含まれていても良い。データの物理アドレスに整合する仮想
アドレスがメインメモリである場合には、情報のアクセスおよび利用は容易であ
る。仮想アドレスに対応するページが代替メモリ内に配置されていることを物理
アドレスが示す場合には、そのページは、データへのアクセスが可能なメインメ
モリに転送またはスワップされる。転送では、通常、他の情報をメインメモリか
ら代替メモリにスワップし、新しい情報のための空間を準備する必要がある。こ
の転送は、通常、ハードウェアまたはソフトウェアとしてのメモリ管理ユニット
の制御の基で実行される。
【0003】 仮想メモリへのアクセスを高速化するために、システムには、最新に使用され
たデータおよび命令を格納するための複数のキャッシュメモリも含まれている。
要求された情報を得る場合には、キャッシュメモリへのアクセスは、メインメモ
リへのアクセスに先行して行われる。キャッシュメモリは、仮想的にアドレッシ
ングされていても良いし、物理的にアドレッシングされていても良い。しかしな
がら、キャッシュメモリが物理アドレスに従ってアクセスされる場合には、キャ
ッシュメモリおよびメインメモリのチェックに先行して、仮想から物理へのアク
セス変換処理が必要となる。
【0004】 ページング処理、すなわち、ページのスワッピング処理は、メモリのページに
よって索引付けされるデータ構造に依存する。このデータ構造には、与えられた
仮想アドレスに従ってアクセスされるメモリの物理アドレスが含まれている。こ
の物理ページアドレスを含むデータ構造は、一般に、仮想ページ番号と、テーブ
ルのサイズと、ページおよび仮想メモリ空間の番号と、によって索引付けされる
ページテーブルの形式を採用する。ページテーブルは、通常、非常に大きいので
、メインメモリ内に格納され、それ自体がページ付けされている。これは、物理
アドレスの取得のために第1のメモリアクセスが必要とされ、データの取得のた
めに第2のアクセスが必要とされる限り、各メモリアクセスに少なくとも1回ま
たは2回以上のアクセスが必要であることを意味している。
【0005】 アクセス時間の消費を最小化するために用いられる技術の1つでは、最後に実
行された変換を保存することによって、現行のアドレスが前回のアドレスと同じ
ページを参照する場合に、マッピング処理を省略する。また、余分な時間を省略
するために、キャッシュに利用される局所性の原則も利用される。参照に局所性
がある場合には、参照のためのアドレス変換にも局所性がある。これらのアドレ
ス変換を特別なキャッシュ内に維持することによって、メモリアクセスにおける
アドレス変換のための第2のアクセスを殆ど不要にすることができる。この特別
なアドレス変換キャッシュは、変換索引バッファ、または、「TLB」と呼ばれ
る。TLBエントリは、キャッシュエントリと類似する。すなわち、タグ部分は
、仮想アドレス部分を保持する。また、データ部分は、物理ページのフレーム番
号と、保護フィールドと、使用ビット数と、変更ビットまたはダーティビットと
、を保持する。図1は、代表的なTLBデータ構造100の一例を示す図である
【0006】 仮想メモリへのアクセスを高速化させるために、多くの方法および技術を利用
することができる。1つの方法では、より過密にパイプラインされたメモリアク
セスが利用され、この場合には、パイプラインに先行してTLBアクセスが実行
される。他のアプローチは、仮想アドレスを直接マッチングさせる方法である。
このようなキャッシュは、仮想キャッシュと呼ばれる。こうすれば、キャッシュ
ヒットアクセス状況からTLB変換時間を除去することができる。しかしながら
、このプロセスは、多くの時間を要し、アドレスの局所性に関係無く各仮想アド
レスに対して実行されるという欠点を有する。
【0007】 なお、TLBに関しては、デビッド・A・パターソン(David A. Patterson)お
よびジョン・L・ヘネッシィ(John L. Hennessey)著のコンピュータアーキテク
チャ クオリテイティブアプローチ第2版(Computer Architecture, A Qualitat
ive Approach Second Edition)(モーガンカウフマン出版(Morgan Kaufmann Pub
lishing))のP439〜457に詳述されている。
【0008】 以上のように、仮想メモリ環境においてメモリアクセスの待ち時間を短縮する
ための方法および装置が望まれている。
【0009】
【発明の概要】
本発明に従って、仮想メモリベースのシステムにおいてメモリアクセスの待ち
時間を短縮するための方法を開示する。
【0010】 本発明の一態様では、メインメモリおよびキャッシュメモリを有する仮想メモ
リベースのシステムにおいて、メモリアクセスの待ち時間を短縮するための方法
を開示する。この方法では、関連の仮想メモリアドレスを有するデータ要求がプ
ロセッサによって生成される。次に、要求された仮想メモリアドレスがTLB内
に関連のTLBエントリを有するか否かが決定される。TLBエントリは、TL
Bページキャッシュ内に含まれるTLBページを指示する。要求された仮想メモ
リアドレスがTLB内に関連のTLBエントリを有すると決定された場合には、
要求されたデータがTLBページから取り出され、取り出されたデータはプロセ
ッサの時間的に近くへと移動させられる。
【0011】 好ましい一実施形態では、TLBページは要求されたデータを含んでいる。
【0012】 本発明の他の態様では、仮想メモリベースのコンピューティングシステムを開
示する。このシステムは、実行可能命令を実行するように適切に配置されたプロ
セッサを備える。そして、プロセッサは、複数の実行可能命令をソフトウェアプ
ログラムの形式で格納するように設けられた階層編成のシステムメモリに結合さ
れている。システムメモリは、上位のシステムメモリコンポーネントの方が下位
のシステムメモリコンポーネントよりもプロセッサに時間的に近くなるように編
成されている。システムメモリは、複数の実行可能命令のかなりの部分を格納す
るように適切に設けられたメインメモリと、メインメモリに結合され、最新に使
用された実行可能命令のセットを格納するように適切に設けられたキャッシュメ
モリであって、メインメモリよりもプロセッサの時間的に近くにあるキャッシュ
メモリと、TLBエントリによって指示されるTLBページを格納するように設
けられたTLBページキャッシュであって、時間的にキャッシュメモリとメイン
メモリとの間に配置されたTLBページキャッシュと、を備える。
【0013】
【発明の実施の形態】
次に、本発明の好ましい実施形態を詳細に説明する。好ましい実施形態の一例
が、添付図面に示されている。以下では、好ましい実施形態に関連して本発明を
説明するが、本発明は、1つの好ましい実施形態に限定されない。逆に、特許請
求の範囲によって規定された本発明の趣旨および範囲には、代替形態、変更形態
、均等物が含まれる。
【0014】 仮想メモリアドレッシングのスキームを用いるコンピューティングシステムで
は、メモリの待ち時間を短縮するために、仮想メモリアドレスから物理メモリア
ドレスへの最新の変換のセットを識別するためのTLBと呼ばれる変換索引バッ
ファが使用される。本実施形態において、コンピューティングシステムは、メイ
ンメモリとキャッシュメモリとに接続されたプロセッサ(関連付けられたTLB
を有する)を備えている。通常、キャッシュメモリは、最新に使用されたメモリ
アドレスと、メインメモリ(例えば、ダイナミックランダムアクセスメモリすな
わちDRAM)から事前に取り出された関連のデータと、を格納するために用い
られる。仮想メモリから物理メモリへの最新の変換をTLB(通常、ルックアッ
プテーブルすなわちLUT形式を採用する)内に格納することによって、TLB
内に格納された変換に適合する仮想メモリアドレスから物理メモリアドレスへの
変換に必要な時間を、単純なテーブル索引動作に必要な時間に短縮することがで
きる。
【0015】 どんな瞬間であっても、プロセッサは、関連のTLB内に記述された以上の物
理メモリにアクセスすることは不可能なので、欠落する(すなわち、プロセッサ
のTLB内に含まれない)メモリページは、TLBを実際に更新すると同時に、
プロセッサの時間的に近くにある高速メモリ(例えば、L1キャッシュまたはL
2キャッシュなど)に移動される。TLBは、頻用されるページのキャッシュで
ある。このため、TLBの更新は、任意の数および種類のアルゴリズム(例えば
、ランダムアルゴリズムなど)で頻用されないと決定されたページを、TLBか
ら除去する(パージまたはフラッシュする)ことによって、仮想メモリから物理
メモリへの変換がTLB内に含まれないと決定されたメモリページのために空間
を開けることを意味する。
【0016】 プロセッサTLBがトラックされるとき、関連のメモリコントローラ内では、
プロセッサTLBのコピーが作成されて保持される。特定のTLBエントリが置
換された場合には、メモリコントローラは、新しいTLBエントリによって指定
された関連のページ(またはその一部分)を、プロセッサに時間的に近いメモリ
階層のセグメント内に入れる。時間的に近いとは、その特定のメモリページまた
はその一部分に対するメモリアクセスの待ち時間が短縮され、この結果、メモリ
アクセスの時間全体が改善されることを意味する。実装形態によっては、新しい
TLBエントリによって指定されたメモリページ(またはブロック)全体がプロ
セッサの時間的に近い位置に移動させられる場合もあるし、TLBエントリ自体
を変化させる原因となったアドレスに対応する小部分のみが移動させられる場合
もある。プロセッサに近いメモリ階層のセグメントに転送されたメモリページの
サイズは、主に、種々の階層セグメント間の相互接続の帯域幅に依存する。
【0017】 図2に示すように、本発明は、概して、プロセッサ102を有するコンピュー
タシステム100に関して説明される。プロセッサ102は、システムバス10
6を介してメモリコントローラ104に接続されており、システムバス106は
、階層編成システムメモリ108へのアクセスを提供するために適切に構成され
ている。本実施形態において、階層編成システムメモリ108の種々のコンポー
ネントは、DRAM、SDRAM、SLDRAM、EDO、FPM、RDRAM
などの様々な形態を採用可能である。本実施形態において、システムバス106
は、プロセッサ102によって生成されたメモリアドレス要求をメモリコントロ
ーラ104に伝送するように構成された単方向性のアドレスバス106−1を備
えている。また、システムバス106は、アドレスバス106−1と連携して、
メモリアドレスに関連付けられたコマンドを伝送する単方向性のコマンドバス1
06−2を備えている。例えば、プロセッサ102が実行可能命令を要求する場
合には、プロセッサ102は、読み出し要求(システムコマンドと呼ばれる)を
コマンドバス106−2に出力し、ほぼ同時に、対応するメモリアドレス要求(
システムアドレスと呼ばれる)をアドレスバス106−1に出力する。
【0018】 本実施形態において、コンピュータシステム100は仮想メモリベースのコン
ピュータシステムであるため、メモリアドレス要求は、実際には、物理メモリア
ドレスに変換されるべき仮想メモリアドレス要求である。このようにして、シス
テムメモリ108に対応するメモリ空間内の適切なメモリアドレスへのアクセス
が可能になる。コンピュータシステム100において、プロセッサ102は仮想
アドレスを生成する。この仮想アドレスは、ハードウェアとソフトウェアとの組
み合わせによって、物理的なメインメモリにアクセスする物理アドレスに変換さ
れる。仮想アドレスのグループは、特定のメモリページに動的に割り当て可能で
あり、仮想メモリは、仮想アドレスを物理アドレスに変換するデータ構造を必要
とする。なお、このデータ構造は、ページテーブルとも呼ばれる。コンピュータ
システム100では、アドレスの変換時間を短縮するために、変換索引バッファ
(TLB)110として、前述したアドレス変換用の連想キャッシュが用いられ
ている。
【0019】 なお、実際には、TLB110は、システム設計者が特定のコンピュータシス
テムに最適であると決定した任意の場所に配置可能である。本実施形態において
、TLB110は、仮想メモリアドレスから物理メモリアドレスへの最新の変換
を識別するために用いられるルックアップテーブル(LUT)形式を採用する。
仮想メモリから物理メモリへの最新の変換をTLB110内に格納することによ
って、TLB110に格納された変換に適合する仮想メモリアドレスから物理メ
モリアドレスへの変換に必要な時間を、単純なテーブル索引動作に必要な時間に
短縮することができる。このテーブル索引動作は、仮想メモリから物理メモリへ
の変換動作よりもかなり速い。
【0020】 本発明の一実装態様では、プロセッサ102が特定の仮想メモリ要求を生成す
る毎に、TLB110が照会され、要求されたメモリページがTLB110内の
エントリによって指定された複数のメモリページのうちの1つに関連付けられて
いるか否かが決定される。前述したように、局所性の原理に基づくと、特定のT
LBエントリによって指定されたメモリページのサイズが大きい程、TLBがヒ
ットする可能性、すなわち、要求された仮想メモリページが関連のTLBエント
リを有する可能性が大きくなるので、変換動作を不要とすることができる。しか
しながら、要求されたメモリページがTLBエントリに関連付けられていない(
すなわち欠落している)場合には、要求された仮想メモリページのアドレスを変
換し、最終的には、システムメモリから取り出す必要がある。
【0021】 本発明の一実施形態では、コントローラ104内には、TLBレジスタ110
のコピー形式を採用するコントローラTLB112が含まれている。コントロー
ラ104は、TLB110内の新しいエントリに対応するメモリページ(通常、
メモリの下位に配置されている)を指定するために使用される。実装形態によっ
ては、新しいTLBエントリによって指定されたメモリページ(またはブロック
)全体が、プロセッサに時間的に近くなるように、プロセッサ102の時間的に
近い位置に配置されたTLBページキャッシュ114に移動させられる場合もあ
る。なお、他の実装形態では、TLBエントリ自体を変化させる原因となったア
ドレスに対応する小部分のみが移動させられる場合もある。プロセッサに近いメ
モリ階層のセグメントに転送されたメモリページのサイズは、主に、システムメ
モリ108の種々の階層コンポーネント間の相互接続の帯域幅に依存する。なお
、この場合には、データ転送のサイズは、TLBページキャッシュ114とメイ
ンメモリとの間の相互接続の帯域幅によって決定される。このような場合には、
例えば、RAMBUSTMおよび/またはSLDRAM(同期リンクダイナミック
RAM)などのメモリ構造が、従来の高速ページモードタイプのメモリよりも適
している。
【0022】 なお、実際のTLBトラッキングメカニズムは、当然、TLB自体の配置に応
じて、いくつかの実装形態を採用可能である。TLBがプロセッサ自体の中に配
置されている場合は、TLBに直接アクセスすることが可能なので、プロセッサ
は、メモリコントローラに対して通知フラグを発行し、TLBの欠落アドレスに
基づいて所望のデータを事前に取得可能である。通知フラグは、プロセッサ上の
専用の制御ピンによって、または、プロセッサバスプロトコル内の変化によって
、作成可能である。一実施形態において、フラグは、TLBの欠落が発生したこ
と、および、TLBのどの部分が無効にされたかを示している。これは、専用の
ピンバスによって達成される。例えば、Pentium IITMプロセッサは、6つのイン
デックスピンと1つの制御ピンのみを有している。プロセッサが、プロセッサバ
ス上で特殊なメッセージサイクルを発行できる場合もある。このメッセージサイ
クルは、TLBエントリインデックスと新しい物理アドレスとを伝送することが
でき、この結果、本発明の目的のために、コントローラTLB112は、プロセ
ッサTLB110に関して常に最新の状態になる。
【0023】 制御メカニズムがメモリコントローラ自体の中に配置されている場合には、メ
モリコントローラは、例えば、二次キャッシュに至るトラフィックや、メインメ
モリ内に通常配置されるページテーブルを監視することによって、TLBの内容
をトラッキングしなければならない。二次キャッシュがモニタされる場合、プロ
セッサは、メモリコントローラ内のスヌープ回路へのアクセスを可能にしなけれ
ばならない。しかしながら、二次キャッシュをスヌープすることができない場合
、および/または、プロセッサがTLB欠落フラグを示さない場合には、欠落ア
ドレスへの物理アドレスのアクセスが発行された際に、メモリコントローラTL
Bを更新しなければならない。
【0024】 図3は、本発明の一実施形態に従って、システムメモリ108の特定の実装形
態を示す図である。コンピュータアーキテクチャの設計およびプログラミングの
当業者には周知のように、コンピュータシステム100に示すようなコンピュー
タシステムは、一般に、マルチレベル階層のメモリシステムを採用する。この階
層的なアプローチでは、比較的高速で高価な限定容量のメモリ(すなわちレジス
タ202)が階層の最上位に配置され、比較的低速で廉価な大容量のメモリが階
層の最下位に配置される。そして、メモリ階層には、通常、キャッシュメモリ2
04と呼ばれる小容量の高速メモリが含まれている。キャッシュメモリ204は
、物理的にプロセッサ102(通常は集積回路である)内に組み込まれるか、物
理的にプロセッサ102の近くに搭載され、主に相互接続における待ち時間が短
縮されることにより、高速化(すなわち時間的に近い)が図られる。なお、L1
、L2などのサイズおよびアクセス時間が異なる種々のレベルのキャッシュを用
いることができる。キャッシュメモリ204は、通常、約16〜512キロバイ
トのメモリを格納可能であり、通常、約3〜30nsのアクセス時間を要する。
また、キャッシュメモリ204は、プロセッサ102によって最新に使用された
データセット、または、作業データセットと呼ばれるデータセットを格納するこ
とができる。
【0025】 データがメインメモリ206から読み出され、または、メインメモリ206に
書き込まれる場合には、関連のメインメモリアドレスとともに、そのデータのコ
ピーがキャッシュメモリ204に保存される。キャッシュ204は、後続の読み
出しのアドレスをモニタすることによって、要求されたデータが既にキャッシュ
内に存在するか否かをチェックする。既に存在する場合(キャッシュヒットの場
合)には、直ちに応答し、メインメモリの読み出しは中断される(または開始さ
れない)。データがキャッシュされていない場合(キャッシュ欠落の場合)には
、そのデータがメインメモリから取り出されてキャッシュ内に保存される。
【0026】 キャッシュ204は、メインメモリ206よりも高速のメモリチップによって
構築されるので、キャッシュヒット完了に必要な時間は、通常のメモリアクセス
に必要な時間よりもかなり短い。キャッシュをプロセッサと同じ集積回路上に配
置することによって、アクセス時間の更なる短縮を図っても良い。この場合のキ
ャッシュは一次キャッシュとして知られ、CPUチップの外側に、比較的大型で
低速の二次キャッシュを設けても良い。
【0027】 なお、キャッシュの最も重要な特性はヒット率、すなわち、全メモリアクセス
のうち、キャッシュ204によって満足される割合である。これは、キャッシュ
の設計にも依存するが、メインメモリに対するキャッシュのサイズに大きく依存
する。キャッシュのサイズは、高速メモリチップのコストによって制約され、ま
た、より重要な物理的サイズによって制約される。
【0028】 また、ヒット率は、実行中の特定のプログラムのアクセスパターン(読み出し
および書き込みが行われるアドレスのシーケンス)にも依存する。キャッシュは
、大部分のプログラムのアクセスパターンに見られる2つの特性に依存している
。すなわち、時間的な局所性(一度アクセスされたものは直ぐに再度アクセスさ
れる可能性が大きいこと)と、空間的な局所性(アクセスされたメモリ位置に近
いメモリ位置はアクセスされる可能性が大きいこと)と、の2つである。キャッ
シュは、空間的な局所性を利用するために、通常、一度に複数のワード、すなわ
ち「キャッシュライン」または「キャッシュブロック」に対して動作する。メイ
ンメモリは、キャッシュライン全体(キャッシュ可能な項目のみ)の読み出しお
よび書き込みを行う。
【0029】 プロセッサ102がメインメモリ206に書き込みを行う場合には、プロセッ
サによって直ぐに再度読み出しが実施されることを想定し、データを先ずキャッ
シュ204に書き込む。ここでは、種々の手法が採用される。ライトスルーキャ
ッシュでは、データは、キャッシュされると同時にメインメモリに書き込まれる
。ライトバックキャッシュでは、データは、キャッシュから除去される時にのみ
メインメモリに書き込まれる。
【0030】 アクセスが全て書き込みである場合は、ライトスルーの手法を採用すると、キ
ャッシュへの書き込み毎にメインメモリへの書き込みが必要になるので、システ
ムの速度はメインメモリの速度まで低下する。しかしながら、統計的には、アク
セスの大部分は読み出しであり、そして、これらの大部分はキャッシュから得ら
れる。ライトスルーは、ライトバックよりも簡単である。すなわち、ライトスル
ーでは、置換されるべきエントリが既にメインメモリにコピーされているので、
そのエントリをキャッシュに上書きするだけで良い。一方、ライトバックでは、
キャッシュは、フラッシュされたエントリのメインメモリへの書き込みを開始し
、続いて(プロセッサによる読み出しに備えて)メインメモリからの読み出しを
行う、必要がある。しかしながら、メインメモリにアクセスすることなく何回も
キャッシュにエントリを書き込むことができるので、ライトバックの方がより効
率的である。キャッシュが一杯であって、さらに別のデータラインをキャッシュ
したい場合には、キャッシュエントリの1つを選択し、メインメモリに書き戻す
か、「フラッシュする」。そして、その場所に新しいラインを入れる。どのエン
トリをフラッシュさせるかは、「置換アルゴリズム」によって決定される。
【0031】 ある実装形態では、システムメモリ108は、新しいエントリとして指定され
たこれらのメモリページ(またはその一部分)をTLB110またはTLB11
2のいずれかに格納するために用いられるTLBページキャッシュ114を備え
ている。
【0032】 本実施形態では、最下位には、記憶容量の制約が比較的少なく、かつ、数秒か
ら数分の範囲の平均アクセス時間(すなわち、待ち時間)を要する、大容量外部
メモリ記憶デバイス210(例えば、テープドライブ)が設けられている。2番
目の下位には、通常、数ギガバイトのデータを格納でき、かつ、約10msのア
クセス時間を要する、ディスクメモリ(または任意の同等な媒体)208が設け
られている。その上位には、通常数メガバイトのデータを格納でき、かつ、通常
約50ns〜約150nsのアクセス時間を要する、メインメモリ206(通常
、DRAMタイプのメモリデバイス)が設けられている。本発明の一実施形態で
は、TLBページキャッシュ114は、メインメモリ206とキャッシュメモリ
204との間に階層的に配置されており、これにより、メインメモリへのアクセ
ス回数を減少させることができる。例えば、変換索引バッファ110(この場合
はプロセッサ102内に配置されている)によって指定されたメモリページを格
納することにより、メインメモリのアクセス回数を減少させることができる。こ
れは、TLBが「ヒット」した(すなわち要求されたメモリページが関連のエン
トリをTLB110内に有する)場合に、要求されたメモリページをメインメモ
リ206からではなくTLBページキャッシュ114から取り出すだけで良く、
この結果、システムメモリのアクセスの待ち時間全体を、TLBページキャッシ
ュ114がない場合よりも短縮できるためである。なお、以下の説明では、特定
のTLBエントリに対応するメモリページをTLBページと呼ぶ。
【0033】 図4は、チップアレイ内にTLBページを有するコンピュータシステム400
を、本発明の一実施形態に従って示す図である。本実施形態において、システム
メモリ108は、複数のDRAMタイプのメモリデバイスで形成されたチップア
レイ402を備えている。
【0034】 動作において、例えば、特定のメモリ位置を読み出す場合、プロセッサ102
は、メモリアレイ402内のメモリ位置に対応するアドレス要求を生成する。ア
レイ402を形成する各DRAM402−1〜402−nは、記憶セル404の
論理「矩形」内にコンテンツを保持している。例えば、格納されたデータを読み
出す場合には、記憶セル404−1は、まず、メモリコントローラ104から与
えられる「行アドレス選択」(または、「行アドレスストローブ」、「/RAS
」)と呼ばれる信号を用いて、行406を活性化する。具体的には、RASは、
DRAMに送信される信号であり、関連のアドレスが行アドレスであることを通
知する。
【0035】 通常、/RAS信号は、プロセッサ102から与えられるアドレス要求のうち
の最も重要な部分に基づいている。/RAS信号が受信されて適切にデコードさ
れると、選択された行の安定化に必要なリカバリ時間と呼ばれる期間が経過した
後、行406全体のデータがセンスアンプ408に転送される。代表的な従来型
のDRAMでは、通常、RASからセンスアンプの転送は約30nsで実行され
る。
【0036】 選択された行が安定化し、選択された行内のデータがセンスアンプ408に転
送されると、メモリコントローラ104は、さらに、「列アドレス選択」(「/
CAS」)と呼ばれる信号を形成するアドレス要求をデコードする。これは、D
RAMに送信されて、関連のアドレスが列アドレスであることを通知する。列選
択回路(図示せず)は、/CAS信号に応じて、センスアンプにおいて、所望の
データを含むメモリアレイの特定の記憶セル(この場合は404−1)を、選択
する。次に、セル404−1内のコンテンツがセンスアンプ408からデータバ
ス108に送信され、プロセッサ102またはデータを要求した他のデバイスに
よる読み出しが可能になる。なお、殆どDRAMでは、CASは約30nsで実
行される。
【0037】 このように、記憶アレイ404−1からセンスアンプ408にデータを移動さ
せることによって、そのデータは、プロセッサ102の時間的に近い位置に移動
する。RAS動作は、所望のデータをバス108に移動させるためのCAS動作
に先行する論理的および物理的な動作なので、上記のデータの移動は定量的に達
成される。
【0038】 メモリアレイ402内に物理的に設けられたTLBページの部分は、行アクセ
ス動作によってセンスアンプ408内に導かれる列に対応するので、そのTLB
ページは、プロセッサ102の時間的に近い位置に移動される。したがって、複
数のセンスアンプを物理的および/または論理的に鎖状に連結し、新しいTLB
エントリに関連付けられたTLBページ全体をセンスアンプ内に常駐させると、
性能の観点から有効である。こうすれば、特定のTLBページへのあらゆるアク
セスのアクセス時間が全体的に高速化される。
【0039】 このような構成は図5に示されており、図5には、4つのDRAMメモリチッ
プからなるアレイ間のアドレスマッピングのスキームが、本発明の一実施形態に
従って示されている。
【0040】 図6に示す他の実施形態では、メモリアレイを形成するメモリチップは、従来
のDRAMメモリアレイに加えて、高速スタティックバッファ602を備えてい
る。このようなメモリチップの代表的な例として、日本のNECによって製造さ
れたDRAMファミリ「仮想チャネル」が挙げられる。この新しいアーキテクチ
ャでは、高速レジスタによって構成されたチャネルバッファを組み込むことによ
って、柔軟で高効率なデータ転送を実現している。マルチメディアPCや、ワー
クステーション、インターネットサーバをサポートする大容量DRAMでは、仮
想チャネルメモリが利用されている。この新しいメモリのコア技術の重要な特徴
は、高速レジスタによって構成されたチャネルバッファをメモリに組み込むこと
にある。仮想チャネルDRAMは、チャネルバッファに対する読み出し/書き込
みの動作を、メモリのフロントエンドプロセスの外側から実行する。または、複
数のメモリセルと複数のチャネルバッファとの間におけるデータの転送リレーな
どの内部動作と、メモリセルのプリチャージと、リフレッシュとを、フロントエ
ンドプロセスとは独立して実行する。この結果、フォアグランド処理と平行して
バックグランド処理を実行することができる。並列処理用のサポートアーキテク
チャを作成することによって、仮想チャネルDRAMは、データの平均転送速度
を高速に維持し、固有のメモリ特性を最大限に活かすことができる。これは、一
部には、メモリアレイにアクセスする際に、自身のリソースを有する独立のチャ
ネルにアクセスできるためである。例えば、種々のリンクされた仮想チャネルを
(物理的または論理的に)鎖状に連結してTLBサイズのページを形成するなど
の適切な配置を行う場合には、オーバーヘッドの低減や、待ち時間の短縮、スル
ープットの向上、バス効率の向上をもたらすことができる。
【0041】 図7は、TLBページの高速転送に適した高速インタフェースを有するシステ
ム700を、本発明の一実施形態に従って示す図である。システム700は、コ
ンピュータネットワーキングや、データネットワーキング、インスツルメンテー
ション、ビデオ処理、デジタル処理、高速メモリデバイスの利用による利点が望
まれる他のアプリケーション等の、広範な種々のアプリケーションに利用可能で
ある。RDRAM(RAMBUS DRAM)702は、例えば、プロセッサ1
02と連携して作動する実行可能命令を格納するなどの、種々のメモリ機能を実
行するために使用される。また、RDRAM702は、データ処理やデジタル画
像操作プログラムなどの大量のデータに素早くアクセスすることが要望されるア
プリケーションにおいて、プロセッサ102で用いられるデータを格納するため
に使用される。なお、システム700は単なる例示であり、本発明の真の範囲お
よび趣旨は特許請求の範囲によって示される。
【0042】 パフォーマンスを考慮すると、TLBページキャッシュ114への転送速度は
可能な限り高いことが望ましい。当該分野において周知のように、DRAM70
2−1〜702−4に固有の並列性は転送レートを高める。そして、DRAM7
02−1〜702−4は、バッファ704−1〜704−4として構成されたT
LBページキャッシュ703に、連結されたTLBページを与える。しかしなが
ら、RAMBUSタイプのチャネルによって表されるような高速の相互接続の出
現により、TLBページキャッシュ114の配置を、高速バス708によってD
RAM702に接続することが可能なあらゆる位置に拡張可能となる。
【0043】 図8は、メモリページをプロセッサの時間的に近い位置に移動させるための工
程800を、本発明の一実施形態に従って詳細に示すフローチャートである。8
02では、プロセッサは、関連の仮想メモリアドレスを有するデータ要求を生成
する。804では、要求された仮想メモリアドレスがTLB内に関連のTLBエ
ントリを有するか否かが決定される。要求されたメモリページが関連のTLBエ
ントリを有していないと決定された場合には、806において、仮想メモリアド
レスは、ページテーブルを用いて物理メモリアドレスに変換される。同時に、8
08において、TLBは、仮想メモリから物理メモリへの変換に対応する新しい
TLBエントリによって更新される。810では、新しいTLBエントリに対応
するTLBページが、プロセッサの時間的に近い位置に移動させられる。一実施
形態では、TLBページは、メインメモリとキャッシュメモリとの間に階層的に
配置されたローカルなTLBページキャッシュに移動させられる。
【0044】 また、804において、要求されたメモリページがTLB内に関連のTLBエ
ントリを有していないと決定された場合には、812において、要求されたメモ
リページをTLBページキャッシュから取り出す。そして、いずれの場合であっ
ても、取り出されたページに適合する所望のデータ要素は、処理のためにプロセ
ッサに移動させられる。
【0045】 以上、理解を明確にする目的で本発明を詳細に説明したが、添付の特許請求の
範囲内で変更および修正が可能であることは明らかである。
【0046】 さらに、本発明のプロセスおよび装置は、ともに代替手法によっても実現でき
る。したがって、本実施形態は、例示であって限定ではなく、本発明は、本明細
書に記載された項目に限定されず、添付の特許請求の範囲および均等物の範囲内
で変更することができる。
【図面の簡単な説明】
本発明を添付図面を用いて限定的ではなく例示的に示す。同様の構成要素には
同様の番号が付されている。
【図1】 従来のTLBデータ構造を示す図である。
【図2】 分散TLBレジスタを有する仮想メモリベースのコンピュータシステムを、本
発明の一実施形態に従って示す図である。
【図3】 階層的なメモリ構成を、本発明の一実施形態に従って示す図である。
【図4】 DRAMメモリデバイスのアレイ内にTLBページが分散されたコンピュータ
システムを、本発明の一実施形態に従って示す図である。
【図5】 図4に示すコンピュータシステムに基づく、代表的なアドレスマッピングのス
キームを示す図である。
【図6】 図4に示すDRAMメモリデバイスのアレイ内に高速スタティックバッファを
備えるコンピュータシステムを示す図である。
【図7】 高速データ相互接続によってメモリアレイに接続されたメモリコントローラ内
にTLBバッファを有するコンピュータシステムを、本発明の一実施形態に従っ
て示す図である。
【図8】 仮想メモリベースのシステムにおいてメモリアクセスの待ち時間を短縮するた
めの処理を、本発明の一実施形態に従って詳細に示すフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,US,UZ,VN,YU,ZA,ZW

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 メインメモリとキャッシュメモリとを有する仮想メモリベー
    スのシステムにおいてメモリアクセスの待ち時間を短縮するための方法であって
    、 関連の仮想メモリアドレスを有するデータ要求をプロセッサによって生成する
    工程と、 前記要求された仮想メモリアドレスが、TLB内に関連のTLBエントリを有
    するか否かを決定する工程であって、前記TLBエントリはTLBページキャッ
    シュに含まれるTLBページを指示し、前記TLBページは前記要求されたデー
    タを含む、工程と、 前記要求された仮想メモリアドレスが前記TLB内に関連のTLBエントリを
    有すると決定された場合には、前記要求されたデータを、前記TLBページキャ
    ッシュから取り出し、前記取り出されたデータを前記プロセッサの時間的に近く
    へと移動させる工程と を備える方法。
  2. 【請求項2】 請求項1記載の方法であって、さらに、 前記要求されたメモリページが関連のTLBエントリを有さないことが決定さ
    れた場合には、前記仮想メモリアドレスを物理メモリアドレスに変換する工程と
    、 前記仮想メモリから物理メモリへの変換に対応する新しいTLBエントリを用
    いて前記TLBを更新する工程と、 前記新しいTLBエントリに対応する前記TLBページを、前記更新と同時に
    、または、前記更新後できるだけ早く、前記プロセッサの時間的に近くへと移動
    させる工程と を備える方法。
  3. 【請求項3】 請求項2記載の方法であって、 前記変換は、ページテーブルを用いて実行される、方法。
  4. 【請求項4】 請求項1記載の方法であって、 前記TLBページキャッシュは、前記メインメモリと前記キャッシュメモリと
    の間に階層的に配置されている、方法。
  5. 【請求項5】 請求項4記載の方法であって、 新しいTLBページがTLBの欠落イベントに関連付けられる場合には、前記
    新しいTLBページは、前記TLBページキャッシュに移動される、方法。
  6. 【請求項6】 仮想メモリベースのコンピューティングシステムであって、 実行可能命令を実行するように適切に配置されたプロセッサと、 前記プロセッサに結合され、複数の実行可能命令をソフトウェアプログラムの
    形式で格納するように設けられた階層編成のシステムメモリであって、上位のシ
    ステムメモリコンポーネントの方が下位のシステムメモリコンポーネントよりも
    前記プロセッサに時間的に近くなるように編成された前記システムメモリと、 を備え、 前記システムメモリは、 前記複数の実行可能命令のかなりの部分を格納するように適切に設けられたメ
    インメモリと、 前記メインメモリに結合され、最新に使用された実行可能命令のセットを格納
    するように適切に設けられたキャッシュメモリであって、前記メインメモリより
    も前記プロセッサの時間的に近くにある前記キャッシュメモリと、 TLBエントリによって指示されるTLBページを格納するように設けられた
    TLBページキャッシュであって、時間的に前記キャッシュメモリと前記メイン
    メモリとの間に配置された前記TLBページキャッシュと、 を備えるシステム。
  7. 【請求項7】 請求項6記載のシステムであって、さらに、 前記プロセッサを前記システムメモリに結合させ、前記システムメモリと前記
    プロセッサとの間のトラフィックを制御するように設けられたメモリコントロー
    ラを備える、システム。
  8. 【請求項8】 請求項7記載のシステムであって、 前記プロセッサに含まれる変換索引バッファ(TLB)は、仮想アドレスから
    物理アドレスへの最新の変換のセットを格納するように適切に設けられ、仮想ア
    ドレスから物理アドレスへの特定の変換は、前記TLBエントリの形式をとる、
    システム。
  9. 【請求項9】 請求項7記載のシステムであって、 前記メモリコントローラに含まれる変換索引バッファ(TLB)は、仮想アド
    レスから物理アドレスへの最新の変換のセットを格納するように適切に設けられ
    、仮想アドレスから物理アドレスへの特定の変換は、前記TLBエントリの形式
    をとる、システム。
  10. 【請求項10】 請求項7記載のシステムであって、 前記TLBページは、前記TLBページキャッシュと実質的に同じサイズであ
    る、システム。
JP2000596461A 1999-01-28 2000-01-27 仮想メモリシステムにおけるメモリアクセスの改善技術 Pending JP2002536717A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11788699P 1999-01-28 1999-01-28
US60/117,886 1999-01-28
PCT/US2000/002403 WO2000045271A1 (en) 1999-01-28 2000-01-27 Techniques for improving memory access in a virtual memory system

Publications (1)

Publication Number Publication Date
JP2002536717A true JP2002536717A (ja) 2002-10-29

Family

ID=22375347

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2000596457A Pending JP2002536715A (ja) 1999-01-28 2000-01-27 仮想メモリシステムにおけるメモリアクセスの改善技術
JP2000596460A Pending JP2002536716A (ja) 1999-01-28 2000-01-27 仮想メモリシステムにおけるメモリアクセスの改善技術
JP2000596461A Pending JP2002536717A (ja) 1999-01-28 2000-01-27 仮想メモリシステムにおけるメモリアクセスの改善技術

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2000596457A Pending JP2002536715A (ja) 1999-01-28 2000-01-27 仮想メモリシステムにおけるメモリアクセスの改善技術
JP2000596460A Pending JP2002536716A (ja) 1999-01-28 2000-01-27 仮想メモリシステムにおけるメモリアクセスの改善技術

Country Status (7)

Country Link
US (1) US6442666B1 (ja)
EP (3) EP1196850B1 (ja)
JP (3) JP2002536715A (ja)
KR (3) KR20010101693A (ja)
CN (3) CN1352771A (ja)
AU (3) AU3693800A (ja)
WO (2) WO2000045267A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041151A1 (ja) * 2013-09-20 2015-03-26 株式会社 東芝 キャッシュメモリシステムおよびプロセッサシステム

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674441B1 (en) * 2000-07-26 2004-01-06 Ati International, Srl Method and apparatus for improving performance of an accelerated graphics port (AGP) device
SE0003398D0 (sv) * 2000-09-22 2000-09-22 Ericsson Telefon Ab L M Optimization of a pipelined processor system
US7203730B1 (en) 2001-02-13 2007-04-10 Network Appliance, Inc. Method and apparatus for identifying storage devices
DE60237583D1 (de) * 2001-02-13 2010-10-21 Candera Inc Failover-verarbeitung in einem speicherungssystem
US6622211B2 (en) * 2001-08-15 2003-09-16 Ip-First, L.L.C. Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
US7032136B1 (en) 2001-09-07 2006-04-18 Network Appliance, Inc. Auto regression test for network-based storage virtualization system
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US7112884B2 (en) * 2002-08-23 2006-09-26 Ati Technologies, Inc. Integrated circuit having memory disposed thereon and method of making thereof
US7062610B2 (en) * 2002-09-30 2006-06-13 Advanced Micro Devices, Inc. Method and apparatus for reducing overhead in a data processing system with a cache
US6986016B2 (en) * 2002-09-30 2006-01-10 International Business Machines Corporation Contiguous physical memory allocation
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
US7752294B2 (en) * 2002-10-28 2010-07-06 Netapp, Inc. Method and system for dynamic expansion and contraction of nodes in a storage area network
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
CN1311366C (zh) * 2003-05-22 2007-04-18 群联电子股份有限公司 快闪存储器的平行双轨使用方法
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
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
US7171514B2 (en) * 2003-11-20 2007-01-30 International Business Machines Corporation Apparatus and method to control access to logical volumes using parallel access volumes
US7117337B2 (en) * 2004-02-19 2006-10-03 International Business Machines Corporation Apparatus and method for providing pre-translated segments for page translations in segmented operating systems
CN100414518C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 改进的虚拟地址变换方法及其装置
CN100414519C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 一种从虚拟地址向物理地址变换的方法及其装置
EP1872229A4 (en) * 2005-04-07 2017-08-02 Insightful Corporation Method and system for handling large data sets in a statistical language
EP1717708B1 (en) * 2005-04-29 2010-09-01 STMicroelectronics Srl An improved cache memory system
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US7805588B2 (en) * 2005-10-20 2010-09-28 Qualcomm Incorporated Caching memory attribute indicators with cached memory data field
US8909946B2 (en) 2005-11-15 2014-12-09 Microsoft Corporation Efficient power management of a system with virtual machines
US20080282055A1 (en) * 2005-12-29 2008-11-13 Rongzhen Yang Virtual Translation Lookaside Buffer
CN100462941C (zh) * 2006-01-26 2009-02-18 深圳艾科创新微电子有限公司 一种实现可配置risc cpu中的存储器空间的方法
US8615643B2 (en) 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
US8694712B2 (en) * 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
US8185716B2 (en) * 2007-10-22 2012-05-22 Qimonda Ag Memory system and method for using a memory system with virtual address translation capabilities
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
CN102110282A (zh) * 2011-03-14 2011-06-29 北京播思软件技术有限公司 一种嵌入式设备的屏幕绘图方法及系统
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
CN103116556B (zh) * 2013-03-11 2015-05-06 无锡江南计算技术研究所 内存静态划分虚拟化方法
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
KR101821633B1 (ko) 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US20160103766A1 (en) * 2013-07-01 2016-04-14 Hewlett-Packard Development Company, L.P. Lookup of a data structure containing a mapping between a virtual address space and a physical address space
WO2016122585A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Modifying characteristics of a memory segment
CN105373456B (zh) * 2015-11-19 2018-06-29 英业达科技有限公司 降低缓存命中率的内存测试方法
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
US10847196B2 (en) 2016-10-31 2020-11-24 Rambus Inc. Hybrid memory module
WO2019074743A1 (en) 2017-10-12 2019-04-18 Rambus Inc. NON-VOLATILE PHYSICAL MEMORY WITH DRAM CACHE MEMORY
KR20200123912A (ko) * 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
EP0471462B1 (en) * 1990-08-06 1998-04-15 NCR International, Inc. Computer memory operating method and 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
US5630097A (en) * 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JP3135795B2 (ja) * 1994-09-22 2001-02-19 東芝マイクロエレクトロニクス株式会社 ダイナミック型メモリ
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US5933593A (en) * 1997-01-22 1999-08-03 Oracle Corporation Method for writing modified data from a main memory of a computer back to a database
US5996055A (en) 1997-11-26 1999-11-30 Digital Equipment Corporation Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041151A1 (ja) * 2013-09-20 2015-03-26 株式会社 東芝 キャッシュメモリシステムおよびプロセッサシステム
JP2015060571A (ja) * 2013-09-20 2015-03-30 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
US9740613B2 (en) 2013-09-20 2017-08-22 Kabushiki Kaisha Toshiba Cache memory system and processor system

Also Published As

Publication number Publication date
JP2002536716A (ja) 2002-10-29
EP1181644A1 (en) 2002-02-27
US6442666B1 (en) 2002-08-27
EP1157335A1 (en) 2001-11-28
AU3352800A (en) 2000-08-18
WO2000045271A1 (en) 2000-08-03
AU3693800A (en) 2000-08-18
CN1160631C (zh) 2004-08-04
KR20010101694A (ko) 2001-11-14
CN1158607C (zh) 2004-07-21
WO2000045271A9 (en) 2001-10-04
CN1347526A (zh) 2002-05-01
JP2002536715A (ja) 2002-10-29
WO2000045270A2 (en) 2000-08-03
EP1157335A4 (en) 2004-05-26
KR20010101695A (ko) 2001-11-14
EP1196850A4 (en) 2004-05-26
WO2000045267A1 (en) 2000-08-03
EP1181644A4 (en) 2004-05-19
CN1352772A (zh) 2002-06-05
AU3693900A (en) 2000-08-18
EP1196850A1 (en) 2002-04-17
CN1352771A (zh) 2002-06-05
EP1196850B1 (en) 2016-08-24
WO2000045270A8 (en) 2001-03-15
KR20010101693A (ko) 2001-11-14

Similar Documents

Publication Publication Date Title
JP2002536717A (ja) 仮想メモリシステムにおけるメモリアクセスの改善技術
US10248576B2 (en) DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JP3264319B2 (ja) バスブリッジ
US6782453B2 (en) Storing data in memory
US20020099913A1 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
JPH0744458A (ja) キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法
US20110029712A1 (en) Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US5909697A (en) Reducing cache misses by snarfing writebacks in non-inclusive memory systems
JP3866447B2 (ja) マルチプロセッサ・ノードデータ処理システムに使用するディレクトリエントリ割当てシステム及び方法
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US7093075B2 (en) Location-based placement algorithms for set associative cache memory
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US20020002659A1 (en) System and method for improving directory lookup speed
US20050188160A1 (en) Method and apparatus for maintaining coherence information in multi-cache systems
WO2000045270A1 (en) Techniques for improving memory access in a virtual memory system