JPH08292913A - 未参照先取りキャッシュを利用した命令語先取り方法およびその回路 - Google Patents
未参照先取りキャッシュを利用した命令語先取り方法およびその回路Info
- Publication number
- JPH08292913A JPH08292913A JP7105119A JP10511995A JPH08292913A JP H08292913 A JPH08292913 A JP H08292913A JP 7105119 A JP7105119 A JP 7105119A JP 10511995 A JP10511995 A JP 10511995A JP H08292913 A JPH08292913 A JP H08292913A
- Authority
- JP
- Japan
- Prior art keywords
- block
- prefetch
- instruction word
- cache
- memory
- 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
Links
Classifications
-
- 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
-
- 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
- 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
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)
- Advance Control (AREA)
Abstract
る読出遅延を減少させるとともに、メモリ交通量を減ら
した未参照先取りキャッシュを利用した命令語先取り方
法およびその回路を提供する。 【構成】 回路はCPU10により参照されるべき命令
語ブロックを貯蔵する下位メモリ20と、下位メモリ2
0から先取りされたブロックを一時貯蔵する先取りバッ
ファ30と、先取りバッファ30から出力されたブロッ
クがCPU10により参照されたか否かに従いデマルチ
プレクシングを行なうデマルチプレクサ40と、デマル
チプレクサ40から出力されるブロック中、CPU10
により参照されないブロックを貯蔵する未参照先取りキ
ャッシュ50と、CPU10により参照された命令語ブ
ロックが貯蔵される命令語キャッシュ60と、CPU1
0の制御により先取り動作を制御する先取り制御部70
とにより構成される。
Description
ュを利用した命令語先取り方法およびその回路に関し、
特に、下位メモリから先取りされCPU(Central Proc
essing Unit)により参照されないブロックを、オン−
チップキャッシュメモリ(on-chip cache memory)の未
参照先取りキャッシュ(Non-Referenced Prefetch Cach
e:NRPキャッシュ)に貯蔵し、キャッシュ接近失敗
(cache miss)を減らし、下位メモリに対する近接遅延
(access latency)およびメモリ交通量(memory traff
ic)を減らし得る未参照先取りキャッシュを利用した命
令語先取り方法および回路に関するものである。
度で発展するのに比べ、メモリ性能の発展速度はそれに
及ばない。このようなCPUとメモリの性能格差(Perf
ormance Gap )は段々深化され、したがって、メモリ階
層(Memory Hierarchy)を効率的に構成するのがコンピ
ュータシステムの全体性能に重要な影響を及ぼす要素と
なった。
は、メモリの効率的な構成のため、キャッシュメモリが
使用されている。キャッシュメモリは基本的にコンピュ
ータのプログラムの行なわれるときに現れる参照集約性
(Locality of Reference )を利用するものである。一
般に、コンピュータのプログラムの行なわれるときにC
PUが参照する下位メモリのアドレスは、ある限定され
た時間では下位メモリの領域における1つまたは2つの
領域のみを集中的に参照し、これを空間的集約性(spat
ial locality)と言われる。普通のプログラムではいく
つかのループ(loop)を実行するに所要される時間が、
全プログラムの行なわれる時間の大部分を占め、1つの
ループ内では同様な命令が反復継続して行なわれる。か
つ、現在参照される命令が間もなく参照される場合が多
いし、これを時間的集約性(temporal locality )と言
われる。
とCPU間に速度の速い所定記憶装置をおき、ここにプ
ログラムの行なわれる時頻度に使用される下位メモリの
一部領域を貯蔵することがキャッシュメモリの原理であ
る。
な2つの特性をすべて有しているので、数キロバイト程
度の小さいメモリを使う場合にも、CPUが下位メモリ
を参照する、すなわち、全体参照の90%以上をキャッ
シュメモリで処理することが可能である。
て、CPUが参照しようとする命令語ブロックがキャッ
シュメモリに存在し参照することをキャッシュ接近成功
(cache hit )と言い、その反対の場合はキャッシュ接
近失敗(cache miss)と言う。キャッシュメモリの性能
を表わす尺度としてはキャッシュ接近成功率が使用さ
れ、式で示すと次のようである。
ャッシュ接近成功(cache hit )の回数/メモリ参照の
全体回数 一方キャッシュ接近失敗の有形を3つで分けると、初期
接近失敗(compulsorymiss )、衝突接近失敗(conflic
t miss )、および容量接近失敗(capacity miss )に
分類される。初期接近失敗はあるブロックが最初に参照
されるとき発生するキャッシュ接近失敗である。衝突接
近失敗はキャッシュメモリの領域に写像(mapping )さ
れているブロックが他のブロックに交換(replacement
)された後、再び参照されるとき発生する接近失敗で
ある。容量接近失敗はある応用プログラムを行なうと
き、CPUが頻繁に参照するページ(page)の集合であ
る作業集合(working set )がキャッシュメモリの容量
よりも大きい場合に発生する接近失敗である。
失敗はキャッシュメモリの容量が大きくなるに従って全
体接近失敗に対する各々の比率が違うこととなる。初期
接近失敗は、特性上、キャッシュメモリの容量にかかわ
らず一定で、衝突接近失敗と容量接近失敗はキャッシュ
メモリの容量が大きくなると大抵減少するこ傾向を見せ
る。しかし、VLSI(Very Large Scale Integratio
n)の発達に従ってオン−チップキャッシュ(on-chip c
ache )メモリの容量が段々大きくなっているので、初
期接近失敗の全体キャッシュ接近失敗に対して占める比
率も大きくなっている。このような状況のもと、現在大
部分のコンピュータシステムが大容量のキャッシュメモ
リを主に使用することにより、前述のような初期接近失
敗を効果的に減らし得る方法の重要性が増えつつある。
ものはキャッシュブロックの大きさを大きくすることで
あり、すると、一度のキャッシュ接近失敗時に多い量の
内容がキャッシュメモリに貯蔵されて、順次的な参照の
場合キャッシュ接近失敗を減らし得る。しかし、この方
法は、1つのブロックを下位メモリからキャッシュメモ
リに取出しするのに所要されるCPUサイクルが増加
し、メモリ交通量が増加し、またキャッシュ接近失敗の
費用が増加するという問題点があった。かつ、キャッシ
ュブロックが大きい場合には、参照される部分はブロッ
クの一部であるが、全体ブロックが交換されて、キャッ
シュ汚染が(cache pollution )発生し性能が低下す
る。また、ブロックの大きさはメモリ遅延(latency )
と伝送率(transfer rate )が反映されて決定されるの
で、先取り機能の強化のためキャッシュブロックの大き
さを単純に増加させることができないという問題点があ
った。
取り技法が提案されている。先取りというのは、CPU
がメモリのあるブロックに対して参照する前に参照が予
想されるメモリブロックを下位メモリから上位メモリに
取出しすることである。先取り技法中で一番簡単な技法
の順次先取り技法は、現在CPUにより参照されるブロ
ックの次のブロックを順次的に先取る方法であり、応用
プログラムにおいてメモリ参照が順次性を多く持つ場合
に性能の大きい向上を得ることができるし、一般に、命
令語参照がデータ参照に比べより大きい地域性を有する
ので、この場合順次先取りが比較的優秀な性能を表わ
す。かつ、これを行なうためのハードウェアが複雑でな
いという長所がある。しかし、順次先取りは命令語の参
照が順次的な経路を従わない場合には、性能の向上を期
待することができない。すなわち、条件分岐命令および
無条件分岐命令のようなメモリ参照が非順次経路に行な
われる場合には、順次先取りにより得られる利得が大き
くないという短所がある。
のは、以前にあるブロックに対して参照が行なわれた経
路を予測テーブルに貯蔵しておき、以後に該ブロックに
対する参照が行なわれるとき、前記予測テーブルに貯蔵
された情報を利用して先取りするブロックを決定する方
法である。目標先取り技法は無条件分岐および条件分岐
が以前遂行経路を従う傾向が多いのに基づき、以前の行
なわれたメモリ参照が順次ブロック(sequential bloc
k)を参照した場合には、順次ブロックを、非順次ブロ
ック(non-sequential block)を参照した場合には、非
順次ブロックを先取りする。すなわち、メモリ参照時に
よるブロックAの後にブロックBが参照された場合、次
のメモリ参照においてAブロックが参照されるとき、ブ
ロックBを先取りする方法である。このように目標先取
りは分岐命令の性質を利用するので、順次先取りに比べ
高い正確度を有する。しかし、分岐命令遂行時にメモリ
参照がいつも以前の経路を従うことはないし、分岐命令
におけるメモリ参照が順次と非順次の経路を交互に行な
う場合には、目標先取り方法により性能の向上を図り得
ないという問題点があった。
いうのは、スーパコンピュータなどのようなメモリ帯域
幅(bandwidth )の制限が比較的少ないシステムにおい
て順次ブロックと目標ブロックのすべてを先取りする方
法である。しかし、マイクロプロセッサ(microprocess
or)を基板とするシステムにおいてはメモリ帯域幅の制
限のため、以前に行なわれた情報を利用して先取りする
ブロックの優先順位を決めて先取りを行なう。これは既
存の複合先取り技法の変形された形態で、次のように行
なわれる。
路に行なわれた場合、現在ブロックの順次ブロック(現
在ブロックの住所+1)が先取りされるべき1番目の候
補ブロックに決定されるとともに、現在ブロックに対す
る目標ブロックが先取りされるべき2番目の候補ブロッ
クに決定される。反面に、以前にメモリ参照が非順次的
経路に行なわれた場合には、現在ブロックに対する目標
ブロックが先取りされるべき1番目の候補ブロックに決
定されるとともに、現在ブロックの順次ブロック(現在
ブロックの住所+1)が先取りされるべき2番目の候補
に決定される。前述のように1番目と2番目の候補が決
定されると、該候補ブロックに対する先取りの動作が行
なわれる。1番目の候補ブロックがオン−チップメモリ
に存在していないと、下位メモリからオン−チップメモ
リに先取りされた後、動作は終了する。しかし、前記1
番目の候補ブロックがオン−チップメモリに存在する場
合は、2番目の候補ブロックが下位メモリからオン−チ
ップメモリに先取りされ、前記1番目、2番目の候補ブ
ロックがすべてオン−チップメモリに存在する場合先取
りは行なわれない。このように変形された複合先取り技
法は大部分の場合に順次ブロックと目標ブロックとを先
取りする。しかし、変形された複合先取り技法は、従来
の複合先取り技法程度の性能向上しか得ることができな
いし、かつ、従来の複合先取り技法は性能の向上が得ら
れたが、データ伝送率(data transfer rate)を意味す
るメモリ帯域幅に対する制限が比較的少ないスーパコン
ピュータなどのみに行なうことが可能という問題点があ
った。
より参照されないブロックをオン−チップキャッシュメ
モリの未参照先取りキャッシュに貯蔵し、制限されたメ
モリ帯域幅を有しているマイクロプロセッサを利用した
システムにおいても、順次ブロックと目標ブロックのす
べてを先取りしてキャッシュ接近失敗を減らし、下位メ
モリに対する接近遅延を減少させるとともに、メモリ交
通量を減らし得る未参照先取りキャッシュを利用した命
令語先取り方法およびその回路を提供することを目的と
する。
技法において先取りバッファのブロックが交換されると
き、先取りされCPUにより参照されないブロックを所
定のオン−チップメモリに貯蔵し以後のメモリ参照に対
応するように、未参照先取りキャッシュを利用した命令
語先取り方法を提供することである。
明の目的は、未参照先取りキャッシュを利用した命令語
先取り回路において、メモリ参照のようなプログラムを
行なうため各種制御信号を出力するCPU10と、CP
U10のプログラムを行なうのに必要な命令語ブロック
を貯蔵する下位メモリ20と、CPU10により参照さ
れる命令語ブロックの先取りを制御する先取り制御部7
0と、下位メモリから先取りされた命令語ブロックを一
時貯蔵し、かつ該貯蔵された命令語ブロックがCPU1
0により参照されたか否かに従い制御信号を出力する先
取りバッファ30と、先取りバッファ30から出力する
命令語ブロックを先取りバッファの制御信号に従って、
CPUにより参照の行なわれた命令語ブロックとそうで
ないブロックとにデマルチプレクシングするデマルチプ
レクサ40と、デマルチプレクサ40から出力された命
令語ブロック中、CPUにより参照されない命令語ブロ
ックを貯蔵する未参照先取りブロック貯蔵部50と、下
位メモリ、デマルチプレクサおよび未参照先取りブロッ
ク貯蔵部から出力された命令語ブロックを貯蔵する命令
語キャッシュと、を備えることにより構成される。
Uにより参照されない命令語ブロックを先取りバッファ
で交換するとき、該ブロックを捨てる代わりに未参照先
取りキャッシュのオン−チップメモリに貯蔵しておき、
次の番に該ブロックに対するメモリ参照があると下位メ
モリからそのブロックを再び取出さないで、すぐメモリ
参照の行なわれるようにした。
用した命令語先取り回路においては、図1に示すよう
に、命令語を参照してコンピュータの各種制御動作を行
なうCPU10と、CPU10により参照されるべき命
令語ブロックを貯蔵する下位メモリ20と、下位メモリ
20から先取りされたブロックを一時貯蔵するオン−チ
ップメモリの先取りバッファ30と、先取りバッファ3
0から出力されたブロックがCPU10により参照され
たか否かに従いデマルチプレクシングするデマルチプレ
クサ40と、デマルチプレクサ40から出力されるブロ
ック中、CPU10により参照されないブロックを貯蔵
するオン−チップメモリの未参照先取りキャッシュ50
と、CPU10により参照された命令語ブロックの貯蔵
されるオン−チップメモリの命令語キャッシュ60と、
CPU10の制御により先取り動作を制御する先取り制
御部70とにより構成される。
層(hierarchy )が単段階キャッシュメモリシステムの
場合には、メインメモリとなり、メモリ階層が多段階キ
ャッシュメモリシステムの場合には下位段階のキャッシ
ュメモリまたはメインメモリとなる。図1はCPU1
0、先取りバッファ30、未参照先取りキャッシュ5
0、命令語キャッシュ60、および先取り制御部70な
どが分離された回路を仮定しているが、このような構成
要素は1つのプロセッサチップにともに存在させること
もできる。
メモリ20から先取りされたブロックを貯蔵するキャッ
シュブロックフィールド33と、キャッシュブロックフ
ィールド33に貯蔵されたブロックの住所を示すタグフ
ィールド31と、キャッシュブロックフィールド33に
貯蔵されたブロックがCPUにより参照されたか否かを
示すT−ビットフィールド32と、キャッシュブロック
フィールド33に貯蔵されたブロックの内容が有効する
かを示すV−ビットフィールド34とにより構成され
る。
るべき候補ブロックを決定し、該決定された候補ブロッ
クがオン−チップメモリに存在するかを検索し、検索の
結果、前記決定されたブロックがオン−チップメモリに
存在しない場合には、下位メモリ20からの先取り要求
命令を出力する。かつ、先取りされるべき候補ブロック
を決定する回路においては、図2に示すように、CPU
10により参照されるべき現在ブロックの住所を貯蔵す
る現在ブロックアドレス部(current block address un
it)72と、以前のメモリ参照遂行時に現在ブロックの
次に参照された非順次ブロックの住所を貯蔵する目標ブ
ロックアドレス部(target block address unit )73
と、以前の行なわれたメモリ参照が順次的であるかを示
す以前遂行情報フィールド(history information fiel
d )74とを備えて構成される予測テーブル(predicti
on table)71と、予測テーブル71の現在ブロックア
ドレス部72から出力された住所に1を加えた住所と目
標ブロックアドレス部73から出力された住所とを、以
前遂行情報フィールド74に貯蔵された情報により選択
するマルチプレクサ75と、予測テーブル71をアクセ
スしてアップデータする予測テーブル制御部76とによ
り構成される。
クを利用した命令語先取り方法およびその回路は色々の
先取り技法に適用し得るが、まず、順次ブロックと目標
ブロックのすべてを先取りする複合先取り技法に適用し
た場合を説明する。本発明では命令語キャッシュとデー
タキャッシュとが各々分離されたシステムを仮定した。
かつ、本発明は直接写像キャッシュを仮定したが集合関
連写像、完全関連写像などが使用される場合にも同様に
適用される。
命令語ブロックはCPUにより参照される。このときブ
ロックAに対する参照が完了されると、新しいブロック
CPU10により参照され、該新しく参照されるブロッ
クはプログラムに従い順次ブロックまたは非順次ブロッ
クになることができる。
クBが参照されると、予測テーブル71の更新が行なわ
れ、予測テーブル制御部76は前記ブロックAに対する
情報が予測テーブル71に存在するかを検索する。も
し、予測テーブル71に前記ブロックAに対する情報が
存在しないと、予測テーブル71は更新されない。なぜ
ならば、ブロックAに対する該当情報が予測テーブル7
1に存在しないと、該ブロックAの後に続いて順次的ブ
ロックBが省略時(default )の先取りされるべき対象
になるためである。しかし、予測テーブル71の検索結
果、ブロックAに対する情報が予測テーブルに存在する
と、以前遂行情報フィールド74にブロックAに該当す
るフィールドが順次経路にセッティングされる。
制御部76は先取りする候補ブロックを決定し、これは
現在CPUにより参照されたブロックBに対する予測テ
ーブル71が有している情報を利用して行なわれる。以
前CPU10によりブロックBの次に参照された経路が
順次的である場合、マルチプレクサ75の選択によりブ
ロックBの順次ブロック(現在ブロックBのアドレス+
1)が1番目の先取りされるべき候補ブロックに決定さ
れ、現在ブロックBに対する目標ブロック、すなわち、
ブロックBに該当する目標ブロックアドレス部73に貯
蔵されたブロックが2番目の先取りされるべき候補ブロ
ックに決定される。反面に、以前のCPU10によりブ
ロックBの次に参照された経路が非順次的である場合
は、マルチプレクサ75の選択により、目標ブロックア
ドレス部73に貯蔵された現在ブロックBに対する目標
ブロックが先取りされるべき1番目の候補ブロックに決
定され、現在ブロックの順次ブロックが先取りされるべ
き2番目の候補ブロックに決定される。
非順次的なブロックCが参照される場合は、予測テーブ
ルの更新のため予測テーブル制御部76は、前記ブロッ
クAに対する情報が予測テーブルに存在するかを検索す
る。ブロックAに対する情報が予測テーブル71に存在
しないときには、予測テーブル制御部76はブロックA
のため予測テーブル71の1つのエントリ(entry )を
割当した後、ブロックAのアドレスを予測テーブル71
の現在ブロックアドレス部72に貯蔵し、ブロックCの
アドレスを目標ブロックアドレス部73に貯蔵して、以
前に行なわれた情報フィールド74の該当フィールドを
非順次経路にセッティングする。しかし、前記ブロック
Aに対する情報が予測テーブルに存在する場合には、ブ
ロックCのアドレスを目標ブロックアドレス部73に貯
蔵し、以前に行なわれた情報フィールド74の該当フィ
ールドを非順次経路にセッティングする。
ーブル制御部70は先取りする候補ブロックを決定する
のに、これは現在CPU10により参照されたブロック
がCブロックであるので、ブロックCに対する予測テー
ブル71の情報を利用して行なわれる。ブロックCに対
する先取り候補ブロックの決定は、ブロックCに対する
予測テーブル71の以前遂行情報フィールド74の情
報、すなわち、以前のCPUによりブロックCの次に参
照された経路が順次経路であるか、または非順次経路で
あるかに従い、前記ブロックBの場合と同様な方法によ
り決定される。
および先取りされるべき候補ブロックが決定された後、
先取りの動作は行なわれる。候補ブロックに対する先取
りは、まず1番目の先取り候補ブロックに対して行なわ
れる。このため先取り制御部70は1番目の候補ブロッ
クがオン−チップメモリ、すなわち命令語キャッシュ6
0、未参照キャッシュ50、および先取りバッファ30
に存在するかを検索する。1番目の先取り候補ブロック
がオン−チップメモリに存在しない場合には、先取り制
御部70は1番目の先取り候補ブロックを下位メモリ1
0から先取りして先取りバッファに貯蔵し、先取りの動
作を終了する。しかし、前記1番目の先取り候補ブロッ
クがオン−チップメモリに存在する場合には、先取り制
御部70は前述した方法により、2番目の先取り候補ブ
ロックに対する先取りを行なう。もし、前述先取り候補
ブロックと2番目の先取り候補ブロックのすべてが存在
するときは先取りは行なわれない。
りされたブロックが先取りバッファ30の容量を超過す
ると、先取りバッファ30は自体的なブロック交換メカ
ニズム(block replacement mechanism )により、既存
の貯蔵されていたブロックは下位メモリ20から新しく
先取りされたブロックに交換される。かつ、先取りバッ
ファ30のT−ビットフィールド32においては、CP
Uにより該当ブロックが参照されるときはリセット、参
照されないときはセットと表示され、よって、先取りバ
ッファ30でのブロックの交換が行なわれるとき、CP
U10により参照されたブロックは捨てられ、参照され
ないブロックはT−ビット32の値がデマルチプレクサ
40の制御信号として印加されて未参照先取りキャッシ
ュ50へ移動する。なお、先取りバッファ30のブロッ
ク交換時、従来のCPU10により参照されない未参照
先取りブロックは捨てられたが、本発明の未参照先取り
ブロックは捨てられないで未参照キャッシュ50に貯蔵
され、以後該貯蔵されたブロックがCPU10の参照対
象になる場合、下位メモリ20から再び取出しされない
ですぐ参照が可能になる。
利用した命令語先取り方法を、変形された複合先取り技
法と、前進先取り技法を混合した技法に適用すると、よ
り優秀な性能の向上を図り得る。前進先取り技法は現在
CPU10により参照されているブロックのd番目の後
に参照されると予想されるブロックを先取りする技法で
あり、ここでdは前進先取りの底部(degree of lookah
ead prefetching )を示す。たとえ、前進先取りの程度
が2である前進先取り技法においてCPU10がブロッ
クD,E,Fを順次に参照した場合、ブロックDに対し
ての予測テーブル71の目標ブロックアドレス部73に
はブロックEの代わりにブロックFの住所が貯蔵され
る。かつ、前進先取り技法に以前のCPU10より順次
ブロックが参照された場合、現在ブロックGに対して先
取りされるべきブロックはIのブロック(現在ブロック
の住所+2)である。しかし、順次参照時にブロックH
(現在ブロックの住所+1)がオン−チップメモリに存
在しない場合、キャッシュ接近失敗が発生するので、た
とえ先取りしようとするブロックはIブロック(現在ブ
ロックの住所+1)であるが、キャッシュ接近失敗を防
止するために、ブロックH(現在ブロックの住所+1)
が先取りされるべき1番目の候補ブロックとして決定さ
れる。先取りされるべき2番目の候補ブロックは元来先
取りしようとするブロック、すなわち、ブロックIであ
り、3番目の候補ブロックは前記ブロックGに対する目
標ブロック、4番目の候補ブロックは前記目標ブロック
の直前ブロック(目標ブロックの住所−1)が決定され
る。
リ参照時にCPU10により非順次ブロックが参照され
た場合、先取りされるべき1番目の候補ブロックは現在
ブロックに対する目標ブロックであり、2番目の候補ブ
ロックは該目標ブロックの直前のブロック(目標ブロッ
クの住所−1)で、これは目標ブロックの参照される前
に目標ブロックの直前のブロックの参照される可能性が
順次参照の場合より小さいためである。先取りされるべ
き3番目の候補ブロックは現在ブロックの次の番目のブ
ロック(現在ブロックの住所+1)で、4番目の候補ブ
ロックは現在ブロックの住所+2のブロックが決定され
る。
が決定されると、1番目の候補ブロックから先取りが行
なわれるが、1番目の候補ブロックがオン−チップメモ
リに存在しない場合は、該ブロックに対する先取りが行
なわれてから完了される。しかし、前記ブロックが既に
オン−チップメモリに存在する場合には2番目の候補ブ
ロックに対する先取りが行なわれ、2番目の候補ブロッ
クもオン−チップメモリに存在する場合は3番目の候補
ブロックに対する先取りが行なわれる。また、3番目の
候補ブロックがオン−チップメモリに存在する場合は4
番目の候補ブロックに先取りが行なわれるが、4番目の
候補ブロックもオン−チップメモリに存在する場合に先
取りの動作は行なわれない。
て、先取りバッファ30により先取りされるブロックが
該先取りバッファ30の容量を超過すると、先取りバッ
ファ30は自体的にブロック交換メカニズム(block re
placement mechanism )により既存の貯蔵されたブロッ
クを下位メモリ20から新しく先取りされたブロックに
交換される。かつ、先取りバッファ30のTビットフィ
ールド32は該当ブロックがCPU10により参照され
たブロックであるとリセット、参照されないブロックで
あるとセットとして表示される。また、先取りバッファ
30からブロックの交換の行なわれるとき、CPUによ
り参照されたブロックは捨てられ、参照されないブロッ
クはT−ビット32の値がデマルチプレクサ40の制御
信号として印加され未参照キャッシュ50に移動する。
したがって、先取りバッファ30のブロックの交換時に
従来捨てられた未参照先取りブロックは、本発明では捨
てられないで未参照先取りキャッシュ50に貯蔵され、
以前該ブロックがCPU10の参照対象になるとき、下
位メモリ20から再び取出されないですぐCPU10に
より参照される。
参照先取りキャッシュを利用した命令語先取り方法は、
既存種々の先取り技法により先取りされCPUにより参
照されない命令語ブロックを先取りバッファで交換する
とき、該ブロックを捨てる代わりに未参照先取りキャッ
シュのオン−チップメモリに貯蔵しておき、次の番に該
ブロックに対するメモリ参照があると下位メモリからそ
のブロックを再び取出さないで、すぐメモリ参照の行な
われるようにした。したがって、本発明は下位メモリか
らの取出回数を減らし、命令語参照時の下位メモリから
の取出に従うメモリ遅延を減少させて動作の速度を向上
させるとともに、メモリ交通量を減少し得る効果があ
る。
した命令語先取り回路を示した図面である。
ロックを決定する回路を示した図面である。
Claims (8)
- 【請求項1】 命令語先取りの技法において先取りバッ
ファのブロックの交換時、先取りされCPUにより参照
されないブロックを所定のオン−チップメモリに貯蔵
し、以後のメモリ参照時に対比する未参照先取りキャッ
シュを利用した命令語先取り方法。 - 【請求項2】 前記命令語先取り技法は、複合先取り技
法であることを特徴とする、請求項1に記載の未参照先
取りキャッシュを利用した命令語先取り方法。 - 【請求項3】 前記命令語先取り技法は、前進先取り技
法であることを特徴とする、請求項1に記載の未参照先
取りキャッシュを利用した命令語先取り方法。 - 【請求項4】 前記命令語先取り技法は、複数個の先取
り技法が適用されることを特徴とする、請求項1に記載
の未参照先取りキャッシュを利用した命令語先取り方
法。 - 【請求項5】 前記所定のオン−チップメモリは、キャ
ッシュメモリであることを特徴とする、請求項1に記載
の未参照先取りキャッシュを利用した命令語先取り方
法。 - 【請求項6】 メモリ参照のようなプログラムを行なう
ため各種の制御信号を出力するCPU(10)と、 該CPUのプログラムを行なうときに必要な命令語のブ
ロックを貯蔵する下位メモリ(20)と、 前記CPUにおいて参照される命令語ブロックの先取り
を制御する先取り制御部(70)と、 前記下位メモリ(20)から先取りされた命令語ブロッ
クを一時貯蔵し、該貯蔵した命令語ブロックがCPUに
より参照されるか否かに従って制御信号を出力する先取
りバッファ(30)と、 該先取りバッファ(30)から出力される命令語ブロッ
クを、前記先取りバッファ(30)の制御信号に従いC
PUにより参照された命令語ブロックと、参照されない
命令語ブロックとにデマルチプレクシングするデマルチ
プレクサ(40)と、 該デマルチプレクサ(40)から出力された命令語ブロ
ック中、前記CPUにより参照されない命令語ブロック
を貯蔵する未参照先取りブロック貯蔵部(50)と、 前記下位メモリ(20)、デマルチプレクサ(40)お
よび未参照先取りブロック貯蔵部(50)から出力され
た命令語ブロックを貯蔵する命令語キャッシュ(60)
と、 を備えた未参照先取りキャッシュを利用した命令語先取
り回路。 - 【請求項7】 前記未参照先取り貯蔵部(50)は、キ
ャッシュメモリであることを特徴とする、請求項6に記
載の未参照先取りキャッシュを利用した命令語先取り回
路。 - 【請求項8】 前記先取りバッファ(30)は、先取り
された命令語ブロックを貯蔵するキャッシュブロックフ
ィールド(33)と、該キャッシュブロックフィールド
(33)に貯蔵された命令語ブロックが有効するか否か
を表わすV−ビットフィールド(34)と、前記キャッ
シュブロックフィールド(33)に貯蔵された命令語ブ
ロックの住所を表わすタグフィールド(31)と、前記
キャッシュブロックフィールド(33)に貯蔵された命
令語ブロックが前記CPUにより参照されたかを表わす
T−ビットフィールド(32)とを備えて構成される、
請求項6に記載の未参照先取りキャッシュを利用した命
令語先取り回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950008366A KR0146059B1 (ko) | 1995-04-11 | 1995-04-11 | 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로 |
KR95P8366 | 1995-04-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08292913A true JPH08292913A (ja) | 1996-11-05 |
JP3628375B2 JP3628375B2 (ja) | 2005-03-09 |
Family
ID=19411899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10511995A Expired - Fee Related JP3628375B2 (ja) | 1995-04-11 | 1995-04-28 | 未参照先取りキャッシュを利用した命令語先取り方法およびその回路 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6272622B1 (ja) |
JP (1) | JP3628375B2 (ja) |
KR (1) | KR0146059B1 (ja) |
DE (1) | DE19533962B4 (ja) |
FR (1) | FR2733065B1 (ja) |
GB (1) | GB2299879B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100445944C (zh) * | 2004-12-21 | 2008-12-24 | 三菱电机株式会社 | 控制电路以及控制方法 |
JPWO2008093399A1 (ja) * | 2007-01-30 | 2010-05-20 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19912245B4 (de) * | 1998-03-20 | 2006-12-07 | Matsushita Electric Industrial Co., Ltd., Kadoma | Cache-Speicher-Vorrichtung mit variablem Blockgrößen-Mechanismus |
US6799263B1 (en) * | 1999-10-28 | 2004-09-28 | Hewlett-Packard Development Company, L.P. | Prefetch instruction for an unpredicted path including a flush field for indicating whether earlier prefetches are to be discarded and whether in-progress prefetches are to be aborted |
JP2003534902A (ja) * | 2000-06-01 | 2003-11-25 | シー.エイチ.オー.シー.エス.インコーポレイテッド | 酸素ラインを洗浄するためのシステムおよび方法 |
US8549226B2 (en) * | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
US7395375B2 (en) * | 2004-11-08 | 2008-07-01 | International Business Machines Corporation | Prefetch miss indicator for cache coherence directory misses on external caches |
US20060200631A1 (en) * | 2005-03-02 | 2006-09-07 | Mitsubishi Denki Kabushiki Kaisha | Control circuit and control method |
JP2008186233A (ja) * | 2007-01-30 | 2008-08-14 | Toshiba Corp | 命令キャッシュプリフェッチ制御方法及びその装置 |
US11169925B2 (en) * | 2015-08-25 | 2021-11-09 | Samsung Electronics Co., Ltd. | Capturing temporal store streams into CPU caches by dynamically varying store streaming thresholds |
US10719321B2 (en) * | 2015-09-19 | 2020-07-21 | Microsoft Technology Licensing, Llc | Prefetching instruction blocks |
US9928176B2 (en) * | 2016-07-20 | 2018-03-27 | Advanced Micro Devices, Inc. | Selecting cache transfer policy for prefetched data based on cache test regions |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
US5317718A (en) * | 1990-03-27 | 1994-05-31 | Digital Equipment Corporation | Data processing system and method with prefetch buffers |
EP0449540B1 (en) | 1990-03-27 | 2000-05-17 | Digital Equipment Corporation | Memory system and method with prefetch buffer |
US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
JPH0612323A (ja) | 1992-02-27 | 1994-01-21 | Hewlett Packard Co <Hp> | キャッシュメモリシステム |
US5454117A (en) * | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
DE4330119C1 (de) * | 1993-09-06 | 1994-09-22 | Siemens Ag | Verfahren zum gesteuerten Vorladen von Informationsblöcken in Cacheblockgröße in einen Cachespeicher eines Rechners bei Ablauf eines Programms |
-
1995
- 1995-04-11 KR KR1019950008366A patent/KR0146059B1/ko not_active IP Right Cessation
- 1995-04-28 JP JP10511995A patent/JP3628375B2/ja not_active Expired - Fee Related
- 1995-09-01 US US08/522,222 patent/US6272622B1/en not_active Expired - Lifetime
- 1995-09-07 GB GB9518309A patent/GB2299879B/en not_active Expired - Lifetime
- 1995-09-08 FR FR9510520A patent/FR2733065B1/fr not_active Expired - Lifetime
- 1995-09-13 DE DE19533962A patent/DE19533962B4/de not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100445944C (zh) * | 2004-12-21 | 2008-12-24 | 三菱电机株式会社 | 控制电路以及控制方法 |
JPWO2008093399A1 (ja) * | 2007-01-30 | 2010-05-20 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
JP4491500B2 (ja) * | 2007-01-30 | 2010-06-30 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
US8671246B2 (en) | 2007-01-30 | 2014-03-11 | Fujitsu Limited | Information processing system and information processing method |
Also Published As
Publication number | Publication date |
---|---|
KR960038620A (ko) | 1996-11-21 |
DE19533962B4 (de) | 2008-06-26 |
DE19533962A1 (de) | 1996-10-24 |
GB9518309D0 (en) | 1995-11-08 |
KR0146059B1 (ko) | 1998-09-15 |
GB2299879A (en) | 1996-10-16 |
JP3628375B2 (ja) | 2005-03-09 |
FR2733065B1 (fr) | 1997-12-05 |
US6272622B1 (en) | 2001-08-07 |
FR2733065A1 (fr) | 1996-10-18 |
GB2299879B (en) | 2000-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141553B2 (en) | High-performance cache system and method | |
US5381533A (en) | Dynamic flow instruction cache memory organized around trace segments independent of virtual address line | |
US6611910B2 (en) | Method for processing branch operations | |
US6539458B2 (en) | Hierarchical memory for efficient data exchange control | |
KR100411529B1 (ko) | 제2 레벨 분기 예측 테이블을 이용한 분기 예측 방법 및장치 | |
US5828860A (en) | Data processing device equipped with cache memory and a storage unit for storing data between a main storage or CPU cache memory | |
US20150186293A1 (en) | High-performance cache system and method | |
Hsu et al. | Prefetching in supercomputer instruction caches | |
JP3739491B2 (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
US5822757A (en) | Computer system with multi-buffer data cache for prefetching data having different temporal and spatial localities | |
US5423048A (en) | Branch target tagging | |
US9753855B2 (en) | High-performance instruction cache system and method | |
JPH0557617B2 (ja) | ||
US9141388B2 (en) | High-performance cache system and method | |
US7047362B2 (en) | Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer | |
WO2005088455A2 (en) | Cache memory prefetcher | |
US9569219B2 (en) | Low-miss-rate and low-miss-penalty cache system and method | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
CN112579175B (zh) | 分支预测方法、分支预测装置和处理器核 | |
JP3628375B2 (ja) | 未参照先取りキャッシュを利用した命令語先取り方法およびその回路 | |
JP2008186233A (ja) | 命令キャッシュプリフェッチ制御方法及びその装置 | |
US20150193348A1 (en) | High-performance data cache system and method | |
US20220137974A1 (en) | Branch density detection for prefetcher | |
JPH0477344B2 (ja) | ||
JP3284508B2 (ja) | データ先読み制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040726 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040729 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041025 |
|
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: 20041109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041208 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071217 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |