JPH05233531A - バス制御システム - Google Patents
バス制御システムInfo
- Publication number
- JPH05233531A JPH05233531A JP4030239A JP3023992A JPH05233531A JP H05233531 A JPH05233531 A JP H05233531A JP 4030239 A JP4030239 A JP 4030239A JP 3023992 A JP3023992 A JP 3023992A JP H05233531 A JPH05233531 A JP H05233531A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- request
- bus
- read
- area
- 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
Links
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 排他制御用のロック情報を設定する場合に、
真に必要な時間のみバスを使用するようにして、バス使
用の無駄な時間をなくすとともに、バス待ち時間を短縮
することができ、それによりバススル−プットを向上さ
せる。 【構成】 従来のテスト&セット命令をそのまま使用
し、かつスプリットトランザクション方式を基にして、
共有メモリ側にロック中状態を管理するロック中管理バ
ッファと、テスト&セット命令読み出し実行要求を蓄積
するT&Sリ−ドペンディングバッファとを設ける。
真に必要な時間のみバスを使用するようにして、バス使
用の無駄な時間をなくすとともに、バス待ち時間を短縮
することができ、それによりバススル−プットを向上さ
せる。 【構成】 従来のテスト&セット命令をそのまま使用
し、かつスプリットトランザクション方式を基にして、
共有メモリ側にロック中状態を管理するロック中管理バ
ッファと、テスト&セット命令読み出し実行要求を蓄積
するT&Sリ−ドペンディングバッファとを設ける。
Description
【0001】
【産業上の利用分野】本発明は、複数のプロセッサと共
有メモリを備えたマルチプロセッサシステムにおいて、
プロセッサと共有メモリ間を接続するバスの転送能力を
向上させるためのスプリットトランザクション方式を基
本としたバス制御システムに関するものである。
有メモリを備えたマルチプロセッサシステムにおいて、
プロセッサと共有メモリ間を接続するバスの転送能力を
向上させるためのスプリットトランザクション方式を基
本としたバス制御システムに関するものである。
【0002】
【従来の技術】従来より、複数のプロセッサをバスを介
して共有メモリに接続する構成のマルチプロセッサが多
く用いられている。図2は、従来のバス制御システムの
ブロック図である。図2において、1−1〜1−5はプ
ロセッサ、2はバス、3は共有メモリである。この共有
メモリ3は、バス2を介して5台のプロセッサからアク
セスされ、デ−タの読み書きが行われる。プロセッサ1
−1が共有メモリ3にデ−タの読み書きを行う場合に
は、先ずバス2の使用権を確保した後、共有メモリ3へ
の書き込みアドレスと書き込みデ−タをバス2上に送出
することにより、メモリアクセスが開始される。そし
て、メモリアクセスタイムに相当する遅延時間を経て後
に、書き込み処理が終了する。この間、バス2は継続的
にプロセッサ1−1に占有される。従って、もしメモリ
アクセスタイムが長い場合には、共有メモリ3からのア
ンサ(書き込み完了信号)が到達するまでバス2を長時
間無効保留するため、他のプロセッサ1−2〜1−5が
バス2を使用したい場合でも長時間待たされることにな
る。その結果、プロセッサの処理能力低下、あるいは単
位時間当りに実際に転送可能なデ−タ量(バススル−プ
ット)が大幅に低下してしまうという問題があった。こ
れを解決する方法の1つとして、スプリットトランザク
ション方式と呼ばれるバス制御方式が提案されている。
なお、スプリットトランザクション方式の従来文献とし
ては、例えば、『Performance Bus Interface D
esigner′sGuide』(1991年)National Semiconduct
or社発行、に記載されている。
して共有メモリに接続する構成のマルチプロセッサが多
く用いられている。図2は、従来のバス制御システムの
ブロック図である。図2において、1−1〜1−5はプ
ロセッサ、2はバス、3は共有メモリである。この共有
メモリ3は、バス2を介して5台のプロセッサからアク
セスされ、デ−タの読み書きが行われる。プロセッサ1
−1が共有メモリ3にデ−タの読み書きを行う場合に
は、先ずバス2の使用権を確保した後、共有メモリ3へ
の書き込みアドレスと書き込みデ−タをバス2上に送出
することにより、メモリアクセスが開始される。そし
て、メモリアクセスタイムに相当する遅延時間を経て後
に、書き込み処理が終了する。この間、バス2は継続的
にプロセッサ1−1に占有される。従って、もしメモリ
アクセスタイムが長い場合には、共有メモリ3からのア
ンサ(書き込み完了信号)が到達するまでバス2を長時
間無効保留するため、他のプロセッサ1−2〜1−5が
バス2を使用したい場合でも長時間待たされることにな
る。その結果、プロセッサの処理能力低下、あるいは単
位時間当りに実際に転送可能なデ−タ量(バススル−プ
ット)が大幅に低下してしまうという問題があった。こ
れを解決する方法の1つとして、スプリットトランザク
ション方式と呼ばれるバス制御方式が提案されている。
なお、スプリットトランザクション方式の従来文献とし
ては、例えば、『Performance Bus Interface D
esigner′sGuide』(1991年)National Semiconduct
or社発行、に記載されている。
【0003】
【発明が解決しようとする課題】スプリットトランザク
ション方式では、プロセッサからメモリに読み書きを行
う場合のバスアクセスサイクルを、プロセッサからメモ
リへの方向でアクセスするメモリアクセス要求サイクル
と、メモリからプロセッサへの方向でアンサを返送する
アンササイクル(読み出しでは、読み出しデ−タを返
送、書き込みでは、書き込み完了信号を返送)の2つの
サイクルに分割することバより、両者の間で一旦バスを
解放して、他のプロセッサ等がバスを使用できるように
する。これにより、スプリットトランザクション方式で
は、メモリからのアンサまでの待ち時間にバスを他の装
置に有効に利用させることにより、特にアクセスタイム
が長い場合には、スプリットしない方式に比べてバスス
ル−プットを大きく向上させることができる。次に、図
2における排他制御について述べる。複数のプロセッサ
1−1〜1−5をバス接続したマルチプロセッサシステ
ムにおいて、プロセッサ1−1が共有メモリ3のデ−タ
を読み出した後、そのデ−タを更新する前に、他のプロ
セッサ1−2が共有メモリ3上のデ−タを書き換えてし
まうと、両プロセッサ間で処理に矛盾が生じる。これを
防止するために、従来では、ソフトウェアレベルで『テ
スト&セット命令』を用い、またハ−ドウェアレベルで
は、『リ−ドモディファイライト方式』を用いていた。
これにより、最初のプロセッサ1−1が共有メモリ3を
アクセスした時点で排他制御を行っていた。具体的に
は、先ず共有メモリ3上のあるデ−タ(ロック状態デ−
タ)に、各プロセッサが使用中(ロック中)であるか否
かの情報を記憶させる。バス権を確保したプロセッサ
(例えば、プロセッサ1−1)はテスト&セット命令に
よりロック状態デ−タを読み出した後、バス2をそのま
ま占有してロック状態デ−タをロック中に書き換えてし
まう。このように、テスト&セット命令の前半の読み出
しサイクルと後半の書き込みサイクルの間で、バスを解
放せずに連続使用して、書き換えるバスアクセス方式が
リ−ドモディファイライト方式である。
ション方式では、プロセッサからメモリに読み書きを行
う場合のバスアクセスサイクルを、プロセッサからメモ
リへの方向でアクセスするメモリアクセス要求サイクル
と、メモリからプロセッサへの方向でアンサを返送する
アンササイクル(読み出しでは、読み出しデ−タを返
送、書き込みでは、書き込み完了信号を返送)の2つの
サイクルに分割することバより、両者の間で一旦バスを
解放して、他のプロセッサ等がバスを使用できるように
する。これにより、スプリットトランザクション方式で
は、メモリからのアンサまでの待ち時間にバスを他の装
置に有効に利用させることにより、特にアクセスタイム
が長い場合には、スプリットしない方式に比べてバスス
ル−プットを大きく向上させることができる。次に、図
2における排他制御について述べる。複数のプロセッサ
1−1〜1−5をバス接続したマルチプロセッサシステ
ムにおいて、プロセッサ1−1が共有メモリ3のデ−タ
を読み出した後、そのデ−タを更新する前に、他のプロ
セッサ1−2が共有メモリ3上のデ−タを書き換えてし
まうと、両プロセッサ間で処理に矛盾が生じる。これを
防止するために、従来では、ソフトウェアレベルで『テ
スト&セット命令』を用い、またハ−ドウェアレベルで
は、『リ−ドモディファイライト方式』を用いていた。
これにより、最初のプロセッサ1−1が共有メモリ3を
アクセスした時点で排他制御を行っていた。具体的に
は、先ず共有メモリ3上のあるデ−タ(ロック状態デ−
タ)に、各プロセッサが使用中(ロック中)であるか否
かの情報を記憶させる。バス権を確保したプロセッサ
(例えば、プロセッサ1−1)はテスト&セット命令に
よりロック状態デ−タを読み出した後、バス2をそのま
ま占有してロック状態デ−タをロック中に書き換えてし
まう。このように、テスト&セット命令の前半の読み出
しサイクルと後半の書き込みサイクルの間で、バスを解
放せずに連続使用して、書き換えるバスアクセス方式が
リ−ドモディファイライト方式である。
【0004】次に、プロセッサ1−1は、ロック状態デ
−タを読み出し、そのデ−タをテスト命令によりテスト
する。もし、ロック中であることが表示されているとき
には、他のプロセッサ1−2〜1−5が先にロックを設
定していたことになる。その場合には、ロック中表示が
クリアされるまで、プロセッサ1−1はテスト&セット
命令によるデ−タ読み出しとテスト命令によるテストと
を繰り返し行う。このように、ロック中表示がクリアさ
れるまで、各プロセッサが同じ部分の命令実行を繰り返
し行うことを、スピンロックと呼ぶ。以上述べたよう
に、従来のリ−ドモディファイライトモ−ドの問題点
は、読み出しサイクルと書き込みサイクルの連続によ
りバスを長時間保留してしまい、他のプロセッサがバス
使用権を獲得しようとしても、非常に長い待ち時間が必
要となること、およびテスト&セット命令でテスト結
果がロック中を表示していた場合には、テスト&セット
命令を再実行する(つまり、スピンする)ので、スピン
による無駄なバス使用が増加し、さらにバストラヒック
を圧迫してしまうこと、である。本発明の目的は、これ
ら従来の課題を解決し、排他制御用のロック情報を設定
する場合にも、無駄なバス使用時間をなくし、バス使用
要求の待ち時間を短縮して、バススル−プットを向上さ
せることが可能なバス制御システムを提供することにあ
る。
−タを読み出し、そのデ−タをテスト命令によりテスト
する。もし、ロック中であることが表示されているとき
には、他のプロセッサ1−2〜1−5が先にロックを設
定していたことになる。その場合には、ロック中表示が
クリアされるまで、プロセッサ1−1はテスト&セット
命令によるデ−タ読み出しとテスト命令によるテストと
を繰り返し行う。このように、ロック中表示がクリアさ
れるまで、各プロセッサが同じ部分の命令実行を繰り返
し行うことを、スピンロックと呼ぶ。以上述べたよう
に、従来のリ−ドモディファイライトモ−ドの問題点
は、読み出しサイクルと書き込みサイクルの連続によ
りバスを長時間保留してしまい、他のプロセッサがバス
使用権を獲得しようとしても、非常に長い待ち時間が必
要となること、およびテスト&セット命令でテスト結
果がロック中を表示していた場合には、テスト&セット
命令を再実行する(つまり、スピンする)ので、スピン
による無駄なバス使用が増加し、さらにバストラヒック
を圧迫してしまうこと、である。本発明の目的は、これ
ら従来の課題を解決し、排他制御用のロック情報を設定
する場合にも、無駄なバス使用時間をなくし、バス使用
要求の待ち時間を短縮して、バススル−プットを向上さ
せることが可能なバス制御システムを提供することにあ
る。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、本発明のバス制御システムは、ロック要求を送出す
る複数のモジュ−ルと、ロック要求を受け付け、ロック
中表示を行う記憶領域を有する共有モジュ−ルと、複数
のモジュ−ルおよび共有モジュ−ル間を相互接続するバ
スを有し、指定された記憶領域にロック中であることを
表示する情報を設定することにより排他制御を行う情報
処理システムにおいて、共有モジュ−ル内に、バスを経
由して送出されたロック要求を実現するバスアクセスシ
−ケンスを、ロック設定領域読み出し要求サイクルと
読み出しアンササイクルとロック設定領域書き込み
要求サイクルと書き込み完了アンササイクルの4つの
バスサイクルに分割したスプリットトランザクション方
式で実行するバス制御手段と、ロック要求を送出したモ
ジュ−ルおよびロック設定領域に関する識別情報を記憶
するロック管理記憶手段と、ロック設定領域読み出し要
求を記憶する要求ペンディング記憶手段と、共有モジュ
−ルがロック設定領域読み出し要求を受信した場合、ロ
ック管理記憶手段を参照してロック領域がロック中を表
示しているときには、ロック設定領域読み出し要求を要
求ペンディング記憶手段に記憶し、ロック領域がロック
中から解除されたときには、要求ペンディング記憶手段
からロック領域設定要求を読み出して、これをロック管
理記憶手段に登録することにより、待ち合わせていたロ
ック要求の処理を開始する実行制御手段とを有すること
に特徴がある。
め、本発明のバス制御システムは、ロック要求を送出す
る複数のモジュ−ルと、ロック要求を受け付け、ロック
中表示を行う記憶領域を有する共有モジュ−ルと、複数
のモジュ−ルおよび共有モジュ−ル間を相互接続するバ
スを有し、指定された記憶領域にロック中であることを
表示する情報を設定することにより排他制御を行う情報
処理システムにおいて、共有モジュ−ル内に、バスを経
由して送出されたロック要求を実現するバスアクセスシ
−ケンスを、ロック設定領域読み出し要求サイクルと
読み出しアンササイクルとロック設定領域書き込み
要求サイクルと書き込み完了アンササイクルの4つの
バスサイクルに分割したスプリットトランザクション方
式で実行するバス制御手段と、ロック要求を送出したモ
ジュ−ルおよびロック設定領域に関する識別情報を記憶
するロック管理記憶手段と、ロック設定領域読み出し要
求を記憶する要求ペンディング記憶手段と、共有モジュ
−ルがロック設定領域読み出し要求を受信した場合、ロ
ック管理記憶手段を参照してロック領域がロック中を表
示しているときには、ロック設定領域読み出し要求を要
求ペンディング記憶手段に記憶し、ロック領域がロック
中から解除されたときには、要求ペンディング記憶手段
からロック領域設定要求を読み出して、これをロック管
理記憶手段に登録することにより、待ち合わせていたロ
ック要求の処理を開始する実行制御手段とを有すること
に特徴がある。
【0006】
【作用】本発明においては、ソフトウェアレベルでは従
来のテスト&セット命令をそのまま使用するが、ハ−ド
ウェアレベルでは、スプリットトランザクション方式を
基本として、バッファで共有メモリ側にロック中の状態
の管理と、テスト&セット命令読み出し実行要求の蓄積
とを行い、それらを管理制御することにより、効率的な
排他制御を実現する。その場合に、リ−ドモディファイ
ライトのアクセスで読み出した結果は、必ずロック解除
となっているため、プロセッサ側ではスピン動作(テス
ト&セット命令の再実行動作)を行う必要がなく、無駄
なバス使用がなくなる。また、ロック中管理バッファと
テスト&セット・リ−ドペンディングバッファが連行メ
モリで構成されるので、バッファ内に登録されている情
報量に依存せず、一致アドレスの検出等を瞬時に行うこ
とができる。また、ロック中管理バッファのバッファ数
が複数個用意されるので、ロック中のアドレスが複数個
あってもそれぞれ異なるロック対象アドレスを有する複
数のロックを同時に管理することができ、非常に柔軟な
システムとなる。
来のテスト&セット命令をそのまま使用するが、ハ−ド
ウェアレベルでは、スプリットトランザクション方式を
基本として、バッファで共有メモリ側にロック中の状態
の管理と、テスト&セット命令読み出し実行要求の蓄積
とを行い、それらを管理制御することにより、効率的な
排他制御を実現する。その場合に、リ−ドモディファイ
ライトのアクセスで読み出した結果は、必ずロック解除
となっているため、プロセッサ側ではスピン動作(テス
ト&セット命令の再実行動作)を行う必要がなく、無駄
なバス使用がなくなる。また、ロック中管理バッファと
テスト&セット・リ−ドペンディングバッファが連行メ
モリで構成されるので、バッファ内に登録されている情
報量に依存せず、一致アドレスの検出等を瞬時に行うこ
とができる。また、ロック中管理バッファのバッファ数
が複数個用意されるので、ロック中のアドレスが複数個
あってもそれぞれ異なるロック対象アドレスを有する複
数のロックを同時に管理することができ、非常に柔軟な
システムとなる。
【0007】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1は、本発明の一実施例を示すバス制御シ
ステムのブロック図である。図1において、10−1〜
10−5はプロセッサ、11はプロセッサバス、12は
共有メモリシステムである。共有メモリシステム12に
は、メモリアクセス要求を一時的に蓄積するメモリアク
セス要求バッファ13、ランダムアクセスメモリで構成
される共有メモリ本体15、共有メモリ本体15へのア
クセスを行うに必要なアドレス、デ−タを記憶するメモ
リアクセスレジスタ14、現在ロック中のメモリアリア
に関する情報の記憶と制御を行うロック状態記憶部1
6、記憶部16に内蔵され、ロック中のアドレスを管理
するためのロック中管理バッファ17、同じく、メモリ
アクセスレジスタ14のアドレスとロック中管理バッフ
ァ17内のアドレスとを比較する比較器18、テスト&
セット命令実行要求の記憶と制御を行うアクセス要求記
憶部19、記憶部19に内蔵され、ロック中に到着した
テスト&セット読み出し要求を一時的に待たせるための
テスト&セット・リ−ド要求ペンディングバッファ2
0、ならびに同じく、メモリアクセスレジスタ14のア
ドレスと、テスト&セット・リ−ドペンディングバッフ
ァ20内のアドレスとを比較する比較器21が設けられ
ている。ロック中管理バッファ17は複数のバッファか
ら構成され、比較器18も複数の比較器を内蔵してい
る。
説明する。図1は、本発明の一実施例を示すバス制御シ
ステムのブロック図である。図1において、10−1〜
10−5はプロセッサ、11はプロセッサバス、12は
共有メモリシステムである。共有メモリシステム12に
は、メモリアクセス要求を一時的に蓄積するメモリアク
セス要求バッファ13、ランダムアクセスメモリで構成
される共有メモリ本体15、共有メモリ本体15へのア
クセスを行うに必要なアドレス、デ−タを記憶するメモ
リアクセスレジスタ14、現在ロック中のメモリアリア
に関する情報の記憶と制御を行うロック状態記憶部1
6、記憶部16に内蔵され、ロック中のアドレスを管理
するためのロック中管理バッファ17、同じく、メモリ
アクセスレジスタ14のアドレスとロック中管理バッフ
ァ17内のアドレスとを比較する比較器18、テスト&
セット命令実行要求の記憶と制御を行うアクセス要求記
憶部19、記憶部19に内蔵され、ロック中に到着した
テスト&セット読み出し要求を一時的に待たせるための
テスト&セット・リ−ド要求ペンディングバッファ2
0、ならびに同じく、メモリアクセスレジスタ14のア
ドレスと、テスト&セット・リ−ドペンディングバッフ
ァ20内のアドレスとを比較する比較器21が設けられ
ている。ロック中管理バッファ17は複数のバッファか
ら構成され、比較器18も複数の比較器を内蔵してい
る。
【0008】ロック状態記憶部16は、連想メモリ(C
ontent Addressable Memory:CAM)で実現されて
いる。連想メモリの各セルは、ロック中管理バッファ1
7中の1個のバッファと比較器18の中の1個の比較器
のペアで物理的に構成されている。もし、ロック中管理
バッファ17内に複数のアドレスが記憶されていても、
連想メモリ機能により比較を同時並列に行うことができ
る。また、テスト&セット・リ−ドペンディングバッフ
ァ20は複数のバッファから構成され、比較器21も複
数の比較器を内蔵している。なお、アクセス要求記憶部
19も連想メモリ(CAM)で実現されている。連想メ
モリの各セルは、テスト&セット・ペンディングバッフ
ァ20の中の1個のバッファと比較器21の中の1個の
比較器のペアで物理的に構成されている。図1の下部に
示すように、ロック中管理バッファ17の内容は、現在
ロック中のアドレスを示すメモリアドレスフィ−ルド2
2、ロックをかけたプロセッサの番号を表示するプロセ
ッサIDフィ−ルド23、およびメモリタイプが読み出
しまたは書き込みのいずれであるかをセすリ−ド/ライ
ト情報フィ−ルド24から構成されている。また、要求
ペンディングバッファ20の内容は、実行待ちにあるテ
スト&セット・リ−ドのメモリアドレスを記憶するメモ
リアドレスフィ−ルド25、および実行要求を発行した
プロセッサの番号を表示するプロセッサIDフィ−ルド
26から構成されている。
ontent Addressable Memory:CAM)で実現されて
いる。連想メモリの各セルは、ロック中管理バッファ1
7中の1個のバッファと比較器18の中の1個の比較器
のペアで物理的に構成されている。もし、ロック中管理
バッファ17内に複数のアドレスが記憶されていても、
連想メモリ機能により比較を同時並列に行うことができ
る。また、テスト&セット・リ−ドペンディングバッフ
ァ20は複数のバッファから構成され、比較器21も複
数の比較器を内蔵している。なお、アクセス要求記憶部
19も連想メモリ(CAM)で実現されている。連想メ
モリの各セルは、テスト&セット・ペンディングバッフ
ァ20の中の1個のバッファと比較器21の中の1個の
比較器のペアで物理的に構成されている。図1の下部に
示すように、ロック中管理バッファ17の内容は、現在
ロック中のアドレスを示すメモリアドレスフィ−ルド2
2、ロックをかけたプロセッサの番号を表示するプロセ
ッサIDフィ−ルド23、およびメモリタイプが読み出
しまたは書き込みのいずれであるかをセすリ−ド/ライ
ト情報フィ−ルド24から構成されている。また、要求
ペンディングバッファ20の内容は、実行待ちにあるテ
スト&セット・リ−ドのメモリアドレスを記憶するメモ
リアドレスフィ−ルド25、および実行要求を発行した
プロセッサの番号を表示するプロセッサIDフィ−ルド
26から構成されている。
【0009】図5および図6は、本発明の一実施例を示
すバスアクセスタイミングチャ−ト(ケ−ス1)および
バッファの内容を示す図であり、図7は、同じくタイミ
ングチャ−ト(ケ−ス2)およびバッファ内容を示す図
である。図5および図7に示すように、本発明のテスト
&セット命令は、T&S1のシ−ケンスに示すように、
スプリットトランザクション方式による4つのバスサイ
クルで実現される。すなわち、 Rr1・・・・プロセッサ10−1から共有メモリシ
ステム12に送出されるメモリ読み出し要求サイクルで
あって、プロセッサバス11上にはロック対象のメモリ
アドレスが格納されている。 Ra1・・・・Rr1に対するアンサのサイクルであ
って、共有メモリシステム12からプロセッサ10−1
へ読み出しデ−タが返送される。 Wr1・・・・ロック対象のメモリアドレスの内容を
『ロック中』に書き換えるように要求するサイクルであ
って、書き込みアドレスと『ロック中』を示す表示デ−
タがプロセッサ10−1から共有メモリシステム12へ
送出される。 Wa1・・・・Wr1に対するアンサのサイクルであ
って、書き込み完了を示す信号が共有メモリシステム1
2からプロセッサ10−1に返送される。 一方、共有メモリシステム12への単なる書き込み、読
み出しの場合には、両者ともに、それぞれ要求サイクル
とアンササイクルの2つの独立したバスサイクルにより
実現される。例えば、図5のクリアシ−ケンス(Clear
1)は、ロック中のメモリエリアをクリアするメモリ書き
込みアクセスを示したものであって、次の2つのサイク
ルから構成される。 Wrc1・・・・メモリへの書き込み要求サイクルであ
る。 Wac1・・・・メモリからのアンササイクル(書き込
み完了サイクル)である。
すバスアクセスタイミングチャ−ト(ケ−ス1)および
バッファの内容を示す図であり、図7は、同じくタイミ
ングチャ−ト(ケ−ス2)およびバッファ内容を示す図
である。図5および図7に示すように、本発明のテスト
&セット命令は、T&S1のシ−ケンスに示すように、
スプリットトランザクション方式による4つのバスサイ
クルで実現される。すなわち、 Rr1・・・・プロセッサ10−1から共有メモリシ
ステム12に送出されるメモリ読み出し要求サイクルで
あって、プロセッサバス11上にはロック対象のメモリ
アドレスが格納されている。 Ra1・・・・Rr1に対するアンサのサイクルであ
って、共有メモリシステム12からプロセッサ10−1
へ読み出しデ−タが返送される。 Wr1・・・・ロック対象のメモリアドレスの内容を
『ロック中』に書き換えるように要求するサイクルであ
って、書き込みアドレスと『ロック中』を示す表示デ−
タがプロセッサ10−1から共有メモリシステム12へ
送出される。 Wa1・・・・Wr1に対するアンサのサイクルであ
って、書き込み完了を示す信号が共有メモリシステム1
2からプロセッサ10−1に返送される。 一方、共有メモリシステム12への単なる書き込み、読
み出しの場合には、両者ともに、それぞれ要求サイクル
とアンササイクルの2つの独立したバスサイクルにより
実現される。例えば、図5のクリアシ−ケンス(Clear
1)は、ロック中のメモリエリアをクリアするメモリ書き
込みアクセスを示したものであって、次の2つのサイク
ルから構成される。 Wrc1・・・・メモリへの書き込み要求サイクルであ
る。 Wac1・・・・メモリからのアンササイクル(書き込
み完了サイクル)である。
【0010】図3および図4は、本発明の一実施例を示
す共有メモリシステムの処理フロ−チャ−トである。以
下、図5のケ−ス1の場合と、図7のケ−ス2の場合
を、図3、図4のフロ−に従って説明する。図5のケ−
ス1では、共有メモリシステム12の同一アドレスに対
して5台のプロセッサ10−1〜10−5がそれぞれテ
スト&セット命令(T&S1〜5)の要求を順次発行
し、それらが共有メモリシステム12に連続して到着し
た例を示している。これらのテスト&セット命令発行時
の実行を発行順に述べる。 〔T&S1読み出し要求サイクルRr1の実行〕最初の
テスト&セット命令の読み出し要求Rr1が、図5
(1)のタイミングでメモリアクセス要求バッファ13
にセットされると、プロセッサバス11は一旦解放され
る。その後、図3に示すように、要求Rr1がメモリア
クセスレジスタ14にシフトされると(ステップS
1)、メモリアクセスタイプが判定された後(ステップ
S2)、Rr1が指定する読み出しアドレスとロック中
管理バッファ17に記憶されているアドレスとが比較器
18により比較される(ステップS3)。この時点で
は、ロック中管理バッファ17には何も記憶されていな
いため、一致アドレスがないという判定になる(ステッ
プS4)。これと並行して、Rr1によるメモリ読み出
しが行われ(ステップS6)、読み出しデ−タがロック
中を表示しているか否かをテストする(ステップS
7)。この時点では、ロックされているものはないた
め、NOに進む。次に、ロック中管理バッファ17のフ
ィ−ルド構成の内容をロック中管理バッファ17に登録
することにより、テスト&セットT&S1が以後ロック
中の状態に入ることを表示する(ステップS8)。その
結果、ロック中管理バッファ17は、図6に示すL
(1)の状態になる。
す共有メモリシステムの処理フロ−チャ−トである。以
下、図5のケ−ス1の場合と、図7のケ−ス2の場合
を、図3、図4のフロ−に従って説明する。図5のケ−
ス1では、共有メモリシステム12の同一アドレスに対
して5台のプロセッサ10−1〜10−5がそれぞれテ
スト&セット命令(T&S1〜5)の要求を順次発行
し、それらが共有メモリシステム12に連続して到着し
た例を示している。これらのテスト&セット命令発行時
の実行を発行順に述べる。 〔T&S1読み出し要求サイクルRr1の実行〕最初の
テスト&セット命令の読み出し要求Rr1が、図5
(1)のタイミングでメモリアクセス要求バッファ13
にセットされると、プロセッサバス11は一旦解放され
る。その後、図3に示すように、要求Rr1がメモリア
クセスレジスタ14にシフトされると(ステップS
1)、メモリアクセスタイプが判定された後(ステップ
S2)、Rr1が指定する読み出しアドレスとロック中
管理バッファ17に記憶されているアドレスとが比較器
18により比較される(ステップS3)。この時点で
は、ロック中管理バッファ17には何も記憶されていな
いため、一致アドレスがないという判定になる(ステッ
プS4)。これと並行して、Rr1によるメモリ読み出
しが行われ(ステップS6)、読み出しデ−タがロック
中を表示しているか否かをテストする(ステップS
7)。この時点では、ロックされているものはないた
め、NOに進む。次に、ロック中管理バッファ17のフ
ィ−ルド構成の内容をロック中管理バッファ17に登録
することにより、テスト&セットT&S1が以後ロック
中の状態に入ることを表示する(ステップS8)。その
結果、ロック中管理バッファ17は、図6に示すL
(1)の状態になる。
【0011】〔T&S1読み出しアンササイクルRa1
の実行〕共有メモリシステム12はバス権を確保し(ス
テップS9)、図5のRa1に示すように、読み出しデ
−タをプロセッサ10−1に返送する(ステップS1
0)。 〔T&S2読み出し要求サイクルRr2の実行〕一方、
2つ目のテスト&セット命令(T&S2)の読み出し要
求Rr2が、図5(2)のタイミングでプロセッサバス
11を経由してメモリアクセスレジスタ13にセットさ
れると(ステップS1)、T&Sリ−ドアドレスとロッ
ク中管理バッファ17内のアドレスとを比較する(ステ
ップS3)。ロック中管理バッファ17は図5の(1)
の状態になっているので、そこに登録されたアドレスと
Rr2で指定したアドレスとが一致する。従ってT&S
2読み出し要求Rr2をT&Sリ−ド要求ペンディング
バッファ20に登録し(ステップS5)、ロックが解除
されるまでRr2を待たせる。この時点におけるT&S
リ−ドペンディングバッファ20の状態は、図6に示す
P(2)のようになる。 〔T&S3読み出し要求サイクルRr3の実行〕引き続
き、次のテスト&セット読み出し要求(T&S3)が図
5に示すタイミング(3)で到着する。この場合にも、
T&S2の場合と同じように、T&Sリ−ドペンディン
グバッファ20に要求が蓄積され、図6のP(3)の状
態となる。〔T&S1書き込み要求サイクルWr1の実
行〕次に、T&S1の書き込み要求サイクルEr1が実
行されると(ステップS1,2,12)、メモリへの書
き込みを行い、ライト結果を指定されたプロセッサに返
送する(ステップS13)。これにより、プロセッサ1
0−1はロックをかけることに成功したので、必要な排
他処理を開始することができる。これと並行して、ロッ
ク対象のメモリエリアには、図5のM1に示すような
『ロック中(T&S1)』の状態が表示される。
の実行〕共有メモリシステム12はバス権を確保し(ス
テップS9)、図5のRa1に示すように、読み出しデ
−タをプロセッサ10−1に返送する(ステップS1
0)。 〔T&S2読み出し要求サイクルRr2の実行〕一方、
2つ目のテスト&セット命令(T&S2)の読み出し要
求Rr2が、図5(2)のタイミングでプロセッサバス
11を経由してメモリアクセスレジスタ13にセットさ
れると(ステップS1)、T&Sリ−ドアドレスとロッ
ク中管理バッファ17内のアドレスとを比較する(ステ
ップS3)。ロック中管理バッファ17は図5の(1)
の状態になっているので、そこに登録されたアドレスと
Rr2で指定したアドレスとが一致する。従ってT&S
2読み出し要求Rr2をT&Sリ−ド要求ペンディング
バッファ20に登録し(ステップS5)、ロックが解除
されるまでRr2を待たせる。この時点におけるT&S
リ−ドペンディングバッファ20の状態は、図6に示す
P(2)のようになる。 〔T&S3読み出し要求サイクルRr3の実行〕引き続
き、次のテスト&セット読み出し要求(T&S3)が図
5に示すタイミング(3)で到着する。この場合にも、
T&S2の場合と同じように、T&Sリ−ドペンディン
グバッファ20に要求が蓄積され、図6のP(3)の状
態となる。〔T&S1書き込み要求サイクルWr1の実
行〕次に、T&S1の書き込み要求サイクルEr1が実
行されると(ステップS1,2,12)、メモリへの書
き込みを行い、ライト結果を指定されたプロセッサに返
送する(ステップS13)。これにより、プロセッサ1
0−1はロックをかけることに成功したので、必要な排
他処理を開始することができる。これと並行して、ロッ
ク対象のメモリエリアには、図5のM1に示すような
『ロック中(T&S1)』の状態が表示される。
【0012】〔T&S4読み出し要求サイクルRr4、
T&S5読み出し要求サイクルRr5の実行〕以後、2
つのテスト&セット読み出し要求(T&S4,T&S
5)が図5のタイミング(4)(5)で到着した場合に
も、T&S2の場合と同じように、T&Sリ−ドペンデ
ィングバッファ20に要求が蓄積されるので、最終的に
図6のP(5)の状態になる。 〔一般のメモリ書き込み要求サイクルWr6とアンササ
イクルWa6の実行〕T&S1からT&S5までの読み
書きアドレスと異なるアドレスのメモリエリアに対し
て、通常のメモリ書き込み命令の要求Wr6が図5の
(6)のタイミングで発生した場合には、メモリアクセ
スレジスタにその命令をロ−ドした後(ステップS1,
2)、Wr6の書き込みアドレスとT&Sリ−ドペンデ
ィングバッファ20に登録されているアドレス群とを比
較する(ステップS14)。しかし、一致するものがな
いため(ステップS16)、Wr6の書き込みサイクル
を実行し(ステップS15)、バス権を確保して(ステ
ップS17)、図5のWa6のタイミングで書き込み完
了アンサを返送する(ステップS19)。このように、
ロック中のアドレスと異なるアドレスのアクセスは、影
響を受けずに迅速に処理することができる点が特徴であ
る。
T&S5読み出し要求サイクルRr5の実行〕以後、2
つのテスト&セット読み出し要求(T&S4,T&S
5)が図5のタイミング(4)(5)で到着した場合に
も、T&S2の場合と同じように、T&Sリ−ドペンデ
ィングバッファ20に要求が蓄積されるので、最終的に
図6のP(5)の状態になる。 〔一般のメモリ書き込み要求サイクルWr6とアンササ
イクルWa6の実行〕T&S1からT&S5までの読み
書きアドレスと異なるアドレスのメモリエリアに対し
て、通常のメモリ書き込み命令の要求Wr6が図5の
(6)のタイミングで発生した場合には、メモリアクセ
スレジスタにその命令をロ−ドした後(ステップS1,
2)、Wr6の書き込みアドレスとT&Sリ−ドペンデ
ィングバッファ20に登録されているアドレス群とを比
較する(ステップS14)。しかし、一致するものがな
いため(ステップS16)、Wr6の書き込みサイクル
を実行し(ステップS15)、バス権を確保して(ステ
ップS17)、図5のWa6のタイミングで書き込み完
了アンサを返送する(ステップS19)。このように、
ロック中のアドレスと異なるアドレスのアクセスは、影
響を受けずに迅速に処理することができる点が特徴であ
る。
【0013】〔ロック解除書き込み要求サイクルWrc
1とアンササイクルWralの実行〕プロセッサ10−
1により必要な排他処理が終了すると、図5の(7)の
タイミングでロックを解除するためのメモリ書き込み命
令の要求Wrc1が共有メモリシステム12に到着す
る。これにより、この命令はメモリアクセスレジスタ1
4にロ−ドされ(ステップS1)、ライトアクセスアド
レスとT&Sリ−ドペンディングバッファ20内のアド
レスとが比較される(ステップS14)。同時に、ロッ
クを解除するメモリ書き込みが実行される(ステップS
15)。そして、ロック解除発行元であるプロセッサ1
0−1にそのアンサWac1を返送する(ステップS1
9)。これと並行して、T&Sリ−ドペンディングバッ
ファ20が図6のP(5)の状態になっている時点で、
ロック解除アドレスがT&S2,3,4,5の要求アド
レスと一致するので(ステップS16)、バッファの先
頭の要求T&S2が取り出され(ステップS18)、T
&Sリ−ドペンディングバッファ20は図6のP(7)
の状態となる。そして、T&S読み出し要求に対するア
ンサとして『ロック解除』を表示したアンサデ−タが準
備され(ステップS20,21)、T&S2発行元のプ
ロセッサ10−2にRa2サイクル(図5のRa2参
照)でアンサデ−タが返送される(ステップS22)。
1とアンササイクルWralの実行〕プロセッサ10−
1により必要な排他処理が終了すると、図5の(7)の
タイミングでロックを解除するためのメモリ書き込み命
令の要求Wrc1が共有メモリシステム12に到着す
る。これにより、この命令はメモリアクセスレジスタ1
4にロ−ドされ(ステップS1)、ライトアクセスアド
レスとT&Sリ−ドペンディングバッファ20内のアド
レスとが比較される(ステップS14)。同時に、ロッ
クを解除するメモリ書き込みが実行される(ステップS
15)。そして、ロック解除発行元であるプロセッサ1
0−1にそのアンサWac1を返送する(ステップS1
9)。これと並行して、T&Sリ−ドペンディングバッ
ファ20が図6のP(5)の状態になっている時点で、
ロック解除アドレスがT&S2,3,4,5の要求アド
レスと一致するので(ステップS16)、バッファの先
頭の要求T&S2が取り出され(ステップS18)、T
&Sリ−ドペンディングバッファ20は図6のP(7)
の状態となる。そして、T&S読み出し要求に対するア
ンサとして『ロック解除』を表示したアンサデ−タが準
備され(ステップS20,21)、T&S2発行元のプ
ロセッサ10−2にRa2サイクル(図5のRa2参
照)でアンサデ−タが返送される(ステップS22)。
【0014】すなわち、図5の(8)のタイミングま
で、T&S2の読み出しに対するアンサは待たされる
が、読み出しデ−タは図5のM2に示すように、必ず
『ロック解除』となっているため、プロセッサ10−2
側では、スピンつまりテスト&セット命令の再実行を行
う必要がなく、スピンによる無駄なバスアクセスがなく
なる。従って、その余裕分を他の装置に割り当てること
ができるので、システム全体の処理能力を向上させるこ
とが可能である。さらに、T&S2の読み出しRr2に
対するアンサRa2を待っている間は、バスを解放して
いるため、他のプロセッサがバスを有効に使用すること
ができ、システム全体の処理能力を高めることができ
る。次に、図4において、ロック中の管理バッファから
T&S1の情報を削除し、その代りに図6のL(8)に
示すように、新しくロックを開始したT&S2の情報を
登録する(ステップS23)。 〔T&S書き込み要求サイクルWr2とアンササイクル
Wa2の実行〕T&S読み出しアンササイクルRa2に
続いて、T&S2書き込み要求Wr2が到着すると、図
3,図4のステップS1,S2,S11を経由し、対応
するメモリエリアをロック中に書き換えて(図5のM3
のタイミング)(ステップS12)、書き込み完了信号
を図5のWa2としてプロセッサ10−2に返送する
(ステップS13)。プロセッサ10−2は、これによ
り必要な排他処理を開始することができる。ここで、T
&S2の書き込みWr2に対するアンサWa2を待って
いる間は、バスを解放しているため、他のプロセッサが
バス11を有効に使用することができ、システム全体の
処理能力を向上できる。
で、T&S2の読み出しに対するアンサは待たされる
が、読み出しデ−タは図5のM2に示すように、必ず
『ロック解除』となっているため、プロセッサ10−2
側では、スピンつまりテスト&セット命令の再実行を行
う必要がなく、スピンによる無駄なバスアクセスがなく
なる。従って、その余裕分を他の装置に割り当てること
ができるので、システム全体の処理能力を向上させるこ
とが可能である。さらに、T&S2の読み出しRr2に
対するアンサRa2を待っている間は、バスを解放して
いるため、他のプロセッサがバスを有効に使用すること
ができ、システム全体の処理能力を高めることができ
る。次に、図4において、ロック中の管理バッファから
T&S1の情報を削除し、その代りに図6のL(8)に
示すように、新しくロックを開始したT&S2の情報を
登録する(ステップS23)。 〔T&S書き込み要求サイクルWr2とアンササイクル
Wa2の実行〕T&S読み出しアンササイクルRa2に
続いて、T&S2書き込み要求Wr2が到着すると、図
3,図4のステップS1,S2,S11を経由し、対応
するメモリエリアをロック中に書き換えて(図5のM3
のタイミング)(ステップS12)、書き込み完了信号
を図5のWa2としてプロセッサ10−2に返送する
(ステップS13)。プロセッサ10−2は、これによ
り必要な排他処理を開始することができる。ここで、T
&S2の書き込みWr2に対するアンサWa2を待って
いる間は、バスを解放しているため、他のプロセッサが
バス11を有効に使用することができ、システム全体の
処理能力を向上できる。
【0015】〔T&S2ロック解除書き込み要求サイク
ルWrc2以降の実行〕プロセッサ12−2による排他
処理が終了すると、T&S2のロック解除がT&S1ロ
ック解除の場合と同じように行われる。すなわち、ロッ
ク解除の書き込み要求Wrc2(図3のステップS2,
S15)により、メモリエリアを『ロック解除に書き換
えて、書き込み完了のアンサをWac2サイクルでプロ
セッサ10−2に返送すると同時に(ステップS1
9)、T&Sリ−ドペンディングバッファ20から次の
T&S処理要求(T&S3)の情報を取り出す(ステッ
プS18)。その結果、T&Sリ−ドペンディングバッ
ファ20の状態は、P(9)のようになる。その結果、
T&S3の読み出し要求Rr3を実行できる状態になっ
たので、そのアンササイクルRa3として、図5のタイ
ミング(10)で読み出しデ−タ(ロック解除を示すデ
−タ)を発行元のプロセッサ10−3に返送する。これ
に対するレスポンスとして、発行元プロセッサ10−3
から書き込み要求Wr3が送出されてくると、これを実
行して、メモリエリアがロック中(図5のM5)に書き
換えられる。そして、書き込み完了のアンサWa3を返
送するとともに、ロック中管理バッファ17にはロック
を設定したT&S3の情報が格納されて、図6のL(1
0)の状態になる。このように、スプリットトランザク
ション方式において、ロック中管理バッファ17とT&
Sリ−ドペンディングバッファ20を組み合わせること
により、簡単かつ高速に排他制御のバスアクセスシ−ケ
ンスが実現できる。
ルWrc2以降の実行〕プロセッサ12−2による排他
処理が終了すると、T&S2のロック解除がT&S1ロ
ック解除の場合と同じように行われる。すなわち、ロッ
ク解除の書き込み要求Wrc2(図3のステップS2,
S15)により、メモリエリアを『ロック解除に書き換
えて、書き込み完了のアンサをWac2サイクルでプロ
セッサ10−2に返送すると同時に(ステップS1
9)、T&Sリ−ドペンディングバッファ20から次の
T&S処理要求(T&S3)の情報を取り出す(ステッ
プS18)。その結果、T&Sリ−ドペンディングバッ
ファ20の状態は、P(9)のようになる。その結果、
T&S3の読み出し要求Rr3を実行できる状態になっ
たので、そのアンササイクルRa3として、図5のタイ
ミング(10)で読み出しデ−タ(ロック解除を示すデ
−タ)を発行元のプロセッサ10−3に返送する。これ
に対するレスポンスとして、発行元プロセッサ10−3
から書き込み要求Wr3が送出されてくると、これを実
行して、メモリエリアがロック中(図5のM5)に書き
換えられる。そして、書き込み完了のアンサWa3を返
送するとともに、ロック中管理バッファ17にはロック
を設定したT&S3の情報が格納されて、図6のL(1
0)の状態になる。このように、スプリットトランザク
ション方式において、ロック中管理バッファ17とT&
Sリ−ドペンディングバッファ20を組み合わせること
により、簡単かつ高速に排他制御のバスアクセスシ−ケ
ンスが実現できる。
【0016】次に、図7のケ−ス2の場合を説明する。
ケ−ス2では、T&S10命令の実行によりロックがか
けられた状態で、次のテスト&セット要求T&S11が
発生した場合の例を示している。この場合にも、図3,
図4のフロ−によりケ−ス1と同じように処理されるこ
とが明らかである。なお、実施例ではロック中のアドレ
スが1個の場合のみを説明したが、ロック中のアドレス
が複数個ある場合でも、ロック中管理バッファ17の数
が複数個用意されているため、図3のステップS6,S
7,S8により、それぞれ異なったロック対象アドレス
を有する複数のロックを同時に管理することが可能であ
る。また、実施例では、プロセッサと共有メモリ間のテ
スト&セット命令を例にして述べたが、プロセッサやそ
の代りにスプリットトランザクション方式をサポ−トす
るものであれば、どのようなバスインタフェ−ス装置で
も差し支えない。例えば、共有メモリの代りにメモリマ
ップドI/Oのレジスタのようなものであってもよい。
要するに、本発明においては、バスを介して複数のモジ
ュ−ルと共有モジュ−ルとが相互接続されている場合
に、そのうちの1モジュ−ルが共有モジュ−ルをアクセ
スして、その中の1領域を排他制御するためにロックを
かける方式であれば、全てのものに適用できる。
ケ−ス2では、T&S10命令の実行によりロックがか
けられた状態で、次のテスト&セット要求T&S11が
発生した場合の例を示している。この場合にも、図3,
図4のフロ−によりケ−ス1と同じように処理されるこ
とが明らかである。なお、実施例ではロック中のアドレ
スが1個の場合のみを説明したが、ロック中のアドレス
が複数個ある場合でも、ロック中管理バッファ17の数
が複数個用意されているため、図3のステップS6,S
7,S8により、それぞれ異なったロック対象アドレス
を有する複数のロックを同時に管理することが可能であ
る。また、実施例では、プロセッサと共有メモリ間のテ
スト&セット命令を例にして述べたが、プロセッサやそ
の代りにスプリットトランザクション方式をサポ−トす
るものであれば、どのようなバスインタフェ−ス装置で
も差し支えない。例えば、共有メモリの代りにメモリマ
ップドI/Oのレジスタのようなものであってもよい。
要するに、本発明においては、バスを介して複数のモジ
ュ−ルと共有モジュ−ルとが相互接続されている場合
に、そのうちの1モジュ−ルが共有モジュ−ルをアクセ
スして、その中の1領域を排他制御するためにロックを
かける方式であれば、全てのものに適用できる。
【0017】このように、従来は、排他制御のためにリ
−ドモディファイライト方式、つまり読み出しと書き込
みの間でバスを解放しないバス連続占有方式を用いてい
たが、本発明では、これをスプリットトランザクション
方式で実現することにより、バスの無効保留時間がなく
なり、その分を他のプロセッサが有効利用できるように
なるので、システム全体の処理能力を向上させることが
できる。また、リ−ドモディファイライトのアクセスで
読み出した結果は必ず『ロック解除』となっているの
で、プロセッサ側ではスピン、つまりテスト&セット命
令の再実行を行う必要がない。すなわち、スピンによる
無駄なバスの使用がなくなるため、バスの空き時間が増
加して、システム全体の処理能力を一層向上させること
ができる。また、ロック中管理バッファとT&Sリ−ド
ペンディングバッファが連想メモリで構成されているた
め、バッファ内に登録されている情報の量に依存せず
に、一致アドレスの検出を瞬時に行うことができる。そ
の結果、本発明をメモリシステムに適用したときにも、
メモリシステムの性能低下を招くことがない。さらに、
ロック中のアドレスのエリアにアクセスしたプロセッサ
は、ロックが解除されるまで読み出しアンサの受信を待
たされることになるが、プロセッサから見ると、非常に
低速のメモリからのアンサを待っている場合と同じであ
り、ソフトウェアレベルから見たテスト&セット命令の
論理的意味は全く変わらない。従って、従来のスピンロ
ックを用いているソフトウェアをそのまま流用すること
ができるという利点がある。さらに、ロック中管理バッ
ファのバッファ数が複数個用意されているため、ロック
中のアドレスが複数個ある場合でも、複数のロックを同
時に管理することができ、柔軟なシステムを構築するこ
とができる。さらに、ロック中のアドレスと異なるアド
レスをアクセスする場合には、ロックの有無に関係な
く、通常のメモリシステムと同じく迅速に処理できるの
で、性能の低下を生じることはない。
−ドモディファイライト方式、つまり読み出しと書き込
みの間でバスを解放しないバス連続占有方式を用いてい
たが、本発明では、これをスプリットトランザクション
方式で実現することにより、バスの無効保留時間がなく
なり、その分を他のプロセッサが有効利用できるように
なるので、システム全体の処理能力を向上させることが
できる。また、リ−ドモディファイライトのアクセスで
読み出した結果は必ず『ロック解除』となっているの
で、プロセッサ側ではスピン、つまりテスト&セット命
令の再実行を行う必要がない。すなわち、スピンによる
無駄なバスの使用がなくなるため、バスの空き時間が増
加して、システム全体の処理能力を一層向上させること
ができる。また、ロック中管理バッファとT&Sリ−ド
ペンディングバッファが連想メモリで構成されているた
め、バッファ内に登録されている情報の量に依存せず
に、一致アドレスの検出を瞬時に行うことができる。そ
の結果、本発明をメモリシステムに適用したときにも、
メモリシステムの性能低下を招くことがない。さらに、
ロック中のアドレスのエリアにアクセスしたプロセッサ
は、ロックが解除されるまで読み出しアンサの受信を待
たされることになるが、プロセッサから見ると、非常に
低速のメモリからのアンサを待っている場合と同じであ
り、ソフトウェアレベルから見たテスト&セット命令の
論理的意味は全く変わらない。従って、従来のスピンロ
ックを用いているソフトウェアをそのまま流用すること
ができるという利点がある。さらに、ロック中管理バッ
ファのバッファ数が複数個用意されているため、ロック
中のアドレスが複数個ある場合でも、複数のロックを同
時に管理することができ、柔軟なシステムを構築するこ
とができる。さらに、ロック中のアドレスと異なるアド
レスをアクセスする場合には、ロックの有無に関係な
く、通常のメモリシステムと同じく迅速に処理できるの
で、性能の低下を生じることはない。
【0018】
【発明の効果】以上説明したように、本発明によれば、
排他制御用のロック情報を設定する場合でも、真に必要
な時間だけバスを使用させるので、バス使用に無駄な時
間をなくし、バス使用要求の待ち時間を短縮して、バス
スル−プットを向上させ、システム全体の性能を高める
ことができる。
排他制御用のロック情報を設定する場合でも、真に必要
な時間だけバスを使用させるので、バス使用に無駄な時
間をなくし、バス使用要求の待ち時間を短縮して、バス
スル−プットを向上させ、システム全体の性能を高める
ことができる。
【0019】
【図1】本発明の一実施例を示すバス制御システムのブ
ロック図である。
ロック図である。
【図2】従来のマルチプロセッサシステムのブロック図
である。
である。
【図3】本発明における共有メモリシステムの処理フロ
−チャ−トである。
−チャ−トである。
【図4】図3と同じく、共有メモリシステムの処理フロ
−チャ−トの他の一部である。
−チャ−トの他の一部である。
【図5】本発明におけるバスアクセス(ケ−ス1)のタ
イミングチャ−トである。
イミングチャ−トである。
【図6】図5における各タイミング点でのバッファの内
容を示す図である。
容を示す図である。
【図7】本発明におけるバスアクセス(ケ−ス2)のタ
イミングチャ−トとバッファの内容を示す図である。
イミングチャ−トとバッファの内容を示す図である。
10−1〜10−5,1−1〜1−5 プロセッサ 11 プロセッサバス 12 共有メモリシステム 13 メモリアクセス要求バッファ 14 メモリアクセスレジスタ 15 共有メモリ本体 16 ロック状態記憶部 17 ロック中管理バッファ 18,21 比較器 19 アクセス要求記憶部 20 T&Sリ−ドペンディングバッファ 22,25 メモリアドレス 23,26 プロセッサID 24 リ−ド/ライト情報
Claims (1)
- 【請求項1】 ロック要求を送出する複数のモジュ−ル
と、該ロック要求を受け付け、ロック中表示を行う記憶
領域を有する共有モジュ−ルと、上記複数のモジュ−ル
および上記共有モジュ−ル間を相互接続するバスを有
し、指定された記憶領域にロック中であることを表示す
る情報を設定することにより排他制御を行う情報処理シ
ステムにおいて、上記共有モジュ−ル内に、上記バスを
経由して送出されたロック要求を実現するバスアクセス
シ−ケンスを、ロック設定領域読み出し要求サイクル
と読み出しアンササイクルとロック設定領域書き込
み要求サイクルと書き込み完了アンササイクルの4つ
のバスサイクルに分割したスプリットトランザクション
方式で実行するバス制御手段と、上記ロック要求を送出
したモジュ−ルおよびロック設定領域に関する識別情報
を記憶するロック管理記憶手段と、上記ロック設定領域
読み出し要求を記憶する要求ペンディング記憶手段と、
上記共有モジュ−ルが該ロック設定領域読み出し要求を
受信した場合、上記ロック管理記憶手段を参照してロッ
ク領域がロック中を表示しているときには、該ロック設
定領域読み出し要求を上記要求ペンディング記憶手段に
記憶し、該ロック領域がロック中から解除されたときに
は、上記要求ペンディング記憶手段からロック領域設定
要求を読み出して、これを上記ロック管理記憶手段に登
録することにより、待ち合わせていたロック要求の処理
を開始する実行制御手段とを有することを特徴とするバ
ス制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4030239A JPH05233531A (ja) | 1992-02-18 | 1992-02-18 | バス制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4030239A JPH05233531A (ja) | 1992-02-18 | 1992-02-18 | バス制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05233531A true JPH05233531A (ja) | 1993-09-10 |
Family
ID=12298168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4030239A Pending JPH05233531A (ja) | 1992-02-18 | 1992-02-18 | バス制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05233531A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08314869A (ja) * | 1995-05-23 | 1996-11-29 | Kofu Nippon Denki Kk | 情報処理装置 |
JP2002351850A (ja) * | 2001-03-22 | 2002-12-06 | Sony Computer Entertainment Inc | プロセッサでのデータ処理方法及びデータ処理システム |
US8176260B2 (en) | 2006-02-24 | 2012-05-08 | Fujitsu Limited | Recording controller including snoop unit issuing invalidation request and response unit outputting notification indicating identification information for indentifying recording request and recording control method thereof |
US20140289483A1 (en) * | 2013-03-25 | 2014-09-25 | Kabushiki Kaisha Toshiba | Shared memory control unit having lock transaction controller |
-
1992
- 1992-02-18 JP JP4030239A patent/JPH05233531A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08314869A (ja) * | 1995-05-23 | 1996-11-29 | Kofu Nippon Denki Kk | 情報処理装置 |
JP2002351850A (ja) * | 2001-03-22 | 2002-12-06 | Sony Computer Entertainment Inc | プロセッサでのデータ処理方法及びデータ処理システム |
US8176260B2 (en) | 2006-02-24 | 2012-05-08 | Fujitsu Limited | Recording controller including snoop unit issuing invalidation request and response unit outputting notification indicating identification information for indentifying recording request and recording control method thereof |
US20140289483A1 (en) * | 2013-03-25 | 2014-09-25 | Kabushiki Kaisha Toshiba | Shared memory control unit having lock transaction controller |
JP2014186618A (ja) * | 2013-03-25 | 2014-10-02 | Toshiba Corp | ロックトランザクションコントローラを備えた共有メモリ制御ユニット |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5598550A (en) | Cache controller for processing simultaneous cache accesses | |
US7650453B2 (en) | Information processing apparatus having multiple processing units sharing multiple resources | |
US5404482A (en) | Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills | |
JP3206914B2 (ja) | 多重プロセッサ・システム | |
JPH09510308A (ja) | 高度パイプライン式バス・アーキテクチャ | |
JPH0658660B2 (ja) | 密結合コンピュータシステム | |
EP1960878A2 (en) | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions | |
US20100332766A1 (en) | Supporting efficient spin-locks and other types of synchronization in a cache-coherent multiprocessor system | |
JPH0272453A (ja) | 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム | |
JPH0670779B2 (ja) | フェッチ方法 | |
JPH01502628A (ja) | 多重ロック指示を使用した多重プロセッサコンピュータシステムにおけるトランザクションを開始する方法及び装置 | |
US6941308B1 (en) | Methods and apparatus for accessing a doubly linked list in a data storage system | |
JP5241384B2 (ja) | 分散共有メモリ型マルチプロセッサ及びデータ処理方法 | |
JPH09138778A (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
JPH05233531A (ja) | バス制御システム | |
US5623685A (en) | Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency | |
JP2000003302A (ja) | 共有メモリ排他アクセス制御方法 | |
US5745698A (en) | System and method for communicating between devices | |
JPH0353657B2 (ja) | ||
JP3381079B2 (ja) | キャッシュメモリを用いた排他制御システム | |
US20080104335A1 (en) | Facilitating load reordering through cacheline marking | |
JP2982197B2 (ja) | キャッシュ用バスモニタ回路 | |
JP2854066B2 (ja) | マルチプロセッサシステム | |
JPH03271859A (ja) | 情報処理装置 | |
JPS601656B2 (ja) | 緩衝記憶回路 |