JPH1139215A - キャッシュメモリおよびキャッシュメモリを制御する方法 - Google Patents

キャッシュメモリおよびキャッシュメモリを制御する方法

Info

Publication number
JPH1139215A
JPH1139215A JP10141931A JP14193198A JPH1139215A JP H1139215 A JPH1139215 A JP H1139215A JP 10141931 A JP10141931 A JP 10141931A JP 14193198 A JP14193198 A JP 14193198A JP H1139215 A JPH1139215 A JP H1139215A
Authority
JP
Japan
Prior art keywords
data
cache memory
memory
refill
entry
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
JP10141931A
Other languages
English (en)
Inventor
Keisuke Kaneko
圭介 金子
Shinji Ozaki
伸治 尾崎
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10141931A priority Critical patent/JPH1139215A/ja
Publication of JPH1139215A publication Critical patent/JPH1139215A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 キャッシュメモリを高速に制御することを可
能にするキャッシュメモリおよびキャッシュメモリの制
御方法を提供する。 【解決手段】 キャッシュメモリ1は、複数のエントリ
3aを有するデータメモリ3と、複数のエントリ3aに
それぞれ対応する複数のリフィルビットとを備えてい
る。複数のリフィルビットのそれぞれは、主記憶領域1
0から複数のエントリ3aのうち対応する1つのエント
リ3aにデータが転送中か否かを示す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
およびキャッシュメモリを制御する方法に関する。
【0002】
【従来の技術】キャッシュメモリとキャッシュメモリを
制御するキャッシュメモリ制御回路を有するシステムに
おいて、第1のアクセス要求に応答してキャッシュメモ
リにおいてミスヒットが発生した場合には、主記憶領域
からキャッシュメモリにブロックデータが転送される。
これにより、キャッシュメモリの内容が更新される。キ
ャッシュメモリの内容の更新は、一般に、それ以降の命
令の実行に支障が生じないように実行されなければなら
ない。上書きにより失われたデータと、転送された新規
のデータとをとり違えてはならないからである。
【0003】例えば、第1のアクセス要求に応答して、
主記憶領域からキャッシュメモリに含まれる特定のエン
トリにブロックデータを転送している間に、その特定の
エントリにアクセスすることを要求する第2のアクセス
要求が発生した場合には、第2のアクセス要求に応答し
てその特定のエントリにアクセスする前に、第1のアク
セス要求に対応するブロックデータの転送が完了してい
るか否かを判定する必要がある。
【0004】従来、このような判定は、第1のアクセス
要求に対応するブロックデータの転送が完了するまで第
1のアクセス要求に対応するアドレスをキャッシュメモ
リ制御回路内に保持し、第2のアクセス要求が発生した
場合にキャッシュメモリ制御回路内に保持されたアドレ
スと第2のアクセス要求に対応するアドレスとを比較す
ることにより、行われていた。
【0005】
【発明が解決しようとする課題】しかし、上述したよう
な従来の判定は、キャッシュメモリ制御回路内に保持さ
れたアドレスと第2のアクセス要求に対応するアドレス
とを比較する比較回路を必要とする。その結果、キャッ
シュメモリ制御回路の回路規模が増大し、キャッシュメ
モリ制御回路の面積が増大するという問題点があった。
【0006】また、従来の判定では、多ビットを有する
アドレスどうしを比較するため、判定結果が得られるま
でに時間がかかる。その結果、キャッシュメモリを高速
に制御することが困難であるという問題点があった。こ
の傾向は、アドレスの多ビット化が進むにつれてますま
す顕著になりつつある。
【0007】本発明は、上述した比較回路を不要とする
ことにより、キャッシュメモリ制御回路の回路規模を削
減することを可能にするキャッシュメモリおよびキャッ
シュメモリの制御方法を提供することを目的とする。
【0008】また、本発明は、多ビットを有するアドレ
スどうしの比較を不要とすることにより、キャッシュメ
モリを高速に制御することを可能にするキャッシュメモ
リおよびキャッシュメモリの制御方法を提供することを
目的とする。
【0009】
【課題を解決するための手段】本発明のキャッシュメモ
リは、複数のエントリを有するデータメモリと、前記複
数のエントリにそれぞれ対応する複数のリフィルビット
とを備え、前記複数のリフィルビットのそれぞれは、主
記憶領域から前記複数のエントリのうち対応する1つの
エントリにデータが転送中か否かを示す。これにより、
上記目的が達成される。
【0010】前記キャッシュメモリは、複数のエントリ
を有するタグメモリをさらに備えており、前記複数のリ
フィルビットのそれぞれは、前記タグメモリの前記複数
のエントリのうち対応する1つのエントリに格納されて
いてもよい。
【0011】本発明のキャッシュメモリを制御する方法
は、複数のエントリを有するデータメモリと、前記複数
のエントリにそれぞれ対応する複数のリフィルビットと
を備えたキャッシュメモリを制御する方法であって、第
1のアクセス要求に対応するアドレスがキャッシュにヒ
ットするか否かを判定するステップと、前記第1のアク
セス要求に対応する前記アドレスがキャッシュにヒット
しないと判定された場合に、主記憶領域から前記第1の
アクセス要求によって指定されるエントリにデータを転
送するステップと、前記データの転送を開始する際に、
前記第1のアクセス要求によって指定される前記エント
リに対応するリフィルビットをセットするステップと、
前記データの転送が完了した際に、前記リフィルビット
をクリアするステップとを包含し、これにより、上記目
的が達成される。
【0012】前記リフィルビットは、制御信号に応答し
てクリアされてもよい。
【0013】前記方法は、第2のアクセス要求によって
指定されるエントリに対応するリフィルビットの値を参
照するステップと、前記リフィルビットの値に応じて、
前記第2のアクセス要求によって指定される前記エント
リに対するアクセスを制御するステップとをさらに包含
していてもよい。
【0014】前記リフィルビットが主記憶領域から前記
第2のアクセス要求によって指定されるエントリにデー
タが転送中であることを示す場合には、前記アクセスを
制御するステップは、前記データの転送が完了した後
に、前記第2のアクセス要求によって指定されるエント
リにアクセスするステップを包含していてもよい。
【0015】前記リフィルビットが主記憶領域から前記
第2のアクセス要求によって指定されるエントリにデー
タが転送中であることを示す場合には、前記アクセスを
制御するステップは、前記データの一部の転送が完了し
た時点で、前記データの一部を前記主記憶領域から転送
するステップを包含していてもよい。
【0016】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を説明する。
【0017】図1は、本発明の実施の形態のキャッシュ
メモリ1の構成を示す。キャッシュメモリ1は、タグメ
モリ2と、データメモリ3とを含む。
【0018】データメモリ3は、複数のエントリ3aを
有している。複数のエントリ3aのそれぞれには、ブロ
ックデータが格納される。図1に示される例では、ブロ
ックデータは、4ワードのデータから構成される。
【0019】例えば、ブロックデータは、(data
0,data1,data2,data3)によって表
現される。ここで、data0,data1,data
2,data3は、それぞれ、1ワードのデータを示
す。1ワードのデータdata0は、エントリ3aの領
域3a−0に格納される。同様に、1ワードのデータd
ata1、data2、data3は、エントリ3aの
領域3a−1、3a−2、3a−3にそれぞれ格納され
る。1ワードは、例えば、32ビットである。タグメモ
リ2は、複数のエントリ2aを有している。複数のエン
トリ2aのそれぞれは、データメモリ3に含まれる複数
のエントリ3aのうちの1つに対応づけられている。複
数のエントリ2aのそれぞれは、キャッシュメモリ1に
入力されるアドレスのタグデータを格納するための領域
2a−1と、複数のエントリ3aのうち対応する1つの
エントリ3aにブロックデータが転送中か否かを示すリ
フィルビットを格納する領域2a−2と、タグデータが
有効であるか否かを示すバリッドビットを格納する領域
2a−3とを有している。
【0020】例えば、主記憶領域(図1には示されてい
ない。図2参照)からデータメモリ3の1行目のエント
リ3aにブロックデータが転送中であるか否かは、タグ
メモリ2の1行目のエントリ2aの領域2a−2に格納
されているリフィルビットの値によって表される。その
リフィルビットの値が「1」であることは、主記憶領域
からデータメモリ3の1行目のエントリ3aにブロック
データが転送中であることを示す。そのリフィルビット
の値が「0」であることは、主記憶領域からデータメモ
リ3の1行目のエントリ3aにブロックデータが転送中
でないことを示す。
【0021】このように、リフィルビットは、データメ
モリ3に含まれる複数のエントリ3aのうち対応する1
つのエントリ3aにブロックデータが転送中であるか否
かを示す。タグメモリ2のエントリ2aとデータメモリ
3のエントリ3aとは何らかのルールに従って対応づけ
られていればよく、その対応づけの方法としては任意の
方法が採用され得る。典型的には、上述したように、タ
グメモリ2のk行目のエントリ2aがデータメモリ3の
k行目のエントリ3aに対応する。
【0022】リフィルビットの値は、キャッシュメモリ
制御回路(図1には示されていない。図2参照)によっ
て更新される。キャッシュメモリ制御回路は、主記憶領
域からデータメモリ3に含まれる複数のエントリ3aの
うちの1つにブロックデータの転送が開始する際に、そ
のブロックデータが転送されるエントリ3aに対応する
リフィルビットをセットし、そのブロックデータの転送
が完了した際に、そのリフィルビットをクリアする。リ
フィルビットの「セット」とは、例えば、リフィルビッ
トの値を「1」にすることであり、リフィルビットの
「クリア」とは、例えば、リフィルビットの値を「0」
にすることである。
【0023】なお、図1に示される例では、タグメモリ
2とデータメモリ3とは分離されている。しかし、タグ
メモリ2とデータメモリ3とが一体的に構成されていて
もよい。
【0024】キャッシュメモリ1によれば、リフィルビ
ットを参照することにより、キャッシュメモリ1の特定
のエントリにブロックデータが転送中か否かを判定する
ことができる。従来のように、キャッシュメモリ制御回
路内に保持されたアドレスとアクセス要求に従って入力
されたアドレスとを比較する必要がない。そのような比
較を行う比較回路が不要となるので、キャッシュメモリ
制御回路の回路規模を削減することが可能になる。ま
た、リフィルビットは1ビットで足りるため、ブロック
データが転送中か否かの判定を高速に行うことができ
る。これにより、キャッシュメモリ1を高速に制御する
ことが可能になる。
【0025】図2は、キャッシュメモリ1を含むシステ
ム100の構成を示す。システム100は、CPU6
と、キャッシュメモリ1と、キャッシュメモリ1を制御
するキャッシュメモリ制御回路8と、主記憶領域10と
を含む。CPU6とキャッシュメモリ1とキャッシュメ
モリ制御回路8と主記憶領域10とはアドレスバス11
を介して相互に接続されている。CPU6とキャッシュ
メモリ1と主記憶領域10とはデータバス12を介して
相互に接続されている。
【0026】CPU6は、キャッシュメモリ1に対する
アクセス要求9をキャッシュメモリ制御回路8に出力す
る。CPU6は、アクセス要求9に対応するアドレスを
アドレスバス11を介してキャッシュメモリ1に出力す
る。
【0027】キャッシュメモリ制御回路8は、アクセス
要求9に応答して、タグメモリチップセレクト信号13
a、データメモリチップセレクト信号13b、タグメモ
リライトイネーブル信号14、データメモリライトイネ
ーブル信号15、リフィルビット書き込みデータ16、
リフィルビットクリア制御信号42をキャッシュメモリ
1に出力する。
【0028】キャッシュメモリ1は、CPU6からのア
クセス要求9に対応するアドレスがキャッシュにヒット
するか否かを判定し、その判定結果を示すヒット信号1
8をキャッシュメモリ制御回路8に出力する。また、キ
ャッシュメモリ1は、リフィルビットの値を示すリフィ
ルビット出力データ17をキャッシュメモリ制御回路8
に出力する。
【0029】キャッシュメモリ1においてミスヒットが
発生した場合には、主記憶領域10からキャッシュメモ
リ1の特定のエントリにブロックデータがデータバス1
2を介して転送される。上述したように、リフィルビッ
トは、主記憶領域10からキャッシュメモリ1の特定の
エントリにブロックデータが転送中か否かを示す。
【0030】図3は、主記憶領域10からキャッシュメ
モリ1の特定のエントリにブロックデータを転送するタ
イミングを示す。
【0031】CPU6からのアクセス要求9に応答し
て、アクセス要求9に対応するアドレスがキャッシュメ
モリ1に入力される。キャッシュメモリ1は、入力され
たアドレスがキャッシュにヒットするか否かを判定す
る。そのような判定は、ヒット・ミス判定サイクル28
で行われる。ヒット・ミス判定サイクル28において、
ヒット信号18がアサートされない場合には、入力され
たアドレスはキャッシュにヒットしないと判定される。
この場合、主記憶領域10からキャッシュメモリ1への
ブロックデータの転送が開始される。
【0032】タグデータライトサイクル29において、
タグメモリチップセレクト信号13aおよびタグメモリ
ライトイネーブル信号14がローレベルとなる。これに
より、タグメモリ2に対するデータの書き込みが許可さ
れる。タグデータライトサイクル29において、キャッ
シュメモリ制御回路8から出力されたリフィルビット書
き込みデータ16がタグメモリ2に書き込まれる。これ
により、リフィルビットがセットされる。
【0033】このようにして、主記憶領域10からキャ
ッシュメモリ1にブロックデータの転送が開始する際
に、リフィルビットがセットされる。
【0034】転送データライトサイクル30−0〜30
−3において、データメモリライトイネーブル信号15
がローレベルとなる。これにより、データメモリ3に対
するブロックデータの書き込みが許可される。転送デー
タライトサイクル30−0において、1ワードのデータ
data0がデータメモリ3に書き込まれる。同様に、
転送データライトサイクル30−1、30−2、30−
3において、1ワードのデータdata1、data
2、data3がそれぞれデータメモリ3に書き込まれ
る。
【0035】最後の転送データライトサイクル30−3
が終了すると、リフィルビットクリア制御信号42がキ
ャッシュメモリ制御回路8からキャッシュメモリ1に出
力される。リフィルビットクリア制御信号42に応答し
て、リフィルビットがクリアされる。
【0036】このようにして、主記憶領域10からキャ
ッシュメモリ1にブロックデータの転送が完了した際
に、リフィルビットがクリアされる。
【0037】図3において、リフィルビットデータ43
は、タグメモリ2内の領域2a−2に保持されているリ
フィルビットの値を示す。リフィルビットの値は、リフ
ィルビット書き込みデータ16によって「0」から
「1」に更新され、リフィルビットクリア制御信号42
に応答して「1」から「0」に更新される。
【0038】なお、リフィルビットクリア制御信号42
を使用する代わりに、リフィルビット書き込みデータ1
6によってリフィルビットをクリアすることも可能であ
る。しかし、キャッシュメモリ1のアクセス効率を向上
させるためには、リフィルビットクリア制御信号42を
使用することが好ましい。ブロックデータの転送中にお
けるタグメモリ2に対するアクセスが1回のみで済むか
らである。また、タグメモリ2へのデータの書き込みは
ブロックデータの転送を開始する際にのみ発生するの
で、キャッシュメモリ制御回路8は、リフィルビット書
き込みデータ16として常に値1を有するデータを出力
すればよい。これにより、リフィルビット書き込みデー
タ16の制御が容易になる。
【0039】図4は、第1のアクセス要求に対応するア
ドレスと第2のアクセス要求に対応するアドレスとが一
致する場合において、ブロックデータを転送するタイミ
ングを示す。
【0040】第1のアクセス要求に対応するヒット・ミ
ス判定サイクル28において、第1のアクセス要求に対
応するアドレス20aはキャッシュにヒットしないと判
定される。この場合、主記憶領域10からキャッシュメ
モリ1へのブロックデータの転送が開始される。
【0041】タグデータライトサイクル29において、
リフィルビットがセットされる。
【0042】最初の転送データサイクル30−0におい
て、転送中のブロックデータのうち最初のデータdat
a0がキャッシュメモリ1に転送される。残りのデータ
data1、data2、data3がキャッシュメモ
リ1に転送される前に、第2のアクセス要求が発生し得
る。例えば、最初のデータdata0がキャッシュメモ
リ1に書き込まれると同時にCPU6に送られる場合に
は、CPU6は、転送データライトサイクル30−0に
続く任意のサイクルにおいて、次の命令の実行を再開す
ることができるからである。
【0043】図4に示される例では、第2のアクセス要
求に対応するアドレス20bは第1のアクセス要求に対
応するアドレス20aと同一であると仮定する。第2の
アクセス要求に対応するヒット・ミス判定サイクル38
において、第1のアクセス要求によって指定されるデー
タメモリ3のエントリ3aに対応するリフィルビットの
値は「1」である。第1のアクセス要求に対応するブロ
ックデータの転送が完了していないからである。従っ
て、第2のアクセス要求に対応するヒット・ミス判定サ
イクル38において、値「1」を有するリフィルビット
出力データ17がキャッシュメモリ制御回路8に出力さ
れる。
【0044】キャッシュメモリ制御回路8は、リフィル
ビット出力データ17の値に応じて、第2のアクセス要
求によって指定されるデータメモリ3のエントリ3aに
対するアクセスを制御する。このような制御は、リフィ
ルビット出力データ17の値に応じて、キャッシュメモ
リ1の動作およびCPU6の動作を制御することによっ
て達成される。
【0045】例えば、リフィルビット出力データ17の
値が「1」である場合には、キャッシュメモリ制御回路
8は、第1のアクセス要求に対応するブロックデータの
転送が完了した後、第2のアクセス要求によって指定さ
れるデータメモリ3のエントリ3aに対するアクセスを
行うように、第2のアクセス要求によって指定されるデ
ータメモリ3のエントリ3aに対するアクセスを制御す
る。
【0046】あるいは、第1のアクセス要求に対応する
ブロックデータのうち一部のデータ(例えば、4ワード
のブロックデータのうち1ワード分のデータ)の転送が
完了した時点で、その一部のデータを主記憶領域10か
らCPU6に転送するようにしてもよい。このように、
データ転送を主記憶領域10からCPU6にバイパスす
ることにより、CPU6の動作が停止するサイクル数を
低減することができる。
【0047】このように、キャッシュメモリ1に保持さ
れるリフィルビットの値をリフィルビット出力データ1
7として出力することにより、CPU6からのアクセス
要求に対応するアドレスとブロックデータを転送中のエ
ントリのアドレスとを比較することが不要になる。これ
により、キャッシュメモリ1を高速に制御することが可
能になる。
【0048】さらに、リフィルビットの値を参照してキ
ャッシュメモリ1の動作およびCPU6の動作を制御す
ることにより、キャッシュミスが発生した命令に続く命
令を支障なく実行することが可能となる。その結果、命
令のパイプライン実行、あるいは、先行制御が効率的に
行われる。
【0049】図5は、システム100の詳細構成を示
す。以下、図5を参照して、CPU6がキャッシュメモ
リ1にアクセスする処理を説明する。
【0050】CPU6は、アクセス要求ACSRQをキ
ャッシュメモリ制御回路8に出力し、アドレスADDを
キャッシュメモリ1および主記憶領域10に出力する。
ここでは、アドレスADDは32ビットであると仮定す
る。
【0051】キャッシュメモリ1に入力されたアドレス
ADDは、アドレス分割部110によって、タグメモリ
2から出力されるタグデータTAGOUTと比較される
タグアドレスTAGADDと、キャッシュメモリ1に含
まれる複数のエントリのうちの1つを指定するエントリ
アドレスENTADDと、ブロックデータに含まれる複
数のワードのうちの1つを指定するオフセットアドレス
OFFADDとに分割される。
【0052】なお、キャッシュメモリ1が互いに分離さ
れたタグメモリ2とデータメモリ3とを含む場合には、
エントリアドレスENTADDによってタグメモリ2に
含まれる複数のエントリ2aのうちの1つとデータメモ
リ3に含まれる複数のエントリ3aのうちの1つとが指
定される。
【0053】例えば、キャッシュメモリ1が1キロバイ
トのダイレクトマップ方式のキャッシュメモリであり、
かつ、データメモリ3の各エントリ3aに格納されるブ
ロックデータが4ワード(1ワードは32ビット)から
構成される場合には、キャッシュメモリ1は、128個
のエントリを有する。この場合、アドレス分割部110
は、アドレスADDのビット0〜ビット31のうちビッ
ト0〜3をオフセットアドレスOFFADDとして出力
し、ビット4〜10をエントリアドレスENTADDと
して出力し、ビット11〜31をタグアドレスTAGA
DDとして出力する。
【0054】なお、キャッシュメモリ1は、ダイレクト
マップ方式のキャッシュメモリに限定されるわけではな
い。本発明は、任意の方式のキャッシュメモリに適用さ
れ得る。
【0055】キャッシュメモリ制御回路8は、キャッシ
ュ制御信号生成部138を含む。キャッシュ制御信号生
成部138は、タグメモリチップセレクト信号TAGC
Sとデータメモリチップセレクト信号DATACSとを
キャッシュメモリ1に出力する。ここで、タグメモリチ
ップセレクト信号TAGCSとデータメモリチップセレ
クト信号DATACSとは、図2におけるタグメモリチ
ップセレクト信号13a、データメモリチップセレクト
信号13bに相当する。タグメモリチップセレクト信号
TAGCSがアサートされたサイクルにおいてタグメモ
リ2は動作する。データメモリチップセレクト信号DA
TACSがアサートされたサイクルにおいてデータメモ
リ3は動作する。
【0056】キャッシュ制御信号生成部138は、タグ
メモリライトイネーブル信号TAGWEとデータメモリ
ライトイネーブル信号DATAWEとをキャッシュメモ
リ1に出力する。タグメモリライトイネーブル信号TA
GWEは、図2ではタグメモリライトイネーブル信号1
4と表記されている。データメモリライトイネーブル信
号DATAWEは、図2ではデータメモリライトイネー
ブル信号15と表記されている。
【0057】キャッシュメモリ1のタグメモリ2は、タ
グメモリチップセレクト信号TAGCSがアサートされ
たサイクルにおいてアドレスADDのヒットミス判定動
作を行う。すなわち、タグメモリ2は、エントリアドレ
スENTADDによって指定されたエントリ2aに格納
されているタグデータとバリッドビット(Vビット)と
を読み出す。比較器112は、タグアドレスTAGAD
Dとタグメモリ2から読み出されたタグデータTAGO
UTとを比較する。
【0058】タグアドレスTAGADDとタグデータT
AGOUTとが一致し、かつ、タグメモリ2から出力さ
れるVビット出力データVOUTの値が「1」である場
合には、キャッシュヒットと判定される。その結果、ヒ
ット信号HITがアサートされる。ここで、ヒット信号
HITは、図2ではヒット信号18と表記されている。
タグアドレスTAGADDとタグデータTAGOUTと
が一致しない場合、または、タグメモリ2から出力され
るVビット出力データVOUTの値が「0」である場合
には、キャッシュミスと判定される。その結果、値
「0」を有するヒット信号HITが出力される。
【0059】タグメモリ2は、エントリアドレスENT
ADDによって指定されたエントリ2aに格納されてい
るリフィルビット(Rビット)の値をリフィルビット出
力データROUTとして出力する。リフィルビット出力
データROUTの値が「1」であることは、主記憶領域
10からエントリアドレスENTADDによって指定さ
れたエントリ3aにブロックデータが転送(リフィル)
中であることを示す。ここで、リフィルビット出力デー
タROUTは、図2ではリフィルビット出力データ17
と表記されている。
【0060】また、タグメモリチップセレクト信号TA
GCSがアサートされたサイクルにおいてタグメモリラ
イトイネーブル信号TAGWEがアサートされている場
合には、エントリアドレスENTADDによって指定さ
れたエントリ2aの領域2a−1にタグアドレスTAG
ADDの値が書き込まれる。
【0061】キャッシュメモリ1のデータメモリ3は、
データメモリチップセレクト信号DATACSがアサー
トされたサイクルにおいてデータの読み出しまたは書き
込み動作を行う。データメモリライトイネーブル信号D
ATAWEのアサーションは、キャッシュメモリ1への
ライトアクセスを示す。ライトアクセス時には、ライト
データバスCWBUS上のデータがデータメモリ3に書
き込まれる。
【0062】キャッシュメモリ制御回路8のリフィル制
御部134は、キャッシュメモリ1から出力されるヒッ
ト信号HITの値が「0」である場合、リフィル開始信
号RFLSTARTをアサートする。リフィル開始信号
RFLSTARTは、主記憶領域10に出力される。こ
れにより、主記憶領域10からキャッシュメモリ1への
ブロックデータの転送が制御される。リフィル制御部1
34からは、ブロックデータに含まれる各ワードの転送
サイクルを示す信号RFLCYC、転送されるデータが
ブロックデータの何ワード目かを示すオフセットアドレ
スRFLOFAD、リフィル制御部134から出力され
るアドレス信号RFLOFADとアドレス分割部110
から出力されるアドレス信号OFFADDのうちの一方
を選択するセレクト信号OFADSEL、リフィルが終
了したことを示す信号RFLENDがさらに出力され
る。
【0063】信号RFLCYCは、ライトデータセレク
タ122の制御にも使用される。信号RFLCYCがア
サートされると、主記憶領域10に接続されるロードデ
ータバスMRBUS上のデータがライトデータセレクタ
122によって選択される。その結果、ロードデータバ
スMRBUS上のデータがライトデータバスCWBUS
に出力される。
【0064】オフセットアドレスセレクタ114は、セ
レクト信号OFADSELに応答して、アドレス信号R
FLOFADとアドレス信号OFFADDのうちの一方
を選択し、選択されたアドレス信号をキャッシュメモリ
1内のデータメモリ3のオフセットを示すアドレス信号
としてキャッシュライトデータセレクタ116に出力す
る。キャッシュライトデータセレクタ116は、オフセ
ットアドレスセレクタ114から出力されるアドレス信
号に応答して、データメモリ3のエントリ3aに含まれ
る領域3a−0〜3a−3のうちデータが書き込まれる
べき1つの領域を選択する。このようにして、オフセッ
トアドレスセレクタ114から出力されるアドレス信号
によって指定されたオフセット位置にワードデータが書
き込まれる。
【0065】キャッシュメモリ制御回路8のロードデー
タ選択部132は、ロードデータセレクタ120を制御
する信号RDSELを出力する。信号RDSELがアサ
ートされると、キャッシュロードデータバスCRBUS
上のデータがロードデータセレクタ120によって選択
される。これにより、キャッシュメモリ1からのロード
データがCPU6に転送される。
【0066】キャッシュメモリ制御回路8のアクノリッ
ジ生成部130は、CPU6からのアクセス要求ACS
RQを受け取った後、キャッシュメモリ1へのアクセス
が完了したことを示すアクノリッジ信号CACKをCP
U6に出力する。CPU6は、アクノリッジ信号CAC
Kがアサートされたサイクルにおいてロードデータバス
RDATA上のデータを取り込む。
【0067】キャッシュメモリ制御回路8のリフィルビ
ット制御部136は、キャッシュメモリ1からヒット信
号HITを受け取る。リフィルビット制御部136は、
ヒット信号HITが「0」である場合(すなわち、キャ
ッシュミスである場合)には、値「1」を有するリフィ
ルビット書き込みデータRBITWDをキャッシュメモ
リ1に出力することにより、キャッシュメモリ1内のR
ビットをセットする。
【0068】主記憶領域10からキャッシュメモリ1へ
のブロックデータの転送が開始されると、リフィル制御
部134は、転送サイクルを示す信号RFLCYC、セ
レクト信号OFADSEL、アドレス信号RFLOFA
Dを出力する。キャッシュ制御信号生成部138は、信
号REFCYCに応答して、データメモリチップセレク
ト信号DATACS、データメモリライトイネーブル信
号DATAWEを生成する。これにより、キャッシュメ
モリ1のデータメモリ3に対してライトアクセスが行わ
れる。すなわち、セレクト信号OFADSELに応じて
選択されたアドレス信号RFLOFADによって指定さ
れるオフセット位置にライトデータバスCWBUS上の
ワードデータが書き込まれる。
【0069】また、リフィルビット制御部136は、リ
フィル終了時には、リフィルビットクリア制御信号RB
ITCLをアサートすることにより、キャッシュメモリ
1内のRビットをクリアする。キャッシュメモリ1は、
リフィルビットクリア制御信号RBITCLがアサート
されるとRビットの値を「0」にする機能を有してい
る。
【0070】なお、リフィルビット書き込みデータRB
ITWDは、図2ではリフィルビット書き込みデータ1
6と表記されている。リフィルビットクリア制御信号R
BITCLは、図2ではリフィルビットクリア制御信号
42と表記されている。
【0071】以下、主記憶領域10からキャッシュメモ
リ1内の特定のエントリにブロックデータを転送(リフ
ィル)している状態において、その特定のエントリに対
するリードアクセス要求がCPU6において発生した場
合を説明する。このリードアクセスによってキャッシュ
ヒットが発生すると仮定する。また、その特定のエント
リのVビットの値は「1」であると仮定する。
【0072】CPU6からは、アクセス要求ACSRQ
とアドレスADDとが出力される。キャッシュ制御信号
生成部138は、タグメモリチップセレクト信号TAG
CS、データメモリチップセレクト信号DATACSを
アサートする。これにより、キャッシュメモリ1へのア
クセスが開始される。
【0073】アドレスADDは、アドレス分割部110
によって3つのアドレスTAGADD、ENTADD、
OFFADDに分割される。エントリアドレスENTA
DDによって指定されるエントリ2a、3aに対してア
クセスが行われる。この場合、上述した仮定から、比較
器112から出力されるヒット信号HITの値は「1」
となる。また、ブロックデータがエントリ3aに転送中
であるため、リフィルビット出力データROUTの値は
「1」となる。
【0074】アクノリッジ生成部130には、ROUT
=1、HIT=1が入力される。その結果、アクノリッ
ジ生成部130は、リフィル中にキャッシュヒットが発
生したと判定する。この場合、主記憶領域10からエン
トリ3aへのブロックデータの転送(リフィル)はまだ
完了していない。キャッシュメモリ1からロードされた
データは、主記憶領域10からのブロックデータの転送
によって更新されたデータか、まだ更新されていないデ
ータか不明である。キャッシュメモリ1からロードされ
たデータがまだ更新されていないデータである場合に
は、CPU6が要求するデータとは異なるデータを読み
出すことになってしまう。このため、この時点では、ア
クノリッジ信号CACKはアサートされない。
【0075】主記憶領域10からエントリ3aへのブロ
ックデータの転送(リフィル)が完了すると、リフィル
制御部134は、信号RFLENDをアサートする。信
号RFLENDがアサートされると、リフィルビット制
御部136は、Rビットをクリアするためにリフィルビ
ットクリア制御信号RBITCLをアサートする。これ
により、キャッシュメモリ1内のRビットの値が「0」
にクリアされる。
【0076】アクノリッジ生成部130は、アサートさ
れた信号RFLENDに応答して、再アクセス要求RE
ACSをアサートする。これにより、キャッシュメモリ
1に対する再アクセスが実行される。この再アクセスは
リフィルが完了した状態(すなわち、リフィルによりブ
ロックデータが更新された状態)で行われる。再アクセ
スによってキャッシュヒットが発生するため、HIT=
1となる。アクノリッジ生成部130は、ロードデータ
がCPU6に送られると同時にアクノリッジ信号CAC
Kをアサートする。
【0077】ロードデータ選択部132は、再アクセス
のサイクルにおいて、キャッシュロードデータバスCR
BUS上のデータが選択されるようにロードデータセレ
クタ120を制御する。
【0078】上述したキャッシュメモリ1の制御方法
は、Rビットの出力結果に応じてアクセスされるエント
リがリフィル中であるか否かを判定し、リフィル中であ
り、かつ、キャッシュヒットであると判定された場合に
は、リフィルが完了した後、キャッシュメモリ1を再ア
クセスするという制御方法である。
【0079】この制御方法では、リフィル中のエントリ
に対するアクセス要求が発生した場合、そのリフィルが
完了するまでアクノリッジ信号CACKがアサートされ
ないので、CPU6の動作が停止する期間が長くなる。
【0080】キャッシュメモリ制御回路8内にリフィル
によってブロックデータ内のどのワードが更新済みであ
るかという情報を保持することにより、CPU6へのア
クノリッジをより早く行うように上述した制御方法を改
良することができる。
【0081】図6は、改良された制御方法を提供するシ
ステム100aの詳細構成を示す。図6において、図5
に示される構成要素と同一の構成要素には同一の参照番
号を付し、その説明を省略する。
【0082】キャッシュメモリ制御回路8は、リフィル
によってブロックデータ内のどのワードが更新済みであ
るかという情報を保持する更新判定部140を有してい
る。
【0083】更新判定部140には、転送サイクルを示
す信号RFLCYCとブロックデータのどのワードの転
送かを示す転送ワードアドレスRFLOFADとがリフ
ィル制御部134から入力される。更新判定部140
は、信号RFLCYCと転送ワードアドレスRFLOF
ADとに基づいて、どのワードがすでに転送されている
かを示す情報を生成し、その情報を内部に保持する。更
新判定部140には、アドレスADDがCPU6から入
力される。更新判定部140は、アドレスADDと内部
に保持される情報とに基づいて、アクセスされるデータ
が既に更新されているワードであるか否かの判定結果を
示す信号RFLEDを出力する。アクセスされるデータ
が既に更新されているワードである場合には、RFLE
D=1である。それ以外の場合には、RFLED=0で
ある。信号RFLEDは、ロードデータ選択部132と
アクノリッジ生成部130に出力される。
【0084】以下、主記憶領域10からキャッシュメモ
リ1内の特定のエントリにブロックデータを転送(リフ
ィル)している状態において、その特定のエントリに対
するリードアクセス要求がCPU6において発生した場
合を説明する。このリードアクセスによってキャッシュ
ヒットが発生すると仮定する。また、その特定のエント
リのVビットの値は「1」であると仮定する。
【0085】CPU6からは、アクセス要求ACSRQ
とアドレスADDとが出力される。キャッシュ制御信号
生成部138は、タグメモリチップセレクト信号TAG
CS、データメモリチップセレクト信号DATACSを
アサートする。これにより、キャッシュメモリ1へのア
クセスが開始される。
【0086】アドレスADDは、アドレス分割部110
によって3つのアドレスTAGADD、ENTADD、
OFFADDに分割される。エントリアドレスENTA
DDによって指定されるエントリ2a、3aに対してア
クセスが行われる。この場合、上述した仮定から、比較
器112から出力されるヒット信号HITの値は「1」
となる。また、ブロックデータがエントリ3aに転送中
であるため、リフィルビット出力データROUTの値は
「1」となる。
【0087】要求されているアクセスがリフィルにより
既に更新されているワードに対するアクセスである場合
を説明する。アクセスが要求された時点では、RFLE
D=1である。
【0088】ロードデータ選択部132は、ヒット信号
HITとリフィルビット出力データROUTとを受け取
る。HIT=1、ROUT=1であることから、ロード
データ選択部132は、アクセス要求ACSRQに対応
するアドレスがキャッシュにヒットし、要求されている
アクセスがリフィル中のエントリに対するアクセスであ
ると判定する。さらに、ロードデータ選択部132は、
更新判定部140から信号RFLEDを受け取る。RF
LED=1であることから、ロードデータ選択部132
は、キャッシュロードバスCRBUS上のデータが選択
されるようにロードデータセレクタ120を制御する。
その結果、キャッシュメモリ1からのロードデータがC
PU6に転送される。
【0089】信号RFLEDは、アクノリッジ生成部1
30にも出力される。HIT=1、ROUT=1、RF
LED=1であることから、アクノリッジ生成部130
は、キャッシュアクセスが完了したと判定し、アクノリ
ッジ信号CACKをアサートする。
【0090】次に、要求されているアクセスがリフィル
によりまだ更新されていないワードに対するアクセスで
ある場合を説明する。アクセスが要求された時点では、
RFLED=0である。
【0091】RFLED=0であることから、アクノリ
ッジ生成部130は、アクノリッジ信号CACKをアサ
ートしない。
【0092】リフィル制御部134は、ワード転送サイ
クル毎に、転送サイクルを示す信号RFLCYCと転送
ワードがブロックデータ内のどのワードかを示す転送ワ
ードオフセットアドレスRFLOFADを更新判定部1
40に出力する。更新判定部140は、信号RFLCY
Cと転送ワードオフセットアドレスRFLOFADとに
基づいて、ワード転送サイクル毎に、ブロックデータ内
の複数のワードのそれぞれが更新済みか否かを示す情報
を更新する。
【0093】アクセスされるワードが主記憶領域10か
らキャッシュメモリ1に転送されたサイクルにおいて、
更新判定部140は、信号RFLEDをアサートする。
このサイクルにおいて、ロードデータ選択部132は、
主記憶領域10に接続されるロードバスMRBUS上の
データが選択されるようにロードデータセレクタ120
を制御する。その結果、主記憶領域10からのロードデ
ータがCPU6に転送される。このように、ロードデー
タセレクタ120を制御する理由は、以下のとおりであ
る。
【0094】キャッシュメモリ1に転送データを書き込
むために、ロードバスMRBUS上にはその転送データ
が出力されている。その転送データがアクセスされるブ
ロックデータ内のワードに対応する場合には、その転送
データを一旦キャッシュメモリ1に書き込んだ後、キャ
ッシュメモリ1に対する再アクセスによりロードするよ
りも、その転送データをキャッシュメモリ1に書き込む
と同時にその転送データをCPU6に送ることにより、
CPU6の動作が停止するサイクル数を低減することが
できる。このように、主記憶領域10からCPU6に転
送データをバイパスすることにより、CPU6の動作が
停止するサイクル数を低減することができる。
【0095】アクセスされるデータが主記憶領域10か
らCPU6に転送されたサイクルにおいて、アクノリッ
ジ生成部130は、アクノリッジ信号CACKをアサー
トする。
【0096】
【発明の効果】本発明によれば、主記憶領域からキャッ
シュメモリ内のエントリにデータが転送中か否かを示す
リフィルビットがキャッシュメモリに設けられている。
リフィルビットを使用することにより、キャッシュメモ
リ制御回路内に保持されたアドレスと第2のアクセス要
求に対応するアドレスとを比較する比較回路が不要とな
る。これにより、キャッシュメモリ制御回路の回路規模
を削減することが可能になる。
【0097】また、本発明によれば、多ビットを有する
アドレスどうしの比較を不要とすることができる。これ
により、キャッシュメモリを高速に制御することが可能
になる。
【0098】さらに、リフィルビットの値を参照してキ
ャッシュメモリの動作およびCPUの動作を制御するこ
とにより、キャッシュミスが発生した命令に続く命令を
支障なく実行することが可能となる。その結果、命令の
パイプライン実行、あるいは、先行制御が効率的に行わ
れる。
【図面の簡単な説明】
【図1】本発明の実施の形態のキャッシュメモリ1の構
成を示す図である。
【図2】キャッシュメモリ1を含むシステム100の構
成を示す図である。
【図3】主記憶領域10からキャッシュメモリ1の特定
のエントリにブロックデータを転送するタイミングを示
す図である。
【図4】第1のアクセス要求に対応するアドレスと第2
のアクセス要求に対応するアドレスとが一致する場合に
おいて、ブロックデータを転送するタイミングを示す図
である。
【図5】システム100の詳細構成を示す図である。
【図6】改良された制御方法を提供するシステム100
aの詳細構成を示す図である。
【符号の説明】
1 キャッシュメモリ 2 タグメモリ 2a エントリ 2a−1 タグデータを格納する領域 2a−2 リフィルビットを格納する領域 2a−3 バリッドビットを格納する領域 3 データメモリ 3a エントリ 3a−0〜3a−3 ワードを格納する領域 6 CPU 8 キャッシュメモリ制御回路 10 主記憶領域 11 アドレスバス 12 データバス 100、100a システム

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 複数のエントリを有するデータメモリ
    と、 前記複数のエントリにそれぞれ対応する複数のリフィル
    ビットとを備え、 前記複数のリフィルビットのそれぞれは、主記憶領域か
    ら前記複数のエントリのうち対応する1つのエントリに
    データが転送中か否かを示す、キャッシュメモリ。
  2. 【請求項2】 前記キャッシュメモリは、複数のエント
    リを有するタグメモリをさらに備えており、 前記複数のリフィルビットのそれぞれは、前記タグメモ
    リの前記複数のエントリのうち対応する1つのエントリ
    に格納されている、請求項1に記載のキャッシュメモ
    リ。
  3. 【請求項3】 複数のエントリを有するデータメモリ
    と、前記複数のエントリにそれぞれ対応する複数のリフ
    ィルビットとを備えたキャッシュメモリを制御する方法
    であって、 第1のアクセス要求に対応するアドレスがキャッシュに
    ヒットするか否かを判定するステップと、 前記第1のアクセス要求に対応する前記アドレスがキャ
    ッシュにヒットしないと判定された場合に、主記憶領域
    から前記第1のアクセス要求によって指定されるエント
    リにデータを転送するステップと、 前記データの転送を開始する際に、前記第1のアクセス
    要求によって指定される前記エントリに対応するリフィ
    ルビットをセットするステップと、 前記データの転送が完了した際に、前記リフィルビット
    をクリアするステップとを包含する方法。
  4. 【請求項4】 前記リフィルビットは、制御信号に応答
    してクリアされる、請求項3に記載の方法。
  5. 【請求項5】 第2のアクセス要求によって指定される
    エントリに対応するリフィルビットの値を参照するステ
    ップと、 前記リフィルビットの値に応じて、前記第2のアクセス
    要求によって指定される前記エントリに対するアクセス
    を制御するステップとをさらに包含する、請求項3に記
    載の方法。
  6. 【請求項6】 前記リフィルビットが主記憶領域から前
    記第2のアクセス要求によって指定されるエントリにデ
    ータが転送中であることを示す場合には、前記アクセス
    を制御するステップは、前記データの転送が完了した後
    に、前記第2のアクセス要求によって指定されるエント
    リにアクセスするステップを包含する、請求項5に記載
    の方法。
  7. 【請求項7】 前記リフィルビットが主記憶領域から前
    記第2のアクセス要求によって指定されるエントリにデ
    ータが転送中であることを示す場合には、前記アクセス
    を制御するステップは、前記データの一部の転送が完了
    した時点で、前記データの一部を前記主記憶領域から転
    送するステップを包含する、請求項5に記載の方法。
