預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器的制造方法
【專利摘要】一種裝置,包括混合存儲(chǔ)器模塊,并且所述混合存儲(chǔ)器模塊包括易失性存儲(chǔ)器和非易失性存儲(chǔ)器。數(shù)據(jù)在易失性存儲(chǔ)器中被預(yù)先布置。當(dāng)預(yù)先布置數(shù)據(jù)的大小達(dá)到閾值時(shí),在單個(gè)寫(xiě)入操作中,所述數(shù)據(jù)按照預(yù)先布置的被提交到非易失性存儲(chǔ)器。
【專利說(shuō)明】預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器
【背景技術(shù)】
[0001]存儲(chǔ)數(shù)據(jù)或指令的任何設(shè)備需要存儲(chǔ)器,并且有兩種廣泛類型的存儲(chǔ)器:易失性存儲(chǔ)器和非易失性存儲(chǔ)器。易失性存儲(chǔ)器在它失去電力或電力未被周期性地充電時(shí)失去其所存儲(chǔ)的數(shù)據(jù)。然而,非易失性存儲(chǔ)器在沒(méi)有連續(xù)或周期性電力供應(yīng)的情形下保存信息。
[0002]隨機(jī)訪問(wèn)存儲(chǔ)器(“RAM”)是一種類型的易失性存儲(chǔ)器。只要RAM的期望單元的地址已知,RAM可以被以任何次序訪問(wèn)。動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(“DRAM”)是一種類型的RAM。電容器被用于在DRAM中存儲(chǔ)存儲(chǔ)器的位,并且電容器可以被周期性地充電以維持高電子狀態(tài)。因?yàn)镈RAM電路小且便宜,其可以被用作用于計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器。
[0003]閃存是一種類型的非易失性存儲(chǔ)器,并且閃存可以在頁(yè)面中被訪問(wèn)頁(yè)面。例如,閃存的頁(yè)面可以在一個(gè)操作或一個(gè)“突閃”中被擦除。與對(duì)DRAM的訪問(wèn)相比,對(duì)閃存的訪問(wèn)是相對(duì)慢的。如此,閃存可以被用作用于計(jì)算機(jī)系統(tǒng)的長(zhǎng)期或持續(xù)存儲(chǔ)器。
【專利附圖】
【附圖說(shuō)明】
[0004]為了詳細(xì)描述各種示例,現(xiàn)在將參考附圖,其中:
圖1圖示了依據(jù)至少一個(gè)圖示的示例的用于預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器的系統(tǒng);
圖2圖示了依據(jù)至少一個(gè)圖示的示例的預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器的方法;
圖3圖示了依據(jù)至少一個(gè)圖示的示例的用于預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器的裝置;以及
圖4圖示了依據(jù)至少一個(gè)圖示的示例的用于預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)。
【具體實(shí)施方式】
[0005]通過(guò)在易失性存儲(chǔ)器中預(yù)先布置將被提交到非易失性存儲(chǔ)器(諸如,閃存)的數(shù)據(jù),時(shí)間和空間可以被高效使用。特別地,通過(guò)把許多小的寫(xiě)入請(qǐng)求組合到相對(duì)少的大的寫(xiě)入操作中,非易失性存儲(chǔ)器的速度、性能和吞吐量可以被改進(jìn)。把元數(shù)據(jù)放置在閃存的每個(gè)頁(yè)面的可預(yù)知位置中也改進(jìn)非易失性存儲(chǔ)器的速度、性能和吞吐量。效率上的增加比用于預(yù)先布置數(shù)據(jù)的任何時(shí)間和空間重要的多。
[0006]圖1圖示了包括可以包括易失性存儲(chǔ)器106和非易失性存儲(chǔ)器108的混合存儲(chǔ)器模塊104的系統(tǒng)100。圖1的系統(tǒng)100依據(jù)至少一些示例在易失性存儲(chǔ)器106預(yù)先布置數(shù)據(jù)以便在非易失性存儲(chǔ)器108中存儲(chǔ)。系統(tǒng)100還可以包括處理器102,其可以被稱為中央處理單元(“CPU”)。處理器102可以被實(shí)現(xiàn)為一個(gè)或多個(gè)CPU芯片,并且可以執(zhí)行指令、代碼、和計(jì)算機(jī)程序。在至少一個(gè)示例中,處理器102可以被耦合到混合存儲(chǔ)器模塊104。
[0007]混合存儲(chǔ)器模塊104可以被耦合到存儲(chǔ)器控制器110,其可以包括電路邏輯以通過(guò)調(diào)度對(duì)存儲(chǔ)器的讀取和寫(xiě)入來(lái)管理數(shù)據(jù)流。在至少一個(gè)示例中,存儲(chǔ)器控制器110可以與處理器102或混合存儲(chǔ)器模塊104集成在一起。如此,存儲(chǔ)器控制器110或處理器102可以在易失性存儲(chǔ)器106中預(yù)先布置數(shù)據(jù),并且把預(yù)先布置的數(shù)據(jù)提交到非易失性存儲(chǔ)器108。
[0008]在至少一個(gè)示例中,混合存儲(chǔ)器模塊104中的總存儲(chǔ)器的一半可以被實(shí)現(xiàn)為易失性存儲(chǔ)器106,并且一半可以被實(shí)現(xiàn)為非易失性存儲(chǔ)器108。在各種其它示例中,易失性存儲(chǔ)器106與非易失性存儲(chǔ)器108之比可以是除了相等之外的量。
[0009]在易失性存儲(chǔ)器106 (諸如,DRAM)中,每個(gè)字節(jié)可以被單獨(dú)地尋址,并且數(shù)據(jù)可以被以任何次序訪問(wèn)。然而,在非易失性存儲(chǔ)器108中,數(shù)據(jù)在頁(yè)面中被訪問(wèn)。即,為了讀取數(shù)據(jù)的字節(jié),所述字節(jié)位于其中的數(shù)據(jù)的頁(yè)面應(yīng)被加載。相似地,為了寫(xiě)入數(shù)據(jù)的字節(jié),所述字節(jié)應(yīng)被寫(xiě)入其中的數(shù)據(jù)的頁(yè)面應(yīng)被加載。如此,在一個(gè)寫(xiě)入操作中一起寫(xiě)入非易失性存儲(chǔ)器108的頁(yè)面是經(jīng)濟(jì)的。特別地,對(duì)頁(yè)面的訪問(wèn)數(shù)量可以被減少,從而導(dǎo)致時(shí)間被節(jié)約以及非易失性存儲(chǔ)器108的輸入/輸出損耗被減少。此外,在至少一個(gè)示例中,程序或操作系統(tǒng)可以僅與易失性存儲(chǔ)器兼容,并且因此可以試圖尋址非易失性存儲(chǔ)器中的單獨(dú)字節(jié)。在這種情形下,數(shù)據(jù)的預(yù)先布置可以通過(guò)考慮到非易失性存儲(chǔ)器108的字節(jié)可尋址性的假象而幫助非易失性存儲(chǔ)器108與這種程序或操作系統(tǒng)兼容。
[0010]易失性存儲(chǔ)器106可以充當(dāng)用于非易失性存儲(chǔ)器108的分級(jí)區(qū)域。即,數(shù)據(jù)可以在非易失性存儲(chǔ)器108中以相同布置或次序被存儲(chǔ)之前在易失性存儲(chǔ)器106中被預(yù)先布置(或排序)。在至少一個(gè)示例中,在易失性存儲(chǔ)器106中被預(yù)先布置的數(shù)據(jù)包括寫(xiě)入數(shù)據(jù)和元數(shù)據(jù)。寫(xiě)入數(shù)據(jù)可以包括與寫(xiě)入請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)。元數(shù)據(jù)可以包括寫(xiě)入數(shù)據(jù)的地址映射。例如,地址映射可以包括邏輯地址到物理地址的映射。當(dāng)數(shù)據(jù)被請(qǐng)求時(shí),它可以按邏輯地址請(qǐng)求。元數(shù)據(jù)可以被查閱以確定與請(qǐng)求中的邏輯地址相關(guān)聯(lián)的物理地址,并且所請(qǐng)求的數(shù)據(jù)可以從所述物理地址被獲取。元數(shù)據(jù)可以被鄰接地(即,在一組順序的地址中)存儲(chǔ),并且寫(xiě)入數(shù)據(jù)也可以被鄰接地(在一組分離的順序地址中)存儲(chǔ)。在至少一個(gè)示例中,這些鄰接的數(shù)據(jù)塊的大小可以基于非易失性存儲(chǔ)器108的頁(yè)面大小。例如,非易失性存儲(chǔ)器108的頁(yè)面大小可以是64千字節(jié)。如此,元數(shù)據(jù)和寫(xiě)入數(shù)據(jù)可以在其相應(yīng)的鄰接塊中在易失性存儲(chǔ)器106中被積聚,直到達(dá)到組合數(shù)據(jù)的64千字節(jié)的閾值。因?yàn)樵獢?shù)據(jù)可以比寫(xiě)入數(shù)據(jù)小,所以64千字節(jié)中的4千字節(jié)可以包括元數(shù)據(jù),而64千字節(jié)中的60千字節(jié)可以包括寫(xiě)入數(shù)據(jù)。在各種示例中,其它的比可以發(fā)生。
[0011]在另一個(gè)示例中,非易失性存儲(chǔ)器108的頁(yè)面大小可以是128千字節(jié)。如此,元數(shù)據(jù)和寫(xiě)入數(shù)據(jù)可以被積聚在易失性存儲(chǔ)器106中,直到達(dá)到組合數(shù)據(jù)的128千字節(jié)的閾值。因?yàn)樵獢?shù)據(jù)可以比寫(xiě)入數(shù)據(jù)小,所以128千字節(jié)中的8千字節(jié)可以包括元數(shù)據(jù),而128千字節(jié)中的120千字節(jié)可以包括寫(xiě)入數(shù)據(jù)。在各種示例中,其它的比可以發(fā)生。
[0012]在至少一個(gè)示例中,在易失性存儲(chǔ)器106中,元數(shù)據(jù)塊被存儲(chǔ)在寫(xiě)入數(shù)據(jù)塊之前(在較低編號(hào)的地址處)。如此,當(dāng)組合數(shù)據(jù)被提交到非易失性存儲(chǔ)器108時(shí),元數(shù)據(jù)將出現(xiàn)在非易失性存儲(chǔ)器108的每個(gè)頁(yè)面的開(kāi)始處(在較低編號(hào)的地址處)。在另一個(gè)示例中,元數(shù)據(jù)被放置在寫(xiě)入數(shù)據(jù)之后。如此,元數(shù)據(jù)將出現(xiàn)在非易失性存儲(chǔ)器108的每個(gè)頁(yè)面的末尾。
[0013]一旦閾值量的數(shù)據(jù)已被積聚并且預(yù)先布置在易失性存儲(chǔ)器106中,所述數(shù)據(jù)可以按照預(yù)先布置的被提交到非易失性存儲(chǔ)器108。數(shù)據(jù)可以在單個(gè)寫(xiě)入操作中被提交。在至少一個(gè)示例中,閾值是可變的。即,觸發(fā)到非易失性存儲(chǔ)器的存儲(chǔ)的所積聚的數(shù)據(jù)量不是恒定的。更確切地,它基于進(jìn)一步的數(shù)據(jù)是否會(huì)導(dǎo)致預(yù)先布置的數(shù)據(jù)的大小超過(guò)非易失性存儲(chǔ)器的頁(yè)面大小而改變。例如,寫(xiě)入請(qǐng)求可以被以它們被接收的次序預(yù)先布置;如此,與尚未被預(yù)先布置的數(shù)據(jù)相關(guān)聯(lián)的最舊的寫(xiě)入請(qǐng)求下一個(gè)用于預(yù)先布置。如果下一個(gè)寫(xiě)入請(qǐng)求與會(huì)導(dǎo)致預(yù)先布置的數(shù)據(jù)超過(guò)非易失性存儲(chǔ)器108的例如64千字節(jié)的頁(yè)面大小的數(shù)據(jù)相關(guān)聯(lián),則已經(jīng)被預(yù)先布置的數(shù)據(jù)被提交到非易失性存儲(chǔ)器108,并且與下一個(gè)寫(xiě)入請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)被用作將被提交到非易失性存儲(chǔ)器108的下一個(gè)頁(yè)面的第一積聚。在至少一些示例中,以這種方式,非易失性存儲(chǔ)器108的頁(yè)面大小可以接近或等于(但不超過(guò))預(yù)先布置的數(shù)據(jù)的大小。
[0014]在至少一個(gè)示例中,用于預(yù)先布置數(shù)據(jù)需要的易失性存儲(chǔ)器的量基于寫(xiě)入請(qǐng)求按其被接收的速率以及數(shù)據(jù)可以按其被提交到非易失性存儲(chǔ)器的速度而被計(jì)算。例如,如果平均4千字節(jié)的數(shù)據(jù)被存儲(chǔ)在易失性存儲(chǔ)器106中以用于每個(gè)寫(xiě)入請(qǐng)求,則在已知寫(xiě)入請(qǐng)求的頻率的情形下,在一段時(shí)間上應(yīng)被存儲(chǔ)的存儲(chǔ)器的總量可以被計(jì)算。此外,如果數(shù)據(jù)慢于那個(gè)頻率被提交,則所需緩沖器空間的量可以被計(jì)算。緩沖器空間的這個(gè)量可以被劃分成等于非易失性存儲(chǔ)器的頁(yè)面大小的區(qū)域,并且這些區(qū)域可以被用作圓形隊(duì)列。即,一旦區(qū)域已被提交到非易失性存儲(chǔ)器,則那個(gè)區(qū)域可以被放置在隊(duì)列的末尾,并且當(dāng)所述區(qū)域到達(dá)隊(duì)列前面時(shí)可以被蓋寫(xiě)。在至少一個(gè)示例中,把數(shù)據(jù)的區(qū)域提交到非易失性存儲(chǔ)器108可以被與在隊(duì)列中預(yù)先布置下一個(gè)區(qū)域同時(shí)地執(zhí)行。
[0015]在至少一個(gè)示例中,混合存儲(chǔ)器模塊104還可以包括電力傳感器。電力傳感器可以包括邏輯,該邏輯檢測(cè)即將來(lái)臨或發(fā)生的電力故障,并且因此觸發(fā)易失性存儲(chǔ)器106到非易失性存儲(chǔ)器108的備份或觸發(fā)檢查以確保非易失性存儲(chǔ)器108已經(jīng)正在備份或已經(jīng)備份易失性存儲(chǔ)器106。例如,電力傳感器可以被耦合到電力供應(yīng)或充電電容器,該充電電容器被耦合到混合存儲(chǔ)器模塊104。如果所供應(yīng)的電力落在閾值以下,則備份可以被觸發(fā)。以這種方式,易失性存儲(chǔ)器106中的數(shù)據(jù)可以在電力故障期間被保護(hù)。
[0016]在至少一個(gè)示例中,混合存儲(chǔ)器模塊104和易失性存儲(chǔ)器106可以充當(dāng)緩存。例如,在請(qǐng)求還尚未被提交到非易失性存儲(chǔ)器108的數(shù)據(jù)情形下,易失性存儲(chǔ)器106可以被訪問(wèn)以獲取所請(qǐng)求的數(shù)據(jù)。以這種方式,數(shù)據(jù)的清單可以被維護(hù),其中數(shù)據(jù)被標(biāo)記為陳舊的或非陳舊的,非常像緩存。
[0017]圖2圖示了在202開(kāi)始并且在208結(jié)束的預(yù)先布置數(shù)據(jù)以提交到非易失性存儲(chǔ)器的方法200。在204,數(shù)據(jù)可以在非易失性存儲(chǔ)器108中以相同布置或次序被存儲(chǔ)之前在易失性存儲(chǔ)器106中被預(yù)先布置(或排序)。在至少一個(gè)示例中,在易失性存儲(chǔ)器106中被預(yù)先布置的數(shù)據(jù)包括寫(xiě)入數(shù)據(jù)和元數(shù)據(jù)。寫(xiě)入數(shù)據(jù)可以包括與寫(xiě)入請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)。元數(shù)據(jù)可以包括寫(xiě)入數(shù)據(jù)的地址映射。例如,地址映射可以包括邏輯地址到物理地址的映射。當(dāng)數(shù)據(jù)被請(qǐng)求時(shí),它可以按邏輯地址請(qǐng)求。元數(shù)據(jù)可以被查閱以確定與請(qǐng)求中的邏輯地址相關(guān)聯(lián)的物理地址,并且所請(qǐng)求的數(shù)據(jù)可以從所述物理地址被獲取。元數(shù)據(jù)可以被鄰接地(即,在一組順序的地址中)存儲(chǔ),并且寫(xiě)入數(shù)據(jù)也可以被鄰接地(在一組分離的順序地址中)存儲(chǔ)。在至少一個(gè)示例中,這些鄰接的數(shù)據(jù)塊的大小可以基于非易失性存儲(chǔ)器108的頁(yè)面大小。例如,非易失性存儲(chǔ)器108的頁(yè)面大小可以是64千字節(jié)。如此,元數(shù)據(jù)和寫(xiě)入數(shù)據(jù)可以在其相應(yīng)的鄰接塊中在易失性存儲(chǔ)器106中被積聚,直到達(dá)到組合數(shù)據(jù)的64千字節(jié)的閾值。因?yàn)樵獢?shù)據(jù)可以比寫(xiě)入數(shù)據(jù)小,所以64千字節(jié)中的4千字節(jié)可以包括元數(shù)據(jù),而64千字節(jié)中的60千字節(jié)可以包括寫(xiě)入數(shù)據(jù)。在各種示例中,其它的比可以發(fā)生。
[0018]在另一個(gè)示例中,非易失性存儲(chǔ)器108的頁(yè)面大小可以是128千字節(jié)。如此,元數(shù)據(jù)和寫(xiě)入數(shù)據(jù)可以被積聚在易失性存儲(chǔ)器106中,直到達(dá)到組合數(shù)據(jù)的128千字節(jié)的閾值。因?yàn)樵獢?shù)據(jù)可以比寫(xiě)入數(shù)據(jù)小,所以128千字節(jié)中的8千字節(jié)可以包括元數(shù)據(jù),而128千字節(jié)中的120千字節(jié)可以包括寫(xiě)入數(shù)據(jù)。在各種示例中,其它的比可以發(fā)生。
[0019]在至少一個(gè)示例中,在易失性存儲(chǔ)器106中,元數(shù)據(jù)塊被存儲(chǔ)在寫(xiě)入數(shù)據(jù)塊之前(在較低編號(hào)的地址處)。如此,當(dāng)組合數(shù)據(jù)被提交到非易失性存儲(chǔ)器108時(shí),元數(shù)據(jù)將出現(xiàn)在非易失性存儲(chǔ)器108的每個(gè)頁(yè)面的開(kāi)始處(在較低編號(hào)的地址處)。在另一個(gè)示例中,元數(shù)據(jù)被放置在寫(xiě)入數(shù)據(jù)之后。如此,元數(shù)據(jù)將出現(xiàn)在非易失性存儲(chǔ)器108的每個(gè)頁(yè)面的末尾。
[0020]在206,數(shù)據(jù)可以按照預(yù)先布置的被提交到非易失性存儲(chǔ)器108。數(shù)據(jù)可以在單個(gè)寫(xiě)入操作中被提交。在至少一個(gè)示例中,閾值是可變的。即,觸發(fā)到非易失性存儲(chǔ)器的存儲(chǔ)的所積聚的數(shù)據(jù)量不是恒定的。更確切地,它基于進(jìn)一步的數(shù)據(jù)是否會(huì)導(dǎo)致預(yù)先布置的數(shù)據(jù)的大小超過(guò)非易失性存儲(chǔ)器的頁(yè)面大小而改變。例如,寫(xiě)入請(qǐng)求可以被以它們被接收的次序預(yù)先布置;如此,與尚未被預(yù)先布置的數(shù)據(jù)相關(guān)聯(lián)的最舊的寫(xiě)入請(qǐng)求下一個(gè)用于預(yù)先布置。如果下一個(gè)寫(xiě)入請(qǐng)求與導(dǎo)致預(yù)先布置的數(shù)據(jù)超過(guò)非易失性存儲(chǔ)器108的例如64千字節(jié)的頁(yè)面大小的數(shù)據(jù)相關(guān)聯(lián),則已經(jīng)被預(yù)先布置的數(shù)據(jù)被提交到非易失性存儲(chǔ)器108,并且與下一個(gè)寫(xiě)入請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)被用作將被提交到非易失性存儲(chǔ)器108的下一個(gè)頁(yè)面的第一積聚。在至少一些示例中,以這種方式,非易失性存儲(chǔ)器108的頁(yè)面大小可以接近或等于(但不超過(guò))預(yù)先布置的數(shù)據(jù)的大小。
[0021]在至少一個(gè)示例中,用于預(yù)先布置數(shù)據(jù)需要的易失性存儲(chǔ)器的量基于寫(xiě)入請(qǐng)求按其被接收的速率以及數(shù)據(jù)可以按其被提交到非易失性存儲(chǔ)器的速度而被計(jì)算。例如,如果平均4千字節(jié)的數(shù)據(jù)被存儲(chǔ)在易失性存儲(chǔ)器106中以用于每個(gè)寫(xiě)入請(qǐng)求,則在已知寫(xiě)入請(qǐng)求的頻率的情形下,在一段時(shí)間上應(yīng)被存儲(chǔ)的存儲(chǔ)器的總量可以被計(jì)算。此外,如果數(shù)據(jù)慢于那個(gè)頻率被提交,則所需緩沖器空間的量可以被計(jì)算。緩沖器空間的這個(gè)量可以被劃分成等于非易失性存儲(chǔ)器的頁(yè)面大小的區(qū)域,并且這些區(qū)域可以被用作圓形隊(duì)列。即,一旦區(qū)域已被提交到非易失性存儲(chǔ)器,則那個(gè)區(qū)域可以被放置在隊(duì)列的末尾,并且當(dāng)所述區(qū)域到達(dá)隊(duì)列前面時(shí)可以被蓋寫(xiě)。在至少一個(gè)示例中,把數(shù)據(jù)的區(qū)域提交到非易失性存儲(chǔ)器108可以被與在隊(duì)列中預(yù)先布置下一個(gè)區(qū)域同時(shí)地執(zhí)行。
[0022]圖3圖示了依據(jù)至少一個(gè)圖示的示例的用于預(yù)先布置數(shù)據(jù)以提交到閃存108的裝置300。在至少一個(gè)示例中,所述裝置300可以包括混合雙列直插存儲(chǔ)器模塊(“DIMM”)304?;旌螪I麗304可以包括DRAM 306和閃存308。如此,DRAM 306和閃存308 二者可以在相同的DIMM 304上被提供,并且由相同的存儲(chǔ)器控制器控制。DRAM 306可以是易失性存儲(chǔ)器,因?yàn)閿?shù)據(jù)的每個(gè)位可以被存儲(chǔ)在電容器內(nèi),所述電容器被周期性地供電以保存所述位。使用一個(gè)或多個(gè)晶體管存儲(chǔ)位的閃存308可以是非易失性存儲(chǔ)器。在各種示例中,其它類型的易失性存儲(chǔ)器和非易失性存儲(chǔ)器被使用。在至少一個(gè)示例中,總DIMM存儲(chǔ)器的一半可以被實(shí)現(xiàn)為DRAM 306,并且一半可以被實(shí)現(xiàn)為閃存308。在各種其它示例中,DRAM 306與閃存308之比可以是除了相等之外的量?;旌螪MM 304可以在沒(méi)有來(lái)自適配硬件協(xié)助的情形下安裝在電子設(shè)備的DIMM槽中。
[0023]在DRAM 306中,每個(gè)字節(jié)可以被單獨(dú)地尋址。然而,在閃存308中,數(shù)據(jù)在頁(yè)面中被訪問(wèn)。即,為了讀取數(shù)據(jù)的字節(jié),所述字節(jié)位于其中的數(shù)據(jù)的頁(yè)面應(yīng)被加載。相似地,為了寫(xiě)入數(shù)據(jù)的字節(jié),所述字節(jié)應(yīng)被寫(xiě)入其中的數(shù)據(jù)的頁(yè)面應(yīng)被加載。如此,在一個(gè)寫(xiě)入操作中一起寫(xiě)入閃存308的整個(gè)頁(yè)面是經(jīng)濟(jì)的。特別地,對(duì)頁(yè)面的訪問(wèn)數(shù)量可以被減少,從而導(dǎo)致閃存308的輸入/輸出損耗被減少。此外,在至少一個(gè)示例中,程序或操作系統(tǒng)可以僅與DRAM 306兼容,并且因此試圖尋址閃存308中的單獨(dú)字節(jié)。在這種情形下,數(shù)據(jù)的預(yù)先布置可以通過(guò)考慮到閃存308的字節(jié)可尋址性的假象而幫助閃存308與這種程序或操作系統(tǒng)兼容。
[0024]DRAM 306可以充當(dāng)用于閃存308的分級(jí)區(qū)域。即,數(shù)據(jù)可以在閃存308中以相同布置或次序被存儲(chǔ)之前在DRAM 306中被預(yù)先布置(或排序)。在至少一個(gè)示例中,在DRAM306中被預(yù)先布置的數(shù)據(jù)包括寫(xiě)入數(shù)據(jù)和元數(shù)據(jù)。寫(xiě)入數(shù)據(jù)可以包括與寫(xiě)入請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)。元數(shù)據(jù)可以包括寫(xiě)入數(shù)據(jù)的地址映射。例如,地址映射可以包括邏輯地址到物理地址的映射。當(dāng)數(shù)據(jù)被請(qǐng)求時(shí),它可以按邏輯地址請(qǐng)求。元數(shù)據(jù)可以被查閱以確定與請(qǐng)求中的邏輯地址相關(guān)聯(lián)的物理地址,并且所請(qǐng)求的數(shù)據(jù)可以從所述物理地址被獲取。元數(shù)據(jù)可以被鄰接地(即,在一組順序的地址中)存儲(chǔ),并且寫(xiě)入數(shù)據(jù)也可以被鄰接地(在一組分離的順序地址中)存儲(chǔ)。在至少一個(gè)示例中,這些鄰接的數(shù)據(jù)塊的大小可以基于閃存308的頁(yè)面大小。例如,閃存308的頁(yè)面大小可以是64千字節(jié)。如此,元數(shù)據(jù)和寫(xiě)入數(shù)據(jù)可以在其相應(yīng)的鄰接塊中在DRAM 306中被積聚,直到達(dá)到組合數(shù)據(jù)的64千字節(jié)的閾值。因?yàn)樵獢?shù)據(jù)可以比寫(xiě)入數(shù)據(jù)小,所以64千字節(jié)中的4千字節(jié)可以包括元數(shù)據(jù),而64千字節(jié)中的60千字節(jié)可以包括寫(xiě)入數(shù)據(jù)。在各種示例中,其它的比可以發(fā)生。
[0025]在另一個(gè)示例中,閃存308的頁(yè)面大小可以是128千字節(jié)。如此,元數(shù)據(jù)和寫(xiě)入數(shù)據(jù)可以被積聚在DRAM 306中,直到達(dá)到組合數(shù)據(jù)的128千字節(jié)的閾值。因?yàn)樵獢?shù)據(jù)可以比寫(xiě)入數(shù)據(jù)小,所以128千字節(jié)中的8千字節(jié)可以包括元數(shù)據(jù),而128千字節(jié)中的120千字節(jié)可以包括寫(xiě)入數(shù)據(jù)。在各種示例中,其它的比可以發(fā)生。
[0026]在至少一個(gè)示例中,在DRAM 306中,元數(shù)據(jù)塊被存儲(chǔ)在寫(xiě)入數(shù)據(jù)塊之前(在較低編號(hào)的地址處)。如此,當(dāng)組合數(shù)據(jù)被提交到閃存308時(shí),元數(shù)據(jù)將出現(xiàn)在閃存308的每個(gè)頁(yè)面的開(kāi)始處(在較低編號(hào)的地址處)。在另一個(gè)示例中,元數(shù)據(jù)被放置在寫(xiě)入數(shù)據(jù)之后。如此,元數(shù)據(jù)將出現(xiàn)在閃存308的每個(gè)頁(yè)面的末尾。
[0027]—旦閾值量的數(shù)據(jù)已被積聚并且預(yù)先布置在DRAM 306中,所述數(shù)據(jù)可以按照預(yù)先布置的被提交到閃存308。數(shù)據(jù)可以在單個(gè)寫(xiě)入操作中被提交。在至少一個(gè)示例中,閾值是可變的。即,觸發(fā)到閃存308的存儲(chǔ)的所積聚的數(shù)據(jù)量不是恒定的。更確切地,它基于進(jìn)一步的數(shù)據(jù)是否會(huì)導(dǎo)致預(yù)先布置的數(shù)據(jù)的大小超過(guò)閃存308的頁(yè)面大小而改變。例如,寫(xiě)入請(qǐng)求可以被以它們被接收的次序預(yù)先布置;如此,與尚未被預(yù)先布置的數(shù)據(jù)相關(guān)聯(lián)的最舊的寫(xiě)入請(qǐng)求下一個(gè)用于預(yù)先布置。如果下一個(gè)寫(xiě)入請(qǐng)求與會(huì)導(dǎo)致預(yù)先布置的數(shù)據(jù)超過(guò)閃存308的例如64千字節(jié)的頁(yè)面大小的數(shù)據(jù)相關(guān)聯(lián),則已經(jīng)被預(yù)先布置的數(shù)據(jù)被提交到閃存308,并且與下一個(gè)寫(xiě)入請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)被用作將被提交到閃存308的下一個(gè)頁(yè)面的第一積聚。在至少一些示例中,以這種方式,閃存308的頁(yè)面大小可以接近或等于(但不超過(guò))預(yù)先布置的數(shù)據(jù)的大小。
[0028]在至少一個(gè)示例中,用于預(yù)先布置數(shù)據(jù)需要的DRAM 306的量基于寫(xiě)入請(qǐng)求按其被接收的速率以及數(shù)據(jù)可以按其被提交到閃存308的速度而被計(jì)算。例如,如果平均4千字節(jié)的數(shù)據(jù)被存儲(chǔ)在DRAM 306中以用于每個(gè)寫(xiě)入請(qǐng)求,則在已知寫(xiě)入請(qǐng)求的頻率的情形下,在一段時(shí)間上應(yīng)被存儲(chǔ)的存儲(chǔ)器的總量可以被計(jì)算。此外,如果數(shù)據(jù)慢于那個(gè)頻率被提交,則所需緩沖器空間的量可以被計(jì)算。緩沖器空間的這個(gè)量可以被劃分成等于閃存308的頁(yè)面大小的區(qū)域,并且這些區(qū)域可以被用作圓形隊(duì)列。即,一旦區(qū)域已被提交到閃存308,則那個(gè)區(qū)域可以被放置在隊(duì)列的末尾,并且當(dāng)所述區(qū)域到達(dá)隊(duì)列前面時(shí)可以被蓋寫(xiě)。在至少一個(gè)示例中,把數(shù)據(jù)的區(qū)域提交到閃存308可以被與在隊(duì)列中預(yù)先布置下一個(gè)區(qū)域同時(shí)地執(zhí)行。
[0029]以上所描述的系統(tǒng)可以被實(shí)現(xiàn)在任何特定的機(jī)器或計(jì)算機(jī)上,所述特定的機(jī)器或計(jì)算機(jī)具有足夠的處理能力、存儲(chǔ)器資源和吞吐能力以處理被放置在計(jì)算機(jī)上的必要工作負(fù)載。圖4圖示了適合于實(shí)現(xiàn)在此公開(kāi)的一個(gè)或多個(gè)示例的特定計(jì)算機(jī)系統(tǒng)480。計(jì)算機(jī)系統(tǒng)480包括與包括存儲(chǔ)器488的存儲(chǔ)器設(shè)備通信的硬件處理器482 (其可以被稱為中央處理器單元或CPU),以及輸入/輸出(1/0)490設(shè)備。處理器可以被實(shí)現(xiàn)為一個(gè)或多個(gè)CPU
-H-* I I
心/T O
[0030]在各種實(shí)施例中,存儲(chǔ)器488包括非臨時(shí)性存儲(chǔ)設(shè)備,諸如,易失性存儲(chǔ)器(例如,RAM)、非易失性存儲(chǔ)器(例如,閃存、硬盤(pán)驅(qū)動(dòng)器、⑶ROM等)、或其組合。存儲(chǔ)器488包括由處理器482執(zhí)行的計(jì)算機(jī)可讀軟件484。在此描述的動(dòng)作中的一個(gè)或多個(gè)在軟件484的執(zhí)行期間由處理器482執(zhí)行。
[0031]以上的討論意圖圖示本發(fā)明的原理和各種實(shí)施例。一旦以上的公開(kāi)被完全地認(rèn)識(shí)至IJ,眾多的變化和修改對(duì)于本領(lǐng)域的技術(shù)人員將變得顯然。旨在接下來(lái)的權(quán)利要求被解釋成包含所有這種變化和修改。
【權(quán)利要求】
1.一種裝置,包括: 混合存儲(chǔ)器模塊,包括: 易失性存儲(chǔ)器;以及 非易失性存儲(chǔ)器; 其中,數(shù)據(jù)在易失性存儲(chǔ)器中被預(yù)先布置,并且當(dāng)預(yù)先布置數(shù)據(jù)的大小達(dá)到閾值時(shí),在單個(gè)寫(xiě)入操作中,所述數(shù)據(jù)按照預(yù)先布置的被提交到非易失性存儲(chǔ)器。
2.如權(quán)利要求1所述的裝置,其中所述閾值是可變閾值,其包括使得進(jìn)一步的數(shù)據(jù)會(huì)導(dǎo)致預(yù)先布置數(shù)據(jù)的大小超過(guò)非易失性存儲(chǔ)器的頁(yè)面大小的量。
3.如權(quán)利要求2所述的裝置,其中進(jìn)一步的數(shù)據(jù)包括作為尚未被預(yù)先布置的最舊寫(xiě)入請(qǐng)求的部分被接收的寫(xiě)入數(shù)據(jù)。
4.如權(quán)利要求1所述的裝置,其中在易失性存儲(chǔ)器中被預(yù)先布置的數(shù)據(jù)包括寫(xiě)入數(shù)據(jù)和元數(shù)據(jù);并且所述元數(shù)據(jù)包括所述寫(xiě)入數(shù)據(jù)的地址映射。
5.如權(quán)利要求4所述的裝置,其中寫(xiě)入數(shù)據(jù)被存儲(chǔ)到非易失性存儲(chǔ)器的頁(yè)面中;所述元數(shù)據(jù)被存儲(chǔ)到所述頁(yè)面中;并且所述元數(shù)據(jù)被鄰接地存儲(chǔ)在非易失性存儲(chǔ)器中。
6.如權(quán)利要求1所述的裝置,其中用于預(yù)先布置所述數(shù)據(jù)需要的易失性存儲(chǔ)器的量基于寫(xiě)入請(qǐng)求按其被接收的速率以及數(shù)據(jù)能夠按其被提交到非易失性存儲(chǔ)器的速度而被計(jì)笪
ο
7.如權(quán)利要求6所述的裝置,其中所需要的易失性存儲(chǔ)器的量被劃分成區(qū)域,每個(gè)區(qū)域是所述非易失性存儲(chǔ)器的頁(yè)面大小的大??;并且所述區(qū)域被用作圓形隊(duì)列。
8.一種方法,包括: 在易失性存儲(chǔ)器中預(yù)先布置數(shù)據(jù); 當(dāng)預(yù)先布置數(shù)據(jù)的大小達(dá)到閾值時(shí),在單個(gè)寫(xiě)入操作中,把所述數(shù)據(jù)按照預(yù)先布置的提交到非易失性存儲(chǔ)器。
9.如權(quán)利要求8所述的方法,其中所述閾值是可變閾值,其包括使得進(jìn)一步的數(shù)據(jù)會(huì)導(dǎo)致預(yù)先布置數(shù)據(jù)的大小超過(guò)非易失性存儲(chǔ)器的頁(yè)面大小的量。
10.如權(quán)利要求9所述的方法,其中進(jìn)一步的數(shù)據(jù)包括作為尚未被預(yù)先布置的最舊寫(xiě)入請(qǐng)求的部分被接收的寫(xiě)入數(shù)據(jù)。
11.如權(quán)利要求8所述的方法,其中在易失性存儲(chǔ)器中被預(yù)先布置的數(shù)據(jù)包括寫(xiě)入數(shù)據(jù)和元數(shù)據(jù);并且所述元數(shù)據(jù)包括所述寫(xiě)入數(shù)據(jù)的地址映射。
12.如權(quán)利要求11所述的方法,進(jìn)一步包括:把寫(xiě)入數(shù)據(jù)存儲(chǔ)到非易失性數(shù)據(jù)的頁(yè)面中;把所述元數(shù)據(jù)存儲(chǔ)到所述頁(yè)面中;并且把所述元數(shù)據(jù)鄰接地存儲(chǔ)在非易失性存儲(chǔ)器中。
13.如權(quán)利要求8所述的方法,進(jìn)一步包括:基于寫(xiě)入請(qǐng)求按其被接收的速率以及數(shù)據(jù)能夠按其被提交到非易失性存儲(chǔ)器的速度計(jì)算用于預(yù)先布置所述數(shù)據(jù)需要的易失性存儲(chǔ)器的量。
14.如權(quán)利要求13所述的方法,進(jìn)一步包括:把所需要的易失性存儲(chǔ)器的量劃分成區(qū)域,每個(gè)區(qū)域是所述非易失性存儲(chǔ)器的頁(yè)面大小的大??;并且把所述區(qū)域用作圓形隊(duì)列。
15.—種系統(tǒng),包括: 混合雙列直插存儲(chǔ)器模塊(“DIMM”)包括: 動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(“DRAM”);以及 閃存; 其中,數(shù)據(jù)在DRAM中被預(yù)先布置,并且當(dāng)預(yù)先布置數(shù)據(jù)的大小達(dá)到閾值時(shí),在單個(gè)寫(xiě)入操作中,所述數(shù)據(jù)按照預(yù)先布置的被提交到所述閃存。
【文檔編號(hào)】G06F12/00GK104246719SQ201280072856
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2012年5月1日 優(yōu)先權(quán)日:2012年5月1日
【發(fā)明者】G. 卡彭特 D., K. 王 P., C. 哈洛韋爾 W., M. 貝盧薩 C. 申請(qǐng)人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)