JP3219810B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3219810B2
JP3219810B2 JP31855391A JP31855391A JP3219810B2 JP 3219810 B2 JP3219810 B2 JP 3219810B2 JP 31855391 A JP31855391 A JP 31855391A JP 31855391 A JP31855391 A JP 31855391A JP 3219810 B2 JP3219810 B2 JP 3219810B2
Authority
JP
Japan
Prior art keywords
memory
cache
access
shared
data processing
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
JP31855391A
Other languages
English (en)
Other versions
JPH05143454A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP31855391A priority Critical patent/JP3219810B2/ja
Publication of JPH05143454A publication Critical patent/JPH05143454A/ja
Application granted granted Critical
Publication of JP3219810B2 publication Critical patent/JP3219810B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数のデータ処理装置が
共通の資源をアクセスするデータ処理システムに関し、
特に、共通の資源の排他制御のためのメモリ上の特定領
域をキャッシュに取り込むデータ処理装置に関するもの
である。
【0002】
【従来の技術】複数のデータ処理装置が共有の資源をア
クセスする場合の共有資源の排他制御は、一般に複数の
データ処理装置がアクセスするメモリ上の特定領域に対
し、1回のメモリアクセスによりテストと更新を行う特
定のオペレーションにより実現されている。
【0003】上記特定領域は通常「セマフォ領域」と呼
ばれる。また、このオペレーションには、上記セマフォ
領域上の特定の1ビットのリードとセットを1回のメモ
リアクセスにより行う「テスト・アンド・セット」と呼
ばれる方法や、セマフォ領域の値が特定値の場合のみ他
の値に置き換える操作を1回のメモリアクセスにより行
う「コンペア・アンド・スワップ」と呼ばれる方法があ
る。特に、「テスト・アンド・セット」における上記特
定ビットはセマフォビットと呼ばれる。
【0004】ある装置がリードしたセマフォビットが0
なら、対応する共有資源は他装置に占有されていないこ
とを意味し、自装置にアクセス権が得られる。同時にア
クセス権を得た装置はセマフォビットに1を書き込むの
で、他装置はその共有資源に対して、アクセス権を得る
ことができない。上記自装置による共有資源に対するア
クセスが終了すると、その装置はセマフォビットをクリ
アする。以後の「テスト・アンド・セット」の操作にお
けるセマフォビットリードにおいては、0がリードされ
るため他装置はその共有資源に対してアクセス権を得る
ことができる。
【0005】上記の「テスト・アンド・セット」におい
ては、セマフォビットのリードとライトが1回のメモリ
アクセスにより行われるので、一方の装置がセマフォビ
ットをリードしたのち1をセットする前に他装置がセマ
フォビットをリードしてしまい、同時に複数の装置が共
有資源に対してアクセス権を得るということはない。
「コンペア・アンド・スワップ」においても一回のメモ
リアクセスにより、上記操作を行っているので、「テス
ト・アンド・セット」と同様の排他制御が実現できる。
【0006】ところで、従来においては、データ処理装
置にキャッシュメモリが設けられている場合であって
も、上記「テスト・アンド・セット」や「コンペア・ア
ンド・スワップ」を行う場合、キャッシュメモリを使わ
ず、共有メモリを直接アクセスすることにより実現して
いた。これは、上記「テスト・アンド・セット」や「コ
ンペア・アンド・スワップ」においては、1回の操作に
より、セマフォ領域のリードと更新を行っているため、
もし、ある装置が「テスト・アンド・セット」時、リー
ドしたセマフォビット0をキャッシュに書き込んだとす
ると、このセマフォビット0は更新前のものであり、上
記装置は0をリードすると同時に主記憶装置のセマフォ
ビットに1を書き込むから、キャッシュと主記憶装置の
セマフォビットの内容が一致しないという問題が生じる
ためである。
【0007】また、キャッシュは通常複数ワードのブロ
ック単位で構成されているため、通常のメモリアクセス
においては、ブロック単位のリードが有効であるが、セ
マフォビットのリード、ライトにおいては、1ビット単
位のデータのリード、ライトであり、余計なデータをも
含むブロック単位のリードを行うと、かえって遅くなり
性能の低下につながるという欠点があった。
【0008】しかしながら、上記のように共有資源を複
数の装置が頻繁にアクセスする場合、「テスト・アンド
・セット」の操作も頻繁に行われることとなる。そし
て、一方の装置が共有資源のアクセス権を得ている間、
他の装置がその共有資源のアクセス権を得たい場合、一
方の装置がセマフォビットをクリアするまで、「テスト
・アンド・セット」の操作を繰り返すこととなる。この
「テスト・アンド・セット」の操作はキャッシュを使わ
ず、直接メモリにアクセスすることとなるから、メモリ
の使用率が著しく高まり、メモリビジイにより、他の装
置のメモリアクセスが待たされる確率が高くなり、シス
テム全体の効率が低下するという欠点があった。
【0009】
【発明が解決しようとする課題】本発明は上記従来技術
の欠点を改善するためになされたものであって、キャッ
シュメモリを持つデータ処理装置において、「テスト・
アンド・セット」などの特定のオペレーションにより、
共有資源を排他制御するため共有メモリ上の特定領域を
アクセスする場合にもキャッシュメモリを有効に活用で
きるようにすることにより、システムの効率を向上する
ことを目的にする。
【0010】
【課題を解決するための手段】上記課題を解決するため
本発明の請求項1のものは、図1に示すように、複数の
データ処理装置1,3と、上記複数のデータ処理装置
1,3がアクセスする共有資源と共有メモリを備え、上
記共有メモリ4上に設けられた特定領域4aに対し、一
回のメモリアクセスによりテストと更新を行う特定のオ
ペレーションにより上記共有資源の排他制御を実現する
システムにおけるデータ処理装置において、該データ処
理装置はキャッシュメモリ1bとキャッシュ制御装置1
cとを備え、上記キャッシュメモリ1bは、通常のメモ
リアクセスにおけるキャッシュメモリとして使用される
とともに、上記特定領域のコピーを保持するためのキャ
ッシュメモリとしても使用され、上記キャッシュ制御装
置1cは、アクセス情報を解読し、通常のメモリアクセ
スか、特定のオペレーションによるメモリアクセスかを
判別する手段を備えている。そして、上記キャッシュ制
御装置1cは、上記特定のオペレーションにより共有メ
モリ4上の特定領域4aをリードする際、上記手段によ
りメモリアクセスが特定のオペレーションによるメモリ
アクセスが否かを判別するものであり、特定のオペレー
ションによるメモリアクセスの、そのキャッシュメモ
リ1bに特定領域4aのコピーが存在しなかった場合
、共有メモリ4に対する特定のオペレーションを依頼
し、共有メモリから転送される更新前の特定領域のデー
タをデータ処理装置内のプロセッサ1aに送出するとと
もに、更新前の特定領域のデータをキャッシュメモリ1
bにも書き込む。また、キャッシュメモリ1bに特定領
域4aのコピーが存在する場合にはキャッシュメモリ1
のみにアクセスして共有メモリ4にはアクセスしな
い。そして、上記キャッシュ制御装置1cは、他のデー
タ処理装置が共有メモリ4の特定領域4aにライトを行
った場合には、キャッシュメモリ1bを無効化する。請
求項2のものは、複数のデータ処理装置1,3と、上記
複数のデータ処理装置1,3がアクセスする共有資源と
共有メモリを備え、上記共有メモリ4上に設けられた特
定領域4aに対し、一回のメモリアクセスによりテスト
と更新を行う 特定のオペレーションにより上記共有資源
の排他制御を実現するシステムにおけるデータ処理装置
において、該データ処理装置はキャッシュメモリ1bと
キャッシュ制御装置1cとを備え、上記キャッシュメモ
リ1bは、通常のメモリアクセスにおけるキャッシュメ
モリとして使用されるとともに、上記特定領域のコピー
を保持するためのキャッシュメモリとしても使用され、
上記キャッシュ制御装置1cは、アクセス情報を解読
し、通常のメモリアクセスか、特定のオペレーションに
よるメモリアクセスかを判別する手段を備えている。そ
して、上記キャッシュ制御装置1cは、通常のメモリア
クセスのには、アドレスの上位ビットを比較すること
により、キャッシュにヒットするか否かを判定し、キャ
ッシュミスヒットの場合には、上記共有メモリ4にブロ
ック単位でアクセスして、ブロック単位のリードデータ
を上記キャッシュメモリ1bに書き込むとともに所望の
データをデータ処理装置内のプロセッサ1aに送出
る。また、特定のオペレーションによるメモリアクセス
際には、アドレスの全ビットを比較することにより、
キャッシュにヒットするか否かを判定し、特定のオペレ
ーションによるメモリアクセスに対する上記判定の結
果、そのキャッシュメモリ1bに特定領域4aのコピー
が存在しなかった場合には、共有メモリ4に対する特定
のオペレーションを依頼し、共有メモリ4から転送され
更新前の特定領域のデータをデータ処理装置のプロ
セッサ1aに送出するとともに、上記更新前の特定領域
4aデータが他のデータ処理装置による共有資源のア
クセス中であることを示す特定値であった場合のみ特定
値をキャッシュメモリ1bにライトするさらに、上記
キャッシュ制御装置1cは、特定のオペレーションによ
るメモリアクセスに対する上記判定の結果、キャッシュ
メモリ1bに特定領域のコピーが存在する場合には、キ
ャッシュメモリ1bのみにアクセスして共有メモリには
アクセスしない。そして、上記キャッシュ制御装置1c
は、他のデータ処理装置が共有メモリの特定領域にライ
トを行った場合には、キャッシュメモリ1bを無効化す
る。請求項3のものは、複数のデータ処理装置1,3
と、上記複数のデータ処理装置1,3がアクセスする共
有資源と共有メモリを備え、上記共有メモリ4上に設
られた特定領域4aに対し、一回のメモリアクセスによ
りテストと更新を行う特定のオペレーションにより上記
共有資源の排他制御を実現するシステムにおけるデータ
処理装置において、該データ処理装置はキャッシュメモ
リ1bとキャッシュ制御装置1cとを備え、上記キャッ
シュメモリ1bは、通常のメモリアクセスにおけるキャ
ッシュメモリとして使用されるとともに、上記特定領域
のコピーを保持するためのキャッシュメモリとしても使
用され、上記キャッシュ制御装置1cは、アクセス情報
を解読し、通常のメモリアクセスか、特定のオペレーシ
ョンによるメモリアクセスかを判別する手段を備えてい
る。そして、上記キャッシュ制御装置1cは、通常のメ
モリアクセスのには、アドレスの上位ビットを比較す
ることにより、キャッシュにヒットするか否かを判定
し、キャッシュミスヒットの場合には、上記共有メモリ
にブロック単位でアクセスして、ブロック単位のリード
データを上記キャッシュメモリに書き込むとともに所望
のデータをデータ処理装置内のプロセッサに送出する。
また、特定オペレーションによるメモリアクセスの
には、アドレスの全ビットを比較することにより、キャ
ッシュにヒットするか否かを判定する。そして、上記キ
ャッシュ制御装置1cは、特定のオペレーションによる
メモリアクセスに対する上記判定の結果、そのキャッシ
ュメモリ1bに特定領域のコピーが存在しなかった場合
には、共有メモリ4に対する特定のオペレーションを依
頼し、共有メモリ4から転送される更新前の特定領域の
データをデータ処理装置のプロセッサ1aに送出する
とともに、キャッシュメモリ1bには、共有資源のアク
セス中であることを示す特定値に置き換えた値を強制的
にライトする。そして、特定のオペレーションによるメ
モリアクセスに対する上記判定の結果、キャッシュメモ
リ1bに特定領域のコピーが存在する場合には、キャッ
シュメモリ1bのみにアクセスして共有メモリ4にはア
クセスしない。 そして、上記キャッシュ制御装置1c
は、他のデータ処理装置が共有メモリ4の特定領域4a
にライトを行った場合には、キャッシュメモリ1bを無
効化する。
【0011】
【作用】プロセッサ1aが特定オペレーションにより、
共有メモリ4の特定領域4aをリードする場合、特定領
域4aのコピーがキャッシュメモリ1bに保持されてい
るか否かを判別し、保持されている場合には、キャッシ
ュメモリ1bより、特定領域4aのコピーをリードす
る。また、キャッシュメモリ1bに特定領域4aのコピ
ーが保持されていない場合には、共有メモリ4上の特定
領域4aのリードとその更新を同時に行い、更新する前
のデータをリードデータとしてデータ処理装置側にかえ
す。このリードデータはキャッシュメモリ1bに入力さ
れ保持される。共有メモリ4上の特定領域4aのリード
とその更新を同時に行うため、共有メモリ4の特定領域
4aとキャッシュメモリ1bの特定領域4aのコピーは
異なったものとなるが、通常特定領域4aを再度アクセ
スするのは、共有資源4bの占有権の獲得に失敗した場
合であり、この場合には、共有メモリ4の特定領域4a
とキャッシュ12に保持される特定領域4aのコピーは
一致しているので問題はない。なお、請求項2のよう
に、共有メモリ4上の特定領域4aのリードとその更新
を同時に行う際、その特定領域4aが他のデータ処理装
置3による共有資源4bのアクセス中であることを示す
特定値であった場合にのみキャッシュメモリ1bにライ
トすることにより、共有メモリ4の特定領域4aとキャ
ッシュメモリ1bに保持される特定領域4aのコピーの
一致性を保つことができる。また、上記場合において、
請求項3のように、他のデータ処理装置3による共有資
源4bのアクセス中であることを示す特定値に置き換え
た値をキャッシュメモリ1bにライトすることにより、
共有メモリ4のデータが常にキャッシュに登録され、再
度のリードの場合でも高速にアクセスすることができ
る。
【0012】
【実施例】図2は本発明の全体構成を示す図である。同
図において、11−1,11−2はデータ処理装置、1
2は共通バス、13はメモリ制御回路、14は共有メモ
リ、20はプロセッサ、21はキャッシュ制御回路、2
2はキャッシュメモリ、23はメモリインタフェース、
24−1はアドレスバス、24−2はアクセス情報バ
ス、25はデータバス、26はキャッシュ制御信号、2
7はキャッシュ無効化アドレスバス、28−1はメモリ
データバス、31はセマフォ制御回路、41はセマフォ
領域、42は排他制御すべき共有資源である。
【0013】同図において、複数のデータ処理装置11
−1,11−2が共通バス12、メモリ制御回路13を
介して、共有メモリ14に接続される。共有メモリ14
上には複数のデータ処理装置11−1,11−2がアク
セスする共有資源42およびその排他制御を行うための
セマフォ領域41が設けられる。なお、この実施例にお
いては、共有資源42が共有メモリ14上に設けられて
いるが、共有資源は例えばI/Oなど他の資源でもよ
い。
【0014】メモリ制御回路13はデータ処理装置11
−1,11−2のメモリ・アクセスを制御するめの手段
であり、メモリ制御回路13には共有資源に対する排他
制御を行うためのセマフォ制御回路31が設けられ、セ
マフォ制御回路31は共有メモリ14に対して、テスト
・アンド・セット・アクセスを行う。データ処理装置1
1−1,11−2内には、共有メモリ14上のブロック
データあるいはセマフォバイトを保持するためのキャッ
シュ制御回路21およびキャッシュメモリ22が設けら
れている。プロセッサ20は共有メモリ14にアクセス
する際、アクセスするアドレスのデータがキャッシュメ
モリ22上に保持されている場合には、キャッシュメモ
リ22からデータをリードする。
【0015】メモリインタフェース23はデータ処理装
置11−1,11−2と共通バスの間のインターフェー
スをとる手段であり、アドレスバス24−1はプロセッ
サ20がメモリ・アクセスをする際アドレス信号を送出
するバス、アクセス情報バス24−2は通常のメモリ・
アクセスかテスト・セット・アクセスなのかの種類を示
す情報を出力するバス、データバス25はデータを出力
するバスである。
【0016】キャッシュ制御信号26はキャッシュメモ
リ22を制御するための信号、キャッシュ無効化アドレ
スバス27は他のデータ処理装置がメモリをアクセスし
た際のアドレスを送出するバス、メモリデータバス28
−1は共有メモリ14からのリードデータが送出される
バスである。
【0017】図5は共有メモリ14上のセマフォ領域の
フォーマットを示す図であり、セマフォ領域の先頭ビッ
トにセマフォビットが割り当てられる。図3は図2にお
けるキャッシュ制御回路21および、キャッシュメモリ
22の具体的な構成を示す図である。同図において、1
01はアドレスセーブレジスタ、102はタグ、103
はメモリアドレスレジスタ、104は比較器、105は
有効フラグレジスタ、106はタグモードフラグレジス
タ、107は比較器、108はキャッシュメモリ制御信
号生成回路、109はデータ選択回路、110はオア回
路、111は制御切り替え回路、112は選択情報生成
回路、113ないし116はバッファメモリである。
【0018】同図における、アドレスセーブレジスタ1
01はアドレスバス24−1から送出されたメモリアド
レスを保持するためのレジスタ、タグ102はキャッシ
ュメモリに登録されているデータに対応するアドレスを
保持するレジスタであり、また、メモリアドレスレジス
タ103はメモリインタフェース23から入力されるキ
ャッシュ無効化アドレスを保持するためのレジスタであ
る。アドレスセーブレジスタ101、タグ102および
メモリアドレスレジスタ103はそれぞれ32ビットで
構成されている。
【0019】比較器104はアドレスセーブレジスタ1
01とタグ102の内容を比較する比較器であり、制御
切替え回路111の出力が通常のメモリ・アクセス・モ
ードを示す論理のとき上記レジスタ101の32ビット
とタグ102の32ビットの内の上位28ビットを比較
し、また、テスト・アンド・セット・モードのとき、全
32ビットを比較する。
【0020】有効フラグレジスタ105はタグに登録さ
れたアドレスが有効であることを示す有効フラグVを保
持するレジスタであり有効時に「1」となる。タグモー
ドフラグレジスタ106はキャッシュメモリに保持され
ているデータがセマフォバイトであることを示すタグモ
ードフラグMを保持するレジスタでありセマフォバイト
保持時に「1」となる。また、比較器107はメモリア
ドレスレジスタ103とタグ102の内容を比較する比
較器である。
【0021】キャッシュメモリ制御信号生成回路108
はキャッシュメモリ22を制御する信号を発生する回
路、データ選択回路109はバッファメモリ113ない
し116またはメモリインタフェース23からのデータ
の内必要なデータを選択して出力する回路であり、ま
た、制御切り替え回路111はメモリ・アクセスか、テ
スト・アンド・セット・アクセスかを判別してモード切
り換え信号1111を出力する回路であり、モード切替
え信号1111は通常のメモリ・アクセスの時、論理0
となり、テスト・アンド・セット・アクセスの時、論理
1となる。選択情報生成回路112はバッファメモリ1
13ないし116からの情報を選択するデータ選択回路
109への選択情報信号を生成する回路、バッファメモ
リ113ないし116はデータを保持する回路であり4
バイトで構成される。
【0022】次に図2,図3を用いて実施例の動作を説
明する。通常のメモリ・アクセス時、プロセッサ20は
アドレスバス24−1へアドレスを送出するとともに、
アクセス情報バス24−2にメモリ・アクセスであるこ
とを示すアクセス情報を出力する。アドレスおよびアク
セス情報はキャッシュ制御回路21に入力され、アドレ
スは図3のアドレスセーブレジスタ101に入力され、
また、アクセス情報は図3の制御切替え回路111に入
力されセットされる。
【0023】制御切替え回路111はアクセス情報を解
読し、通常のメモリ・アクセスか、テスト・アンド・セ
ット・アクセスかを判別し、モード切替え信号1111
を送出する。モード切替え信号1111は前述したよう
に、通常のメモリ・アクセスのとき論理0となり、テス
ト・アンド・セット・アクセスのとき論理1となる。こ
の場合は通常のメモリ・アクセスなので、論理0が比較
器104に入力され、比較器104は前述したように、
アドレスセーブレジスタ101の上位28ビットとタグ
102の上位28ビットを比較し、キャッシュにヒット
するか否か、すなわち、所望のデータがキャッシュメモ
リ22に存在するか否かを判別する。
【0024】この実施例においては、バッファメモリ1
13ないし116が16バイトで構成されており、通常
のメモリリードにおいて1回で16バイトのブロックデ
ータがキャッシュメモリ22に読み込まれるので、上記
のようにアドレスの上位28ビットを比較することによ
り、キャッシュにヒットしたか否かを判別できる。
【0025】上記の比較において、比較結果が一致する
と、所望のデータがキャッシュメモリ22に存在するこ
とがわかり、一致信号EQ1が選択情報生成回路112
に送出される。また、これと同時に、アドレスセーブレ
ジスタ101の下位4ビットが選択情報生成回路112
に入力される。選択情報生成回路112は上記下位4ビ
ットより選択情報を生成して、キャッシュメモリ22内
のセレクタ109に与える。セレクタ109は上記下位
4ビットに基づきキャッシュメモリ22内のバッファメ
モリ113ないし116のうちの必要なワード(16ビ
ット)またはバイト(8ビット)を選択してプロセッサ
20に送る。また、アドレスセーブレジスタ101の値
がタグ102にセットされるとともに、タグモードフラ
グレジスタ106のタグモードフラグMが0にセットさ
れキャッシュメモリ22に保持されているデータはブロ
ックデータであることを示す。
【0026】一方、比較結果が不一致、すなわちミスヒ
ットであると、アドレスバス24−1上のアドレスがメ
モリインタフェース23を介して共通バス12に出力さ
れ、メモリ制御回路13を介して、共有メモリ14がア
クセスされる。共有メモリ14から読み出されたデータ
はメモリ制御回路13、共通バス12、メモリインタフ
ェース23、メモリデータバス28−1を経由して、キ
ャッシュメモリ22に入力される。
【0027】キャッシュメモリ22に所望のデータが存
在しない場合、すなわち、キャッシュミスヒットの場
合、共有メモリ14へのアクセスはブロック単位、この
実施例においては16バイト単位でアクセスされ、1回
のアクセス単位が4バイトとすると、4回連続してリー
ドデータがキャッシュメモリ22に入力され、バッファ
メモリ113ないし116に書き込まれる。また、共有
メモリ14から読み出されたブロックデータのうち、所
望のデータがセレクタ109により選択されプロセッサ
20に送られる。
【0028】テスト・アンド・セット命令の場合はプロ
セッサ20はアドレスバス24−1へアドレスを送出す
るとともに、アクセス情報バス24−2にテスト・アン
ド・セット・アクセスであることを示すアクセス情報を
出力する。アドレスおよびアクセス情報はキャッシュ制
御回路21に入力され、アドレスは図3のアドレスセー
ブレジスタ101にセットされ、また、アクセス情報は
図3の制御切替え回路111にセットされる。
【0029】制御切替え回路111はアクセス情報を解
読し、通常のメモリ・アクセスか、テスト・アンド・セ
ット・アクセスかを判別し、モード切替え信号1111
を送出する。この場合はテスト・アンド・セットアクセ
スなので、論理1が比較器104に入力され、比較器1
04の比較対象ビットを28ビットから32ビットに変
更する。すなわち、アドレスセーブレジスタ101の3
2ビットとタグ102の32ビットの全ビットを比較
し、キャッシュにヒットするか否か、すなわち、セマフ
ォバイトがキャッシュメモリ22に保持されているか否
かを判別する。
【0030】比較結果が一致すると、すなわち、ヒット
すると、一致信号EQ1が選択情報生成回路112に送
出される。また、これと同時に、制御切替え回路111
の出力である切替え信号1111が選択情報生成回路1
12に入力され、その出力はバッファメモリ116の最
下位バイトを選択する信号をセレクタ109に与える。
セレクタ109はバッファメモリ116の最下位バイト
に保持されているセマフォバイトを選択しプロセッサ2
0に与える。
【0031】また、比較結果が不一致であると、すなわ
ち、ミスヒットであると、アドレスバス24−1上のア
ドレスがメモリインタフェース23を介して共通バス1
2に出力され、メモリ制御回路13を介して、共有メモ
リ14がアクセスされる。共有メモリ14から読み出さ
れたデータはメモリ制御回路13、共通バス12、メモ
リインタフェース23、メモリデータバス28−1を経
由して、キャッシュメモリ22に入力される。また、メ
モリ制御回路13へもテスト・アンド・セット・アクセ
スであることを示す情報が、メモリインタフェース2
3、共通バス12を介して伝えられ、メモリ制御回路1
3のセマフォ制御回路31は共有メモリ14に対して、
テスト・アンド・セット・アクセスを行う。すなわち、
セマフォバイトのリードとその最上位ビット位置に対す
る1のセットを同時に行い、1にセットする前のデータ
をリードデータとしてデータ処理装置側にかえす。この
リードデータはメモリ制御回路13、共通バス12、メ
モリインタフェース23を介して、キャッシュメモリ2
2に入力される。
【0032】この場合は、通常のメモリ・アクセスのよ
うにブロック単位のアクセスではなく、必要なバイトの
みのリードデータがセレクタ109を介してプロセッサ
20に転送される。また、キャッシュメモリ制御信号生
成回路108はライトイネーブル信号26−2を発生し
て、バッファメモリ116の最下位バイトに上記リード
データをセットする。また、アドレスセーブレジスタ1
01の値が新にタグ102にセットされるとともに、タ
グモードフラグレジスタ106のタグモードフラグMに
1がセットされキャッシュメモリ22に保持されている
データがセマフォバイトであることを示す。
【0033】次に、他のデータ処理装置などが共有メモ
リ14にライトすると、そのアドレスはメモリ制御回路
13、共通バス12、メモリインタフェース23、キャ
ッシュ無効アドレスバス27を介してキャッシュ無効化
アドレスレジスタ103に与えられセットされる。その
際、タグモードフラグMが0の場合、すなわち、キャッ
シュメモリ22に保持されているデータがブロックデー
タの場合は、比較器107における、他装置が共有メモ
リにアクセスしたアドレスとタグにセットされているア
ドレスとの比較対象アドレスは上位28ビットとなる。
キャッシュ無効アドレスレジスタ103とタグ102の
上位28ビットを比較した結果、これらが一致すると有
効フラグレジスタの有効フラグVをリセットして、キャ
ッシュメモリ22のデータを無効化する。
【0034】また、他のデータ処理装置などが共有メモ
リ14にライトした際、タグモードフラグMが1の場
合、すなわち、キャッシュメモリ22に保持されている
データがセマフォバイトの場合は、比較器107におけ
る、他装置が共有メモリにアクセスしたアドレスとタグ
にセットされているアドレスとの比較対象アドレスは全
32ビットとなる。その比較の結果、これらが一致する
と上記したのと同様、有効フラグレジスタ105の有効
フラグVをリセットして、キャッシュメモリ22のデー
タを無効化する。(なおこの場合、セマフォバイトへの
ライトは、1バイトライトに限るということが前提とな
る)
【0035】上記実施例において、リードしたセマフォ
ビットが0であった場合、メモリ制御回路13のセマフ
ォ制御回路31はテスト・アンド・セット命令により共
有メモリ14のセマフォ領域41のセマフォビットを1
に書き換える。一方、キャッシュメモリ22に保持され
るセマフォバイトはテスト・アンド・セット命令により
共有メモリ14からリードした更新前の0であり、共有
メモリ14とキャッシュメモリ22のセマフォバイトは
異なったものとなる。
【0036】しかしながら、通常、セマフォバイトを再
度アクセスするのは、リードデータのセマフォビットが
1であった場合、すなわち、共有資源42の占有権の獲
得に失敗した場合である。この場合には、共有メモリ1
4のセマフォバイトをアクセスしたときセマフォバイト
を書き換えることはなく、共有メモリ14のセマフォバ
イトとキャッシュメモリ22のセマフォバイトは一致し
ている。
【0037】そして、他の装置が共有資源42のアクセ
スを終了し、共有メモリ14のセマフォビットを0に書
き換えると、上記したようにキャッシュメモリ22のデ
ータは無効化され、プロセッサ20によるセマフォバイ
トリード時、共有メモリ14のセマフォバイトがリード
され、キャッシュメモリ22のデータは0に書き換えら
れる。上記のように、共有メモリ14のセマフォバイト
とキャッシュメモリ22のセマフォバイトが不一致とな
るのは、自プロセッサ20が共有資源42の専有権の獲
得に成功した場合のみであり、通常、共有資源42の専
有権を獲得した後にセマフォバイトを読むことはないの
で、上記のような不一致は問題にならない。
【0038】以上のように、本発明の第1の実施例によ
り、キャッシュメモリ22にセマフォバイトを取り込ん
でも矛盾のない効率的なアクセスを実現すること可能と
なるが、プログラムによっては、共有資源の占有権獲得
に成功した後も、セマフォバイトを読む場合もあり得な
いことではない。この場合共有メモリ14とキャッシュ
メモリ22の不一致の部分はセマフォバイトのセマフォ
ビットのみなので、プログラムを作成する際意識するこ
とが出来る範囲内の問題であるが、次に、プログラム作
成上の意識をすることなく、共有メモリ14とキャッシ
ュメモリ22の一致性を保つことができる実施例を説明
する。
【0039】図4は上記したように共有メモリ14とキ
ャッシュメモリ22の一致性を保つことができる本発明
の他の実施例を示す図であり、本実施例においては、図
4に示すように、メモリインタフェース23からメモリ
データバス上のデータの内セマフォビットに対応する部
分を、ライン28−2を介してキャッシュ制御回路21
に入力する。
【0040】キャッシュ制御回路21に入力されたセマ
フォビットは図3に示すキャッシュメモリ制御信号生成
回路108に入力される。キャッシュメモリ制御信号生
成回路108は共有メモリ14からリードされたセマフ
ォビットが1の場合のみキャッシュメモリ22に書き込
み、セマフォビットが0の場合はキャッシュメモリ22
には書き込まない。また、この場合には、アドレスセー
ブレジスタ101のアドレスをタグ102にも書き込ま
ず、有効フラグVもセットしない。すなわち、セマフォ
ビットが0の場合には、以前登録されたままの状態を保
つ。
【0041】これにより、第1の実施例のような、共有
メモリ14とキャッシュメモリ22の不一致が生ずるこ
とはなく、その一致性は完全に保たれる。なお、上記し
た実施例のものは、セマフォビットが0であった場合に
は、キャッシュメモリ22に登録されないわけであるか
ら、プログラムが再びセマフォバイトをリードしようと
した場合にはミスヒットとなり、共有メモリ14をアク
セスすることとなり、アクセス時間が遅くなる欠点があ
る。
【0042】本発明の第3の実施例は上記欠点を改善す
るものであり、図4に示すように、テスト・アンド・セ
ットによるミス・ヒット時、キャッシュメモリ22にセ
マフォビットを強制的セットする信号26−3を送出す
る。すなわち、図4において、テスト・アンド・セット
におけるミスヒット時、キャッシュ制御回路21のキャ
ッシュメモリ制御信号生成回路108はバッファメモリ
116にライト・イネーブル信号26−2を送出する
際、セマフォビット強制セット信号26−3を送出す
る。この信号はオア回路110を経由して、バッファメ
モリ116に送られ、バッファメモリ116の最下位バ
イトの最上位ビット、すなわち、セマフォビットに対応
するビットを強制的に1にする。
【0043】すなわち、テスト・アンド・セットによる
メモリ・アクセスでは、共有メモリ14のセマフォビッ
トは常に1に更新されるから、キャッシュメモリ22に
おいても、テスト・アンド・セットによるメモリ・アク
セスであることがアクセス情報により伝えられれば、共
有メモリ14と全く同一の更新を行うことができる。こ
の実施例によれば、共有メモリ14とキャッシュメモリ
22のデータは完全に一致し、しかも、共有メモリ14
のデータが常にキャッシュメモリ22に登録されるの
で、再度のリードの場合でも高速にアクセスすることが
できる。
【0044】
【発明の効果】以上説明したことから明らかなように、
本発明によれば、テスト・アンド・セット命令などによ
るセマフォ領域アクセス時も、キャッシュメモリを有効
に活用できるため、システムの性能を大幅に向上するこ
とができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の全体構成を示す図である。
【図3】本発明の実施例を示す図である。
【図4】本発明の他の実施例を示す図である。
【図5】 セマフォ領域のフォーマットを示す図であ
る。
【符号の説明】
1,3,11−1,11−2 データ処理装置 2,12 共通バス 13 メモリ制御回路 4,14 共有メモリ 1a,20 プロセッサ 1c,21 キャッシュ制御回路 1b,22 キャッシュメモリ 23 メモリインタフェース 24−1 アドレスバス 24−2 アクセス情報バス 25 データバス 26 キャッシュ制御信号 27 キャッシュ無効化アドレスバス 28−1 メモリデータバス 31 セマフォ制御回路 41 セマフォ領域 4b,42 共有資源 101 アドレスセーブレジスタ 102 タグ 103 メモリアドレスレジスタ 104,107 比較器 105 有効フラグレジスタ 106 タグモードフラグレジスタ 108 キャッシュメモリ制御信号生成回
路 109 データ選択回路 110 オア回路 111 制御切り替え回路 112 選択情報生成回路 113,114,115,116 バッファメモリ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 9/46 360 G06F 9/46 360D 12/00 572 12/00 572A 15/177 682 15/177 682F (72)発明者 桜井 康智 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 小田原 孝一 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 野中 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 金谷 英治 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭57−111896(JP,A) 特開 平3−164963(JP,A) 特開 平3−232051(JP,A) 特開 昭55−6632(JP,A) 特開 平2−257234(JP,A) 特開 平2−238534(JP,A) 特開 平2−240764(JP,A) 特開 平4−350743(JP,A) 特開 平4−296951(JP,A) 特開 平3−271859(JP,A) 特開 平5−127996(JP,A) 清水茂則,山内長承,”マルチプロセ ッサ・ワークステーションTOP− 1”,bit,共立出版株式会社,1990 年7月1日,第22巻,第7号,p.67− 74 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12 G06F 12/00 550 - 12/06 G06F 13/16 - 13/18 G06F 9/46 G06F 15/16 - 15/177

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のデータ処理装置と、上記複数のデ
    ータ処理装置がアクセスする共有資源と共有メモリを備
    え、上記共有メモリ上に設けられた特定領域に対し、一
    回のメモリアクセスによりテストと更新を行う特定のオ
    ペレーションにより上記共有資源の排他制御を実現する
    システムにおける、データ処理装置であって、キャッシュメモリとキャッシュ制御装置とを備え、 上記キャッシュメモリは、通常のメモリアクセスにおけ
    るキャッシュメモリとして使用されるとともに、上記特
    定領域のコピーを保持するためのキャッシュメモリとし
    ても使用され、 上記キャッシュ制御装置は、アクセス情報を解読し、通
    常のメモリアクセスか、特定のオペレーションによる
    モリアクセスかを判別する手段を備え、上記キャッシュ制御装置は、 上記特定のオペレーション
    により共有メモリ上の特定領域をリードする際、上記手
    段によりメモリアクセスが特定のオペレーションによる
    メモリアクセスか否かを判別するものであり、 上記キャッシュ制御装置は、 特定のオペレーションによ
    るメモリアクセスの、そのキャッシュメモリに特定領
    域のコピーが存在しなかった場合、共有メモリに対
    する特定のオペレーションを依頼し、共有メモリから転
    送される更新前の特定領域のデータをデータ処理装置内
    のプロセッサに送出するとともに、更新前の特定領域の
    データをキャッシュメモリにも書き込み、 キャッシュメモリに特定領域のコピーが存在する場合に
    はキャッシュメモリのみにアクセスして共有メモリには
    アクセスしないものであり、 上記キャッシュ制御装置は、 他のデータ処理装置が共有
    メモリの特定領域にライトを行った場合にはキャッシ
    ュメモリを無効化するものであることを特徴とするデー
    タ処理装置。
  2. 【請求項2】 複数のデータ処理装置と、上記複数のデ
    ータ処理装置がアクセスする共有資源と共有メモリを備
    え、上記共有メモリ上に設けられた特定領域に対し、一
    回のメモリアクセスによりテストと更新を行う特定のオ
    ペレーションにより上記共有資源の排他制御を実現する
    システムにおける、データ処理装置であって、キャッシュメモリとキャッシュ制御装置とを備え、 上記キャッシュメモリは、通常のメモリアクセスにおけ
    るキャッシュメモリとして使用されるとともに、上記特
    定領域のコピーを保持するためのキャッシュメモリとし
    ても使用され、上記キャッシュ制御装置は、 アクセス情報を解読し、通
    常のメモリアクセスか、特定のオペレーションによる
    モリアクセスかを判別する手段を備え、上記キャッシュ制御装置は、 上記手段によりメモリアク
    セスが通常のメモリアクセスか特定のオペレーションに
    よるメモリアクセスかを判別するものであり、 上記キャッシュ制御装置は、 通常のメモリアクセスの
    には、アドレスの上位ビットを比較することにより、キ
    ャッシュにヒットするか否かを判定し、キャッシュミス
    ヒットの場合には、上記共有メモリにブロック単位でア
    クセスして、ブロック単位のリードデータを上記キャッ
    シュメモリに書き込むとともに所望のデータをデータ処
    理装置内のプロセッサに送出するものであり上記キャッシュ制御装置は、 特定のオペレーションによ
    るメモリアクセスの際には、アドレスの全ビットを比較
    することにより、キャッシュにヒットするか否かを判定
    するものであり上記キャッシュ制御装置は、特定のオペレーションによ
    るメモリアクセスに対する上記判定の結果、 そのキャッ
    シュメモリに特定領域のコピーが存在しなかった場合
    は、共有メモリに対する特定のオペレーションを依頼
    し、共有メモリから転送される更新前の特定領域のデー
    タをデータ処理装置のプロセッサに送出するととも
    に、上記更新前の特定領域のデータが他のデータ処理装
    置による共有資源のアクセス中であることを示す特定値
    であった場合のみ特定値をキャッシュメモリにライト
    るものであり上記キャッシュ制御装置は、特定のオペレーションによ
    るメモリアクセスに対する上記判定の結果、 キャッシュ
    メモリに特定領域のコピーが存在する場合には、キャッ
    シュメモリのみにアクセスして共有メモリにはアクセス
    しないものであり、 上記キャッシュ制御装置は、 他のデータ処理装置が共有
    メモリの特定領域にライトを行った場合にはキャッシ
    ュメモリを無効化するものであることを特徴とするデー
    タ処理装置。
  3. 【請求項3】 複数のデータ処理装置と、上記複数のデ
    ータ処理装置がアクセスする共有資源と共有メモリを備
    え、上記共有メモリ上に設けられた特定領域に対し、一
    回のメモリアクセスによりテストと更新を行う特定のオ
    ペレーションにより上記共有資源の排他制御を実現する
    システムにおける、データ処理装置であって、 キャッシュメモリとキャッシュ制御装置を備え、 上記キャッシュメモリは、通常のメモリアクセスにおけ
    るキャッシュメモリとして使用されるとともに、上記特
    定領域のコピーを保持するためのキャッシュメモリとし
    ても使用され、 上記キャッシュ制御装置は、アクセス情報を解読し、通
    常のメモリアクセスか、特定のオペレーションによる
    モリアクセスかを判別する手段を備え、上記キャッシュ制御装置は、 上記手段によりメモリアク
    セスが通常のメモリアクセスか特定のオペレーションに
    よるメモリアクセスかを判別するものであり、 上記キャッシュ制御装置は 、通常のメモリアクセスの
    には、アドレスの上位ビットを比較することにより、キ
    ャッシュにヒットするか否かを判定し、キャッシュミス
    ヒットの場合には、上記共有メモリにブロック単位でア
    クセスして、ブロック単位のリードデータを上記キャッ
    シュメモリに書き込むとともに所望のデータをデータ処
    理装置内のプロセッサに送出するものであり、上記キャッシュ制御装置は、 特定オペレーションによ
    るメモリアクセスの際には、アドレスの全ビットを比較
    することにより、キャッシュにヒットするか否かを判定
    するものであり、上記キャッシュ制御装置は、特定のオペレーションによ
    るメモリアクセスに対する上記判定の結果、 そのキャッ
    シュメモリに特定領域のコピーが存在しなかった場合
    は、共有メモリに対する特定のオペレーションを依頼
    し、共有メモリから転送される更新前の特定領域のデー
    タをデータ処理装置のプロセッサに送出するととも
    に、キャッシュメモリには、共有資源のアクセス中であ
    ることを示す特定値に置き換えた値を強制的にライトす
    るものであり、上記キャッシュ制御装置は、特定のオペレーションによ
    るメモリアクセスに対する上記判定の結果、 キャッシュ
    メモリに特定領域のコピーが存在する場合には、キャッ
    シュメモリのみにアクセスして共有メモリにはアクセス
    しないものであり、 上記キャッシュ制御装置は、 他のデータ処理装置が共有
    メモリの特定領域にライトを行った場合には、キャッシ
    ュメモリを無効化するものであることを特徴とするデー
    タ処理装置。
JP31855391A 1991-11-07 1991-11-07 データ処理装置 Expired - Fee Related JP3219810B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31855391A JP3219810B2 (ja) 1991-11-07 1991-11-07 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31855391A JP3219810B2 (ja) 1991-11-07 1991-11-07 データ処理装置

Publications (2)

Publication Number Publication Date
JPH05143454A JPH05143454A (ja) 1993-06-11
JP3219810B2 true JP3219810B2 (ja) 2001-10-15

Family

ID=18100420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31855391A Expired - Fee Related JP3219810B2 (ja) 1991-11-07 1991-11-07 データ処理装置

Country Status (1)

Country Link
JP (1) JP3219810B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009122694A1 (ja) * 2008-03-31 2009-10-08 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
清水茂則,山内長承,"マルチプロセッサ・ワークステーションTOP−1",bit,共立出版株式会社,1990年7月1日,第22巻,第7号,p.67−74

Also Published As

Publication number Publication date
JPH05143454A (ja) 1993-06-11

Similar Documents

Publication Publication Date Title
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US7613884B2 (en) Multiprocessor system and method ensuring coherency between a main memory and a cache memory
JP3533355B2 (ja) キャッシュ・メモリ・システム
EP0603801A2 (en) Generalized shared memory in a cluster architecture for a computer system
JP2001515244A (ja) スケーリング可能な共用メモリ・マルチプロセッサ・システム
US4322815A (en) Hierarchical data storage system
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US5724547A (en) LRU pointer updating in a controller for two-way set associative cache
US6587922B2 (en) Multiprocessor system
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
EP0533427A1 (en) Computer memory control system
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US7949833B1 (en) Transparent level 2 cache controller
EP0439325A2 (en) A system for controlling an internally-installed cache memory
JPH10500235A (ja) データ記憶装置
JPH04336641A (ja) 処理システムにおける使用のためのデータキャッシュおよび方法
JP3219810B2 (ja) データ処理装置
EP0640930A2 (en) A multiprocessor system and a method of controlling such a system
JP2580263B2 (ja) バッファ記憶装置
JPH06103477B2 (ja) 並列キャッシュメモリ
JPH03235143A (ja) キャッシュメモリ制御装置
JPH0830568A (ja) 分散メモリ型並列計算機のキャッシュ制御方式
JPH06187239A (ja) 多階層キャッシュメモリにおけるデータ一致制御方式
JP2637853B2 (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010731

LAPS Cancellation because of no payment of annual fees