KR100816820B1 - Apparatus and method for managing buffer linked with flash memory - Google Patents

Apparatus and method for managing buffer linked with flash memory Download PDF

Info

Publication number
KR100816820B1
KR100816820B1 KR1020060128006A KR20060128006A KR100816820B1 KR 100816820 B1 KR100816820 B1 KR 100816820B1 KR 1020060128006 A KR1020060128006 A KR 1020060128006A KR 20060128006 A KR20060128006 A KR 20060128006A KR 100816820 B1 KR100816820 B1 KR 100816820B1
Authority
KR
South Korea
Prior art keywords
data
flash memory
target data
management target
page
Prior art date
Application number
KR1020060128006A
Other languages
Korean (ko)
Inventor
김상욱
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020060128006A priority Critical patent/KR100816820B1/en
Application granted granted Critical
Publication of KR100816820B1 publication Critical patent/KR100816820B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control

Abstract

A device and a method for managing a buffer linked with a flash memory are provided to improve a data storage ratio, performance, and lifetime of a NAND flash memory by storing data to the NAND flash memory without an empty slot in a page of the NAND flash memory. A buffer(210) comprises a general area storing target data to be written to a NAND flash memory and page unit data read from the NAND flash memory, and an exclusive area storing managed data selected among the page unit data read from the NAND flash memory. A buffer manager(220) writes the target data to a storage area corresponding to an empty slot of a page comprising the managed data stored in the exclusive area, and removes the managed data from the exclusive area when the number of empty slots of the page comprising the managed data is smaller than a first reference number. A managed data selector(230) selects the data having the number of empty slots higher than a second reference number among the page unit data read from the NAND flash memory.

Description

플래시 메모리와 연동되는 버퍼 관리장치 및 방법{Apparatus and method for managing buffer linked with flash memory}Apparatus and method for managing buffer linked with flash memory}

도 1은 플래시 메모리의 슬롯 페이지 구조를 도시한 도면,1 illustrates a slot page structure of a flash memory;

도 2는 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리장치에 대한 바람직한 일 실시예의 구성을 도시한 블록도,2 is a block diagram showing the configuration of a preferred embodiment of a buffer management apparatus interoperating with a flash memory according to the present invention;

도 3은 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리장치의 버퍼부에 대한 바람직한 일 실시예를 도시한 도면,3 is a view showing a preferred embodiment of the buffer unit of the buffer management device interlocked with the flash memory according to the present invention;

도 4는 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리방법에 대한 바람직한 일 실시예의 수행과정을 도시한 흐름도, 그리고,4 is a flowchart illustrating a process of performing a preferred embodiment of a buffer management method interoperating with a flash memory according to the present invention;

도 5는 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리방법에 대한 바람직한 다른 실시예의 수행과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of performing another preferred embodiment of a buffer management method interoperating with a flash memory according to the present invention.

본 발명은 플래시 메모리에 연동되는 버퍼 관리장치 및 방법에 관한 것으로, 보다 상세하게는, 낸드 플래시 메모리에 레코드 쓰기 연산을 수행하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing a buffer interoperating with a flash memory, and more particularly, to an apparatus and method for performing a record write operation to a NAND flash memory.

플래시 메모리는 동일한 크기의 연속적인 블록으로 구성되며, 하나의 블록은 동일한 크기의 연속적인 페이지로 구성된다. 플래시 메모리에서 수행 가능한 연산은 읽기, 쓰기 및 소거의 세가지이다. 읽기 및 쓰기 연산은 페이지 단위로 수행되며, 소거 연산은 블록 단위로 수행된다. 이때, 쓰기 연산은 읽기 연산에 비해 많은 수행시간이 소요되며, 쓰기 연산에 비해 더 많은 수행시간이 소요되는 소거 연산을 유발시킨다. 따라서 쓰기 연산의 횟수를 줄일수록 플래시 메모리의 전반적인 성능이 향상된다.Flash memory is composed of consecutive blocks of the same size, and one block is composed of consecutive pages of the same size. There are three operations that can be performed in flash memory: read, write and erase. Read and write operations are performed in units of pages, and erase operations are performed in units of blocks. At this time, the write operation takes more execution time than the read operation, and causes an erase operation that requires more execution time than the write operation. Therefore, reducing the number of write operations improves the overall performance of the flash memory.

플래시 메모리는 하드 디스크와 달리 플래시 메모리만의 고유한 특성들이 존재한다. 첫째, 쓰기 연산의 대상이 되는 페이지는 미리 소거되어 있어야 한다. 따라서 덮어쓰기(in-place update)가 불가능하며, 페이지 수정시 새로운 물리적 페이지(physical page)를 할당받아 쓰기 연산을 수행하여야 한다. 둘째, 플래시 메모리에서 수행가능한 소거 연산의 횟수는 일반적으로 10만번 이하로 제한되어 있다. 따라서 쓰기 연산을 많이 수행할수록 소거 연산이 많이 수행되며, 이로 인해 플래시 메모리의 수명이 단축된다.Unlike hard disks, flash memory has unique characteristics. First, pages targeted for write operations must be erased in advance. Therefore, in-place update is impossible, and when a page is modified, a new physical page must be allocated to perform a write operation. Second, the number of erase operations that can be performed in the flash memory is generally limited to 100,000 or less. Therefore, the more write operations are performed, the more erase operations are performed, which shortens the life of the flash memory.

도 1은 플래시 메모리의 슬롯 페이지 구조를 도시한 도면이다. 1 illustrates a slot page structure of a flash memory.

도 1을 참조하면, 슬롯 페이지(100)는 여러 개의 슬롯들(110 내지 180)과 하나의 메타데이터(190)로 구성된다. 슬롯 페이지(100)는 데이터를 구성하는 단위인 레코드를 저장하기 위한 대표적인 구조이다. 슬롯(110 내지 180)은 슬롯 페이지(100)를 여러 개의 동일한 크기로 나눈 논리적인 구조이며, 하나의 슬롯에는 하나의 레코드가 저장된다. 슬롯(110 내지 180)의 크기는 저장될 레코드의 크기에 따 라 달라지며, 하나의 슬롯 페이지(100)에 존재하는 슬롯의 수는 슬롯의 크기에 따라 달라진다. 메타데이터 영역(190)에는 슬롯 페이지(100)를 관리하는데 필요한 정보와 비어 있는 슬롯에 대한 정보인 빈 공간 리스트 구성 정보가 기록된다.Referring to FIG. 1, the slot page 100 includes a plurality of slots 110 to 180 and one metadata 190. The slot page 100 is a representative structure for storing a record which is a unit constituting data. Slots 110 to 180 are logical structures in which slot pages 100 are divided into several equal sizes, and one record is stored in one slot. The size of the slots 110 to 180 depends on the size of the record to be stored, and the number of slots present in one slot page 100 depends on the size of the slot. In the metadata area 190, information necessary for managing the slot page 100 and empty space list configuration information, which is information on an empty slot, are recorded.

플래시 메모리의 읽기 및 쓰기 연산은 버퍼를 통해 수행된다. 버퍼는 속도가 매우 빠른 중앙처리장치와 이에 비해 매우 느린 보조기억장치 간의 속도를 보완해주는 역할을 하는 메모리이다. 컴퓨터 메인 메모리의 일부 영역이 버퍼로 사용되거나 플래시 메모리 저장장치에 별도 추가된 메모리가 버퍼로서 사용된다. 쓰기 연산이 수행될 플래시 메모리의 페이지가 버퍼에 올려진 후, 플래시 메모리에 기록될 레코드가 버퍼에 저장된다. 추후에 버퍼가 가득 차게 되면 특정 페이지가 여유 공간 확보를 위해 교체된다. 교체된 페이지에 내용의 변경이 있으면, 변경된 내용은 쓰기 연산을 통해 플래시 메모리의 새로운 페이지에 저장된다.Read and write operations in flash memory are performed through the buffer. A buffer is a memory that compensates for the speed between a very fast central processor and a very slow auxiliary memory. Some areas of computer main memory are used as buffers, or memory added separately to flash memory storage is used as a buffer. After the page of the flash memory on which the write operation is to be performed is loaded into the buffer, the record to be written to the flash memory is stored in the buffer. Later, when the buffer becomes full, certain pages are replaced to free up space. If there is a change in the contents of the replaced page, the changed contents are stored in a new page of the flash memory through a write operation.

교체될 페이지를 결정하는 기존의 버퍼 관리 기법들로는 FIFO(First-In, First-Out), LRU(Least Recently Used), LFU(Least Freuently Used) 및 MFU(Most Recently Used) 등이 있다. 이 기법들은 메모리 버퍼의 페이지 중 교체 대상 페이지를 결정하는데 있어서 버퍼 보관 시점, 버퍼 보관 후 경과 시간 및 보관 후 참조되는 횟수를 데이터 교체의 기준으로 사용한다. FIFO 기법은 가장 먼저 버퍼에 올려진 페이지를 우선적으로 교체하며, LRU 기법은 쓰기 연산이 수행된 후 가장 오래 된 페이지를 우선적으로 교체한다. LFU 기법은 쓰기 연산이 수행된 횟수가 가장 적은 페이지를 우선적으로 교체하며, MFU 기법은 쓰기 연산이 수행된 횟수가 가장 많은 페이지를 우선적으로 교체한다.Existing buffer management techniques for determining pages to be replaced include first-in, first-out (FIFO), least recently used (LRU), least frequently used (LFU), and most recently used (MFU). These techniques use the time of buffer storage, the elapsed time after buffer storage, and the number of times of referencing after storage to determine replacement pages among memory buffer pages. The FIFO technique first replaces the first page loaded in the buffer. The LRU technique first replaces the oldest page after a write operation. The LFU technique preferentially replaces pages with the least number of write operations, and the MFU technique preferentially replaces pages with the highest number of write operations.

이상과 같은, 기존의 버퍼 관리 기법은 버퍼에 올려진 페이지의 빈 슬롯의 수를 고려하지 않고 교체할 페이지를 선택한다. 이로 인해, 플래시 메모리에는 빈 슬롯이 많은 다수의 페이지가 존재하게 되어 플래시 메모리의 저장 효율이 떨어진다. 또한 플래시 메모리의 페이지에 빈 슬롯이 없이 레코드를 저장하는 경우보다 많은 쓰기 연산이 유발되어 레코드 삽입 시간은 지연된다. 그리고 많은 쓰기 연산으로 잦은 소거 연산이 유발되어 플래시 메모리의 수명은 단축된다. 이처럼 기존 버퍼 교체 기법에는 플래시 메모리의 성능을 저하시키고 수명을 단축시키는 문제가 있다.As described above, the existing buffer management scheme selects a page to be replaced without considering the number of empty slots of pages loaded in the buffer. As a result, a large number of pages with many empty slots exist in the flash memory, thereby reducing storage efficiency of the flash memory. In addition, the write insertion time is delayed because more write operations are induced than storing records without empty slots in a page of flash memory. And many write operations cause frequent erase operations, which shortens the life of flash memory. As such, there is a problem in the conventional buffer replacement technique that degrades the flash memory performance and shortens the lifespan.

본 발명이 이루고자 하는 기술적 과제는 플래시 메모리의 데이터 저장률과 성능을 향상시키고 플래시 메모리의 수명을 연장시킬 수 있는 플래시 메모리 관리장치 및 그 방법을 제공하는 데 있다.An object of the present invention is to provide a flash memory management apparatus and method for improving the data storage rate and performance of a flash memory and extending the life of the flash memory.

본 발명이 이루고자 하는 또 다른 기술적 과제는 플래시 메모리의 데이터 저장률과 성능을 향상시키고 플래시 메모리의 수명을 연장시킬 수 있는 플래시 메모리 관리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.Another technical problem to be achieved by the present invention is a computer-readable recording medium having recorded thereon a program for executing a flash memory management method that can improve the data storage rate and performance of a flash memory and extend the life of the flash memory. To provide.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리와 연동되는 버퍼관리 장치는, 플래시 메모리에 기록될 기록대상 데이터 및 상기 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 범용영역과 상기 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 선택된 관리대상 데이터가 저장되는 전용영역으로 이루어진 버퍼부; 상기 버퍼부의 전용영역에 저장되어 있는 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 저장영역에 상기 기록대상 데이터를 기록하고, 상기 관리대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제거용 기준개수 이하이면 상기 전용영역으로부터 상기 관리대상 데이터를 제거하는 버퍼 관리부; 및 상기 전용영역으로부터 제거된 관리대상 데이터를 상기 플래시 메모리에 저장하는 메모리 구동부;를 구비한다.In order to achieve the above technical problem, a buffer management apparatus interoperating with a flash memory according to the present invention includes a general-purpose area in which data to be written in a flash memory and data in units of pages read from the flash memory are stored; A buffer unit including a dedicated area for storing selected management target data among data of a page unit read from a flash memory; The recording target data is recorded in a storage area corresponding to an empty slot of a page composed of management target data stored in a dedicated area of the buffer unit, and the number of empty slots of the page composed of the management target data is removed. A buffer manager which removes the management target data from the dedicated area if less; And a memory driver configured to store the management object data removed from the dedicated area in the flash memory.

또한 상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리와 연동되는 버퍼관리 방법은 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터 중에서 선택된 관리대상 데이터를 범용영역과 전용영역으로 이루어진 버퍼메모리의 전용영역에 저장하는 데이터 저장단계; 상기 플래시 메모리에 기록될 기록대상 데이터를 상기 버퍼메모리의 전용영역 중에서 상기 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 영역에 기록하는 데이터 기록단계; 상기 관리대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제거용 기준개수 이하이면 상기 버퍼메모리의 전용영역으로부터 제거하는 데이터 제거단계; 및 상기 버퍼메모리의 전용영역으로부터 제거된 관리대상 데이터를 상기 플래시 메모리에 저장하는 플래시 메모리 접속단계;를 갖는다.In addition, in order to achieve the above technical problem, the buffer management method interoperating with the flash memory according to the present invention is a buffer memory comprising a general-purpose area and a dedicated area for the management target data selected from data consisting of page units read from the flash memory. A data storage step of storing in a dedicated area; A data recording step of recording the recording target data to be recorded in the flash memory into an area corresponding to an empty slot of a page composed of the management target data in a dedicated region of the buffer memory; A data removing step of removing from the dedicated area of the buffer memory if the number of empty slots of the page composed of the management target data is less than or equal to the reference number for removal; And a flash memory access step of storing management target data removed from the dedicated area of the buffer memory in the flash memory.

이에 의해, 플래시 메모리의 각 페이지에 높은 저장률로 데이터를 저장할 수 있으며, 저장률이 높아짐에 따라 플래시 메모리의 성능이 향상되고 수명이 연장될 수 있다.As a result, data may be stored in each page of the flash memory at a high storage rate, and as the storage rate is increased, the performance of the flash memory may be improved and its life may be extended.

이하에서 첨부된 도면들을 참조하여 본 발명에 따른 플래시 메모리와 연동되는 버퍼관리 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, exemplary embodiments of a buffer management apparatus and method interoperating with a flash memory according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리장치에 대한 바람직한 일 실시예의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of a preferred embodiment of a buffer management apparatus interoperating with a flash memory according to the present invention.

도 2를 참조하면, 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리장치는 버퍼부(210), 버퍼 관리부(220), 관리대상 데이터 선정부(230) 및 메모리 구동부(240)를 구비한다.Referring to FIG. 2, a buffer management apparatus interoperating with a flash memory according to the present invention includes a buffer unit 210, a buffer manager 220, a management target data selector 230, and a memory driver 240.

버퍼부(210)는 플래시 메모리에 기록될 기록대상 데이터 및 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 범용영역과 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 선택된 관리대상 데이터가 저장되는 전용영역으로 이루어진다. 또한 버퍼부(210)에는 플래시 메모리에 쓰기 연산과 삭제 연산을 수행하기 위해 임시로 기록대상 데이터 및 기록대상 페이지로부터 독출된 페이지 단위로 이루어진 페이지 데이터가 저장된다. 쓰기 연산과 삭제 연산이 플래시 메모리의 페이지에 대해 수행되기 전에 버퍼부(210)에 저장된 페이지 데이터에 대한 기록과 삭제가 먼저 수행된다.The buffer unit 210 stores a general area in which recording target data to be written in the flash memory and data in page units read from the flash memory are stored, and a dedicated area in which selected management target data is stored among page unit data read from the flash memory. Is done. In addition, the buffer unit 210 temporarily stores write data and page data in units of pages read from the write target page in order to perform write and erase operations in the flash memory. Before the write and delete operations are performed on the pages of the flash memory, writing and deleting of the page data stored in the buffer unit 210 are performed first.

도 3은 본 발명에 따른 버퍼부의 바람직한 일 실시예를 도시한 도면이다. 도 3을 참조하면, 범용영역(310)에는 플래시 메모리에 기록될 기록대상 데이터 및 플래시 메모리로부터 독출된 페이지 단위로 이루어진 페이지 데이터가 기록된다. 페이지 데이터는 플래시 메모리의 슬롯 페이지의 슬롯과 메타데이터 영역에 저장된 데이터를 포함하고 있는 데이터이다. 따라서 페이지 데이터는 슬롯 페이지의 각 슬 롯에 저장된 데이터뿐만 아니라 슬롯 페이지를 관리하는데 필요한 정보와 비어 있는 슬롯에 대한 정보인 빈 공간 리스트 구성 정보를 포함하고 있다. 범용영역(310)에 저장되는 페이지 데이터의 수는 범용영역(310)의 크기에 따라 다르다. 범용영역(310)의 크기는 본 발명에 따른 플래시 메모리와 연동되는 관리장치의 메모리의 허용 범위 내에서 정해진다. 일예로, 범용영역(310)의 크기는 64개의 페이지 데이터와 128KByte의 기록대상 데이터가 저장될 수 있는 크기로 설정된다.3 is a view showing a preferred embodiment of the buffer unit according to the present invention. Referring to FIG. 3, in the general area 310, page data composed of recording target data to be written to the flash memory and page units read from the flash memory are recorded. The page data is data including data stored in the slot and metadata area of the slot page of the flash memory. Therefore, the page data includes not only data stored in each slot of the slot page, but also information necessary for managing the slot page and information on an empty space list which is information on empty slots. The number of page data stored in the general-purpose area 310 depends on the size of the general-purpose area 310. The size of the general-purpose area 310 is determined within the allowable range of the memory of the management device interlocked with the flash memory according to the present invention. For example, the size of the general-purpose area 310 is set to a size capable of storing 64 page data and 128 KByte recording target data.

전용영역(320)에는 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 선택된 관리대상 데이터가 저장된다. 여기서, 관리대상 데이터는 페이지 데이터와 동일한 내용의 데이터이다. 전용영역(320)에 저장되는 관리대상 데이터의 수는 전용영역을 크기에 따라 다르다. 기본적으로 전용영역(320)의 크기는 한 개의 관리대상 데이터의 크기로 설정되며, 필요시에 복수개의 관리대상 데이터가 저장될 수 있는 크기로 설정될 수 있다.The dedicated area 320 stores management target data selected from data of a page unit read from the flash memory. Here, the management target data is data having the same contents as the page data. The number of management target data stored in the dedicated area 320 depends on the size of the dedicated area. Basically, the size of the dedicated area 320 may be set to the size of one piece of management target data, and may be set to a size in which a plurality of pieces of management target data may be stored if necessary.

버퍼 관리부(220)는 플래시 메모리로부터 독출된 페이지 데이터를 버퍼부(210)에 저장하고, 버퍼부(210)에 저장된 페이지 데이터에 대해 쓰기와 삭제를 수행하며, 버퍼부(210)로부터 페이지 데이터를 제거한다.The buffer manager 220 stores page data read from the flash memory in the buffer 210, writes and deletes page data stored in the buffer 210, and writes page data from the buffer 210. Remove

플래시 메모리로부터 독출된 데이터의 버퍼부(210)에의 저장동작과 관련하여, 버퍼 관리부(220)는 독출된 페이지 데이터를 버퍼부(210)의 범용영역(310)에 저장한다. 만일 범용영역(310)에 독출된 페이지의 페이지 데이터를 저장할 공간이 없으면, 버퍼 관리부(220)는 범용영역(310)으로부터 기존에 저장된 페이지 데이터를 제거하여 확보한 빈 공간에 해당 페이지 데이터를 저장한다. 기존에 저장된 페 이지 데이터 중에서 범용영역(310)으로부터 제거될 페이지를 선택하는 동작은 FIFO(First-In, First-Out), LRU(Least Recently Used), LFU(Least Freuently Used) 및 MFU(Most Recently Used) 등의 기존의 버퍼 관리 알고리즘에 의해 수행된다.In relation to a storage operation of the data read from the flash memory in the buffer unit 210, the buffer manager 220 stores the read page data in the general-purpose area 310 of the buffer unit 210. If there is no space to store the page data of the page read in the general area 310, the buffer manager 220 stores the page data in the empty space obtained by removing the previously stored page data from the general area 310. . The operation of selecting a page to be removed from the general area 310 among the previously stored page data may include first-in, first-out (FIFO), least recently used (LRU), least frequently used (LFU), and most recently MFU (MFU). It is performed by an existing buffer management algorithm such as Used).

또한 버퍼 관리부(220)는 버퍼부(210)의 전용영역(320)에 저장되어 있는 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 저장영역에 기록대상 데이터를 기록한다. 기록대상 데이터는 관리대상 데이터의 슬롯에 저장된 데이터와 같은 파일을 구성하는 데이터이거나, 새로운 파일을 구성하는 데이터이다. 버퍼 관리부(220)는 기록대상 데이터로 구성되는 파일이 저장된 플래시 메모리의 페이지로부터 독출한 페이지 데이터의 빈 슬롯에 해당하는 저장영역에 기록대상 데이터를 기록한다. 이러한 페이지 데이터는 범용영역(310)에 저장된 페이지 데이터이거나 전용영역(320)에 저장된 관리대상 데이터이다. 이때 플래시 메모리의 저장률을 보다 높이기 위해 버퍼 관리부(220)는 기록대상 데이터를 전용영역(320)에만 저장하는 것이 바람직하다.In addition, the buffer manager 220 records the recording target data in a storage area corresponding to an empty slot of a page composed of the management target data stored in the dedicated area 320 of the buffer 210. The recording target data is data constituting a file such as data stored in a slot of management target data or data constituting a new file. The buffer manager 220 records the recording target data in a storage area corresponding to an empty slot of the page data read from the page of the flash memory in which the file composed of the recording target data is stored. The page data is page data stored in the general area 310 or management target data stored in the dedicated area 320. In this case, in order to further increase the storage rate of the flash memory, the buffer manager 220 may store the data to be recorded only in the dedicated area 320.

또한 버퍼 관리부(220)는 관리 대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제거용 기준개수 이하이면 전용영역으로부터 관리대상 데이터를 제거한다. 제거용 기준개수는 플래시 메모리의 사용 용도에 따라 설정된다. 플래시 메모리의 성능을 중요시하는 경우에는 제거용 기준개수가 높게 설정되고, 저장률을 중요시하는 경우에는 제거용 기준개수가 낮게 설정된다. 일예로, 제거용 기준개수가 0으로 설정되는 경우에, 버퍼 관리부(220)는 관리대상 데이터에 해당하는 페이지의 빈 슬롯 이 모두 소거되었을 때 관리대상 데이터를 버퍼부(210)로부터 제거한다.In addition, the buffer manager 220 removes the management target data from the dedicated area when the number of empty slots of the page configured as the management target data is equal to or smaller than the reference number for removal. The reference number for removal is set according to the intended use of the flash memory. When the performance of the flash memory is important, the removal reference number is set high, and when the storage rate is important, the removal reference number is set low. For example, when the reference number for removal is set to 0, the buffer management unit 220 removes the management target data from the buffer unit 210 when all empty slots of the page corresponding to the management target data are erased.

관리대상 데이터 선정부(230)는 메모리 구동부(240)가 검색한 페이지의 페이지 데이터 중에서 관리대상 데이터를 선택한다. 이때, 관리대상 데이터 선정부(230)는 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 선정용 기준개수 이상인 데이터를 관리대상 데이터로 선택한다. 관리대상 데이터 선택 기준인 선정용 기준개수는 플래시 메모리의 저장률을 고려하여 설정된다. 선정용 기준개수를 높게 설정하면 선택될 관리대상 데이터가 존재하지 않는 상황이 발생될 수 있으며, 선정용 기준개수를 낮게 설정하면 저장률이 크게 향상되지 않을 수 있다. 선택된 관리대상 데이터는 전용영역(320)에 저장된다. 관리대상 데이터를 전용영역(320)에 저장하는 동작은 관리대상 데이터 선정부(230)가 직접 수행할 수 있으며, 이와 달리 버퍼 관리부(220)에 의해 수행될 수도 있다.The management target data selector 230 selects management target data from the page data of the page searched by the memory driver 240. At this time, the management target data selector 230 selects data whose page count is equal to or larger than the reference number of the selected data among the page unit data read from the flash memory as the management target data. The reference number for selection, which is a management target data selection criterion, is set in consideration of the storage rate of the flash memory. If the standard number for selection is set high, a situation may occur in which the data to be selected does not exist. If the standard number for selection is set low, the storage rate may not be greatly improved. The selected management target data is stored in the dedicated area 320. The operation of storing the management target data in the dedicated area 320 may be directly performed by the management target data selector 230, or alternatively, may be performed by the buffer manager 220.

