本申請要求2016年03月18日提交美國專利商標(biāo)局、申請?zhí)枮?5/074961、發(fā)明名稱為“methodandsystemforusingdowngradedflashdieforcacheapplications”的美國發(fā)明專利申請的優(yōu)先權(quán),其全部內(nèi)容通過引用結(jié)合在本申請中。
本發(fā)明的實施方式總體上涉及閃存領(lǐng)域。更具體地,本發(fā)明的實施方式涉及使用降級閃存裸片作為高速緩存的系統(tǒng)和方法。
背景技術(shù):
在數(shù)據(jù)存儲領(lǐng)域中,越來越需要降低實現(xiàn)高速緩存存儲解決方案的成本,以更好地滿足現(xiàn)代超大規(guī)模數(shù)據(jù)中心對高速緩存的巨大需求。分層存儲解決方案試圖在現(xiàn)代數(shù)據(jù)中心的性能需求和數(shù)據(jù)保留要求之間達到平衡。例如,一個示例性分層存儲路徑將數(shù)據(jù)從cpu核心傳輸?shù)絚pu本身上的各種級別的高速緩存,然后傳輸?shù)絛imm存儲器,然后傳輸?shù)接脖P驅(qū)動器用于長期存儲。當(dāng)系統(tǒng)關(guān)機時,存儲在dimm和cpu緩存的易失性存儲器中的所有數(shù)據(jù)都將丟失。因此,對于該架構(gòu),數(shù)據(jù)總是被整合并存儲在硬盤驅(qū)動器中以永久/非易失性存儲。對于上游和下游傳輸?shù)臄?shù)據(jù),從永久存儲器獲取數(shù)據(jù),緩存在存儲器中,由cpu更新/處理,并使用存儲器緩沖器寫回到永久存儲器。
雖然傳統(tǒng)的分層存儲解決方案提供相對較高的性能和數(shù)據(jù)保留,但是隨后的創(chuàng)新進一步增加了使用多層高速緩存來橋接存儲設(shè)備之間的間隙的分層存儲解決方案的性能(例如,吞吐量、iops、延遲等)。最近,閃存ssd被插入在高速低容量ram和低速高容量硬盤驅(qū)動器之間,以進一步增強這些系統(tǒng)的性能。閃存ssd相比傳統(tǒng)hdd提供更小的占用空間、更低的能耗、更高的性能和更低的故障率。
閃存ssd設(shè)備通常被設(shè)計用于通用存儲、提供優(yōu)異的輸入/輸出(io)性能和多年的數(shù)據(jù)保持。然而,當(dāng)用作高速緩存設(shè)備時,在將數(shù)據(jù)寫入盤以用于永久存儲之前,數(shù)據(jù)在存儲設(shè)備上僅僅保持短暫的時間段。因此,對于緩存設(shè)備,傳統(tǒng)的數(shù)據(jù)保留要求是不必要的。因此,通用閃存ssd對于用作緩存設(shè)備而言大材小用并且價格過高。數(shù)據(jù)中心通常使用大量的閃存ssd,從而導(dǎo)致不必要的高基礎(chǔ)設(shè)施成本。需要一種具有高級性能,同時降低基礎(chǔ)設(shè)施成本以更好地滿足現(xiàn)代超大規(guī)模數(shù)據(jù)中心的需要的高速緩存設(shè)備。
技術(shù)實現(xiàn)要素:
本文公開了一種識別和使用適合于ssd高速緩存中的ssd高速緩存應(yīng)用的低成本不適格(un-qualified)裸片的方法和裝置。本發(fā)明的實施方式使得能夠生產(chǎn)具有足夠的數(shù)據(jù)保留和耐久性的高速緩存裸片ssd以滿足現(xiàn)代數(shù)據(jù)中心的需求,同時顯著降低其基礎(chǔ)設(shè)施成本。
根據(jù)一個實施方式,公開了一種識別和使用適合于ssd高速緩存中的ssd高速緩存應(yīng)用的低成本不適格裸片的方法。該方法包括從ssd高速緩存應(yīng)用提取應(yīng)用數(shù)據(jù),基于應(yīng)用數(shù)據(jù)對ssd高速緩存應(yīng)用的行為建模以產(chǎn)生建模行為,表征第一不適格裸片以確定第一不適格裸片的至少一個量化屬性,以及相對于所述ssd高速緩存應(yīng)用的建模行為來測試所述第一不適格裸片的所述至少一個量化屬性,以確定所述不適格裸片是否適合在所述ssd高速緩存中使用。
根據(jù)一些實施方式,上述方法還包括重復(fù)提取、建模、表征和測試,直到識別出足夠數(shù)量的不適格裸片以構(gòu)造滿足ssd高速緩存的規(guī)定要求的ssd高速緩存應(yīng)用為止,并且封裝足夠數(shù)量的不適格裸片以形成集成電路。
根據(jù)一些實施方式,上述方法還包括使用所述集成電路構(gòu)建高速緩存裸片ssd,針對ssd高速緩存應(yīng)用的建模行為的要求來測試高速緩存裸片ssd,以及生成緩存裸片ssd。
根據(jù)一些其它實施方式,上述方法還包括使用對應(yīng)的設(shè)備管理固件和軟件來控制和監(jiān)視ssd高速緩存應(yīng)用的高速緩存裸片ssd。
根據(jù)另一實施方式,公開了一種固態(tài)驅(qū)動器。所述固態(tài)驅(qū)動器包括用于存儲數(shù)據(jù)位的多個不適格裸片和ssd控制器。ssd控制器包括:用于向多個不適格裸片發(fā)送數(shù)據(jù)和從多個不適格裸片接收數(shù)據(jù)的第一接口;用于向cpu發(fā)送數(shù)據(jù)和從cpu接收數(shù)據(jù)的第二接口;連接到第一和第二接口的第一多個模塊,用于壓縮、加密和ecc編碼數(shù)據(jù)以便使用多個不適格裸片;以及連接到所述第一接口和第二接口的第二多個模塊,用于ecc解碼、解密和解壓縮從所述多個不適格裸片獲取的數(shù)據(jù)。
附圖說明
并入本說明書中并且形成本說明書的一部分的附圖示出了本發(fā)明的實施方式,并且與說明書一起用于解釋本發(fā)明的原理:
圖1是分層存儲解決方案的示例性數(shù)據(jù)路徑的框圖。
圖2是根據(jù)本發(fā)明的實施方式描繪的示例性高速緩存裸片ssd架構(gòu)的框圖。
圖3是根據(jù)本發(fā)明的實施方式示出的示例性閃存編程機制的圖。
圖4是描繪根據(jù)本發(fā)明實施方式的包括用于閃存單元的編程狀態(tài)和擦除狀態(tài)的示例性閾值高斯分布的一系列圖。
圖5是描繪根據(jù)本發(fā)明的實施方式的用于測試和表征用作高速緩存裸片的黑片的方法的示例性系列的計算機實現(xiàn)的步驟的流程圖。
具體實施方式
現(xiàn)在將詳細參考幾個實施方式。雖然將結(jié)合替代實施方式來描述主題,但是將理解的是,它們不旨在將所要求保護的主題限于這些實施方式。相反,所要求保護的主題旨在覆蓋可以包括在由所附權(quán)利要求限定的所要求保護的主題的精神和范圍內(nèi)的替代,修改和等同物。
此外,在以下詳細描述中,闡述了許多具體細節(jié)以便提供對所要求保護的主題的透徹理解。然而,本領(lǐng)域技術(shù)人員將認識到,可以在沒有這些具體細節(jié)或其等同物的情況下實施實施方式。在其他情況下,沒有詳細描述公知的方法、過程、組件和電路,以免不必要地模糊本主題的方面和特征。
下面的詳細描述的部分是就方法來呈現(xiàn)和討論的。盡管在描述該方法的操作的本文(例如,圖5)中公開了步驟和其排序,但這樣的步驟和排序是示例性的。實施方式非常適合于執(zhí)行本文的附圖的流程圖中所述的步驟的各種其它步驟或變化,并且以不同于本文所描繪和描述的順序執(zhí)行。
根據(jù)可在計算機存儲器上執(zhí)行的數(shù)據(jù)位的操作的過程、步驟、邏輯塊、處理和其他符號表示來呈現(xiàn)詳細描述的一些部分。這些描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用來將他們的工作的實質(zhì)最有效地傳達給本領(lǐng)域的其他技術(shù)人員的手段。本文中,過程、計算機執(zhí)行的步驟、邏輯塊、過程等通常被認為是導(dǎo)致期望結(jié)果的步驟或指令的自相一致的序列。這些步驟是需要物理量的物理操縱的那些步驟。通常,盡管不是必須的,這些量采取能夠在計算機系統(tǒng)中存儲、傳送、組合、比較和以其他方式操縱的電或磁信號的形式。有時,主要出于公共使用的原因,將這些信號稱為比特、值、元素、符號、字符、項、數(shù)字等等已經(jīng)被證明是方便的。
然而,應(yīng)當(dāng)記住,所有這些和類似的術(shù)語將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅是應(yīng)用于這些量的方便的標(biāo)記。除非特別聲明,否則從以下討論中顯而易見,應(yīng)當(dāng)理解,在使用諸如“訪問”、“寫入”、“包括”、“存儲”、“傳送”、“遍歷”、“關(guān)聯(lián)”、“識別”等是指計算機系統(tǒng)或類似的電子計算設(shè)備的動作和過程,其將計算機系統(tǒng)的寄存器和存儲器內(nèi)表示為物理(電子)量的數(shù)據(jù)操縱并變換成類似地表示為物理計算機系統(tǒng)存儲器或寄存器或其他這樣的信息存儲,傳輸或顯示設(shè)備內(nèi)的量。
用于閃存ssd緩存應(yīng)用的降級閃存模塊
本發(fā)明的實施方式描述了用于使用降級閃存裸片(稱為“黑片”)來實現(xiàn)閃存ssd高速緩存設(shè)備以降低在高容量數(shù)據(jù)存儲系統(tǒng)中實現(xiàn)閃存ssd高速緩存的成本的系統(tǒng)和方法。這些閃存ssd緩存設(shè)備提供足夠的數(shù)據(jù)保留和耐久性能,以滿足現(xiàn)代數(shù)據(jù)中心的需求,同時大幅降低了基礎(chǔ)設(shè)施成本。
本文所描述的降級裸片是從作為適格裸片的同一個晶片上切割的不適格的快閃裸片。當(dāng)從晶片上切割裸片時,測試每個裸片以確定其是否滿足適格裸片的所有要求。不滿足這些要求的裸片是通常存在一個或多個缺陷的不適格裸片。本發(fā)明的實施方式有利地使用不滿足適格裸片的數(shù)據(jù)保留要求的較不昂貴的不適格裸片。例如,如果裸片不能存儲至少12個月的寫入數(shù)據(jù),則這種裸片會被分類為不適格。當(dāng)實現(xiàn)閃存ssd高速緩存設(shè)備時,這些數(shù)據(jù)保留要求可以被放棄和/或放寬到不適格的裸片可接受使用的點。
圖1描繪了根據(jù)本發(fā)明實施方式的分層存儲解決方案的示例性數(shù)據(jù)路徑。存儲路徑101-103包括用于執(zhí)行邏輯操作并在cpu的一個或多個高速緩存中臨時存儲少量數(shù)據(jù)的cpu110。數(shù)據(jù)經(jīng)cpu更新/處理之后,被發(fā)送到用于高性能、低容量、易失性存儲器的ram112。分層存儲路徑101還包括硬盤(hdd)114和用于存檔存儲的磁帶存儲設(shè)備(tape)116。不管數(shù)據(jù)類型或iops要求如何,活動數(shù)據(jù)總是經(jīng)由盤114被處理并且訪問。很少訪問的冷數(shù)據(jù)通常被移動到磁帶存儲設(shè)備116,并且在需要時移動到硬盤驅(qū)動器114。
存儲路徑102表示更高級的存儲解決方案,其包括閃存ssd124以橋接高性能低容量ram122和低性能高容量hdd126之間的間隙。在該配置中,閃存ssd臨時保持數(shù)據(jù),并且數(shù)據(jù)最終被刷新到hdd。隨著閃存ssd的價格下降,這種類型的存儲解決方案由于例如增強的吞吐量、iops和增強的容量而具有吸引力。最近,諸如非易失性雙列直插存儲器模塊(nvdimm)134的新技術(shù)已經(jīng)成熟用于企業(yè)應(yīng)用以進一步增強性能。存儲路徑103包括位于ram132和閃存ssd136之間的nvdimm134,并且進一步增強了存儲路徑的性能。
圖2描繪了根據(jù)本發(fā)明實施方式的示例性高速緩存裸片ssd架構(gòu)200。cpu214將數(shù)據(jù)發(fā)送到ssd201以進行存儲,并使用主機接口206接收數(shù)據(jù)進行更新/處理。主機接口206可包括例如串行器/解串器(serdes)接口或用于pciexpress規(guī)范(pipe)接口的物理接口。盡管與多電平單元(mlc)閃存相比,三電平單元(tlc)閃存提供了低得多的p/e周期,但是ssd控制器213將ssd性能增強到類似于mlc閃存的水平。包括閃存(例如,nand閃存)的一系列黑片202和203用于使用開放式nand閃存接口(onfi)/toggle接口204存儲由ssd控制器213寫入的數(shù)據(jù)位。為了確保在使用不適格裸片時的服務(wù)質(zhì)量,使用具有可調(diào)整的糾錯能力的靈活的ecc引擎。由主機接口206接收的數(shù)據(jù)由壓縮模塊209壓縮,由加密模塊208加密,并且由ecc編碼模塊207使用糾錯碼(ecc)進行編碼。由于相比使用適格裸片構(gòu)建的ssd緩存可能有更高的錯誤率,糾錯能力需要得到相應(yīng)增強。靈活的管理系統(tǒng)用于在編碼器接近容量時,實時地調(diào)整ecc編碼模塊207。ecc編碼模塊207可以通過降低編碼器速率(例如,一次編碼較少的比特)或使用更多的冗余比特來提供更強的糾錯。高速緩存裸片ssd架構(gòu)200還包括閃存轉(zhuǎn)換層215。根據(jù)一些實施方式,基于觀察到的實時校正的位數(shù)來調(diào)整ecc編碼模塊207。
然后將數(shù)據(jù)發(fā)送到nand接口204以使用黑片進行存儲。ssd控制器213還包括用于處理存儲在黑片202和203上的數(shù)據(jù)的一系列模塊。ecc解碼器210從nand接口204接收編碼數(shù)據(jù)并解碼ecc編碼數(shù)據(jù)。解碼數(shù)據(jù)由解密模塊211解密并由解壓縮模塊213解壓縮。然后將解壓縮的數(shù)據(jù)傳遞到主機接口206以供cpu214獲取。
ssd控制器213還可以包括數(shù)據(jù)刷新模塊,用于在被觸發(fā)時將數(shù)據(jù)從緩存裸片ssd復(fù)制到另一個存儲設(shè)備以防止數(shù)據(jù)丟失。根據(jù)本發(fā)明的一些實施方式,為高速緩存裸片ssd定義了超時值。當(dāng)數(shù)據(jù)被存儲在高速緩存裸片ssd上的時間長于該超時時間時,數(shù)據(jù)被自動刷新到硬盤驅(qū)動器或其他歸檔存儲設(shè)備。根據(jù)一些實施方式,為高速緩存裸片ssd定義了水印或閾值。當(dāng)存儲在高速緩存裸片ssd上的總數(shù)據(jù)達到水印(例如,總?cè)萘康?0%)時,數(shù)據(jù)被自動刷新到硬盤驅(qū)動器或其他歸檔存儲設(shè)備。
圖3示出了根據(jù)本發(fā)明的實施方式的示例性閃存編程機制隨時間的圖。使用編程和驗證過程來將數(shù)據(jù)寫入高速緩存裸片ssd,其中施加一次編程電壓vpp,并且單元被讀取以確定閾值電壓是否高于預(yù)設(shè)電壓。如果閾值電壓低于預(yù)設(shè)電壓,則編程繼續(xù),直到閾值電壓被確定為高于預(yù)設(shè)電壓為止。增大的δvpp導(dǎo)致了閾值電壓的更寬分布。實現(xiàn)性能增強以定制專門用作高速緩存的緩存裸片ssd。這減少了編程和驗證周期的數(shù)量,并且還在位被編程到單元中時減輕了高速緩存裸片ssd的寫延遲。每次在nand單元的浮柵上施加電荷時,vpp的值都增加。當(dāng)每次寫入之后編程電壓vpp增大δvpp的增量時,減少編程和驗證周期的數(shù)量以減輕寫入延遲。
圖4描繪了根據(jù)本發(fā)明實施方式的描繪用于觸發(fā)編程狀態(tài)和擦除狀態(tài)(“er”)的示例性閾值高斯分布的一系列圖。er范圍中的閾值電壓觸發(fā)了擦除狀態(tài),并且使得位值1被存儲在單元中。閾值分布401表示在通用ssd中使用的每單元2位存儲的示例性適格mlcnand裸片。閾值分布402表示具有標(biāo)準噪聲容限的每單元1位存儲的適格裸片。閾值分布403表示具有增加的噪聲容限404的每個單元1比特存儲的不適格芯片。利用這種較寬的閾值分布,使得比特值0被存儲的編程狀態(tài)進一步沿vth軸定位。噪聲容限404應(yīng)該足夠大以在數(shù)據(jù)被保持在高速緩存裸片ssd中的短時間段內(nèi)應(yīng)對信噪比。通常,編程狀態(tài)和擦除狀態(tài)之間的較大間隙將降低預(yù)期的位錯誤率。測試高速緩存裸片以確保在由于過多噪聲而丟失數(shù)據(jù)之前可以從高速緩存裸片獲取數(shù)據(jù)。
圖5描繪了根據(jù)本發(fā)明實施方式的描繪用于測試和表征用作高速緩存裸片的黑片的方法500的一系列計算機實現(xiàn)步驟的流程圖。這種ssd和應(yīng)用開發(fā)方法形成了閉環(huán),并且可以用于迭代地執(zhí)行硬件和軟件優(yōu)化以提高效率。
在步驟s1,提取并分析在線應(yīng)用數(shù)據(jù)以對給定應(yīng)用的行為(例如,需要的數(shù)據(jù)保留,在數(shù)據(jù)被拷出之前的讀取數(shù)量,以及在多少有效數(shù)據(jù)被保持在當(dāng)寫入頁時的緩存ssd)進行建模從而進行遞歸建模。在步驟s2,提取黑片的特性并量化各種性質(zhì),例如但不限于數(shù)據(jù)保持、編程/擦除周期和溫度范圍。在步驟s3,基于特定應(yīng)用來針對預(yù)定的規(guī)則集測試量化的屬性,以驗證黑片(例如,確定黑片是否適合在ssd高速緩存中使用)。滿足預(yù)定規(guī)則集合的黑片可以用作高速緩存裸片。在步驟s4,多個高速緩存裸片一起被封裝在封裝中以形成集成電路(例如,nand快閃芯片)。在步驟s5,使用該集成電路來構(gòu)造高速緩存裸片ssd。在步驟s6,使用一系列程序徹底測試高速緩存裸片ssd,并且生成高速緩存裸片ssd的規(guī)范。在步驟s7,調(diào)整應(yīng)用以確保與高速緩存裸片ssd的兼容性,并且使用對應(yīng)的設(shè)備管理固件和軟件來控制和監(jiān)視高速緩存裸片ssd。
可以重復(fù)執(zhí)行方法500的步驟s1和s7以遞歸地優(yōu)化硬件和軟件并且確保無縫的數(shù)據(jù)路徑。可以重復(fù)整個過程s1-s7,直到滿足應(yīng)用要求。
至此描述了本發(fā)明的實施方式。雖然已經(jīng)在特定實施方式中描述了本發(fā)明,但是應(yīng)當(dāng)理解,本發(fā)明不應(yīng)被解釋為受這些實施方式的限制,而是根據(jù)所附權(quán)利要求來解釋。