KR20090106421A - Memory system - Google Patents

Memory system Download PDF

Info

Publication number
KR20090106421A
KR20090106421A KR1020097018070A KR20097018070A KR20090106421A KR 20090106421 A KR20090106421 A KR 20090106421A KR 1020097018070 A KR1020097018070 A KR 1020097018070A KR 20097018070 A KR20097018070 A KR 20097018070A KR 20090106421 A KR20090106421 A KR 20090106421A
Authority
KR
South Korea
Prior art keywords
log
management information
snapshot
storage unit
data
Prior art date
Application number
KR1020097018070A
Other languages
Korean (ko)
Other versions
KR101103201B1 (en
Inventor
준지 야노
히데노리 마쯔자끼
고스께 하쯔다
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Priority claimed from PCT/JP2009/052599 external-priority patent/WO2009107507A1/en
Publication of KR20090106421A publication Critical patent/KR20090106421A/en
Application granted granted Critical
Publication of KR101103201B1 publication Critical patent/KR101103201B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

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

Abstract

A memory system includes a management-information restoring unit. The management-information restoring unit determines whether a short break has occurred referring to a pre-log or a post-log in a NAND memory. The management-information restoring unit determines that a short break has occurred when the pre-log or the post-log is present in the NAND memory. In that case, the management-information restoring unit determines timing of occurrence of the short break, and, after selecting a pre-log or a post-log used for restoration, performs restoration of the management information reflecting these logs on a snapshot. Thereafter, the management-information restoring unit applies recovery processing to all write-once blocks in the NAND memory, takes the snapshot again, and opens the snapshot and the logs in the past.

Description

메모리 시스템{MEMORY SYSTEM}Memory system

본 발명은 비휘발성 반도체 저장 디바이스를 채용하는 메모리 시스템에 관한 것이다.The present invention relates to a memory system employing a nonvolatile semiconductor storage device.

일부 퍼스널 컴퓨터(PC)들은 하드 디스크 디바이스를 이차 저장 디바이스로서 채용한다. 이러한 PC에서는, 하드 디스크 디바이스에 저장된 데이터가 일부 고장으로 인해 무효화되는 것을 방지하도록 그 데이터를 백업하는 기술이 알려져 있다. 예를 들어, 하드 디스크 디바이스 내의 데이터를 변경하는 액션이 검출되는 경우, 변경 전 데이터의 백업 카피인 스냅샷을 취하고 데이터에 행해진 변경들의 로그를 생성한다. 이어서, 새로운 스냅샷을 취하고, 새로운 스냅샷이 취해지기 전에 과거에 취해진 로그를 무효화하고, 새로운 로그를 생성하는 처리가 소정의 시간마다 반복된다(예를 들어, 미국 특허출원 공개번호 제2006-0224636호 참조). 데이터가 소정의 이유로 인해 무효화되는 경우, 스냅샷과 로그를 참조함으로써 데이터를 복구할 수 있다.Some personal computers (PCs) employ hard disk devices as secondary storage devices. In such PCs, a technique for backing up data stored in a hard disk device is known to prevent invalidation due to some failure. For example, when an action to change data in a hard disk device is detected, it takes a snapshot, which is a backup copy of the data before the change, and generates a log of changes made to the data. Subsequently, the process of taking a new snapshot, invalidating a log previously taken before a new snapshot is taken, and generating a new log is repeated every predetermined time (for example, US Patent Application Publication No. 2006-0224636 Reference). If data is invalidated for some reason, the data can be recovered by referring to the snapshot and log.

최근에는, 비휘발성 반도체 저장 디바이스인 NAND 플래시 메모리의 용량이 급격히 증가하였다. 그 결과, 이차 저장 디바이스로서 NAND 플래시 메모리를 구비하는 메모리 시스템을 포함하는 PC가 실용화되었다. 그러나, 미국 특허 공개번호 제2006-0224636호에 개시된 기술은, 이차 저장 디바이스로서 하드 디스크 디바이스를 구비한 퍼스널 컴퓨터에 저장된 데이터의 백업의 경우와 같이 이러한 이차 저장 디바이스로서 NAND 플래시 메모리를 구비한 퍼스널 컴퓨터에 저장된 데이터의 백업에 적용될 수 없다. 이는 하나의 메모리 셀에 2비트 이상인 복수의 데이터(다치 데이터; multi-value data)를 저장할 수 있는 다치 메모리 기술이 NAND 플래시 메모리의 용량을 증가시키는 데 채용되기 때문이다.Recently, the capacity of NAND flash memory, which is a nonvolatile semiconductor storage device, has increased rapidly. As a result, a PC including a memory system having a NAND flash memory as a secondary storage device has been put into practical use. However, the technique disclosed in US Patent Publication No. 2006-0224636, a personal computer having a NAND flash memory as such secondary storage device as in the case of the backup of data stored in a personal computer having a hard disk device as a secondary storage device. It cannot be applied to backup of data stored in. This is because a multi-value memory technology capable of storing a plurality of data (multi-value data) of two or more bits in one memory cell is employed to increase the capacity of the NAND flash memory.

다치를 구성하는 메모리 셀은, 게이트 절연막, 부동 게이트 전극, 게이트간 절연막, 제어 게이트 전극이 채널 영역 상에 순서대로 적층되고 부동 게이트 전극에 축적된 전자들의 개수에 따라 복수의 임계 전압이 설정될 수 있는 적층형 게이트 구조를 갖는 전계 효과 트랜지스터 구조를 구비한다. 복수의 임계 전압에 기초하여 다치 저장을 수행하려면, 하나의 데이터에 대응하는 임계 전압의 분포를 매우 좁게 해야 한다.In the memory cell constituting the multi-value, a plurality of threshold voltages may be set according to the number of electrons in which the gate insulating film, the floating gate electrode, the inter-gate insulating film, and the control gate electrode are sequentially stacked on the channel region and accumulated in the floating gate electrode. And a field effect transistor structure having a stacked gate structure. To perform multivalued storage based on a plurality of threshold voltages, it is necessary to narrow the distribution of threshold voltages corresponding to one data very narrowly.

예를 들어, 4개의 값을 저장할 수 있는 다치 메모리로서, 하나의 메모리 셀에 하위 페이지(a lower order page)와 상위 페이지(a higher order page)를 포함하고 각 페이지에 1비트 데이터를 기입함으로써 2비트(4개의 값)를 저장하는 다치 메모리가 있다. 이러한 다치 메모리에 데이터를 기입하는 방법에 있어서, 데이터가 제1 메모리 셀의 하위 페이지에 기입된 후, 데이터는 제1 메모리 셀에 인접하는 메모리 셀(제2 메모리 셀)의 하위 페이지에 기입된다. 데이터가 이렇게 인접하는 메모리 셀에 기입된 후, 데이터는 제1 메모리 셀의 상위 페이지에 기입된다(예를 들어, 일본 특허 공개공보 제2004-192789호 참조).For example, a multi-value memory capable of storing four values, which includes a lower order page and a higher order page in one memory cell, and writes one bit of data to each page. There is a multivalued memory that stores bits (four values). In the method of writing data in such a multi-value memory, after data is written to the lower page of the first memory cell, the data is written to the lower page of the memory cell (second memory cell) adjacent to the first memory cell. After the data is written to such adjacent memory cells, the data is written to the upper page of the first memory cell (see, for example, Japanese Patent Laid-Open No. 2004-192789).

그러나, 이러한 다치 메모리에서, 데이터가 먼저 기입된 제1 메모리 셀의 임계 전압은, 데이터가 나중에 기입되며 제1 메모리 셀에 인접하는 제2 메모리 셀의 임계 전압 때문에 변동한다. 따라서, 다치 메모리에서는, 예를 들어, 데이터가 소정의 메모리 셀의 상위 페이지에 기입되고 있는 동안 전원의 비정상적 분리 때문에 기입이 일시 중단(suspend)되면 하위 페이지 파괴가 발생할 가능성이 있으며, 데이터가 먼저 기입되어 있는 하위 페이지의 데이터도 파괴된다.However, in such multi-value memory, the threshold voltage of the first memory cell to which data is written first varies because of the threshold voltage of the second memory cell to which data is written later and adjacent to the first memory cell. Therefore, in the multi-value memory, if the writing is suspended due to abnormal separation of the power supply, for example, while data is being written to the upper page of the predetermined memory cell, lower page destruction may occur, and the data is written first. The lower page data is also destroyed.

따라서, NAND 플래시 메모리를 채용하는 퍼스널 컴퓨터에서는, 예를 들어, 메모리 시스템이 전원의 비정상적 분리 등으로부터 리셋되면, 일시 중단의 타이밍을 구별함으로써, 또는 로그의 기입 동안 기입이 일시 중단되면 로그 파괴의 존재 또는 부재를 구별하고 일시 중단의 영향을 받지 않은 로그를 선택하여 스냅샷에 반영함으로써, 메모리 시스템을 비정상적 분리 발생 전의 상태로 리셋할 필요가 있다. 그러나, 이러한 복구 처리가 수행되더라도, 파괴된 로그가 여전히 존재한다. 따라서, 리셋 동작 후에 파괴된 로그가 실수로 판독될 가능성을 제거할 수 없으며 메모리 시스템의 신뢰성이 보장되지 않는 문제점이 있다.Thus, in a personal computer employing a NAND flash memory, for example, the presence of log destruction when the memory system is reset from abnormal disconnection of the power supply or the like, by distinguishing the timing of suspending, or when writing is suspended during writing of the log. Alternatively, it is necessary to reset the memory system to the state prior to the occurrence of abnormal detachment, by identifying the absence and selecting the log unaffected by the suspension and reflecting it in the snapshot. However, even if this recovery process is performed, the destroyed log still exists. Therefore, there is a problem that the possibility of accidentally reading the destroyed log after the reset operation cannot be eliminated and the reliability of the memory system is not guaranteed.

NAND 플래시 메모리를 구비하는 메모리 시스템에서, 데이터가 저장될 때, 예를 들어, 일단 블록이라 칭하는 단위로 기입 영역을 소거하고 이어서 페이지라 칭하는 단위로 기입을 수행할 필요가 있다. 반면에, 데이터가 저장될 때, 예를 들어, 일단 블록이라 칭하는 단위로 기입 영역을 소거하고 이어서 페이지라 칭하는 단위로 기입을 수행할 필요가 있다. 반면에, 이러한 데이터 기입 전에 수행되는 블록에 대한 소거 횟수가 증가할수록, 블록을 구성하는 메모리 셀의 열화가 심화된 다는 문제점이 있다. 다시 말하면, 각 블록들의 재기입가능 횟수에 제한이 있다. 따라서, 블록들의 소거 횟수의 억제는 메모리 시스템의 내구 수명의 연장을 위해 반드시 필요하다. 이러한 문제점에 대한 대응책의 하나로서, 예를 들어, 메모리 시스템의 모든 블록들의 소거 횟수가 대략 동일하도록 데이터의 갱신 부분들을 가능한 균등하게 분산시키는 마모 균등화(wear leveling)라 칭하는 처리가 수행된다.In a memory system having a NAND flash memory, when data is stored, for example, it is necessary to erase a write area once in a unit called a block and then perform a write in a unit called a page. On the other hand, when data is stored, for example, it is necessary to erase the write area once in a unit called a block and then write in a unit called a page. On the other hand, as the erase count for a block performed before such data writing increases, there is a problem that the deterioration of the memory cells constituting the block increases. In other words, there is a limit on the rewritable number of blocks. Thus, suppression of the erase count of blocks is essential for extending the endurance life of the memory system. As a countermeasure to this problem, for example, a process called wear leveling is performed which distributes the update portions of data as evenly as possible so that the erase counts of all the blocks of the memory system are approximately equal.

퍼스널 컴퓨터 등에서 대기, 슬립(sleep), 또는 리셋 신호가 생성되면, 스냅샷과 로그를 저장하는 종래의 방법에서는, 메모리 시스템이 지정 상태로 전환되기 전에 스냅샷을 취한다. 예를 들어, 대기 신호가 수신되면, 메모리 시스템에 관한 관리 정보는 스냅샷을 다시 취함으로써 저장된다. 후속하여, 메모리 시스템은 대기 상태로 전환된다. 메모리 시스템이 대기 상태로부터 리셋된 후, 관리 정보는 저장된 스냅샷을 이용함으로써 복구된다. 메모리 시스템은 이러한 관리 정보에 기초하여 대기 상태로의 전환 전의 상태로 복구된다.When a standby, sleep, or reset signal is generated in a personal computer or the like, in the conventional method of storing snapshots and logs, a snapshot is taken before the memory system is switched to the designated state. For example, when a wait signal is received, management information about the memory system is stored by taking a snapshot again. Subsequently, the memory system enters a standby state. After the memory system is reset from the standby state, the management information is recovered by using the stored snapshot. The memory system is restored to the state before the transition to the standby state based on this management information.

대기 신호 등이 수신될 때마다 스냅샷을 다시 취하는 방법을 NAND 플래시 메모리를 구비하는 메모리 시스템에 적용하게 되면, 스냅샷의 획득 횟수의 증가에 따라 메모리 시스템의 내구 수명이 저감된다는 문제점이 있다. 이것은, 스냅샷을 획득할 때, 관리 정보의 저장 영역인 블록이 먼저 소거된 후에 관리 정보가 그 블록에 기입되므로 메모리 셀이 블록 소거에 의해 열화되기 때문이다. 대기 신호 등이 수신되고 스냅샷이 다시 취해진 후 메모리 셀이 대기 상태로 전환되면, 메모리 셀이 스냅샷을 생성하는 데 시간이 걸리므로, 대기 상태 등으로의 전환 때까지 기다리는 시간이 길다는 문제점이 있다.When a method of taking a snapshot again whenever a standby signal or the like is received is applied to a memory system having a NAND flash memory, there is a problem that the endurance life of the memory system is reduced as the number of snapshots is acquired. This is because when a snapshot is taken, a block, which is a storage area of management information, is first erased and then management information is written to the block, thereby deteriorating the memory cell by block erasing. If a memory cell goes to standby after a standby signal or the like is received and the snapshot is taken again, the memory cell takes a long time to take a snapshot, so that the waiting time for switching to the standby state, etc. is long. have.

본 발명의 일 양태에 따르면, 메모리 시스템을 제공하며, 이 메모리 시스템은, 휘발성 제1 저장 유닛과, 다치 데이터를 저장할 수 있는 메모리 셀을 포함하는 비휘발성 제2 저장 유닛과, 제1 저장 유닛을 통해 호스트 장치와 제2 저장 유닛 사이에서 데이터 전달을 수행하고, 메모리 시스템의 기동 동작 동안 제2 저장 유닛에 저장된 데이터의 저장 위치를 포함하는 관리 정보를 제1 저장 유닛에 저장하고, 저장한 관리 정보를 갱신하면서 저장한 관리 정보에 기초하여 제1 저장 유닛과 제2 저장 유닛의 데이터 관리를 수행하는 컨트롤러를 포함한다. 컨트롤러는, 소정의 조건이 충족되는 경우, 제1 저장 유닛에 저장되어 있는 관리 정보를 제2 저장 유닛에 스냅샷으로서 저장하고, 로그(log)를 제2 저장 유닛에 관리 정보의 갱신 차이 정보로서 저장하는 관리 정보 저장 유닛과, 기동 동작을 개시할 때 로그가 제2 저장 유닛에 존재하는 경우, 스냅샷과 로그에 기초하여 제1 저장 유닛에 있는 관리 정보를 복구한 후 스냅샷을 다시 취하여 제2 저장 유닛에 저장하는 관리 정보 복구 유닛을 포함한다.According to an aspect of the present invention, there is provided a memory system, comprising: a nonvolatile second storage unit comprising a volatile first storage unit, a memory cell capable of storing multi-value data, and a first storage unit; Perform data transfer between the host device and the second storage unit, store management information including a storage location of data stored in the second storage unit during a startup operation of the memory system, in the first storage unit, and store the stored management information. And a controller that performs data management of the first storage unit and the second storage unit based on the management information stored while updating the data. When the predetermined condition is satisfied, the controller stores the management information stored in the first storage unit as a snapshot in the second storage unit, and stores a log as update difference information of the management information in the second storage unit. If the management information storage unit to be stored and the log exist in the second storage unit when starting the startup operation, recover the management information in the first storage unit based on the snapshot and the log and take the snapshot again to restore the management information. And a management information recovery unit for storing in the two storage units.

본 발명의 다른 일 양태에 따르면, 메모리 시스템을 제공하며, 이 메모리 시스템은, 휘발성 제1 저장 유닛과, 다치 데이터를 저장할 수 있는 메모리 셀을 포함하는 비휘발성 제2 저장 유닛과, 제1 저장 유닛을 통해 호스트 장치와 제2 저장 유닛 사이에서 데이터 전달을 수행하고, 메모리 시스템의 기동 동작 동안 제2 저장 유닛에 저장된 데이터의 저장 위치를 포함하는 관리 정보를 제1 저장 유닛에 저장하고, 저장한 관리 정보를 갱신하면서 저장한 관리 정보에 기초하여 제1 저장 유닛과 제2 저장 유닛의 데이터 관리를 수행하는 컨트롤러를 포함한다. 컨트롤러는, 소정의 조건이 충족되는 경우, 제1 저장 유닛에 저장되어 있는 관리 정보를 제2 저장 유닛에 스냅샷으로서 저장하고, 로그를 제2 저장 유닛에 관리 정보의 갱신 차이 정보로서 저장하는 관리 정보 저장 유닛과, 기동 동작을 개시할 때 로그가 제2 저장 유닛에 존재하는 경우 스냅샷과 로그에 기초하여 제1 저장 유닛에 있는 관리 정보를 복구하고, 기동 동작을 개시할 때 로그가 제2 저장 유닛에 존재하지 않는 경우 스냅샷에 기초하여 제1 저장 유닛에 있는 관리 정보를 복구하는 관리 정보 복구 유닛을 포함한다. 관리 정보 저장 유닛은, 대기 신호, 슬립 신호, 리셋 신호 중 하나의 신호가 수신되면, 이러한 어느 신호에 의해 지정된 지정 상태로 전환하기 전에 스냅샷을 다시 취해야 하는지 여부를 결정한다.According to another aspect of the invention, there is provided a memory system, the memory system comprising: a volatile first storage unit, a nonvolatile second storage unit including a memory cell capable of storing multi-value data, and a first storage unit To perform data transfer between the host device and the second storage unit, and to store and store management information including a storage location of data stored in the second storage unit during the startup operation of the memory system in the first storage unit. And a controller that performs data management of the first storage unit and the second storage unit based on the management information stored while updating the information. When the predetermined condition is satisfied, the controller stores management information stored in the first storage unit as a snapshot in the second storage unit, and stores the log as update difference information of management information in the second storage unit. Recovers management information in the first storage unit based on the snapshot and the log when the log is present in the second storage unit when starting the start operation and the information storage unit; And a management information recovery unit for recovering management information in the first storage unit based on the snapshot if not present in the storage unit. When the management information storage unit receives one of the wait signal, the sleep signal, and the reset signal, the management information storage unit determines whether to take a snapshot again before switching to the designated state designated by any of these signals.

도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 구성의 일 예의 블록도이다.1 is a block diagram of an example of a configuration of a memory system according to an embodiment of the present invention.

도 2는 NAND 메모리의 임의의 블록의 구성의 일 예의 회로도이다.2 is a circuit diagram of an example of a configuration of any block of a NAND memory.

도 3A는 DRAM의 기능적 구성의 개략적인 도면이고 도 3B는 NAND 메모리의 기능적 구성의 개략적인 도이다.3A is a schematic diagram of the functional configuration of a DRAM and FIG. 3B is a schematic diagram of the functional configuration of a NAND memory.

도 4는 메모리 시스템에 저장된 데이터를 관리하기 위한 층 구조의 일 예의 도이다.4 is a diagram of an example of a layer structure for managing data stored in a memory system.

도 5는 캐시 관리 정보 테이블의 일 예의 도이다.5 is a diagram of an example of a cache management information table.

도 6은 논리 NAND 관리 정보 테이블의 일 예의 도이다.6 is a diagram of an example of a logical NAND management information table.

도 7은 NAND내(intra-NAND) 논리적-물리적 변환 정보 테이블의 일 예의 도이다.7 is a diagram of an example of an intra-NAND logical-physical translation information table.

도 8은 관리 정보 저장 영역에 저장된 관리 정보 저장 정보의 내용의 일 예의 개략적인 도이다.8 is a schematic diagram of an example of the contents of management information storage information stored in the management information storage area.

도 9는 로그의 일 예를 도시한다.9 shows an example of a log.

도 10은 도 1에 도시한 구동 제어 유닛의 기능적 구성의 일 예의 블록도이다.10 is a block diagram of an example of a functional configuration of the drive control unit shown in FIG. 1.

도 11은 도 10에 도시한 데이터 관리 유닛의 기능적 구성의 일 예의 블록도이다.FIG. 11 is a block diagram of an example of a functional configuration of the data management unit shown in FIG. 10.

도 12는 메모리 시스템의 관리 정보를 위한 저장 처리 절차의 일 예의 흐름도이다.12 is a flowchart of an example of a storage processing procedure for management information of a memory system.

도 13은 프리 로그와 포스트 로그에 대한 저장 처리를 설명하기 위한 도이다.13 is a diagram for explaining storage processing for the prelog and postlog.

도 14는 메모리 시스템의 관리 정보에 대한 복구 처리 절차의 일 예의 흐름도이다.14 is a flowchart of an example of a recovery processing procedure for management information of a memory system.

도 15A 내지 도 15D는 메모리 셀의 데이터와 메모리 셀의 임계 전압과 NAND 메모리의 기입 순서 간의 관계의 예의 도이다.15A-15D are diagrams of examples of the relationship between the data of a memory cell and the threshold voltage of the memory cell and the writing order of the NAND memory.

도 16A 내지 도 16D는 관리 정보의 복구를 위해 사용되는 로그를 선택하는 방법을 설명하기 위한 도(1)이다.16A to 16D are diagrams (1) for explaining a method of selecting a log used for recovery of management information.

도 17E 내지 도 17G는 관리 정보의 복구를 위해 사용되는 로그를 선택하는 방법을 설명하기 위한 도(2)이다.17E to 17G are diagrams (2) for explaining a method of selecting a log used for recovery of management information.

도 18은 관리 정보 저장 영역에 저장된 관리 정보 저장 정보의 내용의 다른 예의 개략적인 도이다.18 is a schematic diagram of another example of the contents of management information storage information stored in the management information storage area.

도 19A와 도 19B는, 스냅샷을 다시 취하지 않고 대기 상태로 전환되며, 대기 신호가 수신되는 경우 스냅샷을 다시 취한 후에 대기 상태로 전환되는 시간도이다.19A and 19B show time transitions to the standby state without taking a snapshot again, and when the standby signal is received, transitions to the standby state after taking the snapshot again.

도 20은 로그가 로그 저장 블록에 페이지 단위로 저장되는 상태의 도이다.20 is a diagram in which logs are stored in log units in log units.

도 21은 대기, 슬립, 또는 리셋 동안 도 11에 도시한 관리 정보 저장 유닛의 동작을 설명하기 위한 흐름도이다.21 is a flowchart for explaining the operation of the management information storage unit shown in FIG. 11 during standby, sleep, or reset.

첨부 도면을 참조하여 본 발명에 따른 메모리 시스템의 예시적인 실시예를 상세히 설명한다. 본 발명은 이러한 실시예로 한정되지 않는다.DETAILED DESCRIPTION An exemplary embodiment of a memory system according to the present invention will be described in detail with reference to the accompanying drawings. The present invention is not limited to this embodiment.

제1 실시예First embodiment

본 발명의 제1 실시예에 따른 메모리 시스템은, 비휘발성 반도체 저장 디바이스를 포함하며 퍼스널 컴퓨터와 같은 호스트 장치의 이차 저장 디바이스(SSD; 고상 드라이브)로서 사용된다. 메모리 시스템은 호스트 장치에 의해 기입되도록 요청되는 데이터를 저장하고 호스트 장치에 의해 판독되도록 요청되는 데이터를 판독하고 이 데이터를 호스트 장치에 출력하는 기능을 갖는다. 도 1은 본 발명의 제1 실시예에 따른 메모리 시스템(10)의 구성의 일 예의 블록도이다. 이 메모리 시스템(10)은 제1 저장 유닛인 DRAM(11)과, 제2 저장 유닛인 NAND 플래시 메모리(12)(이하, NAND 메모리라 함)와, 전원 회로(13)와, 구동 제어 유닛(14)을 포함한 다.The memory system according to the first embodiment of the present invention includes a nonvolatile semiconductor storage device and is used as a secondary storage device (SSD) of a host apparatus such as a personal computer. The memory system has a function of storing data requested to be written by the host device, reading data requested to be read by the host device, and outputting the data to the host device. 1 is a block diagram of an example of a configuration of a memory system 10 according to the first embodiment of the present invention. The memory system 10 includes a DRAM 11 as a first storage unit, a NAND flash memory 12 (hereinafter referred to as a NAND memory) as a second storage unit, a power supply circuit 13, and a drive control unit ( 14)

DRAM(11)은 데이터 전달, 관리 정보 기록, 또는 작업 영역을 위한 저장 유닛으로서 사용된다. 특히, DRAM(11)이 데이터 전달을 위한 저장 유닛으로서 사용되는 경우, DRAM(11)은 데이터가 NAND 메모리(12)에 기입되기 전에 호스트 장치에 의해 기입되도록 요청되는 데이터를 일시 저장하도록 사용되며, DRAM(11)은 NAND 메모리(12)로부터의 호스트 장치에 의해 판독되도록 요청되는 데이터를 판독하고 판독한 데이터를 일시 저장하는 데 사용된다. DRAM(11)이 관리 정보 기록을 위한 저장 유닛으로서 사용되는 경우, DRAM(11)은 DRAM(11)과 NAND 메모리(12)에 저장된 데이터의 저장 위치를 관리하기 위한 관리 정보를 저장하는 데 사용된다. DRAM(11)이 작업 영역을 위한 저장 유닛으로서 사용되는 경우, DRAM(11)은 예를 들어 관리 정보가 복구될 때 사용되는 프리 로그와 포스트 로그(프리 갱신 로그와 포스트 갱신 로그)의 확장 동안 사용된다.The DRAM 11 is used as a storage unit for data transfer, management information recording, or a work area. In particular, when the DRAM 11 is used as a storage unit for data transfer, the DRAM 11 is used to temporarily store data requested to be written by the host device before the data is written to the NAND memory 12, The DRAM 11 is used to read data requested to be read by the host device from the NAND memory 12 and to temporarily store the read data. When the DRAM 11 is used as a storage unit for recording management information, the DRAM 11 is used to store management information for managing storage positions of data stored in the DRAM 11 and the NAND memory 12. . When the DRAM 11 is used as a storage unit for the work area, the DRAM 11 is used during the expansion of the prelog and post log (pre update log and post update log), for example, used when management information is recovered. do.

NAND 메모리(12)는 내부에 데이터를 저장하기 위한 저장 유닛으로서 사용된다. 특히, NAND 메모리(12)는 호스트 장치에 의해 지정된 데이터를 내부에 저장하고, 백업을 위해 DRAM(11)에 의해 관리되는 관리 정보를 내부에 저장한다. 도 1에서는, 4개의 채널(120A 내지 120D)을 포함하는 NAND 메모리(12)를 일 예로 도시하고 있다. 채널들(120A 내지 120D)의 각각은 두 개의 패키지(121)를 포함하며, 각 패키지는 소정 크기의 저장 용량(예를 들어, 2GB)을 갖는 8개의 칩(122)을 포함한다. 채널들(120A 내지 120D)은 구동 제어 유닛(14)과 버스들(15A 내지 15D)을 통해 연결된다.The NAND memory 12 is used as a storage unit for storing data therein. In particular, the NAND memory 12 stores therein the data designated by the host device therein, and stores therein management information managed by the DRAM 11 for backup. In FIG. 1, an NAND memory 12 including four channels 120A to 120D is illustrated as an example. Each of the channels 120A through 120D includes two packages 121, each containing eight chips 122 having a storage capacity of a predetermined size (eg, 2 GB). Channels 120A through 120D are connected via drive control unit 14 and buses 15A through 15D.

전원 회로(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 unit of the memory system 10 from the external power supply. The power supply circuit 13 detects the state, rising edge or falling edge of the external power supply, generates a power-on reset signal based on the detected state, and outputs the power-on reset signal to the drive control unit 14.

구동 제어 유닛(14)은 DRAM(11)과 NAND 메모리(12)를 제어한다. 상세히 후술하는 바와 같이, 예를 들어, 구동 제어 유닛(14)은 전원 회로(13)로부터의 파워온 리셋 신호에 따라 관리 정보에 대한 복구 처리 및 관리 정보에 대한 저장 처리를 수행한다. 구동 제어 유닛(14)은 데이터를 ATA 인터페이스(I/F)를 통해 호스트 장치에 대하여 송수신하고, 데이터를 RS232C I/F를 통해 디버깅 장치에 대하여 송수신한다. 게다가, 구동 제어 유닛(14)은 메모리 시스템(10)의 외측 상에 제공된상태 표시용 LED의 온/오프를 제어하기 위한 제어 신호를 출력한다.The drive control unit 14 controls the DRAM 11 and the NAND memory 12. As described later in detail, for example, the drive control unit 14 performs recovery processing for management information and storage processing for management information in accordance with a power-on reset signal from the power supply circuit 13. The drive control unit 14 transmits and receives data to and from the host device through the ATA interface (I / F) and data to and from the debugging device through the RS232C I / F. In addition, the drive control unit 14 outputs a control signal for controlling the on / off of the status display LED provided on the outside of the memory system 10.

이하, NAND 메모리(12)의 구성을 상세히 설명한다. NAND 메모리(12)는 데이터 소거 단위인 복수의 블록(소거 단위 영역)을 기판 상에 배치함으로써 구성된다. 도 2는 NAND 메모리(12)의 임의의 블록의 구성의 일 예의 회로도이다. 도 2에서, 좌우 방향은 X 방향으로 설정되고 X 방향에 수직하는 방향은 Y 방향으로 설정된다.Hereinafter, the configuration of the NAND memory 12 will be described in detail. The NAND memory 12 is configured by arranging a plurality of blocks (erasing unit regions) that are data erasing units on a substrate. 2 is a circuit diagram of an example of a configuration of any block of the NAND memory 12. In Fig. 2, the left and right directions are set in the X direction and the direction perpendicular to the X direction is set in the Y direction.

NAND 메모리(12)의 각 블록(BLK)은 X 방향을 따라 순서대로 배치된 (m+1)(m은 0 이상인 정수임)개의 NAND 스트링(NS)을 포함한다. 각 NAND 스트링(NS)은, Y 방향으로 서로 인접하는 메모리 셀 트랜지스터들(MT) 사이의 확산 영역(소스 영역 또는 드레인 영역)을 공유하는 (n+1)(n은 0 이상인 정수임)개의 메모리 셀 트랜지스터(MT0 내지 MTn)를 구비한다. 게다가, 메모리 셀 트랜지스터들(MT0 내지 MTn) 은 Y 방향으로 직렬 연결된다. 또한, 선택 트랜지스터들(ST1 및 ST2)은 (n+1)개의 메모리 트랜지스터들(MT0 내지 MTn)의 한 행의 양단에 배치된다.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 greater than or equal to 0) memory cells sharing a diffusion region (source region or drain region) between memory cell transistors MT adjacent to each other in the Y direction. Transistors MT0 to MTn. In addition, the memory cell transistors MT0 to MTn are connected in series in the Y direction. In addition, the selection transistors ST1 and ST2 are disposed across one row of the (n + 1) memory transistors MT0 to MTn.

각 메모리 셀 트랜지스터(MT0 내지 MTn)는 반도체 기판 상에 형성된 적층형 게이트 구조를 갖는 MOSFET(금속 산화물 반도체 전계 효과 트랜지스터)이다. 적층형 게이트 구조는 게이트 절연막을 통해 반도체 기판 상에 형성된 전하 축적층(부동 게이트 전극) 및 게이트간 절연막을 통해 전하 축적층 상에 형성된 제어 게이트 전극을 포함한다. 게다가, 메모리 셀 트랜지스터들(MT0 내지 MTn)은 부동 게이트 전극에 축적된 전자들의 개수에 따라 임계 전압이 변경되며 임계 전압의 차이에 따라 2비트 이상의 데이터가 저장될 수 있는 다치 메모리이다. 제1 실시예에서는, 메모리 셀 트랜지스터(MT)가 다치 메모리라고 가정한다.Each of the memory cell transistors MT0 to MTn is a MOSFET (metal oxide semiconductor field effect transistor) having a stacked gate structure formed on a semiconductor substrate. The stacked gate structure includes a charge accumulation layer (floating gate electrode) formed on the semiconductor substrate through the gate insulating film and a control gate electrode formed on the charge accumulation layer through the inter-gate insulating film. In addition, the memory cell transistors MT0 to MTn are multi-value memories in which a threshold voltage is changed according to the number of electrons accumulated in the floating gate electrode, and two or more bits of data may be stored according to a difference in the threshold voltage. In the first embodiment, it is assumed that the memory cell transistor MT is a multivalued memory.

워드 라인들(WL0 내지 WLn)은 각 NAND 스트링(NS)의 메모리 셀 트랜지스터들(MT0 내지 MTn)의 제어 게이트 전극들에 각각 연결된다. NAND 스트링들(NS)의 각각에 있는 메모리 셀 트랜지스터들(MTi; i = 0 내지 n)은 동일한 워드 라인들(i = 0 내지 n)에 의해 공통으로 연결된다. 다시 말하면, 블록(BLK)에서 동일한 행 상에 존재하는 메모리 셀 트랜지스터들(MTi)의 제어 게이트 전극들은 동일한 워드 라인(WLi)에 연결된다. 동일한 워드 라인(WLi)에 연결된 (m+1)개의 메모리 셀 트랜지스터들(MTi)의 그룹이 하나의 페이지를 형성하기 위한 단위이다. NAND 메모리(12)에서, 데이터의 기입과 판독은 이러한 페이지 단위로 수행된다.The word lines WL0 to WLn are connected to control gate electrodes of the memory cell transistors MT0 to MTn of each NAND string NS, respectively. Memory cell transistors MTi (i = 0 through n) in each of the NAND strings NS are commonly connected by the same word lines i = 0 through n. In other words, the control gate electrodes of the memory cell transistors MTi that exist on 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 for forming one page. In the NAND memory 12, writing and reading of data are performed in units of these pages.

비트 라인들(BL0 내지 BLm)은 하나의 블록(BLK)에 있는 (m+1)개의 선택 트랜지스터들(ST1)의 드레인들에 각각 연결된다. 선택 게이트 라인(SGD)은 각 NAND 스 트링(NS)의 선택 트랜지스터들(ST1)의 게이트들에 공통으로 연결된다. 선택 트랜지스터들(ST1)의 소스들은 메모리 셀 트랜지스터들(MT0)의 드레인들에 연결된다. 마찬가지로, 소스 라인(SL)은 하나의 블록(BLK)에 있는 (m+1)개의 선택 트랜지스터들(ST2)의 소스들에 공통으로 연결된다. 선택 게이트 라인(SGS)은 각 NAND 스트링(NS)의 선택 트랜지스터들(ST2)의 게이트들에 공통으로 연결된다. 선택 트랜지스터들(ST2)의 드레인들은 메모리 셀 트랜지스터들(MTn)의 소스들에 연결된다.The bit lines BL0 to BLm are respectively connected to drains of the (m + 1) select transistors ST1 in one block BLK. The select gate line SGD is commonly connected to gates of the select transistors ST1 of each NAND string NS. Sources of the selection transistors ST1 are connected to drains of the memory cell transistors MT0. Similarly, the source line SL is commonly connected to the sources of the (m + 1) select transistors ST2 in one block BLK. The select gate line SGS is connected to the gates of the select transistors ST2 of each NAND string NS in common. Drains of the selection transistors ST2 are connected to sources of the memory cell transistors MTn.

도면에는 도시하지 않았지만, 하나의 블록(BLK)에 있는 비트 라인들(BLj; j=0 내지 m)은 다른 블록들(BLK)의 비트 라인들(BLj) 사이의 선택 트랜지스터들(ST1)의 드레인들을 공통으로 연결한다. 다시 말하면, 블록들(BLK)의 동일한 열에 있는 NAND 스트링들(NS)은 동일한 비트 라인(BLj)에 의해 연결된다.Although not shown in the drawing, the bit lines B j (j = 0 to m) in one block BLK may drain the select transistors ST1 between the bit lines B j of the other blocks BLK. Connect them in common. In other words, the NAND strings NS in the same column of the blocks BLK are connected by the same bit line BLj.

다음으로 DRAM(11)과 NAND 메모리(12)의 기능적 구성을 설명한다. 도 3A는 DRAM(11)의 기능적 구성의 개략적인 도이고, 도 3B는 NAND 메모리(12)의 기능적 구성의 개략적인 도이다. 도 3A에 도시한 바와 같이, DRAM(11)은, 호스트 장치에 의해 기입되도록 요청되는 데이터가 저장되는 기입 캐시 영역(WC)과, 호스트 장치에 의해 판독되도록 요청되는 데이터가 저장되는 판독 캐시 영역(RC)과, DRAM(11)과 NAND 메모리(12)에 저장된 데이터의 저장 위치를 관리하기 위한 관리 정보가 저장되는 임시 저장 영역(111)과, 관리 정보가 복구될 때 사용되는 작업 영역(112)을 포함한다.Next, the functional configurations of the DRAM 11 and the NAND memory 12 will be described. 3A is a schematic diagram of the functional configuration of the DRAM 11, and FIG. 3B is a schematic diagram of the functional configuration of the NAND memory 12. As shown in Fig. 3A, the DRAM 11 includes a write cache area WC in which data requested to be written by the host device is stored, and a read cache area in which data requested to be read by the host device is stored ( RC), temporary storage area 111 in which management information for managing a storage location of data stored in DRAM 11 and NAND memory 12 is stored, and work area 112 used when management information is recovered. It includes.

도 3B에 도시한 바와 같이, NAND 메모리(12)는, 호스트 장치에 의해 기입되도록 요청된 데이터가 저장되는 데이터 저장 영역(125)과, DRAM(11)의 임시 저장 영역(111)에서 관리되는 관리 정보가 저장되는 관리 정보 저장 영역(126)을 포함한다. 이 예에서는, NAND 메모리(12) 내의 데이터 기입 및 판독 단위가 페이지 크기 단위로서 설정된다. 소거 단위는 블록 크기 단위로서 설정된다. 따라서, 블록 크기 단위로 관리되는 NAND 메모리(12)의 각 블록들을 저장하기 위한 영역을 페이지 크기 단위의 영역들로 더 나눈다.As shown in FIG. 3B, the NAND memory 12 includes a data storage area 125 in which data requested to be written by the host device is stored, and a management managed in the temporary storage area 111 of the DRAM 11. And a management information storage area 126 in which information is stored. In this example, data writing and reading units in the NAND memory 12 are set as page size units. The erase unit is set as a block size unit. Therefore, the area for storing each block of the NAND memory 12 managed in block size units is further divided into areas in page size units.

이하에서는, DRAM(11)의 임시 저장 영역(111)에서 관리되는 관리 정보를 설명한다. 도 4는 메모리 시스템(10)에 저장된 데이터를 관리하기 위한 층 구조의 일 예의 도이다. 여기서는, 이 데이터가 호스트 장치에 의해 기입 또는 판독되도록 요청되는 데이터라고 가정한다. 메모리 시스템(10)에서, 데이터 관리는, DRAM 관리층(31), 논리적 NAND 관리층(32), 물리적 NAND 관리층(33)인, 3층 구조에 의해 수행된다. DRAM 관리층(31)은 캐시 역할을 하는 DRAM(11)에서 데이터 관리를 수행한다. 논리적 NAND 관리층(32)은 NAND 메모리(12)에서 논리적 데이터 관리를 수행한다. 물리적 NAND 관리층(33)은 NAND 메모리(12)의 물리적 데이터 관리, NAND 메모리(12)를 위한 수명 연장 처리 등을 수행한다.Hereinafter, management information managed in the temporary storage area 111 of the DRAM 11 will be described. 4 is an example of a layer structure for managing data stored in the memory system 10. Here, assume that this data is data requested to be written or read by the host apparatus. In the memory system 10, data management is performed by a three-layer structure, which is a DRAM management layer 31, a logical NAND management layer 32, and a physical NAND management layer 33. The DRAM management layer 31 performs data management in the DRAM 11 serving as a cache. The logical NAND management layer 32 performs logical data management in the NAND memory 12. The physical NAND management layer 33 performs physical data management of the NAND memory 12, life extension processing for the NAND memory 12, and the like.

DRAM(11)의 기입 캐시 영역(WC)과 판독 캐시 영역(RC)에서는, 호스트 장치의 어드레스 관리 방법에 의해 관리되는 논리적 어드레스(이하, LBA(논리적 블록 어드레스)라 함)에 의해 지정된 데이터가, DRAM(11) 상의 소정의 범위 내의 물리적 어드레스(이하, DRAM내 물리적 어드레스(intra-DRAM physical address)라 함)에 저장된다. DRAM 관리층(31)에 있는 데이터는, 저장될 데이터의 LBA와 DRAM내 물리적 어드레스 사이의 대응 관계 및 페이지 내에 데이터가 섹터 크기 단위로 존재하는지 여부를 가리키는 섹터 플래그를 포함하는 캐시 관리 정보(41)에 의해 관리된다.In the write cache area WC and the read cache area RC of the DRAM 11, data designated by a logical address (hereinafter referred to as LBA (logical block address)) managed by the address management method of the host device is It is stored at a physical address within a predetermined range on the DRAM 11 (hereinafter referred to as an intra-DRAM physical address). The data in the DRAM management layer 31 includes cache management information 41 including a correspondence between the LBA of the data to be stored and a physical address in the DRAM and a sector flag indicating whether the data exists in units of sector sizes in the page. Managed by

도 5는 캐시 관리 정보(41)의 일 예를 표의 형태로 도시한다. 캐시 관리 정보(41)는 DRAM(11)의 하나의 페이지 크기의 하나의 영역에 대한 하나의 엔트리이다. 엔트리의 개수는 기입 캐시 영역(WC)과 판독 캐시 영역(RC)에 맞는 페이지의 개수 이하이다. 엔트리들의 각각에서는, 페이지 크기의 데이터의 LBA, DRAM내 물리적 어드레스, 및 이 페이지를 섹터 크기로 나눔으로써 얻어지는 영역들의 각각에 있는 유효 데이터의 위치를 가리키는 섹터 플래그가 연관된다.5 shows an example of the cache management information 41 in the form of a table. The cache management information 41 is one entry for one area of one page size of the DRAM 11. The number of entries is equal to or less than the number of pages corresponding to the write cache area WC and the read cache area RC. In each of the entries, an LBA of page sized data, a physical address in the DRAM, and a sector flag indicating the location of valid data in each of the regions obtained by dividing this page by the sector size are associated.

NAND 메모리(12)에서, DRAM(11)으로부터의 데이터는 NAND 메모리(12) 상의 소정의 범위 내의 물리적 어드레스(이하, NAND내 물리적 어드레스라 함)에 저장된다. 다치 메모리에 의해 형성된 NAND 메모리(12)에서는, 재기입가능 횟수가 제한되기 때문에, NAND 메모리(12)를 구성하는 블록들에 대한 재기입 횟수는 구동 제어 유닛(14)에 의해 균등해지도록 제어된다. 다시 말하면, NAND 메모리(12)의 소정의 NAND내 물리적 어드레스에 기입된 데이터의 갱신이 수행되는 경우, 구동 제어 유닛(14)은, NAND 메모리(12)를 구성하는 블록들에 대한 재기입 횟수를 균등화하는 제어를 수행하여, 갱신할 데이터가 포함되어 있는 블록에서 갱신 요청되는 일부를 반영하는 데이터를 초기 블록과는 다른 블록에 기입하고, 그 초기 블록을 무효화한다.In the NAND memory 12, the data from the DRAM 11 is stored at a physical address (hereinafter referred to as a physical address in the NAND) within a predetermined range on the NAND memory 12. In the NAND memory 12 formed by the multi-value memory, since the number of rewritables is limited, the number of rewrites for the blocks constituting the NAND memory 12 is controlled to be equalized by the drive control unit 14. . In other words, when updating of data written to a physical address in a predetermined NAND of the NAND memory 12 is performed, the drive control unit 14 determines the number of rewrites for the blocks constituting the NAND memory 12. Control to equalize is performed to write data reflecting a part of the update request in the block containing the data to be updated to a block different from the initial block, and invalidate the initial block.

전술한 바와 같이, NAND 메모리(12)에서, 처리 유닛들은 데이터에 대한 기입과 판독 처리 및 데이터에 대한 소거 처리에 있어서 서로 다르다. 데이터에 대한 갱신 처리에서는, 갱신 전 데이터의 위치(블록)와 갱신 후 데이터의 위치(블록)가 다르다. 따라서, 제1 실시예에서는, NAND 메모리(12)에서 독립적으로 사용되는 NAND내 논리적 어드레스(이하, NAND내 논리적 어드레스라 함)가 NAND내 물리적 어드레스에 더하여 제공된다.As described above, in the NAND memory 12, processing units are different in writing and reading processing for data and erasing processing for data. In the update process for data, the position (block) of the data before update differs from the position (block) of the data after update. Therefore, in the first embodiment, logical addresses in the NAND (hereinafter referred to as logical addresses in the NAND) used independently in the NAND memory 12 are provided in addition to the physical addresses in the NAND.

따라서, 논리적 NAND 관리층(32)의 데이터는, DRAM(11)으로부터 수신한 페이지 크기 단위의 데이터의 LBA와 수신한 데이터가 저장되는 NAND 메모리(12)의 논리적 페이지 위치를 가리키는 NAND내 논리적 어드레스 사이의 관계 및 NAND 메모리(12)에서 소거 단위인 블록의 크기와 일치하는 크기를 갖는 논리적 블록의 어드레스 범위를 가리키는 관계를 포함하는 논리적 NAND 관리 정보(42)에 의해 관리된다. 복수의 논리적 블록의 집합을 하나의 논리적 블록으로서 설정할 수 있다. 물리적 NAND 관리층(33)의 데이터는, NAND 메모리(12)에서 NAND내 논리적 어드레스와 NAND내 물리적 어드레스 사이의 대응 관계를 포함하는 NAND내 논리적 어드레스-물리적 어드레스 변환 정보(이하, 논리적-물리적 변환 정보라 함)에 의해 관리된다.Therefore, the data of 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 in which the received data is stored. Is managed by logical NAND management information 42 including relations indicative of < RTI ID = 0.0 > and < / RTI > A set of a plurality of logical blocks can be set as one logical block. The data of the physical NAND management layer 33 includes logical address-physical address translation information (hereinafter, logical-physical translation information) in the NAND memory 12 including a correspondence between the logical address in the NAND and the physical address in the NAND. It is managed by).

도 6은 논리적 NAND 관리 정보(42)의 일 예를 표의 형태로 도시한다. 도 7은 NAND내 논리적-물리적 변환 정보(43)의 일 예를 표의 형태로 도시한다. 도 6에 도시한 바와 같이, 논리적 NAND 관리 정보(42)는 논리적 페이지 관리 정보(42a)와 논리적 블록 관리 정보(42b)를 포함한다. 논리적 페이지 관리 정보(42a)는 하나의 페이지 크기의 하나의 논리적 영역에 대하여 하나의 엔트리를 갖는다. 엔트리들의 각각은 하나의 페이지 크기의 데이터의 LBA, NAND내 논리적 어드레스, 이 페이지가 유효한지 여부를 가리키는 페이지 플래그를 갖는다. 논리적 블록 관리 정보(42b)는 NAND 메모리(12)의 하나의 블록 크기의 영역을 위해 설정된 NAND내 물리적 어드 레스를 포함한다. 도 7에 도시한 바와 같이, NAND내 논리적-물리적 변환 정보(43)에서, NAND 메모리(12)의 NAND내 물리적 어드레스와 NAND내 논리적 어드레스는 연관된다.6 illustrates an example of logical NAND management information 42 in the form of a table. 7 shows an example of logical-physical conversion information 43 in a NAND in the form of a 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. Each of the entries has an LBA of data of one page size, a logical address in the NAND, and a page flag indicating whether this page is valid. The logical block management information 42b includes a physical address in the NAND set for one block size area of the NAND memory 12. As shown in Fig. 7, in the NAND logical-physical translation information 43, the physical address in the NAND and the logical address in the NAND of the NAND memory 12 are associated.

