深入講解eMMC簡(jiǎn)介
1 eMMC是什么
eMMC是embedded MultiMediaCard的簡(jiǎn)稱,即嵌入式多媒體卡,?是一種閃存卡的標(biāo)準(zhǔn),它定義了基于嵌入式多媒體卡的存儲(chǔ)系統(tǒng)的物理架構(gòu)和訪問(wèn)接口及協(xié)議,具體由電子設(shè)備工程聯(lián)合委員會(huì)JEDEC訂立和發(fā)布。它是對(duì)MMC的一個(gè)拓展,具有體積小,功耗低,容量大等優(yōu)點(diǎn),非常適合用作智能手機(jī)、平板電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備等消費(fèi)類電子設(shè)備的存儲(chǔ)介質(zhì)。
2 eMMC的構(gòu)成
eMMC是一種嵌入式、非易失的存儲(chǔ)系統(tǒng),它主要由閃存、閃存控制器和eMMC協(xié)議接口等組成,以BGA的形式封裝在一起。eMMC的構(gòu)成如下圖所示:

圖1 eMMC?系統(tǒng)結(jié)構(gòu)圖
2.1?閃存
閃存是一種非易失性存儲(chǔ)器,通常用來(lái)存放數(shù)據(jù),應(yīng)用和系統(tǒng)程序等。eMMC內(nèi)部的閃存一般都屬于Nand Flash。
2.2 閃存控制器
閃存控制器主要用來(lái)對(duì)內(nèi)部的Nand Flash進(jìn)行操作和管理。由于Nand Flash自身的物理特性,需要實(shí)現(xiàn)壞塊管理、磨損均衡、ECC等諸多功能,這些功能就是由FTL(Flash Translation Layer)來(lái)實(shí)現(xiàn)。eMMC內(nèi)部集成的閃存控制器則實(shí)現(xiàn)了FTL等功能,減少了由于不同型號(hào)Nand Flash的各種特性差異,造成的軟件開(kāi)發(fā)復(fù)雜度;同時(shí)閃存控制器也提供了Cache、Memory array、interleave等多種功能,大大提高了Nand Flash讀寫(xiě)操作性能。
2.3?eMMC接口
eMMC接口主要實(shí)現(xiàn)將eMMC接入到Host的MMC總線上,與Host進(jìn)行通信,實(shí)現(xiàn)eMMC的協(xié)議邏輯。
eMMC接口與Host之間的連接如下圖:

圖2 eMMC 接口圖
接口中各信號(hào)線的作用如下:
CLK:?時(shí)鐘信號(hào),用于Host與Device間的同步。
Data Strobe:數(shù)據(jù)鎖存信號(hào),Device端的輸出信號(hào),用于HS400模式下,頻率與CLK相同,主要用于同步從Device端輸出的數(shù)據(jù)。
CMD:?用于傳輸從Host端發(fā)出的command和Device端發(fā)出的response。
DATA0 ~ DATA7:?用于在Host和Device間傳輸數(shù)據(jù)。
Reset?:復(fù)位信號(hào)線,主要用于Host對(duì)Device進(jìn)行復(fù)位操作。
3 eMMC的工作模式
eMMC共有5種不同的工作模式,具體如下表:
表1 eMMC工作模式?

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書(shū)籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書(shū)、實(shí)戰(zhàn)項(xiàng)目及代碼)? ?


4 eMMC的內(nèi)部寄存器
eMMC內(nèi)部有6個(gè)不同的寄存器,主要用來(lái)存放eMMC的相關(guān)配置和狀態(tài)或設(shè)定eMMC的工作時(shí)的配置參數(shù),方便Host查詢和操作eMMC。
內(nèi)部寄存器的具體內(nèi)容如下表:
表2 eMMC內(nèi)部寄存器

4.1 設(shè)備識(shí)別寄存器
這是128bits的寄存器,里面存放單個(gè)設(shè)備獨(dú)一無(wú)二的信息,它符合eMMC協(xié)議,當(dāng)設(shè)備處于識(shí)別狀態(tài)的時(shí)候,信息能夠被主機(jī)訪問(wèn)。具體信息見(jiàn)下表:
表3 設(shè)備識(shí)別寄存器

?
4.2 相對(duì)設(shè)備地址寄存器
這是16bits的寄存器,一旦設(shè)備被識(shí)別,設(shè)備會(huì)被主機(jī)指定相對(duì)的地址,它存在其中。當(dāng)傳輸數(shù)據(jù)的時(shí)候,主機(jī)利用這些信息選擇設(shè)備,規(guī)定這個(gè)寄存器默認(rèn)的值為0X0001。如果地址變成0X0000,那么只有發(fā)送CMD7指令才可讓設(shè)備處于Stand-by State才可用。
4.3 驅(qū)動(dòng)等級(jí)寄存器
這是16bits的寄存器,它規(guī)定設(shè)備的等級(jí),設(shè)備能通過(guò)主機(jī)進(jìn)行設(shè)置來(lái)增強(qiáng)設(shè)備的性能,例如總線的長(zhǎng)度、傳輸?shù)乃俾实葏?shù)。在設(shè)備具體數(shù)據(jù)寄存器中包括了這個(gè)寄存器使用方式的內(nèi)容。這個(gè)寄存器的默認(rèn)值是0x404。?
4.4 設(shè)備具體數(shù)據(jù)寄存器
這是128bits的寄存器,它提供了主控如何去訪問(wèn)設(shè)備的信息。它規(guī)定了數(shù)據(jù)格式、錯(cuò)誤類型、最大數(shù)據(jù)訪問(wèn)時(shí)間、數(shù)據(jù)傳輸速率、DSR寄存器是否可用等。其具體內(nèi)容如下表:
表4 設(shè)備具體數(shù)據(jù)寄存器

4.5 操作條件寄存器
這是32bits的寄存器,此寄存器包含?eMMC Device?支持的電壓模式、數(shù)據(jù)尋址模式(按?Byte?尋址?or?按?Sector?尋址)以及?Busy?標(biāo)志位。
表5 操作條件寄存器

4.6 擴(kuò)展設(shè)備具體數(shù)據(jù)寄存器
這是4096bits的寄存器,規(guī)定了設(shè)備的屬性和選擇的模式。其中的最高的320Bytes是屬性塊,提供了設(shè)備的能力信息,這些屬性是只讀的,不能被改寫(xiě)。最低的192Bytes是模式塊,定義了設(shè)備工作時(shí)的配置信息。這些配置信息可以通過(guò)命令改寫(xiě)。
5 eMMC與其他存儲(chǔ)器件的對(duì)比
5.1 eMMC VS Nand Flash
如前所述,eMMC是將Nand Flash和Flash Controller和eMMC接口等封裝在一起的小型的存儲(chǔ)系統(tǒng),這樣做的好處是:
1.簡(jiǎn)化系統(tǒng)存儲(chǔ)設(shè)計(jì),降低開(kāi)發(fā)復(fù)雜度。生產(chǎn)Nand Flash的廠商眾多,有samsung、hynix、micron等許多廠商,每家生產(chǎn)的產(chǎn)品的技術(shù)特性都稍有差異,需要針對(duì)這些特性做兼容開(kāi)發(fā),開(kāi)發(fā)非常復(fù)雜;而eMMC則規(guī)定了統(tǒng)一的協(xié)議接口,我們只需要根據(jù)協(xié)議做開(kāi)發(fā),就能兼容各個(gè)廠商的eMMC產(chǎn)品,開(kāi)發(fā)過(guò)程大大簡(jiǎn)化。
2.更新速度快。隨著Nand Flash制程工藝的不斷升級(jí),主控的Flash Controller和FTL也需要不停的更新,才能支持新的Nand Flash。而eMMC將Flash Controller和Nand Flash封裝在了一起,屏蔽了由于Nand Flash制程工藝而帶來(lái)的差異,主控的controller和driver不需要做過(guò)多修改就能支持。
3.讀寫(xiě)性能更好。eMMC在Nand Flash的基礎(chǔ)上,加入了Cache、Memory array等技術(shù),大大提高了讀寫(xiě)速度。

圖3 Nand Flash VS eMMC
5.2 eMMC VS MMC
如前所述,eMMC即embedded MMC,就是從MMC拓展而來(lái),做了小型化處理,方便嵌入到板上,且速度方面做了提升,從0 ~ 52MHz提升到了0 ~ 200MHz。?
5.3 eMMC VS UFS
與eMMC?一樣,UFS也是一種將Nand Flash和Flash controller即協(xié)議接口封裝在一起的存儲(chǔ)系統(tǒng)。但是兩者還是有很大的區(qū)別。
1.協(xié)議接口不一樣。eMMC使用的是8bit的并行接口,而UFS使用的是串行接口。eMMC和主控之間只能進(jìn)行半雙工通信,而UFS與主控之間可以看下全雙工通信。
2.UFS的讀寫(xiě)性能比eMMC高很多。如前所述,由于eMMC使用的是并行接口,這就限制了它的最高工作頻率,目前eMMC能支持的最高工作頻率是200MHz,及它的最大傳輸帶寬為400MB/s。而UFS使用的是串行接口,則可以突破這個(gè)限制,且能進(jìn)行全雙工通信,大幅提高了讀寫(xiě)性能。以下就是eMMC與UFS的讀寫(xiě)性能的對(duì)比圖。?

圖4 eMMC/UFS性能對(duì)比圖
原文作者:內(nèi)核工匠
