本申請涉及固態(tài)硬盤技術(shù)領(lǐng)域,尤其涉及一種固態(tài)硬盤磨損均衡的處理方法。
背景技術(shù):
固態(tài)硬盤由主控單元和固態(tài)存儲單元組成,在固態(tài)存儲單元中包括多個block,也即數(shù)據(jù)塊。由于固態(tài)硬盤沒有重寫機(jī)制,所以在一個block寫滿數(shù)據(jù)后,需要擦除block中的數(shù)據(jù),才可以寫入新數(shù)據(jù)。
由于各個block塊的擦除次數(shù)是有限的,為了延長固態(tài)硬盤的壽命,需要對各個block的擦除操作進(jìn)行均衡。這種對各個block擦除操作的次數(shù)進(jìn)行均衡的做法稱為磨損均衡。
目前,磨損均衡方式主要為:在非空白block中挑出擦除次數(shù)較少的包含冷數(shù)據(jù)的block,以及,擦除次數(shù)較多的包含熱數(shù)據(jù)的block,然后交換兩個block中數(shù)據(jù)。
目前,固態(tài)硬盤的控制單元會單獨(dú)為磨損均衡設(shè)置一個處理流程,這會加重控制單元的負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
本申請?zhí)峁┝艘环N固態(tài)硬盤磨損均衡的處理方法,可以在垃圾回收寫時(shí),將擦除次數(shù)最多的空白block作為目的block,從而在垃圾回收時(shí)實(shí)現(xiàn)一定程度的磨損均衡。
為了實(shí)現(xiàn)上述目的本申請?zhí)峁┝艘韵录夹g(shù)特征:
一種固態(tài)硬盤磨損均衡的處理方法,包括:
在固態(tài)硬盤中的空白block的數(shù)量小于預(yù)設(shè)閾值的情況下,在非空白block中確定垃圾回收寫的源block;
將空白block中擦除次數(shù)最多的block確定為垃圾回收寫的目的block;
將所述源block中的有效數(shù)據(jù)寫入所述目的block中;
對所述源block執(zhí)行擦除操作。
可選的,所述在非空白block中確定垃圾回收寫的源block,包括:
將非空白block中有效數(shù)據(jù)數(shù)量最小的block,確定為源block。
可選的,所述在非空白block中確定垃圾回收寫的源block,包括:
將非空白block中有效數(shù)據(jù)數(shù)量小于預(yù)設(shè)數(shù)量的block,確定為源block。
可選的,所述在非空白block中確定垃圾回收寫的源block,包括:
對非空白block中的有效數(shù)據(jù)量進(jìn)行排序,按有效數(shù)據(jù)量進(jìn)行排序;
按有效數(shù)據(jù)量由小至大順序獲取多個block,將多個block確定為源block。
可選的,還包括:
在接收用戶寫請求后,在空白block中確定擦除次數(shù)最少的空白block;
將所述用戶寫請求中的數(shù)據(jù)寫入該空白block中。
可選的,在擦除所述源block中的所有數(shù)據(jù)后,還包括:
將所述源block的擦除次數(shù)加1。
通過以上技術(shù)手段,可以實(shí)現(xiàn)以下有益效果:
本申請?zhí)峁┝艘环N磨損均衡的處理方法,其中在垃圾回收寫時(shí)將擦除次數(shù)最多的空白block作為目的block,在一定程度上實(shí)現(xiàn)磨損均衡。本申請沒有單獨(dú)為磨損均衡開辟一個處理流程,所以可以在一定程度上減輕控制單元的負(fù)擔(dān)。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實(shí)施例公開的一種磨損均衡的處理方法的流程圖;
圖2為本申請實(shí)施例公開的又一種磨損均衡的處理方法的流程圖。
具體實(shí)施方式
下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
在固態(tài)硬盤中包含兩種寫操作:第一種寫操作,垃圾回收寫操作,第二種用戶寫操作。
根據(jù)本申請?zhí)峁┑囊粋€實(shí)施,在垃圾回收寫操作時(shí)供的一種磨損均衡的處理方法。參加圖1,具體包括以下步驟:
步驟s101:在固態(tài)硬盤中的空白block的數(shù)量小于預(yù)設(shè)閾值的情況下,在非空白block中確定垃圾回收寫的源block。
在固態(tài)硬盤中有兩類block,一類block為非空白block,該類block中已寫入數(shù)據(jù),另一類block為空白block,該類block中未寫入數(shù)據(jù)。
本實(shí)施例提供了本步驟的兩種實(shí)現(xiàn)方式:
第一種實(shí)現(xiàn)方式:將非空白block中有效數(shù)據(jù)數(shù)量最小的block,確定為源block。
可以理解的是,非空白block中有效數(shù)據(jù)越少,則表示該block越趨近于無效block。
因此,在非空白block中確定各個block中的有效數(shù)據(jù)量,將有效數(shù)據(jù)量最小的block確定為源block。由于源block中的有效數(shù)據(jù)量需要搬移至目的block中,因此在有效數(shù)據(jù)量較少時(shí),控制單元的執(zhí)行數(shù)據(jù)遷移操作的時(shí)間也最短,可以大大提高磨損均衡效率。
第二種實(shí)現(xiàn)方式,對非空白block中的有效數(shù)據(jù)量進(jìn)行排序,按有效數(shù)據(jù)量進(jìn)行排序,按有效數(shù)據(jù)量由小至大順序獲取多個block,將多個block確定為源block。
可以理解的是,在垃圾回收寫時(shí)可以對多個非空白block進(jìn)行垃圾回收寫。此情況下,可以選擇多個有效數(shù)據(jù)量均較小的多個block,將多個block均作為源block。
第三種實(shí)現(xiàn)方式:將非空白block中有效數(shù)據(jù)數(shù)量小于預(yù)設(shè)數(shù)量的block,確定為源block。
可以預(yù)先設(shè)定一個預(yù)設(shè)數(shù)量,用于表示有效數(shù)據(jù)量較小的界限值。當(dāng)非空白block中的有效數(shù)據(jù)量小于預(yù)設(shè)數(shù)據(jù)量時(shí),則確定block為源block。
步驟s102:將空白block中擦除次數(shù)最多的block確定為垃圾回收寫的目的block。
由于垃圾回收寫時(shí),源block中大部分?jǐn)?shù)據(jù)均為無效數(shù)據(jù),源block中的有效數(shù)據(jù)通常也為冷數(shù)據(jù)(即用戶較長時(shí)期不更新的數(shù)據(jù)),因此,在空白block中選擇擦除最多的block,將其作為垃圾回收寫時(shí)的目的block。
目的block后續(xù)將用于存儲源block中的有效數(shù)據(jù),由于源block中的有效數(shù)據(jù)通常為冷數(shù)據(jù),所以目的block在存儲源block的有效數(shù)據(jù)后,其擦寫次數(shù)通常會穩(wěn)定下來不會再增加。
步驟s103:將所述源block中的有效數(shù)據(jù)寫入所述目的block中。
將源block中的有效數(shù)據(jù)寫入目的block中,當(dāng)有多個源block時(shí),逐個將各個源block中的有效數(shù)據(jù)寫入目的block中。
步驟s104:對所述源block執(zhí)行擦除操作
在源block中的有效數(shù)據(jù)均寫入目的block后,源block中的數(shù)據(jù)均為無效數(shù)據(jù),此時(shí)可以擦除源block中的所有數(shù)據(jù),以便源block稱為空白block,方便后續(xù)使用。
步驟s105:將所述源block的擦除次數(shù)加1。
由于源block擦除一次,為了便于后續(xù)實(shí)現(xiàn)動態(tài)均衡,將源block的擦除次數(shù)加1。
根據(jù)本申請?zhí)峁┑牧硪粋€實(shí)施,在用戶寫操作時(shí)提供的一種磨損均衡的處理方法。參加圖2,具體包括以下步驟:
步驟s201:在接收用戶寫請求后,在空白block中確定擦除次數(shù)最少的空白block。
固態(tài)硬盤的控制單元接收用戶寫請求后,在空白block中擦除次數(shù)最少的空白block,作為用戶寫請求的所使用的block。
步驟s202:將所述用戶寫請求中的數(shù)據(jù)寫入該空白block中。
控制單元處理用戶寫請求,將用戶寫請求中的數(shù)據(jù)寫入該空白block中。
通過上述實(shí)施例,可以看出本申請具有以下有益效果:
本申請?zhí)峁┝艘环N磨損均衡的處理方法,其中在垃圾回收寫時(shí)將擦除次數(shù)最多的空白block作為目的block,在一定程度上實(shí)現(xiàn)磨損均衡。本申請沒有單獨(dú)為磨損均衡開辟一個處理流程,所以可以在一定程度上減輕控制單元的負(fù)擔(dān)。
此外,在用戶寫請求時(shí),向用戶寫請求提供擦除次數(shù)較少的block,在一定程度上也可以實(shí)現(xiàn)磨損均衡。
本實(shí)施例方法所述的功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個計(jì)算設(shè)備可讀取存儲介質(zhì)中?;谶@樣的理解,本申請實(shí)施例對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,移動計(jì)算設(shè)備或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其它實(shí)施例的不同之處,各個實(shí)施例之間相同或相似部分互相參見即可。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。