JPH09282231A - ライトバック型キャッシュ装置 - Google Patents
ライトバック型キャッシュ装置Info
- Publication number
- JPH09282231A JPH09282231A JP8095548A JP9554896A JPH09282231A JP H09282231 A JPH09282231 A JP H09282231A JP 8095548 A JP8095548 A JP 8095548A JP 9554896 A JP9554896 A JP 9554896A JP H09282231 A JPH09282231 A JP H09282231A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- flag
- line
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 不連続なデータ書き込み時に発生するリード
モディファイライト動作によるオーバーヘッドを削減
し、高速動作を実現することのできるライトバック型キ
ャッシュ装置を提供することである。 【解決手段】 データ選択機能を持つ記憶装置15に接
続されるライトバック型キャッシュ装置において、記憶
装置15のデータの一部を記録保持するデータキャッシ
ュ1と、データキャッシュ1の各ラインごとに設けら
れ、選択可能なデータ単位ごとにデータが書き込まれた
か否かを示す第1のフラグ11とを有し、第1のフラグ
11により書き込みが行われたデータを識別し、そのデ
ータのみを記憶装置15に書き込むように構成される。
モディファイライト動作によるオーバーヘッドを削減
し、高速動作を実現することのできるライトバック型キ
ャッシュ装置を提供することである。 【解決手段】 データ選択機能を持つ記憶装置15に接
続されるライトバック型キャッシュ装置において、記憶
装置15のデータの一部を記録保持するデータキャッシ
ュ1と、データキャッシュ1の各ラインごとに設けら
れ、選択可能なデータ単位ごとにデータが書き込まれた
か否かを示す第1のフラグ11とを有し、第1のフラグ
11により書き込みが行われたデータを識別し、そのデ
ータのみを記憶装置15に書き込むように構成される。
Description
【0001】
【発明の属する技術分野】本発明は、プロセッサ(CP
U(中央処理装置)、グラフィックプロセッサ等)とデ
ータ選択機能を持つ記憶装置との間に接続されるライト
バック型キャッシュ装置に関し、特に、書き込みの際に
発生するオーバーヘッドを削減することができるライト
バック型キャッシュ装置に関する。
U(中央処理装置)、グラフィックプロセッサ等)とデ
ータ選択機能を持つ記憶装置との間に接続されるライト
バック型キャッシュ装置に関し、特に、書き込みの際に
発生するオーバーヘッドを削減することができるライト
バック型キャッシュ装置に関する。
【0002】
【従来の技術】図6は、従来のライトバック型キャッシ
ュ装置の概略図である。
ュ装置の概略図である。
【0003】このライトバック型キャッシュ装置は、そ
のアドレスの割り付け方式をダイレクトマッピングと
し、プロセッサと記憶装置(汎用DRAM等である。)
との間に接続され、高速なプロセッサと比べて低速であ
る記憶装置のアクセス速度をカバーすることを目的とす
るものである。
のアドレスの割り付け方式をダイレクトマッピングと
し、プロセッサと記憶装置(汎用DRAM等である。)
との間に接続され、高速なプロセッサと比べて低速であ
る記憶装置のアクセス速度をカバーすることを目的とす
るものである。
【0004】図6において、このライトバック型キャッ
シュ装置は、データキャッシュ(Data Cache)1と、タ
グ(TAG )3と、ライトフラグ(write flag)5と、有
効フラグ(valid flag)7を有しており、そのデータキ
ャッシュ1は4Kバイトの容量で、1ラインサイズを1
6バイト、ライン数を256ラインとする構成である。
また、各ラインには、上記タグ3と、1ビットの上記ラ
イトフラグ5及び有効フラグ7が付けられている。
シュ装置は、データキャッシュ(Data Cache)1と、タ
グ(TAG )3と、ライトフラグ(write flag)5と、有
効フラグ(valid flag)7を有しており、そのデータキ
ャッシュ1は4Kバイトの容量で、1ラインサイズを1
6バイト、ライン数を256ラインとする構成である。
また、各ラインには、上記タグ3と、1ビットの上記ラ
イトフラグ5及び有効フラグ7が付けられている。
【0005】ここで、ライトフラグ5は、そのフラグが
付けられているラインに対してプロセッサ(図示省略)
から書き込み動作が行われた場合に“1”にセットさ
れ、読み出し動作のみ行われた場合には“0”にセット
される。これにより、キャッシュ・ミスによりライン中
のデータの置き換え動作、すなわち記憶装置からキャッ
シュ装置への再読み込み(以下、「リフィル」と呼
ぶ。)が必要である場合に、ライトフラグ5が“1”で
あれば現在そのラインが保持しているデータを記憶装置
に書き込み、一方、ライトフラグ5が“0”であれば何
もせずに、そのラインに記憶装置から新しいデータが読
み込まれる。
付けられているラインに対してプロセッサ(図示省略)
から書き込み動作が行われた場合に“1”にセットさ
れ、読み出し動作のみ行われた場合には“0”にセット
される。これにより、キャッシュ・ミスによりライン中
のデータの置き換え動作、すなわち記憶装置からキャッ
シュ装置への再読み込み(以下、「リフィル」と呼
ぶ。)が必要である場合に、ライトフラグ5が“1”で
あれば現在そのラインが保持しているデータを記憶装置
に書き込み、一方、ライトフラグ5が“0”であれば何
もせずに、そのラインに記憶装置から新しいデータが読
み込まれる。
【0006】有効フラグ7は、最初“0”にセットされ
ており、そのフラグが付けられているラインに対してプ
ロセッサが読み出しまたは書き込みを行った場合には
“1”がセットされる。従って、有効フラグ7は、その
フラグが付けられているラインのデータが有効か無効か
を示していることになる。
ており、そのフラグが付けられているラインに対してプ
ロセッサが読み出しまたは書き込みを行った場合には
“1”がセットされる。従って、有効フラグ7は、その
フラグが付けられているラインのデータが有効か無効か
を示していることになる。
【0007】以下に、このような構成であるライトバッ
ク型キャッシュ装置の動作について図7を参照しつつ説
明する。
ク型キャッシュ装置の動作について図7を参照しつつ説
明する。
【0008】最初に、図7に用いられている用語につい
て説明しておく。
て説明しておく。
【0009】flagの欄 V は、有効フラグ(Valid flag)を示す。上述したよう
に、データキャッシュの1ラインごとに1ビット付けら
れ、そのラインに有効なデータが存在する場合には
“1”にセットされる。一方、一度もプロセッサから読
み出し(Read)及び書き込み(Write )が行われていな
い場合には“0”にセットされる。
に、データキャッシュの1ラインごとに1ビット付けら
れ、そのラインに有効なデータが存在する場合には
“1”にセットされる。一方、一度もプロセッサから読
み出し(Read)及び書き込み(Write )が行われていな
い場合には“0”にセットされる。
【0010】W は、ライトフラグ(Write flag)を示
す。同様に、データキャッシュの1ラインごとに1ビッ
ト付けられ、そのラインに対して書き込みが行われると
“1”にセットされる。
す。同様に、データキャッシュの1ラインごとに1ビッ
ト付けられ、そのラインに対して書き込みが行われると
“1”にセットされる。
【0011】accessの欄 Readは、プロセッサがキャッシュ装置に対しデータの読
み出しを行うことを、Write は、書き込みを行うことを
示す。
み出しを行うことを、Write は、書き込みを行うことを
示す。
【0012】TAG の欄 Hit は、記憶装置の領域とプロセッサがアクセスしよう
とする領域が同じ、つまり、データキャッシュのライン
が保持しているタグとプロセッサから与えられたアドレ
スのタグ部が一致したことをいう。この場合には、基本
的にはキャッシュの保持しているデータに対してアクセ
スが行われる。
とする領域が同じ、つまり、データキャッシュのライン
が保持しているタグとプロセッサから与えられたアドレ
スのタグ部が一致したことをいう。この場合には、基本
的にはキャッシュの保持しているデータに対してアクセ
スが行われる。
【0013】Missは、記憶装置の領域とアクセスをしよ
うとする領域が異なる、つまり、データキャッシュのラ
インが保持しているタグとプロセッサから与えられたア
ドレスのタグ部が異なっていることをいう。この場合に
は、キャッシュ装置の保持しているデータを記憶装置に
書き出したり、記憶装置からデータを読み込んだりする
必要がある。
うとする領域が異なる、つまり、データキャッシュのラ
インが保持しているタグとプロセッサから与えられたア
ドレスのタグ部が異なっていることをいう。この場合に
は、キャッシュ装置の保持しているデータを記憶装置に
書き出したり、記憶装置からデータを読み込んだりする
必要がある。
【0014】Bus 動作の欄 Readは、データキャッシュの該当するラインの該当する
位置のデータを読み出し、プロセッサのデータレジスタ
にデータを出力することを示す。
位置のデータを読み出し、プロセッサのデータレジスタ
にデータを出力することを示す。
【0015】Write は、データキャッシュの該当するラ
インの該当する位置にデータを上書きすることを示す。
インの該当する位置にデータを上書きすることを示す。
【0016】Refill&Read は、データキャッシュの該当
するラインに記憶装置からデータを1ライン分読み込
み、その後、上記Readを行うことを示す。
するラインに記憶装置からデータを1ライン分読み込
み、その後、上記Readを行うことを示す。
【0017】Refill&Writeは、データキャッシュの該当
するラインに記憶装置からデータを1ライン分読み込
み、その後、上記Write を行うことを示す。
するラインに記憶装置からデータを1ライン分読み込
み、その後、上記Write を行うことを示す。
【0018】Flush は、データキャッシュの該当するラ
インのデータを記憶装置に書き込むことを示す。
インのデータを記憶装置に書き込むことを示す。
【0019】Flush&Refill&Read は、まず上記Flush を
行い、次に上記Refillを行い、最後上記Readを行うこと
を示す。
行い、次に上記Refillを行い、最後上記Readを行うこと
を示す。
【0020】Flush&Refill&Writeは、まず上記Flush を
行い、次に上記Refillを行い、最後に上記Write を行う
ことを示す。
行い、次に上記Refillを行い、最後に上記Write を行う
ことを示す。
【0021】Flag動作の欄 V=1 は、有効フラグを“1”にセットすることを、V=0
は、有効フラグを“0”にセットすることを、V=- は、
有効フラグを変更しないことをそれぞれ示し、W=1 は、
ライトフラグを“1”にセットすることを、W=0 は、ラ
イトフラグを“0”にセットすることを、W=- は、ライ
トフラグを変更しないことをそれぞれ示す。
は、有効フラグを“0”にセットすることを、V=- は、
有効フラグを変更しないことをそれぞれ示し、W=1 は、
ライトフラグを“1”にセットすることを、W=0 は、ラ
イトフラグを“0”にセットすることを、W=- は、ライ
トフラグを変更しないことをそれぞれ示す。
【0022】次に、具体的に、このキャッシュ装置の動
作について図6も参照して説明する。
作について図6も参照して説明する。
【0023】まず、キャッシュ装置に送られてくるアド
レス9は、3つに部分に分割される。すなわち、各ライ
ン中の求めるデータの選択に用いられるオフセット部
(offset)、ラインの選択に用いられるインデックス部
(index )、キャッシュのタグ3との比較に用いられる
タグ部(TAG )である。ここでは、アドレス9は全体で
32ビットであり、オフセット部は1ラインサイズが1
6バイトであることから4ビット、インデックス部はラ
イン数が256ラインであることから8ビット、タグ部
が残りの20ビットとなっている。
レス9は、3つに部分に分割される。すなわち、各ライ
ン中の求めるデータの選択に用いられるオフセット部
(offset)、ラインの選択に用いられるインデックス部
(index )、キャッシュのタグ3との比較に用いられる
タグ部(TAG )である。ここでは、アドレス9は全体で
32ビットであり、オフセット部は1ラインサイズが1
6バイトであることから4ビット、インデックス部はラ
イン数が256ラインであることから8ビット、タグ部
が残りの20ビットとなっている。
【0024】次に、上記インデックス部がデコードさ
れ、どのラインがアクセス対象となっているかを決定す
る。
れ、どのラインがアクセス対象となっているかを決定す
る。
【0025】次に、上記タグ部とキャッシュ装置のタグ
3とが比較される。ライン中の該当する位置のデータの
選択は、上記オフセット部をデコードすることにより行
われる。以下、読み出しの場合と書き込みの場合とに分
けて説明する。
3とが比較される。ライン中の該当する位置のデータの
選択は、上記オフセット部をデコードすることにより行
われる。以下、読み出しの場合と書き込みの場合とに分
けて説明する。
【0026】(1)読み出しの場合 (a)両者が一致し、有効フラグが“1”であれば、該
当する位置のデータを読み出し、プロセッサに出力し、
有効フラグ、ライトフラグ共に変更しない(条件1、
5)。
当する位置のデータを読み出し、プロセッサに出力し、
有効フラグ、ライトフラグ共に変更しない(条件1、
5)。
【0027】有効フラグが“0”であれば、該当する位
置に記憶装置からデータを1ライン分読み込んだ後、そ
のデータを読み出し、プロセッサに出力し、有効フラグ
を“1”にセットし、ライトフラグを“0”にセットす
る(条件9)。
置に記憶装置からデータを1ライン分読み込んだ後、そ
のデータを読み出し、プロセッサに出力し、有効フラグ
を“1”にセットし、ライトフラグを“0”にセットす
る(条件9)。
【0028】(b)両者が一致せず、有効フラグが
“1”である場合に、ライトフラグが“0”であれば、
該当する位置に記憶装置からデータを1ライン分読み込
んだ後、そのデータを読み出し、プロセッサに出力し、
有効フラグ、ライトフラグ共に変更しない(条件2)。
一方、ライトフラグが“1”であれば、該当する位置の
データを記憶装置に書き出した後、該当する位置に記憶
装置からデータを1ライン分読み込み、その後、そのデ
ータを読み出し、プロセッサに出力し、有効フラグはそ
のまま、ライトフラグは“0”にセットする(条件
6)。
“1”である場合に、ライトフラグが“0”であれば、
該当する位置に記憶装置からデータを1ライン分読み込
んだ後、そのデータを読み出し、プロセッサに出力し、
有効フラグ、ライトフラグ共に変更しない(条件2)。
一方、ライトフラグが“1”であれば、該当する位置の
データを記憶装置に書き出した後、該当する位置に記憶
装置からデータを1ライン分読み込み、その後、そのデ
ータを読み出し、プロセッサに出力し、有効フラグはそ
のまま、ライトフラグは“0”にセットする(条件
6)。
【0029】(2)書き込みの場合 (a)両者が一致し、有効フラグが“1”であれば、該
当する位置のデータを上書きし、有効フラグは変更しな
い。一方、ライトフラグは“1”であればそのまま、
“0”であれば“1”にセットする(条件3、7)。
当する位置のデータを上書きし、有効フラグは変更しな
い。一方、ライトフラグは“1”であればそのまま、
“0”であれば“1”にセットする(条件3、7)。
【0030】有効フラグが“0”であれば、該当する位
置に記憶装置からデータを1ライン分読み込んだ後、そ
のデータを上書きし、有効フラグ、ライトフラグ共に
“1”にセットする(条件10)。
置に記憶装置からデータを1ライン分読み込んだ後、そ
のデータを上書きし、有効フラグ、ライトフラグ共に
“1”にセットする(条件10)。
【0031】(b)両者が一致せず、有効フラグが
“1”である場合に、ライトフラグが“0”であれば、
該当する位置に記憶装置からデータを1ライン分読み込
んだ後、そのデータを上書きし、有効フラグはそのま
ま、ライトフラグは“1”にセットする(条件4)。一
方、ライトフラグが“1”であれば、該当する位置のデ
ータを記憶装置に書き出した後、該当する位置に記憶装
置からデータを1ライン分読み込み、その後、そのデー
タを上書きし、有効フラグ、ライトフラグ共に変更しな
い(条件8)。
“1”である場合に、ライトフラグが“0”であれば、
該当する位置に記憶装置からデータを1ライン分読み込
んだ後、そのデータを上書きし、有効フラグはそのま
ま、ライトフラグは“1”にセットする(条件4)。一
方、ライトフラグが“1”であれば、該当する位置のデ
ータを記憶装置に書き出した後、該当する位置に記憶装
置からデータを1ライン分読み込み、その後、そのデー
タを上書きし、有効フラグ、ライトフラグ共に変更しな
い(条件8)。
【0032】
【発明が解決しようとする課題】しかしながら、従来の
ライトバック型キャッシュ装置には次のような問題があ
った。
ライトバック型キャッシュ装置には次のような問題があ
った。
【0033】ライン中のデータの書き込みが、1ライン
分を記憶装置から読み出す−必要なデータの変更−更新
されたラインを記憶装置に書き戻す(read-modify-writ
e :リードモディファイライト)の操作が順を追って実
行されることにより行われるために、オーバーヘッドが
生じてしまうのである。
分を記憶装置から読み出す−必要なデータの変更−更新
されたラインを記憶装置に書き戻す(read-modify-writ
e :リードモディファイライト)の操作が順を追って実
行されることにより行われるために、オーバーヘッドが
生じてしまうのである。
【0034】以下、具体的に説明する。
【0035】プロセッサからキャッシュへの書き込みの
データサイズは1〜8バイトで、1つのライン中で一時
に変更可能なのはこの部分だけである。一方、キャッシ
ュから記憶装置への書き込みはラインサイズ単位でしか
行うことができない。
データサイズは1〜8バイトで、1つのライン中で一時
に変更可能なのはこの部分だけである。一方、キャッシ
ュから記憶装置への書き込みはラインサイズ単位でしか
行うことができない。
【0036】従って、ライン中の一部のデータのみの書
き込みでは、変更しないデータの部分まで一旦読み込ま
なければならない、つまり、オーバーヘッドが生じ、そ
の分処理が遅くなってしまうのである。
き込みでは、変更しないデータの部分まで一旦読み込ま
なければならない、つまり、オーバーヘッドが生じ、そ
の分処理が遅くなってしまうのである。
【0037】このようなライトバック型キャッシュ装置
は、プロセッサの読み出し動作や同じ場所への書き込み
動作が多い場合にはオーバーヘッドの生じる割合は低
く、問題とはならないが、フレームバッファへの画像デ
ータの書き込みなどの不連続なデータへの非局所的でラ
ンダムな書き込み動作が多い場合などでは、上記リード
モディファイライト動作における読み込み動作がオーバ
ーヘッドとなってしまうのである。
は、プロセッサの読み出し動作や同じ場所への書き込み
動作が多い場合にはオーバーヘッドの生じる割合は低
く、問題とはならないが、フレームバッファへの画像デ
ータの書き込みなどの不連続なデータへの非局所的でラ
ンダムな書き込み動作が多い場合などでは、上記リード
モディファイライト動作における読み込み動作がオーバ
ーヘッドとなってしまうのである。
【0038】本発明は上記事情に鑑みて成されたもので
あり、その目的は、不連続なデータ書き込み時に発生す
るリードモディファイライト動作によるオーバーヘッド
を削減することにより、高速動作を実現することができ
るライトバック型キャッシュ装置を提供することであ
る。
あり、その目的は、不連続なデータ書き込み時に発生す
るリードモディファイライト動作によるオーバーヘッド
を削減することにより、高速動作を実現することができ
るライトバック型キャッシュ装置を提供することであ
る。
【0039】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、データ選択機能を持つ記憶装置に接続
されるライトバック型キャッシュ装置において、前記記
憶装置のデータの一部を記録保持するデータキャッシュ
と、前記データキャッシュの各ラインごとに設けられ、
選択可能なデータ単位ごとにデータが書き込まれたか否
かを示す第1のフラグとを有し、前記第1のフラグによ
り書き込みが行われたデータを識別し、そのデータのみ
を記憶装置に書き込むことを特徴とする。
めに、本発明は、データ選択機能を持つ記憶装置に接続
されるライトバック型キャッシュ装置において、前記記
憶装置のデータの一部を記録保持するデータキャッシュ
と、前記データキャッシュの各ラインごとに設けられ、
選択可能なデータ単位ごとにデータが書き込まれたか否
かを示す第1のフラグとを有し、前記第1のフラグによ
り書き込みが行われたデータを識別し、そのデータのみ
を記憶装置に書き込むことを特徴とする。
【0040】ここで、通常、プロセッサからキャッシュ
装置への書き込みはバイト(8ビット)の整数倍単位で
行われることから、前記選択可能データ単位は1バイト
であることが好ましい。
装置への書き込みはバイト(8ビット)の整数倍単位で
行われることから、前記選択可能データ単位は1バイト
であることが好ましい。
【0041】また、ラインが有効か否かを識別する動作
の高速化の点から、前記第1のフラグの論理ORを取っ
た結果を示す第2のフラグを各ラインに設けることが好
ましい。
の高速化の点から、前記第1のフラグの論理ORを取っ
た結果を示す第2のフラグを各ラインに設けることが好
ましい。
【0042】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態について説明する。図1は、本発明の実施の形態
に係るライトバック型キャッシュ装置の概念図である。
なお、従来例と同一部分には同一符号を付してある。
の形態について説明する。図1は、本発明の実施の形態
に係るライトバック型キャッシュ装置の概念図である。
なお、従来例と同一部分には同一符号を付してある。
【0043】このライトバック型キャッシュ装置は、プ
ロセッサ(CPU(中央処理装置)、グラフィックプロ
セッサ等)とデータ選択機能を有する低速な汎用DRA
M等の記憶装置(グラフィックスメモリ等)15との間
に接続され、従来のライトバック型キャッシュ装置と同
様に、高速なプロセッサと比べて低速である記憶装置1
5のアクセス速度をカバーすることを目的とするもので
ある。なお、ここでは、上記プロセッサは図示されてい
ない。
ロセッサ(CPU(中央処理装置)、グラフィックプロ
セッサ等)とデータ選択機能を有する低速な汎用DRA
M等の記憶装置(グラフィックスメモリ等)15との間
に接続され、従来のライトバック型キャッシュ装置と同
様に、高速なプロセッサと比べて低速である記憶装置1
5のアクセス速度をカバーすることを目的とするもので
ある。なお、ここでは、上記プロセッサは図示されてい
ない。
【0044】図1において、このライトバック型キャッ
シュ装置は、そのアドレスの割り付け方式をダイレクト
マッピングとし、データキャッシュ(Data Cache)1
と、タグ(TAG )3と、ライトフラグ(write flag)5
とを有しており、そのデータキャッシュ1は4Kバイト
の容量で、1ラインサイズを16バイト、ライン数を2
56ラインとする構成である。各ラインには、上記タグ
3と、1ビットの上記ライトフラグ5が付けられてい
る。
シュ装置は、そのアドレスの割り付け方式をダイレクト
マッピングとし、データキャッシュ(Data Cache)1
と、タグ(TAG )3と、ライトフラグ(write flag)5
とを有しており、そのデータキャッシュ1は4Kバイト
の容量で、1ラインサイズを16バイト、ライン数を2
56ラインとする構成である。各ラインには、上記タグ
3と、1ビットの上記ライトフラグ5が付けられてい
る。
【0045】さらに、このライトバック型キャッシュ装
置は、ラインごとに複数ビットのダーティフラグ(Dirt
y flag)11と1ビットのリードフラグ(Read flag )
13が付けられている。
置は、ラインごとに複数ビットのダーティフラグ(Dirt
y flag)11と1ビットのリードフラグ(Read flag )
13が付けられている。
【0046】ここで、ダーティフラグ11は、そのフラ
グが付けられているラインの選択可能な書き込みデータ
単位ごとに1ビットを有し、例えば、本実施の形態で
は、選択可能な書き込みデータ単位を1バイトとする
と、16ビットを有することになる。このダーティフラ
グ11は、プロセッサからキャッシュに書き込みが行わ
れた場合に書き込みデータに対応するビットが“1”に
セットされる。また、リードフラグ13は、そのフラグ
が付けられているラインに対してプロセッサへの読み出
しが行われた場合に“1”にセットされる。
グが付けられているラインの選択可能な書き込みデータ
単位ごとに1ビットを有し、例えば、本実施の形態で
は、選択可能な書き込みデータ単位を1バイトとする
と、16ビットを有することになる。このダーティフラ
グ11は、プロセッサからキャッシュに書き込みが行わ
れた場合に書き込みデータに対応するビットが“1”に
セットされる。また、リードフラグ13は、そのフラグ
が付けられているラインに対してプロセッサへの読み出
しが行われた場合に“1”にセットされる。
【0047】なお、ライトフラグ5とリードフラグ13
の論理ORが従来例の有効フラグ7と同じ意味となる。
の論理ORが従来例の有効フラグ7と同じ意味となる。
【0048】またライトフラグ5は常に、そのフラグが
付けられているラインのダーティフラグ11の全ビット
の論理ORを示しているので、該当するラインに書き込
みが行われたか否かの判断にダーティフラグ11の論理
ORを用いることにより、ライトフラグ5を削除するこ
とは可能である。これにより、回路規模の縮小を図るこ
とが可能である。
付けられているラインのダーティフラグ11の全ビット
の論理ORを示しているので、該当するラインに書き込
みが行われたか否かの判断にダーティフラグ11の論理
ORを用いることにより、ライトフラグ5を削除するこ
とは可能である。これにより、回路規模の縮小を図るこ
とが可能である。
【0049】以下に、このライトバック型キャッシュ装
置の動作について図2、図3を参照して説明する。図2
は、図1に示すライトバック型キャッシュ装置の一構成
例を示す図であり、上述したように、プロセッサ17と
記憶装置15との間にライトバック型キャッシュ装置1
9が接続されている。また、図3は、図1に示すライト
バック型キャッシュ装置の動作を説明するための図であ
る。
置の動作について図2、図3を参照して説明する。図2
は、図1に示すライトバック型キャッシュ装置の一構成
例を示す図であり、上述したように、プロセッサ17と
記憶装置15との間にライトバック型キャッシュ装置1
9が接続されている。また、図3は、図1に示すライト
バック型キャッシュ装置の動作を説明するための図であ
る。
【0050】最初に、図3に用いられる用語について説
明しておく。
明しておく。
【0051】flagの欄 R は、リードフラグ(Read flag )を示す。上述したよ
うに、キャッシュの1ラインごとに1ビット付けられ、
そのラインに対して読み出しが行われると“1”にセッ
トされる。
うに、キャッシュの1ラインごとに1ビット付けられ、
そのラインに対して読み出しが行われると“1”にセッ
トされる。
【0052】W は、ライトフラグ(Write flag)を示
す。同様に、キャッシュの1ラインごとに1ビット付け
られ、そのラインに対して書き込みが行われると“1”
にセットされる。
す。同様に、キャッシュの1ラインごとに1ビット付け
られ、そのラインに対して書き込みが行われると“1”
にセットされる。
【0053】accessの欄 Readは、プロセッサがキャッシュ装置に対しデータの読
み出しを行うことを、Write は、書き込みを行うことを
示す。
み出しを行うことを、Write は、書き込みを行うことを
示す。
【0054】TAG の欄 Hit は、記憶装置の領域とプロセッサがアクセスしよう
とする領域が同じ、つまり、データキャッシュのライン
が保持しているタグとプロセッサから与えられたアドレ
スのタグ部が一致したことをいう。この場合には、基本
的にはキャッシュの保持しているデータに対してアクセ
スが行われる。
とする領域が同じ、つまり、データキャッシュのライン
が保持しているタグとプロセッサから与えられたアドレ
スのタグ部が一致したことをいう。この場合には、基本
的にはキャッシュの保持しているデータに対してアクセ
スが行われる。
【0055】Missは、記憶装置の領域とアクセスをしよ
うとする領域が異なる、つまり、データキャッシュのラ
インが保持しているタグとプロセッサから与えられたア
ドレスのタグ部が異なっていることをいう。この場合に
は、キャッシュ装置の保持しているデータを記憶装置に
書き出したり、記憶装置からデータを読み込んだりする
必要がある。
うとする領域が異なる、つまり、データキャッシュのラ
インが保持しているタグとプロセッサから与えられたア
ドレスのタグ部が異なっていることをいう。この場合に
は、キャッシュ装置の保持しているデータを記憶装置に
書き出したり、記憶装置からデータを読み込んだりする
必要がある。
【0056】Bus 動作の欄 Readは、データキャッシュの該当するラインの該当する
位置のデータを読み出し、プロセッサのデータレジスタ
にデータを出力することを示す。
位置のデータを読み出し、プロセッサのデータレジスタ
にデータを出力することを示す。
【0057】Write は、データキャッシュの該当するラ
インの該当する位置にデータを上書きすることを示す。
インの該当する位置にデータを上書きすることを示す。
【0058】Refill&Read は、データキャッシュの該当
するラインに記憶装置からデータを1ライン分読み込
み、その後、上記Readを行うことを示す。
するラインに記憶装置からデータを1ライン分読み込
み、その後、上記Readを行うことを示す。
【0059】Flush は、データキャッシュの該当するラ
インのデータを記憶装置に書き込むことを示す。
インのデータを記憶装置に書き込むことを示す。
【0060】Flush&Write は、まず上記Flush を行い、
次に上記Write を行うことを示す。
次に上記Write を行うことを示す。
【0061】Flush&Refill&Read は、まず上記Flush を
行い、次に上記Refillを行い、最後に上記Readを行うこ
とを示す。
行い、次に上記Refillを行い、最後に上記Readを行うこ
とを示す。
【0062】なお、(*1)については、後述する。
【0063】Flag動作の欄 R=1 は、リードフラグを“1”にセットすることを、R=
0 は、リードフラグを“0”にセットすることを、R=-
は、リードフラグを変更しないことをそれぞれ示し、W=
1 は、ライトフラグを“1”にセットすることを、W=0
は、ライトフラグを“0”にセットすることを、W=-
は、ライトフラグを変更しないことをそれぞれ示し、D=
0 は、該当するラインに付けられたダーティフラグの全
てのビットを0にセットすることを、D=- は、該当する
ラインに付けられたダーティフラグの全てのビットを変
更しないことを、D=@data は、ダーティフラグのビット
のうち、書き込みデータの位置に対応するビットを
“1”にセットし、それ以外のビットは変更しないこと
を、D=0&D=@data は、該当するラインに付けられたダー
ティフラグの全てのビットを0にセットした後、書き込
みデータの位置に対応するビットを“1”にセットし、
それ以外のビットは変更しないことをそれぞれ示す。
0 は、リードフラグを“0”にセットすることを、R=-
は、リードフラグを変更しないことをそれぞれ示し、W=
1 は、ライトフラグを“1”にセットすることを、W=0
は、ライトフラグを“0”にセットすることを、W=-
は、ライトフラグを変更しないことをそれぞれ示し、D=
0 は、該当するラインに付けられたダーティフラグの全
てのビットを0にセットすることを、D=- は、該当する
ラインに付けられたダーティフラグの全てのビットを変
更しないことを、D=@data は、ダーティフラグのビット
のうち、書き込みデータの位置に対応するビットを
“1”にセットし、それ以外のビットは変更しないこと
を、D=0&D=@data は、該当するラインに付けられたダー
ティフラグの全てのビットを0にセットした後、書き込
みデータの位置に対応するビットを“1”にセットし、
それ以外のビットは変更しないことをそれぞれ示す。
【0064】なお、(*2)について後述する。
【0065】次に、具体的に、このキャッシュ装置の動
作について図1、図2、図3を用いて説明する。
作について図1、図2、図3を用いて説明する。
【0066】まず、プロセッサ17から与えられるアド
レス9は、従来と同様に、4ビットのオフセット部、8
ビットのインデックス部、20ビットのタグ部に分けら
れる。
レス9は、従来と同様に、4ビットのオフセット部、8
ビットのインデックス部、20ビットのタグ部に分けら
れる。
【0067】次に、上記インデックス部をライン選択回
路25がデコードし、どのラインがアクセス対象となっ
ているかを決定する。
路25がデコードし、どのラインがアクセス対象となっ
ているかを決定する。
【0068】次に、上記タグ部とキャッシュ装置19の
タグ3との比較が比較器27により行われる。ライン中
の該当する位置のデータの選択は、データ位置選択回路
23で上記オフセット部をデコードすることにより行わ
れる。以下、読み出しの場合と書き込みの場合とに分け
て説明する。
タグ3との比較が比較器27により行われる。ライン中
の該当する位置のデータの選択は、データ位置選択回路
23で上記オフセット部をデコードすることにより行わ
れる。以下、読み出しの場合と書き込みの場合とに分け
て説明する。
【0069】(1)読み出しの場合 ここでは、プロセッサ17がキャッシュ装置19からデ
ータを読み出す場合の一単位を32ビット(4バイト)
とする。従って、1、2、3バイト単位の読み出しの場
合には、4バイトデータの中から該当する部分のデータ
を選択する必要がある。
ータを読み出す場合の一単位を32ビット(4バイト)
とする。従って、1、2、3バイト単位の読み出しの場
合には、4バイトデータの中から該当する部分のデータ
を選択する必要がある。
【0070】(a)上記タグ部とキャッシュ装置19の
タグ3とが一致し、リードフラグが“1”であれば、ラ
イトフラグの状態にかかわらず、該当する位置のデータ
を読み出し、プロセッサに出力し、リードフラグ、ライ
トフラグ、ダーティフラグ全て変更しない(条件1、
9)。
タグ3とが一致し、リードフラグが“1”であれば、ラ
イトフラグの状態にかかわらず、該当する位置のデータ
を読み出し、プロセッサに出力し、リードフラグ、ライ
トフラグ、ダーティフラグ全て変更しない(条件1、
9)。
【0071】リードフラグが“0”で、ライトフラグが
“1”である場合については後で説明する(条件5)。
“1”である場合については後で説明する(条件5)。
【0072】(b)上記タグ部とキャッシュ装置19の
タグ3とが一致せず、リードフラグが“1”、ライトフ
ラグが“0”である場合には、該当する位置に記憶装置
からデータを1ライン分読み込んだ後、そのデータを読
み出し、プロセッサに出力し、リードフラグを“1”に
セットし、ライトフラグおよびダーティフラグは変更し
ない(条件2)。
タグ3とが一致せず、リードフラグが“1”、ライトフ
ラグが“0”である場合には、該当する位置に記憶装置
からデータを1ライン分読み込んだ後、そのデータを読
み出し、プロセッサに出力し、リードフラグを“1”に
セットし、ライトフラグおよびダーティフラグは変更し
ない(条件2)。
【0073】ライトフラグが“1”であれば、リードフ
ラグの状態にかかわらず、該当する位置のデータを記憶
装置に書き出した後、該当する位置に記憶装置からデー
タを1ライン分読み込み、その後、そのデータを読み出
し、プロセッサに出力し、リードフラグを“1”にセッ
トし、ライトフラグおよびダーティフラグは“0”にセ
ットする(条件6、10)。
ラグの状態にかかわらず、該当する位置のデータを記憶
装置に書き出した後、該当する位置に記憶装置からデー
タを1ライン分読み込み、その後、そのデータを読み出
し、プロセッサに出力し、リードフラグを“1”にセッ
トし、ライトフラグおよびダーティフラグは“0”にセ
ットする(条件6、10)。
【0074】(c)リードフラグ、ライトフラグ共に
“0”である場合には、該当する位置に記憶装置からデ
ータを1ライン分読み込んだ後、そのデータを読み出
し、プロセッサに出力し、リードフラグを“1”にセッ
トし、ライトフラグおよびダーティフラグは変更しない
(条件13)。
“0”である場合には、該当する位置に記憶装置からデ
ータを1ライン分読み込んだ後、そのデータを読み出
し、プロセッサに出力し、リードフラグを“1”にセッ
トし、ライトフラグおよびダーティフラグは変更しない
(条件13)。
【0075】ここで、上記条件5の動作について説明す
る。
る。
【0076】まず、バイト単位のヒットチェックを行わ
ない場合には、以下の2つの動作がある。
ない場合には、以下の2つの動作がある。
【0077】その1つの動作は、該当する位置のデータ
を記憶装置に書き出した後、該当する位置に記憶装置か
らデータを1ライン分読み込み、その後、そのデータを
読み出し、プロセッサに出力し、リードフラグを“1”
にセットし、ライトフラグおよびダーティフラグは
“0”にセットするというものである。
を記憶装置に書き出した後、該当する位置に記憶装置か
らデータを1ライン分読み込み、その後、そのデータを
読み出し、プロセッサに出力し、リードフラグを“1”
にセットし、ライトフラグおよびダーティフラグは
“0”にセットするというものである。
【0078】他の動作は、上記ダーティフラグを利用
し、記憶装置から書き込みの行われていないデータ部分
のみを読み込んだ後、そのデータを読み出し、プロセッ
サに出力し、リードフラグおよびライトフラグを“1”
にセットし、ダーティフラグのビットのうち、書き込み
データの位置に対応するビットを“1”にセットし、そ
れ以外のビットは変更しないというものである。
し、記憶装置から書き込みの行われていないデータ部分
のみを読み込んだ後、そのデータを読み出し、プロセッ
サに出力し、リードフラグおよびライトフラグを“1”
にセットし、ダーティフラグのビットのうち、書き込み
データの位置に対応するビットを“1”にセットし、そ
れ以外のビットは変更しないというものである。
【0079】次に、バイト単位のヒットチェックを行う
場合である。
場合である。
【0080】バイト単位のヒットチェックは、上記タグ
部とキャッシュ装置19のタグ3とが一致した場合に、
アドレス9のオフセット部で指定するデータ位置に該当
するダーティフラグのビットの状態をチェックすること
により行われ、アクティブ(“1”の状態)であればヒ
ットとするものである。
部とキャッシュ装置19のタグ3とが一致した場合に、
アドレス9のオフセット部で指定するデータ位置に該当
するダーティフラグのビットの状態をチェックすること
により行われ、アクティブ(“1”の状態)であればヒ
ットとするものである。
【0081】かかるバイトチェックを行うことにより、
読み出すデータが、既に書き込みの行われた部分のデー
タであるならば(読み出すデータ位置に対応するダーテ
ィフラグのビットが“1”である場合)、該当する位置
のデータを読み出し、プロセッサに出力し、リードフラ
グ、ライトフラグ、ダーティフラグ全て変更しない。
読み出すデータが、既に書き込みの行われた部分のデー
タであるならば(読み出すデータ位置に対応するダーテ
ィフラグのビットが“1”である場合)、該当する位置
のデータを読み出し、プロセッサに出力し、リードフラ
グ、ライトフラグ、ダーティフラグ全て変更しない。
【0082】一方、既に書き込みの行われた部分のデー
タでないならば(読み出すデータ位置に対応するダーテ
ィフラグのビットが“0”である場合)、該当する位置
のデータを記憶装置に書き出した後、該当する位置に記
憶装置からデータを1ライン分読み込み、その後、その
データを読み出し、プロセッサに出力し、リードフラグ
を“1”にセットし、ライトフラグおよびダーティフラ
グは“0”にセットする。なお、上記ダーティフラグを
利用し、記憶装置から書き込みの行われていないデータ
部分のみを読み込んだ後、そのデータを読み出し、プロ
セッサに出力し、リードフラグおよびライトフラグを
“1”にセットし、ダーティフラグのビットのうち、書
き込みデータの位置に対応するビットを“1”にセット
し、それ以外のビットは変更しないことも可能である。
タでないならば(読み出すデータ位置に対応するダーテ
ィフラグのビットが“0”である場合)、該当する位置
のデータを記憶装置に書き出した後、該当する位置に記
憶装置からデータを1ライン分読み込み、その後、その
データを読み出し、プロセッサに出力し、リードフラグ
を“1”にセットし、ライトフラグおよびダーティフラ
グは“0”にセットする。なお、上記ダーティフラグを
利用し、記憶装置から書き込みの行われていないデータ
部分のみを読み込んだ後、そのデータを読み出し、プロ
セッサに出力し、リードフラグおよびライトフラグを
“1”にセットし、ダーティフラグのビットのうち、書
き込みデータの位置に対応するビットを“1”にセット
し、それ以外のビットは変更しないことも可能である。
【0083】(2)書き込みの場合 ここでは、プロセッサ17がキャッシュ装置19にデー
タを書き込む場合の一単位を8ビット(1バイト)とす
る。従って、2、3、4バイトのデータの書き込みを行
う場合には、プロセッサでバイト単位の数回の書き込み
に分割する必要がある。(a)上記タグ部とキャッシュ
装置19のタグ3とが一致し、リードフラグが“1”で
あれば、ライトフラグの状態にかかわらず、該当する位
置のデータを上書きし、リードフラグはそのまま、ライ
トフラグは“1”にセットし、ダーティフラグについて
は、ダーティフラグのビットのうち、書き込みデータの
位置に対応するビットを“1”にセットし、それ以外の
ビットは変更しない(条件3、11)。
タを書き込む場合の一単位を8ビット(1バイト)とす
る。従って、2、3、4バイトのデータの書き込みを行
う場合には、プロセッサでバイト単位の数回の書き込み
に分割する必要がある。(a)上記タグ部とキャッシュ
装置19のタグ3とが一致し、リードフラグが“1”で
あれば、ライトフラグの状態にかかわらず、該当する位
置のデータを上書きし、リードフラグはそのまま、ライ
トフラグは“1”にセットし、ダーティフラグについて
は、ダーティフラグのビットのうち、書き込みデータの
位置に対応するビットを“1”にセットし、それ以外の
ビットは変更しない(条件3、11)。
【0084】リードフラグが“0”で、ライトフラグが
“1”である場合には、該当する位置のデータを上書き
し、リードフラグは“0”にセットし、ライトフラグは
“1”にセットし、ダーティフラグについては、ダーテ
ィフラグのビットのうち、書き込みデータの位置に対応
するビットを“1”にセットし、それ以外のビットは変
更しない(条件7)。
“1”である場合には、該当する位置のデータを上書き
し、リードフラグは“0”にセットし、ライトフラグは
“1”にセットし、ダーティフラグについては、ダーテ
ィフラグのビットのうち、書き込みデータの位置に対応
するビットを“1”にセットし、それ以外のビットは変
更しない(条件7)。
【0085】(b)上記タグ部とキャッシュ装置19の
タグ3とが一致せず、リードフラグが“1”、ライトフ
ラグが“0”である場合には、該当する位置のデータを
上書きし、リードフラグは“0”にセットし、ライトフ
ラグは“1”にセットし、ダーティフラグについては、
ダーティフラグのビットのうち、書き込みデータの位置
に対応するビットを“1”にセットし、それ以外のビッ
トは変更しない(条件4)。
タグ3とが一致せず、リードフラグが“1”、ライトフ
ラグが“0”である場合には、該当する位置のデータを
上書きし、リードフラグは“0”にセットし、ライトフ
ラグは“1”にセットし、ダーティフラグについては、
ダーティフラグのビットのうち、書き込みデータの位置
に対応するビットを“1”にセットし、それ以外のビッ
トは変更しない(条件4)。
【0086】ライトフラグが“1”であれば、リードフ
ラグの状態にかかわらず、該当する位置のデータを上書
きし、リードフラグは“0”にセットし、ライトフラグ
は“1”にセットし、ダーティフラグについては、該当
するラインに付けられたダーティフラグの全てのビット
を0にセットした後、書き込みデータの位置に対応する
ビットを“1”にセットし、それ以外のビットは変更し
ない(条件8、12)。
ラグの状態にかかわらず、該当する位置のデータを上書
きし、リードフラグは“0”にセットし、ライトフラグ
は“1”にセットし、ダーティフラグについては、該当
するラインに付けられたダーティフラグの全てのビット
を0にセットした後、書き込みデータの位置に対応する
ビットを“1”にセットし、それ以外のビットは変更し
ない(条件8、12)。
【0087】(c)リードフラグ、ライトフラグ共に
“0”である場合には、該当する位置のデータを上書き
し、リードフラグを“0”にセットし、ライトフラグを
“1”にセットし、ダーティフラグについては、ダーテ
ィフラグのビットのうち、書き込みデータの位置に対応
するビットを“1”にセットし、それ以外のビットは変
更しない(条件14)。
“0”である場合には、該当する位置のデータを上書き
し、リードフラグを“0”にセットし、ライトフラグを
“1”にセットし、ダーティフラグについては、ダーテ
ィフラグのビットのうち、書き込みデータの位置に対応
するビットを“1”にセットし、それ以外のビットは変
更しない(条件14)。
【0088】なお、ここでは、プロセッサからキャッシ
ュ装置への書き込みは1バイト単位としたが、プロセッ
サからキャッシュコントローラ21へ書き込みデータサ
イズの情報を送ることにより、1バイト以外のサイズ
(2バイト、3バイト、4バイト等)のデータの書き込
みを一度に実行することができるようになる。
ュ装置への書き込みは1バイト単位としたが、プロセッ
サからキャッシュコントローラ21へ書き込みデータサ
イズの情報を送ることにより、1バイト以外のサイズ
(2バイト、3バイト、4バイト等)のデータの書き込
みを一度に実行することができるようになる。
【0089】以上説明したように、本発明に係るライト
バック型キャッシュ装置は、記憶装置へのデータの書き
込み動作の際には、一旦、該当するラインのデータを記
憶装置から読み込むという動作が行われておらず、まさ
に、この点が本発明の特徴なのである。
バック型キャッシュ装置は、記憶装置へのデータの書き
込み動作の際には、一旦、該当するラインのデータを記
憶装置から読み込むという動作が行われておらず、まさ
に、この点が本発明の特徴なのである。
【0090】このことは、キャッシュ装置から記憶装置
へのデータ書き込みの際、キャッシュ装置のデータのう
ち必要なデータのみをキャッシュ装置から記憶装置へ書
き込むことが可能であることによるものである。
へのデータ書き込みの際、キャッシュ装置のデータのう
ち必要なデータのみをキャッシュ装置から記憶装置へ書
き込むことが可能であることによるものである。
【0091】以下、上述した、キャッシュ装置から記憶
装置への書き込み動作について図4、図5を用いて説明
する。
装置への書き込み動作について図4、図5を用いて説明
する。
【0092】図4は、ダーティフラグ11、データ選択
部29、記憶装置15の関係を示す図、図5は、キャッ
シュ装置から記憶装置への書き込み動作のタイミングチ
ャートである。なお、ここでは、キャッシュ装置から記
憶装置へのデータ書き込みの一単位は32ビットとす
る。
部29、記憶装置15の関係を示す図、図5は、キャッ
シュ装置から記憶装置への書き込み動作のタイミングチ
ャートである。なお、ここでは、キャッシュ装置から記
憶装置へのデータ書き込みの一単位は32ビットとす
る。
【0093】同図において、記憶装置15はメモリ15
a、メモリ15b、メモリ15c、メモリ15dの4つ
のメモリから構成される。各メモリはデータ選択機能
(DATASELECT )を持っており、データ選択線に入力さ
れるデータ選択信号がアクティブの時にはデータバスに
存在するデータを有効データとして書き込み、データ選
択信号が非アクティブの時には無効データとして無視す
るという動作を行う。
a、メモリ15b、メモリ15c、メモリ15dの4つ
のメモリから構成される。各メモリはデータ選択機能
(DATASELECT )を持っており、データ選択線に入力さ
れるデータ選択信号がアクティブの時にはデータバスに
存在するデータを有効データとして書き込み、データ選
択信号が非アクティブの時には無効データとして無視す
るという動作を行う。
【0094】上記各メモリのデータ選択線はデータ選択
器29を介してダーティフラグ11と接続され、各デー
タ選択線とダーティフラグの4ビット、つまり、キャッ
シュ装置のデータキャッシュ上の32ビットがそれぞれ
対応する構成となっている。
器29を介してダーティフラグ11と接続され、各デー
タ選択線とダーティフラグの4ビット、つまり、キャッ
シュ装置のデータキャッシュ上の32ビットがそれぞれ
対応する構成となっている。
【0095】このような構成であるので、ダーティフラ
グの各ビットの状態(“1”あるいは“0”)を上記デ
ータ選択信号とすることにより、プロセッサからキャッ
シュ装置に書き込まれたデータのみを有効データとして
記憶装置に書き込むことができるのである。ここでは、
16ビットあるダーティフラグを4ビットごとの組にし
て、メモリ15a、メモリ15b、メモリ15c、メモ
リ15dの各データ選択線に4回に分けて出力され、1
クロック毎にダーティフラグの1ビットに対応するデー
タキャッシュ上の8ビットが各メモリに書き込まれるこ
とになる。
グの各ビットの状態(“1”あるいは“0”)を上記デ
ータ選択信号とすることにより、プロセッサからキャッ
シュ装置に書き込まれたデータのみを有効データとして
記憶装置に書き込むことができるのである。ここでは、
16ビットあるダーティフラグを4ビットごとの組にし
て、メモリ15a、メモリ15b、メモリ15c、メモ
リ15dの各データ選択線に4回に分けて出力され、1
クロック毎にダーティフラグの1ビットに対応するデー
タキャッシュ上の8ビットが各メモリに書き込まれるこ
とになる。
【0096】
【発明の効果】以上説明したように本発明によれば、ラ
イトバック型キャッシュ装置において、1ライン分のデ
ータを記憶装置に書き込む場合に、記憶装置のデータ選
択機能を利用して必要なデータのみを書き込むことによ
り、そのラインに対してプロセッサから書き込みしか行
われていない時には、記憶装置に対するリードモディフ
ァイライト動作の読み出し動作を省略することができ
る。これにより、従来問題となっていたオーバーヘッド
を削減し、キャッシュ装置の性能を向上させることがで
きる。
イトバック型キャッシュ装置において、1ライン分のデ
ータを記憶装置に書き込む場合に、記憶装置のデータ選
択機能を利用して必要なデータのみを書き込むことによ
り、そのラインに対してプロセッサから書き込みしか行
われていない時には、記憶装置に対するリードモディフ
ァイライト動作の読み出し動作を省略することができ
る。これにより、従来問題となっていたオーバーヘッド
を削減し、キャッシュ装置の性能を向上させることがで
きる。
【0097】具体的には、例えば、記憶装置からキャッ
シュ装置への読み出しに10クロック、プロセッサから
キャッシュ装置への書き込みに1クロック、キャッシュ
装置から記憶装置への書き込みに10クロックかかるシ
ステムにおいて、画像処理のフレームバッファ等で発生
する「キャッシュ上にない一のラインの1バイトデータ
をのみを書換えて、次のラインにリプレースする」とい
うアクセスを想定すると、従来では10クロック(記憶
装置からキャッシュ装置への読み出し)+1クロック
(プロセッサからキャッシュ装置への書き込み)+10
クロック(キャッシュ装置から記憶装置への書き込み)
=21クロックかかることになるが、本発明によれば、
1クロック(プロセッサからキャッシュ装置への書き込
み)+10クロック(キャッシュ装置から記憶装置への
書き込み)=11クロックしかかからないことになり、
処理速度の2倍程度向上させることができる。
シュ装置への読み出しに10クロック、プロセッサから
キャッシュ装置への書き込みに1クロック、キャッシュ
装置から記憶装置への書き込みに10クロックかかるシ
ステムにおいて、画像処理のフレームバッファ等で発生
する「キャッシュ上にない一のラインの1バイトデータ
をのみを書換えて、次のラインにリプレースする」とい
うアクセスを想定すると、従来では10クロック(記憶
装置からキャッシュ装置への読み出し)+1クロック
(プロセッサからキャッシュ装置への書き込み)+10
クロック(キャッシュ装置から記憶装置への書き込み)
=21クロックかかることになるが、本発明によれば、
1クロック(プロセッサからキャッシュ装置への書き込
み)+10クロック(キャッシュ装置から記憶装置への
書き込み)=11クロックしかかからないことになり、
処理速度の2倍程度向上させることができる。
【図1】本発明の実施の形態に係るライトバック型キャ
ッシュ装置の概念図である。
ッシュ装置の概念図である。
【図2】図1に示すライトバック型キャッシュ装置の一
構成例を示す図である。
構成例を示す図である。
【図3】図1に示すライトバック型キャッシュ装置の動
作を説明するための図である。
作を説明するための図である。
【図4】図2に示すダーティフラグ、データ選択部、記
憶装置の関係を示す図である。
憶装置の関係を示す図である。
【図5】図2に示すキャッシュ装置から記憶装置への書
き込み動作のタイミングチャートである。
き込み動作のタイミングチャートである。
【図6】従来のライトバック型キャッシュ装置の概略図
である。
である。
【図7】図6に示すライトバック型キャッシュ装置の動
作を説明するための図である。
作を説明するための図である。
1 データキャッシュ 3 タグ 5 ライトフラグ 7 有効フラグ 9 アドレス 11 ダーティフラグ 13 リードフラグ 15、15a、15b、15c、15d 記憶装置 17 プロセッサ 19 ライトバック型キャッシュ装置 21 キャッシュコントローラ 23 データ位置選択回路 25 ライン選択回路 27 比較器 29 データ選択部
Claims (6)
- 【請求項1】 データ選択機能を持つ記憶装置に接続さ
れるライトバック型キャッシュ装置において、 前記記憶装置のデータの一部を記録保持するデータキャ
ッシュと、 前記データキャッシュの各ラインごとに設けられ、選択
可能なデータ単位ごとにデータが書き込まれたか否かを
示す第1のフラグとを有し、前記第1のフラグにより書
き込みが行われたデータを識別し、そのデータのみを記
憶装置に書き込むことを特徴とするライトバック型キャ
ッシュ装置。 - 【請求項2】 前記選択可能データ単位が1バイトであ
ることを特徴とする請求項1記載のライトバック型キャ
ッシュ装置。 - 【請求項3】 前記ライトバック型キャッシュ装置が、
さらに、前記第1のフラグの論理ORを取った結果を示
す第2のフラグを有し、前記第2のフラグによりライン
全体に書き込みが行われたか否かを判断することを特徴
とする請求項1記載のライトバック型キャッシュ装置。 - 【請求項4】 前記ライトバック型キャッシュ装置にお
いて、 書き込みのみ行われているラインに読み出しがヒットし
た場合には、そのラインのデータを前記記憶装置に書き
込み、さらに前記記憶装置からそのラインのデータを読
み出した後に、そのラインのデータをプロセッサが読み
出すことを特徴とする請求項1、2又は3記載のライト
バック型キャッシュ装置。 - 【請求項5】 前記ライトバック型キャッシュ装置にお
いて、 書き込みのみ行われているラインに読み出しがヒットし
た場合には、そのラインのうちデータの書き込みが行わ
れていない部分を前記第1のフラグにより判断し、その
部分のデータのみ前記記憶装置から読み出した後に、そ
のラインのデータをプロセッサが読み出すことを特徴と
する請求項1、2又は3記載のライトバック型キャッシ
ュ装置。 - 【請求項6】 前記ライトバック型キャッシュ装置にお
いて、 書き込みのみ行われているラインに読み出しがヒットし
た場合に、さらに、読み出すデータが既に書き込みが行
われた部分のデータであるか否かを前記第1のフラグに
より判断し、 書き込みが行われた部分のデータであればそのデータ
を、書き込みが行われていない部分のデータでないなら
ば前記記憶装置から読み出したデータを、前記中央処理
装置が読み出すことを特徴とする請求項1、2又は3記
載のライトバック型キャッシュ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8095548A JPH09282231A (ja) | 1996-04-17 | 1996-04-17 | ライトバック型キャッシュ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8095548A JPH09282231A (ja) | 1996-04-17 | 1996-04-17 | ライトバック型キャッシュ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09282231A true JPH09282231A (ja) | 1997-10-31 |
Family
ID=14140635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8095548A Pending JPH09282231A (ja) | 1996-04-17 | 1996-04-17 | ライトバック型キャッシュ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH09282231A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002373349A (ja) * | 2001-06-15 | 2002-12-26 | Sony Corp | 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法 |
US8751900B2 (en) | 2010-05-14 | 2014-06-10 | Samsung Electronics Co., Ltd. | Storage device having a non-volatile memory device and copy-back method thereof |
JP2018206175A (ja) * | 2017-06-07 | 2018-12-27 | 富士通株式会社 | コンパイラ、情報処理装置及びコンパイル方法 |
-
1996
- 1996-04-17 JP JP8095548A patent/JPH09282231A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002373349A (ja) * | 2001-06-15 | 2002-12-26 | Sony Corp | 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法 |
JP4622165B2 (ja) * | 2001-06-15 | 2011-02-02 | ソニー株式会社 | 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法 |
US8751900B2 (en) | 2010-05-14 | 2014-06-10 | Samsung Electronics Co., Ltd. | Storage device having a non-volatile memory device and copy-back method thereof |
JP2018206175A (ja) * | 2017-06-07 | 2018-12-27 | 富士通株式会社 | コンパイラ、情報処理装置及びコンパイル方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3204323B2 (ja) | キャッシュメモリ内蔵マイクロプロセッサ | |
KR100322366B1 (ko) | Sram캐시용워드폭선택 | |
US6327643B1 (en) | System and method for cache line replacement | |
US7577791B2 (en) | Virtualized load buffers | |
US5293622A (en) | Computer system with input/output cache | |
US5287512A (en) | Computer memory system and method for cleaning data elements | |
JP4113524B2 (ja) | キャッシュ・メモリ・システムとその制御方法 | |
EP0386719A2 (en) | Partial store control circuit | |
US20040153610A1 (en) | Cache controller unit architecture and applied method | |
JPH09282231A (ja) | ライトバック型キャッシュ装置 | |
JPH02292645A (ja) | 高速読出変更書込メモリー・システム及び方法 | |
US7549109B2 (en) | Memory circuit, such as a DRAM, comprising an error correcting mechanism | |
JP3181001B2 (ja) | キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム | |
EP0787326B1 (en) | System and method for processing of memory data and communication system comprising such system | |
JP2703255B2 (ja) | キャッシュメモリ書込み装置 | |
JP3190847B2 (ja) | データ転送制御装置 | |
JP3614946B2 (ja) | メモリバッファ装置 | |
JP2972451B2 (ja) | ハードウェア制御ソフトウェアによるキャッシュメモリ制御方式 | |
JPH07152650A (ja) | キャッシュ制御装置 | |
EP0661638A1 (en) | Method and apparatus for transferring data in a computer | |
KR100343940B1 (ko) | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 | |
JP3074897B2 (ja) | メモリ回路 | |
JPH06301600A (ja) | 記憶装置 | |
JPH06348592A (ja) | ライトバッファ制御方式 | |
EP0400851A2 (en) | Efficient cache utilizing a store buffer |