JPH10275112A - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム

Info

Publication number
JPH10275112A
JPH10275112A JP9081144A JP8114497A JPH10275112A JP H10275112 A JPH10275112 A JP H10275112A JP 9081144 A JP9081144 A JP 9081144A JP 8114497 A JP8114497 A JP 8114497A JP H10275112 A JPH10275112 A JP H10275112A
Authority
JP
Japan
Prior art keywords
data
write
sub
cache memory
block
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
JP9081144A
Other languages
English (en)
Other versions
JP3204295B2 (ja
Inventor
Hideo Mochizuki
英生 望月
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 JP08114497A priority Critical patent/JP3204295B2/ja
Publication of JPH10275112A publication Critical patent/JPH10275112A/ja
Application granted granted Critical
Publication of JP3204295B2 publication Critical patent/JP3204295B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 キャッシュメモリから主記憶装置へのデータ
転送時間を書き戻す必要のあるデータの分布に応じて、
最適化できるキャッシュメモリシステムを提供するこ
と。 【解決手段】 夫々のキャッシュラインを複数のサブブ
ロックに分割すると共に、サブブロック毎にダーティビ
ットを設けたキャッシュメモリ20と、主記憶装置50
に対してキャッシュラインに格納されているデータを書
き戻すためのデータ書戻手段30を備えたキャッシュメ
モリシステム10において、データ書戻手段30は、キ
ャッシュラインに格納されているデータを書き戻す際
に、書き戻すデータサイズと書き戻しに要する時間との
関係を表すテーブルを参照すると共に、ダーティビット
格納部に格納されているダーティビットの内、オンを示
すダーティビットを参照して、書き戻すべきサブブロッ
クの最適な組合わせを決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
に関し、特にライトバック方式を採用したキャッシュメ
モリに関する。
【0002】
【従来の技術】一般に、この種のキャッシュメモリは、
情報処理システムにおいて、例えば、中央処理装置(以
下、CPUと呼ぶ。)と主記憶装置の間に設けられ、主
記憶装置からの読出しに伴うCPUへのデータ転送、及
び、CPUから主記憶装置への書込み動作に伴うデータ
転送によるスループットの低下を補うために用いられて
いる。このようなキャッシュメモリは、情報処理システ
ムにおいて取り扱われる情報が、その性質上、時間的局
所性及び空間的局所性を有していることを利用したもの
である。このような情報処理システムでは、読出し及び
書込みの対象となるデータがキャッシュメモリ内に存在
する場合には、当該データの読出し及び書込みは、CP
Uとキャッシュメモリとの間で迅速に行われ、対象とな
るデータがキャッシュメモリ内に存在しない場合だけ、
CPUは主記憶装置に格納されているデータをアクセス
する。この構成では、主記憶装置に格納されているデー
タ対するCPUからのアクセスを減少させることがで
き、これによって、情報処理システム全体のスループッ
トを向上させることができる。
【0003】ここで、キャッシュメモリの対するCPU
からの書込み動作によって、キャッシュメモリ内のデー
タが書き換えられた場合、キャッシュメモリ内のデータ
と主記憶装置内の対応するデータとが一貫性をなくして
しまう。このようにデータに一貫性がないことは好まし
くないため、内容の書き換えられたキャッシュメモリ内
のデータは、主記憶装置に書き戻され、キャッシュメモ
リ内のデータと主記憶装置内のデータとの不一致が解消
するように、制御されている。一方、CPUからキャッ
シュメモリに対するリード要求やライト要求がなされた
際、対象となるデータがキャッシュメモリ内に存在しな
い場合、CPUは、主記憶装置から対象となるデータを
読み出すと共に、当該データをキャッシュメモリ内に転
送するように要求する。
【0004】尚、キャッシュメモリは、アドレス変換を
高速に行い、対象となるデータのアドレスがキャッシュ
メモリ内に格納されているか否かを検出するTLB(T
ranslation Lookaside Buff
er)部分と、データを格納するデータキャッシュとを
備えており、TLBは、本発明とは直接、関係がないた
め、以下では、データキャッシュをキャッシュメモリと
呼ぶ。
【0005】従来、この種のキャッシュメモリには、デ
ータ格納領域を複数のキャッシュラインと呼ばれる部分
領域に区分し、各キャッシュライン毎に、ダーティビッ
トと呼ばれるフラグを設け、主記憶装置に書き戻す必要
があるデータを格納しているキャッシュラインに対して
は、ダーティビットをオンにするように、構成されたも
のがある。このようなキャッシュメモリでは、ダーティ
ビットがオンであるキャッシュラインのデータを、当該
キャッシュラインのデータが置き換え対象になった際
に、主記憶装置に対して書き戻すことにより、キャッシ
ュメモリと主記憶装置との間のデータの不一致を防ぐこ
とができる。このように、キャッシュメモリに格納され
ているデータと主記憶装置に格納されているデータとの
一貫性を保持する方式をライトバック方式と呼ぶ。
【0006】ところで、CPUにおける処理能力の増大
や、下位レベルとのデータ転送速度のギャップの増大と
共に、キャッシュメモリのメモリ容量も増加する傾向に
あり、各キャッシュラインに格納されるデータも、ミス
率を低下させるために、例えば、32バイト或いは64
バイトと増加している。しかし、このようにキャッシュ
ラインに格納されるデータのサイズを大きくすると、一
旦ミスが生じてしまった場合、例えば、単一のキャッシ
ュラインにおける1バイトのデータだけを書き戻すため
に、1キャッシュライン全体のデータを主記憶装置に書
き戻す時間は、1バイトのデータを書き戻す時間に比較
して長くなってしまう。即ち、キャッシュラインサイズ
を大きくすると、ミス率が低下する一方で、ミスした場
合におけるミスペナルティが増大することになる。
【0007】従来、キャッシュメモリのデータ格納領域
をキャッシュラインに区分すると共に、各キャッシュラ
インを更にサブブロックに分けておき、各キャッシュラ
インの一部しか書き戻す必要がない場合には、書き戻す
べきサブブロックだけを書き戻し、残りのサブブロック
を書き戻さない形式のキャッシュメモリが提案されてい
る(特開平4−195563号公報(以下、従来例1と
呼ぶ)、及び、特開平5−282208号公報(以下、
従来例2と呼ぶ)参照)。更に言えば、上記した従来例
1及び従来例2には、いずれも、サブブロック毎にダー
ティビットを設けておき、キャッシュラインより小さい
サブブロックを単位として、或いは、対象となるサブブ
ロックを含むサブブロックグループ毎に、主記憶装置に
書き戻す形式のキャッシュメモリが開示されており、こ
れによって、無駄なデータ転送によるスループットの低
下を防止できることとしている。
【0008】
【発明が解決しようとする課題】しかしながら、引用例
1及び2は、キャッシュメモリの有する各キャッシュラ
イン内において、複数のサブブロックに対応するダーテ
ィビットがオンである場合における問題点について、何
等、指摘していない。即ち、各キャッシュライン内に、
対応するダーティビットがオンであるサブブロックが分
散、或いは、点在している場合、ダーティビットがオン
である各サブブロック毎に、或いは、各サブブロックを
含むサブブロックグループ毎に、主記憶装置に対して書
き戻しを行うと、書き戻すサブブロックの数によって
は、キャッシュラインごと書き戻しを行った方が、デー
タ転送時間を短縮できることがある。このような場合に
ついて、従来例1及び従来例2は、何等、考慮していな
いため、書き戻すべき最適なデータに関して開示してい
るとは言えない。換言すれば、従来例1及び従来例2
は、書き戻すべきデータのサイズと、書き戻しに要する
所要時間との関係について、全く考慮していない。
【0009】本発明の目的は、データのサイズ、即ち、
サブブロックの数に応じて、適応的に最適なデータ転送
時間を得ることができるキャッシュメモリを提供するこ
とである。
【0010】本発明の他の目的は、キャッシュメモリか
ら主記憶装置へのデータ転送時間をデータサイズに応じ
て、最適化できるキャッシュメモリシステムを提供する
ことである。
【0011】本発明の更に他の目的は、書き戻すべきサ
ブブロックの分布、及びデータサイズと書戻所要時間と
の関係を利用して、キャッシュメモリから主記憶装置へ
最適なサイズを有するデータを求める方法を提供するこ
とである。
【0012】
【課題を解決するための手段】本発明によれば、予め定
められた量のデータをそれぞれ格納する複数のキャッシ
ュライン、及び該複数のキャッシュラインのそれぞれに
対応した複数のダーティビット格納部を有するキャッシ
ュメモリと、当該キャッシュメモリからみて下位レベル
の記憶領域に対して前記キャッシュラインに格納されて
いるデータを書き戻すためのデータ書戻手段とを備えた
キャッシュメモリシステムにおいて、書き戻すデータサ
イズと書き戻しに要する時間との関係を表すテーブルを
更に備えており、前記キャッシュメモリは、前記複数の
キャッシュラインの夫々が所定数のサブブロックに分割
されていると共に、前記各ダーティビット格納部が、夫
々、対応するキャッシュラインにおけるサブブロックに
対応したダーティビットを格納するものであり、前記デ
ータ書戻手段は、特定の前記キャッシュラインに格納さ
れているデータを書き戻す際に、前記テーブルを参照す
ると共に、前記特定のキャッシュラインに対応する前記
ダーティビット格納部に格納されているダーティビット
の内、オンを示すダーティビットを参照して、書き戻す
べき前記サブブロックの最適な組合わせを決定し、当該
最適な組合わせを構成する前記サブブロックに格納され
ているデータを前記下位レベルの記憶領域に対して書き
戻すことを特徴とするキャッシュメモリシステムが得ら
れる。
【0013】また、本発明によれば、前記キャッシュメ
モリシステムにおいて、前記キャッシュメモリは、前記
複数のキャッシュラインの夫々に対応するタグを格納す
るための複数のタグフィールドを備えていることを特徴
とするキャッシュメモリシステムが得られる。
【0014】また、本発明によれば、前記キャッシュメ
モリシステムにおいて、前記データ書戻手段は、前記特
定のキャッシュラインに格納されているデータを、前記
下位レベルの記憶領域に書き戻す際に、前記テーブルを
参照すると共に、該特定のキャッシュラインに対応する
前記タグフィールドに格納されている前記タグである特
定のタグと、前記特定のキャッシュラインに対応する前
記ダーティビット格納部に格納されている前記ダーティ
ビットである特定のダーティビットとを参照して、前記
最適な組合わせを構成する前記サブブロックのデータに
関し、データサイズ及び前記特定のキャッシュラインに
おけるアドレスを生成するためのライトバックサイズ/
アドレス生成部と、前記特定のキャッシュラインに格納
されているデータを前記下位レベルの記憶領域に書き戻
す際に、前記テーブルを参照すると共に、前記特定のタ
グ及び前記特定のダーティビットを参照して、前記最適
な組合わせを構成する前記サブブロックのデータとして
のライトバックデータを生成するためのライトバックデ
ータ生成部と、前記ライトバックサイズ/アドレス生成
部の生成した前記データサイズ及び前記特定のキャッシ
ュラインにおけるアドレス、並びに前記ライトバックデ
ータ生成部の生成した前記ライトバックデータを一時的
に格納するためのライトバッファと、該ライトバッファ
の状態を監視すると共に、前記下位レベルの記憶領域に
対して、前記ライトバッファに一時的に格納される前記
データサイズ、前記アドレス及び前記ライトバックデー
タを書き戻す制御を行うためのライトバック制御部とを
備えていることを特徴とするキャッシュメモリシステム
が得られる。
【0015】また、本発明によれば、前記キャッシュメ
モリシステムにおいて、前記キャッシュメモリの上位レ
ベルから前記キャッシュメモリに対する要求に含まれる
アドレスと同内容のアドレスを受けて、前記下位レベル
の記憶領域に対して前記要求に対応するデータ要求を行
うと共に、前記下位レベルの記憶領域から当該データ要
求に対応するデータを受けて、該データを前記キャッシ
ュメモリに対して送出するためのリード制御部を更に備
えていることを特徴とするキャッシュメモリシステムが
得られる。
【0016】更に、本発明によれば、前記キャッシュメ
モリシステムにおいて、前記ライトバック制御部は、前
記ライトバックデータ、当該ライトバックデータのサイ
ズである前記データサイズ及び前記アドレスが前記ライ
トバッファに揃ったことを示すライトバッファ状態信号
を前記リード制御部に対して送出すると共に、前記リー
ド制御部からのデータ転送終了信号を受けて、前記ライ
トバッファに揃っている前記ライトバックデータ、前記
データサイズ及び前記アドレスを前記下位レベルの記憶
領域に対して書き戻すためのものであり、前記リード制
御部は、前記ライトバッファ状態信号を受けた後に、前
記下位レベルの記憶領域から受けた前記データ要求に対
応するデータを前記キャッシュメモリに対して転送する
と共に、当該転送が終了したことを示すデータ転送終了
信号を前記ライトバック制御部に対して送出するための
ものであることを特徴とするキャッシュメモリシステム
が得られる。
【0017】また、本発明によれば、データ格納領域と
して複数のキャッシュラインを有するキャッシュメモリ
であって、キャッシュラインを複数のサブブロックに分
割し、前記各サブブロックに対応する複数のダーティビ
ットを備えることとしたキャッシュメモリにおいて、前
記キャッシュラインに格納されているデータを当該キャ
ッシュメモリから見て下位レベルの記憶領域に対して書
き戻す必要が生じた場合における最適な書戻データサイ
ズを求める方法であって、データサイズと書き戻しに要
する時間との関係に基づいて、オンを示す前記ダーティ
ビットに対応する前記サブブロックと、該サブブロック
に隣接するサブブロックとをまとめて前記下位レベルの
記憶領域に対して書き戻すべきかどうかを判断し、前記
複数のダーティビットの内、オンを示すダーティビット
の分布に従って、更に必要に応じて、書き戻すべきと判
断した複数の前記サブブロックからなる書戻データブロ
ックと、当該書戻データブロックと同じデータサイズの
データブロックであって、該書き戻しデータブロックに
隣接するデータブロックとをまとめて前記下位レベルの
記憶領域に対して書き戻すべきかどうかを判断すること
により、最適な書戻データサイズを求める方法が得られ
る。
【0018】
【発明の実施の形態】以下に、本発明の実施の形態のキ
ャッシュメモリ及びキャッシュメモリシステムについて
図面を用いて説明する。
【0019】本実施の形態のキャッシュメモリは、図1
に示されるように、データ格納部DMとしての第1乃至
第nのキャッシュラインCL1〜CL(n)と、それに
対応した第1乃至第nのタグフィールドTF1〜TF
(n)及び第1乃至第nのダーティビット格納部DBM
1〜DBM(n)とを備えている。
【0020】第1乃至第nのキャッシュラインCL1〜
CL(n)の夫々は、所定量のデータを格納することが
できるものである。以下、このキャッシュラインの格納
することができるデータサイズをキャッシュラインサイ
ズという。また、本実施の形態において、第1乃至第n
のキャッシュラインCL1〜CL(n)は、夫々、n個
(図1においては4個の場合が示されている。)のサブ
ブロックの集まりとして認識される。例えば、図1にお
いては、第1のキャッシュラインは、第1乃至第4のサ
ブブロックSB1〜SB4の集まりとして認識される。
また、夫々のサブブロックSB1〜SB4は、第2の所
定量のデータを格納することができるものである。ここ
で、第2の所定量は、キャッシュラインサイズをサブブ
ロックの個数nで分割したものである。以下、この第2
の所定量、即ちサブブロックの格納することができるデ
ータサイズをサブブロックデータサイズという。例え
ば、キャッシュラインサイズを32バイトとし、サブブ
ロックの個数nを32個とすると、サブブロックデータ
サイズは、1バイト(8ビット)ということになる。
尚、キャッシュメモリの分野において、データ転送の最
小単位を意味するブロックという概念があるが、サブブ
ロックとは、このブロックに限られるものではなく、あ
くまでも上述した定義に従うものである。
【0021】第1乃至第nのタグフィールドTF1〜T
F(n)は、タグを格納するためのものである。ここ
で、タグとは、夫々、第1乃至第nのキャッシュライン
CL1〜CL(n)の内の対応するキャッシュライン内
に、求める語が格納されているか否かを判別するための
情報である。
【0022】第1乃至第nのダーティビット格納部DB
M1〜DBM(n)は、夫々、n個(図1においては一
例として4個の場合が示されている。)のダーティビッ
トを格納するためのものである。第1乃至第nのダーテ
ィビット格納部DBM1〜DBM(n)におけるn個の
ダーティビットは、夫々、第1乃至第nのキャッシュラ
インCL1〜CL(n)におけるn個のサブブロックの
いずれかに対応する。例えば、図1において、第2のダ
ーティビット格納部DBM2に格納される第1のダーテ
ィビットDB1は、第2のキャッシュラインCL2にお
ける第1のサブブロックSB1に対応し、第n−3のダ
ーティビット格納部DBM(n−3)に格納される第4
のダーティビットDB4は、第n−3のキャッシュライ
ンCL(n−3)における第4のサブブロックSB4に
対応する。尚、ダーティビットとは、キャッシュライン
内に格納されているデータを他のデータに置き換える際
に、現在格納されているデータを下位レベルに書き戻す
か否かを判定するためのビットであり、例えば、ダーテ
ィビットがオンになっていれば、当該キャッシュライン
に格納されているデータをライトバックする。特に本実
施の形態においては、ダーティビットがサブブロックに
対応しているため、あるダーティビットがオンになって
いれば、対応するサブブロックとして格納されているデ
ータは、下位レベルの記憶領域に対してライトバックす
る必要があるものであると判定することができる。
【0023】本実施の形態のキャッシュメモリシステム
10は、図2に示されるように、上述したキャッシュメ
モリ20と、以下に詳述するデータ書戻手段30とを備
えている。尚、本実施の形態においては、CPU40と
主記憶装置50との間に設けられるキャッシュメモリシ
ステム10を例にとり説明する。しかしながら、情報処
理装置における記憶部は、速度及び容量の異なる複数レ
ベルのメモリを備えるのが一般的である。ここで、複数
レベルのメモリからなる記憶階層において、情報処理装
置の有するCPUに近いレベルを上位レベルといい、C
PUから遠いレベルを下位レベルというものと定義する
と、本発明のキャッシュメモリシステムは、少なくとも
下位レベルの記憶領域が存在するようなレベルに配置さ
れていれば良い。上述の定義に従えば、本実施の形態に
おいて、キャッシュメモリからみて下位レベルの記憶領
域は、主記憶装置50に相当する。
【0024】データ書戻手段30は、キャッシュライン
に格納されているデータを主記憶装置50対して書き戻
すためのものである。特に本実施の形態においては、デ
ータ書戻手段30は、例えば、第3のキャッシュライン
CL3に格納されているデータを主記憶装置50に対し
て書き戻す必要が生じた場合に、以下のようにして処理
を行うものである。即ち、図1を例にとると、第3のキ
ャッシュラインCL3に対応する第3のダーティビット
格納部DBM3に格納されている4個のダーティビット
を参照して、第3のキャッシュラインCL3の備える第
1乃至第4のサブブロックSB1〜SB4の内、書き戻
すべきサブブロックの最適な組合わせを決定し、その決
定に従って、最適な組合わせを構成するサブブロックに
格納されているデータを主記憶装置50に対して書き戻
すためのものである。
【0025】ここで、最適な組合わせを構成するサブブ
ロックの夫々は、後述するように、種々のデータサイズ
のデータを主記憶装置50に書き戻す際に必要となる書
戻所要時間と当該データサイズとの関係に従って、最も
書戻所要時間が短くなるようにして決定されるため、ダ
ーティビットがオンになっているサブブロックのみに限
られる訳ではない。即ち、書き戻すべきサブブロックの
最適な組合わせは、ダーティビットがオンであるサブブ
ロックのみからなる場合もある一方で、ダーティビット
がオンであるサブブロックとダーティビットがオフであ
るサブブロックとの組合わせからなる場合もあり、この
点において、前述の従来例1と異なる。また、書き戻す
べきサブブロックの最適な組合わせは、連続した任意の
数のサブブロックの集まりと、それとはデータサイズの
異なる連続した任意の数のサブブロックの集まりとの組
合わせからなる場合もあり、この点において前述の従来
例2と異なる。尚、後の説明における用語として、「書
戻サブブロック」という語句を用いているため、これま
での説明における「書き戻すべきサブブロック」と「書
戻サブブロック」とについて、相互に混同しないように
注意を要する。
【0026】本実施の形態におけるデータ書戻手段30
は、図3に示されるように、ライトバックサイズ/アド
レス生成部301と、ライトバックデータ生成部302
と、ライトバッファ303と、ライトバック制御部30
4と、リード制御部305とを備えている。
【0027】ライトバックサイズ/アドレス生成部30
1は、主記憶装置50に対して書き戻すべきキャッシュ
ラインに関して、そのキャッシュラインに対応するタグ
フィールドTFに格納されているタグ及び対応するダー
ティビット格納部DBMに格納されている所定数個のダ
ーティビットDBを参照し、データサイズと書戻所要時
間との関係をあらわすテーブルに従って、書き戻すべき
サブブロックの最適な組合わせを判断し、当該最適な組
合わせに関するデータサイズ及びキャッシュラインにお
けるアドレス情報をライトバッファ303に対して送出
するためのものである。尚、データサイズと当該データ
サイズに係る書戻所要時間との関係を示すテーブルは、
ライトバックサイズ/アドレス生成部301が備えてい
ても良いし、キャッシュメモリ20が備えているものと
しても良いし、更には、別個に設けられた記憶手段に記
憶しておくこととしても良い。但し、ライトバックサイ
ズ/アドレス生成部301が書き戻すべきサブブロック
の最適な組合わせを判断する際に、テーブルは、ライト
バックサイズ/アドレス生成部301が参照可能である
ことが必要とされる。
【0028】ライトバックデータ生成部302は、ライ
トバックサイズ/アドレス生成部301と同様にして、
データサイズと書戻所要時間との関係をあらわすテーブ
ルに従い、書き戻すべきサブブロックの最適な組合わせ
を判断し、当該最適な組合わせに係るデータであるライ
トバックデータをライトバッファ303に対して送出す
るためのものである。尚、ライトバックデータ生成部3
02においてもライトバックサイズ/アドレス生成部3
01と同様に、ライトバックデータ生成部302が書き
戻すべきサブブロックの最適な組合わせを判断する際
に、テーブルは、ライトバックデータ生成部302が参
照可能であることが必要とされる。
【0029】ライトバッファ303は、ライトバックサ
イズ/アドレス生成部301の生成した書き戻すデータ
サイズ及びアドレス情報と、ライトバックデータ生成部
302の生成したライトバックデータとを受けて、それ
らを一時的に格納するためのものである。
【0030】ライトバック制御部304は、ライトバッ
ファ303の状態を監視すると共に、書き戻すデータサ
イズ及びアドレス、並びにライトバックデータがライト
バッファ303に揃ったことを示すライトバッファ状態
信号をリード制御部305に対して送出するためのもの
である。また、ライトバック制御部304は、リード制
御部305からのデータ転送終了信号を受けて、ライト
バッファ303に揃っている書き戻すデータサイズ及び
アドレス、並びにライトバックデータを主記憶装置50
に対して書き戻す制御を行うためのものである。
【0031】リード制御部305は、CPU40からキ
ャッシュメモリ20に対して送出されたアドレスと同内
容のアドレスを受けて、主記憶装置50に対してアドレ
ス及び必要とするデータサイズとを送出すると共に、そ
のアドレス及びデータサイズに対応するデータを主記憶
装置50から受けて、更にライトバック制御部304か
らのライトバッファ状態信号を受けるのを待って、主記
憶装置50から受けたデータをキャッシュメモリ20に
おける該当するキャッシュラインに対して書き込むため
のものである。また、リード制御部305は、主記憶装
置50から受けたデータのキャッシュメモリ20に対す
る書き込みを終了すると、そのデータ転送が終了したこ
とを示すデータ転送終了信号をライトバック制御部30
4に対して送出するためのものである。
【0032】このような構成を備えたキャッシュメモリ
システム10の動作について、CPU40及び主記憶装
置50の動作と共に以下に説明する。尚、以下において
は、CPU40からキャッシュメモリ20に対しリード
要求がなされた場合と、ライト要求がなされた場合とに
別けて説明することとする。
【0033】まず、リード要求がなされた場合について
説明する。
【0034】CPU40は、リード要求をする場合、キ
ャッシュメモリ20に対してアドレスを送出してデータ
を要求する。
【0035】キャッシュメモリ20は、CPU40から
の要求がミスかヒットかを判定して、その判定の結果を
CPUに対して返す。キャッシュメモリ20は、要求が
ヒットした場合、要求されたデータをCPU40に対し
て送出する。一方、要求がミスした場合、いずれかのキ
ャッシュラインに格納されているデータを置き換えなけ
ればならない。ここで、ダイレクトマップ方式において
は、CPU40から受けたアドレスとキャッシュメモリ
20におけるキャッシュラインとが一意に対応している
ため、データを置き換えなければならないキャッシュラ
イン、即ち更新すべきキャッシュラインも一意に決まる
ことになる。しかしながら、セット・アソシアティブ方
式やフル・アソシアティブ方式においては、置き換え対
象となるキャッシュラインをアドレスから一意に決定す
ることができない。従って、セット・アソシアティブ方
式やフル・アソシアティブ方式のキャッシュメモリ20
においては、要求がミスした場合、更新すべきキャッシ
ュラインを求めることが必要となる。
【0036】更に、キャッシュメモリ20は、更新すべ
きキャッシュラインに対応するダーティビット格納部D
BMに格納されている所定数個のダーティビットDB
を、ライトバック制御部304、ライトバックサイズ/
アドレス生成部301及びライトバックデータ生成部3
02に対して送出する。
【0037】CPU40は、キャッシュメモリ20から
の判定結果を受けて、判定結果がヒットを示している場
合、更に要求したデータを受けることになる。一方、判
定結果がミスを示している場合、リード制御部305に
対して必要なデータに係るアドレスを送出することによ
り、主記憶装置50に対する当該必要なデータの要求を
行う。また、主記憶装置50は、要求されたデータをリ
ード制御部305に対して送出する。
【0038】ライトバックアドレス/サイズ生成部30
1は、キャッシュメモリ20から受けた更新すべきキャ
ッシュラインに対応する所定数個のダーティビットに従
い、当該キャッシュラインに格納されているデータを書
き戻す必要がある場合に、データサイズと書戻所要時間
との関係に基づいて、どのように書き戻すのが最適であ
るかを判断し、ライトバッファ303に対して当該判断
に基づいたデータサイズ及びアドレス情報を送出する。
【0039】一方、ライトバックデータ生成部302
は、ライトバックアドレス/サイズ生成部301と同様
にして、キャッシュメモリ20からのダーティビットに
従ってどのように書き戻すのが最適であるかを判断し、
ライトバッファ303に対して当該判断に基づいたライ
トバックデータを送出する。
【0040】ライトバック制御部304は、ライトバッ
ファ303の状態を監視して、ライトバックデータ、ラ
イトバックデータに関するデータサイズ及びアドレス情
報がライトバッファ303に揃うと、リード制御部30
5に対し、ライトバッファ状態信号を送出する。
【0041】リード制御部305は、ライトバッファ状
態信号を受けて、その後に、主記憶装置50から受けた
データをキャッシュメモリ20を介してCPU40に対
して転送する。更に、リード制御部305は、当該転送
が終了した後、ライトバック制御部304に対してデー
タ転送終了信号を送出する。
【0042】ライトバック制御部304は、リード制御
部305からのデータ転送終了信号を受けて、ライトバ
ッファ303に一時的に格納されているライトバックデ
ータと、ライトバックデータに関するデータサイズ及び
アドレス情報とを主記憶装置50に対し、順番に送出す
ることにより、ライトバックデータの書き戻しを行う。
【0043】次に、ライト要求がなされた場合について
説明する。
【0044】CPU40は、ライト要求をする場合、キ
ャッシュメモリ20に対してアドレス及びデータを送出
する。
【0045】キャッシュメモリ20は、CPU40から
の要求がミスかヒットかを判定して、その判定の結果を
CPUに対して返す。ここで、要求がヒットすると、C
PU40からのデータが、キャッシュメモリ20におい
て要求に対応するキャッシュラインに対して書き込まれ
ることになる。キャッシュメモリ20は、要求がヒット
した場合、データを書き込んだキャッシュラインに対応
するダーティビット格納部に対してダーティビットをセ
ットする。特に、本実施の形態においては、サブブロッ
クごとに対応するダーティビットを備えているため、デ
ータ変更のあったサブブロック毎に夫々ダーティビット
をセットする。一方、要求がミスした場合、いずれかの
キャッシュラインに格納されているデータを置き換えな
ければならない。その場合、キャッシュメモリ20は、
上述したリード要求の場合と同様に、必要があれば、更
新すべきキャッシュラインを求める。更に、キャッシュ
メモリ20は、更新すべきキャッシュラインに対応する
ダーティビット格納部DBMに格納されている所定数個
のダーティビットDBを、ライトバック制御部304、
ライトバックサイズ/アドレス生成部301及びライト
バックデータ生成部302に対して送出する。
【0046】CPU40は、キャッシュメモリ20から
の判定結果を受けて、判定結果がミスを示している場
合、リード制御部305に対して書き込み対象となるデ
ータに係るアドレスを送出することにより、主記憶装置
50に対する当該データの要求を行う。また、主記憶装
置50は、要求されたデータをリード制御部305に対
して送出する。
【0047】ライトバックアドレス/サイズ生成部30
1は、キャッシュメモリ20から受けた更新すべきキャ
ッシュラインに対応する所定数個のダーティビットに従
い、当該キャッシュラインに格納されているデータを書
き戻す必要がある場合に、データサイズと書戻所要時間
との関係に基づいて、どのように書き戻すのが最適であ
るかを判断し、ライトバッファ303に対して当該判断
に基づいたデータサイズ及びアドレス情報を送出する。
【0048】一方、ライトバックデータ生成部302
は、ライトバックアドレス/サイズ生成部301と同様
にして、キャッシュメモリ20からのダーティビットに
従ってどのように書き戻すのが最適であるかを判断し、
ライトバッファ303に対して当該判断に基づいたライ
トバックデータを送出する。
【0049】ライトバック制御部304は、ライトバッ
ファ303の状態を監視して、ライトバックデータ、ラ
イトバックデータに関するデータサイズ及びアドレス情
報がライトバッファ303に揃うと、リード制御部30
5に対し、ライトバッファ状態信号を送出する。
【0050】リード制御部305は、ライトバッファ状
態信号を受けて、その後に、主記憶装置50から受けた
データを、キャッシュメモリ20における更新するべき
キャッシュラインに対して転送し、次いで、当該キャッ
シュラインに対するCPU40からのデータ書き込みが
行われる。更に、リード制御部305は、当該データ転
送等が終了した後、ライトバック制御部304に対して
データ転送終了信号を送出する。
【0051】ライトバック制御部304は、リード制御
部305からのデータ転送終了信号を受けて、ライトバ
ッファ303に一時的に格納されているライトバックデ
ータと、ライトバックデータに関するデータサイズ及び
アドレス情報とを主記憶装置50に対し、順番に送出す
ることにより、ライトバックデータの書き戻しを行う。
【0052】以上が、本実施の形態において、CPU4
0からリード要求及びライト要求がなされた場合の一連
の処理動作である。
【0053】次に、ライトバックサイズ/アドレス生成
部301及びライトバックデータ生成部302におい
て、書き戻すべきサブブロックの最適な組合わせを判断
する際の処理等について、図4乃至図9を用い具体的な
例を挙げて説明する。尚、以下の処理動作例において、
キャッシュラインサイズは、32バイトとし、初期のサ
ブブロックのサブブロックサイズは、1バイトとする。
従って、初期においてサブブロックの個数は、32個と
なる。ここで、処理動作中においてサブブロックのサイ
ズは、後述するように変化する。従って、初期のサブブ
ロックについて、以降の処理におけるサブブロックと区
別する必要がある場合、当該初期のサブブロックを初期
サブブロックと呼ぶ。また、これに併せて、初期サブブ
ロックのデータサイズを初期サブブロックデータサイズ
と呼び、初期サブブロックの個数を初期サブブロック数
と呼ぶ。
【0054】また、前述の通り、本実施の形態において
書き戻すべきサブブロックの最適な組合わせを判断する
にあたっては、データサイズとそのサイズのデータを書
き戻すために必要とする書戻所要時間との関係を示すテ
ーブルが必要となる。以下の処理においては、そのテー
ブルの具体例として、図4に示されるものを用いて説明
することとする。尚、図4における左欄は、各データサ
イズを示すものであり、単位はバイトである。また、図
4における右欄は、左欄に示される各データサイズに対
応する各書戻所要時間であり、tは、30nsである。
このテーブルにおける右欄は、クロック数等であっても
良く、例えば、図4において1クロックが30nsであ
るならば、右欄における夫々の値は、上から順に4、
4、5、7、11、22となる。
【0055】尚、図5及び図9は、夫々の具体例におい
て、書き戻すべきサブブロックの最適な組合わせを求め
る過程を示す図である。また、図6乃至図8は、最適な
組合わせを求める処理動作を示すフローチャートであ
る。
【0056】まず、図6に示されるように、サブブロッ
クデータサイズ、サブブロック数、キャッシュラインサ
イズの各初期値を設定すると共に、現在データサイズと
して、サブブロックデータサイズを設定する(ステップ
S101)。ここで、サブブロックデータサイズ、サブ
ブロック数は、前述の定義に従えば、初期サブブロック
データサイズ、初期サブブロック数であり、夫々、本処
理例においては、1バイト、32個である。また、キャ
ッシュラインサイズは、32バイトである。更に、現在
データサイズは、初期サブブロックデータサイズと同じ
であるので、1バイトである。
【0057】次に、キャッシュメモリ20から送出され
てきたダーティビットDBに従って、書戻サブブロック
を決定する(ステップS102)。詳しくは、対応する
ダーティビットがオンであるサブブロックを書戻サブブ
ロックとする。尚、図5(a)において、書戻サブブロ
ックは、黒く塗りつぶされて示されている。
【0058】次に、書戻データブロックとして書戻サブ
ブロックに格納されているデータを記憶する(ステップ
S103)。書戻データブロックとは、判断過程におい
て実際に書き戻すべきと判断したデータサイズを有する
データブロックであり、処理過程においてそのデータサ
イズが変化することがあるものである。また、書戻サブ
ブロックとは、夫々の判断過程におけるサブブロックの
内、書戻データブロックを含むサブブロックをいう。従
って、図5(a)に示される初期の段階においては、書
戻サブブロックと書戻データブロックとは、一致してい
る。
【0059】次に、隣り合うサブブロックをサブブロッ
クペアとして、サブブロック数の半分の個数のサブブロ
ックペアを決定する(ステップS104)。例えば、図
5(a)においては、最下位に位置するサブブロックS
B1と、その上位(隣)に位置するサブブロックSB2
とのペアをサブブロックペアSBP1とし、サブブロッ
クSB3と、その上位(隣)に位置するサブブロックS
B4とペアをサブブロックペアSBP2とする。残りの
サブブロックに関しても同様にしてサブブロックペアを
決定し、合計16個のサブブロックペアを決定する。
【0060】次に、書戻サブブロックの属するサブブロ
ックペアを書戻サブブロックペアとし、夫々の書戻サブ
ブロックペアに対してサブブロックナンバーを付す(ス
テップS105)。例えば、図5(a)においては、書
戻サブブロックが4個あり、それぞれが書戻サブブロッ
クではないサブブロックとサブブロックペアを構成する
こととなるため、書戻サブブロックペアも4個となる。
この4個の書戻サブブロックペアSBP1、SBP2、
SBP3、SBP4に対して、サブブロックナンバーと
して、下位から順番に夫々、1、2、3、4を付す。
【0061】次に、現在サブブロックナンバーとして、
1を設定すると共に、サブブロックペア数として書戻サ
ブブロックペアの個数を設定する(ステップS10
6)。図5(a)の状態においては、書戻サブブロック
ペアが4個あるので、サブブロックペア数は4となる。
【0062】次に、現在サブブロックナンバーの付され
ているサブブロックペアについて、書戻所要時間とデー
タサイズとの関係を示すテーブルに従って、サブブロッ
クペアとしてまとめて書き戻した方が良いかどうかにつ
いて判断し(ステップS107)、まとめて書き戻した
方が良いと判断した場合、ステップS108へ進み、ま
とめて書き戻さない方が良いと判断した場合、ステップ
S109へ進む。
【0063】ここで、ステップS107における判断に
ついて、図8を用いて更に詳細に説明する。まず、現在
サブブロックナンバーの付されているサブブロックペア
について、当該サブブロックペアを構成するサブブロッ
クが、双方とも書戻サブブロックであるかどうかについ
て判定する(ステップS1071)。ステップS107
1において双方とも書戻サブブロックであると判定した
場合、次に、当該サブブロックペアに含まれている書戻
データブロックに関し、夫々の書戻データブロック毎に
書き戻した方が書戻所要時間が短いかどうかについて、
データサイズと書戻所要時間との関係を示すテーブルに
従って判定する(ステップS1072)。また、ステッ
プS1072において、書戻所要時間が短いと判定した
場合、ステップS109へ進み、短くないと判定した場
合、ステップS108へ進み、夫々、以降の処理を実行
する。一方、ステップS1071において、片方のみが
書戻サブブロックであると判定した場合、書戻所要時間
とデータサイズとの関係を示すテーブルに基づいて、当
該サブブロックペアとしてまとめて書き戻しても、書戻
サブブロックに含まれている書戻データブロックのみを
書き戻した場合と比較して、書戻所要時間が変わらない
かどうかについて判定する(ステップS1073)。ス
テップS1073において、書戻所要時間が変わらない
と判定した場合、ステップS108へ進み、サブブロッ
クペアとしてまとめて書き戻すと書戻所要時間が長くな
ると判定した場合、ステップS109へ進み、夫々、以
降の処理を実行する。現時点では、現在サブブロックナ
ンバーが1であるので、サブブロックペアSBP1を構
成するサブブロックは、一方のみが書戻サブブロックで
ある。従って、ステップS1071における判定によ
り、ステップS1073に進み、サブブロックペアSB
P1について図4に示されるテーブルに基づいて判断す
る。図4に示されるテーブルによれば、データサイズが
1バイトであっても2バイトであっても書戻所要時間は
変わらないため、より大きなデータサイズとしてサブブ
ロックペアをまとめて書き戻した方が良いと判断し(ス
テップS1073)、ステップS108へ進む。
【0064】次に、ステップS107において、まとめ
て書き戻した方が良いと判断した場合、新たな書戻デー
タブロックとしてサブブロックペアを構成する初期サブ
ブロックを記憶する(ステップS108)。現時点で
は、書戻データブロックとして記憶されているサブブロ
ックSB1に代えて、サブブロックペアSBP1を構成
する2つの初期サブブロックSB1及びSB2を新たな
書戻データブロックとして記憶する。
【0065】次に、現在サブブロックナンバーがサブブ
ロックペア数と同値かどうかについて判定し(ステップ
S109)、同値であれば、ステップS110へ進み、
以降の処理を実行する。一方、ステップS109におい
て判定した結果、同値でなければ、現在サブブロックナ
ンバーに1を加算して、加算結果を新たな現在サブブロ
ックナンバーとして再設定し(ステップS111)、ス
テップS107へ進み処理を続行する。現時点では、現
在サブブロックナンバーが1であり、サブブロックペア
数が4であるので、ステップS111に進み現在サブブ
ロックナンバーを2に再設定して、サブブロックナンバ
ーが2のサブブロックペアSBP2についてステップS
107における判断を行う。同様にして、サブブロック
ペアSBP4まで判断が終了すると、書戻データブロッ
クとして、図5(b)に黒塗りで示されるような初期サ
ブブロックが記憶されることになる。また、サブブロッ
クペアSBP4まで、判断が終わった時点では、サブブ
ロックナンバーが4であり、サブブロックペア数と一致
するため、ステップS110へ進む。
【0066】ステップS109において、現在サブブロ
ックナンバーとサブブロックペア数とが一致したら、次
に、現在データサイズとキャッシュラインサイズの半分
のデータサイズとが一致するかどうかについて判定し
(ステップS110)、一致した場合は、ステップS1
13へ進み、以降の処理を実行する。一方ステップS1
10において一致しないと判定した場合、現在データサ
イズを2倍したものを新たな現在データサイズとして再
設定し、また、サブブロックペアを新たなサブブロック
とすると共に、新たなサブブロックの内、書戻データブ
ロックを含むサブブロックを新たな書戻サブブロックと
して再設定し(ステップS112)、ステップS104
へ戻り、処理を続行する。現時点では、図5(a)に示
されるように、現在サブブロックサイズは、1バイトで
あり、一方、キャッシュラインサイズの半分のデータサ
イズは、32/2で16バイトであるため、ステップS
110における判定では一致しない。従って、ステップ
S112に進み、値を再設定する。即ち、これまでの現
在データサイズ(1バイト)を2倍し、新たな現在デー
タサイズとして2バイトを設定する。また、例えば、サ
ブブロックペアSBP1を新たなサブブロックSB1′
として設定し、同様に、サブブロックペアSBP2を新
たなサブブロックSB2′として設定する。全てのサブ
ブロックペアを新たなサブブロックとして設定すると、
新たなサブブロックの個数は、16個となる。この16
個のサブブロックの内、書戻データブロックを含むサブ
ブロックは、図5(b)において黒塗りされている4つ
であり、それらを新たな書戻サブブロックとして設定す
る。
【0067】これらの設定が終了した後、ステップS1
04に進み、隣り合う新たなサブブロックを新たなサブ
ブロックペアとして8個のサブブロックペアを決定す
る。例えば、図5(b)において、新たなサブブロック
SB1′とサブブロックSB2′とを新たなサブブロッ
クペアSBP1′とし、同様にして8個のサブブロック
(SBP2′他)を決定する(ステップS104参
照)。図5(b)においては、4つの書戻サブブロック
があるが、その内の1組の書戻サブブロックが1つのサ
ブブロックペアを構成しているため、書戻サブブロック
ペアは3つとなる。従って、それら3つのサブブロック
ペアSBP1′、SBP2′及びSBP3′に対して下
位から順番に1、2、3のサブブロックナンバーを付す
(ステップS105参照)。更に、それら全てに対して
サブブロックペアとしてまとめて書き戻した方が良いか
どうかを判定し(ステップS107及びステップS10
9参照)、まとめて書き戻した方が良い場合には、当該
サブブロックペアを構成する初期サブブロックを新たな
書戻データブロックとして記憶する。サブブロックペア
SBP1′については、書戻データブロック毎に書き戻
すよりも、まとめて書き戻した方が書戻所要時間を3t
短縮できるため(図4及びステップS1072参照)、
新たな書き戻しデータブロックとして、サブブロックペ
アSBP1′を構成している4つの初期サブブロックS
B1〜SB4を記憶する(ステップS108参照)。一
方、サブブロックペアSBP2′及びサブブロックペア
SBP3′については、夫々、まとめて書き戻すと書き
戻し所要時間が1t長くかかることになるため(図4及
びステップS1073参照)、書戻データブロックは、
現時点でのサブブロックSB3′及びサブブロックSB
4′を夫々構成している初期サブブロックのままであ
る。このようにして、図5(b)における全ての書戻サ
ブブロックペアについて判定が終了しても、現在データ
サイズは、2バイトであり、キャッシュラインサイズ
(32バイト)の半分のデータサイズ(16バイト)と
一致しないため(ステップS110参照)、ステップS
112に進む。ステップS112において新たな現在デ
ータサイズを4バイトと設定し、サブブロックペアSB
P1′及びサブブロックペアSBP2′を、夫々、新た
なサブブロックSB1″及びサブブロックSB2″とす
る。同様にして、図5(b)におけるサブブロックペア
を新たなサブブロックとすると、8個の新たなサブブロ
ックができる。その8個のサブブロックの内、書戻デー
タブロックを含むサブブロックは、図5(c)に示され
るように3つである(サブブロックSB1″、SB
2″、SB3″)。これらを設定した後、再度ステップ
S104へ戻り、新たなサブブロックペアを4つ決定
し、更に、ステップS105以降の処理を実行する。こ
のようにして図5(c)〜図5(e)に示されるよう
に、徐々に現在データサイズを大きくしながら、書戻デ
ータブロックについての判断を行う。図5(e)に示さ
れる状態では、現在データサイズが16バイトであり、
キャッシュラインサイズ(32バイト)の半分となるた
め、ステップS110における判定の結果、ステップS
113へ進むことができる。
【0068】この段階において、記憶されている書戻デ
ータブロックを書き戻すべき最適な初期サブブロックの
組合わせとして決定する(ステップS113)。例え
ば、図5(f)を参照すると、図5(e)までの処理よ
り、2つの書戻データブロックWBD1及びWBD2が
求められている。即ち、書き戻すべき最適な組合わせを
構成する初期サブブロックは、最下位のサブブロック#
0からサブブロック#7までの8つのサブブロックと、
最上位のサブブロック#31とその下位に位置するサブ
ブロック#30との2つのサブブロックとの合計10個
のサブブロックであり、それらの書戻所要時間は、7t
+4t=11tである。従来例1のように、ダーティビ
ットがオンであるサブブロック毎に書き戻しをしていれ
ば、書戻所要時間は、4t×4=16t必要である。ま
た、従来例2のように書戻サブブロックを含むサブブロ
ックグループ毎に書き戻す場合、サブブロックグループ
のサイズを2バイト、4バイト、8バイト、16バイト
のいずれのサイズにプログラム設定したとしても、書戻
所要時間は、本具体例の11tより長くなることにな
る。即ち、従来例1及び従来例2のいずれの場合も、書
き戻すべき最適なサブブロックの組合わせを適応的に決
定する本実施の形態と比較して、長い書戻所要時間を要
することとなる。
【0069】最適な組合わせを構成するサブブロックを
判断する過程を示す他の例として図9を示す。図9は、
4つの初期サブブロック#0、#6、#16、及び#3
1に対応するダーティビットがオンになっている場合で
ある。図9(a)においても上述の図5(a)における
判断と同様にして処理を行い、図9(b)、図9
(c)、図9(d)、及び図9(e)と順番に書戻デー
タブロックを決定していく。結果として、図9(f)に
示されるように、書き戻すべき最適な組合わせを構成す
るサブブロックとして、8つの初期サブブロック#0〜
#7と、2つの初期サブブロック#16及び#17と、
2つの初期サブブロック#30及び#31との合計16
個のサブブロックを決定する。これら16個のサブブロ
ックを主記憶装置に書き戻すために要する時間は、15
tである。この場合においても、従来例1のようにダー
ティビットがオンであるサブブロック毎に書き戻してい
れば、書戻所要時間は、4t×4=16t必要である。
また、従来例2のように書戻サブブロックを含むサブブ
ロックグループ毎に書き戻すとしても、書戻所要時間
は、15tより長くなることになる。
【0070】また、本実施の形態において示した手法に
よれば、更新すべきキャッシュラインに関して、全ての
サブブロックに対応するダーティビットがオンであった
場合、書戻所要時間は、キャッシュライン単位で書き戻
した場合と同じ時間となり、従来例1及び従来例2にお
けるような不具合は生じない。
【0071】これらのことから理解されるように、本実
施の形態においては、従来例1及び従来例2と比較して
も、書き戻しに要する時間を短縮することができる。
【0072】また、書き戻しに要する時間を短縮するこ
とができるということは、キャッシュラインサイズをよ
り大きなものとすることができることを意味する。更
に、キャッシュラインサイズをより大きいサイズとする
と、キャッシュメモリにおけるミス率が軽減されること
になり、キャッシュメモリの性能向上を図ることができ
る。即ち、本実施の形態に示される手法を適用すること
により、性能向上の図られたキャッシュメモリを実現す
ることが可能となる。
【0073】尚、本実施の形態においては、CPUと主
記憶装置との間に設けられるキャッシュメモリ及びキャ
ッシュメモリシステムを例にとり説明してきたが、本発
明の概念は、本実施の形態に制限されるものではない。
【0074】
【発明の効果】以上説明してきたように、本発明によれ
ば、データサイズと書戻所要時間との関係を示すテーブ
ルに基づいて、書き戻すべきサブブロックの最適な組合
わせを決定することができるため、書き戻しに要する時
間を短縮することができるキャッシュメモリシステムが
得られる。
【0075】また、本発明によれば、より大きなキャッ
シュラインサイズを有することにより、性能向上の図ら
れたキャッシュメモリを実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のキャッシュメモリの構成
を示す図である。
【図2】本発明の実施の形態のキャッシュメモリシステ
ムとCPU及び主記憶装置と関係を示すブロック図であ
る。
【図3】本発明の実施の形態におけるデータ書戻手段の
構成を示すブロック図である。
【図4】本発明の実施の形態におけるデータサイズと書
戻所要時間との関係を示すテーブルとしての一例であ
る。
【図5】本発明の実施の形態において書き戻すべきサブ
ブロックの最適な組合わせを判断する過程の一例を示す
図である。
【図6】本発明の実施の形態においてサブブロックの最
適な組合わせを判断するためのフローチャートの一部を
示す図である。
【図7】本発明の実施の形態においてサブブロックの最
適な組合わせを判断するためのフローチャートの内、図
6に示された残りを示す図である。
【図8】図6に示されるステップS107を更に詳細に
示す図である。
【図9】本発明の実施の形態において書き戻すべきサブ
ブロックの最適な組合わせを判断する過程の他の例を示
す図である。
【符号の説明】 10 キャッシュメモリシステム 20 キャッシュメモリ 30 データ書戻手段 40 CPU 50 主記憶装置 301 ライトバックサイズ/アドレス生成部 302 ライトバックデータ生成部 303 ライトバッファ 304 ライトバック制御部 305 リード制御部 TF タグフィールド DBM ダーティビット格納部 DM データ格納部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 予め定められた量のデータをそれぞれ格
    納する複数のキャッシュライン、及び該複数のキャッシ
    ュラインのそれぞれに対応した複数のダーティビット格
    納部を有するキャッシュメモリと、当該キャッシュメモ
    リからみて下位レベルの記憶領域に対して前記キャッシ
    ュラインに格納されているデータを書き戻すためのデー
    タ書戻手段とを備えたキャッシュメモリシステムにおい
    て、 書き戻すデータサイズと書き戻しに要する時間との関係
    を表すテーブルを更に備えており、 前記キャッシュメモリは、前記複数のキャッシュライン
    の夫々が所定数のサブブロックに分割されていると共
    に、前記各ダーティビット格納部が、夫々、対応するキ
    ャッシュラインにおけるサブブロックに対応したダーテ
    ィビットを格納するものであり、 前記データ書戻手段は、特定の前記キャッシュラインに
    格納されているデータを書き戻す際に、前記テーブルを
    参照すると共に、前記特定のキャッシュラインに対応す
    る前記ダーティビット格納部に格納されているダーティ
    ビットの内、オンを示すダーティビットを参照して、書
    き戻すべき前記サブブロックの最適な組合わせを決定
    し、当該最適な組合わせを構成する前記サブブロックに
    格納されているデータを前記下位レベルの記憶領域に対
    して書き戻すことを特徴とするキャッシュメモリシステ
    ム。
  2. 【請求項2】 請求項1に記載のキャッシュメモリシス
    テムにおいて、 前記キャッシュメモリは、前記複数のキャッシュライン
    の夫々に対応するタグを格納するための複数のタグフィ
    ールドを備えていることを特徴とするキャッシュメモリ
    システム。
  3. 【請求項3】 請求項2に記載のキャッシュメモリシス
    テムにおいて、 前記データ書戻手段は、 前記特定のキャッシュラインに格納されているデータ
    を、前記下位レベルの記憶領域に書き戻す際に、前記テ
    ーブルを参照すると共に、該特定のキャッシュラインに
    対応する前記タグフィールドに格納されている前記タグ
    である特定のタグと、前記特定のキャッシュラインに対
    応する前記ダーティビット格納部に格納されている前記
    ダーティビットである特定のダーティビットとを参照し
    て、前記最適な組合わせを構成する前記サブブロックの
    データに関し、データサイズ及び前記特定のキャッシュ
    ラインにおけるアドレスを生成するためのライトバック
    サイズ/アドレス生成部と、 前記特定のキャッシュラインに格納されているデータを
    前記下位レベルの記憶領域に書き戻す際に、前記テーブ
    ルを参照すると共に、前記特定のタグ及び前記特定のダ
    ーティビットを参照して、前記最適な組合わせを構成す
    る前記サブブロックのデータとしてのライトバックデー
    タを生成するためのライトバックデータ生成部と、 前記ライトバックサイズ/アドレス生成部の生成した前
    記データサイズ及び前記特定のキャッシュラインにおけ
    るアドレス、並びに前記ライトバックデータ生成部の生
    成した前記ライトバックデータを一時的に格納するため
    のライトバッファと、 該ライトバッファの状態を監視すると共に、前記下位レ
    ベルの記憶領域に対して、前記ライトバッファに一時的
    に格納される前記データサイズ、前記アドレス及び前記
    ライトバックデータを書き戻す制御を行うためのライト
    バック制御部とを備えていることを特徴とするキャッシ
    ュメモリシステム。
  4. 【請求項4】 請求項3に記載のキャッシュメモリシス
    テムにおいて、 前記キャッシュメモリの上位レベルから前記キャッシュ
    メモリに対する要求に含まれるアドレスと同内容のアド
    レスを受けて、前記下位レベルの記憶領域に対して前記
    要求に対応するデータ要求を行うと共に、前記下位レベ
    ルの記憶領域から当該データ要求に対応するデータを受
    けて、該データを前記キャッシュメモリに対して送出す
    るためのリード制御部を更に備えていることを特徴とす
    るキャッシュメモリシステム。
  5. 【請求項5】 請求項4に記載のキャッシュメモリシス
    テムにおいて、 前記ライトバック制御部は、前記ライトバックデータ、
    当該ライトバックデータのサイズである前記データサイ
    ズ及び前記アドレスが前記ライトバッファに揃ったこと
    を示すライトバッファ状態信号を前記リード制御部に対
    して送出すると共に、前記リード制御部からのデータ転
    送終了信号を受けて、前記ライトバッファに揃っている
    前記ライトバックデータ、前記データサイズ及び前記ア
    ドレスを前記下位レベルの記憶領域に対して書き戻すた
    めのものであり、 前記リード制御部は、前記ライトバッファ状態信号を受
    けた後に、前記下位レベルの記憶領域から受けた前記デ
    ータ要求に対応するデータを前記キャッシュメモリに対
    して転送すると共に、当該転送が終了したことを示すデ
    ータ転送終了信号を前記ライトバック制御部に対して送
    出するためのものであることを特徴とするキャッシュメ
    モリシステム。
  6. 【請求項6】 データ格納領域として複数のキャッシュ
    ラインを有するキャッシュメモリであって、キャッシュ
    ラインを複数のサブブロックに分割し、前記各サブブロ
    ックに対応する複数のダーティビットを備えることとし
    たキャッシュメモリにおいて、前記キャッシュラインに
    格納されているデータを当該キャッシュメモリから見て
    下位レベルの記憶領域に対して書き戻す必要が生じた場
    合における最適な書戻データサイズを求める方法であっ
    て、 データサイズと書き戻しに要する時間との関係に基づい
    て、オンを示す前記ダーティビットに対応する前記サブ
    ブロックと、該サブブロックに隣接するサブブロックと
    をまとめて前記下位レベルの記憶領域に対して書き戻す
    べきかどうかを判断し、前記複数のダーティビットの
    内、オンを示すダーティビットの分布に従って、更に必
    要に応じて、書き戻すべきと判断した複数の前記サブブ
    ロックからなる書戻データブロックと、当該書戻データ
    ブロックと同じデータサイズのデータブロックであっ
    て、該書き戻しデータブロックに隣接するデータブロッ
    クとをまとめて前記下位レベルの記憶領域に対して書き
    戻すべきかどうかを判断することにより、最適な書戻デ
    ータサイズを求める方法。
JP08114497A 1997-03-31 1997-03-31 キャッシュメモリシステム Expired - Fee Related JP3204295B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08114497A JP3204295B2 (ja) 1997-03-31 1997-03-31 キャッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08114497A JP3204295B2 (ja) 1997-03-31 1997-03-31 キャッシュメモリシステム

Publications (2)

Publication Number Publication Date
JPH10275112A true JPH10275112A (ja) 1998-10-13
JP3204295B2 JP3204295B2 (ja) 2001-09-04

Family

ID=13738232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08114497A Expired - Fee Related JP3204295B2 (ja) 1997-03-31 1997-03-31 キャッシュメモリシステム

Country Status (1)

Country Link
JP (1) JP3204295B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392968B1 (ko) * 1999-10-29 2003-07-31 마쯔시다덴기산교 가부시키가이샤 수신 장치
JP2010511224A (ja) * 2006-11-27 2010-04-08 エルエスアイ コーポレーション 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム
JP2015535631A (ja) * 2012-11-28 2015-12-14 クゥアルコム・インコーポレイテッドQualcomm Incorporated 動的に割り振られたダーティマスク空間を用いるメモリ管理
JP2017527023A (ja) * 2014-08-04 2017-09-14 エイアールエム リミテッド 不揮発性メモリへの書き込み操作
US10366021B2 (en) 2015-12-30 2019-07-30 Samsung Electronics Co., Ltd. Memory system including DRAM cache and cache management method thereof
US10621103B2 (en) 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
JP2022047008A (ja) * 2020-09-11 2022-03-24 株式会社東芝 ライトバックキャッシュ装置
CN114942825A (zh) * 2022-05-13 2022-08-26 深信服科技股份有限公司 一种虚拟机热迁移方法、装置、电子设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252420B (zh) * 2013-06-29 2017-08-29 华为技术有限公司 数据写入方法及内存系统
KR102806354B1 (ko) 2020-08-31 2025-05-13 삼성전자주식회사 전자 장치, 시스템-온-칩, 및 그것의 동작 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386540A (en) 1991-09-18 1995-01-31 Ncr Corporation Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392968B1 (ko) * 1999-10-29 2003-07-31 마쯔시다덴기산교 가부시키가이샤 수신 장치
JP2010511224A (ja) * 2006-11-27 2010-04-08 エルエスアイ コーポレーション 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム
JP2015535631A (ja) * 2012-11-28 2015-12-14 クゥアルコム・インコーポレイテッドQualcomm Incorporated 動的に割り振られたダーティマスク空間を用いるメモリ管理
JP2017527023A (ja) * 2014-08-04 2017-09-14 エイアールエム リミテッド 不揮発性メモリへの書き込み操作
US11429532B2 (en) 2014-08-04 2022-08-30 Arm Limited Write operations to non-volatile memory
US10366021B2 (en) 2015-12-30 2019-07-30 Samsung Electronics Co., Ltd. Memory system including DRAM cache and cache management method thereof
US11023396B2 (en) 2015-12-30 2021-06-01 Samsung Electronics Co., Ltd. Memory system including DRAM cache and cache management method thereof
US10621103B2 (en) 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
JP2022047008A (ja) * 2020-09-11 2022-03-24 株式会社東芝 ライトバックキャッシュ装置
CN114942825A (zh) * 2022-05-13 2022-08-26 深信服科技股份有限公司 一种虚拟机热迁移方法、装置、电子设备及存储介质
CN114942825B (zh) * 2022-05-13 2025-08-08 深信服科技股份有限公司 一种虚拟机热迁移方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP3204295B2 (ja) 2001-09-04

Similar Documents

Publication Publication Date Title
CN107102955B (zh) 用于存储子系统的关联和原子回写高速缓冲存储系统和方法
US7861055B2 (en) Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
TWI443514B (zh) 用於更換快取記憶體中的快取列之裝置、系統及方法
KR102510384B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
US20180275899A1 (en) Hardware based map acceleration using forward and reverse cache tables
TWI821151B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
JP2019057193A (ja) メモリシステム
JP2021043678A (ja) メモリシステム及び方法
CN109074307A (zh) 具有直接读取存取的存储器装置
WO2020174428A2 (en) Cache management of logical-physical translation metadata
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
CN107368433A (zh) 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
CN104813293B (zh) 使用动态分配的脏掩码空间的存储器管理
CN104461393A (zh) 一种闪存存储器的混合映射方法
CN110537172B (zh) 混合存储器模块
US20220308766A1 (en) Memory controller and memory system
CN112997161A (zh) 将储存系统用作主存储器的方法和装置
WO2024045585A1 (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
JP3204295B2 (ja) キャッシュメモリシステム
CN110874186A (zh) 闪存控制器及相关的存取方法及电子装置
US11397683B2 (en) Low latency cache for non-volatile memory in a hybrid DIMM
CN110347338A (zh) 混合内存数据交换处理方法、系统及可读存储介质
CN107506139B (zh) 一种面向相变存储器的写请求优化装置
CN117609314A (zh) 一种缓存数据处理方法、缓存控制器、芯片及电子设备
US20230052700A1 (en) Memory expansion with persistent predictive prefetching

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010530

LAPS Cancellation because of no payment of annual fees