KR100941423B1 - Method For Allocating a Page of a Memory and a Computer-readable Recording Medium For Program Which Accomplishes Thereof - Google Patents
Method For Allocating a Page of a Memory and a Computer-readable Recording Medium For Program Which Accomplishes Thereof Download PDFInfo
- Publication number
- KR100941423B1 KR100941423B1 KR1020080015857A KR20080015857A KR100941423B1 KR 100941423 B1 KR100941423 B1 KR 100941423B1 KR 1020080015857 A KR1020080015857 A KR 1020080015857A KR 20080015857 A KR20080015857 A KR 20080015857A KR 100941423 B1 KR100941423 B1 KR 100941423B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- block
- window
- logical page
- update
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
Abstract
논리 페이지에 대한 업데이트 정보를 가지는 윈도우 정보로써 메모리의 페이지를 할당하는 본 발명의 일 실시예에 따른 메모리의 페이지 할당 방법은, 물리 페이지(Physical Page)로써 구성되는 복수의 블록(Block)을 포함하는 메모리의 페이지 할당 방법에 있어서, 상기 복수의 블록을 제1 블록 및 제2 블록으로 구분하는 단계; 특정 논리 페이지에 대한 업데이트 요청을 수신하면, 상기 특정 논리 페이지의 업데이트 횟수를 산출하는 단계; 및 상기 업데이트 요청에 상응하여 업데이트되는 특정 논리 페이지에 대해, 상기 산출된 업데이트 횟수에 따라 상기 제2 블록의 물리 페이지 할당 여부를 결정하는 단계를 포함하는 것을 특징으로 한다.A page allocation method of a memory according to an embodiment of the present invention, which allocates a page of memory as window information having update information on a logical page, includes a plurality of blocks configured as physical pages. A page allocation method of a memory, the method comprising: dividing the plurality of blocks into a first block and a second block; Calculating an update number of the specific logical page when receiving a request for updating a specific logical page; And for a specific logical page updated according to the update request, determining whether to allocate a physical page of the second block according to the calculated update number.
논리 페이지, 물리 페이지, 업데이트 Logical page, physical page, update
Description
본 발명은 메모리의 페이지 할당 방법 및 이를 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로서 보다 상세하게는 논리 페이지에 대한 업데이트 정보를 가지는 윈도우 정보로써 메모리의 페이지를 할당하는 방법 및 이를 위한 프로그램이 기록된 기록 매체에 관한 것이다.The present invention relates to a method of allocating a page of a memory and a computer-readable recording medium having a program for performing the same. More specifically, the method of allocating a page of a memory as window information having update information on a logical page and the same And a recording medium having recorded thereon a program.
일반적으로 낸드 플래시 메모리는 복수의 블록(Block)과 블록을 구성하는 복수의 페이지(Page)로서 구분된다. 파일(File)은 복수의 페이지에 저장될 수 있고, 하나의 파일이 복수의 블록에 존재하거나 한 블록에 복수의 파일이 저장될 수 있다.In general, NAND flash memories are divided into a plurality of blocks and a plurality of pages constituting the blocks. The file may be stored in a plurality of pages, one file may exist in a plurality of blocks, or a plurality of files may be stored in one block.
도 1의 일반적인 낸드 플래시 메모리(102)의 구조를 나타낸 도면으로서, 한 블록(106)이 32개의 페이지(104)로 구성되고, 각 페이지(104)는 512바이트의 데이터 영역과 16바이트의 스페어 영역을 가진다. 전체 낸드 플래시 메모리(102)는 4096개의 블록(106)으로 이루어 지고, 각 블록(106)은 32개의 528바이트 크기의 페 이지(104)로 이루어지므로 66메가 바이트(528메가 비트)의 크기를 가진다.1 is a
그런데, 낸드 플래시 메모리는 기존 저장 매체와 구별되는 다음의 제한 사항들을 가진다. 첫째, 덮어 쓰기를 하기 위해서는 삭제 연산이 선행 되어야 하고, 둘째, 삭제 연산과 읽기, 쓰기 연산의 단위가 다르다. 셋째, 삭제 연산이 다른 연산에 비해 느리고 전력 소비가 크며, 넷째, 각 블록마다 삭제 연산의 횟수가 제한된다.However, NAND flash memory has the following limitations that are distinguished from existing storage media. First, in order to overwrite, delete operation must be preceded. Second, delete operations are different from read and write operations. Third, the erase operation is slower and consumes more power than other operations. Fourth, the number of erase operations is limited for each block.
상술한 제한 사항을 극복하기 위해 LFS(Log-structured File System)에서는 덮어 쓰기 연산을 추가 연산으로 변형하여 처리하는 외부 갱신 기법을 사용한다. 이것은 수정된 데이터를 다른 빈 영역에 쓰고, 기존 데이터를 무효화시킴으로써, 덮어 쓰기 시에 선행되어야 할 삭제 연산을 제거한다. 그러나 그 과정에서 생긴 무효화 데이터들을 회수하여 다시 쓰기 가능한 상태로 전환하는 블록 클리닝이 요구되고, 그 블록 클리닝 비용 및 횟수를 줄이는 것이 파일 시스템의 성능에 큰 영향을 미친다.To overcome the above limitations, the Log-structured File System (LFS) uses an external update technique that transforms the overwrite operation into an additional operation. This writes the modified data to another free area and invalidates the existing data, eliminating the delete operation that must be preceded by the overwrite. However, block cleaning is required to recover invalidated data generated in the process and convert the data into a rewritable state. Reducing the cost and the number of block cleaning greatly affects the performance of the file system.
블록 클리닝은 먼저 삭제할 희생 블록을 선택하고, 그 블록의 유효 데이터들을 다른 블록에 재복사한 후, 그 블록을 삭제하는 순서로 이루어 진다.Block cleaning is performed by first selecting a victim block to be deleted, copying valid data of the block to another block, and then deleting the block.
그런데, 업데이트된 논리 페이지를 위해 다른 물리 페이지를 할당하고, 기존 물리 페이지를 무효화는 과정에서 일반적인 방법은 물리 페이지를 순차적으로 할당하여, 유효 페이지와 무효 페이지가 메모리의 전 영에 걸쳐 퍼져 있게 된다. 따라서, 블록 클리닝 시에 무효 페이지들이 존재하는 블록을 희생 블록으로 선택한다면 블록 클리닝을 위한 읽고, 쓰는 시간이 크다는 문제점이 있었다.However, in the process of allocating another physical page for the updated logical page and invalidating the existing physical page, the general method allocates the physical pages sequentially so that the valid and invalid pages are spread over the entire memory. Therefore, if a block containing invalid pages is selected as a victim block during block cleaning, there is a problem in that a read and write time for block cleaning is large.
또한, 블록 클리닝 시에 유효 페이지가 많은 블록을 희생 블록으로 선택한다면, 블록 클리닝으로 회수되어 사용할 수 있는 물리 페이지가 적어, 블록 삭제 횟수가 많아 진다는 문제점이 있었다. In addition, if a block having a large number of valid pages is selected as a victim block during block cleaning, there is a problem that fewer physical pages can be recovered and used by block cleaning, thereby increasing the number of block deletions.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 업데이트된 논리 페이지에 대해 효율적으로 물리 페이지를 할당하여 블록 클리닝을 위한 비용이 적은 메모리의 페이지 할당 방법을 제공하는 것을 기술적 과제로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problem, and an object of the present invention is to provide a method of allocating a physical page to an updated logical page so as to provide a low cost memory page allocation method for block cleaning.
또한, 본 발명은 블록 클리닝 이후에 회수되는 물리 페이지가 많아 블록 삭제 횟수가 적은 메모리의 페이지 할당 방법을 제공하는 것을 다른 기술적 과제로 한다.Another object of the present invention is to provide a method of allocating a page of a memory having a large number of physical pages recovered after block cleaning and having a low number of block deletions.
상술한 목적을 달성하기 위한 본 발명의 일 측면에 따른 메모리의 페이지 할당 방법은 물리 페이지(Physical Page)로써 구성되는 복수의 블록(Block)을 포함하는 메모리의 페이지 할당 방법에 있어서, 상기 복수의 블록을 제1 블록 및 제2 블록으로 구분하는 단계; 특정 논리 페이지에 대한 업데이트 요청을 수신하면, 상기 특정 논리 페이지의 업데이트 횟수를 산출하는 단계; 및 상기 업데이트 요청에 상응하여 업데이트되는 특정 논리 페이지에 대해, 상기 산출된 업데이트 횟수에 따라 상기 제2 블록의 물리 페이지 할당 여부를 결정하는 단계를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method of allocating a page of a memory, the method comprising: a plurality of blocks configured as physical pages, wherein the plurality of blocks are allocated. Dividing the into a first block and a second block; Calculating an update number of the specific logical page when receiving a request for updating a specific logical page; And for a specific logical page updated according to the update request, determining whether to allocate a physical page of the second block according to the calculated update number.
상술한 바와 같이 본 발명에 따르면, 자주 업데이트 되는 핫 페이지(Hot Page)를 다른 블록에 위치시킴으로써 블록 클리닝 시에 삭제할 블록의 유효 페이지를 최대한 감소시켜 전체적인 블록 클리닝 비용을 감소시킬 수 있는 메모리의 페이지 할당 방법을 구현하는 효과가 있다.As described above, according to the present invention, by allocating hot pages that are frequently updated to other blocks, page allocation of a memory capable of reducing the overall block cleaning cost by reducing the effective pages of blocks to be deleted at the time of block cleaning as much as possible. It is effective to implement the method.
또한, 본 발명에 따르면, 블록 클리닝 시 많은 무효 페이지가 회수되어 사용할 수 있는 물리 페이지를 증가시킴으로써, 블록 삭제 횟수가 적고 가비지 콜렉션(Garbage Collection)이 적게 수행되게 하는 메모리의 페이지 할당 방법을 구현하는 다른 효과가 있다.In addition, according to the present invention, by increasing the number of physical pages that can be used to recover a large number of invalid pages when cleaning the block, another method for implementing a page allocation method of the memory to reduce the number of block deletions and to reduce garbage collection (Garbage Collection) It works.
본 발명의 실시예에 대한 상세한 설명을 하기 이전에 도 2를 참조하여 파일의 수정에 따른 플래시 메모리의 일반적인 페이지(Page) 할당 방법, 가비지 콜렉션(Garbage Collection), 및 블록 클리닝(Block Cleaning)에 대해 간략히 설명한다.Before describing the embodiments of the present invention, a general page allocation method, garbage collection, and block cleaning of a flash memory according to modification of a file will be described with reference to FIG. 2. Briefly explain.
도 2는 파일 수정 후, 일반적인 페이지 할당 방법에 따른 메모리의 상태를 나타낸 도면이다. 일 예를 낸드 플래시 전용 파일 시스템인 YAFFS(Yet Another Flash File System)으로써 설명한다.2 is a diagram illustrating a state of a memory according to a general page allocation method after file modification. An example is described as a YETFS (Yet Another Flash File System), which is a NAND flash-only file system.
YAFFS에서는 파일 시스템이 마운트된 이후 파일이 처음 생성되면, 메모리에서 파일의 정보를 저장할 yaffs_Object와 파일의 위치를 저장할 yaffs_Tnode를 할당 받는다. 그리고, 페이지 할당 정책에 의해 자유 페이지를 할당 받아 실제 데이 터를 쓰고, 그 페이지의 물리 주소를 yaffs_Tnode에 기록한다. 따라서, yaffs_Object에 파일의 논리 페이지 주소가 저장되고 yaffs_Tnode 트리(Tree)를 사용하여 물리 페이지 주소를 찾게 된다. In YAFFS, when a file is first created after the file system is mounted, it is assigned a yaffs_Object to store the file's information in memory and a yaffs_Tnode to store the file's location. The free page is allocated according to the page allocation policy, the actual data is written, and the physical address of the page is recorded in yaffs_Tnode. Therefore, the logical page address of the file is stored in yaffs_Object, and the physical page address is found using the yaffs_Tnode tree.
또한, 파일의 크기, 데이터 페이지 개수, 파일의 생성 및 수정 시간들의 파일의 정보를 yaffs_Object에 업데이트하고, 그것을 바탕으로 yaffs_ObjectHeader의 내용을 구성하여 자유 페이지를 할당 받아 플래시 메모리에 기록한다.In addition, the file information of the file size, number of data pages, file creation and modification times is updated to yaffs_Object, and based on the content of the yaffs_ObjectHeader, the free pages are allocated and recorded in the flash memory.
파일의 데이터 중 일부가 수정되면, 먼저 자유 페이지가 할당되고, 수정된 데이터는 할당된 자유 페이지에 기록된다. 그 다음 이전 데이터가 저장된 페이지를 무효 페이지로 만든다. 그리고 논리 주소로 Tnode 트리를 검색하여 수정된 데이터가 저장된 페이지의 물리 주소를 업데이트 한다. 따라서, 파일의 데이터 중 일부가 수정된다는 것은 파일을 구성하는 페이지들 중 업데이트 대상인 페이지가 무효 페이지로 바뀌고, 새롭게 할당된 자유 페이지에 업데이트된 데이터가 저장됨을 의미한다.When some of the data in the file is modified, a free page is first allocated, and the modified data is written to the allocated free page. It then makes the page that stored the old data invalid. It searches the Tnode tree by the logical address and updates the physical address of the page where the modified data is stored. Therefore, when some of the data of the file is modified, the page to be updated among the pages constituting the file is changed to an invalid page, and the updated data is stored in the newly allocated free page.
도 2의 메모리 구조에는 5개의 페이지를 구성 요소로 포함하는 블록이 5개 존재하고, A파일, B파일, C파일, 및 D파일이 저장되어 있다. 페이지 A1, A2 및 A3은 A파일을 구성하고, 마찬가지 방식으로 나머지 파일이 구성된다. A1(202), A2, A3, B1(206) 및 B2가 첫 번째 블록을 구성하며, 마찬가지 방식으로 한 페이지 열(Column)이 한 블록이 되어, 나머지 블록이 구성된다.In the memory structure of FIG. 2, there are five blocks including five pages as components, and A files, B files, C files, and D files are stored. Pages A1, A2, and A3 constitute an A file, and in the same manner, the remaining files are organized. A1 202, A2, A3, B1 206, and B2 constitute the first block, and in the same manner, one page column becomes one block, and the remaining blocks are constituted.
A파일의 A1에 대한 업데이트 요청이 수신되면, 기존의 A1은 무효 페이지 A1(202)로 변환되고, 새로운 자유 페이지가 할당되어 업데이트된 데이터는 유효 페 이지 A1(204)에 저장된다. 마찬가지 방식으로 무효 페이지 B1(206) 및 유효 페이지 B1(208)이 생성된다.When an update request for A1 of the A file is received, the existing A1 is converted into an invalid page A1 202, a new free page is allocated, and the updated data is stored in the valid page A1 204. Similarly, invalid page B1 206 and valid page B1 208 are generated.
그런데, 도 2에서는 A1, B1 및 C1의 업데이트를 위해 세 번째 블록에서 D3의 다음에 위치하는 자유 페이지들이 순차적으로 할당된 것을 확인할 수 있다. 따라서, 페이지들에 대한 업데이트가 계속 진행됨에 따라 A1(202) 및 B1(206)과 같은 무효 페이지들이 플래시 메모리의 전 영역에 흩어져 존재하게 된다.However, in FIG. 2, it can be seen that free pages located after D3 are sequentially allocated in the third block for updating A1, B1, and C1. Thus, as the updates to the pages continue, invalid pages such as A1 202 and B1 206 are scattered over the entire area of the flash memory.
이로 인해, 사용할 수 있는 자유 블록의 개수가 점점 줄어 들게 된다. 그래서 데이터를 저장할 공간이 부족하게 되면, 가비지 콜렉션을 수행하여, 지움 정책에 의해 희생 블록을 선택하여 그것을 지움으로써 공간을 확보한다As a result, the number of free blocks that can be used decreases. Thus, when there is not enough space to store data, garbage collection is performed to free up space by selecting victim blocks and erasing them by the erase policy.
상기 희생 블록을 선택하여 지움으로써 공간을 확보하는 것을 블록 클리닝이라 하며, 일 예로 도 2에서는 블록 클리닝을 위한 희생 블록으로서 두 번째 블록(210)이 선택되었다. 이하, 도 3을 참조하여, 일반적인 블록 클리닝 이후의 메모리의 상태를 설명하겠다.Securing space by selecting and deleting the sacrificial block is called block cleaning. In FIG. 2, the
도 3를 참조하면, 두 번째 블록(302)의 페이지들은 클리닝되어 자유 페이지들로 변환되었고, 네 번째 블록의 B3(304), B4(306) 및 C2(308)는 이전의 두 번째 블록(210)에 포함된 B3, B4, 및 C2의 데이터가 블록 클리닝에 의해 새롭게 할당된 자유 페이지에 쓰여 져 생성된 것이다. Referring to FIG. 3, the pages of the
도 2 및 도 3에 나타난 일반적인 페이지 할당 방법은 블록 클리닝 시에 많은 비용을 요구한다. 즉, 두 번째 블록(302)의 블록 클리닝 시에 B3(304), B4(306) 및 C2(308)를 생성하기 위해 세 번의 읽기와 세 번의 쓰기를 수행하고, 한 번의 블록 삭제 시간이 필요하게 된다.The general page allocation method shown in FIGS. 2 and 3 requires a large cost in block cleaning. That is, three reads and three writes are performed to generate
이하 첨부된 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 4는 본 발명의 일 실시예에 따른 페이지 할당 방법으로써 파일이 수정된 후, 메모리의 상태를 나타낸 도면이다.4 is a diagram illustrating a state of a memory after a file is modified by the page allocation method according to an exemplary embodiment of the present invention.
도시된 바와 같이, 본 발명의 일 실시예에 따른 할당 방법에서는 유효, 무효 페이지가 분리되어 존재 한다. 그 분리 방법은 논리 페이지가 업데이트 횟수가 많은 핫 페이지(Hot Page: A1,A2,A3,A4)인 경우, 해당 물리 페이지들을 핫 페이지를 위한 블록(402)에 할당하는 것이다.As shown, in the allocation method according to an embodiment of the present invention, valid and invalid pages are separated. The separation method is to allocate the corresponding physical pages to the
도 4를 참조하면, 파일 A, B, C 및 D의 논리 페이지인 A1, B1, C1 및 D1이 자주 업데이트 되는 핫 페이지인 경우, 업데이트 시 A1, B1, C1, 및 D1의 물리 페이지인 유효 페이지 A1(404), B1(406), C1(408) 및 D1(410)은 핫 페이지를 위한 블록(402)에 저장된다. 이 경우, 업데이트되기 이전의 A1, B1, C1, 및 D1의 물리 페이지들은 무효 페이지 A1, B1, C1 및 D1으로 변환된다.Referring to FIG. 4, when the logical pages A1, B1, C1, and D1 of the files A, B, C, and D are frequently updated hot pages, a valid page that is a physical page of A1, B1, C1, and D1 at the time of updating A1 404, B1 406,
이 경우, 무효 페이지들이 존재하는 영역의 블록(412)을 희생 블록(412)으로 선택한다면 상대적으로 희생 블록(412)에 포함된 유효 페이지가 적고, 무효 페이지는 많기 때문에 도 2 및 도 3을 통해 전술한 일반적인 경우보다 더 적은 비용으로 더 많은 페이지를 회수할 수 있다. 블록 클리닝 시에 기존 방식은 [3*(페이지 읽기 시간+페이지 쓰기 시간)+블록 삭제 시간]의 비용이 드는 반면, 본 발명의 일 실시예에 따른 방식은 [1*(페이지 읽기 시간 +페이지 쓰기 시간)+ 블록 삭제 시간]의 상대적으로 적은 비용이 든다. In this case, if the
도 5는 본 발명의 일 실시에 따른 페이지 할당 방법으로써 파일이 수정된 후, 블록 클리닝이 끝난 메모리의 상태를 나타낸 도면이다.FIG. 5 is a diagram illustrating a state of a block cleaning finished after a file is modified using the page allocation method according to an exemplary embodiment of the present invention.
도 5를 참조하면, 블록 클리닝이 끝난 블록(502)의 페이지들이 모두 자유 페이지로 전환되어 있다. 또한, 블록 클리닝 시 선택된 블록(412)의 A1은 핫 페이지를 위한 블록(402)의 물리 페이지를 할당 받고, 해당 물리 페이지에 저장된다. 따라서, 다섯 번째 블록의 유효 페이지 A1(504)가 생성되게 된다.Referring to FIG. 5, all pages of the
결국, 도 2 및 도 3의 일반적인 경우와는 다르게, 블록 클리닝 시 유효 페이지 A1(504)만이 생성되므로, 블록 삭제 시간 외에 1번의 읽기와 1번의 쓰기 시간만이 소요됨을 알 수 있다.As a result, unlike the general case of FIGS. 2 and 3, since only the
도 4 및 도 5에 의하면, 현재 사용할 수 있는 자유 페이지의 개수가 일반적인 방법에서는 11이고, 본 발명에 따른 일 실시예에서는 13이다. 왜냐하면 제안된 기법이 블록 클리닝 이후에 회수된 페이지가 많기 때문이다. 4 and 5, the number of free pages currently available is 11 in the general method and 13 in one embodiment according to the present invention. This is because the proposed scheme has many pages recovered after block cleaning.
가비지 콜렉션은 사용할 수 있는 영역이 미리 정의된 임계값 이하로 내려 갈 경우에 실행되어 자유 페이지 영역이 확보된다. 그러므로 본 발명의 일 실시예에서는 상대적으로 많은 무효 페이지가 회수되어 사용할 수 있는 영역이 더 많으므로, 가비지 콜렉션이 덜 수행되게 된고, 그로 인해 블록 삭제 횟수가 적어 진다.Garbage collection is executed when the available area falls below a predefined threshold to ensure free page area. Therefore, in one embodiment of the present invention, since a relatively large number of invalid pages are retrieved and have more areas available, less garbage collection is performed, thereby reducing the number of block deletions.
따라서 본 발명에서는 자주 업데이트 되는 핫 페이지를 다른 블록에 위치시킴으로써 블록 클리닝 시에 삭제할 블록의 유효 페이지를 최대한 감소시켜 전체적인 블록 클리닝 비용을 감소 시키고 블록 삭제 횟수를 감소시키는 효과가 있다.Therefore, in the present invention, by placing hot pages that are frequently updated in other blocks, the effective pages of blocks to be deleted during block cleaning are reduced as much as possible, thereby reducing the overall block cleaning cost and reducing the number of block deletions.
한편, 본 발명의 일 실시예에서는 업데이트 되는 논리 페이지가 핫 페이지인 지 판단하기 위해, 논리 페이지의 업데이트 정보를 가지는 윈도우 및 윈도우들의 집합인 윈도우 리스트를 사용한다. 일 실시예에 있어서, 윈도우는 RAM에 생성되거나 플래시 메모리에 생성될 수 있다.Meanwhile, in an embodiment of the present invention, in order to determine whether a logical page to be updated is a hot page, a window having a window and a list of windows having update information of the logical page is used. In one embodiment, the window may be created in RAM or in flash memory.
도 6a는 본 발명의 일 실시예에 따른 논리 페이지의 업데이트 정보를 저장하기 위해 사용되는 윈도우 구조체를 나타내는 도면이다.FIG. 6A is a diagram illustrating a window structure used to store update information of a logical page according to an embodiment of the present invention. FIG.
도 6a를 참조하면, chunkInInode는 업데이트 되는 논리 페이지 번호를 저장하며, update_cnt는 업데이트 된 횟수를 저장하고, Link는 윈도우 리스트를 만들기 위한 링크로서 사용된다.Referring to FIG. 6A, chunkInInode stores a logical page number to be updated, update_cnt stores the number of updates, and Link is used as a link for creating a window list.
도 6b는 본 발명의 일 실시예에 따른 윈도우 리스트를 나타내는 도면으로서, 특정 파일의 논리 페이지가 논리 페이지 번호 3, 4, 6, 8, 1, 18, 14, 15의 순서로 업데이트 되면서 생성된 윈도우 리스트를 나타낸다.FIG. 6B is a diagram illustrating a window list according to an embodiment of the present invention, wherein a window generated while a logical page of a specific file is updated in the order of
윈도우 리스트는 미리 정의된 최대 개수(MAX_WINDOW_SIZE)이하의 윈도우로 구성되며, 파일 당 하나이다. 윈도우의 개수(윈도우 사이즈)가 최대일 경우 새로운 논리 페이지를 위한 윈도우를 할당하기 위해 업데이트 카운트가 가장 적은 윈도우 중에, 가장 오래된 윈도우를 희생 윈도우로 선택하여 삭제한 후에 새로운 윈도우를 추가 시킨다. 그리고 윈도우들의 업데이트 횟수의 총합이 미리 정의된 최대 횟수(MAX_TOTAL_UPDATE _CNT)이상이 되면 윈도우 리스트를 초기화 시킨다.The window list consists of windows less than or equal to the predefined maximum number (MAX_WINDOW_SIZE), one per file. If the number of windows (window size) is the maximum, in order to allocate a window for a new logical page, among the windows with the least update count, the oldest window is selected as the victim window and the new window is added. The window list is initialized when the total sum of the update counts of the windows exceeds the predefined maximum number of times (MAX_TOTAL_UPDATE_CNT).
도 6b를 참조하면, 윈도우는 파일 생성과 동시에 생성되는 메인 윈도우(602)와 페이지가 업데이트되는 경우 생성되어 윈도우 리스트에 추가되는 서브 윈도우들(604,606)로 구분될 수 있다.Referring to FIG. 6B, a window may be divided into a
메인 윈도우(602)의 windows_head를 통해 서브 윈도우들이 연결되고, windows_size에는 서브 윈도우의 수를, total_update_cnt에는 윈도우 리스트를 구성하고 있는 서브 윈도우들의 업데이트 횟수의 합을 저장하며, 각각 윈도우 리스트의 평균 업데이트 횟수를 계산할 때 사용된다.The subwindows are connected through the windows_head of the
도시된 바와 같이, 논리 페이지 번호 3에 해당하는 페이지가 업데이트 되면, 해당 서브 윈도우(604)가 생성되고, 메인 윈도우(602)에 링크된다. 상기 서브 윈도우(604)의 chunkInInode(608)에는 논리 페이지 번호인 3이 저장되고, update_cnt(610)에는 1번 업데이트되는 것이므로 1이 저장된다.As shown, when a page corresponding to
다음으로, 논리 페이지 주소 4에 해당하는 페이지가 업데이트 되면, 해당 서브 윈도우(606)가 생성되고, 논리 페이지 번호 3의 서브 윈도우(604)에 링크된다.Next, when the page corresponding to
마찬가지로, 논리 페이지 번호 6, 7, 1, 18에 대해서도 업데이트 시마다 해당 윈도우가 생성된다.Similarly, the corresponding window is generated for each
도 6b의 윈도우 리스트에서는 메인 윈도우(602)의 windows_size는 6이고, total_update_cnt는 6이다.In the window list of FIG. 6B, windows_size of the
또한, 윈도우 리스트의 평균 업데이트 횟수(avg_update_cnt)는 1(=total_update_cnt/windows_size)이다.In addition, the average update count (avg_update_cnt) of the window list is 1 (= total_update_cnt / windows_size).
본 발명의 일 실시예에서는 업데이트되는 논리 페이지가 핫 페이지인지 판단하기 위해 상기 윈도우 리스트를 사용한다. 그리고, 핫 페이지로 판단되면 업데이트될 핫 페이지를 위해, 핫 페이지를 위한 블록(이하 ‘핫 블록’한다)의 물리 페이지를 할당한다. 반대의 경우에 일반 블록의 물리 페이지를 할당한다.In one embodiment of the present invention, the window list is used to determine whether the updated logical page is a hot page. If it is determined as a hot page, a physical page of a block for the hot page (hereinafter referred to as a 'hot block') is allocated to the hot page to be updated. In the opposite case, the physical page of the general block is allocated.
일 예로, 업데이트되는 논리 페이지가 번호 3에 해당하고, 이미 윈도우 리스트에 해당 윈도우가 존재하면, 핫 페이지인지 판단하는 방법은 업데이트 대상인 논리 페이지의 update_cnt(610)에서 획득한 논리 페이지의 업데이트 횟수가 메인 윈도우(602)의 windows_size 및 total_update_cnt로부터 계산된 평균 업데이트 횟수(avg_update_cnt) 이상인지 비교하는 것이다. 여기서, 비교 결과, 평균 업데이트 횟수 이상이면, 핫 페이지로 판단한다.For example, if the updated logical page corresponds to the
도 7은 본 발명의 일 실시예에 따라 업데이트하려는 논리 페이지의 윈도우가 이미 윈도우 리스트에 존재하는 경우, 해당 윈도우의 이동을 나타내는 도면이다.7 is a diagram illustrating movement of a window when a window of a logical page to be updated already exists in the window list according to an embodiment of the present invention.
도 6의 윈도우 리스트가 존재하는 경우, 특정 페이지에 대한 업데이트 요청이 수신되면, 먼저 특정 페이지의 서브 윈도우가 윈도우 리스트에 존재하는 지 판단한다. 도 7에서는 논리 페이지 번호 3에 해당하는 페이지의 업데이트 요청이 수신되었으므로, 이미 업데이트 대상이 되는 페이지의 서브 윈도우(702)가 존재하는 경우이다.When the window list of FIG. 6 exists, when an update request for a specific page is received, it is first determined whether a sub-window of the specific page exists in the window list. In FIG. 7, since a request for updating a page corresponding to
그리고, 업데이트될 논리 페이지가 핫 페이지인지 판단하여, 핫 블록의 물리 페이지를 할당할 것인지 판단한다. 그런데, 도 6에서 상술한 바와 같이 평균 업데이트 횟수가 1이고, 현재 해당 서브 윈도우(702)의 update_cnt는 1이므로, 해당 페이지는 핫 페이지로 판단된다. 따라서, 핫 블록의 물리 페이지가 할당된다.Then, it is determined whether the logical page to be updated is a hot page, and it is determined whether to allocate a physical page of the hot block. However, as described above with reference to FIG. 6, since the average number of updates is 1 and update_cnt of the corresponding sub window 702 is 1, the corresponding page is determined to be a hot page. Thus, the physical page of the hot block is allocated.
이후, 해당 서브 윈도우(702)의 update_cnt를 1증가 시켜 2(704)를 기록한다. 그리고, 해당 서브 윈도우(702)를 최신 위치(706)로 이동 시킨다.Thereafter, update_cnt of the corresponding subwindow 702 is increased by 1 to record 2 (704). The sub window 702 is moved to the
도 8은 본 발명의 일 실시예에 따라 윈도우 리스트에서 존재 가능한 윈도우 개수가 최대치인 경우, 업데이트 요청에 의해 새로운 윈도우를 추가하는 방법을 나타내는 도면이다.8 is a diagram illustrating a method of adding a new window by an update request when the number of windows that can exist in the window list is the maximum according to an embodiment of the present invention.
도 8은 도 7에서 업데이트된 윈도우 리스트에서 새롭게 논리 페이지 번호 5, 8, 9, 2, 15에 해당하는 페이지가 순차적으로 업데이트 되는 경우 변화되는 윈도우 리스트 구조를 나타낸다. 이하, 기 설정된 존재 가능한 서브 윈도우의 개수의 최대치(MAX_WINDOW_SIZE)가 10이라 가정하고 설명한다.FIG. 8 illustrates a window list structure that is changed when pages corresponding to
논리 페이지 번호 5, 8, 9, 2에 해당하는 페이지가 순차적으로 업데이트되면, 해당 논리 페이지의 윈도우는 도 7의 윈도우 리스트에 존재하지 않으므로, 새롭게 해당 서브 윈도우들(802,804,806,808)이 순차적으로 최신 위치에 추가된다.When the pages corresponding to the
그런데, 논리 페이지 번호 2에 해당하는 서브 윈도우(808)가 추가되는 시점에서 윈도우 리스트의 총 서브 윈도우 개수는 MAX_WINDOW_SIZE(=10)와 동일하게 된다. 따라서, 추가로 업데이트를 위해 논리 페이지 번호 15에 해당하는 서브 윈도우(812)를 추가하려면, 윈도우 리스트에서 하나의 서브 윈도우를 제거해야 한다.However, when the
여기서, 업데이트 횟수가 가장 작고, 그 중에 가장 오래 전에 업데이트된 논리 페이지의 정보가 기록된 윈도우(810)를 제거한다. 그리고, 윈도우 전체 업데이트 횟수에서 그 윈도우(810)의 업데이트 횟수를 뺀 후, 논리 페이지 번호 15를 위한 새로운 윈도우(812)를 할당하고, 윈도우 리스트에 포함 시킨다.Here, the
도 9는 본 발명의 일 실시예에 따른 메모리의 페이지 할당 방법을 나타낸 순서도이다.9 is a flowchart illustrating a page allocation method of a memory according to an embodiment of the present invention.
먼저, 메모리의 블록을 일반 블록과 핫 블록으로 구분한다(S902).First, a block of memory is divided into a general block and a hot block (S902).
다음으로, 특정 논리 페이지에 대한 업데이트 요청을 수신한 경우, 윈도우 리스트의 전체 업데이트 횟수가 기 설정된 최대치 이상인지 판단한다(S904). 여기서, 윈도우는 업데이트되는 논리 페이지에 대한 정보를 포함하는 구조체이며 윈도우 리스트는 파일 당 생성되며, 업데이트 순서에 따라 링크된 윈도우들의 집합이다.Next, when receiving an update request for a specific logical page, it is determined whether the total number of updates of the window list is greater than or equal to a preset maximum value (S904). Here, the window is a structure containing information about the logical page to be updated and the window list is generated per file, and is a set of linked windows according to the update order.
다음으로, 전체 업데이트 횟수가 기 설정된 최대치 이상이면, 윈도우 리스트를 초기화 하고(S906), 현재 존재하는 윈도우 리스트에 상기 특정 논리 페이지에 해당하는 윈도우가 존재하는지 판단한다(S908). 만약, 업데이트 횟수가 기 설정된 최대치 미만이면, S906 단계를 거치지 않고 S908 단계를 수행한다.Next, if the total number of updates is greater than or equal to the preset maximum, the window list is initialized (S906), and it is determined whether a window corresponding to the specific logical page exists in the currently existing window list (S908). If the number of updates is less than the preset maximum, step S908 is performed without going through step S906.
이하, S908 단계에서 윈도우 리스트에 업데이트 대상인 논리 페이지에 대한 윈도우가 존재하지 않는 경우를 설명하겠다. Hereinafter, a case in which the window for the logical page to be updated in the window list does not exist in step S908 will be described.
논리 페이지에 대한 윈도우가 존재하지 않는 경우 윈도우 리스트의 윈도우 사이즈(윈도우의 수)가 허용 가능한 최대치인지 판단한다(S910).If there is no window for the logical page, it is determined whether the window size (number of windows) of the window list is the maximum allowable value (S910).
만약, 윈도우 사이즈가 허용 가능한 최대치이면, 업데이트 횟수가 가장 적고, 오래된 윈도우를 삭제한다(S912). 그리고, 업데이트 대상 논리 페이지를 위한 윈도우를 할당하고, 그 윈도우에 논리 페이지 번호를 기록한다(S914). 그 후, 윈도우의 업데이트 카운트를 1로 하고 윈도우 리스트에 연결한다(S916).If the window size is the maximum allowable value, the smallest number of updates is deleted and the old window is deleted (S912). Then, a window for the logical page to be updated is allocated, and the logical page number is recorded in the window (S914). Thereafter, the update count of the window is set to 1, and the window is linked to the window list (S916).
다음으로, 업데이트 요청에 상응하여 업데이트 되는 논리 페이지를 위해 일반 블록의 물리 페이지를 할당한다(S918).Next, the physical page of the general block is allocated for the logical page updated according to the update request (S918).
만약, S910 단계에서 윈도우 사이즈가 허용 가능한 최대치가 아니면, S912 단계를 수행하지 않고, 업데이트 되는 논리 페이지를 위해 S914, S916, 및 S918 단계를 순차적으로 수행한다.If the window size is not the maximum allowable value in step S910, steps S914, S916, and S918 are sequentially performed for the updated logical page without performing step S912.
이하, S908 단계에서 윈도우 리스트에 업데이트 대상인 논리 페이지에 대한 윈도우가 존재하는 경우를 설명하겠다. Hereinafter, the case in which the window for the logical page to be updated is present in the window list in step S908 will be described.
논리 페이지에 대한 윈도우가 존재하는 경우 해당 윈도우의 업데이트 카운트가 윈도우 리스트의 평균 업데이트 카운트 이상인지 판단한다(S920).If there is a window for the logical page, it is determined whether the update count of the corresponding window is equal to or greater than the average update count of the window list (S920).
만약, 해당 윈도우의 업데이트 카운트가 평균 업데이트 카운트 이상이면, 해당 윈도우의 업데이트 카운트를 증가시키고, 윈도우 리스트의 링크 구조에서 해당 윈도우를 최신 위치로 이동시킨다(S922).If the update count of the window is equal to or greater than the average update count, the update count of the window is increased and the window is moved to the latest position in the link structure of the window list (S922).
이어, 업데이트 요청에 상응하여 업데이트 되는 논리 페이지를 위해 핫 블록의 물리 페이지를 할당한다(S924).Subsequently, the physical page of the hot block is allocated for the logical page updated according to the update request (S924).
만약, 해당 윈도우의 업데이트 카운트가 평균 업데이트 카운트 미만이면, 해당 윈도우의 업데이트 카운트를 증가시키고, 윈도우 리스트의 링크 구조에서 해당 윈도우를 최신 위치로 이동시킨다(S926).If the update count of the window is less than the average update count, the update count of the window is increased and the window is moved to the latest position in the link structure of the window list (S926).
이어, 업데이트 요청에 상응하여 업데이트 되는 논리 페이지를 위해 일반 블록의 물리 페이지를 할당한다(S928).Subsequently, a physical page of a general block is allocated for a logical page updated according to the update request (S928).
상술한 메모리의 페이지 할당 방법은 다양한 컴퓨터 수단을 이용하여 수행될 수 있는 프로그램 형태로도 구현될 수 있는데, 이때 메모리의 페이지 할당 방법을 수행하기 위한 프로그램은 하드 디스크, CD-ROM, DVD, 롬(ROM), 램, 또는 플래시 메모리와 같은 컴퓨터로 판독할 수 있는 기록 매체에 저장된다.The above page allocation method of the memory may be implemented in the form of a program that can be executed using various computer means. In this case, the program for performing the page allocation method of the memory may be a hard disk, a CD-ROM, a DVD, a ROM ( ROM), a RAM, or a flash memory, such as a computer readable recording medium.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in other specific forms without changing the technical spirit or essential features.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. do.
도 1의 일반적인 낸드 플래시 메모리의 구조를 나타낸 도면.Fig. 1 shows the structure of a typical NAND flash memory of Fig. 1;
도 2는 파일 수정 후, 일반적인 페이지 할당 방법에 따른 메모리의 상태를 나타낸 도면.2 is a diagram illustrating a state of a memory according to a general page allocation method after file modification.
도 3은 일반적인 블록 클리닝 이후의 메모리의 상태를 나타낸 도면.3 is a diagram illustrating a state of a memory after general block cleaning.
도 4는 본 발명의 일 실시예에 따른 페이지 할당 방법으로써 파일이 수정된 후, 메모리의 상태를 나타낸 도면.4 is a diagram illustrating a state of a memory after a file is modified by the page allocation method according to an exemplary embodiment of the present invention.
도 5는 본 발명의 일 실시에 따른 페이지 할당 방법으로써 파일이 수정된 후, 블록 클리닝이 끝난 메모리의 상태를 나타낸 도면.5 is a diagram illustrating a state of a block cleaning finished after a file is modified by the page allocation method according to an exemplary embodiment of the present invention.
도 6a는 본 발명의 일 실시예에 따른 논리 페이지의 업데이트 정보를 저장하기 위해 사용되는 윈도우 구조체를 나타내는 도면.FIG. 6A illustrates a window structure used to store update information of a logical page according to an embodiment of the present invention. FIG.
도 6b는 본 발명의 일 실시예에 따른 윈도우 리스트를 나타내는 도면.6B illustrates a window list in accordance with one embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따라 업데이트하려는 논리 페이지의 윈도우가 이미 윈도우 리스트에 존재하는 경우, 해당 윈도우의 이동을 나타내는 도면.7 is a diagram illustrating movement of a window when a window of a logical page to be updated already exists in the window list according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따라 윈도우 리스트에서 존재 가능한 윈도우 개수가 최대치인 경우, 업데이트 요청에 의해 새로운 윈도우를 추가하는 방법을 나타내는 도면.8 is a diagram illustrating a method of adding a new window by an update request when the number of windows that can exist in the window list is the maximum according to one embodiment of the present invention;
도 9는 본 발명의 일 실시예에 다른 메모리의 페이지 할당 방법을 나타낸 순서도.9 is a flowchart illustrating a method of allocating a page of a memory in accordance with an embodiment of the present invention.
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
402: 핫 페이지를 위한 블록 404: 유효 페이지 A1402: Block for hot page 404: Valid page A1
406: 유효 페이지 B1 308: 유효 페이지 C1406: Valid Page B1 308: Valid Page C1
410: 유효 페이지 D1 410: Valid Page D1
412: 무효 페이지들이 존재하는 영역의 블록412: Block of area where invalid pages exist
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080015857A KR100941423B1 (en) | 2008-02-21 | 2008-02-21 | Method For Allocating a Page of a Memory and a Computer-readable Recording Medium For Program Which Accomplishes Thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080015857A KR100941423B1 (en) | 2008-02-21 | 2008-02-21 | Method For Allocating a Page of a Memory and a Computer-readable Recording Medium For Program Which Accomplishes Thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090090570A KR20090090570A (en) | 2009-08-26 |
KR100941423B1 true KR100941423B1 (en) | 2010-02-11 |
Family
ID=41208338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080015857A KR100941423B1 (en) | 2008-02-21 | 2008-02-21 | Method For Allocating a Page of a Memory and a Computer-readable Recording Medium For Program Which Accomplishes Thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100941423B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304905B2 (en) | 2011-08-12 | 2016-04-05 | Ajou University Industry-Academic Cooperation Foundation | Memory controller and data management method thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101861545B1 (en) | 2012-01-02 | 2018-05-29 | 삼성전자주식회사 | Method for managing data in storage device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980069939A (en) * | 1997-02-07 | 1998-10-26 | 제프리엘.포맨 | Computer systems and methods for sorting array elements to optimize array changes |
KR20060115397A (en) * | 2003-10-28 | 2006-11-08 | 샌디스크 코포레이션 | Internal maintenance schedule request for non-volatile memory system |
KR20080056491A (en) * | 2006-12-18 | 2008-06-23 | (재)대구경북과학기술연구원 | Method for address mapping in flash translation layer(ftl) |
-
2008
- 2008-02-21 KR KR1020080015857A patent/KR100941423B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980069939A (en) * | 1997-02-07 | 1998-10-26 | 제프리엘.포맨 | Computer systems and methods for sorting array elements to optimize array changes |
KR20060115397A (en) * | 2003-10-28 | 2006-11-08 | 샌디스크 코포레이션 | Internal maintenance schedule request for non-volatile memory system |
KR20080056491A (en) * | 2006-12-18 | 2008-06-23 | (재)대구경북과학기술연구원 | Method for address mapping in flash translation layer(ftl) |
Non-Patent Citations (1)
Title |
---|
Hot Data 검출기를 이용한 적응형 플래시 전환 계층의 설계 및 구현(윤현식 외 2인. 한국정보과학회 2007 한국컴퓨터종합학술대회 논문집 제34권 제1호(A), pages 248-249. 2007.6.) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304905B2 (en) | 2011-08-12 | 2016-04-05 | Ajou University Industry-Academic Cooperation Foundation | Memory controller and data management method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20090090570A (en) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
US11301379B2 (en) | Access request processing method and apparatus, and computer device | |
KR100484147B1 (en) | Flash memory management method | |
KR100929371B1 (en) | A method to store data into flash memory in a dbms-independent manner using the page-differential | |
CN108319602B (en) | Database management method and database system | |
US20070043900A1 (en) | Flash memory management method and flash memory system | |
KR20070060070A (en) | Fat analysis for optimized sequential cluster management | |
CN108763473A (en) | A kind of the native object storage method and device of distributed storage | |
JP2004013895A (en) | File system for flash memory | |
CN106886370B (en) | data safe deletion method and system based on SSD (solid State disk) deduplication technology | |
US11030092B2 (en) | Access request processing method and apparatus, and computer system | |
CN108399047B (en) | Flash memory file system and data management method thereof | |
KR100907477B1 (en) | Apparatus and method for managing index of data stored in flash memory | |
KR101077901B1 (en) | Apparatus and method for managing flash memory using log block level mapping algorithm | |
KR100941423B1 (en) | Method For Allocating a Page of a Memory and a Computer-readable Recording Medium For Program Which Accomplishes Thereof | |
KR101179027B1 (en) | Nand flash memory system and method for performing garbage collection based on locality of buffer | |
KR101153688B1 (en) | Nand flash memory system and method for providing invalidation chance to data pages | |
KR101020781B1 (en) | A method for log management in flash memory-based database systems | |
KR101102754B1 (en) | Nand flash memory file system and method for accessing file thereof | |
KR101970874B1 (en) | Hybrid hash index for non-volatile memory storage device | |
CN114661238B (en) | Method for recovering storage system space with cache and application | |
US10740015B2 (en) | Optimized management of file system metadata within solid state storage devices (SSDs) | |
JP3904182B2 (en) | Data management system and data management method using the same | |
CN117891415A (en) | P2L data management method and device of storage device | |
CN116860170A (en) | Data processing method, device, equipment, medium and solid state disk |
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: 20130123 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20131217 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20141204 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160113 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20161220 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |