Address Mapping : Logical Address 를 Physical Address 로 변환
Garbage Collection : 안 쓰는 NAND Memory를 초기화하여 쓰기 가능한 상태로 바꾸는 것.
Wear Leveling : 특정한 NAND Memory에 쓰기가 몰리지 않게 하여, 전체적인 수명을 관리하는 것.
BML (Bad-Block Management Layer)
BBM(Bad Block Management) : NAND 특성상, 새 NAND 조차 불량 블록이 있을수 있으며, 이런 블록을 관리.
LLD (Low Level Driver)
NAND Flash를 위한 Driver
Address Mapping in FTL
Page-level Maping
Page 단위 모든 Maping을 Mapping Table에 두는것
Mapping Table 안에는 [[LPN]]과 [[PPN]]이 들어있다.
장점
새로운 쓰기 요청을 사용중이 아닌 페이지라면 어디에든 쓸수 있다. 이는 랜덤 쓰기에서 높은 성능을 보여준다.
단점
NAND Flash Memory 특성상, 쓰기는 페이지 단위로 할 수 있어도, 지우기는 Block 단위로 밖에 안되기 때문에, Free Space가 부족하게 될 경우, 공간을 확보하기 위해서 Copy를 통해 데이터를 모으게 되고, 이 과정에서 쓰기 성능이 매우 떨어지게 된다.
Mapping Table의 크기가 상대적으로 커서 RAM영역을 많이 차지하게 된다.
Block-level Mapping
Erase 의 단위인 Block단위로 관리하는 방법
Maping Table에는 LBN(Logical Block Number)와 PBN(Physical Block Number)가 존재하며, 접근할때 PBN으로 Block을 찾은뒤, Page Offset을 통해서 접근한다.