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
Application number
JP7105119A
Other languages
English (en)
Other versions
JP3628375B2 (ja
Inventor
Tack-Don Han
鐸敦 韓
Gi-Ho Park
基豪 朴
Shin-Dug Kim
新徳 金
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.)
SK Hynix Inc
Original Assignee
LG Semicon Co Ltd
Goldstar Electron Co Ltd
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 LG Semicon Co Ltd, Goldstar Electron Co Ltd filed Critical LG Semicon Co Ltd
Publication of JPH08292913A publication Critical patent/JPH08292913A/ja
Application granted granted Critical
Publication of JP3628375B2 publication Critical patent/JP3628375B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using 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

(57)【要約】 【目的】 キャッシュミスを減らし、下位メモリに対す
る読出遅延を減少させるとともに、メモリ交通量を減ら
した未参照先取りキャッシュを利用した命令語先取り方
法およびその回路を提供する。 【構成】 回路はCPU10により参照されるべき命令
語ブロックを貯蔵する下位メモリ20と、下位メモリ2
0から先取りされたブロックを一時貯蔵する先取りバッ
ファ30と、先取りバッファ30から出力されたブロッ
クがCPU10により参照されたか否かに従いデマルチ
プレクシングを行なうデマルチプレクサ40と、デマル
チプレクサ40から出力されるブロック中、CPU10
により参照されないブロックを貯蔵する未参照先取りキ
ャッシュ50と、CPU10により参照された命令語ブ
ロックが貯蔵される命令語キャッシュ60と、CPU1
0の制御により先取り動作を制御する先取り制御部70
とにより構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、未参照先取りキャッシ
ュを利用した命令語先取り方法およびその回路に関し、
特に、下位メモリから先取りされCPU(Central Proc
essing Unit)により参照されないブロックを、オン−
チップキャッシュメモリ(on-chip cache memory)の未
参照先取りキャッシュ(Non-Referenced Prefetch Cach
e:NRPキャッシュ)に貯蔵し、キャッシュ接近失敗
(cache miss)を減らし、下位メモリに対する近接遅延
(access latency)およびメモリ交通量(memory traff
ic)を減らし得る未参照先取りキャッシュを利用した命
令語先取り方法および回路に関するものである。
【0002】
【従来の技術】CPUの性能(Performance )は速い速
度で発展するのに比べ、メモリ性能の発展速度はそれに
及ばない。このようなCPUとメモリの性能格差(Perf
ormance Gap )は段々深化され、したがって、メモリ階
層(Memory Hierarchy)を効率的に構成するのがコンピ
ュータシステムの全体性能に重要な影響を及ぼす要素と
なった。
【0003】現在、大部分のコンピュータシステムで
は、メモリの効率的な構成のため、キャッシュメモリが
使用されている。キャッシュメモリは基本的にコンピュ
ータのプログラムの行なわれるときに現れる参照集約性
(Locality of Reference )を利用するものである。一
般に、コンピュータのプログラムの行なわれるときにC
PUが参照する下位メモリのアドレスは、ある限定され
た時間では下位メモリの領域における1つまたは2つの
領域のみを集中的に参照し、これを空間的集約性(spat
ial locality)と言われる。普通のプログラムではいく
つかのループ(loop)を実行するに所要される時間が、
全プログラムの行なわれる時間の大部分を占め、1つの
ループ内では同様な命令が反復継続して行なわれる。か
つ、現在参照される命令が間もなく参照される場合が多
いし、これを時間的集約性(temporal locality )と言
われる。
【0004】このような集約性を利用して、下位メモリ
とCPU間に速度の速い所定記憶装置をおき、ここにプ
ログラムの行なわれる時頻度に使用される下位メモリの
一部領域を貯蔵することがキャッシュメモリの原理であ
る。
【0005】なお、大部分の応用プログラムはこのよう
な2つの特性をすべて有しているので、数キロバイト程
度の小さいメモリを使う場合にも、CPUが下位メモリ
を参照する、すなわち、全体参照の90%以上をキャッ
シュメモリで処理することが可能である。
【0006】キャッシュメモリを使用することにおい
て、CPUが参照しようとする命令語ブロックがキャッ
シュメモリに存在し参照することをキャッシュ接近成功
(cache hit )と言い、その反対の場合はキャッシュ接
近失敗(cache miss)と言う。キャッシュメモリの性能
を表わす尺度としてはキャッシュ接近成功率が使用さ
れ、式で示すと次のようである。
【0007】キャッシュ接近成功率(Hit ratio )=キ
ャッシュ接近成功(cache hit )の回数/メモリ参照の
全体回数 一方キャッシュ接近失敗の有形を3つで分けると、初期
接近失敗(compulsorymiss )、衝突接近失敗(conflic
t miss )、および容量接近失敗(capacity miss )に
分類される。初期接近失敗はあるブロックが最初に参照
されるとき発生するキャッシュ接近失敗である。衝突接
近失敗はキャッシュメモリの領域に写像(mapping )さ
れているブロックが他のブロックに交換(replacement
)された後、再び参照されるとき発生する接近失敗で
ある。容量接近失敗はある応用プログラムを行なうと
き、CPUが頻繁に参照するページ(page)の集合であ
る作業集合(working set )がキャッシュメモリの容量
よりも大きい場合に発生する接近失敗である。
【0008】
【発明が解決しようとする課題】このような種類の接近
失敗はキャッシュメモリの容量が大きくなるに従って全
体接近失敗に対する各々の比率が違うこととなる。初期
接近失敗は、特性上、キャッシュメモリの容量にかかわ
らず一定で、衝突接近失敗と容量接近失敗はキャッシュ
メモリの容量が大きくなると大抵減少するこ傾向を見せ
る。しかし、VLSI(Very Large Scale Integratio
n)の発達に従ってオン−チップキャッシュ(on-chip c
ache )メモリの容量が段々大きくなっているので、初
期接近失敗の全体キャッシュ接近失敗に対して占める比
率も大きくなっている。このような状況のもと、現在大
部分のコンピュータシステムが大容量のキャッシュメモ
リを主に使用することにより、前述のような初期接近失
敗を効果的に減らし得る方法の重要性が増えつつある。
【0009】初期接近失敗を減らす方法中で一番簡単な
ものはキャッシュブロックの大きさを大きくすることで
あり、すると、一度のキャッシュ接近失敗時に多い量の
内容がキャッシュメモリに貯蔵されて、順次的な参照の
場合キャッシュ接近失敗を減らし得る。しかし、この方
法は、1つのブロックを下位メモリからキャッシュメモ
リに取出しするのに所要されるCPUサイクルが増加
し、メモリ交通量が増加し、またキャッシュ接近失敗の
費用が増加するという問題点があった。かつ、キャッシ
ュブロックが大きい場合には、参照される部分はブロッ
クの一部であるが、全体ブロックが交換されて、キャッ
シュ汚染が(cache pollution )発生し性能が低下す
る。また、ブロックの大きさはメモリ遅延(latency )
と伝送率(transfer rate )が反映されて決定されるの
で、先取り機能の強化のためキャッシュブロックの大き
さを単純に増加させることができないという問題点があ
った。
【0010】このような問題点を解決するため種々の先
取り技法が提案されている。先取りというのは、CPU
がメモリのあるブロックに対して参照する前に参照が予
想されるメモリブロックを下位メモリから上位メモリに
取出しすることである。先取り技法中で一番簡単な技法
の順次先取り技法は、現在CPUにより参照されるブロ
ックの次のブロックを順次的に先取る方法であり、応用
プログラムにおいてメモリ参照が順次性を多く持つ場合
に性能の大きい向上を得ることができるし、一般に、命
令語参照がデータ参照に比べより大きい地域性を有する
ので、この場合順次先取りが比較的優秀な性能を表わ
す。かつ、これを行なうためのハードウェアが複雑でな
いという長所がある。しかし、順次先取りは命令語の参
照が順次的な経路を従わない場合には、性能の向上を期
待することができない。すなわち、条件分岐命令および
無条件分岐命令のようなメモリ参照が非順次経路に行な
われる場合には、順次先取りにより得られる利得が大き
くないという短所がある。
【0011】目標先取り(target prefetching)という
のは、以前にあるブロックに対して参照が行なわれた経
路を予測テーブルに貯蔵しておき、以後に該ブロックに
対する参照が行なわれるとき、前記予測テーブルに貯蔵
された情報を利用して先取りするブロックを決定する方
法である。目標先取り技法は無条件分岐および条件分岐
が以前遂行経路を従う傾向が多いのに基づき、以前の行
なわれたメモリ参照が順次ブロック(sequential bloc
k)を参照した場合には、順次ブロックを、非順次ブロ
ック(non-sequential block)を参照した場合には、非
順次ブロックを先取りする。すなわち、メモリ参照時に
よるブロックAの後にブロックBが参照された場合、次
のメモリ参照においてAブロックが参照されるとき、ブ
ロックBを先取りする方法である。このように目標先取
りは分岐命令の性質を利用するので、順次先取りに比べ
高い正確度を有する。しかし、分岐命令遂行時にメモリ
参照がいつも以前の経路を従うことはないし、分岐命令
におけるメモリ参照が順次と非順次の経路を交互に行な
う場合には、目標先取り方法により性能の向上を図り得
ないという問題点があった。
【0012】複合先取り方法(Hybrid prefetching)と
いうのは、スーパコンピュータなどのようなメモリ帯域
幅(bandwidth )の制限が比較的少ないシステムにおい
て順次ブロックと目標ブロックのすべてを先取りする方
法である。しかし、マイクロプロセッサ(microprocess
or)を基板とするシステムにおいてはメモリ帯域幅の制
限のため、以前に行なわれた情報を利用して先取りする
ブロックの優先順位を決めて先取りを行なう。これは既
存の複合先取り技法の変形された形態で、次のように行
なわれる。
【0013】たとえば、以前にメモリ参照が順次的な経
路に行なわれた場合、現在ブロックの順次ブロック(現
在ブロックの住所+1)が先取りされるべき1番目の候
補ブロックに決定されるとともに、現在ブロックに対す
る目標ブロックが先取りされるべき2番目の候補ブロッ
クに決定される。反面に、以前にメモリ参照が非順次的
経路に行なわれた場合には、現在ブロックに対する目標
ブロックが先取りされるべき1番目の候補ブロックに決
定されるとともに、現在ブロックの順次ブロック(現在
ブロックの住所+1)が先取りされるべき2番目の候補
に決定される。前述のように1番目と2番目の候補が決
定されると、該候補ブロックに対する先取りの動作が行
なわれる。1番目の候補ブロックがオン−チップメモリ
に存在していないと、下位メモリからオン−チップメモ
リに先取りされた後、動作は終了する。しかし、前記1
番目の候補ブロックがオン−チップメモリに存在する場
合は、2番目の候補ブロックが下位メモリからオン−チ
ップメモリに先取りされ、前記1番目、2番目の候補ブ
ロックがすべてオン−チップメモリに存在する場合先取
りは行なわれない。このように変形された複合先取り技
法は大部分の場合に順次ブロックと目標ブロックとを先
取りする。しかし、変形された複合先取り技法は、従来
の複合先取り技法程度の性能向上しか得ることができな
いし、かつ、従来の複合先取り技法は性能の向上が得ら
れたが、データ伝送率(data transfer rate)を意味す
るメモリ帯域幅に対する制限が比較的少ないスーパコン
ピュータなどのみに行なうことが可能という問題点があ
った。
【0014】したがって、本発明は先取りされCPUに
より参照されないブロックをオン−チップキャッシュメ
モリの未参照先取りキャッシュに貯蔵し、制限されたメ
モリ帯域幅を有しているマイクロプロセッサを利用した
システムにおいても、順次ブロックと目標ブロックのす
べてを先取りしてキャッシュ接近失敗を減らし、下位メ
モリに対する接近遅延を減少させるとともに、メモリ交
通量を減らし得る未参照先取りキャッシュを利用した命
令語先取り方法およびその回路を提供することを目的と
する。
【0015】かつ、本発明の他の目的は、命令語先取り
技法において先取りバッファのブロックが交換されると
き、先取りされCPUにより参照されないブロックを所
定のオン−チップメモリに貯蔵し以後のメモリ参照に対
応するように、未参照先取りキャッシュを利用した命令
語先取り方法を提供することである。
【0016】
【課題を解決するための手段】そして、このような本発
明の目的は、未参照先取りキャッシュを利用した命令語
先取り回路において、メモリ参照のようなプログラムを
行なうため各種制御信号を出力するCPU10と、CP
U10のプログラムを行なうのに必要な命令語ブロック
を貯蔵する下位メモリ20と、CPU10により参照さ
れる命令語ブロックの先取りを制御する先取り制御部7
0と、下位メモリから先取りされた命令語ブロックを一
時貯蔵し、かつ該貯蔵された命令語ブロックがCPU1
0により参照されたか否かに従い制御信号を出力する先
取りバッファ30と、先取りバッファ30から出力する
命令語ブロックを先取りバッファの制御信号に従って、
CPUにより参照の行なわれた命令語ブロックとそうで
ないブロックとにデマルチプレクシングするデマルチプ
レクサ40と、デマルチプレクサ40から出力された命
令語ブロック中、CPUにより参照されない命令語ブロ
ックを貯蔵する未参照先取りブロック貯蔵部50と、下
位メモリ、デマルチプレクサおよび未参照先取りブロッ
ク貯蔵部から出力された命令語ブロックを貯蔵する命令
語キャッシュと、を備えることにより構成される。
【0017】
【作用】既存の種々の先取り技法により先取りされCP
Uにより参照されない命令語ブロックを先取りバッファ
で交換するとき、該ブロックを捨てる代わりに未参照先
取りキャッシュのオン−チップメモリに貯蔵しておき、
次の番に該ブロックに対するメモリ参照があると下位メ
モリからそのブロックを再び取出さないで、すぐメモリ
参照の行なわれるようにした。
【0018】
【実施例】本発明に関わる未参照先取りキャッシュを利
用した命令語先取り回路においては、図1に示すよう
に、命令語を参照してコンピュータの各種制御動作を行
なうCPU10と、CPU10により参照されるべき命
令語ブロックを貯蔵する下位メモリ20と、下位メモリ
20から先取りされたブロックを一時貯蔵するオン−チ
ップメモリの先取りバッファ30と、先取りバッファ3
0から出力されたブロックがCPU10により参照され
たか否かに従いデマルチプレクシングするデマルチプレ
クサ40と、デマルチプレクサ40から出力されるブロ
ック中、CPU10により参照されないブロックを貯蔵
するオン−チップメモリの未参照先取りキャッシュ50
と、CPU10により参照された命令語ブロックの貯蔵
されるオン−チップメモリの命令語キャッシュ60と、
CPU10の制御により先取り動作を制御する先取り制
御部70とにより構成される。
【0019】ここで、前記下位メモリ20は、メモリ階
層(hierarchy )が単段階キャッシュメモリシステムの
場合には、メインメモリとなり、メモリ階層が多段階キ
ャッシュメモリシステムの場合には下位段階のキャッシ
ュメモリまたはメインメモリとなる。図1はCPU1
0、先取りバッファ30、未参照先取りキャッシュ5
0、命令語キャッシュ60、および先取り制御部70な
どが分離された回路を仮定しているが、このような構成
要素は1つのプロセッサチップにともに存在させること
もできる。
【0020】前記先取りバッファ30においては、下位
メモリ20から先取りされたブロックを貯蔵するキャッ
シュブロックフィールド33と、キャッシュブロックフ
ィールド33に貯蔵されたブロックの住所を示すタグフ
ィールド31と、キャッシュブロックフィールド33に
貯蔵されたブロックがCPUにより参照されたか否かを
示すT−ビットフィールド32と、キャッシュブロック
フィールド33に貯蔵されたブロックの内容が有効する
かを示すV−ビットフィールド34とにより構成され
る。
【0021】先取り制御部70においては、先取りされ
るべき候補ブロックを決定し、該決定された候補ブロッ
クがオン−チップメモリに存在するかを検索し、検索の
結果、前記決定されたブロックがオン−チップメモリに
存在しない場合には、下位メモリ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とによ
り構成される。
【0022】このように構成された未参照先取りブロッ
クを利用した命令語先取り方法およびその回路は色々の
先取り技法に適用し得るが、まず、順次ブロックと目標
ブロックのすべてを先取りする複合先取り技法に適用し
た場合を説明する。本発明では命令語キャッシュとデー
タキャッシュとが各々分離されたシステムを仮定した。
かつ、本発明は直接写像キャッシュを仮定したが集合関
連写像、完全関連写像などが使用される場合にも同様に
適用される。
【0023】あるプログラムの行なわれるときに必要な
命令語ブロックはCPUにより参照される。このときブ
ロックAに対する参照が完了されると、新しいブロック
CPU10により参照され、該新しく参照されるブロッ
クはプログラムに従い順次ブロックまたは非順次ブロッ
クになることができる。
【0024】まず、ブロックAの後に続いて順次ブロッ
クBが参照されると、予測テーブル71の更新が行なわ
れ、予測テーブル制御部76は前記ブロックAに対する
情報が予測テーブル71に存在するかを検索する。も
し、予測テーブル71に前記ブロックAに対する情報が
存在しないと、予測テーブル71は更新されない。なぜ
ならば、ブロックAに対する該当情報が予測テーブル7
1に存在しないと、該ブロックAの後に続いて順次的ブ
ロックBが省略時(default )の先取りされるべき対象
になるためである。しかし、予測テーブル71の検索結
果、ブロックAに対する情報が予測テーブルに存在する
と、以前遂行情報フィールド74にブロックAに該当す
るフィールドが順次経路にセッティングされる。
【0025】予測テーブル71の更新後に予測テーブル
制御部76は先取りする候補ブロックを決定し、これは
現在CPUにより参照されたブロックBに対する予測テ
ーブル71が有している情報を利用して行なわれる。以
前CPU10によりブロックBの次に参照された経路が
順次的である場合、マルチプレクサ75の選択によりブ
ロックBの順次ブロック(現在ブロックBのアドレス+
1)が1番目の先取りされるべき候補ブロックに決定さ
れ、現在ブロックBに対する目標ブロック、すなわち、
ブロックBに該当する目標ブロックアドレス部73に貯
蔵されたブロックが2番目の先取りされるべき候補ブロ
ックに決定される。反面に、以前のCPU10によりブ
ロックBの次に参照された経路が非順次的である場合
は、マルチプレクサ75の選択により、目標ブロックア
ドレス部73に貯蔵された現在ブロックBに対する目標
ブロックが先取りされるべき1番目の候補ブロックに決
定され、現在ブロックの順次ブロックが先取りされるべ
き2番目の候補ブロックに決定される。
【0026】かつ、CPU10によりブロックAの次に
非順次的なブロックCが参照される場合は、予測テーブ
ルの更新のため予測テーブル制御部76は、前記ブロッ
クAに対する情報が予測テーブルに存在するかを検索す
る。ブロックAに対する情報が予測テーブル71に存在
しないときには、予測テーブル制御部76はブロックA
のため予測テーブル71の1つのエントリ(entry )を
割当した後、ブロックAのアドレスを予測テーブル71
の現在ブロックアドレス部72に貯蔵し、ブロックCの
アドレスを目標ブロックアドレス部73に貯蔵して、以
前に行なわれた情報フィールド74の該当フィールドを
非順次経路にセッティングする。しかし、前記ブロック
Aに対する情報が予測テーブルに存在する場合には、ブ
ロックCのアドレスを目標ブロックアドレス部73に貯
蔵し、以前に行なわれた情報フィールド74の該当フィ
ールドを非順次経路にセッティングする。
【0027】次いで、予測テーブルの更新後に、予測テ
ーブル制御部70は先取りする候補ブロックを決定する
のに、これは現在CPU10により参照されたブロック
がCブロックであるので、ブロックCに対する予測テー
ブル71の情報を利用して行なわれる。ブロックCに対
する先取り候補ブロックの決定は、ブロックCに対する
予測テーブル71の以前遂行情報フィールド74の情
報、すなわち、以前のCPUによりブロックCの次に参
照された経路が順次経路であるか、または非順次経路で
あるかに従い、前記ブロックBの場合と同様な方法によ
り決定される。
【0028】前述したように、予測テーブル71の更新
および先取りされるべき候補ブロックが決定された後、
先取りの動作は行なわれる。候補ブロックに対する先取
りは、まず1番目の先取り候補ブロックに対して行なわ
れる。このため先取り制御部70は1番目の候補ブロッ
クがオン−チップメモリ、すなわち命令語キャッシュ6
0、未参照キャッシュ50、および先取りバッファ30
に存在するかを検索する。1番目の先取り候補ブロック
がオン−チップメモリに存在しない場合には、先取り制
御部70は1番目の先取り候補ブロックを下位メモリ1
0から先取りして先取りバッファに貯蔵し、先取りの動
作を終了する。しかし、前記1番目の先取り候補ブロッ
クがオン−チップメモリに存在する場合には、先取り制
御部70は前述した方法により、2番目の先取り候補ブ
ロックに対する先取りを行なう。もし、前述先取り候補
ブロックと2番目の先取り候補ブロックのすべてが存在
するときは先取りは行なわれない。
【0029】以上のように、先取りバッファにより先取
りされたブロックが先取りバッファ30の容量を超過す
ると、先取りバッファ30は自体的なブロック交換メカ
ニズム(block replacement mechanism )により、既存
の貯蔵されていたブロックは下位メモリ20から新しく
先取りされたブロックに交換される。かつ、先取りバッ
ファ30のT−ビットフィールド32においては、CP
Uにより該当ブロックが参照されるときはリセット、参
照されないときはセットと表示され、よって、先取りバ
ッファ30でのブロックの交換が行なわれるとき、CP
U10により参照されたブロックは捨てられ、参照され
ないブロックはT−ビット32の値がデマルチプレクサ
40の制御信号として印加されて未参照先取りキャッシ
ュ50へ移動する。なお、先取りバッファ30のブロッ
ク交換時、従来のCPU10により参照されない未参照
先取りブロックは捨てられたが、本発明の未参照先取り
ブロックは捨てられないで未参照キャッシュ50に貯蔵
され、以後該貯蔵されたブロックがCPU10の参照対
象になる場合、下位メモリ20から再び取出しされない
ですぐ参照が可能になる。
【0030】本発明に関わる未参照先取りキャッシュを
利用した命令語先取り方法を、変形された複合先取り技
法と、前進先取り技法を混合した技法に適用すると、よ
り優秀な性能の向上を図り得る。前進先取り技法は現在
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)が決定され
る。
【0031】また、前進先取り技法において以前のメモ
リ参照時にCPU10により非順次ブロックが参照され
た場合、先取りされるべき1番目の候補ブロックは現在
ブロックに対する目標ブロックであり、2番目の候補ブ
ロックは該目標ブロックの直前のブロック(目標ブロッ
クの住所−1)で、これは目標ブロックの参照される前
に目標ブロックの直前のブロックの参照される可能性が
順次参照の場合より小さいためである。先取りされるべ
き3番目の候補ブロックは現在ブロックの次の番目のブ
ロック(現在ブロックの住所+1)で、4番目の候補ブ
ロックは現在ブロックの住所+2のブロックが決定され
る。
【0032】このように先取りされるべき候補ブロック
が決定されると、1番目の候補ブロックから先取りが行
なわれるが、1番目の候補ブロックがオン−チップメモ
リに存在しない場合は、該ブロックに対する先取りが行
なわれてから完了される。しかし、前記ブロックが既に
オン−チップメモリに存在する場合には2番目の候補ブ
ロックに対する先取りが行なわれ、2番目の候補ブロッ
クもオン−チップメモリに存在する場合は3番目の候補
ブロックに対する先取りが行なわれる。また、3番目の
候補ブロックがオン−チップメモリに存在する場合は4
番目の候補ブロックに先取りが行なわれるが、4番目の
候補ブロックもオン−チップメモリに存在する場合に先
取りの動作は行なわれない。
【0033】本発明の適用された前進先取り技法におい
て、先取りバッファ30により先取りされるブロックが
該先取りバッファ30の容量を超過すると、先取りバッ
ファ30は自体的にブロック交換メカニズム(block re
placement mechanism )により既存の貯蔵されたブロッ
クを下位メモリ20から新しく先取りされたブロックに
交換される。かつ、先取りバッファ30のTビットフィ
ールド32は該当ブロックがCPU10により参照され
たブロックであるとリセット、参照されないブロックで
あるとセットとして表示される。また、先取りバッファ
30からブロックの交換の行なわれるとき、CPUによ
り参照されたブロックは捨てられ、参照されないブロッ
クはT−ビット32の値がデマルチプレクサ40の制御
信号として印加され未参照キャッシュ50に移動する。
したがって、先取りバッファ30のブロックの交換時に
従来捨てられた未参照先取りブロックは、本発明では捨
てられないで未参照先取りキャッシュ50に貯蔵され、
以前該ブロックがCPU10の参照対象になるとき、下
位メモリ20から再び取出されないですぐCPU10に
より参照される。
【0034】
【発明の効果】以上説明したように、本発明に関わる未
参照先取りキャッシュを利用した命令語先取り方法は、
既存種々の先取り技法により先取りされCPUにより参
照されない命令語ブロックを先取りバッファで交換する
とき、該ブロックを捨てる代わりに未参照先取りキャッ
シュのオン−チップメモリに貯蔵しておき、次の番に該
ブロックに対するメモリ参照があると下位メモリからそ
のブロックを再び取出さないで、すぐメモリ参照の行な
われるようにした。したがって、本発明は下位メモリか
らの取出回数を減らし、命令語参照時の下位メモリから
の取出に従うメモリ遅延を減少させて動作の速度を向上
させるとともに、メモリ交通量を減少し得る効果があ
る。
【図面の簡単な説明】
【図1】本発明に関わる未参照先取りキャッシュを利用
した命令語先取り回路を示した図面である。
【図2】図1の先取り制御部における先取りする候補ブ
ロックを決定する回路を示した図面である。
【符号の説明】
10 CPU 20 下位メモリ 30 先取りバッファ 40 デマルチプレクサ 50 未参照先取りキャッシュ 60 命令語キャッシュ 70 先取り制御部 71 予測テーブル 72 現在ブロックアドレス部 73 目標ブロックアドレス部 74 以前遂行情報フィールド 75 マルチプレクサ 76 予測テーブル制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 金 新徳 大韓民国京畿道高陽市注葉洞38京南アパー ト210−1302

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 命令語先取りの技法において先取りバッ
    ファのブロックの交換時、先取りされCPUにより参照
    されないブロックを所定のオン−チップメモリに貯蔵
    し、以後のメモリ参照時に対比する未参照先取りキャッ
    シュを利用した命令語先取り方法。
  2. 【請求項2】 前記命令語先取り技法は、複合先取り技
    法であることを特徴とする、請求項1に記載の未参照先
    取りキャッシュを利用した命令語先取り方法。
  3. 【請求項3】 前記命令語先取り技法は、前進先取り技
    法であることを特徴とする、請求項1に記載の未参照先
    取りキャッシュを利用した命令語先取り方法。
  4. 【請求項4】 前記命令語先取り技法は、複数個の先取
    り技法が適用されることを特徴とする、請求項1に記載
    の未参照先取りキャッシュを利用した命令語先取り方
    法。
  5. 【請求項5】 前記所定のオン−チップメモリは、キャ
    ッシュメモリであることを特徴とする、請求項1に記載
    の未参照先取りキャッシュを利用した命令語先取り方
    法。
  6. 【請求項6】 メモリ参照のようなプログラムを行なう
    ため各種の制御信号を出力するCPU(10)と、 該CPUのプログラムを行なうときに必要な命令語のブ
    ロックを貯蔵する下位メモリ(20)と、 前記CPUにおいて参照される命令語ブロックの先取り
    を制御する先取り制御部(70)と、 前記下位メモリ(20)から先取りされた命令語ブロッ
    クを一時貯蔵し、該貯蔵した命令語ブロックがCPUに
    より参照されるか否かに従って制御信号を出力する先取
    りバッファ(30)と、 該先取りバッファ(30)から出力される命令語ブロッ
    クを、前記先取りバッファ(30)の制御信号に従いC
    PUにより参照された命令語ブロックと、参照されない
    命令語ブロックとにデマルチプレクシングするデマルチ
    プレクサ(40)と、 該デマルチプレクサ(40)から出力された命令語ブロ
    ック中、前記CPUにより参照されない命令語ブロック
    を貯蔵する未参照先取りブロック貯蔵部(50)と、 前記下位メモリ(20)、デマルチプレクサ(40)お
    よび未参照先取りブロック貯蔵部(50)から出力され
    た命令語ブロックを貯蔵する命令語キャッシュ(60)
    と、 を備えた未参照先取りキャッシュを利用した命令語先取
    り回路。
  7. 【請求項7】 前記未参照先取り貯蔵部(50)は、キ
    ャッシュメモリであることを特徴とする、請求項6に記
    載の未参照先取りキャッシュを利用した命令語先取り回
    路。
  8. 【請求項8】 前記先取りバッファ(30)は、先取り
    された命令語ブロックを貯蔵するキャッシュブロックフ
    ィールド(33)と、該キャッシュブロックフィールド
    (33)に貯蔵された命令語ブロックが有効するか否か
    を表わすV−ビットフィールド(34)と、前記キャッ
    シュブロックフィールド(33)に貯蔵された命令語ブ
    ロックの住所を表わすタグフィールド(31)と、前記
    キャッシュブロックフィールド(33)に貯蔵された命
    令語ブロックが前記CPUにより参照されたかを表わす
    T−ビットフィールド(32)とを備えて構成される、
    請求項6に記載の未参照先取りキャッシュを利用した命
    令語先取り回路。
JP10511995A 1995-04-11 1995-04-28 未参照先取りキャッシュを利用した命令語先取り方法およびその回路 Expired - Fee Related JP3628375B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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