KR101319589B1 - Method for distinguishing write data of solid state drive and controller thereof - Google Patents

Method for distinguishing write data of solid state drive and controller thereof Download PDF

Info

Publication number
KR101319589B1
KR101319589B1 KR1020110080361A KR20110080361A KR101319589B1 KR 101319589 B1 KR101319589 B1 KR 101319589B1 KR 1020110080361 A KR1020110080361 A KR 1020110080361A KR 20110080361 A KR20110080361 A KR 20110080361A KR 101319589 B1 KR101319589 B1 KR 101319589B1
Authority
KR
South Korea
Prior art keywords
data
logical address
write command
write
level cell
Prior art date
Application number
KR1020110080361A
Other languages
Korean (ko)
Other versions
KR20130017749A (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 KR1020110080361A priority Critical patent/KR101319589B1/en
Publication of KR20130017749A publication Critical patent/KR20130017749A/en
Application granted granted Critical
Publication of KR101319589B1 publication Critical patent/KR101319589B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers

Abstract

본 발명의 일 실시예에 따른 SSD의 쓰기 데이터 분별 방법은 다수의 싱글 레벨 셀(SLC)과 다수의 멀티 레벨 셀(MLC)을 포함하는 솔리드 스테이트 드라이브(SSD)의 쓰기 데이터 분별 방법에 있어서, 파일 시스템으로부터 제1 쓰기 명령을 수신하는 단계; 상기 수신된 상기 제1 쓰기 명령의 제1 논리 주소를 확인하는 단계; 및 상기 확인된 상기 제1 논리 주소를 기초로 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀과 상기 멀티 레벨 셀 중 어느 하나의 쓰기 데이터로 분별하는 단계를 포함하고, 나아가 상기 어느 하나의 쓰기 데이터로 분별하는 단계는 상기 제1 논리 주소와 상기 제1 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제2 쓰기 명령의 제2 논리 주소 간에 기 설정된 규칙성이 있는지 판단하는 단계; 및 상기 제1 논리 주소와 상기 제2 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계를 포함함으로써, 하이브리드 SSD의 성능 및 하이브리드 SSD가 적용된 장치의 전체적인 성능을 향상시킬 수 있다.According to an embodiment of the present invention, a write data classification method of an SSD may include a file in the write data classification method of a solid state drive (SSD) including a plurality of single-level cells (SLC) and a plurality of multi-level cells (MLC). Receiving a first write command from the system; Verifying a first logical address of the received first write command; And classifying data of the first write command into write data of any one of the single level cell and the multi-level cell based on the identified first logical address, and further, the one write data. The step of classifying into a step may include determining whether there is a predetermined regularity between the first logical address and a second logical address of a second write command received from the file system prior to the first write command; And dividing the data of the first write command into the write data of the multi-level cell when the regularity exists between the first logical address and the second logical address. The overall performance of the applied device can be improved.

Description

솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법 및 그 컨트롤러{Method for distinguishing write data of solid state drive and controller thereof}Method for distinguishing write data of solid state drive and controller about

본 발명은 솔리드 스테이트 드라이브(SSD: Solid State Drive, 이하 "SSD"라 칭함)에 관한 것으로, 보다 상세하게는 파일 시스템으로부터 하이브리드 SSD로 전송되는 쓰기 명령의 데이터를 싱글 레벨 셀(SLC: Single-Level-Cell, 이하 "SLC"라 칭함)과 멀티 레벨 셀(MLC: Multi-Level-Cell, 이하 "MLC"라 칭함)의 특성에 맞게 분별하여 하이브리드 SSD의 성능을 향상시킬 수 있는 SSD의 쓰기 데이터 분별 방법 및 그 컨트롤러에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a solid state drive (SSD), and more particularly, to a single level cell (SLC) for writing data of a write command transferred from a file system to a hybrid SSD. -Classification of write data of SSD that can improve performance of hybrid SSD by classifying according to characteristics of Cell, hereinafter referred to as "SLC") and multi-level cell (MLC: Multi-Level-Cell, hereinafter referred to as "MLC"). It relates to a method and a controller thereof.

최근 SLC와 MLC 플래시 메모리를 병합하여 사용하는 새로운 하이브리드 SSD가 개발되었다. SLC칩은 빠른 성능을 자랑하지만 고가이며, MLC칩은 저가이지만 SLC에 비하여 비교적 낮은 성능을 보인다.Recently, a new hybrid SSD has been developed that combines SLC and MLC flash memory. SLC chips are fast but expensive, and MLC chips are low cost but relatively low.

하이브리드 SSD는 두 칩의 단점을 보완하기 위해 SLC칩과 MLC칩을 모두 사용하는 새로운 저장매체이다. 이 저장매체는 두 가지 종류의 칩으로 구성되어 있기 때문에 정보를 분별하여 SLC칩과 MLC칩에 저장하는 효율적인 알고리즘을 필요로 한다. 또한, 하이브리드 SSD의 읽기/쓰기 단위는 파일 시스템의 읽기/쓰기 단위보다 4~16배 크기 때문에 파일 시스템에서 전송하는 데이터를 레지스터에 재구성하여 하이브리드 SSD에 쓰기 연산을 수행하여야 한다.Hybrid SSDs are a new storage medium that uses both SLC and MLC chips to compensate for the shortcomings of both chips. Since the storage medium is composed of two types of chips, an efficient algorithm for classifying information and storing the information in an SLC chip and an MLC chip is required. In addition, since the read / write unit of the hybrid SSD is 4 to 16 times larger than the read / write unit of the file system, the write operation must be performed on the hybrid SSD by reconfiguring data transmitted from the file system into a register.

하이브리드 SSD는 SLC들로 이루어진 다수의 플레인(plane)들과 MLC들로 이루어진 다수의 플레인들을 포함한다. 이 때 각각의 플레인에 하나의 레지스터(register)가 배치될 수 있다. 레지스터의 크기는 해당 플레인이 SLC 플레인인지 MLC 플레인인지에 따라 결정될 수 있다. SLC 플레인의 레지스터의 크기와 MLC 플레인의 레지스터의 크기는 서로 다를 수 있으나, SLC 플레인들끼리는 같은 크기의 레지스터를 가지고, MLC 플레인들끼리는 같은 크기의 레지스터를 가진다.Hybrid SSDs include multiple planes of SLCs and multiple planes of MLCs. In this case, one register may be disposed in each plane. The size of the register may be determined depending on whether the plane is an SLC plane or an MLC plane. The register size of the SLC plane and the register size of the MLC plane may be different, but the SLC planes have registers of the same size, and the MLC planes have registers of the same size.

하이브리드 SSD는 파일 시스템에서 쓰기 명령과 함께 정보가 전송되면, 정보의 크기에 따라 정보가 속성 정보(혹은 랜덤 정보)인지 사용자 정보(순차 정보)인지를 파악한다. 속성 정보는 SLC 레지스터에 저장되며 사용자 정보는 MLC 레지스터에 저장된다. SLC칩의 성능이 MLC칩보다 높기 때문에 정보 갱신이 빈번히 일어나는 속성 정보를 저장하기에 적합하며, MLC칩은 저가의 칩이기 때문에 대용량의 사용자 정보를 저장하기에 적합하다.When information is transmitted with a write command in a file system, the hybrid SSD determines whether the information is attribute information (or random information) or user information (sequential information) according to the size of the information. Attribute information is stored in the SLC register and user information is stored in the MLC register. Since the performance of the SLC chip is higher than that of the MLC chip, it is suitable for storing attribute information that frequently updates information. Since the MLC chip is a low-cost chip, it is suitable for storing a large amount of user information.

이와 같은 시스템을 지닌 하이브리드 SSD는 속성 정보와 사용자 정보를 명확하게 판단할 수 있는 알고리즘을 필요로 한다.Hybrid SSDs with such systems require algorithms that can clearly determine attribute information and user information.

종래 일 실시예에 기술에 따른 속성 정보와 사용자 정보를 판단하는 방법은 단순히 정보의 크기에 따라 속성 정보인지 사용자 정보인지를 판단하여 각 레지스터에 저장하였다.In the method of determining the attribute information and the user information according to the conventional technique, it is determined whether the attribute information or the user information is simply stored according to the size of the information and stored in each register.

하지만, 이와 같은 종래 기술은 부정확한 정보 분별을 초래할 수 있으며, 이로 인해 속성 데이터가 MLC칩에 저장되어 하이브리드 SSD의 전체적인 성능을 저하시킬 수 있는 문제점이 있다. 그리고, 이런 문제점은 하이브리드 SSD의 용량이 증가함에 따라 하이브리드 SSD의 전체적인 성능에 더 큰 영향을 줄 수 있다.
However, such a prior art may cause inaccurate classification of information, which may cause attribute data to be stored in the MLC chip, thereby lowering the overall performance of the hybrid SSD. In addition, this problem may have a greater impact on the overall performance of the hybrid SSD as the capacity of the hybrid SSD increases.

따라서, 속성 정보와 사용자 정보를 정확하게 분별하여 하이브리드 SSD의 성능을 향상시킬 수 있는 방법의 필요성이 대두된다.Accordingly, there is a need for a method of accurately classifying attribute information and user information to improve the performance of a hybrid SSD.

한국등록특허공보 제0875539호 (등록일 2008.12.16)Korean Registered Patent Publication No. 0875539 (Registered 2008.12.16)

Chang,L.P. et al., "A Hybrid Approach to NAND-Flash-Based Solid-State Disks", IEEE Computer Society, pp. 1337~1349 (공개일 2010. 08).Chang, L.P. et al., "A Hybrid Approach to NAND-Flash-Based Solid-State Disks", IEEE Computer Society, pp. 1337-1349 (public date 2010. 08).

본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 파일 시스템의 속성 정보와 사용자 정보를 정확하게 분별하여 하이브리드 SSD의 성능을 향상시킬 수 있는 SSD의 쓰기 데이터 분별 방법 및 그 컨트롤러를 제공하는 것을 목적으로 한다.The present invention was derived to solve the above problems of the prior art, and provides a write data classification method of a SSD and a controller thereof, which can improve performance of a hybrid SSD by accurately classifying attribute information and user information of a file system. For the purpose of

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 SSD의 쓰기 데이터 분별 방법은 다수의 싱글 레벨 셀(SLC)과 다수의 멀티 레벨 셀(MLC)을 포함하는 솔리드 스테이트 드라이브(SSD)의 쓰기 데이터 분별 방법에 있어서, 파일 시스템으로부터 제1 쓰기 명령을 수신하는 단계; 상기 수신된 상기 제1 쓰기 명령의 제1 논리 주소를 확인하는 단계; 및 상기 확인된 상기 제1 논리 주소를 기초로 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀과 상기 멀티 레벨 셀 중 어느 하나의 쓰기 데이터로 분별하는 단계를 포함한다.In order to achieve the above object, a write data classification method of an SSD according to an embodiment of the present invention is a solid state drive (SSD) including a plurality of single-level cells (SLC) and a plurality of multi-level cells (MLC) CLAIMS What is claimed is: 1. A method of classifying write data, the method comprising: receiving a first write command from a file system; Verifying a first logical address of the received first write command; And classifying data of the first write command into write data of any one of the single level cell and the multi-level cell based on the identified first logical address.

상기 어느 하나의 쓰기 데이터로 분별하는 단계는 상기 제1 논리 주소와 상기 제1 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제2 쓰기 명령의 제2 논리 주소 간에 기 설정된 규칙성이 있는지 판단하는 단계; 및 상기 제1 논리 주소와 상기 제2 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계를 포함할 수 있다.The classifying into any one write data may include determining whether there is a predetermined regularity between the first logical address and a second logical address of a second write command received from the file system prior to the first write command; And dividing data of the first write command into write data of the multi-level cell when the regularity exists between the first logical address and the second logical address.

상기 어느 하나의 쓰기 데이터로 분별하는 단계는 상기 제1 논리 주소와 상기 멀티 레벨 셀을 위한 제1 레지스터에 기 분별 저장된 제3 논리 주소 간에 기 설정된 규칙성이 있는지 판단하는 단계; 및 상기 제1 논리 주소와 상기 제3 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계를 포함할 수 있고, 나아가 상기 제1 논리 주소와 상기 제3 논리 주소 간에 상기 규칙성이 없는 경우 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 단계를 더 포함할 수 있다.The classifying into any one write data may include determining whether there is a predetermined regularity between the first logical address and a third logical address stored in a first register for the multi-level cell; And when the regularity exists between the first logical address and the third logical address, dividing the data of the first write command into the write data of the multi-level cell, and further, the first logical address. And dividing the data of the first write command into write data of the single level cell when there is no regularity between and the third logical address.

상기 어느 하나의 쓰기 데이터로 분별하는 단계는 상기 파일 시스템으로부터 제4 쓰기 명령을 수신하는 단계; 상기 수신된 상기 제4 쓰기 명령의 제4 논리 주소를 확인하는 단계; 상기 제1 논리 주소와 상기 제4 논리 주소 간에 기 설정된 규칙성이 있는지 판단하는 단계; 및 상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터와 상기 제4 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계를 포함할 수 있고, 나아가 상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 없는 경우 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 단계를 더 포함할 수 있다.The classifying into any one write data may include receiving a fourth write command from the file system; Confirming a fourth logical address of the received fourth write command; Determining whether there is a predetermined regularity between the first logical address and the fourth logical address; And dividing the data of the first write command and the data of the fourth write command into write data of the multi-level cell when the regularity exists between the first logical address and the fourth logical address. The method may further include classifying data of the first write command into write data of the single level cell when there is no regularity between the first logical address and the fourth logical address.

상기 어느 하나의 쓰기 데이터로 분별하는 단계는 상기 제1 논리 주소와 상기 제1 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제5 쓰기 명령의 제5 논리 주소가 동일한지 판단하는 단계; 및 상기 제1 논리 주소와 상기 제5 논리 주소가 동일한 경우 상기 제1 쓰기 명령의 데이터를 상기 제5 쓰기 명령의 데이터에 대한 갱신 데이터로 판단하여 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 단계를 포함할 수 있다.
The classifying into any one write data may include determining whether a first logical address and a fifth logical address of a fifth write command received from the file system prior to the first write command are the same; And when the first logical address and the fifth logical address are the same, determine the data of the first write command as update data for the data of the fifth write command, and determine the data of the first write command in the single level cell. And classifying into write data.

본 발명의 일 실시예에 따른 SSD 컨트롤러는 다수의 싱글 레벨 셀(SLC)과 다수의 멀티 레벨 셀(MLC)을 포함하는 솔리드 스테이트 드라이브(SSD)의 컨트롤러에 있어서, 파일 시스템으로부터 제1 쓰기 명령을 수신하는 수신부; 상기 수신된 상기 제1 쓰기 명령의 제1 논리 주소를 확인하는 확인부; 및 상기 확인된 상기 제1 논리 주소를 기초로 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀과 상기 멀티 레벨 셀 중 어느 하나의 쓰기 데이터로 분별하는 분별부를 포함한다.The SSD controller according to an embodiment of the present invention is a controller of a solid state drive (SSD) including a plurality of single-level cells (SLC) and a plurality of multi-level cells (MLC), the first write command from the file system Receiving unit for receiving; A confirmation unit to confirm a first logical address of the received first write command; And a classification unit classifying data of the first write command into write data of any one of the single level cell and the multi-level cell based on the identified first logical address.

본 발명에 따르면, 파일 시스템의 속성 정보와 사용자 정보를 명확하게 분별하여 하이브리드 SSD를 구성하는 SLC와 MLC에 각각의 특성에 맞는 정보를 저장함으로써, 하이브리드 SSD의 전체적인 성능을 향상시킬 수 있다.According to the present invention, the overall performance of the hybrid SSD can be improved by clearly classifying the attribute information and the user information of the file system and storing information corresponding to each characteristic in the SLC and the MLC constituting the hybrid SSD.

구체적으로, 파일 시스템으로부터 수신되는 쓰기 명령의 논리 주소가 일정 규칙성을 가지는 경우 해당 쓰기 명령의 데이터를 사용자 정보로 판단하고, 동일 논리 주소를 갖는 쓰기 명령이 수신되면 해당 쓰기 명령의 데이터를 빈번한 정보 갱신이 이루어지는 속성 정보로 판단함으로써, 속성 정보와 사용자 정보를 명확하게 분별할 수 있다.In detail, when the logical address of the write command received from the file system has a certain regularity, the data of the corresponding write command is determined as user information. When the write command having the same logical address is received, the data of the corresponding write command is frequently checked. By judging from the attribute information to be updated, the attribute information and the user information can be clearly distinguished.

또한, 본 발명은 하이브리드 SSD를 사용할 수 있는 모든 장치 예를 들어, 휴대폰, 태블릿 PC, 노트북, MP3 플레이어, PDA, 포터블 컴퓨터(portable computer) 등에 적용 가능하며, 하이브리드 SSD의 용량이 증가함에 따라 적용 가능성이 높아질 수 있다.In addition, the present invention is applicable to all devices that can use the hybrid SSD, for example, mobile phones, tablet PCs, notebooks, MP3 players, PDAs, portable computers (portable computer), the possibility of application as the capacity of the hybrid SSD increases This can be high.

본 발명은 하이브리드 SSD의 전체적인 성능 향상에 의하여 하이브리드 SSD를 사용하는 장치의 성능을 향상시킬 수 있다.The present invention can improve the performance of a device using a hybrid SSD by improving the overall performance of the hybrid SSD.

도 1은 본 발명의 SSD 컨트롤러를 구비한 장치에 대한 일 실시예 구성을 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 SSD 컨트롤러에 대한 구성을 나타낸 것이다.
도 3은 본 발명에 따른 SSD 컨트롤러의 동작을 설명하기 위한 일 예의 제1 버퍼, 제1 레지스터 및 제2 레지스터 저장 상태를 나타낸 것이다.
도 4는 본 발명에 따른 SSD 컨트롤러의 동작을 설명하기 위한 다른 일 예의 제1 버퍼, 제1 레지스터 및 제2 레지스터 저장 상태를 나타낸 것이다.
도 5는 본 발명에 따른 SSD 컨트롤러의 동작을 설명하기 위한 또 다른 일 예의 제1 버퍼, 제1 레지스터 및 제2 레지스터 저장 상태를 나타낸 것이다.
도 6은 본 발명에 따른 SSD 컨트롤러의 동작을 설명하기 위한 또 다른 일 예의 제1 버퍼, 제1 레지스터 및 제2 레지스터 저장 상태를 나타낸 것이다.
도 7은 본 발명에 따른 SSD 컨트롤러의 동작을 설명하기 위한 또 다른 일 예의 제1 버퍼, 제1 레지스터 및 제2 레지스터 저장 상태를 나타낸 것이다.
도 8은 도 8은 본 발명의 일 실시예에 따른 SSD의 쓰기 데이터 분별 방법에 대한 동작 흐름도를 나타낸 것이다.
도 9는 도 8에 도시된 단계 S830 이 후의 추가적인 동작 흐름도를 나타낸 것이다.
Figure 1 shows an embodiment configuration for a device having an SSD controller of the present invention.
2 illustrates a configuration of an SSD controller according to an embodiment of the present invention.
3 illustrates an example of a first buffer, a first register, and a second register storage state for explaining an operation of the SSD controller according to the present invention.
4 illustrates a first buffer, a first register, and a second register storage state of another example for explaining the operation of the SSD controller according to the present invention.
5 illustrates a first buffer, a first register, and a second register storage state of another example for explaining the operation of the SSD controller according to the present invention.
6 illustrates a first buffer, a first register, and a second register storing state for explaining an operation of the SSD controller according to the present invention.
7 illustrates a first buffer, a first register, and a second register storage state of another example for explaining the operation of the SSD controller according to the present invention.
8 is a flowchart illustrating an operation of classifying write data of an SSD according to an embodiment of the present invention.
FIG. 9 shows a further operational flowchart after step S830 shown in FIG. 8.

상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부 도면을 참조한 실시 예에 대한 설명을 통하여 명백히 드러나게 될 것이다.Other objects and features of the present invention will become apparent from the following description of embodiments with reference to the accompanying drawings.

본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

이하에서는, 본 발명의 일 실시 예에 따른 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법 및 그 컨트롤러를 첨부된 도 1 내지 도 9를 참조하여 상세히 설명한다.
Hereinafter, a write data classification method of a solid state drive and a controller thereof according to an exemplary embodiment of the present invention will be described in detail with reference to FIGS. 1 to 9.

도 1은 본 발명의 SSD 컨트롤러를 구비한 장치에 대한 일 실시예 구성을 나타낸 것이다.Figure 1 shows an embodiment configuration for a device having an SSD controller of the present invention.

도 1을 참조하면, 장치는 컨트롤러(110), 제1 버퍼(130) 및 하이브리드 SSD(150)를 포함한다.Referring to FIG. 1, a device includes a controller 110, a first buffer 130, and a hybrid SSD 150.

컨트롤러(110)는 본 발명에 따른 SSD 컨트롤러로서, 파일 시스템으로부터 쓰기 명령을 수신하고, 수신된 쓰기 명령에 포함된 논리 주소를 확인하며, 확인된 논리 주소를 기초로 쓰기 명령의 데이터가 SLC의 쓰기 데이터 즉, 파일 시스템의 속성 정보인지 MLC의 쓰기 데이터 즉, 사용자 정보인지 판단한다.The controller 110 is an SSD controller according to the present invention. The controller 110 receives a write command from a file system, checks a logical address included in the received write command, and writes data of the write command based on the determined logical address. It is determined whether the data is attribute information of the file system or the write data of MLC, that is, user information.

여기서, 컨트롤러(110)는 수신된 쓰기 명령의 논리 주소와 파일 시스템으로부터 기 수신되어 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 데이터의 논리 주소 간에 규칙성 또는 동일 여부를 판단함으로써, 현재 수신된 쓰기 명령의 데이터가 SLC의 쓰기 데이터인지 MLC의 쓰기 데이터인지 분별할 수 있다.Here, the controller 110 may perform regularity between the logical address of the received write command and the logical address of data previously received from the file system and stored in the first buffer 130, the first register 155, and the second register 157. Alternatively, by determining whether the data is the same, it is possible to discriminate whether the data of the write command currently received is write data of the SLC or write data of the MLC.

또한, 컨트롤러(110)는 제1 레지스터(155)의 저장 공간에 데이터가 모두 저장되면 제1 레지스터(155)에 저장된 데이터를 MLC(151)로 쓰도록 하고, 제2 레지스터(157)의 저장 공간에 데이터가 모두 저장되면 제2 레지스터(157)에 저장된 데이터를 SLC(153)로 쓰도록 한다. 물론, 컨트롤러(110)는 제1 레지스터(155) 또는 제2 레지스터(157)의 저장 공간에 모든 데이터가 저장된 시점에 MLC(151) 또는 SLC(153)로의 데이터 쓰기를 수행할 수도 있지만, 일정 개수의 쓰기 명령을 수신하고 규칙성 또는 동일 여부 등을 판단한 후 MLC(151) 또는 SLC(153)로의 데이터 쓰기를 수행할 수도 있다.In addition, when all data is stored in the storage space of the first register 155, the controller 110 writes the data stored in the first register 155 to the MLC 151, and the storage space of the second register 157. If all the data is stored in the second register 157 to write the data stored in the SLC (153). Of course, the controller 110 may write data to the MLC 151 or the SLC 153 at the time when all the data is stored in the storage space of the first register 155 or the second register 157, but a certain number of times. After receiving a write command and determining whether or not the regularity or the like, and may write data to the MLC (151) or SLC (153).

제1 버퍼(130)는 파일 시스템으로부터 현재 수신된 쓰기 명령의 데이터 중 SLC의 쓰기 데이터와 MLC의 쓰기 데이터로 분별되지 않은 데이터와 논리 주소를 저장하는 수단이다.The first buffer 130 is a means for storing data and logical addresses which are not classified as write data of the SLC and write data of the MLC among data of a write command currently received from the file system.

즉, 제1 버퍼(130)는 파일 시스템으로부터 최초로 수신된 쓰기 명령의 데이터와 논리 주소를 저장하거나 파일 시스템의 속성 정보인지 사용자 정보인지 분별할 수 없는 데이터와 논리 주소를 저장한다.That is, the first buffer 130 stores data and a logical address of a write command first received from the file system, or stores data and logical addresses that cannot be distinguished from attribute information or user information of the file system.

이 때, 제1 버퍼(130)는 RAM 혹은 SRAM일 수 있으며, 제1 버퍼(130)는 컨트롤러(110)와 하이브리드 SSD(150) 사이에 형성될 수도 있지만, 컨트롤러(130) 내부에 형성될 수도 있다.In this case, the first buffer 130 may be RAM or SRAM, and the first buffer 130 may be formed between the controller 110 and the hybrid SSD 150, but may also be formed inside the controller 130. have.

제1 버퍼(130)의 크기는 하이브리드 SSD(150)과 장치의 성능을 고려하여 그 크기가 결정될 수 있으며, 일 예로 파일 시스템의 2 섹터(sector)에 해당하는 크기를 가질 수 있다.The size of the first buffer 130 may be determined in consideration of the performance of the hybrid SSD 150 and the device, and may have a size corresponding to two sectors of the file system.

제1 버퍼(130)가 컨트롤러(110) 내에 포함되는 경우에는 제1 버퍼(130)에 저장되는 논리 주소와 데이터는 컨트롤러(110)의 제어에 의하여 제1 버퍼(130)로부터 제1 레지스터(155) 또는 제2 레지스터(157)에 저장될 수 있다. 또는 제1 버퍼(130)가 컨트롤러(110)와 하이브리드 SSD(150) 사이에 위치하는 경우에는 제1 버퍼(130)에 저장되는 논리 주소와 데이터는 별도의 컨트롤러에 의하여 제1 버퍼(130)로부터 제1 레지스터(155) 또는 제2 레지스터(157)에 저장될 수 있다.When the first buffer 130 is included in the controller 110, the logical address and data stored in the first buffer 130 are controlled from the first buffer 130 by the control of the controller 110. ) Or the second register 157. Alternatively, when the first buffer 130 is located between the controller 110 and the hybrid SSD 150, the logical address and data stored in the first buffer 130 may be separated from the first buffer 130 by a separate controller. It may be stored in the first register 155 or the second register 157.

하이브리드 SSD(150)는 제1 레지스터(155), 제2 레지스터(157), 다수의 SLC(153)와 다수의 MLC(151)를 포함하고, 제1 레지스터(155)에 저장된 데이터를 해당 논리 주소를 갖는 MLC(151)의 해당 공간에 저장하며, 제2 레지스터(157)에 저장된 데이터를 해당 논리 주소를 갖는 SLC(153)의 해당 공간에 저장한다.The hybrid SSD 150 includes a first register 155, a second register 157, a plurality of SLCs 153, and a plurality of MLCs 151, and stores data stored in the first register 155 as a corresponding logical address. The data stored in the second register 157 is stored in the corresponding space of the MLC 151 having the corresponding logical address.

제1 레지스터(155)는 MLC의 쓰기 데이터로 분별된 쓰기 명령의 데이터와 논리 주소를 저장하는 수단으로, 컨트롤러(110)에 의하여 사용자 정보로 분별된 데이터가 저장되는 MLC를 위한 레지스터이다.The first register 155 is a means for storing data and a logical address of a write command classified as write data of the MLC, and is a register for the MLC in which data classified as user information is stored by the controller 110.

이 때, 제1 레지스터(155)는 MLC(151)에 쓰기(프로그램) 위한 데이터를 임시 저장하는 램(RAM)일 수 있다. 제1 레지스터(155)의 크기는 하이브리드 SSD(150)와 장치의 성능을 고려하여 그 크기가 결정될 수 있으며, 일 예로 MLC의 한 페이지에 해당하는 크기를 가질 수 있다.In this case, the first register 155 may be a RAM that temporarily stores data for writing (program) to the MLC 151. The size of the first register 155 may be determined in consideration of the performance of the hybrid SSD 150 and the device, and may have, for example, a size corresponding to one page of the MLC.

제2 레지스터(157)는 SLC의 쓰기 데이터로 분별된 쓰기 명령의 데이터와 논리 주소를 저장하는 구성으로, 컨트롤러(110)에 의하여 파일 시스템의 속성 정보로 분별된 데이터가 저장되는 SLC를 위한 레지스터이다.The second register 157 stores data and logical addresses of write commands classified as write data of the SLC, and is a register for the SLC in which data classified as attribute information of the file system is stored by the controller 110. .

이 때, 제2 레지스터(157)는 SLC(153)에 쓰기 위한 데이터를 임시 저장하는 램(RAM)일 수 있다. 제2 레지스터(157)의 크기는 하이브리드 SSD(150)과 장치의 성능을 고려하여 그 크기가 결정될 수 있으며, 일 예로 SLC의 한 페이지에 해당하는 크기를 가질 수 있다.
In this case, the second register 157 may be a RAM that temporarily stores data for writing to the SLC 153. The size of the second register 157 may be determined in consideration of the performance of the hybrid SSD 150 and the device, and may have a size corresponding to one page of the SLC.

본 발명에 따른 SSD 컨트롤러에 대한 상세한 구성을 도 2를 참조하여 설명한다.A detailed configuration of the SSD controller according to the present invention will be described with reference to FIG. 2.

도 2는 본 발명의 일 실시예에 따른 SSD 컨트롤러에 대한 구성을 나타낸 것으로, 도 1에 도시한 컨트롤러에 해당한다.2 illustrates a configuration of an SSD controller according to an embodiment of the present invention, which corresponds to the controller illustrated in FIG. 1.

도 2를 참조하면, 컨트롤러(110)는 수신부(210), 확인부(230), 판단부(250) 및 분별부(270)를 포함한다.Referring to FIG. 2, the controller 110 includes a receiver 210, a checker 230, a determiner 250, and a separator 270.

수신부(210)는 파일 시스템으로부터 쓰기 명령을 수신한다.The receiver 210 receives a write command from the file system.

여기서, 파일 시스템으로부터 수신되는 쓰기 명령은 쓰기 명령어, 데이터의 논리 주소 및 하이브리드 SSD에 저장하고자 하는 데이터를 포함한다.Here, the write command received from the file system includes a write command, a logical address of the data, and data to be stored in the hybrid SSD.

수신부(210)는 쓰기 명령을 수신하여 임시 저장 공간에 저장할 수도 있으며, 쓰기 명령의 데이터와 논리 주소를 제1 버퍼(130)에 저장할 수도 있다. 즉, 제1 버퍼(130)를 MLC와 SLC의 쓰기 데이터를 분별하기 위한 임시 저장 공간으로도 활용할 수도 있다.The receiver 210 may receive a write command and store it in a temporary storage space, or may store data and a logical address of the write command in the first buffer 130. That is, the first buffer 130 may also be used as a temporary storage space for separating write data of MLC and SLC.

확인부(230)는 수신부(210)로 수신되어 임시 저장된 쓰기 명령의 논리 주소를 확인한다.The confirming unit 230 confirms the logical address of the write command received and received by the receiving unit 210 temporarily.

즉, 확인부(230)는 현재 수신된 쓰기 명령의 데이터를 MLC와 SLC의 쓰기 데이터로 구분하기 위한 기준이 되는 논리 주소를 확인한다.That is, the verification unit 230 confirms a logical address as a reference for dividing the data of the write command currently received into the write data of the MLC and the SLC.

판단부(250)는 확인부(230)에 의해 확인된 논리 주소에 기초하여 수신부(210)로 수신된 쓰기 명령의 논리 주소와 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 기 저장된 적어도 하나 이상의 논리 주소들 간에 기 설정된 규칙성을 가지고 있는지 판단한다.The determination unit 250 may include a logical address of the write command received by the receiving unit 210, the first buffer 130, the first register 155, and the second register based on the logical address confirmed by the confirming unit 230. It is determined whether there is a predetermined regularity among at least one logical address previously stored in 157.

여기서, 규칙성은 논리 주소들이 순차적인지 논리 주소들 간의 간격이 기 설정된 일정 규칙 예를 들어, 일정 주기를 가지고 있는 지와 같은 것으로, 수신된 쓰기 명령의 데이터가 사용자 정보인지를 판단하기 위한 기준이 되는 것이다. 즉, 규칙성은 수신된 쓰기 명령의 데이터가 사용자 정보인지 판단하기 위한 것이다.Here, the regularity is the same as whether the logical addresses are sequential or the interval between the logical addresses has a predetermined rule, for example, a predetermined period, and is a criterion for determining whether the data of the received write command is user information. will be. That is, the regularity is for determining whether the data of the received write command is user information.

판단부(250)는 수신된 쓰기 명령의 논리 주소와 제1 레지스터(155)에 MLC의 쓰기 데이터로 분별되어 기 저장된 논리 주소들 간에 규칙성을 판단할 수도 있고, 수신된 쓰기 명령의 논리 주소와 제1 버퍼(130)에 저장된 쓰기 데이터로 분별되지 않은 적어도 하나 이상의 논리 주소 간에 규칙성을 판단할 수도 있다.The determination unit 250 may determine the regularity between the logical addresses of the received write command and the logical addresses stored in the first register 155 as the write data of the MLC. Regularity may be determined between at least one logical address that is not classified as write data stored in the first buffer 130.

이 때, 수신부(210)로 수신된 쓰기 명령의 데이터와 논리 주소만이 제1 버퍼(130)에 저장되어 있는 상태이고, 제1 레지스터(155)에 저장된 논리 주소들과의 규칙성이 없는 경우에는 수신부(210)를 통하여 그 다음 쓰기 명령을 수신한다.In this case, only the data and the logical address of the write command received by the receiver 210 are stored in the first buffer 130 and there is no regularity with the logical addresses stored in the first register 155. The next write command is received through the receiving unit 210.

나아가, 판단부(250)는 수신된 쓰기 명령의 논리 주소와 파일 시스템으로부터 이전에 수신되어 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 데이터의 논리 주소 중 동일한 논리 주소가 존재하는지 판단한다.Further, the determination unit 250 is a logical address of the received write command and the logical address of the data previously received from the file system and stored in the first buffer 130, the first register 155, and the second register 157. Determine if the same logical address exists.

이는, 수신된 쓰기 명령의 데이터가 갱신 데이터인지를 판단하기 위한 것이다.This is to determine whether the data of the received write command is update data.

분별부(270)는 판단부(250)에 의한 판단 결과 수신된 쓰기 명령의 논리 주소와 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 기 저장된 적어도 하나 이상의 논리 주소들 간에 규칙성이 있는 경우 수신된 쓰기 명령의 데이터를 MLC의 쓰기 데이터로 분별하여 제1 레지스터(155)에 수신된 쓰기 명령의 논리 주소와 데이터를 저장한다.The classification unit 270 may include a logical address of the write command received as a result of the determination by the determination unit 250 and at least one or more logics previously stored in the first buffer 130, the first register 155, and the second register 157. When there is regularity between the addresses, the data of the received write command is classified into the write data of the MLC, and the logical address and data of the received write command are stored in the first register 155.

분별부(270)는 판단부(250)에 의한 판단 결과 수신된 쓰기 명령의 논리 주소와 파일 시스템으로부터 이전에 수신되어 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 데이터의 논리 주소 중 동일한 논리 주소가 존재하는 경우 수신된 쓰기 명령의 데이터를 갱신 데이터로 판단하여 수신된 쓰기 명령의 데이터를 SLC의 쓰기 데이터로 분별하고 제2 레지스터(157)에 수신된 쓰기 명령의 논리 주소와 데이터를 저장한다.The classification unit 270 is previously received from the file system and the logical address of the write command received as a result of the determination by the determination unit 250, and thus the first buffer 130, the first register 155, and the second register 157 are used. If the same logical address exists among the logical addresses of the data stored in the data, the data of the received write command is judged as update data, the data of the received write command is classified as the write data of the SLC, and the write received in the second register 157. Stores the logical address and data of the command.

분별부(270)는 판단부(250)에 의한 판단 결과, 수신된 쓰기 명령의 논리 주소와 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 논리 주소 간에 규칙성이 없거나 동일한 논리 주소가 존재하지 않으면서 제1 버퍼(130)에 다수의 데이터 예를 들어, 2 개 이상의 데이터가 저장된 경우에는 제1 버퍼(130)에 저장된 데이터 중 가장 먼저 수신된 데이터를 SLC의 쓰기 데이터로 분별하여 제2 레지스터(157)에 저장한다. 물론, 제1 버퍼(130)에 저장된 데이터 중 가장 먼저 수신된 데이터는 제2 레지스터(157)에 저장된 후 삭제된다.
The classification unit 270 rules between the logical address of the received write command and the logical addresses stored in the first buffer 130, the first register 155, and the second register 157 as a result of the determination by the determination unit 250. If a plurality of data, for example, two or more data are stored in the first buffer 130 without the same or the same logical address does not exist, the first received data among the data stored in the first buffer 130 is SLC. The data is classified into write data of the data and stored in the second register 157. Of course, the first received data among the data stored in the first buffer 130 is deleted after being stored in the second register 157.

이와 같은 구성을 갖는 컨트롤러(110)의 동작에 대해 도 3 내지 도 7를 참조하여 설명한다.An operation of the controller 110 having such a configuration will be described with reference to FIGS. 3 to 7.

컨트롤러(110)는 도 3에 도시된 예와 같이 4 개의 쓰기 명령 ① 내지 ④가 순차적으로 수신되면 쓰기 명령 ① 내지 ④의 논리 주소 즉, 0, 1, 2, 9를 확인하고, 0, 1, 2의 순차적인 논리 주소를 갖는 데이터 A, B, C를 사용자 정보로 판단하여 쓰기 명령 ① 내지 ③의 논리 주소와 데이터 (0,A), (1,B), (2,C)를 MLC를 위한 제1 레지스터(155)에 저장하고, MLC 또는 SLC의 쓰기 데이터로 분별되지 않은 쓰기 명령 ④의 논리 주소와 데이터 (9,D)를 제1 버퍼(130)에 저장한다.When the four write commands ① to ④ are sequentially received as shown in the example shown in FIG. 3, the controller 110 checks the logical addresses of the write commands ① to ④, that is, 0, 1, 2, 9, and 0, 1, The data A, B, and C having sequential logical addresses of 2 are judged as user information, and the logical addresses and data (0, A), (1, B), and (2, C) of the write commands ① to ③ are MLC. And a logical address and data (9, D) of the write command (4), which are not classified as write data of MLC or SLC, in the first buffer 130.

여기서, 쓰기 명령 (w x y)에서 w는 쓰기 명령어를 의미하고, x는 논리 주소를 의미하고, y는 데이터를 의미한다.Here, in the write command (w x y), w means a write command, x means a logical address, and y means data.

컨트롤러(110)는 도 3과 같이 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 논리 주소와 데이터가 저장된 상태에서 도 4에 도시된 예와 같이 쓰기 명령 ⑤가 수신되면 쓰기 명령 ⑤의 논리 주소 3을 확인하고, 논리 주소 3이 제1 레지스터에 저장된 논리 주소들과 순차적인 것을 확인하여 쓰기 명령 ⑤의 데이터를 MLC의 쓰기 데이터로 분류하고 쓰기 명령 ⑤의 논리 주소와 데이터 (3,E)를 제1 레지스터에 저장한다.As shown in the example shown in FIG. 4, the controller 110 has a write command ⑤ in the state where the logical address and data are stored in the first buffer 130, the first register 155, and the second register 157 as shown in FIG. 3. When received, check logical address 3 of write command ⑤, check that logical address 3 is sequential with the logical addresses stored in the first register, classify data of write command ⑤ into write data of MLC, and then logical address of write command ⑤. And data (3, E) are stored in the first register.

도 5는 갱신 데이터가 수신되는 경우에 대한 예를 설명한 것으로, 컨트롤러(110)는 도 4와 같이 제1 버퍼, 제1 레지스터 및 제2 레지스터에 논리 주소와 데이터가 저장된 상태에서 도 5에 도시된 예와 같이 쓰기 명령 ⑥이 수신되면 쓰기 명령 ⑥의 논리 주소 9를 확인하고, 제1 버퍼에 저장된 데이터 D의 논리 주소 9와 동일하기 때문에 데이터 F를 데이터 D의 갱신 데이터로 판단하여 쓰기 명령 ⑥의 논리 주소와 데이터 (9,F)를 제2 레지스터에 저장한다. 즉, 컨트롤러(110)는 갱신이 자주 발생하는 데이터를 파일 시스템의 속성 정보로 분별하여 갱신 데이터를 SLC를 위한 제2 레지스터에 저장한다.5 illustrates an example of a case where update data is received, and the controller 110 is shown in FIG. 5 in a state where logical addresses and data are stored in a first buffer, a first register, and a second register as shown in FIG. 4. As shown in the example, when the write command ⑥ is received, the logical address 9 of the write command ⑥ is checked. Since the same as the logical address 9 of the data D stored in the first buffer, the data F is regarded as the update data of the data D. Store the logical address and data (9, F) in the second register. That is, the controller 110 classifies data that frequently occurs in update as attribute information of the file system and stores the update data in a second register for SLC.

물론, 도 5의 경우 논리 주소 9의 데이터가 SLC의 쓰기 데이터로 분별되었기 때문에 제1 버퍼에 저장된 논리 주소 9의 데이터는 삭제된다.Of course, in the case of FIG. 5, since the data of the logical address 9 is classified as the write data of the SLC, the data of the logical address 9 stored in the first buffer is deleted.

컨트롤러(110)는 도 5와 같은 상태에서 도 6에 도시된 예와 같이 쓰기 명령 ⑦, ⑧이 순차적으로 수신되면 쓰기 명령 ⑦, ⑧의 논리 주소 24, 16 간에 규칙성과 제1 레지스터와 제2 레지스터에 저장된 논리 주소들 간에 규칙성 또는 동일 여부를 판단한다. 도 6에 도시된 바와 같이, 논리 주소 간에 규칙성 또는 동일성이 존재하지 않기 때문에 컨트롤러(110)는 쓰기 명령 ⑦, ⑧의 논리 주소와 데이터 (24,G), (16,H)를 제1 버퍼에 저장한다.When the controller 110 receives the write commands ⑦ and ⑧ sequentially, as shown in the example shown in FIG. 6 in the state as shown in FIG. 5, the controller 110 performs regularity between the logical addresses 24 and 16 of the write commands ⑦ and ⑧ and the first and second registers. Determine regularity or equality among logical addresses stored in. As shown in FIG. 6, since no regularity or identity exists between the logical addresses, the controller 110 stores the logical addresses of the write commands ⑦ and ⑧ and the data (24, G) and (16, H) in the first buffer. Store in

또한, 컨트롤러(110)는 도 7에 도시된 예와 같이 쓰기 명령 ⑨가 수신되면 제1 버퍼에 비어있는 저장 공간이 존재하지 않기 때문에 쓰기 명령 ⑨의 논리 주소 17과 제1 버퍼에 가장 먼저 저장된 논리 주소 24 간에 규칙성 또는 동일 여부를 판단한다. 컨트롤러는 쓰기 명령 ⑨의 논리 주소 17과 논리 주소 24 간에 규칙성이 없고 동일하지도 않기 때문에 논리 주소 24와 데이터 G를 SLC의 쓰기 데이터로 분별하여 제2 레지스터에 저장한다.In addition, when the write command ⑨ is received as shown in the example shown in FIG. 7, the controller 110 stores the logical address 17 of the write command ⑨ and the logic stored first in the first buffer because there is no empty storage space in the first buffer. Determine regularity or equality between addresses 24 The controller distinguishes the logical address 24 and the data G as write data of the SLC and stores them in the second register because they are not regular or identical between the logical address 17 and the logical address 24 of the write command ⑨.

그리고, 컨트롤러(110)는 제1 버퍼에 저장된 2 개의 논리 주소가 순차적인 규칙성을 가지고 있기 때문에 MLC의 쓰기 데이터로 분별할 수도 있다. 따라서, 2 개의 논리 주소와 데이터 (16,H), (17,I)를 제1 레지스터에 저장해야 하는데, 제1 레지스터에 저장 공간이 존재하지 않기 때문에 제1 레지스터에 저장된 데이터를 MLC에 저장하고, 이 후에 (16,H), (17,I)를 제1 레지스터에 저장하는 것이 바람직하다. 물론, 컨트롤러가 3 개 이상의 논리 주소들 간에 규칙성을 판단하는 경우에는 도 7의 제1 버퍼에 저장된 논리 주소와 데이터는 제1 레지스터에 저장되지 않고 제1 버퍼에 그대로 저장되게 된다.
In addition, since the two logical addresses stored in the first buffer have sequential regularity, the controller 110 may classify them as write data of the MLC. Therefore, two logical addresses and data (16, H) and (17, I) must be stored in the first register. Since there is no storage space in the first register, the data stored in the first register is stored in the MLC. After that, it is preferable to store (16, H) and (17, I) in the first register. Of course, when the controller determines the regularity between three or more logical addresses, the logical address and data stored in the first buffer of FIG. 7 are not stored in the first register but are stored in the first buffer as they are.

상기 도 4 내지 도 7에서, 제1 레지스터에 모든 데이터가 저장된 것으로 도시하였지만, 제1 레지스터에 데이터가 모두 저장된 시점에서 또는 제1 레지스터에 데이터가 모두 저장된 시점 이후 일정 개수의 쓰기 명령을 수신한 시점에서 제1 레지스터에 저장된 데이터를 MLC에 쓰도록 할 수 있다.
4 to 7 illustrate that all data is stored in the first register, but when a certain number of write commands are received after a point where all data is stored in the first register or after a point where all data is stored in the first register. Allows the data stored in the first register to be written to the MLC.

이와 같이, 본 발명에 따른 SSD 컨트롤러는 수신되는 쓰기 명령의 논리 주소와 제1 버퍼, 제1 레지스터 및 제2 레지스터에 기 저장된 데이터의 논리 주소에 기초하여 컨트롤러로 수신되는 쓰기 명령의 데이터 또는 제1 버퍼에 저장된 데이터를 MLC의 쓰기 데이터인지 SLC의 쓰기 데이터인지 분별할 수 있다. 즉, 본 발명은 파일 시스템의 속성 정보와 사용자 정보를 MLC 또는 SLC에 저장하기 전에 논리 주소를 이용하여 정확하게 분별함으로써, SSD의 쓰기 성능을 향상시킬 수 있고 나아가 SSD를 사용하는 장치의 전체적인 성능을 향상시킬 수도 있다.
As described above, the SSD controller according to the present invention is based on the logical address of the received write command and the logical address of the data previously stored in the first buffer, the first register, and the second register. Data stored in the buffer can be classified as write data of MLC or write data of SLC. In other words, the present invention can improve the write performance of an SSD by accurately classifying the attribute information and user information of the file system using a logical address before storing the MLC or SLC, and further improve the overall performance of the device using the SSD. You can also

도 8은 본 발명의 일 실시예에 따른 SSD의 쓰기 데이터 분별 방법에 대한 동작 흐름도를 나타낸 것이다. 도 8은 도 1에 도시된 컨트롤러에서의 동작에 대한 것으로, 규칙성에 대한 동작 흐름도를 나타낸 것이다.8 is a flowchart illustrating an operation of classifying write data of an SSD according to an embodiment of the present invention. FIG. 8 is an operation of the controller shown in FIG. 1 and shows an operation flowchart for regularity.

도 8을 참조하면, 컨트롤러는 파일 시스템으로부터 전송된 쓰기 명령을 수신하고, 수신된 쓰기 명령에 포함된 논리 주소를 확인한다(S810, S820).Referring to FIG. 8, the controller receives a write command transmitted from a file system and checks logical addresses included in the received write command (S810 and S820).

이 때, 쓰기 명령은 쓰기 명령어, 데이터의 논리 주소 및 데이터를 포함할 수 있으며, 수신되는 쓰기 명령은 도 1에 도시된 제1 버퍼, 제1 레지스터 및 제2 레지스터에 저장될 수도 있고, 컨트롤러(110) 내부에 구비된 별도의 저장 수단에 저장될 수도 있으며, 파일 시스템과 컨트롤러 사이에 위치한 별도의 저장 수단에 저장될 수도 있다.In this case, the write command may include a write command, a logical address of data and data, and the received write command may be stored in the first buffer, the first register, and the second register shown in FIG. 110 may be stored in a separate storage means provided therein, or may be stored in a separate storage means located between the file system and the controller.

현재 수신된 쓰기 명령의 논리 주소가 확인되면 현재 수신된 쓰기 명령 이전에 파일 시스템으로부터 수신되어 기 저장된 이전 쓰기 명령의 논리 주소가 존재하는지 판단한다(S830).If the logical address of the currently received write command is confirmed, it is determined whether a logical address of a previously written write command received from the file system prior to the currently received write command exists (S830).

여기서, 이전 쓰기 명령의 논리 주소는 도 1의 제1 버퍼, 제1 레지스터 및 제2 레지스터에 저장된 적어도 하나 이상의 논리 주소를 의미한다.Here, the logical address of the previous write command means at least one logical address stored in the first buffer, the first register, and the second register of FIG. 1.

단계 S830 판단 결과, 제1 버퍼, 제1 레지스터 및 제2 레지스터에 적어도 하나 이상의 논리 주소 즉, 이전 쓰기 명령의 논리 주소가 존재하지 않으면 현재 수신된 쓰기 명령의 데이터가 MLC의 쓰기 데이터인지 SLC의 쓰기 데이터인지 분별할 수 없기 때문에 현재 수신된 쓰기 명령의 논리 주소와 데이터를 제1 버퍼에 저장한다(S840).As a result of the determination in step S830, if at least one logical address, that is, the logical address of the previous write command does not exist in the first buffer, the first register, and the second register, whether the data of the currently received write command is the write data of the MLC, the write of the SLC. Since the data cannot be distinguished from each other, the logical address and data of the currently received write command are stored in the first buffer (S840).

그리고, 단계 S840 과정을 수행한 후 파일 시스템으로부터 다음 쓰기 명령을 수신하는 단계 S810 과정을 다시 수행한다.After performing step S840, the process of receiving a next write command from the file system is performed again.

따라서, 단계 S840 과정에 의하여 쓰기 명령의 논리 주소와 데이터가 제1 버퍼에 저장되면 해당 논리 주소는 이전 쓰기 명령의 논리 주소가 된다.Therefore, when the logical address and the data of the write command are stored in the first buffer by the step S840, the logical address becomes the logical address of the previous write command.

반면 단계 S830 판단 결과, 제1 버퍼, 제1 레지스터 및 제2 레지스터에 적어도 하나 이상의 논리 주소가 존재하면 현재 수신된 쓰기 명령의 논리 주소와 제1 버퍼, 제1 레지스터 및 제2 레지스터에 기 저장된 이전 쓰기 명령의 논리 주소 간에 규칙성이 존재하는지 판단한다(S850, S860).On the contrary, when the determination result of step S830 indicates that at least one logical address exists in the first buffer, the first register, and the second register, the previous address previously stored in the logical address of the currently received write command and the first buffer, the first register, and the second register It is determined whether regularity exists between logical addresses of the write command (S850 and S860).

여기서, 규칙성은 논리 주소가 순차적이거나 논리 주소가 일정 간격인 경우 등 파일 시스템으로부터 하이브리드 SSD로 전송되는 사용자 정보에 대한 논리 주소의 규칙을 모두 포함할 수 있다.Here, the regularity may include all rules of logical addresses for user information transmitted from the file system to the hybrid SSD, such as when the logical addresses are sequential or the logical addresses are at regular intervals.

단계 S860 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 이전 쓰기 명령의 논리 주소 간에 규칙성이 존재하면 수신된 쓰기 명령의 데이터를 MLC의 쓰기 데이터로 분별하여 수신된 쓰기 명령의 논리 주소와 데이터를 MLC를 위한 제1 레지스터에 저장한다(S890).As a result of the determination in step S860, if regularity exists between the logical address of the currently received write command and the logical address of the previous write command, the data of the received write command is classified as the write data of the MLC to determine the logical address and data of the received write command. It is stored in the first register for MLC (S890).

단계 S850, 단계 S860에서의 규칙성 판단은, 현재 수신된 쓰기 명령의 논리 주소와 도 1에 도시된 제1 레지스터에 저장된 논리 주소 간에 규칙성일 수도 있고, 현재 수신된 쓰기 명령의 논리 주소와 도 1에 도시된 제1 버퍼에 저장된 논리 주소 간에 규칙성일 수도 있다.The regularity determination in steps S850 and S860 may be regularity between the logical address of the currently received write command and the logical address stored in the first register shown in FIG. 1, or the logical address of the currently received write command and FIG. 1. There may also be regularity between logical addresses stored in the first buffer shown in FIG.

반면 단계 S860 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 이전 쓰기 명령의 논리 주소 간에 규칙성이 존재하지 않으면 제1 버퍼에 현재 수신된 쓰기 명령의 논리 주소와 데이터가 저장될 공간이 존재하는지 판단한다(S870).On the other hand, if it is determined in step S860 that there is no regularity between the logical address of the currently received write command and the logical address of the previous write command, it is determined whether the space for storing the logical address of the currently received write command and data exists in the first buffer. (S870).

단계 S870 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 데이터가 저장될 공간이 제1 버퍼에 존재하면 해당 논리 주소와 데이터를 제1 버퍼에 저장하고 단계 S810 과정부터 다시 수행한다.As a result of the determination in step S870, if the logical address and data of the currently received write command exist in the first buffer, the logical address and data are stored in the first buffer and the process is performed again from step S810.

반면 단계 S870 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 데이터가 저장될 공간이 제1 버퍼에 존재하지 않으면 즉, 제1 버퍼의 저장 공간이 다른 데이터로 모두 채워져 있는 상태라면 제1 버퍼에 저장된 데이터 중 가장 먼저 저장된 데이터 예컨대, 도 6에서 논리 주소 24의 데이터 G를 SLC의 쓰기 데이터로 분별하여 SLC를 위한 제2 레지스터에 저장한다(S880).
On the other hand, if the logical address of the currently received write command and the space to store the data are not present in the first buffer, that is, when the storage space of the first buffer is filled with other data, the stored result is stored in the first buffer. The first stored data, for example, data G of logical address 24 in FIG. 6 is classified as write data of the SLC and stored in a second register for SLC (S880).

도 9는 도 8에 도시된 단계 S830 이 후의 추가적인 동작 흐름도를 나타낸 것이다. 도 9는 갱신 데이터로 판단하기 위한 동일 여부에 대한 동작 흐름도를 나타낸 것이다.FIG. 9 shows a further operational flowchart after step S830 shown in FIG. 8. 9 is a flowchart illustrating the operation of whether the data is the same to determine update data.

도 9를 참조하면, 단계 S830의 판단 결과 제1 버퍼, 제1 레지스터 및 제2 레지스터에 이전 쓰기 명령의 논리 주소가 존재하면 현재 수신된 쓰기 명령의 논리 주소와 이전 쓰기 명령의 논리 주소 즉, 제1 버퍼, 제1 레지스터 및 제2 레지스터에 기 저장된 논리 주소 간에 동일 여부를 판단한다(S910, S920). 즉, 논리 주소 간에 동일 여부를 통하여 현재 수신된 쓰기 명령의 데이터로 갱신하고자 하는 데이터가 제1 버퍼, 제1 레지스터 및 제2 레지스터에 존재하는지 판단한다. 여기서, 컨트롤러는 갱신하고자 하는 데이터가 제1 버퍼 또는 제2 레지스터에 존재하는지 판단할 수 있다.Referring to FIG. 9, if the logical address of the previous write command exists in the first buffer, the first register, and the second register, the logical address of the currently received write command and the logical address of the previous write command, It is determined whether the logical addresses previously stored in the first buffer, the first register, and the second register are the same (S910, S920). That is, it is determined whether the data to be updated with the data of the write command currently received exists in the first buffer, the first register, and the second register through whether the logical addresses are the same. Here, the controller can determine whether data to be updated exists in the first buffer or the second register.

단계 S920 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 동일한 이전 쓰기 명령의 논리 주소가 존재하면 수신된 쓰기 명령의 데이터를 갱신 데이터로 판단하여 SLC의 쓰기 데이터로 분별한다(S950). 물론, SLC 쓰기 데이터로 분별된 쓰기 명령의 논리 주소와 데이터는 SLC를 위한 제2 레지스터에 저장된다. As a result of the determination in step S920, if the logical address of the previous write command that is the same as the logical address of the currently received write command exists, the data of the received write command is determined as update data and classified as write data of the SLC (S950). Of course, the logical address and data of the write command classified as SLC write data are stored in a second register for SLC.

반면 단계 S920 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 동일한 이전 쓰기 명령의 논리가 존재하지 않으면 제1 버퍼에 현재 수신된 쓰기 명령의 논리 주소와 데이터가 저장될 공간이 존재하는지 판단한다(S930).On the other hand, if it is determined in step S920 that the logic of the previous write command that is the same as the logical address of the currently received write command does not exist, it is determined whether there is a space for storing the logical address and data of the currently received write command in the first buffer (S930). ).

단계 S930 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 데이터가 저장될 공간이 제1 버퍼에 존재하면 해당 논리 주소와 데이터를 제1 버퍼에 저장하고 단계 S810 과정부터 다시 수행한다.As a result of the determination in step S930, when the logical address and data of the currently received write command exist in the first buffer, the corresponding logical address and data are stored in the first buffer and the process is performed again from step S810.

반면 단계 S930 판단 결과, 현재 수신된 쓰기 명령의 논리 주소와 데이터가 저장될 공간이 제1 버퍼에 존재하지 않으면 제1 버퍼에 저장된 데이터 중 가장 먼저 저장된 데이터를 SLC의 쓰기 데이터로 분별하여 SLC를 위한 제2 레지스터에 저장한다(S880).
On the other hand, if the logical address of the currently received write command and the space in which the data is to be stored are not present in the first buffer, in step S930, the first stored data among the data stored in the first buffer is classified as the write data of the SLC, and the It is stored in the second register (S880).

본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
The write data classification method of the solid state drive according to an exemplary embodiment of the present invention may be implemented in the form of program instructions that may be executed by various computer means, and may be recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. 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. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 성분 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described by specific embodiments such as specific components and the like, but the embodiments and the drawings are provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations are possible from these descriptions.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

Claims (12)

다수의 싱글 레벨 셀(SLC)과 다수의 멀티 레벨 셀(MLC)을 포함하는 솔리드 스테이트 드라이브(SSD)의 쓰기 데이터 분별 방법에 있어서,
파일 시스템으로부터 제1 쓰기 명령을 수신하는 단계;
상기 수신된 상기 제1 쓰기 명령의 제1 논리 주소를 확인하는 단계; 및
상기 확인된 상기 제1 논리 주소를 기초로 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀과 상기 멀티 레벨 셀 중 어느 하나의 쓰기 데이터로 분별하는 단계
를 포함하고,
상기 분별하는 단계는
상기 확인된 상기 제1 논리 주소와 상기 멀티 레벨 셀과 상기 싱글 레벨 셀의 쓰기 데이터로 분별하기 위한 제1 버퍼에 기 저장된 논리 주소, 상기 멀티 레벨 셀을 위한 제1 레지스터에 기 저장된 논리 주소, 상기 싱글 레벨 셀을 위한 제2 레지스터에 저장된 논리 주소 간에 기 설정된 규칙성이 없거나 동일한 논리 주소가 존재하지 않는 경우 상기 제1 버퍼에 저장된 복수의 데이터 중 가장 먼저 수신된 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
In the write data classification method of a solid state drive (SSD) including a plurality of single-level cells (SLC) and a plurality of multi-level cells (MLC),
Receiving a first write command from the file system;
Verifying a first logical address of the received first write command; And
Classifying the data of the first write command into one of the single-level cell and the multi-level cell based on the identified first logical address;
Lt; / RTI >
The step of fractionating
A logical address previously stored in a first buffer for discriminating the identified first logical address and the write data of the multi-level cell and the single-level cell, a logical address previously stored in a first register for the multi-level cell, When there is no predetermined regularity or the same logical address does not exist between the logical addresses stored in the second register for the single level cell, the first received data among the plurality of data stored in the first buffer is written to the single level cell. To classify write data on a solid state drive.
제1항에 있어서,
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제1 논리 주소와 상기 제1 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제2 쓰기 명령의 제2 논리 주소 간에 상기 규칙성이 있는지 판단하는 단계; 및
상기 제1 논리 주소와 상기 제2 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계
를 포함하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
The method of claim 1,
The step of classifying into any one of the write data is
Determining whether there is regularity between the first logical address and a second logical address of a second write command received from the file system prior to the first write command; And
Classifying data of the first write command into write data of the multi-level cell when the regularity exists between the first logical address and the second logical address.
Write data classification method of a solid state drive comprising a.
제1항에 있어서,
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제1 논리 주소와 상기 제1 레지스터에 기 분별 저장된 제3 논리 주소 간에 상기 규칙성이 있는지 판단하는 단계; 및
상기 제1 논리 주소와 상기 제3 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계
를 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
The method of claim 1,
The step of classifying into any one of the write data is
Determining whether the regularity exists between the first logical address and a third logical address stored separately in the first register; And
Partitioning data of the first write command into write data of the multi-level cell when the regularity exists between the first logical address and the third logical address.
Write data fractionation method of a solid state drive comprising a.
제3항에 있어서,
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제1 논리 주소와 상기 제3 논리 주소 간에 상기 규칙성이 없는 경우 상기 제1 쓰기 명령의 데이터를 상기 제1 버퍼에 저장하는 단계
를 더 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
The method of claim 3,
The step of classifying into any one of the write data is
Storing data of the first write command in the first buffer when there is no regularity between the first logical address and the third logical address
Write data classification method of the solid state drive, characterized in that it further comprises.
제1항에 있어서,
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 파일 시스템으로부터 제4 쓰기 명령을 수신하는 단계;
상기 수신된 상기 제4 쓰기 명령의 제4 논리 주소를 확인하는 단계;
상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 있는지 판단하는 단계; 및
상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터와 상기 제4 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하는 단계
를 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
The method of claim 1,
The step of classifying into any one of the write data is
Receiving a fourth write command from the file system;
Confirming a fourth logical address of the received fourth write command;
Determining whether the regularity exists between the first logical address and the fourth logical address; And
Classifying data of the first write command and data of the fourth write command into write data of the multi-level cell when the regularity exists between the first logical address and the fourth logical address.
Write data fractionation method of a solid state drive comprising a.
제5항에 있어서,
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 없는 경우 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 단계
를 더 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
The method of claim 5,
The step of classifying into any one of the write data is
Classifying data of the first write command into write data of the single level cell when there is no regularity between the first logical address and the fourth logical address.
Write data classification method of the solid state drive, characterized in that it further comprises.
제1항에 있어서,
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제1 논리 주소와 상기 제1 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제5 쓰기 명령의 제5 논리 주소가 동일한지 판단하는 단계; 및
상기 제1 논리 주소와 상기 제5 논리 주소가 동일한 경우 상기 제1 쓰기 명령의 데이터를 상기 제5 쓰기 명령의 데이터에 대한 갱신 데이터로 판단하여 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 단계
를 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법.
The method of claim 1,
The step of classifying into any one of the write data is
Determining whether a first logical address and a fifth logical address of a fifth write command received from the file system prior to the first write command are the same; And
When the first logical address is the same as the fifth logical address, the data of the first write command is determined to be updated data with respect to the data of the fifth write command, and the data of the first write command is written to the single level cell. Segmentation by Data
Write data fractionation method of a solid state drive comprising a.
다수의 싱글 레벨 셀(SLC)과 다수의 멀티 레벨 셀(MLC)을 포함하는 솔리드 스테이트 드라이브(SSD) 컨트롤러에 있어서,
파일 시스템으로부터 제1 쓰기 명령을 수신하는 수신부;
상기 수신된 상기 제1 쓰기 명령의 제1 논리 주소를 확인하는 확인부; 및
상기 확인된 상기 제1 논리 주소를 기초로 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀과 상기 멀티 레벨 셀 중 어느 하나의 쓰기 데이터로 분별하는 분별부
를 포함하고,
상기 분별부는
상기 확인된 상기 제1 논리 주소와 상기 멀티 레벨 셀과 상기 싱글 레벨 셀의 쓰기 데이터로 분별하기 위한 제1 버퍼에 기 저장된 논리 주소, 상기 멀티 레벨 셀을 위한 제1 레지스터에 기 저장된 논리 주소, 상기 싱글 레벨 셀을 위한 제2 레지스터에 저장된 논리 주소 간에 기 설정된 규칙성이 없거나 동일한 논리 주소가 존재하지 않는 경우 상기 제1 버퍼에 저장된 복수의 데이터 중 가장 먼저 수신된 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 솔리드 스테이트 드라이브 컨트롤러.
In a solid state drive (SSD) controller comprising a plurality of single level cells (SLC) and a plurality of multi-level cells (MLC),
A receiving unit to receive a first write command from the file system;
A confirmation unit to confirm a first logical address of the received first write command; And
A classification unit for classifying the data of the first write command into write data of any one of the single level cell and the multi-level cell based on the identified first logical address.
Lt; / RTI >
The fractionation unit
A logical address previously stored in a first buffer for discriminating the identified first logical address and the write data of the multi-level cell and the single-level cell, a logical address previously stored in a first register for the multi-level cell, When there is no predetermined regularity or the same logical address does not exist between the logical addresses stored in the second register for the single level cell, the first received data among the plurality of data stored in the first buffer is written to the single level cell. Solid state drive controller discerned by.
제8항에 있어서,
상기 제1 논리 주소와 상기 제1 레지스터에 기 분별 저장된 제3 논리 주소 간에 상기 규칙성이 있는지 판단하는 판단부
를 더 포함하고,
상기 분별부는
상기 제1 논리 주소와 상기 제3 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하고, 상기 제1 논리 주소와 상기 제3 논리 주소 간에 상기 규칙성이 없는 경우 상기 제1 쓰기 명령의 데이터를 상기 제1 버퍼에 저장하는 것을 특징으로 하는 솔리드 스테이트 드라이브 컨트롤러.
9. The method of claim 8,
Determination unit for determining whether the regularity between the first logical address and the third logical address stored in the first register for each period;
Further comprising:
The fractionation unit
When the regularity exists between the first logical address and the third logical address, data of the first write command is classified into write data of the multi-level cell, and between the first logical address and the third logical address. And if there is no regularity, storing the data of the first write command in the first buffer.
제8항에 있어서,
상기 수신부를 통해 수신되는 쓰기 명령들의 논리 주소들 간에 상기 규칙성을 판단하는 판단부
를 더 포함하고,
상기 수신부는
상기 파일 시스템으로부터 제4 쓰기 명령을 수신하고,
상기 확인부는
상기 수신된 상기 제4 쓰기 명령의 제4 논리 주소를 확인하고,
상기 판단부는
상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 있는지 판단하고,
상기 분별부는
상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 있는 경우 상기 제1 쓰기 명령의 데이터와 상기 제4 쓰기 명령의 데이터를 상기 멀티 레벨 셀의 쓰기 데이터로 분별하고, 상기 제1 논리 주소와 상기 제4 논리 주소 간에 상기 규칙성이 없는 경우 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 것을 특징으로 하는 솔리드 스테이트 드라이브 컨트롤러.
9. The method of claim 8,
Determination unit for determining the regularity between the logical addresses of the write commands received through the receiving unit
Further comprising:
The receiving unit
Receive a fourth write command from the file system,
The confirmation unit
Confirm a fourth logical address of the received fourth write command,
The determination unit
Determine whether the regularity exists between the first logical address and the fourth logical address;
The fractionation unit
When there is the regularity between the first logical address and the fourth logical address, the data of the first write command and the data of the fourth write command are classified into write data of the multi-level cell, and the first logical address And the data of the first write command are classified into write data of the single level cell when there is no regularity between the controller and the fourth logical address.
제8항에 있어서,
상기 제1 논리 주소와 상기 제1 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제5 쓰기 명령의 제5 논리 주소가 동일한지 판단하는 판단부
를 더 포함하고,
상기 분별부는
상기 제1 논리 주소와 상기 제5 논리 주소가 동일한 경우 상기 제1 쓰기 명령의 데이터를 상기 제5 쓰기 명령의 데이터에 대한 갱신 데이터로 판단하여 상기 제1 쓰기 명령의 데이터를 상기 싱글 레벨 셀의 쓰기 데이터로 분별하는 것을 특징으로 하는 솔리드 스테이트 드라이브 컨트롤러.
9. The method of claim 8,
Determination unit for determining whether the first logical address and the fifth logical address of the fifth write command received from the file system prior to the first write command is the same
Further comprising:
The fractionation unit
When the first logical address is the same as the fifth logical address, the data of the first write command is determined to be updated data with respect to the data of the fifth write command, and the data of the first write command is written to the single level cell. Solid state drive controller characterized in that it is classified by data.
제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the method of any one of claims 1 to 7 is recorded.
KR1020110080361A 2011-08-12 2011-08-12 Method for distinguishing write data of solid state drive and controller thereof KR101319589B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110080361A KR101319589B1 (en) 2011-08-12 2011-08-12 Method for distinguishing write data of solid state drive and controller thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110080361A KR101319589B1 (en) 2011-08-12 2011-08-12 Method for distinguishing write data of solid state drive and controller thereof

Publications (2)

Publication Number Publication Date
KR20130017749A KR20130017749A (en) 2013-02-20
KR101319589B1 true KR101319589B1 (en) 2013-10-16

Family

ID=47896856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110080361A KR101319589B1 (en) 2011-08-12 2011-08-12 Method for distinguishing write data of solid state drive and controller thereof

Country Status (1)

Country Link
KR (1) KR101319589B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830260B2 (en) 2013-03-25 2017-11-28 Ajou University Industry-Academic Cooperation Foundation Method for mapping page address based on flash memory and system therefor

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545685B2 (en) * 2017-08-30 2020-01-28 Micron Technology, Inc. SLC cache management
KR102243923B1 (en) * 2018-12-31 2021-04-22 강원대학교산학협력단 Non-volatile memory device using efficient page collection mapping with cache and operating method therefor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (en) * 2006-10-30 2007-10-30 삼성전자주식회사 Flash memory device having a multi-leveled cell and programming method thereof
KR100833188B1 (en) * 2006-11-03 2008-05-28 삼성전자주식회사 Non-volatile memory system storing data at single-level cell or multi-level cell based on the feature of data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (en) * 2006-10-30 2007-10-30 삼성전자주식회사 Flash memory device having a multi-leveled cell and programming method thereof
KR100833188B1 (en) * 2006-11-03 2008-05-28 삼성전자주식회사 Non-volatile memory system storing data at single-level cell or multi-level cell based on the feature of data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830260B2 (en) 2013-03-25 2017-11-28 Ajou University Industry-Academic Cooperation Foundation Method for mapping page address based on flash memory and system therefor

Also Published As

Publication number Publication date
KR20130017749A (en) 2013-02-20

Similar Documents

Publication Publication Date Title
US11150837B2 (en) Method, device and system for processing sequential groups of buffered write data
KR102435873B1 (en) Storage device and read reclaim method thereof
KR100833188B1 (en) Non-volatile memory system storing data at single-level cell or multi-level cell based on the feature of data
US9021178B2 (en) High performance path for command processing
KR102289919B1 (en) Storage controller, storage device, storage system and method of operation of the storage controller
US9626312B2 (en) Storage region mapping for a data storage device
US20150253992A1 (en) Memory system and control method
KR101374065B1 (en) Data Distinguish Method and Apparatus Using Algorithm for Chip-Level-Parallel Flash Memory
KR20120052893A (en) Concurrent read and write memory operations in a serial interface memory
US10452280B2 (en) Hybrid storage system employing reconfigurable memory
CN107562367B (en) Method and device for reading and writing data based on software storage system
US10168926B2 (en) Method of operating data storage device and method of operating data processing system including same
CN111722795A (en) Storage system and method for controlling storage system
KR20210044564A (en) Storage device and garbage collection method thereof
KR101319589B1 (en) Method for distinguishing write data of solid state drive and controller thereof
CN107305478B (en) Storage device, control unit thereof and data storage method for storage device
CN102981969A (en) Method for deleting repeated data and solid hard disc thereof
CN107025063B (en) Memory management method, memory storage device and memory control circuit unit
US20170147231A1 (en) Storage device and operating method of storage device
KR20210083448A (en) Storage device using unsupervised learning scheme and memory management method thereof
KR101480424B1 (en) Apparatus and method for optimization for improved performance and enhanced lifetime of hybrid flash memory devices
KR101070511B1 (en) Solid state drive controller and method for operating of the solid state drive controller
KR101626218B1 (en) Block based page mapping method
KR102330394B1 (en) Method for operating controller and method for operating device including the same
US20230033903A1 (en) Allocation schema for a scalable memory area

Legal Events

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

Payment date: 20161004

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181011

Year of fee payment: 6