한편, 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 이동용 기준개수 이상인 데이터를 관리대상 데이터로 선정하여 전용영역(320)으로 옮긴다. 이때 기록대상 데이터와 동일한 파일을 구성하는 페이지 데이터 중에서 선택하면 파일을 구성하는 페이지 데이터의 수를 줄일 수 있고, 쓰기 연산 대상 페이지 데이터 중에서 선택하면 데이터 기록효율을 높일 수 있다. 이와 같은 버퍼부(210)내에서의 데이터 이동시 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 데이터 중에서 빈 슬롯의 개수가 가장 많은 페이지 데이터를 관리대상 데이터로 선정하여 전용영역(320)으로 옮기는 것이 바람직하다. 한편, 버퍼 관리부(220)가 범용영역(310)으로부터 관리대상 데이 터를 제거하여 전용영역(320)에 빈 공간이 발생하면, 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 데이터에서 새로운 관리대상 데이터를 선정한다.On the other hand, the management target data selector 230 selects data whose number of empty slots is greater than or equal to the moving reference number from among page data stored in the general area 310 as management target data and moves the data to the dedicated area 320. At this time, if the page data constituting the same file as the recording target data is selected, the number of page data constituting the file can be reduced, and if the selection among the page data for write operations is selected, the data recording efficiency can be increased. When the data moves in the buffer unit 210, the management target data selecting unit 230 selects the page data having the largest number of empty slots among the page data stored in the general-purpose area 310 as the management target data. To 320). On the other hand, if the buffer management unit 220 removes the management target data from the general-purpose area 310 and an empty space occurs in the dedicated area 320, the management target data selection unit 230 stores the page stored in the general-purpose area 310. Select new target data from the data.

또한 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 데이터 중에서 전용영역(320)으로 옮겨질 페이지 데이터를 선정할 수 없는 경우에, 플래시 메모리로부터 할당받은 페이지의 데이터를 전용영역(320)에 저장될 관리대상 데이터로 선정한다. 관리대상 데이터의 선정기준인 이동용 기준개수 범용영역(310)에 저장된 페이지 데이터에 대한 삭제와 기록이 발생되는 횟수에 따라 설정되는 것이 바람직하며, 필요시 이동용 기준개수는 선정용 기준개수와 동일하게 설정될 수 있다.In addition, the management target data selector 230 selects the page data allocated from the flash memory when the page data to be transferred to the dedicated area 320 is not selected from the page data stored in the general area 310. It is selected as the management target data to be stored in 320). It is preferable that the reference number for the management target data is set according to the number of times of deletion and recording of the page data stored in the general reference area 310 for movement, and if necessary, the reference number for movement is set equal to the reference number for selection. Can be.

상술한 바와 같이 동작하는 관리대상 데이터 선정부(230)는 버퍼부(210)의 범용영역(310)에 저장된 페이지 데이터의 빈 슬롯 개수를 매번 연산해야 하는 문제가 있다. 이 경우, 페이지 데이터의 빈 슬롯 개수를 사전에 파악하여 관리하면, 연산 실행 시간을 줄일 수 있게 된다. 이를 위해 관리대상 데이터 선정부(230)는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터 중에서 빈 슬롯의 개수가 관리용 기준개수 이상인 데이터를 조사한다. 관리용 기준개수는 플래시 메모리의 저장률을 고려하여 설정된다. 관리용 기준개수를 높게 설정하면 선택될 데이터가 존재하지 않는 상황이 발생될 수 있으며, 관리용 기준개수를 낮게 설정하면 많은 데이터가 선택되어 관리가 어려워진다는 문제가 있다.The management target data selector 230 operating as described above has a problem in that the number of empty slots of the page data stored in the general area 310 of the buffer 210 must be calculated every time. In this case, it is possible to reduce the operation execution time by identifying and managing the number of empty slots of page data in advance. To this end, the management target data selector 230 examines data in which the number of empty slots is greater than or equal to the management reference number among data composed of page units read from the flash memory. The reference number for management is set in consideration of the storage rate of the flash memory. If the reference number for management is set high, a situation may occur in which data to be selected does not exist. If the reference number for management is set low, many data are selected and management becomes difficult.

페이지 데이터에 대한 조사결과를 기초로, 관리대상 데이터 선정부(230)는 빈 슬롯의 개수가 관리용 기준개수 이상인 데이터를 가리키는 주소 정보의 리스트인 임계값 리스트를 생성한다. 표 1에는 임계값 리스트의 예가 기재되어 있다.Based on the survey result of the page data, the management target data selector 230 generates a threshold list that is a list of address information indicating data whose number of empty slots is equal to or greater than the management reference number. Table 1 shows an example of a threshold list.

인덱스index 주소address 빈 슬롯 개수Empty slots 1One 0707 2020 22 0808 1717 33 0202 1515 44 0A0A 1313 55 0101 1010

표 1에서 주소 필드의 값은 16진수로 표시된 범용영역(310)에 저장된 페이지 데이터의 물리적 위치를 나타낸다.In Table 1, the value of the address field indicates the physical location of page data stored in the general area 310 in hexadecimal.

이와 같이 임계값 리스트를 생성하여 관리하는 경우에 관리대상 데이터 선정부(230)는 임계값 리스트의 첫 번째 위치(인덱스 1번)에 있는 페이지 데이터를 관리대상 데이터로 선택한다. 이때 빈 슬롯 개수가 가장 많은 페이지 데이터가 관리대상 데이터로 선택되도록 임계값 리스트가 페이지 데이터의 빈 슬롯 개수를 기준으로 정렬되는 것이 바람직하다.When the threshold list is generated and managed as described above, the management target data selector 230 selects page data at the first position (index 1) of the threshold list as the management target data. In this case, it is preferable that the threshold list is arranged based on the number of empty slots of the page data so that the page data having the largest number of empty slots is selected as the management target data.

관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 단위의 데이터의 변경시 또는 범용영역(310)으로부터 페이지 단위로 이루어진 데이터의 제거시 임계값 리스트를 갱신한다. 범용영역(310)에 저장된 페이지 데이터가 기존의 버퍼 관리기법에 의해 변경되면 변경된 상황을 임계값 리스트에 반영할 필요가 있다. 이러한 변경 사항을 임계값 리스트에 반영하기 위해 관리대상 데이터 선정부(230)는 임계값 리스트를 갱신한다. 또한, 관리대상 데이터 선정부(230)는 임계값 리스트가 갱신되면 역시 빈 슬롯의 개수를 기준으로 임계값 리스트를 정렬하는 것이 바람직하다.The management target data selector 230 updates the threshold list when changing the page unit data stored in the general area 310 or when removing the data in the page unit from the general area 310. If the page data stored in the general-purpose area 310 is changed by the existing buffer management technique, it is necessary to reflect the changed situation in the threshold list. In order to reflect these changes in the threshold list, the management target data selector 230 updates the threshold list. In addition, when the threshold list is updated, the management target data selector 230 may also sort the threshold list based on the number of empty slots.

