(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6092673
(24)【登録日】2017年2月17日
(45)【発行日】2017年3月8日
(54)【発明の名称】メモリ制御装置、メモリ制御方法
(51)【国際特許分類】
G06F 11/10 20060101AFI20170227BHJP
G06F 12/16 20060101ALI20170227BHJP
【FI】
G06F11/10 668
G06F12/16 320B
【請求項の数】6
【全頁数】12
(21)【出願番号】特願2013-57714(P2013-57714)
(22)【出願日】2013年3月21日
(65)【公開番号】特開2014-182690(P2014-182690A)
(43)【公開日】2014年9月29日
【審査請求日】2016年2月10日
(73)【特許権者】
【識別番号】000002303
【氏名又は名称】スタンレー電気株式会社
(74)【代理人】
【識別番号】110001184
【氏名又は名称】特許業務法人むつきパートナーズ
(72)【発明者】
【氏名】藤本 和宏
【審査官】
酒井 恭信
(56)【参考文献】
【文献】
特開2002−133892(JP,A)
【文献】
特表2012−514266(JP,A)
【文献】
特開平09−167120(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
G06F 11/10
(57)【特許請求の範囲】
【請求項1】
行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御装置であって、
各々が所定数の単位記憶領域を有する第1ブロック及び第2ブロックに対するデータの読み出し及び書き込みを行うデータ管理手段と、
前記第1ブロック及び前記第2ブロックの行方向及び/又は列方向において当該第1ブロック及び第2ブロックに対応する複数の行及び/又は複数の列にわたって当該第1ブロック及び/又は第2ブロックと隣り合う複数の前記単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、前記第1ブロック及び/又は前記第2ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むエラー情報管理手段と、
を含む、メモリ制御装置。
【請求項2】
前記エラー記憶領域は、前記第1ブロック及び前記第2ブロックの行数と同数の行数分かつ1列分の単位記憶領域、又は前記第1ブロック及び前記第2ブロックの列数と同数の列数分かつ1行分の単位記憶領域を有する、
請求項1に記載のメモリ制御装置。
【請求項3】
前記エラー情報管理手段は、前記エラー記憶領域において前記故障した単位記憶領域と同じ行又は列に属する単位記憶領域に前記エラー情報データを書き込む、
請求項1又は2に記載のメモリ制御装置。
【請求項4】
前記エラー記憶領域に対して行方向及び/又は列方向に隣り合う前記単位記憶領域をエラー記憶領域用チェックサム記憶領域として設定して、当該エラー記憶領域用チェックサム記憶領域に前記エラー情報データのチェックサムを書き込むチェックサム管理手段、
を更に含む、請求項1〜3の何れか1項に記載のメモリ制御装置。
【請求項5】
前記データ管理手段は、前記第1ブロック及び前記第2ブロックに共通のデータを書き込む際に、前記エラー情報データに基づいて前記故障した単位記憶領域の数の奇偶を判定して当該奇偶に応じ、前記共通のデータの書き込みを前記第1ブロックには先頭アドレスから開始し前記第2ブロックに対して最後尾アドレスから開始する場合と、前記共通のデータの書き込みを前記第1ブロックには最後尾アドレスから開始し前記第2ブロックに対して先頭アドレスから開始する場合とを切り替える、
請求項1〜4の何れか1項に記載のメモリ制御装置。
【請求項6】
行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御方法であって、
制御手段が、各々が所定数の単位記憶領域を有する第1ブロック及び第2ブロックに対するデータの読み出し及び書き込みを行うステップと、
前記制御手段が、前記第1ブロック及び前記第2ブロックの行方向及び/又は列方向において当該第1ブロック及び第2ブロックに対応する複数の行及び/又は複数の列にわたって当該第1ブロック及び/又は第2ブロックと隣り合う複数の前記単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、前記第1ブロック及び/又は前記第2ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むステップと、
を含む、メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを記憶させるためのメモリの制御技術に関し、特にデータにエラーが発生した場合に対応するためのメモリの制御技術に関する。
【背景技術】
【0002】
メモリの制御技術に関する先行例として、例えば特開2009−37533号公報(特許文献1)には、不揮発性メモリの互いに異なる領域に同じ故障コードを記憶させるとともに、少なくともその記憶された故障コードの誤りを検出する故障コード管理装置において、誤りが生じた場合でも正しい故障コードをより確実に認識できるようにした故障コード記憶管理装置等が開示されている。この先行例は、不揮発性メモリの互いに異なる領域に記憶された故障コードと他のメモリに記憶された故障コードテーブルとを照合することで、不揮発性メモリの故障コードのうち何れかがその不揮発性メモリに記憶されているべきものか、つまり正しい故障コードであるかを認識できる、というものである。
【0003】
ところで、上記した先行例においては、誤り対策として同じデータ(故障コード)を複数の記憶領域に記憶させるため、記憶領域がより多く必要となるという点で改良の余地がある。また、データの正否判断を複数のデータの照合による多数決処理で実施していることから、データ書き込み中に電源が切れてしまった場合には、正常に書き込みが完了しても異常と判断する場合が考えられ、データの信頼性が低いという不都合もある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−37533号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明に係る具体的態様は、より少ない記憶領域の使用量で誤り対策が可能であり、かつデータの信頼性を高めることが可能なメモリ制御技術を提供することを目的の1つとする。
【課題を解決するための手段】
【0006】
本発明に係る一態様のメモリ制御装置は、行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御装置であって、(a)各々が所定数の単位記憶領域を有する第1ブロック及び第2ブロックに対するデータの読み出し及び書き込みを行うデータ管理手段と、(b)第1ブロック及び第2ブロックの行方向及び/又は列方向において当該第1ブロック及び第2ブロックに対応する複数の行及び/又は複数の列にわたって
当該第1ブロック及び/又は第2ブロックと隣り合う
複数の単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、第1ブロック及び/又は第2ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むエラー情報管理手段と、を含むメモリ制御装置である。
【0007】
上記構成によれば、第1ブロックおよび第2ブロックの周辺に設定したエラー記憶領域を用いて故障した単位記憶領域の位置を示すエラー情報データを保持できるので、より少ない記憶領域の使用量で誤り対策が可能である。また、多数決処理のような手法が不要であり、データの信頼性を高めることができる。
【0008】
上記のメモリ制御装置において、エラー記憶領域は、第1ブロック及び第2ブロックの行数と同数の行数分かつ1列分の単位記憶領域、又は第1ブロック及び第2ブロックの列数と同数の列数分かつ1行分の単位記憶領域を有する、ことが好ましい。
【0009】
例えば、故障した単位記憶領域に対応する行(または列)をその行(または列)の相対的な順番に対応して表してエラー記憶領域内におけるビット数に対応づけて記憶すれば1ビットの記憶容量でエラー情報データを保持することができる。したがって、上記のように少ない記憶領域の使用量でも十分にエラー情報データを保持することができる。
【0010】
上記のメモリ制御装置において、エラ
ー情報管理手段は、エラー記憶領域において故障した単位記憶領域と同じ行又は列に属する単位記憶領域にエラー情報データを書き込む、ことも好ましい。
【0011】
これにより、エラー情報データによって示される故障した単位記憶領域の位置を識別するのが容易になる。
【0012】
上記のメモリ制御装置は、エラー記憶領域に対して行方向及び/又は列方向に隣り合う単位記憶領域をエラー記憶領域用チェックサム記憶領域として設定して、当該エラー記憶領域用チェックサム記憶領域にエラー情報データのチェックサムを書き込むチェックサム管理手段を更に含む、ことも好ましい。
【0013】
これにより、エラー情報データの信頼性をより高めることができ、ひいてはデータの信頼性をより向上することが可能になる。
【0014】
上記のメモリ制御装置において、データ管理手段は、第1ブロック及び第2ブロックに共通のデータを書き込む際に、エラー情報データに基づいて故障した単位記憶領域の数の奇偶を判定して当該奇偶に応じ、共通のデータの書き込みを第1ブロックには先頭アドレスから開始し第2ブロックに対して最後尾アドレスから開始する場合と、共通のデータの書き込みを第1ブロックには最後尾アドレスから開始し第2ブロックに対して先頭アドレスから開始する場合とを切り替える、ことも好ましい。
【0015】
これにより、データの記憶回数を上げることができる。
【0016】
本発明に係る一態様のメモリ制御方法は、行と列の組み合わせで特定される複数の単位記憶領域を有する不揮発性メモリに対してデータの読み出し及び書き込みを行うためのメモリ制御方法であって、(a)制御手段が、各々が所定数の単位記憶領域を有する第1ブロック及び第2ブロックに対するデータの読み出し及び書き込みを行うステップと、(b)制御手段が、第1ブロック及び第2ブロックの行方向及び/又は列方向において当該第1ブロック及び第2ブロックに対応する複数の行及び/又は複数の列にわたって
当該第1ブロック及び/又は第2ブロックと隣り合う
複数の単位記憶領域をエラー記憶領域として設定して、当該エラー記憶領域に、第1ブロック及び/又は第2ブロックに含まれる故障した単位記憶領域の位置を示すエラー情報データを書き込むステップとを含む、メモリ制御方法である。
【0017】
上記構成によれば、第1ブロックおよび第2ブロックの周辺に設定したエラー記憶領域を用いて故障した単位記憶領域の位置を示すエラー情報データを保持できるので、より少ない記憶領域の使用量で誤り対策が可能である。また、多数決処理のような手法が不要であり、データの信頼性を高めることができる。
【図面の簡単な説明】
【0018】
【
図1】
図1は、一実施形態のメモリ制御装置の構成を示すブロック図である。
【
図2】
図2は、不揮発性メモリにおけるデータ配置を示す概念図である。
【
図3】
図3は、不揮発性メモリにおいて1つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。
【
図4】
図4は、不揮発性メモリにおいて2つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。
【
図5】
図5は、メモリ制御装置のデータ読み込みにおける動作手順を示すフローチャートである。
【
図6】
図6は、メモリ制御装置のデータ書き込みにおける動作手順を示すフローチャートである。
【
図7】
図7は、ステップS42におけるデータ書き込みの詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下に、本発明の実施の形態について図面を参照しながら説明する。
【0020】
図1は、一実施形態のメモリ制御装置の構成を示すブロック図である。
図1に示すメモリ制御装置1は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13およびデータバス14を含んで構成されたコンピュータシステムであり、制御対象となるEEPROM(Electrically Erasable Programmable Read-Only Memory)等の不揮発性メモリ20に対してデータの書き込みおよび読み出し等を行う。このようなメモリ制御装置の用途は種々に存在しており、例えば本例のメモリ制御装置は車載用電子機器に組み込んで用いられるものとする。
【0021】
CPU(制御手段)11は、所定の動作プログラムを実行することによりメモリ制御装置1の全体動作を制御する。ROM12は、CPU11において実行させるための動作プログラムやその他のデータを記憶する。RAM13は、CPU11における演算に伴って生じるデータを一時的に記憶する。データバス14は、CPU11、ROM12、RAM13および不揮発性メモリ20の相互間を通信可能に接続する。なお、本実施形態においてはCPU11が「データ管理手段」、「エラー情報管理手段」、「チェックサム管理手段」に対応する。
【0022】
図2は、不揮発性メモリにおけるデータ配置を示す概念図である。本実施形態の不揮発性メモリ20における記憶領域は、複数のロウ(行)と複数のカラム(列)によって特定される複数の単位記憶領域を有する。ここでは、不揮発性メモリ20内における記憶領域の一部として、ロウ1〜16およびカラム1〜8によって特定される128個の単位記憶領域を示す。図示のように、不揮発性メモリ20には、ロウ2〜15およびカラム2〜4によって特定される複数の単位記憶領域を含んで1つの記憶ブロック(以下「ブロック1」と呼ぶ)が設定され、ロウ2〜15およびカラム5〜7によって特定される複数の単位記憶領域を含んで1つの記憶ブロック(以下「ブロック2」と呼ぶ)が設定されている。なお、各単位記憶領域に示された文字列は各単位記憶領域のアドレス(番地)を示すものであり、これらは16進数表記されている(以下においても同様)。
図2の例においては、ブロック1のアドレス9、A、B、11、12、13に情報aが格納され、ブロック1のアドレス19、1A、1B、21、22、23に情報bが格納され、ブロック1のアドレス29、2A、2B、31、32、33に情報cが格納されている。また、同じ情報a,b,cはブロック2にも格納されている。詳細には、ブロック2のアドレス4C、4D、4E、54、55、56に情報cが格納され、ブロック2のアドレス5C、5D、5E、64、65、66に情報bが格納され、ブロック2のアドレス6C、6D、6E、74、75、76に情報aが格納されている。
【0023】
また、これらのブロック1、2を取り囲むようにして複数のエラー記憶領域および複数のエラー記憶領域用チェックサム記憶領域が設定されている。詳細には、ロウ1およびカラム2〜7によって特定されるアドレス1〜6の各単位記憶領域とロウ16およびカラム2〜7によって特定されるアドレス79〜7Eの各単位記憶領域がロウ用のエラー記憶領域に設定されている。また、ロウ2〜15およびカラム1によって特定されるアドレス8、10、18、・・・70の各単位記憶領域とロウ2〜15およびカラム8によって特定されるアドレスF、17、1F、・・・77の各単位記憶領域がカラム用のエラー記憶領域に設定されている。さらに、ロウ1およびカラム1によって特定されるアドレス0の単位記憶領域、ロウ1およびカラム8によって特定されるアドレス7の単位記憶領域、ロウ16およびカラム1によって特定されるアドレス78の単位記憶領域、ロウ16およびカラム8によって特定されるアドレス7Fの単位領域、のそれぞれがエラー記憶領域用チェックサム記憶領域として設定されている。
【0024】
図3は、不揮発性メモリにおいて1つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。一例として、アドレス32の単位記憶領域にエラーが生じているとする。この場合には、アドレス2のエラー記憶領域とアドレス7Aのエラー記憶領域のそれぞれにエラー情報データが書き込まれる。すなわち、本実施形態では、ロウ1およびカラム2〜7で特定されるアドレス並びにロウ16およびカラム2〜7で特定されるアドレスの各エラー記憶領域にはロウ側のエラー情報データが書き込まれる。具体的には、アドレス2およびアドレス7Aの各エラー記憶領域はそれぞれ16ビットであり、そのうちビット6に「1」が記憶される。これは、0ビット目から数えて7番目のビットであり、ロウ7で特定される単位記憶領域にエラーが生じていることを示す。
【0025】
また、アドレス30のエラー記憶領域とアドレス37のエラー記憶領域のそれぞれにエラー情報データが書き込まれる。すなわち、本実施形態ではロウ2〜15およびカラム1で特定されるアドレス並びにロウ2〜15およびカラム8で特定されるアドレスの各エラー記憶領域にはカラム側のエラー情報データが書き込まれる。具体的には、アドレス30およびアドレス37の各エラー記憶領域はそれぞれ8ビットであり、そのうちビット2に「1」が記憶される。これは、0ビット目から数えて3番目のビットであり、カラム3で特定される単位記憶領域にエラーが生じていることを示す。
【0026】
また、エラー発生に対応して情報a、b、cの格納場所が変更される。各情報a、b、cの書き込み頻度が異なることを考慮し、各情報a〜cの格納順も変更される。例えば、ブロック1のアドレス49、4A、4B、51、52、53に情報aが格納され、ブロック1のアドレス59、5A、5B、61、62、63に情報cが格納され、ブロック1のアドレス69、6A、6B、71、72、73に情報bが格納される。また、ブロック2のアドレスC、D、E、14、15、16に情報bが格納され、ブロック2のアドレス1C、1D、1E、24、25、26に情報cが格納され、ブロック2のアドレス2C、2D、2E、34、35、36に情報aが格納される。
【0027】
図4は、不揮発性メモリにおいて2つのアドレスの単位記憶領域にエラーが生じた場合のメモリ制御の概念図である。一例として、アドレス32とアドレス52の各単位記憶領域にエラーが生じているとする。このようにエラーの生じた単位記憶領域の数が偶数である場合には、ブロック1では先頭アドレスからデータを配置し、ブロック2では最後尾アドレスからデータを配置する。このとき、エラーの生じているアドレスの単位記憶領域は使用せずにその次のアドレスの単位記憶領域を使用する。また、各情報a、b、cの書き込み頻度が異なることを考慮し、各情報a〜cの格納順も変更される。例えば、ブロック1のアドレス9、A、B、11、12、13に情報cが格納され、ブロック1のアドレス19、1A、1B、21、22、23に情報aが格納され、ブロック1のアドレス29、2A、2B、31、33、39に情報bが格納される。また、ブロック2のアドレス4C、4D、4E、54、55、56に情報bが格納され、ブロック2のアドレス5C、5D、5E、64、65、66に情報aが格納され、ブロック2のアドレス6C、6D、6E、74、75、76に情報cが格納される。なお、エラーの生じた単位記憶領域の数が奇数である場合には、ブロック1では最後尾アドレスからデータを配置し、ブロック2では先頭アドレスからデータを配置する(上記した
図3参照)。
【0028】
このように、エラーが発生するごとに書き込み/読み込みを実施するアドレスを移動することで、同じデータの記憶回数を2倍以上に上げることができる。また、データの記憶順序をエラーの発生回数ごとに変更することでも、記憶回数を上げることができる。
【0029】
本実施形態のメモリ制御装置は以上のように構成されており、次にその動作についてフローチャートを参照しながら詳細に説明する。
【0030】
図5は、メモリ制御装置のデータ読み込みにおける動作手順を示すフローチャートである。データ読み込みに際して、CPU11は、不揮発性メモリ20のエラー記憶領域に格納されたエラー情報データを読み込む(ステップS11)。このとき、エラー記憶領域用チェックサム記憶領域のデータも併せて読み込まれる。また、CPU11は、ブロック1のデータを読み込む(ステップS12)。
【0031】
次にCPU11は、読み込んだ各データからチェックサムおよびパリティを計算し(ステップS13)、これらの計算したチェックサムおよびパリティと読み込んだチェックサムおよびパリティが一致するかどうかのデータチェックを行う(ステップS14)。
【0032】
データチェックの結果、エラーがない場合に(ステップS14;YES)、CPU11は、ブロック1のデータを正しいデータとして採用する(ステップS15)。具体的には、このブロック1から読み出したデータを用いて種々の処理を行い、あるいは図示しない他の電子機器へこのデータを送信する等の処理を行う。他方で、データチェックの結果、エラーがある場合に(ステップS14;NO)、CPU11は、ブロック1から読み込んだデータをRAM13の所定領域に待避させる(ステップS16)。
【0033】
次にCPU11は、ブロック2のデータを読み込み(ステップS17)、この読み込んだ各データからチェックサムおよびパリティを計算し(ステップS18)、これらの計算したチェックサムおよびパリティと読み込んだチェックサムおよびパリティが一致するかどうかのデータチェックを行う(ステップS19)。
【0034】
データチェックの結果、エラーがない場合に(ステップS19;YES)、CPU11は、ブロック1とブロック2の各データを比較することにより、エラーを生じている単位記憶領域のアドレスを特定する(ステップS20)。そしてCPU11は、特定したアドレスに対応するエラー情報データを不揮発性メモリ20の各エラー記憶領域に書き込む(ステップS21)。このとき、併せてチェックサムも計算され、エラー記憶領域用チェックサム記憶領域に書き込まれる。
【0035】
次にCPU11は、ブロック2のデータを正しいデータとして採用する(ステップS22)。具体的には、このブロック1から読み出したデータを用いて種々の処理を行い、あるいは図示しない他の電子機器へこのデータを送信する等の処理を行う。その後CPU11は、ブロック1、2におけるデータを再配置してデータを書き込む(ステップS23)。具体的には、上記した
図3、
図4に基づいて説明した通りである。
【0036】
また、上記ステップS19において、エラーがある場合には(ステップS19;NO)、ブロック1、2のいずれから読み出したデータも適正ではないので、CPU11は、ROM12に予め書き込まれている初期データを読み出してこの初期データを採用する(ステップS24)。その後CPU11は、ブロック1、2におけるデータを再配置してデータを書き込む(ステップS25)。具体的には、上記した
図3、
図4に基づいて説明した通りである。
【0037】
図6は、メモリ制御装置のデータ書き込みにおける動作手順を示すフローチャートである。なお、ここではブロック1へのデータ書き込みを説明するが、ブロック2についても同様にしてデータ書き込みが行われるものとする。
【0038】
データ書き込みに際して、エラーを生じている単位記憶領域を特定するために、CPU11は、不揮発性メモリ20のエラー記憶領域に格納されたエラー情報データを読み込む(ステップS41)。
【0039】
次に、CPU11は、ブロック1へデータを書き込む(ステップS42)。このとき、エラー情報データによって特定される故障した単位記憶領域を用いずにデータが書き込まれる(上記
図4参照)。
【0040】
次に、CPU11は、ブロック1のデータを読み込み(ステップS43)、この読み込んだデータとステップS42において書き込んだデータが一致するか否かのデータチェックを行う(ステップS44)。エラーがない場合には(ステップS44;YES)、CPU11はデータ書き込みを終了する。
【0041】
一方、エラーがある場合には(ステップS44;NO)、CPU11は、エラーを生じている単位記憶領域のアドレスを特定し(ステップS45)、そのアドレスに対応したエラー情報データを不揮発性メモリ20の各エラー記憶領域に書き込む(ステップS46)。その後CPU11は、ブロック1、2におけるデータを再配置してデータを書き込む(ステップS47)。具体的には、上記した
図3、
図4に基づいて説明した通りである。
【0042】
図7は、ステップS42におけるデータ書き込みの詳細な手順を示すフローチャートである。なお、ここでもブロック1へのデータ書き込みを説明するが、ブロック2についても同様にしてデータ書き込みが行われるものとする。
【0043】
まず、CPU11は、エラー記憶領域から読み込んだエラー情報データに基づいて、エラーの生じた単位記憶領域の数が偶数であるか否かを判定する(ステップS70)。
【0044】
エラーの生じた単位記憶領域の数が偶数である場合に(ステップS70;YES)、CPU11は、ブロック1におけるデータ書き込み順を上位アドレスからのデータ書き込みとする(ステップS71)。
【0045】
一方、エラーの生じた単位記憶領域の数が奇数である場合に(ステップS71;NO)、CPU11は、ブロック1におけるデータ書き込み順を下位アドレスからのデータ書き込みとする(ステップS72)。
【0046】
次にCPU11は、エラーの生じた単位記憶領域の数(以下、単に「エラー数」という)に対して剰余演算mod3を行い、その剰余が0である場合に(ステップS73;YES)、ブロック1においてステップS71またはステップS72において決定したデータ書き込み順に従って、情報a、情報b、情報cの順でデータ書き込みを実行する(ステップS74、S75、S76)。
【0047】
また、エラー数に対する剰余演算mod3の剰余が0でなく(ステップS73;NO)、剰余が1である場合に(ステップS77;YES)、CPU11は、ブロック1においてステップS71またはステップS72において決定したデータ書き込み順に従って、情報b、情報c、情報aの順でデータ書き込みを実行する(ステップS78、S79、S80)。
【0048】
また、エラー数に対する剰余演算mod3の剰余が1でなく剰余が2である場合に(ステップS77;NO)、CPU11は、ブロック1においてステップS71またはステップS72において決定したデータ書き込み順に従って、情報c、情報a、情報bの順でデータ書き込みを実行する(ステップS81、S82、S83)。
【0049】
以上のような本実施形態によれば、不揮発性メモリにおけるブロック1(第1ブロック)およびブロック2(第2ブロック)の周辺に設定したエラー記憶領域を用いて故障した単位記憶領域の位置を示すエラー情報データを保持できるので、より少ない記憶領域の使用量で誤り対策が可能である。また、多数決処理のような手法が不要であり、データの信頼性を高めることができる。
【0050】
なお、本発明は上述した実施形態の内容に限定されるものではなく、本発明の要旨の範囲内において種々に変形して実施をすることが可能である。例えば、上記した実施形態ではブロック1及びブロック2のロウ方向及びカラム方向のそれぞれにエラー記憶領域を設定していたが、ロウ方向とカラム方向のいずれか一方にのみエラー記憶領域を設定してもよい。また、各ブロック1、2やエラー記憶領域のそれぞれに含まれる単位記憶領域の数や配置についても上記実施形態は一例であり、これにのみ限定されない。
【符号の説明】
【0051】
1:メモリ制御装置
11:CPU
12:ROM
13:RAM
14:データバス
20:不揮発性メモリ