JPH08320828A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JPH08320828A JPH08320828A JP7124634A JP12463495A JPH08320828A JP H08320828 A JPH08320828 A JP H08320828A JP 7124634 A JP7124634 A JP 7124634A JP 12463495 A JP12463495 A JP 12463495A JP H08320828 A JPH08320828 A JP H08320828A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- memory
- block
- processor
- access
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 claims abstract description 182
- 230000004044 response Effects 0.000 claims description 9
- 238000000034 method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- WRFHGDPIDHPWIQ-UHFFFAOYSA-N 2-[4-[(2-butyl-4-oxo-1,3-diazaspiro[4.4]non-1-en-3-yl)methyl]-2-(ethoxymethyl)phenyl]-n-(4,5-dimethyl-1,2-oxazol-3-yl)benzenesulfonamide Chemical group O=C1N(CC=2C=C(COCC)C(=CC=2)C=2C(=CC=CC=2)S(=O)(=O)NC=2C(=C(C)ON=2)C)C(CCCC)=NC21CCCC2 WRFHGDPIDHPWIQ-UHFFFAOYSA-N 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 多数のプロセッサが共通メモリに対してアク
セス可能なマルチプロセッサシステムにおいて、共通メ
モリへの各プロセッサからのアクセス時のトラフィック
を減少可能とする。 【構成】 各プロセッサ1〜4にキャッシュメモリを夫
々設けて、このキャッシュ内のTAGエントリにエント
リアドレス190の他に対応アドレスのメモリブロック
の他にロック成功か失敗を示すS,Fビット192,1
93を設ける。メモリ6の各ブロックには対応ブロック
のロック状態を示すロックビットLを設ける。プロセッ
サ1がメモリアクセスするとき、自キャッシュのTAG
部のエントリアドレス190を調べ、ミスヒットであれ
ばメモリ6へのロック要求をなす。メモリ6ではそのア
ドレスのブロックのロックビットLを調べ、ロックでな
ければ1をセットしてロックする。以降、そのプロセッ
サはこのブロックのアクセスが排他的に使用できる。
セス可能なマルチプロセッサシステムにおいて、共通メ
モリへの各プロセッサからのアクセス時のトラフィック
を減少可能とする。 【構成】 各プロセッサ1〜4にキャッシュメモリを夫
々設けて、このキャッシュ内のTAGエントリにエント
リアドレス190の他に対応アドレスのメモリブロック
の他にロック成功か失敗を示すS,Fビット192,1
93を設ける。メモリ6の各ブロックには対応ブロック
のロック状態を示すロックビットLを設ける。プロセッ
サ1がメモリアクセスするとき、自キャッシュのTAG
部のエントリアドレス190を調べ、ミスヒットであれ
ばメモリ6へのロック要求をなす。メモリ6ではそのア
ドレスのブロックのロックビットLを調べ、ロックでな
ければ1をセットしてロックする。以降、そのプロセッ
サはこのブロックのアクセスが排他的に使用できる。
Description
【0001】
【産業上の利用分野】本発明はマルチプロセッサシステ
ムに関し、特に共通メモリと、前記メモリの格納データ
の一部をブロック単位で格納するキャッシュメモリを各
々が有する複数のプロセッサと、これ等プロセッサ及び
共通メモリ間を接続するインタコネクト手段とを含むマ
ルチプロセッサシステムに関するものである。
ムに関し、特に共通メモリと、前記メモリの格納データ
の一部をブロック単位で格納するキャッシュメモリを各
々が有する複数のプロセッサと、これ等プロセッサ及び
共通メモリ間を接続するインタコネクト手段とを含むマ
ルチプロセッサシステムに関するものである。
【0002】
【従来の技術】この様なマルチプロセッサシステムにお
いて、プロセッサ間で同期をとることはシステムの動作
をコンシステントな状態に保つために必要である。例え
ば、メモリや入出力(I/O)などの資源をそれぞれ別
のプロセッサで走行している複数のプロセスに割り当て
る作業を考える時、同一のメモリ領域や同一のI/Oを
複数のプロセスに同時に割り当てることは避けなければ
ならない。このため、オペレーティングシステムの中
で、メモリ割り当てやI/Oの割り当て処理はある一時
点に一つしか動作しないようにするように同期する必要
がある(排他制御)。
いて、プロセッサ間で同期をとることはシステムの動作
をコンシステントな状態に保つために必要である。例え
ば、メモリや入出力(I/O)などの資源をそれぞれ別
のプロセッサで走行している複数のプロセスに割り当て
る作業を考える時、同一のメモリ領域や同一のI/Oを
複数のプロセスに同時に割り当てることは避けなければ
ならない。このため、オペレーティングシステムの中
で、メモリ割り当てやI/Oの割り当て処理はある一時
点に一つしか動作しないようにするように同期する必要
がある(排他制御)。
【0003】また、今日のアプリケーションでは、処理
を複数のプロセッサに割り当てて行うことが行われる。
その場合にもプロセッサ間の同期が必要である。例え
ば、あるプロセッサの処理の結果をもう一つのプロセッ
サで処理する必要となる場合がその例である。この場合
にも、前のプロセッサが結果を格納する領域を排他制御
により排他的に獲得し、後のプロセッサは結果を格納す
る領域の獲得に失敗し、前のプロセッサの結果が出るま
で待ち合わせるように同期制御しなければならない。
を複数のプロセッサに割り当てて行うことが行われる。
その場合にもプロセッサ間の同期が必要である。例え
ば、あるプロセッサの処理の結果をもう一つのプロセッ
サで処理する必要となる場合がその例である。この場合
にも、前のプロセッサが結果を格納する領域を排他制御
により排他的に獲得し、後のプロセッサは結果を格納す
る領域の獲得に失敗し、前のプロセッサの結果が出るま
で待ち合わせるように同期制御しなければならない。
【0004】この様な同期制御を行う場合、「ロック」
という概念が用いられる。排他的に獲得する領域に対し
てロックを一つ設ける。このロックは、各プロセッサが
共通にアクセスできるメモリや特殊レジスタを用いて実
現するロックビットのアクセスの状態により管理する方
式であり、その方法は以下の通りである。
という概念が用いられる。排他的に獲得する領域に対し
てロックを一つ設ける。このロックは、各プロセッサが
共通にアクセスできるメモリや特殊レジスタを用いて実
現するロックビットのアクセスの状態により管理する方
式であり、その方法は以下の通りである。
【0005】すなわち、あるプロセッサが排他的にアク
セスする領域を、アクセスする前に、必ずロックビット
を参照するようにする。例えば、ロックビットの初期値
は0とし、あるプロセッサがロック獲得中であれば1と
なっているものとする。このロックビット参照の結果得
られた値が0であれば、いずれのプロセッサもロックを
獲得していないのであるから、ロックビットを1にセッ
トする。
セスする領域を、アクセスする前に、必ずロックビット
を参照するようにする。例えば、ロックビットの初期値
は0とし、あるプロセッサがロック獲得中であれば1と
なっているものとする。このロックビット参照の結果得
られた値が0であれば、いずれのプロセッサもロックを
獲得していないのであるから、ロックビットを1にセッ
トする。
【0006】ロックビットの値が既に1になっていれ
ば、他のプロセッサがロックを獲得中であるから、ロッ
クビットが0になるまで参照を続けることになる。尚、
1のプロセッサが1となっているロックビットを参照し
続けているときに他のプロセッサのアクセスがロックビ
ットにないこと(参照と更新の不可分性)をハードウェ
アが保証する必要がある。
ば、他のプロセッサがロックを獲得中であるから、ロッ
クビットが0になるまで参照を続けることになる。尚、
1のプロセッサが1となっているロックビットを参照し
続けているときに他のプロセッサのアクセスがロックビ
ットにないこと(参照と更新の不可分性)をハードウェ
アが保証する必要がある。
【0007】このロックビットはシステムにおいて複数
存在することも考えられる。例えば、メモリの1ワード
毎にロックビットを設けても良いし、メモリバンク単
位,キャッシュメモリのブロック単位,プロセッサ毎に
設けても良い。ワード毎に設ける方式では、ロックビッ
トの数がワード数分必要であるからコスト高となり、よ
ってどの単位でロックビットを設けるかはコストと性能
の兼ね合いにより決定されることになる。
存在することも考えられる。例えば、メモリの1ワード
毎にロックビットを設けても良いし、メモリバンク単
位,キャッシュメモリのブロック単位,プロセッサ毎に
設けても良い。ワード毎に設ける方式では、ロックビッ
トの数がワード数分必要であるからコスト高となり、よ
ってどの単位でロックビットを設けるかはコストと性能
の兼ね合いにより決定されることになる。
【0008】上述した参照と更新の不可分性は通常メモ
リシステムにより保証される。例えば、特開平2−23
2747号公報に示される様に、メモリ装置において、
どのアドレスがロックされているかを判定し、後続のア
クセス要求が拒絶されるべきものであるかどうかを、い
かに効率良く判断するかに技術開発の重点が置かれてい
る。
リシステムにより保証される。例えば、特開平2−23
2747号公報に示される様に、メモリ装置において、
どのアドレスがロックされているかを判定し、後続のア
クセス要求が拒絶されるべきものであるかどうかを、い
かに効率良く判断するかに技術開発の重点が置かれてい
る。
【0009】
【発明が解決しようとする課題】ところが、マルチプロ
セッサシステムにおいては、プロセッサの数が増加する
傾向にあり、例えば100個以上のプロセッサが用いら
れる様なシステムがある。この様なシステムでは、アプ
リケーションレベルでの並列処理の浸透によるプロセッ
サ間同期の増加により、ロックが獲得できない場合のロ
ックビットの参照の繰り返しが、性能に与える影響が問
題になってきている。すなわち、ロック待ちにより各プ
ロセッサからのロックビットへのアクセスが頻発し、メ
モリトラフィックを増大させ、結果としてシステム性能
の低下を招来することになる。
セッサシステムにおいては、プロセッサの数が増加する
傾向にあり、例えば100個以上のプロセッサが用いら
れる様なシステムがある。この様なシステムでは、アプ
リケーションレベルでの並列処理の浸透によるプロセッ
サ間同期の増加により、ロックが獲得できない場合のロ
ックビットの参照の繰り返しが、性能に与える影響が問
題になってきている。すなわち、ロック待ちにより各プ
ロセッサからのロックビットへのアクセスが頻発し、メ
モリトラフィックを増大させ、結果としてシステム性能
の低下を招来することになる。
【0010】本発明の目的は、プロセッサのメモリにお
けるロック待ち時のロックの参照のためのメモリトラフ
ィックを大幅に減少させてシステム性能の低下を可能と
したマルチプロセッサシステムを提供することである。
けるロック待ち時のロックの参照のためのメモリトラフ
ィックを大幅に減少させてシステム性能の低下を可能と
したマルチプロセッサシステムを提供することである。
【0011】
【課題を解決するための手段】本発明によれば、共通メ
モリと、前記メモリの格納データの一部をブロック単位
で格納するキャッシュメモリを各々が有する複数のプロ
セッサと、これ等プロセッサ及び共通メモリ間を接続す
るインタコネクト手段とを含むマルチプロセッサシステ
ムであって、前記共通メモリに設けられ、前記ブロック
単位にそのブロックの排他的占有状態を示すロック表示
手段と、前記プロセッサの各々に設けられ、前記共通メ
モリへのアクセスの発生に応答して当該アクセスアドレ
スに対応するエントリブロックが前記キャッシュメモリ
に存在しないとき前記共通メモリへのロック要求を生成
する手段と、前記共通メモリに設けられ、前記ロック要
求に応答して前記アクセスアドレスに対応するブロック
のロック表示手段が非ロックであればロック表示を行い
ロック成功を、既にロックであればロック失敗を夫々要
求元プロセッサへ送出するロック制御手段と、前記プロ
セッサの各々に設けられ、前記ロック成功か失敗に夫々
応答して自キャッシュメモリへロック成功か失敗を示す
ロック成功情報と共に前記アクセスアドレス情報を登録
する登録制御手段と、を有することを特徴とするマルチ
プロセッサシステムが得られる。
モリと、前記メモリの格納データの一部をブロック単位
で格納するキャッシュメモリを各々が有する複数のプロ
セッサと、これ等プロセッサ及び共通メモリ間を接続す
るインタコネクト手段とを含むマルチプロセッサシステ
ムであって、前記共通メモリに設けられ、前記ブロック
単位にそのブロックの排他的占有状態を示すロック表示
手段と、前記プロセッサの各々に設けられ、前記共通メ
モリへのアクセスの発生に応答して当該アクセスアドレ
スに対応するエントリブロックが前記キャッシュメモリ
に存在しないとき前記共通メモリへのロック要求を生成
する手段と、前記共通メモリに設けられ、前記ロック要
求に応答して前記アクセスアドレスに対応するブロック
のロック表示手段が非ロックであればロック表示を行い
ロック成功を、既にロックであればロック失敗を夫々要
求元プロセッサへ送出するロック制御手段と、前記プロ
セッサの各々に設けられ、前記ロック成功か失敗に夫々
応答して自キャッシュメモリへロック成功か失敗を示す
ロック成功情報と共に前記アクセスアドレス情報を登録
する登録制御手段と、を有することを特徴とするマルチ
プロセッサシステムが得られる。
【0012】
【作用】各プロセッサ上のキャッシュメモリにキャッシ
ュブロック単位のクロック獲得の成功・失敗を記録する
ビットを有することにより、プロセッサがあるメモリブ
ロックのロックを獲得できなかった場合、キャッシュ上
のアクセスで待つようにすることで、メモリトラフィッ
クを減少し、システム性能の低下を防止する。
ュブロック単位のクロック獲得の成功・失敗を記録する
ビットを有することにより、プロセッサがあるメモリブ
ロックのロックを獲得できなかった場合、キャッシュ上
のアクセスで待つようにすることで、メモリトラフィッ
クを減少し、システム性能の低下を防止する。
【0013】
【実施例】以下、本発明の実施例について図面を用いて
説明する。
説明する。
【0014】図1は本発明の実施例の概略システムブロ
ック図であり、複数のプロセッサ1〜4と、これ等に共
通のメモリ6とがインタコネクション5により相互接続
されている。
ック図であり、複数のプロセッサ1〜4と、これ等に共
通のメモリ6とがインタコネクション5により相互接続
されている。
【0015】各プロセッサはプログラムの実行を行うも
ので、各プロセッサで実行されるプログラムとそのプロ
グラムが必要とするデータはメモリ6上に置かれてい
る。そのために、プログラムやデータのアクセスのため
に各プロセッサからインタコネクション5に対してメモ
リアクセス要求が発せられる。インタコネクション5は
各プロセッサからの要求の調停を取り、メモリ6へのア
クセスを制御する。
ので、各プロセッサで実行されるプログラムとそのプロ
グラムが必要とするデータはメモリ6上に置かれてい
る。そのために、プログラムやデータのアクセスのため
に各プロセッサからインタコネクション5に対してメモ
リアクセス要求が発せられる。インタコネクション5は
各プロセッサからの要求の調停を取り、メモリ6へのア
クセスを制御する。
【0016】各プロセッサのアクセスは同時にプロセッ
サの数だけ発生する可能性があるが、メモリは一つなの
で当然メモリアクセスの結果は同時ではなく、逐次的に
ならざるを得ない。このため、プログラムやデータのア
クセス時間はプロセッサ一台の場合に比べて悪化する。
サの数だけ発生する可能性があるが、メモリは一つなの
で当然メモリアクセスの結果は同時ではなく、逐次的に
ならざるを得ない。このため、プログラムやデータのア
クセス時間はプロセッサ一台の場合に比べて悪化する。
【0017】この様な、マルチプロセッサシステムにお
けるメモリアクセスを改善するために、各プロセッサに
キャッシュメモリを備えることが通常行われている。キ
ャッシュメモリは一度アクセスしたメモリアクセスの結
果をバッファリングする比較的小容量のメモリである。
けるメモリアクセスを改善するために、各プロセッサに
キャッシュメモリを備えることが通常行われている。キ
ャッシュメモリは一度アクセスしたメモリアクセスの結
果をバッファリングする比較的小容量のメモリである。
【0018】キャッシュメモリは複数のエントリからな
る。アクセスしたメモリのアドレスとデータをこのエン
トリに登録する。エントリはアドレスに格納するTAG
部とそのアドレスに対応するデータを保持するDATA
部よりなる。TAG部にはアドレスを格納する部分19
0とそのエントリに格納された情報が有効かどうかを示
す有効(V)ビット191とを含む。
る。アクセスしたメモリのアドレスとデータをこのエン
トリに登録する。エントリはアドレスに格納するTAG
部とそのアドレスに対応するデータを保持するDATA
部よりなる。TAG部にはアドレスを格納する部分19
0とそのエントリに格納された情報が有効かどうかを示
す有効(V)ビット191とを含む。
【0019】本実施例では、このTAG部に、有効
(V)ビットに加えて、ロック成功(S)ビット192
とロック失敗(F)ビット193とを設け、ロック獲得
待ちのメモリトラフィックの減少を目指している。すな
わち、メモリ上のロックをプロセッサ上のキャッシュメ
モリの管理するブロック単位に設け、プロセッサが上記
のロック操作によりロックを獲得すると、対応するキャ
ッシュTAGのロック成功を示すビットをセットする。
また、ロック獲得を失敗すると、対応するキャッシュT
AGのロック失敗を示すビットをセットする。
(V)ビットに加えて、ロック成功(S)ビット192
とロック失敗(F)ビット193とを設け、ロック獲得
待ちのメモリトラフィックの減少を目指している。すな
わち、メモリ上のロックをプロセッサ上のキャッシュメ
モリの管理するブロック単位に設け、プロセッサが上記
のロック操作によりロックを獲得すると、対応するキャ
ッシュTAGのロック成功を示すビットをセットする。
また、ロック獲得を失敗すると、対応するキャッシュT
AGのロック失敗を示すビットをセットする。
【0020】以降、ロックビットのアクセスはキャッシ
ュ上で行われ、メモリへのリクエストは減少する。ロッ
クを獲得したプロセッサがメモリにロック解除(アンロ
ック)要求を出すと、メモリはロックビットの状態をロ
ックされていない状態に変更すると共に、全プロセッサ
に対して該当キャッシュブロックの無効化要求を発行
し、ロック失敗で待っているプロセッサのキャッシュメ
モリの該当エントリも無効化されるので、再びメモリへ
ロック獲得要求を発行する様になる。
ュ上で行われ、メモリへのリクエストは減少する。ロッ
クを獲得したプロセッサがメモリにロック解除(アンロ
ック)要求を出すと、メモリはロックビットの状態をロ
ックされていない状態に変更すると共に、全プロセッサ
に対して該当キャッシュブロックの無効化要求を発行
し、ロック失敗で待っているプロセッサのキャッシュメ
モリの該当エントリも無効化されるので、再びメモリへ
ロック獲得要求を発行する様になる。
【0021】プロセッサ1〜4の各々は、図2に示す如
く、命令実行部110とキャッシュメモリ120とを有
する。命令実行部110は実際にプログラムの実行を行
うものであり、この命令実行部のプログラムアクセスや
データアクセスは、インタフェースINPUT130に
よりキャッシュメモリ120へ要求され、その結果がイ
ンタフェースOUTPUT140により送出される。
く、命令実行部110とキャッシュメモリ120とを有
する。命令実行部110は実際にプログラムの実行を行
うものであり、この命令実行部のプログラムアクセスや
データアクセスは、インタフェースINPUT130に
よりキャッシュメモリ120へ要求され、その結果がイ
ンタフェースOUTPUT140により送出される。
【0022】インタフェースINPUT130にはアク
セスコマンドとアドレスとデータとからなるパケットで
あり、図7(A)にフォーマットが示されている。この
パケットは命令実行部110からインタフェースINP
UT130を介してキャッシュメモリ120へ送出され
る。このパケットの「アクセスコマンド」はメモリアク
セスの種別を指示するものであり、リード,ライト,ロ
ック,アンロックがある。
セスコマンドとアドレスとデータとからなるパケットで
あり、図7(A)にフォーマットが示されている。この
パケットは命令実行部110からインタフェースINP
UT130を介してキャッシュメモリ120へ送出され
る。このパケットの「アクセスコマンド」はメモリアク
セスの種別を指示するものであり、リード,ライト,ロ
ック,アンロックがある。
【0023】リードはアドレスで指定されたメモリのワ
ードのデータを要求するものであり、ライトはアドレス
で指定されたメモリのワードにライトデータで指定され
た内容を書込むものである。ロックはアドレスで指定さ
れたメモリのワードをロックすると同時に、そのメモリ
のワードのデータを要求するものである。アンロックは
アドレスが指定されたワードのロックを解除すると同時
に、ライトデータをそのワードに書込むものである。
ードのデータを要求するものであり、ライトはアドレス
で指定されたメモリのワードにライトデータで指定され
た内容を書込むものである。ロックはアドレスで指定さ
れたメモリのワードをロックすると同時に、そのメモリ
のワードのデータを要求するものである。アンロックは
アドレスが指定されたワードのロックを解除すると同時
に、ライトデータをそのワードに書込むものである。
【0024】このパケットの「アドレス」はアクセスコ
マンドで指定する操作を行うメモリアドレスを指定する
ものである。「データ」はアクセスコマンドがライトの
ときにアドレスで指定されたメモリアドレスに書込むデ
ータを指定するものである。
マンドで指定する操作を行うメモリアドレスを指定する
ものである。「データ」はアクセスコマンドがライトの
ときにアドレスで指定されたメモリアドレスに書込むデ
ータを指定するものである。
【0025】インタフェースOUTPUT140はリプ
ライステータスとリプライデータとからなるパケットが
INPUTパケットの応答としてキャッシュメモリから
命令実行部110へ送出される。図7(B)にこのOU
TPUTパケットを示す。「リプライステータス」はイ
ンタフェースINPUT130で指定された要求の結果
を表示するものであり、データリプライ,ロック成功,
ロック失敗がある。
ライステータスとリプライデータとからなるパケットが
INPUTパケットの応答としてキャッシュメモリから
命令実行部110へ送出される。図7(B)にこのOU
TPUTパケットを示す。「リプライステータス」はイ
ンタフェースINPUT130で指定された要求の結果
を表示するものであり、データリプライ,ロック成功,
ロック失敗がある。
【0026】データリプライはリード動作が終了してそ
の結果のデータがリプライデータとして返送される。ロ
ック成功はロックで要求したメモリ上のワードのロック
が成功したことを示すと同時に、ワードのデータをリプ
ライデータとして返送する。ロック失敗はロックで要求
したメモリ上のワードのロックが失敗したことを示す。
の結果のデータがリプライデータとして返送される。ロ
ック成功はロックで要求したメモリ上のワードのロック
が成功したことを示すと同時に、ワードのデータをリプ
ライデータとして返送する。ロック失敗はロックで要求
したメモリ上のワードのロックが失敗したことを示す。
【0027】このパケットの「リプライデータ」はリプ
ライステータスのデータリプライとロック成功において
指定されたメモリのワードのデータを返送するものであ
る。
ライステータスのデータリプライとロック成功において
指定されたメモリのワードのデータを返送するものであ
る。
【0028】キャッシュメモリ120は、図3に示す如
く、TAG部121とDATA部122とからなってい
る。TAG部121とDATA部122は各々対応する
複数のワードからなっており、1つのTAGとDATA
とのペアをエントリと称し、メモリアクセスの結果はエ
ントリ単位でキャッシングの単位となる。
く、TAG部121とDATA部122とからなってい
る。TAG部121とDATA部122は各々対応する
複数のワードからなっており、1つのTAGとDATA
とのペアをエントリと称し、メモリアクセスの結果はエ
ントリ単位でキャッシングの単位となる。
【0029】TAGエントリは図4の如くアドレス部1
90,有効(V)ビット191,ロック成功(S)ビッ
ト192,ロック失敗(F)ビット193とからなって
いる。このTAGエントリの「アドレス」190は対応
データ(DATA)部122のメモリアドレスを示す。
90,有効(V)ビット191,ロック成功(S)ビッ
ト192,ロック失敗(F)ビット193とからなって
いる。このTAGエントリの「アドレス」190は対応
データ(DATA)部122のメモリアドレスを示す。
【0030】「有効(V)ビット」191はこのエント
リの内容が有効であることを示し、論理値1で有効を示
す。「ロック成功(S)ビット」192はこのエントリ
のメモリアドレスのロックを獲得していることを示し、
論理値1で成功を示す。「ロック失敗(F)ビット」1
93はこのエントリのメモリアドレスのロックの獲得に
失敗していることを示し、論理値1で失敗を示す。
リの内容が有効であることを示し、論理値1で有効を示
す。「ロック成功(S)ビット」192はこのエントリ
のメモリアドレスのロックを獲得していることを示し、
論理値1で成功を示す。「ロック失敗(F)ビット」1
93はこのエントリのメモリアドレスのロックの獲得に
失敗していることを示し、論理値1で失敗を示す。
【0031】本実施例では、キャッシングの単位である
ブロックサイズを図5に示す如く4ワードと仮定する。
すなわち、あるワードのリードアクセスを命令実行部1
10より要求されたアドレスに対応するデータがキャッ
シュメモリの全エントリに見付からなかった時(ミスヒ
ット)、この要求アドレスを含む4ワード単位のブロッ
クをメモリ6から読出して適当なエントリへ登録するも
のとする。
ブロックサイズを図5に示す如く4ワードと仮定する。
すなわち、あるワードのリードアクセスを命令実行部1
10より要求されたアドレスに対応するデータがキャッ
シュメモリの全エントリに見付からなかった時(ミスヒ
ット)、この要求アドレスを含む4ワード単位のブロッ
クをメモリ6から読出して適当なエントリへ登録するも
のとする。
【0032】キャッシュメモリはメモリアクセスのため
の外部インタフェース140とメモリインタフェースで
あるOUTBOUND150とINBOUND160と
を有している。メモリインタフェースOUTBOUND
150は図7(C)に示す如く、メモリコマンドとアド
レスとデータからなるパケットである。
の外部インタフェース140とメモリインタフェースで
あるOUTBOUND150とINBOUND160と
を有している。メモリインタフェースOUTBOUND
150は図7(C)に示す如く、メモリコマンドとアド
レスとデータからなるパケットである。
【0033】このパケットの「メモリコマンド」はメモ
リに対する動作要求、または他プロセッサに対する要求
を示す。このコマンドには、ブロックリード,ブロック
ライト,ロック,アンロックがある。
リに対する動作要求、または他プロセッサに対する要求
を示す。このコマンドには、ブロックリード,ブロック
ライト,ロック,アンロックがある。
【0034】このパケットの「アドレス」はブロックリ
ード,ブロックライト,ロック,アンロックの場合、動
作の対象となるメモリのアドレスを示す。「データ」は
ブロックライトの場合ライトデータを示す。
ード,ブロックライト,ロック,アンロックの場合、動
作の対象となるメモリのアドレスを示す。「データ」は
ブロックライトの場合ライトデータを示す。
【0035】メモリインタフェースINBOUND16
0は図7(D)に示す如くステータスとアドレスとデー
タとからなるパケットである。このパケットの「ステー
タス」はインタコネクション5からの動作要求を示し、
データリプライとバリッドとの2つがある。
0は図7(D)に示す如くステータスとアドレスとデー
タとからなるパケットである。このパケットの「ステー
タス」はインタコネクション5からの動作要求を示し、
データリプライとバリッドとの2つがある。
【0036】「アドレス」はステータスがインバリッド
の場合に無効化を要求するアドレスを指定するものであ
り、「データ」はステータスがデータリプライの場合リ
プライデータを示す。
の場合に無効化を要求するアドレスを指定するものであ
り、「データ」はステータスがデータリプライの場合リ
プライデータを示す。
【0037】メモリ6は図6に示す如くインタコネクシ
ョン5とのインタフェースREQUEST2100とイ
ンタフェースREPLY2200とを有し、複数のメモ
リワード2001と各メモリワードの4ワード(キャッ
シュメモリ120上のブロックと同一サイズ)のブロッ
ク毎に設けられたロック(L)ビット2002とからな
っている。
ョン5とのインタフェースREQUEST2100とイ
ンタフェースREPLY2200とを有し、複数のメモ
リワード2001と各メモリワードの4ワード(キャッ
シュメモリ120上のブロックと同一サイズ)のブロッ
ク毎に設けられたロック(L)ビット2002とからな
っている。
【0038】インタフェースREQUESTパケットは
図7(E)に示す如くコマンドとアドレスとノードから
なり、「コマンド」はブロックリード,ブロックライ
ト,ロック,アンロックを示す。「アドレス」は各コマ
ンドに対するメモリアドレスを示し、「ノード」はリク
エストを発行したプロセッサ番号(ノード番号)を示
す。
図7(E)に示す如くコマンドとアドレスとノードから
なり、「コマンド」はブロックリード,ブロックライ
ト,ロック,アンロックを示す。「アドレス」は各コマ
ンドに対するメモリアドレスを示し、「ノード」はリク
エストを発行したプロセッサ番号(ノード番号)を示
す。
【0039】インタフェースREPLYパケットは図7
(F)に示す如くノードとステータスとデータとアドレ
スからなり、「ノード」はリプライ返送先のプロセッサ
番号(ノード番号)を示す。「ステータス」はデータリ
プライ,ロック成功,ロック失敗,インバリッドを示
し、「データ」はデータリプライ,ロック成功時のリプ
ライデータを示す。「アドレス」はステータスがインバ
リッドのときに無効化すべきアドレスを示す。
(F)に示す如くノードとステータスとデータとアドレ
スからなり、「ノード」はリプライ返送先のプロセッサ
番号(ノード番号)を示す。「ステータス」はデータリ
プライ,ロック成功,ロック失敗,インバリッドを示
し、「データ」はデータリプライ,ロック成功時のリプ
ライデータを示す。「アドレス」はステータスがインバ
リッドのときに無効化すべきアドレスを示す。
【0040】インタコネクション5は、プロセッサ1〜
4がメモリに対する要求を行う場合、各プロセッサの要
求を調停しメモリに要求を送出する。OUTPUTBO
UNDにより与えられたコマンドとアドレスにノード番
号を付してREQUESTに送出する。
4がメモリに対する要求を行う場合、各プロセッサの要
求を調停しメモリに要求を送出する。OUTPUTBO
UNDにより与えられたコマンドとアドレスにノード番
号を付してREQUESTに送出する。
【0041】また、インタコネクション5は、メモリ6
がリプライデータを返すとき、指定されたプロセッサに
データを返し、REPLYより与えられたステータスと
データとをINBOUNDに送出する。更に、インタコ
ネクション5はメモリ6が無効化要求を行うとき、RE
PLYで指定されたノード番号に従って相手プロセッサ
に無効化要求と無効化すべきアドレスを送出する。ま
た、REPLYにより与えられたコマンドとアドレスを
INBOUNDへ送るものである。
がリプライデータを返すとき、指定されたプロセッサに
データを返し、REPLYより与えられたステータスと
データとをINBOUNDに送出する。更に、インタコ
ネクション5はメモリ6が無効化要求を行うとき、RE
PLYで指定されたノード番号に従って相手プロセッサ
に無効化要求と無効化すべきアドレスを送出する。ま
た、REPLYにより与えられたコマンドとアドレスを
INBOUNDへ送るものである。
【0042】以上の構成において、本発明の実施例のメ
モリアクセス動作について図8〜図11の各処理フロー
チャートを用いて詳述する。メモリアクセス動作は、先
ずメモリアクセス(リード/ライト)を行うべきプロセ
ッサがメモリロック処理を行うことから始まり、メモリ
ロックが成功すれば、当該メモリアクセスが実行され、
このメモリアクセスが全て終了すれば、アンロック処理
を行って動作終了となる。
モリアクセス動作について図8〜図11の各処理フロー
チャートを用いて詳述する。メモリアクセス動作は、先
ずメモリアクセス(リード/ライト)を行うべきプロセ
ッサがメモリロック処理を行うことから始まり、メモリ
ロックが成功すれば、当該メモリアクセスが実行され、
このメモリアクセスが全て終了すれば、アンロック処理
を行って動作終了となる。
【0043】図8を参照すると、命令実行部110から
メモリアクセス要求があると、キャッシュメモリ120
では、アクセス要求アドレスと有効な(V=1)TAG
部121の各エントリとが比較され(10300)、一
致不一致が判断される(10310)。不一致であれば
メモリロック要求となり(10360)、一致すればそ
のエントリのVビット191が調べられ(1032
0)、有効でなければ(1でなければ)、メモリロック
要求となる(10360)。有効であれば(1であれ
ば)、そのエントリのS,Fの各ビット192,193
の状態に応じて動作が分かれる(10330)。
メモリアクセス要求があると、キャッシュメモリ120
では、アクセス要求アドレスと有効な(V=1)TAG
部121の各エントリとが比較され(10300)、一
致不一致が判断される(10310)。不一致であれば
メモリロック要求となり(10360)、一致すればそ
のエントリのVビット191が調べられ(1032
0)、有効でなければ(1でなければ)、メモリロック
要求となる(10360)。有効であれば(1であれ
ば)、そのエントリのS,Fの各ビット192,193
の状態に応じて動作が分かれる(10330)。
【0044】対応ブロックのメモリロック要求がキャッ
シュメモリ120からメモリ6へ送出されると(103
60)、メモリ6ではそのブロックに対するロックビッ
トLが調べられ(10370)、このロックビットLの
状態により、処理が分かれる。L=0の場合、ロックビ
ットLが1とされ、ロック成功のリプライが要求元へ返
送される(10340)。このリプライを受けた要求元
プロセッサでは、このブロックに対応したキャッシュT
AG部121の状態がV=1,S=1,F=0とされ、
対応するメモリブロックのキャッシュDATA部122
へのロードが行われる(10350)。
シュメモリ120からメモリ6へ送出されると(103
60)、メモリ6ではそのブロックに対するロックビッ
トLが調べられ(10370)、このロックビットLの
状態により、処理が分かれる。L=0の場合、ロックビ
ットLが1とされ、ロック成功のリプライが要求元へ返
送される(10340)。このリプライを受けた要求元
プロセッサでは、このブロックに対応したキャッシュT
AG部121の状態がV=1,S=1,F=0とされ、
対応するメモリブロックのキャッシュDATA部122
へのロードが行われる(10350)。
【0045】ステップ10380でL=1と判断される
と、このメモリブロックは既に他のプロセッサにロック
を獲得されていることになるので、メモリ6からロック
失敗のリプライが要求元へ返される(10390)。要
求元プロセッサでは、このブロックに対応したエントリ
のTAG部の状態がV=1,S=0,F=1とされる
(10400)。このとき、このメモリブロックのキャ
ッシュDARA部へのロードは行われないことは当然で
ある。
と、このメモリブロックは既に他のプロセッサにロック
を獲得されていることになるので、メモリ6からロック
失敗のリプライが要求元へ返される(10390)。要
求元プロセッサでは、このブロックに対応したエントリ
のTAG部の状態がV=1,S=0,F=1とされる
(10400)。このとき、このメモリブロックのキャ
ッシュDARA部へのロードは行われないことは当然で
ある。
【0046】ステップ10330において、そのエント
リのS,Fの各ビットの状態が(S,F)=(0,0)
であれば、そのエントリが無効化(V=0)とされ、後
はステップ10340,10350の処理がなされる。
リのS,Fの各ビットの状態が(S,F)=(0,0)
であれば、そのエントリが無効化(V=0)とされ、後
はステップ10340,10350の処理がなされる。
【0047】(S,F)=(0,1)であれば、このエ
ントリは他のプロセッサにより既にロックされているも
のと判断され、ロック失敗が命令実行部110へ返され
る(10360)。(S,F)=(1,0),(1,
1)の場合、この状態はあり得ない(この状態でロック
要求が再度発生されることはない)ので、エラーとして
処理される(10410)。
ントリは他のプロセッサにより既にロックされているも
のと判断され、ロック失敗が命令実行部110へ返され
る(10360)。(S,F)=(1,0),(1,
1)の場合、この状態はあり得ない(この状態でロック
要求が再度発生されることはない)ので、エラーとして
処理される(10410)。
【0048】図9にはメモリアクセスがリードアクセス
の場合のリード動作を示すフローチャートである。リー
ド要求アドレスとTAG部の有効な各エントリとが比較
され(10000)、一致するかどうかが判定される
(10010)。一致すればキャッシュヒットであり、
対応するDATA部のデータがリプライデータとして返
送される(10020)。そのときのリプライステータ
スはデータリプライとなる。
の場合のリード動作を示すフローチャートである。リー
ド要求アドレスとTAG部の有効な各エントリとが比較
され(10000)、一致するかどうかが判定される
(10010)。一致すればキャッシュヒットであり、
対応するDATA部のデータがリプライデータとして返
送される(10020)。そのときのリプライステータ
スはデータリプライとなる。
【0049】ステップ10010において、不一致であ
ればキャッシュミスヒットであるから、キャッシュメモ
リ120はメモリ6に対してリード要求アドレスを含む
ブロックのブロックリード要求を行う(10100)
(図9(B)のキャッシュミス処理)。このときには、
図8のフローで示した如く既にリード要求のアドレスの
メモリブロックはロック獲得されている。
ればキャッシュミスヒットであるから、キャッシュメモ
リ120はメモリ6に対してリード要求アドレスを含む
ブロックのブロックリード要求を行う(10100)
(図9(B)のキャッシュミス処理)。このときには、
図8のフローで示した如く既にリード要求のアドレスの
メモリブロックはロック獲得されている。
【0050】メモリ6においては、メモリリードが実行
されてリプライデータが4ワード分返送される(101
10)。キャッシュメモリにおいては、1つのエントリ
がこのブロック(4ワード)に割り当てられ、要求部の
アドレス部に登録され、Vビットが論理値1とされる。
ブロックのデータはDATA部へ格納される(1012
0)。
されてリプライデータが4ワード分返送される(101
10)。キャッシュメモリにおいては、1つのエントリ
がこのブロック(4ワード)に割り当てられ、要求部の
アドレス部に登録され、Vビットが論理値1とされる。
ブロックのデータはDATA部へ格納される(1012
0)。
【0051】図10はメモリアクセスがライトアクセス
の場合の動作を示すフローチャートである。ライト要求
アドレスとTAG部の有効な各エントリとが比較され
(10200)、一致判定がなされる(10210)。
一致すれば、そのエントリのDATA部にライトデータ
が書込まれる(10220)。不一致であれば、図9
(B)に示したキャッシュミス処理が行われ、そのブロ
ックがキャッシュメモリのDATA部に登録される(1
0220)。
の場合の動作を示すフローチャートである。ライト要求
アドレスとTAG部の有効な各エントリとが比較され
(10200)、一致判定がなされる(10210)。
一致すれば、そのエントリのDATA部にライトデータ
が書込まれる(10220)。不一致であれば、図9
(B)に示したキャッシュミス処理が行われ、そのブロ
ックがキャッシュメモリのDATA部に登録される(1
0220)。
【0052】図11はアンロック処理のフローチャート
であり、ロックを獲得したプロセッサ全てのアクセス処
理が終了した場合に実行される処理である。プロセッサ
によりロックされていたメモリブロックがアンロックさ
れるとき、アンロック要求がメモリ6へ送出される(1
0600)。メモリでは、アンロック要求に応答して全
プロセッサへ該当キャッシュブロックの無効化要求が生
成される(10610)。そのブロックのロックビット
L=0となり、ロック解除となる。
であり、ロックを獲得したプロセッサ全てのアクセス処
理が終了した場合に実行される処理である。プロセッサ
によりロックされていたメモリブロックがアンロックさ
れるとき、アンロック要求がメモリ6へ送出される(1
0600)。メモリでは、アンロック要求に応答して全
プロセッサへ該当キャッシュブロックの無効化要求が生
成される(10610)。そのブロックのロックビット
L=0となり、ロック解除となる。
【0053】以上の構成とすることにより、一度いずれ
かのプロセッサがメモリブロックに対するロックを獲得
すると、他のプロセッサはロックを取りにいくときには
一度だけメモリに対するトラフィックが発生することに
なるが、それ以降はキャッシュメモリ上の処理操作のみ
で済むので、メモリトラフィックが大幅に減少するので
ある。
かのプロセッサがメモリブロックに対するロックを獲得
すると、他のプロセッサはロックを取りにいくときには
一度だけメモリに対するトラフィックが発生することに
なるが、それ以降はキャッシュメモリ上の処理操作のみ
で済むので、メモリトラフィックが大幅に減少するので
ある。
【0054】図12〜14は本発明の他の実施例のブロ
ック図であり、図1の各プロセッサ1〜4に代えてプロ
セッサクラスタ11〜13が設けられている。各プロセ
ッサクラスタは複数のプロセッサ0〜m(mは1以上の
整数)を有しており、クラスタ内部バス200にて相互
接続されると共に、共通のキャッシュメモリ120とも
接続されている。そして、各クラスタ11〜13とこれ
等クラスタに共通のメモリ6とはインタコネクション5
により接続されている。この様な構成の、マルチプロセ
ッサシステムにおいても、各プロセッサによるメモリ6
のロック獲得のためのアクセスを共有キャッシュへのア
クセスのみとしてメモリ6へのトラフィックを抑えるよ
うにしたものである。
ック図であり、図1の各プロセッサ1〜4に代えてプロ
セッサクラスタ11〜13が設けられている。各プロセ
ッサクラスタは複数のプロセッサ0〜m(mは1以上の
整数)を有しており、クラスタ内部バス200にて相互
接続されると共に、共通のキャッシュメモリ120とも
接続されている。そして、各クラスタ11〜13とこれ
等クラスタに共通のメモリ6とはインタコネクション5
により接続されている。この様な構成の、マルチプロセ
ッサシステムにおいても、各プロセッサによるメモリ6
のロック獲得のためのアクセスを共有キャッシュへのア
クセスのみとしてメモリ6へのトラフィックを抑えるよ
うにしたものである。
【0055】図1〜3に示した先の実施例と異なる部分
について述べると、各キャッシュメモリのTAGエント
リは、図15に示す如く、アドレス部190と、有効
(V)ビット191と、ロック成功(S)ビット192
と、ロック失敗(F)ビット193の他に、ロック獲得
プロセッサ番号(P#)194と、他プロセッサロック
要求存在(O)ビット195とが追加されている。
について述べると、各キャッシュメモリのTAGエント
リは、図15に示す如く、アドレス部190と、有効
(V)ビット191と、ロック成功(S)ビット192
と、ロック失敗(F)ビット193の他に、ロック獲得
プロセッサ番号(P#)194と、他プロセッサロック
要求存在(O)ビット195とが追加されている。
【0056】ロック獲得プロセッサ番号(P#)は現在
ロックを獲得しているプロセッサの番号を示すものであ
る。他プロセッサロック要求存在(O)ビットは現在ロ
ックを獲得しているプロセッサの他のプロセッサが同じ
ロックの獲得を待っていることを示す。
ロックを獲得しているプロセッサの番号を示すものであ
る。他プロセッサロック要求存在(O)ビットは現在ロ
ックを獲得しているプロセッサの他のプロセッサが同じ
ロックの獲得を待っていることを示す。
【0057】各プロセッサからキャッシュメモリ120
に対してはクラスタ内部バス200を介してREQUE
STパケットとが送出され、またそれに対するREPL
Yパケットがクラスタ内部バス200を介して各プロセ
ッサへ送出される。これ等REQUESTパケットは図
7(A)のINPUTパケットと等価であり、REPL
Yパケットは図7(B)のOUTPUTパケットと等価
である。
に対してはクラスタ内部バス200を介してREQUE
STパケットとが送出され、またそれに対するREPL
Yパケットがクラスタ内部バス200を介して各プロセ
ッサへ送出される。これ等REQUESTパケットは図
7(A)のINPUTパケットと等価であり、REPL
Yパケットは図7(B)のOUTPUTパケットと等価
である。
【0058】メモリインタフェースは図7(C),
(D)のOUTPUTパケット,INPUTパケットと
同一であり、メモリ6とインタコネクション5との間の
各パケットも図7(E),(F)に示すREQUEST
パケット,REPLYパケットと同一である。
(D)のOUTPUTパケット,INPUTパケットと
同一であり、メモリ6とインタコネクション5との間の
各パケットも図7(E),(F)に示すREQUEST
パケット,REPLYパケットと同一である。
【0059】図16はこの実施例のメモリロック獲得処
理の動作フローである。クラスタ内部バス200上のR
EQUESTパケットで要求されたアドレスとTAG部
の有効(V=1)な各エントリとを比較する(2020
0)。一致するエントリがTAG部にあるかどうかが判
断され(20210)、不一致であればメモリインタフ
ェースOUTBOUDを介してメモリ6に対して要求ア
ドレスを含むブロックのブロックリードが要求される
(20240)。一致すればそのエントリのVビット1
91が調べられ(20220)、有効でなければメモリ
ロック要求となる(20240)。有効であればそのエ
ントリのS,Fの各ビット192,193の状態に応じ
て動作が分かれる(20230)。
理の動作フローである。クラスタ内部バス200上のR
EQUESTパケットで要求されたアドレスとTAG部
の有効(V=1)な各エントリとを比較する(2020
0)。一致するエントリがTAG部にあるかどうかが判
断され(20210)、不一致であればメモリインタフ
ェースOUTBOUDを介してメモリ6に対して要求ア
ドレスを含むブロックのブロックリードが要求される
(20240)。一致すればそのエントリのVビット1
91が調べられ(20220)、有効でなければメモリ
ロック要求となる(20240)。有効であればそのエ
ントリのS,Fの各ビット192,193の状態に応じ
て動作が分かれる(20230)。
【0060】対応ブロックのメモリロック要求がキャッ
シュメモリ120からメモリ6へ送出されると(202
40)、メモリ6ではそのブロックに対するロックビッ
トLが調べられ(20250)、このロックビットLの
状態により、処理が分かれる。L=0の場合、ロックビ
ットLが1とされ、ロック成分のリプライが要求元へ返
送される(20290)。このリプライを受けた要求元
プロセッサでは、このブロックに対応したキャッシュT
AG部121の状態がV=1,S=1,F=0とされ、
対応するメモリブロックのキャッシュDATA部122
へのロードが行われると同時にTAG部121のプロセ
ッサ番号P#に要求元プロセッサ番号(この例では、P
#=Procとする)が書込まれる(20300)。
シュメモリ120からメモリ6へ送出されると(202
40)、メモリ6ではそのブロックに対するロックビッ
トLが調べられ(20250)、このロックビットLの
状態により、処理が分かれる。L=0の場合、ロックビ
ットLが1とされ、ロック成分のリプライが要求元へ返
送される(20290)。このリプライを受けた要求元
プロセッサでは、このブロックに対応したキャッシュT
AG部121の状態がV=1,S=1,F=0とされ、
対応するメモリブロックのキャッシュDATA部122
へのロードが行われると同時にTAG部121のプロセ
ッサ番号P#に要求元プロセッサ番号(この例では、P
#=Procとする)が書込まれる(20300)。
【0061】ステップ20260でL=1と判断される
と、このメモリブロックは既に他のプロセッサにロック
を獲得されているので、メモリ6からロック失敗のリプ
ライが要求元へ返される(20270)。要求元プロセ
ッサでは、このブロックに対応したエントリのTAG部
の状態がV=1,S=0,F=1とされる(2028
0)。このとき、このメモリブロックのキャッシュDA
TA部へのロードは行われないことは当然である。
と、このメモリブロックは既に他のプロセッサにロック
を獲得されているので、メモリ6からロック失敗のリプ
ライが要求元へ返される(20270)。要求元プロセ
ッサでは、このブロックに対応したエントリのTAG部
の状態がV=1,S=0,F=1とされる(2028
0)。このとき、このメモリブロックのキャッシュDA
TA部へのロードは行われないことは当然である。
【0062】ステップ20230において、そのエント
リのS,Fの各ビットの状態が(S,F)=(1,1)
であれば、ロック成功が要求元プロセッサへ返され、P
#がロックを獲得したプロセッサ番号(Proc)とさ
れる(20350)。
リのS,Fの各ビットの状態が(S,F)=(1,1)
であれば、ロック成功が要求元プロセッサへ返され、P
#がロックを獲得したプロセッサ番号(Proc)とさ
れる(20350)。
【0063】(S,F)=(0,0)であれば、そのエ
ントリが無効化(V=0)され、後はステップ2029
0,20300の処理が行われる。
ントリが無効化(V=0)され、後はステップ2029
0,20300の処理が行われる。
【0064】(S,F)=(0,1)であれば、ロック
失敗となり(20320)、(1,0)であれば、Oビ
ット194が調べられ(20310)、0でなければロ
ック失敗となり(20320)、0であればP#が調べ
られる。P#が現在の要求元プロセッサ番号(Pro
c)であればエラーとなり(20340)、そうでなけ
ればOビット194が1とされロック失敗(ロック獲得
待ち)となる(20331)。
失敗となり(20320)、(1,0)であれば、Oビ
ット194が調べられ(20310)、0でなければロ
ック失敗となり(20320)、0であればP#が調べ
られる。P#が現在の要求元プロセッサ番号(Pro
c)であればエラーとなり(20340)、そうでなけ
ればOビット194が1とされロック失敗(ロック獲得
待ち)となる(20331)。
【0065】ロック後のメモリアクセスであるリード,
ライト動作は図9,10と同一である。
ライト動作は図9,10と同一である。
【0066】図17はアンロック処理のフローチャート
であり、ロックを獲得したプロセッサの全てのアクセス
処理が終了した場合に実行される。プロセッサによりロ
ックされていたメモリブロックがアンロックされると
き、アンロックするメモリブロックに対応するキャッシ
ュエントリのOビットがチェックされる(2060
0)。Oビットが0のとき、要求元プロセッサより、こ
のメモリブロックのアンロック要求がメモリ6へ送出さ
れ(20610)、メモリ6はこれに応答して全プロセ
ッサクラスタ11〜13へ向けてメモリブロックに対応
する各クラスタ上のキャッシュブロックのインバリッド
要求をインタコネクション5を介して送出する(202
60)。
であり、ロックを獲得したプロセッサの全てのアクセス
処理が終了した場合に実行される。プロセッサによりロ
ックされていたメモリブロックがアンロックされると
き、アンロックするメモリブロックに対応するキャッシ
ュエントリのOビットがチェックされる(2060
0)。Oビットが0のとき、要求元プロセッサより、こ
のメモリブロックのアンロック要求がメモリ6へ送出さ
れ(20610)、メモリ6はこれに応答して全プロセ
ッサクラスタ11〜13へ向けてメモリブロックに対応
する各クラスタ上のキャッシュブロックのインバリッド
要求をインタコネクション5を介して送出する(202
60)。
【0067】Oビットが1の場合、キャッシュエントリ
の属性がV=1,S=1,F=1,O=0とされる(2
0630)。
の属性がV=1,S=1,F=1,O=0とされる(2
0630)。
【0068】
【発明の効果】以上述べた如く、本発明によれば、一度
いずれかのプロセッサ(クラスタ)がメモリブロックに
対するロックを獲得してしまうと、他のプロセッサ(ク
ラスタ)がロックを獲得するときに一度だけメモリに対
するトラフィックが発生するが、それ以降はキャッシュ
上の操作で済むので、メモリトラフィックが大幅に減少
するという効果がある。
いずれかのプロセッサ(クラスタ)がメモリブロックに
対するロックを獲得してしまうと、他のプロセッサ(ク
ラスタ)がロックを獲得するときに一度だけメモリに対
するトラフィックが発生するが、それ以降はキャッシュ
上の操作で済むので、メモリトラフィックが大幅に減少
するという効果がある。
【図1】本発明の一実施例のシステムブロック図である
【図2】図1のプロセッサ1〜4の例を示す図である。
【図3】図2のキャッシュメモリ120の例を示す図で
ある。
ある。
【図4】図3のTAG部121のエントリの構成を示す
図である。
図である。
【図5】図3のDATA部122のエントリの構成を示
す図である。
す図である。
【図6】図1のメモリ6の構成を示す図である。
【図7】図1のブロックにおける各部信号のパケット例
を示す図である。
を示す図である。
【図8】本発明の一実施例のロック獲得処理を示すフロ
ー図である。
ー図である。
【図9】本発明の一実施例のリード処理を示すフロー図
である。
である。
【図10】本発明の一実施例のライト処理を示すフロー
図である。
図である。
【図11】本発明の一実施例のアンロック処理を示すフ
ロー図である。
ロー図である。
【図12】本発明の他の実施例のブロック図である。
【図13】図12のプロセッサクラスタ11〜13の例
を示す図である。
を示す図である。
【図14】図12のキャッシュメモリ120の例を示す
図である。
図である。
【図15】図14のキャッシュメモリ120のTAG部
121のエントリの構成を示す図である。
121のエントリの構成を示す図である。
【図16】本発明の他の実施例のロック獲得処理を示す
フロー図である。
フロー図である。
【図17】本発明の他の実施例のアンロック処理を示す
フロー図である。
フロー図である。
1〜4 プロセッサ 5 インタコネクション 6 メモリ 11〜13 プロセッサクラスタ 110 命令実行部 120 キャッシュメモリ 121 TAG部 122 DATA部 2001 ワードブロック 2002 ロックビット
Claims (4)
- 【請求項1】 共通メモリと、前記メモリの格納データ
の一部をブロック単位で格納するキャッシュメモリを各
々が有する複数のプロセッサと、これ等プロセッサ及び
共通メモリ間を接続するインタコネクト手段とを含むマ
ルチプロセッサシステムであって、 前記共通メモリに設けられ、前記ブロック単位にそのブ
ロックの排他的占有状態を示すロック表示手段と、 前記プロセッサの各々に設けられ、前記共通メモリへの
アクセスの発生に応答して当該アクセスアドレスに対応
するエントリブロックが前記キャッシュメモリに存在し
ないとき前記共通メモリへのロック要求を生成する手段
と、 前記共通メモリに設けられ、前記ロック要求に応答して
前記アクセスアドレスに対応するブロックのロック表示
手段が非ロックであればロック表示を行いロック成功
を、既にロックであればロック失敗を夫々要求元プロセ
ッサへ送出するロック制御手段と、 前記プロセッサの各々に設けられ、前記ロック成功か失
敗に夫々応答して自キャッシュメモリへロック成功か失
敗を示すロック成功情報と共に前記アクセスアドレス情
報を登録する登録制御手段と、 を有することを特徴とするマルチプロセッサシステム。 - 【請求項2】 前記プロセッサの各々は、前記ロック成
功に応答して当該アクセス要求を前記共通メモリに対し
て行い、アクセス処理の終了に応答して前記共通メモリ
に対してロック解除要求を発生すると共に、他のプロセ
ッサに対して該当キャッシュブロック無効化要求を生成
するようにしたことを特徴とする請求項1記載のマルチ
プロセッサシステム。 - 【請求項3】 前記プロセッサの各々は、前記共通メモ
リへのアクセスの発生に応答して当該アクセスアドレス
に対応するエントリブロックが前記キャッシュメモリに
存在するとき、そのエントリブロックの前記ロック成功
情報を参照するようにしたことを特徴とする請求項1ま
たは2記載のマルチプロセッサシステム。 - 【請求項4】 前記複数のプロセッサに代えて複数のプ
ロセッサクラスタとし、前記キャッシュメモリは前記プ
ロセッサクラスタの各々に設けられており、前記登録制
御手段は、前記ロック成功情報と前記アクセスアドレス
情報とに加えてこのアクセス要求元のプロセッサ番号情
報をも登録するよう構成されていることを特徴とする請
求項1〜3いずれか記載のマルチプロセッサシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7124634A JPH08320828A (ja) | 1995-05-24 | 1995-05-24 | マルチプロセッサシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7124634A JPH08320828A (ja) | 1995-05-24 | 1995-05-24 | マルチプロセッサシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08320828A true JPH08320828A (ja) | 1996-12-03 |
Family
ID=14890273
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7124634A Withdrawn JPH08320828A (ja) | 1995-05-24 | 1995-05-24 | マルチプロセッサシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08320828A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6088770A (en) * | 1997-02-27 | 2000-07-11 | Hitachi, Ltd. | Shared memory multiprocessor performing cache coherency |
| JP2010146431A (ja) * | 2008-12-22 | 2010-07-01 | Nec Computertechno Ltd | メモリ制御装置 |
| WO2011155027A1 (ja) | 2010-06-08 | 2011-12-15 | 富士通株式会社 | メモリアクセス制御装置、マルチコアプロセッサシステム、メモリアクセス制御方法、およびメモリアクセス制御プログラム |
-
1995
- 1995-05-24 JP JP7124634A patent/JPH08320828A/ja not_active Withdrawn
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6088770A (en) * | 1997-02-27 | 2000-07-11 | Hitachi, Ltd. | Shared memory multiprocessor performing cache coherency |
| US6546471B1 (en) | 1997-02-27 | 2003-04-08 | Hitachi, Ltd. | Shared memory multiprocessor performing cache coherency |
| JP2010146431A (ja) * | 2008-12-22 | 2010-07-01 | Nec Computertechno Ltd | メモリ制御装置 |
| WO2011155027A1 (ja) | 2010-06-08 | 2011-12-15 | 富士通株式会社 | メモリアクセス制御装置、マルチコアプロセッサシステム、メモリアクセス制御方法、およびメモリアクセス制御プログラム |
| US9348740B2 (en) | 2010-06-08 | 2016-05-24 | Fujitsu Limited | Memory access controller, multi-core processor system, memory access control method, and computer product |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3987162B2 (ja) | 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム | |
| JP3849951B2 (ja) | 主記憶共有型マルチプロセッサ | |
| US5682516A (en) | Computer system that maintains system wide cache coherency during deferred communication transactions | |
| JPH10187470A (ja) | スピンロック動作を最適化する装置を含むマルチプロセス・システム | |
| JPH04268649A (ja) | メモリへのデータブロックのエントリを制御する方法 | |
| JPH10171710A (ja) | 効果的なブロック・コピー動作を実行するマルチプロセス・システム | |
| JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム | |
| JP2001167077A (ja) | ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体 | |
| JPH07253928A (ja) | 2重化キャッシュ・スヌープ機構 | |
| US7472237B1 (en) | Apparatus to offload and accelerate pico code processing running in a storage processor | |
| JPH10143476A (ja) | プリフェッチ動作を開始するソフトウエアを実行するマルチプロセス・システム | |
| US6874065B1 (en) | Cache-flushing engine for distributed shared memory multi-processor computer systems | |
| US7523260B2 (en) | Propagating data using mirrored lock caches | |
| JPH03118649A (ja) | メモリーサブシステム入力キュー | |
| US6412047B2 (en) | Coherency protocol | |
| US20040117564A1 (en) | System and method for reducing shared memory write overhead in multiprocessor systems | |
| US20050102477A1 (en) | Multiprocessor system | |
| JPH03225542A (ja) | データ記憶方法及びビットエンコードデータの処理回路 | |
| US20040059818A1 (en) | Apparatus and method for synchronizing multiple accesses to common resources | |
| JP2746530B2 (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 | |
| JP2829115B2 (ja) | ファイル共用方法 | |
| US6918011B2 (en) | Cache memory for invalidating data or writing back data to a main memory | |
| JP2776759B2 (ja) | ロックリクエスト制御装置 | |
| JPH08320828A (ja) | マルチプロセッサシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020806 |