快闪存储器转换层(Flash Translation Layer),是对快闪存储器档案系统读、写、抹除操作的管理。
快闪存储器(Flash Memory)具有以下的硬件特性:
因为以上的硬件特性,快闪存储器的写入往往需要耗费大量的时间在抹除操作上。因此在快闪存储器档案系统中,会经由快闪存储器转换层(Flash Translation Layer)来进行对读、写、抹除操作的管理。
一般快闪存储器转换层需要包含的功能有:
快闪存储器转换层(Flash Translation Layer)中最核心的部分,是logical-to-physical address mapping table。由快闪存储器的硬件特性可知,一个已写入的sector,需经过抹除后,方可再写入(reprogram)新的资料。然而,抹除的最小单位block却远大于写入的最小单位sector,即使只是想要更新一个block当中某一个sector的资料,我们仍需要做整个block的抹除。此时,若想要保存此block中其他sector的资料,则需要在抹除前事先搬移到其他block,若有n次搬移需进行,则将再花费n次read以及n次program的操作,耗费相当多的时间。
因此,快闪存储器转换层中运用了logical-to-physical address mapping table,当某个logical sector所对应到的physical sector中已写入资料时,FTL会将此写入资料导向到另外一个空的physical sector当中,并将此logical与physical sector的对应关系,更新到mapping table当中。若要读取此logical sector的资料时,FTL会根据mapping table当中的资讯,找到所对应的physical sector。
在实作上,logical-to-physical address mapping的设计将决定对快闪存储器的操作效率。其中,若抹除的次数越多,则快闪存储器档案系统的效能将会越差。另外,在嵌入式的应用中,许多设计是将mapping table存放在RAM memory中,因此mapping table的大小也是在设计时的考量重点。
依照address mapping设计方式的不同,可分成以下三大类:
在sector mapping的方式中,每一个logical sector,都可以对应到一个physical sector。此方式具有最好的快闪存储器存取效率,但缺点是mapping table的大小将会很大。对于嵌入式的应用而言,RAM memory是昂贵的资源,越大的mapping table,将导致越高的成本。
在block mapping的方式中,每一个logical block对应到一个physical block。在block mapping方式中,mapping table只记录了logical block和physical block的对应资讯,因此mapping table的大小减少很多。而要找到一个logical sector所对应到的physical sector时,只要找到在对应的physical block中同样offset的位置即可。
在hybrid mapping的方式中,同时使用了block与sector mapping的方式。