JP6636930B2 - フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム - Google Patents

フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム Download PDF

Info

Publication number
JP6636930B2
JP6636930B2 JP2016549843A JP2016549843A JP6636930B2 JP 6636930 B2 JP6636930 B2 JP 6636930B2 JP 2016549843 A JP2016549843 A JP 2016549843A JP 2016549843 A JP2016549843 A JP 2016549843A JP 6636930 B2 JP6636930 B2 JP 6636930B2
Authority
JP
Japan
Prior art keywords
data
updated
block
memory
order
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.)
Active
Application number
JP2016549843A
Other languages
English (en)
Other versions
JPWO2016046940A1 (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.)
KYOTO SOFTWARE RESEARCH, INC.
Original Assignee
KYOTO SOFTWARE RESEARCH, INC.
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 KYOTO SOFTWARE RESEARCH, INC. filed Critical KYOTO SOFTWARE RESEARCH, INC.
Publication of JPWO2016046940A1 publication Critical patent/JPWO2016046940A1/ja
Application granted granted Critical
Publication of JP6636930B2 publication Critical patent/JP6636930B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

この発明はフラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラムに関し、特に、電源断を考慮したフラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラムに関する。
ICカード等に搭載されたフラッシュメモリ内蔵マイコンにおいて、不揮発メモリ上のデータ更新時の電源断等による異常終了時のメモリの管理方法が提案されている。例えば、特開2008−305263号公報(特許文献1)に記載されている。同公報によれば、複数アドレスからなるメモリセルブロックを複数備える不揮発性メモリと、メモリセルブロック単位での一括消去処理、所定アドレス数の記憶領域単位またはビット単位での書き込み処理、メモリセルブロック単位でのデータ更新処理の制御を行うメモリ制御手段を備える不揮発性半導体記憶装置のメモリの管理方法において、データ更新処理が複数の要素処理を含み、メモリセルブロックが、データ領域と実行中の要素処理を特定可能なステータス情報を記憶するステータス情報記憶領域を備え、ステータス情報の夫々が、上書き込み処理の実行のみでステータス情報記憶領域を次に実行する要素処理のステータス情報に更新可能なデータ構成を有している。また、メモリセルブロックは、物理アドレス以外に論理アドレスを記憶する必要がある(特許文献1、段落番号0048)。
特開2008−305263号公報
従来のフラッシュメモリ内蔵マイコンが内蔵している不揮発性メモリに対するデータ更新処理及び電源断等に対する異常対応処理は上記のように行われていた。ビット単位での書き込み処理が必要であるとともに、メモリセルブロックは、物理アドレス以外に論理アドレスを記憶する必要があった。
しかしながら、物理アドレスと論理アドレスとを記憶するため、本来保存すべきユーザデータに対する管理データが増加するために、マイコンに内蔵されているフラッシュメモリを有効に使用できなくなるとともに、処理速度が低下するという問題があった。
この発明は上記のような問題点を解消するためになされたもので、フラッシュメモリが有効に使用でき、省スペースが図れるとともに、電源断等に対処するための無駄なデータの書込み読み出しを不要にし、省電力が可能であるフラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラムを提供することを目的とする。
この発明に係るフラッシュメモリ内蔵マイコンは、順に更新される2つのメモリブロックを含む。それぞれのメモリブロックは、ブロック管理情報とデータを格納する複数のスロットとを含む。ブロック管理情報はデータが更新された順を示す更新カウンタを含む。複数のスロットの各々は、更新されたデータと、その書込みが完了した旨の書込み完了フラグとを有し、複数のスロットについて、所定の順でデータが更新され、2つのメモリブロックの更新カウンタに基づいて最も新しく更新されたメモリブロックを検出するメモリブロック検出手段と、メモリブロック検出手段の検出したメモリブロックにおいて、所定の順および書込み完了フラグを考慮して最も新しくデータの書込みが完了したスロットを検出するスロット検出手段とを含む。
好ましくは、メモリブロックは所定のフォーマットに構成され、メモリブロックが所定のフォーマットに構成されたことを示すフォーマット完了フラグを有し、ブロック管理情報はフォーマット完了フラグを含む。
さらに好ましくは、メモリブロックはブロックが消去されたときにその完了を示す消去完了フラグを有し、ブロック管理情報は消去完了フラグを含む。
メモリブロックは所定のユーザデータのサイズを有し、ブロック管理情報はユーザデータのサイズを含んでもよい。
ブロック管理情報は、更新カウンタをビット反転したビット反転カウンタを含んでもよい。
この発明の他の局面は、順に更新される2つのメモリブロックを含む、マイコンに内蔵されたフラッシュメモリへのデータの書込み方法である。それぞれのメモリブロックは、ブロック管理情報とデータを格納する複数のスロットとを含み、ブロック管理情報はデータが更新された順を示す更新カウンタを含み、複数のスロットの各々は、更新されたデータと、その書込みが完了した旨の書込み完了フラグとを有し、複数のスロットについて、所定の順でデータが更新される。マイコンに内蔵されたフラッシュメモリへのデータの書込み方法は、2つのメモリブロックの更新カウンタに基づいて最も新しく更新されたメモリブロックを検出するステップと、検出ステップで検出されたメモリブロックにおいて、所定の順および書込み完了フラグを考慮して最も新しくデータの書込みが完了したスロットを検出するステップとを含む。
この発明のさらに他の局面は、順に更新される2つのメモリブロックを含む、内蔵されたフラッシュメモリを有するマイコンにおける、フラッシュメモリへのデータを書込むプログラムである。それぞれのメモリブロックは、ブロック管理情報とデータを格納する複数のスロットとを含み、ブロック管理情報はデータが更新された順を示す更新カウンタを含み、複数のスロットの各々は、更新されたデータと、その書込みが完了した旨の書込み完了フラグとを有し、複数のスロットについて、所定の順でデータが更新され、プログラムは、2つのメモリブロックの更新カウンタに基づいて最も新しく更新されたメモリブロックを検出するステップと、検出ステップで検出されたメモリブロックにおいて、所定の順および書込み完了フラグを考慮して最も新しくデータの書込みが完了したスロットを検出するステップとを含む、ように実行させる。
この発明によれば、2つのメモリブロックを用いて、2つのメモリブロックのうちのより遅く更新されたメモリブロックを検出し、検出されたメモリブロックにおいて、最も遅くデータの書込みが完了したスロットを検出するため、どのスロットのデータが最新の更新データかを判断できる。
電源断等に対処するために、従来のようなビット操作や、物理アドレスと論理アドレスとを記憶するといった必要がない。
その結果、フラッシュメモリが有効に使用でき、省スペースが図れるとともに、電源断等に対処するための無駄なデータの書込み読み出しを不要にし、省電力が可能であるフラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラムを提供できる。
フラッシュメモリ内蔵マイコンの全体構成を示すブロック図である。 所定のフォーマットを有する2つのブロックを示す図である。 スロットの構成、および、そこに格納されるデータの例を示す図である。 ブロックの遷移と電源断時の処理内容を示すフローチャートである。 ブロックの切り替わりを示すフローチャートである。
以下、この発明の一実施の形態を、図面を参照して説明する。図1はこの発明が適用されるフラッシュメモリ内蔵マイコンの全体構成を示すブロック図である。図1を参照して、フラッシュメモリ内蔵マイコン10は、マイコン10の制御部であるCPU11と、CPU11を駆動するためのプログラムやデータを格納するフラッシュメモリ12と、作業領域としてのRAMのようなメモリ13と、複数のブロックを有するブロック領域14とを含む。
ブロック領域14は、ブロック0、ブロック1、ブロック2、…、ブロックnを含む。
ここで、フラッシュメモリ12は、従来のEEPROMの代わりに使用できる。そのため、ここでは、単一のデータのみを格納するものとする。
図2はフラッシュメモリ12に格納される所定のフォーマットを有する2つのブロックの具体的構成を示す図である。この実施の形態においては、これらの所定のフォーマットを有する2つのブロックを用いて、電源断のような、プログラムが正常に終了しなかったときの処理を行う。
図2を参照して、所定のフォーマットを有するブロックはブロック0とブロック1とを含む。ブロック0は、ブロック管理情報記憶部21と複数のスロット22a〜22cとを含む。
ブロック管理情報はECM(Erase Complete Mark、消去完了フラグ)と、更新カウンタと、更新カウンタをビット反転した反転情報を含む更新カウンタ(ビット反転)と、ユーザデータのサイズ情報と、FCM(Format Complete Mark,フォーマット完了フラグ)と、を含む。
ECMはブロックの消去が完了していることを示す情報(0x5A)を格納する。FCMはブロックのフォーマットが完了していることを示す情報(0xA5)を格納する。ユーザデータのサイズ情報は、スロットに格納されるユーザデータのサイズを格納する。ユーザデータのサイズとしては、例えば、16バイトや、512バイト等である。
更新カウンタは、スロットに格納されるデータの順を格納する。初期値はFFFFFFFE(16進)であり、順に00000001(16進)まで減算される。更新カウンタ(ビット反転)は更新カウンタの16進によるビット反転した情報を格納する。カウンタ情報がFFFFFFFEであれば、更新カウンタ(ビット反転)は00000001(16進)である。カウンタ情報と更新カウンタ(ビット反転)とが格納されるのは電源断が発生して、更新カウンタが正しく書込めたか否かを判断するために使用する。
ブロック管理情報を書き込むときは、次の手順で行う。まず、ブロックをイレーズ(消去)する。ECMを書き込む。更新カウンタ、更新カウンタ(ビット反転)を書き込む。サイズ情報を書き込む。その後、FCM(Format Complete Mark、フォーマット完了フラグ)を書き込む。
スロットの構成、および、そこに格納されるデータの例を図3に示す。図3(A)はスロットの構成を示す図であり、図3(B)はスロットの所定の位置に格納されたデータとそのデータにおけるスロットの状態を示す図である。
図3(A)を参照して、スロット22はユーザデータエリア23とWCM記録領域24とを含む。ユーザデータエリア23にユーザがユーザデータを書き込むときは、1バイト目から書き込む。データの書込みが完了したら、その旨を示すWCM(Write Complete Mark、書込み完了フラグ)をWCM記録領域24に記録する。
ここで、データの書込みの流の順は、ECM、更新カウンタ、更新カウンタ(ビット反転)、サイズ情報、および、FCMとなる。それぞれのデータの初期値(ブロックが消去されて何も書かれていないとき)のデータは0xFFで埋められる。
スロットへのデータの書込みは、まずブロック0のスロット22aから行われ、スロット22b、…スロット22cの順に行われる。ブロック0のスロットがすべて書き込まれてフルブロックになると、次に、ブロック1のスロット32a、スロット32b、…スロット32cの順に行われる。スロット32cまで書き込まれると、次は、ブロック0のスロット22aに戻る。以下、これを繰り返す。
図3(B)を参照して、ユーザデータエリア23の1バイト目のデータとWCM記録領域24のデータをチェックすれば、そのスロットの状態が判断できる。すなわち、1バイト目とWCMのデータが、0xFFと0xFFであれば、何も書き込まれていないため、フリースロットである。1バイト目とWCMのデータが、0xFFでない値と0xFF、または、0xFFでない値と0xF0でない値であれば、書込みの途中で電源断等が生じたスロットである。1バイト目が0xFFでなく、FCMのデータが0xF0であれば、正しく記録されたスロットである。
次に、ブロックの遷移と電源断時の処理内容について説明する。図4はCPU11が電源断後に実行する処理内容を示すフローチャートである。図4を参照して、電源断が発生すると、まず、2つのブロックの状態を確認する(ステップS11、以下ステップを省略する)。ブロック管理情報からECM,更新カウンタ、更新カウンタ(ビット反転)、ユーザデータのサイズ、FCMがOKか否かを判断する(S12)。
S12ですべての値がOKであれば、フォーマット完了ブロックであると判断する(S13)。そして、そのブロックの中で、最新のスロットを見つける。
S12でブロック管理情報の値がOKでなければ(消去完了ブロック、または、不定状態ブロックであれば)(S12でNO)、ECMがOKか否かを判断する(S26)。ECMがOKであれば(S26でYES)、消去(イレーズ)完了ブロックであると判断して(S27)、ブロックのフォーマットを実行し、ブロックにブロック管理情報を書き込む(S28)、FCMを書き込んで(S29)フォーマットを完了してS13へ進む。
次に、S13に示すフォーマット完了ブロックに対する処理について説明する。まず、2つあるブロックの更新カウンタをチェックして、値が小さい方のブロックを見つける(S14)。見つけた更新カウンタの値が小さい方のブロックを、スロットの書込み順(所定の順)とは逆順にみて、WCMが0xF0になっているスロットを見つける(S15)。スロットが見つからないときは(S16でYES)、他方のブロックについてWCMが0xF0になっているスロットを見つける(S17)。このスロットが最新のスロットである(S18)。一方、S16でスロットが見つかるときは(S16でNO)、そのスロットが最新のスロットになる(S18)。
最新のスロットが発見されると(S18)、次に、最新のスロットからデータが読み出すか否かを判断する(S19)。読み出すときは(S19でYES)、データを読みだす(S20)。読み出さないときは(S19でNO)、フリースロットを見つける(S21)。スロットに空きがあるか否かを判断する(S22)。スロットに空きがあれば(S22でYES)、フリースロットにユーザデータを書き込んで(S23)、WCMを書き込んで(S24)、S19に戻る。
S22でスロットに空きがないときは(S22でNO)、ブロックがフルブロックの状態であるから(S25)、S31へ進んでブロックの消去(イレーズ)を行い(S31)、ECMを書き込んで(S32)、消去完了ブロックとして、S27へ進む。S26でECMがOKでないときは(S26でNO)、不定状態ブロックとして(S30)、S31へ進む。
次にブロックの切り替わりについて説明する。図5はブロックの切り替りを示すフローチャートである。図5を参照して、ここでは、2つのブロックとして、ブロック0とブロック1との変遷について説明する。
ブロック0で不定状態のブロックについて(S41)、ブロックを消去し(S42)、ECMを書き込み(S43)、消去完了ブロックとする(S44)。これをフォーマット処理して(S45)、FCWを書き込んで(S46)、フォーマット完了ブロックとする(S47)。このブロックのフリースロットにデータを書き込む(S48)。すべてのフリースロットに書き込みが完了してフルブロックの状態になると、S52に進んでブロック1の消去を行う。
次にブロック1について説明する。ブロック1もブロック0と同様である。ブロック1の不定状態のブロックについて(S51)、ブロックを消去し(S52)、ECMを書き込み(S53)、イレーズ完了ブロックとする(S54)。これをフォーマット処理して(S55)、FCWを書き込んで(S56)、フォーマット完了ブロックとする(S57)。このブロックのフリースロットにデータを書き込む(S58)。
すべてのフリースロットに書き込みが完了してフルブロックの状態になると(S59)、ブロック0に戻って上記の処理を再度行って、ブロックのイレーズを行い、フォーマットを行い、FCWの書込みを行い、ユーザデータをフリースロットに書込み、最後にフルブロックとする(S60、S61)。ブロック0がフルブロックになると、ブロック1について同様の処理を行う(S62、S63)。以下、この処理を繰り返す。
以上のように、この実施の形態においては、所定のフォーマットを有する2つのブロックを用いて、最後に処理されたブロックを特定する。
その結果、処理の途中で電源断等が生じても、どこまで処理が完了していたのかを判断でき、そのブロックから新たな処理を続行することができる。
図面を参照してこの発明の実施形態を説明したが、本発明は、図示した実施形態に限定されるものではない。本発明と同一の範囲内において、または均等の範囲内において、図示した実施形態に対して種々の変更を加えることが可能である。
この発明によると、電源断等に対処するための無駄なデータの書込み読み出しを不要にし、省電力が可能であるとともに、ビット単位での書込み操作を必要としないフラッシュメモリ内蔵マイコンを提供できるため、フラッシュメモリ内蔵マイコンとして有利に利用される。
10 フラッシュメモリ内蔵マイコン、11 CPU、12 フラッシュメモリ、13 RAM、14 メモリブロック、20,31 ブロック管理情報、22、32 スロット。

