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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
Abstract
본 발명에 따른 메모리 시스템은, 제 1 어드레스 구간과 제 2 어드레스 구간을 가지며, 상기 제 1 어드레스 구간에 속하는 배드 블록의 블록 어드레스를 상기 제 2 어드레스 구간의 블록 어드레스와 교환되도록 구성된 플래시 메모리 장치; 그리고 상기 제 2 어드레스 구간에 속하는 메모리 블록들의 배드 블록 정보를 검색하도록 그리고 상기 선택된 배드 블록 정보를 출력하도록 상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다. 상술한 구성들을 통하여 본 발명의 플래시 메모리 시스템은 고속으로 배드 블록 어드레스를 검색할 수 있다.
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.
Description
도 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
플래시 메모리 장치(110)의 블록 어드레스는 배드 블록들의 블록 어드레스를 특정 어드레스 범위에 연속되도록 리맵핑된다. 이러한 블록 어드레스의 리맵핑을 위해서는 배드 블록들의 블록 어드레스를 교환하기 위한 예비 어드레스 구간이 지정되어 있어야 한다. 예비 어드레스 구간을 이하에서는 예비 블록 범위라 칭하기로 한다. 예비 블록 범위에는 정상 블록들이 분포하는 블록 어드레스 구간이다. 예를 들면, 플래시 메모리 장치의 전체 블록들 중, 예비 블록 범위에 32개의 메모리 블록이 할당되는 경우에는 최종 블록 어드레스에 대응하는 연속되는 16개의 메모리 블록들에 대응하는 어드레스 범위일 수 있다. 또는, 각각 연속되는 블록 어드레스를 갖는 16개의 메모리 블록들이 포함되는 이격된 2개의 어드레스 구간이 예비 블록 범위로 선택될 수 있다. 즉, 블록 어드레스의 리맵핑시 플래시 메모리 장치(110)에 포함되는 배드 블록들은 예비 블록 범위에 포함되는 정상 메모리 블록과 블록 어드레스를 교환하게 된다. 이때, 예비 블록 범위에 대응하는 메모리 블록들의 블록 어드레스는 배드 블록의 블록 어드레스가 연속되도록 리맵핑된다. 따라서, 리맵핑 이후, 플래시 메모리 장치(110)에 포함되는 배드 블록들은 예비 블록 범위 내에서 연속적으로 분포하게 된다.The block address of the
메모리 컨트롤러(120)는 호스트(Host)의 읽기/쓰기 요청에 응답하여 플래시 메모리 장치(110)로부터 저장된 데이터를 독출 또는 기입하도록 플래시 메모리 장치(110)를 제어한다. 메모리 컨트롤러(120)는 호스트(모바일 기기 또는 컴퓨터 시스템)로부터 제공되는 어드레스를 플래시 메모리 장치(110)의 물리적인 어드레스로 맵핑하기 위한 어드레스 맵핑 테이블(Address mapping table)을 구성해야 한다. 이때, 메모리 컨트롤러(120)는 배드 블록으로의 기입 또는 독출 동작을 차단하기 위하여 배드 블록에 대한 물리적 어드레스 정보를 구비해야 한다. 따라서, 메모리 컨트롤러(120)는 파워-온(Power-on) 또는 초기화 동작시, 플래시 메모리 장치(110)에 포함되는 배드 블록의 위치를 검색한다. 본 발명의 메모리 컨트롤러(120)는 플래시 메모리 장치(110)에 포함되는 모든 메모리 블록들을 검색하지 않고, 상술한 예비 블록 범위에 대응하는 블록 어드레스 범위만을 검색하도록 설정된다. 따라서, 일부분의 메모리 블록들을 검색하는 것으로도 플래시 메모리 장치(110)에 포함되는 배드 블록들의 어드레스를 모두 파악할 수 있다.The
이상의 본 발명에 따른 메모리 시스템(100)은 특정 블록 어드레스 범위에 연속적으로 배드 블록들을 리맵핑하는 플래시 메모리 장치(110)와 예비 어드레스 구간에 대한 배드 블록의 검색을 수행하는 메모리 컨트롤러(120)로 구성된다. 따라서, 메모리 컨트롤러(120)는 배드 블록의 어드레스를 신속히 파악하여, 호스트 측으로 제공하거나 어드레스 맵핑 테이블의 구성에 사용할 수 있다.The
도 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
결론적으로, 플래시 메모리 장치(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
4 is a flowchart schematically illustrating an embodiment of a method for searching for a bad block of a
When the search for the bad block is started, the
The bad block search operation described above is performed on memory blocks corresponding to the designated
FIG. 5 is a flowchart schematically illustrating another embodiment of a method for searching for a bad block of a
When the search for the bad block is started, the
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
이상의 도 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
도 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
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
When the search for the bad block is started, the
Operation of step S400 following step S300 is as follows. The
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
When the search for the bad block is started, the
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
Subsequently, step S400 for searching for a bad block corresponding to the
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
도 8b에서 설명된 배드 블록 검색 방법에 따르면, 지정된 예비 블록 범위의 일부만을 검색하는 것으로 플래시 메모리 장치(110)의 모든 배드 블록들의 검색이 가능하다. 따라서, 배드 블록들에 대한 어드레스 테이블의 구성이 고속으로 이루어질 수 있어 메모리 시스템의 신속한 부팅 또는 초기화가 가능하다.According to the bad block search method described in FIG. 8B, all the bad blocks of the
삭제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
이상의 본 발명의 플래시 메모리 장치 및 메모리 카드 시스템에 따르면, 일부 블록 어드레스 범위만을 선택적으로 검색하는 것으로도 배드 블록에 대한 어드레스를 획득 또는 제공할 수 있다. 따라서, 플래시 메모리 장치 및 시스템의 퍼포먼스를 향상시킬 수 있다.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)
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)
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)
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 |
-
2007
- 2007-05-17 KR KR1020070048123A patent/KR101091844B1/en not_active IP Right Cessation
-
2008
- 2008-05-19 CN CN200810171440.8A patent/CN101369464B/en active Active
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 |