(57)【要約】【課題】記憶データが不用意に破壊されることを防止し安全性を高めたメモリ装置および該メモリ装置を使用した信頼性の高いデータ処理装置を提供する。【解決手段】メモリ装置に、データを記憶するためのメモリ部１１と、前記メモリ部に書き込むデータを一時記憶するバッファ１３と、前記バッファから前記メモリ部へのデータ書き込みの可否を示す情報を記憶するセマフォレジスタ１９とを設ける。書き込みを行なう場合、予めセマフォレジスタ１９をセットしてメモリ部１１をロックし、書き込みデータを複数回に分けてバッファ１３に書き込む。バッファ１３にデータが記憶された後に、セマフォレジスタ１９のセットが解除されてメモリ部１１がアンロックされ、バッファ１３からメモリ部１１へ一度にデータ転送を行なう。このようなメモリ装置は例えばデータ処理装置におけるタスク間のチェックポイントの記録に使用する。【選択図】        図１
2005049975.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するためのメモリ部と、
前記メモリ部に書き込むデータを一時記憶するバッファと、
前記バッファから前記メモリ部へのデータ書き込みの可否を示す情報を記憶するセマフォレジスタと、
を具備し、前記メモリ部への書き込みを行う場合、予め前記セマフォレジスタをセットして前記メモリ部をロックし、書き込みデータを複数回に分けて前記バッファに書き込み、前記バッファにデータが記憶された後に、前記セマフォレジスタのセットが解除されて前記メモリ部がアンロックされた時に、前記バッファから前記メモリ部へ一度にデータ書き込みを行うことを特徴とする記憶データの安全性を高めたメモリ装置。
【請求項２】
前記セマフォレジスタがセットされている間に前記バッファへのデータ書き込みの完全性を損なう偶発的なリセット事象が生じた場合には、前記バッファの内容は破棄されることを特徴とする請求項１に記載のメモリ装置。
【請求項３】
前記セマフォレジスタがセットされている間に前記バッファへの書き込み動作が中断された場合は、前記バッファの内容は破棄されることを特徴とする請求項１に記載のメモリ装置。
【請求項４】
さらに、前記バッファへの書き込みデータを入力するデータバスを備え、該データバスの伝送容量が前記バッファの容量より小さいことを特徴とする請求項１に記載のメモリ装置。
【請求項５】
データの読出しは前記メモリ部から直接行われることを特徴とする請求項１に記載のメモリ装置。
【請求項６】
データ処理装置であって：
中央処理装置（ＣＰＵ）；および
メモリ装置であって、データを記憶するためのメモリ部と、前記メモリ部に書き込むデータを一時記憶するバッファと、前記バッファから前記メモリ部へのデータ書き込みの可否を示す情報を記憶するセマフォレジスタと、を備え、前記メモリ部への書き込みを行う場合、予め前記セマフォレジスタをセットして前記メモリ部をロックし、書き込みデータを複数回に分けて前記バッファに書き込み、前記バッファにデータが記憶された後に、前記セマフォレジスタのセットが解除されて前記メモリ部がアンロックされた時に、前記バッファから前記メモリ部へ一度にデータ書き込みを行うメモリ装置；
を具備し、前記中央処理装置は実行すべきジョブを複数のタスクに分けて実行し、各タスク間にはチェックポイントが設けられ、各タスク終了時に前記メモリ装置に対しチェックポイントデータの書き込みを行なうことによってチェックポイントの記録を行ない、かつ各タスク開始時に前記メモリ装置から前記チェックポイントデータを読み出すことによってチェックポイントの初期状態の再生を行なうことを特徴とするデータ処理装置。
【請求項７】
前記チェックポイントの記録は、各チェックポイントにおいて中央処理装置がタスクを再開するのに必要なチェックポイントデータを前記メモリ装置の前記バッファに順次書き込み、前記チェックポイントの記録中に前記バッファへのデータ書き込みの完全性を損なう偶発的なリセット事象または前記バッファへのデータ書き込みの中断が生じなかった場合に、前記バッファに書き込まれたデータを前記メモリ部へ一括転送することによって前記チェックポイントの記録を行なうことを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記セマフォレジスタがセットされている間に前記バッファへのデータ書き込みの完全性を損なう偶発的なリセット事象が生じた場合、あるいは前記バッファへの書き込み動作が途中で中断された場合は、前記バッファの内容は破棄されることを特徴とする請求項６または７に記載のデータ処理装置。
【請求項９】
前記偶発的なリセット事象はウォッチドッグタイマによって前記中央処理装置の動作の異常を検出した場合に前記中央処理装置にリセットをかけることによって生じる請求項７または８に記載のデータ処理装置。
【請求項１０】
前記偶発的なリセット事象はクロック発振器の発振停止を検出したことに応じて該クロック発振器と前記中央処理装置にリセットをかけることによって生じることを特徴とする請求項７または８に記載のデータ処理装置。
【請求項１１】
前記偶発的なリセット事象は前記データ処理装置に供給される電源電圧の瞬時的な低下を検出した場合に前記中央処理装置にリセットをかけることによって生じることを特徴とする請求項７または８に記載のデータ処理装置。
【請求項１２】
前記データ処理装置はマイクロ・コントローラ・ユニット（ＭＣＵ）であることを特徴とする請求項６〜１１の内のいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ装置およびデータ処理装置に関し、例えば自動車、保安制御その他のための高い信頼性を要求するコンピュータシステムなどに使用され、記憶データの安全性を高めたメモリ装置および該メモリ装置を用いたデータ処理装置に関する。
【０００２】
【従来の技術】
例えば自動車のエンジン制御、保安用機器その他においては高度のシステム機能を容易に実現するため、マイクロ・コントローラ・ユニット（ＭＣＵ）が使用されている。このようなマイクロ・コントローラ・ユニットはメモリ装置を内蔵したものが多い。このようなマイクロ・コントローラ・ユニットを使用し、かつ該マイクロ・コントローラ・ユニットを動かすプログラムを適切に設計することにより、比較的簡単な装置構成によって多様な機能を容易に達成することができる。そして、プログラムの工夫によってマイクロ・コントローラ・ユニットを使用したシステムの信頼性をある程度高めることができる。例えば自動車のエンジン制御の用途においては、何らかのパラメータの値が予め定められた範囲を逸脱した場合には、プログラムによってエンジンの動作を停止しあるいは制御することによって障害による悪影響を防止することができる。なお、従来技術の特許文献として特開平８−１５３０３９号公報、および特開２００２−２４４９９５号公報がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、このような従来のマイクロ・コントローラ・ユニット（ＭＣＵ）を使用したシステムにおいても、ＭＣＵに内蔵されたあるいはＭＣＵに接続されたメモリ装置の記憶データが破壊されれば、システムの信頼性ある動作は期待できなくなる。
【０００４】
一般に、ＭＣＵにおいては、メモリへの書き込み動作の間に例えばウォッチドッグ・リセットのような偶発的なハードウェア・リセット・シーケンスが生じた場合には、適切なメモリ内容を保つことは保証できなくなる。さらに、書き込みに複数サイクルを要する書き込みシーケンスが中断されると適切なメモリ内容を保つことができなくなり、記憶データの安全性が脅かされる。
【０００５】
このようなメモリ内容の安全性は、少容量のメモリを備えたＭＣＵにおいては問題とならないことが多い。それは、このような少容量のメモリを備えたＭＣＵにおいては、メモリ内容は短時間で書き込まれ、更新されあるいは初期化できるからである。しかしながら、大容量のメモリを備えたＭＣＵを初期化するには長い時間を必要とし、従って初期化のための応答速度が遅くなる。このため、大容量のメモリを備えたＭＣＵにおいては、上述のような偶発的な事象によって記憶データの安全性が脅かされる可能性が高くなる。
【０００６】
したがって、本発明の目的は、記憶データの安全性を高めたメモリ装置を提供することにある。
【０００７】
本発明の他の目的は、データ書き込みに複数サイクルを必要とする場合のように、データ書き込みに比較的長時間を要するメモリ装置にあっても的確にデータ書き込みが行なわれるようにすることにある。
【０００８】
本発明のさらに他の目的は、偶発的なリセット・シーケンスや書き込み動作の中断などによってメモリ内容の安全性が脅かされることのないメモリ装置およびそのようなメモリ装置を使用したデータ処理装置を提供することにある。
【０００９】
本発明のさらに他の目的は、記憶データの安全性に関して高い信頼性を有するメモリ装置およびそのようなメモリ装置を使用したデータ処理装置を提供することにある。
【００１０】
【課題を解決するための手段】
本発明の一態様によれば、記憶データの安全性を高めたメモリ装置が提供され、該メモリ装置は、データを記憶するためのメモリ部と、前記メモリ部に書き込むデータを一時記憶するバッファと、前記バッファから前記メモリ部へのデータ書き込みの可否を示す情報を記憶するセマフォレジスタと、を具備し、前記メモリ部への書き込みを行う場合、予め前記セマフォレジスタをセットして前記メモリ部をロックし、書き込みデータを複数回に分けて前記バッファに書き込み、前記バッファにデータが記憶された後に、前記セマフォレジスタのセットが解除されて前記メモリ部がアンロックされた時に、前記バッファから前記メモリ部へ一度にデータ書き込みを行うことを特徴とする。
【００１１】
前記メモリ装置において、前記セマフォレジスタがセットされている間に前記バッファへのデータ書き込みの完全性を損なう偶発的なリセット事象が生じた場合には、前記バッファの内容は破棄されるよう構成すると好都合である。
【００１２】
また、前記セマフォレジスタがセットされている間に前記バッファへの書き込み動作が中断された場合は、前記バッファの内容を破棄するよう構成すると好都合である。
【００１３】
さらに、前記バッファへの書き込みデータを入力するデータバスを備え、該データバスの伝送容量は前記バッファの容量より小さくてもよい。
【００１４】
さらに、データの読出しは前記メモリ部から直接行なうことができる。
【００１５】
本発明の他の態様によれば、データ処理装置が提供され、該データ処理装置は：中央処理装置（ＣＰＵ）；およびメモリ装置であって、データを記憶するためのメモリ部と、前記メモリ部に書き込むデータを一時記憶するバッファと、前記バッファから前記メモリ部へのデータ書き込みの可否を示す情報を記憶するセマフォレジスタと、を備え、前記メモリ部への書き込みを行う場合、予め前記セマフォレジスタをセットして前記メモリ部をロックし、書き込みデータを複数回に分けて前記バッファに書き込み、前記バッファにデータが記憶された後に、前記セマフォレジスタのセットが解除されて前記メモリ部がアンロックされた時に、前記バッファから前記メモリ部へ一度にデータ書き込みを行うメモリ装置；を具備し、前記中央処理装置は実行すべきジョブを複数のタスクに分けて実行し、各タスク間にはチェックポイントが設けられ、各タスク終了時に前記メモリ装置に対しチェックポイントデータの書き込みを行なうことによってチェックポイントの記録を行ない、かつ各タスク開始時に前記メモリ装置から前記チェックポイントデータを読み出すことによってチェックポイントの初期状態の再生を行なうことを特徴とする。
【００１６】
前記チェックポイントの記録は、各チェックポイントにおいて中央処理装置がタスクを再開するのに必要なチェックポイントデータを前記メモリ装置の前記バッファに順次書き込み、前記チェックポイントの記録中に前記バッファへのデータ書き込みの完全性を損なう偶発的なリセット事象または前記バッファへのデータ書き込みの中断がなかった場合に、前記バッファに書き込まれたデータを前記メモリ部へ一括転送することによって前記チェックポイントの記録を行なうと好都合である。
【００１７】
前記セマフォレジスタがセットされている間に前記バッファへのデータ書き込みの完全性を損なう偶発的なリセット事象が生じた場合、あるいは前記バッファへの書き込み動作が途中で中断された場合は、前記バッファの内容は破棄されるよう構成することができる。
【００１８】
前記偶発的なリセット事象はウォッチドッグタイマによって前記中央処理装置の動作の異常を検出した場合に前記中央処理装置をリセットすることによって生じるものとすることができる。
【００１９】
あるいは、前記偶発的なリセット事象はクロック発振器の発振停止を検出したことに応じて該クロック発振器と前記中央処理装置にリセットをかけることによって生じるものであってもよい。
【００２０】
さらに、前記偶発的なリセット事象は前記データ処理装置に供給される電源電圧の瞬時的な低下を検出した場合に前記中央処理装置にリセットをかけることによって生じるものであってもよい。
【００２１】
前記データ処理装置はマイクロ・コントローラ・ユニット（ＭＣＵ）であってもよい。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の好ましい実施形態につき説明する。
図１は、本発明の一実施形態に係わるメモリ装置の概略の構成を示す。同図に示されるメモリ装置は、メモリ部１１と、バッファ１３と、アドレスデコーダ１５と、セレクタ１７と、セマフォレジスタ１９などによって構成される。
【００２３】
メモリ部１１は複数のメモリセル１１ａを備えている。各メモリセル１１ａは、例えば、フリップフロップ、トランスペアレントなラッチ、その他で構成される。バッファ１３は、メモリ部１１への書き込みデータを一時記憶するために設けられ、複数のビットセル１３ａから構成される。各ビットセル１３ａは、メモリ部１１のメモリセル１１ａと同様に、フリップフロップ、トランスペアレントなラッチ、その他で構成される。アドレスデコーダ１５は、アドレスバス２３から入力される書き込みアドレスをデコードしてバッファ１３の各ビットセル１３ａの制御端子Ｇに供給される制御信号を生成するものである。さらに、セレクタ１７はメモリ部１１からの出力の内アドレスバス２７によって指定されたアドレスに対応する読出しデータを読出し用データバス２９に出力するものである。
【００２４】
セマフォレジスタ（ｓｅｍａｐｈｏｒｅ  ｒｅｇｉｓｔｅｒ）１９は、例えばフリップフロップによって構成され、ロック指示信号（ＬＯＣＫ）およびコミット信号（ＣＯＭＭＩＴ）すなわち書き込み転送指示信号を受け、これらの信号の論理状態に応じて、イネーブル信号（ＥＮＡＢＬＥ）および内部コミット信号を出力するものである。より詳細には、セマフォレジスタ１９は、ロック指示信号を受けて内部コミット信号を出力しメモリ部１１をロック、すなわち書き込み禁止する。また、イネーブル信号を出力してアドレスデコーダ１５に供給し、アドレスバス２３からのアドレスデータに応じてバッファ１３へのデータ書き込みを許容する。セマフォレジスタ１９は、さらに、入力コミット信号を受けて、内部コミット信号をメモリ部１１に供給し、バッファ１３からメモリ部１１へのデータ書き込みを許容する。
【００２５】
メモリ部１１の各メモリセル１１ａは、バッファ１３の対応するビットセル１３ａの出力Ｑを受けるデータ入力Ｄと、セマフォレジスタ１９からの内部コミット信号を受ける制御端子Ｇと、記憶した信号を出力する出力端子Ｑを備えている。出力端子Ｑはセレクタ１７に接続されている。
【００２６】
バッファ１３の各ビットセル１３ａも、メモリ部１１のメモリセル１１ａと同様に、データ入力端子Ｄ、制御端子Ｇ、および出力端子Ｑを備えている。データ入力端子Ｄは書き込み用データバス２５に接続され、制御端子Ｇはアドレスデコーダ１５の出力に接続されている。
【００２７】
このような構成を有するメモリ装置は、例えば後述のようにマイクロ・コントローラ・ユニット（ＭＣＵ）に内蔵され、該ＭＣＵの中央処理装置（ＣＰＵ）がプログラムを実行する時に安全性が必要なデータを記憶するために使用される。
【００２８】
次に、図１に示されるメモリ装置の動作を説明する。前述のようにＣＰＵがプログラムに従って動作し、メモリ装置の書き込みを行ないメモリ内容を更新しようとする場合は、まず、プログラムによってセマフォレジスタ１９にロック信号が供給され、該セマフォレジスタ１９がメモリ部１１への書き込みをロックする。すなわち、セマフォレジスタ１９から出力される内部コミット信号が否定、例えば論理“０”とされる。このロック状態の間は、メモリ部１１へのデータ書き込みは行なわれず、書き込みデータはまずバッファ１３に書き込まれる。ただし、図１のメモリ装置からの読出しは、メモリ部１１の記憶データをアドレスバス２７から供給されるアドレス信号に従ってセレクタ１７が選択し、読出し用データバス２９に読出しデータを出力することができる。
【００２９】
上記メモリロック状態では、セマフォレジスタ１９はイネーブル信号を肯定し、例えば論理“１”とする。これに応じて、アドレスバス２３から供給される書き込みアドレスデータがアドレスデコーダ１５に供給されて、バッファ１３の選択されたビットセル１３ａに書き込み用データバス２５からのデータが書き込まれる。ＭＣＵにおいては、バッファ１３のビット数、すなわちビットセル１３ａの数が書き込み用データバス２５のビット数より大きい場合が多く、このような場合はバッファ１３へのデータ書き込みは複数の書き込みサイクルによって行なわれる。
【００３０】
このようなバッファ１３へのデータ書き込みを行なっている途中で、例えばＣＰＵがリセットされることがある。これは、例えばＣＰＵがハードウェア的に問題があり、正常に動作しないことが検出された場合に、ＣＰＵをリセットすることによって障害に対処しＣＰＵを含むシステムを保護する。このようなリセットは、例えば、ＭＣＵに内蔵された図示しないウォッチドッグ・タイマのタイムアップによりウォッチドッグ・リセットが行なわれる場合などに相当する。このようなリセットが行なわれると、ＭＣＵを使用したシステムのプログラム処理が中断され、再びプログラムの始めから処理が実行される。
【００３１】
したがって、バッファ１３へのデータ書き込みの途中でこのようなリセットが生じた場合には、バッファ１３の内容は破棄され、後に説明するバッファ１３からメモリ部１１へのデータ転送は行なわれない。
【００３２】
バッファ１３へのデータ書き込みが完了すると、ＣＰＵはセマフォレジスタ１９に対しロックを解除しコミット信号を供給する。これに応じて、セマフォレジスタ１９は内部コミット信号を肯定し、例えば論理“１”とし、メモリ部１１への書き込みをアンロックする。したがって、バッファ１３の各ビットセル１３ａの記憶データが一度にメモリ部１１の対応するメモリセル１１ａに書き込まれる。すなわち、セマフォレジスタのアンロック動作に対応してコミット動作が行なわれる。
【００３３】
このように、メモリがロックされている間に偶発的なリセットシーケンスが生じた場合には、バッファの内容は破棄され、従ってメモリ部１１の記憶データは変更されない。そして、メモリ部１１への書き込みは前記コミット動作によって一度に行なわれるから、メモリ部１１の記憶データは破壊されることがなく的確なデータへと更新され、安全な状態に保たれる。
【００３４】
図２は、上述のようなメモリ装置、すなわちコミット可能（ｃｏｍｍｉｔａｂｌｅ）メモリ装置、を含むデータ処理装置の一例を示す。このようなデータ処理装置は、例えばマイクロ・コントローラ・ユニット（ＭＣＵ）として、例えば、１つの集積回路チップ上に構成することもできる。図２のデータ処理装置は、中央処理装置（ＣＰＵ）３１と、該ＣＰＵ３１とバス３３によって接続されたウォッチドッグタイマ３５、コミット可能メモリ３７、ランダムアクセスメモリ（ＲＡＭ）３９、および周辺機器４１などによって構成される。
【００３５】
ウォッチドッグタイマ３５は、例えば、ＣＰＵ３１が異常動作を引き起こしていることを動作タイミングの監視などによって検出し、ＣＰＵ３１にリセットをかけるものである。コミット可能メモリ３７は、後に説明するように、ＣＰＵ３１が実行するジョブの各タスク間に設けられたチェックポイントにおいて、データ処理装置の動作を再開する上で必要な各レジスタ、フラグ、その他のチェックポイントデータを保存するために使用されるものである。ＲＡＭ３９は、例えばＣＰＵ３１が実行するプログラムや処理データを記憶するものである。また、周辺機器４１は、例えば自動車のエンジン制御その他のようにＭＣＵによって制御を受けるペリフェラル機器であり、ＭＣＵの外部に設けられることが多い。
【００３６】
図２に示されるデータ処理装置においては、ＣＰＵ３１はＲＡＭ３９に記憶されたプログラムに従って周辺機器４１を制御するための所定のジョブを実行する。該所定のジョブは複数のタスクに分けて順次実行され、各タスクの間にチェックポイントが設けられる。各チェックポイントにおいては、該チェックポイントにおけるデータ処理装置各部のステータスデータ、例えばレジスタ、フラグ、その他のデータ処理装置の動作に必要なデータをコミット可能メモリ３７に記憶させることによってチェックポイントの記録が行なわれる。また、各チェックポイントからのタスクを開始する場合には、コミット可能メモリ３７から必要なデータを読み出すタスクの初期化が行なわれる。これによって、後により詳細に説明するように中央処理装置はジョブを外乱の影響を受けることなく安全に実行することが可能になる。なお、図２のウォッチドッグタイマ３５は、ＣＰＵ３１がタスクを実行している最中に、ＣＰＵ３１の動作異常から本来実行すべきプログラムを実行していない時にウォッチドッグタイマ３５が異常を検出し、ＣＰＵ３１に対して非同期に、すなわちＣＰＵ３１の動作とは無関係に、リセットをかける。
【００３７】
図３は、上記コミット可能メモリが使用されるデータ処理装置の別の構成例を示す。図３のデータ処理装置は、図２のデータ処理装置におけるウォッチドッグタイマ３５に代えて、あるいはウォッチドッグタイマ３５に加えて、水晶振動子４３を有するクロック発振器４５と該クロック発振器の発振状態を監視するクロックモニタ４７とを備えている。その他の部分は、図２のものと同じでよく、同一参照数字で示されている。
【００３８】
図３の中央処理装置においては、例えば水晶振動子または水晶発振子４３が、外乱により発振を停止し、または異常発振を始めた場合は、クロックモニタ４７がこのような異常状態を検出し、クロック発振器４５とＣＰＵ３１に非同期に、すなわちＣＰＵの動作とは無関係に、リセットをかけて再起動を行なう。
【００３９】
図４は、本発明に係わるコミット可能メモリを使用したデータ処理装置の別の構成例を示す。同図のデータ処理装置は、商用電源からデータ処理装置を動作させるための電源電圧を生成する安定化電源装置４９と、商用電源の瞬時的な低下を検出する瞬停検出部５１を備えている。その他の部分は図２のデータ処理装置と同じ構成でよく、同一部分は同一参照数字で示されている。
【００４０】
図４のデータ処理装置においては、データ処理装置が例えば商用電源で動作している場合に、該商用電源の瞬間的な電力の低下を検出した場合に、ＣＰＵ３１にリセットをかけ、不安定な状態になる前に安全に停止させる。この場合、データ処理装置のシステムは、図示しないバックアップ電源によってメモリのデータを保持したままで、システムの他の部分への電力を断って、電力の回復を待つ。この場合に、ＣＰＵ３１を安全に停止する目的で、非同期にリセットをかける。
【００４１】
なお、図２、図３および図４に示される各データ処理装置においては、ウォッチドッグタイマ３５によるリセット、クロックモニタ４７などによるリセット、瞬停検出回路５１などによるリセットを行なう回路部分のみが示されているが、これらの各回路部分は任意の組み合わせで複数種類の回路部分をデータ処理装置に設けてもよいことは明らかである。
【００４２】
次に、上述のようなデータ処理装置において、コミット可能メモリを設けることによりどのようにして記憶データの安全性が保たれ信頼性の高いジョブの実行が行なわれるかなどにつき詳細に説明する。
【００４３】
一例として、ある計算時間の長いジョブがある場合に、このジョブを雑音が多いなどの悪環境下で実行すると、実行中に雑音の影響を受けてジョブの実行が中断されてしまう場合がある。例えば図５に示すように、雑音などによる外乱のない場合は、計算時間の長いジョブでも、該ジョブの開始から終了まで中断されることなく実行できる。これに対し、外乱のある場合は、ジョブの開始後外乱によって重要なデータが破壊され、ジョブが中断されることがある。特に、ジョブの開始から終了までの時間が長くなればなる程、外乱の影響を受け易くなり、ジョブが中断された場合には始めからやり直す必要があり、全体のジョブ処理時間が指数関数的に長くなってしまう。
【００４４】
このような不都合を除去するため、ジョブを複数のタスクに細切れにして、各タスクの間にチェックポイントを設ける。そして、ジョブが中断された場合には、その中断の直前のチェックポイントからジョブを再開する方法が用いられる。すなわち、図６に示すように、ジョブをチェックポイントＣＰ１，ＣＰ２，ＣＰ３，ＣＰ４などによって複数のタスクに分けて順次実行する。各タスクにおいては、該タスクの開始時にチェックポイントから初期状態の再生、すなわち初期化、を行ない、また、各ジョブの終了時にチェックポイントの記録を行なう。チェックポイントの記録では、データ処理装置がタスクまたはジョブを実行するのに必要なパラメータがメモリに記録される。これらのパラメータは、例えばデータ処理システムの各レジスタ、フラグ、その他のデータなどが保持される。各タスクの開始時には、これらの各データがメモリから読み出されレジスタなどにセットされて初期状態の再生が行なわれた後タスクが実行される。これによって、チェックポイントからの初期状態の再生およびチェックポイントの記録というオーバヘッドが増えるが、中断されたジョブは確実に実行される。
【００４５】
すなわち、図６では、チェックポイントＣＰ２の後のタスクの実行中にＣＰＵの偶発的なリセットなどのジョブの中断が生じた場合には、チェックポイントＣＰ２から再びタスクを再開する。また、チェックポイントＣＰ４の後のタスクで中断が生じた場合には、該チェックポイントＣＰ４から再びタスクを再開しジョブを確実に終了することができる。
【００４６】
ところが、このような処理方式でも、「チェックポイントの記録」のフェーズで、処理が中断されてしまうと、次に実行すべきタスクの初期状態が再生できなくなる可能性がある。すなわち、図７に示すように、各タスクには、処理を実行するタスク本体部分と、該処理の実行が終了した後に、チェックポイントとして必要なデータを記録するチェックポイントの記録のフェーズがある。例えば、チェックポイントとして必要な情報はＡ，Ｂ，Ｃ，Ｄ，Ｅであり、これら全てのデータをタスク終了時に記録しておく必要があるものとする。この場合、チェックポイントの記録中に偶発的なリセットにより、データＤおよびＥを記録する前に処理が中断してしまうと、そのチェックポイントはデータが壊れていることになり使用不能になる。このため、通常ジョブ全体のやり直しが必要となる。
【００４７】
このような場合に、本発明に係わるコミット可能メモリをチェックポイントの記録に使用することにより、チェックポイントの整合性を保ち、ジョブ全体のやり直しを行なうことなく、安全かつ迅速にタスクを実行しジョブを終了することができる。
【００４８】
例えば、図８に示されるように、本発明に係わるデータ処理装置においては、各タスクにおけるタスク本体部の後のチェックポイントの記録のフェーズにおいて、チェックポイントとして必要なデータＡ，Ｂ，Ｃ，Ｄ，Ｅを順次コミット可能メモリのバッファ（図１の１３）に書き込む。そして、チェックポイントの記録が中断されることなく行なわれ、前記バッファへのデータ書き込みが完全に行なわれた場合には、前記バッファへの書き込み終了後にセマフォレジスタ（１９、図１）のセットが解除されてバッファからメモリ部（１１、図１）に対し一度にデータ転送が行なわれ、すなわちコミット動作が行なわれる。これによって、チェックポイントのデータは新たな値に更新される。
【００４９】
これに対し、例えば図９に示されるように、チェックポイントの記録中にＣＰＵのリセットなどにより処理が中断された場合には、前記「コミット」動作が発生しないので、チェックポイントは更新されない。この場合は、バッファの内容は破棄され、チェックポイントは該バッファの内容によって更新されることはない。このため、チェックポイントの記録のフェーズで処理の中断があった場合には、タスクのやり直しが行なわれ、該タスクの初期状態はコミット可能メモリに前から保持されているデータによって正しく再生することができる。したがって、チェックポイントに必要なデータが破壊されてジョブを始めからやり直す必要はなくなり、迅速にジョブを終了することが可能になる。
【００５０】
【発明の効果】
以上から明らかなように、本発明によれば、ＣＰＵが偶発的にリセットされても、メモリ部の記憶データは破壊されることなく安全な状態で保存される。また、メモリ部へのデータ書き込みはバッファから一度に行なわれるから、メモリ部に対し不適切なデータが書き込まれる可能性は極めて低くなる。したがって、本発明のメモリ装置によれば、記憶データの安全性を高めることができ、かつこのようなメモリ装置を使用したデータ処理装置の信頼性を大幅に高め処理速度の低下を防止することが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係わるメモリ装置の概略の構成を示すブロック図である。
【図２】本発明に係わるメモリ装置を使用した中央処理装置の概略の構成を示すブロック図である。
【図３】本発明に係わるメモリ装置を使用したデータ処理装置の他の構成例を示すブロック図である。
【図４】本発明に係わるメモリ装置を使用したデータ処理装置のさらに他の構成例を示すブロック図である。
【図５】中央処理装置によって実行されるジョブの外乱による影響を示す説明図である。
【図６】ジョブを複数のタスクに分割して実行する処理を示す説明図である。
【図７】タスクのチェックポイントの記録中における処理の中断の様子を示す説明図である。
【図８】本発明に係わるメモリ装置を使用してチェックポイントの記録を行なう手順を示す説明図である。
【図９】本発明に係わるメモリ装置を使用してチェックポイントを記録した場合における、チェックポイントの記録中の処理の中断があった場合の処理の様子を示す説明図である。
【符号の説明】
１１  メモリ部
１１ａ  メモリセル
１３  バッファ
１３ａ  ビットセル
１５  アドレスデコーダ
１７  セレクタ
１９  セマフォレジスタ
３１  中央処理装置（ＣＰＵ）
３３  バス
３５  ウォッチドッグタイマ
３７  コミット可能メモリ
３９  ランダムアクセスメモリ（ＲＡＭ）
４１  周辺機器
４３  水晶発振子
４５  クロック発振器
４７  クロックモニタ
４９  安定化電源装置
５１  瞬停検出回路
【図１】
2005049975.tif 000003
【図２】
2005049975.tif 000004
【図３】
2005049975.tif 000005
【図４】
2005049975.tif 000006
【図５】
2005049975.tif 000007
【図６】
2005049975.tif 000008
【図７】
2005049975.tif 000009
【図８】
2005049975.tif 000010
【図９】
2005049975.tif 000011