eMMC 是 embedded MultiMediaCard 的簡(jiǎn)稱。MultiMediaCard,即 MMC, 是一種閃存卡(Flash Memory Card)標(biāo)準(zhǔn),它定義了 MMC 的架構(gòu)以及訪問(wèn)Flash Memory 的接口和協(xié)議。而 eMMC 則是對(duì) MMC 的一個(gè)拓展,以滿足更高標(biāo)準(zhǔn)的性能、成本、體積、穩(wěn)定、易用等的需求。
eMMC 的整體架構(gòu)如下圖片所示:
圖片:eMMC 整體架構(gòu)
eMMC 內(nèi)部主要可以分為 Flash Memory、Flash Controller 以及 Host Interface 三大部分。
Flash Memory
Flash Memory 是一種非易失性的存儲(chǔ)器,通常在嵌入式系統(tǒng)中用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等,類似與 PC 系統(tǒng)中的硬盤(pán)。
目前,絕大部分手機(jī)和平板等移動(dòng)設(shè)備中所使用的 eMMC 內(nèi)部的 Flash Memory 都屬于 NAND Flash,關(guān)于 NAND Flash 的更多細(xì)節(jié)可以參考 Flash Memory 章節(jié)。
eMMC 在內(nèi)部對(duì) Flash Memory 劃分了幾個(gè)主要區(qū)域,如下圖所示:
圖片:eMMC 內(nèi)部分區(qū)
-
BOOT Area Partition 1 & 2
此分區(qū)主要是為了支持從 eMMC 啟動(dòng)系統(tǒng)而設(shè)計(jì)的。
該分區(qū)的數(shù)據(jù),在 eMMC 上電后,可以通過(guò)很簡(jiǎn)單的協(xié)議就可以讀取出來(lái)。同時(shí),大部分的 SOC 都可以通過(guò) GPIO 或者 FUSE 的配置,讓 ROM 代碼在上電后,將 eMMC BOOT 分區(qū)的內(nèi)容加載到 SOC 內(nèi)部的 SRAM 中執(zhí)行。
-
RPMB Partition
RPMB 是 Replay Protected Memory Block 的簡(jiǎn)稱,它通過(guò) HMAC SHA-256 和 Write Counter 來(lái)保證保存在 RPMB 內(nèi)部的數(shù)據(jù)不被非法篡改。
在實(shí)際應(yīng)用中,RPMB 分區(qū)通常用來(lái)保存安全相關(guān)的數(shù)據(jù),例如指紋數(shù)據(jù)、安全支付相關(guān)的密鑰等。
-
General Purpose Partition 1~4
此區(qū)域則主要用于存儲(chǔ)系統(tǒng)或者用戶數(shù)據(jù)。General Purpose Partition 在芯片出廠時(shí),通常是不存在的,需要主動(dòng)進(jìn)行配置后,才會(huì)存在。
-
User Data Area
此區(qū)域則主要用于存儲(chǔ)系統(tǒng)和用戶數(shù)據(jù)。
User Data Area 通常會(huì)進(jìn)行再分區(qū),例如 Android 系統(tǒng)中,通常在此區(qū)域分出 boot、system、userdata 等分區(qū)。
更多 eMMC 分區(qū)相關(guān)的細(xì)節(jié),請(qǐng)參考 eMMC 分區(qū)管理 章節(jié)。
Flash Controller
NAND Flash 直接接入 Host 時(shí),Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系統(tǒng)來(lái)做壞塊管理、ECC等的功能。
eMMC 則在其內(nèi)部集成了 Flash Controller,用于完成擦寫(xiě)均衡、壞塊管理、ECC校驗(yàn)等功能。相比于直接將 NAND Flash 接入到 Host 端,eMMC 屏蔽了 NAND Flash 的物理特性,可以減少 Host 端軟件的復(fù)雜度,讓 Host 端專注于上層業(yè)務(wù),省去對(duì) NAND Flash 進(jìn)行特殊的處理。同時(shí),eMMC 通過(guò)使用 Cache、Memory Array 等技術(shù),在讀寫(xiě)性能上也比 NAND Flash 要好很多。
圖片:NAND Flash 與 eMMC
Host Interface
eMMC 與 Host 之間的連接如下圖所示:
圖片:eMMC Interface
各個(gè)信號(hào)的用途如下所示:
CLK
用于同步的時(shí)鐘信號(hào)
Data Strobe
此信號(hào)是從 Device 端輸出的時(shí)鐘信號(hào),頻率和 CLK 信號(hào)相同,用于同步從 Device 端輸出的數(shù)據(jù)。該信號(hào)在 eMMC 5.0 中引入。
CMD
此信號(hào)用于發(fā)送 Host 的 command 和 Device 的 response。
DAT0-7
用于傳輸數(shù)據(jù)的 8 bit 總線。
Host 與 eMMC 之間的通信都是 Host 以一個(gè) Command 開(kāi)始發(fā)起的。針對(duì)不同的 Command,Device 會(huì)做出不同的響應(yīng)。
-
NAND
+關(guān)注
關(guān)注
16文章
1682瀏覽量
136161 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7492瀏覽量
163842 -
GPIO
+關(guān)注
關(guān)注
16文章
1204瀏覽量
52104 -
SRAM控制器
+關(guān)注
關(guān)注
0文章
11瀏覽量
5893 -
emmc
+關(guān)注
關(guān)注
7文章
216瀏覽量
52746
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論