KR20070048384A - Method of processing bad block in memory map - Google Patents
Method of processing bad block in memory map Download PDFInfo
- Publication number
- KR20070048384A KR20070048384A KR1020050105407A KR20050105407A KR20070048384A KR 20070048384 A KR20070048384 A KR 20070048384A KR 1020050105407 A KR1020050105407 A KR 1020050105407A KR 20050105407 A KR20050105407 A KR 20050105407A KR 20070048384 A KR20070048384 A KR 20070048384A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- bad block
- data
- memory map
- read
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 MTP(Multi Time Program) 또는 Flash EEPROM 등과 같은 메모리의 메모리 맵에서 배드 블록(bad block)을 처리하는 방법에 관한 것이다.The present invention relates to a method for processing a bad block in a memory map of a memory such as a multi time program (MTP) or a flash EEPROM.
본 발명에 의한 메모리 맵에서 배드 블록 처리방법은 (a)메모리 맵에서 데이터 리드(read)시에 리드(read)된 어드레스가 배드 블록(bad block)처리된 어드레스(address)이면 페이지 플래그(page flag)를 먼저 확인하는 단계; (b)상기 페이지 플래그(page flag)가 프로그램 되어있으면 배드 블록(bad block)에서 데이터(data)를 리드(read)하고, 상기 페이지 플래그(page flag)가 삭제(erase)상태로 있으면 새로운 어드레스를 갖는 블록(new block)에서 데이터를 리드(read)하는 단계; (c)상기 배드 블록(bad block)으로 추가로 프로그램 되는 데이터는 새로운 어드레스를 갖는 블록(new block)으로 프로그램을 진행하는 단계; 및 (d)상기 배드 블록(Bad Block)의 삭제(erase) 동작이 주어지면 상기 배드 블록(bad block)이 완전히 새로운 어드레스를 갖는 블록(new block)으로 모든 동작을 진행하게 되는 단계;를 포함함을 특징으로 한다.In the memory map according to the present invention, the bad block processing method may include (a) a page flag if a read address is a bad block address when a data is read in the memory map. First); (b) If the page flag is programmed, data is read from the bad block. If the page flag is in the erased state, a new address is read. Reading data in a new block; (c) programming the data further programmed into the bad block into a block having a new address; And (d) performing all operations to a block in which the bad block has a completely new address when an erase operation of the bad block is given. It is characterized by.
본 발명에 의하면, 배드 블록이 발견되면 새로운 블록에 데이터를 다시 프로그램하고 추가로 배드 블록으로 처리된 블록의 이전 프로그램 데이터를 옮기지 않음으로 해서 시간 손실(time loss)을 줄일 수 있다.According to the present invention, if a bad block is found, time loss can be reduced by reprogramming the data into a new block and not moving the previous program data of the block processed as a bad block.
Description
도 1은 일반적인 메모리의 배드 블록 처리장치의 개념도를 도시한 것이다.1 is a conceptual diagram of a bad block processing apparatus of a general memory.
도 2는 MTP 또는 Flash EEPROM의 메모리 맵(Memory Map) 구성을 나타내는 실시예이다.2 is a diagram illustrating a configuration of a memory map of an MTP or Flash EEPROM.
도 3은 메모리 맵(memory map)을 구성하는 블록을 나타내는 일실시예이다.FIG. 3 is a diagram illustrating a block forming a memory map.
도 4는 배드 블록에서 프로그램 데이터를 새로운 블록으로 옮기는 과정을 도시한 것이다.4 illustrates a process of moving program data from a bad block to a new block.
도 5는 본 발명에 의한 메모리 맵에서 배드 블록 처리방법을 도시한 것이다.5 illustrates a bad block processing method in a memory map according to the present invention.
본 발명은 메모리에 관한 것으로, 특히 메모리의 배드 블록(Bad Block) 처리방법에 관한 것이다. The present invention relates to a memory, and more particularly, to a bad block processing method of a memory.
도 1은 일반적인 메모리의 배드 블록 처리장치의 개념도를 도시한 것이다.1 is a conceptual diagram of a bad block processing apparatus of a general memory.
제어기(100)는 외부에서 데이터와 어드레스(address)의 입력과 MTP(Multi Time Program) 메모리 또는 Flash EEPROM의 동작을 제어한다The
물리적 어드레스 매핑 제어기(Physical Address Mapping(PAM) Controller: 200)는 외부 입력 어드레스(address)를 실제 메모리의 어드레스로의 지정을 제어하는 회로이다. The Physical Address Mapping (PAM) Controller 200 is a circuit that controls assignment of an external input address to an address of an actual memory.
MTP(Multi Time Program) 또는 Flash EEPROM(300)은 어드레스를 갖는 복수의 블록(block)으로 구성된 메모리 맵(memory map)이 구비된다.The MTP or Flash EEPROM 300 is provided with a memory map composed of a plurality of blocks having addresses.
도 2는 MTP(Multi Time Program) 또는 Flash EEPROM의 메모리 맵(memory map)의 구성을 나타내는 실시예이다.2 is a diagram illustrating a configuration of a memory map of a multi time program (MTP) or a flash EEPROM.
310,320,330 N개의 블록(block)과 각 블록은 350의 스페어(spare) 영역이 있다.There are 310,320,330 N blocks and 350 spare areas.
310 블록(block)은 311과 같은 M개의 페이지(page)로 구성되어 있고, 351은 311 페이지의 사용자 데이터(User data)영역의 정보를 저장하는데 사용한다.A
도 3은 메모리 맵(memory map)을 구성하는 블록을 나타내는 일실시예이다.FIG. 3 is a diagram illustrating a block forming a memory map.
메모리 맵(memory map)의 500번 블록과 600번 블록을 나타낸다.
도 4는 종래의 메모리 맵에서 배드 블록 처리방법을 도시한 것이다.4 illustrates a bad block processing method in a conventional memory map.
500번 블록에 프로그램 동작을 진행하면서 프로그램 폐일(program fail)이 발생하면 500번 블록은 배드 블록으로 처리되고, 600번 블록을 새로운 블록으로 지정하게 된다.If a program fail occurs while a program operation is performed in
도 4에서 510번 블록에서 폐일(fail)이 발생하면 600번 블록의 610 블록에 다시 프로그램(program)동작을 진행하고, 프로그램(program)이 완료되면 500번 블록에서 기존에 프로그램(program)되어 있던 520번 페이지(page)에 대해서도 620번 페이지(page)에 다시 추가로 프로그램(program)을 진행하여야 한다.In FIG. 4, when a fail occurs in
이후 500번 블록(block)을 지정하게 되면 도 1의 물리적 어드레스 매핑 제어기(200)에서 600번으로 어드레스(address)를 변경하여 읽기(read), 프로그램(program), 삭제(erase) 동작을 진행하게 된다.After the
MTP(Multi Time Program) 또는 Flash EEPROM의 삭제(erase) 단위(block)가 N개의 프로그램(program) 단위(page)로 구성되어 있고 폐일(fail)의 처리는 삭제(erase)단위로 관리하는 경우, 프로그램(program)의 동작 중 폐일(fail)이 발생하면 프로그램(program)하던 블록(block)은 배드 마킹(bad marking)을 하고, 새로운 블록(new block)에 데이터를 다시 프로그램(program)하여야 한다.If the erase block of MTP (Multi Time Program) or Flash EEPROM is composed of N program pages, and the processing of fail is managed by erase unit, When a failure occurs during the operation of a program, a block in which a program is programmed should be bad marked and data must be reprogrammed in a new block.
이때, 배드(bad)처리된 블록(block)의 기존 프로그램 데이터(program data)는 새로운 블록에 옮겨야 한다. 프로그램 데이터를 다시 옮기는데 많은 시간 손실(time loss)이 발생하게 된다.At this time, the existing program data of the bad block must be transferred to the new block. There is a lot of time loss in moving program data back.
본 발명이 이루고자 하는 기술적 과제는 배드 블록 처리 시 프로그램 데이터를 새로운 블록으로 옮기는데 드는 시간 손실을 줄이기 위한 메모리 맵에서 배드 블록 처리방법을 제공하는 것이다.The technical problem to be achieved by the present invention is to provide a bad block processing method in a memory map for reducing the time loss of moving program data to a new block during bad block processing.
상기 기술적 과제를 해결하기 위한 본 발명에 의한 메모리 맵에서 배드 블록 처리방법은 MTP 또는 Flash EEPROM 등과 같은 메모리의 메모리 맵에서 배드 블록(bad block)을 처리하는 방법에 있어서, (a)상기 메모리 맵에서 데이터 리드(read) 시에 리드(read)된 어드레스가 배드 블록(bad block)처리된 어드레스(address)이면 페이지 플래그(page flag)를 먼저 확인하는 단계; (b)상기 페이지 플래그(page flag)가 프로그램 되어 있으면 배드 블록(bad block)에서 데이터(data)를 리드(read)하고, 상기 페이지 플래그(page flag)가 삭제(erase)상태로 있으면 새로운 어드레스를 갖는 블록(new block)에서 데이터를 리드(read)하는 단계; (c)상기 배드 블록(bad block)으로 추가로 프로그램 되는 데이터는 새로운 어드레스를 갖는 블록(new block)으로 프로그램을 진행하는 단계; 및 (d)상기 배드 블록(Bad Block)의 삭제(erase) 동작이 주어지면 상기 배드 블록(bad block)이 완전히 새로운 어드레스를 갖는 블록(new block)으로 모든 동작을 진행하게 되는 단계;를 포함함을 특징으로 한다.The bad block processing method in the memory map according to the present invention for solving the technical problem is a method of processing a bad block (bad block) in the memory map of the memory, such as MTP or Flash EEPROM, (a) in the memory map First checking a page flag if the read address is a bad block address at the time of data read; (b) If the page flag is programmed, read data from the bad block. If the page flag is in the erased state, the new address is read. Reading data in a new block; (c) programming the data further programmed into the bad block into a block having a new address; And (d) performing all operations to a block in which the bad block has a completely new address when an erase operation of the bad block is given. It is characterized by.
이하 도면을 참조하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 5는 본 발명에 의한 메모리 맵에서 배드 블록 처리방법을 도시한 것이다.5 illustrates a bad block processing method in a memory map according to the present invention.
700번 블록에 프로그램 동작을 진행하면서 프로그램 폐일(program fail)이 발생하면 800번 블록(block)으로 새로운 블록(new block)을 지정하게 된다. If a program fail occurs while executing a program operation in
720번 페이지(page)들 즉 이전에 프로그램(program)되어진 페이지는 각 페이지에 730번과 같이 플래그(flag)를 두고 프로그램(program)이 정상적으로 진행되었으면 플래그(flag)도 같이 프로그램(program) 한다.
만약 700번 블록의 710번 페이지에 프로그램을 진행 중에 폐일(fail)이 발생하게 되면 800번 블록의 810번 페이지에 710번 페이지에 프로그램(program)하려던 데이터를 프로그램 한다.If a failure occurs during the program on
즉, 도 4에 의해 기술된 종래 기술의 520번 페이지를 620번 페이지에 다시 프로그램(program)하는 동작은 추가로 필요하지 않는다.That is, an operation of reprogramming
이후 700번 블록에 대해 프로그램(program)과 삭제(erase)는 800번 블록으로 변경을 물리적 어드레스 매핑 제어기(200)에서 진행하고, 700번 블록의 읽기(read)시 730번의 플래그(flag)를 확인하여 플래그(flag)가 프로그램되어 있으면 700번 블록에서 720번 페이지에 대한 읽기(read)를 진행하고 710번 페이지의 읽기(read)는 플래그(flag)가 프로그램(program)되어 있지 않음으로 810번 페이지(page)가 읽기(read) 동작을 할 수 있게 물리적 어드레스 매핑 제어기(200)가 제어하게 된다. Thereafter, the program and the erase for the
상기 플래그(flag)는 700번 블록의 삭제(erase)동작이 수행되면 플래그 데이터(flag data)역시 삭제(erase)되어 이후로는 700번 블록의 읽기(read), 프로그램(program) 및 삭제(erase)동작은 800번 블록으로 변경되게 된다.When the
따라서, 본 발명에서는 페이지 프로그램(page program) 시 페이지 플래그(page flag)를 사용하고 프로그램 시에 플래그(flag)도 같이 기록(write)하게 된다.Therefore, in the present invention, a page flag is used at the time of a page program, and a flag is also written at the time of programming.
프로그램(program)진행 중 폐일(fail)이 발생하면, 데이터를 새로운 어드레스를 갖는 블록(block)에 다시 프로그램하고, 추가로 배드 블록(bad block)으로 처리된 블록의 이전 프로그램 데이터를 옮기지 않음으로 해서 시간 손실(time loss)을 줄일 수 있다.If a failure occurs while the program is in progress, reprogram the data into a block with a new address, and do not move the previous program data of the block treated as a bad block. Time loss can be reduced.
플래그 데이터 읽기(read)시에 배드 블록(bad block)으로 처리된 어드레스이면 페이지 플래그(page flag)를 먼저 확인하고 플래그(flag)가 프로그램(program) 되어 있으면 배드 블록(bad block)에서 데이터를 읽기(read) 동작을 하고 플래그(flag)가 삭제(erase)상태로 있으면 새로운 어드레스를 갖는 블록(new block)에서 데이터를 읽기(read) 동작을 한다. If the address is processed as a bad block when reading the flag data, the page flag is checked first. If the flag is programmed, the data is read from the bad block. If a read operation is performed and a flag is in an erased state, data is read from a block having a new address.
그리고 배드 블록(bad block)으로 추가로 프로그램(program)되는 데이터는 새로운 어드레스를 갖는 블록(new block)으로 프로그램을 진행하고, 배드 블록(bad block)의 삭제(erase) 동작이 주어지면 비로소 배드 블록(Bad block)이 완전히 새로운 블록(new block)으로 모든 동작을 진행하게 한다. The data additionally programmed as a bad block is programmed into a block having a new address, and the bad block is given only when an erase operation of the bad block is given. (Bad block) makes all the operations to a completely new block.
즉, 읽기 모드(read mode)에서는 배드 블록(bad block)과 새로운 블록(new block) 두개의 블록에서 데이터를 읽는다.That is, in read mode, data is read from two blocks, a bad block and a new block.
이상으로, 본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, the present invention has been described with reference to the embodiments illustrated in the drawings, which are merely exemplary, and it should be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. will be. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
본 발명에 의하면, 메모리를 제어하는 회로가 프로그램 중 폐일(fail) 발생 시 이를 빠른 시간에 배드 블록으로 처리하고 새로운 블록에 데이터를 다시 프로그램하고 추가로 배드 블록으로 처리된 블록의 이전 프로그램 데이터를 옮기지 않음으로 해서 시간 손실(time loss)을 줄일 수 있다.According to the present invention, a circuit for controlling a memory processes a bad block in a short time when a failure occurs during a program, reprograms data into a new block, and further moves old program data of a block processed as a bad block. By not doing so, time loss can be reduced.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050105407A KR20070048384A (en) | 2005-11-04 | 2005-11-04 | Method of processing bad block in memory map |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050105407A KR20070048384A (en) | 2005-11-04 | 2005-11-04 | Method of processing bad block in memory map |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070048384A true KR20070048384A (en) | 2007-05-09 |
Family
ID=38272845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050105407A KR20070048384A (en) | 2005-11-04 | 2005-11-04 | Method of processing bad block in memory map |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070048384A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100858241B1 (en) * | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | Hybrid-flash memory device and method for assigning reserved blocks therof |
KR101030146B1 (en) * | 2008-08-29 | 2011-04-18 | 서울대학교산학협력단 | Flash based storage device using page buffer as write cache and method of using the same |
CN107704193A (en) * | 2016-08-08 | 2018-02-16 | 北京同方微电子有限公司 | A kind of FLASH memory block wipes circuit and block wipes method |
CN114020525A (en) * | 2021-10-21 | 2022-02-08 | 苏州浪潮智能科技有限公司 | Fault isolation method, device, equipment and storage medium |
-
2005
- 2005-11-04 KR KR1020050105407A patent/KR20070048384A/en not_active Application Discontinuation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100858241B1 (en) * | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | Hybrid-flash memory device and method for assigning reserved blocks therof |
US7453712B2 (en) | 2006-10-25 | 2008-11-18 | Samsung Electronics Co., Ltd. | Hybrid flash memory device and method for assigning reserved blocks thereof |
KR101030146B1 (en) * | 2008-08-29 | 2011-04-18 | 서울대학교산학협력단 | Flash based storage device using page buffer as write cache and method of using the same |
CN107704193A (en) * | 2016-08-08 | 2018-02-16 | 北京同方微电子有限公司 | A kind of FLASH memory block wipes circuit and block wipes method |
CN114020525A (en) * | 2021-10-21 | 2022-02-08 | 苏州浪潮智能科技有限公司 | Fault isolation method, device, equipment and storage medium |
CN114020525B (en) * | 2021-10-21 | 2024-04-19 | 苏州浪潮智能科技有限公司 | Fault isolation method, device, equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100531192B1 (en) | Non-volatile memory control method | |
US7593269B2 (en) | Differential flash memory programming technique | |
US7610436B2 (en) | Semiconductor device having flash memory with a data length table | |
JP4921174B2 (en) | How to write data to flash memory | |
KR20070048384A (en) | Method of processing bad block in memory map | |
EP3057100B1 (en) | Memory device and operating method of same | |
KR100737919B1 (en) | Program method of nand flash memory and program method of memory system | |
KR20090120675A (en) | Method of inputting address in a non volatile memory device and method of operating the same | |
CN114089908A (en) | Nonvolatile memory and operating method thereof | |
JP2000243093A (en) | Data storing method for flash memory and data reading out method from flash memory | |
JP2006504202A (en) | Method for driving a memory structure | |
JP2008146341A (en) | Nonvolatile semiconductor storage device, and processing method for the same | |
JPH07296591A (en) | Electronic equipment | |
JP2001092713A (en) | Device and method for writing data | |
JP2008146742A (en) | Nonvolatile semiconductor memory device and its processing method | |
JP2005316831A (en) | Electronic controller and data adjustment method | |
KR101038471B1 (en) | Method of operating a non volatile memory device | |
JP2007199985A (en) | Rewriting device and rewriting method for nonvolatile memory | |
KR100965079B1 (en) | Non volatiel memory device | |
JP2004273117A (en) | Semiconductor device mounting composite flash memory thereon, and portable device | |
JP2008077468A (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
KR100343442B1 (en) | Program/erase method of non-volatile memory | |
KR100618959B1 (en) | System for changing data of electronic product | |
KR20000060710A (en) | Write apparatus and method for flash memory | |
CN113345505A (en) | Flash memory and working method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |