热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【存储】NVM,NVRAM,FLASH,PROM,eFuse,NANDFLASH,NORFLASH,NVMe区别是?

目录简略详细1.什么是NVM?2.MaskROM,PROM,EPROM,EEPROM3.OTPNVM3.1eFusevs.Anti-Fuse4.Summa

目录

 

简略

详细

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在闲置的时候可以快速的控制在极低的水平,从而降低整体的能耗。

 


推荐阅读
  • 在Java中,匿名函数作为一种无名的函数结构,无法独立调用;而在JavaScript中,不仅有类似的匿名函数,还有立即执行函数(IIFE)和闭包等高级特性。立即执行函数同样基于匿名函数实现,但会在定义时立即执行,而闭包则通过嵌套函数来捕获外部变量,实现数据封装和持久化。这些不同的函数形式在实际开发中各有应用场景,理解其特点有助于更好地利用语言特性进行编程。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • Linux磁盘管理入门指南:MBR分区格式详解与安装步骤
    在 CentOS 7.x 环境下,本文详细介绍了 MBR 分区格式的基本概念及其安装步骤。实验中使用了 SAS 和 SATA 硬盘,其中 SAS 硬盘主要用于企业级应用和服务器,而 SATA 硬盘则广泛应用于个人计算机和低端服务器。文章通过具体操作示例,帮助读者更好地理解和掌握 Linux 磁盘管理的基本技能。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • Java队列机制深度解析与应用指南
    Java队列机制在并发编程中扮演着重要角色。本文深入解析了Java队列的各种实现类及其应用场景,包括`LinkedList`、`ArrayBlockingQueue`和`PriorityQueue`等,并探讨了它们在高并发环境下的性能表现和适用场景。通过详细分析这些队列的内部机制和使用技巧,帮助开发者更好地理解和应用Java队列,提升系统的设计和架构能力。 ... [详细]
author-avatar
shilf999_369
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有