JPH0467242A - プロセッサおよびそのキャッシュメモリ制御方法 - Google Patents
プロセッサおよびそのキャッシュメモリ制御方法Info
- Publication number
- JPH0467242A JPH0467242A JP2179541A JP17954190A JPH0467242A JP H0467242 A JPH0467242 A JP H0467242A JP 2179541 A JP2179541 A JP 2179541A JP 17954190 A JP17954190 A JP 17954190A JP H0467242 A JPH0467242 A JP H0467242A
- Authority
- JP
- Japan
- Prior art keywords
- entry
- state
- cache
- data
- bus
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明はキャッシュメモリ制御方式、特に複数の機器が
メモリを共有するシステムにおけるプロセッサのキャッ
シュメモリ制御方式に関するものである。
メモリを共有するシステムにおけるプロセッサのキャッ
シュメモリ制御方式に関するものである。
[従来の技術]
計算機システムにおける性能の向上を得るために、プロ
セッサを複数個備えて並列処理を行うマルチプロセッサ
システムが使われるようになってきている。マルチプロ
セッサシステムの中でも、複数のプロセッサがメモリを
共有し、この共有メモリによってジョブのスケジューリ
ングやデータの共有を行なう共有メモリ型マルチプロセ
ッサシステム(以下、単にマルチプロセッサと言う)が
、従来のマルチプログラミングにおけるプログラミング
・モデルとの親和性の高さから広く受は入れられている
。
セッサを複数個備えて並列処理を行うマルチプロセッサ
システムが使われるようになってきている。マルチプロ
セッサシステムの中でも、複数のプロセッサがメモリを
共有し、この共有メモリによってジョブのスケジューリ
ングやデータの共有を行なう共有メモリ型マルチプロセ
ッサシステム(以下、単にマルチプロセッサと言う)が
、従来のマルチプログラミングにおけるプログラミング
・モデルとの親和性の高さから広く受は入れられている
。
この型のマルチプロセッサでは、共有のメモリに対する
アクセスがシステムのボトルネックになり易い。このボ
トルネックを解消するために、共有メモリのコピーをプ
ロセッサ毎にキャッシュメモリに置き、共有メモリへの
アクセスをキャッシュメモリへのアクセスで代替して、
実際の共有メモリへのアクセスを低減する方法がとられ
ることが普通である。この時、複数のプロセッサが同一
のデータブロックのコピーを各々のキャッシュメモリに
置くため、全部のプロセッサが共有メモリを基準として
矛盾のないメモリイメージを持つようにしなければなら
ない、これはマルチプロセッサにおけるキャッシュのコ
ンシステンシ問題といわれるものであり、各種の解決案
が提案されている。例えば、ライト・ワンス(writ
e−once)方式、バークレイ(Berkeley)
方式、イリノイ(Illinois)方式、ドラボン(
Dragon)方式、ファイヤフライ(Firefly
)方式などがアーチボルド。
アクセスがシステムのボトルネックになり易い。このボ
トルネックを解消するために、共有メモリのコピーをプ
ロセッサ毎にキャッシュメモリに置き、共有メモリへの
アクセスをキャッシュメモリへのアクセスで代替して、
実際の共有メモリへのアクセスを低減する方法がとられ
ることが普通である。この時、複数のプロセッサが同一
のデータブロックのコピーを各々のキャッシュメモリに
置くため、全部のプロセッサが共有メモリを基準として
矛盾のないメモリイメージを持つようにしなければなら
ない、これはマルチプロセッサにおけるキャッシュのコ
ンシステンシ問題といわれるものであり、各種の解決案
が提案されている。例えば、ライト・ワンス(writ
e−once)方式、バークレイ(Berkeley)
方式、イリノイ(Illinois)方式、ドラボン(
Dragon)方式、ファイヤフライ(Firefly
)方式などがアーチボルド。
バエル(Archibald、 Baer)他の論文「
キャッシュ・コンシテンシ・プロトコル:マルチプロセ
ッサ・シミュレーションを使った評価」 (“Cach
eConsistency Protocols:Ev
aluation losing a Multipr
ocessor Simulation 、ACM
Transactions onComputer
Systems、Vol、4.No、4.Nov、
1986.Pages273−298)に記載されてい
る。
キャッシュ・コンシテンシ・プロトコル:マルチプロセ
ッサ・シミュレーションを使った評価」 (“Cach
eConsistency Protocols:Ev
aluation losing a Multipr
ocessor Simulation 、ACM
Transactions onComputer
Systems、Vol、4.No、4.Nov、
1986.Pages273−298)に記載されてい
る。
これらの方式を大別とすると、インバリデート(Inv
alidate)方式(以下、INV方式と記す)と、
ブロードキャスト(Broadcast)方式(以下・
BC方式と記す)とに分けられる。INV方式は次のよ
うな方式である。同一データブロックのコピーが複数プ
ロセッサのキャッシュメモリにある場合、それに書き込
みを起こすプロセッサから他のプロセッサへ、そのブロ
ックのインバリデート(無効化)を指令する信号とその
データブロックのアドレスとをバス上へ送出する。他の
プロセッサのバス監視装置は、送出された上記データブ
ロックのアドレスから自キャッシュのタグメモリを参照
して、自キャッシュに同一データブロックがある場合、
そのブロックを無効化して誤ったデータを使わないよう
にする方式である。一方、BC方式は、書き込みを起こ
すプロセッサが、書き込まれるデータブロックのアドレ
スとデータとをバス上に送出して他のプロセッサに取り
込ませ、他プロセツサにある該データブロックを常に最
新の状態にしてデータの一貫性を保つ方式である。
alidate)方式(以下、INV方式と記す)と、
ブロードキャスト(Broadcast)方式(以下・
BC方式と記す)とに分けられる。INV方式は次のよ
うな方式である。同一データブロックのコピーが複数プ
ロセッサのキャッシュメモリにある場合、それに書き込
みを起こすプロセッサから他のプロセッサへ、そのブロ
ックのインバリデート(無効化)を指令する信号とその
データブロックのアドレスとをバス上へ送出する。他の
プロセッサのバス監視装置は、送出された上記データブ
ロックのアドレスから自キャッシュのタグメモリを参照
して、自キャッシュに同一データブロックがある場合、
そのブロックを無効化して誤ったデータを使わないよう
にする方式である。一方、BC方式は、書き込みを起こ
すプロセッサが、書き込まれるデータブロックのアドレ
スとデータとをバス上に送出して他のプロセッサに取り
込ませ、他プロセツサにある該データブロックを常に最
新の状態にしてデータの一貫性を保つ方式である。
[発明が解決しようとしている課題]
しかしながら、上述したINV方式では、無効化された
ブロックを持つどのプロセッサにおいても、その無効化
されたブロックを再度アクセスしようとした際にキャッ
シュのミスを引きおこし、そのデータを共有メモリ又は
有効なコピーを持ったキャッシュから読み出す必要があ
り、性能が低下する場合があった。一方、BC方式では
、更新されたデータブロックを逐一全体にブロードキャ
ストするので、そのオーバヘッドが大となる欠点があっ
た。
ブロックを持つどのプロセッサにおいても、その無効化
されたブロックを再度アクセスしようとした際にキャッ
シュのミスを引きおこし、そのデータを共有メモリ又は
有効なコピーを持ったキャッシュから読み出す必要があ
り、性能が低下する場合があった。一方、BC方式では
、更新されたデータブロックを逐一全体にブロードキャ
ストするので、そのオーバヘッドが大となる欠点があっ
た。
つまり、更新されたデータが頻繁に多くのプロセッサに
よって使われるソフトウェア・アーキテクチャの場合は
、BC方式の方が優れ、同じデータがあまり多くのプロ
セッサには使われないソフトウェア・アーキテクチャの
場合はINV方式の方が優れているという一長一短があ
った。
よって使われるソフトウェア・アーキテクチャの場合は
、BC方式の方が優れ、同じデータがあまり多くのプロ
セッサには使われないソフトウェア・アーキテクチャの
場合はINV方式の方が優れているという一長一短があ
った。
本発明は、かかる問題点に鑑みてなされたものであって
、その目的とするところは、あらゆるソフトウェア・ア
ーキテクチャにおいて共有メモリのアクセス及びプロセ
ッサ間のオーバヘッドを考慮に入れて最適なキャッシュ
メモリの制御を行なうキャッシュメモリ制御方法を提供
することである。
、その目的とするところは、あらゆるソフトウェア・ア
ーキテクチャにおいて共有メモリのアクセス及びプロセ
ッサ間のオーバヘッドを考慮に入れて最適なキャッシュ
メモリの制御を行なうキャッシュメモリ制御方法を提供
することである。
[課題を解決するための手段]
この課題を解決するために、本発明のキャッシュメモリ
制御方法は、複数機器がメモリを共有するシステムにお
いて各プロセッサに附属するキャッシュメモリを制御す
るキャッシュメモリ制御方式であって、 各キャッシュメモリの各エントリ毎に、該エントリのデ
ータの無効を指示可能とし、各プロセッサが、システム
バス上に他の機器が発生させるトランザクションを監視
して、無効を指示されたエントリに対応するタグメモリ
のアドレスに一致するアドレスを検知した時には、その
トランザクションにおけるデータ部分を、当該エントリ
のデータとしてバスから取り込むようにする。
制御方法は、複数機器がメモリを共有するシステムにお
いて各プロセッサに附属するキャッシュメモリを制御す
るキャッシュメモリ制御方式であって、 各キャッシュメモリの各エントリ毎に、該エントリのデ
ータの無効を指示可能とし、各プロセッサが、システム
バス上に他の機器が発生させるトランザクションを監視
して、無効を指示されたエントリに対応するタグメモリ
のアドレスに一致するアドレスを検知した時には、その
トランザクションにおけるデータ部分を、当該エントリ
のデータとしてバスから取り込むようにする。
ここで、前記無効の指示は、各エントリにおいて、デー
タをバス上の他の機器と共有している共有状態のときに
、バス上の他の機器による当該エントリのデータに対す
る書き込み動作のためにバス上に出された書き込み通知
の信号により実行され、無効を指示されたエントリに対
応したタグメモリのアドレスに一致するアドレスを検知
し、前記トランザクションにおけるデータ部分をバスか
ら取り込んで、該エントリに対応するキャッシュメモリ
へデータとして格納した時に、前記共有状態に遷移する
。
タをバス上の他の機器と共有している共有状態のときに
、バス上の他の機器による当該エントリのデータに対す
る書き込み動作のためにバス上に出された書き込み通知
の信号により実行され、無効を指示されたエントリに対
応したタグメモリのアドレスに一致するアドレスを検知
し、前記トランザクションにおけるデータ部分をバスか
ら取り込んで、該エントリに対応するキャッシュメモリ
へデータとして格納した時に、前記共有状態に遷移する
。
又、前記他の機器は他のプロセッサである。
又、前記他のプロセッサがバスに発生させるトランザク
ションは、当該プロセスサに附属するキャッシュメモリ
の無効を指示されたエントリに関して、該エントリに対
応するタグメモリのアドレスと、主記憶上で同一なアド
レスのブロックのエントリからデータを読み出すために
バスに起こすトランザクションである。
ションは、当該プロセスサに附属するキャッシュメモリ
の無効を指示されたエントリに関して、該エントリに対
応するタグメモリのアドレスと、主記憶上で同一なアド
レスのブロックのエントリからデータを読み出すために
バスに起こすトランザクションである。
又、システムの初期化の時点で、過去の履歴をもとに主
記憶のアドレスをタグメモリにロードし、各エントリの
状態を前記無効を指示された状態に設定する。
記憶のアドレスをタグメモリにロードし、各エントリの
状態を前記無効を指示された状態に設定する。
又、システムの初期化の時点で、あらかじめ設定した主
記憶のアドレスをタグメモリにロードし、各エントリの
状態を無効を指示された状態に設定する。
記憶のアドレスをタグメモリにロードし、各エントリの
状態を無効を指示された状態に設定する。
又、システムの初期化の時点で、無作為に設定した主記
憶のアドレスをタグメモリにロードし、各エントリの状
態を無効を指示された状態に設定する。
憶のアドレスをタグメモリにロードし、各エントリの状
態を無効を指示された状態に設定する。
[作用]
以上の構成によれば、他のプロセッサなどにより発生し
たバス上のトランザクションを監視し、必要と思われる
データをシステムの動作時間に影響を及ぼさずにキャッ
シュに取り込んで将来の使用に供することができ、シス
テムの動作速度を向上させる。また、INV方式、BC
方式のコンシステンシ・プロトコルの長所を兼ね備える
ことができるので、より広範なアプリケーションに対し
て有効なキャッシュ制御方式を提供することができる。
たバス上のトランザクションを監視し、必要と思われる
データをシステムの動作時間に影響を及ぼさずにキャッ
シュに取り込んで将来の使用に供することができ、シス
テムの動作速度を向上させる。また、INV方式、BC
方式のコンシステンシ・プロトコルの長所を兼ね備える
ことができるので、より広範なアプリケーションに対し
て有効なキャッシュ制御方式を提供することができる。
[実施例コ
以下、図面を参照して本発明の詳細な説明する。
第1図は本発明のキャッシュ制御方式の状態遷移図の一
例を示す。
例を示す。
本状態遷移図は、イリノイ大学で提案されたキャッシュ
・コンシステンシ・プロトコル(前述の参考文献; A
rchibald、J、 and Baer、J、−L
、。
・コンシステンシ・プロトコル(前述の参考文献; A
rchibald、J、 and Baer、J、−L
、。
”Cache Con5istency Protoc
ols:Evaluation Using a Mu
ltiprocessor Simulation
、ACM Transactions onCompu
ter Systems、Vol、4.No、4.No
v、1986、 Pages273−298)に、本発
明の状態(旧共有状態;5haredSta le)を
付加したものである。尚、遷移条件において、リードミ
ス(r−o+1ss)とライトミス(w−miss)と
はキャッシュ内に所望のデータが無い場合、リートヒツ
ト(r−bit)とライトヒツト(w−bit)はキャ
ッシュ内に所望のデータが有る場合を示す。又、リード
ステイル(r−stale)とライトステイル(w−s
tale)とは旧共有状態でのリード/ライトである。
ols:Evaluation Using a Mu
ltiprocessor Simulation
、ACM Transactions onCompu
ter Systems、Vol、4.No、4.No
v、1986、 Pages273−298)に、本発
明の状態(旧共有状態;5haredSta le)を
付加したものである。尚、遷移条件において、リードミ
ス(r−o+1ss)とライトミス(w−miss)と
はキャッシュ内に所望のデータが無い場合、リートヒツ
ト(r−bit)とライトヒツト(w−bit)はキャ
ッシュ内に所望のデータが有る場合を示す。又、リード
ステイル(r−stale)とライトステイル(w−s
tale)とは旧共有状態でのリード/ライトである。
又、遷移条件の内、実線矢印で表わしたのは自分の動作
による遷移、破線で表わしたのは他の動作による遷移で
ある。
による遷移、破線で表わしたのは他の動作による遷移で
ある。
以下、本実施例では、本発明の旧共有状態(Share
d 5tale)の利点を明瞭にする為、リードミスと
リードステイル、ライトミスとライトステイルを分別し
て示しているが、本来これらは同じ条件であり、特に分
別される必要はない。各状態はキャッシュメモリのエン
トリ毎に保持されるもので、通常タグメモリと呼ばれる
制御用のメモリにコード化されて格納される。
d 5tale)の利点を明瞭にする為、リードミスと
リードステイル、ライトミスとライトステイルを分別し
て示しているが、本来これらは同じ条件であり、特に分
別される必要はない。各状態はキャッシュメモリのエン
トリ毎に保持されるもので、通常タグメモリと呼ばれる
制御用のメモリにコード化されて格納される。
1はエントリが無効(Invalid)であることを示
すInvalid状態(以下、INV状態)である。
すInvalid状態(以下、INV状態)である。
システムの初期状態では全エントリがINV状態である
。
。
2はこの状態を持つエントリを持つキャッシュが、その
エントリを占有(Exclusive)することを示す
Exclusive状態(以下、EX状態)である。
エントリを占有(Exclusive)することを示す
Exclusive状態(以下、EX状態)である。
EX状態では、他のキャッシュにはそのエントリのブロ
ックは存在していない。
ックは存在していない。
3はこの状態を持つエントリを持ったキャッシュがその
エントリのブロックを他のキャッシュと共有(Shar
e) していることを示す5hared状態(以下、S
H状態)である。この時、複数のキャッシュにこのエン
トリのブロックが同一のデータを保持している。
エントリのブロックを他のキャッシュと共有(Shar
e) していることを示す5hared状態(以下、S
H状態)である。この時、複数のキャッシュにこのエン
トリのブロックが同一のデータを保持している。
4はこの状態を持つエントリを持つキャッシュがそのエ
ントリを占有し、かつ書き込みを行なって主記憶との一
致がとれなくなった(ExclusiveDirty)
ことを示すExclusive Dirty状態(以下
、EXD状態)である。
ントリを占有し、かつ書き込みを行なって主記憶との一
致がとれなくなった(ExclusiveDirty)
ことを示すExclusive Dirty状態(以下
、EXD状態)である。
5は本発明で導入された旧共有状態で、この状態のエン
トリを持つキャッシュが以前そのブロックを他のプロセ
ッサのキャッシュと共有していた(Shared)が、
他のプロセッサによるそのブロックへの書き込みによっ
てそのブロックが古い(Stale)ものになったこと
を示す5haredStale状態(以下、SHS状態
)である。この時、書き込みを行なったプロセッサのキ
ャッシュでは、そのエントリはEXD状態になっている
。
トリを持つキャッシュが以前そのブロックを他のプロセ
ッサのキャッシュと共有していた(Shared)が、
他のプロセッサによるそのブロックへの書き込みによっ
てそのブロックが古い(Stale)ものになったこと
を示す5haredStale状態(以下、SHS状態
)である。この時、書き込みを行なったプロセッサのキ
ャッシュでは、そのエントリはEXD状態になっている
。
第2図は本発明を用いるマルチプロセッサのブロック図
の一例を示す。21,22,23゜24は本発明のキャ
ッシュ制御方式を用いるキャッシュ31〜34を持つプ
ロセッサであり、システムバス25を介して主記憶26
と接続されている。この構成をもとに、更に具体的に本
キャッシュ制御方式の動作を説明する。尚、本実施例で
は、他のプロセッサの動作に基づく、SH状態とSH3
状態との間の遷移を中心に述べるが、SHS状態からの
、リードステイルによるSH状態への遷移やライトステ
イルによるEXD状態への遷移等は、従来のINV状態
からの遷移に対応して付加されるものであり、本発明の
SH3状態の付加を最も特徴付ける遷移は上記SH状態
とSHS状態間の破線の遷移である。
の一例を示す。21,22,23゜24は本発明のキャ
ッシュ制御方式を用いるキャッシュ31〜34を持つプ
ロセッサであり、システムバス25を介して主記憶26
と接続されている。この構成をもとに、更に具体的に本
キャッシュ制御方式の動作を説明する。尚、本実施例で
は、他のプロセッサの動作に基づく、SH状態とSH3
状態との間の遷移を中心に述べるが、SHS状態からの
、リードステイルによるSH状態への遷移やライトステ
イルによるEXD状態への遷移等は、従来のINV状態
からの遷移に対応して付加されるものであり、本発明の
SH3状態の付加を最も特徴付ける遷移は上記SH状態
とSHS状態間の破線の遷移である。
第3図はある時点での第2図のマルチプロセッサのキャ
ッシュの状態を示す図である。
ッシュの状態を示す図である。
第3図の(a)は、キャッシュ31,32゜3334に
主記憶26の同じアドレスのデータ“A”が共有されて
いる状態を示す。今、このデータを保持しているアドレ
スを例えば1000番地として説明を行なう。キャッシ
ュのタグメモリには、図示しないアドレス情報が格納さ
れており、この場合アドレス情報は1000番地を示す
。1000番地のデータ“A”は共有されているので、
各キャッシュのこのデータはSH状態である。
主記憶26の同じアドレスのデータ“A”が共有されて
いる状態を示す。今、このデータを保持しているアドレ
スを例えば1000番地として説明を行なう。キャッシ
ュのタグメモリには、図示しないアドレス情報が格納さ
れており、この場合アドレス情報は1000番地を示す
。1000番地のデータ“A”は共有されているので、
各キャッシュのこのデータはSH状態である。
この第3図の(a)の状態から、プロセッサ21がこの
エントリのデータ“A”を更新して“A′”に書き替え
る場合、第3図の(b)に示すようにプロセッサ21は
、自分のキャッシュにデータ“A′ を書き込んでキャ
ッシュをEXD状態とする(第1図の遷移条件■に対応
する)と同時に、プロセッサ21のキャッシュ制御装置
は、キャッシュ31の“A”のデータがSH状態なので
他に共有するキャッシュがあると判断し、バス25を通
じて他のキャッシュをSH3状態にする信号とそのアド
レスとを送出する。
エントリのデータ“A”を更新して“A′”に書き替え
る場合、第3図の(b)に示すようにプロセッサ21は
、自分のキャッシュにデータ“A′ を書き込んでキャ
ッシュをEXD状態とする(第1図の遷移条件■に対応
する)と同時に、プロセッサ21のキャッシュ制御装置
は、キャッシュ31の“A”のデータがSH状態なので
他に共有するキャッシュがあると判断し、バス25を通
じて他のキャッシュをSH3状態にする信号とそのアド
レスとを送出する。
各プロセッサのキャッシュ制御装置はバス監視を行なっ
ており、キャッシュをSHS状態にする信号を受信する
と、その時点のバス上のアドレスを用いて自分のタグメ
モリ内にそのアドレスのエントリがある場合に、そのエ
ントリの状態をSH3状態に書き換える(第1図の遷移
条件■に対応する)。SH3状態は、過去にそのデータ
が複数のキャッシュによって共有されていたが、現在は
誰かにより書き換えられたため古いデータとなってしま
ったことを示す。従来の技術ではSHS状態という状態
がなかったため、このエントリはINV状態にしていた
。SH3状態はINV状態に似ているが、そのアドレス
のエントリは少なくとも過去にそのプロセッサによって
使用されたという情報を持っていることになる。
ており、キャッシュをSHS状態にする信号を受信する
と、その時点のバス上のアドレスを用いて自分のタグメ
モリ内にそのアドレスのエントリがある場合に、そのエ
ントリの状態をSH3状態に書き換える(第1図の遷移
条件■に対応する)。SH3状態は、過去にそのデータ
が複数のキャッシュによって共有されていたが、現在は
誰かにより書き換えられたため古いデータとなってしま
ったことを示す。従来の技術ではSHS状態という状態
がなかったため、このエントリはINV状態にしていた
。SH3状態はINV状態に似ているが、そのアドレス
のエントリは少なくとも過去にそのプロセッサによって
使用されたという情報を持っていることになる。
この第3図の(b)の状態から、次にプロセッサ22が
再び1000番地のデータを処理するために読み出しを
行なおうとすると、タグメモリには1000番地のエン
トリが入っているが、このエントリはSH5状態なので
そのデータは古いことがわかり、キャッシュミスとして
バス25上にトランザクションを発生させる(本例では
リードステイルと表現している)。この場合、プロセッ
サ21のキャッシュ制御装置がそのトランザクションを
監視しているので、キャッシュメモリ31に存在する有
効なtooo番地のデータ“A′”を主記憶26に書き
込んでSH状態とする(第1図の遷移条件■に対応する
)。
再び1000番地のデータを処理するために読み出しを
行なおうとすると、タグメモリには1000番地のエン
トリが入っているが、このエントリはSH5状態なので
そのデータは古いことがわかり、キャッシュミスとして
バス25上にトランザクションを発生させる(本例では
リードステイルと表現している)。この場合、プロセッ
サ21のキャッシュ制御装置がそのトランザクションを
監視しているので、キャッシュメモリ31に存在する有
効なtooo番地のデータ“A′”を主記憶26に書き
込んでSH状態とする(第1図の遷移条件■に対応する
)。
主記憶26に書き込む時には、このアドレスとデータと
がバス25上に出るので、このバストランザクションを
起こす契機を与えたプロセッサ22はそのデータをバス
上から取り込み、キャッシュのデータを“A′に書き換
えてSH状態とする(第1図の遷移条件■)。
がバス25上に出るので、このバストランザクションを
起こす契機を与えたプロセッサ22はそのデータをバス
上から取り込み、キャッシュのデータを“A′に書き換
えてSH状態とする(第1図の遷移条件■)。
この時、プロセッサ23.24のキャッシュ制御装置も
このトランザクションを監視しているので、バス上に出
るアドレス、データを検知することができる。プロセッ
サ23.24のキャッシュ制御装置はバス上に出たアド
レスをタグメモリの内容と比較し、この場合各々のキャ
ッシュにある同じアドレスでSHS状態のエントリの最
新データがバス上に出ていることを検知できるので、こ
のエントリのデータをバス上の最新データ“A′ で更
新してSH状態とする(第1図の遷移条件■)。この動
作は、もともとプロセッサ21がプロセッサ22のキャ
ッシュミスに応えて起こしたパストランザクションと並
行して行なわれるので、余分に時間を消費するものでは
ない、この結果、キャッシュの状態は第3図の(C)の
ように変化し、その後にプロセッサ23.24が100
0番地のデータを処理するために読み出しを行なおうと
した場合には、リードヒツトとなり、余分なパストラン
ザクションを省くことができる。
このトランザクションを監視しているので、バス上に出
るアドレス、データを検知することができる。プロセッ
サ23.24のキャッシュ制御装置はバス上に出たアド
レスをタグメモリの内容と比較し、この場合各々のキャ
ッシュにある同じアドレスでSHS状態のエントリの最
新データがバス上に出ていることを検知できるので、こ
のエントリのデータをバス上の最新データ“A′ で更
新してSH状態とする(第1図の遷移条件■)。この動
作は、もともとプロセッサ21がプロセッサ22のキャ
ッシュミスに応えて起こしたパストランザクションと並
行して行なわれるので、余分に時間を消費するものでは
ない、この結果、キャッシュの状態は第3図の(C)の
ように変化し、その後にプロセッサ23.24が100
0番地のデータを処理するために読み出しを行なおうと
した場合には、リードヒツトとなり、余分なパストラン
ザクションを省くことができる。
一方、従来のI’ N V方式では第6図のようにSH
S状態が存在しないため、第3図の(a)と同じ第7図
の(a)の状態でキャッシュ31て書き換えがあった場
合には、キャッシュ32゜33.34の1000番地の
エントリは第7図の(b)のようにINV状態とされて
いた(第6図の遷移条件■) 従って、プロセッサ22
のキャッシュミスによるトランザクションが起っても、
プロセッサ23.24の1000番地のアドレスの内容
はINV状態のままになっており、このバストランザク
ションでキャッシュのデータを取り込むことはしない。
S状態が存在しないため、第3図の(a)と同じ第7図
の(a)の状態でキャッシュ31て書き換えがあった場
合には、キャッシュ32゜33.34の1000番地の
エントリは第7図の(b)のようにINV状態とされて
いた(第6図の遷移条件■) 従って、プロセッサ22
のキャッシュミスによるトランザクションが起っても、
プロセッサ23.24の1000番地のアドレスの内容
はINV状態のままになっており、このバストランザク
ションでキャッシュのデータを取り込むことはしない。
この結果、従来の方式では第7図の(c)のように“A
′のコピーはキャッシュメモリ32にしか送られない。
′のコピーはキャッシュメモリ32にしか送られない。
第7図の(C)から、例えばプロセッサ23が1000
番地をアクセスしたとすると、このアクセスはキャッシ
ュミスになるので、このキャッシュミスを解決するため
には、バスを使ってプロセッサ21か22の優先度の高
い方がデータを転送しなければならない。これは余分な
バスサイクルを必要とするのでシステムの処理速度が低
下する。
番地をアクセスしたとすると、このアクセスはキャッシ
ュミスになるので、このキャッシュミスを解決するため
には、バスを使ってプロセッサ21か22の優先度の高
い方がデータを転送しなければならない。これは余分な
バスサイクルを必要とするのでシステムの処理速度が低
下する。
本実施例によれば、過去に使ったキャッシュのエントリ
が他のプロセッサによる書き込みにより古くなっても、
古くなったデータを持つあるプロセッサが本当に必要に
なった時に起きるキャッシュミスによるデータの転送時
に、他のキャッシュにもデータが取り込まれるので、ヒ
ツト率に関して有利になる。もし、そのエントリが将来
に亙ってどのプロセッサによっても使われないときは、
そのデータは決してアクセスされないのでバスにトラン
ザクションを起こすことなく、然るべき時間のうちにキ
ャッシュ置換アルゴリズムによりキャッシュから消され
るだけであり、このためにシステムの性能を低下させる
ことはない。また、いわゆるBD方式のキャッシュ・コ
ンシステンシ・プロトコルを採用すると、すべての書き
込みに対してアドレスのみでなく変更データもバス上に
出すので、無駄なパストランザクションが多発する危険
があったが、本発明のキャッシュメモリ制御方式によれ
ば、そのブロードキャストを実際に他のプロセッサでデ
ータが必要になった時点で行なうので、そのような無駄
を行なわずにすむ。
が他のプロセッサによる書き込みにより古くなっても、
古くなったデータを持つあるプロセッサが本当に必要に
なった時に起きるキャッシュミスによるデータの転送時
に、他のキャッシュにもデータが取り込まれるので、ヒ
ツト率に関して有利になる。もし、そのエントリが将来
に亙ってどのプロセッサによっても使われないときは、
そのデータは決してアクセスされないのでバスにトラン
ザクションを起こすことなく、然るべき時間のうちにキ
ャッシュ置換アルゴリズムによりキャッシュから消され
るだけであり、このためにシステムの性能を低下させる
ことはない。また、いわゆるBD方式のキャッシュ・コ
ンシステンシ・プロトコルを採用すると、すべての書き
込みに対してアドレスのみでなく変更データもバス上に
出すので、無駄なパストランザクションが多発する危険
があったが、本発明のキャッシュメモリ制御方式によれ
ば、そのブロードキャストを実際に他のプロセッサでデ
ータが必要になった時点で行なうので、そのような無駄
を行なわずにすむ。
次に、本発明の第2の実施例を示す。第1の実施例はコ
ピーバック(copy−back) つまりキャッシ
ュに書き込みがヒツトした時は、データの更新はキャッ
シュ上だけで行ない、主記憶へのデータの書き込みは、
そのエントリがキャッシュから追い出された時や、第1
の実施例のように他のプロセッサによってキャッシュミ
スが起こった時に行なう方式についての例であった。第
2の実施例はライトスルー(write−throug
h) 、つまりどのプロセッサによる書き込みであって
もすべて主記憶にも同時に反映させる方式についての例
である。
ピーバック(copy−back) つまりキャッシ
ュに書き込みがヒツトした時は、データの更新はキャッ
シュ上だけで行ない、主記憶へのデータの書き込みは、
そのエントリがキャッシュから追い出された時や、第1
の実施例のように他のプロセッサによってキャッシュミ
スが起こった時に行なう方式についての例であった。第
2の実施例はライトスルー(write−throug
h) 、つまりどのプロセッサによる書き込みであって
もすべて主記憶にも同時に反映させる方式についての例
である。
第4図に第2の実施例の本キャッシュ制御方式を適用し
た状態遷移図を示す。第1の実施例と同様に、Inva
lid(I N V )状態41は初期状態であり、す
べてのキャッシュのエントリは無効である。Exclu
sive (E X )状態42はあるキャッシュに唯
一主記憶のコピーがある場合である。
た状態遷移図を示す。第1の実施例と同様に、Inva
lid(I N V )状態41は初期状態であり、す
べてのキャッシュのエントリは無効である。Exclu
sive (E X )状態42はあるキャッシュに唯
一主記憶のコピーがある場合である。
5hared (S H)状態43は複数のキャッシュ
に同一の番地のコピーが存在する場合である。
に同一の番地のコピーが存在する場合である。
5hared 5tale (S HS )状態45は
共有されていたエントリが他のプロセッサからの書き込
みによって古くなった状態である。第2の実施例では、
第1図にあった、書き込みによりキャッシュと主記憶が
不一致になった状態であるExclusiveDirt
y (E X D )状態4は存在しない。
共有されていたエントリが他のプロセッサからの書き込
みによって古くなった状態である。第2の実施例では、
第1図にあった、書き込みによりキャッシュと主記憶が
不一致になった状態であるExclusiveDirt
y (E X D )状態4は存在しない。
本実施例では、SHS状態への遷移は、(1)唯一の主
記憶のコピーを持っていたキャッシュにおいて、他のプ
ロセッサの同じエントリのブロックへのライトミス(ラ
イトステイル)により、そのエントリのデータの内容が
古くなった場合と、(2)複数のプロセッサがキャッシ
ュに主記憶のコピーを共有している時、その内の1つの
プロセッサによるライトヒツト、またはそのエントリの
データをキャッシュに持たない別のプロセッサによるラ
イトミスが起こり、他のプロセッサのキャッシュでその
エントリのデータの内容が古くなった場合とに、発生す
る。
記憶のコピーを持っていたキャッシュにおいて、他のプ
ロセッサの同じエントリのブロックへのライトミス(ラ
イトステイル)により、そのエントリのデータの内容が
古くなった場合と、(2)複数のプロセッサがキャッシ
ュに主記憶のコピーを共有している時、その内の1つの
プロセッサによるライトヒツト、またはそのエントリの
データをキャッシュに持たない別のプロセッサによるラ
イトミスが起こり、他のプロセッサのキャッシュでその
エントリのデータの内容が古くなった場合とに、発生す
る。
SH3状態になったキャッシュを持つプロセッサがその
エントリのデータをアクセスする必要が生じ、リードス
テイルとしてバス上にトランザクションを出した時、あ
るいはそのエントリのデータを持たないプロセッサがリ
ードミスとしてトランザクションを出した場合に、第1
の実施例と同じように、アクセスされようとしているブ
ロックのエントリがSH3状態である他のキャッシュは
、リードミスあるいはリードステイルを起こしたキャッ
シュのデータ読み出しを監視し、自分のキャッシュのブ
ロックデータも最新のものに更新する。この場合も全て
のキャッシュの同じブロックで更新が同時に起こるので
、後から繰り返し同じブロックを読み出す必要がなくな
り、第1の実施例と同様にシステムの高速化に貢献する
ところ大である。
エントリのデータをアクセスする必要が生じ、リードス
テイルとしてバス上にトランザクションを出した時、あ
るいはそのエントリのデータを持たないプロセッサがリ
ードミスとしてトランザクションを出した場合に、第1
の実施例と同じように、アクセスされようとしているブ
ロックのエントリがSH3状態である他のキャッシュは
、リードミスあるいはリードステイルを起こしたキャッ
シュのデータ読み出しを監視し、自分のキャッシュのブ
ロックデータも最新のものに更新する。この場合も全て
のキャッシュの同じブロックで更新が同時に起こるので
、後から繰り返し同じブロックを読み出す必要がなくな
り、第1の実施例と同様にシステムの高速化に貢献する
ところ大である。
次に、第3の実施例を説明する。第3の実施例では、第
5図に示すように第2の実施例からInvalid (
I N V )状態を取り去ったものである。
5図に示すように第2の実施例からInvalid (
I N V )状態を取り去ったものである。
第2の実施例では、INV状態はシステムの初期状態で
のみ必要であるので、これをSH3状態に書き換えるこ
とが可能である。これまでは、SH3状態は、そのブロ
ックのデータは現在無効であるが、かつてそのブロック
のデータがキャッシュに入れられたことがあるという履
歴を示していた。システムに電源を入れた初期状態では
、厳密にいえばどのキャッシュのエントリも使われた履
歴はないのであるが、磁気ディスクなどの不揮発性の記
憶手段に以前に使用した時のキャッシュの履歴を記録し
ておき、システムの初期化の時点でタグメモリに過去の
履歴で最も゛もっともらしい°履歴を書き込んでおけば
、他のプロセッサによるバストランザクションで、使用
する可能性の高いデータを、他のプロセッサの動作を遅
延させずに最初からキャッシュに読み込むことができる
。
のみ必要であるので、これをSH3状態に書き換えるこ
とが可能である。これまでは、SH3状態は、そのブロ
ックのデータは現在無効であるが、かつてそのブロック
のデータがキャッシュに入れられたことがあるという履
歴を示していた。システムに電源を入れた初期状態では
、厳密にいえばどのキャッシュのエントリも使われた履
歴はないのであるが、磁気ディスクなどの不揮発性の記
憶手段に以前に使用した時のキャッシュの履歴を記録し
ておき、システムの初期化の時点でタグメモリに過去の
履歴で最も゛もっともらしい°履歴を書き込んでおけば
、他のプロセッサによるバストランザクションで、使用
する可能性の高いデータを、他のプロセッサの動作を遅
延させずに最初からキャッシュに読み込むことができる
。
また、第5図ではEX状態がなくなっているが、EX状
態は唯一のキャッシュに主記憶のコピーがある状態を示
していたので、SH状態の意味を拡張して、1つ以上の
キャッシュに主記憶のコピーがあるとしておけば良い、
このSHとSH3の2状態の状態遷移では、初期化の時
点ではシステムがキャッシュのタグメモリを適当な履歴
でロードし、そのプロセッサが実際にリードミス(リー
ドステイル)を起こしてそのブロックをバスから取り入
れればSH状態に移行させる。
態は唯一のキャッシュに主記憶のコピーがある状態を示
していたので、SH状態の意味を拡張して、1つ以上の
キャッシュに主記憶のコピーがあるとしておけば良い、
このSHとSH3の2状態の状態遷移では、初期化の時
点ではシステムがキャッシュのタグメモリを適当な履歴
でロードし、そのプロセッサが実際にリードミス(リー
ドステイル)を起こしてそのブロックをバスから取り入
れればSH状態に移行させる。
他のプロセッサによって、SH3状態にあるブロックが
バス上から取り込まれようとする時は、そのデータを同
じくバス上から取り入れてキャッシュにロードしておく
ことにより、高いヒツト率を得ることができる。
バス上から取り込まれようとする時は、そのデータを同
じくバス上から取り入れてキャッシュにロードしておく
ことにより、高いヒツト率を得ることができる。
なお、本発明はここに挙げた実施例の他にも種々変形し
て用いることが可能である。例えば、キャッシュのエン
トリを持つタグメモリがプロセッサからのキャッシュの
アクセスとバス側からの監視のためのアクセスとで共有
されるような場合や、SHS状態にあるエントリを持つ
タグメモリがたまたまその最新データがバス上にあるに
も拘らず、プロセッサ側からのアクセスで占有されてい
るような場合は、そのキャッシュのエントリはバスのデ
ータを取り込まずにSHS状態のままにしておいてもキ
ャッシュのコンシンテンシは保たれる。こうすることで
、バス上にトランザクションを起こしたプログラムを待
たせずに処理を進めることが可能である。また、メモリ
空間のある範囲だけ本キャッシュメモリ制御方法を実施
し、他の部分は従来の技術のキャッシュメモリ制御方式
を適用することも可能である。要するに、本発明はその
技術思想を逸脱しない範囲で種々で変形して実施するこ
とが可能である。
て用いることが可能である。例えば、キャッシュのエン
トリを持つタグメモリがプロセッサからのキャッシュの
アクセスとバス側からの監視のためのアクセスとで共有
されるような場合や、SHS状態にあるエントリを持つ
タグメモリがたまたまその最新データがバス上にあるに
も拘らず、プロセッサ側からのアクセスで占有されてい
るような場合は、そのキャッシュのエントリはバスのデ
ータを取り込まずにSHS状態のままにしておいてもキ
ャッシュのコンシンテンシは保たれる。こうすることで
、バス上にトランザクションを起こしたプログラムを待
たせずに処理を進めることが可能である。また、メモリ
空間のある範囲だけ本キャッシュメモリ制御方法を実施
し、他の部分は従来の技術のキャッシュメモリ制御方式
を適用することも可能である。要するに、本発明はその
技術思想を逸脱しない範囲で種々で変形して実施するこ
とが可能である。
[発明の効果]
本発明により、あらゆるソフトウェア・アーキテクチャ
において共有メモリのアクセス及びプロセッサ間のオー
バヘッドを考慮に入れて、最適なキャッシュメモリの制
御を行なうキャッシュメモリ制御方法を提供できる。
において共有メモリのアクセス及びプロセッサ間のオー
バヘッドを考慮に入れて、最適なキャッシュメモリの制
御を行なうキャッシュメモリ制御方法を提供できる。
すなわち、本発明はかつて使用したデータが無効となっ
た旧共有(Shared 5tale)状態をキャッシ
ュのエントリの状態の1つとして持たせ、以前キャッシ
ュに存在していたが他のプロセッサの書き込みによって
古くなったデータを、同じデータが他のプロセッサによ
り読まれる際にキャッシュにロードしておくことにより
、いわゆるインバリデート方式のキャッシュ・コンシス
テンシ・プロトコルの持つキャッシュの書き込み時の効
率上の利点と、ブロードキャスト方式の持つ高いヒツト
率の利点を兼ね備えたキャッシュメモリ制御方式を実現
した。
た旧共有(Shared 5tale)状態をキャッシ
ュのエントリの状態の1つとして持たせ、以前キャッシ
ュに存在していたが他のプロセッサの書き込みによって
古くなったデータを、同じデータが他のプロセッサによ
り読まれる際にキャッシュにロードしておくことにより
、いわゆるインバリデート方式のキャッシュ・コンシス
テンシ・プロトコルの持つキャッシュの書き込み時の効
率上の利点と、ブロードキャスト方式の持つ高いヒツト
率の利点を兼ね備えたキャッシュメモリ制御方式を実現
した。
第1図は本発明の第1の実施例の状態遷移図を表す図、
第2図は本発明が適用される対象となるマルチプロセッ
サの構成例を示す図、 第3図は本発明の説明のためのキャッシュの内容を示す
図、 第4図は本発明の第2の実施例の状態遷移図を表す図、 第5図は本発明の第3の実施例の状態遷移図を表す図、 第6図は従来の状態遷移図を表す図、 第7図は第3図に対zして従来のキャッシュの内容を示
す図である。 図中、1 ・−Invalid状態、2”−Exclu
sive状態、3 ・= 5hared状態、4− E
xclusive Dirty状態、5−3hared
5tale状態、21〜24−・・プロセッサ、25
・・・バス、26・・・主記憶、31・・・プロセッサ
21のキャッシュ、32・・・プロセッサ22のキャッ
シュ、33・・・プロセッサ23のキャッシュ、34・
・・プロセッサ24のキャッシュ、41−Invali
d状態、42 ・Exclusive状態、43−・5
hared状態、45−3hared 5tale状態
、53−3hared状態、55−5hared 5t
ale状態である。
サの構成例を示す図、 第3図は本発明の説明のためのキャッシュの内容を示す
図、 第4図は本発明の第2の実施例の状態遷移図を表す図、 第5図は本発明の第3の実施例の状態遷移図を表す図、 第6図は従来の状態遷移図を表す図、 第7図は第3図に対zして従来のキャッシュの内容を示
す図である。 図中、1 ・−Invalid状態、2”−Exclu
sive状態、3 ・= 5hared状態、4− E
xclusive Dirty状態、5−3hared
5tale状態、21〜24−・・プロセッサ、25
・・・バス、26・・・主記憶、31・・・プロセッサ
21のキャッシュ、32・・・プロセッサ22のキャッ
シュ、33・・・プロセッサ23のキャッシュ、34・
・・プロセッサ24のキャッシュ、41−Invali
d状態、42 ・Exclusive状態、43−・5
hared状態、45−3hared 5tale状態
、53−3hared状態、55−5hared 5t
ale状態である。
Claims (7)
- (1)複数機器がメモリを共有するシステムにおいて各
プロセッサに附属するキャッシュメモリを制御するキャ
ッシュメモリ制御方式であつて、各キャッシュメモリの
各エントリ毎に、 該エントリのデータの無効を指示可能とし、各プロセッ
サが、システムバス上に他の機器が発生させるトランザ
クションを監視して、無効を指示されたエントリに対応
するタグメモリのアドレスに一致するアドレスを検知し
た時には、そのトランザクションにおけるデータ部分を
、当該エントリのデータとしてバスから取り込むように
することを特徴とするキャッシュメモリ制御方式。 - (2)前記無効の指示は、各エントリにおいて、データ
をバス上の他の機器と共有している共有状態のときに、
バス上の他の機器による当該エントリのデータに対する
書き込み動作のためにバス上に出された書き込み通知の
信号により実行され、 無効を指示されたエントリに対応したタグメモリのアド
レスに一致するアドレスを検知し、前記トランザクショ
ンにおけるデータ部分をバスから取り込んで、該エント
リに対応するキャッシュメモリへデータとして格納した
時に、前記共有状態に遷移することを特徴とする請求項
第1項記載のキャッシュメモリ制御方式。 - (3)前記他の機器は他のプロセッサであることを特徴
とする請求項第1項又は第2項記載のキャッシュメモリ
制御方式。 - (4)前記他のプロセッサがバスに発生させるトランザ
クションは、当該プロセスサに附属するキャッシュメモ
リの無効を指示されたエントリに関して、該エントリに
対応するタグメモリのアドレスと、主記憶上で同一なア
ドレスのブロックのエントリからデータを読み出すため
にバスに起こすトランザクションであることを特徴とす
る請求項第3項記載のキャッシュメモリ制御方式。 - (5)システムの初期化の時点で、過去の履歴をもとに
主記憶のアドレスをタグメモリにロードし、各エントリ
の状態を前記無効を指示された状態に設定することを特
徴とする請求項第2項記載のキャッシュメモリ制御方式
。 - (6)システムの初期化の時点で、あらかじめ設定した
主記憶のアドレスをタグメモリにロードし、各エントリ
の状態を無効を指示された状態に設定することを特徴と
する請求項第2項記載のキャッシュメモリ制御方式。 - (7)システムの初期化の時点で、無作為に設定した主
記憶のアドレスをタグメモリにロードし、各エントリの
状態を無効を指示された状態に設定することを特徴とす
る請求項第2項記載のキャッシュメモリ制御方式。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2179541A JP3009430B2 (ja) | 1990-07-09 | 1990-07-09 | プロセッサおよびそのキャッシュメモリ制御方法 |
| US08/393,927 US5737568A (en) | 1990-07-09 | 1995-02-21 | Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2179541A JP3009430B2 (ja) | 1990-07-09 | 1990-07-09 | プロセッサおよびそのキャッシュメモリ制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0467242A true JPH0467242A (ja) | 1992-03-03 |
| JP3009430B2 JP3009430B2 (ja) | 2000-02-14 |
Family
ID=16067557
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2179541A Expired - Fee Related JP3009430B2 (ja) | 1990-07-09 | 1990-07-09 | プロセッサおよびそのキャッシュメモリ制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5737568A (ja) |
| JP (1) | JP3009430B2 (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10154100A (ja) * | 1996-11-25 | 1998-06-09 | Canon Inc | 情報処理システム及び装置及びその制御方法 |
| US5860120A (en) * | 1996-12-09 | 1999-01-12 | Intel Corporation | Directory-based coherency system using two bits to maintain coherency on a dual ported memory system |
| US5943684A (en) * | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| US6317811B1 (en) * | 1999-08-26 | 2001-11-13 | International Business Machines Corporation | Method and system for reissuing load requests in a multi-stream prefetch design |
| US6496907B1 (en) * | 1999-10-22 | 2002-12-17 | Apple Computer, Inc. | System and method for updating from a read-only to a read-write entry and concurrently invalidating stale cache copies from head-to-tail and tail-to-head directions |
| US6356983B1 (en) | 2000-07-25 | 2002-03-12 | Src Computers, Inc. | System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture |
| US6651145B1 (en) * | 2000-09-29 | 2003-11-18 | Intel Corporation | Method and apparatus for scalable disambiguated coherence in shared storage hierarchies |
| US6859864B2 (en) * | 2000-12-29 | 2005-02-22 | Intel Corporation | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line |
| US20060138830A1 (en) * | 2004-12-23 | 2006-06-29 | Cho-Hsin Liu | Barrel shaped chair of a racing car |
| US8279886B2 (en) * | 2004-12-30 | 2012-10-02 | Intel Corporation | Dataport and methods thereof |
| US7941610B2 (en) | 2006-04-27 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Coherency directory updating in a multiprocessor computing system |
| US8396937B1 (en) * | 2007-04-30 | 2013-03-12 | Oracle America, Inc. | Efficient hardware scheme to support cross-cluster transactional memory |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4141067A (en) * | 1977-06-13 | 1979-02-20 | General Automation | Multiprocessor system with cache memory |
| US4471429A (en) * | 1979-12-14 | 1984-09-11 | Honeywell Information Systems, Inc. | Apparatus for cache clearing |
| US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
| US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
| US4747043A (en) * | 1984-02-10 | 1988-05-24 | Prime Computer, Inc. | Multiprocessor cache coherence system |
| US4638431A (en) * | 1984-09-17 | 1987-01-20 | Nec Corporation | Data processing system for vector processing having a cache invalidation control unit |
| US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
| US4755930A (en) * | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
| CH672816A5 (ja) * | 1986-10-03 | 1989-12-29 | Pantex Stahl Ag | |
| US5193189A (en) * | 1987-10-07 | 1993-03-09 | Allen-Bradley Company, Inc. | Programmable controller with multiple priority level task processing |
| US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
| US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
| JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| US5222224A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system |
| US5210848A (en) * | 1989-02-22 | 1993-05-11 | International Business Machines Corporation | Multi-processor caches with large granularity exclusivity locking |
| US5276828A (en) * | 1989-03-01 | 1994-01-04 | Digital Equipment Corporation | Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions |
| US5283886A (en) * | 1989-08-11 | 1994-02-01 | Hitachi, Ltd. | Multiprocessor cache system having three states for generating invalidating signals upon write accesses |
| US5230070A (en) * | 1989-09-08 | 1993-07-20 | International Business Machines Corporation | Access authorization table for multi-processor caches |
| US5289588A (en) * | 1990-04-24 | 1994-02-22 | Advanced Micro Devices, Inc. | Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system |
| US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
-
1990
- 1990-07-09 JP JP2179541A patent/JP3009430B2/ja not_active Expired - Fee Related
-
1995
- 1995-02-21 US US08/393,927 patent/US5737568A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP3009430B2 (ja) | 2000-02-14 |
| US5737568A (en) | 1998-04-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7366847B2 (en) | Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag | |
| US5043886A (en) | Load/store with write-intent for write-back caches | |
| US5706464A (en) | Method and system for achieving atomic memory references in a multilevel cache data processing system | |
| US4484267A (en) | Cache sharing control in a multiprocessor | |
| US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
| US6957304B2 (en) | Runahead allocation protection (RAP) | |
| EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
| EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
| US6718839B2 (en) | Method and apparatus for facilitating speculative loads in a multiprocessor system | |
| JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
| US7539823B2 (en) | Multiprocessing apparatus having reduced cache miss occurrences | |
| US6502171B1 (en) | Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data | |
| US8924653B2 (en) | Transactional cache memory system | |
| JPH03217963A (ja) | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 | |
| JPH0619786A (ja) | キャッシュコヒーレンスを維持する方法及び装置 | |
| US7051163B2 (en) | Directory structure permitting efficient write-backs in a shared memory computer system | |
| US20040068624A1 (en) | Computer system supporting both dirty-shared and non dirty-shared data processing entities | |
| JPH0467242A (ja) | プロセッサおよびそのキャッシュメモリ制御方法 | |
| US6345320B1 (en) | DMA address buffer and cache-memory control system | |
| US6973541B1 (en) | System and method for initializing memory within a data processing system | |
| KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
| US6477622B1 (en) | Simplified writeback handling | |
| JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
| US6349367B1 (en) | Method and system for communication in which a castout operation is cancelled in response to snoop responses | |
| JPH04230549A (ja) | 多重レベル・キャッシュ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081203 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091203 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |