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

下載本文檔

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

文檔簡介

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

2、 結(jié)構(gòu)由一個嵌入式存儲解決方案組成: 標(biāo)準(zhǔn)MMC封裝接口 主控制器 (控制芯片) 快閃存儲器設(shè)備(NAND Flash芯片 ) 這三部分封裝在一個JEDEC(固態(tài)技術(shù)協(xié)會)標(biāo)準(zhǔn)的BGA上。 接口速度高達(dá)每秒52MB,eMMC具有快速、可升級的性能。同時其接口電壓可以是1.8v 或者是3.3v。,eMMC的結(jié)構(gòu),看圖說話 Core Regulator 核心穩(wěn)壓器,eMMC的結(jié)構(gòu),Memory NAND Flash 存儲介質(zhì),控制信號,數(shù)據(jù)總線,MMC I/O Block,NAND I/O Block,Core Regulator (required for 3.3v),Core Logic Bl

3、ock,VCC,VCCQ,RESET,VDDi,CLK,CMD,DAT7:0,Creg,1. I/O0 I/O7:用于輸入地址/數(shù)據(jù)/命令, 輸出數(shù)據(jù),有可能16位,但高8位只用于數(shù)據(jù) 2. CLE: Command Latch Enable, 命令鎖存使能, 在輸入命令之前, 要先在模式寄存器中, 設(shè)置CLE使能 3. ALE: Address Latch Enable, 地址鎖存使能, 在輸入地址之前, 要先在模式寄存器中, 設(shè)置ALE使能 4. CE#: Chip Enable, 芯片使能, 在操作Nand Flash之前, 要先選中此芯片, 才能操作 5. RE#: Read Enab

4、le, 讀使能, 在讀取數(shù)據(jù)之前, 要先使CE#有效。 6. WE#: Write Enable, 寫使能, 在寫取數(shù)據(jù)之前, 要先使WE#有效。 7. WP#: Write Protect, 寫保護(hù) 8. R/B#: Ready/Busy Output,就緒/忙,主要用于在發(fā)送完編程/擦除命令后, 檢測這些操作是否完成: 忙, 表示編程/擦除操作仍在進(jìn)行中, 就緒表示操作完成. 9. Vcc: Power, 電源 10. Vss: Ground, 接地 11. N.C: Non-Connection, 未定義, 未連接。 小常識 在數(shù)據(jù)手冊中, 你常會看到, 對于一個引腳定義, 有些字母上面

5、帶一橫杠的, 那是說明此引腳/信號是低電平有效, 比如你上面看到的RE頭上有個橫線, 就是說明, 此RE是低電平有效, 此外, 為了書寫方便, 在字母后面加“#”, 也是表示低電平有效,比如上面寫的CE#;如果字母頭上啥都沒有,就是默認(rèn)的高電平有效,比如上面的CLE,就是高電平有效。,Nand Flash引腳(Pin)的說明,1、SLC 和 MLC SLC每個存儲單元只存儲一個Bit數(shù)據(jù) MLC每個存儲單元可以存儲多個Bit數(shù)據(jù) 根據(jù)電荷多少設(shè)定閥值,比如4V,可以用1234V分別表示數(shù)值 2、如何識別SLC和MLC 通過讀取chip ID,chip ID 最少4個字節(jié),可以更多 其中第3個字

6、節(jié)中的信息如下 Bit1:0 內(nèi)部芯片數(shù) 1、2、4、8 Bit3:2 電平種類數(shù) 2、4、8、16 Bit5:4 可同時編程頁1、2、4、8 Bit6 多芯片交替編程是否支持 0:不支持 Bit7 高速緩存編程(cache Program)是否支持 0:不支持,Nand 的存儲單元,Nand Flash 的核心部件是 Floating Gate FET(浮置柵場效應(yīng)管) NAND Flash 的擦寫均是基于隧道效應(yīng):電子從源極穿過浮置柵極與硅基層之間的絕緣層,對浮置柵極充電(寫數(shù)據(jù) 0)或放電(擦數(shù)據(jù) 1),Nand Flash 擦除以block為單位,寫數(shù)據(jù)以page為單位。 清除Flas

7、h的數(shù)據(jù)是寫1,這與硬盤正好相反。 Nor Flash 則反過來,電流從浮置柵極到源極,稱為熱電子注入,NAND 存儲單元硬件原理,1、NAND的閃存單元比NOR要小 因為NOR的每個單元都需要獨立的金屬觸點。 NAND的與硬盤驅(qū)動器類似,基于扇區(qū)(頁Page),也存在壞的扇區(qū),需要ECC糾錯 2、因為單元小,所以NAND的寫(編程)和擦除的速率快;而NOR的優(yōu)點是具有隨機存取和對字節(jié)執(zhí)行寫操作的能力,NAND的則比較慢。,Nand 和 Nor 物理上的區(qū)別,塊(Block)是擦除操作的最小單位(相當(dāng)于硬盤的扇區(qū)) 一個nand flash由很多個塊(Block)組成,塊的大小一般是128KB

8、,256KB,512KB 頁(Page)是編程操作的最小單位 每個塊里面又包含了很多頁(page)。頁的大小256B、512B、2KB、4KB 每一個頁,對應(yīng)還有一塊區(qū)域,叫做空閑區(qū)域(spare area)/冗余區(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

9、 and Correcting),所以設(shè)計了多余的區(qū)域,用于放置數(shù)據(jù)的校驗值。 OOB的第6個Byte標(biāo)記為非0 xff時,表示壞塊 ECC一般每256字節(jié)生成3字節(jié)ECC校驗數(shù)據(jù)。(6bit列校驗+16bit行校驗+2bit保留) 頁的編程只能順序進(jìn)行:Page1-Page2-Page3,Nand Flash物理存儲單元的陣列組織結(jié)構(gòu),Nand Flash物理存儲單元的陣列組織結(jié)構(gòu),以2Gb (128MB)NAND器件為例,它由2048個Block組成, 1Block = 64 Page(128KB) 1Page = 2048Bytes+64Bytes(見下圖) 即128MB = 2048(

10、Block)*64(Page)*2048Bytes,頁寄存器(Page Register):由于Nand Flash讀取和編程操作來說,一般最小單位是頁,所以,nand flash在硬件設(shè)計時候,就考慮到這一特性,對于每一片,都有一個對應(yīng)的區(qū)域,專門用于存放,將要寫入到物理存儲單元中去的或者剛從存儲單元中讀取出來 的,一頁的數(shù)據(jù),這個數(shù)據(jù)緩存區(qū),本質(zhì)上就是一個buffer,但是只是名字叫法不同,datasheet里面叫做Page Register,此處翻譯為頁寄存器,實際理解為頁緩存,更為恰當(dāng)些。,Nand Flash中的特殊硬件結(jié)構(gòu),以三星的芯片為例: 1、配置寄存器(NFCONF)0 x4

11、E000000 2、命令寄存器(NFCMD)0 x4E000004 3、地址寄存器(NFADDR)0 x4E000008 4、數(shù)據(jù)寄存器(NFDATA)0 x4E00000C 5、狀態(tài)寄存器(NFSTAT)0 x4E000010 6、ECC校驗寄存器(NFECC)0 x4E000014,Nand Flash中的特殊硬件結(jié)構(gòu),Nand Flash 的命令合集(某款芯片),Nand flash的寫操作叫做編程(Program),一般以頁為單位的。 寫操作只能在空頁面或者已經(jīng)被擦除的頁面進(jìn)行(全0 xFF) 擦除的步驟(以塊為單位) 1、發(fā)送擦除設(shè)置命令 0 x60 2、發(fā)送要擦除的塊地址 3、發(fā)送

12、開始擦除命令 0 xD0 寫操作的步驟(以頁為單位) 1、發(fā)送寫命令 0 x80 2、發(fā)送要編程的頁地址和數(shù)據(jù)(1個Page) 3、發(fā)送開始寫命令 0 x10,NAND Flash 的編程操作(寫),步驟同寫操作 1、發(fā)送寫命令 0 x00 2、發(fā)送要讀取的頁地址 3、發(fā)送開始寫命令 0 x30 4、查看寄存器狀態(tài),R/B#為ready(1)時,可以從緩存中取數(shù)據(jù) 時序圖,Nand Flash 的讀操作,以K9K8G08U0A為例 此nand flash,一共有8192個塊,每個塊內(nèi)有64頁,每個頁是2K+64 Bytes 假設(shè)我們要訪問第7000個塊中的第25頁中的1208字節(jié)的地址 物理地

13、址=塊號塊大小+頁號頁大小+頁內(nèi)地址=7000128K+252K+1208=0 x36B0CCB8 (917556408) 計算地址的時候計算OOB的大小嗎?不計算,如何計算地址,1、地址周期的說明(不同的Flash可能會有不同) 0 x36B0CCB8= 0011 0110 1011 0000 1100 1100 1011 1000 地址: 1、A7A0 :1011 1000 2、A11A8:0000 1100 (A10A0:100 1011 1000:1208 頁地址) 3、A19A12:0000 1100 (A16A11:011001:25頁 ) 4、A27A20:0110 1011 5

14、、A29A28:0000 0011(A29A17:11 0110 1011 000:7000Block) A10A0:頁內(nèi)地址 02047 ;A11用于表示20482112 OOB A16A11:頁地址;A29A17:塊地址,如何傳輸?shù)刂?1、自從NAND結(jié)構(gòu)被設(shè)計以來,標(biāo)準(zhǔn)規(guī)范中是允許存在壞塊的,只要壞塊比例小于總?cè)萘康?%就是允許的。 2、壞塊列表是被要求的,因為NAND Flash只能執(zhí)行有限次數(shù)的讀和擦除次數(shù)(10w100w),所有的Flash存儲器最終都會被磨損且不再能使用,壞塊列表用來跟蹤記錄壞塊。 3、壞塊分為兩種: 1)生產(chǎn)過程中產(chǎn)生的 一般在該塊的前兩個Page的滴517字節(jié)

15、處用非FF來標(biāo)識(每頁512字節(jié)) 2)使用過程中產(chǎn)生的 如果一個塊在擦除整塊或?qū)懸粋€頁失敗時,會被標(biāo)志為壞塊,并且以后不再訪問 如果擦除了壞塊,即標(biāo)識位被改為0 xff,那么在無法單獨對塊測試的情況下是很難重新標(biāo)識的,所以壞塊表(invalid block table)是很重要的,Invalid Block(壞塊)的管理,4、嵌入式系統(tǒng)中對壞塊的處理方式 1)Skip Block Method(跳過壞塊模式) 在寫入之前讀取所有壞塊的地址,然后寫入數(shù)據(jù),當(dāng)目標(biāo)地址是壞塊地址時,跳過壞塊,寫入下一個好的塊中,繼續(xù)保留壞塊中的標(biāo)識信息。所以在程序?qū)雸?zhí)行前,要先讀取OOB中的壞塊信息,建立列表。

16、,Invalid Block(壞塊)的管理,4、嵌入式系統(tǒng)中對壞塊的處理方式 2)Reserved Block Area Method(保留塊區(qū)域方式) 這種燒錄算法,首先決定哪些塊 用來做UBA(User Block Area),這些 塊被RBA map table記錄,并保留。 接下來讀取OOB建立一個map到RBA RBA第一第二塊被用于存儲列表。 Map中包含了哪些保留塊被用來替代 壞塊,Invalid Block(壞塊)的管理,1、一般的嵌入式系統(tǒng)會使用NAND Flash來存儲文件(file)、啟動代碼(boot code)、OS代碼或簡單的數(shù)據(jù)文件,這就需要像管理文件系統(tǒng)一樣管理

17、NAND FLASH。 功能包括 格式化、碎片收集、磁盤整理等等。 目前比較廣泛的文件系統(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 對小頁面(512+16Byte)支持很好,yaffs2對大頁面支持較好(2K+64Byte) Yaffs 對文件系統(tǒng)上的所有內(nèi)容都當(dāng)做文件處理,每個文件都有一個頁專門存放文件頭,文件頭包含了文件的模式、所有者ID、組ID、長度、

18、文件名、Parent Object ID等,因為頁的大小有限,所以對這些都有長度限制。一般都存放在OOB中,文件系統(tǒng),1、硬盤的組成 一般說來,無論哪種硬盤,都是由盤片、磁頭、盤片主軸、控制電機、磁頭控制器、數(shù)據(jù)轉(zhuǎn)換器、接口、緩存等幾個部份組成。 所有的盤片都固定在一個旋轉(zhuǎn)軸上,這個軸即盤片主軸。 而所有盤片之間是絕對平行的,在每個盤片的存儲面上都有一個磁頭,磁頭與盤片之間的距離比頭發(fā) 絲的直徑還小。 所有的磁頭連在一個磁頭控制器上,由磁頭控制器負(fù)責(zé)各個磁頭的運動。磁頭可沿盤片的半徑方向動作,而盤片以每分鐘數(shù)千轉(zhuǎn)到上萬轉(zhuǎn)的速度在高 速旋轉(zhuǎn),這樣磁頭就能對盤片上的指定位置進(jìn)行數(shù)據(jù)的讀寫操作。 中

19、間是起飛區(qū),高速旋轉(zhuǎn)后,磁頭懸浮起來, 然后移動到對應(yīng)的位置讀取數(shù)據(jù),硬盤的結(jié)構(gòu),2、硬盤的工作原理 硬盤在邏輯上被劃分為磁道、磁頭以及扇區(qū) 磁道 由外向內(nèi)0 xxx 磁頭 由上到下0 xxx 扇區(qū) 由左到右1xxxx 扇區(qū)頭存放了3圍坐標(biāo) 磁道、磁頭、扇區(qū)號,硬盤的結(jié)構(gòu),1、Linux中MTD子系統(tǒng)在系統(tǒng)的硬件驅(qū)動程序和文件系統(tǒng)之間提供通用接口,常用的文件系統(tǒng)是yaffs2 2、MTD內(nèi)存技術(shù)設(shè)備層次結(jié)構(gòu) FLASH硬件驅(qū)動主要指NAND驅(qū)動 Kernel/drivers/mtd/nand/ MTD原始設(shè)備實際上是一種塊設(shè)備, MTD字符設(shè)備的讀寫函數(shù)也調(diào)用原始 設(shè)備的操作函數(shù)來實現(xiàn)Kern

20、el/drivers/mtd/mtdcore.c MTD原始設(shè)備到具體設(shè)備之間存在的一 些映射關(guān)系數(shù)據(jù)在drivers/mtd/maps/中包括 分區(qū)信息、I/O映射及特定函數(shù)的映射,MTD內(nèi)存技術(shù)設(shè)備,字符設(shè)備節(jié)點,根文件系統(tǒng),MTD字符設(shè)備,MTD原始設(shè)備(塊設(shè)備),FLASH硬件驅(qū)動,MTD塊設(shè)備,塊設(shè)備節(jié)點,文件系統(tǒng),1、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寄存器,12

21、8位,是卡的鑒別寄存器,存有卡的鑒別信息; CA寄存器,16位,存有卡的本地系統(tǒng)的相對地址,在初始化時由控制器動態(tài)指定。 DSR寄存器,16位,是配置卡的驅(qū)動程序的寄存器,是可選的。 CSD寄存器,卡特定數(shù)據(jù)信息描述寄存器,是可選的。 OCR寄存器,操作控制寄存器。,SD/MMC卡塊設(shè)備驅(qū)動程序,1、MMC驅(qū)動程序的層次結(jié)構(gòu) 通用設(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è)備

22、的寄存器控制等。這種分層結(jié)構(gòu)層次分明,管理有效。MMC驅(qū)動程序的層次結(jié)構(gòu)如下圖:,SD/MMC卡塊設(shè)備驅(qū)動程序,通用設(shè)備層 (device/drivers/resource),MMC描象設(shè)備層 (mmc_host/mmc_driver/mmc_card),MMC協(xié)議層 (將MMC操作分解成標(biāo)準(zhǔn)的MMC協(xié)議傳給設(shè)備),具體設(shè)備層 (用特定的物理設(shè)備的mmci_host/amba_driver/amba_device),1、MMC塊設(shè)備驅(qū)動程序初始化 mmc_blk_init()【drivers/mmc/card/block.c】 它先將MMC塊設(shè)備名注冊到名稱數(shù)組major_names中,然后,還把驅(qū)動程序注冊到sysfs文件系統(tǒng)中的總線和設(shè)備目錄中。一方面,sysfs文件系統(tǒng)中可顯示MMC塊設(shè)備相關(guān)信息,另一方面,sysfs文件系統(tǒng)以樹形結(jié)構(gòu)管理著 MMC塊設(shè)備驅(qū)動程序。 mmc_register_driver()

溫馨提示

  • 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

提交評論