[go: up one dir, main page]

KR20160080907A - Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method - Google Patents

Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method Download PDF

Info

Publication number
KR20160080907A
KR20160080907A KR1020140192697A KR20140192697A KR20160080907A KR 20160080907 A KR20160080907 A KR 20160080907A KR 1020140192697 A KR1020140192697 A KR 1020140192697A KR 20140192697 A KR20140192697 A KR 20140192697A KR 20160080907 A KR20160080907 A KR 20160080907A
Authority
KR
South Korea
Prior art keywords
page
flash memory
memory controller
logical
logical page
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020140192697A
Other languages
Korean (ko)
Other versions
KR101752304B1 (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 KR1020140192697A priority Critical patent/KR101752304B1/en
Publication of KR20160080907A publication Critical patent/KR20160080907A/en
Application granted granted Critical
Publication of KR101752304B1 publication Critical patent/KR101752304B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Abstract

복수의 플래시 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브 및 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법에 관한 것이다.
컨트롤러가 수행하는 압축 해제 방법은 플래시 메모리에 저장된 데이터와 관련된 페이지 정보를 수신하여 물리 페이지 중에서 리드 요청에 대상이 되는 논리 페이지를 구분하고, 구분된 논리 페이지를 디바이스 컨트롤러에 전달하는 방법을 제안한다.
To a decompression method performed by a flash memory controller and a solid state drive including a plurality of flash memory controllers.
The decompression method performed by the controller is to receive page information related to data stored in the flash memory, distinguish logical pages to be subjected to a read request among the physical pages, and transmit the separated logical pages to the device controller.

Description

복수의 플래시 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브 및 상기 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법{SOLID STATE DRIVE(SSD) INCLUDING FLASH MEMORY CONTROLLER OF MULTIPLE, AND THE FLASH MEMORY CONTROLLER FOR PERFROMING DECOMPRESSION METHOD}TECHNICAL FIELD [0001] The present invention relates to a solid state drive including a plurality of flash memory controllers, and a decompression method performed by the flash memory controller. More particularly, the present invention relates to a solid state drive including a plurality of flash memory controllers,

아래의 설명은 복수의 플래시 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브 및 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법에 관한 것으로 복수의 플래시 메모리 컨트롤러를 이용하여 논리 페이지의 압축 해제 기능을 수행하는 방법에 관한 것이다.The following description relates to a decompression method performed by a solid state drive including a plurality of flash memory controllers and a flash memory controller, and a method of performing a decompression function of a logical page using a plurality of flash memory controllers.

솔리드 스테이트 드라이브(SSD: Solid State Drives)는 일반적인 NAND 플래시 기반의 저장장치로써, 저장장치의 성능을 위해 다중 채널(multi channel) 구조를 갖는다. 이에 따라 솔리드 스테이트 드라이브는 읽기/쓰기가 동시에 여러 채널에서 이루어져 저장장치의 읽기/쓰기 성능이 향상된다.Solid state drives (SSD) are general NAND flash based storage devices, and have a multi-channel structure for the performance of a storage device. As a result, the solid state drive improves the read / write performance of the storage device by making the read / write on several channels at the same time.

또한, 최근에는 저장장치의 수명 및 성능 향상을 위해 저장장치에서 압축 알고리즘을 사용하는 압축기반의 솔리드 스테이트 드라이브가 지속적으로 주목받아 왔다. 다시 말해, 압축기반의 솔리드 스테이트 드라이브에서 압축(Compression) 및 압축해제(Decompression) 과정은 특정한 CPU 혹은 압축 H/W가 담당한다.In recent years, compression-based solid state drives using compression algorithms in storage devices have been attracting attention for improving the lifetime and performance of storage devices. In other words, in a compression-based solid state drive, compression and decompression processes are performed by a specific CPU or compressed H / W.

구체적으로 압축기반의 솔리드 스테이트 드라이브에서 읽기 요청은, 호스트로부터 순차적으로 도착하는 데이터를 압축하는 쓰기 요청과 달리, 다중 채널에서 동시에 요청된 데이터를 리드하여 압축 해제하는 과정을 거치므로, 단일 압축 하드웨어로 처리되는 압축해제 과정으로 인해 병목(bottleneck)현상이 발생하게 된다. 즉, 압축기반의 솔리드 스테이트 드라이브에서 읽기 요청은 동시에 여러 채널로부터 요청된 데이터의 페이지의 읽기가 완료되더라도, 압축 해제 과정은 동시에 처리되지 않기 때문에 성능이 감소하는 문제가 존재한다.Specifically, unlike a write request that compresses data arriving sequentially from a host, a read request in a compression-based solid state drive leads to simultaneous read and decompression of data requested in multiple channels, A bottleneck phenomenon occurs due to the decompression process being processed. That is, the read request in the compression-based solid state drive has a problem that the performance is reduced because the decompression process is not processed at the same time even if the page reading of the requested data from several channels is completed at the same time.

결국, 압축기반의 솔리드 스테이트 드라이브는 다중 채널을 통한 병렬화의 장점을 최대한으로 활용하지 못하고 읽기를 위한 압축 해제 단계에서 병목현상이 발생함으로써, 저장장치의 특징적인 구성으로의 읽기/쓰기 성능이 저하된다.As a result, a compression-based solid state drive can not utilize the advantages of parallelism through multiple channels to the maximum, and a bottleneck occurs at the decompression stage for reading, thereby degrading the read / write performance to the characteristic configuration of the storage device .

따라서, 다중 채널을 통한 병렬화의 장점을 최대한으로 활용하면서 병목현상을 해결하기 위한 방법이 필요하다.Therefore, there is a need for a method for solving the bottleneck phenomenon while maximizing the advantages of parallelism through multiple channels.

본 발명은 호스트로부터 요청되는 데이터와 관련된 리드 요청에 대응하여 각 채널에 연결된 플래시 메모리 컨트롤러를 통해 압축 해제하는 압축 해제 방법을 제공할 수 있다. The present invention can provide a decompression method for decompressing through a flash memory controller connected to each channel in response to a read request related to data requested from a host.

일실시예에 따른 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법은 디바이스 컨트롤러로부터 플래시 메모리에 저장된 데이터의 리드 요청에 대응하여 상기 데이터와 관련된 페이지 정보를 수신하는 단계; 상기 수신한 페이지 정보에 포함된 물리 페이지의 주소를 이용하여 상기 물리 페이지에 접근하는 단계; 상기 접근한 물리 페이지에서 상기 리드 요청에 대상이 되는 논리 페이지를 구분하는 단계; 및 상기 구분된 논리 페이지의 압축 여부를 고려하여 상기 논리 페이지를 상기 페이지 디바이스 컨트롤러에 전달하는 단계를 포함하고, 상기 플래시 메모리 컨트롤러는 복수의 채널들 각각에 대해 배치되어 있고, 상기 복수의 채널들 각각에 대해 플래시 메모리의 어레이가 할당될 수 있다.The decompression method performed by the flash memory controller according to an embodiment includes receiving page information related to the data in response to a read request of data stored in a flash memory from a device controller; Accessing the physical page using an address of a physical page included in the received page information; Identifying a logical page to be a target of the read request in the accessed physical page; And transferring the logical page to the page device controller in consideration of compression of the divided logical page, wherein the flash memory controller is arranged for each of a plurality of channels, and each of the plurality of channels An array of flash memories can be assigned to the flash memory.

일실시예에 따른 접근하는 단계는 상기 플래시 메모리 컨트롤러가 리드해야 되는 물리 페이지의 주소를 이용하여 압축된 데이터를 포함하는 물리 페이지에 접근할 수 있다.According to one embodiment, the accessing step may access the physical page including the compressed data using the address of the physical page to be read by the flash memory controller.

일실시예에 따른 압축된 데이터는 상기 플래시 메모리 컨트롤러에 내장된 압축 기능에 의해 압축되어 상기 물리 페이지에 저장될 수 있다.The compressed data according to an embodiment may be compressed by the compression function built in the flash memory controller and stored in the physical page.

일실시예에 따른 구분하는 단계는 상기 페이지 정보에 포함된 논리 페이지의 인덱스에 대응하여 상기 물리 페이지 중에서 상기 논리 페이지를 구분할 수 있다.The step of classifying according to an embodiment may distinguish the logical page from the physical page corresponding to the index of the logical page included in the page information.

일실시예에 따른 구분하는 단계는 상기 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그에 기초하여 논리 페이지의 압축 여부를 판단할 수 있다.According to an embodiment of the present invention, it is possible to determine whether the logical page is compressed based on a flag indicating whether or not the logical page included in the page information is compressed.

일실시예에 따른 전달하는 단계는 상기 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용해 압축된 논리 페이지를 압축 해제하고, 압축 해제된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다.According to one embodiment, when the divided page is compressed, the transferring step decompresses the compressed logical page using the decompression function built in the flash memory controller, and outputs the decompressed logical page to the read buffer of the device controller .

일실시예에 따른 전달하는 단계는 상기 구분된 페이지가 압축되지 않은 경우, 상기 구분된 논리 페이지를 페이지 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다.According to an exemplary embodiment, when the divided page is not compressed, the transmitting logical page may be transferred to the read buffer of the page device controller.

일실시예에 따른 디바이스 컨트롤러는 상기 플래시 메모리 컨트롤러 및 다른 플래시 메모리 컨트롤러로부터 수신한 압축 해제된 논리 페이지들을 조합하여 논리 페이지들이 조합된 데이터를 호스트에 전달할 수 있다.The device controller according to an exemplary embodiment may combine the decompressed logical pages received from the flash memory controller and another flash memory controller to transfer the combined data of the logical pages to the host.

일실시예에 따른 플래시 메모리 컨트롤러는 디바이스 컨트롤러로부터 플래시 메모리에 저장된 데이터의 리드 요청에 대응하여 상기 데이터와 관련된 페이지 정보를 수신하고, 상기 수신한 페이지 정보에 포함된 물리 페이지의 주소를 이용하여 상기 물리 페이지에 접근하며, 상기 접근한 물리 페이지에서 상기 리드 요청에 대상이 되는 논리 페이지를 구분하며, 상기 구분된 논리 페이지를 압축 해제하여 압축 해제된 논리 페이지를 상기 디바이스 컨트롤러에 전달할 수 있다.The flash memory controller according to an embodiment receives page information related to the data in response to a read request of data stored in the flash memory from the device controller, and uses the address of the physical page included in the received page information, Accesses the page, identifies the logical page to be subjected to the read request in the accessed physical page, decompresses the separated logical page, and delivers the decompressed logical page to the device controller.

일실시예에 따른 플래시 메모리 컨트롤러는 상기 디바이스 컨트롤러로부터 리드해야 되는 물리 페이지의 주소, 물리 페이지 중에서 리드 요청에 대상이 되는 논리 페이지의 인덱스 및 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그를 수신할 수 있다.The flash memory controller according to the embodiment receives the address of the physical page to be read from the device controller, the index of the logical page to be the target of the read request among the physical pages, and the flag indicating whether the logical page included in the page information is compressed can do.

일실시예에 따른 솔리드 스테이트 드라이브는 복수의 채널에 대응하는 복수의 플래시 메모리의 어레이들; 및 상기 복수의 플래시 메모리의 어레이들과 연결된 복수의 플래시 메모리 컨트롤러들을 포함하고, 상기 복수의 플래시 메모리 컨트롤러들 각각은, 플래시 메모리에 저장된 데이터의 리드 요청에 따라 물리 페이지 중에서 리드 요청에 대상이 되는 논리 페이지를 구분하고, 상기 구분된 논리 페이지의 압축 여부를 고려해 상기 논리 페이지를 상기 페이지 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다.According to one embodiment, a solid state drive includes a plurality of flash memory arrays corresponding to a plurality of channels; And a plurality of flash memory controllers connected to the plurality of flash memory arrays, wherein each of the plurality of flash memory controllers includes a plurality of flash memory controllers, And transfer the logical page to the read buffer of the page device controller in consideration of whether or not the separated logical page is compressed.

일실시예에 따른 복수의 플래시 메모리 컨트롤러들 각각은 상기 플래시 메모리 컨트롤러가 리드해야 되는 물리 페이지의 주소를 통해 압축된 데이터를 포함하는 물리 페이지에 접근하고, 상기 접근한 물리 페이지에서 리드 요청에 대상이 되는 논리 페이지의 인덱스를 이용해 상기 논리 페이지를 구분할 수 있다.Each of the plurality of flash memory controllers according to an embodiment accesses a physical page including compressed data through an address of a physical page to be read by the flash memory controller, The logical page can be distinguished by using the index of the logical page.

일실시예에 따른 복수의 플래시 메모리 컨트롤러들 각각은 상기 데이터와 관련된 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그에 기초하여 논리 페이지의 압축 해제 여부를 고려할 수 있다.Each of the plurality of flash memory controllers according to an embodiment may consider decompressing the logical page based on a flag indicating whether or not the logical page included in the page information related to the data is compressed.

일실시예에 따른 복수의 플래시 메모리 컨트롤러들 각각은 상기 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용하여 압축된 논리 페이지를 압축 해제할 수 있다.Each of the plurality of flash memory controllers according to an embodiment may decompress the compressed logical page using the decompression function embedded in the flash memory controller when the divided page is compressed.

본 발명의 일실시예에 따르면 플래시 메모리 컨트롤러의 압축 해제 방법은 리드 요청에 대응하여 각 채널에 연결된 플래시 메모리 컨트롤러를 통해 압축 해제함으로써, 하드웨어로 인한 병목 현상을 해결할 수 있다. According to an embodiment of the present invention, a decompression method of a flash memory controller can solve a bottleneck caused by hardware by decompressing a flash memory controller connected to each channel in response to a read request.

본 발명의 일실시예에 따르면 플래시 메모리 컨트롤러의 압축 해제 방법은 리드 요청에 대응하여 각 채널에 연결된 플래시 메모리 컨트롤러를 통해 압축 해제함으로써, 다중 채널을 통한 병렬화의 장점을 최대한 활용함에 따라 보다 저장장치의 성능을 향상시킬 수 있다.According to an embodiment of the present invention, a decompression method of a flash memory controller is decompressed through a flash memory controller connected to each channel in response to a read request, thereby maximizing the advantages of parallelization through multiple channels. Performance can be improved.

도 1은 일실시예에 따른 호스트 및 솔리드 스테이트 드라이브를 도시한 도면이다.
도 2는 일실시예에 따른 복수의 플래시 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브의 세부 구성을 도시한 도면이다.
도 3은 일실시예에 따른 플래시 메모리 컨트롤러의 동작을 설명하기 위해 도시한 도면이다.
도 4는 일실시예에 따른 플래시 메모리 컨트롤러의 구조를 설명하기 위해 도시한 도면이다.
도 5는 일실시예에 따른 플래시 메모리 컨트롤러의 동작에 기초하여 솔리드 스테이트 드라이브가 호스트로 리드 요청된 데이터를 전달하는 동작을 설명하기 위해 도시한 도면이다.
도 6은 일실시예에 따른 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법을 설명하기 위한 흐름도이다.
1 is a diagram illustrating a host and a solid state drive according to one embodiment.
2 is a detailed block diagram of a solid state drive including a plurality of flash memory controllers according to an exemplary embodiment of the present invention.
3 is a diagram illustrating an operation of a flash memory controller according to an embodiment.
4 is a diagram illustrating a structure of a flash memory controller according to an embodiment of the present invention.
5 is a diagram for explaining an operation of transferring data requested by a solid state drive to a host based on the operation of a flash memory controller according to an embodiment.
6 is a flowchart illustrating a decompression method performed by the flash memory controller according to an exemplary embodiment.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일실시예에 따른 호스트 및 솔리드 스테이트 드라이브를 도시한 도면이다.1 is a diagram illustrating a host and a solid state drive according to one embodiment.

도 1을 참고하면, 호스트(101)는 솔리드 스테이트 드라이브(102)의 플래시 메모리에 저장된 데이터를 리드하기 위한 리드 요청을 전달할 수 있다. 여기서, 호스트(101)는 어플리케이션 등의 프로그램이 수행되는 영역으로써, 솔리드 스테이트 드라이브(102)로부터 데이터를 리드할 수 있다. 일례로, 호스트(101)는 file system, operation system 등으로 프로그램과 관련된 파일을 관리하는 시스템을 의미할 수 있다.Referring to FIG. 1, the host 101 may transmit a read request to read data stored in the flash memory of the solid state drive 102. Here, the host 101 is an area where a program such as an application is executed, and can read data from the solid state drive 102. For example, the host 101 may refer to a system that manages files related to programs by a file system, an operation system, or the like.

그리고, 솔리드 스테이트 드라이브(102)는 호스트(101)로부터 전달된 리드 요청에 대응하는 데이터를 호스트(101)에 전달할 수 있다. 여기서, 솔리드 스테이트 드라이브(102)는 낸드 플래시 기반의 다중 채널 구조를 갖는 저장 장치일 수 있다. 일례로, 솔리드 스테이트 드라이브(102)는 낸드 플래시 등의 초고속 반도체 메모리를 저장 매체로 사용하는 대용량의 저장 장치를 의미할 수 있다.Then, the solid state drive 102 can transmit data corresponding to the read request transmitted from the host 101 to the host 101. [ Here, the solid state drive 102 may be a storage device having a multi-channel structure based on NAND flash. For example, the solid state drive 102 may refer to a large-capacity storage device using a high-speed semiconductor memory such as a NAND flash as a storage medium.

이때, 솔리드 스테이트 드라이브(102)는 호스트(101)로 데이터를 전달하기 위하여 디바이스 컨트롤러 (103) 및 플래시 메모리 컨트롤러(104)를 포함할 수 있다. 구체적으로, 디바이스 컨트롤러(103)는 플래시 메모리에 저장된 데이터에 대한 입출력을 관리할 수 있다. 일례로, 디바이스 컨트롤러 (103)는 논리 페이지와 물리 페이지 간의 페이지 매핑 동작을 수행하는 플래시 변환 계층(FTL: Flash Translation Layer)일 수 있다.At this time, the solid state drive 102 may include a device controller 103 and a flash memory controller 104 to transfer data to the host 101. Specifically, the device controller 103 can manage the input / output of data stored in the flash memory. For example, the device controller 103 may be a Flash Translation Layer (FTL) for performing a page mapping operation between a logical page and a physical page.

그리고, 디바이스 컨트롤러(103)는 호스트(101)로부터 전달된 리드 요청에 대응하여 호스트(101)가 리드하고자 하는 플래시 메모리에 저장된 데이터와 관련된 페이지 정보를 생성할 수 있다. 다시 말해, 디바이스 컨트롤러(103)는 호스트(101)로부터 리드 요청에 대응하여 리드하고자 하는 데이터와 관련된 논리 블록 주소(LBA: logical block address)를 수신할 수 있다. 논리 블록 주소는 요청된 데이터의 주소를 구분하기 위한 정보로써 논리 페이지 번호(LPN: logical page number)로 변환되며, 이는 페이지 맵핑 테이블(PMT: Page Mapping Table)을 참조하기 위한 정보일 수 있다.The device controller 103 may generate page information related to data stored in the flash memory that the host 101 wants to read in response to the read request transmitted from the host 101. [ In other words, the device controller 103 can receive a logical block address (LBA) related to data to be read in response to a read request from the host 101. [ The logical block address is information for identifying the address of the requested data and converted into a logical page number (LPN), which may be information for referring to a page mapping table (PMT).

그리고, 디바이스 컨트롤러(103)는 호스트(101)로부터 전달된 논리 블록 번호에 기초하여 페이지 맵핑 테이블을 통해 페이지 정보를 생성할 수 있다. 즉, 디바이스 컨트롤러(103)는 디바이스 컨트롤러(103)가 리드해야되는 물리 페이지의 주소, 논리 페이지의 인덱스 및 논리 페이지의 압축 여부를 나타내는 플래그를 포함하는 페이지 정보를 생성할 수 있다.The device controller 103 can generate page information based on the logical block number transmitted from the host 101 through the page mapping table. That is, the device controller 103 can generate page information including an address of a physical page to be read by the device controller 103, an index of the logical page, and a flag indicating whether or not the logical page is compressed.

디바이스 컨트롤러(103)는 생성된 페이지 정보를 플래시 메모리 컨트롤러(104)에 전달할 수 있다. 플래시 메모리 컨트롤러(104)는 복수의 채널들 각각에 대해 배치되어 있고, 상기 복수의 채널들 각각에 대해 플래시 메모리의 어레이가 할당될 수 있다. 플래시 메모리 컨트롤러(104)의 구조는 도 2를 통해 자세히 설명하도록 한다.The device controller 103 can transmit the generated page information to the flash memory controller 104. [ The flash memory controller 104 is disposed for each of a plurality of channels, and an array of flash memory may be allocated for each of the plurality of channels. The structure of the flash memory controller 104 will be described in detail with reference to FIG.

플래시 메모리 컨트롤러(104)는 디바이스 컨트롤러(103)로부터 수신한 물리 페이지의 주소를 이용하여 물리 페이지에 접근할 수 있다. 그리고, 플래시 메모리 컨트롤러(104)는 접근한 물리 페이지에서 리드 요청에 대상이 되는 논리 페이지를 구분할 수 있다. 플래시 메모리 컨트롤러(104)는 구분된 논리 페이지의 압축 여부를 고려하여 상기 논리 페이지를 상기 디바이스 컨트롤러에 전달할 수 있다.The flash memory controller 104 can access the physical page using the address of the physical page received from the device controller 103. [ Then, the flash memory controller 104 can identify the logical page to be the target of the read request in the accessed physical page. The flash memory controller 104 may transfer the logical page to the device controller in consideration of whether or not the logical page is compressed.

여기서, 플래시 메모리 컨트롤러(104)는 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용해 압축된 논리 페이지를 압축 해제한 후, 압축 해제된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다. 또한, 플래시 메모리 컨트롤러(104)는 구분된 페이지가 압축되지 않은 경우, 상기 구분된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다.Here, if the divided page is compressed, the flash memory controller 104 decompresses the compressed logical page using the decompression function built in the flash memory controller, and then outputs the decompressed logical page to the read buffer of the device controller . In addition, if the divided page is not compressed, the flash memory controller 104 can transfer the separated logical page to the read buffer of the device controller.

이후, 디바이스 컨트롤러(103)는 플래시 메모리 컨트롤러 및 다른 플래시 메모리 컨트롤러로부터 수신한 압축 해제된 논리 페이지들을 조합할 수 있다. 그리고, 솔리드 스테이트 드라이브(102)는 디바이스 컨트롤러(103)에서 조합된 논리 페이지들의 데이터를 호스트에 전달할 수 있다.The device controller 103 may then combine the decompressed logical pages received from the flash memory controller and another flash memory controller. Then, the solid state drive 102 can transfer the data of the logical pages combined in the device controller 103 to the host.

솔리드 스테이트 드라이브(102)는 복수의 채널들 각각에 배치된 플래시 메모리 컨트롤러(104)를 이용함으로써, 리드 요청에 따른 데이터를 처리함에 따라 데이터를 리드하기 위한 속도를 향상시킬 수 있다. 또한, 솔리드 스테이트 드라이브(102)는 복수의 채널들에 대한 리드 요청에 대한 논리 페이지의 압축 해제에 있어, 복수의 채널들 각각에 배치된 플래시 메모리 컨트롤러(104)를 이용함에 따라 압축 해제와 관련된 병목 현상의 문제점을 해결할 수 있다.By using the flash memory controller 104 disposed in each of the plurality of channels, the solid state drive 102 can improve the speed for reading data as it processes data in response to a read request. In addition, the solid state drive 102 may use the flash memory controller 104 disposed in each of the plurality of channels to decompress a logical page for a read request for a plurality of channels, The problem of the phenomenon can be solved.

도 2는 일실시예에 따른 복수의 플래시 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브의 세부 구성을 도시한 도면이다.2 is a detailed block diagram of a solid state drive including a plurality of flash memory controllers according to an exemplary embodiment of the present invention.

도 2를 참고하면, 솔리드 스테이트 드라이브(201)는 디바이스 컨트롤러(202) 및 플래시 메모리 컨트롤러(203)를 포함할 수 있다.2, the solid state drive 201 may include a device controller 202 and a flash memory controller 203.

디바이스 컨트롤러(202)는 호스트로부터 요청된 데이터에 대한 리드 요청에 대응하여 플래시 메모리 컨트롤러(203)에 전달하기 위한 페이지 정보를 생성할 수 있다. 여기서, 페이지 정보는 플래시 메모리 컨트롤러(203)로 하여금 리드 요청에 대상이 되는 논리 페이지를 보다 편리하게 식별하기 위한 정보를 제공할 수 있다. 그리고, 디바이스 컨트롤러(202)는 생성된 페이지 정보를 플래시 메모리 컨트롤러(203)에 전달할 수 있다.The device controller 202 may generate page information for transfer to the flash memory controller 203 in response to a read request for data requested from the host. Here, the page information can provide the flash memory controller 203 with information for more easily identifying the logical page to be subjected to the read request. Then, the device controller 202 can transmit the generated page information to the flash memory controller 203. [

여기서, 디바이스 컨트롤러(202)는 호스트로부터 리드 요청된 데이터가 저장된 물리 페이지의 위치를 기반으로 하나의 플래시 메모리 컨트롤러 또는 복수의 플래시 메모리 컨트롤러에 페이지 정보를 전달할 수 있다.Here, the device controller 202 can transfer page information to one flash memory controller or a plurality of flash memory controllers based on the position of a physical page where data requested to be read from the host is stored.

구체적으로, 호스트로부터 요청된 데이터는 데이터의 크기 또는 형태 등에 따라 복수의 물리 페이지에 나뉘어 저장이 될 수 있다. 다시 말해, 호스트로부터 요청된 데이터는 데이터를 저장하기 위하여 복수의 물리 테이블이 할당되어 있을 수 있다. 일례로, 호스트로부터 요청된 논리 블록 어드레스 "0~64"는 논리 페이지 번호 “0~8”로 변환되며 변환된 논리 페이지 번호 “1~8”의 데이터를 저장하기 위하여 물리 페이지 번호 "1", "512", "1024", "2048" 가 할당될 수 있으며, 할당된 물리 페이지 번호에 대응하여 논리 페이지 번호에 해당하는 압축된 데이터 혹은 압축되지 않은 데이터가 한 개 혹은 여러 개가 저장될 수 있다.Specifically, the data requested from the host can be divided and stored in a plurality of physical pages according to the size or type of data. In other words, the data requested from the host may be allocated a plurality of physical tables to store data. For example, the logical block addresses "0 to 64" requested from the host are converted into logical page numbers " 0 to 8 ", and the physical page numbers "1 & "512", "1024", and "2048" may be allocated. One or more compressed data or uncompressed data corresponding to the logical page number may be stored corresponding to the assigned physical page number.

그리고, 호스트로부터 리드 요청된 데이터는 상술된 데이터 저장 방법에 따라 복수의 물리 페이지에 분할되어 저장될 수 있다. 따라서, 호스트는 복수의 채널에 저장된 데이터에 대한 리드 요청을 솔리드 스테이트 드라이브(201)에 전달할 수 있다.The data requested to be read from the host may be divided and stored in a plurality of physical pages according to the above-described data storage method. Thus, the host can communicate a read request for data stored in a plurality of channels to the solid state drive 201. [

이에 대응하여, 솔리드 스테이트 드라이브(201)의 디바이스 컨트롤러(202)는 페이지 맵핑 테이블을 이용하여 리드 요청된 데이터가 저장된 복수의 물리 페이지를 식별할 수 있으며, 식별된 각각의 물리 페이지에 대응하는 페이지 정보를 생성할 수 있다. 그리고, 디바이스 컨트롤러(202)는 식별된 물리 페이지를 포함하는 채널에 해당하는 페이지 정보를 상기 채널과 연결된 플래시 메모리 컨트롤러에 전달할 수 있다.In response to this, the device controller 202 of the solid state drive 201 can identify a plurality of physical pages in which read requested data is stored by using the page mapping table, and the page information corresponding to each identified physical page Lt; / RTI > The device controller 202 may transmit page information corresponding to the channel including the identified physical page to the flash memory controller connected to the channel.

이후, 각각의 채널에 연결된 플래시 메모리 컨트롤러(203)는 전달된 페이지 정보를 기반으로 물리 페이지에서 리드 요청에 대상이 되는 논리 페이지를 구분할 수 있다. 구체적으로 플래시 메모리 컨트롤러(203)는 복수의 채널들 각각에 대해 배치되어 있고, 상기 복수의 채널들 각각에 대해 플래시 메모리의 어레이(204)가 할당될 수 있다. 그리고, 복수의 채널은 각각에 대하여 유효 데이터를 저장하기 위하여 복수의 플래시 메모리의 어레이(204)를 포함하고 있으며, 각 채널의 플래시 메모리는 페이지 단위의 물리 페이지를 포함할 수 있다. 물리 페이지는 페이지 단위로 저장된 논리 페이지를 포함할 수 있다.Then, the flash memory controller 203 connected to each channel can distinguish the logical page to be the target of the read request from the physical page based on the transmitted page information. Specifically, the flash memory controller 203 is arranged for each of a plurality of channels, and an array 204 of flash memory can be allocated for each of the plurality of channels. The plurality of channels includes an array 204 of a plurality of flash memories for storing valid data for each of them, and the flash memory of each channel may include a physical page unit. A physical page may include a logical page stored on a page basis.

결국, 솔리드 스테이트 드라이브(201)는 저장장치의 쓰기 또는 읽기와 관련된 성능을 향상시키기 위해 복수의 채널을 포함할 수 있다. 그리고, 플래시 메모리 컨트롤러(203)는 솔리드 스테이트 드라이브(201)에 포함된 복수의 채널의 각각에 대하여 일대일로 대응하여 배치될 수 있다. 일례로, 플래시 메모리 컨트롤러(203)는 솔리드 스테이트 드라이브(201)에 포함된 6개의 채널에 대응하여 일대일로 배치될 수 있도록 6개로 존재할 수 있다.As a result, the solid state drive 201 may include a plurality of channels to improve performance associated with writing or reading of the storage device. The flash memory controller 203 may be disposed in correspondence with each of the plurality of channels included in the solid state drive 201 on a one-to-one basis. For example, the flash memory controller 203 may exist in six so that the flash memory controller 203 can be arranged in a one-to-one correspondence with the six channels included in the solid state drive 201.

그리고, 플래시 메모리 컨트롤러(203)는 페이지 정보에 포함된 물리 페이지의 주소를 이용하여 리드해야되는 물리 페이지에 접근할 수 있다. 다시 말해, 물리 페이지의 주소는 물리 페이지 번호에 해당하는 물리 페이지가 플래시 메모리에 실제로 저장된 위치로써, 플래시 메모리에 접근하기 위한 주소를 의미할 수 있다.The flash memory controller 203 can access the physical page to be read by using the address of the physical page included in the page information. In other words, the address of the physical page may be an address for accessing the flash memory as a physical page corresponding to the physical page number actually stored in the flash memory.

이후, 플래시 메모리 컨트롤러(203)는 접근한 물리 페이지에서 리드 요청에 대상이 되는 논리 페이지를 구분하기 위해 논리 페이지의 인덱스를 이용할 수 있다. 논리 페이지의 인덱스는 물리 페이지의 주소에 저장된 복수의 논리 페이지들 중에서 리드 요청에 대상이 되는 논리 페이지를 구분하기 위한 정보일 수 있다. 플래시 메모리 컨트롤러(203)는 물리 페이지에서 논리 페이지를 구분할 수 있다. 이 때, 논리 페이지는 상황에 따라 압축된 상태 또는 압축되지 않은 상태를 나타낼 수 있다. 이러한 논리 페이지의 압축 여부는 페이지 정보에 포함된 플래그를 통해 식별이 가능할 수 있다.Thereafter, the flash memory controller 203 can use the index of the logical page to distinguish the logical page to be the target of the read request from the accessed physical page. The index of the logical page may be information for identifying a logical page targeted for a read request among a plurality of logical pages stored in the address of the physical page. The flash memory controller 203 can distinguish the logical page from the physical page. At this time, the logical page may indicate a compressed state or an uncompressed state depending on the situation. The compression of the logical page may be identified through a flag included in the page information.

즉, 플래시 메모리 컨트롤러(203)는 디바이스 컨트롤러(202)로부터 전달된 물리 페이지의 주소, 논리 페이지의 인덱스 및 플래그를 포함하는 페이지 정보를 기반으로 리드 요청에 대상이 되는 논리 페이지를 구분하고, 논리 페이지에 대한 압축 여부를 판단할 수 있다. 결국, 페이지 정보는 플래시 메모리 컨트롤러(203)를 통해 논리 페이지를 구분함에 있어, 보다 신속하고 정확하게 논리 페이지를 색출하기 위한 정보일 수 있다. 또한, 플래시 메모리 컨트롤러(203)는 논리 페이지의 압축 여부에 따라 압축 해제하는 기능을 수행할 수 있다.That is, the flash memory controller 203 identifies the logical page to be the target of the read request based on the page information including the address of the physical page, the index of the logical page, and the flag transmitted from the device controller 202, It is possible to judge whether or not the compression is performed. As a result, the page information can be information for quickly and accurately detecting the logical page in distinguishing the logical page through the flash memory controller 203. In addition, the flash memory controller 203 can perform decompression according to whether the logical page is compressed or not.

다시 말해, 플래시 메모리 컨트롤러(203)는 호스트로부터 전달된 리드 요청에 대응하여 각 채널에 포함된 물리 페이지에서 논리 페이지를 구분하고, 구분된 논리 페이지의 압축 여부에 따라 압축해제 기능을 수행할 수 있다. 따라서, 플래시 메모리 컨트롤러(203)는 압축 기반의 솔리드 스테이트 드라이브에서 발생하는 병목 현상을 해결할 수 있으며, 채널의 병렬화를 통한 읽기/쓰기 기능에 대한 성능을 향상시킬 수 있다.In other words, the flash memory controller 203 can identify the logical page in the physical page included in each channel corresponding to the read request transmitted from the host, and perform the decompression function according to whether or not the separated logical page is compressed . Accordingly, the flash memory controller 203 can solve the bottleneck occurring in the compression-based solid state drive and improve the performance of the read / write function through parallelization of the channel.

또한, 플래시 메모리 컨트롤러(203)는 물리 페이지에서 논리 페이지를 구분함에 있어, 압축 여부를 고려함으로써, 상황에 따라 적응적으로 압축 해제하는 기능을 수행함에 따라 보다 신속하게 데이터를 처리할 수 있다.In addition, the flash memory controller 203 can decompress the logical page in the physical page, considering the compression, and adaptively decompress the logical page according to the situation, so that the flash memory controller 203 can process the data more quickly.

도 3은 일실시예에 따른 플래시 메모리 컨트롤러의 동작을 설명하기 위해 도시한 도면이다.3 is a diagram illustrating an operation of a flash memory controller according to an embodiment.

도 3을 참고하면, 디바이스 컨트롤러는 도 1을 통해 상술한 바와 같이 페이지 맵핑 테이블을 이용하여 페이지 정보를 생성할 수 있다. 구체적으로, 페이지 맵핑 테이블은 표 1과 같이 표현될 수 있으며, 논리 페이지에 할당된 물리 페이지에 대한 정보를 포함할 수 있다.Referring to FIG. 3, the device controller can generate page information using the page mapping table as described above with reference to FIG. Specifically, the page mapping table may be expressed as shown in Table 1, and may include information about physical pages allocated to logical pages.

LPNLPN FLAGFLAG IDXIDX PPN_addressPPN_address 100100 00 1One 64 (ch:0, chip:0, blk:1, page:0)64 (ch: 0, chip: 0, blk: 1, page: 0) 101101 00 22 64 (ch:0, chip:0, blk:1, page:0)64 (ch: 0, chip: 0, blk: 1, page: 0) 102102 00 33 64 (ch:0, chip:0, blk:1, page:0)64 (ch: 0, chip: 0, blk: 1, page: 0) 103103 1One 1One 8192 (ch:1, chip:0, blk:1, page:0)8192 (ch: 1, chip: 0, blk: 1, page: 0)

구체적으로 표 1을 참고하면 페이지 맵핑 테이블은 논리 페이지 번호와 물리 페이지 주소를 이용하여 논리 페이지에 할당된 물리 페이지에 대한 정보를 나타낼 수 있다. 다시 말해, 페이지 맵핑 테이블은 각각의 논리 페이지 번호에 기준으로 논리 페이지를 저장하기 위해 할당된 물리 페이지 주소와의 관계를 매핑한 테이블일 수 있다. 또한 물리 페이지 주소는 솔리드 스테이트 드라이브에 포함된 물리 페이들을 구분하기 위한 주소이며, 이는 디바이스 컨트롤러에 의해 각 플래시 메모리 컨트롤러가 관리하는 물리 페이지의 주소로 변환될 수 있다.Specifically, referring to Table 1, the page mapping table can indicate information about a physical page allocated to a logical page using a logical page number and a physical page address. In other words, the page mapping table may be a table that maps the relationship with the physical page address allocated to store the logical page based on each logical page number. Also, the physical page address is an address for identifying the physical pages included in the solid state drive, which can be converted by the device controller into an address of a physical page managed by each flash memory controller.

그리고, 디바이스 컨트롤러는 리드 요청에 따라 압축된 데이터가 저장된 물리페이지에서 논리 페이지를 보다 정확하게 구분하기 위하여 페이지 정보를 생성할 수 있다. 일례로, 논리 페이지 번호(100)에 대한 리드 요청이 전달되었다고 가정할 때, 디바이스 컨트롤러는 논리 페이지 번호(100)에 해당하는 페이지 맵핑 테이블을 기반으로 물리 페이지의 주소(64), 논리 페이지의 인덱스(1) 및 플래그(0)에 대한 값을 나타내는 페이지 정보를 생성할 수 있다.The device controller can generate the page information in order to more accurately distinguish the logical page from the physical page in which the compressed data is stored according to the read request. For example, assuming that a read request for a logical page number 100 has been transmitted, the device controller determines, based on the page mapping table corresponding to the logical page number 100, the address 64 of the physical page, the index (1) and the flag (0).

플래시 메모리 컨트롤러(301)는 디바이스 컨트롤러로부터 물리 페이지의 주소, 논리 페이지의 인덱스 및 플래그를 포함하는 페이지 정보를 수신할 수 있다. 그리고, 플래시 메모리 컨트롤러(301)는 수신한 페이지 정보에 포함된 물리 페이지의 주소(302)를 이용하여 물리 페이지에 접근할 수 있다. 즉, 플래시 메모리 컨트롤러(301)는 실제 데이터가 저장된 물리 페이지에 대한 접근을 수행할 수 있다.The flash memory controller 301 can receive page information including the address of the physical page, the index of the logical page, and the flag from the device controller. The flash memory controller 301 can access the physical page using the address 302 of the physical page included in the received page information. That is, the flash memory controller 301 can access the physical page where the actual data is stored.

이후, 플래시 메모리 컨트롤러(301)는 접근한 물리 페이지에 순차적으로 저장된 논리 페이지들 중에서 리드 요청에 대상이 되는 논리 페이지를 구분할 수 있다. 여기서, 플래시 메모리 컨트롤러(301)는 플래시 메모리 컨트롤러(301)에 논리 페이지의 인덱스를 통해 식별되는 논리 페이지를 물리 페이지에서 구분하고, 내장된 압축 해제하는 기능을 통해 논리 페이지를 압축 해제 할 수 있다. 플래시 메모리 컨트롤러(301)는 논리 페이지의 인덱스를 이용함으로써, 물리 페이지에 저장된 논리 페이지의 시작 위치를 구분할 수 있다. 그리고, 플래시 메모리 컨트롤러(301)는 논리 페이지의 인덱스를 통해 구분된 논리 페이지에 대한 압축 여부를 확인할 수 있다.Thereafter, the flash memory controller 301 can identify the logical page to be the target of the read request among the logical pages sequentially stored in the accessed physical page. Here, the flash memory controller 301 can decompress the logical page through the function of dividing the logical page identified by the index of the logical page in the physical page into the flash memory controller 301 and decompressing it by the built-in decompression function. The flash memory controller 301 can identify the start position of the logical page stored in the physical page by using the index of the logical page. Then, the flash memory controller 301 can check whether or not the logical page classified through the index of the logical page is compressed.

플래시 메모리 컨트롤러(301)는 구분된 논리 페이지를 압축 해제하여 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다.The flash memory controller 301 can decompress the separated logical page and transfer it to the read buffer of the device controller.

플래시 메모리 컨트롤러(301)는 압축된 논리 페이지를 압축 해제하는 기능뿐만 아니라, 호스트로부터 요청된 쓰기 요청에 대응하여 내장된 압축 기능을 통해 데이터를 압축할 수 있다. 그리고, 플래시 메모리 컨트롤러(301)는 내장된 압축 기능을 통해 압축된 데이터를 물리 페이지에 저장할 수 있다. 이 때, 플래시 메모리 컨트롤러(301)는 호스트로부터 쓰기 요청되는 복수의 데이터에 대하여 순차적으로 압축한 후, 저장할 수 있다. The flash memory controller 301 can compress data through a built-in compression function corresponding to a write request requested from the host, as well as a function of decompressing the compressed logical page. The flash memory controller 301 can store the compressed data in the physical page through the built-in compression function. At this time, the flash memory controller 301 may sequentially compress and store a plurality of data requested to be written from the host.

도 4는 일실시예에 따른 플래시 메모리 컨트롤러의 구조를 설명하기 위해 도시한 도면이다.4 is a diagram illustrating a structure of a flash memory controller according to an embodiment of the present invention.

도 4를 참고하면, 본 발명에서 제안하는 솔리드 스테이트 드라이브는 호스트 인터페이스 컨트롤러(host interface controller), CPUs, on-Chip SRAM, DRAM controller 및 플래시 메모리의 어레이와 연결된 플래시 메모리 컨트롤러(401)를 포함할 수 있다. 그리고, 솔리드 스테이트 드라이브는 플래시 메모리 컨트롤러(401)와 연동하여 페이지 맵핑 동작을 수행하는 펌웨어를 실행할 수 있다. 여기서, 펌웨어는 상술된 디바이스 컨트롤러를 의미할 수 있다.Referring to FIG. 4, the solid state drive proposed in the present invention may include a host interface controller, CPUs, an on-chip SRAM, a DRAM controller, and a flash memory controller 401 connected to an array of flash memory have. The solid state drive may execute firmware that performs a page mapping operation in cooperation with the flash memory controller 401. Here, the firmware may mean the device controller described above.

플래시 메모리 컨트롤러(401)는 DMA, Embedded processor, scratchpad SRAM, bus bridge, decompression processor 및 NAND flash interface의 구성 요소를 포함할 수 있다. The flash memory controller 401 may include components of a DMA, an embedded processor, a scratchpad SRAM, a bus bridge, a decompression processor, and a NAND flash interface.

scratchpad SRAM는 호스트로부터 쓰기 요청에 따른 데이터를 임시 저장할 수 있다. 다시 말해, scratchpad SRAM는 원시 데이터에 대한 프로세싱이 시작되지 전에 저장되는 위치일 수 있다.The scratchpad SRAM can temporarily store data according to the write request from the host. In other words, the scratchpad SRAM may be the location where the raw data is stored before processing begins.

Embedded processor는 디바이스 컨트롤러로부터 전달된 인덱스 정보를 통해, 물리 페이지에서 논리 페이지를 구분하는 기능을 수행할 수 있다. The embedded processor can perform the function of distinguishing the logical page from the physical page through the index information transmitted from the device controller.

decompression processor는 호스트로부터의 리드 요청에 대응하여 물리 페이지에서 구분된 논리 페이지를 압축 해제하는 기능을 수행할 수 있다. 다시 말해, decompression processor는 물리 페이지의 주소에 의해 접근한 물리 페이지에서 리드 요청에 대응하는 압축된 논리 페이지에 대응하여 압축 해제를 수행할 수 있다. The decompression processor can perform decompression of the logical page identified in the physical page in response to the read request from the host. In other words, the decompression processor can perform decompression corresponding to the compressed logical page corresponding to the read request in the physical page accessed by the address of the physical page.

도 5는 일실시예에 따른 플래시 메모리 컨트롤러의 동작에 기초하여 솔리드 스테이트 드라이브가 호스트로 리드 요청된 데이터를 전달하는 동작을 설명하기 위해 도시한 도면이다.5 is a diagram for explaining an operation of transferring data requested by a solid state drive to a host based on the operation of a flash memory controller according to an embodiment.

도 5를 참고하면, 플래시 메모리 컨트롤러(501)는 플래시 메모리 컨트롤러(501)와 연결된 채널(502)로부터 논리 페이지를 구분할 수 있다. 플래시 메모리 컨트롤러(501)는 페이지 정보를 이용하여 물리 페이지에서 리드 요청에 대상이 되는 논리 페이지를 구분할 수 있다. 그리고, 플래시 메모리 컨트롤러(501)는 구분된 논리 페이지의 압축 여부에 따라 압축 해제 동작을 수행할 수 있다.Referring to FIG. 5, the flash memory controller 501 can identify a logical page from a channel 502 connected to the flash memory controller 501. The flash memory controller 501 can identify the logical page to be the target of the read request in the physical page using the page information. The flash memory controller 501 can perform a decompression operation according to whether or not the separated logical page is compressed.

플래시 메모리 컨트롤러(501)는 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용해 압축된 논리 페이지를 압축 해제할 수 있다. 그리고, 플래시 메모리 컨트롤러(501)는 압축 해제된 논리 페이지를 디바이스 컨트롤러(504)의 리드 버퍼에 전달할 수 있다.The flash memory controller 501 can decompress the compressed logical page using the decompression function embedded in the flash memory controller when the separated page is compressed. The flash memory controller 501 can then deliver the decompressed logical page to the read buffer of the device controller 504. [

여기서, 디바이스 컨트롤러(504)는 플래시 메모리 컨트롤러(501) 및 다른 플래시 메모리 컨트롤러로부터 각각 연결된 채널에서 구분된 논리 페이지에 대한 압축 해제가 완료된 결과를 수신할 수 있다.Here, the device controller 504 can receive a result of decompression of the logical page separated from the channel connected to the flash memory controller 501 and another flash memory controller, respectively.

그리고, 솔리드 스테이트 드라이브(504)는 호스트(505)로부터 리드 요청된 데이터에 대한 모든 논리 페이지를 플래시 메모리 컨트롤러(501) 및 다른 플래시 메모리 컨트롤러로부터 수신하였는지 여부를 확인할 수 있다. 호스트(505)로부터 리드 요청된 데이터에 대한 모든 논리 페이지가 수신된 경우, 디바이스 컨트롤러(504)는 리드 버퍼에 저장된 논리 페이지를 조합하여 조합된 데이터를 호스트(505)에 전달할 수 있다.The solid state drive 504 can then check whether the host 505 has received all the logical pages for the data requested to be read from the flash memory controller 501 and another flash memory controller. When all the logical pages for the data requested to be read from the host 505 are received, the device controller 504 can combine the logical pages stored in the read buffer and deliver the combined data to the host 505. [

도 6은 일실시예에 따른 플래시 메모리 컨트롤러가 수행하는 압축 해제 방법을 설명하기 위한 흐름도이다.6 is a flowchart illustrating a decompression method performed by the flash memory controller according to an exemplary embodiment.

단계(601)에서 플래시 메모리 컨트롤러는 디바이스 컨트롤러로부터 플래시 메모리에 저장된 데이터의 리드 요청에 대응하여 상기 데이터와 관련된 페이지 정보를 수신할 수 있다. 플래시 메모리 컨트롤러는 디바이스 컨트롤러가 리드해야 되는 물리 페이지의 주소, 물리 페이지 중에서 리드 요청에 대상이 되는 논리 페이지의 인덱스 및 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그를 포함하는 페이지 정보를 수신할 수 있다.In step 601, the flash memory controller may receive page information related to the data in response to a read request of data stored in the flash memory from the device controller. The flash memory controller receives the page information including the address of the physical page to be read by the device controller, the index of the logical page to be the target of the read request among the physical pages, and the flag indicating whether the logical page included in the page information is compressed .

단계(602)에서 플래시 메모리 컨트롤러는 디바이스 컨트롤러로부터 수신한 페이지 정보에 포함된 물리 페이지의 주소를 이용하여 상기 물리 페이지에 접근할 수 있다. 플래시 메모리 컨트롤러는 플래시 메모리 컨트롤러가 리드해야 되는 물리 페이지의 주소를 이용하여 압축된 데이터를 포함하는 물리 페이지에 접근할 수 있다. In step 602, the flash memory controller can access the physical page using the address of the physical page included in the page information received from the device controller. The flash memory controller can access the physical page containing the compressed data using the address of the physical page that the flash memory controller should read.

단계(603)에서 플래시 메모리 컨트롤러는 접근한 물리 페이지에서 상기 리드 요청에 대상이 되는 논리 페이지를 구분할 수 있다. 플래시 메모리 컨트롤러는 페이지 정보에 포함된 논리 페이지의 인덱스에 대응하여 상기 물리 페이지 중에서 상기 논리 페이지를 구분할 수 있다. 또한, 플래시 메모리 컨트롤러는 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그에 기초하여 논리 페이지의 압축 여부를 판단할 수 있다.In step 603, the flash memory controller can identify the logical page to be the target of the read request in the accessed physical page. The flash memory controller can identify the logical page among the physical pages corresponding to the index of the logical page included in the page information. In addition, the flash memory controller can determine whether the logical page is compressed based on a flag indicating whether or not the logical page included in the page information is compressed.

단계(604)에서 플래시 메모리 컨트롤러는 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용해 압축된 논리 페이지를 압축 해제하고, 압축 해제된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다. 또한, 플래시 메모리 컨트롤러는 구분된 페이지가 압축되지 않은 경우, 상기 구분된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달할 수 있다.In step 604, if the divided page is compressed, the flash memory controller decompresses the compressed logical page using the decompression function embedded in the flash memory controller, and transfers the decompressed logical page to the read buffer of the device controller . In addition, if the divided page is not compressed, the flash memory controller can transfer the separated logical page to the read buffer of the device controller.

결국, 솔리드 스테이트 드라이브는 동시에 여러 채널로부터 요청된 데이터에 대한 페이지의 리드 요청에 있어서, 각 채널에 연결된 플래시 메모리 컨트롤러를 통해 압축 해제함으로써, 복수의 채널에 저장된 데이터를 동시에 리드할 수 있는 방법을 제안할 수 있다.As a result, the solid state drive proposes a method of simultaneously reading data stored in a plurality of channels by decompressing the page through a flash memory controller connected to each channel in a page read request for data requested from a plurality of channels simultaneously can do.

여기서, 플래시 메모리 컨트롤러는 복수의 채널들 각각에 대해 배치되어 있고, 상기 복수의 채널들 각각에 대해 플래시 메모리의 어레이가 할당될 수 있다.Here, the flash memory controller is arranged for each of a plurality of channels, and an array of flash memory can be allocated for each of the plurality of channels.

본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

101: 호스트
102: 솔리드 스테이트 드라이브
103: 디바이스 컨트롤러
104: 플래시 메모리 컨트롤러
101: Host
102: Solid state drive
103: Device controller
104: Flash memory controller

Claims (14)

플래시 메모리 컨트롤러가 수행하는 압축 해제 방법에 있어서,
디바이스 컨트롤러로부터 플래시 메모리에 저장된 데이터의 리드 요청에 대응하여 상기 데이터와 관련된 페이지 정보를 수신하는 단계;
상기 수신한 페이지 정보에 포함된 물리 페이지의 주소를 이용하여 상기 물리 페이지에 접근하는 단계;
상기 접근한 물리 페이지에서 상기 리드 요청에 대상이 되는 논리 페이지를 구분하는 단계; 및
상기 구분된 논리 페이지의 압축 여부를 고려하여 상기 논리 페이지를 상기 디바이스 컨트롤러에 전달하는 단계
를 포함하고,
상기 플래시 메모리 컨트롤러는,
복수의 채널들 각각에 대해 배치되어 있고, 상기 복수의 채널들 각각에 대해 플래시 메모리의 어레이가 할당되어 있는 압축 해제 방법.
In a decompression method performed by a flash memory controller,
Receiving page information related to the data corresponding to a read request of data stored in the flash memory from the device controller;
Accessing the physical page using an address of a physical page included in the received page information;
Identifying a logical page to be a target of the read request in the accessed physical page; And
Transferring the logical page to the device controller in consideration of whether or not the separated logical page is compressed
Lt; / RTI >
The flash memory controller includes:
Wherein the plurality of channels are arranged for each of a plurality of channels, and an array of flash memory is allocated for each of the plurality of channels.
제1항에 있어서,
상기 접근하는 단계는,
상기 플래시 메모리 컨트롤러가 리드해야 되는 물리 페이지의 주소를 이용하여 압축된 데이터를 포함하는 물리 페이지에 접근하는 압축 해제 방법.
The method according to claim 1,
Wherein the step of accessing comprises:
Wherein the flash memory controller accesses a physical page including compressed data using an address of a physical page to be read.
제2항에 있어서,
상기 압축된 데이터는,
상기 플래시 메모리 컨트롤러에 내장된 압축 해제 기능에 의해 압축되어 상기 물리 페이지에 저장된 압축 해제 방법.
3. The method of claim 2,
The compressed data may include:
And the compressed data is compressed by the decompression function embedded in the flash memory controller and stored in the physical page.
제1항에 있어서,
상기 구분하는 단계는,
상기 페이지 정보에 포함된 논리 페이지의 인덱스에 대응하여 상기 물리 페이지 중에서 상기 논리 페이지를 구분하는 압축 해제 방법.
The method according to claim 1,
Wherein the distinguishing step comprises:
Wherein the logical page is divided among the physical pages corresponding to the index of the logical page included in the page information.
제1항에 있어서,
상기 구분하는 단계는,
상기 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그에 기초하여 논리 페이지의 압축 여부를 판단하는 압축 해제 방법.
The method according to claim 1,
Wherein the distinguishing step comprises:
And determining whether the logical page is compressed based on a flag indicating whether or not the logical page included in the page information is compressed.
제5항에 있어서,
상기 전달하는 단계는,
상기 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용해 압축된 논리 페이지를 압축 해제하고, 압축 해제된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달하는 압축 해제 방법.
6. The method of claim 5,
The method of claim 1,
And decompressing the compressed logical page using the decompression function built in the flash memory controller when the divided page is compressed and delivering the decompressed logical page to the read buffer of the device controller.
제5항에 있어서,
상기 전달하는 단계는,
상기 구분된 페이지가 압축되지 않은 경우, 상기 구분된 논리 페이지를 디바이스 컨트롤러의 리드 버퍼에 전달하는 압축 해제 방법.
6. The method of claim 5,
The method of claim 1,
And if the divided page is not compressed, transfers the separated logical page to the read buffer of the device controller.
제1항에 있어서,
상기 디바이스 컨트롤러는,
상기 플래시 메모리 컨트롤러 및 다른 플래시 메모리 컨트롤러로부터 수신한 압축 해제된 논리 페이지들을 조합하여 논리 페이지들이 조합된 데이터를 호스트에 전달하는 압축 해제 방법.
The method according to claim 1,
Wherein the device controller comprises:
And combining the decompressed logical pages received from the flash memory controller and another flash memory controller to transfer the combined data of the logical pages to the host.
디바이스 컨트롤러로부터 플래시 메모리에 저장된 데이터의 리드 요청에 대응하여 상기 데이터와 관련된 페이지 정보를 수신하고,
상기 수신한 페이지 정보에 포함된 물리 페이지의 주소를 이용하여 상기 물리 페이지에 접근하며,
상기 접근한 물리 페이지에서 상기 리드 요청에 대상이 되는 논리 페이지를 구분하며,
상기 구분된 논리 페이지를 압축 해제하여 압축 해제된 논리 페이지를 상기 디바이스 컨트롤러에 전달하는 플래시 메모리 컨트롤러.
Receiving page information related to the data corresponding to a read request of data stored in the flash memory from the device controller,
Accesses the physical page using the address of the physical page included in the received page information,
A logical page to be subjected to the read request is distinguished from the accessed physical page,
Decompressing the separated logical page and delivering the decompressed logical page to the device controller.
제9항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 디바이스 컨트롤러로부터 리드해야 되는 물리 페이지의 주소, 물리 페이지 중에서 리드 요청에 대상이 되는 논리 페이지의 인덱스 및 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그를 수신하는 플래시 메모리 컨트롤러.
10. The method of claim 9,
The flash memory controller includes:
An address of a physical page to be read from the device controller, an index of a logical page to be a target of a read request among the physical pages, and a flag indicating whether or not a logical page included in the page information is compressed.
복수의 채널에 대응하는 복수의 플래시 메모리의 어레이들; 및
상기 복수의 플래시 메모리의 어레이들과 연결된 복수의 플래시 메모리 컨트롤러들
을 포함하고,
상기 복수의 플래시 메모리 컨트롤러들 각각은,
플래시 메모리에 저장된 데이터의 리드 요청에 따라 물리 페이지 중에서 리드 요청에 대상이 되는 논리 페이지를 구분하고, 상기 구분된 논리 페이지의 압축 여부를 고려해 상기 논리 페이지를 상기 디바이스 컨트롤러의 리드 버퍼에 전달하는 솔리드 스테이트 드라이브.
Arrays of flash memories corresponding to a plurality of channels; And
A plurality of flash memory controllers coupled to the plurality of flash memory arrays,
/ RTI >
Wherein each of the plurality of flash memory controllers comprises:
A solid state in which a logical page to be a target of a read request is distinguished from a physical page in response to a read request of data stored in a flash memory, and the logical page is transferred to the read buffer of the device controller, drive.
제11항에 있어서,
상기 복수의 플래시 메모리 컨트롤러들 각각은,
상기 플래시 메모리 컨트롤러가 리드해야 되는 물리 페이지의 주소를 통해 압축된 데이터를 포함하는 물리 페이지에 접근하고,
상기 접근한 물리 페이지에서 리드 요청에 대상이 되는 논리 페이지의 인덱스를 이용해 상기 논리 페이지를 구분하는 솔리드 스테이트 드라이브.
12. The method of claim 11,
Wherein each of the plurality of flash memory controllers comprises:
The flash memory controller accesses a physical page including compressed data through an address of a physical page to be read,
And a solid state drive which distinguishes the logical page by using an index of a logical page targeted for a read request in the accessed physical page.
제11항에 있어서,
상기 복수의 플래시 메모리 컨트롤러들 각각은,
상기 데이터와 관련된 페이지 정보에 포함된 논리 페이지의 압축 여부를 나타내는 플래그에 기초하여 논리 페이지의 압축 여부를 고려하는 솔리드 스테이트 드라이브
12. The method of claim 11,
Wherein each of the plurality of flash memory controllers comprises:
A solid state drive that considers compression of a logical page based on a flag indicating whether or not a logical page included in page information related to the data is compressed,
제11항에 있어서,
상기 복수의 플래시 메모리 컨트롤러들 각각은,
상기 구분된 페이지가 압축된 경우, 플래시 메모리 컨트롤러에 내장된 압축 해제 기능을 이용하여 압축된 논리 페이지를 압축 해제하는 솔리드 스테이트 드라이브.
12. The method of claim 11,
Wherein each of the plurality of flash memory controllers comprises:
And a solid state drive that decompresses the compressed logical page using the decompression function embedded in the flash memory controller when the divided page is compressed.
KR1020140192697A 2014-12-29 2014-12-29 Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method Expired - Fee Related KR101752304B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140192697A KR101752304B1 (en) 2014-12-29 2014-12-29 Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140192697A KR101752304B1 (en) 2014-12-29 2014-12-29 Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method

Publications (2)

Publication Number Publication Date
KR20160080907A true KR20160080907A (en) 2016-07-08
KR101752304B1 KR101752304B1 (en) 2017-06-29

Family

ID=56503233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140192697A Expired - Fee Related KR101752304B1 (en) 2014-12-29 2014-12-29 Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method

Country Status (1)

Country Link
KR (1) KR101752304B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11630766B2 (en) 2017-11-29 2023-04-18 Samsung Electronics Co., Ltd. Memory system and operating method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11630766B2 (en) 2017-11-29 2023-04-18 Samsung Electronics Co., Ltd. Memory system and operating method thereof
KR20240049262A (en) * 2017-11-29 2024-04-16 삼성전자주식회사 Memory System and Operation Method thereof

Also Published As

Publication number Publication date
KR101752304B1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
US11630766B2 (en) Memory system and operating method thereof
US11188251B2 (en) Partitioned non-volatile memory express protocol for controller memory buffer
TWI704487B (en) Data storage device and operating method thereof
TWI690803B (en) Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
CN106575260A (en) Caching technologies employing data compression
US10146440B2 (en) Apparatus, system and method for offloading collision check operations in a storage device
US20150339223A1 (en) Memory system and method
US20200356407A1 (en) Controller and memory system having the same
CN115390746A (en) Host devices, storage devices, and electronic devices
US20110016261A1 (en) Parallel processing architecture of flash memory and method thereof
US10168926B2 (en) Method of operating data storage device and method of operating data processing system including same
KR20160036693A (en) Storage device and command scheduling method thereof
US10466938B2 (en) Non-volatile memory system using a plurality of mapping units and operating method thereof
US10387579B2 (en) Data pattern detecting device, semiconductor device including the same, and operating method thereof
CN112148626A (en) Storage method and storage device for compressed data
KR101752304B1 (en) Solid state drive(ssd) including flash memory controller of multiple, and the flash memory controller for perfroming decompression method
US20120159024A1 (en) Semiconductor apparatus
CN118585141A (en) A memory and data processing method thereof
CN111338995A (en) Data storage device and method of operating a data storage device
KR20220159268A (en) Host device, storage device and electronic device
KR20240004013A (en) Memory controller, storage device and operating method thereof
US12498874B2 (en) Storage device and operating method of storage device
US12141479B2 (en) Data cache scheme for high performance flash memories
US11989448B2 (en) Memory controller and memory system including the same
US12487775B2 (en) Electronic device for detecting error in field of protocol information unit and method of operating the same

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20220624

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20220624