高可靠度和低成本效益快闪记忆体管理模式.docx
- 文档编号:20708439
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:21
- 大小:225.35KB
高可靠度和低成本效益快闪记忆体管理模式.docx
《高可靠度和低成本效益快闪记忆体管理模式.docx》由会员分享,可在线阅读,更多相关《高可靠度和低成本效益快闪记忆体管理模式.docx(21页珍藏版)》请在冰豆网上搜索。
高可靠度和低成本效益快闪记忆体管理模式
高可靠度和低成本效益快闪记忆体管理模式
FlashMemoryManagementModelwithHighReliabilityandLowCost-Benefit
黃文增*陳彥勝陳俊達鄭重志
W.T.Huang*, Y.S.Chen, C.T.Chen, C.C.Cheng
國立台北科技大學電子工程系
摘要
快閃記憶體可說是目前嵌入式系統記憶體的主流,而其有效的管理方式已被提出,其中以Kim和Lee所提出的管理方式最具代表性,我們簡稱為KimLee演算法[8]。
本論文主要是以KimLee演算法為基礎,提出一個改良式的有效管理方法。
我們的方法主要是針對快閃記憶體區塊作均勻抹除和減少抹除的動作;因此,快閃記憶體不但可以提升系統的效能降低肃清本钱而且能延長运用壽命。
但是,快閃記憶單元的降低肃清本钱與均勻抹除兩者是相互衝突的;如何兩全其美取得一平衡點,是本論文的重點。
首先,我們的方法是藉由動態的剖析資料屬性,分離成冷資料與熱資料,並將其重寫於不同區段屬性中,以達到降低無意義的搬移動作,更進一步,能降低本钱及提高系統壽命。
第二目標是採用一種動態的均勻抹除战略,來提昇牢靠度;而此方法最大效益是只需求犧牲大批的本钱,便可達到延長快閃記憶體的壽命與运用的高牢靠度。
關鍵詞:
嵌入式計算系統、快閃記憶體、儲存系統、檔案系統、肃清战略、動態均勻抹除。
投稿受理時間:
92年10月15日審查通過時間:
92年12月24日
ABSTRACT
2 臺北科技大學學報第三十七之一期
Amongthevariouslyeffectivemanagementsoftheflashmemory,themajorrepresentativemethodisproposedbyKimandLee[8],whosemethodisdenotedbyKimLeealgorithminthispaper.BasedontheKimLeealgorithm,weproposeamoreeffectivemanagementthanthatofKimLeealgorithm.Inourmethod,wedothecycle-levelingactioninabalancedmethodandreducethewritingactiontotheflashmemoryblock.Therefore,wenotonlycanpromotetheeffectofthesystembutalsocanprolongtheservicelifeinthisflashmemory.However,fortheflashmemorycell,itismutuallyconflictbetweentoreducethecostoftheclearanceandtodothecycle-levelingaction.First,wedynamicallyanalyzethestateofthedataattribution.Accordingtothedataattribution,wedividethisdataintocoldorhotdataandrewriteittothedifferentblockforreducingthenonsensicalactions.Further,wecanreducethecostandpromotetheperformanceofthesystem.Then,weadoptadynamiccycle-levelingstrategytoextendthelifeofflashmemory.Itonlyneedstosacrificeajotcostforextendingthelifeofflashmemoryandpromotingthehighusage.
Keywords:
Embeddedcomputingsystem,Flashmemory,Storagesystem,Filesystem,Cleaningstrategy,DynamicallyCycle-leveling.
壹、導論
隨者科技的進步,越來越多的電子產品都必須內建OS與記憶體。
例如,個人數位助理、手機、數位相機、MP3隨身聽、和錄音筆。
這些電子產品對於記憶體都有相反的需求,那就是必須體積小、容量大、省電、非揮發性和耐震等特性。
傳統式的硬碟與記憶體已不能適用於這些新系統,因為EEPROM速度不夠快及容量有限,而DRAM與SRAM必須靠電力來維持記憶,硬碟則體積大、耗電又怕震動。
因此,嵌入式系統的最正确解決方案直到快閃記憶體的問世,才解決這些問題。
快閃記憶體和普通DRAM或SRAM最大不同是不需電源還能將資料保管的非揮發性記憶體[4]。
它在體積方面,比一個容量相等的DRAM儲存格小,且隨者半導體製程的進步,其單位面積的儲存容量已經越來越大,存取速度也持續成長中,在用途上也漸漸取代移動式硬碟。
並且它還具備移動式裝置最重視的兩種功用,省電及耐震。
快閃記憶體將成為各種嵌入式計算系統的最正确記憶體解決方案。
雖然快閃記憶體擁有多項優點,但卻有兩個硬體電氣上的限制[5,6,15];那就是不能直接覆寫和抹除(Erase)次數的限制。
首先,不能直接覆寫,在新資料儲存之前,原位置的資料區段必須先被抹除後,才干讓新資料重新寫入。
而抹除運算重新設定一切記憶單元,所需求的時間比讀取或寫入運算的時間長。
舉例,ToshibaTH58NVG1S3AFT052Gbit其讀的速度為50ns、寫的速度為200us、和抹除時間為2ms[15]。
而新的可用自在空間(Availablefreespace,可立刻便用的空間)必須树立在已預先抹除後,因此快閃記憶體更新的速度比傳統硬碟記憶體慢。
第二個缺點,是覆寫次數的限制(普通在100,000~1,000,000次,依製造商而定)[5,6,14]。
此兩缺點導致傳統式硬碟記憶體管理战略不適用於快閃記憶體。
高牢靠度和低本钱效益快閃記憶體管理形式 3
因此必須針對快閃記憶體的缺點特性,重新設計快閃記憶體檔案系統。
因為當一個接近週期限制的快閃記憶體區塊(Block)將經歷時常的寫入失敗;使得存入資料的牢靠度降低。
並且因為不平均的抹除區塊,致使可用記憶體空間快速的減少。
如何讓記憶體區塊幾乎同時達到抹除次數界限,是我們演算法中研讨的另一個重點,稱之為均勻抹除(Cycle-leveling)。
為了解決不能直接覆寫缺點,我們必須考慮如何更新快閃記憶體區塊的資料和管理可用自在空間。
對於更新技術,為了增進寫入效率,必須分離寫入和抹除運算。
換句話說,更新時須將新資料寫入新自在空間中,並且將原區域空間上的舊版資料宣稱為無效。
而當可用的記憶體空間缺乏時,系統必須啟動肃清運算以回收舊資料空間和片段供未來运用。
而抹除次數的限制缺點,在快閃儲存系統達成一切的記憶體區塊均勻运用的能够性,此顺序被稱為均勻抹除。
均勻抹除的基本原理,是將常被更新的資料安排在那些較少抹除次數的記憶體區塊中,不常更新的冷資料則被安排於那些已抹除較屡次數的記憶體區塊中,藉此達到動態平衡。
因降低肃清花費與均勻抹除兩者是相互衝突。
假设快閃記憶體管理將重心集中在降低清潔花費,則會因為片段間的抹除次數太過倾斜,使系統的牢靠度戲劇性的遭到影響。
相反的,過度注重均勻抹除動作會添加額外的費用,而且降低了肃清功用。
本篇論文中,我們為快閃儲存系統中的兩個時常衝突的目標提出一個新的記憶體管理方法。
我們主要透過蒐集運算以分開冷熱資料,並將冷熱資料分別寄存於不同屬性的區段,以提高清潔效率。
當選擇肃清片段時,透過一肃清索引,它整合了動態的均勻抹除與片段应用率兩個要素。
因此,我們可解決清潔本钱與均勻抹除兩者間的衝突。
本篇論文的架構布置如下。
在第二部份中描画快閃記憶體的任务原理。
管理最正确化機制演算法的剖析和改良在第三部份中討論。
第四部份是結論。
貳、任务原理
為了提高寫入的速度,並且間接達到均勻抹除,我們採用日誌-結構化檔案系統(Log-StructureFileSystem,簡稱LFS,log即一切的更新動作實行在連續記憶體結構上稱
4 臺北科技大學學報第三十七之一期
為日誌)的架構[10]。
將一切新增或更新資料寫在日誌記錄的最後端,取代了直接更新檔案的方法;只須將舊資料標示為無效(Invalid),並在某一特定時間啟動肃清與抹除機制以回收記憶體區塊至可用的記憶體片段中;此非同步战略將有助於加快寫入效能。
快閃記憶體出廠時,已將記憶體联系為數個固定的區塊,每個區塊再切割成數個大小相反的頁(Page)。
此架構,正好契合LFS的需求。
其中區塊是肃清與抹除的單位,對應到LFS中的片段(Segment),頁則是I/O的操作單位,也是快閃記憶體與主記憶體間資料交換的單位,對應到LFS中的區塊(Block),以下我們將以片段和區塊來描画快閃記憶體。
一、快閃記憶體管理架構
本論文主要以KimLee演算法[8]為比較基礎。
因此,只探討快閃記憶體管理部份,架構圖如圖
(一)所示。
快閃記憶體管理者由三個主要元件組成:
分配者(Allocator)、清潔者(Cleaner)、和均勻抹除者(Cycle-Leveler)。
分配者負責保管可用自在空間的片段;它決定那個可用自在空間片段(Availablefreesegments)可在下一次分配給需求者(Requester)。
清潔者是回收無效(Invalid)的區塊片段和產生新的可用自在空間。
均勻抹除者負責維持快閃記憶體片段抹除週期的平均分配。
圖
(一) 快閃儲存系統結構
快閃記憶體管理任务如圖
(二)所示。
首先,在更新時,將目前片段中的舊資料區塊標記為‘死’(Dead),轉為陳舊資料區塊;並且將新的資料寫到一個新的可用自在區塊,標記活著(Live),使變成有效資料區塊。
當更新顺序繼續時,可用自在片段數目將減少。
當可用自在片段數目到達某一門檻以下的時候,清潔者被觸發。
在快閃記憶體日誌任务上的清潔運算分兩個階段,重寫入和抹除階段。
圖
(二) 快閃記憶體管理
在重寫入階段,清潔者首先在日誌中選擇一個片段;分配一個可用自在片段;搜集來自選擇片段中有效的資料,並且重寫到資料日誌檔中的結束部份;在抹除階段中,抹除運算的執行是對片段中,一切選擇抹除區塊平行處理。
被清算的片段被搜集進入可用自在空間的片段之內。
高牢靠度和低本钱效益快閃記憶體管理形式 5
二、問題定義
我們所定義肃清花費模型的基礎是根據eNVy快閃儲存系統的清潔花費公式[3]。
清潔花費在eNVy被定義為u/(1-u),u是片段的应用率〔代表有效資料所佔有的空間〕。
在快閃記憶體中,此花費形式所反映之事實為必須考慮重寫一個片段的有效區塊之費用。
而普通硬碟的磁軌蒐尋和迴轉延遲時間並不適用於快閃記憶體,並且其讀取速度比寫入速度更快[8]。
對於快閃記憶體,在一個固活期間經常性的清潔,將會導致較高的整體運算費用。
因此,清潔者應該將抹除〔清潔〕運算的數目減到最少。
特別地,當片段的儲存应用值達到較高的時候,減少片段的应用被清潔是十分重要的[8]。
而清潔頻率f在KimLee演算法中只是一個近似值如以下式子所示:
上式並非一個真實的清潔次數,尤其當片段应用率有明顯差異時,其誤差值將比較大。
因此,我們重新定義一個真實的清潔頻率,以表示真實的清潔次數。
其中W表示在清潔開始之後的寫入請求區塊數目、uc表示清潔的選擇片段应用率、和SegSize表示每片段區塊數。
然後,我們可以得知一個真實清潔頻率f值,如引理1所示。
引理1:
證明:
清潔是以段為單位。
從圖
(二)中得知,一個段的肃清可以產生(1-uc1)SegSize的可用自在空間。
假设,肃清兩個段,則將產生(1-uc1)SegSize+(1-uc2)SegSize的可再运用(新鮮)空間。
同理,清潔三個段,將產生
(1-uc1)SegSize+(1-uc2)SegSize+(1-uc3)SegSize=
。
假定要寫入資料為W區塊數目,至少必須肃清大於W區塊數目,以便產生足夠的可用自在區塊數目。
假設共肃清f段(次),則
計算清潔頻率f的虛擬碼如下所示:
CleaningFrequency()
{
f←0
Fori←0toSegNum
f=f+1;
If(1-Uci)SegSize>Wthen
Exit;
Else
W=W-(1-Uci)SegSize;
End;
Ifi≥SegNumthen
printf〝shortofspace〞;
Else
Returnf;
End;
}
6 臺北科技大學學報第三十七之一期
依據事實的須求,我們定義幾個參數。
首先,由清潔頻率f所累積清潔費用如定義1所示[8]。
定義1:
累積的清潔費用是
。
關於平均抹除一切片段上的測量,我們运用齊平水平(Levelingdegree)如定義2所示。
定義2:
齊平水平(∆∈)是最大的抹除計數值〔∈max〕和最小的抹除計數值〔∈min〕之間的差。
也就是∆∈=∈max-∈min。
再來,雖然运用蒐集家來分離冷熱資料有實質上的正面效果,但搜集動作自身是一個運算本钱。
假定太頻繁或太少量的搜集,便會降低此效益;甚至添加運算的本钱。
因此,我們必須定義搜集時期與搜集大小,用來找到一個恰當的蒐集點。
定義3:
搜集時期─假设搜集時期是n,則每n次清潔時間搜集運算被呼喚一次[8]。
定義4:
搜集大小─在每一次的搜集時間從日誌檔中搜集的冷資料區塊數目[8]。
參、管理的最正确化與演算法改良
首先,我們介紹一個基本的清潔方法[10-11];再介紹KimLee演算法。
並將其管理方法上冷資料(Colddata)與熱資料(Hotdata)的分離政策、清潔片段選擇、與抹除均勻战略上的缺點逐一提出改良,以失掉一個最正确化的管理效能。
一、貪婪演算法的缺點
對於快閃記憶體,肃清战略演算法的效率直接影響系統效能[3,10]。
此外,依照eNVy的清潔花費形式,由片段应用率決定片段的清潔費用[3]。
因此,如何挑選一個片段進行肃清,將是影響本钱的最重要要素。
直覺地,等候選擇那些最少有效資料區塊的片段是比較有利於節省清潔費用,此乃貪婪清潔法[9-10]。
貪婪清潔法選擇節段的方式是尋找節段內有最多數量的舊資料作回收,目的在花最少的本钱以等候獲得較大的回收空間。
在存取行為比較平均的情況下,貪婪清潔法與其他肃清战略並不會相差太多[1]。
當存取行為有高度集中的情況下(比較契合實作的系統,根據研讨在UNIX檔案系統中,有67~78%寫入行為集中在少數的檔案上[12-13]),貪婪清潔法的抹除與搬移次數會有急速添加趨勢[3,7,10]。
主要缘由為貪婪清潔法在挑選節段時,無法有效辨別資料冷熱狀態。
因此,會形成剛更新後的節段內迅速添加新的舊區塊,導致再次進入準備被抹除的狀態(疏忽了再添加陳舊資料的機會),而使得效率下降。
更進一步,因為貪婪法不能有效的分離冷熱資料,使得冷熱資料同時存在每一個片段裡,形成在每次的清潔時冷資料無益的到處搬移,再度形成降低系統效能。
高牢靠度和低本钱效益快閃記憶體管理形式 7
二、冷熱資料分離
為了解決貪婪清潔法的缺點,在KimLee中提出一‘搜集’運算,自熱的資料區段中隔離出冷資料。
實際上,這被實行於另一個形式,稱為快閃記憶體管理員的蒐集家。
清潔者活期啟動蒐集家,搜集日誌中的冷資料碎片。
KimLee演算法冷熱資料分離缺點
在KimLee演算法中,其冷熱資料分離是藉由蒐集家來完成。
其任务分兩個階段:
(1)搜尋並且搜集冷資料(檔案)區塊碎片;
(2)群集冷資料至日誌的尾端,搜集運算顺序,如圖(三)所示。
圖(三) 搜集顺序
在第一階段中的在每個搜集時間,蒐集家決定搜集大小並且在很多的碎片中搜尋冷資料。
令搜集大小單位為10,而且當很多碎片的冷資料在檔案a和b被搜集是能够的,如圖(三)所示。
在第二階段中,檔案的區塊被寫入至日誌的後面,直到達搜集大小的值為止。
假设搜集的顺序期間可用自在空間不是充足,清潔者可被喚醒,以產生新的可用空間[8]。
由以上的運算形式中,我們研讨結果,有以下結論。
在KimLee演算法的蒐集家運作中,雖然在第一階段中已將冷資料搜集出來,但在第二階段中,將冷資料寫入至日誌的後端,且能够未填滿整個區段。
使得後來檔案管理系統因為對某一檔案更新,將一個熱資料寫入日誌的尾端,形成冷熱資料再度的混合;因此,影響整體冷熱資料分離水平的效能。
針對此冷熱資料分離缺點我們提出改進方法。
冷熱資料分離缺點的改進方式
因為普通的LFS結構僅有一個运用中的資料區段LFS與可用自在空間的資料區段
8 臺北科技大學學報第三十七之一期
LFS,在KimLee分離演算法中採用檔案來區別冷熱資料,要搜集剛好一個片段大小的資料量是較困難的。
因此,無法有效的分離冷熱資料,進而影響整體效能。
我們的战略是將快閃記憶體运用中的資料區段分為兩類。
一類寄存常更新的檔案即熱資料;另一類寄存不常更動的資料檔或是唯讀檔即冷資料。
每一個節段在快閃記憶體剛起始或經回收至可用自在片段內後,都不具有任何屬性。
在存有資料區塊後,會視所寄存資料檔屬性,而成為「熱片段」或「冷片段」,即常更新或不常更新片段。
此後,當蒐集家搜集冷資料時,便將其重寫入冷資料片段LFS中的日誌尾端如圖(四)所示,更新或肃清資料時則將資料重寫入到熱資料LFS中的日誌尾端,如此可改善冷熱資料混合機率。
因此,我們有引理2改善散冷熱資料的混合機率。
圖(四) 冷資料搜集表示圖
引理2:
當搜集冷資料時,將其寫入到冷資料片段LFS中的日誌尾端和當更新或抹除片段時將片段中的有效資料重寫入到熱資料LFS中的日誌尾端,可以改善冷熱資料混合的機率。
高牢靠度和低本钱效益快閃記憶體管理形式 9
三、均勻抹除
快閃記憶體因為有抹除次數的限制,比如ToshibaTH58NVG1S3AFT052Gbit,其抹除次數為100,000次[15]。
假假定某個片段中存在永遠不被更新的唯讀檔,此時非均勻抹除將嚴重發生。
假定系統中存在多數的冷資料片段(不被抹除),則快閃記憶體將因為輪替抹除的區段變少,而添加抹除次數。
使得快閃記憶體容量因抹除次數極限值的到達,而降低可用的記憶體空間。
舉例,某一快閃記憶體有100個抹除片段,每一個片段的抹除次數為100,000次;假假定其儲存空間中永遠包括著30個片段的冷資料,其运用率永遠很高不會被系統回收抹除,故僅剩下70個片段來輪流运用抹除。
假設在一個高密度寫入的情況下,每天有5000個片段抹除回收需求(不考慮抹除不均勻),則其記憶體100%可用的运用壽命為:
100%生命週期=
。
換句話說,當經過3.836年後,其記憶體空間僅剩下30%。
那就是只剩存著冷資料的片段可再被运用。
而此30%也將會因為記憶體空間缺乏,而需更頻繁的抹除而快速達到極限值。
在上式中並未考慮因為抹除不均勻,使得可用空間急速減少,而需付出的額外抹除次數。
假定我們在系統中考慮均勻抹除,則此100個片段的抹除次數差異將會控制在某一範圍內,使其幾乎同時達到抹除界限值。
在記憶體运用上,也會有較大的空間與彈性,假設均勻抹除必須額外付出8%肃清費用[8],此時的运用壽命為:
100%生命週期=
由以上論述可知,雖然均勻抹除需付出額外的清潔費用,但在牢靠度與大記憶體空間及壽命延長是十分值得的。
KimLee演算法清潔索引战略的缺點
清潔索引(CleaningIndex)是選擇片段被清算的準則;最低的索引數值片段,將在清潔時被選擇[8]。
清潔索引定義了降低清潔花費及提高均勻抹除兩者如下:
上式中ui表示片段i的应用率、∈i表示抹除計數、和∈max是表示最大的抹除計數值。
清潔索引由二個要素組成:
每個片段的应用率和抹除計數。
正規化齊平度是此二個因數的加權,运用λ表示。
計算出的齊平度映射到0到1之間的數值。
λ=
假设抹除是均勻分配,則清潔索引是运用在降低清潔費用。
相反的,當發生不均勻(嚴重倾斜)抹除動作時,清潔索引的任务,是為了均勻抹除。
換句話說,在正常運作時,當此齊平度在可容忍的臨限之下〔λ的數值接近0〕時,ui应用率肯定是選擇一個片段的主要因數。
當此齊平度超過可容忍的界限〔λ的數值接近1〕時,則清潔索引應該被計算考慮此兩
10 臺北科技大學學報第三十七之一期
因數,或侧重均勻抹除。
此演算法的立意甚佳,當片段選擇時,須要同時考慮清潔本钱與均勻抹除。
但此公式卻有一個嚴重缺點,即當片段越接近抹除極限值時,卻疏失於均勻抹除參數,而侧重运用率的參數。
是因為(∈i/∈max+1)抹除權重因子所形成。
當快閃記憶體越接近抹除極限值時,(∈i/∈max+1)抹除權重因子會接近於1,不會有太大的差距,使的清潔索引值僅由应用率來判斷選擇,容易形成高抹除的片段因為能够有低的应用率,再度被清潔與抹除,使的系統壽命縮短。
此現象嚴重違反延長壽命的运用規則。
舉例,設k∈值=500,∆∈=400,則標準齊平度λ=0.62,我們考慮不同抹除次數下的片段選擇战略如下。
例1:
片段a:
ui=0.8,∈i=1000,∈max=1350,∈min=950
CleaningIndex=(1-0.62)×0.8+0.62×[1000/(1350+1)]=0.763
片段b:
ui=0.5,∈i=1330,∈max=1350,∈min=950
CleaningIndex=(1-0.62)×0.45+0.62×[1330/(1350+1)]=0.781
例2:
片段a:
ui=0.8,∈i=91000,∈max=91350,∈min=950
CleaningIndex=(1-0.62)×0.8+0.62×[91000/(91350+1)]=0.922
片段b:
ui=0.5,∈i=91330,∈max=91350,∈min=950
CleaningIndex=(1-0.62)×0.45+0.62×[91330/(91350+1)]=0.790
由下面例1中,可以很容易發現片段a與片段b抹除次數相差1330-1000=330次,與最大抹除次數則各相差350次及20次。
為達到均勻抹除,本公式選擇片段a,因為它有較小的清潔索引值;但是在例2中,被選擇片段抹除次數也是相差330次,與最大抹除次數同樣各相差350及20次,其餘條件也與例1相反,片段b卻有較小的清潔索引值,結果完全與例1相反。
在牢靠度及壽命而言,快閃記憶體當越接近抹除極限值時,必須越考慮均勻抹除,但本公式剛好適得其反,是一大缺點。
清潔索引战略缺點的改進
為了改善KimLee的清潔索引公式,我們修正其清潔索引公式如下:
為了方便說明,重新計算與运用節的範例。
例1:
片段a:
ui=0.8,∈i=1000,∈max=1350,∈min=950
CleaningIndex=
(1-0.62)×0.8+0.62×[(1000-950)/(1350-950+1)]=0.381
片段b:
ui=0.5,∈i=1330,∈max=1350,∈min=950
CleaningIndex=
(1-0.62)×0.45+0.62×[(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可靠 低成本 效益 记忆体 管理模式
![提示](https://static.bdocx.com/images/bang_tan.gif)