이러한 종류의 관리 정보를 이용함으로써, 호스트 장치에서 사용되는 LBA, NAND 메모리에서 사용되는 NAND내 논리적 어드레스, NAND 메모리(12)에서 사용되는 NAND내 물리적 어드레스의 대응을 확립할 수 있다. 이것은 호스트 장치와 메모리 시스템(10) 사이에 데이터를 교환할 수 있게 한다.By using this kind of management information, it is possible to establish correspondence between the LBA used in the host device, the logical address in the NAND used in the NAND memory, and the physical address in the NAND used in the NAND memory 12. This makes it possible to exchange data between the host device and the memory system 10.

DRAM 관리층(31)에 의해 관리되는 관리 정보는 파워오프 등으로 인해 손실되며 이에 따라 이 관리 정보를 휘발성 테이블이라 칭할 수 있다. 반대로, 논리적 NAND 관리층(32)과 물리적 NAND 관리층(33)에 의해 관리되는 관리 정보가 파워오프 등으로 인해 손실되면, 손실된 관리 정보는 메모리 시스템(10)의 성공적인 기동을 방해하므로 파워오프 등의 경우에도 관리 정보가 저장되도록 조치를 취해야 한다. 따라서, 이 관리 정보를 비휘발성 테이블이라 칭할 수 있다.The management information managed by the DRAM management layer 31 is lost due to power off or the like, and thus this management information may be referred to as a volatile table. On the contrary, if management information managed by the logical NAND management layer 32 and the physical NAND management layer 33 is lost due to power off or the like, the lost management information prevents successful startup of the memory system 10 and thus powers off. In such cases, measures should be taken to ensure that management information is stored. Therefore, this management information can be referred to as a nonvolatile table.

이러한 비휘발성 테이블은 NAND 메모리(12)에 저장된 데이터를 관리한다. 비휘발성 테이블이 존재하지 않으면, NAND 메모리(12)에 저장된 정보는 액세스될 수 없으며 또는 영역에 저장된 데이터가 소거된다. 따라서, 비휘발성 테이블은 갑작스런 파워오프에 대비하여 최신 정보로서 저장될 필요가 있다. 따라서, 제1 실시예에서, 적어도 비휘발성 테이블을 포함하는 관리 정보는 NAND 메모리(12)의 관리 정보 저장 영역(126)에 최신 상태로 저장된다. 이하, NAND 메모리(12)의 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보를 설명한다. 다음에 따르는 설명에서는 비휘발성 테이블만이 관리 정보 저장 영역(126)에 저장된다고 가정한다.This nonvolatile table manages data stored in the NAND memory 12. If the nonvolatile table does not exist, the information stored in the NAND memory 12 cannot be accessed or the data stored in the area is erased. Therefore, the nonvolatile table needs to be stored as the latest information in preparation for a sudden power off. Therefore, in the first embodiment, management information including at least a nonvolatile table is stored in the latest state in the management information storage area 126 of the NAND memory 12. Hereinafter, management information storage information stored in the management information storage area 126 of the NAND memory 12 will be described. In the following description, it is assumed that only the nonvolatile table is stored in the management information storage area 126.

도 8은 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보의 내용의 일 예의 개략적인 도이다. 이하의 항목들은 관리 정보 저장 영역(126)에 저장된다. 즉, 소정의 순간에 스냅샷(210)을 비휘발성 테이블의 내용으로서 포함하는 관리 정보 저장 정보, 다음번 스냅샷을 취하기 전 비휘발성 테이블의 내용의 갱신 차이 정보이며 갱신 전에 획득되는 프리 갱신 로그(220A)(이하 프리 로그라 함), 프리 로그(220A)의 내용과 동일한 내용의 로그 정보이며 갱신 후에 저장되는 포스트 갱신 로그(220B)(이하 포스트 로그라 함), 스냅샷(210)의 위치(블록), 스냅샷(210)을 위해 획득된 프리 로그(220A)의 위치(블록), 스냅샷(210)으로부터 획득된 포스트 로그(220B)의 위치(블록)를 가리키는 제2 포인터(230), 및 제2 포인터(230)가 저장된 위치(블록)를 가리키는 루트 포인터(240)가 저장된다. 스냅샷(210)은, DRAM(11)의 임시 저장 영역(111)에 저장된 관리 정보 중에서 소정의 순간에 적어도 비휘발성 테이블을 포함하는 관리 정보를 저장함으로써 얻게 되는 정보이다.8 is a schematic diagram of an example of the contents of management information storage information stored in the management information storage area 126. The following items are stored in the management information storage area 126. That is, management information storage information including the snapshot 210 as the contents of the nonvolatile table at a predetermined moment, update difference information of the contents of the nonvolatile table before the next snapshot is taken, and a pre-update log 220A obtained before the update. (Hereinafter referred to as prelog), post update log 220B (hereinafter referred to as postlog) which is log information having the same contents as the contents of the prelog 220A and stored after the update, and the location of the block 210 (block) ), A second pointer 230 pointing to the location (block) of the free log 220A obtained for the snapshot 210, the location (block) of the post log 220B obtained from the snapshot 210, and The root pointer 240 that indicates the location (block) in which the second pointer 230 is stored is stored. The snapshot 210 is information obtained by storing management information including at least a nonvolatile table at a predetermined moment among management information stored in the temporary storage area 111 of the DRAM 11.

스냅샷(210), 프리 로그(220A), 포스트 로그(220B), 제2 포인터(230), 루트 포인터(240)는 서로 다른 블록들에 저장된다. 이 블록들의 크기는 소거 단위로서 물리적 블록의 크기와 같다. 스냅샷(210)은 스냅샷 저장 블록에 저장된다. 스냅샷(210)은 논리적 NAND 관리 정보(42)와 NAND내 논리적-물리적 변환 정보(43)를 NAND 메모리(12)의 관리 정보 저장 영역(126)에 비휘발성 테이블로서 포함한다. 새로운 스냅샷(210)이 저장되는 경우, 스냅샷(210)은 이전에 저장된 스냅샷(210)의 블록과는 다른 블록에 저장된다.The snapshot 210, the free log 220A, the post log 220B, the second pointer 230, and the root pointer 240 are stored in different blocks. The size of these blocks is the erase unit, equal to the size of the physical block. Snapshot 210 is stored in a snapshot storage block. The snapshot 210 includes logical NAND management information 42 and intra-NAND logical-physical conversion information 43 in the management information storage area 126 of the NAND memory 12 as a nonvolatile table. When a new snapshot 210 is stored, the snapshot 210 is stored in a different block than the previously stored block of snapshot 210.

프리 로그(220A)와 포스트 로그(220B)는, 데이터 기입 처리 등에 대응하는 스냅샷(210)(또는 스냅샷(210)과 이전에 생성된 로그)과, 비휘발성 테이블의 내용에 변경이 있는 경우 내용이 변경된 후의 비휘발성 테이블 사이의 차이 정보이다. 특히, 스냅샷(210)을 취한 후 제1 프리 로그(220A)와 제1 포스트 로그(220B)는 비휘발성 테이블과 스냅샷(210) 사이의 차이 정보이다. 스냅샷(210)을 취한 후의 제2 또는 후속 프리 로그(220A)는 미리 생성되어 있는 프리 로그(220A)와 스냅샷(210)의 조합 및 비휘발성 테이블 사이의 차이 정보이다. 스냅샷(210)을 취한 후의 제2 또는 후속 포스트 로그(220B)는 미리 생성되어 있는 포스트 로그(220B)와 스냅샷(210)의 조합 및 비휘발성 테이블 사이의 차이 정보이다.The free log 220A and the post log 220B are used to change the contents of the snapshot 210 (or the snapshot 210 and previously generated logs) and the contents of the nonvolatile table corresponding to the data writing process or the like. Difference information between nonvolatile tables after the contents are changed. In particular, after taking the snapshot 210, the first prelog 220A and the first post log 220B are difference information between the nonvolatile table and the snapshot 210. The second or subsequent free log 220A after taking the snapshot 210 is the difference information between the pre-generated free log 220A and the snapshot 210 and the non-volatile table. The second or subsequent post log 220B after taking the snapshot 210 is the difference information between the pre-generated post log 220B and the snapshot 210 combination and non-volatile table.

프리 로그(220A)는 관리 정보가 실제로 갱신되기 전에 생성된 정보이다. 따라서, 관리 정보가 데이터 기입 처리 등의 실행에 의해 실제로 갱신되기 전에, 프리 로그(220A)는 관리 정보가 어떻게 갱신되는지에 관한 갱신 스케쥴에 기초하여 생성된다.The free log 220A is information generated before the management information is actually updated. Therefore, before the management information is actually updated by execution of data writing process or the like, the prelog 220A is generated based on an update schedule on how the management information is updated.

포스트 로그(220B)는 관리 정보가 실제로 갱신된 후에 생성된 정보이다. 따라서, 포스트 로그(220B)는, 데이터 기입 처리 등의 실행에 따라 관리 정보가 실제로 갱신된 후에 실제 관리 정보를 이용함으로써 생성된다.The post log 220B is information generated after the management information is actually updated. Therefore, the post log 220B is generated by using the actual management information after the management information is actually updated in accordance with execution of the data writing process or the like.

프리 로그(220A)와 포스트 로그(220B)는 로그 저장 블록들에 각각 저장된다. 프리 로그(220A)와 포스트 로그(220B)는 스냅샷이 변경되더라도 라이트-원스(write-once) 방식으로 동일한 로그 저장 블록들에 기입된다.The pre log 220A and the post log 220B are stored in log storage blocks, respectively. The pre log 220A and the post log 220B are written to the same log storage blocks in a write-once manner even if the snapshot is changed.

도 9는 로그의 일 예를 도시한다. 프리 로그(220A)와 포스트 로그(220B)는 동일한 정보를 갖기 때문에, 프리 로그(220A)를 로그의 일 예로서 설명한다. 프리 로그(220A)는 변경 타겟의 관리 정보인 타겟 정보와, 타겟 정보에서 변경 타겟의 엔트리인 타겟 엔트리와, 타겟 엔트리에서 변경 타겟의 항목인 타겟 항목과, 타겟 항목에서 변경되는 내용인 변경 내용을 포함한다. 프리 로그(220A)와 포스트 로그(220B)는, 이들이 스냅샷(210)에 대한 갱신 차이 정보이기 때문에, 새로운 스냅샷(210)의 저장에 따라 재형성(reform)된다.9 shows an example of a log. Since the pre log 220A and the post log 220B have the same information, the pre log 220A will be described as an example of the log. The pre-log 220A includes target information which is management information of the change target, target entry which is the entry of the change target in the target information, target item which is the item of the change target in the target entry, and change contents that are the contents changed in the target item. Include. The free log 220A and the post log 220B are reformed according to the storage of the new snapshot 210 since they are update difference information for the snapshot 210.

제2 포인터(230)는 제2 포인터 저장 블록에 저장된다. 제2 포인터(230)는 스냅샷(210), 프리 로그(220A), 포스트 로그(220B)의 저장 위치들을 가리키는 블록의 탑 어드레스를 가리키는 포인터이면 된다. 제2 포인터(230)는, 스냅샷(210)이 새롭게 저장될 때 또는 스냅샷 저장 블록이나 로그 저장 블록이 변경될 때 갱신된다. 프리 로그(220A)와 포스트 로그(220B)의 포인터들은 제2 포인터 저장 블록이 아니라 스냅샷(210)에 저장될 수도 있다.The second pointer 230 is stored in the second pointer storage block. The second pointer 230 may be a pointer indicating a top address of a block indicating storage positions of the snapshot 210, the prelog 220A, and the post log 220B. The second pointer 230 is updated when the snapshot 210 is newly stored or when the snapshot storage block or log storage block is changed. The pointers of the free log 220A and the post log 220B may be stored in the snapshot 210 instead of the second pointer storage block.

제2 포인터(230)는 스냅샷 저장 블록에 액세스하기 위한 스냅샷 액세스 정보와, 프리 로그(220A)와 포스트 로그(220B)를 위한 로그 저장 블록들에 액세스하기 위한 로그 액세스 정보와, 다음 제2 포인터가 저장되는 페이지 위치를 가리키는 다음 포인터(next pointer)를 포함한다. 제2 포인터(230)는 이 다음 포인터에 의해 링크된 리스트 시스템의 정보로 변경된다. 루트 포인터(240)에 의해 지정된 제2 포인터 저장 블록의 탑 페이지로부터 다음 포인터를 추적함으로써 최신 제2 포인터(230)에 도달할 수 있다. 링크된 리스트 시스템 대신에, 제2 포인터(230)는 제2 포인터 저장 영역의 탑 페이지로부터 순서대로 라이트-원스 방식으로 저장될 수 있다.The second pointer 230 includes snapshot access information for accessing the snapshot storage block, log access information for accessing the log storage blocks for the free log 220A and the post log 220B, and the next second. Contains the next pointer to the page location where the pointer is stored. The second pointer 230 is changed into information of the list system linked by this next pointer. The latest second pointer 230 can be reached by tracking the next pointer from the top page of the second pointer storage block designated by root pointer 240. Instead of a linked list system, the second pointer 230 may be stored in a write-once fashion in order from the top page of the second pointer storage area.

루트 포인터(240)는 제1 루트 포인터 저장 블록에 저장된다. 루트 포인터(240)는, 제2 포인터(230)가 저장되는 제2 포인터 저장 블록에 액세스하기 위한 정보이며, 메모리 시스템(10)을 기동할 때 관리 정보를 복구하기 위한 처리 시 먼저 판독되는 정보이다. 루트 포인터(240)는 제2 포인터 저장 블록이 변경될 때 변경된다. 루트 포인터(240)는 블록의 탑 페이지로부터 순서대로 라이트-원스 방식으로 루트 포인터 저장 블록에 저장된다. 이 경우, 루트 포인터 저장 블록에서 미기입 페이지에 바로 선행하는 페이지가 최신 정보를 갖는다. 따라서, 미기입 페이지의 최상위 페이지를 검색함으로써 최신 루트 포인터를 검색할 수 있다. 제2 포인터(230)의 경우와 같이, 링크된 리스트를 사용할 수도 있다.The root pointer 240 is stored in the first 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 information that is first read in a process for recovering management information when the memory system 10 is activated. . The root pointer 240 changes when the second pointer storage block changes. The root pointer 240 is stored in the root pointer storage block in a write-once manner in order from the top page of the block. In this case, the page immediately preceding the unwritten page in the root pointer storage block has the latest information. Therefore, the latest root pointer can be retrieved by searching the top page of an unwritten page. As in the case of the second pointer 230, a linked list may be used.

루트 포인터(240)는 NAND 메모리(12)의 고정 영역(1261)에 저장된다. 스냅샷(210), 프리 로그(220A), 포스트 로그(220B), 제2 포인터(230)는 NAND 메모리(12)의 가변 영역(1262)에 저장된다. 고정 영역(1261)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 NAND 메모리(12)에서 고정된 보호 영역이며, 메모리 시스템(10)을 실행하는 데 필요하며 재기입 및 기입이 거의 발생하지 않는 저 갱신 빈도로 정보가 저장되는 영역이다.The root pointer 240 is stored in the fixed area 1261 of the NAND memory 12. The snapshot 210, the free log 220A, the post log 220B, and the second pointer 230 are stored in the variable area 1262 of 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 12, It is an area in which information is stored at a low update frequency, which is required for executing the memory system 10 and hardly causes rewriting and writing to occur.

가변 영역(1262)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 고정 영 역(1261)을 제외한 NAND 메모리(12)의 영역에서 가변적인 영역이며, 마모 균등화의 타겟인 영역이다.The variable region 1262 has a NAND memory 12 in which a relationship between a logical block managed by the logical NAND management layer 32 and a physical block managed by the physical NAND management layer 33 excludes the fixed region 1261. ) Is a variable area, and is a target of wear equalization.

이하, 구동 제어 유닛(14)의 기능들을 설명한다. 도 10은 구동 제어 유닛(14)의 기능적 구성의 일 예의 블록도이다. 구동 제어 유닛(14)은, 데이터 관리 유닛(141), ATA 커맨드 처리 유닛(142), 보안 관리 유닛(143), 부트 로더(144), 초기화 관리 유닛(145), 디버그 지원 유닛(146)을 포함한다. 데이터 관리 유닛(141)은 DRAM(11)과 NAND 메모리(12) 사이의 데이터 전달, 및 NAND 메모리(12)에 관한 다양한 기능들의 제어를 수행한다. ATA 커맨드 처리 유닛(142)은 ATA 인터페이스로부터 수신한 명령어에 기초하여 데이터 관리 유닛(141)과 협동하여 데이터 전달 처리를 수행한다. 보안 관리 유닛(143)은 데이터 관리 유닛(141) 및 ATA 커맨드 처리 유닛(142)과 협동하여 다양한 종류의 보안 정보를 관리한다. 부트 로더(144)는, 파워온 동안, NAND 메모리(12)로부터 도시하지 않은 메모리(예를 들어, SRAM)에 다양한 관리 프로그램들(펌웨어)을 로딩한다. 초기화 관리 유닛(145)은 구동 제어 유닛(14)의 컨트롤러들과 회로들의 초기화를 수행한다. 디버그 지원 회로(146)는 RS232C 인터페이스를 통해 외부로부터 공급되는 디버그 데이터를 처리한다.The functions of the drive control unit 14 will be described below. 10 is a block diagram of an example of a functional configuration of the drive control unit 14. The drive control unit 14 includes the data management unit 141, the ATA command processing unit 142, the security management unit 143, the boot loader 144, the initialization management unit 145, and the debug support unit 146. Include. The data management unit 141 performs data transfer between the DRAM 11 and the NAND memory 12, and control of various functions related to the NAND memory 12. The ATA command processing unit 142 cooperates with the data management unit 141 to perform data transfer processing based on the command received from the ATA interface. The security management unit 143 cooperates with the data management unit 141 and the ATA command processing unit 142 to manage various kinds of security information. The boot loader 144 loads various management programs (firmware) from the NAND memory 12 into a memory (eg, SRAM), not shown, during power-on. The initialization management unit 145 performs initialization of the controllers and circuits of the drive control unit 14. The debug support circuit 146 processes debug data supplied from the outside through the RS232C interface.

도 11은 데이터 관리 유닛(141)의 기능적 구성의 일 예의 블록도이다. 데이터 관리 유닛(141)은 데이터 전달 처리 유닛(151), 관리 정보 관리 유닛(152), 관리 정보 복구 유닛(155)을 포함한다. 데이터 전달 처리 유닛(151)은 DRAM(11)과 NAND 메모리(12) 사이의 데이터 전달을 수행한다. 관리 정보 관리 유닛(152)은 DRAM(11)과 NAND 메모리(12)에 저장된 데이터의 변경에 따라 관리 정보의 변경 및 저장을 수행한다. 관리 정보 복구 유닛(155)은 파워온 등 동안 저장되어 있는 관리 정보에 기초하여 최신 관리 정보를 복구한다.11 is a block diagram of an example of a functional configuration of the data management unit 141. The data management unit 141 includes a data transfer processing unit 151, a management information management unit 152, and a management information recovery unit 155. The data transfer processing unit 151 performs data transfer between the DRAM 11 and the NAND memory 12. The management information management unit 152 performs the change and storage of the management information in accordance with the change of the data stored in the DRAM 11 and the NAND memory 12. The management information recovery unit 155 restores the latest management information based on the management information stored during power-on or the like.

관리 정보 관리 유닛(152)은 관리 정보 기입 유닛(153)과 관리 정보 저장 유닛(154)을 포함한다. 관리 정보 기입 유닛(153)은, 데이터 전달 처리 유닛(151)에 의해 DRAM(11) 또는 NAND 메모리(12)에 저장된 데이터에 대한 변경 처리에 따라 관리 정보의 갱신이 필요한 경우 DRAM(11)에 저장된 관리 정보의 갱신을 수행한다.The management information management unit 152 includes a management information writing unit 153 and a management information storage unit 154. The management information writing unit 153 is stored in the DRAM 11 when the management information is required to be updated in accordance with the change processing on the data stored in the DRAM 11 or the NAND memory 12 by the data transfer processing unit 151. Update management information.

메모리 시스템(10)이 소정의 조건을 충족하는 경우, 관리 정보 저장 유닛(154)은, NAND 메모리(12)의 관리 정보 저장 영역(126)에, 관리 정보를 스냅샷으로서, 관리 정보에서 갱신될 정보를 프리 로그(220A)로서, 관리 정보에서 갱신된 정보를 포스트 로그(220B)로서 저장한다. 스냅샷(210), 프리 로그(220A), 또는 포스트 로그(220B)의 저장에 따라 제2 포인터(230)의 기입 위치가 변경되면, 관리 정보 저장 유닛(154)은 갱신 처리를 제2 포인터(230)에 적용한다.When the memory system 10 satisfies a predetermined condition, the management information storage unit 154 may update the management information as a snapshot in the management information storage area 126 of the NAND memory 12 in the management information. The information updated as the pre-log 220A and the information updated in the management information are stored as the post log 220B. When the writing position of the second pointer 230 changes in accordance with the storage of the snapshot 210, the free log 220A, or the post log 220B, the management information storage unit 154 performs an update process on the second pointer ( 230).

스냅샷(210)은, 메모리 시스템(10)에 관한 소정의 조건이 충족되는 경우 관리 정보 저장 유닛(154)에 의해 저장된다. 스냅샷(210)은, 예를 들어, NAND 메모리(12)의 관리 정보 저장 영역(126)에서 로그(220)(프리 로그(220A)와 포스트 로그(220B))를 저장하도록 제공된 로그 저장 영역이 풀(full) 상태로 된 경우(즉, 이 영역이 데이터로 완전히 채워진 경우), 저장된다.The snapshot 210 is stored by the management information storage unit 154 when a predetermined condition regarding the memory system 10 is met. The snapshot 210 has a log storage area provided for storing logs 220 (pre-log 220A and post log 220B) in the management information storage area 126 of the NAND memory 12, for example. If it is full (that is, this area is completely filled with data), it is stored.

로그(220)(프리 로그(220A)와 포스트 로그(220B))는, DRAM(11)에 저장된 관리 정보(비휘발성 테이블)의 갱신을 포함하여 NAND 메모리(12) 상에서 (NAND 메모 리(12)의 데이터 기입이 필요한 경우) 데이터가 갱신되는 동안 관리 정보 저장 유닛(154)에 의해 저장된다.The log 220 (pre-log 220A and post log 220B) is stored on the NAND memory 12 including the update of management information (non-volatile table) stored in the DRAM 11 (NAND memory 12). Is required by the management information storage unit 154 while the data is updated.

관리 정보 저장 유닛(154)이 프리 로그(220A)와 포스트 로그(220B)를 저장하는 타이밍은 DRAM(11)에 저장된 관리 정보(비휘발성 테이블)의 갱신이 관리 정보 기입 유닛(153)에 의해 수행될 때이다. 특히, 프리 로그(220A)와 포스트 로그(220B)는 데이터 기입 등을 수행하는 처리 전과 후에 저장된다.The timing at which the management information storage unit 154 stores the pre log 220A and the post log 220B is such that updating of the management information (nonvolatile table) stored in the DRAM 11 is performed by the management information writing unit 153. It is time to be. In particular, the prelog 220A and the post log 220B are stored before and after the process of performing data writing or the like.

메모리 시스템(10)의 전원이 턴온되면, 관리 정보 복구 유닛(155)은 NAND 메모리(12)의 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보에 기초하여 관리 정보의 복구 처리를 수행한다. 특히, 관리 정보 복구 유닛(155)은, 고정 영역(1261)의 루트 포인터(240), 및 가변 영역(1262)의 스냅샷(210), 프리 로그(220A), 포스트 로그(220B)를 순서대로 추적하고, 최신 스냅샷(210)에 대응하는 프리 로그(220A)와 포스트 로그(220B)가 존재하는지 여부를 결정한다. 프리 로그(220A)와 포스트 로그(220B)가 존재하지 않으면, 관리 정보 복구 유닛(155)은 DRAM(11)에서 스냅샷 저장 블록의 스냅샷(210)을 관리 정보로서 복구한다. 프리 로그(220A)와 포스트 로그(220B)가 존재하면, 이것은 프로그램 에러 또는 순단(short break; 전원의 비정상적 분리)과 같은 비정상적인 종료가 발생하였음을 의미하며, 관리 정보 복구 유닛(155)은 스냅샷 저장 블록으로부터 스냅샷(210)을 획득하고, 로그 저장 블록으로부터 프리 로그(220A)와 포스트 로그(220B)를 획득하고, 프리 로그(220A)와 포스트 로그(220B)를 DRAM(11)상의 스냅샷(210)에 반영하여 관리 정보(비휘발성 테이블)를 복구한다.When the power supply of the memory system 10 is turned on, the management information recovery unit 155 performs a recovery process of the management information based on the management information storage information stored in the management information storage area 126 of the NAND memory 12. In particular, the management information recovery unit 155 sequentially processes the root pointer 240 of the fixed area 1261 and the snapshot 210, the free log 220A, and the post log 220B of the variable area 1262. It tracks and determines whether there is a pre log 220A and a post log 220B corresponding to the latest snapshot 210. If the free log 220A and the post log 220B do not exist, the management information recovery unit 155 restores the snapshot 210 of the snapshot storage block in the DRAM 11 as management information. If there is a prelog 220A and a post log 220B, this means that an abnormal termination such as a program error or a short break (abnormal disconnection of the power supply) has occurred, and the management information recovery unit 155 takes a snapshot. Take a snapshot 210 from a storage block, obtain a prelog 220A and a post log 220B from a log storage block, and take a snapshot of the prelog 220A and post log 220B on the DRAM 11. Reflected in 210, the management information (nonvolatile table) is recovered.

이하, 관리 정보 관리 유닛(152)에 의한 메모리 시스템(10)의 관리 정보의 저장 처리를 설명한다. 도 12는 메모리 시스템(10)의 관리 정보에 대한 저장 처리 절차의 일 예의 흐름도이다. 도 13은 프리 로그와 포스트 로그에 대한 저장 처리를 설명하기 위한 도이다. 메모리 시스템(10)이 호스트 장치에 연결되며 호스트 장치의 이차 저장 디바이스로서 동작하고, 호스트 장치(메모리 시스템(10))는 기동 상태에 있으며, 스냅샷(210)은 이러한 기동 상태 전 메모리 시스템(10)의 정지 전에 저장되어 있다고 가정한다.Hereinafter, the storage processing of the management information of the memory system 10 by the management information management unit 152 will be described. 12 is a flowchart of an example of a storage processing procedure for management information of the memory system 10. 13 is a diagram for explaining storage processing for the prelog and postlog. The memory system 10 is connected to the host device and operates as a secondary storage device of the host device, the host device (memory system 10) is in a startup state, and the snapshot 210 is a memory system 10 before this startup state. Assume that it is stored before the stop.

먼저, 호스트 장치(메모리 시스템(10))는 호스트 장치(메모리 시스템(10))의 최종 종료 시 저장된 스냅샷(210)에 기초하여 기동된 상태에 있다(단계 S11). 이후, 필요시 호스트 장치로부터 NAND 메모리(12)로 데이터의 판독 또는 기입이 수행된다. 관리 정보 관리 유닛(152)은 소정의 스냅샷 저장 조건(예를 들어, 로그 저장 영역이 풀인 조건(로그 저장 영역이 로그 데이터로 채워져 있는 조건))이 충족되는지 여부를 결정한다(단계 S12). 스냅샷 저장 조건이 충족되지 않으면(단계 S12에서 아니오), 관리 정보 관리 유닛(152)은 관리 정보의 갱신에 관한 명령어(NAND 메모리에 데이터를 기입하라는 명령어)가 수신되는지 여부를 결정한다(단계 S13). 관리 정보의 갱신에 관한 명령어가 수신되지 않으면(단계 S13에서 아니오), 관리 정보 관리 유닛(152)은 단계 S12로 복귀한다.First, the host device (memory system 10) is in the activated state based on the snapshot 210 stored at the end of the host device (memory system 10) (step S11). Thereafter, reading or writing of data from the host device to the NAND memory 12 is performed as necessary. The management information management unit 152 determines whether a predetermined snapshot storage condition (for example, a condition that the log storage area is full (condition that the log storage area is filled with log data)) is satisfied (step S12). If the snapshot storage condition is not satisfied (NO in step S12), the management information management unit 152 determines whether or not an instruction about updating management information (command to write data in the NAND memory) is received (step S13). ). If no instruction regarding the update of the management information is received (NO in step S13), the management information management unit 152 returns to step S12.

관리 정보의 갱신에 관한 명령어가 수신되면(단계 S13에서 예), 관리 정보 관리 유닛(152)은 그 명령어를 수행함으로써 관리 정보가 어떻게 갱신되는지를 가리키는 갱신 스케쥴을 결정한다(단계 S14). 관리 정보 관리 유닛(152)은, NAND 메 모리(12)의 관리 정보 저장 영역(126)의 로그 저장 블록에 갱신 스케쥴을 프리 로그(220A)로서 저장한다(단계 S15). 프리 로그(220A)가 로그 저장 블록에 저장되지 않으면, 갱신 스케쥴(로그)이 관리 정보가 갱신될 때의 비휘발성 테이블과 스냅샷 저장 블록에 저장된 스냅샷(210) 사이의 차이 정보이다. 로그(220)(이하, 과거 프리 로그(220A)라 칭함)가 로그 저장 블록에 이미 저장되어 있으면, 갱신 스케쥴(로그)은, 관리 정보가 갱신될 때의 비휘발성 테이블 및 스냅샷(210)과 과거 프리 로그(220A)의 조합 사이의 차이 정보이다. 특히, 도 13에 도시한 바와 같이, X번째 데이터에 대한 기입 처리인 데이터 기입(X)이 수행되기 전에, 데이터 기입(X)에 대응하는 프리 로그(X)가 NAND 메모리(12)에 프리 로그(220A)로서 저장된다. 이때, 예를 들어, 정보(y1)가 프리 로그(220A)로서 저장된다. 프리 로그(220A)는, 예를 들어, 프리 로그(220A)(갱신 스케쥴)가 DRAM(11)에 기록된 후, NAND 메모리(12)의 관리 정보 저장 영역(126)에 저장된다.When an instruction about updating management information is received (YES in step S13), the management information management unit 152 determines an update schedule indicating how the management information is updated by performing the command (step S14). The management information management unit 152 stores the update schedule as the pre-log 220A in the log storage block of the management information storage area 126 of the NAND memory 12 (step S15). If the free log 220A is not stored in the log storage block, the update schedule (log) is the difference information between the non-volatile table when the management information is updated and the snapshot 210 stored in the snapshot storage block. If the log 220 (hereinafter referred to as the past free log 220A) is already stored in the log storage block, the update schedule (log) is stored in the nonvolatile table and snapshot 210 when the management information is updated. Difference information between combinations of past prelogs 220A. In particular, as shown in Fig. 13, before the data write (X), which is the write process for the X-th data, is performed, the prelog X corresponding to the data write (X) is pre-logged in the NAND memory 12. Stored as 220A. At this time, for example, the information y1 is stored as the free log 220A. The prelog 220A is stored in the management information storage area 126 of the NAND memory 12 after the prelog 220A (update schedule) is recorded in the DRAM 11, for example.

후속하여, 논리적 NAND 관리층(32)은 단계 S13에서 수신한 명령어(예를 들어, NAND 메모리(12)의 데이터 저장 영역(125)에 사용자 데이터를 기입(X)하기 위한 처리)를 실행한다(단계 S16).Subsequently, the logical NAND management layer 32 executes the instruction (for example, a process for writing (X) user data into the data storage area 125 of the NAND memory 12) received in step S13 ( Step S16).

이후, DRAM(11)에 저장되어 있는 관리 정보는 실행된 처리에 따라 갱신된다. 관리 정보 저장 유닛(154)은 관리 정보에서 갱신된 정보를 NAND 메모리(12)의 관리 정보 저장 영역(126)에 포스트 로그(220B)로서 저장한다. 포스트 로그(220B)가 로그 저장 블록에 저장되지 않으면, 포스트 로그(220B)는 현재의 비휘발성 테이블 및 스냅샷 저장 블록에 저장되어 있는 스냅샷(210) 사이의 차이 정보이다. 포스트 로 그(220B)(이하, 과거 포스트 로그(220B)라 칭함)가 로그 저장 블록에 이미 저장되어 있으면, 포스트 로그(220B)는 현재의 비휘발성 테이블 및 스냅샷(210)과 과거 포스트 로그의 조합 사이의 차이 정보이다.Thereafter, the management information stored in the DRAM 11 is updated in accordance with the executed process. The management information storage unit 154 stores the information updated in the management information in the management information storage area 126 of the NAND memory 12 as the post log 220B. If the post log 220B is not stored in the log storage block, the post log 220B is the difference information between the snapshot 210 stored in the current nonvolatile table and the snapshot storage block. If post log 220B (hereinafter, referred to as past post log 220B) is already stored in the log storage block, post log 220B is used to determine the current nonvolatile table and snapshot 210 and the past post log. Difference information between combinations.

데이터 기입(X)에 대응하는 포스트 로그(220B)(X)는 NAND 메모리(12)에 포스트 로그(220B)로서 저장된다. 이때, 예를 들어, 정보(y1)가 포스트 로그(220B)로서 저장된다. 포스트 로그(220B)로서 저장된 정보(y1)는 프리 로그(220A)로서 저장된 정보(y1)와 동일하다(단계 S17). 이후, 관리 정보 관리 유닛(152)은 단계 S12로 복귀한다.The post log 220B (X) corresponding to the data write X is stored in the NAND memory 12 as the post log 220B. At this time, for example, the information y1 is stored as the post log 220B. The information y1 stored as the post log 220B is the same as the information y1 stored as the free log 220A (step S17). Thereafter, the management information management unit 152 returns to step S12.

스냅샷 저장 조건이 충족되지 않고(단계 S12에서 아니오) 관리 정보의 갱신에 관한 명령어가 수신되면(단계 S13에서 예), 단계 S14 내지 S17의 처리가 수행된다. 다시 말하면, (X+1)번째 데이터에 대한 기입 처리는 X번째 데이터에 대한 기입 처리와 동일한 방식으로 수행된다. 데이터 기입(X+1)이 (X+1)번째 데이터에 대한 기입 처리로서 수행되기 전에, 데이터 기입(X+1)에 대응하는 프리 로그(X+1)가 NAND 메모리(12)에 프리 로그(220A)로서 저장된다. 이때, 예를 들어, 정보(y2)가 프리 로그(220A)로서 저장된다. NAND 메모리(12)의 데이터 저장 영역(125)에 데이터 기입(X+1)이 수행된다. 데이터 기입(X+1)에 대응하는 포스트 로그(X+1)는 NAND 메모리(12)에 포스트 로그(220B)로서 저장된다. 이때, 예를 들어, 정보(y2)가 포스트 로그(220B)로서 저장된다. 포스트 로그(220B)로서 저장된 정보(y2)는 프리 로그(220A)로서 저장된 정보(y2)와 동일하다.If the snapshot storage condition is not satisfied (NO in step S12) and an instruction regarding updating of management information is received (YES in step S13), the processing of steps S14 to S17 is performed. In other words, the write process for the (X + 1) -th data is performed in the same manner as the write process for the X-th data. Before the data write (X + 1) is performed as write processing for the (X + 1) -th data, the prelog (X + 1) corresponding to the data write (X + 1) is prelogged in the NAND memory 12. Stored as 220A. At this time, for example, the information y2 is stored as the free log 220A. Data writing (X + 1) is performed in the data storage area 125 of the NAND memory 12. FIG. 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, the information y2 is stored as the post log 220B. The information y2 stored as the post log 220B is the same as the information y2 stored as the free log 220A.

단계(S12)에서 스냅샷 저장 조건이 충족되면(단계 S12에서 예), 관리 정보 관리 유닛(152)은, DRAM(11)의 임시 저장 영역(111)에 있는 적어도 비휘발성 테이블을 포함하는 관리 정보를 NAND 메모리(12)의 관리 정보 저장 영역(126)에 스냅샷(210)으로서 저장한다(단계 S18). 관리 정보 관리 유닛(152)은 메모리 시스템(10)의 종료를 지시받았는지 여부를 결정한다(단계 S19). 메모리 시스템(10)의 종료를 지시받지 못하면, 관리 정보 관리 유닛(152)은 단계 S12로 복귀한다. 메모리 시스템(10)의 종료를 지시받으면, 처리가 종료된다.If the snapshot storage condition is satisfied in step S12 (YES in step S12), the management information management unit 152 includes management information including at least a nonvolatile table in the temporary storage area 111 of the DRAM 11. Is stored as a snapshot 210 in the management information storage area 126 of the NAND memory 12 (step S18). The management information management unit 152 determines whether or not the end of the memory system 10 has been instructed (step S19). If it is not instructed to end the memory system 10, the management information management unit 152 returns to step S12. When instructed to terminate the memory system 10, the process ends.

이하, 관리 정보 복구 유닛(155)에 의해 수행되는 메모리 시스템(10)의 관리 정보의 복구 처리를 설명한다. 도 14는 메모리 시스템(10)의 관리 정보의 복구 처리 절차의 일 예의 흐름도이다. 전술한 바와 같이, 메모리 시스템(10)은 호스트 장치에 연결되고, 호스트 장치의 제2 저장 디바이스로서 동작한다.Hereinafter, the recovery process of the management information of the memory system 10 performed by the management information recovery unit 155 will be described. 14 is a flowchart of an example of a recovery processing procedure of management information of the memory system 10. As described above, the memory system 10 is connected to the host device and operates as a second storage device of the host device.

먼저, 호스트 장치의 전원은, 예를 들어, 순단으로부터의 복구 때문에, 턴온되고, 기동 명령어가 메모리 시스템(10)에 발행된다(단계 S31). 관리 정보 복구 유닛(155)은 NAND 메모리(12)의 관리 정보 저장 영역(126)에 있는 루트 포인터(240)와 제2 포인터(230)를 순차적으로 판독하고(단계 S32), 스냅샷(210)과 프리 로그(220A)와 포스트 로그(220B)가 저장되어 있는 블록들의 어드레스들을 획득하고(단계 S33), 스냅샷(210)을 획득한다(단계 S34).First, the power supply of the host apparatus is turned on, for example, because of recovery from a step, and a start command is issued to the memory system 10 (step S31). The management information recovery unit 155 sequentially reads the root pointer 240 and the second pointer 230 in the management information storage area 126 of the NAND memory 12 (step S32), and the snapshot 210. And the addresses of the blocks in which the prelog 220A and the post log 220B are stored (step S33), and a snapshot 210 is obtained (step S34).

이후, 관리 정보 복구 유닛(155)은 NAND 메모리(12)의 프리 로그(220A)와 포스트 로그(220B)를 참조하여 순단이 발생하였는지 여부를 결정한다(단계 S35). 예를 들어, 프리 로그(220A)와 포스트 로그(220B)가 NAND 메모리(12)에 존재하면, 관리 정보 복구 유닛(155)은 순단이 발생하였다고 결정한다. 순단 발생 여부의 결정 은 예를 들어 프리 로그(220A)와 포스트 로그(220B)를 비교함으로써 수행될 수 있다. 제1 실시예에서, 프리 로그(220A)와 포스트 로그(220B)는 동일한 정보를 저장한다. 따라서, 예를 들어, 프리 로그(220A)로서 저장된 페이지들의 수와 포스트 로그(220B)로서 저장된 페이지들의 수가 서로 일치하지 않으면, 이는 순단이 발생하였음을 의미한다. 순단 발생은, ECC 에러의 존재 또는 부재, 프리 로그(220A)로서 저장된 페이지의 데이터, 포스트 로그(220B)로서 저장된 페이지의 데이터에 기초하여 결정될 수도 있다.Thereafter, the management information recovery unit 155 refers to the prelog 220A and the post log 220B of the NAND memory 12 to determine whether or not stepping has occurred (step S35). For example, if the pre log 220A and the post log 220B exist in the NAND memory 12, the management information recovery unit 155 determines that stepping has occurred. Determination of whether the step is generated may be performed by comparing the pre-log 220A and the post log 220B, for example. In the first embodiment, the pre log 220A and the post log 220B store the same information. Thus, for example, if the number of pages stored as the free log 220A and the number of pages stored as the post log 220B do not coincide with each other, this means that stepping has occurred. The abrupt occurrence may be determined based on the presence or absence of an ECC error, the data of the page stored as the free log 220A, and the data of the page stored as the post log 220B.

순단이 발생하였다면(단계 S35에서 예), 관리 정보 복구 유닛(155)은, NAND 메모리(12)의 최신 프리 로그(220A)와 최신 포스트 로그(220B)에 기초하여, 순단이 발생한 타이밍을 체크한다(단계 S36).If stepping has occurred (YES in step S35), the management information recovery unit 155 checks the timing at which stepping has occurred, based on the latest free log 220A and the latest post log 220B of the NAND memory 12. (Step S36).

또한, 관리 정보 복구 유닛(155)은, NAND 메모리(12)의 최신 프리 로그(220A)와 최신 포스트 로그(220B)에 기초하여, 순단이 발생한 타이밍을 체크한다(단계 S36). 관리 정보 복구 유닛(155)은 순단이 발생한 타이밍이 포스트 로그(220B)의 저장 동안인지 여부를 결정한다(단계 S37). 예를 들어, 포스트 로그(220B)의 최종 페이지가 기입되고 있는 경우, 이 최종 페이지는 판독될 수 없다. 따라서, 포스트 로그(220B)의 저장 동안 순단이 발생하였다고 결정한다. 또한, 포스트 로그(220B)의 저장 동안 순단이 발생하였기 때문에, 순단으로 인해 포스트 로그(220B)에서 하위 페이지의 데이터가 파괴되었을 수 있다. 프리 로그(220A)의 최종 페이지가 기입되는 중이라면, 이 최종 페이지는 판독될 수 없다. 따라서, 프리 로그(220A)의 저장 동안 순단이 발생하였다고 결정한다. 또한, 프리 로그(220A)의 저장 동안 순단이 발생하였기 때문에, 순단으로 인해 프리 로그(220A)에서 하위 페이지의 데이터가 파괴되었을 수 있다. 프리 로그(220A)의 최종 페이지에 로그가 기입되고 포스트 로그(220B)의 과거 페이지에 로그가 기입되지 않으면, 데이터의 기입 동안 순단이 발생하였다고 결정한다.The management information recovery unit 155 also checks the timing at which the step is generated, based on the latest prelog 220A and the latest post log 220B of the NAND memory 12 (step S36). The management information recovery unit 155 determines whether or not the timing at which the step is generated is during the storage of the post log 220B (step S37). For example, if the last page of post log 220B is being written, this last page cannot be read. Thus, it is determined that patience occurred during the storage of postlog 220B. In addition, since stepping occurred during the storage of the post log 220B, the stepping may cause the data of the lower page in the post log 220B to be destroyed. If the last page of the free log 220A is being written, this last page cannot be read. Thus, it is determined that patience occurred during the storage of prelog 220A. In addition, since the step is generated during the storage of the free log 220A, the data of the lower page may be destroyed in the free log 220A due to the step. If the log is written to the last page of the free log 220A and the log is not written to the past page of the post log 220B, it is determined that stepping occurred during the writing of the data.

관리 정보 복구 유닛(155)은, 순단이 발생한 타이밍이 포스트 로그(220B)의 저장 동안이라고 결정하면(단계 S37에서 예), 최신 프리 로그(220A)를 선택한다(단계 S38). 반면에, 관리 정보 복구 유닛(155)은, 순단이 발생한 타이밍이 포스트 로그(220B)의 저장 동안이 아니라고 결정하면(단계 S37에서 아니오), 관리 정보 복구 유닛(155)은 저장을 위해 완료되어 있는 최신 포스트 로그(220B)를 선택한다(단계 S39). 다시 말하면, 프리 로그(220A)의 최종 페이지가 기입중이거나 프리 로그(220A)의 최종 페이지에 로그가 기입되고 포스트 로그(220B)의 최종 페이지에 로그가 기입되지 않으면, 최신 포스트 로그(220B)가 선택된다.If the management information recovery unit 155 determines that the timing at which the step is generated is during the storage of the post log 220B (YES in step S37), the management information recovery unit 155 selects the latest free log 220A (step S38). On the other hand, if the management information recovery unit 155 determines that the timing at which the step is generated is not during the storage of the post log 220B (NO in step S37), the management information recovery unit 155 is completed for storage. The latest post log 220B is selected (step S39). In other words, if the last page of the free log 220A is being written or if the log is written to the last page of the free log 220A and the log is not written to the last page of the post log 220B, then the latest post log 220B is Is selected.

이후, 관리 정보 복구 유닛(155)은, 로그 저장 블록으로부터, 선택된 로그(프리 로그(220A) 또는 포스트 로그(220B))를 획득하고, DRAM(11)의 작업 영역(112)에 그 로그를 확장시킨다(단계 S40). 관리 정보 복구 유닛(155)은 로그들을 가장 오래된 로그부터 순서대로 스냅샷(210)에 반영하여 관리 정보(비휘발성 테이블)를 복구한다.(단계 S41). 후속하여, 관리 정보 복구 유닛(155)은 복구 처리를 NAND 메모리(12)의 라이트-원스 블록(로그 저장 블록)에 적용한다(단계 S42). 일시 중단된 처리의 영향은, NAND 메모리(12)의 라이트-원스 블록의 파괴의 존재 또는 부재를 결정하고 복구 처리를 수행함으로써 제거된다. 파괴의 존재 또는 부 재는, 관리 정보의 내용과 라이트-원스 상태를 라이트-원스 블록과 비교함으로써 결정된다. 관리 정보의 복구 및 복구 처리가 종료되는 단계에서, 관리 정보 복구 유닛(155)은 스냅샷(210)을 다시 취하여 관리 정보 저장 영역(126)에 저장한다(단계 S43). 관리 정보 복구 유닛(155)은 블록들을 비우도록 과거의 스냅샷과 로그를 변경하고(스냅샷과 로그를 개방 또는 폐기하고), 관리 정보의 복구 처리가 완료된다. 비워진 블록(free block)이란 애플리케이션이 아직 할당되지 않은 블록을 의미한다. 애플리케이션이 비워진 블록에 할당되면, 비워진 블록은 소거 후에 사용된다.Thereafter, the management information recovery unit 155 obtains the selected log (pre-log 220A or post log 220B) from the log storage block, and expands the log in the work area 112 of the DRAM 11. (Step S40). The management information recovery unit 155 restores the management information (non-volatile table) by applying the logs to the snapshot 210 in order from the oldest log (step S41). Subsequently, the management information recovery unit 155 applies the recovery processing to the write-once block (log storage block) of the NAND memory 12 (step S42). The effect of the suspended process is eliminated by determining the presence or absence of destruction of the write-once block of the NAND memory 12 and performing the repair process. The presence or absence of the destruction is determined by comparing the contents of the management information and the write-once state with the write-once block. At the end of the recovery and recovery process of the management information, the management information recovery unit 155 takes the snapshot 210 again and stores it in the management information storage area 126 (step S43). The management information recovery unit 155 changes past snapshots and logs (opening or discarding the snapshots and logs) to empty the blocks, and the recovery processing of the management information is completed. A free block is a block in which the application has not yet been allocated. When an application is assigned to an empty block, the empty block is used after erasing.

반면에, 순단이 발생하지 않았다면(단계 S35에서 아니오), 관리 정보 복구 유닛(155)은 DRAM(11)의 임시 저장 영역(111)에 관리 정보를 복구하고(단계 S44), 관리 정보 복구 처리가 종료된다.On the other hand, if no step has occurred (NO in step S35), the management information recovery unit 155 restores the management information to the temporary storage area 111 of the DRAM 11 (step S44), and the management information recovery process is performed. It ends.

관리 정보 복구 유닛(155)은, 순단으로 인해 파괴된 로그들의 존재 또는 부재에 상관없이, 프리 로그(220A)와 포스트 로그(220B) 중 하나를 선택할 수 있고, 프리 로그(220A)로서 저장된 페이지들의 수와 포스트 로그(220B)로서 저장된 페이지들의 수에 기초하여 관리 정보를 복구할 수 있다. 예를 들어, 프리 로그(220A)로서 저장된 페이지들의 수와 포스트 로그(220B)로서 저장된 페이지들의 수가 동일하다면, 관리 정보 복구 유닛(155)은 프리 로그(220A)를 선택하고 관리 정보를 복구한다. 프리 로그(220A)로서 저장된 페이지들의 수가 포스트 로그(220B)로서 저장된 페이지들의 수보다 크다면, 관리 정보 복구 유닛(155)은 포스트 로그(220B)를 선택하고 관리 정보를 복구한다.The management information recovery unit 155 can select one of the free log 220A and the post log 220B, regardless of the presence or absence of the logs destroyed by the step, and of the pages stored as the free log 220A. The management information can be recovered based on the number and the number of pages stored as the post log 220B. For example, if the number of pages stored as the free log 220A and the number of pages stored as the post log 220B are the same, the management information recovery unit 155 selects the free log 220A and restores the management information. If the number of pages stored as the free log 220A is greater than the number of pages stored as the post log 220B, the management information recovery unit 155 selects the post log 220B and restores the management information.

도 15A 내지 도 15D는 메모리 셀의 데이터와 메모리 셀의 임계 전압과 NAND 메모리에서의 기입 순서 간의 관계의 예의 도이다. 먼저, 소거 동작을 수행할 때 메모리 셀의 데이터를 0으로 설정한다. 후속하여, 도 15A에 도시한 바와 같이, 하위 페이지에 기입을 수행하는 경우, 메모리 셀의 데이터가 데이터 "0" 및 데이터 "2"로 변경된다. 도 15B에 도시한 바와 같이, 상위 페이지에 기입을 행하기 전에, 실제 데이터의 임계 전압 이하의 데이터가 인접 셀에 기입된다. 이어서, 데이터 "2"의 임계 전압의 분포가 셀에 기입된 데이터에 의해 확장된다. 이후, 상위 페이지의 데이터가 기입되는 경우, 메모리 셀의 데이터가, 도 15C에 도시한 바와 같이 초기 임계 전압을 갖는 데이터 "0" 내지 "3"으로 변경된다. 제1 실시예에서는, 메모리 셀의 데이터가 저 임계 전압으로부터 고 임계 전압으로 규정된다.15A-15D are diagrams of examples of the relationship between the data of a memory cell and the threshold voltage of the memory cell and the writing order in the NAND memory. First, data of a memory cell is set to zero when an erase operation is performed. Subsequently, as shown in Fig. 15A, when writing to the lower page, the data of the memory cell is changed to data " 0 " and data " 2 ". As shown in Fig. 15B, before writing to the upper page, data below the threshold voltage of the actual data is written to the adjacent cell. The distribution of the threshold voltage of data "2" is then expanded by the data written in the cell. Subsequently, when the data of the upper page is written, the data of the memory cell is changed to data "0" to "3" having initial threshold voltages as shown in Fig. 15C. In the first embodiment, the data of the memory cell is defined from the low threshold voltage to the high threshold voltage.

NAND 메모리(12)의 기입 처리를 설명한다. 도 15D에 도시한 바와 같이, 블록의 소스 라인에 가까운 메모리 셀로부터 페이지들의 각각에 대하여 기입 동작을 수행한다. 도 15D에서는, 설명의 편의상, 4개의 워드 라인을 도시하고 있다.The write process of the NAND memory 12 will be described. As shown in Fig. 15D, a write operation is performed for each of the pages from the memory cells close to the source line of the block. In FIG. 15D, four word lines are shown for convenience of explanation.

(원숫자 1로 표시된) 제1 기입시, 1비트 데이터가 메모리 셀(1)의 하위 페이지에 기입된다. (원숫자 2로 표시된) 제2 기입시, 1비트 데이터가 워드 방향으로 메모리 셀(1)에 인접하는 메모리 셀(2)의 하위 페이지에 기입된다. (원숫자 3으로 표시된) 제3 기입시, 1비트 데이터가 비트 방향으로 메모리 셀(1)에 인접하는 메모리 셀(3)의 하위 페이지에 기입된다. (원숫자 4로 표시된) 제4 기입시, 1비트 데이터가 메모리 셀(1)에 대각선 방향으로 인접하는 메모리 셀(4)의 하위 페이지에 기입된다. In the first write (indicated by the original numeral 1), one bit of data is written into the lower page of the memory cell 1. In the second write (indicated by the original numeral 2), one-bit data is written in the lower page of the memory cell 2 adjacent to the memory cell 1 in the word direction. In the third write (indicated by the original numeral 3), one-bit data is written in the lower page of the memory cell 3 adjacent to the memory cell 1 in the bit direction. In the fourth write (indicated by the original numeral 4), one-bit data is written to the lower page of the memory cell 4 diagonally adjacent to the memory cell 1.

(원숫자 5로 표시된) 제5 기입시, 1비트 데이터가 메모리 셀(1)의 상위 페이지에 기입된다. (원숫자 6으로 표시된) 제6 기입시, 1비트 데이터가 워드 방향으로 메모리 셀(1)에 인접하는 메모리 셀(2)의 상위 페이지에 기입된다. (원숫자 7로 표시된) 제7 기입시, 1비트 데이터가 비트 방향으로 메모리 셀(3)에 인접하는 메모리 셀(5)의 하위 페이지에 기입된다. (원숫자 8로 표시된) 제8 기입시, 1비트 데이터가 메모리 셀(3)에 대각선 방향으로 인접하는 메모리 셀(6)의 하위 페이지에 기입된다. In the fifth write (indicated by the original numeral 5), one bit of data is written into the upper page of the memory cell 1. In the sixth write (indicated by the original numeral 6), one-bit data is written in the upper page of the memory cell 2 adjacent to the memory cell 1 in the word direction. In the seventh write (indicated by the original numeral 7), one-bit data is written in the lower page of the memory cell 5 adjacent to the memory cell 3 in the bit direction. In the eighth write (indicated by the original numeral 8), one-bit data is written in the lower page of the memory cell 6 diagonally adjacent to the memory cell 3.

(원숫자 9로 표시된) 제9 기입시, 1비트 데이터가 메모리 셀(3)의 상위 페이지에 기입된다. (원숫자 10으로 표시된) 제10 기입시, 1비트 데이터가 워드 방향으로 메모리 셀(3)에 인접하는 메모리 셀(4)의 상위 페이지에 기입된다. (원숫자 11로 표시된) 제11 기입시, 1비트 데이터가 비트 방향으로 메모리 셀(5)에 인접하는 메모리 셀(7)의 하위 페이지에 기입된다. (원숫자 12로 표시된) 제12 기입시, 1비트 데이터가 메모리 셀(5)에 대각선 방향으로 인접하는 메모리 셀(8)의 하위 페이지에 기입된다.In the ninth writing (indicated by the original numeral 9), one bit of data is written into the upper page of the memory cell 3. In the tenth writing (indicated by the original numeral 10), one-bit data is written in the upper page of the memory cell 4 adjacent to the memory cell 3 in the word direction. In the eleventh writing (indicated by the original numeral 11), one bit of data is written in the lower page of the memory cell 7 adjacent to the memory cell 5 in the bit direction. In the twelfth writing (indicated by the original numeral 12), one-bit data is written to the lower page of the memory cell 8 diagonally adjacent to the memory cell 5.

(원숫자 13으로 표시된) 제13 기입시, 1비트 데이터가 메모리 셀(5)의 상위 페이지에 기입된다. (원숫자 14로 표시된) 제14 기입시, 1비트 데이터가 워드 방향으로 메모리 셀(5)에 인접하는 메모리 셀(6)의 상위 페이지에 기입된다. (원숫자 15로 표시된) 제15 기입시, 1비트 데이터가 워드 방향으로 메모리 셀(7)의 상위 페이지에 기입된다. (원숫자 16으로 표시된) 제16 기입시, 1비트 데이터가 워드 방향으로 메모리 셀(7)에 인접하는 메모리 셀(8)의 상위 페이지에 기입된다.In the thirteenth writing (indicated by the original numeral 13), one bit of data is written into the upper page of the memory cell 5. In the fourteenth write (indicated by the original numeral 14), one-bit data is written in the upper page of the memory cell 6 adjacent to the memory cell 5 in the word direction. In the fifteenth writing (indicated by the original numeral 15), one-bit data is written to the upper page of the memory cell 7 in the word direction. In the sixteenth writing (indicated by the original numeral 16), one bit of data is written in the upper page of the memory cell 8 adjacent to the memory cell 7 in the word direction.

관리 정보의 복구를 위해 사용되는 로그를 선택하는 방법의 특정 예를 설명한다. 도 16A 내지 도 17G는 관리 정보의 복구를 위해 사용되는 로그를 선택하는 방법을 설명하기 위한 도이다. 도 16A 내지 도 17G에서, 프리 로그 및 포스트 로그는 프리 로그를 위한 블록(각 도에서의 좌측 블록)과 포스트 로그를 위한 블록(각 도에서의 우측 블록)의 페이지들의 각각에 대하여 저장된다. 도 16A 내지 도 17G에서 하나의 물리적 블록에 있는 하나의 페이지가 도 15A 내지 도 15D에 대응한다. 다시 말하면, 페이지들(1 내지 4, 7, 8, 11, 12)은 도 15A 내지 도 15D에 도시된 하위 페이지들이다. 페이지들(5, 6, 9, 10, 13 내지 16)은 도 15A 내지 도 15D에 도시된 상위 페이지들이다. 프리 로그를 위한 블록과 포스트 로그를 위한 블록에서, 이 블록들의 행들의 각각이 하나의 페이지에 대응한다. 도 16A 내지 도 17G에서, 페이지들은 설명의 편의상 하위 페이지들과 상위 페이지들로 분리되어 있다. 하위 페이지들과 상위 페이지들의 조합에 의해 하나의 물리적 블록이 형성된다.A specific example of how to select a log used for recovery of management information will be described. 16A to 17G are diagrams for explaining a method of selecting a log used for recovery of management information. In Figures 16A-17G, the prelog and postlog are stored for each of the pages of a block for prelog (left block in each view) and a block for postlog (right block in each view). One page in one physical block in FIGS. 16A-17G corresponds to FIGS. 15A-15D. In other words, the pages 1 to 4, 7, 8, 11, and 12 are lower pages shown in Figs. 15A to 15D. The pages 5, 6, 9, 10, 13 to 16 are the upper pages shown in Figs. 15A to 15D. In the block for the free log and the block for the post log, each of the rows of these blocks corresponds to one page. 16A to 17G, pages are divided into lower pages and upper pages for convenience of description. One physical block is formed by a combination of lower pages and upper pages.

도 16A 내지 도 17G에서, 정상적으로 저장된 로그는 로그 x1로 표시되고, 순단으로 인해 파괴된 로그는 로그 y1로 표시되며, 현재 기입되고 있는 로그는 로그 z1로 표시된다. 로그 z1의 기입 동안 순단이 발생하였고 로그 y1가 파괴되었기 때문에, 로그 z1의 페이지에 대응하는 메모리 셀과 로그 y1의 페이지에 대응하는 메모리 셀은 동일하다. 로그 y1의 페이지는 하위 측의 페이지(하위 페이지)고, 로그 z1의 페이지는 상위 측의 페이지(상위 페이지)이다. 블록들의 각각의 로그들(페이지들) 중에서, 원으로 둘러싸인 로그들은 관리 정보의 복구를 위해 사용되는 로그 들로서 선택된 로그들이다.In Figs. 16A to 17G, normally stored logs are indicated by log x1, logs destroyed due to stepping are denoted by log y1, and logs currently being written are indicated by log z1. Since stepping occurred during the writing of log z1 and log y1 was destroyed, the memory cell corresponding to the page of log z1 and the memory cell corresponding to the page of log y1 are the same. The page of log y1 is the page of the lower side (lower page), and the page of log z1 is the page of the upper side (upper page). Of the logs (pages) of each of the blocks, the circled logs are the logs selected as the logs used for recovery of management information.

도 16A는 정상 시(전원의 비정상적 분리가 발생하지 않고 전원이 턴오프되어 있을 때)의 프리 로그와 포스트 로그의 도이다. 도 16B 내지 도 16D 및 도 17E 내지 도 17G는 순단이 발생한 경우의 프리 로그와 포스트 로그의 도이다.16A is a diagram of pre-log and post-log at normal time (when power supply is turned off without abnormal disconnection of power source). 16B to 16D and 17E to 17G are diagrams of prelog and postlog in the case where stepping occurs.

도 16A에는, 스냅샷(210)을 저장하지 않고서 메모리 시스템(10)의 전원이 턴오프된 경우 NAND 메모리(12)에 저장된 프리 로그와 포스트 로그가 도시되어 있다. 도 16A의 경우, 데이터가 하위 페이지(페이지 1 내지 4)에만 기입되기 때문에, 하위 페이지의 기입 동안 순단이 발생하더라도, 하위 페이지의 데이터 파괴가 발생하지 않는다. 도 16A에 도시한 바와 같이, 제1 실시예에서, 프리 로그와 포스트 로그는 서로 다른 블록들의 동일한 페이지에 저장된다. 따라서, 전원이 정상적인 때에 턴오프되는 경우, 프리 로그의 최종 페이지와 포스트 로그의 최종 페이지가 동일한 페이지 위치에 있다. 따라서, 이 경우, 프리 로그를 이용함으로써 관리 정보가 복구된다. 도 16A에 도시한 정상적인 때에, 관리 정보는 프리 로그 대신에 포스트 로그를 이용하여 복구될 수도 있다.16A shows the prelog and postlog stored in NAND memory 12 when power to memory system 10 is turned off without storing snapshot 210. In the case of Fig. 16A, since data is written only to the lower pages (pages 1 to 4), even if the step occurs during the writing of the lower page, no data destruction of the lower page occurs. As shown in Fig. 16A, in the first embodiment, the prelog and postlog are stored in the same page of different blocks. Therefore, when the power is turned off at the normal time, the last page of the prelog and the last page of the postlog are at the same page position. Therefore, in this case, management information is recovered by using the free log. At the normal time shown in Fig. 16A, the management information may be recovered using the post log instead of the free log.

도 16B에서는, 로그 기입(1)이 프리 로그로서 수행되는 동안 순단이 발생한다. 도 16B에 도시한 바와 같이, 프리 로그의 상위 페이지(페이지 6)의 기입 동안 순단이 발생하면, 기입되고 있는 상위 페이지에 대응하는 하위 페이지(프리 로그의 페이지 2)에서 하위 페이지의 데이터가 파괴된다. 다시 말하면, 도 16B의 경우에, 프리 로그의 저장 동안 순단이 발생하기 때문에, 프리 로그 측의 블록에 로그 y1가 생성된다. 이 경우, 로그 기입(1)에 대응하는 로그 z1(현재 저장되고 있는 로그) 는 프리 로그 측의 블록에 저장된다. 반면에, 로그 기입(1)에 대응하는 포스트 로그는 포스트 로그 측의 블록에 저장되지 않는다. 따라서, 프리 로그의 최종 페이지와 포스트 로그의 최종 페이지는 서로 다른 정보를 포함한다. 이 경우, 관리 정보는 포스트 로그를 이용함으로써 복구된다.In Fig. 16B, stepping occurs while log writing 1 is performed as a free log. As shown in Fig. 16B, if stepping occurs during the writing of the upper page (page 6) of the free log, the data of the lower page is destroyed in the lower page (page 2 of the free log) corresponding to the upper page being written. . In other words, in the case of Fig. 16B, since stepping occurs during storage of the prelog, log y1 is generated in the block on the prelog side. In this case, the log z1 (the log currently stored) corresponding to the log write 1 is stored in the block on the free log side. On the other hand, the post log corresponding to the log write 1 is not stored in the block on the post log side. Thus, the last page of the prelog and the last page of the postlog contain different information. In this case, management information is recovered by using a post log.

도 16C에서는, 로그 기입(1)이 포스트 로그로서 수행되는 동안 순단이 발생한다. 도 16C에 도시한 바와 같이, 포스트 로그의 상위 페이지(페이지 6)의 기입 동안 순단이 발생하면, 기입되고 있는 상위 페이지에 대응하는 하위 페이지(포스트 로그의 페이지 2)에서 하위 페이지의 데이터가 파괴된다. 다시 말하면, 도 16C의 경우에, 포스트 로그의 저장 동안 순단이 발생하기 때문에, 포스트 로그 측의 블록에 로그 y1이 생성된다. 이 경우, 로그 기입(1)에 대응하는 로그 z1가 포스트 로그 측의 블록에 저장된다. 로그 기입(1)에 대응하는 프리 로그는 프리 로그 측의 블록에 이미 저장되어 있다. 따라서, 프리 로그의 최종 페이지와 포스트 로그의 최종 페이지가 동일하다. 이 경우, 관리 정보는 프리 로그를 이용함으로써 복구된다.In Fig. 16C, stepping occurs while log writing 1 is performed as a post log. As shown in Fig. 16C, when stepping occurs during writing of the upper page (page 6) of the post log, the data of the lower page is destroyed in the lower page (page 2 of the post log) corresponding to the upper page being written. . In other words, in the case of Fig. 16C, since stepping occurs during storage of the post log, log y1 is generated in the block on the post log side. In this case, the log z1 corresponding to the log write 1 is stored in the block on the post log side. The prelog corresponding to the log write 1 is already stored in the block on the prelog side. Therefore, the last page of the prelog and the last page of the postlog are the same. In this case, the management information is recovered by using the free log.

도 16D에서는, 로그 기입(1)이 프리 로그로서 수행된 후에, 프리 로그에 대응하는 데이터 기입 동안 에러가 발생한다. 순단은 로그 기입(2)이 데이터 기입의 재기입 처리에 대응하는 프리 로그로서 수행되는 동안 발생한다. 도 16D에 도시한 바와 같이, 프리 로그의 상위 페이지(페이지 6)의 기입 동안 순단이 발생하면, 기입되고 있는 상위 페이지에 대응하는 하위 페이지(프리 로그의 페이지 2)에서 하위 페이지의 데이터가 파괴된다. 다시 말하면, 도 16D의 경우에, 프리 로그의 저장 동안 순단이 발생하기 때문에, 프리 로그 측의 블록에 로그 y1이 생성된다. 이 경우, 로그 기입(1)에 대응하는 로그 x1 및 로그 기입(2)에 대응하는 로그 z1은 프리 로그 측의 블록에 저장된다. 반면에, 로그 기입(1)에 대응하는 포스트 로그 및 로그 기입(2)에 대응하는 포스트 로그는 포스트 로그 측의 블록에 저장되지 않는다. 따라서, 프리 로그의 최종 페이지와 포스트 로그의 최종 페이지가 서로 다르다. 이 경우, 관리 정보는 포스트 로그를 이용함으로써 복구된다.In Fig. 16D, after log writing 1 is performed as a free log, an error occurs during data writing corresponding to the free log. Stepping occurs while log writing 2 is performed as a free log corresponding to the rewriting process of data writing. As shown in Fig. 16D, when stepping occurs during the writing of the upper page (page 6) of the free log, the data of the lower page is destroyed in the lower page (page 2 of the free log) corresponding to the upper page being written. . In other words, in the case of Fig. 16D, since stepping occurs during the storage of the prelog, log y1 is generated in the block on the prelog side. In this case, the log x1 corresponding to the log write 1 and the log z1 corresponding to the log write 2 are stored in a block on the free log side. On the other hand, the post log corresponding to the log write 1 and the post log corresponding to the log write 2 are not stored in the block on the post log side. Therefore, the last page of the free log and the last page of the post log are different. In this case, management information is recovered by using a post log.

도 17E에서는, 로그 기입(1)이 프리 로그로서 수행된 후, 프리 로그에 대응하는 데이터 기입 동안 에러가 발생하고, 로그 기입(2)이 데이터 기입의 재기입 처리에 대응하는 프리 로그로서 수행된다. 게다가, 도 17E에서는, 로그 기입(2)이 데이터 기입의 재기입 처리에 대응하는 포스트 로그로서 수행된 후, 로그 기입(1)이 처음의 데이터 기입에 대응하는 포스트 로그로서 수행되는 동안 순단이 발생한다. 도 17E에 도시한 바와 같이, 포스트 로그의 상위 페이지(페이지 6)의 기입 동안 순단이 발생하면, 기입되고 있는 상위 페이지에 대응하는 하위 페이지(포스트 로그의 페이지 2)에서 하위 페이지의 데이터가 파괴된다. 다시 말하면, 도 17E의 경우에, 포스트 로그의 저장 동안 순단이 발생하기 때문에, 포스트 로그 측의 블록에 로그 y1이 생성된다. 이 경우, 로그 기입(1)에 대응하는 로그 x1 및 로그 기입(2)에 대응하는 x1은 프리 로그 측의 블록에 저장된다. 반면에, 로그 기입(2)에 대응하는 로그 x1 및 로그 기입(1)에 대응하는 로그 z1은 포스트 로그 측의 블록에 저장된다. 따라서, 프리 로그의 최종 페이지와 포스트 로그의 최종 페이지가 동일하다. 관리 정보는 프리 로그를 이용함으로써 복구된다.In Fig. 17E, after log writing 1 is performed as a free log, an error occurs during data writing corresponding to the free log, and log writing 2 is performed as a free log corresponding to the rewriting process of data writing. . In addition, in Fig. 17E, after the log write 2 is performed as the post log corresponding to the rewrite process of the data write, a step is generated while the log write 1 is performed as the post log corresponding to the first data write. do. As shown in Fig. 17E, if stepping occurs during writing of the upper page (page 6) of the post log, the data of the lower page is destroyed in the lower page (page 2 of the post log) corresponding to the upper page being written. . In other words, in the case of Fig. 17E, since stepping occurs during the storage of the post log, log y1 is generated in the block on the post log side. In this case, the log x1 corresponding to the log write 1 and the x1 corresponding to the log write 2 are stored in the block on the free log side. On the other hand, the log x1 corresponding to the log write 2 and the log z1 corresponding to the log write 1 are stored in a block on the post log side. Therefore, the last page of the prelog and the last page of the postlog are the same. Management information is recovered by using the free log.

도 17F에서는, 2 페이지에 걸쳐 로그 기입(1)이 프리 로그로서 수행되는 동안 순단이 발생한다. 도 17F에 도시한 바와 같이, 프리 로그의 상위 페이지(페이지 5와 6)의 기입 동안 순단이 발생하면, 기입되고 있는 상위 페이지에 대응하는 하위 페이지(포스트 로그의 페이지 1과 2)에서는 하위 페이지의 데이터가 파괴된다. 다시 말하면, 도 17F의 경우에, 프리 로그의 저장 동안 순단이 발생하기 때문에, 프리 로그 측의 블록에 로그 y1(예를 들어, 페이지 2)이 생성된다. 이 경우, 로그 기입(1)에 대응하는 로그 x1(전 단계의 페이지) 및 로그 z1(후 단계의 페이지)이 프리 로그 측의 블록에 저장된다. 반면에, 로그 기입(1)에 대응하는 포스트 로그는 포스트 로그 측의 블록에 저장되지 않는다. 따라서, 프리 로그의 최종 페이지와 포스트 로그의 최종 페이지가 서로 다르다. 관리 정보는 포스트 로그를 이용함으로써 복구된다.In Fig. 17F, stepping occurs while log writing 1 is performed as a free log over two pages. As shown in Fig. 17F, when stepping occurs during the writing of the upper pages (pages 5 and 6) of the free log, the lower pages (pages 1 and 2 of the post log) corresponding to the upper pages being written are displayed. The data is destroyed. In other words, in the case of Fig. 17F, since stepping occurs during storage of the prelog, log y1 (e.g., page 2) is generated in the block on the prelog side. In this case, log x1 (page in the previous step) and log z1 (page in the next step) corresponding to the log write 1 are stored in the block on the free log side. On the other hand, the post log corresponding to the log write 1 is not stored in the block on the post log side. Therefore, the last page of the free log and the last page of the post log are different. Management information is recovered by using a post log.

도 17G에서는, 2 페이지에 걸쳐 로그 기입(1)이 포스트 로그로서 수행되는 동안 순단이 발생한다. 도 17G에 도시한 바와 같이, 포스트 로그의 상위 페이지(페이지 6과 7)의 기입 동안 순단이 발생하면, 기입되고 있는 상위 페이지에 대응하는 하위 페이지(포스트 로그의 페이지 1과 2))에서는 하위 페이지의 데이터가 파괴된다. 다시 말하면, 도 17G의 경우에, 포스트 로그의 저장 동안 순단이 발생하기 때문에, 포스트 로그 측의 블록에 로그 y1(예를 들어, 페이지 2)이 생성된다. 이 경우, 로그 기입(1)에 대응하는 로그 x1 및 로그 z1은 포스트 로그 측의 블록에 저장된다. 로그 기입(1)에 대응하는 포스트 로그는 프리 로그 측의 블록에서 2 페이지에 걸쳐 이미 저장되어 있다. 따라서, 프리 로그의 최종 페이지와 포스트 로 그의 최종 페이지는 동일하다. 관리 정보는 프리 로그를 이용함으로써 복구된다.In Fig. 17G, stepping occurs while log writing 1 is performed as a post log over two pages. As shown in Fig. 17G, if stepping occurs during writing of the upper pages (pages 6 and 7) of the post log, the lower pages corresponding to the upper pages being written (pages 1 and 2 of the post log) are lower pages. Data is destroyed. In other words, in the case of Fig. 17G, since stepping occurs during the storage of the post log, log y1 (e.g., page 2) is generated in the block on the post log side. In this case, the log x1 and log z1 corresponding to the log write 1 are stored in a block on the post log side. The post log corresponding to the log write 1 is already stored over two pages in the block on the free log side. Thus, the last page of the prelog and the last page of the postlog are the same. Management information is recovered by using the free log.

제1 실시예에서, 전원 등의 비정상적 분리 후에 메모리 시스템(10)이 리셋되면, 관리 정보 복구 유닛(155)은 스냅샷을 다시 취하고, 관리 정보의 복구와 복구 처리가 완료되는 스테이지에서 그 스냅샷을 저장한다. 결국, 과거의 로그가 개방되어 있기 때문에, 순단 등의 영향으로 인해 파괴된 로그가 유지되지 않는다. 메모리 시스템(10)의 신뢰성을 개선할 수 있다.In the first embodiment, if the memory system 10 is reset after abnormal separation of power supply or the like, the management information recovery unit 155 takes the snapshot again, and the snapshot at the stage where the recovery and recovery processing of the management information is completed. Save it. As a result, since the log of the past is open, the log that is destroyed by the influence of stepping or the like is not maintained. The reliability of the memory system 10 may be improved.

제2 2nd 실시예Example

도 18은 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보의 내용의 일 예의 개략적인 도이다. 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보는, 소정 순간의 비휘발성 테이블의 내용인 스냅샷(210), 스냅샷이 다음 번에 취해질 때까지의 비휘발성 테이블의 내용의 갱신 차이 정보인 로그(220), 이 스냅샷(210)에 대하여 처음 획득된 로그(220)의 위치와 스냅샷(210)을 가리키는 제2 포인터(230), 및 루트 포인터(240)가 저장된 위치(블록)를 가리키는 루트 포인터(240)를 포함한다. 스냅샷(210)은, DRAM(11)의 임시 저장 영역(111)에 저장된 관리 정보의 종류들 중에서 소정의 순간에 적어도 비휘발성 테이블을 포함하는 관리 정보를 저장함으로써 얻게 되는 정보이다.18 is a schematic diagram of an example of the contents of management information storage information stored in the management information storage area 126. The management information storage information stored in the management information storage area 126 is the snapshot 210 which is the contents of the nonvolatile table at a predetermined moment, and the update difference information of the contents of the nonvolatile table until the next time the snapshot is taken. Log 220, the location of the first log 220 obtained with respect to this snapshot 210, a second pointer 230 pointing to the snapshot 210, and a location (block) where the root pointer 240 is stored. A root pointer 240 pointing. The snapshot 210 is information obtained by storing management information including at least a nonvolatile table at a predetermined moment among types of management information stored in the temporary storage area 111 of the DRAM 11.

스냅샷(210), 로그(220), 제2 포인터(230), 루트 포인터(240)는 서로 다른 블록들에 각각 저장된다. 이러한 블록들의 크기는 소거 단위인 물리적 블록의 크기와 동일하다. 스냅샷(210)은 스냅샷 저장 블록에 저장된다. 스냅샷(210)은 논리적 NAND 관리 정보(42)와 NAND내 논리적 물리적 변환 정보(43)를 NAND 메모 리(12)의 관리 정보 저장 영역(126)의 비휘발성 테이블로서 포함한다. 새로운 스냅샷(210)이 저장되면, 스냅샷(210)은 이전에 저장된 스냅샷(210)의 블록과는 다른 블록에 저장된다.The snapshot 210, the log 220, the second pointer 230, and the root pointer 240 are stored in different blocks, respectively. The size of these blocks is equal to the size of the physical block that is the erase unit. Snapshot 210 is stored in a snapshot storage block. Snapshot 210 includes logical NAND management information 42 and intra-NAND logical physical conversion information 43 as a non-volatile table of management information storage area 126 of NAND memory 12. When a new snapshot 210 is stored, the snapshot 210 is stored in a different block than the previously stored block of snapshot 210.

로그(220)는 로그 저장 블록에 저장된다. 비휘발성 테이블의 내용이 변경되면, 로그(220)는 (스냅샷(210)의 획득 후 로그가 처음으로 생성된 경우의) 내용이 변경된 후의 비휘발성 테이블과 스냅샷(210) 사이의 차이 정보, 또는 내용이 변경된 후의 비휘발성 테이블과 스냅샷(210) 사이의 차이 정보이다. 로그(220)는 로그(220)가 차이 정보로서 획득될 때마다 로그 저장 유닛에 라이트-원스 방식으로 페이지 단위로 기입된다. 도 9는 로그(220)의 일 예를 도시한다. 로그(220)는 변경 타겟의 관리 정보인 타겟 정보, 타겟 정보에서의 변경 타겟을 위한 엔트리인 타겟 엔트리, 타겟 엔트리에서의 변경 타겟을 위한 항목인 타겟 항목, 타겟 항목에서 변경되는 내용인 변경 내용을 포함한다. 로그(220)는, 스냅샷(210)에 대한 갱신 차이 정보이기 때문에, 새로운 스냅샷(210)의 저장에 따라 재형성된다. 제2 실시예에서, 프리 로그와 포스트 로그는 구분없이 로그로서 설명된다. 이는, 제1 실시예에서와 같이 프리 로그와 포스트 로그가 획득되는 경우에도 마찬가지로 적용된다.The log 220 is stored in a log storage block. If the contents of the non-volatile table are changed, the log 220 shows the difference information between the non-volatile table and the snapshot 210 after the contents are changed (when the log is first generated after the acquisition of the snapshot 210), Or difference information between the nonvolatile table and the snapshot 210 after the contents are changed. The log 220 is written in page units in a write-once manner to the log storage unit whenever the log 220 is obtained as difference information. 9 illustrates an example of a log 220. The log 220 may include target information, which is management information of a change target, target entry, which is an entry for a change target in the target information, target item, which is an item for a change target in the target entry, and changes that are changed in the target item. Include. Since the log 220 is update difference information for the snapshot 210, it is reconstructed according to the storage of the new snapshot 210. In the second embodiment, the pre log and the post log are described as logs without distinction. This also applies to the case where prelog and postlog are obtained as in the first embodiment.

제2 포인터(230)는 제2 포인터 저장 블록에 저장된다. 제2 포인터(230)는 스냅샷(210)과 로그(220)의 저장 위치들을 가리키는 블록들의 탑 어드레스들을 가리키는 포인터이면 된다. 제2 포인터(230)는 스냅샷(210)이 새롭게 저장될 때 또는 스냅샷 저장 블록과 로그 저장 블록이 변경될 때 갱신된다.The second pointer 230 is stored in the second pointer storage block. The second pointer 230 may be a pointer indicating top addresses of blocks indicating storage positions of the snapshot 210 and the log 220. The second pointer 230 is updated when the snapshot 210 is newly stored or when the snapshot storage block and the log storage block are changed.

제2 포인터(230)는, 스냅샷 저장 블록에 액세스하기 위한 스냅샷 액세스 정보, 로그 저장 블록에 액세스하기 위한 로그 액세스 정보, 및 다음 제2 포인터가 저장되는 페이지 위치를 가리키는 다음 포인터를 포함한다. 제2 포인터(230)는, 이러한 다음 포인터에 의해, 링크된 리스트 시스템에서의 정보로 변경된다. 루트 포인터(240)에 의해 지정된 제2 포인터 저장 블록의 탑 페이지로부터 다음 포인터를 추적함으로써 최신 제2 포인터에 도달할 수 있다. 링크된 리스트 시스템 대신에, 제2 포인터(230)는 제2 포인터 저장 영역의 탑 페이지로부터 순서대로 라이트-원스 방식으로 저장될 수 있다. 로그(220)의 탑 어드레스를 가리키는 포인터는 스냅샷(210)에 저장될 수 있다. 제2 포인터(230)는 스냅샷(210)의 탑 어드레스를 가리키는 포인터만을 포함할 수 있다.The second pointer 230 includes snapshot access information for accessing the snapshot storage block, log access information for accessing the log storage block, and a next pointer indicating a page location where the next second pointer is stored. The second pointer 230 is changed by the next pointer into information in the linked list system. The latest second pointer can be reached by tracking the next pointer from the top page of the second pointer storage block designated by root pointer 240. Instead of a linked list system, the second pointer 230 may be stored in a write-once fashion in order from the top page of the second pointer storage area. A pointer to the top address of log 220 may be stored in snapshot 210. The second pointer 230 may include only a pointer indicating the top address of the snapshot 210.

루트 포인터(240)는 루트 포인터 저장 블록에 저장된다. 루트 포인터(240)는, 제2 포인터(230)가 제1 포인터로서 저장되는 제2 포인터 저장 블록에 액세스하기 위한 정보이며, 메모리 시스템(10)이 기동될 때 관리 정보를 복구하기 위한 처리 시 먼저 판독되는 정보이다. 제1 루트 포인터(240)는 제2 포인터 저장 블록이 변경될 때 변경된다. 루트 포인터(240)는, 예를 들어, 루트 포인터 저장 블록의 탑 페이지로부터 순서대로 라이트-원스 방식으로 루트 포인터 저장 블록에 저장된다. 이러한 경우에, 루트 포인터 저장 블록의 미기입 페이지에 바로 선행하는 페이지가 최신 정보를 갖는다. 따라서, 미기입 페이지의 최상위 페이지를 검색함으로써 최신 제1 루트 포인터(240)를 검색할 수 있다. 제2 포인터(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 as the first pointer. The root pointer 240 is first used for processing for recovering management information when the memory system 10 is activated. Information to be read. The first root pointer 240 is changed when the second pointer storage block is changed. The root pointer 240 is stored in the root pointer storage block in a write-once manner, for example, in order from the top page of the root pointer storage block. In this case, the page immediately preceding the unwritten page of the root pointer storage block has the latest information. Therefore, the latest first root pointer 240 can be searched by searching the top page of the unwritten page. As in the case of the second pointer 230, a linked list may be used.

루트 포인터(240)는 NAND 메모리(12)의 고정 영역(1261)에 저장된다. 스냅샷(210), 로그(220), 제2 포인터(230)는 NAND 메모리(12)의 가변 영역(1262)에 저장된다. 고정 영역(1261)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 NAND 메모리(12)에서 고정된 보호 영역이며, 재기입 및 기입이 거의 발생하지 않는 저 갱신 빈도를 갖는 메모리 시스템(10)을 실행시키는 데 필요한 정보가 저장된 영역이다.The root pointer 240 is stored in the fixed area 1261 of the NAND memory 12. The snapshot 210, the log 220, and the second pointer 230 are stored in the variable region 1262 of 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 12, This is an area where information necessary for executing the memory system 10 having a low update frequency in which rewriting and writing hardly occurs is stored.

반면에, 가변 영역(1262)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 고정 영역(1261)을 제외한 NAND 메모리(12)의 영역에서 가변적인 영역이다. 가변 영역(1262)은 마모 균등화의 타겟 영역이다.On the other hand, in the variable area 1262, 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 differs from the NAND memory except for the fixed area 1261. It is a variable area in the area of (12). The variable region 1262 is a target region of wear equalization.

구동 제어 유닛(14)의 기능, 데이터 관리 유닛(141)의 기능적 구성 등은 제1 실시예의 경우와 동일하다(도 10과 11 참조). 관리 정보 관리 유닛(152)은 관리 정보 기입 유닛(153)과 관리 정보 저장 유닛(154)을 포함한다. 관리 정보 기입 유닛(153)은, 데이터 전달 처리 유닛(151)에 의해 DRAM(11) 또는 NAND 메모리(12)에 저장된 데이터에 대한 변경 처리에 따라 관리 정보의 갱신일 필요할 때, DRAM(11)에 저장된 관리 정보의 갱신을 수행한다.The functions of the drive control unit 14, the functional configuration of the data management unit 141, and the like are the same as those in the first embodiment (see FIGS. 10 and 11). The management information management unit 152 includes a management information writing unit 153 and a management information storage unit 154. The management information writing unit 153 is stored in the DRAM 11 when it is necessary to update management information in accordance with a change process for data stored in the DRAM 11 or the NAND memory 12 by the data transfer processing unit 151. Update management information.

메모리 시스템(10)이 소정의 조건을 충족하는 경우, 관리 정보 저장 유닛(154)은, NAND 메모리(12)의 관리 정보 저장 영역(126)에, 관리 정보를 스냅샷(210)으로서 그리고 관리 정보에서 갱신될 정보를 로그(220)로서 저장한다. 관 리 정보 저장 유닛(154)은 스냅샷(210) 또는 로그(220)의 저장에 따라 요구되는 포인터 갱신 처리도 수행한다.When the memory system 10 satisfies a predetermined condition, the management information storage unit 154 stores the management information as the snapshot 210 and the management information in the management information storage area 126 of the NAND memory 12. Stores the information to be updated as a log 220. The management information storage unit 154 also performs a pointer update process required in accordance with the storage of the snapshot 210 or the log 220.

스냅샷(210)의 저장은, 예를 들어, 후술하는 바와 같이 다음에 따르는 스냅샷 저장 조건들 중 임의의 조건이 충족되는 경우, 관리 정보 저장 유닛(154)에 의해 수행된다.The storage of the snapshot 210 is performed by the management information storage unit 154 when, for example, any of the following snapshot storage conditions is met as described below.

(1) 대기(메모리 시스템(10)의 본체의 전력 소비를 최소화하기 위한 명령어), 슬립(소정의 시간 동안 액세스가 없는 경우 디바이스를 정지시키기 위한 명령어), 또는 리셋(메모리 시스템(10)을 재기동하기 위한 명령어) 신호가 수신되는 경우(1) Standby (command to minimize power consumption of the main body of the memory system 10), sleep (command to stop the device when there is no access for a predetermined time), or reset (restart the memory system 10) Command)

(2) NAND 메모리(12)의 관리 정보 저장 영역(126)에서 로그(220)를 저장하도록 제공된 로그 저장 영역이 데이터로 채워진 경우(2) The log storage area provided for storing the log 220 in the management information storage area 126 of the NAND memory 12 is filled with data.

관리 정보 저장 유닛(154)이 로그(220)를 저장하는 타이밍은, (NAND 메모리(12)에서 데이터 기입일 필요한 경우) DRAM(11)에 저장된 관리 정보(비휘발성 테이블)의 갱신이 관리 정보 기입 유닛(153)에 의해 수행될 때이다.The timing at which the management information storage unit 154 stores the log 220 is that updating of management information (non-volatile table) stored in the DRAM 11 (when data writing is necessary in the NAND memory 12) writes management information. When it is performed by unit 153.

메모리 시스템(10)의 전원이 턴온되면, 관리 정보 복구 유닛(155)은 NAND 메모리(12)의 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보에 기초하여 관리 정보에 대한 복구 처리를 수행한다. 특히, 관리 정보 복구 유닛(155)은 루트 포인터(240), 제2 포인터(230), 스냅샷(210), 로그(220)를 순서대로 추적하고, 최신 스냅샷(210)에 대응하는 로그(220)가 존재하는지 여부를 결정한다. 로그(220)가 존재하지 않으면, 관리 정보 복구 유닛(155)은, DRAM(11)에, 스냅샷 저장 블록 의 스냅샷(210)을 관리 정보로서 복구한다. 로그(220)가 존재하면, 관리 정보 복구 유닛(155)은 스냅샷 저장 블록으로부터 스냅샷(210)을 획득하고, 로그 저장 블록으로부터 로그(220)를 획득하고, 이 로그(220)를 DRAM(11) 상의 스냅샷(210)에 반영하여 관리 정보(비휘발성 테이블)의 복구를 수행한다. 이때, 메모리 시스템(10)이 순단 등으로 인해 정상적으로 종료되지 않고 비정상적으로 종료될 가능성이 있기 때문에, 관리 정보 복구 유닛(155)은 메모리 시스템(10)의 종료 결정을 포함하는 관리 정보의 복구를 적절히 수행한다.When the power of the memory system 10 is turned on, the management information recovery unit 155 performs a recovery process for the management information based on the management information storage information stored in the management information storage area 126 of the NAND memory 12. . In particular, the management information recovery unit 155 tracks the root pointer 240, the second pointer 230, the snapshot 210, and the log 220 in order, and logs corresponding to the latest snapshot 210 ( 220) is determined to exist. If the log 220 does not exist, the management information recovery unit 155 restores the snapshot 210 of the snapshot storage block as management information to the DRAM 11. If the log 220 exists, the management information recovery unit 155 acquires the snapshot 210 from the snapshot storage block, obtains the log 220 from the log storage block, and stores the log 220 in the DRAM ( 11) The management information (non-volatile table) is restored to reflect the snapshot 210 on the screen. At this time, since there is a possibility that the memory system 10 may be abnormally terminated without being normally terminated due to stepping or the like, the management information recovery unit 155 appropriately recovers the management information including the termination decision of the memory system 10. To perform.

스냅샷 저장 조건들 중 (1)에서 설명한 바와 같이, 메모리 시스템(10)은, 메모리 시스템(10)이 대기 신호, 슬립 신호, 또는 리셋 신호를 수신하면 관리 정보 저장 유닛(154)을 이용하여 스냅샷(210)을 저장하도록 설정될 수 있다. 다시 말하면, 메모리 시스템(10)은, 메모리 시스템(10)이 대기 신호, 슬립 신호, 또는 리셋 신호를 수신한 후 지정 상태(대기 상태, 슬립 상태, 또는 리셋 상태)로 전환될 때, 스냅샷(210)을 다시 취하도록 설정될 수 있다. 메모리 시스템(10)이 이러한 방식으로 설정되면, 재기동 동안 스냅샷(210)에만 기초하여 관리 정보를 복구할 수 있으며 로그(220)를 참조할 필요가 없다. 따라서, 기동 시간을 저감시킬 수 있다.As described in (1) of the snapshot storage conditions, the memory system 10 uses the management information storage unit 154 to snap when the memory system 10 receives the standby signal, the sleep signal, or the reset signal. It can be set to save the shot 210. In other words, the memory system 10, when the memory system 10 transitions to a designated state (standby state, sleep state, or reset state) after receiving the standby signal, the sleep signal, or the reset signal, the snapshot ( 210 may be set to take again. When the memory system 10 is set up in this manner, management information can be recovered based only on the snapshot 210 during restart and there is no need to refer to the log 220. Therefore, the startup time can be reduced.

반면에, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신될 때마다 스냅샷(210)이 다시 취해지면, 예를 들어, 스냅샷(210)이 소정의 순간에 저장된 직후 대기 신호 등이 수신되면, 신호 수신 동안 저장된 로그(220)의 로그 길이(크기)가 매우 짧은 상황이 발생한다. 이러한 경우에, 대기 신호 등의 수신 전에 저장된 스냅샷(210)이 작게 변경된다는 사실에 상관없이, 스냅샷(210)을 다시 취한다. 따라 서, 내용이 약간 갱신되고 기입 효율이 떨어된다는 사실에 상관없이 스냅샷(210)의 기입을 수행한다. 스냅샷(210)이 비휘발성 테이블의 내용이기 때문에, 스냅샷(210)의 크기는 크다. 따라서, 스냅샷(210)의 기입에는 시간이 걸리고 지정 상태로 전환하는 데 오래 걸린다. 스냅샷의 크기는 예를 들어 8MB인 반면, 차이 정보로서 획득된 로그의 크기는 페이지 크기(4KB)이다.On the other hand, if the snapshot 210 is taken again every time the standby signal, the sleep signal, or the reset signal is received, for example, if the standby signal is received immediately after the snapshot 210 is stored at a predetermined moment, A situation where the log length (size) of the stored log 220 during the signal reception is very short occurs. In this case, the snapshot 210 is taken again, regardless of the fact that the stored snapshot 210 changes small before reception of the wait signal or the like. Thus, writing of the snapshot 210 is performed regardless of the fact that the contents are slightly updated and the writing efficiency is lowered. Since the snapshot 210 is the contents of the nonvolatile table, the size of the snapshot 210 is large. Thus, writing the snapshot 210 takes time and takes a long time to switch to the designated state. The size of the snapshot is 8MB, for example, while the size of the log obtained as the difference information is the page size (4KB).

또한, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신될 때마다 스냅샷(210)이 항상 다시 취해지면, 기입 전에 수행되는 블록의 소거 때문에 NAND 메모리(12)가 더욱 열화된다. 이러한 방식으로, NAND 메모리(12)를 채용하는 메모리 시스템(10)에서는, 대기 신호 등이 수신될 때마다 스냅샷(210)을 다시 취하기 때문에, 지정 상태로 전환할 때까지의 대기 시간이 길다는 특성에 더하여 메모리 시스템(10)의 내구 수명이 저감된다는 NAND 메모리(12)의 특성으로 인하여 문제점이 있다.In addition, if the snapshot 210 is always taken again every time a wait signal, sleep signal, or reset signal is received, the NAND memory 12 is further degraded due to the erasing of the block performed prior to writing. In this manner, in the memory system 10 employing the NAND memory 12, since the snapshot 210 is taken again every time a waiting signal or the like is received, the waiting time until switching to the designated state is long. In addition to the characteristics, there is a problem due to the characteristics of the NAND memory 12 that the durability life of the memory system 10 is reduced.

따라서, 제2 실시예에서는, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신되면, 스냅샷(210)을 다시 취하는 것을 선택하고 지정 상태로 전환하거나 스냅샷(210)을 다시 취하지 않고서 지정 상태로 전환할 수 있다. 특히, 관리 정보 저장 유닛(154)은 대기 신호 등을 수신하고, 예를 들어, 로그(220)가 관리 정보 저장 영역(126)에 저장되어 있는지 여부에 따라 그리고 로그(220)가 저장되어 있다면 로그(220)의 로그 길이(크기)에 따라 전환 유형들 중 임의의 유형으로 전환하는 것을 수행한다.Thus, in the second embodiment, upon receiving the wait signal, the sleep signal, or the reset signal, the user may select to take the snapshot 210 again and switch to the designated state or to the designated state without taking the snapshot 210 again. can do. In particular, the management information storage unit 154 receives a wait signal or the like, for example, depending on whether the log 220 is stored in the management information storage area 126 and if the log 220 is stored, the log. Switching to any of the conversion types according to the log length (size) of 220.

도 19A는 스냅샷을 다시 취하지 않고서 대기 상태로 전환하는 시간도이며, 도 19B는 대기 신호가 수신되는 경우 스냅샷을 다시 취한 후 대기 상태로 전환하는 시간도이다. 도 19A와 도 19B에서, 대기 신호는 일 예로 도시되어 있다. 그러나, 이는 슬립 신호와 리셋 신호에도 동일하게 적용된다.FIG. 19A is a time diagram of switching to the standby state without taking the snapshot again, and FIG. 19B is a time diagram of switching to the standby state after taking the snapshot again when a wait signal is received. 19A and 19B, the wait signal is shown as an example. However, the same applies to the sleep signal and the reset signal.

도 19A에 도시한 상황에서는, 스냅샷 저장 조건들 중 조건 (2)가 충족되기 때문에, 스냅샷(210)을 획득하고, 후속하여 로그들(51-1 내지 51-n; 여기서 n은 1 이상의 정수임)이 비휘발성 테이블의 내용의 갱신에 따라 순차적으로 획득된다. 로그들(51-1 내지 51-n)은 페이지 단위로 라이트-원스 방식으로 로그 저장 블록에 순차적으로 기입되고 로그(220)로서 저장된다. 도 20은 로그들이 로그 저장 블록에 페이지 단위로 저장된 상태도이다. 도 20에서는, 도 18에 도시한 구성요소들 중에서, 편의상 제2 포인터, 스냅샷(210), 로그(220)만이 도시되어 있다. 로그(220)는 로그 저장 블록에 탑 페이지로부터 n 페이지로 라이트-원스 방식으로 순차적으로 기입된 로그들(51-1 내지 51-n)을 포함한다.In the situation shown in Fig. 19A, since condition (2) of the snapshot storage conditions is satisfied, the snapshot 210 is taken, and subsequently the logs 51-1 to 51-n; where n is one or more; Is an integer) is obtained sequentially in accordance with the update of the contents of the non-volatile table. The logs 51-1 to 51-n are sequentially written to the log storage block in a write-once manner on a page basis and stored as the log 220. 20 is a state diagram in which logs are stored in a log storage block in page units. In FIG. 20, of the components illustrated in FIG. 18, only the second pointer, the snapshot 210, and the log 220 are illustrated for convenience. The log 220 includes logs 51-1 through 51-n sequentially written in a write-once manner from a top page to n pages in a log storage block.

또한, 로그(51-n)의 저장에 이어서, 대기 신호가 생성되지만, 스냅샷을 다시 취하지 않고서 관리 정보 저장 유닛(154)은 대기 상태로 전환된다(대기 발생). 대기가 해제되면, 메모리 시스템(10)은 대기 상태로부터 기동하게 된다. 관리 정보 복구 유닛(155)은 관리 정보 저장 영역(126)의 스냅샷 저장 블록으로부터 스냅샷(210)을 획득하고, 관리 정보 저장 영역(126)의 로그 저장 블록으로부터 로그(220)를 획득하고, 이 로그(220)를 DRAM(11) 상의 스냅샷(210)에 반영하여 관리 정보(비휘발성 테이블)를 복구한다.Further, following the storage of the log 51-n, a wait signal is generated, but the management information storage unit 154 is switched to the standby state (waiting occurrence) without taking a snapshot again. When the standby is released, the memory system 10 is started up from the standby state. The management information recovery unit 155 acquires the snapshot 210 from the snapshot storage block of the management information storage area 126, obtains the log 220 from the log storage block of the management information storage area 126, The log 220 is reflected in the snapshot 210 on the DRAM 11 to recover the management information (nonvolatile table).

도 19B에서, 스냅샷(210)과 로그들(51-1 내지 51-n)의 저장 및 대기 신호의 생성은 도 19A에 도시한 경우와 동일하다. 그러나, 관리 정보 저장 유닛(154)은 대기 신호의 생성 후에 스냅샷(55)을 다시 취한다. 스냅샷(55)이 저장되면, 제2 포인터가 갱신된다. 제2 포인터(230)는 스냅샷(55)의 탑 어드레스를 가리키고, 새롭게 확보된 스냅샷(55)에 대한 로그 저장 블록의 탑 어드레스를 가리킨다. 관리 정보 저장 유닛(154)이 스냅샷(55)을 다시 취하면, 관리 정보 저장 유닛(154)은 대기 상태로 즉시 전환된다(대기 발생). 따라서, 로그는 스냅샷(55)에 대한 로그 저장 블록에 저장되지 않는다. 대기가 해제되면, 메모리 시스템(10)이 대기 상태로부터 기동된다. 관리 정보 복구 유닛(155)은 관리 정보 저장 영역(126)의 스냅샷 저장 블록으로부터 스냅샷(55)을 획득하고, DRAM(11) 상의 스냅샷(55)에 기초하여 관리 정보(비휘발성 테이블)를 복구한다.In FIG. 19B, the generation of the store and wait signals of the snapshot 210 and the logs 51-1 to 51-n are the same as the case shown in FIG. 19A. However, the management information storage unit 154 takes the snapshot 55 again after generation of the wait signal. Once the snapshot 55 is stored, the second pointer is updated. The second pointer 230 points to the top address of the snapshot 55 and points to the top address of the log storage block for the newly secured snapshot 55. When the management information storage unit 154 takes the snapshot 55 again, the management information storage unit 154 is immediately switched to the standby state (waiting occurrence). Thus, the log is not stored in the log storage block for the snapshot 55. When the standby is released, the memory system 10 is started up from the standby state. The management information recovery unit 155 acquires the snapshot 55 from the snapshot storage block of the management information storage area 126, and manages the information (nonvolatile table) based on the snapshot 55 on the DRAM 11. To recover.

제2 실시예에서, 관리 정보 저장 유닛(154)은 예를 들어 관리 정보 저장 영역(126)에 저장된 로그(220)의 로그 길이(크기)에 따라 스위칭을 수행한다. 로그 길이(크기)가 소정의 크기 이상이면, 관리 정보 저장 유닛(154)은 스냅샷을 다시 취한다(도 19B). 로그 길이(크기)가 소정의 크기보다 작으면, 관리 정보 저장 유닛(154)은 스냅샷을 다시 취하지 않는다(도 19A). 도 19A, 도 19B, 도 20에서, 로그(220)의 로그 길이(크기)는 로그들(51-1 내지 51-n)의 크기들의 총합이고 n개 페이지에 대한 크기이다. 따라서, 관리 정보 저장 유닛(154)은, n과 스위칭 기준 페이지들의 수(n번째)를 비교함으로써 스냅샷을 다시 취하는 것과 스냅샷을 다시 취하지 않는 것을 스위칭할 수 있다.In the second embodiment, the management information storage unit 154 performs switching according to, for example, the log length (size) of the log 220 stored in the management information storage area 126. If the log length (size) is equal to or larger than a predetermined size, the management information storage unit 154 takes a snapshot again (Fig. 19B). If the log length (size) is smaller than the predetermined size, the management information storage unit 154 does not take a snapshot again (Fig. 19A). 19A, 19B, and 20, the log length (size) of log 220 is the sum of the sizes of logs 51-1 through 51-n and the size for n pages. Thus, the management information storage unit 154 can switch between taking the snapshot again and not taking the snapshot again by comparing n with the number of switching reference pages (nth).

스위칭 기준 페이지들의 수(n번째)는 예를 들어 후술하는 방법에 따라 결정 될 수 있다. 도 19A에서는, 대기 신호의 생성 후 스냅샷이 다시 취해지지 않기 때문에, 대기 상태로의 전환 시간이 짧다. 반면에, 대기 해제 후 관리 정보의 복구 동안, 스냅샷(210)에 더하여 로그들(51-1 내지 51-n)을 판독할 필요가 있다. n이 정수이면, 복구에 시간이 더 걸린다. 역으로, n이 매우 작으면, 스냅샷(210)과 로그들(51-1 내지 51-n)에 기초하여 관리 정보를 복구하기 위한 시간 및 스냅샷(55)에 기초하여 관리 정보를 복구하기 위한 시간 사이의 차이가 작다. 따라서, 도 19A에 도시한 경우를 선택하는 것은 n이 작은 경우 유익하다.The number (nth) of the switching reference pages may be determined, for example, according to a method described later. In Fig. 19A, since the snapshot is not taken again after generation of the standby signal, the transition time to the standby state is short. On the other hand, during the recovery of management information after queuing, it is necessary to read the logs 51-1 to 51-n in addition to the snapshot 210. If n is an integer, recovery takes longer. Conversely, if n is very small, recovering management information based on snapshot 55 and time for restoring management information based on snapshot 210 and logs 51-1 through 51-n. The difference between the times for is small. Therefore, selecting the case shown in Fig. 19A is beneficial when n is small.

일반적으로, 메모리 시스템(10)의 기동 시간은 메모리 시스템의 명세에 의존한다. 따라서, n이 크기 때문에 복구에 시간이 걸리고 기동 시간이 메모리 시스템의 명세를 초과하게 되면, 도 19A에 도시한 바와 같은 경우를 선택할 수 없다. 다시 말하면, 참조 페이지들의 수(n번째)는 도 19A에 도시한 경우의 기동 시간이 메모리 시스템의 명세를 충족하는 값이며, 이때 n은 이 값보다 작다.In general, the startup time of the memory system 10 depends on the specification of the memory system. Therefore, if n is large and recovery takes time and the startup time exceeds the specification of the memory system, the case as shown in Fig. 19A cannot be selected. In other words, the number (nth) of the reference pages is a value in which the startup time in the case shown in Fig. 19A satisfies the specification of the memory system, where n is smaller than this value.

도 19B에서는, 대기 신호의 생성 후 스냅샷(55)을 다시 취한다. 따라서, 스냅샷(55)에 대한 기입 시간 때문에, 대기 상태로의 전환 시간이 길다는 사실에 더하여, n이 작으면 기입 효율이 떨어진다. 따라서, 도 19B에 도시한 경우를 선택하는 것은 n이 보다 큰 경우에 유익하다고 할 수 있다. 따라서, 도 19A에 도시한 경우도 고려하여, n이 참조 페이지들의 수(n번째) 이상일 때 도 19B에 도시한 경우를 선택하는 것이 바람직하다.In Fig. 19B, the snapshot 55 is taken again after generation of the wait signal. Therefore, in addition to the fact that the transition time to the standby state is long because of the write time for the snapshot 55, if n is small, the write efficiency is lowered. Therefore, selecting the case shown in FIG. 19B can be said to be beneficial when n is larger. Therefore, in consideration of the case shown in Fig. 19A, it is preferable to select the case shown in Fig. 19B when n is equal to or larger than the number (nth) of the reference pages.

도 21은 대기, 슬립, 또는 리셋 동안 관리 정보 저장 유닛(154)의 동작을 설명하기 위한 흐름도이다.21 is a flowchart for explaining the operation of the management information storage unit 154 during standby, sleep, or reset.

관리 정보 저장 유닛(154)은 대기 신호, 슬립 신호, 또는 리셋 신호 중 임의의 신호의 존재 또는 부재를 결정한다(단계 S21). 대기 신호, 슬립 신호, 또는 리셋 신호 중 어떠한 것도 입력되지 않으면(단계 S21에서 아니오), 관리 정보 저장 유닛(154)은 다른 처리를 수행하고(단계 S22) 단계 S21로 복귀한다. 단계 S21에서 대기 신호, 슬립 신호, 또는 리셋 신호 중 임의의 신호가 입력된다고 결정되면(단계 S21에서 예), 관리 정보 저장 유닛(154)은 로그 길이가 소정의 크기 이상인지 여부를 결정한다(단계 S23). 로그 길이가 소정의 크기 이상이라고 결정되면(단계 S23에서 예), 관리 정보 저장 유닛(154)은 새로운 스냅샷을 취하고(단계 S14) 처리를 종료한다. 로그 길이가 소정의 크기보다 작다고 결정되면(단계 S23에서 아니오), 관리 정보 저장 유닛(154)은 새로운 스냅샷을 취하지 않고서 처리를 종료한다. 이후, 메모리 시스템(10)은 대기 신호, 슬립 신호, 또는 리셋 신호에 대응하는 상태로 변경된다.The management information storage unit 154 determines the presence or absence of any of the wait signal, the sleep signal, or the reset signal (step S21). If none of the wait signal, the sleep signal, or the reset signal is input (NO in step S21), the management information storage unit 154 performs another processing (step S22) and returns to step S21. If it is determined in step S21 that any of the wait signal, the sleep signal, or the reset signal is input (YES in step S21), the management information storage unit 154 determines whether or not the log length is equal to or greater than a predetermined size (step S23). If it is determined that the log length is equal to or larger than a predetermined size (YES in step S23), the management information storage unit 154 takes a new snapshot (step S14) and ends the processing. If it is determined that the log length is smaller than the predetermined size (NO in step S23), the management information storage unit 154 ends the processing without taking a new snapshot. Thereafter, the memory system 10 is changed to a state corresponding to the standby signal, the sleep signal, or the reset signal.

제2 실시예에 따르면, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신되면, 관리 정보 저장 유닛(154)은, 로그 길이가 소정의 크기 이상인지 여부를 결정하고, 스냅샷을 다시 취하고 지정 상태로 전환하거나 스냅샷을 다시 취하지 않고서 지정 상태로 전환하는 것을 결정한다. 따라서, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신될 때마다 스냅샷을 다시 취하는 것이 불필요하기 때문에, NAND 메모리(12)의 기입 횟수를 저감시키고 NAND 메모리(12)의 내구 수명이 저감되는 것을 억제할 수 있다. 관리 정보 복구 유닛(155)에 의한 관리 정보의 복구 시간을 저감시킬 수 있는 효과도 있다.According to the second embodiment, upon receiving the wait signal, the sleep signal, or the reset signal, the management information storage unit 154 determines whether the log length is equal to or larger than a predetermined size, takes a snapshot again, and returns to a designated state. Decide to switch to the specified state without switching or taking the snapshot again. Therefore, since it is unnecessary to retake the snapshot every time the standby signal, the sleep signal, or the reset signal is received, the number of times of writing of the NAND memory 12 is reduced and the durability of the NAND memory 12 is reduced. can do. There is also an effect that the recovery time of the management information by the management information recovery unit 155 can be reduced.

전술한 바에서, DRAM(11)에서의 데이터 관리 단위는 페이지 크기 단위이며, NAND 메모리(12)에서의 데이터 기입 및 판독 단위는 페이지 크기 단위이며, 소거 단위와 관리 단위는 블록 크기 단위이다. 그러나, 이것은 데이터 관리 단위, 데이터 기입 및 판독 단위, 소거 단위, 및 관리 단위가 이러한 크기의 단위들로 한정된다는 것을 의미하지 않는다. 데이터 관리 단위, 데이터 기입 및 판독 단위, 소거 단위, 및 관리 단위로서 임의의 단위를 이용할 수 있다.As described above, the data management unit in the DRAM 11 is a page size unit, the data writing and reading unit in the NAND memory 12 is a page size unit, and the erase unit and the management unit are block size units. However, this does not mean that data management units, data writing and reading units, erasing units, and management units are limited to units of this size. Arbitrary units can be used as a data management unit, a data writing and reading unit, an erasing unit, and a management unit.

전하 축적층은 부동 게이트형으로 한정되지 않으며 MONOS(금속-산화물-질화물-산화물-반도체) 구조 및 다른 시스템을 포함하는 것과 같이 실리콘 질화막을 포함하는 전하 포획형일 수 있다.The charge accumulation layer is not limited to a floating gate type and may be a charge trapping type including a silicon nitride film, such as including a MONOS (metal-oxide-nitride-oxide-semiconductor) structure and other systems.

전술한 바와 같이, 본 발명에 따르면, 전원의 비정상적 분리로부터 리셋 후에 로그가 파괴되는 가능성을 제거할 수 있으며 관리 정보의 신뢰성을 개선할 수 있는 효과가 있다.As described above, according to the present invention, it is possible to eliminate the possibility that the log is destroyed after the reset from abnormal disconnection of the power supply, and there is an effect of improving the reliability of the management information.

본 발명에 따르면, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신되면, 스냅샷을 다시 취하지 않고서 지정 상태로 전환하고 이어서 전환 전의 상태로 복귀할 수 있다. 따라서, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신될 때마다 스냅샷을 취할 필요가 없으며 다치 데이터가 저장될 수 있는 메모리 셀의 기입 횟수를 저감시킬 수 있으며 메모리 셀의 내구 수명이 저감되는 것을 억제할 수 있는 효과가 있다.According to the present invention, when a wait signal, a sleep signal, or a reset signal is received, it is possible to switch to the designated state without taking a snapshot again and then to the state before switching. Therefore, it is not necessary to take a snapshot every time a standby signal, a sleep signal, or a reset signal is received, it is possible to reduce the number of writes of a memory cell in which multi-value data can be stored, and suppress the reduction in the endurance life of the memory cell. It can work.

추가 이점 및 수정은 당업자에게 용이하다. 따라서, 본 발명은 본 발명의 보다 넓은 양태에 있어서 본 명세서에서 도시하고 설명한 특정 상세 및 대표 실시 예로 한정되지 않는다. 이에 따라, 청구범위 및 청구범위의 균등론에 의해 규정되는 바와 같이 본 발명의 사상이나 범위로부터 벗어나지 않고서 다양한 수정을 행할 수 있다.Additional advantages and modifications are easy to those skilled in the art. Accordingly, the invention is not limited to the specific details and representative embodiments shown and described herein in its broader aspects. Accordingly, various modifications can be made without departing from the spirit or scope of the invention as defined by the claims and the equivalents of the claims.

Claims (20)

메모리 시스템으로서,As a memory system, 휘발성 제1 저장 유닛과,A volatile first storage unit, 다치(multi-value) 데이터를 저장할 수 있는 메모리 셀을 포함하는 비휘발성 제2 저장 유닛과,A nonvolatile second storage unit including a memory cell capable of storing multi-value data; 상기 제1 저장 유닛을 통해 호스트 장치와 상기 제2 저장 유닛 사이에서 데이터 전달을 수행하고, 상기 메모리 시스템의 기동 동작 동안 상기 제2 저장 유닛에 저장된 데이터의 저장 위치를 포함하는 관리 정보를 상기 제1 저장 유닛에 저장하고, 저장한 관리 정보를 갱신하면서 상기 저장한 관리 정보에 기초하여 상기 제1 저장 유닛과 상기 제2 저장 유닛의 데이터 관리를 수행하는 컨트롤러를 포함하고, Performing data transfer between the host device and the second storage unit via the first storage unit, wherein the management information includes a storage location of data stored in the second storage unit during a startup operation of the memory system; A controller configured to perform data management of the first storage unit and the second storage unit based on the stored management information while storing in the storage unit and updating the stored management information; 상기 컨트롤러는, The controller, 소정의 조건이 충족되는 경우, 상기 제1 저장 유닛에 저장되어 있는 상기 관리 정보를 상기 제2 저장 유닛에 스냅샷으로서 저장하고, 로그(log)를 상기 제2 저장 유닛에 상기 관리 정보의 갱신 차이 정보로서 저장하는 관리 정보 저장 유닛과,When a predetermined condition is satisfied, the management information stored in the first storage unit is stored as a snapshot in the second storage unit, and a log is updated in the second storage unit. A management information storage unit for storing as information, 상기 기동 동작을 시작할 때 상기 로그가 상기 제2 저장 유닛에 존재하는 경우, 상기 스냅샷과 상기 로그에 기초하여 상기 제1 저장 유닛에 있는 상기 관리 정보를 복구한 후 상기 스냅샷을 다시 취하여 상기 제2 저장 유닛에 저장하는 관리 정보 복구 유닛을 포함하는, 메모리 시스템.If the log exists in the second storage unit when starting the startup operation, the snapshot is taken again after restoring the management information in the first storage unit based on the snapshot and the log; And a management information recovery unit for storing in the two storage units. 제1항에 있어서,The method of claim 1, 상기 로그는, 상기 관리 정보에서 변경이 발생하기 전에 획득된 프리 로그(pre-log)와, 상기 관리 정보에서 변경이 발생한 후에 획득된 포스트 로그(post-log)를 포함하는, 메모리 시스템.The log comprises a pre-log obtained before a change occurs in the management information and a post-log obtained after a change occurs in the management information. 제2항에 있어서,The method of claim 2, 상기 관리 정보 복구 유닛은, 상기 메모리 시스템이 전원의 비정상적 분리(abnormal isolation)로부터 리셋되는 경우, 상기 스냅샷을 다시 취하여 상기 제2 저장 유닛에 저장하는, 메모리 시스템.And the management information recovery unit takes the snapshot again and stores it in the second storage unit when the memory system is reset from abnormal isolation of power. 제2항에 있어서,The method of claim 2, 상기 제2 저장 유닛은,The second storage unit, 상기 스냅샷을 저장하기 위한 스냅샷 저장 영역과,A snapshot storage area for storing the snapshot; 상기 프리 로그를 저장하기 위한 프리 로그 저장 영역과,A prelog storage area for storing the prelog; 상기 포스트 로그를 저장하기 위한 포스트 로그 저장 영역과,A post log storage area for storing the post log; 상기 스냅샷 저장 영역, 상기 프리 로그 저장 영역, 상기 포스트 로그 저장 영역의 저장 위치들을 가리키는 포인터를 저장하기 위한 포인터 저장 영역을 포함하는, 메모리 시스템.And a pointer storage area for storing pointers indicating storage positions of the snapshot storage area, the prelog storage area, and the post log storage area. 제4항에 있어서,The method of claim 4, wherein 상기 스냅샷 저장 영역, 상기 프리 로그 저장 영역, 상기 포스트 로그 저장 영역, 상기 포인터 저장 영역의 각각은 데이터 소거 단위인 블록을 포함하는, 메모리 시스템.Each of the snapshot storage area, the prelog storage area, the post log storage area, and the pointer storage area includes a block that is a data erasing unit. 제5항에 있어서,The method of claim 5, 상기 프리 로그와 상기 포스트 로그의 각각은, 상기 프리 로그와 상기 포스트 로그가 차이 정보로서 획득될 때마다 상기 프리 로그 저장 영역과 상기 포스트 로그 저장 영역에 페이지 단위로 라이트-원스(write-once) 방식으로 각각 기입되고, 상기 페이지 단위는 상기 블록의 크기보다 작은, 메모리 시스템.Each of the prelog and the postlog is a write-once method in pages in the prelog storage area and the postlog storage area whenever the prelog and the postlog are acquired as difference information. And each page unit is smaller than the size of the block. 제6항에 있어서,The method of claim 6, 상기 프리 로그 저장 영역의 상위 페이지(higher order page)에 프리 로그를 기입하는 동안 전원의 비정상적 분리가 발생하면, 상기 관리 정보 복구 유닛은 상기 기동 동작 동안의 포스트 로그와 스냅샷에 기초하여 상기 관리 정보의 복구를 수행하는, 메모리 시스템.If abnormal separation of power occurs while writing a free log on a higher order page of the free log storage area, the management information recovery unit is configured to perform the management information based on a post log and a snapshot during the startup operation. To perform recovery of memory system. 제6항에 있어서,The method of claim 6, 상기 포스트 로그 저장 영역의 상위 페이지에 포스트 로그를 기입하는 동안 전원의 비정상적 분리가 발생하면, 상기 관리 정보 복구 유닛은 상기 기동 동작 동안의 프리 로그와 스냅샷에 기초하여 상기 관리 정보의 복구를 수행하는, 메모리 시스템.If abnormal separation of power occurs while writing a post log to an upper page of the post log storage area, the management information recovery unit performs recovery of the management information based on a free log and a snapshot during the startup operation. , Memory system. 제6항에 있어서,The method of claim 6, 상기 프리 로그 저장 영역의 상위 페이지에 프리 로그를 기입한 후 상기 프리 로그에 대응하는 데이터의 기입 동안 에러가 발생하고 데이터 재기입 처리에 대응하는 상기 프리 로그의 기입 동안 전원의 비정상적 분리가 발생하면, 상기 관리 정보 복구 유닛은 상기 기동 동작 동안의 포스트 로그와 스냅샷에 기초하여 상기 관리 정보의 복구를 수행하는, 메모리 시스템.If an error occurs during the writing of the data corresponding to the prelog after writing the prelog to the upper page of the prelog storage area and abnormal separation of the power occurs during the writing of the prelog corresponding to the data rewriting process, And the management information recovery unit performs recovery of the management information based on a post log and a snapshot during the startup operation. 제6항에 있어서,The method of claim 6, 상기 프리 로그 저장 영역의 상위 페이지에 프리 로그의 기입이 수행된 후 상기 프리 로그에 대응하는 데이터 기입 동안 에러가 발생하고, 후속하여 데이터 재기입 처리에 대응하는 상기 프리 로그의 기입이 수행되고, 상기 데이터 재기입 처리에 대응하는 상기 포스트 로그의 기입이 상기 포스트 로그 저장 영역의 상위 페이지에 수행된 후 처음의 데이터 기입에 대응하는 포스트 로그의 기입 동안 전원의 비정상적 분리가 발생하면, 상기 관리 정보 복구 유닛은 상기 기동 동작 동안의 프리 로그와 스냅샷에 기초하여 상기 관리 정보의 복구를 수행하는, 메모리 시스템.An error occurs during data writing corresponding to the prelog after writing of the prelog to an upper page of the prelog storage area, and subsequently writing of the prelog corresponding to the data rewriting process is performed. The management information recovery unit if an abnormal separation of the power supply occurs during the writing of the post log corresponding to the first data writing after the writing of the post log corresponding to the data rewriting process is performed to the upper page of the post log storage area; Performs recovery of the management information based on a free log and a snapshot during the startup operation. 제6항에 있어서,The method of claim 6, 상기 프리 로그 저장 영역의 두 개의 상위 페이지에 걸쳐 프리 로그를 기입하는 동안 전원의 비정상적 분리가 발생하면, 상기 관리 정보 복구 유닛은 상기 기동 동작 동안의 포스트 로그와 스냅샷에 기초하여 상기 관리 정보의 복구를 수행하는, 메모리 시스템.If abnormal separation of power occurs while writing the prelog over two upper pages of the prelog storage area, the management information recovery unit restores the management information based on the post log and the snapshot during the startup operation. To do that, a memory system. 제6항에 있어서,The method of claim 6, 상기 포스트 로그 저장 영역의 두 개의 상위 페이지에 걸쳐 포스트 로그를 기입하는 동안 전원의 비정상적 분리가 발생하면, 상기 관리 정보 복구 유닛은 상기 기동 동작 동안의 프리 로그와 스냅샷에 기초하여 상기 관리 정보의 복구를 수행하는, 메모리 시스템.If abnormal detachment of power occurs while writing a post log across two upper pages of the post log storage area, the management information recovery unit recovers the management information based on a prelog and a snapshot during the startup operation. To do that, a memory system. 제1항에 있어서,The method of claim 1, 상기 제1 저장 유닛은 DRAM이고 상기 제2 저장 유닛은 NAND 플래시 메모리인, 메모리 시스템.And the first storage unit is a DRAM and the second storage unit is a NAND flash memory. 메모리 시스템으로서,As a memory system, 휘발성 제1 저장 유닛과,A volatile first storage unit, 다치 데이터를 저장할 수 있는 메모리 셀을 포함하는 비휘발성 제2 저장 유닛과,A nonvolatile second storage unit including a memory cell capable of storing multi-value data; 상기 제1 저장 유닛을 통해 호스트 장치와 상기 제2 저장 유닛 사이에서 데 이터 전달을 수행하고, 상기 메모리 시스템의 기동 동작 동안 상기 제2 저장 유닛에 저장된 데이터의 저장 위치를 포함하는 관리 정보를 상기 제1 저장 유닛에 저장하고, 저장한 관리 정보를 갱신하면서 상기 저장한 관리 정보에 기초하여 상기 제1 저장 유닛과 상기 제2 저장 유닛의 데이터 관리를 수행하는 컨트롤러를 포함하고, Performing data transfer between the host device and the second storage unit via the first storage unit, and storing management information including a storage location of data stored in the second storage unit during a startup operation of the memory system. A controller configured to perform data management of the first storage unit and the second storage unit based on the stored management information while storing the stored management information in the first storage unit; 상기 컨트롤러는,The controller, 소정의 조건이 충족되는 경우, 상기 제1 저장 유닛에 저장되어 있는 상기 관리 정보를 상기 제2 저장 유닛에 스냅샷으로서 저장하고, 로그를 상기 제2 저장 유닛에 상기 관리 정보의 갱신 차이 정보로서 저장하는 관리 정보 저장 유닛과,When a predetermined condition is satisfied, the management information stored in the first storage unit is stored as a snapshot in the second storage unit, and a log is stored in the second storage unit as update difference information of the management information. A management information storage unit, 상기 기동 동작을 시작할 때 상기 로그가 상기 제2 저장 유닛에 존재하는 경우 상기 스냅샷과 상기 로그에 기초하여 상기 제1 저장 유닛에 있는 상기 관리 정보를 복구하고, 상기 기동 동작을 시작할 때 상기 로그가 상기 제2 저장 유닛에 존재하지 않는 경우 상기 스냅샷에 기초하여 상기 제1 저장 유닛에 있는 상기 관리 정보를 복구하는 관리 정보 복구 유닛을 포함하고,Restore the management information in the first storage unit based on the snapshot and the log when the log exists in the second storage unit when starting the startup operation; A management information recovery unit for recovering the management information in the first storage unit based on the snapshot when not present in the second storage unit, 상기 관리 정보 저장 유닛은, 대기 신호, 슬립(sleep) 신호, 리셋 신호 중 하나의 신호가 수신되면, 상기 하나의 신호에 의해 지정된 지정 상태로 전환하기 전에 상기 스냅샷을 다시 취해야 하는지 여부를 결정하는, 메모리 시스템.The management information storage unit, upon receiving one of the wait signal, the sleep signal, and the reset signal, determines whether to take the snapshot again before switching to the designated state designated by the one signal. , Memory system. 제14항에 있어서,The method of claim 14, 상기 관리 정보 저장 유닛은, 상기 하나의 신호가 수신되면, 상기 제2 저장 유닛에 저장되어 있는 스냅샷에 대응하는 상기 프리 로그의 로그 길이가 소정의 크 기 이상인 경우 스냅샷을 다시 취하고 상기 로그 길이가 상기 소정의 크기보다 작으면 스냅샷을 취하지 않는, 메모리 시스템.The management information storage unit, when the one signal is received, retakes the snapshot if the log length of the prelog corresponding to the snapshot stored in the second storage unit is greater than or equal to a predetermined size, and the log length. Does not take a snapshot if is less than the predetermined size. 제15항에 있어서,The method of claim 15, 상기 소정의 크기는, 상기 로그의 로그 길이가 상기 소정의 크기보다 작은 경우, 대기 상태, 슬립 상태, 또는 리셋 상태로부터 상기 메모리 시스템을 기동하는 기동 시간이 상기 메모리 시스템의 규격의 의해 설정된 시간을 초과하지 않는 크기로서 결정되는, 메모리 시스템.The predetermined size is such that, when the log length of the log is smaller than the predetermined size, a startup time for starting the memory system from a standby state, a sleep state, or a reset state exceeds a time set by the standard of the memory system. A memory system, determined by its size not to. 제14항에 있어서,The method of claim 14, 상기 제2 저장 유닛은,The second storage unit, 상기 스냅샷을 저장하기 위한 스냅샷 저장 영역과,A snapshot storage area for storing the snapshot; 상기 로그를 저장하기 위한 로그 저장 유닛과,A log storage unit for storing the log; 상기 스냅샷 저장 영역과 상기 로그 저장 유닛의 저장 위치들을 가리키는 포인터를 저장하기 위한 포인터 저장 영역을 포함하는, 메모리 시스템.And a pointer storage area for storing pointers pointing to the snapshot storage area and storage locations of the log storage unit. 제17항에 있어서,The method of claim 17, 상기 스냅샷 저장 영역, 상기 로그 저장 영역, 상기 포인터 저장 영역의 각각은 데이터 소거 단위인 블록을 포함하는 메모리 시스템.Each of the snapshot storage area, the log storage area, and the pointer storage area includes a block that is a data erasing unit. 제18항에 있어서,The method of claim 18, 상기 로그는, 상기 로그가 차이 정보로서 획득될 때마다 상기 로그 저장 영역에 페이지 단위로 라이트-원스(write-once) 방식으로 기입되고, 상기 페이지 단위는 상기 블록의 크기보다 작은, 메모리 시스템.The log is written in a write-once manner in units of pages in the log storage area whenever the log is obtained as difference information, and the pages are smaller than the size of the block. 제14항에 있어서,The method of claim 14, 상기 제1 저장 유닛은 DRAM이고 상기 제2 저장 유닛은 NAND 플래시 메모리인, 메모리 시스템.And the first storage unit is a DRAM and the second storage unit is a NAND flash memory.
KR1020097018070A 2008-02-29 2009-02-10 Memory system KR101103201B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2008-051340 2008-02-29
JPJP-P-2008-051452 2008-03-01
PCT/JP2009/052599 WO2009107507A1 (en) 2008-02-29 2009-02-10 Memory system

Publications (2)

Publication Number Publication Date
KR20090106421A true KR20090106421A (en) 2009-10-08
KR101103201B1 KR101103201B1 (en) 2012-01-05

Family

ID=41536042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018070A KR101103201B1 (en) 2008-02-29 2009-02-10 Memory system

Country Status (1)

Country Link
KR (1) KR101103201B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277382B1 (en) * 2010-02-26 2013-06-20 가부시끼가이샤 도시바 Memory system
US8589647B2 (en) 2010-06-15 2013-11-19 Samsung Electronics Co., Ltd. Apparatus and method for synchronizing a snapshot image

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999032977A1 (en) 1997-12-22 1999-07-01 Tdk Corporation Flash memory system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277382B1 (en) * 2010-02-26 2013-06-20 가부시끼가이샤 도시바 Memory system
US8589647B2 (en) 2010-06-15 2013-11-19 Samsung Electronics Co., Ltd. Apparatus and method for synchronizing a snapshot image

Also Published As

Publication number Publication date
KR101103201B1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
US11573712B2 (en) Memory system storing management information and method of controlling same
US8285954B2 (en) Memory system managing a plurality of logs
KR101103110B1 (en) Memory system
KR101099804B1 (en) Memory system
KR101102155B1 (en) Memory system
KR101103201B1 (en) Memory system
JP4551938B2 (en) Memory system
JP2009211188A (en) Memory system
JP2009211213A (en) Memory system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee