FTL (Flash Translation Layer)

I. FTL (Flash Translation Layer)의 개요

개념도개념
운영체제에서 사용하는 파일시스템의 논리 섹터 주소를 SSD (Solid State Drive)의 물리 블록과 페이지 주소로 변환하는 계층
  • 운영체제의 파일시스템은 HDD의 디스크 섹터 기반 주소 체계를 사용하지만, SSD는 블록과 페이지 단위로 메모리 셀을 구성하므로 호환성 문제 발생
  • SSD는 운영체제의 파일시스템 호환성을 지원하기 위해 FTL을 통해 논리적 섹터 구조를 지원

 

II. FTL의 구성 계층 및 구성 요소

가. FTL의 구성 계층

  • FTL은 OS 파일시스템의 섹터 주소와 NAND Flash 장치 블록 주소를 맵핑

나. FTL의 계층 설명

계층기능설명
STL (Sector Translation Layer)Address Mapping– 파일 시스템으로부터의 논리적 주소를 NAND Flash의 물리적 주소로 매핑
Garbage Collection– 무효화된 페이지를 많이 포함하는 블록을 선택하여 유효한 페이지들을 다른 블록에 복사 후 해당 블록 삭제
BML (Bad-block Management Layer)NAND Flash의 불량 블록을 관리하여 오류 처리 담당
LLD (Low Level Driver)NAND Flash 사용위한 Driver로 Flash Interface 제공
  • 쓰기 부하가 SSD의 삭제 능력 초과 시 급격한 성능 저하 현상인 쓰기 절벽(Write-Cliff, Freezing) 발생

 
III. SSD의 쓰기 절벽(Write-Cliff) 발생 방지를 위한 FTL 기능

기능설명
Wear-Leveling

플래시 메모리 셀은 재 기록 가능 횟수에 따라 수명이 존재
– 특정 페이지 집중 쓰기 시 해당 페이지가 포함 블록 전체 수명 단축
– FTL은 쓰기 작업 시 매핑 테이블의 내용을 변경해서 이전 블록은 Invalid 후 신규 블록에 기록해서 플래시 메모리 전체를 균등하게 사용
Garbage Collection
– Wear Leveling 시 이전 페이지 데이터를 즉시 지우지 않고 Invalid로 전환
– 이런 Invalid 페이지들이 쌓이게 되면 CopyBack Page 명령으로 일괄 처리
Over Provisioning
– SSD에서는 원활한 Wear Leveling과 Garbage collection을 작동하기 위해 여유 공간, 오버 프로비저닝 공간 마련
e.g. 256 GB → 250 GB 등 SSD 저장공간에서 오버 프로비저닝 공간을 제외

 

One Comment

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^