JP3788822B2 - Computer system and failure recovery method in the system - Google Patents
Computer system and failure recovery method in the system Download PDFInfo
- Publication number
- JP3788822B2 JP3788822B2 JP15124996A JP15124996A JP3788822B2 JP 3788822 B2 JP3788822 B2 JP 3788822B2 JP 15124996 A JP15124996 A JP 15124996A JP 15124996 A JP15124996 A JP 15124996A JP 3788822 B2 JP3788822 B2 JP 3788822B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- main memory
- redundant code
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】
この発明はコンピュータシステムおよびその障害回復方法に関し、特にメインメモリの固定故障に起因する障害を回復できるように改良されたコンピュータシステムおよびその障害回復方法に関する。
【0002】
【従来の技術】
一般に、コンピュータシステムにおいては、メモリ故障に対する信頼性を高めるために、パリティ付きのメモリが採用されている。パリティ付きメモリを有するメモリサブシステムでは、データ読み出し時にそのデータのチェックサムが算出され、そのチェックサムとパリティビットとの比較によってメモリエラーの検出が行われる。これにより、誤ったメモリデータの使用を未然に防止することができる。
【0003】
ところが、パリティだけでは、メモリデータのどのビットに誤りがあるかを特定することはできないので、エラー訂正を行うことはできない。
これに対し、SEC−DED符号などの冗長コードを用いたメモリサブシステムを用いた場合には、1ビットの誤り訂正と、2ビットの誤り検出が可能となる。すなわち、恒久的にデータが1ビット誤っても、これを自動的に訂正して処理を継続できる。したがって、高信頼性が必要とされるコンピュータシステムでは、パリティ付きメモリよりも、SEC−DED符号などの冗長コードを用いたメモリサブシステムを採用することが望ましい。
【0004】
しかし、パリティ付きメモリを採用した既存のコンピュータシステムにSEC−DED符号などの冗長コードを用いたメモリサブシステムを導入する場合には、既存のパリティ付きメモリをそのまま使用することはできないので、大容量のメインメモリをSEC−DED符号に対応するように新たに再構築することが必要とされる。したがって、その導入のためには多くの費用が必要となる。
【0005】
一方、フォールトトレラントコンピュータシステムでは、メモリの2重化によってすべてのメモリ故障をマスクする構成が採用されている。このメモリ2重化構成によれば、常に同一のデータが2つのメモリに保持されているため、データ誤りが検出された場合には、もう一方のメモリのデータを用いることにより処理を継続することができる。
【0006】
しかし、メモリを二重化する必要があるためにハード量が非常に多くなる、誤りを検出した場合のアクセスメモリ切り替えなどに特殊な構造が必要となる、などの欠点もある。
【0007】
そこで、最近では、メモリを2重化することなく、一般的な故障からの回復を付加ハードで実現するための方式として、メインメモリの更新履歴情報を格納するためのログメモリを使用したチェックポイントリスタート方式が提案されている。このチェックポイントリスタート方式では、プロセスの再実行に必要な情報がチェックポイント毎にメインメモリに保存され、またあるチェックポイントから次のチェックポイントまでの期間において、プロセス実行に伴ってメインメモリが更新される度にその更新前データなどが前述の更新履歴情報としてログメモリに採取される。コンピュータシステムに障害が発生したとき、ログメモリの内容を使用することによってメインメモリを障害発生前のチェックポイントの時点に復元することができる。従って、ログメモリを使用したチェックポイントリスタート方式を採用することにより、2重化メモリを用いることなく、少ないハードウェアでメモリの内容を復元することができる。
【0008】
ところが、この方式では、メモリの内容が恒久的に書き変わってしまったような障害が発生した場合、たとえその検出ができても回復できない場合が存在する。すなわち、直前のチェックポイント以前にメモリデータの値が書き変わっている場合には、故障が検出されたときに直前のチェックポイントに戻って処理を再開しても、再び誤ったメモリデータが読まれることになるため、回復することができなくなる。
【0009】
【発明が解決しようとする課題】
上述したように、パリティ付きメモリを採用した既存のコンピュータシステムにSEC−DED符号などの冗長コードを用いたメモリサブシステムを導入する場合には、既存のパリティ付きメモリをそのまま使用することはできないので、大容量のメインメモリをSEC−DED符号に対応するように新たに再構築することが必要とされ、その導入のためには多くの費用が必要となる欠点がある。
【0010】
また、メモリを2重化することなく、一般的な故障からの回復を付加ハードで実現するための方式として、メインメモリの更新履歴情報を格納するためのログメモリを使用したチェックポイントリスタート方式があるが、この方式では、恒久的にデータが書き変わるようなメモリ故障に対応することができない場合があるという問題がある。
【0011】
この発明はこのような点に鑑みなされたもので、既存のパリティ付きメモリなどの資源をそのまま使用した状態で誤り訂正機能を持つメモリサブシステムを付加ハードによって構築できるようにし、メモリ故障に対する信頼性の高いコンピュータシステムを提供することを目的とする。
【0012】
また、この発明は、ログメモリを使用したチェックポイントリスタート方式では回復できないようなメモリ故障が発生した際にも処理を継続できるようにし、メモリを2重化することなく、少ないハードウェアで十分な耐故障性能を実現できるコンピュータシステムおよび障害回復方法を提供することを目的とする。
【0013】
【課題を解決するための手段】
この発明は、1以上のCPUと、前記CPUとバスを介して接続され、パリティが付加されたデータを記憶するパリティ付きメインメモリと有するコンピュータシステムにおいて、キャッシュメモリと、前記バスと前記メインメモリとの間に設けられ、前記メインメモリを制御するメモリコントローラと、前記メインメモリに対するリードライトアクセスの単位となる番地それぞれに対応して設けられた複数の記憶領域を有し、各記憶領域内にその記憶領域に対応する前記メインメモリの番地に格納されているデータの一部に生じた誤りを訂正可能な冗長コードを保持する冗長コードメモリと、前記バスと前記冗長コードメモリとの間に設けられ、前記冗長コードメモリを制御する制御装置であって、前記バス上に発行されるバストランザクションを監視し、前記キュッシュメモリから前記メインメモリへのライトバックが実行されるときに、前記バス上のデータの値からそのデータに対応する冗長コードを生成し、その冗長コードを前記単位データの書き込み番地に対応する前記冗長コードメモリの記憶領域に格納する制御装置と、前記メインメモリからのデータ読み出し時にその読み出しデータのデータエラーが前記メモリコントローラによるパリティのチェックによって検出された場合、前記読み出しデータと当該読み出しデータに対応する前記冗長コードメモリに格納された冗長コードとから正しいデータを再構成する誤り訂正手段とを具備することを特徴とする。
【0014】
このコンピュータシステムにおいては、冗長コードメモリとその制御のための制御装置とが設けられており、バス上に発行されるバストランザクションの監視によってキュッシュメモリからメインメモリへのライトバックが実行されることが検出されると、バス上のデータの値からそのデータに対応する冗長コードが制御装置内で自動的に生成され、それが冗長コードメモリの該当する記憶領域に格納される。またメインメモリからのデータ読み出し時にその読み出しデータのデータエラーがメモリコントローラによるパリティのチェックによって検出された場合には、読み出しデータと当該読み出しデータに対応する冗長コードとから正しいデータが再構成される。このように、メインメモリのデータに誤りが検出されたとき、そのデータと、これに対応する冗長コードとから正しいデータを再構成できるため、前述の冗長コードメモリと制御装置とを付加ハードとして設けるだけで誤り訂正機能を持つメモリサブシステムを構築できるようになり、メモリ故障に対する信頼性の高いコンピュータシステムを実現できる。
【0015】
また、前記制御手段に接続され、前記メインメモリの更新履歴情報を格納するログメモリをさらに具備し、前記制御手段は、前記CPUによる前記メインメモリに対するデータ書き込みが実行される前に、データ書き込みが実行される番地に対応する前記メインメモリの更新前データおよびその更新前データに対応する冗長コードを前記メインメモリおよび前記冗長コードメモリからそれぞれ読み出し、それら更新前データおよび冗長コードを前記更新履歴情報として前記ログメモリに格納し、前記メインメモリの内容を障害発生前の状態に復元することが必要な障害が発生したとき、前記ログメモリに格納されている各更新履歴情報を構成する更新前データおよび冗長コードを前記メインメモリおよび前記冗長コードメモリにそれぞれ書き戻して、前記メインメモリを障害発生前の状態に復元すると共に、前記冗長コードメモリの内容を前記復元されたメインメモリの内容に対応する状態に戻すように構成することが好ましい。
【0016】
この構成により、ログメモリの内容を使用してメインメモリの内容を故障発生前の状態に復元できると共に、メモリ故障発生時にも、冗長コードを使用することにより正しいデータを再構成することができる。この場合、冗長コードを使用して正しいデータを再構成した後に障害発生前のチェックポイントから処理を再開することで、チェックポイントリスタート方式だけでは回復できないようなメモリ故障が発生した場合であっても、処理を継続できるようになる。
【0017】
また、更新前データだけでなく、その更新前データに対応する冗長コードも一緒にログメモリに格納することにより、メインメモリの内容を障害発生前の状態に復元することが必要な障害が発生したときは、ログメモリに格納されている各更新履歴情報を構成する更新前データおよび冗長コードをメインメモリおよび冗長コードメモリにそれぞれ書き戻すことで、メインメモリを障害発生前の状態に復元でき、且つ冗長コードメモリの内容についても復元されたメインメモリの内容に対応する状態に戻すことが可能となる。
【0018】
また、ログメモリに対する更新前データを含む更新履歴情報の格納はメインメモリに対するデータ書き込みが実行される前に行う必要があるが、キャッシュメモリを有するシステムにおいては、CPUによるキャッシュメモリに対するデータ書き込みが実行されたとき、そのデータ書き込みが実行された番地に対応するメインメモリの更新前データと、それに対応する冗長コードをメインメモリおよび冗長コードメモリからそれぞれ読み出して、それら更新前データおよび冗長コードを更新履歴情報としてログメモリに格納することによって、メインメモリに対するデータ書き込みが実行される前に更新履歴情報の格納を容易に行うことができる。
【0019】
また、前述の冗長コードメモリの代わりに、メインメモリの連続アクセスされる複数のデータ列から構成される単位データブロックそれぞれに対応して設けられた複数の記憶領域を有し、各記憶領域内に、その記憶領域に対応する単位データブロックに属する複数のデータ列それぞれの同一ビット位置についての垂直パリティデータを保持する垂直パリティメモリを使用することにより、パリティ処理という簡単な処理により、メモリ故障発生時にも正しいブロックデータを再現することが可能となる。
【0020】
さらに、垂直パリティメモリに代えて、メインメモリ上の複数のデータ列を各々が有する複数の単位データブロックを1組とする複数のデータブロックグループそれぞれに対応して設けられた複数の記憶領域を有し、各記憶領域内に、その記憶領域に対応するデータブロックグループに属する複数の単位データブロックそれぞれの同一ビット位置についての垂直パリティデータから構成されるブロックパリティデータを保持するブロックパリティメモリを採用することにより、メモリモジュール単位などの広範囲にわたるメモリ故障発生時にも正しいブロックデータを再現することが可能となる。
【0021】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
図1には、この発明の第1実施形態に係るコンピュータシステムの構成が概念的に示されている。このコンピュータシステムは、チェックポイント毎に障害回復に必要な情報をメインメモリに格納し、障害発生時にはログメモリに格納されているメインメモリの更新履歴情報を使用してメインメモリの内容を障害発生前のチェックポイントの時点に復元するという障害回復方式を採用したマルチプロセッサシステムであり、図示のように、プロセッサバス10、CPU11−1〜11−n、キャッシュメモリ12−1〜12−n、メインメモリ14、冗長コードメモリ(CM)16、およびビフォアイメージバッファ(BIB)17を備えている。
【0022】
キャッシュメモリ12−1〜12−nは、メインメモリ14を共有するCPU11−1〜11−nそれぞれの1次キャッシュまたは2次キャッシュとして使用されるものであり、チェックポイント取得時には、キャッシュメモリ12−1〜12−nの各々について、メインメモリ14に未反映のデータがメインメモリ14に書き込まれる。
【0023】
メインメモリ14は、パリティ付きメモリなどのようにエラー検出機能を有するメモリであり、CPUによる1回のメモリアクセスでリードライトされるデータ単位であるワード単位でそのワードのデータ列に対してパリティビットが付加される。
【0024】
冗長コードメモリ(CM)16は、エラー検出機能を有するメインメモリ14に対してエラー訂正機能を付加するために設けられたものであり、メインメモリ14のワード数分のエントリを有している。各エントリには、メインメモリ14の対応するワードの誤り訂正冗長コードが格納される。例えば、メインメモリ14のワードNについての誤り訂正冗長コードは、冗長コードメモリ16の第Nエントリに格納される。
【0025】
冗長コードメモリ(CM)16に対する誤り訂正冗長コードの書き込みは、バス10上にメインメモリ14にデータを書き込むためのバストランザクションが発行されたとき、そのバストランザクションに応答して実行される。この場合、バス10上に出力されるデータから誤り訂正冗長コードが生成され、またバス10上に出力されるメモリアドレスから誤り訂正冗長コードを書き込むべき冗長コードメモリ(CM)16のエントリ位置が決定される。
【0026】
ビフォアイメージバッファ(BIB)17は、あるチェックポイントから次のチェックポイントまでの期間におけるメインメモリ14の更新履歴情報を保持するためのログメモリとして使用されるものであり、メインメモリ14に対するデータ書き込みが行われる度、そのデータ書き込みに先立って、メインメモリ14のデータ書き込み番地を示すアドレスと、更新前データと、その更新前データに対応する冗長コードメモリ16の誤り訂正冗長コードとが、更新履歴情報としてビフォアイメージバッファ(BIB)17にスタック形式で蓄積される。誤り訂正冗長コードを、アドレスおよび更新前データと一緒に格納するのは、ビフォアイメージバッファ(BIB)17の更新履歴情報を使用してメインメモリ14の内容を復元するときに、それに合わせて冗長コードメモリ(CM)16の内容も一緒に復元できるようにするためである。
【0027】
メインメモリ14がパリティによる1ビット誤り検出能力しか持たない場合には、冗長コードメモリ16に格納する誤り訂正冗長コードとしては1ビット誤り訂正符号を用いることができる。
【0028】
次に、図2乃至図4を参照して、図1のシステムにおけるデータの流れを具体的に説明する。
まず、図2を参照して、冗長コードメモリ(CM)16に対する誤り訂正冗長コードの書き込み動作について具体的に説明する。
【0029】
図2に示されているように、バス10とメインメモリ14との間にはメインメモリコントローラ(MMコントローラ)13が設けられており、メインメモリ14のリードライト制御はそのメインメモリコントローラ(MMコントローラ)13によって実行される。また、冗長コードメモリ(CM)16とビフォアイメージバッファ(BIB)17それぞれとバス10との間にはBIB/CMコントローラ15が共通に設けられており、それら冗長コードメモリ(CM)16とビフォアイメージバッファ(BIB)17それぞれのリードライト制御はそのBIB/CMコントローラ15によって実行される。
【0030】
以下、CPU11−1からのデータをメインメモリ14のアドレスNに書き込む場合に行われる動作について説明する。
バス10上のトランザクション、つまりバス10上の各種コマンドやアドレスおよびデータはBIB/CMコントローラ15によって監視されており、CPU11−1からメインメモリ14にデータを書き込むためのトランザクションがバス10上に発行されると、その時のメモリアドレス(N)とデータ(Dold1)がBIB/CMコントローラ15によって取得される。このバストランザクションは、実際には、キャッシュメモリ12−1からメインメモリ14にデータをライトバックするときに行われる。
【0031】
一方、MMコントローラ13は、メインメモリ14にデータを書き込むためのトランザクションに応答して、アドレス(N)で指定されるワードNの番地にデータ(Dold1)を書き込む。この場合、データ(Dold1)の値からそれに対応するエラー検出ビット(P)がMMコントローラ13内部で生成され、データ(Dold1)はエラー検出ビット(P)が付加された状態でメインメモリ14に書き込まれる。
【0032】
BIB/CMコントローラ15においては、データ(Dold1)の値からそれの一部に生じた誤りを訂正することが可能な冗長コード(Cold1)がECC演算などによって生成され、その冗長コード(Cold1)がアドレス(N)に対応する冗長コードメモリ(CM)16のエントリ(N)に書き込まれる。
【0033】
前述したように、冗長コードメモリ(CM)16はメインメモリ14のワード数と同数のエントリを有しており、メインメモリ14の各ワードと冗長コードメモリ(CM)16のエントリとは1対1で対応している。したがって、メインメモリ14のワードNからのデータ(Dold1)の読み出し時に、そのデータエラーがMMコントローラ13によって検出された場合には、エラー処理用ソフトウェアなどが、冗長コードメモリ(CM)16のエントリ(N)の冗長コード(Cold1)とエラー検出されたデータとから正しいデータを再構成することにより、メインメモリ14のワードNのデータ(Dold1)を修復することができる。
【0034】
次に、図3を参照して、ビフォアイメージバッファ(BIB)17に対する更新履歴情報の書き込み動作について説明する。
ここでは、CPU11−1が、メインメモリ14のアドレス(N)で指定されるワードNの番地に書き込まれているデータをDold1からDnew1に更新する場合を例にとって説明する。
【0035】
この場合、Dnew1がキャッシュメモリ12−1に書き込まれた時、BIB/CMコントローラ15によって、データ(Dold1)とそれに対応する冗長コード(Cold1)がそれぞれメインメモリ14および冗長コードメモリ16から読み出される。そして、アドレス(N)、更新前データ(Dold1)、冗長コード(Cold1)から構成される更新履歴情報が、ビフォアイメージバッファ(BIB)17に格納される。
【0036】
次に、図4を参照して、ビフォアイメージバッファ(BIB)17に蓄積されている更新履歴情報を使用してメインメモリ14の内容を復元する動作について説明する。
【0037】
メインメモリ14の内容を障害発生前の状態に復元することが必要な障害が発生したとき、エラー処理用ソフトウェアなどの制御の下、ビフォアイメージバッファ(BIB)17から更新履歴情報が逐次読み出され、更新前データおよび冗長コードをそれぞれメインメモリ14および冗長コードメモリ16の該当する格納位置に書き戻す処理が行われる。
【0038】
例えば、ビフォアイメージバッファ(BIB)17に図示のような4つの更新履歴情報が蓄積されている場合には、まず、4つ目の更新履歴情報(アドレスN、更新前データDd、冗長コードCd)の書き戻し処理が行われ、メインメモリ14のアドレスNに更新前データDdが書き込まれると共に、冗長コードメモリ16のエントリNに冗長コードCdが書き込まれる。次に、3つ目の更新履歴情報(アドレス2、更新前データDc、冗長コードCc)の書き戻し処理が行われ、メインメモリ14のアドレス2に更新前データDcが書き込まれると共に、冗長コードメモリ16のエントリ2に冗長コードCcが書き込まれる。以下、同様にして、2つ目の更新履歴情報および1つ目の更新履歴情報の書き戻し処理が順次実行される。
【0039】
このようにして、メインメモリ14を障害発生前の状態に復元でき、且つ冗長コードメモリ16の内容についても復元されたメインメモリ14の内容に対応する状態に戻される。
【0040】
以上、ワード単位のメモリアクセスの場合について説明したが、メインメモリ14に対するアクセスがキャッシュブロック単位で行われる場合についても、同様にして誤り訂正冗長コードの書き込みおよび更新履歴情報の書き込みなどを行うことができる。すなわち、キャッシュブロックがnワードから構成されているとすると、1回のアクセスに対して前述の処理をn回繰り返し実行すればよい。
【0041】
次に、図5を参照して、BIB/CMコントローラ15の具体的なハードウェア構成について説明する。
BIB/CMコントローラ15は、図示のように、バスインターフェース制御部101、バストランザクション応答制御部102、バストランザクション発行制御部103、バッファアクセスコントローラ104、状態保存制御部105、およびコードメモリコントローラ106から構成されている。
【0042】
バスインターフェース制御部101はバス10上に定義された各種信号ラインに接続され、そのバス10との間でアドレス、データ、および各種ステータスを授受する。このバス10上には、図示のように、バス10上のデータ転送のために使用されるアドレス/データバス(addres/data)、およびコマンドライン(command)を始め、キャッシュ制御のためのステータスライン(shared,modified)などが定義されている。sharedラインは、メモリリードトランザクションで要求されたメモりデータのコピーをクリーンな状態で共有しているステータス(shared clean)を示す。modifiedラインは、メモリリードトランザクションで要求されたメモりデータのコピーを変更した状態で共有しているステータス(modified)を示す。
【0043】
バス10上のこれら各種信号ラインの状態をバスインターフェース制御部101を通じてモニタすることによって、キャッシュステータスおよびバストランザクションのスヌープがBIB/CMコントローラ15によって行われる。
【0044】
バストランザクション応答制御部102は、バスインターフェース制御部101を介して受け取った所定のバストランザクションに応答して動作するものであり、例えば、障害発生時には、ある任意のCPUによってバス10上に発行されるワードライトトランザクションに応答してそのトランザクションをアボートするなどの処理を行う。
【0045】
バストランザクション発行制御部102は、バス10上にメモリリード/ライトなどのトランザクションを発行するものであり、例えば、バスインターフェース制御部101を介して受け取ったバス10上の信号ラインの状態からキャッシュメモリへの書き込みが行われたことが検出されたときは、メインメモリ14から更新前データをリードするためのトランザクションを開始する。
【0046】
状態保存制御部105は、ビフォアイメージバッファ(BIB)17に更新履歴情報を保存する位置を指定するポインタ値の制御などを行うものであり、ビフォアイメージバッファ(BIB)17に更新履歴情報を格納する度に、ポインタ値を+1更新する。また、ビフォアイメージバッファ(BIB)17の更新履歴情報を用いてメインメモリ14を復旧する場合には、状態保存制御部105は、更新履歴情報の読み出しの度にポインタ値を現在の値から−1ずつ更新するなどの制御を行う。
【0047】
バッファアクセスコントローラ104は、ビフォアイメージバッファ(BIB)17との間に設けられたアドレスライン(BIB address)、データライン(BIB data)、リードライト制御ライン(BIB RAS#、CAS#、WE#)を使用してビフォアイメージバッファ(BIB)17に対するデータ書き込みおよび読み出しを制御する。
【0048】
コードメモリコントローラ106は、冗長コードメモリ(CM)16との間に設けられたアドレスライン(CM address)、データライン(CM data)、リードライト制御ライン(CM RAS#、CAS#、WE#)を使用して冗長コードメモリ(CM)16に対するデータ書き込みおよび読み出しを制御する。書き込み処理においては、コードメモリコントローラ106は、バスインターフェース制御部101を介して受け取ったバス10上のデータから冗長コードを演算によって生成し、それを冗長コードメモリ(CM)16に書き込む。
【0049】
次に、図6乃至図9を参照して、図5のシステムの具体的な動作について説明する。
図6のタイミングチャートには、任意のキャッシュメモリからメインメモリ14にデータをライトバックするときに実行される一連の動作が示されている。
【0050】
キャッシュメモリからメインメモリ14にデータをライトバックするときは、そのキャッシュメモリあるいはそれに対応するCPUによって、コマンドライン(COMMAND)上にキャッシュラインの書き戻しを示すコマンド(write−line)が発行され、またアドレスバス(addres bus)にはメモリアドレス(A)、データバス(data bus)にはライトデータ(Dnew)が出力される。キャッシュブロックが4ワードから構成される場合には、バースト転送が行われ、データDnew1〜Dnew4が連続的にデータバス(data bus)上に出力される。
【0051】
このバストランザクションに応答して、メインメモリコントローラ13およびBIB/CMコントローラ15が動作する。
メインメモリコントローラ13は、メインメモリ14との間に設けられたアドレスライン(MM address)、データライン(MM data)、リードライト制御ライン(MM RAS#、CAS#、WE#)を制御して、メインメモリ14のアドレス(A)から始まる連続する4つの番地にデータ(Dnew1〜Dnew4)を書き込む。
【0052】
一方、BIB/CMコントローラ15においては、コードメモリコントローラ106が動作し、まず、バス10上のデータ(Dnew1〜Dnew4)からそれに対応する冗長コード(Cnew1〜Cnew4)が演算によって生成される。そして、その冗長コード(Cnew1〜Cnew4)がデータライン(CM data)上に出力されると共に、バス10から受け取ったアドレス(A)から生成されたロウアドレス(Ar)およびカラムアドレス(Ac1〜Ac4)がアドレスライン(CM address)に出力されて、アドレス(A)に対応する冗長コードメモリ16のエントリに冗長コード(Cnew1〜Cnew4)が書き込まれる。
【0053】
このように、冗長コードメモリ16に対する冗長コードの書き込みは、キャッシュメモリからメインメモリ14にデータをライトバックするときに、そのライトバック処理と並行して、コードメモリコントローラ106によって自動的に実行される。
【0054】
図7には、任意のCPUがそれに対応するキャッシュメモリ中のsharedキャッシュラインに対する書き込みを行う場合に実行される一連の処理手順が示されている。
【0055】
sharedキャッシュラインに対する書き込みが行われると、共有データが変更されることをほかのキャッシュメモリに通知するために、バス10上のコマンドライン(command)上にはインバリデートコマンド(invalidate)が、アドレスバス(address bus)上には共有データのアドレス(A)がそれぞれ発行されて、インバリデートプロトコルが実行される。このインバリデートプロトコルでは、他のキャッシュメモリが共有データのコピーを無効化するまで、sharedキャッシュラインに対する書き込みは待たされる。
【0056】
BIB/CMコントローラ15のバストランザクション発行制御部103は、インバリデートコマンドを確認すると、その時のアドレス(A)を使用して、メインメモリ14からアドレス(A)の更新前データ(D1〜D4)を読み出すためのメモリリードトランザクションを開始する。このとき、バス10上のコマンドライン(command)上に発行されるコマンドはリードノンスヌープであり、各キャッシュメモリはそのリードサイクルに対してはスヌープ動作を行わない。
【0057】
メインメモリコントローラ13は、メモリリードトランザクションに応答して、アドレスライン(MM address)、データライン(MM data)、リードライト制御ライン(MM RAS#、CAS#、WE#)を制御して、メインメモリ14のアドレス(A)からデータ(D1〜D4)を読み出し、それをバス10のデータバス(data bus)上に出力する。
【0058】
一方、BIB/CMコントローラ15においては、バッファアクセスコントローラ104およびコードメモリコントローラ106にもアドレス(A)が渡される。コードメモリコントローラ106は、アドレスバス(CM address)上にアドレス(A)から生成されたロウアドレス(Ar)およびカラムアドレス(Ac1〜Ac4)を出力して、冗長コードメモリ16のエントリAから更新前データ(D1〜D4)に対応する冗長コード(C1〜C4)を読み出す。
【0059】
この後、バッファアクセスコントローラ104は、アドレス(A)と、バス10のデータバス(data bus)上に出力されたデータ(D1〜D4)と、コードメモリコントローラ106によって読み出された冗長コード(C1〜C4)とを更新履歴情報のデータ格納形式に組立てて、ポインタ値(P)で指定されるビフォアイメージバッファ(BIB)17のエントリに書き込む。
【0060】
このように、ビフォアイメージバッファ(BIB)17に対する更新履歴情報の書き込みは、キャッシュメモリにデータが書き込まれるとき、つまりキャッシュメモリからメインメモリ14にデータがライトバックされる前に、バストランザクション発行制御部103、バッファアクセスコントローラ104およびコードメモリコントローラ106によって自動的に実行される。
【0061】
図8には、メインメモリ14からのデータ読み出し時に、その読み出しデータのデータエラーが検出された場合の回復処理の流れが示されている。
ここでは、メインメモリ14の内容をエラー発生前のチェックポイントの時点に復元することなく、正しく元の命令へ復帰可能な場合について説明する。
【0062】
すなわち、ある時点でメインメモリ14に書き込まれているデータ(D)について、その後にそれをメインメモリ14から読み出したとき、もしそのデータ(D)がメモリエラーなどによって誤ったデータ値(D’)に置き換えられていると、メインメモリコントローラ13によるエラー検出コードのチェックによってメモリデータエラーの発生が検出される。このメモリデータエラーの発生は、ハードウェア割り込み信号などによって所定のCPUに通知され、そのCPUにてエラー割り込みルーチンが実行される。
【0063】
エラー割り込みルーチンを実行するCPUは、エラー割り込みが再度発生しないようにマスクし(ステップS10)、その後、メインメモリ14のエラーが発したアドレスに格納されているデータ(D’)をリードし、次いでそれに対応する冗長コード(C)を冗長コードメモリ16からリードする(ステップS11、S12)。この後、そのCPUは、データ(D’)と冗長コード(C)とから正しいデータ(D)を再構成し(ステップS13)、そのデータ(D)をメインメモリ14のエラーが発したアドレスに格納する(ステップS14)。
【0064】
この回復処理の手順は、ビフォアイメージバッファ(BIB)17を使用してないため、ビフォアイメージバッファ(BIB)17を使用したチェックポイントリスタート方式を採用してないシステムにおいても適用することができる。
【0065】
図9には、メインメモリ14からのデータ読み出し時に、その読み出しデータのデータエラーが検出された場合の回復処理の第2の例が示されている。
ここでは、あるチェックポイントCP1の以前にメインメモリ14に書き込まれているデータ(D)について、そのチェックポイントCP1の取得後にそれをメインメモリ14から初めて読み出したときに、そのデータ(D)がメモリエラーなどによって誤ったデータ値(D’)に置き換えられていることが検出された場合を想定する。
【0066】
このメモリエラーの発生は、メインメモリコントローラ13によるデータ値(D’)のエラー検出コードのチェックによって検出され、ハードウェア割り込み信号などによって所定のCPUに通知される。そして、そのCPUにてリカバリールーチンが実行される。
【0067】
リカバリールーチンを実行するCPUは、エラー割り込みが再度発生しないようにマスクし(ステップS20)、そしてメインメモリ14のエラーが発したアドレスに格納されているデータ(D’)をリードし、次いでそれに対応する冗長コード(C)を冗長コードメモリ16からリードする(ステップS21、S22)。この後、そのCPUは、データ(D’)と冗長コード(C)とから正しいデータ(D)を再構成し(ステップS23)、そのデータ(D)をメインメモリ14のエラーが発したアドレスに格納する(ステップS24)。
【0068】
次いで、そのCPUは、BIB/CMコントローラ15を制御して、ビフォアイメージバッファ(BIB)17の更新前データをメインメモリ14に書き戻し、冗長コードについては冗長コードメモリ16に書き戻す(ステップS25、S26)。この後、チェックポイントCP1で採取されたプロセス状態が各CPUに復元され、そのチェックポイントCP1から処理が再開される。
【0069】
このようにメモリエラーを修正した後にメインメモリ14の内容を障害発生前のチェックポイントの時点に復元することにより、再び誤ったメモリデータが読まれることによる同一障害の再発を防止できるようになる。従って、チェックポイントリスタート方式だけでは回復できないようなメモリ故障が発生した際にも、処理を継続できるようになる。
【0070】
図10には、この発明の第2実施形態に係るコンピュータシステムの構成が示されている。
このコンピュータシステムは、第1実施形態のシステムに設けられていた冗長コードメモリ16の代わりに垂直パリティメモリ21を採用し、ワード単位ではなく、バースト転送などのCPUによる連続アクセスでリードライトされる単位データブロック(キャッシュブロック)の単位でその誤り訂正のために使用される垂直パリティデータを管理するように構成されている。
【0071】
すなわち、メインメモリ14は、パリティ付きメモリなどのようにエラー検出機能を有するメモリであり、CPUによる1回のメモリアクセスでリードライトされるデータ単位であるワード単位でそのワードのデータ列に対してパリティビットが付加される。
【0072】
垂直パリティメモリ21は、エラー検出機能を有するメインメモリ14に対してエラー訂正機能を付加するために設けられたものであり、メインメモリ14に格納可能な単位データブロック数分のエントリを有している。各エントリには、メインメモリ14の対応する単位データブロックに属するデータ列間において、それらデータ列それぞれの同一ビット位置におけるビット配列から算出した垂直パリティデータが格納される。例えば、図11に示されているように、メインメモリ14のキャッシュブロックNの単位データブロックが各4バイトのデータD0〜D3から構成され、データD0〜D3それぞれに4ビットの水平パリティビットP0〜P3が付加されている場合には、垂直パリティメモリ21のエントリNには、データD0〜D3の同一ビット位置毎に算出された4バイトの垂直パリティDpと水平パリティビットP0〜P3の同一ビット位置毎に算出された4ビットの垂直パリティPpとを含む垂直パリティデータが格納されることになる。
【0073】
このように、水平パリティビットによって誤り検出が可能なデータ単位で単位データブロックを分割し、これらに対して計算した垂直パリティデータを垂直パリティメモリ21に格納することにより、エラー発生が検出されたデータについてそのどのビット位置がエラーしているかを垂直パリティデータから求めることができ、エラー訂正が可能となる。
【0074】
垂直パリティメモリ21に対する垂直パリティデータの書き込みは、キャッシュメモリのあるキャッシュラインをメインメモリ14にライトバックするためのバストランザクションがバス10上に発行されたとき、そのバストランザクションに応答して実行される。この場合、バス10上に連続的に出力される1キャッシュライン分の単位データブロックから垂直パリティデータが生成され、またバス10上に出力される単位ブロックアドレスから垂直パリティデータを書き込むべき垂直パリティメモリ21のエントリ位置が決定される。
【0075】
また、ワード単位の書き込みによってメインメモリのある単位データブロックに属する一部のデータだけが更新される場合については、更新対象の単位データブロックがメインメモリ14から読み出され、その単位データブロックと書き込みデータとの差分と、その読み出した単位データブロックに対応する垂直パリティメモリ21の垂直パリティデータとから、新たな垂直パリティデータが求められる。そして、その垂直パリティデータが、書き込みデータが属する単位データブロックに対応する垂直パリティメモリ21のエントリに書き込まれる。
【0076】
ビフォアイメージバッファ(BIB)17は、第1実施形態と同様に、あるチェックポイントから次のチェックポイントまでの期間におけるメインメモリ14の更新履歴情報を保持するためのログメモリとして使用されるものであり、メインメモリ14に対するデータ書き込みが行われる度、そのデータ書き込みに先立って、データ書き込みが行われる番地が属するメインメモリ14のキャッシュブロックアドレスと、更新前単位データブロックと、その更新前単位データブロックに対応する垂直パリティデータとが、更新履歴情報としてビフォアイメージバッファ(BIB)17にスタック形式で蓄積される。
【0077】
メインメモリ14のリードデータに誤りが検出された場合は、メインメモリ14の水平パリティによる誤り検出結果と垂直パリティデータとから誤りを生じたビット位置が特定され、正しいデータの再構築が行われる。そして、それがメインメモリ14に書き戻される。
【0078】
この第2実施形態においては、垂直パリティデータの生成、ビフォアイメージバッファ(BIB)17に対する更新履歴情報のリードライト制御は図5で説明した第1実施形態と同様のハードウェアによって実現される。すなわち、図5のシステムにおける冗長コードメモリ16を垂直パリティメモリ21に置き換えてその動作を説明すると、垂直パリティメモリ21に対する垂直パリティデータの書き込みは、キャッシュメモリからメインメモリ14にデータをライトバックするときに、そのライトバック処理と並行して、コードメモリコントローラ106によって自動的に実行される。また、ビフォアイメージバッファ(BIB)17に対する更新履歴情報の書き込みも、キャッシュメモリにデータが書き込まれるとき、つまりキャッシュメモリからメインメモリ14にデータがライトバックされる前に、バストランザクション発行制御部103、バッファアクセスコントローラ104およびコードメモリコントローラ106によって自動的に実行される。
【0079】
また、第2実施形態における障害回復処理についても、図8および図9で説明した第1実施形態と同様の手順で行うことができる。すなわち、メインメモリ14の内容を障害発生前のチェックポイントの状態に復元する場合には、垂直パリティデータを使用して正しいデータを再構築した後、ビフォアイメージバッファ(BIB)17から更新履歴情報が逐次読み出され、更新前単位データブロックおよび垂直パリティデータをそれぞれメインメモリ14および垂直パリティメモリ21の該当する格納位置に書き戻す処理が行われる。
【0080】
以上では、メインメモリのデータはパリティを持ち1ビット誤り検出ができる場合について説明したが、SEC−DED符号を用いる場合も同様の構成が可能である。この場合には、メインメモリのデータリードの際に2ビット誤りが検出された時に上記と同様の方法で正しいデータを再構築して障害回復が可能となる。
【0081】
図12には、この発明の第3実施形態に係るコンピュータシステムの構成が示されている。
このコンピュータシステムは、第1実施形態のシステムに設けられていた冗長コードメモリ16の代わりにブロックパリティメモリ22を採用し、ワード単位ではなく、バースト転送などのCPUによる連続アクセスでリードライトされる単位データブロック(キャッシュブロック)を4つで1組とするデータブロックグループ単位でその誤り訂正のために使用されるブロックパリティデータを管理するように構成されている。
【0082】
すなわち、メインメモリ14は、パリティ付きメモリなどのようにエラー検出機能を有するメモリであり、CPUによる1回のメモリアクセスでリードライトされるデータ単位であるワード単位でそのワードのデータ列に対してパリティビットが付加される。
【0083】
ブロックパリティメモリ22は、エラー検出機能を有するメインメモリ14に対してエラー訂正機能を付加するために設けられたものであり、メインメモリ14に格納可能なデータブロックグループ数分のエントリを有している。各エントリには、メインメモリ14の対応するデータブロックグループに属するデータブロック間において、それらデータそれぞれの同一ビット位置におけるビット配列から算出した垂直パリティデータが格納される。
【0084】
このように、1回のキャッシュライン操作でリードライトできる単位データブロック単位でブロックデータグループを分割し、これらに対して計算した垂直パリティデータをブロックパリティメモリ22に格納することにより、エラー発生が検出された単位データブロックの単位データについてはメインメモリ14の水平パリティによって検出でき、そのどのビット位置がエラーしているかについてはブロックパリティデータから求めることができ、これによってエラー訂正が可能となる。
【0085】
ブロックパリティメモリ22に対するブロックパリティデータの書き込みは、キャッシュメモリのあるキャッシュラインをメインメモリ14にライトバックするためのバストランザクションがバス10上に発行されたことが検出されたときに、実行される。この場合、バス10上に連続的に出力される1キャッシュライン分の単位データブロックによって更新されるデータブロックがメインメモリ14から読み出され、そのデータブロックと書き込まれる単位データブロックとの差分(排他的論理和)と、そのデータブロックグループに対応するブロックパリティメモリ22のブロックパリティデータとから、新たなブロックパリティデータが生成される。そして、そのブロックパリティデータが、書き込み対象の単位データブロックが属するデータブロックグループに対応するブロックパリティメモリ22のエントリに書き込まれる。
【0086】
ビフォアイメージバッファ(BIB)17は、第1実施形態と同様に、あるチェックポイントから次のチェックポイントまでの期間におけるメインメモリ14の更新履歴情報を保持するためのログメモリとして使用されるものであり、メインメモリ14に対するデータ書き込みが行われる度、そのデータ書き込みに先立って、データ書き込みが行われる番地が属するメインメモリ14のブロックデータグループのアドレスと、更新前データブロックグループと、その更新前データブロックグループに対応するブロックパリティデータとが、更新履歴情報としてビフォアイメージバッファ(BIB)17にスタック形式で蓄積される。
【0087】
なお、この場合、前記の新たなブロックパリティデータを生成する際に必要な更新前のデータブロックとブロックパリティデータは、更新履歴情報としてビフォアイメージバッファ(BIB)に格納するために読み出されるため、両者は兼用することができ、各々1回のアクセスで済ませるように制御することが可能である。
【0088】
メインメモリ14のリードデータに誤りが検出された場合は、メインメモリ14の水平パリティによる誤り検出結果とブロックパリティデータとから誤りを生じたビット位置が特定され、正しいデータの再構築が行われる。そして、それがメインメモリ14に書き戻される。具体的には、エラー検出されたデータが属するデータブロックグループのすべての単位データブロックがメインメモリ14から読み出され、これらと対応するブロックパリティデータとから正しいブロックデータグループの再生が行われる。
【0089】
この第3実施形態においては、ブロックパリティデータの生成、ビフォアイメージバッファ(BIB)17に対する更新履歴情報のリードライト制御は図5で説明した第1実施形態と同様のハードウェアによって実現される。すなわち、図5のシステムにおける冗長コードメモリ16をブロックパリティメモリ22に置き換えてその動作を説明すると、ブロックパリティメモリ22に対するブロックパリティデータの書き込みは、キャッシュメモリからメインメモリ14にデータをライトバックするときに、そのライトバック処理と並行して、コードメモリコントローラ106によって自動的に実行される。また、ビフォアイメージバッファ(BIB)17に対する更新履歴情報の書き込みも、キャッシュメモリにデータが書き込まれるとき、つまりキャッシュメモリからメインメモリ14にデータがライトバックされる前に、バストランザクション発行制御部103、バッファアクセスコントローラ104およびコードメモリコントローラ106によって自動的に実行される。
【0090】
また、第3実施形態における障害回復処理についても、図8および図9で説明した第1実施形態と同様の手順で行うことができる。すなわち、メインメモリ14の内容を障害発生前のチェックポイントの状態に復元する場合には、ブロックパリティデータを使用して正しいデータを再構築した後、ビフォアイメージバッファ(BIB)17から更新履歴情報が逐次読み出され、更新前データブロックグループおよびブロックパリティデータをそれぞれメインメモリ14およびブロックパリティメモリ22の該当する格納位置に書き戻す処理が行われる。
【0091】
以上では、メインメモリのデータはパリティを持ち1ビット誤り検出ができる場合について説明したが、SEC−DED符号を用いる場合も同様の構成が可能である。この場合には、メインメモリのデータリードの際に2ビット誤りが検出された時に上記と同様の方法で正しいデータを再構築して障害回復が可能となる。
【0092】
なお、以上の説明ではどの実施形態においても、ビフォアイメージバッファ(BIB)17に対して更新前データとそれに対応する誤り訂正のための冗長コード(ECC、垂直パリティ、ブロックパリティ)とを同時に書き込む場合を説明したが、冗長コードについては、それを格納するための冗長コードメモリ16、垂直パリティメモリ21、またはブロックパリティメモリ22の更新時に行ってもよい。この場合、新たな冗長コードの書き込みによって更新される冗長コードが冗長コードメモリ16、垂直パリティメモリ21、またはブロックパリティメモリ22から読み出され、それがビフォアイメージバッファ(BIB)17に書き込まれる。
【0093】
【発明の効果】
以上説明したように、この発明によれば、既存のパリティ付きメモリなどの資源をそのまま使用した状態で誤り訂正機能を持つメモリサブシステムを付加ハードによって構築できるようになり、メモリ故障に対する信頼性の高いコンピュータシステムを実現できる。また、ログメモリを使用したチェックポイントリスタート方式では回復できないようなメモリ故障が発生した際にも処理を継続できるようになり、メモリを2重化することなく、少ないハードウェアで十分な耐故障性能を実現できる。
【図面の簡単な説明】
【図1】この発明の第1の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図2】同第1実施形態のシステムにおける冗長コードメモリに対する誤り訂正コードの書き込み動作を説明するための図。
【図3】同第1実施形態のシステムにおけるBIBメモリに対する更新履歴情報の書き込み動作を説明するための図。
【図4】同第1実施形態のシステムにおけるメインメモリおよび冗長コードメモリの復元動作を説明するための図。
【図5】同第1実施形態のシステムで採用される具体的なハードウェア構成を示すブロック図。
【図6】図5のシステムにおいてキャッシュからメインメモリに対するライトバック処理で実行される一連の動作を説明するタイミングチャート。
【図7】図5のシステムにおいてキャッシュ中のsharedラインに対する書き込み処理で実行される一連の動作を説明するタイミングチャート。
【図8】図5のシステムで実行される障害回復処理の第1の手順を説明するフローチャート。
【図9】図5のシステムで実行される障害回復処理の第2の手順を説明するフローチャート。
【図10】この発明の第2の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図11】同第2実施形態のシステムにおける垂直パリティデータの生成原理を説明するための図。
【図12】この発明の第3の実施形態に係るコンピュータシステムの構成を示すブロック図。
【符号の説明】
10…プロセッサバス、11−1〜11−n…CPU、12−1〜12−n…キャッシュメモリ、13…メインメモリコントローラ、14…メインメモリ、15…BIB/CMコントローラ、16…冗長コードメモリ(CM)、17…ビフォアイメージバッファ(BIB)、21…垂直パリティメモリ、22…ブロックパリティメモリ、101…バスインターフェース制御部、102…バストランザクション応答制御部、103…バストランザクション発行制御部、104…バッファアクセスコントローラ、105…状態保存制御部、106…コードメモリコントローラ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a computer system and a failure recovery method thereof, and more particularly to an improved computer system and a failure recovery method thereof that can recover from a failure caused by a fixed failure of a main memory.
[0002]
[Prior art]
In general, in a computer system, a memory with parity is employed in order to increase the reliability against a memory failure. In a memory subsystem having a memory with parity, a checksum of the data is calculated when the data is read, and a memory error is detected by comparing the checksum with a parity bit. Thereby, the use of incorrect memory data can be prevented beforehand.
[0003]
However, error correction cannot be performed because it is impossible to specify which bit of memory data has an error only by using parity.
On the other hand, when a memory subsystem using a redundant code such as an SEC-DED code is used, 1-bit error correction and 2-bit error detection are possible. That is, even if one bit of data is permanently in error, this can be corrected automatically and processing can be continued. Therefore, in a computer system that requires high reliability, it is desirable to employ a memory subsystem using a redundant code such as a SEC-DED code rather than a memory with parity.
[0004]
However, when a memory subsystem using a redundant code such as a SEC-DED code is introduced into an existing computer system that employs a memory with parity, the existing memory with parity cannot be used as it is. It is necessary to newly reconstruct the main memory to correspond to the SEC-DED code. Therefore, a lot of cost is required for the introduction.
[0005]
On the other hand, the fault tolerant computer system employs a configuration in which all memory failures are masked by duplication of memory. According to this dual memory configuration, the same data is always held in the two memories, so that if a data error is detected, the processing is continued by using the data in the other memory. Can do.
[0006]
However, there are disadvantages such as a large amount of hardware because it is necessary to duplicate the memory, and a special structure is required for switching the access memory when an error is detected.
[0007]
Therefore, recently, a checkpoint using a log memory for storing update history information of the main memory is a method for realizing recovery from a general failure with additional hardware without duplicating the memory. A restart method has been proposed. In this checkpoint restart method, information necessary for process re-execution is stored in the main memory for each checkpoint, and the main memory is updated as the process is executed during the period from one checkpoint to the next. Each time the data is updated, the data before update is collected in the log memory as the update history information. When a failure occurs in the computer system, the main memory can be restored to the time of the checkpoint before the failure by using the contents of the log memory. Therefore, by adopting a checkpoint restart method using a log memory, the contents of the memory can be restored with a small amount of hardware without using a dual memory.
[0008]
However, in this method, when a failure occurs in which the contents of the memory are permanently rewritten, there is a case where it cannot be recovered even if the failure can be detected. In other words, if the value of the memory data has been rewritten before the previous checkpoint, the wrong memory data will be read again even if the process is resumed by returning to the previous checkpoint when a failure is detected. Will not be able to recover.
[0009]
[Problems to be solved by the invention]
As described above, when a memory subsystem using a redundant code such as a SEC-DED code is introduced into an existing computer system employing a memory with parity, the existing memory with parity cannot be used as it is. However, it is necessary to newly reconstruct a large-capacity main memory so as to correspond to the SEC-DED code, and there is a disadvantage that a lot of cost is required for its introduction.
[0010]
Checkpoint restart method using log memory to store update history information of main memory as a method to realize recovery from general failure with additional hardware without duplicating memory However, this method has a problem that it may not be possible to cope with a memory failure in which data is permanently rewritten.
[0011]
The present invention has been made in view of the above points, and makes it possible to construct a memory subsystem having an error correction function by using additional hardware while using resources such as an existing memory with parity as it is, and to improve reliability against a memory failure. An object of the present invention is to provide a computer system with high accuracy.
[0012]
In addition, the present invention enables processing to continue even when a memory failure occurs that cannot be recovered by the checkpoint restart method using a log memory, and sufficient hardware is sufficient without duplicating the memory. It is an object of the present invention to provide a computer system and a failure recovery method capable of realizing excellent fault tolerance performance.
[0013]
[Means for Solving the Problems]
The present invention is connected to one or more CPUs and the CPU via a bus, With parity to store data with added parity In a computer system having a main memory, A cache memory, a memory controller provided between the bus and the main memory and controlling the main memory; A plurality of storage areas are provided corresponding to each address serving as a unit of read / write access to the main memory, and each storage area corresponds to the storage area. Of the main memory Redundancy that can correct errors that occur in some of the data stored at the address code A redundant code memory, and the bus and the redundant code memory Between Control device for controlling the redundant code memory Because Monitor bus transactions issued on the bus; When a write back from the cache memory to the main memory is executed, A redundant code corresponding to the data is generated from the value of the data on the bus, and the redundant code is stored in the storage area of the redundant code memory corresponding to the unit data write address. When data error of the read data is detected by the controller and parity check by the memory controller when reading data from the main memory, the read data and the redundant code memory corresponding to the read data are stored. Error correction means for reconstructing correct data from the redundant code It is characterized by that.
[0014]
In this computer system, a redundant code memory and a control device for controlling the redundant code memory are provided. By monitoring a bus transaction issued on the bus, Write back from cache memory to main memory is executed When this is detected, a redundant code corresponding to the data is automatically generated from the value of the data on the bus in the control device and stored in the corresponding storage area of the redundant code memory. Further, when a data error of the read data is detected by the parity check by the memory controller when reading data from the main memory, correct data is reconstructed from the read data and the redundant code corresponding to the read data. in this way, When an error is detected in the data in the main memory, correct data can be reconstructed from that data and the corresponding redundant code, so error correction is possible simply by providing the redundant code memory and control device described above as additional hardware. A memory subsystem having functions can be constructed, and a computer system with high reliability against a memory failure can be realized.
[0015]
Further, the apparatus further comprises a log memory connected to the control means for storing update history information of the main memory, wherein the control means performs data writing before data writing to the main memory by the CPU is executed. Read the pre-update data of the main memory corresponding to the address to be executed and the redundant code corresponding to the pre-update data from the main memory and the redundant code memory, respectively, and use the pre-update data and redundant code as the update history information Stored in the log memory, When a failure that requires restoring the contents of the main memory to the state before the failure occurs, the pre-update data and redundant code constituting each update history information stored in the log memory are stored in the main memory and Each of the redundant code memories is written back to restore the main memory to the state before the failure, and the contents of the redundant code memory are restored to the state corresponding to the restored contents of the main memory. It is preferable to configure as described above.
[0016]
With this configuration, the content of the main memory can be restored to the state before the failure using the content of the log memory, and correct data can be reconstructed by using the redundant code even when a memory failure occurs. In this case, a memory failure that cannot be recovered only by the checkpoint restart method by reconstructing the correct data using the redundant code and restarting the processing from the checkpoint before the failure occurred. Will be able to continue processing.
[0017]
In addition to storing the pre-update data as well as the redundant code corresponding to the pre-update data in the log memory, a failure that requires restoring the contents of the main memory to the state before the failure occurred When writing the pre-update data and redundant code constituting each update history information stored in the log memory back to the main memory and redundant code memory, respectively, the main memory can be restored to the state before the failure occurred, and The contents of the redundant code memory can be returned to the state corresponding to the restored contents of the main memory.
[0018]
In addition, storage of update history information including pre-update data to the log memory must be performed before data write to the main memory is executed. However, in a system having a cache memory, the CPU writes data to the cache memory. Read the data before update of the main memory corresponding to the address where the data was written and the corresponding redundant code from the main memory and the redundant code memory, respectively, and update history of the data before update and the redundant code. By storing the information in the log memory as the information, the update history information can be easily stored before the data writing to the main memory is executed.
[0019]
Further, instead of the above-described redundant code memory, the main memory has a plurality of storage areas provided corresponding to each unit data block composed of a plurality of data strings that are continuously accessed. By using a vertical parity memory that holds vertical parity data for the same bit position of each of a plurality of data strings belonging to a unit data block corresponding to the storage area, a simple process called a parity process can be used. It is possible to reproduce correct block data.
[0020]
Furthermore, instead of the vertical parity memory, there are a plurality of storage areas provided corresponding to a plurality of data block groups each including a plurality of unit data blocks each having a plurality of data strings on the main memory. In each storage area, a block parity memory that holds block parity data composed of vertical parity data for the same bit position of each of a plurality of unit data blocks belonging to the data block group corresponding to the storage area is adopted. As a result, it is possible to reproduce correct block data even when a wide range of memory failures such as memory module units occur.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 conceptually shows the configuration of a computer system according to the first embodiment of the present invention. This computer system stores information necessary for failure recovery at each checkpoint in the main memory. When a failure occurs, the main memory update history information stored in the log memory is used to store the contents of the main memory before the failure occurs. Is a multiprocessor system that employs a failure recovery method of restoring at the time of a checkpoint, and as shown, a
[0022]
The cache memories 12-1 to 12-n are used as primary caches or secondary caches of the CPUs 11-1 to 11-n sharing the
[0023]
The
[0024]
The redundant code memory (CM) 16 is provided to add an error correction function to the
[0025]
The writing of the error correcting redundant code to the redundant code memory (CM) 16 is executed in response to the bus transaction when a bus transaction for writing data to the
[0026]
The before image buffer (BIB) 17 is used as a log memory for holding update history information of the
[0027]
When the
[0028]
Next, the data flow in the system of FIG. 1 will be described in detail with reference to FIGS.
First, with reference to FIG. 2, the error correction redundant code writing operation to the redundant code memory (CM) 16 will be specifically described.
[0029]
As shown in FIG. 2, a main memory controller (MM controller) 13 is provided between the
[0030]
Hereinafter, an operation performed when data from the CPU 11-1 is written to an address N of the
Transactions on the
[0031]
On the other hand, the
[0032]
In the BIB /
[0033]
As described above, the redundant code memory (CM) 16 has the same number of entries as the number of words in the
[0034]
Next, with reference to FIG. 3, an operation of writing update history information to the before image buffer (BIB) 17 will be described.
Here, a case where the CPU 11-1 updates the data written in the address of the word N designated by the address (N) of the
[0035]
In this case, when Dnew1 is written into the cache memory 12-1, the BIB /
[0036]
Next, an operation for restoring the contents of the
[0037]
When a failure that requires restoring the contents of the
[0038]
For example, when four pieces of update history information as shown in the figure are stored in the before image buffer (BIB) 17, first, the fourth update history information (address N, pre-update data Dd, redundant code Cd) And the pre-update data Dd is written to the address N of the
[0039]
In this way, the
[0040]
As described above, the case of memory access in units of words has been described. However, in the case where access to the
[0041]
Next, a specific hardware configuration of the BIB /
The BIB /
[0042]
The bus interface control unit 101 is connected to various signal lines defined on the
[0043]
By monitoring the state of these various signal lines on the
[0044]
The bus transaction
[0045]
The bus transaction
[0046]
The state
[0047]
The
[0048]
The
[0049]
Next, specific operations of the system of FIG. 5 will be described with reference to FIGS.
The timing chart of FIG. 6 shows a series of operations executed when data is written back from an arbitrary cache memory to the
[0050]
When data is written back from the cache memory to the
[0051]
In response to this bus transaction, the
The
[0052]
On the other hand, in the BIB /
[0053]
As described above, the writing of the redundant code to the
[0054]
FIG. 7 shows a series of processing procedures executed when an arbitrary CPU writes to a shared cache line in the corresponding cache memory.
[0055]
When writing to the shared cache line is performed, an invalidate command (invalidate) is sent to the address bus on the command line (command) on the
[0056]
When the bus transaction issuance control unit 103 of the BIB /
[0057]
The
[0058]
On the other hand, in the BIB /
[0059]
Thereafter, the
[0060]
As described above, the update history information is written to the before image buffer (BIB) 17 when the data is written to the cache memory, that is, before the data is written back from the cache memory to the
[0061]
FIG. 8 shows the flow of recovery processing when a data error in the read data is detected when data is read from the
Here, a case will be described in which the contents of the
[0062]
That is, when data (D) written in the
[0063]
The CPU executing the error interrupt routine masks the error interrupt so that it does not occur again (step S10), and then reads the data (D ′) stored at the address where the error occurred in the
[0064]
This procedure of the recovery process can be applied to a system that does not employ the checkpoint restart method using the before image buffer (BIB) 17 because the before image buffer (BIB) 17 is not used.
[0065]
FIG. 9 shows a second example of the recovery process in the case where a data error of the read data is detected when reading data from the
Here, when data (D) written in the
[0066]
The occurrence of this memory error is detected by checking the error detection code of the data value (D ′) by the
[0067]
The CPU that executes the recovery routine masks the error interrupt so as not to occur again (step S20), reads the data (D ′) stored in the address where the error occurred in the
[0068]
Next, the CPU controls the BIB /
[0069]
Thus, by correcting the memory error and then restoring the contents of the
[0070]
FIG. 10 shows the configuration of a computer system according to the second embodiment of the present invention.
This computer system employs a
[0071]
That is, the
[0072]
The
[0073]
In this way, the unit data block is divided into data units that can be detected by the horizontal parity bit, and the vertical parity data calculated for these is stored in the
[0074]
The writing of the vertical parity data to the
[0075]
When only a part of data belonging to a unit data block in the main memory is updated by word unit writing, the unit data block to be updated is read from the
[0076]
The before image buffer (BIB) 17 is used as a log memory for holding update history information of the
[0077]
When an error is detected in the read data of the
[0078]
In the second embodiment, generation of vertical parity data and read / write control of update history information for the before image buffer (BIB) 17 are realized by hardware similar to that of the first embodiment described with reference to FIG. That is, the operation is described by replacing the
[0079]
Also, the failure recovery processing in the second embodiment can be performed in the same procedure as in the first embodiment described with reference to FIGS. That is, when restoring the contents of the
[0080]
The case where the data in the main memory has parity and can detect a 1-bit error has been described above, but the same configuration is possible when the SEC-DED code is used. In this case, when a 2-bit error is detected when reading data from the main memory, the correct data is reconstructed by the same method as described above, and the failure can be recovered.
[0081]
FIG. 12 shows the configuration of a computer system according to the third embodiment of the present invention.
This computer system employs a
[0082]
That is, the
[0083]
The
[0084]
In this way, the occurrence of an error is detected by dividing the block data group into unit data blocks that can be read and written by one cache line operation and storing the calculated vertical parity data in the
[0085]
Writing block parity data to the
[0086]
The before image buffer (BIB) 17 is used as a log memory for holding update history information of the
[0087]
In this case, the pre-update data block and the block parity data necessary for generating the new block parity data are read out as update history information for storage in the before image buffer (BIB). Can be used in combination, and each can be controlled so that only one access is required.
[0088]
When an error is detected in the read data of the
[0089]
In the third embodiment, generation of block parity data and read / write control of update history information for the before image buffer (BIB) 17 are realized by hardware similar to that of the first embodiment described with reference to FIG. That is, the operation will be described by replacing the
[0090]
Also, the failure recovery process in the third embodiment can be performed in the same procedure as in the first embodiment described with reference to FIGS. That is, when restoring the contents of the
[0091]
The case where the data in the main memory has parity and can detect a 1-bit error has been described above, but the same configuration is possible when the SEC-DED code is used. In this case, when a 2-bit error is detected when reading data from the main memory, the correct data is reconstructed by the same method as described above, and the failure can be recovered.
[0092]
In the above description, in any embodiment, the before-update data and the corresponding error correction redundant code (ECC, vertical parity, block parity) are simultaneously written in the before image buffer (BIB) 17. However, the redundant code may be performed when the
[0093]
【The invention's effect】
As described above, according to the present invention, a memory subsystem having an error correction function can be constructed with additional hardware while using resources such as an existing memory with parity as it is. A high computer system can be realized. In addition, processing can be continued even when a memory failure occurs that cannot be recovered by the checkpoint restart method using log memory, and sufficient fault-tolerant performance is achieved with less hardware without duplicating memory. Can be realized.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a computer system according to a first embodiment of the present invention.
FIG. 2 is a view for explaining an error correction code writing operation to a redundant code memory in the system according to the first embodiment;
FIG. 3 is a view for explaining an update history information writing operation to a BIB memory in the system according to the first embodiment;
FIG. 4 is a view for explaining the restoration operation of the main memory and the redundant code memory in the system according to the first embodiment;
FIG. 5 is a block diagram showing a specific hardware configuration employed in the system of the first embodiment.
6 is a timing chart illustrating a series of operations executed in a write-back process from a cache to a main memory in the system of FIG.
7 is a timing chart for explaining a series of operations executed in a writing process for a shared line in a cache in the system of FIG.
FIG. 8 is a flowchart for explaining a first procedure of failure recovery processing executed in the system of FIG. 5;
FIG. 9 is a flowchart for explaining a second procedure of failure recovery processing executed in the system of FIG. 5;
FIG. 10 is a block diagram showing a configuration of a computer system according to a second embodiment of the present invention.
FIG. 11 is a view for explaining the generation principle of vertical parity data in the system of the second embodiment;
FIG. 12 is a block diagram showing a configuration of a computer system according to a third embodiment of the present invention.
[Explanation of symbols]
DESCRIPTION OF
Claims (7)
キャッシュメモリと、
前記バスと前記メインメモリとの間に設けられ、前記メインメモリを制御するメモリコントローラと、
前記メインメモリに対するリードライトアクセスの単位となる番地それぞれに対応して設けられた複数の記憶領域を有し、各記憶領域内にその記憶領域に対応する前記メインメモリの番地に格納されているデータの一部に生じた誤りを訂正可能な冗長コードを保持する冗長コードメモリと、
前記バスと前記冗長コードメモリとの間に設けられ、前記冗長コードメモリを制御する制御装置であって、前記バス上に発行されるバストランザクションを監視し、前記キュッシュメモリから前記メインメモリへのライトバックが実行されるときに、前記バス上のデータの値からそのデータに対応する冗長コードを生成し、その冗長コードを前記単位データの書き込み番地に対応する前記冗長コードメモリの記憶領域に格納する制御装置と、
前記メインメモリからのデータ読み出し時にその読み出しデータのデータエラーが前記メモリコントローラによるパリティのチェックによって検出された場合、前記読み出しデータと当該読み出しデータに対応する前記冗長コードメモリに格納された冗長コードとから正しいデータを再構成する誤り訂正手段とを具備することを特徴とするコンピュータシステム。In a computer system having one or more CPUs and a main memory with parity that is connected to the CPUs via a bus and stores data with added parity ,
Cache memory,
A memory controller that is provided between the bus and the main memory and controls the main memory;
Data having a plurality of storage areas provided corresponding to each address serving as a unit of read / write access to the main memory , and stored in the address of the main memory corresponding to the storage area in each storage area a redundant code memory for holding a correctable redundancy code error occurring in a part of,
A control device that is provided between the bus and the redundant code memory and controls the redundant code memory, monitors a bus transaction issued on the bus, and writes data from the cache memory to the main memory When back-up is executed, a redundant code corresponding to the data is generated from the data value on the bus, and the redundant code is stored in the storage area of the redundant code memory corresponding to the unit data write address. A control device;
When a data error in the read data is detected by the memory controller when the data is read from the main memory, the read data and the redundant code stored in the redundant code memory corresponding to the read data are used. A computer system comprising: error correction means for reconstructing correct data .
前記制御手段は、前記CPUによる前記メインメモリに対するデータ書き込みが実行される前に、データ書き込みが実行される番地に対応する前記メインメモリの更新前データおよびその更新前データに対応する冗長コードを前記メインメモリおよび前記冗長コードメモリからそれぞれ読み出し、それら更新前データおよび冗長コードを前記更新履歴情報として前記ログメモリに格納する手段を含み、The control means, before executing the data write to the main memory by the CPU, the pre-update data of the main memory corresponding to the address where the data write is executed and the redundant code corresponding to the pre-update data Means for respectively reading from the main memory and the redundant code memory, storing the pre-update data and the redundant code in the log memory as the update history information,
前記メインメモリの内容を障害発生前の状態に復元することが必要な障害が発生したとき、前記ログメモリに格納されている各更新履歴情報を構成する更新前データおよび冗長コードを前記メインメモリおよび前記冗長コードメモリにそれぞれ書き戻して、前記メインメモリを障害発生前の状態に復元すると共に、前記冗長コードメモリの内容を前記復元されたメインメモリの内容に対応する状態に戻す手段をさらに具備することを特徴とする請求項1記載のコンピュータシステム。When a failure that requires restoring the contents of the main memory to the state before the failure occurs, the pre-update data and redundant code constituting each update history information stored in the log memory are stored in the main memory and Rewriting to the redundant code memory to restore the main memory to a state before the occurrence of a failure, and further to returning the contents of the redundant code memory to a state corresponding to the restored contents of the main memory The computer system according to claim 1.
前記CPUによる前記キャッシュメモリに対するデータ書き込みが実行されたとき、そのデータ書き込みが実行された番地に対応する前記メインメモリの更新前データと、それに対応する冗長コードを前記メインメモリおよび前記冗長コードメモリからそれぞれ読み出し、それら更新前データおよび冗長コードを前記更新履歴情報として前記ログメモリに格納することを特徴とする請求項2記載のコンピュータシステム。When data is written to the cache memory by the CPU, the pre-update data of the main memory corresponding to the address where the data is written and the redundant code corresponding to the data are updated from the main memory and the redundant code memory. 3. The computer system according to claim 2, wherein each of the data is read and the pre-update data and redundant code are stored in the log memory as the update history information.
キャッシュメモリと、Cache memory,
前記バスと前記メインメモリとの間に設けられ、前記メインメモリを制御するメモリコントローラと、A memory controller that is provided between the bus and the main memory and controls the main memory;
前記メインメモリに対するリードライトアクセスの単位となる番地それぞれに対応してCorresponding to each address as a unit of read / write access to the main memory 設けられた複数の記憶領域を有し、各記憶領域内にその記憶領域に対応する前記メインメモリの番地に格納されているデータの一部に生じた誤りを訂正可能な冗長符号を保持する冗長コードメモリと、A redundancy having a plurality of storage areas provided and holding a redundancy code capable of correcting an error occurring in a part of the data stored in the address of the main memory corresponding to the storage area in each storage area Code memory,
前記メインメモリの更新履歴情報を格納するログメモリと、A log memory for storing update history information of the main memory;
前記バス、前記冗長コードメモリおよび前記ログメモリに接続され、前記冗長コードメモリおよび前記ログメモリを制御する制御装置であって、前記バス上に発行されるバストランザクションを監視し、前記キュッシュメモリから前記メインメモリへのライトバックが実行されるときに、前記バス上のデータの値からそのデータに対応する冗長コードを生成し、その冗長コードを前記単位データの書き込み番地に対応する前記冗長コードメモリの記憶領域に格納する手段と、前記CPUによる前記キャッシュメモリに対するデータ書き込みが実行されたとき、そのデータ書き込みが実行された番地に対応する前記メインメモリの更新前データと、それに対応する冗長コードを前記メインメモリおよび前記冗長コードメモリからそれぞれ読み出し、それら更新前データおよび冗長コードを前記更新履歴情報として前記ログメモリに格納する手段とを含む制御装置と、A controller connected to the bus, the redundant code memory, and the log memory to control the redundant code memory and the log memory, and monitors a bus transaction issued on the bus; When write back to the main memory is executed, a redundant code corresponding to the data is generated from the value of the data on the bus, and the redundant code is stored in the redundant code memory corresponding to the unit data write address. Means for storing in a storage area, and when data write to the cache memory by the CPU is executed, the pre-update data of the main memory corresponding to the address where the data write is executed, and a redundant code corresponding thereto Read from main memory and redundant code memory respectively , A control device and means for storing the log memory them pre-update data and the redundant code as the update history information,
前記メインメモリからのデータ読み出し時にその読み出しデータのデータエラーが前記メモリコントローラによるパリティのチェックによって検出された場合、前記読み出しデータと当該読み出しデータに対応する前記冗長コードメモリに格納された冗長コードとから正しいデータを再構成し、当該再構成されたデータを前記メインメモリに書き込む誤り訂正手段と、If a data error in the read data is detected by the memory controller when reading data from the main memory, the read data and the redundant code stored in the redundant code memory corresponding to the read data are used. Error correcting means for reconstructing correct data and writing the reconstructed data into the main memory;
前記メインメモリの内容を障害発生前の状態に復元することが必要な障害が発生したとき、前記ログメモリに格納されている各更新履歴情報を構成する更新前データおよび冗長コードを前記メインメモリおよび前記冗長コードメモリにそれぞれ書き戻して、前記メインメモリを障害発生前の状態に復元すると共に、前記冗長コードメモリの内容を前記復元されたメインメモリの内容に対応する状態に戻す手段とを具備することを特徴とするコンピュータシステム。When a failure that requires restoring the contents of the main memory to the state before the failure occurs, the pre-update data and redundant code constituting each update history information stored in the log memory are stored in the main memory and Means for respectively writing back to the redundant code memory to restore the main memory to the state before the failure, and to return the contents of the redundant code memory to a state corresponding to the contents of the restored main memory. A computer system characterized by that.
キャッシュメモリと、Cache memory,
前記バスと前記メインメモリとの間に設けられ、前記メインメモリを制御するメモリコントローラと、A memory controller that is provided between the bus and the main memory and controls the main memory;
前記メインメモリの連続アクセスされる複数のデータ列から構成される単位データブロックそれぞれに対応して設けられた複数の記憶領域を有し、各記憶領域内に、その記憶領域に対応する単位データブロックに属する複数のデータ列それぞれの同一ビット位置についての垂直パリティデータを保持する垂直パリティメモリと、A unit data block corresponding to the storage area in each storage area, the storage area having a plurality of storage areas provided corresponding to each unit data block composed of a plurality of continuously accessed data strings in the main memory; A vertical parity memory that holds vertical parity data for the same bit position of each of a plurality of data strings belonging to
前記バスと前記垂直パリティメモリとの間に設けられ、前記垂直パリティメモリを制御する制御装置であって、前記バス上に発行されるバストランザクションを監視し、前記キュッシュメモリから前記メインメモリに対する単位データブロックのライトバックが実行されるときに、前記バス上の単位データブロックの値からその単位データブロックに対応する前記垂直パリティデータを生成し、その垂直パリティデータを前記単位データブロックに対応する前記垂直パリティメモリの記憶領域に格納する制御装置と、A control device that is provided between the bus and the vertical parity memory and controls the vertical parity memory, monitors a bus transaction issued on the bus, and unit data from the cache memory to the main memory When block write-back is executed, the vertical parity data corresponding to the unit data block is generated from the value of the unit data block on the bus, and the vertical parity data corresponding to the unit data block is generated. A controller for storing in a storage area of the parity memory;
前記メインメモリからのデータ読み出し時にその読み出しデータのデータエラーが前記メモリコントローラによるパリティのチェックによって検出された場合、そのデータエラーが検出されたデータが属する単位データブロックと、その単位データブロックに対応する前記垂直パリティメモリの垂直パリティデータとから正しい単位データブロックを再構成する手段とを具備することを特徴とするコンピュータシステム。When a data error in the read data is detected by the parity check by the memory controller at the time of reading data from the main memory, the unit data block to which the data in which the data error is detected belongs and the unit data block A computer system comprising means for reconstructing a correct unit data block from the vertical parity data of the vertical parity memory.
前記メインメモリからのデータ読み出し時にその読み出しデータのデータエラーが前記メモリコントローラによるパリティのチェックによって検出された場合、前記読み出しデータと当該読み出しデータに対応する前記冗長コードメモリに格納された冗長コードとから正しいデータを再構築し、When a data error in the read data is detected by the memory controller when the data is read from the main memory, the read data and the redundant code stored in the redundant code memory corresponding to the read data are used. Rebuild the correct data,
当該再構築されたデータを前記メインメモリに書き込むことを特徴とする障害回復方法。A failure recovery method comprising writing the reconstructed data into the main memory.
前記メインメモリの内容を障害発生前の状態に復元することが必要な障害が発生したとき、前記ログメモリに格納されている各更新履歴情報を構成する更新前データおよび冗長コードを前記メインメモリおよび前記冗長コードメモリにそれぞれ書き戻して、前記メインメモリを障害発生前の状態に復元すると共に、前記冗長コードメモリの内容を前記復元されたメインメモリの内容に対応する状態に戻すことを特徴とする請求項6記載の障害回復方法。When a failure that requires restoring the contents of the main memory to the state before the failure occurs, the pre-update data and redundant code constituting each update history information stored in the log memory are stored in the main memory and Each of the redundant code memories is written back to restore the main memory to a state before the failure, and the contents of the redundant code memory are restored to a state corresponding to the restored contents of the main memory. The failure recovery method according to claim 6.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15124996A JP3788822B2 (en) | 1996-06-12 | 1996-06-12 | Computer system and failure recovery method in the system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15124996A JP3788822B2 (en) | 1996-06-12 | 1996-06-12 | Computer system and failure recovery method in the system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09330303A JPH09330303A (en) | 1997-12-22 |
| JP3788822B2 true JP3788822B2 (en) | 2006-06-21 |
Family
ID=15514539
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15124996A Expired - Fee Related JP3788822B2 (en) | 1996-06-12 | 1996-06-12 | Computer system and failure recovery method in the system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3788822B2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10320274A (en) * | 1997-03-19 | 1998-12-04 | Toshiba Corp | Cache flush device, computer system equipped with the device, and recording medium |
| JP2002149451A (en) * | 2000-11-15 | 2002-05-24 | Idec Izumi Corp | Information transfer device |
| JP2009157756A (en) * | 2007-12-27 | 2009-07-16 | Toshiba Corp | Information processing apparatus and data recovery method |
| JP2009169747A (en) * | 2008-01-17 | 2009-07-30 | Toshiba Corp | Information processing apparatus and data recovery method |
| JP2011060217A (en) * | 2009-09-14 | 2011-03-24 | Toshiba Corp | Data storage apparatus, and data writing/reading method |
-
1996
- 1996-06-12 JP JP15124996A patent/JP3788822B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH09330303A (en) | 1997-12-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5379417A (en) | System and method for ensuring write data integrity in a redundant array data storage system | |
| US5325519A (en) | Fault tolerant computer with archival rollback capabilities | |
| JP3129732B2 (en) | Storage array with copy-back cache | |
| US5613059A (en) | On-line restoration of redundancy information in a redundant array system | |
| US5761705A (en) | Methods and structure for maintaining cache consistency in a RAID controller having redundant caches | |
| JP3283530B2 (en) | Validation system for maintaining parity integrity in disk arrays | |
| EP0889409B1 (en) | Mirrored write-back cache module warmswap | |
| US6785783B2 (en) | NUMA system with redundant main memory architecture | |
| US10452498B2 (en) | Fault tolerance for persistent main memory | |
| US6868506B2 (en) | Data recovery method and apparatus | |
| EP0802485B1 (en) | Host-based RAID-5 and NV-RAM integration and method therefor | |
| US10896088B2 (en) | Metadata recovery mechanism for page storage | |
| JP3851093B2 (en) | Data transfer method and data processing system | |
| US5632013A (en) | Memory and system for recovery/restoration of data using a memory controller | |
| US7076686B2 (en) | Hot swapping memory method and system | |
| CN110941397B (en) | Node mode adjustment method and related components when storage cluster BBU fails | |
| JP3788822B2 (en) | Computer system and failure recovery method in the system | |
| CN115373584A (en) | Write request completion notification in response to write data locality enhancement | |
| RU2327236C2 (en) | Random access memory with high extent of fault tolerance | |
| JP3450132B2 (en) | Cache control circuit | |
| JPH10240620A (en) | Computer system and checkpoint image storage method in the system | |
| JPH04127242A (en) | Automatic volume correction method using parity data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040517 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050405 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050527 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060322 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060324 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090407 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140407 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |