我们每天都在使用 Flash。
手机里的存储芯片,是 Flash。
U盘,是 Flash。
SSD 中使用的 NAND,也是 Flash。
但是不知道大家有没有想过一个问题:
为什么这种存储技术叫 Flash?
Flash 这个英文单词,我们并不陌生。
它代表闪光、闪现,描述某个瞬间发生的事情。
英语里面还有一个俚语:
flash in a pan
意思是“昙花一现”,形容某个东西突然出现,但是很快消失。
那么问题来了:
Flash Memory 是不是因为它速度特别快,像闪电一样,所以才叫 Flash?
其实以前我也一直这么认为。
直到最近整理资料时,我翻到了一本90年代关于 Flash Memory 的书。
几十年前的工程师,在那个年代就已经开始探索一个问题:
有没有一种存储器,可以像 ROM 一样长期保存数据,又可以像 RAM 一样重新写入?
而 Flash 的诞生,并不是一个突然出现的技术,而是半导体存储技术经过几十年演进后的结果。
想理解 Flash 为什么出现,我们需要先回到最初的问题:
计算机到底需要什么样的存储器?
一、为什么人类需要一种新的存储器?
计算机发展初期,存储器一直面临两个矛盾。
一方面,计算机希望存储器速度足够快,可以让 CPU 随时读取和修改数据。
另一方面,又希望数据能够长期保存,即使断电以后也不会消失。
但是早期存储器很难同时满足这两个要求。
RAM(Random Access Memory)解决了速度问题。
RAM 可以被 CPU 快速访问,非常适合作为计算机运行时的数据空间。
但是 RAM 有一个明显缺点:
一旦断电,里面的数据也会消失。
因此,RAM 更像计算机运行过程中的“短期记忆”。
而 ROM(Read Only Memory)解决了数据保存的问题。
ROM 中的数据即使断电,也不会丢失。
但是 ROM 最大的问题是:
数据写入以后,很难再次修改。
如果程序需要更新,通常意味着重新制作芯片。
于是工程师开始寻找一种新的存储方式:
既能够像 ROM 一样保存数据,又能够重新写入。
这就是非易失存储器(Non-Volatile Memory)发展的起点。
二、浮栅晶体管:让晶体管拥有“记忆”
要实现一种可以长期保存数据,同时又能够修改的存储器,首先需要解决一个问题:
如何让一个电子器件记住自己的状态?
答案来自 MOS 晶体管结构的改进。
普通 MOS 晶体管通过 Gate(栅极)的电压,控制 Source 和 Drain 之间是否形成导电沟道。
当 Gate 施加合适的电压时,沟道形成,电流可以通过。
当 Gate 电压消失时,沟道关闭,电流停止。
但是普通 MOS 晶体管存在一个问题:
它只能表示当前状态。
断电以后,Gate 上的电压消失,之前的信息也随之消失。
工程师开始思考:
如果能够把某种状态保存下来,是不是就可以让晶体管拥有记忆能力?
于是,浮栅晶体管(Floating Gate Transistor)出现了。
浮栅晶体管在普通 MOS 晶体管基础上增加了一层 Floating Gate。
这层浮栅位于控制栅和沟道之间,并且被绝缘层包围。
它就像一个被封闭的小仓库。
电子进入以后,不容易离开。
因此,即使断电,浮栅中的电荷仍然可以保持。
这就是非易失存储器能够实现长期保存数据的物理基础。
三、浮栅晶体管里面存的是什么?
浮栅晶体管能够保存信息,那么它到底保存的是什么?
答案是:
浮栅里面保存的是电荷状态。
很多人第一次接触存储器时,会认为存储单元里面直接保存的是数字 0 和 1。
但实际上,物理世界中并不存在一个真正的“0”或者“1”。
存储器保存的是某种物理状态,而控制器再把这种状态解释成数字信息。
对于浮栅晶体管来说,这种物理状态就是:
浮栅中的电荷。
电子带负电。
当电子进入浮栅以后,会改变晶体管周围的电场环境,从而影响控制栅对于沟道的控制能力。
简单来说:
浮栅中的电子越多,控制栅越难控制沟道,晶体管越难导通。
因此,需要更高的电压才能让晶体管开启。
这个电压就是:
阈值电压(Threshold Voltage,Vth)。
所以:
浮栅电荷增加 → 阈值电压升高
浮栅电荷减少 → 阈值电压降低
读取存储单元时,控制器并不是直接看到浮栅里面有多少电子。
它实际上是施加读取电压,检测晶体管是否导通,再根据导通状态判断浮栅中的电荷状态。
这就是后来非易失存储器保存信息的基本原理。
四、电子如何进入浮栅?
浮栅已经解决了“如何保存状态”的问题。
但是新的问题又出现了:
浮栅被绝缘层包围,电子正常情况下无法进入。
那么,如何把电子放进去?
又如何把电子取出来?
答案是利用半导体中的特殊物理现象。
在一定条件下,通过施加高电压,可以让电子获得足够能量,或者利用隧穿效应,让电子穿过非常薄的绝缘层。
当电子进入浮栅时:
浮栅电荷状态发生改变。
晶体管阈值电压发生改变。
存储状态也随之改变。
这个过程就是写入。
而当电子离开浮栅时:
阈值电压恢复。
存储状态也随之改变。
这个过程就是擦除。
浮栅晶体管解决了“如何保存信息”的问题,但要真正成为一种实用的存储产品,还需要经历下一阶段的发展。
五、为什么叫Flash?从EPROM到Flash的演进
浮栅技术出现以后,工程师首先想到的是:
能不能利用这种结构制造一种可以保存数据,又可以重新写入的存储器?
于是,EPROM 出现了。
EPROM(Erasable Programmable Read Only Memory)最大的突破是:
数据第一次可以被写入,也可以被擦除。
EPROM 利用浮栅中的电荷状态保存信息。
但是它有一个明显的问题:
擦除数据需要紫外线。
芯片需要放在紫外灯下面照射,让浮栅中的电子释放出来。
这种方式虽然可行,但是操作复杂,不适合大规模应用。
后来 EEPROM(Electrically Erasable Programmable Read Only Memory)出现。
EEPROM 解决了 EPROM 最大的问题:
不再需要紫外线,可以通过电信号完成擦除。
这让存储器具备了在线修改能力。
但是 EEPROM 也存在新的问题。
为了支持更加灵活的小粒度擦除,需要给每个存储单元增加更多控制电路。
结果就是:
芯片面积增加。
制造成本提高。
存储密度降低。
于是工程师开始思考:
能不能保留 EEPROM 的电擦除能力,同时降低成本,提高存储密度?
答案就是 Flash。
Flash 做出的最大改变,就是改变了擦除方式。
EEPROM 可以针对较小粒度进行擦除。
而 Flash 选择了一种折中的方案:
不再追求单个存储单元独立擦除,而是一次擦除一个更大的区域。
例如:
一个 Block。这种设计减少了外围控制电路,提高了存储密度,也降低了成本。
相比 EEPROM,Flash 更适合制造大容量存储器。
而 Flash 这个名字,通常认为也与这种快速、大规模擦除方式有关。
它并不是简单表示“读取速度快”。
它体现的是一种存储技术上的突破:
通过一次性擦除大片区域,让存储器从复杂的修改方式走向高密度、低成本的大规模应用。
六、为什么后来出现NAND Flash?
Flash 解决了:
数据可以保存。
也可以重新写入。
但是存储行业还有另一个永恒的问题:
成本!
如果每一个存储单元都采用独立连接方式,需要大量控制电路,芯片面积也会增加。
于是 Flash 继续发展,其中一个重要方向就是 NAND Flash。
NAND Flash 采用多个存储单元串联的结构,通过减少外围电路,提高单位面积上的存储容量。
相比 NOR Flash:
NAND Flash 牺牲了一部分随机访问能力,但是换来了更高密度和更低成本。
因此今天:
手机。
U盘。
存储卡。
SSD。
主要使用的都是 NAND Flash。
七、从Flash到SSD
今天的一块 SSD 中,包含:
• NAND Flash; • SSD Controller; • Firmware; • ECC; • FTL。
但是最底层的故事,其实从一个非常简单的问题开始:
如何让数据在断电以后依然保存?
几十年的存储技术发展,并不是某一项技术突然出现,而是在一次次取舍和优化中不断演进。
存储技术的发展路线:
ROM
↓
浮栅晶体管
↓
EPROM
↓
EEPROM
↓
Flash Memory
↓
NAND Flash
↓
SSD
ROM 解决了数据长期保存的问题;
浮栅晶体管让存储单元拥有了保存状态的能力;
EPROM 实现了可擦写存储;
EEPROM 解决了电擦除的问题;
Flash 通过块级擦除方式,在存储密度、成本和可擦写能力之间取得了新的平衡;
最终,NAND Flash 成为了现代 SSD 的核心存储介质。
所以,Flash 这个名字,并不是简单因为它“速度快”。
它背后记录的是存储技术发展过程中的一次重要变化:
通过改变擦除方式,让存储器从复杂的修改方式,走向高密度、低成本的大规模存储。
下一次看到 NAND Flash 时,不要只把它看成一颗存储芯片。
它背后,是几十年半导体技术不断演进的结果。
谢谢你读我的文章
支付宝
微信