KR20100006625A - Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory - Google Patents

Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory Download PDF

Info

Publication number
KR20100006625A
KR20100006625A KR1020080066826A KR20080066826A KR20100006625A KR 20100006625 A KR20100006625 A KR 20100006625A KR 1020080066826 A KR1020080066826 A KR 1020080066826A KR 20080066826 A KR20080066826 A KR 20080066826A KR 20100006625 A KR20100006625 A KR 20100006625A
Authority
KR
South Korea
Prior art keywords
page
data
buffer
replacement target
flash memory
Prior art date
Application number
KR1020080066826A
Other languages
Korean (ko)
Other versions
KR100941382B1 (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 KR1020080066826A priority Critical patent/KR100941382B1/en
Publication of KR20100006625A publication Critical patent/KR20100006625A/en
Application granted granted Critical
Publication of KR100941382B1 publication Critical patent/KR100941382B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • 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/064Management of blocks
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

PURPOSE: An apparatus and a method for managing a page buffer linked with a flash memory and an apparatus and a method for changing a page of a flash memory are provided to improve performance of the flash memory, increase a buffer hit rate and extend lifetime of the flash memory. CONSTITUTION: A buffer unit(210) stores data of a page unit read from a flash memory. If the amount of data saved in the buffer unit becomes a reference amount, a buffer managing unit(220) selects replaced data among the data saved in the buffer unit to remove it. A page list managing unit(230) generates a clean page list and a dirty page list and deletes a page index corresponding to target data to be replaced.

Description

플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법, 그리고 플래시 메모리의 페이지 교체 장치 및 방법{Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory}Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory}

본 발명은 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법, 그리고 플래시 메모리의 페이지 교체 장치 및 방법에 관한 것으로, 보다 상세하게는, 낸드 플래시 메모리로부터 독출하여 읽기 동작 및 쓰기 동작이 수행된 데이터가 저장되는 페이지 버퍼의 데이터를 교체하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing a page buffer interoperating with a flash memory, and an apparatus and method for replacing a page of a flash memory, and more particularly, to store data in which a read operation and a write operation are performed by reading from a NAND flash memory. The present invention relates to an apparatus and a method for replacing data in a page buffer.

비휘발성 메모리의 한 종류인 플래시 메모리는 코드의 저장용으로 사용되는 NOR 타입과 데이터 저장장치로 사용되는 NAND 타입으로 나뉜다. NAND 플래시 메모리는 동일한 크기의 연속적인 블록으로 구성되며, 하나의 블록은 일반적으로 512 바이트의 크기를 가지는 연속적인 페이지로 구성된다. 플래시 메모리에서 수행 가능한 연산은 읽기, 쓰기 및 소거의 세 가지이다. 읽기 및 쓰기 연산은 페이지 단위로 수행되며, 소거 연산은 블록 단위로 수행된다. 이때, 쓰기 연산은 읽기 연산에 비해 많은 시간이 소요되며, 쓰기 연산에 비해 더 많은 수행시간이 소요되는 소거 연산을 유발시킨다. 따라서 쓰기 연산의 횟수를 줄일수록 플래시 메모리의 전반적인 성능이 향상된다.Flash memory, a type of nonvolatile memory, is divided into a NOR type used for storing code and a NAND type used as a data storage device. NAND flash memory consists of contiguous blocks of the same size, and one block consists of contiguous pages of size generally 512 bytes. 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 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.

플래시 메모리의 읽기 및 쓰기 연산은 버퍼를 통해 수행된다. 버퍼는 속도가 매우 빠른 중앙처리장치와 이에 비해 매우 느린 보조기억장치 간의 속도를 보완해 주는 역할을 하는 메모리이다. 컴퓨터 메인 메모리의 일부 영역이 버퍼로 사용되거나 플래시 메모리 저장장치에 별도로 추가된 메모리가 버퍼로서 사용된다. 쓰기 연산이 수행될 플래시 메모리의 페이지가 버퍼에 올려진 후, 플래시 메모리에 기록될 레코드가 버퍼에 저장된다. 추후에 버퍼가 가득 차게 되면 특정 페이지가 여유 공간 확보를 위해 교체된다. 이때 교체되는 페이지의 데이터가 변경되면, 변경된 내용은 쓰기 연산을 통해 플래시 메모리의 새로운 페이지에 기록된다.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. At this time, if the data of the replaced page is changed, the changed contents are written to a new page of the flash memory through a write operation.

