KR100892608B1 - Error block management method for flash memory - Google Patents

Error block management method for flash memory Download PDF

Info

Publication number
KR100892608B1
KR100892608B1 KR1020070098133A KR20070098133A KR100892608B1 KR 100892608 B1 KR100892608 B1 KR 100892608B1 KR 1020070098133 A KR1020070098133 A KR 1020070098133A KR 20070098133 A KR20070098133 A KR 20070098133A KR 100892608 B1 KR100892608 B1 KR 100892608B1
Authority
KR
South Korea
Prior art keywords
block
error
error block
flash memory
data
Prior art date
Application number
KR1020070098133A
Other languages
Korean (ko)
Other versions
KR20090032690A (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 KR1020070098133A priority Critical patent/KR100892608B1/en
Publication of KR20090032690A publication Critical patent/KR20090032690A/en
Application granted granted Critical
Publication of KR100892608B1 publication Critical patent/KR100892608B1/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 플래시 메모리 사용 중에 발생하는 오류블록을 관리하는 방법에 관한 것으로, 상기한 본 발명에 따르는 플래시 메모리의 오류블록 관리 방법은, 오류블럭이 검출되면, 블록 리스트에서 정상블록을 할당받아 상기 오류블럭의 헤드 및 데이터를 복사하는 단계; 상기 오류블록을 상기 블록리스트에서 제거하여 오류블록에 대한 접근을 차단하는 단계; 상기 오류블록에 대한 정보를 데이터 영역의 특정 블록에 기록하는 단계를 포함한다. The present invention relates to a method for managing an error block occurring while using a flash memory. The error block management method for a flash memory according to the present invention, when an error block is detected, receives a normal block from a block list and receives the error block. Copying the head and data of the block; Removing access to the error block by removing the error block from the block list; And recording information about the error block in a specific block of a data area.

플래시 메모리, 오류블록, FTL Flash memory, error block, FTL

Description

플래시 메모리의 오류블록 관리 방법{ERROR BLOCK MANAGEMENT METHOD FOR FLASH MEMORY}How to manage error blocks in flash memory {ERROR BLOCK MANAGEMENT METHOD FOR FLASH MEMORY}

본 발명은 플래시 메모리 사용 중 발생되는 오류블록을 처리하는 방법에 관한 것이다.The present invention relates to a method of processing an error block generated while using a flash memory.

일반적으로 플래시 메모리의 각 블록은 지우기 연산 횟수의 제한이 있다. 이에 따라 플래시 메모리가 공장에서 출하된 이후에 지우기 연산의 횟수가 제한을 넘게 되거나, 물리적 특성이 좋지 않은 블록인 경우에 해당 블록은 오류블록(Bad Block)이 된다. 또한 NAND 플래시 메모리 같은 플래시 메모리는 공장에서 출하될 때부터 몇몇 블록이 오류블록인 경우도 있다. In general, each block in flash memory has a limit on the number of erase operations. Accordingly, after the flash memory is shipped from the factory, the number of erase operations exceeds a limit, or when the block has a bad physical property, the block becomes a bad block. In addition, some flash blocks, such as NAND flash memory, are error blocks since they were shipped from the factory.

상기한 오류블록은 플래시 메모리를 사용 중에 모든 블록에서 발생할 수 있으며, 또는 사용하기 전부터 오류블록일 수 있다. 상기한 오류블록의 존재는 플래시 메모리 사용을 어렵게 만드는 요소이다.The error block may occur in every block while using the flash memory, or may be an error block before use. The presence of the above error block is a factor that makes the use of flash memory difficult.

이러한 오류블록을 관리하기 위해서는 오류블록을 관리하기 위한 정보가 필요하며 이런 정보를 RAM에 또는 EEPROM과 같은 별도의 메모리에 저장하여 관리한다. 그러나 RAM에 관리 정보를 저장했을 경우에는 전원이 꺼지면 RAM에 저장된 정 보는 모두 잃어버리게 되는 문제점이 있고, EEPROM과 같은 별도의 메모리에 관리 정보를 저장하는 경우는 시스템 구축을 위한 추가 비용이 필요하고 시스템을 복잡하게 만들 수 있다.In order to manage such error blocks, information for managing the error blocks is required, and the information is stored in RAM or stored in a separate memory such as an EEPROM. However, when the management information is stored in RAM, when the power is turned off, all the information stored in the RAM is lost.In case of storing the management information in a separate memory such as EEPROM, additional cost is required for system construction. Can be complicated.

이러한 문제점을 해결하기 위한 종래 오류블록을 처리하는 방법은 플래시 메모리의 영역을 실제 데이터를 쓰고 지우는데 사용되는 데이터 영역과 오류블록이 발생된 경우에 이를 처리하기 위한 여분의 공간인 여분영역으로 구분하여 오류블록을 처리하는 것이다.The conventional method for processing an error block to solve this problem is to divide the area of the flash memory into a data area used for writing and erasing actual data and an extra area that is an extra space for processing an error block when an error block is generated. It is to handle error blocks.

상기 종래기술의 동작은 다음과 같다. 초기 시스템 마운트하는 과정에서 오류블록 관리를 위한 여분의 영역으로부터 오류블록에 대한 매핑정보 테이블을 RAM상에 생성한다. 이후 특정블록에 대한 접근 방법은 요청된 블록이 오류블록 매핑정보 테이블에 존재하는지 검사한 후, 오류블록 매핑정보 테이블에 존재한다면 매핑되는 영역의 위치를 넘겨준다. 그리고 새로운 오류블록이 발생하였을 경우에는, 우선 오류블록 매핑정보 테이블에서 오류블록 관리를 위한 여분의 영역으로부터 비사용 블록을 찾고, 이 비사용 블록에 오류블록의 유효한 데이터를 옮긴 후 오류블록 매핑정보를 갱신하여 오류블록을 처리하였다.The operation of the prior art is as follows. During the initial system mounting, a mapping information table for error blocks is created in RAM from an extra area for error block management. Then, the access method for a specific block checks whether the requested block exists in the error block mapping information table, and passes the location of the mapped area if it exists in the error block mapping information table. When a new error block occurs, first find an unused block from the spare area for error block management in the error block mapping information table, move valid data of the error block to this unused block, and then apply error block mapping information. Update was made to handle error blocks.

도 1a는 종래의 오류블록 관리 방법에 따른 데이터 영역과 여분영역으로 구분하여 할당된 플래시 메모리 구조를 나타낸 것으로, 총 N개의 블록 중 데이터 영역으로 N-1-Y개의 블록을 사용하고 여분영역으로 Y개의 블록을 사용한다.FIG. 1A illustrates a flash memory structure divided into a data area and a spare area according to a conventional error block management method, using N-1-Y blocks as a data area among a total of N blocks, and Y as a spare area. Use blocks.

도 1b는 종래의 오류블록 관리 방법에 따른 정상적인 블록에 접근하는 방법을 나타낸 것으로, 특정블록에 대한 접근 방법은 요청된 블록이 오류블록 매핑정보 테이블에 존재하는지 검사한 후 만일 오류블록 매핑정보 테이블에 존재하지 않는다면 특정블록에 대한 접근을 하는 것이다.1B illustrates a method of accessing a normal block according to a conventional error block management method. An access method for a specific block checks whether a requested block exists in an error block mapping information table, If it does not exist, then access is made to a specific block.

일 예로, 블록 10번에 대한 읽기 작업이 들어온다면 먼저 오류블록 매핑정보 테이블에서 블록 10번에 대한 존재여부를 찾는다. 10번이 오류블록 매핑정보 테이블에 존재하지 않으므로 블록 10번의 읽기 작업을 수행한다.For example, if a read operation for block 10 is received, first, whether block 10 exists in the error block mapping information table is searched for. Since number 10 does not exist in the error block mapping information table, read operation of block 10 is performed.

도 1c는 종래의 오류블록 관리 방법에 따른 오류블록에 접근하는 방법을 나타낸 것으로, 특정블록에 대한 접근 방법은 요청된 블록이 오류블록 매핑정보 테이블에 존재하는지 검사한 후 만일 오류블록 매핑정보 테이블에 존재한다면 매핑되는 영역의 위치로 접근하는 것이다.1C illustrates a method of accessing an error block according to a conventional error block management method. An access method for a specific block checks whether a requested block exists in an error block mapping information table, If it does exist, it will access the location of the mapped area.

일 예로, 블록 20번에 대한 읽기 작업이 들어온다면 먼저 오류블록 매핑정보 테이블에서 블록 20번에 대한 존재여부를 찾는다. 20번이 오류블록 매핑정보 테이블에 존재하므로 매핑되는 영역의 위치인 R0번으로 접근하여 읽기 작업을 수행한다.As an example, if a read operation for block 20 is received, the existence of block 20 is first found in the error block mapping information table. No. 20 exists in the error block mapping information table, so access is made to R0, the location of the mapped area, and read operation is performed.

위와 같은 방법으로 오류블록을 처리할 경우에는 플래시 메모리의 일부분을 오류블록을 위한 여분의 영역으로 설정하게 되는데, 이와 같이 설정된 여분의 영역은 오류블록이 발생하기 이전까지 사용되지 않는다. 따라서 오류블록이 발생하지 않았을 경우에도 플래시 메모리 사용에 있어서 여분의 영역을 설정하여야 하는 관계로 이에 따른 자원 손실이 발생한다는 문제점이 있다.When the error block is processed in the above manner, a part of the flash memory is set as an extra area for the error block. The spare area thus set is not used until the error block is generated. Therefore, even if an error block does not occur, there is a problem in that resource loss occurs due to the need to set an extra area in flash memory use.

또한, 임의의 블록에 접근할 경우 오류블록 테이블에 등록되어 있는지를 검사하는 불필요한 작업을 수행함으로 시스템 성능에 부하을 주는 문제점이 있다. In addition, there is a problem that the system performance is overloaded by performing an unnecessary task of checking whether an arbitrary block is registered in the error block table.

본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 안출된 것으로 오류블록을 대체하기 위한 여분의 영역을 설정하지 않고 오류블록을 관리함으로써, 플래시 메모리 상에서 마치 오류블록이 없는 것처럼 플래시를 사용하는 플래시 메모리의 오류블록 관리 방법을 제공하는 것을 그 목적으로 한다. The present invention has been made to solve the above-mentioned problems of the prior art, and by managing the error block without setting an extra area for replacing the error block, the flash memory uses the flash as if there is no error block on the flash memory. It is an object of the present invention to provide a method for managing error blocks.

또한 본 발명의 다른 목적은 오류블록을 관리하기 위해서 오류블록에 대한 정보를 저장하기 위해 플래시의 여분의 영역 대신 FTL 영역의 마지막 블록을 할당하여 사용하는 플래시 메모리의 오류블록 관리 방법을 제공하는 것이다. Another object of the present invention is to provide an error block management method of a flash memory that allocates and uses the last block of an FTL area instead of an extra area of flash to store information about an error block in order to manage an error block.

상기한 목적을 달성하기 위한 본 발명에 따르는 플래시 메모리의 오류블록 관리 방법은, 오류블럭이 검출되면, 블록 리스트에서 정상블록을 할당받아 상기 오류블럭의 헤드 및 데이터를 복사하는 단계; 상기 오류블록을 상기 블록리스트에서 제거하여 오류블록에 대한 접근을 차단하는 단계; 상기 오류블록에 대한 정보를 데이터 영역의 특정 블록에 기록하는 단계를 포함하는 것을 특징으로 한다. According to an aspect of the present invention, there is provided a method for managing an error block of a flash memory, the method comprising: if an error block is detected, allocating a normal block from a block list to copy a head and data of the error block; Removing access to the error block by removing the error block from the block list; And recording information about the error block in a specific block of a data area.

상기한 본 발명에 따르면 오류블록 처리를 위한 예비영역을 설정하지 않아도 되므로 플래시 블록 전체를 데이터 영역으로 사용할 수 있으므로 오류블록이 발생하기 이전까지 블록에 대한 자원손실을 막을 수 있다. 또한 예비영역의 설정이 없으므로 오류블록이 어느 정도 발생할 때까지 데이터 처리를 위한 물리적인 블록의 수가 많은 관계로 논리적인 블록이 대부분 사용되는 경우에도 사용가능 블록(Free Block)을 빠르게 확보할 수 있으므로 성능이 향상되는 효과를 가진다.According to the present invention described above, since a spare area for processing an error block does not need to be set, the entire flash block can be used as a data area, thereby preventing resource loss for a block until an error block is generated. In addition, since there is no spare area setting, the free block can be quickly obtained even when most logical blocks are used because of the large number of physical blocks for data processing until an error block occurs. This has the effect of being improved.

본 발명에 따르면, 오류블록에 대해서는 블록리스트에서 제거되므로 임의 블록에 대한 접근시 오류블록으로 등록되었는지 확인하여 재매핑하는 과정이 필요치 않다.According to the present invention, since the error block is removed from the block list, a process of checking and remapping whether an error block is registered as an error block is unnecessary.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above-described embodiments, which can be variously modified and modified by those skilled in the art to which the present invention pertains. Modifications are possible.

따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

본 발명은 플래시 메모리의 모든 블록을 여분영역 없이 (FTL의)데이터 영역으로 사용한다. The present invention uses all blocks of the flash memory as data areas (of FTL) without extra areas.

이와 같이 여분의 영역 설정이 없는 상태에서 오류블록이 발생할 경우 데이터영역의 블록을 관리하기 위해 사용되는 사용가능 블록리스트(FBL: Free Block List)에서 하나의 블록을 할당 받아 오류블록의 유효한 데이터 및 블록의 헤드정보를 복사하는 연산을 수행한다. 이후 오류블록의 블록번호를 관리하는 블록에 오류블록의 블록번호를 저장하게 된다. 또한 오류블록을 모든 블록리스트에서 제거하는 작업을 수행한다. 이와 같은 작업을 통해 본 발명은 마치 오류블록이 없는 것처럼 플래시 메모리를 사용할 수 있게 한다. 상기 오류블록의 번호가 저장되는 블록 역시 최초 오류블록이 발생할 때에 데이터영역의 마지막 블록을 할당받아 사용하게 된다. 이 블록 또한 모든 블록리스트에서 제거하는 작업이 수행된다. 또한, 데이터영역의 마지막 블록에 유효한 데이터가 존재한다면 FBL에서 새로운 블록을 할당 받아 복사작업이 수행된다. 그리고 시스템이 재실행될 경우에는 데이터의 마지막 블록에 오류블록의 번호가 저장되어 있다면 저장된 블록번호의 블록들을 블록리스트에 추가하지 않는다. 이와 같이 오류블록에 대한 접근이 발생하지 않으므로 마치 오류블록이 없는 것과 같은 효과를 얻을 수가 있다.As such, when an error block occurs in a state where there is no spare area setting, one block is allocated from a free block list (FBL) used to manage blocks of the data area, and valid data and blocks of the error block are allocated. Performs an operation to copy the head information of the. Thereafter, the block number of the error block is stored in the block managing the block number of the error block. It also removes the error block from all block lists. Through this operation, the present invention enables the use of flash memory as if there are no error blocks. The block in which the number of the error block is stored is also used by receiving the last block of the data area when the first error block occurs. This block is also removed from all block lists. In addition, if valid data exists in the last block of the data area, a copy operation is performed by allocating a new block from FBL. When the system is re-executed, if the error block number is stored in the last block of data, the blocks of the block number are not added to the block list. In this way, since access to the error block does not occur, the effect is as if there is no error block.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2a는 오류블록이 나타나기 전의 플래시 메모리를 나타낸다. N개의 모든 블록을 FTL의 데이터 영역으로 사용하고 있다.2A shows the flash memory before the error block appears. All N blocks are used as the data area of the FTL.

도 2b는 오류블록이 발생했을 때 최초단계를 나타낸다. 논리블록 1번, 즉 물리블록 3번이 오류가 발생했을 때 사용가능 블록리스트에서 하나의 블록을 할당 받아 오류블록의 유효한 데이터 및 블록의 헤드정보를 복사하는 연산 나타낸다. 물리블록 8번을 할당 받아 복사연산을 수행한다.2b shows an initial step when an error block occurs. When logical block 1, that is, physical block 3, an error occurs, one block is allocated from the usable block list to copy valid data of the error block and head information of the block. Performs copy operation by allocating physical block # 8.

도 2c는 오류블록의 번호가 저장되는 블록을 할당받고 정보를 저장하는 단계를 나타낸다. 최초 오류블록이 발생할 때에 데이터영역의 마지막 블록인 N-1번 블록을 할당 받아 사용하게 된다. 할당 받은 후 오류블록이 발생한 블록인 물리번호 3번을 기록한다.2C illustrates a step of allocating a block storing a number of an error block and storing information. When the first error block occurs, N-1, the last block of the data area, is allocated and used. After receiving the assignment, record the physical number 3, which is the block where the error block occurred.

도 2d는 오류블록과 오류블록을 관리하는 블록을 FTL의 블록 관리리스트에서 삭제하는 과정을 나타낸다. 오류블록인 물리블록 3번과 오류블록 관리블록인 N-1번 블록을 FTL의 데이터 영역에서 삭제되어 실제 FTL 데이터 영역은 N-2개의 블록을 사용하는 것을 알 수 있다.2d illustrates a process of deleting an error block and a block managing the error block from the block management list of the FTL. It can be seen that physical block 3, which is an error block, and block N-1, which is an error block management block, are deleted from the data area of the FTL, so that the actual FTL data area uses N-2 blocks.

상기한 본 발명에 따른 플래시 메모리의 오류블록 관리 방법을 도 3의 흐름도를 참조하여 설명한다. The error block management method of the flash memory according to the present invention will be described with reference to the flowchart of FIG. 3.

상기 플래시 메모리를 운용하는 시스템의 제어모듈은 오류블록이 검출되면(100단계), 블록 리스트로부터 정상블록 중 하나를 할당받아 오류블록의 헤드 및 데이터를 복사한다(102단계).When an error block is detected (step 100), the control module of the system operating the flash memory receives one of the normal blocks from the block list and copies the head and data of the error block (step 102).

이후, 제어모듈은 특정 블록, 즉 데이터 블록의 마지막 블록에 데이터가 있는지를 체크한다(104단계), 상기 특징 블록에 데이터가 존재하면, 상기 제어모듈은 블록 리스트로부터 정상블록 중 하나를 할당받아 특정 블록의 헤드 및 데이터 정보를 복사한다(106단계).Thereafter, the control module checks whether there is data in a specific block, that is, the last block of the data block (step 104). If data exists in the feature block, the control module receives one of the normal blocks from the block list and specifies the data. The head and data information of the block is copied (step 106).

이후, 상기 오류블록에 대한 물리주소를 상기 특정 블록에 기록함과 아울러, 블록 리스트에서 상기 오류블록 및 상기 특정 블록에 대한 정보를 삭제한다(108,110단계). Thereafter, the physical address of the error block is recorded in the specific block, and the information about the error block and the specific block is deleted from the block list (steps 108 and 110).

상기한 예에서는 상기 특정 블록을 데이터 블록의 마지막 블록으로 설정하는 예만을 설명하였으나, 상기 마지막 블록이 오류블록이면, 상기 특정 블록은 마지막 블록의 이전 블록으로 정한다. In the above example, only an example of setting the specific block as the last block of the data block has been described. However, if the last block is an error block, the specific block is determined as the previous block of the last block.

그리고 상기 오류블록에 대한 정보에는 오류블록의 식별정보 및 오류 카운트 값 등이 포함되며, 상기오류 카운트 값은 다수회 오류블록으로 판단될 경우를 고려한 것이다. The information on the error block includes identification information of the error block, an error count value, and the like, and the error count value is considered in the case of being determined as an error block a plurality of times.

도 1a는 종래의 오류블록 관리 방법에 따른 데이터 영역과 여분영역으로 구분하여 할당된 플래시 메모리의 구조도. 1A is a structural diagram of a flash memory divided into a data area and a spare area according to a conventional error block management method.

도 1b는 종래의 오류블록 관리 방법에 따른 정상적인 블록에 접근하는 방법을 개략적으로 도시한 도면. 1B is a view schematically showing a method of accessing a normal block according to a conventional error block management method.

도 1c는 종래의 오류블록 관리 방법에 따른 오류블록에 접근하는 방법을 개략적으로 도시한 도면. 1c schematically illustrates a method of accessing an error block according to a conventional error block management method.

도 2a는 본 발명의 바람직한 실시예에 따라 오류블록이 나타나기 전의 플래시 메모리의 구조를 도시한 도면. FIG. 2A illustrates the structure of a flash memory before an error block appears in accordance with a preferred embodiment of the present invention. FIG.

도 2b는 본 발명의 바람직한 실시예에 따라 오류블록이 발생했을 때 최초 처리 과정을 도시한 도면. 2b is a diagram illustrating an initial processing process when an error block occurs according to a preferred embodiment of the present invention.

도 2c는 본 발명의 바람직한 실시예에 따라 오류블록의 번호가 저장되는 블록을 할당받고 정보를 저장하는 과정을 도시한 도면. .2C is a diagram illustrating a process of allocating a block storing a number of an error block and storing information according to a preferred embodiment of the present invention. .

도 2d는 본 발명의 바람직한 실시예에 따라 오류블록과 오류블록을 관리하는 블록을 FTL 데이터 영역에서 삭제하는 과정을 도시한 도면. FIG. 2D illustrates a process of deleting an error block and a block managing the error block from the FTL data area according to an exemplary embodiment of the present invention. FIG.

도 3은 본 발명의 바람직한 실시예에 따른 오류블록 관리 방법의 흐름도. 3 is a flowchart of an error block management method according to a preferred embodiment of the present invention.

Claims (5)

플래시 메모리의 오류 블록 관리 방법에 있어서, In the error block management method of the flash memory, 상기 플래시 메모리에서 오류 블럭이 검출되면, 블록 리스트에서 정상 블록을 할당받아 상기 오류 블럭의 헤드 및 데이터를 복사하는 단계; If an error block is detected in the flash memory, allocating a normal block in the block list to copy the head and data of the error block; 상기 오류 블록을 상기 블록 리스트에서 제거하여 상기 오류 블록에 대한 접근을 차단하는 단계; Removing the error block from the block list to block access to the error block; 미리 정해진 특정 블럭에 데이터가 저장되어 있는지를 체크하는 단계;Checking whether data is stored in a predetermined specific block; 상기 특정 블럭에 데이터가 저장된 경우에는 상기 블록 리스트에서 정상 블록을 할당받아 상기 특정 블럭의 헤드 및 데이터를 복사하는 단계;If data is stored in the specific block, receiving a normal block from the block list and copying the head and data of the specific block; 상기 특정 블럭에 데이터가 저장되어 있지 않거나, 상기 특정 블럭의 헤드 및 데이터가 복사된 후에는, 상기 오류 블록에 대한 정보를 상기 특정 블록에 기록하는 단계;After data is not stored in the specific block or after the head and data of the specific block are copied, recording information on the error block in the specific block; 를 포함하는 것을 특징으로 하는 플래시 메모리의 오류블록 관리방법. Error block management method of a flash memory comprising a. 제1항에 있어서, The method of claim 1, 상기 특정 블록은 데이터 영역의 마지막 블록임을 특징으로 하는 플래시 메모리의 오류블록 관리 방법. And said specific block is the last block of a data area. 제2항에 있어서, The method of claim 2, 마지막 블록이 오류블록이면, 상기 특정 블록은 마지막 블록의 이전 블록으로 정해짐을 특징으로 하는 플래시 메모리의 오류블록 관리 방법. If the last block is an error block, the specific block is determined as a previous block of the last block. 제1항에 있어서, The method of claim 1, 상기 오류블록에 대한 정보에는 오류 카운트 값이 더 포함됨을 특징으로 하 는 플래시 메모리의 오류블록 관리 방법. And information on the error block further includes an error count value. 삭제delete
KR1020070098133A 2007-09-28 2007-09-28 Error block management method for flash memory KR100892608B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070098133A KR100892608B1 (en) 2007-09-28 2007-09-28 Error block management method for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070098133A KR100892608B1 (en) 2007-09-28 2007-09-28 Error block management method for flash memory

Publications (2)

Publication Number Publication Date
KR20090032690A KR20090032690A (en) 2009-04-01
KR100892608B1 true KR100892608B1 (en) 2009-04-08

Family

ID=40759455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070098133A KR100892608B1 (en) 2007-09-28 2007-09-28 Error block management method for flash memory

Country Status (1)

Country Link
KR (1) KR100892608B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102147970B1 (en) * 2014-08-05 2020-08-25 삼성전자주식회사 Method of reparing non-volatile memory based storage device and operation method of electronic system including the storage device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060006554A (en) * 2004-07-16 2006-01-19 삼성전자주식회사 Flash memory system including bad block management unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060006554A (en) * 2004-07-16 2006-01-19 삼성전자주식회사 Flash memory system including bad block management unit

Also Published As

Publication number Publication date
KR20090032690A (en) 2009-04-01

Similar Documents

Publication Publication Date Title
US7783851B2 (en) Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices
JP5663060B2 (en) Method and system for facilitating fast startup of a flash memory system
KR100843543B1 (en) System comprising flash memory device and data recovery method thereof
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US7009896B2 (en) Apparatus and method for managing bad blocks in a flash memory
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
US20100077135A1 (en) Memory wear leveling method, system and device
US9213634B2 (en) Efficient reuse of segments in nonoverwrite storage systems
US7287117B2 (en) Flash memory and mapping control apparatus and method for flash memory
US20100082887A1 (en) Memory controller, flash memory system with memory controller, and method of controlling flash memory
CN107817945B (en) Data reading method and system of hybrid memory structure
US6928456B2 (en) Method of tracking objects for application modifications
US8316208B2 (en) Memory controller, flash memory system with memory controller, and method of controlling flash memory
CN106598504B (en) data storage method and device
JP2010287049A (en) Memory system and memory system management method
US6967869B1 (en) Method and device to improve USB flash write performance
US10942811B2 (en) Data processing method for solid state drive
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
US20130138910A1 (en) Information Processing Apparatus and Write Control Method
US8068363B2 (en) Flash memory apparatus and read operation control method therefor
CN111506255B (en) NVM-based solid-state hard disk metadata management method and system
KR100892608B1 (en) Error block management method for flash memory
US9170929B2 (en) Memory controller
US11429519B2 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
JP2001101071A (en) Data storage device using flash type memory and data managing method for the same memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120402

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee