精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>NAND Flash嵌入式存儲系統(tǒng)結(jié)構(gòu)資料下載

NAND Flash嵌入式存儲系統(tǒng)結(jié)構(gòu)資料下載

2021-04-26 | pdf | 152.47KB | 次下載 | 3積分

資料介紹

??目前市場上主要有兩類,即NAND Flash(Not And Flash ROM)和NOR Flash(Not Or Flash ROM)。前者具有容量大、讀寫速度快、芯片面積小、單元密度高、擦除速度快、成本低等特點,更適合于大批量數(shù)據(jù)存儲的嵌入式系統(tǒng)。如今Windows仍是桌面系統(tǒng)的主流,對FAT文件系統(tǒng)提供了天然的支持。然而就技術(shù)而言,F(xiàn)AT文件系統(tǒng)并不適合Flash,因為Flash設(shè)備并不是塊設(shè)備[1],為了不破壞兼容性,并在NAND型閃存中應(yīng)用FAT文件系統(tǒng),國際上提出了閃存轉(zhuǎn)譯層FTL(Flash Translation Layer)的解決方案。 ??1 NAND Flash嵌入式存儲系統(tǒng)結(jié)構(gòu) ??基于NAND Flash的存儲系統(tǒng)的設(shè)計首先要解決壞塊問題。由于NAND Flash自身存在固有壞塊并在擦除和編程中又隨機產(chǎn)生壞塊,因此為了提高設(shè)備的可靠性應(yīng)該將這兩種操作分散在閃存不同的塊中,以避免對某塊的過度操作。 ??一般的基于NAND Flash嵌入式存儲系統(tǒng)驅(qū)動結(jié)構(gòu)分為三個層次:最底層是硬件操作接口,負(fù)責(zé)將主控芯片與Flash的控制管腳相連,這方面的固件主要實現(xiàn)對NAND Flash的物理操作;中間層是閃存轉(zhuǎn)譯層NFTL(NAND FTL),是封裝在Flash驅(qū)動中的軟件模塊,其作用是將Flash模擬成與磁盤相類似的塊設(shè)備,使對上層操作系統(tǒng)而言,NAND Flash就像普通磁盤一樣被訪問。這一層主要是封裝一些特殊的復(fù)雜管理控制功能;最上面的層就是文件管理層,功能類似于普通磁盤上的通用文件系統(tǒng),向上層提供標(biāo)準(zhǔn)的文件操作接口。基于NAND Flash的嵌入式系統(tǒng)存儲結(jié)構(gòu)原理圖如圖1所示。 ?? ??根據(jù)以上兩個方面,既要在驅(qū)動中實現(xiàn)壞塊管理,又要進行塊模擬,所以可用的方法有兩種[2]:一是在上層文件系統(tǒng)中解決壞塊問題,驅(qū)動層只實現(xiàn)本身的功能,文件系統(tǒng)為驅(qū)動層提供不變的接口,為上層應(yīng)用程序提供可靠透明的服務(wù)。這種方法較簡單,開發(fā)周期比較短,但只對特定應(yīng)用的嵌入式系統(tǒng)有很強的適應(yīng)性;第二種方法是在驅(qū)動層的NFTL中解決壞塊問題,將不可靠的NAND Flash虛擬成可靠的存儲設(shè)備,為上層文件系統(tǒng)提供可靠透明服務(wù),這種方法較第一種更復(fù)雜,但是此法具有較強的可移植性并能徹底斷絕與文件系統(tǒng)的聯(lián)系,其他文件系統(tǒng)也同樣適用。 ??本文是以Samsung的NAND Flash K9F2808U0C作為,設(shè)計了一種在NFTL上實現(xiàn)壞塊管理并且實現(xiàn)連續(xù)數(shù)據(jù)讀取的方法。 ??2 設(shè)計思想 ??2.1 閃存空間劃分 ??K9F2808U0C是16 MB×8 bit的NAND Flash,共有1 024個Block,1 Block=16 KB,32 Page/Block,1 Page=528 B=(512 B+16 B),其中16 B為備用區(qū),主要存放NAND Flash出廠壞塊標(biāo)記、ECC校驗碼以及用戶自定義區(qū)。K9F2808U0C地址空間是24 bit,分三個周期依次送入NAND Flash的地址鎖存器。本文使用的地址均為字節(jié)地址,數(shù)據(jù)類型為DWORD(4 B)。 ??將K9F2808U0C的存儲空間劃分為四個區(qū):壞塊映射表存放區(qū)、交換塊區(qū)、壞塊映射區(qū)和實際數(shù)據(jù)存放區(qū)。文件系統(tǒng)管理的空間就是實際的數(shù)據(jù)存放空間,如圖2所示。 ?? ??2.2 各分區(qū)宏定義 ??#define FLASH_BLOCK_SIZE 0x40000 //16 KB/Block ??#define FLASH_PAGE_SIZE 0x200 //512 B/Page ??#define FLASH_SECTOR_SIZE 0x200 ??//1Page=1Sector(only K9F2808U0C) ??#define FLASH_BLOCKS_TABLE 3//壞塊映射表存放塊數(shù) ??#define FLASH_SWAP_BLOCKS 5 //交換區(qū)的塊數(shù) ??#define FLASH_BAD_BLOCKS_REMAP 50 ??//壞簇重映區(qū)的塊數(shù) ??#define FLASH_MAX_ADDR 0xFFFFFF ??//Flash最大字節(jié)地址 ??各分區(qū)首地址計算公式: ??FLASH_BLOCK_TABLE_ADDR=FLASH_MAX_ADDR+ ??1-3*FLASH_BLOCK_SIZE); ??FLASH_SWAP_BLOCK_ADDR=(FLASH_BLOCK_ ??TABLE_ADDR-5*FLASH_BLOCK_SIZE); ??FLASH_BAD_BLOCK_REMAP_ADDR=(FLASH_SWAP_ ??BLOCK_ADDR-50*FLASH_BLOCK_SIZE); ??FLASH_MAX_SECTOR_ADDR=(FLASH_MAX_ADDR- ??3*FLASH_BLOCK_TABLE_ADDR-5*FLASH_SWAP_ ??BLOCK_ADDR-50*FLASH_BAD_BLOCK_REMAP_ADDR); ??文件系統(tǒng)管理的最大字節(jié)地址。 ??任意地址Addr: ??所在塊地址:Addr&(~(FLASH_BLOCK_SIZE-1)); ??塊內(nèi)偏移地址:Addr&(FLASH_BLOCK_SIZE-1); ??塊中的頁:(Addr&(FLASH_BLOCK_SIZE-1))/FLASH_ ??PAGE_SIZE; ??2.3 分區(qū)功能設(shè)計 ??壞塊映射區(qū)存放復(fù)制3份的壞塊信息BBI(Bad Block Information)表。復(fù)制3份是預(yù)防系統(tǒng)突然斷電,造成BBI表數(shù)據(jù)丟失。選擇最后3個塊,主要是出于固件設(shè)計。當(dāng)Flash首次上電,固件程序通過讀取Flash ID,獲得設(shè)備的容量等信息,然后從Flash的最后一塊中尋找BBI表,如果最后一塊沒有發(fā)現(xiàn)BBI表,則認(rèn)為此塊為壞塊,繼續(xù)前移尋找,依此類推,直到在預(yù)留的3個塊中找到,并將其數(shù)據(jù)讀入到在主控芯片為其開設(shè)的RAM中。如果還找不到,則固件認(rèn)為該片F(xiàn)lash沒有BBI表。 ??交換塊區(qū)是對NAND Flash進行擦除或?qū)懖僮鲿r用來臨時存放數(shù)據(jù),共分配5個塊。選取5塊是出于可靠性設(shè)計。用一個數(shù)組FlashSwapBlockStatus[FLASH_SWAP_BLOCKS]記錄交換塊狀態(tài):有效還是已經(jīng)損壞。初始化時,固件認(rèn)為所有的交換塊都是有效塊,在隨后對其進行擦除或?qū)懖僮鲿r,通過讀Flash狀態(tài)寄存器判斷該交換塊的真實狀態(tài),并記錄在數(shù)組中。交換塊的管理圍繞固件請求返回當(dāng)前可用交換塊地址或當(dāng)前正在使用的交換塊地址,并判斷標(biāo)記當(dāng)前使用的交換塊狀態(tài)為壞。 ??壞塊映射區(qū)是當(dāng)主機向數(shù)據(jù)區(qū)寫數(shù)據(jù)時,檢測到當(dāng)前塊(數(shù)據(jù)區(qū))為壞塊時,將數(shù)據(jù)寫到壞塊映射區(qū)中的相應(yīng)好塊中,并且將這兩個塊的塊地址記錄到BBI表中,以后主機若要對當(dāng)前塊(數(shù)據(jù)區(qū))訪問時,只需讀BBI表就可以找到相應(yīng)映射塊,從而代替壞塊的訪問。這樣就使文件系統(tǒng)所見邏輯塊地址LBA(Logical Block Address)變成連續(xù)的,但實際上物理塊地址PBA(Physical Block Address)可能并不連續(xù)。上述方法就是壞塊管理的精髓。出于保守設(shè)計本文共選50塊作為重映塊。用數(shù)組FlashRemapBlockStatus[FLASH_BAD_BLOCKS_REMAP]標(biāo)識壞塊映射區(qū)的狀態(tài):未使用、已使用還是已經(jīng)損壞。初始化時認(rèn)為壞塊映射區(qū)中所有塊都是好塊。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費