三八资料网

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

三八资料网 门户首页 家电维修 查看内容

eMMC分区详解

2020-2-19 13:10| 发布者: 南召修电视| 查看: 56| 评论: 0

摘要: 最近总结了一下关于eMMC分区的一些资料,在此分享给大家,希望对大家在这方面的工作有所帮助: 大家一般所熟悉的分区的概念是在逻辑上将一个磁盘或存储设备分为几个区,每个区当做独立磁盘,以方便使用和管理。例如 ...

最近总结了一下关于eMMC分区的一些资料,在此分享给大家,希望对大家在这方面的工作有所帮助:

      大家一般所熟悉的分区的概念是在逻辑上将一个磁盘或存储设备分为几个区,每个区当做独立磁盘,以方便使用和管理。例如第一个磁盘的第一个分区叫做sda1,第二个磁盘的第二个分区叫做sda2;第二个磁盘的第一个分区叫做sdb1,第二个磁盘的第二个分区叫做sdb2

      大家所最为熟知的分区方式同时也是最主流的主要有两种:MBRMaster Boot Record)和GPTGUID Partition Table)。前者应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式),而后者主要是针对MBR的一些缺点进行了改进同时还可以兼容MBR并且支持2TB以上的存储(MBR不支持2TB以上的存储设备)。

      Android 2.x.x 版本上使用的是MBR4.0版本以后就是使用的GPT分区方式。

 

      注意,不管是MBR还是GPT,他们的分区都是指逻辑上的!!!即通过软件实现的,文件系统级别的。而我现在要说明的是eMMC本身自己的分区,即物理上的,不是通过软件就能实现的分区。

      EMMC的分区有一些是AP不能修改的(如BOOT1BOOT2RPMB分区),有一些是可以通过特定的命令和寄存器就可以修改的(如Enhanced PartitionGPAP)。下面就来集体说明一下:

      通常,从厂家出来的eMMC 主要由这几个部分组成:

1.    BOOT Area Partition 1

2.    BOOT Area Partition 2

3.    RPMB

4.    User Data Area

5.    Vender private area

上面这5个部分中前4项是AP可以通过配置寄存器进行读写并且User Data Area还可以进行分区配置的,如上图所示;下面来对上面的5个部分做一个详细说明:

1.    Boot 1 & Boot 2

这两个分区是由厂家在生产过程中配置好了的,并且其大小是不能由AP进行配置的,当然,如果你的公司够牛,量足够大,并且也有这个需求的时候可以去要求厂家重新配置此区域大小,给你专门供货。

Boot 1 Boot 2这两个区域在存储的稳定性、可靠性及擦除次数上都远比UDA要好(至于原因请往后看),所以很多chipset上都会使用这两个区域来存放一下关键数据,如boot imagedefault 配置参数等等。当然不同的chipset的配置方法也不尽相同。这个可以找chipset的工程师询问。据笔者所知:以大陆市占最大的两家chipset为例,MTK使用UDA来存放boot data,而使用boot area来存放配置参数;Qualcomm则使用Boot 1 来存放boot databoot 2 来存放配置参数。

另外,不同的eMMC版本一般对Boot areaRPMB的容量大小需求也不同,如下作一个简单的参考:

 

2.    RPMB

RPMBReplay Protected Memory Block的缩写,他的存在目的是用来给系统存放一些特殊的、需要进行访问授权的数据;他的请求及回应类型如下所:

      据笔者所知,目前大陆的手机及平板厂商还没有一家使用到此区域的。

3.    UDA

User Data Area就是AP及用户可以进行读写存储的区域,通常其大小为整块EMMC表示大小的93%左右,即4GBeMMC UDA的区域只有4GB*93%=3809MB

      之前说的BOOT1&2RPMBUDA区域我们都可以认为他们在物理上是独立的(当然都是存在于同一块die上)。即他们各自的物理起始地址都是0x0。这个在出厂的时候就会设置完成。下面我们就来说两种可以在物理上进行独立分区的方式:

a         GPAP

GPAPGeneral Purpose Area PartitionseMMC spec上定义每个eMMC 最多可以通过配置寄存器来定义4GPAP

      GPAP配置定义完成之后每一个GPAP的起始地址都为0x0;即可以相应地将其认为是独立的一块区域。只是在存放数据的时候会需要从新根据他的起始地址进行计算然后再存储数据。这样必然会增加一定的工作量;据笔者所知,目前大陆的手机及平板几乎没有用到这个功能。都是使用一整块的UDA,然后通过文件系统去进行逻辑上的分区使用。

      我想肯定会有读者想问那这个功能到底有什么用呢?我想说eMMC是一个通过的存储设备,并不止是为手机和平板使用。当一个设备有多个CPU的时候并且他们的功能还不同时,这个时候使用GPAP这个功能就非常方便了。

b        Enhanced Partition

Enhanced Partition这也是一个在手机及平板上使用较少的功能。为什么通过配置原本的UDA就可以变成“Enhanced”的呢?既然这么有用,为什么不将整个UDA配置成为”Enhanced”的呢?别着急,我来一一作答。

我们知道eMMC只是指他的接口标准,而他真正的存储介质还是NAND Flash, NAND又分为SLCMLCTLC(详细区别请参考我之前的文章),他们的稳定性、可靠性和擦除次数又有很大区别,当然中国厂商最关心的成本也相差很大;目前市场上主流的eMMC还是以MLCNAND 存储介质为主,而TLCeMMC也在逐渐的增加。其中以SamsungTLC emmc最为成熟市占率也最高。我们这里先以MLCEMMC来进行介绍:

      以现在市面上最先进的NAND制程20nm


路过

雷人

握手

鲜花

鸡蛋

最新评论

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.