KR101381597B1 - Pattern-aware management system for multi-channel ssd and method therefor - Google Patents

Pattern-aware management system for multi-channel ssd and method therefor Download PDF

Info

Publication number
KR101381597B1
KR101381597B1 KR1020130010978A KR20130010978A KR101381597B1 KR 101381597 B1 KR101381597 B1 KR 101381597B1 KR 1020130010978 A KR1020130010978 A KR 1020130010978A KR 20130010978 A KR20130010978 A KR 20130010978A KR 101381597 B1 KR101381597 B1 KR 101381597B1
Authority
KR
South Korea
Prior art keywords
pattern
channel
data
management system
flash memory
Prior art date
Application number
KR1020130010978A
Other languages
Korean (ko)
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 KR1020130010978A priority Critical patent/KR101381597B1/en
Application granted granted Critical
Publication of KR101381597B1 publication Critical patent/KR101381597B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Abstract

A pattern-based SSD management system according to the present invention includes: a write buffer; a flash conversion layer unit; and a NAND flash memory unit. The write buffer includes: a pattern detection module which determines the pattern of the data to be written in the NANA flash memory unit; a singular victim selection module which selects and evicts one victim block when the pattern of the data to be written is sequential according to the determination results of the pattern detection module; and a multi-victim selection module which selects and evicts multiple victim blocks when the pattern of the data to be written is random according to the determination results of the pattern detection module. [Reference numerals] (AA) Comparative example 1; (BB) Example 1

Description

다중채널 SSD의 패턴기반 관리 시스템 및 그 방법{Pattern-Aware Management System for Multi-Channel SSD and Method therefor}Pattern-based management system and method of multi-channel SSD {Pattern-Aware Management System for Multi-Channel SSD and Method therefor}

본 발명은 다중채널 SSD를 위한 패턴기반 관리 시스템 및 그 방법에 관한 것이다. 보다 구체적으로 본 발명은 다중채널 SSD를 위한 패턴기반의 쓰기버퍼 및 FTL의 통합 관리 기법에 관한 것이다.The present invention relates to a pattern-based management system and method for a multichannel SSD. More specifically, the present invention relates to a pattern-based write buffer for multichannel SSD and an integrated management technique of FTL.

최근에 수많은 전자 제품에서 사용되는 프로세서(processor) 및 램(RAM) 등의 주기억장치의 처리속도가 고속화됨에 따라 보조기억장치의 처리속도에 의해서 전자 제품의 연산 처리 속도가 결정되는 병목 현상이 심화되고 있다. 기존의 보조기억장치로는 주로 HDD(Hard Disk Drive)와 같은 자기 저장장치, 또는 CD나 DVD와 같은 광디스크 장치(ODD: Optic Disk Drive)들이 사용되어 왔다. 광디스크 장치는 데이터의 입출력이 제한되며 데이터 출력 속도가 매우 느린 단점이 있다. 또한, 자기 저장장치는 광디스크 장치에 비해 속도가 빠르긴 하지만 여전히 병목현상을 야기한다. 더욱이 자기 저장장치는 외부 충격등에 의해 쉽게 데이터가 훼손되거나 소실될 우려가 있다. Recently, as processing speeds of main memory devices such as processors and RAMs used in many electronic products have been increased, bottlenecks in which computational processing speeds of electronic products are determined by processing speeds of auxiliary memory devices have increased. have. Existing auxiliary memory devices have been mainly used magnetic storage devices such as HDD (Hard Disk Drive), or optical disk devices (ODD: Optic Disk Drive) such as CD or DVD. Optical disk devices have a disadvantage in that data input / output is limited and data output speed is very slow. Magnetic storage devices are also faster than optical disk devices, but still cause bottlenecks. Moreover, the magnetic storage device may be easily damaged or lost due to external impact.

이에 따라, 기존의 MOSFET 구조를 응용한 반도체 소자로 구성된 SSD(Solid State Drive)가 주목받고 있다. SSD는 HDD에 비해 처리 속도가 빠를뿐 아니라 데이터가 저장된 소자로 임의 접속(Random Access)을 하므로 탐색시간 없이 고속으로 데이터를 입출력할 수 있다. 또한, 기계적 지적이나 실패율이 현저히 낮으며 외부의 충격으로부터 데이터 손상률이 매우 낮은 장점이 있다. 또한, SSD는 소모 전력이 낮으며 추가의 기계장치를 구동할 필요없이 저발열, 저소음 및 저전력으로 구동하는 것이 가능하다. 따라서. HDD에 비해 SSD를 포함하는 최종 제품의 소형화 및 정량화가 가능하다. Accordingly, attention has been paid to solid state drives (SSDs) composed of semiconductor devices using a conventional MOSFET structure. SSDs are faster than HDDs and provide random access to devices that store data, allowing high-speed data input and output without searching. In addition, the mechanical point or failure rate is significantly low, and the data damage rate from external shock is very low. In addition, SSDs consume less power and can run with lower heat, lower noise and lower power without the need for additional machinery. therefore. Compared to HDD, the final product including SSD can be miniaturized and quantified.

SSD로는 일반적으로 노어(NOR) 플래시 메모리 및 낸드(NAND) 플래시 메모리가 있다. 그 중, 낸드 플래시 메모리는 직렬연결 방식으로서 회로의 집적도가 높아 대용량 제작이 용이하고 읽기 및/또는 쓰기의 속도가 빠르다. 더욱이 데이터 저장능력도 뛰어나 대부분의 대용량 SSD로서는 낸드 플래시 메모리가 사용되고 있다. SSDs generally include NOR flash memory and NAND flash memory. Among them, NAND flash memory is connected in series, and the circuit density is high, so that a large capacity is easily manufactured and the read and / or write speed is high. In addition, NAND flash memory is used as a large capacity SSD because of its excellent data storage capability.

SSD 내부는 여러 개의 낸드 플래스 메모리, 플래시 변환 계층(Flash Translation Layer: FTL) 및 쓰기 버퍼로 구성된다. SSD에서 메인 저장 매체는 낸드 플래시 메모리이며, 이때 다중채널(multi-channel) 및 다중웨이(multi-way)로 구성되어 I/O (Input/Output) 병렬성을 증가시킴으로써 성능이 향상되고 있다. The SSD interior consists of several NAND flash memories, a Flash Translation Layer (FTL), and a write buffer. In SSDs, the main storage medium is NAND flash memory, which is composed of multi-channel and multi-way to increase performance by increasing input / output (I / O) parallelism.

일반적으로, 쓰기 및 읽기의I/O 병렬성을 증가시키는 경우 가비지 컬렉션(GC: Garbage Collection) 오버헤드가 증가할 수 있다. In general, increasing the I / O parallelism of writes and reads can increase garbage collection (GC) overhead.

따라서, 다중채널 SSD의 성능을 향상시킬 수 있도록 다중채널 SSD에서 I/O 병렬성을 증가시키면서도 가비지 컬렉션 오버헤드를 감소시킬 수 있는 방법 및 시스템에 대한 필요성이 증대되고 있다. Accordingly, there is an increasing need for a method and system capable of reducing garbage collection overhead while increasing I / O parallelism in a multichannel SSD to improve performance of a multichannel SSD.

한국공개공보 제2008-0059461호 (2008.06.27)Korean Laid-Open Publication No. 2008-0059461 (2008.06.27)

본 발명은 종래기술의 문제점을 해결하기 위해 안출된 것으로써, 패턴특성을 고려하여 쓰기 버퍼 및 FTL 정책을 적응적으로 적용함으로써 다중채널 SSD의 읽기 및 쓰기 I/O 병렬화를 증가시키면서도 가비지 컬렉션(GC) 오버헤드를 감소시켜 SSD 성능을 향상시킬 수 있는 다중채널 SSD의 패턴기반 관리 시스템 및 그 방법을 제공하고자 한다. SUMMARY OF THE INVENTION The present invention has been made to solve the problems of the prior art, by adaptively applying the write buffer and FTL policy in consideration of the pattern characteristics, while increasing the read and write I / O parallelism of the multi-channel SSD while the garbage collection (GC) The present invention provides a pattern-based management system and method of a multichannel SSD that can reduce SSD overhead to improve SSD performance.

본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical objects to be achieved by the present invention are not limited to the above-mentioned technical problems, and other technical subjects which are not mentioned can be clearly understood by those skilled in the art from the description of the present invention .

본 발명의 실시예에 따른 다중채널 SSD의 패턴기반 관리 시스템은 쓰기버퍼, 플래시 변환계층부 및 낸드 플래시 메모리부를 포함하며, 상기 쓰기버퍼는: 상기 낸드 플래시 메모리부에 쓰기될 데이터의 패턴을 판단하는 패턴 검출 모듈; 상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 순차적 패턴인 때 하나의 빅팀 블록을 선정 및 축출하는 단일빅팀 선정모듈; 및 상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 랜덤 패턴인 때 복수의 빅팀 블록을 선정 및 축출하는 다중빅팀 선정모듈을 포함한다. The pattern-based management system of a multi-channel SSD according to an embodiment of the present invention includes a write buffer, a flash translation layer unit, and a NAND flash memory unit, wherein the write buffer: determines a pattern of data to be written to the NAND flash memory unit. A pattern detection module; A single big team selecting module for selecting and extracting one big team block when the pattern of the data to be written is a sequential pattern as a result of the determination of the pattern detecting module; And a multi-victim selection module for selecting and extracting a plurality of Victim blocks when the pattern of the data to be written is a random pattern as a result of the determination of the pattern detection module.

본 발명의 실시예에 따른 쓰기버퍼, 플래시 변환계층부 및 낸드 플래시 메모리부를 포함하는 다중채널 SSD의 패턴기반 관리 시스템의 관리방법은, 상기 쓰기버퍼에 포함된 패턴 검출 모듈에서 상기 낸드 플래시 메모리부에 쓰기될 데이터의 패턴을 판단하는 단계; 상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 순차적 패턴인 때 하나의 빅팀 블록을 선정 및 축출하는 단계; 및 상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 랜덤 패턴인 때 복수의 빅팀 블록을 선정 및 축출하는 단계를 포함한다.According to an embodiment of the present invention, a method of managing a pattern-based management system for a multichannel SSD including a write buffer, a flash translation layer unit, and a NAND flash memory unit may include: a pattern detection module included in the write buffer; Determining a pattern of data to be written; Selecting and extracting one Victim block when the pattern of the data to be written is a sequential pattern as a result of the determination of the pattern detection module; And selecting and evicting a plurality of Victim blocks when the pattern of the data to be written is a random pattern as a result of the determination of the pattern detection module.

본 발명에 따르면, 쓰기될 데이터의 패턴특성을 고려하여 쓰기 버퍼 및 FTL 정책을 적응적으로 적용함으로써 다중채널 SSD의 읽기 및 쓰기 I/O 병렬화를 증가시키면서도 가비지 컬렉션(GC) 오버헤드를 감소시켜 SSD 성능을 향상시킬 수 있는 다중채널 SSD의 패턴기반 관리 시스템 및 그 방법을 제공할 수 있다. According to the present invention, by applying the write buffer and FTL policy in consideration of the pattern characteristics of the data to be written, SSD by reducing the garbage collection (GC) overhead while increasing the read and write I / O parallelism of the multi-channel SSD It is possible to provide a pattern-based management system and method of a multi-channel SSD that can improve performance.

도1은 본 발명의 실시예에 따른 SSD를 위한 패턴기반 관리 시스템의 구조도이다.
도2는 낸드 플래시 메모리의 쓰기 및 지우기 과정을 예시한다.
도3은 낸드 플래시 메모리에서 가비지 컬렉션 과정을 예시한다.
도4는 본 발명의 실시예에 따른 SSD를 위한 패턴기반 관리 시스템에서 순차적 패턴 관리를 예시한다.
도5는 다중채널 FTL의 메모리 쓰기 과정을 예시한다.
도6는 본 발명의 실시예에 따른 SSD를 위한 패턴기반 관리 시스템에서 랜덤 패턴 관리를 예시한다.
1 is a structural diagram of a pattern-based management system for an SSD according to an embodiment of the present invention.
2 illustrates a write and erase process of a NAND flash memory.
3 illustrates a garbage collection process in a NAND flash memory.
4 illustrates sequential pattern management in a pattern based management system for an SSD according to an embodiment of the present invention.
5 illustrates a memory write process of a multichannel FTL.
6 illustrates random pattern management in a pattern based management system for an SSD according to an embodiment of the present invention.

이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명된다. 그러나, 본 발명의 실시형태는 여러 가지의 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로만 한정되는 것은 아니다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있으며, 도면들 중 인용부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 인용부호들로 표시됨을 유의해야 한다. 참고로 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings. However, the embodiments of the present invention may be modified into various other forms, and the scope of the present invention is not limited to the embodiments described below. The shape and the size of the elements in the drawings may be exaggerated for clarity of explanation and the same reference numerals are used for the same elements and the same elements are denoted by the same quote symbols as possible even if they are displayed on different drawings Should be. In the following description, well-known functions or constructions are not described in detail to avoid unnecessarily obscuring the subject matter of the present invention.

도1은 본 발명의 실시예에 따른 다중채널 SSD를 위한 패턴기반 관리 시스템(100)의 구조도이다. 도1에 도시된 바와 같이, 본 발명의 실시예에 따른 SSD를 위한 패턴기반 관리 시스템(100)은 쓰기버퍼(200), 플래시 변환 계층부(300: FTL), 및 낸드 플래시 메모리부(400)를 포함할 수 있다. 1 is a structural diagram of a pattern-based management system 100 for a multi-channel SSD according to an embodiment of the present invention. As shown in FIG. 1, the pattern-based management system 100 for an SSD according to an exemplary embodiment of the present invention may include a write buffer 200, a flash translation layer unit 300 (FTL), and a NAND flash memory unit 400. It may include.

우선, 본 발명의 실시예에 따른 SSD에 포함되는 낸드 플래시 메모리, FTL 및 쓰기버퍼의 일반적인 기능에 대해서 먼저 알아본다. First, the general functions of the NAND flash memory, the FTL, and the write buffer included in the SSD according to an embodiment of the present invention will be described first.

일반적으로 낸드 플래시 메모리는 여러 개의 블록(block)으로 이루어져 있고 한 블록은 여러 개의 페이지(page)로 이루어져 있다. 예컨대, 하나의 블록은 64개의 페이지로 이루어져 있을 수 있으며, 하나의 블록의 크기는 128KB 그리고 하나의 페이지의 크기는 2KB일 수 있다. In general, NAND flash memory is composed of several blocks, and one block is composed of several pages. For example, one block may consist of 64 pages, one block may be 128KB in size, and one page may be 2KB in size.

낸드 플래시 메모리의 기본 동작은 읽기, 쓰기 및 지우기 3가지가 있다. 낸드 플래시 메모리에 대한 읽기 및 쓰기는 페이지 단위로 일어나며 지우기 단위는 블록 단위로 일어난다.There are three basic operations of NAND flash memory: read, write and erase. Reads and writes to NAND flash memory occur in pages and erases occur in blocks.

도2는 낸드 플래시 메모리의 쓰기 및 지우기 과정을 예시한다. 도2에서는 낸드 플래시 메모리의 "쓰기전 지우기(Erase-before-write)" 특성을 나타낸다. 즉, 낸드 플래시 메모리에서는 특정 페이지의 데이터를 업데이트하기 위해서는 그 위치에 바로 쓰기할 수 없으며, 한 블록을 지우고 난 후에 쓸 수 있다. 도2의 (a)에 도시된 바와 같이, 하나의 블록의 첫번째 페이지에 A라는 데이터를 A*로 업데이트해야 하는 경우를 예시한다. 이를 위해서, 도2의 (b)에 도시된 바와 같이, 데이터 A를 포함한 전체 블록을 지우기 해야한다. 이후, 도2의 (c)에 도시된 바와 같이 해당 페이지에 A*를 쓰기할 수 있다. 2 illustrates a write and erase process of a NAND flash memory. Fig. 2 shows the "Erase-before-write" characteristic of the NAND flash memory. That is, in NAND flash memory, in order to update data of a specific page, it is not possible to directly write to the position, but after erasing one block. As shown in FIG. 2A, a case in which data A needs to be updated to A * on the first page of one block is illustrated. For this purpose, as shown in Fig. 2B, the entire block including the data A must be erased. Thereafter, as shown in FIG. 2C, A * may be written to the corresponding page.

도1에 도시된 낸드 플래시 메모리부(400)에 포함된 제1메모리(410) 내지 제n메모리(4n0)는 각각 낸드 플래시 메모리일 수 있다. Each of the first memories 410 through n-th memory 4n0 included in the NAND flash memory 400 illustrated in FIG. 1 may be a NAND flash memory.

플래시 변환 계층(FTL)은 HDD(Hard Disk Drive)가 사용하는 블록 디바이스 인터페이스를 동일하게 SSD에 사용하기 위한 구성이다. 플래시 변환 계층은 주소 매핑(address mapping)을 통해서 가상 주소를 물리 주소로 변환시킴으로써 전술한 낸드 플래시 메모리의 쓰기전 지우기 문제점을 해결할 수 있다.The flash translation layer (FTL) is a configuration for using a block device interface used by a hard disk drive (HDD) in an SSD. The flash translation layer can solve the above-described write erase problem of the NAND flash memory by converting a virtual address into a physical address through address mapping.

플래시 변환 계층(FTL)은 가비지 컬렉션(GC) 동작을 수행한다. 이러한 가비지 컬렉션 동작은 비활성화된 페이지를 모아 빈 공간을 만들기 위한 것으로서 SSD 성능에 큰 영향을 미친다. The flash translation layer (FTL) performs a garbage collection (GC) operation. This garbage collection operation is designed to collect inactive pages to make free space, which greatly affects SSD performance.

도3은 낸드 플래시 메모리에서 가비지 컬렉션 과정을 예시한다. 도3(a)에 도시된 바와 같이, A 및 B를 업데이트 하고자 할 때 A 및 B가 위치한 페이지에 바로 업데이트를 하지 않고 동일한 블록(K1)의 다른 위치에 업데이트 데이터 A* 및 B*가 쓰기된다. 이럴 경우, 종래 A 및 B가 저장된 페이지는 비활성화된다. 도3(b)에 도시된 바와 같이, A* 및 B* 데이터는 종래 블록(K1)으로부터 읽기되어 새로운 블록(K2)으로 쓰기된다. 마지막으로 도3(c)에 도시된 바와 같이, 비활성화된 데이터 A 및 B를 포함하는 종래 블록(k1)은 지우기된다. 이때, 도3(b) 및 (c)에 도시된 바와 같은 과정이 가비지 컬렉션 과정으로 지칭될 수 있다. 3 illustrates a garbage collection process in a NAND flash memory. As shown in Fig. 3 (a), when trying to update A and B, update data A * and B * are written to another position of the same block K1 without updating directly on the page where A and B are located. . In this case, the page where the conventional A and B are stored is deactivated. As shown in Fig. 3B, A * and B * data are read from the conventional block K1 and written into a new block K2. Finally, as shown in Fig. 3C, the conventional block k1 containing the deactivated data A and B is erased. At this time, the process as shown in Figure 3 (b) and (c) may be referred to as a garbage collection process.

쓰기 버퍼(write buffer)는 낸드 플래시 메모리의 쓰기 동작이 읽기 동작보다 느린 점을 보완하기 위해서 램(RAM)을 활용하여 자주 쓰기 연산이 일어나는 데이터를 버퍼링 시킴으로써 성능을 높이기 위해 사용된다. 낸드 플래시 메모리의 쓰기 동작이 읽기 동작보다 느린 특성은 가비지 컬렉션 동작으로 인해 더욱 증대될 수 있다. 또한, 쓰기 버퍼는 랜덤(random)한 쓰기 요청을 순차적인 쓰기 요청으로 변환함으로써 낸드 플래시 메모리로의 쓰기 성능을 향상시킬 수 있다. 이와 같은 변환에 따라 낸드 플래시 메모리에서 가비지 컬렉션 동작이 감소되어 쓰기 성능이 향상될 수 있다. The write buffer is used to improve performance by buffering data in which write operations are frequently performed by using RAM to compensate for the slower write operation of the NAND flash memory. The write operation of NAND flash memory is slower than the read operation may be further increased by garbage collection operations. In addition, the write buffer may improve the write performance to the NAND flash memory by converting a random write request into a sequential write request. This conversion can reduce garbage collection operations in NAND flash memory, thereby improving write performance.

SSD의 성능을 높이기 위해서는 SSD의 다중채널 특성을 활용하여 I/O 병렬성을 증가시키면서 가비지 컬렉션 오버헤드를 감소시킬 필요가 있다. 이에 적합한 플래시 변환 계층(FTL)에 대한 알고리즘 및 쓰기 버퍼 알고리즘이 요구된다. To improve SSD performance, it is necessary to take advantage of the multichannel nature of SSD to reduce garbage collection overhead while increasing I / O parallelism. There is a need for an algorithm for the Flash translation layer (FTL) and a write buffer algorithm.

하지만, I/O 병렬성의 증가와 가비지 컬렉션 오버헤드 감소 사이에는 상충관계(trade-off relation)가 존재한다. 예컨대, 다중채널 FTL을 이용하는 경우 낸드 플래시 메모리로의 쓰기 및 읽기 I/O 병렬성은 증가할 수 있지만 높은 가비지 컬렉션 오버헤드가 발생할 수 있다. 또한, 다중채널 쓰기 버퍼를 이용하는 경우 낸드 플래시 메모리로의 쓰기 I/O 병렬성이 증가하고 낮은 가비지 컬렉션 오버헤드를 가지지만, 읽기 I/O 병렬성이 감소하는 문제점이 발생한다. However, there is a trade-off between increased I / O parallelism and reduced garbage collection overhead. For example, using multichannel FTL may increase write and read I / O parallelism to NAND flash memory, but may result in high garbage collection overhead. In addition, when the multi-channel write buffer is used, write I / O parallelism to NAND flash memory is increased and low garbage collection overhead occurs, but read I / O parallelism is reduced.

즉, 낸드 플래시 메모리로의 I/O 병렬성이 증가하는 경우 가비지 컬렉션 오버헤드 또한 증가하는 문제점이 야기되고 있다. In other words, when I / O parallelism to NAND flash memory increases, garbage collection overhead also increases.

따라서, 본 발명의 실시예에서는 쓰기될 데이터의 패턴 특징에 따라 적응적으로 쓰기 버퍼와 플래시 변환 계층 알고리즘을 이용함으로써 SSD의 성능을 향상시킬 수 있다. 즉, 순차적 패턴(sequential pattern)과 랜덤 패턴(random pattern)을 구별하여 각각의 경우에 적합한 쓰기 버퍼와 플래시 변환 계층의 알고리즘을 이용할 수 있다. Therefore, in the embodiment of the present invention, the performance of the SSD may be improved by adaptively using the write buffer and the flash translation layer algorithm according to the pattern characteristic of the data to be written. That is, a sequential pattern and a random pattern can be distinguished, and an algorithm of a write buffer and a flash translation layer suitable for each case can be used.

보다 구체적으로, 순차적 패턴은 자주 업데이트 되지 않는 콜드 데이터(cold data)의 특성을 나타낸다. 이는 가비지 컬렉션 동작이 적게 발생함을 의미한다. 따라서, 순차적 패턴을 갖는 데이터의 경우 가비지 컬렉션 오버헤드를 감소시키는 노력보다 읽기 및 쓰기 I/O 병렬화를 증가시키는 것이 중요할 수 있다. More specifically, the sequential pattern represents a characteristic of cold data that is not updated frequently. This means less garbage collection operations. Thus, for data with sequential patterns, it may be important to increase read and write I / O parallelism over efforts to reduce garbage collection overhead.

랜덤 패턴은 자주 업데이트가 되는 핫 데이터(hot data)의 특성을 나타낸다. 따라서, 랜덤 패턴을 갖는 데이터의 경우 읽기 및 쓰기 I/O 병렬화를 증가시키는 것보다 가비지 컬렉션 오버헤드를 줄이는 것이 중요할 수 있다.The random pattern represents a characteristic of hot data that is frequently updated. Thus, for data with random patterns, it may be important to reduce garbage collection overhead rather than to increase read and write I / O parallelism.

이와 같은 쓰기될 데이터의 패턴 특징에 따라서 다른 관리 정책을 적용하는 것이 바람직하다. 따라서, 본 발명의 실시예에서는 다중채널 SSD에서 패턴기반의 쓰기 버퍼 및 FTL의 통합 관리 기법을 제공하고자 한다. 본 발명의 실시예에 따르면, 순차적 패턴 및 랜덤 패턴의 특성을 고려하여 각각에 대한 쓰기 버퍼 및 FTL 정책을 다르게 적용함으로써 낸드 플래시 메모리로의 읽기 및 쓰기 I/O 병렬화 증가 및 가비지 컬렉션 오버헤드를 감소시킬 수 있다. 이에 따라 다중채널 SSD의 성능이 향상될 수 있다. It is desirable to apply different management policies according to such pattern characteristics of the data to be written. Accordingly, an embodiment of the present invention is to provide an integrated management scheme of a pattern-based write buffer and FTL in a multichannel SSD. According to an embodiment of the present invention, the write buffer and the FTL policy for each of them are differently applied in consideration of the characteristics of sequential patterns and random patterns, thereby increasing read and write I / O parallelism to NAND flash memory and reducing garbage collection overhead. You can. Accordingly, the performance of the multichannel SSD can be improved.

다시 도1을 참조하여 본 발명의 실시예에 따른 다중채널 SSD의 패턴기반 관리 시스템(100) 및 그 방법을 상세하게 살펴본다. 도1에 도시된 바와 같이, 본 발명의 실시예에 따른 다중채널 SSD의 패턴기반 관리 시스템(100)은 순차적 패턴인 경우 다중채널 FTL(311)과 단일빅팀 쓰기 버퍼를 이용하여 낸드 플래시 메모리부(400)로의 쓰기 및 읽기 관리가 이루어지고, 랜덤 패턴인 경우 단일채널 FTL(321)과 다중빅팀 쓰기 버퍼를 이용하여 낸드 플래시 메모리부(400)로의 쓰기 및 읽기 관리가 이루어질 수 있다. Referring back to Figure 1 looks at in detail with respect to the pattern-based management system 100 and method of the multi-channel SSD according to an embodiment of the present invention. As shown in FIG. 1, the pattern-based management system 100 of a multichannel SSD according to an exemplary embodiment of the present invention uses a NAND flash memory unit using a multichannel FTL 311 and a single big team write buffer in a sequential pattern. Write and read management to the 400 is performed, and in the case of a random pattern, write and read management to the NAND flash memory unit 400 may be performed using the single channel FTL 321 and the multi-team write buffer.

본 발명의 실시예에 따른 쓰기버퍼(200)는 패턴 검출 모듈(210), 단일빅팀 선정모듈(211), 다중빅팀 선정모듈(221), 순차적 패딩 모듈(212) 및/또는 채널할당 모듈(222)을 포함하여 구성될 수 있다. 또한, 본 발명의 실시예에 따른 플래시 변환 계층부(300)는 다중채널 플래시 변환계층(311) 및 복수개의 단일채널 플래시 변환계층(321)을 모두 포함할 수 있다. 이와 같이 쓰기버퍼(200) 및 플래시 변환 계층(300)을 구성함으로써 순차적 패턴 및 랜덤 패턴 각각에 대해서 적합한 관리가 가능하다. The write buffer 200 according to the embodiment of the present invention includes a pattern detection module 210, a single big team selection module 211, a multi big team selection module 221, a sequential padding module 212 and / or a channel assignment module 222. It may be configured to include). In addition, the flash conversion layer unit 300 according to an embodiment of the present invention may include both a multi-channel flash conversion layer 311 and a plurality of single channel flash conversion layer 321. By configuring the write buffer 200 and the flash conversion layer 300 in this way, it is possible to appropriately manage each of the sequential pattern and the random pattern.

패턴 검출 모듈(210)은 쓰기버퍼(200)에서 빅팀(victim)으로 선정될 블록의 패턴을 결정한다. 쓰기버퍼(200)는 예컨대 블록단위 LRU(Block-Level Least Recently Used)로 관리가 될 수 있으며, 이때 빅팀의 단위는 블록이 된다. 패턴 검출 모듈(210)은 빅팀 블록내에 연속된 활성화 페이지, 즉 낸드 플래시 메모리부(400)에 쓰여질 페이지 수가 특정 임계값 이상이 되면 순차적 패턴으로 판단할 수 있다. 또한, 패턴 검출 모듈(210)은 빅팀 블록내에 연속된 활성화 페이지, 즉 낸드 플래시 메모리부(400)에 쓰여질 페이지 수가 특정 임계값 미만이 되면 랜덤 패턴으로 판단할 수 있다. 여기서, 상기 임계값은 시스템(100)을 통해 달성하고자 하는 가비지 컬렉션 오버헤드 및 I/O 병렬성 정도에 따라 실시예마다 다르게 설정될 수 있다. 본 발명의 실시예에 따르면, 패턴이 쓰기버퍼(200) 내에서 검출됨으로써 정확한 패턴 판단이 가능하다. The pattern detection module 210 determines a pattern of a block to be selected as a Victim in the write buffer 200. The write buffer 200 may be managed, for example, in block-level least recently used (LRU) units, and the unit of the big team is a block. The pattern detection module 210 may determine a sequential pattern when the number of consecutive active pages in the Victim block, that is, the number of pages to be written in the NAND flash memory 400 is greater than or equal to a specific threshold. In addition, the pattern detection module 210 may determine a random pattern when the number of consecutive active pages in the Victim block, that is, the number of pages to be written in the NAND flash memory unit 400 is less than a specific threshold value. Here, the threshold may be set differently according to the embodiment according to the garbage collection overhead and the degree of I / O parallelism to be achieved through the system 100. According to the exemplary embodiment of the present invention, the pattern is detected in the write buffer 200, so that accurate pattern determination is possible.

패턴 검출 모듈(210)의 결과 순차적 패턴으로 판단되면 이는 후속적으로 순차적 패턴 관리 정책에 따라 관리된다. 도4는 본 발명의 실시예에 따른 SSD를 위한 패턴기반 관리 시스템(100)에서 순차적 패턴 관리를 예시한다. If it is determined that the result of the pattern detection module 210 is a sequential pattern, it is subsequently managed according to the sequential pattern management policy. 4 illustrates sequential pattern management in the pattern-based management system 100 for an SSD according to an embodiment of the present invention.

순차적 패턴은 업데이트가 자주되지 않는 특징을 가지므로, 가비지 컬렉션 오버헤드가 상대적으로 작다. 따라서, 읽기 및 쓰기 I/O 병렬화를 극대화할 수 있도록 다중채널 FTL(311)을 사용하여 I/O 병렬화를 증가시킬 수 있다. 또한, 쓰기버퍼(200)에서 빅팀을 선정할 때 하나의 블록만을 빅팀으로 선정하여 축출(eviction)한다. 이때, 쓰기버퍼(200)에서 하나의 블록만을 빅팀으로 선정하여 축출하는 기능은 도1에 도시된 단일빅팀 선정모듈(211)을 통해서 이루어질 수 있다. The sequential pattern has a feature of infrequently updating, so the garbage collection overhead is relatively small. Therefore, I / O parallelism can be increased by using the multichannel FTL 311 to maximize read and write I / O parallelism. In addition, when selecting a big team in the write buffer 200, only one block is selected as a big team and eviction. In this case, the function of selecting and extracting only one block as the big team from the write buffer 200 may be performed through the single big team selecting module 211 shown in FIG. 1.

도4에 도시된 바와 같이, 쓰기버퍼(200)는 다수의 빅팀 블록(201,...,204)을 포함할 수 있으며, 이는 블록단위 LRU에 따라 배열될 수 있다. 이때, 다수의 빅팀 블록(201,...,204) 중 블록(201)이 최근 사용빈도가 가장 낮은 것이 예시된다. 이때, 페이지에 저장된 데이터가 0 내지 15까지 순차적인 패턴을 갖는 것이 예시된다. 이와 같이 쓰기될 데이터가 순차적 패턴을 나타내는 경우 단일빅팀 선정모듈(211)은 쓰기버퍼(200)에서 최근 사용빈도가 가장 낮은 블록(201)을 선정하여 축출한다. As shown in FIG. 4, the write buffer 200 may include a plurality of Victim blocks 201,..., 204, which may be arranged according to the block unit LRU. At this time, it is illustrated that the most frequently used block 201 among the plurality of Victim blocks 201, 204, 204 is the lowest. At this time, the data stored in the page has a sequential pattern from 0 to 15 is illustrated. As described above, when the data to be written indicates a sequential pattern, the single big team selecting module 211 selects and removes the block 201 having the lowest frequency of use from the write buffer 200.

이때, 다중채널 플래시 변환 계층(311:다중채널 FTL)은 상기 블록에 저장된 데이터를 복수의 채널로 분산하여 낸드 플래시 메모리부(400)에 쓰기되도록 할 수 있다. 예컨대, 상기 블록(201)을 구성하는 페이지 단위로 별개의 채널에 분산될 수 있다. 예컨대, 데이터0을 포함하는 페이지는 다중채널 FTL(311)을 통해 제1채널을 이용하여 제1메모리(410)에 쓰기될 수 있고, 이와 유사하게 데이터3을 포함하는 페이지는 다중채널 FTL(311)을 통해 제n채널을 이용하여 제n메모리(4n0)에 쓰기될 수 있다. In this case, the multi-channel flash translation layer 311 (multi-channel FTL) may distribute the data stored in the block into a plurality of channels to be written to the NAND flash memory unit 400. For example, it may be distributed in separate channels in units of pages constituting the block 201. For example, a page including data 0 may be written to the first memory 410 using the first channel through the multichannel FTL 311, and similarly, a page including data 3 may be written to the multichannel FTL 311. ) Can be written to the nth memory 4n0 using the nth channel.

도5는 다중채널 FTL(311)의 메모리 쓰기 과정을 예시한다. 하나의 빅팀블록(201)에 포함된 각 페이지에 저장된 데이터(0,1,2,3)는 다중채널 FTL(311)의 복수의 채널 중 하나의 채널을 통해서 낸드 플래시 메모리부(400)에 포함된 제1메모리(410) 내지 제n메모리(4n0)에 쓰기될 수 있다. 예컨대, 블록(201)의 첫번째 페이지에 저장된 데이터(0)는 다중채널 FTL(311)의 제1채널을 통해서 제1메모리(410)에 쓰기될 수 있다. 이와 유사하게 데이터(1,2,3)가 각각 제2메모리(420) 내지 제n메모리(4n0)에 쓰기될 수 있다.5 illustrates a memory write process of the multichannel FTL 311. Data (0, 1, 2, 3) stored in each page included in one Victim block 201 is included in the NAND flash memory unit 400 through one of a plurality of channels of the multi-channel FTL 311. The first memory 410 to n-th memory 4n0 may be written. For example, the data 0 stored in the first page of the block 201 may be written to the first memory 410 through the first channel of the multi-channel FTL 311. Similarly, data 1, 2, and 3 may be written to the second memory 420 to the nth memory 4n0, respectively.

도1에 도시된 바와 같이, 본 발명의 실시예에 따른 쓰기버퍼(200)는 순차적 패딩 모듈(212)을 더 포함할 수 있다. 순차적 패딩 모듈(212)은 단일빅팀 선정모듈(211)에서 선정된 빅팀 블록(201)이 순차적인 패턴을 갖지만 블록 내의 모든 페이지가 활성화되지 않은 경우에 낸드 플래시 메모리부(400)로부터 데이터를 읽어서 해당 블록내의 모든 페이지를 활성화시키는 작업을 한다. 이와 같이 블록(2010 내의 모든 페이지를 순차적이면서 활성화되도록 함으로써 I/O 병렬화를 더욱 극대화할 수 있으며, 다중채널 FTL(311)에서의 관리 오버헤드(overhead)를 줄여줄 수 있다. 이에 따라 가비지 컬렉션 오버헤드 또한 감소될 수 있다. As shown in FIG. 1, the write buffer 200 according to the embodiment of the present invention may further include a sequential padding module 212. The sequential padding module 212 reads data from the NAND flash memory unit 400 when the Victim block 201 selected by the single Victim selection module 211 has a sequential pattern but all pages in the block are not activated. Activate all pages in the block. In this way, I / O parallelism can be further maximized by sequentially activating all the pages in the block 2010, and the management overhead in the multi-channel FTL 311 can be reduced. The head can also be reduced.

패턴 검출 모듈(210)의 결과 쓰기될 데이터가 랜덤 패턴을 갖는 것으로 판단되면 이는 후속적으로 랜덤 패턴 관리 정책에 따라 관리된다. 도6은 본 발명의 실시예에 따른 SSD를 위한 패턴기반 관리 시스템(100)에서 랜덤 패턴 관리를 예시한다. If it is determined that the data to be written as a result of the pattern detection module 210 has a random pattern, it is subsequently managed according to the random pattern management policy. 6 illustrates random pattern management in a pattern based management system 100 for an SSD according to an embodiment of the present invention.

랜덤 패턴은 업데이트가 자주되는 특징을 가진다. 따라서, 가비지 컬렉션 오버헤드를 줄이는 것이 매우 중요하다. 가비지 컬렉션 오버헤드를 줄이기 위해서 본 발명의 실시예에서는 하나의 채널을 갖는 단일채널 FTL(321)을 복수개 사용할 수 있다. 이로인한 읽기 및 쓰기 I/O 병렬화 감소는 쓰기버퍼(200)에서 빅팀 선정시에 한번에 채널 개수만큼의 빅팀을 선정하여 각 채널로 할당함으로써 극복될 수 있다. 쓰기버퍼(200)에서 빅팀을 선정할 때 복수개의 블록을 빅팀으로 선정하여 축출(eviction)한다. 이때, 쓰기버퍼(200)에서 복수개의 블록을 빅팀으로 선정하여 축출하는 기능은 도1에 도시된 다중빅팀 선정모듈(221)을 통해서 이루어질 수 있다. 이로 인해 하나의 블록에 대한 읽기 I/O 병렬화는 감소하지만, 랜덤 패턴이므로 그 영향은 매우 작은 상황이 가정된다. The random pattern is characterized by frequent updates. Therefore, it is very important to reduce garbage collection overhead. In order to reduce garbage collection overhead, a plurality of single channel FTLs 321 having one channel may be used in an embodiment of the present invention. This reduction in read and write I / O parallelism can be overcome by selecting as many Victims as the number of channels at once when selecting the Victims in the write buffer 200 and assigning them to each channel. When the big team is selected in the write buffer 200, a plurality of blocks are selected as the big team and eviction. In this case, the function of selecting and extracting a plurality of blocks as a big team from the write buffer 200 may be performed through the multi-big team selection module 221 shown in FIG. 1. This reduces read I / O parallelism for one block, but assumes a very small impact because it is a random pattern.

도6에 도시된 바와 같이, 쓰기버퍼(200)는 다수의 빅팀 블록(201,...,204)을 포함할 수 있으며, 이는 블록단위 LRU에 따라 배열될 수 있다. 이때, 다중빅팀 선정모듈(221)은 다수의 빅팀 블록(201,...,204) 중 최근 사용빈도가 낮은 순서로 복수개의 빅팀 블록(201,...,204)을 선정하여 축출할 수 있다. 이때, 페이지에 저장된 데이터가 임의의 패턴을 갖는 것이 예시된다. As shown in FIG. 6, the write buffer 200 may include a plurality of Victim blocks 201,..., 204, which may be arranged according to the block unit LRU. In this case, the multi-big team selection module 221 may select and evoke the plurality of big team blocks 201, ..., 204 in order of low frequency of use among the plurality of big team blocks 201, ..., 204. have. At this time, it is illustrated that the data stored in the page has an arbitrary pattern.

쓰기버퍼(200)의 다중빅팀 선정모듈(221)에 의해 선정 및 축출된 복수개의 빅팀 블록들은 채널 할당 모듈(222)을 통해 각각 단일채널 FTL(321)에 할당된다. 즉, 201로 표시된 빅팀 블록은 제1단일채널 FTL(321_1)에 할당되어 제1채널을 통해 낸드 플래시 메모리부(400)에 쓰기될 수 있다. 이와 유사하게 204로 표시된 빅팀 블록은 제n단일채널 FTL(321_n)에 할당되어 제n채널을 통해 낸드 플래시 메모리부(400)에 쓰기될 수 있다. The plurality of Victim blocks selected and evicted by the multi-victim selection module 221 of the write buffer 200 are allocated to the single channel FTL 321 through the channel allocation module 222. That is, the Victim block denoted by 201 may be allocated to the first single channel FTL 321_1 to be written to the NAND flash memory unit 400 through the first channel. Similarly, the Victim block denoted by 204 may be allocated to the nth single channel FTL 321_n and written to the NAND flash memory unit 400 through the nth channel.

이상에서 살펴본 바와 같이, 쓰기버퍼(200)에서 다중빅팀 선정모듈(221)을 통해 선정된 복수개의 빅팀들은 채널 할당 모듈(222)을 통해 각각의 채널에 할당된다. 이때, 새로운 블록의 경우 각 채널의 지우기 횟수가 가장 작은 채널로 할당되어 채널당 지우기 횟수를 균등하게 함으로써 웨어레벨링(wear leveling)을 수행할 수 있다. 또한, 이미 채널에 할당된 블록의 경우에는 동일 채널에 할당함으로써 채널간 마이그레이션(migration) 오버헤드를 감소시킬 수 있다. As described above, the plurality of big teams selected through the multi-big team selection module 221 in the write buffer 200 are allocated to each channel through the channel assignment module 222. In this case, in the case of a new block, wear leveling may be performed by equalizing the number of erasing per channel by assigning the least number of erasing of each channel. In addition, in the case of a block already allocated to the channel, by allocating to the same channel, it is possible to reduce the migration overhead between channels.

본 발명의 실시예에 따른 쓰기버퍼(200) 및/또는 플래시 변환 계층부(300) 일부 또는 전부는 전술한 바와 같은 기능을 컴퓨팅 시스템에서 수행할 수 있도록 하는 하드웨어 모듈 및/또는 소프트웨어 모듈로 구현될 수 있다.Some or all of the write buffer 200 and / or flash translation layer 300 according to an embodiment of the present invention may be implemented as hardware modules and / or software modules that enable the computing system to perform the functions described above. Can be.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. will be. Therefore, it should be understood that the above-described embodiments are to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than the foregoing description, It is intended that all changes and modifications derived from the equivalent concept be included within the scope of the present invention.

100: 다중채널 SSD의 패턴기반 관리 시스템
200: 쓰기버퍼
210: 패턴 검출 모듈
211: 단일빅팀 선정모듈
221; 다중빅팀 선정모듈
212: 순차적 패딩 모듈
222: 채널 할당 모듈
300: 플래시 변환 계층부
311: 다중채널 FTL
321: 단일채널 FTL
400: 낸드 플래시 메모리부
100: pattern-based management system of multi-channel SSD
200: write buffer
210: pattern detection module
211: Single Big Team Selection Module
221; Multi-Big Team Selection Module
212: Sequential Padding Module
222: channel allocation module
300: flash conversion layer
311: multichannel FTL
321: single channel FTL
400: NAND flash memory section

Claims (9)

쓰기버퍼, 플래시 변환계층부 및 낸드 플래시 메모리부를 포함하는 다중채널 SSD의 패턴기반 관리 시스템으로서,
상기 쓰기버퍼는:
상기 낸드 플래시 메모리부에 쓰기될 데이터의 패턴을 판단하는 패턴 검출 모듈;
상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 순차적 패턴인 때 하나의 빅팀 블록을 선정 및 축출하는 단일빅팀 선정모듈; 및
상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 랜덤 패턴인 때 복수의 빅팀 블록을 선정 및 축출하는 다중빅팀 선정모듈을 포함하는,
다중채널 SSD의 패턴기반 관리 시스템.
A pattern-based management system of a multichannel SSD including a write buffer, a flash translation layer unit, and a NAND flash memory unit,
The write buffer is:
A pattern detection module that determines a pattern of data to be written to the NAND flash memory unit;
A single big team selecting module for selecting and extracting one big team block when the pattern of the data to be written is a sequential pattern as a result of the determination of the pattern detecting module; And
And a multi-team selection module for selecting and evicting a plurality of big team blocks when the pattern of the data to be written is a random pattern as a result of the determination of the pattern detection module.
Pattern based management system of multi-channel SSD.
제1항에 있어서,
상기 플래시 변환계층부는:
상기 단일빅팀 선정모듈을 통해 선정 및 축출된 상기 하나의 빅팀 블록에 포함된 데이터를 복수의 채널을 통해 분산하여 상기 낸드 플래시 메모리부에 쓰기되도록 하는 다중채널 플래시 변환계층; 및
상기 다중빅팀 선정모듈을 통해 선정 및 축출된 상기 복수의 빅팀 블록을 하나씩 할당받아 별개의 채널을 통해 상기 낸드 플래시 메모리부에 쓰기되도록 하는 복수의 단일채널 플래시 변환계층을 포함하는,
다중채널 SSD의 패턴기반 관리 시스템.
The method of claim 1,
The flash conversion layer unit:
A multi-channel flash conversion layer for distributing data included in the one big team block selected and evicted by the single big team selection module through a plurality of channels to be written to the NAND flash memory unit; And
And a plurality of single channel flash conversion layers configured to receive the plurality of Victim blocks selected and evicted through the multi-victim selection module one by one and write them to the NAND flash memory through a separate channel.
Pattern based management system of multi-channel SSD.
제2항에 있어서,
상기 쓰기버퍼는:
상기 낸드 플래시 메모리부로부터 데이터를 읽어와 상기 단일빅팀 선정모듈을 통해 선정 및 축출된 상기 하나의 빅팀 블록 내에 활성화되지 않은 페이지를 활성화시키는 순차적 패딩 모듈을 더 포함하는,
다중채널 SSD의 패턴기반 관리 시스템.
3. The method of claim 2,
The write buffer is:
And a sequential padding module configured to read data from the NAND flash memory unit and to activate an unactivated page in the one Victim block selected and evicted through the single Victim selection module.
Pattern based management system of multi-channel SSD.
제2항 또는 제3항에 있어서,
상기 쓰기버퍼는:
상기 다중빅팀 선정모듈을 통해 선정 및 축출된 상기 복수의 빅팀 블록 각각을 상기 복수의 단일채널 플래시 변환계층에 할당하는 채널 할당 모듈을 더 포함하는,
다중채널 SSD의 패턴기반 관리 시스템.
The method according to claim 2 or 3,
The write buffer is:
And a channel allocation module for assigning each of the plurality of Victim blocks selected and evicted through the multi-victim selection module to the plurality of single channel flash translation layers.
Pattern based management system of multi-channel SSD.
쓰기버퍼, 플래시 변환계층부 및 낸드 플래시 메모리부를 포함하는 다중채널 SSD의 패턴기반 관리 시스템의 관리방법으로서,
상기 쓰기버퍼에 포함된 패턴 검출 모듈에서 상기 낸드 플래시 메모리부에 쓰기될 데이터의 패턴을 판단하는 단계;
상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 순차적 패턴인 때 하나의 빅팀 블록을 선정 및 축출하는 단계; 및
상기 패턴 검출 모듈의 판단 결과 상기 쓰기될 데이터의 패턴이 랜덤 패턴인 때 복수의 빅팀 블록을 선정 및 축출하는 단계를 포함하는,
다중채널 SSD의 패턴기반 관리 시스템의 관리방법.
A method of managing a pattern-based management system of a multichannel SSD including a write buffer, a flash conversion layer unit, and a NAND flash memory unit,
Determining a pattern of data to be written to the NAND flash memory unit by a pattern detection module included in the write buffer;
Selecting and extracting one Victim block when the pattern of the data to be written is a sequential pattern as a result of the determination of the pattern detection module; And
Selecting and evicting a plurality of Victim blocks when the pattern of the data to be written is a random pattern as a result of the determination of the pattern detection module;
A method of managing pattern-based management system of multi-channel SSD.
제5항에 있어서,
하나의 빅팀 블록을 선정 및 축출하는 단계 후에:
상기 플래시 변환계층부에 포함된 다중채널 플래시 변환계층을 통해 상기 하나의 빅팀 블록에 포함된 데이터를 복수의 채널을 통해 분산하여 상기 낸드 플래시 메모리부에 쓰기하는 단계를 더 포함하는,
다중채널 SSD의 패턴기반 관리 시스템의 관리방법.
6. The method of claim 5,
After the step of selecting and ousting one Big Team block:
The method may further include distributing data included in the one Victim block through a plurality of channels through the multi-channel flash conversion layer included in the flash conversion layer unit and writing the data to the NAND flash memory unit.
A method of managing pattern-based management system of multi-channel SSD.
제5항에 있어서,
상기 복수의 빅팀 블록을 선정 및 축출하는 단계 후에:
상기 플래시 변환계층부에 포함된 복수의 단일채널 플래시 변환계층을 통해 상기 복수의 빅팀 블록을 하나씩 할당받아 별개의 채널을 통해 상기 낸드 플래시 메모리부에 쓰기하는 단계를 더 포함하는,
다중채널 SSD의 패턴기반 관리 시스템의 관리방법.
6. The method of claim 5,
After selecting and evicting the plurality of Victim blocks:
And receiving the plurality of Victim blocks one by one through a plurality of single channel flash conversion layers included in the flash conversion layer unit and writing the plurality of Victim blocks to the NAND flash memory unit through a separate channel.
A method of managing pattern-based management system of multi-channel SSD.
제6항에 있어서,
상기 쓰기하는 단계 전에:
상기 낸드 플래시 메모리부로부터 데이터를 읽어와 상기 하나의 빅팀 블록 내에 활성화되지 않은 페이지를 활성화시키는 단계를 더 포함하는,
다중채널 SSD의 패턴기반 관리 시스템의 관리방법.
The method according to claim 6,
Before the above write step:
And reading data from the NAND flash memory unit to activate a page that is not activated in the one big block.
A method of managing pattern-based management system of multi-channel SSD.
제7항에 있어서,
상기 쓰기하는 단계 전에:
상기 복수의 빅팀 블록 각각을 상기 복수의 단일채널 플래시 변환계층에 할당하는 단계를 더 포함하는,
다중채널 SSD의 패턴기반 관리 시스템의 관리방법.
8. The method of claim 7,
Before the above write step:
Allocating each of the plurality of Victim blocks to the plurality of single channel flash translation layers;
A method of managing pattern-based management system of multi-channel SSD.
KR1020130010978A 2013-01-31 2013-01-31 Pattern-aware management system for multi-channel ssd and method therefor KR101381597B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130010978A KR101381597B1 (en) 2013-01-31 2013-01-31 Pattern-aware management system for multi-channel ssd and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130010978A KR101381597B1 (en) 2013-01-31 2013-01-31 Pattern-aware management system for multi-channel ssd and method therefor

Publications (1)

Publication Number Publication Date
KR101381597B1 true KR101381597B1 (en) 2014-04-07

Family

ID=50656599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130010978A KR101381597B1 (en) 2013-01-31 2013-01-31 Pattern-aware management system for multi-channel ssd and method therefor

Country Status (1)

Country Link
KR (1) KR101381597B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891073B2 (en) 2018-04-05 2021-01-12 Research & Business Foundation Sungkyunkwan University Storage apparatuses for virtualized system and methods for operating the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120003282A (en) * 2010-07-02 2012-01-10 삼성전자주식회사 Memory system selecting write mode of data block and data write method thereof
KR20120074707A (en) * 2010-12-28 2012-07-06 한양대학교 산학협력단 Flash memory based storage and method for address mapping and data allocation therefor
KR20120131579A (en) * 2011-05-26 2012-12-05 에스코어 주식회사 Flash file system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120003282A (en) * 2010-07-02 2012-01-10 삼성전자주식회사 Memory system selecting write mode of data block and data write method thereof
KR20120074707A (en) * 2010-12-28 2012-07-06 한양대학교 산학협력단 Flash memory based storage and method for address mapping and data allocation therefor
KR20120131579A (en) * 2011-05-26 2012-12-05 에스코어 주식회사 Flash file system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891073B2 (en) 2018-04-05 2021-01-12 Research & Business Foundation Sungkyunkwan University Storage apparatuses for virtualized system and methods for operating the same

Similar Documents

Publication Publication Date Title
EP2715510B1 (en) Method for storage devices to achieve low write amplification with low over provision
US9785558B2 (en) Mixed cache management
US9047200B2 (en) Dynamic redundancy mapping of cache data in flash-based caching systems
US8954656B2 (en) Method and system for reducing mapping table size in a storage device
KR102050732B1 (en) Computing system and method for managing data in the system
KR20130096881A (en) Flash memory device
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
US20140223072A1 (en) Tiered Caching Using Single Level Cell and Multi-Level Cell Flash Technology
KR20200116372A (en) Storage device, controller and operating method of controller thereof
US10853252B2 (en) Performance of read operations by coordinating read cache management and auto-tiering
CN113254358A (en) Method and system for address table cache management
US11630779B2 (en) Hybrid storage device with three-level memory mapping
KR101180288B1 (en) Method for managing the read and write cache in the system comprising hybrid memory and ssd
US20210248086A1 (en) Prefetching data elements within a heterogeneous cache
KR20120037218A (en) Method for managing mapping table of ssd device
Yao et al. HDFTL: An on-demand flash translation layer algorithm for hybrid solid state drives
KR101381597B1 (en) Pattern-aware management system for multi-channel ssd and method therefor
KR20150127434A (en) Memory management apparatus and control method thereof
US10101934B1 (en) Memory allocation balancing for storage systems
US11182307B2 (en) Demoting data elements from cache using ghost cache statistics
US10552325B2 (en) Reducing write-backs to memory by controlling the age of cache lines in lower level cache
KR100962186B1 (en) Ultra low power storage system and data management method thereof
Kim et al. Advil: A pain reliever for the storage performance of mobile devices
Jung et al. Hierarchical use of heterogeneous flash memories for high performance and durability
Shim et al. MNK: Configurable hybrid flash translation layer for multi-channel SSD

Legal Events

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

Payment date: 20170224

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee