NVM,即非易失性存储器,是一种非易失性内存。
NVM的特点是存储的数据在断电后不会消失。传统的NVM,如掩模ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、NAND/NOR闪存等,以及目前正在开发的许多新型状态存储器,如磁性存储器(MRAM)、电阻存储器(RRAM)、相变存储器(PRAM)、铁电存储器(FeRAM)等,都属于NVM。(因此,NVM的概念非常广泛。
从可编程次数来看,NVM可以分为三类。
MTP:多次可编程,可多次编程
FTP:有限次可编程,可编程次数有限
OTP:一次性可编程,仅允许编程一次,编程后数据永久有效
本文主要讨论OTP和MTP。
什么是一次性可编程(OTP)?
一次性可编程(OTP,One Time Programmable)是一种特殊的非易失性存储器,它仅允许编程一次,一旦编程,数据将永久有效。与EEPROM等多次可编程(MTP)存储器相比,OTP因其占用面积小且不需要额外的制造步骤而广泛用于低成本芯片中。
OTP NVM指的是只能编程一次的非易失性存储器。
随着嵌入式应用的日益普及,产品的安全性变得越来越重要。一方面,这是为了保护硬件设计;另一方面,也是为了产品本身的安全,防止被黑客攻击。
在嵌入式系统中,所有代码和系统数据都存储在闪存芯片中,闪存芯片的特点是可多次擦除且在断电时不会丢失数据。为了保护闪存中的数据,越来越多的闪存制造商在闪存内部提供了一个特殊寄存器:OTP寄存器。
OTP本身并不为应用提供绝对的安全性。然而,OTP的可用性有助于开发人员开发和部署更安全的应用。如今,许多软件和硬件保护都是基于OTP实现的。
电子保险丝(eFuse)
1、什么是电子保险丝(eFuse)?
电子保险丝(eFuse)是一种在芯片出厂前写入信息的一次性可编程存储器。在芯片中,eFuse的容量通常很小。
保险丝(fuse)即熔断器。在计算机技术中,eFuse(电子保险丝)可以说是一个放置在计算机芯片中的微型熔断器。
2、电子保险丝(eFuse)的作用
电子保险丝(eFuse)可用于存储内存(MEM)修复中的数据修复信息,也可用于存储芯片的信息,如芯片可使用的电源电压、芯片的版本号、生产日期等。制造商在生产芯片裸片后,会进行测试并将芯片的信息写入eFuse中。
2004年,IBM发明了eFuse。与之前的可编程ROM不同,eFuse利用电迁移(EM)效应来实现熔断。eFuse的发明具有革命性,因为它不依赖于工艺,不需要新材料,也不需要新工具。它结合了独特的算法和新技术,能够在没有人为干预的情况下监控和调整芯片的功能,以提高其质量、性能和功耗。
3、eFuse的使用方法
芯片在初次上电过程中会读取eFuse中的电压场值,并将其发送给芯片外部的电源管理器。电源管理器在芯片初次上电之前会提供一个标准电压(假设为1.0v),并在接收到eFuse中的电压场值后调整电压水平。
完成电源电压调整后,芯片将重新上电进行复位操作。
4、eFuse的应用
eFuse具有广泛的应用范围,从模拟设备的调整、校准和修复到系统软件的现场更新,以及在安全领域的广泛应用。然而,由于eFuse的编程节点可以通过电子显微镜观察到,因此仍然有可能解密其存储的内容。
因此,为了满足对安全性和密度的需求,反熔丝(Anti-Fuse)技术应运而生。
反熔丝(Anti-Fuse)
反熔丝由两个晶体管组成:一个编程晶体管和一个读取或选择晶体管。随着工艺几何尺寸的缩小,反熔丝也可以相应地缩小,因此随着宏尺寸的增加,反熔丝的密度可以成比例地增加,达到数百兆比特的级别。
5、eFuse vs Anti-Fuse
Anti-Fuse与eFuse之间的主要差异在于编程机制、安全性和功耗。
从编程机制来看:Anti-Fuse是通过向薄栅极氧化物施加高电压,使晶体管的栅极和源极通过雪崩击穿而短路来实现编程的。
而eFuse则是通过利用I/O电压向金属或多晶硅条带施加高密度电流来进行编程的。
eFuse中的低电阻金属由于高密度电流通过狭窄的金属或多晶硅而发生电迁移熔断,在编程过程中,eFuse宽端的冷却效果优于中间较窄的区域,因此eFuse的熔断部分总是位于eFuse中间较窄的区域。
eFuse只能对相应的位进行一次编程,赋予其“1”的值,如果编程后读取的值不是“1”,则表示编程失败,这会导致良率的降低。而Anti-Fuse大约可以编程18次,如果初次编程失败,可以反复进行编程,这有助于提高良率。
在安全性方面:Anti-Fuse比eFuse具有更好的安全性。eFuse的已编程位可以通过电子显微镜观察到,因此其存储的内容容易被破解,但Anti-Fuse在显微镜下无法区分已编程位和未编程位,因此无法读取数据。
无论eFuse在显微镜下是否能区分已编程和未编程的位,Anti-Fuse不仅无法在显微镜下窥探编程信息,而且也无法通过聚焦离子束(FIB)检测电压热点,这使得未经授权的用户难以访问Anti-Fuse存储器中存储的数据。
在功耗方面:与eFuse相比,Anti-Fuse在未编程状态下消耗的功率更低。
eFuse默认是开启的,存储的是“1”,而Anti-Fuse默认是关闭的,存储的是“0”,因此Anti-Fuse不仅功耗更低,而且占用的面积也比eFuse小。
eFuse(电子保险丝)和Anti-Fuse(反熔丝)在多个方面存在显著的区别,这些区别主要包括编程机制、安全性、功耗、容量、成本以及可读性等方面。下面来阐述总结一下:
编程机制
- eFuse:通过向内部器件施加高密度电流(如一个持续200微秒的10毫安直流脉冲),使eFuse内部低电阻金属由于高密度电流通过而被电迁移熔断,从而完成编程。这个过程是不可逆的,一旦eFuse被熔断,就不能再次编程。
- Anti-Fuse:编程方式则是根据量子穿隧原理,在单晶体氧化层形成导电路径,从而实现编程。这种编程方式不会在表面留下可见的痕迹,因此比eFuse更难以通过物理手段破解。
安全性
- eFuse:尽管eFuse可以保护SoC中的敏感信息,防止黑客通过修改存储器中的数据来破解SoC的安全性,但其本身也可能受到攻击。例如,黑客可以使用高功率的激光器来擦除eFuse中的数据,或者使用特殊的攻击技术来破解eFuse的安全性。
- Anti-Fuse:由于其在编程后不会在表面留下可见痕迹,且通过电子显微镜也无法破解出其内存储的信息,因此Anti-Fuse在安全性方面表现更佳。
功耗
- eFuse:由于编程过程中需要施加高密度电流,因此eFuse的功耗相对较高。
- Anti-Fuse:相比之下,Anti-Fuse的功耗更低。
容量与成本
- eFuse:eFuse的容量一般较小,最大不超过几kb,且面积通常远大于相同容量的片上存储器(SRAM),因此存储成本较高。此外,eFuse通常由Fab开发并基本免费提供,但由于其容量限制和安全性问题,可能需要额外的安全措施来增强其保护能力。
- Anti-Fuse:Anti-Fuse的存储密度通常好于eFuse,因此使用Anti-Fuse可以在芯片内放入更大容量的一次性可编程存储器。然而,Anti-Fuse需要找IP Vendor购买,可能会增加一定的成本。但是,考虑到其更高的安全性和更好的功耗表现,这些成本可能是值得的。
可读性
- eFuse:eFuse中的数据在编程后是可以读取的,但其一次性编程的特性意味着一旦数据被写入就无法更改。
- Anti-Fuse:Anti-Fuse同样支持数据的读取操作,且由于其更高的安全性和更好的功耗表现,使得其在需要高安全性和低功耗的应用场景中更具优势。
在选择使用哪种技术时,需要根据具体的应用场景和需求进行权衡和选择。
6、什么是MTP?
MTP,即多次可编程(Multiple-Time Programmable),顾名思义,与一次性可编程存储器不同,多次可编程存储器可以根据用户的需要被重新编程和更新多次。
EPROM、EEPROM、NAND/NOR闪存(Flash Memory)等都是MTP(多次可编程)的一种。
实际上,业界习惯于将MTP与EEPROM/Flash/OTP/Mask ROM进行比较。从应用需求的角度来看,OTP是一个大类;EEPROM/Flash是另一个大类;而MTP则是一个小众需求,其实施技术基本上是基于前两类的工艺/设计技术,但进行了较小的调整或权衡。
MTP的实现与OTP不同,因此它可以被多次烧录,具有复杂的设计架构和较高的成本。由于实现方法的多样性,MTP的原理不能一概而论。
OTP的程序存储器大多采用熔断丝结构。编程过程是一个不可逆的破坏性活动,通常是将1写入为0。
而MTP大多使用EEPROM或FLASH或其他技术。写入过程也是一个1到0的变化。但在某些条件下,0可以变回1。例如,EPROM在紫外线照射下形成,光电荷被冲入栅极区域。EEPROM则使用电隧穿电荷注入技术。
7、PROM
PROM(Programmable Read Only Memory,可编程只读存储器)是一种可编程的只读存储器,与传统的ROM不同,其数据不是在制造过程中写入的,而是在制造完成后通过PROM编程器写入的。PROM中的每个位都通过熔丝或反熔丝锁定,具体取决于所使用的技术。根据技术的不同,PROM中的每个位可以在晶圆、测试或系统级别进行编程。
典型的PROM在出厂时所有位都设置为“1”。在编程过程中,烧断熔丝位会使该位读取为“0”。通过烧断熔丝,PROM在制造后可以编程一次,这是一个不可逆的过程。典型的PROM采用“双极熔丝结构”。
如果想要重写某些单元,可以向这些单元通入足够高的电流并保持一段时间,从而烧断原有的熔丝,达到重写某些位的效果。另一种经典的PROM是带有“肖特基二极管”的PROM,出厂时二极管处于反向截止状态。
8、EPROM
EPROM(Erasable Programmable Read-Only Memory)是一种可擦除可编程只读存储器。它的特点是具有可擦除功能,允许在擦除后进行重新编程,但缺点是擦除需要使用紫外线,且需要一定时间。
9、EEPROM
EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种电可擦可编程只读存储器。它最重要的特点是可以直接使用电信号进行擦除和写入操作。
10、FLASH ROM
FLASH ROM是一种真正的单电压芯片,在使用上与EEPROM非常相似,因此有些书籍将FLASH ROM视为EEPROM的一种。但实际上,两者之间存在差异,因为当FLASH ROM被擦除时,它还会执行一个特殊的刷新过程;而在删除数据时,它不以字节(Byte)为基本单位,而是以扇区(Sector,也称为Block)为最小单位,扇区的大小因制造商而异;只有在写入时,才以字节为最小单位进行写入。
FLASH ROM芯片的读写操作都是在单一电压下进行的,不需要跳线,只需使用特殊程序即可轻松修改其内容;FLASH ROM的存储容量一般大于EEPROM,大约在512K到8M KBit之间,由于大批量生产,价格也更合适,非常适合存储程序代码,近年来已逐渐取代EEPROM,被广泛用作主板上的BIOS ROM。
NOR和NAND闪存之间的区别在于,NOR闪存更像内存,拥有独立的地址和数据线,但其价格更高且容量较小;而NAND闪存则更像硬盘,地址和数据线共用I/O线,类似于硬盘中所有信息都通过单一的硬盘线传输。与NOR型闪存相比,NAND型闪存的成本更低,但容量要大得多。
因此,NOR型闪存更适合频繁随机读写的场合,通常用于存储程序代码并在闪存中直接运行,手机是NOR型闪存的主要使用者,所以手机的“内存”容量通常不大;而NAND型闪存则主要用于存储数据,常见的闪存产品,如闪存驱动器、数字存储卡等,都使用NAND型闪存。
11、Mask ROM简介
Mask ROM是一种掩模只读存储器。掩模也被称为光掩模,因此它也被称为光掩模只读存储器。它是通过一次性掩模工艺制造的,其中的代码和数据将被永久存储(除非被破坏),并且无法修改。它是一种非可编程ROM。
12、OTP与MTP小结
OTP(一次性可编程)相对于MTP(多次可编程)的优势在于OTP存储器占用面积更小,且无需额外的晶圆处理步骤。因此,在许多低成本应用中,OTP存储器被用来替代MTP存储器。
例如,小容量的MTP(位大小)可以通过电路设计使用成本最低的OTP工艺来实现。因此,我们可以跳出常规思维,如果:它可以被擦除5次,那么我们可以制作5个相同容量的OTP,每次写入并使用完一部分后,下次再为下一个OTP写入,从而节省成本。
根据不同的应用场景,我们可以根据存储器的特性灵活选择。
以上就是本次全部内容啦!最近牙好疼!下次聊!
Anyway,good night!
作者:认真写干货的
文章来源:TrustZone
推荐阅读
- 搞DDR必懂的关键技术笔记:DDR RAS—内存中的纠错码 (ECC)
- 牛掰!这老哥用显微镜摄取芯片ROM,还原了芯片的二进制固件。
- 搞DDR必懂的关键技术笔记:深入探究DDR物理结构
- 搞DDR,你是可以看看我的这篇笔记(三)
更多物联网安全,PSA等技术干货请关注平台安全架构(PSA)专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入PSA技术交流群,请备注研究方向。