KR20200092019A - Data storage system of on-volatile memory apparatus and method of the same - Google Patents

Data storage system of on-volatile memory apparatus and method of the same Download PDF

Info

Publication number
KR20200092019A
KR20200092019A KR1020190009005A KR20190009005A KR20200092019A KR 20200092019 A KR20200092019 A KR 20200092019A KR 1020190009005 A KR1020190009005 A KR 1020190009005A KR 20190009005 A KR20190009005 A KR 20190009005A KR 20200092019 A KR20200092019 A KR 20200092019A
Authority
KR
South Korea
Prior art keywords
frozen
page
block
free
nonvolatile memory
Prior art date
Application number
KR1020190009005A
Other languages
Korean (ko)
Other versions
KR102210536B1 (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 KR1020190009005A priority Critical patent/KR102210536B1/en
Publication of KR20200092019A publication Critical patent/KR20200092019A/en
Application granted granted Critical
Publication of KR102210536B1 publication Critical patent/KR102210536B1/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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement

Abstract

The present invention relates to a data management system of a nonvolatile memory device capable of significantly reducing the write performance and WAF by reducing unnecessary copybacks due to frozen pages where write operations do not occur any more, and a method thereof. According to an embodiment of the present invention, the data management system of the nonvolatile memory device comprises: a nonvolatile memory including a plurality of memory blocks composed of a plurality of pages; a host that monitors data pages to determine whether the data pages are frozen pages where update operations have not occurred, and when a page on which a write request is to be performed is a frozen page, sends the write request including a flag indicating a frozen state to the nonvolatile memory; and a controller storing the page into a frozen block, when the flag indicating the frozen state is included in the write request received from the host.

Description

비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법{DATA STORAGE SYSTEM OF ON-VOLATILE MEMORY APPARATUS AND METHOD OF THE SAME}DATA STORAGE SYSTEM OF ON-VOLATILE MEMORY APPARATUS AND METHOD OF THE SAME

본 발명은 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 에 관한 것으로, 더욱 상세하게는 비휘발성 메모리 장치에서 더 이상 쓰기 연산이 발생하지 않는 동결 페이지에 따른 불필요한 카피백(copyback)을 줄여서, 쓰기 성능과 WAF를 획기적으로 줄일 수 있는 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법에 관한 것이다. The present invention relates to a data management system and method of a nonvolatile memory device, and more particularly, to reduce unnecessary copyback due to a frozen page in which a write operation no longer occurs in a nonvolatile memory device, thereby reducing write performance. And a data management system and method for a nonvolatile memory device that can significantly reduce WAF.

최근 컴퓨터 환경에 대한 패러다임이 언제, 어디서나 컴퓨터 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous coumpting)으로 전환되고 있다. 이로 인해, 휴대폰, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 메모리 장치를 사용하고, 메모리 장치는 휴대용 전자 장치의 주 기억 장치 또는 보조 기억 장치로 사용된다. Recently, the paradigm of the computer environment has been shifted to ubiquitous coumpting, which enables computer systems to be used anytime, anywhere. Due to this, the use of portable electronic devices such as mobile phones, digital cameras, and notebook computers is rapidly increasing. Such a portable electronic device generally uses a memory device, and the memory device is used as a main storage device or an auxiliary storage device of the portable electronic device.

메모리 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 데이터 저장 장치는 USB(Universal Serial Bus), 다양한 인터페이스를 갖는 메모리 카드, 솔리드 스테이트 드라이브(SSD: Solid State Drive)를 포함한다. The memory device has the advantages of excellent stability and durability because there is no mechanical driving unit, and an information access speed is very fast and power consumption is low. Data storage devices having these advantages include Universal Serial Bus (USB), memory cards with various interfaces, and solid state drives (SSDs).

휴대용 전자 장치에서 음악, 동영상 등과 같은 대용량 파일들이 재생됨에 따라 메모리 장치 역시 큰 저장 용량을 갖도록 요구된다. 메모리 장치는 큰 저장 용량을 확보하기 위해서 메모리 셀의 집적도가 높은 메모리 장치, 예를 들면, 비휘발성 메모리 장치의 하나인 플래시 메모리 장치를 사용한다. As large files such as music and videos are played in portable electronic devices, a memory device is also required to have a large storage capacity. In order to secure a large storage capacity, a memory device uses a memory device having a high density of memory cells, for example, a flash memory device that is one of nonvolatile memory devices.

플래시 메모리 장치는 구조적인 특징으로 인해서 데이터 덮어쓰기(overwrite)를 지원하지 않는다. 즉, 프로그램된 상태의 페이지(데이터가 저장되는 기본 단위로, '메모리 셀'과 동일한 의미로 사용됨)의 데이터를 갱신하는 것이 불가능하다. 따라서, 플래시 메모리에 데이터를 프로그램하기 위해서는 삭제(earase) 동작이 선행되어야 한다. 이를 프로그램 전 삭제 동작(erase-before-program)이라 한다. 즉, 플래시 메모리 장치의 프로그램된 상태의 페이지는 데이터가 프로그램되기 전에, 초기 상태 또는 삭제 상태로 되돌려져야 한다. Flash memory devices do not support data overwrite due to structural features. That is, it is impossible to update the data of the programmed state page (the basic unit in which data is stored and used in the same sense as'memory cell'). Therefore, in order to program data in the flash memory, an erase operation must be preceded. This is called an erase-before-program operation. That is, the page in the programmed state of the flash memory device must be returned to the initial state or the erased state before data is programmed.

한편, OLTP(online transaction processing) 데이터베이스 등에서는 실제로 더 이상 쓰기 연산이 발생하지 않는 동결 페이지가 상당히 많음에도 불구하고, 플래시 메모리 장치에서는 동결 페이지의 개념이나 이를 별도로 처리하는 기술이 존재하지 않는다. 실제 TPC-C 벤치마크의 경우, 동결 페이지가 80% 이상 존재한다. On the other hand, in the online transaction processing (OLTP) database and the like, even though there are quite a lot of freeze pages in which no more write operations actually occur, there is no concept of a freeze page or a technique for separately processing the freeze page in a flash memory device. In the case of the actual TPC-C benchmark, there are over 80% of frozen pages.

OLTP 등 임의 쓰기(random writes)가 빈번한 워크로드를 플래시 메모리 장치(예: SSD) 상에서 구동할 경우, 가비지-컬렉션 단계에서 동결 페이지가 불필요하게 copyback 됨으로써, 과도한 WAF(write amplification factor)를 유발하게 되고, 결과적으로 저장장치의 성능 및 수명에 심각한 악영향을 미치는 문제가 있다.When a random writes, such as OLTP, drives a frequent workload on a flash memory device (eg, SSD), the freeze page is unnecessarily copied back in the garbage-collection stage, causing excessive write amplification factor (WAF). As a result, there is a problem that severely adversely affects the performance and life of the storage device.

이에, 동결 페이지에 따른 불필요한 copyback을 획기적으로 줄여서, OLTP 워크로드에서 쓰기 성능과 WAF를 획기적으로 줄일 수 있는 기술 개발이 요구되고 있다. Accordingly, there is a need to develop a technology capable of dramatically reducing write performance and WAF in an OLTP workload by drastically reducing unnecessary copyback due to frozen pages.

이와 관련 선행기술로는 대한민국등록특허 제10-1829625호(발명의 명칭: 데이터와 전력을 무선으로 동시에 전송하는 방법 및 이를 이용한 송신 장치와 수신 장치)가 있다.Prior art related to this is Korean Patent Registration No. 10-1829625 (Invention name: a method of simultaneously transmitting data and power wirelessly and a transmitting device and a receiving device using the same).

본 발명의 목적은 더 이상 쓰기 연산이 발생하지 않는 동결 페이지에 따른 불필요한 카피백(copyback)을 줄여서, 쓰기 성능과 WAF를 획기적으로 줄일 수 있는 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법을 제공하는 것이다. An object of the present invention is to provide a data management system and method for a non-volatile memory device that can significantly reduce write performance and WAF by reducing unnecessary copyback due to a frozen page in which no more write operations occur. will be.

본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the problem(s) mentioned above, and another problem(s) not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 관리 시스템은, 복수의 페이지로 구성된 메모리 블록을 복수 개 포함하는 비휘발성 메모리, 데이터 페이지를 모니터링하여 업데이트 연산이 일어나지 않은 동결 페이지(frozen page) 여부를 판단하고, 상기 비휘발성 메모리에 쓰기(write) 요청할 페이지가 동결 페이지인 경우, 동결 상태를 의미하는 플래그를 포함하는 쓰기 요청을 전송하는 호스트, 상기 호스트로부터 수신한 쓰기 요청에 동결 상태를 의미하는 플래그가 포함된 경우, 해당 페이지를 동결 블록(frozen block)에 저장하는 컨트롤러를 포함한다. The data management system of a nonvolatile memory device according to an embodiment of the present invention monitors a nonvolatile memory and a data page including a plurality of memory blocks composed of a plurality of pages, and a frozen page in which an update operation has not occurred. If it is determined whether or not the page to be written to the nonvolatile memory is a frozen page, a host transmitting a write request including a flag indicating a frozen state, and a frozen state in a write request received from the host When the flag is included, a controller that stores the corresponding page in a frozen block is included.

바람직하게는, 상기 비휘발성 메모리는, 업데이트 연산이 일어나는 데이터(data)를 저장하는 노멀 블록(normal block), 업데이트 연산이 일어나지 않은 동결 페이지(frozen page)를 저장하는 동결 블록(frozen block)을 포함할 수 있다. Preferably, the non-volatile memory includes a normal block storing data in which an update operation occurs, and a frozen block storing a frozen page in which an update operation has not occurred. can do.

바람직하게는, 상기 호스트는 데이터베이스 엔진의 스키마나 트랜잭션 로직에 기반하여 동결 페이지 여부를 판단할 수 있다.Preferably, the host may determine whether to freeze the page based on the schema or transaction logic of the database engine.

바람직하게는, 상기 컨트롤러는, 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 포함된 경우, 상기 비휘발성 메모리의 동결 블록에 프리 페이지 존재 여부를 판단하고, 프리 페이지가 존재하는 경우 동결 페이지를 동결 블록에 저장하며, 프리 페이지가 존재하지 않은 경우 상기 동결 블록을 제외한 블록을 대상으로 가비지-콜렉션을 수행하여, 희생 블록을 선정 후 프리 블록을 생성하고, 상기 생성된 프리 블록을 동결 블록으로 할당하여 동결 페이지를 저장할 수 있다. Preferably, the controller determines whether a free page exists in a freeze block of the non-volatile memory when the write request includes a flag indicating a freeze state, and if the free page exists, freezes the frozen page. In the free page, if a free page does not exist, garbage-collection is performed on blocks excluding the freeze block, a free block is generated after selecting a victim block, and the free block is allocated as a freeze block and freezes. You can save the page.

바람직하게는, 상기 컨트롤러는, 동결 페이지로 잘못 판단된 거짓 동결 페이지(False Frozen Page)에 대해, 상기 동결 블록에 기록한 후, 다시 쓰기가 발생한 경우, 상기 거짓 동결 페이지를 상기 동결 블록에 기록한 후 이전 기록을 무효화(invalidation)하고, 필요시 가비지 컬렉션 정책에 따라 동결 블록을 대상으로 가비지-컬렉션(garbage collection)을 수행할 수 있다. Preferably, the controller writes to the frozen block for a false frozen page that is incorrectly judged to be a frozen page, and then writes the false frozen page to the frozen block after rewriting. The records may be invalidated, and if necessary, garbage collection may be performed on a frozen block according to the garbage collection policy.

본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 데이터 관리 방법은, 호스트가 비휘발성 메모리에 기록하고자 하는 페이지의 동결 페이지 여부를 판단하여, 컨트롤러로 쓰기 요청하는 단계, 상기 컨트롤러는 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는지를 판단하는 단계, 상기 컨트롤러는 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는 경우 비휘발성 메모리의 동결 블록에 해당 페이지를 저장하고, 동결 상태를 의미하는 플래그가 존재하지 않은 경우 상기 비휘발성 메모리의 일반 블록에 상기 페이지를 저장하는 단계를 포함한다. In a data management method of a nonvolatile memory device according to another embodiment of the present invention, the host determines whether a page to be written to the nonvolatile memory is a frozen page, and requests writing to the controller, wherein the controller responds to the write request. Determining whether a flag indicating a frozen state exists, the controller stores a corresponding page in a frozen block of a non-volatile memory when a flag indicating a frozen state exists in the write request, and a flag indicating a frozen state And if it does not exist, storing the page in a general block of the non-volatile memory.

바람직하게는, 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는 경우 비휘발성 메모리의 동결 블록에 해당 페이지를 저장하는 단계는, 상기 비휘발성 메모리의 동결 블록에 프리 페이지가 존재하는지 판단하는 단계, 프리 페이지가 존재하는 경우, 상기 동결 페이지를 동결 블록에 저장하고, 프리 페이지가 존재하지 않은 경우, 상기 동결 블록을 제외한 블록을 대상으로 가비지-콜렉션을 수행하여, 희생 블록을 선정 후 프리 블록을 생성하고, 상기 생성된 프리 블록을 동결 블록으로 할당하여 동결 페이지를 저장하는 단계를 포함할 수 있다. Preferably, when a flag indicating a frozen state exists in the write request, the step of storing the page in a frozen block of the nonvolatile memory may include determining whether a free page exists in the frozen block of the nonvolatile memory, If a free page exists, the frozen page is stored in a frozen block, and if a free page does not exist, garbage-collection is performed on blocks excluding the frozen block, and a free block is generated after selecting a victim block And, it may include the step of allocating the generated free block as a frozen block and storing a frozen page.

바람직하게는, 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하지 않은 경우 상기 비휘발성 메모리의 일반 블록에 상기 페이지를 저장할 수 있다. Preferably, when there is no flag indicating a frozen state in the write request, the page may be stored in a general block of the nonvolatile memory.

본 발명에 따르면, 호스트에서 특정 페이지 Pi 에 대해, 더 이상 쓰기 연산이 발생하지 않음을 알게 되는 시점에 해당 페이지의 “F”(frozen) 상태를 남기고, 플래시 메모리 장치에 쓰기 요청할 때 Write (Pi, ‘F’)으로 요청하여, 플래시 메모리 장치의 FTL에서 해당 페이지를 별도로 처리함으로써, 더 이상 쓰기 연산이 발생하지 않는 동결 페이지에 따른 불필요한 카피백(copyback)을 줄일 수 있고, 쓰기 성능과 WAF를 획기적으로 줄일 수 있다. 이로 인해, 플래시 메모리 장치의 성능과 수명을 획기적으로 늘리는 효과가 있다. According to the present invention, when the host knows that a write operation no longer occurs for a specific page Pi, it leaves the “F” (frozen) state of the page and writes (Pi, By requesting'F'), the corresponding page is processed separately in the FTL of the flash memory device, thereby reducing unnecessary copyback due to a frozen page in which no further write operation occurs, and dramatically reducing write performance and WAF. Can be reduced to Accordingly, there is an effect of dramatically increasing the performance and life of the flash memory device.

한편, 본 발명의 효과는 이상에서 언급한 효과들로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 효과들이 포함될 수 있다. Meanwhile, the effects of the present invention are not limited to the above-mentioned effects, and various effects may be included within a range obvious to those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 관리 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 동결 페이지가 아닌 경우 쓰기 연산 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 동결 페이지의 경우 쓰기 연산을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 동결 페이지의 경우 가비지-컬렉션을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리의 데이터 관리 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 동결 블록에 동결 페이지를 저장하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 가비지 컬렉션 발생 시 프리 블록의 속성을 할당하는 방법을 설명하기 위한 흐름도이다.
1 is a view for explaining a data management system of a nonvolatile memory device according to an embodiment of the present invention.
2 is a view for explaining a write operation method when it is not a frozen page according to an embodiment of the present invention.
3 is a diagram for describing a write operation in the case of a frozen page according to an embodiment of the present invention.
4 is a diagram for explaining garbage-collection in the case of a frozen page according to an embodiment of the present invention.
5 is a view for explaining a data management method of a nonvolatile memory according to an embodiment of the present invention.
6 is a flowchart illustrating a method of storing a frozen page in a frozen block according to an embodiment of the present invention.
7 is a flowchart illustrating a method of allocating a property of a free block when garbage collection occurs according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to a specific embodiment, it should be understood to include all modifications, equivalents, or substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수개의 관련된 기재된 항목들의 조합 또는 복수개의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components. For example, the first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component. The term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but there may be other components in between. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions, unless the context clearly indicates otherwise. In this application, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, and that one or more other features are present. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms, such as those defined in a commonly used dictionary, should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Does not.

도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 관리 시스템을 설명하기 위한 도면, 도 2는 본 발명의 일 실시예에 따른 동결 페이지가 아닌 경우 쓰기 연산 방법을 설명하기 위한 도면, 도 3은 본 발명의 일 실시예에 따른 동결 페이지의 경우 쓰기 연산을 설명하기 위한 도면, 도 4는 본 발명의 일 실시예에 따른 동결 페이지의 경우 가비지-컬렉션을 설명하기 위한 도면이다. 1 is a view for explaining a data management system of a non-volatile memory device according to an embodiment of the present invention, FIG. 2 is a view for explaining a write operation method when it is not a frozen page according to an embodiment of the present invention, 3 is a view for explaining a write operation in the case of a frozen page according to an embodiment of the present invention, and FIG. 4 is a view for explaining garbage-collection in the case of a frozen page according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 관리 시스템은 호스트(100), 컨트롤러(200), 비휘발성 메모리(300)를 포함한다. 또한, 비휘발성 메모리 장치의 데이터 관리 시스템은 상기의 구성 요소 이외에 인터페이스부 등의 다른 구성 요소를 더 포함할 수 있다.Referring to FIG. 1, a data management system of a nonvolatile memory device according to an embodiment of the present invention includes a host 100, a controller 200, and a nonvolatile memory 300. In addition, the data management system of the nonvolatile memory device may further include other components such as an interface unit in addition to the above components.

호스트(100)는 데이터 페이지를 모니터링하여 업데이트 연산이 일어나지 않은 동결 페이지(frozen page) 여부를 판단하고, 비휘발성 메모리(300)에 쓰기(write) 요청할 페이지가 동결 페이지인 경우, 동결 상태를 의미하는 플래그를 포함하는 쓰기 요청을 전송한다. 이때, 호스트(100)는 호스트(100)가 가진 정보를 통해 페이지의 동결성(동결 페이지 여부)을 판단할 수 있다. 즉, 호스트(100)는 데이터베이스 엔진의 스키마나 트랜잭션 로직에 기반하여 동결 페이지 여부를 판단할 수 있다. 예컨대, 호스트(100)는 해당 페이지 내의 레코드(record)수에 기초하여 동결 페이지 여부를 판단할 수 있다. 이 경우, 호스트(100)는 해당 테이블(table)의 페이지(page) 내부 레코드 수가 최대 레코드 수 또는 업데이트 수와 일치하는 경우 해당 페이지를 동결 페이지로 판단할 수 있다. The host 100 monitors a data page to determine whether a frozen page has not been updated, and if a page to be written to the nonvolatile memory 300 is a frozen page, it means a frozen state. Send a write request containing a flag. At this time, the host 100 may determine the freezeability (whether or not a page is frozen) of the page through information possessed by the host 100. That is, the host 100 may determine whether the page is frozen based on the schema or transaction logic of the database engine. For example, the host 100 may determine whether the page is frozen based on the number of records in the page. In this case, the host 100 may determine that the page is a frozen page when the number of records inside the page of the table matches the maximum number of records or the number of updates.

동결 페이지는 어떤 데이터 페이지에 데이터가 추가되면서 비휘발성 메모리(300)에 쓰기 연산이 발생하다가 특정 조건이 만족되어(예컨대, 해당 페이지에 데이터가 차서 더 이상 데이터를 추가할 공간이 없고, 기존 데이터의 향후 삭제/변경도 발생하지 않는 경우), 더 이상 쓰기 연산이 발생하지 않는 페이지를 의미할 수 있다. The freeze page occurs when a write operation occurs in the nonvolatile memory 300 as data is added to a certain data page, and a specific condition is satisfied (for example, there is no space to add more data to the corresponding page, and there is no space for adding data). If deletion/change does not occur in the future), it may mean a page in which no further write operation occurs.

이처럼, 동결 페이지 여부의 판단은 SSD 내부가 아니라, 호스트(100)의 응용프로그램(application)에서 이루어진다. 호스트(100)는 동결 페이지로 판단된 페이지를 쓰기(write)할 때, "frozen page" 힌트(동결 상태를 의미하는 플래그)를 전달하여 컨트롤러(200)내의 FTL(220)에서 인지하게 한다. As such, the determination of whether to freeze the page is made in the application of the host 100, not inside the SSD. When writing the page determined to be the frozen page, the host 100 transmits a “frozen page” hint (a flag indicating a frozen state) to be recognized by the FTL 220 in the controller 200.

이러한 호스트(100)는 어플리케이션(application)일 수 있고, 어플리케이션은 DB 엔진, 운영 체제(OS,Operating System) 및 운영 체제를 전제(foundation)로 동작하는 프로그램 등을 포함할 수 있다. The host 100 may be an application, and the application may include a DB engine, an operating system (OS), and a program operating as a foundation of the operating system.

이하, 호스트(100)가 Database 엔진인 경우, Database 엔진이 동결 페이지를 판단하는 방법에 대해 설명하기로 한다. Database 엔진에서는 특정 테이블 스키마 특성과 해당 테이블에 레코드 추가 및 레코드 갱신을 수행하는 트랜잭션 프로그램들의 시맨틱을 이해함으로써 해당 테이블의 특정 페이지가 "동결(frozen) 되는 시점"을 알 수 있는 것으로 가정한다. 예를들어, 대표적인 데이터베이스 벤치마크인 TPC-C의 Order_Line 테이블과 New_Order, Delievery 트랜잭션의 로직에 따르면, Order_Line 테이블에 속하는 특정 page 내의 모든 record가 update된 시점 이후, 해당 page는 더 이상 write가 이루어지지 않는 것이 확실하므로, 동결(frozen)이라고 판단할 수 있다. 호스트(100)의 한 예로 Databse 엔진의 경우에는 더 구체적으로, page header에는 page 내의 record 수에 대한 정보를 저장하고 있으므로, Database 엔진은 버퍼(Buffer)에서 page가 퇴출될 때 해당 테이블(table)의 page 내부 record 수가 최대 record 수와 일치하거나 업데이트 수와 일치할 경우 동결 페이지(Frozen page)라고 판단할 수 있다. DB 엔진은 상술한 방식으로 동결 시점을 판단하여 Frozen hint(동결 상태를 의미하는 플래그)를 컨트롤러(200)에 전달하고, 컨트롤러(200)는 Frozen hint를 받아 처리하게 된다. Hereinafter, when the host 100 is a Database engine, a description will be given of a method for the Database engine to determine a frozen page. It is assumed that the Database engine understands the specific table schema characteristics and the semantics of transaction programs that add records and update records to the table, so that it is possible to know when a particular page of the table is "frozen." For example, according to the logic of the Order_Line table, New_Order, and Delievery transaction of TPC-C, which is a representative database benchmark, after all records in a specific page belonging to the Order_Line table are updated, the page is no longer written. Since it is certain, it can be judged to be frozen. As an example of the host 100, in the case of the Databse engine, more specifically, since the page header stores information about the number of records in the page, the Database engine can detect the table when the page is evicted from the buffer. If the number of records in the page matches the maximum number of records or the number of updates, it can be determined as a frozen page. The DB engine determines the freezing point in the manner described above, and transmits the frozen hint (a flag indicating a frozen state) to the controller 200, and the controller 200 receives and processes the frozen hint.

결론적으로, 호스트(100)는 특정 페이지 Pi 에 대해, 더 이상 쓰기 연산이 발생하지 않음을 알게 되는 시점에 해당 페이지의 “F”(frozen) 상태를 남기고, 비휘발성 메모리(300)에 쓰기 요청할 때 "Write(Pi, ‘F’)"으로 요청할 수 있다. "Write(Pi, ‘F’)"에서 ‘F’는 동결 상태를 의미하는 플래그일 수 있다. In conclusion, the host 100 leaves the “F” (frozen) state of the page at a time when it knows that a write operation does not occur for a specific page Pi, and when it requests to write to the nonvolatile memory 300 You can request it with "Write(Pi,'F')". In “Write(Pi,'F'),'F' may be a flag indicating a frozen state.

비휘발성 메모리(300)는 복수의 메모리 블록으로 구성되며, 각 메모리 블록은 복수의 페이지로 구성될 수 있다. 이때, 페이지는 데이터가 저장되는 최소 단위를 나타내고, 블록은 설정된 개수의 페이지가 모인 단위를 나타낸다. 데이터의 논리적 주소와 메모리의 물리적 주소의 매칭 관계에 따라, 페이지 또는 블록 단위로 데이터가 저장될 수 있고, 각 페이지의 개수, 각 페이지에 저장되는 데이터 양은 컨트롤러(200)에 의해 설정될 수 있다. 하나의 메모리 블록은 4개, 16개, 128개, 256개 등의 페이지로 구성될 수 있다. 또한, 사용 형태에 따라 데이터가 저장된 또는 데이터를 저장할 블록을 노멀 블록(Normal Block)(310), 동결 블록(frozen block)(320)으로 구분할 수 있다. 즉, 비휘발성 메모리(300)는 업데이트 연산이 일어나는 데이터(data)를 저장하는 노멀 블록(310), 업데이트 연산이 일어나지 않은 동결 페이지(frozen page)를 저장하는 동결 블록(320)을 포함할 수 있다. 본 발명에서는 업데이트 연산이 일어나는 페이지를 저장하는 블록을 노멀 블록(310)으로 한정하였으나, 콜드 블록(Cold Block) 등을 포함할 수 있다. The nonvolatile memory 300 is composed of a plurality of memory blocks, and each memory block may be composed of a plurality of pages. At this time, the page represents the minimum unit in which data is stored, and the block represents the unit in which the set number of pages are collected. Depending on the matching relationship between the logical address of data and the physical address of memory, data may be stored in units of pages or blocks, and the number of each page and the amount of data stored in each page may be set by the controller 200. One memory block may be composed of 4, 16, 128, and 256 pages. Also, depending on the type of use, a block in which data is stored or to store data may be divided into a normal block 310 and a frozen block 320. That is, the non-volatile memory 300 may include a normal block 310 storing data in which an update operation occurs, and a freezing block 320 storing a frozen page in which an update operation has not occurred. . In the present invention, the block storing the page on which the update operation occurs is limited to the normal block 310, but may include a cold block or the like.

컨트롤러(200)는 비휘발성 메모리(300)를 제어하는 구성으로, 호스트(100)로부터 입력 파일 쓰기 요청을 받으면, 비휘발성 메모리(300)를 제어하여 목적하는 블록 및 페이지에 입력 파일을 기록하게 된다. The controller 200 is a configuration that controls the nonvolatile memory 300. When a request for writing an input file is received from the host 100, the controller 200 controls the nonvolatile memory 300 to record the input file in a desired block and page. .

컨트롤러(200)는 호스트(100)로부터 수신한 쓰기 요청에 동결 상태를 의미하는 플래그가 포함된 경우 해당 페이지를 동결 블록(320)에 저장한다. 이때, 컨트롤러(200)는 동결 블록(320)에 쓰기 요청된 용량 이상의 프리 페이지(free page)가 남아있는지를 확인하여, 프리 페이지가 존재하는 경우, 쓰기 요청된 페이지를 동결 블록(320)에 저장한다. 만약, 동결 블록(320)에 프리 페이지가 존재하지 않은 경우, 컨트롤러(200)는 동결 블록(320)을 제외한 나머지 블록(310)을 대상으로 가비지-컬렉션(garbage collection)을 수행하여, 희생 블록을 선정하여 새로운 프리 블록을 생성하고, 생성된 프리 블록을 동결 블록으로 할당하여, 쓰기 요청된 페이지를 할당된 동결 블록(320)에 저장한다. 여기서, 프리 블록은 어떠한 페이지도 저장되지 않고, 어떠한 속성도 지정되지 않은 블록을 의미한다. 가비지-컬렉션은 메모리 블록을 스캔하여 유효한 페이지 개수가 가장 적은 메모리 블록을 희생 블록(victim block)으로 결정하고, 희생 블록에 포함된 유효한 페이지를 카피백한 후 희생 블록의 데이터를 삭제하는 것을 말한다. When the write request received from the host 100 includes a flag indicating a frozen state, the controller 200 stores the corresponding page in the frozen block 320. At this time, the controller 200 checks whether there are more free pages than the write requested capacity in the freeze block 320, and if there are free pages, stores the pages requested to be written in the freeze block 320. do. If a free page does not exist in the freeze block 320, the controller 200 performs garbage-collection on the remaining blocks 310 except for the freeze block 320, thereby performing a sacrificial block. By selecting, a new free block is generated, and the generated free block is allocated as a frozen block, and the page requested to be written is stored in the allocated frozen block 320. Here, the free block means a block in which no pages are stored and no attributes are designated. Garbage-collection refers to scanning a memory block to determine the memory block with the smallest valid page count as a victim block, copying a valid page included in the victim block, and deleting the data of the victim block.

한편, 호스트(100)에서 동결 페이지를 잘못 판단하여, 동결 페이지에 대한 힌트를 전달할 경우에도, 컨트롤러(200)는 동결 블록(320)에 거짓 동결 페이지(false Frozen page)를 저장한다. 그러나, 거짓 동결 페이지(False Frozen Page)는 동결 페이지가 아니므로, 동결 블록(320)에 쓰여진 후 다시 쓰기가 발생할 수 있다. 이 경우, 컨트롤러(200)는 거짓 동결 페이지를 동결 블록(320)에 기록한 후 이전 기록을 무효화(invalidation)하고, 이후 가비지 컬렉션 정책에 따라 동결 블록(320)도 무효화가 많이 진행되었다면 가비지 컬렉션(garbage collection(GC))을 수행할 수 있다. 이처럼 동결 페이지는 다시 쓰기인 경우에도 동결 블록(320)에 저장된다. 그러면, 동결 페이지를 잘못 판단하여, 업데이트되는 경우도 해결할 수 있다. 이때, 컨트롤러(200)는 가비지-컬렉션 수행 시, Frozen page와 일반 page가 섞이는 것을 방지하기 위해, Frozen block 및 Frozen page들이 일반 block 및 일반 page들과 섞이지 않도록 처리해야 한다. On the other hand, even if the host 100 determines the frozen page incorrectly and delivers a hint about the frozen page, the controller 200 stores a false frozen page in the frozen block 320. However, since the False Frozen Page is not a frozen page, rewriting may occur after being written to the freezing block 320. In this case, the controller 200 invalidates the previous record after writing the false freeze page to the freeze block 320, and if the freeze block 320 is also invalidated according to the garbage collection policy, the garbage collection (garbage) collection(GC)). As such, the frozen page is stored in the freezing block 320 even in the case of rewriting. Then, the frozen page may be incorrectly determined and updated. At this time, when performing garbage-collection, the controller 200 must process frozen blocks and frozen pages so as not to mix with general blocks and general pages in order to prevent mixing of frozen pages and general pages.

이러한 컨트롤러(200)는 호스트 인터페이스(host interface)(210), 플래시 변환 계층(FTL: Flash Translation Layer)(220), 메모리 인터페이스(memory interface)(230)를 포함한다. The controller 200 includes a host interface 210, a flash translation layer (FTL) 220, and a memory interface 230.

호스트 인터페이스(210)는 호스트(100)와 컨트롤러(200) 간의 통신을 위한 인터페이스일 수 있다.The host interface 210 may be an interface for communication between the host 100 and the controller 200.

플래시 변환 계층(220)은 비휘발성 메모리(300)를 관리하는 모듈일 수 있다. 비휘발성 메모리(300)는 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 비휘발성 메모리(300)에 데이터를 쓰기 위해서는 삭제(이레이즈) 동작이 선행되고, 쓰기되는 데이터의 단위(페이지)보다 이레이즈 되는 데이터의 단위(블록)이 크다는 특징이 있다. 비휘발성 메모리(300)의 이러한 특징으로 인해 기존의 하드 디스크용 파일 시스템(file system)을 그대로 사용하는 것이 어려운데, 플래시 변환 계층(220)이 파일 시스템과 비휘발성 메모리(300) 간의 호환된 동작이 가능하게 할 수 있다.The flash translation layer 220 may be a module that manages the nonvolatile memory 300. The non-volatile memory 300 has an advantage of providing a fast read speed at a relatively low unit price. However, in order to write data to the nonvolatile memory 300, an erase (erase) operation is preceded, and a unit (block) of data that is erased is larger than a unit (page) of data to be written. Due to this feature of the non-volatile memory 300, it is difficult to use an existing file system for a hard disk as it is, and the flash conversion layer 220 has a compatible operation between the file system and the non-volatile memory 300. It can be enabled.

플래시 변환 계층(220)은 호스트(100)의 입력 파일 쓰기 요청 중 빈 공간이 없어 가비지-컬렉션이 수행될 필요가 있는 경우, 가비지-컬렉션 정책에 따라 가비지-컬렉션을 수행한다. 예를 들어, 쓰기 요청 대상 페이지가 동결 페이지인 경우 동결 블록(320) 중 가장 많은 무효 페이지를 포함하는 동결 블록(320)에 대해 가비지 컬렉션을 수행한다. 또 다른 예를 들어, 쓰기 요청 대상 페이지가 노멀 페이지인 경우 노멀 블록(310) 중 가장 많은 무효 페이지를 포함하는 노멀 블록(310)에 대해 가비지 컬렉션을 수행한다.The flash translation layer 220 performs garbage-collection according to the garbage-collection policy when there is no empty space in the input file write request of the host 100 and thus garbage-collection needs to be performed. For example, when the page to be written is a frozen page, garbage collection is performed on the frozen block 320 including the most invalid pages among the frozen blocks 320. For another example, when the page to be written is a normal page, garbage collection is performed on the normal block 310 including the most invalid pages among the normal blocks 310.

플래시 변환 계층(220)은 노멀 블록(310)과 동결 블록(320)을 구분하기 위해, 블록의 속성을 플래그(flag)를 통해 block pool을 나눈다. 같은 플래그를 가진 블록들은 같은 속성(stream)인 block pool이라고 판단한다. In order to distinguish between the normal block 310 and the frozen block 320, the flash translation layer 220 divides the block pool through flags of attributes of the block. Blocks with the same flag are considered to be a block pool with the same stream.

초기 상태에서는 모두 노멀 블록(310)으로 설정해두고, write를 진행해나가며 frozen hint가 들어오는 양에 따라서 필요한 만큼의 Frozen block(320)을 생성한다. Free space가 부족하면 가비지-컬렉션이 발생하게 되는데, 이때 필요한 space가 어느 pool인지에 따라 기존 블록(310) 혹은 Frozen block(320)이 생성될 수 있다.In the initial state, all of them are set to the normal block 310, and writing is performed, and as many frozen blocks 320 as necessary are generated according to the amount of frozen hints. When free space is insufficient, garbage-collection occurs. At this time, an existing block 310 or a frozen block 320 may be generated depending on which pool the required space is.

가비지-컬렉션 과정에서 Frozen block space가 부족할 경우에는 Free block을 생성하여 Frozen으로 할당하고, 기존 block space가 부족하여 발생한 가비지-컬렉션의 경우에는 기존 Block(310)으로 할당한다.When the frozen block space is insufficient in the garbage-collection process, a free block is generated and allocated as Frozen, and in the case of a garbage-collection caused by insufficient existing block space, the existing Block 310 is allocated.

필요한 space가 어느 pool인지는 가비지-컬렉션을 유발한 write의 속성에 달려있다. 즉, 가비지-컬렉션 유발 write의 hint가 frozen이면, Frozen block이 필요한 상태이고, 가비지-컬렉션 유발 write에 frozen hint가 없다면 기존 Block의 space가 필요한 상태로 판단한다. Which pool the required space depends on the nature of the write causing the garbage-collection. That is, if the hint of the garbage-collection-induced write is frozen, the frozen block is required, and if there is no frozen hint in the garbage-collection-induced write, it is determined that the space of the existing block is required.

상술한 바와 같이 Block을 2개의 pool로 나눈 후, 플래시 변환 계층(220)은 쓰기 요청의 hint가 frozen일 경우 frozen block(320)의 free space에 write하고 해당 주소를 매핑 테이블(mapping table)에 작성한다. 만약, 쓰기 요청의 hint가 frozen이 아닐 경우, 플래시 변환 계층(220)은 기존 block의 free space에 write하고, 해당 주소를 매핑 테이블에 작성한다. After dividing the block into two pools as described above, the flash conversion layer 220 writes to the free space of the frozen block 320 when the hint of the write request is frozen and writes the corresponding address in the mapping table. do. If the hint of the write request is not frozen, the flash translation layer 220 writes to the free space of the existing block and writes the corresponding address in the mapping table.

플래시 변환 계층(220)은 호스트(100)가 데이터를 쓰는 경우에 페이지의 종류를 판단한다. 이때, 플래시 변환 계층(220)은 쓰기 요청된 페이지의 플래그에 동결 상태를 의미하는 힌트(hint)가 존재하는 경우, 해당 페이지를 동결 페이지로 판단할 수 있다. The flash conversion layer 220 determines the type of the page when the host 100 writes data. At this time, the flash conversion layer 220 may determine that the page is a frozen page when a hint indicating a frozen state exists in the flag of the page requested to be written.

플래시 변환 계층(220)은 페이지의 종류가 동결 페이지가 아닌 경우, 호스트(100)에 의하여 생성된 논리적 주소를 노멀 블록(310)의 가상 주소로 매핑하고, 매핑된 가상 주소에 해당 페이지를 저장한다. The flash translation layer 220 maps the logical address generated by the host 100 to the virtual address of the normal block 310 when the page type is not a frozen page, and stores the page in the mapped virtual address. .

예를 들어, 도 2와 같이 "Write (Pi, NULL)"의 쓰기 요청이 수신되면, 쓰기 요청이 동결 상태를 의미하는 ‘F’플래그를 포함하지 않으므로, 플래시 변환 계층(220)은 해당 페이지를 일반 블록(310)에 저장한다. For example, when a write request of “Write (Pi, NULL)” is received, as shown in FIG. 2, since the write request does not include the'F' flag indicating a frozen state, the flash conversion layer 220 may open the corresponding page. It is stored in the general block 310.

또한, 플래시 변환 계층(220)은 페이지의 종류가 동결 페이지인 경우, 호스트(100)에 의하여 생성된 논리적 주소를 동결 블록(320)의 가상 주소로 매핑하고, 매핑된 가상 주소에 동결 페이지를 저장한다.Further, the flash translation layer 220 maps the logical address generated by the host 100 to the virtual address of the freezing block 320 when the page type is a frozen page, and stores the frozen page in the mapped virtual address. do.

예를 들어, 도 3과 같이 "Write (Pi, ‘F’)"의 쓰기 요청이 수신되면, 쓰기 요청이 동결 상태를 의미하는‘F’플래그를 포함하므로, 플래시 변환 계층(220)은 해당 페이지를 동결 페이지로 판단하여, 동결 블록(320)에 저장한다. 이때, 플래시 변환 계층(220)은 동결 블록(320)에 프리 페이지가 존재하는지를 판단하고, 동결 블록(320)에 프리 페이지가 존재하는 경우 도 3과 같이 동결 페이지를 동결 블록(320)에 저장한다. For example, when a write request of "Write (Pi,'F')" is received, as shown in FIG. 3, since the write request includes a'F' flag indicating a frozen state, the flash conversion layer 220 includes the corresponding page. Is determined as a frozen page, and is stored in the frozen block 320. At this time, the flash conversion layer 220 determines whether a free page exists in the freeze block 320 and, if a free page exists in the freeze block 320, stores the freeze page in the freeze block 320 as shown in FIG. .

만약, 동결 블록(320)에 프리 페이지가 존재하지 않으면, 플래시 변환 계층(220)은 도 4와 같이 동결 블록(320)을 제외한 블록들을 대상으로 가비지-컬렉션을 수행하여 새로운 프리 블록(A)을 확보하고, 그 프리 블록(A)을 동결 블록으로 할당하여, 동결 페이지를 저장한다. If a free page does not exist in the freeze block 320, the flash conversion layer 220 performs garbage-collection on blocks other than the freeze block 320 as shown in FIG. 4 to perform a new free block (A). The free block A is allocated as a freeze block, and a freeze page is stored.

메모리 인터페이스(230)는 메모리 컨트롤러(200)와 비휘발성 메모리(300) 간의 통신을 위한 인터페이스일 수 있다.The memory interface 230 may be an interface for communication between the memory controller 200 and the nonvolatile memory 300.

상술한 바와 같이 구성된 시스템에서, 호스트(DB 엔진, 운영체제 또는 일반 응용)(100)는 특정 페이지 Pi 에 대해, 더 이상 쓰기 연산이 발생하지 않음을 알게 되는 시점에 해당 페이지의 “F”(frozen) 상태를 남기고, 플래시 메모리 장치에 쓰기 요청할 때 Write (Pi, ‘F’)으로 요청하여, 플래시 메모리 장치의 FTL(220)에서 해당 페이지를 별도로 처리하게 한다. 이를 통해 저장장치의 성능과 수명이 늘어나게 되는 효과가 있다.In the system configured as described above, the host (DB engine, operating system, or general application) 100 “F” (frozen) of the page at the time when it knows that no more write operation occurs for a specific page Pi. When a request is made to write to the flash memory device, the state is left and the corresponding page is separately processed by the FTL 220 of the flash memory device by requesting Write (Pi,'F'). This has the effect of increasing the performance and life of the storage device.

도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리의 데이터 관리 방법을 설명하기 위한 도면이다.5 is a diagram for describing a data management method of a nonvolatile memory according to an embodiment of the present invention.

도 5를 참조하면, 호스트는 비휘발성 메모리에 기록하고자 하는 페이지의 동결 페이지 여부를 판단하고(S510), 메모리의 컨트롤러로 쓰기 요청을 한다(S520). 이때, 호스트는 동결 페이지의 쓰기를 요청할 경우, 동결 상태를 의미하는 플래그를 쓰기 요청에 포함시켜 전달할 수 있다. 예컨대, 동결 상태를 의미하는 플래그가 ‘F’인 경우, 호스트는 특정 페이지 Pi 쓰기 요청시 Write (Pi, ‘F’)을 전달할 수 있다. 또한, 호스트는 동결 페이지가 아닌 페이지의 쓰기를 요청할 경우, "Write (Pi, NULL)"을 전달할 수 있다. Referring to FIG. 5, the host determines whether a page to be written to the nonvolatile memory is a frozen page (S510), and makes a write request to the memory controller (S520). At this time, when the host requests to write a frozen page, a flag indicating a frozen state may be included in the write request and transmitted. For example, when the flag indicating the frozen state is'F', the host may transmit Write (Pi,'F') when requesting to write a specific page Pi. Also, when a host requests to write a page other than a frozen page, "Write (Pi, NULL)" may be delivered.

단계 S520이 수행되면, 컨트롤러는 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는지를 판단한다(S530).When step S520 is performed, the controller determines whether a flag indicating a frozen state exists in the write request (S530).

단계 S530의 판단결과, 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하면, 컨트롤러는 비휘발성 메모리의 동결 블록에 해당 페이지를 저장한다(S540). 동결 페이지를 동결 블록에 저장하는 방법에 대한 상세한 설명은 도 6을 참조하기로 한다. As a result of the determination in step S530, if a flag indicating a frozen state exists in the write request, the controller stores the page in the frozen block of the nonvolatile memory (S540). For a detailed description of a method of storing a frozen page in a frozen block, refer to FIG. 6.

만약, 단계 S530의 판단결과, 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하지 않으면, 컨트롤러는 비휘발성 메모리의 일반 블록에 해당 페이지를 저장한다(S550).If, as a result of the determination in step S530, a flag indicating a frozen state does not exist in the write request, the controller stores the page in a general block of non-volatile memory (S550).

도 6은 본 발명의 일 실시예에 따른 동결 블록에 동결 페이지를 저장하는 방법을 설명하기 위한 흐름도이다. 6 is a flowchart illustrating a method of storing a frozen page in a frozen block according to an embodiment of the present invention.

도 6을 참조하면, 컨트롤러는 동결 페이지의 쓰기 요청이 수신되면(S610), 비휘발성 메모리의 동결 블록에 프리 페이지가 존재하는지를 판단한다(S620). 이때, 컨트롤러는 프리 페이지가 동결 페이지를 기록할 만큼의 크기 이상인지를 함께 판단할 수 있다. Referring to FIG. 6, when a write request for a frozen page is received (S610), the controller determines whether a free page exists in the frozen block of the nonvolatile memory (S620). At this time, the controller can also determine whether the free page is larger than the size of a frozen page.

단계 S620의 판단결과, 동결 블록에 프리 페이지가 존재하면, 컨트롤러는 동결 페이지를 동결 블록에 저장한다(S630). As a result of the determination in step S620, if a free page exists in the frozen block, the controller stores the frozen page in the frozen block (S630).

만약, 단계 S620의 판단결과, 동결 블록에 프리 페이지가 존재하지 않으면, 컨트롤러는 동결 블록을 제외한 나머지 블록을 대상으로 가비지-콜렉션을 수행하여(S640), 희생 블록을 선정하여 프리 블록을 생성한다(S650).If, as a result of the determination in step S620, there is no free page in the frozen block, the controller performs garbage-collection on the remaining blocks other than the frozen block (S640), selects a victim block and generates a free block ( S650).

그런 후, 컨트롤러는 생성된 프리 블록을 동결 블록으로 할당하고(S660), 동결 페이지를 동결 블록에 저장한다(S670).Then, the controller allocates the generated free block as a frozen block (S660), and stores the frozen page in the frozen block (S670).

도 7은 본 발명의 일 실시예에 따른 가비지 컬렉션 발생 시 프리 블록의 속성을 할당하는 방법을 설명하기 위한 흐름도이다. 7 is a flowchart illustrating a method of allocating a property of a free block when garbage collection occurs according to an embodiment of the present invention.

도 7을 참조하면, 컨트롤러는 가비지-콜렉션이 발생하면(S710), 희생 블록을 선정하여 프리 블록을 생성한다(S720).Referring to FIG. 7, when a garbage-collection occurs (S710), the controller selects a sacrificial block to generate a free block (S720).

그런 후, 컨트롤러는 가비지-컬렉션을 발생시킨 쓰기 요청의 힌트가 동결인지를 판단한다(S730).Then, the controller determines whether the hint of the write request that caused the garbage-collection is frozen (S730).

단계 S730의 판단결과, 쓰기 요청의 힌트가 동결이면, 컨트롤러는 프리 블록을 동결 블록으로 할당한다(S740).As a result of the determination in step S730, if the hint of the write request is frozen, the controller allocates a free block as a frozen block (S740).

만약, 단계 S730의 판단결과, 쓰기 요청의 힌트가 동결이 아니면, 컨트롤러는 프리 블록을 기본 블록으로 할당한다(S750).If, as a result of the determination in step S730, the hint of the write request is not frozen, the controller allocates a free block as a basic block (S750).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been focused on the preferred embodiments. Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered in terms of explanation, not limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the equivalent range should be interpreted as being included in the present invention.

100 : 호스트
200 : 컨트롤러
210 : 호스트 인터페이스
220 : 플래시 변환 계층
230 : 메모리 인터페이스
300 : 비휘발성 메모리
310 : 노멀 블록
320 : 동결 블록
100: host
200: controller
210: host interface
220: flash conversion layer
230: memory interface
300: non-volatile memory
310: normal block
320: freeze block

Claims (8)

복수의 페이지로 구성된 메모리 블록을 복수 개 포함하는 비휘발성 메모리;
데이터 페이지를 모니터링하여 업데이트 연산이 일어나지 않은 동결 페이지(frozen page) 여부를 판단하고, 상기 비휘발성 메모리에 쓰기(write) 요청할 페이지가 동결 페이지인 경우, 동결 상태를 의미하는 플래그를 포함하는 쓰기 요청을 전송하는 호스트;
상기 호스트로부터 수신한 쓰기 요청에 동결 상태를 의미하는 플래그가 포함된 경우, 해당 페이지를 동결 블록(frozen block)에 저장하는 컨트롤러
를 포함하는, 비휘발성 메모리 장치의 데이터 관리 시스템.
A non-volatile memory including a plurality of memory blocks composed of a plurality of pages;
The data page is monitored to determine whether a frozen page has not occurred, and if a page to be written to the nonvolatile memory is a frozen page, a write request including a flag indicating a frozen state is issued. The sending host;
When a write request received from the host includes a flag indicating a frozen state, a controller that stores the corresponding page in a frozen block
Including, data management system of a non-volatile memory device.
제1항에 있어서,
상기 비휘발성 메모리는, 업데이트 연산이 일어나는 데이터(data)를 저장하는 노멀 블록(normal block), 업데이트 연산이 일어나지 않은 동결 페이지(frozen page)를 저장하는 동결 블록(frozen block)을 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 관리 시스템.
According to claim 1,
The nonvolatile memory may include a normal block storing data in which an update operation occurs, and a frozen block storing a frozen page in which an update operation has not occurred. Non-volatile memory device data management system.
제1항에 있어서,
상기 호스트는,
데이터베이스 엔진의 스키마나 트랜잭션 로직에 기반하여 동결 페이지 여부를 판단하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 관리 시스템.
According to claim 1,
The host,
Data management system of a non-volatile memory device, characterized in that to determine whether the page is frozen based on the schema or transaction logic of the database engine.
제1항에 있어서,
상기 컨트롤러는,
상기 쓰기 요청에 동결 상태를 의미하는 플래그가 포함된 경우, 상기 비휘발성 메모리의 동결 블록에 프리 페이지 존재 여부를 판단하고, 프리 페이지가 존재하는 경우 동결 페이지를 동결 블록에 저장하며, 프리 페이지가 존재하지 않은 경우 상기 동결 블록을 제외한 블록을 대상으로 가비지-콜렉션을 수행하여, 희생 블록을 선정 후 프리 블록을 생성하고, 상기 생성된 프리 블록을 동결 블록으로 할당하여 동결 페이지를 저장하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 관리 시스템.
According to claim 1,
The controller,
When a flag indicating a frozen state is included in the write request, it is determined whether a free page exists in the frozen block of the nonvolatile memory, and if a free page exists, the frozen page is stored in the frozen block, and the free page exists If not, performing a garbage-collection on blocks other than the frozen block, selecting a victim block, generating a free block, and allocating the generated free block as a frozen block to store a frozen page Data management system for non-volatile memory devices.
제1항에 있어서,
상기 컨트롤러는,
동결 페이지로 잘못 판단된 거짓 동결 페이지(False Frozen Page)에 대해, 상기 동결 블록에 기록한 후, 다시 쓰기가 발생한 경우, 상기 거짓 동결 페이지를 상기 동결 블록에 기록한 후 이전 기록을 무효화(invalidation)하고, 필요시 가비지 컬렉션 정책에 따라 동결 블록을 대상으로 가비지-컬렉션(garbage collection)을 수행하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 관리 시스템.
According to claim 1,
The controller,
For a false frozen page that is incorrectly judged as a frozen page, after writing to the frozen block and rewriting, when the false frozen page is written to the frozen block, the previous record is invalidated, A data management system of a nonvolatile memory device characterized in that garbage collection is performed on a frozen block according to a garbage collection policy if necessary.
호스트가 비휘발성 메모리에 기록하고자 하는 페이지의 동결 페이지 여부를 판단하여, 컨트롤러로 쓰기 요청하는 단계;
상기 컨트롤러는 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는지를 판단하는 단계;
상기 컨트롤러는 상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는 경우 비휘발성 메모리의 동결 블록에 해당 페이지를 저장하고, 동결 상태를 의미하는 플래그가 존재하지 않은 경우 상기 비휘발성 메모리의 일반 블록에 상기 페이지를 저장하는 단계
를 포함하는 비휘발성 메모리 장치의 데이터 관리 방법.
Determining whether a page to be written to a nonvolatile memory by a host is a frozen page and requesting writing to the controller;
Determining whether a flag indicating a frozen state exists in the write request;
The controller stores the page in a freeze block of a nonvolatile memory when a flag indicating a frozen state exists in the write request, and when a flag indicating a freeze state does not exist, the controller stores the page in a general block of the nonvolatile memory. Steps to save the page
Data management method of a non-volatile memory device comprising a.
제6항에 있어서,
상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하는 경우 비휘발성 메모리의 동결 블록에 해당 페이지를 저장하는 단계는,
상기 비휘발성 메모리의 동결 블록에 프리 페이지가 존재하는지 판단하는 단계;
프리 페이지가 존재하는 경우, 상기 동결 페이지를 동결 블록에 저장하고, 프리 페이지가 존재하지 않은 경우, 상기 동결 블록을 제외한 블록을 대상으로 가비지-콜렉션을 수행하여, 희생 블록을 선정 후 프리 블록을 생성하고, 상기 생성된 프리 블록을 동결 블록으로 할당하여 동결 페이지를 저장하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 관리 방법.
The method of claim 6,
When a flag indicating a frozen state exists in the write request, the step of storing the page in the frozen block of the nonvolatile memory may include:
Determining whether a free page exists in a frozen block of the nonvolatile memory;
If a free page exists, the frozen page is stored in a frozen block, and if the free page does not exist, garbage-collection is performed on blocks excluding the frozen block, and a free block is generated after selecting a victim block. And storing the free pages by allocating the generated free blocks as freeze blocks.
제6항에 있어서,
상기 쓰기 요청에 동결 상태를 의미하는 플래그가 존재하지 않은 경우 상기 비휘발성 메모리의 일반 블록에 상기 페이지를 저장하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 관리 방법.
The method of claim 6,
When there is no flag indicating a frozen state in the write request, storing the page in a general block of the non-volatile memory, the data management method of the non-volatile memory device.
KR1020190009005A 2019-01-24 2019-01-24 Data storage system of on-volatile memory apparatus and method of the same KR102210536B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190009005A KR102210536B1 (en) 2019-01-24 2019-01-24 Data storage system of on-volatile memory apparatus and method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190009005A KR102210536B1 (en) 2019-01-24 2019-01-24 Data storage system of on-volatile memory apparatus and method of the same

Publications (2)

Publication Number Publication Date
KR20200092019A true KR20200092019A (en) 2020-08-03
KR102210536B1 KR102210536B1 (en) 2021-02-02

Family

ID=72043046

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190009005A KR102210536B1 (en) 2019-01-24 2019-01-24 Data storage system of on-volatile memory apparatus and method of the same

Country Status (1)

Country Link
KR (1) KR102210536B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080033649A (en) * 2006-10-12 2008-04-17 삼성전자주식회사 Flash memory system and managing method for the system capable of merging data less frequently
KR20130050591A (en) * 2011-11-08 2013-05-16 삼성전자주식회사 Memory device including nonvolatile memory and controling method of nonvolatile memory
KR20140003892A (en) * 2012-06-29 2014-01-10 삼성전자주식회사 Method for managing non-volatile memory device, and non-volatile memory device
KR101567134B1 (en) * 2013-03-29 2015-11-09 이화여자대학교 산학협력단 Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
KR20160122330A (en) * 2015-04-13 2016-10-24 삼성전자주식회사 Data storage and operating method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080033649A (en) * 2006-10-12 2008-04-17 삼성전자주식회사 Flash memory system and managing method for the system capable of merging data less frequently
KR20130050591A (en) * 2011-11-08 2013-05-16 삼성전자주식회사 Memory device including nonvolatile memory and controling method of nonvolatile memory
KR20140003892A (en) * 2012-06-29 2014-01-10 삼성전자주식회사 Method for managing non-volatile memory device, and non-volatile memory device
KR101567134B1 (en) * 2013-03-29 2015-11-09 이화여자대학교 산학협력단 Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
KR20160122330A (en) * 2015-04-13 2016-10-24 삼성전자주식회사 Data storage and operating method thereof

Also Published As

Publication number Publication date
KR102210536B1 (en) 2021-02-02

Similar Documents

Publication Publication Date Title
US11640353B2 (en) Memory system, data storage device, user device and data management method thereof
KR102395538B1 (en) Data storage device and operating method thereof
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
US8489803B2 (en) Efficient use of flash memory in flash drives
US20110264884A1 (en) Data storage device and method of operating the same
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
KR20160105624A (en) Data processing system and operating method thereof
US11422930B2 (en) Controller, memory system and data processing system
KR20200139433A (en) Operating method of controller and memory system
US8782345B2 (en) Sub-block accessible nonvolatile memory cache
KR20200114052A (en) Controller, memory system and operating method thereof
KR20200100956A (en) Apparatus and method for managing map data in memory system
KR102596964B1 (en) Data storage device capable of changing map cache buffer size
US20200310669A1 (en) Optimized handling of multiple copies in storage management
KR20200114086A (en) Controller, memory system and operating method thereof
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
KR102210536B1 (en) Data storage system of on-volatile memory apparatus and method of the same
JP2016126739A (en) Information processor and program
JP2016126737A (en) Cache memory device and program
US11941246B2 (en) Memory system, data processing system including the same, and operating method thereof
US11657000B2 (en) Controller and memory system including the same
US20220164119A1 (en) Controller, and memory system and data processing system including the same
CN114764307A (en) Computer system and data management method thereof
KR20200114208A (en) Controller, memory system and operating method of the controller
KR20210063814A (en) Apparatus and method for reading operation in memory system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant