JP2000250809A - キャッシュメモリ装置 - Google Patents

キャッシュメモリ装置

Info

Publication number
JP2000250809A
JP2000250809A JP11049084A JP4908499A JP2000250809A JP 2000250809 A JP2000250809 A JP 2000250809A JP 11049084 A JP11049084 A JP 11049084A JP 4908499 A JP4908499 A JP 4908499A JP 2000250809 A JP2000250809 A JP 2000250809A
Authority
JP
Japan
Prior art keywords
data transfer
size
data
cache
hit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11049084A
Other languages
English (en)
Inventor
Atsuhiro Tanaka
淳裕 田中
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP11049084A priority Critical patent/JP2000250809A/ja
Publication of JP2000250809A publication Critical patent/JP2000250809A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 事前にプログラム動作を解析すること無しに
ブロックサイズを適切に変化させ、しかもヒット率を改
善できるうえ、回路規模の増大を回避することができる
キャッシュメモリ装置を実現する。 【解決手段】 キャッシュのブロックサイズを仮想的に
変化させた時のヒット数を算出し、それらを用いて最適
なデータ転送のサイズを決定し、データ転送を実行する
時にキャッシュと主メモリとの間のデータ転送サイズを
決定したサイズに変化させるので、キャッシュのヒット
率が改善するうえ、実行時にデータ参照特性を解析して
データ転送サイズを決定するから実行前に応用プログラ
ムの特徴を解析する必要が無くなる。さらにキャッシュ
内のブロックサイズを変更させることなくデータ転送サ
イズのみを変更させるから、回路規模を小さくできる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、主メモリ装置への
アクセスを高速化するために用いられるキャッシュメモ
リ装置に関する。
【0002】
【従来の技術】従来より、キャッシュメモリ装置のブロ
ックサイズ(キャッシュ内でのデータ管理単位)を実行
時に変化させることでヒット率を向上するようにした技
術が知られており、例えば特開平5−40694号公報
には外部から与えられる信号(モードフラグ)を用いて
ブロックサイズを変化させる手法が開示されている。こ
の発明は応用プログラムのメモリ参照特性を事前に解析
しておき、その結果に基づいてブロックサイズを実行時
に変化させることによりキャッシュのヒット率を向上さ
せるようになっている。また、キャッシュ領域を有効に
活用する手法としては、周知のLRU(LeastRecently
Used)やLFU(Least Frequently Used)アルゴリズ
ムや、特願平10−033854号公報に開示の、LR
UとLFUの双方の欠点を補うような手法も知られてい
る。
【0003】
【発明が解決しようとする課題】ところで、特開平5−
40694号公報に開示の技術は、指定された通りにブ
ロックサイズを変化させ得るものの、事前にプログラム
動作を解析することなしに実行中のプログラム動作に合
わせてキャッシュのブロックサイズを適切に変化させる
ことができない、という問題がある。また、通常はキャ
ッシュメモリ装置内でのデータ管理単位を、キャッシュ
メモリ装置および主メモリ装置の間のデータ転送単位と
同じにしており、データ転送サイズを変化させると、ブ
ロックサイズも変化させる必要があることから、必要な
ハードウェア量が増大してしまうという弊害も生じる。
【0004】そこで本発明は、このような事情に鑑みて
なされたもので、事前にプログラム動作を解析すること
無しにブロックサイズを適切に変化させ、しかもヒット
率を改善できるうえ、回路規模の増大を回避することが
できるキャッシュメモリ装置を提供することを目的とし
ている。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の発明では、
【0006】本発明では、キャッシュのブロックサイズ
を仮想的に変化させた時のヒット数を算出し、それらを
用いて最適なデータ転送のサイズを決定し、データ転送
を実行する時に、キャッシュと主メモリとの間のデータ
転送サイズを決定したサイズに変化させるので、キャッ
シュのヒット率が改善するうえ、実行時にデータ参照特
性を解析するから実行前に応用プログラムの特徴を解析
する必要が無くなる。さらに、キャッシュ内のブロック
サイズを変更させることなく、データ転送サイズのみを
変更させるから、回路規模を小さくすることができる。
【0007】
【発明の実施の形態】以下、本発明の実施の一形態につ
いて図面を参照して説明する。まず図1を参照して本発
明の実施の一形態によるキャッシュメモリ装置の構成に
ついて説明する。図1において、1は応用プログラムも
しくは利用者の指示に従い記憶装置5(主メモリ装置)
に保存されているデータの参照要求を出力する演算装置
である。参照すべきデータが一時記憶装置2に存在する
場合、演算装置1はそのデータを参照して必要な処理を
進め、一方、参照すべきデータが一時記憶装置2に存在
しない時には記憶装置5と一時記憶装置2との間でデー
タ転送が生じる。
【0008】このデータ転送の際には、ある程度まとま
ったサイズでデータ転送する。すなわち、データ管理の
最小単位をδとすると、n×δのサイズのデータ転送を
行う。この倍率nの大きさを具体的に決定するのが、デ
ータ参照特性解析装置3とデータ転送サイズ制御装置4
である。データ参照特性解析装置3は、演算装置1から
の参照要求を解析し、データ転送サイズを大きくした場
合もしくは小さくした場合のヒット率もしくは単位時間
当たりのヒット発生回数を算出する。データ転送サイズ
制御装置4では、現状のヒット率もしくは単位時間当た
りのヒット発生回数と、データ参照特性解析装置3にて
算出されたヒット率もしくは単位時間当たりのヒット発
生回数とからデータ転送に用いる適切なサイズを決定
し、そのサイズで一時記憶装置2と記憶装置5との間の
データ転送を行う。
【0009】データ参照特性解析装置3は、ID管理表
31と、参照位置カウンタ32とを備える。ID管理表
31は、図2に図示するように、データの本来の格納場
所(保存位置)を用いて過去のデータ参照履歴を管理す
るためのものである。具体的な管理手法としては、周知
のLRU法やLFU法、あるいは特願平10−0338
54号公報に開示の手法が用いられる。なお、以下の説
明では、データの本来の格納場所を示すものとして、整
数値(0,1,2, ...)からなる記憶装置5上の
アドレスを考える。
【0010】参照位置カウンタ32は、例えば2次元配
列レジスタとして実現することができる。一方の次元が
倍率nに相当し、他方の次元が仮想スタック距離B(定
義は以下で述べる) に相当する。カウンタ32の各要素
の値は初期状態で0とし、演算装置1がデータの参照要
求を発生した時に所定の手続きに従ってその値を更新す
る。
【0011】ここで、更新手続について述べておく。こ
の手続では現在参照しているデータrのスタック上での
位置Jを求める。その為に、n=n0,n1,n2 に
関して以下の手続きを行う。但し、n0は現在の倍率で
あり、n1<n0<n2であるとする。まず最初に、ス
タックの1番目からJ番目までにある、相異なる仮想ブ
ロックの数を求める。これがスタック距離Bに相当す
る。ここで仮想ブロックの定義としては、例えばn×i
+j(j=0,1,2,…,n−1)というアドレスか
ら構成されるものを考える。なお、iはブロック番号で
ある。次に、参照位置カウンタ32においてスタック距
離Bに対応する値、すなわち [n,B]の値を定めら
れた量だけ増加させる。
【0012】ここで、図3を参照して具体的な更新手続
きについて説明する。ID管理表31がスタックを用い
て管理され、スタック上にアドレスが0,2,1,3,
8,4,…と保存されている状況を考える。スタックが
LRU法を用いて管理されている場合には、スタックの
上の方にあるものほど最近参照されたものになる。いま
例えば、現在の参照データが「4」であるとすると、参
照データ「4」のスタック上での位置は6、すなわちJ
=6である。倍率が2の場合の仮想ブロックの数は次の
ようにして求められる。ブロック番号iの仮想ブロック
に属するアドレスは、2iと2i+1(i=0,1,
2,…)となるので、スタック上の0と1は同じ仮想ブ
ロック(ブロック番号0)に属することになる。同様
に、2と3も同じ仮想ブロック(ブロック番号1)に属
する。
【0013】8と4のブロック番号はそれぞれ4と2で
あるので、スタック位置が1から6までにある、相異な
る仮想ブロック数は4となる。そして、倍率が4の場合
には、4i,4i+1,4i+2および4i+3が一つ
の仮想ブロックを構成するので、スタック位置が1から
4までにある0,2,1,3は全てブロック番号0の仮
想ブロックに属し、それ以外の8と4がそれぞれ別の仮
想ブロックに属する。従って、スタック位置が1から6
までにある、相異なる仮想ブロック数は3となる。倍率
が6の場合には、6i+j (j=0,1,2,3,4,
5)で一つの仮想ブロックを構成する為、仮想ブロック
数は2となる。したがって、参照位置カウンタ32を更
新する際には、図3中で塗りつぶされた部分、すなわち
[2,4]と[4,3]と[6,2]との値を定められ
た量だけ増加させることになる。
【0014】データ転送サイズ制御装置4では、データ
参照特性解析装置3内の参照位置カウンタ32の値に基
づきヒットインデックスを算出する処理と、適切な倍率
nを決定する処理とを実行する。この制御装置4は適当
な時間間隔ごとに起動され、次のような手続きに従って
ヒットインデックスを算出すると共に、適切な倍率nを
算出し、これを用いて一時記憶装置2(キャッシュ)と
記憶装置5(主メモリ)との間のデータ転送サイズn×
δを決定する。
【0015】ヒットインデックスHは、H(n,L)=
C(n,1)+C(n,2)+…+C(n,L)という
式で計算される値である。但し、この式においてL=S
div (n×δ)であり、a div b という演算は
a/bを越えない整数値を示すものである。n=n0,
n1,n2の中から最適なnを選び出すためには、それ
ぞれのnに関してH(n,L)を算出する。n=n0に
対応するHの値が現在のヒット回数であり、n=n1の
値が倍率を小さくした時のヒット回数であり、n=n2
の値が倍率を大きくした時にヒット回数である。したが
って、Hが最も大きな値となるようなnを選び、n×δ
のサイズでのデータ転送を行うようにする。こうして、
新しい倍率nの値を決定した後は、参照位置カウンタ3
2の要素の値を全てゼロリセットする。
【0016】以上説明したように、本発明によるキャッ
シュメモリ装置によれば、キャッシュのブロックサイズ
を仮想的に変化させた時のヒット数を算出し、それらを
用いて最適なデータ転送のサイズを決定し、データ転送
を実行する時に、キャッシュと主メモリとの間のデータ
転送サイズを決定したサイズに変化させるので、キャッ
シュのヒット率が改善する。また、実行時にデータ参照
特性を解析する為、実行前に応用プログラムの特徴を解
析する必要が無くなる。さらに、キャッシュ内のブロッ
クサイズを変更させることなく、データ転送サイズのみ
を変更させるから、回路規模を小さくすることができ
る。
【0017】なお、上述した実施の一形態では倍率nを
3つの候補の中から選択するような形で記述している
が、これは3候補に限定されず、4つ以上の倍率nの中
から選択するようにしても構わない。また、ID管理表
31の管理方法としてスタックを用いた例で説明した
が、これに限らずリストやハッシュを用いて管理してい
る場合も同様の手法が適用できる。さらに、上述の一形
態ではデータ参照特性解析装置3の内部にID管理表3
1を設けて参照位置カウンタ32を更新する方法につい
て述べたが、一時記憶装置2内にID管理表31に相当
するものが既に存在する場合には、データ参照特性解析
装置3の内部にID管理表31を特に設けずとも同様の
解析ができることは明らかである.
【0018】
【発明の効果】本発明によれば、キャッシュのブロック
サイズを仮想的に変化させた時のヒット数を算出し、そ
れらを用いて最適なデータ転送のサイズを決定し、デー
タ転送を実行する時に、キャッシュと主メモリとの間の
データ転送サイズを決定したサイズに変化させるので、
キャッシュのヒット率が改善するうえ、実行時にデータ
参照特性を解析してデータ転送サイズを決定するから実
行前に応用プログラムの特徴を解析する必要が無くな
る。さらに、キャッシュ内のブロックサイズを変更させ
ることなく、データ転送サイズのみを変更させるから、
回路規模を小さくすることができる。
【図面の簡単な説明】
【図1】 本発明による実施の一形態の構成を示すブロ
ック図である。
【図2】 データ参照特性解析装置3が備えるID管理
表31および参照位置カウンタ32の構成を示す図であ
る。
【図3】 参照位置カウンタ32における更新例を説明
するための図である。
【符号の説明】
1 演算装置 2 一時記憶装置 3 データ参照特性解析装置 31 ID管理表 32 参照位置カウンタ 4 データ転送サイズ制御装置 5 記憶装置

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュのブロックサイズを仮想的に
    変化させた時のヒット率を算出する算出手段と、 この算出手段が算出したヒット率を参照して最適なデー
    タ転送サイズを決定する決定手段と、 主メモリとの間のデータ転送を実行する時に、上記決定
    手段が決定したデータ転送サイズに変化させるデータ転
    送手段とを具備することを特徴とするキャッシュメモリ
    装置。
  2. 【請求項2】 前記算出手段は、データ転送サイズを大
    きくした場合もしくは小さくした場合のヒット率もしく
    は単位時間当たりのヒット発生回数のいずれかを算出す
    ることを特徴とする請求項1記載のキャッシュメモリ装
    置。
  3. 【請求項3】 前記決定手段は、現状のヒット率もしく
    は単位時間当たりのヒット発生回数と、前記算出手段に
    て算出されたヒット率もしくは単位時間当たりのヒット
    発生回数とに応じてデータ転送に用いる適切なサイズを
    決定することを特徴とする請求項1記載のキャッシュメ
    モリ装置。
JP11049084A 1999-02-25 1999-02-25 キャッシュメモリ装置 Pending JP2000250809A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11049084A JP2000250809A (ja) 1999-02-25 1999-02-25 キャッシュメモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11049084A JP2000250809A (ja) 1999-02-25 1999-02-25 キャッシュメモリ装置

Publications (1)

Publication Number Publication Date
JP2000250809A true JP2000250809A (ja) 2000-09-14

Family

ID=12821238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11049084A Pending JP2000250809A (ja) 1999-02-25 1999-02-25 キャッシュメモリ装置

Country Status (1)

Country Link
JP (1) JP2000250809A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249457A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法
US7287144B2 (en) 2003-11-17 2007-10-23 International Business Machines Corporation Hit ratio estimation device, hit ratio estimation method, hit ratio estimation program and recording medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287144B2 (en) 2003-11-17 2007-10-23 International Business Machines Corporation Hit ratio estimation device, hit ratio estimation method, hit ratio estimation program and recording medium
JP2007249457A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法

Similar Documents

Publication Publication Date Title
US10353819B2 (en) Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system
JP6796468B2 (ja) 分岐予測器
US8225070B2 (en) Information processing apparatus and cache memory control method
JP4067887B2 (ja) プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
TWI519955B (zh) 預取單元、資料預取方法以及電腦程式產品
JP4027620B2 (ja) 分岐予測装置、プロセッサ、及び分岐予測方法
US8782629B2 (en) Associating program execution sequences with performance counter events
JPH09101916A (ja) マルチプロセス処理装置
EP3221784B1 (en) Providing loop-invariant value prediction using a predicted values table, and related apparatuses, methods, and computer-readable media
JPWO2005103886A1 (ja) 分岐予測装置、その方法、及びプロセサ
JP2000250809A (ja) キャッシュメモリ装置
US20190065060A1 (en) Caching instruction block header data in block architecture processor-based systems
JP3085267B2 (ja) メモリアクセス高速化装置
KR100486259B1 (ko) 컴퓨터 시스템의 동작 속도를 향상시키는 캐쉬 구조를 가지는 프로세서 및 캐쉬 관리 방법
JP2001290704A (ja) マルチプロセス制御装置及びマルチプロセス制御方法
JPH0830562A (ja) マルチプロセッサシステム
JPH05189307A (ja) 計算機システム
EP4202695A1 (en) Region aware delta prefetcher
JPH05334194A (ja) 情報処理装置
JP2654603B2 (ja) バッファ記憶装置におけるブロック置き換え制御方式
JP2003044357A (ja) キャッシュ先取り方式
JPH09231045A (ja) 図面処理のスクロール方法
JP2004152292A (ja) 予測アドレス値を生成するための計算回路、および計算回路で次アドレスを予測する方法
JPH07230358A (ja) 多重化ボリューム装置
WO2024072574A1 (en) Region pattern-matching hardware prefetcher

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020108