JP4031693B2 - 不揮発性メモリおよびこれを有したデータ記憶装置 - Google Patents
不揮発性メモリおよびこれを有したデータ記憶装置 Download PDFInfo
- Publication number
- JP4031693B2 JP4031693B2 JP2002280956A JP2002280956A JP4031693B2 JP 4031693 B2 JP4031693 B2 JP 4031693B2 JP 2002280956 A JP2002280956 A JP 2002280956A JP 2002280956 A JP2002280956 A JP 2002280956A JP 4031693 B2 JP4031693 B2 JP 4031693B2
- Authority
- JP
- Japan
- Prior art keywords
- flag
- block
- state
- blocks
- data
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
【発明の属する技術分野】
この発明は、消去などの自身の制御のために参照されるフラグを記憶する不揮発性メモリおよびこれを有したデータ記憶装置に関する。
【0002】
【従来の技術】
フラッシュメモリ等の不揮発性メモリは、記憶されたデータを更新することができるものとして知られている。しかしフラッシュメモリの記憶データを更新する際には、元のデータに上書きするのではなく、元のデータを一旦消去した後に新たなデータを書き込むことになる。
フラッシュメモリの記憶領域は複数のブロックで構成され、各ブロックには複数個のメモリセルが含まれている。データの消去はブロック単位に行なわれる。データを書き込む単位に比べて大きなブロック単位で記憶内容を消去される。例えば、書き込む領域を指定する一つのアドレスによりデータが書き込める容量は数バイトであるに対し、消去するブロックを指定する一つのアドレスによりデータが消去される容量は数Kバイトになる。
【0003】
ここで一つ問題となるのは、ブロックの消去動作の途中に電源が遮断された場合である。再び電源を投入したときにブロック内の消去が完全に行なわれていない状態となる。正常に消去されていないブロックに書き込みを行なうと正常なデータの記憶ができず不揮発性メモリの動作にエラーが生じる。
この問題を防ぐため、ある従来技術によると、複数のブロックにそれぞれ対応した消去情報ビットを不揮発性メモリに設けている。この消去情報ビットは対応のブロックの消去状態を示す。電源が投入されたときに消去情報ビットを参照することにより対応のブロックが完全に消去されたかどうかが判断できる。もし完全に消去されていないならば、対応のブロックに再度消去を施せばよい。このような技術は、例えば次の特許文献1に開示されている。
【0004】
【特許文献1】
特開2001−250388号公報
【0005】
【発明が解決しようとする課題】
この特許文献1の図1を参照すると、データの記憶領域であるブロック(メモリセル領域)とは別の領域(消去情報記憶領域)を設け、この領域に各ブロックに対応する消去情報ビットが記憶されている。この領域は、ブロックとは独立に消去可能な不揮発性の記憶素子で構成される。しかしながら、消去情報ビットの記憶専用にこの独立に消去可能な領域を別途設けることとなり、不揮発性メモリのコスト上昇を招く。
【0006】
そこで特許文献1の図3において、専用の記憶領域を設けるのでなくデータを記憶するブロック内に消去情報ビットを設ける例が開示されている。しかし、各ブロック内にそのブロック自身の消去情報ビットを設けている。したがってこの例でもブロックの消去動作中に不意に電源が遮断されたときやはり問題がある。ブロックの消去動作中に電源が遮断されたときブロックの一部の領域は消去され他の部分は消去されない不完全消去の状態がありえる。よってそのブロックに関する消去情報がこの消去情報が誤った情報をもつ可能性がある。例えば特許文献1の図4によると、ステップS15の途中で電源が遮断されると、消去情報の部分が「10」と誤った値となりうる。この状態で再度電源が投入される場合、誤って消去か完了したと判断され、ブロックが不完全のままデータの書き込みが行われることになる。
【0007】
また不揮発性メモリには書き込みにより記憶した状態が途中で変化してしまう揮発エラーが存在する。特許文献1でも一つの消去情報として“00”、“10”、“11”の3値でそれぞれ異なる状態を示している。例えば“11”が揮発エラーにより“10”に変化してしまうと、消去情報を誤って判断することになる。特に特許文献1の図3のようにブロック内に消去情報ビットをもたせるような場合に、不揮発性メモリによっては、揮発エラーを修正するためにはブロックを一旦消去しなければならないものもある。そのとき、ブロック内などのデータを別のメモリに待避させた後ブロックを消去するなどの処置を要する。
【0008】
よってこの発明の目的は、自身の制御のために参照されるフラグを記憶する不揮発性メモリに関し、ブロックの消去途中に電源が遮断されてもそのフラグの内容を正しく表現できるとともに、フラグを設けるにあたってはコストを抑えた不揮発性メモリを提供することにある。
この発明の別の目的は、電源が遮断されてもブロックの消去状態を正しく把握することのできる不揮発性メモリおよびこれを有したデータ記憶装置を提供することにある。
この発明のさらに別の目的は、不揮発性エラーが発生しても参照されるべき情報を正しく認識することのできる不揮発性メモリおよびこれを有したデータ記憶装置を提供することにある。
【0009】
【課題を解決するための手段】
この発明に係る不揮発性メモリは、その一つ一つが消去の単位となる第1及び第2のブロックにそれぞれ対応して設けられ第1及び第2のブロックそれぞれに関する情報を表すフラグを有する。第1及び第2のブロックの一方に対応したフラグを第1及び第2のブロックの他方に持たせている。第1及び第2のブロックの一方の消去動作中に電源が遮断されても、フラグの内容は不意に変化することはないので、フラグは正しい内容を保持している。しかもその一方のブロックに対応するフラグを設けるために特別な記憶領域を設ける必要もないので、コストも抑えられる。
フラグは特にブロックの消去に関する状態を示すものとし、例えば、ブロックが消去可能な状態であることを示す第1のフラグと、ブロックの消去が完了したことを示す第2のフラグとを含む。これにより電源が途中で遮断されてもこれらのフラグを参照すればブロックの消去状態を正しく知ることができる。
第1のフラグがセットされたが第2のフラグがセットされていない場合には、対応のブロックが消去できる状態にあると判断でき、第1及び第2のフラグが共にセットされている場合には、ブロックは消去が終了しておりデータの書きこみが行なえる状態にあるかすでに書きこみに使用している状態にあると判断できる。このように電源再投入後にブロックの消去状態がわかるので、ブロックを消去不充分のままデータが書きこまれるのを防げる。
またその他方のブロックに対応するフラグもその一方のブロックに持たせることにより、その他方のブロックの消去途中に電源が遮断されても、対応するフラグの内容が不意に変化することもない。よってフラグは正しい内容を保持している。しかもその他方のブロックに対応するフラグを設けるために特別な記憶領域を設ける必要もないので、さらにコストが抑えられる。
【0010】
またこの発明に係る不揮発性メモリは、その一つ一つが消去の単位となる複数のブロックにそれぞれ対応して設けられブロックそれぞれに関する情報を表すそれぞれフラグを有するときに、各フラグをその複数のブロックの他のブロック内に持たせている。複数のブロックのいずれかの消去動作中に電源が遮断されたとしてもフラグの内容が不意に変化することはない。しかも複数のブロックそれぞれ対応するフラグを設けるために特別な記憶領域を持たせる必要もない。
フラグは特にブロックの消去に関する状態を示すものとし、例えば、ブロックが消去可能な状態であることを示す第1のフラグと、ブロックの消去が完了したことを示す第2のフラグとを含む。これにより電源が途中で遮断されてもこれらのフラグを参照すればブロックの消去状態を正しく知ることができる。
第1のフラグがセットされたが第2のフラグがセットされていない場合には、対応のブロックが消去できる状態にあると判断でき、第1及び第2のフラグが共にセットされている場合には、ブロックは消去が終了しておりデータの書きこみが行なえる状態にあるかすでに書きこみに使用している状態にあると判断できる。このように電源再投入後にブロックの消去状態がわかるので、ブロックを消去不充分のままデータが書きこまれるのを防げる。
【0012】
また各フラグは各々が複数のビットからなる複数のフラグ領域を有する。この複数のフラグ領域のうち少なくとも一つがある特定の値を有するとき各フラグがある特定の状態を示すこととする。複数のフラグ領域のいずれかに揮発エラーが生じても別の領域で一つでも揮発エラーを起こしていなければ、フラグは正常な状態を示すことになる。
【0013】
従ってこの発明に係るデータ記憶装置に従えば、不揮発性メモリに設けられたフラグを参照して不揮発性メモリを制御するコントローラは、フラグにおける複数のフラグ領域の少なくとも一つがある特定の値を有するときにフラグがある特定の状態であると判断するようにし、その状態に応じて適切な処理を行なうことができる。
【0014】
【発明の実施の形態】
本発明の実施の形態を、図面を用いて説明する。なお図面において同一の符号は、同一のもの又は相当するものを表す。
実施の形態1.
図1は実施の形態1によるセキュリティ機能付きコンピュータシステム10の構成図を示す。このシステム10は単一の半導体チップ上に形成された集積回路で構成され、バス11に共通に接続されたマイクロコントローラ(MCU)12、不揮発性メモリ13、ランダムアクセスメモリ(RAM)14、リードオンリーメモリ(ROM)15及び暗号/復号回路16を備える。データ及びプログラムはバス11を介してMCU12と不揮発性メモリ13、RAM14、ROM15及び暗号/復号回路16との間で転送される。MCU12はROM15又は不揮発性メモリ13に記憶されたプログラムを実行してシステム全体を制御する。またシステム10とその外部との間でデータの通信が行なわれる際、暗号/復号回路16は送信データを暗号化し、その暗号化データが外部に送信される。また暗号/復号回路16は外部から受信した暗号化データを復号し、その復号データはシステム10内で処理される。
【0015】
不揮発性メモリ13は、従来技術と同様、その一つ一つがデータの消去単位(一回のアドレス指定で消去されるメモリセルの単位)となる複数のブロックを有する再書き込み可能なメモリで、よく知られているフラッシュメモリが好ましい。複数のブロックはそれぞれ同じ容量を有し、一ブロック当たり例えば2Kないし64Kバイト程度である。一方データの書き込み単位(一回のアドレス指定で書き込めるデータのビット数)は、消去単位(一つのブロックの容量)よりも少ない。例えば書き込み単位は2バイト(=16ビット)である。
【0016】
図2は、不揮発性メモリ13の構造およびその記憶内容を示す。不揮発性メモリ13は、例えば5つのブロック#0〜#4を有する。3つのブロック#2〜#4には、書換えないことを前提とした内容が記憶される。MCU12が実行するプログラム、管理番号、暗号/復号回路16がデータの暗号化及び復号化の際に使用する秘密鍵及び公開鍵、等が不揮発性メモリ13に記憶される。
一方、2つのブロック#0、#1各々は、システム10の動作中に頻繁にデータが書き込まれるデータ記憶領域21と、それぞれフラグを格納する2つのフラグ領域22、23が記憶される。
【0017】
ブロック#0、#1にそれぞれ対応するフラグが設けられる。フラグは対応のブロックの消去に関する情報を示す。各ブロックに対応するフラグは、ブロック#0、#1のうち対応のブロックとは異なる別のブロックのフラグ領域22、23に記憶される。消去に関する情報を意味するフラグを参照しながらMCU12は不揮発性メモリ13の消去及びデータ書きこみを制御する。したがって不揮発性メモリ13およびそれを制御するMCU12により一つのデータ記憶装置が構成される。
【0018】
消去に関する情報を示すフラグは、具体的には消去開始フラグと消去完了フラグとを含む。消去開始フラグは対応のブロックが消去可能な状態かどうかを示し、消去完了フラグは対応のブロックの消去が完了したかどうかを示す。ブロックが消去可能な状態にあるとき、対応の消去開始フラグはオンし、ブロックの消去が完了した状態にあるとき、対応の消去開始フラグはオンする。ブロック#0の消去開始フラグF0S、F0Cはブロック#1に記憶され、ブロック#1の消去開始フラグF1S、F1Cはブロック#0に記憶される。
【0019】
データが消去されるとブロック内の全メモリセルはゼロクリアされるものとする。よってブロック#0が消去されればブロック#1に対応する2つのフラグF1S、F1Cもゼロにクリアされる。このクリアされた状態をフラグF1S、F1Cのオフとする。同じくブロック#1が消去されればブロック#0に対応する2つのフラグF0S、F0Cもクリアされる。このクリアされた状態をフラグF0S、F0Cのオフとする。またフラグF0S、F0C、F1S、F1Cの各々に特定の値が書き込まれた状態をフラグF0S、F0Cのオンとする。
【0020】
図3はフラグF0S、F0C、F1S、F1C各々のフラグの具体的構成例を示す。
フラグは複数のビットで構成され、特に不揮発性メモリ13の書き込み単位と同じビット数(16ビット)とする。フラグが図3(a)のように全ビットがすべて0である“0000H”の値(第1の値)を有するとき、フラグのオフとする(Hはその前の4桁“0000”が16進数で表現されていることを示す。以下同じ)。フラグが第2の値、ここでは図3(b)のようにフラグの全ビットが1である“1111H”の値(第2の値)を有するとき、フラグのオンとする。またフラグの16ビットが他の値を有するときはフラグエラーとされる。例えばフラグのオフ状態時にフラグ内の1ビットに揮発エラーが生じた場合(例えば“0001H”と変化するような場合)、それはエラーとして判断され、言い換えればオン状態とは判断されない。
【0021】
MCU12は、4つのフラグF0S、F0C、F1S、F1Cの内容を参照し、ブロック#0、#1がいかなる状態にあるかを判定する。
図4は4つのフラグに対するブロック#0、#1の状態を示したものである。4つのフラグがすべてオフである状態▲1▼では、ブロック#0、#1がともに使用されていない初期状態(セットアップ前)にある。消去開始フラグF1Sがオンで他の3つのフラグがオフである状態▲2▼では、ブロック#0は書き込み及び読み出しで使用されている状態(使用中)にあり、ブロック#1はこれ以上データの書き込みができず消去を待っている状態(消去待ち)にある。消去開始フラグF1S、消去完了フラグF1Cがともにオンし、消去開始フラグF0S、消去完了フラグF0Cがともにオフしている状態▲3▼では、ブロック#0は使用中の状態にあり、ブロック#1は消去が完了し使用されることを待っている状態(消去完了)にある。消去開始フラグF0Sがオンし他の3つのフラグがともにオフしている状態▲4▼では、ブロック#0が消去待ちの状態にあり、ブロック#1は使用中の状態にある。
【0022】
消去完了フラグF0Cがオフし他の3つのフラグがオンしている状態▲5▼では、ブロック#0は消去待ちの状態にありブロック#1は使用中の状態にある。消去開始フラグF0S、消去完了フラグF0Cがともにオフし、消去開始フラグF1S、消去完了フラグF1Cがともにオフしている状態▲6▼では、ブロック#0が消去完了の状態にあり、ブロック#1は使用中の状態にある。消去完了フラグF1Cがオフし他の3つのフラグがオンしている状態▲5▼では、ブロック#0は使用中の状態にありブロック#1は消去待ちの状態にある。状態▲1▼〜▲7▼以外の状態▲8▼はフラグエラーである。
【0023】
次に不揮発性メモリ13の消去及び書き込み動作について説明する。図5は電源投入時における不揮発性メモリ13の動作を示すフローチャート図である。
本実施の形態では、不揮発性メモリ13のブロック内の消去は電源の投入時に行われるようになっている。電源が投入されると、MCU12は先ず不揮発性メモリ13に記憶されているフラグF0S、F0C、F1S、F1CをRAM14にコピーする(S21)。次いでMCU12は、RAM14に保持されたフラグF0S、F0C、F1S、F1Cの内容をチェックする(S23)。
【0024】
フラグのチェックの結果、状態▲1▼にある場合はセットアップ前と判断され、ブロック#0、#1のどちらにも書き込みが可能である。ここではブロック#0に最初にデータが書き込まれる側のブロックとし、MCU12はブロック#1に対応する消去開始フラグF1S、F1Cをともにオンする(S25)。その結果、全フラグは状態▲3▼となる。そして電源投入後にデータが最初に書き込まれるブロック#0の記憶場所を特定するために、MCU12はブロック#0内の先頭アドレスをRAM14に記憶する(S27)。
【0025】
ステップS23で全フラグが状態▲7▼であると判断されると、MCU12は消去待ちであるブロック#1を選択しその記憶内容を消去する(S29)。ブロック#1の消去により消去開始フラグF0S、消去完了フラグF0Cはともにオフとなる。このとき全フラグは状態▲2▼を示す。その後、MCU12はブロック#0上の消去完了フラグF1Cをオンする(S31)。このとき全フラグは状態▲3▼となる。そして電源投入後にデータが最初に書き込まれるブロック#0の記憶場所、すなわち、ブロック#0に最後にデータ書き込みのあった場所に後続する場所を決定する(S33)。MCU12はブロック#0の記憶内容を先頭アドレスから順に読み出し、最後に書き込まれたデータのアドレスをサーチする。例えば書き込みデータには必ず「1」が含まれるようにすれば、その最後に記憶された「1」がどのデータに存在するかを探せば、最後に書き込まれたデータのアドレスは容易にわかる。そして、その次アドレスをデータが最初に書き込まれる記憶場所としてRAM14に記憶される(S35)。
【0026】
なお、ステップS29において消去途中で電源がオフされると、フラグは状態▲2▼に変化したにも拘わらずブロック#1が完全に消去されていない場合もある。このときは電源を再度投入し再度ブロック#1を消去すればよい。よってステップS23で全フラグが状態▲2▼であると判断されたときMCU12はステップS29の消去を行う。
【0027】
ステップS23で全フラグが状態▲5▼であると判断されると、MCU12は消去待ちであるブロック#0を選択しその記憶内容を消去する(S37)。ブロック#0の消去により消去開始フラグF1S、消去完了フラグF1Cはともにオフとなり、フラグ全体は状態▲4▼を示す。その後、MCU12は不揮発性メモリ13上の消去完了フラグF0Cをオンにセットする(S39)。このときフラグは状態▲6▼となる(S39)。そして電源投入後にデータが最初に書き込まれるブロック#1の記憶場所を決定する(S41)。ステップS33と同様にして、MCU12はブロック#1の記憶内容を先頭アドレスから順に読み出し、最後に書き込まれたデータのアドレスをサーチする。その次アドレスをデータが最初に書き込まれる記憶場所としてRAM14に記憶される(S43)。
【0028】
なお、ステップS37で消去途中に電源がオフされると、フラグは状態▲4▼に変化したにも拘わらずブロック#0が完全に消去されていない場合もある。このときは電源を再度投入して再度ブロック#0を消去すればよい。よってステップS23で全フラグが状態▲4▼であると判断されたときにもステップS37の処理を行う。
【0029】
ステップS23で全フラグが状態▲3▼であると判断されると、ブロックの消去動作を行なうことなくMCU12はステップS33、S35の処理を行う。さらにステップS23で全フラグが状態▲6▼であると判断されると、ブロックの消去動作を行なうことなくMCU12はステップS41、S43の処理を行う。ステップS23で全フラグが状態▲8▼と判断されると、MCU12はエラーと判断し、必要に応じてエラー処理を行なう。
【0030】
なおMCU12は、ステップS25、S31、S39で書き換えられた不揮発性メモリ13のフラグの状態を、RAM14にコピーされたフラグにも反映するようRAM14のデータも書き換える。
【0031】
電源投入後に実際にデータが書き込まれる場合の不揮発性メモリ13の動作を図6のフローチャートを用いて説明する。
図6を参照し、書き込み処理が開始されると、まず不揮発性メモリ13と同じ内容がコピーされているRAM14のフラグF0S、F0C、F1S、F1Cの内容をチェックする(S51)。ステップS51で全フラグが状態▲3▼であると判断されたときブロック#0が現在使用中であることがわかるので、MCU12はブロック#0にデータを書き込む(S53)。ステップS27、S35等で、データが書き込まれるべきブロック#0のアドレスがRAM14に保持されているので、そのアドレスを参照してデータが書き込まれる。
【0032】
次いでMCU12は、ブロック#0のデータを記憶する領域に次のデータが書き込むことができるどうか判断する(S55)。これは、ブロック#0のデータ記憶領域の全体に書きこみが行なわれたかどうかで判断され、例えばステップS53で参照したアドレスがブロック#0におけるデータの記憶領域の最終アドレスであるかどうかで容易に判断される。ステップS55でYesの場合、MCU12は、ステップS53でデータを書き込んだ場所のアドレスに所定の値を加算して次にデータが書き込まれるべきブロック#0内のアドレスを生成する。そしてRAM14に記憶されたアドレスをその生成された新たなアドレスに書き換える(S57)。一方ステップS55で、フラグが状態▲3▼のときNoの場合には、MCU12はブロック#1内の消去開始フラグF0Sをオンにセットする(S59)。またMCU12はRAM14にコピーされた消去開始フラグF0Sにもオン状態を反映させる。このとき全フラグは状態▲5▼となる。次にデータが書き込まれるのは消去済みのブロック#1であり、RAM14に記憶されたアドレスをブロック#1の先頭アドレスに書き換える(S61)。
【0033】
ステップS51で全フラグが状態▲6▼であると判断されたときブロック#1が現在使用中であることがわかるので、MCU12はブロック#1にデータを書き込む(S63)。ステップS43等でRAM14にはデータが書き込まれるべきブロック#1のアドレスが保持されるので、そのアドレスを参照してデータが書き込まれる。
【0034】
次いでMCU12は、ブロック#1のデータの記憶領域に次のデータが書きこむことができるかどうか判断する(S65)。これは、ブロック#1のデータ記憶領域の全体に書きこみが行なわれたかどうかで判断され、例えば、ステップS63で参照したアドレスがブロック#1におけるデータ記憶領域の最終アドレスであるかどうかで容易に判断される。ステップS65でYesの場合、MCU12は、ステップS63でデータを書き込んだ場所のアドレスに所定の値を加算して次のデータが書き込まれるブロック#1内のアドレスを生成する。RAM14に記憶されたアドレスをその生成された新たなアドレスに書き換える(S67)。ステップS65でNoの場合には、MCU12はブロック#0内の消去開始フラグF1Sをオンにセットする(S69)。またMCU12はRAM14にコピーされた消去開始フラグF1Sにもオン状態を反映させる。このとき全フラグは状態▲7▼となる。次にデータが書き込まれるのは消去済みのブロック#0であり、RAM14に記憶されたアドレスをブロック#0の先頭アドレスに書き換える(S71)。
【0035】
ステップS51で全フラグが状態▲7▼であると判断されたときは、状態▲3▼の場合と同様にMCU12はステップS53の処理を行なう。次いでステップS55でYesの場合、状態▲3▼の場合と同様にステップ57の処理を行なう。状態▲7▼は、ブロック#0が使用中で且つブロック#1はまだ消去されていない消去待ちの状態にある。よってステップS55でNoの場合には、ブロック#0、#1のいずれかが消去されない限り書きこみができない。よってMCU12はエラーと判断し、必要に応じてエラー処理を行なう。
【0036】
ステップS51で全フラグが状態▲5▼であると判断されたときは、状態▲6▼の場合と同様にMCU12はステップS63の処理を行なう。次いでステップS65でYesの場合、状態▲6▼の場合と同様にステップ67の処理を行なう。状態▲6▼は、ブロック#1が使用中で且つブロック#0はまだ消去されていない消去待ちの状態にある。よってステップS65でNoの場合には、ブロック#0、#1のいずれかが消去されない限り書きこみができない。よってMCU12はエラーと判断し、必要に応じてエラー処理を行なう。
【0037】
ステップS51で全フラグが状態▲8▼にあると判断されたときには、MCU112はエラーと判定し、必要に応じてエラー処理を行なう。
【0038】
ステップS61の終了時で全フラグが状態▲5▼である場合、電源が遮断されることなく次データの書きこみがあるならば、MCU12はステップS51のフラグチェックによりステップS63に移行しブロック#1へ次データを書きこむ。また次データの書きこみがなく電源が遮断されるならば、電源再投入によりMCU12は、図5のステップS23のフラグチェックによりステップS37に移行しブロック#0の消去を行なう。
【0039】
ステップS71の終了時で全フラグが状態▲7▼である場合、電源が遮断されることなく次データの書きこみがあるならば、MCU12はステップS51のフラグチェックによりステップS53に移行しブロック#0へ次データを書きこむ。逆に次データの書きこみが発生せずに電源が遮断されるならば、電源再投入によりMCU12は、図5のステップS23のフラグチェックによりステップS29に移行しブロック#1の消去を行なう。
【0040】
ステップS57の終了後、次データの書きこみがなく電源が遮断された場合、そのときのフラグ状態が状態▲7▼であれば図5を参照して、ステップS23のチェックによりステップS29に移行しMCU12はブロック#1を消去する。また全フラグが状態▲3▼であればブロック#1の消去はすでに完了しているから図5のステップ23のフラグチェックにより処理はステップS33に移行する。ステップS57の後に電源が遮断されることなく次のデータの書きこみがある場合には、そのときのフラグが状態▲7▼であろうと状態▲3▼であろうとステップS51のチェックによりMCU12は再度ステップS53の処理を行ないブロック#0へ次データを書きこむことになる。
【0041】
ステップS67の終了後、次データの書きこみがなく電源が遮断された場合、そのときのフラグ状態が状態▲5▼であれば図5を参照して、ステップS23のチェックによりステップS37に移行しMCU12はブロック#0を消去する。また全フラグが状態▲6▼であればブロック#0の消去はすでに完了しているから図5のステップ23のフラグチェックにより処理はステップS41に移行する。ステップS67の後に電源が遮断されることなく次のデータの書きこみがある場合には、そのときのフラグが状態▲5▼であろうと状態▲6▼であろうと、ステップS51のチェックによりMCU12は再度ステップS63の処理を行ないブロック#1へ次データを書きこむことになる。
【0042】
この実施の形態によれば、複数のブロック(ブロック#0、#1)の各々の消去に関する情報を示すフラグをその複数のブロック内の他のブロック(ブロック#1、#0)に設けることで、ブロック自身が消去されても、その消去されたブロックに対応するフラグは変化しない。従ってブロックの消去途中で電源が遮断されてもブロックに対応するフラグの状態が不用意に変化することはなくフラグは正常な状態を示すことができる。またブロックとは独立に消去可能な記憶領域をこのフラグの保持専用に不揮発性メモリ13内に設ける必要もないので、メモリのコストも抑えられる。
【0043】
このとき、ブロックの消去に関する情報を示すフラグとして、消去開始フィラグ及び消去完了フラグの2種類が用意されたことにより、ブロックの消去途中に電源が遮断されても、またはブロックの消去完了の後に電源が遮断されても、フラグからブロックの正しい状態を知ることができる。
例えば図5を参照して、ステップS29でブロック#1の消去途中で電源が遮断されても、ブロック#0に存在する対応の消去開始フラグF1S、消去完了フラグF1Cはそれぞれオンおよびオフを維持する。電源が再度投入されたときブロック#1は消去待ち状態と判断できるので、ブロック#1を再び消去する処理を行うことで、消去された状態のブロック#1に正常にデータ書き込みができる。またステップS29でブロック#1の消去完了後に電源が遮断されても、ブロック#0に存在する対応の消去開始フラグF1S、消去完了フラグF1Cはともにオンを示す。電源が再度投入されたときブロック#1は消去完了であると判断できるので、ブロック#1の消去処理は不要となる。
【0044】
この実施の形態では、システム10が動作中にデータが逐次書き込まれる不揮発性メモリ13内のブロック数は2つで説明したが、3以上の任意のN個であってもよい。このとき各ブロックの消去に関する情報(消去開始フラグおよび消去完了フラグ)は、データが書き込まれる他の(N−1)個のブロックの各々に設ければよい。例えば3個のブロックであれば、図7を参照して、ブロック#0に対応する消去開始フラグF0S−1、F0S−2及び消去完了フラグF0C−1、F0C−2は、他の2つのブロックの各々に設け、ブロック#1に対応する消去開始フラグF1S−2、F1S−0及び消去完了フラグF1C−2、F2C−0は、他の2つのブロックの各々に設け、ブロック#2に対応する消去開始フラグF2S−0、F2S−1及び消去完了フラグF2C−0、F2C−1は、他の2つのブロックの各々に設ける。
【0045】
また、MCU12は、システム10の他のユニットを制御するため、不揮発性メモリ13の制御以外にも種々の機能を実現している。しかし、MCU12に不揮発性メモリ13の書きこみおよび消去の制御をさせるのではなく、別途専用のメモリコントローラを設け、この専用コントローラにメモリ13の書き込み、消去の制御をさせてもよい。このコントローラは、プログラムを実行して機能するマイクロコンピュータでもよいし、ハードワイヤードロジック回路で構成してもよい。
【0046】
実施の形態2.
図7は、フラグF0S、F0C、F1S、F1Cの各々の別の構成例を示す。各フラグは、図7(a)のように、各々が複数のビットからなる複数のフラグ領域80a〜80hを有する。各フラグ領域は、例えば一回のアドレス指定で書き込まれるデータのビット数(2バイト=16ビット)で表現される。フラグ領域80の数は例えば8個とする。
【0047】
フラグをオフにするためにブロックが消去されると、その消去されるブロックに設けられたフラグの全ビットは図7(b)のようにゼロとなり、フラグ領域すべてが“0000H”の第1の値をもつ。またフラグをオンにセットするときには、図7(c)のようにフラグの全ビットを“1”とする、つまり、フラグ領域すべてが“FFFFH”の第2の値をもつ。
【0048】
ここで、図7(b)のようにブロック消去により全ビットがゼロとなったとしても、不揮発性メモリの揮発エラーによりビットの状態が変化する可能性がある。例えば図7(d)では揮発エラーが生じた一例を示す。フラグ領域80aが“0010H”、フラグ領域80cが“0030H”、フラグ領域80dが“00d0”と状態が変化している。この不揮発性メモリ13では、ある1ビットでも状態が0から1に変化すると、その変化したビットを含む書き込み単位の2バイトは追加書き込みすることができないものを想定している。よって揮発エラーを修正するためにはブロックを一旦消去するしかない。
【0049】
そこで複数のフラグ領域80a〜80hのうち任意の少なくとも一つのフラグ領域に第1の値である“0000H”の値を有するときにフラグがオフ状態であるとMCU12が判定するようにする。したがって、図7(b)の状態から一部に揮発エラーが生じても、揮発エラーを修正するためにブロックを消去することなく、フラグをオフと正しく判定できる。
【0050】
さらに図7(d)のように揮発エラーが発生しているがオフ状態を示すフラグをオンにセットするとき、MCU12は、フラグ内の複数のフラグ領域を読み出し揮発エラーが生じているかどうか判断する。そしてMCU12は、図7(e)のように、全ビットがゼロであるフラグ領域すべて(80b、80e〜80hの5つ)に対し“FFFFH”を書き込み、揮発エラーが生じているフラグ領域(80a、80c、80dの3つ)はそのままの状態にしておく。そして複数のフラグ領域80a〜80hのうち任意の少なくとも一つのフラグ領域に第2の値である“FFFFH”の値を有するときフラグがオン状態にあるとMCU12が判断するようにする。したがって、揮発エラーが一部のフラグ領域に発生しても、フラグをオンと正しく判定できる。また図7(e)で“FFFFH”を保持する複数のフラグ領域のうちさらに揮発エラーを起こし別の状態に変化してしまう可能性もある。この場合でもサブ領域のいずれか一つでも“FFFFH”の値があればフラグはオン状態と判断できる。よって揮発エラーが生じても、そのエラーを適宜修正することなくフラグのオン状態及びオフ状態を正しく判定できる。
【0051】
なお、フラグ内の複数のフラグ領域80a〜80hに、“0000H”の値を有するものと“FFFFH”の値を有するものとが混在する場合、または複数のフラグ領域80a〜80hに“0000H”、“FFFFH”のいずれの値とも存在しない場合には、フラグエラーとして扱う。
【0052】
この実施の形態ではフラグ領域の数および各フラグ領域を構成するビットの数は、上記のそれぞれ8個及び16個ビットに限定されるものではなく、他の複数個の値でもよい。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるコンピュータシステムを示すブロック図である。
【図2】 図1のシステムで使用される不揮発性メモリ13の記憶領域の構成を示す構成図である。
【図3】 消去開始フラグF0S、F1S、消去完了フラグF0C、F1Cの具体的な構成を示す構成図である。
【図4】 消去開始フラグF0S、F1S、消去完了フラグF0C、F1Cにより示されるブロック#0、#1の状態を説明するための説明図である。
【図5】 不揮発性メモリ13の電源投入時の動作を示すフローチャート図である。
【図6】 不揮発性メモリ13の書き込み動作を示すフローチャート図である。
【図7】 不揮発性メモリ13の記憶領域の別の構成を示す構成図である。
【図8】 この発明の実施の形態2による消去開始フラグF0S、F1S、消去完了フラグF0C、F1Cの具体的な構成図である。
【符号の説明】
10…コンピュータシステム、12…マイクロコントローラ(MCU)、13…不揮発性メモリ、14…ランダムアクセスメモリ(らM)、F0S、F1S…消去開始フラグ、F0C、F1C…消去完了フラグ
Claims (6)
- その一つ一つが消去の単位となる第1及び第2のブロックを含んだ不揮発性メモリであって、前記第1及び第2のブロックにそれぞれ対応して設けられ前記第1及び第2のブロックそれぞれに関する情報を表すフラグを有し、前記第1及び第2のブロックの一方に対応する前記フラグを前記第1及び第2のブロックの他方に持たせ、
前記フラグ各々は、対応のブロックが消去可能な状態であることを示す第1のフラグと、対応のブロックの消去が完了したことを示す第2のフラグとを含む不揮発性メモリ。 - 前記第1及び第2のブロックの他方に対応した前記フラグを前記第1及び第2のブロックの一方に持たせた、請求項1記載の不揮発性メモリ。
- その一つ一つが消去の単位となる複数のブロックを含んだ不揮発性メモリであって、前記複数のブロックにそれぞれ対応して設けられ前記複数のブロックそれぞれに関する情報を表すフラグを有し、前記複数のブロックの各々に対応する前記フラグは、前記複数のブロックのうちの他のブロックに設け、
前記フラグ各々は、対応のブロックが消去可能な状態であることを示す第1のフラグと、対応のブロックの消去が完了したことを示す第2のフラグとを含む不揮発性メモリ。 - 前記フラグ各々は、各々が複数のビットからなる複数のフラグ領域を有し、前記複数のフラグ領域の任意の少なくとも一つがある特定の値を有するとき各フラグがある特定の状態を示すようにした請求項1ないし請求項3のいずれか一項に記載の不揮発性メモリ。
- その一つ一つが消去の単位となる第1及び第2のブロックを含んだ不揮発性メモリ、および、
前記不揮発性メモリの書き込み及び消去を制御するコントローラを備え、
前記第1及び第2のブロックの各々は、それぞれフラグを記憶する第1および第2のフラグ領域と、データを記憶するデータ記憶領域とを有し、
前記コントローラは、
前記第1のブロックのデータ記憶領域にこれ以上データを書き込まないとき前記第2のブロックにおける第1のフラグ領域のフラグをある値にセットし、
前記第1のブロックの消去が完了したとき前記第2のブロックにおける第2のフラグ領域のフラグをある値にセットし、
前記第2のブロックのデータ記憶領域にこれ以上データを書き込まないとき前記第1のブロックにおける第1のフラグ領域のフラグをある値にセットし、
前記第2のブロックの消去が完了したとき前記第1のブロックにおける第2のフラグ領域のフラグをある値にセットするように、前記不揮発性メモリを制御するデータ記憶装置。 - 前記第1ないし第4のフラグ領域の各フラグは、各々が複数のビットからなる複数のフラグ領域を有し、前記コントローラは前記複数のフラグ領域の任意の少なくとも一つがある特定の値を有するとき各フラグがセットされたと判断する請求項5記載のデータ記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002280956A JP4031693B2 (ja) | 2002-09-26 | 2002-09-26 | 不揮発性メモリおよびこれを有したデータ記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002280956A JP4031693B2 (ja) | 2002-09-26 | 2002-09-26 | 不揮発性メモリおよびこれを有したデータ記憶装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004118937A JP2004118937A (ja) | 2004-04-15 |
JP2004118937A5 JP2004118937A5 (ja) | 2005-09-22 |
JP4031693B2 true JP4031693B2 (ja) | 2008-01-09 |
Family
ID=32275529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002280956A Expired - Fee Related JP4031693B2 (ja) | 2002-09-26 | 2002-09-26 | 不揮発性メモリおよびこれを有したデータ記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4031693B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013003655A (ja) * | 2011-06-13 | 2013-01-07 | Denso Corp | フラッシュメモリにデータの書き込みを行う制御装置 |
KR102050729B1 (ko) | 2013-02-12 | 2019-12-02 | 삼성전자 주식회사 | 메모리 시스템 |
JP6241373B2 (ja) * | 2014-06-19 | 2017-12-06 | 株式会社デンソー | 記憶装置、フラッシュメモリ制御装置、及びプログラム |
CN111684523B (zh) * | 2018-02-14 | 2023-12-01 | 日立安斯泰莫株式会社 | 电子控制装置 |
-
2002
- 2002-09-26 JP JP2002280956A patent/JP4031693B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004118937A (ja) | 2004-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6308265B1 (en) | Protection of boot block code while allowing write accesses to the boot block | |
KR100408223B1 (ko) | 비휘발성 메모리에서의 하드웨어 블록 로킹 방법 및 장치 | |
US7330995B2 (en) | Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process | |
US6205548B1 (en) | Methods and apparatus for updating a nonvolatile memory | |
US6154808A (en) | Method and apparatus for controlling data erase operations of a non-volatile memory device | |
JP4188744B2 (ja) | メモリカード | |
JP2990181B1 (ja) | フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法 | |
US6745278B2 (en) | Computer capable of rewriting an area of a non-volatile memory with a boot program during self mode operation of the computer | |
JP2006048893A (ja) | 不良ブロック管理機能を有するフラッシュメモリ装置及びフラッシュメモリ装置の不良ブロック管理方法 | |
US8607061B2 (en) | Flash device security method utilizing a check register | |
JP2011514568A (ja) | ライトワンスメモリデバイスおよびライトメニーメモリデバイスを備えるコンピュータのストレージサブシステムおよび関連する方法 | |
JP2001356963A (ja) | 半導体装置およびその制御装置 | |
JP3875153B2 (ja) | 不揮発性半導体記憶装置およびその書き換え禁止制御方法 | |
JP2008533574A (ja) | セクタ単位での消去の可能な半導体メモリ手段の第1のセクタへの再書き込み方法および装置 | |
JP3830867B2 (ja) | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 | |
JP2008225672A (ja) | 半導体メモリ装置 | |
JP4031693B2 (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
WO2006040798A1 (ja) | 半導体集積回路装置および電子システム | |
JP3924568B2 (ja) | フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム | |
JP2000250818A (ja) | 記憶システム、記憶装置及び記憶データ保護方法 | |
US20050068842A1 (en) | Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory | |
JP2011175361A (ja) | データ記憶装置及びデータ記憶方法 | |
JP4580724B2 (ja) | 不揮発性メモリの制御方法 | |
JP2000243093A (ja) | フラッシュメモリへのデータ記憶方法及びフラッシュメモリからのデータ読出方法 | |
CN114115755B (zh) | 用于数据写入的方法及装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20050406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050415 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070903 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070903 |
|
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: 20071016 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071019 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101026 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121026 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121026 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131026 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |