용어와 정의
영문 또는 원어: FTL
영문 정식명칭: Flash Translation Layer
한글명: 플래시 변환 계층
FTL은 플래시 저장장치에서 호스트의 논리 주소와 실제 플래시 저장 위치를 연결하고 관리하는 소프트웨어 또는 펌웨어 계층입니다.
정확한 의미와 원리
NAND 플래시는 페이지 단위 쓰기와 블록 단위 소거 같은 제약을 가집니다. FTL은 호스트에 블록 장치처럼 보이는 인터페이스를 제공하면서 주소 매핑, 빈 공간 관리와 내부 데이터 이동을 조정합니다. 일반적인 파일시스템의 폴더나 파일 이름을 관리하는 계층과는 다릅니다.
쉽게 이해하는 사용 예시
파일의 일부를 수정할 때 새 내용은 다른 플래시 위치에 기록되고 기존 위치는 나중에 정리할 대상으로 남을 수 있습니다. 호스트의 파일 크기나 주소가 그대로여도 내부 저장 위치가 달라지는 이유를 이해할 때 FTL 개념이 필요합니다.
종류와 관련 개념의 차이
주소 매핑은 구현에 따라 페이지, 블록 또는 이들을 조합한 단위로 관리할 수 있습니다. Wear leveling은 쓰기와 소거 부담을 분산하는 기능이고 Garbage collection은 유효 데이터를 보존하며 재사용할 공간을 회수하는 기능으로, FTL과 관련되지만 같은 뜻은 아닙니다.
적용 조건과 오해하기 쉬운 점
FTL의 존재 자체가 소거 실패나 복구 성공을 의미하지는 않습니다. 구현, 장치 상태와 지원 명령에 따라 결과가 달라집니다. 파일 덮어쓰기, TRIM 통지, 장치 수준 Block erase와 Cryptographic erase를 같은 동작으로 설명하지 않습니다.