KR100894845B1 - 플래시 변환 계층 모듈을 이용한 주소 변환 방법 - Google Patents

플래시 변환 계층 모듈을 이용한 주소 변환 방법 Download PDF

Info

Publication number
KR100894845B1
KR100894845B1 KR1020080078827A KR20080078827A KR100894845B1 KR 100894845 B1 KR100894845 B1 KR 100894845B1 KR 1020080078827 A KR1020080078827 A KR 1020080078827A KR 20080078827 A KR20080078827 A KR 20080078827A KR 100894845 B1 KR100894845 B1 KR 100894845B1
Authority
KR
South Korea
Prior art keywords
hash table
grained
lba
clustered hash
fine
Prior art date
Application number
KR1020080078827A
Other languages
English (en)
Other versions
KR20090040207A (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 인하대학교 산학협력단
Publication of KR20090040207A publication Critical patent/KR20090040207A/ko
Application granted granted Critical
Publication of KR100894845B1 publication Critical patent/KR100894845B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은, 플래시 변환 계층 모듈을 이용한 주소 변환 방법에 관한 것으로서, (a) Short Fine-Grained 군집형 해시 테이블을 이용하여 요구된 데이터에 대한 특정 LBA(Logical Block Address)를 검색하는 단계; (b) 상기 Short Fine-Grained 군집형 해시 테이블에 특정 LBA에 대한 엔트리가 존재하는지 여부를 판단하여, 존재하는 경우 LBA를 PBA(Physical Block Address)로 변환하는 단계; (c) 상기 (b) 단계의 판단 결과, 존재하지 않는 경우 Long Fine-Grained 군집형 해시 테이블에 특정 LBA에 대한 엔트리가 존재하는지 여부를 판단하여, 존재하는 경우 LBA를 PBA로 변환하는 단계; 및 (d) 상기 (c) 단계의 판단 결과, 존재하지 않는 경우 Coarse-Grained 군집형 해시 테이블을 이용하여 LBA를 PBA로 변환하는 단계;를 포함한다.
본 발명에 따른 주소 변환 방법은, 대용량의 낸드 플래시 메모리에서 사용하기에 적합하며 주소 변환을 위해 메인 메모리의 사용량을 현저히 감소시키는 효과가 있다.
플래시 변환 계층, 주소 변환, LBA, PBA, 해시 테이블, NUR

Description

플래시 변환 계층 모듈을 이용한 주소 변환 방법{Method for Address Translation using the Flash Translation Layer Module}
본 발명은 플래시 변환 계층 모듈을 이용한 주소 변환 방법에 관한 것으로서, 더욱 상세하게는, 멀티 레벨 Fine-Grained 군집형 해시 테이블을 사용하여 메모리 사용량을 감소시키면서도 주소 검색 속도를 향상시키고, NUR(Not Used Recently) 기법을 사용하여 주소 정보 교체 시에 탁월한 성능을 나타낼 수 있는 플래시 변환 계층 모듈을 이용한 주소 변환 방법에 관한 것이다.
낸드 플래시 메모리(NAND Flash Memory)는 임베디드 시스템에서 가장 선호되는 저장 장치로 각광받고 있다.
낸드 플래시 메모리는 하드 디스크와 달리 제자리 갱신하기(In-Place Update)가 불가능하고, 쓰기 전 삭제 연산(Erase Before Write)을 먼저 수행해야 하며, 각 블록별로 쓰기 횟수(Wear Level Count)에 한계가 있다는 특성이 있다.
이러한 특성으로 인하여, 일반 운영 체제의 파일 시스템과 같이 자기 디스크의 속성에 알맞게 설계되어 있을 경우 낸드 플래시 메모리의 특성에 적합하게 호환 되려면 또 다른 연산을 할 수 있는 플래시 변환 계층(Flash Translation Layer, 이하 FTL이라 한다.)이라는 미들웨어(Middleware)가 필요하다. 일반적으로 FTL은 주어진 LBA(Logical Block Address)를 PBA(Physical Block Address)로 변환하여 데이터의 물리적인 플래시 메모리 주소를 제공한다.
낸드 플래시 메모리의 용량이 급격히 증가하는 추세에 따라서 FTL의 성능이 플래시 메모리의 데이터 처리 속도 또는 수명에 큰 영향을 미치고 있는 실정이다.
종래 FTL로는 히타치 선행 연구소의 초기 FTL, M-Systems의 NFTL(NAND FTL) 및 대만 국립 대학교에서 제안한 AFTL(Adaptive FTL) 등이 있다.
낸드 플래시 메모리는 쓰기 전 삭제 연산을 수행하여야 하는데, 삭제 연산은 쓰기 단위인 페이지(512B 또는 2KB) 단위보다 큰 블록(16KB 또는 64KB) 단위로 수행되므로 수행 시간이 길고 기존의 유효한 데이터가 블록에 존재하는 경우 특정 블록을 삭제할 수 없는 상황이 발생하여 다른 블록을 낭비하는 상황이 발생한다. 그러므로 제자리 쓰기를 위해서 동일한 영역에 쓰는 방법은 상당한 오버헤드를 유발한다. 또한, 각 블록은 쓰기 횟수의 한계가 있으므로 쓰기 횟수의 평준화가 필요하다.
이러한 단점을 극복하기 위해, 히타치 선행 연구소는 도 1에 도시된 바와 같은 주소 변환 테이블을 메인 메모리 또는 SRAM에 적재하고 다른 자리 갱신(Out-Place Update) 시에 물리적 주소만을 변경하는 기법을 제시하였다. 이러한 기법은 페이지 단위의 최소 단위 주소 변환 기법을 사용하며, 주소 변환 테이블을 선형 테이블로 설계한 특징이 있다.
그러나, 이러한 히타치 선행 연구소에서 설계한 FTL은 512 바이트(Byte) 페이지 단위의 주소들로 구성되는 하드웨어 주소 정보를 포함하고 있으므로 각 페이지별로 엔트리가 존재하여 주소 변환 테이블의 크기가 매우 크다는 문제점이 있었다.
그리고, 상기 NFTL은 대용량 장치의 낸드 플래시 메모리 전용 FTL로서, 주소 변환 테이블의 크기를 감소시키기 위해 페이지의 집합인 16 킬로바이트(KB)의 블록 단위로 주소를 변환하는 기법을 사용한다.
도 2에 도시된 바와 같이, NFTL은 LBA 값을 블록당 페이지 개수로 나누어 몫은 VBA(Virtual Block Address)로 사용하고 나머지 값은 오프셋(Offset)으로 사용한다. 그리고 주소 변환 테이블로 접근 시 VBA의 값을 통해 주(Primary) 블록과 교체(Replacement) 블록의 주소를 가지고 있는 엔트리에 접근한다. 그 후에 주소 변환 테이블에 따라 주 블록에 접근 시 오프셋으로 페이지 단위로 접근을 시도한다.
만약 주 블록의 데이터가 유효하지 않은 경우에는 교체 블록의 주소로 다시 접근하여 각 페이지를 순차적으로 검색하는 기법을 사용한다. 이를 블록 단위 주소 변환 기법이라고 한다.
이에 따라, 상기 NFTL에서는 주소 변환 테이블의 크기가 히타치 선행 연구소에서 설계한 FTL보다 작아지지만, 블록 단위의 주소 변환 테이블 검색과 함께 블록 내의 페이지 단위의 검색을 하므로 주소 변환 속도가 느려지는 문제점이 있었다.
그리고, 상기 AFTL은 도 3에 도시된 바와 같이, Coarse-Grained 해시 테이블(Hash Table) 및 Fine-Grained 해시 테이블의 두 개의 주소 변환 테이블로 이루 어진다. Coarse-Grained 해시 테이블에서는 상기 NFTL과 같이 블록 단위의 주소 변환 기법을 사용하고, Fine-Grained 해시 테이블에서는 상기 히타치 선행 연구소에서 설계한 FTL과 같은 페이지 단위의 주소 변환 기법을 사용한다.
페이지 단위의 주소 변환 기법을 사용하는 경우는 교체 블록의 데이터가 유효한 상태일 경우 이 데이터들이 앞으로 자주 쓰일 수 있다고 가정하고 Fine-Grained 해시 테이블에 저장하여 페이지 단위로 주소를 변환한다. 주 블록일 경우는 오프셋을 이용하여 바로 검색하기 때문에 Coarse-Grained 해시 테이블을 사용한다. Fine-Grained 해시 테이블의 크기 제한이 있으므로 LRU(Least Recently Used) 기법을 적용하여 일정 기간 동안 사용하지 않는 엔트리들을 Coarse-Grained 해시 테이블로 이동시킨다.
상기 AFTL은 교체 블록에 있는 유효 데이터들을 페이지 단위 주소 변환 기법을 사용하고 참조되는 페이지들로 인해 블록 수거 작업(Garbage Collection) 시간을 임의적으로 지연시켜 오버헤드를 감소시킨다.
그러나, 상기 AFTL의 주소 변환 속도에서 상기 NFTL과의 비교 실험 결과 성능이 비교 전 빠른 Fine-Grained 해시 테이블의 슬롯의 개수에 비해 성능의 우수성을 나타내지 않았다. 이와 더불어, 기존의 해시 테이블 기법을 사용하므로 Coarse-Grained 해시 테이블에서 각 해시 버켓은 4BYTE의 포인터를 두 개를 사용하게 되어 60 % 정도의 메모리 오버헤드가 존재하고, Fine-Grained 해시 테이블에서 각 해시 버켓은 4BYTE의 포인터를 두 개를 사용하게 되어 75 % 정도의 메모리 오버헤드가 존재하여, 대용량의 플래시 메모리에서 사용하기 부적합하다. 또한, LRU 기법은 그 구현시 오버헤드가 존재하기 때문에 FTL의 성능에 악영향을 미칠 수 있다는 문제점이 있었다.
본 발명이 해결하고자 하는 과제는, 상기 문제점을 해결하기 위한 것으로서, 주소 변환을 위한 메모리 사용량을 감소시키며 대용량의 플래시 메모리에서 사용하기에 적합한 플래시 변환 계층 모듈을 이용한 주소 변환 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 상기 문제점을 해결하기 위한 것으로서, 기존의 해시 테이블 기법을 사용하는 경우 주소 증가 시 충돌이 발생하는 버켓들이 많아지는 문제점을 개선한 플래시 변환 계층 모듈을 이용한 주소 변환 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는, 상기 문제점을 해결하기 위한 것으로서, Coarse-Grained 해시 테이블과 Fine-Grained 군집형 해시 테이블 간의 주소 정보 교체 시에 탁월한 성능을 발휘하는 플래시 변환 계층 모듈을 이용한 주소 변환 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는, 상기 문제점을 해결하기 위한 것으로서, 비적중률(Miss Rate)을 감소시켜 Fine-Grained 군집형 해시 테이블의 적중률을 향상시킨 플래시 변환 계층 모듈을 이용한 주소 변환 방법을 제공하는 것이다.
본 발명은 플래시 변환 계층(Flash Translation Layer) 모듈을 이용한 주소 변환 방법에 관한 것으로서, (a) Short Fine-Grained 군집형 해시 테이블이 요구된 데이터의 특정 LBA(Logical Block Address)를 검색하는 단계; (b) 상기 Short Fine-Grained 군집형 해시 테이블에 특정 LBA에 대한 엔트리가 존재하는지 여부를 판단하여, 존재하는 경우 LBA를 PBA(Physical Block Address)로 변환하는 단계; (c) 상기 (b) 단계의 판단 결과, 존재하지 않는 경우 Long Fine-Grained 군집형 해시 테이블에 특정 LBA에 대한 엔트리가 존재하는지 여부를 판단하여, 존재하는 경우 LBA를 PBA로 변환하는 단계; 및 (d) 상기 (c) 단계의 판단 결과, 존재하지 않는 경우 Coarse-Grained 군집형 해시 테이블에서 엔트리를 찾아 LBA를 PBA로 변환하는 단계; 를 포함한다.
삭제
바람직하게, 상기 (d) 단계 이후에, (e) 상기 Coarse-Grained 군집형 해시 테이블에 특정 LBA가 접근되어 히트 카운트(Hit Count)가 미리 설정된 제 1 임계 횟수를 초과하는 경우, 상기 Coarse-Grained 군집형 해시 테이블의 LBA 엔트리를 상기 Long Fine-Grained 군집형 해시 테이블의 엔트리로 추가시키는 단계; 를 더 포함하는 것을 특징으로 한다.
또한 바람직하게, 상기 (d) 단계 이후에, (f) 상기 Long Fine-Grained 군집형 해시 테이블에 특정 LBA가 접근되어 히트 카운트가 미리 설정된 제 2 임계 횟수 를 초과하는 경우, 상기 Long Fine-Grained 군집형 해시 테이블 엔트리를 상기 Short Fine-Grained 군집형 해시 테이블 엔트리로 승급시키는 단계; 를 더 포함하는 것을 특징으로 한다.
또한 바람직하게, 상기 (d) 단계 이후에, (g) 상기 Short Fine-Grained 군집형 해시 테이블 또는 상기 Long Fine-Grained 군집형 해시 테이블에 특정 LBA가 일정 시간 동안 접근되지 않는 경우, 상기 Short Fine-Grained 군집형 해시 테이블 또는 상기 Long Fine-Grained 군집형 해시 테이블을 상기 Coarse-Grained 군집형 해시 테이블로 강등시키는 단계; 를 더 포함하는 것을 특징으로 한다.
여기서, 상기 (g) 단계는, (g-1) 특정 LBA에 대한 NUR(Not Used Recently)의 참조 비트 또는 수정 비트를 판단하는 단계; 를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 대용량의 플래시 메모리에서 사용하기에 적합하며, 주소 변환을 위한 메모리 사용량을 현저히 감소시키는 효과가 있다.
본 발명에 따르면, Coarse-Grained 해시 테이블과 Fine-Grained 군집형 해시 테이블 간의 주소 정보 교체 시에 탁월한 성능을 나타내는 효과가 있다.
본 발명에 따르면, 비적중률을 감소시켜 Fine-Grained 군집형 해시 테이블의 주소 변환 성능을 현저히 향상시키는 효과도 있다.
본 발명의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 발명의 기술적 요지와 직접적 관련이 없는 구성에 대하여는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음을 유의하여야 할 것이다.
또한, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다.
본 발명에서는 군집형 해시 테이블 기법을 사용함으로써, 운영 체제에서 메모리 주소 변환을 위해 사용하는 해시 테이블이 메모리를 과도하게 사용하는 문제점 및 주소 증가 시 충돌이 발생하는 버켓들의 증가로 인해 검색 성능에 악영향이 발생하는 문제점 등을 방지한다.
또한 LRU 기법 중 오버헤드를 최소화하면서도 우수한 성능을 나타내는 NUR(Not Used Recently) 기법을 구현함으로써 Coarse-Grained 해시 테이블과 Fine-Grained 군집형 해시 테이블 간의 주소 정보 교체 시에 탁월한 성능을 나타내도록 하였다.
그리고, Fine-Grained 군집형 해시 테이블의 주소 변환 성능을 향상시키기 위하여 비적중률을 감소시키는 멀티 레벨 Fine-Grained 군집형 해시 테이블을 설계 및 구현하였다.
이하, 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈의 구성에 관해 도 4를 참조하여 설명한다.
도 4는 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈의 전체 구성도이다.
상기 도 4에 도시된 바와 같이, 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈은 Short Fine-Grained 군집형 해시 테이블(11), Long Fine-Grained 군집형 해시 테이블(12) 및 Coarse-Grained 군집형 해시 테이블(13)을 포함한다.
상기 Short Fine-Grained 군집형 해시 테이블(11)은 요구된 데이터에 대한 특정한 LBA를 검색하여 LBA를 PBA로 변환한다.
다음으로, 상기 Long Fine-Grained 군집형 해시 테이블(12)은 상기 Short Fine-Grained 군집형 해시 테이블(11)에 특정한 LBA에 대한 엔트리가 존재하지 않는 경우, 상기 특정한 LBA를 검색하여 LBA를 PBA로 변환한다.
상술한 바와 같이, 본 발명의 바람직한 실시 예에 따른 Fine-Grained 군집형 해시 테이블은 상기 Short Fine-Grained 군집형 해시 테이블(11) 및 Long Fine-Grained 군집형 해시 테이블(12)에 의해 멀티 레벨로 구현된다.
이러한 멀티 레벨 구현에 의하여, 미스 페널티(Miss Penalty)를 최소화시키고 상기 Coarse-Grained 군집형 해시 테이블(13)에 대한 접근 빈도를 감소시킬 수 있다. 이에 의해, 주소 변환 과정이 대부분 두 개의 Fine-Grained 군집형 해시 테이블에서 수행되므로 주소 변환에 소요되는 시간이 현저히 단축된다.
마지막으로, 상기 Coarse-Grained 군집형 해시 테이블(13)은 상기 Long Fine-Grained 군집형 해시 테이블(12)에 특정 LBA에 대한 엔트리가 존재하지 않는 경우, 상기 특정한 LBA를 검색하여 PBA를 획득한다.
상기 Coarse-Grained 군집형 해시 테이블(13)은 LBA를 VBA(Virtual Block Address)로 변환한다. 변환한 VBA를 사용하여 해시 함수(Hash Function)를 통해 PPBA(Primary PBA) 및 RPBA(Replacement PBA)를 검색하여 주소를 변환한다.
본 발명의 바람직한 실시 예에 따른 상기 Coarse-Grained 군집형 해시 테이블(13)은 주소 변환을 위하여 군집형 해시 테이블을 사용한다.
종래의 해시 테이블은, 도 5에 도시된 바와 같이, 주소 변환 속도가 항상 고정되어 있어서 유연성이 부족하다는 단점이 있었으며, LRU 기법을 사용하기 위하여 넥스트 프리비어스(Next Previous)의 더블 포인터가 버켓 별로 추가적으로 요구되어 메모리 사용량에 있어서 Coarse-Grained 해시 테이블에서 60 %, Fine-Grained 해시 테이블에서 75 % 정도의 오버헤드가 발생하는 문제점이 있었다.
반면에, 본 발명의 바람직한 실시 예에 따른 군집형 해시 테이블은, 도 6에 도시된 바와 같이, 버켓 단위로 구성되어 있어서 메모리의 사용량이 종래의 해시 테이블보다 감소된다. 또한, 연속적 또는 동시적으로 사용하는 데이터들을 군집형 해시 테이블을 구성하는 버켓의 서브블록(Subblock)들에 적재하여, 연속적인 주소 접근 시 멀티 레벨의 상기 Short Fine-Grained 군집형 해시 테이블(11) 및 Long Fine-Grained 군집형 해시 테이블(12)을 통해 적중률을 향상시킬 수 있다.
본 발명에서, 버켓은 서브블록들의 집합을 의미하며 하나의 버켓을 구성하는 서브블록들의 개수를 서브블록 팩터(Factor)라고 칭하기로 한다. 또한, 상기 도 5 및 도 6에서, offset 및 Boff는 버켓 내부의 서브블록의 순서값을 의미한다.
한편, 본 발명의 바람직한 실시 예에 따른 Fine-Grained 군집형 해시 테이블은 상술한 바와 같이 두 단계로 구성되므로, Fine-Grained 군집형 해시 테이블에서 Coarse-Grained 군집형 해시 테이블(13)로 이동(이하, Fine-to-Coarse라 한다.)하거나, 그 반대(이하, Coarse-to-Fine라 한다.)의 이동이 가능하도록 설정함이 바람직하다.
도 7에 Fine-Grained 군집형 해시 테이블 및 Coarse-Grained 군집형 해시 테이블(13) 서로 간의 이동에 관한 개념도를 나타내었다.
예컨대, Coarse-to-Fine 이동의 경우, 특정한 LBA가 자주 접근되어 히트 카운트(Hit Count)가 미리 설정된 임계 횟수를 초과하는 경우 상기 Long Fine-Grained 군집형 해시 테이블(12)의 엔트리로 추가됨과 동시에 히트 카운트(Hit Count)는 초기화되도록 설정할 수 있다.
상술한 승급 방식은 Long Fine-Grained 군집형 해시 테이블(12)에 대해서도 동일하게 적용될 수 있다. 또한, 일정 시간 동안 접근이 되지 않는 경우 후술하는 NUR 기법 등을 사용하여 Coarse-Grained 군집형 해시 테이블(13)로 강등되도록 설정하는 것이 바람직하다.
이하, 상기 Fine-to-Coarse 이동의 경우에 적용될 수 있는 NUR(Not Used Recently) 기법에 관하여 설명한다.
상기 NUR은 유사 LRU 중의 하나로서, LRU 기법에 상당하는 성능을 발휘하면서도 오버헤드의 발생이 미미하다. NUR은 LRU와 달리 참조 비트, 수정 비트로 불리 는 비트 벡터를 사용하며, 시스템에서 정해진 주기마다 비트에 따라 최근에 쓰여지지 않은 슬롯들을 분별할 수 있는 기법이다.
상술한 두 개의 비트를 통해 참조된 상황 및 수정이 이루어졌는지 여부를 판단하여 다음의 [표 1]과 같이 Fine-to-Coarse 이동에 적용할 수 있다.
참조 비트 수정 비트 이동 여부
0 0 Coarse로 이동
0 1 유지
1 0 유지
1 1 유지
상기 [표 1]에 나타낸 바와 같이, 특정한 주소에 대한 NUR의 참조 비트 및 수정 비트가 모두 0인 경우에는 그 주소는 사용되지 않는 것으로 판단하여 Fine-to-Coarse 이동을 수행하고 Fine-Grained 군집형 해시 테이블의 슬롯을 삭제한다.
이하, 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈을 이용한 주소 변환 방법에 관해 도 8을 참조하여 설명한다.
도 8은 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈을 이용한 주소 변환 방법에 관한 전체 흐름도이다.
상기 도 8에 도시된 바와 같이, 먼저, 상기 Short Fine-Grained 군집형 해시 테이블(11)은 요구된 데이터에 대한 특정한 LBA를 검색한다(S1).
다음으로, 상기 S1 단계의 검색 결과, 상기 Short Fine-Grained 군집형 해시 테이블(11)에 특정한 LBA가 존재하는지 여부를 판단한다(S3).
마지막으로, 상기 S3 단계의 판단 결과, 특정한 LBA가 존재하는 경우 LBA를 PBA로 변환한 후, 절차를 종료한다(S5).
상기 S3 단계의 판단 결과, 특정한 LBA가 존재하지 않는 경우 상기 Long Fine-Grained 군집형 해시 테이블(12)을 이용하여 요청된 데이터에 대한 특정 LBA를 검색한다(S7).
다음으로, 상기 S7 단계의 검색 결과, 상기 Long Fine-Grained 군집형 해시 테이블(12)에 특정한 LBA가 존재하는지 여부를 판단한다(S9).
마지막으로, 상기 S9 단계의 판단 결과, 특정한 LBA가 존재하는 경우 LBA를 PBA로 변환한 후, 절차를 종료한다(S11).
상기 S9 단계의 판단 결과, 특정한 LBA가 존재하지 않는 경우 상기 Coarse-Grained 군집형 해시 테이블(13)을 이용하여 요청된 데이터에 대한 특정한 LBA를 검색하여 VBA로 변환하고 PPBA 및 RPBA를 검색하여 주소를 변환한다(S13).
이하, 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈에 대한 성능 평가 실험에 관하여 설명한다.
성능 평가는, 상기 Short Fine-Grained 군집형 해시 테이블(11) 및 Long Fine-Grained 군집형 해시 테이블(12)의 크기 비율을 1:4로 설정하고, 군집형 해시 테이블의 서브블록 팩터를 8로 설정하여 수행되었다.
다음의 [표 2]는 저장 장치에 대한 성능 벤치마킹 방식 중의 하나인 앤드류 벤치마크를 이용하여, 동일한 환경에서 각 플래시 변환 계층이 소모하는 시스템 타임(System Time)을 10회씩 측정하고, 이를 평균한 값을 나타낸 것이다.
NFTL AFTL CFTL
Real Time 1 m 9.468 s 1 m 14.296 s 1 m 10.265 s
User Time 34.662 s 34.946 s 35.342 s
System Time 14.405 s 13.698 s 12.677 s
System Time (Excepted Compilation) 6.020 s 5.852 s 4.832 s
상기 [표 2]에서, 본 발명의 바람직한 실시 예에 따른 군집형 플래시 변환 계층(CFTL) 모듈이 앤드류 벤치마크 테스트 결과, NFTL 및 AFTL에 비하여 우수한 성능을 나타내고 있음을 알 수 있다.
다음의 [표 3]은 MFS(Maximum Fine-Grained Slot)에 따른 CFTL과 AFTL의 메모리 사용량을 비교한 것이다.
MFS(F1+F2) NFTL AFTL CFTL
2,500+10,000 192.0KB 244.1 KB 61.0 KB
5,000+20,000 192.0KB 488.3 KB 122.1 KB
7,500+30,000 192.0KB 732.4 KB 183.1 KB
10,000+40,000 192.0KB 976.6 KB 244.1 KB
12,500+60,000 192.0KB 1220.7 KB 305.2 KB
15,000+70,000 192.0KB 1464.8 KB 366.2 KB
상기 [표 3]에서, F1 및 F2는 각각 상기 Short Fine-Grained 군집형 해시 테이블(11) 및 Long Fine-Grained 군집형 해시 테이블(12)을 의미한다.
상기 [표 3]에서, 군집형 플래시 변환 계층(CFTL) 모듈에 적용된 군집형 해시 테이블이 메모리의 사용량을 약 75 % 이상 감소시켰음을 알 수 있다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시 예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주하여야 할 것이다.
도 1 은 종래의 히타치 선행 연구소에서 설계한 FTL의 주소 변환 테이블을 나타내는 개략도.
도 2 는 종래의 NFTL의 주소 변환 방법을 나타내는 개략도.
도 3 은 종래의 AFTL의 주소 변환 방법을 나타내는 개략도.
도 4 는 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈의 전체 구성도.
도 5 는 종래의 해시 테이블을 나타내는 개략도.
도 6 은 본 발명의 바람직한 실시 예에 따른 군집형 해시 테이블을 나타내는 개략도.
도 7 은 본 발명의 바람직한 실시 예에 따른 Fine-Grained 군집형 해시 테이블 및 Coarse-Grained 군집형 해시 테이블 서로 간의 이동 원리를 나타내는 개념도.
도 8 은 본 발명의 바람직한 실시 예에 따른 플래시 변환 계층 모듈을 이용한 주소 변환 방법에 관한 전체 흐름도.

Claims (6)

  1. 플래시 변환 계층(Flash Translation Layer) 모듈을 이용한 주소 변환 방법에 있어서,
    (a) Short Fine-Grained 군집형 해시 테이블(11)을 이용하여 요구된 데이터에 대한 특정 LBA(Logical Block Address)를 검색하는 단계;
    (b) 상기 Short Fine-Grained 군집형 해시 테이블(11)에 상기 특정 LBA에 대한 엔트리가 존재하는지 여부를 판단하여, 존재하는 경우 상기 특정 LBA를 PBA(Physical Block Address)로 변환하는 단계;
    (c) 상기 (b) 단계의 판단 결과, 존재하지 않는 경우 Long Fine-Grained 군집형 해시 테이블(12)에 상기 특정 LBA에 대한 엔트리가 존재하는지 여부를 판단하여, 존재하는 경우 상기 특정 LBA를 PBA로 변환하는 단계; 및
    (d) 상기 (c) 단계의 판단 결과, 존재하지 않는 경우 Coarse-Grained 군집형 해시 테이블(13)을 이용하여 상기 특정 LBA를 PBA로 변환하는 단계;를 포함하는 플래시 변환 계층 모듈을 이용한 주소 변환 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 (d) 단계 이후에,
    (e) 상기 Coarse-Grained 군집형 해시 테이블(13)에 임의의 LBA가 접근되어 히트 카운트(Hit Count)가 미리 설정된 제 1 임계 횟수를 초과하는 경우, 상기 Coarse-Grained 군집형 해시 테이블(13) 엔트리를 상기 Long Fine-Grained 군집형 해시 테이블(12) 엔트리로 추가시키는 단계;를 더 포함하는 것을 특징으로 하는 플래시 변환 계층 모듈을 이용한 주소 변환 방법.
  4. 제 1 항에 있어서,
    상기 (d) 단계 이후에,
    (f) 상기 Long Fine-Grained 군집형 해시 테이블(12)에 임의의 LBA가 접근되어 히트 카운트가 미리 설정된 제 2 임계 횟수를 초과하는 경우, 상기 Long Fine-Grained 군집형 해시 테이블(12) 엔트리를 상기 Short Fine-Grained 군집형 해시 테이블(11) 엔트리로 승급시키는 단계;를 더 포함하는 것을 특징으로 하는 플래시 변환 계층 모듈을 이용한 주소 변환 방법.
  5. 제 1 항에 있어서,
    상기 (d) 단계 이후에,
    (g) 상기 Short Fine-Grained 군집형 해시 테이블(11) 또는 상기 Long Fine-Grained 군집형 해시 테이블(12)에 특정한 LBA가 일정 시간 동안 접근되지 않는 경우, 상기 Short Fine-Grained 군집형 해시 테이블(11) 엔트리 또는 상기 Long Fine-Grained 군집형 해시 테이블(12) 엔트리를 상기 Coarse-Grained 군집형 해시 테이블(13)로 강등시키는 단계;를 더 포함하는 것을 특징으로 하는 플래시 변환 계층 모듈을 이용한 주소 변환 방법.
  6. 제 5 항에 있어서,
    상기 (g) 단계는,
    (g-1) 상기 특정한 LBA에 대한 NUR(Not Used Recently)의 참조 비트 또는 수정 비트를 판단하는 단계;를 포함하는 것을 특징으로 하는 플래시 변환 계층 모듈을 이용한 주소 변환 방법.
KR1020080078827A 2007-10-19 2008-08-12 플래시 변환 계층 모듈을 이용한 주소 변환 방법 KR100894845B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070105639 2007-10-19
KR20070105639 2007-10-19

Publications (2)

Publication Number Publication Date
KR20090040207A KR20090040207A (ko) 2009-04-23
KR100894845B1 true KR100894845B1 (ko) 2009-04-24

Family

ID=40763774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080078827A KR100894845B1 (ko) 2007-10-19 2008-08-12 플래시 변환 계층 모듈을 이용한 주소 변환 방법

Country Status (1)

Country Link
KR (1) KR100894845B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301133A (zh) * 2017-07-20 2017-10-27 郑州云海信息技术有限公司 一种构建丢失的FTL table的方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678868B1 (ko) 2010-02-11 2016-11-23 삼성전자주식회사 플래시 주소 변환 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"An Adaptive Two-Level management for the Flash Translation Layer in Embedded Systems", In: Proceedings of the 2006 IEEE/ACM International Conference on Computer Aided Design, Nov. 2006, pp.601-606

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301133A (zh) * 2017-07-20 2017-10-27 郑州云海信息技术有限公司 一种构建丢失的FTL table的方法及装置
CN107301133B (zh) * 2017-07-20 2021-01-12 苏州浪潮智能科技有限公司 一种构建丢失的FTL table的方法及装置

Also Published As

Publication number Publication date
KR20090040207A (ko) 2009-04-23

Similar Documents

Publication Publication Date Title
US8024545B2 (en) Efficient prefetching and asynchronous writing for flash memory
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
KR101533744B1 (ko) 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법
US9898200B2 (en) Memory device having a translation layer with multiple associative sectors
US20170235681A1 (en) Memory system and control method of the same
US20190114272A1 (en) Methods and apparatus for variable size logical page management based on hot and cold data
CN109582593B (zh) 一种基于计算的ftl地址映射读、写方法
CN110413537B (zh) 一种面向混合固态硬盘的闪存转换层及转换方法
CN114341819B (zh) 用于压缩的高速缓存的弹性字典共享
US9892034B2 (en) Semiconductor device and operating method thereof
US10108555B2 (en) Memory system and memory management method thereof
Ahn et al. μ*-Tree: An ordered index structure for NAND flash memory with adaptive page layout scheme
Yao et al. HDFTL: An on-demand flash translation layer algorithm for hybrid solid state drives
CN102521144A (zh) 一种闪存转换层系统
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
KR100894845B1 (ko) 플래시 변환 계층 모듈을 이용한 주소 변환 방법
Ni et al. A hash-based space-efficient page-level FTL for large-capacity SSDs
Park et al. A dynamic switching flash translation layer based on page-level mapping
Ryu SAT: switchable address translation for flash memory storages
Lin et al. Improving flash translation layer performance by supporting large superblocks
KR20120034976A (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
Kim et al. h-Hash: a hash index structure for flash-based solid state drives
Lin et al. Flash-aware linux swap system for portable consumer electronics
Yeo et al. Hierarchical request-size-aware flash translation layer based on page-level mapping
KR100999111B1 (ko) 플래시 변환 계층 구조를 갖는 장치와 이를 이용한 선 반입 방법 및 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
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: 20120309

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130415

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 6

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20160118

Year of fee payment: 7

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20170116

Year of fee payment: 8

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20170417

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180416

Year of fee payment: 10