一種數據搬移方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機技術領域,具體涉及一種數據搬移方法及裝置。
【背景技術】
[0002]非易失性存儲器包括多個物理塊,每個物理塊包括多個單元,每個單元的磨損次數都有上限值。當單元的磨損次數達到上限值時,該單元將為無效單元,對應的物理塊也將為無效物理塊,導致該非易失性存儲器失效。因此,為了避免因某一物理塊的失效導致非易失性存儲器失效,采用磨損均衡算法使磨損次數均勻分布到不同的物理塊上。磨損均衡算法包括動態磨損均衡和靜態磨損均衡,其中,動態磨損均衡只處理動態數據,在數據進行改寫時將觸發數據搬移,靜態磨損均衡可以處理靜態數據,在后臺任務發現某一物理塊的磨損次數較低時,將該物理塊上的數據搬移到其它物理塊上。
[0003]非易失性存儲器中包括寫隊列和搬移隊列,其中,寫隊列中存儲有中央處理器發送給非易失性存儲器的寫請求,搬移隊列中存儲有由于磨損均衡需要搬移的待搬移數據。寫隊列中的寫請求的處理與搬移隊列中的待搬移數據的搬移交叉執行,非易失性存儲器將數據從一個物理塊搬移到另一個物理塊時,是以頁為數據搬移粒度進行數據搬移的。由于數據搬移粒度固定為一頁,因此,無法隨著搬移隊列中的待搬移數據的頁面數量的變化而調整數據搬移粒度,降低了數據搬移的靈活性。
【發明內容】
[0004]本發明實施例公開一種數據搬移方法及裝置,用于提高數據搬移的靈活性。
[0005]本發明實施例第一方面公開一種數據搬移方法,包括:
[0006]判斷搬移隊列中是否存在待搬移數據;
[0007]若存在待搬移數據,統計所述待搬移數據的頁面數量;
[0008]確定所述頁面數量所在數量區間;
[0009]從存儲的數量區間與數據搬移粒度間的映射關系中獲取所述數量區間對應的數據搬移粒度,其中,不同的數量區間對應不同的數據搬移粒度;
[0010]針對所述待搬移數據按照所述數據搬移粒度執行一次搬移操作。
[0011]結合本發明實施例第一方面,在本發明實施例第一方面的第一種可能的實現方式中,所述判斷搬移隊列中是否存在待搬移數據之前,所述方法還包括:
[0012]將搬移隊列中的待搬移數據的頁面數量劃分為多個數量區間,每個數量區間被分配一個數據搬移粒度;
[0013]存儲所述多個數量區間與對應的數據搬移粒度以獲取數量區間與數據搬移粒度間的映射關系。
[0014]結合本發明實施例第一方面或本發明實施例第一方面的第一種可能的實現方式,在本發明實施例第一方面的第二種可能的實現方式中,所述針對所述待搬移數據按照所述數據搬移粒度執行一次搬移操作之后,所述方法還包括:
[0015]判斷寫隊列中是否存在寫請求;
[0016]若存在寫請求,處理位于所述寫隊列中的第一個寫請求,處理完所述寫請求之后,執行所述的判斷搬移隊列中是否存在待搬移數據的步驟。
[0017]本發明實施例第二方面公開一種數據搬移裝置,包括:
[0018]第一判斷單元,用于判斷搬移隊列中是否存在待搬移數據;
[0019]統計單元,用于當所述第一判斷單元的判斷結果為是時,統計所述待搬移數據的頁面數量;
[0020]確定單元,用于確定所述統計單元統計的頁面數量所在數量區間;
[0021]獲取單元,用于從存儲的數量區間與數據搬移粒度間的映射關系中獲取所述確定單元確定的數量區間對應的數據搬移粒度,其中,不同的數量區間對應不同的數據搬移粒度;
[0022]執行單元,用于針對所述待搬移數據按照所述獲取單元獲取的數據搬移粒度執行一次搬移操作。
[0023]結合本發明實施例第二方面,在本發明實施例第二方面的第一種可能的實現方式中,所述裝置還包括:
[0024]劃分單元,用于將搬移隊列中的待搬移數據的頁面數量劃分為多個數量區間,每個數量區間被分配一個數據搬移粒度;
[0025]存儲單元,用于存儲所述劃分單元劃分的多個數量區間與對應的數據搬移粒度以獲取數量區間與數據搬移粒度間的映射關系。
[0026]結合本發明實施例第二方面或本發明實施例第二方面的第一種可能的實現方式,在本發明實施例第二方面的第二種可能的實現方式中,所述裝置還包括:
[0027]第二判斷單元,用于判斷寫隊列中是否存在寫請求;
[0028]處理單元,用于當所述第二判斷單元的判斷結果為是時,處理位于所述寫隊列中的第一個寫請求,處理完所述寫請求之后,觸發所述第一判斷單元執行所述的判斷搬移隊列中是否存在待搬移數據的步驟。
[0029]本發明實施例中,可以根據搬移隊列中待搬移數據的頁面數量調整數據搬移粒度,可以提高數據搬移的靈活性。
【附圖說明】
[0030]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0031]圖1是本發明實施例公開的一種數據搬移方法的流程圖;
[0032]圖2是本發明實施例公開的另一種數據搬移方法的流程圖;
[0033]圖3是本發明實施例公開的一種數據搬移裝置的結構圖;
[0034]圖4是本發明實施例公開的另一種數據搬移裝置的結構圖。
【具體實施方式】
[0035]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0036]本發明實施例公開一種數據搬移方法及裝置,用于提高數據搬移的靈活性。以下分別進行詳細說明。
[0037]請參閱圖1,圖1是本發明實施例公開的一種數據搬移方法的流程圖。其中,該數據搬移方法適用于相變存儲器(Phase Change Memory, PCM)、阻變式存儲器(ResistiveRandom Access Memory,RRAM)、閃存(Flash)等非易失性存儲器。如圖1所示,該數據搬移方法可以包括以下步驟。
[0038]S101、判斷搬移隊列中是否存在待搬移數據。
[0039]S102、若存在待搬移數據,統計待搬移數據的頁面數量。
[0040]相應地,若搬移隊列中不存在待搬移數據,將判斷寫隊列中是否存在寫請求。
[0041]S103、確定該頁面數量所在數量區間。
[0042]本實施例中,預先將待搬移數據的頁面數量劃分為多個數量區間并存儲,因此,將該頁面數量與存儲的多個數量區間進行比對,以確定該頁面數量所在數量區間。
[0043]S104、從存儲的數量區間與數據搬移粒度間的映射關系中獲取該數量區間對應的數據搬移粒度,其中,不同的數量區間對應不同的數據搬移粒度。
[0044]本實施例中,數量區間中的頁面數量越大,對應的數據搬移粒度越大,數據搬移粒度最大為一頁。當待搬移數據的頁面數量變大時,將增大數據搬移粒度,以便快速搬移待搬移數據,為處理寫操作提供存儲空間,這是由于寫操作需要在物理塊的存儲單元中寫入數據,如果存儲單元被占據,將無法執行寫操作;當待搬移數據的頁面數量變小時,將減小數據搬移粒度,以便能夠及時查看寫隊列中的寫請求并進行處理。
[0045]舉例說明,假設根據待搬移數據的頁面數量Al、A2、A3和A4將待搬移數據的頁面數量劃分為三個數量區間,其中,Al > A2 > A3 > A4。當頁面數量在A1到A2數量區間時,數據搬移粒度為一頁;當頁面數量在A2到A3數量區間時,數據搬移粒度為0.5頁;當頁面數量在A3到A4數量區間時,數據搬移粒度為0.25頁。
[0046]S105、針對待搬移數據按照該數據搬移粒度執行一次搬移操作。
[0047]本實施例中,獲取到該數量區間對應的數據搬移粒度之后,將搬移隊列中的待搬移數據搬移一個數據搬移粒度的數據。
[0048]在圖1所描述的數據搬移方法中,可以根據搬移隊列中待搬移數據的頁面數量調整數據搬移粒度,可以提高數據搬移的靈活性。
[0049]請參閱圖2,圖2是本發明實施例公開的另一種數據搬移方法的流程圖。其中,該數據搬移方法適用于PCM、RRAM、閃存(Flash)等非易失性存儲器。如圖2所示,該數據搬移方法可以包括以下步驟。
[0050]S201、將搬移隊列中的待搬移數據的頁面數量劃分為多個數量區間,每個數量區間被分配一個數據搬移粒度。
[0051]本實施例中,預先將待搬移數據的頁面數量劃分為多個數量區間,為每個數量區間分配區間唯一分配一個數據搬移粒度。
[0052]本實施例中,數量區間中的頁面數量越大,對應的數據搬移粒度越大,數據搬移粒度最大為一頁。當待搬移數據的頁面數量變大時,將增大數據搬移粒度,以便快速搬移待搬移數據,為處理寫操作提供存儲空間,這是由于寫操作需要在物理塊的存儲單元中寫入數據,如果存儲單元被占據,將無法執行寫操作;當待搬移數據的頁面數量變小時,將減小數據搬移粒度,以便能夠及時查看寫隊列中的寫請求并進行處理。
[0053]舉例說明,假設根據待搬移數據的頁面數量Al、A2、A3和A4將待搬移數據的頁面數量劃分為三個數量區間,其中,Al > A2 > A3 > A4。當頁面數量在A1到A2數量區間時,數據搬移粒度為一頁;當頁面數量在A2到A3數量區間時,數據搬移粒度為0.5頁;當頁面數量在A3到A4數量區間時,數據搬移粒度為0.25頁。
[0054]S202、存儲該多個數量區間與對應的數據搬移粒度以獲取數量區間與數據搬移粒度間的映射關系,其中,不同的數量區間對應不同的數據搬移粒度。
[0055]S203、判斷搬移隊列中是否存在待搬移數據。
[0056]S204、若存