KR101191320B1 - Apparatus and method for managing flash memory by comparing write data - Google Patents

Apparatus and method for managing flash memory by comparing write data Download PDF

Info

Publication number
KR101191320B1
KR101191320B1 KR1020100125627A KR20100125627A KR101191320B1 KR 101191320 B1 KR101191320 B1 KR 101191320B1 KR 1020100125627 A KR1020100125627 A KR 1020100125627A KR 20100125627 A KR20100125627 A KR 20100125627A KR 101191320 B1 KR101191320 B1 KR 101191320B1
Authority
KR
South Korea
Prior art keywords
data
differential value
flash memory
stored
value data
Prior art date
Application number
KR1020100125627A
Other languages
Korean (ko)
Other versions
KR20120064407A (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 KR1020100125627A priority Critical patent/KR101191320B1/en
Publication of KR20120064407A publication Critical patent/KR20120064407A/en
Application granted granted Critical
Publication of KR101191320B1 publication Critical patent/KR101191320B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법이 개시된다. 쓰기 대상 데이터 및 쓰기 대상 데이터가 저장될 주소 정보가 입력되면, 비교 연산부는 주소 정보에 대응하는 저장 위치에 사전에 저장된 기존 데이터와 쓰기 대상 데이터의 각 비트값을 비교하여 차등값 데이터를 산출한다. 압축 저장부는 차등값 데이터를 압축하여 별도로 구비된 저장매체에 저장한다. 본 발명에 따르면, 기존 데이터와 쓰기 대상 데이터 사이의 변경 비트만을 나타내는 차등값 데이터를 별도의 저장매체에 저장함으로써, 플래시 메모리의 성능 및 내구성을 향상시킬 뿐 아니라 저장매체의 용량을 효율적으로 사용할 수 있다.Disclosed are a flash memory management apparatus and method by comparing write data. When the write target data and the address information for storing the write target data are input, the comparison operation unit calculates the differential value data by comparing each bit value of the existing target data and the write target data previously stored in the storage location corresponding to the address information. The compression storage unit compresses the differential data and stores the differential data in a separate storage medium. According to the present invention, by storing the differential data representing only the change bits between the existing data and the data to be written to a separate storage medium, the performance and durability of the flash memory can be improved and the capacity of the storage medium can be efficiently used. .

Description

쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법{Apparatus and method for managing flash memory by comparing write data}Apparatus and method for managing flash memory by comparing write data}

본 발명은 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법에 관한 것으로, 보다 상세하게는, 플래시 메모리의 쓰기 연산시에 기존에 저장된 데이터와 쓰기 대상인 데이터의 비교 결과를 사용하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing a flash memory by comparing write data, and more particularly, to an apparatus and method for using a result of comparing data stored as a target to write with data stored in a flash memory write operation. will be.

플래시 메모리는 저전력 및 소형화 등의 장점으로 인하여 디지털 카메라, MP3 플레이어, 핸드폰 및 PDA와 같은 휴대장치에 많이 사용되고 있다. 또한 최근에는 플래시 메모리의 용량이 크게 늘어나면서 디스크를 플래시 메모리로 대체하는 경향이 일반화되고 있다.Flash memory is widely used in portable devices such as digital cameras, MP3 players, mobile phones and PDAs due to the advantages of low power and miniaturization. Recently, as the capacity of flash memory has increased significantly, the tendency to replace disks with flash memory has become common.

플래시 메모리는 그 자체의 물리적 특성으로 인하여 쓰기 전 소거(erase-before-write) 연산을 수행하는데, 페이지에 쓰기 동작을 수행할 경우 해당 페이지에 이미 저장된 데이터가 있다면 해당 페이지가 속한 블록을 소거한 후 쓰기 동작을 수행할 수 있다. 이러한 단점을 극복하기 위하여 도입된 플래시 변환 레이어(Flash Translation Layer : FTL)는 파일 시스템으로부터 논리 페이지 번호(Logical Page Number : LPN)를 입력받고, 이를 물리 페이지 번호(Physical Page Number : PPN)로 변환하여 실제 플래시 메모리에 접근한다. FTL은 이와 같은 주소 변환을 위해 매핑 테이블을 생성하며, 매핑 정보는 랜덤 액세스 메모리(RAM)에 저장된다.Flash memory performs erase-before-write operations because of its physical characteristics.If a write operation is performed on a page, if there is data already stored on the page, the flash memory erases the block to which the page belongs. Write operation can be performed. In order to overcome this drawback, the Flash Translation Layer (FTL), which receives the Logical Page Number (LPN) from the file system, converts it into a Physical Page Number (PPN). Accesses actual flash memory The FTL generates a mapping table for such address translation, and the mapping information is stored in random access memory (RAM).

한편, 플래시 메모리는 하드 디스크와 달리 덮어쓰기를 지원하지 않기 때문에 쓰기 동작에 더 많은 시간을 필요로 한다. 덮어쓰기에 의해 공간 쓰레기 수집(garbage collection) 및 합병 연산(merge operation) 등이 추가로 발생하며, 쓰기 증폭 요인(write amplification factor) 수치가 급격히 상승하게 된다. 또한 플래시 메모리는 동일한 블록에 대하여 일정 횟수 이상의 소거 동작이 수행되면 해당 블록을 더 이상 사용할 수 없기 때문에 특정 블록에 소거 동작이 반복되는 것을 피해야 한다.On the other hand, since flash memory does not support overwriting unlike a hard disk, the write operation requires more time. The overwrite additionally causes garbage collection and merge operations, and the write amplification factor value increases rapidly. In addition, since the flash memory cannot use the block any longer when a certain number of erase operations are performed on the same block, the flash memory should avoid repeating the erase operation on a specific block.

본 발명이 이루고자 하는 기술적 과제는, 빈번한 덮어쓰기가 수행되지 않도록 하여 플래시 메모리 기반 저장장치의 성능을 향상시킬 수 있는 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법을 제공하는 데 있다.An object of the present invention is to provide an apparatus and method for managing a flash memory by comparing write data which can improve performance of a flash memory based storage device by preventing frequent overwriting.

본 발명이 이루고자 하는 다른 기술적 과제는, 빈번한 덮어쓰기가 수행되지 않도록 하여 플래시 메모리 기반 저장장치의 성능을 향상시킬 수 있는 쓰기 데이터의 비교에 의한 플래시 메모리 관리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.Another technical problem to be solved by the present invention is a computer that records a program for executing a flash memory management method on a computer by comparing write data, which can improve performance of a flash memory-based storage device by preventing frequent overwriting. To provide a recording medium that can be read by.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치는, 쓰기 대상 데이터 및 상기 쓰기 대상 데이터가 저장될 주소 정보를 입력받는 입력부; 상기 주소 정보에 대응하는 저장 위치에 사전에 저장된 기존 데이터와 상기 쓰기 대상 데이터의 각 비트값을 비교하여 차등값 데이터를 산출하는 비교 연산부; 상기 차등값 데이터를 압축하여 별도로 구비된 저장매체에 저장하는 압축 저장부; 및 상기 저장매체에 저장된 차등값 데이터들을 상기 기존 데이터가 저장된 플래시 메모리로 플러싱(flushing)하는 데이터 소거부;를 포함하며, 상기 압축 저장부는 상기 쓰기 대상 데이터에 대한 읽기 요청이 입력되면 상기 쓰기 대상 데이터에 대응하여 상기 저장매체에 저장된 기존 데이터와의 비교 연산에 의해 상기 쓰기 대상 데이터를 복원하여 출력하고, 상기 데이터 소거부는 상기 읽기 요청에 대응하는 상기 차등값 데이터의 사용 횟수를 누적하여 저장하고, 상기 저장매체에 저장된 차등값 데이터들을 상기 사용 횟수가 적은 순으로 플러싱한다.According to an aspect of the present invention, there is provided a flash memory management apparatus according to a comparison of write data, comprising: an input unit configured to receive write object data and address information on which the write object data is to be stored; A comparison operation unit which calculates differential value data by comparing each bit value of the data to be written with the existing data previously stored at a storage location corresponding to the address information; A compression storage unit for compressing the differential value data and storing the differential value data in a separate storage medium; And a data erasing unit flushing the differential value data stored in the storage medium to a flash memory in which the existing data is stored, wherein the compressed storage unit writes the write target data when a read request for the write target data is input. And restores and writes the write target data by a comparison operation with the existing data stored in the storage medium, and the data erasing unit accumulates and stores the number of times of use of the differential value data corresponding to the read request. The differential value data stored in the storage medium is flushed in order of decreasing use frequency.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 쓰기 데이터의 비교에 의한 플래시 메모리 관리방법은, (a) 쓰기 대상 데이터 및 상기 쓰기 대상 데이터가 저장될 주소 정보를 입력받는 단계; (b) 상기 주소 정보에 대응하는 저장 위치에 사전에 저장된 기존 데이터와 상기 쓰기 대상 데이터의 각 비트값을 비교하여 차등값 데이터를 산출하는 단계; (c) 상기 차등값 데이터를 압축하여 별도로 구비된 저장매체에 저장하는 단계; (d) 상기 쓰기 대상 데이터에 대한 읽기 요청이 입력되면 상기 차등값 데이터의 압축을 해제하여 상기 기존 데이터와의 비교 연산에 의해 상기 쓰기 대상 데이터를 복원하여 출력하는 단계; 및 (e) 상기 읽기 요청에 대응하는 상기 차등값 데이터의 사용 횟수를 누적하여 저장하고, 상기 저장매체에 저장된 차등값 데이터들을 상기 사용 횟수가 적은 순으로 상기 기존 데이터가 저장된 플래시 메모리로 플러싱(flushing)하는 단계;를 갖는다.According to an aspect of the present invention, there is provided a method of managing a flash memory by comparing write data, comprising: (a) receiving write target data and address information on which the write target data is to be stored; calculating differential data by comparing each bit value of the data to be written with the existing data previously stored in the storage location corresponding to the address information; (c) compressing the differential value data and storing the differential data; (d) when the read request for the write target data is input, decompressing the differential value data and restoring and outputting the write target data by a comparison operation with the existing data; And (e) accumulating and storing the number of use of the differential value data corresponding to the read request, and flushing the differential value data stored in the storage medium to a flash memory in which the existing data is stored in the order of the smallest number of times of use. Step).

본 발명에 따른 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법에 의하면, 기존 데이터와 쓰기 대상 데이터 사이의 변경 비트만을 나타내는 차등값 데이터를 별도의 저장매체에 저장함으로써, 플래시 메모리의 성능 및 내구성을 향상시킬 뿐 아니라 저장매체의 용량을 효율적으로 사용할 수 있다.According to the flash memory management apparatus and method by comparing the write data according to the present invention, the performance and durability of the flash memory can be improved by storing the differential value data representing only the change bits between the existing data and the write target data in a separate storage medium. In addition to improving capacity, the capacity of the storage medium can be used efficiently.

도 1은 본 발명에 따른 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 2는 기존 데이터와 쓰기 대상 데이터로부터 차등값 데이터를 산출하는 일 예를 도시한 도면,
도 3은 본 발명에 따른 플래시 메모리 관리방법에서 쓰기 대상 데이터의 정보를 저장하는 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도, 그리고,
도 4는 저장매체(300)에 저장된 차등값 데이터를 사용하여 쓰기 대상 데이터를 복원하는 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
1 is a block diagram showing the configuration of a preferred embodiment of a flash memory management apparatus by comparison of write data according to the present invention;
2 is a diagram illustrating an example of calculating differential value data from existing data and write target data;
3 is a flowchart illustrating a process of performing a preferred embodiment of a method of storing information of write target data in a flash memory management method according to the present invention;
4 is a flowchart illustrating an exemplary embodiment of a method of restoring data to be written using differential value data stored in the storage medium 300.

이하에서 첨부된 도면들을 참조하여 본 발명에 따른 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the flash memory management apparatus and method by comparing the write data according to the present invention.

도 1은 본 발명에 따른 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.1 is a block diagram showing a configuration of a preferred embodiment of a flash memory management apparatus by comparison of write data according to the present invention.

도 1을 참조하면, 본 발명에 따른 플래시 메모리 관리장치(100)는 입력부(110), 비교 연산부(120), 압축 저장부(130) 및 데이터 소거부(140)를 구비하며, 플래시 메모리(200)에 대한 쓰기 동작을 제어하기 위하여 별도로 구비된 저장매체(300)를 사용한다.Referring to FIG. 1, the flash memory management apparatus 100 according to the present invention includes an input unit 110, a comparison operation unit 120, a compression storage unit 130, and a data erasing unit 140, and a flash memory 200. In order to control the write operation for the), a separate storage medium 300 is used.

입력부(110)는 쓰기 대상 데이터 및 쓰기 대상 데이터가 저장될 주소 정보를 입력받고, 비교 연산부(120)는 주소 정보에 대응하는 저장 위치에 사전에 설정된 기존 데이터와 쓰기 대상 데이터의 각 비트값을 비교하여 차등값 데이터를 산출한다.The input unit 110 receives the write target data and the address information on which the write target data is to be stored, and the comparison operation unit 120 compares each bit value of the existing target data and the write target data previously set at the storage location corresponding to the address information. Differential value data is calculated.

앞에서 설명한 바와 같이 플래시 메모리(200)는 쓰기 전 소거 연산으로 인해 쓰기 동작에 많은 시간이 소요되며, 동일한 블록에 대하여 일정 횟수 이상의 소거 연산이 수행되면 해당 블록을 더 이상 사용할 수 없다는 문제를 가진다. 따라서 본 발명에 따른 플래시 메모리 관리장치(100)는 이러한 문제를 해결하기 위해 쓰기 동작에 대한 요청이 입력되면 쓰기 동작을 수행할 주소 공간에 저장된 데이터를 삭제 후 쓰기 대상 데이터를 해당 주소 공간에 저장하는 대신, 기존에 저장된 데이터를 삭제하지 않고 쓰기 대상 데이터에 관한 정보를 저장하는 방법을 사용한다. 또한 쓰기 대상 데이터에 관한 정보를 저장하기 위해 플래시 메모리 별도의 저장매체(300)를 사용한다.As described above, the flash memory 200 takes a long time for a write operation due to an erase operation before writing, and when the erase operation is performed for a predetermined number of times or more with respect to the same block, the flash memory 200 may no longer use the block. Therefore, in order to solve this problem, the flash memory management apparatus 100 according to the present invention deletes data stored in an address space to perform a write operation when a request for a write operation is input, and then stores write target data in the corresponding address space. Instead, it uses a method of storing information about the data to be written without deleting the existing data. In addition, a separate storage medium 300 for flash memory is used to store information about data to be written.

입력부(110)를 통하여 쓰기 대상 데이터 및 쓰기 대상 데이터가 저장될 주소 정보가 입력되면, 비교 연산부(120)는 플래시 메모리(200)에서 주소 정보에 대응하는 저장 위치에 저장되어 있는 기존 데이터와 쓰기 대상 데이터에 비교 연산을 수행하여 쓰기 대상 데이터에 관한 정보인 차등값 데이터를 산출한다.When the write target data and the address information for storing the write target data are input through the input unit 110, the comparison operation unit 120 stores the existing data and the write target stored in the storage location corresponding to the address information in the flash memory 200. A comparison operation is performed on the data to calculate differential data, which is information about the data to be written.

바람직하게는, 비교 연산부(120)는 차등값 데이터를 산출하기 위해 기존 데이터와 쓰기 대상 데이터에 XOR 연산을 수행함으로써 쓰기 대상 데이터에서 기존 데이터와 상이한 변경 비트를 추출해낼 수 있다.Preferably, the comparison operation unit 120 may extract a change bit different from the existing data from the write target data by performing an XOR operation on the existing data and the write target data to calculate the differential value data.

도 2는 기존 데이터와 쓰기 대상 데이터로부터 차등값 데이터를 산출하는 일 예를 도시한 도면이다. 도 2를 참조하면, 512바이트의 쓰기 대상 데이터와 쓰기 동작이 수행될 주소 공간에 이미 저장되어 있는 기존 데이터의 각 비트값에 대하여 XOR 연산을 수행하면, 차등값 데이터는 기존 데이터와 쓰기 대상 데이터의 비트값이 상이한 수만큼의 변경 비트를 가지게 된다. 도 2의 차등값 데이터에서 '1'의 값을 가지는 비트가 변경 비트에 해당한다.2 is a diagram illustrating an example of calculating differential value data from existing data and data to be written. Referring to FIG. 2, when the XOR operation is performed on each of 512 bytes of write target data and each bit value of existing data already stored in the address space where a write operation is to be performed, the differential value data may be divided into the existing data and the write target data. The bit value will have a different number of change bits. In the differential data of FIG. 2, a bit having a value of '1' corresponds to a change bit.

특정 주소 공간에 자주 덮어쓰기 되는 데이터는 핫(hot) 데이터 또는 메타 데이터의 특성을 보일 수 있으며, 이러한 경우에는 차등값 데이터에 포함된 변경 비트의 수가 적다. 반면, 차등값 데이터의 변경 비트 수가 많은 경우에는 빈번하게 덮어쓰기 되지 않는 데이터에 해당할 확률이 높다.Data that is frequently overwritten in a specific address space may exhibit hot or meta data, in which case the number of change bits in the differential data is small. On the other hand, when the number of change bits of the differential data is large, it is likely that the data corresponds to data that is not frequently overwritten.

압축 저장부(130)는 이와 같이 산출된 차등값 데이터를 압축하여 저장매체(300)에 저장한다. 이때 별도의 저장매체(300)로는 차세대 비휘발성 메모리(Non-volatile memory : NVRAM)를 사용할 수 있다.The compression storage unit 130 compresses the difference value data calculated in this way and stores the data in the storage medium 300. In this case, the next storage medium 300 may use a next-generation non-volatile memory (NVRAM).

낸드(NAND) 플래시 메모리(100)와 NVRAM을 함께 사용하는 하이브리드(hybrid) 저장장치에 관하여는 이미 다양한 연구가 진행된 바 있다. 그 중 하나로서, 앞에서 설명한 FTL 매핑 테이블을 NVRAM에 저장하는 기법이 제안되었다.Various researches have already been conducted on hybrid storage using NAND flash memory 100 and NVRAM together. As one of them, a technique for storing the aforementioned FTL mapping table in NVRAM has been proposed.

FTL 매핑 테이블을 플래시 메모리(100)의 임시 버퍼에서 관리하는 경우에는 갑작스러운 정전 상태에 대비하여 지속적으로 매핑 테이블을 플래시 메모리(100)로 플러싱(flushing)하여야 한다. 그러나 제안된 기법에 따르면 덮어쓰기가 빈번하게 이루어지는 매핑 테이블을 NVRAM에 저장함으로써 추가적인 쓰기 연산을 줄일 수 있다. 또한 파일 시스템의 메타 데이터를 NVRAM에 저장하면 빠른 속도로 메타 데이터에 접근 가능하며, 메타 데이터의 비휘발 조건을 만족시킬 수 있으므로 플래시 메모리(200)의 성능과 내구성을 향상시킬 수 있다.When the FTL mapping table is managed in a temporary buffer of the flash memory 100, the mapping table must be flushed to the flash memory 100 in preparation for a sudden power failure state. However, the proposed scheme can reduce the additional write operations by storing the mapping table in NVRAM which is frequently overwritten. In addition, if the metadata of the file system is stored in the NVRAM, the metadata may be quickly accessed and the nonvolatile conditions of the metadata may be satisfied, thereby improving performance and durability of the flash memory 200.

제안된 또 다른 방법으로는 덮어쓰기가 빈번한 핫(hot) 데이터와 그렇지 않은 콜드(cold) 데이터를 구분하여 NVRAM을 핫 데이터의 저장매체로 활용하는 기법이 있다. 또한 NVRAM이 플래시 메모리(200)의 임시 버퍼를 대체하도록 하는 기법은 플래시 메모리(200)에 저장되는 데이터와 NVRAM에 저장되는 데이터 사이의 일관성을 유지하기 위해 발생하는 성능 저하를 방지할 수 있으며, 플래시 메모리(200)가 운영체제 부팅장치로 사용되는 경우에는 운영체제에서 발생하는 플러싱(flushing) 명령에 대해 추가적인 작업을 수행할 필요가 없다.Another proposed method is to use NVRAM as a storage medium for hot data by separating hot data that is frequently overwritten and cold data that are not overwritten. In addition, the technique of allowing NVRAM to replace the temporary buffer of the flash memory 200 may prevent the performance degradation that occurs to maintain consistency between the data stored in the flash memory 200 and the data stored in the NVRAM. When the memory 200 is used as an operating system booting device, there is no need to perform additional operations on the flushing command generated by the operating system.

그러나 이상에서 설명한 기법들은 NVRAM의 특성을 고려하지 않은 것으로, NVRAM은 플래시 메모리(200)에 비해 집적도가 높지 않아 가격 당 단위 용량이 매우 적다. 즉, NVRAM의 용량은 FTL 매핑 테이블과 파일 시스템 메타 데이터를 저장하기에도 부족하므로, 플래시 메모리(200)의 임시 버퍼를 대체하는 용도로 사용되기에는 용량과 가격 측면에서 문제가 발생할 수 있다.However, the techniques described above do not take into consideration the characteristics of NVRAM, and since NVRAM is not highly integrated as compared to the flash memory 200, the unit capacity per price is very small. That is, since the capacity of the NVRAM is not enough to store the FTL mapping table and the file system metadata, there may be a problem in terms of capacity and price to be used to replace the temporary buffer of the flash memory 200.

본 발명에 따른 플래시 메모리 관리장치(100)는 NVRAM의 적은 용량을 충분히 활용하기 위해 앞에서 설명한 바와 같이 기존 데이터와 쓰기 대상 데이터의 변경 비트만을 차등값 데이터로서 저장하므로, 적은 용량에 많은 쓰기 대상 데이터의 정보를 저장할 수 있다.The flash memory management apparatus 100 according to the present invention stores only the changed bits of the existing data and the write target data as differential value data as described above in order to fully utilize the small capacity of the NVRAM. Information can be stored.

한편, 압축 저장부(130)는 차등값 데이터를 압축하여 저장매체(300), 즉 NVRAM에 저장하되, 차등값 데이터의 변경 비트의 수에 따라 압축 여부를 결정할 수 있다. 즉, 압축 저장부(130)는 차등값 데이터의 변경 비트의 수가 사전에 설정된 임계값보다 작으면 해당 차등값 데이터를 압축하고, 그렇지 않은 경우에는 차등값 데이터를 압축하지 않고 저장할 수 있다. 차등값 데이터의 압축 방법으로는 run length encoding 등의 기존 압축 방법을 적용할 수 있다.Meanwhile, the compression storage unit 130 compresses the differential data and stores the differential data in the storage medium 300, that is, the NVRAM, and determines whether to compress the differential data according to the number of changed bits of the differential data. That is, the compression storage unit 130 may compress the differential value data when the number of change bits of the differential value data is smaller than a preset threshold value, and otherwise store the differential value data without compressing the differential value data. Conventional compression methods such as run length encoding may be applied as the compression method of the differential data.

또한 변경 비트의 수가 임계값보다 큰 차등값 데이터의 경우에는 빈번하게 덮어쓰기 되지 않을 가능성이 높으므로, 압축 저장부(130)는 압축되지 않은 차등값 데이터를 NVRAM과 같은 별도의 저장매체(300) 대신 플래시 메모리(200)의 임시 버퍼에 저장할 수도 있다.In addition, in the case of differential data having a larger number of change bits than the threshold value, it is highly unlikely to be overwritten frequently. Therefore, the compression storage unit 130 stores the uncompressed differential data as a separate storage medium 300 such as NVRAM. Instead, it may be stored in a temporary buffer of the flash memory 200.

이상과 같이 입력된 쓰기 대상 데이터의 정보를 NVRAM에 저장함으로써 쓰기 동작이 완료된 후, 읽기 동작은 저장된 쓰기 대상 데이터의 정보와 플래시 메모리(200)에 저장된 기존 데이터를 비교함으로써 수행된다.After the write operation is completed by storing the input information of the write target data in the NVRAM as described above, the read operation is performed by comparing the stored write target data with the existing data stored in the flash memory 200.

즉, 비교 연산부(120)는 쓰기 동작이 완료된 쓰기 대상 데이터에 대한 읽기 요청이 입력되면, 쓰기 동작이 수행될 예정이었던 주소 정보에 저장된 기존 데이터와 저장매체(300), 즉 NVRAM에 저장된 차등값 데이터를 비교함으로써 쓰기 대상 데이터를 복원하여 출력한다. 이때 저장매체(300)에 저장된 차등값 데이터는 압축 저장부(130)에 의해 압축된 상태이므로, 압축 저장부(130)는 읽기 요청이 입력되면 쓰기 대상 데이터에 대응하는 차등값 데이터의 압축을 해제하여 비교 연산부(120)로 전달한다. 차등값 데이터는 기존 데이터와 쓰기 대상 데이터의 XOR 연산에 의해 얻어진 것이므로, 차등값 데이터와 기존 데이터의 XOR 연산을 통하여 쓰기 대상 데이터를 복원할 수 있다.That is, when the read request for the write target data in which the write operation is completed is input, the comparison operation unit 120 stores the existing data stored in the address information on which the write operation is to be performed and the differential data stored in the storage medium 300, that is, the NVRAM. By comparing the data, the data to be written is restored and output. In this case, since the differential value data stored in the storage medium 300 is compressed by the compression storage unit 130, the compression storage unit 130 decompresses the differential value data corresponding to the write target data when a read request is input. To the comparison operation unit 120. Since the differential value data is obtained by the XOR operation of the existing data and the write target data, the write target data may be restored through the XOR operation of the differential data and the existing data.

한편, 저장매체(300)가 압축된 차등값 데이터로 가득 차게 되면 이를 소거할 필요가 있다. 따라서 데이터 소거부(140)는 저장매체(300)에 저장된 차등값 데이터 중에서 빈번하게 사용되지 않은 차등값 데이터를 소거하기 위하여 각각의 읽기 연산시마다 차등값 데이터가 사용되는 횟수를 저장한다.On the other hand, when the storage medium 300 is full of compressed differential data, it is necessary to erase it. Accordingly, the data erasing unit 140 stores the number of times that the differential value data is used for each read operation in order to erase the differential value data that is not frequently used among the differential value data stored in the storage medium 300.

이후 저장매체(300)에 저장된 차등값 데이터의 양이 일정 한도를 넘어서게 되면 데이터 소거부(140)는 사용 횟수가 가장 적은 차등값 데이터를 선정하여 플래시 메모리(200)의 읽기 및 쓰기 단위인 페이지 단위로 누적한다. 즉, 선정된 차등값 데이터는 저장매체(300)에서 플래시 메모리(200)의 한 페이지 크기와 동일한 버퍼에 저장되며, 버퍼에 저장할 때에는 각각의 차등값 데이터마다 인덱스(index)를 표시한다.When the amount of differential data stored in the storage medium 300 exceeds a certain limit, the data erasing unit 140 selects the differential data having the least number of times of use and selects the page unit, which is a unit of reading and writing of the flash memory 200. Accumulate with. That is, the selected differential value data is stored in the same buffer as one page size of the flash memory 200 in the storage medium 300, and when stored in the buffer, an index is displayed for each differential value data.

버퍼가 차등값 데이터로 가득 채워지면, 데이터 소거부(140)는 버퍼에 저장되어 있던 압축된 차등값 데이터들을 플래시 메모리(200)로 플러싱(flushing)한다. 이와 같이 저장매체(300)에 저장되어 있던 차등값 데이터가 플래시 메모리(200)의 임시 버퍼로 저장됨에 따라 플래시 메모리(200)의 매핑 테이블은 다음의 표 1과 같이 변경된다.When the buffer is filled with the differential value data, the data erasing unit 140 flushes the compressed differential value data stored in the buffer to the flash memory 200. As the differential value data stored in the storage medium 300 is stored in the temporary buffer of the flash memory 200, the mapping table of the flash memory 200 is changed as shown in Table 1 below.

LPNLPN 플래그flag 인덱스index PPNPPN 100100 00 1One 100100 101101 00 22 100100 102102 00 33 100100 103103 1One 1One 200200

표 1에서, 플래그가 '0'이면 압축된 차등값 데이터임을 나타내며, 플래그가 '1'이면 압축되지 않은 차등값 데이터임을 나타낸다. 차등값 데이터의 변경 비트의 수가 임계값보다 크면 해당 차등값 데이터를 압축하지 않고 플래시 메모리(200)의 임시 버퍼에 저장할 수 있음을 앞에서 설명한 바 있다.In Table 1, if the flag is '0', it indicates compressed differential value data, and if the flag is '1', it indicates uncompressed differential value data. As described above, when the number of change bits of the differential data is larger than the threshold, the differential data may be stored in a temporary buffer of the flash memory 200 without compressing the differential data.

표 1을 참조하면, 100, 101 및 102로 각각 상이한 논리 페이지 번호(LPN)가 동일한 물리 페이지 번호(PPN) 100을 가리키며, 각각의 차등값 데이터에 부여된 인덱스 번호가 매핑 테이블에 함께 표시된다.Referring to Table 1, 100, 101, and 102, respectively, different logical page numbers (LPNs) point to the same physical page number (PPN) 100, and index numbers assigned to respective differential data are displayed together in the mapping table.

이후 플래시 메모리(200)의 임시 버퍼에 저장된 압축 차등값 데이터에 대한 덮어쓰기가 수행되는 경우에는 해당 페이지에 대응하는 데이터를 저장매체(300), 즉 NVRAM으로 다시 로드하여 사용하게 된다.When overwriting is performed on the compressed differential value data stored in the temporary buffer of the flash memory 200, the data corresponding to the corresponding page is loaded into the storage medium 300, that is, NVRAM.

이상에서 설명한 바와 같이 본 발명에 따른 플래시 메모리 관리장치(100)는 쓰기 동작을 수행하기 위해 플래시 메모리(100)로부터 이미 저장되어 있던 기존 데이터를 소거하고 쓰기 대상 데이터를 저장하는 대신 기존 데이터와 쓰기 대상 데이터 사이의 변경 비트만을 나타내는 차등값 데이터를 별도의 저장매체(300)에 저장함으로써, 플래시 메모리(100)의 성능 및 내구성을 향상시킬 뿐 아니라 저장매체(300)의 용량을 효율적으로 사용할 수 있다.As described above, the flash memory management apparatus 100 according to the present invention erases existing data already stored from the flash memory 100 to perform a write operation, and instead of storing the write target data, the existing data and the write target. By storing the differential value data representing only the change bits between the data in a separate storage medium 300, the performance and durability of the flash memory 100 may be improved and the capacity of the storage medium 300 may be efficiently used.

도 3은 본 발명에 따른 플래시 메모리 관리방법에서 쓰기 대상 데이터의 정보를 저장하는 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.3 is a flowchart illustrating a preferred embodiment of a method for storing information of write target data in a flash memory management method according to the present invention.

도 3을 참조하면, 입력부(110)는 쓰기 대상 데이터 및 쓰기 동작을 수행할 주소 정보를 입력받는다(S310). 비교 연산부(120)는 플래시 메모리(200)의 주소 정보에 대응하는 위치에 저장된 기존 데이터와 입력받은 쓰기 대상 데이터를 비교하여, 즉 XOR 연산을 수행하여 차등값 데이터를 산출한다(S320). 압축 저장부(130)는 산출된 차등값 데이터를 압축하여 별도로 구비된 저장매체(300), 바람직하게는 NVRAM에 저장한다(S330). 이때 차등값 데이터에 포함된 변경 비트의 수에 따라 압축 여부가 결정될 수 있다.Referring to FIG. 3, the input unit 110 receives write target data and address information for performing a write operation (S310). The comparison operation unit 120 compares the existing data stored in the location corresponding to the address information of the flash memory 200 with the input write data, that is, performs an XOR operation to calculate differential data (S320). The compression storage unit 130 compresses the calculated differential value data and stores it in a storage medium 300, preferably NVRAM, provided separately (S330). In this case, whether to compress may be determined according to the number of change bits included in the differential data.

또한 도 4는 저장매체(300)에 저장된 차등값 데이터를 사용하여 쓰기 대상 데이터를 복원하는 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.4 is a flowchart illustrating an exemplary embodiment of a method of restoring data to be written using differential value data stored in the storage medium 300.

도 4를 참조하면, 쓰기 대상 데이터에 대한 읽기 요청이 입력되면(S410), 압축 저장부(130)는 쓰기 대상 데이터, 즉 쓰기 대상 데이터에 대한 쓰기 동작이 이루어졌던 주소 정보에 해당하는 위치에 저장된 기존 데이터에 대응하여 저장매체(300)에 저장된 차등값 데이터의 압축을 해제하고, 비교 연산부(120)는 압축이 해제된 차등값 데이터와 플래시 메모리(200)에 저장된 기존 데이터에 XOR 연산을 수행한다(S420) 그 결과 복원된 쓰기 대상 데이터가 읽기 동작의 결과로 출력된다(S430).Referring to FIG. 4, when a read request for write target data is input (S410), the compression storage unit 130 is stored at a location corresponding to address information on which write operation has been performed on write target data, that is, write target data. In response to the existing data, the differential value data stored in the storage medium 300 is decompressed, and the comparison operation unit 120 performs an XOR operation on the decompressed differential value data and the existing data stored in the flash memory 200. As a result, the restored write target data is output as a result of the read operation (S430).

도 5는 본 발명에 따른 플래시 메모리 관리장치(200)를 구현하여 차등값 데이터의 변경 비트의 크기를 산출한 결과를 나타낸 도면이고, 도 6은 차등값 데이터의 변경 비트의 크기에 따른 산출 횟수를 도시한 그래프이다.FIG. 5 is a diagram illustrating a result of calculating a size of a change bit of differential data by implementing a flash memory management apparatus 200 according to an exemplary embodiment of the present invention, and FIG. It is a graph shown.

도 5에서 변경 비트의 크기 산출은 섹터(sector) 단위로 이루어졌으며, 섹터의 주소 정보와 변경 비트의 수, 그리고 차등값 데이터에 대한 변경 비트의 크기가 표시되어 있다.In FIG. 5, the size of the change bit is calculated in units of sectors, and the address information of the sector, the number of change bits, and the size of the change bit for the differential data are shown.

이와 관련하여 도 6의 그래프를 참조하면, 변경 비트의 크기가 0~5%로 매우 작은 경우는 덮어쓰기가 자주 이루어지는 메타 데이터인 것으로 추정할 수 있으며, 변경 비트의 크기가 40~60%의 범위에 속하는 경우는 빈번하게 덮어쓰기 되지 않는 일반적인 데이터에 해당하는 것으로 추정할 수 있다. 한편, 변경 비트의 크기가 99~100%인 경우는 파일 시스템의 영향으로 비트가 반전된 소수의 경우에 해당한다.In this regard, referring to the graph of FIG. 6, when the size of the change bit is very small (0 to 5%), it may be estimated that metadata is frequently overwritten, and the size of the change bit is 40 to 60%. In case of, it can be assumed that it belongs to general data which is not frequently overwritten. On the other hand, when the size of the change bit is 99 to 100%, it corresponds to a few cases where the bit is inverted due to the influence of the file system.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation in the embodiment in which said invention is directed. It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the appended claims.

100 - 플래시 메모리 관리장치
110 - 입력부
120 - 비교 연산부
130 - 압축 저장부
140 - 데이터 소거부
200 - 플래시 메모리
300 - 저장매체
100-flash memory management
110-input
120-Comparison Operator
130-compressed storage
140-data eraser
200-flash memory
300-storage medium

Claims (15)

쓰기 대상 데이터 및 상기 쓰기 대상 데이터가 저장될 주소 정보를 입력받는 입력부;
상기 주소 정보에 대응하는 저장 위치에 사전에 저장된 기존 데이터와 상기 쓰기 대상 데이터의 각 비트값을 비교하여 차등값 데이터를 산출하는 비교 연산부;
상기 차등값 데이터를 압축하여 별도로 구비된 저장매체에 저장하는 압축 저장부; 및
상기 저장매체에 저장된 차등값 데이터들을 상기 기존 데이터가 저장된 플래시 메모리로 플러싱(flushing)하는 데이터 소거부;를 포함하며,
상기 압축 저장부는 상기 쓰기 대상 데이터에 대한 읽기 요청이 입력되면 상기 쓰기 대상 데이터에 대응하여 상기 저장매체에 저장된 기존 데이터와의 비교 연산에 의해 상기 쓰기 대상 데이터를 복원하여 출력하고,
상기 데이터 소거부는 상기 읽기 요청에 대응하는 상기 차등값 데이터의 사용 횟수를 누적하여 저장하고, 상기 저장매체에 저장된 차등값 데이터들을 상기 사용 횟수가 적은 순으로 플러싱하는 것을 특징으로 하는 플래시 메모리 관리장치.
An input unit configured to receive write target data and address information for storing the write target data;
A comparison operation unit which calculates differential value data by comparing each bit value of the data to be written with the existing data previously stored at a storage location corresponding to the address information;
A compression storage unit for compressing the differential value data and storing the differential value data in a separate storage medium; And
And a data erasing unit configured to flush the differential value data stored in the storage medium to a flash memory in which the existing data is stored.
When the read request for the write target data is input, the compression storage unit restores and outputs the write target data by a comparison operation with the existing data stored in the storage medium in response to the write target data.
And the data erasing unit accumulates and stores the number of use of the differential value data corresponding to the read request, and flushes the differential value data stored in the storage medium in order of decreasing use count. .
제 1항에 있어서,
상기 저장매체는 비휘발성 메모리인 것을 특징으로 하는 플래시 메모리 관리장치.
The method of claim 1,
And the storage medium is a nonvolatile memory.
제 1항 또는 제 2항에 있어서,
상기 비교 연산부는 상기 기존 데이터와 상기 쓰기 대상 데이터 사이의 XOR 연산에 의하여 상기 차등값 데이터를 산출하는 것을 특징으로 하는 플래시 메모리 관리장치.
3. The method according to claim 1 or 2,
And the comparison operation unit calculates the differential value data by an XOR operation between the existing data and the write target data.
삭제delete 삭제delete 제 1항 또는 제 2항에 있어서,
상기 데이터 소거부는 상기 저장매체에 저장된 차등값 데이터들을 상기 사용 횟수가 적은 순으로 정렬하여 상기 플래시 메모리의 한 페이지에 대응하는 크기의 버퍼에 저장하고, 상기 버퍼가 모두 채워지면 상기 플래시 메모리로 플러싱하는 것을 특징으로 하는 플래시 메모리 관리장치.
3. The method according to claim 1 or 2,
The data erasing unit sorts the differential value data stored in the storage medium in the order of the smallest number of times of use, and stores the difference value data in a buffer having a size corresponding to one page of the flash memory. Flash memory management device characterized in that.
제 1항 또는 제 2항에 있어서,
상기 압축 저장부는 상기 차등값 데이터의 크기가 사전에 설정된 임계값보다 작으면 상기 차등값 데이터를 압축하는 것을 특징으로 하는 플래시 메모리 관리장치.
3. The method according to claim 1 or 2,
And the compression storage unit compresses the differential value data when the size of the differential value data is smaller than a preset threshold.
(a) 쓰기 대상 데이터 및 상기 쓰기 대상 데이터가 저장될 주소 정보를 입력받는 단계;
(b) 상기 주소 정보에 대응하는 저장 위치에 사전에 저장된 기존 데이터와 상기 쓰기 대상 데이터의 각 비트값을 비교하여 차등값 데이터를 산출하는 단계;
(c) 상기 차등값 데이터를 압축하여 별도로 구비된 저장매체에 저장하는 단계;
(d) 상기 쓰기 대상 데이터에 대한 읽기 요청이 입력되면 상기 차등값 데이터의 압축을 해제하여 상기 기존 데이터와의 비교 연산에 의해 상기 쓰기 대상 데이터를 복원하여 출력하는 단계; 및
(e) 상기 읽기 요청에 대응하는 상기 차등값 데이터의 사용 횟수를 누적하여 저장하고, 상기 저장매체에 저장된 차등값 데이터들을 상기 사용 횟수가 적은 순으로 상기 기존 데이터가 저장된 플래시 메모리로 플러싱(flushing)하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리 관리방법.
(a) receiving write data and address information on which the write data is to be stored;
calculating differential data by comparing each bit value of the data to be written with the existing data previously stored in the storage location corresponding to the address information;
(c) compressing the differential value data and storing the differential data;
(d) when the read request for the write target data is input, decompressing the differential value data and restoring and outputting the write target data by a comparison operation with the existing data; And
(e) accumulating and storing the number of use of the differential value data corresponding to the read request, and flushing the differential value data stored in the storage medium to a flash memory in which the existing data is stored in the order of the smallest number of times of use. Flash memory management method comprising a.
제 8항에 있어서,
상기 저장매체는 비휘발성 메모리인 것을 특징으로 하는 플래시 메모리 관리방법.
The method of claim 8,
And the storage medium is a non-volatile memory.
제 8항 또는 제 9항에 있어서,
상기 (b) 단계에서, 상기 기존 데이터와 상기 쓰기 대상 데이터 사이의 XOR 연산에 의하여 상기 차등값 데이터를 산출하는 것을 특징으로 하는 플래시 메모리 관리방법.
10. The method according to claim 8 or 9,
And in step (b), calculate the differential value data by an XOR operation between the existing data and the write target data.
삭제delete 삭제delete 제 8항 또는 제 9항에 있어서,
상기 (e) 단계에서, 상기 저장매체에 저장된 차등값 데이터들을 상기 사용 횟수가 적은 순으로 정렬하여 상기 플래시 메모리의 한 페이지에 대응하는 크기의 버퍼에 저장하고, 상기 버퍼가 모두 채워지면 상기 플래시 메모리로 플러싱하는 것을 특징으로 하는 플래시 메모리 관리방법.
10. The method according to claim 8 or 9,
In the step (e), the differential value data stored in the storage medium are sorted in the order of the smallest number of times of use, and stored in a buffer of a size corresponding to one page of the flash memory. Flash memory management method characterized in that the flushing.
제 8항 또는 제 9항에 있어서,
상기 (c) 단계에서, 상기 차등값 데이터의 크기가 사전에 설정된 임계값보다 작으면 상기 차등값 데이터를 압축하는 것을 특징으로 하는 플래시 메모리 관리방법.
10. The method according to claim 8 or 9,
And in step (c), compressing the differential value data when the size of the differential value data is smaller than a preset threshold.
제 8항 또는 제 9항에 기재된 플래시 메모리 관리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the flash memory management method according to claim 8 or 9.
KR1020100125627A 2010-12-09 2010-12-09 Apparatus and method for managing flash memory by comparing write data KR101191320B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100125627A KR101191320B1 (en) 2010-12-09 2010-12-09 Apparatus and method for managing flash memory by comparing write data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100125627A KR101191320B1 (en) 2010-12-09 2010-12-09 Apparatus and method for managing flash memory by comparing write data

Publications (2)

Publication Number Publication Date
KR20120064407A KR20120064407A (en) 2012-06-19
KR101191320B1 true KR101191320B1 (en) 2012-10-16

Family

ID=46684528

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100125627A KR101191320B1 (en) 2010-12-09 2010-12-09 Apparatus and method for managing flash memory by comparing write data

Country Status (1)

Country Link
KR (1) KR101191320B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929371B1 (en) 2009-03-18 2009-12-02 한국과학기술원 A method to store data into flash memory in a dbms-independent manner using the page-differential

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929371B1 (en) 2009-03-18 2009-12-02 한국과학기술원 A method to store data into flash memory in a dbms-independent manner using the page-differential

Also Published As

Publication number Publication date
KR20120064407A (en) 2012-06-19

Similar Documents

Publication Publication Date Title
US9645750B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US8738882B2 (en) Pre-organization of data
US9747298B2 (en) Inline garbage collection for log-structured file systems
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
KR101384435B1 (en) Index cache tree
US7890550B2 (en) Flash memory system and garbage collection method thereof
CN102483714B (en) System and method for restoring index page in flash restore
KR101447188B1 (en) Method and apparatus for controlling I/O to optimize flash memory
US8214620B2 (en) Computer-readable recording medium storing data storage program, computer, and method thereof
CN102662856B (en) A kind of solid state hard disc and access method thereof
JP2006221636A (en) Run unit address mapping table and its composition method
EP2665065A2 (en) Electronic device employing flash memory
CN110795272B (en) Method and system for atomic and latency guarantees facilitated on variable-size I/O
CN105074676A (en) Multiple stream compression and formatting of data for data storage systems
US9274706B2 (en) Data management method, memory control circuit unit and memory storage apparatus
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
US11176033B2 (en) Data storage devices and data processing methods
US20170090782A1 (en) Writing management method and writing management system for solid state drive
KR101699779B1 (en) Indexing method for flash memory
KR101191320B1 (en) Apparatus and method for managing flash memory by comparing write data
CN112394873B (en) Data management method, system, electronic equipment and storage medium
CN111324284B (en) Memory device
Chung et al. C-HYFLUR: Recovery for Power-off Failure in Flash Memory Storage Systems Using Compression Scheme for HYbrid FLUsh Recovery
CN111966606B (en) Data storage device and data processing method

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: 20151001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee