KR100816820B1 - Apparatus and method for managing buffer linked with flash memory - Google Patents
Apparatus and method for managing buffer linked with flash memory Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
Abstract
Description
도 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
플래시 메모리의 읽기 및 쓰기 연산은 버퍼를 통해 수행된다. 버퍼는 속도가 매우 빠른 중앙처리장치와 이에 비해 매우 느린 보조기억장치 간의 속도를 보완해주는 역할을 하는 메모리이다. 컴퓨터 메인 메모리의 일부 영역이 버퍼로 사용되거나 플래시 메모리 저장장치에 별도 추가된 메모리가 버퍼로서 사용된다. 쓰기 연산이 수행될 플래시 메모리의 페이지가 버퍼에 올려진 후, 플래시 메모리에 기록될 레코드가 버퍼에 저장된다. 추후에 버퍼가 가득 차게 되면 특정 페이지가 여유 공간 확보를 위해 교체된다. 교체된 페이지에 내용의 변경이 있으면, 변경된 내용은 쓰기 연산을 통해 플래시 메모리의 새로운 페이지에 저장된다.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
버퍼부(210)는 플래시 메모리에 기록될 기록대상 데이터 및 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 범용영역과 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 선택된 관리대상 데이터가 저장되는 전용영역으로 이루어진다. 또한 버퍼부(210)에는 플래시 메모리에 쓰기 연산과 삭제 연산을 수행하기 위해 임시로 기록대상 데이터 및 기록대상 페이지로부터 독출된 페이지 단위로 이루어진 페이지 데이터가 저장된다. 쓰기 연산과 삭제 연산이 플래시 메모리의 페이지에 대해 수행되기 전에 버퍼부(210)에 저장된 페이지 데이터에 대한 기록과 삭제가 먼저 수행된다.The
도 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
전용영역(320)에는 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 선택된 관리대상 데이터가 저장된다. 여기서, 관리대상 데이터는 페이지 데이터와 동일한 내용의 데이터이다. 전용영역(320)에 저장되는 관리대상 데이터의 수는 전용영역을 크기에 따라 다르다. 기본적으로 전용영역(320)의 크기는 한 개의 관리대상 데이터의 크기로 설정되며, 필요시에 복수개의 관리대상 데이터가 저장될 수 있는 크기로 설정될 수 있다.The
버퍼 관리부(220)는 플래시 메모리로부터 독출된 페이지 데이터를 버퍼부(210)에 저장하고, 버퍼부(210)에 저장된 페이지 데이터에 대해 쓰기와 삭제를 수행하며, 버퍼부(210)로부터 페이지 데이터를 제거한다.The
플래시 메모리로부터 독출된 데이터의 버퍼부(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
또한 버퍼 관리부(220)는 버퍼부(210)의 전용영역(320)에 저장되어 있는 관리대상 데이터로 구성되는 페이지의 빈 슬롯에 해당하는 저장영역에 기록대상 데이터를 기록한다. 기록대상 데이터는 관리대상 데이터의 슬롯에 저장된 데이터와 같은 파일을 구성하는 데이터이거나, 새로운 파일을 구성하는 데이터이다. 버퍼 관리부(220)는 기록대상 데이터로 구성되는 파일이 저장된 플래시 메모리의 페이지로부터 독출한 페이지 데이터의 빈 슬롯에 해당하는 저장영역에 기록대상 데이터를 기록한다. 이러한 페이지 데이터는 범용영역(310)에 저장된 페이지 데이터이거나 전용영역(320)에 저장된 관리대상 데이터이다. 이때 플래시 메모리의 저장률을 보다 높이기 위해 버퍼 관리부(220)는 기록대상 데이터를 전용영역(320)에만 저장하는 것이 바람직하다.In addition, the
또한 버퍼 관리부(220)는 관리 대상 데이터로 구성되는 페이지의 빈 슬롯 개수가 제거용 기준개수 이하이면 전용영역으로부터 관리대상 데이터를 제거한다. 제거용 기준개수는 플래시 메모리의 사용 용도에 따라 설정된다. 플래시 메모리의 성능을 중요시하는 경우에는 제거용 기준개수가 높게 설정되고, 저장률을 중요시하는 경우에는 제거용 기준개수가 낮게 설정된다. 일예로, 제거용 기준개수가 0으로 설정되는 경우에, 버퍼 관리부(220)는 관리대상 데이터에 해당하는 페이지의 빈 슬롯 이 모두 소거되었을 때 관리대상 데이터를 버퍼부(210)로부터 제거한다.In addition, the
관리대상 데이터 선정부(230)는 메모리 구동부(240)가 검색한 페이지의 페이지 데이터 중에서 관리대상 데이터를 선택한다. 이때, 관리대상 데이터 선정부(230)는 플래시 메모리로부터 독출된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 선정용 기준개수 이상인 데이터를 관리대상 데이터로 선택한다. 관리대상 데이터 선택 기준인 선정용 기준개수는 플래시 메모리의 저장률을 고려하여 설정된다. 선정용 기준개수를 높게 설정하면 선택될 관리대상 데이터가 존재하지 않는 상황이 발생될 수 있으며, 선정용 기준개수를 낮게 설정하면 저장률이 크게 향상되지 않을 수 있다. 선택된 관리대상 데이터는 전용영역(320)에 저장된다. 관리대상 데이터를 전용영역(320)에 저장하는 동작은 관리대상 데이터 선정부(230)가 직접 수행할 수 있으며, 이와 달리 버퍼 관리부(220)에 의해 수행될 수도 있다.The management
한편, 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 단위의 데이터 중에서 빈 슬롯의 개수가 이동용 기준개수 이상인 데이터를 관리대상 데이터로 선정하여 전용영역(320)으로 옮긴다. 이때 기록대상 데이터와 동일한 파일을 구성하는 페이지 데이터 중에서 선택하면 파일을 구성하는 페이지 데이터의 수를 줄일 수 있고, 쓰기 연산 대상 페이지 데이터 중에서 선택하면 데이터 기록효율을 높일 수 있다. 이와 같은 버퍼부(210)내에서의 데이터 이동시 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 데이터 중에서 빈 슬롯의 개수가 가장 많은 페이지 데이터를 관리대상 데이터로 선정하여 전용영역(320)으로 옮기는 것이 바람직하다. 한편, 버퍼 관리부(220)가 범용영역(310)으로부터 관리대상 데이 터를 제거하여 전용영역(320)에 빈 공간이 발생하면, 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 데이터에서 새로운 관리대상 데이터를 선정한다.On the other hand, the management
또한 관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 데이터 중에서 전용영역(320)으로 옮겨질 페이지 데이터를 선정할 수 없는 경우에, 플래시 메모리로부터 할당받은 페이지의 데이터를 전용영역(320)에 저장될 관리대상 데이터로 선정한다. 관리대상 데이터의 선정기준인 이동용 기준개수 범용영역(310)에 저장된 페이지 데이터에 대한 삭제와 기록이 발생되는 횟수에 따라 설정되는 것이 바람직하며, 필요시 이동용 기준개수는 선정용 기준개수와 동일하게 설정될 수 있다.In addition, the management
상술한 바와 같이 동작하는 관리대상 데이터 선정부(230)는 버퍼부(210)의 범용영역(310)에 저장된 페이지 데이터의 빈 슬롯 개수를 매번 연산해야 하는 문제가 있다. 이 경우, 페이지 데이터의 빈 슬롯 개수를 사전에 파악하여 관리하면, 연산 실행 시간을 줄일 수 있게 된다. 이를 위해 관리대상 데이터 선정부(230)는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터 중에서 빈 슬롯의 개수가 관리용 기준개수 이상인 데이터를 조사한다. 관리용 기준개수는 플래시 메모리의 저장률을 고려하여 설정된다. 관리용 기준개수를 높게 설정하면 선택될 데이터가 존재하지 않는 상황이 발생될 수 있으며, 관리용 기준개수를 낮게 설정하면 많은 데이터가 선택되어 관리가 어려워진다는 문제가 있다.The management
페이지 데이터에 대한 조사결과를 기초로, 관리대상 데이터 선정부(230)는 빈 슬롯의 개수가 관리용 기준개수 이상인 데이터를 가리키는 주소 정보의 리스트인 임계값 리스트를 생성한다. 표 1에는 임계값 리스트의 예가 기재되어 있다.Based on the survey result of the page data, the management
표 1에서 주소 필드의 값은 16진수로 표시된 범용영역(310)에 저장된 페이지 데이터의 물리적 위치를 나타낸다.In Table 1, the value of the address field indicates the physical location of page data stored in the
이와 같이 임계값 리스트를 생성하여 관리하는 경우에 관리대상 데이터 선정부(230)는 임계값 리스트의 첫 번째 위치(인덱스 1번)에 있는 페이지 데이터를 관리대상 데이터로 선택한다. 이때 빈 슬롯 개수가 가장 많은 페이지 데이터가 관리대상 데이터로 선택되도록 임계값 리스트가 페이지 데이터의 빈 슬롯 개수를 기준으로 정렬되는 것이 바람직하다.When the threshold list is generated and managed as described above, the management
관리대상 데이터 선정부(230)는 범용영역(310)에 저장된 페이지 단위의 데이터의 변경시 또는 범용영역(310)으로부터 페이지 단위로 이루어진 데이터의 제거시 임계값 리스트를 갱신한다. 범용영역(310)에 저장된 페이지 데이터가 기존의 버퍼 관리기법에 의해 변경되면 변경된 상황을 임계값 리스트에 반영할 필요가 있다. 이러한 변경 사항을 임계값 리스트에 반영하기 위해 관리대상 데이터 선정부(230)는 임계값 리스트를 갱신한다. 또한, 관리대상 데이터 선정부(230)는 임계값 리스트가 갱신되면 역시 빈 슬롯의 개수를 기준으로 임계값 리스트를 정렬하는 것이 바람직하다.The management
메모리 구동부(240)는 플래시 메모리에 접근하여 데이터를 독출하거나 데이터를 기록한다. 메모리 구동부(240)는 플래시 메모리에 대한 읽기 명령, 쓰기 명령 및 삭제 명령 실행시 플래시 메모리에 접근하여 명령이 수행될 대상 페이지를 검색한다. 일예로, 삭제명령의 수행시 메모리 구동부(240)는 플래시 메모리로부터 삭제 대상 데이터가 속한 파일이 기록된 슬롯 페이지를 검색한다. 이때 검색된 페이지는 작업이 수행될 파일을 구성하는 페이지이다.The
또한 메모리 구동부(240)는 버퍼부(210)로부터 제거된 페이지 데이터 또는 관리대상 데이터를 플래시 메모리에 저장한다. 즉, 메모리 구동부(240)는 제거된 페이지 데이터 또는 관리대상 데이터를 각각의 데이터가 독출된 플래시 메모리의 페이지에 저장한다. 만약 각각의 데이터가 독출된 플래시 메모리의 페이지에 저장할 수 없는 상황이 발생하면, 메모리 구동부(240)는 플래시 메모리로부터 새로운 페이지를 할당하여 할당된 새로운 페이지에 제거된 페이지 데이터 또는 관리대상 데이터를 저장한다.In addition, the
도 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
도 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
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 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)
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)
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 |
-
2006
- 2006-12-14 KR KR1020060128006A patent/KR100816820B1/en not_active IP Right Cessation
Patent Citations (2)
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 |