JP2000242558A - キャッシュシステム及びその操作方法 - Google Patents
キャッシュシステム及びその操作方法Info
- Publication number
- JP2000242558A JP2000242558A JP2000026068A JP2000026068A JP2000242558A JP 2000242558 A JP2000242558 A JP 2000242558A JP 2000026068 A JP2000026068 A JP 2000026068A JP 2000026068 A JP2000026068 A JP 2000026068A JP 2000242558 A JP2000242558 A JP 2000242558A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- victim
- prefetch
- address
- filter
- 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
Links
- 238000011017 operating method Methods 0.000 title 1
- 230000015654 memory Effects 0.000 claims abstract description 53
- 230000006870 function Effects 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 16
- 239000000872 buffer Substances 0.000 description 13
- 238000004088 simulation Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000003446 memory effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 電力消費とハードウエア要件とを低減する。
【解決手段】 キャッシュシステムは多重レベルのキャ
ッシュ構成を有する。L1キャッシュ18は外部メモリ
から命令を受け取る。L0キャッシュ20は第1設定数
L0のキャッシュラインを有する。補助キャッシュ22
はビクティムキャッシュとプリフェッチキャッシュを有
する。ビクティムキャッシュは第2設定数VC、プリフ
ェッチキャッシュは第3設定数PCのキャッシュライン
を備える。ビクティムキャッシュはL0キャッシュか
ら、プリフェッチキャッシュはL1キャッシュから命令
を受け取る。ビクティムフィルタは第4設定数VFのア
ドレスを格納し、VFはL0キャッシュとキャッシュ書
き込み回数との関数である。L0キャッシュ及びビクテ
ィムキャッシュへのキャッシュ書き込み回数が補助キャ
ッシュを使用せずにL0キャッシュを使用することによ
って低減される。
ッシュ構成を有する。L1キャッシュ18は外部メモリ
から命令を受け取る。L0キャッシュ20は第1設定数
L0のキャッシュラインを有する。補助キャッシュ22
はビクティムキャッシュとプリフェッチキャッシュを有
する。ビクティムキャッシュは第2設定数VC、プリフ
ェッチキャッシュは第3設定数PCのキャッシュライン
を備える。ビクティムキャッシュはL0キャッシュか
ら、プリフェッチキャッシュはL1キャッシュから命令
を受け取る。ビクティムフィルタは第4設定数VFのア
ドレスを格納し、VFはL0キャッシュとキャッシュ書
き込み回数との関数である。L0キャッシュ及びビクテ
ィムキャッシュへのキャッシュ書き込み回数が補助キャ
ッシュを使用せずにL0キャッシュを使用することによ
って低減される。
Description
【0001】
【発明の属する技術分野】本発明は、一般的にはマイク
ロプロセッサシステムにおけるキャッシュ(キャッシュ
メモリ)に関し、更に詳細には補助キャッシュ用装置及
びその方法に関するものである。
ロプロセッサシステムにおけるキャッシュ(キャッシュ
メモリ)に関し、更に詳細には補助キャッシュ用装置及
びその方法に関するものである。
【0002】
【従来の技術】プロセッサ速度がメモリ速度より急速な
割合で継続的に増大するにつれ、メモリ速度がますます
重要になっている。キャッシュはメインメモリより小さ
くて速いバッファ型である。キャッシュはプロセッサと
メインメモリとの間に配置されている。メモリ速度を向
上させるために、キャッシュは、プロセッサによって次
に要求され得るメインメモリから命令とデータとのコピ
ーを格納している。
割合で継続的に増大するにつれ、メモリ速度がますます
重要になっている。キャッシュはメインメモリより小さ
くて速いバッファ型である。キャッシュはプロセッサと
メインメモリとの間に配置されている。メモリ速度を向
上させるために、キャッシュは、プロセッサによって次
に要求され得るメインメモリから命令とデータとのコピ
ーを格納している。
【0003】キャッシュは、一つのバッファ、又は多数
のバッファを使用できる。多数のバッファはそれぞれ異
なる速度又は待ち時間を備えている。待ち時間は、メモ
リ又はキャッシュ内に格納されたデータ又は命令に、ア
クセスするのに要するクロックサイクル数である。
のバッファを使用できる。多数のバッファはそれぞれ異
なる速度又は待ち時間を備えている。待ち時間は、メモ
リ又はキャッシュ内に格納されたデータ又は命令に、ア
クセスするのに要するクロックサイクル数である。
【0004】従来、マイクロプロセッサは、単一サイク
ルのオンチップキャッシュで構成され、メモリ待ち時間
を低減していた。多電流高性能マイクロプロセッサで
は、命令及びデータのメモリ基準は、現在、単一クロッ
クサイクルの代わりに2サイクルクロックを必要として
いる。その結果として、プロセッサの実行ユニットがメ
モリにアクセスするため付加的な状態を必要とし、その
ことがハードウエア数と、ブランチ不利益とを増大させ
ている。ハードウエア数の増加が電力及びコストを増大
させている。ブランチ不利益の増大が性能を劣化させて
いる。
ルのオンチップキャッシュで構成され、メモリ待ち時間
を低減していた。多電流高性能マイクロプロセッサで
は、命令及びデータのメモリ基準は、現在、単一クロッ
クサイクルの代わりに2サイクルクロックを必要として
いる。その結果として、プロセッサの実行ユニットがメ
モリにアクセスするため付加的な状態を必要とし、その
ことがハードウエア数と、ブランチ不利益とを増大させ
ている。ハードウエア数の増加が電力及びコストを増大
させている。ブランチ不利益の増大が性能を劣化させて
いる。
【0005】あるプロセッサアプリケーション内では性
能が重要であるから、ブランチ不利益を低減するために
ブランチ予測とブランチ達成とのバッファが使用され、
そのことが更に多くのハードウエアを招いた。しかしな
がら、埋設プロセッサの目標は、粗い性能の代わりに、
1ドル当たりの性能(速度)と1ワット当たりの性能と
を向上させるための設計目標である。実行ユニット内で
多くのパイプライン段階を付加することと、ハードウエ
ア数を増加させることとは、埋設プロセッサによって要
求された要件を満たす満足できる解決法でない。
能が重要であるから、ブランチ不利益を低減するために
ブランチ予測とブランチ達成とのバッファが使用され、
そのことが更に多くのハードウエアを招いた。しかしな
がら、埋設プロセッサの目標は、粗い性能の代わりに、
1ドル当たりの性能(速度)と1ワット当たりの性能と
を向上させるための設計目標である。実行ユニット内で
多くのパイプライン段階を付加することと、ハードウエ
ア数を増加させることとは、埋設プロセッサによって要
求された要件を満たす満足できる解決法でない。
【0006】キャッシュはキャッシュライン内のメイン
メモリからコピーされた命令を格納している。キャッシ
ュラインは一つ又は多数の連続した命令を格納すること
も可能である。その上、各キャッシュラインはコピーさ
れた命令におけるメモリアドレスを確認するために使用
されるタグを有している。その最も簡単な形式では、タ
グは全アドレスである。キャッシュラインが多重命令を
格納した時、全アドレスは格納される必要がない。例え
ば、キャッシュラインが8バイトを格納したならば、ア
ドレスのうち三つの最も重要でないビットはタグ内に格
納される必要がない。
メモリからコピーされた命令を格納している。キャッシ
ュラインは一つ又は多数の連続した命令を格納すること
も可能である。その上、各キャッシュラインはコピーさ
れた命令におけるメモリアドレスを確認するために使用
されるタグを有している。その最も簡単な形式では、タ
グは全アドレスである。キャッシュラインが多重命令を
格納した時、全アドレスは格納される必要がない。例え
ば、キャッシュラインが8バイトを格納したならば、ア
ドレスのうち三つの最も重要でないビットはタグ内に格
納される必要がない。
【0007】リクエスト命令がキャッシュ内にすでに格
納された時、キャッシュヒットが生じている。リクエス
ト命令がキャッシュライン内に格納されなかった時、キ
ャッシュミスが生じている。通常、キャッシュミスが生
じた時、プロセッサ性能を下げるプログラムの実行を継
続する前に、リクエスト命令がメインメモリから検索さ
れるまで、実行ユニットが待機しなければならないし、
又は止まらなければならない。
納された時、キャッシュヒットが生じている。リクエス
ト命令がキャッシュライン内に格納されなかった時、キ
ャッシュミスが生じている。通常、キャッシュミスが生
じた時、プロセッサ性能を下げるプログラムの実行を継
続する前に、リクエスト命令がメインメモリから検索さ
れるまで、実行ユニットが待機しなければならないし、
又は止まらなければならない。
【0008】概して、多重レベルキャッシュは、L0キ
ャッシュとL1キャッシュとして引用され、異なる速
度、又は異なるメモリ待ち時間のアクセスタイムを備え
た二つのバッファを有している。通常、L1キャッシュ
はL0キャッシュより遅い。L1キャッシュはメインメ
モリから命令及びデータを受け取る。L0キャッシュは
L1キャッシュから命令及びデータを受け取り、実行ユ
ニットへ供給する。
ャッシュとL1キャッシュとして引用され、異なる速
度、又は異なるメモリ待ち時間のアクセスタイムを備え
た二つのバッファを有している。通常、L1キャッシュ
はL0キャッシュより遅い。L1キャッシュはメインメ
モリから命令及びデータを受け取る。L0キャッシュは
L1キャッシュから命令及びデータを受け取り、実行ユ
ニットへ供給する。
【0009】キャッシュのキャッシュラインには、メモ
リアドレスに関してダイレクトマップ型、フルアソシア
ティブ型、又はセットアソシアティブ型がある。フルア
ソシアティブ型キャッシュはメモリアドレスを、ある特
定なキャッシュラインに結びつけていない。命令及びデ
ータは任意のキャッシュライン内に配置されている。ダ
イレクトマップ型キャッシュは、特定のキャッシュライ
ンと各メモリアドレスとを結びつけ、該特定キャッシュ
ライン内だけに特定アドレスで格納された命令又はデー
タを配置している。セットアソシアティブ型キャッシュ
は、数組又は数グループの連続キャッシュラインを特定
メモリの位置へダイレクトに置く。しかしながら、一組
のキャッシュライン内では、キャッシュは完全に結合し
ている。
リアドレスに関してダイレクトマップ型、フルアソシア
ティブ型、又はセットアソシアティブ型がある。フルア
ソシアティブ型キャッシュはメモリアドレスを、ある特
定なキャッシュラインに結びつけていない。命令及びデ
ータは任意のキャッシュライン内に配置されている。ダ
イレクトマップ型キャッシュは、特定のキャッシュライ
ンと各メモリアドレスとを結びつけ、該特定キャッシュ
ライン内だけに特定アドレスで格納された命令又はデー
タを配置している。セットアソシアティブ型キャッシュ
は、数組又は数グループの連続キャッシュラインを特定
メモリの位置へダイレクトに置く。しかしながら、一組
のキャッシュライン内では、キャッシュは完全に結合し
ている。
【0010】ダイレクトマップ型キャッシュは、最速の
アクセスタイムを有するが、ホットスポットを発展させ
る傾向がある。ホットスポットは同じキャッシュライン
に対しての繰り返しミスである。フルアソシアティブ型
キャッシュはダイレクトマップ型キャッシュよりも高い
ヒット率を有するが、ダイレクトマップ型キャッシュよ
りも遅いアクセス時間を有している。アクセス時間に関
し、セットアソシアティブ型キャッシュはダイレクトマ
ップ型キャッシュとフルアソシアティブ型キャッシュと
の間にある。
アクセスタイムを有するが、ホットスポットを発展させ
る傾向がある。ホットスポットは同じキャッシュライン
に対しての繰り返しミスである。フルアソシアティブ型
キャッシュはダイレクトマップ型キャッシュよりも高い
ヒット率を有するが、ダイレクトマップ型キャッシュよ
りも遅いアクセス時間を有している。アクセス時間に関
し、セットアソシアティブ型キャッシュはダイレクトマ
ップ型キャッシュとフルアソシアティブ型キャッシュと
の間にある。
【0011】ビクティムキャッシュは、L0キャッシュ
から移動されたキャッシュラインを格納するフルアソシ
アティブ型キャッシュである。ビクティムキャッシュラ
インは、代用されたL0キャッシュ内のキャッシュライ
ンである。一つのキャッシュシステムでは、全てのキャ
ッシュミス上で、ビクティムキャッシュラインがビクテ
ィムキャッシュにコピーされている。ビクティムキャッ
シュが完全であったならば、新しいビクティムキャッシ
ュラインがビクティムキャッシュ内で最近最も使用され
なかったキャッシュラインに取って代わっている。キャ
ッシュミスがL0キャッシュ及びL1キャッシュ内で生
じた時、リクエスト命令又はデータがビクティムキャッ
シュ内に格納されたか否かをキャッシュが決定し、もし
格納されたならばキャッシュがビクティムキャッシュか
ら実行ユニットへ該命令を提供する。
から移動されたキャッシュラインを格納するフルアソシ
アティブ型キャッシュである。ビクティムキャッシュラ
インは、代用されたL0キャッシュ内のキャッシュライ
ンである。一つのキャッシュシステムでは、全てのキャ
ッシュミス上で、ビクティムキャッシュラインがビクテ
ィムキャッシュにコピーされている。ビクティムキャッ
シュが完全であったならば、新しいビクティムキャッシ
ュラインがビクティムキャッシュ内で最近最も使用され
なかったキャッシュラインに取って代わっている。キャ
ッシュミスがL0キャッシュ及びL1キャッシュ内で生
じた時、リクエスト命令又はデータがビクティムキャッ
シュ内に格納されたか否かをキャッシュが決定し、もし
格納されたならばキャッシュがビクティムキャッシュか
ら実行ユニットへ該命令を提供する。
【0012】少なくとも一回のキャッシュミスが生じた
後に、頻繁にアクセスされたキャッシュラインを格納し
たことによってビクティムキャッシュが性能を向上させ
る。その上、別の技術がキャッシュミスを防止するため
に使用されている。プリフェッチ技術は、連続するキャ
ッシュミスが生じる前に、ストリームバッファを使用
し、キャッシュ内へ命令及びデータを取り出している。
ミスが生じた時、ストリームバッファが自身の中へ、ミ
スした命令から始まった命令を先取りする。次のキャッ
シュアクセスがリクエストアドレスを、L1キャッシュ
及びL0キャッシュのアドレス又はタグだけでなく、ス
トリームバッファのタグと比較する。リクエスト命令が
L1キャッシュ又はL0キャッシュ内ではなく、ストリ
ームバッファ内にあったならば、リクエスト命令を含ん
だキャッシュラインがストリームバッファから、L1キ
ャッシュ又はL0キャッシュ内へ移動される。しかしな
がら、ストリームバッファがチップ上で付加的空間を使
用し、電力消費を増加させている。
後に、頻繁にアクセスされたキャッシュラインを格納し
たことによってビクティムキャッシュが性能を向上させ
る。その上、別の技術がキャッシュミスを防止するため
に使用されている。プリフェッチ技術は、連続するキャ
ッシュミスが生じる前に、ストリームバッファを使用
し、キャッシュ内へ命令及びデータを取り出している。
ミスが生じた時、ストリームバッファが自身の中へ、ミ
スした命令から始まった命令を先取りする。次のキャッ
シュアクセスがリクエストアドレスを、L1キャッシュ
及びL0キャッシュのアドレス又はタグだけでなく、ス
トリームバッファのタグと比較する。リクエスト命令が
L1キャッシュ又はL0キャッシュ内ではなく、ストリ
ームバッファ内にあったならば、リクエスト命令を含ん
だキャッシュラインがストリームバッファから、L1キ
ャッシュ又はL0キャッシュ内へ移動される。しかしな
がら、ストリームバッファがチップ上で付加的空間を使
用し、電力消費を増加させている。
【0013】電力効率が重要である。ビクティムキャッ
シュとストリームキャッシュとが性能を向上させるが、
ハードウエアの煩雑さを増やし、コスト及び電力の消費
を増大させる。
シュとストリームキャッシュとが性能を向上させるが、
ハードウエアの煩雑さを増やし、コスト及び電力の消費
を増大させる。
【0014】
【発明が解決しようとする課題】このように、単一サイ
クルアクセスの待ち時間を維持している間に、容認し得
るキャッシュヒット率を与えるという問題を解決したキ
ャッシュ構成が望まれている。更に、提案されたキャッ
シュ構成が、埋設されたマイクロプロセッサ用の重要な
設計制約である電力消費とハードウエア要件とを低減す
ることが好ましい。
クルアクセスの待ち時間を維持している間に、容認し得
るキャッシュヒット率を与えるという問題を解決したキ
ャッシュ構成が望まれている。更に、提案されたキャッ
シュ構成が、埋設されたマイクロプロセッサ用の重要な
設計制約である電力消費とハードウエア要件とを低減す
ることが好ましい。
【0015】それ故、本発明の目的は、キャッシュを作
動する改良装置と、その方法とを提供することである。
動する改良装置と、その方法とを提供することである。
【0016】本発明の関連する目的は、キャッシュの消
費電力を低減する改良装置と、その方法とを作り出すこ
とである。
費電力を低減する改良装置と、その方法とを作り出すこ
とである。
【0017】
【課題を解決するための手段】本発明におけるこれら及
び他の目的や利点は、補助キャッシュ及び補助フィルタ
を備えた多重キャッシュを使用することによって達成さ
れる。補助キャッシュラインは、L0キャッシュから移
動されたキャッシュライン(ビクティム)と、L1キャ
ッシュから移動されたプリフェッチキャッシュとを格納
している。一つの実施の形態では、補助キャッシュ内に
ビクティムキャッシュラインとプリフェッチキャッシュ
ラインとの特定混合物がハードウエアに組み込まれてい
る。他の実施の形態では、キャッシュラインの特定混合
物がダイナミックに割り当てられている。
び他の目的や利点は、補助キャッシュ及び補助フィルタ
を備えた多重キャッシュを使用することによって達成さ
れる。補助キャッシュラインは、L0キャッシュから移
動されたキャッシュライン(ビクティム)と、L1キャ
ッシュから移動されたプリフェッチキャッシュとを格納
している。一つの実施の形態では、補助キャッシュ内に
ビクティムキャッシュラインとプリフェッチキャッシュ
ラインとの特定混合物がハードウエアに組み込まれてい
る。他の実施の形態では、キャッシュラインの特定混合
物がダイナミックに割り当てられている。
【0018】更に詳細には、L1キャッシュが外部メモ
リから命令を受け取る。L0キャッシュが、L1キャッ
シュから命令を受け取るために第1設定数L0のキャッ
シュラインを有している。補助キャッシュはビクティム
キャッシュとプリフェッチキャッシュとを有している。
ビクティムキャッシュは第2設定数VCのキャッシュラ
インを備え、プリフェッチキャッシュは第3設定数PC
のキャッシュラインを備えている。ビクティムキャッシ
ュはL0キャッシュから命令を受け取る。プリフェッチ
キャッシュはL1キャッシュから命令を受け取る。ビク
ティムフィルタは第4設定数VFのアドレスを格納し、
第4設定数VFはL0とキャッシュ書き込み回数との関
数である。L0キャッシュ及びビクティムキャッシュへ
のキャッシュ書き込み回数は、補助キャッシュを使用せ
ずにL0キャッシュを使用することに関して低減され
る。
リから命令を受け取る。L0キャッシュが、L1キャッ
シュから命令を受け取るために第1設定数L0のキャッ
シュラインを有している。補助キャッシュはビクティム
キャッシュとプリフェッチキャッシュとを有している。
ビクティムキャッシュは第2設定数VCのキャッシュラ
インを備え、プリフェッチキャッシュは第3設定数PC
のキャッシュラインを備えている。ビクティムキャッシ
ュはL0キャッシュから命令を受け取る。プリフェッチ
キャッシュはL1キャッシュから命令を受け取る。ビク
ティムフィルタは第4設定数VFのアドレスを格納し、
第4設定数VFはL0とキャッシュ書き込み回数との関
数である。L0キャッシュ及びビクティムキャッシュへ
のキャッシュ書き込み回数は、補助キャッシュを使用せ
ずにL0キャッシュを使用することに関して低減され
る。
【0019】本発明における他の特徴及び利点は、本発
明の開示を検討した当業者にとって明白になるだろう。
それ故、本発明における好ましい実施の形態の詳細な記
述が以下に図面に基づいて与えられる。
明の開示を検討した当業者にとって明白になるだろう。
それ故、本発明における好ましい実施の形態の詳細な記
述が以下に図面に基づいて与えられる。
【0020】
【発明の実施の形態】図1は本発明で使用するのに適切
なプロセッサ及びメモリのブロックダイアグラムであ
る。プロセッサ10は実行ユニット14へ命令を与える
キャッシュシステム12を有している。キャッシュシス
テム12は外部メモリ16から命令を検索する。他の実
施の形態では、メモリ16はプロセッサ10と同じチッ
プ上にある。
なプロセッサ及びメモリのブロックダイアグラムであ
る。プロセッサ10は実行ユニット14へ命令を与える
キャッシュシステム12を有している。キャッシュシス
テム12は外部メモリ16から命令を検索する。他の実
施の形態では、メモリ16はプロセッサ10と同じチッ
プ上にある。
【0021】図2を参照すると、本発明のキャッシュシ
ステム12を構成するキャッシュの詳細なブロックダイ
アグラムが示されている。キャッシュシステム12(図
1参照)はL1キャッシュ18、L0キャッシュ20、
及び補助キャッシュ22を含んでいる。補助フィルタ2
4は補助キャッシュ22と一緒に使用されている。マル
チプレクサ26,28,30はL1キャッシュ18,L
0キャッシュ20、補助キャッシュ22,及び実行ユニ
ット14を相互に連結している。2クロックサイクルで
は、L1キャッシュ18はダイレクトマップ型で、16
384(16K)バイトを格納し、アクセスされる。他
の実施の形態では、L1キャッシュ18がセットアソシ
アティブ型である。L0キャッシュ20は256バイト
又は64のキャッシュラインを格納している。補助キャ
ッシュ22はフルアソシアティブ型で、単一クロックサ
イクル内でアクセスでき、128バイトを格納した4つ
のキャッシュラインを有している。択一的に、補助キャ
ッシュ22は2つのキャッシュライン内に64バイト、
又は3つのキャッシュライン内に96バイトを格納して
いる。好ましくは、L1キャッシュ18,L0キャッシ
ュ20,及び補助キャッシュ22が1つのキャッシュラ
イン内に同じバイト数を有している。一つの実施の形態
では、キャッシュラインが32バイトを格納している。
ステム12を構成するキャッシュの詳細なブロックダイ
アグラムが示されている。キャッシュシステム12(図
1参照)はL1キャッシュ18、L0キャッシュ20、
及び補助キャッシュ22を含んでいる。補助フィルタ2
4は補助キャッシュ22と一緒に使用されている。マル
チプレクサ26,28,30はL1キャッシュ18,L
0キャッシュ20、補助キャッシュ22,及び実行ユニ
ット14を相互に連結している。2クロックサイクルで
は、L1キャッシュ18はダイレクトマップ型で、16
384(16K)バイトを格納し、アクセスされる。他
の実施の形態では、L1キャッシュ18がセットアソシ
アティブ型である。L0キャッシュ20は256バイト
又は64のキャッシュラインを格納している。補助キャ
ッシュ22はフルアソシアティブ型で、単一クロックサ
イクル内でアクセスでき、128バイトを格納した4つ
のキャッシュラインを有している。択一的に、補助キャ
ッシュ22は2つのキャッシュライン内に64バイト、
又は3つのキャッシュライン内に96バイトを格納して
いる。好ましくは、L1キャッシュ18,L0キャッシ
ュ20,及び補助キャッシュ22が1つのキャッシュラ
イン内に同じバイト数を有している。一つの実施の形態
では、キャッシュラインが32バイトを格納している。
【0022】更に詳細には、図3を参照すると、図2に
おける補助キャッシュ22と補助フィルタ24とのブロ
ックダイアグラムが詳細に示されている。補助キャッシ
ュ22はビクテムキャッシュ32とプリフェッチキャッ
シュ34とを有している。ビクティムキャッシュ32
は、L0キャッシュ20から移された命令を格納するた
め、第1組のキャッシュラインを含んでいる。プリフェ
ッチキャッシュ34は、L1キャッシュ18から受け取
った命令を格納するため、第2組のキャッシュラインを
含んでいる。補助フィルタ24はビクティムキャッシュ
36とプリフェッチキャッシュ38とを含んでいる。ビ
クティムフィルタ36は、1組のアドレス又はタグを格
納するため、ビクティムメモリを有している。実行ユニ
ットはリクエストアドレスから命令をリクエストする。
ビクティムキャッシュ32はビクティムフィルタ36に
応答している。リクエスト命令がL0キャッシュ20又
は補助キャッシュ22内に格納されなかった時、L0キ
ャッシュ20がキャッシュラインを確認し、L0キャッ
シュ20内で(ビクティムキャッシュラインに)取って
代わる。ビクティムフィルタ36は、リクエストアドレ
スの一部分がビクティムフィルタ36内に格納されたア
ドレスに一致するか否かを決定する。リクエストアドレ
スの一部分がビクティムフィルタ36内に格納されたア
ドレスの一部に一致したならば、ビクティムフィルタ3
6がL0キャッシュからビクティムキャッシュ32内へ
ビクティムキャッシュラインをコピーしている。また、
L0キャッシュ20は、ビクティムキャッシュラインに
おけるアドレスの一部分を再構成し、ビクティムフィル
タ36内でビクティムキャッシュラインを備えたキャッ
シュラインタグとして再構成アドレスを格納している。
おける補助キャッシュ22と補助フィルタ24とのブロ
ックダイアグラムが詳細に示されている。補助キャッシ
ュ22はビクテムキャッシュ32とプリフェッチキャッ
シュ34とを有している。ビクティムキャッシュ32
は、L0キャッシュ20から移された命令を格納するた
め、第1組のキャッシュラインを含んでいる。プリフェ
ッチキャッシュ34は、L1キャッシュ18から受け取
った命令を格納するため、第2組のキャッシュラインを
含んでいる。補助フィルタ24はビクティムキャッシュ
36とプリフェッチキャッシュ38とを含んでいる。ビ
クティムフィルタ36は、1組のアドレス又はタグを格
納するため、ビクティムメモリを有している。実行ユニ
ットはリクエストアドレスから命令をリクエストする。
ビクティムキャッシュ32はビクティムフィルタ36に
応答している。リクエスト命令がL0キャッシュ20又
は補助キャッシュ22内に格納されなかった時、L0キ
ャッシュ20がキャッシュラインを確認し、L0キャッ
シュ20内で(ビクティムキャッシュラインに)取って
代わる。ビクティムフィルタ36は、リクエストアドレ
スの一部分がビクティムフィルタ36内に格納されたア
ドレスに一致するか否かを決定する。リクエストアドレ
スの一部分がビクティムフィルタ36内に格納されたア
ドレスの一部に一致したならば、ビクティムフィルタ3
6がL0キャッシュからビクティムキャッシュ32内へ
ビクティムキャッシュラインをコピーしている。また、
L0キャッシュ20は、ビクティムキャッシュラインに
おけるアドレスの一部分を再構成し、ビクティムフィル
タ36内でビクティムキャッシュラインを備えたキャッ
シュラインタグとして再構成アドレスを格納している。
【0023】プリフェッチキャッシュ内に格納するため
の命令を先取りする前に、キャッシュミスが生じた時、
プリフェッチフィルタ38がプリフェッチキャッシュ3
2と一緒に使用され、アドレスを通過させている。それ
故、プリフェッチフィルタ38はL1キャッシュと外部
メモリとからプリフェッチの数を低減している。他の実
施の形態では、プリフェッチフィルタが使用されず、命
令がキャッシュミス毎に先取りされている。ミス処理毎
にプリフェッチに比較されたとき、プリフェッチフィル
タ38はメモリアクセスの数を著しく低減している。そ
れ故、メモリアクセスの数を低減することによって、プ
リフェッチフィルタ38は電力消費を低減している。
の命令を先取りする前に、キャッシュミスが生じた時、
プリフェッチフィルタ38がプリフェッチキャッシュ3
2と一緒に使用され、アドレスを通過させている。それ
故、プリフェッチフィルタ38はL1キャッシュと外部
メモリとからプリフェッチの数を低減している。他の実
施の形態では、プリフェッチフィルタが使用されず、命
令がキャッシュミス毎に先取りされている。ミス処理毎
にプリフェッチに比較されたとき、プリフェッチフィル
タ38はメモリアクセスの数を著しく低減している。そ
れ故、メモリアクセスの数を低減することによって、プ
リフェッチフィルタ38は電力消費を低減している。
【0024】ダイナミック補助キャッシュ制御装置40
は補助キャッシュ22を制御し、プリフェッチキャッシ
ュ34とビクティムキャッシュ32との間で補助キャッ
シュ22のキャッシュラインをダイナミックに割り当て
ている。一つの実施の形態では、コンパイル時にアプリ
ケーションプログラムがプリフェッチキャッシュ34を
ビクティムキャッシュ32にダイナミックに割り当てて
いる。別の実施の形態では、プロセッサがアプリケーシ
ョンプログラムを実行した時、プリフェッチキャッシュ
34が実行時間でビクティムキャッシュ32にダイナミ
ックに割り当てられている。ダイナミックな割り当て
が、公知の構成情報を含んだ特殊レジスタによって制御
されている。この場合には、その割り当てが特殊レジス
ト内の1又は2以上のビットによって制御されている。
命令は特殊レジスタへの書き込みによって構成情報を準
備している。その上、通常、命令はただ一つ(uniq
ue)であろう。
は補助キャッシュ22を制御し、プリフェッチキャッシ
ュ34とビクティムキャッシュ32との間で補助キャッ
シュ22のキャッシュラインをダイナミックに割り当て
ている。一つの実施の形態では、コンパイル時にアプリ
ケーションプログラムがプリフェッチキャッシュ34を
ビクティムキャッシュ32にダイナミックに割り当てて
いる。別の実施の形態では、プロセッサがアプリケーシ
ョンプログラムを実行した時、プリフェッチキャッシュ
34が実行時間でビクティムキャッシュ32にダイナミ
ックに割り当てられている。ダイナミックな割り当て
が、公知の構成情報を含んだ特殊レジスタによって制御
されている。この場合には、その割り当てが特殊レジス
ト内の1又は2以上のビットによって制御されている。
命令は特殊レジスタへの書き込みによって構成情報を準
備している。その上、通常、命令はただ一つ(uniq
ue)であろう。
【0025】他の実施の形態では、ダイナミック補助キ
ャッシュ制御装置40は使用されていない。プリフェッ
チキャッシュ34はハードウェアに組み込まれ、ビクテ
ィムキャッシュ32に割り当てられない。
ャッシュ制御装置40は使用されていない。プリフェッ
チキャッシュ34はハードウェアに組み込まれ、ビクテ
ィムキャッシュ32に割り当てられない。
【0026】図4は、本発明のキャッシュシステム12
におけるアドレスとデータ経路とを示し、キャッシュ制
御ブロック42とダイナミック補助キャッシュ制御装置
40とを含んだ制御論理の一部分を備えている。実行ユ
ニット14はプログラムカウンタ44を有している。プ
ログラムカウンタ44は検索されるべき次の命令のアド
レス、即ち、リクエスト命令のアドレスを格納し、アド
レスバス15上に該アドレスを出力している。
におけるアドレスとデータ経路とを示し、キャッシュ制
御ブロック42とダイナミック補助キャッシュ制御装置
40とを含んだ制御論理の一部分を備えている。実行ユ
ニット14はプログラムカウンタ44を有している。プ
ログラムカウンタ44は検索されるべき次の命令のアド
レス、即ち、リクエスト命令のアドレスを格納し、アド
レスバス15上に該アドレスを出力している。
【0027】L1キャッシュ18はデータバス19に繋
がり、外部メモリから命令を受け取っている。この実施
の形態では、L1キャッシュは、32バイトのキャッシ
ュライン18a,18b,18cを備えると共に、ダイ
レクトマップ型の32Kバイトのキャッシュであり、2
サイクルのアクセス待ち時間を有している。L1キャッ
シュ18の各キャッシュライン18a,18b,18c
はタグと一組の命令とを格納している。一つの実施の形
態では、タグはキャッシュライン内に格納された第1バ
イトのアドレスである。キャッシュラインが32バイト
を格納しているので、アドレスにおいてあまり重要でな
い5ビット(ビット4:0)がタグ内に格納されていな
い。ダイレクトマップ型キャッシュ内では、キャッシュ
ラインの位置がアドレスの関数であるから、タグのサイ
ズが更に低減されている。特に、L1キャッシュ18が
32Kバイトを格納し、各キャッシュラインが幅32バ
イトであるから、L1キャッシュ18が1024のキャ
ッシュラインを格納し、該キャッシュラインが210に等
しく、10ビットによって表示されている。それ故、タ
グ内にはアドレスの10ビットを格納する必要がない。
図4で示されるように、アドレスビット(14:5)は
マルチプレクサ52に入力され、適切なキャッシュライ
ン内で命令と最も重要なアドレスビット(31:15)
とを格納している。
がり、外部メモリから命令を受け取っている。この実施
の形態では、L1キャッシュは、32バイトのキャッシ
ュライン18a,18b,18cを備えると共に、ダイ
レクトマップ型の32Kバイトのキャッシュであり、2
サイクルのアクセス待ち時間を有している。L1キャッ
シュ18の各キャッシュライン18a,18b,18c
はタグと一組の命令とを格納している。一つの実施の形
態では、タグはキャッシュライン内に格納された第1バ
イトのアドレスである。キャッシュラインが32バイト
を格納しているので、アドレスにおいてあまり重要でな
い5ビット(ビット4:0)がタグ内に格納されていな
い。ダイレクトマップ型キャッシュ内では、キャッシュ
ラインの位置がアドレスの関数であるから、タグのサイ
ズが更に低減されている。特に、L1キャッシュ18が
32Kバイトを格納し、各キャッシュラインが幅32バ
イトであるから、L1キャッシュ18が1024のキャ
ッシュラインを格納し、該キャッシュラインが210に等
しく、10ビットによって表示されている。それ故、タ
グ内にはアドレスの10ビットを格納する必要がない。
図4で示されるように、アドレスビット(14:5)は
マルチプレクサ52に入力され、適切なキャッシュライ
ン内で命令と最も重要なアドレスビット(31:15)
とを格納している。
【0028】比較器54は、プログラムカウンタ44に
よって供給されたリクエストアドレスの一部分を、各キ
ャッシュライン内に格納されたタグと比較している。リ
クエストアドレスの一部分がタグの一部分と同じである
ならば、比較器54は、L1ヒットと呼ばれる信号をキ
ャッシュ制御ブロック42へ出力し、L1キャッシュ1
8内でヒットが生じたことを示している。キャッシュ制
御ブロック42によってもたらされたキャッシュライン
は、リクエスト命令を格納し、L1キャッシュ18から
L0キャッシュ20までL1キャッシュデータ経路21
とマルチプレクサ26とを経由して転送されている。そ
れから、キャッシュ制御ブロック42は、L0キャッシ
ュ20から実行ユニット14内のパイプラインまでマル
チプレクサ30を経由してリクエスト命令を転送してい
る。
よって供給されたリクエストアドレスの一部分を、各キ
ャッシュライン内に格納されたタグと比較している。リ
クエストアドレスの一部分がタグの一部分と同じである
ならば、比較器54は、L1ヒットと呼ばれる信号をキ
ャッシュ制御ブロック42へ出力し、L1キャッシュ1
8内でヒットが生じたことを示している。キャッシュ制
御ブロック42によってもたらされたキャッシュライン
は、リクエスト命令を格納し、L1キャッシュ18から
L0キャッシュ20までL1キャッシュデータ経路21
とマルチプレクサ26とを経由して転送されている。そ
れから、キャッシュ制御ブロック42は、L0キャッシ
ュ20から実行ユニット14内のパイプラインまでマル
チプレクサ30を経由してリクエスト命令を転送してい
る。
【0029】本実施の形態では、L0キャッシュ20
は、32バイトのキャッシュラインを備えると共に、ダ
イレクトマップ型の512バイトのキャッシュであり、
それ故に、16のキャッシュラインを有している。その
上、L0キャッシュ20は各キャッシュライン上にタグ
と一組の命令とを格納している。L0キャッシュ20が
ダイレクトマップ型であるから、マルチプレクサ56は
アドレスビット(8:5)を使用し、16のキャッシュ
ラインのうち1つの内部に命令又はデータを格納してい
る。L0キャッシュ20用のタグはアドレスの31ビッ
トから39ビットまで格納している。
は、32バイトのキャッシュラインを備えると共に、ダ
イレクトマップ型の512バイトのキャッシュであり、
それ故に、16のキャッシュラインを有している。その
上、L0キャッシュ20は各キャッシュライン上にタグ
と一組の命令とを格納している。L0キャッシュ20が
ダイレクトマップ型であるから、マルチプレクサ56は
アドレスビット(8:5)を使用し、16のキャッシュ
ラインのうち1つの内部に命令又はデータを格納してい
る。L0キャッシュ20用のタグはアドレスの31ビッ
トから39ビットまで格納している。
【0030】比較器58は、リクエストアドレス(ビッ
ト(31:9))の一部分を、L0キャッシュ20内に
格納されたタグと比較している。リクエストアドレスの
一部分がL0キャッシュ20内に格納されたタグの一部
分と同じであるならば、比較器58は、L0ヒットと呼
ばれる信号をキャッシュ制御ブロック42へ出力し、ヒ
ットがL0キャッシュ20内で生じたことを示してい
る。L0ヒット信号の応答では、キャッシュ制御ブロッ
ク42がリクエストアドレスで命令をもたらし、L0キ
ャッシュ20から実行ユニット14のパイプラインまで
マルチプレクサ30を経由して出力されている。
ト(31:9))の一部分を、L0キャッシュ20内に
格納されたタグと比較している。リクエストアドレスの
一部分がL0キャッシュ20内に格納されたタグの一部
分と同じであるならば、比較器58は、L0ヒットと呼
ばれる信号をキャッシュ制御ブロック42へ出力し、ヒ
ットがL0キャッシュ20内で生じたことを示してい
る。L0ヒット信号の応答では、キャッシュ制御ブロッ
ク42がリクエストアドレスで命令をもたらし、L0キ
ャッシュ20から実行ユニット14のパイプラインまで
マルチプレクサ30を経由して出力されている。
【0031】補助キャッシュ22は、32バイトのキャ
ッシュラインを備えると共に、フルアソシアティブ型の
128バイトのキャッシュであり、それ故に4つのキャ
ッシュラインを有している。補助キャッシュ22は各キ
ャッシュライン上にタグと一組の命令とを格納してい
る。補助キャッシュ22は3つのビクティムキャッシュ
ライン32a,32b,32cと1つのプリフェッチキ
ャッシュライン34aとを有している。ビクティムキャ
ッシュラインはビクティムキャッシュ32の一部分であ
る。プリフェッチキャッシュライン34aはプリフェッ
チキャッシュ34の一部分である。他の実施の形態で
は、プリフェッチキャッシュ34が1つ以上のプリフェ
ッチキャッシュラインを有している。上述のように、図
3に関して、プリフェッチキャッシュライン34aをビ
クティムキャッシュラインとして指定し、ビクティムキ
ャッシュ32内に含ませることができる。マルチプレク
サ28は、ビクティムキャッシュ32内に格納したL0
キャッシュ20からのビクティムキャッシュラインと、
プリフェッチキャッシュ34内に格納されたL1キャッ
シュ18からのプリフェッチキャッシュラインとを供給
している。
ッシュラインを備えると共に、フルアソシアティブ型の
128バイトのキャッシュであり、それ故に4つのキャ
ッシュラインを有している。補助キャッシュ22は各キ
ャッシュライン上にタグと一組の命令とを格納してい
る。補助キャッシュ22は3つのビクティムキャッシュ
ライン32a,32b,32cと1つのプリフェッチキ
ャッシュライン34aとを有している。ビクティムキャ
ッシュラインはビクティムキャッシュ32の一部分であ
る。プリフェッチキャッシュライン34aはプリフェッ
チキャッシュ34の一部分である。他の実施の形態で
は、プリフェッチキャッシュ34が1つ以上のプリフェ
ッチキャッシュラインを有している。上述のように、図
3に関して、プリフェッチキャッシュライン34aをビ
クティムキャッシュラインとして指定し、ビクティムキ
ャッシュ32内に含ませることができる。マルチプレク
サ28は、ビクティムキャッシュ32内に格納したL0
キャッシュ20からのビクティムキャッシュラインと、
プリフェッチキャッシュ34内に格納されたL1キャッ
シュ18からのプリフェッチキャッシュラインとを供給
している。
【0032】マルチプレクサ62は、L0キャッシュ2
0のビクティムキャッシュラインからビクティムキャッ
シュ32の適切なキャッシュラインへタグを供給し、ま
たアドレスバス15からプリフェッチキャッシュ34へ
タグを供給している。なぜならば、L0キャッシュのタ
グが31:9のビットを格納し、補助キャッシュのタグ
が31:5のビットを格納したから、L0キャッシュ2
0内の論理回路が8:5のビットを再構成し、L0キャ
ッシュ20がマルチプレクサ62へ31:5のビットを
供給し、ビクティムキャッシュ32における適切なキャ
ッシュラインのタグ内に格納している。
0のビクティムキャッシュラインからビクティムキャッ
シュ32の適切なキャッシュラインへタグを供給し、ま
たアドレスバス15からプリフェッチキャッシュ34へ
タグを供給している。なぜならば、L0キャッシュのタ
グが31:9のビットを格納し、補助キャッシュのタグ
が31:5のビットを格納したから、L0キャッシュ2
0内の論理回路が8:5のビットを再構成し、L0キャ
ッシュ20がマルチプレクサ62へ31:5のビットを
供給し、ビクティムキャッシュ32における適切なキャ
ッシュラインのタグ内に格納している。
【0033】キャッシュラインがL0キャッシュ20又
はL1キャッシュ18から補助キャッシュ22へ転送さ
れた時、転送命令のアドレスがプログラムカウンタ44
によってアドレスバス15へ供給されている。そのアド
レスの31:5のビットがマルチプレクサ62を経由し
てビクティムキャッシュ32又はプリフェッチキャッシ
ュ34内で転送キャッシュラインのタグとして格納され
ている。
はL1キャッシュ18から補助キャッシュ22へ転送さ
れた時、転送命令のアドレスがプログラムカウンタ44
によってアドレスバス15へ供給されている。そのアド
レスの31:5のビットがマルチプレクサ62を経由し
てビクティムキャッシュ32又はプリフェッチキャッシ
ュ34内で転送キャッシュラインのタグとして格納され
ている。
【0034】一組の比較器72,74,76,78が、
補助キャッシュ22の各キャッシュライン内に格納され
たタグを、プログラムカウンタ44によって出力された
リクエストアドレスと比較している。もしタグがリクエ
ストアドレスの対応部分と一致したならば、比較器7
2,74,76,78が高電圧レベルを出力し、補助キ
ャッシュ22の該キャッシュライン内でヒットが生じた
ことを示している。比較器72,74,76,78の出
力はORゲート80へ供給され、キャッシュ制御ブロッ
ク42へ供給されたビクティムキャッシュ32内でヒッ
トを示すビクティムヒット信号を発生させる。
補助キャッシュ22の各キャッシュライン内に格納され
たタグを、プログラムカウンタ44によって出力された
リクエストアドレスと比較している。もしタグがリクエ
ストアドレスの対応部分と一致したならば、比較器7
2,74,76,78が高電圧レベルを出力し、補助キ
ャッシュ22の該キャッシュライン内でヒットが生じた
ことを示している。比較器72,74,76,78の出
力はORゲート80へ供給され、キャッシュ制御ブロッ
ク42へ供給されたビクティムキャッシュ32内でヒッ
トを示すビクティムヒット信号を発生させる。
【0035】プリフェッチキャッシュライン34aのタ
グは比較器78に繋がっている。プリフェッチキャッシ
ュライン34aがビクティムキャッシュ32のキャッシ
ュラインとして使用された時、ダイナミック補助キャッ
シュ制御装置40が、高電圧レベルを備えたディスエー
ブルプリフェッチ信号を発生させている。ディスエーブ
ルプリフェッチ信号が、低レベルであった時、インバー
タ82へ供給され、高レベルを備えたイネーブルプリフ
ェッチ信号を発生させている。要するに、プリフェッチ
キャッシュ信号が命令を先取りすために使用された時、
イネーブルプリフェッチ信号が高電圧レベルを有してい
る。イネーブルプリフェッチ信号が高電圧レベルであ
り、プリフェッチキャッシュ34がその電圧レベルに一
致したことを比較器78が示した時、ANDゲート84
がプリフェッチヒット信号を発生させる。プリフェッチ
ヒット信号がキャッシュ制御ブロック42に供給されて
いる。プリフェッチキャッシュラインがビクティムキャ
ッシュの一部分として使用された時、ANDゲートが割
り込みを可能とさせる。イネーブルプリフェッチ信号が
低電圧レベルであり、プリフェッチキャッシュ34がそ
の電圧レベルに一致したことを比較器78が示した時、
ANDゲート86が、ORゲート80に供給されたビク
ティムキャッシュラインヒット信号を発生させる。
グは比較器78に繋がっている。プリフェッチキャッシ
ュライン34aがビクティムキャッシュ32のキャッシ
ュラインとして使用された時、ダイナミック補助キャッ
シュ制御装置40が、高電圧レベルを備えたディスエー
ブルプリフェッチ信号を発生させている。ディスエーブ
ルプリフェッチ信号が、低レベルであった時、インバー
タ82へ供給され、高レベルを備えたイネーブルプリフ
ェッチ信号を発生させている。要するに、プリフェッチ
キャッシュ信号が命令を先取りすために使用された時、
イネーブルプリフェッチ信号が高電圧レベルを有してい
る。イネーブルプリフェッチ信号が高電圧レベルであ
り、プリフェッチキャッシュ34がその電圧レベルに一
致したことを比較器78が示した時、ANDゲート84
がプリフェッチヒット信号を発生させる。プリフェッチ
ヒット信号がキャッシュ制御ブロック42に供給されて
いる。プリフェッチキャッシュラインがビクティムキャ
ッシュの一部分として使用された時、ANDゲートが割
り込みを可能とさせる。イネーブルプリフェッチ信号が
低電圧レベルであり、プリフェッチキャッシュ34がそ
の電圧レベルに一致したことを比較器78が示した時、
ANDゲート86が、ORゲート80に供給されたビク
ティムキャッシュラインヒット信号を発生させる。
【0036】ビクティムヒット信号又はプリフェッチヒ
ット信号の何れかが高電圧レベルであった時、ORゲー
ト88が補助ヒット信号を発生させ、補助キャッシュ内
でヒットが生じたことを示している。
ット信号の何れかが高電圧レベルであった時、ORゲー
ト88が補助ヒット信号を発生させ、補助キャッシュ内
でヒットが生じたことを示している。
【0037】補助ヒット信号又はL0ヒット信号の何れ
かが高電圧レベルであった時、別のORゲート90が1
サイクルアクセス信号を発生させ、それによって命令が
有効であり、実行ユニット14内のパイプラインが通じ
ている。
かが高電圧レベルであった時、別のORゲート90が1
サイクルアクセス信号を発生させ、それによって命令が
有効であり、実行ユニット14内のパイプラインが通じ
ている。
【0038】ビクティムフィルタ36はFIFOのよう
なメモリ102を有している。そのメモリ102はエン
トリ102a,102b,102c内に3つのアドレス
を格納している。エントリ102a,102b,102
cは最後の3つのミスアドレスを格納している。各エン
トリ102a,102b,102cはそれぞれ比較器1
04,106,108へ入力されている。その上、プロ
グラムカウンタ44によって出力されたリクエストアド
レスは比較器104,106,108へ供給されてい
る。エントリ102a,102b,102c内に格納さ
れたアドレスの何れかがリクエストアドレスに一致した
ならば、それに対応する比較器が高電圧レベルを出力す
る。比較器104,106,108の出力がORゲート
110へ出力され、補助キャッシュへのL0ビクティム
の転送信号を発生させる。該転送信号の応答では、キャ
ッシュ制御ブロック42がキャッシュラインをもたらし
ている。そのキャッシュラインはL0キャッシュ20の
一致アドレスで命令を格納し、L0キャッシュ20から
補助キャッシュ22のビクティムキャッシュ24へ転送
されている。
なメモリ102を有している。そのメモリ102はエン
トリ102a,102b,102c内に3つのアドレス
を格納している。エントリ102a,102b,102
cは最後の3つのミスアドレスを格納している。各エン
トリ102a,102b,102cはそれぞれ比較器1
04,106,108へ入力されている。その上、プロ
グラムカウンタ44によって出力されたリクエストアド
レスは比較器104,106,108へ供給されてい
る。エントリ102a,102b,102c内に格納さ
れたアドレスの何れかがリクエストアドレスに一致した
ならば、それに対応する比較器が高電圧レベルを出力す
る。比較器104,106,108の出力がORゲート
110へ出力され、補助キャッシュへのL0ビクティム
の転送信号を発生させる。該転送信号の応答では、キャ
ッシュ制御ブロック42がキャッシュラインをもたらし
ている。そのキャッシュラインはL0キャッシュ20の
一致アドレスで命令を格納し、L0キャッシュ20から
補助キャッシュ22のビクティムキャッシュ24へ転送
されている。
【0039】プリフェッチフィルタ38はインクリメン
タ112、マルチプレクサ114、及びメモリ116を
有している。インクリメンタ112は、32ビットに対
して4ビットのように、予め設定された総ビット数まで
プログラムカウンタ44によって出力されたアドレスを
増大させる。メモリ116は先取りすべき次のアドレス
を格納し、インクリメンタ112から読み出されてい
る。メモリ116内に格納されたアドレスビットは補助
キャッシュ22のタグ内に格納されたアドレスビットに
相当している。比較器118が、プリフェッチフィルタ
38のメモリ116内に格納されたアドレスを、リクエ
ストアドレスと比較し、もし両者が一致した場合には高
電圧レベルを出力する。比較器118の出力は補助プリ
フェッチへのL1のリクエスト信号である。該リクエス
ト信号によってキャッシュ制御ブロック42が信号を発
生させ、L1データ経路21上のL1キャッシュ18か
らプリフェッチキャッシュ23までマルチプレクサ62
を経由してキャッシュラインを転送している。
タ112、マルチプレクサ114、及びメモリ116を
有している。インクリメンタ112は、32ビットに対
して4ビットのように、予め設定された総ビット数まで
プログラムカウンタ44によって出力されたアドレスを
増大させる。メモリ116は先取りすべき次のアドレス
を格納し、インクリメンタ112から読み出されてい
る。メモリ116内に格納されたアドレスビットは補助
キャッシュ22のタグ内に格納されたアドレスビットに
相当している。比較器118が、プリフェッチフィルタ
38のメモリ116内に格納されたアドレスを、リクエ
ストアドレスと比較し、もし両者が一致した場合には高
電圧レベルを出力する。比較器118の出力は補助プリ
フェッチへのL1のリクエスト信号である。該リクエス
ト信号によってキャッシュ制御ブロック42が信号を発
生させ、L1データ経路21上のL1キャッシュ18か
らプリフェッチキャッシュ23までマルチプレクサ62
を経由してキャッシュラインを転送している。
【0040】プリフェッチキャッシュラインがダイナミ
ックに割り当てられた場合には、プリフェッチフィルタ
38がビクティムフィルタ36から分離している。更
に、プリフェッチキャッシュ34がビクティムキャッシ
ュ32にダイナミックに割り当てられたとしても、プリ
フェッチフィルタ38がビクティムフィルタ36にダイ
ナミックに割り当てられない。
ックに割り当てられた場合には、プリフェッチフィルタ
38がビクティムフィルタ36から分離している。更
に、プリフェッチキャッシュ34がビクティムキャッシ
ュ32にダイナミックに割り当てられたとしても、プリ
フェッチフィルタ38がビクティムフィルタ36にダイ
ナミックに割り当てられない。
【0041】キャッシュ制御ブロック42は、L1ヒッ
ト信号、補助キャッシュへのL0ビクティムの転送信
号、補助プリフェッチへのL1のリクエスト信号、プリ
フェッチヒット信号、ビクティムヒット信号、補助ヒッ
ト信号、及び1サイクルアクセス信号を受信し、制御信
号を発生させる。制御信号は、ビクティムフィルタ制御
信号、L1キャッシュ制御信号、プリフェッチフィルタ
制御信号、補助キャッシュ制御信号、及びL0キャッシ
ュ制御信号を含んでいる。
ト信号、補助キャッシュへのL0ビクティムの転送信
号、補助プリフェッチへのL1のリクエスト信号、プリ
フェッチヒット信号、ビクティムヒット信号、補助ヒッ
ト信号、及び1サイクルアクセス信号を受信し、制御信
号を発生させる。制御信号は、ビクティムフィルタ制御
信号、L1キャッシュ制御信号、プリフェッチフィルタ
制御信号、補助キャッシュ制御信号、及びL0キャッシ
ュ制御信号を含んでいる。
【0042】本発明の顕著な特徴は、補助キャッシュが
L0キャッシュ20からの移動キャッシュライン(ビク
ティム)と、L1キャッシュライン18からのプリフェ
ッチキャッシュラインとの両方を格納している。要する
に、各サイクル上で、プログラムカウンタがリクエスト
アドレスをアドレスバス15に供給している。L1キャ
ッシュ18,L0キャッシュ20、補助キャッシュ2
4、ビクティムフィルタ36,及びプリフェッチフィル
タ38が、それぞれ格納されたタグ及びアドレスを、リ
クエストアドレスと同時に比較する。キャッシュヒット
がL0キャッシュ20又は補助キャッシュ22のビクテ
ィムキャッシュラインの何れかを検知したならば、キャ
ッシュライン内に格納されたリクエスト命令又はデータ
が単一サイクル内でプロセッサの実行ユニットに供給さ
れ、命令又はデータがL1キャッシュ20へ転送され
る。L0キャッシュ20への転送後に、補助キャッシュ
における割り当てプリフェッチキャッシュラインが弱々
しく示され、プリフェッチキャッシュラインが付加的な
プリフェッチデータを受け取ることができる。リクエス
トアドレスがL0キャッシュ20及び補助キャッシュ2
2内でミスしたが、L1キャッシュ18内でヒットした
ならば、L1キャッシュ18に対して2サイクルのアク
セス時間と仮定して、命令が次のクロックサイクルでL
1キャッシュ18から読み込まれている間、パイプライ
ンが行き詰まる。
L0キャッシュ20からの移動キャッシュライン(ビク
ティム)と、L1キャッシュライン18からのプリフェ
ッチキャッシュラインとの両方を格納している。要する
に、各サイクル上で、プログラムカウンタがリクエスト
アドレスをアドレスバス15に供給している。L1キャ
ッシュ18,L0キャッシュ20、補助キャッシュ2
4、ビクティムフィルタ36,及びプリフェッチフィル
タ38が、それぞれ格納されたタグ及びアドレスを、リ
クエストアドレスと同時に比較する。キャッシュヒット
がL0キャッシュ20又は補助キャッシュ22のビクテ
ィムキャッシュラインの何れかを検知したならば、キャ
ッシュライン内に格納されたリクエスト命令又はデータ
が単一サイクル内でプロセッサの実行ユニットに供給さ
れ、命令又はデータがL1キャッシュ20へ転送され
る。L0キャッシュ20への転送後に、補助キャッシュ
における割り当てプリフェッチキャッシュラインが弱々
しく示され、プリフェッチキャッシュラインが付加的な
プリフェッチデータを受け取ることができる。リクエス
トアドレスがL0キャッシュ20及び補助キャッシュ2
2内でミスしたが、L1キャッシュ18内でヒットした
ならば、L1キャッシュ18に対して2サイクルのアク
セス時間と仮定して、命令が次のクロックサイクルでL
1キャッシュ18から読み込まれている間、パイプライ
ンが行き詰まる。
【0043】更に、ビクティムフィルタ36内での一致
に基づいて、L0キャッシュ20がL1キャッシュ18
から命令を受け取る。補助キャッシュ22がL0キャッ
シュ20から新しいビクティムを受け取り、ビクティム
キャッシュ32のうちで最近最も使用されなかったキャ
ッシュラインを捨て去っている。ビクティムフィルタ3
6はL0キャッシュ20とL1キャッシュ18内でミス
した一組のアドレスを格納している。ミスをした際に、
もしL0キャッシュ20のうち同じキャッシュラインが
以前にミスをしなかったならば、ビクティムキャッシュ
ラインがビクティムキャッシュ32内に格納されず、そ
のアドレスがビクティムフィルタ36内に格納される。
この方法で、ビクティムキャッシュへの書き込み回数を
低減することによって、電力消費が低減される。
に基づいて、L0キャッシュ20がL1キャッシュ18
から命令を受け取る。補助キャッシュ22がL0キャッ
シュ20から新しいビクティムを受け取り、ビクティム
キャッシュ32のうちで最近最も使用されなかったキャ
ッシュラインを捨て去っている。ビクティムフィルタ3
6はL0キャッシュ20とL1キャッシュ18内でミス
した一組のアドレスを格納している。ミスをした際に、
もしL0キャッシュ20のうち同じキャッシュラインが
以前にミスをしなかったならば、ビクティムキャッシュ
ラインがビクティムキャッシュ32内に格納されず、そ
のアドレスがビクティムフィルタ36内に格納される。
この方法で、ビクティムキャッシュへの書き込み回数を
低減することによって、電力消費が低減される。
【0044】図5は本発明のキャッシュシステムを使用
した方法の一つの実施の形態を示すフローチャートであ
る。ステップ152では、L1キャッシュ、L0キャッ
シュ、ビクティムキャッシュ、プリフェッチキャッシ
ュ、ビクティムフィルタ、及びプリフェッチフィルタが
与えられている。L1キャッシュ、L0キャッシュ、ビ
クティムキャッシュ、及びプリフェッチキャッシュがキ
ャッシュラインを格納している。各キャッシュライン内
では、アドレスの少なくとも一部分がL1タグ、L0タ
グ、ビクティムキャッシュタグ、及びプリフェッチキャ
ッシュタグとして格納している。ビクティムフィルタと
プリフェッチフィルタとはビクティムフィルタアドレス
とプリフェッチフィルタアドレスとをそれぞれ格納して
いる。ビクティムフィルタは予め設定された個数のビク
ティムフィルタアドレスを格納している。該ビクティム
フィルタアドレスはL0キャッシュのキャッシュライン
の数と、キャッシュ書き込み回数との関数である。L0
キャッシュとビクティムキャッシュとへのキャッシュ書
き込み回数が、ビクティムキャッシュを使用せずにL0
キャッシュの使用に関して低下される。
した方法の一つの実施の形態を示すフローチャートであ
る。ステップ152では、L1キャッシュ、L0キャッ
シュ、ビクティムキャッシュ、プリフェッチキャッシ
ュ、ビクティムフィルタ、及びプリフェッチフィルタが
与えられている。L1キャッシュ、L0キャッシュ、ビ
クティムキャッシュ、及びプリフェッチキャッシュがキ
ャッシュラインを格納している。各キャッシュライン内
では、アドレスの少なくとも一部分がL1タグ、L0タ
グ、ビクティムキャッシュタグ、及びプリフェッチキャ
ッシュタグとして格納している。ビクティムフィルタと
プリフェッチフィルタとはビクティムフィルタアドレス
とプリフェッチフィルタアドレスとをそれぞれ格納して
いる。ビクティムフィルタは予め設定された個数のビク
ティムフィルタアドレスを格納している。該ビクティム
フィルタアドレスはL0キャッシュのキャッシュライン
の数と、キャッシュ書き込み回数との関数である。L0
キャッシュとビクティムキャッシュとへのキャッシュ書
き込み回数が、ビクティムキャッシュを使用せずにL0
キャッシュの使用に関して低下される。
【0045】ステップ154では、リクエストアドレス
がアドレスバスに供給され、リクエスト命令を検索す
る。ステップ156では、リクエストアドレスが、L1
タグ、L0タグ、ビクティムタグ、プリフェッチタグ、
ビクティムフィルタアドレス、及びプリフェッチフィル
タアドレスを同時に比較する。ステップ158では、も
しキャッシュヒットがL0キャッシュのキャッシュライ
ン内で検知されたならば、キャッシュライン内に格納さ
れたリクエスト命令が実行ユニットに供給される。
がアドレスバスに供給され、リクエスト命令を検索す
る。ステップ156では、リクエストアドレスが、L1
タグ、L0タグ、ビクティムタグ、プリフェッチタグ、
ビクティムフィルタアドレス、及びプリフェッチフィル
タアドレスを同時に比較する。ステップ158では、も
しキャッシュヒットがL0キャッシュのキャッシュライ
ン内で検知されたならば、キャッシュライン内に格納さ
れたリクエスト命令が実行ユニットに供給される。
【0046】ステップ160では、キャッシュヒットが
ビクティムキャッシュのキャッシュライン内で検知され
たならば、ヒットを発生させたキャッシュライン内で格
納されたリクエスト命令が実行ユニットに供給される。
ビクティムキャッシュからリクエスト命令を格納したキ
ャッシュラインがL0キャッシュへ転送されない。その
代わりに、キャッシュラインはビクティムキャッシュ内
にとどまっている。プリフェッチキャッシュラインだけ
が補助キャッシュからL0キャッシュまで転送されてい
る。
ビクティムキャッシュのキャッシュライン内で検知され
たならば、ヒットを発生させたキャッシュライン内で格
納されたリクエスト命令が実行ユニットに供給される。
ビクティムキャッシュからリクエスト命令を格納したキ
ャッシュラインがL0キャッシュへ転送されない。その
代わりに、キャッシュラインはビクティムキャッシュ内
にとどまっている。プリフェッチキャッシュラインだけ
が補助キャッシュからL0キャッシュまで転送されてい
る。
【0047】ステップ162では、もしリクエストアド
レスがL0キャッシュ及び補助キャッシュ内でミスした
が、L1キャッシュ内でヒットしたならば、L1キャッ
シュ内のリクエスト命令を格納した各キャッシュライン
が確認される。その上、確認されたキャッシュラインに
取って代わるように、L0キャッシュ内のビクティムキ
ャッシュラインが確認される。リクエストアドレスがビ
クティムフィルタ内で格納されたアドレスの何れかに一
致したならば、取り決めステップにおけるビクティムフ
ィルタのリクエストアドレスに一致したことに基づくビ
クティムキャッシュ内にはビクティムキャッシュライン
が格納される。ビクティムキャッシュが、最近最も使用
されていないビクティムキャッシュラインを新しいビク
ティムキャッシュラインに取って代わる。L0キャッシ
ュ内のビクティムキャッシュラインが、確認されたキャ
ッシュラインに取って代えられている。リクエストアド
レスがビクティムフィルタ内に格納され、リクエスト命
令が実行ユニットに供給されている。
レスがL0キャッシュ及び補助キャッシュ内でミスした
が、L1キャッシュ内でヒットしたならば、L1キャッ
シュ内のリクエスト命令を格納した各キャッシュライン
が確認される。その上、確認されたキャッシュラインに
取って代わるように、L0キャッシュ内のビクティムキ
ャッシュラインが確認される。リクエストアドレスがビ
クティムフィルタ内で格納されたアドレスの何れかに一
致したならば、取り決めステップにおけるビクティムフ
ィルタのリクエストアドレスに一致したことに基づくビ
クティムキャッシュ内にはビクティムキャッシュライン
が格納される。ビクティムキャッシュが、最近最も使用
されていないビクティムキャッシュラインを新しいビク
ティムキャッシュラインに取って代わる。L0キャッシ
ュ内のビクティムキャッシュラインが、確認されたキャ
ッシュラインに取って代えられている。リクエストアド
レスがビクティムフィルタ内に格納され、リクエスト命
令が実行ユニットに供給されている。
【0048】ステップ164では、キャッシュラインを
先取りするために、リクエストアドレスを次の連続する
アドレスまで増大させることによって、プリフェッチア
ドレスが発生される。プリフェッチアドレスがプリフェ
ッチフィルタ内に格納されている。新しいリクエストア
ドレスが、プリフェッチフィルタ内に格納されたプリフ
ェッチアドレスに一致しなかった場合には、格納され
る。この方法では、連続する第1リクエストアドレスと
第2リクエストアドレスとをミスした後に、キャッシュ
ラインがL1キャッシュから、プリフェッチフィルタを
使ったプリフェッチキャッシュへ先取りされている。
先取りするために、リクエストアドレスを次の連続する
アドレスまで増大させることによって、プリフェッチア
ドレスが発生される。プリフェッチアドレスがプリフェ
ッチフィルタ内に格納されている。新しいリクエストア
ドレスが、プリフェッチフィルタ内に格納されたプリフ
ェッチアドレスに一致しなかった場合には、格納され
る。この方法では、連続する第1リクエストアドレスと
第2リクエストアドレスとをミスした後に、キャッシュ
ラインがL1キャッシュから、プリフェッチフィルタを
使ったプリフェッチキャッシュへ先取りされている。
【0049】ステップ166では、プリフェッチキャッ
シュはダイナミックに割り当てられてビクティムキャッ
シュの一部になり、ビクティムキャッシュ内に格納され
たキャッシュラインの数を増加させるが、プリフェッチ
フィルタはビクティムフィルタに割れ当てられていな
い。
シュはダイナミックに割り当てられてビクティムキャッ
シュの一部になり、ビクティムキャッシュ内に格納され
たキャッシュラインの数を増加させるが、プリフェッチ
フィルタはビクティムフィルタに割れ当てられていな
い。
【0050】通常、ビクティムキャッシュが少なくとも
最近使用された置換手法を実行し、最も頻繁に置換され
たキャッシュラインを保持している。更に、ビクティム
キャッシュのサイズを増大させることによって、パフォ
ーマンスの向上を達成できる。基本的には、増大したサ
イズで、ビクティムキャッシュが最も頻繁にアクセスさ
れたキャッシュラインのうちの多くを保持している。し
かしながら、ビクティムキャッシュがフルアソシアティ
ブ型であるから、ビクティムキャッシュのサイズを増大
することが、実行コストを増大させる。そのことは、埋
設プロセッサにおける一般的な設計制約と調和しない。
最近使用された置換手法を実行し、最も頻繁に置換され
たキャッシュラインを保持している。更に、ビクティム
キャッシュのサイズを増大させることによって、パフォ
ーマンスの向上を達成できる。基本的には、増大したサ
イズで、ビクティムキャッシュが最も頻繁にアクセスさ
れたキャッシュラインのうちの多くを保持している。し
かしながら、ビクティムキャッシュがフルアソシアティ
ブ型であるから、ビクティムキャッシュのサイズを増大
することが、実行コストを増大させる。そのことは、埋
設プロセッサにおける一般的な設計制約と調和しない。
【0051】一つの実施の形態では、ビクティムフィル
タが使用されず、ビクティムキャッシュが全ての置換キ
ャッシュラインを受け入れている。しかしながら、好ま
しい実施の形態では、ビクティムフィルタがビクティム
キャッシュ内に最も頻繁にアクセスされたキャッシュラ
インを格納している。ビクティムフィルタが最近のキャ
ッシュミスを監視し、L0キャッシュと補助キャッシュ
内で最近最もミスしたキャッシュラインのうち一組のタ
グを格納することによって、どのキャッシュラインを保
持し、置換するかを決定する。一つの実施の形態では、
ビクティムキャッシュフィルタがFIFOバッファを使
用し、そのアドレスを格納している。L0キャッシュ又
は補助キャッシュ内でミスが生じた時、ヒットがビクテ
ィムフィルタ内で検知された場合のみ、L0キャッシュ
から置換キャッシュライン(ビクティム)がビクティム
キャッシュ内に格納される。
タが使用されず、ビクティムキャッシュが全ての置換キ
ャッシュラインを受け入れている。しかしながら、好ま
しい実施の形態では、ビクティムフィルタがビクティム
キャッシュ内に最も頻繁にアクセスされたキャッシュラ
インを格納している。ビクティムフィルタが最近のキャ
ッシュミスを監視し、L0キャッシュと補助キャッシュ
内で最近最もミスしたキャッシュラインのうち一組のタ
グを格納することによって、どのキャッシュラインを保
持し、置換するかを決定する。一つの実施の形態では、
ビクティムキャッシュフィルタがFIFOバッファを使
用し、そのアドレスを格納している。L0キャッシュ又
は補助キャッシュ内でミスが生じた時、ヒットがビクテ
ィムフィルタ内で検知された場合のみ、L0キャッシュ
から置換キャッシュライン(ビクティム)がビクティム
キャッシュ内に格納される。
【0052】図6は、シミュレーションの結果からビク
ティムフィルタ内に格納されたアドレス数(x軸)に対
し、1サイクル当たりの命令(IPC)の平均数(y
軸)のグラフである。シミュレーションでは、全てのキ
ャッシュが32バイトのキャッシュラインを備えてい
る。L1キャッシュはダイレクトマップ型で、16Kバ
イト又は512のキャッシュラインを備えている。補助
キャッシュは4つのキャッシュラインを備えている。ビ
クティムフィルタアドレスの数は1から64まで変更さ
れ、ダイレクトマップ型L0キャッシュのサイズは12
8バイト(4つのキャッシュライン)から1024バイ
ト(32のキャッシュライン)まで変更されている。図
6、図7A、図7B、及び図8で与えられたシミュレー
ションの結果は、設定されたMIPS R3000プロ
セッサ命令から8つのSPEC92整数ベンチマークに
おけるトレースファイルを処理することによって、得ら
れる。
ティムフィルタ内に格納されたアドレス数(x軸)に対
し、1サイクル当たりの命令(IPC)の平均数(y
軸)のグラフである。シミュレーションでは、全てのキ
ャッシュが32バイトのキャッシュラインを備えてい
る。L1キャッシュはダイレクトマップ型で、16Kバ
イト又は512のキャッシュラインを備えている。補助
キャッシュは4つのキャッシュラインを備えている。ビ
クティムフィルタアドレスの数は1から64まで変更さ
れ、ダイレクトマップ型L0キャッシュのサイズは12
8バイト(4つのキャッシュライン)から1024バイ
ト(32のキャッシュライン)まで変更されている。図
6、図7A、図7B、及び図8で与えられたシミュレー
ションの結果は、設定されたMIPS R3000プロ
セッサ命令から8つのSPEC92整数ベンチマークに
おけるトレースファイルを処理することによって、得ら
れる。
【0053】シミュレーションでは、L0キャッシュと
補助キャッシュとが単一サイクル内にアクセスされ、L
1キャッシュが2クロックサイクル内にアクセスされて
いる。各メモリ基準に対し、アドレスとタグとの比較は
L1キャッシュ、L0キャッシュ、及び補助キャッシュ
に対して同時に実行されている。L1キャッシュが次の
クロックサイクル内でリクエスト命令又はデータを実行
ユニットに供給したので、同時のタグ比較はキャッシュ
の性能を向上させる。ヒットがL0キャッシュ又は補助
キャッシュ内で検知されたならば、シミュレーションに
よって仮定されることは、カラム線やセンス増幅器の操
作時のように相当の電力が消費される前に、L1キャッ
シュからの読み込みが停止されることである。シミュレ
ーションのモデルは各キャッシュに対して単一の読み書
きを使用している。それ故、補助キャッシュがL0キャ
ッシュからビクティムを読み込むのに忙しかったなら
ば、L1キャッシュから先取りすることが止まる。1サ
イクル当たりの命令(IPC)に対する公表数値は、ブ
ランチ罰則、ブランチ予測、データ依存、緩衝等のよう
な他の構成的な影響、又はデータフローの影響を含んで
いない。その上、外部メモリから命令とデータとを読み
出すことは16サイクルを必要とされている。それ故、
公表されたIPCの数値は、全システムの性能上におけ
る上方限界を与えている。シミュレーションに対し、L
0キャッシュのサイズは、32バイトから1024バイ
トまで、即ち1つのキャッシュラインから32のキャッ
シュラインまでそれぞれ変更される。しかしながら、別
の好ましい実施の形態では、電力効率に対し、L0キャ
ッシュのサイズにおける実際的な制限は256バイト又
は8つのキャッシュラインである。
補助キャッシュとが単一サイクル内にアクセスされ、L
1キャッシュが2クロックサイクル内にアクセスされて
いる。各メモリ基準に対し、アドレスとタグとの比較は
L1キャッシュ、L0キャッシュ、及び補助キャッシュ
に対して同時に実行されている。L1キャッシュが次の
クロックサイクル内でリクエスト命令又はデータを実行
ユニットに供給したので、同時のタグ比較はキャッシュ
の性能を向上させる。ヒットがL0キャッシュ又は補助
キャッシュ内で検知されたならば、シミュレーションに
よって仮定されることは、カラム線やセンス増幅器の操
作時のように相当の電力が消費される前に、L1キャッ
シュからの読み込みが停止されることである。シミュレ
ーションのモデルは各キャッシュに対して単一の読み書
きを使用している。それ故、補助キャッシュがL0キャ
ッシュからビクティムを読み込むのに忙しかったなら
ば、L1キャッシュから先取りすることが止まる。1サ
イクル当たりの命令(IPC)に対する公表数値は、ブ
ランチ罰則、ブランチ予測、データ依存、緩衝等のよう
な他の構成的な影響、又はデータフローの影響を含んで
いない。その上、外部メモリから命令とデータとを読み
出すことは16サイクルを必要とされている。それ故、
公表されたIPCの数値は、全システムの性能上におけ
る上方限界を与えている。シミュレーションに対し、L
0キャッシュのサイズは、32バイトから1024バイ
トまで、即ち1つのキャッシュラインから32のキャッ
シュラインまでそれぞれ変更される。しかしながら、別
の好ましい実施の形態では、電力効率に対し、L0キャ
ッシュのサイズにおける実際的な制限は256バイト又
は8つのキャッシュラインである。
【0054】好ましい手段では、L1キャッシュのサイ
ズは16Kバイトから32Kバイトまでの範囲であり、
L0キャッシュのサイズは128バイトから256バイ
トまでの範囲である。同様に、補助キャッシュ内でのキ
ャッシュラインの数が1つから6つまで変更されたなら
ば、実際には、補助キャッシュが4つ以下のキャッシュ
ラインを有する。
ズは16Kバイトから32Kバイトまでの範囲であり、
L0キャッシュのサイズは128バイトから256バイ
トまでの範囲である。同様に、補助キャッシュ内でのキ
ャッシュラインの数が1つから6つまで変更されたなら
ば、実際には、補助キャッシュが4つ以下のキャッシュ
ラインを有する。
【0055】実際には、図6は、1つのアドレスから6
つのアドレスまで格納したビクティムフィルタのサイズ
の結果と、ビクティムフィルタがなかった(「フィルタ
なし」と表示された)場合における結果とを示してい
る。フィルタなしの結果は、メモリへの読み書き回数に
おける上方限界を与えている。1サイクル当たりの命令
の平均回数は、ビクティムフィルタにおけるキャッシュ
ラインの数と実質的に独立している。しかしながら、2
56バイトのL0キャッシュに対し、3つのアドレスを
格納したビクティムフィルタは、フィルタなしキャッシ
ュラインの構成上、約1%まで性能を向上させた。
つのアドレスまで格納したビクティムフィルタのサイズ
の結果と、ビクティムフィルタがなかった(「フィルタ
なし」と表示された)場合における結果とを示してい
る。フィルタなしの結果は、メモリへの読み書き回数に
おける上方限界を与えている。1サイクル当たりの命令
の平均回数は、ビクティムフィルタにおけるキャッシュ
ラインの数と実質的に独立している。しかしながら、2
56バイトのL0キャッシュに対し、3つのアドレスを
格納したビクティムフィルタは、フィルタなしキャッシ
ュラインの構成上、約1%まで性能を向上させた。
【0056】もっと重要なことは、ビクティムフィルタ
内に格納されたキャッシュラインの数がメモリトラフィ
ック量に実質的に影響を与えていることである。電力消
費が、L1キャッシュ、L0キャッシュ、及び補助キャ
ッシュへの書き込み回数のように、L1キャッシュ、L
0キャッシュ、及び補助キャッシュ内のメモリアクティ
ビティ数と相互に関係している。大ざっぱな比較のため
に、L0キャッシュ又は補助キャッシュの何れかへ読み
出し又は書き込みすることは、L1キャッシュにアクセ
スするのに必要とされた電力の20%を要している。
内に格納されたキャッシュラインの数がメモリトラフィ
ック量に実質的に影響を与えていることである。電力消
費が、L1キャッシュ、L0キャッシュ、及び補助キャ
ッシュへの書き込み回数のように、L1キャッシュ、L
0キャッシュ、及び補助キャッシュ内のメモリアクティ
ビティ数と相互に関係している。大ざっぱな比較のため
に、L0キャッシュ又は補助キャッシュの何れかへ読み
出し又は書き込みすることは、L1キャッシュにアクセ
スするのに必要とされた電力の20%を要している。
【0057】図7A及び図7Bは、L0キャッシュの異
なるサイズに対してビクティムフィルタ内に格納された
アドレス数(x軸)と、L0キャッシュ及び補助キャッ
シュへの書き込み合計数(y軸)とに関するグラフであ
る。各L0キャッシュのサイズに対し、図7A及び図7
Bの書き込み合計数が、該L0キャッシュのサイズに対
して補助キャッシュを使用しなかった基本的なキャッシ
ュ構成に標準化されている。例えば、補助キャッシュを
備えて128バイトのサイズを有したL0キャッシュに
対する結果が、補助キャッシュを備えず128バイトの
サイズを有したL0キャッシュに対する結果に標準化さ
れている。補助キャッシュを備えて256バイトのサイ
ズを有したL0キャッシュに対する結果が、補助キャッ
シュを備えず256バイトのサイズを有したL0キャッ
シュに対する結果に標準化されている。
なるサイズに対してビクティムフィルタ内に格納された
アドレス数(x軸)と、L0キャッシュ及び補助キャッ
シュへの書き込み合計数(y軸)とに関するグラフであ
る。各L0キャッシュのサイズに対し、図7A及び図7
Bの書き込み合計数が、該L0キャッシュのサイズに対
して補助キャッシュを使用しなかった基本的なキャッシ
ュ構成に標準化されている。例えば、補助キャッシュを
備えて128バイトのサイズを有したL0キャッシュに
対する結果が、補助キャッシュを備えず128バイトの
サイズを有したL0キャッシュに対する結果に標準化さ
れている。補助キャッシュを備えて256バイトのサイ
ズを有したL0キャッシュに対する結果が、補助キャッ
シュを備えず256バイトのサイズを有したL0キャッ
シュに対する結果に標準化されている。
【0058】図7Aが示すように、補助キャッシュが少
なくなればなるほど、基本的構成に関して書き込みアク
ティビティ数が減少される。それ故、より少ないアドレ
スを格納することによって、ビクティムフィルタが非常
に制限され、補助キャッシュ内で最も頻繁に移動された
キャッシュラインだけ保持している。しかしながら、ビ
クティムフィルタ内に格納されたアドレス数が増加する
につれ、ビクティムフィルタの制限が少なくなり、メモ
リアクティビティ数が実質的に増加している。
なくなればなるほど、基本的構成に関して書き込みアク
ティビティ数が減少される。それ故、より少ないアドレ
スを格納することによって、ビクティムフィルタが非常
に制限され、補助キャッシュ内で最も頻繁に移動された
キャッシュラインだけ保持している。しかしながら、ビ
クティムフィルタ内に格納されたアドレス数が増加する
につれ、ビクティムフィルタの制限が少なくなり、メモ
リアクティビティ数が実質的に増加している。
【0059】図7Bは、更に詳細に、1から10までの
範囲に渡るビクティムフィルタのサイズに対する図7A
の結果を示している。1024バイト(32のキャッシ
ュライン)を格納したL0キャッシュのように、比較的
に大きなL0キャッシュが、512バイト以下を格納し
たL0キャッシュと比較して、ビクティムフィルタのサ
イズによって相対的に影響されない。ビクティムフィル
タが4つ以上のキャッシュラインを格納した時、256
バイト(8つのキャッシュライン)の書き込みアクティ
ビティが著しく増大している。
範囲に渡るビクティムフィルタのサイズに対する図7A
の結果を示している。1024バイト(32のキャッシ
ュライン)を格納したL0キャッシュのように、比較的
に大きなL0キャッシュが、512バイト以下を格納し
たL0キャッシュと比較して、ビクティムフィルタのサ
イズによって相対的に影響されない。ビクティムフィル
タが4つ以上のキャッシュラインを格納した時、256
バイト(8つのキャッシュライン)の書き込みアクティ
ビティが著しく増大している。
【0060】重要なことには、プリフェッチキャッシュ
がビクティムキャッシュにダイナミックに割り当てられ
たとしても、プリフェッチフィルタがビクティムフィル
タに割り当てられずに、相変わらず別々のままである。
図7Bから分かることは、プリフェッチフィルタがビク
ティムフィルタにダイナミックに結合されたならば、ビ
クティムフィルタ内に格納されたアドレス数と、キャッ
シュ書き込みのアクティビティ数とが増大している。そ
の結果、本発明の目的の一つと相反する電力消費を増大
させる。
がビクティムキャッシュにダイナミックに割り当てられ
たとしても、プリフェッチフィルタがビクティムフィル
タに割り当てられずに、相変わらず別々のままである。
図7Bから分かることは、プリフェッチフィルタがビク
ティムフィルタにダイナミックに結合されたならば、ビ
クティムフィルタ内に格納されたアドレス数と、キャッ
シュ書き込みのアクティビティ数とが増大している。そ
の結果、本発明の目的の一つと相反する電力消費を増大
させる。
【0061】図8は、プリフェッチフィルタ内に格納し
たアドレス数を決定すべきシミュレーションの結果を示
している。シミュレーションでは、アドレス数が1から
32まで変更され、フィルタなしの結果が示されてい
る。L0キャッシュとL1キャッシュとは、それぞれ2
56バイト(8つのキャッシュライン)と、16Kバイ
ト(512のキャッシュライン)とを格納している。プ
リフェッチフィルタの効果を分離するように、シミュレ
ーション結果が、補助キャッシュから除外された全ての
ビクティムキャッシュラインを伴う達成可能な性能を示
している。図8で示されるように、プリフェッチフィル
タのサイズが1から32まで増大された時、1サイクル
当たりの命令(IPC)の平均数は実質的に不変のまま
である。それ故、プリフェッチフィルタが1つのアドレ
スだけ格納する必要がある。
たアドレス数を決定すべきシミュレーションの結果を示
している。シミュレーションでは、アドレス数が1から
32まで変更され、フィルタなしの結果が示されてい
る。L0キャッシュとL1キャッシュとは、それぞれ2
56バイト(8つのキャッシュライン)と、16Kバイ
ト(512のキャッシュライン)とを格納している。プ
リフェッチフィルタの効果を分離するように、シミュレ
ーション結果が、補助キャッシュから除外された全ての
ビクティムキャッシュラインを伴う達成可能な性能を示
している。図8で示されるように、プリフェッチフィル
タのサイズが1から32まで増大された時、1サイクル
当たりの命令(IPC)の平均数は実質的に不変のまま
である。それ故、プリフェッチフィルタが1つのアドレ
スだけ格納する必要がある。
【0062】フィルタなしで先取りする際に、キャッシ
ュミス毎に、又はプリフェッチフィルタ内でヒットを検
知することによって、先取りが開始される。フィルタを
備えて先取りする際に、L0キャッシュラインと補助キ
ャッシュのビクティム設計用キャッシュラインとの中で
各ミスが発生したことによって、1を加えたアドレスの
ように、次の連続したアドレスがプリフェッチフィルタ
内に格納されている。L0キャッシュ及び補助キャッシ
ュ内で連続したミスが、プリフェッチフィルタ内でヒッ
トし、L0キャッシュからプリフェッチキャッシュの中
へ命令の先取りを開始する。先取りしている間に、補助
キャッシュは最初、リクエストキャッシュラインに対す
るL1キャッシュ内を覗いている。キャッシュラインが
L1キャッシュ内でなかったならば、補助キャッシュが
外部メモリから先取りを開始する。シミュレーションで
は、外部メモリアクセスが16サイクルを必要としてい
る。
ュミス毎に、又はプリフェッチフィルタ内でヒットを検
知することによって、先取りが開始される。フィルタを
備えて先取りする際に、L0キャッシュラインと補助キ
ャッシュのビクティム設計用キャッシュラインとの中で
各ミスが発生したことによって、1を加えたアドレスの
ように、次の連続したアドレスがプリフェッチフィルタ
内に格納されている。L0キャッシュ及び補助キャッシ
ュ内で連続したミスが、プリフェッチフィルタ内でヒッ
トし、L0キャッシュからプリフェッチキャッシュの中
へ命令の先取りを開始する。先取りしている間に、補助
キャッシュは最初、リクエストキャッシュラインに対す
るL1キャッシュ内を覗いている。キャッシュラインが
L1キャッシュ内でなかったならば、補助キャッシュが
外部メモリから先取りを開始する。シミュレーションで
は、外部メモリアクセスが16サイクルを必要としてい
る。
【0063】プリフェッチフィルタがメモリアクティビ
ティ数を制限し、それ故、電力消費を制限する。しかし
ながら、非連続的な一つのメモリアクセスがメモリ基準
パターンを抑制した場合だけ、上述されたプリフェッチ
フィルタが性能を向上させる。他の実施の形態では、高
性能アプリケーションに対し、キャッシュ制御ブロック
を経由したプロセッサが、全てのキャッシュアクセス上
でヒットされた先取りを強行することによってプリフェ
ッチフィルタを取り除いている。
ティ数を制限し、それ故、電力消費を制限する。しかし
ながら、非連続的な一つのメモリアクセスがメモリ基準
パターンを抑制した場合だけ、上述されたプリフェッチ
フィルタが性能を向上させる。他の実施の形態では、高
性能アプリケーションに対し、キャッシュ制御ブロック
を経由したプロセッサが、全てのキャッシュアクセス上
でヒットされた先取りを強行することによってプリフェ
ッチフィルタを取り除いている。
【0064】本発明における他の特徴及び利点は、本発
明の開示を検討した当業者にとって明白になろう。それ
故、この発明の範囲はクレーム(請求項)によってのみ
限定され得る。
明の開示を検討した当業者にとって明白になろう。それ
故、この発明の範囲はクレーム(請求項)によってのみ
限定され得る。
【0065】
【発明の効果】本発明によれば、キャッシュシステムは
多重レベルのキャッシュ構成を有し、L0キャッシュ及
びビクティムキャッシュへのキャッシュ書き込み回数が
補助キャッシュを使用せずにL0キャッシュを使用する
ことによって低減されるので、単一サイクルアクセスの
待ち時間を維持している間に、容認し得るキャッシュヒ
ット率を与えるという問題を解決し、更に、埋設された
マイクロプロセッサ用の重要な設計制約である電力消費
とハードウエア要件とを低減することができる。
多重レベルのキャッシュ構成を有し、L0キャッシュ及
びビクティムキャッシュへのキャッシュ書き込み回数が
補助キャッシュを使用せずにL0キャッシュを使用する
ことによって低減されるので、単一サイクルアクセスの
待ち時間を維持している間に、容認し得るキャッシュヒ
ット率を与えるという問題を解決し、更に、埋設された
マイクロプロセッサ用の重要な設計制約である電力消費
とハードウエア要件とを低減することができる。
【図1】本発明で使用されるのに最適なプロセッサとメ
モリとのブロックダイアグラムである。
モリとのブロックダイアグラムである。
【図2】本発明におけるキャッシュ構成のブロックダイ
アグラムである。
アグラムである。
【図3】図2における補助キャッシュと補助フィルタと
の詳細なブロックダイアグラムである。
の詳細なブロックダイアグラムである。
【図4】図3のキャッシュ構成における一実施の形態の
詳細なダイアグラムである。
詳細なダイアグラムである。
【図5】本発明のキャッシュを使用した方法のフローチ
ャートである。
ャートである。
【図6】L0キャッシュのさまざまなサイズに対しビク
ティムフィルタ内に格納されたアドレス数の関数として
1サイクル当たりの命令(IPC)の数のグラフであ
る。
ティムフィルタ内に格納されたアドレス数の関数として
1サイクル当たりの命令(IPC)の数のグラフであ
る。
【図7A】L0キャッシュのさまざまなサイズに対しビ
クティムフィルタ内に格納されたアドレス数の関数とし
てキャッシュ書き込み数のグラフである。
クティムフィルタ内に格納されたアドレス数の関数とし
てキャッシュ書き込み数のグラフである。
【図7B】1から10のアドレスまで格納されたビクテ
ィムフィルタに対して図7Aの詳細なグラフである。
ィムフィルタに対して図7Aの詳細なグラフである。
【図8】プリフェッチフィルタ内に格納するキャッシュ
ラインの数を決定するシミュレーションの結果を示して
いる。
ラインの数を決定するシミュレーションの結果を示して
いる。
10 プロセッサ 12 キャッシュシステム 14 実行ユニット 15 アドレスバス 16 外部メモリ 18 L1キャッシュ 19 データバス 20 L0キャッシュ 21 L1キャッシュデー
タ経路 22 補助キャッシュ 24 補助フィルタ 26,28,30 マルチプレクサ 32 ビクティムキャッシ
ュ 32a,32b,32c プリフェッチキャッ
シュライン 34 プリフェッチキャッ
シュ 34a プリフェッチキャッ
シュライン 36 ビクティムフィルタ 38 プリフェッチフィル
タ 40 ダイナミック補助キ
ャッシュ制御装置 42 キャッシュ制御ブロ
ック 44 プログラムカウンタ 52,56,62 マルチプレクサ 54,58 比較器 72,74,76,78 比較器 80,88,90 ORゲート 82 インバータ 84,86 ANDゲート 102 メモリ 102a,102b,102c エントリ 104,106,108 比較器 110 ORゲート 112 インクリメンタ 114 マルチプレクサ 116 メモリ 118 比較器 152,154,156,158,160,162,1
64,166 ステップ
タ経路 22 補助キャッシュ 24 補助フィルタ 26,28,30 マルチプレクサ 32 ビクティムキャッシ
ュ 32a,32b,32c プリフェッチキャッ
シュライン 34 プリフェッチキャッ
シュ 34a プリフェッチキャッ
シュライン 36 ビクティムフィルタ 38 プリフェッチフィル
タ 40 ダイナミック補助キ
ャッシュ制御装置 42 キャッシュ制御ブロ
ック 44 プログラムカウンタ 52,56,62 マルチプレクサ 54,58 比較器 72,74,76,78 比較器 80,88,90 ORゲート 82 インバータ 84,86 ANDゲート 102 メモリ 102a,102b,102c エントリ 104,106,108 比較器 110 ORゲート 112 インクリメンタ 114 マルチプレクサ 116 メモリ 118 比較器 152,154,156,158,160,162,1
64,166 ステップ
Claims (18)
- 【請求項1】 外部メモリからの命令を受け取り、格納
するためのL1キャッシュと、 前記L1キャッシュからの命令を受け取って格納するた
め第1設定数L0のキャッシュラインを有するL0キャ
ッシュと、 第2設定数VCのキャッシュラインを具備して前記L0
キャッシュからの命令を受け取るビクティムキャッシ
ュ、及び、第3設定数PCのキャッシュラインを具備し
て前記L1キャッシュからの命令を受け取るプリフェッ
チキャッシュを有する補助キャッシュと、 第4設定数VFのアドレスを格納したビクティムフィル
タとを備え、 前記第4設定数VFが前記第1設定数L0とキャッシュ
書き込み回数との関数であり、前記L0キャッシュ及び
前記ビクティムキャッシュへのキャッシュ書き込み回数
が、前記補助キャッシュを除いて前記L0キャッシュを
使用することによって低減されたことを特徴とするキャ
ッシュシステム。 - 【請求項2】 請求項1記載のキャッシュシステムにお
いて、 前記第4設定数VFが3に等しいことを特徴とするキャ
ッシュシステム。 - 【請求項3】 請求項1記載のキャッシュシステムにお
いて、 第5設定数PFのアドレスを格納し、前記L1キャッシ
ュにおける任意のキャッシュライン内に格納された命令
を、前記プリフェッチキャッシュの中へ先取りするか否
かを決定するプリフェッチフィルタを更に備えたことを
特徴とするキャッシュシステム。 - 【請求項4】 請求項3記載のキャッシュシステムにお
いて、 前記第5設定数PFが1に等しいことを特徴とするキャ
ッシュシステム。 - 【請求項5】 請求項1記載のキャッシュシステムにお
いて、 前記L1キャッシュ、前記L0キャッシュ、及び前記補
助キャッシュが32バイトのキャッシュラインを有し、
前記L1キャッシュがダイレクトマップ型で1024の
キャッシュラインを有し、前記L0キャッシュがダイレ
クトマップ型で16のキャッシュラインを有し、前記第
3設定数PCが1に等しく、前記第2設定数VCが3に
等しいことを特徴とするキャッシュシステム。 - 【請求項6】 請求項1記載のキャッシュシステムにお
いて、 前記ビクティムフィルタが、それ自身内に格納されると
共に、最近最も使用されなかったアドレスに取って代わ
ったことを特徴とするキャッシュシステム。 - 【請求項7】 請求項3記載のキャッシュシステムにお
いて、 前記プリフェッチフィルタが、第1及び第2連続メモリ
配置へのミスの後で、前記プリフェッチキャッシュを制
御し、前記L1キャッシュから命令を先取りしたことを
特徴とするキャッシュシステム。 - 【請求項8】 請求項3記載のキャッシュシステムにお
いて、 前記プリフェッチフィルタがアドレスを格納するためプ
リフェッチメモリを備え、リクエスト命令が前記プリフ
ェッチキャッシュ内になかった時、格納された前記アド
レスが前記リクエスト命令のアドレスの次に来るアドレ
スであることを特徴とするキャッシュシステム。 - 【請求項9】 請求項8記載のキャッシュシステムにお
いて、 前記プリフェッチフィルタがインクリメンタを含み、前
記インクリメンタが前記リクエスト命令のアドレスに予
め設定された増分を付加し、増分を付加された前記アド
レスが前記プリフェッチメモリ内に格納されたことを特
徴とするキャッシュシステム。 - 【請求項10】 請求項1記載のキャッシュシステムに
おいて、 前記プリフェッチキャッシュにおける前記キャッシュラ
インの少なくとも一部分を、前記ビクティムキャッシュ
にダイナミックに割り当てるための補助キャッシュ制御
装置を更に備えたことを特徴とするキャッシュシステ
ム。 - 【請求項11】 請求項10記載のキャッシュシステム
において、 アプリケーションプログラムが実行された時、ダイナミ
ックな前記補助キャッシュ制御装置が、前記プリフェッ
チキャッシュにおける前記キャッシュラインの少なくと
も一部分を、前記ビクティムキャッシュにダイナミック
に割り当てたことを特徴とするキャッシュシステム。 - 【請求項12】 請求項1記載のキャッシュシステムに
おいて、 前記補助キャッシュがフルアソシアティブ型であること
を特徴とするキャッシュシステム。 - 【請求項13】 請求項1記載のキャッシュシステムに
おいて、 前記L1キャッシュがダイレクトマップ型であることを
特徴とするキャッシュシステム。 - 【請求項14】 請求項1記載のキャッシュシステムに
おいて、 前記L0キャッシュがダイレクトマップ型であることを
特徴とするキャッシュシステム。 - 【請求項15】 プロセッサの実行ユニットをメモリに
連結したキャッシュシステムの操作方法であって、 L1キャッシュ、L0キャッシュ、ビクティムキャッシ
ュ、プリフェッチキャッシュ、ビクティムフィルタ、及
びプリフェッチフィルタが与られ、前記L1キャッシ
ュ、前記L0キャッシュ、前記ビクティムキャッシュ、
及び前記プリフェッチキャッシュがL1タグ、L0タ
グ、ビクティムタグ、及びプリフェッチタグとしてのキ
ャッシュライン内に、格納アドレスとしてアドレスの少
なくとも一部分をそれぞれ格納し、前記ビクティムフィ
ルタ及び前記プリフェッチフィルタがビクティムフィル
タアドレス及びプリフェッチフィルタアドレスとしてア
ドレスの少なくとも一部分をそれぞれ格納し、前記L1
キャッシュ、前記L0キャッシュ、前記ビクティムキャ
ッシュ、及び前記プリフェッチキャッシュの前記キャッ
シュラインが命令を格納し、前記ビクティムフィルタが
設定数のビクティムフィルタアドレスを格納し、前記ビ
クティムフィルタアドレスが前記L0キャッシュにおけ
るキャッシュラインの数とキャッシュ書き込み回数との
関数であり、前記L0キャッシュ及び前記ビクティムキ
ャッシュへのキャッシュ書き込み回数が前記ビクティム
キャッシュを使用せずに前記L0キャッシュの使用によ
って低減されるステップと、 リクエストアドレスがアドレスバスに供給されてリクエ
スト命令を検索するステップと、 同時に、前記リクエストアドレスが、前記L1タグ、前
記L0タグ、前記ビクティムタグ、前記プリフェッチタ
グ、前記ビクティムフィルタアドレス、及び前記プリフ
ェッチフィルタアドレスと比較されるステップと、 キャッシュヒットが前記L0キャッシュのキャッシュラ
イン内で検知される場合には、前記キャッシュライン内
に格納された前記リクエスト命令が前記実行ユニットに
供給されるステップと、 前記キャッシュヒットが前記ビクティムキャッシュのキ
ャッシュライン内で検知される場合には、前記キャッシ
ュライン内に格納された前記リクエスト命令が前記実行
ユニットへ供給され、前記リクエスト命令を格納した前
記キャッシュラインが前記ビクティムキャッシュから前
記L0キャッシュへ転送されるステップと、 前記リクエストアドレスが前記L0キャッシュ及び前記
補助キャッシュ内でミスするが、前記L1キャッシュ内
でヒットする場合には、前記リクエストアドレスを格納
した前記キャッシュラインが前記L1キャッシュ内で確
認され、ビクティムキャッシュラインが、前記L0キャ
ッシュ内で確認されて確認キャッシュラインに取って代
わり、前記リクエストアドレスが前記ビクティムフィル
タ内に格納されたアドレスの何れかに一致するか否かが
決定され、前記決定によって前記ビクティムフィルタの
前記リクエストアドレスと一致したことに基づく前記ビ
クティムキャッシュ内に、前記ビクティムキャッシュラ
インが格納され、前記L0キャッシュ内の前記ビクティ
ムキャッシュラインが前記確認キャッシュラインに取っ
て代わり、前記リクエストアドレスが前記ビクティムフ
ィルタ内に格納され、前記リクエスト命令が前記実行ユ
ニットに供給されるステップとを備えることを特徴とす
るキャッシュシステムの操作方法。 - 【請求項16】 請求項15記載のキャッシュシステム
の操作方法において、 前記リクエストアドレスが前記ビクティムフィルタ内に
格納されるステップが、前記ビクティムフィルタのうち
少なくとも最近使用されたキャッシュライン内に前記ビ
クティムキャッシュを格納するステップを含むことを特
徴とするキャッシュシステムの操作方法。 - 【請求項17】 請求項15記載のキャッシュシステム
の操作方法において、 プリフェッチアドレスが前記リクエストアドレスを次の
連続するアドレスまで増大させることによって発生され
るステップと、 前記プリフェッチアドレスが前記プリフェッチフィルタ
内に格納されるステップと、 新しいリクエストアドレスが受け取られるステップと、 前記新しいリクエストアドレスが前記プリフェッチフィ
ルタ内に格納された前記プリフェッチアドレスに一致し
ない場合には、キャッシュラインが前記L1キャッシュ
から前記プリフェッチキャッシュ内へ先取りされ、連続
する第1及び第2リクエストアドレスをミスした後に、
キャッシュラインが前記L1キャッシュから、前記プリ
フェッチフィルタを使用した前記プリフェッチキャッシ
ュの中まで先取りされるステップとを更に備えることを
特徴とするキャッシュシステムの操作方法。 - 【請求項18】 請求項15記載のキャッシュシステム
の操作方法において、 前記プリフェッチキャッシュがダイナミックに割り当て
られて前記ビクティムキャッシュの一部分となり、前記
ビクティムキャッシュ内に格納されたキャッシュライン
の数を増加させるが、前記プリフェッチフィルタが前記
ビクティムフィルタに割り当てられないステップを更に
備えることを特徴とするキャッシュシステムの操作方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/252.838 | 1999-02-19 | ||
US09/252,838 US6397296B1 (en) | 1999-02-19 | 1999-02-19 | Two-level instruction cache for embedded processors |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000242558A true JP2000242558A (ja) | 2000-09-08 |
Family
ID=22957762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000026068A Pending JP2000242558A (ja) | 1999-02-19 | 2000-02-03 | キャッシュシステム及びその操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6397296B1 (ja) |
JP (1) | JP2000242558A (ja) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002251321A (ja) * | 2001-02-21 | 2002-09-06 | Handotai Rikougaku Kenkyu Center:Kk | キャッシュメモリシステム装置 |
WO2008155851A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算処理装置、エントリ制御プログラムおよびエントリ制御方法 |
US8117397B2 (en) | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8209489B2 (en) | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8225045B2 (en) | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8285939B2 (en) | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8312220B2 (en) | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US8327073B2 (en) | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8347037B2 (en) | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8347036B2 (en) | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8489819B2 (en) | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
US8499124B2 (en) | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8949540B2 (en) | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US9189403B2 (en) | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
JP2018010680A (ja) * | 2010-01-14 | 2018-01-18 | クアルコム,インコーポレイテッド | レベル2メモリの一部分とレベル1メモリとにアクセスするシステムおよび方法 |
JP6266850B1 (ja) * | 2015-01-15 | 2018-01-24 | クアルコム,インコーポレイテッド | ポータブルコンピューティングデバイスにおけるビクティムキャッシュモードを改善するためのシステムおよび方法 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591332B1 (en) * | 2000-04-28 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Apparatus and method for tracking flushes of cache entries in a data processing system |
KR100335500B1 (ko) * | 2000-05-16 | 2002-05-08 | 윤종용 | 직접사상 캐쉬와 완전연관 버퍼를 포함한 캐쉬 시스템의제어 방법 |
US6842180B1 (en) * | 2000-09-20 | 2005-01-11 | Intel Corporation | Opportunistic sharing of graphics resources to enhance CPU performance in an integrated microprocessor |
US7260684B2 (en) * | 2001-01-16 | 2007-08-21 | Intel Corporation | Trace cache filtering |
JP2002342037A (ja) * | 2001-05-22 | 2002-11-29 | Fujitsu Ltd | ディスク装置 |
US7174429B2 (en) * | 2001-12-28 | 2007-02-06 | Intel Corporation | Method for extending the local memory address space of a processor |
US6823430B2 (en) * | 2002-10-10 | 2004-11-23 | International Business Machines Corporation | Directoryless L0 cache for stall reduction |
US8386648B1 (en) | 2003-06-26 | 2013-02-26 | Nvidia Corporation | Hardware support system for accelerated disk I/O |
EP1505506A1 (en) * | 2003-08-05 | 2005-02-09 | Sap Ag | A method of data caching |
US8683132B1 (en) * | 2003-09-29 | 2014-03-25 | Nvidia Corporation | Memory controller for sequentially prefetching data for a processor of a computer system |
US8356142B1 (en) | 2003-11-12 | 2013-01-15 | Nvidia Corporation | Memory controller for non-sequentially prefetching data for a processor of a computer system |
US8700808B2 (en) * | 2003-12-01 | 2014-04-15 | Nvidia Corporation | Hardware support system for accelerated disk I/O |
US7181575B2 (en) * | 2004-09-29 | 2007-02-20 | Hewlett-Packard Development Company, L.P. | Instruction cache using single-ported memories |
US8356143B1 (en) | 2004-10-22 | 2013-01-15 | NVIDIA Corporatin | Prefetch mechanism for bus master memory access |
US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
US20060179231A1 (en) * | 2005-02-07 | 2006-08-10 | Advanced Micron Devices, Inc. | System having cache memory and method of accessing |
US20070094450A1 (en) * | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Multi-level cache architecture having a selective victim cache |
JP4944518B2 (ja) * | 2006-05-26 | 2012-06-06 | 富士通セミコンダクター株式会社 | タスク遷移図表示方法及び表示装置 |
US8606998B2 (en) * | 2006-08-24 | 2013-12-10 | Advanced Micro Devices, Inc. | System and method for instruction-based cache allocation policies |
US20080229026A1 (en) * | 2007-03-15 | 2008-09-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | System and method for concurrently checking availability of data in extending memories |
US7908439B2 (en) * | 2007-06-25 | 2011-03-15 | International Business Machines Corporation | Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache |
US8200905B2 (en) | 2008-08-14 | 2012-06-12 | International Business Machines Corporation | Effective prefetching with multiple processors and threads |
US8356128B2 (en) * | 2008-09-16 | 2013-01-15 | Nvidia Corporation | Method and system of reducing latencies associated with resource allocation by using multiple arbiters |
US8370552B2 (en) * | 2008-10-14 | 2013-02-05 | Nvidia Corporation | Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions |
US8698823B2 (en) * | 2009-04-08 | 2014-04-15 | Nvidia Corporation | System and method for deadlock-free pipelining |
KR101086460B1 (ko) * | 2009-12-28 | 2011-11-25 | 전남대학교산학협력단 | 필터 캐쉬용 희생 캐쉬를 구비한 저전력 프로세서 시스템 및 그 구동방법 |
US9465745B2 (en) | 2010-04-09 | 2016-10-11 | Seagate Technology, Llc | Managing access commands by multiple level caching |
CN102541510B (zh) * | 2011-12-27 | 2014-07-02 | 中山大学 | 一种指令缓存***及其取指方法 |
US9626294B2 (en) | 2012-10-03 | 2017-04-18 | International Business Machines Corporation | Performance-driven cache line memory access |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US10802971B2 (en) * | 2016-10-13 | 2020-10-13 | International Business Machines Corporation | Cache memory transaction shielding via prefetch suppression |
US10078581B2 (en) | 2016-11-14 | 2018-09-18 | Via Alliance Semiconductor Co., Ltd. | Processor with instruction cache that performs zero clock retires |
US10067875B2 (en) * | 2016-11-14 | 2018-09-04 | Via Alliance Semiconductor Co., Ltd. | Processor with instruction cache that performs zero clock retires |
GB2578097B (en) * | 2018-10-15 | 2021-02-17 | Advanced Risc Mach Ltd | Cache control circuitry and methods |
US11620230B2 (en) * | 2019-05-24 | 2023-04-04 | Texas Instruments Incorporated | Methods and apparatus to facilitate read-modify-write support in a coherent victim cache with parallel data paths |
CN110727463B (zh) * | 2019-09-12 | 2021-08-10 | 无锡江南计算技术研究所 | 一种基于动态信用的零级指令循环缓冲预取方法及装置 |
US11403394B2 (en) * | 2019-09-17 | 2022-08-02 | International Business Machines Corporation | Preventing selective events of a computing environment |
US20230393992A1 (en) * | 2022-06-02 | 2023-12-07 | Micron Technology, Inc. | Row hammer mitigation using a victim cache |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317718A (en) * | 1990-03-27 | 1994-05-31 | Digital Equipment Corporation | Data processing system and method with prefetch buffers |
WO1993018459A1 (en) * | 1992-03-06 | 1993-09-16 | Rambus Inc. | Prefetching into a cache to minimize main memory access time and cache size in a computer system |
US5603004A (en) * | 1994-02-14 | 1997-02-11 | Hewlett-Packard Company | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system |
US5758119A (en) * | 1995-08-23 | 1998-05-26 | International Business Machines Corp. | System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache |
US5860095A (en) * | 1996-01-02 | 1999-01-12 | Hewlett-Packard Company | Conflict cache having cache miscounters for a computer memory system |
US6279084B1 (en) * | 1997-10-24 | 2001-08-21 | Compaq Computer Corporation | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system |
US5944815A (en) * | 1998-01-12 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access |
-
1999
- 1999-02-19 US US09/252,838 patent/US6397296B1/en not_active Expired - Fee Related
-
2000
- 2000-02-03 JP JP2000026068A patent/JP2000242558A/ja active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002251321A (ja) * | 2001-02-21 | 2002-09-06 | Handotai Rikougaku Kenkyu Center:Kk | キャッシュメモリシステム装置 |
WO2008155851A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算処理装置、エントリ制御プログラムおよびエントリ制御方法 |
JPWO2008155851A1 (ja) * | 2007-06-20 | 2010-08-26 | 富士通株式会社 | 演算処理装置、エントリ制御プログラムおよびエントリ制御方法 |
JP4812876B2 (ja) * | 2007-06-20 | 2011-11-09 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8688952B2 (en) | 2007-06-20 | 2014-04-01 | Fujitsu Limited | Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB |
US8347037B2 (en) | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8209489B2 (en) | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8117397B2 (en) | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8225045B2 (en) | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8499124B2 (en) | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8489819B2 (en) | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
US8949540B2 (en) | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8285939B2 (en) | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8347036B2 (en) | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8327073B2 (en) | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8312220B2 (en) | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US9189403B2 (en) | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
JP2018010680A (ja) * | 2010-01-14 | 2018-01-18 | クアルコム,インコーポレイテッド | レベル2メモリの一部分とレベル1メモリとにアクセスするシステムおよび方法 |
JP6266850B1 (ja) * | 2015-01-15 | 2018-01-24 | クアルコム,インコーポレイテッド | ポータブルコンピューティングデバイスにおけるビクティムキャッシュモードを改善するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
US6397296B1 (en) | 2002-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2000242558A (ja) | キャッシュシステム及びその操作方法 | |
KR100262906B1 (ko) | 데이터 선인출 방법 및 시스템 | |
KR100240912B1 (ko) | 데이터 프리페치 장치 및 시스템, 캐시 라인 프리페치 방법 | |
US5751994A (en) | System and method for enhancing computer operation by prefetching data elements on a common bus without delaying bus access by multiple bus masters | |
US5664147A (en) | System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated | |
US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
US7461209B2 (en) | Transient cache storage with discard function for disposable data | |
US5325499A (en) | Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory | |
US5210845A (en) | Controller for two-way set associative cache | |
EP0813709B1 (en) | Parallel access micro-tlb to speed up address translation | |
US8458408B2 (en) | Cache directed sequential prefetch | |
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
US6138208A (en) | Multiple level cache memory with overlapped L1 and L2 memory access | |
JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
US7610469B2 (en) | Vector transfer system for packing dis-contiguous vector elements together into a single bus transfer | |
JPH07253926A (ja) | キャッシュ・ミスによる時間ペナルティ減少方法 | |
US20080301371A1 (en) | Memory Cache Control Arrangement and a Method of Performing a Coherency Operation Therefor | |
JP2008542948A (ja) | コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ | |
JPH06231044A (ja) | キャッシュ・メモリを有するデータ処理システム | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
JP2001195303A (ja) | 機能が並列に分散された変換索引バッファ | |
JP2019096309A (ja) | メンテナンス動作の実行 | |
US6438672B1 (en) | Memory aliasing method and apparatus | |
EP1139222A1 (en) | Prefetch for TLB cache |