JP3086779B2 - メモリ状態復元装置 - Google Patents

メモリ状態復元装置

Info

Publication number
JP3086779B2
JP3086779B2 JP07151736A JP15173695A JP3086779B2 JP 3086779 B2 JP3086779 B2 JP 3086779B2 JP 07151736 A JP07151736 A JP 07151736A JP 15173695 A JP15173695 A JP 15173695A JP 3086779 B2 JP3086779 B2 JP 3086779B2
Authority
JP
Japan
Prior art keywords
cache
data
memory
main memory
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP07151736A
Other languages
English (en)
Other versions
JPH096731A (ja
Inventor
美生 増渕
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 JP07151736A priority Critical patent/JP3086779B2/ja
Priority to US08/665,628 priority patent/US5913021A/en
Priority to DE69615758T priority patent/DE69615758T2/de
Priority to EP96109771A priority patent/EP0750258B1/en
Publication of JPH096731A publication Critical patent/JPH096731A/ja
Priority to US09/317,915 priority patent/US6079030A/en
Application granted granted Critical
Publication of JP3086779B2 publication Critical patent/JP3086779B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache 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)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリの内容を以前の
状態に戻すことを可能とする機能を有するコンピュータ
システムのメモリ状態復元装置に関する。
【0002】
【従来の技術】通常の計算機では、プログラムを実行し
た場合に、一旦処理が進んでしまうと、それ以前の状態
に戻って処理を再開するということが、一般にできな
い。ところが、次のような応用においては、メモリの内
容を以前の状態に戻してその時点から処理を継続する機
能(メモリ状態回復機能)があることが望まれる。
【0003】(1)ソフトウェアデバッギング プログラムの実行中に何らかのエラーが発生した場合
に、以前の状態に遡ることにより、エラーの原因を解析
することができる。
【0004】(2)フォールトトレラントシステム システムの動作中に何らかの故障により処理が続行でき
なくなった場合、以前の状態に戻って、そこから処理を
再開することにより、システムを停止させることなく動
作を継続することができる。
【0005】このようなフォールトトレラント技術は、
例えばPhilip A Bernstein,“Sequoia :A Fault-Tole
rant Tightly Coupled Multiprocessor for Transactio
n Processing,”IEEE Computer,Vol.21,No.2,1988に開
示されている。
【0006】(3)バックトラッキング 論理型のプログラミング言語では、実行状態のバックト
ラッキングが基本的な操作である。メモリの内容が以前
の状態に戻る機能を用いることにより、バックトラッキ
ングを実現することができる。
【0007】以上のようなメモリ状態回復機能を実現す
る方法として考えられている技術の一つに、「バックワ
ード手法」がある。図5は、バックワード手法を採用す
るシステムの一つの構成例を示した図である。図5に示
すシステムは、プロセッサ30、メモリ制御部31、主
メモリ32、及びビフォアイメージバッファ33から構
成される。
【0008】ビフォアイメージバッファ33は、メモリ
制御部31の制御のもとに、主メモリ32の以前の状態
を保持するためのメモリであり、一つのエントリ(「ビ
フォアイメージエレメント」と呼ぶ)は主メモリアドレ
スとデータからなる。
【0009】図5のように構成されたシステムの動作例
を以下に説明する。いま、プロセッサ30が主メモリ3
2のあるロケーションAに、データDnewをライトする
場合を考える。
【0010】メモリ制御部31は、プロセッサ30から
「Write」処理の要求を受けると、主メモリ32を
更新する前に、同じロケーションAに格納されていたデ
ータDold を読み出し、ロケーションのアドレス値Aと
ともに、ビフォアイメージバッファ33に格納する。そ
の後、メモリ制御部31は、データDnew を主メモリ3
3のロケーションAに書き込む。
【0011】メモリ制御部31は、プロセッサ30から
「Write」処理の要求を受ける毎にこの動作を繰り
返し、主メモリ32のアドレスとデータとをビフォアイ
メージバッファ33の別なエントリに順次格納してい
く。
【0012】主メモリ32を以前の状態に戻したい場合
には、メモリ制御部31は、ビフォアイメージバッファ
33に格納されたエントリを最新のものから順次読み出
し(アドレスA、データDold )、アドレスAで示され
るメモリロケーションに、データDold を書き込んで行
く。これにより、主メモリ32を以前の状態に戻すこと
ができる。
【0013】なお、一般に、プログラムをある状態から
再開させるためには、以前の主メモリ32の内容だけで
なく、プロセッサ30の内部状態も必要である。プロセ
ッサ30の内部状態を保存するための一つの方法として
は、適当な時間間隔で内部状態を主メモリ32に保存し
ておくチェックポイント方式がある。ここで、チェック
ポイント方式では、保存するタイミングを「チェックポ
イント」、主メモリ32の内容及びプロセッサ30の内
部状態を保存することを「チェックポイントをとる」と
いう。
【0014】チェックポイントをとる際には、同時にビ
フォアイメージバッファ33をクリアする。従って、ビ
フォアイメージバッファ33には、最新のチェックポイ
ント時点から現在までに更新された主メモリ32のロケ
ーション(アドレス)の元の値が保存されていることに
なる。
【0015】これにより、プログラムは任意の時点から
最新のチェックポイント時点に戻すことが可能となる。
このような技術は、例えばRok Sosic ,「History Cach
e:Hardware Support for Reverse Execution, 」Comput
er Architecture News,Vol.22,No.5,1994 に開示されて
いる。
【0016】次に、マルチプロセッサシステムに対し
て、前述のようなメモリ状態回復機能を適用する例につ
いて説明する。図6は、n個のプロセッサ30−1〜3
0−nがバス34を介して接続された形態のマルチプロ
セッサシステムである。メモリ制御部31は、バス34
を介して各プロセッサ30−1〜30−nからの処理要
求を受け付ける。
【0017】図6に示すマルチプロセッサシステムにお
いても、メモリ制御部31、主メモリ32、及びビフォ
アイメージバッファ33の動作は、図5に示す構成の例
と同様に制御することができる。
【0018】すなわち、メモリ制御部31は、プロセッ
サ30−1〜30−nから「Write」処理の要求を
受ける毎に、主メモリ32を更新する前に主メモリ32
から該当するデータDold を読み出して、アドレスと共
にビフォアイメージバッファ33に順次格納していく。
【0019】主メモリ32を以前の状態に戻したい場合
には、メモリ制御部31は、同様にビフォアイメージバ
ッファ33に格納されたエントリを最新のものから順次
読み出し、そのアドレスAで示されるメモリロケーショ
ンに、データDold を書き込んで行く。
【0020】また、適当な時間間隔でチェックポイント
をとり、全てのプロセッサ30−1〜30−nの内部状
態を保存することにより、任意の時点からチェックポイ
ントの時点に戻り、処理を再開させることができる。
【0021】ところで、近年のプロセッサは、メモリア
クセスの高速化のためにキャッシュメモリを持つことが
一般的となっている。キャッシュメモリには、ライトス
ルー型のキャッシュとコピーバック型のキャッシュの二
種類がある。
【0022】ライトスルー型のキャッシュの場合は、プ
ロセッサがライト処理を実行したとき、キャッシュに記
憶されたデータの値を更新すると共に、同時に主記憶に
記憶されたデータもキャッシュに保持された値に更新す
る。従って、プロセッサが持つキャッシュの内容と主メ
モリの内容とが一致しているので、メモリ状態回復機能
は、前に述べた方法と同様の技術で実現できる。チェッ
クポイント処理についても、全く同様の方法で実現でき
る。
【0023】一方、コピーバック型のキャッシュの場合
は、プロセッサがライト処理を実行したとき、更新され
るのはキャッシュ中の値だけであり、主メモリには更新
された内容が直ぐに反映されない。その後、キャッシュ
エントリのリプレースなどによって更新されたデータが
主メモリに書き出されることにより、初めて主メモリの
内容が更新される。なお、キャッシュの内容を主メモリ
に書き出す場合(「Write−Line」処理)、一
般的には複数のワードから構成されるキャッシュライン
単位で行なわれる。
【0024】図7は、n個のプロセッサ30−1〜30
−nに、それぞれキャッシュ40−1〜40−nが設け
られた形態のマルチプロセッサシステムである。図7に
示すマルチプロセッサシステムは、キャッシュ40−1
〜40−nがコピーバックキャッシュであった場合、メ
モリ状態回復機能を実現するために次のように動作す
る。
【0025】チェックポイント時には、図8(a)に示
すように、プロセッサの内部状態だけでなく、キャッシ
ュ中に保持されている主メモリ32に反映されていない
全ての更新データ(「A」「B」「C」)が主メモリ3
2に書き戻されて、このチェックポイントでのシステム
の状態が保存され、その後、ビフォアイメージバッファ
33がクリアされる。
【0026】また、チェックポイント後にキャッシュか
らメモリ制御部31に「Write−Line」処理の
要求が発行された場合、つまりキャッシュ上で更新され
たデータ(「a」を含むキャッシュライン)を主メモリ
32に反映させる場合には、図8(b)に示すように、
メモリ制御部31は、チェックポイントにおいて保存し
たデータの内容を確保しておくために、ビフォアイメー
ジバッファ33にデータを移す。
【0027】すなわち、メモリ制御部31は、キャッシ
ュから「Write−Line」処理の要求を受ける
と、主メモリ32の書き戻しの対象となるロケーション
AlineからラインデータDold-line(データ「A」を含
む)を読み出し、アドレス値Alineと共にビフォアイメ
ージバッファ33に格納する(フォアイメージバッファ
33に格納される一つのエントリは、主メモリ32にお
けるラインアドレスとラインデータから構成される)。
その後、メモリ制御部31は、キャッシュ上の更新デー
タ(データ「a」を含むキャッシュライン)を主メモリ
32に書き戻す。
【0028】主メモリ32の内容を以前の状態(直前の
チェックポイント時の状態)に戻す場合には、メモリ制
御部31は、ビフォアイメージバッファ33に格納され
たエントリを最新のものから順次読み出して(アドレス
Aline、ラインデータDold-line)、そのラインアドレ
スAlineで示されるメモリロケーションに、ラインデー
タDold-lineを書き込んで行く。これにより、主メモリ
32を以前のチェックポイント時の状態に戻すことがで
きる(ここでは、主メモリ32中のデータについてのみ
考えている)。
【0029】ところで、チェックポイント時には、キャ
ッシュ上で更新され、主メモリ32に反映されていない
全ての更新データを、一括して主メモリ32に書き戻す
必要がある。従って、集中して多数の「Write−L
ine」処理が、メモリ制御部31に対して発行される
ことになる。また、主メモリ32にデータが書き戻され
るために、主メモリ32に存在する書き戻しの対象とな
る古いデータも、一括してビフォアイメージバッファ3
3に格納しなければならない。
【0030】以上のようなメモリ状態回復機能では、一
つの「Write−Line」処理について、主メモリ
32に対するリード及びライトの2回のアクセス、及び
ビフォアイメージバッファ33に対するライトアクセス
が必要となるため、「Write−Line」処理が集
中して発生するチェックポイントでは、大量のメモリア
クセスが発生する。
【0031】大量のメモリアクセスが発生するチェック
ポイントでは、その間システムが停止したようになり、
他の通常の処理ができなくなってしまうため、チェック
ポイント処理に多くの時間を要してしまうと、システム
全体の処理効率の低下を招いてしまう。
【0032】このような傾向は、プロセッサの数が増大
するにつれ、またキャッシュの容量が増大してチェック
ポイント時に書き出すべきキャッシュライン数が増大す
るにつれて顕著になる。従って、大規模かつ高性能なシ
ステムを構成するためには、大きな問題となる。
【0033】
【発明が解決しようとする課題】このように従来のコン
ピュータシステムでは、コピーバック型キャッシュを用
いたマルチプロセッサシステムにおいて、チェックポイ
ントをとる際に、キャッシュ上の更新された状態で記憶
されている全てのデータが一括して主メモリ32に書き
戻されるため、それに伴って主メモリ32中の該当する
各データをビフォアイメージバッファ33に保存する必
要となってしまう。このため、チェックポイント処理に
要する時間が増大し、チェックポイントの処理の間に他
の処理が実行できないことにより、システム性能が劣化
してしまうという問題があった。
【0034】本発明は前記のような事情を考慮してなさ
れたもので、チェックポイント処理に要する時間を短縮
してシステム性能を向上させることが可能なマルチプロ
セッサシステム等のコンピュータシステムを提供するこ
とを目的とする。
【0035】
【課題を解決するための手段】本発明は、データ処理を
実行する少なくとも1つのプロセッサと、前記プロセッ
サにおけるデータ処理に必要なデータ等を記憶するため
の主メモリと、前記プロセッサに対応して設けられたデ
ータ一貫性機能を有するコピーバック型のキャッシュ
と、前記主メモリにおけるアドレスと同アドレスで指定
されるロケーションに記憶されるデータとを組にして格
納するためのバッファメモリと、前記キャッシュから発
行されるトランザクションを監視して、前記プロセッサ
から対応する前記キャッシュに対してライトアクセス要
求した場合に当該キャッシュからキャッシュラインの
無効化を指示する無効化トランザクションが発行された
ことを開始条件として、前記ライトアクセス要求が起き
た前記主メモリ上のアドレス、及びこのアドレスで指定
されるロケーションに格納されたデータを、前記主メモ
リから読み出し前記バッファメモリに保存するメモリア
クセス制御手段とを具備したことを特徴とする。
【0036】また、本発明は、データ処理を実行する複
数のプロセッサと、前記プロセッサにおけるデータ処理
に必要なデータ等を記憶するための主メモリと、前記プ
ロセッサに対応して設けられたデータ一貫性機能を有す
るコピーバック型のキャッシュと、前記主メモリにおけ
るアドレスと同アドレスで指定されるロケーションに記
憶されるデータとを組にして格納するためのバッファメ
モリと、前記キャッシュから発行されるトランザクショ
ンを監視して、前記プロセッサから対応する前記キャッ
シュに対してライトアクセス要求してキャッシュミスを
した場合に、無効化を伴うリードトランザクションが発
行されたことを開始条件とし、他のキャッシュから更新
データを保持する信号が出力されない時、前記ライトア
クセス要求が起きた前記主メモリ上のアドレス、及びこ
のアドレスで指定されるロケーションに格納されたデー
タを、前記主メモリから読み出し前記バッファメモリに
保存し、また読み出しデータを前記キャッシュへ出力す
るメモリアクセス制御手段とを具備したことを特徴とす
る。
【0037】また、前記プロセッサがリードアクセス要
求した結果、キャッシュミスした場合に発行されるリー
ドライントランザクションに応答して、他のキャッシュ
からキャッシュミスしたキャッシュラインのクリーンデ
ータ又は更新データを保持している信号が発行されたな
らば、前記他のキャッシュから前記主メモリに書き出さ
れるキャッシュラインデータを取り込み、当該キャッシ
ュラインをクリーンシェアード状態に設定する手段と、
前記プロセッサにより前記クリーンシェアード状態のキ
ャッシュラインにライトアクセス要求が行われた場合、
データ書き込みと共に前記無効化トランザクションを発
行する手段とを有することを特徴とする。また、前記バ
ッファメモリは、前記主メモリの一部を利用することを
特徴とする。
【0038】
【作用】あるプロセッサがあるアドレスのデータを更新
する際に、無効化要求を含むトランザクションが発行さ
れる。このとき、主メモリからそのアドレスで示される
データを読みだし、これをアドレスとともにバッファメ
モリ(ビフォアイメージバッファ)に格納する。この処
理は、実際にそのデータを、キャッシュから主メモリに
書き出すよりも以前に先行して実行される。これによ
り、チェックポイント時にはキャッシュに保持されてい
た更新データを主メモリに書き出すだけで良くなり、オ
ーバヘッドが小さくなる。
【0039】
【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は本実施例のコンピュータシステム(マル
チプロセッサシステム)の概略構成を示すものである。
図1に示すように、本実施例におけるマルチプロセッサ
システムは、n個のプロセッサ10−1〜10−n、各
プロセッサに対応するn個のキャッシュ12−1〜12
−nが設けられている。キャッシュ12−1〜12−n
は、メモリ制御部14とバス16を介して接続されてい
る。メモリ制御部14には、主メモリ17、及びビフォ
アイメージバッファ18が接続されている。
【0040】メモリ制御部14は、バスインタフェース
制御部141、状態保存制御部142、主メモリアクセ
ス制御部143、及びバッファアクセス制御部144を
有している。
【0041】バスインタフェース制御部141は、バス
16と直接接続されており、バスの制御を行なう。バス
インタフェース制御部141は、常時、バス16を監視
しており、バス16に発行されたトランザクションに応
じて動作する。状態保存制御部142は、主メモリ17
の状態を保存するために必要な各種機能を制御する。主
メモリアクセス制御部143は、主メモリ17と接続さ
れ、主メモリ17に対するアクセスを制御する。バッフ
ァアクセス制御部144は、ビフォアイメージバッファ
18と接続され、ビフォアイメージバッファに対するア
クセスを制御する。
【0042】キャッシュ12−1〜12−nは、コピー
バック型のキャッシュであり、以下に説明する方式に従
って、データ一貫性保持のためのプロトコルを実現す
る。キャッシュ12−1〜12−nは、キャッシュライ
ンデータを保持するデータメモリと、データメモリに格
納された各キャッシュラインデータを管理する情報を保
持するためのタグメモリから構成される。
【0043】図2に、タグメモリのエントリの一例を示
す。タグメモリには、対応するキャッシュラインデータ
のキャッシュラインアドレス(ADDR)を示すアドレ
スタグと、キャッシュラインデータの状態を示す3ビッ
トのデータが格納される。
【0044】キャッシュラインデータの状態は、バリッ
ド(V:Valid )、モディファイド(M:Modified)、
シェアード(S:Shared)の3ビットの値の組合せによ
り管理される。なお、バリッド(V)は、対応するキャ
ッシュラインデータが有効(“1”)であることを示
す。モディファイド(M)は、キャッシュ上で更新され
た状態にあることを示す。シェアード(S)は、他のプ
ロセッサのキャッシュ上にも同じキャッシュラインデー
タが保持されていることを示す。
【0045】従って、3ビットの値の組合せにより、図
3に示すように、キャッシュラインデータは4つの状態
を取る。コピーバックキャッシュに関連した、キャッシ
ュからバス16に発行されるトランザクションは、次の
ようなものを含む。
【0046】(1)「Read−Line」…キャッシ
ュラインデータのリード。これは、プロセッサからの、
あるアドレスのキャッシュラインに対するリードアクセ
スに対して、該当する有効なキャッシュラインデータ
が、キャッシュに存在せずキャッシュミスした場合に発
行される。
【0047】なお、キャッシュミスは、アクセスの対象
とするキャッシュラインデータを示すアドレスが、タグ
メモリに格納されていない、及びアドレスは格納されて
いるがバリッドビット(V)が無効(“0”)を示す場
合である。これに対し、キャッシュヒットは、対象とす
るキャッシュラインデータのアドレスがタグメモリに格
納され、バリッドビット(V)が有効(“1”)を示す
場合である。
【0048】(2)「Read−Line−with−
Invalidate」…キャッシュラインデータのリ
ード、及び他のキャッシュに格納されたデータ無効化。
これは、プロセッサからのライトアクセスに対して、キ
ャッシュミスした場合に発行される。
【0049】(3)「Write−Line」…キャッ
シュラインデータのライト。これは、プロセッサからの
指示により明示的にキャッシュラインデータを主メモリ
17に書き出す場合、キャッシュラインデータを置換す
る必要が生じて更新データが主メモリ17に書き出され
る場合、及び他のプロセッサからの要求に応じて更新デ
ータを主メモリ17に書き出す場合に発行される。
【0050】(4)「Invalidate」…他のキ
ャッシュのデータ無効化。これは、プロセッサからのラ
イトアクセスに対して、キャッシュに当該ラインが存在
したが、クリーンシェアードであった場合に発行され
る。このトランザクション自身はアドレスの転送のみで
あり、データ転送を伴わない。
【0051】なお一般に、コピーバックキャッシュに関
連したトランザクションは、前述した(1)〜(4)以
外のトランザクションもサポートされることが多いが、
本発明の趣旨には直接関係しないので、ここでは説明を
省略する。
【0052】バス16は、シェアード応答信号線16
1、モディファイド応答信号線162、バスコマンド信
号線163、アドレス/データ信号線164を含む。一
般には、この他にアービトレーションを行なうための信
号線などを含むが、本発明の趣旨には直接関係しないの
で、ここでは説明を省略する。
【0053】シェアード応答信号線161(shared)
は、他のプロセッサ/キャッシュにより発行されたトラ
ンザクションに対して、トランザクションが対象として
いるキャッシュラインデータを保持している(すなわち
共有)していることを通知するために用いられる。
【0054】モディファイド応答信号線162(modifi
ed)は、他のプロセッサ/キャッシュにより発行された
トランザクションに対して、トランザクションが対象と
しているキャッシュラインデータを更新された状態で保
持していることを通知するために用いられる。
【0055】バスコマンド信号線163(command )
は、前述したバストランザクション(1)〜(4)の種
類を示す他、トランザクションに関する各種情報を送る
ために用いられる。
【0056】アドレス/データ信号線164(address/
data)は、バストランザクションが対象とするキャッシ
ュラインデータのアドレス及びデータを送るため信号線
である。図1においては1本の信号線として示している
が、共通の信号線を時分割で使う方式や、アドレス/デ
ータ各々に独立した信号線を設ける方式があり、何れで
あっても構わない。
【0057】次に、本実施例におけるマルチプロセッサ
システムの動作、すなわちバストランザクションを用い
て、キャッシュ間のデータ一貫性保持プロトコルがどの
ように実現されるかを説明する。
【0058】ここでは、トランザクションを発行してア
クセスを起動する側のプロセッサ及びキャッシュ(マス
タプロセッサ)、あるプロセッサ/キャッシュが発行し
たトランザクションに対して動作する他のプロセッサ及
びキャッシュ(スレーブプロセッサ)、及びメモリ制御
部14のそれぞれの動作について説明する。
【0059】まず、トランザクションを発行してアクセ
スを起動するマスタプロセッサの動作と、発行されたト
ランザクションに対応するキャッシュの状態遷移につい
て説明する。なお、マスタプロセッサがプロセッサ10
−1(キャッシュ12−1)であるとして説明する。
【0060】(A1)リードアクセス(キャッシュヒッ
ト) プロセッサ10−1がリードアクセス要求した結果、キ
ャッシュ12−1においてキャッシュヒットした場合、
キャッシュ12−1から該当するデータが読み出され
る。プロセッサ10−1(キャッシュ12−1)は、バ
ス16にトランザクションを発行しない。この時、キャ
ッシュラインの状態は変わらない。
【0061】(A2)リードアクセス(キャッシュミ
ス) プロセッサ10−1がリードアクセス要求した結果、キ
ャッシュミスした場合、プロセッサ10−1(キャッシ
ュ12−1)は、バス16に「Read−Line」ト
ランザクションを発行する。
【0062】これに対して、モディファイド応答信号線
162を介してモディファイド応答信号がアサートされ
たならば、他のキャッシュのうち一つがそのラインの更
新データを保持していることになる(スレーブプロセッ
サ側の動作の詳細については後述する)。キャッシュ1
2−1は、モディファイド応答信号をアサートしたキャ
ッシュから主メモリ17に書き出される(アドレス/デ
ータ信号線164に出力される)キャッシュラインデー
タを取り込んで、データメモリに格納する。キャッシュ
ラインの状態は「クリーン・シェアード」とする。
【0063】一方、モディファイド応答信号がアサート
されず、シェアード応答信号線161を介してシェアー
ド応答信号がアサートされたならば、他のキャッシュが
そのラインをクリーンな状態で保持していることにな
る。キャッシュ12−1は、キャッシュラインの状態を
「クリーン・シェアード」とすると共に、主メモリ17
より読み出されたデータを取り込んで、データメモリに
格納する。
【0064】また、モディファイド応答信号とシェアー
ド応答信号の何れもアサートされない場合には、どのキ
ャッシュにも対象とするキャッシュラインデータが保持
されていないことになる。キャッシュ12−1は、キャ
ッシュラインの状態を「クリーン・エクスクルーシブ」
とする。この場合も、キャッシュ12−1は、主メモリ
より読み出されたデータを取り込み、データメモリに格
納する。
【0065】何れの場合も、キャッシュ12−1は、バ
ス16から取り込んだキャッシュラインデータのうち、
必要とされるデータをプロセッサ10−1に返す。 (A3)ライトアクセス(キャッシュヒット/モディフ
ァイド) プロセッサ10−1がライトアクセス要求した結果、キ
ャッシュ12−1においてキャッシュヒットし、対応す
るキャッシュラインデータがモディファイドの状態の場
合、該当するキャッシュラインにデータが書き込まれ
る。プロセッサ10−1(キャッシュ12−1)は、バ
ス16にトランザクションを発行しない。この時、キャ
ッシュラインの状態は変わらない。
【0066】(A4)ライトアクセス(キャッシュヒッ
ト/クリーンエクスクルーシブ) プロセッサ10−1がライトアクセス要求した結果、キ
ャッシュ12−1においてキャッシュヒットし、対応す
るキャッシュラインデータがクリーンエクスクルーシブ
の状態の場合、該当するキャッシュラインにデータが書
き込まれる。プロセッサ10−1(キャッシュ12−
1)は、バス16にトランザクションを発行しない。キ
ャッシュ12−1は、該当するキャッシュラインの状態
を「モディファイド」に変更する。
【0067】(A5)ライトアクセス(キャッシュヒッ
ト/クリーンシェアード) プロセッサ10−1がライトアクセス要求した結果、キ
ャッシュ12−1においてキャッシュヒットし、対応す
るキャッシュラインデータがクリーンシェアードの状態
の場合、該当するキャッシュラインにデータが書き込ま
れる。プロセッサ10−1(キャッシュ12−1)は、
バス16に「Invalidate」トランザクション
を発行する。キャッシュ12−2は、該当するキャッシ
ュラインの状態を「モディファイド」にする。
【0068】(A6)ライトアクセス(キャッシュミ
ス) プロセッサ10−1がライトアクセス要求した結果、キ
ャッシュミスした場合、バスに「Read−Line−
with−Invalidate」を発行する。
【0069】これに対して、モディファイド応答信号が
アサートされたならば、他のキャッシュのうち一つがそ
のラインの更新データを保持していることになる。キャ
ッシュ12−1は、モディファイド応答信号をアサート
したキャッシュから主メモリ17に書き出されるキャッ
シュラインデータを取り込んで、データメモリに格納す
る。
【0070】一方、モディファイド応答信号がアサート
されなければ、キャッシュ12−1は、主メモリ17よ
り読み出されたデータ取り込み、データメモリに格納す
る。何れの場合も、キャッシュ12−1は、該当するキ
ャッシュラインの状態を「モディファイド」とし、デー
タを書き込む。
【0071】次に、あるプロセッサ/キャッシュが発行
したトランザクションに対する他のプロセッサとそれに
対応するキャッシュ(スレーブプロセッサ)の動作、及
び状態遷移について説明する。なお、マスタプロセッサ
がプロセッサ10−1(キャッシュ12−1)、スレー
ブプロセッサがプロセッサ10−n(キャッシュ12−
n)であるとし、マスタプロセッサから発行されるトラ
ンザクション毎に説明する。
【0072】(B1)「Read−Line」トランザ
クション キャッシュ12−nは、トランザクションが対象とする
キャッシュラインデータを「モディファイド」の状態で
保持している場合、モデファイド応答信号162をアサ
ートして、更新データを保持していることを通知する。
この後、キャッシュ12−nは、「Write−Lin
e」トランザクションを発行して、更新データを主メモ
リ17に書き出す。キャッシュ12−nは、該当するキ
ャッシュラインの状態を「クリーンシェアード」とす
る。
【0073】また、キャッシュ12−nは、トランザク
ションが対象とするキャッシュラインデータを「クリー
ンエクスクルーシブ」または「クリーンシェアード」の
状態で保持している場合、シェアード応答信号161を
アサートして、クリーンデータを保持していることを通
知する。何れの場合も、キャッシュラインの状態は「ク
リーンシェアード」とする。
【0074】なお、キャッシュ12−nは、対応する有
効なキャッシュラインデータを保持していない場合に
は、何もしない。 (B2)「Read−Line−with−Inval
idate」トランザクション キャッシュ12−nは、トランザクションが対象とする
キャッシュラインデータを「モディファイド」の状態で
保持している場合、モディファイド応答信号162をア
サートして、更新データを保持していることを通知す
る。この後、キャッシュ12−nは、「Write−L
ine」トランザクションを発行して更新データを主メ
モリ17に書き出す。キャッシュラインの状態は「イン
バリッド」とする。
【0075】また、キャッシュ12−nは、トランザク
ションが対象とするキャッシュラインデータを「クリー
ンエクスクルーシブ」または「クリーンシェアード」の
状態で保持している場合、キャッシュラインの状態を
「インバリッド」とする。
【0076】なお、キャッシュ12−nは、対応する有
効なキャッシュラインデータを保持していない場合に
は、何もしない。 (B3)「Invalidate」トランザクション キャッシュ12−nは、トランザクションが対象とする
キャッシュラインデータを「クリーンエクスクルーシ
ブ」または「クリーンシェアード」の状態で保持してい
る場合、このキャッシュラインの状態を「インバリッ
ド」にする。
【0077】また、キャッシュ12−nは、対応する有
効なキャッシュラインデータを保持していない場合に
は、何もしない。なお、この場合、対応するラインを
「モディファイド」の状態で保持していることはあり得
ない。
【0078】(B4)「Write−Line」トラン
ザクション キャッシュ12−nは、何もしない。次に、各バストラ
ンザクションに対するメモリ制御部14の動作について
説明する。メモリ制御部14の主メモリ17の状態を保
存するための動作制御は、状態保存制御部142によっ
て行なわれる。以下、バス16に発行されるトランザク
ション毎に説明する。
【0079】(C1)「Write−Line」トラン
ザクション バスインタフェース制御部141がバス16に発行され
た「Write−Line」トランザクションをスヌー
プすると、状態保存制御部142は、主メモリアクセス
制御部143を起動する。主メモリアクセス制御部14
3は、キャッシュから書き出されるキャッシュラインデ
ータを、バスインタフェース制御部141を介して取り
込み、主メモリ17の該当するアドレスに書き込む。
【0080】(C2)「Invalidate」トラン
ザクション バスインタフェース制御部141がバス16に発行され
た「Invalidate」トランザクションをスヌー
プすると、状態保存制御部142は、主メモリアクセス
制御部143を起動する。主メモリアクセス制御部14
3は、バスインタフェース制御部141を介して得た、
無効対象となっているキャッシュラインのアドレスで示
されるメモリロケーションから更新前のキャッシュライ
ンデータを読み出す。また、状態保存制御部142は、
バッファアクセス制御部144を起動する。状態保存制
御部142は、主メモリアクセス制御部143によって
読み出されたキャッシュラインデータをバッファアクセ
ス制御部144に転送して、アドレス値と共にビフォア
イメージバッファ18に書き込ませる。
【0081】(C3)「Read−Line−with
−Invalidate」トランザクション 「Read−Line−with−Invalidat
e」トランザクションの発行に伴って、モディファイド
応答信号がアサートされた場合は、アサートしたキャッ
シュが既に更新データを保持していることを示してお
り、そのプロセッサが最新のチェックポイント以降にラ
イトアクセスを実行していることがわかる。すなわち、
前述した(A5)のように、ライトアクセスが実行され
る際に、バス16に「Invalidate」トランザ
クションが発行され、前述した(C2)の処理が既に実
行されていることになる。このため、その時点で、以前
のデータがビフォアイメージバッファ18に格納されて
いることになり、改めてこのアドレスのデータをビフォ
アイメージバッファに格納する必要はない。従って、状
態保存制御部142は、何もする必要がない。
【0082】一方、「Read−Line−with−
Invalidate」トランザクションの発行に伴っ
て、モディファイド応答信号がアサートされない場合
は、状態保存制御部142は、バスインタフェース制御
部141から通知を受け、この通知に応じて主メモリア
クセス制御部143を起動する。主メモリアクセス制御
部143は、バスインタフェース制御部141を介して
得た、無効対象としてアドレスで示される主メモリ17
のメモリロケーションからキャッシュラインデータを読
み出す。バスインタフェース制御部141は、主メモリ
アクセス制御部143によって読み出されたラインデー
タをバス16に出力する。また、状態保存制御部142
は、バッファアクセス制御部144を起動して、主メモ
リアクセス制御部143によって読み出されたキャッシ
ュラインデータをバッファアクセス制御部144に転送
し、アドレス値と共にビフォアイメージバッファ18に
書き込ませる。
【0083】(C4)「Read−Line」トランザ
クション バスインタフェース制御部141が「Read−Lin
e」トランザクションの発行に伴って、モディファイド
応答信号がアサートされたことをスヌープすると、状態
保存制御部142は、主メモリアクセス制御部143を
起動する。主メモリアクセス制御部143は、キャッシ
ュから書き出されるラインデータをバスインタフェース
制御部141を介して取り込み、主メモリ17の該当す
るアドレスに書き込む。
【0084】一方、モディファイド応答信号162がア
サートされない場合は、状態保存制御部142は、主メ
モリアクセス制御部143を起動する。主メモリアクセ
ス制御部143は、バスインタフェース制御部141を
介して得た、読み出し対象としてアドレスで示される主
メモリ17のメモリロケーションからキャッシュライン
データを読み出す。バスインタフェース制御部141
は、主メモリアクセス制御部143によって読み出され
たラインデータをバス16に出力する。また、ラインデ
ータの出力と共に、状態保存制御部142は、バスイン
タフェース制御部141を介して、シェアード応答信号
をシェアード応答信号線161にアサートする。これに
よって、マスタプロセッサのキャッシュの、現在対象と
しているキャッシュラインの状態を「クリーンエクスク
ルーシブ」ではなく、「クリーンシェアード」の状態に
することができる。
【0085】ここで、「クリーンエクスクルーシブ」状
態を避け、「クリーンシェアード」の状態にするる理由
は、次の通りである。マスタプロセッサについての説明
のように(前述した(A4))、「クリーンエクスクル
ーシブ」の状態にあるキャッシュラインに対してライト
する場合には、バス16にトランザクションが発行され
ることなくキャッシュ中で値が書き換えられてしまう。
このため、この時点でビフォアイメージバッファ18
に、主メモリ17への書き込みを行なう以前のメモリ状
態(対象とするキャッシュラインについて)を保存する
ことができない。
【0086】これに対応するためには、キャッシュから
主メモリ17にラインデータが書き出されたとき、すな
わち「Write−Line」トランザクションがバス
16に発行されたときに、メモリ状態を保存する方法が
考えられる。しかし、これでは結局、従来と同様になっ
てしまい、チェックポイント処理時間が長くなるという
問題がある。
【0087】「クリーンエクスクルーシブ」状態がなけ
れば、ライトアクセスする場合には、必ずバス16に
「Invalidate」または「Read−Line
−with−Invalidate」の何れかのトラン
ザクションが発行される。メモリ制御部14は、このト
ランザクションを、主メモリ17からビフォアイメージ
バッファ18にデータを移す処理の開始条件とすること
で、上述のようにして書き込み以前のメモリ状態を保存
することが可能となる。
【0088】なお、プロセッサ10−1〜10−n、及
びキャッシュ12−1〜12−nに「クリーンエクスク
ルーシブ」状態を避ける機能が設けられている場合に
は、メモリ制御部14は、シェアード応答信号161を
アサートする必要はない。
【0089】次に、前述のようにして動作するマルチプ
ロセッサシステムにおけるチェックポイント処理につい
て説明する。チェックポイント時には、プロセッサ10
−1〜10−nの内部状態を主メモリ17に書き出すと
ともに、各キャッシュ12−1〜12−nの「モディフ
ァイド」状態にある全てのキャッシュラインのデータを
主メモリ17に書き戻す。キャッシュ12−1〜12−
nは、主メモリ17に書き戻したキャッシュラインの状
態を「クリーンシェアード」または「インバリッド」に
する。
【0090】主メモリ17へのラインデータの書き戻し
は、「Write−Line」トランザクションを用い
て行なわれるため、このときにビフォアイメージバッフ
ァ18へのデータ保存が発生することはない。
【0091】すなわち、チェックポイント処理を開始す
る以前に、キャッシュ12−1〜12−n上で更新され
たデータに対応する主メモリ17中のデータが、前述し
た(C2)(C3)ように既に、ビフォアイメージバッ
ファ18に保存されているので、主メモリ17への書き
込み処理によりチェックポイント処理が完了する。
【0092】図4に、本発明を用いるマルチプロセッサ
システムの他の構成例を示す。図4に示す構成では、主
メモリ26の記憶容量の一部を、ビフォアイメージバッ
ファ28として使用するものである。
【0093】バッファアクセス制御部244は、主メモ
リアクセス制御部243を介して、主メモリ26中のビ
フォアイメージバッファ28をアクセスする。その他の
制御は、図1に示す構成に対するものと同様である。
【0094】図4に示す構成をとると、ビフォアイメー
ジバッファ用に主メモリとは別の特別なメモリを必要と
しないため、システム構成を簡単することができるとい
う効果がある。
【0095】なお、本発明はコピーバック型キャッシュ
を対象としているが、コピーバックモードと非コピーバ
ックモードのデータが混在するコンピュータシステムに
対しても当然適用可能である。すなわち、コピーバック
モードのデータに対しては本発明を適用し、非コピーバ
ックモードのデータに対しては従来例の方法を適用すれ
ば良い。
【0096】例えば、前記実施例においては、複数のプ
ロセッサ10−1〜10−nを持つマルチプロセッサシ
ステムを説明したが、キャッシュが同様の機能を持って
いれば、単一プロセッサから成るコンピュータシステム
に対しても適用することが可能である。
【0097】また、キャッシュが単一でなく、階層構造
をとる場合にも同様に適用可能である。このようにし
て、メモリ制御部14は、あるキャッシュからバス16
に発行された、他のキャッシュに保持されているデータ
を無効化するためのトランザクションがスヌープされた
場合に、主メモリ17に保持された無効化の対象となる
キャッシュラインデータをビフォアイメージバッファ1
8に保存する。
【0098】すなわち、マスタプロセッサでのライトア
クセス要求時にキャッシュヒットであり、対象とするキ
ャッシュラインの状態がクリーンシェアードの場合に発
行された「Invalidate」、あるいはライトア
クセス要求時にキャッシュミスした場合に発行された
「Read−Line−with−Invalidat
e」に応じて、主メモリ17中のキャッシュラインデー
タがビフォアイメージバッファ18に保存されるので、
対象とするキャッシュラインデータを、実際に主メモリ
17に書き戻す処理の以前に実行されることになる。
【0099】従って、チェックポイント時に、主メモリ
17に書き戻す必要のある更新データが大量にあったと
しても、既に書き戻しの対象となるデータがビフォアイ
メージバッファ18に保存されているので、そのための
処理が不要となる。このために、チェックポイント処理
に要する時間が短縮され、他の通常の処理に対する影響
が低減されるので、システム全体の処理効率の向上が図
れる。
【0100】
【発明の効果】以上詳述したように本発明によれば、チ
ェックポイントによって保持された、以前のメモリ状態
を保存する処理が、チェックポイント時に集中するので
はなく、通常の処理の途中に分散して行なわれるので、
チェックポイント時のオーバヘッドが軽減され、処理効
率を向上させることが可能となるものである。
【図面の簡単な説明】
【図1】本発明の一実施例に係わるコンピュータシステ
ム(マルチプロセッサシステム)の概略構成を示すブロ
ック図。
【図2】本実施例におけるキャッシュタグエントリの一
例を説明するための図。
【図3】本実施例におけるキャッシュラインの状態を説
明するための図。
【図4】本発明におけるマルチプロセッサシステムの他
の構成例を示すブロック図。
【図5】従来のバックワード手法を採用するシステムの
構成例を示すブロック図。
【図6】従来のメモリ状態回復機能を説明するためのマ
ルチプロセッサの構成を示すブロック図。
【図7】従来のメモリ状態回復機能を説明するためのキ
ャッシュが設けられたマルチプロセッサの構成を示すブ
ロック図。
【図8】従来のメモリ状態回復機能を説明するための
図。
【符号の説明】
10−1〜10−n…プロセッサ、12−1〜12−n
…キャッシュ、14…メモリ制御部、141…バスイン
タフェース制御部、142…状態保存制御部、143…
主メモリアクセス制御部、144…バッファアクセス制
御部、16…バス、161…シェアード応答信号線、1
62…モディファイド応答信号線、163…バスコマン
ド信号線、164…アドレス/データ信号線、17…主
メモリ、18…ビフォアイメージバッファ。
フロントページの続き (56)参考文献 米国特許5418916(US,A) IEEE TRANSACTIONS ON PARALLEL AND D ISTRIBUTED SYSTEMS VOL.1 NO.2 1990 p231 −240 Kun−Lung Wu,W. Kent Fuchs & Janak H.Patel「Error Rec overy in Shared Me mory Multiprocesso rs Using Private C aches」 1990 IEEE 20th Inter national Symposium On Fault−Tolerant Computing p82−88 Rana Ejaz Ahmed,R obert C.Frazier & Peter N.Marinos「Ca che−Aided Rollback Error Recovery(CA RER)Algorithms for Shared−Memory Mul tiprocessor System s」 IEEE TRANSACTIONS ON PARALLEL AND D ISTRIBUTED SYSTEMS VOL.5 NO.10 1994 p1033 −1043 Bob Janssens & W.Kent Fuchs「The Performance of Cac he−Based Error Rec overy in Multiproc essors」 1987 FAULT−TOLERANT COMPUTING p170−175 Douglas B.Hunt & Peter N.Marinos「A General Purpose Ca che−Aided Rollback Error Recovery(CA RER)Technique」 (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 682 INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ処理を実行する少なくとも1つの
    プロセッサと、 前記プロセッサにおけるデータ処理に必要なデータ等を
    記憶するための主メモリと、 前記プロセッサに対応して設けられたデータ一貫性機能
    を有するコピーバック型のキャッシュと、 前記主メモリにおけるアドレスと同アドレスで指定され
    るロケーションに記憶されるデータとを組にして格納す
    るためのバッファメモリと、前記キャッシュから発行されるトランザクションを監視
    して、 前記プロセッサから対応する前記キャッシュに対
    してライトアクセス要求した場合に当該キャッシュか
    キャッシュラインの無効化を指示する無効化トランザ
    クションが発行されたことを開始条件として、前記ライ
    トアクセス要求が起きた前記主メモリ上のアドレス、及
    びこのアドレスで指定されるロケーションに格納された
    データを、前記主メモリから読み出し前記バッファメモ
    リに保存するメモリアクセス制御手段とを具備したこと
    を特徴とするメモリ状態復元装置。
  2. 【請求項2】 データ処理を実行する複数のプロセッサ
    と、 前記プロセッサにおけるデータ処理に必要なデータ等を
    記憶するための主メモリと、 前記プロセッサに対応して設けられたデータ一貫性機能
    を有するコピーバック型のキャッシュと、 前記主メモリにおけるアドレスと同アドレスで指定され
    るロケーションに記憶されるデータとを組にして格納す
    るためのバッファメモリと、 前記キャッシュから発行されるトランザクションを監視
    して、前記プロセッサから対応する前記キャッシュに対
    してライトアクセス要求してキャッシュミスをした場合
    に、無効化を伴うリードトランザクションが発行された
    ことを開始条件とし、他のキャッシュから更新データを
    保持する信号が出力されない時、前記ライトアクセス要
    求が起きた前記主メモリ上のアドレス、及びこのアドレ
    スで指定されるロケーションに格納されたデータを、前
    記主メモリから読み出し前記バッ ファメモリに保存し、
    また読み出しデータを前記キャッシュへ出力するメモリ
    アクセス制御手段と を具備したことを特徴とするメモリ
    状態復元装置。
  3. 【請求項3】 前記プロセッサがリードアクセス要求し
    た結果、キャッシュミスした場合に発行されるリードラ
    イントランザクションに応答して、他のキャッシュから
    キャッシュミスしたキャッシュラインのクリーンデータ
    又は更新データを保持している信号が発行されたなら
    ば、前記他のキャッシュから前記主メモリに書き出され
    るキャッシュラインデータを取り込み、当該キャッシュ
    ラインをクリーンシェアード状態に設定する手段と、 前記プロセッサが前記クリーンシェアード状態のキャッ
    シュラインにライトアクセス要求を行った場合、データ
    書き込みと共に前記無効化トランザクションを発行する
    手段とを有することを特徴とする請求項1または2記載
    のメモリ状態復元装置。
  4. 【請求項4】 前記バッファメモリは、前記主メモリの
    一部を利用することを特徴とする請求項1または2記載
    のメモリ状態復元装置。
  5. 【請求項5】 チェックポイント時には前記キャッシュ
    に保持されている更新データを前記主メモリに書き出す
    処理だけを実行することを特徴とする請求項1または2
    記載のメモリ状態復元装置。
JP07151736A 1995-06-19 1995-06-19 メモリ状態復元装置 Expired - Lifetime JP3086779B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP07151736A JP3086779B2 (ja) 1995-06-19 1995-06-19 メモリ状態復元装置
US08/665,628 US5913021A (en) 1995-06-19 1996-06-18 Memory state recovering apparatus
DE69615758T DE69615758T2 (de) 1995-06-19 1996-06-18 Rechnersystem mit Speicherzustandsrückgewinnung
EP96109771A EP0750258B1 (en) 1995-06-19 1996-06-18 Computer system with memory state recovery
US09/317,915 US6079030A (en) 1995-06-19 1999-05-25 Memory state recovering apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07151736A JP3086779B2 (ja) 1995-06-19 1995-06-19 メモリ状態復元装置

Publications (2)

Publication Number Publication Date
JPH096731A JPH096731A (ja) 1997-01-10
JP3086779B2 true JP3086779B2 (ja) 2000-09-11

Family

ID=15525173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07151736A Expired - Lifetime JP3086779B2 (ja) 1995-06-19 1995-06-19 メモリ状態復元装置

Country Status (4)

Country Link
US (2) US5913021A (ja)
EP (1) EP0750258B1 (ja)
JP (1) JP3086779B2 (ja)
DE (1) DE69615758T2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2916420B2 (ja) * 1996-09-04 1999-07-05 株式会社東芝 チェックポイント処理加速装置およびデータ処理方法
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
US6230282B1 (en) * 1998-07-03 2001-05-08 Hewlett-Packard Company Checkpoint computer system utilizing a FIFO buffer to re-synchronize the memory systems on the detection of an error
US6810489B1 (en) * 2000-09-06 2004-10-26 Hewlett-Packard Development Company, L.P. Checkpoint computer system utilizing a FIFO buffer to re-synchronize and recover the system on the detection of an error
US7085955B2 (en) * 2001-09-14 2006-08-01 Hewlett-Packard Development Company, L.P. Checkpointing with a write back controller
US7181560B1 (en) 2001-12-21 2007-02-20 Joseph Grand Method and apparatus for preserving computer memory using expansion card
US7058849B2 (en) * 2002-07-02 2006-06-06 Micron Technology, Inc. Use of non-volatile memory to perform rollback function
US7757046B2 (en) * 2002-09-30 2010-07-13 Intel Corporation Method and apparatus for optimizing line writes in cache coherent systems
US7886093B1 (en) * 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US9213609B2 (en) * 2003-12-16 2015-12-15 Hewlett-Packard Development Company, L.P. Persistent memory device for backup process checkpoint states
WO2005069142A1 (en) * 2004-01-15 2005-07-28 Matsushita Electric Industrial Co., Ltd. Information-processing method and apparatus
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7496787B2 (en) * 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US9588844B2 (en) 2013-12-30 2017-03-07 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods using data forwarding
EP3090344B1 (en) 2013-12-30 2018-07-18 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
US9760442B2 (en) 2013-12-30 2017-09-12 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
CN107092598A (zh) * 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 数据存储位置信息的管理方法和装置
DE102017124805B4 (de) * 2017-10-24 2019-05-29 Infineon Technologies Ag Speicheranordnung und verfahren zum zwischenspeichern von speicherinhalten
CN109189608B (zh) * 2018-08-13 2019-07-26 武汉达梦数据库有限公司 一种保证复制事务一致性的方法以及相应的复制装置

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588829A (en) * 1968-11-14 1971-06-28 Ibm Integrated memory system with block transfer to a buffer store
US4413327A (en) * 1970-06-09 1983-11-01 The United States Of America As Represented By The Secretary Of The Navy Radiation circumvention technique
US3761881A (en) * 1971-06-30 1973-09-25 Ibm Translation storage scheme for virtual memory system
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
US3803560A (en) * 1973-01-03 1974-04-09 Honeywell Inf Systems Technique for detecting memory failures and to provide for automatically for reconfiguration of the memory modules of a memory system
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
GB1509193A (en) * 1974-04-17 1978-05-04 Nat Res Dev Computer systems
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US4044337A (en) * 1975-12-23 1977-08-23 International Business Machines Corporation Instruction retry mechanism for a data processing system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
JPS605024B2 (ja) * 1979-09-04 1985-02-07 ファナック株式会社 情報処理方式
US4403284A (en) * 1980-11-24 1983-09-06 Texas Instruments Incorporated Microprocessor which detects leading 1 bit of instruction to obtain microcode entry point address
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
FR2503900A1 (fr) * 1981-04-13 1982-10-15 Grandjean Bernard Dispositif de reprise pour installation de traitement de donnees
US4426682A (en) * 1981-05-22 1984-01-17 Harris Corporation Fast cache flush mechanism
US4566106A (en) * 1982-01-29 1986-01-21 Pitney Bowes Inc. Electronic postage meter having redundant memory
US4459658A (en) * 1982-02-26 1984-07-10 Bell Telephone Laboratories Incorporated Technique for enabling operation of a computer system with a consistent state of a linked list data structure after a main memory failure
US4484273A (en) * 1982-09-03 1984-11-20 Sequoia Systems, Inc. Modular computer system
JPS5957351A (ja) * 1982-09-28 1984-04-02 Nec Corp デ−タ処理システム
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
DE3382152D1 (de) * 1982-12-09 1991-03-07 Sequoia Systems Inc Sicherstellungsspeichersystem.
JPS59144956A (ja) * 1983-02-07 1984-08-20 Nec Corp デ−タ処理システム
FR2553541B1 (fr) * 1983-10-17 1992-02-28 Inst Nat Rech Inf Automat Dispositif et procede pour le stockage rapide et stable d'informations
EP0163096B1 (de) * 1984-04-26 1988-11-17 BBC Brown Boveri AG Einrichtung zur Rettung eines Rechnerzustandes
US4751639A (en) * 1985-06-24 1988-06-14 Ncr Corporation Virtual command rollback in a fault tolerant data processing system
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
EP0228559A1 (de) * 1985-12-17 1987-07-15 BBC Brown Boveri AG Fehlertolerante Mehrrechneranordnung
US4805095A (en) * 1985-12-23 1989-02-14 Ncr Corporation Circuit and a method for the selection of original data from a register log containing original and modified data
US4740969A (en) * 1986-06-27 1988-04-26 Hewlett-Packard Company Method and apparatus for recovering from hardware faults
SE454730B (sv) * 1986-09-19 1988-05-24 Asea Ab Forfarande och datorutrustning for stotfri omkoppling av funktionen fran aktiva enheter till beredskapsenheter i en centralenhet
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US4924466A (en) * 1988-06-30 1990-05-08 International Business Machines Corp. Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system
US4964126A (en) * 1988-09-30 1990-10-16 Massachusetts Institute Of Technology Fault tolerant signal processing machine and method
US5325517A (en) * 1989-05-17 1994-06-28 International Business Machines Corporation Fault tolerant data processing system
US5239637A (en) * 1989-06-30 1993-08-24 Digital Equipment Corporation Digital data management system for maintaining consistency of data in a shadow set
US5247618A (en) * 1989-06-30 1993-09-21 Digital Equipment Corporation Transferring data in a digital data processing system
US5271013A (en) * 1990-05-09 1993-12-14 Unisys Corporation Fault tolerant computer system
US5327532A (en) * 1990-05-16 1994-07-05 International Business Machines Corporation Coordinated sync point management of protected resources
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5214652A (en) * 1991-03-26 1993-05-25 International Business Machines Corporation Alternate processor continuation of task of failed processor
US5269017A (en) * 1991-08-29 1993-12-07 International Business Machines Corporation Type 1, 2 and 3 retry and checkpointing
US5313647A (en) * 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
US5325519A (en) * 1991-10-18 1994-06-28 Texas Microsystems, Inc. Fault tolerant computer with archival rollback capabilities
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US5488719A (en) * 1991-12-30 1996-01-30 Xerox Corporation System for categorizing character strings using acceptability and category information contained in ending substrings
US5408649A (en) * 1993-04-30 1995-04-18 Quotron Systems, Inc. Distributed data access system including a plurality of database access processors with one-for-N redundancy
US5504861A (en) * 1994-02-22 1996-04-02 International Business Machines Corporation Remote data duplexing
US5664150A (en) * 1995-03-21 1997-09-02 International Business Machines Corporation Computer system with a device for selectively blocking writebacks of data from a writeback cache to memory
US5745672A (en) * 1995-11-29 1998-04-28 Texas Micro, Inc. Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
1987 FAULT−TOLERANT COMPUTING p170−175
1990 IEEE 20th International Symposium On Fault−Tolerant Computing p82−88
Douglas B.Hunt & Peter N.Marinos「A General Purpose Cache−Aided Rollback Error Recovery(CARER)Technique」
IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS VOL.1 NO.2 1990 p231−240 Kun−Lung Wu,W.Kent Fuchs & Janak H.Patel「Error Recovery in Shared Memory Multiprocessors Using Private Caches」
IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS VOL.5 NO.10 1994 p1033−1043 Bob Janssens & W.Kent Fuchs「The Performance of Cache−Based Error Recovery in Multiprocessors」
Rana Ejaz Ahmed,Robert C.Frazier & Peter N.Marinos「Cache−Aided Rollback Error Recovery(CARER)Algorithms for Shared−Memory Multiprocessor Systems」

Also Published As

Publication number Publication date
EP0750258A2 (en) 1996-12-27
US5913021A (en) 1999-06-15
US6079030A (en) 2000-06-20
EP0750258A3 (en) 1998-12-30
DE69615758T2 (de) 2002-06-20
DE69615758D1 (de) 2001-11-15
EP0750258B1 (en) 2001-10-10
JPH096731A (ja) 1997-01-10

Similar Documents

Publication Publication Date Title
JP3086779B2 (ja) メモリ状態復元装置
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
Wu et al. Error recovery in shared memory multiprocessors using private caches
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
KR100233207B1 (ko) 캐시 플러시 장치 및 이 장치를 구비한 계산기 시스템
US5241641A (en) Hierarchical cache memory apparatus
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
JPH0786849B2 (ja) 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム
JPH02141845A (ja) マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法
JPH09511088A (ja) マルチプロセッサ・システムのための高可用性のエラー自己回復共用キャッシュ
US7711899B2 (en) Information processing device and data control method in information processing device
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JP2007533014A (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
US5737568A (en) Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
WO1997004392A1 (en) Shared cache memory device
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JP3833760B2 (ja) 計算機システム及びメモリ状態復元装置
JPH10240630A (ja) コンピュータシステム及び同システムに適用するメモリ制御方法

Legal Events

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

Free format text: PAYMENT UNTIL: 20080707

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 13

EXPY Cancellation because of completion of term