JP5660521B2 - 不揮発性半導体記憶装置およびメモリ管理方法 - Google Patents

不揮発性半導体記憶装置およびメモリ管理方法 Download PDF

Info

Publication number
JP5660521B2
JP5660521B2 JP2011134737A JP2011134737A JP5660521B2 JP 5660521 B2 JP5660521 B2 JP 5660521B2 JP 2011134737 A JP2011134737 A JP 2011134737A JP 2011134737 A JP2011134737 A JP 2011134737A JP 5660521 B2 JP5660521 B2 JP 5660521B2
Authority
JP
Japan
Prior art keywords
memory cell
cell block
data
memory
update
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.)
Expired - Fee Related
Application number
JP2011134737A
Other languages
English (en)
Other versions
JP2013003869A (ja
Inventor
浅井 健太郎
健太郎 浅井
佐藤 二郎
二郎 佐藤
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2011134737A priority Critical patent/JP5660521B2/ja
Publication of JP2013003869A publication Critical patent/JP2013003869A/ja
Application granted granted Critical
Publication of JP5660521B2 publication Critical patent/JP5660521B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、不揮発性メモリを備える不揮発性半導体記憶装置および不揮発性メモリのメモリ管理方法に関する。
近年、クレジットカードやキャッシュカード等の用途で、ICチップを埋め込んだICカードが普及しつつある。ICカードは、磁気カードと比較して、記憶容量が大きく、複製や偽造等が難しいため、セキュリティ性が高い。このため、高いセキュリティ性が必要とされる電子マネー機能等の用途で普及しつつある。
ICカードでは、一般的に、電源を切っても記憶内容を保持することができる不揮発性メモリが用いられることが多い。このような不揮発性メモリには、例えば、EEPROM(Electrically Erasable/Programmable Read Only Memory)、フラッシュEEPROM(以下、フラッシュメモリと称する)等がある。特に、フラッシュメモリは、大容量化を容易かつ低コストで実現できる。
また、フラッシュメモリは、例えば、車両用制御装置(ECUともいう)のマイクロコンピュータ(マイコンともいう)の記憶媒体としても用いられている。
ところで、フラッシュメモリでは、動作原理上、消去状態を書き込み状態にする書き込み処理は、アドレス単位あるいはビット単位で実行できるが、書き込み状態を消去状態にする消去処理については、メモリセルブロック単位(セクタ単位)で一括して行われ、アドレス単位あるいはビット単位で実行することはできない。
このため、不揮発性半導体記憶装置では、一般的に、所定のメモリセルブロック(以下、単に「ブロック」ということもある)に既に書き込まれているデータの全部または一部を更新する場合、更新後のデータを一括消去処理済みのメモリセルブロック(更新先メモリセルブロック)に書き込む書き込み処理を実行した後、更新前のデータが記憶された更新元メモリセルブロックを一括消去する一括消去処理を実行するデータ更新処理を実行している。なお、更新元メモリセルブロックおよび更新先メモリセルブロックには同じ論理アドレス(仮想アドレス)が割り当てられる。
例えば、現在使用中のメモリセルブロックに全てデータが書き込まれた場合、データ更新処理を実行し、別の(一括消去済の)メモリセルブロック(すなわち、更新先メモリセルブロック)に必要なデータをコピーする。そして、更新先メモリセルブロック(つまり、直近のデータ更新処理における更新先メモリセルブロック)が現在使用中のメモリセルブロックとなる。
ところで、フラッシュメモリ等の不揮発性メモリでは、一括消去処理や書き込み処理の実行中に、何らかの原因により、電源断が発生する場合がある。一括消去処理の実行中に電源断が発生した場合には、例えば、メモリセルブロック内に書き込み状態のビットが残存する、あるいは、消去状態および書き込み状態のいずれにも該当しない不定状態のビットが発生する等の問題が生じる。また、書き込み処理の実行中に電源断が発生すると、例えば、記憶すべきデータの一部が欠落した状態となる等の問題が発生する。
そこで、不揮発性メモリに対するデータ更新処理および電源断等に対する異常対応処理の処理手順の簡略化および処理時間の短縮を図るために、上述のデータ更新処理が複数の要素処理を含み、メモリセルブロックが、データ領域と実行中の要素処理を特定可能なステータス情報を記憶するステータス情報記憶領域を備え、ステータス情報のそれぞれが、書き込み処理の実行のみでステータス情報記憶領域を次に実行する要素処理のステータス情報に更新可能なデータ構成を有する不揮発性半導体記憶装置およびメモリ管理方法が考案されている(特許文献1参照)。
特開2008−305263号公報
特許文献1の構成では、ステータス情報が何らかの原因でデータ化けをした場合、誤ったステータス判定を行い、古いブロックや空きブロックを最新ブロックと誤判定する可能性がある。そこで、ステータス情報を2重化してデータ化けに対処する方法が考えられる。しかし、フラッシュメモリは、上書きができない特性上、使用状況(未使用、使用中、使用済、故障等)に対応した数のステータス情報領域を確保しなければならないため、ステータス情報の2重化により、データ記憶領域が少なくなるという問題が生ずる。
また、ステータス情報を2重化しても、「使用中」であるメモリセルブロックが複数あったときには、いずれが最新のメモリセルブロックかを特定することができないという問題もある。
上記問題点を背景として、本発明の課題は、より少ないステータス情報領域で、ステータス異常に対応することができる不揮発性半導体記憶装置およびメモリ管理方法を提供することにある。
課題を解決するための手段および発明の効果
上記課題を解決するための不揮発性半導体記憶装置は、1以上のアドレスを有するメモリセルブロックを複数備える不揮発性メモリと、不揮発性メモリに対し、メモリセルブロック単位での一括消去処理、予め定められたアドレス数の記憶領域単位またはビット単位での書き込み処理、および、メモリセルブロック単位で、データ更新元メモリセルブロックからデータ更新先メモリセルブロックへ予め定められたデータを転送するデータ更新処理の制御を行うメモリ制御部と、を備え、複数のメモリセルブロックは、それぞれ、該メモリセルブロックの使用状態に関する情報を含むステータス情報を記憶するためのステータス情報記憶領域と、該メモリセルブロックのデータ更新処理における更新履歴を含む更新履歴情報を記憶する更新履歴情報記憶領域と、を備え、更新履歴情報記憶領域は、更新履歴が真正なものであるかを検査するためのデータを含み、更新履歴が真正なものであるかを検査した上で、ステータス情報および更新履歴情報に基づいて、現在使用中のメモリセルブロックを特定するメモリセルブロック特定部を備えることを特徴とする。
上記構成によって、更新履歴情報は、使用状況(未使用、使用中、使用済、故障等)に応じた記憶領域を複数組確保する必要はないので、ステータス情報を2重化することなく、少ないステータス情報領域で、ステータス異常に対応することができる。
また、本発明の不揮発性半導体記憶装置におけるメモリセルブロック特定部は、ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが複数あるとき、その複数のメモリセルブロックのうち、更新履歴情報に直近のデータ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックを、現在使用中のメモリセルブロックとする。
上記構成によって、ステータス情報が何らかの原因でデータ化けをした場合でも、現在使用中のメモリセルブロックを特定することができる。
また、本発明の不揮発性半導体記憶装置における更新履歴情報は、カウンタ値を含み、メモリ制御部は、データ更新処理において、データ更新先メモリセルブロックのカウンタ値として、データ更新元メモリセルブロックのカウンタ値に対して、予め定められた値を加算したものを記憶し、メモリセルブロック特定部は、カウンタ値に基づいて、直近のデータ更新処理におけるデータ更新先メモリセルブロックを判定する。
上記構成によって、ステータス情報を2重化することなく、ステータス情報が何らかの原因でデータ化けをした場合でも、現在使用中のメモリセルブロックを特定することができる。カウンタ長は、例えば1バイト程度でよく、ステータス情報の約1/4であるため、更新履歴情報のデータを小さなものとすることができる。また、このカウンタを用いることで、メモリセルブロックのデータ更新回数を把握でき、メモリセルブロックの使用状況や寿命の推定にも活用することができる。
また、本発明の不揮発性半導体記憶装置におけるメモリセルブロック特定部は、ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないとき、該メモリセルブロックを現在使用中のメモリセルブロックとする。
上記構成によって、ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないときは、更新履歴情報を参照しないため、現在使用中のメモリセルブロックを特定するための時間を短縮することができる。
上記課題を解決するためのメモリ管理方法は、1以上のアドレスを有するメモリセルブロックを複数備える不揮発性メモリと、不揮発性メモリに対し、メモリセルブロック単位での一括消去処理、予め定められたアドレス数の記憶領域単位またはビット単位での書き込み処理、および、メモリセルブロック単位で、データ更新元メモリセルブロックからデータ更新先メモリセルブロックへ予め定められたデータを転送するデータ更新処理を実行するメモリ制御部を備えた不揮発性半導体記憶装置のメモリ管理方法であって、複数のメモリセルブロックは、それぞれ、該メモリセルブロックの使用状態に関する情報を含むステータス情報を記憶するためのステータス情報記憶領域と、該メモリセルブロックのデータ更新処理における更新履歴を含む更新履歴情報を記憶する更新履歴情報記憶領域と、を備え、更新履歴情報記憶領域は、更新履歴が真正なものであるかを検査するためのデータを含み、メモリ制御部において、更新履歴が真正なものであるかを検査した上で、ステータス情報および更新履歴情報に基づいて、現在使用中であるメモリセルブロックを特定するメモリセルブロック特定処理を実行することを特徴とする。
上記構成によって、更新履歴情報は、使用段階(使用中、使用済、故障等)に応じた記憶領域を複数組確保する必要はないので、ステータス情報を2重化することなく、少ないステータス情報領域で、ステータス異常に対応することができる。
また、本発明のメモリ管理方法におけるメモリセルブロック特定処理において、ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが複数あるとき、その複数のメモリセルブロックのうち、更新履歴情報に直近のデータ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックを、現在使用中のメモリセルブロックとする。
上記構成によって、ステータス情報が何らかの原因でデータ化けをした場合でも、現在使用中のメモリセルブロック(つまり、最新のデータ更新先メモリセルブロック)を特定することができる。
また、本発明のメモリ管理方法における更新履歴情報は、カウンタ値を含み、データ更新処理において、データ更新先メモリセルブロックのカウンタ値として、データ更新元メモリセルブロックのカウンタ値に対して、予め定められた値を加算したものを記憶し、メモリセルブロック特定処理において、カウンタ値に基づいて、直近のデータ更新処理におけるデータ更新先メモリセルブロックを判定する。
上記構成によって、ステータス情報を2重化することなく、ステータス情報が何らかの原因でデータ化けをした場合でも、現在使用中のメモリセルブロックを特定することができる。カウンタ長は、例えば1バイト程度でよく、ステータス情報の約1/4であるため、更新履歴情報のデータを小さなものとすることができる。また、このカウンタを用いることで、メモリセルブロックのデータ更新回数を把握でき、メモリセルブロックの使用状況や寿命の推定にも活用することができる。
また、本発明のメモリ管理方法におけるメモリセルブロック特定処理において、ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないとき、該メモリセルブロックを現在使用中であるメモリセルブロックとする。
上記構成によって、ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないときは、更新履歴情報を参照しないため、現在使用中のメモリセルブロックを特定するための時間を短縮することができる。
本発明の不揮発性半導体記憶装置の構成を示す図。 本発明の不揮発性半導体記憶装置の構成の別例を示す図。 フラッシュメモリの詳細構成を示す図。 ステータス情報記憶領域の構成を示す図。 更新履歴情報記憶領域の構成を示す図。 フラッシュメモリに記憶されるデータの構成を示す図。 データ化けを生じたフラッシュメモリの構成を示す図。 初期化処理を説明するフロー図。 データ更新処理を説明するフロー図。 ブロック特定処理を説明するフロー図。 ブロック特定処理の別例を説明するフロー図。
以下、本発明のメモリ管理方法および不揮発性半導体記憶装置について、図面を用いて説明する。まず、図1に、本発明のメモリ管理方法および不揮発性半導体記憶装置をICカードへ適用した例を示す。ICカード1は、1以上のアドレスを有するメモリセルブロックを複数備え、ICカード1の動作に必要なデータを記憶するフラッシュメモリ11(詳細は図3参照)、あるいはROM13に記憶された制御プログラムを実行することにより、ICカード1の各種機能を実現するCPU10と、CPU10による制御プログラムの実行において生成される各種データを一時的に記憶するためのRAM12を備えている。
また、ICカード1は、リーダライタ装置(図示せず)と物理的に接続してデータ通信を行うための接触式用通信I/F14と、リーダライタ装置と物理的に接続せずにデータ通信を行うための非接触式用通信I/F15のうちの少なくとも一方を備えて構成されている。本実施形態では、ICカード1は、接触式用通信I/F14または非接触式用通信I/F15を介して、リーダライタ装置から電源供給を受けるように構成されている。
CPU10は、リーダライタ装置とのデータ通信を行うとともに、データ通信の状態あるいはフラッシュメモリ11の各メモリセルブロックの記憶状態に応じて、フラッシュメモリ11に対し、メモリセルブロック単位での一括消去処理、所定アドレス数の記憶領域単位またはビット単位での書き込み処理、および、メモリセルブロック単位でのデータ更新処理等の制御を行う。なお、CPU10が本発明のメモリ制御部,メモリセルブロック特定部に相当する。また、フラッシュメモリ11が本発明の不揮発性メモリに相当する。
図2に、本発明のメモリ管理方法および不揮発性半導体記憶装置を電子制御装置(ECU)へ適用した例を示す。ECU2は、例えば車両のエンジン制御、エアコン制御等の車載機器の制御に用いられる。ECU2は、CPU20,フラッシュメモリ21,RAM22,ROM23を備え、CPU20が、フラッシュメモリ21あるいはROM23に記憶された制御プログラムを実行することにより、ECU2の各種機能を実現する。RAM22は、CPU10による制御プログラムの実行において生成される各種データを一時的に記憶する。
また、ECU2は、例えば、回転センサ,温度センサのようなセンサ26からのデータの取得、あるいは他のECUからのデータ受信を行うための入力I/F24と、例えば、モータ,ソレノイドのようなアクチュエータ27に対する動作制御指令値の出力、あるいは他のECUへのデータ送信を行うための出力I/F25を備えている。
フラッシュメモリ21は、1以上のアドレスを有するメモリセルブロックを複数備え(詳細は図3参照)、ECU2の動作に必要なデータを記憶する。CPU20は、ECU2の動作状態あるいはフラッシュメモリ21の各メモリセルブロックのデータ記憶状態に応じて、フラッシュメモリ21に対し、メモリセルブロック単位での一括消去処理、所定アドレス数の記憶領域単位またはビット単位での書き込み処理、および、メモリセルブロック単位でのデータ更新処理等の制御を行う。なお、CPU20が本発明のメモリ制御部,メモリセルブロック特定部に相当する。また、フラッシュメモリ21が本発明の不揮発性メモリに相当する。
上記構成により、ECU2は、センサ26あるいは他のECUから取得したデータ、およびアクチュエータ27の動作状態に基づいて、動作制御指令値を演算し、アクチュエータ27に出力する。
フラッシュメモリ(11,21)の構成、および上述のデータ更新処理等のフラッシュメモリに対する制御は、ICカード1およびECU2とも同様であるので、以下の本発明の構成の説明については、ICカード1の符号を用いて行う。
図3に、フラッシュメモリ11の詳細構成を示す。図3の例では、フラッシュメモリ11は、ブロック(「メモリセルブロック」の略称)1〜ブロック4で示された4個のメモリセルブロックを含んでいる。各メモリセルブロックは、ステータス情報記憶領域(101,201,301,401)、更新履歴情報記憶領域(102,202,302,402)が設けられ、残余の領域がデータ記憶領域(103,203,303,403)となっている。
メモリセルブロックにデータが何も記憶されていない状態(例えば、一括消去処理が行われた後の状態)では、ブロック3あるいはブロック4のように、ステータス情報記憶領域は「未使用」、更新履歴情報記憶領域は「値なし」、データ記憶領域は「空き」となっている。
また、メモリセルブロックにデータが書き込まれると、そのメモリセルブロック(図3のブロック1,ブロック2)には、ステータス情報記憶領域(101,201)、更新履歴情報記憶領域(102,202)には、状態に応じた値が書き込まれ、データ記憶領域(103,203)にデータが書き込まれる。
図3は、既存のデータの更新(この場合は追記)・新規のデータの追加等でブロック1のデータ記憶領域が空き領域のない一杯の状態(「FULL」と表記)になったため、データ更新処理により、現在使用中のデータ(すなわちデータ203a)のみをブロック2にコピーした状態を示している(詳細については後述)。また、ブロック2には空き領域203bがあるので、記憶されているデータ203aの更新が行われたとき、あるいは新たにデータを追加するときは、この空き領域203bに順次追記される。
図4を用いて、上述のステータス情報記憶領域(101,201,301,401)の詳細について、ブロック1のステータス情報記憶領域101を例に挙げて説明する。ステータス情報記憶領域は、例えば1バイト×4の4バイトの領域で構成され、それぞれ、「使用中」領域101a,「コピー中」領域101b,「使用済」領域101c,「故障」領域101dのように区分されている。図4(a)のブロック3,4のように、ブロック1が未使用のときは、ステータス情報記憶領域101の全領域(101a,101b,101c,101d)に何も書き込まれていない状態(データが消去された状態)となっている。
図4(b)のように、ブロック1を使用中のときは、「使用中」領域101aに予め定められた値が書き込まれる(他の3個の領域は「空き」状態)。次に、他のメモリセルブロックへデータをコピーするデータ更新処理を実行中のときには、「コピー中」領域101bに予め定められた値が書き込まれる(他の2個の領域:「使用済」領域101c,「故障」領域101dは「空き」状態)。
そして、データ更新処理を終了すると、図4(c)のように、「使用済」領域101cに予め定められた値が書き込まれる(「故障」領域101dのみ「空き」状態)。このとき、コピー先のメモリセルブロックのステータス情報記憶領域の「使用中」領域に、予め定められた値が書き込まれる。
また、正常に読み書きできないもの、過去にデータが正常でない値に書き換わった状態(以降、「データ化け」と称する)を生じたものには、そのステータス情報記憶領域の「故障」領域101dに、予め定められた値が書き込まれる。そして、以降の動作では、「故障」領域101dに、予め定められた値が書き込まれているメモリセルブロックはデータの記憶に用いないようにしている。また、リーダライタ装置(図示せず)あるいは他のECUに、メモリセルブロックが故障している旨の情報を出力するような、予め定められた故障対応処理を実行してもよい。
なお、上述のステータス情報記憶領域の各領域に書き込む値は、本実施例では0x5A(1バイトデータ)としているが、データ化けの発生を正確に検出できるのであれば、どのような値,データ長としてもよい。
上述のように、フラッシュメモリは、アドレス単位あるいはビット単位で消去・上書きができないため、状態に応じて領域を確保している。
また、ステータス情報を読み出すときの優先順位は、「故障」が最も高く、以下、「使用中」,「コピー中」,「使用済」の順となり、「使用済」が最も低い。そして、101a〜101dのうち複数の領域に予め定められた値(例えば、0x5A)が書き込まれているときには、それらの領域のうち優先順位のより高い領域の状態をそのメモリセルブロックのステータス情報として用いる。例えば、「使用中」領域101aと「コピー中」領域101bに予め定められた値が書き込まれているときには、そのメモリセルブロックのステータス情報は「コピー中」となる。
図5を用いて、更新履歴情報記憶領域(102,202,302,402)の詳細について、ブロック1の更新履歴情報記憶領域102を例に挙げて説明する。図5の例では、更新履歴情報としてカウンタを用いている。このカウンタは、データ更新処理において、自身がコピー先となったときに、コピー元のメモリセルブロックの更新履歴情報記憶領域のカウンタ値に対して、インクリメントした(あるいはデクリメントした)ものを記憶する。カウンタ値が最大となったときには、初期値(例えば、ゼロ)に戻ってインクリメントを継続する。
なお、図3の、更新履歴情報記憶領域(302,402)の「カウンタ(値なし)」は、データ削除時に書き込まれる値、あるいは初期値等の予め定められた値のような、カウンタ値が通常時に示す値とは異なる値となっていることを示している。
更新履歴情報は、直近のデータ更新処理におけるデータ更新先であることを示すもので、最新のデータ更新先であることを示すことが可能であれば、カウンタ値以外の値(例えば、他のメモリセルブロックの更新履歴情報との間で大小関係を比較できるもの)を設定してもよい。
また、図5のように、更新履歴情報記憶領域に、カウンタ値102aの他に、カウンタ値のチェックサム102b(符号はブロック1を例示)を含めてもよい。このように、更新履歴情報記憶領域に、更新履歴の検査用のデータを含めることで、更新履歴(すなわち、カウンタ値)が正しいものかどうかを確認でき、現在使用中であるメモリセルブロックをより正確に特定することができる。
また、更新履歴情報記憶領域のデータ長は、カウンタ値とチェックサムで1バイトとしてもよいし、カウンタ値を2バイトとしチェックサムを1バイトとしてもよい。
また、更新履歴情報記憶領域のカウンタ値を、メモリセルブロック(ブロック1〜4)の使用状況や寿命の推定にも活用することができる。例えば、カウンタ値が予め定められた閾値を超えるメモリセルブロックは、データ更新処理に用いないようにする(詳細は後述)。
図6に、フラッシュメモリのデータ記憶領域に記憶されるデータの構成を示す。データは、データID,データ値,データ値(データIDを含めてもよい)のチェックサムを含んでいる。チェックサムを含まない構成としてもよい。例えばブロック2に既に記憶されているデータが更新され、更新データが空き領域203bに追記されたとき、ブロック2には同じデータIDを持つデータが複数記憶される。しかし、データはデータ記憶領域203の先頭アドレスから書き込まれるので、同じデータIDで、最も大きいアドレスに書き込まれているものが最新のデータであると判断できる。
図7に、図3のフラッシュメモリにおいて、ノイズ、データ更新処理が正常に行われなかった、等の原因で、メモリセルブロックのステータス情報記憶領域あるいは更新履歴情報記憶領域で、データ化けを生じた状態を示す。
図7の例では、ブロック1のステータス情報が「使用中」になっている。つまり、「コピー中」領域101bおよび「使用済」領域101cの本来のデータ(0x5A)が、消去された(あるいはデータ化けした)状態となっている。また、ブロック4のステータス情報が「使用中」になっている。つまり、「使用中」領域にデータ(0x5A)が書き込まれた状態となっている。この状態では、ステータス情報のみでは、どのメモリセルブロックが現在使用中であるかを特定することはできない。
図8を用いて、ROM13に記憶された制御プログラムに含まれ、CPU10が実行する初期化処理について説明する。まず、ブロック1(図3参照)のステータス情報記憶領域101の「使用中」領域101aに0x5Aを書き込む(S11)。次に、ブロック1の更新履歴情報記憶領域102(カウンタ値102a)に0x00を書き込む(S12)。無論、チェックサム値を計算して書き込んでもよい。
上述の初期化処理で、ステップS11を実行する前に、全ブロック(1〜4)の一括消去処理を実行してもよい。
図9,図4を用いて、ROM13に記憶された制御プログラムに含まれ、CPU10が実行するデータ更新処理について説明する(ブロック1→ブロック2へのコピーを例示)。本処理は、例えば、現在使用中のメモリセルブロックのデータ記憶領域が一杯になったときに実行する。なお、ステップS30a〜S30cについては、本処理の必須構成ではないので後述する。
まず、ブロック1(図3参照)のステータス情報記憶領域101の「コピー中」領域101bに0x5Aを書き込む(S31)。次に、ブロック1のデータをブロック2にコピーする(S32)。コピーするデータは各データIDの最新のもののみである。どのデータが最新かの判断方法は上述したとおりである。
データのコピーが終了したとき(S33:Yes)、ブロック2のステータス情報記憶領域201の「使用中」領域201aに0x5Aを書き込む(S34)。続いて、ブロック2の更新履歴情報記憶領域202(カウンタ値202a)に0x01を書き込む(S35)。上述の初期化処理で、ブロック1の更新履歴情報記憶領域102(カウンタ値102a)には0x00が書き込まれているので、その値をインクリメントしたものを更新履歴情報記憶領域202に書き込んでいる。ブロック1の更新履歴情報に記憶された値に1以外の値を加えたもの、ブロック1の更新履歴情報に記憶された値に所定の演算を行ったものでもよい。
最後に、ブロック1のステータス情報記憶領域101の「使用済」領域101cに0x5Aを書き込む(S36)。
上述の、更新履歴情報記憶領域のカウンタ値を用いることで、メモリセルブロックのデータ更新回数を把握し、メモリセルブロックの使用状況や寿命の推定にも活用する方法について説明する。これは、図9のステップS30a〜S30cに相当している。無論、データ更新処理において、これらのステップを必ず実行しなければならないということではない。上述のステップS31を実行する前に、全てのブロック(データ更新先の対象となるブロックのみでもよい)の更新履歴情報を読み込む(S30a)。次に、データ更新先としたいメモリセルブロック(例えば、ブロック2)の更新履歴情報に含まれるカウンタ値が予め定められた閾値以下となるとき(S30b:Yes)そのメモリセルブロックをデータ更新先としてステップS31へ進む。
一方、カウンタ値が閾値を超えるとき(S30b:No)、そのメモリセルブロックをデータ更新先に用いず、別のメモリセルブロックを選択し(S30c)、そのメモリセルブロックのカウンタ値を調べる。なお、カウンタ値が閾値以下となるメモリセルブロックが1つもないときには、本処理を終了する。
図10を用いて、ROM13に記憶された制御プログラムに含まれ、CPU10が実行するブロック特定処理について説明する。まず、不揮発性半導体記憶装置に電源を投入する(S51)。ICカード1のときは、リーダライタ装置(図示せず)に電源を投入してICカード1をリーダライタ装置に接近あるいは挿入した状態である。また、ECU2のときは、ECU2に電源を投入した状態である。
次に、フラッシュメモリ11の全てのメモリセルブロック(ブロック1〜4)のステータス情報記憶領域(101,201,301,401)および更新履歴情報記憶領域(102,202,302,402)の内容を読み込む(S52)。全てのメモリセルブロックのステータス情報および更新履歴情報を読み込むと(S53:Yes)、ステータス情報の「使用中」領域に0x5Aが書き込まれているブロック、すなわち現在使用中のメモリセルブロックを検索する(S54)。このとき、「使用済」領域あるいは「故障」領域に0x5Aが書き込まれているものは除外する。
次に、現在使用中のメモリセルブロックがあり(S55:Yes)、現在使用中のメモリセルブロックが複数ないとき(S56:No)、検索したメモリセルブロックを現在使用中のメモリブロックとして特定する(S57)。
一方、現在使用中のメモリセルブロックがなかったとき(S55:No)、あるいは、現在使用中のメモリセルブロックが複数あったとき(S56:Yes)、読み込んだ更新履歴情報記憶領域の内容から、カウンタ値が最大である(すなわち、直近のデータ更新処理におけるデータ更新先であることを示す値を記憶する)メモリセルブロックを検索する(S58)。使用中のメモリセルブロックを検索できなかったときは、全てのメモリセルブロックが検索対象となる。また、使用中のメモリセルブロックを複数あったときは、それら複数のメモリセルブロックがカウンタ値の検索対象となる。
カウンタ値が最大であるメモリセルブロックを検索できたとき(S59:Yes)、そのメモリセルブロックを現在使用中のメモリセルブロックとして特定する(S57)。
一方、カウンタ値が最大であるメモリセルブロックを検索できなかったとき(S59:No)、例えば工場出荷状態と判定して、ブロック1を「使用中」とする(S60)。このとき、ブロック1を「使用中」とする前に、全ブロック(ブロック1〜4)の一括消去処理を実行してもよい。
図11を用いて、ブロック特定処理の別例について説明する。なお、本処理は図10の変形例であるので、図10と同一の処理ステップについては同一の符号を付与し、ここでの詳細な説明は割愛する。また、本処理では、メモリセルブロック特定部は、更新履歴情報に直近のデータ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックがあるときには、そのメモリセルブロックのステータス情報に現在使用中である旨の情報が含まれているとき、そのメモリセルブロックを現在使用中であるメモリセルブロックとしている。
フラッシュメモリ11の、全てのメモリセルブロック(ブロック1〜4)のステータス情報記憶領域(101,201,301,401)および更新履歴情報記憶領域(102,202,302,402)の内容を読み込むと(S53:Yes)、読み込んだ更新履歴情報記憶領域の内容から、カウンタ値が最大であるメモリセルブロックを検索する(S531)。
カウンタ値が最大であるメモリセルブロックを検索できたとき(S532:Yes)、かつ、検索したメモリセルブロックが複数でないとき(S533:No)、検索したメモリセルブロックのステータス情報を参照し、以下のように、ステータス情報に応じた処理を実行する(S534)。
・ステータス情報が「使用中」のとき:そのメモリセルブロックを継続して使用する。
・ステータス情報が「コピー中」のとき:図9のデータ更新処理(メモリセルブロックのコピー)の実行途中と推定できるので、データ更新処理をやり直す。このとき、コピーの前に、コピー先のメモリセルブロックの内容を一括消去してもよい。
・ステータス情報が「使用済」のとき:メモリセルブロック内のデータを他のメモリセルブロックにコピーする。つまり、図9のデータ更新処理を実行する。
・ステータス情報が「故障」のとき:上述のような故障対応処理を実行する。
・ステータス情報が上記以外のとき:「使用中」と見なす。
そして、ステータス情報が「使用中」のメモリセルブロックがあるときには、
そのメモリセルブロックを現在使用中のメモリセルブロックとして特定する(S537)。
検索した、カウンタ値最大のメモリセルブロックの数が複数でないとき(S533:No)、そのメモリセルブロックが「使用中」であるか否かを判定せずに、現在使用中のメモリセルブロックとして特定してもよい。
一方、カウンタ値が最大であるメモリセルブロックを検索できないとき(S532:No)、例えば工場出荷状態と判定して、ブロック1を「使用中」とする(S60)。図8の初期化処理を実行してもよい。
また、カウンタ値が最大であるメモリセルブロックを複数検索したとき(S533:Yes)、検索した複数のメモリセルブロックに現在使用中のメモリセルブロックがあるか否かを検索する(S535)。検索の結果、現在使用中のメモリセルブロックが複数見つからなかったとき(S536:No)、検索されたメモリセルブロックを現在使用中のメモリセルブロックとして特定する(S537)。一方、現在使用中のメモリセルブロックが複数見つかったとき(S536:Yes)、そのうちのいずれを現在使用中のメモリセルブロックとするか特定できないため、上述のステップS60の処理を実行する。
なお、上述の実施例で、カウンタ値をインクリメントする構成において、カウンタ値がオーバーフローしたときには、カウンタ値をゼロに戻すが、この場合の最大値はゼロとなる。また、ブロック1〜4において、ゼロを挟んでオーバーフロー前の値とゼロ以降の値とが記憶されているときは、オーバーフロー前の値を検索の対象から外すようにしてもよい。
車両以外の制御機器に用いられる不揮発性半導体記憶装置にも適用可能である。
以上、本発明の実施の形態を説明したが、これらはあくまで例示にすぎず、本発明はこれらに限定されるものではなく、特許請求の範囲の趣旨を逸脱しない限りにおいて、当業者の知識に基づく種々の変更が可能である。
1 ICカード
2 ECU
10 CPU(メモリ制御部,メモリセルブロック特定部)
11 フラッシュメモリ(不揮発性メモリ)
20 CPU(メモリ制御部,メモリセルブロック特定部)
21 フラッシュメモリ(不揮発性メモリ)
101,201,301,401 ステータス情報記憶領域
102,202,302,402 更新履歴情報記憶領域
ブロック1〜ブロック4 メモリセルブロック

Claims (8)

  1. 1以上のアドレスを有するメモリセルブロックを複数備える不揮発性メモリと、
    前記不揮発性メモリに対し、前記メモリセルブロック単位での一括消去処理、予め定められたアドレス数の記憶領域単位またはビット単位での書き込み処理、および、前記メモリセルブロック単位で、データ更新元メモリセルブロックからデータ更新先メモリセルブロックへ予め定められたデータを転送するデータ更新処理の制御を行うメモリ制御部と、
    を備え、
    前記複数のメモリセルブロックは、それぞれ、
    該メモリセルブロックの使用状態に関する情報を含むステータス情報を記憶するためのステータス情報記憶領域と、
    該メモリセルブロックの前記データ更新処理における更新履歴を含む更新履歴情報を記憶する更新履歴情報記憶領域と、
    を備え、
    前記更新履歴情報記憶領域は、前記更新履歴が真正なものであるかを検査するためのデータを含み、
    前記更新履歴が真正なものであるかを検査した上で、前記ステータス情報および前記更新履歴情報に基づいて、現在使用中のメモリセルブロックを特定するメモリセルブロック特定部を備えることを特徴とする不揮発性半導体記憶装置。
  2. 前記メモリセルブロック特定部は、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが複数あるとき、その複数のメモリセルブロックのうち、更新履歴情報に直近の前記データ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックを、現在使用中のメモリセルブロックとする請求項1に記載の不揮発性半導体記憶装置。
  3. 前記更新履歴情報は、カウンタ値を含み、
    前記メモリ制御部は、前記データ更新処理において、前記データ更新先メモリセルブロックのカウンタ値として、前記データ更新元メモリセルブロックのカウンタ値に対して、予め定められた値を加算したものを記憶し、
    前記メモリセルブロック特定部は、前記カウンタ値に基づいて、前記直近のデータ更新処理におけるデータ更新先メモリセルブロックを判定する請求項2に記載の不揮発性半導体記憶装置。
  4. 前記メモリセルブロック特定部は、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないとき、該メモリセルブロックを現在使用中のメモリセルブロックとする請求項1ないし請求項3のいずれか1項に記載の不揮発性半導体記憶装置。
  5. 1以上のアドレスを有するメモリセルブロックを複数備える不揮発性メモリと、
    前記不揮発性メモリに対し、前記メモリセルブロック単位での一括消去処理、予め定められたアドレス数の記憶領域単位またはビット単位での書き込み処理、および、前記メモリセルブロック単位で、データ更新元メモリセルブロックからデータ更新先メモリセルブロックへ予め定められたデータを転送するデータ更新処理を実行するメモリ制御部を備えた不揮発性半導体記憶装置のメモリ管理方法であって、
    前記複数のメモリセルブロックは、それぞれ、
    該メモリセルブロックの使用状態に関する情報を含むステータス情報を記憶するためのステータス情報記憶領域と、
    該メモリセルブロックの前記データ更新処理における更新履歴を含む更新履歴情報を記憶する更新履歴情報記憶領域と、
    を備え、
    前記更新履歴情報記憶領域は、前記更新履歴が真正なものであるかを検査するためのデータを含み、
    前記メモリ制御部において、前記更新履歴が真正なものであるかを検査した上で、前記ステータス情報および前記更新履歴情報に基づいて、現在使用中であるメモリセルブロックを特定するメモリセルブロック特定処理を実行することを特徴とするメモリ管理方法。
  6. 前記メモリセルブロック特定処理において、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが複数あるとき、その複数のメモリセルブロックのうち、更新履歴情報に直近の前記データ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックを、現在使用中のメモリセルブロックとする請求項5に記載のメモリ管理方法。
  7. 前記更新履歴情報は、カウンタ値を含み、
    前記データ更新処理において、前記データ更新先メモリセルブロックのカウンタ値として、前記データ更新元メモリセルブロックのカウンタ値に対して、予め定められた値を加算したものを記憶し、
    前記メモリセルブロック特定処理において、前記カウンタ値に基づいて、前記直近のデータ更新処理におけるデータ更新先メモリセルブロックを判定する請求項6に記載のメモリ管理方法。
  8. 前記メモリセルブロック特定処理において、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないとき、該メモリセルブロックを現在使用中であるメモリセルブロックとする請求項5ないし請求項7のいずれか1項に記載のメモリ管理方法。
JP2011134737A 2011-06-17 2011-06-17 不揮発性半導体記憶装置およびメモリ管理方法 Expired - Fee Related JP5660521B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011134737A JP5660521B2 (ja) 2011-06-17 2011-06-17 不揮発性半導体記憶装置およびメモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011134737A JP5660521B2 (ja) 2011-06-17 2011-06-17 不揮発性半導体記憶装置およびメモリ管理方法

Publications (2)

Publication Number Publication Date
JP2013003869A JP2013003869A (ja) 2013-01-07
JP5660521B2 true JP5660521B2 (ja) 2015-01-28

Family

ID=47672370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011134737A Expired - Fee Related JP5660521B2 (ja) 2011-06-17 2011-06-17 不揮発性半導体記憶装置およびメモリ管理方法

Country Status (1)

Country Link
JP (1) JP5660521B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5695112B2 (ja) 2013-03-18 2015-04-01 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置
JP6040895B2 (ja) * 2013-09-02 2016-12-07 株式会社デンソー マイクロコンピュータ及び不揮発性メモリのブロック管理方法
US20160275011A1 (en) * 2014-09-25 2016-09-22 Kyoto Software Research, Inc. Microcomputer with built-in flash memory, method for writing data to built-in flash memory of microcomputer, and program for writing data to flash memory
JP2017097404A (ja) * 2015-11-18 2017-06-01 株式会社デンソー マイクロコンピュータ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04344993A (ja) * 1991-05-22 1992-12-01 Kyodo Printing Co Ltd 非接触型icカード
JP2001101087A (ja) * 1999-09-29 2001-04-13 Sharp Corp メモリ及びメモリ制御方法
JP3818130B2 (ja) * 2001-11-14 2006-09-06 日本電信電話株式会社 データ管理方法及び装置及びデータ管理プログラム及びデータ管理プログラムを格納した記憶媒体

Also Published As

Publication number Publication date
JP2013003869A (ja) 2013-01-07

Similar Documents

Publication Publication Date Title
EP1424631B1 (en) Hybrid implementation for error correction codes within a non-volatile memory system
KR101029938B1 (ko) 플래시 메모리 시스템 개시 동작
US6687784B2 (en) Controller for controlling nonvolatile memory unit
US6601132B2 (en) Nonvolatile memory and method of writing data thereto
US20070170268A1 (en) Memory cards, nonvolatile memories and methods for copy-back operations thereof
KR20040014971A (ko) 비휘발성 메모리의 제어방법
KR100370893B1 (ko) 일괄 소거형 비휘발성 메모리 장치
US9170937B2 (en) Data storage device and operating method for flash memory
TWI394170B (zh) 連結表的回復方法
US7543104B2 (en) Non-volatile semiconductor device for use in memory card and memory system
JP5660521B2 (ja) 不揮発性半導体記憶装置およびメモリ管理方法
JP4158526B2 (ja) メモリカード及びメモリへのデータ書き込み方法
JP5695112B2 (ja) データ記憶装置、データの記憶方法および車載用制御装置
US20160210063A1 (en) Data writing method and system
US20100077131A1 (en) Updating control information in non-volatile memory to control selection of content
US11169828B2 (en) Electronic control unit and method for verifying control program
US7353348B2 (en) Nonvolatile memory and card reader provided with the same
CN110888605B (zh) Eeprom的数据写入方法、装置和电子设备
JP4266742B2 (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
US7313648B2 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
JP2010079686A (ja) データ処理装置、メモリ制御回路およびメモリ制御方法
JP2006107363A (ja) 携帯可能電子装置と携帯可能電子装置に用いられるメモリアクセス方法
EP1600900A1 (en) Mobile electronic device
US10714189B2 (en) Atomicity management in an EEPROM

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20121017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141110

R151 Written notification of patent or utility model registration

Ref document number: 5660521

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141123

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees