快闪存储器的写入往往需要耗费大量的时间在抹除操作上。因此在快闪存储器档案系统中,会经由快闪存储器转换层(Flash Translation Layer)来进行对读、写、抹除操作的管理。
简介快闪存储器(Flash Memory)具有以下的硬件特性:
一个记忆单元经过写入(program),将可由逻辑1变成逻辑0,但无法再经由写入将此单元回复到逻辑1,需经过抹除(erase)才可回复逻辑1。
一般快闪存储器中抹除的最小单位称为block,读取(read)和写入的最小单位称为sector,一个block的大小远大于一个sector。
抹除的操作时间一般大于读取和写入的操作时间。
因为以上的硬件特性,快闪存储器的写入往往需要耗费大量的时间在抹除操作上。因此在快闪存储器档案系统中,会经由快闪存储器转换层(Flash Translation Layer)来进行对读、写、抹除操作的管理。 一般快闪存储器转换层需要包含的功能有:
逻辑-物理地址映射
断电回复(Power-off recovery)
耗损平均(Wear-leveling)1
逻辑-物理地址映射快闪存储器转换层(Flash Translation Layer)中最核心的部分,是逻辑-物理地址映射 table。由快闪存储器的硬件特性可知,一个已写入的sector,需经过抹除后,方可再写入(reprogram)新的资料。然而,抹除的最小单位block却远大于写入的最小单位sector,即使只是想要更新一个block当中某一个sector的资料,我们仍需要做整个block的抹除。此时,若想要保存此block中其他sector的资料,则需要在抹除前事先搬移到其他block,若有n次搬移需进行,则将再花费n次read以及n次program的操作,耗费相当多的时间。
因此,快闪存储器转换层中运用了逻辑-物理地址映射 table,当某个逻辑区块所对应到的物理区块中已写入资料时,FTL会将此写入资料导向到另外一个空的物理区块当中,并将此logical与物理区块的对应关系,更新到映射表当中。若要读取此逻辑区块的资料时,FTL会根据映射表当中的资讯,找到所对应的物理区块。
在实作上,逻辑-物理地址映射的设计将决定对快闪存储器的操作效率。其中,若抹除的次数越多,则快闪存储器档案系统的效能将会越差。另外,在嵌入式的应用中,许多设计是将映射表存放在RAM memory中,因此映射表的大小也是在设计时的考量重点。
依照address mapping设计方式的不同,可分成以下三大类:
Sector Mapping
在sector mapping的方式中,每一个逻辑区块,都可以对应到一个物理区块。此方式具有最好的快闪存储器存取效率,但缺点是映射表的大小将会很大。对于嵌入式的应用而言,RAM memory是昂贵的资源,越大的映射表,将导致越高的成本。
Block Mapping
在block mapping的方式中,每一个logical block对应到一个physical block。在block mapping方式中,映射表只记录了logical block和physical block的对应资讯,因此映射表的大小减少很多。而要找到一个逻辑区块所对应到的物理区块时,只要找到在对应的physical block中同样offset的位置即可。
Hybrid Mapping
在hybrid mapping的方式中,同时使用了block与sector mapping的方式。1
闪存快闪存储器(英语:flash memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存卡与U盘。闪存是一种特殊的、以宏块抹写的EEPROM。早期的闪存进行一次抹除,就会清除掉整颗芯片上的数据。
闪存的成本远较可以字节为单位写入的EEPROM来的低,也因此成为非易失性固态存储最重要也最广为采纳的技术。像是PDA、笔记本电脑、数字随身听、数码相机与手机上均可见到闪存。此外,闪存在游戏主机上的采用也日渐增加,藉以取代存储游戏数据用的EEPROM或带有电池的SRAM。
闪存是非易失性的存储器。这表示单就保存数据而言,它是不需要消耗电力的。与硬盘相比,闪存也有更佳的动态抗震性。这些特性正是闪存被移动设备广泛采用的原因。闪存还有一项特性:当它被制成储存卡时非常可靠──即使浸在水中也足以抵抗高压与极端的温度。闪存的写入速度往往明显慢于读取速度。
虽然闪存在技术上属于EEPROM,但是“EEPROM”这个字眼通常特指非快闪式、以小区块为清除单位的EEPROM。它们典型的清除单位是字节。因为老式的EEPROM抹除循环相当缓慢,相较之下快闪记体较大的抹除区块在写入大量数据时带给其显著的速度优势。
闪存又分为NOR与NAND两型,闪存最常见的封装方式是TSOP48和BGA,在逻辑接口上的标准则由于厂商阵营而区分为两种:ONFI和Toggle。手机上的闪存常常以eMMC的方式存在。1
本词条内容贡献者为:
李嘉骞 - 博士 - 同济大学