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