JP7153435B2 - 不揮発性メモリのデータ書換方法及び半導体装置 - Google Patents

不揮発性メモリのデータ書換方法及び半導体装置 Download PDF

Info

Publication number
JP7153435B2
JP7153435B2 JP2017198586A JP2017198586A JP7153435B2 JP 7153435 B2 JP7153435 B2 JP 7153435B2 JP 2017198586 A JP2017198586 A JP 2017198586A JP 2017198586 A JP2017198586 A JP 2017198586A JP 7153435 B2 JP7153435 B2 JP 7153435B2
Authority
JP
Japan
Prior art keywords
data
block
temporary storage
storage block
write
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
JP2017198586A
Other languages
English (en)
Other versions
JP2019074797A (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.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor Co Ltd
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 Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2017198586A priority Critical patent/JP7153435B2/ja
Priority to US16/158,250 priority patent/US10559359B2/en
Priority to CN201811189073.4A priority patent/CN109656835B/zh
Publication of JP2019074797A publication Critical patent/JP2019074797A/ja
Application granted granted Critical
Publication of JP7153435B2 publication Critical patent/JP7153435B2/ja
Active 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
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Computer Hardware Design (AREA)

Description

本発明は、メモリ、特に不揮発性メモリに書き込まれているデータの書き換えを行うデータ書換方法、及び不揮発性メモリを含む半導体装置に関する。
不揮発性の半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと称する)は、ページ単位でデータの書込及び読出を行い、複数ページからなるブロック単位でデータの消去を行う。
NANDメモリでは、データ書込済みのページにデータを上書きすることはできないので、例えば以下のようにデータの書き換えを行っている(例えば、特許文献1参照)。
すなわち、先ず、書込用データを、データが書き込まれていない空きブロックに書き込む。次に、アドレスで指定された書込先のブロック内から、データの書換対象とはなっていない全てのデータを読み出し、これを上記したように書込用データが書き込まれた空きブロックに書き込む。そして、このブロックを外部からアクセス可能なブロックとして設定すると共に、上記した書込先のブロックのデータを消去することによって空きブロックを確保する。
特開2009-134682号
このように、上記したデータ書き込み方法では、データの消去単位であるブロック単位でデータの書き換えを行っている。
よって、書込用データのデータ容量がブロックの記憶容量よりも小さいと、上記したように、書込先のブロックからデータの書換対象とはなっていない全てのデータを読み出し、これを空きブロックに書き込むというコピー処理が必要となる。したがって、データの書き換え処理に時間が掛かるという問題が生じた。
そこで、本発明は、データの書き換え時間を短縮することが可能な不揮発性メモリのデータ書換方法及び半導体装置を提供することを目的とする。
本発明に係る不揮発性メモリのデータ書換方法は、夫々が複数のページを含む複数のブロックを有する不揮発性メモリのデータ書換方法であって、書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに含まれている少なくとも1のページに前記書込用データを書き込むデータ書込ステップと、前記書込先のブロックの前記論理アドレスにインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレス及び前記一時保管ブロックの前記複数のページ各々がデータ書き込み可能であるのかを示すページ有効情報に対応付けして表す管理テーブルを生成する管理ステップと、を有し、前記データ書込ステップでは、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込む。
又、本発明に係る半導体装置は、夫々が複数のページを含む複数のブロックを有する不揮発性メモリを含む半導体装置であって、書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに含まれている少なくとも1のページに前記書込用データを書き込むデータ書込制御部と、前記書込先のブロックの論理アドレスにインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレス及び前記一時保管ブロックの前記複数のページ各々がデータ書き込み可能であるのかを示すページ有効情報に対応付けして表す管理テーブルを生成する管理制御部と、を有し、前記データ書込制御部は、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込む。
本発明は、論理アドレスによって指定された書込先のブロックに書き込まれているデータを書き換えるにあたり、データ未書込の空きブロックを一時保管ブロックとし、この一時保管ブロックに書込用データを書き込む。更に、書込先のブロックと一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、このインデックス番号を、一時保管ブロックの物理アドレスに対応付けして表す管理テーブルを生成する。
これにより、ブロック内の一部のデータ片のみが書き換えられた場合にも、管理テーブルからインデックス番号を参照することにより、書き換え後のデータ片を読み出すことが可能となる。
よって、ブロック内の一部のデータ片を書き換えるにあたり、データ書込先のブロックに書き込まれている上記データ片以外のデータを一時保管ブロックへコピーし、この一時保管ブロックを外部アクセス可能な状態に設定するという一連の処理が必要となる従来のデータ書き換え方法に比べて、データの書き換え時間を短縮することが可能になる。
また、複数のブロックがデータの書換対象となる場合には複数の一時保管ブロックが管理対象となるが、本発明では、インデックス番号により、複数の一時保管ブロックのうちからアクセス対象となった一時保管ブロックを示す物理アドレスを取得できる。
よって、複数の一時保管ブロックに対して1つずつアクセス対象であるか否かの判定を行ってアクセス対象に該当する一時保管ブロックを検索する場合に比べて、迅速にアクセス対象の一時保管ブロックを表す物理アドレスを取得することが可能となる。
ホスト装置10と、本発明に係る半導体装置としての不揮発性メモリ20と、を有する情報処理システム100の構成を示すブロック図である。 フラッシュメモリ部24の記憶領域の区分を模式的に表す図である。 アドレス変換テーブルTB1の一例を表す図である。 一時保管ブロック管理テーブルTB2の一例を表す図である。 データ書き換え処理の手順を表すフローチャートを示す図である。 データ書き換え処理の手順を表すフローチャートを示す図である。 データ書き換え直前の段階でのフラッシュメモリ部24の状態の一例を表す図である。 データ書き換え処理による第2の段階でのフラッシュメモリ部24の状態の一例を表す図である。 データ書き換え処理による第3の段階でのフラッシュメモリ部24の状態の一例を表す図である。 データ書き換え処理による第4の段階でのフラッシュメモリ部24の状態の一例を表す図である。 データ書き換え処理による第5の段階でのフラッシュメモリ部24の状態の一例を表す図である。 データ書き換え処理による第6の段階でのフラッシュメモリ部24の状態の一例を表す図である。 空きブロックが残り2つである場合におけるフラッシュメモリ部24の状態の一例を表す図である。 空きブロックが残り1つである場合におけるフラッシュメモリ部24の状態の一例を表す図である。 空きブロックが残り1つだけとなった場合に実施される登録動作及び空きブロックの確保動作とフラッシュメモリ部24の状態とを表す図である。
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
図1は、ホスト装置10と、本発明に係る半導体装置としての不揮発性メモリ20と、を有する情報処理システム100の構成を示すブロック図である。
ホスト装置10は、不揮発性メモリ20に記憶されているデータに基づく情報処理を行う。また、ホスト装置10は、書込命令、書込先を表すアドレス及び書込用のデータ、或いは、読出命令及びアドレスを、不揮発性メモリ20に供給する。
不揮発性メモリ20は、ホストインターフェース部(以下、ホストIF部と称する)21、内部バス22、RAM(Random Access Memory)23、フラッシュメモリ部24、及びメモリ制御部25を有する。
ホストIF部21は、ホスト装置10から供給された書込命令、書込先を表すアドレス及び書込用のデータ、或いは、読出命令及び読出用のアドレスを内部バス22に供給する。また、ホストIF部21は、フラッシュメモリ部24から読み出された読出データをホスト装置10に供給する。
RAM23は、ホスト装置10から供給された書込用のデータ、フラッシュメモリ部24から読み出された読出データ、並びにフラッシュメモリ部24に格納されている管理情報を記憶する。
フラッシュメモリ部24は、例えばNAND型の不揮発性の半導体メモリである。
図2は、フラッシュメモリ部24の記憶領域の区分を模式的に表す図である。図2に示すように、フラッシュメモリ部24の記憶領域は、データが書き込まれるデータ領域DAと、管理情報が記憶される管理領域MAと、を含む。
データ領域DAは、図2に示すように、物理アドレス「0」~「(n-1)」(nは2以上の整数)にて示されるn個のブロックB1~Bnに区分けされている。
管理領域MAには、アドレス変換テーブルTB1と、一時保管ブロック管理テーブルTB2と、が記憶される。
図3は、アドレス変換テーブルTB1の内容の一例を表す図である。図3に示すように、アドレス変換テーブルTB1には、ホスト装置10が扱うアドレスである論理アドレスに対応付けして、フラッシュメモリ部24のブロックを表す物理アドレスが記述されている。尚、アドレス変換テーブルTB1には、物理アドレス「0」~「(n-1)」のうちで、データ書き込み済みのブロックを表す物理アドレスが記述される。
更に、アドレス変換テーブルTB1には、データ書き込み済みブロックを表す物理アドレスに対応付けして、インデックス番号が記述される。インデックス番号とは、データ書き込み済みブロックのうちのデータ書換中のブロックと、このデータ書換中のブロックの代わりに書込用データが書き込まれる一時保管ブロックと、の一対を識別する為の番号である。ただし、データ書換中ではないブロックに対しては、一律に初期値(例えば0)を有するインデックス番号が記述される。
例えば、アドレス変換テーブルTB1には、データ書き込み済み又はデータの書き換えが完了したブロックであり、且つ現時点でデータの書換え中ではないブロックを表す物理アドレスに対応付けして、インデックス番号として例えば「0」が記述される。また、データ書換中のブロックを表す物理アドレスに対応付けして、ブロック毎に異なる「1」以上の番号を有するインデックス番号が記述される。
図4は、一時保管ブロック管理テーブルTB2の内容の一例を表す図である。
図4に示すように、一時保管ブロック管理テーブルTB2には、上記した一時保管ブロックを表す物理アドレスと、この一時保管ブロックに対応した上記インデックス番号と、ページ有効情報と、経過情報とが記述される。
尚、一時保管ブロック管理テーブルTB2には、アドレス変換テーブルTB1に記述されているインデックス番号のうちで最大のインデックス番号に「1」を加えたインデックス番号k(kは整数)が記述される。このインデックス番号kは、次に使用するインデックス番号を表すものであり、当該インデックス番号kに対応した物理アドレスとして、未使用のアドレスである例えば「0xFFFF」が記述される。
図4に示すページ有効情報とは、物理アドレスにて示されるブロック内のページ毎に、そのページが、現時点でデータが書込まれていないためデータが更新されておらず、新たなデータ書き込みが可能な「有効ページ」であるのか、或いはデータが書き込まれたためにデータ更新されており、それ故に新たなデータの書き込みができない「無効ページ」であるのかを各ビット桁の論理レベルで表す情報である。
図4には、各ブロックが3つのページ(ページP1~P3と称する)からなり、且つ「有効ページ」は論理レベル0で表され、「無効ページ」は論理レベル1で表されるものとして、ページ有効情報の一例が示されている。
例えば、図4において、物理アドレス「0」にて示されるブロックB1に対応したページ有効情報は3ビットの[110]である。つまり、当該ページ有効情報の第1ビットは、ブロックB1に含まれるページP1がデータ書込み済みのため、「無効ページ」であることを表す論理レベル1である。また、このページ有効情報の第2ビットは、ブロックB1に含まれるページP2がデータ書込み済みのため、「無効ページ」であることを表す論理レベル1である。更に、このページ有効情報の第3ビットは、ブロックB1に含まれるページP3がデータ更新されていない、「有効ページ」であることを表す論理レベル0である。
図4に示される経過情報とは、インデックス番号毎に、そのインデックス番号に対応したブロックへのデータ書込の後に他のブロックで実施されたデータ書込の回数を表す情報である。
尚、上記したアドレス変換テーブルTB1及び一時保管ブロック管理テーブルTB2を表す管理情報は、電源投入に応じてフラッシュメモリ部24の管理領域MAから読み出され、RAM23に記憶される。そして、メモリ制御部25は、当該RAM23に記憶された管理情報(TB1、TB2)に対して以下の更新又は追記等の処理を施し、最終的に得られた管理情報を、例えば装置のシステムオフのような電源遮断時や装置がスリープ状態となるタイミング、或いは一連の書込み動作が終了したタイミングでフラッシュメモリ部24の管理領域MAに書き込む。
メモリ制御部25は、ホスト装置10から供給された読出命令及び読出用の論理アドレスに応じて、その論理アドレスに対応したデータをページ単位でフラッシュメモリ部24から読み出し、これを内部バス22を介してホストIF部21に供給する。
また、メモリ制御部25は、ホスト装置10から供給された書込命令、書込用のデータ及び書込先のブロックを示す論理アドレスに応じて、当該書込用のデータをフラッシュメモリ部24に書き込む。
すなわち、メモリ制御部25は、書込先のブロックを示す論理アドレスがアドレス変換テーブルTB1に記述されていない場合には、書込用のデータを、フラッシュメモリ部24のデータ未書込のブロック(以下、空きブロックと称する)に書き込む。
一方、この当該論理アドレスがアドレス変換テーブルTB1に記述されている場合には、メモリ制御部25は、以下のようなデータ書き換え処理を実行することにより、データの書換を行う。
図5及び図6は、かかるデータ書き換え処理の手順を表すフローチャートである。
図5において、先ず、メモリ制御部25は、アドレス変換テーブルTB1から、書込先のブロックを示す論理アドレスに対応したインデックス番号を取り込み、このインデックス番号が「0」であるか否かを判定する(ステップS10)。尚、前述したように、インデックス番号が「0」である場合には、このインデックス番号に対応した物理アドレスは、データの書換中ではないブロックを表す。一方、インデックス番号が「0」以外である場合には、このインデックス番号に対応した物理アドレスは、データ書換中のブロックを表す。
ステップS10において、インデックス番号が「0」であると判定されると、メモリ制御部25は、フラッシュメモリ部24の空きブロックのうちの1つを一時保管ブロックとし、この一時保管ブロックに、書込用のデータを書き込む(ステップS11)。
上記したステップS11の実行後、メモリ制御部25は、一時保管ブロックに関する管理情報(TB1、TB2)の更新を行う(ステップS12)。
例えば、ステップS12において、メモリ制御部25は、アドレス変換テーブルTB1における、書込先のブロックを示す論理アドレスに対応したインデックス番号を「0」以外の番号に書き換える。尚、「0」以外の番号とは、例えば、現時点でアドレス変換テーブルTB1に記述されているインデックス番号のうちで最大の番号に「1」を加えた番号である。更に、メモリ制御部25は、この書き換え後のインデックス番号と、上記した一時保管ブロックに対応した物理アドレスと、ページ有効情報と、経過情報とを対応付けして、一時保管ブロック管理テーブルTB2に追記する。
尚、上記したページ有効情報としては、この一時保管ブロック内において書込用のデータが書き込まれたページに対応したビット桁を論理レベル1、それ以外のページに対応した各ビット桁を論理レベル0にする。経過情報については、ステップS12で書き換えられたインデックス番号に対応した数値を「1」にする。更に、当該ステップS12にて書き換えられたインデックス番号以外のインデックス番号に対応した経過情報の数値を「1」だけ増加する。未使用のインデックス番号に対応した経過情報の数値は初期値「0」のままとする。
一方、ステップS10において、インデックス番号が「0」ではないと判定されると、メモリ制御部25は、一時保管ブロック管理テーブルTB2から当該インデックス番号に対応した物理アドレスを取り込む。そして、メモリ制御部25は、当該インデックス番号に対応した物理アドレスによって表されるブロック、つまり一時保管ブロックに書込用のデータを書き込む(ステップS13)。
かかるステップS13の実行後、メモリ制御部25は、一時保管ブロックに関する管理情報(TB2)の更新を行う(ステップS14)。
例えば、ステップS14において、メモリ制御部25は、一時保管ブロック管理テーブルTB2の上記インデックス番号に対応したページ有効情報を更新する。つまり、ページ有効情報を表すビット群のうちで、ステップS13にて書込用のデータが書き込まれたページに対応したビット桁を、論理レベル1に書き換える。また、経過情報については、ステップS11で書込用のデータが書き込まれた一時保管ブロックに対応したインデックス番号に対応した数値を「1」にする。更に、上記ステップS11で書込用のデータが書き込まれた一時保管ブロックに対応したインデックス番号以外のインデックス番号に対応した経過情報の数値を「1」だけ増加する。
このように、メモリ制御部25は、上記したステップS12及びS14において、書込先のブロックと一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当てる。そして、メモリ制御部25は、このインデックス番号を一時保管ブロックのフラッシュメモリ部24内での位置を表す物理アドレスに対応付けして表す管理テーブル(TB1、TB2)を生成する。
上記したステップS14の実行後、メモリ制御部25は、一時保管ブロック管理テーブルTB2に記述されているページ有効情報に基づき、この一時保管ブロックに、1ブロック分(全ページ)のデータの書込が完了したか否かを判定する(ステップS15)。つまり、メモリ制御部25は、ページ有効情報によって表される全ビットが論理レベル1であるか否かを判定し、全ビットが論理レベル1である場合に1ブロック分(全ページ)のデータの書込が完了したと判定する。
ステップS15において、一時保管ブロックに対して1ブロック分の書込が完了したと判定された場合、メモリ制御部25は、空きブロックを確保する為の管理情報(TB1、TB2)更新を行う(ステップS16)。
例えば、ステップS16では、メモリ制御部25は、アドレス変換テーブルTB1において、上記した書込先のブロックを示す論理アドレスに対応した物理アドレスを、一時保管ブロックの物理アドレスに書き換えると共に、インデックス番号を「0」に書き換える。また、メモリ制御部25は、一時保管ブロック管理テーブルTB2における書き換え前のインデックス番号に対応した物理アドレス、つまり一時保管ブロックと対を為す書込先のブロックを示す物理アドレスを、未使用のアドレス[0xFFFF]に書き換える。更に、メモリ制御部25は、一時保管ブロック管理テーブルTB2における、書き換え前のインデックス番号に対応したページ有効情報を、全ページをデータ書き込み有効とするように書き換える。
すなわち、メモリ制御部25は、一時保管ブロックに1ブロック分(全ページ)のデータの書込が完了した場合に、ステップS16を実行することにより、この一時保管ブロックと対を為す書込先のブロックに代えてこの一時保管ブロックを外部アクセス可能なブロックに設定する。更に、メモリ制御部25は、一時保管ブロックと対を為す書込先のブロックを空きブロックに設定する。
上記したステップS12又はS16の実行後、或いはステップS15において一時保管ブロックに対して1ブロック分の書込が完了していないと判定された場合、メモリ制御部25は、データ領域DAに含まれる空きブロックの残数が1つであるか否かを判定する(ステップS17)。
ステップS17において、空きブロックの残数が1つであると判定されると、メモリ制御部25は、一時保管ブロック管理テーブルTB2から、最大の値を示す経過情報に対応したインデックス番号を検索する(ステップS18)。尚、最大の値を示す経過情報に対応したインデックス番号の一時保管ブロックは、一時保管ブロック管理テーブルTB2に記されている一時保管ブロックのうちで、データの書き換えが行われた時点からの経過時間が最も長いブロックである。
次に、メモリ制御部25は、アドレス変換テーブルTB1から、ステップS18で検索したインデックス番号に対応した物理アドレスを取得する。そして、メモリ制御部25は、この物理アドレスで示されるブロック、つまりデータ書換中のブロックから、書き換え対象となっていない未更新データを読み出す。要するに、ステップS18で検索したインデックス番号に対応する一時保管ブロック管理テーブルのページ有効情報を参照し、データ書換中のブロックから「有効ページ」に該当するページを読み出す(ステップS19)。
次に、メモリ制御部25は、一時保管ブロック管理テーブルTB2において上記インデックス番号に対応した物理アドレスで表されるブロック、つまり一時保管ブロックに、上記した未更新データ、つまり「有効ページ」に該当するページを書き込む(ステップS20)。
次に、メモリ制御部25は、上記した一時保管ブロックを外部アクセス可能なブロックとして登録すると共に、空きブロックを確保する為の管理情報(TB1、TB2)更新を行う(ステップS21)。
例えば、ステップS21において、メモリ制御部25は、アドレス変換テーブルTB1における上記したインデックス番号に対応した物理アドレスを、一時保管ブロックの物理アドレスに書き換えると共に、そのインデックス番号を「0」に書き換える。また、メモリ制御部25は、一時保管ブロック管理テーブルTB2における、書き換え前のインデックス番号に対応した物理アドレスを、未使用のアドレス[0xFFFF]に書き換える。更に、メモリ制御部25は、一時保管ブロック管理テーブルTB2における、書き換え前のインデックス番号に対応したページ有効情報を全ページ有効を表す状態に初期化し、このインデックス番号に対応した経過情報を「0」に初期化する。更に、メモリ制御部25は、一時保管ブロック管理テーブルTB2において、上記した未更新データが書き込まれたブロックに対応したインデックス番号以外の各インデックス番号に対応した経過情報を「1」だけ増加する。
すなわち、メモリ制御部25は、ステップS17~S21を実行することにより、空きブロックの残数が所定数以下となった場合に、一時保管ブロックを外部アクセス可能なブロックに設定すると共に、一時保管ブロックと対を為す書込先のブロックを空きブロックに設定する。尚、上記フローチャートのステップS17において、空ブロックの残数が1になった場合を説明したが、空ブロックの残数は任意に設定してもよい。
上記したステップS21の実行後、又はステップS17において空きブロックの残数が1つではないと判定された場合、メモリ制御部25は図5及び図6に示されるデータ書き換え処理を終了する。
以下に、メモリ制御部25が図5及び図6に示すデータ書き換え処理を実行することによって行われるデータの書き換え動作を具体例をもって説明する。
図7は、データ書き換え直前の段階でのフラッシュメモリ部24の状態の一例を表す図である。
フラッシュメモリ部24のデータ領域DAは、例えば図7に示すように夫々が3つのページP1~P3を有する7つのブロックB1~B7からなる。
ここで、図7に示す一例では、フラッシュメモリ部24のブロックB1のページP1~P3には、データd11~d13が既に書き込まれている。更に、ブロックB2のページP1~P3にはデータd21~d23が既に書き込まれており、その他のブロックB3~B7が空きブロックとなっている。
よって、図7に示すようなデータ領域DAの状態時には、アドレス変換テーブルTB1には、データd11~d13が書き込まれているブロックB1の物理アドレス「0」と、論理アドレス[0x100]とが対応付けして記述されている。更に、アドレス変換テーブルTB1には、図7に示すように、データd21~d23が書き込まれているブロックB2の物理アドレス「1」と、論理アドレス[0x200]とが対応付けして記述されている。
尚、データ書き換えを行う直前の段階では、データ書換中のブロックは存在しない。よって、図7に示すように、アドレス変換テーブルTB1には、ブロックB1及びB2を示す物理アドレス「0」及び「1」に夫々対応付けして、インデックス番号「0」が記述されている。更に、空きブロックであるブロックB3~B7は、現段階では一時保管ブロックには該当していないので、この段階では、例えば一時保管ブロック管理テーブルTB2には図7に示すように情報の記述はない。
以下に、引き続きホスト装置10から、夫々1ページ分のデータ容量を有するデータd11~d13及びd21を下記の順にデータd11a~d13a及びd21aに書き換えるアクセスが為された場合を例にとって、段階的にフラッシュメモリ部24の状態遷移を説明する。
[データd11をd11aに書換]
先ず、ホスト装置10は、データd11をd11aに書き換える為に、書込先のブロックを示す論理アドレス[0x100]と、書込用データとしてのデータd11aと、を書込命令と共に不揮発性メモリ20に供給する。
メモリ制御部25は、図7に示すアドレス変換テーブルTB1から、書込先のブロックを示す論理アドレス[0x100]に対応したインデックス番号を取得する。このインデックス番号は図7に示すように「0」であるので、メモリ制御部25は、空きブロックB3~B7のうちのB3を一時保管ブロックとし、当該一時保管ブロックのページP1に図8に示すように書込用のデータd11aを書き込む(S11)。
この際、メモリ制御部25は、図8に示すように、アドレス変換テーブルTB1に記述されている論理アドレス[0x100]に対応したインデックス番号を「1」に書き換える(S12)。
また、メモリ制御部25は、このインデックス番号「1」に対応付けして、一時保管ブロックであるブロックB3を表す物理アドレス「2」と、ページ有効情報と、経過情報とを図8に示すように一時保管ブロック管理テーブルTB2に記述する(S12)。尚、このページ有効情報としては、ページP1~P3のうちのP1のみが「無効ページ」であることを表す[100]が記述され、経過情報としては「1」が記述される。
[データd12をd12aに書換]
次に、ホスト装置10は、データd12をd12aに書き換える為に、書込先のブロックを示す論理アドレス[0x100]、及び書込用のデータとしてのデータd12aを書込命令と共に不揮発性メモリ20に供給する。
メモリ制御部25は、図8に示すアドレス変換テーブルTB1から、書込先のブロックを示す論理アドレス[0x100]に対応したインデックス番号を取得する。このインデックス番号は図8に示すように「1」であるので、メモリ制御部25は、一時保管ブロック管理テーブルTB2から、インデックス番号「1」に対応した物理アドレス「2」及びページ有効情報[100]を取得する。そして、メモリ制御部25は、この物理アドレス「2」にて表される一時保管ブロックとしてのブロックB3の有効ページであるページP2に、図9に示すように書込用のデータd12aを書き込む(S13)。
この際、メモリ制御部25は、図9に示すように、一時保管ブロック管理テーブルTB2に記述されているインデックス番号「1」に対応したページ有効情報を、ページP1~P3のうちのP1及びP2が「無効ページ」であることを表す[110]に書き換え、経過情報としては再び「1」が記述される(S14)。
[データd21をd21aに書換]
次に、ホスト装置10は、データd21をd21aに書き換える為に、書込先のブロックを示す論理アドレス[0x200]と、書込用のデータとしてのデータd21aと、を書込命令と共に不揮発性メモリ20に供給する。
メモリ制御部25は、図9に示すアドレス変換テーブルTB1から、書込先のブロックを示す論理アドレス[0x200]に対応したインデックス番号を取得する。このインデックス番号は図9に示すように「0」であるので、メモリ制御部25は、空きブロックB4~B7のうちのB4を一時保管ブロックとし、当該一時保管ブロックのページP1に図10に示すように書込用のデータd21aを書き込む(S11)。
また、メモリ制御部25は、図10に示すように、アドレス変換テーブルTB1に記述されている論理アドレス[0x200]に対応したインデックス番号を「2」に書き換える(S12)。
更に、メモリ制御部25は、このインデックス番号「2」に対応付けして、一時保管ブロックであるブロックB4を表す物理アドレス「3」と、ページ有効情報と、経過情報とを図10に示すように一時保管ブロック管理テーブルTB2に記述する(S12)。尚、このページ有効情報としては、ページP1~P3のうちのP1のみが「無効ページ」であることを表す[100]が記述され、経過情報としては「1」が記述される。また、インデックス番号「2」に対応したブロックB4へのデータ書き込み処理により、メモリ制御部25は、一時保管ブロック管理テーブルTB2に記述されているインデックス番号「1」に対応した経過情報を「1」から「2」に増加する。
[データd13をd13aに書換]
次に、ホスト装置10は、データd13をd13aに書き換える為に、書込先のブロックを示す論理アドレス[0x100]、及び書込用のデータとしてのデータd13aを書込命令と共に不揮発性メモリ20に供給する。
メモリ制御部25は、図10に示すアドレス変換テーブルTB1から、書込先のブロックを示す論理アドレス[0x100]に対応したインデックス番号を取得する。このインデックス番号は図10に示すように「1」であるので、メモリ制御部25は、一時保管ブロック管理テーブルTB2から、インデックス番号「1」に対応した物理アドレス「2」及びページ有効情報[110]を取得する。そして、メモリ制御部25は、この物理アドレス「2」にて表される一時保管ブロックとしてのブロックB3の有効ページであるページP3に、図11に示すように書込用のデータd13aを書き込む(S13)。
この際、メモリ制御部25は、図11に示すように、一時保管ブロック管理テーブルTB2に記述されているインデックス番号「1」に対応したページ有効情報を、ページP1~P3の全てが「無効ページ」を表す[111]に書き換える(S14)。また、インデックス番号「1」に対応したブロックB3へのデータ書き込み処理により、メモリ制御部25は、一時保管ブロック管理テーブルTB2に記述されているインデックス番号「2」に対応した経過情報を「1」から「2」に増加し、インデックス番号「1」に対応した経過情報として「1」を記述する。
上記した一連の処理により、一時保管ブロック管理テーブルTB2に記述されているインデックス番号「1」に対応したページ有効情報が、全ページが「無効ページ」を表す[111]となる。これにより、一時保管ブロックとしてのブロックB3には、データ書換対象となるブロックB1の内容(データd11~d13)を全て書き換える、管理サイズ分のデータd11a~13aの書き込みが完了する。
そこで、引き続きメモリ制御部25は、当該一時保管ブロックを外部アクセス可能なブロックとしてアドレス変換テーブルTB1に登録すると共に、書換対象データが書き込まれていたブロックB1を空きブロックとして確保する為の管理情報更新を行う(S16)。
すなわち、メモリ制御部25は、図12に示すように、アドレス変換テーブルTB1における、書込先のブロックB1を表す論理アドレス[0x100]に対応した物理アドレスを、一時保管ブロックとしてのブロックB3を表す「2」に書き換える。また、このような物理アドレスの書き換えに伴い、メモリ制御部25は、論理アドレス[0x100]に対応したインデックス番号を「0」に書き換える。
更に、メモリ制御部25は、一時保管ブロック管理テーブルTB2におけるインデックス番号「1」を使用不可とする為に、図12に示すように、当該インデックス番号「1」に対応した物理アドレスを未使用の[0xFFFF]に書き換える。また、このような物理アドレスの書き換えに伴い、メモリ制御部25は、一時保管ブロック管理テーブルTB2におけるページ有効情報を初期値[000]、経過情報を初期値「0」に夫々書き換える。
よって、図12に示すように、論理アドレス[0x100]に対応したブロックは、物理アドレス「2」のブロックB2に変更され、物理アドレス「0」のブロックB1が空きブロックに設定される。
尚、上記したような、一時保管ブロックを外部アクセス可能なブロックとして登録すると共に、空きブロックを確保する為の管理情報の更新処理(S16)は、データ領域DAの空きブロックの残数が所定数、例えば「1」以下となる場合にも実施される。
例えば、図13に示すように、データ領域DA内に2つのブロックB6及びB7が残存している際にブロックB6が一時保管ブロックとして使用されると、メモリ制御部25は、以下の処理を行う。
尚、図13に示す一例では、ブロックB1~B3が、ホスト装置10からのアクセスが可能なブロックとしてアドレス変換テーブルTB1に登録されている。この際、ブロックB1~B3のうちでB1及びB2がデータ書換中のブロックであり、ブロックB1に書き込まれているデータd11及びd12がデータ書換対象となっている。これにより、図13に示すように、データd11に対する書換後のデータd11aが一時保管ブロックとしてのブロックB4のページP1に書き込まれており、データd12に対する書換後のデータd12aがブロックB4のページP2に書き込まれている。更に、図13に示す一例では、ブロックB2に書き込まれているデータd21がデータ書換対象となっており、当該データd21に対する書換後のデータd21aが、図13に示すように、一時保管ブロックとしてのブロックB5のページP1に書き込まれている。
よって、アドレス変換テーブルTB1には、ブロックB1を表す物理アドレス「0」に対応付けしてインデックス番号「1」が記述されており、ブロックB2を表す物理アドレス「1」に対応付けしてインデックス番号「2」が記述されている。尚、この段階においてブロックB3はデータ書換中のブロックではないので、当該ブロックB3を表す物理アドレス「2」に対応付けしてインデックス番号「0」が記述されている。
また、図13に示すように、一時保管ブロック管理テーブルTB2には、ブロックB1に対応したインデックス番号「1」に対応付けして、ブロックB4を表す物理アドレス「3」、ページ有効情報[110]が記述されている。尚、この一例では、インデックス番号「1」に対応した経過情報は「1」を表すものとする。
更に、一時保管ブロック管理テーブルTB2には、ブロックB2に対応したインデックス番号「2」に対応付けして、ブロックB5を表す物理アドレス「4」、ページ有効情報[100]が記述されている。尚、この一例では、インデックス番号「2」に対応した経過情報は「3」を表すものとする。また、図13に示す一例では、次に使用するインデックス番号「3」に対応付けして、物理アドレス[0xFFFF]、ページ有効情報[000]及び「0」を表す経過情報が一時保管ブロック管理テーブルTB2に記述されているものとする。
ここで、ホスト装置10が、図13に示すブロックB3に書き込まれているデータd31を書き換えるために、書込命令、ブロックB3を表す論理アドレス[0x300]及び書込用のデータd31aを不揮発性メモリ20に供給する。
すると、メモリ制御部25は、図13に示すアドレス変換テーブルTB1から、書込先のブロックを示す論理アドレス[0x300]に対応したインデックス番号「0」を取得する。これにより、メモリ制御部25は、空きブロックB6を一時保管ブロックとし、当該一時保管ブロックのページP1に、図14に示すように書込用のデータd31aを書き込む(S11)。
また、メモリ制御部25は、図14に示すように、アドレス変換テーブルTB1に記述されている論理アドレス[0x300]に対応したインデックス番号を「0」から「3」に書き換える(S12)。
更に、メモリ制御部25は、図14に示すように、一時保管ブロック管理テーブルTB2におけるインデックス番号「3」に対応した物理アドレスを、[0xFFFF]から「5」に、ページ有効情報を[000]から[100]に書き換える(S12)。また、ブロックB6へのデータ書き込みにより、メモリ制御部25は、図14に示すように、インデックス番号「1」に対応した経過情報を「1」から「2」に増加し、インデックス番号「2」に対応した経過情報を「3」から「4」に増加する(S12)。
図14に示すように、ブロックB6が一時保管ブロックとして用いられることにより、データ領域DA内の空きブロックは残り1つ、つまりブロックB7だけとなる。
そこで、メモリ制御部25は、データ領域DA内の空きブロックの残数が1つか否かを判定(S17)し、空きブロックが残り1つとなった場合には、以下の処理を行う。
すなわち、先ず、メモリ制御部25は、図14に示す一時保管ブロック管理テーブルTB2から、各インデックス番号に対応した経過情報のうちで最大の値「4」を示す経過情報に対応したインデックス番号「2」を検索する(S18)。次に、メモリ制御部25は、図14に示すアドレス変換テーブルTB1から、このインデックス番号「2」に対応した物理アドレス「1」を得る(S19)。そして、この物理アドレス「1」で表されるデータ書換中のブロックB2から、検索したインデックス番号に対応した一時保管ブロック管理テーブルのページ有効情報により「有効ページ」に該当する、すなわちデータ書換対象となっていない未更新のデータd22及びd23を読み出す(S19)。
次に、メモリ制御部25は、図14に示す一時保管ブロック管理テーブルTB2から、上記したインデックス番号「2」に対応した物理アドレス「4」を取得する(S20)。そして、メモリ制御部25は、図15に示すように、当該物理アドレス「4」で表される一時保管ブロックB5のページP2及びP3に、上記した未更新のデータd22及びd23を書き込む(S20)。
次に、メモリ制御部25は、上記した一時保管ブロックB5を外部アクセスが可能なブロックとして登録すると共に、データ書換対象のブロックB2を空きブロックとする為の管理情報の更新を行う(S21)。
つまり、メモリ制御部25は、アドレス変換テーブルTB1において、図14に示すインデックス番号「2」に対応した物理アドレス「1」を、図15に示すように「4」に書き換えると共に、そのインデックス番号「2」を図15に示すように「0」に書き換える。
また、メモリ制御部25は、インデックス番号「2」に対応した物理アドレスを、図15に示すように、未使用のアドレス[0xFFFF]に書き換える。また、メモリ制御部25は、図15に示すように、一時保管ブロック管理テーブルTB2におけるインデックス番号「2」に対応したページ有効情報を[000]、経過情報を「0」に夫々初期化する。
更に、上記した一時保管ブロックB5へのデータ書き込みに伴い、メモリ制御部25は、図15に示すように、インデックス番号「1」に対応した経過情報を「2」から「3」に増加し、インデックス番号「3」に対応した経過情報を「」から「」に増加する。よって、図15に示すように、論理アドレス[0x200]に対応したブロックは、物理アドレス「4」のブロックB5に変更され、ブロックB2が空きブロックに設定される。
以上、詳述したように、不揮発性メモリ200では、メモリ制御部25が以下のデータ書込ステップと、管理ステップと、を実行することによりデータの書き換えを行う。
すなわち、データ書込ステップ(S11、S13)では、書込用データ、及び書込先のブロックを示す論理アドレスを受け、書込先のブロックがデータ書込済みである場合に、複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、この一時保管ブロックに書込用データを書き込む。管理ステップ(S12、S14)では、書込先のブロックと一時保管ブロックとの一対毎に、その一対に対応したインデックス番号を割り当て、インデックス番号を一時保管ブロックの不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブル(TB1、TB2)を生成する。尚、データ書込ステップでは、この管理テーブルから、書込先のブロックに割り当てられているインデックス番号に対応した物理アドレスを取得し、この物理アドレスにて表される一時保管ブロックに書込用データを書き込む。
尚、上記したデータ書込ステップ(S11、S13)の動作をメモリ制御部25に設けたハードウェアとしての書込制御部によって行うようにしても良い。また、管理ステップ(S12、S14、S16、S21)の動作をメモリ制御部25に設けたハードウェアとしての管理制御部によって行うようにしても良い。
このように、不揮発性メモリ200では、論理アドレスによって指定された書込先のブロックに書き込まれているデータを書き換えるにあたり、データ未書込の空きブロックを一時保管ブロックとし、この一時保管ブロックに書込用データを書き込む。更に、書込先のブロックと一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、このインデックス番号を、一時保管ブロックの物理アドレスに対応付けして表す管理テーブルを生成する。
これにより、ブロック内の一部のデータ片のみが書き換えられた場合にも、外部からの読出アクセスに応じて当該管理テーブルのインデックス番号を参照することにより、書き換え後のデータ片を読み出すことが可能となる。
つまり、データ書込先のブロックに書き込まれている上記データ片以外のデータを一時保管ブロックへコピーし、この一時保管ブロックを外部アクセス可能な状態に設定するという一連の処理を行わずとも、書き換え後のデータ片を読み出すことが可能となる。
よって、不揮発性メモリ200におけるデータの書き換え方法によれば、上記したようなコピー処理及び外部アクセス可能な状態への設定処理が必要となる従来のデータ書き換え方法に比べて、データの書き換え時間を短縮することが可能になる。
また、不揮発性メモリ200によれば、例えば1ブロックが12MbのTLC(Triple Level Cell)方式において、書込み単位(ページ)が4Mbである場合、1ブロックを夫々4Mbで3分割した疑似SLC(Single Level Cell)として、ページ単位で管理することが可能となる。つまり、1回分の書き込みデータ容量が1ブロックの全データ容量よりも小さい場合に、データ書き換え中のブロックを疑似的にSLC方式で管理することができるようになる。
ところで、当該データの書き換え方法によれば、複数のブロックがデータの書換対象となる場合には複数の一時保管ブロックも管理対象となる。この際、本発明では、インデックス番号により、複数の一時保管ブロックのうちからアクセス対象となった一時保管ブロックを示す物理アドレスを取得することができる。よって、複数の一時保管ブロックに対して1つずつアクセス対象であるか否かを判定することにより、アクセス対象に該当する一時保管ブロックを検索する場合に比べて、迅速にアクセス対象の一時保管ブロックを表す物理アドレスを取得することが可能となる。
尚、上記実施例では、空きブロックの残数が1つになったことを条件として、一時保管ブロックを外部アクセス可能なブロックとして登録すると共に空きブロックを確保する管理処理(S18~S21)を実施している。しかしながら、このような管理処理を実施する条件は、空きブロックの残数が1つになったことに限定されない。要するに、空きブロックの残数が所定数以下となった場合を条件として上記した管理処理(S18~S21)を実施すれば良いのである。
また、上記実施例では、一時保管ブロックを外部アクセス可能なブロックとして登録するにあたり、その登録対象とする一時保管ブロックを選出する条件を、経過情報によって示される他の一時保管ブロックでのデータ書込の回数が最大となるものとしている。しかしながら、一時保管ブロック毎に、その一時保管ブロックにデータ書込が行われてから次のデータ書込が行われるまでの経過時間を計測しておき、その経過時間が最大となる一時保管ブロックを外部アクセス可能なブロックとして登録するようにしても良い。
また、上記実施例では、図5に示すステップS15において、1ブロック分のデータの書込が完了したか否かを判定するために、メモリ制御部25は、ページ有効情報によって表される全ビットが論理レベル1であるか否かを判定している。しかしながら、ステップS15では、一時保管ブロックに書き込まれた書込用データの蓄積容量が、一時保管ブロックの記憶容量と等しくなったか否かを判定するようにしても良い。
10 ホスト装置
20 不揮発性メモリ
24 フラッシュメモリ部
25 メモリ制御部

Claims (10)

  1. 夫々が複数のページを含む複数のブロックを有する不揮発性メモリのデータ書換方法であって、
    書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに含まれている少なくとも1のページに前記書込用データを書き込むデータ書込ステップと、
    前記書込先のブロックの前記論理アドレスにインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレス及び前記一時保管ブロックの前記複数のページ各々がデータ書き込み可能であるのかを示すページ有効情報に対応付けして表す管理テーブルを生成する管理ステップと、を有し、
    前記データ書込ステップでは、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込むことを特徴とする不揮発性メモリのデータ書換方法。
  2. 前記データ書込ステップでは、前記論理アドレスと共に、前記書込用データとして第1の書込データ片及び第2の書込データ片を受け、前記論理アドレスにて示される前記書込先のブロックがデータ書込済みである場合には、前記論理アドレスにて示される前記書込先のブロックと対を為す前記一時保管ブロック内の1のページ前記第1の書込データ片を書き込んだ後に、前記第2の書込データを、前記第1の書込データが書き込まれている前記一時保管ブロックにおける前記第1の書込データが書き込まれている前記1のページとは異なるページに書き込むことを特徴とする請求項1に記載の不揮発性メモリのデータ書換方法。
  3. 前記管理ステップでは、前記一時保管ブロックに書き込まれた前記書込用データの蓄積容量が前記一時保管ブロックの記憶容量と等しくなった場合に、前記一時保管ブロックと対を為す前記書込先のブロックに代えて前記一時保管ブロックを外部からアクセス可能なブロックに設定することを特徴とする請求項1又は2に記載の不揮発性メモリのデータ書換方法。
  4. 前記管理ステップでは、前記一時保管ブロックと対を為す前記書込先のブロックを前記空きブロックに設定することを特徴とする請求項3に記載の不揮発性メモリのデータ書換方法。
  5. 前記管理ステップでは、前記書込先のブロックを示す論理アドレスに対応した物理アドレスを、前記一時保管ブロックの物理アドレスに変更すると共に、前記一時保管ブロックと対を為す前記書込先のブロックの物理アドレスを未使用のアドレスに変更するように前記管理テーブルの内容を書き換えることを特徴とする請求項4に記載の不揮発性メモリのデータ書換方法。
  6. 前記管理ステップでは、前記複数のブロックのうちの前記空きブロックの残数が所定数以下となった場合に、前記一時保管ブロックを外部からアクセス可能なブロックに設定すると共に、前記一時保管ブロックと対を為す前記書込先のブロックを前記空きブロックに設定することを特徴とする請求項1~5のいずれか1に記載の不揮発性メモリのデータ書換方法。
  7. 前記管理ステップは、前記インデックス番号毎に、そのインデックス番号に対応した前記一時保管ブロックへの前記書込用データの書込後に他の一時保管ブロックで実施されたデータ書込の回数を示す経過情報を対応付けして前記管理テーブルに記述し、
    前記回数が最も多い前記経過情報に対応付けされている前記インデックス番号に対応した前記一時保管ブロックを外部からアクセス可能なブロックに設定することを特徴とする請求項6に記載の不揮発性メモリのデータ書換方法。
  8. 前記管理ステップでは、前記書込用データによるデータ書換が行われる前は前記複数のページの各々を有効ページとし、前記データ書換が行われた場合には前記データの書換が行われたページを無効ページとするように前記ページ有効情報を更新することを特徴とする請求項1~7のいずれか1に記載の不揮発性メモリのデータ書換方法。
  9. 夫々が複数のページを含む複数のブロックを有する不揮発性メモリを含む半導体装置であって、
    書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに含まれている少なくとも1のページに前記書込用データを書き込むデータ書込制御部と、前記書込先のブロックの論理アドレスにインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレス及び前記一時保管ブロックの前記複数のページ各々がデータ書き込み可能であるのかを示すページ有効情報に対応付けして表す管理テーブルを生成する管理制御部と、を有し、
    前記データ書込制御部は、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込むことを特徴とする半導体装置。
  10. 前記管理制御部は、前記書込用データによるデータ書換が行われる前は前記複数のページの各々を有効ページとし、前記データ書換が行われた場合には前記データの書換が行われたページを無効ページとするように前記ページ有効情報を更新することを特徴とする請求項9に記載の半導体装置。
JP2017198586A 2017-10-12 2017-10-12 不揮発性メモリのデータ書換方法及び半導体装置 Active JP7153435B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017198586A JP7153435B2 (ja) 2017-10-12 2017-10-12 不揮発性メモリのデータ書換方法及び半導体装置
US16/158,250 US10559359B2 (en) 2017-10-12 2018-10-11 Method for rewriting data in nonvolatile memory and semiconductor device
CN201811189073.4A CN109656835B (zh) 2017-10-12 2018-10-12 非易失性存储器的数据改写方法以及半导体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017198586A JP7153435B2 (ja) 2017-10-12 2017-10-12 不揮発性メモリのデータ書換方法及び半導体装置

Publications (2)

Publication Number Publication Date
JP2019074797A JP2019074797A (ja) 2019-05-16
JP7153435B2 true JP7153435B2 (ja) 2022-10-14

Family

ID=66096096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017198586A Active JP7153435B2 (ja) 2017-10-12 2017-10-12 不揮発性メモリのデータ書換方法及び半導体装置

Country Status (3)

Country Link
US (1) US10559359B2 (ja)
JP (1) JP7153435B2 (ja)
CN (1) CN109656835B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046530A (ja) 2017-09-07 2019-03-22 東芝メモリ株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005517260A (ja) 2002-02-06 2005-06-09 サンディスク コーポレイション セクタポインタを用いるメモリ・マッピング・デバイス
JP2007094571A (ja) 2005-09-27 2007-04-12 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20090287875A1 (en) 2008-05-15 2009-11-19 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5283868A (en) * 1989-05-17 1994-02-01 International Business Machines Corp. Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system
US5386522A (en) * 1991-12-30 1995-01-31 International Business Machines, Corp. Dynamic physical address aliasing during program debugging
US5963984A (en) * 1994-11-08 1999-10-05 National Semiconductor Corporation Address translation unit employing programmable page size
JPH09319666A (ja) * 1996-05-31 1997-12-12 Hitachi Ltd 半導体ファイル記憶装置
CN100514484C (zh) * 1998-06-09 2009-07-15 索尼株式会社 再现装置和再现方法
US6560688B1 (en) * 1998-10-01 2003-05-06 Advanced Micro Devices, Inc. System and method for improving accelerated graphics port systems
US6389514B1 (en) * 1999-03-25 2002-05-14 Hewlett-Packard Company Method and computer system for speculatively closing pages in memory
US6421769B1 (en) * 1999-12-30 2002-07-16 Intel Corporation Efficient memory management for channel drivers in next generation I/O system
EP1130516A1 (en) * 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Address mapping in solid state storage device
US6675278B1 (en) * 2000-04-19 2004-01-06 Motorola, Inc. Method and apparatus for managing memory
WO2002035548A2 (en) * 2000-10-26 2002-05-02 Matsushita Electric Industrial Co., Ltd. Storing device, storing control method and program
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
JP4722839B2 (ja) * 2004-05-19 2011-07-13 パナソニック株式会社 メモリ制御回路、不揮発性記憶装置及びメモリ制御方法
JP2007199828A (ja) * 2006-01-24 2007-08-09 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびそのアドレス管理方法
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
JP4315461B2 (ja) 2007-10-30 2009-08-19 株式会社ハギワラシスコム ソリッドステートドライブ及びデータ書き込み方法
US9015444B2 (en) * 2008-06-09 2015-04-21 Panasonic Intellectual Property Management Co., Ltd. Access apparatus and available storage space calculation method
US8275971B2 (en) * 2008-08-27 2012-09-25 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
KR101038167B1 (ko) * 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
EP2299363B1 (fr) * 2009-09-21 2013-01-09 STMicroelectronics (Rousset) SAS Procédé de nivellement de l'usure dans une mémoire non volatile
JP5835040B2 (ja) * 2012-03-19 2015-12-24 富士通株式会社 情報処理システムおよびデータ記録制御方法
KR20130134186A (ko) * 2012-05-30 2013-12-10 삼성전자주식회사 메모리 장치의 리라이트 방법
TW201413450A (zh) * 2012-09-25 2014-04-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US20140189202A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
WO2014109109A1 (ja) * 2013-01-11 2014-07-17 日本電気株式会社 インデックスキー生成装置及びインデックスキー生成方法並びに検索方法
US9946616B2 (en) * 2014-01-29 2018-04-17 Hitachi, Ltd. Storage apparatus
US20160217177A1 (en) * 2015-01-27 2016-07-28 Kabushiki Kaisha Toshiba Database system
US10303785B2 (en) * 2015-08-10 2019-05-28 International Business Machines Corporation Optimizing online schema processing for busy database objects
US20170322843A1 (en) * 2016-05-04 2017-11-09 Sandisk Technologies Inc. Multi-die data storage device with in-memory parity circuitry
US10304559B2 (en) * 2016-12-30 2019-05-28 Western Digital Technologies, Inc. Memory write verification using temperature compensation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005517260A (ja) 2002-02-06 2005-06-09 サンディスク コーポレイション セクタポインタを用いるメモリ・マッピング・デバイス
JP2007094571A (ja) 2005-09-27 2007-04-12 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20090287875A1 (en) 2008-05-15 2009-11-19 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module

Also Published As

Publication number Publication date
JP2019074797A (ja) 2019-05-16
CN109656835B (zh) 2023-07-18
US10559359B2 (en) 2020-02-11
US20190115080A1 (en) 2019-04-18
CN109656835A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
US10657047B2 (en) Data storage device and method of performing partial garbage collection
JP4058322B2 (ja) メモリカード
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US10496334B2 (en) Solid state drive using two-level indirection architecture
US20170285954A1 (en) Data storage device and data maintenance method thereof
TW201346547A (zh) 用來管理一記憶裝置之方法以及其相關之記憶裝置與控制器
JP2007164318A (ja) 記憶装置
US20170285953A1 (en) Data Storage Device and Data Maintenance Method thereof
US7278001B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
JP7153435B2 (ja) 不揮発性メモリのデータ書換方法及び半導体装置
US8068363B2 (en) Flash memory apparatus and read operation control method therefor
JP4366420B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20130080690A1 (en) Method to emulate eeprom using flash memory
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP5520880B2 (ja) フラッシュメモリ装置
JP4888333B2 (ja) フラッシュディスク装置
JP2011175361A (ja) データ記憶装置及びデータ記憶方法
JP2008112455A (ja) メモリカード
JP2008097339A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005316793A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
US7996598B2 (en) Memory management module
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221003

R150 Certificate of patent or registration of utility model

Ref document number: 7153435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150