KR20110015288A - A method for recovering erase-information of a flash memory - Google Patents

A method for recovering erase-information of a flash memory Download PDF

Info

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
Application number
KR1020090072928A
Other languages
Korean (ko)
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 KR1020090072928A priority Critical patent/KR20110015288A/en
Publication of KR20110015288A publication Critical patent/KR20110015288A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits 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

PURPOSE: A method for recovering erasure information of a flash memory is provided to prevent the deterioration of access speed by recovering the recorded erasure information when the power is supplied to a storage device. CONSTITUTION: The final erasure frequency table is seared(S310). The erasure frequency table is recovered by referring to the MAP block(S320). It is checked whether the MAP change information exists in the spare area of the MAP block(S330). A physical block number recorded in the spare area is checked. The recovery completion of the erasure frequency table is checked(S350).

Description

플래시 메모리의 소거 정보를 복원하는 방법{A method for recovering erase-information of a flash memory}A method for recovering erase-information of a flash memory

본 발명은 플래시 메모리에 관한 것으로 보다 상세하게는 플래시 메모리 내의 각 블록의 소거 횟수에 대한 정보를 복원하는 방법에 관한 것이다. 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 memory storage device 100 includes an interface 110, a controller 120, and a flash memory 130. Here, the flash memory storage device 100 includes both a case where the flash memory storage device 100 is embedded in portable devices such as a digital camera or an MP3 player as well as an independent device for data storage such as an SSD or a USB memory.

플래시 메모리 저장장치(100)는 인터페이스(110)를 통해 PC, 노트북 등의 호 스트(host)와 전기적으로 연결되며, 컨트롤러(120)는 인터페이스(110) 및 플래시 메모리(130)를 구동하여 데이터를 읽고(read), 쓰고(write), 소거(erase)한다. 쓰기 연산 시, 컨트롤러(120)는 인터페이스를 통해 입력되는 데이터가 저장되는 위치를 결정하고, 결정된 위치에 데이터를 기록한다.The flash memory storage device 100 is electrically connected to a host such as a PC or a notebook through the interface 110, and the controller 120 drives the interface 110 and the flash memory 130 to store data. Read, write, erase During the write operation, the controller 120 determines a location where data input through the interface is stored and writes the data at the determined location.

호스트로부터 입력되는 데이터 블록이 기록될 플래시 메모리(130) 내의 물리 블록을 할당하기 위해, 컨트롤러(120)는 논리 블록 번호(LBN; Logical Block Number)와 물리 블록 번호(PBN; Physical Block Number)에 대한 정보가 기록된 맵핑 테이블(이하, 'MAP 테이블'이라 함)을 참조한다. 일반적으로 논리 블록 번호는 데이터 블록마다 호스트에 의해 할당되는 번호이고, 물리 블록 번호는 플래시 메모리(430) 내의 각 물리 블록들에 순차적으로 할당된 번호이다.In order to allocate a physical block in the flash memory 130 to which a data block input from the host is to be written, the controller 120 may determine a logical block number (LBN) and a physical block number (PBN). Refer to the mapping table (hereinafter, referred to as 'MAP table') in which information is recorded. In general, the logical block number is a number assigned by the host for each data block, and the physical block number is a number sequentially assigned to each physical block in the flash memory 430.

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 controller 120 records the MAP table and the MAP change information together in the MAP block. The MAP change information is information on a block in which a change occurs in the MAP table. For example, the MAP change information may be a physical block number of a block in which an erase operation occurs.

도 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, logical block numbers 0 to 2048 are sequentially mapped from right to left of the page. In each divided area, a physical block number corresponding to the logical block number of the corresponding area is recorded.

플래시 메모리(130) 내 임의의 블록에서 변경 사항이 발생하면 MAP 테이블이 업데이트되며, 업데이트된 MAP 테이블은 MAP 블록에 기록된다. 각 페이지에서 동그라미 그려진 부분은 변경 사항이 발생한 블록으로, 여기서는 블록이 재할당된 블록들을 나타낸다. 블록이 재할당 되었다는 것은 하나의 논리 블록에 대응되는 물리 블록 번호를 다른 물리 블록 번호로 다시 할당하였다는 것으로 재할당 되기 전의 물리 블록 번호에 해당하는 블록은 소거되었다는 것을 의미한다.If a change occurs in any block in the flash memory 130, the MAP table is updated, and the updated MAP table is written to the MAP block. The circled portion of each page is the block where the change occurred, in this case, the blocks to which the block has been reallocated. The reassignment of a block means that the physical block number corresponding to one logical block is reassigned to another physical block number, which means that the block corresponding to the physical block number before the reallocation is erased.

섹터 영역 오른쪽에는 섹터 영역의 각 페이지에 상응하는 각각의 스페어 영역이 존재한다. 스페어 영역에는 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 <page 0> and <page 1>, physical block number 32 was assigned to logical block number 2 on <page 0> and physical block number 112 was reassigned on <page 1>. . This means that the physical block is erased before the reallocation of the physical block number 32, and therefore, the erased physical block number 32 is recorded in the spare area of <page 1>.

여기서 하나의 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 flash memory 130 is erased may be calculated.

이러한 소거 횟수의 누적 산출은 일정 주기마다 반복적으로 수행되며, 특히 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 flash memory 130 includes 128 pages. According to the present invention, it is not necessary to write the erase count table until the block is erased 128 times in the flash memory 130, thereby preventing the page from being frequently consumed.

이는 소거 정보 블록에서 페이지의 소모를 줄일 수 있을 뿐만 아니라 소거 횟수 테이블의 기록이나 소거 정보 블록의 소거에 따른 플래시 메모리로의 접근 횟수도 줄일 수 있어, 플래시 메모리의 관리를 위해 소모되는 자원을 최소화할 수 있고 사용자의 작업에 보다 많은 자원을 투자함으로써 플래시 메모리의 성능 향상에 기여할 수 있다.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 flash memory 130 operates on the RAM 140, and the erase count table written to the flash memory 130 is used to restore the erase count table on the RAM 140. . According to the present invention, when power is supplied to the flash memory storage device 100, the controller 120 may read the erase count table stored in the erase information block of the flash memory 130 and the MAP change information recorded in the spare area of the MAP block. It is possible to simply restore the erase count table on the RAM 140 by using.

도 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 controller 120 searches for an erase count table (hereinafter, referred to as a “last erase count table”) last recorded in an erase information block. Here, the last erase count table includes the latest erase count for each block. The erase count of each block included in the last erase count table is set as a base value for restoring the erase count table, and in step S320, the controller 120 starts to restore the erase count table with reference to the MAP block. First, in order to restore the erase count table, the controller 120 must accumulate the erase count of each block that has occurred since the last erase count table was generated in the erase count of each block included in the last erase count table. When the erase count table is generated and written only when the MAP block is erased, the last erase count table is calculated because the last erase count table recorded in the erase information block refers only to the MAP block before the current MAP block is allocated. The erase count of each subsequent block is calculated by referring to the MAP change information recorded in the spare area of the current MAP block. In this case, the controller 120 stores the last erase count table found in step S310 as a base value of the erase count table on the RAM 140, and bases the block as many times as the number of physical blocks written in the spare area of the MAP block. Restore the erase count table by increasing the value. Of course, when the controller 120 first generates the erase count table, since there is no erase count table recorded in the erase information block, the controller 120 only needs to calculate the number of times the physical block number is recorded in the spare area of the MAP block. In this case, the base value of each block is set to 0 in the erase count table on the RAM 140. In step S330, the controller 120 checks whether MAP change information exists in the spare area of the MAP block. If the MAP change information does not exist in the spare area, it is immediately checked whether the restoration of the erase count table is completed. If the MAP change information exists in the spare area in step S330, the controller 120 checks the physical block number recorded in the spare area in step S340 and records the erase count of the corresponding physical block number in the erase count table on the RAM 140. 1 increases. In step S350, it is checked whether the restoration of the erase count table is completed. If the erase count table is restored, the restore operation of the erase count table ends. If the restoration of the erase count table is not completed, in step S360, the controller 120 reads the next spare area and returns to step S330 to perform an iterative operation.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.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)

플래시 메모리(Flash memory)와 컨트롤러를 포함하는 저장장치의 상기 컨트롤러가 상기 플래시 메모리 내의 각 블록에 대한 소거 정보를 복원하는 방법에 있어서,A method of recovering erase information for each block in the flash memory by the controller of a storage device including a flash memory and a controller, the method comprising: 상기 플래시 메모리에 기록된 MAP 변경 정보를 이용하여 상기 각 블록의 소거 횟수를 산출하는 것을 특징으로 하는 소거 정보 복원 방법.And erasing number of each block is calculated using MAP change information recorded in the flash memory. 제 1 항에 있어서,The method of claim 1, 상기 MAP 변경 정보는 소거된 블록들의 물리 블록 번호인 것을 특징으로 하는 소거 정보 복원 방법.And the MAP change information is a physical block number of erased blocks. 제 2 항에 있어서,The method of claim 2, 상기 MAP 변경 정보는 MAP 테이블이 기록되는 블록의 스페어 영역에 기록되는 것을 특징으로 하는 소거 정보 복원 방법.And the MAP change information is recorded in a spare area of a block in which a MAP table is recorded. 제 3 항에 있어서,The method of claim 3, wherein 마지막 소거 횟수 테이블 내 각 블록의 소거 횟수를 베이스 값으로 설정하는 단계; 및Setting the erase count of each block in the last erase count table as a base value; And 상기 각 블록에 대한 베이스 값을 상기 각 블록에 대한 상기 물리 블록 번호가 상기 스페어 영역에 기록된 횟수만큼 증가시키는 단계를 포함하는 것을 특징으로 하는 소거 정보 복원 방법.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 변경 정보가 기록되는 플래시 메모리;A flash memory in which MAP change information is recorded; 상기 MAP 변경 정보를 이용하여 각 블록의 소거 횟수를 산출하는 컨트롤러; 및A controller configured to calculate an erase count of each block by using the MAP change information; And 상기 소거 횟수가 기록된 소거 횟수 테이블이 저장되는 RAM(Random Access Memory)을 포함하는 것을 특징으로 하는 플래시 메모리 저장장치.And a random access memory (RAM) in which the erase count table in which the erase count is recorded is stored. 제 5 항에 있어서,The method of claim 5, 상기 MAP 변경 정보는 소거된 블록들의 물리 블록 번호인 것을 특징으로 하는 플래시 메모리 저장장치.The MAP change information is a physical block number of erased blocks. 제 6 항에 있어서,The method of claim 6, 상기 MAP 변경 정보는 플래시 메모리의 MAP 테이블이 기록되는 블록의 스페어 영역에 기록되는 것을 특징으로 하는 플래시 메모리 저장장치.The MAP change information is recorded in a spare area of a block in which a MAP table of a flash memory is recorded. 제 7 항에 있어서,The method of claim 7, wherein 상기 컨트롤러는,The controller comprising: 상기 플래시 메모리 내 마지막 소거 횟수 테이블에 포함된 소거 횟수를 상기 각 블록의 베이스 값으로 설정하고,Sets the erase count included in the last erase count table in the flash memory as a base value of each block, 상기 스페어 영역에 상기 각 블록에 대한 상기 물리 블록 번호가 기록된 횟수만큼 상기 베이스 값을 증가시키는 것을 특징으로 하는 플래시 메모리 저장장치.And increasing the base value by the number of times the physical block number for each block is written in the spare area.
KR1020090072928A 2009-08-07 2009-08-07 A method for recovering erase-information of a flash memory KR20110015288A (en)

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)

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