KR100638638B1 - Method for controling flash memory device - Google Patents
Method for controling flash memory device Download PDFInfo
- Publication number
- KR100638638B1 KR100638638B1 KR1020040070322A KR20040070322A KR100638638B1 KR 100638638 B1 KR100638638 B1 KR 100638638B1 KR 1020040070322 A KR1020040070322 A KR 1020040070322A KR 20040070322 A KR20040070322 A KR 20040070322A KR 100638638 B1 KR100638638 B1 KR 100638638B1
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- block
- log
- available
- blocks
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 플래시 메모리의 제어 방법에 관한 것으로, 복수개의 블록으로 구성된 복수개의 유니트로 구성되어 읽기 및 쓰기 연산은 블록 단위로 수행되고 삭제 연산은 유니트 단위로 수행되는 플래시 메모리에서 원 유니트의 데이터 블록을 갱신하고자 할 때 갱신할 블록을 원 유니트에 대응되는 로그 유니트에 기록함에 있어서 원 유니트들이 복수개의 로그 유니트를 공유하도록 함으로써 유니트 내의 공간 사용률을 높여 가용 블록을 확보하기 위한 삭제 횟수를 줄일 수 있어 데이터 기록 및 갱신 효율을 높일 수 있는 이점이 있다.The present invention relates to a control method of a flash memory, comprising a plurality of units composed of a plurality of blocks, read and write operations are performed in units of blocks, and erase operations are performed on a unit of data blocks of a flash unit in a unit of flash memory. When updating a block to be updated in a log unit corresponding to the original unit, the original units share a plurality of log units, thereby increasing the space utilization in the unit, thereby reducing the number of deletions for securing available blocks. And there is an advantage to increase the update efficiency.
플래시 메모리, 재사상, 로그 유니트, 데이터 갱신, 원 유니트, 공간 사용률, 재생, 가용 블록, 삭제Flash memory, rethinking, log unit, data update, one unit, space utilization, playback, free block, delete
Description
도 1은 일반적인 플래시 메모리의 제어 방법을 설명하기 위한 도면으로 (a)는 LBN-to-LUN 사상 테이블의 구성도, (b)는 LUN-to-PUN 사상 테이블의 구성도이다.1 is a view for explaining a general flash memory control method, (a) is a configuration diagram of the LBN-to-LUN mapping table, (b) is a configuration diagram of the LUN-to-PUN mapping table.
도 2는 본 발명에 따른 플래시 메모리의 제어 방법을 설명하기 위한 도면으로 (a)는 LBN-to-LUN 사상 테이블의 구성도, (b)는 LUN-to-PUN 사상 테이블의 구성도이다.2 is a view for explaining a control method of a flash memory according to the present invention, (a) is a configuration diagram of the LBN-to-LUN mapping table, (b) is a configuration diagram of the LUN-to-PUN mapping table.
도 3은 본 발명에 따른 플래시 메모리의 제어 방법에서 원 유니트와 로그 유니트의 사상 관계에 대한 예를 설명하기 위한 도면이다.3 is a view for explaining an example of the mapping relationship between the original unit and the log unit in the control method of the flash memory according to the present invention.
도 4는 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 읽기 연산에 대한 동작 흐름도이다.4 is an operation flowchart for a read operation in the control method of the flash memory according to the present invention.
도 5는 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 쓰기 연산에 대한 동작 흐름도이다.5 is an operation flowchart for a write operation in the control method of the flash memory according to the present invention.
도 6은 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 로그 유니트의 결정 과정에 대한 동작 흐름도이다.6 is a flowchart illustrating an operation of determining a log unit in a control method of a flash memory according to the present invention.
도 7은 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 재생 연산에 대 한 동작 흐름도이다.7 is an operation flowchart for a reproducing operation in the control method of the flash memory according to the present invention.
본 발명은 플래시 메모리의 제어 방법에 관한 것으로서, 보다 상세하게는 복수개의 블록으로 구성된 복수개의 유니트로 구성되어 읽기 및 쓰기 연산은 블록 단위로 수행되고 삭제 연산은 유니트 단위로 수행되는 플래시 메모리에서 원 유니트의 데이터 블록을 갱신하고자 할 때 갱신할 블록을 원 유니트에 대응되는 로그 유니트에 기록함에 있어서 원 유니트들이 복수개의 로그 유니트를 공유하도록 함으로써 유니트 내의 공간 사용률을 높여 가용 블록을 확보하기 위한 삭제 횟수를 줄일 수 있도록 한 플래시 메모리의 제어 방법에 관한 것이다. The present invention relates to a control method of a flash memory, and more particularly, a single unit in a flash memory in which read and write operations are performed in units of blocks, and erase operations are performed in units of units. When updating the data block of the data, write the block to be updated in the log unit corresponding to the original unit so that the original units share a plurality of log units, thereby increasing the space utilization in the unit and reducing the number of deletions to secure the available blocks. To control a flash memory.
플래시 메모리는 EEPROM의 일종으로 비휘발성이면서 프로그램이 가능하다는 특성 때문에 최근에 이동전화나 PDA와 같은 이동기기를 비롯한 내장형 시스템의 메모리 장치로 널리 쓰이고 있다. Flash memory is a type of EEPROM that is non-volatile and programmable, so it has recently been widely used as a memory device of embedded systems including mobile devices such as mobile phones and PDAs.
이러한 플래시 메모리는 기존의 RAM(Ramdom Access Memory)이나 비휘발성 저장장치, 마그네틱 디스크 등과 마찬가지로 특정 위치에 저장된 데이터를 임의로 접근할 수 있는 특징이 있다. Such a flash memory has a characteristic of randomly accessing data stored in a specific location, like a conventional RAM (non-volatile memory), nonvolatile storage, or magnetic disk.
그러나, 이러한 플래시 메모리는 데이터를 수정하거나 삭제하는 방법이 위의 다른 저장장치들과는 다르다. 즉, 초기화된 플래시 메모리의 소정 블록에 일단 데 이터를 한번 기록하고 나면 이를 수정하거나 삭제하고자 할 경우에는 그 블록을 포함하고 있는 유니트를 수정하거나 삭제하여야 한다. However, these flash memories are different from other storage devices in the way of modifying or deleting data. In other words, once data has been written to a predetermined block of the initialized flash memory, it is necessary to modify or delete the unit containing the block if it is to be modified or deleted.
플래시 메모리에서 블록은 물리적으로 연속된 주소를 갖는 바이트들로 구성된 것으로 플래시 메모리에 대한 연산의 기본 단위가 된다. 그리고 유니트는 복수개의 블록들로 구성된 것으로 물리적으로 한번에 삭제 또는 수정할 수 있는 기본단위가 된다. In flash memory, a block is composed of bytes with physically contiguous addresses and becomes the basic unit of operation for flash memory. The unit is composed of a plurality of blocks and becomes a basic unit that can be physically deleted or modified at once.
따라서, 플래시 메모리는 블록에 기록되어 있는 데이터에 대한 갱신은 바로 수행이 불가능하며 그 블록을 포함하는 유니트에 대해 삭제 연산을 수행한 후에 가능하다. Therefore, the flash memory may not immediately update data written in a block and may be performed after performing an erase operation on a unit including the block.
또한, 플래시 메모리의 유니트는 삭제 회수가 물리적으로 제한되어 있으며, 삭제 연산 시간이 읽기 및 쓰기 시간보다 많이 걸린다.In addition, the number of erase operations of the unit of the flash memory is physically limited, and the erase operation takes more time than the read and write time.
그래서, 유니트의 삭제 회수를 줄이는 것이 데이터 기록 및 갱신 효율을 높이게 되는 것이다. Therefore, reducing the number of deletions of the unit increases the data recording and updating efficiency.
플래시 메모리의 블록은 순차적으로 물리적 블록 번호(PBN: Physical Block Number)가 부여되어 있으며, 사용자 수준에서는 논리적 블록 번호(LBN: Logical Block Number)를 사용하여 블록에 접근한다. 그리고, 플래시 메모리의 유니트는 순차적으로 물리적 유니트 번호(PUN: Physical Unit Number)가 부여되어 있으며, 사용자 수준에서는 논리적 유니트 번호(LUN: Logical Unit Number)를 사용한다. Blocks of the flash memory are sequentially assigned a physical block number (PBN), and at the user level, the block is accessed using a logical block number (LBN). The unit of the flash memory is sequentially assigned a physical unit number (PUN), and uses a logical unit number (LUN) at the user level.
따라서, 논리적 블록 번호와 물리적 블록 번호 사이에 사상(mapping)이 필요하게 되며 이를 위해 블록 사상 테이블(Block Mapping Table)들과 블록 할당 맵 (Block Allocation Map)이 사용된다. Therefore, mapping between the logical block number and the physical block number is required, and block mapping tables and block allocation maps are used for this purpose.
도 1은 일반적인 플래시 메모리의 제어 방법을 설명하기 위한 도면으로 (a)는 LBN-to-LUN 사상 테이블의 구성도, (b)는 LUN-to-PUN 사상 테이블의 구성도이다.1 is a view for explaining a general flash memory control method, (a) is a configuration diagram of the LBN-to-LUN mapping table, (b) is a configuration diagram of the LUN-to-PUN mapping table.
여기에 도시된 바와 같이 논리적 블록 2에 데이터를 기록하려는 경우를 예로 들어 본다. 먼저, (a)에 도시된 LBN-to-LUN 사상 테이블을 사용하여 논리적 블록 2가 논리적 유니트 번호 5에 사상됨을 알 수 있다. 다음으로 (b)에 도시된 LUN-to-PUN 사상 테이블을 사용하여 논리적 유니트 번호 5가 물리적 유니트 번호가 3에 사상됨을 알 수 있다. 따라서, 논리적 블록 2는 물리적 유니트 3의 빈 블록에 기록된다. As an example, consider the case where data is written to
이때 각 유니트는 유니트 내의 블록의 할당 상태를 관리하기 위한 블록 할당 맵을 가지며, 블록 사상 테이블은 플래시 메모리의 특정 블록에 기록되고, 블록 할당 맵은 유니트 내의 특정 블록에 기록되거나 블록마다 가지는 여유 영역(spare area)에 기록된다. At this time, each unit has a block allocation map for managing the allocation state of the blocks in the unit, the block mapping table is written in a specific block of the flash memory, the block allocation map is recorded in a specific block in the unit or has a free area (for each block) spare area).
이와 같이 블록 사상 테이블을 사용하면 사용자의 논리 번호는 그대로 사용하면서 실제 데이터가 저장되는 물리적 위치를 변경할 수 있다. 예를 들어, 논리적 유니트 5가 사상된 물리적 유니트 3의 데이터를 물리적 유니트 10으로 복사한다면 LUN-to-PUN 테이블에서 PUN 값을 10으로 갱신하면 되고 사용자는 논리적 유니트 번호 5를 그대로 사용하면 된다. Using the block mapping table in this way allows the user to change the physical location where the actual data is stored while keeping the logical number of the user. For example, if
상술한 바와 같이 이렇게 플래시 메모리는 데이터 블록의 갱신을 해당 블록 에 직접 수행하려면 해당 블록을 포함하는 유니트의 삭제 연산이 요구되며 이 연산은 수행 시간이 오래 걸리고 수행 도중 전원 단절로 중단되는 경우 데이터의 유실을 초래할 수 있다. As described above, in order to update a data block directly to the block, the flash memory requires a delete operation of a unit including the block. This operation takes a long time and loses data when the power is interrupted during execution. May result.
따라서, 이를 해결하기 위해 데이터 블록의 변경을 해당 블록에 직접 수행하지 않고 새로운 블록을 할당받아 데이터를 기록한 후 이전 블록은 무효(invalid) 블록으로 표시한 후 나중에 삭제하는 방법들이 고안되었다. 이러한 방법들은 블록 사상 테이블을 사용하여 사용자의 논리 번호는 변경 없이 데이터의 물리적 위치를 변경하는 것이다. Therefore, in order to solve this problem, a method has been devised in which a new block is allocated instead of directly performing a change of a data block, and data is recorded after the previous block is marked as an invalid block and then deleted. These methods use a block mapping table to change the physical location of the data without changing the user's logical number.
이러한 방법으로 미국 등록특허 제 5,404,485호(1995년 04월 04일 등록) "Flash File System" 에서는 데이터 갱신이 요청되었을 때 가용 블록을 가진 유니트를 탐색하고 가용 블록에 새 데이터를 기록한 후 원래 데이터 블록은 무효 블록으로 바꾸고 나중에 삭제한다. 상기 발명에서는 주기적으로 유니트들을 재생(reclaiming)하여 가용 공간을 확보한다. 이때 재생할 유니트를 선택하고 가용 유니트(free unit) 중에서 이동 유니트(transfer unit)를 할당한 후, 재생을 위해 선택된 유니트에서 유효 블록(valid block)만을 읽어 이동 유니트의 동일한 오프셋 위치의 블록에 기록한다. 또한, 재생을 위해 선택된 유니트는 삭제하여 가용 유니트로 바꾼다. In this way, U.S. Patent No. 5,404,485 (registered Apr. 4, 1995) "Flash File System" searches for a unit with available blocks when data update is requested, writes new data to the available blocks, and then replaces the original data block. Replace with an invalid block and delete it later. In the present invention, the units are periodically reclaimed to secure an available space. At this time, a unit to be reproduced is selected, a transfer unit is allocated among the free units, and only a valid block is read from the unit selected for reproduction and recorded in a block at the same offset position of the mobile unit. Also, the unit selected for playback is deleted and replaced with an available unit.
그러나, 이와 같은 방법은 갱신 데이터를 저장할 가용 유니트 및 가용 블록을 탐색해야 하는 문제점을 가진다.However, this method has a problem of searching for available units and available blocks for storing update data.
그래서, 이와 같은 문제점을 해결하기 위한 방법으로써 대한민국 공개특허 제2001-0029171호(2001년 04월 06일 공개) "플래시 메모리와 그 제어 방법" 에서는 유니트마다 일정 개수의 예비 블록을 두고 갱신되는 블록을 기록하기 위해 사용한다. 또한, 갱신 데이터를 저장할 때 유니트를 탐색할 필요 없이 동일 유니트의 예비 블록에 바로 기록한 후 원래 데이터 블록은 무효 블록으로 바꾼다. 만약 유니트의 예비 블록이 다 사용된 경우에는 이동 유니트(transfer unit)를 할당하고 이전 유니트의 유효 블록들을 이동 유니트로 복사하고 이전 유니트는 삭제하여 가용 유니트로 바꾼다. Thus, as a method for solving such a problem, Korean Unexamined Patent Application Publication No. 2001-0029171 (published on April 06, 2001) "Flash memory and its control method" includes a block updated with a predetermined number of spare blocks for each unit. Use to record. In addition, when storing update data, the original data block is replaced with an invalid block after immediately writing to a spare block of the same unit without having to search for a unit. If the spare blocks of the unit are used up, a transfer unit is allocated, the effective blocks of the previous unit are copied to the mobile unit, and the old unit is deleted and replaced with the available unit.
그러나, 이 방법은 유니트 내에 예비 블록을 미리 확보해야 하는데 예비 블록의 적정 개수를 결정하기가 어렵고, 유니트 내에 갱신 작업 횟수가 적은 경우에는 유니트의 공간 사용률이 떨어지는 문제점을 가진다.However, this method has to secure a spare block in advance in the unit, it is difficult to determine the appropriate number of spare blocks, and when the number of update operations in the unit is small, there is a problem that the space utilization of the unit is lowered.
한편, 대한민국 공개특허 제2002-0028624호(2002년 04월 17일 공개) "플래시 메모리를 위한 재사상 제어방법 및 그에 따른 플래시 메모리의 구조" 에서는 공개특허 제2001-0029171호의 방법을 사용하면서 블록의 상태 전이를 정의하여 블록의 부분 기록을 최소화 방법을 고안하였다. On the other hand, the Republic of Korea Patent Publication No. 2002-0028624 (published on April 17, 2002) "Reimagine control method for the flash memory and the structure of the flash memory according to" in the method using the method of Publication No. 2001-0029171 By defining state transitions, we devised a method to minimize the partial writing of blocks.
그러나, 이와 같은 방법도 여전히 유니트 내에 예비 블록을 확보해야 하고 유니트의 공간 사용률이 떨어지는 문제점을 가진다.However, such a method still has a problem in that a spare block must be secured in the unit, and space utilization of the unit is lowered.
한편, 2002년 IEEE Transactions on Consumer Electronics 제48권 제2호 페이지 366∼375에 발표된 "A Space Efficient Flash Translation Layer for Compact Flash Systems" 에서는 유니트마다 같은 크기의 로그 유니트(log unit)를 두어 원 유니트(original unit)의 데이터 블록이 갱신되어야할 때 대응되는 로그 유니트의 가용 블록에 순차적으로 기록한다. 만약 로그 유니트의 가용 블록이 다 사용된 경우에는 가용 유니트를 할당한 후 원 유니트와 로그 유니트에서 유효 블록만을 읽어 가용 유니트에 기록하고 원 유니트로 바꾼다. 그런다음, 원 유니트와 가용 블록이 다 사용된 로그 유니트는 삭제 연산을 수행하여 가용 유니트로 바꾼다. Meanwhile, in "A Space Efficient Flash Translation Layer for Compact Flash Systems," published in IEEE Transactions on Consumer Electronics Vol. 48, No. 2, pages 366-375, one unit has the same size log unit. When data blocks of the (original unit) are to be updated, they are sequentially recorded in the available blocks of the corresponding log unit. If the available blocks of the log unit are used up, after allocating the available units, read only the valid blocks from the original unit and the log unit, write them to the available unit, and replace them with the original unit. Then, the log unit that has used up both the original unit and the available blocks is replaced by the delete unit by performing a delete operation.
그런데, 이와 같은 방법은 갱신할 데이터를 대응되는 로그 유니트에 바로 기록하므로 빠르게 수행할 수는 있지만, 하나의 로그 유니트가 오직 하나의 원 유니트를 위해서만 전용되기 때문에 원 유니트 내에 갱신 연산의 횟수가 적은 경우에는 로그 유니트의 공간 사용률이 떨어지는 문제점을 가진다. 예를 들어, 유니트의 크기가 128KB이며 블록의 크기가 2KB인 플래시 메모리에서 하나의 블록만 갱신되었다면 유니트의 공간 사용률은 약 1.5% (2 / 128 = 0.015)가 된다.However, this method can be performed quickly because the data to be updated is directly recorded in the corresponding log unit, but the number of update operations in the original unit is small since one log unit is dedicated to only one original unit. There is a problem that the space utilization of the log unit is lowered. For example, if only one block is updated in a flash memory whose unit size is 128KB and the block size is 2KB, the space utilization of the unit is about 1.5% (2/128 = 0.015).
이와 같은 종래의 플래시 메모리의 블록 사상 방법들은 가용 블록을 최대한 사용하지 못하여 플래시 메모리의 공간 사용률을 떨어뜨리고, 가용 블록을 확보하기 위한 삭제 횟수를 증가시킬 수 있어 플래시 메모리의 성능을 저하시키는 문제점을 가진다.Such conventional block mapping methods of flash memory have a problem of reducing the performance of flash memory because the space utilization rate of the flash memory can be decreased because the available blocks are not used to the maximum, and the number of deletions to secure the available blocks can be increased. .
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은 복수개의 블록으로 구성된 복수개의 유니트로 구성되어 읽기 및 쓰기 연산은 블록 단위로 수행되고 삭제 연산은 유니트 단위로 수행되는 플래시 메모리에서 원 유니트의 데이터 블록을 갱신하고자 할 때 갱신할 블록을 원 유니트에 대응되는 로그 유니트에 기록함에 있어서 원 유니트들이 복수개의 로그 유니트를 공유하도록 함으로써 유니트 내의 공간 사용률을 높여 가용 블록을 확보하기 위한 삭제 횟수를 줄일 수 있도록 한 플래시 메모리의 제어 방법을 제공함에 있다.
The present invention has been made to solve the above problems, an object of the present invention is composed of a plurality of units composed of a plurality of blocks, read and write operations are performed in units of blocks, and erase operations are performed in units of units When updating the data block of the original unit in memory, in order to secure the available block by increasing the space utilization in the unit by allowing the original units to share a plurality of log units in writing the block to be updated in the log unit corresponding to the original unit The present invention provides a control method of a flash memory to reduce the number of deletions.
상기와 같은 목적을 실현하기 위한 본 발명은 복수개의 블록으로 구성된 복수개의 유니트로 구성되어 읽기 및 쓰기 연산은 블록 단위로 수행되고 삭제 연산은 유니트 단위로 수행되는 플래시 메모리에 있어서, 하나 이상의 블록에 데이터가 기록된 원 유니트내 블록들의 복사본이 저장되는 로그 유니트에 하나 이상의 원 유니트가 대응되도록 사상하여 로그 유니트를 결정하는 것을 특징으로 한다. The present invention for realizing the above object is composed of a plurality of units composed of a plurality of blocks in the read and write operations are performed in units of blocks, the erase operation is performed in units of units, the data in one or more blocks The log unit may be determined by mapping one or more original units to a log unit in which copies of blocks in the recorded original unit are stored.
본 발명에서, 로그 유니트의 결정은 (a) 사상 정보를 통해 원 유니트에 대응되어 할당된 로그 유니트가 있는가 검사하는 단계와, (b) (a)단계에서 검사하여 할당된 로그 유니트가 있다면 가용 블록을 가진 로그 유니트를 탐색하는 단계와, (c) (b)단계에서 탐색하여 로그 유니트가 있다면 해당 로그 유니트를 사용하도록 하는 단계와, (d) (b)단계에서 탐색하여 로그 유니트가 없다면 다른 원 유니트에 할당되어 사용 중인 로그 유니트에서 가용 블록을 가진 로그 유니트가 있는가 검사하는 단계와, (e) (d)단계에서 검사하여 로그 유니트가 있다면 해당 로그 유니트를 사용하도록 할당하는 단계와, (f) (d)단계에서 검사하여 로그 유니트가 없다면 가용 유니트가 있는가를 검사하는 단계와, (g) (f)단계에서 검사하여 가용 유니트가 없다면 재생 연산을 수행하는 단계와, (h) (f)단계에서 검사하여 가용 유니트가 있다면 가용 유니트에서 로그 유니트를 새로 할당하는 단계와, (i) (e)단계와 (h)단계에서 로그 유니트를 할당한 후 사상 정보에 해당 로그 유니트 정보를 기록하는 단계와, (j) (a)단계에서 할당된 로그 유니트가 없다면 (d)단계에서 (i)단계까지 수행하는 단계로 이루어진 것을 특징으로 한다.In the present invention, the log unit is determined by (a) checking whether there is a log unit allocated corresponding to the original unit through mapping information, and (b) checking available blocks if there is an allocated log unit in step (a). Searching for a log unit with (a), (c) searching for a log unit in step (b) to use that log unit, and (d) searching for a log unit in step (b) if there is no log unit. Checking whether there is a log unit with available blocks in the log unit allocated to the unit, and (e) checking in step (d) to allocate the log unit for use if it exists; and (f) In step (d), if there is no log unit, checking whether there is an available unit; and (g) In step (f), if there is no available unit, performing a regeneration operation. , (h) If the available unit is found in step (f), the log unit is newly allocated from the available unit, and (i) the log unit is allocated in the steps (e) and (h). And recording the log unit information, and (j) performing steps (d) to (i) if there is no log unit allocated in step (a).
이때, 사상 정보는 블록 사상 테이블인 것을 특징으로 한다. In this case, the mapping information may be a block mapping table.
또한, 본 발명에서 로그 유니트는 원 유니트와 같은 크기로 구성되거나 여러 개의 유니트로 구성된 것을 특징으로 한다. In addition, the log unit in the present invention is characterized by consisting of the same size as the original unit or composed of several units.
이와 같이 본 발명은 플래시 메모리의 하나 이상의 블록에 데이터가 기록된 원 유니트내 블록들의 복사본이 저장되는 로그 유니트에 하나 이상의 원 유니트가 대응되도록 사상함으로써 원 유니트와 로그 유니트가 공유되어 유니트내 공간 사용률을 높일 수 있게 되어 가용 블록을 확보하기 위한 삭제 횟수를 줄일 수 있게 된다. As described above, the present invention maps one or more original units to a log unit in which copies of blocks in the original unit in which data is written in one or more blocks of the flash memory are mapped so that the original unit and the log unit are shared, thereby reducing the space utilization of the unit. It can be increased to reduce the number of deletions to secure available blocks.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 또한 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이며 종래 구성과 동일한 부분은 동일한 부호 및 명칭을 사용한다. Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings. In addition, the present embodiment is not intended to limit the scope of the present invention, but is presented by way of example only and the same parts as in the conventional configuration using the same reference numerals and names.
도 2는 본 발명에 따른 플래시 메모리의 제어 방법을 설명하기 위한 도면으로 (a)는 LBN-to-LUN 사상 테이블의 구성도, (b)는 LUN-to-PUN 사상 테이블의 구성도이다.2 is a view for explaining a control method of a flash memory according to the present invention, (a) is a configuration diagram of the LBN-to-LUN mapping table, (b) is a configuration diagram of the LUN-to-PUN mapping table.
유니트는 플래시 메모리의 물리적인 삭제 연산의 기본 단위가 되는 삭제 유 니트(삭제 블록(erase block)이라고 불리기도 함)와 일치할 수도 있고 여러 개의 삭제 유니트로 구성될 수도 있다.The unit may correspond to an erase unit (also called an erase block), which is the basic unit of the physical erase operation of the flash memory, or may consist of multiple erase units.
그리고, 유니트 내의 하나 이상의 블록에 데이터가 기록되어진 유니트를 원 유니트(original unit)라고 하며 원 유니트에 대응되어 원 유니트의 블록들의 최신 복사본을 가지는 유니트를 로그 유니트(log unit)라고 한다. 또한, 데이터가 기록되지 않은 유니트를 가용 유니트(free unit)라고 한다. 로그 유니트는 원 유니트와 같은 크기를 가질 수도 있고 여러 개의 유니트로 구성될 수도 있다. 하나의 로그 유니트에 한 개 이상의 원 유니트가 대응될 수 있다. A unit in which data is recorded in at least one block in a unit is called an original unit, and a unit corresponding to the original unit and having the latest copy of blocks of the original unit is called a log unit. In addition, a unit in which data is not recorded is called a free unit. The log unit may have the same size as the original unit or may consist of multiple units. One or more original units may correspond to one log unit.
먼저, 도 2의 (a)에 도시된 LBN-to-LUN 사상 테이블에서 보는 바와 같이 논리적 블록(LBN) 1과 3은 논리적 유니트(LUN) 1에 사상되어 있고, 논리적 블록(LBN) 2와 4는 논리적 유니트(LUN) 5에 사상되어 있다.First, as shown in the LBN-to-LUN mapping table shown in FIG. 2A,
그리고, 도 2의 (b)에 도시된 LUN-to-PUN 사상 테이블에서 볼 때 하나의 논리적 유니트에 대해 원 유니트와 여러 개의 로그 유니트들이 사상되어 있으며 PUN1은 원 유니트의 물리적 번호이고 PUN2에서 PUNn까지는 로그 유니트들의 물리적 번호이다. 예를 들어, LUN 1은 PUN이 2인 원 유니트와 PUN이 20인 로그 유니트에 사상되었고, LUN 5는 원 유니트의 PUN은 3이고 로그 유니트의 PUN은 20으로 사상되어 로그 유니트 20이 공유되고 있다. 또한, LUN 3이 사상되는 로그 유니트는 아직 할당되지 않았다. 따라서, LUN 3의 블록에 갱신 연산이 요청되면 로그 유니트가 할당되고 해당 물리적 유니트 번호가 사상 테이블에 기록된다.And, in the LUN-to-PUN mapping table shown in FIG. 2 (b), one unit and several log units are mapped to one logical unit, and PUN1 is the physical number of the original unit, and PUN2 to PUNn Physical number of log units. For example,
또한, 각 유니트는 유니트 내 블록의 할당 상태를 관리하기 위한 블록 할당 맵을 가지게 되는데, 이와 같은 블록 할당 맵은 유니트 내의 특정 블록에 기록되거나, 각 블록의 여유 영역에 유니트에 속한 해당 블록에 대한 정보(상태, 논리적 블록 번호 등)가 기록된다. 블록은 가용 블록(free block), 유효 블록(valid block), 무효 블록(invalid block)으로 구분된다. 이때 가용 블록은 데이터가 기록되지 않은 블록이며, 유효 블록은 데이터가 기록된 블록이며, 무효 블록은 이전에 유효 블록이었다가 데이터가 갱신되어 더 이상 의미 없는 블록이다.In addition, each unit has a block allocation map for managing the allocation status of the blocks in the unit, such a block allocation map is recorded in a specific block within the unit, or information about the corresponding block belonging to the unit in the free area of each block (State, logical block number, etc.) are recorded. A block is divided into a free block, a valid block, and an invalid block. At this time, the usable block is a block in which no data is written, the valid block is a block in which data is written, and the invalid block is a block that is no longer meaningful because the data was updated before the valid block.
도 3은 본 발명에 따른 플래시 메모리의 제어 방법에서 원 유니트와 로그 유니트의 사상 관계에 대한 예를 설명하기 위한 도면으로써 도 2에 예시된 블록 사상 테이블을 사용하여 원 유니트와 대응되는 로그 유니트간의 관계를 설명한다. FIG. 3 is a view for explaining an example of mapping relationship between the original unit and the log unit in the control method of the flash memory according to the present invention. FIG. 3 illustrates a relationship between the original unit and the corresponding log unit using the block mapping table illustrated in FIG. Explain.
먼저, 각 원 유니트는 로그 유니트를 2개까지 가질 수 있다고 가정한다. 또한, 각 블록의 여유 영역에 해당 블록의 할당 맵이 기록되었다고 가정하며 도시된 각 유니트에서는 각 블록에 기록된 블록 할당 맵을 나타내고 있다. First, assume that each raw unit can have up to two log units. In addition, it is assumed that the allocation map of the corresponding block is recorded in the spare area of each block, and each unit shown shows a block allocation map recorded in each block.
여기에 도시된 바와 같이 원 유니트 PUN2에서 첫 번째 블록에는 논리적 블록 1(LBN1)이 기록되어 있으며 두 번째 블록에는 논리적 블록 3(LBN3)이 기록되어 있다. 또, 원 유니트 PUN3에서 첫 번째 블록에는 논리적 블록 2(LBN2)가 기록되어 있으며 두 번째 블록에는 논리적 블록 4(LBN4)가 기록되어 있다. As shown here, logical block 1 (LBN1) is recorded in the first block and logical block 3 (LBN3) is recorded in the second block of the original unit PUN2. In the original unit PUN3, logical block 2 (LBN2) is recorded in the first block, and logical block 4 (LBN4) is recorded in the second block.
원 유니트 PUN2의 논리적 블록 1과 3(LBN1, LBN3)은 갱신되어 무효화되었고 각각 로그 유니트 PUN20에 유효 블록이 기록되어 있다. 원 유니트 PUN3의 논리적 블록 2와 4(LBN2, LBN4)는 갱신되어 무효화되었고 각각 로그 유니트 PUN20과 로그 유니트 PUN 30에 기록되어 있다.
도 4는 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 읽기 연산에 대한 동작 흐름도이다.4 is an operation flowchart for a read operation in the control method of the flash memory according to the present invention.
먼저, 블록 사상 테이블을 사용하여 해당 데이터 블록이 속한 논리적 유니트 번호와 물리적 유니트 번호를 구하고(S11), 해당 원 유니트의 블록 할당 맵을 사용하여 해당 데이터 블록이 존재하는가를 검사한다(S12).First, the logical unit number and the physical unit number to which the corresponding data block belongs are obtained using the block mapping table (S11), and it is checked whether the corresponding data block exists using the block allocation map of the original unit (S12).
이때, 원 유니트 내에 해당 데이터 블록이 유효 상태로 존재하면(S14), 해당 데이터 블록에서 데이터를 읽고(S16), 해당 데이터 블록이 존재하지 않으면 에러 처리한다(S13).At this time, if the data block exists in the original unit in a valid state (S14), data is read from the data block (S16), and if the data block does not exist, an error process is performed (S13).
그러나, 만약 해당 데이터 블록이 무효 상태인 경우에는 블록 사상 테이블에서 원 유니트에 대응되는 로그 유니트를 결정한다(S15). 그런다음 결정된 로그 유니트의 블록 할당 맵을 사용하여 해당 데이터 블록에 유효 블록이 존재하는가 검사한 후(S17), 유효 블록이 존재할 경우 유효 블록에서 데이터를 읽을 수 있도록 한다(S19). 그러나, 결정된 로그 유니트에 의한 해당 데이터 블록이 없거나 유효 블록이 아니면 에러 처리한다(S18).However, if the corresponding data block is in an invalid state, the log unit corresponding to the original unit is determined in the block mapping table (S15). Then, the block allocation map of the determined log unit is used to check whether a valid block exists in the corresponding data block (S17), and if the valid block exists, data can be read from the valid block (S19). However, if the corresponding data block by the determined log unit does not exist or is not a valid block, error processing is performed (S18).
도 5는 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 쓰기 연산에 대한 동작 흐름도이다.5 is an operation flowchart for a write operation in the control method of the flash memory according to the present invention.
먼저, 블록 사상 테이블을 사용하여 해당 데이터 블록이 속할 논리적 유니트 번호와 물리적 유니트 번호에 의해 원 유니트를 결정한다(S21). 그런다음 해당 원 유니트의 블록 할당 맵을 사용하여 해당 데이터 블록이 존재하는 가를 검사한다(S22).First, the original unit is determined using the block mapping table based on the logical unit number and the physical unit number to which the corresponding data block belongs (S21). Then, it is checked whether the corresponding data block exists using the block allocation map of the corresponding original unit (S22).
이때 원 유니트 내에 해당 데이터 블록이 존재하지 않으면 원 유니트에서 가용 블록을 할당한 후 가용 블록에 데이터를 기록하고(S23), 블록 할당 맵에서 블록의 상태를 유효로 기록하고 해당 논리적 블록 번호를 기록한다(S25).In this case, if the corresponding data block does not exist in the original unit, the available unit is allocated to the available block, and then the data is recorded in the available block (S23), the state of the block is valid in the block allocation map and the corresponding logical block number is recorded. (S25).
그러나, 단계 S22에서 해당 데이터 블록이 존재하면 원 유니트에 대응되는 로그 유니트를 결정한 후(S24), 로그 유니트에 해당 블록이 존재하는지를 검사한다(S26).However, if the corresponding data block exists in step S22, after determining the log unit corresponding to the original unit (S24), it is checked whether the block exists in the log unit (S26).
그래서, 해당 블록이 없는 경우에는 로그 유니트 내에 가용 블록이 있는가를 검사한다(S27). 그래서, 만약 가용 블록이 없다면 재생 연산을 수행한다(S28). Therefore, if there is no corresponding block, it is checked whether there is an available block in the log unit (S27). Thus, if there is no available block, the play operation is performed (S28).
그런데, 만약 가용 블록이 있다면 가용 블록에 데이터를 기록하고(S29), 블록 할당 맵에서 새로 기록된 블록의 상태를 유효로 기록하고 해당 논리적 블록 번호를 기록한다(S30). However, if there is an available block, data is recorded in the available block (S29), the state of the newly recorded block is validly recorded in the block allocation map and the corresponding logical block number is recorded (S30).
한편, 단계 S26에서 해당 블록이 있는 경우에는 단계 S27에서 S29까지 수행한 후, 블록 할당 맵에서 이전 블록을 무효로 기록하고 새로 기록된 블록의 상태를 유효로 기록하고 해당 논리적 블록 번호를 기록한다(S30).On the other hand, if there is a corresponding block in step S26, after performing steps S27 to S29, the old block is invalidated in the block allocation map, the state of the newly recorded block is valid and the corresponding logical block number is recorded ( S30).
도 6은 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 로그 유니트의 결정 과정에 대한 동작 흐름도이다.6 is a flowchart illustrating an operation of determining a log unit in a control method of a flash memory according to the present invention.
먼저, 블록 사상 테이블을 사용하여 원 유니트에 대응되어 할당된 로그 유니트가 있는가를 검사한다(S31). 만약 할당된 로그 유니트가 있다면 가용 블록을 가진 로그 유니트를 탐색한다(S33). 이때 이와 같은 로그 유니트가 있다면 로그 유니트를 사용하도록 해준다(S34). 그러나, 로그 유니트가 없다면 다른 원 유니트에 할당되어 사용 중인 로그 유니트에서 가용 블록을 가진 로그 유니트가 있는지를 검사한다(S32). 이때, 이러한 로그 유니트가 있다면 이 로그 유니트를 사용하도록 할당하며(S36), 만약 없다면 가용 유니트가 충분하게 남아있는지를 검사한다(S35). 따라서, 충분하지 않다면 재생 연산을 수행한다(S37). 그리고 충분하다면 가용 유니트에서 로그 유니트를 새로 할당한다(S38).First, it is checked whether there is a log unit allocated corresponding to the original unit using the block mapping table (S31). If there is an allocated log unit, the log unit having available blocks is searched for (S33). In this case, if there is such a log unit, the log unit is used (S34). However, if there is no log unit, it is checked whether there is a log unit with available blocks in the log unit that is allocated and used by another original unit (S32). At this time, if there is such a log unit, it is allocated to use the log unit (S36), and if not, it is checked whether enough available units remain (S35). Therefore, if it is not sufficient, the reproduction operation is performed (S37). If sufficient, the log unit is newly allocated from the available unit (S38).
그리고, 로그 유니트를 사용하도록 할당하거나(S36), 로그 유니트를 새로 할당한 후(S38)에 블록 사상 테이블을 갱신하여 해당 로그 유니트 정보를 기록한다(S39). After the log unit is allocated to use the log unit (S36) or the log unit is newly allocated (S38), the block mapping table is updated to record the log unit information (S39).
한편, 원 유니트에 대응되어 할당된 로그 유니트가 있는가를 검사하여(S31) 할당된 로그 유니트가 없다면, 다른 원 유니트에 할당되어 사용 중인 로그 유니트에서 가용 블록을 가진 로그 유니트가 있는지를 검사한다(S32). 이때, 이러한 로그 유니트가 있다면 이 로그 유니트를 사용하도록 할당하며(S36), 만약 없다면 가용 유니트가 충분하게 남아있는지를 검사한다(S35). 따라서, 충분하지 않다면 재생 연산을 수행한다(S37). 그리고 충분하다면 가용 유니트에서 로그 유니트를 새로 할당한다(S38).On the other hand, it is checked whether there is a log unit allocated corresponding to the original unit (S31), and if there is no allocated log unit, it is checked whether there is a log unit having an available block in the log unit allocated to the other original unit and being used (S32). . At this time, if there is such a log unit, it is allocated to use the log unit (S36), and if not, it is checked whether enough available units remain (S35). Therefore, if it is not sufficient, the reproduction operation is performed (S37). If sufficient, the log unit is newly allocated from the available unit (S38).
그리고, 로그 유니트를 사용하도록 할당하거나(S36), 로그 유니트를 새로 할 당한 후(S38)에 블록 사상 테이블을 갱신하여 해당 로그 유니트 정보를 기록한다(S39). Then, after allocating to use the log unit (S36) or allocating a new log unit (S38), the block mapping table is updated to record the corresponding log unit information (S39).
재생 연산은 두 가지 경우에 수행된다. 첫째는, 쓰기 연산인 도 5에서 로그 유니트 내에 가용 블록이 없다면 재생 연산이 수행된다. 둘째는, 로그 유니트 결정인 도 6에서 다른 원 유니트에 할당되어 사용 중인 로그 유니트에서도 가용 블록을 가진 로그 유니트가 없고 가용 유니트가 충분하지 않다면 재생할 로그 유니트를 선택한 후 재생 연산을 수행한다. Regeneration operations are performed in two cases. First, in FIG. 5, which is a write operation, if there are no available blocks in the log unit, a regeneration operation is performed. Second, if there is no log unit with available blocks and there are not enough available units in the log unit allocated to another original unit in Fig. 6, which is the log unit decision, the log unit to be reproduced is selected and then a regeneration operation is performed.
도 7은 본 발명에 따른 플래시 메모리의 제어 방법에 있어서 재생 연산에 대한 동작 흐름도이다.7 is an operation flowchart for a reproducing operation in the control method of the flash memory according to the present invention.
먼저, 가용 블록이 없는 로그 유니트에 대해서 대응되는 원 유니트의 개수만큼 가용 유니트가 있는가를 검사한다(S41). 예를 들어, 대응되는 원 유니트가 3개라면 가용 유니트도 3개가 필요하다. 만약 가용 유니트가 충분하지 않다면 에러 처리한다(S42). 그리고, 가용 유니트가 충분하다면 이를 할당하는데(S43) 할당된 가용 유니트들은 각각 원 유니트에 하나씩 대응된다. 원 유니트의 유효 블록과 로그 유니트의 유효 블록 중에서 원 유니트에 속한 유효 블록들을 원 유니트에 대응된 가용 유니트로 복사한다(S44). 그런다음, 새로운 원 유니트의 블록 할당 맵을 갱신하고(S45), 블록 사상 테이블에서 물리적 유니트 번호를 갱신한다(S46). 그런다음 로그 유니트와 각 원 유니트들을 삭제하여 가용 유니트로 변경한다(S47).First, it is checked whether there are as many available units as the number of corresponding original units for the log unit having no available block (S41). For example, if there are three corresponding original units, three usable units are required. If there are not enough available units, error processing (S42). And, if there are enough available units are allocated (S43), the allocated available units correspond to one original unit, respectively. The valid blocks belonging to the original unit among the valid blocks of the original unit and the valid blocks of the log unit are copied to an available unit corresponding to the original unit (S44). Then, the block allocation map of the new original unit is updated (S45), and the physical unit number is updated in the block mapping table (S46). Then, the log unit and each original unit are deleted and changed into an available unit (S47).
상기한 바와 같이 본 발명은 복수개의 블록으로 구성된 복수개의 유니트로 구성되어 읽기 및 쓰기 연산은 블록 단위로 수행되고 삭제 연산은 유니트 단위로 수행되는 플래시 메모리에서 원 유니트의 데이터 블록을 갱신하고자 할 때 갱신할 블록을 원 유니트에 대응되는 로그 유니트에 기록함에 있어서 원 유니트들이 복수개의 로그 유니트를 공유하도록 함으로써 유니트 내의 공간 사용률을 높여 가용 블록을 확보하기 위한 삭제 횟수를 줄일 수 있어 데이터 기록 및 갱신 효율을 높일 수 있는 이점이 있다.As described above, the present invention consists of a plurality of units composed of a plurality of blocks, so that read and write operations are performed in units of blocks, and delete operations are performed in units of units. In writing the block to be written to the log unit corresponding to the original unit, the original units share a plurality of log units, thereby increasing the space utilization in the unit, thereby reducing the number of deletions to secure the available blocks, thereby improving the data recording and updating efficiency. There is an advantage to this.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040070322A KR100638638B1 (en) | 2004-09-03 | 2004-09-03 | Method for controling flash memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040070322A KR100638638B1 (en) | 2004-09-03 | 2004-09-03 | Method for controling flash memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060021548A KR20060021548A (en) | 2006-03-08 |
KR100638638B1 true KR100638638B1 (en) | 2006-10-26 |
Family
ID=37128353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040070322A KR100638638B1 (en) | 2004-09-03 | 2004-09-03 | Method for controling flash memory device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100638638B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292435B2 (en) | 2008-11-21 | 2016-03-22 | Samsung Electronics Co., Ltd. | Memory device and method of operation |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100849221B1 (en) * | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory |
KR100858241B1 (en) | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | Hybrid-flash memory device and method for assigning reserved blocks therof |
KR100885181B1 (en) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | Memory system performing group mapping operation and address mapping method thereof |
KR101300821B1 (en) | 2007-07-04 | 2013-08-26 | 삼성전자주식회사 | Apparatus and method for preventing data loss of non-volatile memory |
KR101465789B1 (en) | 2008-01-24 | 2014-11-26 | 삼성전자주식회사 | Write and merge methods in memory card systems for reducing the number of page copies |
-
2004
- 2004-09-03 KR KR1020040070322A patent/KR100638638B1/en active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292435B2 (en) | 2008-11-21 | 2016-03-22 | Samsung Electronics Co., Ltd. | Memory device and method of operation |
Also Published As
Publication number | Publication date |
---|---|
KR20060021548A (en) | 2006-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8180955B2 (en) | Computing systems and methods for managing flash memory device | |
KR100526190B1 (en) | Remapping method for flash memory | |
US7702844B2 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
US7395384B2 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
KR100453053B1 (en) | Flash memory file system | |
US7814265B2 (en) | Single sector write operation in flash memory | |
KR100644602B1 (en) | Method for driving remapping for flash memory and flash memory architecture thereto | |
KR100684942B1 (en) | Adaptive flash memory control device with multiple mapping schemes and flash memory system havintg the same | |
JP5295778B2 (en) | Flash memory management method | |
US7877569B2 (en) | Reduction of fragmentation in nonvolatile memory using alternate address mapping | |
KR101329068B1 (en) | Nonvolatile memory with block management | |
USRE45222E1 (en) | Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table | |
KR100324028B1 (en) | Method for performing a continuous over-write of a file in a nonvolatile memory | |
KR100608602B1 (en) | Flash memory, Mapping controlling apparatus and method for the same | |
US20060020745A1 (en) | Fat analysis for optimized sequential cluster management | |
JP2009199625A (en) | Memory card, and method for controlling memory card and method for controlling nonvolatile semiconductor memory | |
JP2006040264A (en) | Control method of memory card, and control method of nonvolatile semiconductor memory | |
KR100703680B1 (en) | Flash file system | |
US20050169058A1 (en) | Data management apparatus and method used for flash memory | |
TWI399642B (en) | Nonvolatile memory with block management | |
KR100638638B1 (en) | Method for controling flash memory device | |
KR100745163B1 (en) | Method for managing flash memory using dynamic mapping table | |
KR20050102779A (en) | Design of nand flash memory file system |
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 | ||
N231 | Notification of change of applicant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121016 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20131001 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20141002 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20151014 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160927 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20181016 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20191203 Year of fee payment: 14 |
|
R401 | Registration of restoration |