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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address 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
본 발명은 솔리드 스테이트 드라이브(SSD: Solid State Drive, 이하 "SSD"라 칭함)에 관한 것으로, 보다 상세하게는 파일 시스템으로부터 하이브리드 SSD로 전송되는 쓰기 명령의 데이터를 싱글 레벨 셀(SLC: Single-Level-Cell, 이하 "SLC"라 칭함)과 멀티 레벨 셀(MLC: Multi-Level-Cell, 이하 "MLC"라 칭함)의 특성에 맞게 분별하여 하이브리드 SSD의 성능을 향상시킬 수 있는 SSD의 쓰기 데이터 분별 방법 및 그 컨트롤러에 관한 것이다.BACKGROUND OF THE
최근 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.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 파일 시스템의 속성 정보와 사용자 정보를 정확하게 분별하여 하이브리드 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
컨트롤러(110)는 본 발명에 따른 SSD 컨트롤러로서, 파일 시스템으로부터 쓰기 명령을 수신하고, 수신된 쓰기 명령에 포함된 논리 주소를 확인하며, 확인된 논리 주소를 기초로 쓰기 명령의 데이터가 SLC의 쓰기 데이터 즉, 파일 시스템의 속성 정보인지 MLC의 쓰기 데이터 즉, 사용자 정보인지 판단한다.The
여기서, 컨트롤러(110)는 수신된 쓰기 명령의 논리 주소와 파일 시스템으로부터 기 수신되어 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 데이터의 논리 주소 간에 규칙성 또는 동일 여부를 판단함으로써, 현재 수신된 쓰기 명령의 데이터가 SLC의 쓰기 데이터인지 MLC의 쓰기 데이터인지 분별할 수 있다.Here, the
또한, 컨트롤러(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
제1 버퍼(130)는 파일 시스템으로부터 현재 수신된 쓰기 명령의 데이터 중 SLC의 쓰기 데이터와 MLC의 쓰기 데이터로 분별되지 않은 데이터와 논리 주소를 저장하는 수단이다.The
즉, 제1 버퍼(130)는 파일 시스템으로부터 최초로 수신된 쓰기 명령의 데이터와 논리 주소를 저장하거나 파일 시스템의 속성 정보인지 사용자 정보인지 분별할 수 없는 데이터와 논리 주소를 저장한다.That is, the
이 때, 제1 버퍼(130)는 RAM 혹은 SRAM일 수 있으며, 제1 버퍼(130)는 컨트롤러(110)와 하이브리드 SSD(150) 사이에 형성될 수도 있지만, 컨트롤러(130) 내부에 형성될 수도 있다.In this case, the
제1 버퍼(130)의 크기는 하이브리드 SSD(150)과 장치의 성능을 고려하여 그 크기가 결정될 수 있으며, 일 예로 파일 시스템의 2 섹터(sector)에 해당하는 크기를 가질 수 있다.The size of the
제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
하이브리드 SSD(150)는 제1 레지스터(155), 제2 레지스터(157), 다수의 SLC(153)와 다수의 MLC(151)를 포함하고, 제1 레지스터(155)에 저장된 데이터를 해당 논리 주소를 갖는 MLC(151)의 해당 공간에 저장하며, 제2 레지스터(157)에 저장된 데이터를 해당 논리 주소를 갖는 SLC(153)의 해당 공간에 저장한다.The
제1 레지스터(155)는 MLC의 쓰기 데이터로 분별된 쓰기 명령의 데이터와 논리 주소를 저장하는 수단으로, 컨트롤러(110)에 의하여 사용자 정보로 분별된 데이터가 저장되는 MLC를 위한 레지스터이다.The
이 때, 제1 레지스터(155)는 MLC(151)에 쓰기(프로그램) 위한 데이터를 임시 저장하는 램(RAM)일 수 있다. 제1 레지스터(155)의 크기는 하이브리드 SSD(150)와 장치의 성능을 고려하여 그 크기가 결정될 수 있으며, 일 예로 MLC의 한 페이지에 해당하는 크기를 가질 수 있다.In this case, the
제2 레지스터(157)는 SLC의 쓰기 데이터로 분별된 쓰기 명령의 데이터와 논리 주소를 저장하는 구성으로, 컨트롤러(110)에 의하여 파일 시스템의 속성 정보로 분별된 데이터가 저장되는 SLC를 위한 레지스터이다.The
이 때, 제2 레지스터(157)는 SLC(153)에 쓰기 위한 데이터를 임시 저장하는 램(RAM)일 수 있다. 제2 레지스터(157)의 크기는 하이브리드 SSD(150)과 장치의 성능을 고려하여 그 크기가 결정될 수 있으며, 일 예로 SLC의 한 페이지에 해당하는 크기를 가질 수 있다.
In this case, the
본 발명에 따른 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
수신부(210)는 파일 시스템으로부터 쓰기 명령을 수신한다.The
여기서, 파일 시스템으로부터 수신되는 쓰기 명령은 쓰기 명령어, 데이터의 논리 주소 및 하이브리드 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
확인부(230)는 수신부(210)로 수신되어 임시 저장된 쓰기 명령의 논리 주소를 확인한다.The confirming
즉, 확인부(230)는 현재 수신된 쓰기 명령의 데이터를 MLC와 SLC의 쓰기 데이터로 구분하기 위한 기준이 되는 논리 주소를 확인한다.That is, the
판단부(250)는 확인부(230)에 의해 확인된 논리 주소에 기초하여 수신부(210)로 수신된 쓰기 명령의 논리 주소와 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 기 저장된 적어도 하나 이상의 논리 주소들 간에 기 설정된 규칙성을 가지고 있는지 판단한다.The
여기서, 규칙성은 논리 주소들이 순차적인지 논리 주소들 간의 간격이 기 설정된 일정 규칙 예를 들어, 일정 주기를 가지고 있는 지와 같은 것으로, 수신된 쓰기 명령의 데이터가 사용자 정보인지를 판단하기 위한 기준이 되는 것이다. 즉, 규칙성은 수신된 쓰기 명령의 데이터가 사용자 정보인지 판단하기 위한 것이다.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
이 때, 수신부(210)로 수신된 쓰기 명령의 데이터와 논리 주소만이 제1 버퍼(130)에 저장되어 있는 상태이고, 제1 레지스터(155)에 저장된 논리 주소들과의 규칙성이 없는 경우에는 수신부(210)를 통하여 그 다음 쓰기 명령을 수신한다.In this case, only the data and the logical address of the write command received by the
나아가, 판단부(250)는 수신된 쓰기 명령의 논리 주소와 파일 시스템으로부터 이전에 수신되어 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 데이터의 논리 주소 중 동일한 논리 주소가 존재하는지 판단한다.Further, the
이는, 수신된 쓰기 명령의 데이터가 갱신 데이터인지를 판단하기 위한 것이다.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
분별부(270)는 판단부(250)에 의한 판단 결과 수신된 쓰기 명령의 논리 주소와 파일 시스템으로부터 이전에 수신되어 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 데이터의 논리 주소 중 동일한 논리 주소가 존재하는 경우 수신된 쓰기 명령의 데이터를 갱신 데이터로 판단하여 수신된 쓰기 명령의 데이터를 SLC의 쓰기 데이터로 분별하고 제2 레지스터(157)에 수신된 쓰기 명령의 논리 주소와 데이터를 저장한다.The
분별부(270)는 판단부(250)에 의한 판단 결과, 수신된 쓰기 명령의 논리 주소와 제1 버퍼(130), 제1 레지스터(155) 및 제2 레지스터(157)에 저장된 논리 주소 간에 규칙성이 없거나 동일한 논리 주소가 존재하지 않으면서 제1 버퍼(130)에 다수의 데이터 예를 들어, 2 개 이상의 데이터가 저장된 경우에는 제1 버퍼(130)에 저장된 데이터 중 가장 먼저 수신된 데이터를 SLC의 쓰기 데이터로 분별하여 제2 레지스터(157)에 저장한다. 물론, 제1 버퍼(130)에 저장된 데이터 중 가장 먼저 수신된 데이터는 제2 레지스터(157)에 저장된 후 삭제된다.
The
이와 같은 구성을 갖는 컨트롤러(110)의 동작에 대해 도 3 내지 도 7를 참조하여 설명한다.An operation of the
컨트롤러(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
여기서, 쓰기 명령 (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
도 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
물론, 도 5의 경우 논리 주소 9의 데이터가 SLC의 쓰기 데이터로 분별되었기 때문에 제1 버퍼에 저장된 논리 주소 9의 데이터는 삭제된다.Of course, in the case of FIG. 5, since the data of the
컨트롤러(110)는 도 5와 같은 상태에서 도 6에 도시된 예와 같이 쓰기 명령 ⑦, ⑧이 순차적으로 수신되면 쓰기 명령 ⑦, ⑧의 논리 주소 24, 16 간에 규칙성과 제1 레지스터와 제2 레지스터에 저장된 논리 주소들 간에 규칙성 또는 동일 여부를 판단한다. 도 6에 도시된 바와 같이, 논리 주소 간에 규칙성 또는 동일성이 존재하지 않기 때문에 컨트롤러(110)는 쓰기 명령 ⑦, ⑧의 논리 주소와 데이터 (24,G), (16,H)를 제1 버퍼에 저장한다.When the
또한, 컨트롤러(110)는 도 7에 도시된 예와 같이 쓰기 명령 ⑨가 수신되면 제1 버퍼에 비어있는 저장 공간이 존재하지 않기 때문에 쓰기 명령 ⑨의 논리 주소 17과 제1 버퍼에 가장 먼저 저장된 논리 주소 24 간에 규칙성 또는 동일 여부를 판단한다. 컨트롤러는 쓰기 명령 ⑨의 논리 주소 17과 논리 주소 24 간에 규칙성이 없고 동일하지도 않기 때문에 논리 주소 24와 데이터 G를 SLC의 쓰기 데이터로 분별하여 제2 레지스터에 저장한다.In addition, when the
그리고, 컨트롤러(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
상기 도 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
도 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)
파일 시스템으로부터 제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 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제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 레지스터에 기 분별 저장된 제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.
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제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.
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 파일 시스템으로부터 제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.
상기 어느 하나의 쓰기 데이터로 분별하는 단계는
상기 제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 쓰기 명령 이전에 상기 파일 시스템으로부터 수신된 제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.
파일 시스템으로부터 제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.
상기 제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.
상기 수신부를 통해 수신되는 쓰기 명령들의 논리 주소들 간에 상기 규칙성을 판단하는 판단부
를 더 포함하고,
상기 수신부는
상기 파일 시스템으로부터 제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.
상기 제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.
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)
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)
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)
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 |
-
2011
- 2011-08-12 KR KR1020110080361A patent/KR101319589B1/en active IP Right Grant
Patent Citations (2)
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)
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 |