KR100914646B1 - Management Scheme for Flash Memory with the Multi-Plane Architecture - Google Patents

Management Scheme for Flash Memory with the Multi-Plane Architecture Download PDF

Info

Publication number
KR100914646B1
KR100914646B1 KR1020020052349A KR20020052349A KR100914646B1 KR 100914646 B1 KR100914646 B1 KR 100914646B1 KR 1020020052349 A KR1020020052349 A KR 1020020052349A KR 20020052349 A KR20020052349 A KR 20020052349A KR 100914646 B1 KR100914646 B1 KR 100914646B1
Authority
KR
South Korea
Prior art keywords
physical
group
flash memory
page
page group
Prior art date
Application number
KR1020020052349A
Other languages
Korean (ko)
Other versions
KR20020092261A (en
Inventor
이동희
김성관
Original Assignee
지인정보기술 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지인정보기술 주식회사 filed Critical 지인정보기술 주식회사
Priority to KR1020020052349A priority Critical patent/KR100914646B1/en
Publication of KR20020092261A publication Critical patent/KR20020092261A/en
Application granted granted Critical
Publication of KR100914646B1 publication Critical patent/KR100914646B1/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 멀티-플레인 구조를 가진 플래시 메모리의 플래시 변환 계층의 설계 방법에 관한 것이다. 본 발명에 따른 플래시 변환 계층에 서는, 각각의 플레인이 복수 개의 물리블록을 포함하는 복수 개의 플레인이 제공되고, 복수 개의 플레인 각각에서 하나씩 선택된 물리블록을 포함하는 물리블록그룹이 제공된다. 또한, 물리블록은 복수 개의 물리페이지를 포함하고, 동일한 물리블록그룹에 포함된 물리블록들 각각에서 하나씩 선택된 물리페이지를 포함하는 물리페이지그룹이 제공된다. 각 물리블록그룹은 동시에 전기적 소거가 가능하고, 각 물리페이지그룹은 동시에 기록 또는 판독이 가능하다. The present invention relates to a method of designing a flash translation layer of a flash memory having a multi-plane structure. In the flash translation layer according to the present invention, a plurality of planes are provided, each plane including a plurality of physical blocks, and a physical block group including a physical block selected one from each of the plurality of planes is provided. In addition, the physical block includes a plurality of physical pages, and a physical page group including physical pages selected one from each of the physical blocks included in the same physical block group is provided. Each physical block group can be electrically erased at the same time, and each physical page group can be written or read simultaneously.

멀티-플레인, 물리블록그룹, 물리페이지그룹, 사상 테이블, 쓰기블록그룹Multi-plane, Physical Block Group, Physical Page Group, Mapping Table, Write Block Group

Description

멀티-플레인 구조의 플래시 메모리 관리 방법 {Management Scheme for Flash Memory with the Multi-Plane Architecture}Management Scheme for Flash Memory with the Multi-Plane Architecture

도 1은 종래 기술에 따른 플래시 메모리의 구조를 도시한 도면.1 is a view showing the structure of a flash memory according to the prior art.

도 2는 종래 기술에 따른 플래시 메모리의 물리페이지 구조를 도시한 도면.2 is a diagram illustrating a physical page structure of a flash memory according to the prior art.

도 3은 멀티-플레인 구조의 플래시 메모리의 구성도.3 is a block diagram of a flash memory having a multi-plane structure.

도 4는 본 발명의 실시예에 따른 플래시 메모리의 구조를 도시한 도면.4 illustrates the structure of a flash memory according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 물리페이지의 구조를 도시한 도면.5 illustrates a structure of a physical page according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 사상 테이블을 도시한 도면.6 illustrates a mapping table according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따라, 플래시 메모리의 쓰기 연산에 관한 동작을 나타내는 흐름도.7 is a flowchart illustrating operations relating to a write operation of a flash memory, according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따라, 페이지그룹버퍼의 내용을 플래시 메모리에 기록하는 방법을 보다 상세히 도시한 흐름도.8 is a flow chart illustrating in more detail a method for writing the contents of a page group buffer into a flash memory, in accordance with an embodiment of the invention.

도 9는 본 발명의 실시예에 따라, 플래시 메모리의 읽기 연산에 관한 동작을 나타내는 흐름도.9 is a flowchart illustrating operations relating to a read operation of a flash memory, in accordance with an embodiment of the present invention.

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

41 : 물리블록그룹41: physical block group

42 : 물리페이지그룹 42: Physical page group                 

43 : 마스터블록그룹43: master block group

44 : 사상영역44: mapping area

45 : 데이터영역
45: data area

본 발명은 NAND형 플래시 메모리(NAND-type Flash Memory)를 위한 플래시 변환 계층(Flash Translation Layer)의 설계 방법에 관한 것으로, 특히 멀티-플레인 구조를 갖춘 NAND형 플래시 메모리의 특성에 최적화된 플래시 변환 계층의 설계 방법에 관한 것이다. The present invention relates to a method for designing a flash translation layer for a NAND-type flash memory, and in particular, a flash translation layer optimized for the characteristics of a NAND-type flash memory having a multi-plane structure. Relates to a design method.

플래시 메모리는 전기적으로 데이터의 소거와 프로그램이 가능한 고집적 비휘발성 메모리로서, 데이터의 기록 및 삭제가 자유로운 램(RAM)의 장점과 전원의 공급 없이도 저장된 데이터를 보존하는 롬(ROM)의 장점을 동시에 지니고 있어 최근 디지털 카메라, PDA, MP3 플레이어 등 휴대용 전자기기의 저장매체로 널리 채택되고 있다. Flash memory is a highly integrated non-volatile memory that can be erased and programmed electrically. It has the advantages of RAM, which is free to write and delete data, and ROM, which preserves stored data without supplying power. Recently, it is widely used as a storage medium for portable electronic devices such as digital cameras, PDAs, and MP3 players.

그러나, 기존의 다른 저장매체와는 달리, 플래시 메모리에서는 이전에 기록된 데이터를 변경하기 위해 전기적 소거 및 재기록 과정이 필요하다. 즉, 초기 상태에 플래시 메모리의 각 셀(cell)은 1의 값을 가지는데, 소정의 위치에 데이터를 기록하기 위해 한 셀의 값을 1에서 0으로 전환하는 것은 가능하나, 이를 0에서 1로 복구하는 것은 불가능하다. 따라서, 소정의 위치에 기록된 데이터의 내용을 변경하기 위해서는 해당 위치를 포함하는 일정량의 메모리 블록을 전기적 소거를 통해 1로 재초기화 한 후 변경된 내용을 재기록해야 한다. However, unlike other conventional storage media, flash memory requires an electrical erase and rewrite process to change previously written data. That is, in the initial state, each cell of the flash memory has a value of 1. It is possible to change the value of one cell from 1 to 0 in order to write data at a predetermined position, but from 0 to 1 It is impossible to recover. Therefore, in order to change the contents of the data recorded in the predetermined position, the memory block including the corresponding position must be reinitialized to 1 through electrical erasing and then the changed contents must be rewritten.

플래시 변환 계층(Flash Translation Layer)은, 상기와 같은 특성을 지닌 플래시 메모리를 하드 디스크와 같은 블록 디바이스로 사용할 수 있도록 중재하는 소프트웨어이다. 플래시 변환 계층은 가상의 블록 디바이스 상의 논리적인 위치와 플래시 메모리 상의 물리적인 위치 간의 사상(mapping)정보를 유지하면서, 소정의 논리적인 위치에 대해 쓰기/읽기 연산이 요청되면, 상기 사상정보를 이용하여 논리적인 위치를 물리적인 위치로 변환하는 역할을 수행한다. 특히, 논리적인 위치에 대해 데이터를 변경하는 쓰기 연산이 요청되는 경우, 논리적인 위치에 대응하는 물리적인 위치를 전기적으로 소거한 후 재기록하거나 또는 논리적인 위치를 다른 물리적인 위치로 재사상하는 역할을 수행한다. The flash translation layer is software that arbitrates flash memory having such characteristics to be used as a block device such as a hard disk. The flash translation layer maintains mapping information between a logical location on a virtual block device and a physical location on flash memory, and uses a mapping information when a write / read operation is requested for a predetermined logical location. It converts logical locations into physical locations. In particular, when a write operation that changes data is requested for a logical position, the controller erases and rewrites the physical position corresponding to the logical position, or re-thinks the logical position to another physical position. To perform.

전형적인 NAND형 플래시 메모리의 구조를 도 1에 도시하였다. 도 1에 도시된 바와 같이, 플래시 메모리는 복수 개의 일정 크기의 물리블록(11)으로 분할된다. 각 물리블록(11)은 고유의 물리블록번호 (0,1,2, ..., n-1)를 가지고 있어 개별적으로 지정 가능하며 전기적 소거의 단위로 사용된다. 또한, 각 물리블록(11)은 복수 개의 일정 크기의 물리페이지(12)로 분할된다. 각 물리페이지(12)는 소속된 물리블록(11)의 오프셋으로 접근 가능하며 기록과 판독의 단위로 사용된다. 물리블록의 크기와 물리페이지의 크기는 NAND형 플래시 제품마다 다르게 정해질 수 있는데, 일례로 전체 용량이 16 Mbytes이면서 블록의 크기가 16 Kbytes이고 페이지 의 크기가 512 bytes인 플래시 메모리는 1,024개의 물리블록으로 구성되며 각 물리블록은 32개의 물리페이지로 구성된다. The structure of a typical NAND flash memory is shown in FIG. As shown in FIG. 1, a flash memory is divided into a plurality of physical blocks 11 having a predetermined size. Each physical block 11 has a unique physical block number (0, 1, 2, ..., n-1) can be individually specified and used as a unit of electrical erasure. In addition, each physical block 11 is divided into a plurality of physical pages 12 of a predetermined size. Each physical page 12 is accessible at the offset of the belonging physical block 11 and is used as a unit of writing and reading. The size of the physical block and the size of the physical page may be different for each NAND-type flash product. For example, a flash memory having a total capacity of 16 Mbytes, a block size of 16 Kbytes, and a page size of 512 bytes is 1,024 physical blocks. Each physical block consists of 32 physical pages.

그런데, 종래의 기술에서는 플래시 메모리의 모든 물리블록들이 단일 메모리 플레인 상에 배치되었다. 이러한 단일-플레인 구조의 플래시 메모리에서는, 전기적 소거의 경우에는 한번에 한 물리블록에 대해서만, 기록과 판독의 경우에는 한번에 한 물리페이지에 대해서만 명령의 수행이 가능하였다. However, in the prior art, all physical blocks of the flash memory are disposed on a single memory plane. In such a single-plane flash memory, an instruction can be executed for only one physical block at a time for electrical erasure and only one physical page at a time for writing and reading.

상기와 같은 단일-플레인 구조를 갖춘 플래시 메모리를 위해, 미국 특허 제 5,602,987호에는 샌디스크 코오퍼레이션(SanDisk Co.) 사에 의해 제안된 플래시 변환 계층이 개시되어 있다. 도 2는 상기의 특허에 개시된 플래시 메모리의 물리페이지(12)의 구조를 도시한 것으로서, 데이터(21) 및 상기 데이터(21)와 연관된 부가정보(22)가 동일한 물리페이지 내에 저장되도록 설계되었다. 그 이유는 종래의 기술에 따른 플래시 메모리의 구조에서는 기록과 판독이 단일 물리페이지에 대해서만 수행되므로, 데이터(21)와 부가정보(22)를 동일한 물리페이지 내에 위치하게 하여 한번의 명령으로 기록 또는 판독하는 것이 효율적이기 때문이다. For a flash memory having such a single-plane structure, U.S. Patent No. 5,602,987 discloses a flash translation layer proposed by SanDisk Co., Ltd. FIG. 2 shows the structure of the physical page 12 of the flash memory disclosed in the above patent, wherein the data 21 and the additional information 22 associated with the data 21 are stored in the same physical page. The reason for this is that in the structure of the flash memory according to the prior art, since writing and reading are performed only for a single physical page, the data 21 and the additional information 22 are located in the same physical page so that they can be written or read in one command. Because it is efficient.

또한, 미국 특허 제 5,937,425호에는 엠-시스템스 플래시 디스크 파이오니어스 리미티드(M-Systems Flash Disk Pioneers Ltd.) 사에 의해 제안된 플래시 변환 계층이 개시되어 있다. 상기의 특허에 개시된 플래시 변환 계층에서는 가상의 블록 디바이스 상의 한 섹터를 플래시 메모리 상의 한 물리페이지에 기록하기 위해, (a) 상기 섹터를 포함하는 논리블록을 배치시키는 단계; (b) 상기 논리블록에 대응하는 물리블록의 기록 가능한 물리페이지를 배치시키는 단계; (c) 상기 섹터의 내 용을 상기 기록 가능한 물리페이지에 기록하는 단계를 포함하는 방법을 제공하였다.U. S. Patent No. 5,937, 425 also discloses a flash translation layer proposed by M-Systems Flash Disk Pioneers Ltd. In the flash translation layer disclosed in the above patent, for writing one sector on a virtual block device to one physical page on flash memory, (a) disposing a logical block including the sector; (b) disposing a recordable physical page of a physical block corresponding to the logical block; and (c) recording the contents of the sector in the recordable physical page.

그러나, 상기와 같은 플래시 변환 계층들은 단일-플레인 구조가 지원하는 단일 명령 수행 기능을 기반으로 하여 설계된 것으로, 멀티-플레인 구조를 갖춘 플래시 메모리에 적용될 경우 최적화된 성능을 발휘하지 못하는 문제점이 있었다. However, the above flash conversion layers are designed based on a single instruction execution function supported by a single-plane structure, and thus, there is a problem in that optimized performance is not applied when applied to a flash memory having a multi-plane structure.

멀티-플레인 구조의 플래시 메모리에서는 물리블록들이 하나 이상의 메모리 플레인 상에 분산 배치되고, 서로 다른 플레인 상에 위치한 물리블록들 또는 물리페이지들에 대해 동시에 명령의 수행이 가능하다. 따라서, 멀티-플레인 구조가 지원하는 동시 명령 수행 기능을 활용하여 최적의 성능을 발휘할 수 있도록 설계된 새로운 플래시 변환 계층이 요구된다. In a flash memory having a multi-plane structure, physical blocks are distributed on one or more memory planes, and instructions may be simultaneously executed on physical blocks or physical pages located on different planes. Thus, there is a need for a new flash translation layer designed to achieve optimal performance utilizing the concurrent command execution capabilities supported by the multi-plane architecture.

상기의 문제점을 해결하기 위해 본 발명의 목적은 멀티-플레인 구조를 갖춘 플래시 메모리에 최적화된 플래시 변환 계층을 제공하는 것이다.  In order to solve the above problems, an object of the present invention is to provide a flash translation layer optimized for a flash memory having a multi-plane structure.

본 발명의 목적은 동시에 복수 개의 물리블록에 대해 전기적 소거 명령을 수행하고, 동시에 복수 개의 물리페이지에 대해 기록/판독 명령을 수행함으로써, 향상된 메모리 대역폭을 최대한 이용하는 플래시 메모리 관리 방법을 제공하는 것이다. An object of the present invention is to provide a flash memory management method that makes the best use of an improved memory bandwidth by simultaneously performing an electrical erase command for a plurality of physical blocks and simultaneously performing a write / read command for a plurality of physical pages.

본 발명의 목적은 동시에 기록 또는 판독이 가능한 복수 개의 물리페이지들을 그룹화한 단위로 사상을 수행함으로써, 기록과 판독을 효과적으로 수행함과 동시에 사상에 필요한 공간 오버헤드를 최소화하는 플래시 메모리 관리 방법을 제공 하는 것이다. An object of the present invention is to provide a flash memory management method which performs recording and reading effectively and minimizes the space overhead required for mapping by performing mapping in a unit of a plurality of physical pages that can be simultaneously written or read. .

본 발명의 목적은 데이터 및 상기 데이터와 연관된 부가정보가 반드시 동일한 물리페이지 내에 저장되어야 한다는 제약을 극복하면서도 성능의 저하 없이 플래시 메모리 쓰기/읽기 연산을 구현하는 플래시 메모리 관리 방법을 제공하는 것이다.It is an object of the present invention to provide a flash memory management method that implements flash memory write / read operations without compromising performance while overcoming the constraint that data and additional information associated with the data must be stored in the same physical page.

본 발명의 목적은 사상 테이블의 갱신을 소정의 시점에 한꺼번에 수행함으로써, 불필요한 플래시 메모리의 접근을 최소화하는 플래시 메모리 관리 방법을 제공하는 것이다. SUMMARY OF THE INVENTION An object of the present invention is to provide a flash memory management method which minimizes access to unnecessary flash memory by performing update of a mapping table at a predetermined time.

본 발명의 목적은 물리블록의 전기적 소거를 소정의 시점에 한꺼번에 수행함으로써, 불필요한 플래시 메모리의 접근을 최소화하는 플래시 메모리 관리 방법을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a flash memory management method for minimizing unnecessary access of a flash memory by performing electrical erase of a physical block at a predetermined time.

본 발명의 일면에 따르면, 멀티-플레인 구조를 갖춘 플래시 메모리의 구성 방법에 있어서, 각각의 플레인이 복수 개의 물리블록을 포함하는 복수 개의 플레인을 제공하는 단계; 및 상기 복수 개의 플레인 각각에서 하나씩 선택된 물리블록들을 포함하는 물리블록그룹을 제공하는 단계를 포함하는 플래시 메모리의 구성 방법이 제공된다. According to an aspect of the present invention, there is provided a method of configuring a flash memory having a multi-plane structure, the method comprising: providing a plurality of planes each plane including a plurality of physical blocks; And providing a physical block group including physical blocks selected one from each of the plurality of planes.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 플래시 변환 계층에 대하여 상세히 설명한다. Hereinafter, a flash conversion layer according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 멀티-플레인 구조를 갖춘 NAND형 플래시 메모리의 일반적인 구조를 도시한 것이다. 도 3에서 보는 바와 같이, n개의 메모리 플레인 상에 플래시 메모리의 물리블록들이 균등하게 분산 배치되어 있고, 각 물리블록은 복수 개의 물리페이지를 포함하고 있다. 각 플레인마다 별도의 페이지 레지스터(page register)가 구비되어 있어서, 각 플레인으로부터 하나씩의 물리블록 또는 물리페이지를 선택하여 최대 n개의 물리블록 또는 물리페이지에 대해 동시에 전기적 소거 또는 기록/판독 명령을 수행할 수 있다.3 illustrates a general structure of a NAND flash memory having a multi-plane structure. As shown in FIG. 3, physical blocks of the flash memory are evenly distributed on n memory planes, and each physical block includes a plurality of physical pages. A separate page register is provided for each plane, so that one physical block or physical page can be selected from each plane to simultaneously perform electrical erase or write / read commands on up to n physical blocks or physical pages. Can be.

도 3은 4개의 플레인 상에 4,096개의 물리블록이 위치하고, 각 물리블록은 32개의 물리페이지를 포함하는 플래시 메모리의 실시예를 도시하고 있으나, 본 발명은 멀티-플레인 구조를 갖춘 여하한 구성의 NAND형 플래시 메모리에도 적용될 수 있음이 명백하다. 이하, 도 3에 도시한 실시예를 기반으로 하여 본 발명을 설명한다. FIG. 3 illustrates an embodiment of a flash memory in which 4,096 physical blocks are located on four planes and each physical block includes 32 physical pages. However, the present invention provides a NAND having any configuration with a multi-plane structure. It is obvious that the present invention can be applied to a flash memory. Hereinafter, the present invention will be described based on the embodiment shown in FIG. 3.

도 4는 본 발명의 바람직한 실시예에 따른 플래시 메모리의 구조를 도시한 것이다. 도 4에서 보는 바와 같이, 본 발명의 실시예에서는 플래시 메모리 상에 복수 개의 물리블록그룹(BG; Block Group)(41)을 설정한다. “물리블록그룹”이라 함은 전기적 소거가 동시에 가능한 물리블록들의 집합을 의미하는 것으로, 물리블록그룹번호에 의해 개별적으로 지정될 수 있다. 4개의 플레인으로 구성된 플래시 메모리가 4,096개의 물리블록으로 분할되어 있는 경우, 하나의 물리블록그룹(41)은 각각 다른 플레인 상에 위치한 4개의 물리블록으로 구성되며, 물리블록그룹 0번부터 물리블록그룹 1,023번까지 총 1,024개의 물리블록그룹이 형성된다. 4 illustrates the structure of a flash memory according to a preferred embodiment of the present invention. As shown in Fig. 4, in the embodiment of the present invention, a plurality of physical block groups (BGs) 41 are set on a flash memory. The term "physical block group" refers to a set of physical blocks that can be electrically erased at the same time and may be individually designated by a physical block group number. When a flash memory consisting of four planes is divided into 4,096 physical blocks, one physical block group 41 is composed of four physical blocks located on different planes. Up to 1,023 total 1,024 physical block groups are formed.

또한, 본 발명의 실시예에서는 각 물리블록그룹(41) 내에 복수 개의 물리페 이지그룹(42)을 설정한다. “물리페이지그룹”이라 함은 동시에 기록 또는 판독이 가능한 물리페이지들의 집합을 의미하는 것으로, 물리페이지그룹번호에 의해 개별적으로 지정될 수 있다. 4개의 플레인으로 구성된 플래시 메모리 상에 1,024개의 물리블록그룹이 설정되어 있으며 각 물리블록그룹 내에 32개의 물리페이지그룹이 설정되어 있는 경우, 한 물리페이지그룹(42)은 각각 다른 플레인 상에 위치한 4개의 물리페이지로 구성되며, 물리페이지그룹 0번부터 물리페이지그룹 32,767번까지 총 32,768개의 물리페이지그룹이 형성된다. In the embodiment of the present invention, a plurality of physical page groups 42 are set in each physical block group 41. The term "physical page group" means a set of physical pages that can be recorded or read at the same time, and can be individually designated by the physical page group number. When 1,024 physical block groups are configured in a flash memory composed of four planes and 32 physical page groups are configured in each physical block group, one physical page group 42 is divided into four planes each located on a different plane. It consists of physical pages, and a total of 32,768 physical page groups are formed from physical page group 0 to physical page group 32,767.

도 4에 도시한 멀티-플레인 구조 상에서, 본 발명에 따른 플래시 메모리는 마스터 블록그룹(43); 사상 영역(44); 데이터 영역(45)으로 구성된다. In the multi-plane structure shown in Fig. 4, the flash memory according to the present invention comprises: a master block group 43; The mapping area 44; It consists of a data area 45.

마스터 블록그룹(43)은 물리블록그룹 0번에 위치하며, 사상 영역(44)과 데이터 영역(45)의 위치와 크기를 지정하는 테이블을 가지고 있다. 본 발명에 따른 일실시예로서, 불량 블록(bad block)이 존재하는 경우 불량 블록에 대한 정보를 마스터 블록그룹(43)에 기록하여 적절히 배제하는 기능을 구현할 수 있다. The master block group 43 is located in physical block group 0 and has a table for designating the positions and sizes of the mapping area 44 and the data area 45. According to an embodiment of the present invention, when a bad block exists, a function of properly excluding the bad block by writing information about the bad block to the master block group 43 may be implemented.

사상 영역(44)은 물리블록그룹 1번부터 위치하고 그 크기는 플래시 메모리의 용량에 의해 결정된다. 사상 영역(44)은 가상의 블록 디바이스 상의 논리적인 위치와 플래시 메모리 상의 물리적인 위치 간의 사상정보를 기록하는 사상 테이블을 가지고 있다. 플래시 메모리가 n개의 플레인으로 구성되는 경우, 상기 가상의 블록 디바이스 상의 논리적인 위치는 연속된 섹터를 n개씩 그룹화한 각 논리페이지그룹이 되고, 상기 플래시 메모리 상의 물리적인 위치는 물리페이지를 n개씩 그룹화한 각 물리페이지그룹이 된다. 상기 논리페이지그룹은 임의의 물리페이지그룹에 동적으로 대응될 수 있다. The mapping area 44 is located from the physical block group 1 and its size is determined by the capacity of the flash memory. The mapping area 44 has a mapping table that records mapping information between the logical location on the virtual block device and the physical location on the flash memory. When the flash memory is composed of n planes, the logical location on the virtual block device is each logical page group grouped by n consecutive sectors, and the physical location on the flash memory is grouped by n physical pages. Each physical page group is one. The logical page group may dynamically correspond to any physical page group.

도 5는 본 발명의 바람직한 실시예에 따른 물리페이지그룹(42)의 구조를 도시한 것이다. 도 5에 도시된 바와 같이, 한 물리페이지그룹(42) 내에는 각 물리페이지마다 데이터와 부가정보가 저장되는데, 본 발명에 따른 플래시 메모리의 구조에서는 종래의 단일-플레인 구조의 플래시 메모리와 달리, 데이터 및 상기 데이터와 연관된 부가정보가 반드시 동일한 물리페이지 내에 저장되어야 한다는 제약을 받지 않는다. 왜냐하면, 멀티-플레인 구조에서는 기록 또는 판독이 한 물리페이지그룹에 속한 물리페이지들에 대해 동시에 가능하므로, 데이터와 부가정보가 동일한 물리페이지그룹 내에 저장되기만 하면 되기 때문이다. 즉, 플레인 0번에 위치한 데이터(51)와 연관된 부가정보는 플레인 0번의 부가정보(52), 플레인 1번의 부가정보(53), 플레인 2번의 부가정보(54), 또는 플레인 3번의 부가정보(55) 중 어느 하나에 선택적으로 저장될 수 있다. 5 shows the structure of a physical page group 42 according to a preferred embodiment of the present invention. As shown in FIG. 5, data and additional information are stored in each physical page in one physical page group 42. In the flash memory structure according to the present invention, unlike the flash memory of the conventional single-plane structure, It is not constrained that data and additional information associated with the data must be stored within the same physical page. This is because, in the multi-plane structure, since writing or reading is possible for the physical pages belonging to one physical page group at the same time, data and additional information need only be stored in the same physical page group. That is, the additional information associated with the data 51 located in the plane 0 may be the additional information 52 of the plane 0, the additional information 53 of the plane 1, the additional information 54 of the plane 2, or the additional information of the plane 3 ( 55) may optionally be stored.

도 6은 사상 테이블의 일례를 도시한 것으로, 도 6에서 보는 바와 같이, 사상 테이블은 각 논리페이지그룹이 어떤 물리페이지그룹에 대응되는지를 나타낸다. 사상 테이블의 각 엔트리는 논리페이지그룹번호로 색인되며, -1 또는 대응되는 물리페이지그룹번호를 가지고 있다. 논리페이지그룹 내의 각 섹터는 대응되는 물리페이지그룹 내의 플레인 0번에 위치한 물리페이지부터 차례대로 대응된다. FIG. 6 shows an example of a mapping table. As shown in FIG. 6, a mapping table indicates which physical page group each logical page group corresponds to. Each entry in the mapping table is indexed by a logical page group number, and has -1 or a corresponding physical page group number. Each sector in the logical page group corresponds in sequence starting from the physical page located at plane 0 in the corresponding physical page group.

사상 테이블을 검색함으로써 논리페이지그룹번호(0,1,2,3,...)를 물리페이지그룹번호(P0,P1,P2,P3, ...)로 변환하는 것 이외에도, 미사용 중인 물리페이지그룹과 미사용 중인 물리블록그룹을 검출할 수 있다.In addition to converting the logical page group numbers (0, 1, 2, 3, ...) into physical page group numbers (P 0 , P 1 , P 2 , P 3 , ...) by searching the mapping table, Unused physical page groups and unused physical block groups can be detected.

도 4에서의 데이터 영역(45)은 사상 영역(44)에 연이은 물리블록그룹부터 위치하고 그 크기는 플래시 메모리의 용량에 의해 결정된다. 데이터 영역의 각 물리페이지그룹은 미사용 중이거나 또는 대응하는 논리페이지그룹의 내용을 가지고 있다. The data area 45 in FIG. 4 is located from the physical block group subsequent to the mapping area 44 and its size is determined by the capacity of the flash memory. Each physical page group in the data area has an unused or corresponding content of logical page group.

“쓰기블록그룹(WBG; Writing Block Group)”이라 함은 현재 기록이 진행 중인 물리블록그룹을 의미하는 것으로, 초기 상태에서 쓰기블록그룹은 데이터 영역(45)의 첫 번째 물리블록그룹으로 지정된다. 이 때, 첫 번째 기록 명령이 요청되면, 쓰기블록그룹의 첫 번째 물리페이지그룹을 배치시키고, 첫 번째 물리페이지그룹에 속한 물리페이지들에 대해 동시에 기록 명령을 수행한다. 또한, 두 번째 기록 명령이 요청되면, 상기 쓰기블록그룹의 두 번째 물리페이지그룹을 배치시키고, 두 번째 물리페이지그룹에 속한 물리페이지들에 대해 동시에 기록 명령을 수행한다. 상기와 같은 방법으로, 일련의 기록 명령들에 대해 상기 쓰기블록그룹 내의 최초의 미사용 중인 물리페이지그룹을 차례대로 배치시킨다. 여러 번의 기록 명령을 수행하여 상기 쓰기블록그룹에 더 이상의 미사용 중인 물리페이지그룹이 없으면, 임의의 미사용 중인 물리블록그룹을 새로운 쓰기블록그룹으로 선정하고, 상기 새로운 쓰기블록그룹에 속한 물리블록들을 동시에 전기적으로 소거한다. 다음에 요청되는 기록 명령에 대해서는 상기 새로운 쓰기블록그룹의 첫 번째 물리페이지그룹을 배치시킨다. The term "writing block group (WBG)" refers to a physical block group in which writing is currently being performed. In the initial state, the writing block group is designated as the first physical block group of the data area 45. At this time, when the first write command is requested, the first physical page group of the write block group is placed, and the write command is simultaneously performed on the physical pages belonging to the first physical page group. When a second write command is requested, the second physical page group of the write block group is placed, and a write command is simultaneously performed on the physical pages belonging to the second physical page group. In this manner, the first unused physical page group in the write block group is sequentially arranged for a series of write commands. If there are no more unused physical page groups in the write block group by executing the write command several times, any unused physical block group is selected as a new write block group, and the physical blocks belonging to the new write block group are simultaneously To erase. For the next write command requested, the first physical page group of the new write block group is placed.

일실시예로서, 상기 쓰기블록그룹에 더 이상의 미사용 중인 물리페이지그룹 이 없으면, 상기 쓰기블록그룹에 기록된 모든 논리페이지그룹들에 대해 상기 쓰기블록그룹 내의 해당 물리페이지그룹에 대응되도록 한꺼번에 사상 테이블을 갱신하는 단계를 포함할 수 있다. In one embodiment, if there are no more unused physical page groups in the write block group, the mapping table may be simultaneously added to correspond to the corresponding physical page group in the write block group for all logical page groups recorded in the write block group. It may include updating.

또 다른 실시예로서, 미사용 중인 물리블록그룹의 개수가 소정의 임계치에 도달하면, 사용 중인 물리블록그룹 중에서 유효한 물리페이지그룹을 가장 적게 포함하는 물리블록그룹을 선정하고, 상기 물리블록그룹으로부터 유효한 물리페이지그룹들만 상기 새로운 쓰기블록그룹으로 이동시키고, 상기 물리블록그룹을 미사용 중인 물리블록그룹으로 회수하는 단계를 더 포함할 수 있다. 이 때, 상기 회수된 물리블록그룹에 대한 전기적 소거는 즉시 수행하지 않으며, 상기 회수된 물리블록그룹이 새로운 쓰기블록그룹으로 선정되는 시점에 수행한다. As another embodiment, when the number of unused physical block groups reaches a predetermined threshold, a physical block group including the least valid physical page group among the used physical block groups is selected, and the valid physical blocks are selected from the physical block group. The method may further include moving only page groups to the new write block group and recovering the physical block group to an unused physical block group. At this time, the electrical erase of the recovered physical block group is not immediately performed, but is performed at a time point when the recovered physical block group is selected as a new write block group.

이하, 본 발명에 따른 플래시 메모리의 동작을 도 7, 도 8, 도 9를 참조하여 설명한다. “페이지그룹버퍼”는 RAM 상에 위치하는 한 페이지그룹 크기의 버퍼를 의미하는 것으로, 일련의 섹터들에 대해 플래시 메모리 쓰기가 요청되면 동일한 논리페이지그룹에 속한 섹터들을 합하여 동시에 기록 명령을 수행하기 위해 사용된다.Hereinafter, the operation of the flash memory according to the present invention will be described with reference to FIGS. 7, 8, and 9. “Page group buffer” refers to a buffer of one page group size located in RAM. When a flash memory write is requested for a series of sectors, the sectors belonging to the same logical page group are added to execute write commands simultaneously. Used.

도 7은 플래시 메모리의 쓰기 연산에 관한 동작을 나타내는 흐름도이다. 이하, 도 7을 참조하여, 각 단계별로 수행되는 과정들을 상세히 설명하기로 한다.7 is a flowchart showing an operation related to a write operation of a flash memory. Hereinafter, referring to FIG. 7, processes performed in each step will be described in detail.

처음의 단계(101)에서는 일련의 섹터들에 대해 플래시 메모리 쓰기 요청을 수신한다. 상기 쓰기 요청에 응답하여, 단계(102)에서는 각 섹터 s에 대해, 섹터 s를 포함하는 논리페이지그룹을 결정한다. 논리페이지그룹의 결정을 위하여, 섹터 s의 섹터번호에 대한 간단한 연산으로 소속된 논리페이지그룹번호를 산출할 수 있다. 단계(103)에서는 상기 결정된 논리페이지그룹번호가 상기 페이지그룹버퍼에 이미 저장되어 있던 섹터들이 속한 논리페이지그룹번호와 동일한지 여부를 판단하게 된다. 판단 결과, 동일하지 않을 경우, 단계(104)에서는 기저장되어 있던 페이지그룹버퍼의 내용을 플래시 메모리에 기록하고 페이지그룹버퍼를 비운 뒤 단계(105)로 진행하게 된다. 단계(105)에서는 섹터 s의 내용을 페이지그룹버퍼 내의 해당 오프셋에 저장한다. 또한, 단계(103)에서 이미 페이지그룹버퍼가 비어 있는 경우에도 단계(105)가 바로 수행된다. 단계(106)에서는 쓰기 연산을 수행할 섹터가 더 남아 있는지를 판단한다. 만약, 더 남아 있으면 단계(102)로 되돌아가서 다음 섹터에 대해 기록 과정을 되풀이하고, 그렇지 않으면 단계(107)로 진행한다. 단계(107)에서는 상기 페이지그룹버퍼의 내용을 최종적으로 플래시 메모리에 기록하고 나서 쓰기 연산을 종료한다.The first step 101 receives a flash memory write request for a series of sectors. In response to the write request, step 102 determines, for each sector s, a logical page group containing sector s. In order to determine the logical page group, the logical page group number to which it belongs can be calculated by a simple operation on the sector number of sector s. In step 103, it is determined whether the determined logical page group number is the same as the logical page group number to which sectors already stored in the page group buffer belong. As a result of the determination, if it is not the same, in step 104, the contents of the previously stored page group buffer are written to the flash memory, the page group buffer is emptied, and the process proceeds to step 105. In step 105, the contents of sector s are stored at the corresponding offset in the page group buffer. Further, even if the page group buffer is already empty in step 103, step 105 is immediately performed. In step 106, it is determined whether there are more sectors to perform the write operation. If more remain, go back to step 102 to repeat the writing process for the next sector, otherwise proceed to step 107. In step 107, the contents of the page group buffer are finally written to the flash memory, and then the write operation is completed.

도 8은 도 7의 단계(104)와 단계(107)에서 페이지그룹버퍼의 내용을 플래시 메모리에 기록하는 방법을 보다 상세히 도시한 흐름도이다. 먼저, 단계(201)에서는 쓰기블록그룹(WBG) 내의 최초의 미사용 중인 물리페이지그룹을 배치시키고, 페이지그룹버퍼의 내용을 물리페이지그룹에 속한 물리페이지들에 동시에 기록한다. 이어서, 단계(202)에서는 현재의 WBG가 가득 찼는지를 판단하고, 만약 쓰기블록그룹에 미사용 중인 물리페이지그룹이 더 이상 없으면 단계(203)로 진행하고, 그렇지 않으면 플래시 메모리 기록을 종료하고 도 7의 쓰기 연산으로 복귀한다. 다음으로 단계(203)에서는, 쓰기블록그룹에 기록된 모든 논리페이지그룹들에 대해 상기 쓰기 블록그룹 내의 해당 물리페이지그룹에 대응되도록 한꺼번에 사상 테이블을 갱신한다. 단계(204)에서는 임의의 미사용 중인 물리블록그룹(BG)을 새로운 쓰기블록그룹으로 선정하고, 상기 새로운 쓰기블록그룹에 속한 물리블록들을 동시에 전기적으로 소거한다. 상기 임의의 미사용 중인 물리블록그룹은 사상 테이블을 검색함으로써 검출할 수 있다.FIG. 8 is a flowchart illustrating a method of writing the contents of a page group buffer to a flash memory in steps 104 and 107 of FIG. 7 in more detail. First, in step 201, the first unused physical page group in the write block group WBG is placed, and the contents of the page group buffer are simultaneously recorded in the physical pages belonging to the physical page group. Subsequently, in step 202, it is determined whether the current WBG is full, and if there are no physical page groups in use in the write block group any more, the process proceeds to step 203, otherwise, the flash memory recording is terminated and the process of FIG. Return to the write operation. Next, in step 203, the mapping table is updated all at once to correspond to the corresponding physical page group in the write block group for all logical page groups recorded in the write block group. In step 204, any unused physical block group BG is selected as a new write block group, and the physical blocks belonging to the new write block group are electrically erased at the same time. The arbitrary unused physical block group can be detected by searching the mapping table.

앞서 설명한 또 다른 실시예로서, 단계(205)에서는 미사용 중인 물리블록그룹의 개수가 소정의 임계치(threshold)에 도달했으면 단계(206)로 진행하고, 그렇지 않으면 플래시 메모리 기록을 종료하고 도 7의 쓰기 연산으로 복귀한다. 단계(206)에서는 사용 중인 물리블록그룹 중에서 유효한 물리페이지그룹을 가장 적게 포함하는 물리블록그룹을 선정한다. 상기 유효한 물리페이지그룹을 가장 적게 포함하는 물리블록그룹은 사상 테이블을 검색함으로써 검출할 수 있다. 단계(207)에서 상기 선정된 물리블록그룹으로부터 유효한 물리페이지그룹들만 상기 새로운 쓰기블록그룹으로 이동시키고, 상기 선정된 물리블록그룹을 미사용 중인 물리블록그룹으로 회수한다. 그리고 나서, 플래시 메모리 기록을 종료하고 도 7의 쓰기 연산으로 복귀한다.As another embodiment described above, in step 205, if the number of unused physical block groups reaches a predetermined threshold, the process proceeds to step 206; otherwise, the flash memory write ends and the write of FIG. Return to operation In step 206, the physical block group including the smallest valid physical page group among the physical block groups in use is selected. The physical block group containing the least number of valid physical page groups can be detected by searching the mapping table. In step 207, only valid physical page groups from the selected physical block group are moved to the new write block group, and the selected physical block group is recovered to an unused physical block group. Then, the flash memory write ends and returns to the write operation of FIG.

도 9는 플래시 메모리의 읽기 연산에 관한 동작을 나타내는 흐름도이다. 이하, 도 9를 참조하여, 각 단계별로 수행되는 과정들을 상세히 설명하기로 한다.9 is a flowchart showing an operation related to a read operation of a flash memory. Hereinafter, referring to FIG. 9, processes performed in each step will be described in detail.

먼저, 단계(301)에서는 일련의 섹터들에 대해 플래시 메모리 읽기 요청을 수신한다. 이어서, 단계(302)에서는 각 섹터 s에 대해, 섹터 s를 포함하는 논리페이지그룹을 결정한다. 이 단계에서는 섹터 s의 섹터번호에 대한 간단한 연산으로 소 속된 논리페이지그룹번호를 산출할 수 있다. 단계(303)에서는 일차적으로 쓰기블록그룹(WBG)에서 상기 논리페이지그룹에 대응되는 물리페이지그룹을 검색한다. 검색 결과, 대응되는 물리페이지그룹이 존재하는 경우에는 단계(305)에서 해당 물리페이지를 판독하고, 만약 물리페이지그룹이 존재하지 않는 경우에는 사상 테이블에서 상기 논리페이지그룹에 대응되는 물리페이지그룹을 검색하는 단계(304)를 추가로 거치게 된다. 단계(305)에서는 상기 물리페이지그룹에서 섹터 s에 해당하는 물리페이지의 데이터와 상기 데이터와 연관된 부가정보를 동시에 판독한다. 마지막으로, 단계(306)에서는 읽기 연산을 수행할 섹터가 더 남아 있는지를 판단하여, 만약 더 남아 있으면 단계(302)로 되돌아가서 다음 섹터에 대하여 판독 과정을 되풀이하고, 그렇지 않으면 읽기 연산을 종료한다.First, step 301 receives a flash memory read request for a series of sectors. Subsequently, in step 302, for each sector s, a logical page group including the sector s is determined. In this step, the logical page group number belonging to the sector can be calculated by a simple operation on the sector number of sector s. In step 303, a physical page group corresponding to the logical page group is first searched for in the write block group WBG. As a result of the search, if the corresponding physical page group exists, the corresponding physical page is read in step 305. If the physical page group does not exist, the physical page group corresponding to the logical page group is searched in the mapping table. There is an additional step 304. In step 305, data of a physical page corresponding to sector s in the physical page group and additional information associated with the data are simultaneously read. Finally, in step 306 it is determined whether there are more sectors to perform the read operation, and if so, the process returns to step 302 to repeat the read process for the next sector, otherwise terminates the read operation. .

한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 예컨대, 본 발명이 속하는 기술분야의 당업자는, 본 발명의 실시예가 페이지그룹 단위로 사상을 수행하는 것에 국한되지 않고, 2개 이상의 페이지그룹을 그룹화하여 사상을 수행함으로써 사상 테이블의 크기를 축소하는 것에도 적용 가능함을 쉽게 알 수 있을 것이다. 또한, 본 발명에서는 NAND형 플래시 메모리에 대한 실시예를 기술하고 있지만, 멀티-플레인 구조를 가지는 다른 종류의 플래시 메모리에도 본 발명의 원리를 적용할 수 있을 것이다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. For example, those skilled in the art to which the present invention pertains are not limited to performing the mapping in units of page groups, and reducing the size of the mapping table by grouping two or more page groups to perform the mapping. It will be readily appreciated that it is also applicable. In addition, although the present invention describes an embodiment for a NAND type flash memory, the principles of the present invention can be applied to other kinds of flash memories having a multi-plane structure.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해 정 해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the scope of the following claims, but also by those equivalent to the scope of the claims.

상술한 바와 같이, 본 발명에 따르면 플래시 메모리가 n개의 플레인으로 구성되어 있는 경우 최대 n개의 물리블록 또는 물리페이지에 대해 동시에 명령을 수행하는 기능을 활용함으로써 최대 n배의 성능이 향상된 플래시 변환 계층을 구현할 수 있다.  As described above, according to the present invention, when the flash memory is composed of n planes, a flash conversion layer having a performance of up to n times is improved by utilizing a function of simultaneously executing a command for up to n physical blocks or physical pages. Can be implemented.

또한, 본 발명에 따르면 데이터 및 상기 데이터와 연관된 부가정보가 반드시 동일한 물리페이지 내에 저장되어야 한다는 제약을 극복하면서도 성능의 저하 없이 플래시 메모리 쓰기/읽기 연산을 구현할 수 있다. According to the present invention, a flash memory write / read operation can be implemented without compromising performance while overcoming the constraint that data and additional information associated with the data must be stored in the same physical page.

또한, 본 발명에 따르면 사상 테이블의 갱신은 한 물리페이지그룹의 기록이 수행될 때마다 매번 수행되지 않으며, 쓰기블록그룹 내의 모든 물리페이지그룹들의 기록이 완료되는 시점에 상기 쓰기블록그룹에 기록된 모든 논리페이지그룹들에 대해 한꺼번에 수행됨으로써, 불필요한 플래시 메모리의 접근을 최소화할 수 있는 효과를 얻을 수 있다.In addition, according to the present invention, updating of the mapping table is not performed every time a write of one physical page group is performed, and all of the writes in the write block group are completed at the time when the recording of all the physical page groups in the write block group is completed. By being performed on the logical page groups at once, it is possible to obtain an effect of minimizing unnecessary access of the flash memory.

마지막으로, 본 발명에 따르면 미사용 중으로 회수된 물리블록그룹에 대한 전기적 소거는 즉시 수행되지 않으며, 상기 회수된 물리블록그룹이 새로운 쓰기블록그룹으로 선정되는 시점에 수행된다. 따라서, 이것 역시 불필요한 플래시 메모리의 접근을 최소화할 수 있게 된다.
Finally, according to the present invention, the electrical erasure of the physical block group recovered to the unused state is not performed immediately, but at the time when the recovered physical block group is selected as a new write block group. Thus, this too can minimize the access of unnecessary flash memory.

Claims (20)

멀티-플레인 구조를 갖춘 플래시 메모리의 구성 방법에 있어서,In the method of configuring a flash memory having a multi-plane structure, 각각의 플레인이 복수 개의 물리블록을 포함하는 복수 개의 플레인을 제공하는 단계;Providing a plurality of planes, each plane comprising a plurality of physical blocks; 상기 복수 개의 플레인 각각에서 하나씩 선택된 물리블록들을 포함하는 물리블록그룹을 제공하는 단계;Providing a physical block group including physical blocks selected one from each of the plurality of planes; 상기 물리블록그룹에 포함된 상기 물리블록들 각각이 복수 개의 물리페이지를 포함하고, 상기 물리블록그룹에 포함된 상기 물리블록들 각각에서 하나씩 선택된 물리페이지들을 포함하는 물리페이지그룹을 제공하는 단계;Providing a physical page group, wherein each physical block included in the physical block group includes a plurality of physical pages, and includes a physical page selected one from each of the physical blocks included in the physical block group; 복수 개의 논리페이지그룹을 제공하는 단계; 및Providing a plurality of logical page groups; And 상기 물리페이지그룹과 상기 논리페이지그룹 간의 사상정보를 포함하는 사상 테이블을 제공하는 단계Providing a mapping table including mapping information between the physical page group and the logical page group 를 포함하는 플래시 메모리의 구성 방법.Configuration method of the flash memory comprising a. 제1항에 있어서, 각각의 물리블록그룹에 포함된 상기 물리블록들은 동시에 전기적으로 소거가 가능한 플래시 메모리의 구성 방법.The method of claim 1, wherein the physical blocks included in each physical block group are electrically erasable at the same time. 삭제delete 제1항에 있어서, 상기 각각의 물리페이지는 데이터와 부가정보를 포함하고, 상기 데이터에 연관된 상기 부가정보는 상기 물리페이지가 위치하는 물리페이지그룹에 포함된 임의의 물리페이지에 저장되는 플래시 메모리 구성 방법.The flash memory structure of claim 1, wherein each physical page includes data and additional information, and the additional information associated with the data is stored in an arbitrary physical page included in a physical page group in which the physical page is located. Way. 제1항에 있어서, 상기 물리페이지그룹에 포함된 상기 물리페이지들은 동시에 판독이 가능한 플래시 메모리의 구성 방법.The method of claim 1, wherein the physical pages included in the physical page group can be read simultaneously. 제1항에 있어서, 상기 물리페이지그룹에 포함된 상기 물리페이지들은 동시에 기록이 가능한 플래시 메모리의 구성 방법.The method of claim 1, wherein the physical pages included in the physical page group can be written simultaneously. 기록 데이터를 플래시 메모리에 기록하는 방법에 있어서,In a method of recording recorded data into a flash memory, 램(RAM: Random Access Memory)에 페이지그룹버퍼를 제공하는 단계;Providing a page group buffer in a random access memory (RAM); 상기 기록 데이터에 대응하는 논리페이지그룹번호를 결정하는 단계;Determining a logical page group number corresponding to the record data; 상기 결정된 논리페이지그룹 번호가 상기 페이지그룹버퍼에 저장된 저장 데이터에 대응하는 논리페이지그룹번호와 동일하지 않으면, 상기 저장 데이터를 상기 플래시 메모리에 기록하고 상기 기록 데이터를 상기 페이지그룹버퍼에 저장하는 단계; 및If the determined logical page group number is not the same as the logical page group number corresponding to the stored data stored in the page group buffer, writing the stored data to the flash memory and storing the recorded data in the page group buffer; And 상기 결정된 논리페이지그룹번호가 페이지그룹버퍼에 저장된 데이터에 대응하는 논리페이지그룹번호와 동일하거나 상기 페이지그룹버퍼가 비어 있으면, 상기 기록 데이터를 상기 페이지그룹버퍼에 저장하는 단계Storing the recorded data in the page group buffer if the determined logical page group number is the same as the logical page group number corresponding to the data stored in the page group buffer or the page group buffer is empty. 를 포함하는 플래시 메모리 기록 방법.Flash memory recording method comprising a. 데이터를 플래시 메모리에 기록하는 방법에 있어서,In the method of writing data to flash memory, 상기 플래시 메모리는 복수 개의 물리블록그룹으로 분할되고, 상기 물리블록그룹은 복수 개의 물리블록으로 구성되고, 상기 물리블록그룹은 복수 개의 물리페이지그룹으로 분할되고, 상기 물리페이지그룹은 복수 개의 물리페이지로 구성되며, 상기 물리페이지그룹의 사상정보를 포함하는 사상 테이블을 포함하고,The flash memory is divided into a plurality of physical block groups, the physical block group is composed of a plurality of physical blocks, the physical block group is divided into a plurality of physical page groups, and the physical page group is divided into a plurality of physical pages. A mapping table including mapping information of the physical page group, 램(RAM:Random Access Memory)에 페이지그룹버퍼를 제공하는 단계;Providing a page group buffer in random access memory (RAM); 상기 데이터를 상기 페이지그룹버퍼에 저장하는 단계; 및Storing the data in the page group buffer; And 상기 페이지그룹버퍼에 저장된 상기 데이터를 상기 플래시 메모리에 기록하는 단계를 포함하고,Writing the data stored in the page group buffer to the flash memory, 상기 페이지그룹버퍼에 저장된 상기 데이터를 상기 플래시 메모리에 기록하는 단계는,The step of writing the data stored in the page group buffer to the flash memory, 소정의 물리블록그룹인 쓰기블록그룹을 선정하는 단계;Selecting a write block group that is a predetermined physical block group; 상기 쓰기블록그룹 내의 최초의 미사용 중인 물리페이지그룹을 배치시키고, 상기 페이지그룹버퍼의 내용을 상기 물리페이지그룹에 속한 물리페이지들에 기록하는 단계;Disposing the first unused physical page group in the write block group, and writing the contents of the page group buffer to physical pages belonging to the physical page group; 상기 쓰기블록그룹에 기록된 모든 논리페이지그룹들에 대해 상기 쓰기블록그룹 내의 해당 물리페이지그룹에 대응되도록 사상 테이블을 갱신하는 단계; 및Updating a mapping table for all logical page groups recorded in the write block group to correspond to a corresponding physical page group in the write block group; And 임의의 미사용 중인 물리블록그룹을 새로운 쓰기블록그룹으로 선정하고, 상기 새로운 쓰기블록그룹에 속한 물리블록들을 동시에 전기적으로 소거하는 단계Selecting any unused physical block group as a new write block group and electrically erasing physical blocks belonging to the new write block group simultaneously 를 포함하는 플래시 메모리 기록 방법.Flash memory recording method comprising a. 제8항에 있어서, 미사용 중인 물리블록그룹의 개수가 소정의 임계치에 도달하면, 사용 중인 물리블록그룹 중에서 유효한 물리페이지그룹을 가장 적게 포함하는 물리블록그룹을 선정하고, 상기 선정된 물리블록그룹으로부터 유효한 물리페이지그룹들만 상기 새로운 쓰기블록그룹으로 이동시키고, 상기 선정된 물리블록그룹을 미사용 중인 물리블록그룹으로 회수하는 단계9. The method of claim 8, wherein when the number of unused physical block groups reaches a predetermined threshold, a physical block group including the least valid physical page group among the used physical block groups is selected, and from the selected physical block group, Only valid physical page groups are moved to the new write block group, and the selected physical block group is recovered to an unused physical block group. 를 더 포함하는 플래시 메모리 기록 방법.Flash memory recording method further comprising. 제8항에 있어서, 상기 쓰기블록그룹에 미사용 중인 물리페이지그룹이 더 남아 있거나 또는 미사용 중인 물리블록그룹의 개수가 소정의 임계치에 미달되면, 상기 페이지그룹버퍼의 내용을 상기 플래시 메모리에 기록하는 단계를 종료하는 플래시 메모리 기록 방법.10. The method of claim 8, further comprising: writing the contents of the page group buffer to the flash memory when there are still more unused physical page groups in the write block group or the number of unused physical block groups falls below a predetermined threshold. Flash memory recording method to end the process. 제8항에 있어서, 상기 사상 영역의 갱신은, 상기 쓰기블록그룹 내의 모든 물리페이지그룹들의 기록이 완료되는 시점에 상기 쓰기블록그룹에 기록된 모든 논리페이지그룹들에 대해 한꺼번에 수행되는 플래시 메모리 기록 방법.9. The flash memory writing method of claim 8, wherein updating of the mapping area is performed all at once on all logical page groups written to the write block group at the time when writing of all physical page groups in the write block group is completed. . 제8항에 있어서, 상기 미사용 중으로 회수된 물리블록그룹에 대한 전기적 소거는, 상기 회수된 물리블록그룹이 새로운 쓰기블록그룹으로 선정되는 시점에 수행되는 플래시 메모리 기록 방법.9. The flash memory writing method of claim 8, wherein the electrical erasure of the physical block group recovered during the unused operation is performed at the time when the recovered physical block group is selected as a new write block group. 논리페이지그룹의 내용이 기록되는 데이터 영역과, 상기 데이터 영역에 기록된 논리페이지그룹에 대한 사상정보를 가지는 사상 영역을 포함하는 플래시 메모리의 판독 방법에 있어서,A read method of a flash memory comprising a data area in which contents of a logical page group are recorded, and a mapping area having mapping information on the logical page group recorded in the data area, 상기 플래시 메모리는 복수 개의 물리블록그룹으로 분할되고, 상기 물리블록그룹은 복수 개의 물리블록으로 구성되고, 상기 물리블록그룹은 복수 개의 물리페이지그룹으로 분할되고, 상기 물리페이지그룹은 복수 개의 물리페이지로 구성되며,The flash memory is divided into a plurality of physical block groups, the physical block group is composed of a plurality of physical blocks, the physical block group is divided into a plurality of physical page groups, and the physical page group is divided into a plurality of physical pages. Is composed, 일련의 섹터들에 대한 플래시 메모리 읽기 요청을 수신하는 단계와;Receiving a flash memory read request for a series of sectors; 상기 읽기 요청에 응답하여 상기 섹터를 포함하는 논리페이지그룹을 산출하는 단계;Calculating a logical page group including the sector in response to the read request; 쓰기블록그룹에서 상기 논리페이지그룹이 대응되는 물리페이지그룹을 검색하는 단계; 및Searching for a physical page group to which the logical page group corresponds in a write block group; And 상기 대응되는 물리페이지그룹을 판독하는 단계Reading the corresponding physical page group 를 포함하는 플래시 메모리 판독 방법.Flash memory reading method comprising a. 제13항에 있어서, 상기 검색 결과 대응되는 물리페이지그룹이 존재하지 않으면, 상기 사상 테이블에서 상기 논리페이지그룹에 대응되는 물리페이지그룹을 검색 하고, 상기 대응되는 물리페이지그룹을 판독하는 단계를 더 포함하는 플래시 메모리 판독 방법.15. The method of claim 13, further comprising: searching for a physical page group corresponding to the logical page group in the mapping table and reading the corresponding physical page group if the corresponding physical page group does not exist as a result of the search. Flash memory reading method. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제1항, 제2항, 및 제4항 내지 제6항 중에서 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1, 2, and 4-6.
KR1020020052349A 2002-08-31 2002-08-31 Management Scheme for Flash Memory with the Multi-Plane Architecture KR100914646B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020052349A KR100914646B1 (en) 2002-08-31 2002-08-31 Management Scheme for Flash Memory with the Multi-Plane Architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020052349A KR100914646B1 (en) 2002-08-31 2002-08-31 Management Scheme for Flash Memory with the Multi-Plane Architecture

Publications (2)

Publication Number Publication Date
KR20020092261A KR20020092261A (en) 2002-12-11
KR100914646B1 true KR100914646B1 (en) 2009-08-28

Family

ID=27728081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020052349A KR100914646B1 (en) 2002-08-31 2002-08-31 Management Scheme for Flash Memory with the Multi-Plane Architecture

Country Status (1)

Country Link
KR (1) KR100914646B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9484104B2 (en) 2014-03-04 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory system with block managing unit and method of operating the same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100457812B1 (en) * 2002-11-14 2004-11-18 삼성전자주식회사 Flash memory, access apparatus and method using flash memory
US7089349B2 (en) * 2003-10-28 2006-08-08 Sandisk Corporation Internal maintenance schedule request for non-volatile memory system
KR100526190B1 (en) 2004-02-06 2005-11-03 삼성전자주식회사 Remapping method for flash memory
KR100684942B1 (en) * 2005-02-07 2007-02-20 삼성전자주식회사 Adaptive flash memory control device with multiple mapping schemes and flash memory system havintg the same
KR100630537B1 (en) 2005-08-09 2006-10-02 주식회사 하이닉스반도체 Page buffer circuit of flash memory device with a function for programming dual pages and program operation method of the same
KR100714873B1 (en) * 2005-09-06 2007-05-07 삼성전자주식회사 Method of and apparatus for updating data in non-volatile memory
KR100761374B1 (en) * 2005-12-22 2007-09-27 엠텍비젼 주식회사 Method and Apparatus for controlling flash memory
KR100843135B1 (en) * 2006-11-20 2008-07-02 삼성전자주식회사 Apparatus and method for managing nonvolatile memory
KR101468026B1 (en) * 2007-05-14 2014-12-02 삼성전자주식회사 memory cell programming method and semiconductor device
KR100924021B1 (en) * 2007-10-02 2009-10-28 주식회사 휴원 Flash memory mapping management method
KR100908542B1 (en) 2007-12-24 2009-07-20 주식회사 하이닉스반도체 Nonvolatile Memory Device and Its Program Method
KR101022001B1 (en) * 2008-12-08 2011-03-17 주식회사 이스트후 Flash memory system and method for managing flash memory
KR20100107609A (en) 2009-03-26 2010-10-06 삼성전자주식회사 Resistive memory device, memory system including the same, and writing method of the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0420339A2 (en) * 1989-09-29 1991-04-03 Koninklijke Philips Electronics N.V. Multi-plane random access memory system
JPH0562485A (en) * 1991-09-05 1993-03-12 Hitachi Building Syst Eng & Service Co Ltd Rewriting device for eeprom of controller
KR970003248A (en) * 1995-06-30 1997-01-28 김주용 Erasing Method of Flash Memory Device
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR20030054907A (en) * 2001-12-26 2003-07-02 주식회사 하이닉스반도체 Block address register for multi plane

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0420339A2 (en) * 1989-09-29 1991-04-03 Koninklijke Philips Electronics N.V. Multi-plane random access memory system
JPH0562485A (en) * 1991-09-05 1993-03-12 Hitachi Building Syst Eng & Service Co Ltd Rewriting device for eeprom of controller
KR970003248A (en) * 1995-06-30 1997-01-28 김주용 Erasing Method of Flash Memory Device
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR20030054907A (en) * 2001-12-26 2003-07-02 주식회사 하이닉스반도체 Block address register for multi plane

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9484104B2 (en) 2014-03-04 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory system with block managing unit and method of operating the same

Also Published As

Publication number Publication date
KR20020092261A (en) 2002-12-11

Similar Documents

Publication Publication Date Title
US6034897A (en) Space management for managing high capacity nonvolatile memory
US6262918B1 (en) Space management for managing high capacity nonvolatile memory
US7624239B2 (en) Methods for the management of erase operations in non-volatile memories
US7783845B2 (en) Structures for the management of erase operations in non-volatile memories
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
EP1410399B1 (en) Method and apparatus for decreasing block write operation times performed on nonvolatile memory
JP4058322B2 (en) Memory card
US6081878A (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP4399008B2 (en) Non-volatile memory and method with multi-stream update tracking
JP4787266B2 (en) Scratch pad block
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8250286B2 (en) Block management method, and storage system and controller using the same
US20080270680A1 (en) Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
US20050055497A1 (en) Faster write operations to nonvolatile memory by manipulation of frequently-accessed sectors
JP2008524710A (en) Non-volatile memory and method with improved indexing for scratchpads and update blocks
KR100914646B1 (en) Management Scheme for Flash Memory with the Multi-Plane Architecture
JP2003058417A (en) Storage device
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP4888333B2 (en) Flash disk device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120824

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130826

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150825

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160825

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170825

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee