通過預(yù)測損壞的m-頁提高閃存利用率的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本文公開的實(shí)施方式總體上涉及用于提高閃存利用率的方法和系統(tǒng)。更具體地,本文公開的實(shí)施方式涉及一種用于管理持久性存儲器的方法以及與該方法相關(guān)聯(lián)的一種系統(tǒng)和一種非臨時(shí)計(jì)算機(jī)可讀介質(zhì)。
【背景技術(shù)】
[0002]用于存儲系統(tǒng)的一個(gè)重要性能度量是與檢索存儲在存儲系統(tǒng)中的數(shù)據(jù)有關(guān)的延遲。存儲系統(tǒng)的性能隨著讀取延遲的減小而改善。如果存儲系統(tǒng)能夠可靠地從存儲介質(zhì)中檢索無錯誤數(shù)據(jù),則可以減小用于存儲系統(tǒng)的讀取延遲。當(dāng)未檢索到無錯誤數(shù)據(jù)時(shí),存儲系統(tǒng)可執(zhí)行附加動作以便從檢索數(shù)據(jù)去除錯誤。例如,存儲系統(tǒng)可使用諸如糾錯碼(ECC)和/或RAID之類的糾錯機(jī)制來從檢索數(shù)據(jù)去除錯誤或者另外生成無錯誤數(shù)據(jù)。糾錯機(jī)制的使用導(dǎo)致讀取延遲的增加,其伴隨有相應(yīng)的性能下降。
【發(fā)明內(nèi)容】
[0003]總體上,在一方面,本發(fā)明涉及一種用于管理持久性存儲器的方法,該方法包括:選擇用于主動讀請求的頁,其中,該頁位于持久性存儲器中;向該頁發(fā)布主動讀請求;響應(yīng)于該主動讀請求而接收用于存儲在該頁上的數(shù)據(jù)的位錯誤值(BEV);獲得用于該頁的BEV閾值(T),其中,使用與該頁相關(guān)聯(lián)的編程/擦除循環(huán)值和存儲在該頁上的數(shù)據(jù)的保持時(shí)間來確定T ;進(jìn)行BEV大于T的第一確定;基于該第一確定:識別m-頁,其中,m-頁是一組頁,其中,該頁在該一組頁中;將該m-頁設(shè)定為對未來操作不可分配。
[0004]總體上,在一方面,本發(fā)明涉及一種系統(tǒng),該系統(tǒng)包括:包括存儲模塊控制器和持久性存儲器的存儲模塊;以及被操作連接到存儲模塊和客戶端的控制模塊,其中,該控制模塊執(zhí)行至少以下步驟:選擇用于主動讀請求的頁,其中,該頁位于持久性存儲器中;向該頁發(fā)布主動讀請求;響應(yīng)于該主動讀請求而接收用于存儲在該頁上的數(shù)據(jù)的位錯誤值(BEV);獲得用于該頁的BEV閾值(T),其中,使用與該頁相關(guān)聯(lián)的編程/擦除循環(huán)值和存儲在該頁上的數(shù)據(jù)的保持時(shí)間來確定T ;進(jìn)行BEV大于T的第一確定;基于該第一確定:識別m-頁,其中,m-頁是一組頁,其中,該頁在該一組頁中;以及將該m-頁設(shè)定為對未來操作不可分配。
[0005]總體上,在一方面,本發(fā)明涉及一種包括計(jì)算機(jī)可讀程序代碼的非臨時(shí)計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀程序代碼在被計(jì)算機(jī)處理器執(zhí)行時(shí)使得計(jì)算機(jī)處理器能夠:選擇用于主動讀請求的頁,其中,該頁位于持久性存儲器中;向該頁發(fā)布主動讀請求;響應(yīng)于該主動讀請求而接收用于存儲在該頁上的數(shù)據(jù)的位錯誤值(BEV);獲得用于該頁的BEV閾值(T),其中,使用與該頁相關(guān)聯(lián)的編程/擦除循環(huán)值和存儲在該頁上的數(shù)據(jù)的保持時(shí)間來確定T ;進(jìn)行BEV大于T的第一確定;基于該第一確定:識別m-頁,其中,m-頁是一組頁,其中,該頁在該一組頁中;以及將該m-頁設(shè)定為對未來操作不可分配。
[0006]根據(jù)以下描述和所附權(quán)利要求,本發(fā)明的其它方面將是顯而易見的。
【附圖說明】
[0007]圖1A— 1C示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的系統(tǒng)。
[0008]圖2示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的存儲設(shè)備。
[0009]圖3示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的存儲模塊。
[0010]圖4示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的各種部件之間的關(guān)系。
[0011]圖5示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的用于處理主動讀請求的方法。
[0012]圖6示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的用于處理主動讀請求的方法。
[0013]圖7A — D示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的示例。
【具體實(shí)施方式】
[0014]現(xiàn)在將參考附圖來詳細(xì)地描述本發(fā)明的特定實(shí)施方式。在本發(fā)明的實(shí)施方式的以下詳細(xì)描述中,闡述了許多特定細(xì)節(jié)以便提供本發(fā)明的更透徹理解。然而,對于本領(lǐng)域的技術(shù)人員而言將顯而易見的是可在沒有這些特定細(xì)節(jié)的情況下實(shí)施本發(fā)明。在其它情況下,并未詳細(xì)地描述眾所周知的特征以避免不必要地使本描述復(fù)雜化。
[0015]在圖1 一7D的以下描述中,在本發(fā)明的各種實(shí)施方式中,相對于附圖描述的任何部件可等價(jià)于相對于任何其它圖描述的一個(gè)或多個(gè)類似名稱的部件。為了簡便起見,將不會對每個(gè)圖的這些部件重復(fù)描述。因此,通過引用而結(jié)合每個(gè)圖的部件的每個(gè)實(shí)施方式并假定為可選地存在于具有一個(gè)或多個(gè)類似名稱的部件的每個(gè)圖內(nèi)。另外,根據(jù)本發(fā)明的各種實(shí)施方式,圖的部件的任何描述將被解釋為除相對于任何其它圖中的相應(yīng)類似名稱部件所述的實(shí)施方式之外、與之相結(jié)合或作為其替代可實(shí)現(xiàn)的可選實(shí)施方式。
[0016]一般地,本發(fā)明的實(shí)施方式涉及通過主動地識別固態(tài)存儲器中的頁來增加固態(tài)儲存器的利用率,對于該頁而言,存在先前存儲的數(shù)據(jù)在隨后被請求時(shí)將不可檢索的高可能性。換言之,本發(fā)明的實(shí)施方式主動地識別將來可能出故障的頁,其中,此類故障很可能觸發(fā)諸如RAID(廉價(jià)磁盤冗余陳列)方案之類的糾錯機(jī)制的執(zhí)行。本發(fā)明的實(shí)施方式基于用于主動讀取頁上的數(shù)據(jù)的位錯誤值(BEV)是否大于閾值(T)來主動地識別很可能出故障的頁,其中,T取決于頁的P/E循環(huán)值(p)和主動讀取頁上的數(shù)據(jù)的保持時(shí)間(t)。主動地識別在將來具有高故障可能性的頁的能力導(dǎo)致限制此類頁存儲數(shù)據(jù),并且因此限制了調(diào)用糾錯機(jī)制以讀取已存儲數(shù)據(jù)的需要。由于RAID(或其它糾錯機(jī)制)被調(diào)用的可能性降低,所以系統(tǒng)的性能增加(即,存在用于對讀請求提供服務(wù)的較低讀延遲)。
[0017]以下對用于實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的一個(gè)或多個(gè)系統(tǒng)和方法進(jìn)行描述。
[0018]圖1A— 1C示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的系統(tǒng)。參考圖1A,該系統(tǒng)包括被操作連接到存儲設(shè)備102的一個(gè)或多個(gè)客戶端(客戶端A 100A、客戶端Μ 100Μ)。
[0019]在本發(fā)明的一個(gè)實(shí)施方式中,客戶端100Α、100Μ對應(yīng)于包括向存儲設(shè)備102發(fā)布讀請求和/或向存儲設(shè)備102發(fā)布寫請求的功能的任何物理系統(tǒng)。雖然在圖1Α中未示出,但客戶端100Α、100Μ中的每一個(gè)可包括客戶端處理器(未示出)、客戶端存儲器(未示出)以及實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式所需的任何其它軟件和/或硬件。
[0020]在本發(fā)明的一個(gè)實(shí)施方式中,客戶端100Α — 100Μ被配置為執(zhí)行包括文件系統(tǒng)的操作系統(tǒng)(os)。文件系統(tǒng)提供了用于從存儲設(shè)備102進(jìn)行文件的存儲和檢索的機(jī)制。更具體地,文件系統(tǒng)包括執(zhí)行所需動作以向存儲設(shè)備發(fā)布讀請求和寫請求的功能。文件系統(tǒng)還提供了編程界面以使得能夠創(chuàng)建和刪除文件、讀和寫文件、在文件內(nèi)執(zhí)行查找、創(chuàng)建和刪除目錄、管理目錄內(nèi)容等。另外,文件系統(tǒng)還提供了管理界面以創(chuàng)建和刪除文件系統(tǒng)。在本發(fā)明的一個(gè)實(shí)施方式中,為了訪問文件,操作系統(tǒng)(經(jīng)由文件系統(tǒng))通常提供文件操作界面以打開、關(guān)閉、讀和寫每個(gè)文件內(nèi)的數(shù)據(jù)和/或操作相應(yīng)的元數(shù)據(jù)。
[0021]繼續(xù)圖1A的討論,在本發(fā)明的一個(gè)實(shí)施方式中,客戶端100A、100M被配置為使用以下協(xié)議中的一個(gè)或多個(gè)與存儲設(shè)備102通信:外圍部件互連(PCI)、快速PCI (PCIe)、擴(kuò)展PCI (PC1-X)、快速非易失性存儲器(NVMe)、快速PCI結(jié)構(gòu)上的快速非易失性存儲器(NVMe)、以太網(wǎng)結(jié)構(gòu)上的快速非易失性存儲器(NVMe)以及無限帶寬結(jié)構(gòu)上的快速非易失性存儲器(NVMe)。本領(lǐng)域的技術(shù)人員將認(rèn)識到本發(fā)明不限于上述協(xié)議。
[0022]在本發(fā)明的一個(gè)實(shí)施方式中,存儲設(shè)備102是一種包括易失性和持久性存儲器且被配置成為來自一個(gè)或多個(gè)客戶端100A、100M的讀請求和/或?qū)懻埱筇峁┓?wù)的系統(tǒng)。下面在圖2中描述存儲設(shè)備102的各種實(shí)施方式。
[0023]參考圖1B,圖1B示出了其中將客戶端100A、100M連接到以網(wǎng)狀配置(在圖1B中表示為存儲設(shè)備網(wǎng)格104)布置的多個(gè)存儲設(shè)備104A、104B、104C、104D的系統(tǒng)。如圖1B中所示,以完全連接的網(wǎng)狀配置示出了存儲設(shè)備網(wǎng)格104—亦即,存儲設(shè)備網(wǎng)格104中的每個(gè)存儲設(shè)備104A、104B、104C、104D被直接地連接到存儲設(shè)備網(wǎng)格104中的每個(gè)其它存儲設(shè)備104A、104B、104C、104D。在本發(fā)明的一個(gè)實(shí)施方式中,可將客戶端100A、100M中的每一個(gè)直接地連接到存儲設(shè)備網(wǎng)格104中的一個(gè)或多個(gè)存儲設(shè)備104A、104B、104C、104D。本領(lǐng)域的技術(shù)人員將認(rèn)識到在不脫離本發(fā)明的情況下可使用其它網(wǎng)狀配置(例如,部分連接網(wǎng)格)來實(shí)現(xiàn)存儲設(shè)備網(wǎng)格。
[0024]參考圖1C,圖1C示出了其中將客戶端100A、100M連接到以扇出配置布置的多個(gè)存儲設(shè)備104A、104B、104C、104D的系統(tǒng)。在此配置中,每個(gè)客戶端100A、100M被連接到存儲設(shè)備104A、104B、104C、104D中的一個(gè)或多個(gè);然而,在單獨(dú)存儲設(shè)備104A、104B、104C、104D
之間不存在通信。
[0025]本領(lǐng)域的技術(shù)人員將認(rèn)識到雖然圖1A — 1C示出了被連接到有限數(shù)目的客戶端的存儲設(shè)備,但在不脫離本發(fā)明的情況下可將存儲設(shè)備連接到任何數(shù)目的客戶端。本領(lǐng)域的技術(shù)人員將認(rèn)識到雖然圖1A — 1C示出了各種系統(tǒng)配置,但本發(fā)明不限于上述系統(tǒng)配置。此夕卜,本領(lǐng)域的技術(shù)人員將認(rèn)識到在不脫離本發(fā)明的情況下可使用任何其它物理連接將客戶端(無論系統(tǒng)的配置如何)連接到(一個(gè)或多個(gè))存儲設(shè)備。
[0026]圖2示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的存儲設(shè)備的實(shí)施方式。該存儲設(shè)備包括控制模塊200和存儲模塊組202。下面描述這些部件中的每一個(gè)。一般地,控制模塊200被配置成管理來自一個(gè)或多個(gè)客戶端的讀和寫請求的服務(wù)。特別地,控制模塊被配置成經(jīng)由Ι0Μ(下面討論)從一個(gè)或多個(gè)客戶端接收請求、處理請求(其可包括向存儲模塊發(fā)送請求)、并在該請求已被提供服務(wù)之后向客戶端提供響應(yīng)。另外,控制模塊200包括生成并發(fā)布主動讀請求且還執(zhí)行各種垃圾收集操作的功能。下面參考圖5和6來描述控制模塊關(guān)于為讀請求提供服務(wù)的操作。下面包