JP10141931A 1997-05-22 1998-05-22 キャッシュメモリおよびキャッシュメモリを制御する方法 Pending JPH1139215A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10141931A JPH1139215A (ja) 1997-05-22 1998-05-22 キャッシュメモリおよびキャッシュメモリを制御する方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-132107 1997-05-22
JP13210797 1997-05-22
JP10141931A JPH1139215A (ja) 1997-05-22 1998-05-22 キャッシュメモリおよびキャッシュメモリを制御する方法

Publications (1)

Publication Number Publication Date
JPH1139215A true JPH1139215A (ja) 1999-02-12

Family

ID=26466753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10141931A Pending JPH1139215A (ja) 1997-05-22 1998-05-22 キャッシュメモリおよびキャッシュメモリを制御する方法

Country Status (1)

Country Link
JP (1) JPH1139215A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002077846A1 (en) * 2001-03-22 2002-10-03 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US6981103B2 (en) 2001-06-11 2005-12-27 Nec Electronics Corporation Cache memory control apparatus and processor
US7024519B2 (en) 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US9183051B2 (en) 2004-03-29 2015-11-10 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002077846A1 (en) * 2001-03-22 2002-10-03 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
JP2002351850A (ja) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc プロセッサでのデータ処理方法及びデータ処理システム
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6981103B2 (en) 2001-06-11 2005-12-27 Nec Electronics Corporation Cache memory control apparatus and processor
US7024519B2 (en) 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US7461207B2 (en) 2002-05-06 2008-12-02 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US7870340B2 (en) 2002-05-06 2011-01-11 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US9183051B2 (en) 2004-03-29 2015-11-10 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling

Similar Documents

Publication Publication Date Title
US6505287B2 (en) Virtual channel memory access controlling circuit
US10552145B2 (en) Memory devices, systems, and methods for updating firmware with single memory device
US6112267A (en) Hierarchical ring buffers for buffering data between processor and I/O device permitting data writes by processor and data reads by I/O device simultaneously directed at different buffers at different levels
US20050010712A1 (en) Devices and methods for converting remote device formats to host device formats for access to host associated resources
JPH10232834A (ja) キャッシュメモリを作動する方法およびコンピュータシステム
EP0407119A2 (en) Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access
JP2004502224A (ja) フラッシュブリッジとオートロードとを有する集積回路
US5077664A (en) Direct memory access controller
JP2002163151A (ja) データ処理装置及びデータ処理装置におけるロックダウン・コントローラ及びデータ値をロックする方法
JP2002196981A (ja) データ処理装置
JPH0362144A (ja) 情報処理システムのメモリアクセスを速くする方法及びこの方法を実施するためのシステム
JPH1139215A (ja) キャッシュメモリおよびキャッシュメモリを制御する方法
US8850159B2 (en) Method and system for latency optimized ATS usage
US7788448B2 (en) Sequencer cache and method for operating the same
KR100298955B1 (ko) 데이타처리시스템
JP2000298640A (ja) Dma装置
JP2002366433A (ja) キャッシュメモリ制御装置およびプロセッサ
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
JPH01229345A (ja) データ処理装置
US8219761B2 (en) Multi-port high-level cache unit and a method for retrieving information from a multi-port high-level cache unit
US5829043A (en) Coupler circuit and its use in a card and process
JPH04304B2 (ja)
JP2001256169A (ja) データ転送制御システム及び装置
JPH07152650A (ja) キャッシュ制御装置
JP2000010861A (ja) 情報処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990318