JPH0887424A - Electronic computer - Google Patents

Electronic computer

Info

Publication number
JPH0887424A
JPH0887424A JP6221632A JP22163294A JPH0887424A JP H0887424 A JPH0887424 A JP H0887424A JP 6221632 A JP6221632 A JP 6221632A JP 22163294 A JP22163294 A JP 22163294A JP H0887424 A JPH0887424 A JP H0887424A
Authority
JP
Japan
Prior art keywords
address
memory
data
parity
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
JP6221632A
Other languages
Japanese (ja)
Inventor
Kenji Minagawa
健二 皆川
Yukimasa Miyamoto
幸昌 宮本
Hisashi Mogi
久 茂木
Kuninori Tanaka
邦典 田中
Shigeaki Iwasa
繁明 岩佐
Hiroshi Sakai
浩 酒井
Takashi Omizo
孝 大溝
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 JP6221632A priority Critical patent/JPH0887424A/en
Publication of JPH0887424A publication Critical patent/JPH0887424A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE: To provide the electronic computer which can recover from a fault at a check point with small memory capacity. CONSTITUTION: Plural processors(PE) 103 and plural storage parts having buffer memories 101 and 102 are mutually connected and one address in one storage part forms a group with one address in each of other storage parts; and the electronic computer is provided with a means which generates parity on the basis of data in corresponding addresses of other storage parts in the same group except one storage part and stores the parity in the corresponding address of the one storage part, a means which stores the buffer 101 of the storage part with data in the write address of the corresponding memory 120 and the difference and address of write data and also writes the write data in the address of the memory when a PE 103 outputs a write request including the write data and address to one of the storage parts, and a means which updates corresponding parity on the basis of the difference and address stored in the buffer 101 when a check point is generated.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、電子計算機に係わり、
特に所定のタイミングでチェックポイントを作成し障害
が起きても短時間での復帰が可能な電子計算機に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic computer,
In particular, the present invention relates to an electronic computer which can create a checkpoint at a predetermined timing and can recover in a short time even if a failure occurs.

【0002】[0002]

【従来の技術】近年の急速な情報処理技術の進歩にとも
なって、大量のデータを速く処理したいと言う要求ばか
りでなく、高い信頼性への要求がある。高い信頼性を持
つシステムとは、何か障害が発生した場合でも、処理し
ているデータの一貫性が常に保たれていることが保証さ
れ、障害から復旧した後にそれまでの処理が継続できる
ようなシステムである。しかも、性能低下を抑えるべ
く、短時間で処理を再開できることが要求される。
2. Description of the Related Art With rapid progress of information processing technology in recent years, there is a demand for high reliability as well as a demand for fast processing of a large amount of data. A highly reliable system guarantees that the data being processed will always be consistent in the event of any failure, and that it can continue its operations after recovery from the failure. System. Moreover, it is required that the processing can be restarted in a short time in order to suppress the performance deterioration.

【0003】このような高信頼が要求されるフォールト
トレラントシステムでは、何らかの障害が発生してもデ
ータの一貫性が保証され、かつ、システムがダウンしな
いようにしておかなければならない。そのために、フォ
ールトトレラントシステムでは、所定のタイミングで故
障検出を行うとともに、故障を検出すると正常な状態へ
復旧させる処理を行う。フォールトトレラントシステム
の故障検出ではECCを用いたり、CPUを二重化して
結果を比較する方法等がある。故障検出後に正常な状態
へ復旧させる手段としてはチェックポイント方式(参考
文献:“Processor− and Memory
−Based Chekpoint and Roll
back Recovery”、COMPUTER、F
eb.1993、p22−31)が知られている。
In such a fault-tolerant system requiring high reliability, it is necessary to ensure data consistency even if some kind of failure occurs and prevent the system from going down. Therefore, in the fault-tolerant system, the failure detection is performed at a predetermined timing, and when the failure is detected, the processing to restore the normal state is performed. There are methods such as using an ECC for detecting a fault in a fault tolerant system and comparing the results by duplicating the CPUs. A checkpoint method (reference: “Processor-and Memory”) is used as a means for restoring a normal state after a failure is detected.
-Based Cheekpoint and Roll
back Recovery ”, COMPUTER, F
eb. 1993, p22-31) is known.

【0004】チェックポイント方式では、ある間隔でメ
モリの状態を保存しておく。このメモリの状態を保存す
る操作を「チェックポイントを生成する」と言う。雑音
等による一時故障が発生した場合には、直前にチェック
ポイントを生成した時点から再実行することにより、そ
の障害を救うことができる。ハードウェア破壊等の永久
故障が発生した場合には、何らかの故障処理、例えば、
異常が起きたCPU上での処理を他の正常なCPUに移
行させる等の処理を施し、直前にチェックポイントを生
成した時点から再実行する。メモリの状態を保存するた
めには、スペアのメモリを使用し、ある間隔で本来のメ
モリからスペアのメモリにコピーすることが考えられ
る。
In the checkpoint method, the state of the memory is saved at certain intervals. The operation of saving the state of this memory is called "to generate a checkpoint". When a temporary failure due to noise or the like occurs, the failure can be saved by re-executing from the time when the checkpoint was generated immediately before. When a permanent failure such as hardware destruction occurs, some kind of failure processing, for example,
Processing such as shifting the processing on the CPU in which the abnormality has occurred to another normal CPU is performed, and the processing is re-executed from the time when the checkpoint was generated immediately before. In order to save the memory state, it is conceivable to use a spare memory and copy from the original memory to the spare memory at certain intervals.

【0005】プロセッサ・キャッシュ・レベル方式で
は、コピーバック型キャッシュのリプレースが起きない
かぎりは、ライトデータはキャッシュにのみ書かれて、
メモリには反映しないという性質を利用している。すな
わちこの方式では、まずCPUレジスタをメモリに保存
し、キャッシュ・フラッシュを行うことによってメモリ
にチェックポイントを生成する。故障が起こると、CP
Uレジスタをメモリよりロードしキャッシュを無効化す
ることにより回復ができる。なぜならば、キャッシュを
無効化した後にCPUからデータをアクセスすると、直
前のチェックポイントのデータイメージが形成されてい
るメモリからデータをフェッチするからである。
In the processor cache level method, write data is written only in the cache unless the copyback type cache is replaced.
It uses the property that it is not reflected in memory. That is, in this method, first, the CPU register is stored in the memory, and the cache flush is performed to generate the checkpoint in the memory. When a failure occurs, CP
Recovery is possible by loading the U register from memory and invalidating the cache. This is because when the CPU accesses the data after invalidating the cache, the data is fetched from the memory in which the data image of the immediately preceding checkpoint is formed.

【0006】さらに、チェックポイント生成のためのキ
ャッシュ・フラッシュを行っている最中に障害が起こる
ことも考えられる。この場合は、直前のチェックポイン
ト時のデータが部分的に破壊されるので、前述の方式で
は回復不可能となる問題点がある。そこで、メモリを二
重化し、キャッシュ・フラッシュによって、もし、一つ
のメモリバンクの書き込みの最中に故障が生じても、も
う一つのメモリバンクにより回復できる方法も提案され
ている。この方式ではまず、キャッシュ・フラッシュに
よりメモリバンクAにデータを書き込む。次に、再び、
キャッシュ・フラッシュによりメモリバンクBにデータ
を書き込む。これにより、もし、メモリバンクAにデー
タを書いている最中に障害が生じても、メモリバンクB
が直前のチェックポイントのデータを保持しているので
回復可能である。もし、メモリバンクBにデータを書い
ている最中に障害が生じたら、メモリバンクAのデータ
をメモリバンクBにコピーして、しかるべき故障解析を
行い処理を続行することができる。しかしながら、この
ようにメモリを二重化する方式では、実際に使用できる
メモリは実装されているメモリの半分しか使用できない
という欠点がある。
Further, a failure may occur during the cache flush for generating the checkpoint. In this case, the data at the last checkpoint is partially destroyed, so that there is a problem that the above-mentioned method cannot recover the data. Therefore, a method has been proposed in which the memory is duplicated and even if a failure occurs during writing of one memory bank by the cache flush, another memory bank can recover the failure. In this method, first, data is written in the memory bank A by cache flash. Then again
Write data to memory bank B by cache flash. As a result, even if a failure occurs while writing data in the memory bank A, the memory bank B
Holds the data of the previous checkpoint and can be recovered. If a failure occurs while writing data in the memory bank B, the data in the memory bank A can be copied to the memory bank B, an appropriate failure analysis can be performed, and the processing can be continued. However, such a dual memory system has a drawback in that only half of the mounted memory can be actually used.

【0007】プロセッサ・キャッシュ・レベル方式の他
の問題点としては、キャッシュのリプレースが必要とな
るたびに、チェックポイントを生成することである。こ
れは、ダーティなキャッシュラインが、直前のチェック
ポイントからのデータの変化分として記録されているの
で、それらのキャッシュラインがメモリに追い出される
と回復不可能になるためである。特公平6−19722
号公報では、スタックメモリ(FIFOまたは連想メモ
リ)を用いてライトデータを一時的に保存し、チェック
ポイント生成時に二重化されたメモリに書き込む方式が
提案されているが、メモリの使用量が多いという問題点
がある。また、スタックメモリを用いたチェックポイン
ト生成方式では、スタックメモリがオーバーフローした
場合、正しいチェックポイントを生成することができな
くなる欠点がある。
Another problem with the processor cache level scheme is that it creates a checkpoint each time a cache replacement is required. This is because dirty cache lines are recorded as the amount of change in data from the immediately preceding checkpoint, and are unrecoverable when those cache lines are flushed to memory. Japanese Patent Publication 6-19722
In Japanese Patent Laid-Open Publication No. 2004-242242, a method is proposed in which write data is temporarily stored using a stack memory (FIFO or associative memory) and written to a duplicated memory at the time of checkpoint generation, but the problem is that the memory usage is large. There is a point. Further, the checkpoint generation method using the stack memory has a drawback that a correct checkpoint cannot be generated when the stack memory overflows.

【0008】[0008]

【発明が解決しようとする課題】このように、従来のプ
ロセッサ・キャッシュ・レベル方式を適用した電子計算
機では、フラッシュの最中に故障を起こすと回復不可能
になる問題があった。また、メモリを二重化する方式を
適用したものでは、実際に使用できるメモリは実装され
ているメモリの半分しか使用できないという問題点を持
っていた。
As described above, in the electronic computer to which the conventional processor cache level system is applied, there is a problem that recovery cannot be performed if a failure occurs during the flash. In addition, there is a problem that the memory that can be actually used can use only half of the mounted memory in the method in which the method of duplicating the memory is applied.

【0009】また、スタックメモリを用いたチェックポ
イント生成方式では、メモリの使用量が多いとともに、
スタックメモリがオーバーフローした場合、正しいチェ
ックポイントを生成することができなくなる欠点があっ
た。
Further, in the checkpoint generation method using the stack memory, the amount of memory used is large and
If the stack memory overflows, it is impossible to generate a correct checkpoint.

【0010】本発明は、上記事情を考慮してなされたも
ので、少ないメモリの使用量で、チェックポイントから
の故障回復ができる電子計算機を提供することを目的と
する。
The present invention has been made in consideration of the above circumstances, and an object of the present invention is to provide an electronic computer capable of recovering from a failure from a checkpoint with a small memory usage amount.

【0011】[0011]

【課題を解決するための手段】第1の発明は、複数のプ
ロセッサと、バッファ領域およびメモリ領域を有する複
数の記憶部とを相互に接続して構成され、1つの記憶部
のメモリ領域のうち1つのアドレスは、他の記憶部のメ
モリ領域のうち夫々1つのアドレスと1つのメモリグル
ープを形成する電子計算機であって、各記憶部のメモリ
領域のうち同一のメモリグループに属するアドレスにつ
いて、いずれか1つの記憶部を除く他の複数の記憶部の
メモリ領域のうちの該当するアドレスに格納されたデー
タを基にしてパリティを生成し、該1つの記憶部のメモ
リ領域の該当するアドレスに該パリティを格納する手段
と、いずれかの前記プロセッサからいずれかの前記記憶
部の有するメモリ領域に対して、書込みデータと書込み
アドレスを含むライト要求が出力された場合に、該メモ
リ領域中のデータ書込みを行うアドレスに記憶されたデ
ータを読出し、この読出したデータと該書込みデータと
の間の差分を生成し、この差分と該アドレスを組にして
該記憶部の有する前記バッファ領域に格納するとともに
該書込みデータを該メモリ領域中の該アドレスに書込む
手段と、チェックポイントを生成する際に、前記バッフ
ァに格納された前記差分および前記アドレスに基づいて
対応する前記パリティを更新する手段とを備えたことを
特徴とする。
According to a first aspect of the present invention, a plurality of processors and a plurality of storage units having a buffer area and a memory area are connected to each other, and a memory area of one storage unit is One address is an electronic computer that forms one memory group with one address in the memory areas of the other storage units, and one of the addresses belonging to the same memory group in the memory area of each storage unit is Or a parity is generated based on data stored at a corresponding address in the memory areas of a plurality of storage sections other than the one storage section, and the parity is generated at a corresponding address of the memory area of the one storage section. A means for storing parity, and a memory containing write data and a write address from any of the processors to a memory area of any of the storage sections. When a request for output is output, the data stored in the address in the memory area where the data is written is read, a difference between the read data and the write data is generated, and the difference and the address are Means for storing the write data in the buffer area of the storage unit and writing the write data to the address in the memory area, and the difference stored in the buffer and the difference when the checkpoint is generated. Means for updating the corresponding parity based on the address.

【0012】好ましくは、いずれかの前記バッファの残
量が所定の値に達したことによりチェックポイントを生
成することを特徴とする。第2の発明は、複数のプロセ
ッサと、バッファ領域およびメモリ領域を有する複数の
記憶部とを相互に接続して構成され、1つの記憶部のメ
モリ領域のうち1つのアドレスは、他の記憶部のメモリ
領域のうち夫々1つのアドレスと1つのメモリグループ
を形成する電子計算機であって、各記憶部のメモリ領域
のうち同一のメモリグループに属するアドレスについ
て、いずれか1つの記憶部を除く他の複数の記憶部のメ
モリ領域のうちの該当するアドレスに格納されたデータ
を基にしてパリティを生成し、該1つの記憶部のメモリ
領域の該当するアドレスに該パリティを格納する手段
と、いずれかの前記プロセッサからいずれかの前記記憶
部の有するメモリ領域に対して、書込みデータと書込み
アドレスを含むライト要求が出力された場合に、該メモ
リ領域中のデータ書込みを行うアドレスに記憶されたデ
ータを読出し、この読出したデータと該アドレスを組に
して該記憶部の有する前記バッファ領域に格納するとと
もに該書込みデータを該メモリ領域中の該アドレスに書
込む手段と、前記バッファに格納された前記読出したデ
ータと前記書込みデータとの差分を生成し、この生成し
た差分と前記バッファに格納された前記アドレスに基づ
いて対応するパリティを更新する手段とを備えたことを
特徴とする。
Preferably, the checkpoint is generated when the remaining amount of any one of the buffers reaches a predetermined value. A second aspect of the invention is configured by interconnecting a plurality of processors and a plurality of storage units having a buffer area and a memory area, wherein one address in the memory area of one storage unit is the other storage section. Of the memory areas of the respective memory units, each of which has one address and one memory group. One of a means for generating a parity based on data stored at a corresponding address of the memory areas of the plurality of storage units, and storing the parity at the corresponding address of the memory area of the one storage unit; When a write request including write data and a write address is output from the processor to the memory area of any one of the storage units, Data stored in an address in the memory area where data is written is read, the read data and the address are paired and stored in the buffer area of the storage unit, and the write data is stored in the memory area. Means for writing to an address, and generating a difference between the read data and the write data stored in the buffer, and updating a corresponding parity based on the generated difference and the address stored in the buffer. And means.

【0013】第3の発明は、複数のプロセッサと、バッ
ファ領域およびメモリ領域を有する複数の記憶部とを相
互に接続して構成され、1つの記憶部のメモリ領域のう
ち1つのアドレスは、他の記憶部のメモリ領域のうち夫
々1つのアドレスと1つのメモリグループを形成する電
子計算機であって、各記憶部のメモリ領域のうち同一の
メモリグループに属するアドレスについて、いずれか1
つの記憶部を除く他の複数の記憶部のメモリ領域のうち
の該当するアドレスに格納されたデータを基にしてパリ
ティを生成し、該1つの記憶部のメモリ領域の該当する
アドレスに該パリティを格納する手段と、いずれかの前
記プロセッサからいずれかの前記記憶部の有するメモリ
領域に対して、書込みデータと書込みアドレスを含むラ
イト要求が出力された場合に、該メモリ領域中のデータ
書込みを行うアドレスに記憶されたデータを読出し、こ
の読出したデータと該アドレスを組にして該記憶部の有
する前記バッファ領域に格納するとともに該書込みデー
タを該メモリ領域中の該アドレスに書込む手段と、前記
ライト要求に応答して、該ライト要求に含まれる前記書
込みアドレス対応するパリティを格納した他の記憶部の
メモリ領域中のアドレス記憶されたパリティを読出し、
この読出したパリティと該アドレスを組にして該記憶部
の有する前記バッファ領域に格納するとともに、該ライ
ト要求に含まれる前記書込みデータと該読出したパリテ
ィとの間の差分を生成し、この差分と該アドレスを組に
して該他の記憶部の有する前記バッファ領域に格納する
手段と、チェックポイントを生成する際に、前記他の記
憶部の有する前記バッファ領域に格納された前記差分お
よび前記アドレスと、前記ライト要求が与えられた記憶
部の有する前記バッファ領域に格納された前記読出した
データおよび前記アドレスに基づいて対応する前記パリ
ティを更新する手段とを備えたことを特徴とする。
According to a third aspect of the present invention, a plurality of processors and a plurality of storage units having a buffer area and a memory area are connected to each other, and one address in the memory area of one storage unit is A computer that forms one address and one memory group in each memory area of each storage unit, and one of the addresses belonging to the same memory group in each memory area of each storage unit
A parity is generated based on the data stored at the corresponding address of the memory areas of the plurality of storage sections other than one storage section, and the parity is generated at the corresponding address of the memory area of the one storage section. When a write request including write data and a write address is output from any of the processors and the memory area of any one of the storage units to store the data in the memory area. A means for reading the data stored in the address, storing the read data and the address in the buffer area of the storage unit, and writing the write data to the address in the memory area; In response to the write request, an address in the memory area of another storage unit that stores the parity corresponding to the write address included in the write request. It reads less stored parity,
The read parity and the address are paired and stored in the buffer area of the storage unit, and a difference between the write data included in the write request and the read parity is generated. A means for storing the address in a pair in the buffer area of the other storage section, and a difference and the address stored in the buffer area of the other storage section when generating a checkpoint And a means for updating the corresponding parity based on the read data and the address stored in the buffer area of the storage unit to which the write request is given.

【0014】第4の発明は、複数のプロセッサと、バッ
ファ領域およびメモリ領域を有する複数の記憶部とを相
互に接続して構成され、1つの記憶部のメモリ領域のう
ち1つのアドレスは、他の記憶部のメモリ領域のうち夫
々1つのアドレスと1つのメモリグループを形成する電
子計算機であって、各記憶部のメモリ領域のうち同一の
メモリグループに属するアドレスについて、いずれか1
つの記憶部を除く他の複数の記憶部のメモリ領域のうち
の該当するアドレスに格納されたデータを基にしてパリ
ティを生成し、該1つの記憶部のメモリ領域の該当する
アドレスに該パリティを格納する手段と、いずれかの前
記プロセッサからいずれかの前記記憶部の有するメモリ
領域に対して、書込みデータと書込みアドレスを含むラ
イト要求が出力された場合に、該メモリ領域中のデータ
書込みを行うアドレスに記憶されたデータを読出し、こ
の読出したデータと該アドレスを組にして該記憶部の有
する前記バッファ領域に格納するとともに該書込みデー
タを該メモリ領域中の該アドレスに書込む手段と、前記
ライト要求に応答して、該ライト要求に含まれる前記書
込みアドレス対応するパリティを格納した他の記憶部の
有する前記バッファ領域に、前記書込みデータと対応す
るパリティを格納したアドレスとを組にして格納する手
段と、チェックポイントを生成する際に、前記他の記憶
部の有する前記メモリ領域に格納された前記パリティ、
前記他の記憶部の有する前記バッファ領域に格納された
前記書込みデータおよび前記アドレス、および前記ライ
ト要求が与えられた記憶部の有する前記バッファ領域に
格納された前記読出したデータおよび前記アドレスに基
づいて対応する前記パリティを更新する手段とを備えた
ことを特徴とする。
According to a fourth aspect of the present invention, a plurality of processors and a plurality of storage units having a buffer area and a memory area are connected to each other, and one address in the memory area of one storage unit is A computer that forms one address and one memory group in each memory area of each storage unit, and one of the addresses belonging to the same memory group in each memory area of each storage unit
A parity is generated based on the data stored at the corresponding address of the memory areas of the plurality of storage sections other than one storage section, and the parity is generated at the corresponding address of the memory area of the one storage section. When a write request including write data and a write address is output from any of the processors and the memory area of any one of the storage units to store the data in the memory area. A means for reading the data stored in the address, storing the read data and the address in the buffer area of the storage unit, and writing the write data to the address in the memory area; In response to the write request, the buffer included in another storage unit that stores the parity corresponding to the write address included in the write request In the region, the means for storing the write data and the address storing the corresponding parity in the set, in generating the checkpoint, the parity stored in the memory area having the said other storage unit,
Based on the write data and the address stored in the buffer area of the other storage unit, and the read data and the address stored in the buffer area of the storage unit to which the write request is given Means for updating the corresponding parity.

【0015】一方、第5の発明は、複数のプロセッサ
と、バッファ領域およびメモリ領域を有する複数の記憶
部とを相互に接続して構成され、1つの記憶部のメモリ
領域のうち1つのアドレスは、他の記憶部のメモリ領域
のうち夫々1つのアドレスと1つのメモリグループを形
成する電子計算機であって、各記憶部のメモリ領域のう
ち同一のメモリグループに属するアドレスについて、い
ずれか1つの記憶部を除く他の複数の記憶部のメモリ領
域のうちの該当するアドレスに格納されたデータを基に
してチェックサムを生成し、該1つの記憶部のメモリ領
域の該当するアドレスに該チェックサムを格納する手段
と、いずれかの前記プロセッサからいずれかの前記記憶
部の有するメモリ領域に対して、書込みデータと書込み
アドレスを含むライト要求が出力された場合に、該メモ
リ領域中のデータ書込みを行うアドレスに記憶されたデ
ータを読出し、この読出したデータと該書込みデータと
の間の差分を生成し、この差分と該アドレスを組にして
該記憶部の有する前記バッファ領域に格納するとともに
該書込みデータを該メモリ領域中の該アドレスに書込む
手段と、前記バッファに格納された前記差分および前記
アドレスに基づいて対応する前記チェックサムを更新す
る手段とを備えたことを特徴とする。
On the other hand, a fifth aspect of the present invention is configured by interconnecting a plurality of processors and a plurality of storage units having a buffer area and a memory area, and one address in the memory area of one storage unit is A computer that forms one address and one memory group in the memory areas of the other storage sections, and stores any one of the addresses belonging to the same memory group in the memory areas of the respective storage sections. A checksum is generated based on the data stored in the corresponding address of the memory areas of the plurality of storage sections other than the copy, and the checksum is generated in the corresponding address of the memory area of the one storage section. Means for storing, and a line containing write data and a write address from any of the processors to a memory area of any of the storage units. When a request is output, the data stored in the address for writing data in the memory area is read, a difference between the read data and the write data is generated, and the difference is combined with the address. Means for writing the write data to the address in the memory area and storing the write data in the buffer area of the storage unit, and the corresponding checksum based on the difference and the address stored in the buffer. And means for updating.

【0016】第6の発明は、複数のプロセッサと、バッ
ファ領域およびメモリ領域を有する複数の記憶部とを相
互に接続して構成され、1つの記憶部のメモリ領域のう
ち1つのアドレスは、他の記憶部のメモリ領域のうち夫
々1つのアドレスと1つのメモリグループを形成する電
子計算機であって、各記憶部のメモリ領域のうち同一の
メモリグループに属するアドレスについて、いずれか1
つの記憶部を除く他の複数の記憶部のメモリ領域のうち
の該当するアドレスに格納されたデータを基にしてチェ
ックサムを生成し、該1つの記憶部のメモリ領域の該当
するアドレスに該チェックサムを格納する手段と、いず
れかの前記プロセッサからいずれかの前記記憶部の有す
るメモリ領域に対して、書込みデータと書込みアドレス
を含むライト要求が出力された場合に、該メモリ領域中
のデータ書込みを行うアドレスに記憶されたデータを読
出し、この読出したデータと該アドレスを組にして該記
憶部の有する前記バッファ領域に格納するとともに該書
込みデータを該メモリ領域中の該アドレスに書込む手段
と、前記バッファに格納された前記読出したデータおよ
び前記アドレスと前記メモリ領域に格納された前記書込
みデータに基づいて対応するチェックサムを更新する手
段とを備えたことを特徴とする。
According to a sixth aspect of the present invention, a plurality of processors and a plurality of storage units having a buffer area and a memory area are connected to each other, and one address in the memory area of one storage unit is A computer that forms one address and one memory group in each memory area of each storage unit, and one of the addresses belonging to the same memory group in each memory area of each storage unit
A checksum is generated based on the data stored at the corresponding address of the memory areas of the plurality of storage sections other than one storage section, and the checksum is generated at the corresponding address of the memory area of the one storage section. When a write request including write data and a write address is output to the memory area of any one of the storage units from the means for storing the sum and the one of the processors, data writing in the memory area is performed. A means for reading the data stored at the address for performing the operation, storing the read data and the address in the buffer area of the storage unit as a pair, and writing the write data at the address in the memory area. , Based on the read data and the address stored in the buffer and the write data stored in the memory area Characterized by comprising a means for updating the corresponding checksum.

【0017】[0017]

【作用】本発明では、まず、複数の記憶部(例えばメモ
リボード)のデータ間にパリティの関係を持たせること
により、記憶部のデータあるいは一つの記憶部自体が破
壊されても、その記憶部上のデータの回復を行うことが
できるようにする。これによって、例えば記憶部が破壊
された場合であっても、別のものに交換することによ
り、電子計算機を破壊前のチェックポイントの状態に戻
すことができ、高い信頼性を得ることができる。
According to the present invention, first, by providing a parity relationship between data in a plurality of storage units (for example, memory boards), even if the data in the storage unit or one storage unit itself is destroyed, that storage unit is destroyed. To be able to perform data recovery on. As a result, even if the storage unit is destroyed, the computer can be returned to the checkpoint state before the destruction by replacing the storage unit with another one, and high reliability can be obtained.

【0018】さらに、本発明では、上記構成に加えて、
チェックポイント作成のための処理に、種々の工夫を加
えている。第1の発明では、メモリにデータを書く時に
古いデータと新しいデータの差分とアドレスをバッファ
に取っておく。チェックポイント生成時にバッファの差
分をもとにパリティを更新する。
Furthermore, in the present invention, in addition to the above configuration,
Various ideas have been added to the process for creating checkpoints. In the first invention, when writing data in the memory, the difference between the old data and the new data and the address are stored in the buffer. The parity is updated based on the buffer difference when the checkpoint is generated.

【0019】第2の発明では、メモリにデータを書く時
に、古いデータとアドレスをバッファに取っておく。パ
リティの更新はデータを書き込んだ記憶部より、旧デー
タと新データの差分をパリティ側の記憶部に送り出す。
パリティ側の記憶部では、そのデータの差分によりパリ
ティを更新する。
According to the second aspect of the invention, when writing data in the memory, old data and an address are stored in a buffer. To update the parity, the difference between the old data and the new data is sent from the storage unit that has written the data to the storage unit on the parity side.
The storage unit on the parity side updates the parity based on the difference between the data.

【0020】第3の発明では、メモリにデータを書く時
に、古いデータとアドレスをバッファに取っておき、パ
リティ側の記憶部でもライトデータを受取り、パリティ
とライトデータの差分をパリティに書き戻す。チェック
ポイント生成時に古いデータとパリティの差分をとり、
パリティを更新する。
In the third invention, when writing data in the memory, old data and an address are stored in a buffer, the storage unit on the parity side also receives the write data, and the difference between the parity and the write data is written back to the parity. When the checkpoint is generated, the difference between the old data and the parity is taken,
Update the parity.

【0021】第4の発明では、メモリにデータを書く時
に、古いデータとアドレスをバッファに取っておき、パ
リティ側の記憶部でもライトデータを受取り、パリティ
とライトデータの差分をパリティに書き戻す。チェック
ポイント生成時に、ライトデータと古いデータとパリテ
ィの差分をとり、パリティを更新する。
In the fourth invention, when writing data in the memory, old data and address are stored in a buffer, the storage unit on the parity side also receives the write data, and the difference between the parity and the write data is written back to the parity. At the time of checkpoint generation, the parity is updated by taking the difference between the write data and the old data and the parity.

【0022】第5および第6の発明では、第1および第
2の発明において、パリティの代わりに、チェックサム
を利用したものである。ここで、本発明では、あるデー
タ群において、データが、新データへと変化した場合、
パリティの差分(排他的論理和;xor)は、データの
差分に等しいという性質を利用している。データA,
B,Cに対し、それらのデータのパリティPについての
関係式は、 P=A xor B xor C データAがA´に変化し、A´,B,Cとそれらパリテ
ィP´についての関係式は、 P´=A´ xor B xor C 上の二つの式の右辺と左辺のxorをとると、 P xor P´=(A xor B xor C)
xor (A´ xor B xor C) となる。xor演算では交換則が成り立つので、 P xor P´=(A xor A´) xor
(B xor B) xor (C xor C) B xor B=0、C xor C=0となることよ
り、 P xor P´=A xor A´ が導ける。これから、パリティの差分(xor)は、デ
ータの差分ということがいえる。
In the fifth and sixth inventions, a checksum is used instead of the parity in the first and second inventions. Here, in the present invention, in a certain data group, when the data changes to new data,
Parity difference (exclusive OR; xor) utilizes the property of being equal to data difference. Data A,
For B and C, the relational expression for the parity P of those data is: P = A xor B xor C The data A changes to A ′, and the relational expression for A ′, B, C and their parity P ′ is , P ′ = A ′ xor B xor C If the xor of the right side and the left side of the above two expressions is taken, P xor P ′ = (A xor B xor C)
xor (A 'xor B xor C). Since the exchange rule is established in the xor operation, P xor P ′ = (A xor A ′) xor
Since (B xor B) xor (C xor C) B xor B = 0 and C xor C = 0, P xor P ′ = A xor A ′ can be derived. From this, it can be said that the parity difference (xor) is the data difference.

【0023】したがって、障害が発生した場合でも、本
発明によれば、保存しておいた差分とデータ/パリティ
を用いて、容易に直前のチェックポイントまで戻ること
ができる。
Therefore, according to the present invention, even if a failure occurs, the stored difference and data / parity can be used to easily return to the immediately preceding checkpoint.

【0024】ここで、従来はチェックポイントを生成す
るためにデータを格納するメモリ容量と同容量のメモリ
を必要としていたが、本発明によれば、データ用として
容量Nのメモリを用いる場合、パリティ用メモリ容量も
含めてメモリ用容量として全部でN/(N−1)だけで
チェックポイントを生成することが可能となる。すなわ
ち、システム中のメモリ容量のごく一部だけをパリティ
領域に割り当てることによって実装したメモリ容量を効
率的に使用し、かつ高い信頼性を得ることができる。ま
た、あるプロセッサでバッファからメモリにデータを書
き戻す度ごとに全プロセッサでチェックポイントを作成
するといったオーバーヘッドを回避できる。
Here, conventionally, a memory having the same capacity as the memory capacity for storing the data is required to generate the checkpoint, but according to the present invention, when the memory having the capacity N is used for the data, the parity is used. It is possible to generate a checkpoint with only N / (N-1) in total as the memory capacity including the memory capacity for memory. That is, it is possible to efficiently use the mounted memory capacity by allocating only a part of the memory capacity in the system to the parity area and to obtain high reliability. In addition, it is possible to avoid the overhead of creating checkpoints in all the processors each time data is written back from the buffer to the memory in a certain processor.

【0025】また、本発明によれば、バッファの容量を
調整することにより、チェックポイント生成の頻度を容
易に加減することが可能になる。この点は、システムに
要求される処理能力と障害時のペナルティによって調整
することができ、目的に合わせたシステムを容易に構築
することができる。
Further, according to the present invention, the frequency of checkpoint generation can be easily adjusted by adjusting the capacity of the buffer. This point can be adjusted depending on the processing capacity required for the system and the penalty at the time of failure, and the system can be easily constructed according to the purpose.

【0026】また、チェックポイントの作成はバッファ
がオーバーフローなどした時のみ行うようにすることが
できるので、その後はバッファが空の状態で実行が再開
され、バッファからデータが洩れて不完全なチェックポ
イントを作ることを防止できる。また、バスの混雑を軽
減することができる。
Since the checkpoint can be created only when the buffer overflows, the execution is restarted after the buffer is empty, data leaks from the buffer, and an incomplete checkpoint occurs. Can be prevented. In addition, bus congestion can be reduced.

【0027】また、チェックポイント生成処理をCPU
が行うことにより、メモリをマスタとして作る必要がな
くなるため、回路の規模を小さくすることができる。な
お、パリティ更新時には、旧パリティをバッファに保存
しながら、パリティを更新すると好ましい。これによ
り、パリティ更新時に障害が起きても、更新されたパリ
ティを直前のチェックポイントの古い状態パリティに戻
せる。
Further, the checkpoint generation processing is performed by the CPU.
By doing so, there is no need to make a memory as a master, so that the circuit scale can be reduced. When updating the parity, it is preferable to update the parity while storing the old parity in the buffer. As a result, even if a failure occurs when updating the parity, the updated parity can be returned to the old state parity of the previous checkpoint.

【0028】[0028]

【実施例】以下、図面を参照しながら本発明の実施例を
説明する。 (基本的な構成)図1は、本発明の実施例に係る電子計
算機の概略ブロック図である。
Embodiments of the present invention will be described below with reference to the drawings. (Basic Structure) FIG. 1 is a schematic block diagram of an electronic computer according to an embodiment of the present invention.

【0029】本実施例の電子計算機は、複数のプロセッ
サ103と、複数のバッファ101及びメモリ102か
らなるメモリボードとをバス104で相互接続してなる
ものである。
The electronic computer of this embodiment comprises a plurality of processors 103 and a memory board comprising a plurality of buffers 101 and memories 102 interconnected by a bus 104.

【0030】プロセッサ103は、内部レジスタ・AL
U等を有する公知のものを用いることができる。各プロ
セッサ103には、それぞれキャッシュメモリ105が
設けられているものとする。
The processor 103 uses the internal register AL
A known material having U or the like can be used. It is assumed that each processor 103 is provided with a cache memory 105.

【0031】メモリ102のメモリ領域は、複数のブロ
ックに分割されている。また、複数のメモリ102で、
1つのメモリ空間を構成するものとする。本実施例では
図2のように、各メモリ1021 〜1024 の対応する
メモリブロックの集合を1つのメモリグループ(例えば
図2のMG1)として考え、そのメモリグループ内のい
ずれか1つのメモリブロックをパリティメモリとして割
り当てる。例えば、図2のメモリグループMG1では、
パリティメモリに格納されるパリティ1は、 パリティ1=データ11 xor データ12 xor
データ13 で表される。ただし、xorは排他的論理和を表すもの
とする。
The memory area of the memory 102 is divided into a plurality of blocks. In addition, in the plurality of memories 102,
It is assumed that one memory space is formed. In this embodiment, as shown in FIG. 2, a set of corresponding memory blocks of the memories 102 1 to 102 4 is considered as one memory group (for example, MG1 in FIG. 2), and any one memory block in the memory group is considered. Is assigned as the parity memory. For example, in the memory group MG1 of FIG.
Parity 1 stored in the parity memory is parity 1 = data 11 xor data 12 xor
It is represented by data 13. However, xor represents an exclusive OR.

【0032】1つのメモリグループに1つのパリティメ
モリブロックを割り当てる形態は、基本的にどのように
しても構わないが、図2のように各メモリ102に均等
にパリティメモリブロックが割り当てられるようにする
のが好ましい。これは、あるメモリブロックに書き込み
要求が発生する度に、パリティメモリブロックにも書き
込みが行われるので、パリティメモリブロックの割り当
てを一部のメモリに集中させると、アクセスが該メモリ
に集中することが考えられるためである。ただし、シス
テムの都合などにより、特定のメモリをパリティメモリ
専用に用いることは自由である。
Basically, one parity memory block may be assigned to one memory group, but as shown in FIG. 2, the parity memory blocks are evenly assigned to each memory 102. Is preferred. This is because each time a write request is made to a certain memory block, the write is also made to the parity memory block. Therefore, if the allocation of the parity memory block is concentrated on a part of the memory, the access may be concentrated on the memory. This is because it can be considered. However, it is free to use a specific memory exclusively for the parity memory due to the circumstances of the system.

【0033】各メモリグループの対応関係や各メモリグ
ループでのパリティを格納するメモリアドレスは、テー
ブル化しておくか、あるいは定式化して算出できるよう
にしておく。
The correspondence relationship between each memory group and the memory address for storing the parity in each memory group are tabulated or formulated so that they can be calculated.

【0034】バッファ101は、データを一時的に溜め
込むストレージであり、例えばFIFOで実現すること
ができる。各バッファ101は、図3のように複数のエ
ントリを有し、各エントリには後述するように差分デー
タとアドレスの組や旧データとアドレスの組が格納され
る。
The buffer 101 is a storage for temporarily storing data, and can be realized by a FIFO, for example. Each buffer 101 has a plurality of entries as shown in FIG. 3, and each entry stores a pair of difference data and an address and a pair of old data and an address, as described later.

【0035】バス104は、アドレス・データ・マルチ
プレクス・タイプでも良いし、あるいはノン・マルチプ
レクス・タイプでも良い。プロセッサ103からはリー
ド要求やライト要求が発行され、キャッシュ105を通
過した要求はバス104を通り所定のメモリボードに送
られる。
The bus 104 may be an address data multiplex type or a non-multiplex type. A read request or a write request is issued from the processor 103, and the request passing through the cache 105 is sent to a predetermined memory board via the bus 104.

【0036】ライト要求を受けたメモリボードでは、後
述する各実施例で述べられるような新旧のデータおよび
新旧のパリティに対する処理が行われる。チェックポイ
ントの生成は、全キャッシュ105の内容をメモリ10
2に書き戻し、全プロセッサ103のステータスを退避
し、各メモリ102のバッファ101内の情報に基づき
後述する必要な処理を行った後、該バッファ101の中
身を削除することによって行われる。
The memory board which has received the write request performs processing for old and new data and old and new parity as described in each embodiment described later. To generate a checkpoint, the contents of all caches 105 are stored in the memory 10
2), the status of all processors 103 is saved, the necessary processing described later is performed based on the information in the buffer 101 of each memory 102, and then the contents of the buffer 101 are deleted.

【0037】チェックポイントを生成するタイミング
は、一番早くバッファ101の領域が溢れた(あるいは
所定の容量の領域を使い切った、もしくは容量の残量が
所定の値に達した)メモリボードがプロセッサ103に
通知をするか、あるいは、あまり長時間チェックポイン
トを生成しないと障害時のペナルティが大きくなるので
適当な時間間隔ごとに行うのが好ましい。ただし、チェ
ックポイントの生成時にもバッファ101に書き込みが
行われるために、バッファ101が完全に溢れる前にチ
ェックポイントを生成しなければならない。
The checkpoint is generated at the earliest when the area of the buffer 101 overflows (or the area of a predetermined capacity is used up or the remaining capacity reaches a predetermined value) when the processor 103 If the checkpoint is not notified to the user or if the checkpoint is not generated for a long time, the penalty at the time of failure becomes large, so it is preferable to perform it at appropriate time intervals. However, since the buffer 101 is written even when the checkpoint is generated, the checkpoint must be generated before the buffer 101 is completely overflowed.

【0038】本実施例では、図示しない公知の故障検出
手段が、例えばOSなどにより提供されているものとす
る。故障検出手段は、所定のタイミングで故障発生の有
無を監視しており、故障を検出すると故障回復処理を起
動する。起動された故障回復処理は、雑音等による一時
故障が発生した場合には、直前にチェックポイントを生
成した時点から再実行させる処理を行う。
In this embodiment, it is assumed that a known failure detecting means (not shown) is provided by, for example, the OS. The failure detection unit monitors whether or not a failure has occurred at a predetermined timing, and when it detects a failure, it starts a failure recovery process. When the temporary failure due to noise or the like occurs, the started failure recovery processing is executed again from the time when the checkpoint was generated immediately before.

【0039】一方、ハードウェア破壊等の永久故障が発
生した場合には、何らかの故障処理、例えば異常が起き
たCPU上での処理を他の正常なCPUに移行させる等
の処理を施した後、直前にチェックポイントを生成した
時点から再実行させる処理を行うなどが考えられる。
On the other hand, when a permanent failure such as hardware destruction occurs, after performing some kind of failure processing, for example, processing such as shifting the processing on the CPU where the abnormality has occurred to another normal CPU, It is conceivable to perform a process for re-execution from the time when the checkpoint was generated immediately before.

【0040】なお、本実施例ではキャッシュメモリを持
つシステムを例に詳細な説明をしているが、本発明はキ
ャッシュメモリを持つシステムには限定されず、キャッ
シュメモリを持たないシステムにも適用できる。この場
合、チェックポイント生成処理や故障復旧処理におい
て、キャッシュに関する処理を省けば良い。
In the present embodiment, the system having a cache memory has been described in detail as an example, but the present invention is not limited to the system having the cache memory and can be applied to the system having no cache memory. . In this case, in the checkpoint generation processing and the failure recovery processing, it is sufficient to omit the processing related to the cache.

【0041】また、本実施例では、メモリボードはバッ
ファ101とメモリ102により構成されているが、メ
モリボードにプロセッサも搭載する形態など、種々の実
施態様が考えられる。
Further, in the present embodiment, the memory board is composed of the buffer 101 and the memory 102, but various embodiments such as a mode in which a processor is also mounted on the memory board are conceivable.

【0042】また、本実施例では、4つのCPUと4枚
のメモリボードからなるシステムを用いるが、CPUや
メモリボードの数に制限なく本発明を適用することがで
きる。
Further, in this embodiment, a system comprising four CPUs and four memory boards is used, but the present invention can be applied without limitation to the number of CPUs and memory boards.

【0043】以下、さらに具体的に実施例を説明する。
以下の説明では、新しいデータあるいは新データはこれ
からメモリ102に格納するデータのことを言い、古い
データあるいは旧データは上記格納の前にメモリ102
に格納されていたデータのことを言うものとする。ま
た、新しいパリティあるいは新パリティは新データをメ
モリ102に格納した後の対応するパリティのことを言
い、古いパリティあるいは旧パリティは上記格納の際に
メモリ102に格納されていた対応するパリティのこと
を言うものとする。
Examples will be described more specifically below.
In the following description, new data or new data refers to data to be stored in the memory 102, and old data or old data is stored in the memory 102 before the storage.
The data stored in. Also, new parity or new parity refers to the corresponding parity after storing new data in the memory 102, and old parity or old parity refers to the corresponding parity stored in the memory 102 at the time of storage. I shall say.

【0044】(第1の実施例)まず、本発明の第1の実
施例を説明する。最初に、本実施例の概念を説明する。
図4は、本実施例の概念図である。
(First Embodiment) First, a first embodiment of the present invention will be described. First, the concept of this embodiment will be described.
FIG. 4 is a conceptual diagram of this embodiment.

【0045】本実施例では、図1〜図3にて説明した構
成において、新旧データと新旧パリティを、以下のよう
に操作する。 i)データ プロセッサ1031 からのライト要求に応じて、メモリ
1021 に新しいデータを書く際に、“古いデータと新
しいデータの差分”と“(古いデータや新しいデータが
格納される)メモリ1021 のアドレス”を組にしてバ
ッファ1011に取っておく。
In the present embodiment, the old and new data and the old and new parity are operated as follows in the configuration described with reference to FIGS. i) Data When writing new data to the memory 102 1 in response to a write request from the processor 103 1 , “difference between old data and new data” and “memory 102 1 (where old data and new data are stored)” set aside in the buffer 101 1 to the address "to the set.

【0046】古いデータと新しいデータの差分の算出に
は、例えば排他的論理和回路(xor回路)121を用
いることができる。すなわち、 新旧データの差分=旧データ xor 新データ にて算出可能である。
An exclusive OR circuit (xor circuit) 121 can be used to calculate the difference between the old data and the new data. That is, the difference can be calculated by the difference between old and new data = old data xor new data.

【0047】メモリ1021 中の上記アドレス位置に
は、新しいデータを書き込む。 ii)パリティ 上記データの書き換えによって、対応するパリティを更
新する必要が生じるが、本実施例では、このパリティを
チェックポイント生成時に更新する。
New data is written to the address position in the memory 102 1 . ii) Parity Although it is necessary to update the corresponding parity by rewriting the above data, in the present embodiment, this parity is updated when the checkpoint is generated.

【0048】新パリティは、 新パリティ=旧パリティ xor 新旧データの差分 として与えられる。The new parity is given as new parity = old parity xor difference between old and new data.

【0049】パリティ更新の際に初めて、旧パリティ
を、該パリティを格納するメモリ1022 中のパリティ
格納アドレスと組にして、メモリ1022 側のバッファ
1012 に取っておく。
[0049] The first time the parity update, the old parity, and the parity storage address and a set of memory 102 in 2 for storing the parity set aside buffer 101 2 of the memory 102 2.

【0050】本実施例では、バッファに存在する差分情
報により、容易に直前のチェックポイントへバックトラ
ックし、故障回復をすることができるとともに、このバ
ッファの差分情報により、パリティを容易に更新でき
る。つまり、バッファの差分情報は、故障回復と、パリ
ティの更新の両方に用いることができる。
In the present embodiment, it is possible to easily backtrack to the immediately preceding checkpoint by using the difference information existing in the buffer to recover from the failure, and to easily update the parity using the difference information in this buffer. That is, the difference information in the buffer can be used for both failure recovery and parity update.

【0051】また、本実施例では、故障が起きた時に
は、直前のチェックポイントにロールバックしてから再
実行するので、データライト時に常にパリティを更新す
る必要がないという利点がある。すなわち、新パリティ
ーの作成と旧パリティの保存をチェックポイント生成時
まで延ばすことができる。
In the present embodiment, when a failure occurs, the rollback to the immediately preceding checkpoint is performed and the re-execution is performed, so that there is an advantage that the parity does not always need to be updated at the time of writing data. That is, the creation of the new parity and the storage of the old parity can be postponed until the checkpoint is generated.

【0052】図5は、パリティを更新するための処理の
流れである。この処理の機能は、専用のハードウェアあ
るいはソフトウェア処理によって実現しても良いし、O
Sに組み込んでも良い。
FIG. 5 shows the flow of processing for updating the parity. The function of this processing may be realized by dedicated hardware or software processing.
It may be incorporated into S.

【0053】まず、1つのバッファの1つのエントリか
ら、データ(新旧データの差分とアドレス)を読み出す
(ステップS1)。アドレス値から、対応するパリティ
のメモリボードとそのアドレスを求める(ステップS
2)。
First, data (difference between new and old data and address) is read from one entry of one buffer (step S1). The memory board of the corresponding parity and its address are obtained from the address value (step S
2).

【0054】該アドレスから旧パリティを読出す(ステ
ップS3)。上記差分と旧パリティの差分を取って新パ
リティを生成し、パリティを更新する(ステップS
4)。
The old parity is read from the address (step S3). The difference between the difference and the old parity is taken to generate a new parity, and the parity is updated (step S
4).

【0055】以上の処理を、全バッファの全エントリに
対して逐次施していく(ステップS5、ステップS
6)。図6は、故障回復のためのルーチンである。この
処理の機能は、専用のハードウェアるいはソフトウェア
処理によって実現しても良いし、OSに組み込んでも良
い。この故障回復の処理機能は、図示しない公知の故障
検出機構が故障を検出したことによって起動される。
The above processing is sequentially applied to all entries in all buffers (step S5, step S).
6). FIG. 6 is a routine for failure recovery. The function of this processing may be realized by dedicated hardware or software processing, or may be incorporated in the OS. This failure recovery processing function is activated when a known failure detection mechanism (not shown) detects a failure.

【0056】まず、1つのバッファの1つのエントリか
ら、データ(新旧データの差分とアドレス)を読み出す
(ステップS11)。指定されたアドレスの新データと
上記差分との間の差分を取り、データを直前のチェック
ポイントの値(旧データ)に戻す(ステップS12)。
First, data (difference between new and old data and address) is read from one entry of one buffer (step S11). The difference between the new data at the designated address and the above difference is taken, and the data is returned to the value of the immediately preceding checkpoint (old data) (step S12).

【0057】以上の処理を、全バッファの全エントリに
対して逐次施していく(ステップS13、ステップS1
4)。その後、データが破壊されたすべてのメモリボー
ドについて、データが破壊されていないメモリボードの
同一メモリグループの各データとパリティの差分を取
り、データが破壊されたボードのデータを回復する(ス
テップS15、ステップS16)。
The above processing is sequentially applied to all entries in all buffers (step S13, step S1).
4). After that, for all the memory boards whose data has been destroyed, the difference between each data and parity of the same memory group of the memory boards whose data has not been destroyed is taken, and the data of the board whose data has been destroyed is recovered (step S15, Step S16).

【0058】次に、チェックポイント生成の処理の一例
を示す。 まず、始めに、CPUの内部レジスタをメモリに保存
する。 次に、キャッシュの書き換え部分をフラッシュする。 これらにより、メモリ上にデータのチェックポイントが
生成できる。 次の段階として、旧パリティを新パリティに更新する
(上述した図5のフローチャートの処理を行う)。すな
わち、他のメモリボードのバッファには、そのパリティ
に対応するデータの旧データとの差分が存在している。
新データと旧データの間の差分は、新パリティと旧パリ
ティの差分に等しいので、新データと旧データとの間の
差分を読むことにより、パリティを新パリティに更新す
ることができる。
Next, an example of checkpoint generation processing will be described. First, the internal register of the CPU is saved in the memory. Next, the rewritten portion of the cache is flushed. With these, a checkpoint of data can be generated on the memory. As the next step, the old parity is updated to the new parity (the above-described processing of the flowchart of FIG. 5 is performed). That is, the buffer of the other memory board has a difference between the data corresponding to the parity and the old data.
Since the difference between the new data and the old data is equal to the difference between the new parity and the old parity, the parity can be updated to the new parity by reading the difference between the new data and the old data.

【0059】以下、その具体例として図1の構成におい
て、図7に示すように、ボードAのアドレス領域は、0
x00000−0x0FFFF、ボードBのアドレス領
域は、0x10000−0x1FFFF、ボードCのア
ドレス領域は、0x20000−0x2FFFF、ボー
ドDのアドレス領域は、0x30000−0x3FFF
Fとした場合を考える。ただし、0xは、その後に続く
数字が16進数であることを示す。
As a concrete example, in the configuration of FIG. 1, the address area of the board A is 0 as shown in FIG.
x00000-0x0FFFF, the address area of board B is 0x10000-0x1FFFF, the address area of board C is 0x20000-0x2FFFF, and the address area of board D is 0x30000-0x3FFF.
Consider the case of F. However, 0x indicates that the number following it is a hexadecimal number.

【0060】例えば、ボードAのアドレス0x100番
地のデータAと、ボードBのアドレス0x10100番
地のデータBと、ボードCのアドレス0x20100番
地のデータCのパリティは、ボードDのアドレス0x3
0100番地に格納されるようにする。
For example, the parity of the data A at the address 0x100 of the board A, the data B at the address 0x10100 of the board B, and the data C at the address 0x20100 of the board C is the address 0x3 of the board D.
It is stored in the address 0100.

【0061】図8で示す新旧のデータ/パリティに対す
る処理について説明する。 データA=(0001)、データB=(0010)、
データC=(0011)とすると、ボードDに格納すべ
きパリティは、3つのデータA,B,Cの排他的論理和
である(0000)となる。
The processing for old and new data / parity shown in FIG. 8 will be described. Data A = (0001), Data B = (0010),
If the data C = (0011), the parity to be stored in the board D is the exclusive OR of the three data A, B, and C (0000).

【0062】今、ボードAのアドレス0x100番地に
(0100)が書き込まれたとする。ボードAのバッフ
ァには、古いデータAと書き込むデータの間の差分、つ
まり(0001) xor (0100)=(010
1)が、アドレス0x100と共に格納される。
It is now assumed that (0100) is written in the address 0x100 of the board A. In the buffer of board A, the difference between the old data A and the data to be written, that is, (0001) xor (0100) = (010
1) is stored with the address 0x100.

【0063】チェックポイント生成時には、プロセッ
サがバッファの内容を調べに行く。バッファには、0x
100番地のデータが変化したことが記録され、その差
分が(0101)であるから、0x30200番地のパ
リティを、 (0000) xor (0101)=(0101) に変える。実際に、この新しいパリティは、新しいデー
タA(0100)とデータB(0010)とデータC
(0011)の排他的論理和となっている。
When generating a checkpoint, the processor goes to check the contents of the buffer. 0x in the buffer
Since the change in the data at address 100 is recorded and the difference is (0101), the parity at address 0x30200 is changed to (0000) xor (0101) = (0101). In fact, this new parity is the new data A (0100), data B (0010) and data C.
It is the exclusive OR of (0011).

【0064】なお、パリティ更新時に障害が起こって
も、回復できるように、古いパリティ(0000)はア
ドレスと対応付けてバッファに保存しておく。すべての
パリティの更新が終了した時点で、バッファをクリアし
て、新たなチェックポイントとする。
It should be noted that the old parity (0000) is stored in the buffer in association with the address so that the old parity (0000) can be recovered even if a failure occurs at the time of updating the parity. When all the parity updates have been completed, the buffer is cleared and used as a new checkpoint.

【0065】次に、図9で示す障害処理について説明す
る。ある一つのメモリボードが障害をもった場合の障害
処理を考える。この場合、データを直前のチェックポイ
ント時点のデータに戻す必要がある。
Next, the fault processing shown in FIG. 9 will be described. Consider failure handling when a memory board fails. In this case, it is necessary to restore the data to the data at the time of the previous checkpoint.

【0066】まず、バッファに存在する差分情報によ
り、各ボードを旧データの状態に戻す。その時点で、各
ボードのデータの差分がパリティとなる演算関係が成り
立つはずなので、逆算して失ったデータを復元すること
ができる。
First, each board is returned to the old data state according to the difference information existing in the buffer. At that point, an arithmetic relationship in which the difference between the data of each board becomes the parity should be established, and therefore the lost data can be restored by the backward calculation.

【0067】先程の例のように、データA(000
1)、データB(0010)、データC(0011)と
して、データAが(0100)と書き変わった場合、今
ボードB上にあるデータBが壊れたとする。
As in the previous example, data A (000
1), data B (0010), and data C (0011), when data A is rewritten as (0100), it is assumed that data B currently on board B is broken.

【0068】プロセッサは、各ボードのバッファを調べ
に行く。ボードAのバッファには、0x100番地のデ
ータAが変化し、その差分が(0101)であること
が、記録されている。
The processor goes to look at the buffer on each board. In the buffer of the board A, it is recorded that the data A at the address 0x100 changes and the difference is (0101).

【0069】現在のデータA(0100)と、その差分
(0101)との間の差分を取り、データAを(000
1)と書き戻した後、データA(0001)とデータC
(0011)とパリティD(0000)の差分をとり、
データB(0010)の回復ができるわけである。
The difference between the current data A (0100) and its difference (0101) is calculated, and the data A is (000
After writing back 1), data A (0001) and data C
Taking the difference between (0011) and parity D (0000),
The data B (0010) can be recovered.

【0070】前述のように従来はチェックポイントを生
成するためにデータを格納するメモリ容量と同容量のメ
モリを必要としていたが、本実施例によれば、データ用
としてN枚分のメモリボードを用いる場合、パリティ用
メモリ容量も含めてメモリボードにして全部でN/(N
−1)枚分のメモリ容量だけでチェックポイントを生成
することが可能となる。すなわち、システム中のメモリ
容量のごく一部だけをパリティ領域に割り当てることに
よって実装したメモリ容量を効率的に使用し、かつ高い
信頼性を得ることができる。また、あるプロセッサでバ
ッファからメモリにデータを書き戻す度ごとに全プロセ
ッサでチェックポイントを作成するといったオーバーヘ
ッドを回避できる。
As described above, in the past, a memory having the same capacity as the memory for storing data was required to generate a checkpoint, but according to this embodiment, N memory boards for data are used. When used, the total memory capacity is N / (N
-1) It is possible to generate a checkpoint with only the memory capacity for one sheet. That is, it is possible to efficiently use the mounted memory capacity by allocating only a part of the memory capacity in the system to the parity area and to obtain high reliability. In addition, it is possible to avoid the overhead of creating checkpoints in all the processors each time data is written back from the buffer to the memory in a certain processor.

【0071】また、バッファの容量を調整することによ
り、チェックポイント生成の頻度を容易に加減すること
が可能になる。この点は、システムに要求される処理能
力と障害時のペナルティによって調整することができ、
目的に合わせたシステムを容易に構築することができ
る。
Further, by adjusting the capacity of the buffer, it becomes possible to easily adjust the frequency of checkpoint generation. This point can be adjusted depending on the processing power required for the system and the penalty at the time of failure,
It is possible to easily build a system according to the purpose.

【0072】また、チェックポイントの作成はバッファ
がオーバーフローなどした時のみ行うようにすることが
できるので、バスの混雑を軽減することができる。ま
た、チェックポイント生成処理をCPUが行うことによ
り、メモリをマスタとして作る必要がなくなるため、回
路の規模を小さくすることができる。
Since the checkpoint can be created only when the buffer overflows, the bus congestion can be reduced. Further, since the CPU performs the checkpoint generation process, it is not necessary to use the memory as a master, so that the circuit scale can be reduced.

【0073】このような効果は、後述する各実施例でも
同様に得ることができるが、各実施例において繰り返し
述べることは省略する。ここで、図10に、旧データと
新データの差分をバッファ101に入れる回路の一例を
示す。この回路では、まず、バスを介してライト要求が
与えられると、まず、メモリ102からライト要求と同
じアドレスでデータを読み、リードデータレジスタ60
4に古いデータを読み込む。次に、ライト要求に従い、
データをメモリ102に書き込むと同時に、リードデー
タレジスタ604の古いデータの排他的論理和をxor
回路603にて算出し、このxor回路603の出力値
をアドレスと共にバッファ101に書き込む。
Such an effect can be similarly obtained in each of the embodiments described later, but the repeated description in each embodiment will be omitted. Here, FIG. 10 shows an example of a circuit for storing the difference between the old data and the new data in the buffer 101. In this circuit, when a write request is given via the bus, first, data is read from the memory 102 at the same address as the write request, and the read data register 60 is read.
Read old data into 4. Then, according to the write request,
At the same time as writing the data to the memory 102, the exclusive OR of the old data in the read data register 604 is xored.
It is calculated by the circuit 603, and the output value of this xor circuit 603 is written in the buffer 101 together with the address.

【0074】これまでの説明においては、メモリボード
をメモリとバッファに分けて考えてきたが、同一のメモ
リモジュールをバッファ領域とメモリ領域に分割するイ
ンプリメントも可能である。図11では、メモリモジュ
ール710をバッファ領域とメモリ領域に分けてある。
In the above description, the memory board is divided into the memory and the buffer, but the same memory module may be divided into the buffer area and the memory area. In FIG. 11, the memory module 710 is divided into a buffer area and a memory area.

【0075】図11の構成において、データをライトす
るときの手順を以下に示す。 バス104よりデータがデータレジスタ702、アド
レスがアドレスレジスタ703に入る。アドレスは、マ
ルチプレクサ709により選択され、メモリモジュール
710に行く。メモリは、そのアドレスの値が読まれ、
リードデータレジスタ707に値が入る。
The procedure for writing data in the configuration of FIG. 11 is shown below. Data is input to the data register 702 and an address is input to the address register 703 from the bus 104. The address is selected by multiplexer 709 and goes to memory module 710. In the memory, the value of that address is read,
A value is entered in the read data register 707.

【0076】データレジスタ702に入った値が、マ
ルチプレクサ705により選択され、バッファ706を
通り、メモリに書き込まれる。アドレスは、上記と同
様にアドレスレジスタ703の値が与えられる。メモリ
にDRAMを用いた場合、リード・モディファイ・ライ
ト機能を使うことで、この動作は容易に実現できる。
The value entered in the data register 702 is selected by the multiplexer 705, passes through the buffer 706, and is written in the memory. As the address, the value of the address register 703 is given as in the above. When a DRAM is used as the memory, this operation can be easily realized by using the read / modify / write function.

【0077】xor回路704にてリードデータレジ
スタ707とデータレジスタ702の出力データ間の差
分がとられ、この差分がマルチプレクサ705により選
択され、メモリモジュール710のデータとなる。アド
レスは、スタックポインタ708の値がマルチプレクサ
709により選択される。このアドレスは、バッファ領
域内のアドレスである。また、差分データに対応するア
ドレスもバッファに登録する必要があるので、差分デー
タを格納した後、アドレスレジスタ703の値は、マル
チプレクサにより選択され、スタックポインタ708の
指すバッファに格納される。
The xor circuit 704 takes the difference between the output data of the read data register 707 and the output data of the data register 702, and this difference is selected by the multiplexer 705 and becomes the data of the memory module 710. As the address, the value of the stack pointer 708 is selected by the multiplexer 709. This address is an address in the buffer area. Since the address corresponding to the difference data also needs to be registered in the buffer, after the difference data is stored, the value of the address register 703 is selected by the multiplexer and stored in the buffer pointed to by the stack pointer 708.

【0078】(第2の実施例)次に、本発明の第2の実
施例を説明する。最初に、本実施例の概念を説明する。
図12は、本実施例の概念図である。
(Second Embodiment) Next, a second embodiment of the present invention will be described. First, the concept of this embodiment will be described.
FIG. 12 is a conceptual diagram of this embodiment.

【0079】本実施例では、図1〜図3にて説明した構
成において、新旧データと新旧パリティを以下のように
操作する。 i)データ プロセッサ1031 からのライト要求に応じて、メモリ
1021 に新しいデータを書く際に、古いデータをアド
レスと組にしてバッファ1011 に保存する。
In this embodiment, the old and new data and the old and new parity are operated as follows in the configuration described with reference to FIGS. i) Data When writing new data to the memory 102 1 in response to a write request from the processor 103 1 , the old data is paired with an address and stored in the buffer 101 1 .

【0080】書き込みが行われたメモリボードから、x
or回路1211 にて得た古いデータと新しいデータの
差分をパリティが存在するメモリボードへ送出する。 ii)パリティ パリティが存在するメモリボードでは、送られてきた上
記差分に基づき古いパリティを新しいパリティに更新す
る。新しいパリティは、 新パリティ=旧パリティ xor 差分データ(=旧パ
リティ xor 旧データ xor 新データ) にて得られる。
From the written memory board, x
The difference between the old data and the new data obtained by the OR circuit 121 1 is sent to the memory board having the parity. ii) Parity In a memory board that has parity, the old parity is updated to the new parity based on the above difference sent. The new parity is obtained by new parity = old parity xor difference data (= old parity xor old data xor new data).

【0081】古いパリティは、アドレスと組にしてバッ
ファ1012 に保存する。本実施例では、故障時には、
バッファ中に古いデータと古いパリティが存在している
ので、プロセッサが、これらのデータとパリティをバッ
ファから読み出し、対応するメモリのアドレスに書き込
めば、直前のチェックポイントに回復できる。
[0081] old parity, and to address a set is stored in the buffer 101 2. In this embodiment, at the time of failure,
Old data and old parity are present in the buffer, and the processor can read these data and parity from the buffer and write them to the corresponding memory addresses to recover to the previous checkpoint.

【0082】図13に、この方式を実現する回路の一例
を示す。データ側のメモリボードでは、以下の動作が行
われる。 バスインタフェース回路902は、バス104より、
ライト要求を受け取ると、メモリ102のアドレス線を
駆動し、メモリリードを実行する。メモリ102のデー
タ線にリードデータが出力されるので、リードデータを
リードデータレジスタ904に入れ、さらにバッファ1
01にもリードデータを入れる。
FIG. 13 shows an example of a circuit that realizes this method. The following operations are performed on the memory board on the data side. The bus interface circuit 902 is
When the write request is received, the address line of the memory 102 is driven and the memory read is executed. Since the read data is output to the data line of the memory 102, the read data is stored in the read data register 904, and the buffer 1
The read data is also entered in 01.

【0083】ライト要求を受け取ると、上記動作とと
もにメモリ102のアドレス線を駆動し、メモリライト
を実行する。メモリ102にライトすると、同時に、リ
ードデータレジスタ904に入っている古いデータとメ
モリ102のデータ線に出力されたライトデータの差分
をとり、バスインタフェース回路902を経由し、バス
上にリクエストを出す。
When the write request is received, the address line of the memory 102 is driven and the memory write is executed along with the above operation. When writing to the memory 102, at the same time, the difference between the old data stored in the read data register 904 and the write data output to the data line of the memory 102 is calculated, and the request is output to the bus via the bus interface circuit 902.

【0084】パリティ側のメモリボードでは、以下の動
作が行われる。 パリティ側のメモリボードでは、前記バス上に出され
たリクエストを受け取り、メモリリードを実行する。メ
モリ102のデータ線にリードデータが出力されるの
で、リードデータをリードデータレジスタ904に入
れ、さらにバッファ101もリードデータを入れる。
The memory board on the parity side performs the following operations. The memory board on the parity side receives the request issued on the bus and executes the memory read. Since the read data is output to the data line of the memory 102, the read data is stored in the read data register 904, and the buffer 101 also stores the read data.

【0085】リクエストで受け取ったデータとリード
レジスタ904のデータの差分をメモリ102に書き込
む。これらの操作により、パリティを更新することがで
きる。
The difference between the data received by the request and the data in the read register 904 is written in the memory 102. By these operations, the parity can be updated.

【0086】図14は、本実施例における故障回復のた
めのルーチンである。この処理の機能は、専用のハード
ウェアるいはソフトウェア処理によって実現しても良い
し、OSに組み込んでも良い。この故障回復の処理機能
は、図示しない公知の故障検出機構が故障を検出したこ
とによって起動される。
FIG. 14 shows a routine for failure recovery in this embodiment. The function of this processing may be realized by dedicated hardware or software processing, or may be incorporated in the OS. This failure recovery processing function is activated when a known failure detection mechanism (not shown) detects a failure.

【0087】まず、1つのバッファの1つのエントリか
ら、データ(旧データとアドレス)を読み出す(ステッ
プS31)。指定されたアドレスのデータを旧データに
書き換えることによって、データを直前のチェックポイ
ントの値に戻す(ステップS32)。
First, data (old data and address) is read from one entry of one buffer (step S31). By rewriting the data of the designated address to the old data, the data is returned to the value of the immediately preceding checkpoint (step S32).

【0088】以上の処理を、全バッファの全エントリに
対して逐次施していく(ステップS33、ステップS3
4)。その後、データが破壊されたすべてのメモリボー
ドについて、データが破壊されていないメモリボードの
同一メモリグループの各データとパリティの差分を取
り、データが破壊されたボードのデータを回復する(ス
テップS35、ステップS36)。
The above processing is sequentially applied to all entries in all buffers (step S33, step S3).
4). After that, for all the memory boards whose data has been destroyed, the difference between each data and parity of the same memory group of the memory boards whose data has not been destroyed is taken, and the data of the board whose data has been destroyed is recovered (step S35, Step S36).

【0089】ここで、図15に、バスインタフェース回
路の一例を示す。この回路では、まず、バスリクエスト
を受け取ると、アドレスレジスタ1005にアドレスが
入り、メモリアドレスとして出力される。データライト
の動作では、FIFO1002とライトデータレジスタ
1004を経て、メモリデータとして出力される。一
方、データを送出する動作では、メモリのデータを読む
場合と、古いデータが存在するバッファを読む場合と、
データの差分を送出する場合があるので、これらを選択
し、リードデータレジスタ1003とFIFO1002
を経て、バス上に出力する。データの差分を送り出す際
のリクエストのアドレスは、アドレスレジスタ1005
のアドレスを基に、アドレスジェネレータ1006によ
り、ライトデータに対応するパリティのアドレスを算出
し、マスターモード用のアドレスレジスタ1007に入
れ、リクエスト時に送出される。
FIG. 15 shows an example of the bus interface circuit. In this circuit, first, when a bus request is received, an address enters the address register 1005 and is output as a memory address. In the data write operation, the data is output as memory data via the FIFO 1002 and the write data register 1004. On the other hand, in the operation of sending data, when reading the data in the memory, when reading the buffer where old data exists,
Since the data difference may be transmitted in some cases, these are selected and read data register 1003 and FIFO 1002 are selected.
And then output on the bus. The address of the request when sending the data difference is the address register 1005.
The address of the parity corresponding to the write data is calculated by the address generator 1006 on the basis of the address of (1), and is stored in the address register 1007 for the master mode, and is transmitted at the time of request.

【0090】(第3の実施例)次に、本発明の第3の実
施例を説明する。前述した実施例のように古いデータを
バッファに保存する方式では、書き込みが行われたボー
ドより新旧データの差分がパリティ側のメモリボードに
送出されるので、1回の書き込みで2回のトランザクシ
ョンが起こる。本実施例では、1回の書き込みで生じる
トランザクションの回数を1回に削減するものである。
(Third Embodiment) Next, a third embodiment of the present invention will be described. In the method of storing old data in the buffer as in the above-described embodiment, since the difference between the old and new data is sent to the memory board on the parity side from the board on which the writing was performed, two transactions can be performed by one writing. Occur. In this embodiment, the number of transactions generated by one writing is reduced to one.

【0091】最初に、本実施例の概念を説明する。図1
6は、本実施例の概念図である。本実施例では、図1〜
図3にて説明した構成において、新旧データと新旧パリ
ティを以下のように操作する。
First, the concept of this embodiment will be described. FIG.
6 is a conceptual diagram of this embodiment. In this embodiment, FIG.
In the configuration described in FIG. 3, the old and new data and the old and new parity are operated as follows.

【0092】i)データ プロセッサ1031 からのライト要求に応じて、メモリ
1021 に新しいデータを書く際に、古いデータをアド
レスと組にしてバッファ1011 に保存する。
I) Data When writing new data in the memory 102 1 in response to a write request from the processor 103 1 , the old data is paired with an address and stored in the buffer 101 1 .

【0093】ii)パリティ ここに、新旧パリティの差分は新旧データの差分に等し
いという法則を式で表すと、 Pnew xor Pold = Dnew xor
Dold ここで、Pnew:新しいパリティ、Pold:古いパ
リティ Dnew:新しいデータ、Dold:古いデータ である。
Ii) Parity Here, when the law that the difference between old and new parity is equal to the difference between old and new data is expressed by an equation, Pnew xor Pold = Dnew xor
Here, Pnew is new parity, Pold is old parity, Dnew is new data, and Dold is old data.

【0094】これを変形すると、 Pnew = Pold xor Dnew xor
Dold となる。
By transforming this, Pnew = Pold xor Dnew xor
It becomes Dold.

【0095】データの書き込みが行われるときに、バス
上にライト要求が出るが、本実施例では、データを該当
するアドレスのメモリボードに転送するとともに、その
データに対応するパリティを格納するメモリボードにも
転送する。
When data is written, a write request is issued on the bus. In this embodiment, the memory board that transfers the data to the memory board of the corresponding address and stores the parity corresponding to the data Forward it to.

【0096】パリティが存在するメモリボードでは、x
or回路121にて旧いパリティとライトデータ(新し
いデータ)の差分P´ P´ = Pold xor Dnew を取り、そのP´をメモリに書き戻す。
For a memory board with parity, x
The OR circuit 121 takes the difference P ′ P ′ = Pold xor Dnew between the old parity and the write data (new data), and writes the P ′ back to the memory.

【0097】旧パリティは、アドレスと組にしてバッフ
ァ1012 に保存する。この方式によれば、データライ
ト時のトランザクションは1回のみで、余分な差分情報
の転送を削除することができる。
[0097] the old parity, and to address a set is stored in the buffer 101 2. According to this method, the transaction of data write is performed only once, and the transfer of the extra difference information can be deleted.

【0098】本実施例におけるチェックポイント生成時
のパリティ更新のルーチンは、図5と同様のものにな
る。すなわち、書き込みが行われたボードのバッファ1
011には、古いデータが存在している。プロセッサが
その古いデータをバッファ1011 より読み出し、パリ
ティ側のメモリボードにその古いデータを送り、そのデ
ータに対応するP´と古いデータの差分をとることによ
り、 Pnew=P´ xor Dold =Pold xor Dnew xor Dold となり、新しいパリティに更新できる。
The parity update routine at the time of checkpoint generation in this embodiment is the same as that shown in FIG. That is, the buffer 1 of the board on which the writing was performed
In 01 1 , old data exists. The processor reads the old data from the buffer 101 1 , sends the old data to the memory board on the parity side, and takes the difference between P ′ and the old data corresponding to the data, so that Pnew = P ′ xor Dold = Pold xor It becomes Dnew xor Dold and can be updated to a new parity.

【0099】本実施例では、パリティ側のメモリボード
では、古いパリティをバッファに保存するとともに、デ
ータ側のメモリボードでは、古いデータを保存するの
で、障害が発生したときには、直前のチェックポイント
に回復することが可能となる。故障回復時のルーチン
は、図14と同様のものになる。
In this embodiment, the memory board on the parity side stores old parity in the buffer and the memory board on the data side stores old data. Therefore, when a failure occurs, the check point immediately before is restored. It becomes possible to do. The routine for failure recovery is the same as that shown in FIG.

【0100】ここで、図17に、この方式を実現する回
路の一例を示す。この回路では、まず、バスインタフェ
ース回路1202は、ライト要求を受けると、メモリリ
ードを実行し、リードデータをバッファ101に入れ
る。次に、メモリライトを実行して、データをメモリ1
02に書き込む。
FIG. 17 shows an example of a circuit that realizes this method. In this circuit, first, when the bus interface circuit 1202 receives a write request, it executes a memory read and puts the read data in the buffer 101. Next, execute a memory write to write the data to memory 1.
Write in 02.

【0101】パリティ側のメモリボードでは、バスイン
タフェース回路1202が、ライト要求を受け取ると、
該当するアドレスのパリティをメモリ102よりリード
データレジスタ1204に読み出す。次に、xor12
05にてライトデータとリードデータレジスタ1204
のデータの差分を取り、メモリ1206に書き込む。
In the memory board on the parity side, when the bus interface circuit 1202 receives the write request,
The parity of the corresponding address is read from the memory 102 to the read data register 1204. Next, xor12
Write data and read data register 1204 at 05
The difference of the data is taken and written in the memory 1206.

【0102】チェックポイントを生成するときには、必
要なCPUレジスタをセーブし、キャッシュ・フラッシ
ュを行った後、バッファ101より古いデータをCPU
により読みだし、そのCPUから、その古いデータを載
せたパリティ更新要求をパリティ側のボードに送る。そ
のリクエストを受け取ったパリティ側のボードでは、メ
モリよりP´をリードデータレジスタ1204に読み、
その後、xor1205にてバスインタフェース回路が
受け取った古いデータとリードデータレジスタ1204
の差分を取って、メモリ1206に書き込む。
When a checkpoint is generated, necessary CPU registers are saved, cache flush is performed, and data older than the buffer 101 is stored in the CPU.
Then, the CPU sends a parity update request carrying the old data to the board on the parity side. In the board on the parity side which has received the request, P'is read from the memory into the read data register 1204,
After that, the old data and the read data register 1204 received by the bus interface circuit at xor 1205.
Is taken and written in the memory 1206.

【0103】(第4の実施例)次に、本発明の第4の実
施例を説明する。最初に、本実施例の概念を説明する。
図18は、本実施例の概念図である。
(Fourth Embodiment) Next, a fourth embodiment of the present invention will be described. First, the concept of this embodiment will be described.
FIG. 18 is a conceptual diagram of this embodiment.

【0104】概略的には本実施例では、データの書き込
みが行われるときに、パリティ側のメモリボードでは書
き込みデータをバッファに格納する処理のみを行う。チ
ェックポイント生成時に、そのバッファのデータを使
い、 Pnew = Pold xor Dnew xor
Dold の処理により、パリティ更新を行う(この処理は専用ハ
ードウェアでもソフトウェアでも良い)。これによっ
て、書き込み時の処理手順を単純化できる。
Generally, in this embodiment, when data is written, the memory board on the parity side only performs the process of storing the write data in the buffer. When the checkpoint is generated, the data in the buffer is used. Pnew = Pold xor Dnew xor
Parity update is performed by Dold processing (this processing may be dedicated hardware or software). This can simplify the processing procedure at the time of writing.

【0105】より具体的には本実施例では、図1〜図3
にて説明した構成において、新旧データと新旧パリティ
を以下のように操作する。 i)データ プロセッサ1031 からのライト要求に応じて、メモリ
1021 に新しいデータを書く際に、古いデータとアド
レスを組にしてバッファ1011 に取っておく。
More specifically, in the present embodiment, FIGS.
In the configuration described in, the old and new data and the old and new parity are operated as follows. i) Data When writing new data to the memory 102 1 in response to a write request from the processor 103 1 , the old data and the address are paired and stored in the buffer 101 1 .

【0106】ii)パリティ パリティ側のメモリボードでは、新しいデータをアドレ
スと組にしてバッファ1012 に取っておく。メモリ1
022 には、旧パリティを保持させる。
[0106] In the memory board ii) Parity Parity side, set aside buffer 101 2 and the new data to address a set. Memory 1
The old parity is held in 02 2 .

【0107】チェックポイント生成時に、バッファ10
1 から旧パリティを獲得した後、メモリ1022 を、 新パリティ=旧パリティ xor 新データ xor
旧データ にて更新する。
When the checkpoint is generated, the buffer 10
After obtaining the old parity from 1 1 , the memory 102 2 is set to new parity = old parity xor new data xor.
Update with old data.

【0108】旧パリティは、アドレスと組にしてバッフ
ァ1012 に取っておく。本実施例では、障害発生時の
処理は前述の方法と同様に、バッファに存在する古いデ
ータとパリティ側のボードに格納された古いパリティに
より直前のチェックポイントに回復できる。
[0108] the old parity, set aside in the buffer 101 2 in the address and the set. In this embodiment, the processing at the time of failure can be restored to the previous checkpoint by the old data existing in the buffer and the old parity stored in the board on the parity side, as in the method described above.

【0109】チェックポイント生成時のパリティ更新の
ルーチンは、図5と同様のものになる。バッファには、
新データか旧データとそのアドレスが存在しているの
で、対応するパリティとの差分をとることにより、パリ
ティが更新される。
The parity update routine at the time of checkpoint generation is the same as that shown in FIG. In the buffer,
Since the new data or the old data and its address exist, the parity is updated by taking the difference from the corresponding parity.

【0110】また、故障回復時のルーチンは、図14と
同様のものとなる。ここで、図19に、この方式を実現
する回路の一例を示す。バスインタフェース回路140
2は、ライト要求を受け取ると、メモリリードして、バ
ッファ101に古いデータを入れた後、データをライト
する。パリティ側のボードでは、ライト要求を受け取る
と、バッファ101にデータを入れる。チェックポイン
ト生成時に、データ側のボードより、古いデータをバッ
ファ101より、また、パリティ側のボードより、新し
いデータをバッファ101より読み出して、パリティと
の差分を取り、パリティを更新する。また、パリティを
更新している最中に障害が生じても、直前のチェックポ
イントに戻れるように、古いパリティをバッファ101
に保存しておく。
The routine for recovering from a failure is similar to that shown in FIG. Here, FIG. 19 shows an example of a circuit that realizes this method. Bus interface circuit 140
When receiving the write request, the second memory reads the memory, puts the old data in the buffer 101, and then writes the data. When receiving the write request, the board on the parity side puts the data in the buffer 101. At the time of checkpoint generation, old data is read from the buffer 101 from the data side board, and new data is read from the buffer 101 from the parity side board to obtain the difference from the parity and update the parity. In addition, even if a failure occurs while updating the parity, the old parity is stored in the buffer 101 so that the previous checkpoint can be returned to.
Save it in.

【0111】チェックポイントの生成を起動させるに
は、タイマーインタラプトを使えば良い。これにより、
一定時間たつと、タイマーインタラプトあ起こり、イン
タラプトルーチンで、チェックポイントの生成を行う。
A timer interrupt may be used to activate checkpoint generation. This allows
After a certain period of time, a timer interrupt occurs, and a checkpoint is generated by the interrupt routine.

【0112】プロセッサからのライトが頻繁に起こり、
メモリボードのバッファ101がオーバーフローを起こ
したときには、故障復帰ができなくなるので、バッファ
がオーバーフローを起こしそうなとき、メモリボードか
らプロセッサにインタラプトをかけ、チェックポイント
の生成を行うと良い。
Frequent writes from the processor
When the buffer 101 of the memory board overflows, failure recovery cannot be performed. Therefore, when the buffer is about to overflow, it is preferable to interrupt the processor from the memory board and generate a checkpoint.

【0113】(他の実施例)上述した各実施例では、パ
リティあるいはバッファに存在する差分情報としてデー
タの差分をとることを考えてきたが、データのチェック
サムをとることでも本発明は実施可能である。
(Other Embodiments) In each of the above-described embodiments, it has been considered that the difference of data is taken as the difference information existing in the parity or the buffer, but the present invention can be implemented by taking the checksum of the data. Is.

【0114】ボードA上のデータA、ボードB上のデー
タB、ボードC上のデータC、ボードD上のチェックサ
ムSが、 A xor B xor C xor S=0 の関係にあるとする。
It is assumed that the data A on the board A, the data B on the board B, the data C on the board C, and the checksum S on the board D have a relationship of A xor B xor C xor S = 0.

【0115】データAをA´に書き換えるときに、バッ
ファには、A´−Aを保存する。チェックポイント生成
時には、 S´=S−(A´−A) とチェックサムを書き換えれば良い。
When the data A is rewritten to A ', A'-A is stored in the buffer. When generating the checkpoint, the checksum may be rewritten as S '= S- (A'-A).

【0116】なぜなら、 A´ xor B xor C xor S´ =A´ xor B xor C xor S−(A´−A) =A xor B xor C xor S =0 となり、新データと新チェックサムの和が0になるから
である。
Because A'xor B xor C xor S '= A' xor B xor C xor S- (A'-A) = A xor B xor C xor S = 0, the sum of the new data and the new checksum Is 0.

【0117】故障時には、バッファの差分情報とチェッ
クサムにより、壊れたデータを回復することができる。
この方式は、前述した各実施例を適宜修正することによ
り、容易に実現可能である。本発明は、上述した実施例
に限定されるものではなく、その要旨を逸脱しない範囲
で、種々変形して実施することができる。
In the event of a failure, broken data can be recovered using the buffer difference information and checksum.
This method can be easily realized by appropriately modifying each of the above-described embodiments. The present invention is not limited to the above-described embodiments, and can be variously modified and implemented without departing from the scope of the invention.

【0118】[0118]

【発明の効果】本発明によれば、複数の記憶部(例えば
メモリボード)のデータ間にパリティあるいはチェック
サムの関係を持たせるとともに、データ間の差分情報な
どを保存しておき、新旧データ間の差分は新旧パリティ
(チェックサム)間の差分に等しい性質を利用して、チ
ェックポイントの生成と、直前のチェックポイントへの
バックトラックによる故障回復ができる。
According to the present invention, data in a plurality of storage units (for example, memory boards) are related to each other by a parity or a checksum, and the difference information between the data is stored so that the data between the old and new data can be stored. By utilizing the property that the difference of (1) is the same as the difference between the old and new parity (checksum), it is possible to generate a checkpoint and recover the failure by backtracking to the immediately preceding checkpoint.

【0119】これによって、本発明によれば、記憶部の
データあるいは一つの記憶部自体が破壊されても、容易
にその記憶部上のデータの回復を行うことができ、高い
信頼性を得ることができるとともに、従来より少ないメ
モリ容量でチェックポイントを生成することが可能とな
る。
As a result, according to the present invention, even if the data in the storage unit or one storage unit itself is destroyed, the data in the storage unit can be easily recovered and high reliability can be obtained. In addition, it is possible to generate a checkpoint with a smaller memory capacity than before.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明に係る電子計算機を示す概略システム図FIG. 1 is a schematic system diagram showing an electronic computer according to the present invention.

【図2】図1の複数のメモリに与える論理構成を説明す
るための図
FIG. 2 is a diagram for explaining a logical configuration given to a plurality of memories in FIG.

【図3】図1のバッファの構成を説明するための図FIG. 3 is a diagram for explaining the configuration of the buffer in FIG.

【図4】本発明の第1の実施例の概念図FIG. 4 is a conceptual diagram of a first embodiment of the present invention.

【図5】パリティを更新するための処理の流れ図FIG. 5 is a flowchart of a process for updating parity.

【図6】故障回復処理の流れ図[Fig. 6] Flow chart of failure recovery processing

【図7】複数のメモリに格納されたデータとパリティの
一例を説明するための図
FIG. 7 is a diagram for explaining an example of data and parity stored in a plurality of memories.

【図8】本実施例の各処理手順の具体例を説明するため
の図
FIG. 8 is a diagram for explaining a specific example of each processing procedure of the present embodiment.

【図9】障害処理の具体例を説明するための図FIG. 9 is a diagram for explaining a specific example of failure processing.

【図10】本発明の第1の実施例に係るメモリボードの
内部構成の一例を示す図
FIG. 10 is a diagram showing an example of the internal configuration of the memory board according to the first embodiment of the invention.

【図11】メモリモジュールを分割することでバッファ
とメモリを実現した回路の構成図
FIG. 11 is a configuration diagram of a circuit that realizes a buffer and a memory by dividing a memory module.

【図12】本発明の第2の実施例の概念図FIG. 12 is a conceptual diagram of a second embodiment of the present invention.

【図13】本発明の第2の実施例に係るメモリボードの
内部構成の一例を示す図
FIG. 13 is a diagram showing an example of an internal configuration of a memory board according to a second embodiment of the present invention.

【図14】故障回復処理の流れ図FIG. 14 is a flow chart of failure recovery processing.

【図15】本発明の第2の実施例に係るバスインタフェ
ースの構成例を示す図
FIG. 15 is a diagram showing a configuration example of a bus interface according to a second embodiment of the present invention.

【図16】本発明の第3の実施例の概念図FIG. 16 is a conceptual diagram of a third embodiment of the present invention.

【図17】本発明の第3の実施例に係るメモリボードの
内部構成の一例を示す図
FIG. 17 is a diagram showing an example of an internal configuration of a memory board according to a third embodiment of the present invention.

【図18】本発明の第4の実施例の概念図FIG. 18 is a conceptual diagram of a fourth embodiment of the present invention.

【図19】本発明の第4の実施例に係るメモリボードの
内部構成の一例を示す図
FIG. 19 is a diagram showing an example of an internal configuration of a memory board according to a fourth embodiment of the present invention.

【符号の説明】[Explanation of symbols]

101…バッファ、102…メモリ、103…プロセッ
サ、104…バス、105…キャッシュ、121…排他
的論理和回路(xor回路)、603…排他的論理和回
路(xor回路)、604…リードデータレジスタ、6
05…バスインタフェース、702…データレジスタ、
703…アドレスレジスタ、704…排他的論理和回路
(xor回路)、705…マルチプレクサ、706…ト
ライステートバッファ、707…リードデータレジス
タ、708…スタックポインタ、709…マルチプレク
サ、710…メモリモジュール、711…メモリコント
ローラ、902…バスインタフェース、904…リード
データレジスタ、905…排他的論理和回路(xor回
路)、1002…バッファ(FIFO)、1003…バ
スインタフェース、1004…リードデータレジスタ、
1005…アドレスレジスタ、1006…アドレスジェ
ネレータ、1202…バスインタフェース、1204…
リードデータレジスタ、1205…排他的論理和回路
(xor回路)、1402…バスインタフェース
101 ... Buffer, 102 ... Memory, 103 ... Processor, 104 ... Bus, 105 ... Cache, 121 ... Exclusive OR circuit (xor circuit), 603 ... Exclusive OR circuit (xor circuit), 604 ... Read data register, 6
05 ... bus interface, 702 ... data register,
703 ... Address register, 704 ... Exclusive OR circuit (xor circuit), 705 ... Multiplexer, 706 ... Tristate buffer, 707 ... Read data register, 708 ... Stack pointer, 709 ... Multiplexer, 710 ... Memory module, 711 ... Memory Controller, 902 ... Bus interface, 904 ... Read data register, 905 ... Exclusive OR circuit (xor circuit), 1002 ... Buffer (FIFO), 1003 ... Bus interface, 1004 ... Read data register,
1005 ... Address register, 1006 ... Address generator, 1202 ... Bus interface, 1204 ...
Read data register, 1205 ... Exclusive OR circuit (xor circuit), 1402 ... Bus interface

フロントページの続き (72)発明者 田中 邦典 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 岩佐 繁明 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 酒井 浩 東京都青梅市末広町2丁目9番地 株式会 社東芝青梅工場内 (72)発明者 大溝 孝 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内Front Page Continuation (72) Inventor Kuninori Tanaka 1 Komukai Toshiba-cho, Sachi-ku, Kawasaki-shi, Kanagawa Inside the Toshiba Research and Development Center, Inc. (72) Inventor Shigeaki Iwasa Komukai Toshiba-cho, Kosaki-ku, Kawasaki-shi, Kanagawa Incorporated company Toshiba Research and Development Center (72) Inventor Hiroshi Sakai 2-9 Suehiro-cho, Ome, Tokyo Stock company Toshiba Ome factory (72) Inventor Takashi Omizo 1 Komukai Toshiba-cho, Kawasaki-shi, Kanagawa Banchi Co., Ltd. Toshiba Research & Development Center

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】複数のプロセッサと、バッファ領域および
メモリ領域を有する複数の記憶部とを相互に接続して構
成され、1つの記憶部のメモリ領域のうち1つのアドレ
スは、他の記憶部のメモリ領域のうち夫々1つのアドレ
スと1つのメモリグループを形成する電子計算機であっ
て、 各記憶部のメモリ領域のうち同一のメモリグループに属
するアドレスについて、いずれか1つの記憶部を除く他
の複数の記憶部のメモリ領域のうちの該当するアドレス
に格納されたデータを基にしてパリティを生成し、該1
つの記憶部のメモリ領域の該当するアドレスに該パリテ
ィを格納する手段と、 いずれかの前記プロセッサからいずれかの前記記憶部の
有するメモリ領域に対して、書込みデータと書込みアド
レスを含むライト要求が出力された場合に、該メモリ領
域中のデータ書込みを行うアドレスに記憶されたデータ
を読出し、この読出したデータと該書込みデータとの間
の差分を生成し、この差分と該アドレスを組にして該記
憶部の有する前記バッファ領域に格納するとともに該書
込みデータを該メモリ領域中の該アドレスに書込む手段
と、 チェックポイントを生成する際に、前記バッファに格納
された前記差分および前記アドレスに基づいて対応する
前記パリティを更新する手段とを備えたことを特徴とす
る電子計算機。
1. A plurality of processors and a plurality of storage sections each having a buffer area and a memory area are connected to each other, and one address of the memory areas of one storage section is stored in another storage section. An electronic computer that forms one address and one memory group in each memory area, and a plurality of addresses other than one of the memory areas of the memory areas of each memory section that belong to the same memory group. Parity is generated based on the data stored at the corresponding address in the memory area of the storage unit of
A means for storing the parity at a corresponding address in a memory area of one storage section, and a write request including write data and a write address from any of the processors to a memory area of the storage section In this case, the data stored in the address for writing data in the memory area is read, a difference between the read data and the write data is generated, and the difference is combined with the address to generate the difference. A unit for storing the write data in the buffer area of the storage unit and writing the write data in the address in the memory area; and a means for generating a checkpoint based on the difference and the address stored in the buffer. And a means for updating the corresponding parity.
【請求項2】いずれかの前記バッファの残量が所定の値
に達したことによりチェックポイントを生成することを
特徴とする請求項1に記載の電子計算機。
2. The electronic computer according to claim 1, wherein a checkpoint is generated when the remaining amount of any one of the buffers reaches a predetermined value.
【請求項3】複数のプロセッサと、バッファ領域および
メモリ領域を有する複数の記憶部とを相互に接続して構
成され、1つの記憶部のメモリ領域のうち1つのアドレ
スは、他の記憶部のメモリ領域のうち夫々1つのアドレ
スと1つのメモリグループを形成する電子計算機であっ
て、 各記憶部のメモリ領域のうち同一のメモリグループに属
するアドレスについて、いずれか1つの記憶部を除く他
の複数の記憶部のメモリ領域のうちの該当するアドレス
に格納されたデータを基にしてパリティを生成し、該1
つの記憶部のメモリ領域の該当するアドレスに該パリテ
ィを格納する手段と、 いずれかの前記プロセッサからいずれかの前記記憶部の
有するメモリ領域に対して、書込みデータと書込みアド
レスを含むライト要求が出力された場合に、該メモリ領
域中のデータ書込みを行うアドレスに記憶されたデータ
を読出し、この読出したデータと該アドレスを組にして
該記憶部の有する前記バッファ領域に格納するとともに
該書込みデータを該メモリ領域中の該アドレスに書込む
手段と、 前記バッファに格納された前記読出したデータと前記書
込みデータとの差分を生成し、この生成した差分と前記
バッファに格納された前記アドレスに基づいて対応する
パリティを更新する手段とを備えたことを特徴とする電
子計算機。
3. A plurality of processors and a plurality of storage sections each having a buffer area and a memory area are connected to each other, and one address of the memory areas of one storage section is stored in another storage section. An electronic computer that forms one address and one memory group in each memory area, and a plurality of addresses other than one of the memory areas of the memory areas of each memory section that belong to the same memory group. Parity is generated based on the data stored at the corresponding address in the memory area of the storage unit of
A means for storing the parity at a corresponding address in a memory area of one storage section, and a write request including write data and a write address from any of the processors to a memory area of the storage section In this case, the data stored in the address for writing the data in the memory area is read, the read data and the address are paired and stored in the buffer area of the storage unit, and the write data is stored. Means for writing to the address in the memory area, and generating a difference between the read data and the write data stored in the buffer, based on the generated difference and the address stored in the buffer An electronic computer comprising: means for updating the corresponding parity.
【請求項4】複数のプロセッサと、バッファ領域および
メモリ領域を有する複数の記憶部とを相互に接続して構
成され、1つの記憶部のメモリ領域のうち1つのアドレ
スは、他の記憶部のメモリ領域のうち夫々1つのアドレ
スと1つのメモリグループを形成する電子計算機であっ
て、 各記憶部のメモリ領域のうち同一のメモリグループに属
するアドレスについて、いずれか1つの記憶部を除く他
の複数の記憶部のメモリ領域のうちの該当するアドレス
に格納されたデータを基にしてパリティを生成し、該1
つの記憶部のメモリ領域の該当するアドレスに該パリテ
ィを格納する手段と、 いずれかの前記プロセッサからいずれかの前記記憶部の
有するメモリ領域に対して、書込みデータと書込みアド
レスを含むライト要求が出力された場合に、該メモリ領
域中のデータ書込みを行うアドレスに記憶されたデータ
を読出し、この読出したデータと該アドレスを組にして
該記憶部の有する前記バッファ領域に格納するとともに
該書込みデータを該メモリ領域中の該アドレスに書込む
手段と、 前記ライト要求に応答して、該ライト要求に含まれる前
記書込みアドレス対応するパリティを格納した他の記憶
部のメモリ領域中のアドレス記憶されたパリティを読出
し、この読出したパリティと該アドレスを組にして該記
憶部の有する前記バッファ領域に格納するとともに、該
ライト要求に含まれる前記書込みデータと該読出したパ
リティとの間の差分を生成し、この差分と該アドレスを
組にして該他の記憶部の有する前記バッファ領域に格納
する手段と、 チェックポイントを生成する際に、前記他の記憶部の有
する前記バッファ領域に格納された前記差分および前記
アドレスと、前記ライト要求が与えられた記憶部の有す
る前記バッファ領域に格納された前記読出したデータお
よび前記アドレスに基づいて対応する前記パリティを更
新する手段とを備えたことを特徴とする電子計算機。
4. A plurality of processors and a plurality of storage sections each having a buffer area and a memory area are connected to each other, and one address of the memory areas of one storage section is stored in another storage section. An electronic computer that forms one address and one memory group in each memory area, and a plurality of addresses other than one of the memory areas of the memory areas of each memory section that belong to the same memory group. Parity is generated based on the data stored at the corresponding address in the memory area of the storage unit of
A means for storing the parity at a corresponding address in a memory area of one storage section, and a write request including write data and a write address from any of the processors to a memory area of the storage section In this case, the data stored in the address for writing the data in the memory area is read, the read data and the address are paired and stored in the buffer area of the storage unit, and the write data is stored. A means for writing to the address in the memory area, and an address-stored parity in a memory area of another storage unit storing a parity corresponding to the write address included in the write request in response to the write request And stores the paired read parity and the address in the buffer area of the storage unit. At the same time, means for generating a difference between the write data and the read parity included in the write request, and storing the difference and the address in the buffer area of the other storage unit, When generating a checkpoint, the difference and the address stored in the buffer area of the other storage unit, and the read stored in the buffer area of the storage unit to which the write request is given. An electronic computer comprising: means for updating the corresponding parity based on the data and the address.
【請求項5】複数のプロセッサと、バッファ領域および
メモリ領域を有する複数の記憶部とを相互に接続して構
成され、1つの記憶部のメモリ領域のうち1つのアドレ
スは、他の記憶部のメモリ領域のうち夫々1つのアドレ
スと1つのメモリグループを形成する電子計算機であっ
て、 各記憶部のメモリ領域のうち同一のメモリグループに属
するアドレスについて、いずれか1つの記憶部を除く他
の複数の記憶部のメモリ領域のうちの該当するアドレス
に格納されたデータを基にしてパリティを生成し、該1
つの記憶部のメモリ領域の該当するアドレスに該パリテ
ィを格納する手段と、 いずれかの前記プロセッサからいずれかの前記記憶部の
有するメモリ領域に対して、書込みデータと書込みアド
レスを含むライト要求が出力された場合に、該メモリ領
域中のデータ書込みを行うアドレスに記憶されたデータ
を読出し、この読出したデータと該アドレスを組にして
該記憶部の有する前記バッファ領域に格納するとともに
該書込みデータを該メモリ領域中の該アドレスに書込む
手段と、 前記ライト要求に応答して、該ライト要求に含まれる前
記書込みアドレス対応するパリティを格納した他の記憶
部の有する前記バッファ領域に、前記書込みデータと対
応するパリティを格納したアドレスとを組にして格納す
る手段と、 チェックポイントを生成する際に、前記他の記憶部の有
する前記メモリ領域に格納された前記パリティ、前記他
の記憶部の有する前記バッファ領域に格納された前記書
込みデータおよび前記アドレス、および前記ライト要求
が与えられた記憶部の有する前記バッファ領域に格納さ
れた前記読出したデータおよび前記アドレスに基づいて
対応する前記パリティを更新する手段とを備えたことを
特徴とする電子計算機。
5. A plurality of processors and a plurality of storage sections having a buffer area and a memory area are connected to each other, and one address of the memory areas of one storage section is stored in another storage section. An electronic computer that forms one address and one memory group in each memory area, and a plurality of addresses other than one of the memory areas of the memory areas of each memory section that belong to the same memory group. Parity is generated based on the data stored at the corresponding address in the memory area of the storage unit of
A means for storing the parity at a corresponding address in a memory area of one storage section, and a write request including write data and a write address from any of the processors to a memory area of the storage section In this case, the data stored in the address for writing the data in the memory area is read, the read data and the address are paired and stored in the buffer area of the storage unit, and the write data is stored. A unit for writing to the address in the memory area; and, in response to the write request, the write data in the buffer area of another storage unit that stores the parity corresponding to the write address included in the write request. Generate a checkpoint and a means to store it as a pair with the address storing the corresponding parity In the storage unit to which the parity stored in the memory region of the other storage unit, the write data and the address stored in the buffer region of the other storage unit, and the write request are given. And a means for updating the corresponding parity based on the read data and the address stored in the buffer area of the electronic computer.
【請求項6】複数のプロセッサと、バッファ領域および
メモリ領域を有する複数の記憶部とを相互に接続して構
成され、1つの記憶部のメモリ領域のうち1つのアドレ
スは、他の記憶部のメモリ領域のうち夫々1つのアドレ
スと1つのメモリグループを形成する電子計算機であっ
て、 各記憶部のメモリ領域のうち同一のメモリグループに属
するアドレスについて、いずれか1つの記憶部を除く他
の複数の記憶部のメモリ領域のうちの該当するアドレス
に格納されたデータを基にしてチェックサムを生成し、
該1つの記憶部のメモリ領域の該当するアドレスに該チ
ェックサムを格納する手段と、 いずれかの前記プロセッサからいずれかの前記記憶部の
有するメモリ領域に対して、書込みデータと書込みアド
レスを含むライト要求が出力された場合に、該メモリ領
域中のデータ書込みを行うアドレスに記憶されたデータ
を読出し、この読出したデータと該書込みデータとの間
の差分を生成し、この差分と該アドレスを組にして該記
憶部の有する前記バッファ領域に格納するとともに該書
込みデータを該メモリ領域中の該アドレスに書込む手段
と、 前記バッファに格納された前記差分および前記アドレス
に基づいて対応する前記チェックサムを更新する手段と
を備えたことを特徴とする電子計算機。
6. A plurality of processors and a plurality of storage sections having a buffer area and a memory area are connected to each other, and one address of the memory areas of one storage section is stored in another storage section. An electronic computer that forms one address and one memory group in each memory area, and a plurality of addresses other than one of the memory areas of the memory areas of each memory section that belong to the same memory group. Generate a checksum based on the data stored at the corresponding address in the memory area of
Means for storing the checksum at a corresponding address in a memory area of the one storage unit, and write data including write data and a write address from one of the processors to a memory area of the one storage unit. When the request is output, the data stored at the address in the memory area where the data is written is read, a difference between the read data and the write data is generated, and the difference is combined with the address. Means for storing the write data in the buffer area of the storage unit and writing the write data in the address in the memory area, and the corresponding checksum based on the difference and the address stored in the buffer. And a means for updating the computer.
【請求項7】複数のプロセッサと、バッファ領域および
メモリ領域を有する複数の記憶部とを相互に接続して構
成され、1つの記憶部のメモリ領域のうち1つのアドレ
スは、他の記憶部のメモリ領域のうち夫々1つのアドレ
スと1つのメモリグループを形成する電子計算機であっ
て、 各記憶部のメモリ領域のうち同一のメモリグループに属
するアドレスについて、いずれか1つの記憶部を除く他
の複数の記憶部のメモリ領域のうちの該当するアドレス
に格納されたデータを基にしてチェックサムを生成し、
該1つの記憶部のメモリ領域の該当するアドレスに該チ
ェックサムを格納する手段と、 いずれかの前記プロセッサからいずれかの前記記憶部の
有するメモリ領域に対して、書込みデータと書込みアド
レスを含むライト要求が出力された場合に、該メモリ領
域中のデータ書込みを行うアドレスに記憶されたデータ
を読出し、この読出したデータと該アドレスを組にして
該記憶部の有する前記バッファ領域に格納するとともに
該書込みデータを該メモリ領域中の該アドレスに書込む
手段と、 前記バッファに格納された前記読出したデータおよび前
記アドレスと前記メモリ領域に格納された前記書込みデ
ータに基づいて対応するチェックサムを更新する手段と
を備えたことを特徴とする電子計算機。
7. A plurality of processors and a plurality of storage sections each having a buffer area and a memory area are connected to each other, and one address of the memory areas of one storage section is stored in another storage section. An electronic computer that forms one address and one memory group in each memory area, and a plurality of addresses other than one of the memory areas of the memory areas of each memory section that belong to the same memory group. Generate a checksum based on the data stored at the corresponding address in the memory area of
Means for storing the checksum at a corresponding address in a memory area of the one storage unit, and write data including write data and a write address from one of the processors to a memory area of the one storage unit. When the request is output, the data stored in the address in the memory area where the data is written is read, and the read data and the address are paired and stored in the buffer area of the storage unit. Means for writing write data to the address in the memory area, and updating a corresponding checksum based on the read data and the address stored in the buffer and the write data stored in the memory area. An electronic computer having means.
JP6221632A 1994-09-16 1994-09-16 Electronic computer Pending JPH0887424A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6221632A JPH0887424A (en) 1994-09-16 1994-09-16 Electronic computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6221632A JPH0887424A (en) 1994-09-16 1994-09-16 Electronic computer

Publications (1)

Publication Number Publication Date
JPH0887424A true JPH0887424A (en) 1996-04-02

Family

ID=16769817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6221632A Pending JPH0887424A (en) 1994-09-16 1994-09-16 Electronic computer

Country Status (1)

Country Link
JP (1) JPH0887424A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244933A (en) * 2000-12-15 2002-08-30 Hewlett Packard Co <Hp> System and method for dynamically tranferring check sum to different memory position
JP2002251331A (en) * 2001-01-12 2002-09-06 Hewlett Packard Co <Hp> System and method for utilizing checksum to recover data
JP2002251330A (en) * 2001-01-31 2002-09-06 Hewlett Packard Co <Hp> System for building checksum
JP2007052805A (en) * 2001-08-09 2007-03-01 Emc Corp Memory system and method for using same
JP2010182331A (en) * 2002-09-17 2010-08-19 Internatl Business Mach Corp <Ibm> Method for efficient emulation of memory consistency in multiprocessor
JP2012033169A (en) * 2010-07-29 2012-02-16 Ntt Docomo Inc Method and device for supporting live check pointing, synchronization, and/or recovery using coding in backup system
JP2013156886A (en) * 2012-01-31 2013-08-15 Nec Corp Calculation device, arithmetic processing system, method for setting check point, and program
US8578351B2 (en) 2002-09-17 2013-11-05 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US8719548B2 (en) 2002-09-17 2014-05-06 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor
JP2015138275A (en) * 2014-01-20 2015-07-30 株式会社デンソー Error correction detection device
JP2019215725A (en) * 2018-06-13 2019-12-19 株式会社デンソー Electronic control device and software generation method

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244933A (en) * 2000-12-15 2002-08-30 Hewlett Packard Co <Hp> System and method for dynamically tranferring check sum to different memory position
JP2002251331A (en) * 2001-01-12 2002-09-06 Hewlett Packard Co <Hp> System and method for utilizing checksum to recover data
JP2002251330A (en) * 2001-01-31 2002-09-06 Hewlett Packard Co <Hp> System for building checksum
JP2007052805A (en) * 2001-08-09 2007-03-01 Emc Corp Memory system and method for using same
JP2010182331A (en) * 2002-09-17 2010-08-19 Internatl Business Mach Corp <Ibm> Method for efficient emulation of memory consistency in multiprocessor
US8578351B2 (en) 2002-09-17 2013-11-05 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US8719548B2 (en) 2002-09-17 2014-05-06 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor
US9043194B2 (en) 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
JP2012033169A (en) * 2010-07-29 2012-02-16 Ntt Docomo Inc Method and device for supporting live check pointing, synchronization, and/or recovery using coding in backup system
JP2013156886A (en) * 2012-01-31 2013-08-15 Nec Corp Calculation device, arithmetic processing system, method for setting check point, and program
JP2015138275A (en) * 2014-01-20 2015-07-30 株式会社デンソー Error correction detection device
JP2019215725A (en) * 2018-06-13 2019-12-19 株式会社デンソー Electronic control device and software generation method

Similar Documents

Publication Publication Date Title
JP2916420B2 (en) Checkpoint processing acceleration device and data processing method
US7085955B2 (en) Checkpointing with a write back controller
EP0608344B1 (en) System for backing-up data for rollback
EP0569212A1 (en) Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
JPH0619722B2 (en) Device that saves the state of the computer
JPH0887424A (en) Electronic computer
US8458403B2 (en) Architecture and method for cache-based checkpointing and rollback
US5293602A (en) Multiprocessor computer system with dedicated synchronizing cache
CN1902581A (en) Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support
Borr Robustness to Crash in a Distributed Database: A Non Shared-memory Multi-Processor Approach.
US5557737A (en) Automated safestore stack generation and recovery in a fault tolerant central processor
US6810489B1 (en) Checkpoint computer system utilizing a FIFO buffer to re-synchronize and recover the system on the detection of an error
Tamir et al. The implementation and application of micro rollback in fault-tolerant VLSI systems.
CN111190774B (en) Configurable dual-mode redundancy structure of multi-core processor
JPH10240628A (en) Cache memory device
US6014757A (en) Fast domain switch and error recovery in a secure CPU architecture
JP3788822B2 (en) Computer system and failure recovery method in the system
KR100365891B1 (en) Backup/recovery Apparatus and method for non-log processing of real-time main memory database system
JP4146045B2 (en) Electronic computer
JP2001229063A (en) Data managing system
JP3450132B2 (en) Cache control circuit
Nakamikawa et al. High performance fault tolerant computer and its fault recovery
JPH10240620A (en) Computer system and check point image preservation method in the system
JPH05108388A (en) Process restoration system