JP3241637B2 - キャッシュメモリ - Google Patents

キャッシュメモリ

Info

Publication number
JP3241637B2
JP3241637B2 JP16883297A JP16883297A JP3241637B2 JP 3241637 B2 JP3241637 B2 JP 3241637B2 JP 16883297 A JP16883297 A JP 16883297A JP 16883297 A JP16883297 A JP 16883297A JP 3241637 B2 JP3241637 B2 JP 3241637B2
Authority
JP
Japan
Prior art keywords
data
cache memory
write
request
array
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.)
Expired - Fee Related
Application number
JP16883297A
Other languages
English (en)
Other versions
JPH1115733A (ja
Inventor
みどり 田草川
Original Assignee
甲府日本電気株式会社
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 甲府日本電気株式会社 filed Critical 甲府日本電気株式会社
Priority to JP16883297A priority Critical patent/JP3241637B2/ja
Publication of JPH1115733A publication Critical patent/JPH1115733A/ja
Application granted granted Critical
Publication of JP3241637B2 publication Critical patent/JP3241637B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリ特
に、マルチプロセッサによって共有される主記憶装置と
バス接続されたキャッシュメモリに関する。さらに詳し
くは、プロセッサからのライトリクエストを処理する部
分に特徴を有するキャッシュメモリに関する。
【0002】
【従来の技術】従来この種のキャッシュメモリにおい
て、プロセッサからのライトリクエストを受け付けた時
の処理を説明する。なお、ここでは、例えば、キャッシ
ュメモリ間の一致処理プロトコルとして、Berkel
eyプロトコル(UC Berkeleyのマルチプロ
セッサワークステーションSPURで用いられたプロト
コル)を採用した場合について、以下に説明する。
【0003】Berkeleyプロトコルでは、キャッ
シュステータスとして、I/CS/DE/DSを用いる
が、それぞれの意味するキャッシュの状態は以下の通り
である。
【0004】I(Invalide):キャッシュメモ
リ内にコピーが存在しない。CS(Clean Sha
red):複数のキャッシュメモリ内に主記憶装置と同
じ内容のコピーが存在する。DE(Dirty Exc
lisive):唯一つのキャッシュメモリ内に主記憶
装置と異なる内容のコピーが存在する。DS(Dirt
y Shared):複数のキャッシュメモリ内に主記
憶装置と異なる内容のコピーが存在する。
【0005】まず、プロセッサからライトリクエストを
受け付けた時、アドレスアレイを索引し、そのキャッシ
ュステータスにより、以下に示す処理を行う。
【0006】1.キャッシュステータスがIの場合:
バスに対して、排他ブロックリードリクエスト(以下、
EBR)発行し、主記憶装置、または、他キャッシュメ
モリからのリプライを受け取り、アドレスをDEに更新
する。また、ライトデータは、一旦ライトデータバッフ
ァに格納し、主記憶装置、または、他キャッシュメモリ
からのリプライデータをデータアレイに登録した後、デ
ータアレイに書き込む。
【0007】2.キャッシュステータスがCS/DSの
場合: バスに対して他キャッシュメモリを無効化する
リクエスト(以下、INV)を発行し、他キャッシュメ
モリの無効化を行い、アドレスアレイをDEに更新す
る。また、ライトデータは、一旦ライトデータバッファ
に格納し、他キャッシュメモリの無効化が終了した後、
データアレイに書き込む。
【0008】尚、この際、バスに対してINVリクエス
トを発行する前に、他キャッシュメモリからEBRリク
エスト、または、INVリクエストを受け付けた場合
は、そのキャッシュメモリにおいてもライトリクエスト
が処理されていることになるため、当該キャッシュメモ
リは、INVリクエストではなく、EBRリクエストを
発行し、他キャッシュメモリにおいてライトデータを書
き込んだデータをリプライデータとして受け取る。そし
て、アドレスアレイをDEに更新し、リプライデータを
データアレイに登録し、その後、ライトデータバッファ
に格納したライトデータをデータアレイに書き込む。
【0009】3.キャッシュステータスがDEの場合:
ライトデータをライトデータバッファに格納すること
なく、データアレイに書き込む。
【0010】上記1〜3の処理の際、プロセッサからの
パーシャルライトリクエスト(データアレイの1ワード
のうちのある部分のみにライトを行うリクエスト)実行
する場合には、上記1〜3の処理を行い、ライトデータ
を書き込むとき、一旦、データアレイに格納されたデー
タを読み出し、その読み出しデータと、ライトデータと
をマージして、データアレイに書き戻す処理を行う。
【0011】次に上記の処理を行うのに必要な構成を図
3を用いて説明する。図3は、従来の一実施例を示すキ
ャッシュメモリのブロック図である。301はアドレス
アレイ、302はデータアレイ、303はアドレスアレ
イ301を索引するためのアドレスを格納するアドレス
レジスタ、304はバスリクエスト格納バッファ、30
5はアドレスアレイ301から読み出したアドレスをア
ドレスレジスタ303のアドレスを比較を行い、アドレ
スアレイ301から読み出したキャッシュの状態により
キャッシュステータスの判定を行うキャッシュステータ
ス判定回路、306はキャッシュステータス判定回路3
05の出力により、データアレイ302の制御や、バス
に対して発行するリクエストの制御等を行う制御回路、
307はバスに対して発行するリクエストを判定する制
御回路、208はバスに対して発行するリクエストを格
納するレジスタ、209はバスからのリクエストやリプ
ライを格納するレジスタ、310はアドレスアレイ30
1に登録するアドレスおよびキャッシュの状態を示す情
報を格納するレジスタ、311はデータアレイ302の
アドレスレジスタ、312、313はデータアレイ30
2に登録するライトデータ、または、リプライデータを
格納するライトデータレジスタ、314はバスからのリ
プライデータを格納するレジスタ、315はバスへ送出
するデータを格納するレジスタ、316はプロセッサか
らのリクエスト、および、アドレス、ライトデータを格
納するレジスタ、317はライトデータバッファを示
す。このうち、バスへのリクエストを発行し、その処理
が終了するまでの間、一時的にライトデータを格納する
ためには、ライトデータバッファ317が必要だった。
【0012】
【発明が解決しようとする課題】上述した従来のキャッ
シュメモリ装置では、バスへのリクエストを送出しその
処理が終了するまでの間、ライトデータを格納するため
のライトデータバッファを設けなければならないが、こ
のライトデータバッファを実現するのには、多大なハー
ドウェア量を必要とするという問題点がある。大量のラ
イトデータを書き込むライトリクエストを扱い、またバ
スに対して発行したリクエスト処理に長時間を要した場
合、その間、一時的にライトデータを格納するライトデ
ータバッファは膨大な容量を要求される。一方、用意し
たライトデータバッファの容量が不十分だった場合に
は、このライトデータバッファがいっぱいの状態になる
と、後続の全てのリクエストが受け付けられなくなり、
性能の低下が避けられないという不具合が発生すること
になる。
【0013】
【課題を解決するための手段】本発明のキャッシュメモ
リは、マルチプロセッサによって共有される主記憶装置
とバス接続されアドレスアレイを備えたキャッシュメモ
リにおいて、プロセッサからのライトリクエストを実行
する場合に、キャッシュメモリにコピーが存在しない状
態、または複数のキャッシュメモリに主記憶装置と同じ
内容のコピーが存在する可能性があるという状態でバス
にリクエストを送出する必要があるときは、前記ライト
リクエストを送出する前に、ライトデータを前記キャッ
シュメモリのデータアレイに先書き処理する手段と、主
記憶装置または他のキャッシュメモリからのリプライデ
ータを受け付けたときに、ライト対象以外のデータを前
記データアレイに登録する手段と、前記バスにライト
クエストを送出する前に他のキャッシュメモリからの同
一アドレスに対するリクエストを受け付けた場合には、
他のキャッシュメモリとのデータ矛盾を防ぐために、前
記ライトデータ先書きデータをリプライデータとして返
却しないように制御する手段とを設けたことを特徴とす
る。
【0014】[作用]本発明では、アドレスアレイの索
引結果がINV/CSの時、バスに対してリクエストを
発行する場合、ライトデータをデータアレイに先書きす
る。このため、多大なハードウェア量を要したライトデ
ータバッファを削除することができる。
【0015】また、アドレスアレイの索引結果がCS
で、他キャッシュメモリの無効化を行う前に、同一アド
レスに対して他キャッシュメモリからのリードリクエス
トを受け付けた場合、ライトデータを先書きしたデータ
アレイのデータをリプライとして返却しないように制御
を行う。このため、データ矛盾を防ぐことができる。な
お、リードリクエストに対しては、主記憶装置にもデー
タがあるため、これをリプライデータとすれば、データ
矛盾は起こらない。
【0016】また、アドレスアレイの索引結果がDSの
時、ライトデータの先書きは行わない。このため、他キ
ャッシュメモリの無効化を行う前に、同一アドレスに対
して他キャッシュメモリからのリードリクエストに対し
て、ライトデータを先書きしたデータアレイのデータを
リプライとして返却することは起こらない。ここで、ア
ドレスアレイの索引結果がDSの場合は、CSの場合と
異なり、ライトデータを書き込む元のデータとして主記
憶装置のデータとは異なるデータを扱っているため、デ
ータアレイに上書きを施してしまうと、元データが再現
できなくなってしまうが、本発明のように、ライトデー
タの先書きを行わなければ、問題は生じない。
【0017】また、アドレスアレイの索引結果がCS/
DSで、他キャッシュメモリの無効化を行う前に、同一
アドレスに対して他キャッシュメモリからEBRリクエ
スト、または、INVリクエストを受け付けた場合、I
NVリクエストではなく、EBRリクエストをバスに対
して発行する。このため、EBRリクエスト、または、
INVリクエストを発行した他キャッシュメモリにおい
てライトデータを書き込んだデータに対して、ライトを
実行することができる。
【0018】また、アドレスアレイの索引の結果、追い
出し処理を必要とする場合、該ライトリクエストを差し
戻す。このため、追い出し処理によるデータアレイの読
み出しと、ライトデータの先書きによるデータアレイの
書き込みの競合を避けることができる。
【0019】
【発明の実施の形態】
[構成の説明] 本発明について、図面を参照して説明
する。
【0020】図1は本発明の一実施例を示すキャッシュ
メモリ装置のブロック図であり、図2は本発明のキャッ
シュメメモリ装置が使用されるシステム例のブロック図
である。
【0021】図1において、101はアドレスアレイ、
102はデータアレイ、103はアドレスアレイ101
を索引するためのアドレスを格納するアドレスレジス
タ、104はバスリクエスト格納バッファ、105はア
ドレスアレイ101から読み出したアドレスとアドレス
レジスタ103のアドレスを比較を行い、アドレスアレ
イ101から読み出したキャッシュの状態によりキャッ
シュステータスの判定を行うキャッシュステータス判定
回路、106はキャッシュステータス判定回路の出力に
より、データアレイ102の制御や、バスに対して発行
するリクエストの制御などを行う制御回路、107はバ
スに対して発行するリクエストを決定する制御回路、1
08は発行するリクエストを格納するレジスタ、109
はバスからのリクエスト、リプライを格納するレジス
タ、110はアドレスアレイ101に登録するアドレス
およびキャッシュ状態を示す情報を格納するレジスタ、
111はデータアレイ102のアドレスレジスタ、11
2、113はライトデータレジスタ、114はバスから
のリプライデータを格納するレジスタ、115はバスへ
送出するデータを格納するレジスタ、116はプロセッ
サからのリクエストアドレスおよびライトデータを格納
するレジスタ、117は他キャッシュメモリからのリク
エストとキャッシュメモリ内で処理しているリクエスト
のアドレスを比較を行う比較回路を示す。
【0022】図2において、201,202,203,
204はそれそれプロセッサに接続されたキャッシュメ
モリ、205は主記憶装置、206はキャッシュメモリ
201,202,203,204と主記憶装置205と
接続するバスである。なお、図1に示すキャッシュメモ
リは、図2におけるキャッシュメモリ201に対応し、
キャッシュメモリ202.203.204も同様の構成
であるとする。
【0023】[動作の説明] ここでは、キャッシュメ
モリ間の一致処理プロトコルとして、Berkeley
プロトコルを採用した場合について、以下に説明する。
【0024】Berkeleyプロトコルでは、キャッ
シュステータスとして、I/CS/DE/DSを用い、
それぞれの意味するキャッシュの状態は以下の通りであ
る。
【0025】I(Invalide):キャッシュメモ
リ内にコピーが存在しない。CS(Clean Sha
red):複数のキャッシュメモリ内に主記憶装置と同
じ内容のコピーが存在する。DS(Dirty Sha
red):複数のキャッシュメモリ内に主記憶装置と異
なる内容のコピーが存在する。DE(Dirty Ex
clisve):唯一つのキャッシュメモリ内に主記憶
装置と異なる内容のコピーが存在する。
【0026】次に、プロセッサからキャッシュメモリ2
01がライトリクエストを受け付けた時の処理について
説明する。
【0027】ここで、例えば、データアレイ102の1
ワードを8バイト単位とし、バス206上で扱うデータ
の単位を64バイトとする。また、プロセッサからのラ
イトリクエストを、16バイトのライトデータを書き込
むリクエストとする。これにより、データアレイ102
へのライトデータ先書き処理では、8バイト×2ワード
のライト処理、ライト対象以外へのリプライの登録処理
では、残りの8バイト×6ワードのライト処理を行うこ
ととする。
【0028】ここに、先書きとはプロセッサからのライ
トリクエストを実行する場合に、キャッシュの状態に応
じてバスにリクエスト(EBRリクエスト/INVリク
エスト)を送出する必要があるとき、バスへリクエスト
を送出する前にライトデータをアレイに書き込むことを
意味する。
【0029】まず、プロセッサからのライトリクエスト
は、レジスタ116に格納される。このうち、アドレス
部がアドレスレジスタ103に格納され、アドレスアレ
イ101の索引に使用される。アドレスアレイ101か
ら読み出されたアドレスおよびキャッシュの状態を示す
情報により、キャッシュステータス判定回路105にお
いてキャッシュのステータスが判定される。一方、ライ
トデータは、ライトデータレジスタ112に格納され
る。
【0030】以下に、判定されたキャッシュステータス
により4つの場合に分けて、それぞれの処理について示
す。
【0031】1.キャッシュステータスがIの場合 キャッシュステータス判定回路105の出力を基に、制
御回路106において、データアレイ102のアドレス
をレジスタ111へ、また、ライトデータをライトデー
タレジスタ113へ格納し、データアレイ102へのラ
イトデータ先書きのための制御と、バスリクエスト格納
バッファ104にEBRリクエストを格納するための制
御とを行う。
【0032】次に、バスリクエスト格納バッファ104
に格納されたEBRリクエストは、制御回路107を経
てレジスタ108に格納され、バス206に対して発行
される。そして、他キャッシュメモリ202,203,
204,または主記憶装置205のいずれかがリプライ
処理を実行し、リプライがバス206に送出されキャッ
シュメモリ201がこれを受け取り、レジスタ109に
格納、一方、リプライデータは、レジスタ114に格納
される。
【0033】リプライは、アドレスレジスタ103を経
て、アドレスアレイ101へ新規アドレス、およびキャ
ッシュステータス(DE)の登録処理を行い、同時に制
御回路106において、データアレイ102のアドレス
をレジスタ111へ、また、リプライデータをライトデ
ータレジスタ113へ格納し、データアレイ102への
ライト対象以外のリプライデータの登録のための制御を
行う。これにより、ライトリクエスト処理が終了する。
【0034】2.キャッシュステータスがCSの場合 キャッシュステータス判定回路105の出力を基に、制
御回路106において、データアレイのアドレスをレジ
スタ111へ、またライトデータをライトデータレジス
タ113へ格納し、データアレイ102へのライトデー
タ先書きのための制御と、バスリクエスト格納バッファ
104にINVリクエストを格納するための制御とを行
う。次に、バスリクエスト格納バッファ104に格納さ
れたINVリクエストは、制御回路107を経てレジス
タ108に格納され、バス206に対して発行される。
【0035】そして、他キャッシュメモリ202,20
3,204のうち、同様にキャッシュステータスCSの
キャッシュを無効化し、無効化終了を示すリプライがバ
ス206に送出され、キャッシュメモリ201がこれを
受け取り、レジスタ109に格納する。リプライはアド
レスレジスタ103を経て、アドレスアレイ101に対
してキャッシュステータスの更新処理(DE)をを行
う。このとき、リプライデータに関する処理はない。こ
れにより、ライトリクエスト処理が終了する。
【0036】2−1.キャッシュステータスがCSで、
他キャッシュメモリの無効化を行う前に、同一アドレス
に対して他キャッシュメモリからのリードリクエストを
受け付けた場合 上記2において、バスリクエスト格納バッファ104に
INVリクエストが格納されている時に、他キャッシュ
メモリ202からのリードリクエストを受け付けた場
合、このリクエストはレジスタ109に格納され、比較
回路117において、バッファ104のINVリクエス
トとアドレスが同一であることを検出し、データアレイ
102に格納されたデータをリードリクエストのリプラ
イデータとして返却しないように制御を行う。
【0037】2−2.キャッシュステータスがCSで、
他キャッシュメモリの無効化を行う前に、同一アドレス
に対して他キャッシュメモリからのEBRリクエスト、
または、INVリクエストを受け付けた場合 上記2においてバスリクエスト格納バッファ104にI
NVリクエストが格納されている時に、他キャッシュメ
モリ202からのEBRリクエスト、またはINVリク
エストを受け付けた場合、このリクエストはレジスタ0
9に格納され、比較回路117において、バスリクエス
ト格納バッファ104のINVリクエストとアドレスが
同一であることを検出し、バスリクエスト格納バッファ
104のINVリクエストをEBRリクエストに差し替
える。
【0038】そして、他キャッシュメモリ202におい
て、ライトリクエスト処理終了後、バスリクエスト格納
バッファ104に格納されたEBRリクエストは、制御
回路107を経てレジスタ108に格納され、バス20
6に対して発行される。他キャッシュメモリ202がリ
プライ処理を実行し、リプライがバス206に送出さ
れ、キャッシュメモリ201がこれを受け取り、レジス
タ109に格納、一方、リプライデータは、レジスタ1
14に格納される。リプライは、アドレスレジスタ10
3を経て、アドレスアレイ101へキャッシュステータ
スの更新処理(DE)を行い、同時に制御回路106に
おいてデータアレイのアドレスをレジスタ111へ、ま
た、リプライデータをライトデータレジスタ113へ格
納し、データアレイ102へのライト対象以外のリプラ
イデータの登録のための制御を行う。これにより、ライ
トリクエスト処理が終了する。
【0039】3.キャッシュステータスがDSの場合 判定経路105の出力を基に、制御回路106におい
て、ライトリクエストをレジスタ116へ差し戻すため
の処理と、バスリクエスト格納バッファ104にINV
リクエストを格納するための制御とを行う。次にバスリ
クエスト格納バッファ104に格納されたINVリクエ
ストは、制御回路107を経てレジスタ108に格納さ
れ、バス206に対して発行される。そして、他キャッ
シュメモリ202,203,204のうち、同様にキャ
ッシュステータスDSのキャッシュを無効化し、無効化
処理終了を示すリプライがバス206に送出され、キャ
ッシュメモリ201がこれを受け取り、レジスタ109
に格納する。
【0040】リプイライはアドレス103を経て、アド
レスアレイ101に対してキャッシュステータスの更新
(DE)を行う。このとき、レジスタ116に差し戻し
たライトリクエストを再実行し、制御回路106におい
て、データアレイのアドレスレジスタ111へ、また、
ライトデータレジスタ113へ格納し、データアレイ1
02へのライトデータ書き込みの制御を行う。これによ
り、ライトリクエスト処理が終了する。
【0041】3−1.キャッシュステータスがDSで、
他キャッシュメモリの無効化を行う前に、同一アドレス
に対して他キャッシュメモリからのEBRリクエスト、
または、INVリクエストを受け付けた場合 上記3において、バッファ104にINVリクエストが
格納されている時に、他キャッシュメモリ202からの
EBRリクエスト、またはINVリクエストを受け付け
た場合、このリクエストはレジスタ109に格納され、
比較回路117において、バッファ104のINVリク
エストとアドレスが同一であることを検出して、バスリ
クエスト格納バッファ104のINVリクエストをEB
Rリクエストに差し替える。
【0042】そして、キャッシュメモリ202におい
て、ライトリクエスト処理終了後、バスリクエスト格納
バッファ104に格納されたEBRリクエストは、制御
回路107を経てレジスタ108に格納され、バス30
6に対して発行される。他キャッシュメモリ202がリ
プライ処理を実行し、リプライが206に送出され、キ
ャッシュメモリ201がこれを受け取り、レジスタ10
9に格納、一方リプライデータは、レジスタ114に格
納される。
【0043】リプライは、アドレスレジスタ103を経
て、アドレスアレイ101へキャッシュステータスの更
新処理(DE)を行う。このとき、レジスタ116に差
し戻したライトリクエストを再実行し、制御回路106
において、データアレイ102のアドレスをレジスタ1
11へ、また、ライトデータ、リプライデータを順次ラ
イトデータレジスタ113へ格納し、データアレイ10
2へのライトデータおよび、リプライデータの書き込み
処理のための制御を行う。これにより、ライトリクエス
ト処理が終了する。
【0044】4.キャッシュステータスがDEの場合 判定回路105の出力を基に、制御回路106におい
て、データアレイ102のアドレスをレジスタ111
へ、また、ライトデータをライトデータレジスタ113
へ格納し、データアレイ102へのライトデータ書き込
みのための処理を行う。これによりライトリクエスト処
理が終了する。この時アドレスアレイ101のキャッシ
ュステータスの更新の必要はない。
【0045】また、判定されたキャッシュステータスに
より、追い出し処理を必要とする場合の処理にについて
以下に示す。制御回路106において、ライトリクエス
トをレジスタ116へ差し戻すための処理を行う。ま
た、同時に、データアレイ102に格納されているデー
タを主記憶装置205へ書き戻すために、バスリクエス
ト格納バッファ104にBW(ブロックライト、バック
ライト)リクエストを格納するための制御と、データア
レイ102のアドレスをレジスタ111へ格納し、デー
タアレイ102に格納されたデータを読み出すための制
御を行う。バスリクエスト格納バッファ104に格納さ
れたBWリクエストは、制御回路107を経てレジスタ
108に格納され、バス206に対して発行される。ま
た、データアレイ102から読み出されたデータはレジ
スタ115に格納され、バス206に送出される。その
後、レジスタ116に差し戻されたライトリクエストを
再実行し、上記の処理を行い、ライトリクエスト処理が
終了する。
【0046】更に、プロセッサからのパーシャルライト
(データアレイ102の1ワードのうちある部分のみに
ライトを行うリクエスト)を受け付けた時の処理におけ
る、ライトデータの先書き処理と、リプライデータの登
録時の処理について説明する。
【0047】まず、ライトライトデータの先書き処理で
は、従来のパーシャルライト実行時のデータアレイ登録
と同様に、制御回路106において、データアレイ10
2のアドレスをレジスタ111へ格納し、データアレイ
102から書き込みを行うワードのデータを読み出し、
レジスタ112に格納したライトデータとマージしてレ
ジスタ113に格納し、データアレイ102へのライト
データ先書きのための制御を行う。
【0048】次に、リプライデータ登録時の処理では、
制御回路106において、データアレイ102のアドレ
スをレジスタ111へ格納し、データアレイ102から
既に先書きしたライトデータを読み出し、レジスタ11
4格納したリプライデータとマージしてレジスタ113
に格納し、データアレイ102へライトデータとリプラ
イデータの書き込みを行う。なお、ライトデータ対象以
外のワードについては、上記のライト処理と同様に、リ
プライデータをデータアレイ102へ登録する。
【0049】これまでの処理により、プロセッサからラ
イトリクエストを受け付けた場合、一時的にライトデー
タを格納するバッファを用いることなく、最小のハード
ウェアの投資により、処理性能を低下させることなく、
ライトリクエスト処理を実行することができるようにな
る。
【0050】なお、以上の説明はBerkeleyプロ
トコルを採用した場合について行ったが、他のプロトコ
ル、例えば111inoisプロトコル(111ino
is大学で開発されたキャッシュプロコトコル。キャッ
シュステータス:I/CE/CS/DE)を採用した場
合にはキャッシュステータスDSに関する部分以外につ
いて上述の説明が適用できる。なお、キャッシュステー
タスCE(唯一つのキャッシュメモリ内に主記憶と同じ
内容のコピーが存在する)の場合の処理は、キャッシュ
ステータスCSの場合と同様の処理により実現が可能で
ある。
【0051】
【発明の効果】以上説明したように本発明は、プロセッ
サからライトリクエストを受け付けた場合、一時的にラ
イトデータを格納するバッファを用いることなく、最小
のハードウェアの投資により、処理性能を低下させるこ
となく、ライトリクエストを処理を実行することができ
る。
【図面の簡単な説明】
【図1】本発明の一実施例を示すキャッシュメモリのブ
ロック図である。
【図2】本発明の一実施例を示すキャッシュメモリのシ
ステムのブロック図である。
【図3】従来の技術の一例を示すキャッシュメモリのブ
ロック図である。
【符号の説明】 101 アドレスアレイ 102 データアレイ 103 アドレスレジスタ 104 バスリクエスト格納バッファ 105 キャッシュステータス判定回路 106 制御回路 107 制御回路 108 レジスタ 109 レジスタ 110 アドレスアレイ ライトレジスタ 111 データアレイ ライトレジスタ 112 ライトデータレジスタ 113 ライトデータレジスタ 114 レジスタ 115 レジスタ 116 レジスタ 117 比較回路 201 キャッシュメモリ 202 キャッシュメモリ 203 キャッシュメモリ 204 キャッシュメモリ 205 主記憶装置 206 バス 301 アドレスアレイ 302 データアレイ 303 アドレスレジスタ 304 バスリクエスト格納バッファ 305 キャッシュステータス判定回路 306 制御回路 307 制御回路 308 レジスタ 309 レジスタ 310 アドレスアレイ ライトレジスタ 311 データアレイ アドレスレジスタ 312 ライトデータレジスタ 313 ライトデータレジスタ 314 レジスタ 315 レジスタ 316 レジスタ 317 ライトデータバッファ

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサによって共有される主
    記憶装置とバス接続されアドレスアレイを備えたキャッ
    シュメモリにおいて、 プロセッサからのライトリクエストを実行する場合に、
    キャッシュメモリにコピーが存在しない状態、または複
    数のキャッシュメモリに主記憶装置と同じ内容のコピー
    が存在する可能性があるという状態でバスにリクエスト
    を送出する必要があるときは、前記ライトリクエストを
    送出する前に、ライトデータを前記キャッシュメモリの
    データアレイに先書き処理する手段と、 主記憶装置または他のキャッシュメモリからのリプライ
    データを受け付けたときに、ライト対象以外のデータを
    前記データアレイに登録する手段と、 前記バスにライトリクエストを送出する前に他のキャッ
    シュメモリからの同一アドレスに対するリクエストを受
    け付けた場合には、他のキャッシュメモリとのデータ矛
    盾を防ぐために、前記ライトデータ先書きデータをリプ
    ライデータとして返却しないように制御する手段とを設
    けたことを特徴とするキャッシュメモリ。
  2. 【請求項2】 前記キャッシュメモリはアドレスアレイ
    を具備し、該キャッシュメモリにおいて、 プロセッサからのライトリクエストを実行するとき、該
    キャッシュメモリ内に主記憶装置と異なる内容のコピー
    が存在し、他のキャッシュメモリ内にも同じコピーが存
    在する可能性がある、という状態を設けた場合に、前記
    ライトリクエストをリクエスト元に差し戻して待機さ
    せ、前記ライトデータの先書き処理は行わない手段と、 他のキャッシュメモリの無効化を行ってから、再度前記
    ライトリクエストを実行する手段と、 他のキャッシュメモリの無効化を行う前に他のキャッシ
    ュメモリからの同一アドレスに対するリクエストを受け
    付けた場合に、無効化リクエストではなく、排他リード
    リクエストを発行し、他のキャッシュメモリからのリプ
    ライデータを受取った時、ライト対象には前記ライトデ
    ータを、またライト対象以外には前記リプライデータを
    データアレイに登録する手段とを設けたことを特徴とす
    請求項 1記載のキャッシュメモリ。
  3. 【請求項3】 前記アドレスアレイ索引の結果、該キャ
    ッシュメモリ内にコピーが存在しない(I:Inval
    id)場合には、前記データアレイへのライトデータの
    先書きを行う手段、主記憶装置、または他キャッシュメ
    モリからのリプライデータ受け付け時に、ライト対象以
    外のデータを前記データアレイに登録する手段を設けた
    ことを特徴とする請求項1記載のキャッシュメモリ。
  4. 【請求項4】 前記アドレスアレイ索引の結果、該キャ
    ッシュメモリ内に主記憶装置と同じ内容のコピーが存在
    し、他のキャッシュメモリ内にも同じコピーが存在する
    (CS:Clean shared)場合には、前記デ
    ータアレイへのライトデータの先書きを行う手段を設け
    たことを特徴とする請求項1記載のキャッシュメモリ。
  5. 【請求項5】 前記アドレスアレイ索引の結果がCS
    で、他キャッシュメモリの無効化を行う前に同一アドレ
    スに対して他キャッシュメモリからリードリクエストを
    受け付けた場合には、ライトデータを先書きした前記デ
    ータアレイのデータをリプライデータとして返却しない
    ように制御する手段を設けたことを特徴とする請求項1
    記載のキャッシュメモリ。
  6. 【請求項6】 前記アドレスアレイ索引の結果がCS
    で、他キャッシュメモリの無効化を行う前に、同一アド
    レスに対して他キャッシュメモリから排他的リードリク
    エスト、または、無効化リクエストを受け付けた場合に
    は、他キャッシュメモリに対して無効化のリクエストで
    はなく、排他的リードリクエストを発行し他キャッシュ
    メモリからのリプライデータ受け付け時に、ライト対象
    以外のデータを前記データアレイに登録する手段を設け
    たことを特徴とする請求項1記載のキャッシュメモリ。
  7. 【請求項7】 前記アドレスアレイ索引の結果、該キャ
    ッシュメモリ内に、主記憶装置と異なる内容のコピーが
    存在し、他のキャッシュメモリ内にも同じコピーが存在
    する)(DS:Dirty Shared)場合には、
    前記リクエストを差し戻し、前記データアレイへのライ
    トデータの先書きは行わず、他キャッシュメモリの無効
    化を行ってから、再度前記ライトリクエストを実行する
    手段を設けたことを特徴とする請求項2記載のキャッシ
    ュメモリ。
  8. 【請求項8】 前記アドレスアレイ索引の結果がDS
    で、他キャッシュメモリの無効化を行う前に、同一アド
    レスに対して他キャッシュメモリから排他的リードリク
    エストを受け付けた場合には、他キャッシュメモリに対
    して無効化のリクエストではなく、排他的リードリクエ
    ストを発行し、他キャッシュメモリからのリプライデー
    タ受け付け時に、ライト対象にはライトデータを、他ラ
    イト対象以外にはリプライデータを前記データアレイに
    登録する手段を設けたことを特徴とする請求項2記載の
    キャッシュメモリ装置。
  9. 【請求項9】 前記アドレスアレイ索引の結果、追い出
    し処理を必要とする場合には、前記ライトリクエストを
    差し戻し、追い出し処理を行った後、再度前記ライトリ
    クエストを実行する手段を設けたことを特徴とする請求
    項1または請求項2記載のキャッシュメモリ。
  10. 【請求項10】 プロセッサからのパーシャルライトリ
    クエスト(データアレイの1ワードのうちのある部分の
    みにライトを行うリクエスト)を実行する場合には、リ
    プライデータを登録する時に、前記データアレイから先
    書きしたライトデータを読み出し、リプライデータとマ
    ージして、前記データアレイに書き戻す手段を設けたこ
    とを特徴とする請求項1記載のキャッシュメモリ。
JP16883297A 1997-06-25 1997-06-25 キャッシュメモリ Expired - Fee Related JP3241637B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16883297A JP3241637B2 (ja) 1997-06-25 1997-06-25 キャッシュメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16883297A JP3241637B2 (ja) 1997-06-25 1997-06-25 キャッシュメモリ

Publications (2)

Publication Number Publication Date
JPH1115733A JPH1115733A (ja) 1999-01-22
JP3241637B2 true JP3241637B2 (ja) 2001-12-25

Family

ID=15875356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16883297A Expired - Fee Related JP3241637B2 (ja) 1997-06-25 1997-06-25 キャッシュメモリ

Country Status (1)

Country Link
JP (1) JP3241637B2 (ja)

Also Published As

Publication number Publication date
JPH1115733A (ja) 1999-01-22

Similar Documents

Publication Publication Date Title
US7613884B2 (en) Multiprocessor system and method ensuring coherency between a main memory and a cache memory
US5598550A (en) Cache controller for processing simultaneous cache accesses
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US5095424A (en) Computer system architecture implementing split instruction and operand cache line-pair-state management
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
KR20040012812A (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
JP2000010860A (ja) キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
US7149922B2 (en) Storage system
JPH01269142A (ja) 計算機システム
WO1997004392A1 (en) Shared cache memory device
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
JP2000132531A (ja) マルチプロセッサ
JP3241637B2 (ja) キャッシュメモリ
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
JP3626609B2 (ja) マルチプロセッサシステム
EP0271187B1 (en) Split instruction and operand cache management
JP3340047B2 (ja) マルチプロセッサシステムおよび複製タグの制御方法
JP3081635B2 (ja) キャッシュメモリの無効化処理装置および無効化制御方法
JPH03172943A (ja) キャッシュメモリ制御方式
JPH0816475A (ja) マルチプロセッサシステム
JP3219810B2 (ja) データ処理装置
JP3450156B2 (ja) バスブリッジ回路
JP3287239B2 (ja) 階層キャッシュメモリとそのステート遷移制御方法
JPH1165929A (ja) バスブリッジ回路
JPH0769861B2 (ja) キヤツシユメモリ制御装置に於けるバイパスバツフアの制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20001226

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010911

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081019

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091019

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees