JPH08272693A - 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置 - Google Patents

仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置

Info

Publication number
JPH08272693A
JPH08272693A JP8039952A JP3995296A JPH08272693A JP H08272693 A JPH08272693 A JP H08272693A JP 8039952 A JP8039952 A JP 8039952A JP 3995296 A JP3995296 A JP 3995296A JP H08272693 A JPH08272693 A JP H08272693A
Authority
JP
Japan
Prior art keywords
cache
virtual address
cacheable
data corresponding
primary
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
JP8039952A
Other languages
English (en)
Other versions
JP3859757B2 (ja
Inventor
Kohn Leslie
コーン レスリー
Ken Okin
オキン ケン
Greenlay Dale
グリーンレイ デール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH08272693A publication Critical patent/JPH08272693A/ja
Application granted granted Critical
Publication of JP3859757B2 publication Critical patent/JP3859757B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

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)【要約】 【課題】エイリアスがオフセットされない場合において
も、データの処理速度を低下させることなくデータの一
貫性を維持すること。 【解決手段】物理アドレスへマッピングする第1の仮想
アドレス、仮想的に指標付けされた1次キャッシュ及び
物理的に指標付けされた2次キャッシュを有するメモリ
システム内にて、物理アドレスへマッピングする第2の
仮想アドレスの参照方法において、1次キャッシュ内に
存在する第1の仮想アドレスに対応する全てのOLDALIAS
を無効にするデータ無効工程と、1次キャッシュ内に存
在する第1の仮想アドレスに対応するOLDALIASをキャッ
シュ不能にするキャッシュ不能工程と、2次キャッシュ
内に存在する第1の仮想アドレスに対応するOLDALIASを
キャッシュ可能にするキャッシュ可能工程と、2次キャ
ッシュ内に存在する第2の仮想アドレスに対応するNEWA
LIASをキャッシュ可能にするキャッシュ可能工程とを備
えた第2の仮想アドレスの参照方法。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は多層メモリ・システ
ムを備えたプロセッサに係わる。詳しくは、仮想的に指
標付けされたキャッシュにおけるエイリアスに関する。
【0002】
【従来の技術】多層メモリ・システムを用いることは、
参照位置を利用するための一般的な技術である。基本的
な考えは少量の高速アクセス・メモリと、多量の低速ア
クセス・メモリとを編成することにより、ほとんどのア
クセスが少量の高速メモリに対して行われるようにする
ことである。そのようなメモリ・システムの平均アクセ
ス時間は、少量の高速メモリよりも僅かに大きく、その
有効記憶容量は多量の低速メモリのそれと同等である。
【0003】多層メモリ・システムの一般的な形態はキ
ャッシュ・メモリ、即ち索引バッファ・メモリである。
図1に示すように、キャッシュ・メモリ10はプロセッ
サ11とメイン・メモリ12との間に配置された比較的
小さな特殊メモリ装置である。キャッシュ・メモリ10
は、プロセッサ11によってアクセスされそうなメイン
・メモリ12からのワードのコピーを保持している。キ
ャッシュ10はメイン・メモリ12よりも高速であるた
め、アクセス頻度の高い記憶位置がキャッシュ10内で
見つかれば、ヒット率が高くなるとともに、メモリ・ア
クセスの平均時間は短くなる。キャッシュ10により実
行される方法は、プロセッサによって最近使用された他
のワードの近くに位置するところのワードを保持するこ
とである。この方法により利用される局所参照とは、短
時間のうちにメモリの小さな領域に群れをなすようにア
クセスするメモリ・アクセスの傾向をいう。
【0004】キャッシュの記憶位置は冗長である。それ
は各記憶位置がより低速のメイン・メモリ12にも格納
された情報を、更にアクセスし易くするようにしたコピ
ーを用いるという意味からである。このため、キャッシ
ュ10の存在により、アドレス化可能な全記憶容量はプ
ログラマが見てとれるように増加しはしない。むしろ、
プログラムの平易な方法において、キャッシュ10は同
一のアドレス空間内に存在する記憶位置への平均アクセ
ス時間を改善する。
【0005】キャッシュ10はメイン・メモリ12より
もかなり小型であるため、いつでもキャッシュされ得る
のはメイン・メモリ12の少量の記憶位置のみである。
従って、一般的にキャッシュ10内に存在する各記憶位
置、即ちキャッシュ・ラインは概念的に、タグ・フィー
ルド及び内容フィールドという2つの部分を有する。読
み出し又は書き込み動作が要求されるとき、指定された
アドレスはキャッシュ10内の一定のラインのタグ・フ
ィールドと比較される。その比較により整合が生じれ
ば、整合しているタグを含むキャッシュ・ラインの内容
フィールドが読み出し又は書き込まれる。これはキャッ
シュ・ヒットとして知られており、メイン・メモリ12
にアクセスする必要はない。
【0006】近年のプロセッサは、物理アドレス空間と
は概念的に別の仮想アドレス空間を支援する。仮想アド
レスは、プロセッサが記憶位置を指定するために用いる
ラベルである。プロセッサは、自身が仮想アドレスの記
憶位置にアクセスできる限り、実際に記憶位置が物理メ
モリ内のどこに存在するかについては関与しない。プロ
セッサ・アーキテクチャの仕様により、支援されるべき
一定の仮想アドレス空間が定義される。コンピュータ・
システムを管理するオペレーティング・システムは、仮
想アドレス空間からどのように物理メモリへマッピング
されるのかに関して、柔軟性を有している。従って、仮
想アドレスから物理アドレスへの変換が必要となる。
【0007】図2は一般的な仮想アドレスから物理アド
レスへの変換を示す。仮想及び物理メモリは共に概念的
にはページに分割されている。例えば、記憶位置の仮想
アドレス20は仮想ページ番号21及びページ・オフセ
ット指標22からなる。仮想ページ番号21は、指定さ
れた記憶位置が存在するメモリのページを表す。ページ
・オフセット指標22は、指定された記憶位置がそのペ
ージの境界線内において存在する位置を表す。このた
め、ページ・オフセット指標22は、そのページの先頭
位置に対する相対的な記憶位置を示す。又、物理アドレ
スも仮想アドレスと同様の構造を有する。物理ページ番
号23及びページ・オフセット指標24は、物理メモリ
・アドレス25を定義する。慣習に従い、仮想アドレス
空間を構成する大部分の装置は、仮想アドレス及び物理
アドレスに対するのと同様の方法により、各ページ内に
てメモリを指標付けする。従って、記憶位置の仮想アド
レスに対するページ・オフセット指標22と、それに対
応する記憶位置の物理アドレスに対するページ・オフセ
ット指標24とは同一である。そのため、ページのサイ
ズが2p である場合、記憶位置の仮想アドレスの下位p
ビットとそれに対応する記憶位置の物理アドレスとは等
しく、共にページ・オフセット指標を表す。
【0008】仮想アドレス20から物理アドレス25へ
の変換工程において、仮想ページ・オフセット指標22
は物理ページ・オフセット指標24と同一であるため、
仮想アドレス20のページ・オフセット指標22を変換
する必要はない。しかしながら、物理ページ番号23は
仮想ページ番号21と異なるため、仮想ページ番号21
を変換しなければならない。ハードウエア(変換索引バ
ッファ)とソフトウエア(テーブル・ウォーキング "ta
ble walking")との協働によって一般的に実現されるメ
モリ管理ユニット26は、この仮想ページから物理ペー
ジへの変換を行う。
【0009】図3は非連想又はダイレクト・マッピング
されたキャッシュの動作を示す。ダイレクト・マッピン
グされたキャッシュは、ヒットしたかを調べるためにキ
ャッシュ内のアドレスを指定することにより、入力され
たメモリ・アドレス31の下位ビット30を用いる。こ
のため、記憶位置Aはキャッシュ・ライン内のみに存在
でき、キャッシュ内に存在するラインのアドレスは、A
のアドレスの下位kビット30である。メモリ・アドレ
ス31をキャッシュ30中のある特定のライン内のみで
キャッシュされるように強制すれば、それにより連想メ
モリよりも安価で高密度なランダム・アクセス・メモリ
(RAM)を使用できる。しかしながら、その強制によ
り、同一のk個の下位アドレスビット30を共有する記
憶位置は、また同一のキャッシュ・ラインを共有するこ
とが必要になる。各キャッシュ・ラインが、ある記憶位
置の内容を記憶するためのみに備えられる場合、同一の
下位kのアドレスビット30を有する2つの記憶位置は
同一のキャッシュ・ラインと競合するため、同時にキャ
ッシュされ得ない。ダイレクト・マッピングされるキャ
ッシュの他の重要で魅力的な特徴は、それがより簡素で
あるとともに、より少ない回路しか必要としないことを
考慮すれば、より高速に動作する傾向にあることであ
る。
【0010】大部分のプロセッサ・アーキテクチャの仕
様は、仮想アドレスの間のエイリアスを支援する。同一
の物理アドレスを参照する2つの仮想アドレスは互いに
エイリアスである。与えられ任意の記憶位置の物理アド
レスの下位pビットは、その仮想ページの先頭位置から
のページ・オフセットを表す。与えられた任意の仮想ア
ドレスに対するページ・オフセット指標は、物理アドレ
スのページ・オフセット指標と同一である。従って、2
つのアドレスは同じ物理アドレスを参照することから、
両アドレスは互いにエイリアスであり、それらのアドレ
スの下位pビットは同一である。しかしながら、2つの
エイリアスの仮想ページ番号を表すビットは異なる。
【0011】この説明の目的に関して、可能なキャッシ
ュの編成は、仮想的又は物理的に指標付けされ、仮想的
又は物理的にタグ付けされるとともに、セットアソシア
ティブ又はダイレクト・マッピングされるものである。
仮想アドレスを支援するプロセッサにおいて、そのプロ
セッサのいくつかのキャッシュが仮想的に指標付けされ
るとともに、ダイレクト・マッピングされるキャッシュ
であり、他のキャッシュは物理的に指標付けされるとと
もに、ダイレクト・マッピングされるキャッシュであ
る。仮想的に指標付けされるとともに、ダイレクト・マ
ッピングされたキャッシュはキャッシュ・ラインへマッ
ピングを行うために仮想アドレスを用いるのに対して、
物理的に指標付けされるとともにダイレクト・マッピン
グされたキャッシュはキャッシュ・ラインへマッピング
を行うために物理アドレスを用いる。このため、仮想的
に指標付けされたキャッシュにおいて、キャッシュ・ラ
インの数が2k である場合、仮想アドレスの下位kビッ
トは、その仮想アドレスに対するキャッシュ・ラインへ
マッピングするために用いられる。
【0012】キャッシュの記憶位置の数がページ内の記
憶位置の数以下である場合、仮想アドレスの下位pビッ
トはそれに対応する物理アドレスの下位ビットと同一で
あるため、仮想的に指標付けされたキャッシュと物理的
に指標付けされたキャッシュとの区別は全くない。その
場合、kがp以下である時、そのキャッシュ・ラインへ
マッピングするために用いられる下位kビットは全て同
一であるため、全てのエイリアスは同一のキャッシュ・
ラインへマッピングする。しかしながら、キャッシュの
サイズが2p よりも大きい場合、仮想ページ・ビット又
は物理ページ・ビットのいくらかはキャッシュラインを
導くために用いられることから、仮想的及び物理的に指
標付けされたキャッシュは、同一の記憶位置に対して異
なるキャッシュ・ラインへマッピングを行う。更に、仮
想的に指標付けされたキャッシュにおいて、エイリアス
は同キャッシュ内の異なるキャッシュ・ラインへマッッ
ピングするかもしれない。仮想的に指標付けされたキャ
ッシュにおいて、ページ・サイズがキャッシュ・サイズ
よりも小さい場合、キャッシュ・ラインへマッピングを
行うために、仮想ページ・ビットのうち1つ以上のビッ
トが用いられる。エイリアスの仮想ページは異なるた
め、仮想アドレスの仮想ページ・ビットは異なる。この
ため、キャッシュ・ラインへマッピングすべく、仮想ペ
ージ番号のビットのうち1つ以上のビットが用いられる
ため、キャッシュ・ラインは異なることがある。
【0013】例えば、仮想的に指標付けされたキャッシ
ュが214のラインを有し、物理ページのサイズが212
みである場合、与えられた任意の物理的な記憶位置は4
つものエイリアスを有することがあり、そのエイリアス
は異なるキャッシュ・ラインへマッピングする。これ
は、仮想ページ番号のビットのうちの2ビットが、キャ
ッシュへマッピングするために用いられるという重要な
事実である。2ビットによって表現され得る値は4つあ
るため、仮想ページ・ビットの下位2ビットに基づい
て、エイリアスは任意の異なる4つの記憶位置へマッピ
ングできる。
【0014】2つ以上の仮想アドレスが同一の物理アド
レスへマッピングする場合、それらの仮想アドレスのう
ちの1つへ書き込まれるデータは、引き続き任意のエイ
リアスからの読み込みを行うとすぐに明らかになる。全
てのエイリアスが同一のキャッシュ・ラインへマッピン
グする場合、仮想的に指標付けされたキャッシュは予期
したように動作する。エイリアスのうちの任意の1つに
書き込まれたデータは、同一のキャッシュ・ラインへ書
き込まれる。しかしながら、エイリアスが異なるキャッ
シュ・ラインへマッピングする場合、重要なデータ不一
致問題が生じる。2つの仮想エイリアスが仮想的にアド
レス化されたキャッシュに存在する異なるキャッシュ・
ラインへマッピングする場合、各エイリアスは独立した
変数であるかのように動作する。例えば、X及びYが仮
想アドレスのエイリアスであり、かつXへのストアが実
行される場合、Yもそのキャッシュに存在するなら、後
続のYの読み込みの間、データは明らかではない。さら
に、Xへの書き込みによりYの値は破壊されるべきであ
るにもかかわらず、その値は変わらない。X及びYがそ
のキャッシュから取り除かれる時、各々は自身が参照す
る物理メモリの記憶位置へ書き込まれる。キャッシュは
書き戻し(ライト・スルー"write through"ではない)
であると仮定すると、両X,Yがキャッシュから取り除
かれた後に物理メイン・メモリ内に存在する値は、その
キャッシュからどの仮想アドレスが最後に取り除かれた
かに依存する。従って、Yが最後に取り除かれる場合、
Xへ書き込まれたデータは破壊されるのに対して、Yに
おける古いデータは間違ってメイン・メモリ内の物理記
憶位置を占有する。
【0015】データの一貫性を維持するために、1つの
従来技術の方法では、全ての仮想エイリアスがキャッシ
ュ不能、即ち1つのエイリアスさえもキャッシュ内に残
れないことを要求する。この従来技術の方法により、任
意のエイリアスへの任意の参照は、1次又は2次キャッ
シュからの効果を全く引き出せず、最も低速のメモリで
あるメイン・メモリにアクセスしなければならないこと
から、大幅な性能の低下となる。
【0016】図4はキャッシュ及びアドレス変換機構の
構造を示す。オペレーティング・システムは任意のデー
タ構造内に、ソフトウェア変換テーブル40と呼ばれる
変換情報を管理する。変換索引バッファは高速のハード
ウェア変換を行い、そのバッファは本質的には大きく複
雑なソフトウェア変換テーブルを有するキャッシュであ
る。各キャッシュに対して、ソフトウェア変換テーブル
40の独立したキャッシュとして動作する変換索引バッ
ファ(TLB)41が存在する。より頻繁にアクセスさ
れる仮想ページに対して、TLBは1サイクル変換を行
う。TLBヒットという用語は、所望の変換が集積回路
上のTLB内に存在するという意味である。TLBミス
という用語は、所望の変換が集積回路上のTLB内に存
在しないという意味である。
【0017】TLBミスが起きると、メモリ管理ユニッ
トはTLBミスの処理を行うべくソフトウェアに即座に
割り込む。TLBミス・ハンドラ・ソフトウェア・ルー
チンは、使用可能な任意の手段によりTLBを満たす選
択を有する。いくつかのメモリ管理ユニットは、図4に
示す変換格納バッファ(translation storage buffer)
のような中間の変換装置を備える。変換格納バッファは
2次キャッシュのアドレス変換のように動作する。TL
Bは小型かつ高速であるが、それに対してソフトウェア
変換テーブルは大型かつ複雑である傾向にある。従っ
て、TLBミス・ハンドラ・オペレーティング・システ
ム・ソフトウェア・ルーチンがTLBミスの後に呼び出
される時、仮想から物理への変換が検索されて処理が継
続して行われるまでに膨大なサイクルを要する。
【0018】第2の従来技術の方法では、一定の仮想エ
イリアスがキャッシュ内に居残ることを許容するが、そ
の他の仮想エイリアスはキャッシュ及びTLBから排除
されることを要求する。一定のエイリアスをキャッシュ
可能に維持することにより、前述の全てのエイリアスを
キャッシュ不能とする方法よりもいくらか効果が得られ
る。一定のエイリアスをキャッシュ可能に維持する場
合、そのエイリアスへ繰り返しアクセスが生じても、そ
のアドレスに対するキャッシュ及びTLBエントリが高
速であるため効果が得られる。
【0019】例えば、X及びYがエイリアスである場
合、Xがキャッシュ内に残ることができ、その変換もT
LB内に残ることができる。しかしながら、Yをキャッ
シュ不能とする必要がある。XがYを参照することなく
繰り返し参照される場合、キャッシュの効果がいくらか
保たれる。しかしながら、Yが参照される時、TLBミ
スが発生する。正確な動作を確保すべく、Yをキャッシ
ュへ格納する以前に、又はTLB内に存在するYの変換
を含む以前に、オペレーティング・システムはキャッシ
ュからXを取り除くとともに、TLBからXの変換を取
り除く必要がある。TLBからXの変換が取り除かれな
い場合、次にXへの参照が行われる際にTLBミスは全
く発生しない。ソフトウェアの介入なしにXが再び参照
される時、受け入れられないYと共にXはキャッシュ内
に再び格納される。
【0020】キャッシュ可能なアドレス属性の概念は、
従来技術にて知られている。キャッシュ可能なアドレス
属性は、メモリの一部分と協働する論理的な指示であ
る。その指標はメモリのその部分からのデータがキャッ
シュ内に配置され得るか否かを示す。キャッシュ可能な
アドレス属性は、一般的に入力又は出力位置をマッピン
グするメモリのキャッシングを禁止するために用いられ
る。大部分のプロセッサ・アーキテクチャは、物理アド
レス空間の一定の部分へマッピングされるように、入力
/出力装置とのインターフェイスを支援する。例えば、
コンピュータ・システムにおけるマウスは、一定の記憶
位置へマッピングされる。マウスに何が起こっているか
を追従するために、プロセッサはマウスがまるで別の記
憶位置であるかのようにマウスがマッピングされるアド
レスから周期的に読み出す。同様に、例えばプロセッサ
がデータをディスク・ドライブに書き込みたい時、プロ
セッサはその出力装置のために設けられた特別な記憶位
置へ書き込む。それらの入力/出力位置をキャッシュす
ることは禁止されている。出力装置への書き込みは出力
端子まで届く傾向にあり、プロセッサのみにアクセス可
能な内部キャッシュまで届くことは殆どない。同様に、
入力装置からの読み込みは入力装置自身から読み込む傾
向にあり、入力装置の端子上に以前存在していたものが
キャッシュされたものから読み込まれることは殆どな
い。
【0021】
【発明が解決しようとする課題】エイリアスの制限を破
るエイリアスをキャッシュ不能とする方法の重要な問題
は、メイン・メモリへのキャッシュ不能なアクセスに対
処する必要があることである。これらのアクセスによ
り、「比較とスワップ」( "compare and swap" )(C
AS)及び「部分ストア」("partial store" )(PS
T)のように多くの特殊な命令は複雑になる。それらの
命令がキャッシュ不能なメイン・メモリにアクセスしな
ければならない場合、それらの命令を適切に実行させる
ことは非常に困難である。従って、少なくとも物理的に
指標付けされたキャッシュにおいて、メイン・メモリが
常にキャッシュ可能であるという方法の開発には大きな
効果がある。そのような方法から得られる性能の向上は
さらに付加的な要因である。
【0022】この発明は、前述した事情に鑑みてなされ
たものであって、その目的は、エイリアスがオフセット
されない場合においても、データの処理速度を低下させ
ることなくデータの一貫性を維持することが可能な方法
及び装置を提供することにある。
【0023】
【課題を解決するための手段】以下の手段により、上記
目的を達成するための方法及び装置が構成されている。
【0024】キャッシュ可能なアドレス属性は、メモリ
の特定のページからのデータがキャッシュ内に配置され
得るか否かを示す。仮想的に指標付けされたキャッシュ
では、2つの仮想アドレス・エイリアスが異なるキャッ
シュ・ラインへマッピングすることがある。その結果、
一方のエイリアスへのストアは、他方のエイリアスに対
してキャッシュされたデータに影響を与えない。仮想的
に指標付けされたキャッシュに存在する同一のキャッシ
ュ・ラインへ全てのエイリアスをマッピングするため
に、オペレーティング・システムは多数のキャッシュサ
イズにより、仮想アドレス・エイリアスをオフセットし
ようとする。これが保証される場合、全てのエイリアス
は同一のキャッシュ・ラインへマッピングする。しかし
ながら、多数の仮想キャッシュサイズにより、オペレー
ティング・システムはエイリアスをオフセットできない
ことがある。
【0025】本発明に基づいて、別個に仮想キャッシュ
内にてキャッシュ可能( cachable-in-virtual-cache)
な(CV)属性ビットはオペレーティング・システムに
より管理された変換テーブル内に存在するメモリの各ペ
ージのために管理されている。CVビットは変換テーブ
ルのエントリが参照するページ上のメモリ・アドレス
が、仮想的に指標付けされたキャッシュ内にてキャッシ
ュ可能であるか否かを示す。
【0026】本発明の第1の実施形態に基づいて、多数
の仮想キャッシュサイズによりオフセットされないエイ
リアスが2つ以上存在する場合、全てのエイリアスに対
するCVビットを不活性状態(deasserting )にするこ
とにより、全てのエイリアスは仮想的に指標付けされた
キャッシュ内にてキャッシュ不能となる。
【0027】変換索引バッファ(TLB)の内容に関し
ては、全てのエイリアスに対する変換はTLB内にて同
時に存在することがある。TLBミスはソフトウェアに
割り込みを発生させる。データの一貫性を確保するため
に本発明に基づくエイリアスの間には、ソフトウェアの
介入が必要とはならない。そのため、同一の物理ページ
へのいくつかのマッピングは、TLB内にて同時に存在
できる。
【0028】本発明の第2及び第3の実施形態に基づい
て、多数の仮想キャッシュサイズによりオフセットされ
ないエイリアスが2つ以上存在する場合、そのうちの1
つのみを仮想キャッシュ内にてキャッシュ可能に維持す
る。その他のエイリアスに関しては、それらのエイリア
スを含む変換ページに対する仮想的に指標付けされたキ
ャッシュ内にてキャッシュ可能( cachable-in-virtual
ly-indexed-cache)な(CV)ビットは不活性状態とな
る。オペレーティング・システムは、ページに対するC
V属性を不活性状態とする前に、仮想的に指標付けされ
た内部キャッシュからのデータを消去する。本発明の第
2の実施形態は、より新しい物理アドレスへのマッピン
グが1次キャッシュ内に残ることを許容する。本発明の
第3の実施形態は、より新しいエイリアスがマッピング
される時、より古いエイリアスが1次キャッシュ内に残
ることを許容する。
【0029】
【発明の実施の形態】キャッシュ可能なアドレスの属性
は、メモリに存在する特定のページからのデータがキャ
ッシュ内へ配置されたか否かを示す。従来技術におい
て、キャッシュ可能なアドレスの属性は入力及び出力位
置にマッピングされるメモリがキャッシュされることを
防止するのに使用されていた。仮想的に指標付けされた
キャッシュでは、2つの仮想アドレス・エイリアスは異
なるキャッシュ・ラインへマッピングすることが可能で
ある。その結果、一方のエイリアスへのストアが、他方
のエイリアスに対してはキャッシュされたデータに影響
を与えない。
【0030】図3はダイレクト・マッピングされるキャ
ッシュの動作を示す。特定のメモリ・アドレスに対する
キャッシュを検索するとき、そのアドレスの下位ビット
30はキャッシュ・ラインへのマッピングに用いられ
る。そのアドレスの下位ビット30により指定されたキ
ャッシュ・ライン33に存在するタグ32は、所望のメ
モリ・アドレス31の上位ビット34と比較される。タ
グ32と所望のアドレス31の上位ビット34とが一致
する場合、キャッシュ・ヒットが発生する。仮想的に指
標付けされたキャッシュにおいて、仮想アドレス又は物
理アドレスの何れかはタグ32を生成するためにアドレ
スビットが切り詰められる。仮想アドレスがタグ32を
生成する場合、キャッシュは仮想的にタグ付けされ、物
理アドレスがタグ32を生成する場合、キャッシュは物
理的にタグ付けされる。
【0031】仮想的に指標付けされたキャッシュに存在
する同一のキャッシュ・ラインへ全てのエイリアスをマ
ッピングさせるために、オペレーティング・システム
は、多量の仮想キャッシュ・サイズにより仮想アドレス
・エイリアスをオフセットしようとする。これが保証さ
れる場合、全てのエイリアスは同一のキャッシュ・ライ
ンへマッピングする。仮想的に指標付けされるととも
に、物理的にタグ付けされたキャッシュにおいて、全て
のエイリアスが同一のキャッシュへマッピングする場
合、いつでも全てのエイリアスのうちの任意の1つへス
トアされる時、全てのエイリアスはキャッシュ内にて自
動的に更新される。全てのエイリアスは同一の物理アド
レスを有するため、全てのエイリアスに対する物理タグ
は等しい。従って、エイリアスが同一のキャッシュ・ラ
インへマッピングする場合、全てのエイリアスのうち1
つでもキャッシュされる限り、全てのエイリアスに対し
てキャッシュ・ヒットが生じる。
【0032】一方、仮想的に指標付けされたキャッシュ
が仮想的にタグ付けされたものでは、多量の仮想キャッ
シュ・サイズにより仮想アドレス・エイリアスをオフセ
ットすることによっても、データ不一致問題を防止でき
るであろう。全てのタグは異なり、エイリアスのうちの
1つがキャッシュされる場合、その他のエイリアスのう
ち任意のエイリアスへの任意の参照はキャッシュ・ミス
となる。前回キャッシュされた記憶位置はメモリへ書き
戻され、現在において所望のエイリアスはキャッシュ・
ライン内に配置される。全てのエイリアスに対して1つ
のラインのみしか存在しないため、2つのエイリアスが
別々にキャッシュ内に存在できない。従って、仮想的に
指標付けされるとともに、仮想的にタグ付けされるキャ
ッシュの編成では、エイリアスの規則に従う場合、2つ
のエイリアスX,Yは同一のキャッシュ・ラインに接触
するが、キャッシュ・ヒットとして互いに認識しない。
即ち、タグが仮想的であるため、XとYが等しいという
ことを判断する特定の容易な方法はない。この編成を適
切に取り扱うことは、非常に複雑となる傾向にあり、物
理アドレスに基づいたキャッシュ・タグの複製セットを
しばしば必要とする。
【0033】オペレーティング・システムが、多数の仮
想キャッシュ・サイズによりエイリアスを不運にもオフ
セットできない場合がある。従来技術のシステムでは、
2つのエイリアスは異なるキャッシュ・ラインへマッピ
ングすることから、その場合は仮想的に指標付けされた
キャッシュにおけるエラーとなる。他方のエイリアスも
キャッシュされた場合、一方のエイリアスへのストアは
更新されない。
【0034】図5に示すように、本発明に基づき、別個
に仮想キャッシュ内にてキャッシュ可能な属性ビット
(CV)50は、オペレーティング・システムにより管
理される変換テーブル内に存在するメモリの各ページの
ために管理されている。図5は小型の変換索引バッファ
を示す。CVビット50は、変換テーブル・エントリが
参照するページ上のメモリ・アドレスが、仮想的に指標
付けされたキャッシュ内にてキャッシュ可能であるか否
かを示す。加えて、従来技術のシステムのように、物理
的なキャッシュ内にてキャッシュ可能(cachable-in-ph
ysical-caches )な(CP)属性ビット51は各ページ
のために管理され、そのキャッシュが仮想的又は物理的
に指標付けされたかには関わらず、そのページからのデ
ータが任意のタイプのキャッシュ内にてキャッシュ可能
であるか否かを示す。
【0035】本発明の第1の実施形態に基づいて、多数
の仮想キャッシュ・サイズによりオフセットされないエ
イリアスが2つ以上存在する時、仮想的に指標付けされ
たキャッシュ内にて、全てのエイリアスはキャッシュ不
能となる。図4は一般的なキャッシュの構造を示す概略
的なブロック図である。小型の内部キャッシュ43は仮
想的に指標付けされている。大型の外部キャッシュ44
は物理的に指標付けされている。仮想的に指標付けされ
たキャッシュ内に存在するエイリアスのキャッシングを
禁止することにより、データ不一致問題は回避される。
各エイリアスは同一の物理アドレスへマッピングする。
従って、各エイリアスも物理的に指標付けされた外部キ
ャッシュ44に存在する同一のキャッシュ・ラインへマ
ッピングする。また、外部キャッシュ44が物理的にタ
グ付けされている場合、物理アドレスが外部キャッシュ
内にてキャッシュされるなら、与えられた物理アドレス
の任意の多数のエイリアスへの参照は、外部キャッシュ
・ヒットを生成する。外部キャッシュ44が仮想的にタ
グ付けされ、多数のエイリアスのうちの1つがキャッシ
ュされる場合、仮想タグは各エイリアスに対して異なっ
ている必要があるため、その他の任意のエイリアスへの
参照は常に外部キャッシュ・ミスを生成する。いかなる
場合においても、2つのキャッシュ・ラインは同一の物
理アドレスへマッピングされるデータを保持していない
ため、データ不一致問題は解消される。
【0036】オペレーティング・システム・ソフトウェ
アはソフトウェア変換テーブル40内に変換情報を管理
する。オペレーティング・システムはメモリのページに
対するキャッシュ可能性属性を管理する。従って、各ペ
ージは物理的に指標付けされたキャッシュ内にてキャッ
シュ可能(cachable-in-physically-indexed-cache)な
(CP)属性及び仮想的に指標付けされたキャッシュ内
にてキャッシュ可能(CV)な属性を有する。各ページ
は多くの分割された記憶位置を有する。アドレス内のペ
ージ・オフセットを指定するためにp個のビットが必要
である場合、各ページは2p もの記憶位置を有する。2
つの仮想ページが同一の物理アドレスへマッピングする
場合、2つの仮想ページ内の各アドレスは他方のページ
上に1つのエイリアスを有する。従って、エイリアス処
理はページ毎に行われる。2つの仮想ページがエイリア
スである場合、全体の両ページのCV属性は不活性状態
となる。オペレーティング・システムのオフセット規則
を破るマッピングが生じる以前に、ページからのいくら
かのデータが仮想キャッシュ内に存在する場合、そのペ
ージを仮想キャッシュ内にてキャッシュ不能にするま
で、オペレーティング・システムは仮想キャッシュから
そのようなデータを消去する。
【0037】内部キャッシュ43は、少なくとも外部キ
ャッシュ44に対してライト・スルーキャッシュである
ことが一般的である。従って、内部キャッシュ43へ書
き込まれるデータも外部キャッシュ44へ書き込まれ
る。そのため、外部キャッシュ44は内部キャッシュ4
3内に存在する全ての最新のコピーを保有する。仮想ペ
ージが仮想的に指標付けされたキャッシュ(CV=0)
内にてもうキャッシュ可能ではなくなるように、ページ
のキャッシュ可能性属性が変更される時、仮想的に指標
付けされたキャッシュ43から消去されたデータは、デ
ータ保全に対して悪影響を与えない。それは、同一のデ
ータが物理的に指標付けされた外部キャッシュ44内に
おいてまだ使用可能であるためである。
【0038】変換索引バッファ(TLB)41の内容に
関する本発明に基づいて、全てのエイリアスはTLB4
1内に同時に存在できる。TLBミスはソフトウェアに
割り込みを発生させる。従来技術の方法では、ソフトウ
ェアの介入なしではハードウェアが正確に実行できない
ことがあったため、特にソフトウェアに割り込みを発生
させるべく、エントリをTLB41から取り除いてい
た。本発明のこの実施形態に基づくエイリアスの間には
データの一貫性を確保するために、ソフトウェアの介入
を必要としないことから、同一の物理ページへのいくつ
かのマッピングはTLB41内にて同時に存在し得る。
これにより、本発明の重要な効果が得られる。いくつか
のエイリアスの仮想アドレスから物理アドレスへの変換
は、TLB41内にて同時に存在し得ることから、それ
らがTLB41内に存在すると仮定すれば、TLBミス
・ハンドラ・ソフトウェアは任意のエイリアスへの参照
上に呼び出される。従って、エイリアスがアクセスされ
る度にTLBミスハンドラが繰り返し呼び出される場
合、任意のエイリアスへのメモリ参照に対する平均アク
セス時間は、要求されたアクセス時間と比べて比較的に
遅い。更に、任意のエイリアスに対する所望のデータは
物理的に指標付けされた2次キャッシュ内にて使用可能
であるため、低速のメイン・メモリにアクセスする必要
のある長期の遅延は発生しない。
【0039】図6は、本発明の第1の実施形態に基づく
オペレーティング・システムの処理を示す。新たな仮想
アドレスから物理アドレスへのエイリアス・マッピング
(図6に示すNEWALIASは、本発明の第2の仮想アドレス
に対応するデータを構成する。)が、いつソフトウェア
変換テーブルへ付加されても、オペレーティング・シス
テム・ソフトウェアはステップ60から開始する。判断
61では、オペレーティング・システムは、エイリアス
の制約が破られたか否かを判断する。その制約とは、前
述したようにエイリアスが仮想的に指標付けされた多数
のキャッシュ・サイズによりオフセットされることであ
る。エイリアスが適切にオフセットされる場合、ステッ
プ62において、オペレーティング・システムは、TL
B及びソフトウェア変換テーブル内の両エイリアスに対
するCVビット及びCPビットを活性状態(assert)と
し、オペレーティング・システムの処理はステップ63
にて終了する。しかしながら、エイリアスの制約が破ら
れた場合、ステップ64において、オペレーティング・
システムは仮想的に指標付けされた1次キャッシュ43
(図4に示す)からの前回存在していたエイリアス(図
6に示すOLDALIASは、本発明の第1の仮想アドレスに対
応するデータを構成する。)を消去するか又は取り除く
(データ無効工程)。この工程には、1次キャッシュ無
効回路が用いられる。ステップ65において、両エイリ
アスに対するCV属性ビットはTLB内にて不活性状態
とされ(キャッシュ不能工程)、両エイリアスに対する
CP属性ビットは活性状態に保たれる(キャッシュ可能
工程)。これらの工程には、それぞれ1次キャッシュ不
能回路と2次キャッシュ可能回路が用いられる。CPビ
ットが活性状態であるため、物理的に指標付けされた2
次キャッシュ44(図4に示す)内において両エイリア
スは(同一のラインにて)キャッシュ可能である。ステ
ップ65の後、プロセッサはエイリアスのうちの1つが
マッピングされるまでソフトウェアの介入なしで動作す
る。判断66では、オペレーティング・システムはいつ
エイリアスのうちの1つが異なる仮想アドレスへ再マッ
ピングされるのか、又はいつそれが仮想アドレス空間か
ら取り除かれるのかの経過を追う。マッピングのうちの
1つが変わる時、ソフトウェア・ルーチンはステップ6
0から再開される。
【0040】本発明の第2の実施形態に基づいて、2つ
以上のエイリアスが多数の仮想キャッシュ・サイズによ
りオフセットされる場合、それらのエイリアスのうちの
1つのみが仮想キャッシュ内にてキャッシュ可能であ
る。その他のエイリアスに対しては、それらのエイリア
スの変換ページに対する仮想的に指標付けされたキャッ
シュ内にてキャッシュ可能な(CV)ビットは、不活性
状態となる。オペレーティング・システムはページに対
するCV属性を不活性状態とするまで、仮想的に指標付
けされた内部キャッシュからのデータを消去する。
【0041】この実施形態において、オペレーティング
・システムは上記の処理及び以下の通常の処理を行う。
XとYがそれぞれ仮想アドレスとエイリアスである場合
を仮定すると、それらは同一の物理アドレスへマッピン
グされる。エイリアスが仮想的に指標付けされた多数の
キャッシュ・サイズによりオフセットされるべきである
というオペレーティング・システム・ガイドラインが、
何らかの理由により守られないと仮定する。Xは仮想的
に指標付けされたキャッシュ内に残ることを許容する。
Yの変換テーブル・エントリに対するCVビットを不活
性状態にすることにより、Yに対するTLBマッピング
ンは変更されるため、Yは仮想キャッシュ内にてキャッ
シュ可能ではない。従って、Yが物理的に指標付けされ
た外部キャッシュへ退避されている間、Xは仮想的に指
標付けされたキャッシュ43内に存在する。ここで、Y
へのストアが実行される。続いて、Xからのロードが実
行される。X及びYは同一メモリの変数を実際に参照し
ているため、仮想的に指標付けされたキャッシュ43内
からXをロードすることにより、物理的に指標付けされ
た2次キャッシュ内のYへストアされたデータが返還さ
れる。しかしながら、2次キャッシュからの情報により
1次キャッシュを更新するハードウェア機構は全くな
い。従って、オペレーティング・システムはこれが発生
しないように確保する処理を行う。このオペレーティン
グ・システムの複雑性を増加させることにより得られる
効果は、Xへのアクセスにより高速の1次キャッシュの
有効性を保つことである。本発明の第2の実施形態に基
づき、最新の物理アドレスへのマッピングは1次キャッ
シュ内に残ることを許容する。これには、1次キャッシ
ュから古いエイリアスを消去する必要がある。図7は、
本発明の第2の実施形態に基づくオペレーティング・シ
ステムの処理を示す。オペレーティング・システムは新
たなエイリアス(図7に示すNEWALIAS)をマッピングす
る時、ソフトウェア・ルーチンはステップ70にて呼び
出される。ステップ71では、全てのエイリアスが仮想
的に指標付けされた多数のキャッシュ・サイズによりオ
フセットされるというガイドラインが破られたか否かを
判断する。ガイドラインが守られている場合、両OLDALI
AS,NEWALIASは仮想的に指標付けされたキャッシュ内に
てキャッシュ可能に維持される。従って、ステップ72
において、TLBと多層変換テーブルに存在する他のレ
ベルとが更新されるため、エイリアスに対するCP及び
CVビットは活性状態となり、オペレーティング・シス
テムのルーチンがステップ73にて終了する。従って、
何れかのエイリアスへの後続のアクセスはソフトウェア
の介入を伴うことなく実行される。オペレーティング・
システムのガイドラインが破られた場合、ステップ74
において、オペレーティング・システムは仮想的に指標
付けされた1次キャッシュからのデータを消去する(デ
ータ無効工程)。この工程には、1次キャッシュ無効回
路が用いられる。そして、ステップ75では、OLDALIAS
に対するCVビットを不活性状態とする(キャッシュ不
能工程)。この工程には、1次キャッシュ不能回路が用
いられる。従って、NEWALIASは1次キャッシュ43内に
存在できるが、OLDALIASは2次キャッシュ44内に保持
されなければならない。ステップ76では、2次キャッ
シュ44内に存在するOLDALIASへのストアがディスパッ
チされたか否かを判断する。このステップ76は、ハー
ドウェアの支援なしでは実行し難い。従って、これを実
行する別の方法は、W(writeable )ビットとして参照
される一般的なTLB属性を用いることである。OLDALI
ASに対するWビットを不活性状態にすることにより、OL
DALIASへのストアが発生しないように、オペレーティン
グ・システムは適切なページマッピングにおいてこのビ
ットを調節できる。OLDALIASへのストアが実行される場
合、Wビットが不活性状態であるためソフトウェアの割
り込みを受け入れ、オペレーティング・システムは適切
なデータ消去と属性の調節とを実行する。OLDALIASへの
ストアがディスパッチされる場合、1次キャッシュ内の
NEWALIASに対するデータは古くなるため、ステップ77
においてそのデータは1次キャッシュから消去される
(データ無効工程)。この工程には、1次キャッシュ無
効回路が用いられる。ステップ78では、変換テーブル
及びTLB内にてNEWALIASのページに対するCVビット
は不活性状態となり(キャッシュ不能工程)、変換テー
ブル及びTLB内にてOLDALIASのページに対するCPビ
ットは活性状態となる(キャッシュ可能工程)。これら
の工程には、それぞれ1次キャッシュ不能回路と2次キ
ャッシュ可能回路が用いられる。これにより、NEWALIAS
が2次キャッシュへ退避される間、OLDALIASが1次キャ
ッシュ内に存在することを許容する。ステップ79によ
り、2次キャッシュ44内に存在するNEWALIASへのスト
アがディスパッチされたと判断された場合、処理はOLDA
LIAS及びNEWALIASが1次及び2次キャッシュ内にてそれ
らの位置を入れ換えるステップ74へ戻る。ステップ7
9によりNEWALIASへのストアが検出されない限り、及び
ステップ80により何れかのエイリアスへの再マッピン
グが検出されない限り、何れかのエイリアスへのアクセ
スはソフトウェアの介入を伴うことなく実行される。こ
れは、両エイリアスに対する変換がTLB41内に存在
するためである。ステップ80により、何れかのエイリ
アスへの新たなマッピングが検出された場合、ルーチン
はステップ70から再開される。同様に、NEWALIASが1
次キャッシュ内に存在する間に、ステップ81により何
れかのエイリアスに対する新たなマッピングを検出する
場合、ルーチンはステップ70から再開される。
【0042】本発明の第3の実施形態は、NEWALIASがマ
ッピングされた時、OLDALIASが1次キャッシュ内に残る
ことを許容する。図8は、第3の実施形態に関わるオペ
レーティング・システムの流れを示す。第3の実施形態
に基づくオペレーティング・システム・ソフトウェアの
流れは、第2の実施形態のそれと似ている。実際、図7
を以下のように変更することにより図8に置き換えられ
る。ステップ78とステップ75の位置を入れ換え、ス
テップ77とステップ74の位置を入れ換え、ステップ
78とステップ75の位置を入れ換え、ステップ79と
ステップ76の位置を入れ換える。ここで、新しいステ
ップ77の位置(図7に示すステップ74の位置)が移
動されることによりステップ71のYESの分岐はステ
ップ78の新しい位置(図7に示すステップ75の位
置)へ直接的に流れる。第2の実施形態に対する第3の
実施形態の基本的な違いは、新たなエイリアスが実行さ
れるまで、古いエイリアスは1次キャッシュ43内に残
ることである。
【0043】第2又は第3の実施形態の何れにおいて
も、2次キャッシュ内のエイリアスへのストアの存在に
よりデータの一貫性を維持すること以外の付加的な他の
理由のために、オペレーティング・システムは1次キャ
ッシュ43内に存在する古いエイリアスと新しいエイリ
アスを入れ換えるために選択する。プログラムの正確な
動作を保証するために、2次キャッシュ44内に存在す
るエイリアスへのストアが実行される時には、常にエイ
リアスに対するCVビットの入れ換えが必要である。し
かしながら、他の状況においてもオペレーティング・シ
ステムは、CV属性を入れ換えることにより処理速度を
上げることができる。図7に示すフローチャートを実行
することによりプログラムの正確な処理が保証されて
も、オペレーティング・システム・ソフトウェアはOLDA
LIASへのストアが実行されるまで、OLDALIASを1次キャ
ッシュへ入れ換えるように選択する。例えば、オペレー
ティング・システムはOLDALIASが近い将来に繰り返しロ
ードされることを予期する場合、この選択は慎重な決定
である。従って、高速の1次キャッシュを用いる利点に
より、大幅な実行時間の短縮が認識される。これらの場
合、図7に示すステップ76,79とそれらに対応する
図8のステップ(判断)とは、どちらへ分岐するかを決
める前に(ストアがディスパッチされたか否か以外の)
付加的な情報を考慮する。添付の特許請求の範囲は、そ
のような自明な形態を含んでいる。
【0044】尚、プロセッサは本発明の1次キャッシュ
無効回路、1次キャッシュ不能回路、2次キャッシュ可
能回路及び1次キャッシュ可能回路を構成する。ソフト
ウェア・変換テーブル40、変換索引バッファ41、1
次キャッシュ42、1次キャッシュ43、及び2次キャ
ッシュ44は本発明のメモリ・システムを構成する。
【0045】本発明の方法及び装置は、現時点において
好ましい実施形態に関して説明したが、当業者は本発明
の趣旨を逸脱しない範囲内にて変更及び改変可能である
と理解することができよう。従って、本明細書及び図面
は限定するものではなく、例示的なものであると考える
べきである。
【0046】
【発明の効果】この発明によれば、仮想アドレスのキャ
ッシュ可能性を示す属性ビットを備えた変換テーブルを
用いることにより、エイリアスがオフセットされない場
合においても、データの処理速度を低下させることなく
データの一貫性を維持することができるという効果を発
揮する。
【図面の簡単な説明】
【図1】 プロセッサ、キャッシュ及びメイン・メモリ
の関係を示す概略的なブロック図。
【図2】 仮想アドレスからそれに対応する物理アドレ
スへの変換を示す図。
【図3】 ダイレクト・マッピングされるキャッシュの
動作を示す図。
【図4】 従来技術及び本発明の実施形態に係る記憶位
置と、メモリ構造及びアドレス変換テーブル構造との編
成を示す概略的なブロック図。
【図5】 本発明に基づく小型の変換索引バッファを示
す概略図。
【図6】 本発明の第1の実施形態に基づくオペレーテ
ィング・システム・ソフトウェア・ルーチンの動作を示
すフローチャート。
【図7】 本発明の第1の実施形態に基づくオペレーテ
ィング・システム・ソフトウェア・ルーチンの動作を示
すフローチャート。
【図8】 本発明の第3の実施形態に基づくオペレーテ
ィング・システム・ソフトウェア・ルーチンの動作を示
すフローチャート。
【符号の説明】
40…ソフトウェア変換テーブル、41…変換索引バッ
ファ、42…1次キャッシュ、43…1次キャッシュ、
44…2次キャッシュ(40,41,42,43は本発
明のメモリ・システムを構成する。)、45…メイン・
メモリ、50…仮想的に指標付けされたキャッシュ内に
てキャッシュ可能な属性ビット、51…物理的に指標付
けされたキャッシュ内にてキャッシュ可能な属性ビッ
ト。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レスリー コーン アメリカ合衆国 94539 カリフォルニア 州 フレモント ローズメアー ドライブ 43967 (72)発明者 ケン オキン アメリカ合衆国 95070 カリフォルニア 州 サラトガ ソベイ ロード 14880 (72)発明者 デール グリーンレイ アメリカ合衆国 95030 カリフォルニア 州 ロスゲトス オーバールック ロード 18401

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 変換テーブル・エントリが参照する仮想
    ページを確認する仮想ページ番号と、 仮想ページがマッピングする物理ページを確認する物理
    ページ番号と、 仮想ページからの記憶位置が仮想的に指標付けされたキ
    ャッシュ内にてキャッシュ可能であるか否かを示す仮想
    的に指標付けされたキャッシュ内にてキャッシュ可能な
    属性ビットとを備えた変換テーブル・エントリ。
  2. 【請求項2】 仮想ページからの記憶位置が物理的に指
    標付けされたキャッシュ内にてキャッシュ可能であるか
    否かを示す物理的に指標付けされたキャッシュ内にてキ
    ャッシュ可能な属性ビットを更に備えた請求項1に記載
    の変換テーブル・エントリ。
  3. 【請求項3】 物理的に指標付けされたキャッシュ内に
    てキャッシュ可能な属性ビットが活性状態である時の
    み、仮想的に指標付けされたキャッシュ内にてキャッシ
    ュ可能な属性ビットが意味をなす請求項2に記載の変換
    テーブル・エントリ。
  4. 【請求項4】 仮想アドレス空間を物理アドレス空間へ
    マッピングするための請求項3に記載の変換テーブル・
    エントリを複数有する変換テーブルと、 仮想的に指標付けされた1次キャッシュと、 物理的に指標付けされた2次キャッシュとを備えたメモ
    リ・システム。
  5. 【請求項5】 物理アドレスへマッピングする第1の仮
    想アドレス、仮想的に指標付けされた1次キャッシュ及
    び物理的に指標付けされた2次キャッシュを有するメモ
    リ・システム内にて、物理アドレスへマッピングする第
    2の仮想アドレスの参照方法において、 1次キャッシュ内に存在する第1の仮想アドレスに対応
    する全てのデータを無効にするデータ無効工程と、 1次キャッシュ内に存在する第1の仮想アドレスに対応
    するデータをキャッシュ不能にするキャッシュ不能工程
    と、 2次キャッシュ内に存在する第1の仮想アドレスに対応
    するデータをキャッシュ可能にするキャッシュ可能工程
    と、 2次キャッシュ内に存在する第2の仮想アドレスに対応
    するデータをキャッシュ可能にするキャッシュ可能工程
    とを備えた第2の仮想アドレスの参照方法。
  6. 【請求項6】 1次キャッシュ内に存在する第2の仮想
    アドレスに対応するデータをキャッシュ可能にするキャ
    ッシュ可能工程を更に備えた請求項5に記載の第2の仮
    想アドレスの参照方法。
  7. 【請求項7】 第1の仮想アドレスへのストアを実行す
    るまで、1次キャッシュ内に存在する第2の仮想アドレ
    スに対応するデータをキャッシュ可能にするキャッシュ
    可能工程を更に備えた請求項5に記載の第2の仮想アド
    レスの参照方法。
  8. 【請求項8】 第1の仮想アドレスへのストアを実行し
    た後に、1次キャッシュ内に存在する第2の仮想アドレ
    スに対応するデータを無効にするデータ無効工程と、 第1の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ内に存在する第2の仮想アドレスに対応するデ
    ータをキャッシュ不能にするキャッシュ不能工程と、 第1の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ内に存在する第1の仮想アドレスに対応するデ
    ータをキャッシュ可能にするキャッシュ可能工程とを更
    に備えた請求項7に記載の第2の仮想アドレスの参照方
    法。
  9. 【請求項9】 第1の仮想アドレスのための変換テーブ
    ル・エントリに対する仮想的に指標付けされたキャッシ
    ュ内にてキャッシュ可能な属性ビットを不活性状態にす
    ることにより、1次キャッシュ内に存在する第1の仮想
    アドレスに対応するデータをキャッシュ不能にするキャ
    ッシュ不能工程が遂行され、 第1の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ内に存在する第1の仮想アドレスに対応す
    るデータをキャッシュ可能にするキャッシュ可能工程が
    遂行され、 第2の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ内に存在する第2の仮想アドレスに対応す
    るデータをキャッシュ可能にするキャッシュ可能工程が
    遂行される請求項5に記載の第2の仮想アドレスの参照
    方法。
  10. 【請求項10】 第2の仮想アドレスのための変換テー
    ブル・エントリに対する物理的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを活性状態にす
    ることにより、1次キャッシュ内に存在する第2の仮想
    アドレスに対応するデータをキャッシュ不能にするキャ
    ッシュ不能工程が遂行される請求項6に記載の第2の仮
    想アドレスの参照方法。
  11. 【請求項11】 第2の仮想アドレスのための変換テー
    ブル・エントリに対する物理的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを活性状態にす
    ることにより、1次キャッシュ内に存在する第2の仮想
    アドレスに対応するデータをキャッシュ可能にするキャ
    ッシュ可能工程が遂行される請求項7に記載の第2の仮
    想アドレスの参照方法。
  12. 【請求項12】 物理アドレスへマッピングする第1の
    仮想アドレス、仮想的に指標付けされた1次キャッシュ
    及び物理的に指標付けされた2次キャッシュを有するメ
    モリ・システム内にて、物理アドレスへマッピングする
    第2の仮想アドレスの参照装置において、 1次キャッシュ内に存在する第1の仮想アドレスに対応
    する全てのデータを無効にするための1次キャッシュ無
    効回路と、 1次キャッシュ内に存在する第1の仮想アドレスに対応
    するデータをキャッシュ不能にするための1次キャッシ
    ュ不能回路と、 2次キャッシュ内に存在する第1の仮想アドレスに対応
    するデータをキャッシュ可能にするためであり、かつ2
    次キャッシュ内に存在する第2の仮想アドレスに対応す
    るデータをキャッシュ可能にするための2次キャッシュ
    可能回路とを備えた第2の仮想アドレスの参照装置。
  13. 【請求項13】 1次キャッシュ不能回路はまた、1次
    キャッシュ内に存在する第2の仮想アドレスに対応する
    データをキャッシュ不能とする請求項12に記載の第2
    の仮想アドレスの参照装置。
  14. 【請求項14】 第1の仮想アドレスへのストアを実行
    するまで、1次キャッシュ内に存在する第2の仮想アド
    レスに対応するデータをキャッシュ可能にするための1
    次キャッシュ可能回路を更に備えた請求項12に記載の
    第2の仮想アドレスの参照装置。
  15. 【請求項15】 第1の仮想アドレスへのストアを実行
    した後に、1次キャッシュ無効回路はまた1次キャッシ
    ュ内に存在する第2の仮想アドレスに対応する全てのデ
    ータを無効にし、 第1の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ不能回路はまた1次キャッシュ内に存在する第
    2の仮想アドレスに対応するデータをキャッシュ不能に
    し、 第1の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ可能回路はまた1次キャッシュ内に存在する第
    1の仮想アドレスに対応するデータをキャッシュ可能に
    する請求項14に記載の第2の仮想アドレスの参照装
    置。
  16. 【請求項16】 第1の仮想アドレスのための変換テー
    ブル・エントリに対する仮想的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを不活性状態に
    することにより、1次キャッシュ不能回路は1次キャッ
    シュ内に存在する第1の仮想アドレスに対応するデータ
    をキャッシュ不能にし、 第1の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ可能回路は2次キャッシュ内に存在する第
    1の仮想アドレスに対応するデータをキャッシュ可能に
    し、 第2の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ可能回路は2次キャッシュ内に存在する第
    2の仮想アドレスに対応するデータをキャッシュ可能に
    する請求項12に記載の第2の仮想アドレスの参照装
    置。
  17. 【請求項17】 第2の仮想アドレスのための変換テー
    ブル・エントリに対する物理的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを不活性状態に
    することにより、1次キャッシュ不能回路は1次キャッ
    シュ内に存在する第2の仮想アドレスに対応するデータ
    をキャッシュ不能にする請求項13に記載の第2の仮想
    アドレスの参照装置。
  18. 【請求項18】 第2の仮想アドレスのための変換テー
    ブル・エントリに対する物理的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを活性状態にす
    ることにより、1次キャッシュ可能回路は1次キャッシ
    ュ内に存在する第2の仮想アドレスに対応するデータを
    キャッシュ可能にする請求項14に記載の第2の仮想ア
    ドレスの参照方法。
  19. 【請求項19】 物理アドレスへマッピングする第1の
    仮想アドレス、仮想的に指標付けされた1次キャッシュ
    及び物理的に指標付けされた2次キャッシュを有するメ
    モリ・システム内にて、物理アドレスへマッピングする
    第2の仮想アドレスの参照方法において、 1次キャッシュ内に存在する第1の仮想アドレスに対応
    するデータをキャッシュ不能にするキャッシュ不能工程
    と、 2次キャッシュ内に存在する第2の仮想アドレスに対応
    するデータをキャッシュ可能にするキャッシュ可能工程
    と、 2次キャッシュ内に存在する第2の仮想アドレスに対応
    するデータをキャッシュ可能にするキャッシュ可能工程
    とを備えた第2の仮想アドレスの参照方法。
  20. 【請求項20】 第2の仮想アドレスへのストアを実行
    するまで、1次キャッシュ内に存在する第1の仮想アド
    レスに対応するデータをキャッシュ可能とするキャッシ
    ュ可能工程を備えた請求項19に記載の第2の仮想アド
    レスの参照方法。
  21. 【請求項21】 第2の仮想アドレスへのストアを実行
    した後に、1次キャッシュ内に存在する第1の仮想アド
    レスに対応する全てのデータを無効にするデータ無効工
    程と、 第2の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ内に存在する第1の仮想アドレスに対応するデ
    ータをキャッシュ不能にするキャッシュ不能工程と、 第2の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ内に存在する第2の仮想アドレスに対応するデ
    ータをキャッシュ可能にするキャッシュ可能工程とを備
    えた請求項20に記載の第2の仮想アドレスの参照方
    法。
  22. 【請求項22】 第1の仮想アドレスのための変換テー
    ブル・エントリに対する仮想的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを不活性状態に
    することにより、1次キャッシュ内に存在する第2の仮
    想アドレスに対応するデータをキャッシュ不能にするキ
    ャッシュ不能工程が遂行され、 第1の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ内に存在する第1の仮想アドレスに対応す
    るデータをキャッシュ可能にするキャッシュ可能工程が
    遂行され、 第2の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ内に存在する第2の仮想アドレスに対応す
    るデータをキャッシュ可能にするキャッシュ可能工程が
    遂行される請求項19に記載の第2の仮想アドレスの参
    照方法。
  23. 【請求項23】 第2の仮想アドレスのための変換テー
    ブル・エントリに対する物理的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを活性状態にす
    ることにより、1次キャッシュ内に存在する第2の仮想
    アドレスに対応するデータをキャッシュ不能にするキャ
    ッシュ不能工程が遂行される請求項20に記載の第2の
    仮想アドレスの参照方法。
  24. 【請求項24】 物理アドレスへマッピングする第1の
    仮想アドレス、仮想的に指標付けされた1次キャッシュ
    及び物理的に指標付けされた2次キャッシュを有するメ
    モリ・システム内にて、物理アドレスへマッピングする
    第2の仮想アドレスの参照装置において、 1次キャッシュ内に存在する第2の仮想アドレスに対応
    するデータをキャッシュ不能にするための1次キャッシ
    ュ不能回路と、 2次キャッシュ内に存在する第1の仮想アドレスに対応
    するデータをキャッシュ可能にするためであり、かつ2
    次キャッシュ内に存在する第2の仮想アドレスに対応す
    るデータをキャッシュ可能にするための2次キャッシュ
    可能回路とを備えた第2の仮想アドレスの参照装置。
  25. 【請求項25】 第2の仮想アドレスへのストアを実行
    するまで、1次キャッシュ内に存在する第1の仮想アド
    レスに対応するデータをキャッシュ可能とするための1
    次キャッシュ可能回路を備えた請求項24に記載の第2
    の仮想アドレスの参照装置。
  26. 【請求項26】 第2の仮想アドレスへのストアを実行
    した後に、1次キャッシュ無効回路はまた1次キャッシ
    ュ内に存在する第1の仮想アドレスに対応する全てのデ
    ータを無効にし、 第2の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ不能回路はまた1次キャッシュ内に存在する第
    1の仮想アドレスに対応するデータをキャッシュ不能に
    し、 第2の仮想アドレスへのストアを実行した後に、1次キ
    ャッシュ不能回路はまた1次キャッシュ内に存在する第
    2の仮想アドレスに対応するデータをキャッシュ可能に
    するキャッシュ可能工程にする請求項25に記載の第2
    の仮想アドレスの参照装置。
  27. 【請求項27】 第2の仮想アドレスのための変換テー
    ブル・エントリに対する仮想的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを不活性状態に
    することにより、1次キャッシュ不能回路は1次キャッ
    シュ内に存在する第2の仮想アドレスに対応するデータ
    をキャッシュ不能にし、 第1の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ可能回路は2次キャッシュ内に存在する第
    1の仮想アドレスに対応するデータをキャッシュ可能に
    し、 第2の仮想アドレスのための変換テーブル・エントリに
    対する物理的に指標付けされたキャッシュ内にてキャッ
    シュ可能な属性ビットを活性状態にすることにより、2
    次キャッシュ可能回路は2次キャッシュ内に存在する第
    2の仮想アドレスに対応するデータをキャッシュ可能に
    する請求項24に記載の第2の仮想アドレスの参照装
    置。
  28. 【請求項28】 第1の仮想アドレスのための変換テー
    ブル・エントリに対する物理的に指標付けされたキャッ
    シュ内にてキャッシュ可能な属性ビットを活性状態にす
    ることにより、1次キャッシュ可能回路は1次キャッシ
    ュ内に存在する第1の仮想アドレスに対応するデータを
    キャッシュ不能にする請求項25に記載の第2の仮想ア
    ドレスの参照方法。
JP03995296A 1995-02-27 1996-02-27 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置 Expired - Lifetime JP3859757B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/391389 1995-02-27
US08/391,389 US6006312A (en) 1995-02-27 1995-02-27 Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses

Publications (2)

Publication Number Publication Date
JPH08272693A true JPH08272693A (ja) 1996-10-18
JP3859757B2 JP3859757B2 (ja) 2006-12-20

Family

ID=23546398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03995296A Expired - Lifetime JP3859757B2 (ja) 1995-02-27 1996-02-27 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置

Country Status (5)

Country Link
US (1) US6006312A (ja)
EP (1) EP0729102B1 (ja)
JP (1) JP3859757B2 (ja)
KR (1) KR100372293B1 (ja)
DE (1) DE69629140T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990070788A (ko) * 1998-02-24 1999-09-15 윤종용 가상캐쉬 메모리의 어라이징 방지방법
JP2008522321A (ja) * 2004-12-02 2008-06-26 インテル・コーポレーション 高性能な方法でcpu又は処理エレメントから物理メモリにアクセスするための方法及び装置
JP2009069969A (ja) * 2007-09-11 2009-04-02 Canon Inc 情報処理方法および情報処理装置、プログラム

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6449695B1 (en) * 1999-05-27 2002-09-10 Microsoft Corporation Data cache using plural lists to indicate sequence of data storage
US6438672B1 (en) * 1999-06-03 2002-08-20 Agere Systems Guardian Corp. Memory aliasing method and apparatus
US6553460B1 (en) * 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6671792B1 (en) * 2000-04-28 2003-12-30 Hewlett-Packard Development Company, L.P. Share masks and alias for directory coherency
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6850929B2 (en) * 2001-03-08 2005-02-01 International Business Machines Corporation System and method for managing file system extended attributes
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US6732248B2 (en) 2001-06-28 2004-05-04 International Business Machines, Corporation System and method for ghost offset utilization in sequential byte stream semantics
GB2378779B (en) * 2001-08-14 2005-02-02 Advanced Risc Mach Ltd Accessing memory units in a data processing apparatus
US7299318B2 (en) * 2001-12-20 2007-11-20 Sun Microsystems, Inc. Method for reducing cache conflict misses
US20040059887A1 (en) * 2002-09-25 2004-03-25 K. S. Venkatraman Cache memory
US20050188172A1 (en) * 2004-02-20 2005-08-25 Intel Corporation Reduction of address aliasing
US7206916B2 (en) * 2004-03-08 2007-04-17 Sun Microsystems, Inc. Partial address compares stored in translation lookaside buffer
US7451271B2 (en) * 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7516298B2 (en) * 2004-11-15 2009-04-07 Platform Solutions Incorporated Sparse table compaction method
US7814292B2 (en) * 2005-06-14 2010-10-12 Intel Corporation Memory attribute speculation
US8417915B2 (en) * 2005-08-05 2013-04-09 Arm Limited Alias management within a virtually indexed and physically tagged cache memory
US7984241B2 (en) 2005-09-16 2011-07-19 Hewlett-Packard Development Company, L.P. Controlling processor access to cache memory
US7941631B2 (en) * 2007-12-28 2011-05-10 Intel Corporation Providing metadata in a translation lookaside buffer (TLB)
KR101594029B1 (ko) * 2009-07-06 2016-02-16 삼성전자주식회사 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US20130111181A1 (en) * 2011-10-31 2013-05-02 Lsi Corporation Methods and apparatus for increasing device access performance in data processing systems
US9842051B1 (en) * 2015-03-25 2017-12-12 Marvell International Ltd. Managing aliasing in a virtually indexed physically tagged cache
US11989286B2 (en) 2021-05-07 2024-05-21 Ventana Micro Systems Inc. Conditioning store-to-load forwarding (STLF) on past observations of STLF propriety
US11836080B2 (en) 2021-05-07 2023-12-05 Ventana Micro Systems Inc. Physical address proxy (PAP) residency determination for reduction of PAP reuse
US11860794B2 (en) 2021-05-07 2024-01-02 Ventana Micro Systems Inc. Generational physical address proxies
US11841802B2 (en) 2021-05-07 2023-12-12 Ventana Micro Systems Inc. Microprocessor that prevents same address load-load ordering violations
US11868263B2 (en) * 2021-05-07 2024-01-09 Ventana Micro Systems Inc. Using physical address proxies to handle synonyms when writing store data to a virtually-indexed cache
US11989285B2 (en) 2021-05-07 2024-05-21 Ventana Micro Systems Inc. Thwarting store-to-load forwarding side channel attacks by pre-forwarding matching of physical address proxies and/or permission checking

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4727482A (en) * 1983-08-30 1988-02-23 Amdahl Corporation Apparatus for enhancing searches of data tables
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
KR920001282B1 (ko) * 1987-10-02 1992-02-10 가부시키가이샤 히타치세이사쿠쇼 버퍼메모리 제어장치
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
US5113514A (en) * 1989-08-22 1992-05-12 Prime Computer, Inc. System bus for multiprocessor computer system
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
JP2833062B2 (ja) * 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
CA2044689A1 (en) * 1990-06-15 1991-12-16 Roger E. Tipley Multilevel inclusion in multilevel cache hierarchies
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5479630A (en) * 1991-04-03 1995-12-26 Silicon Graphics Inc. Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
US5487162A (en) * 1992-02-25 1996-01-23 Matsushita Electric Industrial Co., Ltd. Cache lock information feeding system using an address translator
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
US5675763A (en) * 1992-07-15 1997-10-07 Digital Equipment Corporation Cache memory system and method for selectively removing stale aliased entries
US5606687A (en) * 1993-10-07 1997-02-25 Sun Microsystems, Inc. Method and apparatus for optimizing supervisor mode store operations in a data cache
US5502829A (en) * 1993-11-03 1996-03-26 Intergraph Corporation Apparatus for obtaining data from a translation memory based on carry signal from adder
US5550995A (en) * 1994-01-03 1996-08-27 Motorola, Inc. Memory cache with automatic alliased entry invalidation and method of operation
US5668972A (en) * 1994-10-05 1997-09-16 International Business Machines Corporation Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990070788A (ko) * 1998-02-24 1999-09-15 윤종용 가상캐쉬 메모리의 어라이징 방지방법
JP2008522321A (ja) * 2004-12-02 2008-06-26 インテル・コーポレーション 高性能な方法でcpu又は処理エレメントから物理メモリにアクセスするための方法及び装置
US9280473B2 (en) 2004-12-02 2016-03-08 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US9710385B2 (en) 2004-12-02 2017-07-18 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US10282300B2 (en) 2004-12-02 2019-05-07 Intel Corporation Accessing physical memory from a CPU or processing element in a high performance manner
JP2009069969A (ja) * 2007-09-11 2009-04-02 Canon Inc 情報処理方法および情報処理装置、プログラム

Also Published As

Publication number Publication date
JP3859757B2 (ja) 2006-12-20
DE69629140D1 (de) 2003-08-28
KR100372293B1 (ko) 2003-07-18
EP0729102B1 (en) 2003-07-23
DE69629140T2 (de) 2004-04-15
EP0729102A3 (en) 1998-10-07
EP0729102A2 (en) 1996-08-28
US6006312A (en) 1999-12-21

Similar Documents

Publication Publication Date Title
JP3859757B2 (ja) 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
JP4256167B2 (ja) コンピュータメモリ保護方式の拡張機構
US5813031A (en) Caching tag for a large scale cache computer memory system
US6047357A (en) High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US20170206171A1 (en) Collapsed Address Translation With Multiple Page Sizes
US10019377B2 (en) Managing cache coherence using information in a page table
US5003459A (en) Cache memory system
US20070283108A1 (en) Memory Management System
US20140337600A1 (en) Providing metadata in a translation lookaside buffer (tlb)
US20120017039A1 (en) Caching using virtual memory
JP2000305842A (ja) ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置
JP2012533124A (ja) ブロックベースの非透過的キャッシュ
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US20120173843A1 (en) Translation look-aside buffer including hazard state
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US7472225B2 (en) Caching data
US5619673A (en) Virtual access cache protection bits handling method and apparatus
US10402326B1 (en) Accessing memories in coherent and non-coherent domains in a computing system
US7685372B1 (en) Transparent level 2 cache controller
US5835945A (en) Memory system with write buffer, prefetch and internal caches
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
JPH1091521A (ja) 二重ディレクトリー仮想キャッシュ及びその制御方法
US20080147984A1 (en) Method and apparatus for faster execution path

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060614

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060920

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110929

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110929

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120929

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120929

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130929

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term