교체될 페이지를 결정하는 기존의 버퍼 관리 기법들로는 FIFO(First-In, First-Out), LRU(Least Recently Used), LFU(Least Frequently 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 that the data is referenced after deciding to replace the data among the pages of the memory buffer. The FIFO technique first replaces the page loaded in the buffer first, and 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.

도 1은 기존의 버퍼 관리 기법들 중 LRU 방법을 사용하는 버퍼 관리 시스템의 구성을 도시한 도면이다.FIG. 1 is a diagram illustrating a configuration of a buffer management system using an LRU method among existing buffer management techniques.

도 1을 참조하면, LRU 방법을 사용하는 버퍼 관리 시스템은 페이지 단위로 이루어진 데이터가 저장되는 페이지 버퍼(110) 및 가장 최근에 쓰기 연산이 수행된 페이지부터 순차적으로 각각의 페이지에 대한 정보가 저장되는 페이지 리스트(120)로 구성된다. 페이지 리스트(120)에 저장되는 페이지에 대한 정보는 페이지 넘버 및 쓰기 연산이 수행되었는지 여부를 포함한다. 각 페이지 넘버에 해당하는 데이터에 쓰기 연산이 수행된 경우에는 더티(D)로 표시하며, 읽기 연산만이 수행된 경우에는 클린(C)으로 표시한다.Referring to FIG. 1, in a buffer management system using an LRU method, information about each page is sequentially stored from a page buffer 110 in which data in units of pages is stored and a page on which a write operation is most recently performed. It consists of a page list 120. Information about the page stored in the page list 120 includes a page number and whether a write operation has been performed. If a write operation is performed on data corresponding to each page number, it is indicated as dirty (D). If only a read operation is performed, it is indicated as clean (C).

LRU 방법을 사용하는 버퍼 관리 시스템을 사용하여 페이지 버퍼(110)에 저장된 페이지를 교체하는 경우에는 각각의 페이지가 더티인지 클린인지 여부에 관계없이 읽기 연산 또는 쓰기 연산이 수행된 후 가장 오래된 페이지를 교체 대상 데이터로 선택하여 제거한다. 이때 더티 페이지를 제거하는 경우에는 쓰기 연산에 의해 데이터가 플래시 메모리에 저장되는 과정이 필요하며, 이러한 과정이 블록 단위로 수행되므로 클린 페이지의 제거에 비해 속도가 느려져 성능이 저하된다. 이처럼 기존의 페이지 교체 기법에는 플래시 메모리의 성능을 저하시키고 수명을 단축시키는 문제가 있다.When replacing pages stored in the page buffer 110 using a buffer management system using the LRU method, the oldest pages are replaced after a read or write operation is performed, regardless of whether each page is dirty or clean. Select and remove as target data. In this case, when the dirty page is removed, a process in which data is stored in the flash memory by a write operation is required. Since the process is performed in units of blocks, performance is degraded because the speed is slower than that of clean pages. As such, the existing page replacement technique has a problem of degrading flash memory performance and shortening its lifespan.

본 발명이 이루고자 하는 기술적 과제는 플래시 메모리의 성능을 향상시키고 버퍼 적중률을 높이며 플래시 메모리의 수명을 연장시킬 수 있는 페이지 버퍼 관리 장치 및 그 방법을 제공하는 데 있다.It is an object of the present invention to provide a page buffer management apparatus and method for improving the performance of a flash memory, increasing the buffer hit ratio, and extending the life of the flash memory.

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

본 발명이 이루고자 하는 다른 기술적 과제는 플래시 메모리에 대한 쓰기 및 삭제 작업의 횟수를 줄여 플래시 메모리의 성능을 향상시킬 수 있는 플래시 메모리의 페이지 교체 장치 및 그 방법을 제공하는 데 있다.Another object of the present invention is to provide an apparatus and a method of replacing a page of a flash memory that can improve the performance of the flash memory by reducing the number of write and erase operations on the flash memory.

본 발명이 이루고자 하는 또 다른 기술적 과제는 플래시 메모리에 대한 쓰기 및 삭제 작업의 횟수를 줄여 플래시 메모리의 성능을 향상시킬 수 있는 플래시 메모리의 페이지 교체 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.Another technical problem to be solved by the present invention is to read a computer program for executing a page replacement method of a flash memory that can improve the performance of the flash memory by reducing the number of write and erase operations on the flash memory. To provide a record carrier.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리와 연동되는 페이지 버퍼 관리 장치는, 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리부; 및 상기 버퍼부에 저장된 페이지 단위의 데이터 중 읽기 동작이 수행된 클린 페이지에 대한 페이지 인덱스 및 상기 클린 페이지가 속하는 블록 번호가 기록되는 클린 페이지 리스트, 그리고 쓰기 동작이 수행된 더티 페이지에 대한 페이지 인덱스 및 상기 더티 페이지가 속하는 블록 번호가 기록되는 더티 페이지 리스트를 각각 생성하고, 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 리스트 관리부;를 구비한다.In order to achieve the above technical problem, a page buffer management apparatus interoperating with a flash memory according to the present invention includes a buffer unit configured to store data in units of pages read from a flash memory; A buffer manager which selects replacement target data from data in units of pages stored in the buffer unit and removes it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; A page index for a clean page on which a read operation is performed and a block number to which the block number to which the clean page belongs is recorded, and a page index on a dirty page on which a write operation is performed; And a page list manager which generates a dirty page list for recording the block number to which the dirty page belongs and deletes the page index corresponding to the replacement target data.

상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리와 연동되는 페이지 버퍼 관리 방법은, 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부에 데이터를 저장하는 버퍼부 갱신 단계; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리 단계; 및 상기 버퍼부에 저장된 페이지 단위의 데이터 중 읽기 동작이 수행된 클린 페이지에 대한 페이지 인덱스 및 상기 클린 페이지가 속하는 블록 번호가 기록되는 클린 페이지 리스트, 그리고 쓰기 동작이 수행된 더티 페이지에 대한 페이지 인덱스 및 상기 더티 페이지가 속하는 블록 번호가 기록되는 더티 페이지 리스트를 각각 생성하고, 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 리스트 관리 단계;를 갖는다.According to another aspect of the present invention, there is provided a page buffer management method interoperating with a flash memory, the buffer unit updating step of storing data in a buffer unit in which data in units of pages read from a flash memory is stored; A buffer management step of selecting replacement target data from data of a page unit stored in the buffer unit and removing it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; A page index for a clean page on which a read operation is performed and a block number to which the block number to which the clean page belongs is recorded, and a page index on a dirty page on which a write operation is performed; And a page list management step of generating a dirty page list for recording the block number to which the dirty page belongs, and deleting the page index corresponding to the replacement target data.

상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리의 페이지 교체 장치는, 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리부; 및 상기 버퍼부에 저장된 페이지 단위의 데이터에 대한 페이지 인덱스, 각각의 페이지가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그가 기록되는 페이지 리스트를 생성하여 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 관리부;를 구비한다.In accordance with another aspect of the present invention, there is provided a page replacement apparatus for a flash memory, including: a buffer unit configured to store data in units of pages read from a flash memory; A buffer manager which selects replacement target data from data in units of pages stored in the buffer unit and removes it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; And a page list in which a page index of a page unit data stored in the buffer unit, a block number to which each page belongs, and a flag indicating whether to perform a read operation or a write operation are recorded to generate a page list corresponding to the replacement target data. And a page manager to delete the index.

상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리의 페이지 교체 방법은, 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부에 데이터를 저장하는 버퍼부 갱신 단계; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리 단계; 및 상기 버퍼부에 저장된 페이지 단위의 데이터에 대한 페이지 인덱스, 각각의 페이지가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그가 기록되는 페이지 리스트를 생성하여 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 관리 단계;를 갖는다.In accordance with another aspect of the present invention, there is provided a method of replacing a page of a flash memory, the buffer unit updating step of storing data in a buffer unit in which data in units of pages read from the flash memory is stored; A buffer management step of selecting replacement target data from data of a page unit stored in the buffer unit and removing it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; And a page list in which a page index of a page unit data stored in the buffer unit, a block number to which each page belongs, and a flag indicating whether to perform a read operation or a write operation are recorded to generate a page list corresponding to the replacement target data. Page management step of deleting an index.

본 발명에 따른 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법에 의하면, 클린 페이지와 더티 페이지를 분리 관리함으로써, 쓰기 동작이 수행된 데 이터가 페이지 데이터에 오랜 시간 남아있게 되어 버퍼 적중률이 높아진다. 나아가 쓰기 동작이 수행된 데이터를 교체할 때 동일한 블록에 속하는 데이터를 함께 교체함으로써, 블록 단위로 소거 동작이 수행되는 플래시 메모리의 특성상 소거 동작의 실행 횟수가 감소하게 되어 플래시 메모리의 수명이 연장될 수 있다. 또한 본 발명에 따른 플래시 메모리의 페이지 교체 장치 및 방법에 의하면, 쓰기 동작이 수행된 데이터를 교체할 때 동일한 블록에 속하는 데이터를 함께 교체함으로써, 플래시 메모리에 대한 쓰기 및 삭제 작업의 횟수를 줄여 플래시 메모리의 성능을 향상시킬 수 있다.According to the apparatus and method for managing a page buffer interoperating with a flash memory according to the present invention, by separately managing clean pages and dirty pages, data on which write operations are performed remain in the page data for a long time, thereby increasing the buffer hit ratio. Furthermore, by replacing data belonging to the same block when replacing data on which write operations have been performed, the number of times of erase operations is reduced due to the characteristics of the flash memory in which erase operations are performed block by block, thereby extending the life of the flash memory. have. In addition, according to the apparatus and method for replacing a page of a flash memory according to the present invention, by replacing the data belonging to the same block when replacing the data on which the write operation is performed, the flash memory by reducing the number of write and delete operations to the flash memory Can improve the performance.

이하에서 첨부된 도면들을 참조하여 본 발명에 따른 페이지 버퍼 관리 장치 및 그 방법, 그리고 플래시 메모리의 페이지 교체 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다. 우선 각 도면의 구성요소들에 참조번호를 부여함에 있어서, 동일한 구성요소들에 있어서는 비록 다른 도면상에 표시되더라도 동일한 번호를 가지도록 한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the page buffer management apparatus and method, and the page replacement apparatus and method of the flash memory according to the present invention. First, in designating reference numerals to components of each drawing, the same components have the same number even though they are displayed on different drawings.

도 2는 본 발명에 따른 페이지 버퍼 관리 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of a preferred embodiment of the page buffer management apparatus according to the present invention.

도 2를 참조하면, 본 발명에 따른 페이지 버퍼 관리 장치는, 버퍼부(210), 버퍼 관리부(220) 및 페이지 리스트 관리부(230)를 구비한다.2, a page buffer management apparatus according to the present invention includes a buffer 210, a buffer manager 220, and a page list manager 230.

버퍼부(210)에는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장된다. 쓰기 동작과 삭제 동작이 플래시 메모리 대해 수행되기 전에 버퍼 부(210)에 저장된 페이지 데이터에 대한 기록과 삭제가 먼저 수행된다. 플래시 메모리에 대한 페이지 데이터의 읽기 및 쓰기 동작은 페이지 단위로 이루어지며, 삭제 동작은 복수의 페이지로 구성되는 블록 단위로 이루어진다.The buffer unit 210 stores data in units of pages read from the flash memory. Before the write and delete operations are performed on the flash memory, writing and deleting of page data stored in the buffer unit 210 are performed first. The reading and writing of page data with respect to the flash memory is performed in units of pages, and the erasing operation is performed in units of blocks including a plurality of pages.

버퍼 관리부(220)는 버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량(예를 들면, 버퍼 용량의 90%)에 도달하면 버퍼부(210)에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 버퍼부(210)에서 제거한다. When the amount of data stored in the buffer unit 210 reaches a preset reference capacity (for example, 90% of the buffer capacity), the buffer manager 220 replaces the data among page data stored in the buffer unit 210. The data is selected and removed from the buffer unit 210.

읽기 동작 또는 쓰기 동작을 수행하고자 하는 데이터가 버퍼부(210)에 저장되어 있지 않으면 플래시 메모리로부터 데이터를 독출해야 하는데, 버퍼 관리부(220)에 의해 이러한 데이터 독출 작업이 수행될 수 있다. 또한 버퍼부(220)는 버퍼부(210)에 저장된 데이터에 쓰기 작업이 수행된 경우 변경된 데이터를 다시 버퍼부(210)에 저장하며, 저장된 데이터가 제거되는 경우에는 플래시 메모리에 대해 삭제 및 쓰기 작업을 수행한다.If data to perform a read operation or a write operation is not stored in the buffer unit 210, the data should be read from the flash memory. The data read operation may be performed by the buffer manager 220. In addition, the buffer unit 220 stores the changed data again in the buffer unit 210 when the write operation is performed on the data stored in the buffer unit 210, and deletes and writes the flash memory when the stored data is removed. Do this.

플래시 메모리로부터 데이터를 독출하는 작업과 플래시 메모리에 대한 삭제 및 쓰기 작업은 버퍼 관리부(220)가 아닌 메모리 구동부(미도시)와 같은 별도의 장치를 구비하여 수행할 수도 있다. 이러한 경우 메모리 구동부(미도시)는 작업을 수행하고자 하는 데이터가 버퍼부(210)에 저장되어 있지 않아 플래시 메모리로부터 독출해야 한다는 요청을 버퍼 관리부(220)로부터 입력받고, 플래시 메모리에서 데이터를 독출하여 버퍼부(210)에 저장한다. 이때 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달한 경우, 버퍼 관리부(220)는 메모리 구동부(미도시)의 동작을 중지시키고 버퍼부(210)에서 교체 대상 데이터를 제거한다. 제거되는 데이터가 쓰 기 동작이 수행된 데이터인 경우에는 버퍼 관리부(220)가 메모리 구동부(미도시)에 대해 데이터의 삭제 및 쓰기 작업을 요청하며, 메모리 구동부(미도시)는 플래시 메모리에 대해 데이터의 삭제 및 쓰기 작업을 수행한다.The operation of reading data from the flash memory and the deleting and writing of the flash memory may be performed by using a separate device such as a memory driver (not shown) instead of the buffer manager 220. In this case, the memory driver (not shown) receives a request from the buffer manager 220 that data to be performed is not stored in the buffer unit 210 and therefore needs to be read from the flash memory, and reads data from the flash memory. The buffer 210 stores the same. In this case, when the amount of data stored in the buffer unit 210 reaches the reference capacity, the buffer manager 220 stops the operation of the memory driver (not shown) and removes the replacement target data from the buffer 210. When the data to be removed is data in which a write operation is performed, the buffer manager 220 requests a memory driver to delete and write data to the memory driver (not shown), and the memory driver (not shown) to the flash memory. Performs delete and write operations.

페이지 리스트 관리부(230)는 버퍼부(210)에 저장된 페이지 단위의 데이터 중 읽기 동작이 수행된 클린 페이지에 대한 페이지 인덱스 및 클린 페이지가 속하는 블록 번호가 기록되는 클린 페이지 리스트, 그리고 쓰기 동작이 수행된 더티 페이지에 대한 페이지 인덱스 및 더티 페이지가 속하는 블록 번호가 기록되는 더티 페이지 리스트를 각각 생성하고, 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제한다.The page list manager 230 may include a clean page list in which a page index and a block number to which a clean page belongs to a clean page of a page unit stored in the buffer unit 210 are recorded, and a write operation is performed. A dirty page list for recording the page index for the dirty page and the block number to which the dirty page belongs is generated, and the page index corresponding to the replacement target data is deleted.

버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하여 버퍼 관리부(220)가 교체 대상 데이터를 선택하여 제거할 때 이를 페이지 리스트 관리부(230)에 전달하면 페이지 리스트 관리부(230)는 교체 대상 데이터에 해당하는 페이지 인덱스를 페이지 리스트로부터 삭제한다.When the amount of data stored in the buffer unit 210 reaches the reference capacity and the buffer management unit 220 selects and removes the replacement target data and delivers it to the page list management unit 230, the page list management unit 230 replaces the replacement target data. The page index corresponding to the data is deleted from the page list.

한편, 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하지 않았더라도 클린 페이지 리스트 또는 더티 페이지 리스트에 기록된 페이지 인덱스의 개수가 기준 개수에 도달하는 경우에, 페이지 리스트 관리부(230)는 교체 대상 데이터의 선택을 버퍼 관리부(220)에 요청한다. 버퍼 관리부(220)는 클린 페이지 리스트 또는 더티 페이지 리스트에 기록된 페이지 인덱스 중에서 교체 대상 데이터를 선택하며, 페이지 리스트 관리부(230)는 선택된 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제한다.On the other hand, even if the amount of data stored in the buffer unit 210 does not reach the reference capacity, when the number of page indexes recorded in the clean page list or the dirty page list reaches the reference number, the page list manager 230 The buffer management unit 220 requests the selection of the replacement target data. The buffer manager 220 selects replacement target data from the page indexes recorded in the clean page list or the dirty page list, and the page list manager 230 deletes the page index corresponding to the selected replacement target data.

도 3은 본 발명에 따른 페이지 버퍼 관리 장치를 사용하여 페이지 버퍼를 관리하는 동작을 설명하기 위한 도면이다.3 is a view for explaining an operation of managing a page buffer using the page buffer management apparatus according to the present invention.

도 3을 참조하면, 버퍼부(210)에는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되고, 페이지 리스트 관리부(230)에 의해 생성되는 페이지 리스트(310, 320)에는 버퍼부(210)에 저장된 페이지 데이터에 관한 정보가 기록된다.Referring to FIG. 3, data configured in units of pages read from the flash memory is stored in the buffer unit 210, and the buffer unit 210 is included in the page lists 310 and 320 generated by the page list manager 230. Information about the stored page data is recorded.

클린 페이지 리스트(310)에는 읽기 동작이 수행된 페이지 데이터인 클린 페이지에 대한 페이지 인덱스 및 각각의 클린 페이지가 속하는 블록 번호가 기록되며, 더티 페이지 리스트(320)에는 쓰기 동작이 수행된 페이지 데이터인 더티 페이지에 대한 페이지 인덱스 및 각각의 더티 페이지가 속하는 블록 번호가 기록된다. 이때 버퍼 관리부(220)가 교체 대상 데이터를 선택하는 방법 중 하나인 LRU를 사용하는 경우, 페이지 리스트(310, 320)에는 각각의 페이지 데이터에 관한 정보가 읽기 동작 또는 쓰기 동작이 수행된 시점에 따라 순차적으로 기록된다.In the clean page list 310, a page index for a clean page, which is page data on which a read operation is performed, and a block number to which each clean page belongs, are recorded. In the dirty page list 320, dirty, which is page data on which a write operation is performed, The page index for the page and the block number to which each dirty page belongs are recorded. In this case, when the buffer management unit 220 uses the LRU, which is one of methods for selecting replacement target data, the page lists 310 and 320 may display information about each page data according to a time point at which a read operation or a write operation is performed. Are written sequentially.

클린 페이지 리스트(310)와 더티 페이지 리스트(320)의 크기는 기존의 LRU 방법에 의한 시스템에서 사용된 페이지 리스트의 크기를 1로 하면 더티 페이지 리스트(320)의 비율을 α(0<α<1), 클린 페이지 리스트(310)의 비율을 1-α로 정할 수 있다. 더티 페이지 리스트(320)의 크기는 임의로 정할 수 있으나, 다만 더티 페이지 리스트(320)의 크기가 지나치게 작을 경우에는 페이지 데이터의 잦은 교체가 일어나 플래시 메모리의 성능이 저하될 수 있으므로 적절한 크기로 설정하는 것이 바람직하다.The size of the clean page list 310 and the dirty page list 320 is 1 when the size of the page list used in the system according to the conventional LRU method is 1, and the ratio of the dirty page list 320 is α (0 <α <1). ), The ratio of the clean page list 310 may be set to 1-α. Although the size of the dirty page list 320 may be arbitrarily determined, however, when the size of the dirty page list 320 is too small, frequent replacement of page data may occur, which may degrade the performance of the flash memory. desirable.

이와 같이 클린 페이지 리스트(310)와 더티 페이지 리스트(320)를 각각 별개로 생성함으로써, 종래의 페이지 리스트(120)에 기록되는 페이지 데이터와 같이 읽기 동작 또는 쓰기 동작의 수행 여부에 대한 별도의 식별 표지를 기록할 필요가 없게 된다.By generating the clean page list 310 and the dirty page list 320 separately in this manner, separate identification marks as to whether to perform a read operation or a write operation, such as page data recorded in the conventional page list 120, are performed. There is no need to record it.

페이지 리스트 관리부(230)는 이와 같은 클린 페이지 리스트(310)와 더티 페이지 리스트(320)를 생성하고, 버퍼 관리부(220)에 의해 선택된 교체 대상 데이터의 페이지 인덱스를 페이지 리스트(310, 320)에서 삭제한다.The page list manager 230 generates the clean page list 310 and the dirty page list 320 and deletes the page indexes of the replacement target data selected by the buffer manager 220 from the page lists 310 and 320. do.

버퍼부(210)에 원래 저장되어 있던 데이터의 양과 플래시 메모리로부터 독출한 데이터의 양을 합한 용량이 기준 용량에 도달하면 플래시 메모리로부터 독출된 새로운 데이터를 저장할 공간이 필요하므로 저장된 페이지 데이터의 교체 작업이 수행되어야 한다. 이러한 교체 작업은 버퍼부(210)에 저장된 데이터 중에서 제거할 데이터인 교체 대상 데이터를 선택하여 제거함으로써 수행된다. 교체 대상 데이터는 종래의 버퍼 관리 기법인 FIFO, LRU, LFU 및 MFU 등을 사용하여 선택할 수 있다. 이 중에서 LRU 방법을 사용하는 경우, 버퍼 관리부(220)는 페이지 리스트(310, 320)에 기록된 페이지 데이터 중에서 읽기 동작 또는 쓰기 동작이 수행된 후 가장 오래된 페이지 데이터를 교체 대상 데이터로 선택한다.When the combined capacity of the amount of data originally stored in the buffer unit 210 and the amount of data read out from the flash memory reaches the reference capacity, a space for storing new data read out from the flash memory is required. Should be performed. The replacement operation is performed by selecting and removing replacement target data, which is data to be removed, from the data stored in the buffer unit 210. The replacement target data may be selected using conventional buffer management techniques such as FIFO, LRU, LFU, MFU, and the like. When using the LRU method, the buffer manager 220 selects the oldest page data as replacement target data after a read operation or a write operation is performed among the page data recorded in the page lists 310 and 320.

