KR20110015288A - A method for recovering erase-information of a flash memory - Google Patents
A method for recovering erase-information of a flash memory Download PDFInfo
- Publication number
- KR20110015288A KR20110015288A KR1020090072928A KR20090072928A KR20110015288A KR 20110015288 A KR20110015288 A KR 20110015288A KR 1020090072928 A KR1020090072928 A KR 1020090072928A KR 20090072928 A KR20090072928 A KR 20090072928A KR 20110015288 A KR20110015288 A KR 20110015288A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- flash memory
- erase count
- recorded
- map
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
본 발명은 플래시 메모리에 관한 것으로 보다 상세하게는 플래시 메모리 내의 각 블록의 소거 횟수에 대한 정보를 복원하는 방법에 관한 것이다. The present invention relates to a flash memory, and more particularly, to a method for restoring information about the erase count of each block in a flash memory.
플래시 메모리(Flash Memory)는 데이터를 전기적으로 기록 또는 소거할 수 있는 비휘발성 메모리로써, 한정된 횟수 내에서 재기록이 가능하다. 플래시 메모리는 전원이 꺼져도 저장된 정보가 지워지지 않으며, 낮은 소비전력, 빠른 동작속도, 뛰어난 내구성 등의 장점으로 인해 디지털 카메라, PDA, MP3 player, 핸드폰 등의 휴대형 전자기기들의 저장장치로 폭넓게 이용되고 있으며, 최근에는 SSD(Solid State Disk)나 터보 메모리 등 다양한 분야에서 사용되고 있다.Flash memory is a nonvolatile memory capable of electrically writing or erasing data, and can be rewritten within a limited number of times. Flash memory does not erase stored information even when the power is turned off.It is widely used as a storage device for portable electronic devices such as digital cameras, PDAs, MP3 players and mobile phones due to its low power consumption, fast operation speed, and excellent durability. Recently, it is used in various fields such as solid state disk (SSD) and turbo memory.
플래시 메모리는 복수 개의 블록(block)으로 나누어지며, 하나의 블록은 다시 복수 개의 페이지(page)로 나누어진다. 하나의 페이지는 다시 섹터(sector)와 스페어(spare)로 구분된다. 섹터 영역에는 데이터가 저장되고, 스페어 영역에는 저장된 데이터에 관한 정보가 기록되며, 스페어 영역을 참조하면 해당 섹터 영역에 저장된 데이터에 관한 정보를 획득할 수 있다.The flash memory is divided into a plurality of blocks, and one block is divided into a plurality of pages. One page is again divided into sectors and spares. Data is stored in the sector area, information about the stored data is recorded in the spare area, and information about data stored in the corresponding sector area can be obtained by referring to the spare area.
플래시 메모리에서 쓰기 연산은 페이지 단위로 수행되며, 소거 연산은 블록 단위로 수행된다. 플래시 메모리에서는 덮어쓰기 연산을 수행할 수 없으며, 이미 사용된, 즉 데이터가 기록된 블록에 새로운 데이터를 덮어쓰기 위해서는 쓰기 전에 소거(erase before write) 연산을 수행해야 한다.In flash memory, write operations are performed in units of pages, and erase operations are performed in units of blocks. In flash memory, an overwrite operation cannot be performed. An erase before write operation must be performed to overwrite new data that has already been used, that is, a block in which data is written.
플래시 메모리를 소거할 수 있는 횟수는 SLC(Single Level Cell)의 경우 약 100,000번으로, MLC(Multi-Level Cell)의 경우 약 10,000번으로 제한된다. 특정 블록이 집중적으로 반복하여 사용되어 타 블록에 비해 빠르게 마모되는 것을 방지하기 위해, 플래시 메모리의 컨트롤러는 RAM(Random Access Memory) 상에 각 블록의 소거 횟수에 대한 정보를 저장하고 관리한다. 이러한 각 블록의 소거 횟수에 대한 정보는 RAM과 플래시 메모리 상에 동시에 저장된다. RAM에만 블록의 소거 횟수를 기록하는 경우, 블록 사용 전 전원이 꺼지는 경우에는 해당 블록의 사용 횟수에 대한 기록을 복원하는 것이 불가능하게 된다.The number of times a flash memory can be erased is limited to about 100,000 times in a single level cell (SLC) and about 10,000 times in a multi-level cell (MLC). In order to prevent a specific block from being used repeatedly and intensively, compared to other blocks, the controller of the flash memory stores and manages information on the erase count of each block on a random access memory (RAM). Information about the erase count of each block is simultaneously stored in RAM and flash memory. When the erase count of a block is recorded only in the RAM, when the power is turned off before the block is used, it is impossible to restore the record of the number of times the block is used.
따라서 각 블록의 소거 횟수, 사용여부 등에 대한 정보를 플래시 메모리 상에 함께 저장하고, 전원이 꺼질 경우 플래시 메모리에 저장되어 있는 정보를 이용하여 SRAM 상의 정보를 복원하게 된다.Therefore, information on the erase count and use of each block is stored together in the flash memory, and when the power is turned off, the information in the SRAM is restored using the information stored in the flash memory.
종래의 소거 횟수 기록 방법에 따르면, 플래시 메모리 내에서 블록 소거가 발생할 때마다 각 블록의 소거 횟수가 기록된 소거 횟수 테이블을 업데이트한다. RAM은 덮어쓰기가 가능하기 때문에 지정된 영역의 소거 횟수 테이블을 계속 갱신하면 되나, 플래시 메모리는 덮어쓰기가 불가능하기 때문에 변경된 내용의 소거 횟수 테이블을 기존의 소거 횟수 테이블이 기록된 영역 이외의 빈(free) 페이지에 기록하여야 한다. 즉, 새로운 페이지를 소모하게 된다.According to the conventional erase count writing method, whenever a block erase occurs in the flash memory, the erase count table in which the erase count of each block is recorded is updated. Since RAM can be overwritten, the erase count table of the designated area can be continuously updated.However, since the flash memory cannot be overwritten, the erase count table of the changed contents is empty. It should be recorded on the page. In other words, it consumes a new page.
플래시 메모리의 저장용량이 커질수록 소거 횟수 테이블이 차지하는 공간도 커지고, 블록 소거도 더욱 빈번하게 발생한다. 이에 따라 소거 횟수 테이블의 업데이트로 인한 페이지의 소모도 증가하고, 소거 횟수 테이블이 기록되는 블록들에 대한 소거도 더욱 자주 발생하게 되어 해당 블록들의 수명을 단축시키게 된다.As the storage capacity of the flash memory increases, the space occupied by the erase count table increases, and block erase occurs more frequently. As a result, page consumption is increased due to the update of the erase count table, and the erase of the blocks in which the erase count table is written occurs more frequently, thereby shortening the lifespan of the blocks.
본 발명의 목적은 플래시 메모리 내의 각 블록의 소거 정보를 효율적으로 기록하고, 저장장치의 전원이 공급되면 기록된 소거 정보를 빠르게 복원함으로써, 페이지의 낭비 및 접근 속도의 저하를 방지하고 소거 횟수가 기록되는 블록이 빨리 마모되는 것을 방지하기 위한 소거 횟수 기록 방법을 제공하는 것이다.An object of the present invention is to efficiently erase the erase information of each block in the flash memory and quickly restore the erased information when the storage device is powered on, thereby preventing waste of pages and deterioration of the access speed and writing the erase count. It is to provide an erase count recording method for preventing a block from being quickly worn out.
본 발명의 다른 목적은 플래시 메모리의 블록 수명 관리를 위한 블록의 소거 횟수 기록에 대한 방법과 빈번히 발생하게 될 블록 소거 정보의 갱신에 의해 데이터 입출력의 속도에 영향을 받지 않는 방법을 제공하는 것이다.Another object of the present invention is to provide a method for recording the erase count of a block for managing the block life of a flash memory and a method that is not affected by the speed of data input and output by updating block erase information which will occur frequently.
본 발명의 일 측면에 따르면, 플래시 메모리(Flash memory)와 컨트롤러를 포함하는 저장장치의 상기 컨트롤러가 상기 플래시 메모리 내의 각 블록에 대한 소거 정보를 복원하는 방법에 있어서, 상기 플래시 메모리에 기록된 MAP 변경 정보를 이용하여 상기 각 블록의 소거 횟수를 산출하는 것을 특징으로 하는 소거 정보 복원 방법이 제공된다.According to an aspect of the present invention, a method of restoring erase information for each block in the flash memory by the controller of a storage device including a flash memory and a controller, wherein the MAP is changed in the flash memory. An erase information restoration method is provided, wherein the erase count of each block is calculated using the information.
여기서, 상기 MAP 변경 정보는 소거된 블록들의 물리 블록 번호이며, 상기 MAP 변경 정보는 MAP 테이블이 기록되는 블록의 스페어 영역에 기록된다.Here, the MAP change information is a physical block number of erased blocks, and the MAP change information is recorded in a spare area of a block in which a MAP table is recorded.
여기서, 마지막 소거 횟수 테이블 내 각 블록의 소거 횟수를 베이스 값으로 설정하는 단계; 및 상기 각 블록에 대한 베이스 값을 상기 각 블록에 대한 상기 물리 블록 번호가 상기 스페어 영역에 기록된 횟수만큼 증가시키는 단계를 포함한다.Here, setting the erase count of each block in the last erase count table as a base value; And increasing the base value for each block by the number of times the physical block number for each block is recorded in the spare area.
본 발명의 다른 측면에 따르면, MAP 변경 정보가 기록되는 플래시 메모리; 상기 MAP 변경 정보를 이용하여 각 블록의 소거 횟수를 산출하는 컨트롤러; 및 상기 소거 횟수가 기록된 소거 횟수 테이블이 저장되는 RAM(Random Access Memory)을 포함하는 것을 특징으로 하는 플래시 메모리 저장장치가 제공된다.According to another aspect of the invention, a flash memory in which MAP change information is recorded; A controller configured to calculate an erase count of each block by using the MAP change information; And a random access memory (RAM) in which an erase count table in which the erase count is recorded is stored.
여기서, 상기 MAP 변경 정보는 소거된 블록들의 물리 블록 번호이며, 상기 MAP 변경 정보는 플래시 메모리의 MAP 테이블이 기록되는 블록의 스페어 영역에 기록된다.Here, the MAP change information is a physical block number of erased blocks, and the MAP change information is recorded in a spare area of a block in which a MAP table of a flash memory is recorded.
또한, 상기 컨트롤러는, 상기 플래시 메모리 내 마지막 소거 횟수 테이블에 포함된 소거 횟수를 상기 각 블록의 베이스 값으로 설정하고, 상기 스페어 영역에 상기 각 블록에 대한 상기 물리 블록 번호가 기록된 횟수만큼 상기 베이스 값을 증가시킨다. The controller may set the erase counts included in the last erase count table in the flash memory as a base value of each block, and the base counts the number of times the physical block number of each block is written in the spare area. Increase the value.
본 발명에 따른 소거 정보 복원 방법은 빈번한 기록으로 인해 페이지가 낭비되는 것과 소거 횟수가 기록되는 블록이 빨리 마모되는 것을 방지하는 효과가 있다.The erase information restoration method according to the present invention has an effect of preventing a page from being wasted due to frequent writing and a block from which the erase count is recorded to be quickly worn out.
또한 본 발명에 따른 소거 정보 복원 방법은 소거 횟수 기록으로 인한 기록 및 소거 연산을 최소화하여 사용자의 단말기에서 플래시 메모리에 접근하는 속도를 향상시키는 효과가 있다.In addition, the erase information restoration method according to the present invention has an effect of improving the speed of access to the flash memory from the user terminal by minimizing the write and erase operations due to the erase count recording.
또한 본 발명의 따른 소거 정보 복원 방법은 플래시 메모리의 블록 수명 관리를 위한 블록의 소거 횟수 기록에 대한 방법과 빈번히 발생하게 될 블록 소거 정보의 갱신에 의해 데이터 입출력의 속도에 영향을 받지 않는다는 효과가 있다.In addition, the erase information restoration method according to the present invention has an effect that the speed of data input / output is not affected by the method of writing the erase count of the block for managing the block life of the flash memory and the update of the block erase information which will occur frequently. .
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 플래시 메모리 저장장치의 구성을 나타내는 도면이다. 1 is a view showing the configuration of a flash memory storage device according to the present invention.
도 1을 참조하면, 플래시 메모리 저장장치(100)는 인터페이스(110), 컨트롤러(120) 및 플래시 메모리(130)를 포함한다. 여기서, 플래시 메모리 저장장치(100)는 SSD나 USB 메모리와 같은 데이터 저장을 위한 독립된 디바이스뿐만 아니라 디지털 카메라, MP3 player 등과 같은 휴대형 장치들에 내장되어 구현되는 경우를 모두 포함한다.Referring to FIG. 1, the flash
플래시 메모리 저장장치(100)는 인터페이스(110)를 통해 PC, 노트북 등의 호 스트(host)와 전기적으로 연결되며, 컨트롤러(120)는 인터페이스(110) 및 플래시 메모리(130)를 구동하여 데이터를 읽고(read), 쓰고(write), 소거(erase)한다. 쓰기 연산 시, 컨트롤러(120)는 인터페이스를 통해 입력되는 데이터가 저장되는 위치를 결정하고, 결정된 위치에 데이터를 기록한다.The flash
호스트로부터 입력되는 데이터 블록이 기록될 플래시 메모리(130) 내의 물리 블록을 할당하기 위해, 컨트롤러(120)는 논리 블록 번호(LBN; Logical Block Number)와 물리 블록 번호(PBN; Physical Block Number)에 대한 정보가 기록된 맵핑 테이블(이하, 'MAP 테이블'이라 함)을 참조한다. 일반적으로 논리 블록 번호는 데이터 블록마다 호스트에 의해 할당되는 번호이고, 물리 블록 번호는 플래시 메모리(430) 내의 각 물리 블록들에 순차적으로 할당된 번호이다.In order to allocate a physical block in the
MAP 테이블은 빠른 접근을 위해서 컨트롤러(420) 내의 RAM(Random Access Memory)(440)에서 운용한다. RAM(440)은 수시로 덮어쓰기가 가능하며 주로 속도가 빠른 SRAM(Static RAM)을 사용한다. RAM(440)은 휘발성 메모리로써 전원이 공급되지 않으면 메모리 내에 저장된 모든 데이터가 지워지기 때문에, 전원이 꺼질 경우 MAP 테이블을 RAM(440) 상에 복원하기 위해 컨트롤러(420)는 MAP 테이블을 RAM(440)과 플래시 메모리(430) 상에 동시에 저장한다. MAP 테이블은 플래시 메모리(430) 내의 하나 또는 복수 개의 블록들에 저장되는데, MAP 테이블이 저장되는 블록을 MAP 블록이라 한다.The MAP table operates in a random access memory (RAM) 440 in the controller 420 for quick access. The RAM 440 can be overwritten at any time and mainly uses a fast static RAM (SRAM). Since the RAM 440 is volatile memory and all the data stored in the memory are erased when the power is not supplied, the controller 420 restores the MAP table to the RAM 440 to restore the MAP table to the RAM 440 when the power is turned off. ) And flash memory 430 at the same time. The MAP table is stored in one or a plurality of blocks in the flash memory 430. The block in which the MAP table is stored is called a MAP block.
도 2는 본 발명에 따라 플래시 메모리 내의 MAP 블록에 기록된 MAP 테이블과 MAP 변경 정보를 나타낸 도면이다.2 is a diagram illustrating a MAP table and MAP change information recorded in a MAP block in a flash memory according to the present invention.
본 발명에 따르면, 컨트롤러(120)는 MAP 블록에 MAP 테이블과 MAP 변경 정보를 함께 기록하는 것이다. 여기서 MAP 변경 정보는 MAP 테이블에서 변경 사항이 발생한 블록에 대한 정보로써, 예를 들어 소거 연산이 발생한 블록의 물리 블록 번호일 수 있다.According to the present invention, the
도 2를 참조하면, MAP 블록의 섹터 영역에 MAP 테이블이 기록되어 있으며, 스페어 영역에 MAP 변경 정보가 기록된다. MAP 테이블은 페이지 단위로 기록되므로 각 페이지가 하나의 MAP 테이블인 것이다. 하나의 페이지는 총 2048개의 영역으로 분할되며 분할된 각 영역은 2048개의 논리 블록과 각각 대응된다. 도 2에서는 논리 블록 번호 0번에서부터 2048번까지를 페이지의 오른쪽에서 왼쪽으로 순차적으로 대응시켰다. 그리고 분할된 각 영역에는 해당 영역의 논리 블록 번호에 대응되는 물리 블록 번호를 기록하였다. Referring to FIG. 2, a MAP table is recorded in a sector area of a MAP block, and MAP change information is recorded in a spare area. Since the MAP table is recorded in page units, each page is a single MAP table. One page is divided into a total of 2048 regions, and each divided region corresponds to 2048 logical blocks. In FIG. 2,
플래시 메모리(130) 내 임의의 블록에서 변경 사항이 발생하면 MAP 테이블이 업데이트되며, 업데이트된 MAP 테이블은 MAP 블록에 기록된다. 각 페이지에서 동그라미 그려진 부분은 변경 사항이 발생한 블록으로, 여기서는 블록이 재할당된 블록들을 나타낸다. 블록이 재할당 되었다는 것은 하나의 논리 블록에 대응되는 물리 블록 번호를 다른 물리 블록 번호로 다시 할당하였다는 것으로 재할당 되기 전의 물리 블록 번호에 해당하는 블록은 소거되었다는 것을 의미한다.If a change occurs in any block in the
섹터 영역 오른쪽에는 섹터 영역의 각 페이지에 상응하는 각각의 스페어 영역이 존재한다. 스페어 영역에는 MAP 변경 정보를 기록한다. 도 2에서는 스페어 영 역에 소거된 블록의 물리 블록 번호가 기록된다. 논리 블록에 물리 블록이 재할당 되었다는 것은 기존의 물리 블록이 소거되었다는 것이므로, 스페어 영역에는 재할당 되기 전의 물리 블록 번호가 기록된다. 예를 들어 <페이지 0>과 <페이지 1>을 비교하면, <페이지 0>에서 논리 블록 번호 2번에 물리 블록 번호 32번이 할당되었으며, <페이지 1>에서 물리 블록 번호 112번이 재할당되었다. 이는 물리 블록 번호 32번의 재할당되기 전 물리 블록이 소거된다는 것을 의미하므로, <페이지 1>의 스페어 영역에 소거된 물리 블록 번호 32를 기록한다.To the right of the sector area there is a respective spare area corresponding to each page of the sector area. MAP change information is recorded in the spare area. In FIG. 2, the physical block number of the erased block is recorded in the spare area. The fact that physical blocks are reassigned to logical blocks means that existing physical blocks have been erased, so that the physical block number before reallocation is recorded in the spare area. For example, comparing <
여기서 하나의 MAP 블록의 스페어 영역에 각 물리 블록 번호가 기록된 횟수는 해당 물리 블록 번호에 상응하는 물리 블록이 소거된 횟수를 나타낸다. 따라서 스페어 영역에 기록된 각 물리 블록 번호의 개수를 누적하면, 플래시 메모리(130) 내의 각 블록이 소거된 횟수가 산출될 수 있다.Here, the number of times each physical block number is recorded in the spare area of one MAP block represents the number of times the physical block corresponding to the corresponding physical block number has been erased. Therefore, when the number of physical block numbers recorded in the spare area is accumulated, the number of times each block in the
이러한 소거 횟수의 누적 산출은 일정 주기마다 반복적으로 수행되며, 특히 MAP 블록이 소거될 경우, 예를 들어 MAP 테이블의 기록으로 인해 해당 MAP 블록 내의 모든 페이지가 소모되어 MAP 블록으로 새로운 블록을 할당해야 되는 경우, MAP 블록 내의 스페어 영역에 각 물리 블록 번호가 기록된 횟수를 누적 산출하여 각 물리 블록의 소거 횟수가 기록된 소거 횟수 테이블을 생성할 수 있다. 이렇게 생성된 소거 횟수 테이블은 플래시 메모리 상에 기록되는데, 소거 횟수 테이블이 기록되는 블록을 소거 정보 블록이라 한다.The cumulative calculation of the erase count is repeatedly performed at regular intervals. In particular, when the MAP block is erased, all pages in the corresponding MAP block are consumed due to, for example, writing of the MAP table, and a new block must be allocated to the MAP block. In this case, the number of times each physical block number is recorded in the spare area in the MAP block is cumulatively calculated to generate an erase count table in which the number of erases of each physical block is recorded. The erase count table thus generated is written on the flash memory. The block in which the erase count table is written is called an erase information block.
본 발명에 따르면, 블록 소거가 발생할 때마다 소거 횟수 테이블을 기록해야 하는 종래 기술과는 달리, MAP 블록의 소거 시에만 소거 정보 블록에 소거 횟수 테 이블을 기록함으로써 소거 횟수 테이블을 기록함에 따른 페이지의 소모를 최소화할 수 있다.According to the present invention, unlike the prior art in which the erase count table must be written every time a block erase occurs, the erase count table is written to the erase information block only when the MAP block is erased. The consumption can be minimized.
일반적으로 플래시 메모리(130)에서 하나의 블록은 128개의 페이지를 포함한다. 본 발명에 따르면 플래시 메모리(130) 내에서 블록의 소거가 128번 발생할 때까지 소거 횟수 테이블을 기록하지 않아도 되며, 이에 따른 빈번하게 페이지가 소모되는 것을 방지할 수 있다.In general, one block in the
이는 소거 정보 블록에서 페이지의 소모를 줄일 수 있을 뿐만 아니라 소거 횟수 테이블의 기록이나 소거 정보 블록의 소거에 따른 플래시 메모리로의 접근 횟수도 줄일 수 있어, 플래시 메모리의 관리를 위해 소모되는 자원을 최소화할 수 있고 사용자의 작업에 보다 많은 자원을 투자함으로써 플래시 메모리의 성능 향상에 기여할 수 있다.This not only reduces the page consumption in the erase information block but also reduces the number of times of access to the flash memory according to the writing of the erase count table or the erase of the erase information block, thereby minimizing the resources consumed for managing the flash memory. By investing more resources in your work, you can contribute to the performance of flash memory.
도 3은 본 발명에 따라 MAP 블록에 기록된 MAP 변경 정보를 이용하여 소거 횟수 테이블을 복원하는 방법을 나타낸 순서도이다.3 is a flowchart illustrating a method of restoring an erase count table using MAP change information recorded in a MAP block according to the present invention.
상술한 바와 같이, 플래시 메모리(130)의 소거 횟수 테이블은 RAM(140) 상에서 운영하며, 플래시 메모리(130)에 기록된 소거 횟수 테이블은 RAM(140) 상에 소거 횟수 테이블을 복원하기 위해 이용된다. 본 발명에 따르면, 플래시 메모리 저장장치(100)에 전원이 공급될 경우 컨트롤러(120)는 플래시 메모리(130)의 소거 정보 블록에 저장된 소거 횟수 테이블과 MAP 블록의 스페어 영역에 기록된 MAP 변경 정보를 이용하여 RAM(140) 상에 소거 횟수 테이블을 간단하게 복원하는 것이 가능하 다.As described above, the erase count table of the
도 3을 참조하면, 단계 S310에서 컨트롤러(120)는 소거 정보 블록에서 마지막으로 기록된 소거 횟수 테이블(이하, '마지막 소거 횟수 테이블'이라 함)을 탐색한다. 여기서, 마지막 소거 횟수 테이블은 각 블록에 대한 최근의 소거 횟수를 포함한다. 마지막 소거 횟수 테이블에 포함된 각 블록의 소거 횟수를 소거 횟수 테이블을 복원하기 위한 베이스 값으로 설정하고, 단계 S320에서 컨트롤러(120)는 MAP 블록을 참조하여 소거 횟수 테이블의 복원을 시작한다. 우선, 소거 횟수 테이블을 복원하기 위해서 컨트롤러(120)는 마지막 소거 횟수 테이블에 포함된 각 블록의 소거 횟수에 마지막 소거 횟수 테이블이 생성된 이후에 발생한 각 블록의 소거 횟수를 누적해야 한다. 소거 횟수 테이블이 MAP 블록의 소거 시에만 생성되어 기록되는 경우, 소거 정보 블록에 기록된 마지막 소거 횟수 테이블은 현재의 MAP 블록이 할당되기 이전의 MAP 블록만을 참조하였기 때문에, 마지막 소거 횟수 테이블이 산출된 이후의 각 블록의 소거 횟수는 현재의 MAP 블록의 스페어 영역에 기록된 MAP 변경 정보를 참조하여 산출한다. 여기서는 컨트롤러(120)가 단계 S310에서 탐색된 마지막 소거 횟수 테이블을 RAM(140) 상에 소거 횟수 테이블의 베이스 값으로 저장하고, MAP 블록의 스페어 영역에 물리 블록 번호가 기록된 횟수만큼 해당 블록의 베이스 값을 증가시키는 방법으로 소거 횟수 테이블을 복원한다. 물론, 컨트롤러(120)가 소거 횟수 테이블을 최초로 생성하는 경우에는, 소거 정보 블록에 기록되어 있는 소거 횟수 테이블이 없으므로 단지 MAP 블록의 스페어 영역에 물리 블록 번호가 기록된 횟수만 산출하면 된다. 이 경우, RAM(140) 상의 소거 횟수 테이블에 서 각 블록의 베이스 값은 0으로 설정된다. 단계 S330에서는 컨트롤러(120)는 MAP 블록의 스페어 영역에 MAP 변경 정보가 존재하는지 여부를 확인한다. 만약 스페어 영역에 MAP 변경 정보가 존재하지 않으면, 바로 소거 횟수 테이블의 복원이 완료되었는지 확인한다. 만약 단계 S330에서 스페어 영역에 MAP 변경 정보가 존재할 경우, 단계 S340에서 컨트롤러(120)는 스페어 영역에 기록된 물리 블록 번호를 확인하고 RAM(140) 상의 소거 횟수 테이블에서 해당 물리 블록 번호의 소거 횟수를 1 증가시킨다. 그 다음 단계 S350에서 소거 횟수 테이블의 복원이 완료되었는지 확인한다. 여기서 소거 횟수 테이블의 복원이 완료되었다면 소거 횟수 테이블의 복원 작업을 종료한다. 소거 횟수 테이블의 복원이 완료되지 않았다면, 단계 S360에서 컨트롤러(120)는 다음 스페어 영역을 읽고, 단계 S330으로 돌아가 반복적인 작업을 수행한다.Referring to FIG. 3, in step S310, the
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that the invention may be varied and varied without departing from the scope of the invention.
도 1은 본 발명에 따른 플래시 메모리 저장장치의 구성을 나타내는 도면1 is a view showing the configuration of a flash memory storage device according to the present invention
도 2는 본 발명에 따라 플래시 메모리 내의 MAP 블록에 기록된 MAP 테이블과 MAP 변경 정보를 나타낸 도면2 is a diagram illustrating a MAP table and MAP change information recorded in a MAP block in a flash memory according to the present invention.
도 3은 본 발명에 따라 MAP 블록에 기록된 MAP 변경 정보를 이용하여 소거 횟수 테이블을 복원하는 방법을 나타낸 순서도3 is a flowchart illustrating a method of restoring an erase count table using MAP change information recorded in a MAP block according to the present invention.
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
100 : 플래시 메모리 저장장치100: flash memory storage device
120 : 컨트롤러120: controller
130 : 플래시 메모리130: flash memory
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090072928A KR20110015288A (en) | 2009-08-07 | 2009-08-07 | A method for recovering erase-information of a flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090072928A KR20110015288A (en) | 2009-08-07 | 2009-08-07 | A method for recovering erase-information of a flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110015288A true KR20110015288A (en) | 2011-02-15 |
Family
ID=43774137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090072928A KR20110015288A (en) | 2009-08-07 | 2009-08-07 | A method for recovering erase-information of a flash memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110015288A (en) |
-
2009
- 2009-08-07 KR KR1020090072928A patent/KR20110015288A/en active IP Right Grant
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8046526B2 (en) | Wear leveling method and controller using the same | |
KR101464338B1 (en) | Data storage device, memory system, and computing system using nonvolatile memory device | |
US8108589B2 (en) | Wear leveling method and controller using the same | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US7409490B2 (en) | Method of flash memory management | |
JP4787266B2 (en) | Scratch pad block | |
US8949507B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
KR100974954B1 (en) | Read-time Wear-Leveling Method in Storage System using Flash Memory Device | |
CN105718530B (en) | File storage system and file storage control method thereof | |
US9665481B2 (en) | Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit | |
US8484432B2 (en) | Memory system | |
US20090172255A1 (en) | Wear leveling method and controller using the same | |
KR20110060493A (en) | Managing an erase count in a memory device | |
TWI406128B (en) | Non-volatile memory apparatus and method for accessing a non-volatile memory apparatus | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US8156278B2 (en) | Non-volatile data storage system and method thereof | |
Hepisuthar | Comparative analysis study on SSD, HDD, and SSHD | |
JP5687649B2 (en) | Method for controlling semiconductor memory device | |
JP4235646B2 (en) | Memory controller and flash memory system | |
KR20110016320A (en) | A method for managing a flash memory with blocks divided into a plurality of groups | |
JP2012068765A (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
JP2011227802A (en) | Data recording device | |
JP4434171B2 (en) | Memory controller and flash memory system | |
JP4558054B2 (en) | Memory system | |
KR20110015288A (en) | A method for recovering erase-information of a flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
NORF | Unpaid initial registration fee |