當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]嵌入式系統(tǒng)中基于閃存平臺的存儲管理策略

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

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

[!--empirenews.page--]2.1 存儲扇區(qū)管理
    本文開發(fā)的FFS存儲結構類似于MS-DOS的FAT,是FAT系統(tǒng)的修改。圖2顯示了一系列模式的基本存儲結構。

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

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

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

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

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

  [!--empirenews.page--]  閃存的地址空間不允許隨意被刪除,刪除一個文件時必須把扇區(qū)作為一個刪除單元。因此,刪除一個文件,要使用與編輯操作相同的手段獲得該文件節(jié)點的存儲信息,這樣文件的信息可以使用。有了文件信息,文件的存儲空間的第一個扇區(qū)可以得到,其他的也可以依次得到。然后未使用的扇區(qū)鏈表上的扇區(qū)可以通過調用函數(shù)FreeSect(Ulong SectNum)釋放第一個扇區(qū)。最后,根據(jù)雙鏈表的原則,這個節(jié)點將被刪除。
    圖5為一個文件創(chuàng)建和刪除過程的示例。要創(chuàng)建一個文件(文件名為N005,大小為912 B,第一個扇區(qū)是5號),未使用扇區(qū)鏈表的頭節(jié)點作為這個文件的存儲空間的第一個扇區(qū)(扇區(qū)號為5)。同時,在文件信息鏈表的尾節(jié)點寫文件信息。這個文件的存儲扇區(qū)數(shù)可以計算出來,結果被證明是4。然后,從未使用的扇區(qū)鏈表頭部,4個扇區(qū)依次用于存儲文件數(shù)據(jù)。從而,文件信息和系統(tǒng)記錄更新后,文件的創(chuàng)建操作完成。
    要刪除文件(文件名是N011,文件大小為2 026 B,第一個扇區(qū)編號為6),根據(jù)文件名N011,通過遍歷文件信息鏈表獲取文件信息節(jié)點,根據(jù)存儲在此節(jié)點文件信息,可以獲得文件大小和存儲空間項(即文件的第一個扇區(qū))。扇區(qū)數(shù)目也可以計算出來。由于指針索引指向下一個節(jié)點,每個扇區(qū)被釋放,并連接到未使用扇區(qū)鏈表尾節(jié)點。最后的操作是從文件信息鏈表刪除這個節(jié)點。與此同時,文件信息和系統(tǒng)的記錄應該更新。
    通過在一個嵌入式計算機數(shù)控系統(tǒng)上的有效且成功應用充分展示了FFS的良好性能。這個FFS經(jīng)過略微的修改即可在不同的嵌入式平臺上進行移植,且具有一定的普遍性。
    為了提高存儲和管理嵌入式平臺上文件數(shù)據(jù)的性能,本文提出了一種新的應用于閃存文件系統(tǒng)(FFS)的策略,其特點可以描述如下:
    (1)減少寫周期提高寫入速度。
    (2)采用動態(tài)分配存儲空間,提高利用效率和延長閃存的使用壽命。
    (3)相應的文件被刪除后,存儲扇區(qū)可以很快被釋放,并可以連接到未使用的扇區(qū)鏈表。
    (4)當損壞扇區(qū)的數(shù)量到達設置值時自動報警,確保系統(tǒng)處于良好狀態(tài)。
    (5)FAT分配的內存空間存儲指針以數(shù)組的形式作為全局變量。
    (6)為延長內核扇區(qū)壽命確保系統(tǒng)啟動可靠服務,采用冗余設計、快速計算和追蹤策略。
    因此,本文中的FFS,特別是在可靠性、存儲效率和良好的可移植性方面已獲得明顯的成效。
參考文獻
[1] ZHAO Kui,ZHANG Fan.A storage management scheme for embedded system[J].Technological Development of Enterprise,2005,24(1):23-26.
[2] 周興德,孟曉風.實時系統(tǒng)軟件設計方法[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.

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