《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Nand+Flash存儲管理在DSP系統中的實現
Nand+Flash存儲管理在DSP系統中的實現
微計算機信息
何金偉 史斌寧
摘要: Nand+Flash存儲管理在DSP系統中的實現, Nand Flash作為一種安全、快速的存儲體,因其具有體積小、容量大、成本低、掉電數 據不丟失等一系列優點,已逐步取代其它半導體存儲元件,成為嵌入式系統中數據存儲的主 要載體。盡管Nand Flash的每個單元塊相互獨
關鍵詞: DSP Flash NAND
Abstract:
Key words :

 Nand Flash作為一種安全、快速的存儲體,因其具有體積小、容量大、成本低、掉電數 據不丟失等一系列優點,已逐步取代其它半導體存儲元件,成為嵌入式系統中數據存儲的主 要載體。盡管Nand Flash的每個單元塊相互獨立,且每塊一般可擦除次數高達10~100萬次, 但是隨著擦寫次數增加,會有一些單元塊逐漸變得不穩定或失效從而形成永久性壞塊。因此, 要避免頻繁地對同一塊進行操作,盡量達到擦寫次數均衡;同時,由于擦除操作耗時較多, 會對系統的實時性造成影響。為此,本文介紹了一種基于磨損均衡思想的Nand Flash存儲管 理方式,并深入討論了該方式在Ti公司的DSP TMS320F28x中的程序實現。

  1 器件介紹

  本文中采用的Nand Flash芯片K9F6408U0C是一塊擁有8M(8,388,608)×8bit存儲空間及 256K(262,144)×8bit輔用存儲空間的存儲芯片,電源電壓為1.8V-3.3V。芯片內部按塊和 頁的方式來組織的,如圖1所示,共分成1024個塊,每塊包含16個頁,每頁內有528個字節。 F28x系列DSP是美國TI公司最新推出的C2000平臺上的定點DSP芯片。

K9F6408UOC內部結構示意圖

圖1 K9F6408UOC內部結構示意圖

  F28x系列芯片具有 低成本、低功耗和高效能等特點,特別適用于有大量數據處理的測控場合。

  2 Flash的特點及存儲管理的作用

  由K9F6408U0C的基本結構可以知道,它的基本單位有塊、頁、字節等。 Nand Flash 芯片具有如下特點:

  Flash寫:通過寫命令將每個字節存儲單元中的1變為0;寫操作不能把0變為1。

  Flash擦除:擦除命令是Flash中存儲單元0變為1的唯一途徑,一旦對某一塊中的某一位 寫0,要再改變成1,則必須執行擦除命令。

  通常,對于容量較小的Flash塊的操作過程是:先把整個塊的數據讀到RAM中,在RAM中 修改數據內容,再擦除整個塊,最后寫入修改后的數據。顯然,這樣頻繁復雜的讀-擦除- 寫操作,對于Flash的使用壽命以及系統性能是很不利的,而且微處理器中通常RAM大小有限。 因此在硬件條件苛刻的嵌入式系統中就迫切需要一種合理的存儲管理方式以便有效地均衡 Flash各個存儲塊的擦寫次數,提高Flash的使用壽命,從而提高數據存儲的安全性。

  3 存儲管理系統的設計

  3.1建立壞塊管理表

  Nand Flash由于生產工藝的問題,不可避免的會存在一些壞塊,這些壞塊在芯片出廠前 都已被標識好。根據Nand Flash數據手冊中的介紹,在每一塊的第一頁與第二頁的Spare area 的第六個字節(也就是該頁的第517字節)即是出廠時的壞塊標識位,如果某塊的該兩頁的 第517字節內容不同時為0xFF,則代表該塊為廠家標識壞塊。這種壞塊的檢測必須在對芯 片進行擦除前進行,因為廠家壞塊有可能也能夠被進行擦除操作,如使用這種塊將對數據安 全留下一定的隱患。

  Nand Flash在出廠前會保證每塊芯片的第一塊與第二塊是完好的,所以在本文的設計中,采用的方式是將壞塊管理表存放在第一塊的第一頁的前128個字節中,每個字節的一位代表芯片的一塊,如該位為1剛表明該塊是好的,為0則表示對應塊為壞塊。壞塊管理表的建立是必需的,而且最好是在芯片進行其它擦寫操作前進行。

壞塊管理表

  3.2 Flash存儲空間管理

  在本文設計的Flash空間管理中,Flash的存儲塊被分為空閑塊(Free,即空白沒寫數據 的好塊),有效塊(Valid,即存有有效數據的塊,不能被擦除),無效塊(Invalid,即數 據已無效或是寫入錯誤塊,可被擦除),保留塊(Reserve,用于替換新產生的壞塊),其它的則為壞塊,所有存儲塊的管理均采用單向鏈表方式進行管理。

  在大部分的Flash存儲空間管理系統中可能并不存在保留塊,在本系統中增加保留塊的 作用主要是,當部分存儲塊因為反復擦寫成為新的壞塊時,可以用保留塊取而代之成為新的空閑塊,從而使得留給用戶的可用存儲塊總數在一定時期內是一定的,這樣做的優點是可以增強數據的安全性,延長整個Flash的使用周期,缺點是用戶可用的存儲空間相對減少,不過在Flash芯片技術迅速發展的今天,大容量的Flash芯片價格已經十分低廉,數據安全才是嵌入式系統設計最值得重視的。

  在本文的設計中,統一規定Flash每一塊的第一頁的Spare Area為數據塊狀態信息標記區,具體規定如表2所示:

數據塊狀態信息表

  根據上表的設計,塊擦除次數最大為224 ? 1 = 16777215 ,遠大于Flash的最大擦除次數10到100萬次;塊狀態標記字節,0xFF代表其為空閑塊,0xFD代表其為保留塊,0xFC代表其為有效塊,0xF0代表其為無效塊,0x00則表明當前塊為壞塊,在壞塊管理表中其對應位為0。

  3.3磨損均衡與無效塊回收

  如圖2所示,當系統上電后,如不存在壞塊管理表則應首先應建立相應的壞塊管理表, 參照壞塊表根據每一塊的第517字節建立各個鏈表Free_List,Valid_List,Invalid_List, Reserved_List,初始化并按擦除次數非遞減序排列各鏈表。當無效塊因擦除成為新的空閑塊時,根據塊擦除次數插入到空閑鏈表中相應位置,當需要寫入數據到新的空閑塊時則取用空 閑鏈表的鏈首所指空閑塊,寫入數據有效后則標識該塊為有效塊,否則標識為無效塊,通過 這樣的管理方式保證每次都是使用空閑鏈表中擦除次數最小的塊,從而使磨損達到均衡。

Flash存儲管理流程示意圖

圖2 Flash存儲管理流程示意圖

  對于靜態數據塊(指的是Flash中存儲的不經常被修改的數據)[3],在本文中采用的處 理方法是當空閑塊中的最大擦除次數與有效塊中的最小擦除次數之差大于某一設定閥值(該 閥值不能過小,否則數據搬遷將過于頻繁),則遷移該有效塊中數據至空閑鏈表中擦除次數 最大的塊中,從而避免因某些數據塊被靜態數據長時間占用而使得其它數據塊的磨損加劇, 進而可使得整個Flash的磨損趨于平衡。

  對于無效塊的擦除回收本文的設計是在有足夠空閑塊的情況下一般是在系統空閑或上 電時進行,這樣能節約更多寶貴的系統資源以進行更重要的工作,當在系統運行過程中,如果空閑塊塊數與無效塊塊數的比值超出一個閥值(本系統取50),則啟動程序回收所有無效 塊。這個閥值應取得適中,如太大則使得回收過于頻繁,太少的話一方面使空閑空間過少, 另一方面一旦啟動回收程序,因要回收塊數過多,從而使采集數據的實時輸入受到影響,本 系統中取空閑塊與無效塊的比值作為閥值,好處是只要空閑塊塊數足夠,無效塊回收基本在系統初始化是進行,即使在采集過程中回收占用的時間也是十分微小,這樣的設計對實時性要求極高的嵌入式系統是很有好處的。

  3.4 Flash存儲管理的程序實現

  對于Nand Flash在DSP嵌入式系統中的使用,其接口方式與讀寫方法與在其他單片機中的方法都是一樣的,參考[1]中提供的流程圖就可以完成,其難點在于如何管理,在其管理中,對鏈表數據結構的操作是最重要的,下面將給出本文系統中用DSP TMS320F28x如何實現Nand Flash存儲管理的鏈表操作的關鍵程序代碼,結合具體的要求只需要進行簡單的修改即可滿足在新系統中的應用。

  在DSP系統工程中的CMD文件中,對于段的定義一定要為.systemmem分配一定的可用RAM空間[ 4 ],這個大小跟系統后面malloc函數要分配的動態內存空間有關,以便在產生一個新的結點時申請一個結點類型大小的空間,在結點銷毀時可對空間進行釋放,定義系統中鏈表結點的類型為:

程序

  通過這樣的定義就可以得到四個帶頭結點的鏈表,頭結點的數庫域中是沒有信息的,每 一個鏈表的頭結點都指向該鏈表的首元素,如不存在則指向NULL,程序中必須初始化指針, 否則會造成致命的系統錯誤。下面給出鏈表的初始化程序,結點生成及銷毀程序,其他的函 數就不一一列舉,只給出其相應函數名及功能介紹。

程序

  4 結論

  本文創新點在于:從Nand Flash的特性出發,深入討論了基于磨損均衡算法的Flash存儲 管理在DSP系統中采用鏈表結構的程序實現,改進了無效塊的回收方式及動靜態數據塊的磨 損平衡。經實踐證明,有效延長了Flash的使用壽命,進一步提高了其存儲效率和數據安全性, 從而更有利于在嵌入式系統中的應用。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
香港久久久电影| 亚洲欧美国产高清va在线播| 在线亚洲观看| 亚洲黄色三级| **性色生活片久久毛片| 激情视频一区二区| 黄色精品网站| 在线观看91精品国产麻豆| 国产一区二区高清| 狠狠色丁香久久婷婷综合_中| 国产综合在线看| 国内精品久久久久久影视8| 国产亚洲一级高清| 国产综合精品| 一区二区在线观看视频| 又紧又大又爽精品一区二区| 1024亚洲| 亚洲欧洲另类国产综合| 亚洲精品资源| 在线亚洲免费视频| 亚洲免费一在线| 午夜精品久久99蜜桃的功能介绍| 午夜视频一区二区| 久久黄色小说| 亚洲精品资源| 正在播放亚洲一区| 午夜在线视频观看日韩17c| 性做久久久久久| 久久精品视频播放| 欧美不卡在线视频| 欧美日韩精品二区| 国产精品毛片一区二区三区| 国产色综合天天综合网| 伊人狠狠色丁香综合尤物| 亚洲激情视频在线| 一本色道久久综合| 翔田千里一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 经典三级久久| 亚洲人妖在线| 亚洲欧美色一区| 亚洲国产美女| 亚洲欧美三级在线| 久久综合色播五月| 欧美日韩美女在线观看| 国产日韩欧美精品一区| 在线成人免费观看| 亚洲最新色图| 久久国产加勒比精品无码| 一本不卡影院| 久久久美女艺术照精彩视频福利播放| 欧美岛国激情| 国产乱码精品一区二区三区不卡| 在线观看国产成人av片| 亚洲婷婷免费| 亚洲电影在线| 亚洲一区二区精品| 老牛影视一区二区三区| 欧美午夜精品一区| 在线观看91精品国产麻豆| 亚洲视屏在线播放| 亚洲激情网址| 欧美一区成人| 欧美日韩国产一区| 黄色亚洲网站| 亚洲永久在线观看| 亚洲精品婷婷| 久久久午夜精品| 国产精品久久久久国产a级| 在线观看一区二区视频| 亚洲综合精品四区| 一本久久a久久免费精品不卡| 久久久99免费视频| 国产精品av久久久久久麻豆网| 经典三级久久| 午夜精品网站| 亚洲一区二区三区乱码aⅴ| 奶水喷射视频一区| 国产一区二区日韩精品欧美精品| 一区二区三区|亚洲午夜| 亚洲激情影视| 久久人人97超碰国产公开结果| 国产精品捆绑调教| 亚洲精品视频中文字幕| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲精选一区| 久久久综合免费视频| 国产精品久久久久久久午夜 | 久久精品国产清自在天天线| 亚洲欧美日韩国产成人| 欧美日韩岛国| 亚洲成人在线网站| 久久国产精品一区二区| 欧美中文字幕第一页| 国产精品成人播放| 亚洲精品一区二区三区蜜桃久| 亚洲国产一区二区在线| 久久久久久婷| 国产一区二区三区最好精华液| 亚洲综合成人婷婷小说| 亚洲综合色自拍一区| 欧美日韩一区二区三区视频 | 亚洲视频观看| 亚洲视频在线二区| 欧美日韩国产一区二区| 亚洲人成啪啪网站| 亚洲精品视频在线| 欧美大片第1页| 亚洲黄色天堂| 99国产精品久久久久久久成人热| 欧美1区2区3区| 在线精品视频在线观看高清| 久久精品成人| 玖玖国产精品视频| 在线观看的日韩av| 亚洲激情视频在线| 欧美岛国在线观看| 亚洲黑丝在线| 99精品国产热久久91蜜凸| 欧美精品午夜| 99精品视频免费观看视频| 在线综合亚洲欧美在线视频| 欧美日韩在线三区| 在线亚洲一区二区| 午夜久久资源| 国产日韩一区二区三区| 午夜亚洲性色视频| 久久天堂av综合合色| 在线观看欧美激情| 日韩天堂av| 欧美日韩成人在线| 亚洲视频 欧洲视频| 性色一区二区| 国外成人免费视频| 亚洲欧洲在线视频| 欧美日韩福利| 亚洲一区二区三区四区五区黄 | 久久国产精品99久久久久久老狼| 久久久久久成人| 在线成人免费视频| 一本到12不卡视频在线dvd| 欧美午夜一区| 亚洲欧美伊人| 欧美99在线视频观看| 日韩午夜av| 欧美一乱一性一交一视频| 黄色成人av| 一本到12不卡视频在线dvd| 国产精品人人爽人人做我的可爱| 午夜精品久久久久| 免费看av成人| 中国亚洲黄色| 久久亚洲国产精品一区二区| 亚洲第一福利视频| 亚洲淫片在线视频| 狠狠色狠狠色综合人人| 夜夜爽99久久国产综合精品女不卡| 欧美性做爰猛烈叫床潮| 午夜精品久久久久久久99热浪潮| 免费亚洲视频| 亚洲一二三四久久| 美女国内精品自产拍在线播放| 亚洲精品在线看| 久久精品观看| 亚洲精品综合久久中文字幕| 欧美一区二区私人影院日本| 亚洲高清毛片| 欧美一区二区精美| 亚洲国产三级在线| 欧美在线啊v| 亚洲日本无吗高清不卡| 欧美一级电影久久| 亚洲激情影视| 久久九九国产精品| 99国产精品国产精品久久| 久久国产精品高清| 日韩网站在线| 久久全球大尺度高清视频| 一本色道精品久久一区二区三区| 久久亚洲综合网| 亚洲一区免费观看| 欧美精品一区视频| 欧美一区二区视频网站| 欧美三区美女| 最新日韩中文字幕| 国产午夜精品视频| 亚洲视频一区二区| 亚洲高清免费在线| 久久精品一区二区三区不卡牛牛| 日韩午夜激情电影| 免费亚洲一区| 欧美在线观看视频在线| 欧美午夜视频在线| 99re热这里只有精品视频| 国产亚洲精品久久久久久| 亚洲特黄一级片| 91久久久久久国产精品| 久久亚洲精品网站| 午夜精品视频在线观看一区二区| 欧美日韩一级片在线观看|