基于eMMC的大容量存儲技術(shù)研究_第1頁
基于eMMC的大容量存儲技術(shù)研究_第2頁
基于eMMC的大容量存儲技術(shù)研究_第3頁
基于eMMC的大容量存儲技術(shù)研究_第4頁
基于eMMC的大容量存儲技術(shù)研究_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、專業(yè)綜合實踐報告基于eMMC的大容量存儲技術(shù)研究學(xué)生姓名:李元亨電子郵箱: 8539411基于eMMC的大容量存儲技術(shù)研究1、 國內(nèi)外研究現(xiàn)狀分析1.1eMMC概述eMMC是embeddedMultimediaCard的簡稱,MMC/eMMC是一種普遍使用的成本較低的數(shù)據(jù)存儲和傳播媒體,它的使用范圍覆蓋了大面積的便攜式電子產(chǎn)品,比如手持電腦、數(shù)碼相機(jī)、智能手機(jī)等,這些設(shè)備的統(tǒng)一特點就是高流動性、高性能、較低的成本、記憶卜口的低功耗和高數(shù)據(jù)吞吐量。eMMC為MMC協(xié)會所訂立的內(nèi)嵌式存儲器標(biāo)準(zhǔn)規(guī)格,主要是針對手機(jī)產(chǎn)品為主。eMMC的優(yōu)點是:簡化手機(jī)內(nèi)存儲器的使用,將 NANDFLASH芯片和控制芯

2、片設(shè)計成1顆MCP芯片,手機(jī)客戶只需要采購eMMC芯片,放進(jìn)新手機(jī)中,不需處理其它復(fù)雜的 NANDFLASH兼容性和管理問題,eMMC最大優(yōu)點加快了新產(chǎn)品的更新速度,減少了研發(fā)成本,縮短了新產(chǎn)品的研發(fā)周期。eMMC是針對智能型手機(jī)(Smartphone)所設(shè)計的內(nèi)嵌式存儲器規(guī)格,是外接式記憶卡MMC的延伸,eMMC之后也擴(kuò)散至平板計算機(jī)(Tablet PC)應(yīng)用領(lǐng)域。eMMC設(shè)計概念是把NAND Flash芯片和控制芯片封裝成BGA封裝芯片,可節(jié)省電路板的面積,客戶設(shè)計新產(chǎn)品時,也不需考慮內(nèi)建NAND Flash芯片的三星電子(Samsung Electronics)、美光(Micron)、東

3、芝(Toshiba),或是35納米、24納米或19納米制程,便利了手機(jī)客戶設(shè)計的程序和新產(chǎn)品問世時間點??扉W記憶卡協(xié)會SD協(xié)會也同樣推出eSD規(guī)格,但目前eMMC在智能型手機(jī)內(nèi)嵌式存儲器領(lǐng)域的領(lǐng)導(dǎo)位置無可動搖,幾乎是所有手機(jī)大廠儲存接口的標(biāo)準(zhǔn),除了蘋果(Apple)必采用自家的設(shè)計規(guī)范外。eMMC規(guī)格的標(biāo)準(zhǔn)這幾年也快速演進(jìn),從eMMC4.3、eMMC4.4、eMMC4.5陸續(xù)問世,而預(yù)計接棒eMMC規(guī)格的會是三星電子(Samsung Electronics)主導(dǎo)的UFS(Universal Flash Storage),會把Mobile RAM等芯片功能都涵蓋。在智能型手機(jī)領(lǐng)域中,eMMC規(guī)格

4、是主流,但在平板計算機(jī)或是輕薄型筆記本電腦(NB)上,仍要和SATA接口的固態(tài)硬盤(SSD)做競爭,畢竟SATA SSD有讀寫速度上的優(yōu)勢,不論是隨機(jī)效能(Random Performance)或是連續(xù)效能(Sequential Performance)等,內(nèi)嵌式iSSD也都明顯優(yōu)于eMMC,較適合PC類的產(chǎn)品應(yīng)用,例如新帝的iSSD產(chǎn)品就是SATA接口SSD的代表。1.2討論到eMMC的發(fā)展歷程,必須要從介紹Flash的歷史開始Flash分為兩種規(guī)格:NOR Flash和NAND Flash,兩者均為非易失性閃存模塊。1988年,Intel首次發(fā)出NOR flash技術(shù),徹底改變了原先由EP

5、ROM和EEPROM一統(tǒng)天下的局面。NOR類似于DRAM, 以存儲程序代碼為主,可以讓微處理器直接讀取。因為讀取速度較快,但晶片容量較低,所以多應(yīng)用在通訊產(chǎn)品中,如手機(jī)。1989年,東芝公司發(fā)表NAND flash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且像磁盤一樣可以通過接口輕松升級。因為NAND flash的晶片容量相對于NOR大,更像硬盤,寫入與清除資料的速度遠(yuǎn)快于NOR,所以當(dāng)時多應(yīng)用在小型機(jī)以儲存資料為主。目前已廣泛應(yīng)用在各種存儲設(shè)備上, 可存儲代碼和資料。NAND Flash的存儲單元發(fā)展:從 SLC, MLC到TLC,超越摩爾定律SLC=Single-Level Cell, 即

6、1bit/cell,讀寫速度快,壽命長,價格是MLC三倍以上,約10萬次讀寫壽命。MLC=Multi-Level Cell, 即2bit/cell ,速度一般,壽命一般,價格一般,月3000-10000次讀寫壽命。TLC=Triple-Level Cell,即3bit/cell,速度慢,壽命短,價格便宜,約500次讀寫壽命,技術(shù)在逐漸成長中。NAND Flash的存儲單元從最初的SLC( Single Layer Cell), 到2003年開始興起MLC (Multi-Layer Cell), 發(fā)展至今,SLC已經(jīng)淡出主流市場,主流存儲單元正在從MLC向TLC(Triple Layer Cel

7、l)邁進(jìn)。納米制程工藝和存儲單元的發(fā)展,使得同樣大小的芯片有更高密度和更多的存儲單元,F(xiàn)lash得以在容量迅速增加的同時,還大幅降低了單位存儲容量的成本。但其弊端也輕易顯現(xiàn),從原來的1bit/cell發(fā)展到后來3bit/cell, 計算更為復(fù)雜,出錯率不免更高,讀寫次數(shù)和壽命也會更短。在這種情況下現(xiàn)有MLC 和 TLC Flash 都需要搭配一顆高性能的控制芯片來提供EDC和ECC、平均擦寫等Flash管理。1.3隨著近年平板電腦和智能手機(jī)等在全球熱潮來襲,嵌入式存儲eMMC即營運(yùn)而生iphone,iPAD帶動了智能手機(jī)和平板電腦行業(yè)的迅猛發(fā)展,引發(fā)了電子產(chǎn)品更新?lián)Q代,對存儲硬件提出了更高的要

8、求。多媒體播放、高清攝像,GPS,各色各樣的應(yīng)用以及外觀輕薄小巧的發(fā)展趨勢,要求存儲硬件擁有高容量、高穩(wěn)定性和高讀寫速度的同時,需要存儲芯片在主板中占有更小的空間。然而NAND Flash 隨著納米制程和存儲技術(shù)的主流趨勢發(fā)展,性能卻在不斷下降??刹翆憠勖?,出錯概率高,讀寫速度慢,穩(wěn)定性差。嵌入式存儲芯片eMMC就可以彌補(bǔ)這個市場需求和NAND Flash發(fā)展的缺口。eMMC(Embedded Multi Media Card) 采用統(tǒng)一的MMC標(biāo)準(zhǔn)接口, 把高密度NAND Flash以及MMC Controller封裝在一顆BGA芯片中。針對Flash的特性,產(chǎn)品內(nèi)部已經(jīng)包含了Flash管

9、理技術(shù),包括錯誤探測和糾正,flash平均擦寫,壞塊管理,掉電保護(hù)等技術(shù)。用戶無需擔(dān)心產(chǎn)品內(nèi)部flash晶圓制程和工藝的變化。同時eMMC單顆芯片為主板內(nèi)部節(jié)省更多的空間。之前市場上流通的eMMC產(chǎn)品均出自國外的廠商閃迪、三星、東芝。而大陸廠商泰勝微科技今年第一個在國內(nèi)推出了自有品牌BIWIN的eMMC產(chǎn)品,完全自主研發(fā)和封裝測試,并將其產(chǎn)品命名為qNAND,已于年中推向了市場。泰勝微科技專注于嵌入式存儲產(chǎn)品的研發(fā)和生產(chǎn)。擁有11年Flash的行業(yè)經(jīng)驗,是華南地區(qū)唯一一家擁有12寸晶圓封裝測試工廠的民營企業(yè)。根據(jù)最新的測試結(jié)果,BIWIN的品牌eMMCqNAND在一些關(guān)鍵性能指標(biāo)上大幅優(yōu)于同類

10、產(chǎn)品。作為后來者,泰勝微的表現(xiàn)很值得期待。1.4 eMMC的未來eMMC規(guī)格的標(biāo)準(zhǔn)逐漸從eMMC4.4世代發(fā)展到eMMC4.5世代。就目前JEDEC的規(guī)劃方向來看,eMMC下一個世代將會由UFS(Universal Flash Storage)規(guī)格接棒。我們將UFS視為一種銜接eMMC 4.5版后的NAND Flash新接口標(biāo)準(zhǔn),預(yù)期未來初期將在智能型手機(jī)及平板計算機(jī)等新興智能型移動裝置上,成為嵌入式儲存媒體的主要的應(yīng)用標(biāo)準(zhǔn)之一。UFS將提供極高的速度,以即時高速存儲大型多媒體文件,同時在消費(fèi)電子設(shè)備上使用時降低功耗。有了新的標(biāo)準(zhǔn),預(yù)計用戶存取90分鐘電影的時間會從目前的3分鐘降低到幾秒鐘。這

11、項新的標(biāo)準(zhǔn)將支持手機(jī),數(shù)碼相機(jī)等其他消費(fèi)電子產(chǎn)品,并將做為方便通用的開發(fā)標(biāo)準(zhǔn)存在。1.5 eMMC的市場需求今年eMMC出貨量預(yù)計將達(dá)到3.337億個,高于2010年的2.060億個。2011年總體手機(jī)出貨量的23%左右,大約相當(dāng)于2.397億部,將采用eMMC,該比例兩年后將升至37%。其它重要的eMMC領(lǐng)域?qū)ㄆ桨咫娔X、電子書閱讀器和具備GPS的便攜導(dǎo)航設(shè)備。攝像機(jī)和機(jī)頂盒也在考慮使用eMMC的可行性。eMMC可提供節(jié)省成本的長期解決方案,而且具有標(biāo)準(zhǔn)化引腳。未來幾年eMMC出貨量將繼續(xù)上升,預(yù)計2015年達(dá)到7.791億個。手機(jī)將是eMMC市場的最大領(lǐng)域,2015年該領(lǐng)域的出貨量將達(dá)到

12、5.601億個,占72%。平板電腦將是第二大eMMC應(yīng)用市場,四年內(nèi)該領(lǐng)域的出貨量將從今年的1800萬個劇增到1.48億個。eMMC的發(fā)展非常迅速,性能幾乎逐年提升。IHS iSuppli公司的研究顯示,作為一種成本劃算的高密度閃存,eMMC已成功打入智能手機(jī)和平板電腦等高端市場,這些產(chǎn)品要求較高的存儲密度,同時要求低功耗和較小的引腳。尤其是,eMMC4.5規(guī)范增加了幾種新能力來提高壽命,包括每秒200MB的單數(shù)據(jù)率HS200模式,幾乎把現(xiàn)有內(nèi)存?zhèn)鬏斔俣忍岣吡艘槐?。該?guī)范還允許增加一個易失性(volatile)緩存,進(jìn)一步利用eMMC portioning來實現(xiàn)更快的程度。IHS公司認(rèn)為,隨著

13、NAND技術(shù)發(fā)展成各種更加專門的解決方案,eMMC將獲得更大的增長動能。它帶來了多個供應(yīng)商之間的兼容性、長期支持和可接受的成本。另外,該產(chǎn)品較強(qiáng)的可靠性與性能,將幫助其進(jìn)入未來的高端產(chǎn)品之中,從而確保eMMC市場在未來幾年保持增長。2、eMMC(嵌入式多媒體存儲卡)簡介2.1應(yīng)用范圍eMMC (Embedded MultiMediaCard) 是嵌入式多媒體卡的縮寫,由MMC協(xié)會(MultiMediaCard As -sociation) 所訂立的嵌入式內(nèi)存標(biāo)準(zhǔn)規(guī)格,主要針對行動裝置產(chǎn)品為主,如手機(jī)、智能型手機(jī)、平板計算機(jī)、筆記本電腦等等;這些產(chǎn)品它們都需要輕薄的機(jī)身,因此有減少使用零組件面積

14、的需求,eMMC 便由此出現(xiàn)。2.2結(jié)構(gòu)eMMC 簡化了內(nèi)存的設(shè)計,使用多芯片封裝(MCP)技術(shù),把 NAND Flash芯片和控制芯片(Control chip)封裝在一起,打成單一顆芯片,如此便可以省下零組件并增加電路板面積。eMMC 架構(gòu)是由一個嵌入式儲存方案所組成,內(nèi)部結(jié)構(gòu)帶有MMC接口、NAND Flash以及 Control所組成,經(jīng)由BGA 封裝在一顆小型的芯片上。簡單來說,HOST只需要透過MMC BUS下達(dá)命令即可,不需要任何內(nèi)存管理方面的算法(ECC、Wear-Leveling、BBM)的計算,這些都已經(jīng)交給了與NAND Flash封裝在一起的Control chip,這對

15、研發(fā)團(tuán)隊來說無疑是降低研發(fā)成本的好方法。圖1 eMMC系統(tǒng)架構(gòu)圖2 主從設(shè)備結(jié)構(gòu)框圖2.3規(guī)格eMMC傳輸速度高達(dá)52MB/s,電壓范圍為1.8v至3.3v,具備高速且可升級的特性。制定規(guī)格上,eMMC 4.2制訂了eMMC接口速度及容量,接口速度為52MB/s、容量規(guī)格則大于2GB。eMMC 4.3則新增Booting Function、Explicit Sleep Mode、Reliable Write等功能。eMMC 4.4更強(qiáng)化雙倍內(nèi)存接口效能(DDR),使原本定義的52MB/s速度提升到100MB/s 以上,效能提高2倍,此外還加入了彈性分區(qū)管理概念(Multiple Partiti

16、oning),將芯片定義為High Density及High Performance兩個部份,可將程序代碼和系統(tǒng)數(shù)據(jù)放在High Performance區(qū)塊,如此一來便可以更有彈性的使用區(qū)塊容量,而且在eMMC 4.4還增加了寫保護(hù)的功能,提高數(shù)據(jù)安全性。eMMC4.5協(xié)議中主要新增了HS200 Mode,時鐘頻率提高到200Mhz,數(shù)據(jù)傳輸速率達(dá)到了200MB/s(八根數(shù)據(jù)線的情況)。 表1 eMMC引腳接口說明2.4特性及優(yōu)勢(與傳統(tǒng)存儲設(shè)備比較)eMMC與傳統(tǒng)存儲設(shè)備相比,有很多良好的特性。2.4.1系統(tǒng)寬電壓范圍2.4.2十根總線結(jié)構(gòu)2.4.3完善的數(shù)據(jù)保護(hù)機(jī)制2.4.4兩種讀寫模式2

17、.4.5三種擦除資料模式2.4.6增強(qiáng)的主從設(shè)備通信技術(shù)2.4.7支持DDR模式(雙倍速率同步動態(tài)隨機(jī)存儲器)2.5工作模式所有 Host與Card之間的傳輸控制都是統(tǒng)一由HOST來控制,而HOST發(fā)送控制命令有分為兩種廣播和地址(點對點傳輸)。1、廣播命令模式 (Broadcast commands)顧名思義,就是HOST發(fā)送一個命令給所有的MMC卡,而某些卡則會對這命令做出回應(yīng)。2、地址命令模式 (Addressed (point-to-point) commands)可以理解成直接命令,也就是說Host直接對某張MMC卡下一個命令,而卡針對此命令直接做反應(yīng)。eMMC的五種操作模式:開機(jī)模

18、式、ID辨識模式、中斷模式、數(shù)據(jù)傳輸模式、無效模式。開機(jī)模式 Boot modePower ON后,卡若收到CMD0(GO_Idle_State)并帶argument(0xF0F0F0F0),此時Card若支持Boot Mode則會進(jìn)入Boot Mode,否則進(jìn)入identification mode。ID辨識模式 Card identification Power ON 后,經(jīng)過 Boot mode 完成或不支持Boot mode,Card都將會進(jìn)入此模式持續(xù)等待收到Host下CMD3(Send_Relative_Address)。中斷模式 Interrupt modeHost和Card會同

19、時進(jìn)入此模式,此模式中不會做Data Transfer ,只允許Host or Card 送出 interrupt service request。數(shù)據(jù)傳輸模式 Data transfer mode當(dāng)卡收到由Host所給予的RCA ,這時卡便會進(jìn)入Data transfer mode,等待讀寫動作指令。無效模式 Inactive mode當(dāng)Card若為電壓不符規(guī)定或插入方式無效時便會進(jìn)入此模式,亦可使用CMD1(GO_INACTIVE_STATE )命令使一個已標(biāo)識的Card進(jìn)入非活動狀態(tài)。表2 eMMC五種工作模式eMMC工作時是基于設(shè)備跳轉(zhuǎn)到不同狀態(tài)來工作的。表3 設(shè)備不同狀態(tài)對應(yīng)的操作模

20、式及總線模式eMMC對應(yīng)的四種速度模式:表4 eMMC的速度模式2.6數(shù)據(jù)封包及傳輸協(xié)議封包(Packet):eMMC協(xié)議中共有五種數(shù)據(jù)封包,分別是Command、Response、Block、CRC Status和Busy,詳述如下: Command:一律由Host下達(dá),并可帶參數(shù)的命令。 Response:Device對Host發(fā)出Command所做的響應(yīng),內(nèi)部參數(shù)表示該Device現(xiàn)階段的狀態(tài)為何。 Block:eMMC的傳輸協(xié)議中的基本單位,所有數(shù)據(jù)數(shù)據(jù)都會封裝在Block里傳輸。 CRC Status:此數(shù)據(jù)封包通常在寫入Block后出現(xiàn),用來通知Host寫入Block的結(jié)果。 Bu

21、sy:此數(shù)據(jù)數(shù)據(jù)通常在寫入Block后出現(xiàn),用來通知Host該Device 目前處于忙碌狀態(tài),無法寫入下一個Block。 2.6.1指令(CMD)格式eMMC指令(CMD)分為四種類型,分別為:1、廣播指令,無響應(yīng)(No Response)2、廣播指令,有響應(yīng)(Response)3、地址指令(點對點),無響應(yīng)(Response)4、地址指令(點對點),有響應(yīng)(No Response)所有的指令均是由48字節(jié)長度組成的代碼,在時鐘頻率為52MHz的情況下,傳輸一條指令的時間為0.92ms。表5 指令格式eMMC控制指令一共有57條(CMD0CMD56),這57條指令又分為10個指令集(class

22、0class9),不同的設(shè)備支持的指令集不同,但是class0(basic)是所有設(shè)備必須支持的,他包括了初始化,識別設(shè)備等基本指令,要想看設(shè)備是否支持,可以通過看CSD寄存器的配置來了解。 2.6.2設(shè)備響應(yīng)(Response)格式所有響應(yīng)均是Device接受到Host命令之后在CMD信號線上發(fā)送的,而響應(yīng)內(nèi)容的長短取決于響應(yīng)的種類?;镜捻憫?yīng)結(jié)構(gòu)為Start bit - Transmission bitContent bitsCRC bits - End bit,如圖三所示。eMMC協(xié)議中共有5種響應(yīng)種類,分別是R1、R2、R3、R4與R5,詳細(xì)內(nèi)容如下:圖3 基本響應(yīng)封包結(jié)構(gòu)圖R1 (n

23、ormal response command): 總長48 bit,45:40代表響應(yīng)的CMD數(shù)值,39:8則是表示Device現(xiàn)在的狀態(tài)及設(shè)備可能出錯的標(biāo)志位,這些位的說明參照 eMMC4.5協(xié)議。R1還有另一個格式為R1b,結(jié)構(gòu)與R1相同,不過增加了可選擇的BUSY信號。表6 R1響應(yīng)結(jié)構(gòu)R2 (CID, CSD register): 總長136bit,主要是響應(yīng)匯報CID與CSD緩存器的內(nèi)容,CID register分別對應(yīng)CMD2與CMD10,而CSD register則是對應(yīng)CMD9。表7 R2響應(yīng)結(jié)構(gòu)R3 (OCR register): 總長48bit,主要響應(yīng)回報ORC緩存器的內(nèi)

24、容,只有當(dāng)Host下CMD1時,Device響應(yīng)的格式內(nèi)容就是R3。表8 R3響應(yīng)結(jié)構(gòu)R4 (Fast I/O): 總長48bit,主要用于要寫入和讀出某個緩存器8bit 的區(qū)段數(shù)據(jù),只有當(dāng)Host下CMD39,Device響應(yīng)的格式內(nèi)容就是R4。表9 R4響應(yīng)結(jié)構(gòu)R5 (Interrupt request): 總長48bit,此響應(yīng)為中斷請求的響應(yīng)格式,只有當(dāng)Host下達(dá)CMD40命令某張卡必須進(jìn)入中斷模式時,Device 若確實收到并響應(yīng)此R5響應(yīng),則代表此卡進(jìn)入中斷,并且RCA被設(shè)置為0x0。表10 R5響應(yīng)結(jié)構(gòu) 2.6.3指令與響應(yīng)傳輸時序主機(jī)發(fā)送的指令和設(shè)備的響應(yīng)無論是在SDR或者D

25、DR工作狀態(tài),都是在時鐘的上升沿被采樣。1、 設(shè)備識別和設(shè)備操作狀態(tài)設(shè)定設(shè)備識別指令(CMD2)和設(shè)備操作狀態(tài)設(shè)定指令(CMD1)時序,設(shè)備在接收完畢指令后NID個時鐘周期后發(fā)出。圖4設(shè)備識別和設(shè)備操作狀態(tài)指令時序2、 向設(shè)備發(fā)送設(shè)備地址(OCR)指令CMD3是給設(shè)備配置地址的指令,在指令和響應(yīng)之間至少有NCR個時鐘周期。圖5設(shè)置設(shè)備地址時序3、 數(shù)據(jù)傳輸模式(Data Transfer Mode)當(dāng)設(shè)備接收到自己的地址(RCA)后,就會跳轉(zhuǎn)到數(shù)據(jù)傳輸模式,在這個模式下CMD信號線工作在推拉模式。指令后要跟隨2位的高阻位(給總線改變模式的時間),之后跟著被設(shè)備拉高的位(P bits)。這個時序

26、對于除了CMD1、2、3之外的所有指令都適用。圖6指令響應(yīng)時序(數(shù)據(jù)傳輸模式)4、 R1b響應(yīng)有一些指令,例如CMD6,需要有一個BUSY信號,響應(yīng)格式也為R1,如果BUSY信號被定義使用,在指令完成后兩個時鐘周期后它就會被設(shè)置。這時DAT0線就會被拉低,DAT1DAT7上的信號值無效。圖7 R1b響應(yīng)時序5、 設(shè)備響應(yīng)完畢到下一條指令發(fā)出兩者之間至少要間隔NRC。圖8 響應(yīng)結(jié)束至下一條指令時序(數(shù)據(jù)傳輸模式)6、 一條指令發(fā)出(無響應(yīng))到下一條指令發(fā)出兩者至少間隔NCC。圖9 兩條指令之間間隔時序2.6.4內(nèi)部寄存器格式根據(jù)設(shè)備的接口,有六組寄存器被定義:1、 RCA: Relative C

