《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 其他 > eMMC分區(qū)詳解

eMMC分區(qū)詳解

2015-04-24
關(guān)鍵詞: eMMC MBR GPT

     最近總結(jié)了一下關(guān)于eMMC分區(qū)的一些資料,在此分享給大家,希望對(duì)大家在這方面的工作有所幫助:

      大家一般所熟悉的分區(qū)的概念是在邏輯上將一個(gè)磁盤或存儲(chǔ)設(shè)備分為幾個(gè)區(qū),每個(gè)區(qū)當(dāng)做獨(dú)立磁盤,以方便使用和管理。例如第一個(gè)磁盤的第一個(gè)分區(qū)叫做sda1,第二個(gè)磁盤的第二個(gè)分區(qū)叫做sda2;第二個(gè)磁盤的第一個(gè)分區(qū)叫做sdb1,第二個(gè)磁盤的第二個(gè)分區(qū)叫做sdb2。

      大家所最為熟知的分區(qū)方式同時(shí)也是最主流的主要有兩種:MBR(Master Boot Record)和GPT(GUID Partition Table)。前者應(yīng)用于絕大多數(shù)使用BIOS引導(dǎo)的PC設(shè)備(蘋果使用EFI的方式),而后者主要是針對(duì)MBR的一些缺點(diǎn)進(jìn)行了改進(jìn)同時(shí)還可以兼容MBR并且支持2TB以上的存儲(chǔ)(MBR不支持2TB以上的存儲(chǔ)設(shè)備)。

     Android 2.x.x 版本上使用的是MBR,4.0版本以后就是使用的GPT分區(qū)方式。

      注意,不管是MBR還是GPT,他們的分區(qū)都是指“邏輯上”的?。。〖赐ㄟ^軟件實(shí)現(xiàn)的,文件系統(tǒng)級(jí)別的。而我現(xiàn)在要說明的是eMMC本身自己的分區(qū),即物理上的,不是通過軟件就能實(shí)現(xiàn)的分區(qū)。

     EMMC的分區(qū)有一些是AP不能修改的(如BOOT1、BOOT2和RPMB分區(qū)),有一些是可以通過特定的命令和寄存器就可以修改的(如Enhanced Partition和GPAP)。下面就來集體說明一下:

      通常,從廠家出來的eMMC 主要由這幾個(gè)部分組成:

1.    BOOT Area Partition 1

2.    BOOT Area Partition 2

3.    RPMB

4.    User Data Area

5.    Vender private area

001GK0Jvty6Hx0APH3Gf8&690.jpg


上面這5個(gè)部分中前4項(xiàng)是AP可以通過配置寄存器進(jìn)行讀寫并且User Data Area還可以進(jìn)行分區(qū)配置的,如上圖所示;下面來對(duì)上面的5個(gè)部分做一個(gè)詳細(xì)說明:

1.    Boot 1 & Boot 2

這兩個(gè)分區(qū)是由廠家在生產(chǎn)過程中配置好了的,并且其大小是不能由AP進(jìn)行配置的,當(dāng)然,如果你的公司夠牛,量足夠大,并且也有這個(gè)需求的時(shí)候可以去要求廠家重新配置此區(qū)域大小,給你專門供貨。

Boot 1 和Boot 2這兩個(gè)區(qū)域在存儲(chǔ)的穩(wěn)定性、可靠性及擦除次數(shù)上都遠(yuǎn)比UDA要好(至于原因請往后看),所以很多chipset上都會(huì)使用這兩個(gè)區(qū)域來存放一下關(guān)鍵數(shù)據(jù),如boot image,default 配置參數(shù)等等。當(dāng)然不同的chipset的配置方法也不盡相同。這個(gè)可以找chipset的工程師詢問。據(jù)筆者所知:以大陸市占最大的兩家chipset為例,MTK使用UDA來存放boot data,而使用boot area來存放配置參數(shù);Qualcomm則使用Boot 1 來存放boot data,boot 2 來存放配置參數(shù)。

另外,不同的eMMC版本一般對(duì)Boot area和RPMB的容量大小需求也不同,如下作一個(gè)簡單的參考:

001GK0Jvty6Hx0GN4zm78&690.jpg


2.    RPMB

RPMB是Replay Protected Memory Block的縮寫,他的存在目的是用來給系統(tǒng)存放一些特殊的、需要進(jìn)行訪問授權(quán)的數(shù)據(jù);他的請求及回應(yīng)類型如下所:

001GK0Jvty6Hx0JDCuN65&690.jpg


      據(jù)筆者所知,目前大陸的手機(jī)及平板廠商還沒有一家使用到此區(qū)域的。

3.    UDA

User Data Area就是AP及用戶可以進(jìn)行讀寫存儲(chǔ)的區(qū)域,通常其大小為整塊EMMC表示大小的93%左右,即4GB的eMMC UDA的區(qū)域只有4GB*93%=3809MB。

001GK0Jvty6Hx0MAy7wfa&690.jpg


      之前說的BOOT1&2、RPMB和UDA區(qū)域我們都可以認(rèn)為他們在物理上是獨(dú)立的(當(dāng)然都是存在于同一塊die上)。即他們各自的物理起始地址都是0x0。這個(gè)在出廠的時(shí)候就會(huì)設(shè)置完成。下面我們就來說兩種可以在物理上進(jìn)行獨(dú)立分區(qū)的方式:

a)   GPAP

GPAP即General Purpose Area Partitions,eMMC 的spec上定義每個(gè)eMMC 最多可以通過配置寄存器來定義4個(gè)GPAP:

001GK0Jvty6Hx0R6Gh6ac&690.jpg

001GK0Jvty6Hx0T8hWu5e&690.jpg


     GPAP配置定義完成之后每一個(gè)GPAP的起始地址都為0x0;即可以相應(yīng)地將其認(rèn)為是獨(dú)立的一塊區(qū)域。只是在存放數(shù)據(jù)的時(shí)候會(huì)需要從新根據(jù)他的起始地址進(jìn)行計(jì)算然后再存儲(chǔ)數(shù)據(jù)。這樣必然會(huì)增加一定的工作量;據(jù)筆者所知,目前大陸的手機(jī)及平板幾乎沒有用到這個(gè)功能。都是使用一整塊的UDA,然后通過文件系統(tǒng)去進(jìn)行邏輯上的分區(qū)使用。

      我想肯定會(huì)有讀者想問那這個(gè)功能到底有什么用呢?我想說eMMC是一個(gè)通過的存儲(chǔ)設(shè)備,并不止是為手機(jī)和平板使用。當(dāng)一個(gè)設(shè)備有多個(gè)CPU的時(shí)候并且他們的功能還不同時(shí),這個(gè)時(shí)候使用GPAP這個(gè)功能就非常方便了。

b)        Enhanced Partition

Enhanced Partition這也是一個(gè)在手機(jī)及平板上使用較少的功能。為什么通過配置原本的UDA就可以變成“Enhanced”的呢?既然這么有用,為什么不將整個(gè)UDA配置成為”Enhanced”的呢?別著急,我來一一作答。

我們知道eMMC只是指他的接口標(biāo)準(zhǔn),而他真正的存儲(chǔ)介質(zhì)還是NAND Flash, 而NAND又分為SLC、MLC和TLC(詳細(xì)區(qū)別請參考我之前的文章),他們的穩(wěn)定性、可靠性和擦除次數(shù)又有很大區(qū)別,當(dāng)然中國廠商最關(guān)心的成本也相差很大;目前市場上主流的eMMC還是以MLC的NAND 存儲(chǔ)介質(zhì)為主,而TLC的eMMC也在逐漸的增加。其中以Samsung的TLC 的emmc最為成熟市占率也最高。我們這里先以MLC的EMMC來進(jìn)行介紹:

      以現(xiàn)在市面上最先進(jìn)的NAND制程20nm的MLC為例,擦除次數(shù)大概在3000~5000cycle。而SLC的擦除次數(shù)則在25000~40000cycle。很明顯SLC 要比MLC性能更好,數(shù)據(jù)存儲(chǔ)更穩(wěn)定。

001GK0Jvty6Hx0WPRhMea&690.jpg

001GK0Jvty6Hx12hogIa4&690.jpg



      而我們這里介紹的Enhanced Partition的主要功能就是將MLC配置成為SLC?,F(xiàn)在大家明白他為什么被稱之為“Enhanced”的了!是相對(duì)于MLC(也就是default storage media)來說的。

      當(dāng)然,從MLC配置為SLC不是沒有代價(jià)的,這個(gè)代價(jià)自然就是容量變小,會(huì)變多小呢?容量只有原來的一半!!!原本1GB的MLC通過配置成SLC就只剩下512MB了,你說誰會(huì)愿意這樣去大容量地轉(zhuǎn)換呢?

      據(jù)筆者所知,目前使用過這個(gè)功能的就只有臺(tái)灣的HTC,他們是用來存儲(chǔ)boot data。另外,大陸也有一家大廠正在嘗試使用Enhanced Partition來做為swap 虛擬內(nèi)存使用。

4.    Vender Private Area

在eMMC里面除了AP能操作(即可識(shí)別并且可以通過地址進(jìn)行訪問)的boot 1&2、RPMB和UDA之外,其實(shí)還有一小部分區(qū)域是AP看不見也不能進(jìn)行操作的。這部分區(qū)域是由生產(chǎn)廠家預(yù)留的,他主要是用來存放這樣一些內(nèi)容: eMMC的FW(想知道是什么請參考我之前的文章),eMMC在boot的時(shí)候的code,F(xiàn)TL(Flash Transilation Layer)以及在廠家生產(chǎn)過程中產(chǎn)生的壞塊等等。

PS: 不是所有廠家的eMMC都支持Enhanced Partition這個(gè)功能,但是只要這個(gè)eMMC是支持這個(gè)功能的那么他的BOOT Area和RPMB就必須就Enhanced storage media。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。