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