JP2845762B2 - 階層バッファメモリ装置 - Google Patents

階層バッファメモリ装置

Info

Publication number
JP2845762B2
JP2845762B2 JP6236568A JP23656894A JP2845762B2 JP 2845762 B2 JP2845762 B2 JP 2845762B2 JP 6236568 A JP6236568 A JP 6236568A JP 23656894 A JP23656894 A JP 23656894A JP 2845762 B2 JP2845762 B2 JP 2845762B2
Authority
JP
Japan
Prior art keywords
buffer memory
request
primary buffer
register
primary
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 - Lifetime
Application number
JP6236568A
Other languages
English (en)
Other versions
JPH07152648A (ja
Inventor
隆浩 谷岡
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 Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP6236568A priority Critical patent/JP2845762B2/ja
Publication of JPH07152648A publication Critical patent/JPH07152648A/ja
Application granted granted Critical
Publication of JP2845762B2 publication Critical patent/JP2845762B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の一次バッファメ
モリ(一般にキャッシュメモリとも呼ばれる)に共有さ
れる二次バッファメモリにおいて、一致処理を行うため
の改良された機構に関する。
【0002】
【従来の技術】ストアスルー制御の複数の一次バッファ
メモリにより共有される二次バッファメモリにおいて
は、いずれかのプロセッサからストアリクエストが発行
される度に、そのストアリクエストを発行したプロセッ
サに接続されている一次バッファメモリを除く他の一次
バッファメモリに対して一致処理を行っている。この一
致処理は、各一次バッファメモリ間で矛盾が発生しない
ように、ストアリクエストのアドレスを含むブロックを
消去するために行われる。一次バッファメモリは、ある
一致処理を行っている間は次のリクエストを受取ること
ができない。したがって、この一致処理を行っている間
はバッファメモリ装置にアクセスするプロセッサ自体を
停止させる必要が生じる。
【0003】
【発明が解決しようとする課題】上述のような従来のバ
ッファメモリ装置においては、一つの主記憶を共有する
プロセッサの台数が増加するに従って、各一次バッファ
メモリに対して発行される一致処理リクエストの頻度が
増加する。これにより、プロセッサを停止させる頻度も
増加し、システム全体の性能を低下させるという問題が
生じる。従って、システム内で主記憶を共有するプロセ
ッサを増やして性能を向上させるためには、一致処理リ
クエストの頻度を低減させる必要がある。一方、従来の
バッファメモリ装置においては、各一次バッファメモリ
が一致処理の対象となるブロックを保持しているか否か
とは無関係に、全ての一次バッファメモリに対して一致
処理リクエストを発行している。
【0004】一方、従来技術に対して一次バッファメモ
リに関する何らかの情報を二次バッファメモリに収集し
ようとすると、一次バッファメモリと二次バッファメモ
リとの間の送信頻度が高くなり、一次バッファメモリの
負荷も高くなる。
【0005】本発明の目的は、上記従来技術の問題を解
決し、単純な制御の下、一致処理の対象となるブロック
を保持していない一次バッファメモリに対する一致処理
リクエストの発行頻度を低減させることにより、システ
ム全体の性能を向上させることにある。
【0006】また、本発明の他の目的は、一次バッファ
メモリと二次バッファメモリとの間の情報の送信頻度を
低減させることにより、一次バッファメモリの負荷を軽
減することにある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明の階層バッファメモリでは、プロセッサに接続
する複数の一次バッファメモリと、主記憶に接続する少
なくとも一つの二次バッファメモリとを有する階層バッ
ファメモリ装置であって、前記一次バッファメモリによ
って所持されている可能性のあるデータ領域を識別する
ための一致制御識別手段と、前記一次バッファメモリに
対して、あるデータ領域の一致制御要求を発行する際
に、当該データ領域を所持している可能性のある一次バ
ッファメモリである旨を前記一致制御識別手段が示して
いる一次バッファメモリについてのみ一致制御要求を発
行する一致制御要求手段とを含んで構成される。
【0008】また、本発明の他の階層バッファメモリで
は、前記一致制御識別手段は、前記一次バッファメモリ
のそれぞれに対応する識別フラグを有し、一次バッファ
メモリでリードリクエストに対するミスヒットが発生し
た場合は当該リードリクエストを発行したプロセッサの
一次バッファメモリに対応する識別フラグのみが有効状
態でそれ以外は無効状態とされ、一次バッファメモリで
ストアリクエストに対するミスヒットが発生した場合は
全ての識別フラグが無効状態とされ、一次バッファメモ
リでリードリクエストに対してヒットした場合は当該リ
ードリクエストを発行したプロセッサの一次バッファメ
モリに対応する識別フラグが更に有効状態とされ、一次
バッファメモリでストアリクエストに対してヒットした
場合は当該ストアリクエストを発行したプロセッサの一
次バッファメモリに対応する識別フラグのみが有効状態
でそれ以外は無効状態とされる。
【0009】また、本発明の他の階層バッファメモリで
は、前記二次バッファメモリは、前記主記憶からのリク
エストコードを受け取る手段をさらに有する。
【0010】また、本発明の他の階層バッファメモリで
は、前記一次バッファメモリは、掃き出し処理を行った
旨を前記二次バッファメモリに通知しない。
【0011】また、本発明の他の階層バッファメモリで
は、おのおのが複数のプロセッサによって共有される複
数台の一次バッファメモリと、前記複数台の一次バッフ
ァメモリによって共有される二次バッファメモリと、前
記二次バッファメモリによって制御される主記憶とを備
えるバッファメモリ装置において、前記複数台の一次バ
ッファメモリのそれぞれに対応した情報を前記二次バッ
ファメモリのエントリ毎に保持する制御情報部を設け、
前記制御情報部は、前記主記憶から前記二次バッファメ
モリに新たなデータブロックを登録するときに初期化さ
れ、前記二次バッファメモリから任意の前記一次バッフ
ァメモリに前記新たなデータブロックの少なくとも一部
を登録するときに前記制御情報部のうちの前記任意の一
次バッファメモリに対応する情報が更新され、前記二次
バッファメモリから前記一次バッファメモリに一致処理
リクエストを発行するときに前記制御情報部を索引し、
前記二次バッファメモリが前記一致処理リクエストのア
ドレスのデータを保持するときに前記制御情報部のうち
の前記更新された情報に対応する前記一次バッファメモ
リに対してのみ前記一致処理リクエストを発行し、それ
以外の場合は前記二次バッファメモリを共有する全ての
前記一次バッファメモリに対して前記一致処理リクエス
トを発行する。
【0012】また、本発明の他の階層バッファメモリで
は、二次バッファメモリから一次バッファメモリに対し
て一致処理リクエストを発行するとき、制御情報部のう
ちの前記一致処理リクエストを発行する前記一次バッフ
ァメモリに対応する情報を初期化する。
【0013】
【実施例】本願発明の一実施例を図面を参照しながら詳
細に説明する。
【0014】図1を参照すると、本発明が対象とするデ
ータ処理システムは主記憶3000と複数のプロセッサ
4000を有し、さらに各プロセッサ4000は一次バ
ッファメモリ1000を有している。また、一次バッフ
ァメモリ1000にはさらに二次バッファメモリ200
0が接続されている。二次バッファメモリ2000はデ
ータ処理システム中に複数存在し得、それぞれが一次バ
ッファメモリ1000に接続している。一つの一次バッ
ファメモリ1000は同時に複数の二次バッファメモリ
2000に接続されることはない。一つの二次バッファ
メモリ2000は1つ以上の一次バッファメモリ100
0に接続される。
【0015】図2を参照すると、本実施例における二次
バッファメモリは、プロセッサ側に接続されている4台
のストアスルー方式の一次バッファメモリによって共有
されている。この二次バッファメモリはストアイン方式
により制御される。
【0016】図2を参照すると、レジスタ群1は、接続
されている一次バッファメモリの数と同数の4個のレジ
スタから構成されている。レジスタ群1の各レジスタ
は、4台の一次バッファメモリのそれぞれに対応してい
る。レジスタ群1は、一次バッファメモリからのリクエ
ストコード、すなわちブロックの読込みまたはデータの
書込みを指示するリクエストコードを受信した後、それ
を信号線101に出力する。
【0017】バッファ群7は、レジスタ群1の各レジス
タに対応するバッファで構成されている。バッファ群7
は、レジスタ群1で受信した一次バッファメモリからの
リクエストコードをバッファリングした後、そのリクエ
ストコードを信号線107に出力する。
【0018】セレクタ21は、レジスタ群1およびバッ
ファ群7が保持するリクエストコードの中から、次に実
行すべきリクエストコードを選択した後、それを信号線
201に出力する。
【0019】レジスタ2は、主記憶からのリクエストコ
ード、すなわちブロックのコピーバックや二次バッファ
メモリおよび一次バッファメモリの一致処理等のリクエ
ストコードを受信した後、それを信号線102に出力す
る。
【0020】バッファ8は、レジスタ2で受信した主記
憶からのリクエストコードをバッファリングした後、そ
れを信号線108に出力する。
【0021】セレクタ22は、レジスタ2およびバッフ
ァ8が保持するリクエストコードの中から、次に実行す
べきリクエストを選択した後、それを信号線202に出
力する。
【0022】セレクタ28は、信号線201を介して入
力する一次バッファメモリからのリクエストコードと、
信号線202を介して入力する主記憶からのリクエスト
コードの中から、次に実行すべきリクエストコードを選
択する。選択されたリクエストコードは、レジスタ12
に格納される。
【0023】レジスタ群3は、レジスタ群1と同様に、
一次バッファメモリの数と同数の4個のレジスタから構
成されており、一次バッファメモリからリクエストコー
ドとともに送られてくるリクエストアドレスを受信した
後、それを信号線103に出力する。
【0024】バッファ群9は、バッファ群7と同様に、
レジスタ群3の各レジスタに対応するバッファで構成さ
れており、レジスタ群3で受信した一次バッファメモリ
からのリクエストアドレスをバッファリングした後、そ
れを信号線109に出力する。
【0025】セレクタ23は、セレクタ21と同様に、
レジスタ群3とバッファ群9とが保持するリクエストア
ドレスの中から、次に実行すべきリクエストアドレスを
選択した後、それを信号線203に出力する。
【0026】レジスタ4は、主記憶からリクエストコー
ドとともに送られてくるリクエストアドレスを受信した
後、それを信号線104に出力する。
【0027】バッファ10は、バッファ8と同様に、レ
ジスタ4で受信した主記憶からのリクエストアドレスを
バッファリングした後、それを信号線110に出力す
る。
【0028】セレクタ24は、セレクタ22と同様に、
バッファ10とが保持するリクエストコードの中から、
次に実行すべきリクエストを選択した後、それを信号線
204に出力する。
【0029】セレクタ29は、信号線203を介して入
力する一次バッファメモリからのリクエストアドレス
と、信号線204を介して入力する主記憶からのリクエ
ストアドレスの中から、次に実行すべきリクエストアド
レスを選択する。この選択されたリクエストアドレス
は、レジスタ13に格納される。レジスタ13に格納さ
れたリクエストアドレスは信号線335を介して出力さ
れる。また、そのリクエストアドレスの一部は信号線3
33を介して、他の一部は信号線334を介してそれぞ
れ出力される。
【0030】レジスタ群5は、レジスタ群1と同様に、
一次バッファメモリの数と同数の4個のレジスタから構
成されている。レジスタ群5は、一次バッファメモリか
らリクエストがデータのストアリクエストである場合、
ストアデータを受信した後、それを信号線105に出力
する。
【0031】バッファ群11は、バッファ群7と同様
に、レジスタ群5の各レジスタに対応するバッファで構
成されており、レジスタ群5で受信したストアデータを
バッファリングした後、それを信号線111に出力す
る。
【0032】セレクタ25は、セレクタ21と同様に、
レジスタ群5とバッファ群11とが保持するストアデー
タの中から、次に実行すべきストアデータを選択した
後、それを信号線205に出力する。信号線205に出
力されたストアデータは、レジスタ14に格納される。
【0033】制御回路36は、レジスタ12からリクエ
ストコードを受け取ると共に、比較回路41から比較結
果を受取り、これらに従って制御信号線331および3
32によって、セレクタ26,27、論理回路31〜3
5、キー部38、データ部39および制御ビット部37
の制御を行う。
【0034】信号線334を介してレジスタ13から出
力されたリクエストアドレスの一部は、バッファメモリ
の索引アドレスとして、キー部38およびデータ部39
および制御ビット部37を索引するために用いられる。
【0035】制御ビット部37は、4台の一次バッファ
メモリのそれぞれに対応したビット情報(制御ビット)
を、二次バッファメモリの各ブロック毎に保持する。制
御ビット部37からの読出しおよび制御ビット部37に
対する書込みは、制御回路36からの制御信号線332
によって制御される。
【0036】キー部38から出力されたキーとレジスタ
13から出力されたリクエストアドレスの一部は、比較
回路41によって比較される。両者が一致した場合はバ
ッファメモリがヒットしたと判定され、両者が一致しな
い場合はバッファメモリがミスヒットしたと判定され
る。これらの判定結果は、信号線336を介して出力さ
れる。
【0037】レジスタ15は、信号線335を介してレ
ジスタ13から出力されるリクエストアドレスを格納す
るレジスタであり、レジスタ15に格納したリクエスト
アドレスは、信号線115を介して出力される。
【0038】レジスタ16は、信号線338を介してキ
ー部38から出力されるキーを格納するレジスタであ
り、レジスタ16に格納したキーは、信号線116を介
して出力される。
【0039】論理回路33は、制御回路36による制御
下、レジスタ15に格納されたリクエストアドレスと、
レジスタ16に格納されたキーとにより、主記憶および
一次バッファメモリに対するリクエストアドレスを生成
する。論理回路33において生成されたリクエストアド
レスは、主記憶および一次バッファメモリに対してそれ
ぞれ出力される。
【0040】レジスタ17は、信号線341を介して制
御ビット部37から出力される制御ビットを格納するレ
ジスタである。このレジスタ17に格納した制御ビット
は、信号線117を介して出力される。
【0041】論理回路34は、制御回路36による制御
下、レジスタ17に格納された制御ビットを用いて4台
の一次バッファメモリのうちの何れの一次バッファメモ
リに対して一致処理リクエストを発行するかを決定す
る。この結果は、信号線304を介してアンド回路42
〜45に出力される。
【0042】レジスタ18は、信号線336を介して比
較回路41から出力されるバッファメモリのヒットまた
はミスヒットの判定結果を格納するレジスタである。レ
ジスタ18に格納した判定結果は、信号線118を介し
て出力される。
【0043】論理回路35は、制御回路36によって制
御され、レジスタ18に格納されたバッファメモリのヒ
ットまたはミスヒットの判定結果により、主記憶および
一次バッファメモリに対するリクエストコードを生成す
る。
【0044】アンド回路42〜45は、4台の一次バッ
ファメモリのそれぞれに接続されており、論理回路35
で生成されたリクエストコードを、論理回路34で決定
された一次バッファメモリに対してのみ出力する。
【0045】レジスタ19は、信号線337を介してデ
ータ部39から出力されるバッファメモリのブロックデ
ータを格納するレジスタであり、レジスタ19に格納し
たブロックデータは、信号線119を介して出力され
る。
【0046】レジスタ6は、主記憶から送られてくるブ
ロックデータを受信して格納するレジスタである。レジ
スタ6に格納したブロックデータは、信号線106を介
して出力される。
【0047】セレクタ26は、信号線106を介して入
力する主記憶からのブロックデータと、信号線119を
介して入力するデータ部39のブロックデータとの何れ
か一方を選択して、論理回路31に出力する。
【0048】論理回路31は、制御回路36による制御
下、レジスタ14に格納された一次バッファメモリから
のストアデータと、セレクタ26から信号線114を介
して出力されるブロックデータとを必要に応じて結合す
る。この結果は信号線301を介してデータ部39に出
力される。
【0049】セレクタ27は、制御回路36による制御
下、レジスタ19に格納されたブロックデータと、レジ
スタ6に格納されたブロックデータとのいずれか一方を
選択して、一次バッファメモリに対して送信する。
【0050】論理回路32は、制御回路36による制御
下、レジスタ17に格納した制御ビットにより、制御ビ
ット部37内の制御ビットを更新するためのビット情報
を生成する。
【0051】次に本発明の上記一実施例のバッファメモ
リ装置の動作について図面を参照して説明する。
【0052】(1) 一次バッファメモリからのリード
リクエストに対して、二次バッファメモリにおいてミス
ヒットが検出された場合は、以下のように、主記憶から
二次バッファメモリに対するブロックの登録、及び、制
御ビット部37の初期化が行われ、その後一次バッファ
メモリに対してデータの送信が行われる。以下、図2及
び図4を参照して説明する。
【0053】まず、一次バッファメモリからのリードリ
クエストコードとリードリクエストアドレスは、それぞ
れレジスタ群1および3で受信される。これらは、必要
に応じてレジスタ群7および9においてバッファリング
された後、それぞれレジスタ12および13に格納され
る。
【0054】次のサイクルにおいて、リードリクエスト
コードは、制御回路36によって一次バッファメモリか
らのリードリクエストコードであると判定されると同時
に、リードリクエストアドレスの一部を用いて制御ビッ
ト部37およびキー部38およびデータ部39の検索が
行われる。キー部38から取出されたキーは、比較回路
41においてリクエストアドレスの一部と比較される。
この結果、二次バッファメモリにおいてミスヒットが発
生したことが検出される。リードリクエストアドレス、
キー、制御ビット、ミスヒット情報およびブロックデー
タは、それぞれレジスタ15、16、17、18および
19に格納される。
【0055】上記のようにリードリクエストに対するミ
スヒットが検出されると、新たなブロックを二次バッフ
ァメモリ(図中ではL2)に置換するために、ブロック
の掃き出しが行われる(ステップ401)。本実施例で
はダイレクトマッピング方式を前提としているため、掃
き出すべきブロックは一意に決まるが、仮にセットアソ
シアティブ方式を前提とした場合でも、どのブロックを
掃き出すかは、例えばLRU(Least Recently Used)
制御等により決定することができる。
【0056】このブロックの掃き出しに伴い、一次バッ
ファメモリ(図中ではL1)に対するブロックのクリア
リクエストの送信(ステップ402)、及び、主記憶に
対するブロックリードリクエストの送信(ステップ40
3)が行われる。この際、論理回路33は、レジスタ1
5に格納されているリクエストアドレスを主記憶に送信
する。また、レジスタ15に格納されているリクエスト
アドレスとレジスタ16に格納されているキーとによ
り、一次バッファメモリに対するブロッククリアリクエ
ストのアドレスを生成し、このアドレスを全ての一次バ
ッファメモリに対して送信する。このアドレスの生成
は、リクエストアドレスのキーをリプレースしようとし
ているブロックのキーに置き換えることにより行われ
る。また、論理回路34は、レジスタ17に格納されて
いる制御ビットを元に、ブロッククリアリクエストを発
行するブロックに対するアクセスの履歴がある一次バッ
ファメモリを決定する。そして、アンド回路42〜45
において、論理回路34の出力と論理回路35で生成さ
れた一次バッファメモリに対するブロッククリアリクエ
ストとの論理演算を行い、任意の一次バッファメモリに
対してブロッククリアリクエストを送信する。論理回路
35は、主記憶に対するブロックリードリクエストを生
成して送信する。レジスタ19に格納されたブロックデ
ータは、コピーバックデータとして主記憶に送信され
る。このとき、セレクタ27の出力は、一次バッファメ
モリに対しては送信されない。
【0057】レジスタ6が主記憶からのリードデータを
受信すると、このリードデータは、セレクタ26および
論理回路31を介してデータ部39に書込まれる。そし
て、レジスタ13に格納されているリクエストアドレス
の一部からキーが取出されてキー部38に格納される。
このようにして、二次バッファメモリのブロックのリプ
レースが行われる(ステップ404)。
【0058】論理回路32は、当該リードリクエスト元
の一次バッファメモリに対応する部分のみが”1”で、
他の部分は”0”という制御ビットを生成して、この制
御ビットを制御ビット部37に書込む(ステップ40
5)。セレクタ27は、レジスタ6からのブロックデー
タを選択して、それを一次バッファメモリに対して送信
する(ステップ406)。
【0059】(2) 一次バッファメモリからのストア
リクエストに対して、ミスヒットが二次バッファメモリ
において検出された場合は、以下のように、主記憶から
二次バッファメモリに対するブロックの登録、制御ビッ
ト部37の初期化、および、二次バッファメモリに対す
るストアが行われる。以下、図2及び図5を参照して説
明する。
【0060】まず、一次バッファメモリからのリクエス
トコード、リクエストアドレスおよびストアデータは、
それぞれレジスタ群1、3および5で受信される。そし
て、必要に応じてレジスタ群7、9および11において
バッファリングされた後、それぞれレジスタ12、13
および14に格納される。
【0061】次のサイクルにおいて、リクエストコード
は、制御回路36において一次バッファメモリからのス
トアリクエストコードであると判定されると同時に、リ
クエストアドレスの一部を用いて制御ビット部37、キ
ー部38およびデータ部39の検索が行われる。キー部
38から取出されたキーは、比較回路41においてリク
エストアドレスの一部と比較される。この結果、二次バ
ッファメモリにおいてミスヒットが発生したことが検出
される。リクエストアドレス、キー、制御ビット、ミス
ヒット情報およびブロックデータは、それぞれレジスタ
15、16、17、18および19に格納される。
【0062】上記のようにストアリクエストに対するミ
スヒットが検出されると、リードリクエストの場合と同
様に、新たなブロックを二次バッファメモリに置換する
ために、ブロックの掃き出しが行われる(ステップ50
1)。また、このブロックの掃き出しに伴い、一次バッ
ファメモリに対するブロックのクリアリクエストの送信
(ステップ502)、及び、主記憶に対するブロックリ
ードリクエストの送信(ステップ503)が行われる。
【0063】レジスタ6が主記憶からのリードデータを
受信すると、このリードデータは、セレクタ26および
論理回路31に入力される。このリードデータは、レジ
スタ14に格納されているストアデータと結合されて
(ステップ504)、データ部39に書込まれる(ステ
ップ505)。また、論理回路32は、全て”0”の制
御ビットを生成して制御ビット部37に書込む(ステッ
プ506)。このとき、セレクタ27の出力は、一次バ
ッファメモリに対しては送信されない。
【0064】(3) 一次バッファメモリからのリード
リクエストに対して、二次バッファメモリにおけるヒッ
トが検出された場合は、以下のように、制御ビット部3
7の更新が行われた後、一次バッファメモリに対してデ
ータの送信が行われる。以下、図2及び図6を参照して
説明する。
【0065】一次バッファメモリからのリードリクエス
トコードおよびリードリクエストアドレスは、リードリ
クエストのミスヒットの場合と同様にバッファリングさ
れて、制御ビット部37、キー部38およびデータ部3
9が索引される。キー部38から取出されたキーは、比
較回路41においてリクエストアドレスの一部と比較さ
れる。この結果、二次バッファメモリにヒットしたこと
が検出される。リクエストアドレス、キー、制御ビッ
ト、ヒット情報およびブロックデータは、それぞれレジ
スタ15、16、17、18および19に格納される。
【0066】次のサイクルにおいて、論理回路32は、
レジスタ17に格納されている制御ビットのうち、リー
ドリクエストの発行元の一次バッファメモリに対応する
部分を”1”にすることによって新たな制御ビットを生
成して、この制御ビットを制御ビット部37に書込む
(ステップ601)。セレクタ27は、レジスタ19に
格納されているブロックデータを選択して、これを一次
バッファメモリに対して送信する(ステップ602)。
【0067】(4) 一次バッファメモリからのストア
リクエストに対して、二次バッファメモリにおいてヒッ
トが検出された場合は、以下のように、そのストアリク
エストのリクエスト元の一次バッファメモリを除く他の
一次バッファメモリに対する一致処理リクエストの送
信、制御ビット部37の更新および二次バッファメモリ
に対する書込みが行われる。以下、図2及び図7を参照
して説明する。
【0068】まず、一次バッファメモリからのリクエス
トコード、リクエストアドレスおよびストアデータは、
ストアリクエストに対するミスヒットが発生した場合と
同様にバッファリングされ、制御ビット部37、キー部
38およびデータ部39が索引される。キー部38から
取出されたキーは、比較回路41においてリクエストア
ドレスの一部と比較される。この結果、二次バッファメ
モリにヒットしたことが検出される。リクエストアドレ
ス、キー、制御ビット、ヒット情報およびブロックデー
タは、それぞれレジスタ15、16、17、18および
19に格納される。
【0069】次のサイクルにおいて、論理回路34は、
レジスタ17に格納された制御ビットに基づいて、一致
処理リクエストを発行すべき一次バッファメモリを決定
する。具体的には、ストアが行われようとするブロック
に対してアクセスの履歴があり、かつ、ストアリクエス
トのリクエスト元を除く他の一次バッファメモリを選択
する。この論理回路34の結果は、アンド回路42〜4
5において、論理回路35で生成された一次バッファメ
モリに対する一致処理リクエストとの論理積演算が行わ
れる。この結果、一次バッファメモリに対する一致処理
リクエストが任意の一次バッファメモリに対して発行さ
れる(ステップ701)。ストアが行われようとするブ
ロックに対して過去にアクセスの履歴を持たない一次バ
ッファメモリや、ストアリクエストのリクエスト元の一
次バッファメモリに対しては、一致処理リクエストは発
行されない。
【0070】論理回路32は、レジスタ17に格納され
ている制御ビットのうち、当該ストアリクエストの発行
元の一次バッファメモリに対応する部分のみを”1”と
し、他の部分を”0”とすることによって新たに制御ビ
ットを生成する。この制御ビットは制御ビット部37に
書込まれる(ステップ702)。
【0071】レジスタ19に格納されたブロックデータ
は、セレクタ26によって選択される。セレクタ26に
よって選択されたデータは、論理回路31において、レ
ジスタ14からのストアデータと結合されて、データ部
39に書込まれる(ステップ703)。
【0072】(5) 図1のように、複数の二次バッフ
ァメモリが一つの主記憶を共有している場合は、二次バ
ッファメモリの一致処理を行うため、主記憶からのブロ
ックデータのコピーバックリクエストやブロッククリア
リクエストを考慮する必要がある。すなわち、二次バッ
ファメモリのブロックを主記憶に書き戻すためのコピー
バックリクエストや、二次バッファメモリのブロックを
消去するためのブロッククリアリクエストを、主記憶か
ら受け取れるように構成しておく必要がある。このた
め、図2の二次バッファメモリでは、レジスタ2、4、
バッファ8および10を設けて、セレクタ28および2
9によって主記憶からのリクエストをも受け入れられる
ように構成している。
【0073】主記憶からのブロックデータのコピーバッ
クリクエストやブロッククリアリクエストが、二次バッ
ファメモリにヒットした場合は、以下のように、動作す
る。
【0074】尚、二次バッファメモリのブロックデータ
を主記憶にコピーバックしたりクリアする場合は、それ
と同時に、一次バッファメモリにおける対応するブロッ
クのブロッククリアも行われる。
【0075】主記憶から送信されたコピーバックリクエ
ストのリクエストコードおよびリクエストアドレスは、
一次バッファメモリからのリクエストを受信する場合と
同様に、それぞれレジスタ2および4で受信され、レジ
スタ8および10においてバッファリングされる。セレ
クタ8および9が主記憶側からのリクエストを選択する
と、コピーバックリクエストのリクエストコードおよび
リクエストアドレスは、それぞれレジスタ12および1
3に格納される。以下、一次バッファメモリからのリク
エストの処理と同様に、制御ビット部37、キー部38
およびデータ部39の索引が行われ、比較回路41にお
いて二次バッファメモリのヒットが判定される。リクエ
ストアドレス、キー、制御ビット、ヒット情報およびブ
ロックデータは、それぞれレジスタ15、16、17、
18および19に格納される。
【0076】次のサイクルにおいて、論理回路33は、
レジスタ15からのリクエストアドレスを、各一次バッ
ファメモリに対して送信する。論理回路34は、レジス
タ17に格納された制御ビットにより、ブロッククリア
リクエストを発行すべき一次バッファメモリを決定す
る。具体的には、二次バッファメモリにおいて主記憶へ
のコピーバックを行おうとするブロックデータに対し
て、過去にアクセスした履歴を有する一次バッファメモ
リを選択する。この論理回路34の結果は、アンド回路
42〜45において、論理回路35で生成した一次バッ
ファメモリに対するブロッククリアリクエストとの論理
積演算が行われる。この結果、一次バッファメモリに対
するコピーバックリクエストが任意の一次バッファメモ
リに対して発行される。レジスタ19に格納されている
ブロックデータは、必要に応じてコピーバックデータと
して主記憶に返送される。二次バッファメモリのブロッ
クを消去するか、または、コピーバックするかの決定
は、一般的なストアイン方式のバッファメモリの一致処
理アルゴリズムによって行われる。
【0077】(6) 主記憶からのブロックデータのコ
ピーバックリクエストやブロッククリアリクエストに対
して、二次バッファメモリにおいてミスヒットが検出さ
れた場合は、以下のように、二次バッファメモリの処理
は、その時点で終了する。
【0078】主記憶から送信されたコピーバックリクエ
ストのリクエストコードおよびリクエストアドレスに対
しては、ヒットした場合と同様に、コピーバックリクエ
ストのリクエストコードおよびリクエストアドレスのバ
ッファリング、制御ビット部37、キー部38およびデ
ータ部39の索引、および、バッファメモリのヒット/
ミスヒットの判定が行われる。比較回路41で検出され
たミスヒット情報は制御回路36に送信され、現在実行
中のリクエストに対する処理は中断される。
【0079】次に、本発明の上記一実施例の動作につい
て具体例を用いて詳細に説明する。
【0080】図3を参照すると、本実施例における二次
バッファメモリは、制御ビット部37と、キー部38
と、比較回路41とを含んでいる。データ部39は表示
を省略してある。
【0081】リクエストアドレスは32ビットの数値で
与えられる。従って、リクエストアドレスを受信するレ
ジスタ13は、32ビットのレジスタである。レジスタ
13の最上位ビットから16ビットが信号線333に出
力されて比較回路41に入力される。また、次の8ビッ
トが信号線334に出力されて制御ビット部37および
キー部38に入力されて、索引のために用いられる。信
号線334に出力されたリクエストアドレスの8ビット
によって索引可能な、制御ビット部37およびキー部3
8のエントリは256エントリある。各エントリは、0
番から255番のエントリ番号により特定される。
【0082】制御ビット部37の各エントリは、それぞ
れ4ビットの容量を有している。この4ビットの各ビッ
トは、4台の一次バッファメモリのそれぞれに;左側か
ら順に0番から3番に;対応している。ここでは、二次
バッファメモリのあるエントリブロックに対して、制御
ビット部37の対応エントリの対応ビットを、一次バッ
ファメモリからアクセスの履歴がある場合に“1”と表
すこととする。
【0083】キー部38は、各エントリ毎に16ビット
のキーを有し、比較回路41は、16ビットの比較回路
である。比較回路41は、キー部38の出力のキーとレ
ジスタ13の上位16ビットとが一致したときは“1”
を出力し、一致しないときは“0”を出力する。
【0084】レジスタ17は4ビットのレジスタであ
り、レジスタ18は1ビットのレジスタである。アンド
回路42〜45は、レジスタ17からの制御ビットとレ
ジスタ18からの二次バッファメモリのヒット/ミスヒ
ット情報とを入力し、それらの論理積演算を行ってその
結果を出力する。
【0085】(1) まず、4台の一次バッファメモリ
の中のある一次バッファメモリ1からリードリクエスト
が送信されてきた場合にミスヒットが発生した場合の動
作について説明する。リクエストアドレスは“0000
0100(16進数)”番地とする。
【0086】レジスタ13には、リクエストアドレス
“00000100(16進数)”が格納される。信号
線334により、リクエストアドレスの一部の“01
(16進数)”が取出され、制御ビット部37およびキ
ー部38のそれぞれのエントリ番号1番のエントリが索
引される。このとき、制御ビット部37から取出された
制御ビットの値が“0110(2進数)”であり、キー
部38から取出されたキーの値が“0001(16進
数)”であったと仮定すると、比較回路41は、このキ
ーの値が“0001(16進数)”と信号線333を介
して送られてくる数値“0000(16進数)”とを比
較し、それらが不一致であるため、“0”を出力する。
レジスタ17および18には、それぞれ“0110(2
進数)”および“0”が格納される。
【0087】二次バッファメモリにおいてミスヒットが
検出されると、二次バッファメモリのエントリ番号1番
のエントリに格納していたブロックデータを主記憶に掃
き出した後、空いた1番のエントリに、主記憶から新し
いブロックデータの読込みが行われる。二次バッファメ
モリから主記憶に掃き出されるブロックデータのアドレ
スは、キー部38から取出されたキーの値が“0001
(16進数)”と、レジスタ13に格納されているリク
エストアドレスの下位の16ビットの“0001010
0(16進数)”番地から始まる256バイトである。
【0088】これと同時に、他の一次バッファメモリに
対してブロッククリアのリクエストが送信される。論理
回路32で生成されたブロッククリアリクエストは、レ
ジスタ17に格納されている制御ビットの値が“011
0(2進数)”であることから、4台の一次バッファメ
モリの中の一次バッファメモリ1および2に対してのみ
送信される。
【0089】主記憶から読込まれた新らしいブロックデ
ータを二次バッファメモリに登録するとき、制御ビット
部37の1番のエントリには、“0100(2進数)”
が書込まれて、一次バッファメモリ1のみがその1番の
エントリに対してアクセスの履歴があることを示す。ま
た、キー部38の1番のエントリには、リクエストアド
レスの上位の16ビットの“0000(16進数)”が
書込まれる。
【0090】(2)ストアリクエストに対するミスヒッ
トの動作については、既述のようにリードリクエストに
対するミスヒットの場合と同様のリプレース処理が発生
するため、ここでは説明しない。
【0091】(3) 次に、前項のリクエストに続いて
一次バッファメモリの中の一次バッファメモリ2から
“00000100(16進数)”番地にリードリクエ
ストが送られてきた場合の動作について説明する。
【0092】レジスタ13には、リクエストアドレス
“00000100(16進数)”が格納される。次
に、制御ビット部37およびキー部38のそれぞれのエ
ントリ番号1番のエントリが索引される。キー部38か
ら取出されたキーの値は“0000(16進数)”であ
り、レジスタ13の上位の16ビットの値は“0000
(16進数)”であるため、比較回路41は“1”を出
力する。すなわち、二次バッファメモリにおいてヒット
が発生したことが判定される。レジスタ17に格納され
る制御ビットの値“0100(2進数)”であり、レジ
スタ18には“1”が格納される。次のサイクルにおい
て、論理回路32は、レジスタ17から取出した制御ビ
ットの値を“0100(2進数)”から“0110(2
進数)”に更新し、それを制御ビット部37に書込む。
【0093】(4) 次に、前項に続いて、一次バッフ
ァメモリ0から“00000100(16進数)”番地
にストアリクエストが送られてきた場合の動作について
説明する。
【0094】レジスタ13に格納されているリクエスト
アドレスは、“00000100(16進数)”であ
る。制御ビット部37およびキー部38のそれぞれエン
トリ番号1番のエントリが索引され、制御ビット部37
から制御ビット“0110(2進数)”が取出されてレ
ジスタ17に格納される。またキー部38からキー“0
000(16進数)”が取出され、比較回路41におい
てレジスタ13の上位の16ビットの“0000(16
進数)”と比較される。比較回路41は“1”を出力
し、二次バッファメモリはヒットしたと判定する。次の
サイクルにおいて、論理回路35で生成された一次バッ
ファメモリに対する一致処理リクエストは、レジスタ1
8から出力されてアンド回路42〜45に送られ、アン
ド回路42〜45から一次バッファメモリ1および一次
バッファメモリ2に対してのみ送信される。また、論理
回路32は、このストアリクエストの元である一次バッ
ファメモリ0に対応するビットを“0”とした制御ビッ
ト“1000(2進数)”を生成し、制御ビット部37
の1番のエントリに書込む。
【0095】(5) 続いて、主記憶から“00000
100(16進数)”番地にコピーバックリクエストが
送られてきた場合の動作について説明する。
【0096】レジスタ13に格納されているリクエスト
アドレスは、“00000100(16進数)”であ
る。制御ビット部37およびキー部38のそれぞれのエ
ントリ番号1番のエントリが索引され、制御ビット部3
7から制御ビット“1000(2進数)”取り出されて
レジスタ17に格納される。また、キー部38からキー
“0000(16進数)”が取り出され、比較回路41
においてレジスタ13の上位の16ビットの“0000
(16進数)”と比較される。比較回路41の出力
“1”は、レジスタ17に格納される。二次バッファメ
モリはヒットしたと判定する。次のサイクルにおいて、
論理回路35で生成された一次バッファメモリに対する
ブロッククリアリクエストは、レジスタ18から出力さ
れてアンド回路42〜45に送られる。そして、このブ
ロッククリアリクエストはアンド回路42〜45におい
てレジスタ17からの制御ビット“1000(2進
数)”との論理積演算が行われる。その結果、ブロック
クリアリクエストは一次バッファメモリ0に対してのみ
送信される。 (6)既述のように、コピーバックリクエストに対して
ミスヒットが発生した場合は、制御ビット部37は変化
せず、リクエスト処理が中断される。
【0097】以上説明したように、本発明では二次バッ
ファメモリに対するリクエストが発生する度に制御ビッ
ト部37の更新が行われている。ところで、この制御ビ
ット部37は、常に一次バッファメモリと完全に整合が
とれている必要はない。例えば、一次バッファメモリか
らのリードリクエストに対して二次バッファメモリでヒ
ットした場合には既述のように制御ビット部37の対応
するビットが”1”となるが、逆に一次バッファメモリ
においてブロックの掃き出しが発生した場合には必ずし
も制御ビット部37の対応するビットを”0”に戻さな
ければならないわけではない。なぜなら、実際には掃き
出されてしまっているブロックについて”1”となって
いても、それは無駄なコピーバックリクエストが二次バ
ッファメモリから一次バッファメモリに出てしまうだけ
である。この場合の動作は正常である。むしろ、一次バ
ッファメモリからの制御指示を行うことによる負荷の方
が重たくなってしまう場合もあり得る。そこで、本発明
では、一次バッファメモリの状態と制御ビット部37の
状態とが完全には一致していなくてもよい旨許容するこ
とにより、一次バッファメモリからのブロックの掃き出
しに関する情報の送信を不要としている。
【0098】尚、上記実施例では、ダイレクトマッピン
グ方式のバッファメモリを仮定したが、セットアソシア
ティブ方式やその他の方式のバッファメモリの場合で
も、同様に適用できることはいうまでもない。
【0099】このように、本発明の一実施例である階層
バッファメモリ装置によれば、二次バッファメモリのエ
ントリ毎に一次バッファメモリの状態を保持する制御ビ
ット部37を設けることにより、アクセスした履歴がな
い一次バッファメモリに対する一致処理リクエストの送
出を抑制して、一次バッファメモリの一致処理の頻度を
低減させ、これによってシステム全体の性能を向上させ
ることができる。
【0100】また、一次バッファメモリの状態と制御ビ
ット部37の状態とが完全には一致していなくてもよい
旨許容することにより、一次バッファメモリからのブロ
ックの掃き出しに関する情報の送信を不要とし、一次バ
ッファメモリの負荷を軽減することができる。
【0101】
【発明の効果】以上の説明で明らかなように、本発明で
は、二次バッファメモリを共有する複数台の一次バッフ
ァメモリのそれぞれに対応する情報を二次バッファメモ
リのエントリ毎に保持する制御ビット部を設けて、その
制御ビット部に各一次バッファメモリが過去に二次バッ
ファメモリの各エントリにアクセスした履歴があるか否
かを記録している。そして、アクセスした履歴がない一
次バッファメモリに対する一致処理リクエストの送出を
抑制することにより、一次バッファメモリの一致処理の
頻度を低減させ、これによってシステム全体の性能を向
上させることができるという効果がある。
【0102】さらに、制御ビット部の更新制御にあた
り、一次バッファメモリの状態と制御ビット部の状態と
が完全には一致していなくてもよい旨許容することによ
り、一次バッファメモリからのブロックの掃き出しに関
する情報の送信を不要とし、一次バッファメモリの負荷
を軽減することができる。
【図面の簡単な説明】
【図1】本発明の階層バッファメモリを有するデータ処
理システムの構成図である。
【図2】本発明における二次バッファメモリの構成図で
ある。
【図3】本発明における二次バッファメモリの主要部を
示す図である。
【図4】リードリクエストに対するミスヒットが発生し
た場合の処理手順を示す図である。
【図5】ストアリクエストに対するミスヒットが発生し
た場合の処理手順を示す図である。
【図6】リードリクエストに対してヒットした場合の処
理手順を示す図である。
【図7】ストアリクエストに対してヒットした場合の処
理手順を示す図である。
【符号の説明】
21〜27 セレクタ 31〜35 論理回路 36 制御回路 37 制御ビット部 38 キー部 39 データ部 41 比較回路 1000 一次バッファメモリ 2000 二次バッファメモリ 3000 主記憶 4000 プロセッサ
フロントページの続き (56)参考文献 特開 昭60−138653(JP,A) 特開 平2−188847(JP,A) 特開 平2−253356(JP,A) 特開 平4−230549(JP,A) 特開 平5−2534(JP,A) 富田眞治他著「コンピュータアーキテ クチャシリーズ並列処理マシン」(1989 −5−25)オーム社発行,第164頁第10 −13行,第166頁第7−12行 (58)調査した分野(Int.Cl.6,DB名) G06F 12/08

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサが接続された一次バッファメ
    モリと、この一次バッファメモリが少なくとも1つ接続
    された二次バッファメモリと、この二次バッファメモリ
    が少なくとも1つ接続された主記憶とを有する階層バッ
    ファメモリ装置において、 前記二次バッファメモリのエントリ毎に該エントリの内
    容を所持している可能性のある前記一次バッファメモリ
    を示す一致制御識別情報を格納する一致制御識別情報格
    納手段と、 前記一致制御識別情報格納手段に格納された前記一致制
    御識別情報の内容が示す前記一次バッファメモリに一致
    処理のリクエストを送出する一致制御要求手段とを含
    み、 前記一致制御識別情報格納手段に格納された前記一致制
    御識別情報は前記一次バッファメモリ毎に前記エントリ
    に所持されているものであるか否かを示す識別フラグを
    有し、前記二次バッファメモリでリードリクエストに対
    するミスヒットが発生した場合は当該リードリクエスト
    を発行した前記プロセッサの前記一次バッファメモリに
    対応する前記識別フラグのみが有効状態でそれ以外は無
    効状態に、前記二次バッファメモリでストアリクエスト
    に対するミスヒットが発生した場合は全ての前記識別フ
    ラグが無効状態に、前記二次バッファメモリでリードリ
    クエストに対してヒットした場合は当該リードリクエス
    トを発行した前記プロセッサの前記一次バッファメモリ
    に対応する前記識別フラグが更に有効状態に、前記二次
    バッファメモリでストアリクエストに対してヒットした
    場合は当該ストアリクエストを発行した前記プロセッサ
    の前記一次バッファメモリに対応する識別フラグのみが
    有効状態でそれ以外は無効状態になるよう更新され、前
    記一次バッファメモリにおいてブロックの掃き出しが行
    われた場合は当該掃き出されたブロックに対応する前記
    識別フラグが更新されない ことを特徴とする階層バッフ
    ァメモリ装置。
JP6236568A 1993-10-05 1994-09-30 階層バッファメモリ装置 Expired - Lifetime JP2845762B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6236568A JP2845762B2 (ja) 1993-10-05 1994-09-30 階層バッファメモリ装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5-248932 1993-10-05
JP24893293 1993-10-05
JP6236568A JP2845762B2 (ja) 1993-10-05 1994-09-30 階層バッファメモリ装置

Publications (2)

Publication Number Publication Date
JPH07152648A JPH07152648A (ja) 1995-06-16
JP2845762B2 true JP2845762B2 (ja) 1999-01-13

Family

ID=26532743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6236568A Expired - Lifetime JP2845762B2 (ja) 1993-10-05 1994-09-30 階層バッファメモリ装置

Country Status (1)

Country Link
JP (1) JP2845762B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60138653A (ja) * 1983-12-27 1985-07-23 Hitachi Ltd 階層記憶制御方式
JPH02188847A (ja) * 1989-01-18 1990-07-24 Agency Of Ind Science & Technol 階層キャッシュメモリにおけるデータ交換方式
JPH02253356A (ja) * 1989-03-28 1990-10-12 Toshiba Corp 階層キャッシュメモリ装置とその制御方式
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
JPH06100985B2 (ja) * 1991-06-26 1994-12-12 工業技術院長 階層キャッシュ・メモリ装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
富田眞治他著「コンピュータアーキテクチャシリーズ並列処理マシン」(1989−5−25)オーム社発行,第164頁第10−13行,第166頁第7−12行

Also Published As

Publication number Publication date
JPH07152648A (ja) 1995-06-16

Similar Documents

Publication Publication Date Title
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US5148538A (en) Translation look ahead based cache access
US5274790A (en) Cache memory apparatus having a plurality of accessibility ports
US5668968A (en) Two-level virtual/real set associative cache system and method with improved synonym detection
US7958318B2 (en) Coherency maintaining device and coherency maintaining method
US7321954B2 (en) Method for software controllable dynamically lockable cache line replacement system
JPH0555898B2 (ja)
JPS6135584B2 (ja)
JPH07295886A (ja) 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法
JPH07311711A (ja) データ処理装置とその動作方法及びメモリ・キャッシュ動作方法
US5953747A (en) Apparatus and method for serialized set prediction
US5361342A (en) Tag control system in a hierarchical memory control system
US20070130426A1 (en) Cache system and shared secondary cache with flags to indicate masters
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
US7007135B2 (en) Multi-level cache system with simplified miss/replacement control
US5966737A (en) Apparatus and method for serialized set prediction
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
US4803616A (en) Buffer memory
JP2845762B2 (ja) 階層バッファメモリ装置
US5636365A (en) Hierarchical buffer memories for selectively controlling data coherence including coherence control request means
EP0170525B1 (en) Cache hierarchy design for use in a memory management unit
JPH05216765A (ja) 階層バッファ記憶装置
JP3078303B2 (ja) キャッシュメモリ制御回路
US6216198B1 (en) Cache memory accessible for continuous data without tag array indexing
JP3335919B2 (ja) ディスクキャッシュ制御装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19970304

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980929