Claims (7)

  1. 順に更新される少なくとも2つのメモリブロックを含み、
    前記それぞれのメモリブロックは、ブロック管理情報とデータを格納する複数のスロットとを含み、
    前記ブロック管理情報はデータが更新された順を示す更新カウンタを含み、
    前記複数のスロットの各々は、更新されたデータと、その書込みが完了した旨の書込み完了フラグとを有し、
    前記2つのメモリブロックの一方のメモリブロックの複数のスロットについて、更新カウンタの順でデータが更新され、一方のメモリブロックの複数のスロットのデータが全て更新されると、他方のメモリブロックの複数のスロットについて、更新カウンタの順でデータの更新がされ、これが順に繰り返され、
    前記2つのメモリブロックの更新カウンタに基づいて最も新しく更新されたメモリブロックを検出するメモリブロック検出手段と、
    前記メモリブロック検出手段の検出したメモリブロックにおいて、
    前記更新カウンタの順に基づいて、前記書込み完了フラグが正しく記録された旨を示すスロットを見つけ、
    最も新しくデータの書込みが完了したスロットを検出するスロット検出手段と、を含み、それによって、電源断時に対処する、フラッシュメモリ内蔵マイコン。
  2. 前記メモリブロックは所定のフォーマットに構成され、
    前記メモリブロックが前記所定のフォーマットに構成されたことを示すフォーマット完了フラグを有し、
    前記ブロック管理情報は前記フォーマット完了フラグを含む、請求項1に記載のフラッシュメモリ内蔵マイコン。
  3. 前記メモリブロックはブロックが消去されたときにその完了を示す消去完了フラグを有し、
    前記ブロック管理情報は前記消去完了フラグを含む、請求項1または2に記載のフラッシュメモリ内蔵マイコン。
  4. 前記メモリブロックは所定のユーザデータのサイズ情報を有し、
    前記ブロック管理情報は前記ユーザデータのサイズ情報を含む、請求項1〜3のいずれかに記載のフラッシュメモリ内蔵マイコン。
  5. 前記ブロック管理情報は、前記更新カウンタをビット反転したビット反転カウンタを含む、請求項1〜4のいずれかに記載のフラッシュメモリ内蔵マイコン。
  6. 順に更新される少なくとも2つのメモリブロックを含む、マイコンに内蔵されたフラッシュメモリへのデータの書込み方法であって、
    それぞれのメモリブロックは、ブロック管理情報とデータを格納する複数のスロットとを含み、
    ブロック管理情報はデータが更新された順を示す更新カウンタを含み、
    複数のスロットの各々は、更新されたデータと、その書込みが完了した旨の書込み完了フラグとを有し、
    前記2つのメモリブロックの一方のメモリブロックの複数のスロットについて、更新カウンタの順でデータが更新され、一方のメモリブロックの複数のスロットのデータがすべて更新されると、他方のメモリブロックの複数のスロットについて、更新カウンタの順でデータの更新がされ、これが順に繰り返され、
    前記2つのメモリブロックの更新カウンタに基づいて最も新しく更新されたメモリブロックを検出するステップと、
    検出ステップで検出されたメモリブロックにおいて、更新カウンタの順に基づいて、前記書込み完了フラグが正しく記録された旨を示すスロットを見つけ、最も新しくデータの書込みが完了したスロットを検出するステップとを含み、それによって、電源断時に対処する、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法。
  7. 順に更新される少なくとも2つのメモリブロックを含む、内蔵されたフラッシュメモリを有するマイコンにおける、フラッシュメモリへのデータを書込むプログラムであって、
    それぞれのメモリブロックは、ブロック管理情報とデータを格納する複数のスロットとを含み、
    ブロック管理情報はデータが更新された順を示す更新カウンタを含み、
    複数のスロットの各々は、更新されたデータと、その書込みが完了した旨の書込み完了フラグとを有し、
    前記2つのメモリブロックの一方のメモリブロックの複数のスロットについて、更新カウンタの順でデータが更新され、一方のメモリブロックの複数のスロットのデータがすべて更新されると、他方のメモリブロックの複数のスロットについて、更新カウンタの順でデータの更新がされ、これが順に繰り返され、
    マイコンを、2つのメモリブロックの更新カウンタに基づいて、最も新しく更新されたメモリブロックを検出するステップと、
    検出ステップで検出されたメモリブロックにおいて、更新カウンタの順に基づいて、前記書込み完了フラグが正しく記録された旨を示すスロットを見つけ、最も新しくデータの書込みが完了したスロットを検出するステップとを含むように実行させ、それによって、電源断時に対処する、マイコンを用いて内蔵されたフラッシュメモリへデータを書込むプログラム。
JP2016549843A 2014-09-25 2014-09-25 フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム Active JP6636930B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/075462 WO2016046940A1 (ja) 2014-09-25 2014-09-25 フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム

Publications (2)

Publication Number Publication Date
JPWO2016046940A1 JPWO2016046940A1 (ja) 2017-08-03
JP6636930B2 true JP6636930B2 (ja) 2020-01-29

Family

ID=55580500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016549843A Active JP6636930B2 (ja) 2014-09-25 2014-09-25 フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム

Country Status (4)

Country Link
US (1) US20160275011A1 (ja)
JP (1) JP6636930B2 (ja)
CN (1) CN105706067B (ja)
WO (1) WO2016046940A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836300B2 (en) * 2015-06-16 2017-12-05 Lear Corporation Method for updating vehicle ECUs using differential update packages
US10303460B2 (en) * 2017-07-25 2019-05-28 Aurora Labs Ltd. Self-healing learning system for one or more vehicles

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2990181B1 (ja) * 1998-09-28 1999-12-13 日本電気アイシーマイコンシステム株式会社 フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US6412080B1 (en) * 1999-02-23 2002-06-25 Microsoft Corporation Lightweight persistent storage system for flash memory devices
US7103732B1 (en) * 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
JP2006040264A (ja) * 2004-06-21 2006-02-09 Toshiba Corp メモリカードの制御方法および不揮発性半導体メモリの制御方法
WO2005124530A2 (en) * 2004-06-21 2005-12-29 Kabushiki Kaisha Toshiba Method for controlling memory card and method for controlling nonvolatile semiconductor memory
KR100643288B1 (ko) * 2004-11-16 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
JP4227149B2 (ja) * 2006-04-19 2009-02-18 三菱電機株式会社 電子制御装置の情報記憶方法
CN100501702C (zh) * 2007-01-17 2009-06-17 晶天电子(深圳)有限公司 一种闪存卡及其缓存、恢复数据的方法
JP2009223435A (ja) * 2008-03-13 2009-10-01 Denso Corp データ記憶方法及び装置、並びにプログラム
JP2010020586A (ja) * 2008-07-11 2010-01-28 Nec Electronics Corp データ処理装置
JP5660521B2 (ja) * 2011-06-17 2015-01-28 株式会社デンソー 不揮発性半導体記憶装置およびメモリ管理方法

Also Published As

Publication number Publication date
CN105706067A (zh) 2016-06-22
WO2016046940A1 (ja) 2016-03-31
JPWO2016046940A1 (ja) 2017-08-03
US20160275011A1 (en) 2016-09-22
CN105706067B (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
US8452913B2 (en) Semiconductor memory device and method of processing data for erase operation of semiconductor memory device
US6601132B2 (en) Nonvolatile memory and method of writing data thereto
US8775874B2 (en) Data protection method, and memory controller and memory storage device using the same
EP2372549B1 (en) Emerging bad block detection
JP5283845B2 (ja) ビットエラーの予防方法、情報処理装置
JP5990430B2 (ja) Ssd(ソリッドステートドライブ)装置
US20100125696A1 (en) Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
TWI436369B (zh) 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統
JP4925301B2 (ja) 半導体メモリシステム
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP2008181399A (ja) メモリコントローラ
JP2020086739A (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
JP2006302342A (ja) 不揮発性半導体メモリ装置とメモリシステム
JP2007094921A (ja) メモリカードとその制御方法
JP6636930B2 (ja) フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム
JP2007034858A (ja) データバックアップ方法及びメモリ装置
JP4661369B2 (ja) メモリコントローラ
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
CN101694636B (zh) 非易失性数据存储器数据更新备份系统及方法
JP4710274B2 (ja) メモリ装置、メモリ装置の制御方法およびデータ処理システム
JP4239754B2 (ja) 不揮発メモリシステム
JP2014203381A (ja) 記憶装置とその制御方法、および、プログラム
JP5862350B2 (ja) フラッシュメモリの書き込み装置、フラッシュメモリの書き込み制御方法、およびプログラム
TW201905923A (zh) 快閃記憶體裝置及其資料讀取方法
CN109949849B (zh) 非易失性存储器及其抹除控制方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191219

R150 Certificate of patent or registration of utility model

Ref document number: 6636930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250