KR100638638B1 - Method for controling flash memory device - Google Patents

Method for controling flash memory device Download PDF

Info

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
Application number
KR1020040070322A
Other languages
Korean (ko)
Other versions
KR20060021548A (en
Inventor
류연승
Original Assignee
명지대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 명지대학교 산학협력단 filed Critical 명지대학교 산학협력단
Priority to KR1020040070322A priority Critical patent/KR100638638B1/en
Publication of KR20060021548A publication Critical patent/KR20060021548A/en
Application granted granted Critical
Publication of KR100638638B1 publication Critical patent/KR100638638B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation 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

플래시 메모리의 제어 방법{METHOD FOR CONTROLING FLASH MEMORY DEVICE} Control method of flash memory {METHOD FOR CONTROLING FLASH MEMORY DEVICE}             

도 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 logical block 2 as shown here. First, it can be seen that logical block 2 is mapped to logical unit number 5 using the LBN-to-LUN mapping table shown in (a). Next, it can be seen that the logical unit number 5 maps to the physical unit number 3 using the LUN-to-PUN mapping table shown in (b). Thus, logical block 2 is written to an empty block of physical unit 3.

이때 각 유니트는 유니트 내의 블록의 할당 상태를 관리하기 위한 블록 할당 맵을 가지며, 블록 사상 테이블은 플래시 메모리의 특정 블록에 기록되고, 블록 할당 맵은 유니트 내의 특정 블록에 기록되거나 블록마다 가지는 여유 영역(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 logical unit 5 copies data from mapped physical unit 3 to physical unit 10, update the PUN value to 10 in the LUN-to-PUN table and the user can use logical unit number 5 as it is.

상술한 바와 같이 이렇게 플래시 메모리는 데이터 블록의 갱신을 해당 블록 에 직접 수행하려면 해당 블록을 포함하는 유니트의 삭제 연산이 요구되며 이 연산은 수행 시간이 오래 걸리고 수행 도중 전원 단절로 중단되는 경우 데이터의 유실을 초래할 수 있다. 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, logical blocks LBN 1 and 3 are mapped to logical unit LUN 1, and logical blocks LBN 2 and 4 are mapped. Is mapped to logical unit (LUN) 5.

그리고, 도 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, LUN 1 is mapped to one unit with PUN 2 and a log unit with PUN 20, and LUN 5 is mapped to PUN of 3 and PUN of log unit 20, and log unit 20 is shared. . In addition, the log unit to which LUN 3 is mapped has not yet been allocated. Therefore, when an update operation is requested for a block of LUN 3, a log unit is allocated and the corresponding physical unit number is recorded in the mapping table.

또한, 각 유니트는 유니트 내 블록의 할당 상태를 관리하기 위한 블록 할당 맵을 가지게 되는데, 이와 같은 블록 할당 맵은 유니트 내의 특정 블록에 기록되거나, 각 블록의 여유 영역에 유니트에 속한 해당 블록에 대한 정보(상태, 논리적 블록 번호 등)가 기록된다. 블록은 가용 블록(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에 기록되어 있다.Logical blocks 1 and 3 (LBN1, LBN3) of the original unit PUN2 are updated and invalidated, and valid blocks are written to the log unit PUN20, respectively. Logical blocks 2 and 4 (LBN2, LBN4) of the original unit PUN3 have been updated and invalidated, and are recorded in log unit PUN20 and log unit PUN 30, respectively.

도 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)

하나 이상의 블록에 데이터가 기록된 원 유니트내 블록들의 복사본이 저장되는 로그 유니트에 하나 이상의 원 유니트가 대응되도록 사상하여 로그 유니트를 결정하는 플래시 메모리의 제어 방법으로서, A control method of a flash memory for determining a log unit by mapping one or more original units to a log unit in which copies of blocks in the original unit in which data is written in at least one block are stored. (a) 사상 정보를 통해 원 유니트에 대응되어 할당된 로그 유니트가 있는가 검사하는 단계; (a) checking whether there is a log unit allocated corresponding to the original unit through the mapping information; (b) 상기 (a)단계에서 검사한 결과, 할당된 로그 유니트가 있으면 가용 블록을 가진 로그 유니트를 탐색하고, 할당된 로그 유니트가 없으면 아래의 (c) 단계의 가용블록을 가진 로그 유니트가 없는 경우로 넘어가는 단계; (b) As a result of the checking in step (a), if there is an allocated log unit, the log unit with available blocks is searched; if there is no allocated log unit, there is no log unit with available blocks in step (c) below. Step by step; (c) 상기 (b)단계에서 탐색한 결과, 가용 블록을 가진 로그 유니트가 있다면 해당 로그 유니트를 사용하도록 하고, 가용블록을 가진 로그 유니트가 없다면 다른 원 유니트에 할당되어 사용 중인 로그 유니트에서 가용 블록을 가진 로그 유니트가 있는가 검사하는 단계; (c) As a result of the search in step (b), if there is a log unit with available blocks, the corresponding log unit is used. If there is no log unit with available blocks, the available log unit is allocated to another original unit and is available. Checking whether there is a log unit with; (d) 상기 (c)단계에서 검사한 결과, 가용블록을 가진 로그 유니트가 있다면 해당 로그 유닛트를 사용하도록 할당하고, 가용블록을 가진 로그 유니트가 없다면 가용 유니트가 있는가를 검사하는 단계; (d) if the log unit having the available block exists as a result of the checking in step (c), allocating to use the corresponding log unit, and if there is no log unit having the available block, checking whether there is an available unit; (e) 상기 (d) 단계에서 검사한 결과, 가용 유니트가 없다면 재생연산을 수행하고, 가용 유니트가 있다면 이러한 가용 유니트에서 로그 유니트를 새로 할당하는 단계; 및 (e) performing a recalculation operation if there is no available unit as a result of the inspection in step (d) and allocating a log unit newly from the available unit if there is an available unit; And (f) 상기 (d), (e) 단계에서 로그 유닛을 할당한 후에 사상정보에 해당 로그 유니트 정보를 기록하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리의 제어 방법. and (f) recording the log unit information in the mapping information after allocating the log units in the above steps (d) and (e). 삭제delete 제 1항에 있어서, 상기 사상 정보는 블록 사상 테이블인 것을 특징으로 하는 플래시 메모리의 제어 방법. The method of claim 1, wherein the mapping information is a block mapping table. 제 1항에 있어서, 상기 로그 유니트는 상기 원 유니트와 같은 크기로 구성되거나 여러 개의 유니트로 구성된 것을 특징으로 하는 플래시 메모리의 제어 방법. The method of claim 1, wherein the log unit is configured to have the same size as the original unit or is composed of a plurality of units.
KR1020040070322A 2004-09-03 2004-09-03 Method for controling flash memory device KR100638638B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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