KR20080073499A - 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 - Google Patents

그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 Download PDF

Info

Publication number
KR20080073499A
KR20080073499A KR1020070012198A KR20070012198A KR20080073499A KR 20080073499 A KR20080073499 A KR 20080073499A KR 1020070012198 A KR1020070012198 A KR 1020070012198A KR 20070012198 A KR20070012198 A KR 20070012198A KR 20080073499 A KR20080073499 A KR 20080073499A
Authority
KR
South Korea
Prior art keywords
block
log
group
data
mapping
Prior art date
Application number
KR1020070012198A
Other languages
English (en)
Other versions
KR100885181B1 (ko
Inventor
천원문
이양섭
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070012198A priority Critical patent/KR100885181B1/ko
Priority to US11/833,750 priority patent/US20080189490A1/en
Priority to JP2008023003A priority patent/JP2008192154A/ja
Priority to CNA2008100099115A priority patent/CN101241474A/zh
Publication of KR20080073499A publication Critical patent/KR20080073499A/ko
Application granted granted Critical
Publication of KR100885181B1 publication Critical patent/KR100885181B1/ko

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의 어드레스 맵핑 방법에 관한 것이다. 본 발명에 따른 메모리 시스템은 파일 시스템; 복수의 데이터 블록 및 복수의 로그 블록을 갖는 플래시 메모리; 및 상기 파일 시스템과 상기 플래시 메모리 사이의 어드레스 맵핑 동작을 관리하기 위한 플래시 변환 레이어를 포함한다. 여기에서, 상기 플래시 변환 레이어는 상기 복수의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하고, 상기 복수의 로그 블록 중 적어도 하나 이상의 로그 블록을 하나의 로그 블록 그룹으로 관리하며, 상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리한다. 본 발명에 따른 메모리 시스템은 그룹 맵핑 방법을 사용함으로, 로그 블록의 페이지 이용률을 높일 수 있다. 또한, 본 발명은 머지 연산 및 블록 소거 횟수를 줄일 수 있다.

Description

그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의 어드레스 맵핑 방법{MEMORY SYSTEM PERFORMING GROUP MAPPING OPERATION AND ADDRESS MAPPING METHOD THEREOF}
도 1은 일반적인 플래시 메모리를 사용하는 메모리 시스템의 하드웨어 구조를 보여주는 블록도이다.
도 2는 도 1에 도시된 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다.
도 3은 도 2에 도시된 메모리 시스템의 혼합 맵핑 방법을 보여주는 블록도이다.
도 4는 도 3에 도시된 메모리 시스템의 혼합 맵핑 방법을 설명하기 위한 개념도이다.
도 5는 도 4에 도시된 데이터 블록과 로그 블록의 머지 방법을 예시적으로 보여주는 다이어그램이다.
도 6은 본 발명에 따른 메모리 시스템의 혼합 맵핑 방법을 보여주는 블록도이다.
도 7은 도 6에 도시된 메모리 시스템의 혼합 맵핑 방법을 설명하기 위한 개념도이다.
도 8 내지 도 10은 도 6에 도시된 블록 맵핑 테이블, 그룹 맵핑 테이블, 그리고 페이지 맵핑 테이블을 예시적으로 보여주는 도표이다.
도 11은 도 6에 도시된 메모리 시스템의 혼합 맵핑 방법을 예시적으로 보여주는 개념도이다.
도 12 내지 도 14는 도 6에 도시된 메모리 시스템의 단순 머지 동작을 보여주는 개념도 및 도표이다.
도 15 및 도 16은 도 6에 도시된 메모리 시스템의 스왑 머지 동작을 보여주는 개념도 및 도표이다.
도 17 및 도 18은 도 6에 도시된 메모리 시스템의 복사 머지 동작을 보여주는 개념도 및 도표이다.
* 도면의 주요 부분에 대한 부호 설명 *
300, 500; 메모리 시스템 310, 510; 파일 시스템
320, 520; 플래시 변환 레이어 330, 530; 플래시 메모리
321, 521; 블록 맵핑 테이블 322, 523; 페이지 맵핑 테이블
522; 그룹 맵핑 테이블
본 발명은 메모리 시스템에 관한 것으로, 더욱 상세하게는 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의 어드레스 맵핑 방법에 관한 것이다.
최근 디지털 카메라, MP3 플레이어, 핸드폰, PDA 등과 같은 휴대용 전자 장치가 많이 사용되고 있다. 이러한 휴대용 전자 장치에는 플래시 메모리가 주로 사용되고 있다. 이는 플래시 메모리가 저전력 및 고집적 등의 특성을 갖는 비휘발성 소자이기 때문이다.
그러나 플래시 메모리는 데이터 덮어 쓰기(over write)가 가능한 하드 디스크와 달리, 데이터 덮어 쓰기가 자유롭지 못하다. 플래시 메모리에 데이터를 덮어 쓰기 위해서는 데이터를 쓰기 전에 지워야 한다. 이를 쓰기 전 소거 동작(erase-before-write)이라 한다. 즉, 플래시 메모리는 데이터를 쓰기 전에, 초기 상태 또는 소거 상태로 되돌려 놓아야 한다.
플래시 메모리의 소거 동작은 일반적으로 쓰기 동작에 비해 매우 긴 시간이 소요된다. 또한, 플래시 메모리의 소거 단위는 쓰기 단위보다 훨씬 큰 블록 단위로 수행되기 때문에, 소거되지 않아도 되는 부분까지 함께 지워지는 결과를 초래할 수 있다. 원치않게 지워진 부분은 다시 쓰기 동작을 통해 복원해야 한다.
이와 같이 플래시 메모리는 소거와 쓰기 동작의 단위가 일치하지 않기 때문에, 쓰기 동작의 수행 성능은 읽기 동작에 비해 현저하게 떨어지며, 심지어 하드 디스크보다 그 성능이 떨어진다. 또한, 플래시 메모리는 동일한 블록에 대해 10만 번 정도의 소거 동작을 수행하면, 더 이상 사용할 수 없게 된다. 플래시 메모리는 특정 블록에 대해 소거 동작이 반복되는 것을 피하기 위해 웨어 레벨링(wear leveling) 동작을 수행한다.
플래시 변환 레이어(FTL; Flash Translation Layer)는 플래시 메모리의 이러 한 단점들을 극복하고, 플래시 메모리를 효율적으로 관리하기 위한 소프트웨어이다. 플래시 변환 레이어(FTL)는 파일 시스템(File System)으로부터 논리 어드레스(LA; Logical Address)를 입력받고, 이를 물리 어드레스(PA; Physical Address)로 변환한다. 여기에서, 물리 어드레스(PA)는 실제 플래시 메모리에서 사용할 어드레스이다.
플래시 변환 레이어(FTL)는 위와 같은 어드레스 맵핑 동작을 관리하기 위해 어드레스 맵핑 테이블(Address Mapping Table)을 가지고 있다. 어드레스 맵핑 테이블은 주로 랜덤 액세스 메모리(RAM)에 상에서 구동된다. 어드레스 맵핑 테이블에는 논리 어드레스(Logical Address) 및 이에 대응하는 물리 어드레스(Physical Address)가 기록되어 있다. 어드레스 맵핑 테이블은 맵핑 단위에 따라 그 크기가 달라질 수 있으며, 맵핑 단위에 따라 다양한 맵핑 방법을 갖는다.
대표적인 맵핑 방법으로, 페이지 맵핑 방법(page mapping method), 블록 맵핑 방법(block mapping method), 그리고 혼합 맵핑 방법(hybrid mapping method) 등이 있다.
페이지 맵핑 방법에는 페이지 맵핑 테이블이 사용된다. 페이지 맵핑 테이블은 페이지 단위로 맵핑 동작을 수행하기 위한 것이며, 논리 페이지 및 이에 대응하는 물리 페이지를 저장한다. 블록 맵핑 방법에는 블록 맵핑 테이블이 사용된다. 블록 맵핑 테이블은 블록 단위로 맵핑 동작을 수행하기 위한 것이며, 논리 블록 및 이에 대응하는 물리 블록을 저장한다. 혼합 맵핑 방법은 페이지 맵핑 방법과 블록 맵핑 방법을 동시에 사용하는 방법이다.
일반적으로 하나의 메모리 블록은 수십 또는 수백 개의 페이지로 구성된다. 따라서 페이지 맵핑 방법을 사용할 경우에, 맵핑 테이블의 크기는 블록 맵핑 방법을 사용할 때보다 수십 배 또는 수백 배 증가하게 된다. 즉, 페이지 맵핑 방법은 맵핑 테이블을 사용하는 데 너무 많은 메모리 공간을 필요로 한다는 단점을 갖는다.
반면, 블록 맵핑 방법은 블록 단위로 맵핑 동작을 수행하기 때문에, 페이지 맵핑 방법에 비해 맵핑 테이블의 크기를 줄일 수 있는 장점을 갖는다. 그러나 블록 맵핑 방법에 의하면, 블록 내에 쓰일 페이지의 위치가 고정되기 때문에, 많은 머지(merge) 연산을 수행해야 한다는 단점을 갖는다.
혼합 맵핑 방법은 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다. 혼합 맵핑 방법은 두 가지 맵핑 방법을 모두 사용함으로, 맵핑 테이블의 크기를 줄임과 동시에, 머지 연산의 횟수를 줄일 수 있다.
쓰기 동작 시에, 데이터 블록에 저장될 페이지 데이터는 먼저 로그 블록에 저장된다. 그 다음에, 로그 블록 및 이에 대응하는 데이터 블록에 저장된 페이지 데이터는 머지 동작을 통해 새로운 데이터 블록(new data block)에 저장된다. 머지 동작 후에, 로그 블록 및 데이터 블록은 소거된다.
이와 같이 혼합 맵핑 방법을 사용하면, 복수의 페이지 복사 및 복수의 블록 소거 동작이 수행된다. 예를 들어, 하나의 데이터 블록이 4개의 페이지로 구성되어 있다고 가정하면, 위의 예에서 4번의 페이지 복사 및 2번의 블록 소거 동작이 수행 된다. 혼합 맵핑 방법을 사용함에 있어서, 많은 수의 페이지 복사 및 블록 소거 동작은 메모리 시스템의 성능을 저하하는 요인이 되고 있다.
한편, 혼합 맵핑 방법에 의하면, 하나의 로그 블록은 하나의 데이터 블록에 할당된다. 머지 동작은 로그 블록의 페이지 중에서 일부만 사용한 경우에도 발생할 수 있다. 예를 들어, 로그 블록의 페이지 수가 네 개라고 가정할 때, 세 개 또는 두 개의 페이지가 사용된 상태에서 머지 동작이 일어날 수 있다. 최악의 경우에는 하나의 페이지만 사용된 상태에서 머지 동작이 일어날 수 있다. 이러한 경우에, 로그 블록의 페이지 이용률은 75%, 50%, 25%로 줄어들게 된다. 로그 블록의 낮은 페이지 이용률은 메모리 시스템의 성능을 저하하는 요인이 되고 있다.
본 발명은 상술한 기술적 과제를 해결하기 위해 제안된 것으로, 본 발명의 목적은 페이지 복사 및 블록 소거 동작을 줄일 수 있고, 로그 블록의 페이지 이용률을 높일 수 있는 메모리 시스템 및 그것의 어드레스 맵핑 방법을 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 파일 시스템; 복수의 데이터 블록 및 복수의 로그 블록을 갖는 플래시 메모리; 및 상기 파일 시스템과 상기 플래시 메모리 사이의 어드레스 맵핑 동작을 관리하기 위한 플래시 변환 레이어를 포함한다. 여기에서, 상기 플래시 변환 레이어는 상기 복수의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하고, 상기 복수의 로그 블록 중 적어도 하나 이상의 로그 블록을 하나의 로그 블록 그룹으로 관리하며, 상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리한다.
실시 예로서, 상기 플래시 변환 레이어는 블록 맵핑을 위한 블록 맵핑 테이블, 그룹 맵핑을 위한 그룹 맵핑 테이블, 그리고 페이지 맵핑을 위한 페이지 맵핑 테이블을 갖는다. 상기 블록 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 블록 번호(LBN)와, 상기 논리 블록 번호(LBN)에 대응하는 물리 블록 번호(PBN)를 저장한다. 상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장한다. 상기 페이지 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 페이지 번호(LPN)와, 상기 논리 페이지 번호(LPN)에 대응하며 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 페이지 번호(PPN)를 저장한다.
다른 실시 예로서, 상기 로그 블록 그룹에 속한 로그 블록은 머지 동작에 의해 자유 블록으로 변환된다. 상기 머지 동작은 단순 머지 동작 또는 스왑 머지 동작 또는 복사 머지 동작이다. 상기 로그 블록 그룹에 속한 로그 블록 중에서, 할당된 데이터 블록의 수가 많은 로그 블록부터 자유 블록으로 변환된다.
본 발명에 따른 메모리 시스템의 다른 일면은 논리 어드레스를 제공하는 파일 시스템; 복수의 데이터 블록 및 복수의 로그 블록을 갖는 플래시 메모리; 및 상기 논리 어드레스에 대응하는 물리 어드레스를 저장함으로, 상기 파일 시스템과 상기 플래시 메모리 사이의 어드레스 맵핑 동작을 관리하는 플래시 변환 레이어를 포 함한다. 여기에서, 상기 플래시 변환 레이어는 N(N은 자연수)개의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하고, 상기 데이터 블록 그룹에 할당되어 있는 하나부터 최대 k(k는 자연수)개의 로그 블록을 하나의 로그 블록 그룹으로 관리한다.
실시 예로서, 상기 플래시 변환 레이어는 상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리한다. 상기 플래시 변환 레이어는 상기 데이터 블록 그룹과 상기 로그 블록 그룹 사이의 어드레스 맵핑 동작을 관리하기 위한 그룹 맵핑 테이블을 갖는다. 상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장한다.
다른 실시 예로서, 상기 플래시 변환 레이어는 블록 맵핑을 위한 블록 맵핑 테이블, 그룹 맵핑을 위한 그룹 맵핑 테이블, 그리고 페이지 맵핑을 위한 페이지 맵핑 테이블을 갖는다. 상기 블록 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 블록 번호(LBN)와, 상기 논리 블록 번호(LBN)에 대응하는 물리 블록 번호(PBN)를 저장한다. 상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장한다. 상기 페이지 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 페이지 번호(LPN)와, 상기 논리 페이지 번호(LPN)에 대응하며 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 페이지 번호(PPN)를 저장한다.
본 발명에 따른 플래시 변환 레이어는 플래시 메모리의 블록 맵핑 동작을 관 리하기 위한 블록 맵핑 테이블; 및 상기 플래시 메모리의 복수의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록으로 관리하고, 상기 플래시 메모리의 복수의 로그 블록 중 적어도 하나 이상의 로그 블록을 하나의 로그 블록으로 관리하기 위한 그룹 맵핑 테이블을 포함한다. 여기에서, 상기 그룹 맵핑 테이블은 상기 로그 블록 그룹에 속한 하나의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리한다.
본 발명에 따른 메모리 시스템의 어드레스 맵핑 방법에서, 상기 메모리 시스템은 플래시 메모리의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하는 플래시 변환 레이어를 포함한다. 상기 메모리 시스템의 어드레스 맵핑 방법은 파일 시스템으로부터 논리 어드레스를 입력받는 단계; 상기 논리 어드레스에 따라, 상기 데이터 블록 그룹에 할당되는 적어도 하나 이상의 로그 블록(이하, 로그 블록 그룹이라 함)을 생성하는 단계; 및 상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당되도록, 어드레스 맵핑 정보를 맵핑 테이블에 등록하는 단계를 포함한다.
실시 예로서, 상기 플래시 변환 레이어는 상기 데이터 블록 그룹과 상기 로그 블록 그룹 사이의 어드레스 맵핑 동작을 관리하기 위한 그룹 맵핑 테이블을 갖는다. 상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장한다. 상기 데이터 블록 그룹에 할당되어 있는 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 경우에, 상기 로그 블록의 물리 블록 번호는 상기 그룹 맵핑 테이블에서 삭제된다.
다른 실시 예로서, 본 발명에 따른 어드레스 맵핑 방법은 상기 로그 블록 그룹에 속한 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 단계를 더 포함한다. 상기 머지 동작은 단순 머지 동작 또는 스왑 머지 동작 또는 복사 머지 동작인 것을 특징으로 한다. 상기 로그 블록 그룹에 속한 로그 블록 중에서, 할당된 데이터 블록의 수가 많은 로그 블록부터 자유 블록으로 변환된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 일반적인 플래시 메모리를 사용하는 메모리 시스템의 하드웨어 구조를 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 중앙처리장치(110), 랜덤 액세스 메모리(120), 그리고 플래시 메모리(130)를 포함한다.
플래시 메모리(130)는 당업자에게 잘 알려진 바와 같이, 스트링 구조(string structure)를 갖는 복수의 메모리 셀로 구성된다. 메모리 셀들의 집합은 보통 셀 어레이(cell array)라고 한다. 플래시 메모리(130)의 셀 어레이는 복수의 메모리 블록(memory block)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(page)로 구성된다. 각각의 페이지는 하나의 워드 라인을 공유하는 복수의 메모리 셀로 구성된다.
플래시 메모리(130)는 읽기 및 쓰기 동작의 단위와 소거 동작의 단위가 다르다. 즉, 플래시 메모리(130)는 메모리 블록 단위로 소거 동작을 수행하고, 페이지 단위로 읽기 또는 쓰기 동작을 수행한다. 또한, 플래시 메모리(130)는 다른 반도체 메모리와 달리 겹쳐 쓰기(over write)를 지원하지 않는다. 따라서 플래시 메모리(130)는 쓰기 동작 전에 소거 동작을 수행한다.
플래시 메모리(130)의 이와 같은 특성으로 인해, 플래시 메모리(130)를 하드 디스크처럼 사용하기 위해서는, 읽기/쓰기/소거 동작에 대한 별도의 관리가 필요하다. 플래시 변환 레이어(FTL; Flash Translation Layer)는 이러한 목적으로 개발된 시스템 소프트웨어이다. 플래시 변환 레이어(FTL)는 랜덤 액세스 메모리(120) 상에서 구동된다.
도 2는 도 1에 도시된 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다. 도 2를 참조하면, 메모리 시스템은 애플리케이션(205), 파일 시스템(210), 플래시 변환 레이어(220), 그리고 플래시 메모리(230) 순으로 소프트웨어 계층 구조(200)를 갖는다.
플래시 변환 레이어(220)는 애플리케이션(205) 또는 파일 시스템(210)으로부터 논리 어드레스(LA; Logical Address)를 입력받는다. 플래시 변환 레이어(220)는 논리 어드레스(LA)를 입력받고, 이를 물리 어드레스(PA; Physical Address)로 변환한다. 물리 어드레스(PA)는 플래시 메모리(230)로 제공된다. 플래시 변환 레이어(220)는 어드레스 변환을 위해 어드레스 맵핑 테이블(Address Mapping Table)을 갖는다. 어드레스 맵핑 테이블은 도 1에 도시된 랜덤 액세스 메모리(120) 상에서 구동된다.
플래시 변환 레이어(220)의 어드레스 맵핑 방법에는 맵핑 단위에 따라 여러 가지가 있다. 대표적인 어드레스 맵핑 방법에는 페이지 맵핑 방법(page mapping method), 블록 맵핑 방법(block mapping method), 그리고 혼합 맵핑 방법(hybrid mapping method)이 있다.
페이지 맵핑 방법은 페이지 단위로 어드레스 맵핑 동작을 수행한다. 페이지 맵핑 방법에 의하면, 페이지 단위로 어드레스 변환 동작이 수행되므로, 후에 페이지 정렬을 위한 머지 동작을 수행하지 않아도 되는 장점이 있다. 반면에, 페이지 맵핑 방법은 큰 사이즈의 어드레스 맵핑 테이블을 필요로 한다. 즉, 페이지 맵핑 방법을 사용하기 위해서는 용량이 큰 랜덤 액세스 메모리(120)가 필요하다. 이와 같이 페이지 맵핑 방법은 머지 동작을 수행하지 않아도 되는 장점을 갖는 반면에, 페이지 맵핑 테이블을 위해 용량이 큰 메모리를 필요로 하는 단점을 갖는다.
블록 맵핑 방법은 메모리 블록 단위로 어드레스 맵핑 동작을 수행한다. 블록 맵핑 방법은 페이지 맵핑 방법에 비해 메모리 사이즈를 줄일 수 있는 장점을 갖는다. 반면에, 블록 맵핑 방법은 페이지 정렬을 위해 많은 수의 머지 연산을 수행해야 하는 단점을 갖는다. 혼합 맵핑 방법은 페이지 맵핑 방법과 블록 맵핑 방법을 모두 사용함으로, 맵핑 테이블의 크기를 줄임과 동시에, 머지 연산의 횟수를 줄이기 위한 방법이다. 혼합 맵핑 방법은 이하에서 상세히 설명된다.
도 3은 도 2에 도시된 메모리 시스템의 혼합 맵핑 방법을 보여주기 위한 블록도이다. 도 3을 참조하면, 메모리 시스템(300)은 파일 시스템(310), 플래시 변환 레이어(320), 그리고 플래시 메모리(330)를 포함한다. 플래시 변환 레이어(320)는 파일 시스템(310)으로부터 논리 어드레스(LA)를 입력받고, 맵핑 테이블을 사용하여 물리 어드레스(PA)로 변환한다.
도 3을 참조하면, 플래시 변환 레이어(320)는 블록 맵핑 테이블(321) 및 페이지 맵핑 테이블(322)을 갖는다. 블록 맵핑 테이블(321)은 논리 블록 번호(LBN)를 물리 블록 번호(PBN)로 변환하기 위한 것이다. 페이지 맵핑 테이블(322)은 로그 블록의 페이지 맵핑을 위한 것이다. 페이지 맵핑 테이블(322)은 논리 페이지 번호(LPN)를 물리 페이지 번호(PPN)로 변환하기 위한 것이다. 플래시 변환 레이어(320)의 어드레스 맵핑 동작은 도 4 및 도 5를 참조하여, 상세히 설명된다.
계속해서 도 3을 참조하면, 플래시 메모리(330)는 데이터 영역(331), 로그 영역(332), 자유 영역(333), 그리고 메타 영역(334)을 포함한다. 데이터 영역(331)은 복수의 데이터 블록으로 구성되며, 사용자 데이터를 저장한다. 로그 영역(332)은 하나 또는 그 이상의 로그 블록으로 구성된다. 로그 블록(332)은 특정 데이터 블록에 할당된다.
특정 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 특정 데이터 블록에 직접 쓰여 지는 것이 아니라, 할당된 로그 블록에 먼저 쓰여 진다. 그 다음에, 머지(merge) 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지는 새로운 데이터 블록으로 복사된다.
자유 영역(333)은 복수의 자유 블록으로 구성된다. 자유 블록은 로그 블록의 부족이 발생할 때, 로그 블록으로 변환된다. 한편, 머지 동작 후에 소거된 데이터 블록 또는 로그 블록은 자유 블록으로 변환된다. 이와 같이 어느 하나의 메모리 블록은 머지 동작에 의해 데이터 블록, 로그 블록, 자유 블록으로 변환될 수 있다. 머지 동작에 따른 맵핑 정보의 변경은 메타 영역(334)에 저장된다.
도 4는 도 3에 도시된 메모리 시스템의 혼합 맵핑 방법을 설명하기 위한 개념도이다. 도 4를 참조하면, 플래시 메모리(도 3 참조, 330)는 데이터 블록들로 구성된 데이터 영역(331), 로그 블록들로 구성된 로그 영역(332), 그리고 자유 블록들로 구성된 자유 영역(333)을 갖는다.
데이터 영역(도 3 참조, 331)은 100, …, 105, 206, 303, …, 900, …, 903의 물리 블록 번호(PBN; Physical Block Number)를 갖는 데이터 블록들로 구성된다. 로그 영역(도 3 참조, 332)은 300, 400, 500의 물리 블록 번호(PBN)를 갖는 로그 블록들로 구성된다. 자유 영역(도 3 참조, 333)은 600, …, 603의 물리 블록 번호(PBN)를 갖는 자유 블록들로 구성된다. 로그 블록 300은 데이터 블록 100에 할당되어 있고, 로그 블록 400은 데이터 블록 102에 할당되어 있고, 로그 블록 500은 데이터 블록 104에 할당되어 있다.
도 4를 참조하면, 하나의 데이터 블록에는 하나의 로그 블록이 할당되어 있다. 즉, 외부적으로 하나의 논리 블록에 대해서, 내부적으로 두 개의 물리 블록(예를 들면, 데이터 블록 100과 로그 블록 300)이 사용된다. 이러한 의미에서, 도 4에 도시된 혼합 맵핑 방법은 "1:2 맵핑 방법"이라고도 한다. 1:2 맵핑 방법에 의하면, 로그 블록 300은 데이터 블록 100에 속하는 페이지 데이터만을 기록할 수 있다.
파일 시스템(도 3 참조, 310)이 데이터 쓰기 요청(write request)을 하면, 플래시 변환 레이어(도 3 참조, 320)는 해당 데이터 블록에 할당된 로그 블록이 있는지를 검사한다. 해당 데이터 블록에 할당된 로그 블록이 있으면, 할당된 로그 블록이 사용된다. 그러나 해당 데이터 블록에 할당된 로그 블록이 없으면, 해당 데이 터 블록은 자유 블록으로부터 새로운 로그 블록을 할당받는다. 새롭게 할당된 로그 블록에 대해서는 프로그램 동작 전에 소거 동작이 수행된다.
도 5는 도 4에 도시된 데이터 블록과 로그 블록의 머지 방법을 예시적으로 보여준다. 도 5를 참조하면, 로그 블록 300은 데이터 블록 100에 할당되어 있다. 데이터 블록 100과 로그 블록 300은 각각 4개의 물리 페이지로 구성되어 있다. 도 5에 도시된 물리 페이지 번호(PPN)는 각각의 메모리 블록의 페이지 순서를 의미한다.
플래시 변환 레이어(도 3 참조, 320)는 쓰기 요청(write request)에 응답하여, 데이터 블록 100에 할당된 로그 블록 300에 대해 페이지 쓰기 동작을 수행한다. 도 5를 참조하면, 파일 시스템(도 3 참조, 310)은 2번, 3번, 0번, 1번 논리 페이지 순서로 쓰기 요청을 하고 있다. 여기에서, 1번 논리 페이지는 데이터 블록 100의 제 2 물리 페이지(PPN2)에 저장되어 있다.
2번 논리 페이지에 대한 쓰기 요청이 입력되면, 로그 블록 300의 제 1 물리 페이지(PPN1)에 대한 쓰기 동작이 수행된다. 다음으로, 3번 논리 페이지에 대한 쓰기 요청이 들어오면, 로그 블록 300의 제 2 물리 페이지(PPN2)에 대한 쓰기 동작이 수행된다. 그리고 0번 논리 페이지에 대한 쓰기 요청이 들어오면, 로그 블록 300의 제 3 물리 페이지(PPN3)에 대한 쓰기 동작이 수행된다.
이때, 전체 로그 블록이 부족하여, 로그 블록 300을 자유 블록(free block)으로 만들어야 하는 상황이 발생한다면, 플래시 변환 레이어(320)는 머지 동작을 수행한다. 즉, 로그 블록 300의 제 1 내지 제 3 물리 페이지(PPN1, PPN2, PPN3)에 저장된 2번, 3번, 0번 논리 페이지와 데이터 블록 100의 제 2 물리 페이지(PPN2)에 저장된 1번 논리 페이지는 새로운 데이터 블록 101로 복사된다.
먼저, 로그 블록 300의 0번 논리 페이지가 새로운 데이터 블록 101의 제 1 물리 페이지(PPN1)에 복사된다. 다음에, 데이터 블록 100의 1번 논리 페이지가 새로운 데이터 블록 101의 제 2 물리 페이지(PPN2)에 복사된다. 다음에, 로그 블록 300의 2번 및 3번 논리 페이지가 새로운 데이터 블록 101의 제 3 및 제 4 물리 페이지(PPN3, PPN4)로 복사된다. 다음에, 로그 블록 300 및 데이터 블록 100은 소거된다.
도 5에 도시된 혼합 맵핑 방법에 의하면, 로그 블록 300과 데이터 블록 100의 유효한 페이지(valid page)는 머지 동작에 의해 새로운 데이터 블록 101로 복사된다. 새로운 데이터 블록 101에는 0번 논리 페이지부터 3번 논리 페이지까지 순차적으로 쓰여 진다. 하나의 블록에 0번 논리 페이지부터 순차적으로 쓰여 지는 것을 순차 위치 방식(in-place order)라고 한다. 반면에, 하나의 블록에 논리 페이지들이 임의로 쓰여 지는 것을 임의 위치 방식(out-of-place order 또는 random-place order)라고 한다.
쓰기 요청이 0번, 1번, 2번, 3번 논리 페이지 순서이면, 이들 논리 페이지는 로그 블록 300의 제 1 내지 제 4 물리 페이지에 순차적으로 쓰여 진다. 로그 블록 300에 쓰인 페이지들은 별도의 페이지 복사 없이 곧바로 데이터 블록으로 등록될 수 있다. 이것은 로그 블록 300이 순차 위치 방식(in-place order)에 맞게 페이지를 배열하고 있기 때문이다.
그러나 쓰기 요청이 임의적일 때에는, 논리 페이지의 순서를 맞추기 위한 페이지 복사 과정이 반드시 필요하게 된다. 도 5의 예에서는, 4번의 페이지 복사 과정이 필요하다. 또한, 페이지 복사 후에는 로그 블록 300과 데이터 블록 100에 대한 2번의 소거 동작이 필요하다. 이와 같이, 도 4 및 도 5에 도시된 혼합 맵핑 방법은 페이지 순서를 맞추기 위해 많은 수의 페이지 복사 과정이 필요하다. 또한, 페이지 복사 후에는 로그 블록과 데이터 블록을 소거하기 위해 두 번의 블록 소거 동작이 필요하다.
한편, 도 5에서 로그 블록 300은 네 개의 페이지 중에서 세 개를 사용하고, 머지 동작에 의해 자유 블록으로 변환된다. 경우에 따라서는, 로그 블록 300의 페이지들 중에서 하나 또는 두 개만을 사용한 다음에, 자유 블록으로 변환될 수 있다. 이와 같이 도 4에 도시된 1:2 맵핑 방법에 의하면, 로그 블록 내의 페이지 이용률이 낮다. 도 5의 예에서는 75%의 이용률을 갖지만, 경우에 따라 25% 또는 50%의 이용률을 가질 수도 있다. 로그 블록 내의 낮은 평균 페이지 이용률은 메모리 시스템의 성능 감소의 원인이 되고 있다.
도 6은 본 발명에 따른 메모리 시스템의 혼합 맵핑 방법을 보여주기 위한 블록도이다. 도 6을 참조하면, 메모리 시스템(500)은 파일 시스템(510), 플래시 변환 레이어(520), 그리고 플래시 메모리(530)를 포함한다.
플래시 메모리(530)는 데이터 영역(531), 로그 영역(532), 자유 영역(533), 그리고 메타 영역(534)을 포함한다. 플래시 변환 레이어(520)는 파일 시스템(510)으로부터 논리 어드레스(LA)를 입력받고, 맵핑 테이블을 이용하여 물리 어드레 스(PA)로 변환한다. 플래시 변환 레이어(520)는 블록 맵핑 테이블(521), 그룹 맵핑 테이블(522), 그리고 페이지 맵핑 테이블(523)을 갖는다. 블록 맵핑 테이블(521) 및 페이지 맵핑 테이블(523)은 도 3에서 설명한 바와 같다. 그룹 맵핑 테이블(522)은 이하에서 상세히 설명된다.
도 7은 도 6에 도시된 메모리 시스템의 혼합 맵핑 방법을 설명하기 위한 개념도이다. 도 7을 참조하면, 플래시 메모리(도 6 참조, 530)는 복수의 데이터 블록 그룹(DBG1~DBGn)으로 구성된 데이터 영역(531), 복수의 로그 블록 그룹(LBG1, LBG2)으로 구성된 로그 영역(532), 그리고 자유 블록들로 구성된 자유 영역(533)을 갖는다.
제 1 데이터 블록 그룹(DBG1)은 100, 101, 102, 103의 물리 블록 번호(PBN)를 갖는 데이터 블록들로 구성된다. 제 2 데이터 블록 그룹(DBG2)은 104, 105, 206, 303의 물리 블록 번호(PBN)를 갖는 데이터 블록들로 구성된다. 제 n 데이터 블록 그룹(DBGn)은 900, 901, 902, 903의 물리 블록 번호(PBN)를 갖는 데이터 블록들로 구성된다.
제 1 로그 블록 그룹(LBG1)은 제 1 데이터 블록 그룹(DBG1)에 할당되며, 300, 400의 물리 블록 번호(PBN)를 갖는 두 개의 로그 블록들로 구성된다. 제 2 로그 블록 그룹(LBG2)은 제 2 데이터 블록 그룹(DBG2)에 할당되며, 500의 물리 블록 번호(PBN)를 갖는 하나의 로그 블록으로 구성된다. 이와 같이 도 7에 도시된 혼합 맵핑 방법은 하나의 데이터 블록 그룹(DBG; Data Block Group)에는 하나의 로그 블록 그룹(LBG; Log Block Group)이 할당된다. 이러한 의미에서, 도 7에 도시된 혼합 맵핑 방법은 "그룹 맵핑 방법"이라고 한다.
도 4에 도시된 혼합 맵핑 방법은 하나의 데이터 블록에 하나의 로그 블록이 할당되지만, 도 7에 도시된 혼합 맵핑 방법은 하나의 데이터 블록 그룹에 하나의 로그 블록 그룹이 할당된다. 하나의 데이터 블록 그룹과 로그 블록 그룹에는 각각 복수의 데이터 블록 및 복수의 로그 블록이 포함된다.
하나의 데이터 블록 그룹(DBG)이 N개의 데이터 블록을 갖고, 하나의 로그 블록 그룹(LBG)이 k개의 로그 블록을 갖는다고 가정하자. 이는 외부적으로 N개의 논리 블록에 대해서, 내부적으로 N+k개의 물리 블록(데이터 블록, 로그 블록)이 사용되는 것을 의미한다. 이러한 의미에서 도 7에 도시된 혼합 맵핑 방법은 "N:N+k 맵핑 방법" 이라 한다. 이는 도 4에 도시된 1:2 맵핑 방법과 비교된다. 그룹 맵핑 방법은 N과 k값을 조절함으로, 1:2 맵핑 방법을 포함하여 다양한 맵핑 방법으로 활용될 수 있다.
도 7은 예시적으로 "4:6 맵핑 방법"을 보여주고 있다. 4:6 맵핑 방법에 의하면, 하나의 로그 블록 그룹(LBG) 내의 각각의 로그 블록은 데이터 블록 그룹(DBG) 내의 모든 데이터 블록에 모두 할당될 수 있다. 예를 들면, 로그 블록 300은 데이터 블록 100, 101, 102, 103에 모두 할당될 수 있다. 마찬가지로, 로그 블록 400도 데이터 블록 100, 101, 102, 103에 모두 할당될 수 있다. 도 7에 도시된 그룹 맵핑 방법에 의하면, 머지 동작의 횟수가 줄어들 뿐만 아니라, 로그 블록 내의 평균 페이지 이용률을 높일 수 있다. 이는 이하에서 상세히 설명된다.
도 8 내지 도 10은 도 6에 도시된 블록 맵핑 테이블, 그룹 맵핑 테이블, 그 리고 페이지 맵핑 테이블을 예시적으로 보여준다.
도 8은 블록 맵핑 테이블의 예이다. 블록 맵핑 테이블은 논리 블록 번호(LBN; Logical Block Number)를 물리 블록 번호(PBN; Physical Block Number)로 변환하기 위한 것이다. 도 8을 참조하면, 논리 블록 번호 0 내 7은 각각 물리 블록 번호 100, …, 105, 206, 303에 대응된다. 예를 들어, 외부적으로 0번 논리 블록은 내부적으로 100번 물리 블록으로 변환된다.
도 9는 그룹 맵핑 테이블의 예이다. 제 1 데이터 블록 그룹(DBG1)은 로그 블록 300, 400에 대응된다. 제 2 데이터 블록 그룹(DBG2)은 로그 블록 500에 대응된다. 즉, 제 1 데이터 블록 그룹(DBG1) 내의 데이터 블록 100, 101, 102, 103에 프로그램될 데이터는 로그 블록 300 또는 400에 먼저 프로그램된다. 그리고 제 2 데이터 블록 그룹(DBG2) 내의 데이터 블록 104, 105, 206, 303에 입력될 데이터는 로그 블록 500에 먼저 프로그램된다.
도 10은 로그 블록의 페이지 맵핑 테이블의 예이고, 도 11은 데이터 블록 그룹(DBG)과 로그 블록 그룹(LBG) 사이의 맵핑 방법을 보여준다. 이하에서는 도 10 및 도 11을 참조하여, 본 발명에 따른 그룹 맵핑 방법이 상세히 설명된다.
먼저, 파일 시스템(도 6 참조, 510)이 3번과 4번 두 개의 논리 페이지에 대해 쓰기 요청(write request)을 한다고 가정하자. 플래시 변환 레이어(도 6 참조, 520)는 자유 블록에서 로그 블록을 할당받아서, 제 1 데이터 블록 그룹(DBG1)에 대응하는 제 1 로그 블록 그룹(LBG1)을 생성한다.
플래시 변환 레이어(520)는 자유 블록에서 할당받은 로그 블록 300을 그룹 맵핑 테이블(도 9 참조)에 등록한다. 로그 블록 300은 제 1 데이터 블록 그룹(DBG1) 내의 모든 데이터 블록에 할당될 수 있다. 따라서 로그 블록 300에는 0번부터 15번까지의 모든 논리 페이지가 저장될 수 있다. 도 11을 참조하면, 3번 및 4번 논리 페이지는 로그 블록 300의 제 1 및 제 2 물리 페이지(PPN 1200, PPN 1201)에 저장된다. 이때 로그 블록 300은 임의 위치 방식(out-of-place order)에 의해 페이지 데이터를 저장하기 때문에, 페이지 맵핑 정보는 페이지 맵핑 테이블(도 10 참조)에 저장된다.
다음으로, 파일 시스템(510)이 11번부터 12번까지 네 개의 논리 페이지에 대해 쓰기 요청(write request)을 한다고 가정하자. 11번 내지 14번 논리 페이지는 제 1 데이터 블록 그룹(DBG1)에 속한다. 따라서 현재 할당되어 있는 제 1 로그 블록 그룹(LBG1)은 11번 내지 14번 논리 페이지를 모두 저장할 수 있다. 이전에 할당받은 로그 블록 300에 11번 및 12번 논리 페이지가 저장된다. 11번 및 12번 논리 페이지는 로그 블록 300의 제 3 및 제 4 물리 페이지(PPN 1202, PPN 1203)에 저장된다. 이들에 대한 페이지 맵핑 정보는 페이지 맵핑 테이블(도 10 참조)에 저장된다.
13번 및 14번 논리 페이지를 저장하기 위해, 제 1 로그 블록 그룹(LBG1)은 자유 블록으로부터 하나의 로그 블록 400을 추가로 할당받는다. 할당받은 로그 블록 400은 그룹 맵핑 테이블(도 9 참조)에 등록된다. 참고로, 위의 예에서 로그 블록 그룹(LBG1, LBG2)은 최대 두 개의 로그 블록을 할당받을 수 있다.
추가로 할당받은 로그 블록 400에는 13번 및 14번 논리 페이지가 저장된다. 13번 및 14번 논리 페이지는 로그 블록 400의 제 1 및 제 2 물리 페이지(PPN 1600, PPN 1601)에 저장된다. 이들에 대한 페이지 맵핑 정보는 페이지 맵핑 테이블(도 10 참조)에 저장된다.
다음으로, 파일 시스템(510)이 17번부터 20번까지 네 개의 논리 페이지에 대해 쓰기 요청(write request)을 한다고 가정하자. 17번 내지 20번 논리 페이지는 제 2 데이터 블록 그룹(DBG2)에 속한다. 17번 논리 페이지는 제 2 데이터 블록 그룹(DBG2)에 속하기 때문에, 로그 블록 400에 저장될 수 없다.
플래시 변환 레이어(도 6 참조, 520)는 자유 블록에서 새로운 로그 블록 500을 할당받아서, 제 2 데이터 블록 그룹(DBG2)에 대응하는 제 2 로그 블록 그룹(LBG2)을 생성한다. 플래시 변환 레이어(520)는 자유 블록에서 할당받은 로그 블록 500을 그룹 맵핑 테이블(도 9 참조)에 등록한다. 로그 블록 500에는 16번 내지 31번 논리 페이지가 저장될 수 있다. 도 11을 참조하면, 17번 내지 20번 논리 페이지는 로그 블록 500의 제 1 내지 제 4 물리 페이지(PPN 2000~2003)에 저장된다. 이때 로그 블록 500의 페이지 맵핑 정보는 페이지 맵핑 테이블(도 10 참조)에 저장된다.
본 발명에 따른 메모리 시스템의 혼합 맵핑 방법은 그룹 맵핑 방법을 사용함으로, 로그 블록의 페이지 이용률을 높일 수 있다. 도 11을 참조하면, 제 1 로그 블록 그룹(LBG1) 내의 로그 블록 300은 모든 페이지를 사용한다. 만약, 도 4에 도시된 1:2 맵핑 방법에 의한다면, 하나의 페이지(PPN 1200)만 사용될 것이다. 이 경우에 로그 블록 300은 데이터 블록 100에만 할당되기 때문이다. 이와 같이 본 발명 은 하나의 로그 블록이 데이터 블록 그룹 내의 모든 데이터 블록에 할당되기 때문에, 평균 페이지 이용률을 종래에 비해 높일 수 있다.
한편, 본 발명에 따른 메모리 시스템의 머지 동작(merge operation)은 주로 로그 블록을 할당하기 위한 자유 블록이 없을 때 발생한다. 머지 동작에는 여러 가지가 있지만, 이하에서는 단순 머지 동작(simple merge operation), 스왑 머지 동작(swap merge operation), 그리고 복사 머지 동작(copy merge operation)이 설명된다.
도 12 내지 도 14는 단순 머지 동작을 보여준다. 도 12를 참조하면, 제 1 로그 블록 그룹(LBG1) 내의 로그 블록 300과 제 1 데이터 블록 그룹(DBG1) 내의 데이터 블록 100, 101, 102, 103은 단순 머지 동작에 의해 자유 블록으로 변환된다. 한편, 자유 블록 600, 601, 602, 603은 새로운 데이터 블록 그룹으로 등록된다. 도 12에서, 빗금 친 페이지는 유효 페이지(valid page)를 의미한다.
데이터 블록 100의 0번 내지 2번 논리 페이지와 로그 블록 300의 3번 논리 페이지는 머지 동작에 의해 새로운 데이터 블록 600의 제 1 내지 제 4 물리 페이지에 순차 위치 방식(in-place order)에 따라 차례대로 프로그램된다. 마찬가지로 데이터 블록 101의 5번 내지 7번 논리 페이지와 로그 블록 300의 4번 논리 페이지는 머지 동작에 의해 새로운 데이터 블록 601의 제 1 내지 제 4 물리 페이지에 순차 위치 방식에 맞게 프로그램된다.
머지 동작이 완료된 다음에, 로그 블록 300과 데이터 블록 100, 101, 102, 103은 자유 블록으로 변환된다. 로그 블록 300이 자유 블록으로 변환되면, 제 1 로 그 블록 그룹(LBG1)에는 로그 블록 400만 남는다. 그리고 새로운 데이터 블록 600, 601, 602, 603은 새로운 제 1 데이터 블록 그룹(LBG1)을 구성한다. 이러한 블록 맵핑 정보는 도 13에 도시된 블록 맵핑 테이블 및 도 14에 도시된 그룹 맵핑 테이블에 저장된다.
도 8과 도 13을 비교해 보면, 블록 맵핑 테이블의 0번 내지 3번 논리 블록 번호(LBN)에 대응하는 물리 블록 번호(PBN)가 바뀐 것을 알 수 있다. 도 13을 참조하면, 기존의 제 1 데이터 블록 그룹(OLD DBG1)의 물리 블록 번호(PBN) 100, 101, 102, 103은 새로운 제 1 데이터 블록 그룹(NEW DBG1)의 물리 블록 번호(PBN) 600, 601, 602, 603으로 변경된다. 도 9와 도 14를 비교해 보면, 제 1 로그 블록 그룹(LBG1)의 데이터 블록 300이 삭제된 것을 확인할 수 있다.
머지 동작 시에, 제 1 로그 블록 그룹(LBG1)의 두 개의 로그 블록 300, 400 중에서 어느 것이 먼지 자유 블록으로 변환되는지는, 할당된 데이터 블록의 수에 따라 결정된다. 할당된 데이터 블록의 수가 많은 로그 블록이 먼저 자유 블록으로 변환된다. 도 12에서, 로그 블록 300은 네 개의 데이터 블록 100, 101, 102, 103에 할당되어 있고, 로그 블록 400은 하나의 데이터 블록 103에 할당되어 있다. 따라 로그 블록 300에 대한 머지 동작이 먼저 수행된다.
도 15 및 도 16은 도 6에 도시된 메모리 시스템의 스왑 머지 동작(swap merge operation)을 보여준다. 파일 시스템(도 6 참조, 510)이 4번 내지 7번 논리 페이지 순서로 쓰기 요청을 한 경우에, 플래시 변환 레이어(도 6 참조, 520)는 스왑 머지 동작을 수행한다.
도 15를 참조하면, 4번 내지 7번 논리 페이지는 각각 로그 블록 300의 제 1 내지 제 4 물리 페이지에 저장된다. 4번 내지 7번 논리 페이지는 순차 위치 방식(in-place order)에 따라 프로그램되어 있기 때문에, 별도의 페이지 맵핑을 수행할 필요가 없다. 로그 블록 300과 데이터 블록 101이 서로 위치를 바꾸면 된다. 이러한 머지 동작을 스왑 머지 동작(swap merge operation)이라 한다. 제 1 데이터 블록 그룹(DBG1)은 스왑 머지 동작에 의해 데이터 블록 100, 300, 102, 103을 포함하게 된다. 기존의 데이터 블록 101은 자유 블록으로 변환된다.
도 16은 스왑 머지 동작 후의 블록 맵핑 테이블을 보여준다. 도 16에 도시된 블록 맵핑 테이블에 의하면, 논리 블록 번호(LBN) 1에 대응하는 물리 블록 번호(PBN) 300이다. 즉, 논리 블록 번호(LBN) 1에 대응하는 물리 블록 번호(PBN)는 스왑 머지 동작에 의해 101에서 300으로 변경된다.
도 17 및 도 18은 도 6에 도시된 메모리 시스템의 복사 머지 동작(copy merge operation)을 보여준다. 파일 시스템(도 6 참조, 510)이 4번 및 5번 논리 페이지 순서로 쓰기 요청을 한 경우에, 플래시 변환 레이어(도 6 참조, 520)는 복사 머지 동작을 수행한다.
도 17을 참조하면, 4번 및 5번 논리 페이지는 각각 로그 블록 300의 제 1 및 제 2 물리 페이지에 저장된다. 다음에, 데이터 블록 101의 6번 및 7번 논리 페이지는 각각 로그 블록 300의 제 3 및 제 4 물리 페이지로 복사된다. 로그 블록 300은 2번의 복사(copy) 과정을 통해 순차 위치 방식(in-place order)에 따라 정렬된다. 그 다음에, 스왑 머지 동작과 마찬가지로 로그 블록 300과 데이터 블록 101은 서로 위치를 바꾼다. 이러한 머지 동작을 복사 머지 동작(copy merge operation)이라 한다. 제 1 데이터 블록 그룹(DBG1)은 복사 머지 동작에 의해 데이터 블록 100, 300, 102, 103을 포함하게 된다. 기존의 데이터 블록 101은 자유 블록으로 변환된다.
도 18은 복사 머지 동작 후의 블록 맵핑 테이블을 보여준다. 도 18에 도시된 블록 맵핑 테이블에 의하면, 논리 블록 번호(LBN) 1에 대응하는 물리 블록 번호(PBN) 300이다. 즉, 논리 블록 번호(LBN) 1에 대응하는 물리 블록 번호(PBN)는 복사 머지 동작에 의해 101에서 300으로 변경된다.
이상에서 살펴 본 바와 같이, 본 발명에 따른 메모리 시스템은 그룹 맵핑 방법을 사용함으로, 로그 블록의 페이지 이용률을 높일 수 있다. 또한, 본 발명은 로그 블록의 페이지 이용률이 높기 때문에, 종래에 비해 머지 연산 및 블록 소거의 횟수를 줄일 수 있다. 본 발명은 이로 인해 제품의 수명을 증가할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형할 수 있은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
이상에서 살펴본 바와 같이, 본 발명에 따른 메모리 시스템은 그룹 맵핑 방법을 사용함으로, 로그 블록의 페이지 이용률을 높일 수 있다. 또한, 본 발명은 머지 연산 및 블록 소거 횟수를 줄일 수 있다.

Claims (37)

  1. 파일 시스템;
    복수의 데이터 블록 및 복수의 로그 블록을 갖는 플래시 메모리; 및
    상기 파일 시스템과 상기 플래시 메모리 사이의 어드레스 맵핑 동작을 관리하기 위한 플래시 변환 레이어를 포함하되,
    상기 플래시 변환 레이어는 상기 복수의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하고, 상기 복수의 로그 블록 중 적어도 하나 이상의 로그 블록을 하나의 로그 블록 그룹으로 관리하며, 상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 플래시 변환 레이어는 상기 데이터 블록 그룹과 상기 로그 블록 그룹 사이의 어드레스 맵핑 동작을 관리하기 위한 그룹 맵핑 테이블을 갖는 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 플래시 변환 레이어는 블록 맵핑을 위한 블록 맵핑 테이블, 그룹 맵핑을 위한 그룹 맵핑 테이블, 그리고 페이지 맵핑을 위한 페이지 맵핑 테이블을 갖는 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 블록 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 블록 번호(LBN)와, 상기 논리 블록 번호(LBN)에 대응하는 물리 블록 번호(PBN)를 저장하는 메모리 시스템.
  5. 제 3 항에 있어서,
    상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장하는 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 데이터 블록 그룹에 할당되어 있는 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 경우에, 상기 그룹 맵핑 테이블은 상기 로그 블록의 물리 블록 번호를 삭제하는 메모리 시스템.
  7. 제 3 항에 있어서,
    상기 페이지 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 페이지 번호(LPN)와, 상기 논리 페이지 번호(LPN)에 대응하며 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 페이지 번호(PPN)를 저장하는 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
  9. 제 1 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록은 머지 동작에 의해 자유 블록으로 변환되는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 머지 동작은 단순 머지 동작 또는 스왑 머지 동작 또는 복사 머지 동작인 것을 특징으로 하는 메모리 시스템.
  11. 제 9 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록 중에서, 할당된 데이터 블록의 수가 많은 로그 블록부터 자유 블록으로 변환되는 메모리 시스템.
  12. 논리 어드레스를 제공하는 파일 시스템;
    복수의 데이터 블록 및 복수의 로그 블록을 갖는 플래시 메모리; 및
    상기 논리 어드레스에 대응하는 물리 어드레스를 저장함으로, 상기 파일 시 스템과 상기 플래시 메모리 사이의 어드레스 맵핑 동작을 관리하는 플래시 변환 레이어를 포함하되,
    상기 플래시 변환 레이어는 N(N은 자연수)개의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하고, 상기 데이터 블록 그룹에 할당되어 있는 하나부터 최대 k(k는 자연수)개의 로그 블록을 하나의 로그 블록 그룹으로 관리하는 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 플래시 변환 레이어는 상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리하는 메모리 시스템.
  14. 제 12 항에 있어서,
    상기 플래시 변환 레이어는 상기 데이터 블록 그룹과 상기 로그 블록 그룹 사이의 어드레스 맵핑 동작을 관리하기 위한 그룹 맵핑 테이블을 갖는 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장하는 메모리 시스템.
  16. 제 12 항에 있어서,
    상기 플래시 변환 레이어는 블록 맵핑을 위한 블록 맵핑 테이블, 그룹 맵핑을 위한 그룹 맵핑 테이블, 그리고 페이지 맵핑을 위한 페이지 맵핑 테이블을 갖는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 블록 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 블록 번호(LBN)와, 상기 논리 블록 번호(LBN)에 대응하는 물리 블록 번호(PBN)를 저장하는 메모리 시스템.
  18. 제 16 항에 있어서,
    상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장하는 메모리 시스템.
  19. 제 18 항에 있어서,
    상기 데이터 블록 그룹에 할당되어 있는 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 경우에, 상기 그룹 맵핑 테이블은 상기 로그 블록의 물리 블록 번호를 삭제하는 메모리 시스템.
  20. 제 16 항에 있어서,
    상기 페이지 맵핑 테이블은 상기 파일 시스템으로부터 제공된 논리 페이지 번호(LPN)와, 상기 논리 페이지 번호(LPN)에 대응하며 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 페이지 번호(PPN)를 저장하는 메모리 시스템.
  21. 제 12 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록은 머지 동작에 의해 자유 블록으로 변환되는 모리 시스템.
  22. 제 21 항에 있어서,
    상기 머지 동작은 단순 머지 동작 또는 스왑 머지 동작 또는 복사 머지 동작인 것을 특징으로 하는 메모리 시스템.
  23. 제 21 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록 중에서, 할당된 데이터 블록의 수가 많은 로그 블록부터 자유 블록으로 변환되는 메모리 시스템.
  24. 플래시 메모리의 블록 맵핑 동작을 관리하기 위한 블록 맵핑 테이블; 및
    상기 플래시 메모리의 복수의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록으로 관리하고, 상기 플래시 메모리의 복수의 로그 블록 중 적어도 하나 이상의 로그 블록을 하나의 로그 블록으로 관리하기 위한 그룹 맵핑 테이블을 포함하되,
    상기 그룹 맵핑 테이블은 상기 로그 블록 그룹에 속한 하나의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당될 수 있도록 어드레스 맵핑 동작을 관리하는 플래시 변환 레이어.
  25. 제 24 항에 있어서,
    상기 블록 맵핑 테이블은 파일 시스템으로부터 제공된 논리 블록 번호(LBN)와, 상기 논리 블록 번호(LBN)에 대응하는 물리 블록 번호(PBN)를 저장하는 플래시 변환 레이어.
  26. 제 24 항에 있어서,
    상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장하는 플래시 변환 레이어.
  27. 제 26 항에 있어서,
    상기 데이터 블록 그룹에 할당되어 있는 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 경우에, 상기 그룹 맵핑 테이블은 상기 로그 블록의 물리 블록 번호를 삭제하는 플래시 변환 레이어.
  28. 제 24 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록은 머지 동작에 의해 자유 블록으로 변환되는 플래시 변환 레이어.
  29. 제 28 항에 있어서,
    상기 머지 동작은 단순 머지 동작 또는 스왑 머지 동작 또는 복사 머지 동작인 것을 특징으로 하는 플래시 변환 레이어.
  30. 제 29 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록 중에서, 할당된 데이터 블록의 수가 많은 로그 블록부터 자유 블록으로 변환되는 플래시 변환 레이어.
  31. 메모리 시스템의 어드레스 맵핑 방법에 있어서:
    상기 메모리 시스템은
    플래시 메모리의 데이터 블록 중 일정 수의 데이터 블록을 하나의 데이터 블록 그룹으로 관리하는 플래시 변환 레이어를 포함하고,
    상기 메모리 시스템의 어드레스 맵핑 방법은
    파일 시스템으로부터 논리 어드레스를 입력받는 단계;
    상기 논리 어드레스에 따라, 상기 데이터 블록 그룹에 할당되는 적어도 하나 이상의 로그 블록(이하, 로그 블록 그룹이라 함)을 생성하는 단계; 및
    상기 로그 블록 그룹에 속한 각각의 로그 블록이 상기 데이터 블록 그룹에 속한 각각의 데이터 블록에 할당되도록, 어드레스 맵핑 정보를 맵핑 테이블에 등록하는 단계를 포함하는 어드레스 맵핑 방법.
  32. 제 31 항에 있어서,
    상기 플래시 변환 레이어는 상기 데이터 블록 그룹과 상기 로그 블록 그룹 사이의 어드레스 맵핑 동작을 관리하기 위한 그룹 맵핑 테이블을 갖는 어드레스 맵핑 방법.
  33. 제 32 항에 있어서,
    상기 그룹 맵핑 테이블은 상기 데이터 블록 그룹에 할당되어 있는 로그 블록의 물리 블록 번호를 저장하는 어드레스 맵핑 방법.
  34. 제 33 항에 있어서,
    상기 데이터 블록 그룹에 할당되어 있는 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 경우에, 상기 로그 블록의 물리 블록 번호는 상기 그룹 맵핑 테이블에서 삭제되는 어드레스 맵핑 방법.
  35. 제 31 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록이 머지 동작에 의해 자유 블록으로 변환되는 단계를 더 포함하는 어드레스 맵핑 방법.
  36. 제 35 항에 있어서,
    상기 머지 동작은 단순 머지 동작 또는 스왑 머지 동작 또는 복사 머지 동작인 것을 특징으로 하는 어드레스 맵핑 방법.
  37. 제 35 항에 있어서,
    상기 로그 블록 그룹에 속한 로그 블록 중에서, 할당된 데이터 블록의 수가 많은 로그 블록부터 자유 블록으로 변환되는 어드레스 맵핑 방법.
KR1020070012198A 2007-02-06 2007-02-06 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 KR100885181B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020070012198A KR100885181B1 (ko) 2007-02-06 2007-02-06 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US11/833,750 US20080189490A1 (en) 2007-02-06 2007-08-03 Memory mapping
JP2008023003A JP2008192154A (ja) 2007-02-06 2008-02-01 メモリマッピング方法およびメモリマッピングシステム
CNA2008100099115A CN101241474A (zh) 2007-02-06 2008-02-13 存储器映射系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070012198A KR100885181B1 (ko) 2007-02-06 2007-02-06 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법

Publications (2)

Publication Number Publication Date
KR20080073499A true KR20080073499A (ko) 2008-08-11
KR100885181B1 KR100885181B1 (ko) 2009-02-23

Family

ID=39677158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070012198A KR100885181B1 (ko) 2007-02-06 2007-02-06 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법

Country Status (4)

Country Link
US (1) US20080189490A1 (ko)
JP (1) JP2008192154A (ko)
KR (1) KR100885181B1 (ko)
CN (1) CN101241474A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101021364B1 (ko) * 2008-10-10 2011-03-14 한양대학교 산학협력단 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 멀티 플래시 메모리 관리방법 및 장치
KR101297442B1 (ko) * 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
US8595412B2 (en) 2009-04-15 2013-11-26 Samsung Electronics Co., Ltd. Data storage device and data storage system including the same
WO2017172251A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressible unit
US10031845B2 (en) 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US20110179219A1 (en) * 2004-04-05 2011-07-21 Super Talent Electronics, Inc. Hybrid storage device
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
CN101241472B (zh) * 2008-03-07 2010-12-22 威盛电子股份有限公司 映射管理方法及系统
TWI385519B (zh) * 2008-04-18 2013-02-11 Phison Electronics Corp 資料寫入方法及使用此方法的快閃儲存系統與其控制器
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
US9128821B2 (en) * 2008-10-10 2015-09-08 Seagate Technology Llc Data updating in non-volatile memory
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
KR101581859B1 (ko) * 2009-02-27 2016-01-21 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법
KR100994052B1 (ko) 2009-05-06 2010-11-11 성균관대학교산학협력단 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
US8838878B2 (en) * 2010-06-01 2014-09-16 Greenliant Llc Method of writing to a NAND memory block based file system with log based buffering
US8341340B2 (en) 2010-07-21 2012-12-25 Seagate Technology Llc Multi-tier address mapping in flash memory
US9021215B2 (en) 2011-03-21 2015-04-28 Apple Inc. Storage system exporting internal storage rules
US9164887B2 (en) 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
CN102521144B (zh) * 2011-12-22 2015-03-04 清华大学 一种闪存转换层系统
KR20130084846A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
CN103778068A (zh) * 2012-10-24 2014-05-07 北京兆易创新科技股份有限公司 一种闪速存储器及访问闪速存储器数据的方法
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
CN104102585B (zh) * 2013-04-03 2017-09-12 群联电子股份有限公司 映射信息记录方法、存储器控制器与存储器储存装置
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489294B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9117514B2 (en) 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9117520B2 (en) * 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
KR102025180B1 (ko) 2013-08-08 2019-09-26 삼성전자주식회사 스토리지 시스템 및 그것의 쓰기 방법
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
WO2015112126A1 (en) * 2014-01-22 2015-07-30 Hewlett Packard Development Company, L.P. Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
KR102218712B1 (ko) 2014-02-11 2021-02-22 삼성전자주식회사 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법
TWI512467B (zh) * 2014-09-02 2015-12-11 Silicon Motion Inc 實體儲存對照表維護方法以及使用該方法的裝置
KR102263800B1 (ko) * 2015-01-07 2021-06-10 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법
TWI545433B (zh) 2015-03-04 2016-08-11 慧榮科技股份有限公司 實體儲存對照表維護方法以及使用該方法的裝置
CN105205009B (zh) * 2015-09-30 2018-05-11 华为技术有限公司 一种基于大容量固态存储的地址映射方法及装置
TWI537729B (zh) * 2015-10-15 2016-06-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
JP6034467B2 (ja) * 2015-10-23 2016-11-30 株式会社東芝 システム
CN112433889B (zh) * 2016-06-29 2024-04-12 北京忆恒创源科技股份有限公司 基于ftl表的日志生成方法与装置
CN107544912B (zh) * 2016-06-29 2021-09-03 北京忆恒创源科技股份有限公司 一种日志记录方法、加载方法及其装置
TWI641948B (zh) * 2017-07-27 2018-11-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN109388332A (zh) * 2017-08-04 2019-02-26 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
CN107562644B (zh) * 2017-08-11 2021-02-09 记忆科技(深圳)有限公司 一种固态硬盘映射表的压缩方法
JP2019050066A (ja) * 2017-09-07 2019-03-28 株式会社東芝 ハードディスク装置および制御方法
CN109582593B (zh) * 2018-11-05 2022-09-30 华侨大学 一种基于计算的ftl地址映射读、写方法
TWI698744B (zh) * 2019-04-10 2020-07-11 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之更新方法
CN110471861B (zh) * 2019-07-10 2022-02-11 华为技术有限公司 一种闪存设备中的数据存储方法及闪存设备
CN110727604B (zh) * 2019-08-26 2022-04-29 华为技术有限公司 一种数据处理方法及装置
KR20210049619A (ko) * 2019-10-25 2021-05-06 에스케이하이닉스 주식회사 분산 저장 시스템의 스토리지 노드 및 그 동작 방법
CN114168225B (zh) * 2021-12-08 2024-05-14 深圳忆联信息系统有限公司 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
WO2005066970A2 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Robust data duplication and improved update method in a multibit non-volatile memory
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
DE602004022459D1 (de) 2004-01-19 2009-09-17 Trek 2000 Int Ltd Tragbare datenspeichereinrichtung mit einer speicheradressen-abbildungstabelle
KR100638638B1 (ko) * 2004-09-03 2006-10-26 명지대학교 산학협력단 플래시 메모리의 제어 방법
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
TW200705180A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc Adjustable flash memory management system and method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101021364B1 (ko) * 2008-10-10 2011-03-14 한양대학교 산학협력단 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 멀티 플래시 메모리 관리방법 및 장치
US8595412B2 (en) 2009-04-15 2013-11-26 Samsung Electronics Co., Ltd. Data storage device and data storage system including the same
KR101297442B1 (ko) * 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
WO2017172251A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressible unit
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10031845B2 (en) 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device

Also Published As

Publication number Publication date
JP2008192154A (ja) 2008-08-21
KR100885181B1 (ko) 2009-02-23
CN101241474A (zh) 2008-08-13
US20080189490A1 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
KR100885181B1 (ko) 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
KR100806343B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
Chung et al. System software for flash memory: A survey
KR101477047B1 (ko) 메모리 시스템 및 그것의 블록 병합 방법
US7890550B2 (en) Flash memory system and garbage collection method thereof
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
KR100857761B1 (ko) 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
TWI399644B (zh) 非揮發記憶體區塊管理方法
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
CN107025178A (zh) 存储器控制器、非易失性存储器系统及其操作方法
US9436615B2 (en) Optimistic data read
CN110781096A (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
US20100088461A1 (en) Solid state storage system using global wear leveling and method of controlling the solid state storage system
US20150186259A1 (en) Method and apparatus for storing data in non-volatile memory
US7287117B2 (en) Flash memory and mapping control apparatus and method for flash memory
KR20020092487A (ko) 플래시 메모리 관리방법
KR20130096881A (ko) 플래시 메모리 장치
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
CN112130749A (zh) 数据储存装置以及非挥发式存储器控制方法
KR20090024971A (ko) 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
KR101270685B1 (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
Kwon et al. An efficient and advanced space-management technique for flash memory using reallocation blocks
CN105630410A (zh) 使用非易失随机读写存储芯片动态管理文件存储区的方法
KR101119866B1 (ko) 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템

Legal Events

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

Payment date: 20130131

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee