日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在CF卡上实现TrueFFS

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在CF卡上实现TrueFFS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CF卡是一種基于Flash技術的容量大、攜帶方便的存儲介質,已在嵌入式系統等領域得到廣泛的應用;但是,有限的擦寫次數極大地限制了CF卡的使用壽命。TrueFFS通過一系列算法,能夠延長CF卡的使用壽命,提高CF卡的使用效率。文章介紹了TrueFFS的原理,在CF卡上實現TrueFFS的方法,并對TrueFFS的性能進行了分析。

????關鍵詞:TrueFFS損耗均衡 閃速存儲器 CF卡

閃速存儲器最大的一個缺點就是壽命有限。可擦除的次數因芯片廠商而有所不同,一般都在1萬~10萬次左右。為了延長閃速存儲器的壽命,提高使用效率,Msystems公司推出了TrueFFS系統。它為種類繁多的閃速存儲器提供了統一的塊設備接口,并且具有可重入、線程安全的特點;支持大多數流行的CPU架構,如PowerPC、MIPS、ARM、X86、68K等。

由于個性鮮明的閃速存儲器越來越受到嵌入式系統工程師的青睞,業界流行的嵌入式實時操作系統VxWorks已將TrueFFS作為自身的一個可裁減的模塊。目前該模塊的版本為2.0,支持Intel、AMD、Toshiba、Fujitsu等廠家生產的大多數型號的閃速存儲器和Flash卡,用戶只需要更改少量代碼,甚至可直接調用;但是,該模塊對如今風靡的CF卡缺乏支持。

CF卡采用了Flash技術。形象地說,CF卡就是由若干片閃速存儲器外加一個管理器組成;但是,CF卡具有攜帶方便、易于升級、存儲量大、抗震性好、兼容性佳等優點。目前,CF卡標準已經達到1.4版本,容量從最早的2MB到現今的1GB。然而,有限的擦寫閃數是閃速存儲器遺傳給CF卡的先天缺陷。本文介紹如何在CF上實現TrueFFS系統,硬件平臺以PowerPC處理器(MPC8250,Motorola公司)為CPU,嵌入式操作系統是VxWorks。

1TrueFFS的結構

TrueFFS本身并不是一個文件系統,需要在TrueFFS之上加載DOS文件系統才能使用,否則毫無意義。TrueFFS屏蔽了下層存儲介質的差異,為開發者提供了統一的接口方式。應用程序對存儲設備的讀寫就對像對擁有DOS文件系統的磁碟設備的操作一樣。

如圖1所示,TrueFFS由1個核心層和3個功能層組成:編譯層、MTD層(MemoryTechnoilogy Driver)、Socket層。

翻譯層主要實現TrueFFS和DOS文件系統之間的高級交互功能,管理文件系統和Flash中各物理可擦塊的關系,以及TrueFFS中各種智能化處理功能,例如塊映射、損耗均衡(wear-leveling)等。目前有三種不同的翻譯層模塊可供選擇。選擇哪一種模塊要根據使用的Flash介質采用NOR技術、還是NAND技術,或者SSFDC技術而定。

MTD層實現對具體的Flash進行讀、寫、擦、ID識別、映射等驅動,并設置與Flash密碼相關的一些參數。VxWorks的TrueFFS已經包括了支持Intel、AMD、Toshiba等廠商的大多數Flash芯片的MTD層驅動。新的器件需要編寫新的MTD層驅動。

Socket層提供了TrueFFS和硬件之間的接口服務,負責電源管理、檢測設備插拔、硬件寫保護、窗口管理和向系統注冊Socket等。

核心層將其它三層有機結合起來,處理全局問題,例如信息量、計時器、碎片回收和其它系統資源等。

我們最關心的是MTD層和Socket層。VxWorks只提供了編譯后的二進制形式的核心層和翻譯層驅動。在實現TrueFFS應用之間,先介紹一下TrueFFS的原理。

2 TrueFFS原理

2.1 損耗均衡

閃速存儲器不能無限次重復使用。它的每個扇區的擦除次數雖然很大,但卻有限;因此,隨著使用次數的加長,它最終會變成只讀狀態,所以應該盡最大可能延長它的壽命。行之有效的方法就是平衡使用所有的存儲單元,而不讓某一單元過度使用。這種技術被稱之為損耗均衡。TrueFFS使用一種基于一張動態維護表的存儲器——塊映射的翻譯系統來實現損耗均衡技術。當塊數據被修改、移動或碎片回收后,這張維護表會自動調整。

然而,如果存儲在Flash上的一些數據本質上是靜態的,就會產生靜態文件鎖定問題。存儲這些靜態數據的區域根據不會被輪循使用,其它區域就會被更頻繁地使用,這將降低Flash期望的生命值。TrueFFS通過強制轉移靜態區域的方法成功克服了靜態文件鎖定問題。因為映射表是動態的,TrueFFS能夠以對文件系統不可見的方式轉移這些靜態數據區域。由于絕對強制損耗均衡方式會對性能產生一些負面影響,所以TrueFFS采取了一種非絕對損耗均衡算法。它保證了所有空間的使用近似平等而不影響性能。

2.2 碎片回收

塊數據的修改使得Flash的一些塊區域中的數據不再有效,并且這些區域在擦除之前變得不可寫。如果沒有機制來回收這些區域,Flash很快就會變成只讀的狀態了。不幸的是由于這些塊不可能單獨擦除,回收這些塊就有些復雜了。單次擦除被限制在一個叫作擦除單元的較大范圍內,如對于AMD的Am29LV065D芯片來說是64KB。

TrueFFS使用一種被稱為碎片回收的機制來回收那些不再包含有效數據的塊。該機制從一個預擦除單元內復制所有的有效數據塊到另一個新的被稱為轉移單元的擦除單元。然后,TrueFFS更新映射表,再擦除這個廢舊的預擦除單元。這樣,原來的塊出現在外界時仍然包含了原來的數據,雖然這些數據現在已經存放在Flash存儲器的其它空間。

碎片回收算法會找到并回收與下面標準最吻合的擦除單元:

①廢塊最多;

②擦除次數最少;

③最靜態的區域。

2.3 塊分配和關聯數據集結

為了提高數據的讀取效率,TrueFFS使用一種靈活的空間分配策略:將關聯的數據(如由同一個文件的內容組成的多個塊)集結到同一個單獨擦除單元內的一段連續的區域中。為此,TrueFFS盡量在同一個擦除單元內維持一個由多個物理上連續的自由塊組成的存儲池。如果這樣連續的存儲池無法實現,TrueFFS分盡量保證池中的所有塊是在同一個擦除單元內。如果連這樣的情況也不可能的話,TrueFFS會盡量把塊池分配到一個擁有最多可用空間的擦除單元內。

這種集結關聯數據的途徑有幾個好處。首先,如果TrueFFS必須從一個小的存儲窗口來訪問Flash,那么這樣集結了的關聯數據可以減少調用映射物理塊到該窗口的次數,加快了文件繼續訪問速度。其次,這種策略可以減少碎片的產生。這是因為刪除一個文件可以釋放掉更容易回收的完整塊,意味著碎片回收會變得更快。另外,它可以使屬于靜態文件的多個塊存放在同一地址,這樣當損耗均稀算法決定移動靜態區域時,轉移這些塊就變得更加容易了。

2.4 錯誤恢復

向Flash寫數據有時可能會出錯,比如在響應文件系統寫請求時、碎片回收期間甚至在TrueFFS格式化或擦除Flash時。在這些情況下,TrueFFS能夠從錯誤中恢復過來;但在新數據第一次寫入Flash時如果出錯就會丟失這些數據。然而,TrueFFS非常仔細地保證所有已經存放在Flash上的數據是可恢復的,甚至能夠避免用戶由于不耐煩或好奇而猛地拔出Flash卡而可能造成的災難性后果。

TrueFFS健壯的關鍵是它使用了一種“先寫后擦”的策略。當更新Flash一個扇區的數據時,只有在更新操作完成并且新存儲的數據校驗成功后,先前的數據才會被允許擦掉。這樣的結果是數據扇區不能處于部分寫狀態。操作成功的話新扇區的數據有效,否則老扇區的數據有效。很明顯,這樣有利于用戶已經寫到Flash上的數據的穩定性。

3 編程

TrueFFS的編程主要在MTD層和Socket層。首先必須在當前VxWorks生成目錄的配置文件(config.h)中定義:INCLUDE_TFFS(包含TrueFFS系統)、和INCLUDE_TFFS_SHOW(包含TrueFFS系統的顯示函數)。

3.1 翻譯層

翻譯層根據Flash的實現技術來選擇。設計中選用了SST公司的型號為SST49CF064的CF卡,64MB容量。它是基于NAND的Flash技術,所以在文件中定義INCLUDE_TL_NFTL;如果是NOR技術,則定義INCLUDE_TL_FTL。

3.2MTD層

文件cfCardMTD.c實現了MTD層的功能。在本設計中,MTD層主要實現4個函數:讀、寫、擦除和ID識別。

ID識別函數根據讀取設備的ID號來選擇與當前設備匹配的MTD驅動。識別函數中指定了針對當前設備的一些參數以及基本操作函數,并賦給一個叫FLFlash的數據結構。

FLStatus cfMTDIdentify(FLFlash*pVol);

數據結構中的主要參數賦值如下:

pVol->type=CF_ID; /*器件ID號*/

pVol->erasableBlockSize=512;/*可擦除的最小單元是512B*/

pVol->chipSize=0x4000000;/*器件容量為64MB*/

pVol-write=cfWriteRoutine;/*寫函數*

總結

以上是生活随笔為你收集整理的在CF卡上实现TrueFFS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av网站免费在线播放 | 嫩草天堂| 亚洲精品视频中文字幕 | 午夜丁香婷婷 | 亚洲一区二区免费在线观看 | 波多野结衣女同 | 福利资源在线观看 | 高清一区二区三区 | 菠萝菠萝蜜网站 | 国产成人免费视频 | 亚洲一二三四在线 | 久久久久成人精品免费播放动漫 | 成人公开视频 | 欧美成人片在线 | 欧美劲爆第一页 | 97超碰国产在线 | 色吊丝一区二区 | 免费黄色的网站 | 国产成人精品无码片区在线 | 成 人免费va视频 | 91成人免费在线 | 午夜黄色录像 | 久久77777 | 波多野结衣在线影院 | 午夜性色福利视频 | 黄色麻豆视频 | 欧美色涩在线第一页 | 亚洲性图av| 欧美黑吊大战白妞 | 黑人中文字幕一区二区三区 | 欧美精品一区二区不卡 | 精品一区二区三区免费观看 | 久久精品噜噜噜成人 | 蜜桃av中文字幕 | 国产免费一区二区三区最新不卡 | 免费在线精品视频 | 91五月天 | 国产涩涩 | av资源库| 亚洲喷水 | 日韩精品在线免费观看视频 | 久久精品亚洲 | 人人爱人人草 | 好色先生视频污 | 国产调教打屁股xxxx网站 | 久久婷婷视频 | 欧美久久久久久久久久久久久久 | 国产精品探花一区二区在线观看 | 亚洲理论在线观看 | 激情欧美在线 | 青青草55| 国产一区二区免费在线观看 | 欧洲成人免费视频 | 亚洲国产电影在线观看 | 四虎网站最新网址 | 开心六月婷婷 | 一个色的综合 | 亚洲欧美日韩在线看 | 免费午夜激情 | 欧美麻豆 | 国产精品一二三区视频 | 欧美性猛交xxxx乱大交hd | 精品综合久久久久 | 黄网站免费入口 | 欧美日韩精品一区 | 26uuu亚洲国产精品 | 痴女扩张宫交脱垂重口小说 | zjzjzjzjzj亚洲女人 | 久久泄欲网 | 狠狠干影院 | 美国一级片网站 | 久草视频在 | 国模吧一区二区三区 | 亚洲天堂手机在线 | 国产亚洲黄色片 | 久久精品国产99国产 | 裸体裸乳被免费看视频 | 亚洲精品高清视频 | 国产男女无套免费网站 | 亚洲乱妇老熟女爽到高潮的片 | 久久99精品久久久久久琪琪 | 欧美日本日韩 | 嫩草在线观看 | 美女天天干 | 伊人久久中文 | 日韩欧美www| 日本高清有码 | 免费观看国产精品 | 欧美图片一区二区三区 | 国产精品嫩草69影院 | 欧美日韩免费做爰视频 | 亚洲精品无码成人 | 蜜桃传媒一区二区亚洲 | 在线看片一区二区 | 好吊色青青草 | 91精品国产手机 | 久久久区| 二区三区在线视频 | 一区二区久久精品66国产精品 |