JP2009211188A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2009211188A JP2009211188A JP2008051267A JP2008051267A JP2009211188A JP 2009211188 A JP2009211188 A JP 2009211188A JP 2008051267 A JP2008051267 A JP 2008051267A JP 2008051267 A JP2008051267 A JP 2008051267A JP 2009211188 A JP2009211188 A JP 2009211188A
- Authority
- JP
- Japan
- Prior art keywords
- log
- management information
- storage area
- storage
- block
- 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 173
- 238000003860 storage Methods 0.000 claims abstract description 384
- 238000007726 management method Methods 0.000 claims abstract description 192
- 238000013523 data management Methods 0.000 claims abstract description 18
- 230000004913 activation Effects 0.000 claims description 4
- 230000002950 deficient Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 19
- 238000007251 Prelog reaction Methods 0.000 description 10
- 239000004065 semiconductor Substances 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 239000000758 substrate Substances 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004904 shortening Methods 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
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】多値のメモリセルを使用したNAND型フラッシュメモリにスナップショットとログを格納しつつ、データ復元の信頼性を向上させることができるメモリシステムを提供すること。
【解決手段】揮発性の第1の記憶部と、不揮発性の第2の記憶部と、データ転送を行うとともに、第2の記憶部に記憶されたデータの格納位置を含む管理情報を第1の記憶部に取込み、この管理情報を更新しながら第1および第2の記憶部でのデータ管理を行うコントローラと、を備え、第2の記憶部は、第1の記憶部の管理情報であるスナップショットと、管理情報の更新差分情報であるログ220と、スナップショットおよびログ220の格納位置を示すセカンドポインタ230とを保存し、ログ220のログ格納領域を構成するログ格納用ブロック41,42に対して、ログ格納用ブロック41はログ格納用ブロック42の位置を示すポインタを有する。
【選択図】 図15
【解決手段】揮発性の第1の記憶部と、不揮発性の第2の記憶部と、データ転送を行うとともに、第2の記憶部に記憶されたデータの格納位置を含む管理情報を第1の記憶部に取込み、この管理情報を更新しながら第1および第2の記憶部でのデータ管理を行うコントローラと、を備え、第2の記憶部は、第1の記憶部の管理情報であるスナップショットと、管理情報の更新差分情報であるログ220と、スナップショットおよびログ220の格納位置を示すセカンドポインタ230とを保存し、ログ220のログ格納領域を構成するログ格納用ブロック41,42に対して、ログ格納用ブロック41はログ格納用ブロック42の位置を示すポインタを有する。
【選択図】 図15
Description
本発明は、不揮発性半導体記憶装置を用いて構成されるメモリシステムに関する。
ハードディスク装置を2次記憶装置として用いたパーソナルコンピュータにおいては、ハードディスク装置に格納されるデータが何らかの障害によって無効なデータとなってしまうことを防ぐためにバックアップをとる技術が知られている。たとえば、ハードディスク装置中のデータの変更を検出すると、そのデータの変更前のバックアップコピーであるスナップショットをとり、そのデータに対する更新を記録したログをとる。その後、所定の時間ごとにスナップショットをとるとともに、スナップショットをとる前の過去のログを無効にし、新しいログを生成するという処理が繰り返し行われる(たとえば、特許文献1参照)。そして、データが無効になってしまった場合には、スナップショットとログを基にそのデータを復元することができる。
ところで、近年では、不揮発性半導体記憶装置であるNAND型フラッシュメモリの大容量化が進行し、このNAND型フラッシュメモリを有するメモリシステムを2次記憶装置とするパーソナルコンピュータが製品化されている。しかし、このようなNAND型フラッシュメモリを2次記憶装置とするパーソナルコンピュータに格納されるデータのバックアップに対して、ハードディスク装置を2次記憶装置とするパーソナルコンピュータに格納されるデータのバックアップの場合と同様に上記特許文献1の技術を適用することはできない。それは、NAND型フラッシュメモリの大容量化には、1つのメモリセルに2ビット以上の複数のデータ(多値データ)を記憶することが可能な多値メモリ技術が使用されているからである。
多値メモリを構成するメモリセルは、チャネル領域上にゲート絶縁膜、浮遊ゲート電極、ゲート間絶縁膜および制御ゲート電極が順に積層された積層ゲート構造を有する電界効果型トランジスタ構造を有し、浮遊ゲート電極に蓄積される電子の数に応じて、複数の閾値電圧を設定可能な構成を有している。そして、この複数の閾値電圧によって、多値記憶を可能とするために、1つのデータに対応する閾値電圧の分布を非常に狭く制御する必要がある。
たとえば、4値を記憶することができる多値メモリでは、1つのメモリセルに下位ページと上位ページを設け、それぞれのページに1ビットのデータを書き込むことによって、2ビット(4値)を記憶するものがある。このような多値メモリのデータ書込方法は、第1のメモリセルの下位ページにデータを書き込んだ後、隣接メモリセル(第2のメモリセル)の下位ページにデータを書き込む。そして、この隣接メモリセルへの書き込み後に、第1のメモリセルの上位ページにデータを書き込んでいる(たとえば、特許文献2参照)。
しかし、このような多値メモリでは、先に書き込んだメモリセルの閾値電圧が、このメモリセルと隣接し、後に書き込まれるメモリセルの閾値電圧によって変動してしまう。このため、多値メモリでは、あるメモリセルの上位ページの書き込み中に、たとえば電源の異常遮断などによって書き込みが中断されると、先に書き込んだ下位ページのデータも破壊される下位ページデータ破壊が生じる可能性がある。
また、NAND型フラッシュメモリを有するメモリシステムでは、データを記憶させる場合に、例えばブロックと呼ばれる単位で一度書き込み領域を消去してからその後にページと呼ばれる単位で書き込みを行なう必要がある。一方で、このようなデータの書き込みに先立って行なうブロックの消去回数が増加するにつれて、ブロックを構成するメモリセルの劣化が進行するという問題がある。そのため、NAND型フラッシュメモリを2次記憶装置とするパーソナルコンピュータにおいては、ブロックの消去回数を抑制するためのデータ管理を行なう必要があり、上述したスナップショットとログに基づいてデータを復元する際にも、ブロックの消去回数を抑制するようにデータ管理を行なう必要があった。
本発明は、上記に鑑みてなされたものであって、多値のメモリセルを使用したNAND型フラッシュメモリにスナップショットとログを格納しつつ、データ復元の信頼性を向上することができるメモリシステムを提供することを目的とする。
本願発明の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、を備え、前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域および前記ログ格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、前記ブロックは、次に確保されたブロックの位置を示す第2のポインタを有することを特徴とする。
本願発明の別の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、を備え、前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、前記ログ格納領域に保存された先頭のログの格納位置を示す第2のポインタは前記スナップショット内に保存され、前記ブロックは、次に確保されたブロックの位置を示す第3のポインタを有することを特徴とする。
本願発明のさらに別の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、を備え、前記第2の記憶部は、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、を有し、前記コントローラは、前記ログ格納領域がログでいっぱいになった際、および前記ログ格納領域がデータ記憶できない不良領域になった際に前記スナップショットを取得し、前記スナップショット格納領域に保存することを特徴とする。
この発明によれば、ログの格納位置を示すポイントを多重化することにより、データ復元の信頼性を向上することができる、という効果を奏する。
以下に、本発明に係るメモリシステムおよび管理情報の保存方法の実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
(実施の形態)
このメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の2次記憶装置(SSD:Solid State Drive)として使用され、ホスト装置から書込要求を出されたデータを記憶し、またホスト装置から読出要求のあったデータを読み出してホスト装置に出力する機能を有する。図1は、本発明の第1の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。このメモリシステム10は、第1の記憶部としてのDRAM(Dynamic Random Access Memory)11と、第2の記憶部としてのNAND型フラッシュメモリ(以下、NANDメモリという)12と、電源回路13と、ドライブ制御部14と、を備える。
このメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の2次記憶装置(SSD:Solid State Drive)として使用され、ホスト装置から書込要求を出されたデータを記憶し、またホスト装置から読出要求のあったデータを読み出してホスト装置に出力する機能を有する。図1は、本発明の第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で管理される管理情報をバックアップ用に記憶したりする。この図1では、NANDメモリ12が4つのチャネル120A〜120Dによって構成されている場合が示されている。1つのチャネル120A〜120Dは、所定のサイズの記憶容量を有する8個のチップ122が1つにまとめられたパッケージ121を2つ含んでいる。また、各チャネル120A〜120Dは、ドライブ制御部14とバス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は、半導体基板上に形成された積層ゲート構造を有するMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。ここで、積層ゲート構造には、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)と、この電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極と、が含まれる。メモリセルトランジスタMT0〜MTnは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じて2ビット以上のデータを記憶することができる多値メモリである。なお、以下に示す実施の形態では、メモリセルトランジスタMTはこの多値メモリである場合を例に挙げて説明する。
NANDストリングNSを構成するメモリセルトランジスタMT0〜MTnの制御ゲート電極には、それぞれワード線WL0〜WLnが接続されており、また各NANDストリングNS中のメモリセルトランジスタMTi(i=0〜n)間は、同一のワード線WLi(i=0〜n)によって共通接続されている。つまり、ブロックBLK内において同一行にあるメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。この同一のワード線WLiに接続される(m+1)個のメモリセルトランジスタMTiの群は1つのページを構成する単位となる。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によって接続される。
つぎに、DRAM11とNANDメモリ12の機能構成について説明する。図3は、DRAMとNANDメモリの機能構成を模式的に示す図であり、(a)はDRAM11の機能構成を示し、(b)はNANDメモリ12の機能構成を示している。
図3(a)に示されるように、DRAM11は、ホスト装置から書込要求のあったデータが記憶されるライトキャッシュ領域WCと、ホスト装置から読出要求のあったデータが記憶されるリードキャッシュ領域RCと、DRAM11およびNANDメモリ12に記憶されるデータの格納位置を管理するための管理情報が記憶される一時記憶領域111と、管理情報を復元する際に使用される作業領域112と、を有する。
図3(b)に示されるように、NANDメモリ12は、ホスト装置から書込要求のあったデータが格納されるデータ格納領域125と、DRAM11の一時記憶領域111で管理される管理情報が保存される管理情報保存領域126と、を有する。この例では、NANDメモリ12でのデータの書込/読出単位をページサイズ単位とし、消去の単位をブロックサイズ単位(たとえば512KB単位)とするものとする。そのため、ブロックサイズ単位で管理されるNANDメモリ12の各ブロックを記憶するための領域を、さらにページサイズ単位の領域に分割する。
ここで、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内物理アドレスを含む。また、図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は、管理情報保存領域に記憶される管理情報保存情報の内容の一例を模式的に示す図である。この管理情報保存領域126には、ある時点における不揮発性テーブルの内容であるスナップショット210と、次にスナップショットを取るまでの不揮発性テーブルの内容の更新差分情報であるとともに更新前に取得された更新前ログ(以下、前ログという)220Aと、この前ログ220Aと同一の内容のログ情報であるとともに更新後に保存された更新後ログ(以下、後ログという)220Bと、スナップショット210の位置(ブロック)、このスナップショット210に対して取得された前ログ220Aの位置(ブロック)、およびこのスナップショット210に対して取得された後ログ220Bの位置(ブロック)を示すセカンドポインタ230と、セカンドポインタ230が格納される位置(ブロック)を示すルートポインタ240と、を含む管理情報保存情報が格納される。ここで、スナップショット210とは、DRAM11の一時記憶領域111に記憶される管理情報のうち、少なくとも不揮発性テーブルを含む管理情報を所定の時点で保存した情報のことをいう。
この図8において、スナップショット210、前ログ220A、後ログ220B、セカンドポインタ230、およびルートポインタ240は、それぞれ異なるブロックに格納される。また、これらのブロックの大きさは、消去単位である物理ブロックと同じ大きさとする。スナップショット210は、スナップショット格納用ブロックに格納される。スナップショット210には、NANDメモリ12の管理情報保存領域126内の不揮発性テーブルである論理NAND管理情報42とNAND内論物変換情報43とが含まれる。新しいスナップショット210が保存されると、以前に保存されていたスナップショット210とは別のブロックに保存される。
前ログ220Aおよび後ログ220Bは、データ書き込み処理等に伴い不揮発性テーブルの内容に変更があった場合の内容更新後の不揮発性テーブルとスナップショット210(またはスナップショット210と既に取られたログ)との差分情報である。具体的には、スナップショット210が取られた後の最初の前ログ220Aまたは最初の後ログ220Bは、不揮発性テーブルとスナップショット210との差分情報である。また、スナップショット210が取られた後の2番目以降の前ログ220Aは、既に取られた前ログ220Aとスナップショット210とを合わせたものと、不揮発性テーブルとの差分情報である。また、スナップショット210が取られた後の2番目以降の後ログ220Bは、既に取られた後ログ220Bとスナップショット210とを合わせたものと、不揮発性テーブルとの差分情報である。
前ログ220Aは、管理情報が実際に更新される前に生成しておく情報である。このため、データの書き込み処理などが行なわれることによって管理情報が実際に更新される前に、管理情報がどのように更新されるかの更新計画に基づいて、前ログ220Aは生成される。また、後ログ220Bは、管理情報が実際に更新された後に生成される情報である。このため、データの書き込み処理などが行なわれることによって管理情報が実際に更新された後に、実際の管理情報などを用いて後ログ220Bは生成される。
前ログ220Aおよび後ログ220Bは、それぞれログ格納用ブロックに格納される。前ログ220Aおよび後ログ220Bは、スナップショットの世代が変わっても、同じログ格納用ブロックに追記される。
図9は、ログの一例を示す図である。なお、前ログ220Aと後ログ220Bは、同一の情報を有しているので、ここでは前ログ220Aをログの一例として説明する。ログ220Aは、変更対象の管理情報となる対象情報と、その対象情報中の変更対象となるエントリである対象エントリと、その対象エントリ中の変更対象となる項目である対象項目と、その対象項目の変更の内容である変更内容と、を含む。前ログ220Aおよび後ログ220Bはスナップショット210に対する更新差分情報であるため、新たなスナップショット210の保存に伴い刷新される。
セカンドポインタ230は、セカンドポインタ格納用ブロックに格納される。セカンドポインタ230は、スナップショット210、前ログ220A、後ログ220Bの格納位置を示すブロックの先頭アドレスを示すものであればよい。また、セカンドポインタ230は、スナップショット210が新たに保存された場合や、スナップショット格納用ブロックとログ格納用ブロックが変更された場合に更新される。
セカンドポインタ230は、スナップショット格納用ブロックへアクセスするためのスナップショットアクセス情報と、前ログ220Aおよび後ログ220Bの各ログ格納用ブロックへアクセスするためのログアクセス情報と、次のセカンドポインタが格納されるページ位置を示すネクストポインタと、を含む。このネクストポインタによって、セカンドポインタ230はリンクドリスト方式の情報となり、ルートポインタ240で指示されたセカンドポインタ格納用ブロックの先頭ページからネクストポインタをたどることによって、最新のセカンドポインタ230へとたどり着くことが可能となる。なお、リンクドリスト方式ではなく、セカンドポインタ格納用ブロックの先頭ページからセカンドポインタ230を順に追記的に格納してもよい。
ルートポインタ240は、ルートポインタ格納用ブロックに格納される。ルートポインタ240は、セカンドポインタ230が格納されているセカンドポインタ格納用ブロックへアクセスするための情報であり、メモリシステム10の起動時に、管理情報を復元するための処理の際に最初に読み込まれる情報である。このルートポインタ240は、セカンドポインタ格納用ブロックが変更された場合に変更される。ルートポインタ240は、ルートポインタ格納用ブロックに、例えば、ブロックの先頭ページから順に追記的に格納される。このような場合には、ルートポインタ格納用ブロック内の未書込ページの1つの前のページが最新情報を有することになるので、未書込ページの最上位のページを検索することで、最新のルートポインタ240を検索することができる。また、セカンドポインタ230の場合のように、リンクドリスト方式を用いることもできる。
ここで、ルートポインタ240はNANDメモリ12内の固定領域1261に格納され、スナップショット210、前ログ220A、後ログ220Bおよびセカンドポインタ230はNANDメモリ12内の可変領域1262に格納される。固定領域1261とは、NANDメモリ内において、論理NAND管理層32で管理される論理ブロックと、物理NAND管理層33で管理される物理ブロックとの関係が固定化している保護領域であり、書換えや書き込みがほとんど発生しない更新頻度の低い、メモリシステム10を稼動させるのに必要な情報が格納される領域である。
一方の可変領域1262とは、固定領域1261を除くNANDメモリ12の領域において、論理NAND管理層32で管理される論理ブロックと、物理NAND管理層33で管理される物理ブロックとの関係が可変な領域であり、ウェアレベリングの対象となる領域である。
つぎに、ドライブ制御部14の機能について説明する。図10は、ドライブ制御部の機能構成の一例を示すブロック図である。ドライブ制御部14は、DRAM11−NANDメモリ12間のデータ転送やNANDメモリ12に関する各種機能の制御を行なうデータ管理部141と、ATAインタフェースから受けた指示に基づいてデータ管理部141と協働してデータ転送処理を行なうATAコマンド処理部142と、データ管理部141およびATAコマンド処理部142と協動して各種のセキュリティ情報を管理するセキュリティ管理部143と、電源オン時に、各管理プログラム(FW)をNANDメモリ12から図示しないメモリ(たとえば、SRAM(Static RAM))にロードするブートローダ144と、ドライブ制御部14内の各コントローラや回路の初期化を行なう初期化管理部145と、外部からRS232Cインタフェースを介して供給されたデバッグ用データを処理するデバッグサポート部146と、を備える。
図11は、本実施の形態に係るデータ管理部の機能構成の一例を示すブロック図である。データ管理部141は、DRAM11とNANDメモリ12との間でデータ転送を行なうデータ転送処理部151と、DRAM11およびNANDメモリ12に記憶されるデータの変更に伴って管理情報の変更や保存を行なう管理情報管理部152と、電源オン時などに保存された管理情報に基づいて最新の管理情報を復元する管理情報復元部155と、をさらに備える。
また、管理情報管理部152は、管理情報書込部153と、管理情報保存部154と、をさらに備える。管理情報書込部153は、データ転送処理部151によるDRAM11またはNANDメモリ12で記憶されるデータの変更処理によって管理情報の更新が必要な場合に、DRAM11に記憶されている管理情報の更新を行なう。
管理情報保存部154は、メモリシステム10が所定の条件を満たしたとき、管理情報をスナップショット210として、管理情報中の更新される分の情報を前ログ220Aとして、管理情報中の更新された分の情報を後ログ220Bとして、NANDメモリ12の管理情報保存領域126に保存する。また、このスナップショット210、前ログ220Aまたは後ログ220Bの保存に伴ってセカンドポインタ230の書き込まれる位置が変更される場合には、このセカンドポインタ230に対する更新処理も行なう。
管理情報保存部154によるスナップショット210の保存は、以下に例示する3つのスナップショット保存条件のいずれかを満たす場合に実行される。
(1)スタンバイ(メモリシステム10本体の電力消費を最小限にまで落とすようにする指示)/スリープ(所定の時間アクセスがない場合にデバイスを停止する指示)/リセット(メモリシステム10を再起動する指示)を受ける場合。
(2)NANDメモリ12の管理情報保存領域126中の前ログ220Aや後ログ220Bを記憶するために設けられたログ格納領域が埋まってしまった場合。
(3)NANDメモリ12の管理情報保存領域126中の前ログ220Aや後ログ220Bを記憶するために設けられたログ格納領域が、データの書込みや消去ができなくなる不良領域(バッドブロック)になった場合。
(1)スタンバイ(メモリシステム10本体の電力消費を最小限にまで落とすようにする指示)/スリープ(所定の時間アクセスがない場合にデバイスを停止する指示)/リセット(メモリシステム10を再起動する指示)を受ける場合。
(2)NANDメモリ12の管理情報保存領域126中の前ログ220Aや後ログ220Bを記憶するために設けられたログ格納領域が埋まってしまった場合。
(3)NANDメモリ12の管理情報保存領域126中の前ログ220Aや後ログ220Bを記憶するために設けられたログ格納領域が、データの書込みや消去ができなくなる不良領域(バッドブロック)になった場合。
また、管理情報保存部154が前ログ220Aと後ログ220Bを保存するタイミングは、管理情報書込部153によってDRAM11に記憶されている管理情報(不揮発性テーブル)の更新が行われた場合である。具体的には、データの書き込みなどを行なう処理の前と後とに、前ログ220Aと後ログ220Bとが保存される。
管理情報復元部155は、メモリシステム10に電源がオンされると、NANDメモリ12の管理情報保存領域126に保存されている管理情報保存情報に基づいた管理情報の復元処理を行なう。具体的には、固定領域1261の中のルートポインタ240、可変領域1262の中のセカンドポインタ230、スナップショット210、前ログ220A、後ログ220Bへと順にたどっていき、最新のスナップショット210に対する前ログ220Aや後ログ220Bが存在するか否かを判定する。前ログ220Aや後ログ220Bが存在しない場合には、スナップショット格納用ブロックのスナップショット210を管理情報としてDRAM11に復元する。また、前ログ220Aや後ログ220Bが存在する場合には、プログラムエラーや瞬断(電源の異常遮断)などの異常終了であった場合であるので、スナップショット格納用ブロックからスナップショット210を取得し、ログ格納用ブロックから前ログ220Aまたは後ログ220Bを取得して、DRAM11上でスナップショット210に前ログ220Aまたは後ログ220Bを反映させて管理情報(不揮発性テーブル)の復元を行なう。
ここで、管理情報管理部152によるメモリシステム10の管理情報の保存の処理について説明する。図12は、メモリシステムの管理情報の保存処理手順の一例を示すフローチャートである。また、図13は、前ログと後ログの保存処理を説明するための図である。なお、ここでは、メモリシステム10がホスト装置と接続され、ホスト装置の2次記憶装置として動作しているとともに、ホスト装置(メモリシステム10)が起動状態にあり、また、この起動状態の前のメモリシステム10の停止前にスナップショット210が保存されているものとする。
まず、ホスト装置(メモリシステム10)の前回終了時に保存されたスナップショット210を基に、ホスト装置(メモリシステム10)が起動された状態にある(ステップS11)。この後、必要に応じてホスト装置からNANDメモリ12へデータの読み書きが行なわれる。管理情報管理部152は、上記スナップショット保存条件を満たすか否かを判定する(ステップS12)。スナップショット保存条件を満たさない場合(ステップS12でNoの場合)には、管理情報の更新を伴う指示(NANDメモリへのデータ書込み指示など)を受けたか否かを判定する(ステップS13)。管理情報の更新を伴う指示を受けなかった場合(ステップS13でNoの場合)には、ステップS12へと戻る。
また、管理情報の更新を伴う指示を受けた場合(ステップS13でYesの場合)には、その指示を実行することによって管理情報がどのように更新されるか更新計画を決定し(ステップS14)、その更新計画をNANDメモリ12の管理情報保存領域126のログ格納用ブロックに前ログ220Aとして保存する(ステップS15)。
この更新計画(前ログ)は、ログ格納用ブロックに前ログ220Aが格納されていない場合には、管理情報が更新された場合の不揮発性テーブルとスナップショット格納用ブロックに保存されているスナップショット210との間の差分情報であり、ログ格納用ブロックに前ログ220A(以下、過去の前ログ220Aという)が既に格納されている場合には、管理情報が更新された場合の不揮発性テーブルと、スナップショット210と過去の前ログ220Aとを合わせたものと、の間の差分情報である。具体的には、図13に示すように、X番目のデータの書き込み処理としてデータ書き込み(X)を行なう前に、このデータ書き込み(X)に対応する前ログ(X)がNANDメモリ12内に前ログ220Aとして保存される。このとき、前ログ220Aとして例えば情報y1が保存される。なお、ここでの前ログ220Aは、たとえば、前ログ220A(更新計画)をDRAM11上に記録した後、NANDメモリ12の管理情報保存領域126に保存される。
ついで、論理NAND管理層は、ステップS13で受けた指示(たとえばユーザデータのNANDメモリ12のデータ格納領域125への書き込み(X)処理)を実行する(ステップS16)。
この後、実行した処理に応じて、DRAM11に記憶されている管理情報が更新される。そして、管理情報保存部154は、管理情報中の更新された分の情報を後ログ220Bとして、NANDメモリ12の管理情報保存領域126に保存する。ここでの後ログ220Bは、ログ格納用ブロックに後ログ220Bが格納されていない場合には、現時点の不揮発性テーブルとスナップショット格納用ブロックに保存されているスナップショット210との間の差分情報であり、ログ格納用ブロックに後ログ220B(以下、過去の後ログ220Bという)が既に格納されている場合には、現時点の不揮発性テーブルと、スナップショット210と過去ログとを合わせたものと、の間の差分情報である。
これにより、データ書き込み(X)に対応する後ログ220B(X)がNANDメモリ12内に後ログ220Bとして保存される(ステップS17)。このとき、後ログ220Bとして例えば情報y1が保存される。このように、後ログ220Bとして保存される情報y1は、前ログ220Aとして保存される情報y1と同じ情報である。その後、ステップS12へと戻る。
スナップショット保存条件を満たさない場合(ステップS12でNoの場合)であって、管理情報の更新を伴う指示を受けた場合(ステップS13でYesの場合)には、ステップS14〜S17の処理が行なわれる。すなわち、X番目のデータの書き込み処理と同様に(X+1)番目のデータの書き込み処理が行なわれる。このとき、(X+1)番目のデータの書き込み処理としてデータ書き込み(X+1)を行なう前に、このデータ書き込み(X+1)に対応する前ログ(X+1)がNANDメモリ12内に前ログ220Aとして保存される。このとき、前ログ220Aとして例えば情報y2が保存される。そして、NANDメモリ12内のデータ格納領域125にデータ書き込み(X+1)が行なわれる。さらに、データ書き込み(X+1)に対応する後ログ(X+1)がNANDメモリ12内に後ログ220Bとして保存される。このとき、後ログ220Bとして例えば情報y2が保存される。このように、後ログ220Bとして保存される情報y2は、前ログ220Aとして保存される情報y2と同じ情報である。
また、ステップS12でスナップショット保存条件を満たす場合(ステップS12でYesの場合)には、DRAM11の一時記憶領域111内の少なくとも不揮発性テーブルを含む管理情報をスナップショット210としてNANDメモリ12の管理情報保存領域126に保存する(ステップS18)。そして、メモリシステム10の終了指示があるか否かを判定し(ステップS19)、終了指示がない場合にはステップS12へと戻り、終了指示がある場合には、そのまま処理が終了する。
つぎに、管理情報復元部155によるメモリシステム10の管理情報の復元処理について説明する。図14は、メモリシステムの管理情報の復元処理手順の一例を示すフローチャートであり、図15は、メモリシステムの復元処理を説明するための図である。なお、ここでも、メモリシステム10がホスト装置と接続され、ホスト装置の2次記憶装置として動作しているものとする。
まず、瞬断からの回復などによってホスト装置の電源がオンされ、メモリシステム10に対して起動指示が出されると(ステップS31)、管理情報復元部155は、NANDメモリ12の管理情報保存領域126中のルートポインタ240、セカンドポインタ230を順に読込み(ステップS32)、スナップショット210と前後ログ(前ログ220A、後ログ220B)が格納されているそれぞれのブロックのアドレスを取得し(ステップS33)、スナップショット210を取得する(ステップS34)。
その後、管理情報復元部155は、NANDメモリ12中の前ログ220Aや後ログ220Bを参照して、瞬断が発生したか否かを判定する(ステップS35)。例えば、前ログ220Aや後ログ220BがNANDメモリ12中に存在する場合は、瞬断が発生したと判断される。また、瞬断が発生したか否かの判断は、例えば前ログ220Aと後ログ220Bを比較することによって行なってもよい。本実施の形態では、前ログ220Aと後ログ220Bとが同じ情報を保存している。このため、例えば、前ログ220Aとして保存されているページの数と後ログ220Bとして保存されているページの数とが一致しない場合には、瞬断が発生したと判断できる。また、ECCエラーの有無や、前ログ220Aとして保存されているページのデータ、後ログ220Bとして保存されているページのデータに基づいて瞬断の有無を判断してもよい。
瞬断が発生した場合(ステップS35でYesの場合)、NANDメモリ12内の最新の前ログ220Aと最新の後ログ220Bとに基づいて、瞬断の発生したタイミングを確認する(ステップS36)。
さらに、管理情報復元部155は、瞬断の発生したタイミングが後ログ220Bの保存中であったか否かを判断する(ステップS37)。例えば、後ログ220B内の最後のページが書き込み途中である場合、この最後のページを読み出すことはできないので、後ログ220Bの保存中に瞬断が発生したと判断される。また、前ログ220A内の最後のページが書き込み途中である場合、この最後のページを読み出すことはできないので、前ログ220Aの保存中に瞬断が発生したと判断される。また、前ログ220A内の最後のページにはログが書き込まれており、かつ後ログ220B内の最後のページにはログが書き込まれていない場合には、データの書き込み途中で瞬断が発生したと判断される。
管理情報復元部155は、瞬断の発生したタイミングが後ログ220Bの保存中であったと判断した場合(ステップS37でYesの場合)に、最新の前ログ220Aを選択する(ステップS38)。一方、管理情報復元部155は、瞬断の発生したタイミングが後ログ220Bの保存中でなかったと判断した場合(ステップS37でNoの場合)に、保存の完了している最新の後ログ220Bを選択する(ステップS39)。換言すると、前ログ220A内の最後のページが書き込み途中であった場合や前ログ220A内の最後のページにはログが書き込まれており、かつ後ログ220B内の最後のページにはログが書き込まれていない場合に、最新の後ログ220Bが選択される。
この後、選択したログ(前ログ220Aまたは後ログ220B)をログ格納用ブロックから取得し、DRAM11の作業領域112に展開する(ステップS40)。そして、スナップショット210に対して、古いログから順にログを反映させて管理情報(不揮発性テーブル)を復元し(ステップS41)、管理情報の復元処理が終了する。
一方、瞬断が発生していない場合(ステップS35でNoの場合)には、DRAM11の管理情報格納領域111に、管理情報を復元し、管理情報復元処理が終了する。
なお、管理情報復元部155は、瞬断に起因するログの破壊の有無に関わらず、前ログ220Aとして保存されているページの数と、後ログ220Bとして保存されているページの数と、に基づいて、前ログ220Aと後ログ220Bの何れか一方を選択して管理情報を復元してもよい。例えば、管理情報復元部155は、前ログ220Aとして保存されているページの数と、後ログ220Bとして保存されているページの数が同じ場合に、前ログ220Aを選択して管理情報を復元する。また、管理情報復元部155は、前ログ220Aとして保存されているページの数が、後ログ220Bとして保存されているページの数よりも多い場合に、後ログ220Bを選択して管理情報を復元する。
図15は、前ログ220Aまたは後ログ220Bを格納するログ格納領域の構成の一例を示す図である。図15では、図8に示す構成のうち、セカンドポインタ230と、前ログ220Aまたは後ログ220Bのいずれか一方であるログ220とを示し、その他については省略している。
ログ220は、例えばログ格納用ブロック45、46から構成されたログ格納領域において、斜線で示された各ページに保存されたログ情報からなる。ここで、ログ格納領域を構成するログ格納用ブロックの個数は、保存されるログのサイズ(ログ長)に応じて決まる。すなわち、ログ格納領域では、保存されるログのサイズに応じて、順次ログ格納用ブロックが確保され、書き込み中のログ格納用ブロックの全てのページにログが書き込まれると、次に確保されたログ格納用ブロックにログが書き込まれる。図示例では、ログ格納用ブロック45の先頭ページから順番にログが保存され、ログ格納用ブロック45内の全てのページにログが書き込まれた後、次の書き込み用ブロックとして確保されたログ格納用ブロック46の先頭ページから順番にログが保存されている様子を示している。
セカンドポインタ230は、ログ220の格納位置を示すブロックの先頭アドレスを示しており、具体的には、ログ格納用ブロック45の先頭ページを示している。
また、ログ格納用ブロック45は、ログ格納用ブロック46の位置を示すポインタを有している。具体的には、ログ格納用ブロック45の先頭ページを使用する際に、ログ格納用ブロック46が確保され、ログ格納用ブロック45の先頭ページにはログ格納用ブロック46の先頭ページのアドレスを示すポインタ情報が付加される。これにより、セカンドポインタ230、ログ格納用ブロック45、ログ格納用ブロック46へと順にたどることができ、スナップショット210に対する最新のログまで到達することができる。また、図示はしていないが、ログ格納用ブロック46は、次に確保されたログ格納用ブロックの位置を示すポインタを有している。すなわち、ログ格納用ブロック46の先頭ページを利用する際に、図示していない次のログ格納用ブロックが確保されており、ログ格納用ブロック46の先頭ページには次のログ格納用ブロックの先頭ページのアドレスを示すポインタ情報が付加される。図15では、一例として、2つのログ格納用ブロック(ログ格納用ブロック45,46)にログが保存されている場合について説明したが、3つ以上のログ格納用ブロックにログが保存されている場合についても同様である。
このように、本実施の形態では、ログ格納領域を複数個のログ格納用ブロックで構成する際に、ログ格納用ブロックの先頭ページに次に確保されるログ格納用ブロックの位置を示すポインタ情報を保存し、ポインタを介して異なるログ格納用ブロックに保存されたログをたどれるようにしている。つまり、ログ格納領域は、順次確保されたログ格納用ブロックから構成されるとともに、ログ格納用ブロック間を指示するポインタを介してログ格納用ブロックがチェーン状につながった構造(以下、ログチェーンという)となっている。
本実施の形態によれば、ログ格納領域に保存されるログ220(すなわち、前ログ220Aまたは後ログ220B)のサイズがログ格納用ブロックのサイズを超えた場合でも、新たにログ格納用ブロックを確保しログを書き込むことができるので、ログ格納用ブロックが満杯になるごとにスナップショット210を保存し、セカンドポインタ230を更新する必要がない。そのため、セカンドポインタ230の格納されたセカンドポインタ格納用ブロックへの書き込みが低減する。したがって、NANDメモリ12の書き込み回数を低減することができ、その寿命が短くなることを抑制することができる、という効果を奏する。
なお、ログ格納用ブロックがポインタを確保するタイミングは、その先頭ページを使用する際に限定されず、その他のページを使用する際であってもよい。したがって、例えばログ格納用ブロック45は、その最後のページにログの書き込みを終えた時点でログ格納用ブロック46を確保し、ログ格納用ブロック46の先頭ページのアドレスを示すポインタを設けるようにしてもよい。
また、ログ格納領域に確保可能なログ格納用ブロックの個数に上限を設けることが好ましい。これは、ログ220のサイズが所定サイズを超えると、ログ220をスナップショット210に反映させて管理情報を復元する必要がある場合に、復元時間が長くなるからである。前述のように、ログ格納領域が埋まった場合には、スナップショット保存条件の(2)が成立し、新たなスナップショット210が取得される。
また、本実施の形態では、前ログ220Aおよび後ログ220Bを取得しログを2重化する構成としているが、いずれか一方のログを取得しログを多重化しない場合にも、上記のログチェーンの構成を適用し同様の効果を得ることができる。
図16は、前ログ220Aを格納する前ログ格納領域、および後ログ220Bを格納する後ログ格納領域の構成の一例を示す図であり、図15と同様に、図8に示す構成のうち、セカンドポインタ230と、前ログ220Aおよび後ログ220Bとを示し、その他については省略している。
図16に示すように、前ログ220Aを格納する前ログ格納領域および後ログ220Bを格納する後ログ格納領域は、以下に説明する相互間に設けられたポインタを除けば、それぞれ図15に示したログ格納領域の構成と同様の構成を有する。すなわち、前ログ220Aを格納する前ログ格納領域は、例えば2つのログ格納用ブロックであるログ格納用ブロック50、51から構成されるとともに、ログ格納用ブロック50は、ログ格納用ブロック50に続いて確保されたログ格納用ブロック51の位置を示すポインタ(同図中、ログ格納用ブロック50の先頭ページからログ格納用ブロック51の先頭ページを指す矢印)を有している。また、後ログ220Bを格納する後ログ格納領域は、例えば2つのログ格納用ブロックであるログ格納用ブロック60、61から構成されるとともに、ログ格納用ブロック60は、ログ格納用ブロック60に続いて確保されたログ格納用ブロック61の位置を示すポインタ(同図中、ログ格納用ブロック60の先頭ページからログ格納用ブロック61の先頭ページを指す矢印)を有している。さらに、セカンドポインタ230は、前ログ格納領域内のログ格納用ブロック50の先頭ページと、後ログ格納領域内のログ格納用ブロック60の先頭ページと、を示している。
図16では、このような前ログ格納領域および後ログ格納領域内にそれぞれ設けられたログチェーンの構造に加えて、前ログ格納領域におけるログ格納用ブロック50は、後ログ格納領域におけるログ格納用ブロック61の位置を示すポインタ(同図中、ログ格納用ブロック50の先頭ページからログ格納用ブロック61の先頭ページを指す矢印)を有するとともに、後ログ格納領域におけるログ格納用ブロック60は、前ログ格納領域におけるログ格納用ブロック51の位置を示すポインタ(同図中、ログ格納用ブロック60の先頭ページからログ格納用ブロック51の先頭ページを指す矢印)を有している。
すなわち、前ログ格納領域におけるログ格納用ブロック50は、前ログ格納領域において次に確保されたログ格納用ブロックであるログ格納用ブロック51の位置を示すポインタに加えて、このログ格納用ブロック51の確保順と同一の順番(この場合、ログ格納用ブロック51は2番目に確保されたので、2番目)で後ログ格納領域において確保されたログ格納用ブロック、すなわち、ログ格納用ブロック61の位置を示すポインタを有している。同様にして、後ログ格納領域におけるログ格納用ブロック60は、後ログ格納領域において次に確保されたログ格納用ブロックであるログ格納用ブロック61の位置を示すポインタに加えて、このログ格納用ブロック61の確保順と同一の順番(この場合、ログ格納用ブロック61は2番目に確保されたので、2番目)で前ログ格納領域において確保されたログ格納用ブロック、すなわち、ログ格納用ブロック51の位置を示すポインタを有している。
前述のように、前ログ220Aと後ログ220Bとは同じ内容のログ情報を保存するものであるので、瞬断等の異常が発生しない限り、前ログ220Aと後ログ220Bとは同一のログ情報を保存している。したがって、ログ格納用ブロック50の各ページに保存されているログは、ログ格納用ブロック60の対応するページに保存されているログと同じであり、ログ格納用ブロック51の各ページに保存されているログは、ログ格納用ブロック61の対応するページに保存されているログと同じである。したがって、前ログ格納領域におけるログ格納用ブロック50は、ログ格納用ブロック51の位置を示すポインタに加えて後ログ格納領域におけるログ格納用ブロック61の位置を示すポインタを有することで、ログ格納用ブロック51と同一のログ情報を保存するログ格納用ブロック61の位置をバックアップとして確保している。同様にして、後ログ格納領域におけるログ格納用ブロック60は、ログ格納用ブロック61の位置を示すポインタに加えて前ログ格納領域におけるログ格納用ブロック51の位置を示すポインタを有することで、ログ格納用ブロック61と同一のログ情報を保存するログ格納用ブロック51の位置をバックアップとして確保している。なお、図示はしていないが、ログ格納用ブロック51は、前ログ格納領域においてこのログ格納用ブロック51の次に確保されたログ格納用ブロックの位置を示すポインタを有するとともに、後ログ格納領域においてログ格納用ブロック61の次に確保されたログ格納用ブロックの位置を示すポインタを有する。同様に図示はしていないが、ログ格納用ブロック61は、後ログ格納領域においてこのログ格納用ブロック61の次に確保されたログ格納用ブロックの位置を示すポインタを有するとともに、前ログ格納領域においてログ格納用ブロック51の次に確保されたログ格納用ブロックの位置を示すポインタを有する。また、図16では、一例として、前ログ格納領域および後ログ格納領域にそれぞれ2つのログ格納用ブロック(ログ格納用ブロック50,51、およびログ格納用ブロック60,61)にログが保存されている場合について説明したが、それぞれ3つ以上のログ格納用ブロックにログが保存されている場合についても同様である。
このように、前ログ格納領域および後ログ格納領域における各ログ格納用ブロックの有するポインタを2重化することで、瞬断等によりログが破壊された場合にもログの復元を容易に行うことができる。例えば、ログ格納用ブロック51の書き込み中に瞬断が発生し、書き込み中のページとその下位ページのログデータが破壊されると、ログ格納用ブロック50の有するログ格納用ブロック61へのポインタを利用することでログ格納用ブロック61からログを得ることができるので、ログ格納用ブロック51のログを容易に復元することができる。以上のように、ポインタを2重化することで、何れのタイミングで瞬断が起きた場合であっても、ログ情報が消失することを防ぐことができ、前ログ220Aと後ログ220Bとの何れか一方を用いることによって、メモリシステム10を瞬断が起きる前の状態に容易に復帰させることが可能となる。
なお、以上では、スナップショット210、前ログ220A、および後ログ220Bの格納位置を示すポインタとしてセカンドポインタ230を設け、さらに、このセカンドポインタ230の格納位置を示すポインタとしてルートポインタ240を設けることで、ポインタを2段とする構成としたが、例えばポインタの構成を1段とすることもできる。
また、前ログ220Aと後ログ220Bの先頭ポインタは、セカンドポインタ格納用ブロック内ではなく、スナップショット210の中に格納されていてもよい。
また、DRAM11でのデータ管理単位をページサイズ単位とし、NANDメモリ12でのデータの書込/読出単位をページサイズ単位とし、消去単位と管理単位をブロックサイズ単位としたが、これに限定される趣旨ではなく、それぞれ任意の単位を用いることが可能である。
また、第1の記憶部としてDRAMを用いる場合を例示したが、他の揮発性半導体記憶装置や不揮発性半導体記憶装置を用いてもよい。
また、電荷蓄積層は浮遊ゲート型に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Semiconductor)構造のようなシリコン窒化膜を用いた電荷トラップ型やその他の方式であってもよい。
10…メモリシステム、11…DRAM、12…NANDメモリ、13…電源回路、14…ドライブ制御部、15…バス、31…DRAM管理層、32…論理NAND管理層、33…物理NAND管理層、41…キャッシュ管理情報、42…管理情報、42a…論理ページ管理情報、42b…論理ブロック管理情報、43…NAND内論物変換情報、45,46,50,51,60,61…ログ格納用ブロック、111…一時記憶領域、112…作業領域、125…データ格納領域、126…管理情報保存領域、141…データ管理部、151…データ転送処理部、152…管理情報管理部、153…管理情報書込部、154…管理情報保存部、155…管理情報復元部、156…ログ格納ブロック開放部、210…スナップショット、220…ログ、220A…前ログ、220B…後ログ、230…セカンドポインタ、240…ルートポインタ
Claims (4)
- 揮発性の第1の記憶部と、
多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、
を備え、
前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域および前記ログ格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、
前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、
前記ブロックは、次に確保されたブロックの位置を示す第2のポインタを有することを特徴とするメモリシステム。 - 前記ログ格納領域は、前記管理情報が更新される前に保存されるログである更新前ログを格納する更新前ログ格納領域と、前記更新前ログと同一の内容のログでありかつ前記管理情報が更新された後に保存されるログである更新後ログを格納する更新後ログ格納領域と、を有し、
前記更新前ログ格納領域および前記更新後ログ格納領域はそれぞれ、保存される前記更新前ログまたは前記更新後ログのサイズに応じて、データ消去単位であるブロックを順次かつ同数確保して構成され、
前記更新前ログ格納領域におけるブロックは、前記更新前ログ格納領域において次に確保されたブロックの位置を示す前記第2のポインタに加えて、前記更新前ログ格納領域において次に確保されたブロックの確保順と同一の順番で前記更新後ログ格納領域において確保されたブロックの位置を示す第3のポインタを有し、
前記更新後ログ格納領域におけるブロックは、前記更新後ログ格納領域において次に確保されたブロックの位置を示す前記第2のポインタに加えて、前記更新後ログ格納領域において次に確保されたブロックの確保順と同一の順番で前記更新前ログ格納領域において確保されたブロックの位置を示す第4のポインタを有することを特徴とする請求項1に記載のメモリシステム。 - 揮発性の第1の記憶部と、
多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、
を備え、
前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、
前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、
前記ログ格納領域に保存された先頭のログの格納位置を示す第2のポインタは前記スナップショット内に保存され、
前記ブロックは、次に確保されたブロックの位置を示す第3のポインタを有することを特徴とするメモリシステム。 - 揮発性の第1の記憶部と、
多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、
を備え、
前記第2の記憶部は、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、を有し、
前記コントローラは、前記ログ格納領域がログでいっぱいになった際、および前記ログ格納領域がデータ記憶できない不良領域になった際に前記スナップショットを取得し、前記スナップショット格納領域に保存することを特徴とするメモリシステム。
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008051267A JP2009211188A (ja) | 2008-02-29 | 2008-02-29 | メモリシステム |
EP20100197364 EP2309392A1 (en) | 2008-02-29 | 2009-02-10 | Memory system |
EP20090709441 EP2111583A4 (en) | 2008-02-29 | 2009-02-10 | MEMORY SYSTEM |
KR1020097017866A KR101103110B1 (ko) | 2008-02-29 | 2009-02-10 | 메모리 시스템 |
PCT/JP2009/052590 WO2009107506A1 (en) | 2008-02-29 | 2009-02-10 | Memory system |
US12/529,227 US8438343B2 (en) | 2008-02-29 | 2009-02-10 | Memory system with fixed and variable pointers |
CN200980000132A CN101681313A (zh) | 2008-02-29 | 2009-02-10 | 存储器系统 |
TW98105523A TWI418983B (zh) | 2008-02-29 | 2009-02-20 | 記憶體系統及控制記憶體系統之方法 |
US13/855,394 US8738867B2 (en) | 2008-02-29 | 2013-04-02 | Memory system |
US14/226,510 US9043564B2 (en) | 2008-02-29 | 2014-03-26 | Memory system with fixed and variable pointers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008051267A JP2009211188A (ja) | 2008-02-29 | 2008-02-29 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009211188A true JP2009211188A (ja) | 2009-09-17 |
Family
ID=41184306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008051267A Pending JP2009211188A (ja) | 2008-02-29 | 2008-02-29 | メモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009211188A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003280825A (ja) * | 2002-03-22 | 2003-10-02 | Fujitsu Ltd | ストレージシステム |
JP2005258851A (ja) * | 2004-03-12 | 2005-09-22 | Renesas Technology Corp | メモリカード |
US20060253645A1 (en) * | 2005-05-09 | 2006-11-09 | M-Systems Flash Disk Pioneers Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
JP2007199977A (ja) * | 2006-01-26 | 2007-08-09 | Yokogawa Denshikiki Co Ltd | データ記憶装置及びデータ記憶方法 |
JP2008285600A (ja) * | 2007-05-18 | 2008-11-27 | Hideto Itatsu | 炭素繊維の再生処理装置 |
-
2008
- 2008-02-29 JP JP2008051267A patent/JP2009211188A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003280825A (ja) * | 2002-03-22 | 2003-10-02 | Fujitsu Ltd | ストレージシステム |
JP2005258851A (ja) * | 2004-03-12 | 2005-09-22 | Renesas Technology Corp | メモリカード |
US20060253645A1 (en) * | 2005-05-09 | 2006-11-09 | M-Systems Flash Disk Pioneers Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
JP2007199977A (ja) * | 2006-01-26 | 2007-08-09 | Yokogawa Denshikiki Co Ltd | データ記憶装置及びデータ記憶方法 |
JP2008285600A (ja) * | 2007-05-18 | 2008-11-27 | Hideto Itatsu | 炭素繊維の再生処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11573712B2 (en) | Memory system storing management information and method of controlling same | |
KR101103110B1 (ko) | 메모리 시스템 | |
JP4675984B2 (ja) | メモリシステム | |
US8285954B2 (en) | Memory system managing a plurality of logs | |
TWI419159B (zh) | 記憶體系統 | |
KR101102155B1 (ko) | 메모리 시스템 | |
JP2010152514A (ja) | メモリシステム | |
JP4551938B2 (ja) | メモリシステム | |
JP4558052B2 (ja) | メモリシステム | |
JP2009211202A (ja) | メモリシステム | |
JP2009211188A (ja) | メモリシステム | |
JP4551939B2 (ja) | メモリシステム | |
JP2009211196A (ja) | メモリシステム | |
JP2009211213A (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 |