当前位置:首页 > > 嵌入式大杂烩
[导读]推荐语 本次推荐的是朱老师写的关于EMMC和Nand的科普性区分的文章,通过文章我们可以通俗易懂地理解Nand与EMMC的一些关联及不同之处。下转原文: 1.背景 今天偶然在一个群里看到有人聊EMMC和Nand,相信很多嵌入式er都用过或者至少听说过这2种板载存储芯片,但

推荐语

本次推荐的是朱老师写的关于EMMC和Nand的科普性区分的文章,通过文章我们可以通俗易懂地理解Nand与EMMC的一些关联及不同之处。下转原文:


1.背景

今天偶然在一个群里看到有人聊EMMC和Nand,相信很多嵌入式er都用过或者至少听说过这2种板载存储芯片,但是很多人不清楚这2种的差异,也不明白什么时候应该用EMMC什么时候用Nand,如何选择?今天我们就来聊聊这个问题。



2.Nand是这样的

Nand是一种flash,所以又叫NandFlash。 大家知道Flash叫闪存(flash这个英语单词就有闪烁的意思),闪存这种存储设备是用电信号来做擦除和读写的。也就是说你可以把Flash看成是一个二进制数据仓库,你可以用电信号擦除它(清除掉仓库里的存货),也可以用电信号读取它(将仓库内存储的物品取出),也可以用电信号写入它(将物品放入仓库储存)。
好,问题来了,怎么去擦除、读写呢? 这东西又听不懂人话,所以必须按照它的时序规则用电平信号和他交互。



上图中左侧是一个NandFlash实物图,大家可以看到有很多引脚。右侧是NandFlash和STM32单片机的连接接线图。

这些芯片上的引脚就是Nand和外界进行数据交流的通道。其中IO0-IO15是数据通道,通信时的地址和数据就是从这些引脚传输的。而CLE、ALE等剩余引脚就是时序控制线,用来做通信控制和同步。当然Nand工作时还需要供电的,图中并没有画出电源引脚但是实际是有的。

这就是NandFlash,通过很多个引脚(图中可见至少二三十个)和外界通信,很大的一个薄片状芯片。能存储数据。

常见Nand的容量一般几十Mb到几个Gb(注意存储设备的容量都是b而不是B),应该说容量不算大。

Nand内部的存储单元有两大类,MLC和SLC。具体的细节暂不去管,大家只需要知道SLC Nand容量小价格高,但是质量好不容易坏。而MLC Nand容量大价格便宜,但是质量不好容易出现坏块。其实不能说是质量好坏,而是工艺本身特性决定的,咱们反正是科普,就简单粗暴给他归个类吧。


3.Nand的优势和劣势

Nand的优势都是相对于它的前代产品来说的。在Nand之前,人类使用的大容量存储主要是磁性存储(软盘、硬盘)和光存储(DVD光盘),这些东西都不太完美。譬如光盘不能反复擦写而且读盘设备和盘片都经常坏(大家你想想家里老式光碟机是不是经常读不出盘),硬盘虽然今天也还在大量用,但是速度有极限并且体积太大,所以今天的高端笔记本电脑都不用机械硬盘改用SSD了(SSD其实也是Flash)。

我们主要讲讲Nand的劣势。

Nand的第1大劣势就是接口和时序不标准。大家可能没意识到,NandFlash其实是一个品类而不是一个固定产品,你去看全世界有多家公司都在生产Nand,但是他们的产品并不能直接通用,也就是说你不能把一款Nand直接替换另一款而不需改动软硬件。这就头痛了,麻烦的要死。

Nand的第2大劣势就是引脚太多,体积大。所以Nand芯片不能用在对体积要求很高的小型产品上,这极大限制了Nand的直接使用。

Nand的第3大劣势就是容量不能灵活控制。就算你用同一家厂商的Nand芯片,但是不同容量的芯片引脚接口和封装等也可能不同,这样你如果做产品时有不同容量版本的产品,还得分开设计,分开生产,很麻烦。

Nand的第4大劣势就是坏块的管理。存储设备其实就相当于有很多小房间的一个大仓库,而这个仓库的每个小房间都是独立的。因为技术原因有时候一些小房间就会坏掉,没法使用,那我们不可能因为一个小房间坏掉了就把整个仓库都丢掉吧?

于是乎人们就发明了坏块管理技术。也就是说我们去标记上每个房间是好的还是坏的,如果发现某个房间坏了那就标记成坏块,就不再使用这个房间了,而其他的好块还是可以继续用的。这种坏块管理技术可以很大程度延长Nand的整体寿命。

和坏块相似的还有个ECC(错误校验)问题。正常情况下Nand中每个好块中存储的数据都会一直保持正确,即使过了几年时间你去读他还是原来的数据。但是事实往往没有这么理想,有时候一些块中的某些特定位就是会在隔了一段时间去读取时发生了翻转,这里原来存进去是1结果读出来是0了。

这就难受了啊,最痛苦的是你也不知道原来存进去到底是1还是0,也不确定读出来的还是不是原来的数,所以搞得你没法相信任何一个数据,因为任何一个数据都有可能会翻转啊,那岂不是整个数据都不可信了。

解决办法就是ECC,我们写入时先用算法计算得到数据的ECC值,把ECC值和块内数据一起存入Nand中。待读出时也是把块内数据和ECC一起读出,然后再用相同的算法计算块内数据的ECC,和读出的ECC进行比较,如果相同就认为数据未发生任何反转,如果不同就认为数据已经发生变质,没法相信了。

本来有坏块标记和ECC技术,Nand已经挺好用了,也确实可以用了。但是麻烦的是Nand的ECC和坏块标记都需要主控CPU来做,Nand自己是不管的。所以使用Nand很麻烦,你得编程解决很多细节问题(时序、ECC、坏块管理)。

所以Nand最大的问题,其实就是不够好用。那怎么办呢?进化。


4.EMMC其实是从Nand进化而来

EMMC其实就是Nand包了一层后形成的。

EMMC内部真正用来存储的仓库就是Nand,而且EMMC基本都是MLC Nand,因为便宜啊。那EMMC解决了Nand的什么问题呢?

首先,EMMC是封装和引脚都是标准的。什么标准?就叫EMMC标准。所以EMMC这个词其实本来就是个接口标准名,符合EMMC接口的存储芯片就叫EMMC芯片。

这个标准体现在至少三个方面:物理封装、硬件电平和脚位、软件时序。所以所有的EMMC芯片,不管是哪家厂家的,不管是多大容量的,都可以直接替换使用。因为人家设计EMMC标准的时候就已经考虑到这种兼容和替换了(当然了,实际上EMMC也有好几种封装,但是一般硬件工程师做封装时都会考虑几种兼容的)。

所以EMMC解决了Nand的一个大问题,就是不同厂家和容量的存储芯片之间的替换问题,这个非常厉害。因为兼容可以方便备货,方便采购,方便替换,所以极大降低了产品设计和备货上的难度,极大降低了成本。

举个栗子,大家买手机都会发现现在的手机发布都有不同容量版本选择,什么256G、128G、64G版。你想想厂商和经销商要备货这么多种,多难受?但是如果用EMMC呢?所有的手机主板其实都是完全一样的,只是实际生产时贴上了不同容量的EMMC芯片而已。而且最重要的是软件上不用做任何改动,软件可以自适应不同容量的EMMC芯片。这样手机厂商就不用给不同容量的手机适配不同的操作系统镜像了啊,多省心。所以你明白为什么手机都用EMMC而不用Nand了吧

EMMC的引脚比Nand也更少,体积也更小。当然了EMMC体积小也有很重要原因是因为他采用了更先进的BGA封装方式。所以体积的优势也不算根本优势,如果Nand也用BGA封装也可以做的小,只是说Nand没这个必要性了。

最后,EMMC也解决了Nand的时序、坏块和ECC问题。本质上因为EMMC内部也是用Nand存储颗粒(而且是MLC Nand更容易坏)的所以也逃不过Nand的这些麻烦。但是EMMC芯片在内部内置了一个控制器(你可以理解为内部有个CPU且跑了一段固件代码),这个控制器解决了这几个问题,尤其是坏块管理和ECC的问题。

所以你做产品用Nand就麻烦,得自己操这些心。而你做产品用EMMC就省心了,自己不用管这些破事,EMMC全部帮你搞定了,何乐而不为呢?从这个角度讲EMMC好像自动挡汽车,而Nand好像手动挡汽车。(我发现我好喜欢用自动挡和手动挡的对比·····)


5.EMMC和Nand的性价比

有人说不对呀,看你说的EMMC明显比Nand好啊,为什么我发现EMMC好像还比Nand便宜呢?

EMMC从技术上确实比Nand好,但是也确实比Nand便宜。主要原因是成本并不只是由硬性成本决定的,还和市场、规模等因素有关。

EMMC便宜的一大原因就是因为标准化。标准就可以大规模生产,大规模流通,大规模压货,大规模使用。而用的多了产量大了,自然成本就低了。所以EMMC的大规模性就决定了他的成本很有优势。

EMMC便宜的另一大原因是内部使用MLC而不是SLC。实际上SLC的成本要远高于MLC的,但是市场上流通的Nand很多还是SLC,为什么?因为MLC“质量”太差了,太容量出现坏块和翻转等,所以广泛使用的Nand还都是SLC的。你如果直接用MLC Nand,那你的管理成本又很高,太麻烦了。而EMMC解决了这个问题,他内置的控制器很好的管理了MLC Nand,因此可以做到容量很大、使用简单,还便宜。

所以说,能干脏活就是生产力啊。


6.如何选择用哪个

实际项目中我们是用EMMC还是Nand呢?

实际上如果你的产品需要大容量(譬如超过8Gb也就是1GB或更大),那一定是EMMC更合适。性价比更高,且软件上更简单。

那什么时候用Nand呢?需要容量在几十MB(譬如64MB)到几百个MB(譬如512MB)之间的存储,且不在意体积,且对稳定性要求高的情况下,可以用SLC Nand。

那工业级和抗干扰方面呢?我并没有专业研究过,但是简单分析也知道,Nand在这方面肯定比EMMC好一些。毕竟EMMC是串行的要保证高速肯定总线速度高,而Nand是并行的总线速度肯定低。所以Nand应该要比EMMC皮实一些吧?

但是EMMC也是有工业级和消费级之分的,你做的产品真的是工业环境使用完全是可以用EMMC的,所以也不要鼓吹什么消费电子用EMMC,军工用Nand这种说法。


7.最后

实际上存储市场除了Nand和EMMC之外还有很多其他角色也都很厉害。

譬如Norflash、譬如近年来很火的spiflash(常见的是spinor,但是现在也有大容量的spinand了),譬如这两年创新设计的SDnand(相当于是贴片芯片样式的SD卡)。

技术其实一直都在创新。

最后,本文完全是从我的经验和积累来写,并没有严格查阅资料。限于水平和专业性,里面如果有错漏或者表达不当的地方,希望大家指正,共同进步。


end


往期笔记:

【Linux笔记】嵌入式Linux驱动基础

【Linux笔记】LED驱动程序

【Linux笔记】软件分层、分离、抽象思想

【Linux笔记】挂载网络文件系统

《一些函数、变量命名法及代码规范》

《C语言、嵌入式重点知识:回调函数》




长按关注我们,不错过每一篇好文


点个在看再走呗!
 

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

荷兰瓦格宁根2026年3月26日 /美通社/ -- 联合利华饮食策划2026 Future Menus未来食尚报告全球发布盛典隆重举行。本次盛典汇聚全球数百位专业主厨、餐饮经营者与顶级大厨,以国际视野深入本土洞察为核心,...

关键字: 数字化 人工智能 FUTURE NAND

与Salesforce达成全新无限制智能体企业许可协议,推动智能体AI在主要市场快速扩展 该协议为Adecco到2026年底实现超过50%收入由智能体AI驱动的目标...

关键字: ECC GROUP 智能体 许可协议

上海2025年11月7日 /美通社/ -- 11月7日,在第八届中国国际进口博览会(以下简称"进博会")上,立邦与科思创宣布达成战略合作,双方将围绕汽车和工业涂料两大领域深化合作,共同开发高...

关键字: BSP NAND 碳材料 汽车行业

上海2025年9月25日 /美通社/ -- 近日,德科集团(The Adecco Group)(瑞士证券交易所代码:ADEN)已与微软(Microsoft)(纳斯达克证券交易所代码:MSFT)续签战略合作协议,开启为期六...

关键字: 微软 AD ECC GROUP

上海2025年8月5日 /美通社/ -- 2025年7月30日,上海"2025思旗奖(AIflag Awards)"颁奖盛典上,FESCO Adecco外企德科上海公司凭借在人力资源管理与A...

关键字: ECC AI AD BSP

AI算力与数据中心规模持续扩张,存储器纠错码(ECC)技术已成为保障数据完整性的核心防线。从硬件加速架构到算法优化,ECC技术正通过多维度创新,将内存错误率降低至每万亿小时1次以下,为关键任务系统提供接近零故障的可靠性保...

关键字: 存储器 ECC

深圳2025年4月24日 /美通社/ -- 4月23日,2025上海国际车展盛大启幕,全球汽车产业的目光聚焦于这场科技与创新的盛宴。在众多展示亮点中,汽车AI+应用无疑是最大的热点之一,“驾控超级大脑”技术概念、车机交互...

关键字: GB EMMC Flash PS

深圳2025年4月18日 /美通社/ -- 2025年4月23日至5月2日,上海国际车展将在国家会展中心(上海)盛大开幕。这场备受瞩目的行业盛会,将汇聚全球汽车产业的目光,各大汽车品牌也将纷纷展示最新研发成果,成为科技与...

关键字: 全栈 EMMC 断电 T-BOX

3月27日消息,近期,随着内存市场开始迎来复苏,多家供应商纷纷调涨价格以应对接下来的市场变化,继闪迪传出调涨价格之后,美光也宣布了其涨价计划。

关键字: 美光 NAND

深圳2025年2月20日 /美通社/ -- 1月,江波龙推出了7.2mm×7.2mm的超小尺寸eMMC*,为AI智能穿戴设备的物理空间优化提供了全新的存储解决方案。继这款创新封装存储产品问世后,江波龙再次推出穿戴存储力作...

关键字: 智能穿戴 智能穿戴设备 EMMC GB
关闭