27、ard Address Register 關(guān)聯(lián)卡地址寄存器RCA寄存器保存了Host在識別過程中給卡配置的地址。此地址的主要作用是在識別過程之后,用于卡的識別。2、 CID: Card Identification Register 卡識別寄存器CID寄存器(128字節(jié))保存了卡的識別信息,主要應(yīng)用于卡的識別過程。每張卡都應(yīng)該有一個獨一無二的寄存器值。3、 CSD(Card-SpecificData)特殊寄存器CSD寄存器(128字節(jié))提供了一些信息告訴主機(jī)如何使用設(shè)備,CSD寄存器定義了數(shù)據(jù)格式,錯誤類型,最大數(shù)據(jù)使用次數(shù),數(shù)據(jù)傳輸速度,DSR寄存器是否可被使用等等??梢酝ㄟ^CMD27來對此

28、寄存器編程。4、 EXT_CSD (Extend Card-SpecificData)擴(kuò)展的特殊寄存器ECSD寄存器(512字節(jié))定義了設(shè)備的性能和一些選擇的模式,它最重要的320字節(jié)是性能的定義,它定義了設(shè)備的能力并且不能被主機(jī)修改。低192字節(jié)是模式的定義,定義了設(shè)備工作配置,這些可以通過CMD6指令來進(jìn)行修改。5、 OCR: Operation Condition Register 工作條件寄存器32位的關(guān)聯(lián)卡地址寄存器存儲了設(shè)備的工作電壓范圍(VDD)以及指示了上電過程的狀態(tài)。OCR主要用在上電復(fù)位中,主要有兩個作用,一是在程序進(jìn)入Idle State之后,讀busy位來判斷上電過程是

29、否完成;二是用來判斷CMD1發(fā)送來的電壓范圍卡是否支持,如果不支持,則進(jìn)入Inactive State,初始化失敗。6、 DSR: Driver Stage Register 配置總線寄存器 DSR寄存器是一個可選寄存器,用來配置卡的總線驅(qū)動參數(shù)。之所以用DSR寄存器來設(shè)定總線的驅(qū)動能力,是因為總線走線的不一和拓?fù)浣Y(jié)構(gòu)的多樣,造成總線的容值特性多樣。 這六組寄存器的詳細(xì)定義不再列出,參照eMMC4.5協(xié)議。2.6.5傳輸時序 分別是1位Bus 上升沿取樣(1 bit SDR)、4位Bus上升沿取樣(4 bits SDR)、8位Bus上升沿取樣(8 bits SDR)、4位Bus DDR與8位B

30、us DDR,這五種均是用Block為單位作數(shù)據(jù)傳輸,五種傳輸模式示意圖如下:圖10 1位Bus 上升沿取樣圖11 4位Bus 上升沿取樣圖12 8位Bus 上升沿取樣4位總線DDR:Block和CRC 在CLK 的上升沿與下降沿被取樣,而起始位和結(jié)束位只有在上升沿被取樣。圖13 4位Bus DDR取樣DDR 的取樣方式如下圖所示,它會依照CLK 的上下升沿作數(shù)據(jù)的獲取,進(jìn)而達(dá)到雙倍的數(shù)據(jù)傳輸,這邊要注意,只有一開始與結(jié)束bit是上升沿獲取,Data以及CRC 的數(shù)據(jù)皆是上下沿獲取。圖14 8位Bus DDR取樣3、控制邏輯及流程圖 3.1工作的不同狀態(tài)(預(yù)先啟動模式,分區(qū)模式,初始化模式,數(shù)

31、據(jù)傳輸模式,中斷模式,休眠模式)eMMC有多種工作狀態(tài),每種工作狀態(tài)都不可或缺的完成一部分任務(wù),工作狀態(tài)有預(yù)先啟動模式,分區(qū)模式,初始化模式,數(shù)據(jù)傳輸模式,中斷模式,休眠模式。下面具體介紹這些功能。 3.1.2預(yù)先啟動模式eMMC能夠使主機(jī)通過在正確的時間按順序發(fā)送一系列指令來讀取引導(dǎo)啟動區(qū)的代碼來達(dá)到啟動一個系統(tǒng)的目的。eMMC提供了兩個Boot寄存器,如圖所示,每個寄存器都有獨立的物理地址,大小是128KB的倍數(shù),倍數(shù)可以通過查看ECSD226來獲取。并且可以設(shè)置上電寫保護(hù)和永久寫保護(hù),這是通過設(shè)置ECSD173來實現(xiàn)的。通過改變ECSD寄存器中相關(guān)位的值來選中響應(yīng)的寄存器并且讀取。用戶啟

32、動系統(tǒng)的代碼 通常放在Boot Area中,但也可以從User Area啟動系統(tǒng),但這樣會帶來一些不穩(wěn)定和其他一些問題。圖15 Boot寄存器圖16 Boot Mode流程圖1、 當(dāng)系統(tǒng)上電,或者硬件復(fù)位,或者主機(jī)發(fā)出CMD0指令并帶0xF0F0F0F0,系統(tǒng)就會進(jìn)入Pre-Idle State。2、 設(shè)備會自動檢測BOOT_PARTITION_ENABLE是否為1,若為0則退出Boot模式,若為1,則進(jìn)入下一步。3、 CMD線要至少保持74個時鐘周期的低電平,或者主機(jī)發(fā)送CMD0并帶0xFFFFFFFA,此時設(shè)備就會發(fā)出主機(jī)要讀的數(shù)據(jù),主機(jī)接收完畢,就跳轉(zhuǎn)到Idle State。否則,結(jié)束B

33、oot模式。下圖為傳送數(shù)據(jù)時序圖:圖17 等待至少74個時鐘周期后,設(shè)備發(fā)送數(shù)據(jù)時序圖圖18 送入CMD0并帶0xFFFFFFFA后,設(shè)備發(fā)送數(shù)據(jù)時序圖 3.1.3分區(qū)模式分區(qū)模式能夠使主機(jī)將eMMC的一些存儲單元配置成一些具有特殊性能,可靠性高,執(zhí)行力強(qiáng)的一些模塊。不同的分區(qū)將被配置成不同的功能用于不同的目的。例如,大容量儲存空間的申請不需要嚴(yán)格定義它的耐久度,允許一定的壞扇區(qū)出現(xiàn),然而,它們卻需要很高的帶寬和空間去存儲代碼和應(yīng)用軟件。最初的分區(qū)只有4塊,如圖所示,分別是兩個Boot區(qū),一個RPMB區(qū),剩下的是用戶存儲區(qū)。圖19 eMMC最初分區(qū)圖用戶可以通過配置用戶區(qū)來增加一些區(qū)域,每個區(qū)

34、域都會有獨立的物理地址從0x00000000開始。協(xié)議中規(guī)定,最多可以配置4個通用目的的區(qū)域(General-purpose area)去存儲一些敏感數(shù)據(jù)或者一些其他用途。不過這些區(qū)域大小有上限,可以通過查閱ECSD159:157來確定。一部分用戶區(qū)域也可被配置成具有增強(qiáng)工藝特點的區(qū)域從而使他們與默認(rèn)存儲空間區(qū)分開來。這種具有增強(qiáng)型特點的區(qū)域確保了更高的性能和可靠性。增強(qiáng)型區(qū)域用SLC NAND來做比較合適,默認(rèn)的用MLC NAND。Boot區(qū)和RPMB區(qū)的大小和屬性不可更改。用戶區(qū)的增強(qiáng)區(qū)和通用目的區(qū)的大小和屬性可以通過一次性編程設(shè)置,一旦編程則無法更改。主機(jī)可以指定增強(qiáng)型區(qū)域的開始地址。下

35、圖是一個分區(qū)的例子。圖20 一種分區(qū)的例子分區(qū)流程圖如圖所示。系統(tǒng)進(jìn)入Transfer Mode模式后,才可進(jìn)行分區(qū)操作。圖21 分區(qū)過程流程圖 3.1.4初始化模式 eMMC卡想要正常工作,必須先完成初始化過程,在初始化過程中,系統(tǒng)會完成對eMMC卡的識別,確定設(shè)備工作的電壓范圍和使用模式,向設(shè)備分配關(guān)聯(lián)卡地址(RCA,一個系統(tǒng)可能有多塊eMMC)。在初始化過程中所有的數(shù)據(jù)通信都只在CMD信號線上。下圖為設(shè)備初始化流程圖:圖22 設(shè)備初始化流程圖初始化詳細(xì)過程:進(jìn)入Idle State的方式只有兩種,一種是通過Power On即上電進(jìn)入,另外一種是通過CMD0切換。不過需要注意的是,CMD0

36、無法讓卡從Inactive State進(jìn)入Idle State。進(jìn)入Idle后,所有的寄存器都復(fù)位成默認(rèn)值,RCA也變成了0x0001。而此時,CLK需要設(shè)置成fOD的范圍,即0-400kHz,以進(jìn)行下面的流程。雖然進(jìn)入到了Idle State,但是上電復(fù)位過程并不一定完成了,這主要靠讀取OCR的busy位來判斷。在Idle State只有CMD1和CMD58是合法指令。所以在進(jìn)入Idle State之后,除了讓卡從Idle State轉(zhuǎn)變成Ready State,別無他途。 Idle State進(jìn)入Ready State是通過CMD1完成的,只有發(fā)送帶有OCR格式電壓參數(shù)的CMD1

37、給MMC卡后,busy位為且電壓匹配,才進(jìn)入Ready State。 如果回復(fù)的OCR中的busy位一直為0,則說明上電復(fù)位仍沒有完成,則需要一直發(fā)送CMD1,直到busy位為1。如果MMC卡收到CMD1的電壓參數(shù)不匹配,則進(jìn)入Inactive State,不會對后續(xù)過程進(jìn)行任何響應(yīng)。如果Host的IO電壓可調(diào)整,那調(diào)整前需要讀取OCR。為了不使卡誤進(jìn)入Inactive State,可以給MMC卡發(fā)送不帶參數(shù)的CMD1,這樣可以僅獲取OCR寄存器,而不會改變卡的狀態(tài)。在識別過程中,Host不能改變電壓范圍,如果需要修改,則修改之后必須重新啟動識別流程。在Ready State下,發(fā)送

38、CMD2指令,可以使MMC卡則進(jìn)入Identification State。CMD2如果發(fā)送成功,Host得到CID寄存器的值,而MMC卡則進(jìn)入Identification State。若不成功,則卡狀態(tài)不變。 在單卡識別的情況下,只要fOD在范圍內(nèi),且上拉正確,應(yīng)該可以準(zhǔn)確無誤的收到CID的值,并進(jìn)入Identification State。這一節(jié)最復(fù)雜之處在于多卡識別:MMC卡的多卡CMD和DATA是共用的,它們采用一種特殊的方式來完成識別和操作。過程如下:在idle->ready過程中,Host用電壓范圍這一條件,首先讓不符合電壓條件的卡進(jìn)入Inactive State。

39、在ready->ident過程中,CMD2指令可以讓所有的卡發(fā)送CID值,所有卡的CMD都接在一起,這樣回傳CID的時候,相當(dāng)于做了一個或操作,與CMD上或出來的結(jié)果不一致的卡就不會繼續(xù)發(fā)送(這里是需要卡的硬件有識別支持),而停留在ready。這里CID的唯一性發(fā)揮了作用,這樣每次CMD2操作之后,僅有一張卡進(jìn)入ident,其余的都停留在ready而不能響應(yīng)CMD3。在ident->stby過程中,上述過程中篩選出的唯一卡獨占了CMD線,完成了RCA分配,進(jìn)入stby。進(jìn)入stby的卡不再響應(yīng)CMD2和CMD3。識別完一張卡之后,因為其他的卡還停留在ready,這樣就可以繼續(xù)上面的

40、步驟來一張一張的識別卡,最后直到CMD2再沒有回應(yīng),說明卡都識別完了。完成上面的過程后,每張識別好的卡都進(jìn)入了stby,而且每張都有自己的RCA,這樣之后的操作只需要在命令中帶入相應(yīng)的RCA,就可以對任意的卡進(jìn)行獨立操作了,別的卡是不會響應(yīng)的。 3.1.5數(shù)據(jù)傳輸模式數(shù)據(jù)傳輸模式即eMMC的工作模式,在此模式下可實現(xiàn)對eMMC的編程,對存儲區(qū)屬性的設(shè)計,數(shù)據(jù)的讀寫,擦除,總線的測試等等功能。是eMMC最核心的模式。在此模式工作下的工作框圖如下圖所示。圖23 數(shù)據(jù)傳輸模式工作流程圖3.1.5.1總線測試及線寬選擇總線測試功能只有在SDR模式下有效,在DDR模式下無效。 進(jìn)入數(shù)據(jù)傳輸模式后,需要對

41、總線進(jìn)行傳輸測試以便檢查總線是否工作正常。在Transfer Mode下,主機(jī)通過發(fā)出CMD19和CMD14命令來檢測總線上引腳的工作狀態(tài)。首先,主機(jī)向設(shè)備發(fā)送CMD19指令,跟隨著一種特殊的數(shù)據(jù)格式。這些數(shù)據(jù)會在每一條DAT線上傳送。然后,主機(jī)發(fā)送CMD14命令去要求設(shè)備傳回剛才數(shù)據(jù)求反所得的新數(shù)據(jù)。主機(jī)通過比較接受的數(shù)據(jù)與發(fā)送的數(shù)據(jù),就可檢測出總線工作是否正常。表11 總線測試數(shù)據(jù)格式設(shè)備在接收數(shù)據(jù)時,檢測到開始位后,只接收數(shù)據(jù)前兩位數(shù)據(jù),忽略后面所有位,也包括忽略CRC16校驗位。同時主機(jī)接收數(shù)據(jù)時,檢測到開始位后,只接收數(shù)據(jù)前兩位數(shù)據(jù)。忽略后面所有位,也包括忽略CRC16校驗位。下圖是

42、八位總線測試數(shù)據(jù)及正常結(jié)果。表12 8位總線測試范例圖24 總線測試時序圖在總線測試完畢后,主機(jī)可以選擇使用信號線的個數(shù),是通過CMD6去配置ECSD183來實現(xiàn)的,復(fù)位后默認(rèn)值是0x00,是一位總線模式。 3.1.5.2讀操作當(dāng)沒有數(shù)據(jù)傳輸時,DAT0-DAT7處于高電平狀態(tài),數(shù)據(jù)傳輸封包結(jié)構(gòu)是一位開始位0,接著是數(shù)據(jù)流,包含了數(shù)據(jù)和CRC校驗碼,最后是一位結(jié)束位1。數(shù)據(jù)傳輸是和時鐘同步的。 在SDR模式下,基本的傳輸單元是Block,它的最大長度被定義在CSD中的READ_BL_LEN。如果READ_BL_PARTIAL被置位,則更小的Block(PARTIAL BLOCK)被允許傳輸。C

43、MD17指令用來讀取一個塊的數(shù)據(jù),完成后返回Transfer mode模式。在DDR模式中,讀取數(shù)據(jù)塊的大小總是512字節(jié),部分塊的讀取則不被允許。主機(jī)可以通過CMD6更改ECSD196的值來選擇SDR模式還是DDR模式。CMD18指令用來讀取多塊數(shù)據(jù)(READ_MULTIPLE_BLOCK),這條指令有兩種用法,一種是開放式讀取,即不設(shè)置結(jié)束標(biāo)志。一種是預(yù)先指定了要讀取塊的個數(shù),讀取完自動結(jié)束回到Transfer mode。開放式讀取,即要讀取的數(shù)據(jù)塊個數(shù)不被定義,設(shè)備會持續(xù)讀取數(shù)據(jù)直到收到停止傳輸指令。預(yù)先指定數(shù)據(jù)塊個數(shù),設(shè)備會傳輸要求傳輸?shù)臄?shù)據(jù)塊,傳輸完畢后自動結(jié)束并回到Transfer

44、 Mode,一般情況下沒有必要使用停止傳輸指令。圖25 讀單塊數(shù)據(jù) 讀單塊操作開始時,主機(jī)先發(fā)送CMD16(SET_BLOCKLEN)設(shè)置塊長度。設(shè)備接收后,在發(fā)送CMD17(READ_SINGLE_BLOCK)讀取數(shù)據(jù)。圖26 單塊數(shù)據(jù)時序圖圖27 讀多塊數(shù)據(jù)流程圖讀多塊操作開始時,主機(jī)先發(fā)送CMD16(SET_BLOCKLEN)設(shè)置塊長度,接著發(fā)送CMD23(SET_BLOCK_COUNT)指令設(shè)置讀取塊個數(shù),若不設(shè)置則為開放式讀取,接著發(fā)送CMD18指令開始讀數(shù)據(jù)。圖28 多塊讀取時序圖注意:CMD17,CMD18設(shè)置讀取塊開始地址時,地址只有32位(4G),對于容量小于2G的卡來說,地

45、址即為每一位地址,對于容量大于2G的卡來說,地址為扇區(qū)地址,每個扇區(qū)為512B。如果用戶要用局部塊讀操作,則必須事先看CSD寄存器中的READ_BLK_MISALIGNED和READ_BL_PARTIAL是否為0,若不為0則系統(tǒng)不允許局部塊讀,讀數(shù)據(jù)時讀出塊大小必須為512B或者CSD中READ_BL_LEN83:80設(shè)置的值。 3.1.5.3寫操作寫操作的數(shù)據(jù)傳輸格式與讀操作相同,在SDR模式下每個數(shù)據(jù)塊后有一字節(jié)的CRC校驗,DDR模式下有兩字節(jié)。設(shè)備通過檢查CRC校驗位來判斷接收到的數(shù)據(jù)是否正確,所以一些傳輸錯誤的數(shù)據(jù)將被舍棄。通常情況下,打斷正在寫入的過程不會對其他地址中的數(shù)據(jù)造成影響

