JPH10240630A - コンピュータシステム及び同システムに適用するメモリ制御方法 - Google Patents

コンピュータシステム及び同システムに適用するメモリ制御方法

Info

Publication number
JPH10240630A
JPH10240630A JP9046802A JP4680297A JPH10240630A JP H10240630 A JPH10240630 A JP H10240630A JP 9046802 A JP9046802 A JP 9046802A JP 4680297 A JP4680297 A JP 4680297A JP H10240630 A JPH10240630 A JP H10240630A
Authority
JP
Japan
Prior art keywords
memory
data
main memory
checkpoint
stored
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.)
Pending
Application number
JP9046802A
Other languages
English (en)
Inventor
Keiji Aoki
圭司 青木
Hiroshi Komuro
浩 小室
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 JP9046802A priority Critical patent/JPH10240630A/ja
Publication of JPH10240630A publication Critical patent/JPH10240630A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】チェックポイント方式のメモリ状態回復機能を
有するコンピュータシステムにおいて、チェックポイン
ト処理時のメモリアクセスを集中を緩和して、チェック
ポイント処理時でのシステムの処理効率の低下を防止し
て高性能のシステムを実現することにある。 【解決手段】コピーバック方式のキャッシュメモリ機能
及びチェックポイント方式によるシステム回復機能を備
えたコンピュータシステムであって、メインメモリ3に
格納された情報を保存するためのBIバッファメモリ4
を有し、キャッシュメモリに保持されている更新データ
をメインメモリ3に書き戻すチェックポイント処理にお
いて、キャッシュメモリから更新データをメインメモリ
に書き戻す時点よりも以前に、メインメモリ3からBI
バッファメモリ4にバックアップ用の情報を書き込む処
理を実行するように制御するメモリ制御部11を備えた
システムである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、特にコピーバック
方式のキャッシュメモリ機能及びチェックポイント方式
によるシステム回復機能を備えたシステムに関し、例え
ばフォールト・トレラント・システムに適用するコンピ
ュータシステムに関する。
【0002】
【従来の技術】従来、通常のコンピュータシステムで
は、プログラムを実行した場合に、一旦処理が進行する
と、ある原因により中断したときにその中断以前の状態
に戻って処理を再開するシステム回復機能は必ずしも一
般的な機能ではない。しかしながら、以下のような処理
またはシステムにおいては、システム回復機能は必要不
可欠な機能として重要である。具体的には、ソフトウェ
ア・デバッギング処理、フォールト・トレラント・シス
テム、およびバック・トラッキング処理などには有効な
機能となる。
【0003】ソフトウェア・デバッギング処理にシステ
ム回復機能を適用すれば、プログラムの実行中に何らか
のエラーが発生した場合に、エラー発生以前の状態に遡
ることにより、プログラムエラーの原因を解析すること
ができる。フォールト・トレラント・システムに適用し
た場合には、何らかの故障により処理の続行が不可能に
なった場合、以前の状態に戻ってそこから処理を再開す
ることにより、システムを停止させることなく動作を継
続することができる。フォールト・トレラント技術につ
いては、文献「IEEE Computer,Vol.
21,No.2,1988の“Philip A Be
rnstein,Sequoia:AFault−To
lerant Tightly Coupled Mu
ltiprocessor for Transact
ion Processing”」などに開示されてい
る。また、バック・トラッキング処理(後戻り処理)は
論理型のプログラミング言語によるソフトウェアの基本
的操作である。この処理にシステム回復機能を適用し
て、メモリの内容を以前の状態に戻る機能に応用すれ
ば、バック・トラッキング処理を実現することができ
る。
【0004】このようなシステム回復機能には、実際に
はメモリ状態回復機能が必要となるが、このメモリ状態
回復機能を実現する方法として、従来ではバックワード
手法が知られている。
【0005】このバックワード手法を使用したシステム
として、図18に示すように、プロセッサ1と、メモリ
制御部2と、メインメモリ3と、ビフォア・イメージ・
バッファメモリ(以下BIバッファメモリと称する)4
とからなる構成のコンピュータシステムを想定する。こ
こで、BIバッファメモリ4は、メインメモリ3のある
時点(例えばチェックポイント時点)から以前の記憶状
態を保持するためのメモリである。BIバッファメモリ
4の単位エントリ(BIエレメント)は、メインメモリ
3のアドレスとデータからなる。
【0006】このシステムにおいて、プロセッサ1がメ
インメモリ3のあるロケーションA(アドレス値Aとす
る)に、新規のデータDnをライトする場合を想定す
る。メモリ制御部2は、プロセッサ1からライト処理の
要求を受けると、メインメモリ3を更新する前に、同じ
ロケーションAに格納されていた以前のデータDを読出
し、ロケーションのアドレス値と共に、BIバッファメ
モリ4に格納する。この処理後に、メモリ制御部2は、
新規のデータDnをメインメモリ3のロケーションAに
書き込む。
【0007】メモリ制御部2は、プロセッサ1からライ
ト処理の要求を受ける毎に、前記の動作を繰り返し、メ
インメモリ3のアドレスとデータをBIバッファメモリ
4の別なエントリに順次格納していく。メインメモリ3
を以前の状態に戻す場合には、BIバッファメモリ4に
格納されたBIエレメントを、最新のものから順次読出
す。そして、そのBIエレメントのアドレスで示される
メインメモリ3のロケーションに、以前のデータDを書
き込む。これにより、メインメモリ3を以前の状態に戻
すことができる。
【0008】尚、一般的には、プログラムをある状態か
ら再開するためには、メインメモリ3の記憶内容(通常
ではプログラムとデータ)だけでなく、プロセッサ1の
内部状態(内部レジスタの内容)が必要である。このプ
ログラム再開方法として、所定の時間間隔でプログラム
の実行中のプロセッサの内部状態をメインメモリに保存
する、いわゆるチェックポイント方式がある。このチェ
ックポイント方式を前述のシステムに適用した場合に、
チェックポイント時点では、BIバッファメモリ4をク
リアし、この時点でメインメモリ3に格納されていた以
前のデータ(プロセッサ1の内部状態を含む)を、BI
バッファメモリ4に格納する。従って、BIバッファメ
モリ4には、最新のチェックポイント時点から現在まで
に更新されたメインメモリ3のロケーションの元の値が
保存されることになる。これにより、システムは、任意
の時点から最新のチェックポイント時点の以前からプロ
グラムを再開させることができる。このような技術につ
いては、文献「Rok Sosic.Computer
Architecture News,Vol.2
2,No.5,1994,“History Cach
e:HardwareSupport for Rev
erse Execution”」などに開示されてい
る。
【0009】図19は、前述のシステムを更に高信頼化
を追及したフォールト・トレラント・システムに適用す
るためにマルチプロセッサ化したシステムに適用した構
成を示す。このシステムは、N個のプロセッサ1-1〜1
-nがバス5を介して接続された形態のシステムである。
このようなシステムにおいても、メモリ制御部2、メイ
ンメモリ3、及びBIバッファメモリ4の動作は、前述
のシングルプロセッサのシステムと同様の制御により実
現できる。
【0010】即ち、メモリ制御部2は、プロセッサ1-1
〜1-nからライト処理の要求を受ける毎に、メインメモ
リ3を更新する前にメインメモリ3からデータを読出
し、アドレスと共にBIバッファメモリ4に順次格納し
ていく。また、メインメモリ3を以前の状態に戻したい
場合には、同様にBIバッファメモリ4に格納されたB
Iエレメントを最新のものから順次読出し、そのアドレ
スで示されるメインメモリ3のロケーションにデータを
書き込む。さらに、チェックポイント方式を適用して、
所定の時間間隔でチェックポイントを設定することによ
り、チェックポイント時点でそれ以前のプロセッサ1-1
〜1-nの内部状態をBIバッファメモリ4に保存するこ
とにより、任意の時点からチェックポイントの時点に戻
ることができる。
【0011】ところで、近年のコンピュータシステムで
は、プロセッサのデータ処理の高速化の手法として、キ
ャッシュメモリを使用するキャッシュ機能が一般的にな
っている。キャッシュ機能は、ライトスルー方式とコピ
ーバック方式(ライトバック方式)に大別される。ライ
トスルー方式は、プロセッサがライト命令を発行する
と、キャッシュメモリに保持されたデータと共に、それ
に対応するメインメモリのデータも同時に更新する。従
って、メモリ状態回復機能およびチェックポイント処理
のいずれも、前述と同様の方法と技術により実現するこ
とができる。
【0012】一方、コピーバック方式は、プロセッサか
らのライト命令により、更新するのはキャッシュメモリ
の内容だけであり、メインメモリに対して直ぐには更新
しない。更新時期は、キャッシュメモリのエントリのリ
プレース(換言すれば、キャッシュラインの置換)の時
点で、更新された内容が書き出されることにより、メイ
ンメモリの内容が更新されることになる。従って、コピ
ーバック方式は、メインメモリのアクセス頻度が相対的
に小さいため、バスの使用効率を向上してシステムの性
能を高めることが可能である。
【0013】ここで、キャッシュ機能を備えたシステム
では、プロセッサ、キャッシュメモリ、メインメモリの
それぞれのデータ転送は、キャッシュライン単位(ブロ
ックに相当するラインデータ単位)で実行される。な
お、キャッシュメモリは、データ本体を保持するデータ
領域及びデータのアドレスやアクセス履歴を保持するタ
グ領域からなり、いずれの領域もブロック単位(ライン
単位)に分割管理されている。
【0014】図20は、キャッシュ機能をマルチプロセ
ッサシステムに適用した構成である。このシステムにお
いて、メモリ状態回復機能を実現するための動作では、
メモリ制御部2は、キャッシュメモリ6-1〜6-nの各コ
ントローラからライト・ライン処理の要求を受けると、
メインメモリ3のロケーションAラインからラインデー
タDLを読出し、これをアドレス値ALと共にBIバッ
ファメモリ4に格納する。即ち、ラインデータDLとア
ドレス値ALとが、BIエレメントとしてBIバッファ
メモリ4に格納される。
【0015】メインメモリ3を以前の状態に戻すメモリ
状態回復の要求時には、図21のフローチャートに示す
ように、メモリ制御部2は、BIバッファメモリ4に格
納されたBIエレメントを最新のものから順次読出し、
そのラインアドレスALで示されるメインメモリ3のロ
ケーションに以前のラインデータDLを書き込む。これ
により、メインメモリ3を以前の状態に戻すことができ
る(ステップS70〜S72)。これにより、例えばシ
ステムの故障時にチェックポイント時にメインメモリ3
に格納したプロセッサの内部状態を戻すことができる。
従って、チェックポイント時点から、プログラムを再開
しシステムを回復することが可能となる(ステップS7
3,S74)。
【0016】チェックポイント方式では、チェックポイ
ント時に、プロセッサ1-1〜1-nの内部状態だけでな
く、キャッシュメモリ6-1〜6-nには保持されている
が、メインメモリ3には反映されていない更新データ
を、メインメモリ3に書き戻す処理が実行される。この
処理は、ソフトウェアまたは特別のハードウェアにより
実現現される。いずれにしても、チェックポイント時に
は集中して多数のライト・ライン処理の要求が発行され
ることになる。チェックポイント方式を適用したシステ
ムでは、1個のライト・ライン処理の要求に対して、メ
インメモリ3ではBIバッファメモリ4に格納すべき以
前のラインデータDLのリードアクセスと、更新データ
を書き込むライトアクセスの2回のメモリアクセスが必
要である。また、BIバッファメモリ4では、1回のラ
イトアクセスが必要である。なお、一般的には、チェッ
クポイント処理中は通常の処理は実行できない。
【0017】従って、コピーバック方式のキャッシュ機
能を備えたマルチプロセッサシステムにおいて、チェッ
クポイント方式が適用された場合には、ライト・ライン
処理集中して発生したときに多くのメモリアクセスが実
行されると、その期間は通常の処理は実行できないため
システムが停止したようになり、システム全体の処理効
率の低下を招く要因となる。その間システムが停止した
ようになって、全体の処理効率が低下してしまい好まし
くない。この傾向は、プロセッサ数の増大化やチェック
ポイント時でのキャッシュライン数の増大化に伴って顕
著になり、例えばマルチプロセッサシステムのような大
規模かつ高性能のシステムを構築する場合には、大きな
問題となる。
【0018】
【発明が解決しようとする課題】前述したように、従来
のシステム回復機能を実現するためのチェックポイント
方式のメモリ状態回復機能を、特にコピーバック方式の
キャッシュ機能を備えたマルチプロセッサシステムに適
用した場合に、結果的にメモリアクセスが増大するた
め、チェックポイント時点での処理時間が増大し、シス
テム全体の処理効率の低下を招き、システム性能が劣化
するような問題がある。
【0019】本発明の目的は、チェックポイント方式の
メモリ状態回復機能を有するコンピュータシステムにお
いて、チェックポイント処理時のメモリアクセスを集中
を緩和して、チェックポイント処理時でのシステムの処
理効率の低下を防止して、特にフォールト・トレラント
・システムのような大規模かつ高性能のシステムを実現
することにある。
【0020】
【課題を解決するための手段】本発明は、コピーバック
方式のキャッシュメモリ機能及びチェックポイント方式
によるシステム回復機能を備えたコンピュータシステム
であって、メインメモリに格納された情報の全てまたは
一部を保存するためのバックアップ用のバッファメモリ
を有し、チェックポイント時にプロセッサの内部状態情
報をメインメモリに格納し、かつキャッシュメモリに保
持されている更新データをメインメモリに書き戻すチェ
ックポイント処理において、キャッシュメモリから更新
データをメインメモリに書き戻す時点よりも以前に、メ
インメモリからバッファメモリにバックアップ用の情報
を書き込む処理を実行するように制御するメモリ制御手
段を備えたシステムである。
【0021】具体的には、バッファメモリは、チェック
ポイント処理時にクリアされて、チェックポイント時点
の以前にメインメモリに格納されていたデータ(プロセ
ッサの内部状態を含む)を保存する。メモリ制御手段
は、チェックポイント処理時にプロセッサの内部状態を
メインメモリに格納する。従って、メインメモリには、
最新のチェックポイント時点でのプロセッサの内部状態
が保持されている。
【0022】本発明では、メモリ制御手段は、チェック
ポイント処理時のキャッシュメモリから更新データを書
き出す時点より以前に先行して、バッファメモリにメイ
ンメモリからのデータを格納するバックアップ処理を行
なう。従って、メモリ制御手段は、チェックポイント時
点ではキャッシュメモリから更新データをメインメモリ
に書き戻す処理を実行するが、前記のバックアップ処理
を実行しない。これにより、チェックポイント処理時に
は、バックアップ処理に伴うメインメモリとバッファメ
モリのアクセスは実行されないため、結果的にメモリア
クセスの集中化を分散させることができる。このため、
チェックポイント処理時におけるシステムの処理時間を
短縮化し、結果的にシステムの処理効率を向上させるこ
とができる。
【0023】
【発明の実施の形態】以下図面を参照して本発明の実施
の形態を説明する。
【0024】(第1の実施形態)図1は本実施形態のシ
ステム構成を示すブロック図であり、図2は本実施形態
に関係するタグメモリのエントリの一例を示す概念図で
あり、図3は本実施形態に関係するキャッシュラインの
状態を示す概念図であり、図4は本実施形態に関係する
メモリアクセスのタイミングチャート、図5と図6は本
実施形態の動作を説明するためのフローチャートであ
る。
【0025】(システム構成)本システムは、n個のプ
ロセッサ1-1〜1-nと、各プロセッサに対応するn個の
キャッシュメモリ6-1〜6-nと、メモリ制御部11と、
メインメモリ3と、BIバッファメモリ4と、タグメモ
リ13とを有する。キャッシュメモリ6-1〜6-nとメモ
リ制御部11とはバス10を介して接続されている。バ
ス10は、シェアード(shared)応答信号線10
a、モディファイド(modified)応答信号線1
0b、コマンド(command)信号線10c、アド
レス/データ信号線10dを含む。この他にも、アービ
トレーションを行なうための信号線などが含まれるが、
本発明の趣旨には直接に関係しないので省略する。
【0026】アドレス/データ信号線10dは、バスト
ランザクションのアドレス及びデータを転送するための
信号線である。アドレス/データ信号線10dは、共通
の信号線を時分割で使う方式と、アドレス/データ各々
に対応する独立した信号線を設ける方式とがあり、いず
れの方式でもよい。コマンド信号線10cは、バストラ
ンザクションの種類を示す他に、バストランザクション
に関する各種情報を転送するための信号線である。シェ
アード応答信号線10aは、他のプロセッサ/キャッシ
ュ・コントローラにより発行されたトランザクションに
対して、ラインを共有していることを通知するために使
用される。モディファイド応答信号線10bは、他のプ
ロセッサ/キャッシュ・コントローラにより発行された
トランザクションに対して、ラインの更新データを保持
していることを通知するために使用される。
【0027】メモリ制御部11は、バス10と直接に接
続されてバス制御を行なうバスインタフェース制御部1
11と、メモリバス12により接続されたメインメモリ
3及びBIバッファメモリ4へのアクセス制御を行なう
ためのメモリバス制御部113と、タグメモリ13に接
続してタグメモリ13に対するアクセス制御を行なうた
めのタグアクセス制御部114と、メインメモリ3の記
憶状態を保存するために必要な各種機能を制御するため
の状態保存制御部112とを有する。
【0028】メモリバス12は、BIバッファメモリ4
に対するライトイネーブル(WE)/アウトプットイネ
ーブル(OE)信号線12a、メインメモリ3に対する
ライトイネーブル(WE)/アウトプットイネーブル
(OE)信号線12b、コラムアドレス・ストローブ
(CAS)信号線12c、ローアドレス・ストローブ
(RAS)信号線12d、アドレス信号線12e、およ
びデータ信号線12fを含む。
【0029】ライトイネーブル(WE)信号はライトタ
イミングを通知するための信号であり、アウトプットイ
ネーブル(OE)信号はリードタイミングを通知するた
めの信号である。CAS信号はコラムアドレスを指定す
るためのタイミングを通知する信号であり、RAS信号
はローアドレスを指定するためのタイミングを通知する
信号である。アドレス信号線12eはコラムアドレスと
ローアドレスを転送するための信号線であり、データ信
号線12fはデータを転送するための信号線である。こ
こで、メインメモリ3及びBIバッファメモリ4は、C
AS信号線12c、RAS信号線12d、アドレス信号
線12e、およびデータ信号線12fを共有している。
【0030】タグメモリ13は、メインメモリ3の全ラ
インアドレスに対して1ビットのタグ情報を格納してい
る。タグ情報が“0”の場合は、BIバッファメモリ4
には最新のチェックポイント時点でのデータ(メインメ
モリ3のバックアップ用データ)が格納されていないこ
とを示す。一方、タグ情報が“1”の場合は、BIバッ
ファメモリ4には最新のチェックポイント時点でのデー
タが格納されていることを示す。
【0031】(キャッシュ機能)本実施形態のキャッシ
ュメモリ6-1〜6-nを使用したキャッシュ機能は、コピ
ーバック方式を想定しており、後述する方式によりデー
タ一貫性保持のプロトコルを実現する。なお、キャッシ
ュ機能には通常ではコピーバックモード、ライトスルー
モード、ノンキャッシャブルモードの3種類のモードが
用意されている。いずれのモードを選択する方式につい
ては従来からの既知技術で実現できるものであり、例え
ばページ単位に指定する方法が知られている。
【0032】キャッシュメモリ6-1〜6-nは、データ本
体であるラインデータを保持するデータ領域と、各ライ
ンデータの状態(アドレスやアクセス履歴など)を保持
するためのタグ領域から構成されている。このタグ領域
のエントリの一例を図2に示す。このエントリは、アド
レスタグAD、バリッド(V)、モディファイド
(M)、シェアード(S)の各タグ情報を含む。キャッ
シュメモリ6-1〜6-nの各ラインは、対応するタグエン
トリのバリッド(V)、モディファイド(M)、シェア
ード(S)の3ビットの値の組合せにより、図3に示す
ように、4つの状態(インバリッド,クリーン・エクス
クルーシブ,クリーン・シェアード,モディファイド)
を示す。
【0033】次に、コピーバック方式のキャッシュ機能
に関連したバスのトランザクションは以下(1)〜
(4)のようなものが含まれる。
【0034】(1)リードライン(Read−Lin
e)は、キャッシュラインのデータリード処理であり、
プロセッサ1-1〜1-nからのリードアクセスに対して、
キャッシュラインに当該ラインが存在せずにミスした場
合に発行される。
【0035】(2)無効化を伴うリードライン(Rea
d−Line−with−Invalidate)は、
キャッシュラインのデータリード、及び他のキャッシュ
メモリのデータ無効化処理である。これは、プロセッサ
1-1〜1-nからのライトアクセスに対して、キャッシュ
ラインに当該ラインが存在せずにミスした場合に発行さ
れる。
【0036】(3)ライト・ライン(Write−Li
ne)は、キャッシュラインのデータライト処理であ
る。これは、プロセッサ1-1〜1-nからの指示により、
キャッシュラインをメインメモリ3に書き出す場合、キ
ャッシュラインを置換する必要が生じて更新データがメ
インメモリ3に書き出される場合、及び、他のプロセッ
サからの要求に応じて更新データをメインメモリ3に書
き出す場合に発行される。
【0037】(4)無効化(Invalidate)は
他のキャッシュメモリのデータ無効化処理である。これ
は、プロセッサ1-1〜1-nからのライトアクセスに対し
て、キャッシュラインに当該ラインが存在したが、クリ
ーン・シェアードであった場合に発行される。このトラ
ンザクション自身はアドレスの転送のみであり、データ
転送を伴わない。
【0038】尚、一般的には、ここで示した以外のトラ
ンザクションもサポートされることが多いが、本発明の
趣旨には直接関係しないので説明を省略する。
【0039】次に、前記のバストランザクションを使用
して、キャッシュメモリ間のデータ一貫性保持プロトコ
ルに関して、各構成の動作を説明する。
【0040】(マスタプロセッサ)まず、アクセスを起
動する側のプロセッサの動作とそれに対応するキャッシ
ュメモリの状態遷移の様子(1)〜(6)を説明する。
いま仮に、プロセッサ1-1及びキャッシュメモリ6-1を
マスタとして想定する。
【0041】(1)リード(キャッシュヒット)動作で
は、キャッシュメモリに対応するラインがバリッド
(V)の場合に、そのキャッシュメモリからデータを読
出す。バス10にはトランザクションを発行しない。の
動作ではキャッシュラインの状態は不変である。
【0042】(2)リード(キャッシュミス)動作で
は、キャッシュメモリに対応するラインがインバリッド
の場合に、バス10にリードラインのトランザクション
を発行する。これに対して、モディファイド応答信号線
10bがアサート(assert)されたならば、他の
キャッシュメモリ中の一つがそのラインの更新データを
保持していることになるので、そのキャッシュメモリか
らメインメモリ3に書き出されるラインデータを取り込
み、マスタのキャッシュメモリ6-1に格納する。このと
き、キャッシュラインの状態をクリーン・シェアードと
する。
【0043】一方、モディファイド応答信号線10bが
アサートされず、シェアード応答信号線10aがアサー
トされたならば、他のキャッシュメモリがそのラインを
クリーンな状態で保持していることになるので、キャッ
シュラインの状態をクリーン・シェアードとする。この
場合は、メインメモリ3から読出されたデータを取り込
み、マスタのキャッシュメモリ6-1に格納する。
【0044】また、モディファイド応答信号線10bと
シェアード応答信号線10aの両方がアサートされない
場合には、どのキャッシュメモリもそのラインを保持し
ていないことになるので、キャッシュラインの状態をク
リーン・エクスクルーシブとする。この場合も、メイン
メモリ3から読出されたデータを取り込み、マスタのキ
ャッシュメモリ6-1に格納する。いずれの場合も、マス
タのキャッシュメモリ6-1はバス10から取り込んだラ
インデータのうち、必要とされるデータをマスタのプロ
セッサ1-1に返す。
【0045】(3)ライト(キャッシュヒット/モディ
ファイド)動作では、キャッシュメモリ6-1に対応する
ラインがモディファイド(M)の場合には、データをキ
ャッシュメモリに書き込む。バス10にはトランザクシ
ョンを発行しない。このとき、キャッシュラインの状態
は不変である。
【0046】(4)ライト(キャッシュヒット/クリー
ン・エクスクルーシブ)動作では、キャッシュメモリ6
-1に対応するラインがクリーン・エクスクルーシブの場
合に、データをキャッシュメモリに書き込む。バス10
にはトランザクションを発行しない。このとき、キャッ
シュラインの状態をモディファイド(M)に変更する。
【0047】(5)ライト(キャッシュヒット/クリー
ン・シェアード)動作では、キャッシュメモリ6-1に対
応するラインがクリーン・シェアードの場合に、バスに
無効化トランザクションを発行する。キャッシュライン
の状態をモディファイド(M)にして、キャッシュメモ
リ6-1にデータを書き込む。
【0048】(6)ライト(キャッシュミス)動作で
は、キャッシュメモリ6-1に対応するラインがインバリ
ッドの場合に、バスに無効化を伴うリードラインのトラ
ンザクションを発行する。これに対して、モディファイ
ド応答信号線10bがアサートされたならば、他のキャ
ッシュメモリの中の一つがそのラインの更新データを保
持していることになるので、そのキャッシュメモリから
メインメモリ3に書き出されるラインデータを取り込
み、キャッシュメモリ6-1に格納する。一方、モディフ
ァイド応答信号182がアサートされなければ、メイン
メモリ3から読出されたデータを取り込み、キャッシュ
メモリ6-1に格納する。いずれの場合も、キャッシュラ
インの状態をモディファイド(M)とし、データをキャ
ッシュメモリ6-1に書き込む。
【0049】(スレーブプロセッサ)次に、あるプロセ
ッサ/キャッシュが発行したトランザクションに対し
て、他のプロセッサの動作とそれに対応するキャッシュ
メモリの状態遷移の様子(1)〜(4)を説明する。い
ま仮に、プロセッサ1-1及びキャッシュメモリ6-1をマ
スタとし、プロセッサ1-n及びキャッシュメモリ6-nを
スレーブであると想定する。
【0050】(1)リードライン(Read−Lin
e)のトランザクションが発行されると、キャッシュメ
モリ6-nに対応するラインをモディファイド(M)の状
態で保持している場合には、モディファイド応答信号線
10bをアサートして、更新データを保持していること
を通知する。この後、ライト・ライン(Write−L
ine)のトランザクションを発行して、更新データを
メインメモリ3に書き出す。このとき、キャッシュライ
ンの状態をクリーン・シェアードとする。一方、キャッ
シュメモリ6-nに対応するラインをクリーン・エクスク
ルーシブまたはクリーン・シェアードの状態で保持して
いる場合には、シェアード応答信号線10aをアサート
して、クリーンデータを保持していることを通知する。
いずれの場合も、キャッシュラインの状態をクリーン・
シェアードとする。また、キャッシュメモリ6-nに対応
するラインを保持していない場合(インバリッド)に
は、何も動作しない。
【0051】(2)無効化を伴うリードライン(Rea
d−Line−with−Invalidate)のト
ランザクションが発行されると、キャッシュメモリ6-n
に対応するラインをモディファイド(M)の状態で保持
している場合には、モディファイド応答信号線10bを
アサートして、更新データを保持していることを通知す
る。この後、ライト・ライン(Write−Line)
のトランザクションを発行して、更新データをメインメ
モリ3に書き出す。このとき、キャッシュラインの状態
をインバリッドとする。一方、キャッシュメモリ6-nに
対応するラインをクリーン・エクスクルーシブまたはク
リーン・シェアードの状態で保持している場合には、キ
ャッシュラインの状態をインバリッドとする。また、キ
ャッシュメモリ6-nに対応するラインを保持していない
場合(インバリッド)には、何も動作しない。
【0052】(3)無効化(Invalidate)の
トランザクションが発行されると、キャッシュメモリ6
-nに対応するラインをクリーン・エクスクルーシブまた
はクリーン・シェアードの状態で保持している場合に
は、キャッシュラインの状態をインバリッドとする。一
方、キャッシュメモリ6-nに対応するラインを保持して
いない場合(インバリッド)には、何も動作しない。
尚、この場合、キャッシュメモリ6-nに対応するライン
をモディファイドの状態で保持していることはあり得な
い。
【0053】(4)ライト・ライン(Write−Li
ne)のトランザクションが発行された場合には、何も
動作しない。
【0054】(メモリ制御部の動作)次に、本実施形態
の要旨である各バストランザクションに対するメモリ制
御部11の動作を図4乃至図6を参照して説明する。メ
モリ制御部11では、各バストランザクションに対する
各動作は、バスインターフェース制御部111及び状態
保存制御部112により制御される。以下、各バストラ
ンザクションに対する各動作を説明する。
【0055】まず、ライト・ライン(Write−Li
ne)のトランザクションが発行されると、メモリ制御
部11のメモリバス制御部113が起動し、キャッシュ
メモリ6-1〜6-nから書き出されるラインデータをバス
インターフェース制御部111を介して取り込んで、メ
インメモリ3に書き込むライト動作を実行する(図5の
ステップS1,S2)。
【0056】次に、無効化(Invalidate)の
トランザクションの場合には、タグアクセス制御部11
4が起動し、無効対象のアドレスで示されるタグメモリ
13のメモリロケーションからタグ情報を読出す(ステ
ップS3,S4)。
【0057】ここで、タグメモリ13は、メインメモリ
3の全ラインアドレスに対して1ビットのタグ情報を格
納している。タグ情報が“1”の場合は、最新のチェッ
クポイント時点でのデータが、既にBIバッファメモリ
4には格納されていることを示す。即ち、最新のチェッ
クポイント時点で、メインメモリ3に格納されたデータ
(プロセッサの内部状態などを含む)が、BIバッファ
メモリ4にバックアップされていることを意味する(ス
テップS5のYES,S6)。この場合には、メモリ制
御部11は特に何も動作しない。
【0058】一方、タグ情報が“0”の場合は、最新の
チェックポイント時点で、メインメモリ3に格納された
データがBIバッファメモリ4には格納されていないこ
とを示す(ステップS5のNO)。この場合は、メモリ
バス制御部113が起動して、メインメモリ3の無効対
象のアドレスで示されるメモリロケーションからライン
データを読出す(ステップS7)。メモリバス制御部1
13は、メインメモリ3から読出したラインデータをB
Iバッファメモリ4に書き込む(ステップS8)。さら
に、タグアクセス制御部114が再起動し、無効対象の
アドレスで示されるタグメモリ13のメモリロケーショ
ンのタグ情報を“1”にセットする(ステップS9)。
【0059】図4は、前述したメインメモリ3からのラ
インデータの読出し動作と、同時に読出したラインデー
タをBIバッファメモリ4に書き込むときのタイミング
チャートを示す。同図(A)は、メモリバス12におい
て、RAS信号線12d、CAS信号線12c、及びア
ドレス信号線12eによるメインメモリ3のアドレス指
定を示すが、通常のメインメモリ3のアクセス動作と同
様である。但し、これらの信号はメインメモリ4とBI
バッファメモリ4とで共有しているので、いずれに対し
ても同一メモリロケーションを指定することになる。
【0060】同図(B)は、メインメモリ3に対するラ
イトイネーブル(WE)/アウトプットイネーブル(O
E)信号線12bの各信号を示す。メインメモリ3から
ラインデータを読出す動作は、ライトイネーブル(W
E)信号をデアサートし、アウトプットイネーブル(O
E)信号をアサートすることにより実行される(時点
A,C)。メインメモリ3からのリードデータは、同図
(C)に示すように、出力遅延の後に、データ信号線1
2fに出力される(時点B,D)。
【0061】一方、BIバッファメモリ4に対するライ
ンデータの書き込み動作は、メインメモリ3からのリー
ドデータがデータ信号線12fに出力されるタイミング
で、同図(D)に示すように、ライトイネーブル(W
E)/アウトプットイネーブル(OE)信号線12aの
ライトイネーブル(WE)信号をアサートし、アウトプ
ットイネーブル(OE)信号をデアサートすることによ
り実行される(時点B,D)。以上のようなシーケンス
(図5のフローチャート)により、メモリバス制御部1
13は、メインメモリ3からのラインデータの読出し動
作と同時に、読出したラインデータをBIバッファメモ
リ4に書き込むライト動作を実行する。
【0062】次に、無効化を伴うリードライン(Rea
d−Line−with−Invalidate)のト
ランザクションが発行されたときのメモリ制御部11の
動作を説明する。モディファイド応答信号線10bがア
サートされた場合には、それをアサートしたキャッシュ
メモリは既に更新データを保持していることを示してお
り、対応するプロセッサが最新のチェックポイント時点
以降にライト動作を実行していることがわかる。従っ
て、そのチェックポイント時点以前のデータはBIバッ
ファメモリ4に格納されていることになり、改めてこの
アドレスのデータをBIバッファメモリ4に格納する必
要はない。このため、メモリ制御部11は特に何も動作
しない。
【0063】また、モディファイド応答信号線10bが
アサートされない場合には、タグアクセス制御部114
が起動し、無効対象のアドレスで示されるタグメモリ1
3のメモリロケーションからタグ情報を読出す。タグ情
報が“1”の場合は、最新のチェックポイント時点での
データが、既にBIバッファメモリ4には格納されてい
るため、メモリバス制御部113が起動して、メインメ
モリ3の無効対象のアドレスで示されるメモリロケーシ
ョンからラインデータを読出す。バスインタフェース制
御部111は、読出されたラインデータをバス10に出
力する。一方、タグ情報が“0”の場合は、メモリバス
制御部113が起動して、メインメモリ3の無効対象の
アドレスで示されるメモリロケーションからラインデー
タを読出す。メモリバス制御部113は読出し動作と同
時に、読出したラインデータをBIバッファメモリ4に
書き込む。バスインタフェース制御部111は、読出さ
れたラインデータをバス10に出力する。さらに、タグ
アクセス制御部114が再起動し、無効対象のアドレス
で示されるタグメモリ13のメモリロケーションのタグ
情報を“1”にセットする。ここで、メモリバス制御部
113がメインメモリ3からの読出し動作と同時に、読
出したラインデータをBIバッファメモリ4に書き込む
シーケンスは、図4のタイミングチャートで示すものと
同様である。
【0064】リードライン(Read−Line)のト
ランザクションが発行されたときに、モディファイド応
答信号線10bがアサートされた場合には、メモリバス
制御部113が起動して、キャッシュメモリから書き出
されるラインデータを取り込み、メインメモリ3に書き
込む。また、モディファイド応答信号線10bがアサー
トされない場合には、タグアクセス制御部114が起動
し、無効対象のアドレスで示されるタグメモリ13のメ
モリロケーションからタグ情報を読出す。タグ情報が
“1”の場合は、最新のチェックポイント時点でのデー
タが、既にBIバッファメモリ4には格納されているた
め、メモリバス制御部113が起動して、メインメモリ
3の無効対象のアドレスで示されるメモリロケーション
からラインデータを読出す。バスインタフェース制御部
111は、読出されたラインデータをバス10に出力す
る。一方、タグ情報が“0”の場合は、メモリバス制御
部113が起動して、メインメモリ3の無効対象のアド
レスで示されるメモリロケーションからラインデータを
読出す。メモリバス制御部113は読出し動作と同時
に、読出したラインデータをBIバッファメモリ4に書
き込む。バスインタフェース制御部111は、読出され
たラインデータをバス10に出力する。さらに、タグア
クセス制御部114が再起動し、無効対象のアドレスで
示されるタグメモリ13のメモリロケーションのタグ情
報を“1”にセットする。ここで、メモリバス制御部1
13がメインメモリ3からの読出し動作と同時に、読出
したラインデータをBIバッファメモリ4に書き込むシ
ーケンスは、図4のタイミングチャートで示すものと同
様である。
【0065】(チェックポイント処理)次に、チェック
ポイント処理について、図6のフローチャートを参照し
て説明する。チェックポイント方式では、所定のチェッ
クポイント時点で、プロセッサの内部状態をメインメモ
リ3に書き出す処理が実行される(ステップS11)。
このとき、モディファイド状態(M)にあるキャッシュ
メモリのラインデータをメインメモリ3に書き戻し、状
態をクリーン・シェアードまたはインバリッドにセット
する(ステップS12,S13)。また、クリーン・エ
クスクルーシブ状態にあるキャッシュラインの状態もク
リーン・シェアードまたはインバリッドに変更する。メ
インメモリ3に対するラインデータの書き戻し処理は、
ライト・ライン(Write−Line)トランザクシ
ョンにより実行される。従って、この時点では、BIバ
ッファメモリ4へのデータ保存が発生することはない。
また、ソフトウェアによりタグメモリ13の内容を全て
クリアにする機能を起動する(ステップS14)。チェ
ックポイント処理の機構は、従来技術と同様の技術によ
り実現することが可能である。
【0066】ここで、チェックポイント後に、クリーン
・エクスクルーシブ状態が残ることを避ける理由は以下
の通りである。即ち、前述したように、クリーン・エク
スクルーシブの状態にあるキャッシュラインに対するデ
ータのライト動作の場合には、バス10にはトランザク
ションが発行されることなく、キャッシュメモリ中で値
が書き換えられてしまう。このため、この時点でBIバ
ッファメモリ4には、最新チェックポイント時点でのメ
モリ状態を保存することができない。これに対応するた
めには、キャッシュメモリからメインメモリ3にライン
データが書き出されたとき、即ちライト・ライン(Wr
ite−Line)トランザクションが発行されたとき
に、メモリ状態を保存する方法が考えられる。しかし、
この方法ではチェックポイント処理時間が長くなるとい
う問題がある。
【0067】そこで、チェックポイント後に、クリーン
・エクスクルーシブ状態で残るキャッシュラインがなけ
れば、ライト動作の場合には、必ずバス10に無効化
(Invalidate)または無効化を伴うリードラ
イン(Read−Line−with−Invalid
ate)のいずれかのトランザクションが発行されるた
め、これをトリガ条件として、前述のようにチェックポ
イント時点のメモリ状態を保存することが可能となる。
また、リードライン(Read−Line)のトランザ
クションに対して、シェアード応答信号線10aがアサ
ートされない場合には、クリーン・エクスクルーシブ状
態となる。このとき、リードライン(Read−Lin
e)のトランザクションに対するメモリ制御部11の動
作には、以前のメモリ状態をBIバッファメモリ4に保
存するための制御内容が含まれている。よって、最新チ
ェックポイント時点と次のチェックポイント時点との間
に、クリーン・エクスクルーシブの状態となるキャッシ
ュラインが発生することは何ら問題がない。
【0068】以上のように本実施形態によれば、タグメ
モリ13のタグ情報に基づいて、メモリバス制御部11
3は、メインメモリ3からのラインデータの読出し動作
と同時に、読出したラインデータをBIバッファメモリ
4に書き込むライト動作を実行する。ここで、タグ情報
が“1”の場合は、最新のチェックポイント時点でのデ
ータが、既にBIバッファメモリ4には格納されている
ことを示す。即ち、最新のチェックポイント時点で、メ
インメモリ3に格納されたデータ(プロセッサの内部状
態などを含む)が、BIバッファメモリ4にバックアッ
プされていることを意味する。従って、最新のチェック
ポイント時点では、キャッシュメモリからのデータの書
き出し時点よりも以前に、メインメモリ3からのデータ
の読出し処理が先行して実行されている。これにより、
チェックポイント時点では、キャッシュメモリに保持さ
れている更新データを含むラインデータを、メインメモ
リ3に書き出す処理だけでよい。即ち、チェックポイン
ト処理時において、従来ではメインメモリ3ではBIバ
ッファメモリ4に格納すべき以前のラインデータのリー
ドアクセスと、更新データを書き込むライトアクセスの
2回のメモリアクセスが必要であり、BIバッファメモ
リ4では1回のライトアクセスが必要となる。これに対
して、本実施形態ではメインメモリ3に更新データを書
き込むライトアクセスだけでよい。従って、チェックポ
イント処理時のメモリアクセスを低減できるため、シス
テム全体の処理効率を向上させることが可能となる。
【0069】なお、本実施形態において、リードライン
(Read−Line)のトランザクションに対して、
メモリ制御部11がシェアード応答信号線10aをアサ
ートすることにより、クリーン・エクスクルーシブ状態
を避けるようにしてもよい。この場合、常にキャッシュ
ラインがクリーン・エクスクルーシブ状態になることは
無いので、無効化(Invalidate)と無効化を
伴うリードライン(Read−Line−with−I
nvalidate)のいずれかのトランザクションの
ときだけ、最新チェックポイント時点のメモリ状態をB
Iバッファメモリ4に保存すればよい。
【0070】さらに、本実施形態では、メインメモリ3
と同一容量のBIバッファメモリ4を使用することを想
定しており、かつメモリバス12のCAS信号線12
c、RAS信号線12d、アドレス信号線12e、およ
びデータ信号線12fを共有しする構成を想定してい
る。よって、メインメモリ3において固定ビット故障等
の障害が発生した場合に、BIバッファメモリ4をメイ
ンメモリ3として扱うように、BIバッファメモリ4に
対するライトイネーブル(WE)/アウトプットイネー
ブル(OE)信号線12aおよびメインメモリ3に対す
るライトイネーブル(WE)/アウトプットイネーブル
(OE)信号線12bを制御することにより、システム
再構成の後で処理を継続することが可能である。このよ
うな機構を内蔵すると、BIバッファメモリ4を代替メ
モリとして使用可能なため、システムのメモリに対する
耐故障性を向上できる効果がある。
【0071】さらに、本実施形態は、マルチプロセッサ
システムに適用する場合について説明したが、これに限
ることなく同様のキャッシュ機能を有することを条件と
して単一のプロセッサを有するシステムに対しても適用
可能である。また、キャッシュが単一でなく、階層構造
をとるシステムの場合にも同様に適用可能である。
【0072】(第2の実施形態)第2の実施形態は、図
7に示すように、従来と同様の構成のメモリ制御部11
を使用し、メインメモリ3とBIバッファメモリ4とを
有するメモリ装置30がメモリバス12に接続された構
成のシステムである。なお、コンピュータシステムを構
成する複数のプロセッサ1-1〜1-n及びキャッシュメモ
リ6-1〜6-nに関する構成は、前述の第1の実施形態の
場合と同様である(図1を参照)。
【0073】(メモリ装置の構成)本実施形態に関係す
るメモリ装置30は、図8に示すように、メインメモリ
3と、BIバッファメモリ4と、タグメモリ13と、メ
インメモリ3の記憶状態を保存するために必要な各種機
能を制御するための状態保存制御部112と、タグメモ
リ13に接続してタグメモリ13に対するアクセス制御
を行なうためのタグアクセス制御部114とから構成さ
れている。メインメモリ3には、メモリバス12を構成
するライトイネーブル(WE)/アウトプットイネーブ
ル(OE)信号線12b、CAS信号線12c、RAS
信号線12d、アドレス信号線12e、およびデータ信
号線12fがそれぞれ接続されている。状態保存制御部
112には、メインメモリ3に接続されたものと同様の
信号線12b〜12fが接続されている。BIバッファ
メモリ4には、ライトイネーブル(WE)/アウトプッ
トイネーブル(OE)信号線12b以外の信号線12c
〜12fが接続されている。また、BIバッファメモリ
4には、状態保存制御部112からライトイネーブル
(WE)/アウトプットイネーブル(OE)信号線31
が接続されている。即ち、メインメモリ3、状態保存制
御部112、及びBIバッファメモリ4は、CAS信号
線12c、RAS信号線12d、アドレス信号線12
e、およびデータ信号線12fを共有している。また、
メインメモリ3と状態保存制御部112は、ライトイネ
ーブル(WE)/アウトプットイネーブル(OE)信号
線12bも共有している。
【0074】第1の実施形態では、メモリ制御部11は
バス10上のキャッシュ制御信号を直接観測する方式が
採用されている。これに対して、本実施形態では、メモ
リ制御部11はプロセッサ1-1〜1-n及びキャッシュメ
モリ6-1〜6-nの動作には直接追従せずに、メモリバス
12上のトランザクションのみを監視して最新チェック
ポイント時点のデータの保存処理を実行する方式であ
る。
【0075】以下、本実施形態の具体的な機能について
説明する。
【0076】通常では、プロセッサ1-1〜1-nがメイン
メモリ3の内容を変更(ライト動作)する場合に、まず
メインメモリ3からデータを読出してキャッシュメモリ
6-1〜6-nに転送した後、メインメモリ3に対するライ
ト動作を実行する。即ち、メモリ装置30からリードさ
れたデータを保持し、書換える前のメインメモリ3の記
憶内容を保存することができる。さらに、本実施形態で
は、メモリバス12に発行されるリード・トランザクシ
ョンに対して状態保存の制御が実行される。以下、メモ
リ制御部11とメモリ装置30の各動作及びチェックポ
イント処理について説明する。
【0077】(メモリ制御部11)バストランザクショ
ン(1)〜(4)に対するメモリ制御部11の動作は、
一般的なシステムと同様の機能を備えている。
【0078】(1)ライト・ライン(Write−Li
ne)では、メモリバス制御部113が起動し、キャッ
シュメモリ6-1〜6-nから書き出されるラインデータを
取り込み、メモリバス12にライト・トランザクション
を発行する。
【0079】(2)無効化(Invalidate)で
は、本実施形態はキャッシュ制御に関係無いため、何も
処理しない。
【0080】(3)無効化を伴うリードライン(Rea
d−Line−with−Invalidate)で
は、モディファイド応答信号線10bがアサートされた
場合には、アサートしたキャッシュメモリが既に更新デ
ータを保持していることを示しており、そのキャッシュ
メモリに対応するプロセッサが最新のチェックポイント
以降にライト動作を実行していることが認識される。リ
ードデータはモディファイド応答信号10bをアサート
したキャッシュメモリから返されるため、メモリバス1
2に対しては何も発行されない。一方、モディファイド
応答信号10bがアサートされない場合は、メモリバス
12にリード・トランザクションを発行し、応答データ
をバス10に返す。
【0081】(4)リードライン(Read−Lin
e)では、モディファイド応答信号10bがアサートさ
れた場合には、メモリバス制御部113が起動し、キャ
ッシュメモリ6-1〜6-nから書き出されるラインデータ
を取り込み、メモリバス12にライト・トランザクショ
ンを発行する。一方、モディファイド応答信号10bが
アサートされない場合は、メモリバス12にリード・ト
ランザクションを発行し、応答データをバス10に返
す。
【0082】(メモリ装置30)メモリ装置30は、メ
モリ制御部11からメモリバス12上に発行されたトラ
ンザクションをそのまま実行する。以下、図10のフロ
ーチャートを参照して動作を説明する。即ち、メモリバ
ス12上にリード・トランザクションが発行された場合
には、メインメモリ3の要求アドレスをアクセスし、メ
インメモリ3から読出したリードデータをメモリバス1
2に返す(ステップS20,S21)。また、メモリバ
ス12上にライト・トランザクションが発行された場合
には、メインメモリ3の要求アドレスに対してデータが
書き込まれる。
【0083】ここで、本実施形態のタグメモリ13は、
メインメモリ3の全ラインアドレスに対して1ビットの
タグ情報を格納している。タグ情報が“0”の場合は、
チェックポイント以降において、メモリバス12上には
リード・トランザクションが発行されていないため、メ
インメモリ3には最新のチェックポイント時点でのデー
タがそのまま保存されていることを示す。即ち、BIバ
ッファメモリ4には最新のチェックポイント時点でのデ
ータ(メインメモリ3のバックアップ用データ)が格納
されていないことを示す。
【0084】一方、タグ情報が“1”の場合は、チェッ
クポイント以降にメモリバス12上にリード・トランザ
クションが発行されて、キャッシュメモリへデータが送
出された事を意味する。この場合、以下のケース
(1),(2)が想定される。
【0085】(1)メインメモリ3からキャッシュメモ
リへデータ転送が行われただけで、データはプロセッサ
から変更されていない。
【0086】(2)メインメモリ3からキャッシュメモ
リへデータ転送が行われて、さらにデータがプロセッサ
により変更された。
【0087】前記(1)の場合には、メインメモリ3上
にも最新チェックポイント時点のデータがそのまま残っ
てあるが、チェックポイント時にBIバッファメモリ4
から書き戻す処理を行っても同じデータを書き戻すため
矛盾は生じない。これに対して、前記(2)の場合には
BIバッファメモリ4内のみに最新チェックポイント時
点のデータが残っている。従って、タグ情報が“1”の
場合には、BIバッファメモリ4に最新のチェックポイ
ント時点でのデータが格納されていると想定される。
【0088】次に、メモリ装置30のBIバッファメモ
リ4、タグメモリ13、状態保存制御部112、タグア
クセス制御部114による状態保存機能について説明す
る。まず、メモリバス12上にライト・トランザクショ
ンが発行された場合には、状態保存機能としては何も動
作しない。
【0089】一方、メモリバス12上にリード・トラン
ザクションが発行された場合には、図10のステップS
22からの処理が実行される。
【0090】状態保存制御部112は、タグアクセス制
御部114に対して、リード・トランザクションで要求
されたアドレスを送出する(ステップS22)。タグア
クセス制御部114はタグメモリ13をアクセスし、要
求アドレスに対応するタグ情報を読出す(ステップS2
3)。状態保存制御部112は、タグ情報に基づいて以
下の処理を実行する。
【0091】即ち、タグ情報の値が“1”の場合には、
最新チェックポイント時点のデータが既にBIバッファ
メモリ4に格納されているため、状態保存制御部112
は何も動作しない。一方、タグ情報の値が“0”の場合
には、状態保存制御部112は、要求アドレスで示され
るメインメモリ3のメモリロケーションからラインデー
タを読出す(ステップS24のNO,S25)。同時
に、メインメモリ3から読出されたラインデータをBI
バッファメモリ4に書き込む(ステップS26)。さら
に、状態保存制御部112はタグアクセス制御部114
を再起動して、無効対象のアドレスで示されるタグメモ
リ13のメモリロケーションのタグ情報を“1”にセッ
トする(ステップS28)。
【0092】ここで、ラインデータをBIバッファメモ
リ4に書き込むときのタイミングは、前述の図4のタイ
ミングチャートと同様である。BIバッファメモリ4に
対するライトイネーブル(WE)信号31は状態保存制
御部112から出力される。
【0093】次に、メインメモリ3の記憶状態を最新の
チェックポイント時点まで戻すための機能について説明
する。図9は、メモリ装置30のメモリマッピングを示
す概念図である。本実施形態では、メモリ制御部11に
は、全メモリ空間において、アドレスXまでをメインメ
モリ3のメモリ空間として設定されて、このメモリ空間
を除くアドレスYまでをタグメモリ13のメモリ空間と
して設定されて、さらに、これらのメモリ空間を除くア
ドレスZまでをBIバッファメモリ4のメモリ空間とし
て設定されていると想定する。これにより、メモリ制御
部11は、メインメモリ3のメモリ領域だけでなく、ア
ドレスX〜Zまでのメモリ領域に対しても、メモリバス
12上にトランザクションを発行できる。しかし、アド
レスX〜Zまでのメモリ領域はメインメモリ3には実装
されていない領域であるため、メモリバス12上にトラ
ンザクションに対してメインメモリ3は何も動作しな
い。
【0094】状態保存制御部112は、アドレスX〜Y
までのメモリ領域に対するトランザクションに対して
は、タグアクセス制御部114を介してタグメモリ13
に対してアクセスする。また、アドレスY〜Zまでのメ
モリ領域に対するトランザクションに対しては、状態保
存制御部112は信号線31によりアウトプットイネー
ブル(OE)とライトイネーブル(WE)信号を出力し
て、BIバッファメモリ4をアクセス制御する。このよ
うな機能により、メモリバス12上のタグメモリ13及
びBIバッファメモリ4に対するリソースアクセスを実
現する。
【0095】(チェックポイント処理)次に、チェック
ポイント時点でのメモリ制御部11とメモリ装置30の
動作を説明する。この場合、以下の2通りの方法
(1),(2)が想定される。
【0096】(1)キャッシュ・インバリッド型 チェックポイント時点では、メモリ制御部11はプロセ
ッサの内部状態をメインメモリ3に書き出すと共に、モ
ディファイド、クリーン・エクスクルーシブ、クリーン
・シェアードの各状態にあるキャッシュラインをメイン
メモリ3に書き戻し、インバリッド状態とする。ここ
で、クリーン・シェアード状態がチェックポイント時点
で跨がる場合に、以下の問題が発生する。即ち、クリー
ン・シェアードのキャッシュラインに対して変更(ライ
ト要求)が行われても、バス10上に無効化(Inva
lidate)トランザクションが発行されるだけで、
メモリバス12上では観測する事ができない。このた
め、本実施形態の方式ではBIバッファメモリ4には最
新のチェックポイント時点のデータを格納することがで
きないことになる。従って、本実施形態では、クリーン
・シェアード状態を残すことはできず、全てのキャッシ
ュラインをインバリッドにする必要がある。また、メイ
ンメモリ3へのラインデータの書き戻し処理について
は、ライト・ライン(Write−Line)トランザ
クションを使用して行なわれるため、このときにはBI
バッファメモリ4へのデータ保存が発生することはな
い。さらに、ソフトウェアによりタグメモリ13の内容
をクリアする機能を起動する。チェックポイント処理の
機構については、従来と同様の技術により実現できる。
【0097】(2)キャッシュ・シェアードライン・リ
ード要求型 この方式では、メモリ制御部11はチェックポイント時
点で、プロセッサの内部状態をメインメモリ3に書き出
すと共に、モディファイド状態にあるキャッシュライン
をメインメモリ3に書き戻し、状態をクリーン・シェア
ードまたはインバリッドとする。また、クリーン・エク
スクルーシブ状態にあるキャッシュラインの状態もクリ
ーン・シェアードまたはインバリッドに変更する。ま
た、メインメモリ3へのラインデータの書き戻し処理に
ついては、ライト・ライン(Write−Line)ト
ランザクションを使用して行なわれるため、このときに
はBIバッファメモリ4へのデータ保存が発生すること
はない。さらに、ソフトウェアによりタグメモリ13の
内容をクリアする機能を起動する。ここで、前記(1)
の方式においてクリーン・シェアード状態がチェックポ
イント時点で跨がる場合に、クリーン・シェアード状態
を検索し、プロセッサからメインメモリ3に対して、リ
ードライン(Read−Line)トランザクションを
発行する。これにより、BIバッファメモリ4には最新
のチェックポイント時点のデータを格納することができ
る。なお、前記(1)の方式と同様に、チェックポイン
ト処理の機構については、従来と同様の技術により実現
できる。
【0098】以上のように本実施形態においても、前述
の第1の実施形態と同様に、最新のチェックポイント時
点では、キャッシュメモリからのデータの書き出し時点
よりも以前に、メインメモリ3からのデータの読出し処
理が先行して実行されている。これにより、チェックポ
イント時点では、キャッシュメモリに保持されている更
新データを含むラインデータを、メインメモリ3に書き
出す処理だけでよい。即ち、チェックポイント処理時に
おいて、従来ではメインメモリ3ではBIバッファメモ
リ4に格納すべき以前のラインデータのリードアクセス
と、更新データを書き込むライトアクセスの2回のメモ
リアクセスが必要であり、BIバッファメモリ4では1
回のライトアクセスが必要となる。これに対して、本実
施形態ではメインメモリ3に更新データを書き込むライ
トアクセスだけでよい。従って、チェックポイント処理
時のメモリアクセスを低減できるため、システム全体の
処理効率を向上させることが可能となる。
【0099】なお、本実施形態は状態保存機構をメモリ
装置30の内部に実装した構成とすることで、この状態
保存機構を汎用的なSIMM(Single Inli
neMemory Module)やDIMM(Dua
l Inline MemoryModule)のよう
なメモリモジュールに実装することが可能となり、同様
の効果が得られる。
【0100】(第3の実施形態)図11は、第3の実施
形態に関係するメモリ装置30の構成を示すブロック図
である。なお、これ以外のメモリ制御部11を含む構成
は、前述の第2の実施形態に関係するシステム構成(図
7を参照)と同様である。前述の第2の実施形態のメモ
リ装置30は、BIバッファメモリ4が、直接にメモリ
バス12に接続された構成である。なお、BIバッファ
メモリ4はメインメモリ3と同一記憶容量のメモリを想
定している。
【0101】これに対して、本実施形態のメモリ装置3
0は、図11に示すように、状態保存制御部112とB
Iバッファメモリ4との間は、ライトイネーブル(W
E)/アウトプットイネーブル(OE)信号線31、ラ
イトポインタ用アドレス信号線32、アドレス信号線3
3、及びデータ線34により接続されている。
【0102】BIバッファメモリ4は、図12に示すよ
うに、いわゆるスタッキング(stackking)と
称する内部構造を有し、後述するように、リード・トラ
ンザクションが発行されたときに、メインメモリ3から
アクセスされたアドレスとデータ(ラインデータ)をラ
イトポインタ(ライトポインタ用アドレス信号線32)
により指示されるメモリロケーションに格納する。この
ライトポインタは、状態保存制御部112により生成さ
れて、通常では1カウントアップづつインクリメントさ
れる。
【0103】さらに、本実施形態は、タグアクセス制御
部114とタグメモリ13とを使用しない機能および使
用する機能を備えている。便宜的に前者の機能の場合を
第1の方式と称し、後者を第2の方式と称する。以下、
本実施形態の動作を図13と図14のフローチャートを
参照して説明する。なお、メモリ制御部11の動作は、
第2の本実施形態と同様であるため説明は省略する。
【0104】(第1の方式の動作)まず、メモリ制御部
11からメモリバス12上に、ライト・トランザクショ
ンが発行された場合には、メモリ装置30は何も動作し
ない。
【0105】一方、メモリバス12上にリード・トラン
ザクションが発行された場合には、メモリ制御部11
は、メインメモリ3からリード・トランザクションによ
る要求アドレスのラインデータを読出す(ステップS3
0,S31)。同時に、状態保存制御部112は、メイ
ンメモリ3から読出されたリードデータ(ラインデー
タ)を受取る(ステップS32)。
【0106】次に、状態保存制御部112は、各信号線
31〜33によりライトイネーブル(WE)信号、ライ
トポインタ用アドレスおよびリード・トランザクション
の示すアドレスを出力し、データ信号線34によりメイ
ンメモリ3から読出されたリードデータ(ラインデー
タ)をBIバッファメモリ4に送出する(ステップS3
3)。これにより、図12に示すように、BIバッファ
メモリ4のライトポインタにより指示されるスタック領
域に、メインメモリ3から読出されたリードデータとリ
ード・トランザクションの示すアドレスとが格納される
(ステップS34)。そして、状態保存制御部112は
ライトポインタ用アドレスをインクリメントし、リード
・トランザクションが終了するまで前記の処理を繰り返
す(ステップS35)。
【0107】ここで、状態保存制御部112は、BIバ
ッファメモリ4からデータとアドレスを読出す機能を有
する。具体的には、前述の第2の実施形態の場合と同様
である。本実施形態の第1の方式はタグアクセス制御部
114とタグメモリ13とを使用しないため、メモリバ
ス12上にリード・トランザクションを発行する毎に、
メインメモリ3から読出されたデータとアドレスをBI
バッファメモリ4に保存する。このため、同一アドレス
であっても、データとアドレスをBIバッファメモリ4
に複数回格納する可能性がある。
【0108】(第2の方式の動作)次に、図14のフロ
ーチャートを参照して、タグアクセス制御部114とタ
グメモリ13とを使用した方式について説明する。ま
ず、メモリ制御部11からメモリバス12上に、ライト
・トランザクションが発行された場合には、第1の方式
と同様にメモリ装置30は何も動作しない。
【0109】一方、メモリバス12上にリード・トラン
ザクションが発行された場合には、メモリ制御部11は
リード・トランザクションによるメインメモリ3の要求
アドレスを送出する(ステップS40,S41)。ここ
で、状態保存制御部112は、タグアクセス制御部11
4を介してタグメモリ13をアクセスする(ステップS
42)。
【0110】タグメモリ13から読出されたタグ情報の
値が“1”の場合には、最新チェックポイント時点のデ
ータが既にBIバッファメモリ4に格納されているた
め、状態保存制御部112は何も動作しない(ステップ
S43のYES)。
【0111】一方、タグ情報の値が“0”の場合には、
状態保存制御部112は、要求アドレスで示されるメイ
ンメモリ3のメモリロケーションからラインデータを読
出す(ステップS43のNO,S44)。同時に、メイ
ンメモリ3から読出されたラインデータとそのアドレス
をBIバッファメモリ4に書き込む(ステップS4
4)。BIバッファメモリ4への書き込み処理は、前記
の第1の方式の場合と同様である。書き込み終了後に、
状態保存制御部112はライトポインタ用アドレスをイ
ンクリメントする(ステップS45)。さらに、状態保
存制御部112はタグアクセス制御部114を再起動し
て、無効対象のアドレスで示されるタグメモリ13のメ
モリロケーションのタグ情報を“1”にセットする(ス
テップS46)。
【0112】ここで、第2の方式では状態保存制御部1
12は、BIバッファメモリ4とタグメモリ13とから
それぞれデータを読出す機能を有する。具体的には、前
述の第2の実施形態の場合と同様である。さらに、本実
施形態の第2の方式はタグアクセス制御部114とタグ
メモリ13とを使用するため、同一アドレスを複数回B
Iバッファメモリ4に格納することはない。従って、B
Iバッファメモリ4を効率的に使用することができる。
【0113】(チェックポイント処理)チェックポイン
ト処理では、前述の第2の本実施形態と同様に、以下の
2通りの方法(1),(2)が想定される。即ち、 (1)キャッシュ・インバリッド型 チェックポイント時点では、メモリ制御部11はプロセ
ッサの内部状態をメインメモリ3に書き出すと共に、モ
ディファイド、クリーン・エクスクルーシブ、クリーン
・シェアードの各状態にあるキャッシュラインをメイン
メモリ3に書き戻し、インバリッド状態とする。メイン
メモリ3へのラインデータの書き戻し処理については、
ライト・ライン(Write−Line)トランザクシ
ョンを使用して行なわれるため、このときにはBIバッ
ファメモリ4へのデータ保存が発生することはない。ま
た、ソフトウェアによりBIバッファメモリ4のライト
ポインタをゼロクリアする。さらに、第2の方式では、
ソフトウェアによりタグメモリ13の内容をクリアする
機能を起動する。チェックポイント処理の機構について
は、従来と同様の技術により実現できる。
【0114】(2)キャッシュ・シェアードライン・リ
ード要求型 この方式では、メモリ制御部11はチェックポイント時
点で、プロセッサの内部状態をメインメモリ3に書き出
すと共に、モディファイド状態にあるキャッシュライン
をメインメモリ3に書き戻し、状態をクリーン・シェア
ードまたはインバリッドとする。また、クリーン・エク
スクルーシブ状態にあるキャッシュラインの状態もクリ
ーン・シェアードまたはインバリッドに変更する。
【0115】メインメモリ3へのラインデータの書き戻
し処理については、ライト・ライン(Write−Li
ne)トランザクションを使用して行なわれるため、こ
のときにはBIバッファメモリ4へのデータ保存が発生
することはない。また、ソフトウェアによりBIバッフ
ァメモリ4のライトポインタをゼロクリアする。さら
に、第2の方式では、ソフトウェアによりタグメモリ1
3の内容をクリアする機能を起動する。この後に、クリ
ーン・シェアード状態を検索し、プロセッサからメイン
メモリ3に対して、リードライン(Read−Lin
e)トランザクションを発行する。ここで、前記(1)
の方式においてクリーン・シェアード状態がチェックポ
イント時点で跨がる場合に、これにより、BIバッファ
メモリ4には最新のチェックポイント時点のデータを格
納することができる。なお、前記(1)の方式と同様
に、チェックポイント処理の機構については、従来と同
様の技術により実現できる。障害発生時には、最新のチ
ェックポイント時点に戻る場合、BIバッファメモリ4
にスタックされたアドレスとデータを読出し、メインメ
モリ3に書き戻す。書き戻しの順序はスタックされたア
ドレスポインタを1づつデクリメントさせてゼロになる
まで処理を繰り返して実行することになる。
【0116】以上のように本実施形態においても、前述
の第2の実施形態と同様に、最新のチェックポイント時
点では、キャッシュメモリからのデータの書き出し時点
よりも以前に、メインメモリ3からのデータの読出し処
理が先行して実行されている。これにより、チェックポ
イント時点では、キャッシュメモリに保持されている更
新データを含むラインデータを、メインメモリ3に書き
出す処理だけでよい。即ち、チェックポイント処理時に
おいて、従来ではメインメモリ3ではBIバッファメモ
リ4に格納すべき以前のラインデータのリードアクセス
と、更新データを書き込むライトアクセスの2回のメモ
リアクセスが必要であり、BIバッファメモリ4では1
回のライトアクセスが必要となる。これに対して、本実
施形態ではメインメモリ3に更新データを書き込むライ
トアクセスだけでよい。従って、チェックポイント処理
時のメモリアクセスを低減できるため、システム全体の
処理効率を向上させることが可能となる。
【0117】なお、本実施形態は状態保存機構をメモリ
装置30の内部に実装した構成とすることで、この状態
保存機構を汎用的なSIMM(Single Inli
neMemory Module)やDIMM(Dua
l Inline MemoryModule)のよう
なメモリモジュールに実装することが可能となり、同様
の効果が得られる。
【0118】(第4の実施形態)本実施形態は、前述の
第2及び第3の実施形態がプロセッサがメインメモリ3
の内容を変更(ライト動作)する場合にキャッシュメモ
リにデータを転送するメモリバス12上のリード・トラ
ンザクションに関するものであるのに対して、メモリバ
ス12上のライト・トランザクションに関するものであ
る。
【0119】本実施形態のメモリ装置30は、図15に
示すように、メインメモリ3と状態保存制御部112以
外に、ライトバッファメモリ40とミラーメモリ50と
を有する。なお、これ以外のメモリ制御部11を含む構
成は、前述の第2の実施形態に関係するシステム構成
(図7を参照)と同様である。ライトバッファメモリ4
0は、BIバッファメモリ4と同様の内部構造(図12
に示すスタッキング構造)を有し、後述するように、ラ
イト・トランザクション時のライトアドレスとライトデ
ータを格納する。状態保存制御部112とライトバッフ
ァメモリ40との間は、ライトイネーブル(WE)/ア
ウトプットイネーブル(OE)信号線31、ライトポイ
ンタ用アドレス信号線32、アドレス信号線33、及び
データ線34により接続されている。ミラーメモリ50
は、メインメモリ3と同一記憶容量を有する2重化メモ
リ構造を構成し、状態保存制御部112によりアクセス
制御される。状態保存制御部112とミラーメモリ50
との間は、制御信号、アドレス、データの各信号線35
が接続されている。ミラーメモリ50は通常動作時には
使用されずに、特にチェックポイント時に状態保存制御
部112によりアクセス制御される。
【0120】(ライトバッファの動作)図16のフロー
チャートに示すように、メモリ制御部11からメモリバ
ス12上にライト・トランザクションが発行されると、
メインメモリ3にはライト・トランザクションにより指
定されたライト要求アドレスにライトデータが書き込ま
れる(ステップS50)。このとき、状態保存制御部1
12は、ライトイネーブル(WE)信号、ライトポイン
タ用アドレス、メインメモリ3のライト要求アドレスお
よびライトデータをライトバッファメモリ40に送出す
る(ステップS51)。これにより、ライトバッファメ
モリ40には、メインメモリ3に関係するライト要求ア
ドレスとライデータが格納される(ステップS52)。
このライトバッファメモリ40に対するライト動作が終
了すると、状態保存制御部112はライトポインタ用ア
ドレスをインクリメントして前記の処理を繰り返す(ス
テップS53)。
【0121】一方、メモリバス12にリード・トランザ
クションが発行された場合には、ライトバッファメモリ
40は動作しない。また、状態保存制御部112はライ
トバッファメモリ40およびミラーメモリ50に対する
読出し機能を有する。具体的には、前述の第2の実施形
態の場合と同様である。なお、本実施形態では、前述し
たようなタグアクセス制御部114とタグメモリ13と
を使用しないため、メモリバス12上にライト・トラン
ザクションを発行する毎に、メインメモリ3に書き込ま
れるライトデータとアドレスをライトバッファメモリ4
0に保存する。このため、同一アドレスであっても、デ
ータとアドレスをライトバッファメモリ40に複数回格
納する可能性がある。
【0122】(チェックポイント処理)次に、図17の
フローチャートを参照して、チェックポイント時点での
ライトバッファメモリ40とミラーメモリ50の動作を
説明する。メモリ制御部11は、チェックポイント時点
では、プロセッサの内部状態をメインメモリ3に書き出
すと共に、モディファイド状態にあるキャッシュライン
をメインメモリ3に書き戻す(ステップS60)。この
とき、キャッシュラインの状態をクリーン・シェアード
またはインバリッドとする。また、クリーン・エクスク
ルーシブ状態にあるキャッシュラインの状態もクリーン
・シェアードまたはインバリッドに変更とする。
【0123】メインメモリ3へのラインデータの書き戻
し処理はライト・ライン(Write−Line)トラ
ンザクションを使用して実行されるため、状態保存制御
部112はラインデータをライトバッファメモリ40に
保存する(ステップS61)。プロセッサからの内部状
態の全ての書き出しが終了すると、状態保存制御部11
2はライトバッファメモリ40の記憶内容をミラーメモ
リ50に書き込む処理を実行する(ステップS62のY
ES,S63)。即ち、状態保存制御部112は、ライ
トバッファメモリ40に格納されているライトデータを
スタックのゼロ番地から順に読出して、ミラーメモリ5
0にライトする。このとき、状態保存制御部112は、
ライトバッファメモリ40からのリード動作及びミラー
メモリ50に対するライト動作をパラレルに実行しても
よいし、またプロセッサを介して前記のリード動作とラ
イト動作をシリアルに実行してもよい。
【0124】ミラーメモリ50に対するライト動作の終
了時点では、メインメモリ3とミラーメモリ50との記
憶内容は一致している。状態保存制御部112はライト
バッファ用ライトポインタをゼロクリアにする(ステッ
プS64)。
【0125】以上のように本実施形態によれば、ライト
バッファメモリ40には最新のチェックポイント以降
に、メインメモリ3にライトされたデータが保存されて
いる。一方、ミラーメモリ50には、最新のチェックポ
イント時点でのメインメモリ3のデータが格納されるこ
とになる。従って、システムの障害発生時において、通
常では最新のチェックポイント時点からシステムの動作
が再開されることになるが、ミラーメモリ50のデータ
を全てメインメモリ3に書換えることで、その最新のチ
ェックポイント時点に戻ることができる。また、メイン
メモリ3のラインデータを書込む処理を、ライトバッフ
ァメモリ40を使用して一定時間遅延させることによ
り、オーバヘッドの小さいメモリ状態保存機能を実現す
ることができる。なお、本実施形態は状態保存機構をメ
モリ装置30の内部に実装した構成とすることで、この
状態保存機構を汎用的なSIMM(Single In
line Memory Module)やDIMM
(Dual Inline MemoryModul
e)のようなメモリモジュールに実装することが可能と
なり、同様の効果が得られる。
【0126】
【発明の効果】以上詳述したように本発明によれば、第
1にメインメモリからデータラインを読出してバッファ
メモリにバックアップする処理を、キャッシュメモリか
らのデータ書出し時点よりも以前に先行して実行するた
め、チェックポイント処理時にはキャッシュメモリに保
持されていた更新データをメインメモリに書き出すだけ
でよい。従って、チェックポイント処理時でのメモリア
クセスを軽減できるため、システムのオーバヘッドを小
さくすることができるという効果がある。また、チェッ
クポイント終了時には、メインメモリのキャッシュライ
ン単位の全アドレスに対して、バッファメモリにチェッ
クポイント時点のメモリ状態を格納していないことをタ
グメモリに記録する必要があるが、この処理をハードウ
ェアで行うことにより、チェックポイント処理を高速化
することができるという効果もある。第2に、メインメ
モリへのリード・トランザクションが発行されたとき
に、バッファメモリにチェックポイント時点でのメモリ
状態を保存することにより、キャッシュメモリに格納し
ていなかったデータラインの中で、プロセッサがアクセ
スする必要が生じたデータラインは、全てバッファメモ
リにバックアップすることができる。また、チェックポ
イント終了時に所定の状態のキャッシュラインが存在し
なければ、チェックポイント後初めてキャッシュメモリ
に格納していたデータラインの値を更新する際には、必
ず無効化機能を有するトランザクションが発行されるた
め、チェックポイント終了時にキャッシュメモリに格納
されていたデータラインの中で、プロセッサが値を変更
したデータラインは、全てバッファメモリにバックアッ
プすることができる。よって、チェックポイント終了時
に全てのキャッシュメモリで所定の状態のキャッシュラ
インが存在しないようにソフトウェアおよびハードウェ
アで制御すれば、トランザクションを発行せずに値を更
新するよう制御するライン状態が存在したとしても、プ
ロセッサが値を変更または変更する可能性のあるデータ
ラインのチェックポイント時点でのメモリ状態を全てバ
ッファメモリに格納することができるので、チェックポ
イント時のオーバヘッドを小さくすることができるとい
う効果がある。
【0127】第3に、キャッシュメモリからのリード・
トランザクションに対して通知機能を用いて共有してい
る旨を通知することにより、更新されていないデータラ
インに対してプロセッサがライトを実行した際には必ず
無効化機能を含むトランザクションが発行され、該デー
タラインのチェックポイント時点でのメモリ状態をバッ
ファメモリに格納することができるので、チェックポイ
ント時のオーバヘッドを小さくすることができるという
効果がある。また、更新されていないデータラインに対
してプロセッサがライトを実行した場合には、必ず無効
化機能を含むトランザクションが発行されるので、チェ
ックポイント時のオーバヘッドを小さくすることができ
るという効果がある。さらに、メインメモリと同容量の
バッファメモリをメインメモリとして使用する機能を付
加することにより、バッファメモリを代替メモリとして
使用することが可能となる。これによりシステムのメモ
リに対する耐故障性が向上するという効果がある。
【0128】第4に、メモリ状態を保存するのに必要な
処理をメモリ装置内で全て行うため、メモリ状態保存に
関する特別な機能を持たない通常のメモリアクセス制御
部を用いて、高信頼計算機を構築することができる。ま
た、メモリバス上のリード・トランザクションが発行さ
れた場合に、バッファメモリにリードアドレスとリード
ラインデータを格納するといった制御にタグメモリの制
御を付加したことにより、同一アドレスを複数回バッフ
ァメモリに格納することがなくなり、バッファメモリを
効率良く使用することが可能となるという効果がある。
【0129】第5に、メモリバス上のライト・トランザ
クションが発行されたときに、メインメモリのライト対
象アドレスとライトデータラインをバッファメモリに格
納し、新たなチェックポイント時点では、バッファメモ
リに格納されているライトアクセス時のアドレスとデー
タラインを基に、ミラーメモリの内容をメインメモリと
同一の記憶内容に更新する。従って、システムエラーに
より処理が続行できなくなった時にも、最新のチェック
ポイント時点でのメインメモリの記憶内容がミラーメモ
リに保存されているため、最新のチェックポイント時点
の状態に戻してその時点から処理を再開することができ
る。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に関係するシステム構
成を示すブロック図。
【図2】第1の実施形態に関係するタグメモリのエント
リの一例を示す概念図。
【図3】第1の実施形態に関係するキャッシュラインの
状態を示す概念図。
【図4】第1の実施形態に関係するメモリアクセスのタ
イミングチャート。
【図5】第1の実施形態の動作を説明するためのフロー
チャート。
【図6】第1の実施形態の動作を説明するためのフロー
チャート。
【図7】第2の本実施形態に関係するシステム構成を示
すブロック図。
【図8】第2の本実施形態に関係するメモリ装置の構成
を示すブロック図。
【図9】第2の本実施形態に関係するメモリ装置のメモ
リマッピングを示す概念図。
【図10】第2の本実施形態の動作を説明するためのフ
ローチャート。
【図11】第3の実施形態に関係するメモリ装置の構成
を示すブロック図。
【図12】第3の実施形態に関係するBIバッファメモ
リの内部構造を示す概念図。
【図13】第3の実施形態の動作を説明するためのフロ
ーチャート。
【図14】第3の実施形態の動作を説明するためのフロ
ーチャート。
【図15】第4の実施形態に関係するメモリ装置の構成
を示すブロック図。
【図16】第4の実施形態の動作を説明するためのフロ
ーチャート。
【図17】第4の実施形態の動作を説明するためのフロ
ーチャート。
【図18】従来のバックワード手法を使用したシステム
の構成を示すブロック図。
【図19】従来のメモリ状態保存機能をマルチプロセッ
サシステムに適用した構成を示すブロック図。
【図20】従来のメモリ状態保存機能をキャッシュ機能
付きのマルチプロセッサシステムに適用した構成を示す
ブロック図。
【図21】従来のメモリ状態回復処理を説明するための
フローチャート。
【符号の説明】
1,1-1〜1-n…プロセッサ 2,11…メモリ制御部 3…メインメモリ 4…ビフォア・イメージ・バッファメモリ(BIバッフ
ァメモリ) 6-1〜6-n…キャッシュメモリ 10…バス 11…メモリ制御部 12…メモリバス 13…タグメモリ 30…メモリ装置 40…ライトバッファメモリ 50…ミラーメモリ 111…バスインタフェース制御部 112…状態保存制御部 113…メモリバス制御部 114…タグアクセス制御部

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 コピーバック方式のキャッシュメモリ機
    能及びチェックポイント方式によるシステム回復機能を
    備えたコンピュータシステムであって、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリと、 前記メインメモリに格納された情報の全てまたは一部を
    保存するためのバックアップ用のバッファメモリと、 チェックポイント時に、前記プロセッサの内部状態情報
    を前記メインメモリに格納し、かつキャッシュメモリに
    保持されている更新データを前記メインメモリに書き戻
    すチェックポイント処理において、前記キャッシュメモ
    リから前記更新データを前記メインメモリに書き戻す時
    点よりも以前に、前記メインメモリから前記バッファメ
    モリにバックアップ用の情報を書き込む処理を実行する
    ように制御するメモリ制御手段とを具備したことを特徴
    とするコンピュータシステム。
  2. 【請求項2】 複数のプロセッサ及び各プロセッサ毎に
    設けられたキャッシュメモリを使用したコピーバック方
    式のキャッシュメモリ機能を備えたマルチプロセッサ・
    システムに適用することを特徴とする請求項1記載のコ
    ンピュータシステム。
  3. 【請求項3】 コピーバック方式のキャッシュメモリ機
    能及びチェックポイント方式によるシステム回復機能を
    備えたコンピュータシステムであって、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリと、 前記メインメモリに格納された情報の全てまたは一部を
    保存するためのバックアップ用のバッファメモリと、 最新のチェックポイント時点におけるデータが前記バッ
    ファメモリに格納されているか否かを判定するためのタ
    グ情報を保持するタグメモリ手段と、 前記タグメモリ手段に保持された前記タグ情報に基づい
    て、前記バッファメモリに最新のチェックポイント時点
    におけるデータが格納されていない場合に、前記メイン
    メモリから前記バッファメモリにバックアップ用の情報
    を書き込む処理を実行し、チェックポイント時に前記プ
    ロセッサの内部状態情報を前記メインメモリに格納する
    と共にキャッシュメモリに保持されている更新データを
    前記メインメモリに書き戻す処理を実行するメモリ制御
    手段とを具備したことを特徴とするコンピュータシステ
    ム。
  4. 【請求項4】 コピーバック方式のキャッシュメモリ機
    能及びチェックポイント方式によるシステム回復機能を
    備えたコンピュータシステムであって、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリと、 前記メインメモリに格納された情報の全てまたは一部を
    保存するためのバックアップ用のバッファメモリと、 チェックポイント時点での前記メインメモリの記憶内容
    が前記バッファメモリに格納されているか否かを示すタ
    グ情報を保持するためのタグメモリと、 所定のメモリアクセス・トランザクションの発行に基づ
    いて、前記メインメモリと前記バッファメモリのそれぞ
    れのアクセスを制御するためのメモリ制御手段とを有
    し、 前記メモリ制御手段は、 前記メモリアクセス・トランザクションの中で無効化機
    能のトランザクションが発行されたときに、チェックポ
    イント時点の前記バッファメモリの記憶状態を前記タグ
    メモリのタグ情報により判定し、この判定結果により前
    記バッファメモリには前記メインメモリの記憶内容が格
    納されていない場合には前記メインメモリから該当する
    記憶内容を読出して前記バッファメモリに格納し、前記
    タグメモリに前記バッファメモリに格納したことを示す
    タグ情報を記憶する処理を行なうように構成されたこと
    を特徴とするコンピュータシステム。
  5. 【請求項5】 前記メモリ制御手段は、システムがエラ
    ーの発生により処理の続行が不能になった場合に、前記
    タグメモリをアクセスしてチェックポイント時点の前記
    メインメモリの記憶状態を保存しているアドレスを全て
    検索し、前記バッファメモリから検索した該当アドレス
    のデータを読出して前記メインメモリに書き込む手段を
    有し、前記メインメモリの記憶状態をチェックポイント
    時点まで戻してそのチェックポイント時点からシステム
    の処理が続行可能とすることを特徴とする請求項4記載
    のコンピュータシステム。
  6. 【請求項6】 前記メモリ制御手段は、ソフトウェアか
    らの通知により前記メインメモリのキャッシュライン単
    位の全アドレスについて、前記バッファメモリにはチェ
    ックポイント時点での前記メインメモリの記憶内容を格
    納していないことを示すタグ情報を前記タグメモリに書
    き込む手段を有することを特徴とする請求項4記載のコ
    ンピュータシステム。
  7. 【請求項7】 前記メモリ制御手段は、前記無効化機能
    のトランザクションが発行されたときだけでなく、前記
    メインメモリに対するデータ読出し機能のトランザクシ
    ョンが発行されたときにも、チェックポイント時点の前
    記バッファメモリの記憶状態を前記タグメモリのタグ情
    報により判定し、この判定結果により前記バッファメモ
    リには前記メインメモリの記憶内容が格納されていない
    場合には前記メインメモリから該当する記憶内容を読出
    して前記バッファメモリに格納し、チェックポイント時
    点での前記メインメモリの記憶内容が前記バッファメモ
    リに格納していることを示すタグ情報を前記タグメモリ
    に書き込む手段を有することを特徴とする請求項4また
    は請求項5記載のコンピュータシステム。
  8. 【請求項8】 前記キャッシュメモリは、更新されてい
    ないキャッシュラインに対してプロセッサがライト動作
    を実行したときに、トランザクションを発行せずに値を
    更新するように制御されるキャッシュライン状態を含
    み、 前記キャッシュメモリ機能はデータ読出し機能のトラン
    ザクションが発行されたときにキャッシュラインを共有
    していることを通知する通知機能を含み、この通知機能
    により共有している旨を通知された場合には前記キャッ
    シュライン状態に遷移しないよう制御する機能を有し、 前記メモリ制御手段は、前記データ読出し機能のトラン
    ザクションの発行に応じて前記通知機能により共有して
    いる旨を通知する手段を有することを特徴とする請求項
    4または請求項5記載のコンピュータシステム。
  9. 【請求項9】 前記キャッシュメモリ機能は更新されて
    いないキャッシュラインに対してプロセッサがライト動
    作を実行した場合には、常に前記無効化機能のトランザ
    クションを発行する手段を有することを特徴とする請求
    項4または請求項5記載のコンピュータシステム。
  10. 【請求項10】 前記バッファメモリを前記メインメモ
    リの代替メモリとして使用するための手段を備えている
    ことを特徴とする請求項4記載のコンピュータシステ
    ム。
  11. 【請求項11】 コピーバック方式のキャッシュメモリ
    機能及びチェックポイント方式によるシステム回復機能
    を備えたコンピュータシステムにおいて、プロセッサの
    情報処理に必要なプログラムを含む情報を格納するメイ
    ンメモリと、前記メインメモリに格納された情報の全て
    または一部を保存するためのバックアップ用のバッファ
    メモリと、最新のチェックポイント時点におけるデータ
    が前記バッファメモリに格納されているか否かを判定す
    るためのタグ情報を保持するタグメモリ手段と、前記バ
    ッファメモリと前記メインメモリのアクセス制御を行な
    うためのメモリ制御手段とを有するコンピュータシステ
    ムに適用するメモリ制御方法であって、 前記メモリ制御手段は、 前記タグメモリ手段に保持された前記タグ情報に基づい
    て前記バッファメモリに最新のチェックポイント時点に
    おけるデータが格納されているか否かを判定するステッ
    プと、 判定結果により前記バッファメモリには前記データが格
    納されていない場合に、前記メインメモリから前記バッ
    ファメモリにバックアップ用の情報を書き込む処理を実
    行するステップと、 チェックポイント時に前記プロセッサの内部状態情報を
    前記メインメモリに格納すると共にキャッシュメモリに
    保持されている更新データを前記メインメモリに書き戻
    す処理を実行するステップとからなる処理を実行するこ
    とを特徴とするメモリ制御方法。
  12. 【請求項12】 コピーバック方式のキャッシュメモリ
    機能及びチェックポイント方式によるシステム回復機能
    を備えたコンピュータシステムであって、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリ部および前記メインメモリ部に格
    納された情報の全てまたは一部を保存するためのバック
    アップ用のバッファメモリ部を有するメモリ手段と、 リード・トランザクションが発行されたときに、前記メ
    モリ手段をアクセス制御して前記メインメモリ部からリ
    ード要求のデータを読出し、前記メインメモリ部から読
    出したデータをアドレスと共に前記バッファメモリ部に
    格納するように制御するメモリ制御手段とを具備したこ
    とを特徴とするコンピュータシステム。
  13. 【請求項13】 コピーバック方式のキャッシュメモリ
    機能及びチェックポイント方式によるシステム回復機能
    を備えたコンピュータシステムであって、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリ部、前記メインメモリ部に格納さ
    れた情報の全てまたは一部を保存するためのバックアッ
    プ用のバッファメモリ部、およびチェックポイント時点
    での前記メインメモリ部の記憶内容が前記バッファメモ
    リ部に格納されているか否かを示すタグ情報を保持する
    ためのタグメモリ部を有するメモリ手段と、 リード・トランザクションが発行されたときに、前記タ
    グメモリ部のタグ情報に基づいてチェックポイント時点
    のリード対象アドレスに対応するデータが前記バッファ
    メモリ部に格納されているか否かを判定し、格納されて
    いない場合には前記メインメモリ部からリード対象アド
    レスのデータを読出してアドレスと共に前記バッファメ
    モリ部に書き込み、前記バッファメモリ部にチェックポ
    イント時点の前記メインメモリ部の記憶内容を格納した
    ことを示すタグ情報を前記タグメモリ部に記憶するよう
    に制御するメモリ制御手段とを具備したことを特徴とす
    るコンピュータシステム。
  14. 【請求項14】 前記メモリ制御手段は、システムがエ
    ラーの発生により処理の続行が不能になった場合に、前
    記メモリ手段をアクセスして前記バッファメモリ部から
    データとアドレスとの組みを最新のものから順次読出
    し、 前記メインメモリ部の該当するアドレスに前記バッファ
    メモリ部から読出したデータを格納し、前記メインメモ
    リの記憶状態をチェックポイント時点まで戻してそのチ
    ェックポイント時点からシステムの処理が再開可能なよ
    うに制御する手段を有することを特徴とする請求項12
    または請求項13記載のコンピュータシステム。
  15. 【請求項15】 前記メモリ制御手段は、システムがエ
    ラーの発生により処理の続行が不能になった場合に、前
    記タグメモリ部をアクセスしてチェックポイント時点の
    前記メインメモリ部の記憶状態を保存しているアドレス
    を全て検索し、前記バッファメモリ部から検索した該当
    アドレスのデータを読出して前記メインメモリ部に書き
    込む手段を有し、前記メインメモリ部の記憶状態をチェ
    ックポイント時点まで戻してそのチェックポイント時点
    からシステムの処理が続行可能なように制御する手段を
    有することを特徴とする請求項12または請求項13記
    載のコンピュータシステム。
  16. 【請求項16】 前記メモリ制御手段は、ソフトウェア
    からの通知により前記メインメモリ部のキャッシュライ
    ン単位の全アドレスについて、前記バッファメモリ部に
    はチェックポイント時点での前記メインメモリ部の記憶
    内容を格納していないことを示すタグ情報を前記タグメ
    モリ部に書き込む手段を有することを特徴とする請求項
    12または請求項13記載のコンピュータシステム。
  17. 【請求項17】 コピーバック方式のキャッシュメモリ
    機能及びチェックポイント方式によるシステム回復機能
    を備えたコンピュータシステムにおいて、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリ部、前記メインメモリ部に格納さ
    れた情報の全てまたは一部を保存するためのバックアッ
    プ用のバッファメモリ部、およびチェックポイント時点
    での前記メインメモリ部の記憶内容が前記バッファメモ
    リ部に格納されているか否かを示すタグ情報を保持する
    ためのタグメモリ部を有するメモリ手段、および前記メ
    モリ手段のアクセス制御を行なうためのメモリ制御手段
    を備えたコンピュータシステムに適用するメモリ制御方
    法であって、 前記メモリ制御手段は、 リード・トランザクションが発行されたときに、前記タ
    グメモリ部のタグ情報に基づいてチェックポイント時点
    のリード対象アドレスに対応するデータが前記バッファ
    メモリ部に格納されているか否かを判定するステップ
    と、 判定結果により前記バッファメモリ部には前記データが
    格納されていない場合に前記メインメモリ部からリード
    対象アドレスのデータを読出すステップと、 前記メインメモリ部から読出したデータをアドレスと共
    に前記バッファメモリ部に書き込むステップと、 前記バッファメモリ部にチェックポイント時点の前記メ
    インメモリ部の記憶内容を格納したことを示すタグ情報
    を前記タグメモリ部に記憶するステップとからなる処理
    を実行することを特徴とするメモリ制御方法。
  18. 【請求項18】 コピーバック方式のキャッシュメモリ
    機能及びチェックポイント方式によるシステム回復機能
    を備えたコンピュータシステムであって、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリ部、前記メインメモリ部に格納さ
    れた情報の全てまたは一部を保存するためのバックアッ
    プ用のバッファメモリ部、およびチェックポイント時点
    での前記メインメモリ部の記憶内容を格納するためのミ
    ラーメモリ部を有するメモリ手段と、 ライト・トランザクションが発行されたときに、前記メ
    インメモリ部のライト対象アドレス及び前記メインメモ
    リ部のライトデータを前記バッファメモリ部に格納し、
    チェックポイント処理時に前記バッファメモリ部からデ
    ータとアドレスを読出して該当アドレスで指示される前
    記ミラーメモリ部のロケーションに前記データを格納
    し、チェックポイント時点での前記メインメモリ部の記
    憶内容を前記ミラーメモリ部によりバックアップさせる
    ように制御するメモリ制御手段とを具備したことを特徴
    とするコンピュータシステム。
  19. 【請求項19】 前記メモリ制御手段は、システムがエ
    ラーの発生により処理の続行が不能になった場合に、チ
    ェックポイント時点でのデータを前記ミラーメモリ部か
    ら読出して前記メインメモリ部に書き込み、前記チェッ
    クポイント時点からシステムの処理が続行可能なように
    制御する手段を有することを特徴とする請求項18記載
    のコンピュータシステム。
  20. 【請求項20】 コピーバック方式のキャッシュメモリ
    機能及びチェックポイント方式によるシステム回復機能
    を備えたコンピュータシステムにおいて、 プロセッサの情報処理に必要なプログラムを含む情報を
    格納するメインメモリ部、前記メインメモリ部に格納さ
    れた情報の全てまたは一部を保存するためのバックアッ
    プ用のバッファメモリ部、およびチェックポイント時点
    での前記メインメモリ部の記憶内容を格納するためのミ
    ラーメモリ部を有するメモリ手段、及び前記メモリ手段
    のアクセス制御を行なうためのメモリ制御手段を有する
    コンピュータシステムに適用するメモリ制御方法であっ
    て、 前記メモリ制御手段は、 ライト・トランザクションが発行されたときに、前記メ
    インメモリ部のライト対象アドレス及び前記メインメモ
    リ部のライトデータを前記バッファメモリ部に格納する
    ステップと、 チェックポイント処理時に前記バッファメモリ部からデ
    ータとアドレスを読出して該当アドレスで指示される前
    記ミラーメモリ部のロケーションに前記データを格納す
    るステップとからなる処理を実行することを特徴とする
    メモリ制御方法。
