JP2009205555A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2009205555A JP2009205555A JP2008048799A JP2008048799A JP2009205555A JP 2009205555 A JP2009205555 A JP 2009205555A JP 2008048799 A JP2008048799 A JP 2008048799A JP 2008048799 A JP2008048799 A JP 2008048799A JP 2009205555 A JP2009205555 A JP 2009205555A
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- written
- memory
- management information
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 247
- 238000003860 storage Methods 0.000 claims abstract description 108
- 230000006378 damage Effects 0.000 claims abstract description 22
- 238000007726 management method Methods 0.000 claims description 134
- 238000012545 processing Methods 0.000 claims description 53
- 238000013523 data management Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 abstract description 12
- 238000011084 recovery Methods 0.000 abstract description 3
- 230000001066 destructive effect Effects 0.000 abstract 1
- 238000013508 migration Methods 0.000 abstract 1
- 230000005012 migration Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 64
- 238000010586 diagram Methods 0.000 description 18
- 238000007251 Prelog reaction Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Abstract
【課題】多値メモリを使用したNAND型フラッシュメモリを有するメモリシステムで、上位ページに書込み中に瞬断などが発生した場合に、既に書込まれたデータを破壊から守ることができるメモリシステムを提供する。
【解決手段】揮発性の第1の記憶部と、多値データを記憶可能な複数のメモリセルからなり、複数のページを有するメモリセルが複数配列して構成される不揮発性の第2の記憶部と、第1の記憶部を介してホスト装置と第2の記憶部との間のデータ転送を行うコントローラと、を備え、コントローラは、第2の記憶部にデータを追記的に書込む前に、データを書込むページと同じメモリセルの下位のページにデータが書込まれている場合に、該下位のページのデータをバックアップする退避処理部155と、下位のページのデータが破壊された場合に、バックアップされたデータを用いて破壊されたデータを復元する破壊情報復元処理部156と、を有する。
【選択図】 図11
【解決手段】揮発性の第1の記憶部と、多値データを記憶可能な複数のメモリセルからなり、複数のページを有するメモリセルが複数配列して構成される不揮発性の第2の記憶部と、第1の記憶部を介してホスト装置と第2の記憶部との間のデータ転送を行うコントローラと、を備え、コントローラは、第2の記憶部にデータを追記的に書込む前に、データを書込むページと同じメモリセルの下位のページにデータが書込まれている場合に、該下位のページのデータをバックアップする退避処理部155と、下位のページのデータが破壊された場合に、バックアップされたデータを用いて破壊されたデータを復元する破壊情報復元処理部156と、を有する。
【選択図】 図11
Description
本発明は、不揮発性半導体記憶装置を用いて構成されるメモリシステムに関する。
ハードディスク装置を2次記憶装置として用いたパーソナルコンピュータにおいては、ハードディスク装置に格納されるデータが何らかの障害によって無効なデータとなってしまうことを防ぐためにバックアップをとる技術が知られている。たとえば、ハードディスク装置中のデータの変更を検出すると、そのデータの変更前のバックアップコピーであるスナップショットをとり、そのデータに対する更新を記録したログをとる。その後、所定の時間ごとにスナップショットをとるとともに、スナップショットをとる前の過去のログを無効にし、新しいログを生成するという処理が繰り返し行われる(たとえば、特許文献1参照)。このような処理を行うことで、データが無効になってしまった場合には、スナップショットとログを基にそのデータを復元することができる。
ところで、近年では、不揮発性半導体記憶装置であるNAND型フラッシュメモリの大容量化が進行し、このNAND型フラッシュメモリを有するメモリシステムを2次記憶装置とするパーソナルコンピュータが製品化されている。しかし、このようなNAND型フラッシュメモリに格納されるデータのバックアップに対して、ハードディスク装置に格納されるデータのバックアップの場合と同様に上記特許文献1の技術を適用することはできない。それは、NAND型フラッシュメモリの大容量化には、1つのメモリセルに2ビット以上の複数のデータ(多値データ)を記憶することが可能な多値メモリ技術が使用されているからである。
多値メモリを構成するメモリセルは、チャネル領域上にゲート絶縁膜、浮遊ゲート電極、ゲート間絶縁膜および制御ゲート電極が順に積層された積層ゲート構造を有する電界効果型トランジスタ構造を有し、浮遊ゲート電極に蓄積される電子の数に応じて、複数の閾値電圧を設定可能な構成を有している。そして、この複数の閾値電圧によって、多値記憶を可能とするために、1つのデータに対応する閾値電圧の分布を非常に狭く制御する必要がある。
たとえば、4値を記憶することができる多値メモリでは、1つのメモリセルに下位ページと上位ページを設け、それぞれのページに1ビットのデータを書込むことによって、2ビット(4値)を記憶するものがある。このような多値メモリのデータ書込方法は、第1のメモリセルの下位ページにデータを書込んだ後、隣接メモリセル(第2のメモリセル)の下位ページにデータを書込む。そして、この隣接メモリセルへの書込み後に、第1のメモリセルの上位ページにデータを書込んでいる(たとえば、特許文献2参照)。
しかし、このような多値メモリでは、先に書込んだメモリセルの閾値電圧が、このメモリセルと隣接し、後に書込まれるメモリセルの閾値電圧によって変動してしまう。このため、多値メモリでは、あるメモリセルの上位ページの書込み中に、たとえば電源の異常遮断など(以下、瞬断という)によって書込みが中断されると、先に書込んだ同じメモリセルの下位ページのデータも破壊される下位ページデータ破壊が生じる可能性がある。
そのため、NAND型フラッシュメモリを2次記憶装置とするパーソナルコンピュータにおいて、たとえば特許文献1のログをあるメモリセルの上位ページに書込み中に瞬断によって下位ページデータ破壊が生じてしまった場合には、書込み中のデータのほかに、この書込み中のメモリセルの下位ページのデータまで破壊されてしまい、データを復元することができなくなってしまうという問題点があった。つまり、NAND型フラッシュメモリを有するメモリシステムを2次記憶装置としたパーソナルコンピュータに対して特許文献1の技術を用いてバックアップをとる方法では、パーソナルコンピュータの状態を瞬断前の状態に復元するには不十分であるという問題点があった。
特に、あるメモリセルトランジスタの上位ページに書込み中に瞬断が発生した後にメモリシステムを次回起動する場合に、従来の方法では、瞬断が発生する前の最新の状態まで復帰させることができず、瞬断が発生した場合のメモリシステムの最新の状態への復元処理については提案されていなかった。
本発明は、多値メモリを使用したNAND型フラッシュメモリを有するメモリシステムで、あるメモリセルトランジスタの上位ページに書込み中に、瞬断やプログラムエラー(メモリセルの破壊)が発生した場合でも、既にデータが書込まれた上記メモリセルトランジスタの下位ページの内容を復元することができるメモリシステムを提供することを目的とする。
本発明の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能な複数のメモリセルからなり、複数のページを有するメモリセルが複数配列して構成される不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行うとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行うコントローラと、を備えるメモリシステムであって、前記コントローラは、前記第2の記憶部にデータを追記的に書込む前に、前記データを書込むページと同じメモリセルの下位のページにデータが書込まれている場合に、該下位のページのデータをバックアップする退避処理手段と、前記下位のページのデータが破壊された場合に、前記バックアップされたデータを用いて破壊された前記データを復元する破壊情報復元処理手段と、を有することを特徴とするメモリシステムが提供される。
本発明によれば、多値メモリを使用したNAND型フラッシュメモリを有するメモリシステムで、あるメモリセルトランジスタの上位ページに書込み中に、瞬断やプログラムエラーが発生した場合でも、既にデータが書込まれた上記メモリセルトランジスタの下位ページの内容を復元することができるという効果を奏する。
以下に添付図面を参照して、本発明にかかるメモリシステムの最良な実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
このメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の2次記憶装置(SSD:Solid State Drive)として使用され、ホスト装置から書込要求が出されたデータを記憶し、またホスト装置から読出要求のあったデータを読み出してホスト装置に出力する機能を有する。図1は、本発明の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。このメモリシステム10は、第1の記憶部としてのDRAM(Dynamic Random Access Memory)11と、第2の記憶部としてのNAND型フラッシュメモリ(以下、NANDメモリという)12と、電源回路13と、コントローラとしてのドライブ制御部14と、を備える。
DRAM11は、データ転送用、管理情報記録用または作業領域用の記憶部として使用される。具体的には、データ転送用の記憶部としては、ホスト装置から書込要求があったデータをNANDメモリ12に書込む前に一時的に保存したり、ホスト装置から読出要求があったデータをNANDメモリ12から読み出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、DRAM11およびNANDメモリ12に記憶されるデータの格納位置を管理するための管理情報を格納するために使用される。さらに、作業領域用の記憶部としては、管理情報を復元する際に用いるログの展開時などに使用される。
NANDメモリ12は、データ保存用の記憶部として使用される。具体的には、ホスト装置側によって指定されたデータを記憶したり、DRAM11で管理される管理情報をバックアップ用に記憶したり、メモリシステム10の管理プログラム(ファームウェア)を保存したりする。この図1では、NANDメモリ12が4つのチャネル対応記憶領域120A〜120Dによって構成されている場合が示されている。1つのチャネル対応記憶領域120A〜120Dは、所定のサイズの記憶容量を有する8個のチップ122が1つにまとめられたパッケージ121を2つ含んでいる。また、各チャネル対応記憶領域120A〜120Dは、ドライブ制御部14とバス15を介して接続されており、各チャネル対応記憶領域120A〜120Dに接続されるバス15がチャネルを形成している。
電源回路13は、外部電源を受け、この外部電源を用いてメモリシステム10の各部に供給するための複数の内部電源を生成する。また、電源回路13は、外部電源の立ち上がりまたは立ち下りを検知して、パワーオンリセット信号を生成する。このパワーオンリセット信号は、ドライブ制御部14に送られる。
ドライブ制御部14は、DRAM11とNANDメモリ12を制御する。詳細は後述するが、たとえば、電源回路13からのパワーオンリセット信号に応じて、管理情報の復元処理や管理情報の保存処理を行う。また、ドライブ制御部14は、ATAインタフェース(図中では、ATA I/Fと表記)を介して、ホスト装置との間でデータを送受信し、RS232Cインタフェース(図中では、RS232C I/Fと表記)を介して、デバッグ用機器との間でデータを送受信する。さらに、ドライブ制御部14は、メモリシステム10の外部に設けられる状態表示用LEDを制御するための制御信号を出力する。
ここで、NANDメモリ12の構成について説明する。NANDメモリ12は、データ消去の単位であるブロックを基板上に複数配列して構成される。図2は、NANDメモリに含まれる1個のブロックの構成の一例を示す回路図である。なお、この図2において、紙面上の左右方向をX方向とし、紙面上のX方向に垂直な方向をY方向としている。
NANDメモリ12の各ブロックBLKは、X方向に沿って順に配列された(m+1)個(mは0以上の整数)のNANDストリングNSを備えている。各NANDストリングNSは、Y方向に隣接するメモリセルトランジスタMT間で拡散領域(ソース領域またはドレイン領域)を共有してY方向に直列に接続された(n+1)個(nは0以上の整数)のメモリセルトランジスタMT0〜MTnと、この(n+1)個のメモリセルトランジスタMT0〜MTnの列の両端に配置される選択トランジスタST1,ST2と、を有する。
各メモリセルトランジスタMT0〜MTnは、半導体基板上に形成された積層ゲート構造を有する電界効果型トランジスタから構成される。ここで、積層ゲート構造には、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)と、この電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極と、が含まれる。メモリセルトランジスタMT0〜MTnは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じて2ビット以上のデータを記憶することができる多値メモリである。なお、以下に示す実施の形態では、メモリセルトランジスタMTは4値を記憶することができる多値メモリである場合を例に挙げて説明するが、4値よりも大きな値を記憶することができる多値メモリであってもよい。
NANDストリングNSを構成するメモリセルトランジスタMT0〜MTnの制御ゲート電極には、それぞれワード線WL0〜WLnが接続されており、また各NANDストリングNS中のメモリセルトランジスタMTi(i=0〜n)間は、同一のワード線WLi(i=0〜n)によって共通接続されている。つまり、ブロックBLK内において同一行にあるメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。この同一のワード線WLiに接続される(m+1)個のメモリセルトランジスタMTiの群は1つのページを形成する単位となる。4値を記憶することができる多値メモリの場合には、同一のワード線WLiに接続されるメモリセルトランジスタMTiの群は、2つのページを形成する。最初に書込みが行われるページを下位ページとし、2回目に書込みが行われるページを上位ページとすると、NANDメモリ12では、このページ単位でデータの書込みと読み出しが行われる。
1つのブロックBLK内の(m+1)個の選択トランジスタST1のドレインにはそれぞれビット線BL0〜BLmが接続され、ゲートには選択ゲート線SGDが共通接続されている。また、選択トランジスタST1のソースはメモリセルトランジスタMT0のドレインと接続されている。同様に、1つのブロックBLK内の(m+1)個の選択トランジスタST2のソースにはソース線SLが共通接続され、ゲートには選択ゲート線SGSが共通接続されている。また、選択トランジスタST2のドレインはメモリセルトランジスタMTnのソースと接続されている。
なお、図示されていないが、1つのブロックBLK内のビット線BLj(j=0〜m)は、他のブロックBLKのビット線BLjとの間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロックBLK内において同一列にあるNANDストリングNS間は、同一のビット線BLjによって接続される。
NANDメモリ12では、上記したように、書込/読出の最小単位が同一のワード線WLiに接続されたメモリセルトランジスタMTi群内の1つのページであり、消去の最小単位が所定の数のページからなる1つのブロック(以下、物理ブロックともいう)である。また、このブロックが複数集まってプレーンを構成し、プレーンが複数集まって1つのチャネル対応記憶領域120A〜120Dを構成する。そして、このチャネル対応記憶領域120A〜120Dが複数集まって、1つのNANDメモリ12が構成される。以下の例では、チャネル数が4であり、プレーン数が2であるものとする。
このメモリシステムにおいては、チャネル対応記憶領域120A〜120Dが複数並列してドライブ制御部14に接続される構成となっているため、複数チャネルを並行して動作させたり、1チャネルのみを動作させたりすることが可能である。
なお、ドライブ制御部14の設定によって、所定の数の物理ブロックを単位として書込/読出処理を行ったり、消去を行ったりする場合があるが、この場合の所定の数の物理ブロックの集まりを論理ブロックというものとする。
つぎに、DRAM11とNANDメモリ12の機能構成について説明する。図3は、DRAMとNANDメモリの機能構成を模式的に示す図であり、(a)はDRAMの機能構成を示し、(b)はNANDメモリの機能構成を示している。
図3(a)に示されるように、DRAM11は、ホスト装置から書込要求のあったデータが記憶されるライトキャッシュ領域WCと、ホスト装置から読出要求のあったデータが記憶されるリードキャッシュ領域RCと、DRAM11およびNANDメモリ12に記憶されるデータの格納位置を管理するための管理情報が記憶される一時記憶領域111と、管理情報を復元する際に使用される作業領域112と、を有する。
図3(b)に示されるように、NANDメモリ12は、ホスト装置から書込要求のあったデータが格納されるデータ格納領域125と、DRAM11の一時記憶領域111で管理される管理情報が保存される管理情報保存領域126と、既に下位ページが書込まれたメモリセルトランジスタの上位ページにデータを書込んでいる最中に、異常な電源遮断(瞬断)の発生やプログラムエラー(NANDメモリへの書込み失敗)によって、下位ページが破壊されてしまう下位ページデータ破壊から下位ページに書込まれている内容を保全するために、下位ページの内容がバックアップされる退避領域127と、を有する。また、NANDメモリ12のデータ格納領域125は、データが追記される追記領域128と、データ格納領域125内の追記領域128以外の領域であり、1つのまたは所定の数の物理ブロック単位でデータが一括して書込まれる非追記領域129と、に分けることができる。この例では、追記領域128でのデータの書込単位をページサイズ単位とし、非追記領域129でのデータの書込単位を物理ブロックサイズ単位(たとえば512KB単位)または物理ブロックサイズ単位の整数倍であるものとする。そのため、データ格納領域125では、各ブロックを記憶するための領域を、さらにページサイズ単位の領域に分割して管理するようにしている。なお、プログラムエラーは、メモリセルトランジスタが破壊されてデータ保存ができない場合に生じるものである。
ここで、DRAM11の一時記憶領域111で管理される管理情報について説明する。図4は、メモリシステムで記憶されるデータを管理する層構造の一例を示す図である。なお、ここで、データとは、ホスト装置から書込要求/読出要求のあったデータのことをいうものとする。このメモリシステム10では、キャッシュの役割をするDRAM11でのデータ管理を行うDRAM管理層31と、NANDメモリ12での論理的なデータ管理を行う論理NAND管理層32と、NANDメモリ12での物理的なデータ管理やNANDメモリ12の延命処理などを行う物理NAND管理層33の3層構造でデータ管理が行われる。
DRAM11のライトキャッシュ領域WCとリードキャッシュ領域RCでは、ホスト装置のアドレス管理方法によって管理される論理アドレス(以下、LBA(Logical Block Address)という)で指定されたデータが、DRAM11上の所定の範囲の物理アドレス(以下、DRAM内物理アドレスという)に記憶される。また、DRAM管理層31内でのデータは、格納されるデータのLBAとDRAM内物理アドレスとの対応関係と、ページ中のセクタサイズ単位のデータの有無を示すセクタフラグと、を含むキャッシュ管理情報41によって管理される。
図5は、キャッシュ管理情報テーブルの一例を示す図である。ここでは、キャッシュ管理情報41は、DRAM11の1ページサイズの領域1つに対して1エントリとし、エントリ数はライトキャッシュ領域WCとリードキャッシュ領域RCに収まるページ数以下とする。各エントリには、ページサイズのデータのLBAと、DRAM内物理アドレスと、このページをセクタサイズで分割した各領域における有効データの位置を示すセクタフラグと、が関連付けられている。
NANDメモリ12では、DRAM11からのデータがNANDメモリ12上の所定の範囲の物理アドレス(以下、NAND内物理アドレスという)に格納される。多値メモリからなるNANDメモリ12では、書換可能回数に制約があるため、NANDメモリ12を構成する各ブロック間での書換回数が均等化するようにドライブ制御部14で制御されている。つまり、ドライブ制御部14は、NANDメモリ12内のあるNAND内物理アドレスに書込まれたデータの更新を行う場合に、そのデータが含まれるブロックのうち更新が必要な部分を反映させたデータを、元のブロックとは異なるブロックに書込み、元のブロックは無効化するようにして、NANDメモリ12を構成するブロック間での書換回数が均等化するように制御している。
このように、NANDメモリ12では、データの書込/読出処理と消去処理とでは処理単位が異なるとともに、データの更新処理においては、更新前のデータの位置(ブロック)と更新後のデータの位置(ブロック)とが異なるため、この実施の形態では、NAND内物理アドレスのほかにNANDメモリ12内で独自に使用されるNAND内論理アドレス(以下、NAND内論理アドレスという)を設けることにする。
そこで、論理NAND管理層32内でのデータは、DRAM11から受け取ったページサイズ単位のデータのLBAと、受け取ったデータを格納するNANDメモリ12の論理的なページ位置を示すNAND内論理アドレスとの間の関係と、NANDメモリ12における消去単位のブロック(以下、物理ブロックとする)とサイズが一致する論理的なブロック(以下、論理ブロックという)のアドレス範囲を示す関係と、を示す論理NAND管理情報42によって管理される。なお、物理ブロックを複数まとめたものを論理ブロックとしてもよい。また、物理NAND管理層33でのデータは、NANDメモリ12における論理ブロックのNAND内論理アドレスと、物理ブロックのNAND内物理アドレスとの対応関係を含むNAND内論理アドレス−物理アドレス変換情報(以下、論物変換情報という)43によって管理される。
図6は、論理NAND管理情報テーブルの一例を示す図であり、図7は、NAND内論物変換情報テーブルの一例を示す図である。図6に示されるように、論理NAND管理情報42は、論理ページ管理情報42aと論理ブロック管理情報42bとを含む。論理ページ管理情報42aは、1ページサイズの論理的な領域1つに対して1エントリとし、各エントリには、1ページサイズのデータのLBAと、NAND内論理アドレスと、このページが有効か否かを示すページフラグと、を含む。また、論理ブロック管理情報42bは、NANDメモリ12の1ブロックサイズの論理的な領域に対して設定されるNAND内論理アドレスを含む。さらに、これらの論理ページ管理情報42aと論理ブロック管理情報42bとは、データ格納領域125と退避領域127のそれぞれについて作成され、格納される。また、図7に示されるように、NAND内論物変換情報43は、NANDメモリ12のNAND内物理アドレスとNAND内論理アドレスとが対応付けられている。
これらの管理情報によって、ホスト装置で使用されるLBAと、NANDメモリ12で使用されるNAND内論理アドレスと、NANDメモリ12で使用されるNAND内物理アドレスとの間を対応付けることができ、ホスト装置と当該メモリシステム10との間のデータのやり取りを行うことが可能となる。
なお、以下では、DRAM管理層31で管理される管理情報は、電源オフなどによって消失するので、揮発性テーブルともいい、論理NAND管理層32および物理NAND管理層33で管理される管理情報は、電源オフなどによって消失した際にメモリシステム10の次回起動時に支障を与え、保存しておくことが必要なので、不揮発性テーブルともいう。
この不揮発性テーブルは、NANDメモリ12に格納されているデータを管理するものであり、この不揮発性テーブルがなければNANDメモリ12に格納されている情報にアクセスできなかったり、既に記憶した領域内のデータを消してしまったりするので、不意の電源オフなどに備えて最新の情報に保存しておく必要がある。そのため、この実施の形態では、NANDメモリ12の管理情報保存領域126には、少なくとも不揮発性テーブルを含む管理情報を最新の状態で保存している。そこでつぎに、NANDメモリ12の管理情報保存領域126に保存される管理情報保存情報について説明する。なお、以下では、不揮発性テーブルのみを管理情報保存領域126に保存する場合を例に挙げる。
図8は、管理情報保存領域に記憶される管理情報保存情報の内容の一例を模式的に示す図である。この管理情報保存情報には、ある時点における不揮発性テーブルの内容であるスナップショット210と、不揮発性テーブルの内容に変化があった場合に内容を変更した後の不揮発性テーブルとスナップショット210(またはスナップショット210と既に取られたログ)との差分情報であるログ220と、スナップショット210とこのスナップショット210に関する一番目に取得されたログ220の位置を示すポインタ230と、が格納される。ここで、スナップショット210とは、DRAM11の一時記憶領域111に記憶される管理情報のうち、少なくとも不揮発性テーブルを含む管理情報を所定の時点で保存した情報のことをいう。また、ログ220は、管理情報が変化する処理(たとえば、NANDメモリ12のデータ格納領域125へのデータの書込処理など)の前後で取られ、処理の前に保存するログを前ログ220Aといい、処理の後に保存するログを後ログ220Bという。
この図8において、スナップショット210、前ログ220A、後ログ220Bおよびポインタ230は、それぞれ異なるブロックに格納される。スナップショット210は、スナップショット格納用ブロックに格納される。スナップショット210には、NANDメモリ12の管理情報保存領域126内の不揮発性テーブルである論理NAND管理情報42とNAND内論物変換情報43とが含まれる。一般的に、NANDメモリ12の記憶容量が数十GB以上であると、データ管理に必要な管理情報の大きさは、物理ブロックの整数倍の大きさが必要となる。そのため、このスナップショット格納用ブロックは、複数個の物理ブロックで構成される論理ブロックに格納される。新しいスナップショット210は、以前に保存されていたスナップショット210とは別のブロックに一括して書込まれる。
前ログ220Aと後ログ220Bは、それぞれ前ログ格納用ブロックと後ログ格納用ブロックに追記的に格納される。これらの前ログ220Aと後ログ220Bは、スナップショット210の世代が変わっても、それぞれ同じ前ログ格納用ブロックと後ログ格納用ブロックに連続して追記的に書込まれる。また、これらの前ログ格納用ブロックと後ログ格納用ブロックは、それぞれ複数個の物理ブロックで構成される。図9は、ログの一例を示す図である。ログ220は、変更対象の管理情報となる対象情報と、その対象情報中の変更対象となるエントリである対象エントリと、その対象エントリ中の変更対象となる項目である対象項目と、その対象項目の変更の内容である変更内容と、を含む。
ポインタ230は、指示情報格納用ブロックに追記的に格納される。ポインタ230は、スナップショット210の格納位置を示すブロックの先頭アドレスと、前ログ220Aと後ログ220Bの格納位置を示すブロックの先頭アドレスとそのブロック内での先頭ページの位置を示すものであればよい。ただし、ポインタ230のうちスナップショット210の格納位置を示す部分は、スナップショット210に含まれる各管理情報の先頭アドレスを示すものであってもよい。また、ポインタ230は、スナップショット210が新たに保存された場合や、ログ格納用ブロック内のログ220を格納する物理ブロックが変更された場合に更新される。なお、前ログ220Aと後ログ220Bのポインタは、指示情報格納用ブロック内ではなく、スナップショット210の中に格納されていてもよい。
つぎに、ドライブ制御部14の機能について説明する。図10は、ドライブ制御部の機能構成の一例を示すブロック図である。ドライブ制御部14は、DRAM11−NANDメモリ12間のデータ転送やNANDメモリ12に関する各種機能の制御を行うデータ管理部141と、ATAインタフェースから受けた指示に基づいてデータ管理部141と協働してデータ転送処理を行うATAコマンド処理部142と、データ管理部141およびATAコマンド処理部142と協動して各種のセキュリティ情報を管理するセキュリティ管理部143と、電源オン時に、管理プログラム(ファームウェア)をNANDメモリ12から図示しないメモリ(たとえば、SRAM(Static RAM))にロードするブートローダ144と、ドライブ制御部14内の各コントローラや回路の初期化を行う初期化管理部145と、外部からRS232Cインタフェースを介して供給されたデバッグ用データを処理するデバッグサポート部146と、を備える。
図11は、データ管理部の機能構成の一例を示すブロック図である。データ管理部141は、DRAM11とNANDメモリ12との間でデータ転送を行うデータ転送処理部151と、DRAM11およびNANDメモリ12に記憶されるデータの変更に伴って管理情報の変更や保存を行う管理情報管理部152と、追記領域128へのデータの追記処理時に下位ページデータ破壊で破壊される可能性のあるデータを退避領域127に退避する退避処理部155と、追記領域128へのデータの追記処理中に下位ページデータ破壊で破壊された情報を退避領域127内のデータを用いて復元する破壊情報復元処理部156と、電源オン時などにNANDメモリ12に保存された管理情報に基づいて最新の管理情報を復元する管理情報復元部157と、を備える。
また、管理情報管理部152は、管理情報書込部153と、管理情報保存部154と、をさらに備える。管理情報書込部153は、データ転送処理部151によるDRAM11またはNANDメモリ12で記憶されるデータの変更処理によって管理情報の更新が必要な場合に、DRAM11に記憶されている管理情報の更新を行う。
管理情報保存部154は、メモリシステム10が所定の条件を満たしたとき、管理情報をスナップショット210として、または管理情報中の更新された分の情報をログ220として、NANDメモリ12の管理情報保存領域126に保存する。また、このスナップショット210またはログ220(前ログ220Aと後ログ220B)の保存に伴ってポインタ230が書込まれる位置が変更される場合には、このポインタ230に対する更新処理も行う。
管理情報保存部154によるスナップショット210は、NANDメモリ12の管理情報保存領域126中のログ220(前ログ220Aと後ログ220B)を記憶するために設けられたログ記憶領域が埋まってしまった(領域がデータで満杯になった)場合など、本メモリシステム10の所定の状況に応じて実行される。
また、管理情報管理部152によるログ220(前ログ220A、後ログ220B)の保存は、DRAM11に記憶されている管理情報(不揮発性テーブル)の更新を伴うNANDメモリ12上のデータ更新時(NANDメモリ12へのデータ書込みが必要な場合)に行われる。
退避処理部155は、データ転送処理部151または管理情報保存部154で追記領域128に書込データを書込む際に、書込データを書込むページが、既に書込まれた既書込みページと同じメモリセルトランジスタの異なるページ(上位ページ)である場合に、書込データの書込み中に瞬断やプログラムエラーの発生による下位ページデータ破壊の発生に備えて、既書込ページに格納されている既書込データを退避領域127に保存する処理を行う。
図12は、メモリセルのデータとメモリセルの閾値電圧の関係とNANDメモリに対する書き込み順序の一例を示す図であり、図13は、追記処理時における下位ページデータ破壊を説明するための図である。まず、消去動作を行なうとメモリセルのデータは“0”となる。つぎに、図12(a)に示されるように、下位ページの書き込みを行なうと、メモリセルのデータはデータ“0”とデータ“2”になる。ついで、図12(b)に示されるように、上位ページの書き込み前に隣接セルに実際のデータの閾値電圧以下のデータが書き込まれる。すると、このセルに書き込まれたデータにより、データ“2”の閾値電圧の分布が大きくなる。この後、上位ページのデータが書き込まれると、メモリセルのデータは、図12(c)に示されるように、本来の閾値電圧を有するデータ“0”〜“3”となる。本実施の形態では、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
つぎに、NANDメモリ12への書込み処理について説明する。図12(d)に示されるように、ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。なお、図12(d)では、説明の便宜上、ワード線を4本としている。
第1番目の書き込みは、メモリセル1の下位ページに1ビットのデータが書きこまれる。第2番目の書き込みは、メモリセル1とワード方向に隣接したメモリセル2の下位ページに1ビットのデータが書きこまれる。第3番目の書き込みは、メモリセル1とビット方向に隣接したメモリセル3の下位ページに1ビットのデータが書きこまれる。第4番目の書き込みは、メモリセル1と対角に隣接したメモリセル4の下位ページに1ビットのデータが書きこまれる。
第5番目の書き込みは、メモリセル1の上位ページに1ビットのデータが書きこまれる。第6番目の書き込みは、メモリセル1とワード方向に隣接したメモリセル2の上位ページに1ビットのデータが書きこまれる。第7番目の書き込みは、メモリセル3とビット方向に隣接したメモリセル5の下位ページに1ビットのデータが書きこまれる。第8番目の書き込みは、メモリセル3と対角に隣接したメモリセル6の下位ページに1ビットのデータが書きこまれる。
第9番目の書き込みは、メモリセル3の上位ページに1ビットのデータが書きこまれる。第10番目の書き込みは、メモリセル3とワード方向に隣接したメモリセル4の上位ページに1ビットのデータが書きこまれる。第11番目の書き込みは、メモリセル5とビット方向に隣接したメモリセル7の下位ページに1ビットのデータが書きこまれる。第12番目の書き込みは、メモリセル5と対角に隣接したメモリセル8の下位ページに1ビットのデータが書きこまれる。
第13番目の書き込みは、メモリセル5の上位ページに1ビットのデータが書きこまれる。第14番目の書き込みは、メモリセル5とワード方向に隣接したメモリセル6の上位ページに1ビットのデータが書きこまれる。第15番目の書き込みは、メモリセル7の上位ページに1ビットのデータが書きこまれる。第16番目の書き込みは、メモリセル7とワード方向に隣接したメモリセル8の上位ページに1ビットのデータが書きこまれる。
ここで説明した下位ページと上位ページとの間の関係、つまり下位ページデータ破壊を引き起こす可能性のある下位ページと上位ページとの関係、を、ページ位置情報として、退避処理部155が保持しているものとする。
図13(a)での1つの物理ブロック内のページは、図12に対応しているものとする。つまり、1〜4、7〜8、11〜12ページは図12の下位ページであり、5〜6、9〜10、13〜16ページは図12の上位ページである。このようなページ構造を有するブロックへの追記処理における退避処理が必要な場合と不必要な場合を分けて説明する。なお、図13では、下位ページと上位ページに説明上分離して表示しているが、これらの下位ページと上位ページとを合わせたものが1つの物理ブロックを構成するものとする。
(1)退避処理が不必要な場合
(1−1)下位ページにのみデータを書込む場合
図13(b)に示されるように、下位ページのみ(たとえば、1〜4ページ)にデータを追記処理する場合には、退避処理が不必要である。この場合には、データを下位ページに書込中に瞬断が発生しても、下位ページデータ破壊は発生しないからである。
(1−1)下位ページにのみデータを書込む場合
図13(b)に示されるように、下位ページのみ(たとえば、1〜4ページ)にデータを追記処理する場合には、退避処理が不必要である。この場合には、データを下位ページに書込中に瞬断が発生しても、下位ページデータ破壊は発生しないからである。
(1−2)既書込ページがない下位ページと上位ページにまたがってデータを書込む場合
図13(c)に示されるように、既書込ページがない下位ページから上位ページにまたがってデータを追記処理する場合には、退避処理が不必要である。この図の場合には、下位の1〜4ページから上位の5〜6ページに書込みを行う場合であり、上位の5〜6ページに対応する下位の1〜2ページは既書込ページではないため、下位ページデータ破壊は発生しないからである。
図13(c)に示されるように、既書込ページがない下位ページから上位ページにまたがってデータを追記処理する場合には、退避処理が不必要である。この図の場合には、下位の1〜4ページから上位の5〜6ページに書込みを行う場合であり、上位の5〜6ページに対応する下位の1〜2ページは既書込ページではないため、下位ページデータ破壊は発生しないからである。
(2)退避処理が必要な場合
(2−1)上位ページにのみデータを書込む場合
図13(d)に示されるように、上位ページのみにデータを追記処理する場合、下位ページは必ず既書込ページである。この場合、書込データを書込む上位ページによって下位ページデータ破壊を起こす可能性のある下位ページをページ位置情報から求め、その下位ページの記憶内容を退避領域127に退避させる。この処理は、上位ページの書込中に瞬断が発生した場合、対応する下位ページ(すなわち、書込みを行う上位ページと同じメモリセルトランジスタの下位ページ)が破壊される可能性があるためである。この図の場合には、上位ページの5〜6ページに書込みを行う場合には、図12のページ位置情報から下位ページの1〜2ページを退避領域127に退避させる。
(2−1)上位ページにのみデータを書込む場合
図13(d)に示されるように、上位ページのみにデータを追記処理する場合、下位ページは必ず既書込ページである。この場合、書込データを書込む上位ページによって下位ページデータ破壊を起こす可能性のある下位ページをページ位置情報から求め、その下位ページの記憶内容を退避領域127に退避させる。この処理は、上位ページの書込中に瞬断が発生した場合、対応する下位ページ(すなわち、書込みを行う上位ページと同じメモリセルトランジスタの下位ページ)が破壊される可能性があるためである。この図の場合には、上位ページの5〜6ページに書込みを行う場合には、図12のページ位置情報から下位ページの1〜2ページを退避領域127に退避させる。
(2−2)既書込ページを有する下位ページと上位ページにまたがってデータを書込む場合
図13(e)に示されるように、既書込ページが存在する下位ページから上位ページにまたがってデータを追記処理する場合には、そのデータのうち上位ページに書込むデータを、その上位ページによって下位ページデータ破壊を起こす可能性のある下位ページをページ位置情報から求め、その下位ページの記憶内容を退避領域127に退避させる。この図では、4〜6ページと下位ページから上位ページに渡ってデータを追記する場合が示されているが、この場合には上位ページに書込まれる5〜6ページに対応する下位ページの1〜2ページを図12のページ位置情報から求め、この1〜2ページの内容を退避領域127に退避させる。
図13(e)に示されるように、既書込ページが存在する下位ページから上位ページにまたがってデータを追記処理する場合には、そのデータのうち上位ページに書込むデータを、その上位ページによって下位ページデータ破壊を起こす可能性のある下位ページをページ位置情報から求め、その下位ページの記憶内容を退避領域127に退避させる。この図では、4〜6ページと下位ページから上位ページに渡ってデータを追記する場合が示されているが、この場合には上位ページに書込まれる5〜6ページに対応する下位ページの1〜2ページを図12のページ位置情報から求め、この1〜2ページの内容を退避領域127に退避させる。
破壊情報復元処理部156は、追記領域128の上位ページへの追記処理中にプログラムエラーや瞬断が発生して下位ページデータ破壊が発生した後、メモリシステム10の電源がオンされたときに、下位ページデータ破壊された位置のデータを退避領域127に退避させたデータを用いて復元する処理を行う。
管理情報復元部157は、メモリシステム10に電源がオンされると、NANDメモリ12の管理情報保存領域126に保存されている管理情報保存情報に基づいた管理情報の復元処理を行う。具体的には、管理情報保存領域126中のポインタ230およびログ220(前ログ220Aまたは後ログ220B)へと順にたどっていき、最新のスナップショット210に対するログ220(前ログ220Aまたは後ログ220B)が存在するか否かを判定する。ログ220が存在しない場合には、スナップショット格納用ブロックのスナップショット210を管理情報としてDRAM11に復元する。また、ログ220が存在する場合には、プログラムエラーや瞬断などの異常終了であった場合であるので、スナップショット格納用ブロックからスナップショット210を取得し、ログ格納用ブロックからログ220(前ログ220Aまたは後ログ220B)を取得して、DRAM11上でスナップショット210にログ220を反映させて管理情報(不揮発性テーブル)の復元を行う。
ここで、追記領域128へのデータ書込処理について説明する。図14は、メモリシステムの追記領域へのデータ書込処理手順の一例を示すフローチャートである。なお、ここでは、メモリシステム10がホスト装置と接続され、ホスト装置の2次記憶装置として動作しているとともに、ホスト装置(メモリシステム10)が起動状態にあるものとする。
メモリシステム10が起動した状態で、データの追記処理の指示を受けると(ステップS11)、退避処理部155は、追記処理を行うデータ(以下、書込データという)の書込位置を取得する(ステップS12)。ついで、退避処理部155は、取得した書込位置の一部が上位ページを含みかつ上位ページに対応する下位ページが既書込ページか否かを判定する(ステップS13)。
書込位置の一部が上位ページを含みかつ上位ページに対応する下位ページが既書込ページの場合(ステップS13でYesの場合)には、退避処理部155は、書込位置の上位ページと同じメモリセルを使用する下位ページを、ページ位置情報を用いて取得する(ステップS14)。ついで、管理情報管理部152は、追記処理の実行による管理情報の更新計画(退避領域127への保存処理を含む)を決定し(ステップS15)、更新計画をNANDメモリ12の管理情報保存領域126に前ログ220Aとして保存する(ステップS16)。その後、退避処理部155は、ステップS14で取得した下位ページに格納されているデータの内容を退避領域127に保存する(ステップS17)。ついで、データ転送処理部151は、書込データを書込位置に追記した後(ステップS18)、後ログ220BをNANDメモリ12の管理情報保存領域126に保存して(ステップS19)、データの追記処理が終了する。
一方、書込位置の一部が上位ページを含まない場合または上位ページに対応する下位ページが既書込ページではない場合(ステップS13でNoの場合)には、管理情報管理部152は、追記処理の実行による管理情報の更新計画を決定し(ステップS20)、更新計画をNANDメモリ12の管理情報保存領域126に前ログ220Aとして保存する(ステップS21)。その後、データ転送処理部151は、書込データを書込位置に追記した後(ステップS22)、後ログ220BをNANDメモリ12の管理情報保存領域126に保存して(ステップS23)、データの追記処理が終了する。
なお、上記したフローチャートの処理の実行に際しては、常に異常な電源遮断(瞬断)が発生する可能性がある。また、NANDメモリ12に書込まれたデータと管理情報とは、常に整合性を維持する必要がある。そこで、上記のフローチャートに示す処理の実行中において瞬断が発生した場合に備えて、データを保護するためのルールが定められる。図15は、追記処理におけるNANDメモリ内のデータと管理情報とを整合させるための規則の一例を示す図である。ここで、横軸は時間tの流れを示している。ここでは、前の何らかの処理に対する後ログ220Bの書込処理(ステップS300)が終わった後、つぎの追記処理について前ログ220Aの書込処理(保存)(ステップS301)、書込データの追記処理(ステップS302)、後ログ220Bの書込処理(保存)(ステップS303)が行われている場合が示されている。
前ログ220Aの書込処理(ステップS301)から書込データの追記処理(ステップS302)までで瞬断が発生した場合には、NANDメモリ12への書込データの書込処理が終了していない。このような状況において、瞬断が発生するまでの操作を破棄せずに、前ログ220Aに書込まれた内容を管理情報として採用してしまうと、実際にはNANDメモリ12には書込まれていない情報が書込まれたことになってしまい、NANDメモリ12に書込まれたデータと管理情報との間に不整合が生じてしまう。そこで、この場合には、瞬断が発生するまでの操作を破棄することとする。また、この操作を破棄する区間のことを操作破棄区間D1という。
一方、書込データの追記処理(ステップS302)が終了し、後ログ220Bの書込処理(ステップS303)から後の段階で瞬断が発生した場合には、NANDメモリ12への書込データの書込処理が終了している。このような状況において、瞬断が発生するまでの操作を破棄せずに、前ログ220Aに書込まれた内容を管理情報として採用しても、NANDメモリ12には書込データが書込まれているので、問題は生じない。そこで、この場合には、瞬断が発生する間での操作を確定するものとする。また、この操作を確定する区間のことを操作確定区間D2という。
つぎに、図13に示すデータの追記処理中に瞬断が発生した後のNANDメモリ12の復元処理について説明する。図16〜図17は、瞬断発生後の書込データの復元処理の一例を示すフローチャートである。なお、ここでも、メモリシステム10がホスト装置と接続され、ホスト装置の2次記憶装置として動作しているものとする。
まず、ホスト装置の電源がオンされ、メモリシステム10に対して起動指示が出されると(ステップS31)、図10に示されるブートローダ144は、NANDメモリ12から図示しない管理プログラムをSRAMやDRAM11などのメモリに転送し(ステップS32)、管理プログラムを起動する(ステップS33)。この管理プログラムの起動によって、図11に示されるデータ管理部141内の各機能処理部による処理が可能な状態となる。
ついで、管理情報復元部157は、NANDメモリ12の管理情報保存領域126中の最新のポインタ230を読込み、スナップショット210と前ログ220Aと後ログ220Bが格納されているそれぞれのブロックのアドレスを取得する(ステップS34)。
ついで、管理情報復元部157は、ステップS34で取得したNANDメモリ12中のアドレスからスナップショット210を読込み、DRAM11の一時記憶領域111に復元する(ステップ35)。
ついで、管理情報復元部157は、NANDメモリ12中の前ログ220Aと後ログ220Bを参照して、ログの最終書込位置を調べ、書込可能なページ位置を比較することで、最後に書込まれたログと電源断のタイミングを検出する(ステップS36)。その後、瞬断が発生したか否かを判定する(ステップS37)。この瞬断発生の有無の判定は、基準となるスナップショット210に関してとられた最初の前ログ220Aの書込位置から最終書込位置までのページ数と、同じく最初の後ログ220Bの書込位置から最終書込位置までのページ数とを比較し、両者が異なっている場合には、瞬断が発生したものと判定し、そうでない場合には瞬断が発生していないものとする。また、両者のページ数が同じ場合には、最後に書込まれたログの内容を比較し、両者が同じである場合には、瞬断が発生していないものと判定し、そうでない場合には瞬断が発生したものとする。
瞬断が発生していない場合(ステップS37でNoの場合)には、ステップS35でDRAM11の一時記憶領域111に復元したスナップショット210から管理情報を復元し(ステップS38)、復元処理が終了する。
一方、瞬断が発生した場合(ステップS37でYesの場合)には、瞬断が発生したのは操作破棄区間D1か否かを判定する(ステップS39)。瞬断が発生したのが操作破棄区間D1でない場合、すなわち操作確定区間D2である場合(ステップS39でNoの場合)には、ステップS34で取得した格納位置にある前ログ220AをDRAM11の作業領域112に展開し(ステップS40)、スナップショット210に古い前ログ220Aから順に反映させて管理情報を復元し(ステップS41)、復元処理が終了する。
ステップS39で、瞬断が発生したのが操作破棄区間D1である場合(ステップS39でYesの場合)には、ステップS34で取得した格納位置にある後ログ220BをDRAM11の作業領域112に展開し(ステップS42)、退避領域127に追記中のデータがあるか否かを判定する(ステップS43)。退避領域127に追記中のデータがない場合(ステップS43でNoの場合)には、さらに追記領域128に追記中のデータがあるか否かを判定する(ステップS44)。追記領域128に追記中のデータがある場合(ステップS44でYesの場合)には、下位ページへの追記処理中の電源断であるため、下位ページデータ破壊による過去のデータの破壊はないものと判定される(ステップS45)。そして、該当ページを無効化するか、該当ブロックの有効ページを新しく確保したブロックにコピーする(ステップS46)。その後、ステップS42でDRAM11に展開した古い後ログ220Bから、破棄した処理の前の段階の後ログ220Bまでを順にスナップショット210に反映させて管理情報を復元し(ステップS47)、復元処理が終了する。
ステップS44で、追記領域128に追記中のデータがない場合(ステップS44でNoの場合)には、追記処理を行う前の段階での瞬断であると判定される(ステップS48)。そのため、追記領域128のデータのリカバリ処理は不要であり、ステップS42でDRAM11に展開した古い後ログ220Bから順にスナップショット210に反映させて管理情報を復元し(ステップS49)、復元処理が終了する。
また、ステップS43で、退避領域127に追記処理中のデータがある場合(ステップS43でYesの場合)には、さらに追記領域128に追記中のデータあるか否かを判定する(ステップS50)。追記領域128に追記処理中のデータがある場合(ステップS50でYesの場合)には、上位ページへの追記処理中の電源断であるため、下位ページデータ破壊による過去のデータの破壊があり得ると判定される(ステップS51)。また、追記領域128への書込処理が始まっていることから、退避領域127へのバックアップ処理は完了していることが保障される。そのため、追記領域128内の破壊されたページを、退避領域127内のバックアップから復元し、新しく確保したブロックにコピーを行う(ステップS52)。同時に、ステップS42でDRAM11に展開した古い後ログ220Bから順にスナップショット210に反映させて管理情報を復元し(ステップS53)、復元処理が終了する。
さらに、ステップS50で追記領域128に追記処理中のデータがない場合(ステップS50でNoの場合)には、追記領域128への追記を始める前の段階での瞬断であるため、データのリカバリ処理は不要であり(ステップS54)、ステップS42でDRAM11に展開した古い後ログ220Bから順にスナップショット210に反映させて管理情報を復元し(ステップS55)、復元処理が終了する。なお、この場合には、退避領域127へ追記中のページの内容を書込不可とする処理を行う。以上の手順によって、追記データに対する瞬断発生時の復元処理が終了する。
以上のように、本実施の形態によれば、2ビット以上の多値メモリセルからなるNANDメモリ12への上位ページへの追記処理時において、追記処理を行う上位ページと同じ多値メモリセルの下位ページに格納されたデータの内容を退避領域127に保存してから、上位ページへの書込処理を行うようにしたので、書込処理時に瞬断の発生やプログラムエラーの発生によって、下位ページデータ破壊が発生してしまった場合でも、下位ページデータ破壊によって破壊されたデータを退避領域127に保存されたデータを用いて復元することができるという効果を有する。
なお、上述した説明では、NANDメモリ12を構成するメモリセルトランジスタMTが2ビット以上の多値メモリである場合を例に挙げたが、2ビット以上の多値メモリであれば、どのようなメモリセルトランジスタMTに対しても適用することができる。その際、ページは上位ページ、中位ページ、下位ページというように3ページ以上で構成されることもあり、その構成においては上位ページ書き込み時に中位ページおよび下位ページで下位ページデータ破壊が発生する可能性がある。この場合は、中位ページおよび下位ページのデータを退避領域127に保存する。
さらに、上記の説明では、退避領域127をNANDメモリ12内に設けた場合を説明したが、退避領域127用の記憶部をNANDメモリ12とは別の種類の不揮発性メモリに設けるように構成してもよい。また、電荷蓄積層は浮遊ゲート型に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Semiconductor)構造のようなシリコン窒化膜を用いた電荷トラップ型やその他の方式であってもよい。
10…メモリシステム、11…DRAM、12…NANDメモリ、13…電源回路、14…ドライブ制御部、15…バス、31…DRAM管理層、32…論理NAND管理層、33…物理NAND管理層、41…キャッシュ管理情報、42…論理NAND管理情報、42a…論理ページ管理情報、42b…論理ブロック管理情報、43…NAND内論物変換情報、111…一時記憶領域、112…作業領域、120A〜120D…チャネル対応記憶領域、125…データ格納領域、126…管理情報保存領域、127…退避領域、128…追記領域、129…非追記領域、141…データ管理部、151…データ転送処理部、152…管理情報管理部、153…管理情報書込部、154…管理情報保存部、155…退避処理部、156…破壊情報復元処理部、157…管理情報復元部、160…ページ位置情報、210…スナップショット、220…ログ、220A…前ログ、220B…後ログ、230…ポインタ。
Claims (3)
- 揮発性の第1の記憶部と、
多値データを記憶可能な複数のメモリセルからなり、複数のページを有するメモリセルが複数配列して構成される不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行うとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行うコントローラと、
を備えるメモリシステムであって、
前記コントローラは、
前記第2の記憶部にデータを追記的に書込む前に、前記データを書込むページと同じメモリセルの下位のページにデータが書込まれている場合に、該下位のページのデータをバックアップする退避処理手段と、
前記下位のページのデータが破壊された場合に、前記バックアップされたデータを用いて破壊された前記データを復元する破壊情報復元処理手段と、
を有することを特徴とするメモリシステム。 - 前記退避処理手段は、同じ前記メモリセルに対して設定された異なるページ間の関係を示すページ位置情報に基づいて、前記データを書込むページと同じメモリセルの下位のページにデータが書込まれているかを判定することを特徴とする請求項1に記載のメモリシステム。
- 前記退避処理手段は、前記破壊される可能性のある既書込データを前記第2の記憶部にバックアップすることを特徴とする請求項1または2に記載のメモリシステム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008048799A JP2009205555A (ja) | 2008-02-28 | 2008-02-28 | メモリシステム |
PCT/JP2009/052588 WO2009107505A1 (en) | 2008-02-28 | 2009-02-10 | Memory system |
CN200980000129A CN101681311A (zh) | 2008-02-28 | 2009-02-10 | 存储器系统 |
EP09711527.3A EP2248026B1 (en) | 2008-02-28 | 2009-02-10 | Memory system |
US12/529,235 US8190812B2 (en) | 2008-02-28 | 2009-02-10 | Memory system capable of restoring broken information |
KR1020097018050A KR101099804B1 (ko) | 2008-02-28 | 2009-02-10 | 메모리 시스템 |
TW098105314A TWI419159B (zh) | 2008-02-28 | 2009-02-19 | 記憶體系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008048799A JP2009205555A (ja) | 2008-02-28 | 2008-02-28 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009205555A true JP2009205555A (ja) | 2009-09-10 |
Family
ID=41015905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008048799A Pending JP2009205555A (ja) | 2008-02-28 | 2008-02-28 | メモリシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US8190812B2 (ja) |
EP (1) | EP2248026B1 (ja) |
JP (1) | JP2009205555A (ja) |
KR (1) | KR101099804B1 (ja) |
CN (1) | CN101681311A (ja) |
TW (1) | TWI419159B (ja) |
WO (1) | WO2009107505A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
CN102693171A (zh) * | 2011-08-05 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种信息录入系统的恢复方法及系统 |
CN103377099A (zh) * | 2012-04-19 | 2013-10-30 | 中国移动通信集团公司 | Nfc移动终端数据备份及恢复的方法和装置 |
JP2013229086A (ja) * | 2012-04-27 | 2013-11-07 | Sony Corp | メモリ装置、メモリ制御装置、メモリ制御方法 |
JP2016501413A (ja) * | 2012-12-07 | 2016-01-18 | ウェスタン デジタル テクノロジーズ インコーポレーテッド | ソリッドステートドライブ内の下位ページデータ復旧を行うシステム及び方法 |
US9330752B2 (en) | 2010-12-17 | 2016-05-03 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
US9589888B2 (en) | 2012-12-04 | 2017-03-07 | Samsung Electronics Co., Ltd. | Storage devices, flash memories, and methods of operating storage devices |
US9811275B2 (en) | 2015-02-27 | 2017-11-07 | Toshiba Memory Corporation | Memory system and data control method |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151060B2 (en) * | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
JP2009211215A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
CN102053916B (zh) * | 2010-12-17 | 2013-06-05 | 曙光信息产业股份有限公司 | 一种分配内核大片连续内存的方法 |
US8745329B2 (en) * | 2011-01-20 | 2014-06-03 | Google Inc. | Storing data across a plurality of storage nodes |
CN102609370B (zh) * | 2012-02-06 | 2014-12-17 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN104854566B (zh) | 2012-10-19 | 2018-05-04 | 慧与发展有限责任合伙企业 | 崩溃恢复的方法和系统 |
KR102094334B1 (ko) | 2013-03-15 | 2020-03-27 | 삼성전자주식회사 | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 |
KR102190399B1 (ko) | 2013-10-11 | 2020-12-11 | 삼성전자주식회사 | 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템 |
US9245633B2 (en) | 2014-01-22 | 2016-01-26 | Htc Corporation | Storage device, electronic device, and method for programming memory |
US9888077B2 (en) | 2014-04-22 | 2018-02-06 | Western Digital Technologies, Inc. | Metadata based data alignment in data storage systems |
WO2016144293A1 (en) * | 2015-03-06 | 2016-09-15 | Hewlett Packard Enterprise Development Lp | Controller control program |
KR102405054B1 (ko) * | 2015-11-27 | 2022-06-08 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR20180076605A (ko) | 2016-12-28 | 2018-07-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102277728B1 (ko) * | 2017-07-31 | 2021-07-14 | 삼성전자주식회사 | 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법 |
JP2020081661A (ja) * | 2018-11-29 | 2020-06-04 | キヤノン株式会社 | 放射線撮影システム、制御装置、制御方法及びプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007023674A1 (ja) * | 2005-08-22 | 2007-03-01 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06266597A (ja) | 1993-03-11 | 1994-09-22 | Fujitsu Ltd | ログ取得方式 |
JP4059473B2 (ja) * | 2001-08-09 | 2008-03-12 | 株式会社ルネサステクノロジ | メモリカード及びメモリコントローラ |
JP2004062759A (ja) * | 2002-07-31 | 2004-02-26 | Hitachi Ltd | データベースログの管理方法、その装置およびそのプログラム |
JP2004086991A (ja) * | 2002-08-27 | 2004-03-18 | Renesas Technology Corp | 不揮発性記憶装置 |
US7613880B2 (en) * | 2002-11-28 | 2009-11-03 | Renesas Technology Corp. | Memory module, memory system, and information device |
JP3935139B2 (ja) | 2002-11-29 | 2007-06-20 | 株式会社東芝 | 半導体記憶装置 |
US7814057B2 (en) | 2005-04-05 | 2010-10-12 | Microsoft Corporation | Page recovery using volume snapshots and logs |
JP4805696B2 (ja) * | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
US7945825B2 (en) * | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
JP5317689B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
JP5198245B2 (ja) * | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
JP5377175B2 (ja) * | 2009-09-08 | 2013-12-25 | 株式会社東芝 | コントローラ、及びデータ記憶装置 |
-
2008
- 2008-02-28 JP JP2008048799A patent/JP2009205555A/ja active Pending
-
2009
- 2009-02-10 EP EP09711527.3A patent/EP2248026B1/en not_active Not-in-force
- 2009-02-10 WO PCT/JP2009/052588 patent/WO2009107505A1/en active Application Filing
- 2009-02-10 KR KR1020097018050A patent/KR101099804B1/ko not_active IP Right Cessation
- 2009-02-10 US US12/529,235 patent/US8190812B2/en active Active
- 2009-02-10 CN CN200980000129A patent/CN101681311A/zh active Pending
- 2009-02-19 TW TW098105314A patent/TWI419159B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007023674A1 (ja) * | 2005-08-22 | 2007-03-01 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
US9330752B2 (en) | 2010-12-17 | 2016-05-03 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
CN102693171A (zh) * | 2011-08-05 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种信息录入系统的恢复方法及系统 |
CN103377099A (zh) * | 2012-04-19 | 2013-10-30 | 中国移动通信集团公司 | Nfc移动终端数据备份及恢复的方法和装置 |
JP2013229086A (ja) * | 2012-04-27 | 2013-11-07 | Sony Corp | メモリ装置、メモリ制御装置、メモリ制御方法 |
US9589888B2 (en) | 2012-12-04 | 2017-03-07 | Samsung Electronics Co., Ltd. | Storage devices, flash memories, and methods of operating storage devices |
JP2016501413A (ja) * | 2012-12-07 | 2016-01-18 | ウェスタン デジタル テクノロジーズ インコーポレーテッド | ソリッドステートドライブ内の下位ページデータ復旧を行うシステム及び方法 |
US9952939B1 (en) | 2012-12-07 | 2018-04-24 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
US9811275B2 (en) | 2015-02-27 | 2017-11-07 | Toshiba Memory Corporation | Memory system and data control method |
Also Published As
Publication number | Publication date |
---|---|
EP2248026B1 (en) | 2015-08-26 |
KR20090117761A (ko) | 2009-11-12 |
CN101681311A (zh) | 2010-03-24 |
WO2009107505A1 (en) | 2009-09-03 |
KR101099804B1 (ko) | 2011-12-27 |
EP2248026A4 (en) | 2010-11-10 |
US20110185108A1 (en) | 2011-07-28 |
TWI419159B (zh) | 2013-12-11 |
US8190812B2 (en) | 2012-05-29 |
EP2248026A1 (en) | 2010-11-10 |
TW200947439A (en) | 2009-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009205555A (ja) | メモリシステム | |
JP4675984B2 (ja) | メモリシステム | |
US8285954B2 (en) | Memory system managing a plurality of logs | |
TWI419161B (zh) | 儲存管理資訊之記憶體系統及控制其之方法 | |
US8706988B2 (en) | Memory system | |
KR101103110B1 (ko) | 메모리 시스템 | |
KR101102155B1 (ko) | 메모리 시스템 | |
JP4551938B2 (ja) | メモリシステム | |
JP4558052B2 (ja) | メモリシステム | |
JP2009211202A (ja) | メモリシステム | |
JP4551939B2 (ja) | メモリシステム | |
JP2009211196A (ja) | メモリシステム | |
JP2009211213A (ja) | メモリシステム | |
JP2009211188A (ja) | メモリシステム | |
JP2009211218A (ja) | メモリシステムおよび瞬断判定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120918 |