ICMAX還原最初始的嵌入式存儲芯片EMMC的構(gòu)造
eMMC 一直是嵌入式存儲市場最主流的選擇,除了讀寫速度快、性價比高外,在節(jié)省空間方面也是相當(dāng)優(yōu)秀,今天宏旺半導(dǎo)體就和大家詳細(xì)聊聊eMMC。
eMMC 是 embedded MultiMediaCard 的簡稱,MultiMediaCard,即 MMC, 是一種閃存卡(Flash Memory Card)標(biāo)準(zhǔn),它定義了 MMC 的架構(gòu)以及訪問 Flash Memory 的接口和協(xié)議。而 eMMC 則是對 MMC 的一個拓展,以滿足更高標(biāo)準(zhǔn)的性能、成本、體積、穩(wěn)定、易用等的需求。
eMMC是 Flash Memory 的一種,在詳細(xì)介紹 eMMC 之前,先簡單介紹一下 Flash Memory。Flash Memory 是一種非易失性的存儲器,在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等,在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。另外,絕大部分的 U 盤、SDCard 等移動存儲設(shè)備也都是使用 Flash Memory 作為存儲介質(zhì)。
從上圖中可以看出NOR Flash 與NAND Flash均屬于Flash Memory,下次再和大家詳細(xì)說說它們之間的差異。在了解eMMC組成部分之前我們先了解一下NAND Flash ,它是一種存儲介質(zhì),如果要在上面讀寫數(shù)據(jù),外部要加主控和電路設(shè)計。而eMMC是NAND flash+主控IC,對外的接口協(xié)議與SD、TF卡類似,對廠家而言簡化了電路設(shè)計,降低了成本。使用eMMC的好處是,除了得到大容量的空間,還有就是emmc可以管理NAND (壞塊處理,ECC)等。
eMMC 的整體架構(gòu)如下圖片所示:
圖片: eMMC 整體架構(gòu)
詳細(xì)說來eMMC 內(nèi)部主要可以分為 Flash Memory、Flash Controller 以及 Host Interface 三大部分。
1. Flash Memory
Flash Memory 是一種非易失性的存儲器,通常在嵌入式系統(tǒng)中用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等,類似與 PC 系統(tǒng)中的硬盤。
目前,絕大部分手機和平板等移動設(shè)備中所使用的 eMMC 內(nèi)部的 Flash Memory 都屬于 NAND Flash,eMMC 在內(nèi)部對 Flash Memory 劃分了幾個主要區(qū)域,如下圖所示:
圖片:eMMC 內(nèi)部分區(qū)
① BOOT Area Partition 1 & 2
此分區(qū)主要是為了支持從 eMMC 啟動系統(tǒng)而設(shè)計的。
該分區(qū)的數(shù)據(jù),在 eMMC 上電后,可以通過很簡單的協(xié)議就可以讀取出來。同時,大部分的 SOC 都可以通過 GPIO 或者 FUSE 的配置,讓 ROM 代碼在上電后,將 eMMC BOOT 分區(qū)的內(nèi)容加載到 SOC 內(nèi)部的 SRAM 中執(zhí)行。
② RPMB Partition
RPMB 是 Replay Protected Memory Block 的簡稱,它通過 HMAC SHA-256 和 Write Counter 來保證保存在 RPMB 內(nèi)部的數(shù)據(jù)不被非法篡改。
在實際應(yīng)用中,RPMB 分區(qū)通常用來保存安全相關(guān)的數(shù)據(jù),例如指紋數(shù)據(jù)、安全支付相關(guān)的密鑰等。
③ General Purpose Partition 1~4
此區(qū)域則主要用于存儲系統(tǒng)或者用戶數(shù)據(jù)。 General Purpose Partition 在芯片出廠時,通常是不存在的,需要主動進行配置后,才會存在。
④ User Data Area
此區(qū)域則主要用于存儲系統(tǒng)和用戶數(shù)據(jù)。
User Data Area 通常會進行再分區(qū),例如 Android 系統(tǒng)中,通常在此區(qū)域分出 boot、system、userdata 等分區(qū)。
2. Flash Controller
NAND Flash 直接接入 Host 時,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系統(tǒng)來做壞塊管理、ECC等的功能。
eMMC 則在其內(nèi)部集成了 Flash Controller,用于完成擦寫均衡、壞塊管理、ECC校驗等功能。相比于直接將 NAND Flash 接入到 Host 端,eMMC 屏蔽了 NAND Flash 的物理特性,可以減少 Host 端軟件的復(fù)雜度,讓 Host 端專注于上層業(yè)務(wù),省去對 NAND Flash 進行特殊的處理。同時,eMMC 通過使用 Cache、Memory Array 等技術(shù),在讀寫性能上也比 NAND Flash 要好很多。
圖片:NAND Flash 與 eMMC
3. Host Interface
eMMC 與 Host 之間的連接如下圖所示:
圖片:eMMC Interface
各個信號的用途如下所示:
① CLK
用于同步的時鐘信號
② Data Strobe
此信號是從 Device 端輸出的時鐘信號,頻率和 CLK 信號相同,用于同步從 Device 端輸出的數(shù)據(jù)。該信號在 eMMC 5.0 中引入。
③ CMD
此信號用于發(fā)送 Host 的 command 和 Device 的 response。
④ DAT0-7
用于傳輸數(shù)據(jù)的 8 bit 總線。
Host 與 eMMC 之間的通信都是 Host 以一個 Command 開始發(fā)起的。針對不同的 Command,Device 會做出不同的響應(yīng)。
如上基本就是eMMC工作原理,eMMC內(nèi)部分三大塊,它的出現(xiàn)就是為了滿足對存儲容量有較高要求的消費電子產(chǎn)品,例如手機、平板等,提供標(biāo)準(zhǔn)接口并管理閃存,使得手機廠商就能專注于產(chǎn)品開發(fā)的其它部分,并縮短向市場推出產(chǎn)品的時間。部分資料參考蝸??萍?,歡迎關(guān)注宏旺半導(dǎo)體,后期會帶來存儲領(lǐng)域更專業(yè)的文章。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)