本發(fā)明涉及固態(tài)硬盤控制技術(shù),特別涉及一種固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法及固態(tài)硬盤。
背景技術(shù):
ssd(固態(tài)硬盤)已經(jīng)被廣泛應(yīng)用于各種場合,隨著nand工藝的演進(jìn),從slc到mlc,再到tlc,其編程復(fù)雜度越來越高,對(duì)應(yīng)地同等容量的nand的寫入性能在下降。因此對(duì)于寫入時(shí)間有一定要求的應(yīng)用場合,該mlc和tlc的寫性能無法滿足應(yīng)用要求。對(duì)于存在大量數(shù)據(jù)寫入的應(yīng)用,寫入速度慢也將降低應(yīng)用的響應(yīng)速度,嚴(yán)重影響用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)以上缺陷,本發(fā)明目的如何提升現(xiàn)有mlc、tlc等工藝類型固態(tài)硬盤寫入速度慢的問題。
為了解決以上問題本發(fā)明提出了一種固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于在mlc或者tlc工藝的固態(tài)硬盤中至少分出一個(gè)加速分區(qū),將所述加速分區(qū)的物理塊轉(zhuǎn)換為slc,外部控制器對(duì)固態(tài)硬盤的寫操作優(yōu)先選擇寫入加速分區(qū),寫入完成后直接返回寫入成功;固態(tài)硬盤控制中設(shè)有動(dòng)態(tài)更新程序,后臺(tái)自動(dòng)將加速分區(qū)的數(shù)據(jù)更新到用戶空間中,所述用戶空間為非slc區(qū)域。
所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于所述加速分區(qū)的大小動(dòng)態(tài)根據(jù)用戶空間中空閑空間的大小動(dòng)態(tài)調(diào)整。
所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于當(dāng)用戶空間的空閑空間大于預(yù)先設(shè)定的調(diào)整閥值時(shí),保持加速分區(qū)的大小不變;當(dāng)用戶空間的空閑空間小于預(yù)先設(shè)定的調(diào)整閥值時(shí),當(dāng)用戶空間的空閑空間變少時(shí),加速分區(qū)也自動(dòng)調(diào)小。
所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于根據(jù)加速分區(qū)的空間大小x,用戶空間已使用的邏輯空間y和固態(tài)硬盤用戶可見的邏輯空間n的關(guān)系,動(dòng)態(tài)確定外部控制器對(duì)固態(tài)硬盤的寫操作是直接寫入用戶空間還是寫入加速分區(qū)。
所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于當(dāng)(y+x)>=n,則直接寫入用戶空間中,且觸發(fā)將加速區(qū)的數(shù)據(jù)全部更新到用戶空間中;當(dāng)(y+x)<n且x〉=1/4*n,則直接寫入用戶空間中;當(dāng)(y+x)<n且x<1/4*n,則直接寫入加速分區(qū)。
所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于當(dāng)用戶空間的空閑空間小于預(yù)先設(shè)定的恢復(fù)閥值時(shí),將加速分區(qū)從slc恢復(fù)到原始的存儲(chǔ)類型,加速分區(qū)對(duì)應(yīng)的存儲(chǔ)空間恢復(fù)為用戶空間。
所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法,其特征在于后臺(tái)自動(dòng)將加速分區(qū)的數(shù)據(jù)更新到用戶空間中的操作選擇系統(tǒng)空閑時(shí)自動(dòng)觸發(fā)并進(jìn)行操作。
一種固態(tài)硬盤,其特征在于固態(tài)硬盤的控制器采用了權(quán)利要求1至7任意一項(xiàng)所述的固態(tài)硬盤動(dòng)態(tài)加速區(qū)的實(shí)現(xiàn)方法。
本發(fā)明通過將部分mlc/tlc物理塊轉(zhuǎn)換為slc,從而獲得更高的讀寫性能;同時(shí)根據(jù)盤的邏輯使用空間與物理空間的比例,動(dòng)態(tài)調(diào)整此加速區(qū)的大小,可在用戶端實(shí)現(xiàn)較高的寫入速度效果。
附圖說明
圖1是tlc、mlc和slc的性能對(duì)比圖;
圖2是具體實(shí)施例空間分配示意圖;
圖3是具體實(shí)施例各個(gè)空間寫入性能對(duì)比圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是tlc、mlc和slc的性能對(duì)比圖;同等tlc工藝的物理塊強(qiáng)制轉(zhuǎn)換為slc工藝,則下降為原來tlc原始存儲(chǔ)容量的1/3,同等mlc工藝的物理塊強(qiáng)制轉(zhuǎn)換為slc工藝,則下降為原來tlc原始存儲(chǔ)容量的1/2,但是讀寫性能都有了很大的提高,通過空間換取時(shí)間。
作為mlc或者tlc工藝的固態(tài)硬盤,一般至少要保留一部分區(qū)域,也就是系統(tǒng)保留區(qū),作為垃圾回收、壞塊備份和系統(tǒng)數(shù)據(jù)存儲(chǔ)用,因此暴露給到用戶或者說用戶最大可訪問的地址空間一定比原始的物理空間大小小??紤]到任意時(shí)刻硬盤上的數(shù)據(jù)不可能滿,大部分情況下都具有較大的空閑空間。本發(fā)明也正是利用這特性,在用戶可訪問的地址空間中劃分出一個(gè)分區(qū),將該分區(qū)作為加速分區(qū),將加速分區(qū)的物理塊強(qiáng)制轉(zhuǎn)換為slc,外部控制器對(duì)固態(tài)硬盤的寫操作優(yōu)先選擇寫入加速分區(qū),寫入完成后直接返回寫入成功;由于同樣大小的數(shù)據(jù)寫入操作slc相比于mlc和tlc都具有較大的提升,數(shù)據(jù)量越大,體現(xiàn)更為明顯。數(shù)據(jù)寫入到slc的加速分區(qū)后,對(duì)于外部控制器這一側(cè)寫入操作就完成了。因此對(duì)于外部控制器來說,寫入的速度具有較大的提升。固態(tài)硬盤控制中設(shè)有動(dòng)態(tài)更新程序,后臺(tái)自動(dòng)將加速分區(qū)的數(shù)據(jù)更新到用戶空間中,用戶空間為非slc區(qū)域,該操作對(duì)于外部控制器是不可見的。
圖2是具體實(shí)施例空間分配示意圖;假設(shè)總的原始mlc或tlc容量為128gb,系統(tǒng)保留區(qū)28gb,對(duì)用戶所暴露或者用戶最大可寫入的地址空間為100gb,大部分時(shí)間用戶實(shí)際使用的邏輯空間保持在30gb左右。因此用戶的地址空間還保持70gb左右的空閑空間。因此可以從70gb中劃分出一個(gè)分區(qū)作為加速分區(qū)使用。加速分區(qū)的大小動(dòng)態(tài)根據(jù)用戶空間中空閑空間的大小動(dòng)態(tài)調(diào)整。當(dāng)用戶空間的空閑空間大于預(yù)先設(shè)定的調(diào)整閥值時(shí),保持加速分區(qū)的大小不變;當(dāng)用戶空間的空閑空間小于預(yù)先設(shè)定的調(diào)整閥值時(shí),當(dāng)用戶空間的空閑空間變少時(shí),加速分區(qū)也自動(dòng)調(diào)小。
硬盤控制器根據(jù)加速分區(qū)的空間大小x,用戶空間已使用的邏輯空間y和固態(tài)硬盤用戶可見的邏輯空間n的關(guān)系,動(dòng)態(tài)確定外部控制器對(duì)固態(tài)硬盤的寫操作是直接寫入用戶空間還是寫入加速分區(qū)。當(dāng)(y+x)>=n,則直接寫入用戶空間中,且觸發(fā)將加速區(qū)的數(shù)據(jù)全部更新到用戶空間中;當(dāng)(y+x)<n且x〉=1/4*n,則直接寫入用戶空間中;當(dāng)(y+x)<n且x<1/4*n,則直接寫入加速分區(qū)。
隨著硬盤中空閑的空間減少,在于當(dāng)用戶空間的空閑空間小于預(yù)先設(shè)定的恢復(fù)閥值時(shí),說明用戶對(duì)空間的要求更為強(qiáng)烈,因此將加速分區(qū)從slc恢復(fù)到原始的存儲(chǔ)類型,加速分區(qū)對(duì)應(yīng)的存儲(chǔ)空間恢復(fù)為用戶空間。
圖3是具體實(shí)施例各個(gè)空間寫入性能對(duì)比圖。stage1,所有的用戶數(shù)據(jù)寫入都是寫入到slc物理塊中;stage2,所有的用戶數(shù)據(jù)寫入都是直接寫入到mlc、tlc物理塊中;stage3,用戶數(shù)據(jù)直接寫入到mlc物理塊,且同時(shí)將slc中數(shù)據(jù)遷移到mlc/tlc物理塊,以釋放物理空間(slc占用自身2x/3xmlc/tlc空間)。
為避免用戶寫入時(shí)觸發(fā)stage3的寫入行為,此時(shí)的寫入速度是最低的;當(dāng)系統(tǒng)閑置時(shí),觸發(fā)slc往mlc數(shù)據(jù)的遷移。在此情形下,在y不變的前提下,可以降低x的占用空間。從而使得盤總是工作在stage1/2(>=不使用高速區(qū)的ssd寫入性能)。
以上所揭露的僅為本發(fā)明一種實(shí)施例而已,當(dāng)然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。