我们熟知的NAND闪存,还有个“双胞胎兄弟”
【IT168 评论】无论消费者还是企业机构,大多数人在谈到闪存时,首先想到的就是NAND闪存。从一定的现实意义上来讲,NAND闪存可以说已经成为固态硬盘的代名词。基于块寻址结构和高密度,使其成为磁盘的完美替代品。
NOR闪存是另一种与NAND不同的闪存类型,它具有不同的设计拓扑结构,某些特定的应用场景下更为适合。在比较NAND和NOR闪存在不同应用中的相对优势和适用性之前,检查其结构差异是很重要的。
NAND闪存产品是当今已经达到高水准的存储芯片,是当前市面上嵌入式以及独立式SSD的主要原材料。多层单元(MLC)技术和3D制造工艺的结合,将NAND存储单元垂直蚀刻到硅衬底上,使存储密度和NAND芯片容量呈几何级增长。
NAND与NOR电路基础
尽管NAND闪存是这两种非易失性内存技术中相对流行的一种,但NAND和NOR都是由同一名东芝公司的工程师在上世纪80年代中期发明的。要理解这两个种类的区别和命名,需要简要回顾一下逻辑门的基础知识。
NAND和NOR分别涉及到布尔逻辑函数中的逻辑“和”(and)以及“或”(or)。如下所示,NAND和NOR都生成响应两个二进制输入的输出。
响应两个二进制输入的NAND和NOR输出
NAND和NOR逻辑门仅仅为它们各自的功能实现了上面这个真值表。
NAND门在概念上是作为AND门实现的——当两个输入都是1时输出1——后面跟着一个NOT门,这是一个逻辑反转。相应的,NOR门在概念上是一个OR门——有任何一个输入是1时输出1,然后是NOT门,这是一个逻辑倒装。
布尔逻辑的背景对于理解NAND和NOR闪存至关重要,因为闪存单元被连接到一个行和列的数组中。在NAND闪存中,一组中的所有单元(通常是一个字节的倍数,取决于芯片的大小)共享一条位线,并以串行方式连接每个单元,每个单元连接到一个单独的字行。同一字行连接一个内存块中的多个字节,通常为4 KB到16 KB。因此,只有当所有的字线都是高或单状态时,位线才会降低或变为零状态,这实际上将内存组转换为一个多输入NAND门。
与此相反,NOR闪存并行组织位线的方式是,当位线和字线都处于低或零状态时,内存单元只保持高或单状态。
NAND单元的串联结构使得它们可以通过导电层(或掺杂层)连接在衬底上,而不需要外部接触,从而显著减少了其横截面积。
NAND闪存单元的串联连接意味着它们不需要单元之间通过金属层进行外部接触——而这正是NOR拓扑结构所需的。使用导电层连接硅衬底上的单元意味着NAND闪存的密度通常比NOR高两个数量级,或100倍。此外,组内单元的串联连接使它们可以垂直地堆积在3D数组中,位线类似于垂直管道。
相反,由于NOR闪存单元不能单独寻址,因此它们对于随机访问应用程序更快。
NAND与NOR产品类型
这两种类型的闪存具有明显的特性和性能差异,它们有各自最适合的应用程序类型。除了容量外,NAND和NOR闪存还具有不同的运行、性能和成本特性,如下图所示。
这两种闪存中也有几种不同的产品类型,它们在I/O接口、写入持久性、可靠性和嵌入式控制功能方面有所不同。
NAND闪存产品类型
NAND闪存以单层(SLC)、多层(MLC)、三层(TLC)或四层(QLC)的形式在每个单元(cell)中存储bit,分别为1 bit/cell、2 bit/cell、3 bit/cell、4 bit/cell。要确定哪种类型的NAND最适合于工作负载,简单来说,每个单元的位数越高,其容量就越大——当然,是以数据持久性和稳定性为代价的。
NAND设备只是没有任何外围电路的存储芯片,这些外围电路使NAND闪存可以在SSD、U盘或其他存储设备中使用。相比之下,托管型NAND产品嵌入了一个内存控制器来处理必要的功能,比如磨损调平、坏块管理(从使用中消除非功能性内存块)和数据冗余。
NOR闪存产品类型
串行设备通过只暴露少量(通常是1到8个)I/O信号来减少包的pin数。对于需要快速连续读取的应用程序来说,这是理想的选择。NOR闪存通常用于瘦客户机、机顶盒、打印机和驱动器控制器。
并行NOR产品暴露多个字节,而且通常使用内存页而不是单独的字节进行操作,更适用于启动代码和高容量应用程序,包括数码单反相机、存储卡和电话。
两种闪存都是不可或缺的
NAND是闪存的主力,广泛用于嵌入式系统和SSD等存储设备的大容量数据存储。不过,NOR 闪存在存储可执行的启动代码和需要频繁随机读取小数据集的应用程序方面起着关键作用。显然,这两种类型的闪存将继续在计算机、网络和存储系统的设计中发挥作用。
原文作者:Kurt Marko
存储芯片 emmc、Nand flash、Nor flash之间有什么区别
随着存储领域的发展,有很多不同的存储介质,今天ICMAX就带大家来分一分emmc、Nand flash、Nor flash之间的区别。
一、定义及区别
emmc:全称为embeded MultiMedia Card,是一种嵌入式非易失性存储器系统,由Nand flash和Nand flash控制器组成,以BGA方式封装在一款chip上。
Nand flash:一种存储数据介质;若要读取其中的数据,需要外接的主控电路。
Nor flash:也是一种存储介质;它的存储空间一般比较小,但它可以不用初始化,可以在其内部运行程序,一般在其存储一些初始化内存的固件代码。
这里主要重点讲的是emmc 和Nand flash 之间的区别,主要区别如下:
(1) 在组成结构上:emmc存储芯片简化了存储器的设计,将NAND Flash芯片和控制芯片以MCP技术封装在一起,省去零组件耗用电路板的面积,同时也让手机厂商或是计算机厂商在设计新产品时的便利性大大提高。而NAND Flash仅仅只是一块存储设备,若要进行数据传输的话,只能通过主机端的控制器来进行操作,两者的结构图如下:
(2) 在功能上:eMMC则在其内部集成了 Flash Controller,包括了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。相比于直接将NAND Flash接入到Host 端,eMMC屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 NAND Flash 进行特殊的处理。同时,eMMC通过使用Cache、Memory Array 等技术,在读写性能上也比 NAND Flash要好很多。而NAND Flash 是直接接入 Host 端的,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系统来做坏块管理、ECC等的功能。另一方面,emmc的读写速度也比NAND Flash的读写速度快,emmc的读写可高达每秒50MB到100MB以上;
二、emmc的初始化和数据通信
emmc与主机之间通信的结构图:
其中包括Card Interface(CMD,DATA,CLK)、Memory core interface、总线接口控制(Card Interface Controller)、电源控制、寄存器组。
图中寄存器组的功能见下表:
CID: 卡身份识别寄存器 128bit,只读, 厂家号,产品号,串号,生产日期。
RCA: 卡地址寄存器,可写的16bit寄存器,存有Device identification模式由host分配的通信地址,host会在代码里面记录这个地址,MMC则存入RCA寄存器,默认值为0x0001。保留0x0000以用来将all device设置为等待CMD7命令状态。
CSD: 卡专有数据寄存器部分可读写128bit,卡容量,最大传输速率,读写操作的最大电流、电压,读写擦出块的最大长度等。
SCR: 卡配置寄存器, 可写的 64bit 是否用Security特性(LINUX不支持),以及数据位宽(1bit或4bit)。
OCR: 卡操作电压寄存器 32位, 只读,每隔0.1V占1位, 第31位卡上电过程是否完成。
(5)Device Identification Mode和初始化
MMC通过发CMD的方式来实现卡的初始化和数据通信
Device Identification Mode包括3个阶段Idle State、Ready State、Identification State。
Idle State下,eMMC Device会进行内部初始化,Host需要持续发送CMD1命令,查询eMMC Device是否已经完成初始化,同时进行工作电压和寻址模式协商:eMMC Device 在接收到这些信息后,会将OCR的内容(MMC出厂就烧录在里面的卡的操作电压值)通过 Response 返回给 Host,其中包含了 eMMC Device 是否完成初始化的标志位、设备工作电压范围 Voltage Range 和存储访问模式 Memory Access Mode 信息。
如果 eMMC Devcie 和 Host 所支持的工作电压和寻址模式不匹配,那么 eMMC Device 会进入Inactive State。
Ready State,MMC完成初始化后,就会进入该阶段。
在该 State 下,Host 会发送 CMD2命令,获取eMMC Device 的CID。
CID,即 Device identification number,用于标识一个 eMMC Device。它包含了 eMMC Device 的制造商、OEM、设备名称、设备序列号、生产年份等信息,每一个 eMMC Device 的 CID 都是唯一的,不会与其他的 eMMC Device 完全相同。
eMMC Device 接收到CMD2后,会将 127 Bits 的CID的内容通过 Response返回给 Host。
Identification State,发送完 CID 后,eMMC Device就会进入该阶段。
Host 会发送参数包含 16 Bits RCA 的CMD3命令,为eMMC Device 分配 RCA。设定完 RCA 后,eMMC Devcie 就完成了 Devcie Identification,进入 Data Transfer Mode。
注:emmc初始化和数据通信的过程,有点类似USB协议,USB控制器去发送请求给USB设备,以IN包和OUT包的形式去建立与USB设备之间的通信,默认状态下,USB设备也是0地址的,与控制器分配设备地址。(感兴趣的可以看一下USB2.0的协议,主要是第8和9章内容)
三、eMMC工作电压和上电过程
根据工作电压的不同,MMC卡可以分为两类:
High Voltage MultiMediaCard,工作电压为3.3V左右。
Dual Voltage MultiMediaCard,工作电压有两种,1.70V~1.95V和2.7V~3.6V,CPU可以根据需要切换
我所使用的eMMC实测工作电压VCC为2.80V~2.96V,VCCQ为1.70V~1.82V。
其中VCC为MMC Controller/Flash Controller的供电电压,VCCQ为Memory和Controller之间I/O的供电。
上电初始化阶段MMC时钟频率为400KHz,需要等电压调整到它要求的VCC时(host去获取OCR中记录的电压值,上面有说),MMC时钟才会调整到更高的正常工作频率。
相关问答
用STM32挂接的最大NandFlash到多少?看下STM32f103的FSMC寻址地址是从0x70000000到0x8FFFFFFF就是8*64M的nandflashbank2,bank3还支持SRAM看下STM32f103的FS...
如果CPU是沙子做成的,那内存和闪存是什么做成的?-ZOL问答2.的确不好回答,内存快主要是独立地址线等构造使其寻址速度更快等原因,具体原因...结合了DRAM内存的高速度与NAND闪存的数据保持性,虽然现在看来还是比较鸡肋,但...
ssd的意思是什么_作业帮[回答]ssdSSD解剖图●SSD(solidstatedisk)固态硬盘目前的硬盘(ATA或SATA)都是磁碟型的,数据就储存在磁碟扇区里,固态硬盘数据就储存在芯片里.SSD...
固态硬盘不读盘了怎样才能数据恢复 - 前方的黎明 的回答 - 懂得固态不比原来的机械硬盘了。存储的原理不一样,个人一般是恢复不了数据的。想恢复只能找专业的数据恢复的公司试试。固态硬盘不读盘了想要恢复里面...
efi系统分区能删除吗?答可以efi系统分区可以删除。EFI系统不提供复杂的存储器保护功能,只具备简单的存储器管理机制。指运行在x86处理器的段保护模式下,以最大寻址能力为限把存储...
闪存卡构造是什么?- 一起装修网一起装修网问答平台为您提供闪存卡构造是什么?的相关答案,并为您推荐了关于闪存卡构造是什么?的相关问题,一起装修网问答平台:装修问题,因我而止。
64位操作系统、64位CPU加SSD硬盘是不是就可以省去内存,让CPU直接读取硬盘里的数据?首先你需要知道内存是个什么东西。内存是连接CPU和其他设备的通道,起到缓冲和数据交换作用。当CPU在工作时,需要从硬盘等外部存储器上读取数据,但由于硬盘...
影驰固态硬盘好用吗?影驰固态硬盘好用。影驰科技(GALAX)是业内深具实力的显卡、内存、固态硬盘、主板生产与销售公司之一。作为NVIDIA的全球AIC核心合作伙伴,公司在十余年砥砺前...
固态硬盘和机械硬盘哪个寿命更长?首先我们来认识固态硬盘和机械硬盘的使用寿命,便知道哪个硬盘的使用寿命更长。固态硬盘:固态硬盘闪存有擦写次数的限制,擦写1次叫做1次P/E,34nm的闪存芯片寿...
华为的emui5.0真的能做到18个月不卡顿吗?在系统资源限制的情况下,这些APP耗尽系统资源时,安卓系统就会卡顿,甚至崩溃。IOS系统则采用另一个机制,实际进程只有一个,其他进程以内存快照方式存储,在任...