一種降低tlc閃存的固態(tài)硬盤寫放大的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息存儲領(lǐng)域,尤其涉及一種降低TLC閃存的固態(tài)硬盤寫放大的方法。
【背景技術(shù)】
[0002]TLC NAND flash是一種每個存儲單元(memory cell)中存儲有3個bit的flash類型,其較高的存儲密度在固態(tài)硬盤及存儲器領(lǐng)域有著愈來愈廣泛的應(yīng)用。
[0003]在TLC NAND flash每個存儲單元的3個bit信息中,分別屬于不同的分組,相對于MLC及SLC中page的概念,TLC中的三個數(shù)據(jù)分組稱為sub-page,其中存儲低位bit的叫做lowpage,存儲中間bit的叫做middle page,存儲高位bit的叫做up page。而三個sub-page所屬的同一個Word Line (WL)即是相對于MLC及SLC中page的存在。
[0004]在TLC的Program寫過程中,需要遵循一定的寫序列program order,這個programorder根據(jù)顆粒的不同而有所差異,但總體來說都需要遵循每個存儲單元需要被program 3次,并且3次program并非連續(xù)進行。在對TLC顆粒的block進行program操作時,需要將整個block進行依照program order進行program操作,當(dāng)所寫數(shù)據(jù)量不足以將整個block寫滿時,需要將后面的WL寫dummy數(shù)據(jù)(無效數(shù)據(jù))以將整個block填滿,否則會出現(xiàn)較多的bit出錯。在寫操作時,將未能寫滿的block稱為unclosed BI o ck,將未能寫滿的WL稱為Incomplete狀態(tài)。使用無效數(shù)據(jù)寫操作的方式推動有效數(shù)據(jù)所在Word Line進入Complete狀態(tài),這種做法會增加SSD內(nèi)部無效數(shù)據(jù)的寫入,增加寫放大,減少SSD使用壽命。
【發(fā)明內(nèi)容】
[0005]針對以上缺陷,本發(fā)明目的在于提出了如何降低由于待讀出數(shù)據(jù)所在的WordLine處于非UWL狀態(tài),通過填充無效數(shù)據(jù)引起的寫放大問題。
[0006]為了實現(xiàn)上述目的,本發(fā)明提供了一種降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于一個Word Line的完成一個Program操作后,該Word Line處于Incomplete狀態(tài)時,如果系統(tǒng)觸發(fā)對該Word Line所在的數(shù)據(jù)進行Read操作時或系統(tǒng)需要掉電時,先查詢預(yù)先建立的待回收數(shù)據(jù)查詢表,查找到合適的存在待回收數(shù)據(jù)block,將該待回收數(shù)據(jù)作為填充數(shù)據(jù)填充到當(dāng)前處于Incomplete狀態(tài)所在的Word Line對應(yīng)的存儲區(qū)域,完成數(shù)據(jù)垃圾回收工作,同時將處于Incomplete狀態(tài)的Word Line進入Complete狀態(tài),再觸發(fā)對該WordLine的Read數(shù)據(jù)操作或系統(tǒng)掉電操作。
[0007]所述的降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于所述的待回收數(shù)據(jù)查詢表包括待回收block列表,并建立各個待回收block中有效數(shù)據(jù)地址信息子表;待回收block列表由系統(tǒng)動態(tài)更新,實時記錄當(dāng)前存在需垃圾回收的所有block信息;各個待回收block中有效數(shù)據(jù)地址信息子表詳細(xì)記錄本block中存在的有效數(shù)據(jù)的地址。
[0008]所述的降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于選取當(dāng)前待回收block中有效數(shù)據(jù)最少的block,當(dāng)該block中有效數(shù)據(jù)量不足以滿足所需填充數(shù)據(jù)量時,則繼續(xù)選取下一個待回收block,直到有足夠的有效數(shù)據(jù)填充到當(dāng)前處于Incomplete狀態(tài)所在的Word Line對應(yīng)的存儲區(qū)域。
[0009]本發(fā)明通過使用待垃圾回收塊中的有效數(shù)據(jù)代替無效數(shù)據(jù),推動Incomplete的有效數(shù)據(jù)所在Word Line進入Complete狀態(tài),達(dá)到降低寫放大,提高系統(tǒng)性能,增加使用壽命的目的。
【附圖說明】
[0010]圖1是一種TLC NAND Flash數(shù)據(jù)寫入序列示意圖;
[0011]圖2是存在Incomplete狀態(tài)的TLC數(shù)據(jù)頁示意圖;
[0012]圖3是TLC填入無效數(shù)據(jù)推動數(shù)據(jù)頁進入Complete示意圖;
[0013]圖4是TLC填入搬移的有效數(shù)據(jù)推動數(shù)據(jù)頁進入Complete示意圖;
[0014]圖5是有效數(shù)據(jù)被搬移,實現(xiàn)垃圾回收塊示意圖。
【具體實施方式】
[0015]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0016]圖1是一種TLC NAND Flash數(shù)據(jù)寫入序列示意圖;現(xiàn)行TLC NAND Flash的讀寫特性是:一個Word Line需要Program 3次才進入Complete狀態(tài)才可讀出數(shù)據(jù),但block內(nèi)WordLine的program又有特定的順序,并不是按順序同一個Word Line完成3個program后再執(zhí)行下一個Word Line操作。如Word LineO的3次Program操作,是要在完成Word Line I的WLllst和WL12nd的2次Program操作完成Word Line 2的WL2 1st的I次Program操作后才執(zhí)行到Word Line O的WLO 3rd的Program操作,Word Line O才完成3次Program操作進入Complete狀態(tài),假設(shè)剛完成WLO 3rd的Program操作時,出發(fā)讀操作,該時刻Word Line I和Word Line 2就處于Incomplete狀態(tài)。
[0017]圖2是存在Incomplete狀態(tài)的TLC數(shù)據(jù)頁示意圖;假設(shè)TLC NAND Flash的Program執(zhí)行到某個時刻觸發(fā)了讀操作,該時刻Word LineCKWord LineKfford Line2和Word Line3處于Complete狀態(tài)設(shè)為Complete Data Word Line,該時刻Word Line4、Word Line5處于Incomplete狀態(tài)設(shè)為Incomplete Data Word Line。在正常使用TLC block時,會造成有效數(shù)據(jù)完成寫入,但是暫時無法讀出的情況(Incomplete Word Line),此時如遇到主機端需要對該數(shù)據(jù)進行訪問,則無法直接讀出該數(shù)據(jù)。并且,在此期間若發(fā)生異常掉電,再次上電后也會出現(xiàn)完成寫入的數(shù)據(jù)丟失的情況。
[0018]圖3是TLC填入無效數(shù)據(jù)推動數(shù)據(jù)頁進入Complete示意圖;為了正常讀出WordLine4和Word Line5上處于Incomplete狀態(tài)的數(shù)據(jù),常見的方法就是通過填寫入無效數(shù)據(jù)Dummy Data將Word Line4和Word Line5推進到Complete狀態(tài),為了實現(xiàn)該目的,就必須至少完成對Word Line6和Word Line7填入無效數(shù)據(jù)才可實現(xiàn)該目的。人為在該TLC block后填入無效數(shù)據(jù)Dummy Data,使得之前Incomplete Data所在Word Line進入Complete狀態(tài)。該方法保護了有效數(shù)據(jù),但是帶來的問題是增加了 SSD在運行期間的無效數(shù)據(jù)的寫入,會增加寫放大,減少SSD使用壽命。
[0019]圖4是TLC填入搬移的有效數(shù)據(jù)推動數(shù)據(jù)頁進入Complete示意圖;圖5是有效數(shù)據(jù)被搬移,實現(xiàn)垃圾回收塊示意圖。在SSD正常的使用過程中,存在著垃圾回收處理,即隨著SSD的使用,系統(tǒng)中會產(chǎn)生越來越多的存在有效數(shù)據(jù)Valid Data,但是有效數(shù)據(jù)含量較少的block,這些block中大部分都是無效數(shù)據(jù)Invalid Data。對于這些block,我們會進行垃圾回收操作,將其中為數(shù)不多的有效數(shù)據(jù)讀出再寫入到新的block中,使得之前的block內(nèi)不再有有效數(shù)據(jù)存在,此時,這些block就可以進行擦除操作,等待重新使用。本發(fā)明就是有效的將垃圾回收操作和在需要對TLC有效數(shù)據(jù)進行填充數(shù)據(jù)而進入Word Line Complete操作時相結(jié)合,同時實現(xiàn)數(shù)據(jù)的正常讀取和垃圾回收的目的。系統(tǒng)在使用過程中建立待回收block列表,并建立各個待回收block中有效數(shù)據(jù)地址信息子表。同樣針對Word Line4和Word Line5上處于IncompIete狀態(tài),本發(fā)明具體的解決辦法是先查找待回收block列表查找到對應(yīng)存在待回收的block列表,進一步查找到有效數(shù)據(jù)地址信息子表,根據(jù)該信息提取有效數(shù)據(jù),將該有效數(shù)據(jù)替代現(xiàn)有技術(shù)中的無效數(shù)據(jù)寫入Word Line6和Word Line7,實現(xiàn)將Word Line4和Word Line5推進到CompIete狀態(tài)。同時待回收的block中的有效數(shù)據(jù)也實現(xiàn)了數(shù)據(jù)搬移,待回收的block的數(shù)據(jù)都可以視為是無效數(shù)據(jù),對于該block即可進行擦除操作實現(xiàn)該block的回收。此方案即減少了系統(tǒng)無效數(shù)據(jù)的寫入,又提高了垃圾回收處理的工作效率,可以有效提高SSD的性能,并提高使用壽命。
[0020]為了進一步提高垃圾回收的效率,盡快的釋放出block資源,總是選取當(dāng)前待回收block中有效數(shù)據(jù)最少的block,當(dāng)該block中有效數(shù)據(jù)量不足以滿足所需填充數(shù)據(jù)量時,才繼續(xù)選取下一個待回收block,直到有足夠的有效數(shù)據(jù)填充到當(dāng)前處于Incomplete狀態(tài)所在的Word Line對應(yīng)的存儲區(qū)域。
[0021]以上所揭露的僅為本發(fā)明一種實施例而已,當(dāng)然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。
【主權(quán)項】
1.一種降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于一個WordLine的完成一個Program操作后,該Word Line處于Incomplete狀態(tài)時,當(dāng)系統(tǒng)觸發(fā)對該Word Line所在的數(shù)據(jù)進行Read操作或系統(tǒng)需要掉電時,先查詢預(yù)先建立的待回收數(shù)據(jù)查詢表,查找到合適的存在待回收數(shù)據(jù)block,將該待回收數(shù)據(jù)作為填充數(shù)據(jù)填充到當(dāng)前處于Incomplete狀態(tài)所在的Word Line對應(yīng)的存儲區(qū)域,完成數(shù)據(jù)垃圾回收工作,同時將處于Incomplete狀態(tài)的Word Line進入Complete狀態(tài),再觸發(fā)對該Word Line的Read數(shù)據(jù)操作或系統(tǒng)掉電操作。2.根據(jù)權(quán)利要求1所述的降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于所述的待回收數(shù)據(jù)查詢表包括待回收block列表,并建立各個待回收block中有效數(shù)據(jù)地址信息子表;待回收b I ock列表由系統(tǒng)動態(tài)更新,實時記錄當(dāng)前存在需垃圾回收的所有b I ο ck信息;各個待回收block中有效數(shù)據(jù)地址信息子表詳細(xì)記錄本block中存在的有效數(shù)據(jù)的地址。3.根據(jù)權(quán)利要求2所述的降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于選取當(dāng)前待回收block中有效數(shù)據(jù)最少的block,當(dāng)該block中有效數(shù)據(jù)量不足以滿足所需填充數(shù)據(jù)量時,則繼續(xù)選取下一個待回收block,直到有足夠的有效數(shù)據(jù)填充到當(dāng)前處于Incomplete狀態(tài)所在的Word Line對應(yīng)的存儲區(qū)域。
【專利摘要】本發(fā)明公開了一種降低使用TLC閃存的固態(tài)硬盤寫放大的方法,其特征在于一個Word?Line處于Incomplete狀態(tài)時,當(dāng)系統(tǒng)觸發(fā)對該Word?Line所在的數(shù)據(jù)進行Read操作時或系統(tǒng)需要掉電時,先查詢預(yù)先建立的待回收數(shù)據(jù)查詢表,查找到合適的存在待回收數(shù)據(jù)block,將該待回收數(shù)據(jù)作為填充數(shù)據(jù)填充到對應(yīng)的存儲區(qū)域,完成數(shù)據(jù)垃圾回收工作,Word?Line進入Complete狀態(tài),再觸發(fā)對該Word?Line的Read數(shù)據(jù)操作或系統(tǒng)掉電操作。通過使用待垃圾回收塊中的有效數(shù)據(jù)代替無效數(shù)據(jù),推動Word?Line進入Complete狀態(tài),達(dá)到降低寫放大,提高系統(tǒng)性能,增加使用壽命的目的。
【IPC分類】G06F3/06
【公開號】CN105677244
【申請?zhí)枴緾N201511031253
【發(fā)明人】華榮, 李建, 秦龍華, 楊學(xué)森
【申請人】記憶科技(深圳)有限公司
【公開日】2016年6月15日
【申請日】2015年12月31日