또한 버퍼 관리부(220)에 의해 선택된 교체 대상 데이터가 더티 페이지인 경우, 플래시 메모리에 대한 삭제 작업은 블록 단위로 이루어지므로 선택된 교체 대상 데이터와 동일한 블록 번호를 가지는 더티 페이지들을 함께 교체 대상 데이터로 선택하여 제거하면 플래시 메모리에 대한 삭제 및 쓰기 작업의 횟수를 줄일 수 있 다.In addition, when the replacement target data selected by the buffer management unit 220 is a dirty page, since the erase operation for the flash memory is performed in units of blocks, the dirty pages having the same block number as the selected replacement target data are also selected as replacement target data. Removing can reduce the number of erase and write operations to flash memory.

이와 같은 페이지 교체 작업은 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하지 않은 경우에도 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 기록된 페이지 인덱스의 개수와 페이지 리스트(310, 320)에 기록될 데이터에 대한 페이지의 개수를 더한 개수가 사전에 설정된 기준 개수에 도달한 경우에도 수행될 수 있다.The page replacement operation is performed by the number of page indexes and the page list 310 written in the clean page list 310 or the dirty page list 320 even when the amount of data stored in the buffer unit 210 does not reach the reference capacity. It may also be performed when the number of pages plus the number of pages for data to be recorded in 320 reaches a preset reference number.

읽기 동작 또는 쓰기 동작을 수행하고자 하는 데이터가 버퍼부(210)에 저장되어 있지 않아 플래시 메모리로부터 데이터를 독출해야 하는 경우에 버퍼부(210)에 저장 공간이 있으면 즉시 데이터를 저장할 수 있다. 그러나 플래시 메모리로부터 독출한 데이터에 대해 읽기 동작 또는 쓰기 동작을 수행하여 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 페이지 인덱스를 기록하고자 하는 경우, 페이지 인덱스의 기록에 의하여 페이지 리스트(310, 320)에 기록된 페이지 인덱스의 개수가 기준 개수에 도달하면 기록되어 있던 페이지 인덱스를 삭제해야 한다.When data to be read or written is not stored in the buffer unit 210 and data is to be read from the flash memory, the data may be immediately stored if there is a storage space in the buffer unit 210. However, when a page index is to be written to the clean page list 310 or the dirty page list 320 by performing a read operation or a write operation on data read from the flash memory, the page list 310 may be written by writing the page index. When the number of page indexes recorded in 320 reaches a reference number, the recorded page indexes should be deleted.

이때 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 기록된 페이지 인덱스 중에서 교체 대상 데이터를 선택하는 과정은 버퍼 관리부(220)에 의해 수행되며, 선택 방법 또한 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하였을 때 교체 대상 데이터를 선택하는 방법과 동일하다.At this time, the process of selecting the replacement target data among the page indexes recorded in the clean page list 310 or the dirty page list 320 is performed by the buffer manager 220. It is the same as selecting data to be replaced when the quantity reaches the reference dose.

한편, 읽기 동작 또는 쓰기 동작을 수행하고자 하는 데이터가 버퍼부(210)에 저장되어 있지 않아 플래시 메모리로부터 데이터를 독출하는 경우, 이러한 데이터의 독출 과정을 읽기 동작으로 해석하여 독출한 데이터를 버퍼부(210)에 저장함과 동시에 클린 페이지 리스트(310)에 독출한 데이터에 대한 페이지 인덱스를 기록하는 것도 가능하다. 이러한 경우에도 버퍼부(210)에는 저장 공간이 있으나 클린 페이지 리스트(310)에 기록된 페이지 인덱스의 개수가 기준 개수에 도달하여 페이지 인덱스의 삭제를 필요로 하는 경우가 발생할 수 있다.On the other hand, when data to perform a read operation or a write operation is not stored in the buffer unit 210 and the data is read from the flash memory, the data read process is interpreted as a read operation to read the data from the buffer unit It is also possible to record the page index for the data read in the clean page list 310 and stored at 210. Even in this case, although there is a storage space in the buffer unit 210, the number of page indexes recorded in the clean page list 310 reaches a reference number and thus may require the deletion of the page index.

쓰기 동작을 수행하고자 하는 페이지 데이터가 이미 버퍼부(210)에 저장되어 있는 경우, 저장된 페이지 데이터가 더티 페이지 리스트(320)에 기록되어 있다면 페이지 데이터에 쓰기 작업이 수행된 후 더티 페이지 리스트(320) 내에서 위치만 이동시켜 기록하면 된다. 그러나 쓰기 작업을 수행하고자 하는 페이지 데이터가 클린 페이지에 해당되는 경우에는 해당 페이지 데이터가 더티 페이지로 바뀌게 되므로 클린 페이지 리스트(310)로부터 더티 페이지 리스트(320)로 페이지 데이터의 정보를 이동시켜야 한다. 이를 위해서 페이지 리스트 관리부(230)는 쓰기 동작이 수행된 클린 페이지에 대한 페이지 인덱스를 클린 페이지 리스트(310)로부터 삭제하고, 더티 페이지 리스트(320)에 추가한다.If the page data to be written is already stored in the buffer unit 210, if the stored page data is recorded in the dirty page list 320, the dirty page list 320 is performed after a write operation is performed to the page data. You only need to move the location within the record. However, when the page data to be written is a clean page, the page data is changed to a dirty page, so the page data information needs to be moved from the clean page list 310 to the dirty page list 320. To this end, the page list manager 230 deletes the page index for the clean page on which the write operation is performed, from the clean page list 310 and adds the dirty page list to the dirty page list 320.

이때 페이지 인덱스의 이동에 의해 더티 페이지 리스트(320)에 저장된 페이지 인덱스의 개수가 사전에 설정된 기준 개수에 도달하면 이후에 기록될 페이지 데이터를 위하여 더티 페이지 리스트(320)에 저장된 더티 페이지 중에서 교체 대상 데이터를 선택하여 제거하여야 한다. 기존의 버퍼 관리 기법 중에서 LRU 방법을 사용하게 되면 쓰기 작업이 수행된 후 가장 오래된 더티 페이지가 교체 대상 데이터로 선택되며, 이 경우에도 선택된 교체 대상 데이터와 동일한 블록 번호를 가지는 더티 페이지들을 함께 교체 대상 데이터로 선택하여 제거함으로써, 플래시 메모리 의 성능을 향상시킬 수 있다.In this case, when the number of page indexes stored in the dirty page list 320 reaches a preset reference number due to the movement of the page index, replacement target data among the dirty pages stored in the dirty page list 320 for page data to be recorded later. To be removed. Among the existing buffer management techniques, when the LRU method is used, the oldest dirty page is selected as the replacement data after the write operation, and even in this case, the dirty data having the same block number as the selected replacement data is replaced together. By selecting and removing, the performance of flash memory can be improved.

도 4a는 본 발명에 따른 페이지 버퍼 관리 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이고, 도 4b는 본 발명에 따른 페이지 버퍼 관리 방법에 있어서 작업을 수행할 페이지 단위의 데이터가 버퍼부에 저장되어 있는 경우에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이다.4A is a flowchart illustrating a process of performing a preferred embodiment of the method for managing a page buffer according to the present invention, and FIG. 4B is a page unit for storing data in a buffer unit in a page buffer management method according to the present invention. In this case, a flowchart showing a process of performing a preferred embodiment is shown.

도 4a 및 도 4b를 참조하면, 외부에서 플래시 메모리에 저장된 페이지 단위로 이루어진 데이터에 대한 작업 요청이 입력되면 버퍼 관리부(220)는 작업을 수행할 데이터가 버퍼부(210)에 저장되어 있는지 검색한다(S405). 요청된 데이터가 버퍼부(210)에 저장되어 있지 않으면(S410) 데이터를 플래시 메모리로부터 독출하여 버퍼부(210)에 저장해야 한다. 이때 버퍼 관리부(220)는 버퍼부(210)에 저장된 데이터의 양과 플래시 메모리로부터 독출한 데이터의 양을 합한 양이 사전에 설정된 기준 용량에 도달하였는지 검사하여(S415), 기준 용량에 도달하지 않은 경우에는 버퍼부(210)에 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터를 저장한다.4A and 4B, when a work request for data in units of pages stored in the flash memory is input from the outside, the buffer manager 220 searches whether the data to be performed is stored in the buffer 210. (S405). If the requested data is not stored in the buffer unit 210 (S410), the data should be read from the flash memory and stored in the buffer unit 210. In this case, the buffer manager 220 checks whether the sum of the amount of data stored in the buffer unit 210 and the amount of data read from the flash memory reaches a preset reference capacity (S415), and when the reference capacity is not reached. In the buffer unit 210 stores data in units of pages read from the flash memory.

또한 버퍼부(210)에 데이터를 저장하는 작업은 버퍼 관리부(220)가 아닌 메모리 구동부(미도시)와 같은 별도의 장치에 의해 수행될 수도 있다. 이러한 경우 메모리 구동부(미도시)는 변경된 데이터를 플래시 메모리에 저장하거나 플래시 메모리로부터 데이터를 독출하여 버퍼부(210)에 저장하는 역할을 수행하게 된다.In addition, the operation of storing data in the buffer unit 210 may be performed by a separate device such as a memory driver (not shown) instead of the buffer manager 220. In this case, the memory driver (not shown) stores the changed data in the flash memory or reads data from the flash memory and stores the changed data in the buffer 210.

버퍼부(210)에 저장되어 있던 데이터의 양과 플래시 메모리로부터 독출한 데이터의 양을 합한 양이 사전에 설정된 기준 용량에 도달하면 더 이상 버퍼부(210) 에 데이터를 저장할 수 없으므로, 버퍼 관리부(220)는 저장 공간을 확보하기 위해 버퍼부(210)로부터 제거될 교체 대상 데이터를 선택한다(S420). 플래시 메모리의 성능 향상을 위해 교체 대상 데이터는 클린 페이지 리스트(310)에 기록된 클린 페이지 중에서 우선적으로 선택되는 것이 바람직하며, 읽기 동작이 수행된 후 가장 오래된 페이지를 교체 대상 데이터로 선택할 수 있다. 교체 대상 데이터가 더티 페이지 중에서 선택된 경우에는(S425), 선택된 교체 대상 데이터와 동일한 블록에 속하는 더티 페이지를 함께 교체 대상 데이터로 선택한다(S430). 버퍼 관리부(220)는 선택된 교체 대상 데이터를 버퍼부(210)에서 제거하고(S435), 그에 따라 페이지 리스트 관리부(230)에 의해 교체 대상 데이터의 페이지 인덱스가 페이지 리스트(310, 320)로부터 삭제된다.When the sum of the amount of data stored in the buffer unit 210 and the amount of data read out from the flash memory reaches a preset reference capacity, data cannot be stored in the buffer unit 210 anymore, so the buffer manager 220 ) Selects the replacement target data to be removed from the buffer unit 210 to secure the storage space (S420). In order to improve the performance of the flash memory, the replacement target data is preferably selected among the clean pages recorded in the clean page list 310, and the oldest page may be selected as the replacement target data after the read operation is performed. When the replacement target data is selected from the dirty pages (S425), the dirty pages belonging to the same block as the selected replacement target data are also selected as the replacement target data (S430). The buffer manager 220 removes the selected replacement target data from the buffer 210 (S435), and accordingly, the page index of the replacement target data is deleted from the page lists 310 and 320 by the page list manager 230. FIG. .

페이지 리스트 관리부(230)는 버퍼부(210)에 저장된 페이지 단위의 데이터에 쓰기 동작이 수행되었는지 검사하고(S440), 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하지 않았더라도 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 원래 기록되어 있던 페이지 인덱스의 개수와 플래시 메모리로부터 독출한 데이터의 페이지 개수를 합한 개수가 사전에 설정된 기준 개수에 도달하면 버퍼 관리부(220)에 의해 교체 대상 페이지가 선택된다. The page list manager 230 checks whether a write operation is performed on the data of the page unit stored in the buffer unit 210 (S440), and even if the amount of data stored in the buffer unit 210 does not reach the reference capacity, the clean page If the sum of the number of page indexes originally recorded in the list 310 or the dirty page list 320 and the number of pages of data read from the flash memory reaches a preset reference number, the buffer management unit 220 replaces the page index. The target page is selected.

버퍼부(210)에 저장된 데이터에 수행된 동작이 읽기 동작이고, 클린 페이지 리스트에 기록된 페이지 인덱스의 개수가 기준 개수에 도달한 경우에는(S450) 클린 페이지 리스트에 기록된 데이터 중에서 교체 대상 데이터가 선택되어 제거된다(S455). 또한 버퍼부(210)에 저장된 데이터에 수행된 동작이 쓰기 동작이고, 더 티 페이지 리스트에 기록된 페이지 인덱스의 개수가 기준 개수에 도달한 경우에는(S445) 더티 페이지 리스트에 기록된 데이터 중에서 교체 대상 데이터가 선택되어 제거된다. 교체 대상 데이터가 더티 페이지인 경우에는 위에 언급한 바와 같이 선택된 교체 대상 데이터와 동일한 블록에 속하는 더티 페이지를 함께 교체 대상 데이터로 선택하여 제거함으로써 플래시 메모리의 성능을 향상시킬 수 있다(S430).If the operation performed on the data stored in the buffer unit 210 is a read operation and the number of page indexes recorded in the clean page list reaches the reference number (S450), the replacement target data is stored in the data recorded in the clean page list. It is selected and removed (S455). In addition, when the operation performed on the data stored in the buffer unit 210 is a write operation, and the number of page indexes recorded in the dirty page list reaches the reference number (S445), the replacement target is among the data recorded in the dirty page list. The data is selected and removed. When the replacement target data is the dirty page, as described above, the dirty pages belonging to the same block as the selected replacement target data may be selected and removed together as the replacement target data to improve the performance of the flash memory (S430).

한편, 플래시 메모리로부터 독출한 데이터를 버퍼부(210)에 저장한 후 읽기 동작 또는 쓰기 동작을 수행하여 페이지 리스트(310, 320)에 기록하지 않고 데이터를 버퍼부(210)에 저장함과 동시에 클린 페이지 리스트(310)에 기록하는 것도 가능하다. 이러한 경우에는 클린 페이지 리스트(310)에 기록된 데이터에 대해 읽기 동작 또는 쓰기 동작이 수행되며, 쓰기 동작이 수행되면 클린 페이지 리스트(310)에서 더티 페이지 리스트(320)로 페이지 인덱스가 이동된다.On the other hand, after storing the data read from the flash memory in the buffer unit 210 and performing a read operation or a write operation, the data is stored in the buffer unit 210 without being written to the page lists 310 and 320, and at the same time, a clean page It is also possible to record to the list 310. In this case, a read operation or a write operation is performed on the data recorded in the clean page list 310, and when the write operation is performed, the page index is moved from the clean page list 310 to the dirty page list 320.

작업을 수행하고자 하는 데이터가 이미 버퍼부(210)에 저장되어 있는 경우에는 플래시 메모리로부터 데이터를 독출할 필요가 없으며, 이미 저장된 페이지 데이터에 쓰기 동작이 수행되는지 여부에 따라(S460) 페이지 리스트 관리부(230)의 동작이 달라지게 된다. 읽기 동작이 수행되면 버퍼부(210)에 저장된 데이터에 변화가 생기지 않으므로 페이지 리스트 관리부(230)에 의해 원래 위치하였던 페이지 리스트(310, 320) 내에서 페이지 인덱스의 위치만 이동시키면 된다(S465). 이와 달리 페이지 데이터에 쓰기 동작이 수행되는 경우에는 작업이 수행되는 데이터의 원래 위치가 클린 페이지 리스트(310)인지 더티 페이지 리스트(320)인지를 검사하고(S470), 이미 쓰기 동작이 수행되어 더티 페이지 리스트(320)에 위치하였던 데이 터에 다시 쓰기 동작이 수행되는 경우에는 더티 페이지 리스트(320) 내에서 페이지 인덱스의 위치만 이동시킨다(S465).If the data to be performed is already stored in the buffer unit 210, it is not necessary to read the data from the flash memory, and depending on whether a write operation is performed on the already stored page data (S460), the page list manager ( The operation of 230 will be different. When the read operation is performed, since the data stored in the buffer unit 210 does not change, only the position of the page index in the page lists 310 and 320 originally located by the page list manager 230 may be moved (S465). On the other hand, when a write operation is performed on the page data, it is checked whether the original position of the data on which the operation is performed is the clean page list 310 or the dirty page list 320 (S470), and the write operation is already performed to perform the dirty page. When a rewrite operation is performed on the data located in the list 320, only the position of the page index in the dirty page list 320 is moved (S465).

클린 페이지 리스트(310)에 위치하였던 페이지 단위의 데이터에 쓰기 동작이 수행되는 경우에는 페이지 데이터의 종류가 클린 페이지에서 더티 페이지로 바뀌게 된다. 따라서 페이지 리스트 관리부(230)는 클린 페이지 리스트(310)에서 더티 페이지 리스트(320)로 쓰기 동작이 수행된 페이지 데이터의 페이지 인덱스를 이동시킨다(S475). 이때 더티 페이지 리스트(320)에 기록된 페이지 인덱스의 개수가 사전에 설정된 기준 개수에 도달한 경우(S445), 버퍼 관리부(220)는 더티 페이지 리스트(320)에 기록된 데이터 중에서 교체 대상 데이터를 선택한다. 이 경우에도 선택된 교체 대상 데이터와 동일한 블록에 속하는 더티 페이지를 함께 교체 대상 데이터로 선택하여 플래시 메모리의 성능을 향상시킬 수 있다(S430). 선택된 교체 대상 데이터가 제거되면(S435) 페이지 교체 작업이 종료된다.When a write operation is performed on the data of a page unit that is located in the clean page list 310, the type of page data is changed from a clean page to a dirty page. Therefore, the page list manager 230 moves the page index of the page data on which the write operation is performed from the clean page list 310 to the dirty page list 320 (S475). In this case, when the number of page indexes recorded in the dirty page list 320 reaches a preset reference number (S445), the buffer manager 220 selects replacement target data from the data recorded in the dirty page list 320. do. Even in this case, the dirty pages belonging to the same block as the selected replacement target data may be selected as replacement target data to improve the performance of the flash memory (S430). If the selected replacement target data is removed (S435), the page replacement operation is terminated.

도 5는 본 발명에 따른 플래시 메모리의 페이지 교체 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.5 is a block diagram showing the configuration of a preferred embodiment of a page replacement apparatus of a flash memory according to the present invention.

도 5를 참조하면, 본 발명에 따른 플래시 메모리의 페이지 교체 장치는, 버퍼부(210), 버퍼 관리부(220) 및 페이지 교체부(510)를 구비한다.Referring to FIG. 5, a page replacement apparatus of a flash memory according to the present invention includes a buffer unit 210, a buffer manager 220, and a page replacer 510.

버퍼부(210)에는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장된다. 본 발명에 따른 페이지 버퍼 관리 장치와 마찬가지로 쓰기 동작과 삭제 동작이 플래시 메모리의 페이지에 대해 수행되기 전에 버퍼부(210)에 저장된 페이지 데이터에 대한 기록과 삭제가 먼저 수행된다.The buffer unit 210 stores data in units of pages read from the flash memory. As with the page buffer management apparatus according to the present invention, writing and erasing of the page data stored in the buffer unit 210 are performed before the write and delete operations are performed on the pages of the flash memory.

버퍼 관리부(220) 역시 본 발명에 따른 페이지 버퍼 관리 장치에서 사용된 버퍼 관리부(220)가 사용될 수 있으며, 버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 버퍼부(210)에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 버퍼부(210)에서 제거한다. 이 경우에도 별도로 구비된 메모리 구동부(미도시)에 의해 플래시 메모리로부터 데이터를 독출하는 작업과 플래시 메모리에 대한 삭제 및 쓰기 작업이 수행될 수 있다.The buffer manager 220 may also use the buffer manager 220 used in the page buffer manager according to the present invention. When the amount of data stored in the buffer 210 reaches a preset reference capacity, the buffer manager 210 may be used. The replacement target data is selected from the data of the page unit stored in the &quot; In this case, a separate operation of reading data from the flash memory and deleting and writing the flash memory may be performed by a memory driver (not shown).

또한 페이지 교체부(510)는 버퍼부(210)에 저장된 페이지 단위의 데이터에 대한 페이지 인덱스, 각각의 페이지가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그가 기록되는 페이지 리스트를 생성하여 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제한다.In addition, the page replacer 510 generates a page list in which a page index, page number of each page to which each page is stored, and a flag indicating whether a read operation or a write operation is performed are recorded in the buffer unit 210. Delete the page index corresponding to the replacement target data.

여기서 페이지 교체부(510)에 의해 생성되는 페이지 리스트는 도 1에 도시된 페이지 리스트(120)와 동일하며, 읽기 동작 또는 쓰기 동작의 수행 여부에 관계없이 하나의 리스트에 읽기 동작 또는 쓰기 동작이 수행된 시점에 따라 순차적으로 페이지 인덱스를 기록한다. 따라서 버퍼 관리부(220)에 의해 교체 대상 데이터가 선택될 때 종래의 버퍼 관리 기법 중 LRU 방법을 사용하는 경우에는 페이지 데이터에 수행된 동작의 종류에 관계없이 읽기 동작 또는 쓰기 동작이 수행된 후 가장 오래된 페이지가 교체 대상 데이터로 선택된다.Here, the page list generated by the page replacement unit 510 is the same as the page list 120 shown in FIG. 1, and a read operation or a write operation is performed on one list regardless of whether a read operation or a write operation is performed. The page indexes are sequentially recorded according to the time points. Therefore, when the replacement target data is selected by the buffer management unit 220, when the LRU method of the conventional buffer management technique is used, the oldest after the read or write operation is performed regardless of the type of the operation performed on the page data. The page is selected as the replacement target data.

버퍼 관리부(220)는 쓰기 동작이 수행된 데이터가 교체 대상 데이터로 선택된 경우에는 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택한다. 쓰기 동작이 수행된 데이터를 제 거하는 경우에는 플래시 메모리에 대해 삭제 및 쓰기 작업이 수행된다. 이때 삭제 작업은 페이지 단위가 아닌 블록 단위로 이루어지므로 동일한 블록에 속하는 페이지를 한꺼번에 제거하면 플래시 메모리에 대한 삭제 및 쓰기 작업의 횟수를 감소시킬 수 있어 플래시 메모리의 성능이 향상된다.When the data on which the write operation is performed is selected as the replacement target data, the buffer manager 220 selects the data including the page unit having the same block number as the replacement target data as the replacement target data. When the data on which the write operation is performed is removed, erase and write operations are performed on the flash memory. In this case, since the delete operation is performed in units of blocks rather than units of pages, removing pages belonging to the same block at once can reduce the number of erase and write operations to the flash memory, thereby improving the performance of the flash memory.

도 6은 본 발명에 따른 플래시 메모리의 페이지 교체 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process of performing a preferred embodiment of the method of page replacement of a flash memory according to the present invention.

도 6을 참조하면, 외부에서 플래시 메모리에 저장된 페이지 단위로 이루어진 데이터에 대한 작업 요청이 입력되면 버퍼 관리부(220)는 작업을 수행할 데이터가 버퍼부(210)에 저장되어 있는지 검색한다(S610, S615). 요청된 데이터가 버퍼부(210)에 저장되어 있는 경우에는 이미 저장된 데이터에 대해 읽기 동작 또는 쓰기 동작이 수행되는 것이므로 새로운 저장 공간이 필요하지 않고, 버퍼 관리부(220)는 읽기 동작 또는 쓰기 동작의 수행 결과를 버퍼부(210)에 저장하면 된다. 페이지 교체부(510)는 읽기 동작이 수행되었던 페이지 데이터에 쓰기 동작이 수행되면 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그를 교체하여 기록한다(S620).Referring to FIG. 6, when a work request for data in units of pages stored in a flash memory is input from outside, the buffer manager 220 searches whether the data to be performed is stored in the buffer 210 (S610, S615). When the requested data is stored in the buffer unit 210, since a read operation or a write operation is performed on the already stored data, no new storage space is required, and the buffer manager 220 performs a read operation or a write operation. The result may be stored in the buffer unit 210. When the write operation is performed on the page data in which the read operation is performed, the page replacer 510 replaces and writes a flag indicating whether the read operation or the write operation is performed (S620).

요청된 데이터가 버퍼부(210)에 저장되어 있지 않으면 버퍼 관리부(220)는 플래시 메모리로부터 데이터를 독출하여 버퍼부(210)에 저장하여야 한다. 버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하지 않은 경우에는(S625) 새로 독출한 데이터의 저장 공간이 남아 있으므로 읽기 동작 또는 쓰기 동작이 수행된 데이터를 버퍼부(210)에 저장한다. 또한 페이지 교체부(510)는 버퍼 부(210)에 저장된 데이터에 대한 페이지 인덱스, 데이터가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그를 페이지 리스트(120)에 기록한다(S630).If the requested data is not stored in the buffer unit 210, the buffer manager 220 should read data from the flash memory and store the data in the buffer unit 210. If the amount of data stored in the buffer unit 210 does not reach the preset reference capacity (S625), since the storage space of the newly read data remains, the buffer unit 210 stores the data in which the read or write operation is performed. Store in In addition, the page replacement unit 510 writes a page index for the data stored in the buffer unit 210, a block number to which the data belongs, and a flag indicating whether to perform a read operation or a write operation in the page list 120 (S630). .

버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 버퍼 관리부(220)는 새로 독출한 데이터의 저장 공간을 확보하기 위해 버퍼부(210)에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택한다(S635). 이때 쓰기 동작이 수행된 데이터 중에서 교체 대상 데이터를 선택한 경우에는(S640) 선택된 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택한다(S645). 쓰기 동작이 수행된 데이터를 제거할 때 플래시 메모리에 대해 삭제 및 쓰기 작업이 수행되는데, 삭제 작업이 블록 단위로 이루어지므로 교체 대상 데이터를 블록 단위로 선택하여 제거하면 삭제 및 쓰기 작업의 횟수를 줄여 플래시 메모리의 성능을 향상시킬 수 있다. 읽기 동작이 수행된 데이터 중에서 교체 대상 데이터를 선택한 경우에는 추가로 교체 대상 데이터를 선택할 필요가 없으며, 버퍼 관리부(220)는 선택된 교체 대상 데이터를 버퍼부(210)에서 제거하고 페이지 교체부(510)는 교체 대상 데이터의 페이지 인덱스를 삭제한다(S650). 이러한 교체 대상 데이터의 제거 과정에 의해 저장 공간이 확보되면, 버퍼 관리부(220)는 독출한 데이터를 버퍼부(210)에 저장하고 페이지 교체부(510)는 데이터의 페이지 인덱스를 페이지 리스트(120)에 기록한다(S630).When the amount of data stored in the buffer unit 210 reaches a preset reference capacity, the buffer manager 220 replaces the data of the page unit stored in the buffer unit 210 to secure a storage space of newly read data. The data is selected (S635). In this case, when the replacement target data is selected from the data on which the write operation is performed (S640), data consisting of page units having the same block number as the selected replacement target data is also selected as the replacement target data (S645). When the write operation is performed, data is deleted and written to the flash memory. Since the delete operation is performed in blocks, selecting and removing replacement target data in blocks reduces the number of erase and write operations. It can improve the performance of memory. When the replacement target data is selected among the data on which the read operation is performed, it is not necessary to select the replacement target data additionally, and the buffer manager 220 removes the selected replacement target data from the buffer 210 and replaces the page replacement unit 510. Deletes the page index of the replacement target data (S650). When the storage space is secured by the process of removing the replacement target data, the buffer manager 220 stores the read data in the buffer 210 and the page replacer 510 stores the page index of the data in the page list 120. Write to (S630).

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

도 1은 기존의 버퍼 관리 기법들 중 LRU 방법을 사용하는 버퍼 관리 시스템의 구성을 도시한 도면,1 is a diagram illustrating a configuration of a buffer management system using an LRU method among existing buffer management techniques.

도 2는 본 발명에 따른 페이지 버퍼 관리 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,2 is a block diagram showing the configuration of a preferred embodiment of a page buffer management apparatus according to the present invention;

도 3은 본 발명에 따른 페이지 버퍼 관리 장치를 사용하여 페이지 버퍼를 관리하는 동작을 설명하기 위한 도면,3 is a view for explaining an operation of managing a page buffer using a page buffer management apparatus according to the present invention;

도 4a는 본 발명에 따른 페이지 버퍼 관리 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도,4A is a flowchart illustrating a process of performing a preferred embodiment of the page buffer management method according to the present invention;

도 4b는 본 발명에 따른 페이지 버퍼 관리 방법에 있어서 작업을 수행할 페이지 단위의 데이터가 버퍼부에 저장되어 있는 경우에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도,4B is a flowchart illustrating a process of performing a preferred embodiment in a case where data of a page unit to perform a task is stored in a buffer unit in the method of managing a page buffer according to the present invention;

도 5는 본 발명에 따른 플래시 메모리의 페이지 교체 장치에 대한 바람직한 실시예의 구성을 도시한 블록도, 그리고,5 is a block diagram showing the configuration of a preferred embodiment of a page replacement apparatus of a flash memory according to the present invention;

도 6은 본 발명에 따른 플래시 메모리의 페이지 교체 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process of performing a preferred embodiment of the method of page replacement of a flash memory according to the present invention.

Claims (14)

플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부;A buffer unit to store data in units of pages read from the flash memory; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리부; 및A buffer manager which selects replacement target data from data in units of pages stored in the buffer unit and removes it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; And 상기 버퍼부에 저장된 페이지 단위의 데이터 중 읽기 동작이 수행된 클린 페이지에 대한 페이지 인덱스 및 상기 클린 페이지가 속하는 블록 번호가 기록되는 클린 페이지 리스트, 그리고 쓰기 동작이 수행된 더티 페이지에 대한 페이지 인덱스 및 상기 더티 페이지가 속하는 블록 번호가 기록되는 더티 페이지 리스트를 각각 생성하고, 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 리스트 관리부;를 포함하는 것을 특징으로 하는 페이지 버퍼 관리 장치.A page index for a clean page on which a read operation is performed and a block number to which the clean page belongs, and a page index on a dirty page on which a write operation is performed; And a page list manager which generates a dirty page list in which the block number to which the dirty page belongs is recorded and deletes the page index corresponding to the replacement target data. 제 1항에 있어서,The method of claim 1, 상기 버퍼 관리부는 상기 클린 페이지 중에서 읽기 동작이 수행된 후 가장 오래된 페이지를 상기 교체 대상 데이터로 선택하는 것을 특징으로 하는 페이지 버퍼 관리 장치.And the buffer manager selects the oldest page as the replacement target data after a read operation is performed among the clean pages. 제 1항에 있어서,The method of claim 1, 상기 버퍼 관리부는 상기 클린 페이지 리스트 또는 상기 더티 페이지 리스트에 저장된 페이지 인덱스의 개수가 사전에 설정된 기준 개수에 도달하면 상기 교체 대상 데이터를 선택하는 것을 특징으로 하는 페이지 버퍼 관리 장치.And the buffer manager selects the replacement target data when the number of page indexes stored in the clean page list or the dirty page list reaches a preset reference number. 제 1항 또는 제 3항에 있어서,The method according to claim 1 or 3, 상기 페이지 리스트 관리부는 쓰기 동작이 수행된 상기 클린 페이지에 대한 페이지 인덱스를 상기 클린 페이지 리스트로부터 상기 더티 페이지 리스트로 이동시키는 것을 특징으로 하는 페이지 버퍼 관리 장치.And the page list management unit moves a page index for the clean page on which the write operation is performed, from the clean page list to the dirty page list. 제 4항에 있어서,The method of claim 4, wherein 상기 버퍼 관리부는 상기 교체 대상 데이터가 상기 더티 페이지 중에서 선택된 경우에는 상기 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택하는 것을 특징으로 하는 페이지 버퍼 관리 장치.And when the replacement target data is selected from among the dirty pages, the buffer manager selects data including page units having the same block number as the replacement target data as replacement target data. 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부에 데이터를 저장하는 버퍼부 갱신 단계;A buffer unit updating step of storing data in a buffer unit in which data in units of pages read from the flash memory is stored; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리 단계; 및A buffer management step of selecting replacement target data from data of a page unit stored in the buffer unit and removing it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; And 상기 버퍼부에 저장된 페이지 단위의 데이터 중 읽기 동작이 수행된 클린 페이지에 대한 페이지 인덱스 및 상기 클린 페이지가 속하는 블록 번호가 기록되는 클린 페이지 리스트, 그리고 쓰기 동작이 수행된 더티 페이지에 대한 페이지 인덱스 및 상기 더티 페이지가 속하는 블록 번호가 기록되는 더티 페이지 리스트를 각각 생성하고, 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 리스트 관리 단계;를 포함하는 것을 특징으로 하는 페이지 버퍼 관리 방법.A page index for a clean page on which a read operation is performed and a block number to which the clean page belongs, and a page index on a dirty page on which a write operation is performed; And a page list management step of generating a dirty page list for recording the block number to which the dirty page belongs, and deleting the page index corresponding to the replacement target data. 제 6항에 있어서,The method of claim 6, 상기 버퍼 관리 단계에서, 상기 클린 페이지 중에서 읽기 동작이 수행된 후 가장 오래된 페이지를 상기 교체 대상 데이터로 선택하는 것을 특징으로 하는 페이지 버퍼 관리 방법.And in the buffer management step, selecting the oldest page as the replacement target data after a read operation is performed among the clean pages. 제 6항에 있어서,The method of claim 6, 상기 버퍼 관리 단계에서, 상기 클린 페이지 리스트 또는 상기 더티 페이지 리스트에 저장된 페이지 인덱스의 개수가 사전에 설정된 기준 개수에 도달하면 상기 교체 대상 데이터를 선택하는 것을 특징으로 하는 페이지 버퍼 관리 방법.And in the buffer management step, selecting the replacement target data when the number of page indexes stored in the clean page list or the dirty page list reaches a preset reference number. 제 6항 또는 제 8항에 있어서,The method according to claim 6 or 8, 상기 페이지 리스트 관리 단계에서, 쓰기 동작이 수행된 상기 클린 페이지에 대한 페이지 인덱스를 상기 클린 페이지 리스트로부터 상기 더티 페이지 리스트로 이동시키는 것을 특징으로 하는 페이지 버퍼 관리 방법.And in the page list management step, move the page index for the clean page on which the write operation is performed from the clean page list to the dirty page list. 제 9항에 있어서,The method of claim 9, 상기 버퍼 관리 단계에서, 상기 교체 대상 데이터가 상기 더티 페이지 중에서 선택된 경우에는 상기 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택하는 것을 특징으로 하는 페이지 버퍼 관리 방법.In the buffer management step, when the replacement target data is selected from the dirty pages, the page buffer management method, characterized in that the data consisting of the page unit having the same block number as the replacement target data is selected as the replacement target data. 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부;A buffer unit to store data in units of pages read from the flash memory; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리부; 및A buffer manager which selects replacement target data from data in units of pages stored in the buffer unit and removes it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; And 상기 버퍼부에 저장된 페이지 단위의 데이터에 대한 페이지 인덱스, 각각의 페이지가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그가 기록되는 페이지 리스트를 생성하여 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 교체부;를 포함하며,A page index corresponding to the data to be replaced by generating a page list in which a page index of the page unit data stored in the buffer unit, a block number to which each page belongs, and a flag indicating whether to perform a read operation or a write operation are recorded. It includes; page replacement unit for deleting; 상기 버퍼 관리부는 쓰기 동작이 수행된 데이터가 상기 교체 대상 데이터로 선택된 경우에는 상기 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택하는 것을 특징으로 하는 플래 시 메모리의 페이지 교체 장치.When the data on which the write operation is performed is selected as the replacement target data, the buffer manager selects data including page units having the same block number as the replacement target data as replacement target data. Page replacement device. 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장되는 버퍼부에 데이터를 저장하는 버퍼부 갱신 단계;A buffer unit updating step of storing data in a buffer unit in which data in units of pages read from the flash memory is stored; 상기 버퍼부에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 상기 버퍼부에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 상기 버퍼부에서 제거하는 버퍼 관리 단계; 및A buffer management step of selecting replacement target data from data of a page unit stored in the buffer unit and removing it from the buffer unit when the amount of data stored in the buffer unit reaches a preset reference capacity; And 상기 버퍼부에 저장된 페이지 단위의 데이터에 대한 페이지 인덱스, 각각의 페이지가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그가 기록되는 페이지 리스트를 생성하여 상기 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제하는 페이지 교체 단계;를 포함하며,A page index corresponding to the data to be replaced by generating a page list in which a page index of the page unit data stored in the buffer unit, a block number to which each page belongs, and a flag indicating whether to perform a read operation or a write operation are recorded. A page replacement step of deleting; 상기 버퍼 관리단계에서, 쓰기 동작이 수행된 데이터가 상기 교체 대상 데이터로 선택된 경우에는 상기 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택하는 것을 특징으로 하는 플래시 메모리의 페이지 교체 방법.In the buffer management step, when the data on which the write operation is performed is selected as the replacement target data, the flash memory may select data including a page unit having the same block number as the replacement target data as the replacement target data. How to replace the page. 제 6항 내지 제 9항 중 어느 한 항에 기재된 페이지 버퍼 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the page buffer management method according to any one of claims 6 to 9. 제 12항에 기재된 플래시 메모리의 페이지 교체 방법을 컴퓨터에서 실행시키 기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the page replacement method of the flash memory according to claim 12 on a computer.
KR1020080066826A 2008-07-10 2008-07-10 Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory KR100941382B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080066826A KR100941382B1 (en) 2008-07-10 2008-07-10 Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080066826A KR100941382B1 (en) 2008-07-10 2008-07-10 Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory

Publications (2)

Publication Number Publication Date
KR20100006625A true KR20100006625A (en) 2010-01-21
KR100941382B1 KR100941382B1 (en) 2010-02-10

Family

ID=41815730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080066826A KR100941382B1 (en) 2008-07-10 2008-07-10 Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory

Country Status (1)

Country Link
KR (1) KR100941382B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101144321B1 (en) * 2010-10-04 2012-05-11 주식회사 알티베이스 Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer
WO2013189186A1 (en) * 2012-06-20 2013-12-27 华为技术有限公司 Buffering management method and apparatus for non-volatile storage device
KR20190069204A (en) * 2017-12-11 2019-06-19 한국산업기술대학교산학협력단 Apparatus and method for managing memory
CN113032088A (en) * 2019-12-25 2021-06-25 阿里巴巴集团控股有限公司 Dirty page recording method and device, electronic equipment and computer readable medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101288276B1 (en) * 2012-02-14 2013-07-26 명지대학교 산학협력단 Apparaus and method for managing buffer considering memory erase block
KR101481633B1 (en) * 2013-07-03 2015-01-15 아주대학교산학협력단 Buffer Management Apparatus And Method having three states based on Flash Memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100577384B1 (en) * 2004-07-28 2006-05-10 삼성전자주식회사 Method for page replacement using information on page
KR100787856B1 (en) 2006-11-29 2007-12-27 한양대학교 산학협력단 Method for changing page in flash memory storage

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101144321B1 (en) * 2010-10-04 2012-05-11 주식회사 알티베이스 Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer
WO2013189186A1 (en) * 2012-06-20 2013-12-27 华为技术有限公司 Buffering management method and apparatus for non-volatile storage device
CN103514110A (en) * 2012-06-20 2014-01-15 华为技术有限公司 Cache management method and device for nonvolatile memory device
CN103514110B (en) * 2012-06-20 2016-08-24 华为技术有限公司 The buffer memory management method of non-volatile memory device and device
CN106201348A (en) * 2012-06-20 2016-12-07 华为技术有限公司 The buffer memory management method of non-volatile memory device and device
US9524245B2 (en) 2012-06-20 2016-12-20 Huawei Technologies Co., Ltd. Cache management method and apparatus for non-volatile storage device
US9727487B2 (en) 2012-06-20 2017-08-08 Huawei Technologies Co., Ltd. Cache management method and apparatus for non-volatile storage device
CN106201348B (en) * 2012-06-20 2019-08-20 华为技术有限公司 The buffer memory management method and device of non-volatile memory device
KR20190069204A (en) * 2017-12-11 2019-06-19 한국산업기술대학교산학협력단 Apparatus and method for managing memory
CN113032088A (en) * 2019-12-25 2021-06-25 阿里巴巴集团控股有限公司 Dirty page recording method and device, electronic equipment and computer readable medium
CN113032088B (en) * 2019-12-25 2023-12-22 阿里巴巴集团控股有限公司 Dirty page recording method, device, electronic equipment and computer readable medium

Also Published As

Publication number Publication date
KR100941382B1 (en) 2010-02-10

Similar Documents

Publication Publication Date Title
CN110678836B (en) Persistent memory for key value storage
CN107622022B (en) Cache over-provisioning in a data storage device
US9898200B2 (en) Memory device having a translation layer with multiple associative sectors
KR101824295B1 (en) Cache management including solid state device virtualization
EP2439645B1 (en) Method and apparatus for storing data in a multi-level cell flash memory device
US20160217071A1 (en) Cache Allocation in a Computerized System
CN102622309B (en) Data security erase method and device
KR100941382B1 (en) Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory
US20070294490A1 (en) System and Method of Updating a Memory to Maintain Even Wear
KR20100021868A (en) Buffer cache management method for flash memory device
JP4910064B2 (en) Storage control device, storage device, and data movement control method
CN110674056B (en) Garbage recovery method and device
JP5570406B2 (en) Memory controller and data recording apparatus
KR20150004949A (en) Buffer Management Apparatus And Method having three states based on Flash Memory
KR20090024971A (en) Method and apparatus for cache using sector set
KR101077901B1 (en) Apparatus and method for managing flash memory using log block level mapping algorithm
JP4130808B2 (en) Formatting method
JP6542152B2 (en) Object storage, controller and program
KR101020781B1 (en) A method for log management in flash memory-based database systems
JP2007148965A (en) Error block management method and device for flash disk device
KR100638638B1 (en) Method for controling flash memory device
KR101353967B1 (en) Data process method for reading/writing data in non-volatile memory cache having ring structure
KR100859989B1 (en) Apparatus for managing space information of flash memory and method of the same
KR100816820B1 (en) Apparatus and method for managing buffer linked with flash memory
KR101101038B1 (en) Flash memory based database management system and method for merging pages for the same

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150105

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee