KR101103201B1 - Memory system - Google Patents
Memory system Download PDFInfo
- Publication number
- KR101103201B1 KR101103201B1 KR1020097018070A KR20097018070A KR101103201B1 KR 101103201 B1 KR101103201 B1 KR 101103201B1 KR 1020097018070 A KR1020097018070 A KR 1020097018070A KR 20097018070 A KR20097018070 A KR 20097018070A KR 101103201 B1 KR101103201 B1 KR 101103201B1
- Authority
- KR
- South Korea
- Prior art keywords
- log
- management information
- snapshot
- storage unit
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection 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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
메모리 시스템은 관리 정보 복구 유닛을 포함한다. 관리 정보 복구 유닛은 NAND 메모리 내의 프리 로그 또는 포스트 로그를 참조하여 순단이 발생하였는지 여부를 결정한다. 관리 정보 복구 유닛은 프리 로그 또는 포스트 로그가 NAND 메모리 내에 존재하는 경우 순단이 발생하였다고 결정한다. 이 경우, 관리 정보 복구 유닛은 순단의 발생 타이밍을 결정하고, 복구를 위해 사용되는 프리 로그 또는 포스트 로그를 선택한 후, 이러한 로그들을 스냅샷에 반영하는 관리 정보 복구를 수행한다. 이후, 관리 정보 복구 유닛은 NAND 메모리 내의 모든 라이트-원스형 블록들에 복구 처리를 적용하고, 스냅샷을 다시 취하고, 과거의 로그와 스냅샷을 개방한다.
메모리 시스템, 관리 정보 저장 유닛, 관리 정보 복구 유닛, 로그, 스냅샷
The memory system includes a management information recovery unit. The management information recovery unit refers to the prelog or postlog in the NAND memory to determine whether or not stepping has occurred. The management information recovery unit determines that patience has occurred when the prelog or postlog exists in the NAND memory. In this case, the management information recovery unit determines the timing of occurrence of the step, selects a prelog or post log used for recovery, and then performs management information recovery that reflects these logs in a snapshot. Thereafter, the management information recovery unit applies recovery processing to all write-once blocks in the NAND memory, retakes the snapshot, and opens the past log and snapshot.
Memory system, management information storage unit, management information recovery unit, log, snapshot
Description
본 발명은 비휘발성 반도체 저장 디바이스를 채용하는 메모리 시스템에 관한 것이다.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. It includes a controller for performing data management of the first storage unit and the second storage unit while updating. 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 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
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
NAND 메모리(12)는 내부에 데이터를 저장하기 위한 저장 유닛으로서 사용된다. 특히, NAND 메모리(12)는 호스트 장치에 의해 지정된 데이터를 내부에 저장하고, 백업을 위해 DRAM(11)에 의해 관리되는 관리 정보를 내부에 저장한다. 도 1에서는, 4개의 채널(120A 내지 120D)을 포함하는 NAND 메모리(12)를 일 예로 도시하고 있다. 채널들(120A 내지 120D)의 각각은 두 개의 패키지(121)를 포함하며, 각 패키지는 소정 크기의 저장 용량(예를 들어, 2GB)을 갖는 8개의 칩(122)을 포함한다. 채널들(120A 내지 120D)은 구동 제어 유닛(14)과 버스들(15A 내지 15D)을 통해 연결된다.The
전원 회로(13)는, 외부 전원을 수신하고, 외부 전원으로부터 메모리 시스템(10)의 각 유닛에 공급될 복수의 내부 전원을 생성한다. 전원 회로(13)는 외부 전원의 상태, 상승 에지 또는 하강 에지를 검출하고, 검출한 상태에 기초하여 파워온 리셋 신호를 생성하고, 파워온 리셋 신호를 구동 제어 유닛(14)에 출력한다.The
구동 제어 유닛(14)은 DRAM(11)과 NAND 메모리(12)를 제어한다. 상세히 후술하는 바와 같이, 예를 들어, 구동 제어 유닛(14)은 전원 회로(13)로부터의 파워온 리셋 신호에 따라 관리 정보에 대한 복구 처리 및 관리 정보에 대한 저장 처리를 수행한다. 구동 제어 유닛(14)은 데이터를 ATA 인터페이스(I/F)를 통해 호스트 장치에 대하여 송수신하고, 데이터를 RS232C I/F를 통해 디버깅 장치에 대하여 송수신한다. 게다가, 구동 제어 유닛(14)은 메모리 시스템(10)의 외측 상에 제공된상태 표시용 LED의 온/오프를 제어하기 위한 제어 신호를 출력한다.The
이하, NAND 메모리(12)의 구성을 상세히 설명한다. NAND 메모리(12)는 데이터 소거 단위인 복수의 블록(소거 단위 영역)을 기판 상에 배치함으로써 구성된다. 도 2는 NAND 메모리(12)의 임의의 블록의 구성의 일 예의 회로도이다. 도 2에서, 좌우 방향은 X 방향으로 설정되고 X 방향에 수직하는 방향은 Y 방향으로 설정된다.Hereinafter, the configuration of the
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
각 메모리 셀 트랜지스터(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
비트 라인들(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
도 3B에 도시한 바와 같이, NAND 메모리(12)는, 호스트 장치에 의해 기입되도록 요청된 데이터가 저장되는 데이터 저장 영역(125)과, DRAM(11)의 임시 저장 영역(111)에서 관리되는 관리 정보가 저장되는 관리 정보 저장 영역(126)을 포함한다. 이 예에서는, NAND 메모리(12) 내의 데이터 기입 및 판독 단위가 페이지 크기 단위로서 설정된다. 소거 단위는 블록 크기 단위로서 설정된다. 따라서, 블록 크기 단위로 관리되는 NAND 메모리(12)의 각 블록들을 저장하기 위한 영역을 페이지 크기 단위의 영역들로 더 나눈다.As shown in FIG. 3B, the
이하에서는, 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
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
도 5는 캐시 관리 정보(41)의 일 예를 표의 형태로 도시한다. 캐시 관리 정보(41)는 DRAM(11)의 하나의 페이지 크기의 하나의 영역에 대한 하나의 엔트리이다. 엔트리의 개수는 기입 캐시 영역(WC)과 판독 캐시 영역(RC)에 맞는 페이지의 개수 이하이다. 엔트리들의 각각에서는, 페이지 크기의 데이터의 LBA, DRAM내 물리적 어드레스, 및 이 페이지를 섹터 크기로 나눔으로써 얻어지는 영역들의 각각에 있는 유효 데이터의 위치를 가리키는 섹터 플래그가 연관된다.5 shows an example of the
NAND 메모리(12)에서, DRAM(11)으로부터의 데이터는 NAND 메모리(12) 상의 소정의 범위 내의 물리적 어드레스(이하, NAND내 물리적 어드레스라 함)에 저장된다. 다치 메모리에 의해 형성된 NAND 메모리(12)에서는, 재기입가능 횟수가 제한되기 때문에, NAND 메모리(12)를 구성하는 블록들에 대한 재기입 횟수는 구동 제어 유닛(14)에 의해 균등해지도록 제어된다. 다시 말하면, NAND 메모리(12)의 소정의 NAND내 물리적 어드레스에 기입된 데이터의 갱신이 수행되는 경우, 구동 제어 유닛(14)은, NAND 메모리(12)를 구성하는 블록들에 대한 재기입 횟수를 균등화하는 제어를 수행하여, 갱신할 데이터가 포함되어 있는 블록에서 갱신 요청되는 일부를 반영하는 데이터를 초기 블록과는 다른 블록에 기입하고, 그 초기 블록을 무효화한다.In the
전술한 바와 같이, NAND 메모리(12)에서, 처리 유닛들은 데이터에 대한 기입과 판독 처리 및 데이터에 대한 소거 처리에 있어서 서로 다르다. 데이터에 대한 갱신 처리에서는, 갱신 전 데이터의 위치(블록)와 갱신 후 데이터의 위치(블록)가 다르다. 따라서, 제1 실시예에서는, NAND 메모리(12)에서 독립적으로 사용되는 NAND내 논리적 어드레스(이하, NAND내 논리적 어드레스라 함)가 NAND내 물리적 어드레스에 더하여 제공된다.As described above, in the
따라서, 논리적 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
도 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
이러한 종류의 관리 정보를 이용함으로써, 호스트 장치에서 사용되는 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
DRAM 관리층(31)에 의해 관리되는 관리 정보는 파워오프 등으로 인해 손실되며 이에 따라 이 관리 정보를 휘발성 테이블이라 칭할 수 있다. 반대로, 논리적 NAND 관리층(32)과 물리적 NAND 관리층(33)에 의해 관리되는 관리 정보가 파워오프 등으로 인해 손실되면, 손실된 관리 정보는 메모리 시스템(10)의 성공적인 기동을 방해하므로 파워오프 등의 경우에도 관리 정보가 저장되도록 조치를 취해야 한다. 따라서, 이 관리 정보를 비휘발성 테이블이라 칭할 수 있다.The management information managed by the
이러한 비휘발성 테이블은 NAND 메모리(12)에 저장된 데이터를 관리한다. 비휘발성 테이블이 존재하지 않으면, NAND 메모리(12)에 저장된 정보는 액세스될 수 없으며 또는 영역에 저장된 데이터가 소거된다. 따라서, 비휘발성 테이블은 갑작스런 파워오프에 대비하여 최신 정보로서 저장될 필요가 있다. 따라서, 제1 실시예에서, 적어도 비휘발성 테이블을 포함하는 관리 정보는 NAND 메모리(12)의 관리 정보 저장 영역(126)에 최신 상태로 저장된다. 이하, NAND 메모리(12)의 관리 정보 저장 영역(126)에 저장된 관리 정보 저장 정보를 설명한다. 다음에 따르는 설명에서는 비휘발성 테이블만이 관리 정보 저장 영역(126)에 저장된다고 가정한다.This nonvolatile table manages data stored in the
도 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
스냅샷(210), 프리 로그(220A), 포스트 로그(220B), 제2 포인터(230), 루트 포인터(240)는 서로 다른 블록들에 저장된다. 이 블록들의 크기는 소거 단위로서 물리적 블록의 크기와 같다. 스냅샷(210)은 스냅샷 저장 블록에 저장된다. 스냅샷(210)은 논리적 NAND 관리 정보(42)와 NAND내 논리적-물리적 변환 정보(43)를 NAND 메모리(12)의 관리 정보 저장 영역(126)에 비휘발성 테이블로서 포함한다. 새로운 스냅샷(210)이 저장되는 경우, 스냅샷(210)은 이전에 저장된 스냅샷(210)의 블록과는 다른 블록에 저장된다.The
프리 로그(220A)와 포스트 로그(220B)는, 데이터 기입 처리 등에 대응하는 스냅샷(210)(또는 스냅샷(210)과 이전에 생성된 로그)과, 비휘발성 테이블의 내용에 변경이 있는 경우 내용이 변경된 후의 비휘발성 테이블 사이의 차이 정보이다. 특히, 스냅샷(210)을 취한 후 제1 프리 로그(220A)와 제1 포스트 로그(220B)는 비휘발성 테이블과 스냅샷(210) 사이의 차이 정보이다. 스냅샷(210)을 취한 후의 제2 또는 후속 프리 로그(220A)는 미리 생성되어 있는 프리 로그(220A)와 스냅샷(210)의 조합 및 비휘발성 테이블 사이의 차이 정보이다. 스냅샷(210)을 취한 후의 제2 또는 후속 포스트 로그(220B)는 미리 생성되어 있는 포스트 로그(220B)와 스냅샷(210)의 조합 및 비휘발성 테이블 사이의 차이 정보이다.The
프리 로그(220A)는 관리 정보가 실제로 갱신되기 전에 생성된 정보이다. 따라서, 관리 정보가 데이터 기입 처리 등의 실행에 의해 실제로 갱신되기 전에, 프리 로그(220A)는 관리 정보가 어떻게 갱신되는지에 관한 갱신 스케쥴에 기초하여 생성된다.The
포스트 로그(220B)는 관리 정보가 실제로 갱신된 후에 생성된 정보이다. 따라서, 포스트 로그(220B)는, 데이터 기입 처리 등의 실행에 따라 관리 정보가 실제로 갱신된 후에 실제 관리 정보를 이용함으로써 생성된다.The
프리 로그(220A)와 포스트 로그(220B)는 로그 저장 블록들에 각각 저장된다. 프리 로그(220A)와 포스트 로그(220B)는 스냅샷이 변경되더라도 라이트-원스(write-once) 방식으로 동일한 로그 저장 블록들에 기입된다.The
도 9는 로그의 일 예를 도시한다. 프리 로그(220A)와 포스트 로그(220B)는 동일한 정보를 갖기 때문에, 프리 로그(220A)를 로그의 일 예로서 설명한다. 프리 로그(220A)는 변경 타겟의 관리 정보인 타겟 정보와, 타겟 정보에서 변경 타겟의 엔트리인 타겟 엔트리와, 타겟 엔트리에서 변경 타겟의 항목인 타겟 항목과, 타겟 항목에서 변경되는 내용인 변경 내용을 포함한다. 프리 로그(220A)와 포스트 로그(220B)는, 이들이 스냅샷(210)에 대한 갱신 차이 정보이기 때문에, 새로운 스냅샷(210)의 저장에 따라 재형성(reform)된다.9 shows an example of a log. Since the pre log 220A and the
제2 포인터(230)는 제2 포인터 저장 블록에 저장된다. 제2 포인터(230)는 스냅샷(210), 프리 로그(220A), 포스트 로그(220B)의 저장 위치들을 가리키는 블록의 탑 어드레스를 가리키는 포인터이면 된다. 제2 포인터(230)는, 스냅샷(210)이 새롭게 저장될 때 또는 스냅샷 저장 블록이나 로그 저장 블록이 변경될 때 갱신된다. 프리 로그(220A)와 포스트 로그(220B)의 포인터들은 제2 포인터 저장 블록이 아니라 스냅샷(210)에 저장될 수도 있다.The
제2 포인터(230)는 스냅샷 저장 블록에 액세스하기 위한 스냅샷 액세스 정보와, 프리 로그(220A)와 포스트 로그(220B)를 위한 로그 저장 블록들에 액세스하기 위한 로그 액세스 정보와, 다음 제2 포인터가 저장되는 페이지 위치를 가리키는 다음 포인터(next pointer)를 포함한다. 제2 포인터(230)는 이 다음 포인터에 의해 링크된 리스트 시스템의 정보로 변경된다. 루트 포인터(240)에 의해 지정된 제2 포인터 저장 블록의 탑 페이지로부터 다음 포인터를 추적함으로써 최신 제2 포인터(230)에 도달할 수 있다. 링크된 리스트 시스템 대신에, 제2 포인터(230)는 제2 포인터 저장 영역의 탑 페이지로부터 순서대로 라이트-원스 방식으로 저장될 수 있다.The
루트 포인터(240)는 제1 루트 포인터 저장 블록에 저장된다. 루트 포인터(240)는, 제2 포인터(230)가 저장되는 제2 포인터 저장 블록에 액세스하기 위한 정보이며, 메모리 시스템(10)을 기동할 때 관리 정보를 복구하기 위한 처리 시 먼저 판독되는 정보이다. 루트 포인터(240)는 제2 포인터 저장 블록이 변경될 때 변경된다. 루트 포인터(240)는 블록의 탑 페이지로부터 순서대로 라이트-원스 방식으로 루트 포인터 저장 블록에 저장된다. 이 경우, 루트 포인터 저장 블록에서 미기입 페이지에 바로 선행하는 페이지가 최신 정보를 갖는다. 따라서, 미기입 페이지의 최상위 페이지를 검색함으로써 최신 루트 포인터를 검색할 수 있다. 제2 포인터(230)의 경우와 같이, 링크된 리스트를 사용할 수도 있다.The
루트 포인터(240)는 NAND 메모리(12)의 고정 영역(1261)에 저장된다. 스냅샷(210), 프리 로그(220A), 포스트 로그(220B), 제2 포인터(230)는 NAND 메모리(12)의 가변 영역(1262)에 저장된다. 고정 영역(1261)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 NAND 메모리(12)에서 고정된 보호 영역이며, 메모리 시스템(10)을 실행하는 데 필요하며 재기입 및 기입이 거의 발생하지 않는 저 갱신 빈도로 정보가 저장되는 영역이다.The
가변 영역(1262)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 고정 영 역(1261)을 제외한 NAND 메모리(12)의 영역에서 가변적인 영역이며, 마모 균등화의 타겟인 영역이다.The
이하, 구동 제어 유닛(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
도 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
관리 정보 관리 유닛(152)은 관리 정보 기입 유닛(153)과 관리 정보 저장 유닛(154)을 포함한다. 관리 정보 기입 유닛(153)은, 데이터 전달 처리 유닛(151)에 의해 DRAM(11) 또는 NAND 메모리(12)에 저장된 데이터에 대한 변경 처리에 따라 관리 정보의 갱신이 필요한 경우 DRAM(11)에 저장된 관리 정보의 갱신을 수행한다.The management
메모리 시스템(10)이 소정의 조건을 충족하는 경우, 관리 정보 저장 유닛(154)은, NAND 메모리(12)의 관리 정보 저장 영역(126)에, 관리 정보를 스냅샷으로서, 관리 정보에서 갱신될 정보를 프리 로그(220A)로서, 관리 정보에서 갱신된 정보를 포스트 로그(220B)로서 저장한다. 스냅샷(210), 프리 로그(220A), 또는 포스트 로그(220B)의 저장에 따라 제2 포인터(230)의 기입 위치가 변경되면, 관리 정보 저장 유닛(154)은 갱신 처리를 제2 포인터(230)에 적용한다.When the
스냅샷(210)은, 메모리 시스템(10)에 관한 소정의 조건이 충족되는 경우 관리 정보 저장 유닛(154)에 의해 저장된다. 스냅샷(210)은, 예를 들어, NAND 메모리(12)의 관리 정보 저장 영역(126)에서 로그(220)(프리 로그(220A)와 포스트 로그(220B))를 저장하도록 제공된 로그 저장 영역이 풀(full) 상태로 된 경우(즉, 이 영역이 데이터로 완전히 채워진 경우), 저장된다.The
로그(220)(프리 로그(220A)와 포스트 로그(220B))는, DRAM(11)에 저장된 관리 정보(비휘발성 테이블)의 갱신을 포함하여 NAND 메모리(12) 상에서 (NAND 메모 리(12)의 데이터 기입이 필요한 경우) 데이터가 갱신되는 동안 관리 정보 저장 유닛(154)에 의해 저장된다.The log 220 (pre-log 220A and post log 220B) is stored on the
관리 정보 저장 유닛(154)이 프리 로그(220A)와 포스트 로그(220B)를 저장하는 타이밍은 DRAM(11)에 저장된 관리 정보(비휘발성 테이블)의 갱신이 관리 정보 기입 유닛(153)에 의해 수행될 때이다. 특히, 프리 로그(220A)와 포스트 로그(220B)는 데이터 기입 등을 수행하는 처리 전과 후에 저장된다.The timing at which the management
메모리 시스템(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
이하, 관리 정보 관리 유닛(152)에 의한 메모리 시스템(10)의 관리 정보의 저장 처리를 설명한다. 도 12는 메모리 시스템(10)의 관리 정보에 대한 저장 처리 절차의 일 예의 흐름도이다. 도 13은 프리 로그와 포스트 로그에 대한 저장 처리를 설명하기 위한 도이다. 메모리 시스템(10)이 호스트 장치에 연결되며 호스트 장치의 이차 저장 디바이스로서 동작하고, 호스트 장치(메모리 시스템(10))는 기동 상태에 있으며, 스냅샷(210)은 이러한 기동 상태 전 메모리 시스템(10)의 정지 전에 저장되어 있다고 가정한다.Hereinafter, the storage processing of the management information of the
먼저, 호스트 장치(메모리 시스템(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
관리 정보의 갱신에 관한 명령어가 수신되면(단계 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
후속하여, 논리적 NAND 관리층(32)은 단계 S13에서 수신한 명령어(예를 들어, NAND 메모리(12)의 데이터 저장 영역(125)에 사용자 데이터를 기입(X)하기 위한 처리)를 실행한다(단계 S16).Subsequently, the logical
이후, DRAM(11)에 저장되어 있는 관리 정보는 실행된 처리에 따라 갱신된다. 관리 정보 저장 유닛(154)은 관리 정보에서 갱신된 정보를 NAND 메모리(12)의 관리 정보 저장 영역(126)에 포스트 로그(220B)로서 저장한다. 포스트 로그(220B)가 로그 저장 블록에 저장되지 않으면, 포스트 로그(220B)는 현재의 비휘발성 테이블 및 스냅샷 저장 블록에 저장되어 있는 스냅샷(210) 사이의 차이 정보이다. 포스트 로 그(220B)(이하, 과거 포스트 로그(220B)라 칭함)가 로그 저장 블록에 이미 저장되어 있으면, 포스트 로그(220B)는 현재의 비휘발성 테이블 및 스냅샷(210)과 과거 포스트 로그의 조합 사이의 차이 정보이다.Thereafter, the management information stored in the
데이터 기입(X)에 대응하는 포스트 로그(220B)(X)는 NAND 메모리(12)에 포스트 로그(220B)로서 저장된다. 이때, 예를 들어, 정보(y1)가 포스트 로그(220B)로서 저장된다. 포스트 로그(220B)로서 저장된 정보(y1)는 프리 로그(220A)로서 저장된 정보(y1)와 동일하다(단계 S17). 이후, 관리 정보 관리 유닛(152)은 단계 S12로 복귀한다.The
스냅샷 저장 조건이 충족되지 않고(단계 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
단계(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
이하, 관리 정보 복구 유닛(155)에 의해 수행되는 메모리 시스템(10)의 관리 정보의 복구 처리를 설명한다. 도 14는 메모리 시스템(10)의 관리 정보의 복구 처리 절차의 일 예의 흐름도이다. 전술한 바와 같이, 메모리 시스템(10)은 호스트 장치에 연결되고, 호스트 장치의 제2 저장 디바이스로서 동작한다.Hereinafter, the recovery process of the management information of the
먼저, 호스트 장치의 전원은, 예를 들어, 순단으로부터의 복구 때문에, 턴온되고, 기동 명령어가 메모리 시스템(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
이후, 관리 정보 복구 유닛(155)은 NAND 메모리(12)의 프리 로그(220A)와 포스트 로그(220B)를 참조하여 순단이 발생하였는지 여부를 결정한다(단계 S35). 예를 들어, 프리 로그(220A)와 포스트 로그(220B)가 NAND 메모리(12)에 존재하면, 관리 정보 복구 유닛(155)은 순단이 발생하였다고 결정한다. 순단 발생 여부의 결정 은 예를 들어 프리 로그(220A)와 포스트 로그(220B)를 비교함으로써 수행될 수 있다. 제1 실시예에서, 프리 로그(220A)와 포스트 로그(220B)는 동일한 정보를 저장한다. 따라서, 예를 들어, 프리 로그(220A)로서 저장된 페이지들의 수와 포스트 로그(220B)로서 저장된 페이지들의 수가 서로 일치하지 않으면, 이는 순단이 발생하였음을 의미한다. 순단 발생은, ECC 에러의 존재 또는 부재, 프리 로그(220A)로서 저장된 페이지의 데이터, 포스트 로그(220B)로서 저장된 페이지의 데이터에 기초하여 결정될 수도 있다.Thereafter, the management
순단이 발생하였다면(단계 S35에서 예), 관리 정보 복구 유닛(155)은, NAND 메모리(12)의 최신 프리 로그(220A)와 최신 포스트 로그(220B)에 기초하여, 순단이 발생한 타이밍을 체크한다(단계 S36).If stepping has occurred (YES in step S35), the management
또한, 관리 정보 복구 유닛(155)은, NAND 메모리(12)의 최신 프리 로그(220A)와 최신 포스트 로그(220B)에 기초하여, 순단이 발생한 타이밍을 체크한다(단계 S36). 관리 정보 복구 유닛(155)은 순단이 발생한 타이밍이 포스트 로그(220B)의 저장 동안인지 여부를 결정한다(단계 S37). 예를 들어, 포스트 로그(220B)의 최종 페이지가 기입되고 있는 경우, 이 최종 페이지는 판독될 수 없다. 따라서, 포스트 로그(220B)의 저장 동안 순단이 발생하였다고 결정한다. 또한, 포스트 로그(220B)의 저장 동안 순단이 발생하였기 때문에, 순단으로 인해 포스트 로그(220B)에서 하위 페이지의 데이터가 파괴되었을 수 있다. 프리 로그(220A)의 최종 페이지가 기입되는 중이라면, 이 최종 페이지는 판독될 수 없다. 따라서, 프리 로그(220A)의 저장 동안 순단이 발생하였다고 결정한다. 또한, 프리 로그(220A)의 저장 동안 순단이 발생하였기 때문에, 순단으로 인해 프리 로그(220A)에서 하위 페이지의 데이터가 파괴되었을 수 있다. 프리 로그(220A)의 최종 페이지에 로그가 기입되고 포스트 로그(220B)의 과거 페이지에 로그가 기입되지 않으면, 데이터의 기입 동안 순단이 발생하였다고 결정한다.The management
관리 정보 복구 유닛(155)은, 순단이 발생한 타이밍이 포스트 로그(220B)의 저장 동안이라고 결정하면(단계 S37에서 예), 최신 프리 로그(220A)를 선택한다(단계 S38). 반면에, 관리 정보 복구 유닛(155)은, 순단이 발생한 타이밍이 포스트 로그(220B)의 저장 동안이 아니라고 결정하면(단계 S37에서 아니오), 관리 정보 복구 유닛(155)은 저장을 위해 완료되어 있는 최신 포스트 로그(220B)를 선택한다(단계 S39). 다시 말하면, 프리 로그(220A)의 최종 페이지가 기입중이거나 프리 로그(220A)의 최종 페이지에 로그가 기입되고 포스트 로그(220B)의 최종 페이지에 로그가 기입되지 않으면, 최신 포스트 로그(220B)가 선택된다.If the management
이후, 관리 정보 복구 유닛(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
반면에, 순단이 발생하지 않았다면(단계 S35에서 아니오), 관리 정보 복구 유닛(155)은 DRAM(11)의 임시 저장 영역(111)에 관리 정보를 복구하고(단계 S44), 관리 정보 복구 처리가 종료된다.On the other hand, if no step has occurred (NO in step S35), the management
관리 정보 복구 유닛(155)은, 순단으로 인해 파괴된 로그들의 존재 또는 부재에 상관없이, 프리 로그(220A)와 포스트 로그(220B) 중 하나를 선택할 수 있고, 프리 로그(220A)로서 저장된 페이지들의 수와 포스트 로그(220B)로서 저장된 페이지들의 수에 기초하여 관리 정보를 복구할 수 있다. 예를 들어, 프리 로그(220A)로서 저장된 페이지들의 수와 포스트 로그(220B)로서 저장된 페이지들의 수가 동일하다면, 관리 정보 복구 유닛(155)은 프리 로그(220A)를 선택하고 관리 정보를 복구한다. 프리 로그(220A)로서 저장된 페이지들의 수가 포스트 로그(220B)로서 저장된 페이지들의 수보다 크다면, 관리 정보 복구 유닛(155)은 포스트 로그(220B)를 선택하고 관리 정보를 복구한다.The management
도 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
(원숫자 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
(원숫자 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
(원숫자 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
(원숫자 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
관리 정보의 복구를 위해 사용되는 로그를 선택하는 방법의 특정 예를 설명한다. 도 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
도 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
도 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 (
도 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 (
도 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 (
도 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
도 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 (
도 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 (
제1 실시예에서, 전원 등의 비정상적 분리 후에 메모리 시스템(10)이 리셋되면, 관리 정보 복구 유닛(155)은 스냅샷을 다시 취하고, 관리 정보의 복구와 복구 처리가 완료되는 스테이지에서 그 스냅샷을 저장한다. 결국, 과거의 로그가 개방되어 있기 때문에, 순단 등의 영향으로 인해 파괴된 로그가 유지되지 않는다. 메모리 시스템(10)의 신뢰성을 개선할 수 있다.In the first embodiment, if the
제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
스냅샷(210), 로그(220), 제2 포인터(230), 루트 포인터(240)는 서로 다른 블록들에 각각 저장된다. 이러한 블록들의 크기는 소거 단위인 물리적 블록의 크기와 동일하다. 스냅샷(210)은 스냅샷 저장 블록에 저장된다. 스냅샷(210)은 논리적 NAND 관리 정보(42)와 NAND내 논리적 물리적 변환 정보(43)를 NAND 메모 리(12)의 관리 정보 저장 영역(126)의 비휘발성 테이블로서 포함한다. 새로운 스냅샷(210)이 저장되면, 스냅샷(210)은 이전에 저장된 스냅샷(210)의 블록과는 다른 블록에 저장된다.The
로그(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
제2 포인터(230)는 제2 포인터 저장 블록에 저장된다. 제2 포인터(230)는 스냅샷(210)과 로그(220)의 저장 위치들을 가리키는 블록들의 탑 어드레스들을 가리키는 포인터이면 된다. 제2 포인터(230)는 스냅샷(210)이 새롭게 저장될 때 또는 스냅샷 저장 블록과 로그 저장 블록이 변경될 때 갱신된다.The
제2 포인터(230)는, 스냅샷 저장 블록에 액세스하기 위한 스냅샷 액세스 정보, 로그 저장 블록에 액세스하기 위한 로그 액세스 정보, 및 다음 제2 포인터가 저장되는 페이지 위치를 가리키는 다음 포인터를 포함한다. 제2 포인터(230)는, 이러한 다음 포인터에 의해, 링크된 리스트 시스템에서의 정보로 변경된다. 루트 포인터(240)에 의해 지정된 제2 포인터 저장 블록의 탑 페이지로부터 다음 포인터를 추적함으로써 최신 제2 포인터에 도달할 수 있다. 링크된 리스트 시스템 대신에, 제2 포인터(230)는 제2 포인터 저장 영역의 탑 페이지로부터 순서대로 라이트-원스 방식으로 저장될 수 있다. 로그(220)의 탑 어드레스를 가리키는 포인터는 스냅샷(210)에 저장될 수 있다. 제2 포인터(230)는 스냅샷(210)의 탑 어드레스를 가리키는 포인터만을 포함할 수 있다.The
루트 포인터(240)는 루트 포인터 저장 블록에 저장된다. 루트 포인터(240)는, 제2 포인터(230)가 제1 포인터로서 저장되는 제2 포인터 저장 블록에 액세스하기 위한 정보이며, 메모리 시스템(10)이 기동될 때 관리 정보를 복구하기 위한 처리 시 먼저 판독되는 정보이다. 제1 루트 포인터(240)는 제2 포인터 저장 블록이 변경될 때 변경된다. 루트 포인터(240)는, 예를 들어, 루트 포인터 저장 블록의 탑 페이지로부터 순서대로 라이트-원스 방식으로 루트 포인터 저장 블록에 저장된다. 이러한 경우에, 루트 포인터 저장 블록의 미기입 페이지에 바로 선행하는 페이지가 최신 정보를 갖는다. 따라서, 미기입 페이지의 최상위 페이지를 검색함으로써 최신 제1 루트 포인터(240)를 검색할 수 있다. 제2 포인터(230)의 경우와 같이, 링크된 리스트를 사용할 수도 있다.The
루트 포인터(240)는 NAND 메모리(12)의 고정 영역(1261)에 저장된다. 스냅샷(210), 로그(220), 제2 포인터(230)는 NAND 메모리(12)의 가변 영역(1262)에 저장된다. 고정 영역(1261)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 NAND 메모리(12)에서 고정된 보호 영역이며, 재기입 및 기입이 거의 발생하지 않는 저 갱신 빈도를 갖는 메모리 시스템(10)을 실행시키는 데 필요한 정보가 저장된 영역이다.The
반면에, 가변 영역(1262)은, 논리적 NAND 관리층(32)에 의해 관리되는 논리적 블록과 물리적 NAND 관리층(33)에 의해 관리되는 물리적 블록 사이의 관계가 고정 영역(1261)을 제외한 NAND 메모리(12)의 영역에서 가변적인 영역이다. 가변 영역(1262)은 마모 균등화의 타겟 영역이다.On the other hand, in the
구동 제어 유닛(14)의 기능, 데이터 관리 유닛(141)의 기능적 구성 등은 제1 실시예의 경우와 동일하다(도 10과 11 참조). 관리 정보 관리 유닛(152)은 관리 정보 기입 유닛(153)과 관리 정보 저장 유닛(154)을 포함한다. 관리 정보 기입 유닛(153)은, 데이터 전달 처리 유닛(151)에 의해 DRAM(11) 또는 NAND 메모리(12)에 저장된 데이터에 대한 변경 처리에 따라 관리 정보의 갱신일 필요할 때, DRAM(11)에 저장된 관리 정보의 갱신을 수행한다.The functions of the
메모리 시스템(10)이 소정의 조건을 충족하는 경우, 관리 정보 저장 유닛(154)은, NAND 메모리(12)의 관리 정보 저장 영역(126)에, 관리 정보를 스냅샷(210)으로서 그리고 관리 정보에서 갱신될 정보를 로그(220)로서 저장한다. 관 리 정보 저장 유닛(154)은 스냅샷(210) 또는 로그(220)의 저장에 따라 요구되는 포인터 갱신 처리도 수행한다.When the
스냅샷(210)의 저장은, 예를 들어, 후술하는 바와 같이 다음에 따르는 스냅샷 저장 조건들 중 임의의 조건이 충족되는 경우, 관리 정보 저장 유닛(154)에 의해 수행된다.The storage of the
(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
관리 정보 저장 유닛(154)이 로그(220)를 저장하는 타이밍은, (NAND 메모리(12)에서 데이터 기입일 필요한 경우) DRAM(11)에 저장된 관리 정보(비휘발성 테이블)의 갱신이 관리 정보 기입 유닛(153)에 의해 수행될 때이다.The timing at which the management
메모리 시스템(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
스냅샷 저장 조건들 중 (1)에서 설명한 바와 같이, 메모리 시스템(10)은, 메모리 시스템(10)이 대기 신호, 슬립 신호, 또는 리셋 신호를 수신하면 관리 정보 저장 유닛(154)을 이용하여 스냅샷(210)을 저장하도록 설정될 수 있다. 다시 말하면, 메모리 시스템(10)은, 메모리 시스템(10)이 대기 신호, 슬립 신호, 또는 리셋 신호를 수신한 후 지정 상태(대기 상태, 슬립 상태, 또는 리셋 상태)로 전환될 때, 스냅샷(210)을 다시 취하도록 설정될 수 있다. 메모리 시스템(10)이 이러한 방식으로 설정되면, 재기동 동안 스냅샷(210)에만 기초하여 관리 정보를 복구할 수 있으며 로그(220)를 참조할 필요가 없다. 따라서, 기동 시간을 저감시킬 수 있다.As described in (1) of the snapshot storage conditions, the
반면에, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신될 때마다 스냅샷(210)이 다시 취해지면, 예를 들어, 스냅샷(210)이 소정의 순간에 저장된 직후 대기 신호 등이 수신되면, 신호 수신 동안 저장된 로그(220)의 로그 길이(크기)가 매우 짧은 상황이 발생한다. 이러한 경우에, 대기 신호 등의 수신 전에 저장된 스냅샷(210)이 작게 변경된다는 사실에 상관없이, 스냅샷(210)을 다시 취한다. 따라 서, 내용이 약간 갱신되고 기입 효율이 떨어된다는 사실에 상관없이 스냅샷(210)의 기입을 수행한다. 스냅샷(210)이 비휘발성 테이블의 내용이기 때문에, 스냅샷(210)의 크기는 크다. 따라서, 스냅샷(210)의 기입에는 시간이 걸리고 지정 상태로 전환하는 데 오래 걸린다. 스냅샷의 크기는 예를 들어 8MB인 반면, 차이 정보로서 획득된 로그의 크기는 페이지 크기(4KB)이다.On the other hand, if the
또한, 대기 신호, 슬립 신호, 또는 리셋 신호가 수신될 때마다 스냅샷(210)이 항상 다시 취해지면, 기입 전에 수행되는 블록의 소거 때문에 NAND 메모리(12)가 더욱 열화된다. 이러한 방식으로, NAND 메모리(12)를 채용하는 메모리 시스템(10)에서는, 대기 신호 등이 수신될 때마다 스냅샷(210)을 다시 취하기 때문에, 지정 상태로 전환할 때까지의 대기 시간이 길다는 특성에 더하여 메모리 시스템(10)의 내구 수명이 저감된다는 NAND 메모리(12)의 특성으로 인하여 문제점이 있다.In addition, if the
따라서, 제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
도 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
또한, 로그(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
도 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
제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
스위칭 기준 페이지들의 수(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
일반적으로, 메모리 시스템(10)의 기동 시간은 메모리 시스템의 명세에 의존한다. 따라서, n이 크기 때문에 복구에 시간이 걸리고 기동 시간이 메모리 시스템의 명세를 초과하게 되면, 도 19A에 도시한 바와 같은 경우를 선택할 수 없다. 다시 말하면, 참조 페이지들의 수(n번째)는 도 19A에 도시한 경우의 기동 시간이 메모리 시스템의 명세를 충족하는 값이며, 이때 n은 이 값보다 작다.In general, the startup time of the
도 19B에서는, 대기 신호의 생성 후 스냅샷(55)을 다시 취한다. 따라서, 스냅샷(55)에 대한 기입 시간 때문에, 대기 상태로의 전환 시간이 길다는 사실에 더하여, n이 작으면 기입 효율이 떨어진다. 따라서, 도 19B에 도시한 경우를 선택하는 것은 n이 보다 큰 경우에 유익하다고 할 수 있다. 따라서, 도 19A에 도시한 경우도 고려하여, n이 참조 페이지들의 수(n번째) 이상일 때 도 19B에 도시한 경우를 선택하는 것이 바람직하다.In Fig. 19B, the
도 21은 대기, 슬립, 또는 리셋 동안 관리 정보 저장 유닛(154)의 동작을 설명하기 위한 흐름도이다.21 is a flowchart for explaining the operation of the management
관리 정보 저장 유닛(154)은 대기 신호, 슬립 신호, 또는 리셋 신호 중 임의의 신호의 존재 또는 부재를 결정한다(단계 S21). 대기 신호, 슬립 신호, 또는 리셋 신호 중 어떠한 것도 입력되지 않으면(단계 S21에서 아니오), 관리 정보 저장 유닛(154)은 다른 처리를 수행하고(단계 S22) 단계 S21로 복귀한다. 단계 S21에서 대기 신호, 슬립 신호, 또는 리셋 신호 중 임의의 신호가 입력된다고 결정되면(단계 S21에서 예), 관리 정보 저장 유닛(154)은 로그 길이가 소정의 크기 이상인지 여부를 결정한다(단계 S23). 로그 길이가 소정의 크기 이상이라고 결정되면(단계 S23에서 예), 관리 정보 저장 유닛(154)은 새로운 스냅샷을 취하고(단계 S14) 처리를 종료한다. 로그 길이가 소정의 크기보다 작다고 결정되면(단계 S23에서 아니오), 관리 정보 저장 유닛(154)은 새로운 스냅샷을 취하지 않고서 처리를 종료한다. 이후, 메모리 시스템(10)은 대기 신호, 슬립 신호, 또는 리셋 신호에 대응하는 상태로 변경된다.The management
제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
전술한 바에서, DRAM(11)에서의 데이터 관리 단위는 페이지 크기 단위이며, NAND 메모리(12)에서의 데이터 기입 및 판독 단위는 페이지 크기 단위이며, 소거 단위와 관리 단위는 블록 크기 단위이다. 그러나, 이것은 데이터 관리 단위, 데이터 기입 및 판독 단위, 소거 단위, 및 관리 단위가 이러한 크기의 단위들로 한정된다는 것을 의미하지 않는다. 데이터 관리 단위, 데이터 기입 및 판독 단위, 소거 단위, 및 관리 단위로서 임의의 단위를 이용할 수 있다.As described above, the data management unit in the
전하 축적층은 부동 게이트형으로 한정되지 않으며 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)
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 KR20090106421A (en) | 2009-10-08 |
KR101103201B1 true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4987997B2 (en) * | 2010-02-26 | 2012-08-01 | 株式会社東芝 | Memory system |
KR101651204B1 (en) | 2010-06-15 | 2016-08-26 | 삼성전자주식회사 | Apparatus and Method for synchronization of snapshot image |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999032977A1 (en) | 1997-12-22 | 1999-07-01 | Tdk Corporation | Flash memory system |
-
2009
- 2009-02-10 KR KR1020097018070A patent/KR101103201B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999032977A1 (en) | 1997-12-22 | 1999-07-01 | Tdk Corporation | Flash memory system |
Also Published As
Publication number | Publication date |
---|---|
KR20090106421A (en) | 2009-10-08 |
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 | |
KR101099804B1 (en) | Memory system | |
KR101103110B1 (en) | Memory system | |
KR101102155B1 (en) | Memory system | |
KR101103201B1 (en) | Memory system | |
JP4551938B2 (en) | Memory system | |
JP2009211196A (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 |