JPH10154134A - メモリ更新履歴保存装置およびメモリ更新履歴保存方法 - Google Patents

メモリ更新履歴保存装置およびメモリ更新履歴保存方法

Info

Publication number
JPH10154134A
JPH10154134A JP9228238A JP22823897A JPH10154134A JP H10154134 A JPH10154134 A JP H10154134A JP 9228238 A JP9228238 A JP 9228238A JP 22823897 A JP22823897 A JP 22823897A JP H10154134 A JPH10154134 A JP H10154134A
Authority
JP
Japan
Prior art keywords
cache
transaction
data
bus
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9228238A
Other languages
English (en)
Other versions
JP3083786B2 (ja
Inventor
Yoshio Masubuchi
美生 増渕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP09228238A priority Critical patent/JP3083786B2/ja
Publication of JPH10154134A publication Critical patent/JPH10154134A/ja
Application granted granted Critical
Publication of JP3083786B2 publication Critical patent/JP3083786B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】既存のコンピュータシステムのメモリ制御部を
改造せずに、付加ハードのみによってメモリ状態回復機
能を実現する。 【解決手段】メモリ制御部20とは別個にビフォアイメ
ージバッファ制御部21が設けられており、それがバス
16に接続されている。ビフォアイメージバッファ制御
部21は、CPUからそれに対応するキャッシュに対し
てライトアクセス要求があった場合に、当該キャッシュ
からバス16上に発行されるトランザクションに応答し
て自動的に起動して、主メモリ12から更新前データを
リードするためのトランザクションを発行する。このよ
うに、メモリ制御部20とは独立して動作可能なビフォ
アイメージバッファ制御部21を設けることにより、メ
モリコントローラを改造せずに、既存のコンピュータシ
ステムをそのまま流用して容易にメモリ状態回復機能を
実現することが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はコンピュータシス
テムの主記憶の内容を復元するメモリ状態回復機能の実
現に必要な主記憶の更新履歴情を保存するメモリ更新履
歴保存装置およびメモリ更新履歴保存方法に関する。
【0002】
【従来の技術】通常のコンピュータシステムでは、プロ
グラムを実行した場合に、一旦処理が進んでしまうと、
それ以前の状態に戻って処理を再開するということは一
般に行うことができない。
【0003】ところが、次に示す各種の応用技術におい
ては、メモリの内容を以前の状態に戻してその時点から
処理を継続する機能(メモリ状態回復機能)があること
が望まれる。
【0004】・ソフトウェアデバッキング プログラムの実行中に何らかのエラーが発生した場合
に、以前の状態に遡ることにより、エラーの原因を解析
することができる。
【0005】・フォールトトレラントシステム システムの動作中に何らかの故障により処理が続行でき
なくなった場合、以前の状態に戻ってそこから処理を再
開することにより、システムを停止させることなく動作
を継続することができる。
【0006】このようなフォールトトレラント技術は、
例えばPhilip A Bernstein, “Sequoia:A Fault-Tolera
nt Tightly Coupled Multiprocessor for Transaction
Processing, ”IEEE Computer, Vol.21,No.2,1988 に開
示されている。
【0007】・バックトラッキング 論理型のプログラミング言語では、実行状態のバックト
ラッキングが基本的な操作である。メモリの内容が以前
の状態に戻る機能を用いることにより、バックトラッキ
ングを実現することができる。
【0008】以上のようなメモリ状態回復機能を実現す
る方法として考えられている技術の一つに、“バックワ
ード手法”がある。このような技術は、例えばRok Sosi
c ,“History Cache:Hardware Support for Reverse E
xecutrrion, ”Computer Architecture News, Vol.22,N
o.5,1994に開示されている。
【0009】図6には、“バックワード手法”を用いて
メモリ状態回復機能を実現するために必要な従来の典型
的なコンピュータシステムの構成が示されている。図6
のシステムでは、N個のCPU31〜32、各CPUに
対応するN個のキャッシュ41〜42が設けられてい
る。キャッシュ41〜42は、メモリ制御部60とバス
50を介して接続されている。
【0010】メモリ制御部60は、主メモリ70とビフ
ォアイメージバッファ80とに接続されており、それら
主メモリ70およびビフォアイメージバッファ80に対
するアクセスを制御する。ビフォアイメージバッファ8
0は、主メモリ70の更新前データとそのアドレスとの
組から成る更新履歴情報を格納するためのものである。
【0011】メモリ制御部60は、主メモリ70に対す
る書き込み要求が発行されると、主メモリ70に対する
実際のライトアクセスに先だって、書き込み対象の更新
前データを主メモリ70から読み出し、その読み出しデ
ータと対応するアドレスとをビフォアイメージバッファ
80に書き込む。
【0012】この構成により、障害発生時などにおいて
は、ビフォアイメージバッファ80の更新履歴情報を主
メモリ70に書き戻すだけで、主メモリ70の内容を障
害発生前の状態に復元することが可能となる。
【0013】
【発明が解決しようとする課題】ところが、この方式で
は、メモリ制御部60に、ビフォアイメージバッファ8
0に対するアクセスを制御するバッファアクセス制御機
能と、主メモリ70の状態を保存するために必要な各種
機能を制御するための状態保存制御機能などを組み込む
必要があるため、既存のメモリコントローラを利用する
ことができず、メモリコントローラを新たに開発しなけ
ればならないという問題がある。したがって、既存のコ
ンピュータシステムをそのまま流用してメモリ状態回復
機能を実現することは実際上困難であった。
【0014】この発明は、既存のコンピュータシステム
のメモリ制御部を改造せずに、既存のコンピュータシス
テムをそのまま流用して容易にメモリ状態回復機能を実
現し得るメモリ更新履歴保存装置およびメモリ更新履歴
保存方法を提供することを目的とする。
【0015】
【課題を解決するための手段】この発明は、1以上のC
PUと、各CPUに対応して設けられた1以上のキャッ
シュと、主記憶と、この主記憶を制御するメモリコント
ローラと、少なくとも前記1以上のキャッシュと前記メ
モリコントローラとが接続されるバスと備えたコンピュ
ータシステムにおいて前記主記憶の記憶内容を復元する
ために必要な更新履歴情報を保存するメモリ更新履歴保
存装置において、前記主記憶の更新前データとその更新
前データの格納位置を示すアドレスとの組を前記更新履
歴情報として格納するためのバッファと、前記バスに接
続され、前記バッファに対する更新履歴情報の書き込み
を制御するバッファアクセス制御手段とを具備し、前記
バッファアクセス制御手段は、前記CPUからそれに対
応するキャッシュに対してライトアクセス要求があった
場合に当該キャッシュから前記バス上に発行されるトラ
ンザクションに応答して、前記ライトアクセス要求の対
象となる前記主記憶上のデータを読み出すためのリード
トランザクションを前記バス上に発行するトランザクシ
ョン発行手段と、前記リードトランザクションの発行に
応答して前記メモリコントローラによって前記主記憶か
ら前記バス上に読み出されたデータと、そのデータに対
応するアドレスとを、前記バッファに格納する更新履歴
書き込み手段とを具備することを特徴とする。
【0016】このメモリ更新履歴保存装置においては、
メモリコントローラとは別個にバッファアクセス制御手
段が設けられており、それがバスに接続されている。バ
ッファアクセス制御手段は、主記憶に対するライトアク
セス要求がメモりコントローラに送られた時に動作する
のではなく、CPUからそれに対応するキャッシュに対
してライトアクセス要求があった場合に当該キャッシュ
からバス上に発行されるトランザクション、例えば、バ
スに接続し得る他のキャッシュに対して対応するキャッ
シュラインの無効化を指示する無効化トランザクショ
ン、に応答して自動的に動作する。すなわち、無効化ト
ランザクションが検出されると、バッファアクセス制御
手段は、その無効化トランザクションで指定されるキャ
ッシュラインのアドレスを用いる事などにより、ライト
アクセス要求の対象となる主記憶上のデータを読み出す
ためのリードトランザクションをバス上に発行する。そ
して、このリードトランザクションに応答してメモリコ
ントローラが主記憶からバス上に読み出したデータと、
そのデータに対応するアドレスとが、バッファアクセス
制御手段によってバッファに書き込まれる。
【0017】このように、メモリコントローラとは独立
して動作可能なバッファアクセス制御手段を設けること
により、既存のコンピュータシステムのメモリコントロ
ーラを改造せずに、既存のコンピュータシステムをその
まま流用して容易にメモリ状態回復機能を実現すること
が可能となる。
【0018】また、主記憶へのデータ書き込み時では無
く、キャッシュへのデータ書き込み時に更新前データを
採取しているので、チェックポイントロールバックによ
るシステム回復手法を用いているシステムに適用した場
合には、チェックポイント時に、キャッシュに保持され
ていた更新データを主記憶に書き出すだけで良く、この
時点で更新前データをバッファに保存する必要がなくな
るため、チェックポイント処理のオーバーヘッドを小さ
くすることができる。
【0019】また、バッファアクセス制御手段は、キャ
ッシュから発行されるトランザクションが、主記憶、あ
るいはバスに接続し得る他のキャッシュの対応するキャ
ッシュラインからのデータ読み出し、および他のキャッ
シュの対応するキャッシュラインの無効化を指示するリ
ードおよび無効化トランザクションである場合には、バ
ス上にトランザクションを発行せず、キャッシュからの
リードおよび無効化トランザクションによってバス上に
読み出されたデータおよび対応するアドレスをそのまま
利用してバッファに格納することができる。
【0020】
【発明の実施の形態】以下、図面を参照してこの発明の
実施形態を説明する。図1には、この発明の一実施形態
に係るコンピュータシステムの構成が示されている。
【0021】図1に示すように、本実施形態のコンピュ
ータシステムは、N個のCPU(プロセッサ)14〜1
5、各CPUに対応するN個のキャッシュ17〜18が
設けられている。キャッシュ17〜18は、メモリ制御
部20、およびビフォアイメージバッファ制御部21
と、バス16を介して接続されている。
【0022】メモリ制御部は、主メモリ12をアクセス
制御する通常のメモリコントローラである。ビフォアイ
メージバッファ制御部21は、主メモリ12の更新前デ
ータとそのアドレスとの組をスタック形式に蓄積するビ
フォアイメージバッファ13を制御するためのものであ
り、バスインターフェース制御部211、状態保存制御
部212、バストランザクション応答制御部213、バ
ッファアクセス制御部214、およびバストランザクシ
ョン発行制御部215を有している。
【0023】バスインタフェース制御部211は、バス
16と直接接続され、バスの制御およびスヌープ(バス
トランザクションの監視)を行う。すなわち、バスイン
ターフェース制御部211は、常時、バス16を監視し
ており、バス16に発行されたトランザクションに応じ
て動作する。状態保存制御部212は、主メモリ12の
状態を保存するために必要な各種機能を制御する。バス
トランザクション応答制御部213は、バス16に発行
されたトランザクションに対して応答を返す機能を制御
する。バッファアクセス制御部214は、ビフォアイメ
ージバッファ13と接続され、ビフォアイメージバッフ
ァに対するアクセスを制御する。バストランザクション
発行制御部215は、主メモリ12の状態をビフォアイ
メージバッファ13に保存するために必要なバストラン
ザクションを発行する機能を制御する。
【0024】キャッシュ17〜18は、コピーバック型
のキャッシュであり、以下に説明する方式にしたがっ
て、データ一貫性保持のためのプロトコルを実現する。
これらキャッシュ17〜18は、それぞれ対応するCP
U(プロセッサ)14〜15に1次キャッシュが存在す
る場合には2次キャッシュとして機能する。また、これ
らキャッシュ17〜18自体が対応するCPUに内蔵さ
れていても良い。
【0025】キャッシュ17〜18は、キャッシュライ
ンデータを保持するデータメモリと、データメモリに格
納された各キャッシュラインデータを管理する情報を保
持するためのタグメモリを有している。
【0026】図2にタグメモリの一例を示す。タグメモ
リには、対応するキャッシュラインデータのキャッシュ
ラインアドレス(ADDR)を示すアドレスタグと、キ
ャッシュラインデータの状態を示す3ビットのデータが
格納される。キャッシュラインデータの状態は、バリッ
ド(V:Valid)、モディファイド(M:Modi
fied)、シェアード(S:Shared)の3ビッ
トの値の組み合わせにより管理される。なお、バリッド
(V)は、対応するキャッシュラインデータが有効
(“1”)であることを示す。モディファイド(M)
は、キャッシュ上で更新された状態にあることを示す。
シェアード(S)は、他のプロセッサのキャッシュ上に
も同じキャッシュラインデータが保持されていることを
示す。モディファイド(M)は、キャッシュ上で更新さ
れた状態にあることを示す。シェアード(S)は、他の
プロセッサのキャッシュ上にも同じキャッシュラインデ
ータが保持されていることを示す。これら3ビットの値
の組み合わせにより、図3に示すように、キャッシュラ
インデータは4つの状態、インバリッド、クリーン・エ
クスクルーシブ、クリーン・シェアード、モディファイ
ドを取る。
【0027】コピーバックキャッシュに関連した、バス
トランザクションは、次のようなものを含む。 ・“Read−Line”……主メモリからキャッシュ
へのキャッシュラインデータのリードトランザクショ
ン。これは、CPUからのあるアドレスのキャッシュラ
インに対するリードアクセスに対して、該当する有効な
キャッシュラインデータがキャッシュに存在せずキャッ
シュミスした場合に発行される。
【0028】なお、キャッシュミスは、アクセスの対象
とするキャッシュラインデータを示すアドレスがタグメ
モリに格納されていない、およびアドレスは格納されて
いるがバリッドビット(V)が無効(“0”)を示す場
合である。これに対し、キャッシュヒットは、対象とす
るキャッシュラインデータのアドレスがタグメモリに格
納され、バリッドビット(V)が有効(“1”)を示す
場合である。
【0029】・“Read−Line−with−In
validate”……主メモリからキャッシュへのキ
ャッシュラインデータのリードおよび他のキャッシュに
格納されたデータの無効化トランザクション。これは、
CPUからのライトアクセスに対して、キャッシュミス
した場合に発行される。つまり、CPUからのライトア
クセスでキャッシュミスが発生すると、その時点で、同
一のキャッシュラインデータを保持する他のキャッシュ
との間で不整合が生じることが予想できる。これは、ラ
イト対象のキャッシュラインデータが主メモリからキャ
ッシュにリフィルされた後にそのキャッシュラインデー
タの書き換えが行われるからである。したがって、CP
Uからのライトアクセスに対してキャッシュミスした場
合には、キャッシュラインデータのリードおよび他のキ
ャッシュに格納されたデータの無効化を同時に指示する
トランザクションが実行される。
【0030】・“Write−Line”……キャッシ
ュから主メモリへのキャッシュラインデータのライトト
ランザクション。これは、CPUからの指示により明示
的にキャッシュラインデータを主メモリ12に書き出す
場合、キャッシュラインデータを置換する必要が生じて
更新データが主メモリ12に書き出される場合、および
他のCPUからの要求に応じて更新データを主メモリ1
12に書き出す場合に発行される。
【0031】・“Invalidate”……他のキャ
ッシュに格納されたデータの無効化トランザクション。
これは、CPUからのライトアクセスに対して、キャッ
シュに当該ラインが存在したが、クリーン・シェアード
であった場合に発行される。クリーン・シェアードは、
他のキャッシュに同一のキャッシュラインデータが存在
しており、且つそれらキャッシュラインデータが同一値
である状態である。このトランザクションでは無効化対
象のキャッシュラインデータを示すアドレスのめの転送
が行われ、データ転送は伴わない。
【0032】また、この他に、次のバストランザクショ
ンをサポートする。 ・“Read−Line−none−Snoop”……
他のキャッシュはスヌーブせず、必ずメモリ制御部が応
答し、主メモリからラインデータを読み出す。本実施形
態では、プロセッサ・キャッシュから発行されることは
ない。
【0033】なお、以上に示したトランザクション以外
にもサポートされることが多いが、以下の記述に直接関
係しないので、説明を省略する。また、キャッシュ17
〜18がそれぞれ対応するCPUに内蔵されている場合
においては、上述のトランザクションはCPU自体によ
って発行されることになる。
【0034】バス16は、マルチプロセッサ構成をサポ
ート可能なプロセッサバスなどから構成されるものであ
り、シェアード応答信号線161、モディファイト応答
信号線162、バスコマンド信号線163、アドレス/
データ信号線164を含む。一般には、この他にアービ
トレーションを行うための信号線などを含むが、以下の
記述に直接関係しないので、説明を省略する。
【0035】シェアード応答信号線161(share
d)は、他のCPU/キャッシュにより発行されたトラ
ンザクションに対して、そのトランザクションが対象と
しているキャッシュラインデータを保持している、すな
わち共有していることを通知するために用いられる。
【0036】モディファイド応答信号線162(mod
efied)は、他のCPU/キャッシュにより発行さ
れたトランザクションに対して、トランザクションが対
象としているキャッシュラインデータを更新された状態
で保持していることを通知するために用いられる。この
信号がアサートされたときは、そのトランザクションは
アボートされる。この後、トランザクションをアボート
したスレーブは、バスを獲得した後、更新キャッシュラ
インデータをメモリに書き出す。一方、最初のトランザ
クションを発行したマスタは、再びバスを獲得した後、
同じトランザクションを発行する。
【0037】なお、これら2つの信号線161および1
62が同時にアサートされたときにも同様にそのトラン
ザクションはアボートされる。バスコマンド信号線16
3(command)は、前述したバストランザクショ
ンの種類を示す他、トランザクションに関する各種情報
を送るために用いられる。
【0038】アドレス/データ信号線164(addr
ess/date)は、バストランザクションがその対
象とするキャッシュラインデータのアドレスおよびデー
タを送るため信号線である。図1においては一つにまと
めて示しているが、共通の信号線を時分割で使う方式
や、アドレス/データ各々に独立した信号線を設ける方
式があり、いずれであっても構わない。
【0039】次に、図1のマルチプロセッサシステムの
動作、すなわち、前述したバストランザクションを用い
てキャッシュ間のデータ一貫性保持プロトコルがどのよ
うに実現されているかを説明する。
【0040】ここでは、トランザクションを発行してア
クセスを起動する側のCPUおよびキャッシュ(マスタ
プロセッサ)、あるCPU/キャッシュが発行したトラ
ンザクションに対して動作する他のCPUおよびキャッ
シュ(スレーブプロセッサ)、およびメモリ制御部2
0、およびビフォアイメージバッファ制御部21それぞ
れの動作について説明する。 (1)マスタプロセッサ まず、トランザクションを発行してアクセスを起動する
マスタプロセッサの動作と、発行されたトランザクショ
ンに対応するキャッシュの状態遷移について説明する。
なお、マスタプロセッサがCPU14(キャッシュ1
7)であるとして説明する。
【0041】・リードアクセス(キャッシュヒット):
CPU14がリードアクセス要求した結果、キャッシュ
17においてキャッシュヒットした場合、キャッシュ1
7から該当するデータが読み出される。CPU14(キ
ャッシュ17)は、バス16にトランザクションを発行
しない。このとき、キャッシュラインの状態は変わらな
い。
【0042】・リードアクセス(キャッシュミス):C
PU14がリードアクセス要求した結果、キャッシュ1
7においてキャッシュミスした場合、CPU14(キャ
ッシュ17)は、バス16に“Read−Line”ト
ランザクションを発行する。
【0043】これに対して、モディファイト応答信号線
162を介してモディファイト応答信号がアサートされ
たならば、他のキャッシュのうち一つがそのラインの更
新データを保持していることになる。キャッシュ17
は、この後、モディファイド応答信号をアサートしたキ
ャッシュから主メモリ12に書き出されたキャッシュラ
インデータを読み込み、そのキャッシュ17のデータメ
モリに格納する。キャッシュラインの状態は“クリーン
・シェアード”とする。
【0044】一方、モディファイド応答信号がアサート
されず、シェアード応答信号線161を介してシェアー
ド応答信号がアサートされたならば、他のキャッシュが
そのラインをクリーンな状態で保持していることにな
る。キャッシュ17は、キャッシュラインの状態を“ク
リーン・シェアード”とするとともに、主メモリ12よ
り読み出されたデータを取り込んで、データメモリに格
納する。
【0045】また、モディファイド応答信号とシェアー
ド応答信号のいずれもアサートされない場合には、どの
キャッシュにも対象とするキャッシュラインが保持され
ていないことになる。キャッシュ17は、キャッシュラ
インの状態を“クリーン・エクスクルーシブ”とする。
この場合も、キャッシュ17は、主メモリ12より読み
出されたデータを取り込み、データメモリに格納する。
ただし、後述するように、本方式ではクリーンエクスク
ルーシブ状態を避けるように制御されるので、本条件は
実際には存在しないことになる。
【0046】いずれの場合も、キャッシュ17はバス1
6から取り込んだキャッシュラインデータのうち、必要
とされるデータをCPU14に返す。 ・ライト(キャッシュヒット/モディファイド):CP
U14がライトアクセス要求した結果、キャッシュ17
においてキャッシュヒットし、対応するキャッシュライ
ンデータがモディファイドの状態の場合、該当するキャ
ッシュラインにデータが書き込まれる。CPU14(キ
ャッシュ17)は、バス16にトランザクションを発行
しない。このとき、キャッシュラインの状態は変わらな
い。
【0047】・ライト(キャッシュヒット/クリーンエ
クスクールシブ):CPU14がライトアクセス要求し
た結果、キャッシュ17においてキャッシュヒットし、
対応するキャッシュラインデータがクリーンエクスクル
ーシブの状態の場合、該当するキャッシュラインにデー
タが書き込まれる。CPU14(キャッシュ17)は、
バス16にトランザクションを発行しない。キャッシュ
17は、該当するキャッシュラインの状態を“モディフ
ァイド”に変更する。ただし、後述するように、本方式
ではクリーンエクスクルーシブ状態を避けるように制御
されるので、本条件は実際には存在しないことになる。
【0048】・ライト(キャッシュヒット/クリーンシ
ェアード):CPU14がライトアクセス要求した結
果、キャッシュ17においてキャッシュヒットし、対応
するキャッシュラインデータがクリーンシェアードの状
態の場合、CPU14(キャッシュ17)は、バス16
に“Invalidate”トランザクションを発行す
る。この後、キャッシュ17は、該当するキャッシュラ
インの状態を“モディファイト”にして、データを書き
込む。
【0049】・ライト(キャッシュミス):CPU14
がライトアクセス要求した結果、キャッシュ17におい
てキャッシュミスした場合、バス16に“Read−L
ine−with−Invalidate”トランザク
ションを発行する。
【0050】これに対して、モディファイド応答信号が
アサートされたならば、他のキャッシュのうち一つがそ
のラインの更新データを保持していることになる。キャ
ッシュ17は、この後、モディファイド応答信号をアサ
ートしたキャッシュから主メモリ12に書き出されたキ
ャッシュラインデータを読み込み、それをデータメモリ
に格納する。
【0051】一方、モディファイド応答信号がアサート
されなければ、キャッシュ17は、主メモリ12より読
み出されたデータを取り込み、データメモリに格納す
る。いずれの場合も、該当するキャッシュラインの状態
を“モディファイド”とし、データを書き込む。 (2)スレーブプロセッサ 次にあるプロセッサ/キャッシュが発行したトランザク
ションに対する他のプロセッサとそれに対応するキャッ
シュ(スレーブプロセッサ)の動作、および状態遷移に
ついて説明する。なお、マスタプロセッサがCPU14
(キャッシュ17)、スレーブプロセッサがCPU15
(キャッシュ18)であるとし、マスタプロセッサから
発行されるトランザクション毎に説明する。
【0052】・“Read−Line”トランザクショ
ンに対する応答:キャッシュ18は、“Read−Li
ne”トランザクションが対象とするキャッシュライン
データを“モディファイド”の状態で保持している場
合、モディファイド応答信号線162を介してモディフ
ァイド応答信号をアサートして、更新データを保持して
いることを通知する。この後、キャッシュ18は、“W
rite−Line”トランザクションを発行して更新
データを主メモリ12に書き出す。キャッシュ18は、
該当するキャッシュラインの状態を“クリーンシェアー
ド”とする。
【0053】また、キャッシュ18は、“Read−L
ine”トランザクションが対象とするキャッシュライ
ンデータを“クリーンエクススクルーシブ”または“ク
リーンシェアード”の状態で保持している場合、シェア
ード応答信号線161を介してシェアード応答信号をア
サートして、クリーンデータを保持していることを通知
する。いずれの場合も、キャッシュ18は、該当するキ
ャッシュラインの状態を“クリーンシェアード”とす
る。
【0054】なお、キャッシュ18は、対応する有効な
キャッシュラインデータを保持していない場合には、何
もしない。 ・“Read−Line−with−Invalida
te”トランザクションに対する応答:キャッシュ18
は、“Read−Line−with−Invalid
ate”トランザクションが対象とするキャッシュライ
ンデータを“モディファイド”の状態で保持している場
合、モディファイド応答信号線162を介してモディフ
ァイド応答信号をアサートして、更新データを保持して
いることを通知する。この後、キャッシュ18は、“W
rite−Line”トランザクションを発行して更新
データを主メモリ12に書き出す。キャッシュ18は、
該当するキャッシュラインの状態を“インバリッド”と
する。
【0055】また、キャッシュ18は、“Read−L
ine−with−Invalidate”トランザク
ションが対象とするキャッシュラインデータを“クリー
ンエクスクルーシブ”または“クリーンシェアード”の
状態で保持している場合、該当するキャッシュラインの
状態を“インバリッド”とする。
【0056】なお、キャッシュ18は、対応する有効な
キャッシュラインデータを保持していない場合には、何
もしない。 ・“Invalidate”トランザクションに対する
応答:キャッシュ18は、“Invalidate”ト
ランザクションが対象とするキャッシュラインデータを
“クリーンエクスクルーシブ”または“クリーンシェア
ード”の状態で保持している場合、該当するキャッシュ
ラインの状態を“インバリッド”とする。
【0057】また、キャッシュ18は、対応する有効な
キャッシュラインデータを保持していない場合には、何
もしない。なお、この場合、対応するラインを“モディ
ファイド”の状態で保持していることはあり得ない。
【0058】・“Write−Line”トランザクシ
ョンに対する応答:キャッシュ18は、何もしない。 ・“Read−Line−none−Snoop”トラ
ンザクションに対する応答:キャッシュ18は、何もし
ない。 (3)メモリ制御部 メモリ制御部20は、各バストランザクションに対し
て、次のような動作をする。
【0059】・“Write−Line”トランザクシ
ョンに対する応答:バス16に発行された“Write
−Line”トランザクションをスヌープすると、メモ
リ制御部20は、キャッシュから書き出されるキャッシ
ュラインデータを取り込み、主メモリ12の該当するア
ドレスに書き込む。
【0060】・“Invalidate”トランザクシ
ョンに対する応答:何もしない。 ・“Read−Line”、“Read−Line−w
ith−Invalidate”トランザクションに対
する応答:メモリ制御部20は、これら2つのトランザ
クションに対しては、同一の動作をする。
【0061】これらのトランザクションに対してモディ
ファイド応答信号がアサートされた場合は、何もしな
い。これは、アサートしたスレーブプロセッサのキャッ
シュが既に更新データを保持していることを示してい
る。この場合、これらのトランザクションに引き続き、
このキャッシュから“Write−Line”トランザ
クションが発行され、更新データが書き出される。
【0062】一方、モディファイド応答信号がアサート
されない場合は、アクセス対象となっているキャッシュ
ラインのアドレスで示されるメモリロケーションからキ
ャッシュラインデータを読み出し、バス16に出力す
る。
【0063】・“Read−Line−none−Sn
oop”トランザクションに対する応答:アクセス対象
となっているキャッシュラインのアドレスで示されるメ
モリロケーションからキャッシュラインデータを読み出
し、バス16に出力する。 (4)ビフォアイメージバッファ制御部 次に、各バストランザクションに対するビフォアイメー
ジバッファ制御部21の動作を説明する。以下、バス1
6に発行されるトランザクション毎に説明する。
【0064】・“Read−Line”トランザクショ
ンに対する応答:バスインタフェース制御部211がバ
ス16に発行された“Read−Line”トランザク
ションをスヌープすると、状態保存制御部212は、バ
ストランザクション応答制御部215を起動する。バス
トランザクション応答制御部215は、バスインターフ
ェース制御部211を介してシェアード応答信号をアサ
ートする。これによって、マスタプロセッサのキャッシ
ュの現在対象としているキャッシュラインの状態を“ク
リーンエクスクルーシブ”ではなく、“クリーンシェア
ード”の状態にすることができる。これによって、この
後、当該キャッシュラインに対してライトアクセスが発
生した場合に、“Invalidate”トランザクシ
ョンの発行を引き起こすことができ、更新前のデータを
保存することを可能としている。
【0065】なお、プロセッサおよびキャッシュの機能
として、“クリーンエクスクルーシブ”状態を避ける方
法がある場合には、ビフォアイメージバッファ制御部2
1がシェアード応答信号をアサートする必要はない。
【0066】・“Invalidate”トランザクシ
ョンに対する応答:バスインタフェース制御部211が
バス16に発行された“Invalidate”トラン
ザクションをスヌープすると、状態保存制御部212
は、バストランザクション応答制御部215を起動す
る。バストランザクション応答制御部215は、バスイ
ンターフェース制御部211を介してシェアード応答信
号とモディファイド応答信号をアサートする。これによ
って、“Invalidate”トランザクションアボ
ードされたことになり、この後、マスタプロセッサは、
再びバスを獲得した後、同じトランザクションを再発行
する。
【0067】バストランザクション応答制御部215
は、下記の処理が完了するまで、再発行された“Inv
alidate”トランザクションに対して、シェアー
ド応答信号およびモディファイド応答信号をアサート
し、アボートし続ける。
【0068】状態保存制御部212は、バストランザク
ション発行制御部215を起動する。バストランザクシ
ョン発行制御部215は、更新前のキャッシュラインデ
ータを得るため、バスインタフェース制御部211を介
して得た無効対象となっているキャッシュラインのアド
レスで示されるメモリロケーションに対する“Read
−Line−non−Snoop”トランザクションを
発行する。
【0069】さらに、状態保存制御部212は、バッフ
ァアクセス制御部214を起動し、メモリ制御部20が
主メモリ12から読み出してバス16に出力したキャッ
シュラインデータを、バスインタフェース制御部211
からバッファアクセス制御部214に転送して、アドレ
ス値と共にビフォアイメージバッファ13に書き込ませ
る。
【0070】この処理が終了すると、バストランザクシ
ョン応答制御部215は、再発行された“Invali
date”トランザクションに対するアボートを中止す
る。また、状態保存制御部212は、上記処理を実施し
たキャッシュブロックのアドレスを記憶し、この後、再
び同じアドレスに対する“Invalidate”トラ
ンザクションが発行された場合には、無視する。
【0071】図4には、この“Invalidate”
トランザクションに対する応答処理の動作タイミングが
示されている。バストランザクション発行制御部215
は、“Invalidate”トランザクションを確認
すると、その時のアドレス(A)を使用して、主メモリ
12からアドレス(A)の更新前データ(D1〜D4)
を読み出すための“Read−Line−non−Sn
oop”トランザクションを開始する。このとき、各キ
ャッシュメモリはそのトランザクションに対してはスヌ
ープ動作を行わない。
【0072】メモリ制御部20は、“Read−Lin
e−non−Snoop”トランザクションに応答し
て、主メモリ12との間に設けられているメモリアドレ
スライン(MM address)、データライン(M
M data)、リードライト制御ライン(MM RA
S#、CAS#、WE#)を制御して、主メモリ12の
アドレス(A)からキャッシュラインデータ(D1〜D
4)を読み出し、それをバス16のデータバス(dat
a bus)上に出力する。
【0073】一方、ビフォアイメージバッファ制御部2
1においては、バッファアクセス制御部214にもアド
レス(A)が渡される。バッファアクセス制御部214
は、ビフォアイメージバッファ13との間に設けられた
アドレスライン(BIB address)、データラ
イン(BIB data)、リードライト制御ライン
(BIB RAS#、CAS#、WE#)を制御して、
アドレス(A)と、バス16のデータバス(data
bus)上に出力されたデータ(D1〜D4)との組
を、ビフォアイメージバッファ13の該当するエントリ
にスタックする。
【0074】・“Read−Line−with−In
validate”トランザクションに対する応答:
“Read−Line−with−Invalidat
e”トランザクションの発行に伴って、モディファイド
応答信号がアサートされた場合は、アサートしたキャッ
シュが既に更新データを保持していることを示してお
り、そのプロセッサが最新のチェックポイント以降にラ
イトアクセスを実行していることがわかる。このため、
その時点で以前のデータがビフォアイメージバッファ1
3に格納されていることになり、改めてこのアドレスの
データをビフォアイメージバッファに格納する必要はな
い。したがって、状態保存制御部112は、何もしな
い。
【0075】一方、“Read−Line−with−
Invalidate”トランザクションの発行に伴っ
て、モディファイド応答信号がアサートされない場合
は、バッファアクセス制御部214を起動し、メモリ制
御部20が主メモリ12から読み出しバス16に出力し
たキャッシュラインデータを、バスインタフェース制御
部211からバッファアクセス制御部214に転送し
て、アドレス値と共にビフォアイメージバッファ13に
書き込ませる。
【0076】この場合、“Read−Line−non
−Snoop”トランザクションを発行する必要はな
い。 ・“Write−Line”トランザクションに対する
応答:何もしない。 (5)チェックポイント 次に、前述のようにして動作するマルチプロセッサシス
テムにおけるチェックポイント処理について説明する。
【0077】チェックポイント処理は、チェックポイン
ト毎に障害回復に必要な情報を定期的に採取し、障害発
生時には、その直前のチェックポイントにロールバック
することにより処理を再開するというシステム回復方法
である。
【0078】チェックポイント時には、プロセッサ14
〜15の内部状態を主メモリ12に書き出すとともに、
各キャッシュ17〜18の“モディファイド”状態にあ
る全てのキャッシュラインのデータを主メモリ12に書
き戻す。なお、実際には、プロセッサ内部状態の主メモ
リ12への書き出しもキャッシュを介して行われるの
で、バストランザクション上、特別な配慮は不要であ
る。キャッシュ17〜18は、主メモリ12に書き戻し
たキャッシュラインの状態を“クリーンシェアード”ま
たは“インバリッド”にする。主メモリ12へのライン
データの書き戻しは“Write−Line”トランザ
クションを用いて行われるため、このときにビフォアイ
メージバッファ13へのデータ保存が発生することはな
い。
【0079】また、ビフォアイメージバッファ13の内
容は正常にチェックポイントが採取された時にクリアさ
れ、そして、通常のプロセス処理の再開されると、ビフ
ォアイメージバッファ13への更新履歴情報の書き込み
が開始される。ロールバック時には、各CPUの内部状
態のみならず、主メモリ12の状態も直前のチェックポ
イントときの状態に復元される。この主メモリ12の状
態回復は、ビフォアイメージバッファ13に蓄積されて
いる更新前データを逐次読み出して、主メモリ12の対
応する番地に書き戻すことによって実現される。
【0080】この方式によると、チェックポイント時に
は、コピーバックキャッシュに保持されていた更新デー
タを主メモリ16に書き出すだけで良く、この時点で更
新前データをビフォアイメージバッファ13に保存する
必要がなくなるため、チェックポイントのオーバーヘッ
ドを小さくすることができる。
【0081】以上のように、この実施形態においては、
通常のメモリコントローラから構成されるメモリ制御部
20とは別個にビフォアイメージバッファ制御部21が
設けられており、それがバス16に接続されている。ビ
フォアイメージバッファ制御部21は、主メモリ16に
対するライトアクセス要求がメモリ制御部20に送られ
た時に動作するのではなく、CPUからそれに対応する
キャッシュに対してライトアクセス要求があった場合
に、当該キャッシュからバス16上に発行されるトラン
ザクションに応答して自動的に起動して、主メモリ12
から更新前データをリードするためのトランザクション
を発行する。このように、メモリコントローラとは独立
して動作可能なビフォアイメージバッファ制御部21を
設けることにより、既存のコンピュータシステムのメモ
リコントローラを改造せずに、既存のコンピュータシス
テムをそのまま流用して容易にメモリ状態回復機能を実
現することが可能となる。
【0082】なお、“Invalidate”トランザ
クションおよび“Write−Line”トランザクシ
ョンに対するビフォアイメージバッファ制御部21の動
作は、次のように変えて実施することも可能である。
【0083】・“Invalidate”トランザクシ
ョンに対する応答:バスインタフェース制御部211が
バス16に発行された“Invalidate”トラン
ザクションをスヌープすると、状態保存制御部212
は、バストランザクション応答制御部215を起動す
る。バストランザクション応答制御部215は、下記の
処理が完了するまで、同じアドレスに対する“Writ
e−Line”トランザクションに対して、シェアード
応答信号をアサートし、アボードし続ける。
【0084】状態保存制御部212は、バストランザク
ション発行制御部215を起動する。バストランザクシ
ョン発行制御部215は、更新前のキャッシュラインデ
ータを得るため、バスインタフェース制御部211を介
して得た無効対象となっているキャッシュラインのアド
レスで示されるメモリロケーションに対する“Read
−Line−non−Snoop”トランザクションを
発行する。
【0085】さらに、状態保存制御部212は、バッフ
ァアクセス制御部214を起動し、メモリ制御部20が
主メモリ12から読み出してバス16に出力したキャッ
シュラインデータを、バスインタフェース制御部211
からバッファアクセス制御部214に転送して、アドレ
ス値と共にビフォアイメージバッファ13に書き込ませ
る。
【0086】この処理が終了すると、バストランザクシ
ョン応答制御部215は、同じアドレスに対する“Wr
ite−Line”トランザクションに対するアボート
を中止する。
【0087】・“Write−Line”トランザクシ
ョンに対する応答:上記の通り、“Invalidat
e”トランザクションに対する更新前キャッシュライン
データ読み込み処理中は、バスインタフェース制御部2
11がバス16に発行された“Write−Line”
トランザクションをスヌープすると、これが同じアドレ
スに対するものであれば、バストランザクション応答制
御部215がシェアード応答信号およびモディファイド
応答信号をアサートし、アボートする。
【0088】この処理実行中以外、および実行中であっ
ても異なるアドレスに対する場合には何もしない。ま
た、前記実施形態では、ビフォアイメージバッファを独
立したメモリで構成し、ビフォアイメージバッファ制御
部21に接続していたが、主メモリ12の一部を利用し
て実施することも可能である。
【0089】この実現例を図5に示す。図5のシステム
構成においては、ビフォアイメージバッファ13は、主
メモリ12の一部の記憶領域を用いて実現されている。
また、バッファアクセス制御部214は、バストランザ
クション発行制御部215とも接続され、ビフォアイメ
ージバッファ13のアクセスのためにバス16に対して
トランザクションを発行させる機能を持つ。
【0090】バッファアクセス制御部214は、更新前
データと当該アドレスが転送されると、これらを主メモ
リ12中のビフォアイメージバッファ13に格納するた
め、バストランザクション発行制御部215を起動す
る。トランザクション発行制御部215は、バスインタ
フェース制御部211を介して、2つの“Write−
Line”トランザクションを発行する。
【0091】一つは更新前データを格納するためのもの
であり、もう一つは当該アドレスを格納するためのもの
である。これにより、独立したメモリを備える必要がな
く、安価に構成することが可能となる。
【0092】また、以上の説明では、コピーバック型の
キャッシュについて説明したが、ライトスルーキャッシ
ュに対して以下のようにして更新前データの保存を行う
ことができる。
【0093】ここでは、図1のキャッシュ17〜18が
ライトスルーモードで動作する機能を持つ場合を例とし
て説明するが、ライトスルー専用のキャッシュであって
も同様にして実現できる。
【0094】ライトスルーキャッシュの場合、キャッシ
ュの状態は、 ・インバリッド ・バリッド の2種類である。
【0095】以下では、簡単のため図3の状態管理表を
用い、 ・インバリッド ・クリーンシェアード の2状態で管理するものとする。
【0096】キャッシュ17〜18からバス16に出さ
れるトランザクションの種類としては、次のものがサポ
ートされる。 ・“Read−Line”トランザクション:キャッシ
ュラインデータのリード。これは前述の実施形態と同じ
であり、CPUからのあるアドレスのキャッシュライン
に対するリードアクセスに対して、該当する有効なキャ
ッシュラインデータがキャッシュに存在せずキャッシュ
ミスした場合に発行される。
【0097】・“Write−Word”トランザクシ
ョン:データのライト。CPUからのライトアクセスに
対して、キャッシュ中の当該データの有無に関わらず発
行される。
【0098】バス16も前記実施形態と同一の構成とす
る。但し、本例では、シェアード応答信号線161、モ
ディファイド応答信号線162は、同時にアサートされ
た場合に、当該トランザクションをアボートするという
機能のみを用いる。 (1)マスタプロセッサ まず、トランザクションを発行してアクセスを起動する
マスタプロセッサの動作と、発行されたトランザクショ
ンに対応するキャッシュの状態遷移について説明する。
なお、マスタプロセッサがCPU14(キャッシュ1
7)であるとして説明する。
【0099】・リードアクセス(キャッシュヒット):
CPU14がリードアクセス要求した結果、キャッシュ
17においてキャッシュヒットした場合、キャッシュ1
7から該当するデータが読み出される。CPU14(キ
ャッシュ17)は、バス16にトランザクションを発行
しない。このとき、キャッシュラインの状態は変わらな
い。
【0100】・リードアクセス(キャッシュミス):C
PU14がリードアクセス要求した結果、キャッシュ1
7においてキャッシュミスした場合、CPU14 (キ
ャッシュ17)は、バス16に“Read−Line”
トランザクションを発行する。
【0101】キャッシュ17は、キャッシュラインの状
態を“クリーン・シェアード”とするとともに、主メモ
リ12より読み出されたデータを取り込んで、データメ
モリに格納する。
【0102】キャッシュ17はバス16から取り込んだ
キャッシュラインデータのうち、必要とされるデータを
CPU14に返す。 ・ライト(キャッシュヒット):CPU14がライトア
クセス要求した結果、キャッシュ17においてキャッシ
ュヒットした場合、対応するキャッシュラインデータを
書き込むとともに、バス16に“Write−Wor
d”トランザクションを発行し、主メモリ12のデータ
を書き換える。このとき、キャッシュラインの状態は変
わらない。
【0103】・ライト(キャッシュミス):CPU14
がライトアクセス要求した結果、キャッシュ17におい
てキャッシュミスした場合、バス16に“Write−
Word”トランザクションを発行し、主メモリ12の
データを書き換える。このとき、キャッシュラインの状
態は変わらない。 (2)スレーブプロセッサ 次にあるプロセッサ/キャッシュが発行したトランザク
ションに対する他のプロセッサとそれに対応するキャッ
シュ(スレーブプロセッサ)の動作、および状態遷移に
ついて説明する。なお、マスタプロセッサがCPU14
(キャッシュ17)、スレーブプロセッサがCPU15
(キャッシュ18)であるとする。
【0104】・“Read−Line”トランザクショ
ンに対する応答:何もしない。 ・“Write−Word”トランザクションに対する
応答:キャッシュ18は、トランザクションが対象とす
るキャッシュラインデータを“クリーンシェアード”の
状態で保持している場合、該当するキャッシュラインの
状態を“インバリッド”とする。 (3)メモリ制御部 メモリ制御部20は各バストランザクションに対して、
次のような動作をする。
【0105】・“Read−Line”トランザクショ
ンに対する応答:アクセス対象となっているキャッシュ
ラインのアドレスで示されるメモリロケーションからキ
ャッシュラインデータを読み出し、バス16に出力す
る。
【0106】・“Write−Word”トランザクシ
ョンに対する応答:キャッシュから書き出されるデータ
を取り込み、メモリ12の該当するアドレスに書き込
む。 (4)ビフォアイメージバッファ制御部 次に、各バストランザクションに対するビフォアイメー
ジバッファ制御部21の動作を説明する。
【0107】・“Read−Line”トランザクショ
ンに対する応答:何もしない。 ・“Write−Word”トランザクションに対する
応答:バスインタフェース制御部211がバス16に発
行された“Write−Word”トランザクションを
スヌープすると、状態保存制御部212は、バストラン
ザクション応答制御部215を起動する。バストランザ
クション応答制御部215は、バスインターフェース制
御部211を介してシェアード応答信号とモディファイ
ド応答信号を、シェアード応答信号線161およびモデ
ィファイド応答信号線162にアサートする。これによ
って、“Write−Word”トランザクションはア
ボートされたことになり、この後、マスタプロセッサ
は、再びバスを獲得した後、同じトランザクションを再
発行する。
【0108】バストランザクション応答制御部215
は、下記の処理が完了するまで、再発行された“Wri
te−Word”トランザクションに対して、シェアー
ド応答信号およびモディファイド応答信号をアサート
し、アポートし続ける。
【0109】状態保存制御部212は、バストランザク
ション発行制御部215を起動する。バストランザクシ
ョン発行制御部215は、更新前のキャッシュラインデ
ータを得るため、バスインタフェース制御部211を介
して得た無効対象となっているキャッシュラインのアド
レスで示されるメモリロケーションに対する“Read
−Line”トランザクションを発行する。
【0110】さらに、状態保存制御部212は、バッフ
ァアクセス制御部214を起動し、メモリ制御部20が
主メモリ12から読み出しバス16に出力したキャッシ
ュラインデータを、バスインタフェース制御部211か
らバッファアクセス制御部214に転送して、アドレス
値と共にビフォアイメージバッファ13に書き込ませ
る。
【0111】この処理が終了すると、バストランザクシ
ョン応答制御部215は、再発行された“Write−
Word”トランザクションに対するアボートを中止す
る。また、状態保存制御部212は、上記処理を実施し
たキャッシュブロックのアドレスを記憶し、この後、再
び同じアドレスに対する“Write−Word”トラ
ンザクションが発行された場合には、無視する。
【0112】なお、本例では、“Write−Wor
d”トランザクションに対して、ライン単位で更新前デ
ータを保存しているが、ワードデータのリードがサポー
トされていれば、ワード単位で更新前データを保存して
も良い。 (5)チェックポイント チェックポイントの処理は、プロセッサの内部状態を主
メモリに書き出すことで実現される。ライトスルー型キ
ャッシュであるので、キャッシュの内容を書き出す必要
はない。
【0113】また、ここではライトスルーキャッシュを
対象として説明したが、より一般にキャッシュを持たな
いコンピュータシステムや、非キャッシュアクセス動作
モードを持つコンピュータシステムにおいても、同様の
制御により、メモリ状態回復機能を実現することができ
る。
【0114】また、前記実施形態においては、複数のプ
ロセッサ14〜15を持つマルチプロセッサシステムを
説明したが、キャッシュが同様の機能を持っていれば、
単一プロセッサから成るコンピュータシステムに対して
も適用することが可能である。また、キャッシュが単一
でなく、階層構造を取る場合にも同様に適用可能であ
る。すなわち、マルチプロセッサ対応のCPUおよびキ
ャッシュを持つシステムであれば、適用することができ
る。
【0115】このようにして、ビフォアイメージバッフ
ァ制御部21は、あるキャッシュまたはCPUからバス
16に発行されたトランザクションに応じて、主メモリ
12に保持された更新前データを含むキャッシュライン
データをビフォアイメージバッファ13に保存する。
【0116】すなわち、既存のコンピュータシステムの
バス、プロセッサ、キャッシュ、メモリ制御部には何ら
手を加えずに、バスにビフォアイメージバッファ制御部
21を付加することにより、メモリ状態回復機能を実現
することが可能となる。
【0117】なお、上述のビフォアイメージバッファ制
御部21の動作は、コンピュータ読み取り可能なCD−
ROM等の記録媒体に格納して提供されるコンピュータ
プログラムによって実現することができる。この場合、
コンピュータプログラムには、CPUからそれに対応す
るキャッシュに対してライトアクセス要求があった場合
にキャッシュからバス上に発行されるトランザクション
に応答して、メモリ制御部20を用いてライトアクセス
要求の対象となるデータを主メモリ12から読み出すた
めの手順と、メモリ制御部20を介して主メモリ12か
らバス上に読み出されたデータと、そのデータに対応す
るアドレスとを、ビフォアイメージバッファ13に格納
するための手順とを含ませればよい。これら手順は上述
したハードウェアの動作手順と同様である。また、キャ
ッシュからバスへのトランザクションのスヌープは、例
えば、バス上のトランザクションの状態がハードウェア
によって設定されるステータスレジスタなどを用意し、
そのステータスレジスタをリードすること等によって実
現できる。
【0118】また、ビフォアイメージバッファ制御部2
1にマイクロコンピュータを設け、前述のビフォアイメ
ージバッファ制御部21の動作手順をそのマイクロコン
ピュータのROMに格納されたファームウェアなどの動
作制御プログラムによって制御することもできる。ま
た、本発明は、上記実施例に限定されるものではなく、
本発明の要旨の範囲で種々の変形実施が可能である。
【0119】
【発明の効果】以上説明したように、この発明によれ
ば、既存のコンピュータシステムのメモリ制御部を改造
せずに、付加ハードのみによってメモリ状態回復機能を
実現できるようになり、既存のコンピュータシステムを
そのまま流用する事が可能となる。また、主記憶へのデ
ータ書き込み時では無く、キャッシュへのデータ書き込
み時に更新前データを採取しているので、チェックポイ
ントロールバックによるシステム回復手法を用いている
システムに適用した場合には、チェックポイント時に、
キャッシュに保持されていた更新データを主記憶に書き
出すだけで良く、この時点で更新前データをバッファに
保存する必要がなくなるため、チェックポイント処理の
オーバーヘッドを小さくすることができる。
【図面の簡単な説明】
【図1】この発明の一実施形態に係るメモリ更新履歴保
存装置を用いたマルチプロセッサシステムの構成を示す
ブロック図。
【図2】同実施形態に係るシステムに設けられたキャッ
シュのタグメモリの構成例を示す図。
【図3】同実施形態に係るシステムに設けられたキャッ
シュに保持されているキャッシュラインデータの状態を
示す図。
【図4】同実施形態に係るシステムおけるメモリ更新履
歴情報の採取動作を示すタイミングチャート。
【図5】同実施形態に係るシステムの他の構成例を示す
ブロック図。
【図6】メモリ回復機能を実現するために必要な従来の
マルチプロセッサシステムの構成を示すブロック図。
【符号の説明】 12…主メモリ、13…ビフォアイメージバッファ、1
4〜15…CPU、16…バス、17〜18…キャッシ
ュ、20…メモリ制御部、21…ビフォアイメージバッ
ファ制御部、211…バスインターフェース制御部、2
12…状態保存制御部、213…バストランザクション
応答制御部、214…バッファアクセス制御部、215
…バストランザクション発行制御部。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 1以上のCPUと、各CPUに対応して
    設けられた1以上のキャッシュと、主記憶と、この主記
    憶を制御するメモリコントローラと、少なくとも前記1
    以上のキャッシュと前記メモリコントローラとが接続さ
    れるバスと備えたコンピュータシステムにおいて前記主
    記憶の記憶内容を復元するために必要な更新履歴情報を
    保存するメモリ更新履歴保存装置において、 前記主記憶の更新前データとその更新前データの格納位
    置を示すアドレスとの組を前記更新履歴情報として格納
    するためのバッファと、 前記バスに接続され、前記バッファに対する更新履歴情
    報の書き込みを制御するバッファアクセス制御手段とを
    具備し、 前記バッファアクセス制御手段は、 前記CPUからそれに対応するキャッシュに対してライ
    トアクセス要求があった場合に当該キャッシュから前記
    バス上に発行されるトランザクションに応答して、前記
    ライトアクセス要求の対象となる前記主記憶上のデータ
    を読み出すためのリードトランザクションを前記バス上
    に発行するトランザクション発行手段と、 前記リードトランザクションの発行に応答して前記メモ
    リコントローラによって前記主記憶から前記バス上に読
    み出されたデータと、そのデータに対応するアドレスと
    を、前記バッファに格納する更新履歴書き込み手段とを
    具備することを特徴とするメモリ更新履歴保存装置。
  2. 【請求項2】 前記バッファアクセス制御手段は、 前記バス上に発行される各種のトランザクションをスヌ
    ープするスヌープ手段を具備し、 前記トランザクション発行手段は、 前記CPUが前記キャッシュに対して書き込み要求を発
    行したときに前記キャッシュから所定のトランザクショ
    ンが前記バス上に発行されたことが前記スヌープ手段に
    よって検出されたとき、前記ライトアクセス要求の対象
    となる前記主記憶上のデータを読み出すためのリードト
    ランザクションを前記バス上に発行することを特徴とす
    る請求項1記載のメモリ更新履歴保存装置。
  3. 【請求項3】 前記キャッシュはコピーバック型のキャ
    ッシュであり、 前記所定のトランザクションは、前記バスに接続し得る
    他のキャッシュに対して対応するキャッシュラインの無
    効化を指示する無効化トランザクションであることを特
    徴とする請求項2記載のメモリ更新履歴保存装置。
  4. 【請求項4】 前記キャッシュはコピーバック型のキャ
    ッシュであり、 前記キャッシュから発行されるトランザクションが、前
    記主記憶あるいは前記バスに接続し得る他のキャッシュ
    の対応するキャッシュラインからのデータ読み出し、お
    よび前記他のキャッシュの対応するキャッシュラインの
    無効化を指示するリードおよび無効化トランザクション
    であることが、前記スヌープ手段によって検出されたと
    き、 前記更新履歴書き込み手段は、 前記リードおよび無効化トランザクションによって前記
    バス上に読み出されたデータおよび対応するアドレスを
    前記バッファに格納することを特徴とする請求項2記載
    のメモリ更新履歴保存装置。
  5. 【請求項5】 前記キャッシュはライトスルー型のキャ
    ッシュであり、 前記所定のトランザクションは、 前記主記憶へのライトを実行するライトトランザクショ
    ンであることを特徴とする請求項2記載のメモリ更新履
    歴保存装置。
  6. 【請求項6】 前記バッファは、前記主記憶の所定の記
    憶領域を用いて実現されており、 前記更新履歴書き込み手段は、 前記バッファに書き込むべきデータおよびアドレスの組
    を前記前記主記憶の前記記憶領域に書き込むためのライ
    トトランザクションを、前記トランザクション発行手段
    に発行させることを特徴とする請求項1記載のメモリ更
    新履歴保存装置。
  7. 【請求項7】 1以上のCPUと、各CPUに対応して
    設けられた1以上のキャッシュと、主記憶と、この主記
    憶を制御するメモリコントローラと、少なくとも前記1
    以上のキャッシュと前記メモリコントローラとが接続さ
    れるバスと、前記主記憶の更新前データとその更新前デ
    ータの格納位置を示すアドレスとの組から構成される更
    新履歴情報を格納するためのバッファとを備えたコンピ
    ュータシステムで使用されるメモリ更新履歴保存方法に
    おいて、 前記CPUからそれに対応するキャッシュに対してライ
    トアクセス要求があった場合に当該キャッシュから前記
    バス上に発行されるトランザクションに応答して、前記
    ライトアクセス要求の対象となる前記主記憶上のデータ
    を読み出すためのリードトランザクションを前記バス上
    に発行し、 前記リードトランザクションの発行に応答して前記メモ
    リコントローラによって前記主記憶から前記バス上に読
    み出されたデータと、そのデータに対応するアドレスと
    を、前記バッファに格納することを特徴とするメモリ更
    新履歴保存方法。
  8. 【請求項8】 1以上のCPUと、各CPUに対応して
    設けられた1以上のキャッシュと、主記憶と、この主記
    憶を制御するメモリコントローラと、少なくとも前記1
    以上のキャッシュと前記メモリコントローラとが接続さ
    れるバスと、前記主記憶の更新前データとその更新前デ
    ータの格納位置を示すアドレスとの組から構成される更
    新履歴情報を格納するためのバッファとを備えたコンピ
    ュータシステムで実行可能なコンピュータプログラムが
    格納された記録媒体であって、 前記コンピュータプログラムは、 前記CPUからそれに対応するキャッシュに対してライ
    トアクセス要求があった場合に、前記メモリコントロー
    ラを用いて前記ライトアクセス要求の対象となる前記主
    記憶上のデータを読み出すための手順と、 前記メモリコントローラを介して前記主記憶から前記バ
    ス上に読み出されたデータと、そのデータに対応するア
    ドレスとを、前記バッファに格納するための手順とを含
    むことを特徴とする記録媒体。
JP09228238A 1996-09-30 1997-08-25 メモリ更新履歴保存装置およびメモリ更新履歴保存方法 Expired - Fee Related JP3083786B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09228238A JP3083786B2 (ja) 1996-09-30 1997-08-25 メモリ更新履歴保存装置およびメモリ更新履歴保存方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP27902796 1996-09-30
JP8-279027 1996-09-30
JP09228238A JP3083786B2 (ja) 1996-09-30 1997-08-25 メモリ更新履歴保存装置およびメモリ更新履歴保存方法

Publications (2)

Publication Number Publication Date
JPH10154134A true JPH10154134A (ja) 1998-06-09
JP3083786B2 JP3083786B2 (ja) 2000-09-04

Family

ID=26528136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09228238A Expired - Fee Related JP3083786B2 (ja) 1996-09-30 1997-08-25 メモリ更新履歴保存装置およびメモリ更新履歴保存方法

Country Status (1)

Country Link
JP (1) JP3083786B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム
JP2008293212A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 情報処理装置のトランザクション管理方法及び情報処理装置
US7796584B2 (en) 2003-09-30 2010-09-14 Nec Corporation Method for connection between communication networks of different types and gateway apparatus
WO2020075276A1 (ja) * 2018-10-11 2020-04-16 三菱電機株式会社 メモリ履歴管理システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム
US7796584B2 (en) 2003-09-30 2010-09-14 Nec Corporation Method for connection between communication networks of different types and gateway apparatus
JP2008293212A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 情報処理装置のトランザクション管理方法及び情報処理装置
WO2020075276A1 (ja) * 2018-10-11 2020-04-16 三菱電機株式会社 メモリ履歴管理システム

Also Published As

Publication number Publication date
JP3083786B2 (ja) 2000-09-04

Similar Documents

Publication Publication Date Title
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
US5572702A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
TWI432963B (zh) 加速器之低成本快取一致
US5113514A (en) System bus for multiprocessor computer system
JP3086779B2 (ja) メモリ状態復元装置
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
EP1035476A1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JPH10506483A (ja) フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
US6871267B2 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JP2000322317A (ja) アドレスエラーから回復するためのシステムおよび方法
US20040068619A1 (en) Linked-list early race resolution mechanism
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
US20040068613A1 (en) Retry-based late race resolution mechanism for a computer system
JP3833760B2 (ja) 計算機システム及びメモリ状態復元装置
US5813035A (en) Microprocessor employing a technique for restoration of an aborted cycle following a snoop writeback operation
JP4091171B2 (ja) キャッシュフラッシュ方法および装置
JP2000181790A (ja) メモリ更新履歴保存装置
JP2008171058A (ja) システムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラム
JP3145479B2 (ja) マルチプロセッサシステムとそのキャッシュメモリ制御方法および装置
JPH06187230A (ja) メモリ監視制御方法
JPH10149307A (ja) チェックポイント処理方法及び記録媒体

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees