2020년 2월 19일
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
잘 읽고갑니다