메모리 구동부(240)는 플래시 메모리에 접근하여 데이터를 독출하거나 데이터를 기록한다. 메모리 구동부(240)는 플래시 메모리에 대한 읽기 명령, 쓰기 명령 및 삭제 명령 실행시 플래시 메모리에 접근하여 명령이 수행될 대상 페이지를 검색한다. 일예로, 삭제명령의 수행시 메모리 구동부(240)는 플래시 메모리로부터 삭제 대상 데이터가 속한 파일이 기록된 슬롯 페이지를 검색한다. 이때 검색된 페이지는 작업이 수행될 파일을 구성하는 페이지이다.The memory driver 240 accesses the flash memory to read data or write data. When the read command, the write command, and the delete command for the flash memory are executed, the memory driver 240 searches the target page on which the command is to be executed by accessing the flash memory. For example, when the delete command is executed, the memory driver 240 searches the flash page for the slot page in which the file to which the data to be deleted belongs is recorded. At this time, the retrieved page is a page that constitutes a file to be executed.

또한 메모리 구동부(240)는 버퍼부(210)로부터 제거된 페이지 데이터 또는 관리대상 데이터를 플래시 메모리에 저장한다. 즉, 메모리 구동부(240)는 제거된 페이지 데이터 또는 관리대상 데이터를 각각의 데이터가 독출된 플래시 메모리의 페이지에 저장한다. 만약 각각의 데이터가 독출된 플래시 메모리의 페이지에 저장할 수 없는 상황이 발생하면, 메모리 구동부(240)는 플래시 메모리로부터 새로운 페이지를 할당하여 할당된 새로운 페이지에 제거된 페이지 데이터 또는 관리대상 데이터를 저장한다.In addition, the memory driver 240 stores page data or management target data removed from the buffer unit 210 in the flash memory. That is, the memory driver 240 stores the removed page data or management target data in the page of the flash memory in which each data is read. If a situation in which each data cannot be stored in a page of the read flash memory occurs, the memory driver 240 allocates a new page from the flash memory and stores the removed page data or management target data in the allocated new page. .

도 4는 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.4 is a flowchart illustrating a preferred embodiment of a buffer management method interoperating with a flash memory according to the present invention.

