手机和固态硬盘中用来存储数据的NAND闪存问世于1987年,首次量产则是在4年之后。当年的东芝闪存部门如今已经成为新的KIOXIA铠侠,不过NAND闪存的工作原理至今没有发生太多的变化。
在每个闪存芯片中都有海量的存储单元,下图是一个闪存存储单元示意图,从上到下分别是控制栅极(Control Gate)、氧化层、浮栅层(Floating Gate)、隧道氧化层和衬底(Substrate)。左侧是源级(Sources)右侧是漏级(Drain),电流只能从源级向漏级单向传导。
闪存记录数据的关键在于浮栅层,当其中被充满电子时是已编程(写入)状态,代表二进制0;当其中没有电子时是已擦除状态,代表二进制1。
上面的这个0和1的逻辑听起来有些颠倒,不过当你了解到闪存的读取原理后就会觉得这样才是对的:源级到漏级之间没有电流(0),说明浮栅中有电子。
当源级到漏级之间有电流(1),说明浮栅里没有电子。
以上就是从闪存中读取数据的原理,往复杂了说它涉及到MOS管等复杂的半导体知识,但是如果朝简单的方向理解,我们也能轻松理解闪存表达数据的原理。
接下来是向闪存单元中写入数据的方法:在控制栅极和漏级之间施加一个20V高电压,就可以引发量子隧道效应,使电子进入到浮栅层中。由于氧化隧道层的绝缘效果,进入到浮栅层的电子不容易流失掉,所以闪存可以在断电后继续保留数据。
反过来也可以使用20V高电压反向将浮栅层中的电子"抽离"出去,这就是闪存的擦除。闪存的独特工作原理决定了闪存单元在写入之前必须经过擦除,而不能像磁记录那样直接覆盖写入。
对于原始的SLC闪存而言,一个存储单元只需保留一比特数据,非0即1,判断起来非常简单。SLC闪存速度快、寿命长,但容量小、每GB容量成本过高,不适合家用电脑的固态硬盘。
MLC闪存可以在每个存储单元中存储2比特数据,即00、01、10、11四种状态,浮栅层中的电荷等级需要更加精细化。
到了TLC闪存(3比特/单元),状态数量达到8种,而QLC闪存(4比特/单元)的状态数量高达16种。
2007年铠侠的前身东芝存储率先提出了三维闪存层叠技术,现在的3D闪存已经使用Charge Trap电荷捕获层取代原有Floating Gate浮栅层,存储单元的结构也发生了较大的变化,使得闪存写入速度更快,可靠性更强,功耗水平更低。铠侠TC10、RC10、RD10使用的都是3D TLC闪存。