亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于DSP的可循環(huán)讀寫(xiě)文件系統(tǒng)設(shè)計(jì)

        2014-07-03 03:33:28殷杰波
        關(guān)鍵詞:登記表緩沖區(qū)存儲(chǔ)器

        殷杰波

        (江蘇自動(dòng)化研究所,連云港222061)

        引 言

        在以DSP為核心的嵌入式系統(tǒng)中,尤其在需要處理和存儲(chǔ)大量數(shù)據(jù)的應(yīng)用領(lǐng)域,提供必要的文件管理功能顯得尤為重要,但大多基于DSP的嵌入式系統(tǒng)一般不提供文件管理功能。目前,以DSP為核心的嵌入式系統(tǒng)中文件的存儲(chǔ)一般采用FLASH存儲(chǔ)器,而FLASH存儲(chǔ)器都有自己的容量限制,不可能無(wú)限制地將所有采集到的數(shù)據(jù)全部記錄到存儲(chǔ)器中。針對(duì)上述問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于DSP的可循環(huán)讀寫(xiě)的文件系統(tǒng)。其中DSP采用TI公司的TMS320C6678,存儲(chǔ)載體采用16片三星公司的FLASH 芯片 K9WAG08U1M,單片容量2 GB,共32 GB。該文件系統(tǒng)具有以下幾個(gè)特點(diǎn):

        ①統(tǒng)一管理FLASH存儲(chǔ)器存儲(chǔ)空間,實(shí)施存儲(chǔ)空間的分配與回收;

        ②實(shí)現(xiàn)文件的按名存取,使用方便、直觀;

        ③向用戶提供方便使用的接口,提供對(duì)文件系統(tǒng)以及文件的操作命令。

        1 文件系統(tǒng)的基本架構(gòu)與存儲(chǔ)空間管理

        1.1 文件系統(tǒng)的基本架構(gòu)

        文件系統(tǒng)中的FLASH以塊為單位組織,讀寫(xiě)的最小單位是頁(yè),每塊512頁(yè),每頁(yè)8 192字節(jié),按塊擦除。該文件系統(tǒng)參考FAT文件系統(tǒng)設(shè)計(jì),F(xiàn)LASH開(kāi)始部分4個(gè)數(shù)據(jù)塊為系統(tǒng)數(shù)據(jù)區(qū),用來(lái)存儲(chǔ)文件系統(tǒng)信息。

        存儲(chǔ)器操作的時(shí)間瓶頸不在于數(shù)據(jù)傳遞,而是FLASH存儲(chǔ)器內(nèi)部的擦除和寫(xiě)操作等待。FLASH存儲(chǔ)器讀出的速度和DSP處理數(shù)據(jù)的速度都很快,因此雖然將頁(yè)面作為讀寫(xiě)操作的基本容量單位,但額外增加的操作時(shí)間很短。

        為了使文件系統(tǒng)的結(jié)構(gòu)更加清晰,同時(shí)便于文件系統(tǒng)的維護(hù)、升級(jí)和移植,將文件系統(tǒng)劃分為三層[1]:文件管理層、文件邏輯層和驅(qū)動(dòng)層。各層的主要功能如下:

        ①文件管理層對(duì)整個(gè)文件系統(tǒng)進(jìn)行封裝,為應(yīng)用層提供統(tǒng)一的、標(biāo)準(zhǔn)的API接口,將用戶對(duì)文件操作的請(qǐng)求提交給文件邏輯層進(jìn)行處理。為了增強(qiáng)文件系統(tǒng)在不同存儲(chǔ)器上的移植能力,選取幾個(gè)最基本的操作作為文件系統(tǒng)與FLASH存儲(chǔ)器設(shè)備的應(yīng)用接口。本文件系統(tǒng)提供的基本API函數(shù)見(jiàn)表1。

        ②文件邏輯層為文件管理層提供服務(wù),把文件管理層對(duì)文件的操作轉(zhuǎn)換為物理邏輯上的操作,并提交給驅(qū)動(dòng)層處理。

        ③驅(qū)動(dòng)層實(shí)現(xiàn)對(duì)存儲(chǔ)設(shè)備的物理操作,包括壞塊管理、區(qū)塊擦除、頁(yè)面寫(xiě)入、頁(yè)面讀出等功能。

        表1 文件系統(tǒng)API函數(shù)

        1.2 文件系統(tǒng)的存儲(chǔ)空間管理

        本文件系統(tǒng)的存儲(chǔ)結(jié)構(gòu)類(lèi)似于MS-DOS的FAT文件系統(tǒng)結(jié)構(gòu),分別由系統(tǒng)記錄、文件登記表、文件分配表和文件數(shù)據(jù)區(qū)域等組成[2],其基本結(jié)構(gòu)如圖1所示。

        (1)系統(tǒng)記錄(SR)

        系統(tǒng)記錄(SR)存放存儲(chǔ)器物理信息和文件系統(tǒng)分區(qū)信息。存儲(chǔ)器物理信息包括存儲(chǔ)器的類(lèi)型、容量、劃分成多少個(gè)區(qū)塊、每區(qū)塊包含多少個(gè)頁(yè)面等。文件系統(tǒng)分區(qū)信息包括分區(qū)的起始?jí)K和結(jié)束塊、分區(qū)的起始頁(yè)和結(jié)束頁(yè)、分區(qū)大小、可用空間等信息。系統(tǒng)記錄占用256字節(jié),其中前48字節(jié)為存儲(chǔ)器物理信息,有效數(shù)據(jù)40字節(jié);后208字節(jié)為文件系統(tǒng)分區(qū)信息,有效數(shù)據(jù)168字節(jié)。具體的存儲(chǔ)定義見(jiàn)表2、表3。

        (2)文件登記表(FRT)

        文件登記表(FRT)存放文件系統(tǒng)中每一個(gè)文件的文件代號(hào)、文件長(zhǎng)度、文件屬性以及該文件的存儲(chǔ)鏈在文件分配表中的入口??紤]到嵌入式系統(tǒng)的應(yīng)用范圍,本文件系統(tǒng)不支持子目錄結(jié)構(gòu)。文件登記表占用15.75 KB,每個(gè)文件節(jié)點(diǎn)占用32字節(jié),因此,該文件系統(tǒng)可管理15.75 KB/32 B=504個(gè)文件。文件登記表數(shù)據(jù)結(jié)構(gòu)見(jiàn)表4。

        圖1 文件系統(tǒng)存儲(chǔ)結(jié)構(gòu)圖

        表2 存儲(chǔ)器物理信息數(shù)據(jù)結(jié)構(gòu)

        表3 系統(tǒng)分區(qū)信息數(shù)據(jù)結(jié)構(gòu)

        表4 文件登記表數(shù)據(jù)結(jié)構(gòu)

        (3)文件分配表(FAT)

        文件分配表(FAT)是整個(gè)文件系統(tǒng)的核心,存放著存儲(chǔ)器上所有區(qū)塊的占用與空閑情況以及每個(gè)文件的存儲(chǔ)鏈接結(jié)構(gòu)??紤]到在嵌入式處理器上實(shí)現(xiàn)的方便性并權(quán)衡文件系統(tǒng)應(yīng)用的規(guī)模,選擇將文件分配表固定為16字節(jié)的FAT標(biāo)識(shí),16 KB可標(biāo)識(shí)8K個(gè)塊,每塊占用2字節(jié),共可管理32 GB的FLASH。

        (4)數(shù)據(jù)區(qū)域(Data Aera)

        數(shù)據(jù)區(qū)域(Data Aera)用于存放文件的數(shù)據(jù)內(nèi)容。本文件系統(tǒng)中,數(shù)據(jù)分配的最小單位是存儲(chǔ)器的一個(gè)基本擦除單位,即一個(gè)物理區(qū)塊,大小為4 MB。也就是說(shuō),文件所占用的存儲(chǔ)空間必須為一個(gè)物理區(qū)塊的整數(shù)倍,即使文件只有1字節(jié),也要占用一個(gè)物理區(qū)塊的存儲(chǔ)空間。

        2 文件系統(tǒng)的實(shí)現(xiàn)

        2.1 文件系統(tǒng)的初始化

        當(dāng)文件系統(tǒng)被加載時(shí),系統(tǒng)首先掃描整個(gè)存儲(chǔ)介質(zhì)。將存儲(chǔ)在介質(zhì)中的系統(tǒng)信息表、文件登記表、文件分配表從存儲(chǔ)介質(zhì)中讀取到內(nèi)存,建立臨時(shí)系統(tǒng)信息表和臨時(shí)文件列表,創(chuàng)建一個(gè)臨時(shí)文件分配表。這樣,文件系統(tǒng)對(duì)文件登記表和文件分配表的操作轉(zhuǎn)換成對(duì)內(nèi)存中兩個(gè)臨時(shí)表的操作。因?yàn)閮?nèi)存的讀寫(xiě)效率遠(yuǎn)遠(yuǎn)高于FLASH,因此可以大幅提高文件系統(tǒng)的操作效率。文件系統(tǒng)初始化流程圖如圖2所示。

        圖2 文件系統(tǒng)初始化流程圖

        2.2 降低文件系統(tǒng)的資源消耗

        基于DSP的FLASH文件系統(tǒng)的資源消耗[3],主要包括程序代碼開(kāi)銷(xiāo)、處理器占用時(shí)間、運(yùn)行時(shí)內(nèi)存開(kāi)銷(xiāo)以及額外的FLASH存儲(chǔ)器消耗。其中,運(yùn)行時(shí)內(nèi)存開(kāi)銷(xiāo)很大程度上限制了FLASH文件系統(tǒng)的應(yīng)用;而設(shè)計(jì)結(jié)構(gòu)的改善與運(yùn)行時(shí)內(nèi)存開(kāi)銷(xiāo)直接相關(guān),因此針對(duì)資源消耗的結(jié)構(gòu)優(yōu)化主要著重于減小運(yùn)行時(shí)的內(nèi)存開(kāi)銷(xiāo)。

        FLASH存儲(chǔ)器的擦除單位是區(qū)塊,這是本文件系統(tǒng)中數(shù)據(jù)存儲(chǔ)分配的最小單元。如果不采用任何措施,運(yùn)行時(shí)內(nèi)存開(kāi)銷(xiāo)中將至少包括備份一個(gè)完整區(qū)塊數(shù)據(jù)的緩沖區(qū);而一個(gè)FLASH存儲(chǔ)器的區(qū)塊可能很大,這在很多嵌入式系統(tǒng)中都是過(guò)大的資源[4]。

        為此,采用交換緩沖區(qū)(Swap Buffer)技術(shù)來(lái)解決這個(gè)困難。當(dāng)需要向某一個(gè)區(qū)塊寫(xiě)入數(shù)據(jù)時(shí),并不直接向該區(qū)塊寫(xiě)入,而是首先擦除用于做交換緩沖區(qū)的區(qū)塊,然后逐步向交換緩沖區(qū)填入目的數(shù)據(jù)內(nèi)容。此時(shí)任何有用數(shù)據(jù)內(nèi)容都未被破壞,所以運(yùn)行內(nèi)存中的緩沖就較小。當(dāng)交換緩沖區(qū)填寫(xiě)完成后,再擦除目的區(qū)塊,拷貝交換緩沖區(qū)內(nèi)容到目的區(qū)塊。

        采用交換緩沖區(qū)后,對(duì)內(nèi)存中的緩沖區(qū)大小沒(méi)有特別要求,考慮到FLASH存儲(chǔ)器的操作特性,選取FLASH存儲(chǔ)器的頁(yè)面容量作為內(nèi)存緩沖區(qū)大小。在結(jié)構(gòu)上做了上述改進(jìn)后,可大幅降低文件系統(tǒng)在運(yùn)行時(shí)的內(nèi)存消耗。在一般的FLASH存儲(chǔ)器中都有一個(gè)特別制作的區(qū)塊,該區(qū)塊保證不會(huì)損壞,適用于做交換緩沖區(qū)。這樣可以省去中間交換緩沖過(guò)程的數(shù)據(jù)完整性檢驗(yàn),加快寫(xiě)操作的速度。

        2.3 文件系統(tǒng)的可循環(huán)讀寫(xiě)

        由于FLASH具有讀寫(xiě)速度較快而擦除較慢的特點(diǎn)[5],寫(xiě)入過(guò)程中,當(dāng)系統(tǒng)存儲(chǔ)空間不足需要擦除數(shù)據(jù)時(shí),將出現(xiàn)擦除過(guò)程尚未結(jié)束而再次申請(qǐng)寫(xiě)入的情況,導(dǎo)致數(shù)據(jù)寫(xiě)入錯(cuò)誤。為了避免這一錯(cuò)誤,在該文件系統(tǒng)中設(shè)計(jì)了一個(gè)擦除隊(duì)列,并保留一定的存儲(chǔ)空間。當(dāng)檢測(cè)到系統(tǒng)的剩余存儲(chǔ)空間小于保留空間的大小時(shí),把舊的數(shù)據(jù)塊放入待擦除隊(duì)列,在寫(xiě)入數(shù)據(jù)的間隙擦除數(shù)據(jù),同時(shí)緩存待寫(xiě)入數(shù)據(jù),擦除完成后繼續(xù)寫(xiě)入過(guò)程。文件系統(tǒng)的循環(huán)讀寫(xiě)流程圖如圖3所示。

        圖3 循環(huán)讀寫(xiě)流程圖

        2.4 文件系統(tǒng)的高可靠性設(shè)計(jì)

        在多數(shù)嵌入式文件系統(tǒng)中,僅僅對(duì)數(shù)據(jù)區(qū)域提供壞損管理,而對(duì)于系統(tǒng)記錄、文件分配表和文件登記表這3個(gè)極重要的文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)卻未做任何保護(hù)。一旦這些區(qū)域的內(nèi)容失效,必然將導(dǎo)致文件數(shù)據(jù)的大量損失。

        針對(duì)FLASH存儲(chǔ)器的寫(xiě)操作異常終止問(wèn)題(如非正常關(guān)電),本文件系統(tǒng)中將系統(tǒng)記錄、文件分配表和文件登記表這3個(gè)文件系統(tǒng)重要數(shù)據(jù)結(jié)構(gòu)采用冗余存儲(chǔ)的方法進(jìn)行處理。這樣可以避免因它們的操作異常,而導(dǎo)致的整個(gè)文件系統(tǒng)失效。

        具體做法是:將本次對(duì)文件操作所對(duì)應(yīng)的系統(tǒng)信息記錄標(biāo)記為最新,以此類(lèi)推,則上次所做操作對(duì)應(yīng)的系統(tǒng)記錄為次新記錄。對(duì)系統(tǒng)記錄定義4個(gè)系統(tǒng)記錄保留區(qū)塊,將系統(tǒng)記錄、文件分配表和文件登記表順序存放在這個(gè)區(qū)域 內(nèi),確切 的 位置 在文 件 系統(tǒng) 初 始化 時(shí)通 過(guò) 掃描找到最新的系統(tǒng)記錄。

        如此可確保FLASH存儲(chǔ)器上總是存有一整套完好的較新的系統(tǒng)記錄表、文件分配表和文件登記表。在系統(tǒng)啟動(dòng)運(yùn)行時(shí),文件系統(tǒng)首先確定每一張表備份的合法性和時(shí)效性,判斷出上次系統(tǒng)關(guān)閉時(shí)是否存在操作異常終止并及時(shí)更正。通過(guò)這樣的設(shè)計(jì),即使文件系統(tǒng)在使用中出現(xiàn)了寫(xiě)操作異常終止的情況,錯(cuò)誤也只涉及當(dāng)時(shí)被操作的文件數(shù)據(jù),不會(huì)擴(kuò)散給FLASH文件系統(tǒng)中的其他文件,更不會(huì)因此損壞3個(gè)文件系統(tǒng)表結(jié)構(gòu)而造成整個(gè)文件系統(tǒng)的癱瘓。

        結(jié) 語(yǔ)

        本文介紹了一種在DSP環(huán)境下開(kāi)發(fā)文件系統(tǒng)的方法,并最終在項(xiàng)目中實(shí)現(xiàn)了該文件系統(tǒng)。經(jīng)實(shí)際應(yīng)用,很好地滿足了項(xiàng)目在數(shù)據(jù)存儲(chǔ)和文件管理方面的需求。

        本系統(tǒng)軟件主體代碼以C語(yǔ)言寫(xiě)成,使用一個(gè)非常小的存儲(chǔ)器設(shè)備驅(qū)動(dòng)接口,具有較好的可擴(kuò)展及可移植能力。另外,本文件系統(tǒng)針對(duì)FLASH本身的特性,采用冗余存儲(chǔ)和三層結(jié)構(gòu)設(shè)計(jì),提高了文件系統(tǒng)的可靠性和操作效率,并具有良好的可維護(hù)性。

        [1]郁玉蘭.基于DSP平臺(tái)的嵌入式文件系統(tǒng)的研究與設(shè)計(jì)[D].上海:上海交通大學(xué),2005.

        [2]高永占.基于SD卡的嵌入式文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2010.

        [3]Tanenbaum A S.操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].王鵬,尤晉元,朱鵬,等譯.北京:電子工業(yè)出版社,1998.

        [4]張堯?qū)W.計(jì)算機(jī)操作系統(tǒng)教程[M].北京:清華大學(xué)出版社,1994.

        [5]董明.適宜于嵌入式多媒體應(yīng)用的Flash文件系統(tǒng)[J].電子技術(shù)應(yīng)用,2002(9):24-27.

        猜你喜歡
        登記表緩沖區(qū)存儲(chǔ)器
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫(xiě)方法的設(shè)計(jì)與實(shí)現(xiàn)
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        2021年山西省對(duì)口升學(xué)考試獎(jiǎng)勵(lì)照顧考生登記表
        山西省成人高校招生錄取照顧對(duì)象登記表
        2020年山西省對(duì)口升學(xué)考試獎(jiǎng)勵(lì)照顧考生登記表
        山西省對(duì)口升學(xué)考試獲獎(jiǎng)考生照顧加分登記表
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        存儲(chǔ)器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
        地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
        亚洲中文字幕无码av永久| 国产av无码专区亚洲aⅴ| 国产乱子乱人伦电影在线观看| 在线视频 亚洲精品| 欧美 亚洲 国产 日韩 综AⅤ | 先锋影音av资源我色资源| 久久丫精品国产亚洲av| 久草热8精品视频在线观看| 亚洲国产成a人v在线观看| 久久精品国产亚洲片| 日韩av天堂综合网久久| 国产精品一区二区三区在线观看 | 国产aⅴ丝袜旗袍无码麻豆| 好爽要高潮了在线观看| 久久久精品国产亚洲av网麻豆| 日本熟女精品一区二区三区| 色综合久久中文字幕综合网| 狠狠精品久久久无码中文字幕| 国产成人av 综合 亚洲| 久久精品国产免费观看99| 色婷婷亚洲十月十月色天| 国产一区二区三区特黄| 国产精品无套一区二区久久| 色先锋av影音先锋在线| 亚洲性爱视频| 国产免费网站看v片元遮挡| 亚洲中文字幕诱惑第一页| 日本一区二区三区女优在线| 扒开美女内裤舔出白水| 蜜臀性色av免费| 精品国产精品久久一区免费式| 亚洲成a人片在线观看中| 亚洲国产精品自拍成人| 人人妻人人澡人人爽国产一区| 久久精品黄aa片一区二区三区| 国产精品女同一区二区| 久久精品国产亚洲av高清蜜臀| 中文字幕第一页人妻丝袜| 国产大屁股视频免费区| 欧美日韩一区二区综合| 亚洲中文久久久久无码|