eMMC存儲簡介_第1頁
eMMC存儲簡介_第2頁
eMMC存儲簡介_第3頁
eMMC存儲簡介_第4頁
eMMC存儲簡介_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、eMMC存儲簡介只是簡介冏沙貝2012.9.21什么是eMMC* eMMC (Embedded Multi Media Card)炭入式多嫖體卡* MMC協(xié)會所訂立的內(nèi)炭式存儲器標(biāo)準(zhǔn)規(guī)格主要應(yīng)用于智能手機和移動按入式產(chǎn)eMMC的結(jié)構(gòu)* k eMMC擁有存儲以及取代Nor Flash的開機功能,開機速度比傳統(tǒng)的MCP要快幾信*2、eMMC可以很好的鮮決對MLC和TLC的管理,ECC 除錯機制、區(qū)塊管理、平均抹寫儲存區(qū)塊技術(shù)、指令 管理、低功耗管理等。*3、廠商不用再為不同的N AND Flash重新設(shè)計規(guī)格、 不用處理NAND Flash相家性和管理問題.縮短新醃上 市周期、研發(fā)成本eMMC結(jié)構(gòu)

2、由一個炭入式存儲鮮決方秦組成: *標(biāo)準(zhǔn)MMC封裝接口*主控制器(控制芯片)*快閃存儲器設(shè)備(NAND Flash起片)這三部分封裝在一個JEDEC(固態(tài)技術(shù)協(xié)會)標(biāo)準(zhǔn)的BGA上。*接口速度高達(dá)每秒52MB, eMMC具有快速、可升級的性能。 同肘其接口電壓可以是18v或者是33v。eMMC的結(jié)構(gòu)eMMC的結(jié)構(gòu)vccVCCQRESETVDDiCLKCMDDAT7:o控制信號»數(shù)據(jù)總線寺MemoryNANDFlash存儲介質(zhì)N and Flash引腳(Pin)的說朗1. l/OO - 1/07:用于輸入地址/數(shù)據(jù)/命令,輸出數(shù)據(jù),有可能16佞,但壽8住只用于數(shù)據(jù)* 2. CLE: Com

3、mand Latch Enable,命令鎖存後能,疫綸入命令之it,要先疫模式寄存黑中,殺置 CLE使能* 3. ALE: Address Latch Enable,地址荻存使能,疫輸入地址之訂,要先疫嶺式寄存彖中,役置ALE 使能* 4. CE#: Chip Enable,芯片使能,疫操作Nand Flash之前,要丸選中此芯片,才能操佐* 5. RE#: Read Enable,讀使能,癥.讀取教據(jù)之訂,要先使CE#有效。* 6. WE#: Write Enable,寫使能,疫寫取數(shù)據(jù)之前,要丸使WE#有效。* 7. WP#: Write Protect,寫保護* 8. R/B#: Rea

4、dy/Busy Output,就緒/忙,主要用于莊發(fā)送完編程/擦余命冬后,檢測這些操作是否 完成:忙,表示編程/擦除操作仿淮.進(jìn)行中,就緒表示操作完成.* 9. Vcc: Power,電源* 10. Vss: Ground,接地* 11. N.C: Non-Connection,未定義,未連接。* 小常識*在數(shù)據(jù)手冊中,你常會看到,對于一個引腳定義,有些字母上面帶一橫杠的,那是說朗此引腳/ 信號是低勒平有效,比如你上面看到的RE頭上有個橫線,就是說朗,此RE是低色平有效,此外, 為了書寫方便,莊字母后面加“#”,也是表示低色平有效,此如上面寫的CE#;如果哮母頭 上啥都沒有,就是默認(rèn)的當(dāng)色平有

5、效,比如上面的CLE,就是爲(wèi)色平有效。Nand的存儲單元* 1、SLC 和 MLC* SLC每個存儲單元只存儲一個Bit數(shù)據(jù)* MLC每個存儲單元可以存儲多個Bit數(shù)據(jù)*根據(jù)色荷多少段定閥值,比如4V,可以用1234V分別表示數(shù)值* 2、如何枳別SLC和MLC*通過讀取chip ID, chip ID最少4個字節(jié),可以更多*其中第3個字節(jié)中的傳息如下* Bitl:O內(nèi)部芯片數(shù) 1、2、4. 8* Bit3:2色平種類2. 4、8、16* Bit5:4可同時編程頁1、2、4、8Bit6多芯片交替編程是否支持0:不支持* Bit7嘉速緩存編程(cache Program)是否支持0:不支持NAND

6、存儲單元硬件原理Nand Flash的核心部件是Floating Gate FET(浮置柵場效應(yīng)管)TiT>unNAND Flash的擦寫均是基于隧道數(shù)應(yīng):削子從嫄極穿過浮置柵極與硅 基層之間的絕緣層,對浮置柵極充勒(寫數(shù)擔(dān)0)或放色(擦數(shù)據(jù)1),Nand Flash擦除以block為單住,寫數(shù)擔(dān)以page為單佞。 請除Flash的數(shù)據(jù)是寫1,這與硬盤正好相反。Nor Flash則反過來,色流從浮置柵極到源極,稱為熱削子注入湖i檢浮鬣艸輾瞪氧化物 I純繚體Nand和Nor煬理上的區(qū)別* 1、NAND的閃存單元比NOR要小*因為NOR的每個單元都需要獨立的金屬觸點。* NAND的與硬盤驅(qū)動

7、器類似,基于扇區(qū)(頁Page),也存在壞的扇區(qū), 需要ECC糾錯*2、因為單元小,所以NAND的寫(編程)和擦除的速率快;而 NOR的優(yōu)點是具有隨機存取和對字節(jié)執(zhí)行寫操作的能力, NAND的則比較慢。Nand Flash物理存儲單元的陣列組織結(jié)構(gòu)*塊(Block)是擦除操作的最小單位(相當(dāng)于硬盤的扇區(qū):* 一個nand flash由很多個塊(Block)組成,塊的大小一般是128KB, 256KB, 512KB*(Page)是編程操作的最小單位*每個塊至面又包含了很多頁(page) o頁的大小256E、512B. 2KB、4KB*每一個頁,對應(yīng)還有一塊區(qū)域,叫做空閑區(qū)域(spare area)

8、 /冗余區(qū)域 (redundant area),而 Linux 系統(tǒng)中,一般叫做 OOB (Out Of Band)。*這個區(qū)域,是最初基于Nand Flash的硬件特性:數(shù)據(jù)在讀寫時候相對容易錯誤, 所以為了保證數(shù)據(jù)的正確性,必須要有對應(yīng)的檢測和糾錯機制,此機制被叫做 EDC(Error Detection Code)/ECC (Error Code Correction,Error Checking and Correcting),所以設(shè)計了多余的區(qū)域,用于放置數(shù)據(jù)的校驗值。* OOE的第6個Byw標(biāo)記為非Oxff時,表示壞塊* ECC一般每256字節(jié)生成3字節(jié)ECC校驗數(shù)據(jù)。(6bit列

9、校驗+16bit行校驗+ 2b讓保留)Nand Flash物理存儲單元的陣列組織結(jié)構(gòu)*以2Gb (128MB)NAND器件為例,它曲20假個Block組成,* lBlock = 64 Page(128T<B)* IPage = 2048Bytes+64Bytes (見下圖)* 即 128MB = 2048(Block)*64(Page)*2048Bytes3. 7he 2-Gbyte HAND device organized as 2048 biocks.Nand Flash中的特殊硬件結(jié)構(gòu)*頁寄存器(Page Register):由于Nand Flash讀取和編程操作來說,一般最 小

10、單位是頁,所以,nand flash在硬件設(shè)計時候,就考慮到這一特性,對于 每一片,都有一個對應(yīng)的區(qū)域,專門用于存放,將要寫入到物理存儲單元 中去的或者剛從存儲單元中讀取出來的,一頁的數(shù)據(jù),這個數(shù)據(jù)緩存區(qū), 本質(zhì)上就是一個buffer,但是只是名字叫法不同,datasheet里面叫做Page Register,此處翻譯為頁寄存器,實際理解為頁緩存,更為恰當(dāng)些。Nand Flash中的特殊硬件結(jié)構(gòu)以三星的芯片為例: 配置寄存器(NFCONF) 命令寄存器(NFCMD) 地址寄存器(NFADDR) 數(shù)據(jù)寄存器(NFDATA) 狀態(tài)寄存器(NFSTAT) ECC校驗寄存 器(NFECC)1、2、3、

11、4、0x4E0000000x4E0000040x4E0000080x4E00000C0x4E0000100x4E000014*5、6、Nand Flash的命令合集(某款芯片)IfIi扌Function1st Cycle地址周期數(shù)r2nd Cycle忙碌時可用ReadOOh530hRead for Copy BackOOh535hRead ID90h1一ResetFFh一一oPage Program80h510hTwo-Plane Page Program80hllh81h10hCopy-Back Program85h5lOhTwo-Plane Copy-Back Program85hllh8

12、1hlOhBlock Erase60h3DOhTwo-Plane Block Erase60h-60hDOhRandom Data Input85h2一Random Data Output05h2EOhRead Status70h0Read EDC Status7Bh一0Chipl StatusFlh0Chip2 StatusF2h一0NAND Flash的編程操作(寫)* Nand flash的寫操作叫做編程(Program), 一般以頁為單位的。*寫操作只能在空頁面或者已經(jīng)被擦除的頁面進(jìn)行(全OxFF)*擦除的步驟(以塊為單位)* 1、發(fā)送擦除設(shè)置命令0x60* 2、發(fā)送要擦除的塊地址*

13、3、發(fā)送開始擦除命令OxDO*寫操作的步驟(以頁為單位)* 1、發(fā)送寫命令0x80* 2、發(fā)送要編程的頁地址和數(shù)據(jù)(1個Page)* 3、發(fā)送開始寫命令0x10Nand Flash的讀操作步驟同寫操作*1、2、3、4、發(fā)送寫命令0x00 發(fā)送要讀取的頁地址 發(fā)送開始寫命令0x30CEWERECLEALEtR-*l/Ox旦tRR-* 遂/BtAR/ VRead Operation KD-(5AOdtCci AOCS2:Rcww Add 1Add3:5 :Column AddressRow AddresstCLRptRCJ 二out zout: yDovt M :tR HZ查看寄存器狀態(tài),R/B#

14、為ready(1)時,可以從緩存中取數(shù)據(jù)如何計算地址以 K9K8G08U0A 為例*此nand flash ? 一共有8192個塊,每個塊內(nèi)有64頁,每個頁是 2K+64 Bytes*假設(shè)我們要訪問第7000個塊中的第25頁中的1208字節(jié)的地址*物理地址二塊號X塊大小+頁號X頁大小+頁內(nèi)地址=7000 X 128K+25 X 2I<+1208=0x36B0CCB8 (917556408)*計算地址的時候計算OOB的大小嗎?不計算如何傳輸?shù)刂?#39;* 1、地址周期的說明(不丘可的Flash可月匕會有不同)Cycle1/071/06I/O5I/O4I/O3I/O2I/Ol1/00Fir

15、stA7A6A5A4A3A2AlA0ColumnSecondLOWLOWLOWLOWAllA10A9A8ColumnThirdA19A18A17A16A15A14A13A12RowFourthA27A26A25A24A23A22A21A20RowfifthLOWLOWLOWLOWLOWLOWA29A28Row* 0x36B0CCB8= 0011 0110 1011 0000 1100 1100 1011 1000 地址:* 1、A7 A0 : 1011 1000* 2、AllA8: 0000 1100 (A10A0: 100 1011 1000: 1208 頁地址)* 3、A19A12: 00

16、00 1100 (A16All: 011001: 25頁)* 4、A27A20: 0110 1011* 5、A29A28: 0000 0011(A29A17: 11 0110 1011 000: 7000Block)* A10A0:頁內(nèi)地址02047 ; All用于表示20482112 OOB* A16All:頁地址;A29A17:塊地址Invalid Block(壞塊)的管理* 1、自從NAND結(jié)構(gòu)被設(shè)計以來,標(biāo)準(zhǔn)規(guī)范中是允許存在壞塊的,只 要壞塊比例小于總?cè)萘康?%就是允許騎*2、壞塊列表是被要求的,因為NAND Flash只能執(zhí)行有限次數(shù)的讀 和擦除次M(iow-ioow),所有的Fla

17、sh存儲器最終都會菠磨損且不再 能彳吏用,壞塊列表用來跟蹤記錄壞塊。* 3、壞塊分為兩種:* 1)生產(chǎn)過程中產(chǎn)生的* 一般在該塊的前兩個Page的滴517字節(jié)處用非FF來標(biāo)識(每頁512字節(jié))* 2)使用過程中產(chǎn)生的*如果一個塊在擦除整塊或?qū)懸粋€頁失敗時,會被標(biāo)志為壞塊,并且以后 不再訪問*如果擦除了壞塊,即標(biāo)識位被改為oxff,那么在無法單獨對塊測試的情況卞是很難董薪示識昭,所以壞慶表(invalid block table)是彳良重要的Invalid Block(壞塊)的管理* 1)Skip Block Method(跳過壞塊模式)*在寫入之前讀取所有壞塊的地址,然后寫入數(shù)據(jù),當(dāng)目標(biāo)地址是

18、壞塊地 址時,跳過壞塊,寫入下一個好的塊中,繼續(xù)保留壞塊中的標(biāo)識信息。 所以在程序?qū)雸?zhí)行前,要先讀取OOB中的壞塊信息,建立列表。Data imageDeviceFigNPQ 5: Skip block methodInvalid Block(壞塊)的管理* 2)Reserved Block Area Method(保留塊區(qū)域方式)*這種燒錄算法,首先決定哪些塊* 用來做UBA(User Block Area),這些*塊被RBA map table記錄,并保留。*接下來讀取OOB建立一個map到RBA* RBA第一第二塊被用于存儲列表。* Map中包含了哪些保留塊被用來替代 *壞塊Block

19、 0Block 1 Block 2Block 3、Block 4 Block 5Data imageDeviceBlock 0Block 1Invalid block ®Block 3Block 4Invalid block ®UnusedUnusedBlock 2Invalid block ®Block 5UnusedRBA tableInvalid block 0RBA table copy> Block reservoirFigure 7: The Resened Block Area method文件系統(tǒng)專1、一般的嵌入式系統(tǒng)會使用NAND Flas

20、h來存儲文件(file)、啟 動代碼(boot code)> OS代碼或簡單的數(shù)據(jù)文件,這就需要像 管理文件系統(tǒng)一樣管理NAND FLASHo*功能包括格式化、碎片收集、磁盤整理等等。*目前比較廣泛的文件系統(tǒng)有fat、jffs2、yaffs2> ext4等等丈件糸統(tǒng)Yaffs 文件系統(tǒng)(Yet Another Flash File System)* Yaffs文件系統(tǒng)是一個開源的專為NAND Flash設(shè)計的文件系統(tǒng),具有很好的可 移植性,可以在Linux、WinCE 中運彳打* Yaffs對小頁面(5i2+i6Byte)支持很好,yaffs2對大頁面支持較好(2K+64Byte)

21、* Yaffs對文件系統(tǒng)上的所有內(nèi)容都當(dāng)做文件處理,每個文件都有一個頁專門 存放文件頭,文件頭包含了文件的模式、所有者ID、組ID、長度、文件名、 Parent Object ID等,因為頁的大小有限,所以對這些都有長度限制。一般都 存放在OOB中512-515YAFFS TAG516壞塊標(biāo)志位5V數(shù)據(jù)狀態(tài)518、519YAFFS TAG520-522后512字節(jié)的ECC校驗結(jié)果硬盤的結(jié)構(gòu)1、硬盤的組成* 一般說來,無論哪種硬盤,都是由盤片、養(yǎng)片主軸、控制 響整成。*所有的盤片都固定在一個旋轉(zhuǎn)軸上,這個軸即盤片主軸。*而所有盤片之間是絕對平行的,在每個盤片的存儲面上都有一個磁頭,磁頭與盤片之間

22、的 距離比頭發(fā)絲的直徑還小。所有的磁頭連在一個磁頭控制器上,由磁頭控制器負(fù)責(zé)各個磁頭的運動。磁頭可沿盤片的 半徑方向動作,而盤片以每分鐘數(shù)千轉(zhuǎn)到上萬轉(zhuǎn)的速度在高速旋轉(zhuǎn),這樣磁頭就能對盤片上的指定位置進(jìn)行數(shù)據(jù)的讀寫操作。snitas 片主雜(馬達(dá) 電機與抽承 SXT 方)音馬達(dá)永國僅中間是起飛區(qū),高速旋轉(zhuǎn)怎,磁頭懸浮起來, 然后移動到對應(yīng)的位置讀取數(shù)據(jù)硬盤的結(jié)構(gòu)*硬盤在邏輯上被劃分為磁道、磁頭以及扇區(qū)*磁道*由夕卜向內(nèi)oxxx*磁頭*由上到下oxxx*扇區(qū)*由左到右1-XXXX醫(yī)址從0幵結(jié).由外里境兮I5BW8:面進(jìn)行ifi號【它動金RMI頭 -起內(nèi)、外»型】 現(xiàn)在處農(nóng)刖-舉牠上神全處

23、 力8道)莊的個貼 分上處渤頭想出2號前莊屮釣 金部44逼.0註 iNtt ZMtT0 號*扇區(qū)頭存放3司坐標(biāo)磁道、磁頭、扇區(qū)號MTD內(nèi)存技術(shù)設(shè)備* 1、Linux中MTD子系統(tǒng)在系統(tǒng)的硬件驅(qū)動程序和文件系統(tǒng)之間提供通用接U,常用的文件系統(tǒng)是y/fs2* 2、*SD/MMC卡塊設(shè)備驅(qū)動程序、SD/MMC卡組成的存儲系統(tǒng)是許多嵌入設(shè)備的主要存儲設(shè)円 備,相當(dāng)于PC機的硬盤,在嵌入設(shè)備上的SD/MMC卡控制器通 過MMC協(xié)議來解析命令控制SD/MMC卡的操作。* 2、SD/MMC卡上有一些寄存器來控制卡的狀態(tài)及讀寫操作。 MMC協(xié)議規(guī)定的寄存器有:* CID寄存器,128位,是卡的鑒別寄存器,存有

24、卡的鑒別信息;* CA寄存器,16位,存有卡的本地系統(tǒng)的相對地址,在初始化時由 控制器動態(tài)指定。* DSR寄存器,16位,是配置卡的驅(qū)動程序的寄存器,是可選的。* CSD寄存器,卡特定數(shù)據(jù)信息描述寄存器,是可選的。* OCR寄存器,操作控制寄存器。SD/MMC卡塊設(shè)備驅(qū)動程序> MMC驅(qū)動程序的層次結(jié)騎一*通用設(shè)備層對于塊設(shè)備來說,主要負(fù)責(zé)設(shè)備內(nèi)核對象在sysfs文件系統(tǒng)中的管理、 請求隊列管理、及與文件系統(tǒng)的接口;* MMC抽象設(shè)備層抽出MMC卡的共有特性,如:MMC卡的請求管理、電源管理等.* MMC協(xié)議層將MMC操作分解成標(biāo)準(zhǔn)的MMC協(xié)議.*具體設(shè)備層則負(fù)責(zé)具體物理設(shè)備的寄存器控制

25、等。這種分層結(jié)構(gòu)層次分明,管理 有效。MMC驅(qū)動程序的層次結(jié)構(gòu)如下圖:通用設(shè)備層(device/ drivers/ resource)MMC描象設(shè)備層(mmc host/mmjdrivcr/mmc card)MMC協(xié)議層(將MMC操作 分解成標(biāo)準(zhǔn)的MMC協(xié)議傳給設(shè)備)具體設(shè)備層(用特定的物理設(shè)備的mmci host/amba driver/amba device)MMC抽象設(shè)備層MMC塊設(shè)備驅(qū)動程序MMC塊設(shè)備驅(qū)動程序初始化* mmc_blk_init0 drivers/mmc/card/block.c)*它先將MMC塊設(shè)備名注冊到名稱數(shù)組major_names中,然后,還把驅(qū) 動程序注冊到sysfs文件系統(tǒng)中的總線和設(shè)備目錄中。一方面,sysfs文 件系統(tǒng)中可顯

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論