(57)【要約】【課題】外部メモリからのデータの再書き込みを行うことなく、かつ回路規模を増大させることなくパリティエラーが発生したデータを復旧し得るデータ復旧回路を提供する。【解決手段】記憶領域内の実使用領域ＲＡＭ０に、実データを書き込み、コピー領域ＲＡＭ３にバックアップデータを書き込み、実データとバックアップデータの書き込み処理を並行して行う書き込み処理回路と、実データとバックアップデータを並行して読み出して、パリティエラーとなった実データを復旧する読み出し処理回路とを備え、書き込み処理回路には、実データを偶パリティで書き込む第一のパリティ発生回路２と、バックアップデータを奇パリティで書き込み、実データを偶パリティで該コピー領域に上書きする第二のパリティ発生回路３とを備え、読み出し処理回路は、偶パリティチェッカーと、奇パリティチェッカーとを備えた。【選択図】図１
2008225983.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域内の実使用領域に、パリティビットを付加した実データを書き込み、記憶領域内のコピー領域にパリティビットを付加したバックアップデータを書き込むとともに、前記実データとバックアップデータの書き込み処理を並行して行う書き込み処理回路と、
前記実使用領域と前記コピー領域から前記実データとバックアップデータを並行して読み出してパリティチェックを行い、パリティエラーとなった実データを復旧可能としたバックアップデータを出力する読み出し処理回路と
を備え、
前記書き込み処理回路には、
前記実データを偶パリティで前記実使用領域に書き込む第一のパリティ発生回路と、
前記バックアップデータを奇パリティで前記コピー領域に書き込み、前記実データを偶パリティで該コピー領域に上書きする第二のパリティ発生回路と
を備え、
前記読み出し処理回路は、
前記実データのパリティエラーを検出する偶パリティチェッカーと、
前記コピー領域から読み出されたデータがバックアップデータか否かを検出する奇パリティチェッカーと
を備えたことを特徴とするパリティエラー復旧回路。
【請求項２】
前記書き込み処理回路は、複数のコピー領域に前記バックアップデータを並行して書き込む並行処理部を備え、
前記読み出し処理回路は、前記各コピー領域から読み出されたバックアップデータのいずれかを選択して出力する選択部を備えたことを特徴とする請求項１記載のパリティエラー復旧回路。
【請求項３】
前記読み出し処理回路は、パリティエラーが検出された実データに差し替えて前記バックアップデータを出力する差し替え回路を備えたことを特徴とする請求項１記載のパリティエラー復旧回路。
【請求項４】
前記読み出し処理回路は、
パリティエラーが検出された実データのアドレスを格納するアドレス保持レジスタと、
パリティエラーが検出された実データのバックアップデータを保持するバックアップデータ格納レジスタと
を備えたことを特徴とする請求項１記載のパリティエラー復旧回路。
【請求項５】
前記読み出し処理回路は、
パリティエラーが検出された実データに差し替えて前記バックアップデータを出力する差し替え回路と、
パリティエラーが検出された実データのバックアップデータを保持するバックアップデータ格納レジスタと、
前記バックアップデータが格納されているアドレスを保持するバックアップアドレス格納レジスタと
を備えたことを特徴とする請求項３記載のパリティエラー復旧回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＲＡＭに格納されたデータにパリティエラーが発生したとき、そのエラーを復旧するパリティエラー復旧回路に関するものである。
ＲＡＭに格納されたプログラムあるいはその他のデータは、種々のデータ破壊要因により稀にソフトエラーが発生することがある。そこで、このようなエラーを事前に検出して、システムの誤動作を防止するためにＲＡＭの書き込み及び読み出し装置にパリティチェック機能を備え、パリティエラーが検出された場合にはファームウェアによる復旧作業を行なうようにしたものがある。しかし、ファームウェア（firm ware）による復旧作業は、処理時間が長くなるため、パリティチェック機能を利用しながらさらに効率的にエラーを復旧することが必要となっている。
【背景技術】
【０００２】
従来、ＲＡＭに格納されたプログラムデータに発生するソフトエラーを復旧するために、パリティチェック機能を備えたエラー復旧回路が提案されている。このデータ復旧回路の動作を説明すると、ＲＡＭには例えば１バイト毎に１ビットのパリティビットを設け、データを書き込み動作時には８ビットのデータと１ビットのパリティビットを加え、９ビットを一組とし例えば１の数が偶数となるように書き込まれる。
【０００３】
データの読み出し動作時には、９ビットずつの一組のデータの１の数が偶数であるか否かをチェックする。そして、ソフトエラーによりＲＡＭのデータが破壊されると、通常１組のデータのうち１ビットのみのデータが反転して１の数が奇数となるため、エラーフラグが生成される。また、エラーが発生したとき、当該エラーが発生しているアドレスをラッチする。
【０００４】
そして、ファームウェアによる割り込み処理に基づいて、エラー状況が確認され、破壊されたデータを含むプログラムデータの原データがフラッシュメモリ等の外部メモリから読み出されて再書き込み処理される。
【０００５】
特許文献１には、ＳＲＡＭ上の全プログラムエリアに対し、定期的にパリティエラーの検出処理を行い、パリティエラーが検出されたとき、データの再書き込みを行う情報制御装置が開示されている。
【特許文献１】特開２０００−１３２４６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のような従来のエラー復旧回路では、パリティチェックによりＲＡＭに格納されているプログラムデータにエラーが検出された場合には、割り込みハンドラによる割り込み処理により、外部メモリからすべてのプログラムデータの原データを読み出してＲＡＭに再書き込みする必要がある。従って、復旧処理に時間を要するという問題点がある。
【０００７】
また、データにＥＣＣコードを付加してエラー訂正を行う方法もあるが、エラー訂正回路を搭載するために回路規模が増大するとともに、アクセス時間も増大する。
この発明の目的は、外部メモリからのデータの再書き込みを行うことなく、かつ回路規模を増大させることなくパリティエラーが発生したデータを復旧し得るデータ復旧回路を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的は、記憶領域内の実使用領域に、パリティビットを付加した実データを書き込み、記憶領域内のコピー領域にパリティビットを付加したバックアップデータを書き込むとともに、前記実データとバックアップデータの書き込み処理を並行して行う書き込み処理回路と、前記実使用領域と前記コピー領域から前記実データとバックアップデータを並行して読み出してパリティチェックを行い、パリティエラーとなった実データを復旧可能としたバックアップデータ出力する読み出し処理回路とを備え、前記書き込み処理回路には、前記実データを偶パリティで前記実使用領域に書き込む第一のパリティ発生回路と、前記バックアップデータを奇パリティで前記コピー領域に書き込み、前記実データを偶パリティで該コピー領域に上書きする第二のパリティ発生回路とを備え、前記読み出し処理回路は、前記実データのパリティエラーを検出する偶パリティチェッカーと、前記コピー領域から読み出されたデータがバックアップデータか否かを検出する奇パリティチェッカーとを備えたパリティエラー復旧回路により達成される。
【発明の効果】
【０００９】
本発明によれば、外部メモリからのデータの再書き込みを行うことなく、かつ回路規模を増大させることなくパリティエラーが発生したデータを復旧し得るデータ復旧回路を提供することができる。
【発明を実施するための最良の形態】
【００１０】
（第一の実施の形態）
以下、この発明を具体化した第一の実施の形態を図面に従って説明する。図１は、プログラムデータをＲＡＭに書き込むための書き込み処理回路の構成を示す。ＲＡＭ０〜ＲＡＭ３はプログラムデータあるいはその他のデータを書き込み可能とした４つの記憶領域であり、一旦プログラムデータを格納した領域は殆ど書き換えを行なわない領域となる。
【００１１】
この実施の形態は、上記のような記憶領域のうち、ＲＡＭ０を実使用領域としてプログラムデータにパリティビットを付加して書き込み、当面は空き領域であるＲＡＭ３をコピー領域として、プログラムデータと同一のバックアップデータを同じくパリティビットを付加して書き込み可能としている。
【００１２】
書き込み動作時には、書き込み制御部であるＣＰＵから書き込み制御信号ＷＣ０がＲＡＭ０に入力される。この書き込み制御信号ＷＣ０は、ＲＡＭに対する書き込み動作を制御するために必要となる複数の信号である。また、ＲＡＭ０に入力される書き込み制御信号ＷＣ０はセレクタ１ａにも入力される。
【００１３】
前記セレクタ１ａには、ＣＰＵから出力される書き込み制御信号ＷＣ３が入力される。この書き込み制御信号ＷＣ３は、ＲＡＭ３にプログラムデータを書き込む場合にＣＰＵから出力される信号である。
【００１４】
また、前記セレクタ１ａにはバックアップ制御信号ＢＵがＣＰＵから出力される。セレクタ１ａは、バックアップ制御信号ＢＵがＨレベルとなると、書き込み制御信号ＷＣ０を選択してＲＡＭ３に出力し、バックアップ制御信号ＢＵがＬレベルとなると、書き込み制御信号ＷＣ３を選択してＲＡＭ３に出力する。
【００１５】
ＲＡＭ０に書き込むプログラムデータとしてＣＰＵから供給される書き込みデータＷＤは、パリティ発生回路（第一のパリティ発生回路）２に入力される。パリティ発生回路２は例えば８ビットの書き込みデータＷＤに対し１ビットのパリティビットを付加し、１の数が偶数となる偶パリティの９ビットの書き込みデータＷＤｐｅを生成してＲＡＭ０に供給する。また、パリティ発生回路２で生成された書き込みデータＷＤｐｅは、逆パリティ生成部（第二のパリティ発生回路）３に入力される。
【００１６】
逆パリティ生成部３の具体的構成を説明すると、書き込みデータＷＤｐｅは分割部４に入力されて、パリティビットＰｂと書き込みデータＷＤに分離される。パリティビットＰｂはＥＯＲ回路５に入力され、そのＥＯＲ回路５には前記バックアップ制御信号ＢＵが入力される。そして、分割部４から出力された書き込みデータＷＤとＥＯＲ回路５の出力信号とが合成部６で合成されて、９ビットの書き込みデータＷＤｐとしてＲＡＭ３に供給される。
【００１７】
バックアップ制御信号ＢＵがＨレベルとなって制御信号ＷＣ０がＲＡＭ３に供給されるときには、パリティビットＰｂが０であればＥＯＲ回路５で１に反転され、パリティビットＰｂが１であれば０に反転される。従って、パリティ発生回路２で偶パリティの書き込みデータＷＤｐｅが生成されていると、ＲＡＭ３に書き込まれる書き込みデータＷＤｐは、１の数が奇数となる奇パリティのデータとなる。
【００１８】
一方、バックアップ制御信号ＢＵがＬレベルとなって制御信号ＷＣ３がＲＡＭ３に供給されるときには、パリティビットＰｂは逆パリティ生成部３で反転されることはなく、ＲＡＭ３には偶パリティの書き込みデータＷＤｐｅが書き込まれる。
【００１９】
図２は、前記パリティ発生回路２の具体的構成を示す。前記書き込みデータＷＤは、８ビットのデータＤ０〜Ｄ７のうち、データＤ０，Ｄ１がＥＯＲ回路７ａに入力され、データＤ２〜Ｄ４がＥＯＲ回路７ｂに入力され、データＤ５〜Ｄ７がＥＯＲ回路７ｃに入力される。
【００２０】
また、ＥＯＲ回路７ａ〜７ｃの出力信号がＥＯＲ回路７ｄに入力され、そのＥＯＲ回路７ｄの出力信号と書き込みデータＷＤが合成されて９ビットの書き込みデータＷＤｐｅが生成される。
【００２１】
このような構成により、書き込みデータＤ０〜Ｄ７の１の数が奇数となる場合にはＥＯＲ回路７ｄの出力信号が１となり、書き込みデータＤ０〜Ｄ７の１の数が偶数となる場合にはＥＯＲ回路７ｄの出力信号が０となる。従って、パリティ発生回路２から出力される書き込みデータＷＤｐｅは偶パリティとなる。
【００２２】
前記ＣＰＵから出力されるアドレス信号ＡＤＲはＲＡＭ０，ＲＡＭ３に供給され、ＲＡＭ０，ＲＡＭ３では対応するアドレスに対し、書き込み動作あるいは読み出し動作が行われる。
【００２３】
上記のような書き込み処理回路の動作を説明すると、ＣＰＵから出力されるバックアップ制御信号ＢＵがＨレベルとなると、書き込み制御信号ＷＣ０がＲＡＭ０，ＲＡＭ３に並行して供給され、ＲＡＭ０にはパリティ発生回路２で生成された偶パリティの書き込みデータＷＤｐｅがアドレス信号ＡＤＲで選択されたアドレスに順次書き込まれる。
【００２４】
同時に、ＲＡＭ３はＲＡＭ０のコピー領域として使用されて、逆パリティ生成部３で生成された奇パリティの書き込みデータＷＤｐがバックアップデータとしてアドレス信号ＡＤＲで選択されたアドレスに順次書き込まれる。
【００２５】
また、バックアップ制御信号ＢＵがＬレベルの場合には、ＲＡＭ３には書き込み制御信号ＷＣ３が入力されるため、ＲＡＭ３を実使用領域として使用して、ＲＡＭ０とは異なるプログラムデータあるいはその他のデータを偶パリティで上書き可能となる。
【００２６】
図３は、読み出し処理回路を示す。ＣＰＵから供給される読み出し制御信号ＲＣ０は、ＲＡＭ０に入力されるとともに、セレクタ１ｂに入力される。また、ＣＰＵから供給される読み出し制御信号ＲＣ３が前記セレクタ１ｂに入力される。読み出し制御信号ＲＣ０，ＲＣ３は、ＲＡＭ０，３からデータを読み出すために必要となる複数の制御信号である。
【００２７】
前記セレクタ１ｂにはバックアップ制御信号ＢＵが入力される。そして、バックアップ制御信号ＢＵがＨレベルであれば、セレクタ１ｂから読み出し制御信号ＲＣ０がＲＡＭ３に出力され、Ｌレベルであれば、セレクタ１ｂから読み出し制御信号ＲＣ３がＲＡＭ３に出力される。
【００２８】
ＲＡＭ０から読み出される読み出しデータＲＤ０と、ＲＡＭ３から読み出される読み出しデータＲＤ３はセレクタ１ｃに入力される。セレクタ１ｃにはＣＰＵから供給される選択信号ＳＬが入力される。そして、選択信号ＳＬがＨレベルとなるとセレクタ１ｃからＲＡＭ３の読み出しデータＲＤ３が出力され、選択信号ＳＬがＬレベルとなるとセレクタ１ｃからＲＡＭ０の読み出しデータＲＤ０が出力される。
【００２９】
前記セレクタ１ｃの出力信号は偶パリティチェッカー８に出力されるとともに、パリティビットを除いたデータが読み出しデータＲＤとしてＣＰＵに出力される。偶パリティチェッカー８は、セレクタ１ｃから出力される読み出しデータが偶パリティであれば、Ｈレベルの信号を出力し、奇パリティであればＬレベルの信号を出力する。
【００３０】
偶パリティチェッカー８の出力信号はインバータ回路９に入力される。そして、偶パリティチェッカー８の出力信号がＬレベルとなると、すなわちＲＡＭ０の出力信号にパリティエラーが発生していると、インバータ回路９からＨレベルの割り込みフラグＦが出力される。
【００３１】
前記インバータ回路９の出力信号は、フリップフロップ回路１０ａに入力されるとともに、ＡＮＤ回路１１ａに入力される。フリップフロップ回路１０ａは、入力信号を僅かに遅延させた出力信号を出力し、その出力信号の反転信号が前記ＡＮＤ回路１１ａに入力される。従って、インバータ回路９の出力信号がＬレベルからＨレベルに遷移するとき、ＡＮＤ回路１１ａの入力信号がフリップフロップ回路１０ａによる遅延時間に相当する時間に限ってともにＨレベルとなり、ＡＮＤ回路１１ａの出力信号がその時間でＨレベルとなる。
【００３２】
前記ＡＮＤ回路１１ａの出力信号はアドレス保持レジスタ１２にイネーブル信号ＥＮとして出力される。また、アドレス保持レジスタ１２にはアドレス信号ＡＤＲがフリップフロップ回路１０ｂを介してデータとして入力される。そして、イネーブル信号ＥＮがＨレベルとなると、アドレス保持レジスタ１２は入力されているアドレス信号ＡＤＲをラッチする。なお、図３においてアドレス保持レジスタ１２はアドレス信号の全ビットをラッチするものである。また、フリップフロップ回路１０ａはパリティエラー発生フラグを示し、本フリップフロップ回路がクリアされるまで、次のエラーが生じてもアドレス保持レジスタ１２は更新されない。
【００３３】
このような構成により、ＲＡＭ０の読み出しデータＲＤ０にパリティエラーが発生すると、当該エラーが発生しているアドレスがアドレス保持レジスタ１２にラッチされる。
前記ＲＡＭ３の読み出しデータＲＤ３は、奇パリティチェッカー１３に入力される。奇パリティチェッカー１３は、ＲＡＭ３から出力される読み出しデータが奇パリティであれば、Ｈレベルの信号を出力し、偶パリティであればＬレベルの信号をＡＮＤ回路１１ｂに出力する。
【００３４】
前記ＡＮＤ回路１１ｂには前記選択信号ＳＬの反転信号と、前記偶パリティチェッカー８の出力信号の反転信号が入力される。すると、ＲＡＭ３に奇パリティのバックアップデータが書き込まれ、奇パリティチェッカー１３の出力信号がＨレベルで、セレクタ１ｃでＲＡＭ０が選択され、偶パリティチェッカー８の出力信号がＬレベルとなってＲＡＭ０の出力信号にパリティエラーが発生していると、ＡＮＤ回路１１ｂの出力信号がＨレベルとなる。
【００３５】
フリップフロップ回路１０ｃ及びＡＮＤ回路１１ｃは、前記フリップフロップ回路１０ａ及びＡＮＤ回路１１ａと同様に動作する。従って、ＡＮＤ回路１１ｂの出力信号がＬレベルからＨレベルに遷移するとき、ＡＮＤ回路１１ｃからＨレベルのイネーブル信号ＥＮがバックアップデータ格納レジスタ１４に出力される。
【００３６】
前記バックアップデータ格納レジスタ１４には、前記ＲＡＭ３の読み出しデータＲＤ３のうちパリティビットを除いたデータが入力され、Ｈレベルのイネーブル信号ＥＮの入力よりそのデータを格納する。従って、ＲＡＭ０の出力信号にパリティエラーが発生し、かつＲＡＭ３から出力される読み出しデータが奇パリティであれば、パリティエラーが発生したＲＡＭ０のアドレスと同一のアドレスでＲＡＭ３から読み出されたバックアップデータがバックアップデータ格納レジスタ１４に格納される。
【００３７】
なお、フリップフロップ回路１０ｃはバックアップデータ保持フラグを示し、本フリップフロップ回路がクリアされるまで、次のバックアップ許可が生じてもバックアップデータ格納レジスタ１４は更新されない。
【００３８】
前記割り込みフラグＦは割り込みハンドラに入力される。割り込みハンドラは、割り込みフラグＦがＨレベルであると、アドレス保持レジスタ１２に格納されているアドレスとバックアップデータ格納レジスタ１４に格納されているデータとをＣＰＵに出力して、パリティエラーが発生している読み出しデータＲＤをバックアップする。
【００３９】
図４は、前記偶パリティチェッカー８の具体的構成を示す。９ビットの読み出しデータＲＤ０は、ＥＯＲ回路１５ａ〜１５ｃに３ビットずつ入力され、各ＥＯＲ回路１５ａ〜１５ｃの出力信号がＥＮＯＲ回路１６に入力され、ＥＮＯＲ回路１６から偶パリティチェッカー８の出力信号が出力される。このような構成により、読み出しデータＲＤ０が偶パリティであるとき、Ｈレベルの出力信号を出力し、奇パリティであるときＬレベルの出力信号を出力する。
【００４０】
図５は、前記奇パリティチェッカー１３の具体的構成を示す。９ビットの読み出しデータＲＤ３は、ＥＯＲ回路１５ｄ〜１５ｆに３ビットずつ入力され、各ＥＯＲ回路１５ｄ〜１５ｆの出力信号がＥＯＲ回路１５ｇに入力され、ＥＯＲ回路１５ｇから奇パリティチェッカー１３の出力信号が出力される。このような構成により、読み出しデータＲＤ３が奇パリティであるとき、Ｈレベルの出力信号を出力し、偶パリティであるときＬレベルの出力信号を出力する。
【００４１】
上記のような読み出し処理回路の動作を説明する。前記書き込み処理回路によりＲＡＭ０には実使用領域として偶パリティのプログラムデータが書き込まれ、ＲＡＭ３にはコピー領域として奇パリティのバックアップデータが書き込まれている状態で、選択信号ＳＬがＬレベルであり、バックアップ信号ＢＵがＨレベルである場合を説明する。
【００４２】
この状態で、ＣＰＵにより供給されるアドレス信号ＡＤＲに基づいてＲＡＭ０からプログラムデータが読み出されるとき、セレクタ１ｃから読み出しデータＲＤ０が偶パリティチェッカー８に供給される。そして、読み出しデータＲＤ０が偶パリティであるか否かが偶パリティチェッカー８で判定されて、読み出しデータＲＤ０にパリティエラーが発生していないか否かが判定される。
【００４３】
また、ＲＡＭ３にもアドレス信号ＡＤＲが供給され、当該アドレスに対応する読み出しデータＲＤ３が読み出されて奇パリティチェッカー１３に入力され、その奇パリティチェッカー１３で読み出しデータＲＤ３が奇パリティであるか否かが判定される。
【００４４】
読み出しデータＲＤ０にパリティエラーが発生していると、当該エラーが発生しているアドレスがアドレス保持レジスタ１２に保持される。また、ＲＡＭ３の当該アドレスに格納されているバックアップデータがバックアップデータ格納レジスタ１４に保持される。そして、アドレス保持レジスタ１２に保持されたアドレスと、バックアップデータ格納レジスタ１４に保持されたバックアップデータとに基づいて、割り込みハンドラによりＣＰＵへのバックアップ動作が行われる。
【００４５】
また、読み出しデータＲＤ３が奇パリティでない場合には、奇パリティチェッカー１３の出力信号がＬレベルとなってバックアップデータ格納レジスタ１４にはバックアップデータが格納されない。
【００４６】
また、ＲＡＭ３が実使用領域として使用されてプログラムデータが書き込まれていると、ＣＰＵから選択信号ＳＬがＨレベルとなるとともにバックアップ信号ＢＵがＬレベルとなる。
【００４７】
すると、ＲＡＭ３には読み出し制御信号ＲＣ３が入力され、その読み出し制御信号ＲＣ３とアドレス信号ＡＤＲに基づいてＲＡＭ３から読み出された読み出しデータＲＤ３は、セレクタ１ｃから読み出しデータＲＤとして出力される。
【００４８】
上記のように構成されたパリティエラー復旧回路では、次に示す作用効果を得ることができる。
（１）複数の記憶領域を備えたＲＡＭ０〜ＲＡＭ３において、ＲＡＭ０を実使用領域としてプログラムデータを書き込むとき、空き領域であるＲＡＭ３をコピー領域としてプログラムデータと同一のバックアップデータを並行して書き込む。そして、ＲＡＭ０からのプログラムデータの読み出し動作時にエラーが発生した場合には、コピー領域に格納されているバックアップデータを使用してエラーを復旧することができる。従って、ファームウェアによるプログラムデータの再書き込みを行う必要がないので、復旧処理を速やかに行うことができる。
（２）バックアップデータを格納したコピー領域にはバックアップデータ以外の他のデータを上書きして実使用領域として使用することもできる。
（３）実使用領域であるＲＡＭ０にはプログラムデータを偶パリティで書き込み、読み出し動作時には偶パリティチェッカー８でパリティエラーを検出することができる。また、コピー領域であるＲＡＭ３にはバックアップデータを奇パリティで書き込んで、奇パリティチェッカーでバックアップデータであることを検出することができる。そして、偶パリティチェッカー８でパリティエラーを検出すると、当該エラーが発生したアドレスをアドレス保持レジスタ１２に格納し、ＲＡＭ３から読み出された当該アドレスのバックアップデータをバックアップデータ格納レジスタ１４に格納することができる。
（４）偶パリティチェッカー８でパリティエラーを検出したとき、偶パリティチェッカー８から出力される割り込みフラグＦと、アドレス保持レジスタ１２に格納されたアドレスと、バックアップデータ格納レジスタ１４に格納されたデータによりエラーを復旧することができる。
（５）ＥＣＣコードを使用したデータ復旧回路に比して、回路規模の増大を抑制することができる。
（第二の実施の形態）
図６は、第二の実施の形態の書き込み処理回路を示す。この実施の形態は、前記第一の実施の形態の書き込み処理回路にインバータ回路１７を追加したものであり、その他の構成は第一の実施の形態と同様である。第一の実施の形態と同一構成部分は同一符号を付して説明する。
【００４９】
ＲＡＭ０にプログラムデータを書き込むとき、コピー領域で使用するＲＡＭ３にはアドレス信号ＡＤＲをインバータ回路１７で反転させて入力する。
すると、ＲＡＭ０へのプログラムデータの書き込みに並行して、ＲＡＭ３にバックアップデータを書き込むとき、ＲＡＭ０に下位アドレスから順にデータを書き込むと、ＲＡＭ３には上位アドレスから順にデータが書き込まれる。
【００５０】
このような構成により、ＲＡＭ３へのバックアップデータの書き込み後に、ＲＡＭ３を実使用領域として使用してデータを上書きする際に、下位アドレスから順に上書きすると、全アドレスにデータが上書きされなければ、上位アドレスにバックアップデータが残る。従って、ＲＡＭ３を実使用領域として使用しても、ＲＡＭ０で発生したパリティエラーをＲＡＭ３のバックアップデータで復旧できる可能性を高くすることができる。
（第三の実施の形態）
図７及び図８は、第三の実施の形態を示す。この実施の形態は、実使用領域へのプログラムデータの書き込みに並行して、複数のコピー領域に同一のバックアップデータを書き込む構成としたものである。
【００５１】
図７は、この実施の形態の書き込み処理回路を示す。第一の実施の形態では、ＲＡＭ３をコピー領域として使用したが、この実施の形態ではＲＡＭ３に加えてＲＡＭ２もコピー領域として使用する場合を示す。
【００５２】
ＲＡＭ０に入力されるアドレス信号ＡＤＲは、ＲＡＭ３に加えＲＡＭ２に供給される。また、逆パリティ生成部３の出力信号ＷＤｐはＲＡＭ３とともにＲＡＭ２にも書き込みデータとして出力される。
【００５３】
また、ＲＡＭ０の書き込み制御信号ＷＣ０はセレクタ１ｄに入力され、そのセレクタ１ｄにはＲＡＭ２の書き込み制御信号ＷＣ２が入力される。また、セレクタ１ｄにはバックアップ信号ＢＵが入力され、バックアップ信号ＢＵがＨレベルとなると、書き込み制御信号ＷＣ０がＲＡＭ２に出力され、バックアップ信号ＢＵがＬレベルとなると、書き込み制御信号ＷＣ２がＲＡＭ２に出力される。その他の構成は、前記第一の実施の形態と同様である。
【００５４】
上記のような構成により、バックアップ信号ＢＵがＨレベルとなると、ＲＡＭ０の書き込み制御信号ＷＣ０がＲＡＭ３，ＲＡＭ２に入力される。そして、ＲＡＭ０に偶パリティのプログラムデータが書き込まれ、並行してＲＡＭ３，ＲＡＭ２に奇パリティのバックアップデータが書き込まれる。従って、セレクタ１ａ，１ｄ及び逆パリティ生成部３がＲＡＭ３，ＲＡＭ２にバックアップデータを並行して書き込む並行処理部として動作する。
【００５５】
また、バックアップ信号ＢＵがＬレベルであれば、ＲＡＭ３には書き込み制御信号ＷＣ３が入力され、ＲＡＭ２には書き込み制御信号ＷＣ２が入力されて、実使用領域としてそれぞれプログラムデータを書き込み可能となる。
【００５６】
図８は、この実施の形態の読み出し処理回路を示す。第一の実施の形態と同一構成部分は同一符号を付して説明する。
アドレス信号ＡＤＲは、ＲＡＭ０〜ＲＡＭ３にそれぞれ入力される。ＲＡＭ０に入力される読み出し制御信号ＲＣ０は、セレクタ１ｂに加えてセレクタ１ｅに入力され、そのセレクタ１ｅにはＲＡＭ２の読み出し制御信号ＲＣ２が入力される。そして、セレクタ１ｅはバックアップ信号ＢＵがＨレベルとなると、読み出し制御信号ＲＣ０をＲＡＭ２に出力し、バックアップ信号ＢＵがＬレベルとなると、読み出し制御信号ＲＣ２をＲＡＭ２に出力する。
【００５７】
ＲＡＭ０，ＲＡＭ３，ＲＡＭ２の読み出しデータＲＤ０，ＲＤ３，ＲＤ２はセレクタ１ｆに入力され、セレクタ１ｆはＣＰＵから供給される選択信号ＳＬ２，ＳＬ３により読み出しデータＲＤ０，ＲＤ３，ＲＤ２のいずれかを選択して偶パリティチェッカー８に出力する。
【００５８】
すなわち、選択信号ＳＬ２，ＳＬ３がともにＬレベルであれば、読み出しデータＲＤ０が選択されて偶パリティチェッカー８に出力され、選択信号ＳＬ３がＨレベルで選択信号ＳＬ２がＬレベルであれば、読み出しデータＲＤ３が出力され、選択信号ＳＬ３がＬレベルで選択信号ＳＬ２がＨレベルであれば、読み出しデータＲＤ２が出力される。
【００５９】
奇パリティチェッカー１３の出力信号が入力されるＡＮＤ回路１１ｂには、前記偶パリティチェッカー８の出力信号の反転信号と、前記選択信号ＳＬ３の反転信号が入力される。そして、ＡＮＤ回路１１ｂの出力信号がＯＲ回路１９に出力される。
【００６０】
ＲＡＭ２の読み出しデータＲＤ２は奇パリティチェッカー１８に出力され、その奇パリティチェッカー１８の出力信号がＡＮＤ回路１１ｄに入力される。ＡＮＤ回路１１ｄには、前記偶パリティチェッカー８の出力信号の反転信号と、前記選択信号ＳＬ２の反転信号が入力される。そして、ＡＮＤ回路１１ｄの出力信号がＯＲ回路１９に出力される。そして、ＯＲ回路１９の出力信号がフリップフロップ回路１０ｃ及びＡＮＤ回路１１ｃに出力される。
【００６１】
ＲＡＭ３の読み出しデータＲＤ３からパリティビットを除いたデータと、ＲＡＭ２の読み出しデータＲＤ２からパリティビットを除いたデータはセレクタ（選択部）１ｇに入力される。セレクタ１ｇは、前記ＡＮＤ回路１１ｂの出力信号がＨレベルとなると、読み出しデータＲＤ３からパリティビットを除いたデータをバックアップデータ格納レジスタ１４に出力し、前記ＡＮＤ回路１１ｂの出力信号がＬレベルとなると、読み出しデータＲＤ２からパリティビットを除いたデータをバックアップデータ格納レジスタ１４に出力する。その他の構成は、前記第一の実施の形態と同様である。
【００６２】
上記のような読み出し処理回路の動作を説明する。前記書き込み処理回路によりＲＡＭ０には実使用領域として偶パリティのプログラムデータが書き込まれ、ＲＡＭ３，ＲＡＭ２にはコピー領域として奇パリティのバックアップデータが書き込まれている状態で、選択信号ＳＬ２，ＳＬ３がＬレベルであり、バックアップ信号ＢＵがＨレベルである場合を説明する。
【００６３】
この状態で、ＣＰＵにより供給されるアドレス信号ＡＤＲに基づいてＲＡＭ０からプログラムデータが読み出されるとき、ＲＡＭ０から読み出された読み出しデータＲＤ０がセレクタ１ｆで選択されて偶パリティチェッカー８に出力される。そして、偶パリティチェッカー８で読み出しデータＲＤ０が偶パリティであるか否かが判定されて、読み出しデータＲＤ０にパリティエラーが発生していないか否かが判定される。
【００６４】
また、ＲＡＭ３，ＲＡＭ２にもアドレス信号ＡＤＲが供給され、当該アドレスに対応する読み出しデータＲＤ３，ＲＤ２が奇パリティであるか否かが奇パリティチェッカー１３，１８で判定される。
【００６５】
読み出しデータＲＤ０にパリティエラーが発生していると、当該エラーが発生しているアドレスがアドレス保持レジスタ１２に保持される。また、ＲＡＭ３，ＲＡＭ２に奇パリティのバックアップデータが書き込まれていると、ＡＮＤ回路１１ｂ，１１ｄの出力信号がＨレベルとなり、読み出しデータＲＤ３からパリティビットを除いたデータがセレクタ１ｇから出力されて、バックアップデータ格納レジスタ１４に格納される。
【００６６】
ＲＡＭ３にバックアップデータ以外のデータが偶パリティで上書きされていれば、ＡＮＤ回路１１ｂの出力信号はＬレベルであるので、ＲＡＭ２の読み出しデータＲＤ２からパリティビットを除いたデータがセレクタ１ｇから出力されて、バックアップデータ格納レジスタ１４に格納される。
【００６７】
そして、アドレス保持レジスタ１２に保持されたアドレスと、バックアップデータ格納レジスタ１４に保持されたバックアップデータとに基づいて、割り込みハンドラによりＣＰＵへのバックアップ動作が行われる。
【００６８】
また、ＲＡＭ３，ＲＡＭ２がともに実使用領域として使用されてプログラムデータが書き込まれていて、ＲＡＭ３，ＲＡＭ２のいずれかからプログラムデータを読み出す場合には、ＣＰＵから出力される選択信号ＳＬ２，ＳＬ３のいずれかがＨレベルとなるとともにバックアップ信号ＢＵがＬレベルとなる。
【００６９】
すると、ＲＡＭ３，ＲＡＭ２には読み出し制御信号ＲＣ３，ＲＣ２が入力され、その読み出し制御信号ＲＣ３，ＲＣ２とアドレス信号ＡＤＲに基づいてＲＡＭ３，ＲＡＭ２から読み出された読み出しデータＲＤ３，ＲＤ２のいずれかがセレクタ１ｆで選択される。そして、選択された読み出しデータからパリティビットを除いたデータが読み出しデータＲＤとして出力される。
【００７０】
この実施の形態は、第一の実施の形態で得られた作用効果に加えて次に示す作用効果を得ることができる。
（１）複数のコピー領域であるＲＡＭ３，ＲＡＭ２に並行してバックアップデータを書き込むので、ＲＡＭ３，ＲＡＭ２のいずれかにプログラムデータを上書きして実使用領域として使用しても、残りのコピー領域からバックアップデータを読み出して、ＲＡＭ０の読み出しデータＲＤ０のエラーを復旧することができる。
（第四の実施の形態）
図９は、第四の実施の形態を示す。この実施の形態は、実使用領域からのデータの読み出し動作時にパリティエラーが発生したとき、エラーが発生した読み出しデータをコピー領域から読み出したバックアップデータに差し替えて出力する構成とした読み出し処理回路を示すものである。前記第一の実施の形態と同一構成部分は同一符号を付して説明する。また、この実施の形態の書き込み処理回路は、前記第一の実施の形態と同一である。
【００７１】
偶パリティチェッカー８の出力信号の反転信号は、ＡＮＤ回路１１ｅ，１１ｆに入力される。奇パリティチェッカー１３の出力信号は、ＡＮＤ回路１１ｅに入力されるとともに、その反転信号がＡＮＤ回路１１ｆに入力される。
【００７２】
セレクタ１ｃから出力される読み出しデータのうちパリティビットを除いたデータと、ＲＡＭ３から読み出される読み出しデータＲＤ３のうちパリティビットを除いたデータはセレクタ１ｈに入力される。また、セレクタ１ｈは前記ＡＮＤ回路１１ｅの出力信号に基づいて出力するデータを選択する。
【００７３】
そして、セレクタ１ｈはＡＮＤ回路１１ｅの出力信号がＬレベルとなるとセレクタ１ｃの出力信号を読み出しデータＲＤとして出力し、ＡＮＤ回路１１ｅの出力信号がＨレベルとなると読み出しデータＲＤ３からパリティビットを除いたデータを読み出しデータＲＤとして出力する。従って、ＡＮＤ回路１１ｅ，１１ｆ及びセレクタ１ｈはパリティエラーが発生した読み出しデータＲＤ０をバックアップデータに差し替える差し替え回路として動作する。
【００７４】
前記ＡＮＤ回路１１ｆの出力信号は、割り込みフラグＦとして出力されるとともに、フリップフロップ回路１０ａ及びＡＮＤ回路１１ａに出力される。
このような構成の読み出し処理回路では、ＲＡＭ０からセレクタ１ｃを介して偶パリティチェッカー８に偶パリティの読み出しデータＲＤ０が出力されると、偶パリティチェッカー８の出力信号はＨレベルとなる。
【００７５】
すると、ＡＮＤ回路１１ｅの出力信号はＬレベルとなるため、読み出しデータＲＤ０からパリティビットを除いたデータが読み出しデータＲＤとして出力される。
また、偶パリティチェッカー８に奇パリティの読み出しデータＲＤ０が出力されると、偶パリティチェッカー８の出力信号はＬレベルとなる。また、ＲＡＭ３に奇パリティのバックアップデータが格納されていると、奇パリティチェッカー１３の出力信号はＨレベルとなる。
【００７６】
すると、ＡＮＤ回路１１ｅの出力信号はＨレベルとなり、読み出しデータＲＤ３からパリティビットを除いたデータがセレクタ１ｈから読み出しデータとして出力される。
また、ＲＡＭ３が実使用領域として使用されて、ＲＡＭ３から実データを読み出すとき、バックアップ信号ＢＵはＬレベルとなり、ＲＡＭ３では読み出し制御信号ＲＣ３に基づいて読み出し動作が行われる。また、選択信号ＳＬはＨレベルとなる。
【００７７】
すると、ＲＡＭ３の読み出しデータＲＤ３はセレクタ１ｃを介して偶パリティチェッカー８に出力され、偶パリティチェッカー８の出力信号がＨレベルとなる。そして、ＡＮＤ回路１１ｅの出力信号はＬレベルとなるため、読み出しデータＲＤ３からパリティビットを除いたデータがセレクタ１ｈから読み出しデータＲＤとして出力される。
【００７８】
この実施の形態は、第一の実施の形態で得られた作用効果（１）（２）に加えて、次に示す作用効果を得ることができる。
（１）実使用領域であるＲＡＭ０から読み出したデータにパリティエラーが発生した場合には、当該エラーが発生したデータをコピー領域に書き込まれているバックアップデータに差し替えて出力することができる。従って、パリティエラーを直ちに復旧することができる。
（第五の実施の形態）
図１０は、第五の実施の形態を示す。この実施の形態は、前記第四の実施の形態の読み出し処理回路にバックアップデータを格納するレジスタと、バックアップ処理を行ったアドレスを格納するレジスタとを備え、そのアドレス及びバックアップデータに基づいて、ファームウェアにより任意のタイミングで実使用領域のエラーデータを正しいデータに書き戻す機能を備えたものである。また、この実施の形態の書き込み処理回路は、前記第一の実施の形態と同一である。前記第一及び第四の実施の形態と同一構成部分は同一符号を付して説明する。
【００７９】
図１０において、ＡＮＤ回路１１ｅ，１１ｆは第四の実施の形態と同一構成であり、ＡＮＤ回路１１ｂは第一の実施の形態と同一構成である。また、フリップフロップ回路１０ｃ、ＡＮＤ回路１１ｃ、バックアップデータ格納レジスタ１４も第一の実施の形態と同一構成である。
【００８０】
前記ＡＮＤ回路１１ｃの出力信号は、バックアップアドレス格納レジスタ２０にイネーブル信号として入力される。また、バックアップアドレス格納レジスタ２０にはフリップフロップ回路１０ｂから出力されるアドレス信号ＡＤＲが入力される。
【００８１】
従って、バックアップデータ格納レジスタ１４にバックアップデータが格納されると同時に、バックアップアドレス格納レジスタ２０にはバックアップ処理を行ったアドレスが格納される。その他の構成は、第四の実施の形態と同様である。
【００８２】
このように構成された読み出し処理回路では、ＲＡＭ０からセレクタ１ｃを介して偶パリティチェッカー８に偶パリティの読み出しデータＲＤ０が出力されると、第四の実施の形態と同様に、読み出しデータＲＤ０からパリティビットを除いたデータが読み出しデータＲＤとして出力される。
【００８３】
また、偶パリティチェッカー８に奇パリティの読み出しデータＲＤ０が出力され、ＲＡＭ３に奇パリティのバックアップデータが格納されていると、読み出しデータＲＤ３からパリティビットを除いたデータがセレクタ１ｈから読み出しデータＲＤとして出力される。
【００８４】
このとき、バックアップデータ格納レジスタ１４には読み出しデータＲＤが格納され、バックアップアドレス格納レジスタ２０にはＲＡＭ３に格納されているバックアップデータを読み出しデータＲＤとして出力したアドレスが格納される。
【００８５】
また、ＲＡＭ３が実使用領域として使用されて、ＲＡＭ３から実データを読み出すとき、バックアップ信号ＢＵはＬレベルとなり、ＲＡＭ３では読み出し制御信号ＲＣ３に基づいて読み出し動作が行われる。また、選択信号ＳＬはＨレベルとなる。
【００８６】
すると、ＲＡＭ３の読み出しデータＲＤ３はセレクタ１ｃを介して偶パリティチェッカー８に出力され、偶パリティチェッカー８の出力信号がＨレベルとなる。そして、ＡＮＤ回路１１ｅの出力信号はＬレベルとなるため、読み出しデータＲＤ３からパリティビットを除いたデータがセレクタ１ｈから読み出しデータＲＤとして出力される。
【００８７】
この実施の形態は、第四の実施の形態で得られた作用効果に加えて、次に示す作用効果を得ることができる。
（１）パリティエラーが発生したアドレスと、パリティエラーが発生したデータを差し替えたバックアップデータをそれぞれレジスタに格納しているので、そのアドレス及びバックアップデータを使用して、ファームウェアにより任意のタイミングで実使用領域のエラーデータを正しいデータに書き戻すことができる。
【００８８】
上記実施の形態は、以下の態様で実施してもよい。
・実使用領域に奇パリティで書き込み、コピー領域に偶パリティで書き込んでもよい。
・実使用領域に格納するデータは、プログラムデータ以外のデータでもよい。
・第三〜第五の実施の形態において、第二の実施の形態に示すように、バックアップデータをＲＡＭ３あるいはＲＡＭ２の上位ビットから書き込むようにしてもよい。
（付記１）記憶領域内の実使用領域に、パリティビットを付加した実データを書き込み、記憶領域内のコピー領域にパリティビットを付加したバックアップデータを書き込むとともに、前記実データとバックアップデータの書き込み処理を並行して行う書き込み処理回路と、
前記実使用領域と前記コピー領域から前記実データとバックアップデータを並行して読み出してパリティチェックを行い、パリティエラーとなった実データを復旧可能としたバックアップデータ出力する読み出し処理回路と
を備え、
前記書き込み処理回路には、
前記実データを偶パリティで前記実使用領域に書き込む第一のパリティ発生回路と、
前記バックアップデータを奇パリティで前記コピー領域に書き込み、前記実データを偶パリティで該コピー領域に上書きする第二のパリティ発生回路と
を備え、
前記読み出し処理回路は、
前記実データのパリティエラーを検出する偶パリティチェッカーと、
前記コピー領域から読み出されたデータがバックアップデータか否かを検出する奇パリティチェッカーと
を備えたことを特徴とするパリティエラー復旧回路。
（付記２）前記書き込み処理回路は、複数のコピー領域に前記バックアップデータを並行して書き込む並行処理部を備え、
前記読み出し処理回路は、前記各コピー領域から読み出されたバックアップデータのいずれかを選択して出力する選択部を備えたことを特徴とする付記１記載のパリティエラー復旧回路。
（付記３）前記読み出し処理回路は、パリティエラーが検出された実データに差し替えて前記バックアップデータを出力する差し替え回路を備えたことを特徴とする付記１記載のパリティエラー復旧回路。
（付記４）前記読み出し処理回路は、
パリティエラーが検出された実データのアドレスを格納するアドレス保持レジスタと、
パリティエラーが検出された実データのバックアップデータを保持するバックアップデータ格納レジスタと
を備えたことを特徴とする付記１記載のパリティエラー復旧回路。
（付記５）前記読み出し処理回路は、
パリティエラーが検出された実データに差し替えて前記バックアップデータを出力する差し替え回路と、
パリティエラーが検出された実データのバックアップデータを保持するバックアップデータ格納レジスタと、
前記バックアップデータが格納されているアドレスを保持するバックアップアドレス格納レジスタと
を備えたことを特徴とする付記３記載のパリティエラー復旧回路。
（付記６）前記書き込み回路は、前記実データを前記実使用領域の下位アドレスから順次書き込み、前記バックアップデータを前記コピー領域の上位アドレスから順次書き込むことを特徴とする付記１乃至５のいずれか１項に記載のパリティエラー復旧回路。
【図面の簡単な説明】
【００８９】
【図１】第一の実施の形態の書き込み処理回路を示すブロック図である。
【図２】パリティ発生回路を示す回路図である。
【図３】第一の実施の形態の読み出し処理回路を示すブロック図である。
【図４】偶パリティチェッカーを示す回路図である。
【図５】奇パリティチェッカーを示す回路図である。
【図６】第二の実施の形態の書き込み処理回路を示すブロック図である。
【図７】第三の実施の形態の書き込み処理回路を示すブロック図である。
【図８】第三の実施の形態の読み出し処理回路を示すブロック図である。
【図９】第四の実施の形態の読み出し処理回路を示すブロック図である。
【図１０】第五の実施の形態の読み出し処理回路を示すブロック図である。
【符号の説明】
【００９０】
２        第一のパリティ発生回路
３        第二のパリティ発生回路（逆パリティ生成部）
８        偶パリティチェッカー
１３，１８      奇パリティチェッカー
１４      バックアップデータ格納レジスタ
２０      バックアップアドレス格納レジスタ
ＲＡＭ０      実使用領域
ＲＡＭ２，ＲＡＭ３      コピー領域
【図１】
2008225983.tif 000003
【図２】
2008225983.tif 000004
【図３】
2008225983.tif 000005
【図４】
2008225983.tif 000006
【図５】
2008225983.tif 000007
【図６】
2008225983.tif 000008
【図７】
2008225983.tif 000009
【図８】
2008225983.tif 000010
【図９】
2008225983.tif 000011
【図１０】
2008225983.tif 000012