一種降低固態(tài)硬盤寫放大的方法
【專利摘要】本發(fā)明公開了一種降低固態(tài)硬盤寫放大的方法,其特征在于當SSD的當前數(shù)據(jù)訪問的LPA數(shù)量無法拆分為多個剛好填充PPA剛好滿足一個物理頁寫入操作時,對于剛好填充PPA部分的數(shù)據(jù)直接寫入實際的物理頁中;對于多出的部分先寫入物理頁寫入緩存,從待垃圾回收的物理塊中的查找有效數(shù)據(jù),并遷移到物理頁寫入緩存與當前數(shù)據(jù)訪問的數(shù)據(jù)剛好組成一個PPA,剛好滿足一個物理頁寫入操作,將填充好的PPA的數(shù)據(jù)寫入實際物理頁中。將垃圾回收過程中的有效數(shù)據(jù)替代無效數(shù)據(jù)來減少寫放大,同時將垃圾回收的過程分散到各個具體寫操作中,在極小寫放大的同時提高了固態(tài)硬盤的響應(yīng)速度和整體壽命。
【專利說明】一種降低固態(tài)硬盤寫放大的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息存儲領(lǐng)域,尤其涉及一種降低固態(tài)硬盤寫放大的方法。
【背景技術(shù)】
[0002]固態(tài)硬盤(SSD)中,由于NAND Flash的特性,需要整個物理Page (以下簡稱PPA)進行編程,隨著Flash工藝的改變,Page Size從先前的4KB,逐步演變到現(xiàn)在的8KB,16KB,將來還可能更大,現(xiàn)代的存儲對于4KB大小為單位的數(shù)據(jù)的讀寫性能要求較高,所以SSD內(nèi)部的都設(shè)有邏輯轉(zhuǎn)換層(FTL),并且都以4KB大小的單元分配寫操作單元-邏輯頁(LPA)。
[0003]由于LPA到PPA的不等價性,當一次數(shù)據(jù)訪問的LPA數(shù)量無法剛好填充PPA時,實際數(shù)據(jù)訪問中無法剛好填充PPA的情形是占多數(shù)的,這樣FTL算法需要在剩余區(qū)域填充無效數(shù)據(jù),實現(xiàn)對整個物理Page的編程。這種行為將導(dǎo)致SSD寫放大的產(chǎn)生并降低壽命。
[0004]另一方面,由于NAND Flash的特性,其物理頁面被編程后,在整個物理塊擦除前,對應(yīng)的物理頁不可以再重新編程。對應(yīng)的回收過程稱之為垃圾回收,其伴隨著非主機發(fā)起的數(shù)據(jù)迀移過程,類似碎片整理;非主機發(fā)起的數(shù)據(jù)迀移過程必然需要對F I ash進行重新編程,這也必然引入寫放大,同時完成數(shù)據(jù)的迀移還需要額外的系統(tǒng)時間開銷,必然會影響到系統(tǒng)的響應(yīng)速度。
【發(fā)明內(nèi)容】
[0005]針對以上缺陷,本發(fā)明目的在于提出了如何降低LPA與PPA不對齊時導(dǎo)致通過填充無效數(shù)據(jù)引起的寫放大問題。
[0006]為了實現(xiàn)上述目的,本發(fā)明提供了一種降低固態(tài)硬盤寫放大的方法,其特征在于當SSD的當前數(shù)據(jù)訪問的LPA數(shù)量無法拆分為多個剛好填充PPA剛好滿足一個物理頁寫入操作時,對于剛好填充PPA部分的數(shù)據(jù)直接寫入實際的物理頁中;對于多出的部分先寫入物理頁寫入緩存,從待垃圾回收的物理塊中的查找有效數(shù)據(jù),并迀移到物理頁寫入緩存與當前數(shù)據(jù)訪問的數(shù)據(jù)剛好組成一個PPA,剛好滿足一個物理頁寫入操作,將填充好的PPA的數(shù)據(jù)寫入實際物理頁中。
[0007]所述的降低固態(tài)硬盤寫放大的方法,其特征在于將填充好的PPA的數(shù)據(jù)寫入實際物理頁中后立即將已迀移走有效數(shù)據(jù)的待垃圾回收的物理塊進行擦除操作,并實現(xiàn)回收。
[0008]所述的降低固態(tài)硬盤寫放大的方法,其特征還包括待垃圾回收的物理塊索引表,所述索引表記錄待垃圾回收的物理塊中的各個PPA內(nèi)還有多少個LPA的有效數(shù)據(jù),當SSD的當前數(shù)據(jù)訪問的LPA數(shù)量無法剛好填充PPA剛好滿足一個物理頁寫入操作時,直接檢索所述的索引表,快速定位到需要迀走的有效數(shù)據(jù)。
[0009]本發(fā)明針對LPA與PPA不對齊導(dǎo)致的填充無效數(shù)據(jù)過程引入的寫放大的問題,將垃圾回收過程中的有效數(shù)據(jù)替代無效數(shù)據(jù)來減少寫放大,同時將垃圾回收的過程分散到各個具體寫操作中,在極小寫放大的同時提高了固態(tài)硬盤的響應(yīng)速度和整體壽命。
【專利附圖】
【附圖說明】
[0010]圖1是PPA包含全部為有效數(shù)據(jù)的寫入示意圖;
[0011]圖2是PPA寫入數(shù)據(jù)不足的寫入示意圖;
[0012]圖3是通過垃圾回收填充PPA寫入數(shù)據(jù)不足的示意圖;
[0013]圖4是拼接垃圾回收區(qū)數(shù)據(jù)后的PPA寫入示意圖;
[0014]圖5是垃圾回收示意圖。
【具體實施方式】
[0015]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0016]圖1為PPA包含全部為有效數(shù)據(jù)的寫入示意圖;當主機寫入數(shù)據(jù)時,數(shù)據(jù)流按照LPA進行切分。切分為I到N+1分LPA,單個LPA內(nèi)的數(shù)據(jù)邏輯地址是連續(xù)的。2個不同的LPA地址沒有關(guān)聯(lián)性。在數(shù)據(jù)寫入到NAND物理塊前,由“物理頁寫入緩存”對數(shù)據(jù)進行拼接,本實施例一個PPA包含4個LPA,當Host寫入數(shù)據(jù)湊滿一個PPA后,依次寫入后端NAND空白頁中,主機依次寫入每包含4個LPA的數(shù)據(jù)到物理塊中。
[0017]圖2為PPA寫入數(shù)據(jù)不足的寫入示意圖,當出現(xiàn)主機最后寫入數(shù)據(jù)LPA編號為N+1的數(shù)據(jù)時,不足一個PPA時,此時無法立即將有效數(shù)據(jù)寫入NAND物理頁,只能先將N+1的數(shù)據(jù)先移入物理頁寫緩存中。傳統(tǒng)做法是填充無效數(shù)據(jù)以滿足物理頁寫入需求。但這個做法使得NAND寫放大增加并且浪費了 NAND使用壽命。
[0018]圖3為通過垃圾回收填充PPA寫入數(shù)據(jù)不足的示意圖,主機最后寫入數(shù)據(jù)不足一個PPA,此時找到需要垃圾回收的物理塊,所述的需要垃圾回收的物理塊是指其所有的物理頁都已經(jīng)被寫過,且只有少量的是有效數(shù)據(jù),其余都是無效數(shù)據(jù)(新的數(shù)據(jù)被主機重新寫過,且被SSD分配到其他物理塊的物理頁)。按該指令最后一個PPA寫入所缺少的物理頁寫入緩存所缺少的LPA數(shù)量,本實施例所舉例子當前寫操作只有I個LPA有效數(shù)據(jù),還缺3個LPA有效數(shù)據(jù)。查找需要垃圾回收的物理塊的有效數(shù)據(jù),查到3個LPA數(shù)據(jù),將這3個LPA數(shù)據(jù)從垃圾回收的物理塊內(nèi)導(dǎo)入到物理頁寫緩存中。
[0019]圖4為拼接垃圾回收區(qū)數(shù)據(jù)后的PPA寫入示意圖,將裝滿有效數(shù)據(jù)的物理頁寫緩存寫入到當前寫入物理塊的空白物理頁上,同時該數(shù)據(jù)源的待垃圾回收的物理塊中的相應(yīng)數(shù)據(jù)變成無效數(shù)據(jù)。
[0020]圖5為垃圾回收示意圖,待垃圾回收的物理塊中所有數(shù)據(jù)被迀移走后,對應(yīng)的該物理塊上的數(shù)據(jù)都變成無效數(shù)據(jù),直接擦除該物理塊使該物理塊變成空白塊,可用于新的數(shù)據(jù)寫入,也就實現(xiàn)垃圾回收。
[0021]綜合如上過程,在傳統(tǒng)做法中,當物理頁寫緩存不能裝滿時會填充無效數(shù)據(jù)。這個過程會發(fā)生在主機數(shù)據(jù)寫入或者垃圾回收數(shù)據(jù)變迀的寫入。在本發(fā)明中,通過特定的數(shù)據(jù)寫入策略,可有效降低無效數(shù)據(jù)的填充量及其對應(yīng)的寫放大;同時將垃圾回收的過程嵌入到正常的數(shù)據(jù)寫入過程,可有效避免獨立垃圾回收過程中的數(shù)據(jù)迀移引起的系統(tǒng)響應(yīng)延遲。
[0022]以上所揭露的僅為本發(fā)明一種實施例而已,當然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種降低固態(tài)硬盤寫放大的方法,其特征在于當SSD的當前數(shù)據(jù)訪問的LPA數(shù)量無法拆分為多個剛好填充PPA剛好滿足一個物理頁寫入操作時,對于剛好填充PPA部分的數(shù)據(jù)直接寫入實際的物理頁中;對于多出的部分先寫入物理頁寫入緩存,從待垃圾回收的物理塊中的查找有效數(shù)據(jù),并迀移到物理頁寫入緩存與當前數(shù)據(jù)訪問的數(shù)據(jù)剛好組成一個PPA,剛好滿足一個物理頁寫入操作,將填充好的PPA的數(shù)據(jù)寫入實際物理頁中。
2.根據(jù)權(quán)利要求1所述的降低固態(tài)硬盤寫放大的方法,其特征在于將填充好的PPA的數(shù)據(jù)寫入實際物理頁中后立即將已迀移走有效數(shù)據(jù)的待垃圾回收的物理塊進行擦除操作,并實現(xiàn)回收。
3.根據(jù)權(quán)利要求2所述的降低固態(tài)硬盤寫放大的方法,其特征還包括待垃圾回收的物理塊索引表,所述索引表記錄待垃圾回收的物理塊中的各個PPA內(nèi)還有多少個LPA的有效數(shù)據(jù),當SSD的當前數(shù)據(jù)訪問的LPA數(shù)量無法剛好填充PPA剛好滿足一個物理頁寫入操作時,直接檢索所述的索引表,快速定位到需要迀走的有效數(shù)據(jù)。
【文檔編號】G06F12/06GK104484283SQ201410699002
【公開日】2015年4月1日 申請日期:2014年11月27日 優(yōu)先權(quán)日:2014年11月27日
【發(fā)明者】王猛, 徐偉華 申請人:記憶科技(深圳)有限公司