Home > 고객센터 > 복구관련 자료실

복구관련 자료실

게시글 검색
FTL(Flash Translation Layer)의 이해
관리자 조회수:1322
2017-11-17 14:46:14

플래시 메모리는 비 휘발성(non-volatility), 빠른 접근 속도, 저전력 소비, 그리고 간편한 휴대성 등의 장점을 가지므로 최근에 많은 임베디드 시스템에서 많이 사용되고 있다.

그런데 플래시 메모리는 그 하드웨어 특성상 플래시 변환 계층(FTL: flash translation layer)이라는 시스템 소프트웨어를 필요로한한다.

FTL의 주요 기능은 파일 시스템으로부터 내려오는 논리 주소를 플래시 메모리의 물리 주소로 변환하는 일이다.

기존의 메모리와는 달리 반도체 기반의 플래시 메모리는 몇가지 성질을 가지고 있습다.

 

1.  쓰기 전 지우기 : 기존의 비 휘발성 메모리인 하드 디스크는 데이타 갱신의 경우에도 바로 데이타 가 갱신될 수 있지만 플래시 메모리는 데이타 갱신 연산을 수행하기 위해서는 반드시 그 데이타를 포함 한 영역이 지워져 있어야 하는 성질을 가진다.


2. 배드 섹터의 존재 : 플래시 메모리는 출하할 당시 또는 데이타 쓰기 연산을 하는 중에 해당 섹터가 배드가 될 수 있는 성질을 가진다.

 

3. 마모도 평준화(wear-leveling) 요구 : 플래시 메모리는 특정 섹터에 대한 쓰기 연산이 일정 횟수를 넘으면 그 섹터의 데이타 정보가 손상될 수 있는 특징을 가진다.

 

플래시 메모리 기반의 시스템은 이와 같은 플래시 메모리의 본질적인 하드웨어적인 한계점을 극복하기 위하여 시스템 소프트웨어가 필요한데 이 소프트웨어를 플래시 사상 단계(FTL: Flash Translation Layer)라고 한다.

특히 플래시 메모리의 첫 번째 특성인 "쓰기 전 지우기" 성질은 일반 플래시 메모리의 지우기 단위와 쓰기 단위가 다르기 때문에 플래기 기반 임베디드 시스템의 성능 저하의 주요한 원인이 되고있다.

기존의  FTL 알고리즘에서 이러한 문제를 극복하기 위해서 주로 사용한 방법이 논리 물리 사상 방법이다.

논리 물리 사상 테이블을 이용하여 해당 물리 주소가 이미 데이터가 쓰여져 있으면 비어있는 플래시 메모리의 공간에 먼저 쓴 후 논리 물리 사상 테이블을 변경하는 방법이다.

그러나 이 FTL 알고리즘을 실제 임베디드 시스템에 적용 할때 문제점이 사상 정보를 위한 메모리용량 이다.

사상 정보는 성능을 위하여 값 비싼 RAM에 저장되는데 사상 정보의 양이 많아지면 RAM 사용량 또한 증가 되고 전체 비용 면에서 FTL 알고리즘이 실제 임베디드 시스템에서 적용되기 힘들게 된다.

 섹터(sector)는 읽고, 쓰는 연산의 기본단위이고 블록(block)은 삭제 연산의 기본 단위라고 가정한다. 이때블록의 크기는 섹터 크기의 배수이다.

 

섹터 사상 : 섹터 사상 기법은 읽기 쓰기 단위인 섹터 단위로 논리 물리 사상 테이블이 존재하는 방법이다. 즉, 파일 시스템 관점에서 m개의 논리 섹터가 존재한다고 하면 논리-물리 사상 테이블의 행의 크기가 m이 된다.

 

블록 사상 : 블록 사상 기법은 섹터 사상 기법이 사상 테이블의 크기가 커지는 단점을 극복하기 위하여 제안된 방법으로 플래시 메모리의 삭제 단위인 블록 단위로 논리 물리 사상 테이블이 존재하는 방법이다

 

혼합 사상 : 혼합 사상 기법은 섹터 사상 기법과 블록 사상기법을 혼합한 기법이다.

 즉, 일단 블록 사상 기법과 같이 블록 단위의 사상 테이블이 존재하고, 블록 내에서는 섹터 사상을 하는 방법이다.