KR20110103142A - Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same - Google Patents

Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same Download PDF

Info

Publication number
KR20110103142A
KR20110103142A KR1020100022326A KR20100022326A KR20110103142A KR 20110103142 A KR20110103142 A KR 20110103142A KR 1020100022326 A KR1020100022326 A KR 1020100022326A KR 20100022326 A KR20100022326 A KR 20100022326A KR 20110103142 A KR20110103142 A KR 20110103142A
Authority
KR
South Korea
Prior art keywords
page
write request
superpage
nonvolatile memory
memory device
Prior art date
Application number
KR1020100022326A
Other languages
Korean (ko)
Other versions
KR101117390B1 (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 KR1020100022326A priority Critical patent/KR101117390B1/en
Publication of KR20110103142A publication Critical patent/KR20110103142A/en
Application granted granted Critical
Publication of KR101117390B1 publication Critical patent/KR101117390B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Abstract

비휘발성 메모리 장치의 병렬성을 최대한 활용할 수 있는 비휘발성 메모리 장치의 데이터 접근 방법 및 이를 수행하는 프로그램을 기록한 기록매체가 개시된다. 비휘발성 메모리 장치의 데이터 접근 방법은 제공된 쓰기 요청 페이지의 크기가 동시에 접근 가능한 페이지들의 집합인 수퍼페이지의 크기보다 적은 경우 제공된 쓰기 요청을 임시 저장하고, 임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 수퍼페이지의 크기로 구성한 후, 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하고, 생성된 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공한다. 따라서, 비휘발성 메모리 장치의 각 메모리 칩에 병렬적으로 동시에 접근할 수 있고, 이를 통해 비휘발성 메모리 장치의 전체적인 성능을 향상시킬 수 있다. Disclosed are a data access method of a nonvolatile memory device and a recording medium recording a program for performing the same. The data access method of the nonvolatile memory device temporarily stores the provided write request when the size of the provided write request page is smaller than the size of the superpage, which is a set of simultaneously accessible pages, and collects the temporarily stored at least one write request page. After configuring the size of the super page, the logical page number of the write request pages composed of the size of the super page is mapped to the contiguous virtual page numbers to generate the write requests in units of superpages, and the write requests in units of the superpages are generated in nonvolatile memory. To the device. Accordingly, each memory chip of the nonvolatile memory device can be simultaneously accessed in parallel, thereby improving the overall performance of the nonvolatile memory device.

Description

비휘발성 메모리 장치의 데이터 접근 방법 및 이를 수행하는 프로그램을 기록한 기록매체{METHOD FOR ACCESSING DATA IN NON-VOLATILE MEMORY STORAGE AND RECORDED MEDIUM STORING PROGRAM FOR PERFORMING THE SAME}TECHNICAL FOR ACCESSING DATA IN NON-VOLATILE MEMORY STORAGE AND RECORDED MEDIUM STORING PROGRAM FOR PERFORMING THE SAME}

본 발명은 비휘발성 메모리 장치의 데이터 입출력에 관한 것으로, 더욱 상세하게는 복수의 비휘발성 메모리 칩이 멀티 채널로 연결된 저장장치에 적용될 수 있는 비휘발성 메모리 장치의 데이터 접근 방법 및 이를 수행하는 프로그램을 기록한 기록매체에 관한 것이다.The present invention relates to data input / output of a nonvolatile memory device, and more particularly, to a method of accessing a data of a nonvolatile memory device which can be applied to a storage device connected to a plurality of nonvolatile memory chips in a multi-channel, and a program for performing the same. It relates to a recording medium.

플래시 메모리 장치는 종래의 하드 디스크 드라이브에 비해 액세스 속도, 소비전력, 소음, 내구성, 진동 등에서 우수하기 때문에 휴대용 전자 기기에 활용되는 비율이 급격히 증가하고 있다.Since the flash memory device is superior in access speed, power consumption, noise, durability, vibration, etc., compared to the conventional hard disk drive, the ratio used in portable electronic devices is increasing rapidly.

또한, 플래시 메모리는 비휘발성 메모리 그 자체로서 휴대용 저장 장치로 사용될 수도 있고, 하드 디스크와 디스크 캐시(Disk Cache)간의 병목 현상을 줄이고 디스크 캐시의 전력 소비를 줄이기 위한 2차 캐시로 사용될 수도 있으며, 기존의 하드 디스크와 결합된 하이브리드 하드 디스크(Hybrid HDD) 또는 복수의 플래시 메모리 칩을 하나의 저장 장치로 구성한 SSD(Solid State Disk, 이하, 'SSD'라 약칭함)에 활용될 수도 있다.In addition, flash memory may be used as a portable storage device as a nonvolatile memory itself, or may be used as a secondary cache to reduce the bottleneck between the hard disk and the disk cache and to reduce the power consumption of the disk cache. A hybrid hard disk (hybrid HDD) combined with a hard disk or a plurality of flash memory chips may be utilized as a solid state disk (SSD), which is configured as one storage device.

플래시 메모리는 크게 기존의 랜덤 메모리의 특성을 많이 가지는 노어형 플래시(NOR Flash) 메모리와 하드디스크 등과 같은 저장 매체의 특성을 많이 가지는 낸드형 플래시(NAND Flash) 메모리로 분류될 수 있다.The flash memory may be classified into a NOR flash memory having many characteristics of a conventional random memory and a NAND flash memory having many characteristics of a storage medium such as a hard disk.

낸드 플래시 메모리는 읽기(Read) 및 쓰기(Write) 연산은 페이지 단위로 수행하고 지우기(Erase) 연산은 블록 단위로 수행하며, 데이터가 갱신(update)되는 경우 해당 영역을 갱신된 데이터로 덮어쓸 수 없고 해당 블록이 삭제되어야만 그 위치에 새로운 데이터를 쓸 수 있다는 특징을 가진다. 상기와 같은 특징으로 인해 낸드 플래시 메모리는 이전에 데이터가 기록된 위치에 갱신된 데이터를 바로 덮어쓸 수 없고 새로운 위치에 데이터를 기록한 후 위치 정보를 갱신해야 한다.NAND flash memory performs read and write operations in units of pages, erase operations in units of blocks, and when data is updated, the area can be overwritten with updated data. It has a characteristic that new data can be written to the location only if the corresponding block is deleted. Due to the above characteristics, the NAND flash memory cannot immediately overwrite the updated data in the position where the data was previously written, but must update the position information after writing the data in the new position.

상술한 바와 같은 낸드 플래시 메모리의 특징으로 인해 하드 디스크 기반으로 설계된 호스트 시스템의 파일 시스템(File System)과 낸드 플래시 메모리 사이에는 낸드 플래시 메모리를 하드 디스크인 것처럼 에뮬레이션(emulation) 해주는 플래시 변환 계층(Flash Translation Layer, 이하, 'FTL'이라 약칭함)이라는 시스템 소프트웨어가 사용된다.Due to the features of the NAND flash memory described above, a flash translation layer emulates NAND flash memory as if it were a hard disk between the file system of the host system designed based on the hard disk and the NAND flash memory. Layer software, hereinafter referred to as 'FTL'.

FTL은 호스트 시스템의 파일 시스템에게 낸드 플래시 메모리가 가지고 있는 고유의 특성들을 감추며, 하드 디스크와 동일한 입/출력 연산을 수행할 수 있도록 파일 시스템으로부터 전달되는 논리적인 주소(logical address)를 낸드 플래시 메모리의 물리적 주소(physical address)와 매핑(mapping)하는 기능을 수행한다.The FTL hides the inherent characteristics of NAND flash memory from the host system's file system and provides a logical address from the file system to perform the same input / output operations as the hard disk. It performs the function of mapping with physical address.

낸드 플래시 메모리의 집적도가 매년 증가하고 있지만 하드 디스크에 비해 상당히 작고 낸드 플래시 메모리 자체의 버스 속도가 SCSI(Small Computer System Interface)나 SATA(Serial Advanced Technology Attachment) 등의 기존 버스보다 느리기 때문에 그 자체로 대용량 저장 매체로 사용하는 것은 적합하지 않다. 따라서, SSD는 처리 속도를 향상시키기 위해 복수의 낸드 플래시 메모리를 병렬로 구성하고 멀티채널(Multi-channel) 및 멀티웨이(Multi-way) 구조를 사용한다.The density of NAND flash memory is increasing every year, but because it is considerably smaller than hard disks and NAND flash memory itself is slower than conventional buses such as Small Computer System Interface (SCSI) or Serial Advanced Technology Attachment (SATA), It is not suitable for use as a storage medium. Accordingly, SSDs use a plurality of NAND flash memories in parallel and use a multi-channel and multi-way structure to improve processing speed.

도 1은 4채널 2웨이 구조를 가지는 SSD 장치의 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of an SSD device having a four-channel two-way structure.

도 1을 참조하면, 일반적인 SSD 장치(10)는 호스트 인터페이스(11), 버퍼(12), 제어부(13), 낸드 제어부(14) 및 복수의 플래시 메모리 칩(15)으로 구성될 수 있고, 4채널(channel) 2웨이(2way) 구조를 가진다.Referring to FIG. 1, a general SSD device 10 may include a host interface 11, a buffer 12, a controller 13, a NAND controller 14, and a plurality of flash memory chips 15. The channel has a two-way structure.

호스트 인터페이스(11)는 컴퓨터 등과 같은 호스트 장치와 SSD 장치(10) 사이의 인터페이스 기능을 수행하며, Ultra DMA 모드 6, SATA 1 또는 SATA 2 등의 규격 중 하나를 지원하도록 구성된다.The host interface 11 performs an interface function between the host device such as a computer and the SSD device 10, and is configured to support one of standards such as Ultra DMA mode 6, SATA 1, or SATA 2.

버퍼(12)는 DRAM으로 구성될 수 있고, 호스트 인터페이스(11)를 통해 호스트 장치로부터 제공된 데이터가 해당 플래시 메모리 칩에 기록되기 전까지 일시적으로 저장되는 쓰기 버퍼(Write Buffer)로 사용된다.The buffer 12 may be configured as a DRAM and used as a write buffer that is temporarily stored until data provided from the host device through the host interface 11 is written to the corresponding flash memory chip.

제어부(13)는 호스트 장치로부터 제공된 읽기 또는 쓰기 명령을 해석하여 플래시 메모리의 동작에 상응하도록 변환하여 처리하는 FTL(Flash Tranlation Layer) 기능을 수행하고, 플래시 메모리 장치(10)의 각 구성 요소에 대한 최상위 제어를 수행한다.The controller 13 performs a Flash Tranlation Layer (FTL) function that interprets a read or write command provided from a host device, converts it to correspond to the operation of the flash memory, and processes the same. Perform top level control.

낸드(NAND) 제어부(14)는 제어부(13)의 제어에 상응하여 버퍼(12)로부터 데이터를 제공받고 제공받은 데이터를 플래시 메모리 장치에 상응하는 저수준의 명령으로 변환하여 플래시 메모리 칩(15)에 전달한다. 낸드 제어부(14)에서 처리되는 명령어는 write page, read page, erase page, copyback page 등을 포함한다.The NAND control unit 14 receives data from the buffer 12 under the control of the control unit 13, and converts the received data into a low level command corresponding to the flash memory device to the flash memory chip 15. To pass. Instructions processed by the NAND controller 14 include a write page, a read page, an erase page, a copyback page, and the like.

복수의 플래시 메모리 칩(15) 각각은 낸드 플래시 메모리로 구성되고, 데이터가 실질적으로 기록된다. Each of the plurality of flash memory chips 15 is composed of a NAND flash memory, and data is substantially recorded.

도 1에 도시한 SSD 장치(10)에서 버퍼(12)와 낸드 제어부(14) 사이는 각각 소정 대역폭을 가지는 4개의 버스(즉, 4채널)로 연결되어 있다. 또한, 각각의 낸드 제어부(14)는 상기 소정 대역폭을 가지는 채널을 통해 복수의 플래시 메모리 칩(15)과 연결된다. 또한, 각 낸드 제어부(14)는 자신의 채널을 통해 2개의 플래시 메모리 칩이 한 쌍으로 구성된 4개의 플래시 메모리 칩 쌍과 연결된다.In the SSD device 10 shown in FIG. 1, the buffer 12 and the NAND controller 14 are connected by four buses (that is, four channels) each having a predetermined bandwidth. In addition, each NAND controller 14 is connected to a plurality of flash memory chips 15 through a channel having the predetermined bandwidth. In addition, each NAND controller 14 is connected to four flash memory chip pairs in which two flash memory chips are paired through their channels.

도 1에 도시된 바와 같은 4채널 2웨이 구조의 SSD 장치(10)에서는 각 채널마다 낸드 제어부(14)가 존재하기 때문에 각 채널에 동시 접근이 가능하다. 또한, 하나의 채널에서도 2웨이로 연결된 한 쌍의 칩들은 컨트롤 핀(control pin)과 데이터 버스(data bus)를 공유하므로 인터리빙(interleaving)을 통해 동시에 접근 가능하다. 즉, 도 1에 도시된 4채널 2웨이 구조의 SSD 장치(10)에서는 총 8개의 칩들(16)이 동시에 접근 가능하다.In the SSD device 10 having a four-channel two-way structure as shown in FIG. 1, the NAND control unit 14 exists in each channel, thereby allowing simultaneous access to each channel. In addition, a pair of two-way chips on a single channel share a control pin and a data bus so that they can be accessed simultaneously through interleaving. That is, in the four-channel two-way SSD device 10 shown in FIG. 1, a total of eight chips 16 may be simultaneously accessed.

도 2는 수퍼페이지의 개념을 나타내는 개념도로서, 도 1에 도시된 SSD 장치에서 동시에 접근 가능한 8개의 칩들(16) 중 동일한 페이지 인덱스를 가지는 특정 블록의 일부를 도시한 것이다.FIG. 2 is a conceptual diagram illustrating the concept of a super page, and illustrates a part of a specific block having the same page index among the eight chips 16 simultaneously accessible in the SSD device shown in FIG. 1.

도 2에 도시된 바와 같이, SSD 장치에서 동시에 접근 가능한 칩들 중 동일한 페이지 인덱스를 가지는 페이지들을 수퍼페이지(superpage)라고 한다. SSD 장치의 입출력시 상기 수퍼페이지 단위의 접근이 많을수록 칩들간의 병렬성을 최대한 활용할 수 있기 때문에 전체적인 성능이 향상된다.As illustrated in FIG. 2, pages having the same page index among chips simultaneously accessible in the SSD device are referred to as superpages. When the SSD device inputs and outputs, the more the super page access, the more the parallelism between the chips can be utilized to improve the overall performance.

따라서, 멀티채널 멀티웨이 방식의 SSD 장치에서는 칩들간의 병렬성을 최대한 활용하기 위해 FTL에서 수퍼페이지 단위의 페이지 매핑 기법을 사용한다.Therefore, in the multi-channel multi-way SSD device, the FTL uses a page mapping method in units of superpages in order to maximize the parallelism between chips.

도 3은 도 1에 도시한 SSD 장치에서 쓰기 요청이 수행되는 과정을 나타내는 개념도로서, 도 3의 (a)는 SSD 장치의 초기 상태를 나타내고, 도 3의 (b)는 호스트 장치로부터 순차적인 쓰기 요청을 제공받은 경우의 쓰기 동작을 나타내며, 도 3의 (c)는 호스트 장치로부터 랜덤(random) 쓰기 요청을 제공받은 경우의 쓰기 동작을 나타낸다.3 is a conceptual diagram illustrating a process in which a write request is performed in the SSD device shown in FIG. 1, FIG. 3A illustrates an initial state of the SSD device, and FIG. 3B illustrates sequential writes from the host device. 3 illustrates a write operation when a request is provided, and FIG. 3C illustrates a write operation when a random write request is received from a host device.

도 3의 (a)에 도시된 바와 같은 초기상태에서 도 3의 (b)에 도시된 바와 같이 논리 페이지 번호(LPN: Logical Page Number) 24부터 16개의 페이지를 쓰는 순차적인 쓰기 요청이 제공된 경우 SSD 장치는 순차적으로 2개의 수퍼페이지를 쓰면 되므로 전체적으로 두 번의 쓰기 명령을 수행하는 시간이 소요된다.SSD in the case where a sequential write request for writing 16 to 16 pages of logical page number (LPN) is provided as shown in (b) of FIG. 3 in an initial state as shown in (a) of FIG. The device only needs to write two superpages sequentially, so it takes time to execute two write commands overall.

그러나, 도 3의 (c)에 도시된 바와 같이 호스트로부터 랜덤 쓰기 요청이 제공된 경우에는 두 개의 페이지를 쓰는 요청을 처리하기 위해 두 번의 쓰기 명령을 수행하는 시간뿐만 아니라, 다른 페이지들(즉, LPN 0 내지 6 및 9 내지 15)을 이동시키기 위해 읽는 시간이 소요되기 때문에 전체적으로는 도 3의 (b)에 도시한 16개의 페이지를 쓰는 명령어를 수행하는 경우보다 소요되는 시간이 더 많아지게 된다.However, when a random write request is provided from the host as shown in (c) of FIG. 3, other pages (that is, LPN) as well as a time to execute two write commands to process a request to write two pages. Since the reading time is required to move 0 to 6 and 9 to 15), the overall time is longer than that of the case of performing the instruction to write the 16 pages shown in FIG.

도 3에 도시된 바와 같이 멀티채널 멀티웨이 구조을 가지는 비휘발성 메모리 장치에서는 호스트로부터 순차적인 입출력 요청의 제공된 경우에는 우수한 성능을 나타내지만, 랜덤 입출력 요청이 제공된 경우에는 장치의 병렬성을 활용할 수 없기 때문에 성능이 저하되는 문제가 있다.As shown in FIG. 3, a non-volatile memory device having a multi-channel multi-way structure shows excellent performance when a sequential input / output request is provided from a host. However, when a random input / output request is provided, the parallelism of the device cannot be utilized. This has a problem of deterioration.

상술한 바와 같은 문제점을 해결하기 위한 본 발명의 목적은 비휘발성 메모리 장치의 병렬성을 최대한 활용할 수 있는 비휘발성 메모리 장치의 데이터 접근 방법을 제공하는 것이다.An object of the present invention to solve the above problems is to provide a data access method of a nonvolatile memory device that can take full advantage of the parallelism of the nonvolatile memory device.

또한, 본 발명의 다른 목적은 상기 비휘발성 메모리 장치의 데이터 접근 방법을 수행하는 프로그램을 기록한 기록매체를 제공하는 것이다.Another object of the present invention is to provide a recording medium on which a program for performing a data access method of the nonvolatile memory device is recorded.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 비휘발성 메모리 장치의 데이터 접근 방법은, 제공된 쓰기 요청 페이지의 크기가 동시에 접근 가능한 페이지들의 집합인 수퍼페이지의 크기보다 적은 경우 상기 제공된 쓰기 요청을 임시 저장하는 단계와, 임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 단계와, 상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계 및 생성된 상기 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하는 단계를 포함한다. 상기 임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 단계는, 호스트의 파일 시스템으로부터 제공된 쓰기 요청 단위, 쓰기 요청이 생성된 프로세스 및 쓰기 요청을 통해 접근하는 파일의 동일성 여부 중 적어도 하나를 고려하여 임시 저장된 쓰기 요청 페이지들 중에서 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성할 수 있다. 상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계는, 상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들을 위한 새로운 가상 수퍼페이지를 할당하는 단계와, 상기 쓰기 요청 페이지들의 논리 페이지 번호를 가상 페이지 번호로 매핑하여 상기 가상 수퍼페이지를 구성하는 단계 및 상기 논리 페이지 번호 및 상기 가상 페이지 번호가 매핑된 매핑 테이블을 갱신하는 단계를 포함할 수 있다. 상기 비휘발성 메모리 장치의 데이터 접근 방법은, 동일한 논리 페이지 번호에 대해 갱신이 발생한 경우, 상기 매핑 테이블에서 갱신이 발생한 논리 페이지 번호에 매핑된 기존의 가상 페이지 번호를 새로운 가상 페이지 번호로 변경하는 단계 및 가비지 수집 목록을 갱신하는 단계를 더 포함할 수 있다. 상기 생성된 상기 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하는 단계는, 동일한 논리 페이지 번호에 대해 갱신이 발생한 경우, 상기 수퍼페이지 단위의 쓰기 요청 및 무효화된 기존의 가상 페이지 번호 정보를 상기 비휘발성 메모리 장치에 제공할 수 있다. 상기 비휘발성 메모리 장치의 데이터 접근 방법은, 상기 제공된 쓰기 요청 페이지의 크기가 상기 수퍼페이지 이상인 경우에는 상기 제공된 쓰기 요청 페이지를 상기 수퍼페이지 크기로 나눈 나머지를 산출하는 단계 및 상기 쓰기 요청 페이지를 상기 수퍼페이지 크기로 나눈 나머지가 존재하는 경우에는 상기 나머지를 임시 저장하는 단계를 더 포함할 수 있다.A data access method of a nonvolatile memory device according to an aspect of the present invention for achieving the above object of the present invention is provided when the size of the provided write request page is smaller than the size of the super page which is a set of simultaneously accessible pages. Temporarily storing a write request, collecting at least one temporarily stored write request page to configure a size of the superpage, and converting logical page numbers of write request pages configured to the size of the superpage into consecutive virtual page numbers. Generating a write request in units of superpages and providing the generated write request in units of superpages to a nonvolatile memory device. The step of collecting the temporarily stored at least one write request page and configuring the size of the super page may include: a write request unit provided from a file system of a host, a process in which a write request is generated, and whether the file accessed through the write request is the same; In consideration of at least one, at least one write request page among the temporarily stored write request pages may be collected and configured to have a size of the superpage. The mapping of the logical page numbers of the write request pages configured with the size of the super page into consecutive virtual page numbers to generate a write request in units of super pages may include: creating a new virtual super for the write request pages configured with the size of the super page; Allocating a page, configuring the virtual superpage by mapping logical page numbers of the write request pages to virtual page numbers, and updating a mapping table to which the logical page numbers and the virtual page numbers are mapped. It may include. The data access method of the nonvolatile memory device may include: when an update occurs for the same logical page number, changing an existing virtual page number mapped to the logical page number where the update occurred in the mapping table to a new virtual page number; The method may further include updating the garbage collection list. The providing of the generated superpage unit write request to a nonvolatile memory device may include writing the superpage unit write request and invalidated existing virtual page number information when an update occurs for the same logical page number. It can be provided to a nonvolatile memory device. The data access method of the nonvolatile memory device may include calculating a remainder obtained by dividing the provided write request page by the superpage size when the size of the provided write request page is greater than or equal to the superpage, and dividing the write request page by the superpage. If there is a remainder divided by the page size, the method may further include temporarily storing the remainder.

또한, 본 발명의 목적을 달성하기 위한 본 발명의 다른 측면에 따른 비휘발성 메모리 장치의 데이터 접근 방법은, 제공된 읽기 요청을 임시 저장하는 단계와, 임시 저장된 읽기 요청 페이지들의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환하는 단계와, 변환된 가상 페이지 번호에 기초하여 임시 저장된 적어도 하나의 읽기 요청 페이지들 중 서로 다른 비휘발성 메모리 칩에 접근하는 읽기 요청 페이지들을 모아서 읽기 요청을 재구성하는 단계 및 재구성한 읽기 요청을 비휘발성 메모리 장치에 제공하는 단계를 포함한다. 상기 임시 저장된 읽기 요청 페이지들의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환하는 단계는, 임시 저장된 읽기 요청의 제한 시간을 설정하는 단계 및 상기 제한 시간 이내에 상기 임시 저장된 읽기 요청 페이지들의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환하는 단계를 포함할 수 있다. 상기 읽기 요청을 재구성하는 단계는, 상기 변환된 가상 페이지 번호를 동시에 접근 가능한 페이지의 집합인 수퍼페이지를 구성하는 페이지 수로 나눈 나머지를 획득하는 단계와, 획득한 나머지가 서로 다른 가상 페이지 번호들로 읽기 요청을 재구성하는 단계를 포함할 수 있다. In addition, the data access method of the nonvolatile memory device according to another aspect of the present invention for achieving the object of the present invention, the step of temporarily storing the provided read request, and mapping the logical page number of the temporarily stored read request page mapping table Reconstructing a read request by collecting the read request pages that access different nonvolatile memory chips among at least one read request page temporarily stored based on the converted virtual page number by referring to the virtual page number; Providing the reconstructed read request to the nonvolatile memory device. The converting the logical page numbers of the temporarily stored read request pages into virtual page numbers by referring to a mapping table may include setting a time limit for the temporarily stored read request and logical pages of the temporarily stored read request pages within the time limit. The method may include converting the number into a virtual page number by referring to the mapping table. The reconfiguring of the read request may include obtaining a remainder obtained by dividing the converted virtual page number by the number of pages constituting a superpage, which is a set of simultaneously accessible pages, and reading the obtained remainder with different virtual page numbers. Reconstructing the request.

또한, 본 발명의 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른 비휘발성 메모리 장치의 데이터 접근 방법은, 가용 수퍼페이지 목록에서 사용 가능한 수퍼페이지 수가 미리 설정된 임계값 미만인 경우 유효 페이지가 가장 작은 수퍼페이지를 희생 수퍼페이지로 선택하는 단계와, 상기 희생 수퍼페이지에 포함된 적어도 하나의 유효 페이지를 독출하여 임시 저장하는 단계와 임시 저장된 상기 적어도 하나의 유효 페이지 각각의 기존의 가상 페이지 번호를 새로운 연속적인 가상 페이지 번호로 변경하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계 및 생성된 수퍼페이지 단위의 쓰기 요청 및 무효화된 상기 기존의 가상 페이지 번호 정보를 비휘발성 메모리 장치에 제공하는 단계를 포함한다. 상기 가용 수퍼페이지 목록에서 사용 가능한 수퍼페이지 수가 미리 설정된 임계값 미만인 경우 유효 페이지가 가장 작은 수퍼페이지를 희생 수퍼페이지로 선택하는 단계는, 무효 페이지 목록이 저장된 가비지 수집 목록에 기초하여 상기 유효 페이지가 가장 작은 수퍼페이지를 희생 수퍼페이지로 선택할 수 있다. 상기 임시 저장된 상기 적어도 하나의 유효 페이지 각각의 기존의 가상 페이지 번호를 새로운 연속적인 가상 페이지 번호로 변경하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계는, 임시 저장된 상기 적어도 하나의 유효 페이지 각각의 기존의 가상 페이지 번호를 새로운 연속적인 가상 페이지 번호로 변경한 후, 상기 가비지 수집 목록 및 상기 가용 수퍼페이지 목록을 갱신하는 단계를 포함할 수 있다. In addition, the data access method of the nonvolatile memory device according to another aspect of the present invention for achieving the object of the present invention, if the number of available superpages in the list of available superpages is less than a predetermined threshold value super Selecting a page as a sacrificial super page, reading and temporarily storing at least one valid page included in the sacrificial super page, and sequentially storing a new virtual page number of each of the at least one valid page stored temporarily. Generating a write request in units of a superpage by changing to a virtual page number and providing the generated virtual page number information to the nonvolatile memory device. If the number of available superpages in the available superpage list is less than a preset threshold, selecting the superpage with the smallest valid page as the victim superpage may be based on the garbage collection list in which the invalid page list is stored. You can choose a small superpage as your victim superpage. The step of generating a write request on a super page basis by changing an existing virtual page number of each of the temporarily stored at least one valid page into a new consecutive virtual page number may include: And after changing the virtual page number to a new consecutive virtual page number, updating the garbage collection list and the available superpage list.

또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 비휘발성 메모리 장치의 데이터 접근 방법을 수행하는 프로그램을 기록한 기록매체는, 제공된 쓰기 요청 페이지의 크기가 동시에 접근 가능한 페이지들의 집합인 수퍼페이지의 크기보다 적은 경우 상기 제공된 쓰기 요청을 임시 저장하는 단계와, 임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 단계와, 상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계 및 생성된 상기 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하는 단계를 수행하는 프로그램이 기록된다.In addition, a recording medium for recording a program for performing a data access method of a nonvolatile memory device according to an aspect of the present invention for achieving another object of the present invention is a set of pages that can be simultaneously accessed the size of the write request page provided. Temporarily storing the provided write request when the size of the superpage is smaller, collecting at least one temporarily stored write request page, configuring the size of the superpage, and writing write page pages of the size of the superpage. A program is performed that maps logical page numbers into consecutive virtual page numbers to generate a write request in units of superpages and provides the generated write requests in units of superpages to a nonvolatile memory device.

상술한 바와 같이 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법에서는 랜덤하게 제공된 쓰기 동작을 수행하는 경우 제공된 쓰기 요청을 수퍼페이지 단위의 연속적인 쓰기 요청으로 변환하여 비휘발성 메모리 장치에 제공한다. 또한, 읽기 요청을 수행하는 경우에는 제공된 읽기 요청을 칩 아이디가 서로 다른 읽기 요청을 포함하는 수퍼페이지로 재구성하여 비휘발성 메모리 장치에 제공한다. 그리고, 가상 수퍼페이지의 부족에 대비하여 가비지 수집을 수행한다.As described above, in the data access method of the nonvolatile memory device according to the embodiment of the present invention, when a randomly provided write operation is performed, the provided write request is converted into a successive write request in units of superpages and provided to the nonvolatile memory device. do. In addition, when performing a read request, the read request is reconfigured into a superpage including read requests having different chip IDs, and provided to the nonvolatile memory device. In addition, garbage collection is performed in preparation for lack of virtual superpage.

따라서, 데이터의 쓰기 또는 읽기 요청의 수행시 비휘발성 메모리 장치의 각 메모리 칩에 병렬적으로 동시에 접근할 수 있고, 이를 통해 비휘발성 메모리 장치의 전체적인 성능을 향상시킬 수 있다. Therefore, when performing a write or read request of data, each memory chip of the nonvolatile memory device can be simultaneously accessed in parallel, thereby improving the overall performance of the nonvolatile memory device.

도 1은 4채널 2웨이 구조를 가지는 SSD 장치의 구성을 나타내는 블록도이다.
도 2는 수퍼페이지의 개념을 나타내는 개념도이다.
도 3은 도 1에 도시한 SSD 장치에서 쓰기 요청이 수행되는 과정을 나타내는 개념도이다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법이 적용되는 시스템의 구성을 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법 중 쓰기 동작의 수행과정을 나타내는 흐름도이다.
도 6은 도 5에 도시된 비휘발성 메모리 장치의 쓰기 동작 과정의 예를 나타내는 개념도이다.
도 7은 도 5에 도시된 비휘발성 메모리 장치의 쓰기 동작 중 갱신이 발생한 경우의 동작 과정의 예를 나타내는 개념도이다.
도 8은 도 5에 도시된 비휘발성 메모리 장치의 쓰기 동작 중 재정렬 과정을 나타내는 개념도이다.
도 9는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법 중 읽기 동작의 수행과정을 나타내는 흐름도이다.
도 10은 도 9에 도시된 비휘발성 메모리 장치의 읽기 동작 과정의 예를 나타내는 개념도이다.
도 11은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법 중 가비지 수집 과정을 나타내는 흐름도이다.
도 12 내지 도 14는 도 11에 도시한 가비지 수집 과정의 일 예를 나타내는 개념도이다.
1 is a block diagram illustrating a configuration of an SSD device having a four-channel two-way structure.
2 is a conceptual diagram illustrating the concept of a super page.
3 is a conceptual diagram illustrating a process in which a write request is performed in the SSD device shown in FIG. 1.
4 is a block diagram illustrating a configuration of a system to which a data access method of a nonvolatile memory device according to an embodiment of the present invention is applied.
5 is a flowchart illustrating a process of performing a write operation among a data access method of a nonvolatile memory device according to an embodiment of the present invention.
FIG. 6 is a conceptual diagram illustrating an example of a write operation process of the nonvolatile memory device illustrated in FIG. 5.
FIG. 7 is a conceptual diagram illustrating an example of an operation process when an update occurs during a write operation of the nonvolatile memory device illustrated in FIG. 5.
FIG. 8 is a conceptual diagram illustrating a reordering process during a write operation of the nonvolatile memory device shown in FIG. 5.
9 is a flowchart illustrating a process of performing a read operation in a data access method of a nonvolatile memory device according to an embodiment of the present invention.
FIG. 10 is a conceptual diagram illustrating an example of a read operation process of the nonvolatile memory device illustrated in FIG. 9.
11 is a flowchart illustrating a garbage collection process in a data access method of a nonvolatile memory device according to an embodiment of the present invention.
12 to 14 are conceptual views illustrating an example of a garbage collection process illustrated in FIG. 11.

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

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. 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 another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

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

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

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

이하, 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법은 멀티채널 멀티웨어 구조를 가지는 비휘발성 메모리 장치에 적용되는 것으로 가정한다. 그러나, 이는 설명의 편의를 위한 것일 뿐, 본 발명의 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법은 복수의 비휘발성 메모리 칩에 동시에 접근 가능하도록 구성된 모든 저장장치에 적용될 수 있다.
Hereinafter, it is assumed that a data access method of a nonvolatile memory device according to an embodiment of the present invention is applied to a nonvolatile memory device having a multichannel multiware structure. However, this is only for convenience of description, and the data access method of the nonvolatile memory device according to the embodiment of the present invention may be applied to all storage devices configured to simultaneously access a plurality of nonvolatile memory chips.

도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법이 적용되는 시스템의 구성을 나타내는 블록도이다.4 is a block diagram illustrating a configuration of a system to which a data access method of a nonvolatile memory device according to an embodiment of the present invention is applied.

도 4를 참조하면, 랜덤 쓰기 요청이 생성된 경우 호스트(100)에서는 연속적이지 않은 논리 페이지 번호(LPN: Logical Page Number)(101)들을 모두 연속적인 가상 페이지 번호(VPN: Virtual Page Number)(103)로 매핑(mapping)하고, 매핑 테이블(110)을 갱신한 후, 쓰기 요청을 수퍼페이지(superpage) 단위로 SSD 등과 같은 비휘발성 메모리 장치(200)에 제공하고, 비휘발성 메모리 장치(200)에서는 매핑 테이블(210)을 참조하여 호스트(100)로부터 제공된 쓰기 요청의 가상 페이지 번호(103)에 대응되는 물리 주소(201)에 쓰기 동작을 수행한다.Referring to FIG. 4, when a random write request is generated, the host 100 stores all non-contiguous Logical Page Numbers (LPNs) 101 in consecutive Virtual Page Numbers (VPNs) 103. After mapping, update the mapping table 110, write requests are provided to the nonvolatile memory device 200, such as SSD, in units of superpages, and the nonvolatile memory device 200 The write operation is performed to the physical address 201 corresponding to the virtual page number 103 of the write request provided from the host 100 by referring to the mapping table 210.

또는, 읽기 요청이 생성된 경우 호스트(100)는 비휘발성 메모리 장치(200)의 병렬성을 최대한 활용할 수 있도록 매핑 테이블(110)을 참조하여 가상 페이지 번호(103)를 재정렬(reordering)한 후 재정렬된 읽기 요청을 비휘발성 메모리 장치(200)에 제공하고, 비휘발성 메모리 장치(200)는 매핑 테이블(210)을 참조하여 제공받은 읽기 요청의 가상 페이지 번호(103)에 상응하는 물리 주소(201)에 기록된 데이터를 독출한다.
Alternatively, when a read request is generated, the host 100 reorders the virtual page numbers 103 with reference to the mapping table 110 so as to make the best use of the parallelism of the nonvolatile memory device 200. The read request is provided to the nonvolatile memory device 200, and the nonvolatile memory device 200 refers to the mapping table 210 to the physical address 201 corresponding to the virtual page number 103 of the read request. Read the recorded data.

도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법 중 쓰기 동작의 수행과정을 나타내는 흐름도이다.5 is a flowchart illustrating a process of performing a write operation among a data access method of a nonvolatile memory device according to an embodiment of the present invention.

도 5를 참조하면, 먼저 호스트 장치에 쓰기 요청(Write request)이 생성되면(단계 301), 생성된 쓰기 요청 페이지의 크기를 판단하고(단계 303), 쓰기 요청 페이지가 미리 설정된 수퍼페이지의 크기보다 작은 것으로 판단되면 생성된 쓰기 요청을 큐(Queue)에 저장한다(단계 305).Referring to FIG. 5, first, when a write request is generated in the host device (step 301), the size of the generated write request page is determined (step 303), and the write request page is larger than the size of the preset superpage. If it is determined to be small, the generated write request is stored in a queue (step 305).

여기서, 상기 수퍼페이지는 도 2에 도시한 바와 같이 동시에 접근(입력 또는 출력) 가능한 페이지들의 집합을 의미한다. 예를 들어, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법이 도 1에 도시된 4채널 2웨이 구조의 SSD 장치에 적용되는 경우 상기 수퍼페이지는 8개의 페이지로 구성될 수 있다.Here, the superpage means a set of pages that can be simultaneously accessed (input or output) as shown in FIG. 2. For example, when a data access method of a nonvolatile memory device according to an embodiment of the present invention is applied to an SSD device having a four-channel two-way structure illustrated in FIG. 1, the superpage may include eight pages. .

이후, 호스트는 큐에 저장된 쓰기 요청들이 수퍼페이지 크기가 되었는가를 판단하고(단계 307), 큐에 저장된 쓰기 요청들이 수퍼페이지 크기를 만족하는 것으로 판단되면, 사용 가능한 가상 수퍼페이지(VSP: Vertual SuperPage)를 관리하는 가용 수퍼페이지 목록(free list)에서 사용가능한 가상 수퍼페이지 번호(VSPN: Vritual SuperPage Number)를 할당함으로써 새로운 가상 수퍼페이지를 할당한다(단계 309). Thereafter, the host determines whether the write requests stored in the queue have reached the superpage size (step 307), and if it is determined that the write requests stored in the queue satisfy the superpage size, the available virtual superpage (VSP: Vertual SuperPage) is determined. A new virtual superpage is allocated by allocating a virtual superpage number (VSPN) available in the free list managing free pages (step 309).

여기서, 큐에 저장된 수퍼페이지 크기 이하의 랜덤 쓰기 요청들을 모아서 수퍼페이지 단위의 가상 수퍼페이지로 구성할 때, 페이지의 지역성(locality)을 고려하여 가상 수퍼페이지를 구성하는 것이 바람직하다.Here, when collecting random write requests smaller than the size of the superpage stored in the queue and configuring the virtual superpage in units of superpages, it is preferable to configure the virtual superpage in consideration of the locality of the page.

예를 들어, 호스트는 파일 시스템으로부터 제공된 쓰기 요청 단위를 고려하여 파일 시스템으로부터 제공된 쓰기 요청 단위를 하나의 가상 수퍼페이지에 포함시키거나, 동일한 프로세스로부터 생성된 쓰기 요청을 하나의 가상 수퍼페이지에 포함시키거나, 동일한 파일에 접근하는 쓰기 요청을 하나의 가상 수퍼페이지에 포함시킴으로써 비휘발성 메모리 장치의 병렬성을 최대한 이용할 수 있다.For example, a host may include write request units provided from the file system in one virtual superpage in consideration of write request units provided from the file system, or include write requests generated from the same process in one virtual superpage. In addition, the parallelism of a nonvolatile memory device can be maximized by including a write request for accessing the same file in one virtual superpage.

이후, 호스트는 큐에 저장된 쓰기 요청들 중 수퍼페이지 크기로 모여진 쓰기 요청들의 논리 페이지 번호(LPN)에 가상 페이지 번호(VPN)를 할당하고, 이와 동시에 매핑 테이블을 갱신한다(단계 311). 여기서, 호스트는 동일한 논리 페이지 번호에 대한 갱신이 발생하였는가를 판단하고(단계 313), 동일한 논리 페이지 번호에 갱신이 발생되지 않은 것으로 판단되면, 수퍼페이지 단위의 크기를 가지는 새로운 쓰기 요청을 비휘발성 메모리 장치에 제공한다(단계 315). Thereafter, the host allocates the virtual page number VPN to the logical page number LPN of the write requests collected in the superpage size among the write requests stored in the queue, and simultaneously updates the mapping table (step 311). Here, the host determines whether an update has occurred for the same logical page number (step 313), and if it is determined that no update has occurred for the same logical page number, the host requests a new write request having a size of a superpage unit. To the device (step 315).

또는, 호스트는 동일한 논리 페이지 번호에 대해 갱신이 발생한 것으로 판단되면 매핑 테이블에서 기존의 가상 페이지 번호를 새로운 가상 페이지 번호로 변경하고(단계 317), 가비지 수집 목록(GC list)을 갱신한다(단계 319).Or, if it is determined that an update has occurred for the same logical page number, the host changes an existing virtual page number to a new virtual page number in the mapping table (step 317), and updates the garbage collection list (step 319). ).

이후, 호스트는 수퍼페이지 단위의 크기를 가지는 새로운 쓰기 요청 및 무효화된 기존의 가상 페이지 번호 정보를 비휘발성 메모리 장치에 제공한다(단계 321). 여기서, 상기 무효화된 기존의 가상 페이지 번호는 trim 명령어를 사용하여 비휘발성 메모리 장치에 제공할 수 있다.Thereafter, the host provides the nonvolatile memory device with the new write request and the invalidated virtual page number information having the size of a superpage unit (step 321). Here, the invalidated existing virtual page number may be provided to the nonvolatile memory device using a trim command.

본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법에서는 호스트에서 논리 페이지 번호를 가상 페이지 번호로 매핑하고 가상 페이지 번호로 구성된 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하기 때문에 호스트와 비휘발성 메모리 장치에서 서로 다른 주소 체계를 사용하게 된다. 즉, 비휘발성 메모리 장치는 수퍼페이지 크기의 연속적인 쓰기 요청을 제공받고 이에 상응하여 쓰기 동작을 수행하기 때문에 데이터의 갱신 여부를 알지 못한다. 따라서, 기존의 데이터가 새로운 데이터로 갱신되는 경우에는 무효화된 기존의 데이터에 대한 정보를 비휘발성 메모리 장치에 제공해야만 하고, 이를 위해 trim 명령을 사용하여 무효화된 데이터의 가상 페이지 번호를 비휘발성 메모리 장치에 제공한다.In the data access method of the nonvolatile memory device according to an embodiment of the present invention, the host maps a logical page number to a virtual page number and provides a write request in units of virtual page numbers to the nonvolatile memory device. And nonvolatile memory devices use different addressing schemes. That is, the nonvolatile memory device does not know whether to update data because the nonvolatile memory device receives a write request of a superpage size and performs a write operation accordingly. Therefore, when existing data is updated with new data, information about the invalidated existing data must be provided to the nonvolatile memory device. For this purpose, the virtual page number of the invalidated data is provided by using the trim command. To provide.

단계 303에서 생성된 쓰기 요청 페이지의 크기가 미리 설정된 수퍼페이지의 크기 이상인 경우에는 쓰기 요청 페이지를 수퍼페이지의 크기로 나눈 나머지를 산출하고(단계 323), 나머지가 존재하는가를 판단하여(단계 325), 나머지가 존재하는 것으로 판단되는 경우에는(즉, 쓰기 요청 페이지가 수퍼페이지의 크기로 나누어 떨어지지 않는 경우), 수퍼페이지의 크기로 나눈 나머지 페이지들에 대한 쓰기 요청을 큐에 저장하고(단계 327), 단계 307로 진행하여 이후의 단계들을 수행한다.If the size of the write request page generated in step 303 is greater than or equal to the size of the preset superpage, the remainder obtained by dividing the write request page by the size of the superpage is calculated (step 323), and it is determined whether there is a remainder (step 325). If it is determined that there is a remainder (i.e., the write request page does not divide by the size of the superpage), the write request for the remaining pages divided by the size of the superpage is queued (step 327). In step 307, the subsequent steps are performed.

또는, 단계 325에서 나머지가 존재하지 않는 것으로 판단되는 경우에는(즉, 쓰기 요청 페이지가 수퍼페이지의 크기로 나누어 떨어지는 경우), 생성된 쓰기 요청페이지들에 대해 가상 수퍼페이지 번호(VSPN)를 할당하고(단계 329), 쓰기 요청 페이지들의 각 논리 페이지 번호(LPN)에 가상 페이지 번호(VPN)를 순차적으로 매핑시킨 후(단계 331), 생성된 쓰기 요청을 비휘발성 메모리 장치에 제공한다(단계 333).
Or, if it is determined in step 325 that no remainder exists (i.e., the write request page is divided by the size of the superpage), then a virtual superpage number (VSPN) is assigned to the generated write request pages. (Step 329), the virtual page number VPN is sequentially mapped to each logical page number LPN of the write request pages (step 331), and the generated write request is provided to the nonvolatile memory device (step 333). .

도 6은 도 5에 도시된 비휘발성 메모리 장치의 쓰기 동작 과정의 예를 나타내는 개념도이다.FIG. 6 is a conceptual diagram illustrating an example of a write operation process of the nonvolatile memory device illustrated in FIG. 5.

도 6을 참조하면, 호스트의 파일 시스템으로부터 Write(0,1), Write(5,2), Write(15,3) 및 Write(9,2)의 쓰기 요청이 제공되면, 호스트는 수퍼페이지 크기 단위로 쓰기 요청을 모은 다음, 가용 수퍼페이지 목록(free list)에서 사용 가능한 가상 수퍼페이지 번호(VSPN)를 할당(예를 들면, 0)한 후, 제공된 쓰기 요청의 각 논리 페이지 번호(LPN)에 가상 페이지 번호(VPN)를 할당하고 매핑 테이블을 갱신한다.Referring to FIG. 6, if a write request of Write (0,1), Write (5,2), Write (15,3), and Write (9,2) is provided from the host's file system, the host may have a superpage size. Gather write requests in units, assign an available virtual superpage number (VSPN) from the list of available superpages (for example, 0), and then assign it to each logical page number (LPN) of a given write request. Allocate a virtual page number (VPN) and update the mapping table.

이후, 호스트는 수퍼페이지 단위의 연속적인 쓰기 요청(Write(0,8))을 비휘발성 메모리 장치(예를 들면, SSD)에 제공하고, 비휘발성 메모리 장치는 매핑 테이블을 참조하여 제공된 가상 수퍼페이지에 포함된 가상 페이지 번호에 대응되는 물리 주소에 해당 데이터를 기록한다.Thereafter, the host provides a successive write request (Write (0,8)) in units of superpages to the nonvolatile memory device (eg, SSD), and the nonvolatile memory device refers to the mapping table to provide the virtual superpage. The data is recorded at the physical address corresponding to the virtual page number included in the.

도 6에 도시한 바와 같이 본 발명의 일 실시에에 따른 비휘발성 메모리 장치의 데이터 접근 방법에서는 쓰기 동작을 수행하는 경우 랜덤하게 제공된 쓰기 요청을 수퍼페이지 단위의 연속적인 쓰기 요청으로 변환함으로써 병렬성을 최대화할 수 있고, 이를 통해 장치의 전체적인 성능을 향상시킬 수 있다.
As shown in FIG. 6, in the data access method of a nonvolatile memory device according to an exemplary embodiment of the present invention, when performing a write operation, the parallelism is maximized by converting a randomly provided write request into consecutive write requests in units of superpages. This can improve the overall performance of the device.

도 7은 도 5에 도시된 비휘발성 메모리 장치의 쓰기 동작 중 갱신이 발생한 경우의 동작 과정의 예를 나타내는 개념도이다.FIG. 7 is a conceptual diagram illustrating an example of an operation process when an update occurs during a write operation of the nonvolatile memory device illustrated in FIG. 5.

도 6에 도시한 바와 같은 쓰기 동작이 수행된 후에, 호스트의 파일 시스템으로부터 Write(4,1), Write(8,2), Write(32,3) 및 Write(16,2)의 쓰기 요청이 제공되는 경우, 호스트는 수퍼페이지 단위로 쓰기 요청을 모은 다음 가용 수퍼페이지 목록(free list)을 확인하여 새로운 가상 수퍼페이지 번호(VSPN=1)을 할당한다. After a write operation as shown in FIG. 6 is performed, a write request of Write (4,1), Write (8,2), Write (32,3) and Write (16,2) is received from the host's file system. If provided, the host collects write requests in units of superpages and then checks the free list of available pages to assign a new virtual superpage number (VSPN = 1).

그리고, 호스트는 제공된 쓰기 요청 중에 데이터의 갱신 여부를 판단하여 데이터의 갱신이 포함된 경우에는 기존의 논리 페이지 번호에 매핑된 가상 페이지 번호를 새로운 가상 페이지 번호로 변환하고, 재활용을 위해 무효화된 가상 페이지 번호를 가비지 수집 목록(GC list)에 포함시킨다.The host determines whether the data is updated during the provided write request, and if the data is updated, converts the virtual page number mapped to the existing logical page number into a new virtual page number and invalidates the virtual page for recycling. Include the number in the garbage collection list (GC list).

예를 들어, 도 6에 도시된 바와 같이 논리 페이지 번호 9, 16 및 17은 갱신이 발생하였기 때문에 상기 논리 페이지 번호에 매핑된 기존의 가상 페이지 번호 3, 6 및 7은 각각 10, 14 및 15로 변환되고, 이에 상응하여 가비지 수집 목록(GC list)이 갱신된다.For example, since logical page numbers 9, 16, and 17 are updated as shown in FIG. 6, existing virtual page numbers 3, 6, and 7 mapped to the logical page numbers are 10, 14, and 15, respectively. The garbage collection list (GC list) is updated accordingly.

결과적으로, 새로운 가상 수퍼페이지(즉, VSPN=1)에 포함된 가상 페이지 번호는 8 내지 15가 되고, 호스트는 수퍼페이지 단위의 쓰기 요청(즉, Write(8,8))을 비휘발성 메모리 장치에 제공한다.As a result, the virtual page numbers included in the new virtual superpage (that is, VSPN = 1) become 8 to 15, and the host issues a superpage-based write request (that is, Write (8,8)) to the nonvolatile memory device. To provide.

또한, 이와 동시에 호스트는 갱신으로 인해 무효화된 가상 페이지 번호(즉, 3, 6, 및 7)를 trim 명령(즉, Trim(3), Trim(6), Trim(7))을 사용하여 비휘발성 메모리 장치에 제공한다.
At the same time, the host also uses the trim command (that is, Trim (3), Trim (6), Trim (7)) to determine which virtual page numbers (that is, 3, 6, and 7) invalidated by the update. To a memory device.

도 8은 도 5에 도시된 비휘발성 메모리 장치의 쓰기 동작 중 재정렬 과정을 나타내는 개념도이다.FIG. 8 is a conceptual diagram illustrating a reordering process during a write operation of the nonvolatile memory device shown in FIG. 5.

도 8을 참조하면, 호스트의 파일 시스템으로부터 Write(8,1), Write(64,4), Write(32,7) 및 Write(16,4)의 쓰기 요청이 제공되는 경우, 호스트는 수퍼페이지 단위로 쓰기 요청을 모은 다음 페이지의 지역성을 고려하여 쓰기 요청의 순서를 재정렬한 하여 가상 수퍼페이지를 구성한다.Referring to FIG. 8, when a write request of Write (8,1), Write (64,4), Write (32,7), and Write (16,4) is provided from the host's file system, the host is a superpage. After collecting the write requests in units, the virtual superpage is constructed by rearranging the write requests in consideration of the locality of the page.

예를 들어, 파일 시스템으로부터 제공된 쓰기 요청 순서대로 가상 수퍼페이지를 구성하는 경우, Write(32,7)가 두 개의 가상 수퍼페이지로 분할되기 때문에 지역성이 떨어지게 된다.For example, if a virtual superpage is configured in the order of write requests provided from the file system, locality is reduced because Write (32,7) is divided into two virtual superpages.

상술한 문제를 해결하기 위해 호스트는 제공된 쓰기 요청 단위를 고려하여 쓰기 요청 순서를 Write(8,1), Write(64,4), Write(32,7), Write(16,4)에서 Write(8,1), Write(32,7), Write(64,4), Write(16,4)로 재정렬(reordering)함으로써 Write(32,7) 요청을 하나의 가상 수퍼페이지에 포함시킨 후, 재정렬된 각 논리 페이지 번호에 가상 페이지 번호를 할당한다.
To solve the above problem, the host considers the write request unit provided and writes the write request sequence in Write (8,1), Write (64,4), Write (32,7), Write (16,4). Reorder 8,1), Write (32,7), Write (64,4), Write (16,4) to include Write (32,7) requests in one virtual superpage and then reorder The virtual page number is assigned to each logical page number.

도 9는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법 중 읽기 동작의 수행과정을 나타내는 흐름도이다.9 is a flowchart illustrating a process of performing a read operation in a data access method of a nonvolatile memory device according to an embodiment of the present invention.

도 9를 참조하면, 호스트의 파일 시스템으로부터 읽기 요청이 생성되면(단계 401), 호스트는 읽기 요청을 큐에 저장한다(단계 403). 여기서, 호스트는 큐에 저장된 각 읽기 요청의 대기 제한시간을 설정하고, 대기 제한시간 내에 큐에 저장된 읽기 요청들을 모아서 이후의 단계들(즉, 단계 405 내지 단계 411)을 수행함으로써, 읽기 요청이 큐에 대기하는 시간이 길어짐에 따라 발생될 수 있는 응답 지연시간을 방지함으로써 서비스 품질(Quality of Service)을 보장할 수 있다.9, if a read request is generated from the host's file system (step 401), the host stores the read request in a queue (step 403). Here, the host sets a wait timeout for each read request stored in the queue, collects the read requests stored in the queue within the wait timeout, and performs subsequent steps (ie, steps 405 to 411) so that the read request is queued. The quality of service can be guaranteed by preventing response delay time that may occur as the waiting time increases.

이후, 호스트는 큐에 저장된 읽기 요청의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환한 후(단계 405), 변환된 가상 페이지 번호에 기초하여 각각의 가상 페이지 번호에 대응되는 칩 아이디(chip ID)를 획득한다(단계 407). 여기서, 호스트는 변환된 각각의 가상 페이지 번호를 동시에 접근 가능한 페이지의 집합인 수퍼페이지를 구성하는 페이지 수로 나눈 나머지에 기초하여 칩 아이디를 획득할 수 있다.Thereafter, the host converts the logical page number of the read request stored in the queue into the virtual page number by referring to the mapping table (step 405), and then, based on the converted virtual page number, the chip ID corresponding to each virtual page number ( chip ID) (step 407). Here, the host may obtain the chip ID based on the remainder obtained by dividing each converted virtual page number by the number of pages constituting the superpage, which is a set of simultaneously accessible pages.

본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법에서는 쓰기 요청을 수행할 때 항상 수퍼페이지 단위로 처리하기 때문에 가상 페이지 번호를 수퍼페이지의 페이지수로 나눈 나머지가 각 가상 페이지 번호에 대응되는 칩의 아이디(즉, 각 가상 페이지 번호에 대응되는 물리 주소가 존재하는 칩의 아이디)가 된다.In the data access method of the nonvolatile memory device according to an embodiment of the present invention, when a write request is always processed in units of superpages, the remainder of dividing the virtual page number by the number of pages of the superpage corresponds to each virtual page number. It becomes the ID of the chip (that is, the ID of the chip in which the physical address corresponding to each virtual page number exists).

상술한 바와 같이 각 가상 페이지 번호에 대응되는 칩 아이디를 획득한 후, 호스트는 서로 다른 칩 아이디를 가지는 가상 페이지 번호로 수퍼페이지를 구성하고(단계 409), 구성된 수퍼페이지에 상응하는 읽기 요청을 비휘발성 메모리 장치에 제공한다(단계 411).
After acquiring a chip ID corresponding to each virtual page number as described above, the host configures the superpage with the virtual page numbers having different chip IDs (step 409), and deactivates a read request corresponding to the configured superpage. Provided to the volatile memory device (step 411).

도 10은 도 9에 도시된 비휘발성 메모리 장치의 읽기 동작 과정의 예를 나타내는 개념도이다.FIG. 10 is a conceptual diagram illustrating an example of a read operation process of the nonvolatile memory device illustrated in FIG. 9.

도 10을 참조하면, 호스트의 파일 시스템으로부터 Read(32,3), Read(0,1), Read(16,2), Read(9,1) 및 Read(4,3)의 읽기 요청이 제공되면, 호스트는 제공된 읽기 요청들을 큐에 저장한 후, 매핑 테이블을 참조하여 각 읽기 요청의 논리 페이지 번호를 가상 페이지 번호로 변환한다. Referring to Figure 10, a read request of Read (32,3), Read (0,1), Read (16,2), Read (9,1) and Read (4,3) is provided from the host's file system. When the host stores the read requests, the host converts the logical page number of each read request into a virtual page number by referring to a mapping table.

이후, 호스트는 변환된 가상 페이지 번호를 수퍼페이지의 크기(즉, 수퍼페이지를 구성하는 페이지 수)로 나눈 나머지를 칩 아이디로 획득하고, 칩 아이디가 서로 다른 가상 페이지 번호들로 수퍼페이지를 구성한 후, 구성된 수퍼페이지에 상응하는 읽기 요청을 비휘발성 메모리 장치(SSD)에 제공한다.After that, the host obtains the remainder obtained by dividing the converted virtual page number by the size of the superpage (that is, the number of pages constituting the superpage) as the chip ID, and configures the superpage with virtual page numbers having different chip IDs. In addition, the read request corresponding to the configured superpage is provided to the nonvolatile memory device (SSD).

도 9 및 도 10에 도시된 바와 같이 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 읽기 동작에서는 제공된 읽기 요청을 칩 아이디가 서로 다른 읽기 요청을 포함하는 수퍼페이지로 재구성하여 비휘발성 메모리 장치에 제공함으로써 비휘발성 메모리 장치의 각 메모리 칩에 병렬적으로 동시에 접근할 수 있게 한다.
As shown in FIGS. 9 and 10, in a read operation of a nonvolatile memory device according to an embodiment of the present invention, a read request is reconfigured into a superpage including read requests having different chip IDs. By providing parallel access to each memory chip in a nonvolatile memory device.

도 11은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법 중 가비지 수집 과정을 나타내는 흐름도이다.11 is a flowchart illustrating a garbage collection process in a data access method of a nonvolatile memory device according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 데이터 접근 방법에서는 쓰기 요청의 수행시 가상 수퍼페이지 단위로 처리하기 때문에 데이터의 갱신이 많을 경우 무효화된 가상 페이지 번호는 증가하고 사용 가능한 가상 수퍼페이지 번호는 부족한 상황이 초래될 수 있다. 이와 같은 경우 사용 가능한 가상 수퍼페이지를 늘리기 위해 무효화된 가상 페이지 번호에 대한 가비지 수집(Garbage Collection)을 수행한다.In the data access method of the nonvolatile memory device according to an embodiment of the present invention, the virtual page number that is invalidated increases and the available virtual superpage number increases when data is frequently updated because the data access method is performed in units of virtual superpages when a write request is performed. Inadequate situations can result. In this case, garbage collection is performed on the invalid virtual page number to increase the available virtual superpage.

구체적으로, 호스트는 가용 수퍼페이지 목록(free list)을 확인하고(단계 501), 가용 수퍼페이지 목록에 포함된 가상 수퍼페이지 번호(VSPN)의 수가 미리 설정된 임계값보다 작은 경우(단계 503), 가비지 수집 목록(GC list)을 참조하여 유효한 가상 페이지 번호의 수가 가장 적은 가상 수퍼페이지를 희생 수퍼페이지(victim superpage)로 선택한다(단계 505). 단계 505에서 유효한 가상 페이지 번호가 가장 적은 가상 수퍼페이지를 선택하는 이유는 추가적인 읽기 요청을 최소로 발생시키기 위함이다.Specifically, the host checks the free list of available superpages (step 501), and if the number of virtual superpage numbers (VSPNs) included in the available superpage list is less than the preset threshold (step 503), garbage The virtual superpage having the smallest number of valid virtual page numbers is selected as a victim superpage by referring to a GC list (step 505). The reason for selecting the virtual superpage having the smallest valid virtual page number in step 505 is to minimize the additional read request.

이후, 호스트는 단계 505에서 선택된 희생 수퍼페이지에 포함된 유효 페이지 대해 읽기를 수행하여 큐에 저장한다(단계 507). 여기서, 상기 유효 페이지가 호스트의 메인 메모리(또는 버퍼)에 저장된 경우에는 상기 메인 메모리로부터 유효 페이지를 읽어올 수 있다.Thereafter, the host reads the valid pages included in the victim superpage selected in step 505 and stores them in the queue (step 507). Here, when the valid page is stored in the main memory (or buffer) of the host, the valid page may be read from the main memory.

이후, 호스트는 큐에 저장된 유효 페이지들을 수퍼페이지 단위로 저장하기 위한 쓰기 요청을 생성한다(단계 509). 여기서, 호스트는 상술한 바와 같이 수퍼페이지 크기(예를 들면, 8 페이지)로 큐에 저장된 유효 페이지들을 조합하여 쓰기 명령을 생성할 수 있다.Thereafter, the host generates a write request for storing valid pages stored in the queue in units of superpages (step 509). As described above, the host may generate a write command by combining valid pages stored in a queue with a super page size (for example, eight pages).

상술한 바와 같이 쓰기 요청을 생성한 후, 호스트는 가용 수퍼페이지 목록(free list)에서 사용가능한 새로운 가상 수퍼페이지 번호를 할당하고(단계 511), 매핑 테이블에서 기존의 가상 페이지 번호를 갱신된 새로운 가상 페이지 번호로 변경한다(단계 513). 그리고 이와 동시에 호스트는 가비지 수집 목록(GC list) 및 가용 수퍼페이지 목록(free list)을 갱신한다(단계 515).After generating a write request as described above, the host allocates a new virtual superpage number available in the free list of available superpages (step 511) and updates the existing virtual page number in the mapping table with the new virtual. Change to the page number (step 513). At the same time, the host updates the garbage collection list (GC list) and the free superpage list (free list) (step 515).

이후, 호스트는 수퍼페이지 단위의 크기를 가지는 쓰기 요청 및 무효화된 기존의 가상 페이지 번호 정보를 비휘발성 메모리 장치에 제공한다(단계 517).
Thereafter, the host provides the nonvolatile memory device with the write request having the size of a super page unit and the existing virtual page number information invalidated (step 517).

도 12 내지 도 14는 도 11에 도시한 가비지 수집 과정의 일 예를 나타내는 개념도로서, 가용 수퍼페이지 목록이 하나인 경우 가비지 수집을 수행하는 경우를 예를 들어 도시하였다.12 to 14 are conceptual diagrams illustrating an example of a garbage collection process illustrated in FIG. 11, and illustrates an example of garbage collection when there is one list of available superpages.

이하, 도 12 내지 도 14를 참조하여 도 11에 도시한 가비지 수집 과정을 보다 구체적으로 설명한다.Hereinafter, the garbage collection process illustrated in FIG. 11 will be described in more detail with reference to FIGS. 12 to 14.

먼저, 도 12에 도시한 바와 같이 가용 수퍼페이지 목록(free list)에 쓰기 요청에 할당할 가상 수퍼페이지가 하나밖에 남지 않은 경우(즉, VSPN=3), 호스트는 무효 페이지들에 대한 가비지 수집을 수행하여 사용 가능한 가상 수퍼페이지를 확보한다.First, as shown in FIG. 12, when there is only one virtual superpage to be allocated to a write request in the free list, the host stops garbage collection for invalid pages. To get the available virtual superpages.

구체적으로, 호스트는 가비지 수집 목록(GC list)을 참조하여 유효한 가상 페이지 번호가 가장 적은 가상 수퍼페이지를 희생 수퍼페이지(victim superpage)로 선택한다. 예를 들어, 도 12에서 가상 수퍼페이지 번호 0은 유효한 가상 페이지 번호가 5, 6 및 7 이고, 가상 수퍼페이지 번호 1은 유효한 가상 페이지 번호가 8, 10, 12, 14 및 15이고, 가상 수퍼페이지 번호 2는 유효한 가상 페이지 번호가 16 내지 23이기 때문에, 호스트는 유효한 가상 페이지 번호의 수가 가장 적은 가상 수퍼페이지 번호 0 및 1을 희생 수퍼페이지로 선택한다.Specifically, the host selects a virtual superpage having the smallest valid virtual page number as a victim superpage by referring to a garbage collection list (GC list). For example, in FIG. 12, the virtual superpage number 0 has valid virtual page numbers 5, 6, and 7, and the virtual superpage number 1 has valid virtual page numbers 8, 10, 12, 14, and 15, and the virtual superpage. Since the number 2 is a valid virtual page number 16 to 23, the host selects the virtual super page numbers 0 and 1 having the smallest number of valid virtual page numbers as victim superpages.

이후, 호스트는 도 13에 도시한 바와 같이 희생 수퍼페이지(0 및 1)로 선택된 가상 수퍼페이지에 포함된 유효 페이지들(즉, 5, 6, 7, 8, 10, 12, 14 및 15)을 읽기 위한 요청 Read(5,3), Read(8,1), Read(10,1), Read(12,1) 및 Read(14,2)을 생성하여 유효 페이지를 독출하여 큐에 저장한다. 여기서, 상기 읽기 요청은 비휘발성 메모리 장치의 실질적인 물리 주소에서 수행되어야 하기 때문에 가상 페이지 번호를 대상으로 생성된다.Thereafter, the host selects valid pages (ie, 5, 6, 7, 8, 10, 12, 14, and 15) included in the virtual superpage selected as the sacrificial superpages 0 and 1, as shown in FIG. Requests for reading Read (5,3), Read (8,1), Read (10,1), Read (12,1) and Read (14,2) are generated to read valid pages and store them in the queue. Here, the read request is generated for the virtual page number because the read request should be performed at the actual physical address of the nonvolatile memory device.

그리고, 호스트는 도 14에 도시한 바와 같이 큐에 저장된 유효 페이지들에 대한 쓰기 요청 Write(5,3), Write(8,1), Write(10,1), Write(12,1) 및 Write(14,2)을 생성한다. 여기서 상기 쓰기 요청은 가상 페이지 번호를 대상으로 생성된다.In addition, as shown in FIG. 14, the host write requests for valid pages stored in the queue, Write (5,3), Write (8,1), Write (10,1), Write (12,1), and Write. Produces (14,2). Here, the write request is generated for the virtual page number.

이후, 호스트는 상기와 같이 생성된 쓰기 요청을 수퍼페이지 단위로 처리하기 위해 먼저, 새로운 가상 수퍼페이지 번호를 할당(즉, VSPN=3)하고, 매핑 테이블에서 상기 쓰기 명령에 해당하는 기존의 가상 페이지 번호를 새로운 가상 페이지 번호로 변경한다. 그리고, 이와 동시에 가비지 수집 목록(GC list)에 포함된 무효 페이지 번호를 삭제함으로써 가비지 수집 목록을 갱신하고, 가용 수퍼페이지 목록(free list)에 새로 확보된 가상 수퍼페이지 번호를 기록함으로써 가용 수퍼 페이지 목록을 갱신한다. Thereafter, the host first allocates a new virtual superpage number (ie, VSPN = 3) in order to process the write request generated as described above in units of superpages, and sets an existing virtual page corresponding to the write command in the mapping table. Change the number to the new virtual page number. At the same time, the garbage collection list is updated by deleting invalid page numbers included in the garbage collection list, and the newly acquired virtual super page number is recorded in the free list. Update the.

상술한 바와 같이 가상 수퍼페이지가 구성된 후, 호스트는 수퍼페이지 크기의 쓰기 요청 Write(24,8) 및 가비지 수집 과정을 통해 무효화된 가상 페이지 번호 정보 Trim(5), Trim(6), Trim(7), Trim(8), Trim(10), Trim(12), Trim(14) 및Trim(15)를 비휘발성 메모리 장치에 제공한다.
After the virtual superpage is configured as described above, the host invalidates the virtual page number information Trim (5), Trim (6), and Trim (7) through the write request Write (24,8) and garbage collection process of the superpage size. ), Trim (8), Trim (10), Trim (12), Trim (14), and Trim (15) are provided to the nonvolatile memory device.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the embodiments above, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the invention as set forth in the claims below. Could be.

100 : 호스트 200 : 비휘발성 메모리 장치100: host 200: nonvolatile memory device

Claims (13)

제공된 쓰기 요청 페이지의 크기가 동시에 접근 가능한 페이지들의 집합인 수퍼페이지의 크기보다 적은 경우 상기 제공된 쓰기 요청을 임시 저장하는 단계;
임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 단계;
상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계; 및
생성된 상기 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하는 단계를 포함하는 비휘발성 메모리 장치의 데이터 접근 방법.
Temporarily storing the provided write request when the size of the provided write request page is smaller than the size of the superpage which is a set of simultaneously accessible pages;
Collecting at least one temporarily stored write request page and configuring the size of the superpage;
Generating a write request in units of superpages by mapping logical page numbers of write request pages configured in the size of the superpage into consecutive virtual page numbers; And
And providing the generated write request in units of superpages to a nonvolatile memory device.
제1항에 있어서, 상기 임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 단계는,
호스트의 파일 시스템으로부터 제공된 쓰기 요청 단위, 쓰기 요청이 생성된 프로세스 및 쓰기 요청을 통해 접근하는 파일의 동일성 여부 중 적어도 하나를 고려하여 임시 저장된 쓰기 요청 페이지들 중에서 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 1, wherein collecting the temporarily stored at least one write request page and configuring the size of the super page comprises:
Collecting at least one write request page among the temporarily stored write request pages by considering at least one of a write request unit provided from a host file system, a process in which a write request is generated, and whether a file accessed through the write request is identical A data access method of a nonvolatile memory device, characterized in that the page size.
제1항에 있어서, 상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계는,
상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들을 위한 새로운 가상 수퍼페이지를 할당하는 단계;
상기 쓰기 요청 페이지들의 논리 페이지 번호를 가상 페이지 번호로 매핑하여 상기 가상 수퍼페이지를 구성하는 단계; 및
상기 논리 페이지 번호 및 상기 가상 페이지 번호가 매핑된 매핑 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 1, wherein the mapping of the logical page numbers of the write request pages configured with the size of the superpage into consecutive virtual page numbers to generate a write request in units of superpages includes:
Allocating a new virtual superpage for write request pages configured with the size of the superpage;
Configuring the virtual super page by mapping logical page numbers of the write request pages to virtual page numbers; And
And updating the mapping table to which the logical page number and the virtual page number are mapped.
제3항에 있어서, 상기 비휘발성 메모리 장치의 데이터 접근 방법은,
동일한 논리 페이지 번호에 대해 갱신이 발생한 경우, 상기 매핑 테이블에서 갱신이 발생한 논리 페이지 번호에 매핑된 기존의 가상 페이지 번호를 새로운 가상 페이지 번호로 변경하는 단계; 및
가비지 수집 목록을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The data access method of claim 3, wherein the data access method of the nonvolatile memory device comprises:
If an update occurs for the same logical page number, changing an existing virtual page number mapped to the logical page number where the update occurred in the mapping table to a new virtual page number; And
And updating the garbage collection list.
제1항에 있어서, 상기 생성된 상기 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하는 단계는,
동일한 논리 페이지 번호에 대해 갱신이 발생한 경우, 상기 수퍼페이지 단위의 쓰기 요청 및 무효화된 기존의 가상 페이지 번호 정보를 상기 비휘발성 메모리 장치에 제공하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 1, wherein the providing of the generated super page write request to a nonvolatile memory device comprises:
And if an update occurs for the same logical page number, providing the write request and invalidated existing virtual page number information of the super page unit to the nonvolatile memory device.
제1항에 있어서, 상기 비휘발성 메모리 장치의 데이터 접근 방법은,
상기 제공된 쓰기 요청 페이지의 크기가 상기 수퍼페이지 이상인 경우에는 상기 제공된 쓰기 요청 페이지를 상기 수퍼페이지 크기로 나눈 나머지를 산출하는 단계; 및
상기 쓰기 요청 페이지를 상기 수퍼페이지 크기로 나눈 나머지가 존재하는 경우에는 상기 나머지를 임시 저장하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The data access method of claim 1, wherein the data access method of the nonvolatile memory device comprises:
Calculating a remainder obtained by dividing the provided write request page by the superpage size when the size of the provided write request page is greater than or equal to the superpage; And
And when the remainder obtained by dividing the write request page by the superpage size, temporarily storing the remainder.
제공된 읽기 요청을 임시 저장하는 단계;
임시 저장된 읽기 요청 페이지들의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환하는 단계;
변환된 가상 페이지 번호에 기초하여 임시 저장된 적어도 하나의 읽기 요청 페이지들 중 서로 다른 비휘발성 메모리 칩에 접근하는 읽기 요청 페이지들을 모아서 읽기 요청을 재구성하는 단계; 및
재구성한 읽기 요청을 비휘발성 메모리 장치에 제공하는 단계를 포함하는 비휘발성 메모리 장치의 데이터 접근 방법.
Temporarily storing the provided read request;
Converting logical page numbers of temporarily stored read request pages into virtual page numbers by referring to a mapping table;
Reconstructing a read request by collecting read request pages that access different nonvolatile memory chips among at least one read request page temporarily stored based on the converted virtual page number; And
Providing a reconstructed read request to the nonvolatile memory device.
제7항에 있어서, 상기 임시 저장된 읽기 요청 페이지들의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환하는 단계는,
임시 저장된 읽기 요청의 제한 시간을 설정하는 단계; 및
상기 제한 시간 이내에 상기 임시 저장된 읽기 요청 페이지들의 논리 페이지 번호를 매핑 테이블을 참조하여 가상 페이지 번호로 변환하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 7, wherein converting the logical page numbers of the temporarily stored read request pages into virtual page numbers by referring to a mapping table,
Setting a time limit for a temporarily stored read request; And
And converting the logical page numbers of the temporarily stored read request pages into virtual page numbers with reference to a mapping table within the time limit.
제7항에 있어서, 상기 읽기 요청을 재구성하는 단계는,
상기 변환된 가상 페이지 번호를 동시에 접근 가능한 페이지의 집합인 수퍼페이지를 구성하는 페이지 수로 나눈 나머지를 획득하는 단계;
획득한 나머지가 서로 다른 가상 페이지 번호들로 읽기 요청을 재구성하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 7, wherein reconstructing the read request,
Obtaining a remainder obtained by dividing the converted virtual page number by the number of pages forming a superpage, which is a set of simultaneously accessible pages;
And reconstructing the read request with different virtual page numbers obtained from the obtained remainders.
가용 수퍼페이지 목록에서 사용 가능한 수퍼페이지 수가 미리 설정된 임계값 미만인 경우 유효 페이지가 가장 작은 수퍼페이지를 희생 수퍼페이지로 선택하는 단계;
상기 희생 수퍼페이지에 포함된 적어도 하나의 유효 페이지를 독출하여 임시 저장하는 단계;
임시 저장된 상기 적어도 하나의 유효 페이지 각각의 기존의 가상 페이지 번호를 새로운 연속적인 가상 페이지 번호로 변경하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계; 및
생성된 수퍼페이지 단위의 쓰기 요청 및 무효화된 상기 기존의 가상 페이지 번호 정보를 비휘발성 메모리 장치에 제공하는 단계를 포함하는 비휘발성 메모리 장치의 데이터 접근 방법.
Selecting a superpage having the smallest valid page as a victim superpage when the number of available superpages in the available superpage list is less than a preset threshold;
Reading and temporarily storing at least one valid page included in the victim super page;
Generating a write request in units of a super page by changing an existing virtual page number of each of the at least one valid page temporarily stored into a new consecutive virtual page number; And
And providing the generated virtual page number information and the invalidated virtual page number information to the nonvolatile memory device.
제10항에 있어서, 상기 가용 수퍼페이지 목록에서 사용 가능한 수퍼페이지 수가 미리 설정된 임계값 미만인 경우 유효 페이지가 가장 작은 수퍼페이지를 희생 수퍼페이지로 선택하는 단계는
무효 페이지 목록이 저장된 가비지 수집 목록에 기초하여 상기 유효 페이지가 가장 작은 수퍼페이지를 희생 수퍼페이지로 선택하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 10, wherein when the number of available superpages in the available superpage list is less than a preset threshold, selecting a superpage having the smallest valid page as a victim superpage
And selecting a superpage having the smallest valid page as a victim superpage based on a garbage collection list in which an invalid page list is stored.
제11항에 있어서, 상기 임시 저장된 상기 적어도 하나의 유효 페이지 각각의 기존의 가상 페이지 번호를 새로운 연속적인 가상 페이지 번호로 변경하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계는,
임시 저장된 상기 적어도 하나의 유효 페이지 각각의 기존의 가상 페이지 번호를 새로운 연속적인 가상 페이지 번호로 변경한 후, 상기 가비지 수집 목록 및 상기 가용 수퍼페이지 목록을 갱신하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 접근 방법.
The method of claim 11, wherein the step of generating a write request in units of superpages by changing an existing virtual page number of each of the temporarily stored at least one valid page into a new consecutive virtual page number,
Changing the existing virtual page number of each of the at least one valid page stored temporarily to a new consecutive virtual page number, and then updating the garbage collection list and the available superpage list. Data access method of memory device.
비휘발성 메모리 장치의 데이터 접근을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
제공된 쓰기 요청 페이지의 크기가 동시에 접근 가능한 페이지들의 집합인 수퍼페이지의 크기보다 적은 경우 상기 제공된 쓰기 요청을 임시 저장하는 단계;
임시 저장된 적어도 하나의 쓰기 요청 페이지를 모아서 상기 수퍼페이지의 크기로 구성하는 단계;
상기 수퍼페이지의 크기로 구성된 쓰기 요청 페이지들의 논리 페이지 번호를 연속적인 가상 페이지 번호로 매핑하여 수퍼페이지 단위의 쓰기 요청을 생성하는 단계; 및
생성된 상기 수퍼페이지 단위의 쓰기 요청을 비휘발성 메모리 장치에 제공하는 단계를 수행하는 프로그램을 기록한 기록매체.
In the recording medium in which a program of instructions that can be executed by a digital processing device that performs data access of a nonvolatile memory device is tangibly implemented, and records a program that can be read by the digital processing device,
Temporarily storing the provided write request when the size of the provided write request page is smaller than the size of the superpage which is a set of simultaneously accessible pages;
Collecting at least one temporarily stored write request page and configuring the size of the superpage;
Generating a write request in units of superpages by mapping logical page numbers of write request pages configured in the size of the superpage into consecutive virtual page numbers; And
And a program for providing the generated write request in units of superpages to a nonvolatile memory device.
KR1020100022326A 2010-03-12 2010-03-12 Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same KR101117390B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100022326A KR101117390B1 (en) 2010-03-12 2010-03-12 Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100022326A KR101117390B1 (en) 2010-03-12 2010-03-12 Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same

Publications (2)

Publication Number Publication Date
KR20110103142A true KR20110103142A (en) 2011-09-20
KR101117390B1 KR101117390B1 (en) 2012-03-07

Family

ID=44954477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100022326A KR101117390B1 (en) 2010-03-12 2010-03-12 Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same

Country Status (1)

Country Link
KR (1) KR101117390B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445014B2 (en) 2016-09-20 2019-10-15 Samsung Electronics Co., Ltd. Methods of operating a computing system including a host processing data of first size and a storage device processing data of second size and including a memory controller and a non-volatile memory
US11100997B2 (en) 2019-04-30 2021-08-24 SK Hynix Inc. Storage device, controller and method for operating controller for configuring super pages using program timing information

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230090468A (en) 2021-12-15 2023-06-22 한양대학교 에리카산학협력단 LightNVM data storage method and device for improving read performance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445014B2 (en) 2016-09-20 2019-10-15 Samsung Electronics Co., Ltd. Methods of operating a computing system including a host processing data of first size and a storage device processing data of second size and including a memory controller and a non-volatile memory
US11100997B2 (en) 2019-04-30 2021-08-24 SK Hynix Inc. Storage device, controller and method for operating controller for configuring super pages using program timing information

Also Published As

Publication number Publication date
KR101117390B1 (en) 2012-03-07

Similar Documents

Publication Publication Date Title
CN109085997B (en) Memory efficient persistent key value storage for non-volatile memory
KR102042643B1 (en) Managing multiple namespaces in a non-volatile memory (nvm)
US10761731B2 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
JP6890401B2 (en) Multiple mode storage management device, multiple mode storage device, and its selection latent exposure (SUE) mapping operation method
US20100023676A1 (en) Solid state storage system for data merging and method of controlling the same according to both in-place method and out-of-place method
US10203876B2 (en) Storage medium apparatus, method, and program for storing non-contiguous regions
US10037277B2 (en) Multi-tiered caching for data storage management in a device
US11199974B2 (en) Allocation of memory regions of a nonvolatile semiconductor memory for stream-based data writing
WO2013097618A1 (en) Storage virtualization device, storage system and data storage method and system
US20110153972A1 (en) Free space defragmention in extent based file system
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
KR101374065B1 (en) Data Distinguish Method and Apparatus Using Algorithm for Chip-Level-Parallel Flash Memory
US8954658B1 (en) Method of LUN management in a solid state disk array
KR20140099737A (en) Zone-based defragmentation method and user device using the same
US11093134B2 (en) Storage device, management method, and program in tiered storage system
JP6139711B2 (en) Information processing device
US10049042B2 (en) Storage device, semiconductor memory device, and method for controlling same
JP5962140B2 (en) Program, control method, control apparatus and system
KR100988388B1 (en) Method for improving performance of flash memory device and flash memory device performing the same
KR20090107098A (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
US8176103B2 (en) File access method and system
KR101117390B1 (en) Method for accessing data in non-volatile memory storage and recorded medium storing program for performing the same
KR20150127434A (en) Memory management apparatus and control method thereof
TW202314471A (en) Storage device and method of operating the same
CN114625318A (en) Data writing method, device and equipment applied to solid state disk

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150115

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160113

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee