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