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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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
Description
본 발명은 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법, 그리고 플래시 메모리의 페이지 교체 장치 및 방법에 관한 것으로, 보다 상세하게는, 낸드 플래시 메모리로부터 독출하여 읽기 동작 및 쓰기 동작이 수행된 데이터가 저장되는 페이지 버퍼의 데이터를 교체하는 장치 및 방법에 관한 것이다.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
LRU 방법을 사용하는 버퍼 관리 시스템을 사용하여 페이지 버퍼(110)에 저장된 페이지를 교체하는 경우에는 각각의 페이지가 더티인지 클린인지 여부에 관계없이 읽기 연산 또는 쓰기 연산이 수행된 후 가장 오래된 페이지를 교체 대상 데이터로 선택하여 제거한다. 이때 더티 페이지를 제거하는 경우에는 쓰기 연산에 의해 데이터가 플래시 메모리에 저장되는 과정이 필요하며, 이러한 과정이 블록 단위로 수행되므로 클린 페이지의 제거에 비해 속도가 느려져 성능이 저하된다. 이처럼 기존의 페이지 교체 기법에는 플래시 메모리의 성능을 저하시키고 수명을 단축시키는 문제가 있다.When replacing pages stored in the
본 발명이 이루고자 하는 기술적 과제는 플래시 메모리의 성능을 향상시키고 버퍼 적중률을 높이며 플래시 메모리의 수명을 연장시킬 수 있는 페이지 버퍼 관리 장치 및 그 방법을 제공하는 데 있다.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
버퍼부(210)에는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장된다. 쓰기 동작과 삭제 동작이 플래시 메모리 대해 수행되기 전에 버퍼 부(210)에 저장된 페이지 데이터에 대한 기록과 삭제가 먼저 수행된다. 플래시 메모리에 대한 페이지 데이터의 읽기 및 쓰기 동작은 페이지 단위로 이루어지며, 삭제 동작은 복수의 페이지로 구성되는 블록 단위로 이루어진다.The
버퍼 관리부(220)는 버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량(예를 들면, 버퍼 용량의 90%)에 도달하면 버퍼부(210)에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 버퍼부(210)에서 제거한다. When the amount of data stored in the
읽기 동작 또는 쓰기 동작을 수행하고자 하는 데이터가 버퍼부(210)에 저장되어 있지 않으면 플래시 메모리로부터 데이터를 독출해야 하는데, 버퍼 관리부(220)에 의해 이러한 데이터 독출 작업이 수행될 수 있다. 또한 버퍼부(220)는 버퍼부(210)에 저장된 데이터에 쓰기 작업이 수행된 경우 변경된 데이터를 다시 버퍼부(210)에 저장하며, 저장된 데이터가 제거되는 경우에는 플래시 메모리에 대해 삭제 및 쓰기 작업을 수행한다.If data to perform a read operation or a write operation is not stored in the
플래시 메모리로부터 데이터를 독출하는 작업과 플래시 메모리에 대한 삭제 및 쓰기 작업은 버퍼 관리부(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
페이지 리스트 관리부(230)는 버퍼부(210)에 저장된 페이지 단위의 데이터 중 읽기 동작이 수행된 클린 페이지에 대한 페이지 인덱스 및 클린 페이지가 속하는 블록 번호가 기록되는 클린 페이지 리스트, 그리고 쓰기 동작이 수행된 더티 페이지에 대한 페이지 인덱스 및 더티 페이지가 속하는 블록 번호가 기록되는 더티 페이지 리스트를 각각 생성하고, 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제한다.The
버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하여 버퍼 관리부(220)가 교체 대상 데이터를 선택하여 제거할 때 이를 페이지 리스트 관리부(230)에 전달하면 페이지 리스트 관리부(230)는 교체 대상 데이터에 해당하는 페이지 인덱스를 페이지 리스트로부터 삭제한다.When the amount of data stored in the
한편, 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하지 않았더라도 클린 페이지 리스트 또는 더티 페이지 리스트에 기록된 페이지 인덱스의 개수가 기준 개수에 도달하는 경우에, 페이지 리스트 관리부(230)는 교체 대상 데이터의 선택을 버퍼 관리부(220)에 요청한다. 버퍼 관리부(220)는 클린 페이지 리스트 또는 더티 페이지 리스트에 기록된 페이지 인덱스 중에서 교체 대상 데이터를 선택하며, 페이지 리스트 관리부(230)는 선택된 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제한다.On the other hand, even if the amount of data stored in the
도 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
클린 페이지 리스트(310)에는 읽기 동작이 수행된 페이지 데이터인 클린 페이지에 대한 페이지 인덱스 및 각각의 클린 페이지가 속하는 블록 번호가 기록되며, 더티 페이지 리스트(320)에는 쓰기 동작이 수행된 페이지 데이터인 더티 페이지에 대한 페이지 인덱스 및 각각의 더티 페이지가 속하는 블록 번호가 기록된다. 이때 버퍼 관리부(220)가 교체 대상 데이터를 선택하는 방법 중 하나인 LRU를 사용하는 경우, 페이지 리스트(310, 320)에는 각각의 페이지 데이터에 관한 정보가 읽기 동작 또는 쓰기 동작이 수행된 시점에 따라 순차적으로 기록된다.In the
클린 페이지 리스트(310)와 더티 페이지 리스트(320)의 크기는 기존의 LRU 방법에 의한 시스템에서 사용된 페이지 리스트의 크기를 1로 하면 더티 페이지 리스트(320)의 비율을 α(0<α<1), 클린 페이지 리스트(310)의 비율을 1-α로 정할 수 있다. 더티 페이지 리스트(320)의 크기는 임의로 정할 수 있으나, 다만 더티 페이지 리스트(320)의 크기가 지나치게 작을 경우에는 페이지 데이터의 잦은 교체가 일어나 플래시 메모리의 성능이 저하될 수 있으므로 적절한 크기로 설정하는 것이 바람직하다.The size of the
이와 같이 클린 페이지 리스트(310)와 더티 페이지 리스트(320)를 각각 별개로 생성함으로써, 종래의 페이지 리스트(120)에 기록되는 페이지 데이터와 같이 읽기 동작 또는 쓰기 동작의 수행 여부에 대한 별도의 식별 표지를 기록할 필요가 없게 된다.By generating the
페이지 리스트 관리부(230)는 이와 같은 클린 페이지 리스트(310)와 더티 페이지 리스트(320)를 생성하고, 버퍼 관리부(220)에 의해 선택된 교체 대상 데이터의 페이지 인덱스를 페이지 리스트(310, 320)에서 삭제한다.The
버퍼부(210)에 원래 저장되어 있던 데이터의 양과 플래시 메모리로부터 독출한 데이터의 양을 합한 용량이 기준 용량에 도달하면 플래시 메모리로부터 독출된 새로운 데이터를 저장할 공간이 필요하므로 저장된 페이지 데이터의 교체 작업이 수행되어야 한다. 이러한 교체 작업은 버퍼부(210)에 저장된 데이터 중에서 제거할 데이터인 교체 대상 데이터를 선택하여 제거함으로써 수행된다. 교체 대상 데이터는 종래의 버퍼 관리 기법인 FIFO, LRU, LFU 및 MFU 등을 사용하여 선택할 수 있다. 이 중에서 LRU 방법을 사용하는 경우, 버퍼 관리부(220)는 페이지 리스트(310, 320)에 기록된 페이지 데이터 중에서 읽기 동작 또는 쓰기 동작이 수행된 후 가장 오래된 페이지 데이터를 교체 대상 데이터로 선택한다.When the combined capacity of the amount of data originally stored in the
또한 버퍼 관리부(220)에 의해 선택된 교체 대상 데이터가 더티 페이지인 경우, 플래시 메모리에 대한 삭제 작업은 블록 단위로 이루어지므로 선택된 교체 대상 데이터와 동일한 블록 번호를 가지는 더티 페이지들을 함께 교체 대상 데이터로 선택하여 제거하면 플래시 메모리에 대한 삭제 및 쓰기 작업의 횟수를 줄일 수 있 다.In addition, when the replacement target data selected by the
이와 같은 페이지 교체 작업은 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하지 않은 경우에도 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 기록된 페이지 인덱스의 개수와 페이지 리스트(310, 320)에 기록될 데이터에 대한 페이지의 개수를 더한 개수가 사전에 설정된 기준 개수에 도달한 경우에도 수행될 수 있다.The page replacement operation is performed by the number of page indexes and the
읽기 동작 또는 쓰기 동작을 수행하고자 하는 데이터가 버퍼부(210)에 저장되어 있지 않아 플래시 메모리로부터 데이터를 독출해야 하는 경우에 버퍼부(210)에 저장 공간이 있으면 즉시 데이터를 저장할 수 있다. 그러나 플래시 메모리로부터 독출한 데이터에 대해 읽기 동작 또는 쓰기 동작을 수행하여 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 페이지 인덱스를 기록하고자 하는 경우, 페이지 인덱스의 기록에 의하여 페이지 리스트(310, 320)에 기록된 페이지 인덱스의 개수가 기준 개수에 도달하면 기록되어 있던 페이지 인덱스를 삭제해야 한다.When data to be read or written is not stored in the
이때 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 기록된 페이지 인덱스 중에서 교체 대상 데이터를 선택하는 과정은 버퍼 관리부(220)에 의해 수행되며, 선택 방법 또한 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하였을 때 교체 대상 데이터를 선택하는 방법과 동일하다.At this time, the process of selecting the replacement target data among the page indexes recorded in the
한편, 읽기 동작 또는 쓰기 동작을 수행하고자 하는 데이터가 버퍼부(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
쓰기 동작을 수행하고자 하는 페이지 데이터가 이미 버퍼부(210)에 저장되어 있는 경우, 저장된 페이지 데이터가 더티 페이지 리스트(320)에 기록되어 있다면 페이지 데이터에 쓰기 작업이 수행된 후 더티 페이지 리스트(320) 내에서 위치만 이동시켜 기록하면 된다. 그러나 쓰기 작업을 수행하고자 하는 페이지 데이터가 클린 페이지에 해당되는 경우에는 해당 페이지 데이터가 더티 페이지로 바뀌게 되므로 클린 페이지 리스트(310)로부터 더티 페이지 리스트(320)로 페이지 데이터의 정보를 이동시켜야 한다. 이를 위해서 페이지 리스트 관리부(230)는 쓰기 동작이 수행된 클린 페이지에 대한 페이지 인덱스를 클린 페이지 리스트(310)로부터 삭제하고, 더티 페이지 리스트(320)에 추가한다.If the page data to be written is already stored in the
이때 페이지 인덱스의 이동에 의해 더티 페이지 리스트(320)에 저장된 페이지 인덱스의 개수가 사전에 설정된 기준 개수에 도달하면 이후에 기록될 페이지 데이터를 위하여 더티 페이지 리스트(320)에 저장된 더티 페이지 중에서 교체 대상 데이터를 선택하여 제거하여야 한다. 기존의 버퍼 관리 기법 중에서 LRU 방법을 사용하게 되면 쓰기 작업이 수행된 후 가장 오래된 더티 페이지가 교체 대상 데이터로 선택되며, 이 경우에도 선택된 교체 대상 데이터와 동일한 블록 번호를 가지는 더티 페이지들을 함께 교체 대상 데이터로 선택하여 제거함으로써, 플래시 메모리 의 성능을 향상시킬 수 있다.In this case, when the number of page indexes stored in the
도 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
또한 버퍼부(210)에 데이터를 저장하는 작업은 버퍼 관리부(220)가 아닌 메모리 구동부(미도시)와 같은 별도의 장치에 의해 수행될 수도 있다. 이러한 경우 메모리 구동부(미도시)는 변경된 데이터를 플래시 메모리에 저장하거나 플래시 메모리로부터 데이터를 독출하여 버퍼부(210)에 저장하는 역할을 수행하게 된다.In addition, the operation of storing data in the
버퍼부(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
페이지 리스트 관리부(230)는 버퍼부(210)에 저장된 페이지 단위의 데이터에 쓰기 동작이 수행되었는지 검사하고(S440), 버퍼부(210)에 저장된 데이터의 양이 기준 용량에 도달하지 않았더라도 클린 페이지 리스트(310) 또는 더티 페이지 리스트(320)에 원래 기록되어 있던 페이지 인덱스의 개수와 플래시 메모리로부터 독출한 데이터의 페이지 개수를 합한 개수가 사전에 설정된 기준 개수에 도달하면 버퍼 관리부(220)에 의해 교체 대상 페이지가 선택된다. The
버퍼부(210)에 저장된 데이터에 수행된 동작이 읽기 동작이고, 클린 페이지 리스트에 기록된 페이지 인덱스의 개수가 기준 개수에 도달한 경우에는(S450) 클린 페이지 리스트에 기록된 데이터 중에서 교체 대상 데이터가 선택되어 제거된다(S455). 또한 버퍼부(210)에 저장된 데이터에 수행된 동작이 쓰기 동작이고, 더 티 페이지 리스트에 기록된 페이지 인덱스의 개수가 기준 개수에 도달한 경우에는(S445) 더티 페이지 리스트에 기록된 데이터 중에서 교체 대상 데이터가 선택되어 제거된다. 교체 대상 데이터가 더티 페이지인 경우에는 위에 언급한 바와 같이 선택된 교체 대상 데이터와 동일한 블록에 속하는 더티 페이지를 함께 교체 대상 데이터로 선택하여 제거함으로써 플래시 메모리의 성능을 향상시킬 수 있다(S430).If the operation performed on the data stored in the
한편, 플래시 메모리로부터 독출한 데이터를 버퍼부(210)에 저장한 후 읽기 동작 또는 쓰기 동작을 수행하여 페이지 리스트(310, 320)에 기록하지 않고 데이터를 버퍼부(210)에 저장함과 동시에 클린 페이지 리스트(310)에 기록하는 것도 가능하다. 이러한 경우에는 클린 페이지 리스트(310)에 기록된 데이터에 대해 읽기 동작 또는 쓰기 동작이 수행되며, 쓰기 동작이 수행되면 클린 페이지 리스트(310)에서 더티 페이지 리스트(320)로 페이지 인덱스가 이동된다.On the other hand, after storing the data read from the flash memory in the
작업을 수행하고자 하는 데이터가 이미 버퍼부(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
클린 페이지 리스트(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
도 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
버퍼부(210)에는 플래시 메모리로부터 독출된 페이지 단위로 이루어진 데이터가 저장된다. 본 발명에 따른 페이지 버퍼 관리 장치와 마찬가지로 쓰기 동작과 삭제 동작이 플래시 메모리의 페이지에 대해 수행되기 전에 버퍼부(210)에 저장된 페이지 데이터에 대한 기록과 삭제가 먼저 수행된다.The
버퍼 관리부(220) 역시 본 발명에 따른 페이지 버퍼 관리 장치에서 사용된 버퍼 관리부(220)가 사용될 수 있으며, 버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 버퍼부(210)에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택하여 버퍼부(210)에서 제거한다. 이 경우에도 별도로 구비된 메모리 구동부(미도시)에 의해 플래시 메모리로부터 데이터를 독출하는 작업과 플래시 메모리에 대한 삭제 및 쓰기 작업이 수행될 수 있다.The
또한 페이지 교체부(510)는 버퍼부(210)에 저장된 페이지 단위의 데이터에 대한 페이지 인덱스, 각각의 페이지가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그가 기록되는 페이지 리스트를 생성하여 교체 대상 데이터에 해당하는 페이지 인덱스를 삭제한다.In addition, the
여기서 페이지 교체부(510)에 의해 생성되는 페이지 리스트는 도 1에 도시된 페이지 리스트(120)와 동일하며, 읽기 동작 또는 쓰기 동작의 수행 여부에 관계없이 하나의 리스트에 읽기 동작 또는 쓰기 동작이 수행된 시점에 따라 순차적으로 페이지 인덱스를 기록한다. 따라서 버퍼 관리부(220)에 의해 교체 대상 데이터가 선택될 때 종래의 버퍼 관리 기법 중 LRU 방법을 사용하는 경우에는 페이지 데이터에 수행된 동작의 종류에 관계없이 읽기 동작 또는 쓰기 동작이 수행된 후 가장 오래된 페이지가 교체 대상 데이터로 선택된다.Here, the page list generated by the
버퍼 관리부(220)는 쓰기 동작이 수행된 데이터가 교체 대상 데이터로 선택된 경우에는 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택한다. 쓰기 동작이 수행된 데이터를 제 거하는 경우에는 플래시 메모리에 대해 삭제 및 쓰기 작업이 수행된다. 이때 삭제 작업은 페이지 단위가 아닌 블록 단위로 이루어지므로 동일한 블록에 속하는 페이지를 한꺼번에 제거하면 플래시 메모리에 대한 삭제 및 쓰기 작업의 횟수를 감소시킬 수 있어 플래시 메모리의 성능이 향상된다.When the data on which the write operation is performed is selected as the replacement target data, the
도 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
요청된 데이터가 버퍼부(210)에 저장되어 있지 않으면 버퍼 관리부(220)는 플래시 메모리로부터 데이터를 독출하여 버퍼부(210)에 저장하여야 한다. 버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하지 않은 경우에는(S625) 새로 독출한 데이터의 저장 공간이 남아 있으므로 읽기 동작 또는 쓰기 동작이 수행된 데이터를 버퍼부(210)에 저장한다. 또한 페이지 교체부(510)는 버퍼 부(210)에 저장된 데이터에 대한 페이지 인덱스, 데이터가 속하는 블록 번호 및 읽기 동작 또는 쓰기 동작의 수행 여부를 나타내는 플래그를 페이지 리스트(120)에 기록한다(S630).If the requested data is not stored in the
버퍼부(210)에 저장된 데이터의 양이 사전에 설정된 기준 용량에 도달하면 버퍼 관리부(220)는 새로 독출한 데이터의 저장 공간을 확보하기 위해 버퍼부(210)에 저장된 페이지 단위의 데이터 중에서 교체 대상 데이터를 선택한다(S635). 이때 쓰기 동작이 수행된 데이터 중에서 교체 대상 데이터를 선택한 경우에는(S640) 선택된 교체 대상 데이터와 동일한 블록 번호를 가지는 페이지 단위로 이루어진 데이터를 함께 교체 대상 데이터로 선택한다(S645). 쓰기 동작이 수행된 데이터를 제거할 때 플래시 메모리에 대해 삭제 및 쓰기 작업이 수행되는데, 삭제 작업이 블록 단위로 이루어지므로 교체 대상 데이터를 블록 단위로 선택하여 제거하면 삭제 및 쓰기 작업의 횟수를 줄여 플래시 메모리의 성능을 향상시킬 수 있다. 읽기 동작이 수행된 데이터 중에서 교체 대상 데이터를 선택한 경우에는 추가로 교체 대상 데이터를 선택할 필요가 없으며, 버퍼 관리부(220)는 선택된 교체 대상 데이터를 버퍼부(210)에서 제거하고 페이지 교체부(510)는 교체 대상 데이터의 페이지 인덱스를 삭제한다(S650). 이러한 교체 대상 데이터의 제거 과정에 의해 저장 공간이 확보되면, 버퍼 관리부(220)는 독출한 데이터를 버퍼부(210)에 저장하고 페이지 교체부(510)는 데이터의 페이지 인덱스를 페이지 리스트(120)에 기록한다(S630).When the amount of data stored in the
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 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)
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)
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)
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)
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 |
-
2008
- 2008-07-10 KR KR1020080066826A patent/KR100941382B1/en not_active IP Right Cessation
Cited By (11)
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 |