JP5520098B2 - データ処理方法、プログラムおよびシステム - Google Patents

データ処理方法、プログラムおよびシステム Download PDF

Info

Publication number
JP5520098B2
JP5520098B2 JP2010068110A JP2010068110A JP5520098B2 JP 5520098 B2 JP5520098 B2 JP 5520098B2 JP 2010068110 A JP2010068110 A JP 2010068110A JP 2010068110 A JP2010068110 A JP 2010068110A JP 5520098 B2 JP5520098 B2 JP 5520098B2
Authority
JP
Japan
Prior art keywords
data
sector
identifier
updated
flash memory
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
JP2010068110A
Other languages
English (en)
Other versions
JP2011203809A (ja
Inventor
小森  裕之
Original Assignee
スパンション エルエルシー
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 スパンション エルエルシー filed Critical スパンション エルエルシー
Priority to JP2010068110A priority Critical patent/JP5520098B2/ja
Priority to US13/039,839 priority patent/US8868822B2/en
Publication of JP2011203809A publication Critical patent/JP2011203809A/ja
Application granted granted Critical
Publication of JP5520098B2 publication Critical patent/JP5520098B2/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

Landscapes

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

Description

本発明は、フラッシュメモリに格納されるデータの処理方法、データ処理方法を実現するためのプログラムおよびフラッシュメモリを含むシステムに関する。
フラッシュメモリ等の不揮発性メモリでは、書き込み単位である記憶領域にデータが既に書き込まれているとき、この記憶領域には新たなデータを上書きできない。新たなデータは、消去状態の記憶領域に書き込む必要がある。このため、データの書き込みは、アドレスを変えながら記憶領域を検索し、消去状態の記憶領域を確認した後に行う必要がある(例えば、特許文献1参照。)。
例えば、更新するデータは消去状態の記憶領域に順に書き込まれる。この際、最新のデータが書き込まれた記憶領域を素早く検索するために、最新のデータが書き込まれた記憶領域のアドレスが、所定の記憶領域に書き込まれる(例えば、特許文献2参照。)。
特開2004−310268号公報 特開2008−97526号公報
更新するデータがアドレスを増やしながら順次に書き込まれるとき、更新頻度の高いデータはアドレスの大きい記憶領域に遷移していき、更新頻度の低いデータはアドレスの小さい記憶領域に留まる。読み出すデータの検索は、検索効率を向上するために、アドレスの大きい記憶領域からアドレスの小さい記憶領域に向けて実施される。しかしながら、この順でデータを読み出すとき、更新頻度の低いデータの検索効率は常に低くなる。
本発明の目的は、更新頻度の低いデータの検索効率を向上することである。
本発明のデータ処理方法の一形態では、複数のセクタを有するフラッシュメモリにおけるデータ処理方法において、複数のセクタは少なくとも第1セクタと第2セクタを含み、フラッシュメモリを制御するフラッシュメモリ制御回路は、第1セクタのデータを第2セクタに移行するとき、第1セクタにおいて更新されなかったデータを第2セクタの先頭から配置するとともに、更新されなかったデータの識別子を第2セクタに付加することを特徴とする。
第2セクタに移行されたデータの読み出しにおいて、読み出すデータの識別子が更新されなかったデータの識別子と一致するときに、読み出すデータを第2セクタの先頭から検索することで、更新頻度の低いデータの検索効率を向上できる。
一実施形態におけるシステムの例を示している。 図1に示したシステムにおいて、セクタSEC2からセクタSEC1にデータを移行する例を示している。 別の実施形態におけるシステムの例を示している。 図3に示したフラッシュメモリに格納されるデータの例を示している。 図4に示したセクタSEC1にデータを書き込む例を示している。 図4に示したセクタSEC1が満杯になった後に次のセクタSEC2にデータを移行する例を示している。 有効なセクタからデータを読み出すときの検索方法の例を示している。 図6に示したセクタSEC2が満杯になった後に次のセクタSEC3にデータを移行する例を示している。 図6および図8において、次のセクタにデータを移行する手順の例を示している。 図7において、有効なセクタからデータを読み出すときの検索方法の手順の例を示している。
以下、実施形態を図面を用いて説明する。
図1は、一実施形態におけるシステムSYSの例を示している。システムSYS(ユーザシステム)は、例えば、携帯機器等のマイクロコンピュータシステムの少なくとも一部を構成する。
例えば、システムSYSは、フラッシュメモリFLASH等の不揮発性半導体メモリと、フラッシュメモリFLASHのアクセスを制御するフラッシュメモリ制御回路MCNTとを有している。フラッシュメモリ制御回路MCNTは、フラッシュメモリFLASHにアクセスするために、フラッシュメモリFLASHにアドレス信号AD、コマンド信号CMDを供給する。フラッシュメモリFLASHは、アドレス信号ADおよびコマンド信号CMDに応じて、書き込み動作、読み出し動作または消去動作を実行する。フラッシュメモリ制御回路MCNTは、書き込み動作時に書き込みデータをフラッシュメモリFLASHのデータ端子I/Oに供給する。フラッシュメモリ制御回路MCNTは、読み出し動作時にフラッシュメモリFLASHのデータ端子I/Oから読み出しデータを受ける。
例えば、フラッシュメモリ制御回路MCNTは、CPU(Central Processing Unit)等のコンピュータであり、プログラムを実行することでフラッシュメモリFLASHに書き込み動作、読み出し動作および消去動作を実行させる。あるいは、フラッシュメモリ制御回路MCNTは、CPU等のコントローラからの指示を受け、フラッシュメモリFLASHのアクセスを制御するメモリコントローラである。このとき、フラッシュメモリ制御回路MCNTは、CPUにより実行されるプログラムにより指示されて、フラッシュメモリFLASHのアクセスを制御する。プログラムは、CPUにより読み取り可能な記録媒体に格納されている。以降で説明する動作は、例えば、プログラムが実行されることにより実現される。
フラッシュメモリFLASHは、少なくとも2つのセクタSEC(SEC1、SEC2)を有している。各セクタSEC1−2は、データ端子I/Oで受けるデータが書き込まれる複数の記憶領域SAを有している。各記憶領域SAは、データDATA、データDATAの種類を示す識別子IDおよびデータDATAが更新されているか否かを示す更新フラグRNFを有している。各セクタSECは、前に有効だったセクタSECで更新されなかったデータDATAの識別子IDを格納する付加領域AAを有している。例えば、識別子IDは10進数で表される。
フラッシュメモリFLASHへのデータの書き込みは、記憶領域SA単位または付加領域AAに対して実施される。フラッシュメモリFLASHのデータの消去は、セクタSEC単位で実施される。記憶領域SAへのデータDATAおよび識別子IDの上書きは実施できない。
この実施形態では、フラッシュメモリFLASHにデータDATAを書き込み、保持するデータ処理は、次のように実施される。フラッシュメモリ制御回路MCNTは、データDATAを識別子IDとともにセクタSEC1に順に格納していき、古いデータDATA(OLD)が新しいデータDATA(NEW)に順次に更新される。セクタSEC1が満杯になったときに、次のセクタSEC2にデータDATAが移行される。この際、識別子ID毎に、セクタSEC1内で最も新しいデータDATAと識別子IDがセクタSEC2に移行される。データDATAの読み書きを実施する有効なセクタSECは1つのみである。
データDATAおよび識別子IDがセクタSEC2に移行された後、セクタSEC1は、フラッシュメモリ制御回路MCNTの消去の指示に基づいて消去される状態になり、無効にされる。セクタSEC2は、セクタSEC1の無効化とともに有効にされる。セクタSEC1の消去動作は、セクタSEC2がデータDATAで満杯になり移行される前に実施される。
フラッシュメモリ制御回路MCNTは、新たなデータDATAを識別子IDとともにセクタSEC2に順に格納していく。セクタSEC2が満杯になったとき、識別子ID毎に、セクタSEC2内で最も新しいデータDATAがセクタSEC1に移行される。このように、セクタSEC1−2を交互に使用して、データDATAが保持される。なお、フラッシュメモリFLASHが3つ以上のセクタSECを有するとき、これ等セクタSECを順に使用して、データDATAが格納される。
セクタSEC1−2の全ての領域は、初期状態において消去されており、空き領域になっている。各セクタSEC1−2において、例えば、データDATAは、アドレスの先頭側の空き領域から順に書き込まれる。図1のセクタSEC2において、空白の記憶領域SAは、空き領域を示している。この例では、先頭のアドレスは、図1の最も上の記憶領域SAに割り当てられている。すなわち、図1の上側の記憶領域SAのアドレスの値は小さく、下側の記憶領域SAのアドレスの値は大きい。
フラッシュメモリ制御回路MCNTは、新たなデータDATAを識別子IDとともに空き領域に書き込み、新しいデータNEWであること示す値を対応する更新フラグRNFに格納する。なお、消去状態の更新フラグRNFがNEWを示すとき、更新フラグRNFへの書き込みは不要である。さらに、フラッシュメモリ制御回路MCNTは、前から存在しているデータDATAに対応する更新フラグRNFをNEWからOLD(古いデータ)に書き換える。これにより、1つの識別子IDに対応する複数のデータDATAがセクタSEC内に存在するときにも、データDATAの新旧を区別できる。
例えば、新しいデータNEWは論理1で示され、古いデータOLDは論理0で示される。一般に、フラッシュメモリFLASHでは、消去状態が論理1であり、書き込み状態が論理0である。このため、更新フラグRNFはNEWからOLDに変更可能である。各記憶領域SAの更新フラグRNFがNEWからOLDに書き換えられることで、識別子ID毎にデータDATAが更新される。
図1のフラッシュメモリFLASH内部の矢印は、セクタSEC1の全ての記憶領域SAにデータDATAが書き込まれた後、新しいデータDATAを次のセクタSEC2に移行する状態を示している。すなわち、フラッシュメモリ制御回路MCNTは、有効なセクタSEC1が満杯になったときに、更新フラグRNFにNEWが格納されているデータDATAを、最も新しいデータDATAとしてセクタSEC2にコピーする。この際、フラッシュメモリ制御回路MCNTは、セクタSEC1内でNEWを示すデータDATAをアドレスの先頭から検索し、図に矢印で示したように識別子IDとともにセクタSEC2の先頭から順に書き込む。
太い矢印は、セクタSEC1で一度も更新されていないデータDATAのセクタSEC2への移行を示す。細い矢印は、セクタSEC1で少なくとも1回更新されたデータDATAのセクタSEC2への移行を示す。この例では、矢印で示すように、NEWを示すデータDATAを、アドレスの小さい順に次のセクタSEC2に移行する例を示している。しかし、更新頻度の低いデータDATAからアドレスの小さい順に次のセクタSEC2に移行してもよい。このとき、識別子ID=9のデータDATAは、識別子ID=6のデータDATAより先にセクタSEC2にコピーされる。
また、フラッシュメモリ制御回路MCNTは、一度も更新されていないデータDATAの識別子IDの番号(太い矢印で示した識別子ID)をセクタSEC2の付加領域AAに書き込む。一度も更新されていないデータDATAは、セクタSEC1内に同じ識別子IDが1つしか存在しないことを確認することで判定できる。この後、フラッシュメモリ制御回路MCNTは、セクタSEC1を無効とし、セクタSEC2を有効とする。無効なセクタSEC1に格納されている情報は、次にデータDATAがセクタSEC2から移行される前に消去される。データDATAを読み出す処理については、図2で説明する。
図2は、図1に示したシステムSYSにおいて、セクタSEC2からセクタSEC1にデータDATAを移行する例を示している。この例では、セクタSEC2が有効になった後、識別子IDが”8、6、3、7、5、9、2”のデータDATAがセクタSEC2に書き込まれ、更新される。識別子IDが”7”のデータDATAを除く他のデータDATAは、セクタSEC1からの移行による古いデータDATAがセクタSEC2に既に格納されている。古いデータDATAの更新フラグRNFは、NEWからOLDに設定される。これにより、更新されないデータDATAは、アドレスの小さい記憶領域SAに残り、更新されたデータDATAは、アドレスの大きい記憶領域SAに移っていく。
フラッシュメモリ制御回路MCNTは、セクタSEC2が有効な期間に、付加領域AAを参照することで更新頻度の低いデータを判断できる。具体的には、フラッシュメモリ制御回路MCNTは、セクタSEC2からデータDATAを読み出すとき、読み出すデータDATAの識別子IDが付加領域AAに存在するか否かを判断する。読み出すデータDATAの識別子IDが付加領域AAに存在するとき、フラッシュメモリ制御回路MCNTは、セクタSEC2の先頭からNEWを示す識別子IDを検索して、データDATAを読み出す。
読み出すデータDATAの識別子IDが付加領域AAに存在しないとき、フラッシュメモリ制御回路MCNTは、セクタSEC2の末尾からNEWが割り付けられた識別子IDを検索して、データDATAを読み出す。付加領域AAに存在しない識別子IDに対応するデータDATAは、更新されてアドレスが相対的に大きい記憶領域SAに格納されている。このため、アドレスの大きい記憶領域SAから検索する方が、読み出すデータDATAの識別子IDを早く見つけることができる。
このように、データDATAを読み出すときの検索の順序(方向)を更新頻度に応じて切り替えることで、検索時間を短縮でき、データの読み出し効率を向上できる。換言すれば、更新頻度が低く、先頭側のアドレス領域に格納されているデータDATAの読み出し順序を、更新頻度が高く末尾側のアドレス領域に格納されているDATAの読み出し順序と逆にすることで、検索時間を短縮でき、データの読み出し効率を向上できる。
例えば、更新頻度の低いデータDATAは、プロフィール等の基本情報である。基本情報は、住所やメールアドレス、サービスの契約プランなどの固有情報である。また、更新頻度の低いデータDATAは、不定期に更新される情報であり、電気料金等の単価やメンテナンスを受けた日付などである。一方、更新頻度の高いデータDATAは、サービスの使用量、使用電力量やリアルタイムに取得される記録などである。
セクタSEC2が満杯になったときに、図1と同様に、NEWを示すデータDATAは、セクタSEC1に移行される。この際、付加領域AAに格納されている識別子IDのうち、OLDが存在しないデータDATAは、セクタSEC2において一度も更新されていないと判断される。すなわち、2回目以後のデータDATAの移行処理では、付加領域AAを参照することで、一度も更新されていないデータを迅速に検索できる。
移行処理では、一度も更新されていないデータDATAの識別子ID=1、4、10は、セクタSEC1の付加領域AAに書き込まれる。次に、識別子ID=1、4、10のデータDATAがセクタSEC1の先頭側から順に書き込まれる。残りのNEWを示すデータDATAは、識別子IDとともにセクタSEC1に書き込まれる。そして、セクタSEC2からセクタSEC1へのデータDATAの移行は完了し、セクタSEC2が無効にされ、セクタSEC1が有効にされる。セクタSEC2に格納されている情報は次回のデータDATAの移行処理が始まる前に消去される。
以上、この実施形態では、更新頻度が低いデータDATAを、アドレスの先頭側から順に読み出すことで、データDATAの検索時間を短縮でき、データの読み出し効率を向上できる。特に、更新されなかったデータDATAの識別子IDを付加領域AAに格納することで、更新頻度が低いデータDATAを迅速に検索できる。また、更新頻度が低く先頭側のアドレス領域に格納されているデータDATAの読み出し順序と、更新頻度が高く末尾側のアドレス領域に格納されているDATAの読み出し順序とを逆にすることで、検索時間の平均値を短縮でき、データの読み出し効率を向上できる。
図3は、別の実施形態におけるシステムSYSの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。システムSYS(ユーザシステム)は、例えば、携帯機器等のマイクロコンピュータシステムの少なくとも一部を構成する。システムSYSは、シリコン基板上に複数のマクロが集積されて形成されてもよく、パッケージ基板上に複数のチップを搭載して形成されてもよい。
例えば、システムSYSは、CPU(コントローラ)、ROM、RAM、フラッシュメモリ制御回路MCNTおよびフラッシュメモリFLASHを有している。CPU、ROM、RAMおよびフラッシュメモリ制御回路MCNTは、システムバスSBUSにより互いに接続されている。フラッシュメモリ制御回路MCNTとフラッシュメモリFLASHは専用のバスにより互いに接続されている。なお、フラッシュメモリ制御回路MCNTの機能をCPUに持たせて、フラッシュメモリ制御回路MCNTを介することなくCPUによりフラッシュメモリFLASHを直接アクセスしてもよい。
CPUは、ROM、RAMにアクセスするとともに、フラッシュメモリ制御回路MCNTを介してフラッシュメモリFLASHにアクセスし、システム全体の動作を制御する。フラッシュメモリFLASHは、CPUからの指示により動作するフラッシュメモリ制御回路MCNTからのアクセス要求に応じて、書き込み動作、読み出し動作および消去動作を実行する。特に限定されないが、フラッシュメモリFLASHは、4つのセクタSEC(SEC1−SEC4)を有している。
例えば、ROMは、CPUが実行するプログラムPGMを格納している。プログラムPGMは、図5から図10に示すデータ処理方法を実施するためのプログラムを含んでいる。なお、システムSYSが動作するとき、プログラムPGMをROMからRAMに転送し、RAM上のプログラムPGMをCPUにより実行してもよい。また、図5から図10に示すデータ処理方法の一部は、フラッシュメモリ制御回路MCNTにより実施されてもよい。さらに、フラッシュメモリFLASHをフラッシュメモリ制御回路MCNTを介することなくCPUに直接接続してもよい。このとき、システムSYSの最小構成は、CPUとフラッシュメモリFLASHであり、CPUが実行するプログラムは、例えば、CPUに内蔵されるROM領域に格納される。
図4は、図3に示したフラッシュメモリFLASHに格納されるデータDATAの例を示している。セクタSEC1−4の構成は同じため、セクタSEC1について説明する。また、図1と同じ要素については、詳細な説明は省略する。
セクタSEC1は、図1に示した記憶領域SAおよび付加領域AAに加えて、ヘッダHEAD、移行処理時のデータDATAの移行数mを記憶する領域および更新されていないデータDATAの数(未更新数n)を記憶する領域を有している。付加領域AAには、直前に無効にされたセクタSECにおいて更新されなかったデータDATAの識別子IDを示す非更新情報Di(iは識別子の番号)が格納される。なお、付加領域AAは図1に示す様に固定された個数が格納できてもよいが、未更新数nの個数だけ作成されてもよい。後者の場合、記憶領域SAの先頭アドレスは未更新数nから算出することができるため、記憶領域SAは問題なく扱える。移行数mおよび未更新数nについては、図5および図6で説明する。
例えば、ヘッダHEADには、そのセクタSECが有効か無効かを示す有効フラグ、データDATAの移行により消去が必要であることを示す消去必要フラグ、および消去が完了していることを示す消去完了フラグ等が格納される。例えば、有効フラグは2ビットを有し、2進数で”10”のときに有効状態を示し、”00”のときに無効状態を示し、”11”のときに消去状態を示す。有効状態の有効フラグは、そのセクタSECが使用中であることを示す。例えば、消去必要フラグは1ビットを有し、2進数で”1”のとき消去が不要なことを示し、”0”のとき消去が必要なことを示す。例えば、消去完了フラグは、1ビットを有し、2進数で”1”のとき消去が完了していることを示し、”0”のとき消去が完了していないことを示す。
図5は、図4に示したセクタSEC1にデータDATAを書き込む例を示している。図5において、空白で示した記憶領域SAは、消去状態であることを示している。図5に示した例は、他のセクタSEC(例えば、SEC4)満杯になり、他のセクタSECからセクタSEC1にデータDATAが移行され、セクタSEC1が有効になった後の動作を示している。
例えば、セクタSEC4からセクタSEC1にデータDATAが移行されたとき、識別子ID=3、1、6、4、2、5のデータDATAは、セクタSEC4が有効なときに更新されたデータである。したがって、図5(A)では、更新されていないデータDATAの数を示す未更新数nは”0”に設定され、非更新情報Diは付加領域AAに書き込まれていない。付加領域AAの”F”は、2進数の”1111”を示し、非更新情報Diが書き込まれていない消去状態を示す。なお、付加領域AAの各々は、5ビット以上が割り当てられてもよい。セクタSEC1が有効にされたときに、6つのデータDATAが格納されているため、移行処理時のデータDATAの移行数mは”6”に設定される。
次に、図5(B)に示すように、セクタSEC1に識別子ID=3のデータDATAが書き込まれる。新たなデータDATAは、空き領域のうち、最もアドレスが小さい記憶領域SAに、識別子IDとともに書き込まれる。すなわち、新たなデータDATAは、セクタSEC4から移行されてセクタSEC1に格納されたデータDATAの後に格納される。
新たなデータDATAがセクタSEC1に書き込まれるときに、同じ識別子IDを有するデータDATAが記憶領域SAに格納されているか否かを検索する。この例では、識別子ID=3のデータDATAが先頭の記憶領域SAに既に格納されている。このため、先頭の記憶領域SAの更新フラグRNFがNEWからOLDに変更される。なお、更新フラグRNFのNEWは、論理1(消去状態)で示される。このため、新たなデータDATAを空き領域に書き込むとき、更新フラグRNFにNEWを書き込む必要はない。
次に、図5(C)に示すように、識別子ID=10、3の新たなデータDATAが、空白の記憶領域SAに順次に書き込まれる。識別子ID=3のデータDATAは、記憶領域SAに既に存在する。このため、既に存在する識別子ID=3のデータDATAに対応する更新フラグRNFがOLDに変更される。この後、図5(D)に示すように、新たなデータDATAがアドレスの大きい側に順に書き込まれていく。
図6は、図4に示したセクタSEC1が満杯になった後に次のセクタSEC2にデータを移行する例を示している。図5(D)の状態からデータDATAが1つ書き込まれるとセクタSEC1は満杯になる。なお、実際には、各セクタSEC1−4は、例えば数百個の記憶領域SAを有している。
まず、セクタSEC1に格納されている移行数mだけ、先頭アドレスから順に更新フラグRNFが読み出される。次に、m個の更新フラグRNFのうち、NEWが格納されている更新フラグRNFに対応する識別子IDが、次のセクタSEC2の付加領域AAに非更新情報Diとして書き込まれる。このとき、付加領域AAに書き込んだ識別子IDの数(この例では”3”)は、新たな未更新数nとして次のセクタSEC2に書き込まれる。
また、セクタSEC1内でNEWが格納されている記憶領域SAの識別子IDとデータDATAとが、次のセクタSEC2の記憶領域SAに順に書き込まれる。セクタSEC2に書き込んだデータDATAの数(この例では”10”)が、新たな移行数mとしてセクタSEC2に書き込まれる。そして、セクタSEC1からセクタSEC2へのデータDATAの移行が完了する。
図7は、有効なセクタSEC2からデータDATAを読み出すときの検索方法の例を示している。なお、この例では、セクタSEC2の付加領域AAにおける3番目の非更新情報Di(識別子ID=2)は、新たなデータDATAが書き込まれたため”0”にクリアされている。”0”は識別子IDとして無効であることを示すが、以後誤って判定されないために意図して無効な識別子IDが書き込まれている。また、図7では、セクタSEC2が満杯状態になっているが、データDATAは、全ての記憶領域SAにデータDATAが格納されていなくても読み出し可能である。
まず、データDATAを読み出す前に、未更新数nの値が読み出される。読み出すデータDATAに対応する識別子IDが、付加領域AAに格納されたn個の非更新情報Diのいずれかと一致するとき、i番目の非更新情報Diが読み出される。そして、読み出した非更新情報Diにより示される識別子IDに対応するデータDATAが、アドレスの小さい側の記憶領域SAから読み出される(前方検索)。
具体的には、例えば、識別子ID=4は、付加領域AAの2番目の非更新情報Diとして格納されている。このため、識別子ID=4のデータDATAを読み出すとき、先頭から2番目の記憶領域SAに格納されているデータDATAが読み出される。一方、付加領域AAに格納されていない識別子IDに対応するデータDATAは、更新頻度が高いと判断され、アドレスの大きい記憶領域SAから検索して読み出される(後方検索)。
図8は、図6に示したセクタSEC2が満杯になった後に次のセクタSEC3にデータを移行する例を示している。セクタSEC2の状態は、図7と同じである。基本的な動作は、図6と同じである。
まず、移行数mに対応する数の更新フラグRNFのうち、NEWが格納されている更新フラグRNFに対応する識別子IDが、セクタSEC3の付加領域AAに非更新情報Diとして書き込まれる。新たな未更新数n(この例では”4”)が、セクタSEC3に書き込まれる。セクタSEC2内のNEWに対応する識別子IDとデータDATAとが、次に有効になるセクタSEC3の記憶領域SAに順に書き込まれる。新たな移行数m(この例では”10”)が、セクタSEC3に書き込まれる。そして、セクタSEC2からセクタSEC3へのデータDATAの移行が完了する。
図9は、図6および図8において、次のセクタSECにデータDATAを移行する手順の例を示している。図9に示した手順は、CPUが実行するプログラム、あるいは、フラッシュメモリ制御回路MCNTの動作により実現される。
まず、ステップS100において、アドレスを示すカウンタ値rの初期値が”1”に設定され、内部カウンタ値iおよび未更新数nの初期値が”0”にクリアされる。カウンタ値rは、図4等で上から下に向けて昇順に並ぶ記憶領域SAの位置(番号)を示している。
ステップS102において、カウンタ値rが最大値maxを超えているか否かが判定される。最大値maxは、最も大きいアドレスの値を示し、セクタSEC内で最もアドレスの大きい記憶領域SAを示す。カウンタ値rが最大値maxを超えているとき、すなわち、全ての記憶領域SAが検索されたとき、処理はステップS118に移行する。カウンタ値rが最大値max以下のとき、すなわち、検索されていない記憶領域SAがあるとき、処理はステップS104に移行する。
ステップS104において、r番目の記憶領域SAのデータDATAが更新されているかどうかが判定される。データDATAがNEWのとき処理はステップS106に移行する。データDATAがNEWでないとき、すなわちOLDのとき、処理はステップS116に移行する。
ステップS106において、内部カウンタ値iが”1”増加される。ステップS108において、カウンタ値rが移行数mを超えているか否かが判定される。カウンタ値rが移行数m以下のとき、対応するデータDATAが一度も更新されなかったと判断され、処理はステップS110に移行する。カウンタ値rが移行数mを超えているとき、対応するデータDATAが少なくとも1回更新されたと判断され、処理はステップS114に移行する。
ステップS110において、付加領域AAに格納される更新されなかったデータDATAの数を示す未更新数nが”1”増加される。次に、ステップS112において、次のセクタSECの付加領域AAにおいて、識別子IDの番号がi番目の非更新情報Diとして書き込まれる。
ステップS114において、次のセクタSECのi番目の記憶領域SAにデータDATAと識別子IDが書き込まれる。次に、ステップS116において、アドレスを示すカウンタ値rが”1”増加され、処理はステップS102に戻る。
一方、ステップS118において、全ての記憶領域SAが検索されたとき、求められた未更新数nが、次のセクタSECに書き込まれる。次に、ステップS120において、現在有効なセクタSECから次に有効になるセクタSECへのデータDATAの移行数mを示すカウンタ値i(すなわち、NEWを示すデータDATAの数)が、次のセクタSECに書き込まれる。そして、図6および図8に示したように、次のセクタSECへのデータの移行が完了する。
図10は、図7において、有効なセクタSECからデータDATAを読み出すときの検索方法の手順の例を示している。図10に示した手順は、CPUが実行するプログラム、あるいは、フラッシュメモリ制御回路MCNTの動作により実現される。
まず、ステップS200において、読み出すデータDATAの識別子IDが認識される。次に、ステップS202において、セクタSECから未更新数nが読み出される。次に、ステップS204において、内部カウンタ値iが”1”に設定される。
ステップS206において、内部カウンタ値iが未更新数nを超えているか否かが判定される。内部カウンタ値iが未更新数nを超えているとき、すなわち、読み出すデータDATAの更新頻度が高いと判定されたとき、図7に示した後方検索をするために、処理はステップS212に移行する。内部カウンタ値iが未更新数n以下のとき、すなわち、読み出すデータDATAの更新頻度が低い可能性があるとき、処理はステップS208に移行する。
ステップS208において、識別子IDが、i番目の非更新情報Diとして付加領域AAに格納されているか否かが判定される。識別子IDがi番目の非更新情報Diとして格納されているとき、すなわち、識別子IDのデータDATAの更新頻度が低いことが判明したとき、処理はステップS220に移行する。識別子IDがi番目の非更新情報Diとして格納されていないとき、処理はステップS210に移行する。ステップS210において、内部カウンタ値iが”1”増加され、処理はステップS206に戻る。
一方、ステップS212において、後方検索をするために、内部カウンタ値iが最大値maxに設定される。最大値maxは、最も大きいアドレスの値を示し、セクタSEC内で最もアドレスの大きい記憶領域SAを示す。次に、ステップS214において、i番目の識別子IDが読み出される。次に、ステップS216において、読み出すデータDATAの識別子IDがi番目の識別子IDと一致するか否かが判定される。読み出すデータDATAの識別子IDがi番目の識別子IDと一致するとき、処理はステップS220に移行する。読み出すデータDATAの識別子IDがi番目の識別子IDと異なるとき、処理はステップS218に移行する。
ステップS218において、次の後方検索を実施するために、アドレスを示す内部カウンタ値iが”1”減少され、処理はステップS214に戻る。ステップS220において、セクタSEC内での読み出すデータDATAの位置が判明したため、i番目のデータDATAが読み出される。そして、読み出し処理が完了する。
以下に、データDATAの読み出し処理における検索効率について考察する。まず、前提条件を示す。
(1)全ての識別子IDの数は50個とし、更新頻度の低い識別子IDの数(すなわち、付加領域AAに格納された識別子IDの数)は10個とする。
(2)セクタSECに格納されている検索対象のデータDATAの数は100個とする。
(3)更新頻度の低くないデータDATA(すなわち、付加領域AAに格納されていない識別子IDに対応するデータDATA)を読み出すときの検索回数の平均は20.5回とする。ここで、更新頻度の低くないデータDATAは、アドレスが最も大きい側の40個の記憶領域SAに格納されていると仮定する。このとき、データDATAの最小検索回数は1回であり、最大検索回数は40回であり、その平均は20.5回である。
上記の前提条件より、更新頻度の低いデータDATAの最小検索回数は1回であり、最大検索回数は10回であり、その平均は5.5回である。このため、更新頻度の低いデータDATA(すなわち、付加領域AAに格納された識別子IDに対応するデータDATA)が読み出される確率をP(%)とすると、データDATAを読み出すときの平均検索回数は、式(1)で示される。
5.5×P/100+20.5×(100-P)/100=20.5−(15×P)/100 ‥‥(1)
式(1)では、例えば、P=10%のとき、平均検索回数は19回になり、P=20%のとき、平均検索回数は17.5回になる。
これに対して、更新頻度の低いデータDATAを後方検索のみにより検索するとき、最小検索回数は91回であり、最大検索回数は100回であり、その平均は95.5回である。このため、後方検索のみによりデータDATAを読み出すときの検索するときの平均検索回数は、式(2)で示される。
95.5×P/100+20.5×(100-P)/100=20.5+(75×P)/100 ‥‥(2)
式(2)では、例えば、P=10%のとき、平均検索回数は28回になり、P=20%のとき、平均検索回数は35.5回になる。したがって、本実施形態を適用することにより、後方検索のみを使用するときに比べて、平均検索回数を約32%(P=10%)または約51%(P=20%)削減できる。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、ヘッダHEADに有効フラグ、消去必要フラグ、消去完了フラグを設けることで、有効なデータDATAが記憶されている有効なセクタSECを容易に検出できる。
なお、上述した実施形態では、有効なセクタSECから次のセクタSECにデータDATAを移行するときに、NEWを示すデータDATAを次のセクタSECに順にコピーする例について述べた。しかしながら、データDATAを次のセクタSECにコピーするときに、識別子IDを番号順に並び替え、識別子IDが昇順または降順にされたデータDATAを次のセクタに順に書き込んでもよい。これにより、読み出すデータDATAを検索するときに、検索する領域を段階的に2つに分けながら検索するバイナリサーチを実施できる。この結果、読み出すデータDATAの検索回数をさらに削減できる。具体的には、上述した前提条件において、更新頻度の低いデータDATAの検索回数の平均を3.6回にできる。これを式(1)に当てはめると、P=20%のとき、平均検索回数は17.1回になる。
上述した実施形態は、フラッシュメモリFLASHに格納されるデータDATAのデータ処理方法について説明した。しかし、上述した実施形態は、データの書き込みを所定のサイズの記憶領域毎に行い、データの消去を複数の記憶領域で一括して行う他の不揮発性半導体メモリに適用してもよい。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
複数のセクタを有するフラッシュメモリにおけるデータ処理方法において、
前記複数のセクタは少なくとも第1セクタと第2セクタを含み、
前記フラッシュメモリを制御するフラッシュメモリ制御回路は、前記第1セクタのデータを前記第2セクタに移行するとき、前記第1セクタにおいて更新されなかったデータを前記第2セクタの先頭から配置するとともに、前記更新されなかったデータの識別子を前記第2セクタに付加すること
を特徴とするデータ処理方法。
(付記2)
前記第2セクタに格納された前記第1セクタで更新されなかったデータの後に、前記第1セクタで更新されたデータが格納されること
を特徴とする付記1に記載のデータ処理方法。
(付記3)
前記フラッシュメモリ制御回路は、前記更新されなかったデータのデータ数を前記第2セクタに付加すること
を特徴とする付記1または付記2に記載のデータ処理方法。
(付記4)
前記フラッシュメモリからデータを読み出すとき、
読み出すデータの識別子と前記更新されなかったデータの識別子とを比較し、
前記読み出すデータの識別子が前記更新されなかったデータの識別子に一致するとき、前記読み出すデータの検索は前記第2セクタの前方から行われること
を特徴とする付記1乃至付記3の何れか一に記載のデータ処理方法。
(付記5)
前記フラッシュメモリからデータを読み出すとき、
読み出すデータの識別子と前記更新されなかったデータの識別子とを比較し、
前記読み出すデータの識別子が前記更新されなかったデータの識別子に一致しないとき、前記読み出すデータの検索は前記第2セクタの後方から行われること
を特徴とする付記1乃至付記4の何れか一に記載のデータ処理方法。
(付記6)
前記第1セクタには消去のフラグが設定され、
前記第2セクタには使用中であることを示すフラグが設定されること
を特徴とする付記1乃至付記5の何れか一に記載のデータ処理方法。
(付記7)
前記フラッシュメモリ制御回路は、前記更新されなかったデータの識別子を前記第2セクタに付加すること
を特徴とする付記1乃至付記3の何れか一に記載のデータ処理方法。
(付記8)
前記更新されなかったデータが更新された場合には前記付加されたデータの識別子は無効化されること
を特徴とする付記7に記載のデータ処理方法。
(付記9)
コンピュータによって実行されるとともに前記コンピュータが読み取り可能な記録媒体に格納されるプログラムにおいて、
第1セクタと第2セクタとを有するフラッシュメモリに読み出すデータの識別子が供給され、
前記読み出すデータの識別子と前記第1セクタで更新されなかったデータの識別子と比較し、
前記識別子が一致するときは、前記読み出すデータを前記第2セクタの前方から検索し、
前記識別子が一致しないときは、前記読み出すデータを前記第2セクタの後方ら検索すること
を特徴とするプログラム。
(付記10)
前記第1セクタで更新されなかったデータは、前記第2セクタに付加されること
を特徴とする付記9に記載のプログラム。
(付記11)
前記第1セクタのデータを前記第2セクタに移行するときに、前記第1セクタで更新されなかったデータが前記第2セクタの前方から前記第2セクタに格納されること
を特徴とする付記9または付記10に記載のプログラム。
(付記12)
前記第2セクタに格納された前記第1セクタで更新されなかったデータの後に、前記第1セクタで更新されたデータが格納されること
を特徴とする付記11に記載のプログラム。
(付記13)
前記第1セクタにおいて更新されなかったデータの識別子を前記第2セクタに付加し、
前記第2セクタにおいて前記更新されなかったデータが更新されたときは前記付加されたデータの識別子を無効化すること
を特徴とする付記9乃至付記12の何れか一に記載のプログラム。
(付記14)
CPUと、
少なくとも第1セクタと第2セクタとを含むフラッシュメモリと、
前記CPUによって制御されるフラッシュメモリ制御回路と
を含み、
前記フラッシュメモリ制御回路は、
前記CPUからのデータ読み出しの指示に基づいて、
前記読み出すデータの識別子と前記第1セクタで更新されなかったデータの識別子と比較し、
前記識別子が一致するときは、前記読み出すデータを前記第2セクタの前方から検索し、
前記識別子が一致しないときは、前記読み出すデータを前記第2セクタの後方ら検索すること
を特徴とするシステム。
(付記15)
前記フラッシュメモリ制御回路は
前記第1セクタのデータを前記第2セクタに移行するときに、前記第1セクタで更新されなかったデータを前記第2セクタの前方から前記第2セクタに格納すること
を特徴とする付記14に記載のシステム。
(付記16)
前記フラッシュメモリ制御回路は、
前記第2セクタに格納された前記第1セクタで更新されなかったデータの後に、前記第1セクタで更新されたデータを格納すること
を特徴とする付記15に記載のシステム。
(付記17)
前記第1セクタは、前記CPUからの消去に指示に基づいて消去される状態にあること
を特徴とする付記14乃至付記16の何れか一に記載のシステム。
(付記18)
前記フラッシュメモリ制御回路は、
前記第1セクタにおいて更新されなかったデータの識別子を前記第2セクタに付加し、
前記第2セクタにおいて前記更新されなかったデータが更新されたときは前記付加されたデータの識別子を無効化すること
を特徴とする付記14乃至付記18の何れか一に記載のシステム。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
AA‥付加領域;DATA‥データ;FLASH‥フラッシュメモリ;HEAD‥ヘッダ;ID‥識別子;m‥移行数;MCNT‥フラッシュメモリ制御回路;n‥未更新数;PGM‥プログラム;RNF‥更新フラグ;SA‥記憶領域;SEC‥セクタ;SYS‥システム

Claims (10)

  1. 複数のセクタを有するフラッシュメモリにおけるデータ処理方法において、
    前記複数のセクタは少なくとも第1セクタと第2セクタを含み、
    前記フラッシュメモリを制御するフラッシュメモリ制御回路は、前記第1セクタのデータを前記第2セクタに移行するとき、前記第1セクタにおいて更新されなかったデータを前記第2セクタの先頭から配置するとともに、前記更新されなかったデータの識別子を前記第2セクタに付加すること
    を特徴とするデータ処理方法。
  2. 前記第2セクタに格納された前記第1セクタで更新されなかったデータの後に、前記第1セクタで更新されたデータが格納されること
    を特徴とする請求項1に記載のデータ処理方法。
  3. 前記フラッシュメモリ制御回路は、前記更新されなかったデータのデータ数を前記第2セクタに付加すること
    を特徴とする請求項1または請求項2に記載のデータ処理方法。
  4. 前記フラッシュメモリ制御回路は、前記更新されなかったデータの識別子を前記第2セクタに付加すること
    を特徴とする請求項1乃至請求項3の何れか一に記載のデータ処理方法。
  5. 前記更新されなかったデータが更新された場合には前記付加されたデータの識別子は無効化されること
    を特徴とする請求項4に記載のデータ処理方法。
  6. コンピュータによって実行されるとともに前記コンピュータが読み取り可能な記録媒体に格納されるプログラムにおいて、
    第1セクタと第2セクタとを有するフラッシュメモリに読み出すデータの識別子が供給され、
    前記第1セクタから前記第2セクタにデータが移行される際、前記第1セクタにおいて更新されなかったデータが前記第2セクタの先頭から格納されるとともに、前記更新されなかったデータの識別子が前記第2セクタに付加されている場合に、
    前記読み出すデータの識別子と、前記第2セクタに格納された前記第1セクタで更新されなかったデータの識別子と、を比較し、
    前記識別子が一致するときは、前記読み出すデータを前記第2セクタの前方から検索し、
    前記識別子が一致しないときは、前記読み出すデータを前記第2セクタの後方ら検索すること
    を特徴とするプログラム。
  7. 前記第1セクタにおいて更新されなかったデータの識別子を前記第2セクタに付加し、
    前記第2セクタにおいて前記更新されなかったデータが更新されたときは前記付加されたデータの識別子を無効化すること
    を特徴とする請求項6に記載のプログラム。
  8. CPUと、
    少なくとも第1セクタと第2セクタとを含むフラッシュメモリと、
    前記CPUによって制御されるフラッシュメモリ制御回路と
    を含み、
    前記第1セクタから前記第2セクタにデータが移行される際、前記第1セクタにおいて更新されなかったデータが前記第2セクタの先頭から格納されるとともに、前記更新されなかったデータの識別子が前記第2セクタに付加されている場合に、
    前記フラッシュメモリ制御回路は、
    前記CPUからのデータ読み出しの指示に基づいて、
    前記読み出すデータの識別子と、前記第2セクタに格納された前記第1セクタで更新されなかったデータの識別子と、を比較し、
    前記識別子が一致するときは、前記読み出すデータを前記第2セクタの前方から検索し、
    前記識別子が一致しないときは、前記読み出すデータを前記第2セクタの後方ら検索すること
    を特徴とするシステム。
  9. 前記フラッシュメモリ制御回路は
    前記第1セクタのデータを前記第2セクタに移行するときに、前記第1セクタで更新さ
    れなかったデータを前記第2セクタの先頭から前記第2セクタに格納すること
    を特徴とする請求項8に記載のシステム。
  10. 前記フラッシュメモリ制御回路は、
    前記第1セクタにおいて更新されなかったデータの識別子を前記第2セクタに付加し、
    前記第2セクタにおいて前記更新されなかったデータが更新されたときは前記付加されたデータの識別子を無効化すること
    を特徴とする請求項8または請求項9に記載のシステム。
JP2010068110A 2010-03-24 2010-03-24 データ処理方法、プログラムおよびシステム Active JP5520098B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010068110A JP5520098B2 (ja) 2010-03-24 2010-03-24 データ処理方法、プログラムおよびシステム
US13/039,839 US8868822B2 (en) 2010-03-24 2011-03-03 Data-processing method, program, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010068110A JP5520098B2 (ja) 2010-03-24 2010-03-24 データ処理方法、プログラムおよびシステム

Publications (2)

Publication Number Publication Date
JP2011203809A JP2011203809A (ja) 2011-10-13
JP5520098B2 true JP5520098B2 (ja) 2014-06-11

Family

ID=44657645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010068110A Active JP5520098B2 (ja) 2010-03-24 2010-03-24 データ処理方法、プログラムおよびシステム

Country Status (2)

Country Link
US (1) US8868822B2 (ja)
JP (1) JP5520098B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5962140B2 (ja) * 2012-03-30 2016-08-03 富士通株式会社 プログラム、制御方法、制御装置およびシステム
JP6969103B2 (ja) 2017-01-19 2021-11-24 株式会社デンソー 電子制御装置
US10782970B1 (en) * 2019-09-17 2020-09-22 Red Hat, Inc. Scalable multi-producer and single-consumer progressive chunked queue
US11960933B2 (en) * 2020-04-30 2024-04-16 Red Hat, Inc. Versioned progressive chunked queue for a scalable multi-producer and multi-consumer queue

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3183993B2 (ja) * 1993-03-31 2001-07-09 株式会社東芝 ディスク制御システム
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
JPH11328982A (ja) * 1998-03-19 1999-11-30 Fuji Electric Co Ltd フラッシュメモリのデ―タ管理方式
JP3212960B2 (ja) * 1999-02-04 2001-09-25 埼玉日本電気株式会社 フラッシュメモリを利用したデータ管理方法
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
JP2004310268A (ja) 2003-04-03 2004-11-04 Nec Micro Systems Ltd フラッシュメモリ内蔵の半導体装置、フラッシュメモリの制御方法およびそのプログラム
US7752381B2 (en) * 2005-05-24 2010-07-06 Micron Technology, Inc. Version based non-volatile memory translation layer
JP4468342B2 (ja) 2006-10-16 2010-05-26 Nttエレクトロニクス株式会社 データ管理方法
DE102006059626A1 (de) * 2006-12-14 2008-06-19 Robert Bosch Gmbh Verfahren zum Auslesen von Daten aus einem Speichermedium
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법

Also Published As

Publication number Publication date
US20110238896A1 (en) 2011-09-29
US8868822B2 (en) 2014-10-21
JP2011203809A (ja) 2011-10-13

Similar Documents

Publication Publication Date Title
US10949092B2 (en) Memory system with block rearrangement to secure a free block based on read valid first and second data
JP3692313B2 (ja) 不揮発性メモリの制御方法
US6571326B2 (en) Space allocation for data in a nonvolatile memory
KR100562906B1 (ko) 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
JP4643667B2 (ja) メモリシステム
US8171254B2 (en) Memory controller and memory control method
US8949515B2 (en) Storage device and memory controller
EP1632858A2 (en) Semiconductor memory device and access method and memory control system for same
US20080016267A1 (en) Memory controller, flash memory system having memory controller, and method for controlling flash memory
TW201346547A (zh) 用來管理一記憶裝置之方法以及其相關之記憶裝置與控制器
US7664906B2 (en) Flash memory access apparatus and method
JP4748708B2 (ja) 半導体装置
US8185687B2 (en) Semiconductor storage device and method of controlling semiconductor storage device
JP5520098B2 (ja) データ処理方法、プログラムおよびシステム
JP2000020252A (ja) 不揮発性半導体メモリを用いた記憶装置
JP4242245B2 (ja) フラッシュrom制御装置
US8898423B1 (en) High performance caching architecture for data storage systems
KR20020092261A (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
US9304906B2 (en) Memory system, controller and control method of memory
KR101826778B1 (ko) 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법
US10990323B2 (en) Flash memory controller, memory device and method for accessing flash memory module
JP6618941B2 (ja) 管理装置、情報処理装置および管理方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
WO2022116067A1 (zh) 闪存的数据处理方法和数据处理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121129

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140404

R150 Certificate of patent or registration of utility model

Ref document number: 5520098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250