KR101114398B1 - 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법 - Google Patents

삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법 Download PDF

Info

Publication number
KR101114398B1
KR101114398B1 KR1020100006705A KR20100006705A KR101114398B1 KR 101114398 B1 KR101114398 B1 KR 101114398B1 KR 1020100006705 A KR1020100006705 A KR 1020100006705A KR 20100006705 A KR20100006705 A KR 20100006705A KR 101114398 B1 KR101114398 B1 KR 101114398B1
Authority
KR
South Korea
Prior art keywords
address
flash memory
pmd
block
blocks
Prior art date
Application number
KR1020100006705A
Other languages
English (en)
Other versions
KR20110087177A (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 KR1020100006705A priority Critical patent/KR101114398B1/ko
Publication of KR20110087177A publication Critical patent/KR20110087177A/ko
Application granted granted Critical
Publication of KR101114398B1 publication Critical patent/KR101114398B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

본 발명은 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법에 관한 것으로서, 보다 구체적으로는 (1) 논리 주소(Logical Address)가 요청되면, LRU 군집형 해시 테이블(LRU Clustered Hash Table)을 검색하여 요청된 논리 주소에 대한 물리 주소(Physical Address)가 존재하는지를 확인하는 단계; (2) 단계 (1)에서의 확인 결과, 요청된 논리 주소에 대한 물리 주소가 존재하는 경우, 플래시 메모리의 스페어 영역(Spare Area)의 참조 없이 상기 LRU 군집형 해시 테이블에 존재하는 PTE(Page Table Entry)를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계; (3) 단계 (1)에서의 확인 결과, 요청된 논리 주소에 대한 물리 주소가 존재하지 않는 경우, PMD 군집형 해시 테이블(PMD Clustered Hahs Table)을 검색하여 요청된 논리 주소에 대한 PMD(Page Middle Directory) 데이터가 존재하는지 확인하는 단계; (4) 단계 (3)에서의 확인 결과, 요청된 논리 주소에 대한 PMD 데이터가 존재하는 경우, 해당 PMD 데이터를 통해 플래시 메모리의 스페어 영역의 1회 참조에 의해 PTE를 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계; 및 (5) 단계 (3)에서의 확인 결과, 요청된 논리 주소에 대한 PMD 데이터가 존재하지 않는 경우, PGD(Page Global Directory) 테이블을 검색하여 플래시 메모리의 스페어 영역의 PMD와 PTE를 차례로 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계를 포함하여 구성되는 퓨전 플래시 메모리의 주소 변환 방법을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법에 따르면, 삭제 그룹 플래시 변환 계층을 새롭게 제안하고 이를 통해 주소 변환 및 다중 블록 삭제를 수행함으로써, 퓨전 플래시 메모리의 효율적인 다중 블록 삭제를 가능하게 한다.

Description

삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법{omitted}
본 발명은 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법에 관한 것으로서, 특히 삭제 그룹 플래시 변환 계층(Erase Group Flash Translation Layer; EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법에 관한 것이다.
비휘발성 메모리 저장장치인 플래시 메모리는 작고 가벼운 무게와 적은 전력 소모 그리고 충격에 강한 특성을 가지고 있어 휴대용 임베디드 시스템을 위한 유비쿼터스 저장장치로 많이 활용된다. NOR 플래시 메모리의 경우, 빠른 읽기 성능과 바이트 단위로 읽기가 가능한 램(RAM) 형태의 인터페이스, XIP(eXecute In Place)를 지원하여 주로 코드 영역을 저장하기 위한 저장장치로 사용된다. 이에 비해, 집적도가 높은 구조적 특성과 NOR 플래시 메모리보다 빠른 쓰기/삭제 성능을 갖고 있는 NAND 플래시 메모리의 경우, 주로 데이터 저장을 위한 저장장치로 사용된다. 대부분의 임베디드 시스템에서는 이와 같이 용도에 따라 NOR 플래시 메모리와 NAND 플래시 메모리를 구분하여 함께 사용하지만 이 경우 시스템 구조가 복잡해지고 비용이 상승하게 되는 문제를 갖게 된다.
이러한 문제점을 해결하기 위해 NAND 플래시 메모리의 대용량, 빠른 쓰기 속도와 NOR 플래시 메모리의 빠른 읽기 속도, XIP를 모두 지원하는 퓨전 플래시 메모리가 제안되었다. 대표적인 퓨전 플래시 메모리 중의 하나인 OneNANDTM는 NAND 플래시 메모리와 제어 로직을 결합해 RAM 인터페이스를 사용할 수 있도록 하였다. RAM 인터페이스를 통하여 OneNANDTM는 NOR 플래시 메모리와 NAND 플래시 메모리를 혼합한 구조의 장점뿐만 아니라 다중 블록 삭제(Multi Block Erase) 기능을 제공하여, 플래시 메모리의 단점으로 지적되었던 느린 삭제 성능을 향상시켰다. 다중 블록 삭제는 다수의 블록을 한 번에 삭제하는 기능으로 최대 64개의 블록을 4ms내에 삭제할 수 있다. 이는 기존의 NAND 플래시 메모리의 블록당 삭제 시간인 2ms에 비해 최대 32배 빠르므로, 다중 블록 삭제를 사용하여 가비지 컬렉션의 삭제 시간에 대한 부하를 크게 줄일 수 있다. 다중 블록 삭제 기능은 특히 64개의 블록을 한 번에 삭제할 경우 최대의 효과를 보일 수 있다.
이러한 특징 외에 OneNANDTM는 NOR 플래시 메모리, NAND 플래시 메모리와 마찬가지로 블록당 삭제 횟수 제한 및 쓰기, 읽기, 삭제 단위와 속도가 다른 비대칭적인 연산 성능과 제자리 갱신이 불가능하고 쓰기 전에 블록이 삭제되어야 하는 특성(erase-before-write)을 갖고 있다. 따라서 이러한 특성을 극복하기 위해 기존의 플래시 메모리와 같이 플래시 변환 계층(Flash Translation Layer)을 사용한다. 플래시 변환 계층은 논리적인 주소를 물리적인 주소로 사상하는 방법을 제공하고, 균등한 쓰기를 보장하기 위한 마모도 평준화 방법(Wear-leveling)과 무효 데이터를 처리하기 위한 가비지 컬렉션(Garbage collection) 기능을 제공한다. 특히 주소 사상 방법과 가비지 컬렉션 성능에 따라 플래시 메모리의 성능이 좌우된다. OneNANDTM는 다중 블록 삭제 기능을 제공하므로 가비지 컬렉션의 삭제 시간을 단축시켜 플래시 메모리의 성능을 높일 수 있는 가능성을 제공하지만, 기존의 플래시 변환 계층은 다수의 블록을 한 번에 삭제할 수 있는 점을 고려하지 않고 있기 때문에 다중 블록 삭제 기능을 효율적으로 사용하지 못하고 있다. 유비쿼터스 컴퓨팅 환경에서 플래시 메모리를 대용량 저장장치로 활용하기 위해서는 수행시간이 오래 걸리는 삭제 연산 문제를 해결해야 멀티미디어 데이터 처리 및 저장 등의 QoS를 보장할 수 있다.
다음으로, 본 발명과 관련된 분야의 관련 연구 상황을 간단히 살펴봄으로써, 퓨전 플래시 메모리의 다중 블록 삭제를 위한 새로운 방법의 필요성에 대하여 알아보기로 한다.
1. 플래시 변환 계층(Flash translation layer)
플래시 메모리는 데이터를 기록하기 전에 데이터 영역이 지워져 있어야 하는 제약이 있으며, 비대칭적인 읽기, 쓰기, 삭제 연산의 처리속도, 블록당 소거 횟수의 제한과 같은 특징을 지닌다. 위와 같은 단점을 극복하고 플래시 메모리를 효율적으로 사용하기 위해서 플래시 변환 계층이라는 미들웨어가 제안되었다. 플래시 변환 계층의 주요 기능은, 논리적인 주소를 물리적인 주소로 사상하는 방법과 무효 데이터들을 처리하기 위한 가비지 컬렉션 기능, 및 균등한 쓰기를 보장하기 위한 마모도 평준화 기능이다.
플래시 변환 계층의 주소 사상 방법은 섹터 사상(sector mapping), 블록 사상(block mapping), 혼합 사상(hybrid mapping)으로 나눌 수 있다. 도 1은 플래시 변환 계층의 주소 사상 방법을 나타내는 도면으로서, 도 1a 및 도 1b는, 각각 섹터 사상 방법과 블록 사상 방법을 나타내는 도면이다. 도 1에 도시된 섹터 사상 방법은, 논리주소와 물리주소를 섹터 단위로 1:1 주소 변환을 하기 때문에 주소 변환 성능이 빠르다. 하지만 섹터 사상은 테이블 관리를 위한 메모리 요구량이 큰 단점이 있다. 이를 해결하기 위해 도 1b의 블록 사상 방법은 블록 단위로 사상하는 방법을 제공하여 메모리 요구량을 감소시켰다. 하지만 겹쳐 쓰기(overwrite)가 발생할 경우 블록 내의 모든 데이터를 다른 블록으로 복사해야 하므로 성능이 저하되는 단점이 있다. 따라서 섹터 사상 방법과 블록 사상 방법을 혼합한 혼합 사상 방법이 제안되었다. 대표적인 혼합 사상 방법으로 로그 블록을 사용하는 BAST(Block Associative Sector Translation layer)와 FAST(Fully Associative Secotr Translation layer)가 있다.
BAST와 FAST는 블록 사상의 단점인 겹쳐 쓰기에 대한 불필요한 복사를 줄이기 위해 로그 블록(log block)이라는 일종의 쓰기 캐시 블록을 사용한다. 로그 블록의 사용방법에 따라 BAST와 FAST를 구분한다. BAST는 겹쳐 쓰기가 일어날 경우 데이터 블록과 관련된 로그 블록을 두어 데이터 블록의 오프셋과 동일한 위치에 데이터를 저장한다. BAST는 순차적인 데이터 갱신에 좋은 성능을 보이지만 랜덤 쓰기가 발생할 경우 로그 블록이 모두 사용되기 전에 새로운 로그 블록을 할당하는 블록 스레싱(block threshing) 문제가 발생한다. 또한 새로운 로그 블록에 갱신되기 전의 로그 블록의 유효 페이지를 복사해야 하는 추가적인 쓰기 연산이 발생하여 플래시 메모리의 성능이 저하된다. BAST의 이러한 단점을 보완하기 위해 모든 데이터 블록에 대해 오프셋에 상관없이 데이터 갱신이 발생하면 로그 블록의 빈 공간에 데이터를 순차적으로 저장하는 FAST가 제안되었다. FAST를 통하여 랜덤 쓰기에 대해 성능 저하를 줄일 수 있었지만 Hot data와 같이 자주 쓰이는 데이터가 존재할 경우 가비지 컬렉션의 성능이 떨어지는 단점이 존재한다. Hot data에 대한 문제를 해결하기 위한 방법으로 Superblock scheme가 있다.
2.Superblock scheme
도 2는 Superblock scheme의 주소 사상 방법을 나타내는 도면이다. 도 2에 도시된 바와 같이, Superblock은 블록 수준의 주소 사상 방법을 사용하고, Superblock 내의 블록들은 섹터 수준의 주소 사상 방법을 사용한다. Superblock scheme은 Superblock 단위로 갱신 블록을 관리하며, Superblock 내의 데이터는 오프셋에 상관없이 쓰인 순서대로 저장이 된다. 따라서 자주 접근되는 데이터와 접근되지 않는 데이터가 자동으로 분리가 되어 가비지 컬렉션에서의 추가적인 쓰기를 감소시킬 수 있다.
Superblock scheme는 3단계 주소 사상을 사용하여 Superblock 내의 블록들에 대하여 섹터 사상이 가능하도록 하였다. 3단계 주소 사상은 PGD(Page Global Directory), PMD(Page Middle Directory), PTE(Page Table Entry)의 3단계 주소 변환 테이블을 사용하며, PTE에 섹터 사상 테이블을 저장하여 섹터 사상과 같은 자유로운 주소 변환이 가능하다. 또한 PGD만 램 영역에 저장하고 나머지 테이블은 플래시 메모리에 저장하여 주소 사상 테이블에 소모되는 메모리 요구량을 줄일 수 있다.
하지만 Superblock scheme은 주소 사상 테이블을 플래시 메모리의 스페어 영역에 저장하기 때문에 원하는 데이터를 읽기 위해 플래시 메모리를 두 번 읽는 오버헤드가 발생할 수 있다. 이를 해결하기 위해 PMD와 PTE의 일부를 저장하는 LRU 테이블을 사용하지만 테이블 내에 요청된 주소가 없거나 연속된 주소 요청이 발생할 경우 주소 변환 성능이 저하되는 단점이 발생한다. 또한 가비지 컬렉션의 상황에 따라 선택되는 희생 블록의 수가 일정하지 않기 때문에 다중 블록 삭제의 효율성이 떨어진다. 따라서 효율적인 주소 변환 방법 및 다중 블록 삭제를 위한 다수의 희생 블록들을 선택하여 삭제하는 방법이 필요하다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 삭제 그룹 플래시 변환 계층(EGFTL)을 새롭게 제안하고 이를 통해 주소 변환 및 다중 블록 삭제를 수행함으로써, 퓨전 플래시 메모리의 효율적인 다중 블록 삭제를 가능하게 하는, 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법을 제공하는 것을 그 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법은,
상기 삭제 그룹 플래시 변환 계층(EGFTL)은,
선형 탐색 시간을 가지며, 지역성을 고려하여 최근에 사용된 주소와 그와 인접된 주소들을 섹터 사상으로 관리하는 LRU 군집형 해시 테이블;
상기 LRU 군집형 해시 테이블을 모두 사용한 경우에 LRU 기법에 따라 자주 사용되지 않았던 주소를 강등시켜 얻어지는 테이블로서, 상기 강등된 주소와 관련 PMD 값을 섹터 사상하여 관리하는 PMD 군집형 해시 테이블; 및
상기 PMD 군집형 해시 테이블에서 주소 검색이 실패할 경우 이용되며, 페이지 전역 디렉터리를 저장하는 PGD 테이블을 포함하여 구성되며,
(1) 논리 주소(Logical Address)가 요청되면, LRU 군집형 해시 테이블(LRU Clustered Hash Table)을 검색하여 요청된 논리 주소에 대한 물리 주소(Physical Address)가 존재하는지를 확인하는 단계;
(2) 단계 (1)에서의 확인 결과, 요청된 논리 주소에 대한 물리 주소가 존재하는 경우, 플래시 메모리의 스페어 영역(Spare Area)의 참조 없이 상기 LRU 군집형 해시 테이블에 존재하는 PTE(Page Table Entry)를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계;
(3) 단계 (1)에서의 확인 결과, 요청된 논리 주소에 대한 물리 주소가 존재하지 않는 경우, PMD 군집형 해시 테이블(PMD Clustered Hahs Table)을 검색하여 요청된 논리 주소에 대한 PMD(Page Middle Directory) 데이터가 존재하는지 확인하는 단계;
(4) 단계 (3)에서의 확인 결과, 요청된 논리 주소에 대한 PMD 데이터가 존재하는 경우, 해당 PMD 데이터를 통해 플래시 메모리의 스페어 영역의 1회 참조에 의해 PTE를 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계; 및
(5) 단계 (3)에서의 확인 결과, 요청된 논리 주소에 대한 PMD 데이터가 존재하지 않는 경우, PGD(Page Global Directory) 테이블을 검색하여 플래시 메모리의 스페어 영역의 PMD와 PTE를 차례로 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는,상기 단계 (4)에서,
다음 주소 변환에 대해 빠른 수행이 가능하도록, 해당 PMD 데이터를 통해 읽은 상기 PTE를 상기 LRU 군집형 해시 테이블에 저장할 수 있다.
바람직하게는, 상기 단계 (5)에서,
다음 주소 변환에 대해 빠른 수행이 가능하도록, PGD 테이블을 검색하여 읽은 상기 PTE를 상기 LRU 군집형 해시 테이블에 저장할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 또 다른 특징에 따른, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 다중 블록 삭제 방법은,
상기 삭제 그룹 플래시 변환 계층(EGFTL)은,
선형 탐색 시간을 가지며, 지역성을 고려하여 최근에 사용된 주소와 그와 인접된 주소들을 섹터 사상으로 관리하는 LRU 군집형 해시 테이블;
상기 LRU 군집형 해시 테이블을 모두 사용한 경우에 LRU 기법에 따라 자주 사용되지 않았던 주소를 강등시켜 얻어지는 테이블로서, 상기 강등된 주소와 관련 PMD 값을 섹터 사상하여 관리하는 PMD 군집형 해시 테이블; 및
상기 PMD 군집형 해시 테이블에서 주소 검색이 실패할 경우 이용되며, 페이지 전역 디렉터리를 저장하는 PGD 테이블을 포함하여 구성되며,
다중 블록 삭제는, 다중 블록 삭제를 통해 삭제될 무효 블록들을 관리하기 위한 삭제 그룹 리스트(Erase Group List)와, 무효 블록들을 효율적으로 수집하기 위한 무효 블록 수집기로 구성된 무효 블록 관리자에 의해 수행되며,
상기 무효 블록 수집기에 의해 상기 삭제 그룹 리스트가 완성되면 가비지 컬렉션이 발생하여 상기 삭제 그룹 리스트의 정보를 통해 다수의 블록을 삭제하는 것을 그 구성상의 특징으로 한다.
바람직하게는,
상기 무효 블록 수집기는, 단일 갱신 블록과 다중 갱신 블록으로 구성된 2단계 갱신 블록을 이용하여 무효 블록들을 수집하되,
상기 단일 갱신 블록이 모두 사용된 경우, 데이터 블록으로 사용되었던 블록들을 상기 삭제 그룹 리스트에 추가하며,
상기 다중 갱신 블록이 모두 사용된 경우, 상기 다중 갱신 블록에 존재하는 유효 데이터들을 자주 갱신되는 핫 데이터(Hot Data)로 간주하여 자유 블록에 복사하여 새로운 다중 갱신 블록으로 활용하고, 기존에 다중 갱신 블록으로 사용된 블록은 모두 상기 삭제 그룹 리스트에 추가할 수 있다.
본 발명에서 제안하고 있는 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법에 따르면, 삭제 그룹 플래시 변환 계층을 새롭게 제안하고 이를 통해 주소 변환 및 다중 블록 삭제를 수행함으로써, 퓨전 플래시 메모리의 효율적인 다중 블록 삭제를 가능하게 한다.
도 1은 플래시 변환 계층의 주소 사상 방법을 나타내는 도면으로서, 도 1a 및 도 1b는, 각각 섹터 사상 방법과 블록 사상 방법을 나타내는 도면.
도 2는 Superblock scheme의 주소 사상 방법을 나타내는 도면.
도 3은 본 발명에서 제안하고 있는 EGFTL의 주소 변환 방법의 일례의 순서도를 나타내는 도면.
도 4는 본 발명에서 제안하고 있는 EGFTL의 주소 변환 방법의 전체 구조를 나타내는 도면.
도 5는 본 발명의 일 실시예에 따른 군집형 해시 테이블의 구성을 나타내는 도면.
도 6은 본 발명의 일 실시예에 따른 LRU 군집형 해시 테이블의 구성을 나타내는 도면.
도 7은 본 발명의 일 실시예에 따른 PMD 군집형 해시 테이블의 구성을 나타내는 도면.
도 8은 본 발명의 일 실시예에 따른 무효 블록 관리자의 구성을 나타내는 도면.
도 9는 본 발명의 일 실시예에 따라, 2단계 갱신 블록을 사용하여 무효 블록을 수집하는 방법을 나타내는 도면.
도 10은 본 발명에서 제안하고 있는 EGFRL의 스페어 영역의 구조의 일례를 나타내는 도면.
도 11은 본 발명에서 제안하고 있는 EGFTL의 성능과 BAST 및 FAST의 성능을 앤드류 벤치마크를 통해 비교한 실험 결과를 나타내는 도면.
도 12는 본 발명에서 제안하고 있는 EGFTL에 의한 캐시 적중률을 Superblock scheme에 의한 캐시 적중률과 비교하여 나타낸 도면.
도 13은 본 발명에서 제안하고 있는 EGFTL의 삭제 횟수 및 삭제 시간을 BAST, FAST 및 Superblock scheme의 삭제 횟수 및 삭제 시간과 비교하여 나타내는 도면.
도 14는 본 발명에서 제안하고 있는 EGFTL의 쓰기 횟수를 BAST, FAST 및 Superblock scheme의 쓰기 횟수와 비교하여 나타내는 도면.
도 15는 본 발명에서 제안하고 있는 EGFTL의 가비지 컬렉션 시간을 BAST, FAST 및 Superblock scheme의 가비지 컬렉션 시간과 비교하여 나타내는 도면.
이하에서는 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일 또는 유사한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 3은 본 발명에서 제안하고 있는 EGFTL의 주소 변환 방법의 일례의 순서도를 나타내는 도면이다. 도 3에 도시된 바와 같이, 본 발명에서 제안하고 있는 EGFTL의 주소 변환 방법은 단계 S50 내지 단계 S500을 포함하여 구성될 수 있다.
단계 S50에서 논리 주소를 요청하며, 단계 S100에서는 요청된 논리 주소에 대한 물리 주소가 LRU 군집형 해시 테이블에 존재하는지 여부를 확인한다.
단계 S100에서, 요청된 논리 주소에 대한 물리 주소가 LRU 군집형 해시 테이블에 존재하는 경우, 단계 S200에서는 LRU 군집형 해시 테이블에 존재하는 PTE를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환한다. 만약 요청된 논리 주소에 대한 물리 주소가 LRU 군집형 해시 테이블에 존재하지 않는 경우, 단계 S300에서는 PMD 군집형 해시 테이블을 검색하여 요청된 논리 주소에 대한 PMD 데이터가 존재하는지 여부를 확인한다.
단계 S300에서, 요청된 논리 주소에 대한 PMD 데이터가 PMD 군집형 해시 테이블에 존재하는 경우, 단계 S400에서는 해당 PMD 데이터를 통해 PTE를 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환한다. 만약 요청된 논리 주소에 대한 PMD 데이터가 PMD 군집형 해시 테이블에 존재하지 않는 경우, 단계 S500에서는 PGD 테이블을 검색하여 PMD와 PTE를 차례로 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환한다.
이하에서는 본 발명에서 제안하고 있는 EGFTL의 주소 변환 방법 및 다중 블록 삭제 방법에 대하여 보다 구체적으로 살펴보기로 한다.
1. 주소 변환 방법
도 4는 본 발명에서 제안하고 있는 EGFTL의 주소 변환 방법의 전체 구조를 나타내는 도면이다. 일반적으로 Superblock scheme의 3단계 주소 변환은 요청된 논리 주소에 대한 물리 주소를 검색하기 위해 플래시 메모리의 스페어 영역을 두 번 읽게 되어 성능 저하 문제가 발생한다. 이를 해결하기 위해 Superblock scheme는 일부의 PTE에 대해 LRU를 적용한 캐시 정책을 사용하여 보완하였다. 하지만 캐시 테이블에 요청한 주소가 없을 경우와 연속적인 주소 요청이 많이 발생할 경우 LRU 테이블의 갱신이 많이 이루어져 플래시 메모리의 성능을 감소시킨다. 본 발명에서 제안하고 있는 EGFTL의 주소 변환은 이와 같은 플래시 메모리를 읽는 오버헤드를 줄이기 위해 최근에 참조된 PMD와 관련된 페이지들을 섹터 사상을 하여 플래시 메모리의 스페어 영역의 참조를 최소화한다.
도 4에 도시된 바와 같이, 본 발명에서 제안하고 있는 EGFTL은, LRU 군집형 해시 테이블(LRU Clustered Hash Table), PMD 군집형 해시 테이블(PMD Clustered Hash Table), PGD 테이블(PGD Table)로 구성된다. LRU 군집형 해시 테이블은 공간 지역성을 고려하여 최근에 사용된 PMD의 PTE를 섹터 사상하며, 연속된 논리 주소를 빠르게 처리할 수 있게 한다. LRU 군집형 해시 테이블이 모두 사용된 경우 PMD 해시 테이블로 강등한다. PMD 군집형 해시 테이블은 PMD를 빠르게 요청할 수 있게 한다.
논리 주소가 요청되면 먼저 LRU 군집형 해시 테이블을 검색하여 요청된 논리 주소에 대한 물리 페이지 주소가 있을 경우 플래시 메모리의 스페어 영역의 참조 없이 물리 주소를 반환하여 요청된 논리 주소에 대한 데이터를 찾는다. 이는 도 4의 Case 1에 해당하며, 메모리에서 주소 요청이 바로 이루어지므로 빠른 주소 변환이 가능하다. LRU 군집형 해시 테이블에 요청된 논리 주소에 대한 물리 주소가 존재하지 않을 경우, 도 4의 Case 2와 같이 PMD 군집형 해시 테이블을 검색하여 요청된 논리 주소에 대한 PMD 데이터가 있는지 검색하여 플래시 메모리의 스페어 영역의 참조를 한 번으로 줄인다. 요청된 논리 주소가 LRU 군집형 해시 테이블과 PMD 군집형 해시 테이블에 모두 존재하지 않을 경우, 도 4의 Case 3과 같이 PGD 테이블을 검색하여 플래시 메모리의 스페어 영역의 PMD와 PTE를 차례로 읽어 데이터를 검색한다.
1.1 LRU 군집형 해시 테이블
본 발명에서 제안하고 있는 EGFTL은, 앞서 설명한 바와 같이, Superblock scheme의 연속된 주소 요청에 대한 성능을 향상시키기 위해 LRU 군집형 해시 테이블을 사용한다. Superblock scheme는 주소 변환을 위해 최악의 경우 플래시 메모리를 두 번 읽어야 하는 오버헤드가 존재한다. 본 발명에서 제안하고 있는 EGFTL은 지역성을 고려하여 최근에 사용된 주소와 그와 인접한 주소들을 섹터 사상으로 관리하여 연속된 주소 요청을 빠르게 할 수 있도록 한다. 또한 주소 변환 성능을 향상시킬 수 있도록 선형 탐색 시간을 갖는 도 5와 같은 군집형 해시 테이블을 사용하여 주소를 관리한다.
도 5는 본 발명의 일 실시예에 따른 군집형 해시 테이블의 구성을 나타내는 도면이다. 도 5에 도시된 바와 같이, 군집형 해시 테이블은 과거에 Sun Microsystems에서 설계한 군집형 페이지 테이블 기법을 FTL 상에서 구현한 것으로서, 해시 테이블에서 Subblocking 기법을 이용한 확장 방식이다. 군집형 해시 테이블에서 버켓은 Subblock의 집합을 의미하며, 각 Subblock의 개 Subblock factor라고 일컫는다.
LRU 군집형 해시 테이블에서는 Subblock factor를 16으로 하여 도 6과 같이 참조된 PMD와 관련된 연속적인 주소들인 PTE를 저장하여 주소 변환 성능을 향상시킨다. 도 6은 본 발명의 일 실시예에 따른 LRU 군집형 해시 테이블의 구성을 나타내는 도면이다. 도 6에 도시된 바와 같이, 최근에 참조된 주소와 이 주소와 관련된 연속적인 주소를 저장하므로, 시간, 공간 지역성을 고려하여 적중률을 증가시킬 수 있다. LRU 군집형 해시 테이블을 모두 사용한 경우 LRU 기법에 따라 자주 사용되지 않았던 주소를 PMD 군집형 해시 테이블로 강등한다.
1.2 PMD 군집형 해시 테이블
LRU 군집형 해시 테이블에서 강등된 주소는 사용되었지만 추후 사용될 가능성이 여전히 있는 주소이기 때문에 PMD 군집형 해시 테이블에 PMD 주소를 섹터 사상하여 관리한다. 이때 한 블록당 4개의 PMD 값을 가지므로 Subblock factor는 4로 설정한다.
도 7은 본 발명의 일 실시예에 따른 PMD 군집형 해시 테이블의 구성을 나타내는 도면이다. 도 7에 도시된 바와 같이, PMD 군집형 해시 테이블은 LRU 군집형 해시 테이블에서 강등된 주소와 관련된 PMD 값을 저장하므로, LRU 군집형 해시 테이블보다 많은 주소들을 캐시할 수 있다. 요청된 논리 주소를 PMD 군집형 해시 테이블에서 찾을 경우 플래시 메모리의 PTE를 한 번만 참조하여 주소 변환을 할 수 있다. 또한 PMD 군집형 해시 테이블을 통하여 읽은 PTE들을 LRU 군집형 해시 테이블에 저장하여 다음 주소 변환이 빠르게 이루어지도록 하여 LRU 군집형 해시 테이블의 구성을 보완한다. PMD 군집형 해시 테이블에서 주소 검색이 실패했을 경우 기존의 Superblock scheme와 같이 PGD 테이블부터 검색하며, 플래시 메모리에 저장된 PMD와 PTE를 검색하여 주소를 반환한다. 요청된 주소에 대한 PTE를 LRU 군집형 해시 테이블에 저장하여 다음 주소 변환에 대해 빠른 수행이 가능하게 한다.
2. 가비지 컬렉션
본 발명에서 제안하고 있는 EGFTL의 가비지 컬렉션은 무효 블록 관리자를 통해 이루어진다. 본 발명에서 제안하고 있는 무효 블록 관리자는, 다중 블록 삭제를 사용하여 삭제될 희생 블록들을 관리하기 위한 삭제 그룹 리스트(Erase Group List)와, 무효 블록들을 효율적으로 수집하기 위한 무효 블록 수집기로 구성된다. 또한 빠른 무효 블록 수집을 위해 2단계 갱신 블록을 사용한다. 삭제 그룹 리스트가 완성된 경우 가비지 컬렉션이 발생하여 삭제 그룹 리스트의 정보를 통해 다수의 블록을 삭제한다. 다수의 블록들을 가비지 컬렉션의 삭제 단위로 사용하므로 삭제시간을 감소시킬 수 있다.
2.1 무효 블록 관리자
다중 블록 삭제 기능을 통해 가비지 컬렉션 성능을 높이기 위해 다음과 같이 두 가지를 고려해야 한다. 첫 번째, 다중 블록 삭제 성능을 최대화하기 위해서는 한 번에 삭제할 수 있는 최대 블록 수 단위로 가비지 컬렉션이 실행되어야 한다. 두 번째, 삭제하기 위한 다수의 블록들을 선택하기 위한 탐색시간을 최소화하여야 한다. 기존의 NAND 플래시 변환 계층에서는 블록 수에 비례하여 삭제 시간이 증가하였으므로, 이러한 점을 고려할 필요가 없었다. 따라서 다중 블록 삭제 기능을 효율적으로 사용하기 위해 무효 블록 관리자를 사용한다.
도 8은 본 발명의 일 실시예에 따른 무효 블록 관리자의 구성을 나타내는 도면이다. 도 8에 도시된 바와 같이, 무효 블록 관리자는 무효 블록 수집기를 통하여 수집된 무효 블록들을 삭제 그룹 리스트로 관리하여 리스트가 모두 찬 경우 가비지 컬렉션을 실행하여 삭제 시간을 최소화한다.
2.2 무효 블록 수집기
무효 블록 수집기는 2단계 갱신 블록을 사용하여 무효 블록들을 탐색하는 시간을 줄인다. 2단계 갱신 블록은 단일 갱신 블록과 다중 갱신 블록으로 구성된다. 단일 갱신 블록은 데이터 블록의 데이터가 한 번 갱신되는 경우 사용하는 블록으로서, Superblock에 할당된 블록과 동일한 수의 블록을 사용한다. 다중 갱신 블록은 단일 갱신 블록과 다중 갱신 블록에서 데이터 갱신이 발생할 경우 사용하는 블록이다. 다중 갱신 블록을 통해 Hot 데이터를 구분하여 관리할 수 있다.
도 9는 본 발명의 일 실시예에 따라, 2단계 갱신 블록을 사용하여 무효 블록을 수집하는 방법을 나타내는 도면이다. 도 9에 도시된 바와 같이, 무효 블록 수집 시기는 단일 갱신 블록이 모두 사용된 경우와 다중 갱신 블록이 모두 사용된 경우이다.
단일 갱신 블록은 데이터가 한 번 갱신이 되고 데이터 블록 수가 동일하므로 데이터 블록의 데이터가 모두 한 번씩 갱신된 경우, 즉 데이터 블록이 모두 무효 데이터가 된 경우 단일 갱신 블록이 모두 사용된다. 따라서 도 9a에 도시된 바와 같이, 단일 갱신 블록이 모두 사용되었을 때, 데이터 블록으로 사용되었던 블록들의 주소를 삭제 그룹 리스트에 추가한다.
다중 갱신 블록은 자주 갱신되는 데이터가 저장되므로 다중 갱신 블록이 모두 사용된 경우 무효 데이터 비율이 높다. 따라서 도 9b에 도시된 바와 같이, 다중 갱신 블록이 모두 사용된 경우 다중 갱신 블록에 존재하는 유효 데이터들을 자주 갱신되는 Hot 데이터로 간주하고 자유 블록에 복사하여 다중 갱신 블록으로 활용한다. 기존에 다중 갱신 블록으로 사용된 블록은 모두 무효 블록이 되므로 삭제 블록 리스트에 추가한다.
2단계 갱신 블록을 사용하기 위해, 본 발명에서 제안하고 있는 EGFTL은 도 10c의 PBMT(Physical Block Mapping Table)를 이용한다. 도 10은 본 발명에서 제안하고 있는 EGFTL의 스페어 영역의 구조의 일례를 나타내는 도면이다. Superblock scheme는 스페어 영역의 용량 한계의 제약으로 인해 Superblock마다 8개의 블록 번호를 PBMT에 저장하여 block index를 통해 그에 해당하는 블록 주소를 사용한다. EGFTL은 PBMT를 세 영역으로 구분하여 2단계 갱신 블록을 사용한다. PBMT의 PBN0~PBN2는 데이터 블록, PBN3~PBN6은 단일 갱신 블록, PBN7은 다중 갱신 블록으로 사용한다. 단일 갱신 블록이 모두 사용되면 데이터 블록을 가리키는 PBN0~PBN2가 무효 블록 수집기에 의해 삭제 그룹 리스트에 저장된다. 다중 갱신 블록이 모두 사용되면 다중 갱신 블록을 가리키는 PBN7이 삭제 그룹 리스트에 저장된다.
2.3 가비지 컬렉션 시기
EGFTL의 가비지 컬렉션 시기는 세 가지 경우로 나눌 수 있다. 첫 번째는 삭제 블록 리스트가 모두 찬 경우, 두 번째는 단일 갱신 블록이 모두 사용된 경우, 세 번째는 가용 공간이 부족한 경우이다.
삭제 블록 리스트가 모두 찬 경우, 리스트에 있는 무효 블록들을 다중 블록 삭제를 사용하여 한 번에 삭제한다. 두 번째와 같이 단일 갱신 블록이 사용률이 낮을 경우 플래시 메모리의 사용 가능한 자유 블록 수를 감소시키므로 단일 갱신 블록의 총 개수를 제한하여 관리한다. 단일 갱신 블록의 수가 제한된 값을 넘게 되면, 무휴 시간(idle time)에 단일 갱신 블록 수가 많은 Superblock을 검색하여, 단일 갱신 블록과 데이터 블록을 병합한다. 병합 후 생성된 무효 블록들을 희생 블록 리스트에 추가하며, 희생 블록 리스트가 완성될 때까지 반복한다. 세 번째는 데이터를 쓰기 위한 용량이 부족한 경우로 먼저 희생 블록 리스트의 블록을 삭제하며, 필요에 따라 단일 갱신 블록과 데이터 블록을 병합하여 희생 블록 리스트를 구성하여 가용 공간을 확보한다.
3. 성능 평가
다음으로 본 발명에서 제안하고 있는 EGFTL의 성능을, 실제 실험을 통하여 주소 변환 성능, 가비지 컬렉션 성능으로 나누어 확인해 보기로 한다. 실험은 리눅스 2.6.17 환경에서 실행하였으며, MTD(Memory Technology Device)에서 제공하는 다음 표 1과 같은 OneNANDTM 에뮬레이터와 앤드류 벤치마크(Andrew benchmark), 포스트마크(Postmark)를 사용하여 평가하였다.
OneNANDTM 에뮬레이터
Flash size 256MB
Page size 2KB
OOB area size 64bytes
Pages number 131072
Block number 2048
Pages/sector 64
1. 주소 변환 성능 평가
Superblock scheme와 EGFTL은 플래시 메모리의 스페어 영역에 주소 변환 테이블을 저장하는 플래시 변환 계층이다. 따라서 스페어 영역을 읽는 오버헤드가 존재하며 이러한 오버헤드를 얼마나 효율적으로 제거했는지에 대한 비교 대상으로 주소 변환 테이블을 램에 유지하는 플래시 변환 계층이 필요하다. 본 발명에서는 혼합 사상을 사용하고 주소 변환 테이블을 램에 유지하는 플래시 전환 계층 중 성능이 뛰어나고 널리 알려진 BAST와 FAST와의 비교를 통해 EGFTL의 성능을 비교한다.
EGFTL의 주소 변환 성능을 평가하기 위해 스토리지 시스템에서 성능 벤치마킹 방식으로 잘 알려진 앤드류 벤치마크를 사용하였으며, 앤드류 벤치마크 완료 시간 및 캐시 적중률에 대해 비교하였다. 캐시 적중률은 주소 요청에 대한 EGFTL과 Superblock scheme에 사용된 LRU 캐시 테이블 목록에 적중된 비율이다. 앤드류 벤치마크는 다음과 같으며, 주소 변환 성능이 읽기/쓰기 성능에 끼치는 영향을 확인하는데 효과적이다.
(1) 약 100개의 디렉터리 생성
(2) 멀티미디어 데이터를 반복 복사
(3) 재귀적으로 디렉터리 상태 확인
(4) 각 파일의 내용을 검색
(5) 컴파일하기
도 11은 본 발명에서 제안하고 있는 EGFTL의 성능과 BAST 및 FAST의 성능을 앤드류 벤치마크를 통해 비교한 실험 결과를 나타내는 도면이다. EGFTL과 Superblock scheme의 캐시 목록 수를 달리하여 앤드류 벤치마크 테스트를 10회 실행한 결과, EGFTL이 BAST와 FAST 기법과 3% 이하의 거의 비슷한 성능을 보이는 것을 확인할 수 있었다. 이는 EGFTL의 해시 테이블을 통해 스페어 영역의 참조 횟수를 감소시켜 램에 주소 변환 테이블을 사용하는 플래시 전환 계층인 BAST, FAST와 유사하게 동작할 수 있음을 보여준다. BAST, FAST와 성능의 차이는 스페어 영역을 읽는 부하와 해시 테이블을 통해 연산되는 과정으로 인해 발생하는 차이지만 효과는 미미함을 확인할 수 있다.
EGFTL은 Superblock scheme보다 5% 빠른 성능을 갖으며, 이는 도 12에 나타난 캐시 적중률 향상의 결과로 볼 수 있다. 도 12는 본 발명에서 제안하고 있는 EGFTL에 의한 캐시 적중률을 Superblock scheme에 의한 캐시 적중률과 비교하여 나타낸 도면이다. 도 12에 도시된 바와 같이, 캐시 적중률은 최대 3% 높지만 캐시 적중률이 높을수록 플래시 메모리를 두 번 읽는 부하를 대폭 감소시킬 수 있으므로 주소 변환 성능 향상이 높음을 확인할 수 있다. 예를 들어, 주소 변환을 100번 실행할 경우 적중률 1%의 차이는 스페어 영역의 읽기 횟수의 차가 2회가 나므로 비동기 읽기 모드를 기준으로 152㎱의 시간이 차이가 나게 된다.
2. 가비지 컬렉션 성능 평가
가비지 컬렉션 성능을 평가하기 위해 포스트마크 테스트를 사용하여 삭제 성능을 비교한다. 포스트마크는 작은 크기의 파일들에 대한 쓰기, 읽기, 변경, 삭제 등의 트랜잭션을 수행한다. 파일의 개수는 100개이며, 수행할 트랜잭션은 각각 300, 500으로 설정하였다. 포스트 마크를 통하여 삭제 횟수와 쓰기 횟수, 삭제 시간, 가비지 컬렉션 시간을 측정하였다. 삭제 횟수는 다중 블록 삭제와 단일 블록 삭제 명령 횟수 합을 의미하며, 삭제 시간은 해시 테이블을 통해 연산되는 과정을 포함하지 않고 다음과 같이 계산된다.
삭제 시간 = (다중 블록 삭제 명령 요청 횟수 × 4㎳) + (단일 블록 삭제 명령 요청 횟수 × 2㎳)
도 13은 본 발명에서 제안하고 있는 EGFTL의 삭제 횟수 및 삭제 시간을 BAST, FAST 및 Superblock scheme의 삭제 횟수 및 삭제 시간과 비교하여 나타내는 도면이다. 도 13에 도시된 바와 같이, EGFTL은 삭제 횟수 단축 및 다중 블록 사용 횟수를 증가시켜 삭제 시간을 BAST와 FAST 보다 최대 94%, Superblock scheme보다 최대 90% 단축시켰다.
도 14는 본 발명에서 제안하고 있는 EGFTL의 쓰기 횟수를 BAST, FAST 및 Superblock scheme의 쓰기 횟수와 비교하여 나타내는 도면이다. 도 14에 도시된 바와 같이, EGFTL은 3단계 주소 변환과 2단계 갱신 블록을 통하여 병합 횟수를 줄이고 핫 데이터를 분리하여 쓰기 횟수를 감소시킬 수 있다. EGFTL이 BAST와 FAST보다 최대 32% 쓰기 횟수를 감소시켰으며, Superblock scheme보다 20% 쓰기 횟수를 감소시켰다.
도 15는 본 발명에서 제안하고 있는 EGFTL의 가비지 컬렉션 시간을 BAST, FAST 및 Superblock scheme의 가비지 컬렉션 시간과 비교하여 나타내는 도면이다. 도 15에 도시된 바와 같이, 가비지 컬렉션 시간에 있어서, EGFTL은 BAST와 FAST보다 43%, Superblock scheme보다 39%의 성능 향상을 이루었다. 삭제 횟수와 삭제 시간, 그리고 쓰기 횟수를 줄여 가비지 컬렉션 소모 시간을 줄일 수 있음을 확인할 수 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
S50: 논리 주소를 요청하는 단계
S100: 요청된 논리 주소에 대한 물리 주소가 LRU 군집형 해시 테이블에 존재하는지 여부를 확인하는 단계
S200: LRU 군집형 해시 테이블에 존재하는 PTE를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계
S300: PMD 군집형 해시 테이블을 검색하여 요청된 논리 주소에 대한 PMD 데이터가 존재하는지 여부를 확인하는 단계
S400: 해당 PMD 데이터를 통해 PTE를 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계
S500: PGD 테이블을 검색하여 PMD와 PTE를 차례로 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계

Claims (5)

  1. 삭제 그룹 플래시 변환 계층(Erase Group Flash Translation Layer; EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법으로서,
    상기 삭제 그룹 플래시 변환 계층(EGFTL)은,
    선형 탐색 시간을 가지며, 지역성을 고려하여 최근에 사용된 주소와 그와 인접된 주소들을 섹터 사상으로 관리하는 LRU 군집형 해시 테이블;
    상기 LRU 군집형 해시 테이블을 모두 사용한 경우에 LRU 기법에 따라 자주 사용되지 않았던 주소를 강등시켜 얻어지는 테이블로서, 상기 강등된 주소와 관련 PMD 값을 섹터 사상하여 관리하는 PMD 군집형 해시 테이블; 및
    상기 PMD 군집형 해시 테이블에서 주소 검색이 실패할 경우 이용되며, 페이지 전역 디렉터리를 저장하는 PGD 테이블을 포함하여 구성되며,
    (1) 논리 주소(Logical Address)가 요청되면, LRU 군집형 해시 테이블(LRU Clustered Hash Table)을 검색하여 요청된 논리 주소에 대한 물리 주소(Physical Address)가 존재하는지를 확인하는 단계;
    (2) 단계 (1)에서의 확인 결과, 요청된 논리 주소에 대한 물리 주소가 존재하는 경우, 플래시 메모리의 스페어 영역(Spare Area)의 참조 없이 상기 LRU 군집형 해시 테이블에 존재하는 PTE(Page Table Entry)를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계;
    (3) 단계 (1)에서의 확인 결과, 요청된 논리 주소에 대한 물리 주소가 존재하지 않는 경우, PMD 군집형 해시 테이블(PMD Clustered Hahs Table)을 검색하여 요청된 논리 주소에 대한 PMD(Page Middle Directory) 데이터가 존재하는지 확인하는 단계;
    (4) 단계 (3)에서의 확인 결과, 요청된 논리 주소에 대한 PMD 데이터가 존재하는 경우, 해당 PMD 데이터를 통해 플래시 메모리의 스페어 영역의 1회 참조에 의해 PTE를 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계; 및
    (5) 단계 (3)에서의 확인 결과, 요청된 논리 주소에 대한 PMD 데이터가 존재하지 않는 경우, PGD(Page Global Directory) 테이블을 검색하여 플래시 메모리의 스페어 영역의 PMD와 PTE를 차례로 읽고 이를 이용하여 얻어진 물리 주소를 요청된 논리 주소에 대한 물리 주소로 변환하는 단계

    를 포함하는 것을 특징으로 하는, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법.
  2. 제1항에 있어서, 상기 단계 (4)에서,
    다음 주소 변환에 대해 빠른 수행이 가능하도록, 해당 PMD 데이터를 통해 읽은 상기 PTE를 상기 LRU 군집형 해시 테이블에 저장하는 것을 특징으로 하는, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법.
  3. 제1항에 있어서, 상기 단계 (5)에서,
    다음 주소 변환에 대해 빠른 수행이 가능하도록, PGD 테이블을 검색하여 읽은 상기 PTE를 상기 LRU 군집형 해시 테이블에 저장하는 것을 특징으로 하는, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 주소 변환 방법.
  4. 삭제 그룹 플래시 변환 계층(Erase Group Flash Translation Layer; EGFTL)을 이용한 퓨전 플래시 메모리의 다중 블록 삭제 방법으로서,

    상기 삭제 그룹 플래시 변환 계층(EGFTL)은,
    선형 탐색 시간을 가지며, 지역성을 고려하여 최근에 사용된 주소와 그와 인접된 주소들을 섹터 사상으로 관리하는 LRU 군집형 해시 테이블;
    상기 LRU 군집형 해시 테이블을 모두 사용한 경우에 LRU 기법에 따라 자주 사용되지 않았던 주소를 강등시켜 얻어지는 테이블로서, 상기 강등된 주소와 관련 PMD 값을 섹터 사상하여 관리하는 PMD 군집형 해시 테이블; 및
    상기 PMD 군집형 해시 테이블에서 주소 검색이 실패할 경우 이용되며, 페이지 전역 디렉터리를 저장하는 PGD 테이블을 포함하여 구성되며,

    다중 블록 삭제는, 다중 블록 삭제를 통해 삭제될 무효 블록들을 관리하기 위한 삭제 그룹 리스트(Erase Group List)와, 무효 블록들을 효율적으로 수집하기 위한 무효 블록 수집기로 구성된 무효 블록 관리자에 의해 수행되며,

    상기 무효 블록 수집기에 의해 상기 삭제 그룹 리스트가 완성되면 가비지 컬렉션이 발생하여 상기 삭제 그룹 리스트의 정보를 통해 다수의 블록을 삭제하는 것을 특징으로 하는, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 다중 블록 삭제 방법.
  5. 제4항에 있어서,
    상기 무효 블록 수집기는, 단일 갱신 블록과 다중 갱신 블록으로 구성된 2단계 갱신 블록을 이용하여 무효 블록들을 수집하되,
    상기 단일 갱신 블록이 모두 사용된 경우, 데이터 블록으로 사용되었던 블록들을 상기 삭제 그룹 리스트에 추가하며,
    상기 다중 갱신 블록이 모두 사용된 경우, 상기 다중 갱신 블록에 존재하는 유효 데이터들을 자주 갱신되는 핫 데이터(Hot Data)로 간주하여 자유 블록에 복사하여 새로운 다중 갱신 블록으로 활용하고, 기존에 다중 갱신 블록으로 사용된 블록은 모두 상기 삭제 그룹 리스트에 추가하는 것을 특징으로 하는, 삭제 그룹 플래시 변환 계층(EGFTL)을 이용한 퓨전 플래시 메모리의 다중 블록 삭제 방법.
KR1020100006705A 2010-01-25 2010-01-25 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법 KR101114398B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100006705A KR101114398B1 (ko) 2010-01-25 2010-01-25 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100006705A KR101114398B1 (ko) 2010-01-25 2010-01-25 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법

Publications (2)

Publication Number Publication Date
KR20110087177A KR20110087177A (ko) 2011-08-02
KR101114398B1 true KR101114398B1 (ko) 2012-02-22

Family

ID=44926056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100006705A KR101114398B1 (ko) 2010-01-25 2010-01-25 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법

Country Status (1)

Country Link
KR (1) KR101114398B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042478A (ko) * 2002-11-14 2004-05-20 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
KR20090098275A (ko) * 2008-03-13 2009-09-17 주식회사 엠트론스토리지테크놀로지 플래시 메모리 시스템
KR20090129161A (ko) * 2008-06-12 2009-12-16 한국전자통신연구원 플래시 변환 계층 구조와 이를 이용한 선 반입 방법 및플래시 변환 구조를 기반으로 한 비동기 쓰기 방법
KR20100042455A (ko) * 2008-10-16 2010-04-26 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042478A (ko) * 2002-11-14 2004-05-20 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
KR20090098275A (ko) * 2008-03-13 2009-09-17 주식회사 엠트론스토리지테크놀로지 플래시 메모리 시스템
KR20090129161A (ko) * 2008-06-12 2009-12-16 한국전자통신연구원 플래시 변환 계층 구조와 이를 이용한 선 반입 방법 및플래시 변환 구조를 기반으로 한 비동기 쓰기 방법
KR20100042455A (ko) * 2008-10-16 2010-04-26 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법

Also Published As

Publication number Publication date
KR20110087177A (ko) 2011-08-02

Similar Documents

Publication Publication Date Title
KR100789406B1 (ko) 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
US8250333B2 (en) Mapping address table maintenance in a memory device
KR101533744B1 (ko) 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
KR20100030602A (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR101430097B1 (ko) 비휘발성 메모리 및 클래스 기반의 업데이트 블록 대체 규칙을 위한 방법
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
KR20120034976A (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR100874013B1 (ko) 플래시 메모리의 데이터 관리 방법 및 장치
KR101114398B1 (ko) 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법
Ryu A flash translation layer for NAND flash-based multimedia storage devices
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법
KR100868674B1 (ko) 플래시메모리 관리방법
KR100999111B1 (ko) 플래시 변환 계층 구조를 갖는 장치와 이를 이용한 선 반입 방법 및 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법
Han Fast erase algorithm using flash translation layer in NAND-type flash memory
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
KR101004102B1 (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: 20141204

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160113

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee