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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management 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
본 발명은 플래시 메모리에 관한 것으로, 더욱 상세하게는 파티션별로 플렉시블한 크기의 로그블록을 포함하는 플래시 메모리 및 메모리 시스템에 관한 것이다.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
(a)의 경우 플래시 메모리(100)에는 각 파티션의 영역의 크기에 비례하여 로그 블록 영역이 할당됨으로써, 전체적으로 균일한 성능을 구현하도록 하고 있다. 그러나, (a)와 같은 경우는 로그 블록의 수가 적은 특정한 파티션에 대해 중복쓰기(업데이터)가 빈번하게 일어나는 경우 많은 수의 페이지 복사 및 블록 소거 동작에 의해 전체 메모리 시스템의 성능이 저하될 수 있다. In the case of (a), the log memory area is allocated to the
따라서, (b)와 같은 다른 실시예에 의한 플래시 메모리(100)의 구조가 제안된다. (b)에 의하면, 플래시 메모리(100)의 로그 블록 영역의 크기는 각 파티션에 의해 요구되는 성능의 차이에 의해 할당되며, 할당되는 로글 블록 영역의 크기는 파티션별로 플렉시블하도록 구성된다. 여기서, 플렉시블(flexible)이라 함은 파티션별로 요구되는 성능에 따라 할당되는 로그 블록의 크기가 달라질 수 있다는 것을 의미하며, 요구되는 성능에 따라 할당되는 로그 블록의 크기가 달라진다는 의미는 업데이트(즉, 중복쓰기)와 관련된 것으로, 중복쓰기가 빈번하게 일어나는 경우 더 많은 수의 로그블록을 할당한다는 것을 의미한다. 이와 같이 로그 블록의 크기를 파티션별로 플렉시블하게 할당함으로써, 즉 빈번하게 업데이트가 이루어지는 파티션에는 더 많은 수의 로그 블록을 할당함으로써, 페이지 복사 및 블록 소거 동작의 횟수를 줄여 메모리 시스템의 성능을 향상시킬 수 있다. 이러한 도 1의 구조는 MLC타입이나 SLC 타입의 메모리에 모두 적용될 수 있다.Therefore, the structure of the
한편, 도 2는 본 발명의 일 실시예에 따른 플래시 메모리(100)의 구조로, 이종셀 타입을 지원하는 플래시 메모리를 도시한 도면이다.2 is a diagram illustrating a flash memory supporting heterogeneous cell types as a structure of a
도 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
한편, 도 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
도 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
도 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
도 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
먼저, 쓰기 요청(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
도 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
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 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.
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)
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)
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 |
-
2010
- 2010-04-16 KR KR1020100035439A patent/KR101119866B1/en active IP Right Grant
Patent Citations (2)
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)
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 |