[go: up one dir, main page]

JP2009211188A - Memory system - Google Patents

Memory system Download PDF

Info

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
storage area
storage unit
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
Application number
JP2008051267A
Other languages
Japanese (ja)
Inventor
Junji Yano
純二 矢野
Hidenori Matsuzaki
秀則 松崎
Kosuke Hatsuda
幸輔 初田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008051267A priority Critical patent/JP2009211188A/en
Priority to CN200980000132A priority patent/CN101681313A/en
Priority to EP20090709441 priority patent/EP2111583A4/en
Priority to EP20100197364 priority patent/EP2309392A1/en
Priority to PCT/JP2009/052590 priority patent/WO2009107506A1/en
Priority to KR1020097017866A priority patent/KR101103110B1/en
Priority to US12/529,227 priority patent/US8438343B2/en
Priority to TW98105523A priority patent/TWI418983B/en
Publication of JP2009211188A publication Critical patent/JP2009211188A/en
Priority to US13/855,394 priority patent/US8738867B2/en
Priority to US14/226,510 priority patent/US9043564B2/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】多値のメモリセルを使用したNAND型フラッシュメモリにスナップショットとログを格納しつつ、データ復元の信頼性を向上させることができるメモリシステムを提供すること。
【解決手段】揮発性の第1の記憶部と、不揮発性の第2の記憶部と、データ転送を行うとともに、第2の記憶部に記憶されたデータの格納位置を含む管理情報を第1の記憶部に取込み、この管理情報を更新しながら第1および第2の記憶部でのデータ管理を行うコントローラと、を備え、第2の記憶部は、第1の記憶部の管理情報であるスナップショットと、管理情報の更新差分情報であるログ220と、スナップショットおよびログ220の格納位置を示すセカンドポインタ230とを保存し、ログ220のログ格納領域を構成するログ格納用ブロック41,42に対して、ログ格納用ブロック41はログ格納用ブロック42の位置を示すポインタを有する。
【選択図】 図15
To provide a memory system capable of improving the reliability of data restoration while storing snapshots and logs in a NAND flash memory using multi-valued memory cells.
A volatile first storage unit, a non-volatile second storage unit and a management information including a storage position of data stored in the second storage unit as well as data transfer with the first storage unit. And a controller that performs data management in the first and second storage units while updating the management information, and the second storage unit is management information of the first storage unit Log storage blocks 41, 42 that store a snapshot, a log 220 that is update difference information of management information, and a second pointer 230 that indicates a storage position of the snapshot and the log 220 and constitute a log storage area of the log 220. On the other hand, the log storage block 41 has a pointer indicating the position of the log storage block 42.
[Selection] FIG.

Description

本発明は、不揮発性半導体記憶装置を用いて構成されるメモリシステムに関する。   The present invention relates to a memory system configured using a nonvolatile semiconductor memory device.

ハードディスク装置を2次記憶装置として用いたパーソナルコンピュータにおいては、ハードディスク装置に格納されるデータが何らかの障害によって無効なデータとなってしまうことを防ぐためにバックアップをとる技術が知られている。たとえば、ハードディスク装置中のデータの変更を検出すると、そのデータの変更前のバックアップコピーであるスナップショットをとり、そのデータに対する更新を記録したログをとる。その後、所定の時間ごとにスナップショットをとるとともに、スナップショットをとる前の過去のログを無効にし、新しいログを生成するという処理が繰り返し行われる(たとえば、特許文献1参照)。そして、データが無効になってしまった場合には、スナップショットとログを基にそのデータを復元することができる。   In a personal computer using a hard disk device as a secondary storage device, a technique for taking a backup in order to prevent data stored in the hard disk device from becoming invalid data due to some trouble is known. For example, when a change in data in the hard disk device is detected, a snapshot which is a backup copy before the change of the data is taken, and a log in which updates to the data are recorded is taken. Thereafter, a process of taking a snapshot every predetermined time, invalidating a past log before taking the snapshot, and generating a new log is repeatedly performed (for example, see Patent Document 1). If the data becomes invalid, the data can be restored based on the snapshot and the log.

ところで、近年では、不揮発性半導体記憶装置であるNAND型フラッシュメモリの大容量化が進行し、このNAND型フラッシュメモリを有するメモリシステムを2次記憶装置とするパーソナルコンピュータが製品化されている。しかし、このようなNAND型フラッシュメモリを2次記憶装置とするパーソナルコンピュータに格納されるデータのバックアップに対して、ハードディスク装置を2次記憶装置とするパーソナルコンピュータに格納されるデータのバックアップの場合と同様に上記特許文献1の技術を適用することはできない。それは、NAND型フラッシュメモリの大容量化には、1つのメモリセルに2ビット以上の複数のデータ(多値データ)を記憶することが可能な多値メモリ技術が使用されているからである。   In recent years, the capacity of NAND flash memories, which are nonvolatile semiconductor memory devices, has been increased, and personal computers using a memory system having the NAND flash memory as a secondary storage device have been commercialized. However, in contrast to backup of data stored in a personal computer having such a NAND flash memory as a secondary storage device, backup of data stored in a personal computer having a hard disk device as a secondary storage device; Similarly, the technique of Patent Document 1 cannot be applied. This is because, in order to increase the capacity of the NAND flash memory, a multi-level memory technology capable of storing a plurality of data (multi-level data) of 2 bits or more in one memory cell is used.

多値メモリを構成するメモリセルは、チャネル領域上にゲート絶縁膜、浮遊ゲート電極、ゲート間絶縁膜および制御ゲート電極が順に積層された積層ゲート構造を有する電界効果型トランジスタ構造を有し、浮遊ゲート電極に蓄積される電子の数に応じて、複数の閾値電圧を設定可能な構成を有している。そして、この複数の閾値電圧によって、多値記憶を可能とするために、1つのデータに対応する閾値電圧の分布を非常に狭く制御する必要がある。   A memory cell constituting a multi-value memory has a field effect transistor structure having a stacked gate structure in which a gate insulating film, a floating gate electrode, an inter-gate insulating film, and a control gate electrode are sequentially stacked on a channel region. A plurality of threshold voltages can be set according to the number of electrons accumulated in the gate electrode. In order to enable multi-value storage using the plurality of threshold voltages, it is necessary to control the distribution of threshold voltages corresponding to one data very narrowly.

たとえば、4値を記憶することができる多値メモリでは、1つのメモリセルに下位ページと上位ページを設け、それぞれのページに1ビットのデータを書き込むことによって、2ビット(4値)を記憶するものがある。このような多値メモリのデータ書込方法は、第1のメモリセルの下位ページにデータを書き込んだ後、隣接メモリセル(第2のメモリセル)の下位ページにデータを書き込む。そして、この隣接メモリセルへの書き込み後に、第1のメモリセルの上位ページにデータを書き込んでいる(たとえば、特許文献2参照)。   For example, in a multilevel memory capable of storing four values, two bits (four values) are stored by providing a lower page and an upper page in one memory cell and writing 1-bit data in each page. There is something. In such a multi-level memory data writing method, data is written to the lower page of the first memory cell, and then the data is written to the lower page of the adjacent memory cell (second memory cell). Then, after writing to the adjacent memory cell, data is written to the upper page of the first memory cell (see, for example, Patent Document 2).

しかし、このような多値メモリでは、先に書き込んだメモリセルの閾値電圧が、このメモリセルと隣接し、後に書き込まれるメモリセルの閾値電圧によって変動してしまう。このため、多値メモリでは、あるメモリセルの上位ページの書き込み中に、たとえば電源の異常遮断などによって書き込みが中断されると、先に書き込んだ下位ページのデータも破壊される下位ページデータ破壊が生じる可能性がある。   However, in such a multi-level memory, the threshold voltage of the memory cell written earlier is adjacent to the memory cell and fluctuates depending on the threshold voltage of the memory cell written later. For this reason, in multi-level memory, if writing is interrupted, for example, due to an abnormal shutdown of the power supply during the writing of the upper page of a certain memory cell, lower page data destruction that destroys the data of the lower page that has been written first will occur. It can happen.

また、NAND型フラッシュメモリを有するメモリシステムでは、データを記憶させる場合に、例えばブロックと呼ばれる単位で一度書き込み領域を消去してからその後にページと呼ばれる単位で書き込みを行なう必要がある。一方で、このようなデータの書き込みに先立って行なうブロックの消去回数が増加するにつれて、ブロックを構成するメモリセルの劣化が進行するという問題がある。そのため、NAND型フラッシュメモリを2次記憶装置とするパーソナルコンピュータにおいては、ブロックの消去回数を抑制するためのデータ管理を行なう必要があり、上述したスナップショットとログに基づいてデータを復元する際にも、ブロックの消去回数を抑制するようにデータ管理を行なう必要があった。   In a memory system having a NAND flash memory, when data is stored, it is necessary to erase a write area once in a unit called a block, for example, and then write in a unit called a page. On the other hand, there is a problem in that the deterioration of memory cells constituting the block proceeds as the number of block erasures performed prior to such data writing increases. Therefore, in a personal computer using a NAND flash memory as a secondary storage device, it is necessary to perform data management for suppressing the number of block erasures, and when restoring data based on the snapshot and log described above. However, it is necessary to perform data management so as to suppress the number of block erases.

米国特許出願公開第2006/0224636号明細書US Patent Application Publication No. 2006/0224636 特開2004−192789号公報JP 2004-192789 A

本発明は、上記に鑑みてなされたものであって、多値のメモリセルを使用したNAND型フラッシュメモリにスナップショットとログを格納しつつ、データ復元の信頼性を向上することができるメモリシステムを提供することを目的とする。   The present invention has been made in view of the above, and is a memory system capable of improving the reliability of data restoration while storing snapshots and logs in a NAND flash memory using multi-valued memory cells. The purpose is to provide.

本願発明の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、を備え、前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域および前記ログ格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、前記ブロックは、次に確保されたブロックの位置を示す第2のポインタを有することを特徴とする。   According to one aspect of the present invention, a volatile first storage unit, a nonvolatile second storage unit composed of memory cells capable of storing multi-value data, and a host via the first storage unit Performing data transfer between the device and the second storage unit, taking management information including the storage location of the data stored in the second storage unit at startup into the first storage unit, A controller that manages data in the first and second storage units based on management information while updating the captured management information, and the second storage unit is configured when a predetermined condition is satisfied. A log that stores a snapshot storage area that is acquired and stores a snapshot that is the management information of the first storage unit, and a log that is difference information before and after the change when the management information is changed Storage space and A pointer storage area for storing a first pointer indicating a storage position of the snapshot storage area and the log storage area, and the log storage area erases data according to the size of the log to be stored It is configured by sequentially securing blocks as units, and the block has a second pointer indicating the position of the next secured block.

本願発明の別の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、を備え、前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、前記ログ格納領域に保存された先頭のログの格納位置を示す第2のポインタは前記スナップショット内に保存され、前記ブロックは、次に確保されたブロックの位置を示す第3のポインタを有することを特徴とする。   According to another aspect of the present invention, a volatile first storage unit, a nonvolatile second storage unit composed of memory cells capable of storing multivalued data, and the first storage unit In addition to transferring data between the host device and the second storage unit, the management information including the storage location of the data stored in the second storage unit at the time of startup is taken into the first storage unit A controller for managing data in the first and second storage units based on the management information while updating the fetched management information, wherein the second storage unit satisfies a predetermined condition A snapshot storage area for storing a snapshot that is the management information in the first storage unit and a log that is difference information before and after the change when the management information is changed Log storage area And a pointer storage area for storing a first pointer indicating a storage position of the snapshot storage area, and the log storage area is a data erasure unit according to the size of the log to be saved The second pointer indicating the storage location of the first log stored in the log storage area is stored in the snapshot, and the block is the position of the next allocated block. It has the 3rd pointer which shows.

本願発明のさらに別の一態様によれば、揮発性の第1の記憶部と、多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、を備え、前記第2の記憶部は、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、を有し、前記コントローラは、前記ログ格納領域がログでいっぱいになった際、および前記ログ格納領域がデータ記憶できない不良領域になった際に前記スナップショットを取得し、前記スナップショット格納領域に保存することを特徴とする。   According to still another aspect of the present invention, a volatile first storage unit, a nonvolatile second storage unit composed of memory cells capable of storing multi-value data, and the first storage unit Data is transferred between the host device and the second storage unit via the network, and management information including the storage location of the data stored in the second storage unit at the time of activation is stored in the first storage unit. A controller that manages data in the first and second storage units based on management information while updating the captured management information, and the second storage unit is changed to the management information A log storage area that stores a log that is difference information before and after the change when the error occurs, and a snapshot storage area that stores a snapshot that is the management information of the first storage unit, and The controller When grayed storage area is full of logs, and the log storage area acquires the snapshot when it becomes defective region can not be data storage, characterized in that stored in the snapshot storage area.

この発明によれば、ログの格納位置を示すポイントを多重化することにより、データ復元の信頼性を向上することができる、という効果を奏する。   According to the present invention, there is an effect that reliability of data restoration can be improved by multiplexing points indicating log storage positions.

以下に、本発明に係るメモリシステムおよび管理情報の保存方法の実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。   Embodiments of a memory system and management information storage method according to the present invention will be described below in detail with reference to the drawings. Note that the present invention is not limited to these embodiments.

(実施の形態)
このメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の2次記憶装置(SSD:Solid State Drive)として使用され、ホスト装置から書込要求を出されたデータを記憶し、またホスト装置から読出要求のあったデータを読み出してホスト装置に出力する機能を有する。図1は、本発明の第1の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。このメモリシステム10は、第1の記憶部としてのDRAM(Dynamic Random Access Memory)11と、第2の記憶部としてのNAND型フラッシュメモリ(以下、NANDメモリという)12と、電源回路13と、ドライブ制御部14と、を備える。
(Embodiment)
This memory system includes a nonvolatile semiconductor memory device, and is used as a secondary storage device (SSD: Solid State Drive) of a host device such as a personal computer, for example, and stores data for which a write request is issued from the host device. In addition, it has a function of reading data requested to be read from the host device and outputting it to the host device. FIG. 1 is a block diagram showing an example of the configuration of the memory system according to the first embodiment of the present invention. The memory system 10 includes a DRAM (Dynamic Random Access Memory) 11 as a first storage unit, a NAND flash memory (hereinafter referred to as a NAND memory) 12 as a second storage unit, a power supply circuit 13, and a drive. And a control unit 14.

DRAM11は、データ転送用、管理情報記録用または作業領域用の記憶部として使用される。具体的には、データ転送用の記憶部としては、ホスト装置から書込要求があったデータをNANDメモリ12に書き込む前に一時的に保存したり、ホスト装置から読出要求があったデータをNANDメモリ12から読み出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、DRAM11およびNANDメモリ12に記憶されるデータの格納位置を管理するための管理情報を格納するために使用される。さらに、作業領域用の記憶部としては、管理情報を復元する際に用いる前後ログ(前ログおよび後ログ)の展開時などに使用される。   The DRAM 11 is used as a storage unit for data transfer, management information recording, or work area. Specifically, as a storage unit for data transfer, data requested to be written from the host device is temporarily stored before being written to the NAND memory 12, or data requested to be read from the host device is NANDed. It is used for reading out from the memory 12 and temporarily storing it. The management information recording storage unit is used to store management information for managing the storage location of data stored in the DRAM 11 and the NAND memory 12. Furthermore, the storage unit for the work area is used at the time of expansion of the before and after logs (previous log and subsequent log) used when restoring the management information.

NANDメモリ12は、データ保存用の記憶部として使用される。具体的には、ホスト装置側によって指定されたデータを記憶したり、DRAM11で管理される管理情報をバックアップ用に記憶したりする。この図1では、NANDメモリ12が4つのチャネル120A〜120Dによって構成されている場合が示されている。1つのチャネル120A〜120Dは、所定のサイズの記憶容量を有する8個のチップ122が1つにまとめられたパッケージ121を2つ含んでいる。また、各チャネル120A〜120Dは、ドライブ制御部14とバス15を介して接続されている。   The NAND memory 12 is used as a storage unit for storing data. Specifically, data designated by the host device side is stored, or management information managed by the DRAM 11 is stored for backup. FIG. 1 shows a case where the NAND memory 12 is configured by four channels 120A to 120D. One channel 120A to 120D includes two packages 121 in which eight chips 122 having a storage capacity of a predetermined size are combined into one. Each channel 120 </ b> A to 120 </ b> D is connected to the drive control unit 14 via the bus 15.

電源回路13は、外部電源を受け、この外部電源を用いてメモリシステム10の各部に供給するための複数の内部電源を生成する。また、電源回路13は、外部電源の立ち上がりまたは立ち下りを検知して、パワーオンリセット信号を生成する。このパワーオンリセット信号は、ドライブ制御部14に送られる。   The power supply circuit 13 receives an external power supply and generates a plurality of internal power supplies to be supplied to each part of the memory system 10 using the external power supply. The power supply circuit 13 detects the rise or fall of the external power supply and generates a power-on reset signal. This power-on reset signal is sent to the drive control unit 14.

ドライブ制御部14は、DRAM11とNANDメモリ12を制御する。詳細は後述するが、たとえば、電源回路13からのパワーオンリセット信号に応じて、管理情報の復元処理や管理情報の保存処理を行う。また、ドライブ制御部14は、ATAインタフェース(図中では、ATA I/Fと表記)を介して、ホスト装置との間でデータを送受信し、RS232Cインタフェース(図中では、RS232C I/Fと表記)を介して、デバッグ用機器との間でデータを送受信する。さらに、ドライブ制御部14は、メモリシステム10の外部に設けられる状態表示用LEDを制御するための制御信号を出力する。   The drive control unit 14 controls the DRAM 11 and the NAND memory 12. Although details will be described later, for example, in accordance with a power-on reset signal from the power supply circuit 13, management information restoration processing and management information storage processing are performed. Further, the drive control unit 14 transmits / receives data to / from the host device via the ATA interface (denoted as ATA I / F in the figure), and the RS232C interface (denoted as RS232C I / F in the figure). ) To send / receive data to / from the debugging device. Further, the drive control unit 14 outputs a control signal for controlling a status display LED provided outside the memory system 10.

ここで、NANDメモリ12の構成について説明する。NANDメモリ12は、データ消去の単位であるブロック(消去単位領域)を基板上に複数配列して構成される。図2は、NANDメモリに含まれる1個のブロックの構成の一例を示す回路図である。なお、この図2において、紙面上の左右方向をX方向とし、紙面上のX方向に垂直な方向をY方向としている。   Here, the configuration of the NAND memory 12 will be described. The NAND memory 12 is configured by arranging a plurality of blocks (erase unit areas), which are units of data erase, on a substrate. FIG. 2 is a circuit diagram showing an example of the configuration of one block included in the NAND memory. In FIG. 2, the left-right direction on the paper surface is the X direction, and the direction perpendicular to the X direction on the paper surface is the Y direction.

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と、を有する。   Each block BLK of the NAND memory 12 includes (m + 1) (m is an integer of 0 or more) NAND strings NS arranged in order along the X direction. Each NAND string NS has (n + 1) (n is an integer of 0 or more) connected in series in the Y direction sharing a diffusion region (source region or drain region) between memory cell transistors MT adjacent in the Y direction. Memory cell transistors MT0 to MTn and select transistors ST1 and ST2 arranged at both ends of the column of (n + 1) memory cell transistors MT0 to MTn.

各メモリセルトランジスタMT0〜MTnは、半導体基板上に形成された積層ゲート構造を有するMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。ここで、積層ゲート構造には、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)と、この電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極と、が含まれる。メモリセルトランジスタMT0〜MTnは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じて2ビット以上のデータを記憶することができる多値メモリである。なお、以下に示す実施の形態では、メモリセルトランジスタMTはこの多値メモリである場合を例に挙げて説明する。   Each of the memory cell transistors MT0 to MTn is composed of a MOSFET (Metal Oxide Semiconductor Field Effect Transistor) having a stacked gate structure formed on a semiconductor substrate. Here, in the stacked gate structure, the charge storage layer (floating gate electrode) formed on the semiconductor substrate with the gate insulating film interposed therebetween, and the inter-gate insulating film on the charge storage layer was formed. A control gate electrode. The memory cell transistors MT0 to MTn are multi-value memories that can store data of 2 bits or more according to a difference in threshold voltage depending on the number of electrons stored in the floating gate electrode. . In the embodiment described below, the case where the memory cell transistor MT is a multilevel memory will be described as an example.

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では、このページ単位でデータの書き込みと読み出しが行われる。   Word lines WL0 to WLn are connected to the control gate electrodes of the memory cell transistors MT0 to MTn constituting the NAND string NS, respectively, and between the memory cell transistors MTi (i = 0 to n) in each NAND string NS. Are commonly connected by the same word line WLi (i = 0 to n). That is, the control gate electrodes of the memory cell transistors MTi in the same row in the block BLK are connected to the same word line WLi. A group of (m + 1) memory cell transistors MTi connected to the same word line WLi is a unit constituting one page. In the NAND memory 12, data is written and read in units of pages.

1つのブロックBLK内の(m+1)個の選択トランジスタST1のドレインにはそれぞれビット線BL0〜BLmが接続され、ゲートには選択ゲート線SGDが共通接続されている。また、選択トランジスタST1のソースはメモリセルトランジスタMT0のドレインと接続されている。同様に、1つのブロックBLK内の(m+1)個の選択トランジスタST2のソースにはソース線SLが共通接続され、ゲートには選択ゲート線SGSが共通接続されている。また、選択トランジスタST2のドレインはメモリセルトランジスタMTnのソースと接続されている。   Bit lines BL0 to BLm are connected to the drains of (m + 1) selection transistors ST1 in one block BLK, respectively, and a selection gate line SGD is commonly connected to the gates. The source of the select transistor ST1 is connected to the drain of the memory cell transistor MT0. Similarly, a source line SL is commonly connected to sources of (m + 1) selection transistors ST2 in one block BLK, and a selection gate line SGS is commonly connected to gates. The drain of the select transistor ST2 is connected to the source of the memory cell transistor MTn.

なお、図示されていないが、1つのブロックBLK内のビット線BLj(j=0〜m)は、他のブロックBLKのビット線BLjとの間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロックBLK内において同一列にあるNANDストリングNS間は、同一のビット線BLjによって接続される。   Although not shown, the bit line BLj (j = 0 to m) in one block BLK is connected to the drain of the selection transistor ST1 in common with the bit line BLj of another block BLK. Yes. That is, the NAND strings NS in the same column in the plurality of blocks BLK are connected by the same bit line BLj.

つぎに、DRAM11とNANDメモリ12の機能構成について説明する。図3は、DRAMとNANDメモリの機能構成を模式的に示す図であり、(a)はDRAM11の機能構成を示し、(b)はNANDメモリ12の機能構成を示している。   Next, functional configurations of the DRAM 11 and the NAND memory 12 will be described. FIG. 3 is a diagram schematically illustrating the functional configuration of the DRAM and the NAND memory. FIG. 3A illustrates the functional configuration of the DRAM 11, and FIG. 3B illustrates the functional configuration of the NAND memory 12.

図3(a)に示されるように、DRAM11は、ホスト装置から書込要求のあったデータが記憶されるライトキャッシュ領域WCと、ホスト装置から読出要求のあったデータが記憶されるリードキャッシュ領域RCと、DRAM11およびNANDメモリ12に記憶されるデータの格納位置を管理するための管理情報が記憶される一時記憶領域111と、管理情報を復元する際に使用される作業領域112と、を有する。   As shown in FIG. 3A, the DRAM 11 includes a write cache area WC that stores data requested to be written from the host apparatus, and a read cache area that stores data requested to be read from the host apparatus. RC, temporary storage area 111 in which management information for managing the storage location of data stored in DRAM 11 and NAND memory 12 is stored, and work area 112 used when restoring the management information .

図3(b)に示されるように、NANDメモリ12は、ホスト装置から書込要求のあったデータが格納されるデータ格納領域125と、DRAM11の一時記憶領域111で管理される管理情報が保存される管理情報保存領域126と、を有する。この例では、NANDメモリ12でのデータの書込/読出単位をページサイズ単位とし、消去の単位をブロックサイズ単位(たとえば512KB単位)とするものとする。そのため、ブロックサイズ単位で管理されるNANDメモリ12の各ブロックを記憶するための領域を、さらにページサイズ単位の領域に分割する。   As illustrated in FIG. 3B, the NAND memory 12 stores management information managed in the data storage area 125 in which data requested to be written from the host device is stored and the temporary storage area 111 in the DRAM 11. Management information storage area 126. In this example, the data write / read unit in the NAND memory 12 is a page size unit, and the erase unit is a block size unit (for example, 512 KB unit). For this reason, an area for storing each block of the NAND memory 12 managed in block size units is further divided into areas in page size units.

ここで、DRAM11の一時記憶領域111で管理される管理情報について説明する。図4は、メモリシステムで記憶されるデータを管理する層構造の一例を示す図である。なお、ここで、データとは、ホスト装置から書込要求/読出要求のあったデータのことをいうものとする。このメモリシステム10では、キャッシュの役割をするDRAM11でのデータ管理を行なうDRAM管理層31と、NANDメモリ12での論理的なデータ管理を行なう論理NAND管理層32と、NANDメモリ12での物理的なデータ管理やNANDメモリ12の延命処理などを行なう物理NAND管理層33の3層構造でデータ管理が行われる。   Here, management information managed in the temporary storage area 111 of the DRAM 11 will be described. FIG. 4 is a diagram illustrating an example of a layer structure for managing data stored in the memory system. Here, the data refers to data that has been requested to be written / read from the host device. In this memory system 10, a DRAM management layer 31 that performs data management in the DRAM 11 that serves as a cache, a logical NAND management layer 32 that performs logical data management in the NAND memory 12, and a physical in the NAND memory 12. Data management is performed in a three-layer structure of a physical NAND management layer 33 that performs simple data management and life extension processing of the NAND memory 12.

DRAM11のライトキャッシュ領域WCとリードキャッシュ領域RCでは、ホスト装置のアドレス管理方法によって管理される論理アドレス(以下、LBA(Logical Block Address)という)で指定されたデータが、DRAM11上の所定の範囲の物理アドレス(以下、DRAM内物理アドレスという)に記憶される。また、DRAM管理層31内でのデータは、格納されるデータのLBAとDRAM内物理アドレスとの対応関係と、ページ中のセクタサイズ単位のデータの有無を示すセクタフラグと、を含むキャッシュ管理情報41によって管理される。   In the write cache area WC and the read cache area RC of the DRAM 11, data specified by a logical address (hereinafter referred to as LBA (Logical Block Address)) managed by the address management method of the host device is within a predetermined range on the DRAM 11. It is stored in a physical address (hereinafter referred to as a physical address in DRAM). The data in the DRAM management layer 31 includes cache management information 41 including a correspondence between the LBA of stored data and a physical address in the DRAM, and a sector flag indicating the presence / absence of data in the sector size unit in the page. Managed by.

図5は、キャッシュ管理情報テーブルの一例を示す図である。ここでは、キャッシュ管理情報41は、DRAM11の1ページサイズの領域1つに対して1エントリとし、エントリ数はライトキャッシュ領域WCとリードキャッシュ領域RCに収まるページ数以下とする。各エントリには、ページサイズのデータのLBAと、DRAM内物理アドレスと、このページをセクタサイズで分割した各領域における有効データの位置を示すセクタフラグと、が関連付けられている。   FIG. 5 is a diagram illustrating an example of the cache management information table. Here, the cache management information 41 has one entry for one page size area of the DRAM 11 and the number of entries is equal to or less than the number of pages that can be stored in the write cache area WC and the read cache area RC. Each entry is associated with an LBA of page size data, a physical address in DRAM, and a sector flag indicating the position of valid data in each area obtained by dividing the page by the sector size.

NANDメモリ12では、DRAM11からのデータがNANDメモリ12上の所定の範囲の物理アドレス(以下、NAND内物理アドレスという)に格納される。また、多値メモリからなるNANDメモリ12では、書換可能回数に制約があるため、NANDメモリ12を構成する各ブロック間での書換回数が均等化するようにドライブ制御部14で制御されている。つまり、ドライブ制御部14は、NANDメモリ12内のあるNAND内物理アドレスに書き込まれたデータの更新を行なう場合に、そのデータが含まれるブロックのうち更新が必要な部分を反映させたデータを、元のブロックとは異なるブロックに書き込み、元のブロックは無効化するようにして、NANDメモリ12を構成するブロック間での書換回数が均等化するように制御している。   In the NAND memory 12, data from the DRAM 11 is stored in a predetermined range of physical addresses (hereinafter referred to as “in-NAND physical addresses”) on the NAND memory 12. Further, in the NAND memory 12 composed of a multi-value memory, the number of rewritable times is limited, and therefore, the drive control unit 14 controls the number of times of rewriting between the blocks constituting the NAND memory 12 to be equalized. That is, when updating the data written to a physical address in a NAND in the NAND memory 12, the drive control unit 14 reflects data that reflects a portion that needs to be updated in a block including the data. Control is performed so that the number of rewrites between the blocks constituting the NAND memory 12 is equalized by writing to a block different from the original block and invalidating the original block.

このように、NANDメモリ12では、データの書込/読出処理と消去処理とでは処理単位が異なるとともに、データの更新処理においては、更新前のデータの位置(ブロック)と更新後のデータの位置(ブロック)とが異なるため、この実施の形態では、NAND内物理アドレスのほかにNANDメモリ12内で独自に使用されるNAND内論理アドレス(以下、NAND内論理アドレスという)を設けることにする。   As described above, in the NAND memory 12, the processing unit is different between the data write / read process and the erase process, and in the data update process, the data position (block) before the update and the data position after the update are updated. In this embodiment, in addition to the physical address in the NAND, a logical address in the NAND (hereinafter referred to as a logical address in the NAND) that is uniquely used in the NAND memory 12 is provided in this embodiment.

そこで、論理NAND管理層32内でのデータは、DRAM11から受け取ったページサイズ単位のデータのLBAと、受け取ったデータを格納するNANDメモリ12の論理的なページ位置を示すNAND内論理アドレスとの間の関係と、NANDメモリ12における消去単位のブロックとサイズが一致する論理的なブロック(以下、論理ブロックという)のアドレス範囲を示す関係と、を示す論理NAND管理情報42によって管理される。なお、この論理ブロックを複数まとめたものを論理ブロックとしてもよい。また、物理NAND管理層33でのデータは、NANDメモリ12におけるNAND内論理アドレスとNAND内物理アドレスとの対応関係を含むNAND内論理アドレス−物理アドレス変換情報(以下、論物変換情報という)43によって管理される。   Therefore, the data in the logical NAND management layer 32 is between the LBA of the page size unit data received from the DRAM 11 and the logical address in the NAND indicating the logical page position of the NAND memory 12 storing the received data. And logical NAND management information 42 indicating a relationship indicating the address range of a logical block (hereinafter referred to as a logical block) having the same size as the erase unit block in the NAND memory 12. Note that a plurality of logical blocks may be combined into a logical block. Further, data in the physical NAND management layer 33 includes NAND logical address-physical address conversion information (hereinafter referred to as logical-physical conversion information) 43 including the correspondence between the logical addresses in the NAND and the physical addresses in the NAND memory 12. Managed by.

図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内論理アドレスとが対応付けられている。   FIG. 6 is a diagram illustrating an example of a logical NAND management information table, and FIG. 7 is a diagram illustrating an example of a NAND intrinsic-physical conversion information table. As shown in FIG. 6, the logical NAND management information 42 includes logical page management information 42a and logical block management information 42b. The logical page management information 42a has one entry for one logical area of one page size, and each entry has an LBA of data of one page size, a logical address in NAND, and whether this page is valid. And a page flag indicating that. Further, the logical block management information 42b includes a physical address in the NAND set for an area of one block size in the NAND memory 12. Further, as shown in FIG. 7, in the NAND intrinsic / physical conversion information 43, the NAND physical address and the NAND logical address of the NAND memory 12 are associated with each other.

これらの管理情報によって、ホスト装置で使用されるLBAと、NANDメモリ12で使用されるNAND内論理アドレスと、NANDメモリ12で使用されるNAND内物理アドレスとの間を対応付けることができ、ホスト装置と当該メモリシステム10との間のデータのやり取りを行なうことが可能となる。   With these management information, the LBA used in the host device, the logical address in the NAND used in the NAND memory 12, and the physical address in the NAND used in the NAND memory 12 can be associated with each other. And the memory system 10 can exchange data.

なお、以下では、DRAM管理層31で管理される管理情報は、電源オフなどによって消失するので、揮発性テーブルともいい、論理NAND管理層32および物理NAND管理層33で管理される管理情報は、電源オフなどによって消失した際にメモリシステム10の次回起動時に支障を与え、保存しておくことが必要なので、不揮発性テーブルともいう。   In the following, the management information managed by the DRAM management layer 31 is lost when the power is turned off. Therefore, it is also referred to as a volatile table. The management information managed by the logical NAND management layer 32 and the physical NAND management layer 33 is: When the memory system 10 disappears due to power-off or the like, it is necessary to store and save the memory system 10 next time, so it is also called a non-volatile table.

この不揮発性テーブルは、NANDメモリ12に格納されているデータを管理するものであり、この不揮発性テーブルがなければNANDメモリ12に格納されている情報にアクセスできなかったり、既に記憶した領域内のデータを消してしまったりするので、不意の電源オフなどに備えて最新の情報に保存しておく必要がある。そのため、この実施の形態では、NANDメモリ12の管理情報保存領域126には、少なくとも不揮発性テーブルを含む管理情報が最新の状態で保存されている。そこでつぎに、NANDメモリ12の管理情報保存領域126に保存される管理情報保存情報について説明する。なお、以下では、不揮発性テーブルのみを管理情報保存領域126に保存する場合を例に挙げる。   This non-volatile table manages the data stored in the NAND memory 12, and without this non-volatile table, the information stored in the NAND memory 12 cannot be accessed, or in the area already stored. Since data is erased, it is necessary to save the latest information in preparation for unexpected power off. Therefore, in this embodiment, management information including at least a nonvolatile table is stored in the management information storage area 126 of the NAND memory 12 in the latest state. Next, management information storage information stored in the management information storage area 126 of the NAND memory 12 will be described. Hereinafter, a case where only the nonvolatile table is stored in the management information storage area 126 will be described as an example.

図8は、管理情報保存領域に記憶される管理情報保存情報の内容の一例を模式的に示す図である。この管理情報保存領域126には、ある時点における不揮発性テーブルの内容であるスナップショット210と、次にスナップショットを取るまでの不揮発性テーブルの内容の更新差分情報であるとともに更新前に取得された更新前ログ(以下、前ログという)220Aと、この前ログ220Aと同一の内容のログ情報であるとともに更新後に保存された更新後ログ(以下、後ログという)220Bと、スナップショット210の位置(ブロック)、このスナップショット210に対して取得された前ログ220Aの位置(ブロック)、およびこのスナップショット210に対して取得された後ログ220Bの位置(ブロック)を示すセカンドポインタ230と、セカンドポインタ230が格納される位置(ブロック)を示すルートポインタ240と、を含む管理情報保存情報が格納される。ここで、スナップショット210とは、DRAM11の一時記憶領域111に記憶される管理情報のうち、少なくとも不揮発性テーブルを含む管理情報を所定の時点で保存した情報のことをいう。   FIG. 8 is a diagram schematically illustrating an example of the contents of management information storage information stored in the management information storage area. In this management information storage area 126, the snapshot 210 which is the contents of the nonvolatile table at a certain point in time and the update difference information of the contents of the nonvolatile table until the next snapshot is taken and acquired before the update The pre-update log (hereinafter referred to as the pre-log) 220A, the post-update log (hereinafter referred to as the post-log) 220B having the same contents as the previous log 220A and saved after the update, and the position of the snapshot 210 (Block), a second pointer 230 indicating the position (block) of the previous log 220A acquired for this snapshot 210, and the position (block) of the subsequent log 220B acquired for this snapshot 210, and a second Root pointer indicating the position (block) where the pointer 230 is stored Management information storage information including a 40, a is stored. Here, the snapshot 210 refers to information in which management information including at least a nonvolatile table is stored at a predetermined time among management information stored in the temporary storage area 111 of the DRAM 11.

この図8において、スナップショット210、前ログ220A、後ログ220B、セカンドポインタ230、およびルートポインタ240は、それぞれ異なるブロックに格納される。また、これらのブロックの大きさは、消去単位である物理ブロックと同じ大きさとする。スナップショット210は、スナップショット格納用ブロックに格納される。スナップショット210には、NANDメモリ12の管理情報保存領域126内の不揮発性テーブルである論理NAND管理情報42とNAND内論物変換情報43とが含まれる。新しいスナップショット210が保存されると、以前に保存されていたスナップショット210とは別のブロックに保存される。   In FIG. 8, the snapshot 210, the previous log 220A, the rear log 220B, the second pointer 230, and the root pointer 240 are stored in different blocks. Also, the size of these blocks is the same size as the physical block which is an erasing unit. The snapshot 210 is stored in a snapshot storage block. The snapshot 210 includes logical NAND management information 42 that is a nonvolatile table in the management information storage area 126 of the NAND memory 12 and NAND intrinsic / physical conversion information 43. When the new snapshot 210 is saved, it is saved in a different block from the previously saved snapshot 210.

前ログ220Aおよび後ログ220Bは、データ書き込み処理等に伴い不揮発性テーブルの内容に変更があった場合の内容更新後の不揮発性テーブルとスナップショット210(またはスナップショット210と既に取られたログ)との差分情報である。具体的には、スナップショット210が取られた後の最初の前ログ220Aまたは最初の後ログ220Bは、不揮発性テーブルとスナップショット210との差分情報である。また、スナップショット210が取られた後の2番目以降の前ログ220Aは、既に取られた前ログ220Aとスナップショット210とを合わせたものと、不揮発性テーブルとの差分情報である。また、スナップショット210が取られた後の2番目以降の後ログ220Bは、既に取られた後ログ220Bとスナップショット210とを合わせたものと、不揮発性テーブルとの差分情報である。   The pre-log 220A and the post-log 220B are the non-volatile table and the snapshot 210 (or the log already taken with the snapshot 210) after the content update when the content of the non-volatile table is changed due to the data writing process or the like. Difference information. Specifically, the first previous log 220 </ b> A or the first subsequent log 220 </ b> B after the snapshot 210 is taken is difference information between the nonvolatile table and the snapshot 210. Further, the second and subsequent previous logs 220A after the snapshot 210 is taken are difference information between the non-volatile table and the combination of the previous log 220A and the snapshot 210 that have already been taken. Further, the second and subsequent post-logs 220B after the snapshot 210 is taken are difference information between the non-volatile table and the combination of the post-log 220B and the snapshot 210 that have already been taken.

前ログ220Aは、管理情報が実際に更新される前に生成しておく情報である。このため、データの書き込み処理などが行なわれることによって管理情報が実際に更新される前に、管理情報がどのように更新されるかの更新計画に基づいて、前ログ220Aは生成される。また、後ログ220Bは、管理情報が実際に更新された後に生成される情報である。このため、データの書き込み処理などが行なわれることによって管理情報が実際に更新された後に、実際の管理情報などを用いて後ログ220Bは生成される。   The previous log 220A is information generated before the management information is actually updated. Therefore, before the management information is actually updated by performing a data writing process or the like, the previous log 220A is generated based on the update plan of how the management information is updated. The post log 220B is information generated after the management information is actually updated. Therefore, after the management information is actually updated by performing a data write process or the like, the post-log 220B is generated using the actual management information.

前ログ220Aおよび後ログ220Bは、それぞれログ格納用ブロックに格納される。前ログ220Aおよび後ログ220Bは、スナップショットの世代が変わっても、同じログ格納用ブロックに追記される。   The pre-log 220A and the post-log 220B are each stored in a log storage block. The front log 220A and the rear log 220B are added to the same log storage block even if the snapshot generation changes.

図9は、ログの一例を示す図である。なお、前ログ220Aと後ログ220Bは、同一の情報を有しているので、ここでは前ログ220Aをログの一例として説明する。ログ220Aは、変更対象の管理情報となる対象情報と、その対象情報中の変更対象となるエントリである対象エントリと、その対象エントリ中の変更対象となる項目である対象項目と、その対象項目の変更の内容である変更内容と、を含む。前ログ220Aおよび後ログ220Bはスナップショット210に対する更新差分情報であるため、新たなスナップショット210の保存に伴い刷新される。   FIG. 9 is a diagram illustrating an example of a log. Since the previous log 220A and the subsequent log 220B have the same information, the previous log 220A will be described as an example of the log here. The log 220A includes target information that is management information to be changed, a target entry that is an entry to be changed in the target information, a target item that is an item to be changed in the target entry, and the target item. And the change content that is the content of the change. Since the previous log 220 </ b> A and the subsequent log 220 </ b> B are update difference information with respect to the snapshot 210, it is renewed when the new snapshot 210 is saved.

セカンドポインタ230は、セカンドポインタ格納用ブロックに格納される。セカンドポインタ230は、スナップショット210、前ログ220A、後ログ220Bの格納位置を示すブロックの先頭アドレスを示すものであればよい。また、セカンドポインタ230は、スナップショット210が新たに保存された場合や、スナップショット格納用ブロックとログ格納用ブロックが変更された場合に更新される。   The second pointer 230 is stored in the second pointer storage block. The second pointer 230 only needs to indicate the head address of the block indicating the storage position of the snapshot 210, the previous log 220A, and the subsequent log 220B. The second pointer 230 is updated when the snapshot 210 is newly saved or when the snapshot storage block and the log storage block are changed.

セカンドポインタ230は、スナップショット格納用ブロックへアクセスするためのスナップショットアクセス情報と、前ログ220Aおよび後ログ220Bの各ログ格納用ブロックへアクセスするためのログアクセス情報と、次のセカンドポインタが格納されるページ位置を示すネクストポインタと、を含む。このネクストポインタによって、セカンドポインタ230はリンクドリスト方式の情報となり、ルートポインタ240で指示されたセカンドポインタ格納用ブロックの先頭ページからネクストポインタをたどることによって、最新のセカンドポインタ230へとたどり着くことが可能となる。なお、リンクドリスト方式ではなく、セカンドポインタ格納用ブロックの先頭ページからセカンドポインタ230を順に追記的に格納してもよい。   The second pointer 230 stores snapshot access information for accessing the snapshot storage block, log access information for accessing each log storage block of the previous log 220A and the subsequent log 220B, and the next second pointer. A next pointer indicating a page position to be displayed. By this next pointer, the second pointer 230 becomes linked list type information, and by following the next pointer from the first page of the second pointer storage block designated by the root pointer 240, it is possible to reach the latest second pointer 230. It becomes possible. Instead of the linked list method, the second pointer 230 may be additionally stored in order from the first page of the second pointer storage block.

ルートポインタ240は、ルートポインタ格納用ブロックに格納される。ルートポインタ240は、セカンドポインタ230が格納されているセカンドポインタ格納用ブロックへアクセスするための情報であり、メモリシステム10の起動時に、管理情報を復元するための処理の際に最初に読み込まれる情報である。このルートポインタ240は、セカンドポインタ格納用ブロックが変更された場合に変更される。ルートポインタ240は、ルートポインタ格納用ブロックに、例えば、ブロックの先頭ページから順に追記的に格納される。このような場合には、ルートポインタ格納用ブロック内の未書込ページの1つの前のページが最新情報を有することになるので、未書込ページの最上位のページを検索することで、最新のルートポインタ240を検索することができる。また、セカンドポインタ230の場合のように、リンクドリスト方式を用いることもできる。   The root pointer 240 is stored in a root pointer storage block. The root pointer 240 is information for accessing the second pointer storage block in which the second pointer 230 is stored, and is initially read at the time of the processing for restoring the management information when the memory system 10 is activated. It is. The root pointer 240 is changed when the second pointer storage block is changed. The root pointer 240 is additionally stored in the root pointer storage block, for example, sequentially from the first page of the block. In such a case, the page immediately before the unwritten page in the root pointer storage block has the latest information, so by searching the top page of the unwritten page, the latest page is obtained. The route pointer 240 can be retrieved. Further, as in the case of the second pointer 230, a linked list method can also be used.

ここで、ルートポインタ240はNANDメモリ12内の固定領域1261に格納され、スナップショット210、前ログ220A、後ログ220Bおよびセカンドポインタ230はNANDメモリ12内の可変領域1262に格納される。固定領域1261とは、NANDメモリ内において、論理NAND管理層32で管理される論理ブロックと、物理NAND管理層33で管理される物理ブロックとの関係が固定化している保護領域であり、書換えや書き込みがほとんど発生しない更新頻度の低い、メモリシステム10を稼動させるのに必要な情報が格納される領域である。   Here, the root pointer 240 is stored in the fixed area 1261 in the NAND memory 12, and the snapshot 210, the previous log 220 </ b> A, the subsequent log 220 </ b> B, and the second pointer 230 are stored in the variable area 1262 in the NAND memory 12. The fixed area 1261 is a protection area in which the relationship between the logical block managed by the logical NAND management layer 32 and the physical block managed by the physical NAND management layer 33 is fixed in the NAND memory. This is an area in which information necessary for operating the memory system 10 is stored.

一方の可変領域1262とは、固定領域1261を除くNANDメモリ12の領域において、論理NAND管理層32で管理される論理ブロックと、物理NAND管理層33で管理される物理ブロックとの関係が可変な領域であり、ウェアレベリングの対象となる領域である。   One variable area 1262 is an area of the NAND memory 12 excluding the fixed area 1261, and the relationship between the logical block managed by the logical NAND management layer 32 and the physical block managed by the physical NAND management layer 33 is variable. This is an area that is a target of wear leveling.

つぎに、ドライブ制御部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と、を備える。   Next, functions of the drive control unit 14 will be described. FIG. 10 is a block diagram illustrating an example of a functional configuration of the drive control unit. The drive control unit 14 cooperates with the data management unit 141 that performs data transfer between the DRAM 11 and the NAND memory 12 and controls various functions related to the NAND memory 12, and the data management unit 141 based on instructions received from the ATA interface. An ATA command processing unit 142 that performs data transfer processing, a security management unit 143 that manages various types of security information in cooperation with the data management unit 141 and the ATA command processing unit 142, and each management program (FW) when the power is turned on. From the NAND memory 12 to a memory (not shown) (for example, SRAM (Static RAM)), an initialization management unit 145 for initializing each controller and circuit in the drive control unit 14, and an RS232C interface from the outside Deva supplied through It includes a debug support unit 146 processes the grayed for data.

図11は、本実施の形態に係るデータ管理部の機能構成の一例を示すブロック図である。データ管理部141は、DRAM11とNANDメモリ12との間でデータ転送を行なうデータ転送処理部151と、DRAM11およびNANDメモリ12に記憶されるデータの変更に伴って管理情報の変更や保存を行なう管理情報管理部152と、電源オン時などに保存された管理情報に基づいて最新の管理情報を復元する管理情報復元部155と、をさらに備える。   FIG. 11 is a block diagram illustrating an example of a functional configuration of the data management unit according to the present embodiment. The data management unit 141 is a data transfer processing unit 151 that transfers data between the DRAM 11 and the NAND memory 12, and a management that changes or saves management information in accordance with changes in data stored in the DRAM 11 and the NAND memory 12. An information management unit 152 and a management information restoration unit 155 that restores the latest management information based on the management information saved when the power is turned on or the like are further provided.

また、管理情報管理部152は、管理情報書込部153と、管理情報保存部154と、をさらに備える。管理情報書込部153は、データ転送処理部151によるDRAM11またはNANDメモリ12で記憶されるデータの変更処理によって管理情報の更新が必要な場合に、DRAM11に記憶されている管理情報の更新を行なう。   The management information management unit 152 further includes a management information writing unit 153 and a management information storage unit 154. The management information writing unit 153 updates the management information stored in the DRAM 11 when the data transfer processing unit 151 needs to update the management information by changing the data stored in the DRAM 11 or the NAND memory 12. .

管理情報保存部154は、メモリシステム10が所定の条件を満たしたとき、管理情報をスナップショット210として、管理情報中の更新される分の情報を前ログ220Aとして、管理情報中の更新された分の情報を後ログ220Bとして、NANDメモリ12の管理情報保存領域126に保存する。また、このスナップショット210、前ログ220Aまたは後ログ220Bの保存に伴ってセカンドポインタ230の書き込まれる位置が変更される場合には、このセカンドポインタ230に対する更新処理も行なう。   When the memory system 10 satisfies a predetermined condition, the management information storage unit 154 updates the management information as the snapshot 210 and the updated information in the management information as the previous log 220A. Minute information is stored in the management information storage area 126 of the NAND memory 12 as a post log 220B. In addition, when the position where the second pointer 230 is written is changed with the saving of the snapshot 210, the previous log 220A, or the subsequent log 220B, the second pointer 230 is also updated.

管理情報保存部154によるスナップショット210の保存は、以下に例示する3つのスナップショット保存条件のいずれかを満たす場合に実行される。
(1)スタンバイ(メモリシステム10本体の電力消費を最小限にまで落とすようにする指示)/スリープ(所定の時間アクセスがない場合にデバイスを停止する指示)/リセット(メモリシステム10を再起動する指示)を受ける場合。
(2)NANDメモリ12の管理情報保存領域126中の前ログ220Aや後ログ220Bを記憶するために設けられたログ格納領域が埋まってしまった場合。
(3)NANDメモリ12の管理情報保存領域126中の前ログ220Aや後ログ220Bを記憶するために設けられたログ格納領域が、データの書込みや消去ができなくなる不良領域(バッドブロック)になった場合。
The storage of the snapshot 210 by the management information storage unit 154 is executed when any one of the following three snapshot storage conditions is satisfied.
(1) Standby (instruction to reduce the power consumption of the main body of the memory system 10 to the minimum) / sleep (instruction to stop the device when there is no access for a predetermined time) / reset (restart the memory system 10) When receiving instructions).
(2) When the log storage area provided for storing the previous log 220A and the subsequent log 220B in the management information storage area 126 of the NAND memory 12 is filled.
(3) The log storage area provided for storing the previous log 220A and the subsequent log 220B in the management information storage area 126 of the NAND memory 12 becomes a defective area (bad block) where data cannot be written or erased. If

また、管理情報保存部154が前ログ220Aと後ログ220Bを保存するタイミングは、管理情報書込部153によってDRAM11に記憶されている管理情報(不揮発性テーブル)の更新が行われた場合である。具体的には、データの書き込みなどを行なう処理の前と後とに、前ログ220Aと後ログ220Bとが保存される。   The timing at which the management information storage unit 154 stores the previous log 220A and the subsequent log 220B is when the management information (nonvolatile table) stored in the DRAM 11 is updated by the management information writing unit 153. . Specifically, the pre-log 220A and the post-log 220B are saved before and after the process of writing data and the like.

管理情報復元部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を反映させて管理情報(不揮発性テーブル)の復元を行なう。   When the memory system 10 is powered on, the management information restoration unit 155 performs management information restoration processing based on the management information storage information stored in the management information storage area 126 of the NAND memory 12. Specifically, the root pointer 240 in the fixed area 1261, the second pointer 230 in the variable area 1262, the snapshot 210, the previous log 220 </ b> A, and the rear log 220 </ b> B are sequentially traced to the previous snapshot 210. It is determined whether or not the log 220A and the post log 220B exist. When the previous log 220A and the subsequent log 220B do not exist, the snapshot 210 of the snapshot storage block is restored to the DRAM 11 as management information. In addition, when the previous log 220A and the subsequent log 220B exist, it is a case of abnormal termination such as a program error or a momentary interruption (power supply interruption), so the snapshot 210 is acquired from the snapshot storage block. Then, the previous log 220A or the subsequent log 220B is acquired from the log storage block, and the management information (nonvolatile table) is restored by reflecting the previous log 220A or the subsequent log 220B in the snapshot 210 on the DRAM 11.

ここで、管理情報管理部152によるメモリシステム10の管理情報の保存の処理について説明する。図12は、メモリシステムの管理情報の保存処理手順の一例を示すフローチャートである。また、図13は、前ログと後ログの保存処理を説明するための図である。なお、ここでは、メモリシステム10がホスト装置と接続され、ホスト装置の2次記憶装置として動作しているとともに、ホスト装置(メモリシステム10)が起動状態にあり、また、この起動状態の前のメモリシステム10の停止前にスナップショット210が保存されているものとする。   Here, a process of storing management information of the memory system 10 by the management information management unit 152 will be described. FIG. 12 is a flowchart illustrating an example of a storage system management information storage processing procedure. FIG. 13 is a diagram for explaining pre-log and post-log storage processing. Here, the memory system 10 is connected to the host device and operates as a secondary storage device of the host device, and the host device (memory system 10) is in an activated state. It is assumed that the snapshot 210 is saved before the memory system 10 is stopped.

まず、ホスト装置(メモリシステム10)の前回終了時に保存されたスナップショット210を基に、ホスト装置(メモリシステム10)が起動された状態にある(ステップS11)。この後、必要に応じてホスト装置からNANDメモリ12へデータの読み書きが行なわれる。管理情報管理部152は、上記スナップショット保存条件を満たすか否かを判定する(ステップS12)。スナップショット保存条件を満たさない場合(ステップS12でNoの場合)には、管理情報の更新を伴う指示(NANDメモリへのデータ書込み指示など)を受けたか否かを判定する(ステップS13)。管理情報の更新を伴う指示を受けなかった場合(ステップS13でNoの場合)には、ステップS12へと戻る。   First, the host device (memory system 10) is activated based on the snapshot 210 saved when the host device (memory system 10) ended last time (step S11). Thereafter, data reading / writing is performed from the host device to the NAND memory 12 as necessary. The management information management unit 152 determines whether or not the snapshot storage condition is satisfied (step S12). If the snapshot saving condition is not satisfied (No in step S12), it is determined whether or not an instruction accompanied by an update of management information (such as an instruction to write data to the NAND memory) has been received (step S13). If no instruction accompanying management information update is received (No in step S13), the process returns to step S12.

また、管理情報の更新を伴う指示を受けた場合(ステップS13でYesの場合)には、その指示を実行することによって管理情報がどのように更新されるか更新計画を決定し(ステップS14)、その更新計画をNANDメモリ12の管理情報保存領域126のログ格納用ブロックに前ログ220Aとして保存する(ステップS15)。   In addition, when an instruction accompanied by an update of management information is received (Yes in step S13), an update plan is determined as to how the management information is updated by executing the instruction (step S14). The update plan is stored as the previous log 220A in the log storage block of the management information storage area 126 of the NAND memory 12 (step S15).

この更新計画(前ログ)は、ログ格納用ブロックに前ログ220Aが格納されていない場合には、管理情報が更新された場合の不揮発性テーブルとスナップショット格納用ブロックに保存されているスナップショット210との間の差分情報であり、ログ格納用ブロックに前ログ220A(以下、過去の前ログ220Aという)が既に格納されている場合には、管理情報が更新された場合の不揮発性テーブルと、スナップショット210と過去の前ログ220Aとを合わせたものと、の間の差分情報である。具体的には、図13に示すように、X番目のデータの書き込み処理としてデータ書き込み(X)を行なう前に、このデータ書き込み(X)に対応する前ログ(X)がNANDメモリ12内に前ログ220Aとして保存される。このとき、前ログ220Aとして例えば情報y1が保存される。なお、ここでの前ログ220Aは、たとえば、前ログ220A(更新計画)をDRAM11上に記録した後、NANDメモリ12の管理情報保存領域126に保存される。   In the update plan (previous log), when the previous log 220A is not stored in the log storage block, the snapshot stored in the nonvolatile storage table and the snapshot storage block when the management information is updated 210, when the previous log 220A (hereinafter referred to as the previous previous log 220A) has already been stored in the log storage block, and the non-volatile table when the management information is updated The difference information between the snapshot 210 and the previous previous log 220A. Specifically, as shown in FIG. 13, before the data write (X) is performed as the X-th data write process, the previous log (X) corresponding to the data write (X) is stored in the NAND memory 12. It is stored as the previous log 220A. At this time, for example, information y1 is stored as the previous log 220A. The previous log 220A here is stored in the management information storage area 126 of the NAND memory 12 after the previous log 220A (update plan) is recorded on the DRAM 11, for example.

ついで、論理NAND管理層は、ステップS13で受けた指示(たとえばユーザデータのNANDメモリ12のデータ格納領域125への書き込み(X)処理)を実行する(ステップS16)。   Next, the logical NAND management layer executes the instruction received in step S13 (for example, writing (X) processing of user data to the data storage area 125 of the NAND memory 12) (step S16).

この後、実行した処理に応じて、DRAM11に記憶されている管理情報が更新される。そして、管理情報保存部154は、管理情報中の更新された分の情報を後ログ220Bとして、NANDメモリ12の管理情報保存領域126に保存する。ここでの後ログ220Bは、ログ格納用ブロックに後ログ220Bが格納されていない場合には、現時点の不揮発性テーブルとスナップショット格納用ブロックに保存されているスナップショット210との間の差分情報であり、ログ格納用ブロックに後ログ220B(以下、過去の後ログ220Bという)が既に格納されている場合には、現時点の不揮発性テーブルと、スナップショット210と過去ログとを合わせたものと、の間の差分情報である。   Thereafter, the management information stored in the DRAM 11 is updated according to the executed processing. Then, the management information storage unit 154 stores the updated information in the management information in the management information storage area 126 of the NAND memory 12 as a post log 220B. Here, the post-log 220B is the difference information between the current non-volatile table and the snapshot 210 stored in the snapshot storage block when the post-log 220B is not stored in the log storage block. If the later log 220B (hereinafter referred to as the past later log 220B) has already been stored in the log storage block, the current nonvolatile table, the snapshot 210 and the past log are combined. Is the difference information.

これにより、データ書き込み(X)に対応する後ログ220B(X)がNANDメモリ12内に後ログ220Bとして保存される(ステップS17)。このとき、後ログ220Bとして例えば情報y1が保存される。このように、後ログ220Bとして保存される情報y1は、前ログ220Aとして保存される情報y1と同じ情報である。その後、ステップS12へと戻る。   As a result, the post-log 220B (X) corresponding to the data write (X) is stored in the NAND memory 12 as the post-log 220B (step S17). At this time, for example, information y1 is stored as the post log 220B. Thus, the information y1 stored as the post-log 220B is the same information as the information y1 stored as the pre-log 220A. Then, it returns to step 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と同じ情報である。   If the snapshot saving condition is not satisfied (No in step S12) and if an instruction accompanied by an update of management information is received (Yes in step S13), the processes of steps S14 to S17 are performed. It is. That is, the (X + 1) th data write process is performed in the same manner as the Xth data write process. At this time, before performing data writing (X + 1) as the (X + 1) -th data writing process, the previous log (X + 1) corresponding to this data writing (X + 1) is stored in the NAND memory 12 as the previous log 220A. . At this time, for example, information y2 is stored as the previous log 220A. Then, data is written (X + 1) to the data storage area 125 in the NAND memory 12. Further, the post log (X + 1) corresponding to the data write (X + 1) is stored in the NAND memory 12 as the post log 220B. At this time, for example, information y2 is stored as the post-log 220B. As described above, the information y2 stored as the post-log 220B is the same information as the information y2 stored as the pre-log 220A.

また、ステップS12でスナップショット保存条件を満たす場合(ステップS12でYesの場合)には、DRAM11の一時記憶領域111内の少なくとも不揮発性テーブルを含む管理情報をスナップショット210としてNANDメモリ12の管理情報保存領域126に保存する(ステップS18)。そして、メモリシステム10の終了指示があるか否かを判定し(ステップS19)、終了指示がない場合にはステップS12へと戻り、終了指示がある場合には、そのまま処理が終了する。   If the snapshot storage condition is satisfied in step S12 (Yes in step S12), the management information including at least the nonvolatile table in the temporary storage area 111 of the DRAM 11 is used as the snapshot 210, and the management information of the NAND memory 12 is used. Save in the save area 126 (step S18). Then, it is determined whether or not there is an end instruction for the memory system 10 (step S19). If there is no end instruction, the process returns to step S12. If there is an end instruction, the process ends.

つぎに、管理情報復元部155によるメモリシステム10の管理情報の復元処理について説明する。図14は、メモリシステムの管理情報の復元処理手順の一例を示すフローチャートであり、図15は、メモリシステムの復元処理を説明するための図である。なお、ここでも、メモリシステム10がホスト装置と接続され、ホスト装置の2次記憶装置として動作しているものとする。   Next, the management information restoring process of the memory system 10 by the management information restoring unit 155 will be described. FIG. 14 is a flowchart showing an example of a procedure for restoring the management information of the memory system, and FIG. 15 is a diagram for explaining the restoration process of the memory system. It is assumed here that the memory system 10 is connected to the host device and operates as a secondary storage device of the host device.

まず、瞬断からの回復などによってホスト装置の電源がオンされ、メモリシステム10に対して起動指示が出されると(ステップS31)、管理情報復元部155は、NANDメモリ12の管理情報保存領域126中のルートポインタ240、セカンドポインタ230を順に読込み(ステップS32)、スナップショット210と前後ログ(前ログ220A、後ログ220B)が格納されているそれぞれのブロックのアドレスを取得し(ステップS33)、スナップショット210を取得する(ステップS34)。   First, when the host device is turned on by recovery from an instantaneous interruption or the like and a startup instruction is issued to the memory system 10 (step S31), the management information restoration unit 155 stores the management information storage area 126 in the NAND memory 12. The root pointer 240 and the second pointer 230 are sequentially read (step S32), and the addresses of the respective blocks storing the snapshot 210 and the preceding and following logs (previous log 220A, subsequent log 220B) are acquired (step S33). The snapshot 210 is acquired (step S34).

その後、管理情報復元部155は、NANDメモリ12中の前ログ220Aや後ログ220Bを参照して、瞬断が発生したか否かを判定する(ステップS35)。例えば、前ログ220Aや後ログ220BがNANDメモリ12中に存在する場合は、瞬断が発生したと判断される。また、瞬断が発生したか否かの判断は、例えば前ログ220Aと後ログ220Bを比較することによって行なってもよい。本実施の形態では、前ログ220Aと後ログ220Bとが同じ情報を保存している。このため、例えば、前ログ220Aとして保存されているページの数と後ログ220Bとして保存されているページの数とが一致しない場合には、瞬断が発生したと判断できる。また、ECCエラーの有無や、前ログ220Aとして保存されているページのデータ、後ログ220Bとして保存されているページのデータに基づいて瞬断の有無を判断してもよい。   Thereafter, the management information restoring unit 155 refers to the previous log 220A and the subsequent log 220B in the NAND memory 12 to determine whether or not an instantaneous interruption has occurred (step S35). For example, if the pre-log 220A and the post-log 220B exist in the NAND memory 12, it is determined that an instantaneous interruption has occurred. The determination as to whether or not an instantaneous interruption has occurred may be made by comparing the previous log 220A and the subsequent log 220B, for example. In the present embodiment, the front log 220A and the back log 220B store the same information. For this reason, for example, if the number of pages stored as the previous log 220A and the number of pages stored as the subsequent log 220B do not match, it can be determined that an instantaneous interruption has occurred. Further, the presence or absence of an instantaneous interruption may be determined based on the presence or absence of an ECC error, the data of the page stored as the previous log 220A, or the data of the page stored as the subsequent log 220B.

瞬断が発生した場合(ステップS35でYesの場合)、NANDメモリ12内の最新の前ログ220Aと最新の後ログ220Bとに基づいて、瞬断の発生したタイミングを確認する(ステップS36)。   When a momentary interruption occurs (Yes in step S35), the timing at which the momentary interruption occurs is confirmed based on the latest previous log 220A and latest latest log 220B in the NAND memory 12 (step S36).

さらに、管理情報復元部155は、瞬断の発生したタイミングが後ログ220Bの保存中であったか否かを判断する(ステップS37)。例えば、後ログ220B内の最後のページが書き込み途中である場合、この最後のページを読み出すことはできないので、後ログ220Bの保存中に瞬断が発生したと判断される。また、前ログ220A内の最後のページが書き込み途中である場合、この最後のページを読み出すことはできないので、前ログ220Aの保存中に瞬断が発生したと判断される。また、前ログ220A内の最後のページにはログが書き込まれており、かつ後ログ220B内の最後のページにはログが書き込まれていない場合には、データの書き込み途中で瞬断が発生したと判断される。   Furthermore, the management information restoration unit 155 determines whether or not the timing at which the instantaneous interruption occurred is in the process of storing the later log 220B (step S37). For example, when the last page in the later log 220B is in the middle of writing, the last page cannot be read, so it is determined that an instantaneous interruption has occurred during the saving of the later log 220B. Further, when the last page in the previous log 220A is being written, the last page cannot be read, so it is determined that an instantaneous interruption has occurred during the storage of the previous log 220A. In addition, when the log is written in the last page in the previous log 220A and the log is not written in the last page in the rear log 220B, an instantaneous interruption occurred during the data writing. It is judged.

管理情報復元部155は、瞬断の発生したタイミングが後ログ220Bの保存中であったと判断した場合(ステップS37でYesの場合)に、最新の前ログ220Aを選択する(ステップS38)。一方、管理情報復元部155は、瞬断の発生したタイミングが後ログ220Bの保存中でなかったと判断した場合(ステップS37でNoの場合)に、保存の完了している最新の後ログ220Bを選択する(ステップS39)。換言すると、前ログ220A内の最後のページが書き込み途中であった場合や前ログ220A内の最後のページにはログが書き込まれており、かつ後ログ220B内の最後のページにはログが書き込まれていない場合に、最新の後ログ220Bが選択される。   The management information restoration unit 155 selects the latest previous log 220A when it is determined that the timing at which the instantaneous interruption occurs is that the later log 220B is being saved (Yes in step S37) (step S38). On the other hand, if the management information restoration unit 155 determines that the timing at which the instantaneous interruption occurred is not being stored in the post-log 220B (No in step S37), the management information restoration unit 155 displays the latest post-log 220B that has been saved. Select (step S39). In other words, when the last page in the previous log 220A is in the middle of writing, the log is written in the last page in the previous log 220A, and the log is written in the last page in the rear log 220B. If not, the latest post-log 220B is selected.

この後、選択したログ(前ログ220Aまたは後ログ220B)をログ格納用ブロックから取得し、DRAM11の作業領域112に展開する(ステップS40)。そして、スナップショット210に対して、古いログから順にログを反映させて管理情報(不揮発性テーブル)を復元し(ステップS41)、管理情報の復元処理が終了する。   Thereafter, the selected log (previous log 220A or post log 220B) is acquired from the log storage block and expanded in the work area 112 of the DRAM 11 (step S40). Then, the management information (non-volatile table) is restored to the snapshot 210 in order from the oldest log (step S41), and the management information restoration process ends.

一方、瞬断が発生していない場合(ステップS35でNoの場合)には、DRAM11の管理情報格納領域111に、管理情報を復元し、管理情報復元処理が終了する。   On the other hand, if no instantaneous interruption has occurred (No in step S35), the management information is restored in the management information storage area 111 of the DRAM 11, and the management information restoration process is terminated.

なお、管理情報復元部155は、瞬断に起因するログの破壊の有無に関わらず、前ログ220Aとして保存されているページの数と、後ログ220Bとして保存されているページの数と、に基づいて、前ログ220Aと後ログ220Bの何れか一方を選択して管理情報を復元してもよい。例えば、管理情報復元部155は、前ログ220Aとして保存されているページの数と、後ログ220Bとして保存されているページの数が同じ場合に、前ログ220Aを選択して管理情報を復元する。また、管理情報復元部155は、前ログ220Aとして保存されているページの数が、後ログ220Bとして保存されているページの数よりも多い場合に、後ログ220Bを選択して管理情報を復元する。   Note that the management information restoration unit 155 determines whether the number of pages stored as the previous log 220A and the number of pages stored as the subsequent log 220B regardless of whether or not the log is destroyed due to instantaneous interruption. Based on this, the management information may be restored by selecting either the previous log 220A or the subsequent log 220B. For example, when the number of pages stored as the previous log 220A is the same as the number of pages stored as the subsequent log 220B, the management information restoring unit 155 selects the previous log 220A and restores the management information. . The management information restoration unit 155 restores the management information by selecting the subsequent log 220B when the number of pages stored as the previous log 220A is larger than the number of pages stored as the subsequent log 220B. To do.

図15は、前ログ220Aまたは後ログ220Bを格納するログ格納領域の構成の一例を示す図である。図15では、図8に示す構成のうち、セカンドポインタ230と、前ログ220Aまたは後ログ220Bのいずれか一方であるログ220とを示し、その他については省略している。   FIG. 15 is a diagram illustrating an example of a configuration of a log storage area that stores the previous log 220A or the subsequent log 220B. FIG. 15 shows the second pointer 230 and the log 220 that is either the previous log 220A or the subsequent log 220B in the configuration shown in FIG. 8, and the other is omitted.

ログ220は、例えばログ格納用ブロック45、46から構成されたログ格納領域において、斜線で示された各ページに保存されたログ情報からなる。ここで、ログ格納領域を構成するログ格納用ブロックの個数は、保存されるログのサイズ(ログ長)に応じて決まる。すなわち、ログ格納領域では、保存されるログのサイズに応じて、順次ログ格納用ブロックが確保され、書き込み中のログ格納用ブロックの全てのページにログが書き込まれると、次に確保されたログ格納用ブロックにログが書き込まれる。図示例では、ログ格納用ブロック45の先頭ページから順番にログが保存され、ログ格納用ブロック45内の全てのページにログが書き込まれた後、次の書き込み用ブロックとして確保されたログ格納用ブロック46の先頭ページから順番にログが保存されている様子を示している。   The log 220 is composed of log information stored in each page indicated by diagonal lines in a log storage area constituted by log storage blocks 45 and 46, for example. Here, the number of log storage blocks constituting the log storage area is determined according to the size (log length) of the saved log. In other words, in the log storage area, log storage blocks are allocated sequentially according to the size of the log to be saved, and when logs are written to all pages of the log storage block being written, the next allocated log Logs are written to the storage block. In the illustrated example, the log is stored in order from the first page of the log storage block 45, and after the log is written to all the pages in the log storage block 45, the log storage block secured as the next writing block is used. A state in which logs are stored in order from the first page of the block 46 is shown.

セカンドポインタ230は、ログ220の格納位置を示すブロックの先頭アドレスを示しており、具体的には、ログ格納用ブロック45の先頭ページを示している。   The second pointer 230 indicates the head address of the block indicating the storage position of the log 220, and specifically indicates the head page of the log storage block 45.

また、ログ格納用ブロック45は、ログ格納用ブロック46の位置を示すポインタを有している。具体的には、ログ格納用ブロック45の先頭ページを使用する際に、ログ格納用ブロック46が確保され、ログ格納用ブロック45の先頭ページにはログ格納用ブロック46の先頭ページのアドレスを示すポインタ情報が付加される。これにより、セカンドポインタ230、ログ格納用ブロック45、ログ格納用ブロック46へと順にたどることができ、スナップショット210に対する最新のログまで到達することができる。また、図示はしていないが、ログ格納用ブロック46は、次に確保されたログ格納用ブロックの位置を示すポインタを有している。すなわち、ログ格納用ブロック46の先頭ページを利用する際に、図示していない次のログ格納用ブロックが確保されており、ログ格納用ブロック46の先頭ページには次のログ格納用ブロックの先頭ページのアドレスを示すポインタ情報が付加される。図15では、一例として、2つのログ格納用ブロック(ログ格納用ブロック45,46)にログが保存されている場合について説明したが、3つ以上のログ格納用ブロックにログが保存されている場合についても同様である。   The log storage block 45 has a pointer indicating the position of the log storage block 46. Specifically, when the first page of the log storage block 45 is used, the log storage block 46 is secured, and the first page of the log storage block 45 indicates the address of the first page of the log storage block 46. Pointer information is added. Accordingly, the second pointer 230, the log storage block 45, and the log storage block 46 can be traced in order, and the latest log for the snapshot 210 can be reached. Although not shown, the log storage block 46 has a pointer indicating the position of the next reserved log storage block. That is, when the first page of the log storage block 46 is used, a next log storage block (not shown) is secured, and the first page of the log storage block 46 has a head of the next log storage block. Pointer information indicating the page address is added. In FIG. 15, as an example, a case where logs are stored in two log storage blocks (log storage blocks 45 and 46) has been described, but logs are stored in three or more log storage blocks. The same applies to the case.

このように、本実施の形態では、ログ格納領域を複数個のログ格納用ブロックで構成する際に、ログ格納用ブロックの先頭ページに次に確保されるログ格納用ブロックの位置を示すポインタ情報を保存し、ポインタを介して異なるログ格納用ブロックに保存されたログをたどれるようにしている。つまり、ログ格納領域は、順次確保されたログ格納用ブロックから構成されるとともに、ログ格納用ブロック間を指示するポインタを介してログ格納用ブロックがチェーン状につながった構造(以下、ログチェーンという)となっている。   As described above, in this embodiment, when the log storage area is configured by a plurality of log storage blocks, pointer information indicating the position of the next log storage block to be secured on the first page of the log storage block. And the log saved in the different log storage block is traced via the pointer. In other words, the log storage area is composed of sequentially reserved log storage blocks, and a structure in which log storage blocks are connected in a chain via pointers pointing between the log storage blocks (hereinafter referred to as log chains). ).

本実施の形態によれば、ログ格納領域に保存されるログ220(すなわち、前ログ220Aまたは後ログ220B)のサイズがログ格納用ブロックのサイズを超えた場合でも、新たにログ格納用ブロックを確保しログを書き込むことができるので、ログ格納用ブロックが満杯になるごとにスナップショット210を保存し、セカンドポインタ230を更新する必要がない。そのため、セカンドポインタ230の格納されたセカンドポインタ格納用ブロックへの書き込みが低減する。したがって、NANDメモリ12の書き込み回数を低減することができ、その寿命が短くなることを抑制することができる、という効果を奏する。   According to this embodiment, even when the size of the log 220 stored in the log storage area (that is, the previous log 220A or the subsequent log 220B) exceeds the size of the log storage block, a new log storage block is created. Since the log can be secured and written, it is not necessary to save the snapshot 210 and update the second pointer 230 each time the log storage block becomes full. This reduces writing to the second pointer storage block in which the second pointer 230 is stored. Therefore, it is possible to reduce the number of times of writing to the NAND memory 12 and to suppress the shortening of the lifetime.

なお、ログ格納用ブロックがポインタを確保するタイミングは、その先頭ページを使用する際に限定されず、その他のページを使用する際であってもよい。したがって、例えばログ格納用ブロック45は、その最後のページにログの書き込みを終えた時点でログ格納用ブロック46を確保し、ログ格納用ブロック46の先頭ページのアドレスを示すポインタを設けるようにしてもよい。   Note that the timing at which the log storage block secures the pointer is not limited to using the first page, and may be when using another page. Therefore, for example, the log storage block 45 secures the log storage block 46 at the time when writing of the log is finished on the last page, and provides a pointer indicating the address of the first page of the log storage block 46. Also good.

また、ログ格納領域に確保可能なログ格納用ブロックの個数に上限を設けることが好ましい。これは、ログ220のサイズが所定サイズを超えると、ログ220をスナップショット210に反映させて管理情報を復元する必要がある場合に、復元時間が長くなるからである。前述のように、ログ格納領域が埋まった場合には、スナップショット保存条件の(2)が成立し、新たなスナップショット210が取得される。   It is preferable to set an upper limit on the number of log storage blocks that can be secured in the log storage area. This is because if the size of the log 220 exceeds a predetermined size, the restoration time becomes longer when it is necessary to restore the management information by reflecting the log 220 in the snapshot 210. As described above, when the log storage area is filled, the snapshot saving condition (2) is satisfied, and a new snapshot 210 is acquired.

また、本実施の形態では、前ログ220Aおよび後ログ220Bを取得しログを2重化する構成としているが、いずれか一方のログを取得しログを多重化しない場合にも、上記のログチェーンの構成を適用し同様の効果を得ることができる。   In this embodiment, the front log 220A and the rear log 220B are acquired and the log is duplicated. However, even when one of the logs is acquired and the logs are not multiplexed, the above log chain is used. The same effect can be obtained by applying the configuration.

図16は、前ログ220Aを格納する前ログ格納領域、および後ログ220Bを格納する後ログ格納領域の構成の一例を示す図であり、図15と同様に、図8に示す構成のうち、セカンドポインタ230と、前ログ220Aおよび後ログ220Bとを示し、その他については省略している。   FIG. 16 is a diagram showing an example of the configuration of the previous log storage area for storing the previous log 220A and the subsequent log storage area for storing the subsequent log 220B. As in FIG. 15, among the configurations shown in FIG. The second pointer 230, the previous log 220A and the rear log 220B are shown, and the others are omitted.

図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の先頭ページと、を示している。   As shown in FIG. 16, the pre-log storage area for storing the pre-log 220A and the post-log storage area for storing the post-log 220B are shown in FIG. 15, except for pointers provided between each other as described below. The log storage area has the same configuration. That is, the previous log storage area for storing the previous log 220A is composed of, for example, two log storage blocks 50 and 51, which are log storage blocks, and the log storage block 50 follows the log storage block 50. And a pointer indicating the position of the log storage block 51 secured in this way (in the figure, an arrow pointing from the first page of the log storage block 50 to the first page of the log storage block 51). The post-log storage area for storing the post-log 220B includes, for example, two log storage blocks 60 and 61 that are log storage blocks, and the log storage block 60 follows the log storage block 60. And a pointer (in the figure, an arrow pointing from the first page of the log storage block 60 to the first page of the log storage block 61). Further, the second pointer 230 indicates the first page of the log storage block 50 in the previous log storage area and the first page of the log storage block 60 in the subsequent log storage area.

図16では、このような前ログ格納領域および後ログ格納領域内にそれぞれ設けられたログチェーンの構造に加えて、前ログ格納領域におけるログ格納用ブロック50は、後ログ格納領域におけるログ格納用ブロック61の位置を示すポインタ(同図中、ログ格納用ブロック50の先頭ページからログ格納用ブロック61の先頭ページを指す矢印)を有するとともに、後ログ格納領域におけるログ格納用ブロック60は、前ログ格納領域におけるログ格納用ブロック51の位置を示すポインタ(同図中、ログ格納用ブロック60の先頭ページからログ格納用ブロック51の先頭ページを指す矢印)を有している。   In FIG. 16, in addition to the log chain structure provided in each of the preceding log storage area and the subsequent log storage area, the log storage block 50 in the previous log storage area is used for log storage in the subsequent log storage area. It has a pointer indicating the position of the block 61 (in the figure, an arrow pointing from the first page of the log storage block 50 to the first page of the log storage block 61), and the log storage block 60 in the subsequent log storage area It has a pointer (an arrow pointing from the first page of the log storage block 60 to the first page of the log storage block 51) indicating the position of the log storage block 51 in the log storage area.

すなわち、前ログ格納領域におけるログ格納用ブロック50は、前ログ格納領域において次に確保されたログ格納用ブロックであるログ格納用ブロック51の位置を示すポインタに加えて、このログ格納用ブロック51の確保順と同一の順番(この場合、ログ格納用ブロック51は2番目に確保されたので、2番目)で後ログ格納領域において確保されたログ格納用ブロック、すなわち、ログ格納用ブロック61の位置を示すポインタを有している。同様にして、後ログ格納領域におけるログ格納用ブロック60は、後ログ格納領域において次に確保されたログ格納用ブロックであるログ格納用ブロック61の位置を示すポインタに加えて、このログ格納用ブロック61の確保順と同一の順番(この場合、ログ格納用ブロック61は2番目に確保されたので、2番目)で前ログ格納領域において確保されたログ格納用ブロック、すなわち、ログ格納用ブロック51の位置を示すポインタを有している。   That is, the log storage block 50 in the previous log storage area includes the log storage block 51 in addition to the pointer indicating the position of the log storage block 51 which is the next log storage block secured in the previous log storage area. Log storage blocks secured in the subsequent log storage area in the same order (in this case, the log storage block 51 is secured second, in this case), that is, the log storage block 61 It has a pointer that indicates the position. Similarly, the log storage block 60 in the post-log storage area includes the log storage block 60 in addition to the pointer indicating the position of the log storage block 61 which is the next log storage block secured in the post-log storage area. Log storage block secured in the previous log storage area in the same order as the block 61 securement order (in this case, the log storage block 61 is secured second, so the log storage block) A pointer indicating the position 51 is provided.

前述のように、前ログ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つ以上のログ格納用ブロックにログが保存されている場合についても同様である。   As described above, since the previous log 220A and the rear log 220B store the same log information, the front log 220A and the rear log 220B have the same log information unless an abnormality such as a momentary interruption occurs. Is saved. Therefore, the log stored in each page of the log storage block 50 is the same as the log stored in the corresponding page of the log storage block 60 and is stored in each page of the log storage block 51. The log stored in the log storage block 61 is the same as the log stored in the corresponding page. Therefore, the log storage block 50 in the previous log storage area has a pointer indicating the position of the log storage block 61 in the subsequent log storage area in addition to the pointer indicating the position of the log storage block 51, thereby The location of the log storage block 61 that stores the same log information as the block 51 is secured as a backup. Similarly, the log storage block 60 in the subsequent log storage area has a pointer indicating the position of the log storage block 51 in the previous log storage area in addition to the pointer indicating the position of the log storage block 61, thereby The location of the log storage block 51 that stores the same log information as the storage block 61 is secured as a backup. Although not shown, the log storage block 51 has a pointer indicating the position of the log storage block secured next to the log storage block 51 in the previous log storage area, and the subsequent log storage area. 2 has a pointer indicating the position of the log storage block secured next to the log storage block 61. Similarly, although not shown, the log storage block 61 has a pointer indicating the position of the log storage block secured next to the log storage block 61 in the subsequent log storage area, and the previous log storage area. 2 has a pointer indicating the position of the log storage block secured next to the log storage block 51. In FIG. 16, as an example, logs are stored in two log storage blocks (log storage blocks 50 and 51 and log storage blocks 60 and 61) in the previous log storage area and the subsequent log storage area, respectively. However, the same applies to the case where logs are stored in three or more log storage blocks.

このように、前ログ格納領域および後ログ格納領域における各ログ格納用ブロックの有するポインタを2重化することで、瞬断等によりログが破壊された場合にもログの復元を容易に行うことができる。例えば、ログ格納用ブロック51の書き込み中に瞬断が発生し、書き込み中のページとその下位ページのログデータが破壊されると、ログ格納用ブロック50の有するログ格納用ブロック61へのポインタを利用することでログ格納用ブロック61からログを得ることができるので、ログ格納用ブロック51のログを容易に復元することができる。以上のように、ポインタを2重化することで、何れのタイミングで瞬断が起きた場合であっても、ログ情報が消失することを防ぐことができ、前ログ220Aと後ログ220Bとの何れか一方を用いることによって、メモリシステム10を瞬断が起きる前の状態に容易に復帰させることが可能となる。   In this way, by duplicating the pointers of each log storage block in the previous log storage area and the subsequent log storage area, it is possible to easily restore the log even when the log is destroyed due to an instantaneous interruption or the like. Can do. For example, when an instantaneous interruption occurs during writing of the log storage block 51 and the log data of the page being written and its lower page are destroyed, a pointer to the log storage block 61 of the log storage block 50 is set. Since the log can be obtained from the log storage block 61 by using the log, the log of the log storage block 51 can be easily restored. As described above, by duplicating the pointer, it is possible to prevent the log information from being lost regardless of the timing when the instantaneous interruption occurs. By using either one, it is possible to easily return the memory system 10 to the state before the instantaneous interruption occurs.

なお、以上では、スナップショット210、前ログ220A、および後ログ220Bの格納位置を示すポインタとしてセカンドポインタ230を設け、さらに、このセカンドポインタ230の格納位置を示すポインタとしてルートポインタ240を設けることで、ポインタを2段とする構成としたが、例えばポインタの構成を1段とすることもできる。   In the above, the second pointer 230 is provided as a pointer indicating the storage position of the snapshot 210, the previous log 220A, and the subsequent log 220B, and the root pointer 240 is provided as a pointer indicating the storage position of the second pointer 230. Although the pointer has two stages, for example, the pointer may have one stage.

また、前ログ220Aと後ログ220Bの先頭ポインタは、セカンドポインタ格納用ブロック内ではなく、スナップショット210の中に格納されていてもよい。   Further, the head pointers of the front log 220A and the back log 220B may be stored in the snapshot 210 instead of in the second pointer storage block.

また、DRAM11でのデータ管理単位をページサイズ単位とし、NANDメモリ12でのデータの書込/読出単位をページサイズ単位とし、消去単位と管理単位をブロックサイズ単位としたが、これに限定される趣旨ではなく、それぞれ任意の単位を用いることが可能である。   The data management unit in the DRAM 11 is a page size unit, the data write / read unit in the NAND memory 12 is a page size unit, and the erase unit and the management unit are block size units. However, the present invention is not limited to this. It is possible to use arbitrary units for each purpose.

また、第1の記憶部としてDRAMを用いる場合を例示したが、他の揮発性半導体記憶装置や不揮発性半導体記憶装置を用いてもよい。   Further, although the case where a DRAM is used as the first storage unit is illustrated, another volatile semiconductor storage device or a nonvolatile semiconductor storage device may be used.

また、電荷蓄積層は浮遊ゲート型に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Semiconductor)構造のようなシリコン窒化膜を用いた電荷トラップ型やその他の方式であってもよい。   The charge storage layer is not limited to the floating gate type, and may be a charge trap type using a silicon nitride film such as a MONOS (Metal-Oxide-Nitride-Oxide-Semiconductor) structure or other methods.

本発明の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the memory system concerning embodiment of this invention. NANDメモリに含まれる1個のブロックの構成の一例を示す回路図である。It is a circuit diagram which shows an example of a structure of one block contained in NAND memory. DRAMとNANDメモリの機能構成を模式的に示す図である。It is a figure which shows typically the function structure of DRAM and NAND memory. メモリシステムで記憶されるデータを管理する層構造の一例を示す図である。It is a figure which shows an example of the layer structure which manages the data memorize | stored in a memory system. キャッシュ管理情報の一例を示す図である。It is a figure which shows an example of cache management information. 論理NAND管理情報の一例を示す図である。It is a figure which shows an example of logical NAND management information. NAND内論物変換情報の一例を示す図である。It is a figure which shows an example of NAND intrinsic | native substance conversion information. 管理情報保存領域に記憶される管理情報保存情報の内容の一例を模式的に示す図である。It is a figure which shows typically an example of the content of the management information storage information memorize | stored in a management information storage area. ログの一例を示す図である。It is a figure which shows an example of a log. ドライブ制御部の機能構成の一例を示すブロック図である。It is a block diagram which shows an example of a function structure of a drive control part. 実施の形態にかかるデータ管理部の機能構成の一例を示すブロック図である。It is a block diagram which shows an example of a function structure of the data management part concerning embodiment. メモリシステムの管理情報の保存処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the preservation | save processing procedure of the management information of a memory system. 前ログと後ログの保存処理を説明するための図である。It is a figure for demonstrating the preservation | save process of a front log and a back log. メモリシステムの管理情報の復元処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the restoration process procedure of the management information of a memory system. ログ格納領域の構成の一例を示す図である。It is a figure which shows an example of a structure of a log storage area. 前ログ220Aを格納する前ログ格納領域および後ログ220Bを格納する後ログ格納領域の構成の一例を示す図である。It is a figure which shows an example of a structure of the front log storage area which stores the front log 220A, and the back log storage area which stores the back log 220B.

符号の説明Explanation of symbols

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…ルートポインタ   DESCRIPTION OF SYMBOLS 10 ... Memory system, 11 ... DRAM, 12 ... NAND memory, 13 ... Power supply circuit, 14 ... Drive control part, 15 ... Bus, 31 ... DRAM management layer, 32 ... Logical NAND management layer, 33 ... Physical NAND management layer, 41 ... cache management information, 42 ... management information, 42a ... logical page management information, 42b ... logical block management information, 43 ... NAND internal / physical conversion information, 45, 46, 50, 51, 60, 61 ... log storage blocks, DESCRIPTION OF SYMBOLS 111 ... Temporary storage area, 112 ... Work area, 125 ... Data storage area, 126 ... Management information storage area, 141 ... Data management part, 151 ... Data transfer processing part, 152 ... Management information management part, 153 ... Write management information 154... Management information storage unit 155... Management information restoration unit 156... Log storage block release unit 210. ... log, 220A ... before the log, 220B ... post-log, 230 ... second pointer, 240 ... root pointer

Claims (4)

揮発性の第1の記憶部と、
多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、
を備え、
前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域および前記ログ格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、
前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、
前記ブロックは、次に確保されたブロックの位置を示す第2のポインタを有することを特徴とするメモリシステム。
A volatile first storage unit;
A non-volatile second storage unit composed of memory cells capable of storing multi-value data;
Management information including the storage location of the data stored in the second storage unit at the time of activation is transferred between the host device and the second storage unit via the first storage unit. A controller that takes in the first storage unit and performs data management in the first and second storage units based on the management information while updating the management information taken in;
With
The second storage unit is acquired when a predetermined condition is satisfied, and a snapshot storage area that stores the snapshot that is the management information of the first storage unit and the management information are changed. A log storage area that stores a log that is difference information before and after the change, and a pointer storage area that stores a first pointer indicating a storage position of the snapshot storage area and the log storage area ,
The log storage area is configured by sequentially securing blocks that are data erasure units according to the size of the log to be stored,
The block has a second pointer indicating the position of the next reserved block.
前記ログ格納領域は、前記管理情報が更新される前に保存されるログである更新前ログを格納する更新前ログ格納領域と、前記更新前ログと同一の内容のログでありかつ前記管理情報が更新された後に保存されるログである更新後ログを格納する更新後ログ格納領域と、を有し、
前記更新前ログ格納領域および前記更新後ログ格納領域はそれぞれ、保存される前記更新前ログまたは前記更新後ログのサイズに応じて、データ消去単位であるブロックを順次かつ同数確保して構成され、
前記更新前ログ格納領域におけるブロックは、前記更新前ログ格納領域において次に確保されたブロックの位置を示す前記第2のポインタに加えて、前記更新前ログ格納領域において次に確保されたブロックの確保順と同一の順番で前記更新後ログ格納領域において確保されたブロックの位置を示す第3のポインタを有し、
前記更新後ログ格納領域におけるブロックは、前記更新後ログ格納領域において次に確保されたブロックの位置を示す前記第2のポインタに加えて、前記更新後ログ格納領域において次に確保されたブロックの確保順と同一の順番で前記更新前ログ格納領域において確保されたブロックの位置を示す第4のポインタを有することを特徴とする請求項1に記載のメモリシステム。
The log storage area is a pre-update log storage area for storing a pre-update log, which is a log saved before the management information is updated, and a log having the same content as the pre-update log and the management information A post-update log storage area for storing a post-update log that is a log saved after the
Each of the pre-update log storage area and the post-update log storage area is configured by sequentially securing the same number of blocks as data erasure units according to the size of the pre-update log or the post-update log to be stored,
In addition to the second pointer indicating the position of the next block secured in the pre-update log storage area, the block in the pre-update log storage area includes the next block secured in the pre-update log storage area. A third pointer indicating the position of the block secured in the updated log storage area in the same order as the secured order;
In addition to the second pointer indicating the position of the next block secured in the post-update log storage area, the block in the post-update log storage area is the block of the block secured next in the post-update log storage area. 2. The memory system according to claim 1, further comprising a fourth pointer indicating a position of a block secured in the pre-update log storage area in the same order as the securing order.
揮発性の第1の記憶部と、
多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、
を備え、
前記第2の記憶部は、所定の条件が成立したときに取得されるとともに前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記スナップショット格納領域の格納位置を示す第1のポインタを格納するポインタ格納領域と、を有し、
前記ログ格納領域は、保存される前記ログのサイズに応じて、データ消去単位であるブロックを順次確保して構成され、
前記ログ格納領域に保存された先頭のログの格納位置を示す第2のポインタは前記スナップショット内に保存され、
前記ブロックは、次に確保されたブロックの位置を示す第3のポインタを有することを特徴とするメモリシステム。
A volatile first storage unit;
A non-volatile second storage unit composed of memory cells capable of storing multi-value data;
Management information including the storage location of the data stored in the second storage unit at the time of activation is transferred between the host device and the second storage unit via the first storage unit. A controller that takes in the first storage unit and performs data management in the first and second storage units based on the management information while updating the management information taken in;
With
The second storage unit is acquired when a predetermined condition is satisfied, and a snapshot storage area that stores the snapshot that is the management information of the first storage unit and the management information are changed. A log storage area that stores a log that is difference information before and after the change, and a pointer storage area that stores a first pointer indicating a storage position of the snapshot storage area,
The log storage area is configured by sequentially securing blocks that are data erasure units according to the size of the log to be stored,
A second pointer indicating the storage position of the first log stored in the log storage area is stored in the snapshot,
The block has a third pointer indicating the position of the next reserved block.
揮発性の第1の記憶部と、
多値データを記憶可能なメモリセルからなる不揮発性の第2の記憶部と、
前記第1の記憶部を介してホスト装置と前記第2の記憶部との間のデータ転送を行なうとともに、起動時に前記第2の記憶部に記憶された前記データの格納位置を含む管理情報を前記第1の記憶部に取込み、該取り込んだ管理情報を更新しながら管理情報に基づいて前記第1および第2の記憶部でのデータ管理を行なうコントローラと、
を備え、
前記第2の記憶部は、前記管理情報に変更が生じた場合の変更前後での差分情報であるログを格納するログ格納領域と、前記第1の記憶部の前記管理情報であるスナップショットを格納するスナップショット格納領域と、を有し、
前記コントローラは、前記ログ格納領域がログでいっぱいになった際、および前記ログ格納領域がデータ記憶できない不良領域になった際に前記スナップショットを取得し、前記スナップショット格納領域に保存することを特徴とするメモリシステム。
A volatile first storage unit;
A non-volatile second storage unit composed of memory cells capable of storing multi-value data;
Management information including the storage location of the data stored in the second storage unit at the time of activation is transferred between the host device and the second storage unit via the first storage unit. A controller that takes in the first storage unit and performs data management in the first and second storage units based on the management information while updating the management information taken in;
With
The second storage unit stores a log storage area for storing a log that is difference information before and after the change when the management information is changed, and a snapshot that is the management information of the first storage unit. A snapshot storage area to store,
The controller acquires the snapshot when the log storage area is filled with a log and when the log storage area becomes a defective area where data cannot be stored, and stores the snapshot in the snapshot storage area. A featured memory system.
JP2008051267A 2008-02-29 2008-02-29 Memory system Pending JP2009211188A (en)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP2008051267A JP2009211188A (en) 2008-02-29 2008-02-29 Memory system
KR1020097017866A KR101103110B1 (en) 2008-02-29 2009-02-10 Memory system
EP20090709441 EP2111583A4 (en) 2008-02-29 2009-02-10 Memory system
EP20100197364 EP2309392A1 (en) 2008-02-29 2009-02-10 Memory system
PCT/JP2009/052590 WO2009107506A1 (en) 2008-02-29 2009-02-10 Memory system
CN200980000132A CN101681313A (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
TW98105523A TWI418983B (en) 2008-02-29 2009-02-20 Memory system and method of controlling a memory system
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 (en) 2008-02-29 2008-02-29 Memory system

Publications (1)

Publication Number Publication Date
JP2009211188A true JP2009211188A (en) 2009-09-17

Family

ID=41184306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008051267A Pending JP2009211188A (en) 2008-02-29 2008-02-29 Memory system

Country Status (1)

Country Link
JP (1) JP2009211188A (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280825A (en) * 2002-03-22 2003-10-02 Fujitsu Ltd Storage system
JP2005258851A (en) * 2004-03-12 2005-09-22 Renesas Technology Corp Memory card
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 (en) * 2006-01-26 2007-08-09 Yokogawa Denshikiki Co Ltd Data storage device and data storage method
JP2008285600A (en) * 2007-05-18 2008-11-27 Hideto Itatsu Carbon fiber regeneration treatment equipment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280825A (en) * 2002-03-22 2003-10-02 Fujitsu Ltd Storage system
JP2005258851A (en) * 2004-03-12 2005-09-22 Renesas Technology Corp Memory card
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 (en) * 2006-01-26 2007-08-09 Yokogawa Denshikiki Co Ltd Data storage device and data storage method
JP2008285600A (en) * 2007-05-18 2008-11-27 Hideto Itatsu Carbon fiber regeneration treatment equipment

Similar Documents

Publication Publication Date Title
US12443352B2 (en) Memory system storing management information and method of controlling same
JP4675984B2 (en) Memory system
KR101103110B1 (en) Memory system
US8285954B2 (en) Memory system managing a plurality of logs
CN101681317B (en) Memory system
JP2010152514A (en) Memory system
JP2009205555A (en) Memory system
JP4551938B2 (en) Memory system
JP4558052B2 (en) Memory system
JP2009211202A (en) Memory system
JP2009211188A (en) Memory system
JP4551939B2 (en) Memory system
JP2009211196A (en) Memory system
JP2009211213A (en) Memory system
JP2009211218A (en) Memory system and hit judgment method

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