JPH06187230A - メモリ監視制御方法 - Google Patents

メモリ監視制御方法

Info

Publication number
JPH06187230A
JPH06187230A JP4338707A JP33870792A JPH06187230A JP H06187230 A JPH06187230 A JP H06187230A JP 4338707 A JP4338707 A JP 4338707A JP 33870792 A JP33870792 A JP 33870792A JP H06187230 A JPH06187230 A JP H06187230A
Authority
JP
Japan
Prior art keywords
shared memory
data
cpu
memory
signal
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
JP4338707A
Other languages
English (en)
Inventor
Toshihiro Fujinami
稔弘 藤並
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP4338707A priority Critical patent/JPH06187230A/ja
Publication of JPH06187230A publication Critical patent/JPH06187230A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 キャッシュメモリのスヌーピング動作による
結果発生する制御信号により、キャッシュメモリからの
共有メモリへの書き戻し動作を高速におこなうと共に、
キャッシュメモリから共有メモリへの書き戻し動作のた
めに共有メモリへのデータアクセスを一時中断されてい
たCPUからのアクセスを高速に再実行する。 【構成】 共有メモリバスアービタに一時中断されたC
PUを記憶する手段と書き戻し動作の終了後、記憶して
いたCPUにバスを明け渡す手段を持つ。これよりCP
Uが書き戻し動作のために一時中断されてから再実行が
終了するまでを動的メモリの一連のメモリアクセスサイ
クルとして動作する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、密結合型マルチプロセ
ッサシステム等において用いられる共有メモリへのメモ
リアクセス装置に関するものである。
【0002】
【従来の技術】従来の密結合型マルチプロセッサシステ
ム等には、各CPUは独立にデータ領域(プログラムも
特有のデータとして含む)として各CPU毎にローカル
メモリを装備し、各CPU間の共有のデータ領域として
一つの共有メモリを装備するものがある。更にCPUの
もつパフォーマンスを十分に引き出せるように各CPU
にはCPUとローカルメモリの間にキャッシュメモリを
装備するシステムが一般的である。
【0003】まず図1に示す従来の密結合型マルチプロ
セッサシステムを示す。
【0004】図1に示すように各CPU11,12は独
立にキャッシュメモリコントローラ(図示せず)を備え
たキャッシュメモリ21,22を持つ。このキャッシュ
メモリ21,22はCPU11,12へデータを高速に
転送するためのものであり、ローカルメモリ31,32
あるいは共有メモリ4に格納されているデータのコピー
をデータとして持っている。またCPU11,12はキ
ャッシュメモリ21,22を通し共有メモリバスを介し
て共有メモリ4と接続されている。また各CPU11,
12はキャッシュメモリ21,22を介しそれぞれ各ロ
ーカルメモリコントローラ(図示せず)を備えたローカ
ルメモリ31,33を持つ。このローカルメモリ31,
32は各CPU11,12の独立した主記憶メモリであ
り、ローカルメモリ31のデータはキャッシュメモリ2
1を介しCPU11にアクセスされ、CPU12からは
アクセスできない。同様にローカルメモリ32のデータ
はキャッシュメモリ22を介しCPU21にアクセスさ
れ、CPU11からはアクセスできない。また共有メモ
リ4は各CPU11,12の共有のデータを有し、各C
PU11,12から共にキャッシュメモリ21,22お
よび共有メモリバスを介しデータを参照することができ
る。この共有メモリ4をコントロールする回路が共有メ
モリコントローラ5である。また共有メモリバスアービ
ター6はCPU11ないしCPU21が共有メモリバス
を介し共有メモリ4をアクセスする際に共有メモリバス
のバス調停をおこなう機能を含んだ共有メモリバス監視
回路である。
【0005】このような密結合型マルチプロセッサシス
テムにおいては、各CPUが持つキャッシュメモリには
各ローカルメモリ内の一部のデータブロックのコピーが
存在しているだけでなく、共有メモリ内のデータブロッ
クのコピーも存在している。
【0006】このようなシステムでは共有メモリ内のデ
ータブロックは各CPUに共通にアクセスされるべきも
のであるので、システム内に存在する各キャッシュメモ
リ上に持っている共有メモリ内のデータブロックのコピ
ーは全て常に同一の値でなければならない。従ってある
CPUが共有メモリ内のデータを書換えたとすると、そ
の共有メモリ内のデータブロックのコピーを持っている
各キャッシュメモリの該当するデータブロックをも常に
最新の値に更新するキャッシュメモリの更新制御が必要
である。
【0007】密結合型マルチプロセッサシステムにおい
て、上述のようにキャッシュメモリと共有メモリの対応
するデータの同一性を保つためのキャッシュメモリの更
新制御は、各キャッシュメモリ内のデータブロックの中
で共有メモリ内のデータが存在し、かつそのデータを書
換える必要性が発生した場合である。キャッシュメモリ
内のデータの内容の更新と共有メモリ内のデータの更新
の方式には2つあり、一方がライトスルー(Write Throu
gh)という方式、もう一方がコピーバック(CopyBack)と
いう方式である。
【0008】ライトスルー方式は、ある共有メモリ内の
データに対してCPUが書き込み動作をおこなうとする
と、その書き込みデータは共有メモリに対して書き込み
実行される。すなわちキャッシュのヒット・ミスヒット
に関係なく共有メモリが書き換えられる。そして他のC
PUが持つキャッシュメモリを調べ、もし書き込みがな
された共有メモリのブロックのコピーが存在すれば、そ
のブロックを無効にすれば良い。このようにライトスル
ー方式では常に共有メモリ内のデータは最新のデータで
あることが保証される。これに対しコピーバック方式
は、ある共有メモリ内のデータに対してCPUが書き込
み動作をおこなうとすると、その書き込みデータはその
CPUが持つキャッシュメモリ内の共有メモリからコピ
ーされたデータブロックに対してのみ書き込み実行され
る。つまり共有メモリ内のデータが常に最新のデータで
ある保証はない。そのため共有メモリ内のデータと各キ
ャッシュメモリが持つ共有メモリ内の該当データブロッ
クとのデータの同一性を保つ方法としてスヌーピング(s
nooping)というバス監視方法を用いる。
【0009】スヌーピングによるバス監視方法では、各
CPUがキャッシュメモリを介し共有メモリバスに出力
するアドレスを他のキャッシュメモリに備えられている
キャッシュコントローラが監視をし、その共有メモリに
対するデータが自分のキャッシュメモリに存在し、かつ
そのデータが共有メモリと異なるデータに変更されてい
れば、共有メモリがアクセスされる前に自分のキャッシ
ュメモリ内の該当データを共有メモリに書き戻し(write
back)をおこなってから、共有メモリにアクセスをおこ
なわせることによりデータの同一性を保つ。 コピーバ
ック方式での共有メモリ内のデータと各キャッシュメモ
リ内のデータとのコヒーレンシを保つための具体的な方
法として、各CPUがデータの読み出し時と書き込み時
に大別し図2,図3を使い説明する。なお図2,図3に
記載された番号で図1で記載されたものと同じものは同
じ番号を使用している。
【0010】各CPUが共有メモリ内のデータを読み出
し時にキャッシュメモリ内に該当するデータのブロック
が存在しない場合(キャッシュミス)は2つある。第1
の場合は、一方のCPUが読み出しをおこないたい共有
メモリ内のデータが他のCPUのキャッシュメモリには
存在しないか存在しても同一のデータである場合であ
る。第2の場合は、もう一方のCPUが読み出しをおこ
ないたい共有メモリ内のデータが他のCPUのキャッシ
ュメモリに存在し、かつ他のCPUのキャッシュメモリ
に存在するデータは既に変更されている場合である。
【0011】(1)図2で第1の場合を説明する。CP
U11がキャッシュミスにより共有メモリ4内のデータ
8aを読み出す時、他のキャッシュメモリ22に共有メ
モリ4内のデータと同じデータ8aが存在する。この場
合はCPU11は共有メモリ4内のデータ8aを自分の
キャッシュメモリ21のデータ8bにコピー10すると
同時にCPU11はデータ8aを取り込む。ここで、他
のキャッシュメモリ22内にデータ8aが存在しない場
合も同様でCPU11は共有メモリ4内のデータ8aを
自分のキャッシュメモリ21のデータ8bにコピー10
すると同時にCPU11はデータ8aを取り込む。
【0012】(2)図3で第2の場合を説明する。CP
U11がキャッシュミスにより共有メモリ4内のデータ
8aを読み出す時、他のキャッシュメモリ22に共有メ
モリ4内のデータと同じで、かつ既にCPU12により
データ8aからデータ8cに変更されているとする。そ
の場合CPU11から共有メモリ4内のデータ8aへの
アクセス9を一時中断し、キャッシュメモリ内のデータ
8cを共有メモリ4内のデータ8aに書き戻し13を
し、再度CPU11からのアクセス9を再開し、書き戻
しにより更新された共有メモリ4内のデータ8aを自分
のキャッシュメモリ21内のデータ8bにコピー10す
ると同時にCPU11はデータ8aを取り込む。
【0013】(3)各CPUが共有メモリ内のデータを
読み出し時、自分のキャッシュがヒットした場合は、他
のキャッシュメモリ内にはそのデータを既に更新し、共
有メモリ内のデータにまだ反映していないたデータ(す
なわち自分のキャッシュメモリ内のデータと異なるデー
タ)が存在することはない(後述)ので、自分のキャッ
シュがヒットした場合はそのデータを各CPUは読み出
す。
【0014】次に各CPUが共有メモリ内のデータを書
き込む場合を説明する。書き込み時の場合の動作は複雑
で、自分のキャッシュメモリのヒット、ミスヒットによ
りそれぞれ2つの場合がある。ミスヒットした場合、読
み出し時の場合と同様である。第1の場合は、CPUが
書き込みをおこないたい共有メモリ内のデータが他のキ
ャッシュメモリには存在しないか存在しても同一のデー
タである場合である。第2の場合は、CPUが書き込み
をおこないたい共有メモリ内のデータが他のキャッシュ
メモリに存在し、かつ他のキャッシュメモリに存在する
データは既に変更されている場合である。
【0015】(4)図2で第1の場合を説明する。CP
U11がキャッシュミスにより共有メモリ4内のデータ
8aを書き込む時、他のキャッシュメモリ22に共有メ
モリ4内のデータと同じデータ8aが存在する。この場
合はCPU11は共有メモリ4内のデータ8aを自分の
キャッシュメモリ21にデータ8bをコピー10し、そ
の後、CPU11は自分のキャッシュメモリ内のデータ
8bに書き込みをおこなうと同時に共有メモリ内のデー
タ8aにも書き込みをおこない、他のキャッシュメモリ
内のデータ8aは無効化され、古いデータのままでキャ
ッシュヒットがなされることを防止する。ここで、他の
キャッシュメモリ22内にデータ8aが存在しない場合
も同様である。
【0016】(5)図3で第2の場合を説明する。CP
U11がキャッシュミスにより共有メモリ4内のデータ
8aを書き込む時、他のキャッシュメモリ22に共有メ
モリ4内のデータと同じで、かつ既にCPU12により
データ8aからデータ8cに変更されているとする。そ
の場合CPU11から共有メモリ4内のデータ8aへの
アクセス9を一時中断し、キャッシュメモリ内のデータ
8cを共有メモリ4内のデータ8aに書き戻し13を
し、再度CPU11からのアクセス9を再開し、書き戻
しにより更新された共有メモリ4内のデータ8aを自分
のキャッシュメモリ21内のデータ8bにコピー10
し、その後、CPU11は自分のキャッシュメモリ内の
データ8bに書き込みをおこなうと同時に共有メモリ内
のデータ8aにも書き込みをおこない、他のキャッシュ
メモリ内のデータ8acは無効化され、古いデータのま
までキャッシュヒットがなされることを防止する。
【0017】次に共有メモリ内への書き込み時において
自分のキャッシュがヒットした場合である。第1の場合
は、CPUの書き込みが自分のキャッシュメモリ内のデ
ータに対して該当するデータが初めて書き込みをおこな
う場合である。第2の場合は、CPUが既に書き込みを
なされた自分のキャッシュメモリ内のデータに対し他の
キャッシュメモリ内には該当データが存在せず、再度自
分のキャッシュメモリ内のデータに対し書き込みがなさ
れる場合とがある。
【0018】(6)前者の場合、書き込みはキャッシュ
ヒットした自分のキャッシュメモリ内のデータに対して
なされると同時に共有メモリ内の該当データに対しても
なされる。この時他のキャッシュメモリ内に該当データ
が存在する場合は、他のキャッシュメモリ内の該当デー
タは無効化される。
【0019】(7)後者の場合、書き込みはキャッシュ
ヒットした自分のキャッシュメモリ内のデータに対して
のみなされる。
【0020】コピーバック方式でのスヌーピングによる
バス監視方法では前記に記すように(1)ないし(7)
の方法をとるシステムが一般的である。
【0021】ここで前記(2)および(5)について着
目すると、あるCPUからのアクセスを一時中断し、他
のキャッシュメモリ内のデータを共有メモリ内の該当す
るデータに書き戻しをおこなってから再度前記CPUか
らのアクセスを再開するというリトライ動作が必要にな
る。次に図1,図4,図5,図6,図7でリトライ動作
について詳細に説明する。
【0022】前記(2)および(5)における前記リト
ライ動作は図1でCPU11が共有メモリ4内のデータ
をアクセスする際、キャッシュメモリ21がミスヒット
をしキャッシュメモリ21を介し共有メモリ4内のデー
タををアクセスするアクセス信号を共有メモリバスに出
力する。他のキャッシュメモリ22が前記共有メモリの
アクセスをスヌーピングにより共有メモリバスをバス監
視をし、他のキャッシュメモリ22には既に変更された
該当データをもっている時に他のキャッシュメモリ22
からリトライ信号7を使って共有メモリバスを通して共
有メモリバスアービタ6に入力され、共有メモリコント
ローラ5により共有メモリ4をリトライ動作する。ここ
で共有メモリバスアービタ6は図4に記すようにバスア
ービトレーションを制御するための基本クロックである
clock信号と前記リトライ動作であることを示すキ
ャッシュメモリから出力されるretry信号7とCP
U11が共有メモリバスをバス要求するためのbrq1
信号とCPU21が共有メモリバスをバス要求するため
のbrq2信号と前記共有メモリバス要求信号brq
1,brq2信号を共有メモリバスアービタ6が受け、
共有メモリバスのバスマスタがCPU11であることを
認可するためのbg1信号あるいはバスマスタがCPU
21であることを認可するためのbg2信号と前記バス
認可信号bg1,bg2信号を各CPUが受け、CPU
11がbg1信号によりバス認可確認し、バスマスタで
あることを応答するためのback1信号あるいはCP
U21がbg2信号によりバス認可確認し、バスマスタ
であることを応答するためのback2信号と共有メモ
リバスがバス使用中であることを示すためのbbusy
信号を入出力信号として持っている。一方共有メモリコ
ントローラ5は図5に記すように動的メモリ(DRA
M)をアクセスするためのras信号とcas信号とw
e信号を出力するブロックである。各CPUから出力さ
れるアドレスaddr信号をアドレスストローブas信
号でデコーダ14によりデコードしmomory信号を
出力する。momory信号はrasジェネレータ15
とcasジェネレータ16とweジェネレータ17に入
力され、rasジェネレータ15では基本クロックであ
るclock信号とリトライ動作を示すretry信号
7とmemory信号からras信号を出力し、cas
ジェネレータ16ではclock信号とretry信号
7とmemory信号とras信号からcas信号を出
力し、weジェネレータ17ではclock信号とme
mory信号と共有メモリへのデータ書き込みを記すw
rite信号からwe信号を出力する。
【0023】図6は従来のマルチプロセッサシステム等
における共有メモリバスアービタ6のリトライ動作を動
作フローとして記したものである。図7は従来のマルチ
プロセッサシステム等における共有メモリへのリトライ
動作時のアクセスタイミングを記したものである。なお
図7に記される各タイミング信号は前記図4および図5
で記された信号と同一の信号として同一信号名を用いて
いる。共有メモリバスアービタ6はretry信号が発
生するまで(retry信号発生19のNo)リトライ
動作以外の通常のアービタとして動作している18。こ
こで図7でt1においてCPU11から共有メモリをア
クセスするために共有メモリバスリクエストbrq1が
活性化され共有メモリバスアービタ6に入力されると共
有メモリバスアービタ6からバス認可bg1信号が活性
化され、bg1信号の活性化がCPU11に伝達されC
PU11はバス認可応答back1を活性化すると共に
共有メモリバスアービタ6は共有メモリバス使用中bb
usy信号を活性化し、共有メモリをアクセスするため
ras信号を活性化し始める。次に他のキャッシュメモ
リ22においてCPU11がアクセスしようとしている
共有メモリ内の該当データが既に変更されているためリ
トライ動作をするためにretry信号を他のキャッシ
ュメモリ22が活性化する。retry信号活性化は共
有メモリバスアービタ6に伝達され共有メモリバスアー
ビタ6は図6においてretry信号発生Yesにフロ
ーが移る。他のキャッシュメモリ22からのretry
信号の活性化と同時に他のキャッシュメモリ22の該当
データを共有メモリに書き戻しをおこなうためCPU2
1は共有メモリバスを獲得するためbrq2信号を活性
化する。共有メモリバスアービタ6はbrq2信号を受
け動作フロー20においてretry信号発生CPU2
1に共有メモリバスを明け渡す動作をする。この明け渡
し動作はt2ないしt3においてなされ、t2ではre
try信号とbrq2信号を受けた共有メモリバスアー
ビタ6はbg2信号を活性化すると共にbbusy信号
を不活性化し、bbusy信号の不活性化をCPU11
が受けCPU11はback1信号を不活性化し、CP
U21に共有メモリバスを明け渡すため共有メモリバス
を開放する。共有メモリバスが開放されるとretry
信号は不活性化され共有メモリ4をアクセスするための
ras信号は不活性化する。共有メモリバスが開放され
た後、t3においてCPU21が書き戻しの動作のため
にgrq2信号を不活性化しback2信号を活性化
し、back2信号の活性化により共有メモリバスアー
ビタ6はbbusy信号を再び活性化しbg2信号を不
活性化しCPU21に共有メモリバスを明け渡す。共有
メモリバスアービタ6はここで、CPU21が書き戻し
の動作を終了するまで23のNoのフローを繰り返す。
CPU11はCPU21の書き戻し動作が終了すると再
び共有メモリバスを獲得できるようにbrq1信号を活
性化し共有メモリバスアービタ6はbrq1信号に応答
しbg1信号を活性化する。一方CPU21は自分のキ
ャッシュメモリ22内の該当データを共有メモリに書き
戻し動作をおこなうため、共有メモリコントローラ5に
write信号を入力しwe信号を活性化させ、共有メ
モリコントローラ5は基本クロックを元に動的メモリを
アクセスするために必要なタイミングでras信号とc
as信号を活性化していく。t4はCPU21による共
有メモリ4へのデータ書き戻し動作終了を示す。CPU
21から共有メモリ4へのデータ書き戻し終了では共有
メモリコントローラ5から出力されるras信号とca
s信号の不活性化後we信号が不活性化になり、CPU
21はback2信号を不活性化し共有メモリコントロ
ーラ5はbbusy信号を不活性化することでデータ書
き戻し動作終了を示す。ここで共有メモリバスアービタ
6の動作フローは書き戻し動作終了のYesによりリト
ライ動作以外の通常のアービタ動作18に戻る。t5に
おいてCPU11はCPU21による書き戻し動作によ
り中断されていた共有メモリ4へのアクセスを再実行す
るためbg1信号の活性化状態を確認し、back1信
号を活性化しbrq1信号を不活性化する。共有メモリ
バスアービタ6はback1信号を活性化によりbbu
sy信号を活性化し共有メモリバスをCPU11に明け
渡す。共有メモリコントローラ5は再度基本クロックを
元に動的メモリをアクセスするために必要なタイミング
でras信号とcas信号を活性化していく。t6にお
いてras信号とcas信号の不活性化後、CPU11
はback1信号を不活性化することで共有メモリバス
アービタ6はbbusy信号を不活性化し共有メモリバ
スを開放する。図7におけるt1−t2間(24)はC
PU11の共有メモリ4へのアクセスからアクセス中断
までの区間であり、t3−t4間(25)はCPU21
の自分のキャッシュメモリ22の該当データを共有メモ
リ4への書き戻し期間であり、t5−t6間(26)は
CPU11の共有メモリ4へのアクセス再実行の区間で
ある。
【0024】また図7における区間27は共有メモリ4
が動的メモリで構成されているがゆえ動的メモリのプリ
チャージ時間を保証するための区間である。また区間2
8は共有メモリへのアクセスを一時中断されていたCP
Uが共有メモリへのアクセスを再実行するためにバスを
再度獲得する区間である。しかし本実施例ではCPUが
2個の場合について説明したが、本実施例の構成はCP
Uが2個以上のシステムについても同様であり、CPU
が2個より多い場合、共有メモリへのアクセスを一時中
断されていたCPUが区間28において再度バスを獲得
できるとは限らず、一時中断されていたCPU以外のC
PUがバスを獲得する時もある。
【0025】前記に記すごとく従来の密結合型マルチプ
ロセッサシステム等ではコピーバックのためのバススヌ
ーピング動作によるデータの書き戻し動作が必要であ
り、それゆえ前記スヌーピング動作によるデータの書き
戻し動作はマルチプロセッサシステム等における固有の
オーバヘッドであり、システム全体でのパフォーマンス
に与える影響は多大なため問題であった。また密結合型
マルチプロセッサシステム等ではあるCPUにて処理を
していたプロセスが他のCPUに処理を移すことが多
く、共有メモリ内の同一データ領域を複数のCPUが同
時にアクセスすることの多いため前記のようにキャッシ
ュメモリ内のデータの一貫性を保つためのスヌーピング
動作によるデータの書き戻し動作が頻繁に発生する。そ
のためスヌーピング動作による結果発生するデータの書
き戻し動作を如何に早く処理するかにより、密結合型マ
ルチプロセッサシステム等でのシステム全体のパフォー
マンスの向上をはかるかが問題であった。
【0026】
【発明が解決しようとしている課題】この発明は上記問
題点に鑑みたてなされたものであり、密結合型マルチプ
ロセッサシステム等におけるキャッシュメモリのスヌー
ピング動作による結果発生する制御信号により、共有メ
モリバスアービタが共有メモリバスと共有メモリコント
ローラを制御し、前記スヌーピング動作の結果発生した
キャッシュメモリからの共有メモリへの書き戻し動作を
高速におこなうと共に、前記キャッシュメモリから共有
メモリへの書き戻し動作のために共有メモリへのデータ
アクセスを一時中断されていたCPUからのアクセスを
高速に再実行することを目的とする。
【0027】
【課題を解決するための手段】本発明は、共有メモリが
動的メモリで構成されている密結合型マルチプロセッサ
システム等において、あるCPUが前記共有メモリ内の
データをアクセスする動作を一時中断し、前記一時中断
されたCPUを記憶し、前記一時中断後別のCPUが前
記共有メモリ内の前記データををアクセスし、前記アク
セス後前記一時中断されたCPUに再度アクセス権を明
け渡し前記共有メモリ内のデータアクセスを再実行し、
かつ前記一時中断と前記アクセスと前記明け渡し動作と
前記再実行を一連のメモリアクセスとしていることを特
徴とする。
【0028】
【実施例】密結合型マルチプロセッサシステム等でキャ
ッシュメモリのコピーバック方式でのキャッシュメモリ
のスヌーピング動作によるキャッシュメモリから動的メ
モリで構成される共有メモリへの書き戻し動作におい
て、書き戻しの対象となるキャッシュメモリのラインサ
イズが2のn乗バイトであり、共有メモリを構成する動
的メモリの列アドレスには前記nビットが全て含まれて
いる場合、書き戻し動作を発生させたCPUから共有メ
モリへのブロックデータアクセスと、他のCPUが共有
メモリへの書き戻し動作をおこなうブロックデータアク
セスとは同一メモリブロックをアクセスすることにな
る。一方動的メモリへのアクセスにおいて行アドレスが
同一のブロック内へのアクセスでは、行アドレスストロ
ーブ(ras)信号を活性化し続けることにより同一ブ
ロック内のデータを一連の一つのメモリサイクルとして
アクセスできることは公然の事実である。すなわち密結
合型マルチプロセッサシステム等でキャッシュメモリの
コピーバック方式でのキャッシュメモリのスヌーピング
動作により、あるCPUからの動的メモリで構成される
共有メモリ内のデータへのアクセスを一時中断し、他の
キャッシュメモリから該当するデータを共有メモリ内の
データに書き戻しし、書き戻し動作が終了した後、一時
中断されていたCPUから共有メモリ内のデータへのア
クセスの再実行において、前記動的メモリへの一連の一
つのメモリサイクルを適用することが可能である。図9
は図7で従来の書き戻し動作を記したタイミングにおい
て前記動的メモリへの一連の一つのメモリサイクルを適
用したタイムチャートである。そして図8は本発明の共
有メモリバスアービタの動作フローを記したものであ
り、図9における動的メモリへの一連の一つのメモリサ
イクルとして動作できるように図6の従来の共有メモリ
バスアービタの動作フローを変更したものである。
【0029】本発明の実施例を図4,図5,図8,図9
で詳細に説明する。ここで図8,図9で記される共有メ
モリバスアービタの動作フローおよび各タイミング信号
は図4および図5で記された信号と同一の信号として同
一信号名を用いている。また、従来の共有メモリバスア
ービタの動作フローを記した図6および従来のタイミン
グを記した図7に記載されている動作および各信号で同
一番号で記されているものは同一の動作および信号を記
している。共有メモリバスアービタ6はretry信号
が発生するまで(retry信号発生19のNo)リト
ライ動作以外の通常のアービタとして動作している1
8。ここで図9でt1においてCPU11から共有メモ
リをアクセスするために共有メモリバスリクエストbr
q1が活性化され共有メモリバスアービタ6に入力され
ると共有メモリバスアービタ6からバス認可bg1信号
が活性化され、bg1信号の活性化がCPU11に伝達
されCPU11はバス認可応答back1を活性化する
と共に共有メモリバスアービタ6は共有メモリバス使用
中bbusy信号を活性化し、共有メモリをアクセスす
るためras信号を活性化し始める。次に他のキャッシ
ュメモリ22においてCPU11がアクセスしようとし
ている共有メモリ内の該当データが既に変更されている
ため該当データを共有メモリ4内の該当データに書き戻
し動作をするためにretry信号を他のキャッシュメ
モリ22が活性化する。retry信号の活性化は共有
メモリバスアービタ6に伝達され共有メモリバスアービ
タ6は図8においてretry信号発生Yesにフロー
が移る。次に共有メモリバスアービタ6は書き戻し動作
のためにCPU11から共有メモリ4へのメモリアクセ
スを一時中断し、書き戻し動作が終了した時点で再度C
PU11から共有メモリ4へのメモリアクセスを再実行
するために現在の共有メモリバスのバスマスタであるC
PU11をアービタ内に設けられたレジスタに記憶する
29。他のキャッシュメモリ22からのretry信号
の活性化と同時に他のキャッシュメモリ22の該当デー
タを共有メモリに書き戻しをおこなうためCPU21は
共有メモリバスを獲得するためbrq2信号を活性化す
る。共有メモリバスアービタ6はbrq2信号を受け動
作フロー20においてretry信号発生CPU21に
共有メモリバスを明け渡す動作をする。この明け渡し動
作はt2ないしt3においてなされ、t2ではretr
y信号とbrq2信号を受けた共有メモリバスアービタ
6はbg2信号を活性化すると共にbbusy信号を不
活性化し、bbusy信号の不活性化をCPU11が受
けCPU11はback1信号を不活性化し、CPU2
1に共有メモリバスを明け渡すため共有メモリバスを開
放する。共有メモリコントローラ5はretry信号7
が入力されると共有メモリバスは開放されるがリトライ
動作が終了するまでras信号を活性化し続ける。共有
メモリバスが開放されるとretry信号は不活性化さ
れる。共有メモリバスが開放された後、t3においてC
PU21が書き戻しの動作のためにgrq2信号を不活
性化しback2信号を活性化し、back2信号の活
性化により共有メモリバスアービタ6はbbusy信号
を再び活性化しbg2信号を不活性化しCPU21に共
有メモリバスを明け渡す。共有メモリバスアービタ6は
ここで、CPU21が書き戻しの動作を終了するまで2
3のNoのフローを繰り返す。CPU11はCPU21
の書き戻し動作が終了すると再び共有メモリバスを獲得
できるようにbrq1信号を活性化し共有メモリバスア
ービタ6はbrq1信号に応答しbg1信号を活性化す
る。一方CPU21は自分のキャッシュメモリ22内の
該当データを共有メモリに書き戻し動作をおこなうた
め、共有メモリコントローラ5にwrite信号を入力
しwe信号を活性化させ、共有メモリコントローラ5は
基本クロックを元に動的メモリをアクセスするために必
要なタイミングでcas信号を活性化し書き戻し動作を
実行していく。ここでras信号は書き戻し動作のため
に図7に記すように不活性化されず、一連の同一メモリ
ブロックのアクセスとしてras信号を活性化し続けて
いるので図7における区間26のような動的メモリ固有
のプリチャージ時間が必要でなくなり、メモリアクセス
が早く開始できる。次にt4はCPU21による共有メ
モリ4へのデータ書き戻し動作終了を示す。CPU21
から共有メモリ4へのデータ書き戻し終了では共有メモ
リコントローラ5から出力されるras信号は活性化の
状態を続け、cas信号のみ不活性化し、その後we信
号が不活性化になり、CPU21はback2信号を不
活性化し共有メモリコントローラ5はbbusy信号を
不活性化することでデータ書き戻し動作終了を示す。こ
こで共有メモリバスアービタ6の動作フローは書き戻し
動作終了のYesにより前記29で記憶していた共有メ
モリバスのバスマスタであるCPU11にバスを明け渡
す動作に入る30。この明け渡し動作はt5においてで
あり、t5ではCPU11はCPU21による書き戻し
動作により中断されていた共有メモリ4へのアクセスを
再実行するためbg1信号の活性化状態を確認し、ba
ck1信号を活性化しbrq1信号を不活性化する。共
有メモリバスアービタ6はback1信号を活性化によ
りbbusy信号を活性化し共有メモリバスをCPU1
1に明け渡す。共有メモリコントローラ5は再度基本ク
ロックを元に動的メモリをアクセスするために必要なタ
イミングでcas信号を活性化していく。ここで前記の
書き込み動作の開始と同様、ras信号は書き戻し動作
のために図7に記すように不活性化されず、一連の同一
メモリブロックのアクセスとしてras信号を活性化し
続けているので図7における区間26のような動的メモ
リ固有のプリチャージ時間が必要でなくなり、メモリア
クセスが早く開始できる。次にt6において一連の同一
メモリブロックのアクセスが終了するので共有メモリコ
ントローラ5はras信号とcas信号の不活性化し、
CPU11はback1信号を不活性化することで共有
メモリバスアービタ6はbbusy信号を不活性化し共
有メモリバスを開放する。図9におけるt1−t2間
(24)はCPU11の共有メモリ4へのアクセスから
アクセス中断までの区間であり、t3−t4間(25
a)はCPU21の自分のキャッシュメモリ22の該当
データを共有メモリ4への書き戻し期間であり、t5−
t6間(26a)はCPU11の共有メモリ4へのアク
セス再実行の区間であり、前記に記したように本発明で
はリトライ動作においては動的メモリの一連の同一メモ
リブロックのアクセスとしてras信号を活性化し続け
アクセスさすために図7に記すような従来のリトライ動
作における区間27が不必要となり、書き戻し動作およ
びリトライ動作が早く実行できる。
【0030】また実施例では2個のCPUで構成される
密結合型マルチプロセッサシステムについて説明した
が、本発明はCPUが2個だけでなく3個以上の複数の
CPUで構成される密結合型マルチプロセッサシステム
についても同様である。ここで、従来の複数のCPUで
構成される密結合型マルチプロセッサシステムでは共有
メモリへのアクセスを一時中断されていたCPUが区間
28において再度バスを獲得できるとは限らず、一時中
断されていたCPU以外のCPUがバスを獲得する時も
あったが、本発明では共有メモリバスアービタ6が書き
戻し動作の終了時点t4において必ず一時中断されてい
たCPUに共有メモリバスを明け渡すために一時中断さ
れていたCPUを共有メモリバスアービタ6が記憶して
おり、一時中断されていたCPUに該当する共有メモリ
バスリクエスト認可信号(bg#信号:#は一時中断さ
れていたCPUの番号を表す)を必ず出力するように共
有メモリバスアービタ6の動作が組まれている。また、
実施例では共有メモリからのデータの読み取り時、キャ
ッシュがミスヒットした時で、かつ他のキャッシュメモ
リに該当するデータが既に変更されていた時に発生する
データの書き戻し動作およびリトライ動作について説明
しているが、共有メモリからのデータの書き込み時に発
生する書き戻し動作およびリトライ動作についても同様
なことがいえるので省略する。
【0031】
【発明の効果】この発明によれば、キャッシュのスヌー
ピング動作の結果により発生するあるCPUの共有メモ
リへのアクセスを一時中断し、他のCPUが自分のキャ
ッシュメモリの該当データを共有メモリに書き戻し、再
度一時中断されたCPUに共有メモリバスを明け渡し、
共有メモリへのアクセスを再実行する一連の動作を動的
メモリの同一ブロックの連続アクセスに適用できるよう
に共有メモリバスアービタおよび共有メモリコントロー
ラを構成しているので、従来のシステムより早くメモリ
アクセスができる。すなわちあるCPUにて処理をして
いたプロセスが他のCPUに処理を移すことが多く、共
有メモリ内の同一データ領域を複数のCPUが同時にア
クセスすることの多い密結合型マルチプロセッサシステ
ム等においては、特にこの固有のオーバーヘッドを最小
限に小さくできるという効果がある。
【図面の簡単な説明】
【図1】密結合型マルチプロセッサシステムのブロック
図である。
【図2】あるCPUが共有メモリ内のデータをアクセス
する時、他のキャッシュメモリ内に共有メモリ内のデー
タと同一のデータが存在する場合のブロック図である。
【図3】あるCPUが共有メモリ内のデータをアクセス
する時、他のキャッシュメモリ内に共有メモリ内のデー
タと同一のデータが存在し、かつそのデータが既に変更
されている場合のブロック図である。
【図4】共有メモリバスアービタのブロック図である。
【図5】共有メモリコントローラのブロック図である。
【図6】従来の共有メモリバスアービタの動作フロー図
である。
【図7】従来の書き戻し動作時およびリトライ動作時の
タイムチャートである。
【図8】本発明の共有メモリバスアービタの動作フロー
図である。
【図9】本発明の書き戻し動作時およびリトライ動作時
のタイムチャートである。
【符号の説明】
4 共有メモリ 5 共有メモリコントローラ 6 共有メモリバスアービタ 7 retry信号 11 CPU11 12 CPU12 14 共有メモリのアドレスデコーダ 15 共有メモリへのras信号ジェネレータ 16 共有メモリへのcas信号ジェネレータ 17 共有メモリへのwe信号ジェネレータ 21 キャッシュメモリ21 22 キャッシュメモリ22 27 動的メモリのプリチャージ時間である。 28 記憶したバスマスタにバスを明け渡す区間であ
る。 29 現在のバスマスタを記憶する手段である。 30 記憶したバスマスタにバスを明け渡す手段であ
る。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 共有メモリが動的メモリで構成されてい
    る密結合型マルチプロセッサシステム等において、ある
    CPUが前記共有メモリ内のデータをアクセスする動作
    を一時中断し、前記一時中断されたCPUを記憶し、前
    記一時中断後別のCPUが前記共有メモリ内の前記デー
    タをアクセスし、前記アクセス後前記一時中断されたC
    PUに再度アクセス権を明け渡し前記共有メモリ内のデ
    ータアクセスを再実行し、かつ前記一時中断と前記アク
    セスと前記明け渡し動作と前記再実行を一連のメモリア
    クセスとしていることを特徴とするメモリ監視制御方
    法。
JP4338707A 1992-12-18 1992-12-18 メモリ監視制御方法 Pending JPH06187230A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4338707A JPH06187230A (ja) 1992-12-18 1992-12-18 メモリ監視制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4338707A JPH06187230A (ja) 1992-12-18 1992-12-18 メモリ監視制御方法

Publications (1)

Publication Number Publication Date
JPH06187230A true JPH06187230A (ja) 1994-07-08

Family

ID=18320713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4338707A Pending JPH06187230A (ja) 1992-12-18 1992-12-18 メモリ監視制御方法

Country Status (1)

Country Link
JP (1) JPH06187230A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923898A (en) * 1997-05-14 1999-07-13 International Business Machines Corporation System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched
US6697899B1 (en) 1999-10-20 2004-02-24 Nec Corporation Bus control device allowing resources to be occupied for exclusive access

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923898A (en) * 1997-05-14 1999-07-13 International Business Machines Corporation System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched
US6697899B1 (en) 1999-10-20 2004-02-24 Nec Corporation Bus control device allowing resources to be occupied for exclusive access

Similar Documents

Publication Publication Date Title
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
JP3999821B2 (ja) データ処理システム内でバス仲裁プロトコルを実行する方法および装置
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5426765A (en) Multiprocessor cache abitration
US6438660B1 (en) Method and apparatus for collapsing writebacks to a memory for resource efficiency
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
JPH09138779A (ja) スヌープ処理方法
JPH08328957A (ja) マルチプロセッシング・システムにおけるキャッシュ・パフォーマンス向上のためのシステムおよび方法
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JP4144990B2 (ja) データ処理システム及び初期化方法
US6973541B1 (en) System and method for initializing memory within a data processing system
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
WO1997004392A1 (en) Shared cache memory device
JPH03163640A (ja) マルチプロセッサシステムおよびそれに用いるキャッシュメモリ
JPH06187230A (ja) メモリ監視制御方法
JPH06282528A (ja) データ転送方法及びそのシステム
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JPH06309231A (ja) キャッシュメモリ制御方法
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JPH0962580A (ja) マルチプロセッサ装置
JPH04140860A (ja) マルチプロセッサにおけるバス制御方法
JP3081635B2 (ja) キャッシュメモリの無効化処理装置および無効化制御方法
JP2504323B2 (ja) システムバス制御方法
JP2000181738A (ja) 二重化システム及びメモリ制御方法