JPH0816475A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JPH0816475A JPH0816475A JP6148399A JP14839994A JPH0816475A JP H0816475 A JPH0816475 A JP H0816475A JP 6148399 A JP6148399 A JP 6148399A JP 14839994 A JP14839994 A JP 14839994A JP H0816475 A JPH0816475 A JP H0816475A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- memory
- instruction
- invalidation
- cache memory
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 本発明は、キャッシュメモリでのタグデュプ
リケーションを不要とし、低コストかつ高性能なマルチ
プロセッサシステムを実現することを目的とする。 【構成】 共有バスによって接続されているマルチプロ
セッサシステムにおいて、バスブリッジが有しているキ
ャッシュメモリタグ情報を用いて従来キャッシュメモリ
が行っていたバスリクエストに対するスヌープをバスブ
リッジで行い、その結果キャッシュメモリにスヌープを
行わせる必要がある場合はスヌープ要求信号をアサート
しキャッシュメモリにスヌープ動作を行わせる。
リケーションを不要とし、低コストかつ高性能なマルチ
プロセッサシステムを実現することを目的とする。 【構成】 共有バスによって接続されているマルチプロ
セッサシステムにおいて、バスブリッジが有しているキ
ャッシュメモリタグ情報を用いて従来キャッシュメモリ
が行っていたバスリクエストに対するスヌープをバスブ
リッジで行い、その結果キャッシュメモリにスヌープを
行わせる必要がある場合はスヌープ要求信号をアサート
しキャッシュメモリにスヌープ動作を行わせる。
Description
【0001】
【産業上の利用分野】本発明は共有バスを用いてデータ
の一貫性を保持するマルチプロセッサシステムに関す
る。
の一貫性を保持するマルチプロセッサシステムに関す
る。
【0002】
【従来の技術】バススヌープによってデータの一貫性を
保証するマルチプロセッサシステムは良く知られてい
る。そのような方法を用いたシステムにおいてはバスに
リクエストが発行された時点でバスに接続されているキ
ャッシュメモリは各々のタグ情報を検査し、もしそのリ
クエストに対する最新のデータを有していればメモリか
らのデータ読み出しを抑止するためにメモリ抑止信号を
アサートする。これにより常に最新のデータが返される
ことを保証している。このような技術を使用しているバ
スとしては SPARC MBus 等が挙げられる。SPARC MBus
の詳細については文献 SPARC MBus Interface Specific
ation 、SPARC International に述べられている。
保証するマルチプロセッサシステムは良く知られてい
る。そのような方法を用いたシステムにおいてはバスに
リクエストが発行された時点でバスに接続されているキ
ャッシュメモリは各々のタグ情報を検査し、もしそのリ
クエストに対する最新のデータを有していればメモリか
らのデータ読み出しを抑止するためにメモリ抑止信号を
アサートする。これにより常に最新のデータが返される
ことを保証している。このような技術を使用しているバ
スとしては SPARC MBus 等が挙げられる。SPARC MBus
の詳細については文献 SPARC MBus Interface Specific
ation 、SPARC International に述べられている。
【0003】図6にこれを用いた分散共有メモリマルチ
プロセッサシステムの構成例を示す。ローカル共有バス
に対してキャッシュメモリがコヒーレントリード(CR)リ
クエストを発行した場合、キャッシュメモリはそのリク
エストに対する最新のデータを有しているか否かを調べ
るためにデュプリケートされたタグ情報を検索する。そ
の結果最新のデータを有する場合はメモリインヒビット
信号(MIH) をアサートし、メモリの動作を抑止して最新
のデータを供給することで一貫性を保つ。
プロセッサシステムの構成例を示す。ローカル共有バス
に対してキャッシュメモリがコヒーレントリード(CR)リ
クエストを発行した場合、キャッシュメモリはそのリク
エストに対する最新のデータを有しているか否かを調べ
るためにデュプリケートされたタグ情報を検索する。そ
の結果最新のデータを有する場合はメモリインヒビット
信号(MIH) をアサートし、メモリの動作を抑止して最新
のデータを供給することで一貫性を保つ。
【0004】もしこの検索がメモリのデータ読み出しよ
りも速い間は問題無いが、遅い場合はメモリからの読み
出しを待たせなければならず性能の低下を招くため通常
キャッシュメモリは前記のように共有バスからのスヌー
プのためにデュプリケートされたタグを有しているが、
そのためにハードウェア量と複雑度が増加することにな
るという問題点があった。
りも速い間は問題無いが、遅い場合はメモリからの読み
出しを待たせなければならず性能の低下を招くため通常
キャッシュメモリは前記のように共有バスからのスヌー
プのためにデュプリケートされたタグを有しているが、
そのためにハードウェア量と複雑度が増加することにな
るという問題点があった。
【0005】一方、マルチプロセッサシステムのような
階層バス・システムにおけるキャッシュメモリ無効化処
理方式については、以下のような技術的背景がある。計
算機システムではプロセッサ、メモリ、I/O デバイスな
どのモジュールがバスで接続される。これらのモジュー
ル間のデータのやりとりは、あるモジュールがバス・マ
スターとなりバスにread/writeなどのバス命令を発行
し、これに対しそのバス命令の対象となるモジュール(
スレーブ・モジュールと呼ぶ) が応答信号を出力するこ
とによって行なう。
階層バス・システムにおけるキャッシュメモリ無効化処
理方式については、以下のような技術的背景がある。計
算機システムではプロセッサ、メモリ、I/O デバイスな
どのモジュールがバスで接続される。これらのモジュー
ル間のデータのやりとりは、あるモジュールがバス・マ
スターとなりバスにread/writeなどのバス命令を発行
し、これに対しそのバス命令の対象となるモジュール(
スレーブ・モジュールと呼ぶ) が応答信号を出力するこ
とによって行なう。
【0006】例えばプロセッサ・モジュールがメモリ・
モジュールからデータを読み出す時、プロセッサはバス
にread命令を発行する。メモリ・モジュールはメモリか
ら対象となるデータを読みだしてバスに出力し、応答信
号を出力することによってデータの準備ができたことを
プロセッサに知らせる。プロセッサはこの信号を見てバ
スにデータが出ていることを知りバス上のデータを取り
込む。
モジュールからデータを読み出す時、プロセッサはバス
にread命令を発行する。メモリ・モジュールはメモリか
ら対象となるデータを読みだしてバスに出力し、応答信
号を出力することによってデータの準備ができたことを
プロセッサに知らせる。プロセッサはこの信号を見てバ
スにデータが出ていることを知りバス上のデータを取り
込む。
【0007】メモリの一時的なコピーを格納するキャッ
シュメモリをもつモジュールが複数あるマルチプロセッ
サシステムなどのシステムでは、複数のモジュールが同
じデータを共有している時に、いずれかのモジュールが
この共有しているデータを書き換える場合は、バスに無
効化命令を発行することにより他のモジュールのキャッ
シュメモリのデータを無効にする。この時無効化命令に
よって無効化処理を行なう他のモジュールが次のバス命
令を受けつけることができる状態になった時点で無効化
処理を受け付けたこととするので、応答信号は、全ての
モジュールで無効化命令の処理を終了した時点で出力さ
れる。
シュメモリをもつモジュールが複数あるマルチプロセッ
サシステムなどのシステムでは、複数のモジュールが同
じデータを共有している時に、いずれかのモジュールが
この共有しているデータを書き換える場合は、バスに無
効化命令を発行することにより他のモジュールのキャッ
シュメモリのデータを無効にする。この時無効化命令に
よって無効化処理を行なう他のモジュールが次のバス命
令を受けつけることができる状態になった時点で無効化
処理を受け付けたこととするので、応答信号は、全ての
モジュールで無効化命令の処理を終了した時点で出力さ
れる。
【0008】その理由の一つは、同時更新の防止であ
る。メモリの更新は直前の値に基づいて行なわれること
が多いが、マルチプロセッサシステムでは、2つ以上の
プロセッサが1つの値を取り込み、それぞれに更新を行
ない、相次いで書き込んでしまうと、後から書き込みを
行なった結果は、先に書き込まれた値に基づいておら
ず、不都合を生じる。例えば、test-and-set命令やswap
命令など、読み出しと書き込みを1つの命令で実行し、
その間に、他のプロセッサの読み出し・書き込みが入り
込まないという性質を用いたspin lock では、書き込み
に伴う無効化処理が全てのプロセッサで完了した後に始
めてそれらの命令が終了すべきである。さもないと、キ
ャッシュ上にコピーされたunlock状態を2以上のプロセ
ッサが取得し、排他制御が実現できなくなる。無効化処
理が完了したキャッシュは更新された値を新たに取得す
るため、直前の値に基づく処理を行ない、正しく排他制
御を実現する。
る。メモリの更新は直前の値に基づいて行なわれること
が多いが、マルチプロセッサシステムでは、2つ以上の
プロセッサが1つの値を取り込み、それぞれに更新を行
ない、相次いで書き込んでしまうと、後から書き込みを
行なった結果は、先に書き込まれた値に基づいておら
ず、不都合を生じる。例えば、test-and-set命令やswap
命令など、読み出しと書き込みを1つの命令で実行し、
その間に、他のプロセッサの読み出し・書き込みが入り
込まないという性質を用いたspin lock では、書き込み
に伴う無効化処理が全てのプロセッサで完了した後に始
めてそれらの命令が終了すべきである。さもないと、キ
ャッシュ上にコピーされたunlock状態を2以上のプロセ
ッサが取得し、排他制御が実現できなくなる。無効化処
理が完了したキャッシュは更新された値を新たに取得す
るため、直前の値に基づく処理を行ない、正しく排他制
御を実現する。
【0009】また、別の理由は、キャッシュがプロセッ
サのアクセス単位よりも大きい( アクセス単位の整数倍
の) キャッシュラインを単位に管理されていることに起
因する。同じキャッシュラインの別のアクセス単位を更
新するアクセスが2以上のプロセッサで同時に実行され
た場合、どちらのキャッシュラインも更新前の値をそれ
ぞれ保持しているため、無効化処理が完全に行なわれな
いと、先にバスを取得して書かれた内容が、その後のア
クセスによって書き潰されて、あたかも蒸発したような
現象が生じるという問題がある。
サのアクセス単位よりも大きい( アクセス単位の整数倍
の) キャッシュラインを単位に管理されていることに起
因する。同じキャッシュラインの別のアクセス単位を更
新するアクセスが2以上のプロセッサで同時に実行され
た場合、どちらのキャッシュラインも更新前の値をそれ
ぞれ保持しているため、無効化処理が完全に行なわれな
いと、先にバスを取得して書かれた内容が、その後のア
クセスによって書き潰されて、あたかも蒸発したような
現象が生じるという問題がある。
【0010】このため、書き込みのは、全てのキャッシ
ュで無効化処理が完了した後に完了するように設計する
ことが一般的であるが、無効化処理は比較的時間を必要
とするものであり、システム全体の性能低下を免れない
という問題点があった。
ュで無効化処理が完了した後に完了するように設計する
ことが一般的であるが、無効化処理は比較的時間を必要
とするものであり、システム全体の性能低下を免れない
という問題点があった。
【0011】無効化応答信号を出力する方法は、 1. 無効化処理の最大時間をあらかじめ決め、1つのモ
ジュールが代表して応答信号を出力する方法、 2. 各々のモジュールが無効化要求を受け付けた時点で
それぞれの無効化応答信号を出力する方法、 3. 各々のモジュールが無効化要求を受け付けるまでop
en drainの信号をアサートし続け、wired ORの原理に従
って、全体の無効化が完了したことを知る方法、などが
ある。
ジュールが代表して応答信号を出力する方法、 2. 各々のモジュールが無効化要求を受け付けた時点で
それぞれの無効化応答信号を出力する方法、 3. 各々のモジュールが無効化要求を受け付けるまでop
en drainの信号をアサートし続け、wired ORの原理に従
って、全体の無効化が完了したことを知る方法、などが
ある。
【0012】無効化処理の完了時間は、階層バス・シス
テムを用いた場合に顕著に増大する。階層バス・システ
ムとは、以上に述べた一つのバス( 以下ローカル・バス
と呼ぶ) に複数のモジュールが接続されたものがグロー
バル・バスと呼ばれるバスで接続されるシステムである
( 図7) 。各ローカル・バスはバス・ブリッジと呼ばれ
るモジュールを介してグローバル・バスと接続される。
テムを用いた場合に顕著に増大する。階層バス・システ
ムとは、以上に述べた一つのバス( 以下ローカル・バス
と呼ぶ) に複数のモジュールが接続されたものがグロー
バル・バスと呼ばれるバスで接続されるシステムである
( 図7) 。各ローカル・バスはバス・ブリッジと呼ばれ
るモジュールを介してグローバル・バスと接続される。
【0013】このような階層バス・システムにおいて無
効化命令を行なうときの従来の方式での動作を、キャッ
シュメモリ(3) とキャッシュメモリ(6) にメモリの1000
番地のデータが格納されている時にプロセッサ(7) がそ
の番地のデータを書き換える場合の動作について説明す
る。
効化命令を行なうときの従来の方式での動作を、キャッ
シュメモリ(3) とキャッシュメモリ(6) にメモリの1000
番地のデータが格納されている時にプロセッサ(7) がそ
の番地のデータを書き換える場合の動作について説明す
る。
【0014】1. まずプロセッサ(7) はローカル・バス
(1) に1000番地に対する無効化命令を発行する。 2. プロセッサ(8) およびバス・ブリッジ(8) は無効化
命令をみてそれぞれ無効化処理実行中信号(15)をアサー
トする。
(1) に1000番地に対する無効化命令を発行する。 2. プロセッサ(8) およびバス・ブリッジ(8) は無効化
命令をみてそれぞれ無効化処理実行中信号(15)をアサー
トする。
【0015】3. プロセッサ(8) はキャッシュメモリに
1000番地のデータがないことを確認した後無効化処理実
行中信号(15)をアサートするのを中止する。ただしバス
・ブリッジ(11)はアサートし続ける。
1000番地のデータがないことを確認した後無効化処理実
行中信号(15)をアサートするのを中止する。ただしバス
・ブリッジ(11)はアサートし続ける。
【0016】4. バス・ブリッジ(11)はグローバル・バ
ス(13)の使用要求を出す。 5. バス・ブリッジ(11)はグローバル・バス(13)の使用
権利を得られた場合は無効化処理実行中信号(15)をアサ
ートしたまま、グローバル・バス(13)に無効化命令を発
行する。バス・ブリッジ(11)がグローバル・バス(13)の
使用権利を得るまえにバス・ブリッジ(12)がグローバル
・バス(13)の使用権利を得て、同じアドレスのデータに
対するバス命令が発行した場合は、バス・ブリッジ(11)
はプロセッサ(7) が発行した無効化命令に対して再実行
応答を返し、ローカル・バス(1)上での無効化命令を一
旦完了させた後、ローカル・バス(1) にグローバル・バ
スから受けたバス命令を発行する。無効化命令に対して
再実行応答を受けたプロセッサ(7) は、ローカル・バス
(1) に発行されたバス命令の処理をした後、受けとった
命令が無効化を必要とする命令であった場合は無効化re
ad命令を、受けとった命令がその他のものであったら以
前のままの無効化命令を発行する。
ス(13)の使用要求を出す。 5. バス・ブリッジ(11)はグローバル・バス(13)の使用
権利を得られた場合は無効化処理実行中信号(15)をアサ
ートしたまま、グローバル・バス(13)に無効化命令を発
行する。バス・ブリッジ(11)がグローバル・バス(13)の
使用権利を得るまえにバス・ブリッジ(12)がグローバル
・バス(13)の使用権利を得て、同じアドレスのデータに
対するバス命令が発行した場合は、バス・ブリッジ(11)
はプロセッサ(7) が発行した無効化命令に対して再実行
応答を返し、ローカル・バス(1)上での無効化命令を一
旦完了させた後、ローカル・バス(1) にグローバル・バ
スから受けたバス命令を発行する。無効化命令に対して
再実行応答を受けたプロセッサ(7) は、ローカル・バス
(1) に発行されたバス命令の処理をした後、受けとった
命令が無効化を必要とする命令であった場合は無効化re
ad命令を、受けとった命令がその他のものであったら以
前のままの無効化命令を発行する。
【0017】6. グローバル・バス(13)に発行された無
効化命令を受けて、バス・ブリッジ(12)はローカル・バ
ス(2) に1000番地に対する無効化命令を発行する。 7. プロセッサ(9) およびバス・ブリッジ(10)は無効化
命令をみてそれぞれ無効化処理実行中信号(16)をアサー
トする。
効化命令を受けて、バス・ブリッジ(12)はローカル・バ
ス(2) に1000番地に対する無効化命令を発行する。 7. プロセッサ(9) およびバス・ブリッジ(10)は無効化
命令をみてそれぞれ無効化処理実行中信号(16)をアサー
トする。
【0018】8. プロセッサ(10)はキャッシュメモリに
1000番地のデータがないことを確認 した後無効化処理実行中信号(16)をアサートするのを中
止する。一方プロセッサ(9) は無効化処理実行中信号(1
6)をアサートしたまま1000番地のデータの無効化処理を
開始する。
1000番地のデータがないことを確認 した後無効化処理実行中信号(16)をアサートするのを中
止する。一方プロセッサ(9) は無効化処理実行中信号(1
6)をアサートしたまま1000番地のデータの無効化処理を
開始する。
【0019】9. プロセッサは無効化処理が完了した後
無効化処理実行中信号(16)をアサートするのを中止す
る。 10. プロセッサ(9), (10) が無効化処理実行中信号(1
6)をアサートするのを中止した時点でバス・ブリッジ(1
2)はグローバル・バスの無効化命令に対して完了応答を
返し、グローバル・バス上での無効化命令を完了する。
無効化処理実行中信号(16)をアサートするのを中止す
る。 10. プロセッサ(9), (10) が無効化処理実行中信号(1
6)をアサートするのを中止した時点でバス・ブリッジ(1
2)はグローバル・バスの無効化命令に対して完了応答を
返し、グローバル・バス上での無効化命令を完了する。
【0020】11. バス・ブリッジ(11)はこの応答を受
けて無効化処理実行中信号(15)をアサートするのを中止
する。 12. 無効化命令を発行したプロセッサ(7) はプロセッ
サ(9) とバス・ブリッジ(11)の両方が無効化処理実行中
信号をデ・アサートしたことを見て無効化命令が完了し
たことを知り、次の命令の処理を開始する。この様に、
N 階層のバスに跨る無効化処理を行なうには、2N-1段の
バス遅延を伴うのが従来の技術であった。
けて無効化処理実行中信号(15)をアサートするのを中止
する。 12. 無効化命令を発行したプロセッサ(7) はプロセッ
サ(9) とバス・ブリッジ(11)の両方が無効化処理実行中
信号をデ・アサートしたことを見て無効化命令が完了し
たことを知り、次の命令の処理を開始する。この様に、
N 階層のバスに跨る無効化処理を行なうには、2N-1段の
バス遅延を伴うのが従来の技術であった。
【0021】
【発明が解決しようとする課題】特願平05-199772 号で
開示されている共有バスがバスブリッジを介してシステ
の他の部分と一貫性を保持して結合されているマルチプ
ロセッサシステムにおいて、バスブリッジはシステムの
他の部分からのリクエストに対してスヌープを行うため
に、共有バスに接続されているキャッシュメモリのタグ
情報を有している。このようなシステムにおいてはバス
ブリッジにおいて共有バス上のリクエストに対するスヌ
ープを行うことでキャッシュメモリ側のタグデュプリケ
ーションは不要になる。
開示されている共有バスがバスブリッジを介してシステ
の他の部分と一貫性を保持して結合されているマルチプ
ロセッサシステムにおいて、バスブリッジはシステムの
他の部分からのリクエストに対してスヌープを行うため
に、共有バスに接続されているキャッシュメモリのタグ
情報を有している。このようなシステムにおいてはバス
ブリッジにおいて共有バス上のリクエストに対するスヌ
ープを行うことでキャッシュメモリ側のタグデュプリケ
ーションは不要になる。
【0022】本発明の第1の発明はこの点に鑑みてなさ
れたものであり、共有バスがバスブリッジによってシス
テムの他の部分と一貫性を保持して結合されているよう
なシステムにおいて、バスブリッジの有するキャッシュ
タグ情報を用いて共有バス上のリクエストのスヌープを
行わせることでキャッシュメモリ側でのタグデュプリケ
ーションをなくすことができ、キャッシュメモリのハー
ドウェア量を減らしかつ単純化を可能とし、より安価で
高速なシステムを提供することを目的とする。
れたものであり、共有バスがバスブリッジによってシス
テムの他の部分と一貫性を保持して結合されているよう
なシステムにおいて、バスブリッジの有するキャッシュ
タグ情報を用いて共有バス上のリクエストのスヌープを
行わせることでキャッシュメモリ側でのタグデュプリケ
ーションをなくすことができ、キャッシュメモリのハー
ドウェア量を減らしかつ単純化を可能とし、より安価で
高速なシステムを提供することを目的とする。
【0023】一方、従来の階層バス・システムでは、無
効化命令を発行した場合、無効化命令を発行したモジュ
ールが接続されたローカル・バス以外の全てのローカル
・バスで無効化命令が完了した後にグローバル・バスで
無効化命令が完了し、さらにこのグローバル・バスで無
効化命令が完了した後に無効化命令を発行したローカル
・バスの無効化命令が完了する。よって無効化命令が完
了するまではグローバル・バス、無効化命令を発行した
モジュールが接続されるローカル・バスは使用できな
い。さらに無効化命令を発行したモジュールは無効化命
令が完了するまで次の処理を開始することができない。
効化命令を発行した場合、無効化命令を発行したモジュ
ールが接続されたローカル・バス以外の全てのローカル
・バスで無効化命令が完了した後にグローバル・バスで
無効化命令が完了し、さらにこのグローバル・バスで無
効化命令が完了した後に無効化命令を発行したローカル
・バスの無効化命令が完了する。よって無効化命令が完
了するまではグローバル・バス、無効化命令を発行した
モジュールが接続されるローカル・バスは使用できな
い。さらに無効化命令を発行したモジュールは無効化命
令が完了するまで次の処理を開始することができない。
【0024】本発明の第2の発明はこの点に鑑みてなさ
れたものであり、階層バス・システムにおいて、無効化
命令が発行される場合のバスの使用効率を上げ、さらに
無効化命令を発行したモジュールが早期に次の処理に移
ることのできるシステムを提供することを目的とする。
れたものであり、階層バス・システムにおいて、無効化
命令が発行される場合のバスの使用効率を上げ、さらに
無効化命令を発行したモジュールが早期に次の処理に移
ることのできるシステムを提供することを目的とする。
【0025】
【課題を解決するための手段】本発明の第1の発明は、
第1のバスによって接続された複数のノードの間でデー
タの一貫性を保持するマルチプロセッサシステムであっ
て、該ノードは、キャッシュメモリを備えるプロセッサ
と、メモリ装置と、前記プロセッサと前記メモリ装置と
を接続する第2のバスと、前記プロセッサ及び前記メモ
リ装置と前記第1のバスとを結合するバスブリッジ装置
とを備え、該バスブリッジ装置は、前記第2のバスに結
合されているキャッシュメモリのタグ情報をシミュレー
トする手段と、この手段により得られたタグ情報に基づ
き前記メモリ装置に対してメモリ動作を抑止することを
示すメモリ抑止信号を出力する手段と、前記タグ情報に
基づき前記キャッシュメモリに対してスヌープ動作を行
う必要があることを示すスヌープ要求信号を出力する手
段とを具備するものであることを特徴とする。
第1のバスによって接続された複数のノードの間でデー
タの一貫性を保持するマルチプロセッサシステムであっ
て、該ノードは、キャッシュメモリを備えるプロセッサ
と、メモリ装置と、前記プロセッサと前記メモリ装置と
を接続する第2のバスと、前記プロセッサ及び前記メモ
リ装置と前記第1のバスとを結合するバスブリッジ装置
とを備え、該バスブリッジ装置は、前記第2のバスに結
合されているキャッシュメモリのタグ情報をシミュレー
トする手段と、この手段により得られたタグ情報に基づ
き前記メモリ装置に対してメモリ動作を抑止することを
示すメモリ抑止信号を出力する手段と、前記タグ情報に
基づき前記キャッシュメモリに対してスヌープ動作を行
う必要があることを示すスヌープ要求信号を出力する手
段とを具備するものであることを特徴とする。
【0026】本発明の第2の発明は、第1のバスによっ
て接続された複数のノードの間でデータの一貫性を保持
するマルチプロセッサシステムであって、該ノードは、
キャッシュメモリを備えるプロセッサと、前記プロセッ
サを接続するための第2のバスと、前記第2のバスと前
記第1のバスとを結合するためのバスブリッジ装置とを
備え、該バスブリッジ装置は、前記第1のバスを使用す
る権利を獲得したバス命令を、このバス命令と同時に到
着し且つ同じメモリアドレスに対するものである他のバ
ス命令に優先して前記第2のバスに発行する手段と、前
記第2のバスからの前記キャッシュメモリに対する無効
化命令を前記第1のバスに発行する場合に、前記第1の
バスを使用する権利を獲得した時点で、前記無効化要求
が完了したことを示す信号を前記第2のバスに出力する
手段とを具備するものであることを特徴とする。
て接続された複数のノードの間でデータの一貫性を保持
するマルチプロセッサシステムであって、該ノードは、
キャッシュメモリを備えるプロセッサと、前記プロセッ
サを接続するための第2のバスと、前記第2のバスと前
記第1のバスとを結合するためのバスブリッジ装置とを
備え、該バスブリッジ装置は、前記第1のバスを使用す
る権利を獲得したバス命令を、このバス命令と同時に到
着し且つ同じメモリアドレスに対するものである他のバ
ス命令に優先して前記第2のバスに発行する手段と、前
記第2のバスからの前記キャッシュメモリに対する無効
化命令を前記第1のバスに発行する場合に、前記第1の
バスを使用する権利を獲得した時点で、前記無効化要求
が完了したことを示す信号を前記第2のバスに出力する
手段とを具備するものであることを特徴とする。
【0027】
【作用】本発明の第1の発明によれば、あるキャッシュ
メモリから共有バス(第2のバス)に対してリクエスト
が発行された場合、バスブリッジは現在のタグ情報を検
索し、もし共有バス(第2のバス)に接続されているい
ずれかのキャッシュメモリが最新のデータを有する場合
にはメモリ抑止信号とそのキャッシュメモリに対するス
ヌープ要求信号をアサートすることで一貫性を保持する
ように作用する。
メモリから共有バス(第2のバス)に対してリクエスト
が発行された場合、バスブリッジは現在のタグ情報を検
索し、もし共有バス(第2のバス)に接続されているい
ずれかのキャッシュメモリが最新のデータを有する場合
にはメモリ抑止信号とそのキャッシュメモリに対するス
ヌープ要求信号をアサートすることで一貫性を保持する
ように作用する。
【0028】またシステムの他の部分からのリクエスト
(第1のバスを介して送信される)によりバスブリッジ
から共有バス(第2のバス)にリクエストを発行する場
合、バスブリッジはリクエストを発行する前に並行して
タグ情報を検索し、もし共有バス(第2のバス)に接続
されているいずれかのキャッシュメモリが最新のデータ
を有する場合にはメモリ抑止信号とそのキャッシュメモ
リに対するスヌープ要求信号をアサートすることで一貫
性を保持するように作用する。
(第1のバスを介して送信される)によりバスブリッジ
から共有バス(第2のバス)にリクエストを発行する場
合、バスブリッジはリクエストを発行する前に並行して
タグ情報を検索し、もし共有バス(第2のバス)に接続
されているいずれかのキャッシュメモリが最新のデータ
を有する場合にはメモリ抑止信号とそのキャッシュメモ
リに対するスヌープ要求信号をアサートすることで一貫
性を保持するように作用する。
【0029】いずれの場合もバスブリッジはリクエスト
の処理に伴いタグ情報をタグ情報シミュレーション手段
により必要に応じて更新するように作用する。本発明の
第2の発明によれば、階層バス・システムにおいてある
モジュールから無効化命令が発行された場合に、そのモ
ジュールと同じローカル・バス(第2のバス)に接続さ
れるバス・ブリッジがグローバル・バス(第1のバス)
の使用権を得た時点で応答を返すことにより、そのロー
カル・バス上での無効化命令は完了し、次のバス命令を
発行することが可能となり、さらに無効化命令を発行し
たモジュールは無効化命令を次の処理を開始することが
可能となる。
の処理に伴いタグ情報をタグ情報シミュレーション手段
により必要に応じて更新するように作用する。本発明の
第2の発明によれば、階層バス・システムにおいてある
モジュールから無効化命令が発行された場合に、そのモ
ジュールと同じローカル・バス(第2のバス)に接続さ
れるバス・ブリッジがグローバル・バス(第1のバス)
の使用権を得た時点で応答を返すことにより、そのロー
カル・バス上での無効化命令は完了し、次のバス命令を
発行することが可能となり、さらに無効化命令を発行し
たモジュールは無効化命令を次の処理を開始することが
可能となる。
【0030】またバス・ブリッジがグローバル・バスに
対して発行された無効化命令に対してグローバル・バス
に接続されている他のバス・ブリッジがその無効化命令
を受け付けた時点で、各バス・ブリッジが接続されるロ
ーカル・バス上での無効化命令が完了するのを待つこと
なく、グローバル・バス上の無効化命令を完了するため
グローバル・バスを次のバス命令のために使用すること
が可能となる。
対して発行された無効化命令に対してグローバル・バス
に接続されている他のバス・ブリッジがその無効化命令
を受け付けた時点で、各バス・ブリッジが接続されるロ
ーカル・バス上での無効化命令が完了するのを待つこと
なく、グローバル・バス上の無効化命令を完了するため
グローバル・バスを次のバス命令のために使用すること
が可能となる。
【0031】
(実施例1)以下本発明の第1の発明の実施例を図面に
より説明する。図1は本発明の一実施例によるマルチプ
ロセッサシステムの概略構成図を示している。100は
ノード1、200はノード2でありシステム共有バス3
00によって結合されている。ノード1においては CPU
101、CPU 102がそれぞれキャッシュメモリ10
3、キャッシュメモリ104に接続され、キャッシュメ
モリ103、キャッシュメモリ104、ローカルメモリ
105はローカル共有バス106によって接続されてい
る。バスブリッジ107はそれらをシステム共有バス3
00と接続する。
より説明する。図1は本発明の一実施例によるマルチプ
ロセッサシステムの概略構成図を示している。100は
ノード1、200はノード2でありシステム共有バス3
00によって結合されている。ノード1においては CPU
101、CPU 102がそれぞれキャッシュメモリ10
3、キャッシュメモリ104に接続され、キャッシュメ
モリ103、キャッシュメモリ104、ローカルメモリ
105はローカル共有バス106によって接続されてい
る。バスブリッジ107はそれらをシステム共有バス3
00と接続する。
【0032】キャッシュメモリ103はCPU タグ情報1
08、キャッシュメモリ104はCPU タグ情報109を
持ちCPU 101とローカル共有バス106からのリクエ
ストに対してキャッシュデータがヒットしたか否か、キ
ャッシュデータの状態等を保持する。
08、キャッシュメモリ104はCPU タグ情報109を
持ちCPU 101とローカル共有バス106からのリクエ
ストに対してキャッシュデータがヒットしたか否か、キ
ャッシュデータの状態等を保持する。
【0033】バスブリッジ107はタグ情報シミュレー
ション手段110とタグスヌープ手段111とによって
キャッシュメモリ103に対応するシミュレートされた
バスタグ情報112とタグメモリ104に対応するシミ
ュレートされたバスタグ情報113に接続されている。
バスブリッジ107はさらにローカル共有バス106と
システム共有バス300からのリクエストに対してスヌ
ープを行った結果キャッシュメモリ103とキャッシュ
メモリ104に対して各々介入を行う必要があるかどう
かを判定するスヌープ要求判定部114とローカルメモ
リ105に対してメモリ動作を抑止するかどうかを判定
するメモリ抑止判定部115を持ち、前記スヌープ要求
判定部はスヌープ要求信号116、スヌープ要求信号1
17によりキャッシュメモリ103とキャッシュメモリ
104に接続され、前記メモリ抑止判定部はメモリ抑止
信号118によりローカルメモリ105に接続されてい
る。
ション手段110とタグスヌープ手段111とによって
キャッシュメモリ103に対応するシミュレートされた
バスタグ情報112とタグメモリ104に対応するシミ
ュレートされたバスタグ情報113に接続されている。
バスブリッジ107はさらにローカル共有バス106と
システム共有バス300からのリクエストに対してスヌ
ープを行った結果キャッシュメモリ103とキャッシュ
メモリ104に対して各々介入を行う必要があるかどう
かを判定するスヌープ要求判定部114とローカルメモ
リ105に対してメモリ動作を抑止するかどうかを判定
するメモリ抑止判定部115を持ち、前記スヌープ要求
判定部はスヌープ要求信号116、スヌープ要求信号1
17によりキャッシュメモリ103とキャッシュメモリ
104に接続され、前記メモリ抑止判定部はメモリ抑止
信号118によりローカルメモリ105に接続されてい
る。
【0034】ノード2はノード1と同様に構成されてお
り、詳細の説明は割愛する。このように構成されたマル
チプロセッサシステムは次のように動作する。ここでキ
ャッシュメモリは M(排他ダーティ) O(共有ダーテ
ィ) E(排他クリーン) S(共有クリーン) I(無効)
の5状態をとるライトインバリデート型コピーバック
プロトコルを採用するものと仮定する。キャッシュメモ
リの動作とタグの状態遷移については本発明と直接関係
するものでなく説明は割愛する。
り、詳細の説明は割愛する。このように構成されたマル
チプロセッサシステムは次のように動作する。ここでキ
ャッシュメモリは M(排他ダーティ) O(共有ダーテ
ィ) E(排他クリーン) S(共有クリーン) I(無効)
の5状態をとるライトインバリデート型コピーバック
プロトコルを採用するものと仮定する。キャッシュメモ
リの動作とタグの状態遷移については本発明と直接関係
するものでなく説明は割愛する。
【0035】詳細は文献 A Class of Compatible Cache
Consistency Protocols and theirSupport by The IEE
E Futurebus、13th ISCA,June 1986.(Paul Sweazey, Al
anJay Smith)に述べられている。また本実施例において
はローカル共有バス、システム共有バスに前述の SPARC
MBus を採用した例を示す。
Consistency Protocols and theirSupport by The IEE
E Futurebus、13th ISCA,June 1986.(Paul Sweazey, Al
anJay Smith)に述べられている。また本実施例において
はローカル共有バス、システム共有バスに前述の SPARC
MBus を採用した例を示す。
【0036】CPU 101からキャッシュメモリ103に
対してローカルメモリ105のアドレスを有する CR
(共有読み出し) リクエストが発行された場合、キャ
ッシュメモリ103は前記プロトコルに基づいて動作す
る。本発明においてはキャッシュヒットした場合は重要
ではないためキャッシュミスを起こした場合について考
える。キャッシュミス時にはキャッシュメモリ103か
らローカル共有バス106に対してCRリクエストが発行
される。バスブリッジ107はタグスヌープ手段111
によりCPU 102に対応するバスタグ情報113を検索
しその結果に応じてCPU 102に接続されるスヌープ要
求信号117とローカルメモリ105に接続されるメモ
リ抑止信号118を出力する。
対してローカルメモリ105のアドレスを有する CR
(共有読み出し) リクエストが発行された場合、キャ
ッシュメモリ103は前記プロトコルに基づいて動作す
る。本発明においてはキャッシュヒットした場合は重要
ではないためキャッシュミスを起こした場合について考
える。キャッシュミス時にはキャッシュメモリ103か
らローカル共有バス106に対してCRリクエストが発行
される。バスブリッジ107はタグスヌープ手段111
によりCPU 102に対応するバスタグ情報113を検索
しその結果に応じてCPU 102に接続されるスヌープ要
求信号117とローカルメモリ105に接続されるメモ
リ抑止信号118を出力する。
【0037】バスタグ情報と出力信号の対応について図
2に示す。CPU 102からキャッシュメモリ104に対
してローカルメモリ105のアドレスを有するCRリクエ
ストが発行され、同様にキャッシュメモリ104におい
てキャッシュミスが発生した場合、同様にローカル共有
バス106に対してCRリクエストが発行される。
2に示す。CPU 102からキャッシュメモリ104に対
してローカルメモリ105のアドレスを有するCRリクエ
ストが発行され、同様にキャッシュメモリ104におい
てキャッシュミスが発生した場合、同様にローカル共有
バス106に対してCRリクエストが発行される。
【0038】バスブリッジ107はタグスヌープ手段1
11によりCPU 101に対応するバスタグ情報112を
検索しその結果に応じてCPU 101に接続されるスヌー
プ要求信号116とローカルメモリ105に接続される
メモリ抑止信号118を出力する。バスタグ情報と出力
信号の対応は同じく図2に示した通りである。
11によりCPU 101に対応するバスタグ情報112を
検索しその結果に応じてCPU 101に接続されるスヌー
プ要求信号116とローカルメモリ105に接続される
メモリ抑止信号118を出力する。バスタグ情報と出力
信号の対応は同じく図2に示した通りである。
【0039】これまではキャッシュメモリからローカル
共有バスへのCRリクエストが発行された場合について述
べたが、もう一つのケースであるシステム共有バスから
バスブリッジを通してローカル共有バスへCRリクエスト
が発行される場合について述べる。一つの例としてはCP
U 201からキャッシュメモリ203に対してローカル
メモリ105のアドレスを有するCRリクエストが発行さ
れ、キャッシュメモリ203においてキャッシュミスが
発生したとするとそのCRリクエストはまずローカル共有
バス206へ発行される。バスブリッジはタグスヌープ
手段111によってキャッシュメモリ204に対するバ
スタグ情報213を検索する。
共有バスへのCRリクエストが発行された場合について述
べたが、もう一つのケースであるシステム共有バスから
バスブリッジを通してローカル共有バスへCRリクエスト
が発行される場合について述べる。一つの例としてはCP
U 201からキャッシュメモリ203に対してローカル
メモリ105のアドレスを有するCRリクエストが発行さ
れ、キャッシュメモリ203においてキャッシュミスが
発生したとするとそのCRリクエストはまずローカル共有
バス206へ発行される。バスブリッジはタグスヌープ
手段111によってキャッシュメモリ204に対するバ
スタグ情報213を検索する。
【0040】ここで自ノード内に有効なデータが存在し
ない場合共有バス300へのCRリクエストが発行され
る。どのような場合に共有バスへのCRリクエストが発行
されるかについては本発明の本質とは関係ないため詳細
な説明は割愛する。詳しくは前述の特願平05-199772 号
に述べられている。もう一方のバスブリッジ106はタ
グスヌープ手段111によりCPU 101に対応するバス
タグ情報112とCPU 102に対応するバスタグ情報1
13を検索し、その結果に応じてスヌープ要求信号11
6、117とメモリ抑止信号118を出力する。タグ情
報と出力信号の関係を図3に示す。
ない場合共有バス300へのCRリクエストが発行され
る。どのような場合に共有バスへのCRリクエストが発行
されるかについては本発明の本質とは関係ないため詳細
な説明は割愛する。詳しくは前述の特願平05-199772 号
に述べられている。もう一方のバスブリッジ106はタ
グスヌープ手段111によりCPU 101に対応するバス
タグ情報112とCPU 102に対応するバスタグ情報1
13を検索し、その結果に応じてスヌープ要求信号11
6、117とメモリ抑止信号118を出力する。タグ情
報と出力信号の関係を図3に示す。
【0041】CRリクエストの代わりにCRI (排他読み出
し)リクエストが発行された場合も同様に動作する。こ
の場合はリクエストが完了した後のタグ遷移が異なる。
CI(無効化要求)リクエスト、CWI リクエスト、RDリク
エスト、WR(書き戻し)リクエストについては本発明と
は無関係なので説明は割愛する。
し)リクエストが発行された場合も同様に動作する。こ
の場合はリクエストが完了した後のタグ遷移が異なる。
CI(無効化要求)リクエスト、CWI リクエスト、RDリク
エスト、WR(書き戻し)リクエストについては本発明と
は無関係なので説明は割愛する。
【0042】いずれの場合もリクエストが実行されると
バスブリッジのタグ情報シミュレーション手段によりバ
スタグ情報が必要に応じて更新される。タグ情報シミュ
レーション手段はローカル共有バス上のリクエスト種別
とそれに対するバス上での応答を監視することでキャッ
シュメモリ内のCPU タグ情報をシミュレートすることが
出来る。本実施例ではローカル共有バスに SPARC MBus
を使用した場合のバスタグ情報の遷移について図4、図
5に示す。図4はリクエストを発行したプロセッサにつ
いてのバスタグ情報の遷移である。図5はリクエストを
発行していないプロセッサについてのバスタグ情報の遷
移である。
バスブリッジのタグ情報シミュレーション手段によりバ
スタグ情報が必要に応じて更新される。タグ情報シミュ
レーション手段はローカル共有バス上のリクエスト種別
とそれに対するバス上での応答を監視することでキャッ
シュメモリ内のCPU タグ情報をシミュレートすることが
出来る。本実施例ではローカル共有バスに SPARC MBus
を使用した場合のバスタグ情報の遷移について図4、図
5に示す。図4はリクエストを発行したプロセッサにつ
いてのバスタグ情報の遷移である。図5はリクエストを
発行していないプロセッサについてのバスタグ情報の遷
移である。
【0043】この例の場合 CPUからキャッシュメモリへ
のライトヒットが発生した場合にはローカル共有バスに
おいてそれを知ることができないため一時的にバスブリ
ッジのバスタグ情報とキャッシュメモリのCPU タグ情報
が一致しない場合がある。これはバスブリッジのバスタ
グ情報が Eを示しているときにはライトヒットによりキ
ャッシュメモリのCPU タグ情報が Mに変わった場合であ
り、このためバスブリッジのバスタグ情報が Eを示す場
合にはスヌープ要求信号とメモリ抑止信号をアサートし
てキャッシュメモリ中のCPU タグ情報を検索する必要が
ある。ただし別途ライトヒットを検出する信号を設けれ
ばバスブリッジとキャッシュメモリのタグ情報を一致さ
せることができるため、不必要なスヌープは発生しな
い。
のライトヒットが発生した場合にはローカル共有バスに
おいてそれを知ることができないため一時的にバスブリ
ッジのバスタグ情報とキャッシュメモリのCPU タグ情報
が一致しない場合がある。これはバスブリッジのバスタ
グ情報が Eを示しているときにはライトヒットによりキ
ャッシュメモリのCPU タグ情報が Mに変わった場合であ
り、このためバスブリッジのバスタグ情報が Eを示す場
合にはスヌープ要求信号とメモリ抑止信号をアサートし
てキャッシュメモリ中のCPU タグ情報を検索する必要が
ある。ただし別途ライトヒットを検出する信号を設けれ
ばバスブリッジとキャッシュメモリのタグ情報を一致さ
せることができるため、不必要なスヌープは発生しな
い。
【0044】なお本実施例では2つのノードがシステム
共有バスによって接続されるとしたが、ノードの数がそ
れ以上であっても本発明の有効性は変わらない。また本
実施例ではローカル共有バスに2つのCPU がそれぞれの
キャッシュを通して接続されるとしたが、CPU とキャッ
シュの対の数は任意であり、その数に応じてバスブリッ
ジにタグ情報を接続すればよく、本発明の有効性は変わ
らない。
共有バスによって接続されるとしたが、ノードの数がそ
れ以上であっても本発明の有効性は変わらない。また本
実施例ではローカル共有バスに2つのCPU がそれぞれの
キャッシュを通して接続されるとしたが、CPU とキャッ
シュの対の数は任意であり、その数に応じてバスブリッ
ジにタグ情報を接続すればよく、本発明の有効性は変わ
らない。
【0045】また本実施例はシステム共有バスとローカ
ル共有バスの2つの階層を持つシステムとしたが、階層
間においてバスブリッジを同様に構成すればより多段の
階層をとることも可能でありその変形はいろいろと考え
ることができるが、どのような変形においても本発明の
有効性は変わらない。
ル共有バスの2つの階層を持つシステムとしたが、階層
間においてバスブリッジを同様に構成すればより多段の
階層をとることも可能でありその変形はいろいろと考え
ることができるが、どのような変形においても本発明の
有効性は変わらない。
【0046】また本実施例ではローカル共有バスとシス
テム共有バスに SPARC MBus を採用した例を用いたが、
本発明はこれに制限されるものではなく様々なバスプロ
トコルに応用することができその有効性は変わらない。
テム共有バスに SPARC MBus を採用した例を用いたが、
本発明はこれに制限されるものではなく様々なバスプロ
トコルに応用することができその有効性は変わらない。
【0047】また本実施例ではスヌープ要求信号とメモ
リ抑止信号は独立した信号としたが、本発明はこれに制
限されるものではなく、これらを一つの信号として接続
することも可能であり、その有効性は変わらない。 (実施例2)以下本発明の第2の発明の実施例を図面に
より説明する。図7に本発明の一実施例によるマルチプ
ロセッサシステムの全体構成を示す。2組のローカル・
バス(1, 2) にそれぞれキャッシュメモリ(3, 4, 5, 6)
をもった2組のプロセッサ・モジュール(7,8,9,10)
とバス・ブリッジ(11, 12) が接続され、これらのロー
カル・バスはバス・ブリッジを介してグローバル・バス
と接続される。さらにグローバル・バスには2つのバス
・ブリッジの他にメモリ・モジュール(14)が接続され
る。ローカル・バスにはopen drain の無効化処理実行
中信号(15, 16)があり、それぞれプロセッサ・モジュー
ルとバス・ブリッジに接続されている。ローカル・バス
に無効化命令が発行された場合、プロセッサモジュール
とバス・ブリッジは次のバス命令を受け付けることがで
きる状態になるまでこの信号をアサートし続ける。ロー
カル・バスに接続されたモジュールはこの信号がアサー
トされている間は次のバス命令を発行することができな
い。
リ抑止信号は独立した信号としたが、本発明はこれに制
限されるものではなく、これらを一つの信号として接続
することも可能であり、その有効性は変わらない。 (実施例2)以下本発明の第2の発明の実施例を図面に
より説明する。図7に本発明の一実施例によるマルチプ
ロセッサシステムの全体構成を示す。2組のローカル・
バス(1, 2) にそれぞれキャッシュメモリ(3, 4, 5, 6)
をもった2組のプロセッサ・モジュール(7,8,9,10)
とバス・ブリッジ(11, 12) が接続され、これらのロー
カル・バスはバス・ブリッジを介してグローバル・バス
と接続される。さらにグローバル・バスには2つのバス
・ブリッジの他にメモリ・モジュール(14)が接続され
る。ローカル・バスにはopen drain の無効化処理実行
中信号(15, 16)があり、それぞれプロセッサ・モジュー
ルとバス・ブリッジに接続されている。ローカル・バス
に無効化命令が発行された場合、プロセッサモジュール
とバス・ブリッジは次のバス命令を受け付けることがで
きる状態になるまでこの信号をアサートし続ける。ロー
カル・バスに接続されたモジュールはこの信号がアサー
トされている間は次のバス命令を発行することができな
い。
【0048】図8は図7中のバス・ブリッジ(11,12) の
概略構成を示している。バス・ブリッジは、ローカル・
バスに接続されたバスモジュールが発行したバス命令を
受け付ける、ローカル・バス命令受付部と、ローカル・
バス命令受付部で受け付けたバス命令に従って、グロー
バル・バスの使用権を要求するグローバル・バス要求発
生部を備える。グローバル・バス(13)上には、グローバ
ル・バスに接続された複数のバスモジュールからのバス
使用要求に対して、同時にただ一つのバスモジュールが
グローバル・バスを使用するように調停する、グローバ
ル・バス調停部がある。
概略構成を示している。バス・ブリッジは、ローカル・
バスに接続されたバスモジュールが発行したバス命令を
受け付ける、ローカル・バス命令受付部と、ローカル・
バス命令受付部で受け付けたバス命令に従って、グロー
バル・バスの使用権を要求するグローバル・バス要求発
生部を備える。グローバル・バス(13)上には、グローバ
ル・バスに接続された複数のバスモジュールからのバス
使用要求に対して、同時にただ一つのバスモジュールが
グローバル・バスを使用するように調停する、グローバ
ル・バス調停部がある。
【0049】バス・ブリッジは、さらに、グローバル・
バス調停部によりグローバル・バスの使用権を得た後、
ローカル・バス命令受付部で受け付けたバス命令をグロ
ーバル・バスに発行するグローバル・バス命令発行部
と、グローバル・バスに接続されたバスモジュールが発
行したバス命令を受け付ける、グローバル・バス命令受
付部と、グローバル・バス命令受付部で受け付けたバス
命令に従って、ローカル・バスの使用権を要求するロー
カル・バス要求発生部を備える。ローカル・バス(1,2)
上には、複数のローカル・バスに接続されたバスモジュ
ールからのバス使用要求に対して、同時に他だ一つのバ
スモジュールがローカル・バスを使用するように調停す
る、ローカル・バス調停部がある。
バス調停部によりグローバル・バスの使用権を得た後、
ローカル・バス命令受付部で受け付けたバス命令をグロ
ーバル・バスに発行するグローバル・バス命令発行部
と、グローバル・バスに接続されたバスモジュールが発
行したバス命令を受け付ける、グローバル・バス命令受
付部と、グローバル・バス命令受付部で受け付けたバス
命令に従って、ローカル・バスの使用権を要求するロー
カル・バス要求発生部を備える。ローカル・バス(1,2)
上には、複数のローカル・バスに接続されたバスモジュ
ールからのバス使用要求に対して、同時に他だ一つのバ
スモジュールがローカル・バスを使用するように調停す
る、ローカル・バス調停部がある。
【0050】バス・ブリッジは、さらに、ローカル・バ
ス調停部によりローカル・バスの使用権を得た後、グロ
ーバル・バス命令受付部で受け付けたバス命令をローカ
ル・バスに発行するローカル・バス命令発行部と、ロー
カル・バス命令受付部とグローバル・バス命令受付部と
で同じキャッシュ・ラインに対するバス命令を受け付け
た時に、ローカル・バスのバス命令に対して、バスの使
用を中断し、再実行促す再実行通知部と、ローカル・バ
ス命令受付部で受け付けた無効化命令をグローバル・バ
スに発行するためにグローバル・バス調停部からグロー
バル・バスの使用権を獲得できた時点で、ローカル・バ
スに完了応答を返す、先行応答部とを備える。
ス調停部によりローカル・バスの使用権を得た後、グロ
ーバル・バス命令受付部で受け付けたバス命令をローカ
ル・バスに発行するローカル・バス命令発行部と、ロー
カル・バス命令受付部とグローバル・バス命令受付部と
で同じキャッシュ・ラインに対するバス命令を受け付け
た時に、ローカル・バスのバス命令に対して、バスの使
用を中断し、再実行促す再実行通知部と、ローカル・バ
ス命令受付部で受け付けた無効化命令をグローバル・バ
スに発行するためにグローバル・バス調停部からグロー
バル・バスの使用権を獲得できた時点で、ローカル・バ
スに完了応答を返す、先行応答部とを備える。
【0051】この構成により、2つのローカル・バスに
おいてバス命令が同時に発行された場合、各々のローカ
ル・バスに接続されたバス・ブリッジの要求発生部がグ
ローバル・バスの使用権を要求する。この時、グローバ
ル・バス上の優先順位決定部は、これらの要求のうちか
ら1つを選択し、グローバル・バスの使用権を与える。
おいてバス命令が同時に発行された場合、各々のローカ
ル・バスに接続されたバス・ブリッジの要求発生部がグ
ローバル・バスの使用権を要求する。この時、グローバ
ル・バス上の優先順位決定部は、これらの要求のうちか
ら1つを選択し、グローバル・バスの使用権を与える。
【0052】使用権を獲得したバス・ブリッジのローカ
ル・バスのバス命令に対し、その時点で、先行応答部が
完了応答を返す。その他のバス命令に対しては、再実行
通知部が再実行を指示する再実行応答を返す。
ル・バスのバス命令に対し、その時点で、先行応答部が
完了応答を返す。その他のバス命令に対しては、再実行
通知部が再実行を指示する再実行応答を返す。
【0053】その後グローバル・バスから来た命令が、
優先命令発行部によって、グローバル・バスを獲得でき
なかったローカル・バスに発行される。グローバル・バ
スが獲得できなかったローカル・バスは、このバス命令
が完了した後、バス命令再発行部によって取り消された
バス命令が再発行され、処理を継続する。この時、先に
グローバル・バスから発行された命令によってキャッシ
ュの状態が変化していることがあるため、以前と異なる
バス命令を発行する場合や再発行しない場合もある。
優先命令発行部によって、グローバル・バスを獲得でき
なかったローカル・バスに発行される。グローバル・バ
スが獲得できなかったローカル・バスは、このバス命令
が完了した後、バス命令再発行部によって取り消された
バス命令が再発行され、処理を継続する。この時、先に
グローバル・バスから発行された命令によってキャッシ
ュの状態が変化していることがあるため、以前と異なる
バス命令を発行する場合や再発行しない場合もある。
【0054】したがって、無効化命令がバス・ブリッジ
に発行され、グローバル・バスの使用権を獲得した時点
で、その無効化命令が他のローカル・バスに発行され、
完了することが保証されるので、ローカル・バス上での
無効化命令が完了するのを待つことなく、ローカル・バ
スに応答を返すことによりこのローカル・バス上での無
効化命令を完了する。さらにグローバル・バスに接続さ
れている全てのバス・ブリッジでその無効化命令が受け
付けた時点で、各バス・ブリッジが接続されるグローバ
ル・バス上の無効化を完了する。
に発行され、グローバル・バスの使用権を獲得した時点
で、その無効化命令が他のローカル・バスに発行され、
完了することが保証されるので、ローカル・バス上での
無効化命令が完了するのを待つことなく、ローカル・バ
スに応答を返すことによりこのローカル・バス上での無
効化命令を完了する。さらにグローバル・バスに接続さ
れている全てのバス・ブリッジでその無効化命令が受け
付けた時点で、各バス・ブリッジが接続されるグローバ
ル・バス上の無効化を完了する。
【0055】以下には、キャッシュメモリ(3) とキャッ
シュメモリ(6) にメモリの1000番地のデータが格納され
ている時にプロセッサ(7) がその番地のデータを書き換
える場合の動作について説明する。
シュメモリ(6) にメモリの1000番地のデータが格納され
ている時にプロセッサ(7) がその番地のデータを書き換
える場合の動作について説明する。
【0056】1. まずプロセッサ(7) はローカル・バス
(1) に1000番地に対する無効化命令を発行する。 2. プロセッサ(8) およびバス・ブリッジ(11)は無効化
命令をみてそれぞれ無効化処理実行中信号(15)をアサー
トする。
(1) に1000番地に対する無効化命令を発行する。 2. プロセッサ(8) およびバス・ブリッジ(11)は無効化
命令をみてそれぞれ無効化処理実行中信号(15)をアサー
トする。
【0057】3. プロセッサ(8) はキャッシュメモリに
1000番地のデータがないことを確認した後無効化処理実
行中信号(15)をアサートするのを中止する。ただしバス
・ブリッジ(11)はアサートし続ける。
1000番地のデータがないことを確認した後無効化処理実
行中信号(15)をアサートするのを中止する。ただしバス
・ブリッジ(11)はアサートし続ける。
【0058】4. バス・ブリッジ(11)はグローバル・バ
ス(13)の使用要求を出す。 5. バス・ブリッジ(11)はグローバル・バス(13)の使用
権利を得られた場合はグローバル・バス(13)に無効化命
令を発行し、さらに無効化処理実行中信号(15)をアサー
トするのを中止する。バス・ブリッジ(11)がグローバル
・バス(13)の使用権利を得る前にバス・ブリッジ(12)が
グローバル・バス(13)の使用権利を得て、同じアドレス
のデータに対するバス命令が発行された場合は、バス・
ブリッジ(11)はプロセッサ(7) が発行した無効化命令に
対して再実行応答を返し、ローカル・バス(1) 上での無
効化命令を一旦完了させた後、ローカル・バス(1) にグ
ローバル・バスから受けたバス命令を発行する。無効化
命令に対して再実行応答を受けたプロセッサ(7) は、ロ
ーカル・バス(1) に発行されたバス命令の処理をした
後、受けとった命令が無効化を必要とする命令であった
場合は無効化read 命令を、受けとった命令がその他の
ものであったら以前のままの無効化命令を発行する。
ス(13)の使用要求を出す。 5. バス・ブリッジ(11)はグローバル・バス(13)の使用
権利を得られた場合はグローバル・バス(13)に無効化命
令を発行し、さらに無効化処理実行中信号(15)をアサー
トするのを中止する。バス・ブリッジ(11)がグローバル
・バス(13)の使用権利を得る前にバス・ブリッジ(12)が
グローバル・バス(13)の使用権利を得て、同じアドレス
のデータに対するバス命令が発行された場合は、バス・
ブリッジ(11)はプロセッサ(7) が発行した無効化命令に
対して再実行応答を返し、ローカル・バス(1) 上での無
効化命令を一旦完了させた後、ローカル・バス(1) にグ
ローバル・バスから受けたバス命令を発行する。無効化
命令に対して再実行応答を受けたプロセッサ(7) は、ロ
ーカル・バス(1) に発行されたバス命令の処理をした
後、受けとった命令が無効化を必要とする命令であった
場合は無効化read 命令を、受けとった命令がその他の
ものであったら以前のままの無効化命令を発行する。
【0059】6. ここで無効化処理実行中信号(15)をア
サートするモジュールがなくなるのでプロセッサ(7) は
無効化処理が完了したものとして次の処理を始める。ロ
ーカル・バス(3) は、次のバス命令を発行できる状態に
なる。
サートするモジュールがなくなるのでプロセッサ(7) は
無効化処理が完了したものとして次の処理を始める。ロ
ーカル・バス(3) は、次のバス命令を発行できる状態に
なる。
【0060】7. グローバル・バスに発行された無効化
命令を受けて、バス・ブリッジ(12)はローカル・バスに
1000番地に対する無効化命令を発行する。 8. プロセッサ(9) およびバス・ブリッジ(10)は無効化
命令をみてそれぞれ無効化処理実行中信号(16)をアサー
トする。
命令を受けて、バス・ブリッジ(12)はローカル・バスに
1000番地に対する無効化命令を発行する。 8. プロセッサ(9) およびバス・ブリッジ(10)は無効化
命令をみてそれぞれ無効化処理実行中信号(16)をアサー
トする。
【0061】9. プロセッサ(10)はキャッシュメモリに
1000番地のデータがないことを確認した後無効化処理実
行中信号(16)をアサートするのを中止する。一方プロセ
ッサ(9) は無効化処理実行中信号(16)をアサートしたま
ま1000番地のデータの無効化処理を開始する。
1000番地のデータがないことを確認した後無効化処理実
行中信号(16)をアサートするのを中止する。一方プロセ
ッサ(9) は無効化処理実行中信号(16)をアサートしたま
ま1000番地のデータの無効化処理を開始する。
【0062】10. プロセッサは無効化処理が完了した
後無効化処理実行中信号(16)をアサートするのを中止す
る。ここでシステム全体での無効化処理が完了する。 また本実施例ではグローバル・バスに接続されているモ
ジュールは2つのバス・ブリッジと無効化処理を行なう
必要のないメモリだけであるため、通常のバス応答で無
効化処理の完了を通知することができるためグローバル
・バスには無効化処理実行中信号を設けていないが、バ
ス・ブリッジが3つ以上ある場合などはローカル・バス
と同様に無効化処理実行中信号を設けることも可能であ
る。
後無効化処理実行中信号(16)をアサートするのを中止す
る。ここでシステム全体での無効化処理が完了する。 また本実施例ではグローバル・バスに接続されているモ
ジュールは2つのバス・ブリッジと無効化処理を行なう
必要のないメモリだけであるため、通常のバス応答で無
効化処理の完了を通知することができるためグローバル
・バスには無効化処理実行中信号を設けていないが、バ
ス・ブリッジが3つ以上ある場合などはローカル・バス
と同様に無効化処理実行中信号を設けることも可能であ
る。
【0063】
【発明の効果】かかるように本発明の第1の発明によれ
ば、共有バスを用いた分散共有マルチプロセッサシステ
ムにおいて、共有バスに接続されるキャッシュメモリは
バススヌープのためのタグデュプリケーションを必要と
しないため、ハードウェア量を減らすことができる。ま
たハードウェアを簡単化できるため、より高速なシステ
ムを安価に提供できるという絶大なる効果を奏するもの
である。
ば、共有バスを用いた分散共有マルチプロセッサシステ
ムにおいて、共有バスに接続されるキャッシュメモリは
バススヌープのためのタグデュプリケーションを必要と
しないため、ハードウェア量を減らすことができる。ま
たハードウェアを簡単化できるため、より高速なシステ
ムを安価に提供できるという絶大なる効果を奏するもの
である。
【0064】また、本発明の第2の発明によれば、階層
バス・システムにおける無効化命令におけるバスの使用
効率を上げ、さらに無効化命令を発行したモジュールは
無効化命令が完了するまでの時間が短くなるため早期に
次の処理を開始することができる。
バス・システムにおける無効化命令におけるバスの使用
効率を上げ、さらに無効化命令を発行したモジュールは
無効化命令が完了するまでの時間が短くなるため早期に
次の処理を開始することができる。
【図1】 本発明の第1の実施例に係るマルチプロセッ
サシステムの概略構成図。
サシステムの概略構成図。
【図2】 プロセッサからローカル共有バスへリクエス
トが発行された場合のタグ情報と出力信号の対応表を示
す図。
トが発行された場合のタグ情報と出力信号の対応表を示
す図。
【図3】 システム共有バスからローカル共有バスへリ
クエストが発行された場合のタグ情報と出力信号の対応
表を示す図。
クエストが発行された場合のタグ情報と出力信号の対応
表を示す図。
【図4】 リクエストを発行したプロセッサについての
タグ情報の遷移表を示す図。
タグ情報の遷移表を示す図。
【図5】 リクエストを発行していないプロセッサにつ
いてのタグ情報の遷移表を示す図。
いてのタグ情報の遷移表を示す図。
【図6】 従来の技術を示す概略構成図。
【図7】 本発明の第2の実施例に係るマルチプロセッ
サシステムの概略構成図。
サシステムの概略構成図。
【図8】 本実施例におけるバス・ブリッジの構成を示
す図。
す図。
100、200…ノード 300…システム共有バス 101、102、201、202…プロセッサ 103、104、203、204…キャッシュメモリ 105、205…ローカルメモリ 106、206…ローカル共有バス 107、207…バスブリッジ 108、109、208、209…CPU タグ情報 108’、109’、208’、209’…デュプリケ
ートされたCPU タグ情報 110、210… タグ情報シミュレーション手段 111、211…タグスヌープ手段 112、113、212、213…バスタグ情報 114、214…スヌープ要求判定手段 115、215…メモリ抑止判定手段 116、117、216、217…スヌープ要求信号 118、219…メモリ抑止信号 119、219…メモリインヒビット信号(MIH) 1、2…ローカル・バス 3、4、5、6…キャッシュメモリ 7、8、9、10…プロセッサ 11、12…バス・ブリッジ 13…グローバル・バス 14…メモリ・モジュール 15、16…無効化処理実行中信号 17、18…pull-up 抵抗
ートされたCPU タグ情報 110、210… タグ情報シミュレーション手段 111、211…タグスヌープ手段 112、113、212、213…バスタグ情報 114、214…スヌープ要求判定手段 115、215…メモリ抑止判定手段 116、117、216、217…スヌープ要求信号 118、219…メモリ抑止信号 119、219…メモリインヒビット信号(MIH) 1、2…ローカル・バス 3、4、5、6…キャッシュメモリ 7、8、9、10…プロセッサ 11、12…バス・ブリッジ 13…グローバル・バス 14…メモリ・モジュール 15、16…無効化処理実行中信号 17、18…pull-up 抵抗
───────────────────────────────────────────────────── フロントページの続き (72)発明者 若森 修 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内
Claims (2)
- 【請求項1】 第1のバスによって接続された複数のノ
ードの間でデータの一貫性を保持するマルチプロセッサ
システムであって、 該ノードは、 キャッシュメモリを備えるプロセッサと、 メモリ装置と、 前記プロセッサと前記メモリ装置とを接続する第2のバ
スと、 前記プロセッサ及び前記メモリ装置と前記第1のバスと
を結合するバスブリッジ装置とを備え、 該バスブリッジ装置は、 前記第2のバスに結合されているキャッシュメモリのタ
グ情報をシミュレートする手段と、 この手段により得られたタグ情報に基づき前記メモリ装
置に対してメモリ動作を抑止することを示すメモリ抑止
信号を出力する手段と、 前記タグ情報に基づき前記キャッシュメモリに対してス
ヌープ動作を行う必要があることを示すスヌープ要求信
号を出力する手段とを具備するものであることを特徴と
するマルチプロセッサシステム。 - 【請求項2】 第1のバスによって接続された複数のノ
ードの間でデータの一貫性を保持するマルチプロセッサ
システムであって、 該ノードは、 キャッシュメモリを備えるプロセッサと、 前記プロセッサを接続するための第2のバスと、 前記第2のバスと前記第1のバスとを結合するためのバ
スブリッジ装置とを備え、 該バスブリッジ装置は、 前記第1のバスを使用する権利を獲得したバス命令を、
このバス命令と同時に到着し且つ同じメモリアドレスに
対するものである他のバス命令に優先して前記第2のバ
スに発行する手段と、 前記第2のバスからの前記キャッシュメモリに対する無
効化命令を前記第1のバスに発行する場合に、前記第1
のバスを使用する権利を獲得した時点で、前記無効化要
求が完了したことを示す信号を前記第2のバスに出力す
る手段とを具備するものであることを特徴とするマルチ
プロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6148399A JPH0816475A (ja) | 1994-06-30 | 1994-06-30 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6148399A JPH0816475A (ja) | 1994-06-30 | 1994-06-30 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0816475A true JPH0816475A (ja) | 1996-01-19 |
Family
ID=15451919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6148399A Pending JPH0816475A (ja) | 1994-06-30 | 1994-06-30 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0816475A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099583A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | システムコントローラおよびキャッシュ制御方法 |
JP2008204101A (ja) * | 2007-02-19 | 2008-09-04 | Nec Computertechno Ltd | バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置 |
US8991182B2 (en) | 2009-02-17 | 2015-03-31 | Mcalister Technologies, Llc | Increasing the efficiency of supplemented ocean thermal energy conversion (SOTEC) systems |
JP2015512102A (ja) * | 2012-03-02 | 2015-04-23 | エイアールエム リミテッド | 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法 |
-
1994
- 1994-06-30 JP JP6148399A patent/JPH0816475A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099583A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | システムコントローラおよびキャッシュ制御方法 |
US8327081B2 (en) | 2006-02-28 | 2012-12-04 | Fujitsu Limited | Information processing device and method for controlling the same |
JP2008204101A (ja) * | 2007-02-19 | 2008-09-04 | Nec Computertechno Ltd | バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置 |
US8991182B2 (en) | 2009-02-17 | 2015-03-31 | Mcalister Technologies, Llc | Increasing the efficiency of supplemented ocean thermal energy conversion (SOTEC) systems |
JP2015512102A (ja) * | 2012-03-02 | 2015-04-23 | エイアールエム リミテッド | 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法 |
US9372798B2 (en) | 2012-03-02 | 2016-06-21 | Arm Limited | Data processing apparatus having first and second protocol domains, and method for the data processing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5682516A (en) | Computer system that maintains system wide cache coherency during deferred communication transactions | |
US5909699A (en) | Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency | |
US8037253B2 (en) | Method and apparatus for global ordering to insure latency independent coherence | |
US6779086B2 (en) | Symmetric multiprocessor systems with an independent super-coherent cache directory | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
CA2280172C (en) | Non-uniform memory access (numa) data processing system that holds and reissues requests at a target processing node in response to a retry | |
US5659709A (en) | Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus | |
US20030097529A1 (en) | High performance symmetric multiprocessing systems via super-coherent data mechanisms | |
KR100228940B1 (ko) | 메모리 일관성 유지 방법 | |
US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
JP2001503889A (ja) | 複数のシステムバスを有するコンピュータシステムにおいてメモリコヒーレンスを維持するためのシステムおよび方法 | |
US7069394B2 (en) | Dynamic data routing mechanism for a high speed memory cloner | |
US6996693B2 (en) | High speed memory cloning facility via a source/destination switching mechanism | |
US6892283B2 (en) | High speed memory cloner with extended cache coherency protocols and responses | |
EP3644190B1 (en) | I/o coherent request node for data processing network with improved handling of write operations | |
USRE40921E1 (en) | Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system | |
US6226718B1 (en) | Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system | |
CA2279138C (en) | Non-uniform memory access (numa) data processing system that decreases latency by expediting rerun requests | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
WO1997004392A1 (en) | Shared cache memory device | |
US7502917B2 (en) | High speed memory cloning facility via a lockless multiprocessor mechanism | |
US6986013B2 (en) | Imprecise cache line protection mechanism during a memory clone operation | |
US9672153B2 (en) | Memory interface control | |
JPH0816475A (ja) | マルチプロセッサシステム | |
US6986011B2 (en) | High speed memory cloner within a data processing system |