X

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 저장공간에서 오버 프로비저닝 공간을 제외

 

Categories: CA/운영체제
도리:

View Comments (1)