容量那么小的EEPROM有什么用?
容量那么小的EEPROM有什么用?
EEPROM(电可擦除可编程只读存储器)是一种非易失性存储器,具有字节级擦写、高耐用性和简单接口等特点。虽然容量较小,但其在汽车电子、智能手机摄像头模组、工业自动化设备等领域有着广泛的应用。本文将从EEPROM的定义、特点、应用场景以及历史发展等方面进行详细介绍。
什么是 EEPROM?
广义的EEPROM指的是一种非易失存储介质(掉电后还能保存数据)。我们常用的固态、U盘中的存储芯片都可以被称作是EEPROM。不过对于这些大容量、高速、高密度的存储介质,我们更加愿意称其为Flash。
狭义的EEPROM,也是我们日常用“EEPROM”所真正指代的设备,通常是具有较小擦除块(小至一个字节)和较长使用寿命(通常为1,000,000次)的非易失性存储器。相比较下,Flash的擦除块较大(通常为512字节或更大)且写入次数有限(通常仅为10,000次)。本文将关注的便是这种狭义的EEPROM,后文中提到EEPROM也都指狭义的。
现在我们来看到EEPROM这个名字,它的全称是Electrically Erasable Programmable Read-Only Memory。我们来一点点解析:
- Electrically - 电子信号或电流控制的。与EEPROM可以通过电擦除,于此相对,EPROM少了一个字母E,就需要紫外线擦除了。
- Erasable - 可以擦除或清除的。
- Programmable - 这个词表示可以编程或写入数据的。它意味着存储设备可以接受指令来存储或修改信息。
- Read-Only - 这个短语意味着只能读取数据,不能写入或修改。然而,在EEPROM的上下文中,这个术语有些误导,因为EEPROM是可写的,只是它在写入之前需要先擦除。
- Memory - 存储信息的设备或介质。
图1:早期的EPROM照片 图源:维基百科
为什么要用 EEPROM?
EEPROM容量这么小,相对于我们常用的Flash芯片,还有什么存在的必要?
字节级擦写:EEPROM允许字节级的擦写,这意味着可以单独修改存储器中的一个字节而不需要擦除整个存储块。这在需要更新小部分数据时非常有用,例如在固件升级或配置数据存储中。
耐用性:EEPROM通常具有更高的擦写周期,这意味着它可以承受更多的擦写操作,这在某些需要频繁修改数据的应用中非常重要。
简单的接口:EEPROM通常具有简单的接口,易于与微控制器或其他处理器集成。
成本效益:对于小容量存储需求,EEPROM可能是一个成本效益更高的选择,尤其是在考虑到其耐用性时。
EEPROM为什么会有擦写寿命?
EEPROM的擦写寿命有限,主要是因为它使用的存储技术依赖于存储单元内的电荷来保持数据。随着时间推移和反复使用,这些电荷可能会逐渐流失,导致存储值发生变化,类似于一个缓慢泄气的气球。此外,EEPROM单元依赖于控制门的阈值电压来确定存储的数据是0还是1,单元一旦开始退化,阈值电压可能发生变化,导致数据表示出错。
现在EEPROM一般在哪些场景下应用?
EEPROM由于其特性,在多种应用场景中有具体的应用实例,我们列举一些具体的例子:
汽车电子:一辆智能汽车需要多达30-40个EEPROM芯片。在电动汽车或混合动力汽车中,位于BMS中的EEPROM可以存储有关电池状态的重要参数,如电池的充放电次数、电池健康状态等信息。这些信息对于评估电池性能和寿命至关重要。EEPROM也在向智能座舱、网关、“电驱、电池、电控”系统等应用领域延伸。
智能手机摄像头模组:随着多摄像头手机的普及,每个摄像头模组可能都需要EEPROM来存储校准数据、色彩平衡设置等信息,确保即使在更换摄像头模组或软件更新后,图像质量保持一致。
工业自动化设备的参数存储:在工业自动化领域,EEPROM可以用于存储机器的配置参数,如运动控制器的PID参数、传感器的校准数据等,这些参数在设备重新启动后需要保持不变。
家用电器的固件存储:许多家用电器,如微波炉、洗衣机等,使用EEPROM来存储固件更新和用户设置,这样即使在断电后,设备也能记住用户的偏好设置。
医疗设备、可穿戴设备的配置和校准:医疗设备,如血糖监测仪、血压计等,使用EEPROM存储设备校准参数和用户的健康数据,确保测量的准确性和数据的持久性。
可穿戴设备的个性化设置:智能手表或健康追踪器等可穿戴设备使用EEPROM存储用户的健身目标、睡眠模式等个性化设置。
图2:上图橙框部分可能是iPhone上的EEPROM,其作用或许为安全存储区图源:ifixit
EEPROM的历史
“活着是一种有记忆的存在”,我们无法想象如果没有记忆人类会怎样。同样我们也无法想象,当今的计算机,若没有存储器,会是怎样。
人类的大脑有两种记忆模式:短期记忆与长期记忆,计算机存储于此不谋而合,前者如内存DRAM,关机即消失,后者如闪存Flash,可以长期存储信息。虽然人类利用硅存储信息的历史只有短短数十年,但现在每秒新增的信息存储量远超人类曾经的千年存储信息的总和。
最早的计算机存储依赖打孔卡,在进入到二十世纪之后,通过磁介质进行存储的方式以其稳定、低成本的特点逐渐流行,基于脉冲传输控制(Pulse transfer controlling device)的磁芯存储器阵列应用而生。这种存储器使用在了第一代航天飞机计算器上,即使在1986年挑战者号发生灾难性爆炸时,它仍能正常工作,具有不错的耐用性。有关这种存储器的原理可以参考wiki或者是当时的专利。
图3:CDC 6600中使用的64x64bits磁芯存储卡 图源:维基百科
半导体的发明改变了此后存储器的格局,MOS场效应管便于高密度集成,使其十分符合存储器的需求,此时恰逢美苏冷战期间,大量军事领域的控制器都需要小巧的存储设备,这位半导体存储器打开了需求侧的大门。
那时,登纳德正在研究SRAM,但这种存储器存储1bit需要六个MOS,不仅面积很大,而且成本非常之高。而此后的DRAM只需要使用一个晶体管和一个电容器即可实现存储,但IBM雪藏了这个超前的发明,这也使得1970年因特尔通过发布1K的1103 DRAM捷足先登。这也意味着半导体存储器可以正式与磁存储器掰掰手腕了。
我们在这里简单介绍下SRAM和DRAM的原理和差异,也推荐大家看这个介绍SRAM和DRAM的视频,会比文字描述更加直观些。下图4展示了SRAM的原理图,其中M1、M2、M3、M4构成了两个反相器(或者说非门)。准确的说应该是“Cross-coupled inverters”,即“交叉耦合反相器”或“交叉耦合反转器”。它们的输入和输出交叉连接,通常用于实现双稳态电路,也就是所谓的触发器或锁存器。进而实现1bit数据的锁存。
图4:使用6个MOS的SRAM
DRAM与之不同,其通过电容实现比特存储,如下图5所示。登纳德在设计DRAM时,充分参考了磁存储器的优点——即结构简单,纵横两根线的交叉处放置一个磁环,如果驱动一根横线与一根纵线,那么交叉点处的磁环就将被选中,可对其进行读写。于是,登纳德在半导体存储器中也采用这个结构,纵横交叉的线分别对应于存储矩阵的行与列,在交叉点设置一个电容器来存储电荷(有电荷代表1,无电荷代表0),再用一个晶体管作为开关。这就像通过一根输液管把水导入瓶中,然后拧紧瓶口的开关。
图5:DRAM的示意图
现在,终于可以讲到非易失存储器NVM了。1970年,弗罗曼在解决SRAM短路烧毁的问题时发现,这个问题的根源在于栅极中的金属,这些金属中的电子漂移到下方的绝缘体中,使其变得可导电,从而引起了短路。
这个现象启发了弗罗曼,他想,“这些封存在绝缘体里的电荷制造了这么多麻烦,也许我能把它们利用起来并做出一个存储元件”。当电荷被封存到绝缘体中时代表存储了1,否则就是0。这里就得用上姜大元和施敏发明的浮栅晶体管了,它也是后来各类ROM的基础。这篇文章中阐述了EPROM具体的原理。不过此时的EPROM还不是EEPROM,它不能实现电擦除,所以这个芯片需要使用紫外线照射来擦除元器件中的电荷。该怎么办呢?在诺里斯的支持下,EPROM上被加装了一块石英玻璃,大家可以往上翻,看到本文图1。
1975年,NEC的半导体运营部门(后来的NEC电子,现为瑞萨电子)向日本专利局申请了EEPROM商标名。1977年2月,休斯飞机公司的Eliyahou Harari发明了一种新的EEPROM技术,该技术利用Fowler-Nordheim隧穿技术穿过浮栅和晶圆之间的薄二氧化硅层。
(这些半导体物理学的名称看着真是令人费解,我们今天还是关注这个发展过程吧……
1984年,摩尔接受采访时说:“回溯历史,在微处理器产业发展的过程中,EPROM的重要性其实和CPU不相上下,我很高兴它们是同步发展起来的。”