目录
简略
详细
1. 什么是NVM?
2. Mask ROM, PROM, EPROM, EEPROM
3. OTP NVM
3.1 eFuse vs. Anti-Fuse
4. Summary
1.2.1. 什么是Flash
1.2.3 nvme ssd和普通ssd区别
bandaoyu@uestc,本文持续更新,连接:http://t.csdn.cn/4ApmB
简略
NVM 概念,有不同的技术实现,包含FLASH(NAND FLASH/NOR FLASH),PROM、EPROM、EEPROM等
NVRAM 和NVM一样NVRAM也是一种概念,比NVM更小范围的概念,有不同的技术实现,例如非常常见的 EEPROM。
NVM--|EPROM 可擦写可编程只读存储器。-->擦除需用紫外线照射
---------|EEPROM 电可擦除可编程只读存储器。-->擦除可直接用电信号擦除
---------|FLASH--|NAND FLASH 成本相对低,读写容易出错,需软件或硬件校验数据
----------------------|NOR FLASH 成本高容量小,读写不容易出错,适用于存储少量的代码。
VM 与NVM对应的存储设备,过去的SDRAM,DDR SDRAM,现在的DDR2,DDR3,断电就丢数据。
NVMe NVMe一般指NVM Express。 NVM Express(NVMe),或称非易失性内存主机控制器接口规范
nvme和SSD的关系:ssd是固态硬盘,普通的ssd配的是SATA口(AHCI协议),nvme ssd配的是PCIe口(nvme传输协议)http://www.ttep.cn/jy/74425.html
详细
(摘抄自:NVM, PROM, OTP, eFuse傻傻分不清楚https://blog.csdn.net/lpwsw/article/details/123921972)
1. 什么是NVM?
NVM: Non-Volatile Memory,非易失性存储器
NVM 的特点是存储的数据不会因为电源关闭而消失,像 Mask ROM、PROM、EPROM、EEPROM、NAND / NOR FLASH等传统 NVM,以及,目前许多正在研发的新型态存储器,如磁性存储器 (MRAM)、阻变存储器 (RRAM)、相变存储器 (PRAM)、铁电存储器 (FeRAM) 等等都属于 NVM。所以NVM的概念很大。
从可编程次数来看,NVM可以分为3类:
- MTP: Multiple-Time Programmable,可以多次编程
- FTP: Few-Time Programmable,可编程的次数有限
- OTP: One-Time Programmable,只允许编程一次,一旦被编程,数据永久有效
可见,OTP指的是可编程的次数,并不特指某一种存储器。
2. Mask ROM, PROM, EPROM, EEPROM
EPROM(Erasable Programmable Read-Only Memory)是可擦写可编程只读存储器。它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。
EEPROM(Electrically Erasable Programmable Read-Only Memory)是电可擦除可编程只读存储器。它的最大特点是可直接用电信号擦除,也可用电信号写入。
Mask ROM是掩模只读存储器,Mask也称为光罩,所以也称为光罩只读存储器。其通过掩模工艺,一次性制造,其中的代码与数据将永久保存(除非坏掉),不能进行修改。属于不可编程ROM.
PROM(Programmable Read Only Memory)是可编程只读存储器,相对于传统的ROM,其数据不是在制造过程中写入的,而是在制造完成之后通过PROM programmer写入的。PROM 中的每个bit 由熔丝 ( fuse ) 或反熔丝 ( antifuse ) 锁定,根据采用的技术不同,可以在晶圆、测试或系统级进行编程。
典型的PROM的所有位都为“ 1”。在编程过程中烧断熔丝位(Burning a fuse bit)会使该位读为“ 0”。存储器在制造后可以通过熔断保险丝(blowing the fuses)进行一次编程,这是不可逆的过程。典型的PROM是“双极性熔丝结构”,如果想改写某些单元,可以给这些单元通以足够大的电流,并维持一定的时间,原先的熔丝(fuse)即可熔断,这样就达到了改写某些位的效果。另外一类经典的PROM是使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,采用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。
3. OTP NVM
OTP NVM指的是只可一次编程的非易失性存储器。
3.1 eFuse vs. Anti-Fuse
fuse是保险丝·、熔丝的意思,在计算机技术中,eFuse(electric-fuse,电子保险丝)是置于计算机芯片中的微观保险丝。该技术是IBM在2004年发明的,可以对芯片进行动态实时重新编程。概括地说,计算机逻辑通常被“蚀刻”或“硬连线”("etched" or "hard-wired")到芯片上,在芯片制造完成后不能更改,但使用eFuse,芯片制造商可以在芯片上的电路运行时进行更改。
电子保险丝可以用硅或金属制成,它们都是通过电迁移来工作的,即电流导致导体材料移动的现象。随着时间的流逝,编程期间产生的“熔丝碎屑”会反向生长,导致金属线断开的相同电迁移也会导致金属线无意中再次连接,从而改变原本要存储的数据,导致了错误的行为。这个特性限制了eFuse 的可读次数。
Anti-Fuse(反熔丝)是一种电气装置,其功能与保险丝相反。保险丝从低电阻开始,默认是导通状态,当灌以较大的电流时切断电路。而反熔丝从高电阻开始,默认是不导通状态,当灌以较大的电压时,可将其转换为永久性导电路径。
Anti-fuse 比eFuse 的安全性更好,eFuse的编程位可以通过电子显微镜看到,因此其存储的内容可以被轻易破解,但Anti-fuse在显微镜下无法区分编程位和未编程位,因此无法读取数据。
eFuse默认导通,存储的是"1",而Anti-fuse默认是断开,存储的是"0",因此Anti-Fuse的功耗也较eFuse小,面积也较eFuse小。
4. Summary
原文:
NVRAM: Non-Volatile RAM. The target is to have a electrical device that could be accessed quite fast, most of the time the content is calculated by bytes and the content could be saved after power down. There are different technical ways to implement this concept such as EEPROM which is very common. Please note, in mobile phone design, most of the time one or two sectors of ROM (most of the time it is FLASH) will be used to simulate NVRAM, the only reason is cost saving since ROM is a “must” but NVRAM is not.
FLASH: One kind of ROM and the difference to other ROM is semiconductor level. Please note, FLASH must be read/write by sectors but NVRAM should be read/write by bytes. It is why NVRAM driver have to implement an algorithm such as copying all the content in one sector to RAM first.
NVM: Non-volatie memory. It is more generic concept and covers all the memory components that could keeps its content after power off. It is useful during architecture design when the technical detail could be skipped. In fact, in one project, a DRAM with battery played as NVM and it worked quite good in that case.
1.2.1. 什么是Flash
(摘抄自:https://blog.csdn.net/weixin_39936388/article/details/111280888)
Flash全名叫做Flash Memory,从名字就能看出,是种数据存储设备,存储设备有很多类,Flash属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。
1.2.1.1. Flash的硬件实现机制
Flash的内部存储是MOSFET,里面有个悬浮门(Floating Gate),是真正存储数据的单元。
在Flash之前,紫外线可擦除(uv-erasable)的EPROM,就已经采用了Floating Gate存储数据这一技术了。
图 1.1. 典型的Flash内存单元的物理结构
1.2.2. 什么是Nand Flash
Flash主要分两种,Nand Flash和nor flash。
关于Nand Flash和Nor Flash的区别:
Nor的成本相对高,容量相对小,比如常见的只有128KB,256KB,1MB,2MB等等,优点是读写数据时候,不容易出错。所以在应用领域方面,Nor Flash比较适合应用于存储少量的代码。
Nand flash成本相对低,说白了就是便宜,缺点是使用中数据读写容易出错,所以一般都需要有对应的软件或者硬件的数据校验算法,统称为ECC。但优点是,相对来说容量比较大,现在常见的Nand Flash都是1GB,2GB,更大的8GB的都有了,相对来说,价格便宜,因此适合用来存储大量的数据。其在嵌入式系统中的作用,相当于PC上的硬盘,用于存储大量数据。
所以,一个常见的应用组合就是,用小容量的Nor Flash存储启动代码,比如uboot,用大容量的Nand Flash做整个系统和用户数据的存储。
而一般的嵌入式平台的启动流程也就是,系统从装有启动代码的Nor Flash启动后,初始化对应的硬件,包括SDRAM等,然后将Nand Flash上的Linux 内核读取到内存中,做好该做的事情后,就跳转到SDRAM中去执行内核了,然后内核解压(如果是压缩内核的话,否则就直接运行了)后,开始运行,在Linux内核启动最后,去Nand Flash上,挂载根文件,比如jffs2,yaffs2等,挂载完成,运行初始化脚本,启动consle交互,才允许你通过console和内核交互。至此完成整个系统启动过程。
而Nor Flash就分别存放的是Uboot,Nand Flash存放的是Linux的内核镜像和根文件系统,以及余下的空间分成一个数据区。
1.2.2.1. Nand Flash的详细分类
Nand Flash,按照硬件类型,可以分为
Bare NAND chips:
裸片。单独的Nand Flash芯片。
SmartMediaCards:
裸片+一层薄塑料。常用于数码相机和MP3播放器中。之所以称smart,是由于其软件smart,而不是硬件本身有啥smart之处。
DiskOnChip:
裸片+glue logic。glue logic=硬件ECC产生器+用于静态的nand 芯片控制的寄存器+直接访问一小片地址窗口,那块地址中包含了引导代码的stub桩,其可以从Nand Flash中拷贝真正的引导代码。
1.2.3 nvme ssd和普通ssd区别
ssd是固态硬盘,普通的ssd配的是SATA口(AHCI协议),nvme ssd配的是PCIe口(nvme传输协议)
NVME是硬盘新的传输标准,下一代协议,比现代的AHCI传输协议更加高级。
NVME的优势有以下几点:
1.更低的延时。NVME精简了调用方式,执行命令时不需要读取寄存器,而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成2.5微秒的延迟。
2.更高的传输性能。性能不错的SATA接口的SSD,在队列深度上都可以达到32,这也是AHCI所能做到的极限。更高端的PCIe SSD其队列深度可达128,甚至是256才能发挥出最高的IOPS性能。而NVME标准下,最大的队列深度可达64000。此外,NVME的队列数量也从AHCI的1提高到了64000。
3.更低的能耗控制。升级版的NVME在能耗方面肯定会进行优化处理,能耗降低了有助于设备的节能使用,同时也会减少控制元件的工作负荷。NVME加入了自动功耗状态切换和动态能耗管理功能,SSD在闲置的时候可以快速的控制在极低的水平,从而降低整体的能耗。