KR101119866B1 - Flash memory comprising flexible size flash memory per partition and memory system using thereof - Google Patents

Flash memory comprising flexible size flash memory per partition and memory system using thereof Download PDF

Info

Publication number
KR101119866B1
KR101119866B1 KR1020100035439A KR20100035439A KR101119866B1 KR 101119866 B1 KR101119866 B1 KR 101119866B1 KR 1020100035439 A KR1020100035439 A KR 1020100035439A KR 20100035439 A KR20100035439 A KR 20100035439A KR 101119866 B1 KR101119866 B1 KR 101119866B1
Authority
KR
South Korea
Prior art keywords
flash memory
memory
partition
block
log
Prior art date
Application number
KR1020100035439A
Other languages
Korean (ko)
Other versions
KR20110115871A (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 KR1020100035439A priority Critical patent/KR101119866B1/en
Publication of KR20110115871A publication Critical patent/KR20110115871A/en
Application granted granted Critical
Publication of KR101119866B1 publication Critical patent/KR101119866B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Abstract

파티션별로 플렉시블한 크기의 로그블록을 가지는 플래시 메모리 및 메모리시스템이 개시된다. 메모리 시스템은 파일 시스템과, 파일 시스템으로부터 논리적어드레스를 입력받고, 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 메모리 변환 레이어와, 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함하며,플래시 메모리는, 복수의 파티션들에 의해 분할되며, 분할된 각 파티션은 데이터 저장을 위한 데이터 블록 영역과 상기 데이터 블록 영역의 중복쓰기를 위한 로그블록 영역을 각각 가짐으로써, 메모리 시스템의 성능을 향상시킬 수 있다.A flash memory and a memory system having a log block of a flexible size for each partition are disclosed. The memory system includes a file system, a flash memory translation layer that receives a logical address from the file system, converts a logical address into a physical address, and a flash memory that receives the converted physical address, wherein the flash memory includes a plurality of partitions. Each partition partitioned by each of the two partitions may have a data block area for storing data and a log block area for overwriting the data block area, thereby improving performance of the memory system.

Description

파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템{FLASH MEMORY COMPRISING FLEXIBLE SIZE FLASH MEMORY PER PARTITION AND MEMORY SYSTEM USING THEREOF}FLASH MEMORY COMPRISING FLEXIBLE SIZE FLASH MEMORY PER PARTITION AND MEMORY SYSTEM USING THEREOF}

본 발명은 플래시 메모리에 관한 것으로, 더욱 상세하게는 파티션별로 플렉시블한 크기의 로그블록을 포함하는 플래시 메모리 및 메모리 시스템에 관한 것이다.The present invention relates to a flash memory, and more particularly, to a flash memory and a memory system including a log block of a flexible size for each partition.

최근 디지털 카메라, MP3 플레이어, 핸드폰, PDA 등과 같은 휴대 장치가 많이 사용되고 있다. 플래시 메모리는 저전력, 비휘발성, 고집적 등의 특성으로 인해 이러한 휴대 장치에 많이 사용되고 있다. 특히, 플래시 메모리의 용량이 크게 늘어나면서 디스크를 플래시 메모리로 대체하는 경향이 많아지고 있다. 플래시 메모리는 물리적 특성으로 인하여 쓰기 전 소거(erase-before-write) 연산을 수행한다. 즉, 플래시 메모리는 섹터(sector, 보통 512 바이트)에 쓰기 동작을 수행할 경우, 그 섹터가 속한 블록(block)을 소거한 다음에, 쓰기 동작을 수행한다. 따라서 플래시 메모리는, 섹터에 덮어 쓰기(over write)를 수행할 수 있는 하드 디스크에 비하여, 동일한 I/O에 대해 더 많은 시간을 필요로 한다. 또한, 플래시 메모리는 동일한 블록에 대해 10만 번 정도의 소거 동작을 수행하면, 더 이상 사용할 수 없다. 따라서 플래시 메모리는 특정 블록에 대해 소거 동작이 반복되는 것을 피해야 하며, 많은 수의 페이지 복사 및 블록 소거 동작은 전체 메모리 시스템의 성능을 저해하는 요인이 되고 있다.Recently, portable devices such as digital cameras, MP3 players, mobile phones, PDAs, and the like have been widely used. Flash memory is widely used in such portable devices because of its low power, nonvolatile and high integration characteristics. In particular, as the capacity of a flash memory increases significantly, there is a tendency to replace a disk with a flash memory. Flash memory performs erase-before-write operations due to physical characteristics. That is, when performing a write operation on a sector (typically 512 bytes), the flash memory erases a block to which the sector belongs, and then performs a write operation. Thus, flash memory requires more time for the same I / O than hard disks capable of overwriting sectors. In addition, the flash memory may not be used any more when 100,000 erase operations are performed on the same block. Therefore, the flash memory should avoid repeating an erase operation for a specific block, and a large number of page copy and block erase operations are detrimental to the performance of the entire memory system.

본 발명은 상기 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은, 플래시 메모리내의 각 파티션이 요구하는 성능의 차이를 고려하여 블록 관리의 효율성을 높이고 메모리 시스템의 성능을 개선시킬 수 있는 플래시 메모리 및 메모리시스템을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to consider a difference in performance required by each partition in a flash memory, thereby improving the efficiency of block management and improving the performance of a memory system. And a memory system.

상기의 목적을 달성하기 위하여 본 발명에 따른 메모리 시스템은, 파일 시스템과, 파일 시스템으로부터 논리적 어드레스를 입력받고, 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 메모리 변환 레이어와, 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함하며, 플래시 메모리는, 복수의 파티션들에 의해 분할되며, 분할된 각 파티션은 데이터 저장을 위한 데이터 블록 영역과 데이터 블록영역의 중복쓰기를 위한 로그 블록 영역을 각각 가지는 것을 특징으로 한다.In order to achieve the above object, a memory system according to the present invention includes a file system, a flash memory conversion layer for receiving a logical address from a file system, converting a logical address into a physical address, and a flash for receiving the converted physical address. The flash memory may be divided by a plurality of partitions, and each partition may have a data block area for storing data and a log block area for overwriting the data block area.

로그 블록 영역의 크기는, 파티션별로 플랙시블하게 할당되며, 복수의 파티션들은, 제1셀 타입의 메모리 영역과, 제2셀 타입의 메모리 영역으로 나누어진다.The size of the log block area is flexibly allocated for each partition, and the plurality of partitions are divided into a memory area of a first cell type and a memory area of a second cell type.

또한, 제1셀 타입의 메모리 영역은, SLC(Single Level Cell) 타입이며, 제2셀 타입의 메모리 영역은, MLC(Multi Level Cell) 타입으로, 제1셀 타입의 메모리영역에 저장되는 데이터는, 빈번한 업데이트가 이루어지는 데이터인 것을 특징으로 한다. In addition, the memory area of the first cell type is a SLC (Single Level Cell) type, and the memory area of the second cell type is a MLC (Multi Level Cell) type, and the data stored in the memory area of the first cell type is The data may be updated frequently.

본 발명의 다른 실시예에 따르면, 플래시 메모리가 제공되는데, 상기 플래시메모리는 복수의 파티션들에 의해 분할되며, 분할된 각 파티션은, 데이터 저장을 위한 데이터 블록 영역과 데이터 블록 영역의 중복쓰기(overwrite)를 위한 로그 블록 영역을 각각 가지는 것을 특징으로 한다.According to another embodiment of the present invention, a flash memory is provided, wherein the flash memory is partitioned by a plurality of partitions, each partition being overwritten with a data block area and a data block area for data storage. It has a log block area for each).

로그 블록 영역의 크기는, 파티션별로 플랙시블하게 할당되며, 복수의 파티션들은, 제1셀 타입의 메모리 영역과, 제2셀 타입의 메모리 영역으로 나누어진다.The size of the log block area is flexibly allocated for each partition, and the plurality of partitions are divided into a memory area of a first cell type and a memory area of a second cell type.

또한, 제1셀 타입의 메모리 영역은, SLC(Single Level Cell) 타입이며, 제2셀 타입의 메모리 영역은, MLC(Multi Level Cell) 타입으로, 제1셀 타입의 메모리영역에 저장되는 데이터는, 빈번한 업데이트가 이루어지는 데이터인 것을 특징으로 한다.In addition, the memory area of the first cell type is a SLC (Single Level Cell) type, and the memory area of the second cell type is a MLC (Multi Level Cell) type, and the data stored in the memory area of the first cell type is The data may be updated frequently.

본 발명에 따르면, 플래시 메모리를 복수의 파티션들로 구분하고, 각 파티션이 요구하는 성능의 차이를 고려하여 로그 블로의 크기를 플랙시블하게 함으로써, 메모리 시스템의 성능을 향상시킬 수 있다.According to the present invention, it is possible to improve the performance of a memory system by dividing a flash memory into a plurality of partitions and making the size of the log blow flexible by considering a difference in performance required by each partition.

도 1은 본 발명의 일 실시예에 따른 플래시 메모리의 구조를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리의 구조를 도시한 도면이다.
도 3은 본 발명에 따른 플래시 메모리를 사용하는 메모리 시스템의 하드웨어 구조를 보여주는 블록도이다.
도 4는 본 발명에 따른 플래시 메모리를 사용하는 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다.
도 5은 본 발명에 따른 혼합 맵핑 방법을 수행하는 메모리 시스템을 보여주는 블록도이다.
도 6는 도 5에 도시된 메모리 시스템의 혼합 맵핑 방법을 예시적으로 설명하기 위한 다이어그램이다.
1 is a diagram illustrating a structure of a flash memory according to an embodiment of the present invention.
2 illustrates a structure of a flash memory according to an embodiment of the present invention.
3 is a block diagram showing a hardware structure of a memory system using a flash memory according to the present invention.
4 is a block diagram showing a software structure of a memory system using a flash memory according to the present invention.
5 is a block diagram illustrating a memory system for performing the mixed mapping method according to the present invention.
FIG. 6 is a diagram for exemplarily describing a mixed mapping method of the memory system illustrated in FIG. 5.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art can easily implement the technical idea of the present invention. .

도 1은 본 발명의 일 실시예에 따른 플래시 메모리(100)의 구조를 도시한 도면으로, 좌측의 (a)는 플래시 메모리(100)를 복수의 파티션들(partition_0 ~ partition_n)로 분할한 것으로 파티션별로 일정한 크기의 로그 블록 영역을 가진 경우를, 우측의 (b)는 플래시 메모리(100)를 복수의 파티션들(partition_0 ~ partition_n)로 분할한 것으로 파티션별로 플렉시블(flexible)한 크기의 로그 블록영역을 가진 경우를 도시하고 있다. 분할된 각 파티션은 로그 블록 영역과 데이터영역 블록을 가지고 있다.FIG. 1 is a diagram illustrating a structure of a flash memory 100 according to an embodiment of the present invention. In FIG. 1A, the flash memory 100 is divided into a plurality of partitions partition_0 to partition_n. In the case of having a log block area having a predetermined size for each, (b) on the right is a partition of the flash memory 100 into a plurality of partitions (partition_0 to partition_n), and a log block area having a flexible size for each partition. The case is shown. Each partition has a log block area and a data area block.

(a)의 경우 플래시 메모리(100)에는 각 파티션의 영역의 크기에 비례하여 로그 블록 영역이 할당됨으로써, 전체적으로 균일한 성능을 구현하도록 하고 있다. 그러나, (a)와 같은 경우는 로그 블록의 수가 적은 특정한 파티션에 대해 중복쓰기(업데이터)가 빈번하게 일어나는 경우 많은 수의 페이지 복사 및 블록 소거 동작에 의해 전체 메모리 시스템의 성능이 저하될 수 있다. In the case of (a), the log memory area is allocated to the flash memory 100 in proportion to the size of the area of each partition, thereby implementing a uniform performance as a whole. However, in case of (a), when overwrite (up data) occurs frequently for a specific partition having a small number of log blocks, the performance of the entire memory system may be degraded by a large number of page copy and block erase operations.

따라서, (b)와 같은 다른 실시예에 의한 플래시 메모리(100)의 구조가 제안된다. (b)에 의하면, 플래시 메모리(100)의 로그 블록 영역의 크기는 각 파티션에 의해 요구되는 성능의 차이에 의해 할당되며, 할당되는 로글 블록 영역의 크기는 파티션별로 플렉시블하도록 구성된다. 여기서, 플렉시블(flexible)이라 함은 파티션별로 요구되는 성능에 따라 할당되는 로그 블록의 크기가 달라질 수 있다는 것을 의미하며, 요구되는 성능에 따라 할당되는 로그 블록의 크기가 달라진다는 의미는 업데이트(즉, 중복쓰기)와 관련된 것으로, 중복쓰기가 빈번하게 일어나는 경우 더 많은 수의 로그블록을 할당한다는 것을 의미한다. 이와 같이 로그 블록의 크기를 파티션별로 플렉시블하게 할당함으로써, 즉 빈번하게 업데이트가 이루어지는 파티션에는 더 많은 수의 로그 블록을 할당함으로써, 페이지 복사 및 블록 소거 동작의 횟수를 줄여 메모리 시스템의 성능을 향상시킬 수 있다. 이러한 도 1의 구조는 MLC타입이나 SLC 타입의 메모리에 모두 적용될 수 있다.Therefore, the structure of the flash memory 100 according to another embodiment as shown in (b) is proposed. According to (b), the size of the log block area of the flash memory 100 is allocated by the difference in performance required by each partition, and the size of the allocated block area is configured to be flexible for each partition. Here, the term "flexible" means that the size of the log block to be allocated may vary according to the performance required for each partition, and that the size of the allocated log block varies according to the required performance is updated (that is, Overwrite) means that a larger number of log blocks are allocated when overwrites occur frequently. In this way, by flexibly allocating the size of log blocks to each partition, that is, by allocating a larger number of log blocks to frequently updated partitions, the performance of the memory system can be improved by reducing the number of page copy and block erase operations. have. The structure of FIG. 1 may be applied to both MLC type and SLC type memories.

한편, 도 2는 본 발명의 일 실시예에 따른 플래시 메모리(100)의 구조로, 이종셀 타입을 지원하는 플래시 메모리를 도시한 도면이다.2 is a diagram illustrating a flash memory supporting heterogeneous cell types as a structure of a flash memory 100 according to an exemplary embodiment of the present invention.

도 2를 참조하면, 플래시 메모리(100)는 4개의 파티션들(partition_0 ~ partition_3)으로 분할되어 있으며, 각 파티션은 로그 블록 영역과 데이터 블록 영역으로 구분된다. 한편, 제1 파티션(partition_0)의 데이터 블록 영역은 SLC(Single Level Cell) 타입을, 제2 파티션(partition_2) 내지 제4 파티션(partition_3)의 데이터 블록 영역은 MLC(Multi Level Cell) 타입을 도시하고 있다. 플래시 메모리는 하드웨어 특성상 하나의 셀이 나타낼 수 있는 비트의 수에 따라 그 타입이 나누어지는바, 하나의 셀을 통해 하나의 비트를 나타낼 수 있는 타입을 SLC 타입, 하나의 셀을 통해 복수의 비트를 나타낼 수 있는 타입을 MLC 타입이라 한다. SLC 타입은 MLC 타입에 비해 빠른 읽기/쓰기 성능을 가지며, 동일한 물리적 크기일 경우 MLC 타입에 비해 저장 용량이 적다. 반대로, MLC 타입은 SLC 타입에 비해 읽기/쓰기 성능은 낮으나, 동일한 물리적 크기일 경우 SLC 타입에 비해 저장 용량이 많다. 따라서, 본 발명의 경우 제1 파티션(partition_0)의 데이터 블록영역에는 빈번하게 업데이트(중복쓰기)가 요구되는, 예컨대 휴대폰의 경우 안드로이드 OS나 기지국 데이터 등을 저장하며, 빈번한 업데이트를 위해 로그 블록의 갯수를 더 많이 할당한다. 반면, 제2 파티션(partition_1) 내지 제4 파티션(partition_3)에는 한번 읽으면 이후에는 업데이트가 일어나지 않는 OS 이미지와 같은 데이터들을 저장하며, 로그 블록의 갯수도 상대적으로 작은 수가 할당되도록 한다. 도 2의 경우 플래시 메모리(100)가 총 8GB이며, 총 로그블록의 수가 1000라고 가정한 경우 제1 파티션(partition_0)의 512MB의 SLC 영역에는 총 500개의 로그블록을, 제2 파티션(partition_1)의 2GB의 MLC 영역에는 총 400개의 로그 블록을, 제3 파티션(partition_3)의 2GB의 MLC 영역에는 총 50개의 로그 블록을, 제4 파티션(partition_3)의 3GB의 MLC 영역에는 총 50개의 로그 블록을 할당하였다. 비록 도 2에서는 플래시 메모리(100)의 파티션의 수나 로그 블록들의 수가 도시되어 있으나, 이는 예시에 불과하며, 당업자의 필요와 성능에 따라 다양한 수로 변형실시될 수 있다.2, the flash memory 100 is divided into four partitions partition_0 to partition_3, and each partition is divided into a log block area and a data block area. On the other hand, the data block area of the first partition (partition_0) shows a Single Level Cell (SLC) type, and the data block areas of the second partition (partition_2) to the fourth partition (partition_3) show a MLC (Multi Level Cell) type. have. Flash memory is divided into types according to the number of bits that a single cell can represent, and a type that can represent one bit through one cell is an SLC type and a plurality of bits through one cell. The type that can be represented is called MLC type. The SLC type has faster read / write performance than the MLC type, and has less storage capacity than the MLC type when the physical size is the same. In contrast, the MLC type has lower read / write performance than the SLC type, but has a larger storage capacity than the SLC type when the same physical size is used. Therefore, in the present invention, the data block area of the first partition (partition_0) is frequently required to update (overwrite), for example, in the case of a mobile phone stores the Android OS or base station data, and the number of log blocks for frequent updates Allocate more. On the other hand, once read in the second partition (partition_1) to the fourth partition (partition_3) stores data such as an OS image that does not update afterwards, and the number of log blocks is also assigned to a relatively small number. In the case of FIG. 2, when the flash memory 100 is 8 GB in total and the total number of log blocks is 1000, a total of 500 log blocks are included in the 512 MB SLC area of the first partition partition_0, and the second partition partition_1 A total of 400 log blocks are allocated to the 2GB MLC region, a total of 50 log blocks are allocated to the 2GB MLC region of the third partition (partition_3), and a total of 50 log blocks are allocated to the 3GB MLC region of the fourth partition (partition_3). It was. Although the number of partitions and the number of log blocks of the flash memory 100 are illustrated in FIG. 2, this is only an example and may be modified in various numbers according to the needs and performances of those skilled in the art.

한편, 도 3은 본 발명에 따른 플래시 메모리를 사용하는 메모리 시스템의 하드웨어 구조를 보여주는 블록도이다.3 is a block diagram illustrating a hardware structure of a memory system using a flash memory according to the present invention.

도 3을 참조하면, 메모리 시스템(300)은 중앙처리장치(310), 랜덤 액세스 메모리(320), 그리고 낸드 플래시 메모리(100)를 포함한다. 어드레스 맵핑 동작을 위한 플래시 변환 레이어(FTL)는 랜덤 액세스 메모리(320)에 저장된다. 낸드 플래시 메모리(100)는 당업자에게 잘 알려진 바와 같이, 스트링 구조(string structure)를 갖는 복수의 메모리 셀로 구성된다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 낸드 플래시 메모리(100)의 메모리 셀 어레이는 복수의 메모리블록(memory block)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(page)로 구성된다. 각각의 페이지는 하나의 워드 라인을 공유하는 복수의 메모리 셀로 구성된다. 낸드 플래시 메모리(100)는 읽기 및 쓰기 동작의 단위와 소거 동작의 단위가 다르다. 즉, 낸드 플래시 메모리(100)는 메모리 블록 단위로 소거 동작을 수행하고, 페이지 단위로 읽기 및 쓰기 동작을 수행한다. 또한, 낸드 플래시 메모리(100)는 다른 반도체 메모리 장치와 달리 중복 쓰기(over write)를 지원하지 않는다. 따라서 낸드 플래시 메모리(100)는 쓰기 동작 전에 소거 동작을 수행한다. 낸드 플래시 메모리(100)의 이와 같은 특성으로 인해, 낸드 플래시 메모리(100)를 하드 디스크처럼 사용하기 위해서는, 읽기/쓰기/소거 동작에 대한 별도의 관리가 필요하다. 플래시 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 이러한 목적으로 개발된 시스템 소프트웨어이다. 낸드 플래시 메모리(100)는 도 1 내지 도 2에 도시된 바와 같이 데이터 블록 영역과 로그 블록 영역을 포함한다. 데이터 블록영역은 복수의 데이터 블록으로 구성되며, 사용자 데이터를 저장한다. 로그 블록 영역은 하나 또는 그 이상의 로그 블록으로 구성된다. 로그 블록은 특정 데이터 블록에 할당된다. 특정 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 특정 데이터 블록에 직접 쓰여 지는 것이 아니라, 할당되어 있는 로그 블록에 먼저 저장된다. 그 다음에, 머지(merge) 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록으로 복사된다.Referring to FIG. 3, the memory system 300 includes a central processing unit 310, a random access memory 320, and a NAND flash memory 100. The flash translation layer FTL for the address mapping operation is stored in the random access memory 320. The NAND flash memory 100 is composed of a plurality of memory cells having a string structure, as is well known to those skilled in the art. This set of memory cells is called a cell array. The memory cell array of the NAND flash memory 100 is composed of a plurality of memory blocks. Each memory block is composed of a plurality of pages. Each page consists of a plurality of memory cells that share one word line. The NAND flash memory 100 has different units of read and write operations and erase units. That is, the NAND flash memory 100 performs an erase operation in units of memory blocks, and read and write operations in units of pages. In addition, unlike the other semiconductor memory devices, the NAND flash memory 100 does not support overwrite. Therefore, the NAND flash memory 100 performs an erase operation before the write operation. Due to such characteristics of the NAND flash memory 100, in order to use the NAND flash memory 100 as a hard disk, separate management of read / write / erase operations is required. Flash Translation Layer (FTL) is system software developed for this purpose. The NAND flash memory 100 includes a data block area and a log block area as shown in FIGS. 1 and 2. The data block area is composed of a plurality of data blocks and stores user data. The log block area consists of one or more log blocks. Log blocks are assigned to specific data blocks. If you want to write data to a specific block of data, the data is not written directly to that particular block of data, but rather it is first stored in the assigned log block. Then, through a merge operation, valid pages of the log block and valid pages of the data block are copied into the new data block.

도 4은 본 발명에 따른 플래시 메모리를 사용하는 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다.4 is a block diagram showing a software structure of a memory system using a flash memory according to the present invention.

도 4를 참조하면, 플래시 변환 레이어(FTL, 430)는 애플리케이션(410) 또는 파일 시스템(420)으로부터 논리적 어드레스를 입력받고, 이를 물리적 어드레스로 변환한 다음에, 변환한 물리적 어드레스를 낸드 플래시 메모리(100)로 제공한다. 어드레스 변환을 위한 맵핑 테이블은 도 3에 도시된 랜덤 액세스 메모리(320)에 저장된다. 맵핑 방법에는 맵핑 단위에 따라 여러 가지 방식이 있다. 예를 들면, 페이지 단위로 맵핑 동작을 수행하는 페이지 맵핑 방법(page mapping method), 블록 단위로 맵핑 동작을 수행하는 블록 맵핑 방법(block mapping method), 그리고 두 가지를 모두 사용하는 혼합 맵핑 방법(hybrid mapping method)이 있다. 페이지 맵핑 방법은 페이지 맵핑 테이블을 위해 많은 메모리 공간을 필요로 한다는 단점을 갖는다. 블록 맵핑 방법은 메모리 공간을 줄일 수 있지만, 많은 머지(merge) 동작을 수행한다는 단점을 갖는다. 혼합 맵핑 방법은 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용한다. 혼합 맵핑 방법은 두 가지 맵핑 방법을 사용함으로, 맵핑 테이블의 크기를 줄임과 동시에, 머지 연산의 횟수를 줄일 수 있다.Referring to FIG. 4, the flash translation layer (FTL) 430 receives a logical address from an application 410 or a file system 420, converts the logical address into a physical address, and then converts the converted physical address into a NAND flash memory ( 100). The mapping table for address translation is stored in the random access memory 320 shown in FIG. There are various methods of mapping depending on the unit of mapping. For example, a page mapping method for performing a mapping operation on a page basis, a block mapping method for performing a mapping operation on a block basis, and a hybrid mapping method using both. mapping method). The page mapping method has a disadvantage of requiring a lot of memory space for the page mapping table. The block mapping method can reduce memory space, but has a disadvantage of performing a lot of merge operations. The mixed mapping method uses a page mapping method for log blocks. The hybrid mapping method uses two mapping methods, thereby reducing the size of the mapping table and reducing the number of merge operations.

도 5는 본 발명에 따른 혼합 맵핑 방법을 수행하는 메모리 시스템을 보여주는 블록도이다. 5 is a block diagram illustrating a memory system for performing the mixed mapping method according to the present invention.

도 5를 참조하면, 메모리시스템은 파일 시스템(420), 플래시 변환 레이어(430), 그리고 NAND 플래시 메모리(100)를 포함한다. 플래시 변환 레이어(430)는 파일 시스템(420)으로부터 논리적 섹터 번호(Logical Sector Number; LSN)를 입력받는다. 플래시 변환 레이어(430)는 맵핑 테이블을 사용하여 논리적 섹터 번호(LSN)를 물리적 섹터 번호(Physical Sector Number; PSN)로 변환한다. 플래시 변환 레이어(430)는 물리적 섹터 번호(PSN)를 플래시 메모리(100)로 제공한다. 도 5를 참조하면, 플래시 변환 레이어(430)는 블록 맵핑 테이블(431) 및 페이지 맵핑 테이블(432)을 포함한다. 여기에서, 페이지 맵핑 테이블(432)은 로그 블록의 페이지 맵핑을 위한 것이다. 로그 블록의 페이지 쓰기 동작 및 혼합 맵핑 동작은 도 6을 참조하여, 상세히 설명된다.Referring to FIG. 5, the memory system includes a file system 420, a flash translation layer 430, and a NAND flash memory 100. The flash translation layer 430 receives a logical sector number (LSN) from the file system 420. The flash translation layer 430 converts a logical sector number (LSN) into a physical sector number (PSN) using a mapping table. The flash translation layer 430 provides the physical sector number PSN to the flash memory 100. Referring to FIG. 5, the flash translation layer 430 includes a block mapping table 431 and a page mapping table 432. Here, the page mapping table 432 is for page mapping of log blocks. The page write operation and the mixed mapping operation of the log block are described in detail with reference to FIG. 6.

도 6은 도 5에 도시된 메모리 시스템의 혼합 맵핑 방법을 예시적으로 설명하기 위한 다이어그램이다. 도 6에서, 로그 블록(610) 및 데이터 블록(620)은 각각 4개의 페이지로 구성된다고 가정한다. 그리고 로그 블록(610)은 데이터 블록(620)에 할당되어 있다고 가정한다. FIG. 6 is a diagram for describing a mixed mapping method of the memory system illustrated in FIG. 5. In FIG. 6, it is assumed that the log block 610 and the data block 620 each consist of four pages. It is assumed that log block 610 is allocated to data block 620.

먼저, 쓰기 요청(write request)이 들어오면, 플래시 변환 레이어(도 5 참조, 430)는 데이터 블록(620)에 할당되어 있는 로그 블록(610)이 존재하는지를 검사한다. 검사 결과, 할당된 로그 블록(610)이 존재하면, 할당된 로그 블록(610)에 페이지 쓰기 동작을 수행한다. 만약, 할당된 로그 블록이 존재하지 않으면, 새로운 로그 블록을 할당받아 소거 동작을 수행한 다음에, 페이지 쓰기 동작을 수행한다. First, when a write request comes in, the flash translation layer 430 (see FIG. 5) checks whether a log block 610 allocated to the data block 620 exists. As a result of the check, if the allocated log block 610 exists, a page write operation is performed on the allocated log block 610. If the allocated log block does not exist, a new log block is allocated to perform an erase operation and then a page write operation.

도 6을 참조하면, 파일 시스템(도 5 참조, 420)은 2번, 3번, 0번, 1번 논리적 페이지 순서로 쓰기 요청을 하고 있다. 여기에서, 1번 논리적 페이지는 데이터는 데이터 블록(620)의 두 번째 물리적 페이지(이하, 제 2 물리적 페이지라 함)에 저장되어 있다. 2번 논리적 페이지에 대한 쓰기 요청이 들어오면, 로그 블록(610)의 첫번째 물리적 페이지(이하, 제 1 물리적 페이지라 함)에 대한 쓰기 동작이 수행된다. 다음으로, 3번 논리적 페이지에 대한 쓰기 요청이 들어오면, 로그블록(610)의 제 2 물리적 페이지에 대한 쓰기 동작이 수행된다. 그리고 0번 논리적 페이지에 대한 쓰기 요청이 들어오면, 로그 블록(610)의 세 번째 물리적 페이지(이하 제 3 물리적 페이지라 함)에 대한 쓰기 동작이 수행된다. 이때, 전체 로그 블록이 부족하여, 로그 블록(610)을 자유 블록(free block)으로 만들어야 하는 상황이 발생한다면, 플래시 변환 레이어(430)는 머지 동작을 수행한다. 즉, 로그 블록(610)의 제 1 내지 제 3 물리적 페이지에 저장된 2번, 3번, 0번 논리적 페이지와 데이터 블록(620)의 제 2 물리적 페이지에 저장된 1번 논리적 페이지는 새로운 데이터 블록(630)으로 복사된다. 먼저, 로그 블록(610)의 0번 페이지가 새로운 데이터 블록(430)의 제 1 물리적 페이지에 복사된다. 다음에, 데이터 블록(620)의 1번 페이지가 새로운 데이터 블록(430)의 제 2 물리적 페이지에 복사된다. 다음에, 논리 블록(410)의 2번 및 3번 페이지가 새로운 데이터 블록(430)의 제 3 및 제 4 물리적 페이지에 복사된다. 다음에, 로그 블록(610) 및 데이터 블록(620)은 소거된다. 이와 같이, 혼합 맵핑 방법에 의하면, 로그 블록(610)과 데이터 블록(620)의 유효한 페이지(valid page)는 머지동작에 의해 새로운 데이터 블록(630)으로 복사된다. 새로운 데이터 블록(630)에는 0번 페이지부터 3번 페이지까지 순차적으로 쓰여 진다.Referring to FIG. 6, a file system (see FIG. 5) 420 requests writes in the order of logical pages 2, 3, 0, and 1. Here, the first logical page is stored in a second physical page (hereinafter, referred to as a second physical page) of the data block 620. When a write request for logical page 2 is received, a write operation on the first physical page (hereinafter, referred to as a first physical page) of log block 610 is performed. Next, when a write request for logical page 3 is received, a write operation on the second physical page of log block 610 is performed. When a write request for logical page 0 is received, a write operation is performed on a third physical page (hereinafter, referred to as a third physical page) of the log block 610. At this time, if there is a shortage of the entire log block and a situation in which the log block 610 is to be made a free block occurs, the flash conversion layer 430 performs a merge operation. That is, the second, third, and zero logical pages stored in the first to third physical pages of the log block 610 and the first logical page stored in the second physical page of the data block 620 are new data blocks 630. Is copied to). First, page 0 of log block 610 is copied to the first physical page of new data block 430. Next, page 1 of data block 620 is copied to the second physical page of new data block 430. Next, pages 2 and 3 of logical block 410 are copied to the third and fourth physical pages of new data block 430. Next, log block 610 and data block 620 are erased. As such, according to the mixed mapping method, valid pages of the log block 610 and the data block 620 are copied to the new data block 630 by a merge operation. The new data block 630 is sequentially written from page 0 to page 3.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

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

100: NAND 플래시 메모리
300: 메모리 시스템의 하드웨어 구조
310: 중앙처리장치(CPU)
320: RAM
400: 메모리 시스템의 소프트웨어 구조
410: 애플리케이션
420: 파일 시스템
430: FTL(Flash Translation Layer)
431: 블록 맵핑 테이블
432: 페이지 맵핑 테이블
610: 로그 블록
620: 데이터 블록
630: 새로운 데이터 블록
100: NAND flash memory
300: hardware structure of the memory system
310: central processing unit (CPU)
320: RAM
400: software structure of the memory system
410: application
420: file system
430: Flash Translation Layer
431: block mapping table
432: page mapping table
610: log block
620: data block
630: new data block

Claims (10)

파일 시스템;
상기 파일 시스템으로부터 논리적 어드레스를 입력받고, 상기 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 메모리 변환 레이어; 및
상기 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함하며,
상기 플래시 메모리는, 복수의 파티션들에 의해 분할된 제1 셀 타입의 메모리 영역으로 SLC(Single Level Cell) 및 제2 셀 타입의 메모리 영역으로 MLC(Multi Level Cell)를 포함하고,
분할된 각 파티션은 데이터 저장을 위한 데이터 블록 영역과 상기 데이터 블록 영역의 중복쓰기를 위한 로그 블록 영역을 각각 구비하되,
상기 로그 블록 영역은 파티션별로 요구되는 성능에 따라 크기가 가변적(flexible)이며, 페이지 맵핑 방법(page mapping method)을 사용하고,
상기 데이터 블록 영역은 블록 맵핑 방법(block mapping method)을 사용하는 것을 특징으로 하는 메모리 시스템.
File system;
A flash memory translation layer that receives a logical address from the file system and converts the logical address into a physical address; And
A flash memory receiving the converted physical address;
The flash memory includes a single level cell (SLC) as a memory area of a first cell type divided by a plurality of partitions and a multi level cell (MLC) as a memory area of a second cell type.
Each partition includes a data block area for storing data and a log block area for overwriting the data block area, respectively.
The log block area is flexible in size according to performance required for each partition, uses a page mapping method,
And the data block area uses a block mapping method.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020100035439A 2010-04-16 2010-04-16 Flash memory comprising flexible size flash memory per partition and memory system using thereof KR101119866B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100035439A KR101119866B1 (en) 2010-04-16 2010-04-16 Flash memory comprising flexible size flash memory per partition and memory system using thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100035439A KR101119866B1 (en) 2010-04-16 2010-04-16 Flash memory comprising flexible size flash memory per partition and memory system using thereof

Publications (2)

Publication Number Publication Date
KR20110115871A KR20110115871A (en) 2011-10-24
KR101119866B1 true KR101119866B1 (en) 2012-02-22

Family

ID=45030402

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100035439A KR101119866B1 (en) 2010-04-16 2010-04-16 Flash memory comprising flexible size flash memory per partition and memory system using thereof

Country Status (1)

Country Link
KR (1) KR101119866B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239613B2 (en) * 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device
TWI679534B (en) * 2017-09-18 2019-12-11 慧榮科技股份有限公司 Data storage device and data storage method
KR20200068275A (en) * 2018-12-05 2020-06-15 삼성전자주식회사 Method and electronic device for initialization of storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080028685A (en) * 2006-09-27 2008-04-01 삼성전자주식회사 Apparatus and method for mapping of nonvolatile non-volatile memory supporting separated cell type
KR100858241B1 (en) 2006-10-25 2008-09-12 삼성전자주식회사 Hybrid-flash memory device and method for assigning reserved blocks therof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080028685A (en) * 2006-09-27 2008-04-01 삼성전자주식회사 Apparatus and method for mapping of nonvolatile non-volatile memory supporting separated cell type
KR100858241B1 (en) 2006-10-25 2008-09-12 삼성전자주식회사 Hybrid-flash memory device and method for assigning reserved blocks therof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Soojun Im, Dongkun Shin, "Storage Architecture and Software Support for SLC/MLC Combined Flash Memory", SAC Proceedings of the 2009 ACM symposium on Applied Computing, pp.1664-1669.*
Sungjin Lee et al., "FlexFS: A Flexible Flash File System for MLC NAND Flash Memory", USENIX Proceedings of the 2009 conference on USENIX Annual technical conference, June 2009.*

Also Published As

Publication number Publication date
KR20110115871A (en) 2011-10-24

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
KR100806343B1 (en) Memory system including flash memory and mapping table management method thereof
KR100885181B1 (en) Memory system performing group mapping operation and address mapping method thereof
JP7366795B2 (en) Memory system and control method
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US7890550B2 (en) Flash memory system and garbage collection method thereof
US20170160942A1 (en) Data storage device and flash memory control method
KR100526190B1 (en) Remapping method for flash memory
KR101257691B1 (en) Memory controller and data management method
KR101465789B1 (en) Write and merge methods in memory card systems for reducing the number of page copies
US20100082917A1 (en) Solid state storage system and method of controlling solid state storage system using a multi-plane method and an interleaving method
US20150186259A1 (en) Method and apparatus for storing data in non-volatile memory
US9892034B2 (en) Semiconductor device and operating method thereof
KR20020092487A (en) Flash memory management method
KR20150054964A (en) Address mapping
US8521947B2 (en) Method for writing data into flash memory
KR20130096881A (en) Flash memory device
KR101403922B1 (en) Apparatus and method for data storing according to an access degree
KR20090024971A (en) Method and apparatus for cache using sector set
US11150819B2 (en) Controller for allocating memory blocks, operation method of the controller, and memory system including the controller
KR101119866B1 (en) Flash memory comprising flexible size flash memory per partition and memory system using thereof
CN113590505A (en) Address mapping method, solid state disk controller and solid state disk
TW201624490A (en) Memory device and non-transitory computer readable recording medium
KR20090106221A (en) Data Writing On a Flash Memory System with a Plurality Flash Memory
KR100868674B1 (en) The method of managing flash memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150126

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 9