KR100745163B1 - 동적 매핑 테이블을 이용한 플래시 메모리 관리방법 - Google Patents

동적 매핑 테이블을 이용한 플래시 메모리 관리방법 Download PDF

Info

Publication number
KR100745163B1
KR100745163B1 KR1020060055083A KR20060055083A KR100745163B1 KR 100745163 B1 KR100745163 B1 KR 100745163B1 KR 1020060055083 A KR1020060055083 A KR 1020060055083A KR 20060055083 A KR20060055083 A KR 20060055083A KR 100745163 B1 KR100745163 B1 KR 100745163B1
Authority
KR
South Korea
Prior art keywords
data
flash memory
mapping table
information
area
Prior art date
Application number
KR1020060055083A
Other languages
English (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 KR1020060055083A priority Critical patent/KR100745163B1/ko
Application granted granted Critical
Publication of KR100745163B1 publication Critical patent/KR100745163B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • 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

Abstract

본 발명은 램 상에 플래시 메모리를 구성하는 각 영역의 매핑 테이블을 동적으로 생성하여 데이터의 처리속도 및 신뢰성을 향상시킨 동적 매핑 테이블을 이용한 플래시 메모리 관리방법에 관한 것이다.
상기한 목적을 달성하기 위한 기술구성은, 각 영역(area)별로 데이터를 매핑하는 인 플래이스(IN PLACE) 방법을 사용한 플래시 메모리의 관리방법에 있어서, (a) 플래시 메모리 내에 저장되는 데이터와 그 데이터의 매핑 테이블을 생성하는데 필요한 정보(데이터 매핑 정보)를 각 영역별로 구분하여 실시간으로 함께 저장하는 단계; (b) 상기 데이터에 대한 연산 수행 시에 상기 데이터 매핑 정보를 이용하여 시스템의 램(RAM) 내에 동적 매핑 테이블을 생성하는 단계; (c) 상기 동적 매핑 테이블을 이용해 플래시 메모리로부터 필요한 데이터를 램으로 로드하여 연산하는 단계를 포함한다.
플래시 메모리, 동적 매핑 테이블, 데이터 매핑 정보

Description

동적 매핑 테이블을 이용한 플래시 메모리 관리방법{Method for managing flash memory using dynamic mapping table}
도1은 종래의 플래시 메모리 매핑방법을 도시한 도면.
도2는 종래의 정적 매핑 테이블을 이용한 플래시 메모리 구조를 나타낸 도면.
도3은 본 발명에 따른 동적 매핑 테이블을 이용한 플래시 메모리 구조를 나타낸 도면.
도4는 본 발명에 따른 플래시 메모리 관리방법을 도시한 순서도.
도5는 본 발명에 따른 동적 매핑 테이블의 캐싱 알고리즘을 나타낸 도면.
도6은 본 발명에 따른 동적 매핑 테이블의 병합 알고리즘을 나타낸 도면.
도7 및 도8은 본 발명에 따른 동적 매핑 테이블의 저장 알고리즘을 나타낸 도면.
※도면의 주요부분에 대한 부호의 설명※
10: 플래시 메모리 11: 영역(area)
12: 일반 저장존 13: 여유 저장존
14: 데이터 매핑 정보 15: 동적 매핑 테이블
16: 메타 정보용 동적 매핑 테이블 17: 데이터 정보용 동적 매핑 테이블
본 발명은 동적 테이블을 이용한 플래시 메모리 관리방법에 관한 것으로서, 보다 상세하게는 매핑 테이블을 플래시 메모리의 일정 영역에 정적으로 구성하던 종래와 달리 램 상에 플래시 메모리를 구성하는 각 영역의 매핑 테이블을 동적으로 생성하여 데이터의 처리속도 및 신뢰성을 향상시킨 동적 매핑 테이블을 이용한 플래시 메모리 관리방법에 관한 것이다.
일반적으로, 플래시 메모리는 비휘발성을 가지면서도 프로그램 가능한 메모리로서 빠른 접근 속도를 가지며 전력을 적게 소비하기 때문에, 이동 단말기, PDA 등의 이동 디바이스(mobile device)를 비롯한 내장형 시스템(embedded system)에서 널리 사용되고 있다.
이러한 플래시 메모리는 기존의 램(RAM)이나 비휘발성 저장 장치, 마그네틱 등과 마찬가지로 특정 위치에 저장된 데이터에 임의로 접근할 수 있지만, 데이터를 수정하거나 삭제하는 방법에 있어서는 기존의 저장장치와 다르게 블록(block)을 기본단위로 하여 액세스가 이루어진다.
즉, 플래시 메모리에서는 읽기/쓰기 연산 시에 플래시 메모리로부터 한번에 기록된 데이터를 읽어 오거나 데이터를 기록할 수 있는 블록(block)과, 다수의 블록들로 이루어지며 한번의 삭제 연산으로 지울 수 있는 유닛(unit)으로 액세스가 이루어지는데, 이 같은 플래시 메모리의 액세스 특성에 따라 데이터를 효율적으로 관리하기 위한 방법으로 블록(또는 섹터) 재사상(re-mapping)기법이 일반적으로 이용되고 있다.
블록(또는 섹터) 재사상 기법은 매핑 테이블을 통해 플래시 메모리에 기록되는 특정 데이터에 대한 물리 블록 번호(Physical Block Number:이하, PBN이라 칭함)와 논리 블록 번호(Logical Block Number:이하, LBN이라 칭함)간의 사상 정보를 이용하여 해당 데이터의 수정 또는 삭제로 PBN이 변경되어도 동일한 LBN으로 데이터에 접근할 수 있도록 하는 것이다.
이와 같은 기존의 블록 재사상 기법은 프로세서로부터 요구되는 기록/삭제/수정 연산 수행 시 마다 매핑 테이블에 기록된 플래시 메모리의 상태 정보를 수정하여야 하는데, 이로 인한 반복적인 기록 연산에 의해 플래시 메모리의 성능이 저하되는 문제점이 있었다.
이러한 문제점을 해결하기 위해 플래시 메모리 제어 방법이 제시되고 있는데, 도1은 이 같은 플래시 메모리 제어 방법에 따른 연산 과정을 나타내기 위한 플래시 메모리 블록이고, 도1의 아래 부분은 물리 유닛의 구조를 나타낸 것이다.
각 유닛은 헤더(EUH:Erase Unit Header)와 블록 할당 맵(Block Allocation Map:이하, BAM라 칭함)을 가지며 실제 데이터가 저장되는 것으로, 헤더에는 유닛에 대한 여러 메타 정보가 저장되고, BAM에는 특정 유닛에 속한 블록들에 대한 정보(논리 블록 번호, 상태 등)가 기록된다.
이러한 플래시 메모리의 특정 LBN(3)에 대한 기록 연산이 요청되면 먼저 LBN-to-LUN 테이블을 이용하여 주어진 LBN(3)에 대한 논리 유닛 번호(Logical Unit Number:이하, LUN라 칭함)(2)를 탐색하고, LUN(2)이 결정되면 LUN-to-PUN 테이블을 이용해 물리 유닛 번호(Physical Unit Number:이하, PUN라 칭함)를 검색한다.
이에 따라 PUN(1)이 결정되면, PUN1에 상응하는 BAM을 통해 현재 쓰기 가능한 PBN을 검색한 후 검색된 PBN(1)에 기록 연산이 요구되는 데이터를 기록하고, PBN(1)에 상응하는 BAM의 첫 번째 필드에 LBN(3) 및 상태 정보(유효;valid)를 기록한다.
이와 같이, 기록된 LBN(3)에 대한 데이터를 갱신하기 위한 연산이 요구되면, 새로운 PBN를 할당받아 갱신되는 LBN(3)의 데이터를 기록하기 위해 할당된 PBN(4)에 데이터를 기록하고, PBN(4)에 상응하는 BAM의 네 번째 필드에 LBN(3) 및 상태 정보(유효;valid)를 기록한다. 그리고, 갱신된 LBN(3)이 기록되었던 이전의 PBN(1)에 기록된 데이터 및 PBN(1)에 상응하는 BAM의 첫 번째 필드에 기록된 LBN(3)를 삭제하고, 상태 정보(삭제:delete)를 기록한다.
플래시 메모리에 저장된 데이터의 읽기/쓰기 연산에 사용되는 상기 LBN, LUN, PUN, BAM 등이 하나의 매핑 테이블을 구성한다. 도2는 상기한 매핑 테이블을 구현하기 위한 플래시 메모리 구조를 나타낸다.
플래시 메모리(1)는 크게 통상적으로 데이터를 저장하는 일반 저장구역(2)과 일반 저장구역에 베드(bad) 블록이 발생한 경우에만 이를 대체하여 데이터를 저장하는 여유 저장구역(3), 및 이들 일반 저장구역(2)과 여유 저장구역(3)에 데이터를 읽고 쓰기 위해 필요한 데이터 매핑 정보를 저장하고 있는 매핑 테이블(4)로 구성된다.
플래시 메모리에서 매핑 테이블(4)을 구성하는 방법으로 인 플래이스(IN PLACE) 방법과 아웃 플래이스(OUT PLACE) 방법이 있는데, 인 플래이스 방법은 상기한 일반 저장구역(2)을 각 영역별로 나누어 매핑 테이블(4)을 따로 관리하는 것이고, 아웃 플래이스 방법은 상기한 일반 저장구역(2) 전체를 하나로 하여 매핑 테이블(4)을 구성하는 것을 말한다. 본 발명은 상기 인 플래이스 방법에 기반을 둔 것이므로 이를 기준으로 설명한다.
상기 일반 저장구역(2)과 여유 저장구역(3)은 데이터를 저장하는 최소 저장단위인 섹터(sector), 이들 섹터가 집합되어 통상 16Kbyte의 크기로 구성되고 삭제의 기본단위가 되는 블록(block), 이들 블록이 집합되어 매핑 테이블(4)을 구성하는 기본단위가 되는 영역(area, 2a)으로 이루어지는데, 상기한 인 플래이스 방법은 상기 영역(2a)을 기준으로 매핑 테이블(4)을 구성하고, 이 매핑 테이블을 램(5)에 로드하여 필요한 해당 영역(2a)에 대한 읽기/쓰기 연산을 수행한다.
종래의 인 플래이스 방법에 따르면, 각 영역(2a)에 대한 매핑 테이블(4)이 플래시 메모리의 제조 단계에서 미리 설정된다. 이를 후술하는 본 발명과 구별하기 위해 정적(static) 매핑 테이블(4)이라 한다. 이러한 정적 매핑 테이블(4)은 모든 영역(2a)에 대해서 설정되므로 이를 저장하기 위해서 미리 큰 용량의 저장 공간이 확보되어야 할 뿐만 아니라, 매핑 테이블(4)의 설정 시간이 오래 걸려 제품의 양산 시 초기화 시간이 과다하게 소요되었다(예컨대, C/F CARD 2 GB의 경우 10~20분 정도 소요). 또한, 다수개의 영역(2a)에 걸쳐 저장된 데이터에 대해 연산을 수행할 때, 각 영역(2a)에 대한 매핑 테이블(4)을 페이징 기법으로 램(5)으로 로드하는 경 우 페이징 동작이 빈번하게 일어나 처리 속도가 저하되는 문제점도 있었다.
또한, 종래의 캐싱 알고리즘에서 채택하고 있는 레이지 라이크(Lazy_write) 방식은 플러싱 작업 시에 전원 차단과 같은 에러가 발생하면 데이터가 손실될 뿐만 아니라 시스템의 일관성이 상실되는 치명적인 문제점이 있었다.
본 발명은 이러한 문제점을 해결하기 위하여 제안된 것으로, 종래의 정적 매핑 테이블과 달리 플래시 메모리의 각 영역에 대한 매핑 테이블을 미리 설정하지 아니하고 사용 단계에서 동적으로 이를 생성할 수 있도록 함으로써 메모리 저장공간의 효율적 사용, 데이터 처리 속도의 증가, 시스템의 일관성 보장 등의 효과를 달성할 수 있도록 해주는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명에 따른 동적 매핑 테이블을 이용한 플래시 메모리 관리방법은, 각 영역(area)별로 데이터를 매핑하는 인 플래이스(IN PLACE) 방법을 사용한 플래시 메모리의 관리방법에 있어서, (a) 플래시 메모리 내에 저장되는 데이터와 그 데이터의 매핑 테이블을 생성하는데 필요한 정보(데이터 매핑 정보)를 각 영역별로 구분하여 실시간으로 함께 저장하는 단계; (b) 상기 데이터에 대한 연산 수행 시에 상기 데이터 매핑 정보를 이용하여 시스템의 램(RAM) 내에 동적 매핑 테이블을 생성하는 단계; (c) 상기 동적 매핑 테이블을 이용해 플래시 메모리로부터 필요한 데이터를 램으로 로드하여 연산하는 단계를 포함한다.
또한, 상기 (c)단계는 (d) 상기 데이터를 연산할 때 변경되는 데이터 매핑 정보를 이용하여 램에 생성된 동적 매핑 테이블과 플래시 메모리의 각 영역에 저장된 해당 데이터 매핑 정보를 실시간으로 갱신하는 단계를 더 포함한다.
또한, 상기 (b) 단계의 동적 매핑 테이블은 메타 정보용 매핑 테이블과 데이터 정보용 매핑 테이블로 구성된다.
또한, 상기 (b) 단계는 시스템 사용에 따라 발생하는 베드 블록(block)으로 인하여 하나의 영역 내에 여유 블록(block)이 없는 경우에는 여유 블록을 확보할 수 있을 때까지 인접하는 영역을 실시간으로 병합하여 동적 매핑 테이블을 생성하도록 구성된다.
또한, 상기 (a) 단계는 상기 데이터 및 데이터 매핑 정보를 플래시 메모리 구성하는 각 영역에 직렬 또는 병렬로 분산하여 저장하도록 구성된다. 또한, 상기 플래시 메모리를 구성하는 영역을 실제 데이터 및 데이터 매핑 정보를 저장하는 영역과 백업용 데이터 및 데이터 매핑 정보를 저장하는 영역으로 구획하여 이중으로 저장하도록 구성된다.
이하에서 첨부된 도면을 참조로 본 발명에 따른 동적 매핑 테이블을 이용한 플래시 메모리 관리방법에 대해 보다 상세히 설명한다.
도3은 본 발명에 따라 동적 매핑 테이블을 생성하기 위한 플래시 메모리 구조를 나타낸다. 도2와 같이 종래의 플래시 메모리(1)는 제조 단계에서 다수개의 영역(2a)으로 구성된 일반 저장구역(2)과 여유 저장구역(3) 및 정적 매핑 테이블(4)로 분할되어지는데 반해 본 발명에 따른 플래시 메모리(10)는 전체가 다수개의 영 역(21)으로만 분할되고, 각 영역(11)은 다시 일반 저장존(12)과 여유 저장존(13) 및 데이터 매핑 정보(14)로 구성된다. 상기 일반 저장존(12)과 여유 저장존(13)은 종래의 일반 저장구역(2)과 여유 저장구역(3)과 대응되지만 하나의 영역(11) 내부에 존재한다는 점에서 구별된다.
본 발명의 가장 특징적인 구성은 플래시 메모리에 데이터를 저장하는데 필요한 데이터 매핑 정보(14)만을 각 영역(11)의 내부에 저장할 뿐 별도의 매핑 테이블을 만들지 않는다는 점이다. 따라서, 종래와 같이 플래시 메모리를 제조할 때 매핑 테이블을 설정하는 시간이 소요되지 않아 작업 시간을 크게 단축할 수 있다.
또한, 각 영역(11)의 크기를 작게 만들기 때문에 이에 대한 데이터 매핑 정보(14)도 작게 만들어질 수 있어 기존에 정적 매핑 테이블(4)보다 저장 용량을 크게 절감할 수 있다. 예컨대, 도2에 도시된 종래의 플래시 메모리 구조에 따라 4Gbyte의 용량을 가진 플래시 메모리를 제조한다고 가정하면, 통상 16Kbyte의 블록(block)을 1024개 집합하여 하나의 영역(2a)이 구성되는데, 이 때 각 영역의 데이터 매핑에 필요한 정보는 블록의 개수가 1byte(28 = 256개)보다 많기 때문에 각 블록당 2byte가 필요하게 되어 총 2048byte(2Kbyte)를 차지한다. 하나의 영역(2a)이 차지하는 용량이 16Mbtye(16Kbyte * 1024)이므로 4Gbyte는 총 256개의 영역(2a)으로 구성된다. 따라서, 이를 매핑하는데 필요한 매핑 테이블의 용량은 총 512Kbyte(256 * 2Kbyte)가 된다.
이에 반해, 도3에 도시된 본 발명의 플래시 메모리 구조에 따르면 하나의 영 역(11)을 16Kbyte의 블록 256개가 집합한 것으로 구성한다. 이 때, 각 영역의 데이터 매핑에 필요한 정보는 영역 내 모든 블록을 1byte(28 = 256개)로 지정할 수 있기 때문에 블록당 1byte만이 필요하게 되어 총 256byte를 차지한다. 하나의 영역(11)이 차지하는 용량이 4Mbyte(16Kbyte * 256)이므로, 4Gbyte는 총 1024개의 영역(11)으로 구성된다. 따라서, 이를 매핑하는데 필요한 정보는 총 256Kbyte(1024 * 256byte)가 된다.
이와 같이, 본 발명에 따르면 영역의 크기를 작게 하여 매핑하는데 필요한 정보의 양을 종래보다 크게 감소시킬 수 있다. 더욱이, 이들 데이터 매핑 정보는 제품 제조 시에 설정되는 것이 아니라, 제품 사용 시에 실시간으로 설정된다는 점에서 상대적인 용량 절감 효과는 더욱 크다 할 것이다.
본 발명에 따르면, 작은 용량으로 저장되는 데이터 매핑 정보(14)를 사용하여 각 영역(11)에 대한 읽기/쓰기 연산 시에 필요한 매핑 테이블(15)을 램(20) 상에 실시간으로 생성한다. 이러한 의미에서 본 발명에 따른 매핑 테이블은 동적(dynamic) 매핑 테이블(15)이 되며, 종래의 정적 매핑 테이블(4)과 구별된다. 데이터 매핑 정보(14)의 크기 감소는 램(20)에 생성되는 동적 매핑 테이블(15)의 크기도 감소시켜 본 발명에 따른 캐싱 알고리즘의 구현을 가능하게 해주는데, 이에 대한 상세한 내용은 후술하기로 한다.
한편, 플래시 메모리에 저장되는 파일이 여러 개의 영역(11)에 걸쳐 저장되는 경우 상기 데이터 매핑 정보(14)는 각 영역에 저장되는 파일의 아이디, 파일 이 름, 파일 크기, 읽기 권한, 파일의 데이터 위치정보, 타입, 상위 디렉토리, 체크섬 등의 정보를 담고 있는 메타 정보와 파일을 구성하는 데이터에 관한 정보로 구분된다. 이에 따라 본 발명의 동적 매핑 테이블(15)도 메타 정보용 매핑 테이블(16)과 데이터 정보용 매핑 테이블(17)로 구분되어 램(20) 상에 생성된다. 이는 정적 매핑 테이블(4)에 메타 정보와 데이터 정보를 구분 없이 저장하는 종래의 방식과 구별되는 것으로 후술하는 캐싱 알고리즘에 의해 처리 속도를 향상시키는 주요 구성이 된다.
상기와 같이 구성된 플래시 메모리에 의해 구현되는 본 발명에 따른 동적 매핑 테이블을 이용한 플래시 메모리 관리방법을 도4를 참조로 상세히 설명한다.
먼저, 각 영역(area) 별로 데이터를 매핑하는 인 플래이스 방법을 사용하는 플래시 메모리 시스템(USB 메모리, 각종 메모리 카드 등)에 있어서, 시스템의 중앙 처리부는 플래시 메모리에 저장되는 데이터와 그 데이터의 매핑 테이블을 생성하는데 필요한 정보(데이터 매핑 정보)를 각 영역별로 구분하여 실시간으로 함께 저장한다(S10). 여기서, 실시간으로 저장한다는 것은 플래시 메모리의 제조 단계에서 미리 매핑 테이블을 만드는 것이라 아니라 사용자에 의해 플래시 메모리의 해당 영역이 사용될 때 비로소 데이터 매핑 정보가 만들어져 함께 저장된다는 것을 의미한다.
그 후, 중앙처리부는 상기 데이터에 대하여 읽기/쓰기 연산을 수행할 때, 상기 데이터 매핑 정보를 이용하여 시스템의 램(RAM) 내에 동적 매핑 테이블을 생성한다(S20). 이는 본 발명에 따른 가장 특징적인 기술구성으로서, 데이터의 연산 수 행 시에 램 상에 매핑 테이블을 생성하기 때문에 플래시 메모리 상에 미리 매핑 테이블을 만들고 이를 로드하여 연산을 수행하는 종래에 비해 용량이나 처리 속도 면에서 훨씬 유리하다. 이 때, 생성되는 동적 매핑 테이블은 메타 정보용과 데이터 정보용으로 구분되어 각각 별도로 생성된다는 것은 이미 상기한 바와 같다.
중앙처리부는 생성된 동적 매핑 테이블을 이용하여 플래시 메모리의 해당 영역에 저장된 데이터를 램으로 로드하여 필요한 읽기/쓰기 연산을 수행한다(S30). 연산 수행이 완료된 데이터는 다시 플래시 메모리에 저장될 수도 있고, 직렬, 병렬 또는 USB 전송 방식에 의해 타 시스템(PC 컴퓨터 등)으로 전송될 수도 있다.
연산 수행에 따라 상기 데이터 매핑 정보가 변경된 경우에는 플래시 메모리에 저장된 해당 데이터 매핑 정보를 갱신하여야 한다. 이 때, 데이터를 변경할 때마다 갱신을 하게 되면 빈번하게 플래시 메모리를 액세스해야 하므로 시스템 전체의 성능을 저하시킨다. 이를 방지하기 위해 종래에는 메타 정보 및 데이터 정보가 저장된 매핑 테이블을 램으로 캐싱하여 사용하였다.
그러나, 램으로 캐싱된 매핑 테이블을 갱신한 다음 레이지 라이트(Lazy-Write) 방식으로 플래시 메모리에 저장된 해당 매핑 정보를 한꺼번에 갱신하는 플러싱(Flushing) 방식을 사용하였기 때문에, 플러싱 과정에서 전원 차단과 같은 이상이 발생하게 되면 정보가 손실되거나 램에 캐싱된 매핑 테이블의 정보와 플래시 메모리의 매핑 정보가 일치되지 않아 일관성이 상실되는 문제점이 발생하였다. 또한, 캐싱되는 매핑 테이블의 크기가 크기 때문에 페이징 기법을 사용할 경우 페이지가 자주 교체되며, 이는 시스템 전체의 처리 속도를 저하시키는 주요 원인이 되 었다.
본 발명에 따른 캐싱 알고리즘은 이러한 종래의 문제점을 한꺼번에 해결하였다. 즉, 본 발명에서는 종래의 레이지 라이트에 의한 플러싱 방식을 사용하지 않고 도5에 도시된 바와 같이 중앙처리부(30)가 램(20)에 캐싱된 동적 매핑 테이블을 갱신하는 작업(A)과 플래시 메모리 제어부(40)를 통해 플래시 메모리(10)에 해당 데이터 매핑 정보를 갱신하는 작업(B)이 동시에 실시간으로 이루어지도록 하였다(S40). 이에 따라 시스템의 일관성이 크게 보장된다. 다만, 이에 따르면 데이터 매핑 정보가 변경될 때마다 플래시 메모리를 액세스하는 횟수가 증가되는 문제점이 발생한다.
그러나, 본 발명에 따르면 동적 매핑 테이블의 크기가 종래의 정적 매핑 테이블에 비해 크게 작아서 한꺼번에 여러 페이지를 캐싱할 수 있기 때문에 종래보다 페이지의 교체 횟수가 적어진다. 더욱이, 동적 매핑 테이블을 메타 정보용과 데이터 정보용으로 구분하여 각각 캐싱하기 때문에 갱신하고자 하는 매핑 정보가 캐싱 영역 내에서 존재할 확률이 높아져 페이지를 교체해야 할 경우가 더욱 감소된다.
이에 따른 플래시 메모리의 액세스 횟수 감소는 상기 실시간 데이터 갱신에 따른 액세스 횟수 증가를 보상하여 전체적으로 시스템의 처리 성능을 동등하게 유지하거나 더욱 향상시켜준다. 따라서, 본 발명의 캐싱 알고리즘에 따르면 전체 시스템의 성능 저하 없이 시스템의 일관성을 보장해 준다.
본 발명에 따른 또 다른 기술적 특징은 플래시 메모리 내 각 영역에 대한 여유 블록의 개수를 동적으로 변경할 수 있도록 한 병합 알고리즘에 있다. 이에 따르 면, 시스템의 사용에 따라 발생하는 베드 블록을 인하여 하나의 영역 내에 여유 블록이 없는 경우에 여유 블록을 확보할 수 있을 때까지 인접하는 영역을 실시간으로 병합하여 동적 매핑 테이블을 생성할 수 있도록 해준다.
시스템을 사용하다 보면 플래시 메모리 내에 베드 블록이 발생하게 되는데, 이를 대비하여 본 발명에서는 도3에 도시된 바와 같이 플래시 메모리의 각각 영역 내에 여유 블록을 가지는 여유 저장존(13)을 두었다. 이는 도2에 도시된 바와 같이 일반 저장구역(2)과 별도로 여유 저장구역(3)을 설정해 놓은 종래와 달리 각 영역 내에 작은 크기의 여유 저장존(13)을 두기 때문에 이에 대한 매핑 작업이 간단하여 동적 매핑 테이블을 보다 신속하게 생성될 수 있도록 해준다.
그러나, 종래에 비해 하나의 영역에 할당된 여유 블록이 작기 때문에 해당 영역 내에 베드 블록이 많이 발생하는 경우에는 해당 여유 저장존(13)에 여유 블록이 없는 경우가 발생한다. 본 발명은 이러한 문제점을 해결하기 위해 도6에 도시된 바와 같이 하나의 영역(#1) 내의 여유 저장존(13)에 여유 블록이 없는 경우에 여유 블록(13a)이 있는 인접하는 영역(#2)을 병합하여 여유 블록을 공유할 수 있도록 하였다. 만약 인접하는 영역(#2)에도 여유 블록이 없는 경우에는 여유 블록을 확보할 수 있을 때까지 다음 영역을 병합한다. 이러한 영역 병합은 필요에 따라 실시간으로 이루어져 동적 매핑 테이블을 생성할 수 있도록 해준다.
본 발명에 따른 마지막 기술적 특징은 플래시 메모리 내에 데이터를 분산 저장하는 알고리즘에 있다. 이는 데이터를 신뢰성을 확보하고 에러 발생 시에 신속하게 복구할 수 있도록 하기 위한 것이다. 본 발명은 플래시 메모리의 기본 단위인 영역을 작은 크기로 많이 만들어 시스템의 성능을 향상시키도록 한 것이라는 점에서 저용량의 하드 디스크를 다수 개 집합시켜 데이터를 분산 저장함으로써 대용량인 하나의 디스크를 사용하는 경우보다 더 우수한 데이터 신뢰성을 확보할 수 있도록 한 레이드(RAID: Redundant Array of Inexpensive Disk Drives)와 유사하다.
본 발명에서 상기 레이드의 기술구성을 참고하여 플래시 메모리를 구성하는 각각의 영역을 2개 이상으로 구획하여 각각에 데이터를 직렬 또는 병렬적으로 분산 저장함으로써 데이터의 신뢰성을 향상시킬 수 있도록 하였다. 영역의 구획은 물리적으로 2개 이상의 플래시 메모리로 구성하는 방법이 있고, 하나의 플래시 메모리 내에 저장 영역을 논리적으로 2개 이상으로 구획하는 방법이 있다.
도7에는 플래시 메모리(60)의 영역을 2개로 구획한 후에 동일한 데이터(#00 ~ #07)를 각 영역 내에 이중으로 저장하는 방법이 예시되어 있다. 이에 따르면 한 쪽 영역(61)에는 실제 데이터 및 데이터 매핑 정보를 저장하고, 다른 쪽 영역(62)에는 백업용 데이터 및 데이터 매핑 정보를 이중으로 저장하고 실제 데이터 및 데이터 매핑 정보가 손실된 경우에 백업 데이터 및 데이터 매핑 정보를 이용해 실시간으로 백업할 수 있도록 해줌으로써 데이터의 신뢰성을 향상시켜준다.
도8에는 플래시 메모리(60)의 영역을 2개로 구획한 후 각각의 영역을 2개로 다시 구획하여 동일한 데이터(#00 ~ #07)를 직렬 및 병렬로 분산 저장하는 방법이 예시되어 있다. 이에 따르면 상기 일련의 데이터 중에서 일부(#00 ~ 03)를 한 쪽 영역(65)의 제1 구간(63)에 저장하고 나머지 일부(#04 ~ 07)는 다른 쪽 영역(68)의 제1 구간(66)에 직렬적으로 분산하여 저장한다. 이러한 직렬적 분산 저장에 의해 플래시 메모리 내에 한쪽 영역에 한꺼번에 베드 블록이 발생한 경우에도 데이터의 신뢰성을 높여준다.
또한, 상기 직렬로 분산 저장된 일련의 데이터는 상기한 이중 저장 방식에 따라 병렬적으로 다시 저장함으로써 데이터를 신뢰성을 더욱 높일 수 있다. 이러한 기술 효과는 상기 일련의 데이터 중 일부(#00 ~ 03)를 한 쪽 영역(64)의 제2 구간(63)에 이중으로 저장하고, 나머지 일부(#04 ~ 07)는 다른 쪽 영역(68)의 제2 구간(67)에 이중으로 저장하도록 구성함으로써 달성된다.
상술한 바와 같이, 본 발명에 따른 동적 매핑 테이블을 이용한 플래시 메모리 관리방법에 의하면, 동적 매핑 테이블을 이용한 매핑 알고리즘, 캐싱 알고리즘, 병합 알고리즘 및 저장 알고리즘을 새로이 개발하여 플래시 메모리에 저장되는 데이터의 처리 속도 및 신뢰성을 향상시켜준다.

Claims (6)

  1. 각 영역(area)별로 데이터를 매핑하는 인 플래이스(IN PLACE) 방법을 사용한 플래시 메모리의 관리방법에 있어서,
    (a) 플래시 메모리 내에 저장되는 데이터와 그 데이터의 매핑 테이블을 생성하는데 필요한 정보(데이터 매핑 정보)를 각 영역별로 구분하여 실시간으로 함께 저장하는 단계;
    (b) 상기 데이터에 대한 연산 수행 시에 상기 데이터 매핑 정보를 이용하여 시스템의 램(RAM) 내에 동적 매핑 테이블을 생성하는 단계;
    (c) 상기 동적 매핑 테이블을 이용해 플래시 메모리로부터 필요한 데이터를 램으로 로드하여 연산하는 단계를 포함하는 것을 특징으로 하는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법.
  2. 제1항에 있어서, 상기 (c)단계는,
    (d) 상기 데이터를 연산할 때 변경되는 데이터 매핑 정보를 이용하여 램에 생성된 동적 매핑 테이블과 플래시 메모리의 각 영역에 저장된 해당 데이터 매핑 정보를 실시간으로 갱신하는 단계를 더 포함하는 것을 특징으로 하는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법.
  3. 제1항 또는 제2항에 있어서, 상기 (b) 단계의 동적 매핑 테이블은 메타 정보 용 매핑 테이블과 데이터 정보용 매핑 테이블로 구성되는 것을 특징으로 하는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법.
  4. 제1항에 있어서, 상기 (b) 단계는,
    시스템 사용에 따라 발생하는 베드 블록(block)으로 인하여 하나의 영역 내에 여유 블록(block)이 없는 경우에는 여유 블록을 확보할 수 있을 때까지 인접하는 영역을 실시간으로 병합하여 동적 매핑 테이블을 생성하는 것을 특징으로 하는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법.
  5. 제1항에 있어서, 상기 (a) 단계는,
    상기 데이터 및 데이터 매핑 정보를 플래시 메모리 구성하는 각 영역에 직렬 또는 병렬로 분산하여 저장하는 것을 특징으로 하는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법.
  6. 제5항에 있어서, 상기 (a) 단계는,
    상기 플래시 메모리를 구성하는 영역을 실제 데이터 및 데이터 매핑 정보를 저장하는 영역과 백업용 데이터 및 데이터 매핑 정보를 저장하는 영역으로 구획하여 이중으로 저장하는 것을 특징으로 하는 동적 매핑 테이블을 이용한 플래시 메모리 관리방법.
KR1020060055083A 2006-06-19 2006-06-19 동적 매핑 테이블을 이용한 플래시 메모리 관리방법 KR100745163B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060055083A KR100745163B1 (ko) 2006-06-19 2006-06-19 동적 매핑 테이블을 이용한 플래시 메모리 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060055083A KR100745163B1 (ko) 2006-06-19 2006-06-19 동적 매핑 테이블을 이용한 플래시 메모리 관리방법

Publications (1)

Publication Number Publication Date
KR100745163B1 true KR100745163B1 (ko) 2007-08-01

Family

ID=38601632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060055083A KR100745163B1 (ko) 2006-06-19 2006-06-19 동적 매핑 테이블을 이용한 플래시 메모리 관리방법

Country Status (1)

Country Link
KR (1) KR100745163B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100977709B1 (ko) 2008-08-20 2010-08-24 주식회사 셀픽 플래시메모리 저장장치 및 그에 따른 관리 방법
KR101029704B1 (ko) 2008-06-17 2011-04-18 주식회사 셀픽 플래시 메모리 관리 방법
US8417875B2 (en) 2009-04-15 2013-04-09 Samsung Electronics Co., Ltd. Non-volatile memory controller processing new request before completing current operation, system including same, and method
US9460006B2 (en) 2013-03-15 2016-10-04 Samsung Electronics Co., Ltd. Nonvolatile memory system, system including the same, and method of adaptively adjusting user storage region in the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
KR20030075356A (ko) * 2002-03-18 2003-09-26 삼성전기주식회사 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
KR20030075356A (ko) * 2002-03-18 2003-09-26 삼성전기주식회사 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020030040817
1020030075356

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101029704B1 (ko) 2008-06-17 2011-04-18 주식회사 셀픽 플래시 메모리 관리 방법
KR100977709B1 (ko) 2008-08-20 2010-08-24 주식회사 셀픽 플래시메모리 저장장치 및 그에 따른 관리 방법
US8417875B2 (en) 2009-04-15 2013-04-09 Samsung Electronics Co., Ltd. Non-volatile memory controller processing new request before completing current operation, system including same, and method
US9128618B2 (en) 2009-04-15 2015-09-08 Samsung Electronics Co., Ltd. Non-volatile memory controller processing new request before completing current operation, system including same, and method
US9460006B2 (en) 2013-03-15 2016-10-04 Samsung Electronics Co., Ltd. Nonvolatile memory system, system including the same, and method of adaptively adjusting user storage region in the same

Similar Documents

Publication Publication Date Title
USRE46404E1 (en) Flash memory management method
KR100484147B1 (ko) 플래시 메모리 관리 방법
KR101982251B1 (ko) 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법
US6675281B1 (en) Distributed mapping scheme for mass storage system
JP4938460B2 (ja) 不揮発性メモリおよびブロック管理システムを伴う方法
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
JP5571691B2 (ja) 記憶装置におけるマッピングアドレステーブルの維持
US8180955B2 (en) Computing systems and methods for managing flash memory device
US20140068152A1 (en) Method and system for storage address re-mapping for a multi-bank memory device
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
JP4682261B2 (ja) 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
KR100988388B1 (ko) 플래시 메모리 장치의 성능 향상 방법 및 이를 수행하는 플래시 메모리 장치
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
KR100638638B1 (ko) 플래시 메모리의 제어 방법
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR100874013B1 (ko) 플래시 메모리의 데이터 관리 방법 및 장치
KR100868674B1 (ko) 플래시메모리 관리방법
KR101155566B1 (ko) 공간 데이터의 페이지 매핑 방법
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
Chowdhur et al. A survey of flash memory design and implementation of database in flash memory

Legal Events

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

Payment date: 20120726

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131112

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140722

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150623

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160719

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170705

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190822

Year of fee payment: 13