《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式系統中基于閃存平臺的存儲管理策略
嵌入式系統中基于閃存平臺的存儲管理策略
來源:電子技術應用2010年第5期
李建勛,樊曉光,禚真福
空軍工程大學 工程學院,陜西 西安710038
摘要: 開發了一個基于閃存平臺的嵌入式文件系統。為保證閃存扇區的平均使用率和均衡擦寫次數,引入了損壞管理策略,在這種策略中采用了動態存儲空間管理模式和先入先出(FIFO)策略。所采用的冗余設計、快速計算和跟蹤策略還可以延長核心扇區使用壽命,保證系統啟動可靠的服務。
中圖分類號: TP302.1
文獻標識碼: A
Storage management strategy of flash-based platform in embedded system
LI Jian Xun,FAN Xiao Guang,ZHUO Zhen Fu
Engineering College ,Air Force Engineering University,Xi′an 710038,China
Abstract: In this paper, a specified file system adapted to embedded system with flash-based memory is developed. To guarantee the average usage of flash storage sectors, the strategy of wear leveling and adaptive damage management is introduced, in which a dynamic storage space management mode and the strategy of first in first out (FIFO) are adopted. Moreover, the strategy of redundancy design and fast-calculation and tracing is also adopted to extend the life of kernel sector, which can guarantee the reliable ser-vice of system booting.
Key words : storage management;embedded system;flash;sectors;flash file system

    在嵌入式系統中,由于閃存成本低、容量大、非易失、訪問速度高和機械故障少的優勢已逐漸成為最流行的存儲大量數據的存儲器。然而,閃存常見的用法是簡單的流模式,它沒有提供文件的存儲和管理功能。解決問題的方法是建立一個管理存儲空間和數據信息的文件系統。目前,商用閃存文件系統(FFS)通常是與DOS兼容,這將產生一個復雜的文件目錄[1],這種系統不實用且浪費資源。
    由于嵌入式系統軟硬件的限制,在應用于通用計算機系統的標準文件系統(例如用于Win32/DOS的FAT和用于Linux的EXT)時,必須進行相應修改以適應嵌入式環境。在通用的文件系統趨向于簡單化和專業化的進程中,研究主要集中在以下幾個方面[2,3]:在一個小的高速存儲器上實現嵌入式系統處理速度和有限資源的平衡;實現特定性能,如用于滿足不同的嵌入式應用環境的數據加密和運行的可靠性的功能;提高嵌入式系統的實時性能。事實上,不少嵌入式系統是根據客戶的特殊要求定做的。針對這種情況,開發了具有高可靠性的簡化嵌入式閃存文件系統,與復雜的商用文件系統相比,這個嵌入式計算機數值控制系統更實用。
1 FFS存儲結構和框架
    嵌入式系統中閃存有以下特點:(1)閃存以扇區為單位執行,如果修改扇區內1 B的數據,則整個扇區的數據都將被重寫;(2)通常任一扇區可重寫大約0.1~1萬次;(3)損壞扇區難免。在計算機數控系統中應用了閃存特性和局部處理程序訪問特征,在邏輯上非結構化的數據流模式被應用到FFS,在物理上存儲空間以扇區為基礎分成不同的塊[4]。閃存文件系統(FFS)不僅提供了根據文件名查找和訪問文件,使得有限的存儲空間得到合理和充分利用,而且還提供基于存儲內容的擦寫策略損壞扇區的適應性管理,因此,在某種程度上FFS的可靠性有所提高。
    為了使閃存文件系統在不同的平臺上更易于進行維護、升級和移植,基于Madnick分層模型設計了一個文件系統分層結構。圖1所示的文件系統包括2個主要部分:文件管理單元和存儲空間管理單元。較低層為上層部分提供服務。每一層僅涉及接口,而不是更低或上層內部結構。

2 存儲空間管理
    作為嵌入式系統的一部分,閃存存儲管理的主要功能包括提高使用效率、加快執行速度和根據其物理特性使用特殊算法管理閃存內存單元的使用頻率[5]。存儲空間管理單元在邏輯上由3個層次組成:文件物理層、存儲設備分配層和閃存驅動層[6]。閃存驅動層為上層提供最基本的驅動程序,如下:

2.1 存儲扇區管理
    本文開發的FFS存儲結構類似于MS-DOS的FAT,是FAT系統的修改。圖2顯示了一系列模式的基本存儲結構。

    系統記錄區(SRA)存儲介質信息和最重要的文件系統信息,如閃存類型、容量、扇區數和扇區利用現狀。這個扇區的利用狀況包括文件數、未使用的扇區數、損壞扇區數、第一個和最后一個未使用的扇區編號。圖3顯示了在SRA上的內存分配。文件信息區域(FIA)用于存儲文件的詳細信息,如文件名、文件類型、文件大小、文件屬性和閃存鏈表項。程序數據區(PDA)用于存儲程序數據。在圖2陰影部分是每個區域損壞的扇區。如果損壞的扇區數達到給定界限值,警報將自動啟動。圖3為SRA上的內存分配情況,不同部分存儲特定的記錄信息:1為閃存內存類型;2為閃存內存容量;3為扇區數;4為文件數;5為未使用扇區數;6為損壞的扇區數;7為最后一次寫入FIA的扇區組數;8為第一個未使用扇區號;9為最后未使用扇區號;10為系統記錄控制的關鍵字;11為下一個要寫入的扇區號。

    不同的系統有不同的存儲空間管理模式,最簡單的可能是一個命令模式,但它并不適用于某些特殊應用。例如,在計算機數控系統中使用命令模式,用戶不方便編輯、修改或者刪除由各種機器處理指令組成的G代碼程序。另一個常用的方式是靜態存儲模式,這意味著每一個文件分配固定的扇區數。在這種情況下,如果文件大小超過了給定的空間,雖然仍有未使用的扇區,但寫操作卻不能成功完成。同樣,小文件顯然將導致存儲空間浪費。此外,由于過度頻繁地訪問同一個文件,與其他的扇區相比這樣的扇區更易于損壞。因此,靜態存儲模式不是一個很好的選擇。
    為了克服這些問題,提出了一個動態存儲空間管理模式,采用平均擦除和寫入策略。先入先出(FIFO)的引入,保證了閃存存儲扇區的平均使用。當系統第一次加電,未使用的扇區都初始化為一個雙鏈表。此后,這些扇區應該從鏈表頭節點轉到尾節點。這樣,在訪問每個扇區的頻率將趨于平等,每個扇區將不會過度頻繁讀取/寫入。假設鏈表有N個節點,每個扇區訪問的概率只有1/N,因此,閃存的使用壽命可以明顯延長。
    相對而言,基于MS-DOS的FAT系統只為數據區提供損害管理,卻忽視了文件系統結構區域。相對地,SRA作為FFS結構區域,由于存儲了系統關鍵信息而成為最重要的區域。而且,由于頻繁訪問, SRA往往更易損壞。因此,這一區域應當運用一種安全策略。根據在SRA、FIA和PDA存放的數據的重要性不同,不同存儲區域應當分配不同的可靠性要求。因此,可以充分利用閃存存儲能力,寫校驗時間將會減少,從而寫速度將有所改善。
2.2 SRA的平均擦除和寫入管理
    為了實現對System record area(SRA)平均擦除和寫管理,避免由系統記錄扇區物理損傷而導致整體系統的故障,SRA被平均劃分成3個小組。3組依次進行寫操作,可以為系統記錄存儲安全提供一個冗余策略,從而提高系統的可靠性,延長系統壽命。這對于每次在系統通電之后獲取SRA代碼值是必要的。由系統記錄關鍵字(SysKeyword)控制的值,標記著系統關閉前最后一次寫操作的系統扇區的執行記錄,它顯示為:
   
    在系統初始化時,SRA中每組的相應系統變量關鍵字(1~3)初始化為0。在后續操作中,各組關鍵字(SysKeyword)的真實值應該更新,在系統每次啟動時分別從SRA讀出。因此,SysCodeValue的值可根據式(1)得到。執行最后一次寫操作的組號可以通過調用函數GetLastGroup-Num()獲得。一旦SRA的記錄數據被更改,系統關鍵字應該相應更新。然后包括SysKeyword的記錄數據,應寫入到根據以下方法獲得的相應扇區。

    下一次將被寫入的該系統記錄扇區的組號與轉移的參量LastGroupNum可以通過調用函數GetNextGroupNum(Uchar LastGroupNum)共同獲得。SysCodeValue的值將更新如下:
    SysCodeValue=SysCodeValue∧2NextGroupNum-1   (2)
    通過組合式(1)和式(2)可以得到每組SysKeyword的值,因此,可以迅速查出最新和最舊的記錄。該方法是一種快速計算和跟蹤策略,這樣,根據得到的組號和SysKeyword的值,寫操作可以順利執行。
    該系統記錄扇區的詳細參數值如表1所示。

3 文件管理
    文件管理層(FML)封裝了整個文件系統,并且為操作系統和上層的應用程序提供統一標準的程序接口(APIs)。用戶操作請求將被APIs移交到文件的邏輯層(FLL),然后將請求發送到文件的物理層(FPL)。
3.1 文件編輯
    文件系統應提供友好的用戶界面,用戶可以操作文件,無需考慮文件的結構或物理位置。圖4顯示編輯一個存儲在閃存的文件流程圖。首先要遍歷文件信息鏈表,根據文件名來查找存儲此文件信息的節點。因此,該文件存儲空間的第一個扇區可獲取,后續扇區依次獲取。然后,每個扇區將逐個讀取,數據將被寫入緩沖區。通過建立一個雙鏈表顯示數據,然后通過人機界面進行編輯操作。最后,將修改后的數據寫回到閃存,文件信息和系統記錄將自動更新。

3.2 文件存儲和文件刪除
    連續的文件存儲結構模式(如圖5中的文件N005和N011)在存儲前,文件通常被劃分成為大小相等的多個數據塊(除最后一個塊的大小可能小于其他塊)。塊的數量是由文件和塊大小決定,而塊的大小與存儲介質有關。在本文中,閃存的存儲單元(即扇區)為256 B,因此,該塊的大小建議不超過256 B。在這里,把文件劃分為252 B大小的塊,每個數據塊占用一個扇區的存儲空間。因此,塊的數量(即被占用的扇區數)可以計算出,這是最低整數不少于文件字節大小除以塊字節大小所得的商數。然后未使用的扇區鏈表的頭節點作為這個文件存儲空間的第一個扇區。緊隨第一個扇區,很多未使用的扇區被取出后,整個文件的存儲空間可用。因此,該文件成功保存。

    閃存的地址空間不允許隨意被刪除,刪除一個文件時必須把扇區作為一個刪除單元。因此,刪除一個文件,要使用與編輯操作相同的手段獲得該文件節點的存儲信息,這樣文件的信息可以使用。有了文件信息,文件的存儲空間的第一個扇區可以得到,其他的也可以依次得到。然后未使用的扇區鏈表上的扇區可以通過調用函數FreeSect(Ulong SectNum)釋放第一個扇區。最后,根據雙鏈表的原則,這個節點將被刪除。
    圖5為一個文件創建和刪除過程的示例。要創建一個文件(文件名為N005,大小為912 B,第一個扇區是5號),未使用扇區鏈表的頭節點作為這個文件的存儲空間的第一個扇區(扇區號為5)。同時,在文件信息鏈表的尾節點寫文件信息。這個文件的存儲扇區數可以計算出來,結果被證明是4。然后,從未使用的扇區鏈表頭部,4個扇區依次用于存儲文件數據。從而,文件信息和系統記錄更新后,文件的創建操作完成。
    要刪除文件(文件名是N011,文件大小為2 026 B,第一個扇區編號為6),根據文件名N011,通過遍歷文件信息鏈表獲取文件信息節點,根據存儲在此節點文件信息,可以獲得文件大小和存儲空間項(即文件的第一個扇區)。扇區數目也可以計算出來。由于指針索引指向下一個節點,每個扇區被釋放,并連接到未使用扇區鏈表尾節點。最后的操作是從文件信息鏈表刪除這個節點。與此同時,文件信息和系統的記錄應該更新。
    通過在一個嵌入式計算機數控系統上的有效且成功應用充分展示了FFS的良好性能。這個FFS經過略微的修改即可在不同的嵌入式平臺上進行移植,且具有一定的普遍性。
    為了提高存儲和管理嵌入式平臺上文件數據的性能,本文提出了一種新的應用于閃存文件系統(FFS)的策略,其特點可以描述如下:
    (1)減少寫周期提高寫入速度。
    (2)采用動態分配存儲空間,提高利用效率和延長閃存的使用壽命。
    (3)相應的文件被刪除后,存儲扇區可以很快被釋放,并可以連接到未使用的扇區鏈表。
    (4)當損壞扇區的數量到達設置值時自動報警,確保系統處于良好狀態。
    (5)FAT分配的內存空間存儲指針以數組的形式作為全局變量。
    (6)為延長內核扇區壽命確保系統啟動可靠服務,采用冗余設計、快速計算和追蹤策略。
    因此,本文中的FFS,特別是在可靠性、存儲效率和良好的可移植性方面已獲得明顯的成效。
參考文獻
[1] ZHAO Kui,ZHANG Fan.A storage management scheme for embedded system[J].Technological Development of Enterprise,2005,24(1):23-26.
[2] 周興德,孟曉風.實時系統軟件設計方法[J].計算機自動測量與控制,2000(4-6).
[3] NOERGAARD T.Embedded systems architecture:a comprehensive guide for engineers and programmers[M].Newnes,USA,2005:369-412.
[4] ROSENBLUM M,OUSTERHOUT J K.The design and implementation of a log-structured file system[J].ACM Transactions on Computer Systems(TOCS),1992,10(1):26-52.
[5] Kim Han Joon,Lee Sang Goo.A new flash memory management for flash storage system[C].In:Proceedings of the  TwentyThird Annual International Computer Software and Applications Conference.IEEE Computer Society,Washington  DC,USA,1999:284-289.
[6] WANG Tao.Research on developing platform for CNC system based on MCX314 motion control chip[D].School of  Mechanical Engineering,Tianjin University,Tianjin,China,2005.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美成人69av| 国产亚洲精品bt天堂精选| 亚洲欧美国产77777| aaa亚洲精品一二三区| 亚洲黄色成人| 亚洲国产日韩美| 亚洲第一页自拍| 久久激五月天综合精品| 欧美一区二区在线看| 亚洲欧美韩国| 亚洲综合视频一区| 亚洲一区二区免费| 亚洲一区二区高清视频| 在线亚洲一区观看| 一区二区精品| 在线一区免费观看| 亚洲一区二区免费看| 亚洲一级二级| 亚洲欧美日韩一区在线| 午夜激情综合网| 欧美在线视频免费| 亚洲高清av| 亚洲精品美女免费| 一区二区三区波多野结衣在线观看| 日韩午夜免费视频| 99riav1国产精品视频| 中日韩男男gay无套| 亚洲欧美日韩精品久久| 性18欧美另类| 久久久久国产精品人| 久久一区二区三区四区| 免费h精品视频在线播放| 欧美激情1区| 国产精品成人免费| 国产欧美韩国高清| 国产综合视频| 亚洲国内欧美| 一本色道久久88精品综合| 亚洲一区二区三区中文字幕 | 夜久久久久久| 亚洲欧美日韩爽爽影院| 久久久久www| 欧美高清视频一区二区| 欧美三级黄美女| 国产婷婷精品| 亚洲区国产区| 亚洲伊人第一页| 亚洲国产精品va在线看黑人动漫 | 一本色道久久综合亚洲精品不| 亚洲一区二区三区高清不卡| 香蕉精品999视频一区二区| 久久久久成人精品| 欧美久久综合| 国产欧美视频一区二区三区| 亚洲国产日韩一级| 亚洲午夜精品一区二区| 久久精品一区中文字幕| 中文高清一区| 久久视频在线视频| 欧美三级午夜理伦三级中视频| 国产日产欧美a一级在线| 亚洲国产精品精华液网站| 亚洲性夜色噜噜噜7777| 亚洲国产精品综合| 亚洲欧美精品伊人久久| 美女精品国产| 国产精品视频精品| 亚洲片在线资源| 性欧美videos另类喷潮| 99精品视频免费观看| 久久xxxx| 欧美午夜精品久久久久久人妖 | 夜夜嗨av一区二区三区网站四季av| 午夜伦欧美伦电影理论片| 99精品福利视频| 久久精品免费电影| 欧美日韩国产小视频在线观看| 国产亚洲精品福利| 999亚洲国产精| 亚洲国产欧美一区| 先锋影音国产精品| 欧美精品一卡| 黑人操亚洲美女惩罚| 亚洲午夜久久久久久久久电影网| 亚洲国产综合在线看不卡| 欧美一区二区三区久久精品| 欧美成人午夜免费视在线看片| 国产日韩欧美不卡在线| 亚洲最新视频在线| 亚洲精选大片| 久久综合一区二区三区| 国产精品尤物| 亚洲天堂成人| 一本色道久久综合亚洲精品按摩 | 狠狠色2019综合网| 亚洲男人av电影| 亚洲一区二区三区久久| 欧美成人精品不卡视频在线观看| 国产婷婷97碰碰久久人人蜜臀| 一区二区三区成人| 亚洲图片欧洲图片日韩av| 欧美成人蜜桃| 在线观看久久av| 久久精品国产91精品亚洲| 欧美在线观看网站| 国产精品一区二区你懂的| 一区二区三区精密机械公司| 亚洲伦伦在线| 欧美激情精品久久久久久久变态| 一色屋精品视频在线看| 久久精品女人| 另类综合日韩欧美亚洲| 国精品一区二区| 欧美淫片网站| 久久精品72免费观看| 国产女主播一区二区三区| 亚洲综合国产精品| 欧美一区二区久久久| 国产精品综合| 性伦欧美刺激片在线观看| 久久av一区二区三区漫画| 国产日产精品一区二区三区四区的观看方式| 亚洲色无码播放| 亚洲欧美另类国产| 国产精品久久久久久户外露出| 制服丝袜激情欧洲亚洲| 亚洲欧美一区二区精品久久久| 欧美午夜一区二区福利视频| 亚洲最新在线| 先锋影音久久| 国产一区二区丝袜高跟鞋图片| 欧美中文在线观看| 狂野欧美激情性xxxx| 亚洲国产另类久久精品| 亚洲精品一二区| 欧美日韩一区三区| 亚洲无线一线二线三线区别av| 午夜精品免费| 国产亚洲精品久| 亚洲大胆av| 欧美成年人网| 一本一本久久a久久精品综合麻豆| 亚洲一区亚洲二区| 国产精品一区视频| 久久精品国产亚洲5555| 老司机免费视频一区二区三区| 亚洲国产高清视频| 国产精品99久久久久久久久久久久| 欧美无砖砖区免费| 亚洲欧美中文另类| 裸体素人女欧美日韩| 亚洲精品国产拍免费91在线| 亚洲一区视频| 国产亚洲午夜| 亚洲精品黄色| 国产精品第一区| 久久av资源网| 欧美连裤袜在线视频| 亚洲一级网站| 美女精品网站| 99视频精品全国免费| 欧美淫片网站| 1024成人网色www| 在线视频日韩精品| 国产精品一区久久久久| 亚洲国产综合91精品麻豆| 欧美三级欧美一级| 欧美中文字幕在线播放| 欧美日本精品| 欧美一区二区三区在线播放| 欧美福利一区二区| 亚洲视频网在线直播| 久久久亚洲午夜电影| 日韩视频在线免费| 久久久另类综合| 9人人澡人人爽人人精品| 久久米奇亚洲| 一区二区高清视频在线观看| 久久精品国产一区二区电影| 亚洲精选视频免费看| 久久精彩视频| 一本色道久久综合亚洲精品高清 | 国内不卡一区二区三区| 一本综合久久| 精品成人国产| 午夜精品福利电影| 亚洲人成高清| 久久亚洲一区| 亚洲一区二区免费在线| 欧美成人第一页| 欧美一区二区三区久久精品茉莉花| 欧美欧美午夜aⅴ在线观看| 欧美一区二区三区久久精品| 欧美三级午夜理伦三级中视频| 久久精品一区二区三区不卡| 国产精品久久久久久五月尺| 亚洲精品免费网站| 韩国av一区二区三区四区| 亚洲男女自偷自拍图片另类| 亚洲国产天堂久久综合网|