《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Yaffs2文件系統中對NAND Flash磨損均衡的改進
Yaffs2文件系統中對NAND Flash磨損均衡的改進
2015年電子技術應用第6期
溫朝建,嚴 華
四川大學 電子信息學院,四川 成都610065
摘要: 針對以NAND Flash為存儲介質時Yaffs2文件系統存在磨損均衡的缺陷,通過改進回收塊選擇機制,并在數據更新中引入冷熱數據分離策略,從而改善NAND Flash的磨損均衡性能。實驗借助Qemu軟件建立Linux嵌入式仿真平臺,從總擦除次數、最大最小擦除次數差值和塊擦除次數標準差等方面進行對比。實驗結果表明,在改進后的Yaffs2文件系統下NAND Flash的磨損均衡效果有明顯提升,這有益于延長NAND Flash的使用壽命。
中圖分類號: TP316
文獻標識碼: A
文章編號: 0258-7998(2015)06-0016-04
Improvements on wear leveling of NAND Flash in the Yaffs2 file system
Wen Chaojian,Yan Hua
College of Electronics and Information Engineering, Sichuan University,Chengdu 610065,China
Abstract: To solve the problem of Yaffs2 file system in wear leveling when NAND Flash is used as storage device,two key strategies are realized to implement the Yaffs2 file system. One is the use of block age parameter to improve the victim block selection mechanism,and the other is the valid data are divided into “hot” data and “cold” data,which are respectively written back to the block with minimum or maximum erase cycle. The Qemu software and embedded Linux are used as the simulation platform. The degree of wear leveling can be shown by three parameters,which are the total erase cycles of block,the maximum difference and the standard deviation of block erase cycles.The experiment results show that the degree of wear leveling in the new storage system is improved greatly.
Key words : Yaffs2 file system;NAND Flash;garbage collection;cold and hot data

     

0 引言

    NAND Flash存儲設備與傳統機械磁盤相比,具有體積小、存儲密度高、隨機存儲和讀寫能力強、抗震抗摔、功耗低等特點[1]。它被廣泛用于智能手機、車載智能中心、平板電腦等智能終端中。近年來,以NAND Flash為存儲介質的固態硬盤也得到越來越多的應用。目前Yaffs2文件系統(Yet Another Flash File System Two,Yaffs2)[1]是使用最多、可移植性最好的專用文件系統,在安卓、阿里云OS、Linux等嵌入式系統中都有使用。在Yaffs2文件系統下以NAND Flash為存儲介質時存在磨損均衡的缺陷,可通過對回收塊選擇機制作改進和引入冷熱數據分離策略來提高磨損均衡的效果。

1 Yaffs2和Nand Flash關系

    這里以使用最多的Linux操作系統為實踐,將Yaffs2文件系統移植到Linux操作系統中。Linux系統通??梢苑譃?層:應用層、內核層和設備層,其中支持NAND Flash設備的Yaffs2文件系統屬于內核層,如圖1所示。

qrs2-t1.gif

    最上層用戶應用程序通過VFS(Virtual File System)提供的統一接口,將數據更新等文件操作傳遞給Yaffs2。VFS代表虛擬文件系統,它為上層應用提供統一的接口。有了這些接口,應用程序只用遵循抽象后的訪問規則,而不必理會底層文件系統和物理構成上的差異。然后Yaffs2通過MTD(Memory Technology Device)提供的統一訪問接口對NAND Flash進行讀、寫和擦除操作,從而完成數據的更新或者存儲操作。MTD代表內存技術設備,它為存儲設備提供統一訪問的接口。最終,在NAND Flash上以怎樣的格式組織和存儲數據由Yaffs2文件系統決定。

    NAND Flash由若干塊(block)組成,每個塊又是由若干頁(page)組成,頁中含有數據區和附加區。NAND Flash的頁根據狀態不同,可以分為有效頁、臟頁、空閑頁。有效頁中存放有效數據,臟頁中存放無效數據,空閑頁是經過擦除后可以直接用于寫入數據的頁。NAND Flash在寫入數據前需要執行擦除操作,因此數據不能直接在相同的位置更新。當一個頁中數據需要更新時,必須將該頁中有效數據拷貝到其他空閑頁上再更新,并將原來頁上的數據置為無效。隨著時間的推移,許多無效頁累積在存儲器中使得空閑頁逐漸減少。當存儲器中的空閑空間不足時,啟動垃圾回收操作,利用回收塊選擇機制從待回收塊中選取滿足要求的塊來擦除,從而得到足夠的空閑空間。NAND Flash中塊的擦除次數有限,通常為10 000次~100 000次[2]。當某個塊的擦除次數超過使用壽命時,該塊將無法正常用于數據存儲。因此,垃圾回收應利用合理的回收塊選擇機制,從待回收塊中找到回收后能產生良好磨損均衡效果且付出較少額外代價的塊來回收,從而獲得足夠的空閑空間用于數據更新操作。

2 Yaffs2在磨損均衡方面的缺陷

    Yaffs2中回收塊的選擇機制[3]是從待回收塊中找到有效數據最少的塊來回收?;厥者^程中,Yaffs2能夠減少有效數據的額外讀和寫操作。當數據更新處于均勻分布的情況下,Yaffs2表現出較好的磨損均衡效果。

    但是,通常情況下數據的更新頻率不同,有些數據經常更新,而有些數據很少更新。經常更新的數據稱為熱數據,很少更新的數據稱為冷數據[1]。如果某個塊上總有熱數據不斷更新,那么該塊上有效數據會變少,Yaffs2容易選中這樣的塊來更新。而當某個塊中含大量有效冷數據時,冷數據少更新的特點使得Yaffs2難以選中這類塊來更新。更新后的塊會用于存放新寫入的數據,而新寫入的數據通常是熱數據,由此可知熱數所在塊會經常被更新。最終熱數據所在的塊成為擦除次數多的塊,冷數據所在的塊成為擦除次數少的塊。因此Yaffs2的回收塊選擇機制會造成NAND Flash設備中塊的擦除次數呈兩級分化,即塊的最大、最小擦除次數差值不斷變大。所以Yaffs2中不應只考慮數據更新所產生的額外讀寫代價,還應考慮塊的存在年齡對磨損均衡效果的影響,這才能解決磨損均衡中兩級分化的問題。

    Yaffs2文件系統中更新某個塊時,需將該塊上的剩余有效數據拷貝到其他空閑塊上。而剩余有效數據不能占滿整個塊,系統會將新寫入的數據繼續存放到該塊上,直到它的存儲空間用完為止。更新過程中保留下來的數據通常是冷數據,而新寫入的數據通常是熱數據,因此Yaffs2的更新策略會造成冷數據和熱數據同時存儲在一個塊中。由于熱數據的更新速度快,當熱數據更新時會導致冷數據被迫更新。但更新后剩下的數據同樣不能占滿一個整塊,系統會再次將冷數據和熱數據存放到同一個塊中。隨著以上的更新方式不斷進行,將導致一系列不必要的數據讀、寫以及塊的擦除操作。因此Yaffs2的更新策略會使冷熱數據共存的塊易被多次更新,而冷數據占據的塊很少更新,最終使得塊擦除次數標準差過大,導致磨損不均衡。由于Yaffs2的更新策略中沒有做冷熱數分離,這使得磨損不均衡問題難以解決。

3 Yaffs2的改進方法

3.1 回收塊選擇機制的改進

    對于Yaffs2回收塊選擇機制的缺陷,可以通過加入塊的年齡(age)參數[4]解決。增加age參數后的回收塊選擇機制遵循式(1),這可以將一些長期不更新的塊選中更新。

    qrs2-gs1.gif

其中,age指塊從分配開始到當前垃圾回收時刻為止的年齡,u表示單個塊中有效數據的占有比率。新的回收塊選擇機制選取當前時刻年齡最大且有效數據占有最少(即benefit/cost比值最大)的塊作為回收對象。當一個塊上存儲的是冷數據時,一定時間后該塊沒有被更新,那么它的age參數會變得很大。盡管該塊上有效數據很多(即(1-u)/2u的比值較小),但age參數很大使得benefit/cost的比值足夠大,最終會選中被冷數據占據的塊來更新。由此可知引入age參數后,能解決Yaffs2文件系統下NAND Flash中最大、最小擦除次數差值過大的磨損均衡問題。

3.2 增加冷熱數據分離策略

    對于Yaffs2中數據更新的缺陷,可以引入冷熱數據分離策略[5]來解決。冷熱數據分離策略能夠收集冷數據,解決同一個塊中存放不同溫度數據時,由于熱數據更新而強制更新冷數據的問題。在系統運行過程中檢測到塊的最大、最小擦除次數差值過大時,將收集到的冷數據用數據交換操作放置到擦除次數多的塊上。當冷池中塊被熱數據占據或者熱池中塊被冷數據占據時,冷熱數據分離策略也能處理這類塊反轉問題。數據的冷熱程度對塊的擦除次數會產生直接影響,因此冷熱數據分離策略通過塊擦除次數來判斷數據溫度。改進步驟如下:

    (1)初始化:將NAND Flash中的所有塊平均分為兩個部分,一部分塊放到熱池中,另一部分塊放到冷池中。

    (2)數據交換:找出熱池中擦除次數最多(Hottesthp)的塊,冷池中擦除次數最少(Coldestcp)的塊。當Hottesthp減去Coldestcp之差大于一個閾值時(如式(2)),則需要做數據交換操作。數據交換操作是將擦除次數為Coldestcp的塊中收集的冷數據拷貝到擦除次數為Hottesthp的塊中,將擦除次數為Hottesthp的塊上原來的熱數據存放到任意其他空閑塊上。數據交換操作的目的是將冷數據放到擦除次數最多的塊上,利用冷數據不易更新的特點來減少塊的繼續擦除;而將新寫入的數據存放到擦除次數少的塊上,最終達到磨損均衡的目的。

    qrs2-gs2.gif

    (3)塊反轉:當熱池中某個塊被冷數據突然占據時,導致該塊中的冷數據無法用于數據交換操作。這需要找到熱池中擦除次數最多(Hottesthp)的塊和熱池中擦除最少(Coldesthp)的塊,二者擦除次數之差小于一個閾值時(如式(3))則進行熱塊反轉操作。熱塊反轉操作,將熱池中擦除次數最少的塊放到冷池中去。另外當冷池中的某個塊數據突然變熱時,導致該塊不能被數據交換操作降溫。這需要用該塊的eec參數來判別,eec表示有效擦除周期(塊改變所屬池后的擦除次數)。因此滿足式(4)時,進行冷塊反轉操作。冷塊反轉操作是將冷池中擦除次數為Hottesteec的塊放到熱池中,并把該塊的eec參數清零。

    qrs2-gs3-4.gif

4 仿真實驗

4.1 實驗環境

    實驗環境是通過Vmware工具安裝Linux虛擬機,然后在Linux下安裝Qemu工具來搭建仿真實驗開發板,并移植Yaffs2文件系統。為了公平測試,關閉Yaffs2自帶的緩存功能。用于測試的文件大小是從16 KB~1 024 KB隨機生成,測試數據占據整個Flash設備容量的90%,其中僅有15%的數據更新,這樣的更新操作滿足齊夫分布(Zif)[6]。

    實驗中NAND Flash總容量是64 MB,共有512個塊,每個塊含64個頁,每個頁大小是2 048 B。試驗中Th閾值選定為8。

4.2 實驗結果

    實驗對比數據包含:總擦除次數、最大與最小擦除次數差值和塊擦除次數標準差。總擦除次數的差異表示額外付出的擦除代價,最大與最小擦除次數差值的差異表示磨損均衡中兩級分化情況。塊擦除次數標準差隨擦除次數增長越快,則表示閃存設備中的數據更新是在少部分塊中完成(表示磨損均衡效果差);塊擦除次數標準差隨擦除次數增長緩慢,則表示數據更新是在大部分塊間交替完成(表示磨損均衡效果好)。因此,塊擦除次數標準差隨擦除次數的變化情況能直接反應磨損均衡的效果。

    改進前后總的擦除次數對比圖如圖2所示,可以看到改進后相較于改進前額外付出了4.05%的擦除代價。額外增加擦除代價足夠小,這樣的開銷可以接受。

qrs2-t2.gif

    改進前后最大、最小擦除次數差值對比圖如圖3所示,可以看到改進后的磨損均衡情況更好。

qrs2-t3.gif

    改進前后塊擦除次數標準差對比圖如圖4所示,可以看到隨著擦除次數的增加,改進后塊擦除次數標準差增長的速度遠小于改進前。

qrs2-t4.gif

    在改進后的Yaffs2文件系統下,塊的最大、最小擦除次數差值減少為改進前的1/4,如圖3所示。這表明在回收塊選擇機制中加入塊的年齡參數后,被冷數據占據的塊能夠及時得到更新,使得NAND Flash設備中的塊可以更加均勻地參與擦除操作。另外引入冷熱數據分離策略后,隨著擦除次數增加,塊擦除次數標準差增加得更緩慢,如圖4所示。這說明將冷數據拷貝到擦除次數多的塊上,這樣的數據交換方法能有效阻止塊繼續擦除。并且冷熱數據分離策略中冷數據的收集方式有效解決了冷熱數據共存時的更新問題。

    當NAND Flash設備中出現一個壞塊后,該壞塊不僅不能繼續用于存儲數據,而且會引起別的塊迅速壞掉。為了保障數據的穩定,通常情況下NAND Flash設備中出現一個壞塊后不會繼續使用[7]。試驗中塊的擦除壽命是100 000次,若每天需要做400次擦除操作,在未做改進的Yaffs2文件系統下,NAND Flash僅有5%的塊輪流更新,那么可以得到閃存設備的使用壽命:

    qrs2-gs5.gif

    在改進后的Yaffs2文件系統下,NAND Flash有20%的塊輪流更新,而磨損均衡需要付出額外4.05%的擦除代價,那么可以得到閃存設備的使用壽命:

    qrs2-gs6.gif

    由式(5)和式(6)可知,改進后的Yaffs2文件系統可以延長NAND Flash設備的使用壽命。

5 結論

    本文從兩方面對Yaffs2文件系統作改進:一方面對回收塊選擇機制作改進,另一方面引入冷熱數據分離策略。NAND Flash設備在改進后的文件系統中,磨損均衡效果得到明顯提升。良好的磨損均衡表現可以增加NAND Flash的使用壽命,仿真實驗模擬了真實的設備運行情況,實驗成果適用于以NAND Flash為存儲介質的智能消費電子產品或者計算機領域中。

參考文獻

[1] Yan Hua,Yao Qian.An efficient file-aware garbage collection algorithm for NAND Flash-based consumer[J].IEEE Transactions on Consumer Electronics,November 2014,60(4):623-627.

[2] 姚乾,嚴華.基于冷熱數據識別的NAND Flash數據存儲管理研究[D].成都:四川大學,2013.

[3] WU M,ZWAENEPOE W.eNvy:A non-volatile main memory storage system[C].CA,USA:AMC,In Proceedings of 6th International Conference on Architecture Support for Programming Language and Operating Systems,1994:86-97.

[4] KAWAGUCHI A,NISHIOKA S,MOTODA H.A flash memory based file system[C].LA,USA:In Proceedings of 1995 USENIX Technical Conference,1995:155-164.

[5] Chang Lipin.On efficient wear leveling for large-scale flash memory storage systems[C].Proceedings of the 2007 ACM Symposium on Applied Computing,SAC′07,2007:1126-1130.

[6] Lin Mingwei,Chen Shuyu.Efficient and intelligent garbage collection policy for NAND Flash-based consumer electronics[J].IEEE Transactions on Consumer Electronics,2013,59(3):538-543.

[7] 楊習偉,賀云健.車載娛樂系統的Nand Flash管理模式研究[J].Microcontrollers & Embedded Systems,2008(3):19-22.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧洲在线观看| 久久国产精品一区二区三区四区| 亚洲影视在线播放| 一本久道久久综合狠狠爱| 亚洲电影免费观看高清完整版在线观看 | 国产精品视频导航| 国产精品你懂的在线欣赏| 国产精品扒开腿做爽爽爽软件| 欧美日韩国产大片| 欧美精品一区二区三区蜜桃 | 韩日午夜在线资源一区二区| 国产视频一区二区在线观看| 国产人久久人人人人爽| 国产精品一二一区| 国产视频在线观看一区| 国产视频在线一区二区| 国产在线精品成人一区二区三区| 国产一区二区福利| 在线观看欧美日韩国产| 亚洲福利在线看| 亚洲区在线播放| 一道本一区二区| 亚洲综合99| 久久精品30| 91久久精品美女| 一本色道久久综合亚洲91| 亚洲影院色无极综合| 小黄鸭视频精品导航| 久久久噜噜噜久噜久久| 免费毛片一区二区三区久久久| 欧美激情国产高清| 国产精品jvid在线观看蜜臀| 国产农村妇女精品一二区| 激情久久婷婷| 亚洲精品国久久99热| 亚洲神马久久| 欧美在线免费观看亚洲| 最新高清无码专区| 亚洲一级特黄| 久久精品理论片| 欧美成人亚洲成人| 国产精品卡一卡二卡三| 国产有码在线一区二区视频| 亚洲国产精品尤物yw在线观看| 99精品福利视频| 亚洲欧美日韩一区二区| 亚洲国产专区校园欧美| 亚洲天堂视频在线观看| 久久久久国产一区二区三区四区 | 久久大逼视频| 欧美激情精品久久久久久黑人| 欧美午夜激情在线| 国产欧美日韩一区二区三区在线 | 欧美日韩天天操| 国产精品免费观看在线| 狠狠色丁香久久婷婷综合丁香| 亚洲人成亚洲人成在线观看| 亚洲综合色网站| 亚洲欧洲在线视频| 亚洲欧美中文另类| 女同性一区二区三区人了人一| 欧美日韩一区三区四区| 国产在线一区二区三区四区 | 久久精品盗摄| 夜夜夜久久久| 久久久蜜桃一区二区人| 欧美视频观看一区| 韩国免费一区| 夜夜精品视频一区二区| 久久av红桃一区二区小说| 中文精品一区二区三区| 久久这里有精品视频| 欧美婷婷六月丁香综合色| 影音先锋久久久| 亚洲欧美日本伦理| 99re亚洲国产精品| 久久精品一区四区| 国产精品va在线播放| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧美日韩视频二区| 日韩午夜在线视频| 久久在线免费观看视频| 国产欧美一区视频| 一区二区三区精品视频在线观看| 91久久夜色精品国产九色| 久久国产精品黑丝| 国产精品国产三级欧美二区| 亚洲三级观看| 亚洲第一在线综合网站| 欧美伊人久久| 国产精品乱码人人做人人爱| 亚洲激情影视| 亚洲国产视频一区| 久久免费视频一区| 国产精品视频自拍| 中文亚洲视频在线| 99re66热这里只有精品4| 美国十次成人| 韩国亚洲精品| 性感少妇一区| 性一交一乱一区二区洋洋av| 国产精品国产自产拍高清av王其| 亚洲日本欧美天堂| 91久久久久久久久| 麻豆国产精品777777在线| 国产亚洲成人一区| 午夜精品久久99蜜桃的功能介绍| 亚洲中无吗在线| 国产精品igao视频网网址不卡日韩| 亚洲免费大片| 一本大道av伊人久久综合| 欧美国产一区二区| 亚洲欧洲一区二区天堂久久| 亚洲精品一区中文| 欧美劲爆第一页| 亚洲人成精品久久久久| 日韩小视频在线观看专区| 欧美国产精品一区| 亚洲国产精品va在看黑人| 亚洲精品在线免费| 欧美精品一区二区在线观看| 亚洲精品久久7777| 99国产精品| 欧美三级午夜理伦三级中视频| 亚洲作爱视频| 亚洲欧美日韩中文在线制服| 国产精品视频xxx| 先锋亚洲精品| 久久精品国产亚洲精品| 激情亚洲网站| 亚洲精品一区在线观看香蕉| 欧美精品一区二区三区很污很色的| 最新69国产成人精品视频免费| 99在线视频精品| 欧美日韩亚洲天堂| 亚洲视频二区| 午夜日韩视频| 国产一区二区三区无遮挡| 久久国产精品亚洲va麻豆| 美女黄网久久| 亚洲人成高清| 亚洲欧美国产日韩天堂区| 国产精品永久免费在线| 欧美专区福利在线| 免费观看成人| 亚洲免费观看在线观看| 亚洲欧美激情在线视频| 国产手机视频一区二区| 亚洲电影免费在线| 欧美日本亚洲韩国国产| 亚洲一二三四区| 久久久一二三| 亚洲韩国一区二区三区| 亚洲综合视频在线| 国产一区二区三区成人欧美日韩在线观看 | 在线精品国产成人综合| 一区二区国产精品| 国产精品一二三四区| 亚洲电影网站| 欧美午夜剧场| 欧美综合二区| 欧美日韩大片一区二区三区| 亚洲欧美日韩天堂| 欧美国产精品人人做人人爱| 亚洲视频网站在线观看| 久久久久国色av免费看影院| 亚洲国产女人aaa毛片在线| 亚洲与欧洲av电影| 一区二区亚洲| 亚洲影音一区| 永久免费精品影视网站| 亚洲一区999| 韩国亚洲精品| 亚洲综合色丁香婷婷六月图片| 激情成人在线视频| 亚洲一区二区三区中文字幕| 一区二区三区亚洲| 午夜国产欧美理论在线播放| 亚洲第一免费播放区| 先锋影音网一区二区| 亚洲国产一区二区三区在线播| 欧美伊人久久久久久午夜久久久久 | 欧美久久久久| 久久av一区二区三区漫画| 欧美日韩亚洲一区三区 | 香蕉成人伊视频在线观看| 一区二区视频在线观看| 亚洲欧美www| 91久久线看在观草草青青| 久久精品123| 一区二区免费看| 欧美成年人视频| 先锋影院在线亚洲| 欧美日韩在线直播| 亚洲激情av| 国产美女搞久久| 亚洲尤物在线视频观看| 亚洲精品国产拍免费91在线| 另类天堂av| 久久精品国产精品 |