JPH11203199A - キャッシュ・メモリ - Google Patents

キャッシュ・メモリ

Info

Publication number
JPH11203199A
JPH11203199A JP10300695A JP30069598A JPH11203199A JP H11203199 A JPH11203199 A JP H11203199A JP 10300695 A JP10300695 A JP 10300695A JP 30069598 A JP30069598 A JP 30069598A JP H11203199 A JPH11203199 A JP H11203199A
Authority
JP
Japan
Prior art keywords
tag
cache
virtual
physical
vector
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
JP10300695A
Other languages
English (en)
Inventor
Samuel D Naffziger
サミュエル・ディー・ナフジィガー
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH11203199A publication Critical patent/JPH11203199A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

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)【要約】 【課題】キャッシュ・メモリにおけるアクセス時間を改
善するための方法および装置を提供する。 【解決手段】本発明の一実施例によれば、キャッシュへ
のアクセス時に変換索引バッファ(TLB)から物理的
アドレス・タグを検索する必要のないキャッシュが提供
される。キャッシュは各新キャッシュ行に対しキャッシ
ュのタグ部に物理的ヒット・ベクトルを物理的タグの代
わりに記憶する。物理的ヒット・ベクトルは第1のTL
B CAM(内容アドレス・メモリ)によって発生され
る。各物理的ヒット・ベクトルはキャッシュ行の物理的
タグを有する第1のTLB CAM内の全ての位置を示
す。キャッシュ・アクセスに対し、第2のTLB CA
Mが仮想タグを受信し仮想ヒット・ベクトルを発生す
る。仮想ヒット・ベクトルは対応する仮想タグの第2の
TLB CAM内の位置を示す。次に、キャッシュは仮
想ヒット・ベクトルと物理的ヒット・ベクトルのセット
とを比較する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、コンピュータ
・メモリ・システムに関するものであり、とりわけ、キ
ャッシュ・メモリにおけるアクセス時間の改善に関する
ものである。
【0002】
【従来の技術】大部分のコンピュータ・システムでは、
最高レベルの階層における比較的高速で、高価で、容量
の制限されたメモリから、最低レベルの階層における比
較的低速で、コストが低く、容量の大きいメモリに至
る、マルチレベル階層のメモリ・システムが用いられ
る。一般に、階層には、速度を速めるため、物理的にプ
ロセッサの集積回路内に組み込まれるか、あるいは、物
理的にプロセッサに近接して取付られる、キャッシュと
呼ばれる小形の高速メモリが組み込まれている。独立し
た命令キャッシュとデータ・キャッシュを設けることも
可能である。マルチレベルのキャッシュを設ける場合も
ある。
【0003】プロセッサが、キャッシュからある項目を
要求し、その項目がキャッシュに納められている場合、
その事象はキャッシュ・ヒットと呼ばれる。プロセッサ
が、キャッシュからある項目を要求し、その項目がキャ
ッシュに納められていない場合、その事象はキャッシュ
・ミスと呼ばれる。キャッシュ・ミスの場合、要求され
た項目は、より低いレベルのメモリ階層から検索され
る。多くのプロセッサ設計では、キャッシュ・ヒットの
ための、項目にアクセスするのに必要な時間は、プロセ
ッサのクロック・レートに対する主要なリミッタの1つ
である。従って、キャッシュ・ヒットのためのアクセス
時間の最適化は、性能にとってクリティカルである。コ
ンピュータ・プロセッサにとって、キャッシュ・アクセ
ス時間の改善は継続して必要とされている。
【0004】一般に、メモリは、ワードに編成される
(例えば、32ビットまたは64ビット/ワード)。一
般に、キャッシュと次に低レベルのメモリ階層との間に
おいて転送可能な最小量のメモリは、行と呼ばれるが、
ブロックと呼ばれる場合もある。1行は、一般に、複数
ワードである(例えば、16ワード/行)。メモリは、
ページ(セグメントとも呼ばれる)に分割し、ページ毎
に多数行から成るようにすることも可能である。システ
ムによっては、ページ・サイズを可変にすることも可能
である。
【0005】多くの最新コンピュータ・メモリ・アーキ
テクチャにおいて、CPUは、ハードウェア及びソフト
ウェアによって、物理的メイン・メモリにアクセスする
物理的アドレスに変換される、仮想アドレスを生成す
る。仮想アドレス・グループは、動的に各ページに割り
当てることが可能である。仮想メモリ(ページングまた
はセグメンテーション)は、仮想アドレスを物理的アド
レスに変換する、ページ・テーブルと呼ばれることもあ
る、データ構造を必要とする。アドレス変換時間を短縮
するため、コンピュータは、一般に変換索引バッファ
(TLB)と呼ばれる、アドレス変換専用の特殊連想キ
ャッシュを用いるのが普通である。
【0006】キャッシュが、データと共に全行アドレス
を記憶し、キャッシュ内の任意の位置に任意の行を配置
することが可能な場合、そのキャッシュは完全に連想型
であると表現される。しかし、任意の位置に任意の行を
配置することが可能な大型キャッシュの場合、エントリ
がキャッシュ内に(及びどこに)あるか否かを迅速に判
定する必要のあるハードウェアは、極めて大型で、高価
なものになる可能性がある。大型キャッシュの場合、よ
り高速で、スペースの節約になる代替案は、アドレスの
サブセット(索引と呼ばれる)を用いて、キャッシュ内
における行位置を指定し、さらに、データと共に、各物
理的アドレスの最上位ビットの残りのセット(タグと呼
ばれる)を記憶する。索引付けを施したキャッシュで
は、特定のアドレスを備えた項目は、索引によって指定
された行セット内にしか配置することができない。キャ
ッシュが、所定のアドレスの索引がサブセット内の1つ
の行に正確にマッピングされるように構成されている場
合、そのキャッシュは、直接マッピング式であると表現
される。索引が、サブセット内の2つ以上の行にマッピ
ングされる場合、そのキャッシュは、セット連想型であ
ると表現される。アドレス空間をセットに分割するセッ
ト索引が得られるようにするため、アドレスの全てまた
は一部にハッシングが施される。
【0007】直接マッピングでは、ある行が要求される
場合、一致する索引ビットを備えているのは、キャッシ
ュ内の1つの行だけである。従って、システムが、アド
レスの残りが一致するか否かを判定する前に、データを
すぐに検索し、データ・バスに送り込むことが可能であ
る。データは、有効の場合も、あるいは、有効でない場
合もあるが、有効である通常の場合、システムが妥当性
を判定する前に、バスにおいてそのデータを入手するこ
とが可能である。セット連想キャッシュの場合、完全な
アドレスを比較するまで、どの行がアドレスに対応する
か分からない。すなわち、セット連想キャッシュの場
合、タグの比較結果を利用して、行セット内におけるど
の行のデータ・ビットをプロセッサに供給するかを選択
する。
【0008】TLBを備えたキャッシュの場合、ヒット
のためのクリティカルなタイミング経路は、次のシーケ
ンスをなす4つの操作を必要とする:(1)仮想タグを
TLBの内容アドレス・メモリ(CAM)に提示し、T
LBのRAMにおける対応する物理的タグの位置を求め
なければならない;(2)次に、TLB RAMから物
理的タグを検索しなければならない;(3)次に、TL
B RAMからの物理的タグとキャッシュのタグ・セク
ションからアクセスした物理的タグの比較を行わなけれ
ばならない;(4)適合するデータ行を選択しなければ
ならない。この4つの操作からなるシーケンスは、クロ
ック・サイクルの単一位相で完了することが望ましく、
実際、その位相をどれほど短くできるかを制限する可能
性がある。4つの操作のそれぞれに、時間がかかり、専
ら、各操作をできる限り速くすることに、多大の設計努
力が傾注される。TLBを備えたキャッシュに対するア
クセスのためのクリティカルな時間経路に関して、総合
的な時間の改良が必要とされる。
【0009】
【発明が解決しようとする課題】本発明は、キャッシュ
・メモリにおけるアクセス時間を改善するための方法お
よび装置を提供することを目的とする。
【0010】
【課題を解決するための手段】TLBから物理的タグを
検索する必要のない、TLBを備えたキャッシュが開示
される。キャッシュには、物理的タグを記憶する代わり
に、物理的タグが記憶されているTLB内の位置を記憶
する。TLBには、2つのCAMが含まれている。キャ
ッシュ・ヒットの場合、TLBのCAMの1つが、物理
的アドレスが記憶されているTLB内の位置を指定する
ベクトルを発生する。このベクトルが、キャッシュに記
憶されている位置ベクトルと比較される。この位置ベク
トルの比較によって、実際に物理的アドレスを検索する
ことを必要とせずに、セット内の1つのデータ行の選択
を可能にするのに十分な情報が得られる。結果として、
かなりの時間を費やす操作(物理的アドレス検索)が、
キャッシュ・ヒットのクリティカルな時間経路から取り
除かれる。さらに、物理的タグではなく、位置ベクトル
の比較によって、従来用いられているデジタル比較器よ
り高速で単純な比較論理の利用が可能になる。
【0011】システムが可変ページ・サイズを備えてい
る場合、追加構造が必要になる。実際上、追加構造は、
もう1つのCAMである。追加構造には、ページ・オフ
セット・ビット(アドレスの一部)と、どのページ・オ
フセット・ビットが関連しているかを指定するページ・
マスク・ビット(オペレーティング・システムによって
与えられる)が納められている。仮想アドレスの索引ビ
ットが、追加構造のエントリを指定する。
【0012】実施態様例には、4ウェイ・セット連想キ
ャッシュが用いられる。しかし、本発明は、TLBを備
えた任意のキャッシュに適用可能である。
【0013】
【実施例】図1には、先行技術によるキャッシュの一例
が示されている。例示のため、4ウェイ・セット連想キ
ャッシュが用いられているが、本発明は、TLBを用い
る任意のキャッシュに適用可能である。仮想アドレス1
00は、下位索引ビット102と上位タグ・ビット10
4から構成される。索引ビットは、一般に、仮想アドレ
ス及び物理的アドレスに関して同じである。索引ビット
は、キャッシュのデータ・セクション106における1
つのデータ行セットを選択するために用いられる。デー
タ・セクション106の出力は、4つのデータ行108
である。索引ビットは、キャッシュのタグ・セクション
110における1つの物理的タグ・セットを選択するた
めにも用いられる。タグ・セクション110の出力は、
それぞれ、1データ行108に対応する、4つの物理的
タグ112である。仮想タグ・ビット104は、TLB
114内のCAM116における1つのエントリを選択
するために利用される。TLB114は、仮想タグと物
理的タグの両方を記憶する。仮想タグ104が、CAM
116に一致を見つけることができないと、その場合、
TLBミスが生じたことになるという点に留意された
い。また、複数の仮想タグが、1つの物理的タグに対し
てマッピングされることがある点にも留意されたい。T
LBヒットが生じると、選択されたCAMエントリは、
仮想タグ104に対応する物理的タグについての、TL
B RAM118におけるアドレスを指定する。次に、
TLB RAM118から物理的タグが検索される。次
に、4つのデジタル比較器が、それぞれ、TLB RA
M118からの物理的タグとタグ・セクション110か
らの物理的タグ112の比較を行う。1対の一致する物
理的タグは、論理回路122を介して、4つのデータ行
のうちのどの行がマルチプレクサ124によって選択さ
れるかを表示する。特定の索引ビットについて、1対の
一致する物理的タグが存在しない可能性もあり、この場
合、キャッシュ・ミスが生じたことになるという点に留
意されたい。
【0014】図2には、本発明の実施態様の一例を示す
4ウェイ・セット連想キャッシュが示されている。図2
における索引ビット102、キャッシュのデータ・セク
ション106、及び、マルチプレクサ124は、図1と
同じである。図2のキャッシュの場合、セクション20
4は、物理的に図1のキャッシュのセクション110に
対応するが、新たなデータ行が、図2のキャッシュ内に
納められる場合、物理的タグがセクション204に記憶
される代わりに、ベクトル212(物理的ヒット・ベク
トルと呼ばれ、さらに詳細に後述する)がセクション2
04に記憶される。
【0015】図2のキャッシュの場合、TLB210
は、2つのCAM、すなわち、物理的タグを納めた物理
的CAM206と、仮想タグを納めた仮想CAM208
を備えている。仮想CAM208に新たな仮想タグ20
2が記憶される場合、オペレーティング・システムを介
して、対応する物理的タグ203も得られ、対応する物
理的タグ203は、物理的CAM206に記憶される。
物理的ヒット・ベクトル212は、物理的タグ203を
有する物理的CAM206内の各位置に対応する2進数
「1」を備えている。例えば、物理的ヒット・ベクトル 00000000000001000100000000000000 は、仮想タグ202に対応するこのキャッシュ行に関す
る物理的タグが、32エントリの物理的CAM206の
うち14番目のエントリ及び18番目のエントリ(任意
に、1番目を左から始めて数えた引例の場合)にあるこ
とを表している。例えば、新たな仮想タグ202及び対
応する物理的タグ203は、それぞれ、CAM208及
び206の18番目のエントリに配置することが可能で
あり、CAM208及び206の14番目のエントリに
は、それぞれ、異なる仮想タグ及び同じ対応する物理的
タグが既に納められている可能性がある。キャッシュに
新たな行を入力すると、新たな行の物理的タグ203の
物理的CAM206における全てのインスタンスの位置
を示す2進数の物理的ヒット・ベクトル212が、物理
的CAM206によって生成され、キャッシュ・セクシ
ョン204における索引ビットによって決まる行位置及
びセット配置アルゴリズムによって決まる列位置に記憶
される。
【0016】図2のキャッシュに関するキャッシュ・ア
クセスの場合、仮想タグ202は、仮想CAM208に
よって、仮想ヒット・ベクトルと呼ばれるベクトル21
4を生成するために用いられる。TLBミスがあると、
仮想ヒット・ベクトル214は、全て「ゼロ」になる。
TLBヒットがあると、仮想ヒット・ベクトル214
は、仮想CAM208における仮想タグ202の1つの
位置を示す単一2進数「1」を備える。(TLBにおけ
る各仮想タグは、ちょうど先行技術のTLBにおけるよ
うに一意的でなければならない)。
【0017】キャッシュ・アクセスに関して、索引ビッ
ト102によって、キャッシュ・セクション204にお
ける1つのセットをなす4つの物理的ヒット・ベクトル
が選択される。図1のキャッシュの場合、任意のセット
をなす索引ビット102に関して、セクション110に
おいて選択された4つの物理的タグは、TLBからの物
理的タグに一致する。同様に、図2のキャッシュの場合
も、固定ページ・サイズであれば(可変ページ・サイズ
の修正例については後述する)、任意のセットをなす索
引ビット102に関して、セクション204において選
択された4つの物理的ヒット・ベクトルのうちの1つだ
けが、仮想ヒット・ベクトル214における2進数
「1」(仮想CAM208における仮想タグの1つの位
置)に対応する、2進数「1」(物理的CAM206に
おける物理的タグの全ての位置)を備えることになる。
固定ページ・サイズの場合、次に、ヒット・ベクトルに
おける単一対をなす一致する「1」によって、マルチプ
レクサ124によってどのデータ行が選択されるかの判
定が行われる。所定のセットをなす索引ビット102に
関して、比較されたベクトル中に一致する「1」がない
可能性もあり、その場合、キャッシュ・ミスが生じたこ
とになるという点に留意されたい。
【0018】仮想ヒット・ベクトル214は、TLB
RAMから物理的タグを検索するために、一般に、TL
B CAM(例えば、図1のCAM116)によって内
部で生成しなければならない情報を含んでいる。しか
し、図2のキャッシュの場合、この情報は、TLB21
0外部で用いられ、キャッシュ・アクセスのために、T
LB210からの物理的タグが検索されることはない。
TLB210からの物理的タグの検索操作をなくすこと
によって、キャッシュのクリティカルな時間経路におい
てかなりの時間量を要する操作が排除されることにな
る。
【0019】図1のデジタル比較器120には、大型フ
ァン・インNORゲート(または論理的同等物)が後続
する、各ビット位置毎の排他的ORゲートが含まれてい
る。すなわち、2つの物理的タグを比較するため、各ビ
ット位置毎に、2つの一致する論理「1」と、2つの一
致する論理「0」のいずれであるかを調べなければなら
ない。対照的に、図2における物理的ヒット・ベクトル
の場合、一致を確認するのに、1対の一致する論理
「1」だけしか必要としない。従って、比較器216
は、大型ファン・インNORゲートが後続する単純なA
NDゲートとすることが可能である。ANDゲートは、
排他的ORゲートより高速かつ小型(単純)であり、O
Rゲートは、NORゲートよりはるかに高速である。
【0020】可能性のある複雑化の要因の1つは、プロ
セッサ・アーキテクチャによっては、アドレス・ビット
の一部が、可変とすることが可能なページ・サイズを示
す場合があり得るという点である。一般に、これは、コ
ンテキストまたはジョブによって決まる。例えば、ある
ページ・サイズをデータ・ベース・アプリケーションに
利用し、別のページ・サイズをグラフィックス集約的ア
プリケーションに利用することが可能である。上述のよ
うに、索引ビットは、一般に、仮想アドレスと物理的ア
ドレスにとって同じである。ページ・サイズが変化する
と、物理的索引のビット数が変化する。換言すれば、ア
ドレス中に、仮想の場合もあれば、物理的な場合もある
ビット・セットが存在する可能性がある。本特許文書に
おいて、これらのビット・ページをオフセット・ビット
と呼ぶことにする。各ページ・オフセット・ビット毎
に、オペレーティング・システムによって、対応するペ
ージ・オフセット・ビットが物理的か、あるいは、仮想
かを示すマスク・ビットが供給される。さらに、オフセ
ット・ビットは、TLBに送られる仮想タグと共に含め
られ、マスク・ビットは、各オフセット・ビット毎に、
そのオフセット・ビットが、TLBのCAMによる比較
において排除すべきでかあるか否かを指示する。可変ペ
ージ・サイズの場合、物理的タグが物理的CAM206
に記憶されると、記憶されたタグの長さは、実際上、マ
スキングの結果として、ページ・オフセット・ビットが
どれだけ含まれているかに応じて変動する。しかし、物
理的ヒット・ベクトル212は、物理的タグ203だけ
(ページ・オフセット・ビットを除いて)に対する比較
結果を表している。
【0021】ページ・サイズが可変のシステムの場合、
図2におけるキャッシュには、独立したCAM構造22
0が含まれている。構造220の各エントリは、ある行
のアドレスに関するページ・オフセット・ビットと、対
応するマスク・ビットから構成される。キャッシュ内の
ある行にアクセスする場合、仮想索引ビットによって、
CAM構造220内のある行が選択される。CAM構造
220は、記憶されたページ・オフセット・ビット(オ
フセット・ビット224からの)と受信したページ・オ
フセット・ビット222(仮想アドレス200におけ
る)の比較を行う。CAM構造220の場合、記憶され
ているマスク・ビットは、各オフセット・ビット位置毎
に、比較にオフセット・ビットを含めるべきか否かを指
示する。同様に、物理的CAM206には、オフセット
・ビット及びマスク・ビットが、物理的タグと共に含ま
れており、TLB210の場合、記憶されているマスク
・ビットは、各オフセット・ビット位置毎に、比較から
オフセット・ビットを除くべきか否かを指示する。各マ
スク・ビット毎に、対応するページ・オフセット・ビッ
トが、CAM220の比較に含められ、CAM206の
比較において排除される、あるいは、この逆になるとい
う点に留意されたい。物理的ヒット・ベクトル212
は、物理的タグ203だけ(ページ・オフセット・ビッ
トを除いて)に対する比較結果を表すので、ページ・サ
イズが可変の、大きいページ・サイズの場合、比較器2
16によってうまくゆく突き合わせが複数生じる可能性
がある。CAM220は、物理的ヒット・ベクトル21
2の生成において無視されたオフセット・ビットを比較
する。CAM220の出力は、有効(対応するマスク・
ビットの指示に従って含まれる)オフセット・ビットの
行セットである。次に、比較器226は、CAM220
の出力とアドレス200のページ・オフセット・ビット
222を比較する。次に、比較器226の出力を利用し
て、さらに比較器216の出力の認定が行われる。次
に、論理回路218は、セクション106からの4つの
データ行のうちのどの1つがマルチプレクサ124によ
って選択されるかを示す2つの出力を生じる。
【0022】本発明の以上の説明は、例証及び解説を目
的として提示されたものである。余すところなく述べよ
うとか、あるいは、本発明を開示の形態そのままに制限
しようとするものではなく、上記教示に鑑みて、他の修
正及び変更を加えることも可能である。この実施態様
は、本発明の原理及びその実際の適用例を最も明確に説
明することによって、当該技術者が、企図される特定の
用途に適合するさまざまな実施態様及びさまざまな修正
において、本発明を最も有効に利用できるようにするた
めに、選択され、解説された。付属の請求項は、先行技
術による制限のある場合を除き、本発明の他の代替実施
態様を含むものと解釈されることを意図している。
【0023】以上、本発明の実施例について詳述した
が、以下、本発明の各実施態様の例を示す。
【0024】[実施態様1]キャッシュによって仮想ア
ドレス(200)を受信するステップであって、該仮想
アドレスは仮想タグ(202)と仮想索引(102)と
を有し、該仮想タグは、前記仮想アドレスとは別の、対
応する物理的タグ(203)を備えている、ステップ
と、前記仮想タグに対する一致を含む変換索引バッファ
(210)内の位置を示す第1のベクトルを該変換索引
バッファによって発生するステップと、第1のメモリ構
造(204)によって、前記仮想索引によって決まる少
なくとも1つの位置から、前記変換索引バッファ内の少
なくとも1つの位置に前記物理的タグに一致するタグが
納められているか否かを示す少なくとも1つの第2のベ
クトルを検索するステップと、デジタル比較器(21
6)によって、前記第1のベクトルと前記第2のベクト
ルとを比較するステップと、比較結果を利用して、第2
のメモリ構造(106)からデータを選択するステップ
と、を備えて成る、キャッシュ内のデータにアクセスす
る方法。
【0025】[実施態様2]前記仮想アドレスには、さ
らに、ページ・オフセット・ビット(222)が含ま
れ、第3のメモリ構造(220)によって、前記仮想ア
ドレスのページ・オフセット・ビット(222)と、前
記第3のメモリ構造の、前記仮想索引によって決まる位
置に記憶されたページ・オフセット・ビット(224)
とを比較するステップと、前記第3のメモリ構造による
比較結果を利用して、前記デジタル比較器による比較結
果を検定するステップと、をさらに備えて成ることを特
徴とする、実施態様1に記載の方法。
【0026】[実施態様3]索引ビット(102)とタグ
・ビット(202)とを有する仮想アドレス(200)
を受信するキャッシュであって、前記タグ・ビットを受
信して、該タグ・ビットに対応する特定の仮想アドレス
・タグを納めた変換索引バッファ内の位置を示す第1の
ベクトル(214)を発生する、変換索引バッファ(2
10)と、索引ビットを受信するメモリ構造(204)
であって、該メモリ構造は第2のベクトルを有し、該第
2のベクトルの各々は前記変換索引バッファ内における
物理的アドレス・タグの少なくとも1つの位置を示し、
少なくとも1つの第2のベクトルは、前記索引ビットに
よって指定される、メモリ構造と、前記メモリ構造から
の第2のベクトルと前記変換索引バッファからの第1の
ベクトルとを比較する少なくとも1つのベクトル比較器
(216)と、を備えて成るキャッシュ。
【0027】[実施態様4]前記仮想アドレスが、さら
に、ページ・オフセット・ビット(222)を有し、記
憶ページ・オフセット・ビット(224)を納め、前記
索引ビットを受信する第2のメモリ構造(220)と、
前記索引ビットによって指定される、前記第2のメモリ
構造からの記憶ページ・オフセット・ビットを受信し、
前記仮想アドレスからページ・オフセット・ビット(2
22)を受信する少なくとも1つのオフセット比較器
(226)と、前記オフセット比較器の出力と前記ベク
トル比較器の出力とを受信する少なくとも1つの論理ゲ
ートと、をさらに備えて成ることを特徴とする、実施態
様3に記載のキャッシュ。
【0028】
【発明の効果】以上説明したように、本発明を用いるこ
とにより、キャッシュ・メモリにおけるアクセス時間を
改善することができる。
【図面の簡単な説明】
【図1】セット連想キャッシュの一例に関する略ブロッ
ク図である(先行技術)。
【図2】本発明によるセット連想キャッシュの一例に関
する略ブロック図である。
【符号の説明】
102:索引ビット 106:データ・セクション 124:マルチプレクサ 202:仮想タグ 203:物理的タグ 204:キャッシュ・セクション 206:物理的CAM 208:仮想CAM 210:TLB 212:物理的ヒット・ベクトル 214:仮想ヒット・ベクトル 216:比較器 220:CAM構造 222:ページ・オフセット・ビット

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】キャッシュによって仮想アドレスを受信す
    るステップであって、該仮想アドレスは仮想タグと仮想
    索引とを有し、該仮想タグは、前記仮想アドレスとは別
    の、対応する物理的タグを備えている、ステップと、 前記仮想タグに対する一致を含む変換索引バッファ内の
    位置を示す第1のベクトルを該変換索引バッファによっ
    て発生するステップと、 第1のメモリ構造によって、前記仮想索引によって決ま
    る少なくとも1つの位置から、前記変換索引バッファ内
    の少なくとも1つの位置に前記物理的タグに一致するタ
    グが納められているか否かを示す少なくとも1つの第2
    のベクトルを検索するステップと、 デジタル比較器によって、前記第1のベクトルと前記第
    2のベクトルとを比較するステップと、比較結果を利用
    して、第2のメモリ構造からデータを選択するステップ
    と、を備えて成る、キャッシュ内のデータにアクセスす
    る方法。
JP10300695A 1997-10-22 1998-10-22 キャッシュ・メモリ Pending JPH11203199A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US955,821 1997-10-22
US08/955,821 US6014732A (en) 1997-10-22 1997-10-22 Cache memory with reduced access time

Publications (1)

Publication Number Publication Date
JPH11203199A true JPH11203199A (ja) 1999-07-30

Family

ID=25497399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10300695A Pending JPH11203199A (ja) 1997-10-22 1998-10-22 キャッシュ・メモリ

Country Status (3)

Country Link
US (1) US6014732A (ja)
EP (1) EP0911737A1 (ja)
JP (1) JPH11203199A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013004101A (ja) * 2011-06-17 2013-01-07 Freescale Semiconductor Inc データプロセッサ内での分岐先バッファのアドレス指定

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199140B1 (en) * 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6425065B2 (en) * 1997-12-31 2002-07-23 Intel Corporation Tag RAM with selection module for a variable width address field
US6192459B1 (en) * 1998-03-23 2001-02-20 Intel Corporation Method and apparatus for retrieving data from a data storage device
TW371756B (en) * 1998-05-04 1999-10-11 United Microelectronis Corp Projection memory of selective updating
KR100277902B1 (ko) * 1998-08-18 2001-01-15 김영환 마이크로 프로세서
US6138188A (en) * 1998-09-28 2000-10-24 Mentor Arc Inc. Buffer management device and method for improving buffer usage and access performance in data processing system
KR100280518B1 (ko) * 1998-11-10 2001-03-02 김영환 동기 에스램 회로
US6539455B1 (en) 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6460112B1 (en) * 1999-02-23 2002-10-01 Netlogic Microsystems, Llc Method and apparatus for determining a longest prefix match in a content addressable memory device
US6892272B1 (en) 1999-02-23 2005-05-10 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a content addressable memory device
US6574702B2 (en) 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US7272027B2 (en) * 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US6625714B1 (en) * 1999-12-17 2003-09-23 Hewlett-Packard Development Company, L.P. Parallel distributed function translation lookaside buffer
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design
US6493812B1 (en) * 1999-12-17 2002-12-10 Hewlett-Packard Company Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US6574711B2 (en) * 1999-12-27 2003-06-03 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit
JP2001184870A (ja) * 1999-12-27 2001-07-06 Mitsubishi Electric Corp 連想メモリ装置およびそれを用いた可変長符号復号装置
US6446187B1 (en) * 2000-02-19 2002-09-03 Hewlett-Packard Company Virtual address bypassing using local page mask
US6643742B1 (en) * 2000-03-20 2003-11-04 Intel Corporation Method and system for efficient cache memory updating with a least recently used (LRU) protocol
US6622204B1 (en) * 2000-09-14 2003-09-16 Cypress Semiconductor Corp. Content-addressable memory with cascaded match, read and write logic in a programmable logic device
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US6301186B1 (en) * 2001-04-30 2001-10-09 Hewlett-Packard Company RAM cell with column clear
US6772277B2 (en) * 2001-04-30 2004-08-03 Hewlett-Packard Development Company, L.P. Method of writing to a memory array using clear enable and column clear signals
US6918021B2 (en) 2001-05-10 2005-07-12 Hewlett-Packard Development Company, L.P. System of and method for flow control within a tag pipeline
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
US6820170B1 (en) * 2002-06-24 2004-11-16 Applied Micro Circuits Corporation Context based cache indexing
US20040054867A1 (en) * 2002-09-13 2004-03-18 Paulus Stravers Translation lookaside buffer
US7146457B2 (en) * 2003-09-24 2006-12-05 Hewlett-Packard Development Company, L.P. Content addressable memory selectively addressable in a physical address mode and a virtual address mode
GB2433613B (en) * 2005-12-22 2010-10-20 Advanced Risc Mach Ltd Variable size cache memory support within an integrated circuit
US8631206B1 (en) * 2007-09-21 2014-01-14 Marvell International Ltd. Way-selecting translation lookaside buffer
US8099580B2 (en) * 2009-06-09 2012-01-17 Freescale Semiconductor, Inc Translation look-aside buffer with a tag memory and method therefor
US8359456B2 (en) * 2010-02-22 2013-01-22 International Business Machines Corporation Generating random addresses for verification of distributed computerized devices
US9836513B2 (en) * 2012-03-12 2017-12-05 Entit Software Llc Page feed for efficient dataflow between distributed query engines
CN107844359A (zh) * 2016-09-20 2018-03-27 杭州华为数字技术有限公司 一种仿真方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969122A (en) * 1989-08-21 1990-11-06 Sun Microsystems, Inc. Apparatus for page tagging in a computer system
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013004101A (ja) * 2011-06-17 2013-01-07 Freescale Semiconductor Inc データプロセッサ内での分岐先バッファのアドレス指定

Also Published As

Publication number Publication date
US6014732A (en) 2000-01-11
EP0911737A1 (en) 1999-04-28

Similar Documents

Publication Publication Date Title
US6014732A (en) Cache memory with reduced access time
US6772316B2 (en) Method and apparatus for updating and invalidating store data
JP3278748B2 (ja) メモリ空間を節約する方法および装置
KR100297454B1 (ko) 컴퓨터장치
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US6874077B2 (en) Parallel distributed function translation lookaside buffer
US5493660A (en) Software assisted hardware TLB miss handler
US6138225A (en) Address translation system having first and second translation look aside buffers
US4587610A (en) Address translation systems for high speed computer memories
KR100843536B1 (ko) 컴퓨터 시스템 내의 메모리 관리 향상 방법, 메모리 관리 메커니즘 및 컴퓨터 판독 가능한 기록 매체
US8082416B2 (en) Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
US5058003A (en) Virtual storage dynamic address translation mechanism for multiple-sized pages
US6145064A (en) Method of efficiently updating hashed page tables
US11409663B2 (en) Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US4914582A (en) Cache tag lookaside
US5778427A (en) Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
US5897651A (en) Information handling system including a direct access set associative cache and method for accessing same
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
EP0206050A2 (en) Virtually addressed cache memory with physical tags
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
US6226731B1 (en) Method and system for accessing a cache memory within a data-processing system utilizing a pre-calculated comparison array
US6581139B1 (en) Set-associative cache memory having asymmetric latency among sets
GB2395588A (en) Apparatus supporting multiple page sizes with address aliasing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20031127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040813

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041008

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050506