JP2826483B2 - ロック制御装置 - Google Patents
ロック制御装置Info
- Publication number
- JP2826483B2 JP2826483B2 JP11419495A JP11419495A JP2826483B2 JP 2826483 B2 JP2826483 B2 JP 2826483B2 JP 11419495 A JP11419495 A JP 11419495A JP 11419495 A JP11419495 A JP 11419495A JP 2826483 B2 JP2826483 B2 JP 2826483B2
- Authority
- JP
- Japan
- Prior art keywords
- lock
- state
- variable
- control device
- acquired
- 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
Links
Description
【0001】
【産業上の利用分野】本発明はデータ処理システムのた
めのロック制御に関し、特に主記憶を共有する複数のデ
ータ処理装置を有するデータ処理システムにおけるロッ
ク制御に関する。
めのロック制御に関し、特に主記憶を共有する複数のデ
ータ処理装置を有するデータ処理システムにおけるロッ
ク制御に関する。
【0002】
【従来の技術】データ処理システムにおいては、複数の
データ処理装置が主記憶を共有するように構成される場
合がある。かかる場合において、ある共有領域のデータ
をある特定のデータ処理装置が一定期間排他的に使用す
る必要が生じる場合がある。例えば、あるデータ処理装
置がある共有領域のデータに1を加える操作をする場合
には、その共有領域のデータを読み出して1を加えた後
再びその共有領域に書き込む一連の処理の間は、他のデ
ータ処理装置からの当該データへのアクセスを禁止しな
ければならない。そうでなければ、データの更新結果が
保証されないことになる。
データ処理装置が主記憶を共有するように構成される場
合がある。かかる場合において、ある共有領域のデータ
をある特定のデータ処理装置が一定期間排他的に使用す
る必要が生じる場合がある。例えば、あるデータ処理装
置がある共有領域のデータに1を加える操作をする場合
には、その共有領域のデータを読み出して1を加えた後
再びその共有領域に書き込む一連の処理の間は、他のデ
ータ処理装置からの当該データへのアクセスを禁止しな
ければならない。そうでなければ、データの更新結果が
保証されないことになる。
【0003】この排他的アクセスを保証するために、使
用されるのがロック変数である。共有領域にアクセスす
る際には必ずこのロック変数をチェックして、ロック状
態にないことを確認する必要がある。そのロック変数が
アンロック状態であれば、それをロック状態にしてから
対応する共有領域にアクセスする。排他的な処理が終了
した後にロック変数をアンロック状態に戻す。このよう
な制御をロック制御という。
用されるのがロック変数である。共有領域にアクセスす
る際には必ずこのロック変数をチェックして、ロック状
態にないことを確認する必要がある。そのロック変数が
アンロック状態であれば、それをロック状態にしてから
対応する共有領域にアクセスする。排他的な処理が終了
した後にロック変数をアンロック状態に戻す。このよう
な制御をロック制御という。
【0004】例えば、特開昭56−21260号公報に
は、複数の処理装置からの主記憶アクセスについてのロ
ック制御を行うアクセス装置の技術思想が開示されてい
る。この従来技術では、ロック変数の状態として、ロッ
クが取得されているかまたはロックが取得されていない
かの2つの状態を使用している。従って、ある記憶制御
装置でロックを取得しようとするリクエスト(以下、
「ロックリクエスト」という)やロックを解放しようと
するリクエスト(以下、「アンロックリクエスト」とい
う)を受け取ると、他の記憶制御装置におけるロック変
数の状態のチェックや更新が発生してしまう。例えば、
あるデータ処理装置からロックリクエストが発行された
場合、そのデータ処理装置が接続する記憶制御装置内で
保持されているロック変数がアンロック状態を示してい
れば他の記憶制御装置におけるロック変数の状態を索引
しなければならなくなる。そして、その索引の結果、ロ
ック状態であれば、そのロックリクエストは失敗とな
り、データ処理装置は再度ロックリクエストを発行する
ことになる。このような動作をスピンロックという。
は、複数の処理装置からの主記憶アクセスについてのロ
ック制御を行うアクセス装置の技術思想が開示されてい
る。この従来技術では、ロック変数の状態として、ロッ
クが取得されているかまたはロックが取得されていない
かの2つの状態を使用している。従って、ある記憶制御
装置でロックを取得しようとするリクエスト(以下、
「ロックリクエスト」という)やロックを解放しようと
するリクエスト(以下、「アンロックリクエスト」とい
う)を受け取ると、他の記憶制御装置におけるロック変
数の状態のチェックや更新が発生してしまう。例えば、
あるデータ処理装置からロックリクエストが発行された
場合、そのデータ処理装置が接続する記憶制御装置内で
保持されているロック変数がアンロック状態を示してい
れば他の記憶制御装置におけるロック変数の状態を索引
しなければならなくなる。そして、その索引の結果、ロ
ック状態であれば、そのロックリクエストは失敗とな
り、データ処理装置は再度ロックリクエストを発行する
ことになる。このような動作をスピンロックという。
【0005】
【発明が解決しようとする課題】上述のように従来技術
では、データ処理装置が新たなロックリクエストを発行
した際、当該記憶制御装置においてロック変数がアンロ
ック状態を示していればロックを取得するために他の記
憶制御装置のロック変数にアクセスしなければならなく
なる。このため、従来技術ではロック取得に必要な時間
が長くなり、また、不必要なバスアクセスによりバスト
ラフィックが増大するという問題がある。
では、データ処理装置が新たなロックリクエストを発行
した際、当該記憶制御装置においてロック変数がアンロ
ック状態を示していればロックを取得するために他の記
憶制御装置のロック変数にアクセスしなければならなく
なる。このため、従来技術ではロック取得に必要な時間
が長くなり、また、不必要なバスアクセスによりバスト
ラフィックが増大するという問題がある。
【0006】それゆえ本発明の目的は、主記憶を共有す
るための改良されたロック制御を提供することにある。
るための改良されたロック制御を提供することにある。
【0007】また、本発明の他の目的は、ロック制御の
ための処理を局所的にして、高速なロック制御を実現す
ることにある。
ための処理を局所的にして、高速なロック制御を実現す
ることにある。
【0008】
【課題を解決するための手段】上記課題を解決するため
に本発明のロック制御装置は、主記憶を共有する複数の
データ処理装置を有するデータ処理システムにおける前
記複数のデータ処理装置の少なくとも一つに関するロッ
ク変数の状態をそれぞれ制御する複数のロック制御装置
において、前記ロック変数の状態を少なくとも一つ登録
する登録手段と、前記登録手段に登録されたロック変数
の状態を保持する状態保持手段とを含み、前記状態保持
手段は、前記ロック変数の状態として、いずれのロック
制御装置においてもロック取得されていない旨の特定の
状態を含み、各ロック変数については前記ロック制御装
置の多くとも一つのみが当該特定の状態をとるように制
御される。
に本発明のロック制御装置は、主記憶を共有する複数の
データ処理装置を有するデータ処理システムにおける前
記複数のデータ処理装置の少なくとも一つに関するロッ
ク変数の状態をそれぞれ制御する複数のロック制御装置
において、前記ロック変数の状態を少なくとも一つ登録
する登録手段と、前記登録手段に登録されたロック変数
の状態を保持する状態保持手段とを含み、前記状態保持
手段は、前記ロック変数の状態として、いずれのロック
制御装置においてもロック取得されていない旨の特定の
状態を含み、各ロック変数については前記ロック制御装
置の多くとも一つのみが当該特定の状態をとるように制
御される。
【0009】また、本発明の他のロック制御装置におい
て、前記特定の状態にあるロック変数に関してロックリ
クエストが発行された場合には他のロック制御装置の状
態を参照せずにロック確保成功であることを判断する。
て、前記特定の状態にあるロック変数に関してロックリ
クエストが発行された場合には他のロック制御装置の状
態を参照せずにロック確保成功であることを判断する。
【0010】また、本発明の他のロック制御装置は、主
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおける前記複数のデータ処理装置の少なく
とも一つに関するロック変数の状態をそれぞれ制御する
複数のロック制御装置において、前記ロック変数の状態
を少なくとも一つ登録する登録手段と、前記登録手段に
登録されたロック変数の状態を保持する状態保持手段と
を含み、前記状態保持手段は、前記ロック変数の状態と
して、自ロック制御装置がロックを取得しておりかつ他
のロック制御装置がロックを取得していない旨を表す第
1の状態と、自ロック制御装置がロックを取得しておら
ずかつ他のロック制御装置がロックを取得しているかは
不明である旨を表す第2の状態と、いずれのロック制御
装置においてもロック取得されていない旨を表す第3の
状態とを有し、前記第3の状態にあるロック変数に関し
てロックリクエストが発行された場合には他のロック制
御装置の状態を参照せずにロック確保成功であることを
判断する。
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおける前記複数のデータ処理装置の少なく
とも一つに関するロック変数の状態をそれぞれ制御する
複数のロック制御装置において、前記ロック変数の状態
を少なくとも一つ登録する登録手段と、前記登録手段に
登録されたロック変数の状態を保持する状態保持手段と
を含み、前記状態保持手段は、前記ロック変数の状態と
して、自ロック制御装置がロックを取得しておりかつ他
のロック制御装置がロックを取得していない旨を表す第
1の状態と、自ロック制御装置がロックを取得しておら
ずかつ他のロック制御装置がロックを取得しているかは
不明である旨を表す第2の状態と、いずれのロック制御
装置においてもロック取得されていない旨を表す第3の
状態とを有し、前記第3の状態にあるロック変数に関し
てロックリクエストが発行された場合には他のロック制
御装置の状態を参照せずにロック確保成功であることを
判断する。
【0011】また、本発明の他のロック制御装置は、主
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおける前記複数のデータ処理装置の少なく
とも一つに関するロック変数の状態をそれぞれ制御する
複数のロック制御装置において、前記ロック変数の状態
を少なくとも一つ登録する登録手段と、前記登録手段に
登録されたロック変数の状態を保持する状態保持手段と
を含み、前記状態保持手段は、前記ロック変数の状態と
して、自ロック制御装置がロックを取得しておりかつ他
のロック制御装置がロックを取得していない旨を表す第
1の状態と、自ロック制御装置がロックを取得しておら
ずかつ他のロック制御装置がロックを取得しているかは
不明である旨を表す第2の状態と、いずれのロック制御
装置においてもロック取得されていない旨を表す第3の
状態と、自ロック制御装置がロックを取得していなくか
つ他のロック制御装置がロックを取得している旨を表す
第4の状態とを有し、前記第3の状態にあるロック変数
に関してロックリクエストが発行された場合には他のロ
ック制御装置の状態を参照せずにロック確保成功である
ことを判断し、前記第4の状態にあるロック変数に関し
てロックリクエストが発行された場合には他のロック制
御装置に当該ロックリクエストを伝えない。
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおける前記複数のデータ処理装置の少なく
とも一つに関するロック変数の状態をそれぞれ制御する
複数のロック制御装置において、前記ロック変数の状態
を少なくとも一つ登録する登録手段と、前記登録手段に
登録されたロック変数の状態を保持する状態保持手段と
を含み、前記状態保持手段は、前記ロック変数の状態と
して、自ロック制御装置がロックを取得しておりかつ他
のロック制御装置がロックを取得していない旨を表す第
1の状態と、自ロック制御装置がロックを取得しておら
ずかつ他のロック制御装置がロックを取得しているかは
不明である旨を表す第2の状態と、いずれのロック制御
装置においてもロック取得されていない旨を表す第3の
状態と、自ロック制御装置がロックを取得していなくか
つ他のロック制御装置がロックを取得している旨を表す
第4の状態とを有し、前記第3の状態にあるロック変数
に関してロックリクエストが発行された場合には他のロ
ック制御装置の状態を参照せずにロック確保成功である
ことを判断し、前記第4の状態にあるロック変数に関し
てロックリクエストが発行された場合には他のロック制
御装置に当該ロックリクエストを伝えない。
【0012】また、本発明の他のロック制御装置は、主
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおける前記複数のデータ処理装置の少なく
とも一つに関するロック変数の状態をそれぞれ制御する
複数のロック制御装置において、前記ロック変数の状態
を少なくとも一つ登録する登録手段と、前記登録手段に
登録されたロック変数の状態を保持する状態保持手段と
を含み、前記状態保持手段は、前記ロック変数の状態と
して、自ロック制御装置がロックを取得しておらずかつ
他のロック制御装置がロックを取得しているかは不明で
ある旨を表す第1の状態と、いずれのロック制御装置に
おいてもロック取得されていない旨を表す第2の状態
と、自ロック制御装置がロックを取得していなくかつ他
のロック制御装置がロックを取得している旨を表す第3
の状態と、自ロック制御装置がロックを取得しておりか
つ他のロック制御装置が前記第3の状態にあるかもしれ
ない旨を表す第4の状態と、自ロック制御装置がロック
を取得しておりかつ他のロック制御装置が前記第3の状
態にはない旨を表す第5の状態とを有し、前記第2の状
態にあるロック変数に関してロックリクエストが発行さ
れた場合には他のロック制御装置の状態を参照せずにロ
ック確保成功であることを判断し、前記第3の状態にあ
るロック変数に関してロックリクエストが発行された場
合には他のロック制御装置に当該ロックリクエストを伝
えず、前記第5の状態にあるロック変数に関してアンロ
ックリクエストが発行された場合には他のロック制御装
置に当該アンロックリクエストを伝えない。
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおける前記複数のデータ処理装置の少なく
とも一つに関するロック変数の状態をそれぞれ制御する
複数のロック制御装置において、前記ロック変数の状態
を少なくとも一つ登録する登録手段と、前記登録手段に
登録されたロック変数の状態を保持する状態保持手段と
を含み、前記状態保持手段は、前記ロック変数の状態と
して、自ロック制御装置がロックを取得しておらずかつ
他のロック制御装置がロックを取得しているかは不明で
ある旨を表す第1の状態と、いずれのロック制御装置に
おいてもロック取得されていない旨を表す第2の状態
と、自ロック制御装置がロックを取得していなくかつ他
のロック制御装置がロックを取得している旨を表す第3
の状態と、自ロック制御装置がロックを取得しておりか
つ他のロック制御装置が前記第3の状態にあるかもしれ
ない旨を表す第4の状態と、自ロック制御装置がロック
を取得しておりかつ他のロック制御装置が前記第3の状
態にはない旨を表す第5の状態とを有し、前記第2の状
態にあるロック変数に関してロックリクエストが発行さ
れた場合には他のロック制御装置の状態を参照せずにロ
ック確保成功であることを判断し、前記第3の状態にあ
るロック変数に関してロックリクエストが発行された場
合には他のロック制御装置に当該ロックリクエストを伝
えず、前記第5の状態にあるロック変数に関してアンロ
ックリクエストが発行された場合には他のロック制御装
置に当該アンロックリクエストを伝えない。
【0013】また、本発明の他のロック制御装置は、主
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおいて、前記複数のデータ処理装置の少な
くとも一つに関するロック変数の状態をそれぞれ制御す
る複数のロック制御装置であって、前記ロック変数の状
態を少なくとも一つ登録する登録手段と、前記登録手段
に登録されたロック変数の状態を保持する状態保持手段
とを含み、前記状態保持手段は、前記ロック変数の状態
として、自ロック制御装置がロックを取得しておらずか
つ他のロック制御装置がロックを取得しているかは不明
である旨を表す第1の状態と、いずれのロック制御装置
においてもロック取得されていない旨を表す第2の状態
と、いずれかのロック制御装置がロックを確保しており
かつアンロックリクエストに対しては前記第1の状態に
遷移する旨を表す第3の状態と、いずれかのロック制御
装置がロックを確保しておりかつアンロックリクエスト
に対しては前記第2の状態に遷移する旨を表す第4の状
態とを有し、前記第2の状態にあるロック変数に関して
ロックリクエストが発行された場合には他のロック制御
装置の状態を参照せずにロック確保成功であることを判
断する。
記憶を共有する複数のデータ処理装置を有するデータ処
理システムにおいて、前記複数のデータ処理装置の少な
くとも一つに関するロック変数の状態をそれぞれ制御す
る複数のロック制御装置であって、前記ロック変数の状
態を少なくとも一つ登録する登録手段と、前記登録手段
に登録されたロック変数の状態を保持する状態保持手段
とを含み、前記状態保持手段は、前記ロック変数の状態
として、自ロック制御装置がロックを取得しておらずか
つ他のロック制御装置がロックを取得しているかは不明
である旨を表す第1の状態と、いずれのロック制御装置
においてもロック取得されていない旨を表す第2の状態
と、いずれかのロック制御装置がロックを確保しており
かつアンロックリクエストに対しては前記第1の状態に
遷移する旨を表す第3の状態と、いずれかのロック制御
装置がロックを確保しておりかつアンロックリクエスト
に対しては前記第2の状態に遷移する旨を表す第4の状
態とを有し、前記第2の状態にあるロック変数に関して
ロックリクエストが発行された場合には他のロック制御
装置の状態を参照せずにロック確保成功であることを判
断する。
【0014】
【実施例】まず、本発明が適用されるデータ処理システ
ムの一実施例について図面を参照しながら詳細に説明す
る。
ムの一実施例について図面を参照しながら詳細に説明す
る。
【0015】図1を参照すると、本発明が適用されるデ
ータ処理システムは、記憶装置207を共有する4つの
処理装置201〜204を有する。そして、処理装置2
01と202がキャッシュユニット205に接続し、処
理装置203と204がキャッシュユニット206に接
続する。また、キャッシュユニット205および206
と記憶装置207とはシステムバス208を介して接続
している。キャッシュユニット205および206はそ
れぞれ接続する処理装置のためのキャッシュメモリとし
ての機能を有するとともに、ロック変数を保持する機能
をも有する。また、システムバス208は、アドレスバ
スとデータバスとを含み、これらアドレスバスとデータ
バスとは独立して動作できる。ロックの取得を要求する
ロックリクエストやロックの解放を要求するアンロック
リクエストはアドレスバスのみを使用する。さらに、シ
ステムバス208は、キャッシュ情報を伝えるためのバ
スを含み、このバスを使用してロックリクエストに対す
るロック取得の可否が伝えられる。
ータ処理システムは、記憶装置207を共有する4つの
処理装置201〜204を有する。そして、処理装置2
01と202がキャッシュユニット205に接続し、処
理装置203と204がキャッシュユニット206に接
続する。また、キャッシュユニット205および206
と記憶装置207とはシステムバス208を介して接続
している。キャッシュユニット205および206はそ
れぞれ接続する処理装置のためのキャッシュメモリとし
ての機能を有するとともに、ロック変数を保持する機能
をも有する。また、システムバス208は、アドレスバ
スとデータバスとを含み、これらアドレスバスとデータ
バスとは独立して動作できる。ロックの取得を要求する
ロックリクエストやロックの解放を要求するアンロック
リクエストはアドレスバスのみを使用する。さらに、シ
ステムバス208は、キャッシュ情報を伝えるためのバ
スを含み、このバスを使用してロックリクエストに対す
るロック取得の可否が伝えられる。
【0016】図2を参照すると、キャッシュユニット2
05または206は、処理装置からのリクエストを保持
するリクエストバッファ21および22と、システムバ
ス208に発行されたリクエストまたはリクエストバッ
ファ21または22を選択するセレクタ23と、キャッ
シュメモリのアドレスアレイ24と、ロックリクエスト
制御装置25と、セレクタ23で選択されたリクエスト
またはロックリクエスト制御装置25からのロック判定
結果を選択するセレクタ26および27とを有してい
る。
05または206は、処理装置からのリクエストを保持
するリクエストバッファ21および22と、システムバ
ス208に発行されたリクエストまたはリクエストバッ
ファ21または22を選択するセレクタ23と、キャッ
シュメモリのアドレスアレイ24と、ロックリクエスト
制御装置25と、セレクタ23で選択されたリクエスト
またはロックリクエスト制御装置25からのロック判定
結果を選択するセレクタ26および27とを有してい
る。
【0017】リクエストバッファ21および22は、複
数のリクエストを保持し、それぞれ先入れ先出しバッフ
ァとして機能する。セレクタ23は、あらかじめ定めら
れた規則に従って、3入力の内から1つを選択する。例
えば、各入力から順番に選択するラウンドロビン方式を
使用することができる。また、システムバスからのリク
エストを最優先として扱う方式を使用することもでき
る。アドレスアレイ24は、通常のキャッシュメモリと
同様の構成を有し、(図示しない)データメモリの各エ
ントリに対応するタグアドレスを格納する。
数のリクエストを保持し、それぞれ先入れ先出しバッフ
ァとして機能する。セレクタ23は、あらかじめ定めら
れた規則に従って、3入力の内から1つを選択する。例
えば、各入力から順番に選択するラウンドロビン方式を
使用することができる。また、システムバスからのリク
エストを最優先として扱う方式を使用することもでき
る。アドレスアレイ24は、通常のキャッシュメモリと
同様の構成を有し、(図示しない)データメモリの各エ
ントリに対応するタグアドレスを格納する。
【0018】セレクタ26及び27は、ロックリクエス
トに対するリプライを返す場合にはロックリクエスト制
御装置25の出力を選択し、キャッシュメモリの一致制
御を行う場合にはセレクタ23の出力を選択する。
トに対するリプライを返す場合にはロックリクエスト制
御装置25の出力を選択し、キャッシュメモリの一致制
御を行う場合にはセレクタ23の出力を選択する。
【0019】図3を参照すると、ロックリクエスト制御
装置25は、セレクタ23により選択されたリクエスト
についてのロック変数のアドレスを格納するロックアド
レスレジスタ1および2と、ロックアドレスレジスタ1
および2に格納されている各ロック変数に対するロック
状態を格納するロックステータスレジスタ5および6
と、セレクタ23からのロック変数のアドレスとロック
アドレスレジスタ1および2に保持されたアドレスを入
力してそれらの一致を検出するロックアドレス一致検出
回路3および4と、ロックアドレス一致検出回路3また
は4で一致が検出されたエントリに対するロックステー
タスレジスタ5または6の内容を選択するセレクタ7
と、ロックアドレスレジスタ1および2やロックステー
タスレジスタ5および6の状態を制御するロックリクエ
スト制御回路8とを備えている。
装置25は、セレクタ23により選択されたリクエスト
についてのロック変数のアドレスを格納するロックアド
レスレジスタ1および2と、ロックアドレスレジスタ1
および2に格納されている各ロック変数に対するロック
状態を格納するロックステータスレジスタ5および6
と、セレクタ23からのロック変数のアドレスとロック
アドレスレジスタ1および2に保持されたアドレスを入
力してそれらの一致を検出するロックアドレス一致検出
回路3および4と、ロックアドレス一致検出回路3また
は4で一致が検出されたエントリに対するロックステー
タスレジスタ5または6の内容を選択するセレクタ7
と、ロックアドレスレジスタ1および2やロックステー
タスレジスタ5および6の状態を制御するロックリクエ
スト制御回路8とを備えている。
【0020】次に上記データ処理システムにおける、本
発明の第一の実施例について図面を参照して説明する。
発明の第一の実施例について図面を参照して説明する。
【0021】図4を参照すると、第一の実施例における
ロック変数は、LCK、ULSおよびULEの3つの状
態のいずれかをとる。LCKとは、当該キャッシュユニ
ットに接続するデータ処理装置がロックを確保してお
り、他のデータ処理装置がロックを確保していない状態
を表す。また、ULSとは、当該キャッシュユニットに
接続するデータ処理装置はロックを確保しておらず、他
のデータ処理装置がロックを確保しているかは不明であ
る状態を表す。また、ULEとは、いずれのキャッシュ
ユニットに接続するデータ処理装置もロックを確保して
いないことが確認されている状態を表す。ロック変数の
状態がULEであれば、他のキャッシュユニットのロッ
ク変数の状態をあらためて確認することなく、ロックを
取得することが可能となる。
ロック変数は、LCK、ULSおよびULEの3つの状
態のいずれかをとる。LCKとは、当該キャッシュユニ
ットに接続するデータ処理装置がロックを確保してお
り、他のデータ処理装置がロックを確保していない状態
を表す。また、ULSとは、当該キャッシュユニットに
接続するデータ処理装置はロックを確保しておらず、他
のデータ処理装置がロックを確保しているかは不明であ
る状態を表す。また、ULEとは、いずれのキャッシュ
ユニットに接続するデータ処理装置もロックを確保して
いないことが確認されている状態を表す。ロック変数の
状態がULEであれば、他のキャッシュユニットのロッ
ク変数の状態をあらためて確認することなく、ロックを
取得することが可能となる。
【0022】図5を参照して、データ処理装置からロッ
クリクエストが発行された場合の第一の実施例における
動作について説明する。図5を参照すると、最左欄はロ
ックリクエストを発行したデータ処理装置に接続するキ
ャッシュユニットにおけるロック変数の状態を表し、中
欄はそれ以外のキャッシュユニットにおけるロック変数
の状態を表す。また、最右欄はそれぞれの場合における
動作を表す。なお、以下では、リクエストを発行したデ
ータ処理装置に接続するキャッシュユニットのことをロ
ーカルキャッシュユニットという。
クリクエストが発行された場合の第一の実施例における
動作について説明する。図5を参照すると、最左欄はロ
ックリクエストを発行したデータ処理装置に接続するキ
ャッシュユニットにおけるロック変数の状態を表し、中
欄はそれ以外のキャッシュユニットにおけるロック変数
の状態を表す。また、最右欄はそれぞれの場合における
動作を表す。なお、以下では、リクエストを発行したデ
ータ処理装置に接続するキャッシュユニットのことをロ
ーカルキャッシュユニットという。
【0023】例えば、ローカルキャッシュユニットのロ
ック変数の状態がLCKであれば、すでにロックが確保
されていることになるので、ロック制御装置は”ロック
失敗”の結果を返す。また、ローカルキャッシュユニッ
トのロック変数の状態がULEであれば、いずれのデー
タ処理装置もロックを確保していないことがわかるの
で、ロック制御装置は”ロック成功”の結果を返すとと
もに、当該ロック変数の状態をLCKにする。
ック変数の状態がLCKであれば、すでにロックが確保
されていることになるので、ロック制御装置は”ロック
失敗”の結果を返す。また、ローカルキャッシュユニッ
トのロック変数の状態がULEであれば、いずれのデー
タ処理装置もロックを確保していないことがわかるの
で、ロック制御装置は”ロック成功”の結果を返すとと
もに、当該ロック変数の状態をLCKにする。
【0024】また、ローカルキャッシュユニットのロッ
ク変数の状態がULSの場合は、ローカルキャッシュユ
ニット以外のキャッシュユニットのロック変数の状態を
参照しなければならなくなる。すなわち、ローカルキャ
ッシュユニット以外のキャッシュユニットのロック変数
の状態がLCKであれば、ロック制御装置は”ロック失
敗”の結果を返す。また、その状態がULEであれば、
ロック制御装置は”ロック成功”の結果を返すととも
に、ローカルキャッシュユニットのロック変数の状態を
LCKに、それ以外のキャッシュユニットのロック変数
の状態をULSにする。また、ローカルキャッシュユニ
ット以外のキャッシュユニットのロック変数の状態がU
LSであるかまたはそのロックアドレスレジスタに当該
ロック変数が登録されていなければ、ロック制御装置
は”ロック成功”の結果を返すとともに、ローカルキャ
ッシュユニットのロック変数の状態をLCKにする。
ク変数の状態がULSの場合は、ローカルキャッシュユ
ニット以外のキャッシュユニットのロック変数の状態を
参照しなければならなくなる。すなわち、ローカルキャ
ッシュユニット以外のキャッシュユニットのロック変数
の状態がLCKであれば、ロック制御装置は”ロック失
敗”の結果を返す。また、その状態がULEであれば、
ロック制御装置は”ロック成功”の結果を返すととも
に、ローカルキャッシュユニットのロック変数の状態を
LCKに、それ以外のキャッシュユニットのロック変数
の状態をULSにする。また、ローカルキャッシュユニ
ット以外のキャッシュユニットのロック変数の状態がU
LSであるかまたはそのロックアドレスレジスタに当該
ロック変数が登録されていなければ、ロック制御装置
は”ロック成功”の結果を返すとともに、ローカルキャ
ッシュユニットのロック変数の状態をLCKにする。
【0025】また、ローカルキャッシュユニットに該当
するロック変数が登録されていない場合には、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。また、この時、ロックを確
保できればそのロック変数の状態をLCKに、確保でき
なければそのロック変数の状態をULSにする。
するロック変数が登録されていない場合には、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。また、この時、ロックを確
保できればそのロック変数の状態をLCKに、確保でき
なければそのロック変数の状態をULSにする。
【0026】図6を参照して、データ処理装置からアン
ロックリクエストが発行された場合の第一の実施例にお
ける動作について説明する。図6を参照すると、左欄は
ロックリクエストを発行したデータ処理装置に接続する
キャッシュユニットにおけるロック変数の状態を表し、
右欄はそれぞれの場合における動作を表す。すなわち、
ローカルキャッシュユニットのロック変数の状態がLC
Kであれば、ロックリクエスト制御装置はそのロック変
数の状態をULEにする。また、ロックが取得されてい
ない場合にアンロックリクエストは通常発生し得ないた
め、ローカルキャッシュユニットのロック変数の状態が
ULEやULSであることはあり得ない。また、該当す
るロック変数が登録されていない場合にもアンロックリ
クエストは通常発生し得ない。
ロックリクエストが発行された場合の第一の実施例にお
ける動作について説明する。図6を参照すると、左欄は
ロックリクエストを発行したデータ処理装置に接続する
キャッシュユニットにおけるロック変数の状態を表し、
右欄はそれぞれの場合における動作を表す。すなわち、
ローカルキャッシュユニットのロック変数の状態がLC
Kであれば、ロックリクエスト制御装置はそのロック変
数の状態をULEにする。また、ロックが取得されてい
ない場合にアンロックリクエストは通常発生し得ないた
め、ローカルキャッシュユニットのロック変数の状態が
ULEやULSであることはあり得ない。また、該当す
るロック変数が登録されていない場合にもアンロックリ
クエストは通常発生し得ない。
【0027】図7を参照して、上記第一の実施例の特徴
について説明する。まず、左側のキャッシュユニット2
05のロック変数の状態がLCKで、右側のキャッシュ
ユニット206のロック変数の状態がULSであった場
合に、左側のキャッシュユニット205でアンロックリ
クエストが発行されると、この右側のキャッシュユニッ
ト205のロック変数の状態がLCKからULEに更新
される(図6参照)。この状態で、左側のキャッシュユ
ニット205で再びロックリクエストが発行されると、
他のキャッシュユニット206の状態にかかわらず左側
のキャッシュユニット205でロックを取得できる。す
なわち、左側のキャッシュユニット205のロック変数
の状態がLCKに更新される(図5参照)。
について説明する。まず、左側のキャッシュユニット2
05のロック変数の状態がLCKで、右側のキャッシュ
ユニット206のロック変数の状態がULSであった場
合に、左側のキャッシュユニット205でアンロックリ
クエストが発行されると、この右側のキャッシュユニッ
ト205のロック変数の状態がLCKからULEに更新
される(図6参照)。この状態で、左側のキャッシュユ
ニット205で再びロックリクエストが発行されると、
他のキャッシュユニット206の状態にかかわらず左側
のキャッシュユニット205でロックを取得できる。す
なわち、左側のキャッシュユニット205のロック変数
の状態がLCKに更新される(図5参照)。
【0028】このように、本発明の第一の実施例によれ
ば、ロック変数の状態ULEを設けたことにより、ロッ
ク解放後のロック取得を高速に行うことができる。
ば、ロック変数の状態ULEを設けたことにより、ロッ
ク解放後のロック取得を高速に行うことができる。
【0029】次に本発明の第二の実施例について図面を
参照して説明する。
参照して説明する。
【0030】図8を参照すると、第二の実施例における
ロック変数は、LCK、ULS、ULEおよびULLの
4つの状態のいずれかをとる。すなわち、第一の実施例
に加えて、ULLを設けたことを特徴とする。このUL
Lとは、当該キャッシュユニットに接続するデータ処理
装置はロックを確保していないが、他のデータ処理装置
のいずれかがロックを確保している状態を表す。ロック
リクエストによるロック確保に失敗した場合に、当該キ
ャッシュユニットのロック変数はULLに遷移する。こ
れにより、当該キャッシュユニットは更なるロックリク
エストを他のキャッシュユニットに対して発行しないよ
うに制御する。
ロック変数は、LCK、ULS、ULEおよびULLの
4つの状態のいずれかをとる。すなわち、第一の実施例
に加えて、ULLを設けたことを特徴とする。このUL
Lとは、当該キャッシュユニットに接続するデータ処理
装置はロックを確保していないが、他のデータ処理装置
のいずれかがロックを確保している状態を表す。ロック
リクエストによるロック確保に失敗した場合に、当該キ
ャッシュユニットのロック変数はULLに遷移する。こ
れにより、当該キャッシュユニットは更なるロックリク
エストを他のキャッシュユニットに対して発行しないよ
うに制御する。
【0031】図9を参照して、データ処理装置からロッ
クリクエストが発行された場合の第二の実施例における
動作について説明する。図9を参照すると、図5の場合
と同様に、最左欄はローカルキャッシュユニットにおけ
るロック変数の状態を表し、中欄はそれ以外のキャッシ
ュユニットにおけるロック変数の状態を表す。また、最
右欄はそれぞれの場合における動作を表す。
クリクエストが発行された場合の第二の実施例における
動作について説明する。図9を参照すると、図5の場合
と同様に、最左欄はローカルキャッシュユニットにおけ
るロック変数の状態を表し、中欄はそれ以外のキャッシ
ュユニットにおけるロック変数の状態を表す。また、最
右欄はそれぞれの場合における動作を表す。
【0032】ローカルキャッシュユニットのロック変数
の状態がULLであれば、ローカルキャッシュユニット
以外のキャッシュユニットでロックが取得されているた
め、LCKの場合と同様、ロック制御装置は”ロック失
敗”の結果を返す。
の状態がULLであれば、ローカルキャッシュユニット
以外のキャッシュユニットでロックが取得されているた
め、LCKの場合と同様、ロック制御装置は”ロック失
敗”の結果を返す。
【0033】また、ローカルキャッシュユニットのロッ
ク変数の状態がULSの場合は、ローカルキャッシュユ
ニット以外のキャッシュユニットのロック変数の状態を
参照する。すなわち、ローカルキャッシュユニット以外
のキャッシュユニットのロック変数の状態がLCKまた
はULLであれば、ロック制御装置は”ロック失敗”の
結果を返すとともに、ローカルキャッシュユニットのロ
ック変数の状態をULLとする。また、その状態がUL
EまたはULSであれば、ロック制御装置は”ロック成
功”の結果を返すとともに、ローカルキャッシュユニッ
トのロック変数の状態をLCKに、それ以外のキャッシ
ュユニットのロック変数の状態をULLにする。
ク変数の状態がULSの場合は、ローカルキャッシュユ
ニット以外のキャッシュユニットのロック変数の状態を
参照する。すなわち、ローカルキャッシュユニット以外
のキャッシュユニットのロック変数の状態がLCKまた
はULLであれば、ロック制御装置は”ロック失敗”の
結果を返すとともに、ローカルキャッシュユニットのロ
ック変数の状態をULLとする。また、その状態がUL
EまたはULSであれば、ロック制御装置は”ロック成
功”の結果を返すとともに、ローカルキャッシュユニッ
トのロック変数の状態をLCKに、それ以外のキャッシ
ュユニットのロック変数の状態をULLにする。
【0034】また、ローカルキャッシュユニットに該当
するロック変数が登録されていない場合には、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。
するロック変数が登録されていない場合には、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。
【0035】図10を参照して、データ処理装置からア
ンロックリクエストが発行された場合の第二の実施例に
おける動作について説明する。図10を参照すると、最
左欄はローカルキャッシュユニットにおけるロック変数
の状態を表し、中欄はそれ以外のキャッシュユニットに
おけるロック変数の状態を表す。また、最右欄はそれぞ
れの場合における動作を表す。すなわち、ローカルキャ
ッシュユニットのロック変数の状態がLCKであれば、
ロックリクエスト制御装置はそのロック変数の状態をU
LEにする。このとき、ローカルキャッシュユニット以
外のキャッシュユニットのロック変数の状態がULLで
あればその状態をULSにする。これにより、ULSと
なったキャッシュユニットはロックリクエストを再び外
部に出力することが可能となる。
ンロックリクエストが発行された場合の第二の実施例に
おける動作について説明する。図10を参照すると、最
左欄はローカルキャッシュユニットにおけるロック変数
の状態を表し、中欄はそれ以外のキャッシュユニットに
おけるロック変数の状態を表す。また、最右欄はそれぞ
れの場合における動作を表す。すなわち、ローカルキャ
ッシュユニットのロック変数の状態がLCKであれば、
ロックリクエスト制御装置はそのロック変数の状態をU
LEにする。このとき、ローカルキャッシュユニット以
外のキャッシュユニットのロック変数の状態がULLで
あればその状態をULSにする。これにより、ULSと
なったキャッシュユニットはロックリクエストを再び外
部に出力することが可能となる。
【0036】図11を参照して、上記第二の実施例の特
徴について説明する。まず、左側のキャッシュユニット
205のロック変数の状態がULSで、右側のキャッシ
ュユニット206のロック変数の状態がLCKであった
場合に、左側のキャッシュユニット205でロックリク
エストが発行されると、ロック確保は失敗し、左側のキ
ャッシュユニット205のロック変数の状態がULSか
らULLに更新される(図9参照)。これにより、左側
のキャッシュユニット205はロックリクエストを外部
に発行しなくなる。この状態が解放されるのは、右側の
キャッシュユニット206でアンロックリクエストが発
行されたときである。すなわち、この場合には、左側の
キャッシュユニット205のロック変数の状態がULS
となるため(図10参照)、再びロックリクエストを外
部へ発行することが可能となる。
徴について説明する。まず、左側のキャッシュユニット
205のロック変数の状態がULSで、右側のキャッシ
ュユニット206のロック変数の状態がLCKであった
場合に、左側のキャッシュユニット205でロックリク
エストが発行されると、ロック確保は失敗し、左側のキ
ャッシュユニット205のロック変数の状態がULSか
らULLに更新される(図9参照)。これにより、左側
のキャッシュユニット205はロックリクエストを外部
に発行しなくなる。この状態が解放されるのは、右側の
キャッシュユニット206でアンロックリクエストが発
行されたときである。すなわち、この場合には、左側の
キャッシュユニット205のロック変数の状態がULS
となるため(図10参照)、再びロックリクエストを外
部へ発行することが可能となる。
【0037】このように、本発明の第二の実施例によれ
ば、第一の実施例に加えてロック変数の状態ULLを設
けたことにより、ロック確保失敗後の無駄なロックリク
エスト発行を抑制することができる。
ば、第一の実施例に加えてロック変数の状態ULLを設
けたことにより、ロック確保失敗後の無駄なロックリク
エスト発行を抑制することができる。
【0038】次に本発明の第三の実施例について図面を
参照して説明する。
参照して説明する。
【0039】図12を参照すると、第三の実施例におけ
るロック変数は、LKS、LKE、ULS、ULEおよ
びULLの5つの状態のいずれかをとる。すなわち、第
二の実施例におけるLCKを、LKSとLKEの2つに
細分したことを特徴とする。このLKSとは、当該キャ
ッシュユニットに接続するデータ処理装置がロックを確
保しており、他のキャッシュユニットのいずれかのロッ
ク変数の状態がULLであるかもしれないという状態を
表す。また、LKEとは、当該キャッシュユニットに接
続するデータ処理装置がロックを確保しており、他のキ
ャッシュユニットのいずれのロック変数の状態もULL
ではないことが確認されている状態を表す。このLKE
を設けたことにより、当該キャッシュユニットはアンロ
ック時に他のキャッシュユニットの状態をチェックする
必要がなくなる。
るロック変数は、LKS、LKE、ULS、ULEおよ
びULLの5つの状態のいずれかをとる。すなわち、第
二の実施例におけるLCKを、LKSとLKEの2つに
細分したことを特徴とする。このLKSとは、当該キャ
ッシュユニットに接続するデータ処理装置がロックを確
保しており、他のキャッシュユニットのいずれかのロッ
ク変数の状態がULLであるかもしれないという状態を
表す。また、LKEとは、当該キャッシュユニットに接
続するデータ処理装置がロックを確保しており、他のキ
ャッシュユニットのいずれのロック変数の状態もULL
ではないことが確認されている状態を表す。このLKE
を設けたことにより、当該キャッシュユニットはアンロ
ック時に他のキャッシュユニットの状態をチェックする
必要がなくなる。
【0040】図13を参照して、データ処理装置からロ
ックリクエストが発行された場合の第三の実施例におけ
る動作について説明する。図13を参照すると、図5の
場合と同様に、最左欄はローカルキャッシュユニットに
おけるロック変数の状態を表し、中欄はそれ以外のキャ
ッシュユニットにおけるロック変数の状態を表す。ま
た、最右欄はそれぞれの場合における動作を表す。
ックリクエストが発行された場合の第三の実施例におけ
る動作について説明する。図13を参照すると、図5の
場合と同様に、最左欄はローカルキャッシュユニットに
おけるロック変数の状態を表し、中欄はそれ以外のキャ
ッシュユニットにおけるロック変数の状態を表す。ま
た、最右欄はそれぞれの場合における動作を表す。
【0041】ローカルキャッシュユニットのロック変数
の状態がULEであれば、いずれのキャッシュユニット
でもロックが取得されていないことが確認できるた
め、”ロック成功”の結果を返すとともに、ローカルキ
ャッシュユニットのロック変数の状態がLKEとなる また、ローカルキャッシュユニットのロック変数の状態
がULSの場合は、ローカルキャッシュユニット以外の
キャッシュユニットのロック変数の状態を参照する。す
なわち、ローカルキャッシュユニット以外のキャッシュ
ユニットのロック変数の状態がLCKまたはULLであ
れば、ロック制御装置は”ロック失敗”の結果を返すと
ともに、ローカルキャッシュユニットのロック変数の状
態をULLとする。また、その状態がULEまたはUL
Sであれば、ロック制御装置は”ロック成功”の結果を
返すとともに、ローカルキャッシュユニットのロック変
数の状態をLKEに、それ以外のキャッシュユニットの
ロック変数の状態をULSにする。なお、図13ではロ
ーカルキャッシュユニットに該当するロック変数が登録
されていない場合を併せて記載しているが、ローカルキ
ャッシュユニットのロック変数の状態がULSの場合に
は既に登録されているため登録は不要である。
の状態がULEであれば、いずれのキャッシュユニット
でもロックが取得されていないことが確認できるた
め、”ロック成功”の結果を返すとともに、ローカルキ
ャッシュユニットのロック変数の状態がLKEとなる また、ローカルキャッシュユニットのロック変数の状態
がULSの場合は、ローカルキャッシュユニット以外の
キャッシュユニットのロック変数の状態を参照する。す
なわち、ローカルキャッシュユニット以外のキャッシュ
ユニットのロック変数の状態がLCKまたはULLであ
れば、ロック制御装置は”ロック失敗”の結果を返すと
ともに、ローカルキャッシュユニットのロック変数の状
態をULLとする。また、その状態がULEまたはUL
Sであれば、ロック制御装置は”ロック成功”の結果を
返すとともに、ローカルキャッシュユニットのロック変
数の状態をLKEに、それ以外のキャッシュユニットの
ロック変数の状態をULSにする。なお、図13ではロ
ーカルキャッシュユニットに該当するロック変数が登録
されていない場合を併せて記載しているが、ローカルキ
ャッシュユニットのロック変数の状態がULSの場合に
は既に登録されているため登録は不要である。
【0042】また、ローカルキャッシュユニットに該当
するロック変数が登録されていない場合には、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。
するロック変数が登録されていない場合には、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。
【0043】図14を参照して、データ処理装置からア
ンロックリクエストが発行された場合の第三の実施例に
おける動作について説明する。図14を参照すると、図
10と同様に、最左欄はローカルキャッシュユニットに
おけるロック変数の状態を表し、中欄はそれ以外のキャ
ッシュユニットにおけるロック変数の状態を表す。ま
た、最右欄はそれぞれの場合における動作を表す。すな
わち、ローカルキャッシュユニットのロック変数の状態
がLKEであれば、他のローカルキャッシュユニットの
ロック変数の状態にかかわらず、ロックリクエスト制御
装置はそのロック変数の状態をULEにする。
ンロックリクエストが発行された場合の第三の実施例に
おける動作について説明する。図14を参照すると、図
10と同様に、最左欄はローカルキャッシュユニットに
おけるロック変数の状態を表し、中欄はそれ以外のキャ
ッシュユニットにおけるロック変数の状態を表す。ま
た、最右欄はそれぞれの場合における動作を表す。すな
わち、ローカルキャッシュユニットのロック変数の状態
がLKEであれば、他のローカルキャッシュユニットの
ロック変数の状態にかかわらず、ロックリクエスト制御
装置はそのロック変数の状態をULEにする。
【0044】図15を参照して、上記第三の実施例の特
徴について説明する。まず、左側のキャッシュユニット
205のロック変数の状態がLKSで、右側のキャッシ
ュユニット206のロック変数の状態がULLであった
場合に、左側のキャッシュユニット205でアンロック
リクエストが発行されると、左側のキャッシュユニット
205のロック変数の状態がULEに更新され、右側の
キャッシュユニット206のロック変数の状態がULS
に更新される(図14参照)。この状態で左側のキャッ
シュユニット205でロックリクエストが発行される
と、他のキャッシュユニット206の状態にかかわらず
左側のキャッシュユニット205でロックを取得でき
る。この効果は第一の実施例で得られる効果と同様であ
る。この結果、左側のキャッシュユニット205のロッ
ク変数の状態はLKEとなる(図13参照)。そして、
この状態において再び左側のキャッシュユニット205
でアンロックリクエストが発行されると、左側のキャッ
シュユニット205のロック変数の状態がULEに更新
される(図14参照)。この場合は、最初のアンロック
リクエストの場合と比べて、他のキャッシュユニットに
対する操作は不要である。
徴について説明する。まず、左側のキャッシュユニット
205のロック変数の状態がLKSで、右側のキャッシ
ュユニット206のロック変数の状態がULLであった
場合に、左側のキャッシュユニット205でアンロック
リクエストが発行されると、左側のキャッシュユニット
205のロック変数の状態がULEに更新され、右側の
キャッシュユニット206のロック変数の状態がULS
に更新される(図14参照)。この状態で左側のキャッ
シュユニット205でロックリクエストが発行される
と、他のキャッシュユニット206の状態にかかわらず
左側のキャッシュユニット205でロックを取得でき
る。この効果は第一の実施例で得られる効果と同様であ
る。この結果、左側のキャッシュユニット205のロッ
ク変数の状態はLKEとなる(図13参照)。そして、
この状態において再び左側のキャッシュユニット205
でアンロックリクエストが発行されると、左側のキャッ
シュユニット205のロック変数の状態がULEに更新
される(図14参照)。この場合は、最初のアンロック
リクエストの場合と比べて、他のキャッシュユニットに
対する操作は不要である。
【0045】このように、本発明の第三の実施例によれ
ば、第二の実施例のロック変数の状態LCKをLKEと
LKSとに分けたことにより、LKEの状態からロック
を解放するために他のキャッシュユニットを操作する必
要がなくなるという効果がある。
ば、第二の実施例のロック変数の状態LCKをLKEと
LKSとに分けたことにより、LKEの状態からロック
を解放するために他のキャッシュユニットを操作する必
要がなくなるという効果がある。
【0046】次に本発明の第四の実施例について図面を
参照して説明する。
参照して説明する。
【0047】図16を参照すると、第四の実施例におけ
るロック変数は、ULS、ULE、SLKおよびRSV
の4つの状態のいずれかをとる。すなわち、第一の実施
例におけるLCKの状態をなくし、SLKとRSVとい
う状態を設けたことを特徴とする。これらSLKおよび
RSVは共に、システム内のいずれかのキャッシュユニ
ットにおいてロックが取得されていることを意味する。
ロックを取得しているキャッシュユニットは自分自身で
あるかもしれないし、他のキャッシュユニットであるか
もしれない。SLKとRSVの違いは、ロックが解放さ
れた際に、SLKの状態であればULSの状態になる
が、RSVの状態であればULEの状態になるという点
にある。このRSVにより、アンロック時にULEの状
態にすべきロック変数を予約しておくことができる。
るロック変数は、ULS、ULE、SLKおよびRSV
の4つの状態のいずれかをとる。すなわち、第一の実施
例におけるLCKの状態をなくし、SLKとRSVとい
う状態を設けたことを特徴とする。これらSLKおよび
RSVは共に、システム内のいずれかのキャッシュユニ
ットにおいてロックが取得されていることを意味する。
ロックを取得しているキャッシュユニットは自分自身で
あるかもしれないし、他のキャッシュユニットであるか
もしれない。SLKとRSVの違いは、ロックが解放さ
れた際に、SLKの状態であればULSの状態になる
が、RSVの状態であればULEの状態になるという点
にある。このRSVにより、アンロック時にULEの状
態にすべきロック変数を予約しておくことができる。
【0048】図17を参照して、データ処理装置からロ
ックリクエストが発行された場合の第四の実施例におけ
る動作について説明する。図7を参照すると、図5の場
合と同様に、最左欄はローカルキャッシュユニットにお
けるロック変数の状態を表し、中欄はそれ以外のキャッ
シュユニットにおけるロック変数の状態を表す。また、
最右欄はそれぞれの場合における動作を表す。
ックリクエストが発行された場合の第四の実施例におけ
る動作について説明する。図7を参照すると、図5の場
合と同様に、最左欄はローカルキャッシュユニットにお
けるロック変数の状態を表し、中欄はそれ以外のキャッ
シュユニットにおけるロック変数の状態を表す。また、
最右欄はそれぞれの場合における動作を表す。
【0049】ローカルキャッシュユニットのロック変数
の状態がSLKまたはRSVであれば、いずれかのキャ
ッシュユニットでロックが取得されているため、ロック
制御装置は”ロック失敗”の結果を返す。
の状態がSLKまたはRSVであれば、いずれかのキャ
ッシュユニットでロックが取得されているため、ロック
制御装置は”ロック失敗”の結果を返す。
【0050】一方、ローカルキャッシュユニットのロッ
ク変数の状態がULEの場合は、他のキャッシュユニッ
トの状態にかかわらず、”ロック成功”となり、ローカ
ルキャッシュユニットのロック変数の状態はRSVとな
る。
ク変数の状態がULEの場合は、他のキャッシュユニッ
トの状態にかかわらず、”ロック成功”となり、ローカ
ルキャッシュユニットのロック変数の状態はRSVとな
る。
【0051】また、ローカルキャッシュユニットのロッ
ク変数の状態がULSの場合は、ローカルキャッシュユ
ニット以外のキャッシュユニットのロック変数の状態を
参照して、”ロック成功”か”ロック失敗”かが判断さ
れる。但し、いずれの場合も、ローカルキャッシュユニ
ットのロック変数の状態はRSVとなる。アンロック時
にULEの状態になるように予約するためである。
ク変数の状態がULSの場合は、ローカルキャッシュユ
ニット以外のキャッシュユニットのロック変数の状態を
参照して、”ロック成功”か”ロック失敗”かが判断さ
れる。但し、いずれの場合も、ローカルキャッシュユニ
ットのロック変数の状態はRSVとなる。アンロック時
にULEの状態になるように予約するためである。
【0052】また、ローカルキャッシュユニットに該当
するロック変数が登録されていない場合にも、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。
するロック変数が登録されていない場合にも、ローカル
キャッシュユニットのロック変数の状態がULSの場合
とほぼ同様の処理を行う。但し、この場合には当該ロッ
クリクエストにかかるロック変数のアドレスをロックア
ドレスレジスタに登録する。
【0053】図18を参照して、データ処理装置からア
ンロックリクエストが発行された場合の第四の実施例に
おける動作について説明する。図18を参照すると、図
10と同様に、最左欄はローカルキャッシュユニットに
おけるロック変数の状態を表し、中欄はそれ以外のキャ
ッシュユニットにおけるロック変数の状態を表す。ま
た、最右欄はそれぞれの場合における動作を表す。すな
わち、ローカルキャッシュユニットのロック変数の状態
がRSVの場合には、他のキャッシュユニットのロック
変数の状態にかかわらず、ロックリクエスト制御装置は
そのロック変数の状態をULEにする。また、ローカル
キャッシュユニットのロック変数の状態がSLKの場合
には、当該ローカルキャッシュユニットはULS状態と
なる。またこの場合、ローカルキャッシュユニット以外
のキャッシュユニットが、RSVであればULEとな
り、SLKであればULSになる。
ンロックリクエストが発行された場合の第四の実施例に
おける動作について説明する。図18を参照すると、図
10と同様に、最左欄はローカルキャッシュユニットに
おけるロック変数の状態を表し、中欄はそれ以外のキャ
ッシュユニットにおけるロック変数の状態を表す。ま
た、最右欄はそれぞれの場合における動作を表す。すな
わち、ローカルキャッシュユニットのロック変数の状態
がRSVの場合には、他のキャッシュユニットのロック
変数の状態にかかわらず、ロックリクエスト制御装置は
そのロック変数の状態をULEにする。また、ローカル
キャッシュユニットのロック変数の状態がSLKの場合
には、当該ローカルキャッシュユニットはULS状態と
なる。またこの場合、ローカルキャッシュユニット以外
のキャッシュユニットが、RSVであればULEとな
り、SLKであればULSになる。
【0054】図19を参照して、上記第四の実施例の特
徴について説明する。まず、左側のキャッシュユニット
205のロック変数の状態がULSで、右側のキャッシ
ュユニット206のロック変数の状態がRSVでロック
を確保している場合に、左側のキャッシュユニット20
5でロックリクエストが発行されると、ロック確保は失
敗し、左側のキャッシュユニット205のロック変数の
状態がULSからRSVに更新され、右側のキャッシュ
ユニット206のロック変数の状態がSLKに更新され
る(図17参照)。但し、ロックは右側のキャッシュユ
ニット206に確保されたままである。この状態で右側
のキャッシュユニット206でアンロックリクエストが
発行されると、右側のキャッシュユニット206のロッ
ク変数の状態がULSとなり、左側のキャッシュユニッ
ト205のロック変数の状態がULEとなる(図18参
照)。これにより、次に左側のキャッシュユニット20
5でロックリクエストが発行されると、他のキャッシュ
ユニット206の状態にかかわらず左側のキャッシュユ
ニット205でロックを取得できる。そして、左側のキ
ャッシュユニット205のロック変数の状態がRSVに
更新される(図17参照)。
徴について説明する。まず、左側のキャッシュユニット
205のロック変数の状態がULSで、右側のキャッシ
ュユニット206のロック変数の状態がRSVでロック
を確保している場合に、左側のキャッシュユニット20
5でロックリクエストが発行されると、ロック確保は失
敗し、左側のキャッシュユニット205のロック変数の
状態がULSからRSVに更新され、右側のキャッシュ
ユニット206のロック変数の状態がSLKに更新され
る(図17参照)。但し、ロックは右側のキャッシュユ
ニット206に確保されたままである。この状態で右側
のキャッシュユニット206でアンロックリクエストが
発行されると、右側のキャッシュユニット206のロッ
ク変数の状態がULSとなり、左側のキャッシュユニッ
ト205のロック変数の状態がULEとなる(図18参
照)。これにより、次に左側のキャッシュユニット20
5でロックリクエストが発行されると、他のキャッシュ
ユニット206の状態にかかわらず左側のキャッシュユ
ニット205でロックを取得できる。そして、左側のキ
ャッシュユニット205のロック変数の状態がRSVに
更新される(図17参照)。
【0055】このように、本発明の第四の実施例によれ
ば、第一の実施例のロック変数の状態LCKをなくして
RSVという状態を設けたことにより、ロック解放後に
ULE状態とすべきキャッシュユニットを予約すること
ができ、ロック解放後のロック取得の高速化を柔軟に図
ることができる。
ば、第一の実施例のロック変数の状態LCKをなくして
RSVという状態を設けたことにより、ロック解放後に
ULE状態とすべきキャッシュユニットを予約すること
ができ、ロック解放後のロック取得の高速化を柔軟に図
ることができる。
【0056】
【発明の効果】以上説明したように本発明によれば、ロ
ックアドレスレジスタに対応して各種ロック変数の状態
を設けることにより、ロックリクエストを発行した中央
処理装置に直接接続されていないセカンドキャッシュへ
のロック変数の参照を不要にする。これにより、ロック
取得を高速にするとともに、不必要なバスアクセスを無
くしてバストラフィックの増大を削減するという効果が
ある。
ックアドレスレジスタに対応して各種ロック変数の状態
を設けることにより、ロックリクエストを発行した中央
処理装置に直接接続されていないセカンドキャッシュへ
のロック変数の参照を不要にする。これにより、ロック
取得を高速にするとともに、不必要なバスアクセスを無
くしてバストラフィックの増大を削減するという効果が
ある。
【図1】本発明が適用されるデータ処理システムの全体
構成の一例を示す図である。
構成の一例を示す図である。
【図2】本発明のデータ処理システムにおけるキャッシ
ュユニットの構成を示す図である。
ュユニットの構成を示す図である。
【図3】本発明のロックリクエスト制御装置の構成を示
す図である。
す図である。
【図4】本発明の第一の実施例におけるロック変数の状
態を示す図である。
態を示す図である。
【図5】本発明の第一の実施例におけるロックリクエス
ト発生時の動作を示す図である。
ト発生時の動作を示す図である。
【図6】本発明の第一の実施例におけるアンロックリク
エスト発生時の動作を示す図である。
エスト発生時の動作を示す図である。
【図7】本発明の第一の実施例における動作の具体例を
示す図である。
示す図である。
【図8】本発明の第二の実施例におけるロック変数の状
態を示す図である。
態を示す図である。
【図9】本発明の第二の実施例におけるロックリクエス
ト発生時の動作を示す図である。
ト発生時の動作を示す図である。
【図10】本発明の第二の実施例におけるアンロックリ
クエスト発生時の動作を示す図である。
クエスト発生時の動作を示す図である。
【図11】本発明の第二の実施例における動作の具体例
を示す図である。
を示す図である。
【図12】本発明の第三の実施例におけるロック変数の
状態を示す図である。
状態を示す図である。
【図13】本発明の第三の実施例におけるロックリクエ
スト発生時の動作を示す図である。
スト発生時の動作を示す図である。
【図14】本発明の第三の実施例におけるアンロックリ
クエスト発生時の動作を示す図である。
クエスト発生時の動作を示す図である。
【図15】本発明の第三の実施例における動作の具体例
を示す図である。
を示す図である。
【図16】本発明の第四の実施例におけるロック変数の
状態を示す図である。
状態を示す図である。
【図17】本発明の第四の実施例におけるロックリクエ
スト発生時の動作を示す図である。
スト発生時の動作を示す図である。
【図18】本発明の第四の実施例におけるアンロックリ
クエスト発生時の動作を示す図である。
クエスト発生時の動作を示す図である。
【図19】本発明の第四の実施例における動作の具体例
を示す図である。
を示す図である。
1,2 ロックアドレスレジスタ 3,4 ロックアドレス一致検出回路 5,6 ロックステータスレジスタ 7 セレクタ 8 ロックリクエスト制御回路 21,22 リクエストバッファ 23 セレクタ 24 アドレスアレイ 25 ロックリクエスト制御装置 26,27 セレクタ 201〜204 処理装置 205,206 キャッシュユニット 207 記憶装置
Claims (6)
- 【請求項1】 主記憶を共有する複数のデータ処理装置
を有するデータ処理システムにおける前記複数のデータ
処理装置の少なくとも一つに関するロック変数の状態を
それぞれ制御する複数のロック制御装置において、 前記ロック変数の状態を少なくとも一つ登録する登録手
段と、 前記登録手段に登録されたロック変数の状態を保持する
状態保持手段とを含み、 前記状態保持手段は、前記ロック変数の状態として、い
ずれのロック制御装置においてもロック取得されていな
い旨の特定の状態を含み、各ロック変数については前記
ロック制御装置の多くとも一つのみが当該特定の状態を
とるように制御されることを特徴とするロック制御装
置。 - 【請求項2】 前記特定の状態にあるロック変数に関し
てロックリクエストが発行された場合には他のロック制
御装置の状態を参照せずにロック確保成功であることを
判断することを特徴とする請求項1記載のロック制御装
置。 - 【請求項3】 主記憶を共有する複数のデータ処理装置
を有するデータ処理システムにおける前記複数のデータ
処理装置の少なくとも一つに関するロック変数の状態を
それぞれ制御する複数のロック制御装置において、 前記ロック変数の状態を少なくとも一つ登録する登録手
段と、 前記登録手段に登録されたロック変数の状態を保持する
状態保持手段とを含み、 前記状態保持手段は、前記ロック変数の状態として、自
ロック制御装置がロックを取得しておりかつ他のロック
制御装置がロックを取得していない旨を表す第1の状態
と、自ロック制御装置がロックを取得しておらずかつ他
のロック制御装置がロックを取得しているかは不明であ
る旨を表す第2の状態と、いずれのロック制御装置にお
いてもロック取得されていない旨を表す第3の状態とを
有し、 前記第3の状態にあるロック変数に関してロックリクエ
ストが発行された場合には他のロック制御装置の状態を
参照せずにロック確保成功であることを判断することを
特徴とするロック制御装置。 - 【請求項4】 主記憶を共有する複数のデータ処理装置
を有するデータ処理システムにおける前記複数のデータ
処理装置の少なくとも一つに関するロック変数の状態を
それぞれ制御する複数のロック制御装置において、 前記ロック変数の状態を少なくとも一つ登録する登録手
段と、 前記登録手段に登録されたロック変数の状態を保持する
状態保持手段とを含み、 前記状態保持手段は、前記ロック変数の状態として、自
ロック制御装置がロックを取得しておりかつ他のロック
制御装置がロックを取得していない旨を表す第1の状態
と、自ロック制御装置がロックを取得しておらずかつ他
のロック制御装置がロックを取得しているかは不明であ
る旨を表す第2の状態と、いずれのロック制御装置にお
いてもロック取得されていない旨を表す第3の状態と、
自ロック制御装置がロックを取得していなくかつ他のロ
ック制御装置がロックを取得している旨を表す第4の状
態とを有し、 前記第3の状態にあるロック変数に関してロックリクエ
ストが発行された場合には他のロック制御装置の状態を
参照せずにロック確保成功であることを判断し、前記第
4の状態にあるロック変数に関してロックリクエストが
発行された場合には他のロック制御装置に当該ロックリ
クエストを伝えないことを特徴とするロック制御装置。 - 【請求項5】 主記憶を共有する複数のデータ処理装置
を有するデータ処理システムにおける前記複数のデータ
処理装置の少なくとも一つに関するロック変数の状態を
それぞれ制御する複数のロック制御装置において、 前記ロック変数の状態を少なくとも一つ登録する登録手
段と、 前記登録手段に登録されたロック変数の状態を保持する
状態保持手段とを含み、 前記状態保持手段は、前記ロック変数の状態として、自
ロック制御装置がロックを取得しておらずかつ他のロッ
ク制御装置がロックを取得しているかは不明である旨を
表す第1の状態と、いずれのロック制御装置においても
ロック取得されていない旨を表す第2の状態と、自ロッ
ク制御装置がロックを取得していなくかつ他のロック制
御装置がロックを取得している旨を表す第3の状態と、
自ロック制御装置がロックを取得しておりかつ他のロッ
ク制御装置が前記第3の状態にあるかもしれない旨を表
す第4の状態と、自ロック制御装置がロックを取得して
おりかつ他のロック制御装置が前記第3の状態にはない
旨を表す第5の状態とを有し、 前記第2の状態にあるロック変数に関してロックリクエ
ストが発行された場合には他のロック制御装置の状態を
参照せずにロック確保成功であることを判断し、前記第
3の状態にあるロック変数に関してロックリクエストが
発行された場合には他のロック制御装置に当該ロックリ
クエストを伝えず、前記第5の状態にあるロック変数に
関してアンロックリクエストが発行された場合には他の
ロック制御装置に当該アンロックリクエストを伝えない
ことを特徴とするロック制御装置。 - 【請求項6】 主記憶を共有する複数のデータ処理装置
を有するデータ処理システムにおいて、前記複数のデー
タ処理装置の少なくとも一つに関するロック変数の状態
をそれぞれ制御する複数のロック制御装置であって、 前記ロック変数の状態を少なくとも一つ登録する登録手
段と、 前記登録手段に登録されたロック変数の状態を保持する
状態保持手段とを含み、 前記状態保持手段は、前記ロック変数の状態として、自
ロック制御装置がロックを取得しておらずかつ他のロッ
ク制御装置がロックを取得しているかは不明である旨を
表す第1の状態と、いずれのロック制御装置においても
ロック取得されていない旨を表す第2の状態と、いずれ
かのロック制御装置がロックを確保しておりかつアンロ
ックリクエストに対しては前記第1の状態に遷移する旨
を表す第3の状態と、いずれかのロック制御装置がロッ
クを確保しておりかつアンロックリクエストに対しては
前記第2の状態に遷移する旨を表す第4の状態とを有
し、 前記第2の状態にあるロック変数に関してロックリクエ
ストが発行された場合には他のロック制御装置の状態を
参照せずにロック確保成功であることを判断することを
特徴とするロック制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11419495A JP2826483B2 (ja) | 1994-05-25 | 1995-05-12 | ロック制御装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6-110850 | 1994-05-25 | ||
JP11085094 | 1994-05-25 | ||
JP11419495A JP2826483B2 (ja) | 1994-05-25 | 1995-05-12 | ロック制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0844616A JPH0844616A (ja) | 1996-02-16 |
JP2826483B2 true JP2826483B2 (ja) | 1998-11-18 |
Family
ID=26450371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11419495A Expired - Fee Related JP2826483B2 (ja) | 1994-05-25 | 1995-05-12 | ロック制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2826483B2 (ja) |
-
1995
- 1995-05-12 JP JP11419495A patent/JP2826483B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0844616A (ja) | 1996-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5721870A (en) | Lock control for a shared main storage data processing system | |
US4733352A (en) | Lock control for a shared storage in a data processing system | |
US5987550A (en) | Lock mechanism for shared resources in a data processing system | |
US6105085A (en) | Lock mechanism for shared resources having associated data structure stored in common memory include a lock portion and a reserve portion | |
RU99107385A (ru) | Система и способ обеспечения когерентности памяти в многошинной компьютерной системе | |
US6076126A (en) | Software locking mechanism for locking shared resources in a data processing system | |
JPH03118649A (ja) | メモリーサブシステム入力キュー | |
US6490662B1 (en) | System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module | |
US5893156A (en) | Lock control apparatus and method including controlling means for setting a lock variable status | |
EP0789303B1 (en) | Memory system and a data communication system | |
JP3965784B2 (ja) | 共有メモリ排他アクセス制御方法 | |
JP2826483B2 (ja) | ロック制御装置 | |
EP0291907B1 (en) | Interprocessor communication system in information processing system enabling communication between execution processor units during communication between other processor units | |
US6389519B1 (en) | Method and apparatus for providing probe based bus locking and address locking | |
JP3037241B2 (ja) | ロック制御装置 | |
JPH1097507A (ja) | ロック制御システムおよび方法 | |
JP2731761B2 (ja) | ネットワーク制御装置 | |
JPH10333973A (ja) | 排他制御装置とデータ処理システム | |
JP2742246B2 (ja) | ロックリクエスト制御機構 | |
JPH11353232A (ja) | 階層型バス構成マルチプロセッサシステムにおけるキャッシュ制御方法 | |
JP2547329B2 (ja) | ロツクデータ設定装置 | |
JP3049125B2 (ja) | Cpu間割込み制御装置 | |
KR0171771B1 (ko) | 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 | |
JPH03118650A (ja) | キャッシュサポート構造 | |
JPH0589027A (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: 19980811 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |