JP2593222B2 - マルチプロセッサシステムのインタロック方式 - Google Patents
マルチプロセッサシステムのインタロック方式Info
- Publication number
- JP2593222B2 JP2593222B2 JP1214167A JP21416789A JP2593222B2 JP 2593222 B2 JP2593222 B2 JP 2593222B2 JP 1214167 A JP1214167 A JP 1214167A JP 21416789 A JP21416789 A JP 21416789A JP 2593222 B2 JP2593222 B2 JP 2593222B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- request
- interlock
- processor
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] この発明は,マルチプロセッサシステムにおけるプロ
セッサ間のインタロック方式に関するものである。
セッサ間のインタロック方式に関するものである。
[従来の技術] 第4図は,一般的なマルチプロセッサシステムの構成
を示すブロック図である。図において,(1a)は第1の
プロセッサ,(1b)は第2のプロセッサ,(2)は第1
および第2のプロセッサ(1a),(1b)に共有される主
メモリ,(3a)は第1のプロセッサ(1a)に内蔵される
第1のストアインキャシュメモリ,(3b)は第2のプロ
セッサ(1b)に内蔵される第2のストアインキャシュメ
モリ,(4)は第1および第2のプロセッサ(1a),
(1b)と主メモリ(2)間を接続するメモリバスであ
る。
を示すブロック図である。図において,(1a)は第1の
プロセッサ,(1b)は第2のプロセッサ,(2)は第1
および第2のプロセッサ(1a),(1b)に共有される主
メモリ,(3a)は第1のプロセッサ(1a)に内蔵される
第1のストアインキャシュメモリ,(3b)は第2のプロ
セッサ(1b)に内蔵される第2のストアインキャシュメ
モリ,(4)は第1および第2のプロセッサ(1a),
(1b)と主メモリ(2)間を接続するメモリバスであ
る。
第5図は従来のマルチプロセッサシステムのインタロ
ック方式の構成ブロック図である。図において,(1)
〜(4)は第4図のものと同様である。(5)はリクエ
ストIDレジスタで,主メモリ(2)にあって第1のプロ
セッサ(1a)または第2のプロセッサ(1b)から出力さ
れたリクエスト種類をメモリバス(4)を介して受け取
る。(6)はメモリアドレスレジスタで,主メモリ
(2)にあって,第1のプロセッサ(1a)または第2プ
ロセッサ(1b)から出力されたリクエストアドレスをメ
モリバス(4)を介して受け取る。(7)はデコーダ
で、リクエストIDレジスタ(5)の出力を解読し,リク
エストの種類を判定する。(8a),(8b)は,デコーダ
(7)の出力で,第1および第2のプロセッサ(1a),
(1b)の各々からのインタロックリクエストを意味する
第1および第2のリクエストロック信号,(9a),(9
b)は第1および第2のメモリインタロック制御機構
で,主メモリ(2)にあって,第1および第2のプロセ
ッサ(1a),(1b)の各々から発行されたインタロック
リクエストを管理すると共にインタロック中には,第1
および第2のプロセッサ(1a),(1b)の各々から出力
されたリクエストを監視することで,インタロックアド
レスに該当するリクエストをブロックする。(10)は論
理オアゲート,(11)はインタロックレジスタで,第1
および第2のメモリインタロック制御機構(9a),(9
b)にあって,現在対応する第1および第2のプロセッ
サ(1a),(1b)からインタロックがかかっていること
を示している。(12)はインタロックアドレスレジスタ
で,第1および第2のメモリインタロック制御機構(9
a),(9b)にあって,インタロックされたメモリアド
レスを保持する。(13)は比較器で,第1および第2の
メモリインタロック制御機構(9a),(9b)にあって,
インタロックアドレスレジスタ(12)とメモリアドレス
レジスタ(6)とからインタロックされたアドレスに対
してメモリリクエストが来たかどうかを検出する。(1
4)は第1および第2のメモリインタロック制御機構(9
a),(9b)にある論理アンドゲート,(15)は第1お
よび第2のメモリインタロック制御機構(9a),(9b)
にあるノットゲート,(16)は第1および第2のメモリ
インタロック制御機構(9a),(9b)にある論理アンド
ゲート,(17)は論理オアゲート,(18)はインタロッ
ク信号で,論理オアゲート(15)から出力され,インタ
ロックされたメモリアドレスに第1および第2のプロセ
ッサ(1a),(1b)からリクエストが来たことを示す。
(19)はメモリセレクト信号で,デコーダ(7)から出
力され,メモリ素子に対してアクセスするためのもので
ある。(20)はメモリセレクトレジスタで,メモリセレ
クト信号(19)をインタロック信号(18)でゲートす
る。(21)はメモリアクセスレジスタで,メモリアドレ
スレジスタ(6)の出力をインタロック信号(18)でゲ
ートする。(21a),(21b)は第1および第2のリリー
スロック信号で,デコーダ(7)の出力で,第1および
第2のプロセッサ(1a),(1b)のそれぞれに対応した
インタロック解除をするためのものである。
ック方式の構成ブロック図である。図において,(1)
〜(4)は第4図のものと同様である。(5)はリクエ
ストIDレジスタで,主メモリ(2)にあって第1のプロ
セッサ(1a)または第2のプロセッサ(1b)から出力さ
れたリクエスト種類をメモリバス(4)を介して受け取
る。(6)はメモリアドレスレジスタで,主メモリ
(2)にあって,第1のプロセッサ(1a)または第2プ
ロセッサ(1b)から出力されたリクエストアドレスをメ
モリバス(4)を介して受け取る。(7)はデコーダ
で、リクエストIDレジスタ(5)の出力を解読し,リク
エストの種類を判定する。(8a),(8b)は,デコーダ
(7)の出力で,第1および第2のプロセッサ(1a),
(1b)の各々からのインタロックリクエストを意味する
第1および第2のリクエストロック信号,(9a),(9
b)は第1および第2のメモリインタロック制御機構
で,主メモリ(2)にあって,第1および第2のプロセ
ッサ(1a),(1b)の各々から発行されたインタロック
リクエストを管理すると共にインタロック中には,第1
および第2のプロセッサ(1a),(1b)の各々から出力
されたリクエストを監視することで,インタロックアド
レスに該当するリクエストをブロックする。(10)は論
理オアゲート,(11)はインタロックレジスタで,第1
および第2のメモリインタロック制御機構(9a),(9
b)にあって,現在対応する第1および第2のプロセッ
サ(1a),(1b)からインタロックがかかっていること
を示している。(12)はインタロックアドレスレジスタ
で,第1および第2のメモリインタロック制御機構(9
a),(9b)にあって,インタロックされたメモリアド
レスを保持する。(13)は比較器で,第1および第2の
メモリインタロック制御機構(9a),(9b)にあって,
インタロックアドレスレジスタ(12)とメモリアドレス
レジスタ(6)とからインタロックされたアドレスに対
してメモリリクエストが来たかどうかを検出する。(1
4)は第1および第2のメモリインタロック制御機構(9
a),(9b)にある論理アンドゲート,(15)は第1お
よび第2のメモリインタロック制御機構(9a),(9b)
にあるノットゲート,(16)は第1および第2のメモリ
インタロック制御機構(9a),(9b)にある論理アンド
ゲート,(17)は論理オアゲート,(18)はインタロッ
ク信号で,論理オアゲート(15)から出力され,インタ
ロックされたメモリアドレスに第1および第2のプロセ
ッサ(1a),(1b)からリクエストが来たことを示す。
(19)はメモリセレクト信号で,デコーダ(7)から出
力され,メモリ素子に対してアクセスするためのもので
ある。(20)はメモリセレクトレジスタで,メモリセレ
クト信号(19)をインタロック信号(18)でゲートす
る。(21)はメモリアクセスレジスタで,メモリアドレ
スレジスタ(6)の出力をインタロック信号(18)でゲ
ートする。(21a),(21b)は第1および第2のリリー
スロック信号で,デコーダ(7)の出力で,第1および
第2のプロセッサ(1a),(1b)のそれぞれに対応した
インタロック解除をするためのものである。
従来のマルチプロセッサシステムのインタロック方式
は上記のように構成され,第1のプロセッサ(1a)はイ
ンタロックをとるためにメモリバス(4)に,インタロ
ックリクエストとインタロックをメモリアドレスを送出
すると,主メモリ(2)は,メモリバス(4)からのイ
ンタロックリクエストとインタロックを行うメモリアド
レスをそれぞれリクエストIDレジスタ(5)およびメモ
リアドレスレジスタ(6)で受け取る。続いて,リクエ
ストIDレジスタ(5)の出力はデコーダ(7)に入力さ
れ,デコーダ(7)はリクエストの種類を解読し,第1
のプロセッサ(1a)に対応するリクエストロック信号
(8a)を有意とする。第1のリクエストロック信号(8
a)は論理オアゲート(10)を通りインタロックレジス
タ(11)にセットされる。同時に第1のリクエストロッ
ク信号(8a)は,インタロックアドレスレジスタ(12)
にメモリアドレスレジスタ(6)からインタロックリク
エストに対応したメモリアドレスをセットする。
は上記のように構成され,第1のプロセッサ(1a)はイ
ンタロックをとるためにメモリバス(4)に,インタロ
ックリクエストとインタロックをメモリアドレスを送出
すると,主メモリ(2)は,メモリバス(4)からのイ
ンタロックリクエストとインタロックを行うメモリアド
レスをそれぞれリクエストIDレジスタ(5)およびメモ
リアドレスレジスタ(6)で受け取る。続いて,リクエ
ストIDレジスタ(5)の出力はデコーダ(7)に入力さ
れ,デコーダ(7)はリクエストの種類を解読し,第1
のプロセッサ(1a)に対応するリクエストロック信号
(8a)を有意とする。第1のリクエストロック信号(8
a)は論理オアゲート(10)を通りインタロックレジス
タ(11)にセットされる。同時に第1のリクエストロッ
ク信号(8a)は,インタロックアドレスレジスタ(12)
にメモリアドレスレジスタ(6)からインタロックリク
エストに対応したメモリアドレスをセットする。
以上がインタロックのセット処理である。
もし,メモリインタロック制御機構(9a)にインタロ
ックがセットされている時に第2のプロセッサ(1b)か
らメモリアクセスリクエストが来た場合の動作は以下の
通りである。
ックがセットされている時に第2のプロセッサ(1b)か
らメモリアクセスリクエストが来た場合の動作は以下の
通りである。
インタロックレジスタ(11)にセットされた値は,リ
リースロック信号(22a)が有意にならない限りノット
ゲート(15)および論理アンドゲート(16)並びに論理
オアゲート(10)によって保持されている。また,イン
タロックアドレスレジスタ(12)も第1のリクエストロ
ック信号(8a)が来ない間は最新のリクエストロック信
号が有意になってセットされたアドレス値を保持してい
る。いま,リクエストIDレジスタ(5)に第2のプロセ
ッサ(1b)からメモリアクセスリクエストが,さらにメ
モリアドレスレジスタ(6)にリクエストアドレスがセ
ットされると,リクエストIDレジスタ(5)の出力を受
け取ったデコーダ(7)は,メモリセレクト信号(19)
を送出する。一方,メモリアドレスレジスタ(6)の内
容は,インタロックアドレスレジスタ(12)の内容と比
較器(13)で比較され,一致の有無が調べられる。も
し,比較器(13)が一致を出力すると,論理アンドゲー
ト(14)は,インタロックレジスタ(11)がセットさ
れ,一方,メモリセレクト信号(19)も有意であるため
ゲートが開き,論理オアゲート(17)を介してインタロ
ック信号(18)として出力する。インタロック信号(1
8)が有意であることは,メモリバス(4)を介してリ
クエスト元の第2のプロセッサ(1b)に伝えられ,第2
のプロセッサ(1b)は,自分が出したリクエストが現在
インタロックされていることを知る。一方,インタロッ
ク信号(18)は,メモリセレクトレジスタ(20)および
メモリアクセスレジスタ(21)をゲートオフし,メモリ
素子へのアクセスを取り消す。
リースロック信号(22a)が有意にならない限りノット
ゲート(15)および論理アンドゲート(16)並びに論理
オアゲート(10)によって保持されている。また,イン
タロックアドレスレジスタ(12)も第1のリクエストロ
ック信号(8a)が来ない間は最新のリクエストロック信
号が有意になってセットされたアドレス値を保持してい
る。いま,リクエストIDレジスタ(5)に第2のプロセ
ッサ(1b)からメモリアクセスリクエストが,さらにメ
モリアドレスレジスタ(6)にリクエストアドレスがセ
ットされると,リクエストIDレジスタ(5)の出力を受
け取ったデコーダ(7)は,メモリセレクト信号(19)
を送出する。一方,メモリアドレスレジスタ(6)の内
容は,インタロックアドレスレジスタ(12)の内容と比
較器(13)で比較され,一致の有無が調べられる。も
し,比較器(13)が一致を出力すると,論理アンドゲー
ト(14)は,インタロックレジスタ(11)がセットさ
れ,一方,メモリセレクト信号(19)も有意であるため
ゲートが開き,論理オアゲート(17)を介してインタロ
ック信号(18)として出力する。インタロック信号(1
8)が有意であることは,メモリバス(4)を介してリ
クエスト元の第2のプロセッサ(1b)に伝えられ,第2
のプロセッサ(1b)は,自分が出したリクエストが現在
インタロックされていることを知る。一方,インタロッ
ク信号(18)は,メモリセレクトレジスタ(20)および
メモリアクセスレジスタ(21)をゲートオフし,メモリ
素子へのアクセスを取り消す。
最後に,インタロック状態の解除について説明する。
第1のプロセッサ(1a)は,第1のストアインキャッ
シュメモリ(3a)の更新が完了すると,インタロック解
除のリクエストをメモリバス(4)を介して主メモリ
(2)に送出する。主メモリ(2)は,インタロック解
除のリクエストをリクエストIDレジスタ(5)に受け取
る。次に,リクエストIDレジスタ(5)の出力は,デコ
ーダ(7)に入力され,解読されて第1のプロセッサ
(1a)に対応する第1のリリースロック信号(22a)を
有意にする。この第1のリリースロック信号(22a)は
ノットゲート(15)で反転され論理アンドゲート(16)
を閉じると,論理オアゲート(10)を介してインタロッ
クレジスタ(11)はリセットされ,インタロックが解除
される。
シュメモリ(3a)の更新が完了すると,インタロック解
除のリクエストをメモリバス(4)を介して主メモリ
(2)に送出する。主メモリ(2)は,インタロック解
除のリクエストをリクエストIDレジスタ(5)に受け取
る。次に,リクエストIDレジスタ(5)の出力は,デコ
ーダ(7)に入力され,解読されて第1のプロセッサ
(1a)に対応する第1のリリースロック信号(22a)を
有意にする。この第1のリリースロック信号(22a)は
ノットゲート(15)で反転され論理アンドゲート(16)
を閉じると,論理オアゲート(10)を介してインタロッ
クレジスタ(11)はリセットされ,インタロックが解除
される。
以上が第5図に基づいた従来のインタロック方式の動
作説明であるが,他にも簡単なインタロック方式として
インタロック中は全メモリアクセスをブロックする方法
やメモリのバンク単位にインタロック制御を行う方法が
ある。
作説明であるが,他にも簡単なインタロック方式として
インタロック中は全メモリアクセスをブロックする方法
やメモリのバンク単位にインタロック制御を行う方法が
ある。
[発明が解決しようとする課題] 上記のような従来のマルチプロセッサシステムのイン
タロック方式では,プロセッサがインタロックをとる時
およびインタロックを解除する時にメモリバスを経由し
て主メモリまでリクエストを出さなければならず,プロ
セッサから見たターンアランド時間が長く性能向上を妨
げていた。また,メモリバスがインタロックを獲得した
り,解除するために用いられているため,トラフィック
量が増大して,マルチプロセッサシステムの場合,メモ
リバスのスループットを低下させる要因になっていた。
さらに,インタロック対象となるアドレス範囲が広がる
ことで,インタロックに無関係なリクエストまでも余計
にインタロックによる妨害を受ける可能性が高いなどの
問題点があった。
タロック方式では,プロセッサがインタロックをとる時
およびインタロックを解除する時にメモリバスを経由し
て主メモリまでリクエストを出さなければならず,プロ
セッサから見たターンアランド時間が長く性能向上を妨
げていた。また,メモリバスがインタロックを獲得した
り,解除するために用いられているため,トラフィック
量が増大して,マルチプロセッサシステムの場合,メモ
リバスのスループットを低下させる要因になっていた。
さらに,インタロック対象となるアドレス範囲が広がる
ことで,インタロックに無関係なリクエストまでも余計
にインタロックによる妨害を受ける可能性が高いなどの
問題点があった。
この発明は,かかる問題点を解決するためになされた
もので,マルチプロセッサの環境下においてもインタロ
ックの獲得,解除を高速に行えると共にメモリバスのト
ラフィック量を低減でき,さらにインタロックをとるア
ドレス範囲を減少させ,余計なリクエスト妨害を減らす
ことができるアルチプロセッサシステムのインタロック
方式を得ることを目的とする。
もので,マルチプロセッサの環境下においてもインタロ
ックの獲得,解除を高速に行えると共にメモリバスのト
ラフィック量を低減でき,さらにインタロックをとるア
ドレス範囲を減少させ,余計なリクエスト妨害を減らす
ことができるアルチプロセッサシステムのインタロック
方式を得ることを目的とする。
[課題を解決するための手段] この発明に係るマルチプロセッサシステムのインタロ
ック方式は,主メモリと,この主メモリを共有し,かつ
ストアインキャシュメモリを内蔵する複数のプロセッサ
と,自プロセッサから前記主メモリあるいは他プロセッ
サへのアクセスを行うための1本の共通なメモリバスと
で構成されるマルチプロセッサシステムにおいて,前記
複数のプロセッサの各々の内部の前記ストアインキャシ
ュメモリと前記主メモリ間のメモリデータコヒーレンシ
を保証するために,前記メモリバス上のトラフィックを
監視する自プロセッサ内の前記ストアインキャッシュメ
モリの使用状況を保持するタグメモリと,自プロセッサ
が前記主メモリ中の特定アドレスブロックを排他使用中
であることを示すインタロック情報を前記タグメモリの
エントリに対応して持つインタロックメモリと,自プロ
セッサ内の前記タグメモリの内容によってインタロック
の獲得を自プロセッサ内で完了するかまたは他プロセッ
サに前記メモリバスを介して通知するかを決定すると共
にインタロックの解除操作を自プロセッサ内で完了させ
るキャッシュリクエストアービタとを備えたものであ
る。
ック方式は,主メモリと,この主メモリを共有し,かつ
ストアインキャシュメモリを内蔵する複数のプロセッサ
と,自プロセッサから前記主メモリあるいは他プロセッ
サへのアクセスを行うための1本の共通なメモリバスと
で構成されるマルチプロセッサシステムにおいて,前記
複数のプロセッサの各々の内部の前記ストアインキャシ
ュメモリと前記主メモリ間のメモリデータコヒーレンシ
を保証するために,前記メモリバス上のトラフィックを
監視する自プロセッサ内の前記ストアインキャッシュメ
モリの使用状況を保持するタグメモリと,自プロセッサ
が前記主メモリ中の特定アドレスブロックを排他使用中
であることを示すインタロック情報を前記タグメモリの
エントリに対応して持つインタロックメモリと,自プロ
セッサ内の前記タグメモリの内容によってインタロック
の獲得を自プロセッサ内で完了するかまたは他プロセッ
サに前記メモリバスを介して通知するかを決定すると共
にインタロックの解除操作を自プロセッサ内で完了させ
るキャッシュリクエストアービタとを備えたものであ
る。
[作用] この発明においては,タグメモリのエントリに対応し
たインタロックメモリは,インタロック獲得の幾つかの
場合とインタロック解除の全ての場合に自プロセッサ内
のみで操作を完了させることができ,インタロック処理
の高速化およびメモリバスのトラフィック量の低減化を
行う。
たインタロックメモリは,インタロック獲得の幾つかの
場合とインタロック解除の全ての場合に自プロセッサ内
のみで操作を完了させることができ,インタロック処理
の高速化およびメモリバスのトラフィック量の低減化を
行う。
[実施例] 第1図はこの発明の一実施例によるマルチプロセッサ
のインタロック方式の構成を示すブロック図である。図
において,(30)はキャッシュリクエストアービタで,
ストアインキャッシュメモリへのアクセスリクエストを
制御する。(31)はタグメモリで,ストアインキャッシ
ュメモリの使用状況,すなわちキャッシュメモリアドレ
スの一部情報A,キャッシュメモリブロックが使用中を示
すV,さらに使用中であるキャッシュメモリブロックが自
プロセッサによって変更されたことを示すDをキャッシ
ュメモリブロック単位に保持し,キャッシュリクエスト
アービタ(30)からキャッシュアクセスリクエストが出
力されたならば,リクエストアドレスに該当するキャッ
シュメモリブロックの使用状況をキャッシュリクエスト
アービタ(30)に返送する。(31S)はシャドウタグメ
モリで,タグメモリ(31)と同一の構成を有し,タグメ
モリ(31)中に格納されたキャッシュメモリブロック単
位での使用状況のコピーを保持し,メモリバス(4)上
のリクエストに対して自プロセッサのストアインキャッ
シュメモリ中にあるメモリの無効化や変更されたキャッ
シュメモリブロックの主メモリ(2)に代わる供給を必
要とするかどうかを判定するために使用される。(32)
はストアイン方式のキャッシュデータアレイで,主メモ
リ(2)のメモリデータのコピーや自プロセッサにより
変更されたキャッシュメモリブロックデータを保持す
る。(33)はタグステータス検出部で,キャッシュリク
エストアービタ(30)からのキャッシュアクセスリクエ
ストにより参照されたタグメモリ(31)の出力からリク
エストに該当するキャッシュメモリブロックの使用状態
を検出し,キャッシュリクエストアービタ(30)に使用
状態を伝える。(34)はメモリバスリクエストアービタ
で,キャッシュリクエストアービタ(30)から発行され
る主メモリアクセスリクエストやインタロックリクエス
ト等をメモリバス(4)に送出するための制御やメモリ
バス(4)上で自プロセッサに必要なリクエストデータ
の受信等を制御する。(35)は命令処理ユニットで,第
1および第2のプロセッサ(1a),(1b)の各々の内に
あって命令を実行する。(36)はメモリバススヌープレ
ジスタで,メモリバス(4)上のリクエストとリクエス
トアドレスを常時サンプルし,シャドウタグメモリ(31
S)やキャッシュリクエストアービタ(30)等にそれら
を送出する。(37)はシャドウタグステータス検出部
で,メモリスヌープレジスタ(36)とシャドウタグメモ
リ(31S)から,メモリリクエスト,リクエストアドレ
スさらに情報Aを入力し,メモリバス(4)上へリクエ
ストが要求しているリクエストアドレスを含むキャッシ
ュメモリブロックが自プロセッサのキャッシュデータア
レイ(32)にあるかどうかの情報を出力する。(38)は
インタロックメモリで,シャドウタグメモリ(31S)と
同じアドレスおよびタイミングでアクセスされ,さらに
シャドウタグメモリ(31S)の各ブロック単位に対応し
てインタロックの有無を記憶する。(39)〜(41)は論
理アンドゲート,(42)および(43)はノットゲートで
ある。
のインタロック方式の構成を示すブロック図である。図
において,(30)はキャッシュリクエストアービタで,
ストアインキャッシュメモリへのアクセスリクエストを
制御する。(31)はタグメモリで,ストアインキャッシ
ュメモリの使用状況,すなわちキャッシュメモリアドレ
スの一部情報A,キャッシュメモリブロックが使用中を示
すV,さらに使用中であるキャッシュメモリブロックが自
プロセッサによって変更されたことを示すDをキャッシ
ュメモリブロック単位に保持し,キャッシュリクエスト
アービタ(30)からキャッシュアクセスリクエストが出
力されたならば,リクエストアドレスに該当するキャッ
シュメモリブロックの使用状況をキャッシュリクエスト
アービタ(30)に返送する。(31S)はシャドウタグメ
モリで,タグメモリ(31)と同一の構成を有し,タグメ
モリ(31)中に格納されたキャッシュメモリブロック単
位での使用状況のコピーを保持し,メモリバス(4)上
のリクエストに対して自プロセッサのストアインキャッ
シュメモリ中にあるメモリの無効化や変更されたキャッ
シュメモリブロックの主メモリ(2)に代わる供給を必
要とするかどうかを判定するために使用される。(32)
はストアイン方式のキャッシュデータアレイで,主メモ
リ(2)のメモリデータのコピーや自プロセッサにより
変更されたキャッシュメモリブロックデータを保持す
る。(33)はタグステータス検出部で,キャッシュリク
エストアービタ(30)からのキャッシュアクセスリクエ
ストにより参照されたタグメモリ(31)の出力からリク
エストに該当するキャッシュメモリブロックの使用状態
を検出し,キャッシュリクエストアービタ(30)に使用
状態を伝える。(34)はメモリバスリクエストアービタ
で,キャッシュリクエストアービタ(30)から発行され
る主メモリアクセスリクエストやインタロックリクエス
ト等をメモリバス(4)に送出するための制御やメモリ
バス(4)上で自プロセッサに必要なリクエストデータ
の受信等を制御する。(35)は命令処理ユニットで,第
1および第2のプロセッサ(1a),(1b)の各々の内に
あって命令を実行する。(36)はメモリバススヌープレ
ジスタで,メモリバス(4)上のリクエストとリクエス
トアドレスを常時サンプルし,シャドウタグメモリ(31
S)やキャッシュリクエストアービタ(30)等にそれら
を送出する。(37)はシャドウタグステータス検出部
で,メモリスヌープレジスタ(36)とシャドウタグメモ
リ(31S)から,メモリリクエスト,リクエストアドレ
スさらに情報Aを入力し,メモリバス(4)上へリクエ
ストが要求しているリクエストアドレスを含むキャッシ
ュメモリブロックが自プロセッサのキャッシュデータア
レイ(32)にあるかどうかの情報を出力する。(38)は
インタロックメモリで,シャドウタグメモリ(31S)と
同じアドレスおよびタイミングでアクセスされ,さらに
シャドウタグメモリ(31S)の各ブロック単位に対応し
てインタロックの有無を記憶する。(39)〜(41)は論
理アンドゲート,(42)および(43)はノットゲートで
ある。
第2図は2台のプロセッサで構成されるマルチプロセ
ッサシステムにおけるストアインキャッシュメモリの使
用状態の組み合わせがシステム中に存在できるか否かを
示す一覧表である。
ッサシステムにおけるストアインキャッシュメモリの使
用状態の組み合わせがシステム中に存在できるか否かを
示す一覧表である。
第3図は2台のプロセッサで構成されるストアインキ
ャッシュメモリを有するマルチプロセッサシステムにお
けるリクエストの種類,各プロセッサ内のキャッシュメ
モリ使用状態と動作の関係を表す図である。
ャッシュメモリを有するマルチプロセッサシステムにお
けるリクエストの種類,各プロセッサ内のキャッシュメ
モリ使用状態と動作の関係を表す図である。
この発明の動作説明に入る前にこの発明のインタロッ
ク方式と密接に関係ある第1図に示したストアインキャ
ッシュメモリの構成について予め説明しておく。
ク方式と密接に関係ある第1図に示したストアインキャ
ッシュメモリの構成について予め説明しておく。
まず,タグメモリ(31)およびシャドウタグメモリ
(31S)に割り付けられたキャッシュメモリ使用状況を
示す情報V,Dのビットについて規定を行う。いま,タグ
メモリ(31),シャドウタグメモリ(31S)のあるエン
トリで,V=0の時,対応するキャッシュデータアレイ
(32)のデータブロックは無効であることを示す。この
状態をミスと称する。次に、タグメモリ(31),シャド
ウタグメモリ(31S)のあるエントリで,V=1,D=0の
時,対応するキャッシュメモリデータアレイ(32)のデ
ータブロックは主メモリ(2)と同一内容のコピーを保
持している状態であり,この状態をクリーンと称する。
最後に,タグメモリ(31),シャドウタグメモリ(31
S)のあるエントリで,V=1,D=1の時,対応するキャッ
シュメモリデータアレイ(32)のデータブロックは自プ
ロセッサのストア動作によって書き込みがされ,書き込
みがされる前の古いデータを保持する主メモリ(2)と
は内容が異なっている状態であり,この状態をダーティ
と称する。
(31S)に割り付けられたキャッシュメモリ使用状況を
示す情報V,Dのビットについて規定を行う。いま,タグ
メモリ(31),シャドウタグメモリ(31S)のあるエン
トリで,V=0の時,対応するキャッシュデータアレイ
(32)のデータブロックは無効であることを示す。この
状態をミスと称する。次に、タグメモリ(31),シャド
ウタグメモリ(31S)のあるエントリで,V=1,D=0の
時,対応するキャッシュメモリデータアレイ(32)のデ
ータブロックは主メモリ(2)と同一内容のコピーを保
持している状態であり,この状態をクリーンと称する。
最後に,タグメモリ(31),シャドウタグメモリ(31
S)のあるエントリで,V=1,D=1の時,対応するキャッ
シュメモリデータアレイ(32)のデータブロックは自プ
ロセッサのストア動作によって書き込みがされ,書き込
みがされる前の古いデータを保持する主メモリ(2)と
は内容が異なっている状態であり,この状態をダーティ
と称する。
以上3種類の使用状態を有するストアインキャッシュ
メモリ,例えば第1および第2のストアインキャッシュ
メモリ(3a),(3b)を有する複数のプロセッサ,例え
ば第1および第2のプロセッサ(1a),(1b)内の第1
および第2のストアインキャッシュメモリ(3a),(3
b)の使用状態の組み合わせの可否を規定したものが第
2図に示されている。図において,システム状態中の○
印は存在することができる組み合わせを示し,×印は存
在が許されないことを示している。第2図からある1つ
のプロセッサのストアインキャッシュメモリ中にダーテ
ィブロックが存在する場合には他プロセッサのストアイ
ンキャッシュメモリ中の同一アドレスで参照されるキャ
ッシュメモリブロックはミス状態である。また,クリー
ン状態のキャッシュメモリブロックは単独あるいは複数
のプロセッサにおいて共存ができる。
メモリ,例えば第1および第2のストアインキャッシュ
メモリ(3a),(3b)を有する複数のプロセッサ,例え
ば第1および第2のプロセッサ(1a),(1b)内の第1
および第2のストアインキャッシュメモリ(3a),(3
b)の使用状態の組み合わせの可否を規定したものが第
2図に示されている。図において,システム状態中の○
印は存在することができる組み合わせを示し,×印は存
在が許されないことを示している。第2図からある1つ
のプロセッサのストアインキャッシュメモリ中にダーテ
ィブロックが存在する場合には他プロセッサのストアイ
ンキャッシュメモリ中の同一アドレスで参照されるキャ
ッシュメモリブロックはミス状態である。また,クリー
ン状態のキャッシュメモリブロックは単独あるいは複数
のプロセッサにおいて共存ができる。
次に,第1図および第3図に従ってこの発明のインタ
ロック方式を含むマルチプロセッサシステムにおけるリ
クエスト動作について説明する。
ロック方式を含むマルチプロセッサシステムにおけるリ
クエスト動作について説明する。
1.LOCKリクエストによるインタロックの獲得動作 第1のプロセッサ(1a)内の命令処理ユニット(35)
からLOCKリクエストがキャッシュリクエストアービタ
(30)に対して発行された場合,キャッシュリクエスト
アービタ(30)はLOCKリクエストを受け付けると,タグ
メモリ(31)をLOCKリクエストのアドレスを用いて参照
する。タグメモリ(31)のLOCKリクエストアドレスに該
当するキャッシュメモリブロックの情報A,VおよびDの
各使用状況はタグステータス検出部(33)に入力され
て,ここでミス,クリーンおよびターディのいずれの状
態にあるかが検出された後,キャッシュリクエストアー
ビタ(30)に返送される。もし,ダーティ状態であった
ならば第2図より第2のプロセッサ(1b)のキャッシュ
メモリは必ずミス状態であり,かつLOCKリクエストを発
行した第1のプロセッサ(1a)のキャッシュメモリ内に
最新のデータが入っていることから,キャッシュリクエ
ストアービタ(30)は直ちにインタロックメモリ(38)
に対してLOCKリクエストアドレスを送り,該当するイン
タロックメモリ(38)のアドレス中にインタロックを獲
得した状態を示す値“1"を書き込み,LOCKリクエストの
処理を完了する。
からLOCKリクエストがキャッシュリクエストアービタ
(30)に対して発行された場合,キャッシュリクエスト
アービタ(30)はLOCKリクエストを受け付けると,タグ
メモリ(31)をLOCKリクエストのアドレスを用いて参照
する。タグメモリ(31)のLOCKリクエストアドレスに該
当するキャッシュメモリブロックの情報A,VおよびDの
各使用状況はタグステータス検出部(33)に入力され
て,ここでミス,クリーンおよびターディのいずれの状
態にあるかが検出された後,キャッシュリクエストアー
ビタ(30)に返送される。もし,ダーティ状態であった
ならば第2図より第2のプロセッサ(1b)のキャッシュ
メモリは必ずミス状態であり,かつLOCKリクエストを発
行した第1のプロセッサ(1a)のキャッシュメモリ内に
最新のデータが入っていることから,キャッシュリクエ
ストアービタ(30)は直ちにインタロックメモリ(38)
に対してLOCKリクエストアドレスを送り,該当するイン
タロックメモリ(38)のアドレス中にインタロックを獲
得した状態を示す値“1"を書き込み,LOCKリクエストの
処理を完了する。
もし,クリーン状態であったならば,第2のプロセッ
サ(1b)のキャッシュメモリメモリ中にもクリーン状態
の同一内容のキャッシュメモリブロックが存在する可能
性があるためキャッシュリクエストアービタ(30)は,
メモリバスリクエストアービタ(34)に対してRQ−TO−
LOCKリクエスト完了待ち状態に入る。メモリバスリクエ
ストアービタ(34)は,RQ−TO−LOCKリクエストをメモ
リバス(4)上に送出し,第2のプロセッサ(1b)にこ
れを伝える。第2のプロセッサ(1b)においては,メモ
リバススヌープレジスタ(36)に該RQ−TO−LOCKリクエ
ストおよびリクエストアドレスを取り込む。メモリバス
スヌープレジスタ(36)に取り込まれたリクエストアド
レスは,シャドウタグメモリ(31S)およびインタロッ
ク(38)を参照するために用いられる。シャドウタグメ
モリ(31S)から読出された第2のプロセッサ(1b)の
キャッシュメモリの使用状態のうちアドレスの一部情報
Aは,シャドウタグステータス検出部(37)に送られ
て,メモリバススヌープレジスタ(36)に保持されたリ
クエストアドレスと比較される。シャドウタグステータ
ス検出部(37)でアドレス比較された結果,一致がと
れ,かつRQ−TO−LOCKリクエストがメモリバススヌープ
レジスタ(36)に保持されている時,シャドウタグステ
ータス検出部(37)は値“1"を出力し,論理アンドゲー
ト(39),(40),(41)に送る。一方,シャドウタグ
メモリ(31S)から読出された残りの情報V,Dは各々論理
アンドゲート(39),(40),(41)および論理アンド
ゲート(40),(41),ノットゲート(42)に送られ,
さらにノットゲート(42)で反転された情報Dは論理ア
ンドゲート(39)に送られる。また,インタロックメモ
リ(38)から読出された情報Lは論理アンドゲート(4
1),ノットゲート(43)で反転された後,論理アンド
ゲート(39),(40)に送られる。論理アンドゲート
(39)は,メモリバス(4)上のリクエストを監視した
結果,自プロセッサのキャッシュメモリ中にリクエスト
されたアドレスに該当するクリーン状態のキャッシュメ
モリブロックを保持していることを検出するために用い
られる。いま,RQ−TO−LOCKリクエスト,かつリクエス
トアドレスとシャドウタグメモリ(31S)に登録されて
いるアドレスが一致し、かつV=1かつD=0かつL=
0の場合,論理アンドゲート(39)は値“1"を出力し,
キャッシュリクエストアービタ(30)に送出する。キャ
ッシュリクエストアービタ(30)は,論理アンドゲート
(39)から値“1"を受け取ると同時にメモリバススヌー
プレジスタ(36)からリクエストアドレスを取り込み,
タグメモリ(31)およびシャドウタグメモリ(31S)の
該当エントリの情報Vに値0を書き込む。すなわち,第
1のプロセッサ(1a)からのRQ−TO−LOCKリクエストに
対して第2のプロセッサ(1b)がクリーン状態のキャッ
シュメモリブロックを保持している場合には,このキャ
ッシュメモリブロックを無効化,つまりミス状態にす
る。そして,キャッシュリクエストアービタ(30)は,
メモリバススヌープレジスタ(36)から受け取ったRQ−
TO−LOCKリクエストからリクエスト完了信号を生成し,
メモリバスリクエストアービタ(34)を介してメモリバ
ス(4)にリクエスト完了信号を送出する。第2のプロ
セッサ(1b)から送られたRQ−TO−LOCKリクエストに対
するリクエスト完了信号は第1のプロセッサ(1a)のメ
モリバスリクエストアービタ(34)に受け取られてキャ
ッシュリクエストアービタ(30)に転送される。リクエ
スト完了信号を受け取ったキャッシュリクエストアービ
タ(30)は,タグメモリ(31)およびシャドウタグメモ
リ(31S)のRQ−TO−LOCKリクエストアドレスに該当す
るエントリ中の情報Dを値“1"とすると共にインタロッ
クメモリ(38)中の情報Lに値“1"を書き込み,インタ
ロックの獲得動作を終了する。
サ(1b)のキャッシュメモリメモリ中にもクリーン状態
の同一内容のキャッシュメモリブロックが存在する可能
性があるためキャッシュリクエストアービタ(30)は,
メモリバスリクエストアービタ(34)に対してRQ−TO−
LOCKリクエスト完了待ち状態に入る。メモリバスリクエ
ストアービタ(34)は,RQ−TO−LOCKリクエストをメモ
リバス(4)上に送出し,第2のプロセッサ(1b)にこ
れを伝える。第2のプロセッサ(1b)においては,メモ
リバススヌープレジスタ(36)に該RQ−TO−LOCKリクエ
ストおよびリクエストアドレスを取り込む。メモリバス
スヌープレジスタ(36)に取り込まれたリクエストアド
レスは,シャドウタグメモリ(31S)およびインタロッ
ク(38)を参照するために用いられる。シャドウタグメ
モリ(31S)から読出された第2のプロセッサ(1b)の
キャッシュメモリの使用状態のうちアドレスの一部情報
Aは,シャドウタグステータス検出部(37)に送られ
て,メモリバススヌープレジスタ(36)に保持されたリ
クエストアドレスと比較される。シャドウタグステータ
ス検出部(37)でアドレス比較された結果,一致がと
れ,かつRQ−TO−LOCKリクエストがメモリバススヌープ
レジスタ(36)に保持されている時,シャドウタグステ
ータス検出部(37)は値“1"を出力し,論理アンドゲー
ト(39),(40),(41)に送る。一方,シャドウタグ
メモリ(31S)から読出された残りの情報V,Dは各々論理
アンドゲート(39),(40),(41)および論理アンド
ゲート(40),(41),ノットゲート(42)に送られ,
さらにノットゲート(42)で反転された情報Dは論理ア
ンドゲート(39)に送られる。また,インタロックメモ
リ(38)から読出された情報Lは論理アンドゲート(4
1),ノットゲート(43)で反転された後,論理アンド
ゲート(39),(40)に送られる。論理アンドゲート
(39)は,メモリバス(4)上のリクエストを監視した
結果,自プロセッサのキャッシュメモリ中にリクエスト
されたアドレスに該当するクリーン状態のキャッシュメ
モリブロックを保持していることを検出するために用い
られる。いま,RQ−TO−LOCKリクエスト,かつリクエス
トアドレスとシャドウタグメモリ(31S)に登録されて
いるアドレスが一致し、かつV=1かつD=0かつL=
0の場合,論理アンドゲート(39)は値“1"を出力し,
キャッシュリクエストアービタ(30)に送出する。キャ
ッシュリクエストアービタ(30)は,論理アンドゲート
(39)から値“1"を受け取ると同時にメモリバススヌー
プレジスタ(36)からリクエストアドレスを取り込み,
タグメモリ(31)およびシャドウタグメモリ(31S)の
該当エントリの情報Vに値0を書き込む。すなわち,第
1のプロセッサ(1a)からのRQ−TO−LOCKリクエストに
対して第2のプロセッサ(1b)がクリーン状態のキャッ
シュメモリブロックを保持している場合には,このキャ
ッシュメモリブロックを無効化,つまりミス状態にす
る。そして,キャッシュリクエストアービタ(30)は,
メモリバススヌープレジスタ(36)から受け取ったRQ−
TO−LOCKリクエストからリクエスト完了信号を生成し,
メモリバスリクエストアービタ(34)を介してメモリバ
ス(4)にリクエスト完了信号を送出する。第2のプロ
セッサ(1b)から送られたRQ−TO−LOCKリクエストに対
するリクエスト完了信号は第1のプロセッサ(1a)のメ
モリバスリクエストアービタ(34)に受け取られてキャ
ッシュリクエストアービタ(30)に転送される。リクエ
スト完了信号を受け取ったキャッシュリクエストアービ
タ(30)は,タグメモリ(31)およびシャドウタグメモ
リ(31S)のRQ−TO−LOCKリクエストアドレスに該当す
るエントリ中の情報Dを値“1"とすると共にインタロッ
クメモリ(38)中の情報Lに値“1"を書き込み,インタ
ロックの獲得動作を終了する。
もし,RQ−TO−LOCKリクエストをメモリバス(4)を
介して受け取った第2のプロセッサ(1b)において,シ
ャドウタグメモリ(31S)から読出された情報Vが0ま
たは情報AとRQ−TO−LOCKリクエストアドレスの値が不
一致の場合には,第2のプロセッサ(1b)はRQ−TO−LO
CKリクエストアドレスに該当するキャッシュメモリブロ
ックデータを保持していない。つまりミス状態である。
よって,論理アンドゲート(39)の出力は0となるので
キャッシュリクエストアービタ(30)においてキャッシ
ュリクエストアクセスは発生せず,タグメモリ(31)お
よびシャドウタグメモリ(31S)並びにキャッシュメモ
リデータアレイ(32)の内容は変わらない。そして,メ
モリバススヌープレジスタ(36)から送られたRQ−TO−
LOCKリクエストと論理アンドゲート(39)の出力が0か
ら直ちにリクエスト完了信号がキャッシュリクエストア
ービタ(30)において生成され,メモリバスリクエスト
アービタ(34)を介してメモリバス(4)に送出され
る。この後の第1のプロセッサ(1a)におけるRQ−TO−
LOCKリクエスト終了動作は前述の第2のプロセッサ(1
b)のシャドウタグメモリ(31S)がクリーン状態の時と
同様である。
介して受け取った第2のプロセッサ(1b)において,シ
ャドウタグメモリ(31S)から読出された情報Vが0ま
たは情報AとRQ−TO−LOCKリクエストアドレスの値が不
一致の場合には,第2のプロセッサ(1b)はRQ−TO−LO
CKリクエストアドレスに該当するキャッシュメモリブロ
ックデータを保持していない。つまりミス状態である。
よって,論理アンドゲート(39)の出力は0となるので
キャッシュリクエストアービタ(30)においてキャッシ
ュリクエストアクセスは発生せず,タグメモリ(31)お
よびシャドウタグメモリ(31S)並びにキャッシュメモ
リデータアレイ(32)の内容は変わらない。そして,メ
モリバススヌープレジスタ(36)から送られたRQ−TO−
LOCKリクエストと論理アンドゲート(39)の出力が0か
ら直ちにリクエスト完了信号がキャッシュリクエストア
ービタ(30)において生成され,メモリバスリクエスト
アービタ(34)を介してメモリバス(4)に送出され
る。この後の第1のプロセッサ(1a)におけるRQ−TO−
LOCKリクエスト終了動作は前述の第2のプロセッサ(1
b)のシャドウタグメモリ(31S)がクリーン状態の時と
同様である。
最後に,第1のプロセッサ(1a)内でLOCKリクエスト
によるタグメモリ(31)中の使用状態がミスであった場
合には,キャッシュリクエストアービタ(30)は,LOCK
ミスリクエストをメモリバスリクエストアービタ(34)
に発行し,キャッシュメモリブロックへのデータ転送要
求と他のプロセッサ内の該当するキャッシュメモリブロ
ックの無効化要求を行う。メモリバスリクエストアービ
タ(34)からメモリバス(4)に送出されたLOCKミスリ
クエストは,主メモリ(2)と第2のプロセッサ(1b)
とに送られる。第2のプロセッサ(1b)では,このLOCK
ミスリクエストとリクエストアドレスをメモリバススヌ
ープレジスタ(36)に受け取り,前述のRQ−TO−LOCKリ
クエストと同様にシャドウタグメモリ(31S)およびイ
ンタロックメモリ(38)を参照し,第2のプロセッサ
(1b)中のキャッシュメモリがミス,クリーン,ダーテ
ィのいずれの状態にあるかを検出する。もし,ミス状態
だった場合,第2のプロセッサ(1b)は,LOCKミスリク
エストによる何のキャッシュメモリアクセス動作も発生
しない。この時,主メモリ(2)は,LOCKミスリクエス
トアドレスに該当するデータを第1のプロセッサ(1a)
にメモリバス(4)を介して転送する。第1のプロセッ
サ(1a)は,主メモリ(2)から転送されたデータをメ
モリバスリクエストアービタ(34)が受け取り,キャッ
シュデータアレイ(32)に書き込むと共にタグメモリ
(31)およびシャドウタグメモリ(31S)中の情報Vを
値“1",情報Dを値“1"にセットする。さらに同時にイ
ンタロックメモリ(38)中の情報Lを値“1"にセット
し,LOCKミスリクエスト処理を完了する。次に,第2の
プロセッサ(1b)のシャドウタグメモリ(31S)がクリ
ーンであった場合,第2のプロセッサ(1b)のキャッシ
ュメモリは,前述のRQ−TO−LOCKリクエストに対するク
リーン状態と同じ動作により無効化される。この時,主
メモリ(2)は,LOCKミスリクエストアドレスに該当す
るデータを第1のプロセッサ(1a)にメモリバス(4)
を介して転送する。第1のプロセッサ(1a)の以降の処
理は前述のLOCKミスリクエスト時のミス状態と同じであ
る。
によるタグメモリ(31)中の使用状態がミスであった場
合には,キャッシュリクエストアービタ(30)は,LOCK
ミスリクエストをメモリバスリクエストアービタ(34)
に発行し,キャッシュメモリブロックへのデータ転送要
求と他のプロセッサ内の該当するキャッシュメモリブロ
ックの無効化要求を行う。メモリバスリクエストアービ
タ(34)からメモリバス(4)に送出されたLOCKミスリ
クエストは,主メモリ(2)と第2のプロセッサ(1b)
とに送られる。第2のプロセッサ(1b)では,このLOCK
ミスリクエストとリクエストアドレスをメモリバススヌ
ープレジスタ(36)に受け取り,前述のRQ−TO−LOCKリ
クエストと同様にシャドウタグメモリ(31S)およびイ
ンタロックメモリ(38)を参照し,第2のプロセッサ
(1b)中のキャッシュメモリがミス,クリーン,ダーテ
ィのいずれの状態にあるかを検出する。もし,ミス状態
だった場合,第2のプロセッサ(1b)は,LOCKミスリク
エストによる何のキャッシュメモリアクセス動作も発生
しない。この時,主メモリ(2)は,LOCKミスリクエス
トアドレスに該当するデータを第1のプロセッサ(1a)
にメモリバス(4)を介して転送する。第1のプロセッ
サ(1a)は,主メモリ(2)から転送されたデータをメ
モリバスリクエストアービタ(34)が受け取り,キャッ
シュデータアレイ(32)に書き込むと共にタグメモリ
(31)およびシャドウタグメモリ(31S)中の情報Vを
値“1",情報Dを値“1"にセットする。さらに同時にイ
ンタロックメモリ(38)中の情報Lを値“1"にセット
し,LOCKミスリクエスト処理を完了する。次に,第2の
プロセッサ(1b)のシャドウタグメモリ(31S)がクリ
ーンであった場合,第2のプロセッサ(1b)のキャッシ
ュメモリは,前述のRQ−TO−LOCKリクエストに対するク
リーン状態と同じ動作により無効化される。この時,主
メモリ(2)は,LOCKミスリクエストアドレスに該当す
るデータを第1のプロセッサ(1a)にメモリバス(4)
を介して転送する。第1のプロセッサ(1a)の以降の処
理は前述のLOCKミスリクエスト時のミス状態と同じであ
る。
最後に,第2のプロセッサ(1b)のシャドウタグメモ
リ(31S)がダーディであった場合には,インタロック
メモリ(38)の読出しデータLが値“0",すなわちイン
タロックがかかっていない時,第2のプロセッサ(1b)
の論理アンドゲート(4)の出力が1となる。キャッシ
ュリクエストアービタ(30)は,論理アンドゲート(4
0)の出力が1であることと,メモリスヌープレジスタ
(36)からLOCKミスリクエストであることを入力して自
プロセッサ(1b)がシステムの中で唯一最新のデータを
保持することから,キャッシュデータアレイ(32)から
LOCKミスリクエストアドレスに該当するキャッシュメモ
リブロックデータを読出して,メモリバスリクエストア
ービタ(34)を介してメモリバス(4)に主メモリ
(2)に代わってデータを送出する。キャッシュメモリ
ブロックデータのメモリバス(4)への送出が完了した
ならば,直ちにキャッシュリクエストアービタ(30)
は,タグメモリ(31)およびシャドウタグメモリ(31
S)中のLOCKミスリクエストアドレスに該当するエント
リの情報V,Dをそれぞれ値“0"にリセットする。第2の
プロセッサ(1b)から供給されたLOCKミスリクエストに
対するデータは,一方で主メモリ(2)に書込まれ,他
方で第1のプロセッサ(1a)において前述と同様にキャ
ッシュデータアレイ(32)に書込まれると同時にタグメ
モリ(31)およびシャドウタグメモリ(31S)中の情報
V,Dをそれぞれ値“1"にセットし,またインタロック(3
8)の情報Lを値“1"にセットし,LOCKミスリクエスト動
作を完了する。もし,第2のプロセッサ(1b)におい
て,第1のプロセッサ(1a)が発行したLOCKミスリクエ
ストに該当するアドレスが既にインタロックの獲得がな
されている場合,すなわち,インタロックメモリ(38)
中の情報Lが値“1",かつシャドウタグメモリ(31S)中
の情報V,Dがそれぞれ値“1"である場合には,論理アン
ドゲート(39),(40)の出力が0となると共に論理ア
ンドゲート(41)の出力が1となる。キャッシュリクエ
ストアービタ(30)においては,LOCKミスリクエストに
対応する論理アンドゲート(30),(40)の出力が共に
0であることからキャッシュメモリへのアクセスは発生
しない。また,論理アンドゲート(41)の出力が1であ
ることは,LOCKミスリクエストに対応するアドレスが既
に第2のプロセッサ(1b)でインタロックが獲得されて
いることを意味しており,論理アンドゲート(41)の出
力はインタロック信号(18)としてメモリバス(4)上
に送出され,第1のプロセッサ(1a)に伝えられる。第
1のプロセッサ(1a)ではLOCKミスリクエスト動作中に
他のプロセッサである第2のプロセッサ(1b)から,イ
ンタロック信号(18)が出力されたことをメモリバスリ
クエストアービタ(34)で検出し,他プロセッサ(1b)
中でRELEASE・LOCKリクエストによってインタロックが
解除されるまでLOCKミスリクエスト処理が待たされる。
リ(31S)がダーディであった場合には,インタロック
メモリ(38)の読出しデータLが値“0",すなわちイン
タロックがかかっていない時,第2のプロセッサ(1b)
の論理アンドゲート(4)の出力が1となる。キャッシ
ュリクエストアービタ(30)は,論理アンドゲート(4
0)の出力が1であることと,メモリスヌープレジスタ
(36)からLOCKミスリクエストであることを入力して自
プロセッサ(1b)がシステムの中で唯一最新のデータを
保持することから,キャッシュデータアレイ(32)から
LOCKミスリクエストアドレスに該当するキャッシュメモ
リブロックデータを読出して,メモリバスリクエストア
ービタ(34)を介してメモリバス(4)に主メモリ
(2)に代わってデータを送出する。キャッシュメモリ
ブロックデータのメモリバス(4)への送出が完了した
ならば,直ちにキャッシュリクエストアービタ(30)
は,タグメモリ(31)およびシャドウタグメモリ(31
S)中のLOCKミスリクエストアドレスに該当するエント
リの情報V,Dをそれぞれ値“0"にリセットする。第2の
プロセッサ(1b)から供給されたLOCKミスリクエストに
対するデータは,一方で主メモリ(2)に書込まれ,他
方で第1のプロセッサ(1a)において前述と同様にキャ
ッシュデータアレイ(32)に書込まれると同時にタグメ
モリ(31)およびシャドウタグメモリ(31S)中の情報
V,Dをそれぞれ値“1"にセットし,またインタロック(3
8)の情報Lを値“1"にセットし,LOCKミスリクエスト動
作を完了する。もし,第2のプロセッサ(1b)におい
て,第1のプロセッサ(1a)が発行したLOCKミスリクエ
ストに該当するアドレスが既にインタロックの獲得がな
されている場合,すなわち,インタロックメモリ(38)
中の情報Lが値“1",かつシャドウタグメモリ(31S)中
の情報V,Dがそれぞれ値“1"である場合には,論理アン
ドゲート(39),(40)の出力が0となると共に論理ア
ンドゲート(41)の出力が1となる。キャッシュリクエ
ストアービタ(30)においては,LOCKミスリクエストに
対応する論理アンドゲート(30),(40)の出力が共に
0であることからキャッシュメモリへのアクセスは発生
しない。また,論理アンドゲート(41)の出力が1であ
ることは,LOCKミスリクエストに対応するアドレスが既
に第2のプロセッサ(1b)でインタロックが獲得されて
いることを意味しており,論理アンドゲート(41)の出
力はインタロック信号(18)としてメモリバス(4)上
に送出され,第1のプロセッサ(1a)に伝えられる。第
1のプロセッサ(1a)ではLOCKミスリクエスト動作中に
他のプロセッサである第2のプロセッサ(1b)から,イ
ンタロック信号(18)が出力されたことをメモリバスリ
クエストアービタ(34)で検出し,他プロセッサ(1b)
中でRELEASE・LOCKリクエストによってインタロックが
解除されるまでLOCKミスリクエスト処理が待たされる。
2.インタロック獲得中の動作 第1のプロセッサ(1a)においてある主メモリアドレ
スのインタロックが獲得されている時に,第2のプロセ
ッサ(1b)から発行されるメモリバス(4)上のリクエ
スト種類は第3図より下記の通りである。すなわち, FETCHミスリクエスト・・・FETCHリクエストでキャッシ
ュメモリがミス状態の時 STOREミスリクエスト・・・STOREリクエストでキャッシ
ュメモリがミス状態の時 RQ−TO−MODIFYリクエスト・・・STOREリクエストでキ
ャッシュメモリがクリーン状態の時 LOCKミスリクエスト・・・LOCKリクエストでキャッシュ
メモリがミス状態の時 RQ−TO−LOCKリクエスト・・・LOCKリクエストでキャッ
シュメモリがクリーン状態の時 この5種類のメモリバス上のリクエストのいずれに対
しても第1のプロセッサ(1a)で,シャドウタグメモリ
(31S)およびインタロックメモリ(38)の参照により
インタロックが獲得されている場合には,前述のLOCKミ
スリクエスト時のインタロック動作と同様にインタロッ
ク信号(18)がメモリバス(4)上に送出され,このイ
ンタロック信号(18)を第1のプロセッサ(1a)が検出
し,リクエスト処理がインタロックの解除まで待たされ
る。もし,インタロックが獲得されていなければ,第1
のプロセッサ(1a)では,第2のプロセッサ(1b)から
出力されたメモリバス(4)上のリクエストに対応した
キャッシュメモリブロックの無効化や主メモリ(2)に
代わるメモリデータの供給とキャッシュメモリブロック
の無効化,並びにキャッシュメモリアクセス動作なしの
動作を自プロセッサのキャッシュメモリ使用状況に応じ
て実行する。これらの動作は第3図に示されているがこ
の発明のインタロック方式動作と直接関係ないので省略
する。
スのインタロックが獲得されている時に,第2のプロセ
ッサ(1b)から発行されるメモリバス(4)上のリクエ
スト種類は第3図より下記の通りである。すなわち, FETCHミスリクエスト・・・FETCHリクエストでキャッシ
ュメモリがミス状態の時 STOREミスリクエスト・・・STOREリクエストでキャッシ
ュメモリがミス状態の時 RQ−TO−MODIFYリクエスト・・・STOREリクエストでキ
ャッシュメモリがクリーン状態の時 LOCKミスリクエスト・・・LOCKリクエストでキャッシュ
メモリがミス状態の時 RQ−TO−LOCKリクエスト・・・LOCKリクエストでキャッ
シュメモリがクリーン状態の時 この5種類のメモリバス上のリクエストのいずれに対
しても第1のプロセッサ(1a)で,シャドウタグメモリ
(31S)およびインタロックメモリ(38)の参照により
インタロックが獲得されている場合には,前述のLOCKミ
スリクエスト時のインタロック動作と同様にインタロッ
ク信号(18)がメモリバス(4)上に送出され,このイ
ンタロック信号(18)を第1のプロセッサ(1a)が検出
し,リクエスト処理がインタロックの解除まで待たされ
る。もし,インタロックが獲得されていなければ,第1
のプロセッサ(1a)では,第2のプロセッサ(1b)から
出力されたメモリバス(4)上のリクエストに対応した
キャッシュメモリブロックの無効化や主メモリ(2)に
代わるメモリデータの供給とキャッシュメモリブロック
の無効化,並びにキャッシュメモリアクセス動作なしの
動作を自プロセッサのキャッシュメモリ使用状況に応じ
て実行する。これらの動作は第3図に示されているがこ
の発明のインタロック方式動作と直接関係ないので省略
する。
3.インタロック解除動作 例えば,第1のプロセッサ(1a)においてインタロッ
クされたメモリアドレスに該当するデータを保持するキ
ャッシュブロックに対して命令処理ユニット(35)から
のSTOREリクエストによるデータ更新操作が完了した後
に、RELEASE・LOCKリクエストが命令処理ユニット(3
5)からキャッシュリクエストアービタ(30)に出力さ
れる。このキャッシュリクエストアービタ(30)ではRE
LEASE・LOCKリクエストを受け取ると,直ちにインタロ
ックメモリ(38)中の該当するエントリの情報Lを値
“0"にリセットし,RELEASE・LOCKリクエスト処理を完了
する。
クされたメモリアドレスに該当するデータを保持するキ
ャッシュブロックに対して命令処理ユニット(35)から
のSTOREリクエストによるデータ更新操作が完了した後
に、RELEASE・LOCKリクエストが命令処理ユニット(3
5)からキャッシュリクエストアービタ(30)に出力さ
れる。このキャッシュリクエストアービタ(30)ではRE
LEASE・LOCKリクエストを受け取ると,直ちにインタロ
ックメモリ(38)中の該当するエントリの情報Lを値
“0"にリセットし,RELEASE・LOCKリクエスト処理を完了
する。
以上がこの発明の一実施例における動作説明である。
また,第1図および第2のプロセッサを第1図に示す
構成にすることによって第5図に示した従来のインタロ
ック方式を説明する主メモリのブロック図中の第1およ
び第2のメモリインタロック制御機構(9a),(9b)は
不要となる。
構成にすることによって第5図に示した従来のインタロ
ック方式を説明する主メモリのブロック図中の第1およ
び第2のメモリインタロック制御機構(9a),(9b)は
不要となる。
なお,上記実施例ではストアインキャッシュメモリの
使用状態としてミス,クリーンおよびダーティの3種と
してが,クリーンを細分化し,唯一のプロセッサが主メ
モリのコピーを持つクリーン−EXCLUSIVEと複数のプロ
セッサが主メモリのコピーを持つクリーン−SHAREDとし
た場合でも同様の効果を奏する。
使用状態としてミス,クリーンおよびダーティの3種と
してが,クリーンを細分化し,唯一のプロセッサが主メ
モリのコピーを持つクリーン−EXCLUSIVEと複数のプロ
セッサが主メモリのコピーを持つクリーン−SHAREDとし
た場合でも同様の効果を奏する。
また,上記実施例では簡単化のためにプロセッサ2台
の場合のマルチプロセッサシステム構成としたが,3台以
上のマルチプロセッサシステムの場合でも説明した以外
の回路を特別追加することは無しに同様の効果を奏す
る。
の場合のマルチプロセッサシステム構成としたが,3台以
上のマルチプロセッサシステムの場合でも説明した以外
の回路を特別追加することは無しに同様の効果を奏す
る。
また,上記実施例ではインタロックメモリとしてシャ
ドウタグメモリと別に構成する場合について説明したが
シャドウタグメモリ内にインタロックビットとして構成
した場合でも同様の効果を奏する。
ドウタグメモリと別に構成する場合について説明したが
シャドウタグメモリ内にインタロックビットとして構成
した場合でも同様の効果を奏する。
[発明の効果] この発明は以上説明したとおり,マルチプロセッサシ
ステムのインタロック方式を各プロセッサのタグメモリ
のエントリに対応するインタロックメモリを用いて構成
したので,インタロックの獲得および解除処理が高速化
されると共にメモリバス上のトラフィック量を低減化
し,またキャッシュメモリ中のブロック単位にインタロ
ック制御が行われるため,インタロックされたアドレス
に無関係な他のプロセッサからの主メモリアクセスリク
エストへの妨害を最小限に止どめる効果がある。
ステムのインタロック方式を各プロセッサのタグメモリ
のエントリに対応するインタロックメモリを用いて構成
したので,インタロックの獲得および解除処理が高速化
されると共にメモリバス上のトラフィック量を低減化
し,またキャッシュメモリ中のブロック単位にインタロ
ック制御が行われるため,インタロックされたアドレス
に無関係な他のプロセッサからの主メモリアクセスリク
エストへの妨害を最小限に止どめる効果がある。
第1図はこの発明の一実施例によるマルチプロセッサシ
ステムのインタロック方式の構成ブロック図,第2図は
この発明の一実施例によるマルチプロセッサシステムで
ストアインキャッシュメモリの使用状態の組み合わせの
可否を示す一覧表図,第3図はこの発明の一実施例によ
るマルチプロセッサシステムでプロセッサ中のリクエス
トの種類,リクエスト時での各プロセッサ内のキャッシ
ュメモリ使用状態と動作の関係を示す図,第4図は一般
的なマルチプロセッサシステムの構成ブロック図,第5
図は従来のマルチプロセッサシステムのインタロック方
式の構成ブロック図である。 図において,(1a),(1b)……プロセッサ,(2)…
…主メモリ,(3a),(3b)……ストアインキャッシュ
メモリ,(4)……メモリバス,(30)……キャッシュ
リクエストアービタ,(31)……タグメモリ,(38)…
…インタロックメモリである。 なお,各図中同一符号は同一又は相当部分を示す。
ステムのインタロック方式の構成ブロック図,第2図は
この発明の一実施例によるマルチプロセッサシステムで
ストアインキャッシュメモリの使用状態の組み合わせの
可否を示す一覧表図,第3図はこの発明の一実施例によ
るマルチプロセッサシステムでプロセッサ中のリクエス
トの種類,リクエスト時での各プロセッサ内のキャッシ
ュメモリ使用状態と動作の関係を示す図,第4図は一般
的なマルチプロセッサシステムの構成ブロック図,第5
図は従来のマルチプロセッサシステムのインタロック方
式の構成ブロック図である。 図において,(1a),(1b)……プロセッサ,(2)…
…主メモリ,(3a),(3b)……ストアインキャッシュ
メモリ,(4)……メモリバス,(30)……キャッシュ
リクエストアービタ,(31)……タグメモリ,(38)…
…インタロックメモリである。 なお,各図中同一符号は同一又は相当部分を示す。
Claims (1)
- 【請求項1】主メモリと,この主メモリを共有し,かつ
ストアインキャシュメモリを内蔵する複数のプロセッサ
と,自プロセッサから前記主メモリあるいは他プロセッ
サへのアクセスを行うための1本の共通なメモリバスと
で構成されるマルチプロセッサシステムにおいて,前記
複数のプロセッサの各々の内部の前記ストアインキャシ
ュメモリと前記主メモリ間のメモリデータコヒーレンシ
を保証するために,前記メモリバス上のトラフィックを
監視する自プロセッサ内の前記ストアインキャッシュメ
モリの使用状況を保持するタグメモリと,自プロセッサ
が前記主メモリ中の特定アドレスブロックを排他使用中
であることを示すインタロック情報を前記タグメモリの
エントリに対応して持つインタロックメモリと,自プロ
セッサ内の前記タグメモリの内容によってインタロック
の獲得を自プロセッサ内で完了するかまたは他プロセッ
サに前記メモリバスを介して通知するかを決定すると共
にインタロックの解除操作を自プロセッサ内で完了させ
るキャッシュリクエストアービタとを備えたことを特徴
とするマルチプロセッサシステムのインタロック方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1214167A JP2593222B2 (ja) | 1989-08-22 | 1989-08-22 | マルチプロセッサシステムのインタロック方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1214167A JP2593222B2 (ja) | 1989-08-22 | 1989-08-22 | マルチプロセッサシステムのインタロック方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0378071A JPH0378071A (ja) | 1991-04-03 |
JP2593222B2 true JP2593222B2 (ja) | 1997-03-26 |
Family
ID=16651344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1214167A Expired - Fee Related JP2593222B2 (ja) | 1989-08-22 | 1989-08-22 | マルチプロセッサシステムのインタロック方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2593222B2 (ja) |
-
1989
- 1989-08-22 JP JP1214167A patent/JP2593222B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0378071A (ja) | 1991-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4484267A (en) | Cache sharing control in a multiprocessor | |
US5237694A (en) | Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor | |
US6292705B1 (en) | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
US7523260B2 (en) | Propagating data using mirrored lock caches | |
US7653788B2 (en) | Cache coherency in a shared-memory multiprocessor system | |
US6098156A (en) | Method and system for rapid line ownership transfer for multiprocessor updates | |
EP0062165A2 (en) | Multiprocessors including private and shared caches | |
US20080120441A1 (en) | Cache coherence protocol with write-only permission | |
US5659709A (en) | Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus | |
US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
US5895484A (en) | Method and system for speculatively accessing cache memory data within a multiprocessor data-processing system using a cache controller | |
JP2000250883A (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
US7024520B2 (en) | System and method enabling efficient cache line reuse in a computer system | |
US5953510A (en) | Bidirectional data bus reservation priority controls having token logic | |
JP2708943B2 (ja) | キャッシュメモリ制御装置 | |
US7797495B1 (en) | Distributed directory cache | |
EP0374370B1 (en) | Method for storing into non-exclusive cache lines in multiprocessor systems | |
US5761724A (en) | Write-invalidate cache system for a split transaction bus based shared memory multiprocessor | |
US6055608A (en) | Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system | |
JP2593222B2 (ja) | マルチプロセッサシステムのインタロック方式 | |
KR20010015008A (ko) | 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템 | |
US6973548B1 (en) | Data acceleration mechanism for a multiprocessor shared memory system | |
JPH0511337B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |