[其他模拟产品-信号链]

【转】emmc到底是什么?为什么会火?

[复制链接]
1065|3
手机看帖
扫描二维码
随时随地手机跟帖
风萧寒|  楼主 | 2017-2-13 12:36 | 显示全部楼层 |阅读模式

eMMC (Embedded Multi Media Card) 为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,同样的重要。


为什么火

每次NAND Flash制程技术改朝换代,包括70纳米演进至50纳米,再演进至40纳米或30纳米制程技术,手机客户也都要重新设计

重新设计什么? 因为你要通讯,就需要通讯的电压,时序,甚至接口命令,这些都随着不同厂商,不同制程技术而不同,你作为手机制造商或者soc厂商,想要把每种新的emmc集成到你的产品中,就要根据这些新的特性来花时间设计。

soc这边会有一个controller(比如nand flash controller),你要根据采用的nand flash特性来配置nand flash controller,以达到成功通讯的目的),但半导体产品每1年制程技术都会推陈出新,存储器问题也拖累手机新机种推出的速度,

因此像eMMC这种把所有存储器和管理NAND Flash的控制芯片都包在1颗MCP上的概念,逐渐风行起来。


接口的标准化

emmc内部根本的存储介质还是 NAND FLASH,而不是一种全新的storage。 但是他定义并规范了统一接口比如: emmc 4.3, 4.4, 4.5(类似于usb 2.0, 3.0 这样的), 把和nand  flash 的通讯 封装在emmc内部做好,而提供给外部的接口就是 emmc 接口。 同理, 外部,比如soc就需要有个 sdmmc controller, 并且宣布支持emmc4.3,4.4,那么,你需要做的就是, 简单的,根据选用的emmc的版本号,来给sdmmc controller来选择一个通讯的接口版本号4.4。
emmc 的controller 叫做:sdmmc controller/ sd controller


CPU启动过程

cpu 固化一段code,上电执行。

另外,cpu上可能会同时支持几个instance来挂载storage。比如3个instance,第三个instance支持的种类是emmc。

再比如,有可能固话的code会去读一个叫flash.cfg的文件,你在flash.cfg中指定 存贮介质为:type=emmc, instance=3。 这样cpu 和 emmc就衔接起来了。
为什么要有多个引导(boot):因为有的在正式进入到os之前,需要有很多不同种类的工作,从emmc中读取初始指令到ram,用来做secury作用的一段code也被分成一个单独的boot, 配置设备的基本功能例如usb,uart,display(bootloader)。每个种类的工作,都可以被分为一个boot。


DDR

手机上除了emmc这个storage外,还有个叫dram(动态内存)分为ddr1,ddr2,sdr,sdram, 之类的,统称为dram, 现在手机上很多用ddr的

cpu内部有一块很小的sram(静态内存)

设计理念

eMMC的设计概念,就是为了简化手机内存储器的使用,将NAND Flash芯片和控制芯片设计成1颗MCP芯片,手机客户只需要采购eMMC芯片,放进新手机中,不需处理其它繁复的NAND Flash兼容性和管理问题,最大优点是缩短新产品的上市周期和研发成本,加速产品的推陈出新速度。


x86 v.s. arm

x86 CPU Reset之后的第一个地址是0xFFFFF000,这个是ROM地址,所以必须有SPI Nor做地址映射。

arm CPU开机的时候会把Nand第一个Bank或EMMC第一个块内容放到DDR里面,然后跳转到对应地址


相关帖子

biechedan| | 2017-2-13 19:10 | 显示全部楼层
这个是DDR3之类的吗

使用特权

评论回复
biechedan| | 2017-2-13 19:11 | 显示全部楼层
在原有内置存储器的基础上,又额外加了一个控制芯片

使用特权

评论回复
biechedan| | 2017-2-13 19:12 | 显示全部楼层
在原有内置存储器的基础上,又额外加了一个控制芯片

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

134

帖子

3

粉丝