eMMC vs Nand

eMMC vs Nand

eMMC 和 Nand 是嵌入式系统中比较常见的两种存储介质。

区别

它们有什么异同呢?通过下面这张图可以做一个简单的概括:

这里面的的 Host Processor 指的是我们嵌入式主板上的 MCU 或者 CPU,比如 S3C2440、i.MX6ULL,RK3399 这些嵌入式处理器。

可以看到 eMMC 其实是在 Nand flash 的基础上封装了一个 Flash Controller,然后和 Host Processor 连接,而 NAND flash 是直接和 Host Processor 连接。

如果找一块 Nand 或者 eMMC 的电路板,还是比较容易区分它们的:

eMMC 一般是 BGA 封装,pin 脚在芯片底部,Nand Flash 一般是 TSOP 封装,芯片 pin 脚在芯片左右两边,所以从一般从芯片 pin 脚上就可以区分它们。

由于 Nand Flash 自身的特性,比较容易有坏块,而且有读写寿命限制,根据构造的不同(SLC、 MLC、 TLC),它的写寿命从 100000 次到 4000 次不等,所以我们在使用 Nand flash 的时候,并不是直接把数据写进去读出来这么简单,而是要通过一套叫做 FTL(全称 Flash translation layer) 的软件,对 Nand 进行管理,做坏块检测、ECC 校验,甚至读写速度优化。 FTL 软件的设计难度比较大,因此各大 SOC 芯片厂家一般都会投入人力去做专门优化,因而这部分软件一般也是不开源的。

所以如果我们在产品设计上想直接使用 Nand Flash,那就一定要在软件上实现 FTL,如果这方面经验丰富,可以自己设计,如果短时间做不出来,也有带有 FTL 功能的开源文件系统可以使用、比如UBIFS、JFFS2、YAFFS 等文件系统。可以看到,直接使用 Nand flash 的工作量还是比较大的。

为了解决这种问题,eMMC 出现了——一些具有强大 FTL 研发能力的厂家,比如三星、Sandisk,它们把 Nand flash 颗粒和 一个 MCU 作为 Flash Controller 封装到一起,在这个 MCU 上实现前面说的坏块检测、磨损平衡、读写加速等 FTL 功能,然后再通过一个标准的接口和 Host Processor 对接,Host Processor 只需要发送简单的读写命令,就可以实现数据的快速读写。一般情况下,一个 Flash Controller 可以和多个 Nand flash 颗粒封装到一起,而且 MCU 上面带有缓存,Host Processer 写过来一笔数据,Flash controller 可以把这笔数据并行分发到不同的 Flash 颗粒上,所以一般我们看到 eMMC 颗粒的读写速度要比单纯的 Nand Flash 快很多。

支持 eMMC 5.x 协议的 eMMC 顺序读速度可以达到 400MB 以上。

而单纯的 Nand,读写速度就慢了很多,只有几十 MB 甚至几 MB。

如何选型

上面这两幅图分别来自东芝和三星官网,它们是比较专业的 Nand 和 eMMC 生产商。

这个表格里面有两个重要的参数,一个是容量,一个是工作温度。

单纯的 Nand Flash 一般容量都比较小,大部分 1GB ~ 16GB,而 eMMC 的容量就大了很多,能到 256GB。

温度和具体型号有关,有的最低温度可以到零下 40 度,有的只能工作在零度以上。

所以,如果你的产品需要考虑温度、容量,这就是两个很重要的选型依据,当然,价格上eMMC 一般会比 Nand 贵。

另外一个选型依据就是软件复杂度,eMMC 由于不需要 FTL,软件会简单很多,开源的 U-Boot、Linux Kernel ,只要有对应的 MMC 控制器驱动,拿来就能直接用,而 Nand 除了控制器驱动外,还要考虑 FTL,这个用起来会有很大的限制。

如果你的产品比较在意启动速度,数据读写速度,那一般你都需要选择性能更好的 eMMC。

如果是买开发板的话,我肯定选 eMMC —— 性能好,软件通用啊!

更多原创文章请扫码关注微信公众号:HackforFun

eMMCNAND Flash都是非易失性闪存存储器,它们都广泛应用于移动设备、嵌入式系统消费电子产品中。虽然它们都是闪存存储器,但在一些方面还是有一些区别的。 1. 接口协议 eMMCNAND Flash的接口协议不同。eMMC是一种标准化的接口协议,用于在ARM处理器闪存芯片之间传输数据。而NAND Flash则需要自定义接口协议,因为不同厂商的NAND Flash存储器可能存在不同的接口协议。 2. 集成度 eMMC通常集成在处理器的系统板上,而NAND Flash则需要单独设计一个芯片来实现存储功能。这意味着eMMC的集成度更高,更容易实现。 3. 性能 eMMC的性能通常比NAND Flash要好,因为eMMC采用了一些特殊的技术来提高数据传输速度,例如高速随机读写、数据重排等功能。而NAND Flash通常需要通过额外的控制器来实现这些功能,导致性能相对较低。 4. 可靠性 eMMC通常具有更高的可靠性,因为它集成了一些特殊的功能,例如坏块管理、数据重排、数据加密等功能,可以提高数据的安全性可靠性。而NAND Flash则需要通过独立的控制器来实现这些功能,可能会导致一些问题。 总的来说,eMMCNAND Flash都是非常有用的存储介质,它们各有优缺点,可以根据具体的应用场景来选择。如果需要高性能、高可靠性的存储介质,可以考虑使用eMMC;如果需要自定义接口协议、较低的成本更高的灵活性,可以选择NAND Flash。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值