(57)【要約】      （修正有）【課題】より少ない記憶領域の使用量で誤り対策が可能であり、かつデータの信頼性を高めることが可能なメモリ制御技術を提供する。【解決手段】行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御装置であって、（ａ）各々が所定数の単位記憶領域を有する第１ブロック及び第２ブロックに対するデータの読み出し及び書き込みを行うデータ管理手段と、（ｂ）第１ブロック及び第２ブロックの行方向及び／又は列方向において当該第１ブロック及び第２ブロックに対応する複数の行及び／又は複数の列にわたって隣り合う単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、第１ブロック及び／又は第２ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むエラー情報管理手段を備える。【選択図】図２
2014182690.tif 000002
【特許請求の範囲】
【請求項１】
行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御装置であって、
各々が所定数の単位記憶領域を有する第１ブロック及び第２ブロックに対するデータの読み出し及び書き込みを行うデータ管理手段と、
前記第１ブロック及び前記第２ブロックの行方向及び／又は列方向において当該第１ブロック及び第２ブロックに対応する複数の行及び／又は複数の列にわたって隣り合う前記単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、前記第１ブロック及び／又は前記第２ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むエラー情報管理手段と、
を含む、メモリ制御装置。
【請求項２】
前記エラー記憶領域は、前記第１ブロック及び前記第２ブロックの行数と同数の行数分かつ１列分の単位記憶領域、又は前記第１ブロック及び前記第２ブロックの列数と同数の列数分かつ１行分の単位記憶領域を有する、
請求項１に記載のメモリ制御装置。
【請求項３】
前記エラー記憶情報管理手段は、前記エラー記憶領域において前記故障した単位記憶領域と同じ行又は列に属する単位記憶領域に前記エラー情報データを書き込む、
請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記エラー記憶領域に対して行方向及び／又は列方向に隣り合う前記単位記憶領域をエラー記憶領域用チェックサム記憶領域として設定して、当該エラー記憶領域用チェックサム記憶領域に前記エラー情報データのチェックサムを書き込むチェックサム管理手段、
を更に含む、請求項１〜３の何れか１項に記載のメモリ制御装置。
【請求項５】
前記データ管理手段は、前記第１ブロック及び前記第２ブロックに共通のデータを書き込む際に、前記エラー情報データに基づいて前記故障した単位記憶領域の数の奇偶を判定して当該奇偶に応じ、前記共通のデータの書き込みを前記第１ブロックには先頭アドレスから開始し前記第２ブロックに対して最後尾アドレスから開始する場合と、前記共通のデータの書き込みを前記第１ブロックには最後尾アドレスから開始し前記第２ブロックに対して先頭アドレスから開始する場合とを切り替える、
請求項１〜４の何れか１項に記載のメモリ制御装置。
【請求項６】
行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御方法であって、
制御手段が、各々が所定数の単位記憶領域を有する第１ブロック及び第２ブロックに対するデータの読み出し及び書き込みを行うステップと、
前記制御手段が、前記第１ブロック及び前記第２ブロックの行方向及び／又は列方向において当該第１ブロック及び第２ブロックに対応する複数の行及び／又は複数の列にわたって隣り合う前記単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、前記第１ブロック及び／又は前記第２ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むステップと、
を含む、メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶させるためのメモリの制御技術に関し、特にデータにエラーが発生した場合に対応するためのメモリの制御技術に関する。
【背景技術】
【０００２】
メモリの制御技術に関する先行例として、例えば特開２００９−３７５３３号公報（特許文献１）には、不揮発性メモリの互いに異なる領域に同じ故障コードを記憶させるとともに、少なくともその記憶された故障コードの誤りを検出する故障コード管理装置において、誤りが生じた場合でも正しい故障コードをより確実に認識できるようにした故障コード記憶管理装置等が開示されている。この先行例は、不揮発性メモリの互いに異なる領域に記憶された故障コードと他のメモリに記憶された故障コードテーブルとを照合することで、不揮発性メモリの故障コードのうち何れかがその不揮発性メモリに記憶されているべきものか、つまり正しい故障コードであるかを認識できる、というものである。
【０００３】
ところで、上記した先行例においては、誤り対策として同じデータ（故障コード）を複数の記憶領域に記憶させるため、記憶領域がより多く必要となるという点で改良の余地がある。また、データの正否判断を複数のデータの照合による多数決処理で実施していることから、データ書き込み中に電源が切れてしまった場合には、正常に書き込みが完了しても異常と判断する場合が考えられ、データの信頼性が低いという不都合もある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３７５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明に係る具体的態様は、より少ない記憶領域の使用量で誤り対策が可能であり、かつデータの信頼性を高めることが可能なメモリ制御技術を提供することを目的の１つとする。
【課題を解決するための手段】
【０００６】
本発明に係る一態様のメモリ制御装置は、行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御装置であって、（ａ）各々が所定数の単位記憶領域を有する第１ブロック及び第２ブロックに対するデータの読み出し及び書き込みを行うデータ管理手段と、（ｂ）第１ブロック及び第２ブロックの行方向及び／又は列方向において当該第１ブロック及び第２ブロックに対応する複数の行及び／又は複数の列にわたって隣り合う単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、第１ブロック及び／又は第２ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むエラー情報管理手段と、を含むメモリ制御装置である。
【０００７】
上記構成によれば、第１ブロックおよび第２ブロックの周辺に設定したエラー記憶領域を用いて故障した単位記憶領域の位置を示すエラー情報データを保持できるので、より少ない記憶領域の使用量で誤り対策が可能である。また、多数決処理のような手法が不要であり、データの信頼性を高めることができる。
【０００８】
上記のメモリ制御装置において、エラー記憶領域は、第１ブロック及び第２ブロックの行数と同数の行数分かつ１列分の単位記憶領域、又は第１ブロック及び第２ブロックの列数と同数の列数分かつ１行分の単位記憶領域を有する、ことが好ましい。
【０００９】
例えば、故障した単位記憶領域に対応する行（または列）をその行（または列）の相対的な順番に対応して表してエラー記憶領域内におけるビット数に対応づけて記憶すれば１ビットの記憶容量でエラー情報データを保持することができる。したがって、上記のように少ない記憶領域の使用量でも十分にエラー情報データを保持することができる。
【００１０】
上記のメモリ制御装置において、エラー記憶情報管理手段は、エラー記憶領域において故障した単位記憶領域と同じ行又は列に属する単位記憶領域にエラー情報データを書き込む、ことも好ましい。
【００１１】
これにより、エラー情報データによって示される故障した単位記憶領域の位置を識別するのが容易になる。
【００１２】
上記のメモリ制御装置は、エラー記憶領域に対して行方向及び／又は列方向に隣り合う単位記憶領域をエラー記憶領域用チェックサム記憶領域として設定して、当該エラー記憶領域用チェックサム記憶領域にエラー情報データのチェックサムを書き込むチェックサム管理手段を更に含む、ことも好ましい。
【００１３】
これにより、エラー情報データの信頼性をより高めることができ、ひいてはデータの信頼性をより向上することが可能になる。
【００１４】
上記のメモリ制御装置において、データ管理手段は、第１ブロック及び第２ブロックに共通のデータを書き込む際に、エラー情報データに基づいて故障した単位記憶領域の数の奇偶を判定して当該奇偶に応じ、共通のデータの書き込みを第１ブロックには先頭アドレスから開始し第２ブロックに対して最後尾アドレスから開始する場合と、共通のデータの書き込みを第１ブロックには最後尾アドレスから開始し第２ブロックに対して先頭アドレスから開始する場合とを切り替える、ことも好ましい。
【００１５】
これにより、データの記憶回数を上げることができる。
【００１６】
本発明に係る一態様のメモリ制御方法は、行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御方法であって、（ａ）制御手段が、各々が所定数の単位記憶領域を有する第１ブロック及び第２ブロックに対するデータの読み出し及び書き込みを行うステップと、（ｂ）制御手段が、第１ブロック及び第２ブロックの行方向及び／又は列方向において当該第１ブロック及び第２ブロックに対応する複数の行及び／又は複数の列にわたって隣り合う単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、第１ブロック及び／又は第２ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むステップとを含む、メモリ制御方法である。
【００１７】
上記構成によれば、第１ブロックおよび第２ブロックの周辺に設定したエラー記憶領域を用いて故障した単位記憶領域の位置を示すエラー情報データを保持できるので、より少ない記憶領域の使用量で誤り対策が可能である。また、多数決処理のような手法が不要であり、データの信頼性を高めることができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、一実施形態のメモリ制御装置の構成を示すブロック図である。
【図２】図２は、不揮発性メモリにおけるデータ配置を示す概念図である。
【図３】図３は、不揮発性メモリにおいて１つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。
【図４】図４は、不揮発性メモリにおいて２つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。
【図５】図５は、メモリ制御装置のデータ読み込みにおける動作手順を示すフローチャートである。
【図６】図６は、メモリ制御装置のデータ書き込みにおける動作手順を示すフローチャートである。
【図７】図７は、ステップＳ４２におけるデータ書き込みの詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下に、本発明の実施の形態について図面を参照しながら説明する。
【００２０】
図１は、一実施形態のメモリ制御装置の構成を示すブロック図である。図１に示すメモリ制御装置１は、ＣＰＵ（Central  Processing  Unit）１１、ＲＯＭ（Read  Only  Memory）１２、ＲＡＭ（Random  Access  Memory）１３およびデータバス１４を含んで構成されたコンピュータシステムであり、制御対象となるＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）等の不揮発性メモリ２０に対してデータの書き込みおよび読み出し等を行う。このようなメモリ制御装置の用途は種々に存在しており、例えば本例のメモリ制御装置は車載用電子機器に組み込んで用いられるものとする。
【００２１】
ＣＰＵ（制御手段）１１は、所定の動作プログラムを実行することによりメモリ制御装置１の全体動作を制御する。ＲＯＭ１２は、ＣＰＵ１１において実行させるための動作プログラムやその他のデータを記憶する。ＲＡＭ１３は、ＣＰＵ１１における演算に伴って生じるデータを一時的に記憶する。データバス１４は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３および不揮発性メモリ２０の相互間を通信可能に接続する。なお、本実施形態においてはＣＰＵ１１が「データ管理手段」、「エラー情報管理手段」、「チェックサム管理手段」に対応する。
【００２２】
図２は、不揮発性メモリにおけるデータ配置を示す概念図である。本実施形態の不揮発性メモリ２０における記憶領域は、複数のロウ（行）と複数のカラム（列）によって特定される複数の単位記憶領域を有する。ここでは、不揮発性メモリ２０内における記憶領域の一部として、ロウ１〜１６およびカラム１〜８によって特定される１２８個の単位記憶領域を示す。図示のように、不揮発性メモリ２０には、ロウ２〜１５およびカラム２〜４によって特定される複数の単位記憶領域を含んで１つの記憶ブロック（以下「ブロック１」と呼ぶ）が設定され、ロウ２〜１５およびカラム５〜７によって特定される複数の単位記憶領域を含んで１つの記憶ブロック（以下「ブロック２」と呼ぶ）が設定されている。なお、各単位記憶領域に示された文字列は各単位記憶領域のアドレス（番地）を示すものであり、これらは１６進数表記されている（以下においても同様）。図２の例においては、ブロック１のアドレス９、Ａ、Ｂ、１１、１２、１３に情報ａが格納され、ブロック１のアドレス１９、１Ａ、１Ｂ、２１、２２、２３に情報ｂが格納され、ブロック１のアドレス２９、２Ａ、２Ｂ、３１、３２、３３に情報ｃが格納されている。また、同じ情報ａ，ｂ，ｃはブロック２にも格納されている。詳細には、ブロック２のアドレス４Ｃ、４Ｄ、４Ｅ、５４、５５、５６に情報ｃが格納され、ブロック２のアドレス５Ｃ、５Ｄ、５Ｅ、６４、６５、６６に情報ｂが格納され、ブロック２のアドレス６Ｃ、６Ｄ、６Ｅ、７４、７５、７６に情報ａが格納されている。
【００２３】
また、これらのブロック１、２を取り囲むようにして複数のエラー記憶領域および複数のエラー記憶領域用チェックサム記憶領域が設定されている。詳細には、ロウ１およびカラム２〜７によって特定されるアドレス１〜６の各単位記憶領域とロウ１６およびカラム２〜７によって特定されるアドレス７９〜７Ｅの各単位記憶領域がロウ用のエラー記憶領域に設定されている。また、ロウ２〜１５およびカラム１によって特定されるアドレス８、１０、１８、・・・７０の各単位記憶領域とロウ２〜１５およびカラム８によって特定されるアドレスＦ、１７、１Ｆ、・・・７７の各単位記憶領域がカラム用のエラー記憶領域に設定されている。さらに、ロウ１およびカラム１によって特定されるアドレス０の単位記憶領域、ロウ１およびカラム８によって特定されるアドレス７の単位記憶領域、ロウ１６およびカラム１によって特定されるアドレス７８の単位記憶領域、ロウ１６およびカラム８によって特定されるアドレス７Ｆの単位領域、のそれぞれがエラー記憶領域用チェックサム記憶領域として設定されている。
【００２４】
図３は、不揮発性メモリにおいて１つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。一例として、アドレス３２の単位記憶領域にエラーが生じているとする。この場合には、アドレス２のエラー記憶領域とアドレス７Ａのエラー記憶領域のそれぞれにエラー情報データが書き込まれる。すなわち、本実施形態では、ロウ１およびカラム２〜７で特定されるアドレス並びにロウ１６およびカラム２〜７で特定されるアドレスの各エラー記憶領域にはロウ側のエラー情報データが書き込まれる。具体的には、アドレス２およびアドレス７Ａの各エラー記憶領域はそれぞれ１６ビットであり、そのうちビット６に「１」が記憶される。これは、０ビット目から数えて７番目のビットであり、ロウ７で特定される単位記憶領域にエラーが生じていることを示す。
【００２５】
また、アドレス３０のエラー記憶領域とアドレス３７のエラー記憶領域のそれぞれにエラー情報データが書き込まれる。すなわち、本実施形態ではロウ２〜１５およびカラム１で特定されるアドレス並びにロウ２〜１５およびカラム８で特定されるアドレスの各エラー記憶領域にはカラム側のエラー情報データが書き込まれる。具体的には、アドレス３０およびアドレス３７の各エラー記憶領域はそれぞれ８ビットであり、そのうちビット２に「１」が記憶される。これは、０ビット目から数えて３番目のビットであり、カラム３で特定される単位記憶領域にエラーが生じていることを示す。
【００２６】
また、エラー発生に対応して情報ａ、ｂ、ｃの格納場所が変更される。各情報ａ、ｂ、ｃの書き込み頻度が異なることを考慮し、各情報ａ〜ｃの格納順も変更される。例えば、ブロック１のアドレス４９、４Ａ、４Ｂ、５１、５２、５３に情報ａが格納され、ブロック１のアドレス５９、５Ａ、５Ｂ、６１、６２、６３に情報ｃが格納され、ブロック１のアドレス６９、６Ａ、６Ｂ、７１、７２、７３に情報ｂが格納される。また、ブロック２のアドレスＣ、Ｄ、Ｅ、１４、１５、１６に情報ｂが格納され、ブロック２のアドレス１Ｃ、１Ｄ、１Ｅ、２４、２５、２６に情報ｃが格納され、ブロック２のアドレス２Ｃ、２Ｄ、２Ｅ、３４、３５、３６に情報ａが格納される。
【００２７】
図４は、不揮発性メモリにおいて２つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。一例として、アドレス３２とアドレス５２の各単位記憶領域にエラーが生じているとする。このようにエラーの生じた単位記憶領域の数が偶数である場合には、ブロック１では先頭アドレスからデータを配置し、ブロック２では最後尾アドレスからデータを配置する。このとき、エラーの生じているアドレスの単位記憶領域は使用せずにその次のアドレスの単位記憶領域を使用する。また、各情報ａ、ｂ、ｃの書き込み頻度が異なることを考慮し、各情報ａ〜ｃの格納順も変更される。例えば、ブロック１のアドレス９、Ａ、Ｂ、１１、１２、１３に情報ｃが格納され、ブロック１のアドレス１９、１Ａ、１Ｂ、２１、２２、２３に情報ａが格納され、ブロック１のアドレス２９、２Ａ、２Ｂ、３１、３３、３９に情報ｂが格納される。また、ブロック２のアドレス４Ｃ、４Ｄ、４Ｅ、５４、５５、５６に情報ｂが格納され、ブロック２のアドレス５Ｃ、５Ｄ、５Ｅ、６４、６５、６６に情報ａが格納され、ブロック２のアドレス６Ｃ、６Ｄ、６Ｅ、７４、７５、７６に情報ｃが格納される。なお、エラーの生じた単位記憶領域の数が奇数である場合には、ブロック１では最後尾アドレスからデータを配置し、ブロック２では先頭アドレスからデータを配置する（上記した図３参照）。
【００２８】
このように、エラーが発生するごとに書き込み／読み込みを実施するアドレスを移動することで、同じデータの記憶回数を２倍以上に上げることができる。また、データの記憶順序をエラーの発生回数ごとに変更することでも、記憶回数を上げることができる。
【００２９】
本実施形態のメモリ制御装置は以上のように構成されており、次にその動作についてフローチャートを参照しながら詳細に説明する。
【００３０】
図５は、メモリ制御装置のデータ読み込みにおける動作手順を示すフローチャートである。データ読み込みに際して、ＣＰＵ１１は、不揮発性メモリ２０のエラー記憶領域に格納されたエラー情報データを読み込む（ステップＳ１１）。このとき、エラー記憶領域用チェックサム記憶領域のデータも併せて読み込まれる。また、ＣＰＵ１１は、ブロック１のデータを読み込む（ステップＳ１２）。
【００３１】
次にＣＰＵ１１は、読み込んだ各データからチェックサムおよびパリティを計算し（ステップＳ１３）、これらの計算したチェックサムおよびパリティと読み込んだチェックサムおよびパリティが一致するかどうかのデータチェックを行う（ステップＳ１４）。
【００３２】
データチェックの結果、エラーがない場合に（ステップＳ１４；ＹＥＳ）、ＣＰＵ１１は、ブロック１のデータを正しいデータとして採用する（ステップＳ１５）。具体的には、このブロック１から読み出したデータを用いて種々の処理を行い、あるいは図示しない他の電子機器へこのデータを送信する等の処理を行う。他方で、データチェックの結果、エラーがある場合に（ステップＳ１４；ＮＯ）、ＣＰＵ１１は、ブロック１から読み込んだデータをＲＡＭ１３の所定領域に待避させる（ステップＳ１６）。
【００３３】
次にＣＰＵ１１は、ブロック２のデータを読み込み（ステップＳ１７）、この読み込んだ各データからチェックサムおよびパリティを計算し（ステップＳ１８）、これらの計算したチェックサムおよびパリティと読み込んだチェックサムおよびパリティが一致するかどうかのデータチェックを行う（ステップＳ１９）。
【００３４】
データチェックの結果、エラーがない場合に（ステップＳ１９；ＹＥＳ）、ＣＰＵ１１は、ブロック１とブロック２の各データを比較することにより、エラーを生じている単位記憶領域のアドレスを特定する（ステップＳ２０）。そしてＣＰＵ１１は、特定したアドレスに対応するエラー情報データを不揮発性メモリ２０の各エラー記憶領域に書き込む（ステップＳ２１）。このとき、併せてチェックサムも計算され、エラー記憶領域用チェックサム記憶領域に書き込まれる。
【００３５】
次にＣＰＵ１１は、ブロック２のデータを正しいデータとして採用する（ステップＳ２２）。具体的には、このブロック１から読み出したデータを用いて種々の処理を行い、あるいは図示しない他の電子機器へこのデータを送信する等の処理を行う。その後ＣＰＵ１１は、ブロック１、２におけるデータを再配置してデータを書き込む（ステップＳ２３）。具体的には、上記した図３、図４に基づいて説明した通りである。
【００３６】
また、上記ステップＳ１９において、エラーがある場合には（ステップＳ１９；ＮＯ）、ブロック１、２のいずれから読み出したデータも適正ではないので、ＣＰＵ１１は、ＲＯＭ１２に予め書き込まれている初期データを読み出してこの初期データを採用する（ステップＳ２４）。その後ＣＰＵ１１は、ブロック１、２におけるデータを再配置してデータを書き込む（ステップＳ２５）。具体的には、上記した図３、図４に基づいて説明した通りである。
【００３７】
図６は、メモリ制御装置のデータ書き込みにおける動作手順を示すフローチャートである。なお、ここではブロック１へのデータ書き込みを説明するが、ブロック２についても同様にしてデータ書き込みが行われるものとする。
【００３８】
データ書き込みに際して、エラーを生じている単位記憶領域を特定するために、ＣＰＵ１１は、不揮発性メモリ２０のエラー記憶領域に格納されたエラー情報データを読み込む（ステップＳ４１）。
【００３９】
次に、ＣＰＵ１１は、ブロック１へデータを書き込む（ステップＳ４２）。このとき、エラー情報データによって特定される故障した単位記憶領域を用いずにデータが書き込まれる（上記図４参照）。
【００４０】
次に、ＣＰＵ１１は、ブロック１のデータを読み込み（ステップＳ４３）、この読み込んだデータとステップＳ４２において書き込んだデータが一致するか否かのデータチェックを行う（ステップＳ４４）。エラーがない場合には（ステップＳ４４；ＹＥＳ）、ＣＰＵ１１はデータ書き込みを終了する。
【００４１】
一方、エラーがある場合には（ステップＳ４４；ＮＯ）、ＣＰＵ１１は、エラーを生じている単位記憶領域のアドレスを特定し（ステップＳ４５）、そのアドレスに対応したエラー情報データを不揮発性メモリ２０の各エラー記憶領域に書き込む（ステップＳ４６）。その後ＣＰＵ１１は、ブロック１、２におけるデータを再配置してデータを書き込む（ステップＳ４７）。具体的には、上記した図３、図４に基づいて説明した通りである。
【００４２】
図７は、ステップＳ４２におけるデータ書き込みの詳細な手順を示すフローチャートである。なお、ここでもブロック１へのデータ書き込みを説明するが、ブロック２についても同様にしてデータ書き込みが行われるものとする。
【００４３】
まず、ＣＰＵ１１は、エラー記憶領域から読み込んだエラー情報データに基づいて、エラーの生じた単位記憶領域の数が偶数であるか否かを判定する（ステップＳ７０）。
【００４４】
エラーの生じた単位記憶領域の数が偶数である場合に（ステップＳ７０；ＹＥＳ）、ＣＰＵ１１は、ブロック１におけるデータ書き込み順を上位アドレスからのデータ書き込みとする（ステップＳ７１）。
【００４５】
一方、エラーの生じた単位記憶領域の数が奇数である場合に（ステップＳ７１；ＮＯ）、ＣＰＵ１１は、ブロック１におけるデータ書き込み順を下位アドレスからのデータ書き込みとする（ステップＳ７２）。
【００４６】
次にＣＰＵ１１は、エラーの生じた単位記憶領域の数（以下、単に「エラー数」という）に対して剰余演算mod3を行い、その剰余が０である場合に（ステップＳ７３；ＹＥＳ）、ブロック１においてステップＳ７１またはステップＳ７２において決定したデータ書き込み順に従って、情報ａ、情報ｂ、情報ｃの順でデータ書き込みを実行する（ステップＳ７４、Ｓ７５、Ｓ７６）。
【００４７】
また、エラー数に対する剰余演算mod3の剰余が０でなく（ステップＳ７３；ＮＯ）、剰余が１である場合に（ステップＳ７７；ＹＥＳ）、ＣＰＵ１１は、ブロック１においてステップＳ７１またはステップＳ７２において決定したデータ書き込み順に従って、情報ｂ、情報ｃ、情報ａの順でデータ書き込みを実行する（ステップＳ７８、Ｓ７９、Ｓ８０）。
【００４８】
また、エラー数に対する剰余演算mod3の剰余が１でなく剰余が２である場合に（ステップＳ７７；ＮＯ）、ＣＰＵ１１は、ブロック１においてステップＳ７１またはステップＳ７２において決定したデータ書き込み順に従って、情報ｃ、情報ａ、情報ｂの順でデータ書き込みを実行する（ステップＳ８１、Ｓ８２、Ｓ８３）。
【００４９】
以上のような本実施形態によれば、不揮発性メモリにおけるブロック１（第１ブロック）およびブロック２（第２ブロック）の周辺に設定したエラー記憶領域を用いて故障した単位記憶領域の位置を示すエラー情報データを保持できるので、より少ない記憶領域の使用量で誤り対策が可能である。また、多数決処理のような手法が不要であり、データの信頼性を高めることができる。
【００５０】
なお、本発明は上述した実施形態の内容に限定されるものではなく、本発明の要旨の範囲内において種々に変形して実施をすることが可能である。例えば、上記した実施形態ではブロック１及びブロック２のロウ方向及びカラム方向のそれぞれにエラー記憶領域を設定していたが、ロウ方向とカラム方向のいずれか一方にのみエラー記憶領域を設定してもよい。また、各ブロック１、２やエラー記憶領域のそれぞれに含まれる単位記憶領域の数や配置についても上記実施形態は一例であり、これにのみ限定されない。
【符号の説明】
【００５１】
１：メモリ制御装置
１１：ＣＰＵ
１２：ＲＯＭ
１３：ＲＡＭ
１４：データバス
２０：不揮発性メモリ
【図１】
2014182690.tif 000003
【図２】
2014182690.tif 000004
【図３】
2014182690.tif 000005
【図４】
2014182690.tif 000006
【図５】
2014182690.tif 000007
【図６】
2014182690.tif 000008
【図７】
2014182690.tif 000009