ICMAX講解存儲芯片 emmc、Nand flash、Nor flash之間有什麼區別

隨着存儲領域的發展,有很多不同的存儲介質,今天ICMAX就帶大家來分一分emmc、Nand flash、Nor flash之間的區別。

一、定義及區別
emmc:全稱爲embeded MultiMedia Card,是一種嵌入式非易失性存儲器系統,由Nand flash和Nand flash控制器組成,以BGA方式封裝在一款chip上。

Nand flash:一種存儲數據介質;若要讀取其中的數據,需要外接的主控電路。

Nor flash:也是一種存儲介質;它的存儲空間一般比較小,但它可以不用初始化,可以在其內部運行程序,一般在其存儲一些初始化內存的固件代碼。

這裏主要重點講的是emmc 和Nand flash 之間的區別,主要區別如下:

(1) 在組成結構上:emmc存儲芯片簡化了存儲器的設計,將NAND Flash芯片和控制芯片以MCP技術封裝在一起,省去零組件耗用電路板的面積,同時也讓手機廠商或是計算機廠商在設計新產品時的便利性大大提高。而NAND Flash僅僅只是一塊存儲設備,若要進行數據傳輸的話,只能通過主機端的控制器來進行操作,兩者的結構圖如下:
ICMAX講解存儲芯片 emmc、Nand flash、Nor flash之間有什麼區別
(2) 在功能上:eMMC則在其內部集成了 Flash Controller,包括了協議、擦寫均衡、壞塊管理、ECC校驗、電源管理、時鐘管理、數據存取等功能。相比於直接將NAND Flash接入到Host 端,eMMC屏蔽了 NAND Flash 的物理特性,可以減少 Host 端軟件的複雜度,讓 Host 端專注於上層業務,省去對 NAND Flash 進行特殊的處理。同時,eMMC通過使用Cache、Memory Array 等技術,在讀寫性能上也比 NAND Flash要好很多。而NAND Flash 是直接接入 Host 端的,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系統來做壞塊管理、ECC等的功能。另一方面,emmc的讀寫速度也比NAND Flash的讀寫速度快,emmc的讀寫可高達每秒50MB到100MB以上;

二、emmc的初始化和數據通信
emmc與主機之間通信的結構圖:
ICMAX講解存儲芯片 emmc、Nand flash、Nor flash之間有什麼區別
其中包括Card Interface(CMD,DATA,CLK)、Memory core interface、總線接口控制(Card Interface Controller)、電源控制、寄存器組。

圖中寄存器組的功能見下表:
ICMAX講解存儲芯片 emmc、Nand flash、Nor flash之間有什麼區別
CID: 卡身份識別寄存器 128bit,只讀, 廠家號,產品號,串號,生產日期。

RCA: 卡地址寄存器,可寫的16bit寄存器,存有Device identification模式由host分配的通信地址,host會在代碼裏面記錄這個地址,MMC則存入RCA寄存器,默認值爲0x0001。保留0x0000以用來將all device設置爲等待CMD7命令狀態。

CSD: 卡專有數據寄存器部分可讀寫128bit,卡容量,最大傳輸速率,讀寫操作的最大電流、電壓,讀寫擦出塊的最大長度等。

SCR: 卡配置寄存器, 可寫的 64bit 是否用Security特性(LINUX不支持),以及數據位寬(1bit或4bit)。

OCR: 卡操作電壓寄存器 32位, 只讀,每隔0.1V佔1位, 第31位卡上電過程是否完成。

(5)Device Identification Mode和初始化
ICMAX講解存儲芯片 emmc、Nand flash、Nor flash之間有什麼區別
MMC通過發CMD的方式來實現卡的初始化和數據通信

Device Identification Mode包括3個階段Idle State、Ready State、Identification State。

Idle State下,eMMC Device會進行內部初始化,Host需要持續發送CMD1命令,查詢eMMC Device是否已經完成初始化,同時進行工作電壓和尋址模式協商:eMMC Device 在接收到這些信息後,會將OCR的內容(MMC出廠就燒錄在裏面的卡的操作電壓值)通過 Response 返回給 Host,其中包含了 eMMC Device 是否完成初始化的標誌位、設備工作電壓範圍 Voltage Range 和存儲訪問模式 Memory Access Mode 信息。

如果 eMMC Devcie 和 Host 所支持的工作電壓和尋址模式不匹配,那麼 eMMC Device 會進入Inactive State。

Ready State,MMC完成初始化後,就會進入該階段。

在該 State 下,Host 會發送 CMD2命令,獲取eMMC Device 的CID。

CID,即 Device identification number,用於標識一個 eMMC Device。它包含了 eMMC Device 的製造商、OEM、設備名稱、設備序列號、生產年份等信息,每一個 eMMC Device 的 CID 都是唯一的,不會與其他的 eMMC Device 完全相同。

eMMC Device 接收到CMD2後,會將 127 Bits 的CID的內容通過 Response返回給 Host。

Identification State,發送完 CID 後,eMMC Device就會進入該階段。

Host 會發送參數包含 16 Bits RCA 的CMD3命令,爲eMMC Device 分配 RCA。設定完 RCA 後,eMMC Devcie 就完成了 Devcie Identification,進入 Data Transfer Mode。

注:emmc初始化和數據通信的過程,有點類似USB協議,USB控制器去發送請求給USB設備,以IN包和OUT包的形式去建立與USB設備之間的通信,默認狀態下,USB設備也是0地址的,與控制器分配設備地址。(感興趣的可以看一下USB2.0的協議,主要是第8和9章內容)

三、eMMC工作電壓和上電過程

根據工作電壓的不同,MMC卡可以分爲兩類:

High Voltage MultiMediaCard,工作電壓爲3.3V左右。

Dual Voltage MultiMediaCard,工作電壓有兩種,1.70V~1.95V和2.7V~3.6V,CPU可以根據需要切換

我所使用的eMMC實測工作電壓VCC爲2.80V~2.96V,VCCQ爲1.70V~1.82V。

其中VCC爲MMC Controller/Flash Controller的供電電壓,VCCQ爲Memory和Controller之間I/O的供電。

上電初始化階段MMC時鐘頻率爲400KHz,需要等電壓調整到它要求的VCC時(host去獲取OCR中記錄的電壓值,上面有說),MMC時鐘纔會調整到更高的正常工作頻率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章