我们每天都在使用 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 时,不要只把它看成一颗存储芯片。

它背后,是几十年半导体技术不断演进的结果。


谢谢你读我的文章