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

キャッシュメモリ装置

Info

Publication number
JPH0421048A
JPH0421048A JP2123638A JP12363890A JPH0421048A JP H0421048 A JPH0421048 A JP H0421048A JP 2123638 A JP2123638 A JP 2123638A JP 12363890 A JP12363890 A JP 12363890A JP H0421048 A JPH0421048 A JP H0421048A
Authority
JP
Japan
Prior art keywords
data
address
request
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.)
Pending
Application number
JP2123638A
Other languages
English (en)
Inventor
Takashi Kodama
児玉 隆
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2123638A priority Critical patent/JPH0421048A/ja
Publication of JPH0421048A publication Critical patent/JPH0421048A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] この発明はキャッシュメモリ装置に関し、特にコピーバ
ック方式のキャッシュメモリ装置におけるミスヒツト時
のブロック転送処理を改善したキャッシュメモリ装置に
関するものである。
[従来の技術] 第3図は従来のキャッシュメモリ装置を利用したマルチ
プロセッサシステムのブロック図である。図は2個のC
PUによる密結合共有メモリ型マルチプロセッサシステ
ムを示している。
図において(1)は主メモリ、(2)は主メモリ(1)
のメモリバスである。(3)はキャッシュメモリ、(4
)はキャッシュメモリ(3)のディレクトリ、 (5)
は退避用レジスタ、(6)はキャッシュコントローラで
ある。これら(3)〜(6)によってキャッシュメモリ
装置が構成される。(7)はCPU、(8)はCPU 
(7)のCPUバスである。
ここで、主メモリ(1)は0〜19の20ブロックに分
割され、図の左側のキャッシュメモリ(3)はブロック
0,1,12,18,4のブロックデータを記憶し、右
側のキャッシュメモリ(3)はブロック5,11,3.
9のブロックデータを記憶している。
次に動作について説明する。第4図は第3図のキャッシ
ュメモリ装置の動作を説明するフローチャートである。
このキャッシュメモリ装置へのリクエストは以下の4つ
に分類できる。
(a)CPU (7)からの読み出し系(b)CPU 
(7)からの書き込み系(C)メモリバス(2)からの
読み出し系(d)メモリバス(2)からの書き込み系第
4図において、ステップS1ではリクエストを待ち、リ
クエストがあると対応する処理に進む。
まず、CPU (7)からの読み出しリクエストがある
とステップS2に進み、続くステップS3ではディレク
トリ(4)を調べ、リクエストアドレスがディレクトリ
(4)にヒツトするか否かを調べる。ヒツトした時はス
テップSllで直ちにリクエストデータなCPU (7
)に渡し、処理完了する。
またミスヒツトした時はステップS4でリクエストコー
ド及びアドレスを−H退避用レジスタ(5)に格納する
。ステップS5では、例えば最近の最も使用頻度の少な
いブロックをリプレースブロックとして決定し、そのブ
ロックのダーティピットを検査する。ダーティピットが
ONの時はリプレースブロックのデータが既に書き換え
られていることを示し、このブロックデータを主メモリ
(1)に戻す必要がある。ステップS7ではリプレース
ブロックのバスリクエストをメモリバス(2)上に順次
出力し、ステップS8ではリプレースブロックのデータ
を主メモリ(1)にロードする。なお、ダーティピット
がONでない時はリプレースブロックと主メモリ(1)
の内容は一致しているので、このブロックデータを主メ
モリ(1)に戻す必要はない。制御はステップS9に進
み、次に退避用レジスタ(5)のアドレスでメモリバス
(2)上に順次バスリクエストを出す。このバスリクエ
ストの相手は主メモリ(1)の他、例えば他のキャッシ
ュメモリ装置でも良い。ステップSIOではリクエスト
ブロックのデータをキャッシュメモリ(3)に順次ロー
ドすると共にディレクトリ(4)の対応場所にリクエス
トブロックのアドレス情報を格納する。
ステップSllではリクエストデータなCPU(7)に
渡し、処理完了する。
また、CPU (7)からの書き込みリクエストがある
とステップS12に進み、続くステップ313ではディ
レクトリ(4)を調べ、リクエストアドレスがディレク
トリ(4)にヒツトするか否かを調べる。ヒツトした時
はステップS21で直ちにキャッシュメモリ(3)の内
容をリクエストデータで更新し、ステップS22で当該
ブロックのダーティピットをセットし、処理完了する。
またミスヒツトした時はステップS14に進み、リクエ
ストコード及びアドレスを退避用レジスタ(5)に格納
する。ステップS15ではリプレースブロックを決定し
、そのダーティピットを検査する。ダーティピットがO
Nの時はこのブロックデータを主メモリ(1)に戻すた
め、ステップS17でメモリバス(2)上にリプレース
ブロックのバスリクエストを順次出力し、ステップS1
8でブロックデータを主メモリ(1)にロードする。ま
たダーティピットがONでない時はこのブロックデータ
な主メモリ(1)に戻す必要はない。制御はステップS
19に進み、退避用レジスタ(5)のアドレスでメモリ
バス(2)上にバスリクエストを順次出力する。ステッ
プS20ではリクエストブロックのデータをキャッシュ
メモリ(3)にロードし、併せてディレクトリ(4)の
対応場所にリクエストブロックのアドレス情報を格納す
る。ステップS21ではリクエストブロックの内容をリ
クエストデータで更新し、ステップS22ではターティ
ピットをセットし、処理完了する。
他のキャッシュメモリ(3)からの読み出し又は書き込
みがリクエストされた場合はステップ523に進み、続
(ステップS24では読み出しか否かを判別する。読み
出しの時はステップS25でヒツトか否かを判別し、ミ
スヒツトの時は何もしない。またヒツトの時はステ・ツ
ブS26でキャッシュメモリ(3)よりリクエストブロ
ックを取り出し、ステップS27でそのブロックデータ
をメモリバス(2)に順次送出する。ステップS28で
は、このキャッシュメモリ(3)に読み出しが行なわれ
た理由が他のキャッシュメモリ(3)に対する書き込み
ミスヒツトによるものか否かを判別し、YESの場合は
ステップS29で当該リクエストブロックを無効化して
お(。
転送したブロックデータは他のキャッシュメモリ(3)
で書き換えられてしまうからである。
またステップS24の判別で読み出しで無い場合とは、
例えば他のキャッシュメモリ(3)でノブレースブロッ
クが決定され、そのプロ・ツクデータをこのキャッシュ
メモリ(3)に書き込む場合である。ステップS30で
はヒツトか否かを判別し、ミスヒツトの時は何もしない
。またヒツトの時は、この例ではこのようなリプレース
ブロックは主メモリ(1)に戻すべきであるので、ステ
ップS31に進み、このキャッシュメモリ(3)上の当
該ブロックは無効化する。
[発明が解決しようとする課題] 上記のような従来のキャッシュメモリの動作は以上のよ
うに行なわれ、主メモリへのリプレースブロックの転送
後に主メモリからのリクエストブロックのロードが行な
われるので、リクエスト情報を一旦格納しておく退避用
レジスタ群が必要になる欠点があった。
また、主メモリへのリプレースブロックの転送後に主メ
モリからのリクエストブロックのロードを行なう構成で
は、メモリバスの有効利用が図れず高速処理できないと
いう問題点があった。
この発明はかかる課題を解決するためになされたもので
、メモリバスの有効利用が図れ、かつ退避用レジスタ群
を省略できるキャッシュメモリ装置を得ることを目的と
している。
[課題を解決するための手段] この発明にかかるキャッシュメモリ装置は、キャッシュ
メモリ装置に対するリクエストアドレスとディレクトリ
を比較することによりミスヒツトを検出する比較部と、
この比較部がミスヒツトを検出したことによりリプレー
スブロックの各データを検査し、このリプレースデータ
のダーティフラグがオンの時は前記リクエストアドレス
に基づく他のメモリからのデータ転送と前記リプレース
データの他のメモリへの転送とを交互に行なわしめるキ
ャッシュコントローラと、このキャッシュコントローラ
からの制御信号に基づいて前記リクエストアドレスに基
づく他のメモリからのデータ転送要求と前記リプレース
データの他のメモリへの転送要求の各アドレスを出力す
るアドレス発生部とを備える。
[作用] この発明におけるキャッシュメモリ装置は、比較部がリ
クエストアドレスとディレクトリを比較することにより
ミスヒツトを検出し、キャッシュコントローラは比較部
がミスヒツトを検出したことによりリプレースブロック
の各データを検査し、かつこのリプレースデータのダー
ティフラグがオンの時は上記のリクエストアドレスに基
づく他のメモリからのデータ転送と上記のリプレースデ
ータの他のメモリへの転送とを交互に行なわしめ、そし
てアドレス発生部がキャッシュコントローラからの制御
信号に基づいて上記のリクエストアドレスに基づく他の
メモリからのデータ転送要求と上記のリプレースデータ
の他のメモリへの転送要求の各アドレスを出力すること
により、メモリバスの有効利用を図ると共に退避用レジ
スタ群を省略したものである。
[実施例] 以下、この発明の一実施例を図面を用いて説明する。第
1図はこの発明の一実施例のキャッシュメモリ装置の構
成を示すブロック図である。
図において(21)はメモリバス(2)のアドレスバス
、(22)はそのデータバスであり、夫々は主メモリ(
1)に接続している。(81)はCPUバス(8)のア
ドレスバス、(82)はそのデータバスであり、夫々は
CPU (7)に接続している。
(101)はキャッシュメモリ装置のアドレスバスであ
り、キャッシュメモリ(103)及びそのディレクトリ
(104)をアドレスする。
(102)はキャッシュメモリ装置のデータバスであり
、このデータバス(102)を介してキャッシュメモリ
(103)の内容が高速で読み書きされる。(105)
はデータレジスタ(DR)であり、CPU7が読み書き
するデータを一時的に格納する。(106)はアドレス
レジスタ(AR)であり、CPU7からのリクエストア
ドレスを一時的に格納する。(107)は比較部であり
、ディレクトリ(104)からの各ブロックアドレスと
AR(106)からのブロックアドレスを瞬時に比較し
て何れのデイレクトリアドレスと一致するか否かを出力
する。
(108)はキャッシュコントローラであり、このキャ
ッシュメモリ装置において例えば第2図に示すような実
施例のデータ転送制御を行う。
(109)はアドレス発生部であり、キャッシュコント
ローラ(108)からのセレクト信号に従って、AR(
106)からのリクエストアドレスに基づくリクエスト
ブロックのアドレス又はキャッシュコントローラ(10
8)からのリプレースアドレスをアドレスバス(21)
に出力する。(110)はデータレジスタ(DR)であ
り、主メモリ(1)からの読み出しデータ(リクエスト
データ)を−時的に保持する。(111)はデータレジ
スタ(DR)であり、主メモリ(1)への書き込みデー
タ(リプレースデータ)を−時的に保持する。
次に動作について説明する。第2図は第1図のキャッシ
ュコントローラ(108)のデータ転送制御手順を示す
フローチャートである。ステップS51ではリクエスト
を待ち、リクエストがあると対応する処理に進む。
CPU (7)からのデータ読み出しリクエストがある
とステップS52に進み、続くステップS53では比較
部(107)の出力を調べて、AR106の読み出しア
ドレスがディレクトリ(104)のアドレス群にヒツト
するか否かを調べる。ヒツトした時はステップS64に
進み、キャッシュメモリ(103)の対応ブロックから
直ちにリクエストデータな読み出し、DR(105)を
介してCPU (7)に渡す。
また、ステップS53の判別でミスヒツトした時はステ
ップS54でメモリバス(2)を占有し、続くステップ
S55でメモリバス(2)のバスリクエストを行う。即
ち、キャッシュコントローラ(108)はAR(106
)側のアドレスを選択するセレクト信号をアドレス発生
部(109)に出力し、これによりアドレス発生部(1
09)はAR(106)のリクエストアドレスを含む主
メモリブロックのまず先頭アドレスを発生してアドレス
バス(21)に読み出しリクエストを出力する。ステッ
プ356では、キャッシュメモリ(103)における最
近の最も使用頻度の少ないブロックをリプレースブロッ
クとして決定し、まずそのブロックの先頭データを読み
出す。
ステップS57ではそのデータのダーティピットを検査
し、もしダーティビットがONの時はステップ358に
進み、リプレースブロックデークによるメモリバス(2
)のバスリクエストを行う。
即ち、キャッシュコントローラ(108)はリプレース
アドレスを選択するセレクト信号をアドレス発生部(1
09)に出力し、これによりアドレス発生部(109)
は当該リプレースデータの書き込みアドレスによるリク
エストをアドレスバス(21)に出力する。同時にDR
(111)には当該リプレースデータがセットされる。
ステップS59ではステップS55で読み出しリクエス
トしたデータがDRIIOに転送されるのを待つ。一般
に主メモリ(1)のメモリサイクルはキャッシュメモリ
(103)のメモリサイクルより数十倍も遅い。DRI
IOにリクエストデータが転送されるとステップS60
でそのデータをキャッシュメモリ(103)の当該アド
レスに配憶する。主メモリ(1)においてはステツブ5
55の読み出しリクエストが終了することによって引き
続きステップS58の書き込みリクエストが受は付けら
れる。ステップS61ではDR(111)のリプレース
データが主メモリ(1)に書き込まれるのを待ち、書き
込まれるとステップS62でリクエストブロックの全転
送終了か否かを判別する。転送終了でなければステップ
S55に戻り、次のデータの転送を行う。
また転送終了ならディレクトリ(104)の対応場所に
AR(106)から得たリクエストブロックのアドレス
情報を格納する。また、ステップS57の判別でダーテ
ィビットがONでない時はステップS58の処理を省略
でき、よってステップ561の待ち時間も無い。従って
リプレースデータ(ダーティデータ)が少ないほどリプ
レースブロックの転送時間は小さい。ステップ363で
はメモリバス(2)の占有を解除する。ステップS64
ではリクエストデータをCPU (7)に渡し、処理完
了する。
また、CPU (7)からのデータ書き込みリクエスト
があるとステップS65に進み、続(ステップS66で
は比較部(107)の出力を調べて、AR106の書き
込みアドレスがディレクトリ(104)のアドレス群に
ヒツトするか否かを調べる。ヒツトした時はステップS
77に進み、キャッシュメモリ(103)の対応するデ
ータを直ちに更新し、ステップS78でそのダーティビ
ットをセットする。
また、ステップS66の判別でミスヒツトした時はステ
ップS67でメモリバス(2)を占有し、ステップS6
8ではリクエストブロックによるバスリクエストを行う
。ステップS69ではキャッシュメモリ(103)にお
ける最近の最も使用頻度の少ないブロックをリプレース
ブロックとして決定し、まずそのブロックの先頭データ
を読み出す。ステップS70ではそのデータのダーティ
ビットを検査し、もしダーティピットがONの時はステ
ップS71に進み、リプレースブロックのデータによる
バスリクエストを行う。ステップS72ではステップS
68で読み出しりクエストしたデータがDRIIOに転
送されるのを待つ。DRIIOにデータが転送されると
ステップS72でそのデータをキャッシュメモリ(10
3)の当該アドレスに記憶する。ステップS74ではD
R(111)のリプレースデータが主メモリ (1)に
書き込まれるのを待ち、書き込まれるとステップS75
でリクエストブロックの全転送終了か否かを判別する。
転送終了でない時はステップS68に戻り、転送終了な
らディレクトリ(104)の対応場所にリクエストブロ
ックのアドレス情報を格納する。また、ステップS70
の判別でダーティビットがONでない時はステップS7
1の処理を省略でき、かつステップ373の待ち時間も
無い。ステップS76ではメモリバス(2)の占有を解
除する。ステップS77ではキャッシュメモリ (10
3)の対応するデータを更新し、同時にステップS78
ではダーティビットをセットする。
かくしてメモリバス(2)及びAR(106)のアドレ
ス情報が有効に利用され、従来のような退避用レジスタ
(5)は必要ない。
なお、上記実施例では2個のCPUによる密結合共有メ
モリ型マルチプロセッサシステムを想定して説明したが
、CPU0数は何個でも良い。
また、上記実施例ではブロックデータのリクエスト先及
びリプレース先を主メモリとしたが、他のキャッシュメ
モリをリクエスト先又はリプレース先にしても良い。
[発明の効果] この発明は以上説明したように、比較部が検出したミス
ヒツトによりリプレースブロックの各データを検査し、
このリプレースデータのグーティフラグがオンの時はリ
クエストアドレスに基づく他のメモリからのデータ転送
とリプレースデータの他のメモリへの転送とを交互に行
なわしめるので、メモリバスの有効利用を図れると共に
退避用レジスフ群を省略できる等の効果がある。
【図面の簡単な説明】
第1図はこの発明の一実施例のキャッシュメモリ装置の
構成を示すブロック図、第2図は第1図のキャッシュコ
ントローラ(108)のデータ転送制御手順を示すフロ
ーチャート、第3図は従来のキャッシュメモリ装置を利
用したマルチプロセッサシステムのブロック図、第4図
は第3図のキャッシュメモリ装置の動作を説明するフロ
ーチャートである。 図において(1)は主メモリ、(2)はメモリバス、(
3)はキャッシュメモリ、(4)はディレクトリ、(5
)は退避用レジスタ、(6)はキャッシュコントローラ
、(7)はCPU、(8)はCPUバス、(21)はメ
モリのアドレスバス、(22)はメモリのデータバス、
(81)はCPUのアドレスバス、(82)はCPUの
データバス、(101)はキャッシュメモリ装置のアド
レスバス、(102)はキャッシュメモリ装置のデータ
バス、(105)はデータレジスタ(DR)、(10B
)はアドレスレジスタ(AR)、(107)は比較部、
(108)はキャッシュコントローラ、(109)はア
ドレス発生部、(110)、(111)はデータレジス
タ(D R)である なお、各図中同一符号は同−又は相当部分を示すものと
する。

Claims (1)

  1. 【特許請求の範囲】 キャッシュメモリ装置に対するリクエスト アドレスとディレクトリを比較することによりミスヒッ
    トを検出する比較部と、 この比較部がミスヒットを検出したことによりリプレー
    スブロックの各データを検査し、このリプレースデータ
    のダーティフラグがオンの時は前記リクエストアドレス
    に基づく他のメモリからのデータ転送と前記リプレース
    データの他のメモリへの転送とを交互に行なわしめるキ
    ャッシュコントローラと、 このキャッシュコントローラからの制御信号に基づいて
    前記リクエストアドレスに基づく他のメモリからのデー
    タ転送要求と前記リプレースデータの他のメモリへの転
    送要求の各アドレスを出力するアドレス発生部とを備え
    たことを特徴とするキャッシュメモリ装置。
JP2123638A 1990-05-14 1990-05-14 キャッシュメモリ装置 Pending JPH0421048A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2123638A JPH0421048A (ja) 1990-05-14 1990-05-14 キャッシュメモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2123638A JPH0421048A (ja) 1990-05-14 1990-05-14 キャッシュメモリ装置

Publications (1)

Publication Number Publication Date
JPH0421048A true JPH0421048A (ja) 1992-01-24

Family

ID=14865541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2123638A Pending JPH0421048A (ja) 1990-05-14 1990-05-14 キャッシュメモリ装置

Country Status (1)

Country Link
JP (1) JPH0421048A (ja)

Similar Documents

Publication Publication Date Title
EP0072179B1 (en) Clearing invalid addresses in cache memory
JPH05282203A (ja) キャッシュ・コントローラ
JPS6324428A (ja) キヤツシユメモリ
JPH0322155A (ja) キャッシュメモリ装置
JPS6111865A (ja) メモリアクセス制御方式
JP2523814B2 (ja) ム―ブアウト・システム
US4924425A (en) Method for immediately writing an operand to a selected word location within a block of a buffer memory
EP0173909B1 (en) Look-aside buffer least recently used marker controller
JPH0727492B2 (ja) 緩衝記憶装置
US5510973A (en) Buffer storage control system
JP2580263B2 (ja) バッファ記憶装置
JPH0421048A (ja) キャッシュメモリ装置
JPS60701B2 (ja) デ−タ処理装置
JP2636485B2 (ja) キャッシュ記憶装置
JPS5836434B2 (ja) バツフアメモリソウチ
JPH02259945A (ja) ストア処理方式
JPH0690681B2 (ja) キャッシュメモリ制御方式
JPH1185613A (ja) キャッシュメモリ
JPS6135583B2 (ja)
JPH11143770A (ja) 多バンクdram制御装置
JPH06243045A (ja) キャッシュメモリ
JPH02122344A (ja) バッファ記憶装置
JPH04181343A (ja) キャッシュメモリシステム
JPS6055454A (ja) デ−タ転送制御方式
JPH0332820B2 (ja)