一種提升固態硬盤寫性能的方法
【專利摘要】本發明公開了一種提升固態硬盤寫性能的方法,按照如下步驟實現主機端寫數據指令,通過接收主機端寫數據指令;將主機端寫數據的待寫入數據按照page大小拆分成多個page數據塊,將分組后的多個page數據塊數據按各個組寫入對應的臨時block中lower page區域中,再通過執行內部數據搬移操作,將該數據按照最終數據block中page的自然順序寫入;最后擦除臨時block,完成最終數據寫入和臨時block回收。通過利用lower page的寫性能優于upper page,將host的寫指令的數據全部快速寫入block的lower page區域,有效的提升了host的寫指令的響應速度。
【專利說明】
一種提升固態硬盤寫性能的方法
技術領域
[0001]本發明涉及信息存儲領域,尤其涉及一種提升固態硬盤寫性能的方法。
【背景技術】
[0002]對于MLC NAND flash,每個存儲單元可以存儲2bit數據,這2bit數據分別分布在兩個page中,所以一組存儲單元對應兩個page,這樣的兩個page被稱之為shared page,分別為lower page和upper page。其中由于物理特性lower page的寫性能優于upper page。
[0003]現有對于MLC NAND flash的寫操作,一般按block(數據塊)內部page的序列號依次操作,即依次寫page_0,page_l,page_2......,不區分lower page、upper page。因此host
寫指令請求端看來,基于此的固態硬盤寫性能同時受到lower page和upper page的限制,因此受到后端NAND flash program操作耗時的限制,寫性能不佳。
【發明內容】
[0004]針對以上缺陷,本發明目的在于提出如何提高固態硬盤寫性能,特別是從host端角度,可快速完成host的數據寫入指令。
[0005]為了實現上述目的,本發明提供了一種提升固態硬盤寫性能的方法,其特征在于按照如下步驟實現主機端寫數據指令:
[0006]步驟1:接收主機端寫數據指令;
[0007]步驟2:將主機端寫數據的待寫入數據按照page大小拆分成多個page數據塊,并根據不同的block進行分組;
[0008]步驟3:將分組后的多個page數據塊數據按各個組寫入對應的臨時block中,寫入過程跳過臨時block的upper page區域,只寫lower page區域,完成主機端寫數據指令;
[0009]步驟4:執行空間回收操作,具體為在所有已寫入有效數據的block中選擇2個或多個存儲有效數據最少的block作為待回收block進行空間回收操作,讀取選定的2個或多個存儲有效數據最少的block中的有效數據,將該有效數據不區分是否為upper page和lowerpage,按新block的page的自然順序寫入;
[0010]步驟5:擦除作為待回收block,完成空間回收操作。
[0011]所述的提升固態硬盤寫性能的方法,其特征在于包括數據空間評估操作,在執行步驟4之前先執行數據空間評估操作,當當前空閑空間大于30%-50%則不執行步驟4和步驟5。
[0012]所述的提升固態硬盤寫性能的方法,其特征在于包括定時監控操作,在執行步驟4之前先執行定時監控操作,判斷定時進行執行空間回收操作定時器是否到,定時到則執行步驟4和步驟5;否則則不執行步驟4和步驟5。
[0013]本發明通過利用lower page的寫性能優于upper page,將host的寫指令的數據全部快速寫入block的lower page區域,數據寫入lower page區域,后即可結束host的寫指令;后臺再增加內部數據搬移操作,實現將寫入lower page區域搬移到合適的block中的 lower page和upper page區域中,有效的提升了host的寫指令的響應速度。
【附圖說明】
[0014]圖1是host數據寫入臨時block的lower page示意圖;
[0015]圖2是空間回收操作流程示意圖;
[0016]圖3是空間回收操作寫操作數據流示意圖。
【具體實施方式】
[0017]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0018]SSD內部數據存儲容量一般都大于用戶可見容量,以128GB SSD為例,用戶可見容量約為119GB。所以,在用戶對SSD進行數據寫入時,尤其是用戶未完全使用SSD所有容量的時候,SSD可以提供多于用戶寫入數據量的存儲空間來存儲這些數據。
[0019]圖1是host數據寫入臨時block的lowerpage示意圖,當硬盤控制器接收到主機端寫數據指令Host data,該指令實際涉及到4個block數據的寫入操作;本指令涉及4個block并行操作,只是一個示例,不同指令、不同的調度算法和硬盤控制器所能夠支持的最大并發數可能支持的同時并發處理的block數也不同,將主機端寫數據的待寫入數據按照page大小拆分成多個page數據塊,并根據不同的block進行分組;分別寫入Block a、Block b、Block c和Block d,Block a、Block b、Block c和Block d內部都由交叉排布的lower page和upper page構成,將分組后的多個page數據塊數據按各個組分別寫入Block a、Block b、Block c和Block d的lower page區域,所有數據寫完后,完成本次主機端寫數據指令;從host端看來本次數據寫入指令操作已經完成。整個操作的寫操作只受lower page的寫性能限制,與upper page部分的寫性能無關,充分的利用了lower page的優越寫性能優勢,提高對host的寫入響應速度。
[0020]如果僅僅將數據全部寫入lowerpage,將極大的造成儲存空間的浪費,因此還需要在存儲器內部增加內部數據搬移操作,圖2是空間回收操作流程示意圖,也叫垃圾回收操作。如在前面響應host寫數據操作指令已經完成在Block a和Block b的lower page寫入數據,完成主機端寫數據指令。在所有已寫入有效數據的block中選擇2個存儲有效數據最少的block作為待回收block進行空間回收操作示例,假設正好選擇了Block a和Block b,讀取Block a和Block b中的有效數據,將該有效數據不區分是否為upper page和lowerpage,按新block的page的自然順序分別寫入Block m和Block η中。對于Block n、Block m的寫操作為并向操作,不同硬盤控制器可能支持的并行數不同,根據支持的數量可以同時進行多Block的回收操作。由于Block a和Block b中的有效數據已經轉存到其他區域,因此可對這兩個block進行回收,通過擦除操作,實現Block a和Block b的塊回收。
[0021]圖3是空間回收操作寫操作數據流示意圖,根據含有有效數據數據長度信息,根據硬盤控制器可能支持的并行數,選取空間回收block,并提前對數據進行拼接,如將多個空間回收block的有效數據進行合并,作為空間回收操作寫操作數據流GC data,將該數據按照分組并行寫入對應的block中,本示意圖,假設硬盤控制器支持最大并發數為4,分別實際寫入到Block a’、Block b’、Block c’和Block d’中,該操作與host數據寫入是最大的區別就是,不區分lower page還是upper page,同等對待。同時對已實現數據回收的空間回收block進行擦除操作,完成對本次選定的空間回收block的空間回收操作。
[0022]以上所揭露的僅為本發明一種實施例而已,當然不能以此來限定本之權利范圍,本領域普通技術人員可以理解實現上述實施例的全部或部分流程,并依本發明權利要求所作的等同變化,仍屬于本發明所涵蓋的范圍。
【主權項】
1.一種提升固態硬盤寫性能的方法,其特征在于按照如下步驟實現主機端寫數據指令: 步驟1:接收主機端寫數據指令; 步驟2:將主機端寫數據的待寫入數據按照page大小拆分成多個page數據塊,并根據不同的block進行分組; 步驟3:將分組后的多個page數據塊數據按各個組寫入對應的臨時block中,寫入過程跳過臨時block的upper page區域,只寫lower page區域,完成主機端寫數據指令; 步驟4:執行空間回收操作,具體為在所有已寫入有效數據的block中選擇2個或多個存儲有效數據最少的block作為待回收block進行空間回收操作,讀取選定的2個或多個存儲有效數據最少的block中的有效數據,將該有效數據不區分是否為upper page和lowerpage,按新block的page的自然順序寫入; 步驟5:擦除作為待回收block,完成空間回收操作。2.根據權利要求1所述的提升固態硬盤寫性能的方法,其特征在于包括數據空間評估操作,在執行步驟4之前先執行數據空間評估操作,當當前空閑空間大于30%-50%則不執行步驟4和步驟5。3.根據權利要求1所述的提升固態硬盤寫性能的方法,其特征在于包括定時監控操作,在執行步驟4之前先執行定時監控操作,判斷定時進行執行空間回收操作定時器是否到,定時到則執行步驟4和步驟5;否則則不執行步驟4和步驟5。
【文檔編號】G06F3/06GK105955669SQ201610303990
【公開日】2016年9月21日
【申請日】2016年5月10日
【發明人】華榮, 李建
【申請人】記憶科技(深圳)有限公司