[go: up one dir, main page]

KR100806343B1 - 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 - Google Patents

플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 Download PDF

Info

Publication number
KR100806343B1
KR100806343B1 KR1020060101961A KR20060101961A KR100806343B1 KR 100806343 B1 KR100806343 B1 KR 100806343B1 KR 1020060101961 A KR1020060101961 A KR 1020060101961A KR 20060101961 A KR20060101961 A KR 20060101961A KR 100806343 B1 KR100806343 B1 KR 100806343B1
Authority
KR
South Korea
Prior art keywords
block
page
mapping table
memory
order
Prior art date
Application number
KR1020060101961A
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 KR1020060101961A priority Critical patent/KR100806343B1/ko
Priority to US11/637,792 priority patent/US20080098195A1/en
Application granted granted Critical
Publication of KR100806343B1 publication Critical patent/KR100806343B1/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/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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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)

Abstract

본 발명은 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑 테이블 관리 방법에 관한 것이다. 본 발명에 따른 메모리 시스템은 파일 시스템; 상기 파일 시스템으로부터 논리적 어드레스를 입력받고, 상기 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 변환 레이어; 및 상기 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함한다. 여기에서, 상기 플래시 변환 레이어는 상기 플래시 메모리의 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)임을 표시한 플래그 정보와, 상기 메모리 블록의 시작 페이지를 지정한 오프셋 정보를 갖는다. 본 발명에 의하면, 메모리의 공간을 크게 늘리지 않으면서, 페이지 복사 횟수 및 블록 소거 횟수를 크게 줄일 수 있다.

Description

플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑 테이블 관리 방법{MEMORY SYSTEM INCLUDING FLASH MEMORY AND MAPPING TABLE MANAGEMENT METHOD THEREOF}
도 1은 일반적인 플래시 메모리를 사용하는 메모리 시스템의 하드웨어 구조를 보여주는 블록도이다.
도 2는 일반적인 플래시 메모리를 사용하는 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다.
도 3은 일반적인 혼합 맵핑 방법을 수행하는 메모리 시스템을 보여주는 블록도이다.
도 4는 도 3에 도시된 메모리 시스템의 혼합 맵핑 방법을 예시적으로 설명하기 위한 다이어그램이다.
도 5는 본 발명에 따른 혼합 맵핑 동작을 사용하는 메모리 시스템을 보여주는 블록도이다.
도 6은 도 5에 도시된 메모리 시스템의 맵핑 테이블 관리 방법을 예시적으로 보여주는 도표이다.
도 7은 도 5에 도시된 메모리 시스템의 혼합 맵핑 동작을 예시적으로 설명하기 위한 다이어그램이다.
* 도면의 주요 부분에 대한 부호 설명 *
300, 400; 메모리 시스템 310, 410; 파일 시스템
320, 420; 플래시 변환 레이어 330, 430; 플래시 메모리
321, 421; 블록 맵핑 테이블 322; 페이지 맵핑 테이블
422; 랩-어라운드 페이지 맵핑 테이블 423; 랜덤 페이지 맵핑 테이블
본 발명은 플래시 메모리를 사용한 메모리 시스템에 관한 것으로, 더욱 상세하게는 메모리 시스템 및 그것의 맵핑 테이블 관리 방법에 관한 것이다.
최근 디지털 카메라, MP3 플레이어, 핸드폰, PDA 등과 같은 휴대 장치가 많이 사용되고 있다. 플래시 메모리는 저전력, 비휘발성, 고집적 등의 특성으로 인해 이러한 휴대 장치에 많이 사용되고 있다. 특히, 플래시 메모리의 용량이 크게 늘어나면서 디스크를 플래시 메모리로 대체하는 경향이 많아지고 있다.
플래시 메모리는 물리적 특성으로 인하여 쓰기 전 소거(erase-before-write) 연산을 수행한다. 즉, 플래시 메모리는 섹터(sector, 보통 512 바이트)에 쓰기 동작을 수행할 경우, 그 섹터가 속한 블록(block)을 소거한 다음에, 쓰기 동작을 수행한다. 따라서 플래시 메모리는, 섹터에 덮어 쓰기(over write)를 수행할 수 있는 하드 디스크에 비하여, 동일한 I/O에 대해 더 많은 시간을 필요로 한다. 또한, 플래시 메모리는 동일한 블록에 대해 10만 번 정도의 소거 동작을 수행하면, 더 이상 사용할 수 없다. 따라서 플래시 메모리는 특정 블록에 대해 소거 동작이 반복되는 것을 피해야 한다.
플래시 변환 레이어(Flash Translation Layer; FTL)는 플래시 메모리의 이러한 단점을 극복하고, 플래시 메모리를 효율적으로 관리하기 위한 소프트웨어이다. 플래시 변환 레이어(FTL)는 파일 시스템(File System)으로부터 논리적 섹터 번호(Logical Sector Number; LSN)를 입력받고, 이를 물리적 섹터 번호(Physical Sector Number; PSN)로 변환한다. 물리적 섹터 번호(PSN)는 실제 플래시 메모리에서 사용할 어드레스이다.
플래시 변환 레이어(FTL)는 위와 같은 어드레스 변환을 위해 어드레스 맵핑 테이블(Address Mapping Table)을 갖는다. 어드레스 맵핑 테이블은 랜덤 액세스 메모리(RAM)에 저장된다. 어드레스 맵핑 테이블에는 논리적 어드레스(Logical Address) 및 이에 대응하는 물리적 어드레스(Physical Address)가 표시되어 있다. 어드레스 맵핑 테이블은 맵핑 단위에 따라 그 크기가 달라질 수 있으며, 맵핑 단위에 따라 다양한 맵핑 방법을 갖는다.
대표적인 맵핑 방법으로, 페이지 맵핑 방법(page mapping method), 블록 맵핑 방법(block mapping method), 그리고 혼합 맵핑 방법(hybrid mapping method)이 있다. 페이지 맵핑 방법은 페이지 단위로 맵핑 테이블을 만들고, 논리적 페이지를 물리적 페이지로 변환하는 방법이다. 블록 맵핑 방법은 블록 단위로 맵핑 동작을 수행하는 방법이다. 혼합 맵핑 방법은 페이지 맵핑 방법과 블록 맵핑 방법을 동시에 사용하는 방법이다.
일반적으로 하나의 메모리 블록은 수십 또는 수백 개의 페이지로 구성된다. 따라서 페이지 맵핑 방법을 사용할 경우에, 맵핑 테이블의 크기는 블록 맵핑 방법을 사용할 때보다 수십 또는 수백 배 증가하게 된다. 즉, 페이지 맵핑 방법은 맵핑 테이블을 사용하는 데 너무 많은 메모리 공간을 필요로 한다는 단점을 갖는다.
반면, 블록 맵핑 방법은 블록 단위로 맵핑 동작을 수행하기 때문에, 페이지 맵핑 방법에 비해 맵핑 테이블의 크기를 줄일 수 있는 장점을 갖는다. 그러나 블록 맵핑 방법에 의하면, 블록 내에 쓰여질 페이지의 위치가 고정되기 때문에, 많은 머지(merge) 연산을 수행해야 한다는 단점을 갖는다.
혼합 맵핑 방법은 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다. 혼합 맵핑 방법은 두 가지 맵핑 방법을 모두 사용함으로, 맵핑 테이블의 크기를 줄임과 동시에, 머지 연산의 횟수를 줄일 수 있다.
여기에서, 로그 블록은 일종의 쓰기 버퍼와 같은 기능을 한다. 즉 쓰기 동작 시에, 데이터 블록에 저장될 페이지 데이터는 먼저 로그 블록에 저장된다. 로그 블록 및 이에 대응하는 데이터 블록(이하, 구 데이터 블록, old data block)에 저장된 페이지 데이터는 머지 연산을 통해 새 데이터 블록(new data block)에 저장된다. 머지 연산 후에, 로그 블록 및 데이터 블록은 소거된다.
이와 같이 혼합 맵핑 방법을 사용하면, 복수의 페이지 복사 및 복수의 블록 소거 동작이 수행된다. 예를 들어, 하나의 블록이 4개의 페이지로 구성되어 있다고 가정하면, 위의 예에서 4번의 페이지 복사 및 2번의 블록 소거 동작이 수행된다. 혼합 맵핑 방법을 사용함에 있어서, 많은 수의 페이지 복사 및 블록 소거 동작은 전체 메모리 시스템의 성능을 저하하는 요인이 되고 있다.
본 발명의 목적은 혼합 맵핑 방법을 사용함에 있어서, 불필요한 페이지 복사 및 블록 소거 동작을 줄일 수 있는 메모리 시스템 및 그것의 맵핑 테이블 관리 방법을 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 파일 시스템; 상기 파일 시스템으로부터 논리적 어드레스를 입력받고, 상기 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 변환 레이어; 및 상기 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함한다. 여기에서, 상기 플래시 변환 레이어는 상기 플래시 메모리의 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)임을 표시한 플래그 정보와, 상기 메모리 블록의 시작 페이지를 지정한 오프셋 정보를 갖는다.
실시예로서, 상기 플래시 변환 레이어는 논리적 블록 어드레스를 물리적 블록 어드레스로 변환하기 위한 블록 맵핑 테이블; 및 상기 메모리 블록의 시작 페이지를 지정하기 위한 오프셋 정보를 저장하는 랩-어라운드 페이지 맵핑 테이블을 포함한다. 상기 블록 맵핑 테이블은 순차 위치 방식(in-place order)임을 표시하는 제 1 플래그 정보; 및 상기 랩-어라운드 방식임을 표시하는 제 2 플래그 정보를 갖는다. 상기 블록 맵핑 테이블은 임의 위치 방식(out-of-place order)임을 표시하는 제 3 플래그 정보를 더 갖는다. 상기 플래시 변환 레이어는 상기 임의 위치 방식에 사용될 오프셋 정보를 저장하기 위한 랜덤 페이지 맵핑 테이블을 더 포함한다.
본 발명은 메모리 시스템의 맵핑 테이블 관리 방법에 관한 것이다. 상기 메모리 시스템은 파일 시스템; 상기 파일 시스템으로부터 논리적 어드레스를 입력받고, 상기 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 변환 레이어; 및 상기 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함한다.
상기 메모리 시스템의 맵핑 테이블 관리 방법은 상기 논리적 어드레스를 입력받고, 상기 물리적 어드레스를 찾는 단계; 상기 물리적 어드레스에 해당하는 메모리 블록 내의 페이지 순서가 랩-어라운드 방식임을 표시하는지를 확인하는 단계; 상기 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)인 경우에, 상기 메모리 블록의 시작 페이지를 찾는 단계; 및 상기 메모리 블록 내의 페이지 순서를 알고, 원하는 페이지를 읽는 단계를 포함한다.
실시예로서, 상기 플래시 변환 레이어는 상기 플래시 메모리의 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)임을 표시한 플래그 정보와, 상기 메모리 블록의 시작 페이지를 지정한 오프셋 정보를 갖는다. 상기 플래시 변환 레이어는 논리적 블록 어드레스를 물리적 블록 어드레스로 변환하기 위한 블록 맵핑 테이블; 및 상기 메모리 블록의 시작 페이지를 지정하기 위한 오프셋 정보를 저장하는 랩-어라운드 페이지 맵핑 테이블을 포함한다. 상기 블록 맵핑 테이블은 순차 위치 방식(in-place order)임을 표시하는 제 1 플래그 정보; 및 상기 랩-어라운드 방식임을 표시하는 제 2 플래그 정보를 저장한다.
다른 실시예로서, 상기 메모리 블록 내의 페이지 순서가 순차 위치 방식(in- place order)인 경우에, 원하는 페이지를 읽는 단계를 더 포함한다. 상기 플래시 변환 레이어는 상기 순차 위치 방식(in-place order)임을 표시한 플래그 정보를 갖는다. 상기 플래시 변환 레이어는 상기 플래그 정보를 블록 맵핑 테이블에 기록한다.
또 다른 실시예로서, 상기 플래시 변환 레이어는 논리적 블록 어드레스를 물리적 블록 어드레스로 변환하기 위한 블록 맵핑 테이블; 상기 메모리 블록의 시작 페이지를 지정하기 위한 오프셋 정보를 저장하는 랩-어라운드 페이지 맵핑 테이블; 및 임의 위치 방식에 따른 오프셋 정보를 저장하기 위한 랜덤 페이지 맵핑 테이블을 포함한다. 상기 블록 맵핑 테이블은 상기 순차 위치 방식(in-place order)임을 표시하는 제 1 플래그 정보; 상기 랩-어라운드 방식임을 표시하는 제 2 플래그 정보; 및 상기 임의 위치 방식(out-of-place order)임을 표시하는 제 3 플래그 정보를 갖는다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 일반적인 플래시 메모리를 사용하는 메모리 시스템의 하드웨어 구조를 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 중앙처리장치(110), 랜덤 액세스 메모리(120), 그리고 낸드 플래시 메모리(130)를 포함한다. 어드레스 맵핑 동작을 위한 플래시 변환 레이어(FTL)는 랜덤 액세스 메모리(120)에 저장된다.
낸드 플래시 메모리(130)는 당업자에게 잘 알려진 바와 같이, 스트링 구조(string structure)를 갖는 복수의 메모리 셀로 구성된다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 낸드 플래시 메모리(130)의 메모리 셀 어레이는 복수의 메모리 블록(memory block)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(page)로 구성된다. 각각의 페이지는 하나의 워드 라인을 공유하는 복수의 메모리 셀로 구성된다.
낸드 플래시 메모리(130)는 읽기 및 쓰기 동작의 단위와 소거 동작의 단위가 다르다. 즉, 낸드 플래시 메모리(130)는 메모리 블록 단위로 소거 동작을 수행하고, 페이지 단위로 읽기 및 쓰기 동작을 수행한다. 또한, 낸드 플래시 메모리(130)는 다른 반도체 메모리 장치와 달리 겹쳐 쓰기(over write)를 지원하지 않는다. 따라서 낸드 플래시 메모리(130)는 쓰기 동작 전에 소거 동작을 수행한다.
낸드 플래시 메모리(130)의 이와 같은 특성으로 인해, 낸드 플래시 메모리(130)를 하드 디스크처럼 사용하기 위해서는, 읽기/쓰기/소거 동작에 대한 별도의 관리가 필요하다. 플래시 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 이러한 목적으로 개발된 시스템 소프트웨어이다.
낸드 플래시 메모리(130)는 데이터 영역, 로그 영역, 그리고 메타 영역을 포함한다. 데이터 영역은 복수의 데이터 블록으로 구성되며, 사용자 데이터를 저장한다. 로그 영역은 하나 또는 그 이상의 로그 블록으로 구성된다. 로그 블록은 특정 데이터 블록에 할당되어 진다.
특정 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 특정 데이터 블록 에 직접 쓰여 지는 것이 아니라, 할당되어 있는 로그 블록에 먼저 저장된다. 그 다음에, 머지(merge) 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록으로 복사된다. 머지 동작이 수행되면, 맵핑 정보가 변경되는데, 변경된 맵핑 정보는 메타 영역에 저장된다.
도 2는 일반적인 플래시 메모리를 사용하는 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다. 도 2를 참조하면, 플래시 변환 레이어(FTL, 220)는 애플리케이션(205) 또는 파일 시스템(210)으로부터 논리적 어드레스를 입력받고, 이를 물리적 어드레스로 변환한 다음에, 변환한 물리적 어드레스를 낸드 플래시 메모리(230)로 제공한다.
어드레스 변환을 위한 맵핑 테이블은 도 1에 도시된 랜덤 액세스 메모리(120)에 저장된다. 맵핑 방법에는 맵핑 단위에 따라 여러 가지 방식이 있다. 예를 들면, 페이지 단위로 맵핑 동작을 수행하는 페이지 맵핑 방법(page mapping method), 블록 단위로 맵핑 동작을 수행하는 블록 맵핑 방법(block mapping method), 그리고 두 가지를 모두 사용하는 혼합 맵핑 방법(hybrid mapping method)이 있다.
페이지 맵핑 방법은 페이지 맵핑 테이블을 위해 많은 메모리 공간을 필요로 한다는 단점을 갖는다. 블록 맵핑 방법은 메모리 공간을 줄일 수 있지만, 많은 머지(merge) 동작을 수행한다는 단점을 갖는다. 혼합 맵핑 방법은 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용한다. 혼합 맵핑 방법은 두 가지 맵핑 방법을 사용함으로, 맵핑 테이블의 크기를 줄임과 동시에, 머지 연산의 횟수를 줄 일 수 있다.
도 3은 일반적인 혼합 맵핑 방법을 수행하는 메모리 시스템을 보여주는 블록도이다. 도 3을 참조하면, 메모리 시스템(300)은 파일 시스템(310), 플래시 변환 레이어(320), 그리고 플래시 메모리(330)를 포함한다.
플래시 변환 레이어(320)는 파일 시스템(310)으로부터 논리적 섹터 번호(Logical Sector Number; LSN)를 입력받는다. 플래시 변환 레이어(320)는 맵핑 테이블을 사용하여 논리적 섹터 번호(LSN)를 물리적 섹터 번호(Physical Sector Number; PSN)로 변환한다. 플래시 변환 레이어(320)는 물리적 섹터 번호(PSN)를 플래시 메모리(330)로 제공한다.
도 3을 참조하면, 플래시 변환 레이어(320)는 블록 맵핑 테이블(321) 및 페이지 맵핑 테이블(322)을 포함한다. 여기에서, 페이지 맵핑 테이블(322)은 로그 블록의 페이지 맵핑을 위한 것이다. 로그 블록의 페이지 쓰기 동작 및 혼합 맵핑 동작은 도 4를 참조하여, 상세히 설명된다.
도 4는 도 3에 도시된 메모리 시스템의 혼합 맵핑 방법을 예시적으로 설명하기 위한 다이어그램이다. 도 4에서, 로그 블록(410) 및 데이터 블록(420)은 각각 4개의 페이지로 구성된다고 가정한다. 그리고 로그 블록(410)은 데이터 블록(420)에 할당되어 있다고 가정한다.
먼저, 쓰기 요청(write request)이 들어오면, 플래시 변환 레이어(도 3 참조, 320)는 데이터 블록(420)에 할당되어 있는 로그 블록(410)이 존재하는지를 검사한다. 검사 결과, 할당된 로그 블록(410)이 존재하면, 할당된 로그 블록(410)에 페이지 쓰기 동작을 수행한다. 만약, 할당된 로그 블록이 존재하지 않으면, 새로운 로그 블록을 할당받아 소거 동작을 수행한 다음에, 페이지 쓰기 동작을 수행한다.
도 4를 참조하면, 파일 시스템(도 3 참조, 310)은 2번, 3번, 0번, 1번 논리적 페이지 순서로 쓰기 요청을 하고 있다. 여기에서, 1번 논리적 페이지는 데이터는 데이터 블록(420)의 두 번째 물리적 페이지(이하, 제 2 물리적 페이지라 함)에 저장되어 있다.
2번 논리적 페이지에 대한 쓰기 요청이 들어오면, 로그 블록(410)의 첫 번째 물리적 페이지(이하, 제 1 물리적 페이지라 함)에 대한 쓰기 동작이 수행된다. 다음으로, 3번 논리적 페이지에 대한 쓰기 요청이 들어오면, 로그 블록(410)의 제 2 물리적 페이지에 대한 쓰기 동작이 수행된다. 그리고 0번 논리적 페이지에 대한 쓰기 요청이 들어오면, 로그 블록(410)의 세 번째 물리적 페이지(이하 제 3 물리적 페이지라 함)에 대한 쓰기 동작이 수행된다.
이때, 전체 로그 블록이 부족하여, 로그 블록(410)을 자유 블록(free block)으로 만들어야 하는 상황이 발생한다면, 플래시 변환 레이어(320)는 머지 동작을 수행한다. 즉, 로그 블록(410)의 제 1 내지 제 3 물리적 페이지에 저장된 2번, 3번, 0번 논리적 페이지와 데이터 블록(420)의 제 2 물리적 페이지에 저장된 1번 논리적 페이지는 새로운 데이터 블록(430)으로 복사된다.
먼저, 논리 블록(410)의 0번 페이지가 새로운 데이터 블록(430)의 제 1 물리적 페이지에 복사된다. 다음에, 데이터 블록(420)의 1번 페이지가 새로운 데이터 블록(430)의 제 2 물리적 페이지에 복사된다. 다음에, 논리 블록(410)의 2번 및 3 번 페이지가 새로운 데이터 블록(430)의 제 3 및 제 4 물리적 페이지에 복사된다. 다음에, 로그 블록(410) 및 데이터 블록(420)은 소거된다.
이와 같이, 혼합 맵핑 방법에 의하면, 로그 블록(410)과 데이터 블록(420)의 유효한 페이지(valid page)는 머지 동작에 의해 새로운 데이터 블록(430)으로 복사된다. 새로운 데이터 블록(430)에는 0번 페이지부터 3번 페이지까지 순차적으로 쓰여 진다. 하나의 블록에 0번 페이지부터 순차적으로 쓰여 지는 것을 순차 위치 방식(in-place order)라고 한다. 반면에, 하나의 블록에 페이지들이 임의로 쓰여 지는 것을 임의 위치 방식(out-of-place order 또는 random-place order)라고 한다.
쓰기 요청이 0번, 1번, 2번, 3번 논리적 페이지 순서이면, 이들 논리적 페이지는 로그 블록(410)의 제 1 내지 제 4 물리적 페이지에 순차적으로 쓰여 진다. 로그 블록(410)에 쓰여진 페이지들은 별도의 페이지 복사 없이 곧바로 데이터 블록으로 등록될 수 있다. 이것은 로그 블록(410)이 순차 위치 방식(in-place order)에 맞게 페이지를 배열하고 있기 때문이다.
그러나 쓰기 요청이 임의적일 때에는, 페이지 순서를 맞추기 위한 페이지 복사 과정이 반드시 필요하게 된다. 도 4의 예에서는, 4번의 페이지 복사 과정이 필요하다. 또한, 페이지 복사 후에는 로그 블록(410)과 데이터 블록(420)에 대한 2번의 소거 동작이 필요하다.
이상에서 설명한 바와 같이, 혼합 맵핑 방법을 사용한다 해도, 페이지 순서를 맞추기 위해 많은 수의 페이지 복사 과정이 필요하다. 또한, 페이지 복사 후에는 로그 블록과 데이터 블록을 소거하기 위해 두 번의 블록 소거 동작이 필요하다.
본 발명은 혼합 맵핑 방법의 이러한 문제점을 해결하기 위한 것이다. 본 발명은 임의 위치 방식(out-of-place order) 중 일부에 대해, 순차 위치 방식(in-place order)처럼 처리함으로, 페이지 복사 횟수 및 블록 소거 횟수를 줄인다. 본 발명에 의하면, 페이지 복수 횟수 및 블록 소거 횟수가 줄어들기 때문에 전체 메모리 시스템의 성능이 크게 향상된다. 이하에서는 본 발명에 따른 메모리 시스템 및 그것의 혼합 맵핑 방법에 대해 상세하게 설명된다.
도 5는 본 발명에 따른 혼합 맵핑 동작을 사용하는 메모리 시스템을 보여주는 블록도이다. 도 5를 참조하면, 메모리 시스템(400)은 파일 시스템(410), 플래시 변환 레이어(420), 그리고 플래시 메모리(430)를 포함한다.
플래시 변환 레이어(420)는 파일 시스템(410)으로부터 논리적 섹터 번호(LSN)를 입력받고, 맵핑 테이블을 사용하여 논리적 섹터 번호(LSN)를 물리적 섹터 번호(PSN)로 변환한다. 플래시 변환 레이어(420)는 물리적 섹터 번호(PSN)를 플래시 메모리(430)로 제공한다.
도 5를 참조하면, 플래시 변환 레이어(420)는 블록 맵핑 테이블(421) 이외에, 랩-어라운드 페이지 맵핑 테이블(422)과 랜덤 페이지 맵핑 테이블(423)을 더 포함한다. 여기에서, 랜덤 페이지 맵핑 테이블(423)은 임의 위치 방식(out-of-place order) 방식에 따른 페이지 변환을 지정한 것이다. 랜덤 페이지 맵핑 테이블(423)은 도 6을 참조하여 상세히 설명된다.
랩-어라운드 페이지 맵핑 테이블(422)은 랩-어라운드 방식(wrap-around order)에 따른 페이지 변환을 지정한 것이다. 여기에서, 랩-어라운드 방식(wrap- around order)이란 페이지 위치 순서가 순차적으로 증가하되, 시작 페이지가 0번이 아닌 것을 의미한다. 예를 들어, 하나의 블록이 4개의 페이지로 구성되어 있다면, 랩-어라운드 방식(wrap-around order)에는 다음과 같은 경우가 있다.
1) 1번 페이지 -> 2번 페이지 -> 3번 페이지 -> 0번 페이지
2) 2번 페이지 -> 3번 페이지 -> 0번 페이지 -> 1번 페이지
3) 3번 페이지 -> 0번 페이지 -> 1번 페이지 -> 2번 페이지
랩-어라운드 방식(wrap-around order)은 순차 위치 방식(in-place order)과 마찬가지로 순차적으로 쓰여 진다. 다만, 시작 페이지가 0번 페이지가 아닐 따름이다. 도 3 및 도 4에 도시된 혼합 맵핑 방법에서는 랩-어라운드 방식(wrap-around order)의 경우에도 임의 위치 방식(out-of-place order)과 마찬가지로 처리된다. 즉, 도 4에 도시된 바와 같이, 4번의 페이지 복사와 2번의 블록 소거 동작이 수행된다.
그러나 본 발명에 따른 메모리 시스템(400)은 랩-어라운드 페이지 맵핑 테이블(422)을 구비함으로, 랩-어라운드 방식(wrap-around order)을 순차 위치 방식(in-place order)처럼 처리한다. 본 발명에 의하면, 도 4의 예에서, 1번의 페이지 복사와 1번의 블록 소거 동작이 수행된다. 이는 도 7을 참조하여 상세히 설명된다.
도 6은 도 5에 도시된 메모리 시스템의 맵핑 테이블 관리 방법을 예시적으로 보여주는 도표이다. 도 6(a)는 블록 맵핑 테이블, 도 6(b)는 랩-어라운드 페이지 맵핑 테이블, 도 6(c)는 랜덤 페이지 맵핑 테이블, 그리고 도 6(d)는 물리적 블록 의 페이지 위치를 보여준다.
도 6(a)를 참조하면, 블록 맵핑 테이블은 논리적 블록 번호(Logical Block Number; LBN), 물리적 블록 번호(Physical Block Number; PBN), 플래그 정보를 갖는다. 도 6(a)에서 참고(Note)에는 플래그 정보에 따른 페이지 위치 방식이 도시되어 있다.
플래그(Flag) 0은 순차 위치 방식(in-place order)을 뜻한다. 플래그(Flag) 1은 랩-어라운드 방식(wrap-around order)을 뜻한다. 그리고 플래그(Flag) 2는 임의 위치 방식(out-of-place order)을 뜻한다. 즉, 블록 맵핑 테이블은 페이지 위치 방식을 정의한 플래그 정보를 갖는다.
여기에서, 순차 위치 방식(in-place order)은 0번 페이지부터 시작하기 때문에, 오프셋(offset) 정보를 필요로 하지 않는다. 그러나 랩-어라운드 방식(wrap-around order)은 시작 페이지를 정의해 주어야 한다. 그리고 임의 위치 방식(out-of-place order)은 페이지 순서를 정의해 주어야 한다.
도 6(b)는 랩-어라운드 페이지 맵핑 테이블을 보여준다. 도 6(b)를 참조하면, 물리적 블록 번호 400은 오프셋 1을 갖는다. 이는 물리적 블록 번호 400의 시작 페이지가 1번 페이지임을 뜻한다. 물리적 블록 번호 500은 오프셋 2를 갖는다. 이는 물리적 블록 번호 500의 시작 페이지가 2번 페이지임을 뜻한다. 즉, 물리적 블록 번호 500의 제 1 물리적 페이지에는 2번 논리적 페이지가 쓰여 진다. 물리적 블록 번호 600은 오프셋 3을 갖는다. 이는 물리적 블록 번호 600의 시작 페이지가 3번 페이지임을 뜻한다. 물리적 블록 번호 400 내지 600의 페이지 위치는 도 6(d) 에 구체적으로 도시되어 있다.
도 6(c) 랜덤 페이지 맵핑 테이블을 보여준다. 랜덤 페이지 맵핑 테이블에는 임의 위치 방식(out-of-place order)에 따른 페이지 순서가 정의되어 있다. 도 6(c)를 참조하면, 물리적 블록 번호(PBN) 700에 대한 오프셋 정보는 0, 3, 2, 1이다. 따라서 물리적 블록 번호(PBN) 700의 제 1 내지 제 4 물리적 페이지에는 0번, 3번, 2번, 1번 페이지가 쓰여 진다. 물리적 블록 번호(PBN) 800에 대한 오프셋 정보는 1, 3, 2, 0이다. 따라서 물리적 블록 번호(PBN) 800의 제 1 내지 제 4 물리적 페이지에는 1번, 3번, 2번, 0번 페이지가 쓰여 진다. 물리적 블록 번호 700 및 800의 페이지 위치는 도 6(d)에 구체적으로 도시되어 있다.
이하에서는 도 6에 도시된 맵핑 테이블을 참조하여, 페이지 읽기 동작이 설명된다.
먼저, 1번 블록의 2번 페이지에 대한 페이지 읽기 동작이 설명된다. 플래시 변환 레이어(FTL)는 블록 맵핑 테이블을 참조하여, 1번 논리적 블록 번호(LBN)에 대응하는 200번 물리적 블록 번호(PBN)를 찾는다. 플래시 변환 레이어(FTL)는 플래그 정보를 확인한다. 도 6(a)에서, 1번 논리적 블록 번호(LBN)에 대응하는 플래그(Flag)는 0이다. 이것은 200번 물리적 블록 번호(PBN)는 순차 위치 방식(in-place order)에 따라 페이지가 배열되어 있음을 뜻한다. 따라서 200번 물리적 블록 번호(PBN)의 1번 페이지가 읽혀진다.
다음으로, 4번 블록의 2번 페이지에 대한 페이지 읽기 동작이 설명된다. 플래시 변환 레이어(FTL)는 블록 맵핑 테이블을 참조하여, 4번 논리적 블록 번 호(LBN)에 대응하는 500번 물리적 블록 번호(PBN)를 찾는다. 플래시 변환 레이어(FTL)은 4번 논리적 블록 번호(LBN)에 대응하는 플래그(Flag) 1을 확인한다. 이것은 500번 물리적 블록 번호(PBN)는 랩-어라운드 방식(wrap-around order)에 따라 페이지가 배열되어 있음을 뜻한다.
플래시 변환 레이어(FTL)는 도 6(b)에 도시되어 있는 랩-어라운드 페이지 맵핑 테이블을 참조한다. 도 6(b)를 참조하면, 500번 물리적 블록 번호(PBN)에 대한 오프셋 정보는 2이다. 따라서 500번 물리적 블록 번호(PBN)에는 2번, 3번, 0번, 1번 페이지 순서로 배열되어 있다. 따라서 500번 물리적 블록 번호(PBN)에 있는 3번 페이지가 읽혀진다.
마지막으로, 6번 블록의 2번 페이지에 대한 읽기 동작이 설명된다. 플래시 변환 레이어(FTL)는 블록 맵핑 테이블을 참조하여, 6번 논리적 블록 번호(LBN)에 대응하는 700번 물리적 블록 번호(PBN)를 찾는다. 플래시 변환 레이어(FTL)는 6번 논리적 블록 번호(LBN)에 대응하는 플래그(Flag) 2를 확인한다. 이것은 700번 물리적 블록 번호(PBN)는 임의 위치 방식(out-of-place order)에 따라 페이지가 배열되어 있음을 뜻한다.
플래시 변환 레이어(FTL)는 도 6(c)에 도시되어 있는 랜덤 페이지 맵핑 테이블을 참조한다. 도 6(c)를 참조하면, 700번 물리적 블록 번호(PBN)에 대한 오프셋 정보는 0, 3, 2, 1이다. 따라서 700번 물리적 블록 번호(PBN)에는 0번, 3번, 2번, 1번 페이지 순서로 배열되어 있다. 따라서 700번 물리적 블록 번호(PBN)에 있는 3번 페이지가 읽혀진다.
도 6(d)에는 각각의 물리적 블록 번호에 대한 페이지 위치 방식이 도시되어 있다. 물리적 블록 번호(PBN) 100 내지 300은 플래그(Flag) 0이므로, 순차 위치 방식(in-place order)따라 페이지가 배열되어 있다. 물리적 블록 번호(PBN) 400 내지 600은 플래그(Flag) 1이므로, 랩-어라운드 방식(wrap-around order)에 따라 페이지가 배열되어 있다. 그리고 물리적 블록 번호(PBN) 700 및 800은 플래그(Flag) 2이므로, 임의 위치 방식(out-of-place order)에 따라 페이지가 배열되어 있다.
도 7은 도 5에 도시된 메모리 시스템의 혼합 맵핑 동작을 예시적으로 설명하기 위한 다이어그램이다. 도 4에 도시된 맵핑 방법에 의하면, 4번의 페이지 복사와 2번의 블록 소거 동작이 수행된다. 그러나 도 7에 도시된 맵핑 방법에 의하면, 1번의 페이지 복수와 1번의 블록 소거 동작이 수행된다.
도 7에 도시된 바와 같이, 로그 블록(510)의 제 1 내지 제 3 물리적 페이지에는 2번, 3번, 0번 페이지가 쓰여져 있고, 데이터 블록(520)의 제 2 물리적 페이지에는 1번 페이지가 쓰여져 있다. 여기에서, 페이지 위치 순서가 2번, 3번, 0번, 1번이면, 랩-어라운드 방식(wrap-around order)이 된다.
이러한 경우에, 본 발명에서는 데이터 블록(520)의 제 2 물리적 페이지에 저장된 1번 페이지가 로그 블록(510)의 제 4 번 물리적 페이지에 복사된다. 그리고 로그 블록(510)은 새로운 데이터 블록으로 등록된다. 로그 블록(510)은 블록 맵핑 테이블 및 랩-어라운드 페이지 맵핑 테이블에, 플래그 1, 오프셋 2를 갖는 새로운 데이터 블록으로 등록된다. 데이터 블록(520)은 소거된다. 따라서, 도 5에 도시된 메모리 시스템(400)은 한 번의 페이지 복사와 1번의 블록 소거 동작을 수행한다.
한편, 본 발명에 따른 메모리 시스템은 메모리의 공간이 충분할 경우에는 랜덤 페이지 맵핑 테이블을 추가할 수도 있다. 본 발명에 따른 메모리 시스템은 랩-어라운드 방식(wrap-around order)을 순차 위치 방식(in-place order)과 동일하게 처리한다. 본 발명에 의하면, 머지 연산에 필요한 페이지 복수 횟수 및 블록 소거 횟수를 크게 줄일 수 있다.
본 발명은 플래그 정보 및 오프셋 정보를 참조하여 읽기 동작을 수행하기 때문에, 도 4에 도시된 것처럼 페이지 순서를 맞출 필요가 없다. 본 발명에 의하면, 페이지 복사 횟수와 블록 소거 횟수가 줄어들기 때문에 메모리 시스템의 성능이 크게 향상된다.
또한, 블록 맵핑 테이블은 플래그 정보를 기록하기 위해 2비트 정도의 메모리 공간만을 더 필요로 한다. 또한, 랩-어라운드 페이지 맵핑 테이블은 오프셋 정보를 기록하기 위해 1비트 내지 2비트 정도의 메모리 공간만을 필요로 한다. 따라서 본 발명에 따른 메모리 시스템 및 그것의 맵핑 테이블 관리 방법은 메모리의 공간을 크게 늘리지 않으면서, 페이지 복사 횟수 및 블록 소거 횟수를 크게 줄일 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
이상에서 살펴본 바와 같이, 본 발명에 따른 메모리 시스템 및 그것의 맵핑 테이블 관리 방법에 의하면, 메모리의 공간을 크게 늘리지 않으면서, 페이지 복사 횟수 및 블록 소거 횟수를 크게 줄일 수 있다.

