是一种电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead Only Memory,EEPROM),具有非易失、读写速度快、抗震、低功耗、体积小等特性,目前己广泛应用于嵌入式系统、航空航天、消费电子等领域。
闪存通过电荷存储信息,每个存储单元可以存储一个或多个比特的数据。在写入数据时,闪存通过向存储单元施加高电压来改变其电荷状态,从而记录数据。读取数据时,闪存则通过检测存储单元的电荷状态来确定数据值。在特定的电压作用下,电子被注入或移出浮置栅极,从而实现数据的写入和擦除。
闪存存储器主要分为NOR型和型两种,NOR型闪存有独立的地址线和数据线,它支持按位进行访问,具有高可靠性且随机读取速度较快,但NOR闪存的擦除和写操作速度较慢、容量小、价格昂贵,主要用于存储程序代码并在内存中直接运行。NOR闪存在手机上得到了广泛的应用。NAND闪存相对于NOR型闪存拥有更大的容量,适合进行数据存储。
此外,它类似于传统的机械硬盘,对于小数据块的操作较慢,对于大数据块操作较快。NAND闪存根据其芯片单元所能存储的比特位数又可分为单级晶胞(SLC)和多级晶胞(MLC)两类。MLC技术具有显著的存储密度优越性,相对于SLC每个单元仅能存储1位比特,MLC可以存储多位比特,但MLC在速度和可靠性方面还有一定的提升空间。
一个NAND型闪存芯片通常由若干个块组成,每个块又由若干页组成。例如,容量为1GB的三星K9WAG08U1AQ)闪存芯片包含8192个块,每个块由64个页组成,每一个页由数据区和备用区组成,2KB的数据区用于存储用户数据,64B的备用区用来存储校验、逻辑页地址等信息。闪存具备读、写和擦除3种操作,页是闪存的基本读写单位,重写数据前必须进行擦除,擦除操作以块为单位,执行时间和能耗远高于读写操作。在页被擦除前,SLC型闪存可以对同一个数据页进行多次写操作,最小写单元为512个字节。闪存芯片的读写方式与磁盘截然不同,二者的I/O操作性能对比如下:
类型 | 时间/s
|
读(2KB) | 写(2KB) | 擦除(128KB) |
磁盘 | 12.7ms | 13.7ms | N/A |
NAND型闪存 | 80µs
| 200µs | 1.5ms |
总的来说,闪存不同于磁盘的特性包括以下几点:
(1)无机械延迟,作为一种纯电子设备,闪存没有机器延迟,随机访问和顺序访问的开销相当,具有很高的随机读性能;
(2)读写不对称,闪存对不同类型访问操作表现的性能差别很大,一般来说,读速度很快,写入数据时,因为需要通过加压的方式对存储单元进行电子填充,所以速度较慢;
(3)异位更新。与磁盘的原位更新不同,对闪存数据进行重写需要先执行擦除操作,即便是只更新数据块中的一条数据也需要将整个块擦除,频繁的擦除操作会使系统性能显著降低。因此,闪存设备在更新数据时并不会直接在原位进行更新,而是先将原数据置为无效,然后把修改后的数据写到一个新的空闲页;
(4)擦除次数有限,闪存芯片的块擦除次数是有限制的,通常SLC闪存支持10万次擦除操作,MLC闪存数据存储密度高,可擦除次数在1万次左右,超过一定擦除次数的闪存单元将不再可用;
(5)低能耗。与磁盘相比,闪存的能耗更低,每GB读数据能耗只有磁盘的2%,写操作能耗不足磁盘的30%。
闪存的出现为建设绿色数据中心以及低能耗数据管理系统提供了有力支持,闪存有比磁盘更加复杂的硬件特性,传统的磁盘数据库技术在闪存上并不适用,设计适用于闪存的结构、算法和应用是闪存数据管理必须要解决的一个重要问题。