[H/W] Flash Translation Layer

글쓴이 Engineer Myoa 날짜

Flash Translation Layer(이하 FTL)은 무엇인고 하면…

 

 

Faster Than Light.. 가 아니고
SSD같은 Flash Memory기반 저장장치에서 일반 자기디스크처럼 저장장치처럼 운용할 수 있도록 Mapping 해주는 기술입니다.
그렇다면 이 FTL은 무엇으로 구성되고 왜 사용하냐?
우선적으로
방금 말씀드린 Flash Memory를 자기디스크처럼 I/O를 할 수 있도록 지원하고
또한 NAND Flash Memory는 Erasing이 Writing보다 느린데
이에 대한 솔루션을 제공하고 있습니다.
FTL은 크게 STL, BML, LLD 3단계로 구성됩니다.
STL(Sector Translation)
일반 하드디스크처럼 I/O를 할 수 있도록 Cell들을 Address Mapping 하는 역할을 합니다.
또한 일부 Cell에 쓰기가 과도하게 몰리지 않도록 (Cell Life-Cycle을 위해) Load Balancing을 해주는것과 같다고 생각하면 됩니다. (Wear Leveling 이라고 합니다.)
또한 위에서 설명한 NAND Flash Memory의 치명적인 단점인 느린 Erasing을 위해 해당 블록을 삭제한 것 처럼 표기만 하고 추후 BML에서 이러한 블록들을 처리합니다. (Garbage Collection이라고 합니다.)
BML(Bad-Block Management Layer)
일반 HDD에서 Fragement가 발생한것을 조각모음으로 해결하는 것처럼 BML은 Block내의 허상데이터(삭제한 페이지이나 Address Table에 남아있는 페이지)가 일정 이상이 되면 Cell의 읽기/쓰기 효율(IOPS)을 올리기위해 Cell을 마치 조각모음하듯 실제데이터를 다른 블록으로 이동하고 현 블록을 제거하는 역할을 합니다.
LLD(Low Level Driver)
FTL에서 가장 낮은 단계로 실제 NAND영역과 직접적으로 통신할 수 있는 SAP(Service Access Point)을 제공합니다.
추가적으로 아시는 분들은 아시겠지만 128GB의 SSD를 가정하면 128GB만큼의 용량이 들어있는 것이 아니라 Wear Leveling이나 Garbage Collection을 위한 내부적인 여유 Cell이 존재합니다.
카테고리: 취미

144개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다