Claims (16)

  1. 파일 시스템;
    상기 파일 시스템으로부터 논리적 어드레스를 입력받고, 상기 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 변환 레이어; 및
    상기 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함하되,
    상기 플래시 변환 레이어는 상기 플래시 메모리의 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)임을 표시한 플래그 정보와, 상기 메모리 블록의 시작 페이지를 지정한 오프셋 정보를 갖는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 플래시 변환 레이어는
    논리적 블록 어드레스를 물리적 블록 어드레스로 변환하기 위한 블록 맵핑 테이블; 및
    상기 메모리 블록의 시작 페이지를 지정하기 위한 오프셋 정보를 저장하는 랩-어라운드 페이지 맵핑 테이블을 포함하는 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 블록 맵핑 테이블은 상기 메모리 블록에 대한 플래그 정보를 저장하는 메모리 시스템.
  4. 제 2 항에 있어서,
    상기 블록 맵핑 테이블은
    순차 위치 방식(in-place order)임을 표시하는 제 1 플래그 정보; 및
    상기 랩-어라운드 방식임을 표시하는 제 2 플래그 정보를 갖는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 블록 맵핑 테이블은 임의 위치 방식(out-of-place order)임을 표시하는 제 3 플래그 정보를 더 갖는 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 플래시 변환 레이어는 상기 임의 위치 방식에 사용될 오프셋 정보를 저장하기 위한 랜덤 페이지 맵핑 테이블을 더 포함하는 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
  8. 메모리 시스템의 맵핑 테이블 관리 방법에 있어서:
    상기 메모리 시스템은
    파일 시스템;
    상기 파일 시스템으로부터 논리적 어드레스를 입력받고, 상기 논리적 어드레스를 물리적 어드레스로 변환하는 플래시 변환 레이어; 및
    상기 변환된 물리적 어드레스를 입력받는 플래시 메모리를 포함하고,
    상기 메모리 시스템의 맵핑 테이블 관리 방법은
    상기 논리적 어드레스를 입력받고, 상기 물리적 어드레스를 찾는 단계;
    상기 물리적 어드레스에 해당하는 메모리 블록 내의 페이지 순서가 랩-어라운드 방식임을 표시하는지를 확인하는 단계;
    상기 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)인 경우에, 상기 메모리 블록의 시작 페이지를 찾는 단계; 및
    상기 메모리 블록 내의 페이지 순서를 알고, 원하는 페이지를 읽는 단계를 포함하는 맵핑 테이블 관리 방법.
  9. 제 8 항에 있어서,
    상기 플래시 변환 레이어는 상기 플래시 메모리의 메모리 블록 내의 페이지 순서가 랩-어라운드 방식(wrap-around order)임을 표시한 플래그 정보와, 상기 메모리 블록의 시작 페이지를 지정한 오프셋 정보를 갖는 맵핑 테이블 관리 방법.
  10. 제 9 항에 있어서,
    상기 플래시 변환 레이어는
    논리적 블록 어드레스를 물리적 블록 어드레스로 변환하기 위한 블록 맵핑 테이블; 및
    상기 메모리 블록의 시작 페이지를 지정하기 위한 오프셋 정보를 저장하는 랩-어라운드 페이지 맵핑 테이블을 포함하는 맵핑 테이블 관리 방법.
  11. 제 10 항에 있어서,
    상기 블록 맵핑 테이블은
    순차 위치 방식(in-place order)임을 표시하는 제 1 플래그 정보; 및
    상기 랩-어라운드 방식임을 표시하는 제 2 플래그 정보를 저장하는 맵핑 테이블 관리 방법.
  12. 제 8 항에 있어서,
    상기 메모리 블록 내의 페이지 순서가 순차 위치 방식(in-place order)인 경우에, 원하는 페이지를 읽는 단계를 더 포함하는 맵핑 테이블 관리 방법.
  13. 제 12 항에 있어서,
    상기 플래시 변환 레이어는 상기 순차 위치 방식(in-place order)임을 표시한 플래그 정보를 갖는 맵핑 테이블 관리 방법.
  14. 제 13 항에 있어서,
    상기 플래시 변환 레이어는 상기 플래그 정보를 블록 맵핑 테이블에 기록하는 맵핑 테이블 관리 방법.
  15. 제 8 항에 있어서,
    상기 플래시 변환 레이어는
    논리적 블록 어드레스를 물리적 블록 어드레스로 변환하기 위한 블록 맵핑 테이블;
    상기 메모리 블록의 시작 페이지를 지정하기 위한 오프셋 정보를 저장하는 랩-어라운드 페이지 맵핑 테이블; 및
    임의 위치 방식에 따른 오프셋 정보를 저장하기 위한 랜덤 페이지 맵핑 테이블을 포함하는 맵핑 테이블 관리 방법.
  16. 제 15 항에 있어서,
    상기 블록 맵핑 테이블은
    상기 순차 위치 방식(in-place order)임을 표시하는 제 1 플래그 정보;
    상기 랩-어라운드 방식임을 표시하는 제 2 플래그 정보; 및
    상기 임의 위치 방식(out-of-place order)임을 표시하는 제 3 플래그 정보를 갖는 맵핑 테이블 관리 방법.
KR1020060101961A 2006-10-19 2006-10-19 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 KR100806343B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060101961A KR100806343B1 (ko) 2006-10-19 2006-10-19 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US11/637,792 US20080098195A1 (en) 2006-10-19 2006-12-13 Memory system including flash memory and mapping table management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060101961A KR100806343B1 (ko) 2006-10-19 2006-10-19 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법

Publications (1)

Publication Number Publication Date
KR100806343B1 true KR100806343B1 (ko) 2008-02-27

Family

ID=39319428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060101961A KR100806343B1 (ko) 2006-10-19 2006-10-19 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법

Country Status (2)

Country Link
US (1) US20080098195A1 (ko)
KR (1) KR100806343B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR101103210B1 (ko) * 2008-05-05 2012-01-05 인텔 코포레이션 시퀀스 번호 랩 어라운드 장치, 방법 및 물품
US8239616B2 (en) 2008-12-03 2012-08-07 Samsung Electronics Co., Ltd. Semiconductor device comprising flash memory and address mapping method
KR101570179B1 (ko) 2008-12-08 2015-11-18 삼성전자주식회사 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템
KR101923661B1 (ko) 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
CN113093997A (zh) * 2021-04-19 2021-07-09 深圳市安信达存储技术有限公司 一种基于Host Based FTL架构分离数据的方法
US11762576B2 (en) 2020-08-28 2023-09-19 SK Hynix Inc. Semiconductor memory device and operating method for repairing guarantee blocks

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7739444B2 (en) * 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
US8239875B2 (en) * 2007-12-21 2012-08-07 Spansion Llc Command queuing for next operations of memory devices
US7949851B2 (en) * 2007-12-28 2011-05-24 Spansion Llc Translation management of logical block addresses and physical block addresses
KR101465789B1 (ko) * 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
US8464021B2 (en) * 2008-05-28 2013-06-11 Spansion Llc Address caching stored translation
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US8838876B2 (en) * 2008-10-13 2014-09-16 Micron Technology, Inc. Translation layer in a solid state storage device
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8667248B1 (en) 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
KR101739556B1 (ko) * 2010-11-15 2017-05-24 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8924629B1 (en) 2011-06-07 2014-12-30 Western Digital Technologies, Inc. Mapping table for improving write operation efficiency
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
KR20130084846A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
US8984247B1 (en) 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
WO2014123372A1 (ko) * 2013-02-07 2014-08-14 서울대학교 산학협력단 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크
US11194667B2 (en) 2014-02-07 2021-12-07 International Business Machines Corporation Creating a restore copy from a copy of a full copy of source data in a repository that is at a different point-in-time than a restore point-in-time of a restore request
US11169958B2 (en) 2014-02-07 2021-11-09 International Business Machines Corporation Using a repository having a full copy of source data and point-in-time information from point-in-time copies of the source data to restore the source data at different points-in-time
US10176048B2 (en) 2014-02-07 2019-01-08 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times and reading data from the repository for the restore copy
US10372546B2 (en) 2014-02-07 2019-08-06 International Business Machines Corporation Creating a restore copy from a copy of source data in a repository having source data at different point-in-times
US10387446B2 (en) 2014-04-28 2019-08-20 International Business Machines Corporation Merging multiple point-in-time copies into a merged point-in-time copy
KR20150139718A (ko) * 2014-06-03 2015-12-14 에스케이하이닉스 주식회사 불휘발성 메모리를 제어하는 컨트롤러 및 그것을 포함하는 반도체 장치
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
TWI512609B (zh) 2014-09-05 2015-12-11 Silicon Motion Inc 讀取命令排程方法以及使用該方法的裝置
KR20160070920A (ko) * 2014-12-10 2016-06-21 에스케이하이닉스 주식회사 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US10896125B2 (en) * 2017-11-17 2021-01-19 SK Hynix Inc. Garbage collection methods and memory systems for hybrid address mapping
US10884947B2 (en) 2017-11-17 2021-01-05 SK Hynix Inc. Methods and memory systems for address mapping
CN108062203B (zh) * 2017-12-15 2021-02-26 北京兆易创新科技股份有限公司 一种闪存数据管理方法、装置及存储器
CN112115067B (zh) * 2019-06-21 2024-09-24 慧荣科技股份有限公司 闪存物理资源集合管理装置及方法及计算机可读取存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5713005A (en) 1995-02-10 1998-01-27 Townsend And Townsend And Crew Llp Method and apparatus for pipelining data in an integrated circuit
KR19990027320A (ko) * 1997-09-29 1999-04-15 윤종용 동기식 랜덤 엑세스 메모리 제어장치 및 방법
JP2000105694A (ja) 1998-09-28 2000-04-11 Nec Ic Microcomput Syst Ltd フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
KR20020075291A (ko) * 2001-03-22 2002-10-04 마쯔시다덴기산교 가부시키가이샤 기억장치
KR20050070672A (ko) * 2003-12-30 2005-07-07 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5713005A (en) 1995-02-10 1998-01-27 Townsend And Townsend And Crew Llp Method and apparatus for pipelining data in an integrated circuit
KR19990027320A (ko) * 1997-09-29 1999-04-15 윤종용 동기식 랜덤 엑세스 메모리 제어장치 및 방법
JP2000105694A (ja) 1998-09-28 2000-04-11 Nec Ic Microcomput Syst Ltd フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
KR20020075291A (ko) * 2001-03-22 2002-10-04 마쯔시다덴기산교 가부시키가이샤 기억장치
KR20050070672A (ko) * 2003-12-30 2005-07-07 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR101103210B1 (ko) * 2008-05-05 2012-01-05 인텔 코포레이션 시퀀스 번호 랩 어라운드 장치, 방법 및 물품
US8171205B2 (en) 2008-05-05 2012-05-01 Intel Corporation Wrap-around sequence numbers for recovering from power-fall in non-volatile memory
US8705272B2 (en) 2008-06-13 2014-04-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8565021B2 (en) 2008-06-13 2013-10-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8614919B2 (en) 2008-06-13 2013-12-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8625344B2 (en) 2008-06-13 2014-01-07 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8638585B2 (en) 2008-06-13 2014-01-28 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8760918B2 (en) 2008-06-13 2014-06-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8239616B2 (en) 2008-12-03 2012-08-07 Samsung Electronics Co., Ltd. Semiconductor device comprising flash memory and address mapping method
KR101570179B1 (ko) 2008-12-08 2015-11-18 삼성전자주식회사 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템
KR101923661B1 (ko) 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
US10824341B2 (en) 2016-04-04 2020-11-03 MemRay Corporation Flash-based accelerator and computing device including the same
US10831376B2 (en) 2016-04-04 2020-11-10 MemRay Corporation Flash-based accelerator and computing device including the same
US11762576B2 (en) 2020-08-28 2023-09-19 SK Hynix Inc. Semiconductor memory device and operating method for repairing guarantee blocks
CN113093997A (zh) * 2021-04-19 2021-07-09 深圳市安信达存储技术有限公司 一种基于Host Based FTL架构分离数据的方法

Also Published As

Publication number Publication date
US20080098195A1 (en) 2008-04-24

Similar Documents

Publication Publication Date Title
KR100806343B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR100885181B1 (ko) 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US11232041B2 (en) Memory addressing
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
TWI782977B (zh) 記憶體系統及其操作方法
US8341371B2 (en) Method of managing copy operations in flash memories
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
KR100771521B1 (ko) 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US7287117B2 (en) Flash memory and mapping control apparatus and method for flash memory
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
US20080082729A1 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US20140297921A1 (en) Method of Partitioning Physical Block and Memory System Thereof
KR20100042455A (ko) 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법
JP2006221636A (ja) Run単位アドレスマッピングテーブル及びそれの構成方法
WO2007066720A1 (ja) 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
CN108027764B (zh) 可转换的叶的存储器映射
KR100845552B1 (ko) Ftl의 어드레스 매핑 방법
US11113205B2 (en) Die addressing using a reduced size translation table entry
KR101119866B1 (ko) 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템
Han Fast erase algorithm using flash translation layer in NAND-type flash memory
US20060224817A1 (en) NOR flash file allocation
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
JP2008299513A (ja) データ記憶装置およびその制御方法
KR20050102779A (ko) Nand형 플래시 메모리 파일 시스템의 설계 방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20061019

PA0201 Request for examination
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080129

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080215

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080218

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110131

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20120131

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130131

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130131

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20140129

Start annual number: 7

End annual number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20160109