KR20140075396A - Nonvolatile memory device and method for managing data thereof - Google Patents

Nonvolatile memory device and method for managing data thereof Download PDF

Info

Publication number
KR20140075396A
KR20140075396A KR1020120143691A KR20120143691A KR20140075396A KR 20140075396 A KR20140075396 A KR 20140075396A KR 1020120143691 A KR1020120143691 A KR 1020120143691A KR 20120143691 A KR20120143691 A KR 20120143691A KR 20140075396 A KR20140075396 A KR 20140075396A
Authority
KR
South Korea
Prior art keywords
page
read
block
logical
count
Prior art date
Application number
KR1020120143691A
Other languages
Korean (ko)
Other versions
KR101430637B1 (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 to KR1020120143691A priority Critical patent/KR101430637B1/en
Publication of KR20140075396A publication Critical patent/KR20140075396A/en
Application granted granted Critical
Publication of KR101430637B1 publication Critical patent/KR101430637B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

According to the present invention, provided are a non-volatile memory device in which an erasing operation due to read migration is reduced and a data management method thereof. The data management method of the non-volatile memory device according to the present invention comprises the steps of receiving a read command for a first block; determining attributes of at least one logic page among logic pages included in the first block, in accordance with a block read count representing the number of readings of the first block; programming at least one logic page selectively to a second block according to the determined attributes; and updating a mapping table which indicates a physical address corresponding to at least one logic page after programming.

Description

불휘발성 메모리 장치 및 그것의 데이터 관리 방법{NONVOLATILE MEMORY DEVICE AND METHOD FOR MANAGING DATA THEREOF}[0001] NONVOLATILE MEMORY DEVICE AND METHOD FOR MANAGING DATA THEREOF [0002]

본 발명은 반도체 장치에 관한 것으로서, 더욱 상세하게는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법에 관한 것이다.The present invention relates to a semiconductor device, and more particularly, to a nonvolatile memory device and a data management method thereof.

반도체 메모리 장치(Semiconductor Memory Device)는 크게 휘발성 메모리 장치(Volatile Memory Device)와 불휘발성 메모리 장치(Non-volatile Memory Device)로 구분된다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 불휘발성 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 특히, 불휘발성 메모리 중에서 플래시 메모리(Flash memory)는 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다. Semiconductor memory devices are divided into volatile memory devices and non-volatile memory devices. Volatile memory devices have a fast read / write speed, but their contents are lost when the external power supply is interrupted. On the other hand, the nonvolatile memory device preserves its contents even if the external power supply is interrupted. Therefore, a nonvolatile memory device is used to store contents that should be preserved regardless of whether power is supplied or not. Particularly, among nonvolatile memories, flash memory has a higher degree of integration than conventional EEPROMs, and thus is very advantageous for application as a large capacity auxiliary memory device.

한편, 플래시 메모리의 메모리 블록은 읽기 동작이 반복적으로 수행됨에 따라 데이터 신뢰성이 떨어진다. 예를 들어, 100K회 읽기를 수행한 메모리 블록은 10K회 읽기를 수행한 메모리 블록보다 저장된 데이터에 오류가 발생할 가능성이 높다. 이처럼, 읽기 동작의 반복에 따른 데이터 신뢰성 저하(또는, 읽기 디스터번스)를 방지하기 위해, 플래시 메모리는 읽기 동작이 일정 횟수 이상 수행된 메모리 블록에 대해서 소거 동작을 수행하여, 메모리 블록의 읽기 상태를 초기화한다. 이와 같은 동작을 읽기 마이그레이션(Read Migration, 이하 RM)이라 한다.On the other hand, the memory block of the flash memory is degraded in data reliability as the read operation is repeatedly performed. For example, a memory block that has been read 100K times is more likely to have errors in stored data than a memory block that has been read 10K times. In order to prevent degradation of data reliability (or read disturbance) due to repetition of the read operation, the flash memory performs an erase operation on the memory block in which the read operation has been performed more than a predetermined number of times, thereby initializing the read state of the memory block do. Such an operation is referred to as read migration (RM).

그러나, RM을 위해 잦은 소거 동작이 수행되는 경우, 소거 동작에는 많은 시간이 걸리므로 플래시 메모리의 동작 속도가 저하될 수 있다. 또한, 잦은 소거 동작은 프로그램/소거 사이클(P/E cycle)을 증가시키므로, 플래시 메모리의 수명을 단축시킬 수 있다. 따라서, RM의 수행을 최소화한 플래시 메모리 장치가 요구된다.However, when the erase operation is frequently performed for the RM, the erase operation takes a long time, so that the operation speed of the flash memory may be reduced. In addition, frequent erase operations increase the program / erase cycle (P / E cycle), thus shortening the life of the flash memory. Therefore, a flash memory device which minimizes the performance of the RM is required.

본 발명의 목적은 RM 동작의 수행을 최소화한 불휘발성 메모리 장치 및 그것의 데이터 관리 방법을 제공하는 데 있다.It is an object of the present invention to provide a nonvolatile memory device and its data management method that minimizes the performance of an RM operation.

본 발명의 다른 목적은 소거 동작의 횟수를 감소시킨 불휘발성 메모리 장치 및 그것의 데이터 관리 방법을 제공하는 데 있다.It is another object of the present invention to provide a nonvolatile memory device in which the number of erase operations is reduced and a method of managing data thereof.

본 발명의 또 다른 목적은 동작 속도를 향상시킨 플래시 메모리 장치 및 그것의 데이터 관리 방법을 제공하는 데 있다.It is still another object of the present invention to provide a flash memory device with improved operation speed and a method of managing data thereof.

본 발명에 따른 복수의 블록을 포함하는 불휘발성 메모리 장치의 데이터 관리 방법은 제 1 블록에 대한 읽기 명령을 수신하는 단계; 상기 제 1 블록의 읽기 횟수를 나타내는 블록 읽기 카운트에 따라, 상기 제 1 블록에 포함된 논리 페이지들 중 적어도 하나의 논리 페이지의 속성을 결정하는 단계; 상기 결정된 속성에 따라, 상기 적어도 하나의 논리 페이지를 선택적으로 제 2 블록에 프로그램하는 단계; 및 상기 프로그램 후에, 상기 적어도 하나의 논리 페이지의 대응하는(corresponding) 물리 주소를 나타내는 매핑 테이블을 업데이트하는 단계를 포함한다.A method of managing data in a non-volatile memory device including a plurality of blocks according to the present invention includes: receiving a read command for a first block; Determining an attribute of at least one logical page of logical pages included in the first block according to a block read count indicating a read count of the first block; Selectively programming the at least one logical page in a second block according to the determined attribute; And after the program, updating a mapping table representing a corresponding physical address of the at least one logical page.

실시 예로서, 상기 제 1 블록에 대한 읽기 명령을 수신하는 단계는 상기 제 1 블록에 대한 읽기 명령에 응답하여, 상기 블록 읽기 카운트를 증가시키는 단계를 포함한다.In an embodiment, receiving a read command for the first block includes increasing the block read count in response to a read command for the first block.

실시 예로서, 상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는 상기 블록 읽기 카운트를 기준 값과 비교하는 단계; 상기 비교 결과에 따라, 상기 적어도 하나의 논리 페이지의 페이지 읽기 정보를 갱신하는 단계; 및 상기 갱신된 페이지 읽기 정보를 참조하여, 상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계를 포함한다.In an embodiment, determining the attribute of the at least one logical page comprises comparing the block read count to a reference value; Updating page read information of the at least one logical page according to the comparison result; And determining an attribute of the at least one logical page with reference to the updated page read information.

실시 예로서, 상기 페이지 읽기 정보는 상기 적어도 하나의 논리 페이지의 읽기 횟수를 나타내는 페이지 읽기 카운트를 포함한다.In an embodiment, the page read information includes a page read count that indicates the number of reads of the at least one logical page.

실시 예로서, 상기 페이지 읽기 정보를 갱신하는 단계는 상기 블록 읽기 카운트가 상기 기준 값을 초과하면, 상기 제 1 블록에 대한 읽기 명령에 응답하여, 상기 페이지 읽기 카운트를 증가시키는 단계를 포함한다.In an embodiment, updating the page read information includes increasing the page read count in response to a read command for the first block if the block read count exceeds the reference value.

실시 예로서, 상기 제 1 블록에 대한 읽기 명령은 상기 적어도 하나의 논리 페이지에 대한 읽기 명령을 포함한다.In an embodiment, the read command for the first block includes a read command for the at least one logical page.

실시 예로서, 상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는 상기 페이지 읽기 카운트가 문턱 값(threshold value)보다 크면, 상기 적어도 하나의 논리 페이지의 속성을 핫페이지로 결정하는 단계를 포함한다.In an embodiment, determining an attribute of the at least one logical page includes determining an attribute of the at least one logical page as a hot page if the page read count is greater than a threshold value.

실시 예로서, 상기 페이지 읽기 정보는 상기 적어도 하나의 논리 페이지의 상대적인 읽기 빈도를 나타내는 읽기 페이스(read pace)를 포함하고, 상기 페이지 읽기 정보를 갱신하는 단계는 상기 페이지 읽기 카운트에 따라 상기 읽기 페이스를 산출하는 단계를 포함하되, 상기 읽기 페이스는 수학식 〔읽기 페이스(read pace) 〓 페이지 읽기 카운트 ÷ (제 1 블록의 현재 논리적 읽기 시간) ― 제 1 블록의 초기 논리적 읽기 시간)〕에 의해 정의된다.In an embodiment, the page read information includes a read pace indicating a relative read frequency of the at least one logical page, and the step of updating the page read information comprises: Wherein the read phase is defined by a formula [read pace = page read count ÷ (current logical read time of the first block) - initial logical read time of the first block]) .

실시 예로서, 상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는 상기 산출된 읽기 페이스가 문턱 값(threshold value)보다 크면, 상기 적어도 하나의 논리 페이지의 속성을 핫페이지로 결정하는 단계를 포함한다.In an embodiment, determining the attribute of the at least one logical page includes determining an attribute of the at least one logical page as a hot page if the calculated read face is greater than a threshold value .

실시 예로서, 상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는 상기 산출된 읽기 페이스를 참조하여, 상기 적어도 하나의 논리 페이지의 보정된 읽기 페이스를 산출하는 단계; 및 상기 보정된 읽기 페이스가 문턱 값(threshold value)보다 크면, 상기 적어도 하나의 논리 페이지의 속성을 핫페이지로 결정하는 단계를 포함하되, 상기 보정된 읽기 페이스는 〔보정된 읽기 페이스 〓 산출된 읽기 페이스 ― α×평균 읽기 페이스)〕에 의해 정의되고, 상기 평균 읽기 페이스는 상기 제 1 블록에 포함된 논리 페이지들 각각의 읽기 페이스들의 평균을 의미하고, 상기 α는 0 보다 큰 실수이다.As an embodiment, the step of determining an attribute of the at least one logical page may include: calculating a corrected read phase of the at least one logical page with reference to the calculated read phase; And determining a property of the at least one logical page as a hot page if the corrected read face is greater than a threshold value, wherein the corrected read face is a corrected read face The average reading phase is an average of the reading paces of each of the logical pages included in the first block, and? Is a real number greater than zero.

실시 예로서, 상기 제 1 블록의 논리 페이지들은 상기 논리 페이지들 각각의 페이지 읽기 카운트의 크기 순서에 따라 제 1 그룹 또는 제 2 그룹으로 구분되고, 상기 불휘발성 메모리 장치는 상기 제 1 블록의 블록 읽기 카운트 및 상기 제 1 그룹의 페이지 읽기 카운트들을 저장하는 읽기 카운트 테이블을 포함한다.In one embodiment, the logical pages of the first block are divided into a first group or a second group according to the magnitude of the page read count of each of the logical pages, and the nonvolatile memory device reads the block of the first block A count and a read count table storing the first group of page read counts.

실시 예로서, 상기 페이지 읽기 정보를 갱신하는 단계는 제 1 블록에 대한 읽기 명령이 상기 제 2 그룹에 포함된 논리 페이지(이하, 대상 페이지라 함)에 대한 읽기 명령을 포함하는지 판단하는 단계; 상기 판단 결과에 따라, 상기 제 1 블록에 포함된 논리 페이지들의 평균 페이지 읽기 카운트를 상기 대상 페이지의 읽기 카운트로 결정하는 단계; 상기 대상 페이지의 읽기 카운트를 상기 제 1 그룹의 최소 페이지 읽기 카운트와 비교하는 단계; 및 상기 최소 페이지 읽기 카운트와의 비교 결과에 따라, 상기 대상 페이지는 상기 제 1 그룹으로 결정되는 단계를 포함한다. As an embodiment, the step of updating the page read information may include: determining whether a read command for the first block includes a read command for a logical page (hereinafter referred to as a target page) included in the second group; Determining an average page read count of logical pages included in the first block as a read count of the target page according to a result of the determination; Comparing a read count of the target page with a minimum page read count of the first group; And determining the target page as the first group according to a comparison result with the minimum page read count.

실시 예로서, 상기 적어도 하나의 논리 페이지를 제 2 블록에 프로그램하는 단계는 상기 적어도 하나의 논리 페이지의 읽기 정보를 참조하여, 상기 적어도 하나의 논리 페이지의 읽기 우선 순위를 결정하는 단계; 상기 읽기 우선 순위에 따라, 상기 복수의 블록 중 상기 제 2 블록을 상기 프로그램을 위해 할당하는 단계; 및 상기 적어도 하나의 논리 페이지를 상기 할당된 제 2 블록에 프로그램하는 단계를 포함한다.As an embodiment, programming the at least one logical page into a second block includes: determining read priority of the at least one logical page with reference to read information of the at least one logical page; Assigning the second block of the plurality of blocks for the program according to the read priority; And programming the at least one logical page into the allocated second block.

실시 예로서, 상기 적어도 하나의 논리 페이지는 상기 할당된 제 2 블록의 스페어(spare) 페이지에 프로그램된다.In an embodiment, the at least one logical page is programmed in a spare page of the allocated second block.

실시 예로서, 상기 매핑 테이블을 업데이트하는 단계는 상기 적어도 하나의 논리 페이지의 상기 대응하는 물리 주소가 상기 적어도 하나의 논리 페이지가 프로그램된 상기 제 2 블록의 물리 페이지를 가리키도록 상기 매핑 테이블을 업데이트하는 단계를 포함한다.As an embodiment, updating the mapping table may include updating the mapping table so that the corresponding physical address of the at least one logical page points to a physical page of the second block in which the at least one logical page is programmed .

실시 예로서, 상기 매핑 테이블을 업데이트 하는 단계는 상기 적어도 하나의 논리 페이지가 저장된 상기 제 1 블록의 물리 페이지를 무효화(invalidation)하는 단계를 더 포함한다.In an embodiment, updating the mapping table further comprises invalidating the physical page of the first block in which the at least one logical page is stored.

본 발명의 실시 예에 따르면, RM의 수행 횟수가 감소될 수 있다.According to the embodiment of the present invention, the number of times the RM is executed can be reduced.

또한, 소거 동작의 수행 횟수가 감소되므로, 불휘발성 메모리 장치의 수명이 증가하고, 동작 속도가 향상될 수 있다.Further, since the number of times of performing the erase operation is reduced, the life of the nonvolatile memory device can be increased and the operation speed can be improved.

도 1은 본 발명에 따른 불휘발성 메모리 장치를 나타내는 블록도이다.
도 2는 본 발명에 따른 불휘발성 메모리 장치의 데이터 관리 방법의 기본적인 개념을 설명하기 위한 도면이다.
도 3은 본 발명에 따른 데이터 관리 방법의 제 1 실시 예를 나타내는 도면이다.
도 4는 본 발명에 따른 데이터 관리 방법의 제 2 실시 예를 나타내는 도면이다.
도 5는 본 발명에 따른 데이터 관리 방법의 제 3 실시 예를 나타내는 위한 도면이다.
도 6은 본 발명의 실시 예들에 따른 데이터 관리 방법을 나타내는 순서도이다.
도 7 및 도 8은 본 발명에 따른 데이터 관리 방법의 제 4 실시 예를 나타내는 도면이다.
도 9는 본 발명의 제 4 실시 예에 따른 데이터 관리 방법을 구체적으로 나타내는 순서도이다.
도 10은 본 발명의 실시 예들에 따른 솔리드 스테이트 드라이브를 예시적으로 나타내는 블록도이다.
도 11은 본 발명의 실시 예들에 따른 데이터 저장 장치를 예시적으로 나타내는 블록도이다.
도 12는 본 발명의 실시 예들에 따른 메모리 카드를 예시적으로 나타내는 블록도이다.
도 13은 본 발명의 실시 예들에 따른 불휘발성 메모리 장치 및 그것을 포함하는 컴퓨팅 시스템의 개략적인 구성을 나타내는 도면이다.
1 is a block diagram showing a nonvolatile memory device according to the present invention.
2 is a diagram for explaining a basic concept of a data management method of a nonvolatile memory device according to the present invention.
3 is a diagram showing a first embodiment of a data management method according to the present invention.
4 is a diagram showing a second embodiment of a data management method according to the present invention.
5 is a diagram illustrating a data management method according to a third embodiment of the present invention.
6 is a flowchart illustrating a data management method according to embodiments of the present invention.
7 and 8 are views showing a fourth embodiment of a data management method according to the present invention.
9 is a flowchart specifically illustrating a data management method according to a fourth embodiment of the present invention.
10 is a block diagram illustrating an exemplary solid state drive according to embodiments of the present invention.
11 is a block diagram illustrating an exemplary data storage device in accordance with embodiments of the present invention.
12 is a block diagram exemplarily showing a memory card according to the embodiments of the present invention.
13 is a diagram showing a schematic configuration of a nonvolatile memory device and a computing system including the nonvolatile memory device according to embodiments of the present invention.

앞의 일반적인 설명 및 다음의 상세한 설명들은 모두 청구된 발명의 부가적인 설명을 제공하기 위한 예시적인 것이다. 그러므로 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 여기서 소개되는 실시 예는 개시된 내용이 철저하고 완전해 질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. The foregoing general description and the following detailed description are exemplary and are intended to provide further explanation of the claimed invention. Therefore, the present invention is not limited to the embodiments described herein but may be embodied in other forms. The embodiments disclosed herein are provided so that the disclosure can be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.

본 명세서에서, 어떤 부분이 어떤 구성요소를 포함한다고 언급되는 경우에, 이는 그 외의 다른 구성요소를 더 포함할 수도 있다는 것을 의미한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.In this specification, when it is mentioned that a certain element includes an element, it means that it may further include other elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 불휘발성 메모리 장치를 나타내는 블록도이다. 도 1을 참조하면, 불휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 데이터 입출력 회로(130), 그리고 제어 로직(140), 그리고 전압 발생기(150)를 포함한다. 1 is a block diagram showing a nonvolatile memory device according to the present invention. 1, a non-volatile memory device 100 includes a memory cell array 110, an address decoder 120, a data input / output circuit 130, and a control logic 140 and a voltage generator 150 .

메모리 셀 어레이(110)는 워드 라인들(WLs)을 통해 어드레스 디코더(120)에 연결된다. 메모리 셀 어레이(110)는 비트 라인들(BLs)을 통해서 데이터 입출력 회로(130)에 연결된다. 메모리 셀 어레이(110)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각각의 메모리 블록들은 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함한다. The memory cell array 110 is connected to the address decoder 120 via word lines WLs. The memory cell array 110 is connected to the data input / output circuit 130 via the bit lines BLs. The memory cell array 110 includes a plurality of memory blocks BLK1 to BLKz. Each of the memory blocks includes a plurality of NAND cell strings.

셀 스트링들 각각의 채널은 수직 방향으로 형성될 수 있다. 메모리 셀 어레이(110)에는 복수의 워드 라인들이 수직 방향으로 적층되고, 셀 스트링들 각각의 채널이 수직 방향으로 형성될 수 있다. 이런 셀 스트링의 구조로 메모리 셀 어레이(110)가 형성되는 메모리 장치를 수직 구조 불휘발성 메모리 장치 또는 3차원 구조 불휘발성 메모리 장치라 칭하기도 한다. 셀 스트링들 각각은 기판과 수직한 방향으로 적층되는 적어도 하나의 접지 선택 트랜지스터, 복수의 메모리 셀 및 적어도 하나의 스트링 선택 트랜지스터를 포함한다. 메모리 셀 어레이(110)의 메모리 셀들 각각은 싱글 레벨 셀(SLC) 또는 멀티 레벨 셀(MLC)로 사용될 수 있다. Each channel of cell strings may be formed in a vertical direction. In the memory cell array 110, a plurality of word lines may be stacked in the vertical direction, and each channel of the cell strings may be formed in the vertical direction. The memory device in which the memory cell array 110 is formed by the cell string structure may be referred to as a vertical structure nonvolatile memory device or a three-dimensional structure nonvolatile memory device. Each of the cell strings includes at least one ground selection transistor, a plurality of memory cells, and at least one string selection transistor stacked in a direction perpendicular to the substrate. Each of the memory cells of the memory cell array 110 can be used as a single level cell (SLC) or a multilevel cell (MLC).

전압 발생기(150)는 제어 로직(140)의 제어에 응답하여, 어드레스 디코더(120)에 제공될 전압들을 생성한다. 예를 들어, 프로그램 동작 시, 전압 발생기(150)는 제어 로직(140)의 제어에 응답하여 프로그램 전압(Vpgm), 패스전압(Vpass), 프로그램 검증 전압(Vfy) 등의 워드 라인 전압을 생성하고, 생성된 워드 라인 전압을 어드레스 디코더(120)에 제공한다. 다른 예로, 읽기 동작 시, 전압 발생기(150)는 제어 로직(140)의 제어에 응답하여 선택 읽기 전압(Vr), 비선택 읽기 전압(Vread) 등의 워드 라인 전압을 생성하고, 생성된 워드 라인 전압을 어드레스 디코더(120)에 제공한다. 각각의 예에 있어서, 어드레스 디코더(120)는 제공받은 워드 라인 전압들을 제어 로직(140)의 제어에 따라 워드 라인들(WLs)에 선택적으로 인가할 것이다. The voltage generator 150 generates voltages to be provided to the address decoder 120 in response to control of the control logic 140. [ For example, in a program operation, the voltage generator 150 generates a word line voltage such as a program voltage Vpgm, a pass voltage Vpass, a program verify voltage Vfy in response to control of the control logic 140 , And provides the generated word line voltage to the address decoder 120. As another example, in a read operation, the voltage generator 150 generates a word line voltage, such as a selected read voltage Vr, an unselected read voltage Vread, etc., in response to control of the control logic 140, And provides the address to the address decoder 120. In each example, the address decoder 120 will selectively apply the word line voltages provided to the word lines WLs under the control of the control logic 140.

어드레스 디코더(120)는 외부로부터 수신된 어드레스(ADDR) 및 제어 로직(140)의 제어에 응답하여, 메모리 셀 어레이(110)의 복수의 페이지들 중 적어도 어느 하나의 페이지를 선택한다. 어드레스 디코더(120)는 전압 발생기(150)로부터 워드 라인 전압을 수신하며, 선택된 페이지에 수신된 워드 라인 전압을 전달한다.The address decoder 120 selects at least one page of the plurality of pages of the memory cell array 110 in response to an externally received address ADDR and control of the control logic 140. [ The address decoder 120 receives the word line voltage from the voltage generator 150 and delivers the received word line voltage to the selected page.

예를 들어, 어드레스 디코더(120)는 어드레스(ADDR)에 응답하여, 메모리 셀 어레이(110)의 복수의 메모리 블록들 중 어느 하나를 선택할 수 있다. 어드레스 디코더(120)는 어드레스(ADDR)에 응답하여, 복수의 워드 라인들 중 어느 하나를 선택할 수 있다. For example, the address decoder 120 may select any one of the plurality of memory blocks of the memory cell array 110 in response to the address ADDR. The address decoder 120 may select any one of the plurality of word lines in response to the address ADDR.

프로그램 동작 시, 어드레스 디코더(120)는 하나의 페이지를 선택하고, 선택된 페이지가 속하는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm) 및 프로그램 검증 전압(Vfy)을 전달할 수 있다. 어드레스 디코더(120)는 비선택된 워드 라인(Unselected WL)에 패스 전압(Vpass)을 전달할 수 있다.In a program operation, the address decoder 120 may select one page and deliver the program voltage Vpgm and the program verify voltage Vfy to the selected word line (Selected WL) to which the selected page belongs. The address decoder 120 may pass the pass voltage (Vpass) to the unselected word line (Unselected WL).

읽기 동작 시, 어드레스 디코더(120)는 하나의 페이지를 선택하고, 선택된 페이지가 속하는 선택 워드 라인에 선택 읽기 전압(Vr)을 전달할 수 있다. 어드레스 디코더(120)는 비선택 워드 라인에 비선택 읽기 전압(Vread)을 전달할 수 있다. In a read operation, the address decoder 120 may select one page and deliver the selected read voltage Vr to the selected word line to which the selected page belongs. The address decoder 120 may deliver the unselected read voltage Vread to the unselected word line.

데이터 입출력 회로(130)는 외부로부터 데이터(DATA)를 전달받고, 전달받은 데이터를 메모리 셀 어레이(110)에 저장한다. 또한, 데이터 입출력 회로(130)는 메모리 셀 어레이(110)에 저장된 데이터(DATA)를 읽고, 읽은 데이터를 외부에 전달한다. 예시적으로, 데이터 입출력 회로(130)는 열 선택 게이트, 페이지 버퍼, 데이터 버퍼 등과 같은 잘 알려진 구성 요소들을 포함할 수 있다. 다른 예로써, 데이터 입출력 회로(140)는 열 선택 게이트, 쓰기 드라이버, 감지 증폭기, 데이터 버퍼 등과 같은 잘 알려진 구성 요소들을 포함할 수 있다.The data input / output circuit 130 receives data (DATA) from the outside and stores the received data in the memory cell array 110. Also, the data input / output circuit 130 reads the data (DATA) stored in the memory cell array 110 and transfers the read data to the outside. By way of example, data input / output circuit 130 may include well known components such as column select gates, page buffers, data buffers, and the like. As another example, the data input / output circuit 140 may include well known components such as a column select gate, a write driver, a sense amplifier, a data buffer, and the like.

제어 로직(140)은 외부로부터 명령(CMD) 및 제어 신호(CTRL)를 수신하며, 불휘발성 메모리 장치(100)의 전반적인 동작을 제어한다. 예를 들어, 제어 로직(140)은 외부로부터 프로그램 명령을 수신하고, 불휘발성 메모리 장치(100)의 전반적인 프로그램 동작을 제어한다. 다른 예로, 외부로부터 읽기 명령을 수신하고, 불휘발성 메모리 장치(100)의 전반적인 읽기 동작을 제어한다.The control logic 140 receives the command CMD and the control signal CTRL from the outside and controls the overall operation of the nonvolatile memory device 100. [ For example, the control logic 140 receives program instructions from the outside and controls the overall program operation of the non-volatile memory device 100. As another example, it receives a read command from the outside and controls the overall read operation of the nonvolatile memory device 100.

본 발명의 기술적 사상에 따른 실시 예에 있어서, 불휘발성 메모리 장치(100)는 메모리 블록들의 읽기 횟수에 따라, 읽기가 많이 수행된 메모리 블록의 핫 페이지들을 읽어내어 다른 블록(이하, 타겟 블록이라 한다)에 프로그램한다. 그리고, 이후 핫 페이지들에 대한 읽기 명령이 수신되면, 타겟 블록으로부터 핫 페이지들을 독출한다. 이때, 핫 페이지는 불휘발성 메모리 장치로부터 상대적으로 자주 독출되는 논리 페이지를 의미한다. In an embodiment according to the present invention, the non-volatile memory device 100 reads hot pages of a memory block in which a lot of read operations are performed according to the number of read operations of the memory blocks, ). Then, when a read command for the hot pages is received thereafter, hot pages are read out from the target block. At this time, the hot page means a logical page that is relatively frequently read from the nonvolatile memory device.

상기와 같은 구성에 따르면, 자주 독출되는 논리 페이지(또는, 핫 페이지)를 반복적으로 읽어내는 경우, 그러한 논리 페이지에 대한 읽기 동작은 적어도 두 개의 블록에서 분산되어 수행될 수 있다. 따라서, 특정한 핫 페이지를 독출하기 위해, 하나의 블록에 대해 과도한 읽기 동작이 수행되는 것이 방지될 수 있다. 따라서, 핫 페이지를 저장하는 블록에 대해 읽기 마이그레이션이 수행되는 횟수가 감소될 수 있다.According to such a configuration, when the logical page (or hot page) frequently read out is read out repeatedly, the reading operation for such logical page can be performed dispersedly in at least two blocks. Thus, in order to read a specific hot page, an excessive read operation can be prevented from being performed for one block. Thus, the number of times the read migration is performed on the block storing the hot page can be reduced.

한편, 메모리 블록은 소거가 되면, 읽기 디스터번스(Read Disturbance)의 관점에서, 읽기 횟수가 초기화된다. 예를 들어, 하나의 블록에 대해 읽기가 100K회 이상 수행되면, 읽기 횟수의 증가로 인해 읽기 디스터번스가 발생할 가능성이 높다. 그러나, 읽기가 100K회 이상 수행된 블록에 대해 소거 동작이 수행되면, 해당 블록의 읽기 횟수는 초기화되고, 읽기 디스터번스가 발생할 가능성도 낮아진다. On the other hand, when the memory block is erased, the number of reads is initialized in terms of read disturbance. For example, if a block is read more than 100K times, a read disturbance is likely to occur due to an increase in the number of reads. However, when an erase operation is performed on a block in which reading is performed 100K times or more, the number of readings of the block is initialized, and the probability of occurrence of the read disturbance is also lowered.

본 발명에서는 이와 같은 점에 착안하여, 불휘발성 메모리 장치의 다른 내부 동작에 의해 곧 소거가 될 블록을 핫페이지들이 새롭게 프로그램되는 타겟 블록으로 할당할 수 있다. 예를 들어, 웨어 레벨링(Wear Leveling), 머지(merge), 가비지 컬렉션(Garbage Collection)등에 의해 곧 소거가 될 블록에 핫 페이지들을 프로그램할 수 있다. 이를 통해, 핫 페이지들이 저장된 타겟 블록이 별도의 소거 동작 없이, 내부 동작(웨어 레벨링, 머지 또는 가비지 컬렉션)에 의해 자연스럽게 소거되도록 유도할 수 있다. 따라서, 핫 페이지들에 의해 타겟 블록의 읽기 횟수가 과도하게 누적되기 전에, 타겟 블록은 소거될 것이다. 따라서, 타겟 블록에 대해 별도의 읽기 마이그레이션을 수행하지 않아도, 타겟 블록의 데이터 신뢰성은 확보될 수 있다.In the present invention, it is possible to assign a block to be erased soon by another internal operation of the nonvolatile memory device to a target block to which hot pages are newly programmed. For example, hot pages can be programmed into a block that will soon be erased by wear leveling, merge, garbage collection, and the like. In this way, it is possible to induce the target block in which hot pages are stored to be naturally erased by internal operations (wear leveling, merge or garbage collection) without a separate erasing operation. Thus, before the number of reads of the target block by the hot pages is accumulated excessively, the target block will be erased. Therefore, the data reliability of the target block can be ensured even if a separate read migration is not performed on the target block.

상기와 같은 구성에 따르면, 불휘발성 메모리 장치(100)에 있어서, 소거 동작이 수행되는 횟수가 전체적으로(totally) 감소될 수 있다. 따라서, 불휘발성 메모리 장치(100)의 수명이 증가될 수 있다. 또한, 소거 횟수가 감소되므로, 불휘발성 메모리 장치(100)의 동작 속도가 향상될 수 있다.According to the above configuration, in the nonvolatile memory device 100, the number of times the erase operation is performed can be totally reduced. Thus, the lifetime of the nonvolatile memory device 100 can be increased. In addition, since the erase count is reduced, the operation speed of the nonvolatile memory device 100 can be improved.

이하에서는, 본 발명에 따른 불휘발성 메모리 장치(100) 및 그것의 데이터 관리 방법에 대한 구체적인 설명이 다양한 실시 예와 함께 제공된다.Hereinafter, a detailed description of the nonvolatile memory device 100 and its data management method according to the present invention is provided with various embodiments.

도 2는 본 발명에 따른 불휘발성 메모리 장치의 데이터 관리 방법의 기본적인 개념을 설명하기 위한 도면이다. 도 2를 참조하면, 불휘발성 메모리 장치(100, 도 1 참조)는 핫 페이지들이 저장된 제 1 블록(111) 및 핫 페이지들이 새롭게 프로그램될 제 2 블록(112, 또는 타겟 블록)을 포함한다.2 is a diagram for explaining a basic concept of a data management method of a nonvolatile memory device according to the present invention. Referring to FIG. 2, a non-volatile memory device 100 (see FIG. 1) includes a first block 111 in which hot pages are stored and a second block 112 (or a target block) in which hot pages are to be newly programmed.

본 발명에 의한 데이터 관리 방법에 따르면, 제 1 블록(111)은 핫 페이지(page1, page3)를 비롯한 복수의 논리 페이지들(page0, page1, page2, page3, page4)을 포함한다. 앞서 설명한 바와 같이, 핫 페이지는 다른 페이지들에 비해 상대적으로 읽기 빈도가 높은 페이지를 의미한다. 어떠한 논리 페이지를 핫 페이지로 결정하는 기준은 다양할 수 있다. According to the data management method of the present invention, the first block 111 includes a plurality of logical pages (page0, page1, page2, page3, page4) including hot pages (page1, page3). As described above, a hot page means a page having a relatively high read frequency as compared with other pages. The criteria for determining any logical page as a hot page may vary.

예를 들어, 논리 페이지를 읽어낸 횟수를 나타내는 읽기 카운트가 핫 페이지를 결정하는 기준이 될 수 있다. 즉, 읽기 카운트가 기준 값을 초과하는 페이지를 핫 페이지로 결정할 수 있다. For example, a read count that indicates the number of times a logical page has been read may serve as a basis for determining a hot page. That is, a page whose read count exceeds a reference value can be determined as a hot page.

다른 예로서, 논리 페이지가 읽히는 상대적인 빈도를 나타내는 읽기 페이스(read pace)가 핫 페이지를 결정하는 기준이 될 수 있다. 읽기 페이스는 제 1 블록(111)을 읽어낸 논리적 읽기 시간(Logical Read Time, LRT) 구간 내에서, 상대적으로 빈번하게 읽힌 정도를 나타내는 값을 의미한다. As another example, a read pace indicating the relative frequency with which a logical page is read may be a reference for determining a hot page. The read phase refers to a value indicating a degree of relatively frequent reading within a logical read time (LRT) interval in which the first block 111 is read.

여기서, 논리적 읽기 시간(LRT) 구간이란, 제 1 블록(111)에 대해 읽기 동작이 수행된 논리적 시간 구간을 의미한다. 즉, 제 1 블록의 논리적 읽기 시간은 특정 시점에서의 제 1 블록(111)의 논리적 동작 횟수 또는 읽기 카운트에 대응될 수 있다. 또는, 제 1 블록의 논리적 읽기 시간은 특정 시점에서의 불휘발성 메모리 장치(100)의 논리적 동작 횟수 또는 전체적인 읽기 카운트에 대응될 수 있다. 가령, 초기 시각에 제 1 블록의 읽기 카운트가 0이면, 제 1 블록의 초기 논리적 읽기 시간은 0에 대응될 수 있다. 또한, 현재 시각에 제 1 블록의 읽기 카운트가 100이면, 제 1 블록의 현재 논리적 읽기 시간은 100에 대응될 수 있다. 이때, 논리적 읽기 시간 구간은 현재 논리적 읽기 시간(100)―초기 논리적 읽기 시간(0) 〓 100 이 될 것이다. 어떠한 논리 페이지의 읽기 페이스는 다음과 같이 정의될 수 있다.Here, the logical read time (LRT) period means a logical time period in which a read operation is performed on the first block 111. [ That is, the logical read time of the first block may correspond to the number of logical operations or the read count of the first block 111 at a specific point in time. Alternatively, the logical read time of the first block may correspond to the number of logical operations or the total read count of the non-volatile memory device 100 at a particular point in time. For example, if the read count of the first block at the initial time is zero, the initial logical read time of the first block may correspond to zero. Also, if the read count of the first block at the current time is 100, then the current logical read time of the first block may correspond to 100. At this time, the logical read time interval will be the current logical read time (100) - the initial logical read time (0) = 100. The reading phase of any logical page can be defined as follows.

읽기 페이스 〓 페이지 읽기 카운트÷(제 1 블록의 현재 논리적 읽기 시간 ― 제 1 블록의 초기 논리적 읽기 시간)Read phase = page read count ÷ (current logical read time of the first block - initial logical read time of the first block)

위 식에 따르면, 읽기 페이스는 소정의 논리적 읽기 시간 구간 동안 특정 페이지가 얼마나 빈번하게 읽혔는지를 나타낼 수 있다. 즉, 읽기 페이스는 읽기 횟수의 상대적인 빈도를 나타낸다.According to the above equation, the reading phase can indicate how frequently a specific page is read during a predetermined logical read time interval. That is, the reading phase represents the relative frequency of the number of reads.

본 발명에 따른 데이터 관리 방법은 산출된 읽기 페이스가 문턱 값(threshold value)를 초과하면, 해당 논리 페이지를 핫 페이지로 결정할 수 있다.The data management method according to the present invention can determine a logical page as a hot page if the calculated read face exceeds a threshold value.

또는, 상대적인 읽기 빈도를 더욱 상세히 반영하기 위해, 산출된 읽기 페이스를 가공하여 보정된 읽기 페이스를 계산할 수 있다. 이때, 보정된 읽기 페이스는 다음과 같이 정의된다.Alternatively, the corrected read phase can be computed by processing the calculated read phase to further refine the relative read frequency. At this time, the corrected reading phase is defined as follows.

보정된 읽기 페이스 〓 산출된 읽기 페이스 ― α×평균 읽기 페이스Calibrated Reading Face = Calculated Reading Face - α × Average Reading Face

이에 따르면, 보정된 읽기 페이스는 산출된 읽기 페이스에서 제 1 블록(111)의 논리 페이지들의 평균 읽기 페이스를 감산하여 결정된다. 따라서, 다른 논리 페이지들과의 상대적인 읽기 빈도 차가 더욱 상세히 반영될 수 있다. 여기서, 가중치 α는 0보다 큰 실수로서 상대적인 읽기 빈도 차를 어느정도 반영할 지 여부에 따라 자유롭게 결정될 수 있다.According to this, the corrected reading phase is determined by subtracting the average reading phase of the logical pages of the first block 111 in the calculated reading phase. Thus, the difference in read frequency relative to other logical pages can be reflected in greater detail. Here, the weight α is a real number larger than 0 and can be freely determined depending on whether or not the relative difference in the read frequency is reflected to some extent.

앞서와 마찬가지로, 본 발명에 따른 데이터 관리 방법은 보정된 읽기 페이스가 문턱 값(threshold value)를 초과하면, 해당 논리 페이지를 핫 페이지로 결정할 수 있다.As described above, the data management method according to the present invention can determine the logical page as a hot page if the corrected read face exceeds a threshold value.

다만, 본 발명에 따른 핫 페이지를 결정하는 방법은 위에서 설명한 것에 한정되지 않는다. 본 발명에서, 핫 페이지는 다른 페이지보다 상대적으로 읽기 횟수 또는 읽기 빈도가 높거나, 제 1 블록(111)의 읽기 횟수 증가에 대한 기여도가 높은 페이지를 의미한다. 따라서, 여기서 설명한 방법 이외에도, 핫 페이지를 결정하는 기준은 다양할 수 있다. However, the method for determining a hot page according to the present invention is not limited to the above-described method. In the present invention, a hot page refers to a page having a higher reading frequency or a higher reading frequency than the other pages, or a higher contribution to an increase in the reading count of the first block 111. [ Thus, in addition to the methods described herein, the criteria for determining hot pages may vary.

다시 도 2를 참조하면, 제 1 블록(111)에 포함된 페이지들에 대해 읽기를 수행할 때마다, 제 1 블록(111)의 읽기 카운트는 증가된다. 그리고, 제 1 블록(111)의 읽기 카운트가 미리 정해진 기준 값을 초과하면, 제 1 블록(111)의 핫 페이지들(page1, page3)를 읽어내어 제 2 블록(112)에 프로그램한다. 그리고, 이후 핫 페이지들(page1, page3)에 대한 읽기 명령이 수신되면, 제 1 블록(111) 대신 제 2 블록(112)으로부터 핫 페이지들(page1, page3)을 읽어낸다. 위와 같은 구성에 따르면, 핫 페이지들(page1, page3)이 제 2 블록(112)에 프로그램된 이후, 핫 페이지들(page1, page3)을 읽어내는 부담은 제 2 블록(112)에 부과된다. 따라서, 핫 페이지들(page1, page3)에 의해 제 1 블록(111)의 읽기 카운트가 증가하는 것이 방지된다. 그 결과, 읽기 카운트가 높은 제 1 블록(111)에 대해 빈번하게 읽기 마이그레이션이 수행되는 것을 방지할 수 있다.Referring again to FIG. 2, the read count of the first block 111 is increased each time reading is performed on the pages included in the first block 111. When the read count of the first block 111 exceeds a predetermined reference value, the hot pages (page1, page3) of the first block 111 are read and programmed into the second block 112. [ Then, when a read command for the hot pages (page1, page3) is received, the hot pages (page1, page3) are read from the second block 112 instead of the first block 111. [ According to the above configuration, after the hot pages (page1, page3) are programmed in the second block 112, the burden of reading the hot pages (page1, page3) is imposed on the second block 112. [ Thus, the read count of the first block 111 is prevented from increasing by the hot pages (page1, page3). As a result, read migration can be prevented from being frequently performed on the first block 111 having a high read count.

한편, 앞서 설명한 바와 마찬가지로, 내부 동작(웨어 레벨링, 머지 또는 가비지 컬렉션 등)에 의해 소거가 수행될 블록을 제 2 블록(112)으로 할당할 수 있다. 이 경우, 제 2 블록(112)에 대한 별도의 읽기 마이그레이션 없이, 제 2 블록(112)의 읽기 횟수가 과도하게 누적되기 전에 제 2 블록(112)은 소거될 수 있다. 따라서, 불휘발성 메모리 장치(100)에 있어서, 소거 동작이 수행되는 횟수가 전체적으로(totally) 감소될 수 있다.On the other hand, as described above, a block to be erased can be allocated to the second block 112 by an internal operation (wear leveling, merge or garbage collection). In this case, the second block 112 may be erased before the number of reads of the second block 112 is accumulated excessively, without a separate read migration to the second block 112. Thus, in the non-volatile memory device 100, the number of times the erase operation is performed can be totally reduced.

도 3은 본 발명에 따른 데이터 관리 방법의 제 1 실시 예를 나타내는 도면이다. 도 3을 참조하면, 불휘발성 메모리 장치(100, 도 1 참조)는 핫 페이지들이 저장된 제 1 블록(111), 핫 페이지들이 새롭게 프로그램될 제 2 블록(112, 또는 타겟 블록) 및 핫 페이지들의 대응하는 물리 주소가 저장된 매핑 테이블(118a)을 포함한다. 3 is a diagram showing a first embodiment of a data management method according to the present invention. Referring to FIG. 3, the non-volatile memory device 100 (see FIG. 1) includes a first block 111 in which hot pages are stored, a second block 112 in which hot pages are newly programmed, And a mapping table 118a in which physical addresses are stored.

본 실시 예에서, 제 1 블록(111)의 읽기 카운트가 기준 값을 초과하면, 제 1 블록(111)의 읽기 카운트 증가를 억제하기 위해, 제 1 블록(111)에 포함된 핫 페이지들(page1, page3)을 제 2 블록(112)에 복사(copy)한다. 여기서, 복사란 제 1 블록(111)으로부터 핫 페이지들(page1, page3)을 읽어내고, 읽어낸 핫 페이지들(page1, page3)을 제 2 블록(112)에 프로그램하는 것을 의미한다.In this embodiment, when the read count of the first block 111 exceeds the reference value, in order to suppress the increase in the read count of the first block 111, the hot pages included in the first block 111 , page3) to the second block 112, as shown in FIG. Here, copy means to read hot pages (page1, page3) from the first block 111 and to program the read hot pages (page1, page3) in the second block 112. [

그리고, 핫 페이지들(page1, page3)의 대응하는 물리 주소를 나타내는 매핑 테이블(118a)을 업데이트(또는, 갱신)한다. 구체적으로, 핫 페이지들(page1, page3)의 물리 주소가 핫 페이지들(page1, page3)이 복사된 제 2 블록(112)의 물리 페이지들을 가리키도록 매핑 테이블(118a)을 업데이트한다. 위와 같은 구성에 따르면, 핫 페이지들(page1, page3)의 읽기 명령이 수신될 때, 핫 페이지들(page1, page3)의 대응하는 물리 주소는 제 2 블록(112)을 가리키고, 제 2 블록(112)으로부터 핫 페이지들(page1, page3)이 독출된다. 따라서, 핫 페이지들(page1, page3)에 의해 제 1 블록(111)의 읽기 카운트가 증가되는 것이 방지된다.Then, the mapping table 118a indicating the corresponding physical address of the hot pages (page1, page3) is updated (or updated). Specifically, the mapping table 118a is updated so that the physical addresses of the hot pages (page1, page3) point to the physical pages of the second block 112 in which the hot pages (page1, page3) are copied. According to the above configuration, when a read command of the hot pages (page1, page3) is received, the corresponding physical address of the hot pages (page1, page3) indicates the second block 112 and the second block 112 (Page1, page3) are read out from the hot pages (page1, page3). Thus, the read count of the first block 111 is prevented from being increased by the hot pages (page1, page3).

실시 예로서, 매핑 테이블(118a)의 업데이트는 제 1 블록(111)의 물리 페이지들을 무효화(invalidation)하는 것을 포함할 수 있다. 즉, 핫 페이지들(page1, page3)이 제 2 블록(112)으로 복사된 후, 핫 페이지들(page1, page3)이 저장된 제 1 블록(111)의 물리 페이지들을 더 이상 읽어내지 않기 위해, 그러한 물리 페이지들을 무효화한다. 여기서 무효화는 대응되는 물리 페이지에 저장된 데이터가 유효하지 않는 것으로 처리되는 내부 동작을 의미한다. 제 1 블록(111)의 물리 페이지들을 무효화함으로써, 매핑 테이블(118a)은 더 이상 무효화된 페이지들을 가리키지 않게 된다. 즉, 핫 페이지들(page1, page3)은 제 1 블록(111)으로부터 제 2 블록(112)으로 이전(migration)된다.As an example, updating the mapping table 118a may include invalidating the physical pages of the first block 111. [ That is, after the hot pages (page1, page3) are copied to the second block 112, in order not to read the physical pages of the first block 111 where the hot pages (page1, page3) are stored, Invalidates physical pages. Here, invalidation means an internal operation in which data stored in a corresponding physical page is processed as invalid. By invalidating the physical pages of the first block 111, the mapping table 118a no longer points to the invalidated pages. That is, the hot pages (page1, page3) are migrated from the first block (111) to the second block (112).

여기서는, 핫 페이지들(page1, page3)이 하나의 블록(112)으로 복사되는 경우를 설명하였지만, 본 발명은 이에 한정되지 않는다. 예를 들어, 핫 페이지들(page1, page3)은 2 이상의 서로 다른 블록들에 나누어 복사될 수 있다.Here, the case where the hot pages (page1, page3) are copied into one block 112 has been described, but the present invention is not limited thereto. For example, the hot pages (page1, page3) can be copied and divided into two or more different blocks.

한편, 데이터 관리 방법에 대해 여기서 설명되지 않은 다른 구체적인 내용은 도 2에서 설명한 바와 동일하다.On the other hand, another detailed description of the data management method not described here is the same as that described in Fig.

도 4는 본 발명에 따른 데이터 관리 방법의 제 2 실시 예를 나타내는 도면이다. 도 4를 참조하면, 불휘발성 메모리 장치(100, 도 1 참조)는 핫 페이지들이 저장된 제 1 블록(111), 핫 페이지들이 새롭게 프로그램될 제 2 블록(112, 또는 타겟 블록) 및 핫 페이지들의 대응하는 물리 주소가 저장된 매핑 테이블(118a) 및 핫 페이지들의 레플리카 페이지가 저장된 물리 주소를 나타내는 레플리카 테이블(118b)을 포함한다.4 is a diagram showing a second embodiment of a data management method according to the present invention. Referring to FIG. 4, a non-volatile memory device 100 (see FIG. 1) includes a first block 111 in which hot pages are stored, a second block 112 in which hot pages are newly programmed, And a replica table 118b indicating a physical address where a replica page of hot pages is stored.

본 실시 예에서, 제 1 블록(111)의 읽기 카운트에 대응하여, 핫 페이지들(page1, page3)을 제 2 블록(112)으로 복사하는 일련의 과정 및 그에 대한 설명은 도 3에서 설명한 바와 동일하다. In the present embodiment, a series of processes for copying the hot pages (page1, page3) to the second block 112 in correspondence with the read count of the first block 111 and a description thereof are the same as those described in FIG. 3 Do.

다만, 본 실시 예에서, 제 2 블록(112)에 프로그램되는 핫 페이지들은 제 1 블록(111)에 저장된 핫 페이지들(page1, page3)의 레플리카(또는, 복제본)으로서 프로그램된다. However, in the present embodiment, the hot pages programmed in the second block 112 are programmed as replicas (or replicas) of the hot pages (page1, page3) stored in the first block 111. [

본 실시 예와 도 3의 제 1 실시 예의 차이는 원본 데이터의 유효성 여부에 있다. 즉, 제 1 실시 예에서, 핫 페이지들(page1, page3)은 제 1 블록(111)에서 제 2 블록(112)으로 이전되고, 제 1 블록(111)에 저장된 핫 페이지들(page1, page3)은 무효화된다. 반면, 본 실시 예에서, 제 2 블록(112)에는 핫 페이지들(page1, page3)의 레플리카 페이지가 프로그램되고, 제 1 블록(111)에 저장된 핫 페이지들(page1, page3)은 유효한 상태로 남겨진다. 즉, 제 1 블록(111) 및 제 2 블록(112)에 동일한 논리 데이터들이 중복되어 저장되게 된다.The difference between this embodiment and the first embodiment in Fig. 3 lies in the validity of the original data. That is, in the first embodiment, the hot pages (page1, page3) are transferred from the first block 111 to the second block 112, and the hot pages (page1, page3) Is invalidated. On the other hand, in this embodiment, the replica page of the hot pages (page1, page3) is programmed in the second block 112 and the hot pages (page1, page3) stored in the first block 111 are left in a valid state Loses. That is, the same logic data is stored in the first block 111 and the second block 112 in a redundant manner.

본 실시 예에서는, 핫 페이지(page1, page3)의 물리 주소를 참조하기 위한 매핑 테이블(118a)외에 레플리카 페이지가 저장된 위치를 참조하기 위한 별도의 레플리카 테이블(118b)을 구비한다. 그리고, 레플리카 페이지들이 제 2 블록(112)에 프로그램된 후, 매핑 테이블(118a) 또는 레플리카 테이블(118b)이 업데이트(또는, 갱신)된다.In this embodiment, in addition to the mapping table 118a for referring to the physical addresses of the hot pages (page1, page3), a separate replica table 118b for referring to the position where the replica page is stored is provided. Then, after the replica pages are programmed in the second block 112, the mapping table 118a or the replica table 118b is updated (or updated).

구체적으로, 매핑 테이블(118a)에는 레플리카 정보가 삽입된다. 여기서, 레플리카 정보는 참조되는 핫 페이지의 레플리카 페이지가 존재하는지 여부를 나타내는 정보이다. 그리고, 레플리카 테이블(118b)에는 레플리카 페이지가 프로그램된 제 2 블록(112)의 물리 주소가 저장된다. 먼저, 핫 페이지에 대한 읽기 명령이 수신되면, 핫 페이지의 레플리카 정보를 참조한다. 그리고, 핫 페이지의 레플리카 페이지가 존재하지 않으면, 불휘발성 메모리 장치(100, 도 1 참조)는 매핑 테이블(118a)에 저장된 핫 페이지의 물리 주소를 참조하여 제 1 블록(111)으로부터 핫 페이지를 독출한다.Specifically, the replica information is inserted in the mapping table 118a. Here, the replica information is information indicating whether there is a replica page of a hot page to be referred to. In the replica table 118b, the physical address of the second block 112 in which the replica page is programmed is stored. First, when a read command for a hot page is received, the replica information of the hot page is referred to. If the replica page of the hot page does not exist, the non-volatile memory device 100 (see FIG. 1) reads the hot page from the first block 111 by referring to the physical address of the hot page stored in the mapping table 118a do.

반면에, 핫 페이지의 레플리카 페이지가 존재하면, 불휘발성 메모리 장치(100)는 핫 페이지의 물리 페이지를 찾기 위해 레플리카 테이블(118b)을 참조한다. 그리고, 레플리카 테이블(118b)로부터 핫 페이지의 레플리카 페이지가 프로그램된 물리 주소를 찾는다. 그리고, 찾아낸 물리 주소를 참조하여, 제 2 블록(112)으로부터 레플리카 페이지를 읽어낸다.On the other hand, if there is a replica page of the hot page, the non-volatile memory device 100 refers to the replica table 118b to find the physical page of the hot page. Then, the replica page of the hot page is searched for from the replica table 118b to the physical address to which the replica page is programmed. Then, referring to the found physical address, the replica page is read from the second block 112.

상기와 같은 구성에 따르면, 제 1 블록(111)에 저장된 핫 페이지 대신 제 2 블록(112)에 저장된 레플리카 페이지를 독출하므로, 제 1 블록(111)의 읽기 카운트 증가를 억제할 수 있다.According to the above configuration, since the replica page stored in the second block 112 is read instead of the hot page stored in the first block 111, an increase in the read count of the first block 111 can be suppressed.

한편, 데이터 관리 방법에 대해 여기서 설명되지 않은 다른 구체적인 내용은 도 2 및 도 3에서 설명된 바와 동일하다.On the other hand, other specific details not described herein for the data management method are the same as those described in Figs.

도 5는 본 발명에 따른 데이터 관리 방법의 제 3 실시 예를 나타내는 위한 도면이다. 도 5는 복수의 블록들에 포함된 핫 페이지들을 복수의 블록들에 프로그램하는 방법을 설명한다. 도 5를 참조하면, 각각 적어도 하나의 핫 페이지를 포함하는 복수의 블록들(111, 112, 113), 핫 페이지들(hot1, hot2, hot3, hot4)이 프로그램되는 복수의 타겟 블록들(114, 115, 116, 117) 및 핫 페이지들(hot1, hot2, hot3, hot4)을 복수의 타겟 블록들(114, 115, 116, 117)에 할당하기 위한 읽기 정보 테이블(118c)이 나타난다.5 is a diagram illustrating a data management method according to a third embodiment of the present invention. 5 illustrates a method of programming hot pages included in a plurality of blocks into a plurality of blocks. 5, a plurality of blocks 114, 112 and 113 each including at least one hot page, a plurality of target blocks 114 to which hot pages hot1, hot2, hot3, hot4 are programmed, A read information table 118c for assigning hot pages (hot1, hot2, hot3, hot4) to the plurality of target blocks 114, 115, 116 and 117 is displayed.

본 실시 예에서는, 복수의 블록들로부터 핫 페이지들에 대한 정보를 수집하고, 수집된 정보에 기초하여 핫 페이지들을 복수의 타겟 블록들에 나누어 프로그램하는 방법이 설명된다.In this embodiment, a method of collecting information about hot pages from a plurality of blocks and dividing hot pages into a plurality of target blocks based on collected information is described.

먼저, 불휘발성 메모리 장치(100, 도 1 참조)는 복수의 블록들(111, 112, 113)에 포함된 페이지들 중에서 핫 페이지들을 결정한다. 실시 예로서, 복수의 블록들(111, 112, 113) 각각은 블록의 읽기 카운트가 기준 값을 초과한 블록들일 수 있다.First, the non-volatile memory device 100 (see FIG. 1) determines hot pages among the pages included in the plurality of blocks 111, 112, and 113. As an embodiment, each of the plurality of blocks 111, 112, and 113 may be blocks whose read count of the block exceeds a reference value.

그리고, 결정된 핫 페이지들(hot1, hot2, hot3, hot4)의 페이지 읽기 정보들이 읽기 정보 테이블에 저장된다. 실시 예로서, 페이지 읽기 정보는 핫 페이지의 읽기 카운트, 읽기 페이스 또는 보정된 읽기 페이스를 포함할 수 있다. 읽기 카운트, 읽기 페이스 또는 보정된 읽기 페이스에 대한 구체적인 내용은 위에서 설명한 바와 동일하다.The page read information of the determined hot pages (hot1, hot2, hot3, hot4) is stored in the read information table. As an example, the page read information may include a read count of a hot page, a read face, or a corrected read face. The details of the read count, read phase, or corrected read phase are the same as described above.

그리고, 불휘발성 메모리 장치(100)는 읽기 정보 테이블을 참조하여, 핫 페이지들(hot1, hot2, hot3, hot4)을 우선 순위에 따라 복수의 타겟 블록들(114, 115, 116, 117)에 할당한다. 실시 예로서, 우선 순위는 핫 페이지들(hot1, hot2, hot3, hot4)이 얼마나 자주 또는 많이 읽히는 페이지인지 여부에 따라 결정될 수 있다. 예를 들어, 우선 순위는 핫 페이지들(hot1, hot2, hot3, hot4)의 읽기 카운트 크기, 읽기 페이스 크기 또는 보정된 읽기 페이스 크기가 클수록 높을 수 있다. 우선 순위가 높은 핫 페이지일수록 더 빨리 타겟 블록에 프로그램될 수 있다.The nonvolatile memory device 100 refers to the read information table and allocates hot pages (hot1, hot2, hot3, hot4) to the plurality of target blocks 114, 115, 116, and 117 do. As an example, the priority may be determined by how often or hotly the hot pages (hot1, hot2, hot3, hot4) are read. For example, the priority may be higher for larger read count sizes, read pace sizes, or corrected read pace sizes for hot pages (hot1, hot2, hot3, hot4). Higher priority hot pages can be programmed into the target block faster.

그리고, 불휘발성 메모리 장치(100)는 할당된 타겟 블록들(114, 115, 116, 117)에 핫 페이지들(hot1, hot2, hot3, hot4)를 나누어 프로그램한다.Then, the nonvolatile memory device 100 divides hot pages (hot1, hot2, hot3, hot4) into the allocated target blocks 114, 115, 116,

실시 예로서, 핫 페이지들(hot1, hot2, hot3, hot4)은 할당된 타겟 블록들(114, 115, 116, 117)의 비어있는 스페어 페이지에 프로그램될 수 있다. As an embodiment, hot pages (hot1, hot2, hot3, hot4) may be programmed into empty spare pages of assigned target blocks 114, 115, 116,

실시 예로서, 각 타겟 블록들(114, 115, 116, 117) 간에는 불휘발성 메모리 장치(100)의 내부 동작에 의해 곧 소거가 되는 순서를 나타내는 소거 순위의 차이가 있을 수 있다. 예를 들어, 내부 동작이 가비지 컬렉션(Garbage Collection)인 경우, 무효(invalid) 페이지를 많이 포함하는 타겟 블록일수록 더 이른 시기에 가비지 컬렉션의 대상이 될 것이다. 즉, 무효 페이지를 많이 포함하는 타겟 블록은 상대적으로 가비지 컬렉션에 있어서 소거 순위가 높다. As an embodiment, there may be a difference in erase order between the target blocks 114, 115, 116, and 117 indicating the order of erasing soon due to the internal operation of the non-volatile memory device 100. For example, if the internal operation is a garbage collection, the target block containing a lot of invalid pages will be subject to garbage collection earlier. That is, a target block including a lot of invalid pages is relatively erased in the garbage collection.

이때, 핫 페이지의 우선 순위가 높을수록 높은 소거 순위를 갖는 타겟 블록에 할당 및 프로그램된다. 예를 들어, 핫 페이지들(hot1, hot2, hot3, hot4)의 우선 순위가 차례로 페이지(hot1, 가장 높음), 페이지(hot2), 페이지(hot3), 페이지(hot4, 가장 낮음) 순으로 높고, 타겟 블록들(114, 115, 116, 117)의 소거 순위가 차례로 블록(114, 가장 높음), 블록(115), 블록(116), 블록(117, 가장 낮음) 순으로 높다고 가정한다. 그러면, 핫 페이지의 우선 순위 및 타겟 블록의 소거 순위에 따라, 페이지(hot1)는 블록(114)에 할당 및 프로그램되고, 페이지(hot4)는 블록(117)에 할당 및 프로그램된다. 마찬가지로, 페이지(hot2) 및 페이지(hot3)은 각각 블록(115) 및 블록(116)에 할당 및 프로그램된다.At this time, the higher the priority of the hot page, the more the target block having a high erase order is allocated and programmed. For example, the priority of hot pages (hot1, hot2, hot3, hot4) is higher in order of page (hot1, highest), page (hot2), page (hot3), page (hot4, lowest) It is assumed that the erase orders of the target blocks 114, 115, 116 and 117 are sequentially higher in order of block 114 (highest), block 115, block 116, and block 117 (lowest). Then, the page (hot1) is allocated and programmed in block 114 and the page (hot4) is allocated and programmed in block 117, depending on the priority of the hot page and the erase order of the target block. Similarly, page (hot2) and page (hot3) are allocated and programmed to block 115 and block 116, respectively.

상기와 같은 구성에 따르면, 핫 페이지들 중 읽기 횟수 또는 빈도가 높은 페이지일수록 소거 순위가 높은 타겟 블록에 프로그램된다. 따라서, 핫 페이지에 의해 타겟 블록의 읽기 카운트가 증가하고, 증가된 읽기 카운트에 의해 타겟 블록에 읽기 마이그레이션이 수행될 가능성을 낮출 수 있다. 즉, 읽기 마이그레이션이 수행되기 전에 내부 동작(예를 들어, 가비지 컬렉션)에 의해 소거가 될 타겟 블록에 우선 순위가 높은 핫 페이지를 할당함으로써, 읽기 마이그레이션의 발생 가능성을 최소화할 수 있다.According to the above configuration, a page with a high read frequency or a high frequency among hot pages is programmed in a target block having a high erase order. Thus, the read count of the target block is increased by the hot page, and the possibility of performing the read migration to the target block by the increased read count can be lowered. That is, the possibility of a read migration can be minimized by allocating a high priority hot page to a target block to be erased by an internal operation (for example, garbage collection) before a read migration is performed.

도 6은 본 발명의 실시 예들에 따른 데이터 관리 방법을 나타내는 순서도이다. 도 6을 참조하면, 데이터 관리 방법은 S110 단계 내지 S150 단계를 포함한다. 6 is a flowchart illustrating a data management method according to embodiments of the present invention. Referring to FIG. 6, the data management method includes steps S110 to S150.

S110 단계에서, 불휘발성 메모리 장치(100, 도 1 참조)는 제 1 블록에 대한 읽기 명령을 수신한다. 이때, 제 1 블록에 대한 읽기 명령은 제 1 블록에 포함된 적어도 하나의 논리 페이지에 대한 읽기 명령을 포함한다.In step S110, the nonvolatile memory device 100 (see FIG. 1) receives a read command for the first block. At this time, the read command for the first block includes a read command for at least one logical page included in the first block.

실시 예로서, S110 단계에서, 불휘발성 메모리 장치(100)는 제 1 블록에 대한 읽기 명령에 응답하여, 제 1 블록의 블록 읽기 카운트를 증가시킬 수 있다. 여기서 블록 읽기 카운트는 제 1 블록에 대해 읽기 동작이 수행된 횟수를 나타낸다.As an example, in step S110, the non-volatile memory device 100 may increase the block read count of the first block in response to a read command for the first block. Here, the block read count represents the number of times the read operation has been performed for the first block.

S120 단계에서, 불휘발성 메모리 장치(100)는 제 1 블록의 블록 읽기 카운트 및 논리 페이지들의 페이지 읽기 정보에 따라, 제 1 블록에 포함된 논리 페이지들 중 핫 페이지를 결정한다. 페이지 읽기 정보는 논리 페이지들의 페이지 읽기 카운트, 읽기 페이스 또는 보정된 읽기 페이스를 포함할 수 있다. 읽기 카운트, 읽기 페이스 또는 보정된 읽기 페이스에 대한 구체적인 내용은 위에서 설명한 바와 동일하다.In step S120, the non-volatile memory device 100 determines a hot page among the logical pages included in the first block according to the block read count of the first block and the page read information of the logical pages. The page read information may include a page read count of the logical pages, a read face, or a corrected read face. The details of the read count, read phase, or corrected read phase are the same as described above.

구체적으로, S120 단계에서, 불휘발성 메모리 장치(100)는 제 1 블록의 블록 읽기 카운트를 기준 값과 비교한다. 비교 결과, 제 1 블록의 블록 읽기 카운트가 기준 값을 초과하면, 제 1 블록에 포함된 논리 페이지들 중 일부를 다른 블록으로 복사(copy)하기 위해, 논리 페이지들 중 핫 페이지를 결정한다.Specifically, in step S120, the nonvolatile memory device 100 compares the block read count of the first block with a reference value. As a result of the comparison, if the block read count of the first block exceeds the reference value, a hot page among the logical pages is determined in order to copy some of the logical pages included in the first block to another block.

실시 예로서, 제 1 블록에 대한 읽기 명령은 제 1 블록에 포함된 적어도 하나의 논리 페이지에 대한 읽기 명령을 포함한다. 이때, 불휘발성 메모리 장치(100)는 적어도 하나의 논리 페이지에 대한 읽기 명령에 응답하여, 해당 논리 페이지의 읽기 정보를 갱신(또는 재산출)할 것이다. As an embodiment, the read command for the first block includes a read command for at least one logical page included in the first block. At this time, the nonvolatile memory device 100 will update (or re-calculate) the read information of the logical page in response to the read command for at least one logical page.

그리고, 불휘발성 메모리 장치(100)는 제 1 블록의 논리 페이지들의 읽기 정보에 따라, 논리 페이지들 중 핫 페이지를 결정한다. 예를 들어, 핫 페이지 결정의 기준이되는 읽기 정보가 읽기 카운트인 경우, 읽기 카운트가 문턱 값(threshlod value)을 초과하는 논리 페이지들은 핫 페이지로 결정될 것이다. 또는, 핫 페이지 결정의 기준이 되는 읽기 정보가 읽기 페이스 또는 보정된 읽기 페이스인 경우, 읽기 페이스 또는 보정된 읽기 페이스가 문턱 값(threshlod value)을 초과하는 논리 페이지들은 핫 페이지로 결정될 것이다.Then, the nonvolatile memory device 100 determines a hot page among the logical pages in accordance with the read information of the logical pages of the first block. For example, if the read information on which the hot page determination is based is the read count, the logical pages whose read count exceeds the threshold value will be determined as hot pages. Alternatively, when the read information on which the hot page determination is based is the read phase or the corrected read phase, logical pages whose read phase or corrected read phase exceeds the threshold value will be determined as hot pages.

S130 단계에서, 불휘발성 메모리 장치(100)는 결정된 핫 페이지를 제 2 블록(또는, 타겟 블록)에 할당한다. 이때, 복수의 핫 페이지들을 복수의 타겟 블록들에 프로그램하는 경우, 핫 페이지들의 우선 순위 및 타겟 블록들의 소거 순위에 따라 복수의 핫 페이지들을 복수의 타겟 블록에 할당할 수 있다. 우선 순위 또는 소거 순위에 따라 핫 페이지들을 타겟 블록들에 할당하는 구체적인 방법은 도 5에서 설명한 바와 동일하다.In step S130, the nonvolatile memory device 100 allocates the determined hot page to the second block (or the target block). In this case, when a plurality of hot pages are programmed into a plurality of target blocks, a plurality of hot pages may be allocated to a plurality of target blocks according to the priority of hot pages and the erase order of target blocks. The specific method of allocating the hot pages to the target blocks according to the priority order or the erase order is the same as that described in FIG.

S140 단계에서, 불휘발성 메모리 장치(100)는 핫 페이지를 할당된 제 2 블록에 프로그램한다.In step S140, the nonvolatile memory device 100 programs the hot page in the allocated second block.

S150 단계에서, 불휘발성 메모리 장치(100)는 프로그램된 핫 페이지의 대응하는 물리 주소를 나타내는 매핑 테이블을 업데이트한다. 이때, 업데이트되는 매핑 테이블은 논리 페이지의 대응하는 물리 주소를 나타내는 매핑 테이블 또는 복제본(또는, 레플리카)의 대응하는 물리 주소를 나타내는 레플리카 테이블일 수 있다. 매핑 테이블, 레플리카 테이블 또는 매핑 테이블, 레플리카 테이블을 업데이트하는 방법에 대한 구체적인 내용은 도 3 및 도 4에서 설명된 바와 동일하다.In step S150, the non-volatile memory device 100 updates the mapping table indicating the corresponding physical address of the programmed hot page. At this time, the updated mapping table may be a mapping table indicating a corresponding physical address of the logical page or a replica table indicating a corresponding physical address of the replica (or replica). The details of how to update the mapping table, the replica table or the mapping table and the replica table are the same as those described in Figs. 3 and 4.

상기와 같은 구성에 따르면, 불휘발성 메모리 장치(100)는 제 1 블록의 읽기 카운트에 따라, 제 1 블록의 논리 페이지들 중 핫 페이지를 읽어내어 제 2 블록(또는, 타겟 블록)에 프로그램한다. 그리고, 이후 핫 페이지에 대한 읽기 명령이 수신되면, 불휘발성 메모리 장치(100)는 핫 페이지를 제 1 블록 대신 제 2 블록으로부터 독출한다. 따라서, 핫 페이지에 대한 읽기 명령이 반복적으로 수신되는 경우, 핫 페이지에 대한 읽기 동작은 적어도 두 개의 블록(제 1 및 제 2 블록)에서 분산되어 수행될 수 있다. 따라서, 핫 페이지를 독출하기 위해, 제 1 블록에 과도한 읽기 동작이 집중되는 것이 방지될 수 있고, 제 1 블록에 대해 읽기 마이그레이션이 수행될 가능성을 낮출 수 있다.According to the above configuration, the nonvolatile memory device 100 reads the hot page among the logical pages of the first block and programs it in the second block (or the target block) according to the read count of the first block. Then, when a read command for the hot page is received thereafter, the nonvolatile memory device 100 reads the hot page from the second block instead of the first block. Thus, when a read command for a hot page is repeatedly received, the read operation for the hot page may be performed in at least two blocks (first and second blocks) in a dispersed manner. Thus, in order to read the hot page, the excessive read operation can be prevented from concentrating on the first block, and the possibility of performing the read migration on the first block can be reduced.

도 7 및 도 8은 본 발명에 따른 데이터 관리 방법의 제 4 실시 예를 나타내는 도면이다. 도 7 및 도 8은 논리 페이지들의 읽기 정보 저장에 필요한 메모리 공간을 최소화하기 위한 데이터 관리 방법을 제공한다.7 and 8 are views showing a fourth embodiment of a data management method according to the present invention. 7 and 8 provide a data management method for minimizing the memory space required for storing read information of logical pages.

도 7은 복수의 블록들 중 일부 블록의 논리 페이지들에 대해서만 읽기 정보를 저장하는 데이터 관리 방법을 나타낸다. 도 7을 참조하면, 불휘발성 메모리 장치(200)는 블록의 읽기 카운트(RC)를 관리하기 위한 블록 테이블(210) 및 논리 페이지의 읽기 카운트(RC)를 관리하기 위한 페이지 테이블(220, 230)을 포함한다.7 shows a data management method of storing read information only for logical pages of a part of a plurality of blocks. 7, the non-volatile memory device 200 includes a block table 210 for managing a read count (RC) of a block and page tables 220 and 230 for managing a read count (RC) .

블록 테이블(210)은 복수의 블록들(BLK1, BLK2, … , BLKn)의 블록 읽기 카운트(BLK RC)를 저장한다. 블록 테이블(210)에 저장되는 블록 읽기 카운트(BLK RC)는 블록에 대한 읽기 명령이 수신되면 갱신된다. 예를 들어, 블록(BLK2)의 저장된 읽기 카운트는 40이지만, 블록(BLK2)에 대해 2회의 읽기 명령이 수신되고 그에 따라 2회의 읽기 동작이 수행되면, 블록(BLK2)의 저장된 읽기 카운트는 42로 갱신될 것이다.The block table 210 stores a block read count (BLK RC) of a plurality of blocks (BLK1, BLK2, ..., BLKn). The block read count (BLK RC) stored in the block table 210 is updated when a read command for the block is received. For example, the stored read count of block BLK2 is 40, but if two read commands are received for block BLK2 and two read operations are thus performed, the stored read count of block BLK2 is 42 Will be updated.

불휘발성 메모리 장치(200)는 블록 테이블(210)을 참조하여, 블록 읽기 카운트(BLK RC)가 문턱 값(threshold value, 예를 들어 100)을 초과하는지 판단한다. 그리고, 블록 읽기 카운트(BLK RC)가 문턱 값을 초과하면, 그 블록에 포함된 논리 페이지들의 읽기 카운트를 페이지 테이블(220, 230)에 저장한다. 즉, 읽기 카운트가 상대적으로 큰(즉, 핫 페이지를 결정할 필요가 있는) 블록에 대해서만 선택적으로 논리 페이지들의 읽기 카운트를 저장한다.The non-volatile memory device 200 refers to the block table 210 and determines whether the block read count BLK RC exceeds a threshold value (e.g., 100). If the block read count (BLK RC) exceeds the threshold value, the read count of the logical pages included in the block is stored in the page tables 220 and 230. That is, the read count of the logical pages is selectively stored only for the block whose read count is relatively large (that is, the hot page needs to be determined).

예를 들어, 블록(BLK1)은 블록 읽기 카운트(BLK RC)가 문턱 값을 초과한다(150 〉100). 따라서, 블록(BLK1)에 포함된 논리 페이지들(page 1a, page 1b, page 1c)에 대해서 각각 페이지 읽기 카운트(30, 40, 22)가 페이지 테이블(220)에 저장된다. 한편, 페이지 읽기 카운트 저장에 필요한 메모리 공간을 최소화하기 위해, 하나의 블록당 페이지 읽기 카운트가 저장되는 논리 페이지의 수는 제한될 수 있다. 예를 들어, 하나의 블록에 포함되는 논리 페이지들 중 최대 3개의 논리 페이지만이 페이지 테이블(220)에 페이지 읽기 카운트가 저장될 수 있다. 이에 대한 구체적인 내용은 도 8에서 후술될 것이다.For example, in block BLK1, the block read count BLK RC exceeds the threshold (150 > 100). Accordingly, the page read counts 30, 40, and 22 are stored in the page table 220 for the logical pages (page 1a, page 1b, page 1c) included in the block BLK1. On the other hand, in order to minimize the memory space required for storing the page read count, the number of logical pages in which the page read count per block is stored may be limited. For example, only a maximum of three logical pages among the logical pages included in one block may be stored in the page table 220 as a page read count. The details of this will be described later with reference to FIG.

마찬가지로, 문턱 값을 초과하는 다른 블록(BLK3)도 논리 페이지의 페이지 읽기 카운트 값이 페이지 테이블(230)에 저장된다. 여기서는 블록(BLK1) 및 블록(BLK3)에 각각 별개의 페이지 테이블(220, 230)이 대응되는 것으로 설명되었다. 그러나, 예시적인 것으로서, 하나의 페이지 테이블에 의해 복수 블록의 페이지 읽기 카운트가 저장될 수 있다.Similarly, the other block BLK3 exceeding the threshold value also stores the page read count value of the logical page in the page table 230. [ Here, it has been described that the page tables 220 and 230 correspond to the blocks BLK1 and BLK3, respectively. However, by way of illustration, page read counts of a plurality of blocks may be stored by one page table.

반면, 블록(BLK2)는 블록 읽기 카운트(BLK RC)가 문턱 값 미만이다(40〈 100). 따라서, 블록(BLK2)에 대해서는 블록 읽기 카운트(BLK RC)만이 블록 테이블(210)에 저장되고, 블록(BLK2)에 포함된 논리 페이지들의 읽기 카운트는 별도로 저장되지 않는다.On the other hand, the block BLK2 has a block read count BLK RC less than the threshold (40 < 100). Therefore, for the block BLK2, only the block read count BLK RC is stored in the block table 210, and the read count of the logical pages included in the block BLK2 is not separately stored.

상기와 같은 구성에 따르면, 일부 블록(BLK1, BLK3)에 대해서만 논리 페이지의 페이지 읽기 카운트가 저장된다. 따라서, 페이지 읽기 카운트를 관리하기 위해 필요한 메모리 공간이 감소될 수 있다.According to the above configuration, the page read count of the logical page is stored for only some of the blocks BLK1 and BLK3. Thus, the memory space required to manage the page read count can be reduced.

도 8은 하나의 블록에 포함된 논리 페이지들 중 일부 논리 페이지들에 대해서만 읽기 정보를 저장하는 데이터 관리 방법을 나타낸다. 도 8을 참조하면, 불휘발성 메모리 장치(200)는 논리 페이지들의 페이지 읽기 카운트를 관리하기 위한 페이지 테이블(220)을 포함한다.8 shows a data management method for storing read information for only some of the logical pages included in one block. Referring to FIG. 8, the non-volatile memory device 200 includes a page table 220 for managing page read counts of logical pages.

도 8에서, 페이지 읽기 카운트 저장에 필요한 메모리 공간을 최소화하기 위해, 하나의 블록당 페이지 읽기 카운트가 저장되는 논리 페이지의 수는 제한된다. 예를 들어, 하나의 블록에 포함되는 논리 페이지들 중 최대 3개의 논리 페이지에 대해서 페이지 테이블(220)에 페이지 읽기 카운트가 저장될 수 있다. In Fig. 8, in order to minimize the memory space required for storing the page read count, the number of logical pages in which the page read count per block is stored is limited. For example, a page read count may be stored in the page table 220 for up to three logical pages among the logical pages included in one block.

페이지 테이블(220)에는 블록(BLK1)에 포함된 논리 페이지들 중 최대 3개의 논리 페이지들의 페이지 읽기 카운트가 저장된다고 가정한다. 그리고, 페이지 테이블(220)에는 3개의 논리 페이지들(page 1a, page 1b, page 1c)의 페이지 읽기 카운트가 저장되어 있다고 가정한다. 이때, 페이지 테이블(220)에 페이지 읽기 카운트가 저장된 논리 페이지들(page 1a, page 1b, page 1c)을 제 1 그룹이라 한다. 반면에, 페이지 테이블(220)에 페이지 읽기 카운트가 저장되지 않은 논리 페이지들은 제 2 그룹이라 한다.The page table 220 stores a page read count of up to three logical pages among the logical pages included in the block BLK1. It is assumed that the page table 220 stores page read counts of three logical pages (page 1a, page 1b, page 1c). At this time, the logical pages (page 1a, page 1b, page 1c) in which the page read count is stored in the page table 220 are referred to as a first group. On the other hand, the logical pages in which the page read count is not stored in the page table 220 are referred to as a second group.

블록(BLK1)에 대한 읽기 명령이 수신되면, 블록(BLK1)의 블록 읽기 카운트는 증가할 것이다. 예를 들어, 블록(BLK1)의 블록 읽기 카운트는 150에서 151로 증가할 수 있다. 그리고, 블록(BLK1)에 대한 읽기 명령이 제 1 그룹에 속하는 논리 페이지에 대한 읽기 명령을 포함하면, 페이지 테이블(220)에 저장된 페이지 읽기 카운트가 증가할 것이다. 예를 들어, 블록(BLK1)에 대한 읽기 명령이 페이지(page 1a)에 대한 읽기 명령을 포함하면, 페이지(page 1a)의 페이지 읽기 카운트는 30에서 31로 증가하고, 증가된 값이 페이지 테이블(220)에 저장된다.When a read command for block BLK1 is received, the block read count of block BLK1 will increase. For example, the block read count of block BLK1 may increase from 150 to 151. And, if the read command for block BLK1 includes a read command for a logical page belonging to the first group, the page read count stored in the page table 220 will increase. For example, if the read command for block BLK1 includes a read command for page 1a, the page read count of page 1a increases from 30 to 31, 220).

반면, 블록(BLK1)에 대한 읽기 명령이 제 2 그룹에 속하는 논리 페이지(예를 들어, page 1d)에 대한 읽기 명령을 포함하는 경우, 읽기가 수행되는 논리 페이지(page 1d)의 페이지 읽기 카운트 값은 페이지 테이블(220)에 저장되어 있지 않다. 따라서, 이때, 논리 페이지들의 평균 페이지 읽기 카운트(mean RC)가 논리 페이지(page 1d)의 읽기 카운트로 결정된다. 예를 들어, 블록(BLK1)의 블록 읽기 카운트가 150이고, 블록(BLK1)이 5개의 논리 페이지를 포함하는 경우, 블록 읽기 카운트는 5개 논리 페이지들의 페이지 읽기 카운트의 합과 같다. 따라서, 블록(BLK1)에 포함되는 논리 페이지들의 평균 페이지 읽기 카운트(mean RC)는 30이고(150÷5 〓 30), 논리 페이지(page 1d)의 페이지 읽기 카운트는 30으로 결정된다.On the other hand, when the read command for the block BLK1 includes a read command for a logical page belonging to the second group (for example, page 1d), the page read count value of the logical page (page 1d) Is not stored in the page table 220. Thus, at this time, the average page read count (mean RC) of the logical pages is determined as the read count of the logical page (page 1d). For example, if the block read count of block BLK1 is 150 and block BLK1 comprises five logical pages, the block read count is equal to the sum of the page read counts of the five logical pages. Therefore, the average page read count (mean RC) of the logical pages included in the block BLK1 is 30 (150/5 = 30), and the page read count of the logical page (page 1d)

그리고, 논리 페이지(page 1d)의 결정된 페이지 읽기 카운트와 페이지 테이블(220)에 저장된 페이지 읽기 카운트들의 값을 비교한다. 구체적으로, 논리 페이지(page 1d)의 결정된 페이지 읽기 카운트가 페이지 테이블(220)에 저장된 최소 페이지 읽기 카운트를 초과하는지 판단한다. Then, the determined page read count of the logical page (page 1d) is compared with the value of the page read counts stored in the page table (220). Specifically, it is determined whether the determined page read count of the logical page (page 1d) exceeds the minimum page read count stored in the page table 220. [

만일, 결정된 페이지 읽기 카운트가 최소 페이지 읽기 카운트를 초과하는 경우, 읽기가 수행되는 논리 페이지(page 1d)는 최소 페이지 읽기 카운트에 대응되는 논리 페이지(page 1c)보다 더 자주 읽히는 페이지인 것으로 간주된다. 따라서, 페이지 테이블(220)로부터 논리 페이지(page 1c)의 페이지 읽기 카운트는 삭제된다. 그리고, 삭제된 페이지 읽기 카운트를 대체하여 논리 페이지(page 1d)의 페이지 읽기 카운트가 페이지 테이블(220)에 저장된다.If the determined page read count exceeds the minimum page read count, the logical page on which the read is performed (page 1d) is considered to be a page that is read more frequently than the logical page (page 1c) corresponding to the minimum page read count. Thus, the page read count of the logical page (page 1c) from the page table 220 is deleted. Then, the page read count of the logical page (page 1d) is stored in the page table 220 in place of the deleted page read count.

상기와 같은 구성에 따르면, 블록(BLK1)에 포함된 복수의 논리 페이지들의 읽기 카운트를 참조하여, 읽기 빈도 또는 횟수가 높은 논리 페이지들의 페이지 읽기 카운트만이 페이지 테이블(220)에 저장된다. 따라서, 페이지 읽기 카운트를 저장하기 위해 필요한 메모리 공간이 감소될 수 있다.According to the above configuration, referring to the read count of the plurality of logical pages included in the block BLK1, only the page read count of logical pages having a high read frequency or a high frequency is stored in the page table 220. [ Thus, the memory space required to store the page read count can be reduced.

도 9는 본 발명의 제 4 실시 예에 따른 데이터 관리 방법을 구체적으로 나타내는 순서도이다. 도 9를 참조하면, 본 실시 예에 따른 데이터 관리 방법은 S210 단계 내지 S280 단계를 포함한다.9 is a flowchart specifically illustrating a data management method according to a fourth embodiment of the present invention. Referring to FIG. 9, the data management method according to the present embodiment includes steps S210 to S280.

S210 단계에서, 블록에 대한 읽기 명령이 수신된다. 이때, 블록에 대한 읽기 명령은 블록에 포함된 논리 페이지에 대한 읽기 명령을 포함한다. In step S210, a read command for the block is received. At this time, the read command for the block includes a read command for the logical page included in the block.

S220 단계에서, 읽기 명령이 수신된 블록의 블록 읽기 카운트가 증가된다. 실시 예로서, 블록에 대한 읽기 명령이 1회 수신될 때마다, 블록 읽기 카운트는 1씩 증가될 수 있다.In step S220, the block read count of the block in which the read command is received is incremented. As an example, each time a read command for a block is received, the block read count may be incremented by one.

S230 단계에서, 읽기 명령이 수신된 블록의 블록 읽기 카운트가 문턱 값을 초과하는 지 판단한다. 본 실시 예에 따른 데이터 관리 방법에서, 블록 읽기 카운트가 문턱 값을 초과하는 블록에 대해서만, 논리 페이지의 페이지 읽기 카운트가 별도로 저장된다.In step S230, it is determined whether the block read count of the block in which the read command is received exceeds a threshold value. In the data management method according to the present embodiment, the page read count of the logical page is separately stored only for the block whose block read count exceeds the threshold value.

문턱 값을 초과하면, 데이터 관리 방법은 S240 단계로 진행한다. 문턱 값을 초과하지 않으면, 데이터 관리 방법은 종료한다. If the threshold value is exceeded, the data management method proceeds to step S240. If the threshold value is not exceeded, the data management method ends.

S240 단계에서, 읽기가 수행되는 논리 페이지(이하, 대상 페이지)가 페이지 테이블(또는, RC 테이블)에 페이지 읽기 카운트가 저장된 논리 페이지 그룹(이하, 제 1 그룹)에 속하는지 판단한다. 대상 페이지가 제 1 그룹에 속하면, 데이터 관리 방법은 S260 단계로 진행한다. 그렇지 않으면, 데이터 관리 방법은 S250 단계로 진행한다.In step S240, it is determined whether a logical page (hereinafter referred to as a target page) to be read belongs to a logical page group (hereinafter referred to as a first group) in which page read counts are stored in the page table (or RC table). If the target page belongs to the first group, the data management method proceeds to step S260. Otherwise, the data management method proceeds to step S250.

S250 단계에서, 블록의 평균 페이지 읽기 카운트(mean RC)를 대상 페이지의 페이지 읽기 카운트로서 결정한다. 여기서, 평균 페이지 읽기 카운트(mean RC) 및 대상 페이지의 페이지 읽기 카운트를 결정하는 방법에 대한 구체적인 내용은 앞에서 설명한 바와 동일하다.In step S250, the average page read count (mean RC) of the block is determined as the page read count of the target page. Here, the details of the method for determining the average page read count (mean RC) and the page read count of the target page are the same as those described above.

S270 단계에서, 대상 페이지의 페이지 읽기 카운트를 페이지 테이블의 최소 페이지 읽기 카운트와 비교한다. 비교 결과, 대상 페이지의 페이지 읽기 카운트가 최소 페이지 읽기 카운트를 초과하면, 데이터 관리 방법은 S280 단계로 진행한다. 그렇지 않으면, 데이터 관리 방법은 종료한다.In step S270, the page read count of the target page is compared with the minimum page read count of the page table. As a result of the comparison, if the page read count of the target page exceeds the minimum page read count, the data management method proceeds to step S280. Otherwise, the data management method ends.

S280 단계에서, 페이지 테이블로부터 최소 페이지 읽기 카운트는 삭제된다. 그리고, 삭제된 페이지 읽기 카운트를 대체하여 대상 페이지의 페이지 읽기 카운트가 페이지 테이블에 저장된다. S280 단계가 종료하면, 데이터 관리 방법은 종료한다.In step S280, the minimum page read count from the page table is deleted. Then, the page read count of the target page is stored in the page table in place of the deleted page read count. When the step S280 is finished, the data management method ends.

한편, 다시 S260 단계로 돌아가면, On the other hand, when the process returns to step S260,

S240 단계가 종료된 후 S250 단계에서, 대상 페이지의 페이지 읽기 카운트는 증가되고, 증가된 페이지 읽기 카운트는 페이지 테이블(또는, RC 테이블)에 저장된다. S260 단계가 종료하면, 데이터 관리 방법은 종료된다.After step S240 ends, in step S250, the page read count of the target page is increased and the increased page read count is stored in the page table (or RC table). When step S260 is completed, the data management method ends.

상기와 같은 구성에 따르면, 일부 블록에 대해서만 논리 페이지의 페이지 읽기 카운트가 저장된다. 또한, 하나의 블록에 포함되는 논리 페이지들 중 페이지 읽기 카운트가 저장되는 논리 페이지의 개수가 제한될 수 있다. 따라서, 페이지 읽기 카운트를 관리하기 위해 필요한 메모리 공간이 감소될 수 있다.According to the above arrangement, the page read count of the logical page is stored only for some blocks. In addition, the number of logical pages in which the page read count is stored among the logical pages included in one block may be limited. Thus, the memory space required to manage the page read count can be reduced.

도 12는 본 발명의 실시 예들에 따른 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD)를 나타내는 블록도이다. 도 12를 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다. 12 is a block diagram illustrating a solid state drive (SSD) according to embodiments of the present invention. Referring to FIG. 12, a user device 1000 includes a host 1100 and an SSD 1200. The SSD 1200 includes an SSD controller 1210, a buffer memory 1220, and a non-volatile memory device 1230.

SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(1210)는 불휘발성 메모리 장치(1230)를 액세스한다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.The SSD controller 1210 provides a physical connection between the host 1100 and the SSD 1200. That is, the SSD controller 1210 provides interfacing with the SSD 1200 in response to the bus format of the host 1100. In particular, the SSD controller 1210 decodes the instruction provided from the host 1100. [ Depending on the decoded result, the SSD controller 1210 accesses the non-volatile memory device 1230. (PCI) express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), and the like are used as the bus format of the host 1100. [ And the like.

버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다. In the buffer memory 1220, write data provided from the host 1100 or data read from the nonvolatile memory device 1230 are temporarily stored. When data existing in the nonvolatile memory device 1230 is cached at the time of the read request of the host 1100, the buffer memory 1220 supports the cache function of providing the cached data directly to the host 1100 . Generally, the data transfer rate by the host 1100 in the bus format (e.g., SATA or SAS) is much faster than the transfer rate of the memory channel of the SSD 1200. That is, when the interface speed of the host 1100 is much higher, performance degradation caused by speed difference can be minimized by providing a buffer memory 1220 of a large capacity.

버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. The buffer memory 1220 may be provided to a synchronous DRAM (DRAM) to provide sufficient buffering in the SSD 1200 used as a large capacity auxiliary storage device. However, it will be apparent to those skilled in the art that the buffer memory 1220 is not limited to the disclosure herein.

불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 수직 구조 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 불휘발성 메모리 장치(1230)는 실질적으로 도 1에서 설명된 불휘발성 메모리 장치와 동일하게 구성될 수 있다.The nonvolatile memory device 1230 is provided as a storage medium of the SSD 1200. For example, the non-volatile memory device 1230 may be provided as a NAND-type Flash memory having a large storage capacity. The non-volatile memory device 1230 may be comprised of a plurality of memory devices. In this case, each memory device is connected to the SSD controller 1210 on a channel-by-channel basis. Although the nonvolatile memory device 1230 has been described as a storage medium by way of example of a NAND flash memory, it may be composed of other nonvolatile memory devices. For example, PRAM, MRAM, ReRAM, FRAM, NOR flash memory, or the like may be used as a storage medium, and a memory system in which heterogeneous memory devices are mixed can be applied. The non-volatile memory device 1230 may be configured substantially the same as the non-volatile memory device described in FIG.

상술한 SSD(1200)에서, 불휘발성 메모리 장치(1230)는 메모리 블록들의 읽기 횟수에 따라, 읽기가 많이 수행된 메모리 블록의 핫 페이지들을 읽어내어 다른 블록(이하, 타겟 블록이라 한다)에 프로그램한다. 그리고, 이후 핫 페이지들에 대한 읽기 명령이 수신되면, 타겟 블록으로부터 핫 페이지들을 독출한다. In the SSD 1200 described above, the non-volatile memory device 1230 reads hot pages of a memory block in which a lot of read operations have been performed, and programs the hot pages in another block (hereinafter, referred to as a target block) . Then, when a read command for the hot pages is received thereafter, hot pages are read out from the target block.

상기와 같은 구성에 따르면, 불휘발성 메모리 장치(1230)로부터 핫 페이지를 반복적으로 읽어내는 경우, 핫 페이지에 대한 읽기 동작은 적어도 두 개의 블록에서 분산되어 수행될 수 있다. 따라서, 핫 페이지를 독출에 따른 읽기 동작이 하나의 블록에서 과도하게 수행되는 것이 방지될 수 있다. 그 결과, 특정 블록에 대해 읽기 마이그레이션이 빈번하게 수행되는 것을 방지할 수 있다.According to such a configuration, when the hot page is repeatedly read from the non-volatile memory device 1230, the read operation for the hot page can be performed dispersedly in at least two blocks. Therefore, it is possible to prevent the read operation according to the hot page from being performed excessively in one block. As a result, it is possible to prevent read migration from being frequently performed on a specific block.

도 13은 본 발명의 실시 예들에 따른 데이터 저장 장치를 예시적으로 나타내는 블록도이다. 도 13을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 메모리 컨트롤러(2200)와 불휘발성 메모리(2100)를 포함할 수 있다.13 is a block diagram illustrating an exemplary data storage device in accordance with embodiments of the present invention. Referring to FIG. 13, a memory system 2000 according to the present invention may include a memory controller 2200 and a nonvolatile memory 2100.

불휘발성 메모리 장치(2100)는 실질적으로 도 1에서 설명된 불휘발성 메모리 장치와 동일하게 구성될 수 있다.The non-volatile memory device 2100 may be configured substantially the same as the non-volatile memory device described in FIG.

메모리 컨트롤러(2200)는 불휘발성 메모리(2100)를 제어하도록 구성될 수 있다. SRAM(2230)은 CPU(2210)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(2220)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 메모리 컨트롤러(2200)에 구비된 에러 정정 회로(2240)는 불휘발성 메모리(2100)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2260)는 본 발명의 불휘발성 메모리(2100)와 인터페이싱 할 수 있다. CPU(2210)는 메모리 컨트롤러(2200)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)는 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있다. The memory controller 2200 may be configured to control the non-volatile memory 2100. The SRAM 2230 can be used as a working memory of the CPU 2210. The host interface 2220 may have a data exchange protocol of the host connected to the memory system 2000. The error correction circuit 2240 provided in the memory controller 2200 can detect and correct an error included in the read data read from the nonvolatile memory 2100. The memory interface 2260 may interface with the nonvolatile memory 2100 of the present invention. The CPU 2210 can perform all control operations for data exchange of the memory controller 2200. [ Although not shown in the figure, the memory system 2000 according to the present invention may further be provided with a ROM (not shown) for storing code data for interfacing with a host.

메모리 컨트롤러(2100)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. The memory controller 2100 may be configured to communicate with an external (e.g., host) through one of a variety of interface protocols such as USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, .

상술한 메모리 시스템(2000)에서, 불휘발성 메모리 장치(2100)는 메모리 블록들의 읽기 횟수에 따라, 읽기가 많이 수행된 메모리 블록의 핫 페이지들을 읽어내어 다른 블록(이하, 타겟 블록이라 한다)에 프로그램한다. 그리고, 이후 핫 페이지들에 대한 읽기 명령이 수신되면, 타겟 블록으로부터 핫 페이지들을 독출한다. In the above-described memory system 2000, the non-volatile memory device 2100 reads hot pages of a memory block in which a lot of read operations have been performed according to the number of read operations of the memory blocks, do. Then, when a read command for the hot pages is received thereafter, hot pages are read out from the target block.

상기와 같은 구성에 따르면, 불휘발성 메모리 장치(2100)로부터 핫 페이지를 반복적으로 읽어내는 경우, 핫 페이지에 대한 읽기 동작은 적어도 두 개의 블록에서 분산되어 수행될 수 있다. 따라서, 핫 페이지를 독출에 따른 읽기 동작이 하나의 블록에서 과도하게 수행되는 것이 방지될 수 있다. 그 결과, 특정 블록에 대해 읽기 마이그레이션이 빈번하게 수행되는 것을 방지할 수 있다.According to such a configuration, when the hot page is repeatedly read from the non-volatile memory device 2100, the read operation for the hot page can be performed dispersedly in at least two blocks. Therefore, it is possible to prevent the read operation according to the hot page from being performed excessively in one block. As a result, it is possible to prevent read migration from being frequently performed on a specific block.

본 발명에 따른 메모리 시스템(2000)는, 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 사용자 장치들 중 하나에 적용될 수 있다. The memory system 2000 according to the present invention may be implemented as a computer, a portable computer, a UMPC (Ultra Mobile PC), a workstation, a netbook, a PDA, a portable computer, a web tablet, a wireless phone, a mobile phone, a smart phone, a digital camera, a digital audio recorder, a digital audio player, a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, a device capable of transmitting and receiving information in a wireless environment, various user devices constituting a home network, ≪ / RTI >

도 14는 본 발명의 실시 예들에 따른 메모리 카드를 예시적으로 나타내는 블록도이다. 도 14를 참조하면, 본 발명에 따른 데이터 저장 장치(3000)는 불휘발성 메모리(3100)와 메모리 컨트롤러(3200)를 포함할 수 있다. 메모리 컨트롤러(3200)는 데이터 저장 장치(3000) 외부로부터 수신된 제어 신호들에 기초하여 불휘발성 메모리(3100)를 제어할 수 있다. 14 is a block diagram exemplarily showing a memory card according to embodiments of the present invention. Referring to FIG. 14, a data storage device 3000 according to the present invention may include a nonvolatile memory 3100 and a memory controller 3200. The memory controller 3200 can control the nonvolatile memory 3100 based on control signals received from outside the data storage device 3000. [

상술한 데이터 저장 장치(3000)에서, 불휘발성 메모리(3100)는 도 1의 불휘발성 메모리 장치와 실질적으로 동일하게 동작할 수 있다. 불휘발성 메모리(3100)는 메모리 블록들의 읽기 횟수에 따라, 읽기가 많이 수행된 메모리 블록의 핫 페이지들을 읽어내어 다른 블록(이하, 타겟 블록이라 한다)에 프로그램한다. 그리고, 이후 핫 페이지들에 대한 읽기 명령이 수신되면, 타겟 블록으로부터 핫 페이지들을 독출한다. 상기와 같은 구성에 따르면, 불휘발성 메모리(3100)로부터 핫 페이지를 반복적으로 읽어내는 경우, 핫 페이지에 대한 읽기 동작은 적어도 두 개의 블록에서 분산되어 수행될 수 있다. 따라서, 핫 페이지를 독출에 따른 읽기 동작이 하나의 블록에서 과도하게 수행되는 것이 방지될 수 있다. 그 결과, 특정 블록에 대해 읽기 마이그레이션이 빈번하게 수행되는 것을 방지할 수 있다.In the data storage device 3000 described above, the nonvolatile memory 3100 can operate substantially the same as the nonvolatile memory device of FIG. The nonvolatile memory 3100 reads hot pages of a memory block in which a lot of read operations have been performed according to the number of read operations of the memory blocks, and programs the hot pages in another block (hereinafter, referred to as a target block). Then, when a read command for the hot pages is received thereafter, hot pages are read out from the target block. According to the above configuration, when hot pages are repeatedly read from the nonvolatile memory 3100, the read operation for the hot pages can be performed in at least two blocks in a dispersed manner. Therefore, it is possible to prevent the read operation according to the hot page from being performed excessively in one block. As a result, it is possible to prevent read migration from being frequently performed on a specific block.

본 발명의 데이터 저장 장치(3000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 카드, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할 수 있다. 예를 들면, 본 발명의 데이터 저장 장치(3000)는 디지털, 카메라, 개인 컴퓨터 등과 같은 사용자 장치를 사용하기 위한 산업 표준을 만족하는 카드를 구성할 수 있다. The data storage device 3000 of the present invention can constitute a memory card device, an SSD device, a multimedia card device, an SD card, a memory stick device, a hard disk drive device, a hybrid drive device, or a universal serial bus flash device. For example, the data storage device 3000 of the present invention can configure a card that meets industry standards for using a user device such as a digital camera, a personal computer, and the like.

도 15는 본 발명의 실시 예들에 따른 불휘발성 메모리 장치 및 그것을 포함하는 컴퓨팅 시스템의 개략적인 구성을 나타내는 도면이다. 도 15를 참조하면, 본 발명에 따른 컴퓨팅 시스템(4000)은 버스(4400)에 전기적으로 연결된 불휘발성 메모리 장치(4100), 메모리 컨트롤러(4200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(4300), 마이크로프로세서(4500), 그리고 사용자 인터페이스(4600)를 포함할 수 있다. 15 is a diagram showing a schematic configuration of a nonvolatile memory device and a computing system including the nonvolatile memory device according to embodiments of the present invention. 15, a computing system 4000 in accordance with the present invention includes a non-volatile memory device 4100 electrically coupled to a bus 4400, a memory controller 4200, a modem 4300, such as a baseband chipset, ), A microprocessor 4500, and a user interface 4600.

도 15에 도시된 불휘발성 메모리 장치(4100)와 메모리 컨트롤러(4200)의 구성은 도 1에 도시된 불휘발성 메모리 장치와 실질적으로 동일하게 구성될 수 있다. 메모리 컨트롤러(4200)는 불휘발성 메모리 장치(4100)의 메모리 블록들의 읽기 횟수에 따라, 읽기가 많이 수행된 메모리 블록의 핫 페이지들이 다른 블록(이하, 타겟 블록이라 한다)에 프로그램되도록 불휘발성 메모리 장치(4100)를 제어한다. 그리고, 이후 핫 페이지들에 대한 읽기 명령이 수신되면, 타겟 블록으로부터 핫 페이지들을 독출하도록 불휘발성 메모리 장치(4100)를 제어한다. The configuration of the nonvolatile memory device 4100 and the memory controller 4200 shown in FIG. 15 can be configured substantially the same as the nonvolatile memory device shown in FIG. The memory controller 4200 controls the non-volatile memory device 4100 such that the hot pages of the memory block subjected to a lot of read operations are programmed in another block (hereinafter, referred to as a target block) (4100). Then, when a read command for the hot pages is received thereafter, the non-volatile memory device 4100 is controlled to read hot pages from the target block.

상기와 같은 구성에 따르면, 불휘발성 메모리 장치(4100)로부터 핫 페이지를 반복적으로 읽어내는 경우, 핫 페이지에 대한 읽기 동작은 적어도 두 개의 블록에서 분산되어 수행될 수 있다. 따라서, 핫 페이지를 독출에 따른 읽기 동작이 하나의 블록에서 과도하게 수행되는 것이 방지될 수 있다. 그 결과, 특정 블록에 대해 읽기 마이그레이션이 빈번하게 수행되는 것을 방지할 수 있다.According to such a configuration, when the hot pages are repeatedly read from the nonvolatile memory device 4100, the read operation for the hot pages can be performed dispersedly in at least two blocks. Therefore, it is possible to prevent the read operation according to the hot page from being performed excessively in one block. As a result, it is possible to prevent read migration from being frequently performed on a specific block.

본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(4700)가 추가적으로 제공될 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 메모리 컨트롤러(4200)와 불휘발성 메모리 장치(4100)는, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.When the computing system according to the present invention is a mobile device, a battery 4700 for supplying the operating voltage of the computing system may additionally be provided. Although not shown in the drawing, an application chipset, a camera image processor (CIS), a mobile DRAM, and the like may be further provided in the computing system according to the present invention. The memory controller 4200 and the nonvolatile memory device 4100 can constitute, for example, a solid state drive / disk (SSD) using nonvolatile memory for storing data.

본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.The nonvolatile memory device and / or memory controller according to the present invention may be implemented using various types of packages. For example, the nonvolatile memory device and / or the memory controller according to the present invention may be implemented as a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers -Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, COB, Ceramic Dual In-Line Package, Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP) (SSOP), Thin Small Outline (TSOP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP), and the like.

본 발명의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다. 또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. In addition, although specific terms are used herein, they are used for the purpose of describing the present invention only and are not used to limit the scope of the present invention described in the claims or the claims. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the equivalents of the claims of the present invention as well as the claims of the following.

100: 불휘발성 메모리 장치 110: 메모리 셀 어레이
120: 행 디코더 130: 데이터 입출력 회로
140: 제어 로직 150: 전압 생성기
1100: 호스트 1200: SSD
1210: SSD 컨트롤러 1220: 버퍼 메모리
1230: 불휘발성 메모리 장치
2100: 불휘발성 메모리 2200: 메모리 컨트롤러
2210: CPU 2220: 호스트 인터페이스
2230: SRAM 2240: ECC
2260: 메모리 인터페이스
3100: 불휘발성 메모리 3200: 메모리 컨트롤러
4100: 불휘발성 메모리 4200: 메모리 컨트롤러
4300: 모뎀 4400: 시스템 버스
4500: 마이크로 프로세서 4600: 유저 인터페이스
4700: 배터리
100: nonvolatile memory device 110: memory cell array
120: Row decoder 130: Data input / output circuit
140: control logic 150: voltage generator
1100: Host 1200: SSD
1210: SSD controller 1220: buffer memory
1230: Nonvolatile memory device
2100: nonvolatile memory 2200: memory controller
2210: CPU 2220: Host interface
2230: SRAM 2240: ECC
2260: Memory interface
3100: nonvolatile memory 3200: memory controller
4100: nonvolatile memory 4200: memory controller
4300: modem 4400: system bus
4500: Microprocessor 4600: User Interface
4700: Battery

Claims (16)

복수의 블록을 포함하는 불휘발성 메모리 장치의 데이터 관리 방법에 있어서,
제 1 블록에 대한 읽기 명령을 수신하는 단계;
상기 제 1 블록의 읽기 횟수를 나타내는 블록 읽기 카운트에 따라, 상기 제 1 블록의 논리 페이지들 중 적어도 하나의 논리 페이지의 속성을 결정하는 단계;
상기 결정된 속성에 따라, 상기 적어도 하나의 논리 페이지를 선택적으로 제 2 블록에 프로그램하는 단계; 및
상기 프로그램 후에, 상기 적어도 하나의 논리 페이지의 대응하는(corresponding) 물리 주소를 나타내는 매핑 테이블을 업데이트하는 단계를 포함하는 데이터 관리 방법.
A data management method for a nonvolatile memory device including a plurality of blocks,
Receiving a read command for a first block;
Determining an attribute of at least one logical page of the logical pages of the first block according to a block read count indicating a read count of the first block;
Selectively programming the at least one logical page in a second block according to the determined attribute; And
And after the program, updating a mapping table indicating a corresponding physical address of the at least one logical page.
제 1 항에 있어서,
상기 제 1 블록에 대한 읽기 명령을 수신하는 단계는,
상기 제 1 블록에 대한 읽기 명령에 응답하여, 상기 블록 읽기 카운트를 증가시키는 단계를 포함하는 데이터 관리 방법.
The method according to claim 1,
Wherein the step of receiving a read command for the first block comprises:
And increasing the block read count in response to a read command for the first block.
제 1 항에 있어서,
상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는,
상기 블록 읽기 카운트를 기준 값과 비교하는 단계;
상기 비교 결과에 따라, 상기 적어도 하나의 논리 페이지의 페이지 읽기 정보를 갱신하는 단계; 및
상기 갱신된 페이지 읽기 정보를 참조하여, 상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계를 포함하는 데이터 관리 방법.
The method according to claim 1,
Wherein determining the attributes of the at least one logical page comprises:
Comparing the block read count with a reference value;
Updating page read information of the at least one logical page according to the comparison result; And
And determining an attribute of the at least one logical page with reference to the updated page read information.
제 3 항에 있어서,
상기 페이지 읽기 정보는 상기 적어도 하나의 논리 페이지의 읽기 횟수를 나타내는 페이지 읽기 카운트를 포함하는 데이터 관리 방법.
The method of claim 3,
Wherein the page read information comprises a page read count that indicates the number of reads of the at least one logical page.
제 4 항에 있어서,
상기 페이지 읽기 정보를 갱신하는 단계는,
상기 블록 읽기 카운트가 상기 기준 값을 초과하면, 상기 제 1 블록에 대한 읽기 명령에 응답하여, 상기 페이지 읽기 카운트를 증가시키는 단계를 포함하는 데이터 관리 방법.
5. The method of claim 4,
Wherein updating the page read information comprises:
And incrementing the page read count in response to a read command for the first block if the block read count exceeds the reference value.
제 5 항에 있어서,
상기 제 1 블록에 대한 읽기 명령은 상기 적어도 하나의 논리 페이지에 대한 읽기 명령을 포함하는 데이터 관리 방법.
6. The method of claim 5,
Wherein the read command for the first block includes a read command for the at least one logical page.
제 5 항에 있어서,
상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는,
상기 페이지 읽기 카운트가 문턱 값(threshold value)보다 크면, 상기 적어도 하나의 논리 페이지의 속성을 핫페이지로 결정하는 단계를 포함하는 데이터 관리 방법.
6. The method of claim 5,
Wherein determining the attributes of the at least one logical page comprises:
Determining an attribute of the at least one logical page as a hot page if the page read count is greater than a threshold value.
제 5 항에 있어서,
상기 페이지 읽기 정보는 상기 적어도 하나의 논리 페이지의 상대적인 읽기 빈도를 나타내는 읽기 페이스(read pace)를 포함하고,
상기 페이지 읽기 정보를 갱신하는 단계는,
상기 페이지 읽기 카운트에 따라 상기 읽기 페이스를 산출하는 단계를 포함하되,
상기 읽기 페이스는 수학식 〔읽기 페이스(read pace) 〓 페이지 읽기 카운트 ÷ (제 1 블록의 현재 논리적 읽기 시간) ― 제 1 블록의 초기 논리적 읽기 시간)〕에 의해 정의되는 데이터 관리 방법.
6. The method of claim 5,
Wherein the page read information includes a read pace representing a relative read frequency of the at least one logical page,
Wherein updating the page read information comprises:
And calculating the read phase according to the page read count,
Wherein the read phase is defined by a formula [read pace = page read count ÷ (current logical read time of the first block) - initial logical read time of the first block)].
제 8 항에 있어서,
상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는,
상기 산출된 읽기 페이스가 문턱 값(threshold value)보다 크면, 상기 적어도 하나의 논리 페이지의 속성을 핫페이지로 결정하는 단계를 포함하는 데이터 관리 방법.
9. The method of claim 8,
Wherein determining the attributes of the at least one logical page comprises:
And determining the attribute of the at least one logical page as a hot page if the calculated read phase is greater than a threshold value.
제 9 항에 있어서,
상기 적어도 하나의 논리 페이지의 속성을 결정하는 단계는,
상기 산출된 읽기 페이스를 참조하여, 상기 적어도 하나의 논리 페이지의 보정된 읽기 페이스를 산출하는 단계; 및
상기 보정된 읽기 페이스가 문턱 값(threshold value)보다 크면, 상기 적어도 하나의 논리 페이지의 속성을 핫페이지로 결정하는 단계를 포함하되,
상기 보정된 읽기 페이스는 〔보정된 읽기 페이스 〓 산출된 읽기 페이스 ― α×평균 읽기 페이스)〕에 의해 정의되고,
상기 평균 읽기 페이스는 상기 제 1 블록에 포함된 논리 페이지들 각각의 읽기 페이스들의 평균을 의미하고,
상기 α는 0 이상의 실수인 데이터 관리 방법.
10. The method of claim 9,
Wherein determining the attributes of the at least one logical page comprises:
Calculating a corrected read phase of the at least one logical page with reference to the calculated read phase; And
Determining a property of the at least one logical page as a hot page if the corrected read phase is greater than a threshold value,
The corrected read phase is defined by [corrected read phase = calculated read phase -? Average read phase)],
Wherein the average read phase means an average of the read paces of each of the logical pages included in the first block,
And? Is a real number equal to or larger than zero.
제 4 항에 있어서,
상기 제 1 블록의 논리 페이지들은 상기 논리 페이지들 각각의 페이지 읽기 카운트의 크기 순서에 따라 제 1 그룹 또는 제 2 그룹으로 구분되고,
상기 불휘발성 메모리 장치는,
상기 제 1 블록의 블록 읽기 카운트 및 상기 제 1 그룹에 속한 논리 페이지들 각각의 페이지 읽기 카운트들을 저장하는 읽기 카운트 테이블을 포함하는 데이터 관리 방법.
5. The method of claim 4,
Wherein the logical pages of the first block are divided into a first group or a second group according to a size order of page read counts of the logical pages,
The nonvolatile memory device comprising:
And a read count table storing a block read count of the first block and page read counts of logical pages belonging to the first group.
제 11 항에 있어서,
상기 페이지 읽기 정보를 갱신하는 단계는,
제 1 블록에 대한 읽기 명령에 따라 읽어낼 페이지(이하, 대상 페이지라 함)가 상기 제 2 그룹에 포함되는지 판단하는 단계;
상기 판단 결과에 따라, 상기 제 1 블록의 논리 페이지들의 평균 페이지 읽기 카운트를 상기 대상 페이지의 읽기 카운트로 결정하는 단계;
상기 대상 페이지의 읽기 카운트를 상기 제 1 그룹의 최소 페이지 읽기 카운트와 비교하는 단계; 및
상기 최소 페이지 읽기 카운트와의 비교 결과에 따라, 상기 대상 페이지를 상기 제 1 그룹으로 결정하는 단계를 포함하는 데이터 관리 방법.
12. The method of claim 11,
Wherein updating the page read information comprises:
Determining whether a page to be read (hereinafter referred to as a target page) is included in the second group according to a read command for the first block;
Determining an average page read count of the logical pages of the first block as a read count of the target page according to the determination result;
Comparing a read count of the target page with a minimum page read count of the first group; And
And determining the target page as the first group according to the comparison result with the minimum page read count.
제 3 항에 있어서,
상기 적어도 하나의 논리 페이지를 제 2 블록에 프로그램하는 단계는,
상기 적어도 하나의 논리 페이지의 읽기 정보를 참조하여, 상기 적어도 하나의 논리 페이지의 읽기 우선 순위를 결정하는 단계;
상기 읽기 우선 순위에 따라, 상기 복수의 블록 중 상기 제 2 블록을 상기 프로그램을 위해 할당하는 단계; 및
상기 적어도 하나의 논리 페이지를 상기 할당된 제 2 블록에 프로그램하는 단계를 포함하는 데이터 관리 방법.
The method of claim 3,
Wherein programming the at least one logical page into a second block comprises:
Determining read priority of the at least one logical page with reference to read information of the at least one logical page;
Assigning the second block of the plurality of blocks for the program according to the read priority; And
And programming the at least one logical page into the allocated second block.
제 13 항에 있어서,
상기 적어도 하나의 논리 페이지는 상기 할당된 제 2 블록의 스페어(spare) 페이지에 프로그램되는 데이터 관리 방법.
14. The method of claim 13,
Wherein the at least one logical page is programmed in a spare page of the allocated second block.
제 1 항에 있어서,
상기 매핑 테이블을 업데이트하는 단계는,
상기 적어도 하나의 논리 페이지의 상기 대응하는 물리 주소가 상기 적어도 하나의 논리 페이지가 프로그램된 상기 제 2 블록의 물리 페이지를 가리키도록 상기 매핑 테이블을 업데이트하는 단계를 포함하는 데이터 관리 방법.
The method according to claim 1,
Wherein updating the mapping table comprises:
Updating the mapping table such that the corresponding physical address of the at least one logical page points to a physical page of the second block in which the at least one logical page is programmed.
제 15 항에 있어서,
상기 매핑 테이블을 업데이트 하는 단계는,
상기 적어도 하나의 논리 페이지가 저장된 상기 제 1 블록의 물리 페이지를 무효화(invalidation)하는 단계를 더 포함하는 데이터 관리 방법.
16. The method of claim 15,
Wherein updating the mapping table comprises:
Further comprising invalidating a physical page of the first block in which the at least one logical page is stored.
KR1020120143691A 2012-12-11 2012-12-11 Nonvolatile memory device and method for managing data thereof KR101430637B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120143691A KR101430637B1 (en) 2012-12-11 2012-12-11 Nonvolatile memory device and method for managing data thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120143691A KR101430637B1 (en) 2012-12-11 2012-12-11 Nonvolatile memory device and method for managing data thereof

Publications (2)

Publication Number Publication Date
KR20140075396A true KR20140075396A (en) 2014-06-19
KR101430637B1 KR101430637B1 (en) 2014-08-18

Family

ID=51128128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120143691A KR101430637B1 (en) 2012-12-11 2012-12-11 Nonvolatile memory device and method for managing data thereof

Country Status (1)

Country Link
KR (1) KR101430637B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016069126A1 (en) * 2014-10-29 2016-05-06 Sandisk Technologies Inc. Read scrub with adaptive read counter management
KR20180003713A (en) * 2016-06-30 2018-01-10 삼성전자주식회사 Storage device including nonvolatile memory device and controller
CN108877863A (en) * 2017-05-16 2018-11-23 华邦电子股份有限公司 Flash memory storage and its operating method
US10255131B2 (en) 2015-07-06 2019-04-09 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device
EP4075284A1 (en) * 2021-04-16 2022-10-19 Samsung Electronics Co., Ltd. Method and storage device for improving memory performance for intensive read workloads

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102282952B1 (en) 2014-12-15 2021-07-30 삼성전자주식회사 Operating method of storage device
KR20160143259A (en) 2015-06-05 2016-12-14 에스케이하이닉스 주식회사 Memory system and operation method for the same

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974954B1 (en) * 2008-06-26 2010-08-10 에스디씨마이크로 주식회사 Read-time Wear-Leveling Method in Storage System using Flash Memory Device
KR101189766B1 (en) 2008-12-22 2012-10-10 한국전자통신연구원 Hot Data Management Based on Hit Counter from Data Servers in Parallelism

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016069126A1 (en) * 2014-10-29 2016-05-06 Sandisk Technologies Inc. Read scrub with adaptive read counter management
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US10255131B2 (en) 2015-07-06 2019-04-09 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device
KR20180003713A (en) * 2016-06-30 2018-01-10 삼성전자주식회사 Storage device including nonvolatile memory device and controller
CN108877863A (en) * 2017-05-16 2018-11-23 华邦电子股份有限公司 Flash memory storage and its operating method
CN108877863B (en) * 2017-05-16 2020-08-04 华邦电子股份有限公司 Flash memory storage device and operation method thereof
EP4075284A1 (en) * 2021-04-16 2022-10-19 Samsung Electronics Co., Ltd. Method and storage device for improving memory performance for intensive read workloads
US11886741B2 (en) 2021-04-16 2024-01-30 Samsung Electronics Co., Ltd. Method and storage device for improving NAND flash memory performance for intensive read workloads

Also Published As

Publication number Publication date
KR101430637B1 (en) 2014-08-18

Similar Documents

Publication Publication Date Title
KR101662827B1 (en) Memory system selecting write mode of data block and data write method thereof
US11862263B2 (en) Storage device and method of operating the same
KR102295208B1 (en) Storage device dynamically allocating program area and program method thererof
CN107015886B (en) Method of operating a storage device and method of operating a data processing system including the same
KR101430637B1 (en) Nonvolatile memory device and method for managing data thereof
US9870836B2 (en) Memory system and method of controlling nonvolatile memory
KR101734200B1 (en) Memory system performing incremental merge operation and data write method thereof
US10339046B1 (en) Data moving method and storage controller
US20110066899A1 (en) Nonvolatile memory system and related method of performing erase refresh operation
US20150347291A1 (en) Flash memory based storage system and operating method
KR20130032155A (en) Data storage device and data management method thereof
US11366599B2 (en) Storage device and operating method thereof
US11086795B2 (en) Memory system, memory controller and operating method thereof
CN112650442B (en) Memory system, memory controller and operating method
KR20210026431A (en) Memory system, memory controller, and operating method
KR20210106757A (en) Host, storage device and computing system having the same
KR20200132171A (en) Memory system, memory controller and memory device
US20210034541A1 (en) Memory system, memory control device, and memory control method
CN113703662A (en) Memory system, memory controller and operating method thereof
KR20210041233A (en) Memory system, memory controller, and operating method
KR20210012123A (en) Memory system, memory controller, and operating method
KR20200123912A (en) Memory system, memory controller and operating method of thereof
US11249838B2 (en) Memory system, memory controller, and method of operating memory controller
CN114596898A (en) Memory system and operating method thereof
KR20210028335A (en) Memory system, memory controller, and operating method

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
FPAY Annual fee payment

Payment date: 20160224

Year of fee payment: 6