46、,但是掉電的風(fēng)險確實不可控的會造成一定的損失。然而,eMMC應(yīng)用了一些技術(shù),來平衡寫入性能和正在寫入過程中掉電的數(shù)據(jù)保護(hù)(我的理解是若不管掉電的風(fēng)險,則會增強(qiáng)寫入性能;若要保持穩(wěn)定,則會一定程度上降低寫入性能)。在DDR模式中,寫入數(shù)據(jù)塊大小只能為512B,不支持局部塊寫入。單塊寫入方式與讀數(shù)據(jù)類似。多塊寫入方式有三種,開放式寫入,確定塊數(shù)寫入和可靠寫入(Reliable Write)。前兩種寫入方式與讀數(shù)據(jù)類似,不再贅述??煽繉懭胧鞘孪榷x好要寫入的塊數(shù)和可靠寫入?yún)?shù)。它與前面的區(qū)別是,如果一個數(shù)據(jù)要寫入一個物理地址中,這個物理地址中之前存在數(shù)據(jù),那么這個之前存在的數(shù)據(jù)在新數(shù)據(jù)沒有寫完畢前是

47、不會改變的。這個技術(shù)確保了物理地址中數(shù)據(jù)的更新不會留下沒有定義的數(shù)據(jù)。在編程過程中,即使掉電,數(shù)據(jù)也必須保持有效。這個功能的使用是依靠發(fā)送CMD23中設(shè)置bit31為1來實現(xiàn)的。在可靠性寫入中:所有塊長度均為512B,不受設(shè)置塊長度影響。可靠性寫入必須是與扇區(qū)對齊的,不能任意指定地址,如果沒有對齊,則bit19錯誤位將會置1并且終止寫入操作。如果用戶要用局部塊寫入操作,則必須事先看CSD寄存器中的WRITE_BLK_MISALIGNED是否為0,若不為0則系統(tǒng)不允許局部塊寫入,寫入時寫入塊必須與物理地址對齊。寫單塊數(shù)據(jù)流程與寫多塊數(shù)據(jù)流程類似,下面只說明寫多塊數(shù)據(jù)流程及時序。寫多塊數(shù)據(jù)的順序為

48、,首先,主機(jī)發(fā)送CMD16指令設(shè)置塊長度,如果塊長度不需要改變,則這步可以省略。接著發(fā)送CMD25(MULTIPLE_BL_WRITE),如果這兩步設(shè)備均接收不響應(yīng)錯誤,則進(jìn)入數(shù)據(jù)傳輸模式。在每個塊傳輸完畢后,設(shè)備會向主機(jī)發(fā)送回復(fù)供主機(jī)檢測CRC,如果CRC正確,且設(shè)備處于不忙狀態(tài),主機(jī)將會發(fā)送下一塊數(shù)據(jù)。當(dāng)發(fā)送數(shù)據(jù)塊時,主機(jī)也可以查詢設(shè)備的狀態(tài)寄存器去對設(shè)備存在的任何新的狀態(tài)信息進(jìn)行檢測。最后結(jié)束需要停止指令。圖29 多塊寫入流程圖圖30 多塊寫入時序圖 3.1.5.4擦除操作(Erase、Trim、Discard )設(shè)備的擦除操作也是寫操作中必不可少的一部分。eMMC中可擦除單元叫做“Er

49、ase Group”。Erase Group的大小是每個設(shè)備特殊的參數(shù),如果ERASE_GROUP_DEF不使能,它就被定義在CSD寄存器中,如果ERASE_GROUP_DEF使能,則它被定義在ECSD中。被擦除后的單元可能被擦除成0,也可能被擦除成1,這依賴于不同的存儲技術(shù),這個值在ECSD中會被定義。表11 ERASE_GROUP_DEF寄存器定義當(dāng)ERASE_GROUP_DEF(EXT_CSD175)=0時 size of erasable unit = (ERASE_GRP_SIZE + 1) * (ERASE_GRP_MULT + 1) size of write protect =

50、 (WP_GRP_SIZE+1)當(dāng)ERASE_GROUP_DEF(EXT_CSD175)=1時 size of erasable unit = 512Kbyte × HC_ERASE_GRP_SIZE size of write protect = 512KB * HC_ERASE_GRP_SIZE * HC_WP_GRP_SIZE 一旦擦除指令完成,設(shè)備中相應(yīng)的地址范圍中的單元將會被擦除成0或者1,這依賴于不同的存儲技術(shù)。主機(jī)能夠擦除一連串的Erase Group。開始擦除工作分為三個步驟,第一步,主機(jī)發(fā)送CMD35(ERASE_GROUP_START)命令來確定擦除的開始地址。第

51、二步發(fā)送CMD36定義結(jié)束地址。第三步,發(fā)送CMD38命令開始擦除操作。地址范圍與寫入時定義相同,在容量小于2GB時,地址范圍指的是字節(jié)范圍,在容量大于2GB時,地址范圍指的是扇區(qū)范圍。如果設(shè)備沒有按照這三步的順序接收到指令,設(shè)備就會將ERASE_SEQ_ERROR位置1(這位在狀態(tài)寄存器中),然后重置擦除過程。如果主機(jī)提供的地址超出地址范圍,設(shè)備將會拒絕擦除命令,并將ADDRESS_OUT_OF_RANGE位置1,并且重置擦除過程。如果在擦除過程中一個不是擦除操作命令被主機(jī)發(fā)出,則設(shè)備會將ERASE_RESET位置1,并且重置擦除過程,執(zhí)行最后一條指令。不過,沒有被設(shè)備編址的指令是不會結(jié)束擦除操作的,即此命令無效。如果擦除操作地址包含了寫保護(hù)的地址,這些地址上的數(shù)據(jù)將會被保護(hù),只有那些沒有寫保護(hù)的塊會被擦除。此時狀態(tài)寄存器中的WP_ERASE_SKIP位將會置1.擦除操作像寫操作一樣,在進(jìn)行過程中設(shè)備會將DAT0置0.擦除操作耗時較長,所以主機(jī)可以發(fā)送CMD7命令對該設(shè)備取消選中。圖31 擦除操作流程圖eMMC的擦除操作分為四種方式,ERASE,TRIM,DISCARD,SANTIZE四種,這四種方式有一定的區(qū)別。擦除命令EraseTrimDiscardSanitizeargument 0x00000000 0x00000001 0x00000003 N/Auni

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論