WO2012008731A2 - 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 - Google Patents
블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 Download PDFInfo
- Publication number
- WO2012008731A2 WO2012008731A2 PCT/KR2011/005101 KR2011005101W WO2012008731A2 WO 2012008731 A2 WO2012008731 A2 WO 2012008731A2 KR 2011005101 W KR2011005101 W KR 2011005101W WO 2012008731 A2 WO2012008731 A2 WO 2012008731A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- blocks
- mapping information
- log
- recorded
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to a flash memory management apparatus and method, and more particularly to a flash memory management apparatus and method using a block-based mapping technique.
- NAND flash memory is widely used in the embedded, mass storage market due to its advantages such as low power, shock resistance and fast random read.
- existing flash memory devices do not implement devices with maximum performance due to the inherent physical characteristics of flash memory.
- the unique physical features of flash memory include: To perform a write, an erase must be preceded. Read / write is performed in units of pages, while erase is performed in blocks. The time spent on reading and writing is different.
- a flash translation layer (FTL) is conventionally used.
- FTL flash translation layer
- the biggest role of FTL is address translation and garbage collection. Since the host requests read / write sector by sector based on the logical address, the actual data is to be recorded and the address to be read must be converted into a physical address.
- the FTL manages mapping information that defines the relationship between logical and physical addresses. The operation of this FTL is called address translation.
- address translation On the other hand, the collection of unnecessary information refers to the task of securing an empty space by deleting appropriate blocks. Since flash memory is slow to erase, even though data is deleted from the host's point of view, the mapping information is internally lost, and the actual data is not deleted.
- the FTL performs a function of collecting unnecessary information and deletes the data to secure an empty space.
- the user may shut down normally, but the power supply may be suddenly interrupted. This condition is called power failure.
- a flash memory recovery method is not implemented in response to a power failure, the changed data immediately before the power failure occurs may disappear, and further, the entire data may not be recoverable.
- power failure recovery is ensured by allocating a certain region among physical blocks as a map block and storing it in the map block whenever the mapping information is changed.
- the method of guaranteeing the power failure recovery in this manner is stored in the flash memory whenever the mapping information changes, which causes the performance of the flash memory.
- the map block of the existing log block-based FTL has a data block map table in which mapping information between a physical block number (PBN) and a logical block number (LBN) of the data block is recorded.
- a data block map table and a log block map table that shows the location of the log block in use are recorded.
- mapping information is changed once when a log block is newly allocated, and mapping information is changed once more as the data block is changed after merging. Therefore, the existing log block-based FTL requires at least two write operations to manage mapping information in executing simple writes.
- the method of recording mapping information changed by performing a write operation on the map block as in the conventional method means that additional writes to the map block are required in addition to the requested operation whenever a write or unnecessary data collection occurs. .
- the write operation takes a long time due to the characteristics of the flash memory.
- the map block reconstruction operation is required to secure the space in the map block.
- the map block reconstruction is an operation of deleting an existing map block and storing a map table existing in the DRAM in a newly allocated map block. Since such additional operations occur very frequently while the flash memory is operating, there is a problem in that the cost consumed for power failure recovery increases, resulting in a decrease in overall performance.
- An object of the present invention is to provide an apparatus and method for managing a flash memory capable of improving the overall performance of a flash memory by eliminating an additional write operation for writing mapping information for power failure recovery.
- Another technical problem to be solved by the present invention is to write a program for executing a flash memory management method on a computer that can improve the overall performance of the flash memory by eliminating an additional write operation for recording mapping information for power failure recovery.
- a flash memory management apparatus includes: a mapping information generator configured to generate mapping information to be recorded in a spare area set in a page constituting a block; A mapping information recording unit which records mapping information generated corresponding to the block in a spare area set in the block when a write operation is performed on the block; And a mapping information recovery unit for restoring the map table based on the mapping information recorded in the spare area of the block when a power failure occurs.
- a flash memory management method comprising: a mapping information generation step of generating mapping information to be recorded in a spare area set in a page constituting a block; A mapping information recording step of recording mapping information generated corresponding to the block in a spare area set in the block when a write operation is performed on the block; And a mapping information restoration step of restoring the map table based on the mapping information recorded in the spare area of the block when a power failure occurs.
- an additional write operation for recording mapping information by writing data necessary for a power failure recovery process in a spare region when performing a write operation on an allocated log block. Can be removed. Also, when the empty space of the map block is used up, there is no need to perform the merging process. This significantly reduces the cost for power outages, improving overall flash memory performance.
- FIG. 1 is a diagram showing the configuration of a preferred embodiment of a flash memory management apparatus according to the present invention
- FIG. 2 is a diagram illustrating a case in which data is sequentially stored in all pages of an allocated log block so that the LBN of the log block is changed to a data block.
- FIG. 3 is a diagram illustrating a case where a valid page copy occurs to an allocated log block so that the log block is changed to a data block;
- FIG. 4 is a diagram illustrating a case where a new empty block is changed to a data block after data is copied to the block after being allocated as a log block;
- FIG. 5 is a diagram showing a method of recording mapping information for a spare area of a block.
- FIG. 6 is a flowchart illustrating a process of performing a preferred embodiment of the flash memory management method according to the present invention.
- FIG. 1 is a diagram showing the configuration of a preferred embodiment of a flash memory management apparatus according to the present invention.
- the flash memory management apparatus 100 includes a mapping information generation unit 110, a mapping information recording unit 120, and a mapping information restoration unit 130.
- the mapping information generator 110 generates mapping information to be recorded in the spare area set in the first page of the block.
- the mapping information may be recorded in a spare area set in an arbitrary page among the pages constituting the block.
- the mapping information restoring unit 130 needs to know the page in which the mapping information is recorded in advance in case of power failure recovery. Find out.
- the log block is a kind of cache block for overwriting, and once written, it is used to overcome the physical characteristics of NAND flash memory that cannot be reused until deleted.
- the mapping information is composed of a writing history field, a block type field, a logical block number field and a counter field.
- the write history field records a value indicating whether data has been written to the block.
- the value of the corresponding block is maintained at '1'. Therefore, when the write operation of data is not performed for the allocated block, the value of the write history field is kept as '1'.
- the value of the write history field is set to '0'. maintain. In this way, since '0' or '1' is recorded in the writing experience field, only one bit needs to be allocated.
- the type of block may be represented by the letters 'U', 'N' and 'D', or it may be represented by a binary number such as '00', '01' and '10'. If the type of the block is expressed as a character, 1 byte should be allocated to the block type field. If it is represented as binary, only 2 bits need to be allocated.
- 'U' or '01' means writing on the first page is possible
- 'N' or '00' means writing on the first page is not possible.
- 'D' or '10' means that the current block is used as a data block.
- the block type field is needed because two cases exist when a log block is merged into a data block.
- a log block that has been allocated as shown in FIGS. 2 and 3 is changed to a data block.
- the flash memory since the flash memory is basically not overwritten, the write operation cannot be performed on the first page of the data block generated by the change of the log block. Therefore, 'N' or '00' is recorded in the block type field indicating that a write operation is not possible on the first page.
- a new empty block is allocated to a log block, and then data is copied to the block and then changed to a data block.
- 'U' or '01' is written to indicate that a write operation is possible on the first page, and 'D' is displayed in the block type field because the newly allocated log block will be a data block. Or '10' is recorded.
- a logical block number (LBN) corresponding to a physical block number (PBN) of the corresponding block is recorded. Since the log block unit mapping technique uses a block unit map table, the LBN should be recorded for each block to be used.
- an order value indicating a block allocation order is recorded. The size of this sequence value is 4,096 blocks for a 2 gigabyte flash memory, and 4 bytes are enough to indicate the allocation order without overflow because the P / E (Program / Erase) cycle is 10,000.
- the order value recorded in the counter field is incremented by 1 each time a block is allocated.
- This order value has a different meaning depending on the value recorded in the block type field.
- n the maximum number of allocated 'N' log blocks
- each LBN has the largest order value among the blocks in which the maximum order value is recorded. Only n blocks are valid log blocks. Blocks smaller than the maximum order value are changed into data blocks through merge, and the data block map table needs to be updated.
- a new data block is created and stopped.
- the order value for the LBN is the maximum block, but the contents of all pages are not normally recorded.
- the following process is required during the recovery process. First, find the log block and data block that were merged. This is done by finding the block with the largest order value among the log blocks with the same LBN and the second largest order block among the data blocks. To check whether the merge operation is completed normally, check if the data of the two blocks are the same as the data of the block having the maximum order value.
- the mapping information recording unit 120 records the mapping information generated by the mapping information generating unit 110 in the spare area of the first page of the block when a write operation is performed on the newly allocated block.
- Table 1 describes the structure of blocks and pages of a 2-gigabyte multilevel cell flash memory.
- Table 1 division value The number of blocks in the chip 4096 pcs The number of pages in the block All 128 Data page size 4 Kbytes The size of the spare area on the page 128 bytes
- mapping information recording unit 120 records mapping information including a writing history field, a block type field, a logical block number field, and a counter field in a part of a spare area of a first page of a block.
- mapping information including a writing history field, a block type field, a logical block number field, and a counter field in a part of a spare area of a first page of a block.
- the mapping information recording unit 120 records the mapping information in the spare area of the first page of the log block, and is recorded in the map block. Since the update operation is not performed on, no additional write operation is performed on the map block.
- the mapping information restorer 130 restores the map table based on the mapping information recorded in the spare area of the first page of the log block when a power failure occurs.
- a map table for a data block and a map table for a block used as a log block just before a power failure occur are required.
- the present invention requires a new method since the mapping relationship changed after the system boot is not recorded in the map block.
- the update of the map table stored in the map block does not update the map table of the map block with respect to the usual flush signal, but updates the map table only with the flush signal due to system shutdown.
- the mapping information restoration unit 130 reads mapping information recorded in the spare area of the first page of every block for restoring the map table. At this time, the mapping information restoring unit 130 determines the corresponding type among the data block, the log block, and the unused block according to the mapping information recorded in the spare area of the first page of each block, and determines the corresponding type in the map table. Reflect. If there are a plurality of log blocks in which 'U' or '1' is recorded in the block type field, the mapping information restorer 130 starts with 'U' or '01 in the block type field from the log block having the largest order value. 'Is determined to be as valid log blocks as the maximum number of valid blocks that can be recorded.
- the block with the highest order value is the most recent log block that the system used before the power failure.
- the mapping information restorer 130 may determine the maximum number of valid blocks among blocks having the maximum order value for each LBN. It is determined as valid log block. In this case, since blocks having an order value smaller than the maximum order value are already changed to data blocks, an update of the map table for these data blocks is required.
- FIG. 6 is a flowchart illustrating a process of performing a preferred embodiment of the flash memory management method according to the present invention.
- the mapping information generation unit 110 generates mapping information including a writing history field, a block type field, a logical block number field, and a counter field to be recorded in a reserved area set on the first page of the allocated block ( S400).
- the mapping information recording unit 120 records the mapping information generated by the mapping information generating unit 110 in the spare area of the first page of the block (S405).
- the mapping information restorer 130 sequentially writes the spare area of the first page of the block for each block.
- the mapping information is read (S415).
- the mapping information restorer 130 checks the value of the write history field of the read mapping information (S420). If the value of the write history field is '0' (that is, when the write operation is performed), the mapping information restorer 130 determines whether the corresponding block is a log block or a data block (S425). If the block is a log block, the mapping information restorer 130 checks the value recorded in the block type field (S430). At this time, if the value recorded in the block type field is 'U', the mapping information restorer 130 subtracts the number of valid blocks from the maximum order value assigned to the block by the order value recorded in the counter field. It is checked whether there exists between the assigned maximum order values (S435).
- the mapping information restorer 130 determines that the block is a valid log block and updates the map table of the log block (S440). In contrast, if the order value of the block does not satisfy the condition of step S435, the mapping information restorer 130 ignores the block (S445). Therefore, if the number of blocks that can be expressed as 'U' is a, from the block having the largest order value to the block in which the a-th largest order value is recorded, regardless of the type of the block, it is valid. It is determined to be a log block.
- the mapping information restorer 130 checks whether the order value recorded in the counter field is the largest (S450). If the order value of the block satisfies the condition of step S450, the mapping information restorer 130 determines that the block is a valid log block and performs step S440 to update the map table of the log block. On the other hand, there are cases where different blocks have the same LBN. In this case, the block having the largest order value among the blocks having the same LBN is determined as a valid log block. In contrast, if the order value of the block does not satisfy the condition of step S450, the mapping information restorer 130 determines the block as a data block and updates the map table of the data block (S455).
- the mapping information restorer 130 checks whether the order value recorded in the counter field is the largest (S460). If the order value of the block satisfies the condition of step S460, the mapping information restorer 130 determines that the block is a valid data block and performs step S455 to update the map table of the data block. In contrast, if the order value of the block does not satisfy the condition of step S460, the mapping information restorer 130 ignores the block. In addition, the mapping information restoring unit 130 confirms that the value of the writing career field is '1' in step S420, updates the log block map table by performing step S440, ignores the block, or performs step S455.
- mapping information restoration unit 130 After updating the map table, it is checked whether the corresponding block is the last block (S465). If the block is the last block, the mapping information restoration unit 130 ends the restoration procedure of the mapping information. If the block is not the last block, the mapping information restoration unit 130 performs steps S420 to S465 for the next block. do.
- a power failure may occur while the merger is being performed in the FTL.
- This check is performed by comparing the data of the log block with the highest order value with the same LBN as the block with the second largest order among the data blocks with the same LBN.
- the flash memory management apparatus and method according to the present invention eliminates an additional write operation for recording mapping information in which a relationship between a logical block number and a physical block number is defined, and is used to manage a map block. This can also reduce writes, thus improving the overall performance of the flash memory.
- additional write operations are inevitable because the changed mapping information is stored in the map block.
- Such change of mapping information occurs in the process of merging data, and the merge operation occurs when a new write operation needs to be performed while the space of the previously used log block is exhausted.
- the flash memory management apparatus and method according to the present invention can eliminate the problems occurring in the prior art by recording information for restoring the mapping relationship in the spare area of the first page when a new log block is allocated.
- the power failure recovery method using the flash memory management apparatus and method according to the present invention requires reading the first page of every block, which consumes additional time compared to the conventional method.
- the time required is less than 1 second per 2 gigabytes, and if the storage device is implemented as a multi-channel or multi-way, the recovery time is proportional to the increase of the flash memory. Does not increase.
- the power failure recovery operation is not a normal operation, the write operation for updating the map block can be eliminated in a general situation even if the time consumed in this operation is slightly increased, thereby improving the performance of the overall flash memory.
- the invention can also be embodied as computer readable code on a computer readable recording medium.
- the computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include.
- the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
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
블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법이 개시된다. 매핑 정보 생성부는 블록을 구성하는 페이지에 설정된 예비 영역에 기록될 매핑 정보를 생성한다. 매핑 정보 기록부는 블록에 대한 쓰기 동작이 수행될 때 블록에 설정된 예비 영역에 블록에 대응하여 생성된 매핑 정보를 기록한다. 매핑 정보 복원부는 정전 발생시 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 맵 테이블을 복원한다. 본 발명에 따르면, 매핑 정보의 기록을 위한 추가적인 쓰기 동작을 제거할 수 있으며, 정전 복구를 위한 비용을 대폭 감소시킬 수 있어 전체적인 플래시 메모리의 성능을 향상시킬 수 있다.
Description
본 발명은 플래시 메모리 관리 장치 및 방법에 관한 것으로, 보다 상세하게는 블록 단위의 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법에 관한 것이다.
NAND 플래시 메모리(flash memory)는 임베디드, 대용량 저장장치 시장에서 저전력, 내충격성(shock resistance), 빠른 랜덤 읽기(random read) 등의 장점으로 인해 널리 사용되고 있다. 그러나 기존의 플래시 메모리 장치는 플래시 메모리가 지닌 고유한 물리적 특성에 의해 최대 성능을 가진 장치를 구현하지 못하고 있는 실정이다. 플래시 메모리가 가진 고유한 물리적 특징은 다음과 같다. 쓰기(write)를 수행하기 위해서는 소거(erase)가 선행되어야 하고, 읽기/쓰기(read/write)는 페이지(page) 단위로 수행되는 반면에 소거(erase)는 블록(block) 단위로 수행되며, 읽기(read)와 쓰기(write)에 소모되는 시간이 상이하다.
이와 같은 플래시 메모리가 지닌 특징에 기인한 단점을 극복하기 위해 기존에는 플래시 변환 층(Flash Translation Layer : FTL)을 사용하고 있다. FTL의 가장 큰 역할은 주소 변환(address translation)과 불필요한 정보의 수집(garbage collection)이다. 호스트는 논리적 주소(Logical Address)를 기초로 섹터(sector) 단위로 읽기/쓰기 요청을 하므로, 실제 데이터가 기록되고 읽혀질 주소는 물리적 주소(Physical Address)로 변환되어야 한다. FTL은 이러한 논리적 주소와 물리적 주소의 관계를 정의한 매핑(mapping) 정보를 관리하며, 이러한 FTL의 동작을 주소 변환(address translation)이라고 한다. 한편 불필요한 정보의 수집은 적절한 블록을 삭제하여 빈 공간을 확보하는 작업을 의미한다. 플래시 메모리는 소거가 느리기 때문에 호스트의 관점에서 데이터를 삭제하더라도 내부적으로 매핑 정보가 사라진 것일 뿐, 실제 데이터가 삭제된 상태는 아니다. 따라서 플래시 메모리를 지속적으로 사용하다 보면 호스트의 입장에서는 빈 공간이 존재하나 플래시 메모리 칩 내부에는 사용할 수 있는 공간이 없는 상태가 된다. 이때 FTL이 불필요한 정보의 수집 기능을 수행하여 데이터를 삭제함으로써 빈 공간을 확보하게 된다.
한편 사용자가 플래시 메모리를 사용하다 보면 정상적으로 종료할 수도 있으나 갑작스럽게 전원 공급이 중단될 수도 있다. 이러한 상태를 정전(power failure)이라 한다. 정전에 대응하여 플래시 메모리의 복구 방법이 구현되어 있지 않다면 정전 발생 직전에 변경된 데이터가 사라질 수 있으며, 나아가 전체 데이터를 복구할 수 없는 경우가 발생할 수도 있다. 이를 방지하기 위해서 로그 블록 기반 FTL의 경우에 물리적 블록 중에서 일정한 영역을 맵 블록으로 할당하여 매핑 정보가 변경될 때마다 이를 맵 블록에 저장함으로써 정전 복구를 보장하고 있다. 그러나 이와 같은 방법으로 정전 복구를 보장하는 방법은 매핑 정보의 변경시마다 이를 플래시 메모리에 저장하기 때문에 플래시 메모리의 성능 저하의 원인으로 작용한다.
이와 관련하여 기존의 로그 블록 기반 FTL의 맵 블록에는 데이터 블록의 물리적 블록 번호(Physical Block Number : PBN)와 논리적 블록 번호(Logical Block Number : LBN) 사이의 매핑 정보가 기록되어 있는 데이터 블록 맵 테이블(data block map table)과 사용 중인 로그 블록의 위치를 알 수 있는 로그 블록 맵 테이블(log block map table)이 기록되어 있다. FTL에서 쓰기나 불필요한 데이터 수집을 수행하게 되면 LBN과 PBN의 매핑 관계가 변경되며, 이때 정전 복구를 보장하기 위해서는 임의의 순간에서의 전체 맵 테이블을 복원할 수 있어야 한다. 이를 위해 기존에는 매핑 관계가 바뀔 때마다 맵 블록에 쓰기를 수행하여 변경된 정보를 기록하는 방법을 취하고 있다.
간단한 예를 한 가지 들면, 페이지의 쓰기 동작을 수행하고자 하는 경우에 먼저 로그 블록 하나를 할당받고, 그곳에 데이터를 채운다. 이후 동작에서 합병(merge)을 수행하면 해당 로그 블록은 데이터 블록으로 변경된다. 이때 매핑 정보의 관점에서는 로그 블록을 새로 할당받을 때 매핑 정보가 한 번 바뀌고, 합병 이후에 데이터 블록으로 바뀌면서 매핑 정보가 한 번 더 바뀌게 된다. 따라서 기존의 로그 블록 기반 FTL은 간단한 쓰기를 실행함에 있어서 매핑 정보 관리를 위해 최소 두 번의 쓰기 동작이 필요하다.
이상에서 설명한 바와 같이 기존 방식과 같이 맵 블록에 쓰기 동작을 수행함으로써 변경되는 매핑 정보를 기록하는 방법은 쓰기나 불필요한 데이터 수집이 발생할 때마다 요청된 동작 이외에 맵 블록에 대한 추가적인 쓰기가 필요함을 의미한다. 이 과정에서 플래시 메모리의 특성상 쓰기 동작의 수행시간이 오래 소요되며, 나아가 맵 블록으로 지정된 공간을 다 소모하게 되면 맵 블록 내에서도 공간을 확보하기 위한 맵 블록 재구성 동작이 필요하게 된다. 맵 블록 재구성은 기존에 사용하던 맵 블록을 삭제하고, DRAM에 존재하는 맵 테이블을 새로 할당된 맵 블록에 저장하는 동작이다. 이와 같은 추가적인 동작은 플래시 메모리가 동작하면서 매우 빈번하게 발생하기 때문에 정전 복구를 위해 소모되는 비용이 커져 전체적 성능 하락을 초래하게 되는 문제가 있다.
본 발명이 해결하고자 하는 기술적 과제는, 정전 복구를 위해 매핑 정보를 기록하기 위한 추가적인 쓰기 동작을 제거하여 플래시 메모리의 전체적인 성능을 향상시킬 수 있는 플래시 메모리 관리 장치 및 방법을 제공하는 데 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 정전 복구를 위해 매핑 정보를 기록하기 위한 추가적인 쓰기 동작을 제거하여 플래시 메모리의 전체적인 성능을 향상시킬 수 있는 플래시 메모리 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리 관리 장치는, 블록을 구성하는 페이지에 설정된 예비 영역에 기록될 매핑 정보를 생성하는 매핑 정보 생성부; 상기 블록에 대한 쓰기 동작이 수행될 때 상기 블록에 설정된 예비 영역에 상기 블록에 대응하여 생성된 매핑 정보를 기록하는 매핑 정보 기록부; 및 정전 발생시 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 맵 테이블을 복원하는 매핑 정보 복원부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리 관리 방법은, 블록을 구성하는 페이지에 설정된 예비 영역에 기록될 매핑 정보를 생성하는 매핑 정보 생성 단계; 상기 블록에 대한 쓰기 동작이 수행될 때 상기 블록에 설정된 예비 영역에 상기 블록에 대응하여 생성된 매핑 정보를 기록하는 매핑 정보 기록 단계; 및 정전 발생시 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 맵 테이블을 복원하는 매핑 정보 복원 단계;;를 갖는다.
본 발명에 따른 플래시 메모리 관리 장치 및 방법에 의하면, 할당된 로그 블록에 대한 쓰기 동작을 수행할 때 예비 영역(spare region)에 정전 복구 과정에서 필요한 데이터를 기록함으로써 매핑 정보의 기록을 위한 추가적인 쓰기 동작을 제거할 수 있다. 또한 맵 블록의 빈 공간을 모두 소모하였을 때 합병 과정을 수행할 필요가 없게 된다. 따라서 정전 복구를 위한 비용을 대폭 감소시킬 수 있어 전체적인 플래시 메모리의 성능을 향상시킬 수 있다.
도 1은 본 발명에 따른 플래시 메모리 관리 장치에 대한 바람직한 실시예의 구성을 도시한 도면,
도 2는 할당되었던 로그 블록의 모든 페이지에 순차적으로 데이터가 저장되어 로그 블록의 LBN이 데이터 블록으로 변경되는 경우를 도시한 도면,
도 3은 할당되었던 로그 블록으로 유효 페이지 복사가 발생하여 로그 블록이 데이터 블록으로 변경되는 경우를 도시한 도면,
도 4는 새로운 빈 블록이 로그 블록으로 할당된 후 해당 블록에 데이터가 복사된 후 데이터 블록으로 변경되는 경우를 도시한 도면,
도 5는 블록의 예비 영역에 대한 매핑 정보의 기록 방법을 도시한 도면, 그리고,
도 6은 본 발명에 따른 플래시 메모리 관리 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 플래시 메모리 관리 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 플래시 메모리 관리 장치에 대한 바람직한 실시예의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 플래시 메모리 관리 장치(100)는 매핑 정보 생성부(110), 매핑 정보 기록부(120) 및 매핑 정보 복원부(130)를 구비한다.
매핑 정보 생성부(110)는 블록의 첫 페이지에 설정된 예비 영역에 기록될 매핑 정보를 생성한다. 이때 매핑 정보는 블록을 구성하는 페이지 중에서 임의의 페이지에 설정된 예비 영역에 기록될 수 있다. 이 경우 매핑 정보 복원부(130)는 정전 복구시 매핑 정보가 기록되어 있는 페이지를 사전에 알고 있어야 하며, 만약 이를 모르고 있다면 각 페이지의 예비 영역에 기록된 정보를 독출하여 매핑 정보가 기록된 페이지를 찾아낸다. 로그 블록은 겹쳐 쓰기를 위한 일종의 캐시 블록으로 한번 쓰기를 수행하면 삭제를 하기 전까지 다시 사용할 수 없는 낸드 플래시 메모리의 물리적 특성을 극복하기 위해 사용된다. 매핑 정보는 쓰기 경력 필드, 블록 종류 필드, 논리적 블록 번호 필드 및 카운터 필드로 구성된다.
쓰기 경력 필드에는 해당 블록에 데이터의 쓰기가 이루어졌는지 여부를 나타내는 값이 기록된다. 플래시 메모리는 각각의 블록이 소거된 상태(즉, 빈 공간만으로 이루어져 있는 상태)로 남아 있는 경우에는 해당 블록의 값이 '1'로 유지된다. 따라서 할당받은 블록에 대해 데이터의 쓰기 동작이 수행되지 않은 상태일 때에는 쓰기 경력 필드의 값은 '1'로 유지되고, 데이터의 쓰기 동작이 수행된 상태일 때에는 쓰기 경력 필드의 값이 '0'으로 유지된다. 이와 같이 쓰기 경력 필드에는 '0' 또는 '1'이 기록되므로, 1 비트만 할당되면 된다.
다음으로 블록 종류 필드에는 블록의 종류에 대한 정보가 기록된다. 블록의 종류는 'U', 'N' 및 'D'라는 문자로 표현되거나 '00', '01' 및 '10'과 같이 이진수로 표현될 수 있다. 만약 블록의 종류를 문자로 표현하면 블록 종류 필드로 1 바이트가 할당되어야 하며, 이진수로 표현하면 2 비트만 할당되면 된다. 이와 같은 블록 종류 필드에 기록되는 값 중에서 'U' 또는 '01'은 첫 번째 페이지에 쓰기가 가능함을 의미하고, 'N' 또는 '00'은 첫 번째 페이지에 쓰기가 불가능함을 의미한다. 그리고 'D' 또는 '10'은 데이터 블록으로 현재 블록이 사용되고 있음을 의미한다.
블록 종류 필드가 필요한 이유는 로그 블록이 합병을 거쳐 데이터 블록으로 변경될 때 두 가지 경우가 존재하기 때문이다. 먼저, 도 2 및 도 3에 도시된 바와 같이 할당되었던 로그 블록이 데이터 블록으로 변경되는 경우이다. 이 경우에 플래시 메모리는 기본적으로 겹쳐 쓰기가 불가능하기 때문에 로그 블록의 변경에 의해 생성되는 데이터 블록의 첫 페이지에 쓰기 동작이 수행될 수 없다. 따라서 블록 종류 필드에는 첫 번째 페이지에 쓰기 동작이 가능하지 않음을 나타내는 'N' 또는 '00'이 기록된다. 다음으로, 도 4에 도시된 바와 같이 새로운 빈 블록이 로그 블록으로 할당된 후 해당 블록에 데이터가 복사된 후 데이터 블록으로 변경되는 경우이다. 먼저 할당되었던 로그 블록의 블록 종류 필드에는 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 'U' 또는 '01'이 기록되고, 새롭게 할당된 로그 블록은 데이터 블록이 될 것이기 때문에 블록 종류 필드에는 'D' 또는 '10'이 기록된다.
다음으로 논리적 블록 번호 필드에는 해당 블록의 물리적 블록 번호(Physical Block Number : PBN)에 대응되는 논리적 블록 번호(Logical Block Number : LBN)가 기록된다. 로그 블록 단위 매핑 기법은 블록 단위의 맵 테이블을 사용하기 때문에 이용하는 하나의 블록마다 LBN이 기록되어야 한다. 또한 카운터 필드에는 블록의 할당 순서를 나타내는 순서값이 기록된다. 이러한 순서값의 크기는 2 기가바이트 플래시 메모리의 경우, 블록의 수가 4,096개이며, P/E(Program/Erase) 사이클이 10,000이기 때문에 4 바이트면 오버플로가 발생하지 않고 할당 순서를 나타내는데 충분하다.
카운터 필드에 기록되는 순서값은 블록이 할당될 때마다 1씩 증가한다. 이러한 순서값은 블록 종류 필드에 기록되어 있는 값에 따라 상이한 의미를 갖는다. 블록 종류 필드에 'N' 또는 '00'이 기록되어 있는 블록의 경우에는 'N' 로그 블록의 최대 할당 개수가 n개라면, 각 LBN마다 최대 순서값이 기록되어 있는 블록 중에서 큰 순서값을 가진 n개 블록만 유효한 로그 블록이다. 그리고 최대 순서값보다 작은 블록은 합병을 통해 데이터 블록으로 변경된 것으로, 데이터 블록 맵 테이블에 대한 갱신이 필요하다. 이와 달리 블록 종류 필드에 'U' 또는 '01'이 기록되어 있는 블록의 경우에는 'U' 로그 블록의 최대 할당 개수가 m개라면, LBN에 상관없이 최대 순서값을 가진 블록에서부터 m번째 큰 값을 가진 블록까지 유효한 로그 블록이고 그보다 작은 순서값을 가진 블록은 사용되지 않는 블록이다.
만약 로그 블록과 데이터 블록의 합병 도중에 정전이 발생하였다면 새로운 데이터 블록이 생성되다 멈추게 된다. 이런 경우 LBN에 대한 순서값은 최대인 블록이지만 모든 페이지의 내용이 정상적으로 기록된 상태는 아니게 된다. 이를 확인하기 위해서 복구 과정 중에 다음의 과정이 필요하다. 먼저, 합병이 이루어 지던 로그 블록과 데이터 블록을 찾는다. 이것은 같은 LBN을 지닌 로그 블록 중 순서값이 가장 큰 블록과 데이터 블록 중에서 순서값이 두 번째로 큰 블록을 찾으면 된다. 합병 연산이 정상적으로 끝났는지의 확인은 이 두 블록의 데이터를 합병하였을 때 최대 순서값을 지닌 블록의 데이터와 동일한지 확인하면 된다.
매핑 정보 기록부(120)는 새로 할당받은 블록에 대한 쓰기 동작이 수행될 때 블록의 첫 페이지의 예비 영역에 매핑 정보 생성부(110)에 의해 생성된 매핑 정보를 기록한다. 표 1에는 2 기가바이트의 멀티 레벨 셀 플래시 메모리의 블록과 페이지의 구조가 기재되어 있다.
표 1
구분 | 값 |
칩 내의 블록 개수 | 4096 개 |
블록 내의 페이지 개수 | 128 개 |
데이터 페이지 크기 | 4 Kbytes |
페이지 내의 예비 영역의 크기 | 128 bytes |
도 5에는 로그 블록의 예비 영역에 대한 매핑 정보의 기록 방법이 도시되어 있다. 도 5를 참조하면, 매핑 정보 기록부(120)는 블록의 첫 번째 페이지의 예비 영역의 일부에 쓰기 경력 필드, 블록 종류 필드, 논리적 블록 번호 필드 및 카운터 필드로 구성된 매핑 정보를 기록한다. 종래의 정전 복구 기법은 새로운 로그 블록을 할당받을 때 맵 테이블에 대한 갱신이 발생하여 맵 블록에 1번의 페이지 쓰기 동작이 발생한다. 그리고 서로 다른 데이터 블록에 10번의 페이지의 쓰기 동작이 요청된 경우에 합병의 수행에 의해 10번의 맵 테이블에 대한 갱신이 발생하며, 맵 블록에 대해서는 이러한 정보들이 한 페이지 안에 포함되어 1번의 페이지 쓰기 동작이 발생한다. 이와 달리 본 발명에서는 서로 다른 블록에 10번의 페이지의 쓰기 동작이 요청된 경우에도 매핑 정보 기록부(120)가 매핑 정보를 로그 블록의 첫 페이지의 예비 영역에 기록할 뿐 맵 블록에 기록되어 있는 맵 테이블에 대한 갱신 동작은 수행하지 않으므로, 맵 블록에 대한 추가적인 쓰기 동작을 수행하지 않게 된다.
매핑 정보 복원부(130)는 정전 발생시 로그 블록의 첫 페이지의 예비 영역에 기록되어 있는 매핑 정보를 기초로 맵 테이블을 복원한다. 정전 발생시 데이터를 복원하기 위해서는 데이터 블록에 대한 맵 테이블과 정전이 발생하기 직전에 로그 블록으로 사용했던 블록에 대한 맵 테이블이 필요하다. 정전 발생시 종래의 정전 복구 기법은 계속적으로 변하는 LBN과 PBN의 매핑 관계가 맵 블록에 누적되어 기록되어 있기 때문에 이것만 읽으면 데이터 블록과 로그 블록 모두 복원이 가능하다. 이와 달리 본 발명은 시스템 부팅 이후 변화된 매핑 관계가 맵 블록에 기록되어 있지 않기 때문에 새로운 방법이 요구된다. 본 발명에서 맵 블록에 저장되어 있는 맵 테이블의 갱신은 평상시의 주기적인 플러쉬(flush) 신호에 대해서는 맵 블록의 맵 테이블을 갱신하지 않고 시스템 종료에 의한 플러쉬 신호에 대해서만 맵 테이블을 갱신한다.
매핑 정보 복원부(130)는 맵 테이블 복원을 위해 모든 블록의 첫 번째 페이지의 예비 영역에 기록되어 있는 매핑 정보를 읽는다. 이때 매핑 정보 복원부(130)는 각각의 블록의 첫 번째 페이지의 예비 영역에 기록되어 있는 매핑 정보에 따라 해당 블록을 데이터 블록, 로그 블록 및 사용하지 않는 블록 중에서 해당하는 종류를 판단하여 맵 테이블에 반영한다. 만약 블록 종류 필드에 'U' 또는 '1'이 기록되어 있는 로그 블록이 다수 존재하면, 매핑 정보 복원부(130)는 최대의 순서값을 가진 로그 블록부터 블록 종류 필드에 'U' 또는 '01'이 기록될 수 있는 최대 유효 블록의 개수만큼 유효한 로그 블록으로 판단한다. 이때 최대의 순서값을 가진 블록이 시스템이 정전 전에 사용하던 최신 로그 블록이다. 이와 달리 블록 종류 필드에 'N' 또는 '00'이 기록되어 있는 로그 블록이 다수 존재하면, 매핑 정보 복원부(130)는 각각의 LBN에 대하여 최대의 순서값을 가진 블록 중 최대 유효 블록의 개수만큼 유효한 로그 블록으로 판단한다. 이때 최대의 순서값보다 작은 순서값을 가진 블록들은 이미 데이터 블록으로 변경된 블록이므로, 이들 데이터 블록에 대한 맵 테이블의 갱신이 필요하다.
한편 합병 중에 정전이 발생하였을 경우를 판단하기 위해서 유효한 데이터 블록에 대한 검사가 필요하다. 이 검사는 같은 LBN을 가진 데이터 블록 중 순서값이 두 번째로 큰 블록과 같은 LBN을 가진 순서값이 가장 큰 로그 블록의 데이터를 비교하여 이루어진다.
도 6은 본 발명에 따른 플래시 메모리 관리 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 6을 참조하면, 매핑 정보 생성부(110)는 할당받은 블록의 첫 페이지에 설정된 예비 영역에 기록될 쓰기 경력 필드, 블록 종류 필드, 논리적 블록 번호 필드 및 카운터 필드로 구성된 매핑 정보를 생성한다(S400). 다음으로 매핑 정보 기록부(120)는 새로 할당받은 블록에 대한 쓰기 동작이 수행될 때 블록의 첫 페이지의 예비 영역에 매핑 정보 생성부(110)가 생성한 매핑 정보를 기록한다(S405). 이와 같이 블록의 첫 페이지의 예비 영역에 매핑 정보가 기록된 상태에서 정전이 발생하면(S410), 매핑 정보 복원부(130)는 각각의 블록에 대해 순차적으로 블록의 첫 번째 페이지의 예비 영역에 기록되어 있는 매핑 정보를 독출한다(S415). 그리고 매핑 정보 복원부(130)는 독출한 매핑 정보의 쓰기 경력 필드의 값을 확인한다(S420). 만약 쓰기 경력 필드의 값이 '0'이면(즉, 쓰기 동작이 수행된 상태이면), 매핑 정보 복원부(130)는 해당 블록이 로그 블록인지 데이터 블록인지를 판단한다(S425). 만약 해당 블록이 로그 블록이면, 매핑 정보 복원부(130)는 블록 종류 필드에 기록되어 있는 값을 확인한다(S430). 이때 블록 종류 필드에 기록되어 있는 값이 'U'이면, 매핑 정보 복원부(130)는 카운터 필드에 기록되어 있는 순서값이 블록에 할당된 최대 순서값에서 유효 블록의 개수를 감한 수와 블록에 할당된 최대 순서값 사이에 존재하는지 여부를 확인한다(S435). 만약 해당 블록의 순서값이 S435 단계의 조건을 만족하면, 매핑 정보 복원부(130)는 해당 블록을 유효한 로그 블록으로 판단하고 로그 블록의 맵 테이블을 갱신한다(S440). 이와 달리 해당 블록의 순서값이 S435 단계의 조건을 만족하지 않으면, 매핑 정보 복원부(130)는 해당 블록을 무시한다(S445). 따라서 'U'로 표시될 수 있는 블록의 수가 a개라면, 블록의 종류에 상관없이 순서값이 기록되어 있는 블록 중에서 최대의 순서값을 갖는 블록으로부터 a번째 큰 순서값이 기록되어 있는 블록까지 유효한 로그 블록으로 판단된다.
다음으로 로그 블록으로 판단된 블록의 블록 종류 필드에 기록되어 있는 값이 'N'이면, 매핑 정보 복원부(130)는 카운터 필드에 기록되어 있는 순서값이 가장 큰지 여부를 확인한다(S450). 만약 해당 블록의 순서값이 S450 단계의 조건을 만족하면, 매핑 정보 복원부(130)는 해당 블록을 유효한 로그 블록으로 판단하고 S440 단계를 수행하여 로그 블록의 맵 테이블을 갱신한다. 한편 상이한 블록들이 동일한 LBN을 가지는 경우가 존재한다. 이 경우 동일한 LBN을 가진 블록들 중에서 순서값이 가장 큰 블록을 유효한 로그 블록으로 판단한다. 이와 달리 해당 블록의 순서값이 S450 단계의 조건을 만족하지 않으면, 매핑 정보 복원부(130)는 해당 블록을 데이터 블록으로 판단하고 데이터 블록의 맵 테이블을 갱신한다(S455).
한편 S425 단계에서 해당 블록이 데이터 블록으로 판단되면, 매핑 정보 복원부(130)는 카운터 필드에 기록되어 있는 순서값이 가장 큰지 여부를 확인한다(S460). 만약 해당 블록의 순서값이 S460 단계의 조건을 만족하면, 매핑 정보 복원부(130)는 해당 블록을 유효한 데이터 블록으로 판단하고 S455 단계를 수행하여 데이터 블록의 맵 테이블을 갱신한다. 이와 달리 해당 블록의 순서값이 S460 단계의 조건을 만족하지 않으면, 매핑 정보 복원부(130)는 해당 블록을 무시한다. 또한 매핑 정보 복원부(130)는 S420 단계에서 쓰기 경력 필드의 값이 '1'로 확인되거나, S440 단계를 수행하여 로그 블록 맵 테이블을 갱신하거나, 블록을 무시하거나, S455 단계를 수행하여 데이터 블록 맵 테이블을 갱신한 후에 해당 블록이 마지막 블록인지 확인한다(S465). 만약 해당 블록이 마지막 블록이면 매핑 정보 복원부(130)는 매핑 정보의 복원 절차를 종료하고, 해당 블록이 마지막 블록이 아니면 매핑 정보 복원부(130)는 다음 블록에 대해 S420 단계 내지 S465 단계를 수행한다.
한편 FTL에서 합병을 수행하던 중 정전이 발생할 수 있으므로, 이에 대한 검사가 필요하다. 이 검사는 동일한 LBN을 가진 데이터 블록 중 순서값이 두 번째로 큰 블록과 같은 LBN을 가진 순서값이 가장 큰 로그 블록의 데이터를 비교하여 수행된다.
상술한 바와 같은 본 발명에 따른 플래시 메모리 관리 장치 및 방법은 논리적 블록 번호와 물리적 블록 번호의 관계가 정의된 매핑 정보를 기록하기 위한 추가적인 쓰기 동작을 제거하며, 맵 블록을 관리하기 위해 사용되는 메타 블록의 쓰기도 줄일 수 있으므로, 플래시 메모리의 전체적 성능을 향상시킨다. 종래기술에서는 변경되는 매핑 정보를 맵 블록에 저장을 하기 때문에 추가적인 쓰기 동작이 불가피하다. 이와 같은 매핑 정보의 변경은 데이터를 합병하는 과정에서 발생하며, 합병 동작은 기존에 사용 중이던 로그 블록의 공간이 모두 소모된 상태에서 새로운 쓰기 동작을 수행해야 할 때 발생한다. 본 발명에 따른 플래시 메모리 관리 장치 및 방법은 새로운 로그 블록이 할당될 때 첫 페이지의 예비 영역에 매핑 관계를 복구할 수 있는 정보를 기록하여 종래기술에서 발생하는 문제를 제거할 수 있다.
한편 본 발명에 따른 플래시 메모리 관리 장치 및 방법에 의한 정전 복구기법은 모든 블록의 첫 번째 페이지를 읽어야 하므로 종래의 기법에 비해 추가적인 시간이 소모된다. 이때 필요한 시간은 2 기가바이트당 1초 미만의 시간이 소모되며, 만약 멀티 채널(Multi-Channel), 멀티 웨이(Multi-Way)로 저장장치가 구현되어 있다면, 플래시 메모리가 늘어나도 복구 시간이 비례하여 늘어나지 않는다. 또한 정전 복구 동작은 평상시에 일어나는 동작이 아니므로 이 동작에서 소모되는 시간이 다소 증가하더라도 일반적인 상황에서 맵 블록의 갱신을 위한 쓰기 동작을 제거할 수 있으므로 전체적인 플래시 메모리의 성능이 향상되는 이점이 있다.
또한 기존의 정전 복구 기법은 맵 블록의 모든 공간이 소모되어 새로운 블록이 할당되는 경우에, 맵 블록을 나타내는 LBN에 대응하는 PBN이 바뀌게 된다. 이와 같은 변화를 알기 위해서는 맵 블록의 메타(meta) 정보를 기록하는 블록이 필요하며, 이를 체크포인트 블록(checkpoint block)이라 한다. 그리고 이러한 블록의 물리적 위치를 가리키는 블록으로 PBN 0번에 고정되어 사용되는 시스템 블록(system block)이 존재한다. 기존의 정전 복구 기법은 이러한 블록들이 가리키고 있는 PBN 정보를 갱신하기 위한 쓰기 동작이 필요하지만, 본 발명에 따른 플래시 메모리 관리 장치 및 방법은 메타 블록들의 업데이트 동작이 필요 없다는 이점이 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
Claims (14)
- 블록을 구성하는 페이지에 설정된 예비 영역에 기록될 매핑 정보를 생성하는 매핑 정보 생성부;상기 블록에 대한 쓰기 동작이 수행될 때 상기 블록에 설정된 예비 영역에 상기 블록에 대응하여 생성된 매핑 정보를 기록하는 매핑 정보 기록부; 및정전 발생시 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 맵 테이블을 복원하는 매핑 정보 복원부;를 포함하는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 제 1항에 있어서,상기 매핑 정보는 상기 블록에 데이터의 쓰기가 이루어졌는지 여부를 나타내는 값이 기록되는 쓰기 경력 필드, 상기 블록의 종류에 대한 정보가 기록되는 블록 종류 필드, 상기 블록의 물리적 블록 번호에 대응되는 논리적 블록 번호가 기록되는 논리적 블록 번호 필드 및 상기 블록의 할당 순서를 나타내는 순서값이 기록되는 카운터 필드로 구성되는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 제 1항에 있어서,상기 매핑 정보 복원부는 상기 플래시 메모리의 모든 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 각각의 블록을 데이터 블록, 로그 블록 및 사용하지 않는 블록 중 하나의 블록으로 구분한 후 상기 맵 테이블에 반영하는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 제 3항에 있어서,상기 매핑 정보는 상기 블록에 데이터의 쓰기가 이루어졌는지 여부를 나타내는 값이 기록되는 쓰기 경력 필드, 상기 블록의 종류에 대한 정보가 기록되는 블록 종류 필드, 상기 블록의 물리적 블록 번호에 대응되는 논리적 블록 번호가 기록되는 논리적 블록 번호 필드 및 상기 블록의 할당 순서를 나타내는 순서값이 기록되는 카운터 필드로 구성되는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 제 4항에 있어서,상기 매핑 정보 복원부는 상기 블록이 데이터 블록인 경우에 논리 블록 번호에 대응하는 순서값이 최대이면 상기 블록에 대해 데이터 블록의 맵 테이블을 갱신하고, 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 정보가 기록되어 있는 경우에 상기 로그 블록의 논리 블록 번호에 상관없이 순서값이 최대에서부터 사전에 설정된 최대 블록의 개수안에 포함되지 않으면 상기 로그 블록에 대응하는 매핑 정보를 폐기하며, 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능하지 않음을 나타내는 정보가 기록되어 있는 경우에 상기 로그 블록의 논리 블록 번호에 대응하는 순서값이 최대가 아니면 상기 맵 테이블의 데이터 블록 맵 테이블을 갱신하는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 제 5항에 있어서,상기 매핑 정보 복원부는 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 정보가 기록되어 있는 로그 블록이 다수 존재하면, 최대의 순서값을 가진 로그 블록부터 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 정보가 기록될 수 있는 블록의 개수에 대해 사전에 설정된 최대 개수만큼의 블록을 유효한 로그 블록으로 판단하고, 유효한 로그 블록으로 판단된 블록에 대해 상기 맵 테이블의 로그 블록 맵 테이블을 갱신하는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 제 5항에 있어서,상기 매핑 정보 복원부는 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능하지 않음을 나타내는 정보가 기록되어 있는 로그 블록이 다수 존재하면, 각각의 논리 블록 번호에 대하여 최대의 순서값을 가진 블록들 중에서 사전에 설정된 최대 블록의 개수만큼의 블록을 유효한 로그 블록으로 판단한 후 유효한 로그 블록으로 판단된 블록에 대해 상기 맵 테이블의 로그 블록 맵 테이블을 갱신하는 것을 특징으로 하는 플래시 메모리 관리 장치.
- 블록을 구성하는 페이지에 설정된 예비 영역에 기록될 매핑 정보를 생성하는 매핑 정보 생성 단계;상기 블록에 대한 쓰기 동작이 수행될 때 상기 블록에 설정된 예비 영역에 상기 블록에 대응하여 생성된 매핑 정보를 기록하는 매핑 정보 기록 단계; 및정전 발생시 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 맵 테이블을 복원하는 매핑 정보 복원 단계;를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 8항에 있어서,상기 매핑 정보 복원 단계에서, 상기 플래시 메모리의 모든 블록의 예비 영역에 기록되어 있는 매핑 정보를 기초로 각각의 블록을 데이터 블록, 로그 블록 및 사용하지 않는 블록 중 하나의 블록으로 구분한 후 상기 맵 테이블에 반영하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 9항에 있어서,상기 매핑 정보는 상기 블록에 데이터의 쓰기가 이루어졌는지 여부를 나타내는 값이 기록되는 쓰기 경력 필드, 상기 블록의 종류에 대한 정보가 기록되는 블록 종류 필드, 상기 블록의 물리적 블록 번호에 대응되는 논리적 블록 번호가 기록되는 논리적 블록 번호 필드 및 상기 블록의 할당 순서를 나타내는 순서값이 기록되는 카운터 필드로 구성되는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 10항에 있어서,상기 매핑 정보 복원 단계에서, 상기 블록이 데이터 블록인 경우에 논리 블록 번호에 대응하는 순서값이 최대이면 상기 블록에 대해 데이터 블록의 맵 테이블을 갱신하고, 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 정보가 기록되어 있는 경우에 상기 로그 블록의 논리 블록 번호에 상관없이 순서값이 최대에서부터 사전에 설정된 최대 블록의 개수안에 포함되지 않으면 상기 로그 블록에 대응하는 매핑 정보를 폐기하며, 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능하지 않음을 나타내는 정보가 기록되어 있는 경우에 상기 로그 블록의 논리 블록 번호에 대응하는 순서값이 최대가 아니면 상기 맵 테이블의 데이터 블록 맵 테이블을 갱신하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 11항에 있어서,상기 매핑 정보 복원 단계에서, 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 정보가 기록되어 있는 로그 블록이 다수 존재하면, 최대의 순서값을 가진 로그 블록부터 첫 번째 페이지에 쓰기 동작이 가능함을 나타내는 정보가 기록될 수 있는 블록의 개수에 대해 사전에 설정된 최대 개수만큼의 블록을 유효한 로그 블록으로 판단하고, 유효한 로그 블록으로 판단된 블록에 대해 상기 맵 테이블의 로그 블록 맵 테이블을 갱신하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 11항에 있어서,상기 매핑 정보 복원 단계에서, 상기 블록 종류 필드에 첫 번째 페이지에 쓰기 동작이 가능하지 않음을 나타내는 정보가 기록되어 있는 로그 블록이 다수 존재하면, 각각의 논리 블록 번호에 대하여 최대의 순서값을 가진 블록들 중에서 사전에 설정된 최대 블록의 개수만큼의 블록을 유효한 로그 블록으로 판단한 후 유효한 로그 블록으로 판단된 블록에 대해 상기 맵 테이블의 로그 블록 맵 테이블을 갱신하는 것을 특징으로 하는 플래시 메모리 관리 방법.
- 제 9항 내지 제 13항 중 어느 한 항에 기재된 플래시 메모리 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100067064A KR101077901B1 (ko) | 2010-07-12 | 2010-07-12 | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 |
KR10-2010-0067064 | 2010-07-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2012008731A2 true WO2012008731A2 (ko) | 2012-01-19 |
WO2012008731A3 WO2012008731A3 (ko) | 2012-05-03 |
Family
ID=45033553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2011/005101 WO2012008731A2 (ko) | 2010-07-12 | 2011-07-12 | 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101077901B1 (ko) |
WO (1) | WO2012008731A2 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014123372A1 (ko) * | 2013-02-07 | 2014-08-14 | 서울대학교 산학협력단 | 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크 |
KR101526110B1 (ko) * | 2013-02-07 | 2015-06-10 | 서울대학교산학협력단 | 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크 |
CN113791933A (zh) * | 2021-08-04 | 2021-12-14 | 方一信息科技(上海)有限公司 | 一种基于block管理的异常掉电恢复方法及系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102225618B1 (ko) * | 2014-09-30 | 2021-03-12 | 한화테크윈 주식회사 | 실패 시나리오로부터 기록된 데이터의 시간 관련 메타데이터의 공간 효율적인 복구 |
KR101826778B1 (ko) | 2016-09-28 | 2018-03-22 | 현대오트론 주식회사 | 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120824A1 (en) * | 2000-12-20 | 2002-08-29 | Hooper William G. | Method and system for data block sparing in a solid-state storage device |
US20040196707A1 (en) * | 2003-04-04 | 2004-10-07 | Samsung Electronics Co., Ltd. | Apparatus and method for managing bad blocks in a flash memory |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20080282045A1 (en) * | 2007-05-09 | 2008-11-13 | Sudeep Biswas | Garbage collection in storage devices based on flash memories |
-
2010
- 2010-07-12 KR KR1020100067064A patent/KR101077901B1/ko active IP Right Grant
-
2011
- 2011-07-12 WO PCT/KR2011/005101 patent/WO2012008731A2/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120824A1 (en) * | 2000-12-20 | 2002-08-29 | Hooper William G. | Method and system for data block sparing in a solid-state storage device |
US20040196707A1 (en) * | 2003-04-04 | 2004-10-07 | Samsung Electronics Co., Ltd. | Apparatus and method for managing bad blocks in a flash memory |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20080282045A1 (en) * | 2007-05-09 | 2008-11-13 | Sudeep Biswas | Garbage collection in storage devices based on flash memories |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014123372A1 (ko) * | 2013-02-07 | 2014-08-14 | 서울대학교 산학협력단 | 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크 |
KR101526110B1 (ko) * | 2013-02-07 | 2015-06-10 | 서울대학교산학협력단 | 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크 |
CN113791933A (zh) * | 2021-08-04 | 2021-12-14 | 方一信息科技(上海)有限公司 | 一种基于block管理的异常掉电恢复方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR101077901B1 (ko) | 2011-10-31 |
WO2012008731A3 (ko) | 2012-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012008732A2 (ko) | 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
US9355028B2 (en) | Data-storage device and flash memory control method | |
US8028120B2 (en) | System with flash memory device and data recovery method thereof | |
US8521949B2 (en) | Data deleting method and apparatus | |
US8352690B2 (en) | Cache synchronization for solid state disks | |
US9092323B2 (en) | Systems and methods for recovering addressing data | |
US9910798B2 (en) | Storage controller cache memory operations that forego region locking | |
WO2017149592A1 (ja) | ストレージ装置 | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
CN112860594B (zh) | 一种固态盘地址重映射方法、设备及固态盘 | |
WO2012008731A2 (ko) | 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
WO2016123748A1 (zh) | 一种闪存存储系统及其读写、删除方法 | |
WO2023124423A1 (zh) | 一种存储空间分配方法、装置、终端设备及存储介质 | |
CN108491290B (zh) | 一种数据写入方法及装置 | |
CN110955488A (zh) | 一种持久性内存的虚拟化方法及系统 | |
US10282116B2 (en) | Method and system for hardware accelerated cache flush | |
CN111443874B (zh) | 基于内容感知的固态盘内存缓存管理方法、设备及固态盘 | |
WO2012052567A1 (en) | Improving storage lifetime using data swapping | |
WO2017116186A1 (ko) | 파일의 메타데이터에 대한 보호 방법 및 보호 장치 | |
CN116301576A (zh) | 一种面向zns-ssd存储系统的垃圾回收方法 | |
US20180307615A1 (en) | Storage control apparatus and storage control method | |
KR20120039166A (ko) | 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템 | |
US20200057576A1 (en) | Method and system for input/output processing for write through to enable hardware acceleration | |
EP3866016A1 (en) | Method and apparatus for deleting index entry in memory | |
CN114661238B (zh) | 带缓存的存储系统空间回收的方法及应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11807016 Country of ref document: EP Kind code of ref document: A2 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11807016 Country of ref document: EP Kind code of ref document: A2 |