JP2007172259A - フラッシュメモリ、メモリ制御回路、マイクロコンピュータおよびメモリ制御方法 - Google Patents

フラッシュメモリ、メモリ制御回路、マイクロコンピュータおよびメモリ制御方法 Download PDF

Info

Publication number
JP2007172259A
JP2007172259A JP2005368634A JP2005368634A JP2007172259A JP 2007172259 A JP2007172259 A JP 2007172259A JP 2005368634 A JP2005368634 A JP 2005368634A JP 2005368634 A JP2005368634 A JP 2005368634A JP 2007172259 A JP2007172259 A JP 2007172259A
Authority
JP
Japan
Prior art keywords
data
flash memory
read
address
memory control
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.)
Granted
Application number
JP2005368634A
Other languages
English (en)
Other versions
JP4999325B2 (ja
Inventor
Yoji Terauchi
洋二 寺内
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005368634A priority Critical patent/JP4999325B2/ja
Priority to US11/641,733 priority patent/US8041880B2/en
Publication of JP2007172259A publication Critical patent/JP2007172259A/ja
Application granted granted Critical
Publication of JP4999325B2 publication Critical patent/JP4999325B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】 EEPROMエミュレーション時のエミュレーション書き込み単位(データ群)を構成するデータ数が各データ群で共通(固定値)にしなくてはならなかった。
【解決手段】 本発明は、第1のデータをフラッシュメモリ4に書き込むときには、第1のデータを識別するための第1の付加ビットを書き込み、第2のデータをフラッシュメモリ4に書き込むときには、第2のデータを識別するための第1の付加ビットとは異なる第2の付加ビットを書き込む、ことを特徴とする。
【選択図】図2

Description

本発明は、フラッシュメモリ、メモリ制御回路、マイクロコンピュータおよびメモリ制御方法に関し、特に、付加ビットを用いてデータの書き込みおよび読み出しを実行するフラッシュメモリ、メモリ制御回路、マイクロコンピュータおよびメモリ制御方法に関する。
近年、フラッシュメモリとEEPROM(Electrically Erasable Programmable Read Only Memory)の両方の不揮発性メモリを備える半導体装置が使用されている。同じ不揮発性メモリであってもフラッシュメモリとEEPROMとでは、データの消去単位、書き換え回数、回路面積等、その特徴が異なる。
フラッシュメモリやEEPROMにデータの書き込みを行うためには、フラッシュメモリやEEPROMを構成する記憶素子であるメモリセルに記憶されているデータを消去してからでないと新しいデータの書き込みを行うことができないが、この消去を行う単位が、フラッシュメモリとEEPROMとで異なる。フラッシュメモリは、ブロック単位での消去となるが、EEPROMはワード線とビット線とで選択可能な単位での消去となる。(以下、この単位を最小書き込み単位という。)このため、ブロック単位での消去に制約されるフラッシュメモリは、EEPROMに対しその使い方に制限を受ける。
また、フラッシュメモリとEEPROMとでは、その書き換え(消去)回数も異なる。例えば、マイコンに搭載されるメモリでは、フラッシュメモリが100〜1000回程度の書き換え回数が保証されるのに対し、EEPROMは1万〜10万回程度の書き換え回数が保証される。
このように消去単位や書き換え(消去)回数の観点からみると、EEPROMはフラッシュメモリに比べ技術的に優位であると考えられるが、最小書き込み単位での消去を可能にするための回路構成や、フラッシュメモリに対して10〜1000倍の書き換え回数を保証するために消去の際に印加する高電界の影響に耐えることが可能なデバイス構造が必要となり、その結果、回路規模が増大する。回路規模の増大は、製造コストのアップにつながるため、このような観点では、逆に、フラッシュメモリはEEPROMに比べ有利であるといえる。
そこで、フラッシュメモリとEEPROMの両方の不揮発性メモリを半導体装置に搭載し、大量のデータを記憶する必要があるが書き換えを行う頻度が少ないデータに対してはフラッシュメモリを使用し、一方、記憶するデータ量は少量であるが頻繁に書き換えを行う必要があるデータに対してはEEPROMを使用するようにして、フラッシュメモリとEEPROM双方の長所を活かすように、使い分けを行って使用されている。
しかし、このように異なる構造を有する複数種類のメモリの両方を搭載する半導体装置の製造プロセスは混載プロセスとなり、どちらか一方のみのメモリを搭載する半導体装置の製造プロセスに比べると、非常に多くのプロセス工程を追加しなくてはならず、製造コストが増大する要因となってしまう。
そこで、使用する不揮発性メモリはフラッシュメモリだけにし、その代わりにそのフラッシュメモリの一部をEEPROMのように扱うことによって、混載プロセスを回避する技術が考え出されている。このようなフラッシュメモリをあたかもEEPROMのように使用する技術は、一般的には、EEPROMエミュレーションと呼ばれている。
EEPROMエミュレーションは、フラッシュメモリ内の記憶領域において、まだ使用されていない領域、すなわち、データの書き込みが行われていない空き(ブランク)領域を最大限活用し、全ての領域が使用されてからブロック単位での消去を行うことで、データ更新時に付属する消去の回数を減らし、その結果、見かけ上の書き換え回数をEEPROMのように増加させる技術である。
図11に、(a)EEPROMに記憶されたデータAをデータA’に書き換える(更新する)場合と、(b)フラッシュメモリに記憶されたデータAをEEPROMエミュレーションを使用してデータA’に書き換える(更新する)場合を示す。
データAをデータA'に書き換える場合、通常はデータAをデータA’に上書すればよい。しかしながら、フラッシュメモリやEEPROMにおいては、消去してからでないと書き込みができない構成であるため、具体的には、ブロック単位或いは最小書き込み単位に存在する全てのメモリセルの浮遊ゲートから電荷を引き抜いた(消去した)状態にし、その後、書き込みデータに基づいて、任意のメモリセルの浮遊ゲートに電荷を注入する(書き込む)ことで、書き換えを行う。
EEPROMの消去単位は、最小書き込み単位であるため、図11(a)のように書き換え対象のデータAを消去して、その場所にデータA’を書き込むことで、データAのデータA’へのEEPROMおける書き換えが完了する。
一方、フラッシュメモリの書き換え単位は、ブロック単位であるため、図11(b)のようにデータA、B、Cが1ブロックの中に書き込まれている場合には、データAの上書きするためにブロック全体を消去してしまうと、データB、Cも同時に消去してしまうことになる。そこで、データB、Cを別領域に一時的に退避し、ブロック単位での消去後に、データA’、B、Cを書き込む方法を取ることによって、フラッシュメモリにおけるデータAのデータA’への書き換えを完了する。
しかし、EEPROMエミュレーションでは、図11(b)のように、ブロック内にデータA’を書き込むことができる未使用(ブランク)領域があれば、データA’をそのブランク領域に書き込む。そして、データAとA’が併存することになるので、所定の方法で、データAは既に無効となったデータであるとしてデータAの無効化を行う。
このように、EEPROMエミュレーションを使用すれば、新しいデータを書き込むためのブランク領域さえあれば、ブロック単位での消去を不要とすることができ、また、ブロック消去に伴う他のデータ(図12ではデータB、Cに相当)の一時的な退避および再度の書き込みの作業を回避することができる。すなわち、書き換え(消去)回数を削減できることから、見かけ上の書き換え回数をEEPROMのように増加することができ、また、EEPROMのように他のデータに対する保護を考慮しなくてもデータの書き換えを可能にする。
次に、図12〜図17を用いて、EEPROMエミュレーションについて詳細に説明する。
図12に、従来のEEPROMエミュレーションの際のデータ書き込み単位(以下、エミュレーション書き込み単位という)を示す。
エミュレーション書き込み単位に含まれるデータは、DATA_0〜DATA_nのn+1個のDATAと、そのn+1個のDATAグループの名称であるデータ番号(ID)から構成される(つまり、IDは複数のDATAと関連付けが行われたデータである)。但し、IDの値は、消去状態、つまり、未使用領域から読み出される値以外の値でなければならない。また、各データ群に含まれるDATAの数(n)は、ID毎に同じ(共通)でなければならず、異なった値であってはならない。例えば、ID=0の識別番号が付されているデータ群0に含まれるDATA数が5個であれば、ID=1の識別番号が付されているデータ群1に含まれるDATA数も5でなければならない。また、このエミュレーション書き込み単位を構成する複数のデータをまとめてデータ群と呼ぶ。
図13に、従来のEEPROMエミュレーション時の書き込み処理を示す動作フローチャートを示す。また、図14,図15,図16に、データ群0〜データ群2が格納されたフラッシュメモリを示す。図14,図15,図16のフラッシュメモリは、1ブロックから構成(つまり、消去単位は、フラッシュメモリ全体)され、0000H番地〜FFFFH番地の最小書き込み単位領域(番地)を持ち、それぞれの番地が格納できるデータの大きさは、8ビット(00H〜FFH)である。また、0000H番地〜0011H番地にはデータ群0〜データ群2が書き込まれており、書き込まれているデータ群0〜データ群2の各々は、DATA_0〜DATA_4とID(ID=0〜2)で構成されている。なお、図17のフラッシュメモリの消去状態をFFHであるとすると、前述の通り、IDは、消去状態のデータ領域から読み出される値とは異なる値としなければならないため、IDの取り得る値は、00H〜FEHである。また、図12に示すように、DATAやIDが格納される場所をデータ領域とする。
図13および図14,図15,図16を用いて、EEPROMエミュレーションの時の書き込み処理について、データ群1を書き込む処理具体例と共に説明する。なお、図13に示すように、書き込み処理においては、新しいデータを書き込む領域を特定するためのブランクサーチの工程(S13−1〜S13−4)と、特定したブランク領域にDATA_0〜IDまで順次書き込む工程(S13−5〜S13−6)の2段階の処理で行われる。
(S13−1)フラッシュメモリの最終番地であるFFFFH番地からスタートし、FFFFH番地→FFFEH番地→FFFDH番地→・・・→0001H番地→0000H番地の検索方向で、データの読み出しを行う。すなわち、図12におけるフラッシュメモリのブランク領域側から読み出し処理を行っていく。
(S13−2)読み出した値がFFH以外の値(FFHは消去状態(未使用状態)を示す値)であるか否かを判定する。FFH以外の値が読み出された場合には、S13−4に遷移する。一方、FFHが読み出された場合には、S13−3に遷移する。
(S13−3)読み出し先の番地を+1ディクリメント(検索方向は最終番地から開始番地の方向なので、読み出し先の番地は、−1番地分加算する。以下、同様。)して、再度読み出しを行う。図14では、FFFFH番地〜0012H番地は、未使用(ブランク)領域なので、0012H番地までは、S13−2とS13−3の処理を繰り返すことになる。
(S13−4)S13−2において、FFH以外の値が読み出された場合には、当該FFH以外の値が読み出された番地の直前に読み出した番地をブランク領域の先頭番地(書き込みを開始する番地)であると特定する。FFH以外のデータが読み出されたということは、使用領域と未使用(ブランク)領域の境界を特定することができるので、最後にFFHが読み出された番地がブランク領域の先頭番地であると判断することができる。
図14では、0011H番地においてID=2(FFH以外の値)が読み出されるので、0011H番地が使用領域の最終番地(境界)であると判断され、直前に読み出しを行った番地である0012H番地がブランク領域の先頭番地であると判断できる。なお、IDが取り得る値は00H〜FEHであると前述したが、もしIDの値がFFHであるすれば、ブランク領域との区別がつかなくなってしまうため、IDの値としてのFFHを禁止したものである。
(S13−5)DATA(DATA_0〜DATA_n)の書き込みを行う。書き込みは、DATA_0→DATA_1→・・・→DATA_nの順で行う。図15では、データ群0のDATA_0〜DATA_4の書き込みが行われている。
(S13−6)IDの書き込みを行う。IDの書き込みは、エミュレーション書き込み単位の最後に行われるで、IDの書き込み終了をもって、複数のデータを有するデータ群の一連の書き込み処理は完了する。
図16では、データ群0のID=1の書き込みが終了し、DATA_0〜DATA_4およびID=1から構成されるデータ群1の書き込みが完了している。
従来のEEPROMエミュレーション時の書き込み処理は、このようなステップをもって行われ、その後新規のデータ群を書き込む際には、同様のステップで追記書き込み処理が行われる。図16では、0018H番地から新規データ群の書き込みが行われる。
また、図14では、既に書き込まれているデータ群0〜データ群2が存在していたが、書き込まれているデータ群が全くない場合には、データの書き込みは0000H番地から行われる。また、ブランクサーチの結果、これから書き込もうとするデータ群に含まれる全てのデータを書き込むブランク領域がない場合には、消去が必要となり、その場合には前述した通り、必要なデータを保護しつつ消去を行う必要がある。
続いて、従来のEEPROMエミュレーション時の読み出し動作について説明する。
図17に、従来の読み出し処理を示す動作フローチャートを示す。図17に示すように、読み出し処理においては、読み出し対象のデータ群に含まれる複数のDATAに関連付けされたIDを検索することで読み出し対象データ群を特定するIDサーチの工程(S17−1〜S17−6)と、特定した読み出し対象データ群をフラッシュメモリから読み出す工程(S17−7)の2段階の処理で行われる。
また、具体的な事例として、図16のフラッシュメモリからデータ群0および1を読み出す事例をあげて説明する。但し、図16のフラッシュメモリは、2度目のデータ群1の書き込み(データの更新)が行われているため、最後に書き込まれたデータ群1(0012H番地〜0017H番地)が有効なデータ群であり、以前に書き込まれたデータ群1(0006H番地〜000BH番地)は、無効なデータ群として取り扱われる。
(S17−1)フラッシュメモリの最終番地であるFFFFH番地からスタートし、FFFFH番地→FFFEH番地→FFFDH番地→・・・→0001H番地→0000H番地の検索方向で、データの読み出しを行う。すなわち、図16のフラッシュメモリのブランク領域側から読み出し処理を行っていく。これは、前述した書き込み処理のS13−1と同じである。
(S17−2)読み出した値がFFH(消去状態を示す値)以外の値であるか否かを判定する。FFH以外の値が読み出された場合には、S17−4に遷移し、一方、FFHが読み出された場合には、S17−3に遷移する。
(S17−3)読み出し先の番地を+1ディクリメントして、再度読み出しを行う。図16では、FFFFH番地〜0018H番地は、未使用(ブランク)領域なので、0018H番地までは、S17−2とS17−3の処理を繰り返すことになる。
(S17−4)S17−2において、FFH以外の値が読み出された場合には、その読み出した値が、読み出し対象データ群のDATAに関連付けされたID(目的のID)であるか否かを判定する。
図16において、読み出し対象のデータ群をデータ群0とすると、読み出した値がID=0であれば、目的のIDであると判断できる。S17−2で、FFH以外の値が検出されるのは、0017H番地であり、0017H番地に格納されている値は、ID=1である。従って、読み出し対象のデータ群はデータ群0であるため、読み出した値は、目的のIDではないと判断できる。一方、読み出し対象データ群をデータ群1とすると、0017H番地に格納されているデータはID=1であるため、読み出した値は、目的のIDであると判断できる。
(S17−5)読み出した値が目的のIDでない場合には、読み出し先の番地から+6ディクリメントした番地に対し、再度読み出し処理を行う。そして再度読み出した値に対して、S17−4での判定が行われる。
図16において、読み出し対象のデータ群がデータ群0である場合には、0017H番地から+6ディクリメントした番地は0011H番地となり、この0011番地から読み出した値はID=2であるため、目的のID(ID=0)ではない。そのため、再び読み出し先の番地を+6ディクリメントする。
(S17−6)S17−4で、読み出した値が目的のIDであった場合には、当該目的のIDを読み出した番地から+5ディクリメントした番地を、読み出し対象データ群の先頭番地であると特定する。
図16において、データ群0を読み出す場合には、S17−4で、0005H番地に目的のIDが格納されていると判断できるので、0005H番地から+5ディクリメントした0000H番地を、読み出し対象データ群の先頭番地であると特定する。また、データ群1を読み出す場合には、S17−4で、0017H番地に目的のIDが格納されていると判断できるので、0017H番地から+5ディクリメントした0012H番地を、読み出し対象データ群の先頭番地であると特定する。
(S17−7)S17−6で特定した読み出し対象データ群の先頭番地からDATA_0を読み出し、順に番地を+1インクリメントしながらDATA_1〜DATA_nを読み出す。図16において、0000H番地〜0004H番地よりDATA_0〜DATA_4を読み出すことによって、データ群0の読み出しを完了する。また、0012H番地〜0016H番地よりDATA_0〜DATA_4を読み出すことによって、データ群1の読み出しを完了する。
図16のフラッシュメモリでは、データ群1は更新されていて、フラッシュメモリ内にデータ群1に関するデータが2箇所に格納されているが、有効なデータ群は最後に書かれた方、すなわち、ブランク領域側に近い方である。S17−1〜S17−6で説明した方式では、ブランク領域側からIDの検索を行い、読み出した値が目的のIDと同じとなった時点で、読み出し対象データ群の検索を終了するため、フラッシュメモリ内に同じIDを有する複数のデータ群が格納されていたとしても、適切に、一番新しいデータ群、つまり、有効なデータ群を読み出すことができる。
図16における読み出し対象データ群をデータ群1とした読み出し処理の例においても、無効なデータ群1(0006H番地〜000BH番地)を選択せずに、有効なデータ群1(0012H番地〜0017H番地)を選択している。
なお、図13および図17の書き込み処理フローおよび読み出し処理フローにおいて、ブランクサーチおよびIDサーチの方向をFFFFH番地(最終番地)から行うと説明したが、逆に0000H番地(開始番地)から行ってもよい。但し、その場合には、書き込み処理フローにおいては、最後にFFH以外の値が読み出された番地に+1インクリメントした番地が未使用(ブランク)領域の先頭番地となり、また、読み出し処理フローにおいては、読み出し先の番地を+6インクリメントすることでIDだけを読み出し、読み出した値がFFHになった時点でその直前に読み出したIDから順に遡って目的のIDであるかを探索する方法で、目的のIDの特定をすることができる。
また、このようなEEPROMエミュレーションに関する技術が非特許文献1に記載されている。非特許文献1では、エミュレーション書き込み単位は、データ番号、データ1、デリミタ、データ2から構成されており、データ番号としてFFH(消去状態)を禁止している。データ番号はフラッシュメモリに4バイト毎に格納される。ブロックの先頭から4バイト毎にインクリメントしながらデータ番号を読み出すことで、最新のデータの検索を行い、同一番号を持つデータ番号が複数見つかった場合には、データの終端に近いデータを最新のデータとして取り扱うことが記載されている。
「アプリケーションノート U17057JJ3V0AN00」、第3版、NECエレクトロニクス株式会社、2004年11月、p.25−27
前述のように、EEPROMエミュレーションを使用して書き込まれたデータ群の読み出し処理は、エミュレーション書き込み単位(データ群)毎に関連付けされたデータ番号(ID)の検索を行い、検索したIDが読み出し対象データのIDであるか否かを判断することで行われる。このとき、フラッシュメモリに書き込まれたデータのどこにIDが格納されているかがわからないと、IDの検索をすることができない。そのため、従来では、エミュレーション書き込み単位(データ群)に含まれるデータの個数を各エミュレーション書き込み単位(データ群)で共通とすることにより、フラッシュメモリの各番地にIDを規則的に格納することで、IDの検索を可能としている。図15では、データ群0〜データ群2において、エミュレーション書き込み単位(データ群)を、ID、DATA_0〜DATA_4からなる6個のデータから構成されるものとし、フラッシュメモリにIDを6番地ごとに規則的に配置して書き込む構成としている。
しかしながら、エミュレーション書き込み単位を構成するデータ数がエミュレーション書き込み単位(データ群)で共通(固定値)にしなくてはならないのは、ユーザの観点からみると、製品設計に制限がかかることとなり、大きなディメリットになってしまう。
なお、IDとして使用する値を、DATA_0〜DATA_nの値としては使わないと禁止するならば、エミュレーション書き込み単位(データ群)を構成するデータ数は、各エミュレーション書き込み単位(データ群)で共通(固定値)にしなくても、IDの検索を行うことが可能となる。但し、この場合には、ユーザが使用するDATA_0〜DATA_nそのものの値に制限を課すことになり、これはユーザによって非常に都合が悪く、実用的ではない。
本発明のフラッシュメモリは、l(l>0)ビットの第1および第2のデータを格納するデータ領域と、前記第1のデータを識別するためのmビットの第1の付加ビットおよび前記第2のデータを識別するためのm(m>0)ビットの第2の付加ビットを格納する付加ビット領域と、を備え、前記第1の付加ビットは、前記第2の付加ビットとは異なる値を有する、ことを特徴とする。
また、本発明のメモリ制御回路は、第1のデータおよび第2のデータから構成されるデータ単位でフラッシュメモリへのアクセスを行うメモリ制御回路であって、前記メモリ制御回路は、前記第1のデータを前記フラッシュメモリ書き込むときには、前記第1のデータを識別するための第1の付加ビットを書き込み、前記第2のデータを前記フラッシュメモリに書き込むときには、前記第2のデータを識別するための前記第1の付加ビットとは異なる第2の付加ビットを書き込む、ことを特徴とする。
また、本発明のマイクロコンピュータは、フラッシュメモリと、中央演算装置と、第1のデータおよび第2のデータから構成されるデータ単位で、前記中央演算装置の命令に従って前記フラッシュメモリへのアクセスを行うメモリ制御回路と、を備えるマイクロコンピュータであって、前記メモリ制御回路は、前記第1のデータを前記フラッシュメモリ書き込むときには、前記第1のデータを識別するための第1の付加ビットを書き込み、前記第2のデータを前記フラッシュメモリに書き込むときには、前記第2のデータを識別するための前記第1の付加ビットとは異なる第2の付加ビットを書き込む、ことを特徴とする。
また、本発明のメモリ制御方法は、第1のデータおよび前記第1のデータから構成されるデータ単位でフラッシュメモリへのアクセスを行うメモリ制御方法であって、前記第1のデータおよび前記第1のデータを識別するための第1の付加ビットを前記フラッシュメモリに書き込む第1の工程と、前記第2のデータおよび前記第2のデータを識別するための前記第1の付加ビットとは異なる第2の付加ビットを前記フラッシュメモリに書き込む第2の工程と、を備えることを特徴とする。
本発明によれば、エミュレーション書き込み単位のデータ数、すなわち、DATA_0〜DATA_nのnの値は、各データ群で共通にしなくてもよく、データ群毎に自由に設定することが可能となり、ユーザの設計自由度が向上する。
以下、本発明の好ましい実施例について、図面を参照して詳細に説明する。
実施の形態1
図1は、実施の形態1に係るマイクロコンピュータの構成を示すブロック図である。マイクロコンピュータ1は、中央演算装置(CPU)2、メモリ制御回路3およびフラッシュメモリ4を備えている。CPU2は、バス5、6を介して、それぞれメモリ制御回路3およびフラッシュメモリ4に接続されている。CPU2は、メモリ制御回路3に対し、書き込み/読み出し命令、書き込み/読み出し先のアドレス(番地)および書き込みデータを出力する。また、フラッシュメモリ4から読み出されたデータを取得する。メモリ制御回路3は、フラッシュメモリ4と配線7を介して接続されており、フラッシュメモリ対し、書き込み/読み出しの制御信号(ライト/リードモードの制御信号)、書き込み/読み出し先のアドレス(番地)および書き込みデータを出力する。フラッシュメモリ4は、メモリ制御回路3からの制御信号等に基づいて、書き込み/読み出しの動作を行い、読み出しの場合には、読み出したデータをCPUに出力する。
図2は、実施の形態1に係るマイクロコンピュータ1に搭載されたフラッシュメモリ4の構成を示す概念図である。図2に示すフラッシュメモリ4は、1つのブロックから構成(つまり、消去単位はフラッシュメモリ4全体)され、0000H番地〜FFFFH番地の最小書き込み単位領域(番地)を持ち、それぞれの番地が格納できるデータの大きさは9ビット長(000H〜1FFH)である。すなわち、図17等の従来のフラッシュメモリに対し、実施の形態1に係るフラッシュメモリ4は、それぞれの番地に対してメモリセルを1ビット追加した構成になっている。
9ビット長のデータは、本来取り扱う8ビット長のデータに1ビット長の付加ビット(後述する)を加えて構成される。本説明においては、本来取り扱うデータを8ビット長のデータとしているが、8ビット長に関わらず、lビット(但し、l>0)であればよく、また、付加ビットに関しても、1ビット長に関わらず、mビット(但し、m>0)であればよい。但し、フラッシュメモリ4に対し、lビット長のデータとmビット長の付加ビットを同時に書き込み/読み出し処理を行う場合には、配線7は、少なくともl+mビット幅を有する必要があり、フラッシュメモリ4についても、l+mビット幅の信号が入力できる端子が必要になる。なお、8ビット長のデータが格納される領域をデータ領域とし、また付加ビットが格納される領域を付加ビット領域とする。
また、フラッシュメモリ4の0000H番地〜000EH番地には、データ群0〜データ群2が既に書き込まれているものとし、未使用領域の読み出し値、すなわち、消去状態の読み出し値を1FFH(1Hの付加ビット+FFHのデータ)とする。
図3(a)〜(d)に、実施の形態1に係るエミュレーション書き込み単位(データ群)の一般的なデータ構造および図2のフラッシュメモリ4に書き込まれたデータ群0〜データ群2を示す。
図3(a)には、エミュレーション書き込み単位(データ群)の一般的なデータ構造を示す。従来と同様、エミュレーション書き込み単位(データ群)8は、DATA_0〜DATA_nのn個のDATA9と、そのn+1個のDATAグループの名称であるデータ番号(ID)10から構成される(つまり、IDは複数のDATAと関連付けが行われたデータである)。
しかし、従来と比較して、2点の相違がある。1点目は、データ群を構成する複数のデータのそれぞれに対して、付加ビットと呼ばれる1ビット長のデータが付加されることである。図3(a)に示す通り、DATA_0〜DATA_nには、1Hの付加ビット10が付加され、IDには、0Hの付加ビット11が付加される。これらの付加ビットは、DATA_0〜DATA_nやIDの識別を可能とするために、付加されるものである。
2点目は、nの値は、各データ群で共通の値を取らず、自由に設定できる点である。(b)〜(d)に示すデータ群0〜データ群2のデータ構造が示されているが、それぞれのデータ群は、データ群0が5個、データ群1が3個、データ群2が7個のデータで構成されている。なお、n=1、つまり、DATA_0とIDから構成されるデータ群であってもよい。
次に、本発明の実施形態1に係るEEPROMエミュレーション時の書き込み動作について説明する。
図4に、実施の形態1に係る書き込み処理を示す動作フローチャートを示す。
図1、図2および4を用いて、図4の書き込み処理フローに従い、図1に示すマイクロコンピュータ1が、図2に示すフラッシュメモリ4の未使用(ブランク)領域に、データ群1(図3(b)参照)を書き込む処理についての具体例と共に説明する。なお、図4に示すように、書き込み処理は、書き込み先を特定するためのブランクサーチの工程(S4−1〜S4−4)と、特定したブランク領域に1H+DATA_0〜1H+DATA_n、0H+IDを順次書き込む工程(S4−5〜S4−6)の2段階の処理で行われる。
(S4−1)CPU2は、フラッシュメモリ4の最終番地であるFFFFH番地からスタートし、FFFFH番地→FFFEH番地→FFFDH番地→・・・→0001H番地→0000H番地の検索方向で、付加ビットの読み出しを行う。
具体的には、CPU2は、メモリ制御回路3に対し、読み出し命令および読み出し先の番地(最初の読み出し先はFFFFH番地)を出力する。CPU2の読み出し命令を受けたメモリ制御回路3は、フラッシュメモリ4に対し、読み出し先として指定された番地に格納されている9ビット長のデータの読み出し制御を行う。フラッシュメモリ4は、読み出した9ビット長のデータをCPU2に出力する。CPU2は、フラッシュメモリ4から読み出した9ビット長のデータの中から付加ビットを判別し取得する。
(S4−2)CPU2は、読み出した付加ビットが0Hであるか否かを判定する。0Hの付加ビットが読み出された場合には、S4−4に遷移する。一方、1Hの付加ビットが読み出された場合には、S4−3に遷移する。
(S4−3)CPU2は、読み出し先の番地を+1ディクリメント(検索方向は最終番地から開始番地の方向であるため、読み出し先の番地は、−1番地分加算する。以下、同様。)して、再度付加ビットの読み出しを行う。
図2では、FFFFH番地〜000FH番地まで未使用(ブランク)領域であり、付加ビット領域の読み出し値は、消去状態の1Hであるため、000FH番地までは、S4−2とS4−3の処理を繰り返すことになる。
(S4−4)CPU2は、S4−2において、0Hの付加ビットを読み出した場合には、当該0Hの付加ビットを読み出した番地の直前に読み出し処理を行った番地をブランク領域の先頭番地(書き込みを開始する番地)であると特定する。0Hの付加ビットが読み出されたということは、その番地から開始番地まではデータが書き込まれていることになり、当該番地は、使用領域と未使用(ブランク)領域の境界であると判断することができる。従って、最後に1Hの付加ビットが読み出された番地がブランク領域の先頭番地であると特定することができる。
図2では、000EH番地において0Hの付加ビットが読み出されるので、000EH番地が使用領域の最終番地(境界)であると判断され、直前に読み出し処理を行った番地である000FH番地がブランク領域の先頭番地、つまり、これから新しいデータの書き込みを開始する番地であると特定できる。
(S4−5)CPU2は、DATA(DATA_0〜DATA_n)および付加ビットの書き込みを行う。
具体的には、CPU2は、S4−4において特定したブランク領域の先頭番地を書き込み先の番地として指定し、書き込みデータを1H+DATA_0として、メモリ制御回路3に出力する。メモリ制御回路3は、フラッシュメモリ4の指定された番地に対し、1H+DATA_0の書き込み制御を行う。続いて、CPU2は、書き込み先の番地を+1インクリメントし、当該番地を指定して、書き込みデータを1H+DATA_1として、メモリ制御回路3に出力する。メモリ制御回路3は、フラッシュメモリ4の指定された番地に対し、1H+DATA_1の書き込み制御を行う。同様に、1H+DATA_2〜1H+DATA_nまで、フラッシュメモリ4に対する書き込み処理を行う。図2のフラッシュメモリ4にデータ群1(DATA_0、DATA_1、IDから構成)を書き込む処理では、000FH番地に1H+DATA_0を、0010H番地に1H+DATA_1をそれぞれ書き込む(図5)。
(S4−6)CPU2は、メモリ制御回路3を介して、付加ビット(0H)およびIDの書き込みを行う。IDに付加される付加ビットは0Hであるので、S4−5で最後に書き込みを行った番地に+1インクリメントし、当該番地を指定して、0H+IDを書き込む。IDの書き込みは、エミュレーション書き込み単位の最後に行われるで、IDの書き込み終了をもって、エミュレーション書き込み単位での一連の書き込み処理は完了する。図6では、0011H番地に0H+IDを書き込む。
本発明の実施の形態1のEEPROMエミュレーション時の書き込み処理は、このようなステップを持って行われ、その後新規のデータ群の書き込みを行う際には、同様のステップを持って追記書き込みが行われる。図6では、0012H番地から新規データの書き込み処理が行われる。
また、S4−1において、フラッシュメモリ4から付加ビットの読み出しを行う際に、同じ番地内のデータ領域に格納されている8ビット長のデータも同時に読み出しているが、付加ビットの1ビットのみを読み出す構成にしてもよい。その場合には、例えば、図7に示すように、付加ビットが格納される付加ビット領域とDATAやIDが格納されるデータ領域のそれぞれに対し番地を割り当て(従って、フラッシュメモリ4に割り当てられる番地は、00000000H番地〜FFFFFFFFH番地となり、それぞれが最小書き込み単位となる)、CPU2がメモリ制御回路3に対し、付加ビット領域に割り当てられた番地のみを指定する形式にする。具体的には、S4−1における読み出し先の番地は、FFFFFFFEH番地→FFFFFFFCH番地→FFFFFFFA番地→・・・→00000001H番地→00000000H番地となる。
また、図8に示す通り、付加ビット領域を指定する0H番地とデータ領域を指定する1H番地をそれぞれ示す追加の番地を作成し、2つの番地を用いて、付加ビットのみを読み出せるようにしてもよい。
なお、従来と同様、既に書き込まれているデータ群がなければ、データの書き込みは、0000H番地からとなる。また、S4−1〜S4−4のブランクサーチの工程での説明では省いたが、ブランク領域があっても、これから書き込もうとするデータ群に含まれる全てのデータが書き込むだけのブランク領域が存在しない場合には、フラッシュメモリ4にブランク領域がないものと判断し、必要なデータ群(今回の書き込みに関係ないデータ群)を保護しつつ、フラッシュメモリ4全体の消去を行い、消去後のフラッシュメモリ4に必要なデータの書き戻し処理と新しいデータ群の書き込み処理をそれぞれ行う。
続いて、本発明の実施の形態1に係るEEPROMエミュレーション時の読み出し動作について説明する。
図9に、実施の形態1に係る読み出し処理を示す動作フローチャートを示す。読み出し処理においては、0Hの付加ビットを検索し、検索により見つかった0Hの付加ビットと同じ番地に格納されているデータ領域のIDを読み出し、読み出したIDが読み出す対象のデータ群に含まれる複数のDATAに関連付けられたIDか否かを判定することで、読み出し対象データを特定するIDサーチの工程(S9−1〜S9−5)と、特定した読み出し対象データを読み出す工程(S9−6)の2段階の処理で行われる。
また、具体例として、図6のフラッシュメモリ4からデータ群0および1を読み出す事例をあげて説明する。なお、図6のフラッシュメモリ4は、2度目のデータ群1の書き込み(データの更新)が行われているため、最後に書き込まれたデータ群1(000FH番地〜0011H番地)が有効なデータ群であり、以前に書き込まれたデータ群1(0005H番地〜0007H番地)は、無効なデータ群として取り扱われる。
(S9−1)CPU2は、フラッシュメモリ4の最終番地であるFFFFH番地からスタートし、FFFFH番地→FFFEH番地→FFFDH番地→・・・→0001H番地→0000H番地の検索方向で、付加ビットの読み出しを行う。
具体的には、CPU2は、メモリ制御回路3に対し、読み出し命令および読み出し先の番地(最初の読み出し先はFFFFH番地)を出力する。CPU2の読み出し命令を受けたメモリ制御回路3は、フラッシュメモリ4に対し、読み出し先として指定された番地に格納されている9ビット長のデータの読み出し制御を行う。フラッシュメモリ4は、読み出した9ビット長のデータをCPU2に出力する。CPU2は、フラッシュメモリ4から読み出した9ビット長のデータの中から付加ビットを判別し取得する。本ステップは、書き込み処理のS4−1と同様の処理となる。
(S9−2)CPU2は、取得した付加ビットが0Hであるか否かを判定する。0Hであった場合には、S9−4に遷移し、1Hであった場合には、S9−3に遷移する。
(S9−3)S9−2で、CPU2が取得した付加ビットが1Hであった場合には、読み出し先の番地を+1ディクリメントして、再度読み出しを行いS9−2に遷移する。
図6では、FFFFH番地〜0012H番地まで未使用(ブランク)領域であり、付加ビット領域の読み出し値は消去状態の1Hであるため、0012H番地までは、S9−2とS9−3の処理を繰り返すことになる。
(S9−4)CPU2は、S9−2において、付加ビットの値として0Hを取得した場合には、当該0Hの付加ビットが格納された同じ番地から読み出した8ビット長のデータ(ID)が、読み出し対象データ群のDATAに関連付けされたID(目的のID)であるか否かを判定する。読み出したIDが目的のIDであった場合には、S9−5に遷移する。一方、読み出したIDが目的のIDでなかった場合には、S9−3に遷移し、再び0Hの付加ビットを見つけるまで、S9−2とS9−3の処理を繰り返す。
図6において、読み出し対象をデータ群0とすると、読み出したIDがID=0であれば、読み出し対象データに関連付けされたIDであると判断できる。S9−2で、IDが読み出されるのは、0011H番地であり、0011H番地に格納されている値は、ID=1である。従って、読み出し対象はデータ群0であるため、このIDは、目的のIDではないと判断できる。そのため、S9−3に遷移し、読み出し先の番地を+1ディクリメントし、再び0Hの付加ビットをフラッシュメモリ4から読み出すまで、S9−2とS9−3の処理を繰り返し、0Hの付加ビットが読み出された場合には、同じ番地のデータ領域に格納されたIDが目的のIDか否かを判定する。0Hの付加ビットが読み出されるのは、000EH番地、0007H番地、0004H番地であるが、目的のID(ID=0)が格納されているのは、0004H番地であるので、0004H番地まで、S9−2〜S9−4の処理を繰り返す。一方、読み出し対象をデータ群1とすると、0011H番地に格納されているデータはID=1であるため、このIDは、目的のIDであると判断でき、S9−5に遷移する。
(S9−5)S9−4で、目的のIDを特定することができた場合には、当該目的のIDを読み出した番地から+5ディクリメントした番地を、読み出し対象データ群の先頭番地であると特定する。
図6において、データ群0を読み出す場合には、S9−4で、0004H番地が目的のIDであると判定されるので、0004H番地から+4ディクリメントした番地は0000H番地となり、この0000H番地を、読み出し対象のデータ群0の先頭番地であると特定する。+4ディリメントするのは、データ群0は、DATA_0〜DATA_3、IDの5個のデータから構成されていることがわかっているので、DATA_0が格納されている番地は、IDが格納されている番地から+4ディクリメントした番地となるからである。
また、データ群1を読み出す場合には、0011H番地が目的のIDであるので、0011H番地から+2ディクリメント(データ群1は3個のデータから構成されている)した番地は000FH番地となり、この000FH番地を、読み出し対象データのデータ群1の先頭番地であると特定する。
(S9−6)S9−5で特定した読み出し対象データの先頭番地からDATA_0を読み出し、順に番地を+1インクリメントしながらDATA_1〜DATA_nを読み出す。
図6において、0000H番地〜0003H番地よりDATA_0〜DATA_3を読み出すことによって、データ群0の読み出しを行う。また、000FH番地〜0010H番地よりDATA_0、DATA_1を読み出すことによって、データ群1の読み出しを行う。
図6のフラッシュメモリ4では、データ群1が更新されていて、そのためデータ群1に関するデータ群が2箇所に格納されているが、有効なデータ群は最後に書かれた方、すなわち、ブランク領域側に近い方である。S9−1〜S9−6で説明した方式では、ブランク領域側から0Hの付加ビット(ID)の検索を行い、目的のIDが特定された時点で読み出し対象データの検索を終了するため、フラッシュメモリ4内に同じIDを有する複数のデータ群が格納されていたとしても、適切に一番新しいデータ群、つまり、有効なデータ群を読み出すことができる。図6におけるデータ群1の読み出しの例においても、無効なデータ群1(0005H番地〜0007H番地)を選択せずに、有効なデータ群1(000FH番地〜0011H番地)を選択している。
また、S9−5において、読み出し対象のデータ群のIDが格納された番地を基準にして、読み出し対象のデータ群のDATA_0が格納された番地を特定する方法を説明したが、目的のIDが読み出された番地から順次+1ディリメントして1Hの付加ビット+DATAを読み出していき、0Hの付加ビット+IDが読み出された時点で、読み出し対象のデータ群の読み出しを終了する方法をとってもよい。この方式では、事前にデータ群が何個のデータ数で構成されているか否かわからない場合に有効である。
なお、図4および9の書き込み処理フローおよび読み出し処理フローにおいて、ブランクサーチおよびIDサーチの方向をFFFFH番地(最終番地)から行うと説明したが、従来の説明でも記載したように、逆に0000H番地(開始番地)から行ってもよい。但し、その場合には、書き込み処理フローにおいては、最後に0Hの付加ビットを読み出した番地に+1インクリメントした番地が未使用(ブランク)領域の先頭番地となり、また、読み出し処理フローにおいても、最後に目的のIDを読み出した番地が有効なデータ群のIDであると特定することになる。
このように、本実施の形態によれば、EEPROMエミュレーション時のエミュレーション書き込み単位を構成するデータ数は、IDが異なるエミュレーション書き込み単位間、つまり、データ群間において、共通の値でなくてもよい。そのため、ユーザは、自由にデータ群に含まれるデータ数を設定することができるようになり、その結果、ユーザの設計自由度が向上することになる。
また、書き込み処理におけるブランクサーチの工程および読み出し処理におけるIDサーチの工程において、IDを検索するのに付加ビットのみを確認すればよいことから、従来に比べ、IDの検出手段が容易となる。
実施の形態2
図10は、本発明の実施の形態2に関するデータの書き込み順序を示したものである。実施の形態2では、書き込み処理における0H+IDを書き込む際の書き込み順序に実施の形態1と異なる特徴がある。従って、これ以外の点においては、実施の形態1と同じであるので説明は省略する。
EEPROMエミュレーションの書き込み処理では、エミュレーション書き込み単位毎に複数のデータ(DATA_0〜DATA_n、ID)および付加ビットをフラッシュメモリ4に書き込む(S4−4およびS4−5)。実施の形態1では、最後に0H+IDを書き込むと説明したが(S4−5)、実施の形態2では、1H+ID→0H+FFHという2ステップに分けて書き込みを行う。
フラッシュメモリ4は、消去状態(例えば、フラッシュメモリ4を構成する複数のメモリセルの浮遊ゲートに電荷がない状態)を1Hとしているため、1Hの付加ビットの書き込み、或いは、FFH(11111111B)のデータの書き込みは、フラッシュメモリ4構成するメモリセルに対して、実際には何ら動作を行わない。すなわち、1ステップ目の1H+IDは、フラッシュメモリ4内のデータ領域のみに対して書き込みを行う処理であり、付加ビット領域に対する書き込み処理は行われない。また逆に、2ステップ目の0H+FFHは、フラッシュメモリ4内の付加ビット領域にのみに対して書き込みを行う処理であり、データ領域に対する書き込み処理は行われない。換言すれば、1ステップ目にIDを書き込み、2ステップ目、つまり、一連の書き込み処理の最後に0Hの付加ビットが書き込まれることになる。
図10に示す通り、まず1H+DATA_0の書き込みを行う(S10−1)。次に1H+DATA_1の書き込みを行う(S10−2)。同様に、1H+DATA_2〜1H+DATA_nまでの書き込みを行う(S10−3〜S10−5)。
DATAの書込みが終了後、0H+IDの書き込みを行う。まずIDだけの書き込みを行うため、1H+IDの書き込みを行う(S10−6)。最後に0Hの付加ビットの書き込みを行うため、0H+FFHの書き込みを行う(S10−7)。以上で、付加ビットおよびDATA_0〜DATA_n、IDからなる1個のデータ群の書き込みが完了する。
このように、本実施の形態によれば、0Hの付加ビットを最後に書くことにより、電源瞬停等に起因する書き込みエラーが発生していないことを確認することができる。すなわち、最後に書き込まれた0Hの付加ビットが正しく読み出せたとすると、その前に書かれたDATA_0〜DATA_n、IDの書き込みは正常に実行されたと判断することができるからである。
以上、本発明の実施の形態に基づいて詳細に説明したが、本発明は、上述のような実施の形態に限定されるものでなく種々の変形が可能である。例えば、付加ビットは1ビット長に限定されるわけではなく、2ビット長以上であってもよい。また、図面では、付加ビットは、識別する8ビット長のデータと同じ番地に、9ビット長のデータの最上位ビットの位置に配置されるように書かれているが、それに限られるわけではない。さらに、図8において、付加ビット領域と、データ領域が交互に配置されているが、どのように配置されていてもかまわない。また、実施の形態の説明では、CPU2が、メモリ制御回路3に対する書き込み/読み出し命令や、書き込みデータの生成、読み出した値の判定を行っているが、この機能の全て、或いは、一部をメモリ制御回路3が実行しても構わない。逆に、メモリ制御回路3が担うフラッシュメモリ4に対する直接的なアクセス制御機能を、メモリ制御回路3を介さずに、CPU2が実行してもよい。さらには、実施の形態1と実施の形態2を組み合わせることなども可能である。
本発明の実施の形態1に係るマイクロコンピュータの構成を示すブロック図である。 本発明の実施の形態1のマイクロコンピュータが備えるフラッシュメモリの構成を示す概念図である。 本発明の実施の形態1に係る書き込みデータ(エミュレーション書き込み単位)のデータ構造を示す図である。 本発明の実施の形態1に係る書き込み処理フローを示す動作フローチャートである。 本発明の実施の形態1に係る書き込み処理を示す図(フラッシュメモリ)である。 本発明の実施の形態1に係る書き込み処理を示す図(フラッシュメモリ)である。 本発明の実施の形態1に係るフラッシュメモリの番地の割り当ての変形例を示す図である。 本発明の実施の形態1に係るフラッシュメモリの番地の割り当ての変形例を示す図である。 本発明の実施の形態1に係る読み出し処理フローを示す動作フローチャートである。 本発明の実施の形態2に係るデータ書き込み順序を示す図である。 従来のEEPROMおよびフラッシュメモリ(EEPROMエミュレーション使用)に対するデータの書き換え(更新)を示す図である。 従来の書き込みデータ(エミュレション書き込み単位)のデータ構造を示す図である。 従来の書き込み処理フローを示す動作フローチャートである。 従来の書き込み処理を示す図(フラッシュメモリ)である。 従来の書き込み処理を示す図(フラッシュメモリ)である。 従来の書き込み処理を示す図(フラッシュメモリ)である。 従来の読み出し処理フローを示す動作フローチャートである。
符号の説明
1 マイクロコンピュータ
2 CPU
3 メモリ制御回路
4 フラッシュメモリ
5、6 バス
7 信号配線
8 エミュレーション書き込み単位(データ群)
9 DATA
10 データ番号(ID)
11、12 付加ビット

Claims (25)

  1. l(l>0)ビットの第1および第2のデータを格納するデータ領域と、
    前記第1のデータを識別するためのmビットの第1の付加ビットおよび前記第2のデータを識別するためのm(m>0)ビットの第2の付加ビットを格納する付加ビット領域と、
    を備え、
    前記第1の付加ビットは、前記第2の付加ビットとは異なる値を有する、
    ことを特徴とするフラッシュメモリ。
  2. 前記lビットの第1および第2のデータが入力される端子と、
    前記mビットの第1および第2の付加ビットが入力される端子と、
    を備える請求項1に記載のフラッシュメモリ。
  3. 前記第1および第2の付加ビットは、それぞれ対応する前記第1および第2のデータと同じ番地に格納される、
    ことを特徴とする請求項1または2に記載のフラッシュメモリ。
  4. 前記フラッシュメモリの消去状態を示す値が、第1の値であるときには、
    前記第1の付加ビットは、前記第1の値である、
    ことを特徴とする請求項1ないし3のいずれか1項に記載のフラッシュメモリ。
  5. 前記mは、m=1である、
    ことを特徴とする請求項1ないし4のいずれか1項に記載のフラッシュメモリ。
  6. 前記第2のデータは、前記第1のデータを特定するためのデータであって前記第1のデータと関連付けが行われているデータである、
    ことを特徴とする請求項1ないし5のいずれか1項に記載のフラッシュメモリ。
  7. 第1のデータおよび第2のデータから構成されるデータ単位でフラッシュメモリへのアクセスを行うメモリ制御回路であって、
    前記メモリ制御回路は、
    前記第1のデータを前記フラッシュメモリ書き込むときには、前記第1のデータを識別するための第1の付加ビットを書き込み、
    前記第2のデータを前記フラッシュメモリに書き込むときには、前記第2のデータを識別するための前記第1の付加ビットとは異なる第2の付加ビットを書き込む、
    ことを特徴とするメモリ制御回路。
  8. 前記メモリ制御回路は、前記第2の付加ビットに基づいて、前記第1のデータの読み出し処理を行う、
    ことを特徴とする請求項7に記載のメモリ制御回路。
  9. 前記第1および第2の付加ビットは、それぞれ対応する前記第1および第2のデータと同じ番地に格納される、
    ことを特徴とする請求項7または8に記載のメモリ制御回路。
  10. 前記フラッシュメモリの消去状態を示す値が、第1の値であるときには、
    前記第1の付加ビットは、前記第1の値である、
    ことを特徴とする請求項7ないし9のいずれか1項に記載のメモリ制御回路。
  11. フラッシュメモリと、
    中央演算装置と、
    第1のデータおよび第2のデータから構成されるデータ単位で、前記中央演算装置の命令に従って前記フラッシュメモリへのアクセスを行うメモリ制御回路と、
    を備えるマイクロコンピュータであって、
    前記メモリ制御回路は、
    前記第1のデータを前記フラッシュメモリ書き込むときには、前記第1のデータを識別するための第1の付加ビットを書き込み、
    前記第2のデータを前記フラッシュメモリに書き込むときには、前記第2のデータを識別するための前記第1の付加ビットとは異なる第2の付加ビットを書き込む、
    ことを特徴とするマイクロコンピュータ。
  12. 前記中央演算装置は、前記メモリ制御回路に対し前記第1のデータの書き込みを命令するときには、前記第1のデータおよび前記第1の付加ビットを書き込みデータとして出力し、前記メモリ制御回路に対し前記第2のデータの書き込みを命令するときには、前記第2のデータおよび前記第2の付加ビットを書き込みデータとして出力する、
    ことを特徴とする請求項11に記載のマイクロコンピュータ。
  13. 前記中央演算装置は、前記第2の付加ビットに基づいて、前記メモリ制御回路に対し前記第1のデータの読み出し命令を出力する、
    ことを特徴とする請求項11または12に記載のマイクロコンピュータ。
  14. 前記第1および第2の付加ビットは、それぞれ対応する前記第1および第2のデータと同じ番地に格納される、
    ことを特徴とする請求項11ないし13のいずれか1項に記載のマイクロコンピュータ。
  15. 前記フラッシュメモリの消去状態を示す値が、第1の値であるときには、
    前記第1の付加ビットは、前記第1の値である、
    ことを特徴とする請求項11ないし14のいずれか1項に記載のマイクロコンピュータ。
  16. 前記第1および第2の付加ビットのビット長は、1ビットである、
    ことを特徴とする請求項11ないし15のいずれか1項に記載のマイクロコンピュータ。
  17. 前記第2のデータは、前記第1のデータを特定するためのデータであって前記第1のデータと関連付けが行われているデータである、
    ことを特徴とする請求項11ないし16のいずれか1項に記載のマイクロコンピュータ。
  18. 第1のデータおよび前記第1のデータから構成されるデータ単位でフラッシュメモリへのアクセスを行うメモリ制御方法であって、
    前記第1のデータおよび前記第1のデータを識別するための第1の付加ビットを前記フラッシュメモリに書き込む第1の工程と、
    前記第2のデータおよび前記第2のデータを識別するための前記第1の付加ビットとは異なる第2の付加ビットを前記フラッシュメモリに書き込む第2の工程と、
    を備えることを特徴とするメモリ制御方法。
  19. 前記フラッシュメモリ内の前記第1および第2の付加ビットを格納する付加ビット領域に対し、読み出し処理を行う第3の工程と、
    前記第3の工程における読み出し値が、前記第2の付加ビットであるか否かを判定する第4の工程と、
    前記第4の工程における判定の結果に基づいて、前記フラッシュメモリへの書き込み先の番地を特定する第5の工程と、
    を備えることを特徴とする請求項18に記載のメモリ制御方法。
  20. 前記フラッシュメモリ内の前記第1および第2の付加ビットを格納する付加ビット領域に対し、読み出し処理を行う第6の工程と、
    前記第3の工程における読み出し値が、前記第2の付加ビットであるか否かを判定する第7の工程と、
    前記第7の工程における判定の結果、前記第2の付加ビットが読み出されたときには、当該読み出した前記第2の付加ビットに対応する前記第2のデータを読み出し、当該読み出した前記第2のデータが、読み出し対象のデータであるか否かを判定する第8の工程と、
    前記第8の工程における判定の結果に基づいて、前記フラッシュメモリへの読み出し先の番地を特定する第9の工程と、
    前記9の工程で特定した読み出し先番地から前記第1のデータを読み出す第10の工程と、
    を備えることを特徴とする請求項18または19に記載のメモリ制御方法。
  21. 前記第3および第6の工程における読み出し処理は、前記フラッシュメモリにデータを書き込む方向とは逆の方向で行う、
    ことを特徴とする請求項19または20に記載のメモリの制御方法。
  22. 前記第1および第2の工程において、前記第1および第2の付加ビットは、それぞれ対応する前記第1および第2のデータと同じ番地に書き込まれる、
    ことを特徴とする請求項18ないし21のいずれか1項に記載のメモリ制御方法。
  23. 前記フラッシュメモリの消去状態を示す値が、第1の値であるときには、
    前記第1の付加ビットは、前記第1の値である、
    ことを特徴とする請求項18ないし22のいずれか1項に記載のメモリ制御方法。
  24. 前記第2のデータは、前記第1のデータを特定するためのデータであって前記第1のデータと関連付けが行われているデータである、
    ことを特徴とする請求項18ないし23のいずれか1項に記載のメモリ制御方法。
  25. 前記第2の工程は、
    前記第2のデータを前記フラッシュメモリに書き込む第11の工程と、
    前記第2の付加ビット前記フラッシュメモリに書き込む第12の工程と、
    を有し、
    前記第12の工程は、前記第11の工程の後に実行される、
    ことを特徴とする請求項18ないし24のいずれか1項に記載のメモリ制御方法。
JP2005368634A 2005-12-21 2005-12-21 フラッシュメモリ Expired - Fee Related JP4999325B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005368634A JP4999325B2 (ja) 2005-12-21 2005-12-21 フラッシュメモリ
US11/641,733 US8041880B2 (en) 2005-12-21 2006-12-20 Flash memory, memory control circuit, microcomputer and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005368634A JP4999325B2 (ja) 2005-12-21 2005-12-21 フラッシュメモリ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011194380A Division JP5366159B2 (ja) 2011-09-06 2011-09-06 半導体装置及びマイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2007172259A true JP2007172259A (ja) 2007-07-05
JP4999325B2 JP4999325B2 (ja) 2012-08-15

Family

ID=38173246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005368634A Expired - Fee Related JP4999325B2 (ja) 2005-12-21 2005-12-21 フラッシュメモリ

Country Status (2)

Country Link
US (1) US8041880B2 (ja)
JP (1) JP4999325B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110630A1 (en) * 2008-03-07 2009-09-11 Kabushiki Kaisha Toshiba Memory system
JP2011258182A (ja) * 2010-05-12 2011-12-22 Panasonic Corp 半導体メモリ装置及び半導体メモリシステム
JP2012033045A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 電子機器およびデータ読み出し方法
US8327064B2 (en) 2008-07-11 2012-12-04 Renesas Electronics Corporation Data processor with flash memory, and method for accessing flash memory
JP2014075036A (ja) * 2012-10-04 2014-04-24 Denso Corp フラッシュメモリのデータ処理方法、及び、このデータ処理用のプログラム
JP2015025837A (ja) * 2013-07-24 2015-02-05 シナプティクス・ディスプレイ・デバイス株式会社 表示制御装置および半導体集積回路

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370603B2 (en) 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
US20100250875A1 (en) * 2009-03-25 2010-09-30 Silicon Laboratories Inc. Eeprom emulation using flash memory
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US20100287329A1 (en) * 2009-05-06 2010-11-11 Apple Inc. Partial Page Operations for Non-Volatile Memory Systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
TWI537826B (zh) * 2011-05-05 2016-06-11 聯詠科技股份有限公司 主晶片開機方法
DE102011107435A1 (de) * 2011-07-15 2013-01-17 Giesecke & Devrient Gmbh Verfahren zum Erkennen von gelöschten Speicherbereichen
US9110782B2 (en) 2012-04-27 2015-08-18 Freescale Semiconductor, Inc. Emulated electrically erasable memory parallel record management
US9223503B2 (en) * 2013-09-27 2015-12-29 Intel Corporation Generating random numbers utilizing entropic nature of NAND flash memory medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392941A (ja) * 1989-09-06 1991-04-18 Hitachi Ltd 領域管理方式
JPH06139140A (ja) * 1990-12-31 1994-05-20 Intel Corp 不揮発性半導体メモリのファイル構造
JPH11338992A (ja) * 1998-05-22 1999-12-10 Mitsubishi Electric Corp Pcカード
JP2003288257A (ja) * 2002-03-28 2003-10-10 Toppan Printing Co Ltd Icカード及びicカードのメモリ管理方法
JP2006040264A (ja) * 2004-06-21 2006-02-09 Toshiba Corp メモリカードの制御方法および不揮発性半導体メモリの制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ131399A0 (en) * 1999-06-30 1999-07-22 Silverbrook Research Pty Ltd A method and apparatus (NPAGE02)
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
JP2002288988A (ja) * 2001-03-28 2002-10-04 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6614685B2 (en) * 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
JP4074110B2 (ja) * 2002-03-20 2008-04-09 Necエレクトロニクス株式会社 シングルチップ・マイクロコンピュータ
PL363945A1 (en) * 2003-12-08 2005-06-13 Advanced Digital Broadcast Polska Spółka z o.o. Software method for eeprom memory emulation
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392941A (ja) * 1989-09-06 1991-04-18 Hitachi Ltd 領域管理方式
JPH06139140A (ja) * 1990-12-31 1994-05-20 Intel Corp 不揮発性半導体メモリのファイル構造
JPH11338992A (ja) * 1998-05-22 1999-12-10 Mitsubishi Electric Corp Pcカード
JP2003288257A (ja) * 2002-03-28 2003-10-10 Toppan Printing Co Ltd Icカード及びicカードのメモリ管理方法
JP2006040264A (ja) * 2004-06-21 2006-02-09 Toshiba Corp メモリカードの制御方法および不揮発性半導体メモリの制御方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110630A1 (en) * 2008-03-07 2009-09-11 Kabushiki Kaisha Toshiba Memory system
JP2009217391A (ja) * 2008-03-07 2009-09-24 Toshiba Corp メモリシステム
KR101122485B1 (ko) 2008-03-07 2012-03-02 가부시끼가이샤 도시바 메모리 시스템
US9075740B2 (en) 2008-03-07 2015-07-07 Kabushiki Kaisha Toshiba Memory system
US8327064B2 (en) 2008-07-11 2012-12-04 Renesas Electronics Corporation Data processor with flash memory, and method for accessing flash memory
JP2011258182A (ja) * 2010-05-12 2011-12-22 Panasonic Corp 半導体メモリ装置及び半導体メモリシステム
JP2012033045A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 電子機器およびデータ読み出し方法
JP2014075036A (ja) * 2012-10-04 2014-04-24 Denso Corp フラッシュメモリのデータ処理方法、及び、このデータ処理用のプログラム
JP2015025837A (ja) * 2013-07-24 2015-02-05 シナプティクス・ディスプレイ・デバイス株式会社 表示制御装置および半導体集積回路

Also Published As

Publication number Publication date
US20070140007A1 (en) 2007-06-21
US8041880B2 (en) 2011-10-18
JP4999325B2 (ja) 2012-08-15

Similar Documents

Publication Publication Date Title
JP4999325B2 (ja) フラッシュメモリ
JP5328020B2 (ja) メモリ装置及びメモリアクセス方法
US7363421B2 (en) Optimizing write/erase operations in memory devices
US6154808A (en) Method and apparatus for controlling data erase operations of a non-volatile memory device
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US6034897A (en) Space management for managing high capacity nonvolatile memory
EP1729304B1 (en) Space management for managing high capacity nonvolatile memory
JP2007164318A (ja) 記憶装置
JP3875139B2 (ja) 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム
US9971682B2 (en) Wear-leveling system and method for reducing stress on memory device using erase counters
US9870826B2 (en) Memory apparatus and data access method thereof by using multiple memories for lifetime extension
US6510083B1 (en) Electrically erasable and programmable memory that allows data update without prior erasure of the memory
KR20030036133A (ko) 고속 데이터 액세스를 유지하면서 ram 크기를감소시키는 방법 및 장치
JP2008084184A (ja) メモリコントローラ
CN108228095B (zh) 一种基于Flash进行实时信息记录的方法
JP5366159B2 (ja) 半導体装置及びマイクロコンピュータ
KR20190131535A (ko) 프로그램을 업데이트하기 위한 방법 및 장치
JP2018147191A (ja) 管理装置、情報処理装置および管理方法
CN109426443B (zh) 存储器控制装置和方法
JP2000243093A (ja) フラッシュメモリへのデータ記憶方法及びフラッシュメモリからのデータ読出方法
US8225051B2 (en) Access control method for a memory, memory controller for controlling access to the memory, and data processing apparatus
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JP2004310268A (ja) フラッシュメモリ内蔵の半導体装置、フラッシュメモリの制御方法およびそのプログラム
JP2004273117A (ja) 複合化フラッシュメモリを搭載した半導体装置及び携帯用機器
JP2009199211A (ja) メモリ制御方法及び装置、コンピュータプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070705

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080820

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

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: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120515

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4999325

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

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