도 4를 참조하면, 메모리 구동부(240)는 플래시 메모리로부터 작업 대상 페이지를 독출한다(S400). 관리대상 데이터 선정부(230)는 독출된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 선정용 기준개수(예를 들면, 5개) 이상인 데이터를 관리대상 데이터로 선정하여 버퍼부(210)의 전용영역(320)에 저장한다(S410). 버퍼 관리부(220)는 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 저장영역에 플래시 메모리에 기록될 기록대상 데이터를 기록한다(S420). 다음으로 버퍼 관리부(220)는 관리대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제거용 기준개수 이하가 되면, 전용영역(320)으로부터 관리대상 데이터를 제거한다(S430). 이때 플래시 메모리의 효율적인 이용과 수명연장을 위해 데이터 제거용 기준개수는 0으로 설정되는 것이 바람직하다. 이와 같이 버퍼부(210)의 전용영역(320)으로부터 데이터가 제거되면, 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 이동용 기준개수(예를 들면, 5개) 이상인 데이터를 관리대상 데이터로 선정하여 전용영역(320)으로 옮긴다(S440). 메모리 구동부(230)는 전용영역(320)으로부터 제거된 관리대상 데이터를 플래시 메모리에 저장한다(S450).Referring to FIG. 4, the memory driver 240 reads a work target page from the flash memory (S400). The management target data selector 230 selects data whose number of empty slots is greater than or equal to a reference number (for example, five) from among the read page unit data as management target data and selects the dedicated area of the buffer unit 210. In operation S410, it is stored in 320. The buffer manager 220 records the recording target data to be recorded in the flash memory in a storage area corresponding to an empty slot of the page including the management target data (S420). Next, when the number of empty slots of the page configured as the management target data becomes less than or equal to the reference number for removal, the buffer manager 220 removes the management target data from the dedicated area 320 (S430). At this time, it is preferable that the reference number for data removal is set to zero for efficient use and extended life of the flash memory. When the data is removed from the dedicated area 320 of the buffer unit 210 as described above, the management target data selecting unit 230 determines that the number of empty slots in the page unit data stored in the general area 310 is the reference number for moving (eg, For example, five or more pieces of data are selected as the management target data and moved to the dedicated area 320 (S440). The memory driver 230 stores the management target data removed from the dedicated area 320 in the flash memory (S450).

도 5는 본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리방법에 대한 바람직한 다른 실시예의 수행과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of performing another preferred embodiment of a buffer management method interoperating with a flash memory according to the present invention.

도 5를 참조하면, 메모리 구동부(240)는 플래시 메모리로부터 작업 명령 대상 페이지를 독출한다(S500). 관리대상 데이터 선정부(230)는 독출된 페이지 단위로 이루어진 데이터 중에서 빈 슬롯의 개수가 관리용 기준개수(예를 들면, 5개) 이상인 데이터를 가리키는 주소 정보의 리스트인 임계값 리스트를 생성한다(S510). 생성된 임계값 리스트는 버퍼부(210)의 범용영역(310)에 저장되어 있는 페이지 데이터에 대한 변경시에 갱신된다. 관리대상 데이터 선정부(230)는 임계값 리스트로부터 관리대상 데이터를 선택하여 버퍼부(210)의 전용영역(320)에 저장한다(S520). 이때 빈 슬롯의 개수가 가장 많은 데이터를 관리대상 데이터로 선택하는 것이 바람직하다. 버퍼 관리부(220)는 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 저장영역에 플래시 메모리에 기록될 기록대상 데이터를 기록한다(S530). 다음으로 버퍼 관리부(220)는 관리대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제거용 기준개수 이하가 되면, 버퍼부(210)의 전용영역(320)으로부터 관리대상 데이터를 제거한다(S540). 이와 같이 버퍼부(210)의 전용영역(320)으로부터 데이터가 제거되면, 관리대상 데이터 선정부(230)은 임계값 리스트 중에서 이동용 기준개수 이상인 페이지 데이터를 관리대상 데이터로 선택하여 버퍼부(210)의 전용영역(320)에 저장한다(S550). 메모리 구동부(240)는 버퍼부(210)의 전용영역(320)으로부터 제거된 관리대상 데이터를 플래시 메모리에 저장한다(S560).Referring to FIG. 5, the memory driver 240 reads a work command target page from the flash memory (S500). The management target data selector 230 generates a threshold list that is a list of address information indicating data whose number of empty slots is greater than or equal to the management reference number (for example, five) among the data configured in the unit of read pages ( S510). The generated threshold list is updated when the page data stored in the general area 310 of the buffer unit 210 is changed. The management target data selector 230 selects the management target data from the threshold list and stores the management target data in the dedicated area 320 of the buffer unit 210 (S520). In this case, it is preferable to select data having the largest number of empty slots as management target data. The buffer manager 220 records the recording target data to be recorded in the flash memory in a storage area corresponding to an empty slot of a page including the management target data (S530). Next, when the number of empty slots of the page configured as the management target data is less than or equal to the reference number for removal, the buffer manager 220 removes the management target data from the dedicated area 320 of the buffer unit 210 (S540). When data is removed from the dedicated area 320 of the buffer unit 210 as described above, the management target data selector 230 selects page data having a moving reference number or more from the threshold list as the management target data and stores the buffer 210. It is stored in the dedicated area 320 (S550). The memory driver 240 stores the management target data removed from the dedicated area 320 of the buffer 210 in the flash memory (S560).

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

이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific preferred embodiments described above, and the present invention belongs to the present invention without departing from the gist of the present invention as claimed in the claims. Various modifications can be made by those skilled in the art, and such changes are within the scope of the claims.

본 발명에 따른 플래시 메모리와 연동되는 버퍼 관리장치 및 방법에 의하면, 플래시 메모리의 페이지에 빈 슬롯이 존재하지 않도록 데이터를 저장함으로써, 플래시 메모리의 저장률이 높아지고 쓰기 연산의 실행되는 횟수가 감소한다. 또한 저장률이 향상과 쓰기 연산의 감소는 플래시 메모리의 성능을 향상시키고 플래시 메모리의 소거 연산의 실행되는 횟수를 감소시킨다. 이와 같은 소거 연산의 실행 횟수의 감소에 따라 소거 연산의 횟수가 제한되어 있는 플래시 메모리의 수명 연장이 가능하다.According to a buffer management apparatus and method interoperating with a flash memory according to the present invention, by storing data such that an empty slot does not exist in a page of the flash memory, the storage rate of the flash memory is increased and the number of times of write operations are performed is reduced. In addition, higher storage rates and fewer write operations improve flash memory performance and reduce the number of times of erase operations in the flash memory. As the number of times of erase operations is reduced, the life of the flash memory can be extended.

Claims (13)

플래시 메모리에 기록될 기록대상 데이터 및 상기 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 범용영역과 상기 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 선택된 관리대상 데이터가 저장되는 전용영역으로 이루어진 버퍼부;A buffer unit including a general area for storing recording target data to be written to a flash memory and data in units of pages read from the flash memory, and a dedicated area for storing selected management target data among page units of data read from the flash memory. ; 상기 버퍼부의 전용영역에 저장되어 있는 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 저장영역에 상기 기록대상 데이터를 기록하고, 상기 관리대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제1기준개수 이하이면 상기 전용영역으로부터 상기 관리대상 데이터를 제거하는 버퍼 관리부; 및The recording target data is recorded in a storage area corresponding to an empty slot of a page composed of management target data stored in a dedicated area of the buffer unit, and the number of empty slots of the page composed of the management target data is the first reference number. A buffer manager which removes the management target data from the dedicated area if less; And 상기 전용영역으로부터 제거된 관리대상 데이터를 상기 플래시 메모리에 저장하는 메모리 구동부;를 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리장치.And a memory driver for storing management target data removed from the dedicated area in the flash memory. 제 1항에 있어서,The method of claim 1, 상기 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 제2기준개수 이상인 데이터를 상기 관리대상 데이터로 선택하는 관리대상 데이터 선정부를 더 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리장치.And a management target data selector configured to select, as the management target data, data whose number of empty slots is equal to or greater than a second reference number from among the data in the page unit read out from the flash memory. . 제 2항에 있어서,The method of claim 2, 상기 관리대상 데이터 선정부는 상기 전용영역으로부터 상기 관리대상 데이터가 제거된 경우에 상기 범용영역에 저장된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 제3기준개수 이상인 데이터를 관리대상 데이터로 선정하여 상기 전용영역으로 옮기는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리장치.The management target data selecting unit selects data whose number of empty slots is greater than or equal to a third reference number from among page data stored in the general-purpose area when the management target data is removed from the dedicated area as the management target data. A buffer management device interlocked with the flash memory, characterized in that moved to. 제 1항에 있어서,The method of claim 1, 상기 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터 중에서 빈 슬롯의 개수가 제4기준개수 이상인 데이터를 조사하여 상기 데이터를 가리키는 주소 정보의 리스트인 임계값 리스트를 생성하고, 상기 임계값 리스트로부터 상기 관리대상 데이터를 선택하는 관리대상 데이터 선정부를 더 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리장치.Investigate data having the number of empty slots equal to or greater than a fourth reference number among data read in the page unit, and generate a threshold list that is a list of address information indicating the data, and from the threshold list, the management target. And a management object data selection unit for selecting data. 제 4항에 있어서,The method of claim 4, wherein 상기 관리대상 데이터 선정부는 상기 범용영역에 저장된 페이지 단위의 데이터의 변경시 또는 상기 범용영역으로부터 상기 페이지 단위로 이루어진 데이터의 제거시 상기 임계값 리스트를 갱신하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리장치.The management target data selection unit updates the threshold list when the data in the page unit stored in the universal area is changed or when the data in the page unit is removed from the general area. Device. 제 4항에 있어서,The method of claim 4, wherein 상기 관리대상 데이터 선정부는 상기 임계값 리스트로부터 빈 슬롯의 개수가 가장 많은 데이터를 상기 관리대상 데이터로 선택하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리장치.And the management target data selecting unit selects data having the largest number of empty slots as the management target data from the threshold list. 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터 중에서 선택된 관리대상 데이터를 범용영역과 전용영역으로 이루어진 버퍼메모리의 전용영역에 저장하는 데이터 저장단계;A data storage step of storing the management target data selected from the data in page units read from the flash memory in a dedicated area of a buffer memory including a general area and a dedicated area; 상기 플래시 메모리에 기록될 기록대상 데이터를 상기 버퍼메모리의 전용영역 중에서 상기 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 영역에 기록하는 데이터 기록단계;A data recording step of recording the recording target data to be recorded in the flash memory into an area corresponding to an empty slot of a page composed of the management target data in a dedicated region of the buffer memory; 상기 관리대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제1기준개수 이하이면 상기 버퍼메모리의 전용영역으로부터 제거하는 데이터 제거단계; 및A data removing step of removing from the dedicated area of the buffer memory if the number of empty slots of the page comprising the management target data is equal to or less than a first reference number; And 상기 버퍼메모리의 전용영역으로부터 제거된 관리대상 데이터를 상기 플래시 메모리에 저장하는 플래시 메모리 접속단계;를 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리방법.And a flash memory accessing step of storing management target data removed from the dedicated area of the buffer memory in the flash memory. 제 7항에 있어서,The method of claim 7, wherein 상기 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 제2기준개수 이상인 데이터를 상기 관리대상 데이터로 선택하는 관리대상 데이터 선정단계를 더 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버 퍼 관리방법.And a management target data selection step of selecting data having the number of empty slots equal to or greater than a second reference number from among the page unit data read from the flash memory as the management target data. How to manage. 제 7항 또는 제 8항에 있어서,The method according to claim 7 or 8, 상기 관리대상 데이터가 제거되면 상기 범용영역에 저장된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 제3기준개수 이상인 데이터를 상기 관리대상 데이터로 선정하여 상기 전용영역으로 옮기는 관리대상 데이터 교체 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리방법.When the management target data is removed, the management target data replacement step of selecting data for which the number of empty slots is greater than or equal to a third reference number from among the page unit data stored in the general-purpose area as the management target data and moving it to the dedicated area. And a buffer management method interoperating with the flash memory. 제 7항에 있어서,The method of claim 7, wherein 상기 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터 중에서 빈 슬롯의 개수가 제4기준개수 이상인 데이터를 검색하고, 상기 검색된 데이터를 가리키는 주소 정보의 리스트인 임계값 리스트를 생성하는 임계값 리스트 생성 단계; 및A threshold list generation step of searching for data having a number of empty slots equal to or greater than a fourth reference number among data in page units read from the flash memory, and generating a threshold list that is a list of address information indicating the retrieved data; And 상기 임계값 리스트로부터 상기 관리대상 데이터를 선택하는 관리대상 데이터를 선정하는 선정단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리방법.And a selection step of selecting management target data for selecting the management target data from the threshold list. 제 10항에 있어서,The method of claim 10, 상기 범용영역에 저장된 페이지 단위로 이루어진 데이터가 변경되거나 상기 범용영역으로부터 상기 페이지 단위로 이루어진 데이터가 제거되면 상기 임계값 리 스트를 갱신하는 임계값 리스트 갱신단계를 더 포함하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리방법.And a threshold list updating step of updating the threshold list when data in units of pages stored in the general-purpose area is changed or data in units of pages is removed from the general-purpose area. Buffer management method 제 10항에 있어서,The method of claim 10, 상기 관리대상 데이터 선정단계는 상기 임계값 리스트로부터 빈 슬롯의 개수가 가장 많은 데이터를 상기 관리대상 데이터로 선택하는 것을 특징으로 하는 플래시 메모리와 연동되는 버퍼 관리방법.The managing data selection step is a buffer management method that is linked to the flash memory, characterized in that for selecting the data that the largest number of empty slots from the threshold list as the management target data. 제 7항, 제 8항, 제 10항, 제 11항 또는 제 12항 중 어느 한 항에 기재된 플래시 메모리와 연동되는 버퍼 관리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for causing a computer to execute a buffer management method as recited in any one of claims 7, 8, 10, 11 or 12.
KR1020060128006A 2006-12-14 2006-12-14 Apparatus and method for managing buffer linked with flash memory KR100816820B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060128006A KR100816820B1 (en) 2006-12-14 2006-12-14 Apparatus and method for managing buffer linked with flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060128006A KR100816820B1 (en) 2006-12-14 2006-12-14 Apparatus and method for managing buffer linked with flash memory

Publications (1)

Publication Number Publication Date
KR100816820B1 true KR100816820B1 (en) 2008-03-27

Family

ID=39411695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060128006A KR100816820B1 (en) 2006-12-14 2006-12-14 Apparatus and method for managing buffer linked with flash memory

Country Status (1)

Country Link
KR (1) KR100816820B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030009250A (en) * 2002-12-06 2003-01-29 김희성 Control method and apparatus for operations of flash memory system
KR20040009926A (en) * 2002-07-26 2004-01-31 지인정보기술 주식회사 Flash memory management method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040009926A (en) * 2002-07-26 2004-01-31 지인정보기술 주식회사 Flash memory management method
KR20030009250A (en) * 2002-12-06 2003-01-29 김희성 Control method and apparatus for operations of flash memory system

Similar Documents

Publication Publication Date Title
US6567307B1 (en) Block management for mass storage
US7734862B2 (en) Block management for mass storage
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US6327644B1 (en) Method and system for managing data in cache
US20100146213A1 (en) Data Cache Processing Method, System And Data Cache Apparatus
US20070294490A1 (en) System and Method of Updating a Memory to Maintain Even Wear
KR20120090965A (en) Apparatus, system, and method for caching data on a solid-state strorage device
KR20100021868A (en) Buffer cache management method for flash memory device
JP2007200333A (en) Object-based data storage device
US6842824B2 (en) Cache control program and computer for performing cache processes utilizing cache blocks ranked according to their order of reuse
KR101481633B1 (en) Buffer Management Apparatus And Method having three states based on Flash Memory
US8719235B2 (en) Controlling tape layout for de-duplication
KR100941382B1 (en) Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory
KR100907477B1 (en) Apparatus and method for managing index of data stored in flash memory
US6757804B2 (en) Method and system for reducing fragmentation
US7080206B2 (en) System and method for adaptively loading input data into a multi-dimensional clustering table
JP4792335B2 (en) RAID device, RAID control program, and cache management method
EP2381354A2 (en) Data recording device
KR100816820B1 (en) Apparatus and method for managing buffer linked with flash memory
KR100859989B1 (en) Apparatus for managing space information of flash memory and method of the same
KR101020781B1 (en) A method for log management in flash memory-based database systems
JP2011022963A (en) Information processing apparatus and information processing method
JP3751814B2 (en) Cache memory control method
KR100876148B1 (en) Flash memory management device and method
KR100982591B1 (en) File system, main storage and flash storage for progressive indexing and data management method using the progressive indexing

Legal Events

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

Payment date: 20130111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140207

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee