存储芯片 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时钟才会调整到更高的正常工作频率。
固态硬盘ECC纠错能力,一眼看出SSD的好坏
我们常常看到SSD上显示支持ECC。那么ECC是个什么东西呢?
ECC是SSD的数据校验、纠错。
为什么SSD需要ECC呢?
原因:
1.SSD容易产生数据读写错误。ECC需要去校验更改数据错误,以及判断是否坏块。
2.SSD读写的介质是NANDFLASH。而NANDFLASH在生产过程和使用过程中都会产生坏块。
为什么NANDFLASH会产生数据读写错误呢?
原因:
1.写入集中、写入放大、异常断电等等,数据读写错误是普遍的。
2.NANDFLASH坏块引起数据读写错误。
为什么NANDFLASH会有坏块?
原因:
1.生产时的造成的坏块。
2.使用中造成的坏块。NANDFLASH是通过电荷来实现数据储存的,而当电荷击穿底层的绝缘层,坏块或就出现了。
坏块太多的NANDFLAH,无法通过测试,就成了黑片,部分测试未通过NANDFLASH基本能用就成了白片,而NANDFLAH的坏块少并且通过全部测试是为正片。
NANDFLASH中坏块是普遍存在的,只是多少的问题。这些坏块影响NANDFLASH/SSD的读写性能和寿命。
如上图,SSD的写入主要分为顺序读写和随机读写,而SSD使用中不断增加的坏块,随机的出现在SSD的NANDFLASH中,这使得SSD读写时容易出现错误,和增加读写的等待时间。
为了减小坏块、错误数据对NANDFLASH/SSD的影响。主控需要对NANDFLASH里的坏块进行判定、校正错误数据、对坏块进行管理。于是主控加入了BBM坏块管理和ECC校验纠错。
ECC找到坏块或者“伪坏块”,对它们进行判断、识别、纠正、标注,如果确定它们是真的坏块,则将其交给BBM去管理。
这样在主控的干预下,SSD读写时就可以减少数据错误、避开坏块,从而保证了SSD的读写性能和安全、寿命。
随着主控技术的不断进步。主控的ECC和BBM能力不断增强,主控ECC能力越来越强,BBM也能管理和屏蔽更多的坏块了。
这使得SSD对NANDFLASH的品质要求越来越低。这使得黑片都可以拿来做SSD,且性能勉强达到使用要求。
主控进步是SSD技术的一种进步,但是降低对NANDFLASH品质的要求对于我们消费者来说,却是一件坏事。因为黑片从此可以暗度陈仓,鱼目混珠了。
简单的讲了讲ECC和SSD的坏块管理,就叭叭叭说了一大通。如果有错误和遗漏,欢迎交流。
下面我们来一点实际的。我们来看看如何通过查看“ECC的运行历史/状况”来大概看懂一个SSD的好坏。
(声明:此方法是我无意中发现的,是结合了ECC和BBM知识的一种猜想,有待验证。)
我用SSD-Z测到硬盘S.M.A.R.T自我检测分析报告,在里面,我看到“ECC错误率”格式化为682。而我的SSD才使用214小时。我的电脑几乎是24小时开机,也就是说我的SSD才使用15天以内。半个月时间,我的ECC检查到和格式化的错误数据/坏块达到了682次/个。
我用鲁大师测试SSD。硬件ECC校正数据达到了699。
这两个图说明,我的SSD“牛仔很忙”。
为什么SSD使用不久,但是ECC却很忙,检查到/纠正过的数据错误或者发现的坏块非常多?
因为:
1.可能是NANDFLASH品质很渣。
2.可能是SSD主控不给力。
只有这两个可能,且任何一个都代表SSD可能很差劲。
确实如此,我的SSD速度测试,顺序读为300多MB/S,顺序写入不到20MB/S,4K也是不堪入目,是一个性能比HDD还糟糕的SSD。
另外我也用其他SSD用上面的方法检测过。也证明,我们通过看“ECC的运行历史/状况”可以大概了解到SSD主控和NANDFLASH的好坏,进而了解到这款SSD的好坏。
(但是由于ECC的版本不同,可能有的SSD在测试时无法看到“ECC的运行历史/状况”。大家不妨自己试试。)
相关问答
beeprog烧录起无法 校验 器件是什么问题?估计你是烧录NANDFlash。因为NANDFlash和普通的Flash结构有些不一样,在烧录的时候需要注意ECC。为何有ECC呢?那是NANDFlash本身的特性,偶尔的出现位反转的...
酷比魔方I player什么芯片?酷比iplayer的主控芯片面积非常大,从上面的标识可以看出,该芯片是ARM芯片。经过联系厂家,我们得知该芯片具有一下主要特点。ARM922TDMI微处理器内核(8KB数...
各位资深人士!请回答一下!物料替换nandflash需要做哪些测试?[回答]面对储存型闪存(NANDFlash)供货紧缩,以及二维(2D)NANDFlash将于10纳米制程面临微缩瓶颈,东芝(Toshiba)已于近期宣布将于2013年8月底展开五号半导...
麻烦各位好基友你们谁清楚,福田IC烧录代工为您解决ic烧录难...[回答]编程仿真的时候说简单点其实是用PC机来模仿单片机那你要是做个电子时钟出来总不能带台PC机吧编好的程序编译过后会出现一个.HEX文件,这个就是烧录程...
emmc与 nand flash哪个好?1、NANDFlash是一种存储介质,要在上面读写数据,外部要加主控和电路设计。2、eMMC是NANDflash+主控IC,对外的接口协议与SD、TF卡类似;对厂家而言简化了电...
...对齐到“4k”还是“4096扇区”? - PAmmt7V5SZF 的回答 - 懂得因该技术将物理扇区与文件系统的每簇4096字节对齐而得名。扩展资料:机械硬盘在磁盘发展早期,每扇区为512字节比较适合当时硬盘的储存结构。但随着单...
同志们!有谁能回复一下吗 德国 ECC 报价, ECC 排名好不好都来说说?[回答]当ECC的内存使用于不支持ECC的主板时,理论上机器会将其ECC功能关掉而当作non-ECC的内存来运作。但如果使用在兼容性较差的机器上时,该机器可能会出...
固态硬盘的闪存类型:SLC MLC TLC 各指的是什么?哪种比较好? ...除了主控芯片和缓存芯片以外,PCB板上其余的大部分位置都是NANDFlash闪存芯片了。NANDFlash闪存芯片又分为SLC(单层单元)和MLC(多层单元)NAND闪存:...
2019年的NVME固态硬盘性能到了什么水平?在CES2019展会上,金士顿正式发布了他们的A2000和KC2000系列NVMe固态硬盘,与上一代产品相比,每款固态硬盘都具有更高的性能。新的SSD现在都使用64层3DTLCNA...
技嘉PCIe 4.0 M.2 SSD何时发布?足固态硬盘市场的时间并不长,目前仅提供基于Phison主控的硬盘。因此在本届Computex大会上,技嘉极有可能会展示基于PhisonPS5016-E16主控的PCIe4.0x4...因此....