JP2735479B2 - メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置 - Google Patents

メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置

Info

Publication number
JP2735479B2
JP2735479B2 JP5349616A JP34961693A JP2735479B2 JP 2735479 B2 JP2735479 B2 JP 2735479B2 JP 5349616 A JP5349616 A JP 5349616A JP 34961693 A JP34961693 A JP 34961693A JP 2735479 B2 JP2735479 B2 JP 2735479B2
Authority
JP
Japan
Prior art keywords
cache
main memory
storage
main
block
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
JP5349616A
Other languages
English (en)
Other versions
JPH07200367A (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 JP5349616A priority Critical patent/JP2735479B2/ja
Priority to US08/365,545 priority patent/US5644701A/en
Publication of JPH07200367A publication Critical patent/JPH07200367A/ja
Application granted granted Critical
Publication of JP2735479B2 publication Critical patent/JP2735479B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、記憶装置、特にキャッ
シュを有する記憶装置のスナップショット採取及び復元
に好適なキャッシュのメモリ・スナップショット方法及
びメモリ・スナップショット機能を持つ情報処理装置に
関する。
【0002】
【従来の技術】一般にプログラムの実行を再現するため
に、システムの状態を復元できるように、メモリ内容な
どのスナップショットを取ることが行われる。
【0003】従来、このスナップショット採取動作、即
ちメモリ内容等の保存動作は、ある時点からの実行が、
正常に行われるという条件のみを満たせばよいという考
え方で行われていた。
【0004】このため、従来のスナップショット方法で
は、ある時点からのプログラム実行の再開は可能であっ
たが、それ以降のプログラムの振る舞いは、以前の実行
とは異なるかもしれなかった。
【0005】ところが、非決定的なプログラムのデバッ
ギングを行おうとした場合、定期的なスナップショット
により、膨大なメモリ内容の保存が必要となるばかりで
なく、プログラムの再現を高速化する必要が出てきた。
【0006】また、従来のスナップショット方法は、キ
ャッシュを備えた情報処理装置では、キャッシュの内容
をフラッシュすることで、メモリ内容を主記憶に書き戻
し、主記憶のスナップショットだけを取っていた。この
場合、スナップショットを取るときと取らないときでキ
ャッシュの振る舞いが変化するという問題が出てきた。
【0007】また、非決定的なプログラム実行において
は、キャッシュの振る舞いの変化は、システムの振る舞
いの変化を招くという問題も生じる。つまり、スナップ
ショットを取ることによってキャッシュの状態が変化し
ても、プログラム実行の再開をすることは可能だが、プ
ログラムの再現実行には使用することができない。これ
は、デバッギングなどに適用する場合、スナップショッ
トを取っているときに実行される命令コードと、スナッ
プショットを取らないで普通に実行される命令コードと
が異なり、特定の場合だけにバグが顕在化する可能性を
持っている。
【0008】
【発明が解決しようとする課題】上記したように従来
は、定期的なスナップショットにより、膨大なメモリ内
容の保存が必要となり、したがってスナップショットの
復元にも時間を要するという問題があった。
【0009】また、キャッシュを備えた情報処理装置で
は、従来は、キャッシュの内容をフラッシュすること
で、メモリ内容を主記憶に書き戻し、主記憶のスナップ
ショットだけを取っていたため、スナップショットを取
るときと取らないときでキャッシュの振る舞いが変化
し、プログラムの振る舞いにも変化を与えるという問題
があった。
【0010】本発明は上記事情を考慮してされたもので
その目的は、保存された膨大なメモリ内容から必要なメ
モリページを高速に探し出すことができるメモリ・スナ
ップショット方法及びメモリ・スナップショット機能を
持つ情報処理装置を提供することにある。
【0011】本発明の他の目的は、キャッシュを有する
記憶装置のスナップショットを採取しても、プログラム
の振る舞いに変化を与えないようにすることができるメ
モリ・スナップショット方法及びメモリ・スナップショ
ット機能を持つ情報処理装置を提供することにある。
【0012】本発明の更に他の目的は、プログラムの再
開だけでなく、プログラムの再現実行にも適用可能なメ
モリ・スナップショット方法及びメモリ・スナップショ
ット機能を持つ情報処理装置を提供することにある。
【0013】
【課題を解決するための手段及び作用】本発明の第1の
観点に係るメモリ・スナップショット方法及びメモリ・
スナップショット機能を持つ情報処理装置は、主記憶の
各メモリページ毎の内容の最終保存位置を保持する最終
格納位置リストを設け、スナップショット採取時には、
主記憶の各ページのうち前回のスナップショット採取時
以降で内容の変化のあったページの内容を保存すると共
に、そのページ内容の保存位置をそのページに固有の最
終格納位置リスト内領域に設定し、更に主記憶内の変化
のあったすべてのページの内容が保存された後に上記最
終格納位置リストを保存し、スナップショット復元時に
は、上記保存されている最終格納位置リストに従って、
上記保存されているページ内容を主記憶の元のページ位
置に復元することを特徴とするものである。
【0014】このような構成において、スナップショッ
ト採取時には、前回のスナップショットから変化したメ
モリページのみが保存され、最終格納位置リストの当該
メモリページの保存位置情報が更新される。そして、変
化したすべてのページの内容が保存された後に、この最
終格納位置リストも保存される。
【0015】メモリ内容を再現する際には、この保存さ
れた最終格納位置リストから各メモリページの格納位置
の情報が求められ、その位置情報をもとに上記保存され
たページ内容が取り出されて、主記憶の対応するページ
に復元される。
【0016】本発明の第2の観点に係るメモリ・スナッ
プショット方法及びメモリ・スナップショット機能を持
つ情報処理装置は、ライト・スルー型のキャッシュを含
む記憶装置のスナップショット採取時には、キャッシュ
上のキャッシュブロックのうち有効なキャッシュブロッ
ク中のアドレス情報を保存すると共に、主記憶の内容を
保存し、スナップショット復元時には、この保存されて
いる主記憶の内容を復元した後、上記保存されているキ
ャッシュブロックのアドレス情報を使って、キャッシュ
の内容を上記復元された主記憶から復元することを特徴
とするものである。
【0017】このような構成において、スナップショッ
ト採取時には、主記憶内容が保存され、その際にキャッ
シュ上の有効なキャッシュブロックのアドレス情報も保
存される。
【0018】メモリ内容を再現する際には、まず、保存
されている主記憶の内容が復元される。そして、上記保
存されているキャッシュブロックのアドレス情報からキ
ャッシュブロックのエントリが生成され、そのキャッシ
ュブロックの内容が上記復元された主記憶から復元され
る。
【0019】本発明の第3の観点に係るメモリ・スナッ
プショット方法及びメモリ・スナップショット機能を持
つ情報処理装置は、コピー・バック型のキャッシュを含
む記憶装置のスナップショット採取時には、キャッシュ
上のキャッシュブロックのうちダーティ状態を示す状態
フラグを持つキャッシュブロックの内容を状態を変化さ
せずに主記憶に書き戻すと共に、キャッシュ上のキャッ
シュブロックのうちダーティまたはクリーン状態を示す
状態フラグを持つ有効なキャッシュブロック中のアドレ
ス情報及び当該状態フラグを保存し、更にキャッシュか
ら主記憶への書き戻し後に当該主記憶の内容を保存し、
スナップショット復元時には、この保存されている主記
憶の内容を復元した後、上記保存されているキャッシュ
ブロックのアドレス情報を使って、上記キャッシュの内
容を上記復元された主記憶から復元し、更に上記保存さ
れているキャッシュブロックの状態フラグを使って、上
記キャッシュの状態を復元することを特徴とするもので
ある。
【0020】このような構成において、スナップショッ
ト採取時には、キャッシュ上のダーティな状態のキャッ
シュブロックの内容がその状態を変化させずに主記憶に
書き戻されると共に、ダーティまたはクリーンな状態の
有効なキャッシュブロック中のアドレス情報及び状態フ
ラグが保存される。また、上記のキャッシュから主記憶
への書き戻し後に、当該主記憶の内容が保存される。
【0021】メモリ内容を再現する際には、まず、保存
されている主記憶の内容が復元される。そして、上記保
存されているキャッシュブロックのアドレス情報からキ
ャッシュブロックのエントリが生成され、そのキャッシ
ュブロックの内容が上記復元された主記憶から復元さ
れ、更にそのキャッシュブロックの状態が上記保存され
ているキャッシュブロックの状態フラグから復元され
る。
【0022】本発明の第4の観点に係るメモリ・スナッ
プショット方法及びメモリ・スナップショット機能を持
つ情報処理装置は、複数のプロセッシング・ユニットに
内蔵されるスヌープ型のキャッシュ・コヒーレンシ・プ
ロトコルを有する各キャッシュの各キャッシュブロック
に、そのブロックが(各プロセッシング・ユニットに共
有される)主記憶に書き戻されたか否かを示す書き戻し
済みフラグを有し、スナップショット採取時には、各プ
ロセッシング・ユニットにおいて、自キャッシュ上のす
べてのキャッシュブロックの書き戻しフラグを解除した
後、自キャッシュ上のキャッシュブロックのうち書き戻
し済みフラグが設定されておらず、且つダーティ状態を
示す状態フラグを持つ有効なキャッシュブロックの内容
を状態を変化させずに主記憶に書き戻すと共に、自キャ
ッシュ上に、他キャッシュから主記憶に書き戻されたキ
ャッシュブロックに相当するキャッシュブロックが保持
されている場合、当該キャッシュブロックに書き戻し済
みフラグを設定し、更に各プロセッシング・ユニットに
おいて、自キャッシュ上のキャッシュブロックのうちダ
ーティまたはクリーン状態を示す状態フラグを持つ有効
なキャッシュブロック中のアドレス情報及び当該状態フ
ラグを保存し、各プロセッシング・ユニットの各キャッ
シュから前記主記憶への書き戻し後に当該主記憶の内容
を保存し、スナップショット復元時には、この保存され
ている主記憶の内容を復元した後、各プロセッシング・
ユニットにおいて、上記保存されているキャッシュブロ
ックのアドレス情報を使って、自キャッシュの内容を前
記復元された主記憶から復元し、更に上記保存されてい
るキャッシュブロックの状態フラグ使って、自キャッシ
ュの状態を復元することを特徴とするものである。
【0023】このような構成において、スナップショッ
ト採取時には、各プロセッシング・ユニットにおいて、
まず自キャッシュ上のすべてのキャッシュブロックの書
き戻しフラグが解除され、しかる後に、自キャッシュ上
で書き戻し済みフラグが設定されておらず、且つダーテ
ィな状態の有効なキャッシュブロックの内容が状態を変
化させずに主記憶に書き戻されると共に、他キャッシュ
から主記憶への書き戻しがスヌープされ、自キャッシュ
上に、他キャッシュから主記憶に書き戻されたキャッシ
ュブロックに相当するキャッシュブロックが保持されて
いる場合には、当該キャッシュブロックに書き戻し済み
フラグが設定される。このフラグ設定により、他のキャ
ッシュから主記憶に書き戻された内容が当該キャッシュ
から再度主記憶に書き戻される無駄が発生するのを防止
する。
【0024】更に各プロセッシング・ユニットにおい
て、自キャッシュ上のキャッシュブロックのうちダーテ
ィまたはクリーンな状態の有効なキャッシュブロック中
のアドレス情報及び状態フラグが保存され、各プロセッ
シング・ユニットのキャッシュから主記憶への書き戻し
後には、当該主記憶の内容が保存される。
【0025】メモリ内容を再現する際には、まず、保存
されている主記憶の内容が復元される。そして、各プロ
セッシング・ユニットにおいては、上記保存されている
キャッシュブロックのアドレス情報からキャッシュブロ
ックのエントリが生成され、そのキャッシュブロックの
内容が上記復元された主記憶から復元され、更にそのキ
ャッシュブロックの状態が上記保存されているキャッシ
ュブロックの状態フラグから復元される。
【0026】本発明の第5の観点に係るメモリ・スナッ
プショット方法及びメモリ・スナップショット機能を持
つ情報処理装置は、複数のプロセッシング・ユニットに
内蔵されるディレクトリ型のキャッシュ・コヒーレンシ
・プロトコルを有する各キャッシュを含む記憶装置のス
ナップショット採取時には、上記各キャッシュ上のキャ
ッシュブロックについて、アドレス、状態フラグ及び当
該キャッシュブロックを持つキャッシュのリストを含む
ディレクトリ情報を保持するディレクトリを参照して、
ダーティ状態を示す状態フラグを持つキャッシュブロッ
クの書き戻しを行うキャッシュを選択し、そのキャッシ
ュから当該キャッシュブロックの内容を状態を変化させ
ずに主記憶に書き戻すと共に、上記ディレクトリで管理
されているダーティまたはクリーン状態を示す状態フラ
グを持つ有効なディレクトリ情報を保存し、更に上記キ
ャッシュから主記憶への書き戻し後に当該主記憶の内容
を保存し、スナップショット復元時には、この保存され
ている主記憶の内容を復元すると共に、上記保存されて
いるディレクトリ情報からディレクトリを復元し、この
復元したディレクトリの有効なディレクトリ情報中のア
ドレス情報を使って、当該ディレクトリ情報中のキャッ
シュリストの示す各キャッシュの内容を上記復元された
主記憶から復元することを特徴とするものである。
【0027】このような構成において、スナップショッ
ト採取時には、ディレクトリが参照され、そのディレク
トリ情報中の状態フラグ及びキャッシュリストをもと
に、ダーティな状態の有効なキャッシュブロックの書き
戻しを行うキャッシュが、各キャッシュブロック毎に選
択される。これにより、その選択されたキャッシュか
ら、当該キャッシュブロックの内容が状態を変化させず
に主記憶に書き戻される。また、上記ディレクトリで管
理されているダーティまたはクリーンな状態の有効な
(キャッシュブロックの)ディレクトリ情報が保存さ
れ、更に上記キャッシュから主記憶への書き戻し後には
当該主記憶の内容が保存される。
【0028】メモリ内容を再現する際には、まず、保存
されている主記憶の内容が復元されると共に、保存され
ているディレクトリ情報、即ちキャッシュブロックのア
ドレス、状態フラグ及びキャッシュリストから、ディレ
クトリが復元される。
【0029】そして、この復元されたディレクトリの有
効なディレクトリ情報中のアドレス情報及び状態フラグ
を使って、対応するキャッシュブロックが当該ディレク
トリ情報中のキャッシュリストの示す各キャッシュ上に
生成され、そのキャッシュブロックの内容が上記復元さ
れた主記憶から復元される。
【0030】
【実施例】以下、本発明の実施例を図面を参照して説明
する。なお、説明を簡単にするため、スナップショット
の順に番号を付ける。ここでは、g番目のスナップショ
ットを処理するものとする。
【0031】[第1の実施例]図1は、本発明の第1の
実施例を示すメモリ・スナップショット方法を適用した
情報処理装置のブロック構成図である。
【0032】図1の情報処理装置は、各種プログラム等
を実行するプロセッサ11と、当該プロセッサ11が実
行するプログラム等が格納される主記憶12とを有して
いる。
【0033】主記憶12は、例えばメモリページ単位で
管理されている。主記憶12の各ページには、ダーティ
フラグが付される。このダーティフラグは、前回のスナ
ップショット時以降に対応するページの内容に変更があ
ったか否かを示すもので、内容変更時にon(オン)状
態に設定される。このダーティフラグは、対応するペー
ジの内容が次に述べる主記憶格納領域13に保存される
と解除されて、off(オフ)状態となる。
【0034】図1の情報処理装置はまた、主記憶12の
内容をページ単位で保存するのに用いられる記憶領域
(主記憶格納領域)13と、各メモリページの主記憶格
納領域13内の最終格納位置を各ページ毎に保持する最
終格納位置リスト14と、各スナップショット時の最終
格納位置リスト(14)を保存するのに用いられる記憶
領域(最終格納位置リスト格納領域)15とを有してい
る。
【0035】主記憶格納領域13及び最終格納位置リス
ト格納領域15は、例えばディスク装置などの外部記憶
装置(不揮発性記憶装置)上に確保される。
【0036】図1の情報処理装置は更に、主記憶12の
内容を、ダーティフラグをもとにページ単位で主記憶格
納領域13に保存する主記憶保存装置16と、最終格納
位置リスト格納領域15に格納されている最終格納位置
リストに従って主記憶格納領域13に保存された主記憶
12の内容を復元する主記憶復元装置17とを有してい
る。
【0037】次に、図1の構成において、スナップショ
ットを取るときの動作を説明する。
【0038】スナップショットを取る際には、主記憶保
存装置16が起動される。
【0039】主記憶保存装置16は、主記憶12の各メ
モリページの中で、ダーティフラグがon状態に設定さ
れているページ、即ち前回のスナップショット時以降で
内容が変更されたダーティなページを探す。
【0040】この例では、ページPi ,Pj だけが前回
のスナップショット時以降で内容が変更されており、し
たがってメモリページPi とPj のダーティフラグだけ
が図1に示すようにon状態にあるものとする。
【0041】この場合、主記憶保存装置16は、主記憶
12上のメモリページPi のメモリ内容MPi を保存す
るため、主記憶格納領域13上に新たな格納領域Sg1
を確保する。
【0042】次に主記憶保存装置16は、当該ページP
i の内容MPi を主記憶格納領域13上の確保した領域
Sg1に保存する。
【0043】このとき主記憶保存装置16は、主記憶1
2上のメモリページPi のダーティフラグをoff状態
にする(解除する)。
【0044】主記憶保存装置16は更に、最終格納位置
リスト14上のページPi に対応した領域iに、当該ペ
ージPi の内容の主記憶格納領域13上での最終格納位
置情報としてSg1を格納する。
【0045】主記憶保存装置16は、以上の処理を、メ
モリページPj についても同様に行なう。
【0046】このようにして、すべてのダーティな主記
憶内容の保存が終了したならば、即ち主記憶12におい
てダーティフラグがon状態に設定されているページが
なくなったならば、主記憶保存装置16は、その時点に
おける最終格納位置リスト14の内容を最終格納位置リ
スト格納領域15のg番目のエントリに格納する。
【0047】以上のようにして、図1の状況でのスナッ
プショットを取る処理を終了した段階では、主記憶12
は図2(a)に示す状態に、最終格納位置リスト14は
図2(b)に示す状態に、主記憶格納領域13は図2
(c)に示す状態に、そして最終格納位置リスト格納領
域15は図2(d)に示す状態に、それぞれ遷移する。
【0048】なお、ダーティフラグの解除(off操
作)は、上記したようにメモリページの内容を保存する
ときに個別に行なっても、すべてのダーティな主記憶内
容の保存が終了した後で、一括して行なうようにしても
構わない。
【0049】次に、g番目のスナップショットを復元す
るときの動作について説明する。
【0050】スナップショットを復元する際には、主記
憶復元装置17が起動される。
【0051】主記憶復元装置17は、最終格納位置リス
ト格納領域15に格納されているg番目のスナップショ
ットの最終格納位置リストを探す。
【0052】次に主記憶復元装置17は、探し求めたg
番目のスナップショットの最終格納位置リストに保存さ
れている各メモリページの格納位置の情報を使い、以下
に述べるように主記憶格納領域13から主記憶12にメ
モリ内容を復元する。
【0053】まず、この例では、最終格納位置リスト格
納領域15に格納されているg番目のスナップショット
の最終格納位置リストには、図2に示すように、メモリ
ページPi に対応した領域iに(メモリページPi の内
容の主記憶格納領域13上での)最終格納位置情報Sg
1が保存され、同じくメモリページPj に対応した領域
jに(メモリページPj の内容の主記憶格納領域13上
での)最終格納位置情報Sg2が保存されている。
【0054】主記憶復元装置17は、この最終格納位置
情報Sg1,Sg2に従って、主記憶格納領域13の領
域Sg1,Sg2に保存されているメモリページPi ,
Pjの内容を取り出し、主記憶12の当該ページPi ,
Pj に書き込む。これにより、主記憶12の内容が復元
される。
【0055】[第2の実施例]図3は、本発明の第2の
実施例を示すメモリ・スナップショット方法を適用した
情報処理装置のブロック構成図である。
【0056】図3の情報処理装置は、各種プログラム等
を実行するプロセッサ21と、当該プロセッサ21が実
行するプログラム等が格納される主記憶22と、主記憶
22の一部の写し(コピー)を保持するためのキャッシ
ュ23とを有している。
【0057】主記憶22は、メモリページ単位で管理さ
れ、各ページにはダーティフラグが付されている。この
主記憶22の構造は、図1の主記憶12と同様なため、
図3では省略してある。したがって、必要があれば、図
1の主記憶12を参照されたい。
【0058】キャッシュ23は、例えばライトスルー型
のキャッシュであり、アドレス、当該アドレスで指定さ
れる主記憶22上の一定サイズのブロックのデータの写
し(内容)、及び状態フラグを組とするキャッシュブロ
ックからなる。この状態フラグは、対応するキャッシュ
ブロックが有効であるか否かを示す。ここで、キャッシ
ュブロックが有効であることを示す状態フラグをV(バ
リッド)で表現し、無効であることを示す状態フラグを
I(インバリッド)で表現する。
【0059】図3の例では、説明を簡単にするために、
キャッシュブロックに保持されるブロックデータとペー
ジのサイズは同一であるものとする。また、アドレス
(ページアドレス)Am で指定される主記憶22上のブ
ロック(メモリページ)のデータ(の写し)Cm を保持
するキャッシュブロックBm と、アドレス(ページアド
レス)An で指定される主記憶22上のブロック(メモ
リページ)のデータ(の写し)Cn を保持するキャッシ
ュブロックBn だけが有効で、それ以外は無効である
(図3では無効のキャッシュブロックは省略)ものとす
る。
【0060】図3の情報処理装置はまた、主記憶12の
内容を保存するのに用いられる(図1の主記憶格納領域
13と同様な構造の)主記憶格納領域24と、キャッシ
ュ23上の有効なキャッシュブロック中のアドレス情報
を保存するのに用いられる記憶領域(アドレス格納領
域)25とを有している。
【0061】アドレス格納領域25には、スナップショ
ット毎にアドレスを保持するエントリ群からなるアドレ
ステーブル251と、スナップショット毎のアドレステ
ーブル251の先頭格納位置(エントリ位置)を保持す
る検索テーブル252が置かれる。
【0062】主記憶格納領域24及びアドレス格納領域
25は、例えばディスク装置などの外部記憶装置上に確
保される。
【0063】図3の情報処理装置は更に、主記憶12の
内容を主記憶格納領域24に保存する(図1の主記憶保
存装置16と同様の)主記憶保存装置26と、主記憶格
納領域24に保存された主記憶22の内容を復元する
(図1の主記憶復元装置17と同様の)主記憶復元装置
27と、キャッシュ23に保持されている有効なキャッ
シュブロック中のアドレス(有効アドレス)をアドレス
格納領域25に保存するキャッシュアドレス保存装置2
8と、アドレス格納領域25と主記憶22の内容をもと
に、キャッシュ23の内容(キャッシュブロックのアド
レス情報とその内容)を復元するキャッシュ復元装置2
9とを有している。
【0064】なお、図3の情報処理装置には、以上の構
成の他に、図1の最終格納位置リスト14、及び最終格
納位置リスト格納領域15と同様の構成も含まれている
が、図では省略されている。
【0065】次に、図3の構成において、スナップショ
ットを取るときの動作を説明する。
【0066】まず、図3中のキャッシュ23は上記した
ようにライトスルー型のキャッシュである。したがっ
て、キャッシュ23上のキャッシュデータが更新された
場合には、主記憶22上の対応するデータも更新され、
キャッシュ23の内容と主記憶22の内容は常に整合性
が取れている。例えば、キャッシュブロックBm ,Bn
の内容(ブロックデータ)Cm ,Cn は、そのアドレス
Am ,An で指定される主記憶32上の(メモリページ
の)データに一致している。
【0067】さて、スナップショットを取る際には、キ
ャッシュアドレス保存装置28が起動される。
【0068】キャッシュアドレス保存装置28は、キャ
ッシュ23の各キャッシュブロックの中で、状態フラグ
がV状態に設定されている有効なキャッシュブロックを
探す。
【0069】この例では、図3に示すように、2つのキ
ャッシュブロックBm ,Bn だけが有効である。
【0070】この場合、キャッシュアドレス保存装置2
8はまず、キャッシュ23上の有効なキャッシュブロッ
クBm 中のアドレスAm を、アドレス格納領域25内の
アドレステーブル251のエントリg1に保存する。こ
のアドレステーブル251内エントリg1は、(前回の
スナップショット時に設定された)検索テーブル252
内のg番目のエントリの内容によって位置指定されるも
のである。
【0071】次にキャッシュアドレス保存装置28は、
キャッシュ23上の有効なキャッシュブロックBn 中の
アドレスAn を、当該アドレステーブル251の例えば
次のエントリg2に保存する。
【0072】このようにして、すべての有効なキャッシ
ュブロック(中のアドレス情報)の保存が終了したなら
ば、キャッシュアドレス保存装置28は、次回のスナッ
プショット処理のため、検索テーブル252のg+1番
目のエントリに、アドレステーブル251の次のエント
リを指す値(g+1)1を設定する。
【0073】また、スナップショットを取る場合には、
主記憶保存装置26も起動される。
【0074】この主記憶保存装置26は、前記第1の実
施例における主記憶保存装置16が行ったのと同様にし
て、主記憶22上の各メモリページの中で、前回のスナ
ップショット時以降で内容が変更されたページ(即ちダ
ーティなページ)を探す。このダーティなページは、図
3の例では、キャッシュ23がライトスルー型のキャッ
シュであり、またページサイズがキャッシュブロック
(中のブロックデータ)のサイズに一致していることか
ら、アドレスAm のデータCm とアドレスAn のデータ
Cn となる。これは、キャッシュブロックサイズよりペ
ージサイズの方が大きい場合(通常は、この場合が多
い)も同様である。また、キャッシュブロックサイズの
方が大きい場合には、主記憶12上の対応する複数のペ
ージをすべてダーティなページとすればよい。
【0075】次に主記憶保存装置26は、上記ダーティ
なページのデータCm ,Cn を、主記憶格納領域24の
g番目(のスナップショット領域として管理される2つ
の領域Sg1,Sg2)に保存する。この際の図示せぬ
最終格納位置リストの扱いについても、前記第1の実施
例と同様である。
【0076】以上のようにして、図3の状況でのスナッ
プショットを取る処理を終了した段階では、アドレス格
納領域25は図4に示す状態となる。
【0077】次に、g番目のスナップショットを復元す
るときの動作について説明する。
【0078】まず、復元時に保存時と同じキャッシュブ
ロックが使われるか否かはキャッシュの構成に依存す
る。ダイレクトマップ方式の場合は、キャッシュブロッ
クの位置が保存時と同じになるが、セット連想方式や完
全連想方式の場合には、ブロックの位置が変わるかもし
れない。ここでは、復元処理の説明を簡単にするため、
キャッシュ23がダイレクトマップ方式であるとする。
【0079】スナップショットの復元時には、主記憶復
元装置27及びキャッシュ復元装置29が起動される。
【0080】主記憶復元装置27は、主記憶格納領域2
4に格納されているg番目の主記憶内容を、前記第1の
実施例における主記憶復元装置17が行ったのと同様に
して、主記憶22に復元する。
【0081】一方、キャッシュ復元装置29は、まずキ
ャッシュ23内のすべてのキャッシュブロックの状態を
無効(I)にする。
【0082】次にキャッシュ復元装置29は、アドレス
格納領域25の検索テーブル252のg番目のエントリ
を参照して、g番目のスナップショットのアドレステー
ブル251内先頭格納位置(エントリ位置)g1を求め
る。
【0083】そしてキャッシュ復元装置29は、求めた
先頭格納位置g1のアドレステーブル251内エントリ
(即ちエントリg1)中のアドレスAm からキャッシュ
ブロックBm をキャッシュ23上に復元して、その状態
を有効(V)にする。またキャッシュ復元装置29は、
(主記憶復元装置27による復元後の)主記憶22から
そのアドレスAm の内容Cm を復元する。
【0084】続いてキャッシュ復元装置29は、アドレ
ステーブル251内の次のエントリ(即ちエントリg
2)中のアドレスAn からキャッシュブロックBn をキ
ャッシュ23上に復元して、その状態を有効(V)にす
る。またキャッシュ復元装置29は、(主記憶復元装置
27による復元後の)主記憶22からそのアドレスAn
の内容Cn を復元する。
【0085】なお、アドレステーブル251内の更に次
のエントリは、検索テーブル252のg+1番目のエン
トリにより、g+1番目のスナップショットのアドレス
テーブル251内先頭格納位置(g+1)1であると指
定されていることから、g番目のスナップショットの復
元対象とはならない。
【0086】[第3の実施例]図5は、本発明の第3の
実施例を示すメモリ・スナップショット方法を適用した
情報処理装置のブロック構成図である。
【0087】図5の情報処理装置は、各種プログラム等
を実行するプロセッサ31と、当該プロセッサ31が実
行するプログラム等が格納される主記憶32と、主記憶
32の一部の写しを保持するためのキャッシュ33とを
有している。
【0088】主記憶32は、メモリページ単位で管理さ
れ、各ページにはダーティフラグが付されている。この
主記憶32の構造は、図1の主記憶12と同様なため、
図5では省略してある。したがって、必要があれば、図
1の主記憶12を参照されたい。
【0089】キャッシュ33は、例えばコピーバック型
のキャッシュであり、図3のライトスルー型のキャッシ
ュ23と同様に、アドレス、内容(但し、コピーバック
型キャッシュでは、当該アドレスで指定される主記憶3
2上のデータと同じであるとは限らない)、及び状態フ
ラグを組とするキャッシュブロックからなる。この状態
フラグは、図3のキャッシュ23とは異なり、対応する
キャッシュブロックが有効であるか否かの他に、有効で
ある場合には更にその内容(データ)と主記憶32上の
該当箇所のデータが一致しているか否かを示す。ここ
で、上記両データが一致していることを示す状態フラグ
をC(クリーン)で表現し、一致していないことを示す
状態フラグをD(ダーティ)で表現する。また、キャッ
シュブロックが無効であることを示す状態フラグをI
(インバリッド)で表現する。
【0090】図5の例では、説明を簡単にするために、
キャッシュブロックに保持されるブロックデータとペー
ジのサイズは同一であるものとする。また、アドレス
(ページアドレス)Am で指定される主記憶32上のブ
ロック(メモリページ)のデータに対応する内容Cm を
保持するキャッシュブロックBm がダーティ、アドレス
(ページアドレス)An で指定される主記憶32上のブ
ロック(メモリページ)のデータに対応する内容Cn を
保持するキャッシュブロックBn がクリーン、それ以外
は無効である(図5では無効のキャッシュブロックは省
略)ものとする。
【0091】ここで、ダーティなキャッシュブロックB
m 中の内容(ブロックデータ)Cmと、主記憶32上の
対応するアドレスAm の内容とは一致しない。その様子
を示すために、図3においては、主記憶12上のアドレ
ス(ページアドレス)Am の内容はCm とせずに、空白
としている。これに対して、クリーンなキャッシュブロ
ックBn 中の内容(ブロックデータ)Cn と、主記憶1
2上の対応するアドレスAn の内容とは一致する。
【0092】図5の情報処理装置はまた、主記憶32の
内容を保存するのに用いられる(図1の主記憶格納領域
13と同様な構造の)主記憶格納領域34と、キャッシ
ュ33上の有効なキャッシュブロック中のアドレス情報
及び状態(状態フラグ)の組を保存するのに用いられる
記憶領域(キャッシュ情報格納領域)35とを有してい
る。
【0093】キャッシュ情報格納領域35には、スナッ
プショット毎にアドレス及び状態(状態フラグ)を保持
するエントリ群からなる情報テーブル351と、スナッ
プショット毎のアドレステーブル351の先頭格納位置
(エントリ位置)を保持する検索テーブル352が置か
れる。
【0094】主記憶格納領域34及びキャッシュ情報格
納領域35は、例えばディスク装置などの外部記憶装置
上に確保される。
【0095】図5の情報処理装置はまた、主記憶32の
内容を主記憶格納領域34に保存する(図1の主記憶保
存装置16と同様の)主記憶保存装置36と、主記憶格
納領域34に保存された主記憶32の内容を復元する
(図1の主記憶復元装置17と同様の)主記憶復元装置
37とを有している。
【0096】図5の情報処理装置は更に、キャッシュ3
3に保持されている有効なキャッシュブロック中のアド
レス及び状態(状態フラグ)の組をキャッシュ情報格納
領域35に保存するキャッシュ情報保存装置38と、キ
ャッシュ情報格納領域35と主記憶32の内容をもと
に、キャッシュ33の内容(キャッシュブロックのアド
レス情報、状態及び内容)を復元するキャッシュ復元装
置39と、キャッシュ内容書き戻し装置40とを有して
いる。このキャッシュ内容書き戻し装置40は、スナッ
プショットを取る際に、キャッシュ33に保持されてい
るダーティなキャッシュブロックの内容を主記憶32に
書き戻す動作を司る。
【0097】なお、図5の情報処理装置には、以上の構
成の他に、図1の最終格納位置リスト14、及び最終格
納位置リスト格納領域15と同様の構成も含まれている
が、図では省略されている。
【0098】次に、図5の構成において、スナップショ
ットを取るときの動作を説明する。
【0099】まず、図5中のキャッシュ33は上記した
ようにコピーバック型のキャッシュである。したがっ
て、キャッシュ33上のキャッシュブロックのデータ
(内容)が更新された場合に、主記憶32上の対応する
データは直ちに更新されず、ダーティな(D状態の)キ
ャッシュブロックとなり、キャッシュ33の内容と主記
憶32の内容は必ずしも一致しない。このキャッシュブ
ロックは、(スナップショットを取らない)通常状態に
おいて、その内容が図示せぬコピーバック機構によって
主記憶32に書き戻された場合には、クリーン(C状
態)になる。
【0100】さて、スナップショットを取る際には、キ
ャッシュ内容書き戻し装置40が起動される。
【0101】キャッシュ内容書き戻し装置40は、キャ
ッシュ33の各キャッシュブロックの中で、D状態に設
定されている有効なキャッシュブロック、即ちキャッシ
ュ状態がダーティであるキャッシュブロックを探す。
【0102】この例では、図5に示すように、キャッシ
ュブロックBm だけがダーティである。
【0103】この場合、キャッシュ内容書き戻し装置4
0は、当該ダーティなキャッシュブロックBm の内容
(ブロックデータ)Cm を、同ブロックBm 中のアドレ
スAmに基づき、当該キャッシュブロックBm の状態
(キャッシュ状態)を変化させないで主記憶32に書き
戻す。これにより、主記憶32上のアドレスAm (のペ
ージ)には、更新後の正しいデータCm が設定される
が、対応するキャッシュブロックBm の状態は、ダーテ
ィのままとなる。これが、通常時の書き戻し(コピーバ
ック)と異なる点である。
【0104】スナップショットを取る際には、キャッシ
ュ情報保存装置38も起動される。
【0105】キャッシュ情報保存装置38は、キャッシ
ュ33の各キャッシュブロックの中で、状態フラグがD
またはC状態に設定されている有効なキャッシュブロッ
クを探す。
【0106】この例では、図5に示すように、2つのキ
ャッシュブロックBm ,Bn だけが有効である。
【0107】この場合、キャッシュ情報保存装置38は
まず、キャッシュ33上の有効なキャッシュブロックB
m 中のアドレスAm と状態Dの組をキャッシュ情報格納
領域35の情報テーブル351内エントリg1に保存す
る。この情報テーブル351内エントリg1は、(前回
のスナップショット時に設定された)検索テーブル35
2内のg番目のエントリの内容によって位置指定される
ものである。
【0108】次に、キャッシュ情報保存装置38は、キ
ャッシュ33上の有効なキャッシュブロックBn 中のア
ドレスAn と状態Cの組を、当該情報テーブル351の
例えば次のエントリg2に保存する。
【0109】このようにして、すべての有効なキャッシ
ュブロック(中のアドレス情報及び状態の組)の保存が
終了したならば、キャッシュ情報保存装置38は、次回
のスナップショット処理のため、検索テーブル352の
g+1番目のエントリに、情報テーブル351の次のエ
ントリを指す値(g+1)1を設定する。。
【0110】さて、キャッシュ内容書き戻し装置40に
よる前記した書き戻し動作が終了した場合、主記憶保存
装置36が起動される。
【0111】主記憶保存装置36は、前記第1の実施例
における主記憶保存装置16が行ったのと同様にして、
主記憶32上の各メモリページの中で、前回のスナップ
ショット時以降で内容が変更されたページ(即ちダーテ
ィなページ)を探す。このダーティなページのデータ
は、図5の例では、キャッシュ33上でC状態にあるキ
ャッシュブロックBn に対応するアドレスAn のデータ
Cn と、キャッシュ33上でD状態にあるキャッシュブ
ロックBm に対応するアドレスAm のデータ(即ちキャ
ッシュ内容書き戻し装置40により主記憶32に書き戻
されたばかりのデータCm )である。
【0112】次に主記憶保存装置36は、上記ダーティ
なページのデータCm ,Cn を、主記憶格納領域34の
g番目(のスナップショット領域として管理される2つ
の領域Sg1,Sg2)に保存する。この際の図示せぬ
最終格納位置リストの扱いについても、前記第1の実施
例と同様である。
【0113】以上のようにして、図5の状況でのスナッ
プショットを取る処理を終了した段階では、主記憶32
は図6(a)に示す状態に、キャッシュ33は図6
(b)に示す状態に、そしてキャッシュ情報格納領域3
5は図6(c)に示す状態になっている。
【0114】次に、g番目のスナップショットを復元す
るときの動作について説明する。
【0115】スナップショットの復元時には、主記憶復
元装置37及びキャッシュ復元装置39が起動される。
【0116】主記憶復元装置37は、主記憶格納領域3
4に格納されているg番目の主記憶内容を、前記第1の
実施例における主記憶復元装置17が行ったのと同様に
して、主記憶32に復元する。
【0117】一方、キャッシュ復元装置39は、まずキ
ャッシュ33内のすべてのキャッシュブロックの状態を
無効(I)にする。
【0118】次にキャッシュ復元装置39は、キャッシ
ュ情報格納領域35の検索テーブル352のg番目のエ
ントリを参照して、g番目のスナップショットの情報テ
ーブル351内先頭格納位置(エントリ位置)g1を求
める。
【0119】そしてキャッシュ復元装置39は、求めた
先頭格納位置g1の情報テーブル351内エントリ(即
ちエントリg1)中のアドレスAm と状態Dの組からキ
ャッシュブロックBm をキャッシュ23上に復元し、更
に(主記憶復元装置37による復元後の)主記憶32か
らそのアドレスAm の内容Cm を復元する。
【0120】続いてキャッシュ復元装置39は、情報テ
ーブル351内の次のエントリ(即ちエントリg2)中
のアドレスAn と状態Cの組からキャッシュブロックB
n をキャッシュ23上に復元し、更に(主記憶復元装置
37による復元後の)主記憶32からそのアドレスAn
の内容Cn を復元する。
【0121】[第4の実施例]図7は、本発明の第4の
実施例を示すメモリ・スナップショット方法を適用した
情報処理装置のブロック構成図である。
【0122】図7の情報処理装置は、プロセッシング・
ユニット41j ,41k を含むプロセッシング・ユニッ
ト群と、当該プロセッシング・ユニット群により共有さ
れる主記憶42と、主記憶42の内容を保存するのに用
いられる(図1の主記憶格納領域13と同様な構造の)
主記憶格納領域43と、主記憶42の内容を主記憶格納
領域43に保存する(図1の主記憶保存装置16と同様
の)主記憶保存装置44と、主記憶格納領域43に保存
された主記憶42の内容を復元する(図1の主記憶復元
装置17と同様の)主記憶復元装置45と、各プロセッ
シング・ユニット及び主記憶42が接続されているバス
46とを有している。
【0123】プロセッシング・ユニット41j ,41k
は、各種プログラム等を実行するプロセッサ411j ,
411k と、主記憶42の一部の写しを保持するための
キャッシュ412j ,412k とを持つ。
【0124】キャッシュ412j ,412k は、アドレ
ス、内容、状態フラグ及び書き戻し済みフラグを組とす
るキャッシュブロックからなる。このように、キャッシ
ュ412j ,412k のキャッシュブロックは、図5の
キャッシュ33のキャッシュブロックに書き戻し済みフ
ラグを付加した構造となっている。この書き戻し済みフ
ラグは、スナップショットを取る際に、対応するキャッ
シュブロックの内容(ブロックデータ)が主記憶42に
書き戻されている(on状態の場合)か否か(off状
態の場合)を示す。
【0125】プロセッシング・ユニット41j ,41k
はまた、キャッシュ412j ,412k 上の有効なキャ
ッシュブロック中のアドレス情報及び状態(状態フラ
グ)の組を保存するのに用いられる(図5のキャッシュ
情報格納領域35と同様の)キャッシュ情報格納領域4
13j ,413k と、キャッシュ412j ,412k に
保持されている有効なキャッシュブロック中のアドレス
及び状態(状態フラグ)の組をキャッシュ情報格納領域
413j ,413k に保存するキャッシュ情報保存装置
414j ,414k と、キャッシュ情報格納領域413
j ,413k と主記憶42の内容をもとに、キャッシュ
412j ,412k の内容(キャッシュブロックのアド
レス情報、状態及び内容)を復元するキャッシュ復元装
置415j,415k と、キャッシュ内容書き戻し装置
416j ,416k とを持つ。
【0126】キャッシュ内容書き戻し装置416j ,4
16k は、スナップショットを取る際に、キャッシュ4
12j ,412k に保持されているダーティで且つ書き
戻し済みフラグが設定されていない(off状態にあ
る)キャッシュブロックの内容(ブロックデータ)をバ
ス46を介して主記憶42に書き戻す動作を司る。この
キャッシュ内容書き戻し装置416j ,416k は、他
のプロセッシング・ユニットのキャッシュの振る舞いを
バス46上で監視する。
【0127】なお、図7では示されていないが、他のプ
ロセッシング・ユニットの構成も、上記プロセッシング
・ユニット41j ,41k と同様である。
【0128】また、図7の情報処理装置には、周知のス
ヌープ型のキャッシュ・コヒーレンシ・プロトコルでキ
ャッシュ412j ,412k を始めとする各キャッシュ
と主記憶42の内容との一貫性を取るための機構が備え
られているが、図では省略されている。
【0129】また、図7の情報処理装置には、以上の構
成の他に、図1の最終格納位置リスト14、及び最終格
納位置リスト格納領域15と同様の構成も含まれている
が、図では省略されている。
【0130】次に、図7の構成において、スナップショ
ットを取るときの動作を説明する。なお、説明を簡単に
するために、キャッシュブロックに保持されるブロック
データとページのサイズは同一であるものとする。
【0131】今、キャッシュ412j ,412k が、図
8(a),(b)に示す状態にあるものとする。即ちキ
ャッシュ412j においては、図8(a)に示すよう
に、アドレスAq 及びその内容Cq を保持するキャッシ
ュブロックBq がダーティ(状態D)、それ以外は無効
(図では無効のキャッシュブロックは省略)であるもの
とする。また、キャッシュ412k においては、図8
(b)に示すように、アドレスAp 及びその内容Cp を
保持するキャッシュブロックBp がクリーン(状態
C)、それ以外は無効(図では無効のキャッシュブロッ
クは省略)であるものとする。また、キャッシュブロッ
クBq ,Bp 中の書き戻し済みフラグはいずれもoff
であるものとする。
【0132】スナップショットを取る際には、各プロセ
ッシング・ユニット412j ,412k 内のキャッシュ
内容書き戻し装置416j ,416k が起動される。
【0133】キャッシュ内容書き戻し装置416j ,4
16k はまず、キャッシュ412j,412k のすべて
のキャッシュブロックの書き戻し済みフラグを解除(o
ff状態に)する。この動作は、書き戻し済みフラグが
既に解除されているキャッシュブロックを含む全キャッ
シュブロックを対象に一括して行う他、書き戻し済みフ
ラグがon状態にあるキャッシュブロックだけを対象に
選択的に行うようにしても構わない。
【0134】次にキャッシュ内容書き戻し装置416j
,416k は、キャッシュ412j,412k の各キャ
ッシュブロックの中で、(状態フラグが)D状態に設定
され、且つ書き戻し済みフラグが設定されていない有効
なキャッシュブロック、即ちキャッシュ状態がダーティ
で且つ書き戻し済みフラグがoff状態にあるキャッシ
ュブロックを探す。
【0135】この例では、キャッシュ412j において
は、図8(a)に示すようにキャッシュブロックBq だ
けが該当し、キャッシュ412k においては、図8
(b)に示すように該当するキャッシュブロックは存在
しない。
【0136】この場合、キャッシュ内容書き戻し装置4
16j だけが、キャッシュ412j内のダーティで且つ
書き戻し済みフラグがoff状態にあるキャッシュブロ
ックBq の内容(ブロックデータ)Cq を、同ブロック
Bq 中のアドレスAq に基づき、当該ブロックBq の状
態(キャッシュ状態を示す状態フラグ)を変化させない
でバス46を介して主記憶42に書き戻す。このときキ
ャッシュ内容書き戻し装置416j は当該ブロックBq
の書き戻し済みフラグをon状態に設定する。
【0137】キャッシュ内容書き戻し装置416j ,4
16k を始めとするプロセッシング・ユニット内のキャ
ッシュ内容内容書き戻し装置は、スナップショット採取
時には、他のプロセッシング・ユニットのキャッシュの
振る舞いをバス46上で監視している。例えば、キャッ
シュ内容書き戻し装置416j ,416k は、他のプロ
セッシング・ユニットから、自ユニット41j ,41k
内のキャッシュ412j ,412k 上で保持しているキ
ャッシュブロック中のアドレスに一致する主記憶42の
更新動作が行われるか否か、即ち他のプロセッシング・
ユニットの主記憶更新動作が自ユニット内のキャッシュ
412j ,412k にヒットするか否かを監視してい
る。そしてキャッシュ内容書き戻し装置416j ,41
6k は、他プロセッシング・ユニットの主記憶更新動作
が自ユニット内のキャッシュ412j ,412k の対応
するキャッシュブロックにヒットする場合には、当該ブ
ロック中の書き戻し済みフラグをon状態に設定する。
但し、この例では、キャッシュ内容書き戻し装置416
j により主記憶42への書き戻しが行われたキャッシュ
ブロックBq は、他のプロセッシング・ユニットのキャ
ッシュには保持されていないため、他のいずれのプロセ
ッシング・ユニットにても書き戻し済みフラグのon操
作は行われない。
【0138】以上により、主記憶42上のアドレスAq
には、更新後の正しいデータCq が設定されるが、対応
するキャッシュブロックBq の状態は、ダーティのまま
となる。
【0139】次に、キャッシュ情報保存装置414j ,
414k が起動される。キャッシュ情報保存装置414
j ,414k は、前記した図5中のキャッシュ情報保存
装置38と同様に、キャッシュ情報保存処理を行う。
【0140】即ち、キャッシュ情報保存装置414j
は、キャッシュ412j 内の有効なキャッシュブロック
Bq (図8(a)参照)中のアドレスAq と状態Dの組
を、キャッシュ情報格納領域413j に保存し、キャッ
シュ情報保存装置414k は、キャッシュ412k 内の
有効なキャッシュブロックBp (図8(b)参照)中の
アドレスAp と状態Cの組を、キャッシュ情報格納領域
413k に保存する。ここで、キャッシュ情報格納領域
413j ,413k 内のアドレス情報保存位置は、図9
(c),(d)に示すように、検索テーブル418j ,
418k 内のg番目のエントリの内容によって指定され
る、情報テーブル417j ,417k 内エントリであ
る。
【0141】さて、キャッシュ情報保存装置414j ,
414k が起動される際には、主記憶保存装置44も起
動される。
【0142】主記憶保存装置44は、前記第1の実施例
における主記憶保存装置16が行ったのと同様にして、
主記憶42上の各メモリページの中で、前回のスナップ
ショット時以降で内容が変更されたページ(即ちダーテ
ィなページ)を探す。このダーティなページのデータ
は、図8(a),(b)の例では、キャッシュ412j
上でD状態にあるキャッシュブロックBq に対応するア
ドレスAq のデータ(即ちキャッシュ内容書き戻し装置
416j により主記憶42に書き戻されたばかりのデー
タCq )と、キャッシュ412k 上でC状態にあるキャ
ッシュブロックBp に対応するアドレスAp のデータC
p である。
【0143】次に主記憶保存装置44は、上記ダーティ
なページのデータCq ,Cp を、主記憶格納領域43の
g番目に保存する。
【0144】以上のようにして、図8(a),(b)の
状況でのスナップショットを取る処理を終了した段階で
は、キャッシュ412j ,412k は図9(a),
(b)に示す状態に、キャッシュ情報格納領域413j
,413k は図9(c),(d)に示す状態になって
いる。
【0145】以上は、各プロセッシング・ユニットの各
キャッシュ間で共通のキャッシュブロックが存在しない
場合であるが、図10(a),(b)に示すように、例
えばキャッシュブロックBq がキャッシュ412j だけ
でなくキャッシュ412k にも存在する場合には、以下
に述べるようにスナップショット時の動作が少し異な
る。
【0146】まず、プロセッシング・ユニット41j 内
のキャッシュ内容書き戻し装置416j が、キャッシュ
412j のすべてのキャッシュブロックの書き戻し済み
フラグを解除した後、キャッシュ状態がダーティで且つ
書き戻し済みフラグがoff状態にあるキャッシュブロ
ックBq を探したものとする。この場合、キャッシュ内
容書き戻し装置416j は、当該キャッシュブロックB
q の内容(ブロックデータ)Cq を、当該ブロックBq
中のアドレスAq に基づき、当該ブロックBqの状態を
変化させないで主記憶42に書き戻すと共に、当該ブロ
ックBq の書き戻し済みフラグをon状態に設定する。
【0147】一方、プロセッシング・ユニット41k 内
のキャッシュ内容書き戻し装置416k は、上記キャッ
シュ内容書き戻し装置416j による主記憶42への書
き戻し動作が行われると、バス46上のアドレスによ
り、その書き戻しされたキャッシュブロックBq が、自
ユニット41k 内のキャッシュ412k にも保持されて
いることを検出する。即ちキャッシュ内容書き戻し装置
416k は、自ユニット41k 内のキャッシュ412k
にも保持されているキャッシュブロックBq の書き戻し
をスヌープする。この場合、キャッシュ内容書き戻し装
置416k は、キャッシュ412k 内の当該キャッシュ
ブロックBq の書き戻し済みフラグをon状態に設定す
る。このフラグ操作は、上記キャッシュ内容書き戻し装
置416jにより主記憶42に書き戻されたのと同じキ
ャッシュブロックBp について、キャッシュ内容書き戻
し装置416k が主記憶42に書き戻す無駄が発生する
のを防ぐためである。
【0148】なお、キャッシュ内容書き戻し装置416
k の方が先に、自ユニット41k 内のキャッシュ412
k に保持されているキャッシュブロックBq の書き戻し
を行った場合には、キャッシュ内容書き戻し装置416
j において、上記のキャッシュ内容書き戻し装置416
j と同様の書き戻し済みフラグ操作が行われる。
【0149】また、キャッシュ内容書き戻し装置416
j ,416k が同時にキャッシュブロックBq を書き戻
そうとした場合には、バス46を先に取得できた方が処
理をしても、両方が同じ処理をしても構わない。また、
キャッシュブロックの書き戻しを行ったキャッシュ内容
書き戻し装置自身は、必ずしも当該キャッシュブロック
の書き戻し済みフラグをonする必要はない。
【0150】以降の動作は、図8(a),(b)の状況
でのスナップショット時と同様であり、図10(a),
(b)の状況でのスナップショットを取る処理を終了し
た段階では、キャッシュ412j ,412k は図11
(a),(b)に示す状態に、キャッシュ情報格納領域
413j ,413k は図11(c),(d)に示す状態
になっている。
【0151】次に、図8(a),(b)のスナップショ
ットを復元するときの動作について説明する。
【0152】スナップショットの復元時には、主記憶復
元装置45及びキャッシュ復元装置415j ,415k
等が起動される。
【0153】まず主記憶復元装置45は、主記憶格納領
域43に格納されているg番目の主記憶内容を、前記第
1の実施例における主記憶復元装置17が行ったのと同
様にして、主記憶42に復元する。
【0154】一方、キャッシュ復元装置415j は、前
記第3の実施例におけるキャッシュ復元装置39が行っ
たのと同様にして、キャッシュ情報格納領域413j の
検索テーブル418j のg番目のエントリで指定される
情報テーブル417j 内エントリに保存されているアド
レスAq と状態Dの組からキャッシュブロックBq をキ
ャッシュ412j 上に復元し、更に(主記憶復元装置4
5による復元後の)主記憶42からそのアドレスAq の
内容Cq を復元する。
【0155】同様にキャッシュ復元装置415k は、キ
ャッシュ情報格納領域413k からアドレスAp と状態
Cの組を得てキャッシュブロックBp をキャッシュ41
2k上に復元し、更に(主記憶復元装置45による復元
後の)主記憶42からそのアドレスAp の内容Cp を復
元する。
【0156】[第5の実施例]図12は、本発明の第5
の実施例を示すメモリ・スナップショット方法を適用し
た情報処理装置のブロック構成図である。
【0157】図12の情報処理装置は、プロセッシング
・ユニット51j ,51k を含むプロセッシング・ユニ
ット群と、当該プロセッシング・ユニット群により共有
される主記憶52と、主記憶52の内容を保存するのに
用いられる(図1の主記憶格納領域13と同様な構造
の)主記憶格納領域53と、主記憶52の内容を主記憶
格納領域53に保存する(図1の主記憶保存装置16と
同様の)主記憶保存装置54と、主記憶格納領域53に
保存された主記憶52の内容を復元する(図1の主記憶
復元装置17と同様の)主記憶復元装置55とを有して
いる。
【0158】図12の情報処理装置はまた、各プロセッ
シング・ユニット内のキャッシュに保持されているキャ
ッシュブロックBi 中のアドレス、状態(状態フラグ)
及びそのキャッシュブロックBi がいずれのキャッシュ
に存在するかを示すキャッシュ番号リストの組を保持す
るエントリEi の群からなるディレクトリ56と、主記
憶52への書き戻しの対象となるキャッシュを選択する
書き戻しキャッシュ選択装置57と有している。
【0159】図12の情報処理装置は更に、各プロセッ
シング・ユニット内のキャッシュ上の有効なキャッシュ
ブロック中のアドレス、状態(状態フラグ)及び対応す
るキャッシュ番号リストの組を保存するのに用いられる
キャッシュ情報格納領域58と、ディレクトリ56に保
持されている有効なエントリ中のアドレス、状態(状態
フラグ)及びキャッシュ番号リストの組をキャッシュ情
報格納領域58に保存するキャッシュ情報保存装置59
と、キャッシュ復元装置60と、各プロセッシング・ユ
ニット、主記憶52及びディレクトリ56が接続されて
いるバス61とを有している。
【0160】プロセッシング・ユニット51j ,51k
は、各種プログラム等を実行するプロセッサ511j ,
511k と、主記憶52の一部の写しを保持するための
キャッシュ512j ,512k と、キャッシュ内容書き
戻し装置513j ,513kを持つ。
【0161】図12の情報処理装置では、図示せぬ機構
によりディレクトリ型のキャッシュ・コヒーレンシ・プ
ロトコルで一貫性を取っているため、キャッシュ512
j ,512k を始めとする各キャッシュの状態は、上記
のディレクトリ56を用いて論理的に一箇所で管理され
ている。
【0162】キャッシュ512j ,512k は、アドレ
ス及びその内容(ブロックデータ)を組とするキャッシ
ュブロックからなる。
【0163】キャッシュ内容書き戻し装置513j ,5
13k は、キャッシュ選択装置57により起動されて、
キャッシュ512j ,512k に保持されている指定の
キャッシュブロックの内容(ブロックデータ)をバス4
6を介して主記憶42に書き戻す動作を司る。
【0164】なお、図12では示されていないが、他の
プロセッシング・ユニットの構成も、上記プロセッシン
グ・ユニット51j ,51k と同様である。
【0165】また、図12の情報処理装置には、以上の
構成の他に、図1の最終格納位置リスト14、及び最終
格納位置リスト格納領域15と同様の構成も含まれてい
るが、図では省略されている。
【0166】次に、図12の構成において、スナップシ
ョットを取るときの動作を説明する。なお、説明を簡単
にするために、キャッシュブロックに保持されるブロッ
クデータとページのサイズは同一であるものとする。
【0167】今、キャッシュ512j ,512k が図1
3(a),(b)に示す状態にあり、ディレクトリ56
が図13(c)に示す状態にあるものとする。即ちキャ
ッシュ512j には、図13(a)に示すように、アド
レスAr ,As およびその内容Cr ,Cs を保持するキ
ャッシュブロックBr ,Bs が存在し、キャッシュ51
2k には、図13(b)に示すように、キャッシュ51
2j 上に存在するのと同じキャッシュブロックBr が存
在するものとする。また、ディレクトリ56のエントリ
Er には、キャッシュブロックBr 中のアドレスAr 、
状態D及び当該キャッシュブロックBr が存在するキャ
ッシュ512j ,512k の(キャッシュ番号j,kを
持つ)キャッシュ番号リストが保持され、エントリEs
には、キャッシュブロックBs 中のアドレスAs 、状態
C及び当該キャッシュブロックBs が存在するキャッシ
ュ512j の(キャッシュ番号jを持つ)キャッシュ番
号リストが保持されている。
【0168】スナップショットを取る際には、キャッシ
ュ選択装置57が起動される。
【0169】するとキャッシュ選択装置57は、ダーテ
ィなキャッシュブロックの内容(ブロックデータ)を主
記憶52に書き戻す処理が行われるように、以下に述べ
るキャッシュ選択動作を行う。
【0170】まずキャッシュ選択装置57は、ディレク
トリ56を参照して、(状態フラグが)D状態に設定さ
れているキャッシュブロックBi を示すエントリEi を
探す。そしてキャッシュ選択装置57は、探したエント
リEi 中のキャッシュ番号リストから、対応するキャッ
シュブロックBi を保持しているキャッシュのうちの1
つを選択する。図13(c)の例では、ディレクトリ5
6のエントリEr のキャッシュ番号リストにより、対応
するキャッシュブロックBr がキャッシュ512j ,5
12k に保持されていることが示されているため、キャ
ッシュ選択装置57は、キャッシュ512j ,512k
のうちのいずれかを選択する。ここでは、キャッシュ5
12j を選択したものとして説明を続ける。なお、1つ
のキャッシュだけを示しているならば、そのキャッシュ
が選択されることは勿論である。
【0171】キャッシュ選択装置57はキャッシュ51
2j を選択した場合、対応するキャッシュ内容書き戻し
装置513j に対して、キャッシュブロックBr の内容
の主記憶52への書き戻しを要求する。
【0172】これを受けてキャッシュ内容書き戻し装置
513j は、キャッシュ512j に保持されている指定
キャッシュブロックBr の内容(ブロックデータ)Cr
を、当該ブロックBr 中のアドレスAr に基づき、主記
憶52に書き戻す。
【0173】各プロセッシング・ユニットのキャッシュ
から主記憶52に書き戻すものがなくなると、キャッシ
ュ情報保存装置59が起動される。
【0174】キャッシュ情報保存装置59は、ディレク
トリ56内の有効なエントリ(DまたはC状態にあるエ
ントリ)のアドレス、状態及びキャッシュ番号リストの
組をキャッシュ情報格納領域59のg番目に保存する。
即ちキャッシュ情報保存装置59は、図13(c)に示
すディレクトリ56内の有効なエントリEr 中のアドレ
スAr 、状態D及びキャッシュ番号リスト(j,k)の
組を、図13(d)に示すように、キャッシュ情報格納
領域58の検索テーブル582内のg番目のエントリに
よって位置指定された、情報テーブル581内エントリ
に保存する。続いてキャッシュ情報保存装置59は、図
13(c)に示すディレクトリ56内の有効なエントリ
Es 中のアドレスAs 、状態C及びキャッシュ番号リス
ト(j)の組を、図13(d)に示すように、キャッシ
ュ情報格納領域58内の情報テーブル581の次のエン
トリに保存する。
【0175】さて、キャッシュ情報保存装置59が起動
される際には、主記憶保存装置54も起動される。
【0176】主記憶保存装置54は、前記第1の実施例
における主記憶保存装置16が行ったのと同様にして、
主記憶52上の各メモリページの中で、前回のスナップ
ショット時以降で内容が変更されたページ(即ちダーテ
ィなページ)を探す。このダーティなページのデータ
は、図13(a)〜(c)の例では、C状態にあるキャ
ッシュブロックBs に対応するアドレスAs のデータC
s と、D状態にあるキャッシュブロックBr に対応する
アドレスAr のデータ(即ちキャッシュ内容書き戻し装
置513j により主記憶42に書き戻されたばかりのデ
ータCr )である。
【0177】そして主記憶保存装置54は、上記ダーテ
ィなページのデータCr ,Cs を、主記憶格納領域53
のg番目に保存する。
【0178】次に、スナップショットを復元するときの
動作について説明する。
【0179】スナップショットの復元時には、主記憶復
元装置55及びキャッシュ復元装置60が起動される。
【0180】まず主記憶復元装置55は、主記憶格納領
域53に格納されているg番目の主記憶内容を、前記第
1の実施例における主記憶復元装置17が行ったのと同
様にして、主記憶52に復元する。
【0181】一方、キャッシュ復元装置60は、前記第
3の実施例におけるキャッシュ復元装置39が行ったの
と同様にして、図13(d)に示すキャッシュ情報格納
領域58の検索テーブル582のg番目のエントリで指
定される情報テーブル581内エントリに保存されてい
るアドレスAr 、状態D及びキャッシュ番号リスト
(j,k)の組からエントリEr をディレクトリ56に
復元する。またキャッシュ復元装置60は、図13
(d)に示すキャッシュ情報格納領域58内の情報テー
ブル581の次のエントリに保存されているアドレスA
s 、状態C及びキャッシュ番号リスト(j)の組からエ
ントリES をディレクトリ56に復元する。
【0182】更にキャッシュ復元装置60は、ディレク
トリ56の復元した内容をもとに、キャッシュ512j
上にアドレスAr を持つキャッシュブロックBr とアド
レスAs を持つキャッシュブロックBs を作成し、各キ
ャッシュブロックBr ,Bsの内容Cr ,Cs を(主記
憶復元装置55による復元後の)主記憶52から復元す
る。
【0183】キャッシュ復元装置60は同様にして、キ
ャッシュ512k 上にアドレスArを持つキャッシュブ
ロックBr を作成し、当該ブロックBr の内容Cr を
(主記憶復元装置55による復元後の)主記憶52から
復元する。
【0184】
【発明の効果】以上詳述したように本発明によれば、各
メモリページの最終格納位置を最終格納位置リストに保
持し、それを、スナップショットの度に保存し、メモリ
内容復元時に、このリストを使用する構成としたことに
より、保存された膨大なメモリ内容から必要なメモリペ
ージを高速に探し出すことができ、プログラムの再現も
高速化できる。
【0185】また、本発明によれば、キャッシュを有す
る記憶装置においては、キャッシュの状態を変化させな
いで主記憶に書き戻しを行うと共に、キャッシュブロッ
クのアドレスと状態を保存する構成としたことにより、
プログラムの振る舞いに変化を与えないようにすること
ができる。
【0186】以上により本発明は、プログラムの再開だ
けでなく、プログラムの再現実行にも適用でき、実用上
多大なる効果が期待できる。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示すページ最終格納位
置リストを有するメモリ・スナップショット方法を適用
した情報処理装置のブロック構成図。
【図2】図1の状態でスナップショットを取った後の主
記憶12、最終格納位置リスト14、主記憶格納領域1
3及び最終格納位置リスト格納領域15の状態を示す
図。
【図3】本発明の第2の実施例を示すライトスルー型キ
ャッシュのメモリ・スナップショット方法を適用した情
報処理装置のブロック構成図。
【図4】図3の状態でスナップショットを取った後のア
ドレス格納領域25の状態を示す図。
【図5】本発明の第3の実施例を示すコピーバック型キ
ャッシュのメモリ・スナップショット方法を適用した情
報処理装置のブロック構成図。
【図6】図5の状態でスナップショットを取った後の主
記憶32、キャッシュ33及びキャッシュ情報格納領域
35の状態を示す図。
【図7】本発明の第4の実施例を示すスヌープ型のキャ
ッシュ・コヒーレンシ・プロトコルを有するキャッシュ
のメモリ・スナップショット方法を適用した情報処理装
置のブロック構成図。
【図8】図7の構成におけるスナップショット前のキャ
ッシュ412j ,412k の状態の一例を、両キャッシ
ュに同一のキャッシュブロックが存在しない場合につい
て示す図。
【図9】図8の状態でスナップショットを取った後のキ
ャッシュ412j ,412k 及びキャッシュ情報格納領
域413j ,413k の状態を示す図。
【図10】図7の構成におけるスナップショット前のキ
ャッシュ412j ,412k の状態の一例を、両キャッ
シュに同一のキャッシュブロックが存在する場合につい
て示す図。
【図11】図10の状態でスナップショットを取った後
のキャッシュ412j ,412k及びキャッシュ情報格
納領域413j ,413k の状態を示す図。
【図12】本発明の第5の実施例を示すディレクトリ型
のキャッシュ・コヒーレンシ・プロトコルを有するキャ
ッシュのメモリ・スナップショット方法を適用した情報
処理装置のブロック構成図。
【図13】図12の構成におけるスナップショット前の
キャッシュ512j ,512k 及びディレクトリ56と
スナップショット後のキャッシュ情報格納領域58の状
態を示す図。
【符号の説明】
12…主記憶、13,…主記憶格納領域、14…最終格
納位置リスト、15…最終格納位置リスト格納領域、1
6…主記憶保存装置、17…主記憶復元装置、22…主
記憶、23…キャッシュ(ライトスルー型キャッシ
ュ)、24…主記憶格納領域、25…アドレス格納領
域、26…主記憶保存装置、27…主記憶復元装置、2
8…キャッシュアドレス保存装置、29…キャッシュ復
元装置、32…主記憶、33…キャッシュ(コピーバッ
ク型キャッシュ)、34…主記憶格納領域、35…キャ
ッシュ情報格納領域、36…主記憶保存装置、37…主
記憶復元装置、38…キャッシュ情報保存装置、39…
キャッシュ復元装置、40…キャッシュ内容書き戻し装
置、41j ,41k …プロセッシング・ユニット、42
…主記憶、43…主記憶格納領域、44…主記憶保存装
置、45…主記憶復元装置、46…バス、412j,4
12k …キャッシュ(スヌープ型のキャッシュ・コヒー
レンシ・プロトコルを有するキャッシュ)、413j ,
413k …キャッシュ情報格納領域、414j ,414
k …キャッシュ情報保存装置、415j ,415k …キ
ャッシュ復元装置、416j ,416k …キャッシュ内
容書き戻し装置、51j ,51k …プロセッシング・ユ
ニット、52…主記憶、53…主記憶格納領域、54…
主記憶保存装置、55…主記憶復元装置、56…ディレ
クトリ、57…書き戻しキャッシュ選択装置、58…キ
ャッシュ情報格納領域、59…キャッシュ情報保存装置
(ディレクトリ保存手段)、60…キャッシュ復元装置
(ディレクトリ復元手段)、61…バス、512j ,5
12k …キャッシュ(ディレクトリ型のキャッシュ・コ
ヒーレンシ・プロトコルを有するキャッシュ)、513
j ,513k …キャッシュ内容書き戻し装置。

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶を備えた情報処理装置に適用される
    メモリ・スナップショット方法であって、 スナップショット採取時には、 ページ単位で管理される主記憶の各ページのうち前回の
    スナップショット採取時以降で内容の変化のあったペー
    ジの内容を保存すると共に、そのページ内容の保存位置
    をそのページに固有の最終格納位置リスト内領域に設定
    し、 前記主記憶内の前記変化のあったすべてのページの内容
    が保存された後に、前記最終格納位置リストを保存し、 スナップショット復元時には、 前記保存されている最終格納位置リストに従って、前記
    保存されているページ内容を前記主記憶の元のページ位
    置に復元することを特徴とするメモリ・スナップショッ
    ト方法。
  2. 【請求項2】主記憶と、この主記憶の一部の写しを保持
    するためのライト・スルー型のキャッシュとを備えた情
    報処理装置に適用されるメモリ・スナップショット方法
    であって、 スナップショット採取時には、 前記キャッシュ上のキャッシュブロックのうち有効なキ
    ャッシュブロック中のアドレス情報を保存すると共に、
    前記主記憶の内容を保存し、 スナップショット復元時には、 前記保存されている主記憶の内容を復元した後、 前記保存されているキャッシュブロックのアドレス情報
    を使って、前記キャッシュの内容を前記復元された主記
    憶から復元することを特徴とするメモリ・スナップショ
    ット方法。
  3. 【請求項3】主記憶と、この主記憶の一部の写しを保持
    するためのコピー・バック型のキャッシュとを備えた情
    報処理装置に適用されるメモリ・スナップショット方法
    であって、 スナップショット採取時には、 前記キャッシュ上のキャッシュブロックのうちダーティ
    状態を示す状態フラグを持つキャッシュブロックの内容
    を状態を変化させずに前記主記憶に書き戻すと共に、 前記キャッシュ上のキャッシュブロックのうちダーティ
    またはクリーン状態を示す状態フラグを持つ有効なキャ
    ッシュブロック中のアドレス情報及び当該状態フラグを
    保存し、 前記キャッシュから前記主記憶への書き戻し後に当該主
    記憶の内容を保存し、 スナップショット復元時には、 前記保存されている主記憶の内容を復元し、 前記保存されているキャッシュブロックのアドレス情報
    を使って、前記キャッシュの内容を前記復元された主記
    憶から復元し、前記保存されているキャッシュブロック
    の状態フラグを使って、前記キャッシュの状態を復元す
    ることを特徴とするメモリ・スナップショット方法。
  4. 【請求項4】主記憶と、この主記憶の一部の写しを保持
    するための、スヌープ型のキャッシュ・コヒーレンシ・
    プロトコルを有するキャッシュをそれぞれ内蔵する複数
    のプロセッシング・ユニットとを備えた情報処理装置に
    適用されるメモリ・スナップショット方法であって、 前記キャッシュ上の各キャッシュブロックに、そのブロ
    ックが前記主記憶に書き戻されたか否かを示す書き戻し
    済みフラグを設け、 スナップショット採取時には、 前記各プロセッシング・ユニットにおいて、自キャッシ
    ュ上のすべてのキャッシュブロックの前記書き戻しフラ
    グを解除した後、自キャッシュ上のキャッシュブロック
    のうち前記書き戻し済みフラグが設定されておらず、且
    つダーティ状態を示す状態フラグを持つ有効なキャッシ
    ュブロックの内容を状態を変化させずに前記主記憶に書
    き戻すと共に、自キャッシュ上に、他キャッシュから前
    記主記憶に書き戻されたキャッシュブロックに相当する
    キャッシュブロックが保持されている場合、当該キャッ
    シュブロックに書き戻し済みフラグを設定し、 前記各プロセッシング・ユニットにおいて、自キャッシ
    ュ上のキャッシュブロックのうちダーティまたはクリー
    ン状態を示す状態フラグを持つ有効なキャッシュブロッ
    ク中のアドレス情報及び当該状態フラグを保存し、 前記各プロセッシング・ユニットの前記各キャッシュか
    ら前記主記憶への書き戻し後に当該主記憶の内容を保存
    し、 スナップショット復元時には、 前記保存されている主記憶の内容を復元し、 前記各プロセッシング・ユニットにおいて、 前記保存されているキャッシュブロックのアドレス情報
    を使って、自キャッシュの内容を前記復元された主記憶
    から復元し、前記保存されているキャッシュブロックの
    状態フラグ使って、自キャッシュの状態を復元すること
    を特徴とするメモリ・スナップショット方法。
  5. 【請求項5】主記憶と、この主記憶の一部の写しを保持
    するための、ディレクトリ型のキャッシュ・コヒーレン
    シ・プロトコルを有するキャッシュをそれぞれ内蔵する
    複数のプロセッシング・ユニットと、前記各キャッシュ
    上のキャッシュブロックについて、アドレス、状態フラ
    グ及び当該キャッシュブロックを持つキャッシュのリス
    トを含むディレクトリ情報を保持するディレクトリとを
    備えた情報処理装置に適用されるメモリ・スナップショ
    ット方法であって、 スナップショット採取時には、 前記ディレクトリを参照して、ダーティ状態を示す状態
    フラグを持つキャッシュブロックの書き戻しを行うキャ
    ッシュを選択し、そのキャッシュから当該キャッシュブ
    ロックの内容を状態を変化させずに前記主記憶に書き戻
    すと共に、 前記ディレクトリで管理されているダーティまたはクリ
    ーン状態を示す状態フラグを持つ有効なディレクトリ情
    報を保存し、 前記キャッシュから前記主記憶への書き戻し後に当該主
    記憶の内容を保存し、 スナップショット復元時には、 前記保存されている主記憶の内容を復元すると共に、前
    記保存されているディレクトリ情報から前記ディレクト
    リを復元し、 この復元した前記ディレクトリの有効なディレクトリ情
    報中のアドレス情報を使って、当該ディレクトリ情報中
    のキャッシュリストの示す各キャッシュの内容を前記復
    元された主記憶から復元することを特徴とするメモリ・
    スナップショット方法。
  6. 【請求項6】主記憶を備えた情報処理装置において、 ページ単位で管理される主記憶の各ページ毎の内容の最
    終保存位置を保持する最終格納位置リストと、 前記主記憶の各ページのうち前回のスナップショット採
    取時以降で内容の変化のあったページの内容を保存する
    と共に、前記最終格納位置リストを保存する主記憶保存
    手段と、 前記主記憶保存手段によって保存された前記最終格納位
    置リストに従って、当該主記憶保存手段によって保存さ
    れた前記ページ内容を前記主記憶の元のページ位置に復
    元する主記憶復元手段とを具備することを特徴とする情
    報処理装置。
  7. 【請求項7】主記憶と、この主記憶の一部の写しを保持
    するためのライト・スルー型のキャッシュとを備えた情
    報処理装置において、 前記キャッシュ上のキャッシュブロックのうち有効なキ
    ャッシュブロック中のアドレス情報を保存するキャッシ
    ュアドレス保存手段と、 前記主記憶の内容を保存する主記憶保存手段と、 前記主記憶保存手段によって保存された前記主記憶の内
    容を復元する主記憶復元手段と、 前記キャッシュアドレス保存手段によって保存された前
    記キャッシュブロックのアドレス情報を使い、前記キャ
    ッシュの内容を、前記主記憶復元手段によって復元され
    た前記主記憶から復元するキャッシュ復元手段とを具備
    することを特徴とする情報処理装置。
  8. 【請求項8】主記憶と、この主記憶の一部の写しを保持
    するためのコピー・バック型のキャッシュとを備えた情
    報処理装置において、 前記キャッシュ上のキャッシュブロックのうちダーティ
    状態を示す状態フラグを持つキャッシュブロックの内容
    を状態を変化させずに前記主記憶に書き戻すキャッシュ
    内容書き戻し手段と、 前記キャッシュ上のキャッシュブロックのうちダーティ
    またはクリーン状態を示す状態フラグを持つ有効なキャ
    ッシュブロック中のアドレス情報及び当該状態フラグを
    保存するキャッシュ情報保存手段と、 前記主記憶の内容を保存する主記憶保存手段と、 前記主記憶保存手段によって保存された前記主記憶の内
    容を復元する主記憶復元手段と、 前記キャッシュ情報保存手段によって保存された前記キ
    ャッシュブロックのアドレス情報を使って、前記キャッ
    シュの内容を、前記主記憶復元手段によって復元された
    前記主記憶から復元し、前記保存された前記キャッシュ
    ブロックの状態フラグを使って、前記キャッシュの状態
    を復元するキャッシュ復元手段とを具備することを特徴
    とする情報処理装置。
  9. 【請求項9】主記憶と、この主記憶の一部の写しを保持
    するための、スヌープ型のキャッシュ・コヒーレンシ・
    プロトコルを有するキャッシュをそれぞれ内蔵する複数
    のプロセッシング・ユニットとを備えた情報処理装置に
    おいて、 前記キャッシュ上の各キャッシュブロックに付される、
    当該キャッシュブロックが前記主記憶に書き戻されたか
    否かを示す書き戻し済みフラグと、 前記各プロセッシング・ユニットに設けられ、自キャッ
    シュ上のすべてのキャッシュブロックの前記書き戻しフ
    ラグを解除した後、自キャッシュ上のキャッシュブロッ
    クのうち前記書き戻し済みフラグが設定されておらず、
    且つダーティ状態を示す状態フラグを持つ有効なキャッ
    シュブロックの内容を状態を変化させずに前記主記憶に
    書き戻すと共に、自キャッシュ上に、他キャッシュから
    前記主記憶に書き戻されたキャッシュブロックに相当す
    るキャッシュブロックが保持されている場合、当該キャ
    ッシュブロックに書き戻し済みフラグを設定するキャッ
    シュ内容書き戻し手段と、 前記各プロセッシング・ユニットに設けられ、自キャッ
    シュ上のキャッシュブロックのうちダーティまたはクリ
    ーン状態を示す状態フラグを持つ有効なキャッシュブロ
    ック中のアドレス情報及び当該状態フラグを保存する、
    キャッシュ情報保存手段と、 前記主記憶の内容を保存する主記憶保存手段と、 前記主記憶保存手段によって保存された前記主記憶の内
    容を復元する主記憶復元手段と、 前記各プロセッシング・ユニットに設けられ、前記キャ
    ッシュ情報保存手段によって保存された前記キャッシュ
    ブロックのアドレス情報を使って、自キャッシュの内容
    を、前記主記憶復元手段によって復元された前記主記憶
    から復元し、前記保存された前記キャッシュブロックの
    状態フラグを使って、自キャッシュの状態を復元するキ
    ャッシュ復元手段とを具備することを特徴とする情報処
    理装置。
  10. 【請求項10】主記憶と、この主記憶の一部の写しを保
    持するための、ディレクトリ型のキャッシュ・コヒーレ
    ンシ・プロトコルを有するキャッシュをそれぞれ内蔵す
    る複数のプロセッシング・ユニットと、前記各キャッシ
    ュ上のキャッシュブロックについて、アドレス、状態フ
    ラグ及び当該キャッシュブロックを持つキャッシュのリ
    ストを含むディレクトリ情報を保持するディレクトリと
    を備えた情報処理装置において、 前記ディレクトリを参照して、ダーティ状態を示す状態
    フラグを持つキャッシュブロックの書き戻しを行うキャ
    ッシュを選択する書き戻しキャッシュ選択手段と、 前記各プロセッシング・ユニットに設けられ、前記書き
    戻しキャッシュ選択手段により選択されたキャッシュ上
    のキャッシュブロックの内容を状態を変化させずに前記
    主記憶に書き戻すキャッシュ内容書き戻し手段と、 前記ディレクトリ上でダーティまたはクリーン状態を示
    す状態フラグを持つ有効なディレクトリ情報を保存する
    ディレクトリ保存手段と、 前記主記憶の内容を保存する主記憶保存手段と、 前記主記憶保存手段によって保存された前記主記憶の内
    容を復元する主記憶復元手段と、 前記ディレクトリ情報手段によって保存されたディレク
    トリ情報からディレクトリを復元するディレクトリ復元
    手段と、 このディレクトリ復元手段によって復元された前記ディ
    レクトリの有効なディレクトリ情報中のアドレス情報を
    使って、当該ディレクトリ情報中のキャッシュリストの
    示す各キャッシュの内容を前記復元された主記憶から復
    元するキャッシュ復元手段とを具備することを特徴とす
    る情報処理装置。
JP5349616A 1993-12-29 1993-12-29 メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置 Expired - Lifetime JP2735479B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5349616A JP2735479B2 (ja) 1993-12-29 1993-12-29 メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置
US08/365,545 US5644701A (en) 1993-12-29 1994-12-28 Data processing system and method for executing snapshot dumps

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5349616A JP2735479B2 (ja) 1993-12-29 1993-12-29 メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置

Publications (2)

Publication Number Publication Date
JPH07200367A JPH07200367A (ja) 1995-08-04
JP2735479B2 true JP2735479B2 (ja) 1998-04-02

Family

ID=18404941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5349616A Expired - Lifetime JP2735479B2 (ja) 1993-12-29 1993-12-29 メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置

Country Status (2)

Country Link
US (1) US5644701A (ja)
JP (1) JP2735479B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5953742A (en) * 1996-07-01 1999-09-14 Sun Microsystems, Inc. Memory management in fault tolerant computer systems utilizing a first and second recording mechanism and a reintegration mechanism
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6591377B1 (en) * 1999-11-24 2003-07-08 Unisys Corporation Method for comparing system states at different points in time
GB2378278B (en) * 2001-07-31 2003-09-10 Sun Microsystems Inc Live memory snapshot
CA2383832A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee System and method for intelligent trap analysis
US7100080B2 (en) * 2002-05-08 2006-08-29 Xiotech Corporation Write cache recovery after loss of power
US7206961B1 (en) * 2002-09-30 2007-04-17 Emc Corporation Preserving snapshots during disk-based restore
US7165145B2 (en) * 2003-07-02 2007-01-16 Falconstor Software, Inc. System and method to protect data stored in a storage system
ATE471846T1 (de) * 2003-07-03 2010-07-15 Netshape Energy Man Llc Stossfängersystem mit thermogeformtem energieaufnehmer
JP2007502470A (ja) 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
US8601035B2 (en) 2007-06-22 2013-12-03 Compellent Technologies Data storage space recovery system and method
EP2021904A2 (en) 2006-05-24 2009-02-11 Compellent Technologies System and method for raid management, reallocation, and restriping
EP2054994A1 (en) * 2006-08-03 2009-05-06 Ansaldo Energia S.P.A. Method and device for repairing the liquid-cooled electrical windings of the stator of an electric generator
US7694091B2 (en) * 2006-10-23 2010-04-06 Hewlett-Packard Development Company, L.P. Non-volatile storage for backing up volatile storage
EP2183688B1 (en) * 2007-08-29 2017-04-19 Telefonaktiebolaget LM Ericsson (publ) A method and apparatus in a database system
US8468292B2 (en) * 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
JP5488346B2 (ja) * 2010-08-30 2014-05-14 富士通株式会社 ストレージシステム、制御装置および制御方法
JP5534209B2 (ja) * 2010-09-06 2014-06-25 日本電気株式会社 データベースの共有メモリの状態を別環境に再現するシステム及び方法
US10922225B2 (en) * 2011-02-01 2021-02-16 Drobo, Inc. Fast cache reheat
US8621274B1 (en) * 2011-05-18 2013-12-31 Netapp Inc. Virtual machine fault tolerance
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
US9378096B1 (en) * 2012-06-30 2016-06-28 Emc Corporation System and method for cache management
US9135119B1 (en) * 2012-09-28 2015-09-15 Emc Corporation System and method for data management
KR101864831B1 (ko) * 2013-06-28 2018-06-05 세종대학교산학협력단 가상 캐시를 포함하는 메모리 및 그 관리 방법
US10229127B1 (en) * 2014-12-18 2019-03-12 EMC IP Holding Company LLC Method and system for locality based cache flushing for file system namespace in a deduplicating storage system
US10331561B1 (en) * 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
WO2019193620A1 (ja) * 2018-04-02 2019-10-10 三菱電機株式会社 履歴記憶装置、履歴記憶方法及び履歴記憶プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
US5454099A (en) * 1989-07-25 1995-09-26 International Business Machines Corporation CPU implemented method for backing up modified data sets in non-volatile store for recovery in the event of CPU failure
EP0465019B1 (en) * 1990-06-29 1997-05-14 Oracle Corporation Method and apparatus for managing state identifiers for efficient recovery
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5369757A (en) * 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US5280611A (en) * 1991-11-08 1994-01-18 International Business Machines Corporation Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type
US5404504A (en) * 1993-05-04 1995-04-04 International Business Machines Corporation Trace tool for serial, optical interface
US5455946A (en) * 1993-05-21 1995-10-03 International Business Machines Corporation Method and means for archiving modifiable pages in a log based transaction management system

Also Published As

Publication number Publication date
US5644701A (en) 1997-07-01
JPH07200367A (ja) 1995-08-04

Similar Documents

Publication Publication Date Title
JP2735479B2 (ja) メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置
KR100233207B1 (ko) 캐시 플러시 장치 및 이 장치를 구비한 계산기 시스템
US7472230B2 (en) Preemptive write back controller
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
US5946711A (en) System for locking data in a shared cache
JP2575541B2 (ja) 分散キャッシュの階層無効化方法
CN112005222A (zh) 鲁棒的事务性存储器
JP3086779B2 (ja) メモリ状態復元装置
JP2007193805A (ja) デュアル・システム・ディレクトリ構造体を有するマルチプロセッサ・システムおよび方法
US6032228A (en) Flexible cache-coherency mechanism
JPH0683706A (ja) シスプレックス共用データ・コヒーレンシを維持する方法
US20090164715A1 (en) Protecting Against Stale Page Overlays
JP2001517830A (ja) コンピュータ内のアプリケーションプログラム間でフォーカスが変更されたときに物理メモリの状態を復元する方法およびシステム
CN110018790B (zh) 一种保证持久性内存中数据崩溃一致性的方法及系统
JPH02141845A (ja) マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法
JP2005520222A (ja) マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用
US20190347124A1 (en) Technique for managing a cache structure in a system employing transactional memory
US5471602A (en) System and method of scoreboarding individual cache line segments
JP3103581B2 (ja) マルチプロセッサシステム
JPH05210584A (ja) 改善されたぺージングを有するディジタルデータプロセッサ
US6598120B1 (en) Assignment of building block collector agent to receive acknowledgments from other building block agents
JP3320562B2 (ja) キャッシュメモリを有する電子計算機
JP3013631B2 (ja) キャッシュメモリ同期方法
JPH04191946A (ja) スヌープキャッシュメモリ制御方式
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法