JP9046802A 1997-02-28 1997-02-28 コンピュータシステム及び同システムに適用するメモリ制御方法 Pending JPH10240630A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9046802A JPH10240630A (ja) 1997-02-28 1997-02-28 コンピュータシステム及び同システムに適用するメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9046802A JPH10240630A (ja) 1997-02-28 1997-02-28 コンピュータシステム及び同システムに適用するメモリ制御方法

Publications (1)

Publication Number Publication Date
JPH10240630A true JPH10240630A (ja) 1998-09-11

Family

ID=12757471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9046802A Pending JPH10240630A (ja) 1997-02-28 1997-02-28 コンピュータシステム及び同システムに適用するメモリ制御方法

Country Status (1)

Country Link
JP (1) JPH10240630A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074587A (ko) * 2013-10-21 2016-06-28 아브 이니티오 테크놀로지 엘엘시 데이터 유닛들의 컬렉션 체크포인팅

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074587A (ko) * 2013-10-21 2016-06-28 아브 이니티오 테크놀로지 엘엘시 데이터 유닛들의 컬렉션 체크포인팅

Similar Documents

Publication Publication Date Title
JP3086779B2 (ja) メモリ状態復元装置
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
US6564306B2 (en) Apparatus and method for performing speculative cache directory tag updates
US6981104B2 (en) Method for conducting checkpointing within a writeback cache
EP3531292B1 (en) Methods and apparatus for supporting persistent memory
US7849350B2 (en) Responding to a storage processor failure with continued write caching
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
JP3218773B2 (ja) キャッシュ・コントローラ
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JPH10506483A (ja) フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
US10733101B2 (en) Processing node, computer system, and transaction conflict detection method
JP3236287B2 (ja) マルチプロセッサシステム
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
US20040117564A1 (en) System and method for reducing shared memory write overhead in multiprocessor systems
US5737568A (en) Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory
US11513962B2 (en) Draining operation to cause store data to be written to persistent memory
JPH10240630A (ja) コンピュータシステム及び同システムに適用するメモリ制御方法
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JP3833760B2 (ja) 計算機システム及びメモリ状態復元装置
JPH03172943A (ja) キャッシュメモリ制御方式
JPH06222989A (ja) コピーバックキャッシュタグメモリ
JPH10149307A (ja) チェックポイント処理方法及び記録媒体