《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > Nand+Flash存儲(chǔ)管理在DSP系統(tǒng)中的實(shí)現(xiàn)
Nand+Flash存儲(chǔ)管理在DSP系統(tǒng)中的實(shí)現(xiàn)
微計(jì)算機(jī)信息
何金偉 史斌寧
摘要: Nand+Flash存儲(chǔ)管理在DSP系統(tǒng)中的實(shí)現(xiàn), Nand Flash作為一種安全、快速的存儲(chǔ)體,因其具有體積小、容量大、成本低、掉電數(shù) 據(jù)不丟失等一系列優(yōu)點(diǎn),已逐步取代其它半導(dǎo)體存儲(chǔ)元件,成為嵌入式系統(tǒng)中數(shù)據(jù)存儲(chǔ)的主 要載體。盡管Nand Flash的每個(gè)單元塊相互獨(dú)
關(guān)鍵詞: DSP Flash NAND
Abstract:
Key words :

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

  1 器件介紹

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

K9F6408UOC內(nèi)部結(jié)構(gòu)示意圖

圖1 K9F6408UOC內(nèi)部結(jié)構(gòu)示意圖

  F28x系列芯片具有 低成本、低功耗和高效能等特點(diǎn),特別適用于有大量數(shù)據(jù)處理的測(cè)控場(chǎng)合。

  2 Flash的特點(diǎn)及存儲(chǔ)管理的作用

  由K9F6408U0C的基本結(jié)構(gòu)可以知道,它的基本單位有塊、頁、字節(jié)等。 Nand Flash 芯片具有如下特點(diǎn):

  Flash寫:通過寫命令將每個(gè)字節(jié)存儲(chǔ)單元中的1變?yōu)?;寫操作不能把0變?yōu)?。

  Flash擦除:擦除命令是Flash中存儲(chǔ)單元0變?yōu)?的唯一途徑,一旦對(duì)某一塊中的某一位 寫0,要再改變成1,則必須執(zhí)行擦除命令。

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

  3 存儲(chǔ)管理系統(tǒng)的設(shè)計(jì)

  3.1建立壞塊管理表

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

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

壞塊管理表

  3.2 Flash存儲(chǔ)空間管理

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

  在大部分的Flash存儲(chǔ)空間管理系統(tǒng)中可能并不存在保留塊,在本系統(tǒng)中增加保留塊的 作用主要是,當(dāng)部分存儲(chǔ)塊因?yàn)榉磸?fù)擦寫成為新的壞塊時(shí),可以用保留塊取而代之成為新的空閑塊,從而使得留給用戶的可用存儲(chǔ)塊總數(shù)在一定時(shí)期內(nèi)是一定的,這樣做的優(yōu)點(diǎn)是可以增強(qiáng)數(shù)據(jù)的安全性,延長(zhǎng)整個(gè)Flash的使用周期,缺點(diǎn)是用戶可用的存儲(chǔ)空間相對(duì)減少,不過在Flash芯片技術(shù)迅速發(fā)展的今天,大容量的Flash芯片價(jià)格已經(jīng)十分低廉,數(shù)據(jù)安全才是嵌入式系統(tǒng)設(shè)計(jì)最值得重視的。

  在本文的設(shè)計(jì)中,統(tǒng)一規(guī)定Flash每一塊的第一頁的Spare Area為數(shù)據(jù)塊狀態(tài)信息標(biāo)記區(qū),具體規(guī)定如表2所示:

數(shù)據(jù)塊狀態(tài)信息表

  根據(jù)上表的設(shè)計(jì),塊擦除次數(shù)最大為224 ? 1 = 16777215 ,遠(yuǎn)大于Flash的最大擦除次數(shù)10到100萬次;塊狀態(tài)標(biāo)記字節(jié),0xFF代表其為空閑塊,0xFD代表其為保留塊,0xFC代表其為有效塊,0xF0代表其為無效塊,0x00則表明當(dāng)前塊為壞塊,在壞塊管理表中其對(duì)應(yīng)位為0。

  3.3磨損均衡與無效塊回收

  如圖2所示,當(dāng)系統(tǒng)上電后,如不存在壞塊管理表則應(yīng)首先應(yīng)建立相應(yīng)的壞塊管理表, 參照壞塊表根據(jù)每一塊的第517字節(jié)建立各個(gè)鏈表Free_List,Valid_List,Invalid_List, Reserved_List,初始化并按擦除次數(shù)非遞減序排列各鏈表。當(dāng)無效塊因擦除成為新的空閑塊時(shí),根據(jù)塊擦除次數(shù)插入到空閑鏈表中相應(yīng)位置,當(dāng)需要寫入數(shù)據(jù)到新的空閑塊時(shí)則取用空 閑鏈表的鏈?zhǔn)姿缚臻e塊,寫入數(shù)據(jù)有效后則標(biāo)識(shí)該塊為有效塊,否則標(biāo)識(shí)為無效塊,通過 這樣的管理方式保證每次都是使用空閑鏈表中擦除次數(shù)最小的塊,從而使磨損達(dá)到均衡。

Flash存儲(chǔ)管理流程示意圖

圖2 Flash存儲(chǔ)管理流程示意圖

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

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

  3.4 Flash存儲(chǔ)管理的程序?qū)崿F(xiàn)

  對(duì)于Nand Flash在DSP嵌入式系統(tǒng)中的使用,其接口方式與讀寫方法與在其他單片機(jī)中的方法都是一樣的,參考[1]中提供的流程圖就可以完成,其難點(diǎn)在于如何管理,在其管理中,對(duì)鏈表數(shù)據(jù)結(jié)構(gòu)的操作是最重要的,下面將給出本文系統(tǒng)中用DSP TMS320F28x如何實(shí)現(xiàn)Nand Flash存儲(chǔ)管理的鏈表操作的關(guān)鍵程序代碼,結(jié)合具體的要求只需要進(jìn)行簡(jiǎn)單的修改即可滿足在新系統(tǒng)中的應(yīng)用。

  在DSP系統(tǒng)工程中的CMD文件中,對(duì)于段的定義一定要為.systemmem分配一定的可用RAM空間[ 4 ],這個(gè)大小跟系統(tǒng)后面malloc函數(shù)要分配的動(dòng)態(tài)內(nèi)存空間有關(guān),以便在產(chǎn)生一個(gè)新的結(jié)點(diǎn)時(shí)申請(qǐng)一個(gè)結(jié)點(diǎn)類型大小的空間,在結(jié)點(diǎn)銷毀時(shí)可對(duì)空間進(jìn)行釋放,定義系統(tǒng)中鏈表結(jié)點(diǎn)的類型為:

程序

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

程序

  4 結(jié)論

  本文創(chuàng)新點(diǎn)在于:從Nand Flash的特性出發(fā),深入討論了基于磨損均衡算法的Flash存儲(chǔ) 管理在DSP系統(tǒng)中采用鏈表結(jié)構(gòu)的程序?qū)崿F(xiàn),改進(jìn)了無效塊的回收方式及動(dòng)靜態(tài)數(shù)據(jù)塊的磨 損平衡。經(jīng)實(shí)踐證明,有效延長(zhǎng)了Flash的使用壽命,進(jìn)一步提高了其存儲(chǔ)效率和數(shù)據(jù)安全性, 從而更有利于在嵌入式系統(tǒng)中的應(yīng)用。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久在线91| 国产精品视频xxxx| 欧美在线国产| 在线观看成人av电影| 国产色综合久久| 国产日产欧产精品推荐色 | 欧美天天综合网| 欧美了一区在线观看| 你懂的国产精品| 欧美99在线视频观看| 午夜激情一区| 亚洲精品免费观看| 亚洲精品日韩综合观看成人91| 亚洲福利av| 亚洲国产精品悠悠久久琪琪| 亚洲第一精品影视| 亚洲国产精品成人精品| 亚洲激情综合| 日韩视频专区| 亚洲大片在线| 亚洲综合视频网| 午夜国产不卡在线观看视频| 亚洲精品一区二区网址| 亚洲精品午夜精品| 原创国产精品91| 1024成人网色www| 国内精品国语自产拍在线观看| 国产精品v片在线观看不卡| 国产精品对白刺激久久久| 欧美黄色成人网| 欧美精品一区二区三区在线播放| 欧美激情一区在线| 美女免费视频一区| 久久国产精品一区二区三区| 久久国产免费| 亚欧美中日韩视频| 久久久久久久久久久一区| 免费观看国产成人| 欧美日韩你懂的| 国产喷白浆一区二区三区 | 在线看日韩av| 日韩香蕉视频| 亚洲人成网站999久久久综合| 国产一区二区三区网站| 在线免费高清一区二区三区| 国产欧美一级| 在线免费观看日本欧美| 日韩视频中文字幕| 日韩午夜av| 亚洲精品免费一区二区三区| 一区二区三区色| 一区二区三区三区在线| 99re6热只有精品免费观看| 亚洲一级网站| 亚洲电影免费观看高清完整版在线观看 | 亚洲欧美日韩在线一区| a4yy欧美一区二区三区| 亚洲国产日韩欧美一区二区三区| 欧美一区二区黄| 亚洲精品久久久久久久久久久| 亚洲高清视频在线观看| 欧美一区日本一区韩国一区| 最新国产成人在线观看| 亚洲精品字幕| 99re6这里只有精品| 新片速递亚洲合集欧美合集| 欧美中文字幕视频| 久久国产精品久久精品国产| 欧美一区二区三区视频免费播放 | 亚洲视频网在线直播| aa日韩免费精品视频一| 欧美在线高清| 欧美精品一区二区精品网| 欧美日韩不卡在线| 国产性做久久久久久| 亚洲人午夜精品| 欧美一区视频在线| 亚洲一区二区视频在线| 美女亚洲精品| 国产视频在线观看一区二区三区 | av成人免费| 亚洲国产精品电影在线观看| 亚洲专区一二三| 欧美国产大片| 欧美日韩大片| 极品av少妇一区二区| 亚洲影院在线观看| 中文国产一区| 欧美一区二区三区在| 久久久999精品| 国产精品jvid在线观看蜜臀| 国产欧美亚洲一区| 黄色成人av网站| 亚洲一区二区三区在线观看视频| 欧美一区二区大片| 亚洲欧美日韩天堂一区二区| 久久久久久999| 国产精品毛片a∨一区二区三区|国| 国产日韩在线看| 亚洲自拍偷拍网址| 亚洲国产精品一区二区www| 久久大综合网| 国产九九精品| 亚洲欧美国产高清| 亚洲影院高清在线| 欧美日韩国产成人在线免费| 国产毛片精品国产一区二区三区| 夜夜嗨av色综合久久久综合网| 99riav国产精品| 欧美成人亚洲| 国产精品网站在线| 亚洲性xxxx| 亚洲精品乱码久久久久久日本蜜臀 | 欧美不卡视频一区发布| 国产主播精品| 久久成人精品电影| 一区二区三区精品久久久| 欧美成人免费网站| 国产精品日韩在线播放| 中国av一区| 销魂美女一区二区三区视频在线| 你懂的视频欧美| 在线观看欧美亚洲| 亚洲电影自拍| 欧美xart系列在线观看| 亚洲欧洲日韩综合二区| 一本高清dvd不卡在线观看| 久久精品成人一区二区三区| 欧美日韩无遮挡| 在线视频欧美日韩| 亚洲综合色婷婷| 欧美激情亚洲激情| 黑人中文字幕一区二区三区| 国产精品99久久不卡二区| 亚洲人成在线观看| 久久精品综合网| 国产精品家庭影院| 亚洲国产精品一区二区www| 最近中文字幕日韩精品| 欧美激情a∨在线视频播放| 亚洲伦理网站| 亚洲精品免费看| 欧美日韩福利在线观看| 亚洲成人资源网| 日韩视频免费观看高清在线视频 | 国产乱子伦一区二区三区国色天香| 亚洲精品国久久99热| 亚洲国产精品尤物yw在线观看| 欧美成人精品h版在线观看| 亚洲精品免费一二三区| 亚洲免费人成在线视频观看| 国产情人节一区| 亚洲激情视频在线播放| 久久久久久久综合日本| 影音先锋日韩精品| 一区二区三区四区国产| 国产精品夜夜夜一区二区三区尤| 亚洲美女精品一区| 欧美一区二区三区视频免费播放| 激情久久五月天| 在线视频亚洲欧美| 欧美日韩精品一区二区| 亚洲在线免费观看| 校园春色综合网| 黄色亚洲免费| 亚洲一区二区三区四区五区黄| 欧美激情综合色综合啪啪| 中文亚洲视频在线| 久久一区二区视频| 激情欧美一区二区| 欧美专区第一页| 久久久久久久久久久久久女国产乱| 亚洲第一中文字幕| 亚洲欧美日本视频在线观看| 国产精品乱码妇女bbbb| 亚洲天堂免费观看| 久久男人av资源网站| 亚洲精品影院在线观看| 一区二区三区精品| 欧美系列电影免费观看| 欧美一区亚洲二区| 久热精品视频在线观看一区| 9国产精品视频| 美女在线一区二区| 在线亚洲欧美| 性欧美超级视频| 亚洲高清一二三区| 欧美中文在线观看国产| 国产一区二区日韩精品| 亚洲第一区在线| 欧美激情欧美狂野欧美精品| 亚洲一区二区三区乱码aⅴ| 欧美大片免费看| 午夜精品理论片| 欧美日韩综合久久| 亚洲在线第一页| 欧美美女日韩| 亚洲在线观看免费视频| 欧美紧缚bdsm在线视频| 久久精品人人做人人爽电影蜜月|