專利名稱:基于隨機游走的固態(tài)硬盤磨損均衡方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機存儲技術(shù)領(lǐng)域,特別涉及一種基于隨機游走的固態(tài)硬盤磨損均衡方法。
背景技術(shù):
由于磁盤的速度和內(nèi)存、CPU速度之間存在較大差異,磁盤的性能問題逐步成為阻礙計算機系統(tǒng)發(fā)展的主要瓶頸之一。閃存,又稱flash存儲器(flash memory),具有能耗低、非易失、抗震等物理穩(wěn)定性強和方便插拔移動等優(yōu)點。近年來,以閃存為介質(zhì)的固態(tài)硬盤容量逐步增大,價格逐步下降,已有取代磁盤,成為新的主流外存介質(zhì)的趨勢,并可能引起存儲系統(tǒng)的一次變革。由于閃存的存儲單元有寫限制,一般的優(yōu)質(zhì)閃存的最大擦寫次數(shù)為100000次,當(dāng)對存儲單元的擦寫次數(shù)超過最大擦寫次數(shù)后,存儲單元將會不穩(wěn)定或失效,造成物理上的數(shù)據(jù)丟失。磨損均衡技術(shù)(wear leveling)應(yīng)運而生,通過磨損均衡技術(shù)可以使對存儲單元的寫操作均勻分布,對存儲單元進行全局管理,從而使各個存儲單元的寫操作次數(shù)均勻增長。目前對于閃存的磨損均衡方法主要通過在固態(tài)硬盤的控制器中的建立表結(jié)構(gòu)來記錄各個存儲單元的擦寫次數(shù),通過擦寫次數(shù)的比較來定位寫操作的位置。當(dāng)固態(tài)硬盤的容量不斷增加時,維持擦除/寫次數(shù)的表結(jié)構(gòu)所需要的內(nèi)存容量也隨之增加,這會給固態(tài)硬盤帶來額外的消耗,同時也會延長控制器的查表時間,帶來性能損失。
發(fā)明內(nèi)容
(一 )要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何將大容量固態(tài)硬盤中的寫操作均勻分布到各個存儲單元,同時節(jié)約固態(tài)硬盤的內(nèi)存資源消耗,并提高性能。( 二 )技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提出了一種基于隨機游走的固態(tài)硬盤磨損均衡方法,包括以下步驟Sl 根據(jù)固態(tài)硬盤的物理塊中記錄的擦寫次數(shù)為每一物理塊組計算其擦寫次數(shù)的數(shù)學(xué)期望E和方差Var,并將所述數(shù)學(xué)期望E和方差Var存儲在固態(tài)硬盤的控制器內(nèi)存中的元數(shù)據(jù)表中,所述元數(shù)據(jù)表中還存儲每一物理塊組的塊內(nèi)指針;S2 按照所述數(shù)學(xué)期望E對物理塊組進行排序,并依賴所述方差Var來挑選目標(biāo)物理塊組;S3 利用隨機游走機制在所述目標(biāo)物理塊組中挑選目標(biāo)物理塊;S4:將待寫數(shù)據(jù)寫入目標(biāo)物理塊,并更新所述目標(biāo)物理塊的擦寫次數(shù),同時更新該目標(biāo)物理塊所在物理塊組的數(shù)學(xué)期望E和方差Var,跳轉(zhuǎn)到S2繼續(xù)執(zhí)行。其中,若固態(tài)硬盤未分組,所述步驟Sl之前還包括按照邏輯分組或固態(tài)硬盤的物理結(jié)構(gòu)對固態(tài)硬盤的物理塊進行分組。
其中,所述按固態(tài)硬盤的物理結(jié)構(gòu)對物理塊進行分組是按照一個閃存平面進行分組,一個閃存平面包括2048個物理塊。其中,所述步驟Sl具體包括若固態(tài)硬盤中不存在元數(shù)據(jù)表,分組后在所述固態(tài)硬盤的控制器的內(nèi)存中創(chuàng)建元數(shù)據(jù)表,讀取每個物理塊組內(nèi)的所有物理塊的元數(shù)據(jù)中的擦寫次數(shù),計算每個物理塊組的數(shù)學(xué)期望E和方差Var,塊內(nèi)指針初始化為0。其中,所述步驟S2具體包括根據(jù)所述數(shù)學(xué)期望E對物理塊組按從大到小或從小到大進行排序;利用所述方差Var在數(shù)學(xué)期望E最小的M個物理塊組中選擇方差最大的物理塊組為目標(biāo)物理塊組。其中,所述M取值為1-5。其中,所述步驟S3具體包括從所述目標(biāo)物理塊組中的塊內(nèi)指針?biāo)傅奈恢米鳛槠鹗嘉恢茫鶕?jù)預(yù)定的步長向左或向右移動所述塊內(nèi)指針利用當(dāng)前位置相鄰的物理塊的擦寫次數(shù)來影響左右移動的概率,計算向左移動的概率公式如公式(1)所示P⑷ 二 Ζ1( 1 )
ecL +ecRP(L)為向左移動的概率,ecL為左相鄰物理塊的擦寫次數(shù),ecE為右相鄰物理塊的擦寫次數(shù);每步的隨機游走均通過偽隨機函數(shù)生成一個0到1區(qū)間的小數(shù),若該小數(shù)若在0 到P(L)之間,則向左移動,否則向右移動;通過隨機游走,塊內(nèi)指針最后移動到的物理塊作為目標(biāo)物理塊。其中,所述預(yù)定步長為1-10個物理塊。其中,所述步驟S4具體包括若挑選的目標(biāo)物理塊中存在數(shù)據(jù),則將其移動到已擦除并準(zhǔn)備存放數(shù)據(jù)的物理塊上;擦除目標(biāo)物理塊,并更新所述目標(biāo)物理塊中的擦寫次數(shù),同時更新該目標(biāo)物理塊所在物理塊組的數(shù)學(xué)期望E和方差Var,讀取目標(biāo)物理塊的元數(shù)據(jù)中保存該物理塊的擦寫次數(shù),按照下述公式(2)直接計算并更新物理塊組的數(shù)學(xué)期望E,按公式(3)計算物理塊組的方差Var,不需要讀取所有物理塊中的擦寫次數(shù);E = E' +(ec-ec' )/N (2)=(3)
NN2其中,E'為原來的數(shù)學(xué)期望,Var'為原來的方差,ec為更新后的擦寫次數(shù),ec‘ 為原來的擦寫次數(shù),N為塊組中的塊的個數(shù);跳轉(zhuǎn)到S2繼續(xù)執(zhí)行。(三)有益效果本發(fā)明通過將固態(tài)硬盤分組,建立元數(shù)據(jù)表,并通過隨機游走的機制來確定最終的擦寫物理塊,從而將寫操作均勻分布到各個存儲單元,同時節(jié)約了固態(tài)硬盤的內(nèi)存資源
5消耗,且提高了性能。
圖1是本發(fā)明實施例的一種基于隨機游走的固態(tài)硬盤磨損均衡方法流程圖。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
為了達(dá)到以上發(fā)明目的,本發(fā)明提供了一種利用隨機游走機制及數(shù)據(jù)分組的思想來進行磨損均衡設(shè)計,流程圖如圖1所示,包括步驟S101,根據(jù)固態(tài)硬盤的物理塊中記錄的擦寫次數(shù)為每一物理塊組計算其擦寫次數(shù)的數(shù)學(xué)期望E和方差Var,并將每個物理塊的數(shù)學(xué)期望E和方差Var存儲在固態(tài)硬盤的控制器內(nèi)存中的元數(shù)據(jù)表中,元數(shù)據(jù)表中還存儲每一物理塊組的塊內(nèi)指針,其中,物理塊組的數(shù)學(xué)期望E、方差Var和塊內(nèi)指針分別占用4字節(jié),4字節(jié)和2字節(jié)。若在擦寫數(shù)據(jù)前,若固態(tài)硬盤未分組,則按照邏輯分組或固態(tài)硬盤的物理結(jié)構(gòu)對固態(tài)硬盤的物理塊進行分組。若按固態(tài)硬盤的物理結(jié)構(gòu)對物理塊進行分組,則按照一個閃存平面進行分組,一個閃存平面包括2048個物理塊。在計算每個物理塊組擦寫次數(shù)的數(shù)學(xué)期望E和方差Var時,具體步驟如下若固態(tài)硬盤中不存在元數(shù)據(jù)表(還未建立),分組后在固態(tài)硬盤的控制器的內(nèi)存中創(chuàng)建元數(shù)據(jù)表,讀取每個物理塊組內(nèi)的所有物理塊的元數(shù)據(jù)中的擦寫次數(shù),計算每個物理塊組的數(shù)學(xué)期望E和方差Var,塊內(nèi)指針初始化為0。若物理塊組的元數(shù)據(jù)表已建立,則執(zhí)行步驟S102。步驟S102,按照所述數(shù)學(xué)期望E對物理塊組進行排序,并依賴所述方差Var來挑選目標(biāo)物理塊組。排序時按數(shù)學(xué)期望E從大到小或從小到大對物理塊組進行排序,利用方差 Var在數(shù)學(xué)期望E最小的M個物理塊組中,優(yōu)選為1_5個(如3個)物理塊組,選擇方差最大的物理塊組為目標(biāo)物理塊組。步驟S103,利用隨機游走機制在步驟S102中選出的目標(biāo)物理塊組中挑選目標(biāo)物理塊。具體步驟如下根據(jù)預(yù)定的步長,優(yōu)選為1-10個物理塊(如5個),向左或向右移動所述塊內(nèi)指針利用當(dāng)前位置相鄰的物理塊的擦寫次數(shù)來影響左右移動的概率,計算移動的概率公式如公式⑴所示
權(quán)利要求
1.一種基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,包括以下步驟S1根據(jù)固態(tài)硬盤的物理塊中記錄的擦寫次數(shù)為每一物理塊組計算其擦寫次數(shù)的數(shù)學(xué)期望E和方差Var,并將所述數(shù)學(xué)期望E和方差Var存儲在固態(tài)硬盤的控制器內(nèi)存中的元數(shù)據(jù)表中,所述元數(shù)據(jù)表中還存儲每一物理塊組的塊內(nèi)指針;S2按照所述數(shù)學(xué)期望E對物理塊組進行排序,并依賴所述方差Var來挑選目標(biāo)物理塊組;S3利用隨機游走機制在所述目標(biāo)物理塊組中挑選目標(biāo)物理塊;S4將待寫數(shù)據(jù)寫入目標(biāo)物理塊,并更新所述目標(biāo)物理塊的擦寫次數(shù),同時更新該目標(biāo)物理塊所在物理塊組的數(shù)學(xué)期望E和方差Var,跳轉(zhuǎn)到S2繼續(xù)執(zhí)行。
2.如權(quán)利要求1所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,若固態(tài)硬盤未分組,所述步驟Sl之前還包括按照邏輯分組或固態(tài)硬盤的物理結(jié)構(gòu)對固態(tài)硬盤的物理塊進行分組。
3.如權(quán)利要求2所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述按固態(tài)硬盤的物理結(jié)構(gòu)對物理塊進行分組是按照一個閃存平面進行分組,一個閃存平面包括 2048個物理塊。
4.如權(quán)利要求1所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述步驟Sl具體包括若固態(tài)硬盤中不存在元數(shù)據(jù)表,分組后在所述固態(tài)硬盤的控制器的內(nèi)存中創(chuàng)建元數(shù)據(jù)表,讀取每個物理塊組內(nèi)的所有物理塊的元數(shù)據(jù)中的擦寫次數(shù),計算每個物理塊組的數(shù)學(xué)期望E和方差Var,塊內(nèi)指針初始化為0。
5.如權(quán)利要求1所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述步驟S2具體包括根據(jù)所述數(shù)學(xué)期望E對物理塊組按從大到小或從小到大進行排序;利用所述方差Var在數(shù)學(xué)期望E最小的M個物理塊組中選擇方差最大的物理塊組為目標(biāo)物理塊組。
6.如權(quán)利要求5所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述M取值為1-5。
7.如權(quán)利要求1所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述步驟S3具體包括從所述目標(biāo)物理塊組中的塊內(nèi)指針?biāo)傅奈恢米鳛槠鹗嘉恢?,根?jù)預(yù)定的步長向左或向右移動所述塊內(nèi)指針利用當(dāng)前位置相鄰的物理塊的擦寫次數(shù)來影響左右移動的概率,計算向左移動的概率公式如公式(1)所示
8.如權(quán)利要求7所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述預(yù)定步長為1-10個物理塊。
9.如權(quán)利要求1所述的基于隨機游走的固態(tài)硬盤磨損均衡方法,其特征在于,所述步驟S4具體包括若挑選的目標(biāo)物理塊中存在數(shù)據(jù),則將其移動到已擦除并準(zhǔn)備存放數(shù)據(jù)的物理塊上;擦除目標(biāo)物理塊,并更新所述目標(biāo)物理塊中的擦寫次數(shù),同時更新該目標(biāo)物理塊所在物理塊組的數(shù)學(xué)期望E和方差Var,讀取目標(biāo)物理塊的元數(shù)據(jù)中保存該物理塊的擦寫次數(shù), 按照下述公式(2)直接計算并更新物理塊組的數(shù)學(xué)期望E,按公式(3)計算物理塊組的方差 Var,不需要讀取所有物理塊中的擦寫次數(shù);
全文摘要
本發(fā)明公開了一種基于隨機游走的固態(tài)硬盤磨損均衡方法,包括S1根據(jù)固態(tài)硬盤的物理塊中記錄的擦寫次數(shù)為每一物理塊組計算其擦寫次數(shù)的數(shù)學(xué)期望E和方差Var,并將數(shù)學(xué)期望E和方差Var存儲在固態(tài)硬盤的控制器內(nèi)存中的元數(shù)據(jù)表中,元數(shù)據(jù)表中還存儲每一物理塊組的塊內(nèi)指針;S2按照數(shù)學(xué)期望E對物理塊組進行排序,并依賴方差Var來挑選目標(biāo)物理塊組;S3利用隨機游走機制在目標(biāo)物理塊組中挑選目標(biāo)物理塊;S4將待寫數(shù)據(jù)寫入目標(biāo)物理塊,并更新目標(biāo)物理塊的擦寫次數(shù),同時更新該目標(biāo)物理塊所在物理塊組的數(shù)學(xué)期望E和方差Var,跳轉(zhuǎn)到S2繼續(xù)執(zhí)行。本發(fā)明將寫操作均勻分布到各個存儲單元,同時節(jié)約了固態(tài)硬盤的內(nèi)存資源消耗,且提高了性能。
文檔編號G11C29/00GK102169727SQ20101058408
公開日2011年8月31日 申請日期2010年12月7日 優(yōu)先權(quán)日2010年12月7日
發(fā)明者胡事民, 趙鵬 申請人:清華大學(xué)