OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5627|回复: 4

eMMC 和 Nand 的差异,你知道吗

[复制链接]

6

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-11-8
在线时间
8 小时
发表于 2019-11-11 10:04:08 | 显示全部楼层 |阅读模式
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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-11 17:40:19 | 显示全部楼层
成功没有捷径
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-11 17:40:41 | 显示全部楼层
感谢楼主分享!!!
成功没有捷径
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2017-5-28
在线时间
23 小时
发表于 2019-11-22 09:13:37 | 显示全部楼层
stm32 可以用emmc吗?
回复 支持 反对

使用道具 举报

6

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-11-8
在线时间
8 小时
 楼主| 发表于 2019-11-22 14:21:23 | 显示全部楼层
Deven 发表于 2019-11-22 09:13
stm32 可以用emmc吗?

看stm32 的 reference manual,看是否有emmc 控制器,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表