|
|
摘要:嵌入式多媒體應(yīng)用中大量數(shù)據(jù)存儲(chǔ)在Flash上,本文以文件系統(tǒng)的方案解決數(shù)據(jù)存<BR> 儲(chǔ)的管理問題。對嵌入式多媒體應(yīng)用中Flash文件系統(tǒng)的應(yīng)用特點(diǎn)與關(guān)鍵設(shè)計(jì)進(jìn)行了分析<BR> ,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)功能完整的文件代號(hào)管理、文件指針存取以及對應(yīng)用透明的自動(dòng)壞損管<BR> 理的文件系統(tǒng)。針對嵌入<BR> 式系統(tǒng)應(yīng)用的需要,改進(jìn)了本Flash文件系統(tǒng)的應(yīng)用可靠性,降低了其系統(tǒng)資源開銷。針<BR> 對多媒體應(yīng)用的數(shù)據(jù)特點(diǎn),提出了存儲(chǔ)內(nèi)容自適應(yīng)的環(huán)境管理策略。仿真與實(shí)用的效果表<BR> 明,本Flash文件系統(tǒng)適宜于嵌入式多媒體應(yīng)用。</P><P> 關(guān)鍵詞:嵌入式系統(tǒng) 多媒體Flash存儲(chǔ)器 文件系統(tǒng)</P><P> 隨著電子技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)越來越多地在控制類、消費(fèi)類、通訊類等電子產(chǎn)品<BR> 廣泛應(yīng)用,并且隨著數(shù)字信號(hào)處理與人機(jī)交互界面等相關(guān)技術(shù)的不斷成熟,嵌入式多媒體<BR> 應(yīng)用數(shù)量也逐漸上升。多媒體業(yè)務(wù)的數(shù)據(jù)量大,數(shù)據(jù)內(nèi)容復(fù)雜,在多媒體應(yīng)用中數(shù)據(jù)的存<BR> 儲(chǔ)與管理是不容回避的<BR> 問題。Flash存儲(chǔ)器制造成本低廉、存儲(chǔ)容量大、數(shù)據(jù)非易失、無機(jī)械故障,在目前的嵌<BR> 入式系統(tǒng)中被廣泛用作外存儲(chǔ)器件。然而Flash存儲(chǔ)器卻是一種數(shù)據(jù)正確性非理想的器件<BR> ,應(yīng)用中可能會(huì)出現(xiàn)壞損數(shù)據(jù)單元,這又給應(yīng)用Flash存儲(chǔ)器嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)存儲(chǔ)管<BR> 理增添了新的難度[1]。</P><P> 在嵌入式系統(tǒng)中應(yīng)用Flash存儲(chǔ)器最好的辦法是在其上構(gòu)造一個(gè)文件系統(tǒng),對Flash存儲(chǔ)器<BR> 中的數(shù)據(jù)內(nèi)容進(jìn)行基于文件代號(hào)的存儲(chǔ)管理,同時(shí)對于Flash存儲(chǔ)器本身的壞損單元自動(dòng)<BR> 進(jìn)行應(yīng)用透明的壞損管理。目前在通用計(jì)算機(jī)上已經(jīng)有很多成熟的文件系統(tǒng),如DOS下的<BR> FAT文件系統(tǒng)、Windows <BR> NT下的NTFS文件系統(tǒng)及UNIX文件系統(tǒng)等[2]。但是這些文件系統(tǒng)并不適合直接用到嵌入式<BR> 系統(tǒng)中進(jìn)行多媒體數(shù)據(jù)內(nèi)容的存儲(chǔ):第一,嵌入式系統(tǒng)的應(yīng)用條件遠(yuǎn)比計(jì)算機(jī)惡劣,電源<BR> 電壓的不穩(wěn)定以及突發(fā)性斷電將對Flash的存儲(chǔ)造成災(zāi)難性的影響,通用文件系統(tǒng)對于可<BR> 靠性的設(shè)計(jì)考慮不足;第<BR> 二,通用文件系統(tǒng)是針對系統(tǒng)資源非常豐富的計(jì)算機(jī)平臺(tái)并基于速度較慢的磁盤驅(qū)動(dòng)器,<BR> 它們常常大量使用緩存技術(shù),如注重文件系統(tǒng)的速度特性,要耗費(fèi)比較多的系統(tǒng)資源。這<BR> 與嵌入式系統(tǒng)中系統(tǒng)資源十分有限,F(xiàn)lash存儲(chǔ)器又相對于磁盤驅(qū)動(dòng)器較快的應(yīng)用情況不<BR> 用;第三,嵌入式系統(tǒng) <BR> 寫媧⒂贔lash上的內(nèi)容很多是多媒體數(shù)據(jù)資料,這些數(shù)據(jù)內(nèi)容往往雞一定程度的誤碼損傷<BR> ,未必需要如通用文件系統(tǒng)那樣嚴(yán)格保證存儲(chǔ)的正確性。通過靈活的校驗(yàn)機(jī)制與壞損管理<BR> ,達(dá)到更優(yōu)化的存儲(chǔ)速度與更高效的存儲(chǔ)空間利用,這對成本敏感的嵌入式系統(tǒng)來說尤其<BR> 具有幫助。</P><P> 基于上述考慮,設(shè)計(jì)了一個(gè)適合嵌入式多媒體應(yīng)用的Flash文件系統(tǒng)。它不僅支持文件代<BR> 號(hào)管理、文件指針存取以及應(yīng)用透明的自動(dòng)壞損管理這些通用文件系統(tǒng)所具有的功能,并<BR> 且在文件系統(tǒng)的可靠性以及文件系統(tǒng)的額外資源消耗方面進(jìn)行了改善;此外還引入了基于<BR> 存儲(chǔ)內(nèi)容自適應(yīng)的壞損 <BR> 芾聿唄裕傭垢肍lash文件系統(tǒng)更加適合嵌入式多媒體應(yīng)用。</P><P> 1 Flash存儲(chǔ)器的操作特點(diǎn)</P><P> Flash存儲(chǔ)器在讀取方面與普通的SRAM存儲(chǔ)器類似,一般可以實(shí)現(xiàn)完全隨機(jī)的讀取。Flas<BR> h存儲(chǔ)器最大的不同在于寫操作方面。Flash存儲(chǔ)器的寫操作需要經(jīng)過“擦除—寫入”兩個(gè)<BR> 操作過程。當(dāng)希望對Flash存儲(chǔ)器的某一個(gè)單元進(jìn)行寫入時(shí),首先必須對這個(gè)存儲(chǔ)單元所<BR> 在的區(qū)塊(Block)執(zhí)行 <BR> 臉僮鰨臉僮鞒曬ν瓿珊,整歌庿繖澳数据闹R荻急磺蹇眨ㄒ話惚簧柚貿(mào)?xFF);<BR> 然后對目的單元所在的頁面(Page)執(zhí)行寫入操作,需要一次寫入整個(gè)頁面的全部數(shù)據(jù)內(nèi)<BR> 容(也有一次Flash存儲(chǔ)器支持部分頁的寫入,這樣可以分多次寫完一個(gè)頁面,但是一旦<BR> 寫過的存儲(chǔ)單元數(shù)據(jù)就不<BR> 能再被更改),操作成功后要進(jìn)行數(shù)據(jù)正確性的校驗(yàn)。</P><P> 一個(gè)區(qū)域(Block)包含一個(gè)或多個(gè)頁面(Page),一個(gè)頁面包含多個(gè)數(shù)據(jù)存儲(chǔ)單元(字<BR> 節(jié)或字)。</P><P> 為了增強(qiáng)所設(shè)計(jì)Flash文件系統(tǒng)在不同F(xiàn)lash存儲(chǔ)器上的移植能力,選取了3個(gè)最基本的操<BR> 作作為本Flash文件系統(tǒng)與Flash存儲(chǔ)器設(shè)備的應(yīng)用接口:區(qū)塊擦除(Block_Erase)、頁<BR> 面寫入(Page_Write)、頁面讀出(Page_Read)。這樣雖然可能會(huì)忽略某些Flash存儲(chǔ)器<BR> 產(chǎn)品的獨(dú)有特性,但卻增<BR> 加了所設(shè)計(jì)的Flash文件系統(tǒng)對同F(xiàn)lash存儲(chǔ)器產(chǎn)生的適應(yīng)能力。另外現(xiàn)lash存儲(chǔ)器寫入<BR> 的時(shí)間瓶不在于數(shù)據(jù)傳遞,而是Flash存儲(chǔ)器內(nèi)部的擦除和寫操作等;Flash存儲(chǔ)器讀出的<BR> 速度和微處理器處理數(shù)據(jù)的速度都很快,因此雖然將讀和寫的基本單位擴(kuò)大到了頁面,但<BR> 額外增加的操作時(shí)間是 <BR> 芏痰摹 </P><P> 2 Flash文件系統(tǒng)的基本結(jié)構(gòu)</P><P> 本Flash文件系統(tǒng)在基本結(jié)構(gòu)上與MS-DOS的FAT文件系統(tǒng)類似[3]。MS-DOS是一個(gè)應(yīng)用于幾<BR> 十年的商業(yè)化軟件產(chǎn)品,其FAT文件系統(tǒng)技術(shù)成熟、結(jié)構(gòu)簡單、系統(tǒng)資源開銷小,易于在<BR> 嵌入式系統(tǒng)的硬件平臺(tái)上實(shí)現(xiàn)。本Flash文件系統(tǒng)的基本結(jié)構(gòu)如圖1所示,整個(gè)文件系統(tǒng)包<BR> 括如下幾個(gè)部分:</P><P> (1)系統(tǒng)記錄(SR,System <BR> Record)存放媒質(zhì)信息和最重要的文件系統(tǒng)信息。媒質(zhì)信息諸如Flash存儲(chǔ)器的類型、容<BR> 量,劃分成多少個(gè)區(qū)塊,每區(qū)塊包含多少個(gè)頁面等。文件系統(tǒng)信息包括版本信息、保留區(qū)<BR> 塊的數(shù)目和位置、文件分配表和文件登記表所在的位置和大小、數(shù)據(jù)區(qū)域的位置和大小等<BR> 。</P><P> (2)文件分配表(FAT,F(xiàn)ile Allocation Table)存放著Flash存儲(chǔ)器上所有區(qū)塊的占用<BR> 與空閑情況以及每個(gè)文件的存儲(chǔ)連接結(jié)構(gòu)。MS-DOS <BR> FAT文件系統(tǒng)中有12位、16位、32位三種不同的FAT格式?紤]到在微處理器上實(shí)現(xiàn)的方便<BR> 性并權(quán)衡Flash文件系統(tǒng)應(yīng)用的規(guī)模,選擇將文件分配表固定為16位的格式。</P><P> (3)文件登記表(FRT,F(xiàn)ile Register Table)存放著Flash文件系統(tǒng)中每一個(gè)文件的文<BR> 件代號(hào)、文件長度、文件屬性以及該文件的存儲(chǔ)鏈在文件分配表中的入口。考慮到嵌入式<BR> 系統(tǒng)的應(yīng)用范圍,本Flash文件系統(tǒng)不支持子目標(biāo)結(jié)構(gòu)。</P><P> (4)數(shù)據(jù)區(qū)域(Data Area)用于存放文件的數(shù)據(jù)內(nèi)容。本Flash文件系統(tǒng)中,數(shù)據(jù)分配<BR> 的最小單位是Flash存儲(chǔ)器的一個(gè)基本擦除單元,即一個(gè)物理區(qū)塊(Block)。</P><P> 本Flash文件系統(tǒng)提供:文件系統(tǒng)的格式化(Format)、文件的創(chuàng)建(Create)、刪除(<BR> Delete)、打開(Open)、關(guān)閉(Close)、讀(Read)、寫(Write)、文件指針的移動(dòng)<BR> (Seek)、位置讀。═ell)等基本的功能。程序主體代碼ANSI <BR> C語言寫成,使用一個(gè)非常小的Flash存儲(chǔ)器設(shè)備驅(qū)動(dòng)接口,擴(kuò)展及移植的能力都比較好。</P><P> 3 提高Flash文件系統(tǒng)的可靠性</P><P> 在MS-DOS的FAT文件系統(tǒng)中,僅僅對數(shù)據(jù)區(qū)域提供壞損管理,而對于它的主引導(dǎo)記錄、文<BR> 件分配表和根目錄這三個(gè)極重要的文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)卻未做任何保護(hù)(雖然MS-DOS的FAT<BR> 文件系統(tǒng)中存在著兩張F(tuán)AT表,但是DOS只是簡單地復(fù)寫第二張F(tuán)AT表而從不使用它)。一<BR> 旦這三個(gè)區(qū)域的內(nèi)容出現(xiàn) <BR> 壞閌,将必葔馁Z攣募蕕拇罅克鶚АA磽,染J廡┦萁峁溝拇媧⑶蚍⑸錮<BR> 硇運(yùn)鴰擔(dān)岬賈掄糯排痰謀ǚ。这灾兩Flash存儲(chǔ)器占據(jù)很大成本比重的嵌入式應(yīng)用<BR> 中,是非常不希望的。</P><P> 歸結(jié)起來,嵌入式系統(tǒng)中的Flash存儲(chǔ)器主要面臨兩大類不穩(wěn)定因素:一是Flash存儲(chǔ)器本<BR> 身可能出現(xiàn)物理性的損壞;二是嵌入式系統(tǒng)面對較多的突發(fā)掉電與重啟動(dòng),造成Flash存<BR> 儲(chǔ)器寫操作的異常終止。</P><P> 針對Flash存儲(chǔ)器的物理損霈問題,除對文件數(shù)據(jù)區(qū)域提供壞損管理外,還將系統(tǒng)記錄、<BR> 文件分配表和文件登記表這三個(gè)文件系統(tǒng)重要數(shù)據(jù)結(jié)構(gòu)采用浮動(dòng)位置的方法存儲(chǔ)。即不僅<BR> 對文件數(shù)據(jù)存儲(chǔ)進(jìn)行動(dòng)態(tài)的分配管理,對于Flash文件系統(tǒng)中這三個(gè)重要數(shù)據(jù)結(jié)構(gòu)也不固<BR> 定其存儲(chǔ)位置。這樣可以<BR> 避免因它們的存儲(chǔ)區(qū)域發(fā)生物理損壞造成整個(gè)文件系統(tǒng)失效。具體做法是:對于系統(tǒng)記錄<BR> 定義一個(gè)系統(tǒng)記錄保留區(qū),將系統(tǒng)記錄存在這個(gè)區(qū)域內(nèi),確切的位置在文件系統(tǒng)初始的時(shí)<BR> 候通過標(biāo)識(shí)幻數(shù)(Magic <BR> Number)的方法掃描找到;而文件分配表和文件登記表則存放在文件數(shù)據(jù)區(qū)域內(nèi),通過系<BR> 統(tǒng)記錄中的索引項(xiàng)找到。</P><P> 針對Flash存儲(chǔ)器的寫操作異常終止問題,將6系統(tǒng)記錄、文件分配表和文件登記表這三個(gè)<BR> 對Flash文件系統(tǒng)最重要的數(shù)據(jù)結(jié)構(gòu)均進(jìn)行雙份的存儲(chǔ)改善其安全性。在文件系統(tǒng)的操作<BR> 中,程序?qū)γ恳粋(gè)表結(jié)構(gòu)的兩個(gè)備份進(jìn)行順次修改,以此確保Flash存儲(chǔ)器上總是存有一<BR> 整套完好的系統(tǒng)記錄表、<BR> 文件分配表和文件登記表。在系統(tǒng)被啟動(dòng)運(yùn)行時(shí),文件系統(tǒng)會(huì)首先進(jìn)行自檢,通過這三個(gè)<BR> 表結(jié)構(gòu)中的標(biāo)識(shí)幻數(shù),以及最開關(guān)和最末尾的更新序列號(hào)可以確定每一張表備份的合法性<BR> 和時(shí)效性,判斷出前次系統(tǒng)關(guān)閉中存在著的操作異常終止并及時(shí)更正。通過這樣的設(shè)計(jì),<BR> 即使文件系統(tǒng)大使用中<BR> 出現(xiàn)了寫操作異常終止的情況,錯(cuò)誤將只涉及當(dāng)時(shí)被操作的文件數(shù)據(jù),不會(huì)擴(kuò)散給Flash<BR> 文件系統(tǒng)中的其它文件,更不會(huì)因此損壞三個(gè)文件系統(tǒng)表結(jié)構(gòu),造成整個(gè)文件系統(tǒng)的徹底<BR> 癱瘓。</P><P> 通過以上兩個(gè)方面的改進(jìn),本Flash文件系統(tǒng)的可靠性比于MS-DOS FAT文件系統(tǒng)有了很大<BR> 的提高。從實(shí)驗(yàn)1和實(shí)驗(yàn)2的仿真結(jié)構(gòu)可以看到,即使在Flash極不可靠和寫操作異常防止<BR> 頻發(fā)的最惡劣工作條件下,本Flash文件系統(tǒng)也能夠保持可靠工作,從而使之能夠適合于<BR> 嵌入式系統(tǒng)的應(yīng)用。</P><P> 實(shí)驗(yàn)1 高壞損率狀況下本Flash文件系統(tǒng)的可靠工作</P><P> 實(shí)驗(yàn)條件<BR> Flash存儲(chǔ)器規(guī)格:16 KB/Block×1024Block,設(shè)定Flash頁面的寫入壞損概率為1%,對<BR> 單一文件重復(fù)進(jìn)行(打開文件,寫入1KB數(shù)據(jù),關(guān)閉文件)10000次操作。 <BR> 實(shí)驗(yàn)結(jié)果<BR> 完成后文件總長度 10,240,000 Bytes <BR> 被文件數(shù)據(jù)占用的Flash空間 625 Blocks <BR> 損壞塊占據(jù)的Flash空間 342 Blocks <BR> FAT和FRT被操作的次數(shù) 11583次 <BR> SR被操作的次數(shù) 223次 <BR> 同條條件MS-DOS FAT文件系統(tǒng)仍能保持工作的概率(即其主引導(dǎo)記錄、文件分配表、根目<BR> 錄區(qū)域無物損壞的概率) 2.9E-52 </P><P> 實(shí)驗(yàn)2 頻繁寫操作異常終止?fàn)顩r下本Flash文件系統(tǒng)的可靠工作</P><P> 實(shí)驗(yàn)條件 Flash存儲(chǔ)器規(guī)格:16 KB/Block×1024Block,預(yù)先存儲(chǔ)5個(gè)文件,文件長度分<BR> 別為k×100KB(k=1..5),模擬寫操作進(jìn)行當(dāng)中,發(fā)生系統(tǒng)掉電類事故,造成寫操作異常中<BR> 止。 <BR> 實(shí)驗(yàn)結(jié)果 實(shí)驗(yàn)次數(shù) 100次 <BR> 導(dǎo)致SR、FAT或FRT出錯(cuò)的次數(shù) 71次 <BR> Flash文件系統(tǒng)啟動(dòng)自檢時(shí)發(fā)現(xiàn)并更正文件系統(tǒng)錯(cuò)誤的次數(shù) 71次 <BR> Flash上已有的5個(gè)文件受損的次數(shù) 0文件×0次 </P><P> 4 降低Flash文件系統(tǒng)的資源消耗</P><P> 嵌入式系統(tǒng)相對于通用計(jì)算機(jī)系統(tǒng)來講,往往有荷刻得多的成本要求,需要嵌入式系統(tǒng)盡<BR> 可能低的系統(tǒng)資源配置。尤其對于Flash文件系統(tǒng)這種用于增強(qiáng)系統(tǒng)功能的服務(wù)性質(zhì)模塊<BR> ,就更需要降低對系統(tǒng)資源的消耗,才能夠擴(kuò)大其使用的范圍。</P><P> 就Flash文件系統(tǒng)的資源消耗來講,主要包括程序代碼開銷、處理器占用時(shí)間、運(yùn)行時(shí)內(nèi)<BR> 存開銷以及額外的Flash存儲(chǔ)器消耗。其中,運(yùn)行時(shí)內(nèi)存開銷最限制Flash文件系統(tǒng)的應(yīng)用<BR> ,同時(shí)設(shè)計(jì)結(jié)構(gòu)的改善與運(yùn)行時(shí)內(nèi)存開銷直接相關(guān)。所以針對資源消耗的結(jié)構(gòu)優(yōu)化主要著<BR> 重于降低運(yùn)行時(shí)的內(nèi)存 <BR> </P><P> Flash存儲(chǔ)器的擦除單位是區(qū)塊(Block),這是本Flash文件系統(tǒng)中數(shù)據(jù)存儲(chǔ)分配的最小<BR> 單元。如果不采用任何措施的話,運(yùn)行時(shí)內(nèi)存開銷中將至少包括備份一個(gè)完整區(qū)塊數(shù)據(jù)的<BR> 緩沖區(qū)。但一個(gè)Flash存儲(chǔ)器的區(qū)塊可能很大(Sumsung[TM]KM29U128是16KB),這在很多<BR> 嵌入系統(tǒng)中都是過大的 <BR> 試純ㄗ鍆ㄓ玫?位微處理器MCS-51系列,總線尋址的能力只有64KB),必須進(jìn)行改進(jìn)。</P><P> 為此,采用交換緩沖區(qū)(Swap <BR> Buffer)技術(shù)來解決這個(gè)困難。當(dāng)需要準(zhǔn)備某一個(gè)區(qū)塊的數(shù)據(jù)時(shí),并不直接向該區(qū)塊寫入<BR> ,而是首先擦除用于做交換緩沖區(qū)的區(qū)塊,然后逐步向交換緩沖區(qū)填入目的數(shù)據(jù)內(nèi)容。因<BR> 為此時(shí),任何有用數(shù)據(jù)內(nèi)容都未被破壞,所以運(yùn)行內(nèi)存中的緩沖就可以做得比較小。當(dāng)交<BR> 換緩沖區(qū)填寫完成后,<BR> 再擦除目的區(qū)塊,拷貝交換緩沖區(qū)內(nèi)容到目的區(qū)塊。</P><P> 采用交換緩沖區(qū)后,對內(nèi)存中的緩沖區(qū)大小沒有特別要求,考慮到Flash存儲(chǔ)器的操作特<BR> 性,選取Flash存儲(chǔ)器的頁面(Page)容量魑詿婊撼邇笮。哉V峁股獻(xiàn)髁松鮮齦慕?后,雖然大大降低了Flash文件系統(tǒng)的運(yùn)行時(shí)內(nèi)存消耗,但代價(jià)是將一個(gè)數(shù)據(jù)區(qū)塊的寫入<BR> 時(shí)間延長了一倍。不過一 <BR> 愕腇lash存儲(chǔ)器中都有一特點(diǎn)制作的區(qū)塊,該區(qū)域保證不會(huì)損壞,正好適用做交換緩沖區(qū)<BR> 。這樣就可以省去中間交換緩沖過程的數(shù)據(jù)完整性檢驗(yàn),加快寫操作的速度。</P><P> 表1給出了在與MCS-51兼容的微處理器上本Flash文件系統(tǒng)實(shí)例,對Sumsung KM29U128 Fl<BR> ash存儲(chǔ)器(16KB/Block×1024Block)[4]進(jìn)行管理應(yīng)用中的系統(tǒng)資源開銷。地于一般的<BR> 成本要求來講,是可以接受的。</P><P> 表1 一個(gè)應(yīng)用實(shí)例中本Flash文件系統(tǒng)的系統(tǒng)資源開銷</P><P> 程序代碼開銷 8.28 KB <BR> 額外的Flash占用 8 Blocks/1024 Blocks=0.78% <BR> 運(yùn)行時(shí)RAM開銷 總和 0.79 KB <BR> 頁面緩沖區(qū) 0.50 KB <BR> 文件打開表 0.13 KB <BR> FAT項(xiàng)更新表 0.08 KB <BR> 其它 0.08 KB </P><P> 5 基于存儲(chǔ)內(nèi)容的自適應(yīng)環(huán)境管理策略</P><P> 嵌入式系統(tǒng)中應(yīng)用Flash存儲(chǔ)器,與多媒體相關(guān)的應(yīng)用占據(jù)相當(dāng)?shù)谋壤,如?shù)碼相機(jī)、語<BR> 音監(jiān)錄、MP3播放器等。存儲(chǔ)在Flash上的內(nèi)容多數(shù)是多媒體數(shù)據(jù)流,這種應(yīng)用相對于普通<BR> 文件系統(tǒng)的單純數(shù)據(jù)業(yè)務(wù)具有其自己的數(shù)據(jù)特點(diǎn)。據(jù)此在本Flash文件系統(tǒng)上提了出了基<BR> 于存儲(chǔ)內(nèi)容的自適應(yīng)壞損<BR> 管理策略。</P><P> Flash存儲(chǔ)器上存儲(chǔ)的內(nèi)容包括數(shù)據(jù)文件和多媒體數(shù)據(jù)流。數(shù)據(jù)文件對于數(shù)據(jù)完整性要求<BR> 很嚴(yán)格,不允許存儲(chǔ)中出現(xiàn)任何錯(cuò)誤。但多媒體數(shù)據(jù)流則不同,很多種多媒體數(shù)據(jù)流允許<BR> 一定情況下傳輸差錯(cuò),一些甚至允許傳輸差錯(cuò)很嚴(yán)重,如CVSD編碼的語音。而Flash存儲(chǔ)<BR> 器的區(qū)塊發(fā)生物理損壞時(shí)<BR> ,經(jīng)常是只有幾個(gè)bit出現(xiàn)錯(cuò)誤,其它部分卻是完好的。綜合考慮這兩個(gè)方面的因素,就<BR> 可以對不同內(nèi)容的數(shù)據(jù)流賦予不同的數(shù)據(jù)完整性要求。這樣一方面充分發(fā)揮了Flash存儲(chǔ)<BR> 器的存儲(chǔ)能力,另一方面也可以降低弱數(shù)據(jù)完整性要求的數(shù)據(jù)檢驗(yàn)強(qiáng)度,提高數(shù)據(jù)寫入速<BR> 度。</P><P> 在本Flash文件系統(tǒng)中,把不同數(shù)據(jù)內(nèi)容對于數(shù)據(jù)完整性的要求分成一個(gè)組別:0、1和2級<BR> 。其中,0級的數(shù)據(jù)完整性最高,不允許在存儲(chǔ)中出現(xiàn)任何差錯(cuò), <BR> 用于數(shù)據(jù)型的好。2級的數(shù)據(jù)完整性要求最低,允許出現(xiàn)較多的差錯(cuò),用于抗差錯(cuò)性強(qiáng)的<BR> 多媒體碼流。相應(yīng)地,對于Flash存儲(chǔ)器的每個(gè)可用區(qū)塊,也按照其物理損壞的程度分成<BR> 對應(yīng)的三個(gè)級別:0級的區(qū)塊所有的存儲(chǔ)單元都完好;2級的區(qū)域則存在著比較多的損壞位<BR> ;損壞程度超過2級允許 <BR> 那槌晌溝姿鴰悼,不能再使又櫍磱z⒌腦蛭憾雜諤囟ǖ拇媧⒛諶縈盟鴰導(dǎo)侗鴆懷<BR> 涫萃暾砸蠹侗鸕腇lash區(qū)塊存儲(chǔ)。</P><P> 同時(shí),在存儲(chǔ)不同數(shù)據(jù)完整性要求的內(nèi)容時(shí),采用不同強(qiáng)度的差錯(cuò)校驗(yàn)。存儲(chǔ)0級內(nèi)容時(shí)<BR> ,每一次寫入都進(jìn)行差錯(cuò)校驗(yàn),存儲(chǔ)1級和2級內(nèi)容時(shí),以1/N的概率進(jìn)行差錯(cuò)校驗(yàn)。差錯(cuò)<BR> 校驗(yàn)的結(jié)果更新該物理存儲(chǔ)區(qū)塊的損壞級別,但是損壞級別只升不降。最初的損壞級別在<BR> 格式化并建立文件系統(tǒng)時(shí)<BR> 設(shè)定。</P><P> 通過實(shí)驗(yàn)3的結(jié)果可以看到,采用存儲(chǔ)內(nèi)容自適應(yīng)的壞損管理策略后,對于可容錯(cuò)的多媒<BR> 體碼流,存儲(chǔ)效率和存儲(chǔ)速度都可以得到明顯提高。并且,設(shè)定合適的校驗(yàn)概率所發(fā)生的<BR> 漏檢率是很低的。</P><P> 實(shí)驗(yàn)3 內(nèi)容自適應(yīng)的壞損管理策略對多媒體數(shù)據(jù)流的應(yīng)用效果</P><P> 實(shí)驗(yàn)條件<BR> Flash存儲(chǔ)器規(guī)格:16KB/Block×1024Block。<BR> 0級塊,不允許出現(xiàn)損壞,每次寫入都進(jìn)行校驗(yàn),對應(yīng)理想存儲(chǔ)媒質(zhì);<BR> 1級塊,允許1~2 bits損壞,以1/4概率校驗(yàn),對應(yīng)3.8E-6差錯(cuò)率;<BR> 2級塊,允許3~8 bits損壞,以1/32概率校驗(yàn),對應(yīng)6.1E-5差錯(cuò)率。<BR> 設(shè)定Flash頁面的寫入以1%概率損壞1個(gè)bit,對單一文件重復(fù)進(jìn)行<BR> {打開文件,寫入1KB數(shù)據(jù),關(guān)閉文件}的操作10000次。 <BR> 實(shí)驗(yàn)結(jié)果<BR> 存儲(chǔ)0級數(shù)據(jù)(純數(shù)據(jù)業(yè)務(wù)) 存儲(chǔ)1級數(shù)據(jù)(低容錯(cuò)多媒體業(yè)務(wù)) 存儲(chǔ)2級數(shù)據(jù)(高容錯(cuò)<BR> 多媒體業(yè)務(wù)) <BR> 被文件數(shù)據(jù)占用Flash空間 0級Blocks 625 0級Blocks 547<BR> 1級Blocks 78 0級 Blocks 616<BR> 1級 Blocks 8<BR> 2級 Blocks 1 <BR> 無法于使用的Flash空間 348 Blocks 6Blocks 0 Blocks <BR> 對數(shù)據(jù)內(nèi)容進(jìn)行的寫入校驗(yàn)次數(shù) 10000次 2564次 320次 <BR> 數(shù)據(jù)寫入了未達(dá)要求的存儲(chǔ)塊,而檢驗(yàn)漏過檢出的次數(shù) 0次 1次 0次 </P><P> 針對嵌入式多媒體應(yīng)用中大量數(shù)據(jù)在Flash上存儲(chǔ)的管理問題,文件系統(tǒng)是一種比較全面<BR> 優(yōu)秀的解決方案。本文對嵌入式多媒體應(yīng)用中Flash文件系統(tǒng)的應(yīng)用特點(diǎn)與關(guān)鍵設(shè)計(jì)進(jìn)行<BR> 了分析,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)適宜于嵌入式多媒體應(yīng)用的Flash文件系。其主要特點(diǎn)包括:</P><P> (1)完全支持文件代號(hào)管理、文件指針存取以及對應(yīng)用透明的自動(dòng)壞損管理這些通用文<BR> 件系統(tǒng)所具有的功能。</P><P> (2)針對嵌入式系統(tǒng)的應(yīng)用環(huán)境,設(shè)計(jì)改進(jìn)了本Flash文件系統(tǒng)的可靠性,使其可以工作<BR> 在很惡劣的條件下。</P><P> (3)針對嵌入式系統(tǒng)的成本與系統(tǒng)資源限制,改進(jìn)降低了本Flash文件系統(tǒng)的系統(tǒng)資源開<BR> 銷,擴(kuò)大了其應(yīng)用范圍。</P><P> (4)針對多媒體應(yīng)用的數(shù)據(jù)特點(diǎn),提出了基于存儲(chǔ)內(nèi)容自適應(yīng)的壞損管理策略,提高了<BR> 在多媒體應(yīng)用中的存儲(chǔ)效率與存儲(chǔ)速度。</P><P> 最終設(shè)計(jì)的Flash文件系統(tǒng)其結(jié)構(gòu)如圖2。</P><P> 通過仿真分析,本Flash文件系統(tǒng)相對類似MS-DOS FAT的基礎(chǔ)系統(tǒng),在可靠性、系統(tǒng)<BR> 資源開銷等方面的性能提高是可觀的,對于多媒體數(shù)據(jù)流在Flash存儲(chǔ)器資源有效利用和<BR> 改善存儲(chǔ)性能等方面,也有明顯的改善。因此,本Flash文件系統(tǒng)很適合于嵌入式多媒體<BR> 應(yīng)用。 <BR> <BR> <BR>
|
|
狀 態(tài):
離線
公司簡介
產(chǎn)品目錄
|
|
公司名稱:
|
中華工控網(wǎng)
|
聯(lián) 系 人: |
客服中心
|
電 話: |
0755-26546361
|
傳 真: |
0755-26585268 |
地 址: |
深圳市南山區(qū)創(chuàng)業(yè)路現(xiàn)代城華庭1棟6A |
郵 編: |
518054 |
主 頁: |
|
|
|
|
|