KR101091844B1 - Flash memory system scanning bad block fast and bad bolck managing method thereof - Google Patents

Flash memory system scanning bad block fast and bad bolck managing method thereof Download PDF

Info

Publication number
KR101091844B1
KR101091844B1 KR1020070048123A KR20070048123A KR101091844B1 KR 101091844 B1 KR101091844 B1 KR 101091844B1 KR 1020070048123 A KR1020070048123 A KR 1020070048123A KR 20070048123 A KR20070048123 A KR 20070048123A KR 101091844 B1 KR101091844 B1 KR 101091844B1
Authority
KR
South Korea
Prior art keywords
block
address
bad
memory
bad block
Prior art date
Application number
KR1020070048123A
Other languages
Korean (ko)
Other versions
KR20080101951A (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 KR1020070048123A priority Critical patent/KR101091844B1/en
Priority to US12/122,369 priority patent/US7916540B2/en
Priority to JP2008131248A priority patent/JP5289821B2/en
Priority to TW097118364A priority patent/TWI490882B/en
Priority to CN200810171440.8A priority patent/CN101369464B/en
Publication of KR20080101951A publication Critical patent/KR20080101951A/en
Application granted granted Critical
Publication of KR101091844B1 publication Critical patent/KR101091844B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

Abstract

본 발명에 따른 메모리 시스템은, 제 1 어드레스 구간과 제 2 어드레스 구간을 가지며, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환되도록 구성된 플래시 메모리 장치; 그리고 상기 제 2 어드레스 구간에 속하는 메모리 블록들의 배드 블록 정보를 검색하도록 그리고 상기 선택된 배드 블록 정보를 출력하도록 상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다. 상술한 구성들을 통하여 본 발명의 플래시 메모리 시스템은 고속으로 배드 블록 어드레스를 검색할 수 있다.

Figure 112007063323154-pat00012

A memory system according to the present invention includes a flash memory device having a first address section and a second address section, and configured to exchange a block address of a bad block belonging to the first address section with a block address of the second address section; And a memory controller configured to control the flash memory device to retrieve bad block information of memory blocks belonging to the second address period and to output the selected bad block information. Through the above configurations, the flash memory system of the present invention can retrieve the bad block address at high speed.

Figure 112007063323154-pat00012

Description

고속으로 배드 블록을 검색하는 플래시 메모리 시스템 및 그것의 배드 블록 관리 방법{FLASH MEMORY SYSTEM SCANNING BAD BLOCK FAST AND BAD BOLCK MANAGING METHOD THEREOF}Flash memory system that searches for bad blocks at high speed, and how to manage bad blocks thereof {FLASH MEMORY SYSTEM SCANNING BAD BLOCK FAST AND BAD BOLCK MANAGING METHOD THEREOF}

도 1은 일반적인 배드 블록의 스캐닝 시퀀스를 보여주는 도면;1 shows a scanning sequence of a typical bad block;

도 2는 본 발명의 플래시 메모리 시스템을 간략히 보여주는 블록도;2 is a block diagram schematically showing a flash memory system of the present invention;

도 3은 본 발명에 따른 플래시 메모리 장치에 포함되는 배드 블록들의 분포의 일례를 보여주는 도면;3 is a view showing an example of distribution of bad blocks included in a flash memory device according to the present invention;

도 4는 도 3의 배드 블록들을 검색하기 위한 방법의 일 실시예를 보여주는 순서도;4 is a flow chart showing one embodiment of a method for retrieving the bad blocks of FIG.

도 5는 도 3의 배드 블록들을 검색하기 위한 방법의 다른 실시예를 보여주는 순서도;5 is a flow chart showing another embodiment of a method for retrieving the bad blocks of FIG.

도 6은 본 발명에 따른 플래시 메모리 장치의 배드 블록들의 분포의 다른 예를 보여주는 도면;6 illustrates another example of distribution of bad blocks of a flash memory device according to the present invention;

도 7은 도 6의 배드 블록들을 검색하기 위한 방법을 보여주는 순서도;7 is a flow chart showing a method for retrieving the bad blocks of FIG.

도 8a는 도 7의 일 실시예를 보여주는 순서도;8A is a flow chart showing one embodiment of FIG. 7;

도 8b는 도 7의 다른 실시예를 보여주는 순서도;8B is a flowchart showing another embodiment of FIG. 7;

도 9는 본 발명에 따른 메모리 시스템을 포함하는 모바일 시스템을 보여주는 블록도.9 is a block diagram illustrating a mobile system including a memory system according to the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

110 : 플래시 메모리 장치 120 : 메모리 컨트롤러110: flash memory device 120: memory controller

210 : 플래시 메모리 시스템 220 : 전원 장치210: flash memory system 220: power supply

230 : 프로세싱 유닛 240 : 램230: processing unit 240: ram

250 : 유저 인터페이스250: user interface

본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치 및 그것의 설정 방법에 관한 것이다.The present invention relates to a semiconductor memory device, and more particularly to a flash memory device and a setting method thereof.

반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분된다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 불휘발성 반도체 메모리 장치로는 마스크 롬(Mask read-only memory, MROM), 프로그램 가능한 롬(Programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(Erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그램 가능한 롬(Electrically erasable programmable read-only memory, EEPROM) 등이 있다. Semiconductor memory devices are largely classified into volatile semiconductor memory devices and non-volatile semiconductor memory devices. The volatile semiconductor memory device has a high reading and writing speed, but the stored content disappears when the external power supply is cut off. On the other hand, nonvolatile semiconductor memory devices retain their contents even when the external power supply is interrupted. Therefore, the nonvolatile semiconductor memory device is used to store contents to be preserved regardless of whether or not power is supplied. Non-volatile semiconductor memory devices include mask read-only memory (MROM), programmable read-only memory (PROM), erasable and programmable ROM (EROM), and electrically Electrically erasable programmable read-only memory (EEPROM).

일반적으로, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유롭지 못해 일반 사용자들이 기억 내용을 갱신하기가 용이하지 않다. 이에 반해 EEPROM은 전기적으로 소거 및 쓰기가 가능하기 때문에, 계속적인 갱신이 필요한 시스템 프로그래밍(System programming)이나 보조 기억 장치로의 응용이 확대되고 있다. 특히 플래시(Flash) EEPROM은 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다. 플래시 EEPROM 중에서도 낸드형(NAND-type) 플래시 EEPROM(이하, '낸드형 플래시 메모리'라 칭함)은 다른 플래시 EEPROM에 비해 집적도가 매우 높은 장점을 가진다. In general, MROMs, PROMs, and EPROMs are not free to erase and write on the system itself, making it difficult for ordinary users to update their contents. In contrast, since EEPROMs can be electrically erased and written, applications to system programming or auxiliary storage devices that require continuous updating are expanding. In particular, the flash EEPROM has a higher density than the conventional EEPROM, which is very advantageous for application to a large capacity auxiliary storage device. Among the flash EEPROMs, the NAND-type flash EEPROM (hereinafter, referred to as 'NAND flash memory') has an advantage of having a higher density than other flash EEPROMs.

일반적으로 플래시 메모리 장치는 정보를 저장할 수 있으며 원할 때 정보를 독출할 수 있는 집적 회로이다. 플래시 메모리 장치는 재기입이 가능한 복수의 메모리 셀들을 포함한다. 메모리 셀들 각각은 1-비트 데이터 또는 멀티-비트 데이터를 저장한다. 플래시 메모리 장치는 점차 고집적화 및 대용량화, 그리고 칩 사이즈의 증가를 통해서 고기능화되고 있다. 그러나 상술한 트렌드(Trend)들에 따라 플래시 메모리 장치의 회로 선폭 감소, 공정의 증가 및 복잡도 증가 등이 수반된다. 이러한 조건들은 칩의 수율을 감소시키는 요인이 되고 있다. 이러한 문제점을 해결하기 위해, 플래시 메모리 장치는 결함이 발생된 메모리 셀을 대체하기 위한 여분의 메모리 셀(Redundant Memory Cell:이하 리던던트 메모리 셀)을 구비하고 있다. 또한, 플래시 메모리 장치는 결함 셀의 어드레스를 리던던트 메모리 셀의 어드레스로 전환하기 위한 수단들을 포함하고 있다. 테스트시 결함이 존재하는 배드 블록(Bad block)이 검출되면, 배드 블록은 결함이 없는 리던던트 블록으로 대체된다. 이러한 배드 블록의 처리에 따라, 배드 블록이 존재하는 플래시 메모리 장치는 양품으로 출시될 수 있다.Generally, flash memory devices are integrated circuits that can store information and read information when desired. The flash memory device includes a plurality of rewritable memory cells. Each of the memory cells stores one-bit data or multi-bit data. Flash memory devices are becoming increasingly functional through high integration, high capacity, and increasing chip size. However, according to the above-described trends, the circuit line width of the flash memory device is reduced, the process is increased, and the complexity is increased. These conditions are causing the chip yield to decrease. In order to solve this problem, a flash memory device includes a redundant memory cell (hereinafter, referred to as a redundant memory cell) for replacing a defective memory cell. The flash memory device also includes means for converting an address of a defective cell into an address of a redundant memory cell. If a bad block in which a defect is present in the test is detected, the bad block is replaced with a redundant block without a defect. According to the processing of this bad block, the flash memory device in which the bad block exists can be released in good quality.

그러나, 하나의 플래시 메모리 장치에 구비되는 리던던트 블록의 수는 한정되어 있으며, 검출된 배드 블록의 수가 리던던트 블록 수를 초과하는 경우도 배재할 수 없다. 이러한 경우, 생산자는 처음부터 리페어되지 못한 배드 블록의 수의 허용 범위를 사용자에게 공지하고, 리페어되지 않은 배드 블록을 포함하는 플래시 메모리 장치를 공급할 수 있다. 이 경우, 배드 블록의 선택을 차단하기 위해서 컨트롤러 또는 사용자는 배드 블록의 위치를 검색해야 한다. 이하에서는, "배드 블록"은 상술한 리페어되지 못한 결함이 존재하는 블록을 지칭하기로 한다. However, the number of redundant blocks included in one flash memory device is limited and cannot be excluded even when the number of detected bad blocks exceeds the number of redundant blocks. In such a case, the producer may inform the user of the allowable range of the number of bad blocks not repaired from the beginning, and supply a flash memory device including the unrepaired bad blocks. In this case, in order to block the selection of the bad block, the controller or the user must search for the location of the bad block. Hereinafter, the "bad block" refers to a block in which the aforementioned non-repaired defects exist.

도 1은 플래시 메모리 장치의 메모리 블록의 어드레스 맵을 간략히 보여주는 도면이다. 도 1을 참조하면, 파워-업시 플래시 메모리 장치의 메모리 블록들은 메모리 블록(MB0)에서부터 최종 메모리 블록 (MB2047)까지 검색된다. 메모리 블록 각각의 어느 한 영역에는 배드 블록인지 또는 정상 블록인지의 여부를 나타내는 체크 데이터(Check data)가 존재한다. 검색을 통하여 체크 데이터를 독출하고, 독출된 체크 데이터를 참조하여 검색된 메모리 블록의 배드 블록 여부를 판단한다. 이러한 검색을 통하여 플래시 메모리 장치의 배드 블록들에 대한 정보는 메모리 장치의 외부로 제공될 수 있다.1 is a diagram schematically illustrating an address map of a memory block of a flash memory device. Referring to FIG. 1, memory blocks of a flash memory device at power-up are searched from a memory block MB0 to a final memory block MB2047. Check data indicating whether a bad block or a normal block is present in any one area of each memory block. The check data is read through the search and the bad block of the found memory block is determined by referring to the read check data. Through such a search, information on bad blocks of the flash memory device may be provided to the outside of the memory device.

상술한 배드 블록의 처리에 대한 기술이 U.S. Patent No. 6,956,769에 "SEMICONDUCTOR MEMORY DEVICE WITH A FLEXIBLE REDUNDANCY SCHEME"라는 제목으로, 한국공개특허공보 특1998-0026248에 "자동 결함 블록 맵핑 기능을 갖는 반도체 메모리 장치"라는 제목으로 각각 기재되어 있으며, 이 출원의 레퍼런스에 포함된다.Techniques for processing the above bad blocks are described in US Patent No. 6,956,769 " SEMICONDUCTOR MEMORY DEVICE WITH A FLEXIBLE REDUNDANCY SCHEME , which is described in Korean Patent Laid-Open Publication No. 1998-0026248, entitled " Semiconductor Memory Device with Automatic Defect Block Mapping Function, " and is incorporated by reference in this application.

상술한 기술들에 따르면, 도 1에서 설명된 방식으로 리페어되지 못한 배드 블록들에 대한 정보는 파워-업 동작시에 반드시 사용자 또는 컨트롤러에게 제공되어야 한다. 그리고, 사용자 또는 컨트롤러는 플래시 메모리 장치로부터 제공되는 배드 블록 어드레스를 참조하여 어드레스 맵핑 테이블(Address mapping tabel)을 구성하게 된다. 리페어되지 못한 배드 블록으로의 액세스를 사전에 차단하기 위한 어드레스 맵핑 테이블을 구성하기 위해서, 플래시 메모리 장치의 모든 메모리 블록들이 검색되어야 한다. 플래시 메모리 장치의 모든 메모리 블록들을 검색하여 어드레스 맵핑 테이블을 구성하기 위해서는, 플래시 메모리 장치 또는 메모리 시스템의 부팅에 소요되는 시간이 길어질 수밖에 없다. 부팅 시간의 연장은 메모리 시스템의 성능을 저하시키는 요인이 된다.According to the techniques described above, information about bad blocks that are not repaired in the manner described in FIG. 1 must be provided to the user or the controller during the power-up operation. The user or the controller configures an address mapping table with reference to the bad block address provided from the flash memory device. In order to construct an address mapping table for blocking access to unrepaired bad blocks in advance, all memory blocks of the flash memory device must be searched. In order to search all the memory blocks of the flash memory device and construct an address mapping table, the time required for booting the flash memory device or the memory system becomes long. An extended boot time is a factor that degrades the performance of the memory system.

본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, 배드 블록의 검색을 고속을 수행할 수 있는 플래시 메모리 시스템 및 그것의 배드 블록 관리 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION An object of the present invention is to solve the above-mentioned problems, and to provide a flash memory system and a bad block management method thereof capable of performing a fast search of a bad block.

상기의 과제를 이루기 위한 본 발명에 따른 메모리 시스템은, 제 1 어드레스 구간과 제 2 어드레스 구간을 가지며, 상기 제 1 어드레스 구간에 속하는 배드 블 록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환되도록 구성된 플래시 메모리 장치; 그리고 상기 제 2 어드레스 구간에 속하는 메모리 블록들의 배드 블록 정보를 검색하도록 그리고 상기 선택된 배드 블록 정보를 출력하도록 상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다. In accordance with another aspect of the present invention, a memory system includes a first address section and a second address section, and exchanges a block address of a bad block belonging to the first address section with a block address of the second address section. A flash memory device configured to be; And a memory controller configured to control the flash memory device to retrieve bad block information of memory blocks belonging to the second address period and to output the selected bad block information.

이 실시예에 있어서, 상기 배드 블록의 블록 어드레스는, 상기 제 2 어드레스 구간의 정상 블록들 중 최종 블록 어드레스와 우선적으로 교환된다.In this embodiment, the block address of the bad block is preferentially exchanged with the last block address of the normal blocks of the second address period.

이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 플래시 메모리 장치의 초기화 동작시 상기 제 2 어드레스 구간에 대응하는 모든 메모리 블록들을 검색한다.In this embodiment, the memory controller searches for all memory blocks corresponding to the second address section in the initialization operation of the flash memory device.

이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 제 2 어드레스 구간을 순차적으로 검색하되, 최초로 배드 블록에 대응하는 배드 블록 정보가 검색되는 블록 어드레스까지만 검색한다.In this embodiment, the memory controller sequentially searches the second address section, but searches only up to the block address where the bad block information corresponding to the bad block is searched first.

이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 배드 블록 정보가 검색된 메모리 블록의 어드레스 및 상기 검색된 어드레스의 상위 어드레스들을 배드 블록의 어드레스로써 인식한다.In this embodiment, the memory controller recognizes the address of the memory block in which the bad block information is searched and the upper addresses of the searched address as the address of the bad block.

이 실시예에 있어서, 상기 제 2 어드레스 구간은 각각 연속되는 블록 어드레스 구간을 갖는 복수의 예비 어드레스 구간들을 포함한다.In this embodiment, the second address section includes a plurality of preliminary address sections each having a contiguous block address section.

이 실시예에 있어서, 상기 복수의 예비 어드레스 구간들 각각은 배드 블록들의 블록 어드레스를 포함한다.In this embodiment, each of the plurality of preliminary address periods includes a block address of bad blocks.

이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 복수의 예비 어드레스 구간들에 대응하는 모든 메모리 블록들을 검색한다.In this embodiment, the memory controller searches for all memory blocks corresponding to the plurality of spare address intervals.

이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 복수의 예비 어드레스 구간들 각각을 검색하되, 각각 최초로 배드 블록에 대응하는 배드 블록 정보가 검색되는 블록 어드레스까지만 검색한다.In this embodiment, the memory controller searches each of the plurality of preliminary address periods, but searches only up to the block address where the bad block information corresponding to the bad block is searched for the first time.

상기 목적을 달성하기 위한 본 발명에 따른 플래시 메모리 시스템의 배드 블록 관리 방법은, 제 1 어드레스 구간과 제 2 어드레스 구간을 가지며, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환하도록 구성되는 플래시 메모리 장치를 제공하는 단계; 그리고 상기 제 2 어드레스 구간에 속하는 메모리 블록들의 배드 블록 정보를 검색하도록 그리고 상기 검색된 배드 블록 정보를 출력하도록 상기 플래시 메모리 장치를 제어하는 단계를 포함한다. The bad block management method of the flash memory system according to the present invention for achieving the above object has a first address section and a second address section, and the block address of the bad block belonging to the first address section is the second address section. Providing a flash memory device configured to exchange with a block address of a; And controlling the flash memory device to retrieve bad block information of memory blocks belonging to the second address period and to output the retrieved bad block information.

이 실시예에 있어서, 상기 플래시 메모리 장치를 제공하는 단계에서, 상기 배드 블록의 블록 어드레스는 상기 제 2 어드레스 구간의 정상 블록들 중 최종 블록 어드레스와 우선적으로 교환된다. In this embodiment, in the providing of the flash memory device, the block address of the bad block is preferentially exchanged with the last block address among the normal blocks of the second address period.

이 실시예에 있어서, 상기 플래시 메모리 장치를 제어하는 단계는, (a) 상기 제 2 어드레스 구간에 포함되는 메모리 블록들을 선택하기 위한 블록 어드레스를 설정하되, 시작 어드레스를 상기 제 2 어드레스 구간의 최하위 어드레스로 초기화하는 단계; (b) 상기 설정된 블록 어드레스에 대응하는 메모리 블록으로부터 배드 블록 여부를 지시하는 배드 블록 정보를 독출하고, 독출된 상기 배드 블록 정보를 참조하여 상기 설정된 블록 어드레스에 대응하는 메모리 블록이 배드 블록인지를 판단하는 단계; 및 (c) 상기 배드 블록 정보가 정상 블록을 지시하는 경우, 상기 블록 어드레스를 유효 블록 테이블에 추가하는 단계를 포함한다.In the present embodiment, the controlling of the flash memory device may include: (a) setting a block address for selecting memory blocks included in the second address period, wherein a start address is the lowest address of the second address period; Initializing with; (b) reading bad block information indicating whether the block is bad from the memory block corresponding to the set block address, and determining whether the memory block corresponding to the set block address is a bad block by referring to the read bad block information; Making; And (c) if the bad block information indicates a normal block, adding the block address to a valid block table.

이 실시예에 있어서, 상기 (c) 단계에서, 상기 배드 블록 정보가 배드 블록임을 지시하는 경우, 상기 블록 어드레스는 배드 블록 테이블에 추가된다. In this embodiment, in step (c), when the bad block information indicates that the bad block, the block address is added to the bad block table.

이 실시예에 있어서, 상기 (c) 단계 이후, 검색되는 메모리 블록의 어드레스가 상기 제 2 어드레스 구간의 최종 블록인지를 판단하는 (d) 단계를 더 포함한다. In this exemplary embodiment, the method may further include, after step (c), determining whether the address of the memory block to be searched is the last block of the second address section.

이 실시예에 있어서, 상기 (d) 단계에서 상기 메모리 블록의 어드레스가 상기 제 2 어드레스 구간의 최종 블록이 아닌 경우, 상기 블록 어드레스에 연속되는 메모리 블록을 선택하도록 상기 블록 어드레스를 카운트-업하고 상기 (b) 단계로 이동하는 (e) 단계를 더 포함한다. In this embodiment, in the step (d), if the address of the memory block is not the last block of the second address interval, the block address is counted up to select a memory block subsequent to the block address and the (e) moving to step (b).

이 실시예에 있어서, 상기 (c) 단계에서 상기 배드 블록 정보가 배드 블록임을 지시하는 경우, 상기 배드 블록 정보가 검색된 메모리 블록의 블록 어드레스 및 상기 검색된 어드레스의 상위 블록 어드레스들을 배드 블록 테이블에 추가한다. In this embodiment, when the bad block information indicates that the bad block information is a bad block in step (c), the block address of the memory block in which the bad block information is searched and the upper block addresses of the searched address are added to the bad block table. .

이 실시예에 있어서, 상기 제 2 어드레스 구간은 각각 연속되는 블록 어드레스 구간을 갖는 복수의 예비 어드레스 구간들을 포함한다. In this embodiment, the second address section includes a plurality of preliminary address sections each having a contiguous block address section.

이 실시예에 있어서, 상기 복수의 예비 어드레스 구간들 각각은 배드 블록들의 블록 어드레스를 포함한다. In this embodiment, each of the plurality of preliminary address periods includes a block address of bad blocks.

이 실시예에 있어서, 상기 복수의 예비 블록 어드레스 구간들 각각에 대해서 상기 (a) 단계 내지 상기 (c) 단계에 따른 동작을 수행한다. In this embodiment, the operations according to steps (a) to (c) are performed for each of the plurality of spare block address periods.

상기 목적을 달성하기 위한 정보 기기는 메모리 카드; 및 상기 메모리 카드와 데이터를 교환하기 위한 컴퓨팅 시스템을 포함하되, 상기 메모리 카드는, 제 1 어드레스 구간과 제 2 어드레스 구간을 가지며, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환되도록 구성된 플래시 메모리 장치; 그리고 상기 제 2 어드레스 구간에 속하는 메모리 블록들의 배드 블록 정보를 검색하도록 그리고 상기 선택된 배드 블록 정보를 출력하도록 상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다.An information device for achieving the above object includes a memory card; And a computing system for exchanging data with the memory card, wherein the memory card has a first address section and a second address section, wherein the block address of the bad block belonging to the first address section is assigned to the second address. A flash memory device configured to be exchanged with a block address of a section; And a memory controller configured to control the flash memory device to retrieve bad block information of memory blocks belonging to the second address period and to output the selected bad block information.

이상의 본 발명에 따른 메모리 시스템 및 배드 블록 관리 방법에 따르면, 외부에서 신속하게 플래시 메모리 장치의 배드 블록에 대한 검색을 수행할 수 있다. 따라서, 본 발명은 고속의 부팅이 가능한 메모리 시스템을 제공할 수 있다.According to the memory system and the bad block management method according to the present invention, the bad block of the flash memory device can be searched quickly from the outside. Accordingly, the present invention can provide a memory system capable of fast booting.

앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.It is to be understood that both the foregoing general description and the following detailed description are exemplary, and that additional explanations of the claimed invention are provided. Reference numerals are shown in detail in preferred embodiments of the invention, examples of which are shown in the reference figures. In any case, like reference numerals are used in the description and the drawings to refer to the same or like parts.

이하에서는, 낸드형(NAND type) 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세히 설명한다.In the following, a NAND type flash memory device is used as an example for explaining the features and functions of the present invention. However, one of ordinary skill in the art will readily appreciate the other advantages and performances of the present invention in accordance with the teachings herein. The present invention may be implemented or applied through other embodiments. In addition, the detailed description may be modified or changed according to aspects and applications without departing from the scope, technical spirit and other objects of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 메모리 시스템(100)을 보여주는 블록도이다. 도 2를 참조하면, 플래시 메모리 시스템(100)은 대용량의 데이터를 저장하기 위한 플래시 메모리 장치(110)와 메모리 컨트롤러(120)를 포함한다. 본 발명의 플래시 메모리 장치(110)는 리페어되지 않은 배드 블록들을 특정 어드레스 범위에 연속적으로 위치하도록 블록 어드레스를 리맵핑한다. 그리고 메모리 컨트롤러(120)는 플래시 메모리 장치(110)에 포함되는 일부 메모리 블록들만을 검색하는 것으로 플래시 메모리 장치(110)의 전체 배드 블록들을 검색할 수 있다. 2 is a block diagram illustrating a memory system 100 according to the present invention. Referring to FIG. 2, the flash memory system 100 includes a flash memory device 110 and a memory controller 120 for storing a large amount of data. The flash memory device 110 of the present invention remaps a block address so that unrepaired bad blocks are continuously located in a specific address range. In addition, the memory controller 120 searches only some memory blocks included in the flash memory device 110 to search all bad blocks of the flash memory device 110.

플래시 메모리 장치(110)의 블록 어드레스는 배드 블록들의 블록 어드레스를 특정 어드레스 범위에 연속되도록 리맵핑된다. 이러한 블록 어드레스의 리맵핑을 위해서는 배드 블록들의 블록 어드레스를 교환하기 위한 예비 어드레스 구간이 지정되어 있어야 한다. 예비 어드레스 구간을 이하에서는 예비 블록 범위라 칭하기로 한다. 예비 블록 범위에는 정상 블록들이 분포하는 블록 어드레스 구간이다. 예를 들면, 플래시 메모리 장치의 전체 블록들 중, 예비 블록 범위에 32개의 메모리 블록이 할당되는 경우에는 최종 블록 어드레스에 대응하는 연속되는 16개의 메모리 블록들에 대응하는 어드레스 범위일 수 있다. 또는, 각각 연속되는 블록 어드레스를 갖는 16개의 메모리 블록들이 포함되는 이격된 2개의 어드레스 구간이 예비 블록 범위로 선택될 수 있다. 즉, 블록 어드레스의 리맵핑시 플래시 메모리 장치(110)에 포함되는 배드 블록들은 예비 블록 범위에 포함되는 정상 메모리 블록과 블록 어드레스를 교환하게 된다. 이때, 예비 블록 범위에 대응하는 메모리 블록들의 블록 어드레스는 배드 블록의 블록 어드레스가 연속되도록 리맵핑된다. 따라서, 리맵핑 이후, 플래시 메모리 장치(110)에 포함되는 배드 블록들은 예비 블록 범위 내에서 연속적으로 분포하게 된다.The block address of the flash memory device 110 is remapped so that the block addresses of the bad blocks are contiguous to a specific address range. In order to remap the block address, a spare address section for exchanging the block addresses of the bad blocks should be designated. The reserved address section will hereinafter be referred to as a reserved block range. The spare block range is a block address section in which normal blocks are distributed. For example, when 32 memory blocks are allocated to the spare block range among all the blocks of the flash memory device, they may be address ranges corresponding to 16 consecutive memory blocks corresponding to the last block address. Alternatively, two spaced apart address intervals including sixteen memory blocks each having a contiguous block address may be selected as a spare block range. That is, when remapping block addresses, the bad blocks included in the flash memory device 110 exchange a block address with a normal memory block included in a spare block range. In this case, the block addresses of the memory blocks corresponding to the spare block range are remapped so that the block addresses of the bad blocks are continuous. Therefore, after remapping, the bad blocks included in the flash memory device 110 are continuously distributed within the spare block range.

메모리 컨트롤러(120)는 호스트(Host)의 읽기/쓰기 요청에 응답하여 플래시 메모리 장치(110)로부터 저장된 데이터를 독출 또는 기입하도록 플래시 메모리 장치(110)를 제어한다. 메모리 컨트롤러(120)는 호스트(모바일 기기 또는 컴퓨터 시스템)로부터 제공되는 어드레스를 플래시 메모리 장치(110)의 물리적인 어드레스로 맵핑하기 위한 어드레스 맵핑 테이블(Address mapping table)을 구성해야 한다. 이때, 메모리 컨트롤러(120)는 배드 블록으로의 기입 또는 독출 동작을 차단하기 위하여 배드 블록에 대한 물리적 어드레스 정보를 구비해야 한다. 따라서, 메모리 컨트롤러(120)는 파워-온(Power-on) 또는 초기화 동작시, 플래시 메모리 장치(110)에 포함되는 배드 블록의 위치를 검색한다. 본 발명의 메모리 컨트롤러(120)는 플래시 메모리 장치(110)에 포함되는 모든 메모리 블록들을 검색하지 않고, 상술한 예비 블록 범위에 대응하는 블록 어드레스 범위만을 검색하도록 설정된다. 따라서, 일부분의 메모리 블록들을 검색하는 것으로도 플래시 메모리 장치(110)에 포함되는 배드 블록들의 어드레스를 모두 파악할 수 있다.The memory controller 120 controls the flash memory device 110 to read or write data stored in the flash memory device 110 in response to a read / write request of the host. The memory controller 120 must construct an address mapping table for mapping an address provided from a host (mobile device or computer system) to a physical address of the flash memory device 110. In this case, the memory controller 120 should have physical address information on the bad block in order to block a write or read operation to the bad block. Therefore, the memory controller 120 searches for the location of the bad block included in the flash memory device 110 during a power-on or initialization operation. The memory controller 120 of the present invention is configured not to search for all memory blocks included in the flash memory device 110, but to search only a block address range corresponding to the above-described spare block range. Accordingly, even searching for a part of the memory blocks may determine all addresses of the bad blocks included in the flash memory device 110.

이상의 본 발명에 따른 메모리 시스템(100)은 특정 블록 어드레스 범위에 연속적으로 배드 블록들을 리맵핑하는 플래시 메모리 장치(110)와 예비 어드레스 구간에 대한 배드 블록의 검색을 수행하는 메모리 컨트롤러(120)로 구성된다. 따라서, 메모리 컨트롤러(120)는 배드 블록의 어드레스를 신속히 파악하여, 호스트 측으로 제공하거나 어드레스 맵핑 테이블의 구성에 사용할 수 있다.The memory system 100 according to the present invention includes a flash memory device 110 for remapping bad blocks in a specific block address range and a memory controller 120 for searching for a bad block for a preliminary address period. do. Therefore, the memory controller 120 can quickly grasp the address of the bad block and provide the address to the host side or use it in the construction of the address mapping table.

도 3은 배드 블록의 리맵핑에 따라 구성되는 플래시 메모리 장치(110, 도 2 참조)의 블록 어드레스 맵의 일 실시예를 간략히 보여주는 도면이다. 플래시 메모리 장치(110)에서 이루어지는 배드 블록의 리맵핑에 따라, 배드 블록들은 특정 어드레스 범위(예를 들면, MB2043~MB2047)에 연속적으로 분포한다. 배드 블록의 리맵핑에 따라, 플래시 메모리 장치(110)의 블록들은 메모리 컨트롤러(120, 도 2 참조)에 의해서 액세스되는 유효 블록 범위(130)와 어느 한 영역에 배드 블록들이 연속적으로 분포하는 예비 블록 범위(140)를 포함한다. 예비 블록 범위(140)는 배드 블록의 리맵핑 이전에는 정상적인 메모리 블록들을 포함하나, 배드 블록의 리맵핑에 따라 최종 어드레스의 메모리 블록부터 배드 블록들로 전환된다. 따라서, 예비 블록 범위(140)에는 정상적인 메모리 블록들을 포함하는 어드레스 범위(예를 들면, MB2014~MB2042)와 배드 블록들이 연속적으로 위치하는 배드 블록 범위(150)를 포함한다. FIG. 3 is a diagram schematically illustrating an embodiment of a block address map of a flash memory device 110 (refer to FIG. 2) configured according to remapping of a bad block. According to the remapping of bad blocks made in the flash memory device 110, the bad blocks are continuously distributed in a specific address range (for example, MB2043 to MB2047). According to the remapping of the bad blocks, the blocks of the flash memory device 110 are spare blocks in which bad blocks are continuously distributed in one region and the effective block range 130 accessed by the memory controller 120 (see FIG. 2). Range 140. The spare block range 140 includes normal memory blocks before the remapping of the bad block, but is converted from the memory block of the last address to the bad blocks according to the remapping of the bad block. Therefore, the spare block range 140 includes an address range including normal memory blocks (for example, MB2014 to MB2042) and a bad block range 150 in which bad blocks are consecutively located.

결론적으로, 플래시 메모리 장치(110)에 포함되는 모든 배드 블록들은 예비 블록 범위(140) 이내에 존재한다. 따라서, 메모리 블록들을 모두 검색할 필요 없이 예비 블록 범위만을 검색하도록 메모리 컨트롤러(120)를 설정할 수 있다. 이 경우, 메모리 컨트롤러(120)는 신속하게 배드 블록들의 어드레스를 파악하여 어드레스 맵핑 테이블에 사용 불가한 메모리 블록으로 인식할 수 있다.
도 4는 상술한 도 3의 방식으로 배드 블록이 리맵핑되는 플래시 메모리 장치(110)의 배드 블록을 검색하기 위한 방법의 일 실시예를 간략히 보여주는 순서도이다. 도 4를 참조하면, 메모리 컨트롤러(120)는 전체 블록 어드레스 중에서 예비 블록 범위(140)에 대응하는 블록들만을 검색한다. 이하 메모리 컨트롤러(120)에 의한 배드 블록의 검색 방법이 상술한 도면에 의거하여 상세히 설명될 것이다.
배드 블록에 대한 검색이 시작되면, 메모리 컨트롤러(120)는 최초 검색이 시작되는 블록 어드레스를 예비 블록 범위(140)의 시작 어드레스(예를 들면, Block address = 2014)로 초기화한다(S110). 메모리 컨트롤러(120)는 예비 블록 범위(140)의 시작 어드레스(예를 들면, Block address = 2014)로부터 배드 블록인지의 여부를 검색한다. 일반적으로 플래시 메모리 장치(110)의 각 메모리 블록들은 블록 내부의 특정 페이지 및 특정 칼럼에 배드 블록 또는 정상 블록인지의 여부를 지시하는 체크 데이터(Check data)를 저장한다. 따라서, 메모리 컨트롤러(120)는 메모리 블록 내의 지정된 어드레스에 저장된 체크 데이터(Check data)를 독출한다(S120). 메모리 컨트롤러(120)는 독출된 체크 데이터를 참조하여 검색중인 메모리 블록이 배드 블록인지 또는 정상 블록인지를 판단한다(S130). 만일 체크 데이터가 배드 블록임을 지시하는 경우, 메모리 컨트롤러(120)는 검색중인 메모리 블록의 블록 어드레스를 배드 블록으로 지정한다. 배드 블록으로 지정된 메모리 블록은 메모리 컨트롤러(120)에 구성되는 배드 블록 테이블에 추가된다. 이후 호스트로부터의 액세스 요청시, 메모리 컨트롤러(120)는 상술한 배드 블록 테이블에 포함된 메모리 블록을 제외한 유효 블록들을 선택하게 될 것이다(S140). 반면에 체크 데이터가 배드 블록을 지시하지 않는 경우, 절차는 최종 어드레스의 블록에 대응하는지를 판단하는 단계로 이동한다. 그리고 메모리 컨트롤러(120)는 예비 블록 범위(140)에서 최종 블록 어드레스인지를 판단한다(S150). 검색된 메모리 블록이 예비 블록 범위(140)에서 최종 블록 어드레스인 경우, 배드 블록 검색은 종료된다. 그러나 최종 블록이 아닌 경우, 메모리 컨트롤러(120)는 블록 어드레스를 카운트-업 한다(S160). 그리고 메모리 컨트롤러(120)는 카운트-업된 블록 어드레스에 대응하는 메모리 블록에 대하여 체크 데이터를 독출하기 위한 단계(S120)로 절차를 이동시킨다.
상술한 배드 블록 검색 동작은 지정된 예비 블록 범위(140)에 대응하는 메모리 블록들에 대하여 수행된다. 그러나, 배드 블록들이 예비 블록 범위(140)의 일부에 연속적으로 위치하게 됨에 따라, 모든 배드 블록들의 어드레스를 확인하는 것이 가능하다. 따라서, 신속한 배드 블록들의 어드레스 확보가 가능하다.
도 5는 상술한 도 3의 방식으로 배드 블록이 리맵핑되는 플래시 메모리 장치(110)의 배드 블록을 검색하기 위한 방법의 다른 실시예를 간략히 보여주는 순서도이다. 도 5를 참조하면, 메모리 컨트롤러(120)는 전체 블록 어드레스 중에서 예비 블록 범위(140)에 대응하는 블록들만을 검색한다. 그러나, 도 5에서 설명되는 실시예에서는 예비 블록 범위(140)에 포함되는 메모리 블록들 중 일부만을 검색하는 것으로 모든 배드 블록의 검출이 가능하다.
배드 블록에 대한 검색이 시작되면, 메모리 컨트롤러(120)는 최초 검색이 시작되는 블록 어드레스를 예비 블록 범위(140)의 시작 어드레스(예를 들면, Block address = 2014)로 초기화한다(S210). 메모리 컨트롤러(120)는 예비 블록 범위(140)의 시작 어드레스(예를 들면, Block address = 2014)에 대응하는 메모리 블록으로부터 시작하여 배드 블록 또는 정상 블록인지의 여부를 검색한다. 즉, 각 메모리 블록들의 체크 데이터(Check data)를 블록 내부의 특정 페이지 및 특정 칼럼으로부터 독출한다(S220). 메모리 컨트롤러(120)는 독출된 체크 데이터를 참조하여 검색중인 메모리 블록이 배드 블록인지 또는 정상 블록인지를 판단한다(S230). 만일 체크 데이터가 배드 블록이 아닌 정상 블록을 지시하는 경우, 메모리 컨트롤러(120)는 현재 검색중인 메모리 블록이 최종 블록 어드레스에 대응하는지를 판단하는 단계로 이동한다. 체크 데이터를 참조한 판정이 완료되면, 메모리 컨트롤러(120)는 검색중인 메모리 블록이 예비 블록 범위에서 최종 블록 어드레스인지를 판단한다. 즉, 메모리 컨트롤러(120)는 블록 어드레스가 최종 어드레스(예를 들면, Block adderss = 2047) 인지를 판단한다(S240). 검색된 메모리 블록이 예비 블록 범위(140)에서 최종 블록 어드레스인 경우, 배드 블록 검색은 종료된다. 그러나 최종 블록이 아닌 경우, 메모리 컨트롤러(120)는 블록 어드레스를 카운트-업 한다(S250). 그리고 메모리 컨트롤러(120)는 카운트-업된 블록 어드레스에 대응하는 메모리 블록에 대하여 체크 데이터를 독출하기 위한 단계(S220)로 동작 절차를 이동한다.
반면에, 상술한 체크 데이터를 참조하여 판단한 결과, 배드 블록으로 판정되는 경우에는 최초 배드 블록으로 판정된 메모리 블록으로부터 이후의 메모리 블록들은 모두 배드 블록으로 결정한다. 즉, 연속적으로 분포하는 배드 블록의 어드레스가 최종 어드레스로부터 역순으로 리맵핑됨에 따라, 최초 검색된 배드 블록의 블록 어드레스 이후로는 모두 배드 블록으로 판정할 수 있다(S260). 메모리 컨트롤러(120)는 결정된 배드 블록들을 메모리 컨트롤러(120) 상에 구성되는 배드 블록 테이블에 추가한다(S270). 한 번의 배드 블록 검색에 따라, 모드 배드 블록들의 어드레스가 검출되었다. 따라서, 더 이상의 배드 블록을 찾기 위한 검색 동작들은 필요치 않다. 검색된 블록 어드레스 이후의 블록들을 모두 배드 블록 테이블에 포함시키는 것으로 배드 블록의 검색은 종료된다.
In conclusion, all bad blocks included in the flash memory device 110 are within the spare block range 140. Therefore, the memory controller 120 may be configured to search only the spare block range without searching all the memory blocks. In this case, the memory controller 120 may quickly recognize the addresses of the bad blocks and recognize the memory blocks as unavailable to the address mapping table.
4 is a flowchart schematically illustrating an embodiment of a method for searching for a bad block of a flash memory device 110 in which a bad block is remapped in the manner of FIG. 3. Referring to FIG. 4, the memory controller 120 searches only blocks corresponding to the spare block range 140 among all block addresses. Hereinafter, a method of searching for a bad block by the memory controller 120 will be described in detail with reference to the drawings.
When the search for the bad block is started, the memory controller 120 initializes the block address at which the first search is started to the start address (eg, Block address = 2014) of the spare block range 140 (S110). The memory controller 120 searches whether the block is a bad block from a start address (eg, Block address = 2014) of the spare block range 140. In general, each memory block of the flash memory device 110 stores check data indicating whether the block is a bad block or a normal block in a specific page and a specific column within the block. Therefore, the memory controller 120 reads check data stored at a specified address in the memory block (S120). The memory controller 120 determines whether the memory block being searched for is a bad block or a normal block with reference to the read check data (S130). If the check data indicates the bad block, the memory controller 120 designates the block address of the memory block being searched as the bad block. The memory block designated as the bad block is added to the bad block table configured in the memory controller 120. Subsequently, upon request for access from the host, the memory controller 120 may select valid blocks other than the memory blocks included in the bad block table described above (S140). On the other hand, if the check data does not indicate a bad block, the procedure moves to determining whether it corresponds to the block of the last address. In addition, the memory controller 120 determines whether the final block address is in the spare block range 140 (S150). If the retrieved memory block is the last block address in the spare block range 140, the bad block search ends. However, if it is not the last block, the memory controller 120 counts up the block address (S160). The memory controller 120 moves the procedure to step S120 for reading check data for the memory block corresponding to the counted up block address.
The bad block search operation described above is performed on memory blocks corresponding to the designated spare block range 140. However, as the bad blocks are continuously located in a part of the spare block range 140, it is possible to check the addresses of all bad blocks. Therefore, it is possible to secure the address of the bad bad blocks.
FIG. 5 is a flowchart schematically illustrating another embodiment of a method for searching for a bad block of a flash memory device 110 in which a bad block is remapped in the manner of FIG. 3. Referring to FIG. 5, the memory controller 120 searches only blocks corresponding to the spare block range 140 among all block addresses. However, in the exemplary embodiment illustrated in FIG. 5, all bad blocks may be detected by searching only some of the memory blocks included in the spare block range 140.
When the search for the bad block is started, the memory controller 120 initializes the block address at which the first search is started to the start address (eg, Block address = 2014) of the spare block range 140 (S210). The memory controller 120 searches whether it is a bad block or a normal block starting from the memory block corresponding to the start address (eg, Block address = 2014) of the spare block range 140. That is, check data of each memory block is read from a specific page and a specific column in the block (S220). The memory controller 120 determines whether the memory block being searched for is a bad block or a normal block with reference to the read check data (S230). If the check data indicates a normal block instead of a bad block, the memory controller 120 moves to determining whether the memory block currently being searched corresponds to the last block address. When the determination referring to the check data is completed, the memory controller 120 determines whether the memory block under search is the last block address in the spare block range. That is, the memory controller 120 determines whether the block address is a final address (for example, block adderss = 2047) (S240). If the retrieved memory block is the last block address in the spare block range 140, the bad block search ends. However, if it is not the last block, the memory controller 120 counts up the block address (S250). The memory controller 120 moves the operation procedure to step S220 for reading check data with respect to the memory block corresponding to the counted-up block address.
On the other hand, when it is determined with reference to the above-described check data, when it is determined as a bad block, all subsequent memory blocks are determined as bad blocks from the memory block determined as the first bad block. That is, as the addresses of the continuously distributed bad blocks are remapped in the reverse order from the last address, all the blocks after the first retrieved bad blocks may be determined as bad blocks (S260). The memory controller 120 adds the determined bad blocks to the bad block table configured on the memory controller 120 (S270). According to one bad block search, the addresses of the mode bad blocks were detected. Thus, no search operations are needed to find any more bad blocks. The search of the bad block is terminated by including all blocks after the retrieved block address in the bad block table.

이상의 도 5는 최초 배드 블록이 검색되면, 이후의 메모리 블록들은 모두 배드 블록으로 간주할 수 있으므로 최초 검색된 배드 블록으로부터 최종 어드레스까지를 배드 블록 테이블에 포함시키는 검색 방법을 기술하고 있다. 따라서, 배드 블록들에 대한 어드레스 테이블의 구성이 신속하게 이루어질 수 있다. 여기서, 상술한 순서도에서 배드 블록들에 대한 어드레스를 이용하여 배드 블록 테이블을 구성하는 것으로 기술되었으나, 본 발명은 이에 국한되지 않는다. 즉, 배드 블록을 제외한 유효 블록들에 대한 블록 테이블을 구성할 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.5 illustrates a search method in which the first bad block is searched and all subsequent memory blocks can be regarded as a bad block, and thus include the first searched bad block to the last address in the bad block table. Thus, the configuration of the address table for the bad blocks can be made quickly. Here, in the above-described flowchart, the bad block table is configured using addresses of the bad blocks, but the present invention is not limited thereto. That is, it is obvious to those who have acquired a general knowledge in this field that a block table for valid blocks other than the bad block can be constructed.

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

도 6은 배드 블록의 리맵핑에 따라 구성되는 플래시 메모리 장치(110, 도 2 참조)의 블록 어드레스 맵의 다른 실시예를 간략히 보여주는 도면이다. 플래시 메모리 장치(110)에서 이루어지는 배드 블록의 리맵핑에 따라, 배드 블록들은 특정 어드레스 범위들(예를 들면, MB1020~MB1023 및 MB2045~MB2047)에 각각 인접하여 연속적으로 분포한다. 배드 블록들이 리맵핑되기 위하여, 플래시 메모리 장치(110)에는 배드 블록들이 할당될 수 있는 예비 블록 범위를 2개 어드레스 구간(160, 170)에 할당한다. 그리고 배드 블록들은 각각의 예비 블록 범위(160, 170)의 최종 어드레스로부터 역순으로 할당된다. 따라서, 예비 블록 범위들(160, 170) 각각에는 정상적인 메모리 블록들을 포함하는 어드레스 범위(예를 들면, MB1008~MB1019 및 MB2032~MB2044)와 배드 블록들이 연속적으로 위치하는 어드레스 범위(예를 들면, MB1020~MB1023 및 MB2045~MB2047)를 포함한다. 메모리 컨트롤러(120)는 상술한 예비 블록 범위들(160, 170)을 검색하는 것으로 플래시 메모리 장치(110)의 내부에 포함되는 모든 배드 블록들의 어드레스를 획득할 수 있다.FIG. 6 is a diagram schematically illustrating another embodiment of a block address map of a flash memory device 110 (refer to FIG. 2) configured according to remapping of a bad block. According to the remapping of the bad blocks made in the flash memory device 110, the bad blocks are sequentially distributed adjacent to specific address ranges (eg, MB1020 to MB1023 and MB2045 to MB2047). In order for the bad blocks to be remapped, the flash memory device 110 allocates a spare block range in which the bad blocks can be allocated to the two address periods 160 and 170. Bad blocks are then allocated in reverse order from the last address of each spare block range 160, 170. Therefore, each of the spare block ranges 160 and 170 includes an address range including normal memory blocks (for example, MB1008 to MB1019 and MB2032 to MB2044) and an address range in which bad blocks are continuously located (for example, MB1020). MB1023 and MB2045 to MB2047). The memory controller 120 may obtain addresses of all bad blocks included in the flash memory device 110 by searching the above-described spare block ranges 160 and 170.

도 7은 도 6에서 기술된 복수의 예비 블록 범위들을 갖는 플래시 메모리 장치의 배드 블록을 검색하기 위한 동작을 간략히 보여주는 순서도이다. 도 7을 참조하면, 배드 블록의 검색은 크게 2개의 단계를 포함한다. 즉, 배드 블록을 검색하기 위하여 메모리 컨트롤러(120)는 예비 블록 범위(160)를 검색하는 단계(S300)와 예비 블록 범위(170)를 검색하는 단계(S400)를 각각 수행한다. 보다 상세한 실시예들이 이하 도 8a 및 도 8b에서 기술될 것이다.
도 8a 및 도 8b는 도 7의 배드 블록 검색을 위한 실시예들을 보여주는 순서도들이다. 도 8a는 예비 블록 범위를 모두 검색하는 실시예를 보여준다. 도 8b는 예비 블록 범위의 일부만을 검색하는 다른 실시예를 보여준다.
도 8a를 참조하면, 메모리 컨트롤러(120)는 플래시 메모리 장치(110)의 전체 블록 어드레스 중에서 예비 블록 범위(160)에 대응하는 메모리 블록들을 검색하는 단계(S300) 및 예비 블록 범위(170)에 대응하는 메모리 블록들을 검색하는 단계(S400)를 각각 수행한다. 단계 (S300)의 상세한 동작들은 다음과 같다.
배드 블록에 대한 검색이 시작되면, 메모리 컨트롤러(120)는 예비 블록 범위(160, 즉, MB1008~MB1023) 중에서 최초 검색이 시작되는 블록 어드레스(예를 들면, Block address = 1008)를 시작 어드레스로 초기화한다(S310). 메모리 컨트롤러(120)는 예비 블록 범위(160)의 시작 어드레스(예를 들면, Block address = 1008)로부터 시작하여 배드 블록인지의 여부를 검색한다. 일반적으로 플래시 메모리 장치(110)의 각 메모리 블록들은 블록 내부의 특정 페이지 및 특정 칼럼에 배드 블록 또는 정상 블록인지의 여부를 지시하는 체크 데이터(Check data)를 저장한다. 따라서, 메모리 컨트롤러(120)는 메모리 블록 내의 지정된 어드레스에 저장된 체크 데이터(Check data)를 독출한다(S320). 메모리 컨트롤러(120)는 독출된 체크 데이터를 참조하여 검색중인 메모리 블록이 배드 블록인지 또는 정상 블록인지를 판단한다(S330). 만일 체크 데이터가 배드 블록임을 지시하는 경우, 메모리 컨트롤러(120)는 검색된 메모리 블록의 블록 어드레스를 배드 블록으로 지정하고 배드 블록 테이블에 추가시킨다(S340). 반면에 체크 데이터가 배드 블록이 아님을 지시하는 경우, 메모리 컨트롤러(120)는 예비 블록 범위(160, 즉, MB1008~MB1023)의 최종 블록인지를 판단하게 될 것이다. 체크 데이터를 참조한 판정이 완료되면, 메모리 컨트롤러(120)는 예비 블록 범위(160)에서 최종 블록 어드레스(예를 들면, Block address = 1023)인지를 판단한다(S350). 검색된 메모리 블록이 예비 블록 범위(160)에서 최종 블록 어드레스인 경우, 배드 블록 검색은 종료된다. 그러나 최종 블록이 아닌 경우, 메모리 컨트롤러(120)는 블록 어드레스를 카운트-업 한다(S360). 그리고 메모리 컨트롤러(120)는 카운트-업된 블록 어드레스에 대응하는 메모리 블록에 대하여 체크 데이터를 독출하기 위한 단계(S320)로 동작 절차를 이동시킨다. 예비 블록 범위의 최종 블록까지 검색이 완료되면, 단계 (S300)은 종료된다.
단계 (S300)에 뒤따르는 단계 (S400)의 동작은 다음과 같다. 메모리 컨트롤러(120)는 예비 블록 범위(170, 즉, MB2032~MB2047) 중에서 최초 검색이 시작되는 블록 어드레스(예를 들면, Block address = 2032)를 시작 어드레스로 초기화한다(S410). 메모리 컨트롤러(120)는 예비 블록 범위(170)의 시작 어드레스(예를 들면, Block address = 2032)로부터 시작하여 각각의 메모리 블록들의 배드 블록 여부를 검색한다. 메모리 컨트롤러(120)는 메모리 블록 내의 지정된 어드레스에 저장된 체크 데이터(Check data)를 독출하여 배드 블록인지 정상 블록인지 판단한다(S420). 메모리 컨트롤러(120)는 독출된 체크 데이터를 참조하여 검색중인 메모리 블록이 배드 블록인지 또는 정상 블록인지를 판단한다(S430). 만일 체크 데이터가 배드 블록임을 지시하는 경우, 메모리 컨트롤러(120)는 검색된 메모리 블록의 블록 어드레스를 배드 블록으로 지정한다. 즉, 검색된 유효 블록에 대응하는 어드레스를 배드 블록 테이블에 추가한다(S440). 반면에 체크 데이터가 배드 블록이 아님을 지시하는 경우, 메모리 컨트롤러(120)는 대응하는 블록을 배드 블록 테이블에 포함시키지 않는다. 체크 데이터를 참조한 판정이 완료되면, 메모리 컨트롤러(120)는 예비 블록 범위(170)에서 최종 블록 어드레스(예를 들면, Block address = 2047)인지를 판단한다(S450). 검색된 메모리 블록이 예비 블록 범위(170)에서 최종 블록 어드레스인 경우, 배드 블록 검색은 종료된다. 그러나 최종 블록이 아닌 경우, 메모리 컨트롤러(120)는 블록 어드레스를 카운트-업 한다(S460). 그리고 메모리 컨트롤러(120)는 카운트-업된 블록 어드레스에 대응하는 메모리 블록에 대하여 체크 데이터를 독출하기 위한 단계(S420)로 동작 절차를 이동시킨다. 메모리 컨트롤러(120)는 예비 블록 범위(170)에서 최종 블록 어드레스(예를 들면, Block address = 2047)까지의 검색이 완료되면, 배드 블록 테이블 또는 유효 블록 테이블을 구성하기 위한 제반 검색동작을 종료한다.
이상에서, 단계 (S300) 및 단계 (S400)에 따라 각각의 예비 블록 범위들에 대한 배드 블록의 검색을 위한 동작들이 설명되었다. 도 8a를 통해서 설명된 실시예에서는 예비 블록 범위를 모두 검색해야 한다. 그러나, 배드 블록들이 특정 어드레스 범위에 연속적으로 분포하는 이상, 배드 블록이 위치하는 시작 어드레스를 검출하는 것만으로도 배드 블록들 전체의 어드레스 정보를 획득할 수 있다. 이러한 실시예가 도 8b의 순서도를 통해 설명될 것이다.
도 8b를 참조하면, 메모리 컨트롤러(120)는 예비 블록 범위들(160, 170)에 포함되는 메모리 블록들 중 일부만을 검색하는 것으로 모든 배드 블록의 검출이 가능하다. 예비 블록 범위 (160)에 포함되는 배드 블록들을 검색하기 위한 단계 (S300)은 다음과 같다.
배드 블록에 대한 검색이 시작되면, 메모리 컨트롤러(120)는 최초 검색이 시작되는 블록 어드레스를 예비 블록 범위(160)의 시작 어드레스(예를 들면, Block address = 1008)로 초기화한다(S310). 메모리 컨트롤러(120)는 예비 블록 범위(160)의 시작 어드레스(예를 들면, Block address = 1008)에 대응하는 메모리 블록으로부터 시작하여 배드 블록 또는 정상 블록인지의 여부를 검색한다. 즉, 각 메모리 블록들의 체크 데이터(Check data)를 블록 내부의 특정 페이지 및 특정 칼럼으로부터 독출한다(S320). 메모리 컨트롤러(120)는 독출된 체크 데이터를 참조하여 검색중인 메모리 블록이 배드 블록인지 또는 정상 블록인지를 판단한다(S330). 만일 검색 중인 메모리 블록의 체크 데이터가 배드 블록이 아닌 것으로 판정되면, 메모리 컨트롤러(120)는 검색중인 메모리 블록이 예비 블록 범위(160)에서 최종 블록 어드레스인지를 판단한다. 즉, 메모리 컨트롤러(120)는 블록 어드레스가 최종 어드레스(예를 들면, Block adderss = 1023) 인지를 판단한다(S340). 검색된 메모리 블록이 예비 블록 범위(160)에서 최종 블록 어드레스인 경우, 절차는 예배 블록 범위(170)에 대한 검색을 위한 단계로 이동한다. 그러나 최종 블록이 아닌 경우, 메모리 컨트롤러(120)는 블록 어드레스를 카운트-업 한다(S350). 그리고 메모리 컨트롤러(120)는 카운트-업된 블록 어드레스에 대응하는 메모리 블록에 대하여 체크 데이터를 독출하기 위한 단계(S320)로 동작 절차를 이동한다.
반면에, 상술한 체크 데이터를 참조하여 판단하는 단계(S330)에서 독출된 체크 데이터가 배드 블록을 지시하는 경우에는 현재 검색중인 메모리 블록으로부터 이후의 메모리 블록들은 모두 배드 블록으로 지정한다(S360). 연속적으로 분포하는 배드 블록의 어드레스가 최종 어드레스로부터 역순으로 리맵핑됨에 따라, 최초 검색된 배드 블록의 블록 어드레스 이후로는 모두 배드 블록들로 할당된다. 따라서, 더 이상의 배드 블록을 찾기 위한 검색은 필요치 않다. 검색된 블록 어드레스 이후로부터 예비 블록 범위(160)의 최종 어드레스에 대응하는 메모리 블록들을 모두 배드 블록 테이블에 포함시키는 것으로 예비 블록 범위(160)에 대한 배드 블록의 검색은 종료된다(S370). 이후 호스트로부터의 액세스 요청시, 메모리 컨트롤러(120)는 상술한 배드 블록 테이블을 참조하여 메모리 블록들을 선택하게 될 것이다.
이어서, 예비 블록 범위(170)에 대응하는 배드 블록을 찾기 위한 단계 (S400)가 시작된다. 메모리 컨트롤러(120)는 최초 검색이 시작되는 블록 어드레스를 예비 블록 범위(170)의 시작 어드레스(예를 들면, Block address = 2032)로 초기화한다(S410). 메모리 컨트롤러(120)는 예비 블록 범위(170)의 시작 어드레스(예를 들면, Block address = 2032)에 대응하는 메모리 블록으로부터 시작하여 배드 블록 또는 정상 블록인지의 여부를 검색한다. 즉, 각 메모리 블록들의 체크 데이터(Check data)를 블록 내부의 특정 페이지 및 특정 칼럼으로부터 독출한다(S420). 메모리 컨트롤러(120)는 독출된 체크 데이터를 참조하여 검색중인 메모리 블록이 배드 블록인지 또는 정상 블록인지를 판단한다(S430). 만일 검색 중인 메모리 블록의 체크 데이터가 배드 블록이 아닌 것으로 판정되면, 메모리 컨트롤러(120)는 검색중인 메모리 블록이 예비 블록 범위(170)에서 최종 블록 어드레스인지를 판단한다. 즉, 메모리 컨트롤러(120)는 블록 어드레스가 최종 어드레스(예를 들면, Block adderss = 2047) 인지를 판단한다(S440). 검색된 메모리 블록이 예비 블록 범위(170)에서 최종 블록 어드레스인 경우, 배드 블록을 검색하기 위한 제반 절차는 종료된다. 그러나 최종 블록이 아닌 경우, 메모리 컨트롤러(120)는 블록 어드레스를 카운트-업 한다(S450). 그리고 메모리 컨트롤러(120)는 카운트-업된 블록 어드레스에 대응하는 메모리 블록에 대하여 체크 데이터를 독출하기 위한 단계(S420)로 동작 절차를 이동한다.
반면에, 상술한 체크 데이터를 참조하여 판단하는 단계(S430)에서 독출된 체크 데이터가 배드 블록을 지시하는 경우에는 현재 검색중인 메모리 블록으로부터 이후의 메모리 블록들은 모두 배드 블록으로 지정한다(S460). 연속적으로 분포하는 배드 블록의 어드레스가 최종 어드레스로부터 역순으로 리맵핑됨에 따라, 최초 검색된 배드 블록의 블록 어드레스 이후로는 모두 배드 블록들로 할당된다. 따라서, 더 이상의 배드 블록을 찾기 위한 검색은 필요치 않다. 검색된 블록 어드레스 이후로부터 예비 블록 범위(170)의 최종 어드레스에 대응하는 메모리 블록들을 모두 배드 블록 테이블에 포함시키는 것으로 예비 블록 범위(170)에 대한 배드 블록의 검색은 종료된다(S470).
FIG. 7 is a flowchart schematically illustrating an operation for searching for a bad block of a flash memory device having a plurality of spare block ranges described in FIG. 6. Referring to FIG. 7, searching for a bad block includes two steps. That is, in order to search for the bad block, the memory controller 120 performs a search for the spare block range 160 (S300) and a search for the spare block range 170 (S400). More detailed embodiments will be described below in FIGS. 8A and 8B.
8A and 8B are flowcharts illustrating embodiments for the bad block search of FIG. 7. 8A shows an embodiment of searching all spare block ranges. 8B shows another embodiment of searching only a portion of the spare block range.
Referring to FIG. 8A, the memory controller 120 searches for the memory blocks corresponding to the spare block range 160 among all block addresses of the flash memory device 110 (S300) and corresponds to the spare block range 170. Searching for memory blocks to perform (S400), respectively. Detailed operations of step S300 are as follows.
When the search for the bad block is started, the memory controller 120 initializes the block address (for example, Block address = 1008) at which the first search is started in the spare block range 160 (that is, MB1008 to MB1023) to the start address. (S310). The memory controller 120 searches for a bad block starting from the start address of the spare block range 160 (eg, Block address = 1008). In general, each memory block of the flash memory device 110 stores check data indicating whether the block is a bad block or a normal block in a specific page and a specific column within the block. Therefore, the memory controller 120 reads check data stored at a specified address in the memory block (S320). The memory controller 120 determines whether the memory block being searched for is a bad block or a normal block with reference to the read check data (S330). If the check data indicates that the bad block, the memory controller 120 designates the block address of the found memory block as the bad block and adds the block address to the bad block table (S340). On the other hand, if the check data indicates that the bad block is not, the memory controller 120 will determine whether it is the last block of the spare block range 160 (ie, MB1008 to MB1023). When the determination referring to the check data is completed, the memory controller 120 determines whether the final block address (eg, Block address = 1023) is in the spare block range 160 (S350). If the retrieved memory block is the last block address in the spare block range 160, the bad block search ends. However, if it is not the last block, the memory controller 120 counts up the block address (S360). The memory controller 120 moves the operation procedure to step S320 for reading check data with respect to the memory block corresponding to the counted-up block address. When the search is completed up to the last block of the spare block range, step S300 ends.
Operation of step S400 following step S300 is as follows. The memory controller 120 initializes the block address (for example, Block address = 2032) at which the first search is started from the preliminary block range 170 (that is, MB2032 to MB2047) to the start address (S410). The memory controller 120 searches whether each of the memory blocks is a bad block, starting from the start address (eg, Block address = 2032) of the spare block range 170. The memory controller 120 reads check data stored at a specified address in the memory block and determines whether the block is a bad block or a normal block (S420). The memory controller 120 determines whether the memory block being searched for is a bad block or a normal block with reference to the read check data (S430). If the check data indicates that the bad block, the memory controller 120 designates the block address of the retrieved memory block as the bad block. That is, an address corresponding to the found valid block is added to the bad block table (S440). On the other hand, when the check data indicates that the bad block is not, the memory controller 120 does not include the corresponding block in the bad block table. When the determination referring to the check data is completed, the memory controller 120 determines whether the final block address (eg, Block address = 2047) is in the spare block range 170 (S450). If the retrieved memory block is the last block address in the spare block range 170, the bad block search ends. However, if it is not the last block, the memory controller 120 counts up the block address (S460). The memory controller 120 moves the operation procedure to step S420 for reading check data with respect to the memory block corresponding to the counted-up block address. When the search from the spare block range 170 to the last block address (eg, Block address = 2047) is completed, the memory controller 120 terminates all search operations for configuring the bad block table or the valid block table. .
In the above, operations for searching for a bad block for respective spare block ranges according to steps S300 and S400 have been described. In the embodiment described with reference to FIG. 8A, all spare block ranges must be searched. However, as long as the bad blocks are continuously distributed in a specific address range, the address information of the whole bad blocks may be obtained only by detecting the start address where the bad blocks are located. This embodiment will be described with the flowchart of FIG. 8B.
Referring to FIG. 8B, the memory controller 120 may detect all the bad blocks by searching only some of the memory blocks included in the spare block ranges 160 and 170. Step S300 for searching for bad blocks included in the spare block range 160 is as follows.
When the search for the bad block is started, the memory controller 120 initializes the block address at which the first search is started to the start address (eg, Block address = 1008) of the spare block range 160 (S310). The memory controller 120 searches whether it is a bad block or a normal block starting from the memory block corresponding to the start address (eg, Block address = 1008) of the spare block range 160. That is, check data of each memory block is read from a specific page and a specific column in the block (S320). The memory controller 120 determines whether the memory block being searched for is a bad block or a normal block with reference to the read check data (S330). If it is determined that the check data of the memory block under search is not the bad block, the memory controller 120 determines whether the memory block under search is the last block address in the spare block range 160. That is, the memory controller 120 determines whether the block address is a final address (for example, block adderss = 1023) (S340). If the retrieved memory block is the last block address in the spare block range 160, the procedure moves to the step for searching for the worship block range 170. However, if it is not the last block, the memory controller 120 counts up the block address (S350). The memory controller 120 moves the operation procedure to step S320 for reading check data with respect to the memory block corresponding to the counted-up block address.
On the other hand, when the check data read out in the step S330 of determining with reference to the above-described check data indicates the bad block, all subsequent memory blocks from the memory block currently being searched are designated as the bad block (S360). As the addresses of consecutively distributed bad blocks are remapped from the last address in reverse order, all of them are allocated as bad blocks after the block address of the first retrieved bad block. Thus, no search is needed to find more bad blocks. The search for the bad block for the spare block range 160 is terminated by including all the memory blocks corresponding to the last address of the spare block range 160 from the found block address in the bad block table (S370). Then, upon request for access from the host, the memory controller 120 may select the memory blocks with reference to the bad block table described above.
Subsequently, step S400 for searching for a bad block corresponding to the spare block range 170 is started. The memory controller 120 initializes the block address at which the initial search is started to the start address (for example, Block address = 2032) of the spare block range 170 (S410). The memory controller 120 searches whether it is a bad block or a normal block starting from the memory block corresponding to the start address (eg, Block address = 2032) of the spare block range 170. That is, check data of each memory block is read from a specific page and a specific column in the block (S420). The memory controller 120 determines whether the memory block being searched for is a bad block or a normal block with reference to the read check data (S430). If it is determined that the check data of the memory block under search is not the bad block, the memory controller 120 determines whether the memory block under search is the last block address in the spare block range 170. That is, the memory controller 120 determines whether the block address is a final address (for example, block adderss = 2047) (S440). If the retrieved memory block is the last block address in the spare block range 170, the overall procedure for searching for the bad block is terminated. However, if it is not the last block, the memory controller 120 counts up the block address (S450). The memory controller 120 moves the operation procedure to step S420 for reading check data with respect to the memory block corresponding to the counted-up block address.
On the other hand, when the check data read in the step S430 is determined by referring to the above-described check data indicates a bad block, all subsequent memory blocks from the currently searching memory block are designated as bad blocks (S460). As the addresses of consecutively distributed bad blocks are remapped from the last address in reverse order, all of them are allocated as bad blocks after the block address of the first retrieved bad block. Thus, no search is needed to find more bad blocks. The search for the bad block for the spare block range 170 is terminated by including all the memory blocks corresponding to the last address of the spare block range 170 after the retrieved block address in the bad block table (S470).

도 8b에서 설명된 배드 블록 검색 방법에 따르면, 지정된 예비 블록 범위의 일부만을 검색하는 것으로 플래시 메모리 장치(110)의 모든 배드 블록들의 검색이 가능하다. 따라서, 배드 블록들에 대한 어드레스 테이블의 구성이 고속으로 이루어질 수 있어 메모리 시스템의 신속한 부팅 또는 초기화가 가능하다.According to the bad block search method described in FIG. 8B, all the bad blocks of the flash memory device 110 may be searched by searching only a part of a designated spare block range. Therefore, the configuration of the address table for the bad blocks can be made at high speed, thereby enabling a quick booting or initialization of the memory system.

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

도 9는 본 발명에 따른 플래시 메모리 시스템을 장착하는 컴퓨팅 시스템(200)을 간략히 보여주는 블록도이다. 도 9를 참조하면, 모바일 기기나 데스크 톱 컴퓨터와 같은 컴퓨팅 시스템(200)에서 본 발명의 플래시 메모리 시스템(210)이 장착된다. 본 발명에 따른 컴퓨팅 시스템(200)은 메모리 컨트롤러(212) 및 플래시 메모리 장치(211)로 구성되는 플래시 메모리 시스템(210)과 각각 시스템 버스에 전기적으로 연결된 중앙처리장치(230), 램(240), 유저 인터페이스(250), 전원(220)을 포함한다. 플래시 메모리 시스템(210)은 앞서 언급된 도 2의 플래시 메모리 시스 템(100)과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(211)에는 유저 인터페이스(250)를 통해서 제공되거나 또는, 중앙처리장치(230)에 의해서 처리된 데이터가 메모리 컨트롤러(212)를 통해 저장된다. 여기서, 플래시 메모리 시스템(210)을 장착하는 호스트에 대응하는 중앙처리장치(230) 및 기타 구성들은 배드 블록의 리맵핑에 따라 신속하게 플래시 메모리 장치(211)에 액세스될 수 있다. 또는, 호스트의 제어에 따라, 상술한 도 5 및 도 7의 배드 블록 검색 동작이 이루어질 수 있다. 만일 플래시 메모리 시스템(210)이 반도체 디스크 장치(SSD)로 장착되는 겨우, 시스템(200)의 부팅 속도가 획기적으로 빨라질 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 시스템에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 9 is a simplified block diagram of a computing system 200 incorporating a flash memory system in accordance with the present invention. Referring to FIG. 9, a flash memory system 210 of the present invention is mounted in a computing system 200 such as a mobile device or a desktop computer. The computing system 200 according to the present invention includes a flash memory system 210 including a memory controller 212 and a flash memory device 211, a central processing unit 230 electrically connected to a system bus, and a RAM 240, respectively. , A user interface 250, and a power supply 220. The flash memory system 210 may be configured substantially the same as the flash memory system 100 of FIG. 2 mentioned above. The flash memory device 211 stores data provided through the user interface 250 or processed by the CPU 230 through the memory controller 212. Here, the CPU 230 and other components corresponding to the host on which the flash memory system 210 is mounted may be quickly accessed to the flash memory device 211 according to the remapping of the bad block. Alternatively, the bad block search operation of FIGS. 5 and 7 described above may be performed under the control of the host. If the flash memory system 210 is mounted as a semiconductor disk device (SSD), the booting speed of the system 200 will be significantly faster. Although not shown in the drawings, it is apparent to those skilled in the art that an application chipset, a camera image processor, or the like may be further provided in a system according to the present invention.

이상의 본 발명의 플래시 메모리 장치 및 메모리 카드 시스템에 따르면, 일부 블록 어드레스 범위만을 선택적으로 검색하는 것으로도 배드 블록에 대한 어드레스를 획득 또는 제공할 수 있다. 따라서, 플래시 메모리 장치 및 시스템의 퍼포먼스를 향상시킬 수 있다.According to the flash memory device and the memory card system of the present invention, an address for the bad block can be obtained or provided by selectively searching only a partial block address range. Therefore, the performance of the flash memory device and the system can be improved.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not used to limit the scope of the present invention as defined in the meaning or claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

이상에서 설명된 본 발명에 의하면, 플래시 메모리 장치의 배드 블록에 대한 정보를 고속으로 검색할 수 있는 플래시 메모리 시스템 및 컴퓨팅 시스템을 제공할 수 있다. According to the present invention described above, it is possible to provide a flash memory system and a computing system capable of quickly searching for information on a bad block of a flash memory device.

Claims (20)

제 1 어드레스 구간 및 제 2 어드레스 구간에 대응하는 복수의 메모리 블록들을 포함하며, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환하도록 설정되는 플래시 메모리 장치; 그리고A flash memory device including a plurality of memory blocks corresponding to a first address section and a second address section, and configured to exchange a block address of a bad block belonging to the first address section with a block address of the second address section; And 배드 블록 검색 동작시, 상기 제 2 어드레스 구간에 대응하는 메모리 블록들을 검색하도록 그리고 검색 결과를 배드 블록 정보로 출력하도록 상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템.And a memory controller configured to control the flash memory device to search memory blocks corresponding to the second address period and output search results as bad block information during a bad block search operation. 제 1 항에 있어서,The method of claim 1, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스는, 상기 제 2 어드레스 구간의 정상 블록들 중 최종 블록 어드레스와 우선적으로 교환되는 것을 특징으로 하는 메모리 시스템. The block address of the bad block belonging to the first address period is preferentially exchanged with the last block address among the normal blocks of the second address period. 제 2 항에 있어서,The method of claim 2, 상기 메모리 컨트롤러는 상기 플래시 메모리 장치의 초기화 동작시 상기 제 2 어드레스 구간에 대응하는 모든 메모리 블록들을 검색하는 메모리 시스템. The memory controller searches for all memory blocks corresponding to the second address section in an initialization operation of the flash memory device. 제 2 항에 있어서,The method of claim 2, 상기 메모리 컨트롤러는 상기 제 2 어드레스 구간에 대응하는 메모리 블록들을 순차적으로 검색하되, 최초 배드 블록이 검색될 때까지 상기 배드 블록 검색 동작을 수행하는 메모리 시스템.The memory controller sequentially searches memory blocks corresponding to the second address interval, and performs the bad block search operation until the first bad block is searched. 제 4 항에 있어서,The method of claim 4, wherein 상기 메모리 컨트롤러는 상기 최초 배드 블록으로 검색된 메모리 블록의 블록 어드레스 내지 상기 최종 블록 어드레스에 대응하는 메모리 블록들을 배드 블록으로 인식하는 메모리 시스템.The memory controller recognizes the memory blocks corresponding to the block address of the memory block found as the first bad block or the last block address as a bad block. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.Claim 6 was abandoned when the registration fee was paid. 제 1 항에 있어서,The method of claim 1, 상기 제 2 어드레스 구간에는, 각각 연속되는 블록 어드레스 구간을 갖는 복수의 예비 어드레스 구간들이 포함되는 메모리 시스템.The second address period includes a plurality of preliminary address periods each having a consecutive block address period. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.Claim 7 was abandoned upon payment of a set-up fee. 제 6 항에 있어서,The method of claim 6, 상기 복수의 예비 어드레스 구간들 각각은 배드 블록들의 블록 어드레스를 포함하는 메모리 시스템.Each of the plurality of spare address periods includes a block address of bad blocks. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.Claim 8 was abandoned when the registration fee was paid. 제 7 항에 있어서,The method of claim 7, wherein 상기 메모리 컨트롤러는 상기 배드 블록 검색 동작시 상기 복수의 예비 어드레스 구간들에 대응하는 메모리 블록들을 검색하는 메모리 시스템.The memory controller searches for memory blocks corresponding to the plurality of preliminary address periods during the bad block search operation. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.Claim 9 was abandoned upon payment of a set-up fee. 제 8 항에 있어서,The method of claim 8, 상기 메모리 컨트롤러는 상기 복수의 예비 어드레스 구간들 각각에 대응하는 메모리 블록들을 검색하되, 상기 복수의 예비 어드레스 구간들 각각에서 최초 배드 블록이 검색될 때까지 상기 배드 블록 검색 동작을 수행하는 메모리 시스템.The memory controller searches for memory blocks corresponding to each of the plurality of preliminary address periods, and performs the bad block search operation until an initial bad block is found in each of the plurality of preliminary address periods. 플래시 메모리 시스템의 배드 블록 관리 방법에 있어서:In the bad block management method of a flash memory system: 제 1 어드레스 구간과 제 2 어드레스 구간에 대응하는 복수의 메모리 블록들을 포함하며, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환하도록 설정되는 플래시 메모리 장치를 제공하는 단계; 그리고The flash memory device may include a plurality of memory blocks corresponding to a first address section and a second address section, and configured to exchange a block address of a bad block belonging to the first address section with a block address of the second address section. Providing; And 상기 제 2 어드레스 구간에 속하는 메모리 블록들에 대한 배드 블록 검색을 수행하는 단계를 포함하는 배드 블록 관리 방법.And performing a bad block search for memory blocks belonging to the second address period. 제 10 항에 있어서, 11. The method of claim 10, 상기 플래시 메모리 장치를 제공하는 단계에서, 상기 배드 블록의 블록 어드레스는 상기 제 2 어드레스 구간의 정상 블록들 중 최종 블록 어드레스와 우선적으로 교환되는 것을 특징으로 하는 배드 블록 관리 방법. In the providing of the flash memory device, the block address of the bad block is preferentially exchanged with the last block address of the normal blocks of the second address interval. 제 11 항에 있어서, The method of claim 11, 상기 배드 블록 검색을 수행하는 단계는,Performing the bad block search, (a) 상기 제 2 어드레스 구간에 대응하는 메모리 블록들을 선택하기 위한 블록 어드레스를 설정하되, 시작 어드레스를 상기 제 2 어드레스 구간의 최초 어드레스로 초기화하는 단계;(a) setting a block address for selecting memory blocks corresponding to the second address period, wherein initializing a start address to an initial address of the second address period; (b) 상기 설정된 블록 어드레스에 대응하는 메모리 블록으로부터 배드 블록 여부를 지시하는 배드 블록 정보를 독출하고, 독출된 상기 배드 블록 정보를 참조하여 상기 설정된 블록 어드레스에 대응하는 메모리 블록이 배드 블록인지를 판단하는 단계; 및(b) reading bad block information indicating whether the block is bad from the memory block corresponding to the set block address, and determining whether the memory block corresponding to the set block address is a bad block by referring to the read bad block information; Making; And (c) 독출된 상기 배드 블록 정보가 정상 블록을 지시하는 경우, 상기 설정된 블록 어드레스를 유효 블록 테이블에 추가하는 단계를 포함하는 배드 블록 관리 방법.(c) if the read bad block information indicates a normal block, adding the set block address to a valid block table. 제 12 항에 있어서,13. The method of claim 12, 상기 (c) 단계에서, 독출된 상기 배드 블록 정보가 배드 블록임을 지시하는 경우, 상기 설정된 블록 어드레스는 배드 블록 테이블에 추가되는 것을 특징으로 하는 배드 블록 관리 방법. In step (c), when the read bad block information indicates that the bad block, the set block address is added to the bad block table, characterized in that the bad block table. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.Claim 14 was abandoned when the registration fee was paid. 제 12 항에 있어서,13. The method of claim 12, 상기 (c) 단계 이후, 상기 설정된 블록 어드레스가 상기 제 2 어드레스 구간의 최종 블록에 대응하는지를 판단하는 (d) 단계를 더 포함하는 배드 블록 관리 방법.And (d) after the step (c), determining whether the set block address corresponds to a last block of the second address period. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.Claim 15 was abandoned upon payment of a registration fee. 제 14 항에 있어서,The method of claim 14, 상기 (d) 단계에서, In step (d), 상기 설정된 블록 어드레스가 상기 제 2 어드레스 구간의 최종 블록이 아닌 경우, 상기 설정된 블록 어드레스에 연속되는 후속 메모리 블록을 선택하도록 상기 설정된 블록 어드레스를 카운트-업하고 상기 (b) 단계로 이동하는 (e) 단계를 더 포함하는 배드 블록 관리 방법. If the set block address is not the last block of the second address interval, counting up the set block address to select a subsequent memory block subsequent to the set block address and moving to step (b) (e) The bad block management method further comprising a step. 제 12 항에 있어서,13. The method of claim 12, 상기 (c) 단계에서 상기 배드 블록 정보가 배드 블록임을 지시하는 경우, 상기 배드 블록 정보가 검색된 메모리 블록의 블록 어드레스 내지 상기 최종 블록 어드레스를 배드 블록 테이블에 추가하는 배드 블록 관리 방법.And in step (c), if the bad block information indicates that the bad block is a bad block, adding the block address or the last block address of the memory block in which the bad block information is found to the bad block table. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.Claim 17 has been abandoned due to the setting registration fee. 제 12 항에 있어서, 13. The method of claim 12, 상기 제 2 어드레스 구간은 각각 연속되는 블록 어드레스 구간을 갖는 복수의 예비 어드레스 구간들을 포함하는 배드 블록 관리 방법.And the second address section includes a plurality of preliminary address sections each having a contiguous block address section. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.Claim 18 was abandoned upon payment of a set-up fee. 제 17 항에 있어서,The method of claim 17, 상기 복수의 예비 어드레스 구간들 각각은 배드 블록들의 블록 어드레스를 포함하는 배드 블록 관리 방법.Each of the plurality of spare address periods includes a block address of bad blocks. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.Claim 19 was abandoned upon payment of a registration fee. 제 18 항에 있어서,The method of claim 18, 상기 복수의 예비 어드레스 구간들 각각에 대해서 상기 (a) 단계 내지 상기 (c) 단계에 따른 동작을 수행하는 배드 블록 관리 방법.And performing operations according to steps (a) to (c) for each of the plurality of preliminary address periods. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.Claim 20 was abandoned upon payment of a registration fee. 메모리 카드; 및Memory card; And 상기 메모리 카드와 데이터를 교환하기 위한 컴퓨팅 시스템을 포함하되, 상기 메모리 카드는 청구항 1에 기재된 메모리 시스템인 것을 특징으로 하는 정보 기기.And a computing system for exchanging data with said memory card, said memory card being the memory system of claim 1.
KR1020070048123A 2007-05-17 2007-05-17 Flash memory system scanning bad block fast and bad bolck managing method thereof KR101091844B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070048123A KR101091844B1 (en) 2007-05-17 2007-05-17 Flash memory system scanning bad block fast and bad bolck managing method thereof
US12/122,369 US7916540B2 (en) 2007-05-17 2008-05-16 Non-volatile memory devices and systems including bad blocks address re-mapped and methods of operating the same
JP2008131248A JP5289821B2 (en) 2007-05-17 2008-05-19 Nonvolatile memory device and system including remapped bad block address, and method of operating the same
TW097118364A TWI490882B (en) 2007-05-17 2008-05-19 Non-volatile memory devices and systems including bad blocks address re-mapped and methods of operating the same
CN200810171440.8A CN101369464B (en) 2007-05-17 2008-05-19 Nonvolatile memory device and system, and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070048123A KR101091844B1 (en) 2007-05-17 2007-05-17 Flash memory system scanning bad block fast and bad bolck managing method thereof

Publications (2)

Publication Number Publication Date
KR20080101951A KR20080101951A (en) 2008-11-24
KR101091844B1 true KR101091844B1 (en) 2011-12-12

Family

ID=40287938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070048123A KR101091844B1 (en) 2007-05-17 2007-05-17 Flash memory system scanning bad block fast and bad bolck managing method thereof

Country Status (2)

Country Link
KR (1) KR101091844B1 (en)
CN (1) CN101369464B (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859604B (en) * 2009-04-10 2012-10-24 国民技术股份有限公司 Utilization method of flash memory bad block
US9324440B2 (en) 2010-02-09 2016-04-26 Samsung Electronics Co., Ltd. Nonvolatile memory devices, operating methods thereof and memory systems including the same
KR101691092B1 (en) 2010-08-26 2016-12-30 삼성전자주식회사 Nonvolatile memory device, operating method thereof and memory system including the same
KR101691088B1 (en) 2010-02-17 2016-12-29 삼성전자주식회사 Nonvolatile memory device, operating method thereof and memory system including the same
KR101658479B1 (en) 2010-02-09 2016-09-21 삼성전자주식회사 Nonvolatile memory device, operating method thereof and memory system including the same
US9378831B2 (en) 2010-02-09 2016-06-28 Samsung Electronics Co., Ltd. Nonvolatile memory devices, operating methods thereof and memory systems including the same
KR101710089B1 (en) * 2010-08-26 2017-02-24 삼성전자주식회사 Nonvolatile memory device, operating method thereof and memory system including the same
KR102025341B1 (en) 2012-12-04 2019-09-25 삼성전자 주식회사 Memory controller, Memory system including the memory controller and Method of operating the memory controller
KR102015053B1 (en) * 2013-02-20 2019-08-27 삼성전자주식회사 Nonvolatile memory device and data processing method thereof
KR102242022B1 (en) 2013-09-16 2021-04-21 삼성전자주식회사 Nonvolatile memory device and program method using thereof
KR102620562B1 (en) * 2016-08-04 2024-01-03 삼성전자주식회사 Nonvolatile memory device
US11017838B2 (en) 2016-08-04 2021-05-25 Samsung Electronics Co., Ltd. Nonvolatile memory devices
KR102395434B1 (en) * 2017-03-20 2022-05-09 삼성전자주식회사 Nonvolatile memory device and memory system including the same
KR102299682B1 (en) * 2017-09-13 2021-09-09 삼성전자주식회사 Operation method of memory contollrer, storage device including the same, and operation method of storage device
KR102336661B1 (en) * 2017-09-25 2021-12-07 삼성전자 주식회사 Non-volatile memory device and sensing method thereof
CN107945826B (en) * 2017-11-06 2020-06-16 珠海格力电器股份有限公司 SRAM decoding circuit and method
KR20190073125A (en) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 Memory system and operating method thereof
CN113704142B (en) * 2021-09-02 2022-06-14 海飞科(南京)信息技术有限公司 On-chip storage address remapping circuit
TWI783842B (en) * 2021-12-29 2022-11-11 瑞昱半導體股份有限公司 Method for scanning bad block of memory and circuit system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621690A (en) * 1995-04-28 1997-04-15 Intel Corporation Nonvolatile memory blocking architecture and redundancy
KR100205006B1 (en) * 1996-10-08 1999-06-15 윤종용 Semiconductor memory device having an automatic falut block mapping function
JP4534336B2 (en) * 2000-10-13 2010-09-01 ソニー株式会社 Data management method in memory device
JP2003085993A (en) * 2001-09-07 2003-03-20 Toshiba Corp Nonvolatile semiconductor memory, and its defect relieving method
EP1490764A2 (en) * 2002-04-04 2004-12-29 Infineon Technologies AG Improved architecture with shared memory
KR100608592B1 (en) * 2004-01-27 2006-08-03 삼성전자주식회사 Data managing device and method thereof

Also Published As

Publication number Publication date
KR20080101951A (en) 2008-11-24
CN101369464A (en) 2009-02-18
CN101369464B (en) 2014-05-07

Similar Documents

Publication Publication Date Title
KR101091844B1 (en) Flash memory system scanning bad block fast and bad bolck managing method thereof
US7797481B2 (en) Method and apparatus for flash memory wear-leveling using logical groups
CN109901790B (en) Memory system and control method
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US7603593B2 (en) Method for managing bad memory blocks in a nonvolatile-memory device, and nonvolatile-memory device implementing the management method
US7633799B2 (en) Method combining lower-endurance/performance and higher-endurance/performance information storage to support data processing
US20020178338A1 (en) Non-volatile data storage system and data storaging method
CN101617372A (en) Nonvolatile memory with dynamic multi-mode operation
KR20070046864A (en) Virtual-to-physical address translation in a flash file system
JP2008146253A (en) Storage device, computer system, and data processing method for storage device
KR100882740B1 (en) Method and storage device of mapping a nonvolatile memory based on map history
JP5093294B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2009217755A (en) Memory system
JP2004295865A (en) Automatic booting system and automatic booting method
US20080244203A1 (en) Apparatus combining lower-endurance/performance and higher-endurance/performance information storage to support data processing
KR20090021508A (en) Flash memory device storing data with multi-bit and single-bit form and program method thereof
KR100914646B1 (en) Management Scheme for Flash Memory with the Multi-Plane Architecture
US20130138910A1 (en) Information Processing Apparatus and Write Control Method
KR100923989B1 (en) Flash memory device remapping bad blocks and bad bolck remapping method thereof
JP4153535B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
WO2008121206A1 (en) Apparatus and method combining lower-endurance/performance and higher-endurance/performance information storage to support data processing
US20170109047A1 (en) Data storage device and operating method thereof
JP4888333B2 (en) Flash disk device
JP4641034B2 (en) Nonvolatile storage system

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
E801 Decision on dismissal of amendment
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20090615

Effective date: 20110223

S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee