JPH0962580A - マルチプロセッサ装置 - Google Patents
マルチプロセッサ装置Info
- Publication number
- JPH0962580A JPH0962580A JP7221638A JP22163895A JPH0962580A JP H0962580 A JPH0962580 A JP H0962580A JP 7221638 A JP7221638 A JP 7221638A JP 22163895 A JP22163895 A JP 22163895A JP H0962580 A JPH0962580 A JP H0962580A
- Authority
- JP
- Japan
- Prior art keywords
- data block
- cache
- memory
- processor
- shared data
- 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
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 キャッシュの一貫性保持動作の実施を都合の
良い時点まで遅延させ、共有データブロックに対しての
み一貫性保持を行うことで、例えば、緩いメモリ・コン
システンシ・モデルのシステムに、同期ポイント時点に
おける相互結合網上のトラフィックの集中による相互結
合網の利用効率の低下を避け、より性能の高いマルチプ
ロセッサ装置を提供する。 【解決手段】 プロセッサ10が例えばSTORE命令
を行った際には、キャッシュユニット11にデータが格
納されるが、この時点では主記憶ユニット12にはライ
トバックせじ、プロセッサ10が特別な同期命令を発行
した場合に、はじめてライトバックする。
良い時点まで遅延させ、共有データブロックに対しての
み一貫性保持を行うことで、例えば、緩いメモリ・コン
システンシ・モデルのシステムに、同期ポイント時点に
おける相互結合網上のトラフィックの集中による相互結
合網の利用効率の低下を避け、より性能の高いマルチプ
ロセッサ装置を提供する。 【解決手段】 プロセッサ10が例えばSTORE命令
を行った際には、キャッシュユニット11にデータが格
納されるが、この時点では主記憶ユニット12にはライ
トバックせじ、プロセッサ10が特別な同期命令を発行
した場合に、はじめてライトバックする。
Description
【0001】
【発明の属する技術分野】本発明はマルチプロセッサ装
置、詳しくは、各プロセッサがそれぞれキャッシュを備
えたマルチプロセッサ装置に関するものである。
置、詳しくは、各プロセッサがそれぞれキャッシュを備
えたマルチプロセッサ装置に関するものである。
【0002】
【従来の技術】並列計算機システムにおいては、プロセ
ッサから発行される主記憶に対するアクセス要求に高速
に応じるため、及び相互結合網のトラフィックを減じる
ために、各プロセッサにキャッシュ・メモリを付随させ
ることが多い。各プロセッサから発行されるメモリ・ア
クセスはキャッシュ・メモリ(及びキャッシュメモリコ
ントローラ)を介して行われ、キャッシュ・メモリ中に
はそれらメモリ・アクセス対象のデータ・ブロックのコ
ピーが置かれることになる。
ッサから発行される主記憶に対するアクセス要求に高速
に応じるため、及び相互結合網のトラフィックを減じる
ために、各プロセッサにキャッシュ・メモリを付随させ
ることが多い。各プロセッサから発行されるメモリ・ア
クセスはキャッシュ・メモリ(及びキャッシュメモリコ
ントローラ)を介して行われ、キャッシュ・メモリ中に
はそれらメモリ・アクセス対象のデータ・ブロックのコ
ピーが置かれることになる。
【0003】並列計算機システムにおいては、複数ある
キャッシュ・メモリ中に同一データ・ブロックのコピー
が各々存在する状況が生じ得るが、それらコピー間の一
貫性を保証するために、従来様々な方法が考案・実現さ
れている。
キャッシュ・メモリ中に同一データ・ブロックのコピー
が各々存在する状況が生じ得るが、それらコピー間の一
貫性を保証するために、従来様々な方法が考案・実現さ
れている。
【0004】プロセッサ間やプロセッサ・主記憶間を相
互に接続する結合網に、全てのトランザクションが監視
可能であるバスのようなものを用いた並列計算機システ
ムにおいては、スヌープ方式が一般的である。スヌープ
方式は、キャッシュ・メモリが結合網上に発行される全
トランザクションを監視し、トランザクション対象のデ
ータ・ブロックのコピーが自キャッシュ・メモリ中に存
在していた場合は、必要な一貫性保持動作を施すもので
ある。
互に接続する結合網に、全てのトランザクションが監視
可能であるバスのようなものを用いた並列計算機システ
ムにおいては、スヌープ方式が一般的である。スヌープ
方式は、キャッシュ・メモリが結合網上に発行される全
トランザクションを監視し、トランザクション対象のデ
ータ・ブロックのコピーが自キャッシュ・メモリ中に存
在していた場合は、必要な一貫性保持動作を施すもので
ある。
【0005】また、プロセッサ間やプロセッサ・主記憶
間を相互に接続する結合網に、全てのトランザクション
を監視することが困難である並列計算機システムにおい
ては、ディレクトリ方式が用いられる。ディレクトリ方
式は、データ・ブロック単位、あるいはそれに類する単
位毎に、いずれのキャッシュ・メモリ中にそのコピーが
存在するかというキャッシング情報を、ディレクトリと
呼ばれる記憶装置に格納・管理しておき、プロセッサか
らのトランザクション発行時にはディレクトリから得ら
れるキャッシング情報をもとにして、トランザクション
対象データ・ブロックのコピーを有するキャッシュ・メ
モリにトランザクションの発生を通知し、コピー間の一
貫性保持を図るものである。
間を相互に接続する結合網に、全てのトランザクション
を監視することが困難である並列計算機システムにおい
ては、ディレクトリ方式が用いられる。ディレクトリ方
式は、データ・ブロック単位、あるいはそれに類する単
位毎に、いずれのキャッシュ・メモリ中にそのコピーが
存在するかというキャッシング情報を、ディレクトリと
呼ばれる記憶装置に格納・管理しておき、プロセッサか
らのトランザクション発行時にはディレクトリから得ら
れるキャッシング情報をもとにして、トランザクション
対象データ・ブロックのコピーを有するキャッシュ・メ
モリにトランザクションの発生を通知し、コピー間の一
貫性保持を図るものである。
【0006】
【発明が解決しようとする課題】従来、並列計算機シス
テムにおける複数キャッシュ・メモリ中に存在するコピ
ー間の一貫性をとるための動作は、上述の通りトランザ
クション毎に行われるものであった。しかしこれは、メ
モリに対するアクセス・レイテンシを抑えるために様々
考案/実現されている緩いメモリ・コンシステンシ・モ
デルにはそぐわないものである。
テムにおける複数キャッシュ・メモリ中に存在するコピ
ー間の一貫性をとるための動作は、上述の通りトランザ
クション毎に行われるものであった。しかしこれは、メ
モリに対するアクセス・レイテンシを抑えるために様々
考案/実現されている緩いメモリ・コンシステンシ・モ
デルにはそぐわないものである。
【0007】一般に、緩いメモリ・コンシステンシ・モ
デルでは、処理の過程に同期ポイントを定め、処理が同
期ポイントに達した時点で、それまでに発行したメモリ
・トランザクションをシステム中に反映させることを義
務付けている。このことは、同期ポイント以前には各メ
モリ・トランザクション結果を反映させる必要がないこ
とを意味する。即ち、緩いメモリ・コンシステンシ・モ
デルを採る並列計算機システムにおいて従来のキャッシ
ュ一貫性保持手法を用いた場合、その時点では不要な一
貫性保持動作がトランザクション毎に入ることとなり、
そのオーバヘッドは、緩いメモリ・コンシステンシ・モ
デルの目的に反し、不用意にメモリ・アクセス・レイテ
ンシを嵩ませていると言える。
デルでは、処理の過程に同期ポイントを定め、処理が同
期ポイントに達した時点で、それまでに発行したメモリ
・トランザクションをシステム中に反映させることを義
務付けている。このことは、同期ポイント以前には各メ
モリ・トランザクション結果を反映させる必要がないこ
とを意味する。即ち、緩いメモリ・コンシステンシ・モ
デルを採る並列計算機システムにおいて従来のキャッシ
ュ一貫性保持手法を用いた場合、その時点では不要な一
貫性保持動作がトランザクション毎に入ることとなり、
そのオーバヘッドは、緩いメモリ・コンシステンシ・モ
デルの目的に反し、不用意にメモリ・アクセス・レイテ
ンシを嵩ませていると言える。
【0008】しかし、キャッシュの一貫性保持動作の実
施を、緩いメモリ・コンシステンシ・モデルでメモリ・
トランザクションを反映する必要が生じる同期ポイント
の時点にまで遅延させることによって、不要なキャッシ
ュ一貫性保持動作によるオーバーヘッドを削減するよう
なシステムにおいては、同期ポイントの時点において集
中的にキャッシュの一貫性保持動作が行われるため、同
期ポイントの時点で相互結合網上に集中的にトラフィッ
クが発生することになり、その結果、相互結合網の利用
効率が極端に低下する恐れがあった。
施を、緩いメモリ・コンシステンシ・モデルでメモリ・
トランザクションを反映する必要が生じる同期ポイント
の時点にまで遅延させることによって、不要なキャッシ
ュ一貫性保持動作によるオーバーヘッドを削減するよう
なシステムにおいては、同期ポイントの時点において集
中的にキャッシュの一貫性保持動作が行われるため、同
期ポイントの時点で相互結合網上に集中的にトラフィッ
クが発生することになり、その結果、相互結合網の利用
効率が極端に低下する恐れがあった。
【0009】
【課題を解決するための手段】本発明はかかる問題点に
鑑みなされたものであり、キャッシュの一貫性保持動作
の実施を都合の良い時点まで遅延させることで、例え
ば、緩いメモリ・コンシステンシ・モデルのシステム
に、同期ポイント時点における相互結合網上のトラフィ
ックの集中による相互結合網の利用効率の低下を避け、
より性能の高いマルチプロセッサ装置を提供しようとす
るものである。
鑑みなされたものであり、キャッシュの一貫性保持動作
の実施を都合の良い時点まで遅延させることで、例え
ば、緩いメモリ・コンシステンシ・モデルのシステム
に、同期ポイント時点における相互結合網上のトラフィ
ックの集中による相互結合網の利用効率の低下を避け、
より性能の高いマルチプロセッサ装置を提供しようとす
るものである。
【0010】この課題を解決するため、例えば本発明は
以下の構成を備える。すなわち、複数のプロセッサ及び
それらに付随するキャッシュメモリ、主記憶装置、及
び、キャッシュ・メモリと記憶装置間を相互に接続する
結合網からなる並列計算機システムにおいて、各プロセ
ッサの処理が所定の命令発行を行った場合に、当該命令
発行に基づいて各キャッシュ・メモリ中に存在するデー
タブロックの一貫性保持を行うことを特徴とする。
以下の構成を備える。すなわち、複数のプロセッサ及び
それらに付随するキャッシュメモリ、主記憶装置、及
び、キャッシュ・メモリと記憶装置間を相互に接続する
結合網からなる並列計算機システムにおいて、各プロセ
ッサの処理が所定の命令発行を行った場合に、当該命令
発行に基づいて各キャッシュ・メモリ中に存在するデー
タブロックの一貫性保持を行うことを特徴とする。
【0011】ここで本発明の好適な実施形態に従えば、
一貫性保持は、各プロセッサから発行されたメモリ・ト
ランザクションが、他のキャッシュ中に共有される可能
性があるデータブロックに対するメモリ・トランザクシ
ョンであることを識別する識別手段と、前記共有データ
ブロックと識別されたメモリ・トランザクションによっ
て格納されたキャッシュ中のデータブロックが共有デー
タブロックであることを保持する保持手段と、前記保持
手段により保持されている情報を用いて一貫性保持動作
を実施するデータブロックを選択する選択手段を備える
ことが望ましい。これによって、プロセッサが予め定め
た段階において、共有データブロックに対してのみシス
テムにおける一貫性保持動作を実施する。
一貫性保持は、各プロセッサから発行されたメモリ・ト
ランザクションが、他のキャッシュ中に共有される可能
性があるデータブロックに対するメモリ・トランザクシ
ョンであることを識別する識別手段と、前記共有データ
ブロックと識別されたメモリ・トランザクションによっ
て格納されたキャッシュ中のデータブロックが共有デー
タブロックであることを保持する保持手段と、前記保持
手段により保持されている情報を用いて一貫性保持動作
を実施するデータブロックを選択する選択手段を備える
ことが望ましい。これによって、プロセッサが予め定め
た段階において、共有データブロックに対してのみシス
テムにおける一貫性保持動作を実施する。
【0012】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳細に説明する。図1は、本発明を実現する
ためシステムの第1の実施形態の構成を示すブロック図
である。図中、10,20はプロセッサであり、それぞ
れプロセッサバス14,24を介してキャッシュユニッ
ト11,21に接続されている。
施の形態を詳細に説明する。図1は、本発明を実現する
ためシステムの第1の実施形態の構成を示すブロック図
である。図中、10,20はプロセッサであり、それぞ
れプロセッサバス14,24を介してキャッシュユニッ
ト11,21に接続されている。
【0013】プロセッサ10は、メモリ・アクセスを多
重発行することが可能であり、多重発行されたメモリ・
アクセスを緩いメモリ・コンシステンシ・モデルによる
データ一貫性保証の下で完了させるための特別な命令
(同期命令)を持つものとする。
重発行することが可能であり、多重発行されたメモリ・
アクセスを緩いメモリ・コンシステンシ・モデルによる
データ一貫性保証の下で完了させるための特別な命令
(同期命令)を持つものとする。
【0014】また、プロセッサ10は、共有データブロ
ック(例えば、クリティカルセクション内で読み書きさ
れるデータブロック)に対するメモリ・アクセスを開始
することを宣言する特別な命令(以下共有データブロッ
クアクセス開始命令),共有データブロックに対するメ
モリ・アクセスを終了することを宣言する特別な命令
(以下共有データブロックアクセス終了命令)を持ち、こ
れらの命令はプロセッサコントロールバス143(後述)
によって外部モジュールに識別されるものとするが、共
有データブロック,非共有データブロックに対するメモ
リ・アクセスの開始,終了を明示する機構は本実施の形
態に制限されるものではない。また、共有データブロッ
クアクセス開始命令は共有データブロックに対する排他
的な使用権を確保するものであり、共有データブロック
アクセス終了命令は共有データブロックに対する排他的
な使用権を解放するものであるとし、共有データブロッ
クアクセス開始命令,共有データブロックアクセス終了
命令は、ともに主記憶ユニットまで完了の通知が必要で
あるものとする。
ック(例えば、クリティカルセクション内で読み書きさ
れるデータブロック)に対するメモリ・アクセスを開始
することを宣言する特別な命令(以下共有データブロッ
クアクセス開始命令),共有データブロックに対するメ
モリ・アクセスを終了することを宣言する特別な命令
(以下共有データブロックアクセス終了命令)を持ち、こ
れらの命令はプロセッサコントロールバス143(後述)
によって外部モジュールに識別されるものとするが、共
有データブロック,非共有データブロックに対するメモ
リ・アクセスの開始,終了を明示する機構は本実施の形
態に制限されるものではない。また、共有データブロッ
クアクセス開始命令は共有データブロックに対する排他
的な使用権を確保するものであり、共有データブロック
アクセス終了命令は共有データブロックに対する排他的
な使用権を解放するものであるとし、共有データブロッ
クアクセス開始命令,共有データブロックアクセス終了
命令は、ともに主記憶ユニットまで完了の通知が必要で
あるものとする。
【0015】またキャッシュユニット11,21は、そ
れぞれローカルバス15を介して主記憶ユニット12及
び、バスアービタ16と接続される。またキャッシュユ
ニット11,21は、プロセッサの要求に基づいて、キ
ャッシュユニット11,21の内部のデータブロックの
データエントリの更新を行ったり、主記憶ユニット12
に反映させたり等すると共に、ローカルバス15上を流
れるアドレス情報等をスヌープしてキャッシュ一貫性保
持等の動作を実施する。バスアービタ16はローカルバ
ス15の利用権を調停するためのものである。本実施の
形態では、共有バスに接続されたマルチプロセッサシス
テム構成を例にあげているが、これらの構成は本実施の
形態に制限されるものではない。
れぞれローカルバス15を介して主記憶ユニット12及
び、バスアービタ16と接続される。またキャッシュユ
ニット11,21は、プロセッサの要求に基づいて、キ
ャッシュユニット11,21の内部のデータブロックの
データエントリの更新を行ったり、主記憶ユニット12
に反映させたり等すると共に、ローカルバス15上を流
れるアドレス情報等をスヌープしてキャッシュ一貫性保
持等の動作を実施する。バスアービタ16はローカルバ
ス15の利用権を調停するためのものである。本実施の
形態では、共有バスに接続されたマルチプロセッサシス
テム構成を例にあげているが、これらの構成は本実施の
形態に制限されるものではない。
【0016】本実施の形態では、プロセッサから明示的
に与えられる同期命令発行時点でデータブロックの一貫
性が保証されるような緩いメモリ・コンシステンシ・モ
デルを採用した一貫性制御が行われる図1に示すような
構成の情報処理システムにおいて、キャッシュの一貫性
保持動作を制御するキャッシュ制御シーケンサが、 (1)共有データブロックに対するメモリ・アクセスを開
始する命令(共有データブロックアクセス開始命令)がプ
ロセッサから発行された場合に、以後のメモリ・アクセ
スに対して共有データブロックに対するメモリ・アクセ
スを終了する命令(共有データブロックアクセス終了命
令)がプロセッサから発行されるまで、共有データブロ
ック・アクセスフラグをセットする。
に与えられる同期命令発行時点でデータブロックの一貫
性が保証されるような緩いメモリ・コンシステンシ・モ
デルを採用した一貫性制御が行われる図1に示すような
構成の情報処理システムにおいて、キャッシュの一貫性
保持動作を制御するキャッシュ制御シーケンサが、 (1)共有データブロックに対するメモリ・アクセスを開
始する命令(共有データブロックアクセス開始命令)がプ
ロセッサから発行された場合に、以後のメモリ・アクセ
スに対して共有データブロックに対するメモリ・アクセ
スを終了する命令(共有データブロックアクセス終了命
令)がプロセッサから発行されるまで、共有データブロ
ック・アクセスフラグをセットする。
【0017】(2)主記憶にその値を反映していない状態
(以下DIRTY状態)にあるキャッシュのデータブロック
を、共有データブロックであるかどうか判別し、同期命
令発行時点で共有データブロックのみの主記憶へのライ
トバック処理、及び必要ならば一貫性保持動作を実行す
る。
(以下DIRTY状態)にあるキャッシュのデータブロック
を、共有データブロックであるかどうか判別し、同期命
令発行時点で共有データブロックのみの主記憶へのライ
トバック処理、及び必要ならば一貫性保持動作を実行す
る。
【0018】という動作を行うことによって、同期命令
発行時点で集中的に発生する主記憶へのライトバック処
理トラフィックや一貫性保持動作・トラフィックのうち
非共有データブロックに対するトラフィックを発生させ
ないことを実現している。
発行時点で集中的に発生する主記憶へのライトバック処
理トラフィックや一貫性保持動作・トラフィックのうち
非共有データブロックに対するトラフィックを発生させ
ないことを実現している。
【0019】図2は、本実施の形態の一部分であるキャ
ッシュユニットの構成を示す図である。図2において
は、キャッシュユニット11を例にあげているが、キャ
ッシュユニット21についても同様な構成をとるもので
ある。
ッシュユニットの構成を示す図である。図2において
は、キャッシュユニット11を例にあげているが、キャ
ッシュユニット21についても同様な構成をとるもので
ある。
【0020】図中、144はプロセッサアドレスバス1
41と接続するためのプロセッサアドレスバスインタフ
ェースであり、145はプロセッサデータバス142と
接続するためのプロセッサデータバスインタフェースで
あり、146はプロセッサコントロールバス143と接
続するためのプロセッサコントロールバスインタフェー
スである。
41と接続するためのプロセッサアドレスバスインタフ
ェースであり、145はプロセッサデータバス142と
接続するためのプロセッサデータバスインタフェースで
あり、146はプロセッサコントロールバス143と接
続するためのプロセッサコントロールバスインタフェー
スである。
【0021】また、154はローカルアドレスバス15
1と接続するためのローカルアドレスバスインタフェー
スであり、155はローカルデータバス152と接続す
るためのローカルデータバスインタフェースであり、1
56はローカルコントロールバス153と接続するため
のローカルコントロールバスインタフェースである。
1と接続するためのローカルアドレスバスインタフェー
スであり、155はローカルデータバス152と接続す
るためのローカルデータバスインタフェースであり、1
56はローカルコントロールバス153と接続するため
のローカルコントロールバスインタフェースである。
【0022】115はデータを保持するためのデータエ
ントリであり、112はデータエントリ115のアドレ
スを保持するためのアドレスタグであり、113はデー
タエントリ115の状態を保持するための状態フラグで
あり、114はデータエントリ115が共有データブロ
ックであるかどうかを保持するための共有データブロッ
クフラグである。これらの部分は例えばSRAMのよう
な記憶素子の集合であるとするが、これは本実施形態に
制限されるものではない。
ントリであり、112はデータエントリ115のアドレ
スを保持するためのアドレスタグであり、113はデー
タエントリ115の状態を保持するための状態フラグで
あり、114はデータエントリ115が共有データブロ
ックであるかどうかを保持するための共有データブロッ
クフラグである。これらの部分は例えばSRAMのよう
な記憶素子の集合であるとするが、これは本実施形態に
制限されるものではない。
【0023】116はアドレスタグ112の内容とプロ
セッサアドレスバス141,ローカルアドレスバス15
1上のアドレスを比較する比較器である。また、117
は比較器116の比較結果からデータエントリ内のデー
タを選択する選択器である。
セッサアドレスバス141,ローカルアドレスバス15
1上のアドレスを比較する比較器である。また、117
は比較器116の比較結果からデータエントリ内のデー
タを選択する選択器である。
【0024】また、図中、118はプロセッサ10が共
有データブロックに対するアクセス中であることを示す
共有データブロック・アクセスフラグであり、プロセッ
サ10から発行された共有データブロックアクセス開始
命令が完了するとセットされ、プロセッサ10から発行
された共有データブロックアクセス終了命令が完了する
とリセットされるものとする。
有データブロックに対するアクセス中であることを示す
共有データブロック・アクセスフラグであり、プロセッ
サ10から発行された共有データブロックアクセス開始
命令が完了するとセットされ、プロセッサ10から発行
された共有データブロックアクセス終了命令が完了する
とリセットされるものとする。
【0025】111はキャッシュユニット内の各モジュ
ールを制御するキャッシュ制御シーケンサである。
ールを制御するキャッシュ制御シーケンサである。
【0026】本実施の形態では、キャッシュユニットは
1キャッシュ・ラインあたり256バイト,1セットあ
たり16キャッシュ・ラインの2ウェイ・セット・アソ
シアティブ構成をとっているが、これらの構成は本実施
の形態に制限されるものではない。
1キャッシュ・ラインあたり256バイト,1セットあ
たり16キャッシュ・ラインの2ウェイ・セット・アソ
シアティブ構成をとっているが、これらの構成は本実施
の形態に制限されるものではない。
【0027】図3は、キャッシュユニット11内のアド
レスタグ112,状態フラグ113,共有データブロッ
クフラグ114及びデータエントリ115の関係,及び
アドレス比較時のアドレス・フィールドを示したもので
ある。
レスタグ112,状態フラグ113,共有データブロッ
クフラグ114及びデータエントリ115の関係,及び
アドレス比較時のアドレス・フィールドを示したもので
ある。
【0028】図示において、32ビットのアドレス0x
f8000701(0xは16進数を示す)がプロセッ
サアドレスバス141又はローカルアドレスバス151
から渡された場合、アドレス比較がどのように行われる
かを説明する。
f8000701(0xは16進数を示す)がプロセッ
サアドレスバス141又はローカルアドレスバス151
から渡された場合、アドレス比較がどのように行われる
かを説明する。
【0029】本実施の形態では、キャッシュユニットは
1キャッシュ・ラインあたり256バイト,1セットあ
たり16キャッシュ・ラインの2ウェイ・セット・アソ
シアティブ構成をとっているため、アドレスタグ112
は20ビット、キャッシュ・ラインの選択に使用される
インデクスは4ビット、キャッシュ・ライン内のデータ
ブロックの位置を指定するオフセットは8ビットのフィ
ールドを持つ。渡されたアドレスの下位8ビットはオフ
セットフィールドであり、キャッシュ・ライン内のデー
タブロックの位置を指定する。渡されたアドレスの上位
20ビットはアドレスタグフィールドであり、アドレス
タグ112と比較される。尚、渡されたアドレスのオフ
セットフィールドとアドレスタグフィールドを除いた部
分はインデクスフィールドであり、セット内のキャッシ
ュ・ラインの位置を指定する。
1キャッシュ・ラインあたり256バイト,1セットあ
たり16キャッシュ・ラインの2ウェイ・セット・アソ
シアティブ構成をとっているため、アドレスタグ112
は20ビット、キャッシュ・ラインの選択に使用される
インデクスは4ビット、キャッシュ・ライン内のデータ
ブロックの位置を指定するオフセットは8ビットのフィ
ールドを持つ。渡されたアドレスの下位8ビットはオフ
セットフィールドであり、キャッシュ・ライン内のデー
タブロックの位置を指定する。渡されたアドレスの上位
20ビットはアドレスタグフィールドであり、アドレス
タグ112と比較される。尚、渡されたアドレスのオフ
セットフィールドとアドレスタグフィールドを除いた部
分はインデクスフィールドであり、セット内のキャッシ
ュ・ラインの位置を指定する。
【0030】比較器116はインデクスフィールドによ
り指定されたキャッシュ・ラインのアドレスタグに格納
されている値とプロセッサアドレスバス141又はロー
カルアドレスバス151から渡されたアドレスの上位2
0ビットとを比較する。上記比較結果が一致しており、
かつ、インデクスフィールドにより指定されたキャッシ
ュ・ラインの状態フラグ(状態フラグの状態の詳細につ
いては後述)が有効状態(CLEAN,又はDIRTY)の場合、キ
ャッシュ・ヒットとする(トランザクションがREADの場
合はキャッシュ・リードヒット、WRITEの場合はキャッ
シュ・ライトヒットと呼ぶ)。キャッシュ・ヒット以外
の場合はキャッシュ・ミスとする(トランザクションがR
EADの場合はキャッシュ・リードミス、WRITEの場合はキ
ャッシュ・ライトミスと呼ぶ)。
り指定されたキャッシュ・ラインのアドレスタグに格納
されている値とプロセッサアドレスバス141又はロー
カルアドレスバス151から渡されたアドレスの上位2
0ビットとを比較する。上記比較結果が一致しており、
かつ、インデクスフィールドにより指定されたキャッシ
ュ・ラインの状態フラグ(状態フラグの状態の詳細につ
いては後述)が有効状態(CLEAN,又はDIRTY)の場合、キ
ャッシュ・ヒットとする(トランザクションがREADの場
合はキャッシュ・リードヒット、WRITEの場合はキャッ
シュ・ライトヒットと呼ぶ)。キャッシュ・ヒット以外
の場合はキャッシュ・ミスとする(トランザクションがR
EADの場合はキャッシュ・リードミス、WRITEの場合はキ
ャッシュ・ライトミスと呼ぶ)。
【0031】図3において、アドレス0xf80007
01のオフセットフィールドは0x01であるため、キ
ャッシュ・ライン内のオフセットは1となる。アドレス
0xf8000701のインデクスフィールドは0x7
であるため、セット内のキャッシュ・ラインインデクス
は7となる。アドレス0xf8000701のアドレス
タグフィールドは0xf8000であり、キャッシュ・
ラインインデクス7に格納されているアドレスタグと比
較される。
01のオフセットフィールドは0x01であるため、キ
ャッシュ・ライン内のオフセットは1となる。アドレス
0xf8000701のインデクスフィールドは0x7
であるため、セット内のキャッシュ・ラインインデクス
は7となる。アドレス0xf8000701のアドレス
タグフィールドは0xf8000であり、キャッシュ・
ラインインデクス7に格納されているアドレスタグと比
較される。
【0032】図4は、各メモリトランザクション実行時
の状態フラグの状態遷移図を示したものである(以下キ
ャッシュユニット11の状態フラグとして説明する)。
図4において、状態INVALIDは当該状態フラグが管理す
るデータエントリが無効であることを示す。状態CLEAN
は当該状態フラグが管理するデータエントリが主記憶ユ
ニットからLOADされた後、1度も書き換えられていない
ことを示す。但し、当該データエントリには主記憶ユニ
ットと同一の値が格納されているが、他のキャッシュユ
ニットのデータエントリには最新の値が格納されている
可能性がある。状態DIRTYは当該状態フラグが管理する
データエントリが主記憶ユニットからLOADされた後、1
度以上最新の値で書き換えられ、かつ、主記憶にその値
を反映していないことを示す。当該データエントリには
最新の値が格納されている。各状態からの遷移条件は以
下のとおりであるとする。
の状態フラグの状態遷移図を示したものである(以下キ
ャッシュユニット11の状態フラグとして説明する)。
図4において、状態INVALIDは当該状態フラグが管理す
るデータエントリが無効であることを示す。状態CLEAN
は当該状態フラグが管理するデータエントリが主記憶ユ
ニットからLOADされた後、1度も書き換えられていない
ことを示す。但し、当該データエントリには主記憶ユニ
ットと同一の値が格納されているが、他のキャッシュユ
ニットのデータエントリには最新の値が格納されている
可能性がある。状態DIRTYは当該状態フラグが管理する
データエントリが主記憶ユニットからLOADされた後、1
度以上最新の値で書き換えられ、かつ、主記憶にその値
を反映していないことを示す。当該データエントリには
最新の値が格納されている。各状態からの遷移条件は以
下のとおりであるとする。
【0033】(1)INVALID状態にあるデータブロックに
対してプロセッサ10からLOAD命令が発行された場合、
状態フラグはCLEANに遷移する。
対してプロセッサ10からLOAD命令が発行された場合、
状態フラグはCLEANに遷移する。
【0034】(2)INVALID状態にあるデータブロックに
対してプロセッサ10からSTORE命令が発行された場
合、一旦キャッシュ・リードミス処理が実行され、状態
フラグがCLEANに遷移した後、キャッシュ・ライトヒッ
ト処理が実行され、状態フラグはDIRTYに遷移する。
対してプロセッサ10からSTORE命令が発行された場
合、一旦キャッシュ・リードミス処理が実行され、状態
フラグがCLEANに遷移した後、キャッシュ・ライトヒッ
ト処理が実行され、状態フラグはDIRTYに遷移する。
【0035】(3)CLEAN状態にあるデータブロックに対
してプロセッサ10からLOAD命令が発行された場合、状
態フラグはCLEANに遷移する。
してプロセッサ10からLOAD命令が発行された場合、状
態フラグはCLEANに遷移する。
【0036】(4)CLEAN状態にあるデータブロックに対
してプロセッサ10からSTORE命令が発行された場合、
状態フラグはDIRTYに遷移する。
してプロセッサ10からSTORE命令が発行された場合、
状態フラグはDIRTYに遷移する。
【0037】(5)CLEAN状態にあるデータブロックに対
して一貫性保持動作が実行された場合、状態フラグはIN
VALIDに遷移する。
して一貫性保持動作が実行された場合、状態フラグはIN
VALIDに遷移する。
【0038】(6)DIRTY状態にあるデータブロックに対
してプロセッサ10からLOAD命令が発行された場合、状
態フラグはDIRTYに遷移する。
してプロセッサ10からLOAD命令が発行された場合、状
態フラグはDIRTYに遷移する。
【0039】(7)DIRTY状態にあるデータブロックに対
してプロセッサ10からSTORE命令が発行された状態フ
ラグはDIRTYに遷移する。
してプロセッサ10からSTORE命令が発行された状態フ
ラグはDIRTYに遷移する。
【0040】(8)DIRTY状態にあるデータブロックに対
してプロセッサ10から同期命令が発行された場合、状
態フラグはCLEANに遷移する。
してプロセッサ10から同期命令が発行された場合、状
態フラグはCLEANに遷移する。
【0041】(9)DIRTY状態にあるデータブロックに対
して主記憶へのライトバック処理が実行された場合、状
態フラグはCLEANに遷移する。
して主記憶へのライトバック処理が実行された場合、状
態フラグはCLEANに遷移する。
【0042】(10)DIRTY状態にあるデータブロックに
対して一貫性保持動作が実行された場合、状態フラグは
INVALIDに遷移する。
対して一貫性保持動作が実行された場合、状態フラグは
INVALIDに遷移する。
【0043】図5は、LOAD命令実行の際の制御手順を示
したものである(以下LOAD命令がプロセッサ10から発
行されたものとして説明する)。
したものである(以下LOAD命令がプロセッサ10から発
行されたものとして説明する)。
【0044】図5において、プロセッサ10から発行さ
れるLOAD命令に対してアドレス比較を行い(ステップS
1)、キャッシュ・リードヒットした場合、キャッシュ
ユニット11は、プロセッサ10に対して自身に記憶さ
れているデータブロックを供給する(ステップS2)。
れるLOAD命令に対してアドレス比較を行い(ステップS
1)、キャッシュ・リードヒットした場合、キャッシュ
ユニット11は、プロセッサ10に対して自身に記憶さ
れているデータブロックを供給する(ステップS2)。
【0045】また、プロセッサ10から発行されるLOAD
命令に対してアドレス比較を行い、キャッシュ・リード
ミスした場合、キャッシュユニット11は、ローカルバ
ス15に対してリード要求を発行する(ステップS
3)。この場合、キャッシュ・リードミスしたデータブ
ロックがキャッシュユニット11に供給されるまで、キ
ャッシュユニット11はプロセッサ10に対して当該デ
ータブロックの供給を行わない。キャッシュユニット1
1は、ローカルアドレスバス151に対して当該リード
アクセスのアドレスを転送し、ローカルコントロールバ
ス153に対してリード要求を発行し、ローカルデータ
バス152にデータブロックが供給されるまで一貫性保
持動作に対するサービス及びプロセッサからのアクセス
要求に対するサービスを停止するものとするが、これは
本実施の形態に制限されるものではない。主記憶ユニッ
ト12は、リード要求,及び当該リードアクセスのアド
レスを受け付けてローカルデータバス152にデータブ
ロックを供給する(ステップS4)。キャッシュユニッ
ト11は、ローカルデータバス152に供給されたデー
タブロックをキャッシュユニット11内の当該データブ
ロックのエントリに置換し、当該データブロックの状態
フラグ113をCLEANとする(ステップS5)。共有デ
ータブロック・アクセスフラグ118がセットされてい
る場合、キャッシュユニット11内の当該データブロッ
クの共有データブロックフラグ114をセットする。共
有データブロック・アクセスフラグ118がリセットさ
れている場合、キャッシュユニット11内の当該データ
ブロックの共有データブロックフラグ114をリセット
する。キャッシュユニット11は、プロセッサ10に対
してデータブロックを供給する(ステップS6)。
命令に対してアドレス比較を行い、キャッシュ・リード
ミスした場合、キャッシュユニット11は、ローカルバ
ス15に対してリード要求を発行する(ステップS
3)。この場合、キャッシュ・リードミスしたデータブ
ロックがキャッシュユニット11に供給されるまで、キ
ャッシュユニット11はプロセッサ10に対して当該デ
ータブロックの供給を行わない。キャッシュユニット1
1は、ローカルアドレスバス151に対して当該リード
アクセスのアドレスを転送し、ローカルコントロールバ
ス153に対してリード要求を発行し、ローカルデータ
バス152にデータブロックが供給されるまで一貫性保
持動作に対するサービス及びプロセッサからのアクセス
要求に対するサービスを停止するものとするが、これは
本実施の形態に制限されるものではない。主記憶ユニッ
ト12は、リード要求,及び当該リードアクセスのアド
レスを受け付けてローカルデータバス152にデータブ
ロックを供給する(ステップS4)。キャッシュユニッ
ト11は、ローカルデータバス152に供給されたデー
タブロックをキャッシュユニット11内の当該データブ
ロックのエントリに置換し、当該データブロックの状態
フラグ113をCLEANとする(ステップS5)。共有デ
ータブロック・アクセスフラグ118がセットされてい
る場合、キャッシュユニット11内の当該データブロッ
クの共有データブロックフラグ114をセットする。共
有データブロック・アクセスフラグ118がリセットさ
れている場合、キャッシュユニット11内の当該データ
ブロックの共有データブロックフラグ114をリセット
する。キャッシュユニット11は、プロセッサ10に対
してデータブロックを供給する(ステップS6)。
【0046】次に、STORE命令実行の際の制御手順を図
6に従って説明する(以下STORE命令がプロセッサ10か
ら発行されたものとして説明する)。
6に従って説明する(以下STORE命令がプロセッサ10か
ら発行されたものとして説明する)。
【0047】図6において、プロセッサ10から発行さ
れるSTORE命令に対してアドレス比較を行い(ステップ
S10)、キャッシュ・ライトヒットした場合には、当
該データブロックの状態フラグをDIRTY状態とする(ス
テップS12、13)。プロセッサ10から発行される
STORE命令に対してアドレス比較を行い、キャッシュ・
ライトミスした場合には、キャッシュ・リードミス処理
を行った後、キャッシュ・ライトヒット処理を行うもの
とする(ステップS11)。
れるSTORE命令に対してアドレス比較を行い(ステップ
S10)、キャッシュ・ライトヒットした場合には、当
該データブロックの状態フラグをDIRTY状態とする(ス
テップS12、13)。プロセッサ10から発行される
STORE命令に対してアドレス比較を行い、キャッシュ・
ライトミスした場合には、キャッシュ・リードミス処理
を行った後、キャッシュ・ライトヒット処理を行うもの
とする(ステップS11)。
【0048】図7は、同期命令実行の際の制御手順を示
したものである(以下同期命令がプロセッサ10から発
行されたものとして説明する)。
したものである(以下同期命令がプロセッサ10から発
行されたものとして説明する)。
【0049】図示において、キャッシュユニット11に
共有データブロックフラグ114がセットされ、かつ、
DIRTY状態のデータブロックが1つ以上存在し(ステッ
プS20)、かつ、プロセッサ10から同期命令が発行
された場合、当該DIRTYブロックの主記憶へのライトバ
ック処理を実行し、当該データブロックの状態フラグを
CLEANにする(ステップS22、23)。
共有データブロックフラグ114がセットされ、かつ、
DIRTY状態のデータブロックが1つ以上存在し(ステッ
プS20)、かつ、プロセッサ10から同期命令が発行
された場合、当該DIRTYブロックの主記憶へのライトバ
ック処理を実行し、当該データブロックの状態フラグを
CLEANにする(ステップS22、23)。
【0050】本実施形態ではDIRTYブロックの主記憶へ
のライトバック処理はDIRTYブロックがなくなるまで繰
り返し実行されるものとするが、これは本実施形態に制
限されるものではない。
のライトバック処理はDIRTYブロックがなくなるまで繰
り返し実行されるものとするが、これは本実施形態に制
限されるものではない。
【0051】図8は、主記憶へのライトバック処理実行
の際の制御手順を示したものである(以下主記憶へのラ
イトバック処理がキャッシュユニット11から発行され
たものとして説明する)。
の際の制御手順を示したものである(以下主記憶へのラ
イトバック処理がキャッシュユニット11から発行され
たものとして説明する)。
【0052】図8において、キャッシュユニット11
は、ローカルコントロールバス153に対してライトバ
ック要求元情報、及びローカルアドレスバス151に対
して当該ライトバックアクセスのアドレスを転送し、ロ
ーカルコントロールバス153に対してライトバック要
求を発行し、ローカルデータバス152にライトバック
するデータブロックを供給する(ステップS30)。そ
して、ライトバックしたデータブロックが当該主記憶ユ
ニットのエントリに供給され、必要な一貫性保持動作が
完了し、主記憶へのライトバック処理が完了するまで実
行を停止する。
は、ローカルコントロールバス153に対してライトバ
ック要求元情報、及びローカルアドレスバス151に対
して当該ライトバックアクセスのアドレスを転送し、ロ
ーカルコントロールバス153に対してライトバック要
求を発行し、ローカルデータバス152にライトバック
するデータブロックを供給する(ステップS30)。そ
して、ライトバックしたデータブロックが当該主記憶ユ
ニットのエントリに供給され、必要な一貫性保持動作が
完了し、主記憶へのライトバック処理が完了するまで実
行を停止する。
【0053】主記憶ユニット12は、リード要求、及び
当該ライトバックアクセスのアドレス及びローカルデー
タバス152に供給されているデータブロックを受け付
けて当該データブロックのエントリにリードする。ま
た、同時にキャッシュユニット11以外のキャッシュユ
ニットにもデータのコピーが有効状態(CLEAN状態,もし
くはDIRTY状態)で保持されている場合は、有効状態で保
持しているキャッシュユニットはローカルバス15に転
送されるアドレスをスヌープして有効状態で保持してい
るデータブロックに対して一貫性保持動作を実行する
(ステップS31〜ステップS34)。
当該ライトバックアクセスのアドレス及びローカルデー
タバス152に供給されているデータブロックを受け付
けて当該データブロックのエントリにリードする。ま
た、同時にキャッシュユニット11以外のキャッシュユ
ニットにもデータのコピーが有効状態(CLEAN状態,もし
くはDIRTY状態)で保持されている場合は、有効状態で保
持しているキャッシュユニットはローカルバス15に転
送されるアドレスをスヌープして有効状態で保持してい
るデータブロックに対して一貫性保持動作を実行する
(ステップS31〜ステップS34)。
【0054】本実施形態では一貫性保持動作は無効化型
のトランザクションとするが、これは本実施形態に制限
されるものではない。
のトランザクションとするが、これは本実施形態に制限
されるものではない。
【0055】図9は、データブロックの置換実行の際の
制御手順を示したものである(以下キャッシュユニット
11がデータブロックの置換を実行するものとして説明
する)。
制御手順を示したものである(以下キャッシュユニット
11がデータブロックの置換を実行するものとして説明
する)。
【0056】図9において、キャッシュユニット11
は、データブロックの置換要求が発行された場合、置換
すべきデータブロックをLRU等のデータブロック置換
アルゴリズムにより、置換対象データブロックを検出す
る(ステップS40)。
は、データブロックの置換要求が発行された場合、置換
すべきデータブロックをLRU等のデータブロック置換
アルゴリズムにより、置換対象データブロックを検出す
る(ステップS40)。
【0057】当該置換対象データブロックがDIRTY状態
の場合(ステップS41)、DIRTYブロックの主記憶へ
のライトバック処理を実行する(ステップS42)。当
該置換対象データブロックがINVALID状態の場合や、当
該置換対象データブロックがCLEAN状態の場合、及び当
該置換対象データブロックがDIRTY状態で主記憶へのラ
イトバック処理が完了した場合、当該データブロックの
データエントリにデータブロックをLOADする(ステップ
S43、44)。
の場合(ステップS41)、DIRTYブロックの主記憶へ
のライトバック処理を実行する(ステップS42)。当
該置換対象データブロックがINVALID状態の場合や、当
該置換対象データブロックがCLEAN状態の場合、及び当
該置換対象データブロックがDIRTY状態で主記憶へのラ
イトバック処理が完了した場合、当該データブロックの
データエントリにデータブロックをLOADする(ステップ
S43、44)。
【0058】本手法の理解のために、まず本手法の特徴
である共有データブロックに対するメモリ・アクセスに
関しての一貫性保持動作が同期命令発行時点まで延期さ
れる例を説明する。
である共有データブロックに対するメモリ・アクセスに
関しての一貫性保持動作が同期命令発行時点まで延期さ
れる例を説明する。
【0059】具体的には、例えばプロセッサ10,20
が非共有データブロックであるアドレスf800000
0番地に対してLOAD命令を発行し、それぞれのLOAD命令
が完了した後で、プロセッサ10が非共有データブロッ
クであるアドレスf8000000番地に対してSTORE
命令を発行した場合、STORE命令発行時点、及びその後
の同期命令や共有データブロックアクセス開始命令発行
時点ではキャッシュユニット21に対して一貫性保持動
作は発行されない点、また、共有データブロックに対し
てメモリ・アクセスするために共有データブロックアク
セス開始命令を発行し、プロセッサ10が共有データブ
ロックであるアドレスf8010000番地に対してSTO
RE命令を発行した場合、STORE命令発行時点ではキャッ
シュユニット21に対して一貫性保持動作は発行され
ず、その後、同期命令がプロセッサ10から発行された
場合に、一貫性保持動作が実行される点がどのようにし
て実現するかを図10を参考にして説明する。
が非共有データブロックであるアドレスf800000
0番地に対してLOAD命令を発行し、それぞれのLOAD命令
が完了した後で、プロセッサ10が非共有データブロッ
クであるアドレスf8000000番地に対してSTORE
命令を発行した場合、STORE命令発行時点、及びその後
の同期命令や共有データブロックアクセス開始命令発行
時点ではキャッシュユニット21に対して一貫性保持動
作は発行されない点、また、共有データブロックに対し
てメモリ・アクセスするために共有データブロックアク
セス開始命令を発行し、プロセッサ10が共有データブ
ロックであるアドレスf8010000番地に対してSTO
RE命令を発行した場合、STORE命令発行時点ではキャッ
シュユニット21に対して一貫性保持動作は発行され
ず、その後、同期命令がプロセッサ10から発行された
場合に、一貫性保持動作が実行される点がどのようにし
て実現するかを図10を参考にして説明する。
【0060】図10は、本実施の形態の一貫性保持動作
の一例を示すタイミングチャート図である。
の一例を示すタイミングチャート図である。
【0061】アドレスf8000000番地,及びアド
レスf8010000番地が主記憶ユニット12に割り
当てられているものとして説明する。
レスf8010000番地が主記憶ユニット12に割り
当てられているものとして説明する。
【0062】但し、時刻1以前には共有データブロック
アクセス終了命令の実行が完了しているか、又は共有デ
ータブロックアクセス開始命令が実行されていないかの
どちらかで、共有データブロック・アクセスフラグ11
8はリセットされた状態であり、かつ、アドレスf80
00000番地,及びアドレスf8010000番地の
どちらもキャッシュユニット内にコピーをLOADしていな
いとする。
アクセス終了命令の実行が完了しているか、又は共有デ
ータブロックアクセス開始命令が実行されていないかの
どちらかで、共有データブロック・アクセスフラグ11
8はリセットされた状態であり、かつ、アドレスf80
00000番地,及びアドレスf8010000番地の
どちらもキャッシュユニット内にコピーをLOADしていな
いとする。
【0063】時刻1では、プロセッサ10,20が非共
有データブロックとなるアドレスf8000000番地
に対してLOAD命令を発行し、それぞれが主記憶ユニット
12からLOADを完了している。このとき、アドレスf8
000000番地に対応するキャッシュユニット11,
21の内の状態フラグ113,213は、それぞれCLEA
Nであり、かつ、共有データブロックフラグ114はリ
セットされている。
有データブロックとなるアドレスf8000000番地
に対してLOAD命令を発行し、それぞれが主記憶ユニット
12からLOADを完了している。このとき、アドレスf8
000000番地に対応するキャッシュユニット11,
21の内の状態フラグ113,213は、それぞれCLEA
Nであり、かつ、共有データブロックフラグ114はリ
セットされている。
【0064】時刻2では、プロセッサ10が非共有デー
タブロックとなるアドレスf800000番地に対して
STORE命令を発行し、STOREが完了している。このとき、
ローカルバスに対するアクセス,及び一貫性保持動作は
発生しない。キャッシュ11内の当該データブロックの
状態フラグ113はプロセッサ10の発行したSTORE命
令の結果、DIRTYになっており、かつ、共有データブロ
ック・アクセスフラグ118がリセットされているた
め、当該データブロックの共有データブロックフラグ1
14はリセットされる。
タブロックとなるアドレスf800000番地に対して
STORE命令を発行し、STOREが完了している。このとき、
ローカルバスに対するアクセス,及び一貫性保持動作は
発生しない。キャッシュ11内の当該データブロックの
状態フラグ113はプロセッサ10の発行したSTORE命
令の結果、DIRTYになっており、かつ、共有データブロ
ック・アクセスフラグ118がリセットされているた
め、当該データブロックの共有データブロックフラグ1
14はリセットされる。
【0065】時刻3では、プロセッサ10が共有データ
ブロックに対してメモリ・アクセスを開始するために、
共有データブロックアクセス開始命令を発行し、共有デ
ータブロックアクセス開始命令が完了している。
ブロックに対してメモリ・アクセスを開始するために、
共有データブロックアクセス開始命令を発行し、共有デ
ータブロックアクセス開始命令が完了している。
【0066】時刻4では、プロセッサ10が共有データ
ブロックとなるアドレスf8010000番地に対して
STORE命令を発行し、STORE命令が完了している。このと
き、ローカルバスに対するアクセス,及び一貫性保持動
作は発生しない。キャッシュ11内の当該データブロッ
クの状態フラグ113はプロセッサ10の発行したSTOR
E命令の結果、DIRTYになっており、かつ、時刻2で完了
した共有データブロックアクセス開始命令により、共有
データブロック・アクセスフラグ118がセットされて
いるため、共有データブロックフラグ114がセットさ
れる。
ブロックとなるアドレスf8010000番地に対して
STORE命令を発行し、STORE命令が完了している。このと
き、ローカルバスに対するアクセス,及び一貫性保持動
作は発生しない。キャッシュ11内の当該データブロッ
クの状態フラグ113はプロセッサ10の発行したSTOR
E命令の結果、DIRTYになっており、かつ、時刻2で完了
した共有データブロックアクセス開始命令により、共有
データブロック・アクセスフラグ118がセットされて
いるため、共有データブロックフラグ114がセットさ
れる。
【0067】時刻5では、プロセッサ10が共有データ
ブロックに関するメモリ・アクセスを終了し、共有デー
タブロックアクセス終了命令を発行し、共有データブロ
ックアクセス終了命令が完了している。
ブロックに関するメモリ・アクセスを終了し、共有デー
タブロックアクセス終了命令を発行し、共有データブロ
ックアクセス終了命令が完了している。
【0068】時刻6では、プロセッサ10が同期命令を
発行している。
発行している。
【0069】時刻7では、時刻6で発行されたプロセッ
サ10の同期命令により、キャッシュ11内にDIRTYで
保持されているデータブロックのうち、共有データブロ
ックフラグ114がセットされている共有データブロッ
クであるアドレスf8010000番地の主記憶へのラ
イトバック処理が生じている。同じくキャッシュ11内
にDIRTYで保持されているアドレスf8000000番
地のデータブロックは、共有データブロックフラグ11
4がリセットされている非共有データブロックであるた
め主記憶へのライトバック処理は生じない。
サ10の同期命令により、キャッシュ11内にDIRTYで
保持されているデータブロックのうち、共有データブロ
ックフラグ114がセットされている共有データブロッ
クであるアドレスf8010000番地の主記憶へのラ
イトバック処理が生じている。同じくキャッシュ11内
にDIRTYで保持されているアドレスf8000000番
地のデータブロックは、共有データブロックフラグ11
4がリセットされている非共有データブロックであるた
め主記憶へのライトバック処理は生じない。
【0070】<第2の実施の形態>次に、第2の実施形
態について説明するが、システムの構成及び,キャッシ
ュユニットの構成及び制御等については、上記第1の実
施形態とほぼ同じであるので説明は省略し、異なる点の
みについて説明する。
態について説明するが、システムの構成及び,キャッシ
ュユニットの構成及び制御等については、上記第1の実
施形態とほぼ同じであるので説明は省略し、異なる点の
みについて説明する。
【0071】図1において、プロセッサ10は、メモリ
・アクセスを多重発行することが可能であり、多重発行
されたメモリ・アクセスを緩いメモリ・コンシステンシ
・モデルによるデータ一貫性保証の下で完了させるため
の特別な命令(同期命令)を持つものとするが、プロセッ
サ10は、共有データブロックに対するメモリ・アクセ
スを開始することを宣言する特別な命令(共有データブ
ロックアクセス開始命令),及び共有データブロックに
対するメモリ・アクセスを終了することを宣言する特別
な命令(共有データブロックアクセス終了命令)を持たな
いものとする。
・アクセスを多重発行することが可能であり、多重発行
されたメモリ・アクセスを緩いメモリ・コンシステンシ
・モデルによるデータ一貫性保証の下で完了させるため
の特別な命令(同期命令)を持つものとするが、プロセッ
サ10は、共有データブロックに対するメモリ・アクセ
スを開始することを宣言する特別な命令(共有データブ
ロックアクセス開始命令),及び共有データブロックに
対するメモリ・アクセスを終了することを宣言する特別
な命令(共有データブロックアクセス終了命令)を持たな
いものとする。
【0072】本第2の実施形態では、実施の形態1の共
有データブロックアクセス開始命令,及び共有データブ
ロックアクセス終了命令の代りに、共有データブロック
アクセス開始アドレスに共有データブロックに対するメ
モリ・アクセスを開始したことを示す値をSTOREするこ
とにより、共有データブロックに対するメモリ・アクセ
スを開始することを宣言し、共有データブロックアクセ
ス開始アドレスに共有データブロックに対するメモリ・
アクセスを終了したことを示す値をSTOREすることによ
り、共有データブロックに対するメモリ・アクセスを終
了することを宣言するものとする。また、共有データブ
ロックに対するメモリ・アクセスの開始・終了を共有デ
ータブロックアクセス開始アドレスにSTOREされている
値で判断することにより、キャッシュユニット11は、
共有データブロック・アクセスフラグ118を、プロセ
ッサ10が共有データブロックアクセス開始アドレスに
共有データブロックに対するメモリ・アクセスを開始し
たことを示す値をSTOREするとセットし、共有データブ
ロックアクセス開始アドレスに共有データブロックに対
するメモリ・アクセスを終了したことを示す値をSTORE
するとリセットするものとする。
有データブロックアクセス開始命令,及び共有データブ
ロックアクセス終了命令の代りに、共有データブロック
アクセス開始アドレスに共有データブロックに対するメ
モリ・アクセスを開始したことを示す値をSTOREするこ
とにより、共有データブロックに対するメモリ・アクセ
スを開始することを宣言し、共有データブロックアクセ
ス開始アドレスに共有データブロックに対するメモリ・
アクセスを終了したことを示す値をSTOREすることによ
り、共有データブロックに対するメモリ・アクセスを終
了することを宣言するものとする。また、共有データブ
ロックに対するメモリ・アクセスの開始・終了を共有デ
ータブロックアクセス開始アドレスにSTOREされている
値で判断することにより、キャッシュユニット11は、
共有データブロック・アクセスフラグ118を、プロセ
ッサ10が共有データブロックアクセス開始アドレスに
共有データブロックに対するメモリ・アクセスを開始し
たことを示す値をSTOREするとセットし、共有データブ
ロックアクセス開始アドレスに共有データブロックに対
するメモリ・アクセスを終了したことを示す値をSTORE
するとリセットするものとする。
【0073】本実施形態では、プロセッサから明示的に
与えられる同期命令発行時点でデータブロックの一貫性
が保証されるような緩いメモリ・コンシステンシ・モデ
ルを採用した一貫性制御が行われる図1に示すような構
成の情報処理システムにおいて、キャッシュの一貫性保
持動作を制御するキャッシュ制御シーケンサが、共有デ
ータブロックアクセス開始アドレスに共有データブロッ
クに対するメモリ・アクセスを開始したことを示す値を
STOREした場合に、以後のメモリ・アクセスに対して共
有データブロックアクセス開始アドレスに共有データブ
ロックに対するメモリ・アクセスを終了したことを示す
値をSTOREするまで、共有データブロック・アクセスフ
ラグをセットし、主記憶にその値を反映していない状態
(以下DIRTY状態)にあるキャッシュのデータブロック
を、共有データブロックであるかどうか判別し、同期命
令発行時点で共有データブロックのみの主記憶へのライ
トバック処理、及び必要ならば一貫性保持動作を実行す
ることによって、同期命令発行時点で集中的に発生する
主記憶へのライトバック処理トラフィックや一貫性保持
動作・トラフィックのうち非共有データブロックに対す
るトラフィックを発生させないことを実現している。
与えられる同期命令発行時点でデータブロックの一貫性
が保証されるような緩いメモリ・コンシステンシ・モデ
ルを採用した一貫性制御が行われる図1に示すような構
成の情報処理システムにおいて、キャッシュの一貫性保
持動作を制御するキャッシュ制御シーケンサが、共有デ
ータブロックアクセス開始アドレスに共有データブロッ
クに対するメモリ・アクセスを開始したことを示す値を
STOREした場合に、以後のメモリ・アクセスに対して共
有データブロックアクセス開始アドレスに共有データブ
ロックに対するメモリ・アクセスを終了したことを示す
値をSTOREするまで、共有データブロック・アクセスフ
ラグをセットし、主記憶にその値を反映していない状態
(以下DIRTY状態)にあるキャッシュのデータブロック
を、共有データブロックであるかどうか判別し、同期命
令発行時点で共有データブロックのみの主記憶へのライ
トバック処理、及び必要ならば一貫性保持動作を実行す
ることによって、同期命令発行時点で集中的に発生する
主記憶へのライトバック処理トラフィックや一貫性保持
動作・トラフィックのうち非共有データブロックに対す
るトラフィックを発生させないことを実現している。
【0074】以上説明したように、本実施形態によれ
ば、緩いメモリ・コンシステンシ・モデルを採用し、相
互結合網で互いに結合された並列計算機システムにおい
て、その性能をより向上させるためのキャッシュ・メモ
リ及びキャッシュ・メモリの一貫性保持動作機構を提供
し、同期ポイント時点に集中する相互結合網上のトラフ
ィックを共有データブロックに対するもののみに限定し
て発生させることで、相互結合網の利用効率低下,及び
同期動作に伴う処理のオーバーヘッドを軽減することが
可能であり、システム全体の処理能力を向上させるとい
う効果がある。
ば、緩いメモリ・コンシステンシ・モデルを採用し、相
互結合網で互いに結合された並列計算機システムにおい
て、その性能をより向上させるためのキャッシュ・メモ
リ及びキャッシュ・メモリの一貫性保持動作機構を提供
し、同期ポイント時点に集中する相互結合網上のトラフ
ィックを共有データブロックに対するもののみに限定し
て発生させることで、相互結合網の利用効率低下,及び
同期動作に伴う処理のオーバーヘッドを軽減することが
可能であり、システム全体の処理能力を向上させるとい
う効果がある。
【0075】尚、本願発明は複数のプロセッサ(上記実
施形態では2個としたがそれ以上であっても勿論構わな
い)に適合することに特徴があるのであって、そのシス
テムあるいは装置は如何なる用途に用いられるものであ
っても良いし、汎用のコンピュータ装置であっても良い
のは勿論である。
施形態では2個としたがそれ以上であっても勿論構わな
い)に適合することに特徴があるのであって、そのシス
テムあるいは装置は如何なる用途に用いられるものであ
っても良いし、汎用のコンピュータ装置であっても良い
のは勿論である。
【0076】
【発明の効果】以上説明したように、本発明によれば、
キャッシュの一貫性保持動作の実施を都合の良い時点ま
で遅延させ、共有データブロックに対してのみ一貫性保
持を行うことで、例えば、緩いメモリ・コンシステンシ
・モデルのシステムに、同期ポイント時点における相互
結合網上のトラフィックの集中による相互結合網の利用
効率の低下を避け、より性能の高いマルチプロセッサ装
置が提供できる。
キャッシュの一貫性保持動作の実施を都合の良い時点ま
で遅延させ、共有データブロックに対してのみ一貫性保
持を行うことで、例えば、緩いメモリ・コンシステンシ
・モデルのシステムに、同期ポイント時点における相互
結合網上のトラフィックの集中による相互結合網の利用
効率の低下を避け、より性能の高いマルチプロセッサ装
置が提供できる。
【0077】
【図1】本発明の実施形態における情報処理システムの
プロセッサ周辺の回路構成を示す図である。
プロセッサ周辺の回路構成を示す図である。
【図2】実施形態におけるキャッシュユニットの構成を
示す図である。
示す図である。
【図3】実施形態のキャッシュユニットにおけるアドレ
ス比較を説明する図である。
ス比較を説明する図である。
【図4】実施形態の状態フラグの状態遷移図である。
【図5】実施形態においてキャッシュユニットがLOAD命
令実行時に行う処理のチャートである。
令実行時に行う処理のチャートである。
【図6】実施形態においてキャッシュユニットがSTORE
命令命令実行時に行う処理のチャートである。
命令命令実行時に行う処理のチャートである。
【図7】実施形態においてキャッシュユニットが同期命
令実行時に行う処理のチャートである。
令実行時に行う処理のチャートである。
【図8】実施形態において主記憶へのライトバック処理
実施時のチャートである。
実施時のチャートである。
【図9】実施形態においてデータブロックの置換時に行
う処理のチャート図である。
う処理のチャート図である。
【図10】実施形態において同期命令発行時点まで共有
データブロックに対するメモリ・アクセスに関しての一
貫性保持動作が延期される例を示す図である。
データブロックに対するメモリ・アクセスに関しての一
貫性保持動作が延期される例を示す図である。
10、20 プロセッサ 11、21 キャッシュユニット 12 主記憶ユニット 14、24 プロセッサバス 16 バスアービタ 15 ローカルバス
Claims (4)
- 【請求項1】 複数のプロセッサ及びそれらに付随する
キャッシュメモリ、主記憶装置、及び、キャッシュ・メ
モリと記憶装置間を相互に接続する結合網からなる並列
計算機システムにおいて、 各プロセッサが所定の命令発行を行った場合に、当該命
令発行に基づいて各キャッシュ・メモリ中に存在するデ
ータブロックの一貫性保持を行うことを特徴とするマル
チプロセッサ装置。 - 【請求項2】 前記一貫性保持は、 各プロセッサから発行されたメモリ・トランザクション
が、他のキャッシュ中に共有される可能性があるデータ
ブロックに対するメモリ・トランザクションであること
を識別する識別手段と、 前記共有データブロックとして識別されたメモリ・トラ
ンザクションによって格納されたキャッシュ中のデータ
ブロックが共有データブロックであることを保持する保
持手段と、 前記保持手段により保持されている情報を用いて一貫性
保持動作を実施するデータブロックを選択する選択手段
を備えることにより、上記プロセッサが予め定めた段階
において、共有データブロックに対してのみシステムに
おける一貫性保持動作を実施することを特徴とする請求
項1記載のマルチプロセッサ装置。 - 【請求項3】 上記システムは緩いメモリ・コンシステ
ンシ・モデルをとることを特徴とする請求項1及び2に
記載のマルチプロセッサ装置。 - 【請求項4】 前記共有データブロックは、クリティカ
ルセクション内で読み書きされるデータブロックである
ことを特徴とする請求項第2項に記載のマルチプロセッ
サ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7221638A JPH0962580A (ja) | 1995-08-30 | 1995-08-30 | マルチプロセッサ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7221638A JPH0962580A (ja) | 1995-08-30 | 1995-08-30 | マルチプロセッサ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0962580A true JPH0962580A (ja) | 1997-03-07 |
Family
ID=16769917
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7221638A Withdrawn JPH0962580A (ja) | 1995-08-30 | 1995-08-30 | マルチプロセッサ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0962580A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6408365B1 (en) | 1998-02-02 | 2002-06-18 | Nec Corporation | Multiprocessor system having means for arbitrating between memory access request and coherency maintenance control |
| WO2007036067A1 (en) * | 2005-09-28 | 2007-04-05 | Intel Corporation | Updating entries cached by a network processor |
| JP2007272643A (ja) * | 2006-03-31 | 2007-10-18 | Nec Corp | Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法 |
| US8990511B2 (en) | 2007-11-01 | 2015-03-24 | Nec Corporation | Multiprocessor, cache synchronization control method and program therefor |
| JP2021505994A (ja) * | 2017-12-05 | 2021-02-18 | エイアールエム リミテッド | 書込み動作を処理するための装置及び方法 |
-
1995
- 1995-08-30 JP JP7221638A patent/JPH0962580A/ja not_active Withdrawn
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6408365B1 (en) | 1998-02-02 | 2002-06-18 | Nec Corporation | Multiprocessor system having means for arbitrating between memory access request and coherency maintenance control |
| WO2007036067A1 (en) * | 2005-09-28 | 2007-04-05 | Intel Corporation | Updating entries cached by a network processor |
| JP2007272643A (ja) * | 2006-03-31 | 2007-10-18 | Nec Corp | Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法 |
| US8990511B2 (en) | 2007-11-01 | 2015-03-24 | Nec Corporation | Multiprocessor, cache synchronization control method and program therefor |
| JP2021505994A (ja) * | 2017-12-05 | 2021-02-18 | エイアールエム リミテッド | 書込み動作を処理するための装置及び方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5652859A (en) | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues | |
| US7827354B2 (en) | Victim cache using direct intervention | |
| US5740400A (en) | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field | |
| JP5714733B2 (ja) | キャッシュ競合の解決 | |
| EP0301354A2 (en) | Cache consistency protocol for multiprocessor system | |
| US6148416A (en) | Memory update history storing apparatus and method for restoring contents of memory | |
| EP0598535A1 (en) | Pending write-back controller for a cache controller coupled to a packet switched memory bus | |
| JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
| US7305523B2 (en) | Cache memory direct intervention | |
| JP2012181860A (ja) | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム | |
| JPH09223118A (ja) | スヌープキャッシュメモリ制御システム | |
| JPH10320283A (ja) | マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置 | |
| JP3236287B2 (ja) | マルチプロセッサシステム | |
| US20030126369A1 (en) | Cache memory eviction policy for combining write transactions | |
| JPH0950400A (ja) | マルチプロセッサシステム | |
| JP2007011580A (ja) | 情報処理装置 | |
| US6601145B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls | |
| KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
| JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
| US6477622B1 (en) | Simplified writeback handling | |
| JPH0962580A (ja) | マルチプロセッサ装置 | |
| US7234028B2 (en) | Power/performance optimized cache using memory write prevention through write snarfing | |
| JPH0744459A (ja) | キャッシュ制御方法およびキャッシュ制御装置 | |
| KR100582782B1 (ko) | 캐쉬 일관성 유지 방법 | |
| US20020083268A1 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update |
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: 20021105 |