專利名稱:用于改進固態(tài)驅(qū)動器的性能和/或可靠性的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及固態(tài)驅(qū)動器,尤其但并不排他地涉及用于改進固態(tài)驅(qū)動器的性能和/或可靠性的方法和系統(tǒng)。背景描述差錯保護機制常常被用于確保固態(tài)驅(qū)動器中存儲的數(shù)據(jù)的完整性。圖IA例示了存儲在現(xiàn)有技術(shù)NAND閃存頁110中的數(shù)據(jù)的框
圖100?,F(xiàn)有技術(shù)NAND閃存頁110具有由糾錯碼O (ECC O)校驗字節(jié)120所保護的扇區(qū)O 112、扇區(qū)I 114、扇區(qū)2 116、以及扇區(qū)3118。類似地,ECC I校驗字節(jié)130保護現(xiàn)有技術(shù)NAND閃存頁110的扇區(qū)4 122、扇區(qū)5 124、扇區(qū)6 126、和扇區(qū)7 128。取決于每個扇區(qū)中的差錯的嚴重性,ECC O校驗字節(jié)120和ECC I校驗字節(jié)130 可便于對扇區(qū)中的差錯的檢測,并且允許對扇區(qū)中差錯的數(shù)據(jù)恢復。圖IB例示了存儲在現(xiàn)有技術(shù)NAND閃存頁160中的數(shù)據(jù)的框圖150。現(xiàn)有技術(shù)NAND閃存頁160具有由ECC校驗字節(jié)170所保護的扇區(qū)0162、扇區(qū)1164、扇區(qū)2166、以及扇區(qū)3168。圖IC例示了存儲在現(xiàn)有技術(shù)NAND閃存頁190中的碼字的框圖180?,F(xiàn)有技術(shù)NAND閃存頁190具有分別由ECC0-3校驗字節(jié)193、195、197和199所保護的四個碼字(CW) 1-4、192、194、196和198。附圖簡述本發(fā)明的特征和優(yōu)點根據(jù)本主題的以下詳細描述將變得顯而易見,其中圖IA例示了存儲在現(xiàn)有技術(shù)NAND閃存頁中的數(shù)據(jù)的框圖;圖IB例示了存儲在現(xiàn)有技術(shù)NAND閃存頁中的數(shù)據(jù)的框圖;圖IC例示了存儲在現(xiàn)有技術(shù)NAND閃存頁中的碼字的框圖;圖2例示了根據(jù)本發(fā)明的一個實施例的固態(tài)驅(qū)動器的框圖;圖2例示了根據(jù)本發(fā)明的一個實施例的控制器的框圖;圖3B例示了根據(jù)本發(fā)明的一個實施例的控制器的框圖;圖4例示了根據(jù)本發(fā)明的一個實施例的存儲在NAND閃存中的經(jīng)壓縮數(shù)據(jù)的框圖;圖5例示了根據(jù)本發(fā)明的一個實施例的存儲在NAND閃存中的經(jīng)壓縮數(shù)據(jù)的框圖;圖6例示了根據(jù)本發(fā)明的一個實施例的經(jīng)壓縮扇區(qū)和已知數(shù)據(jù)暫記區(qū)的框圖;圖7例示了根據(jù)本發(fā)明的一個實施例的兩個NAND閃存頁的框圖;圖8例示了根據(jù)本發(fā)明的一個實施例的NAND閃存頁的框圖;圖9例示了根據(jù)本發(fā)明的一個實施例的NAND閃存頁的框圖;以及圖10例示了根據(jù)本發(fā)明的一個實施例的用于實現(xiàn)本文中公開的方法的系統(tǒng)。
具體實施例方式本文中所描述的本發(fā)明的實施例通過示例而非限制地在附圖中示出。為說明的簡單和清楚起見,在附圖中示出的元件不一定按比例繪制。例如,為清楚起見,某些元件的尺寸可能相對于其它元件被放大。更進一步地,在認為適當時,附圖標記在附圖中被重復以指示相應(yīng)或相似要素。在本說明書中對本發(fā)明的“一個實施例”或“實施例”的引用意味著結(jié)合該實施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。在本說明書各處出現(xiàn)的短語“在一個實施例中”并不一定均指代同一實施例。糾錯或校正碼(ECC)允許檢查正被讀取或傳送的數(shù)據(jù)的差錯并在有需要的情況下對其進行校正。ECC校驗字節(jié)是基于允許檢測和校正數(shù)據(jù)的ECC算法所計算的比特序列。在本發(fā)明的一個實施例中,碼字指的是有效載荷數(shù)據(jù)和ECC校驗字節(jié)的組合。數(shù)據(jù)的數(shù)據(jù)組塊是在每一次操作中被讀取或?qū)懭氲臄?shù)據(jù)塊或部分。本發(fā)明的實施例提供了用于改進固態(tài)驅(qū)動器(SSD)的性能和/或可靠性的方法和系統(tǒng)。在本發(fā)明的一個實施例中,SSD具有用于壓縮將被存儲在SSD中的數(shù)據(jù)塊以及確定將被存儲在SSD中的數(shù)據(jù)塊是否被壓縮到低于一閾值之下的邏輯。如果無法將數(shù)據(jù)塊壓縮到低于閾值之下,則SSD在沒有進行任何壓縮的情況下存儲數(shù)據(jù)塊。如果能將數(shù)據(jù)塊壓縮到低于閾值,則SSD在SSD中存儲經(jīng)壓縮的數(shù)據(jù)塊。
在本發(fā)明的一個實施例中,SSD的性能關(guān)聯(lián)于為管理SSD而預(yù)留的超額存儲器量,并且通過壓縮數(shù)據(jù)塊而得到的額外空間被用來改進SSD的性能。在本發(fā)明的一個實施例中,超額存儲器量和/或通過壓縮數(shù)據(jù)塊而得到的額外空間不被報告并且不能為SSD的用戶所用。在本發(fā)明的一個實施例中,SSD使用但不限于NAND閃存模塊以及任何其他形式的存儲器存儲介質(zhì)。在本發(fā)明的一個實施例中,SSD至少部分地符合開放NAND閃速接口(ONFI)協(xié)議。在本發(fā)明的一個實施例中,SSD具有用于動態(tài)地調(diào)節(jié)或選擇被存儲在SSD中的數(shù)據(jù)的糾錯碼(ECC)的強度的邏輯。在本發(fā)明的一個實施例中,SSD通過壓縮數(shù)據(jù)并追加或添加已知數(shù)據(jù)暫記區(qū)來調(diào)節(jié)數(shù)據(jù)的ECC的強度。確定或計算經(jīng)壓縮的數(shù)據(jù)和已知數(shù)據(jù)暫記區(qū)的ECC,并且除經(jīng)壓縮的數(shù)據(jù)和已知數(shù)據(jù)暫記區(qū)之外,還存儲ECC校驗字節(jié)。已知數(shù)據(jù)暫記區(qū)具有被預(yù)設(shè)或預(yù)定的數(shù)據(jù)或信息序列,以便于對經(jīng)壓縮的數(shù)據(jù)中的差錯的恢復。在本發(fā)明的另一實施例中,數(shù)據(jù)被劃分或分割成數(shù)個碼字或數(shù)據(jù)組塊。在本發(fā)明的一個實施例中,SSD選擇碼字中的一個并對除所選碼字之外的所有碼字執(zhí)行異或(XOR)操作,以獲得XOR碼字。SSD用XOR碼字替代所選碼字。在方面的一個實施例中,SSD將XOR碼字和其他碼字存儲在單個存儲器頁中。這允許在單個存儲器頁里的任何一個碼字中存在差錯的情況下執(zhí)行頁內(nèi)恢復。圖2例示了根據(jù)本發(fā)明的一個實施例的SSD 202的框圖200。SSD 102具有與主機接口模塊210、緩沖器220、存儲器模塊0240、存儲器模塊I 242、存儲器模塊2 224、以及存儲器模塊3 246相耦合的控制器230。在本發(fā)明的一個實施例中,主機接口模塊210提供用于與主機設(shè)備或系統(tǒng)連接的接口。主機接口模塊210根據(jù)通信協(xié)議來操作,這些通信協(xié)議包括但不限于串行高級技術(shù)附件(SATA)修訂版I. x、SATA修訂版2. x、SATA修訂版3. X、以及任何其他類型的通信協(xié)議。在本發(fā)明的一個實施例中,緩沖器220向SSD 202提供臨時存儲。緩沖器220包括但不限于同步動態(tài)隨機訪問存儲器(SDRAM)、動態(tài)隨機存取存儲器(DRAM)、RAMBUS動態(tài)隨機存取存儲器(RDRAM)、靜態(tài)RAM (SRAM)、和/或任何其他類型的隨機存取存儲器設(shè)備。在本發(fā)明的一個實施例中,緩沖器220被集成在控制器230內(nèi)。
在本發(fā)明的一個實施例中,控制器230具有用于動態(tài)地調(diào)節(jié)或選擇被存儲在存儲器模塊0-3240、242、244和246中的數(shù)據(jù)的糾錯碼(ECC)的強度的邏輯。在本發(fā)明的一個實施例中,控制器230還具有用于壓縮要被存儲在存儲器模塊0-3 240、242、244和246中的數(shù)據(jù)塊以及確定要存儲在存儲器模塊0-3240、242、244和246中的數(shù)據(jù)塊是否被壓縮到低于一閾值的邏輯。在本發(fā)明的一個實施例中,存儲器模塊0-3 240、242、244和246包括但不限于NAND閃存等。圖2中示出的存儲器模塊的數(shù)目并不意味著進行限制,并且在發(fā)明的其他實施例中,可以多于或少于四個存儲器模塊。在本發(fā)明的實施例中,控制器230、主機接口模塊210和緩沖器220被集成到單個集成電路(ASIC)。圖3A例示了根據(jù)本發(fā)明的一個實施例的控制器230的框圖300。出于清楚例示起見,參照圖2討論圖3A。在本發(fā)明的一個實施例中,控制器230具有多路復用器320,該多路復用器具有來自原始數(shù)據(jù)305的輸入以及來自壓縮引擎310的輸入。數(shù)據(jù)選擇器325將原始數(shù)據(jù)305與壓縮引擎310之間的選擇信號提供給多路復用器320。多路復用器320的輸出與加密/加擾模塊330相耦合,而加密/加擾模塊330的輸出與存儲器控制器340相耦合。在本發(fā)明的一個實施例中,存儲器控制器與存儲器模塊0-3 240、242、244和246相耦合。在本發(fā)明的一個實施例中,壓縮引擎310能夠壓縮來自主機接口模塊210和/或緩沖器220的原始數(shù)據(jù)305。當原始數(shù)據(jù)305到達時,壓縮引擎310壓縮每個原始數(shù)據(jù)塊305。當原始數(shù)據(jù)塊305被確定為是可壓縮到低于特定閾值時,壓縮引擎310通知數(shù)據(jù)選擇器325向多路復用器320發(fā)送信號以選擇來自壓縮引擎310的輸入,以接收被確定為可壓縮到低于特定閾值的經(jīng)壓縮的原始數(shù)據(jù)塊305。當原始數(shù)據(jù)塊305被確定為不能被壓縮到低于特定閾值時,壓縮引擎310通知數(shù)據(jù)選擇器325向多路復用器320發(fā)送信號選擇來自原始數(shù)據(jù)305的輸入。在本發(fā)明的一個實施例中,僅當可達成的壓縮量超過閾值時,控制器230才允許原始數(shù)據(jù)305以經(jīng)壓縮的形·式或格式來存儲。原始數(shù)據(jù)塊305的大小被設(shè)置為,但不限于,512字節(jié)、I千字節(jié)、以及任何其他適于壓縮的合適的大小。閾值被設(shè)置為,但不限于,經(jīng)壓縮的數(shù)據(jù)塊的大小、數(shù)據(jù)塊的大小與經(jīng)壓縮的數(shù)據(jù)塊的大小的壓縮比、以及任何其他合適的壓縮指標。在本發(fā)明的一個實施例中,數(shù)據(jù)選擇器325和壓縮引擎310—起被組合到單個模塊中。在本發(fā)明的一個實施例中,壓縮引擎310是使用無損數(shù)據(jù)壓縮算法的基于硬件的壓縮引擎。這允許在解壓階段期間從經(jīng)壓縮的數(shù)據(jù)重構(gòu)源自原始數(shù)據(jù)305的最初數(shù)據(jù)。無損數(shù)據(jù)壓縮算法包括但不限于Lempel-Ziv (LZ)類無損數(shù)據(jù)壓縮算法——其包括但不限于LZ77、LZ78,、LZSS、LZW及其變體,以及任何其他現(xiàn)有已知或在將來發(fā)現(xiàn)的合適的通用無損數(shù)據(jù)壓縮算法。加密/加擾模塊330對來自多路復用器320的輸出進行加密和/或加擾,并將經(jīng)加密和/或經(jīng)加擾的輸出發(fā)送到存儲器控制器340。在本發(fā)明的一個實施例中,存儲器控制器340將經(jīng)加密和/或經(jīng)加擾的輸出寫入到存儲器模塊0-3、240、242、244和246。在本發(fā)明的另一實施例中,存儲器控制器240可任選地編組經(jīng)壓縮的原始數(shù)據(jù)塊,并將其寫入到存儲器模塊0-3 240、242、244和246作為連續(xù)存儲器頁。存儲器頁的大小被設(shè)置為,但不限于,4千字節(jié)或任何其他合適的大小。在本發(fā)明的另一實施例中,存儲器控制器340將經(jīng)壓縮的原始數(shù)據(jù)塊寫回到緩沖器220,并在隨后發(fā)出寫入命令或操作以將經(jīng)壓縮的原始數(shù)據(jù)塊從緩沖器220直接寫入存儲器模塊0-3 240,242,244和246。在本發(fā)明的一個實施例中,存儲器控制器340保持對被寫入到存儲器模塊0-3、240、242、244和246的每個數(shù)據(jù)塊的壓縮狀態(tài)的跟蹤。存儲器控制器340通過設(shè)置與特定數(shù)據(jù)塊相關(guān)聯(lián)的令牌以指示此特定數(shù)據(jù)塊是否已被壓縮來保持對此特定數(shù)據(jù)塊的壓縮狀態(tài)的跟蹤。令牌包括但不限于一個或多個比特。在本發(fā)明的一個實施例中,令牌具有32比特,這些比特被用來確定特定數(shù)據(jù)塊被壓縮還是未被壓縮。例如,在本發(fā)明的一個實施例中,存儲器控制器340對于被寫入存儲器模塊0-3、240、242、244和246中的每個數(shù)據(jù)塊,將比特寫入令牌中。令牌中與每個數(shù)據(jù)塊相關(guān)聯(lián)的比特在數(shù)據(jù)塊已被壓縮的情況下被設(shè)置為邏輯1,而在數(shù)據(jù)塊尚未被壓縮的情況下被設(shè)置為邏輯O。相關(guān)領(lǐng)域普通技術(shù)人員將容易理解,可使用其他跟蹤數(shù)據(jù)塊的壓縮狀態(tài)的方法,而不影響本發(fā)明的施行。 圖3B例示了根據(jù)本發(fā)明的一個實施例的控制器230的框圖360。出于清楚例示起見,參照圖2和3A來討論圖3B。在本發(fā)明的一個實施例中,控制器230具有從存儲器模塊0-3 240、242、244和246接收數(shù)據(jù)的存儲器控制器340。存儲器控制器340將接收到的數(shù)據(jù)發(fā)送到解密/解擾模塊370。解密/解擾模塊370對從存儲器控制器340接收到的數(shù)據(jù)進行解密和/或解擾,并將經(jīng)解密和/或經(jīng)解擾的數(shù)據(jù)發(fā)送到解壓縮引擎380和多路復用器390。在本發(fā)明的一個實施例中,解壓縮引擎380使用與壓縮引擎310相同的無損數(shù)據(jù)壓縮算法。數(shù)據(jù)選擇器385讀取與接收到的數(shù)據(jù)相關(guān)聯(lián)的令牌384,以確定接收到的數(shù)據(jù)是否已被壓縮。如果與接收到的數(shù)據(jù)相關(guān)聯(lián)的令牌指示接收到的數(shù)據(jù)已被壓縮,則數(shù)據(jù)選擇器385向解壓縮引擎380發(fā)送信號以對接收到的數(shù)據(jù)進行解壓縮,并向多路復用器390發(fā)送信號以選擇來自解壓引擎380的輸出作為要發(fā)送到主機接口模塊210和/或緩沖器220的數(shù)據(jù)。如果與接收到的數(shù)據(jù)相關(guān)聯(lián)的令牌指示接收到的數(shù)據(jù)還未被壓縮,則數(shù)據(jù)選擇器385向解壓縮引擎370發(fā)送信號以對接收到的數(shù)據(jù)進行解壓縮,并向多路復用器390發(fā)送信號以選擇來自解密/解擾引擎370的輸出作為要發(fā)送到主機接口模塊210和/或緩沖器220的數(shù)據(jù)。在本發(fā)明的一個實施例中,數(shù)據(jù)選擇器385和多路復用器390被集成到解壓縮引擎380。圖3A和3B中例示的控制器230的配置并不意味著進行限制,并且控制器230的配置的其他變形也可用,而不影響本發(fā)明的施行。圖4例示了根據(jù)本發(fā)明的一個實施例的存儲在NAND閃存中的經(jīng)壓縮數(shù)據(jù)的框圖400。出于清楚例示起見,參照圖I和3A來討論圖4。在本發(fā)明的一個實施例中,控制器230接收扇區(qū)0-7 112、114、116、118、122、124、126和128作為來自主機的要被存儲在存儲器模塊0-3 240、242、244和246中的原始數(shù)據(jù)305。在本發(fā)明的一個實施例中,壓縮引擎310讀取四個數(shù)據(jù)扇區(qū)作為單個數(shù)據(jù)塊,即,扇區(qū)0-3 112、114、116和118被讀取作為單個數(shù)據(jù)塊,而扇區(qū)4-7 122、124、126和128被讀取作為另一單個數(shù)據(jù)塊。壓縮引擎310對由扇區(qū)0-3 112、114、116和118所構(gòu)成的數(shù)據(jù)塊進行壓縮,并確定該數(shù)據(jù)塊是否被壓縮到低于一閾值。假定由扇區(qū)0-3 112、114、116和118所構(gòu)成的數(shù)據(jù)塊被壓縮到低于閾值,則數(shù)據(jù)選擇器325向多路復用器320發(fā)送信號以選擇經(jīng)壓縮的扇區(qū)0-3 112、114、116和118作為多路復用器320的輸入。在本發(fā)明的一個實施例中,經(jīng)壓縮的扇區(qū)0-3 112、114、116和118按需由加密/加擾模塊330來加密和/或加擾,并且存儲器控制器340將經(jīng)經(jīng)壓縮的扇區(qū)0-3 112、114、116和118寫入到NAND閃存作為經(jīng)壓縮的扇區(qū)0_3 412。存儲器控制器340使用ECC算法來計算經(jīng)壓縮的扇區(qū)0-3 412的ECC校驗字節(jié),并將計算出的ECC校驗字節(jié)作為ECC O校驗字節(jié)420寫入到NAND閃存中。ECC算法包括但不限于Hamming算法、Reed-Solomon算法、Bose-Chaudhuri-Hocquenghem (BCH)算法、低密度奇偶校驗(LDPC)碼等。經(jīng)壓縮的扇區(qū)4-7422和ECC I校驗字節(jié)430以與經(jīng)壓縮的扇區(qū)0-3 412和ECC O校驗字節(jié)420類似的方式來生成,并且在本文中無需進行描述。相關(guān)領(lǐng)域普通技術(shù)人員將容易理解經(jīng)壓縮的扇區(qū)4-7 422和ECC I校驗字節(jié)430是如何生成的。通過壓縮扇區(qū)0-3 112、114、116和118以及扇區(qū)4-7 122、124、126和128,需要較少的存儲器空間,并且額外節(jié)約區(qū)域432例示了 NAND閃存中節(jié)省的存儲器區(qū)域。在本發(fā) 明的一個實施例中,額外節(jié)約區(qū)域432可被用來提升SSD 202的性能。在本發(fā)明的一個實施例中,SSD 202的性能得以提升,因為其需要較少的功率來寫入經(jīng)壓縮的扇區(qū)0-3 412和扇區(qū)4-7422,并且SSD 202的存儲器帶寬得以增加。另外,SSD 202的性能得以提升,因為由于需要更少的存儲器區(qū)域來存儲經(jīng)壓縮的扇區(qū)0-3 412和扇區(qū)4-7422,SSD 202的寫入放大(write amplification)被減小,寫入放大即寫入數(shù)據(jù)塊的額外寫入操作。另外,SSD202的性能也得以提升,因為更大的混洗(shuffle)區(qū)變得可用且SSD202無需四處移動數(shù)據(jù)來創(chuàng)建混洗區(qū)以便能繼續(xù)寫入存儲器模塊0-3 240,242,244和246。圖5例示了根據(jù)本發(fā)明的一個實施例的存儲在NAND閃存中的經(jīng)壓縮數(shù)據(jù)的框圖500。在本發(fā)明的一個實施例中,存儲器控制器340使用ECC算法來計算經(jīng)壓縮的扇區(qū)0-3512和扇區(qū)4-7 522兩者的ECC校驗字節(jié),并將計算出的ECC校驗字節(jié)作為ECC校驗字節(jié)530寫入到NAND閃存中。額外節(jié)約區(qū)域540例示了在NAND閃存中節(jié)省的存儲器區(qū)域。在本發(fā)明的一個實施例中,存儲器控制器340將其他經(jīng)壓縮或未經(jīng)壓縮的扇區(qū)寫入額外節(jié)約區(qū)域540中。圖6例示了根據(jù)本發(fā)明的一個實施例的經(jīng)壓縮扇區(qū)0-3 612和已知數(shù)據(jù)暫記區(qū)622的框圖600。出于清楚例示起見,參照圖IB和3A來討論圖6。在本發(fā)明的一個實施例中,現(xiàn)有技術(shù)NAND閃存頁160的扇區(qū)0-3 162、164、166和168被壓縮并被存儲為經(jīng)壓縮的扇區(qū)0_3612。未經(jīng)壓縮的扇區(qū)0-3 610的大小例示了存儲現(xiàn)有技術(shù)NAND閃存頁160的扇區(qū)0_3162、164、166和168所需的大小。當現(xiàn)有技術(shù)NAND閃存頁160的扇區(qū)0_3 162、164、166和168被壓縮時,其創(chuàng)建額外節(jié)約區(qū)域620。在本發(fā)明的一個實施例中,用已知數(shù)據(jù)暫記區(qū)622填滿額外節(jié)約區(qū)域620。例如,在本發(fā)明的一個實施例中,已知數(shù)據(jù)暫記區(qū)622具有信息和/或數(shù)據(jù)的重復序列或模式。在本發(fā)明的一個實施例中,已知數(shù)據(jù)暫記區(qū)622是重復序列1011b。相關(guān)領(lǐng)域普通技術(shù)人員將容易理解,其他數(shù)據(jù)序列也可被用作已知數(shù)據(jù)暫記區(qū),而不影響本發(fā)明的施行。存儲器控制器340計算經(jīng)壓縮的扇區(qū)0-3 612和已知數(shù)據(jù)暫記區(qū)622的ECC,并添加計算出的ECC校驗字節(jié)作為ECC校驗字節(jié)630。在本發(fā)明的一個實施例中,通過將已知數(shù)據(jù)暫記區(qū)622追加或添加到經(jīng)壓縮的扇區(qū)0-3 612,ECC校驗字節(jié)630的強度大于現(xiàn)有技術(shù)NAND閃存頁160的ECC O校驗字節(jié)170的強度。這是因為ECC校驗字節(jié)630有效地保護經(jīng)壓縮的扇區(qū)0-3 612的較小的有效載荷大小,并且已知數(shù)據(jù)暫記區(qū)622允許通過檢查來修復差錯,并且因此ECC校驗字節(jié)630得以加強。在本發(fā)明的一個實施例中 ,SSD 202通過調(diào)節(jié)已知數(shù)據(jù)暫記區(qū)622的大小來動態(tài)地調(diào)節(jié)或選擇被存儲在存儲器模塊0-3 240、242、244和246中的數(shù)據(jù)的糾錯碼(ECC)的強度。已知數(shù)據(jù)暫記區(qū)622的大小是可變的,并且取決于所達成的扇區(qū)0-3 162、164、166和168的壓縮率。在本發(fā)明的一個實施例中,SSD 202基于與將存儲數(shù)據(jù)塊的存儲器模塊中的位置相關(guān)聯(lián)的比特差錯率(BER)來動態(tài)地調(diào)節(jié)數(shù)據(jù)塊的ECC的強度。存儲器模塊中的位置包括但不限于存儲器模塊中的字線(word line)以及存儲器模塊中的任何其他形式的存儲器分配或分布。例如,在本發(fā)明的一個實施例中,與字線相關(guān)聯(lián)的BER可能隨著存儲器模塊的字線的數(shù)量級而增加,即,與較低數(shù)量級的字線相比,較高數(shù)量級的字線可具有最差BER。在本發(fā)明的一個實施例中,SSD 202基于其中將存儲數(shù)據(jù)或碼字的任何存儲器位置的BER特性來主動地匹配任何數(shù)據(jù)或碼字的ECC強度。在本發(fā)明的一個實施例中,SSD 202將更強的ECC用于被存儲在更高數(shù)量級字線中的數(shù)據(jù),而將減弱的ECC用于被存儲在較低數(shù)量級字線中的數(shù)據(jù)。由此,在本發(fā)明的一個實施例中,SSD 202無需使用適用于最差BER情形的公共ECC強度,并且可使用靈活ECC選擇方案來增大SSD 202的可靠性。在本發(fā)明的另一實施例中,對存儲器模塊0-3 240、242、244和246的任何物理帶或區(qū)域所執(zhí)行的擦除操作的數(shù)目由SSD 202來跟蹤。在本發(fā)明的一個實施例中,SSD 202基于對其中將存儲數(shù)據(jù)或碼字的特定存儲器位置的擦除計數(shù)來主動地匹配任何數(shù)據(jù)或碼字的ECC強度。例如,在本發(fā)明的一個實施例中,SSD 202對將被存儲在具有較高擦除計數(shù)的存儲器位置中的數(shù)據(jù)使用較強ECC強度,而對將被存儲在具有較低擦除計數(shù)的存儲器位置中的數(shù)據(jù)使用較弱ECC強度。相關(guān)領(lǐng)域普通技術(shù)人員將容易理解,其他因素可用來確定數(shù)據(jù)的所需ECC強度,并且可使用這些其他因素而不影響本發(fā)明的施行。圖7例示了根據(jù)本發(fā)明的一個實施例的兩個NAND閃存頁710和760的框圖700。出于清楚例示起見,參照圖IB來討論圖7。NAND閃存頁710和760例示了通過壓縮現(xiàn)有技術(shù)NAND閃存頁160的扇區(qū)0-3 112、114、116和118所形成的經(jīng)壓縮的數(shù)據(jù)扇區(qū)0_3的兩個不同實施例。NAND閃存頁710例示了經(jīng)壓縮的數(shù)據(jù)扇區(qū)0-3被劃分為兩個碼字,即,經(jīng)壓縮的扇區(qū)0-3 (碼字I) 712和經(jīng)壓縮的扇區(qū)0-3 (碼字2) 722。在本發(fā)明的一個實施例中,碼字1712和碼字2722分別具有ECC O校驗字節(jié)720以及ECC I校驗字節(jié)730。在本發(fā)明的一個實施例中,與現(xiàn)有技術(shù)NAND閃存頁160相比,NAND閃存頁710具有更強的ECC強度。這時因為現(xiàn)有技術(shù)NAND閃存頁160的ECC校驗字節(jié)170保護具有更大比特數(shù)目的未經(jīng)壓縮的扇區(qū)O至3162、164、166和170。NAND閃存頁710的ECC O校驗字節(jié)720和ECC I校驗字節(jié)730中的每一個保護具有較小比特數(shù)目的未經(jīng)壓縮的數(shù)據(jù)扇區(qū)0-3的碼字。NAND閃存頁760例示了經(jīng)壓縮的數(shù)據(jù)扇區(qū)0_3被劃分為四個碼字,即,經(jīng)壓縮的扇區(qū)0-3 (碼字1)772、經(jīng)壓縮的扇區(qū)0-3 (碼字2)774、經(jīng)壓縮的扇區(qū)0-3 (碼字3)776和經(jīng)壓縮的扇區(qū)0-3 (碼字4)778。在本發(fā)明的一個實施例中,碼字1-4 772、774、776和778分別具有ECC 0-3校驗字節(jié)780、782、784和786。在本發(fā)明的一個實施例中,與現(xiàn)有技術(shù)NAND閃存頁160相比,NAND閃存頁760具有更強的ECC強度,因為ECC 0-3校驗字節(jié)780、782,784和786中的每一個保護較小的數(shù)據(jù)組塊。在本發(fā)明的一個實施例中,NAND閃存頁710和760例示了 SSD 202如何通過調(diào)節(jié)經(jīng)壓縮的數(shù)據(jù)的分區(qū)或區(qū)劃的數(shù)目(即,調(diào)節(jié)碼字的數(shù)目)來動態(tài)地調(diào)節(jié)或選擇被存儲在存儲器模塊0-3 240,242,244和246中的數(shù)據(jù)的糾錯碼(ECC)的強度。例如,在本發(fā)明的一個實施例中,如果需要更強的ECC強度,則可選擇達成較高壓縮率的壓縮算法來增加因壓縮而產(chǎn)生的額外節(jié)約區(qū)域。額外節(jié)約區(qū)域容納更大數(shù)目的碼字和ECC校驗字節(jié),這增加了經(jīng)壓縮數(shù)據(jù)的有效ECC強度。圖8例示了根據(jù)本發(fā)明的一個實施例的NAND閃存頁810的框圖800。出于清楚例示起見,參照圖IB來討論圖8。在本發(fā)明的一個實施例中,現(xiàn)有技術(shù)NAND閃存頁160的未經(jīng)壓縮的扇區(qū)O至3 162、164、166和170被壓縮并被劃分成兩個碼字,S卩,經(jīng)壓縮的扇區(qū)0-3 (碼字I) 812和經(jīng)壓縮的扇區(qū)0-3 (碼字2) 822。在本發(fā)明的一個實施例中,向碼字812和822中的每一個分別追加已知數(shù)據(jù)暫記 區(qū)814和824。在本發(fā)明的一個實施例中,已知數(shù)據(jù)暫記區(qū)814和824具有相同的已知或預(yù)設(shè)數(shù)據(jù)。在本發(fā)明的其他實施例中,已知數(shù)據(jù)暫記區(qū)814和824具有不同的已知或預(yù)設(shè)數(shù)據(jù)。計算碼字812和已知數(shù)據(jù)暫記區(qū)814的ECC并添加計算出的ECC作為ECC O校驗字節(jié)820。類似地,計算碼字822和已知數(shù)據(jù)暫記區(qū)824的ECC并添加計算出的ECC作為ECC I校驗字節(jié)830。NAND閃存頁810例示了 SSD 202如何通過調(diào)節(jié)經(jīng)壓縮的數(shù)據(jù)的分區(qū)的數(shù)目來動態(tài)地調(diào)節(jié)或選擇被存儲在存儲器模塊0-3 240、242、244和246中的數(shù)據(jù)的糾錯碼(ECC)的強度。在圖8中例示的扇區(qū)的數(shù)目和已知數(shù)據(jù)暫記區(qū)的數(shù)目并不意味著進行限制,并且扇區(qū)和已知數(shù)據(jù)暫記區(qū)的數(shù)目的其他配置也可被使用,而不影響本發(fā)明的施行。圖9例示了根據(jù)本發(fā)明的一個實施例的NAND閃存頁910的框圖910。出于清楚例示起見,參照圖I C來討論圖9。在本發(fā)明的一個實施例中,對碼字I 192、碼字2 194、和碼字3 196執(zhí)行異或(XOR)操作以獲得XOR碼字920。XOR碼字被存儲在NAND閃存頁910中的碼字4 198的位置中。計算XOR碼字920的ECC并添加計算出的ECC作為ECC 3校驗字節(jié) 926。在本發(fā)明的一個實施例中,帶有XOR保護的NAND閃存存儲器頁910允許對NAND閃存頁910的單個讀取操作,以從不可校正的EEC差錯恢復。在本發(fā)明的一個實施例中,當SSD 202在碼字1-3 192、194和196的一個中遭受到致命的或不可恢復的差錯時,SSD 202可使用XOR碼字920來重新生成具有致命差錯的碼字。在本發(fā)明的一個實施例中,SSD 202可通過讀取單個NAND閃存頁910來從碼字中的致命差錯恢復,S卩,頁內(nèi)XOR保護。選擇最后碼字4198以被替換為XOR碼字920并不意味著進行限制。在本發(fā)明的其他實施例中,選擇不同的碼字以被替換為XOR碼字。例如,在本發(fā)明的一個實施例中,選擇碼字2194以被替換為XOR碼字,該XOR碼字是從對碼字1192、碼字3196和碼字4198進行XOR操作而得到的。在本發(fā)明的一個實施例中,NAND頁910中的XOR保護是在對現(xiàn)有技術(shù)NAND閃存頁160的未經(jīng)壓縮的扇區(qū)O至3 162、164、166和170的壓縮獲得可容納一個或多個碼字的大小的額外節(jié)約區(qū)域時執(zhí)行的。本文中描述的技術(shù)允許SSD 202提升性能,并且通過壓縮獲得的額外節(jié)約區(qū)域不引發(fā)任何相關(guān)聯(lián)的NAND區(qū)域成本。在本發(fā)明的一個實施例中,基于閾值的壓縮技術(shù)通過減小跟蹤任何給定塊的狀態(tài)所需的粒度來簡化SSD 202的簿記(book keeping)功能。圖10例示了根據(jù)本發(fā)明的一個實施例的用于實現(xiàn)本文中公開的方法的系統(tǒng)1000。系統(tǒng)1000包括但不限于桌面計算機、膝上型計算機、上網(wǎng)本、筆記本計算機、個人數(shù)字助理(PDA)、服務(wù)器、工作站、蜂窩電話、移動計算設(shè)備、因特網(wǎng)設(shè)備或任何其他類型的計算設(shè)備。在另一實施例中,用于實現(xiàn)本文中公開的方法的系統(tǒng)1000可以是片上系統(tǒng)式(SOC)系統(tǒng)。處理器1010具有用于執(zhí)行系統(tǒng)1000的指令的處理核1012。處理核1012包括但不限于用于取得指令的預(yù)取邏輯、用于解碼指令的解碼邏輯、用于執(zhí)行指令的執(zhí)行邏輯 等。處理器1010具有用于高速緩存系統(tǒng)1000的指令和/或數(shù)據(jù)的高速緩存存儲器1016。在本發(fā)明的另一實施例中,高速緩存存儲器1016包括但不限于級I、級2和級3高速緩存存儲器、或者處理器1010內(nèi)的任何其他配置的高速緩存存儲器。存儲器控制中樞(MCH) 1014執(zhí)行使得處理器1010能訪問包括易失性存儲器1032和/或非易失性存儲器1034的存儲器1030并與之進行通信。易失性存儲器1032包括但不限于同步動態(tài)隨機訪問存儲器(SDRAM)、動態(tài)隨機存取存儲器(DRAM)、RAMBUS動態(tài)隨機存取存儲器(RDRAM)JP /或任何其他類型的隨機存取存儲器設(shè)備。非易失性存儲器1034包括但不限于=NAND閃存、相變存儲器(PCM)、只讀存儲器(ROM)、電可擦可編程只讀存儲器(EEPR0M)、或任何其他類型的非易失性存儲器設(shè)備。存儲器1030存儲將由處理器1010執(zhí)行的信息和指令。存儲器1030還可在處理器1010執(zhí)行指令的同時存儲臨時變量或其他中間信息。芯片組1020經(jīng)由點對點(PtP)接口 1017和1022與處理器1010連接。芯片組1020使得處理器1010能連接至系統(tǒng)1000中的其他模塊。在本發(fā)明的一個實施例中,接口 1017和1022根據(jù)諸如lntel 快通互連(QPI)等PtP通信協(xié)議進行操作。芯片組1020連接至顯示設(shè)備1040,該顯示設(shè)備包括但不限于液晶顯示器(IXD)、陰極射線管(CRT)顯示器、或任何其他形式的視覺顯示設(shè)備。另外,芯片組1020連接至一條或多條總線1050和1055,這些總線互聯(lián)各個模塊1074、1060、1062、1064和1066。如果總線速度或通信協(xié)議中存在失配,則總線1050和1055可經(jīng)由總線橋1072互聯(lián)在一起。芯片組1020與(但不限于)非易失性存儲器1060、SSD 202、鍵盤/鼠標1064和網(wǎng)絡(luò)接口 1066耦合。芯片組還可包括大容量存儲設(shè)備,該大容量存儲設(shè)備包括但不限于硬盤驅(qū)動器、通用串行閃存驅(qū)動器、或任何其他形式的計算機數(shù)據(jù)存儲介質(zhì)。網(wǎng)絡(luò)接口 1066是通過使用任何類型的公知網(wǎng)絡(luò)接口標準來實現(xiàn)的,這些標準包括但不限于以太網(wǎng)接口、通用串行(USB)接口、外圍組件互連(PCI)快速接口、無線接口和/或任何其他合適類型的接口。無線接口根據(jù)IEEE802. 11標準及其相關(guān)系列、家庭插座AV(HomePlug AV =HPAV)、超寬帶(UWB)、藍牙、WiMax或任何其他形式的無線通信協(xié)議來操作,但不限于此。雖然圖10中所示的模塊被描繪為系統(tǒng)1000內(nèi)的分開的塊,但是這些塊中的一些塊所執(zhí)行的功能可被集成在單個半導體電路內(nèi),或者可使用兩個或更多個分開的集成電路來實現(xiàn)。例如,盡管高速緩存存儲器1016被描繪為處理器1010內(nèi)的分開的塊,但是高速緩存存儲器1016各自可被集成到處理器核1012中。在本發(fā)明的另一實施例中,系統(tǒng)1000可包括一個以上的處理器/處理核。本文中公開的方法可用硬件、軟件、固件或其任何其他組合來實現(xiàn)。盡管描述了所公開的主題的實施例的示例,但是相關(guān)領(lǐng)域技術(shù)人員將容易理解,可替代地使用許多實現(xiàn)所公開的主題的方法。在之前的描述中,已描述了所公開的主題的各個方面。為了解釋的目的,闡述了特定數(shù)量、材料和配置,以便提供對本主題的全面理解。然而,受益于本公開的相關(guān)領(lǐng)域技術(shù)人員顯而易見的是本主題可在沒有特定細節(jié)的情況下實現(xiàn)。在其他實例中,眾所周知的特征、組件或模塊為省去、簡化、組合、或分割以免使本發(fā)明晦澀。文本中所用的術(shù)語“可操作”意味著設(shè)備、系統(tǒng)、協(xié)議等在設(shè)備或系統(tǒng)處于掉電狀態(tài)下能操作或適于操作其所需功能。所公開的主題的各個實施例可以以硬件、固件、軟件、或其組合的方式來實現(xiàn),并且可通過參考或結(jié)合諸如指令、功能、過程、數(shù)據(jù)結(jié)構(gòu)、邏輯、應(yīng)用程序、仿真的設(shè)計表示或格式、模擬、和設(shè)計制造之類的程序代碼來描述,這些代碼在被機器訪問時導致機器執(zhí)行任務(wù)、定義抽象數(shù)據(jù)類型或低層硬件上下文、或產(chǎn)生結(jié)果。附圖中所示的技術(shù)可以是通過使用存儲在諸如通用計算機或計算設(shè)備上并在其上執(zhí)行的代碼和數(shù)據(jù)來實現(xiàn)的。此類計算設(shè)備通過使用機器可讀存儲介質(zhì)(例如,磁盤;光盤;隨機存取存儲器;只讀存儲器;閃存設(shè)備;相變存儲器)和機器可讀通信介質(zhì)(例如,電、光、聲或其它形式的傳播信號,諸如載波、紅外信號、數(shù)字信號等)來存儲和傳達(內(nèi)部地以及通過網(wǎng)絡(luò)與其他計算設(shè)備)代碼和數(shù)據(jù)。盡管已經(jīng)參考所示實施例描述所公開的主題,但不打算以限制的含義解釋本說明書。對所公開主題相關(guān)領(lǐng)域中的技術(shù)人員顯而易見的所示實施例的各種修改以及本主題的其它實施例被認為落在所公開的主題的范圍內(nèi)。
權(quán)利要求
1.一種裝置,包括 用于以下操作的邏輯 壓縮數(shù)據(jù)塊; 確定所述數(shù)據(jù)塊被壓縮到低于一閾值;以及 響應(yīng)于確定所述數(shù)據(jù)塊被壓縮到低于所述閾值,將所述經(jīng)壓縮的數(shù)據(jù)塊寫入一個或多個存儲器模塊中。
2.如權(quán)利要求I所述的裝置,其特征在于,所述邏輯還用于響應(yīng)于確定所述數(shù)據(jù)塊并沒有被壓縮到低于所述閾值,在沒有壓縮的情況下將所述數(shù)據(jù)塊寫入到一個或多個存儲器模塊中。
3.如權(quán)利要求I所述的裝置,其特征在于,所述閾值是基于所述經(jīng)壓縮的數(shù)據(jù)塊的大小、以及所述數(shù)據(jù)塊的大小與所述經(jīng)壓縮的數(shù)據(jù)塊的大小的比率中的至少一個。
4.如權(quán)利要求I所述的裝置,其特征在于,所述邏輯還用于動態(tài)地調(diào)節(jié)所述數(shù)據(jù)塊的糾錯碼(ECC)的強度。
5.如權(quán)利要求4所述的裝置,其特征在于,所述用于動態(tài)地調(diào)節(jié)數(shù)據(jù)塊的ECC的強度的邏輯用于基于與所述一個或多個存儲器模塊中用來存儲所述數(shù)據(jù)塊的位置相關(guān)聯(lián)的比特差錯率(BER)以及用來存儲所述數(shù)據(jù)塊的物理區(qū)域的擦除計數(shù)中的至少一個來動態(tài)地調(diào)節(jié)所述數(shù)據(jù)塊的所述ECC的所述強度。
6.如權(quán)利要求4所述的裝置,其特征在于,所述用于動態(tài)地調(diào)節(jié)數(shù)據(jù)塊的ECC的強度的邏輯用于 將已知數(shù)據(jù)暫記區(qū)追加到所述經(jīng)壓縮的數(shù)據(jù)塊,其中所述已知數(shù)據(jù)暫記區(qū)和所述經(jīng)壓縮的數(shù)據(jù)塊的經(jīng)組合的大小匹配于所述數(shù)據(jù)塊的大?。? 確定所述經(jīng)壓縮的數(shù)據(jù)塊和所述已知數(shù)據(jù)暫記區(qū)的ECC校驗字節(jié);以及 將所確定的ECC校驗字節(jié)追加到所述經(jīng)壓縮的數(shù)據(jù)塊和所述已知數(shù)據(jù)暫記區(qū)。
7.如權(quán)利要求4所述的裝置,其特征在于,所述經(jīng)壓縮的數(shù)據(jù)塊包括多個碼字并且其中所述用于動態(tài)地調(diào)節(jié)數(shù)據(jù)塊的ECC的強度的邏輯用于 為所述多個碼字中的每一個確定多個ECC校驗字節(jié)中相應(yīng)的一個;以及 將所確定的相應(yīng)的一個ECC校驗字節(jié)追加到所述多個碼字中的每一個。
8.如權(quán)利要求4所述的裝置,其特征在于,所述經(jīng)壓縮的數(shù)據(jù)塊包括多個碼字并且其中所述用于動態(tài)地調(diào)節(jié)數(shù)據(jù)塊的ECC的強度的邏輯用于 將所述已知數(shù)據(jù)暫記區(qū)中相應(yīng)的一個追加到所述多個碼字中的每一個; 為所述多個碼字中的每一個以及所述多個已知數(shù)據(jù)暫記區(qū)中相應(yīng)每一個確定多個ECC校驗字節(jié)中相應(yīng)的一個;以及 將所確定的相應(yīng)的一個ECC校驗字節(jié)追加到每一個碼字以及相應(yīng)每一個已知數(shù)據(jù)暫記區(qū)。
9.如權(quán)利要求4所述的裝置,其特征在于,所述經(jīng)壓縮的數(shù)據(jù)塊包括多個碼字并且其中所述用于動態(tài)地調(diào)節(jié)數(shù)據(jù)塊的ECC的強度的邏輯用于 選擇所述多個碼字中的一個; 對除所選碼字之外的所有碼字執(zhí)行異或(XOR)操作以獲得XOR碼字;以及 用所述XOR碼字來代替所選碼字。
10.如權(quán)利要求I所述的裝置,其特征在于,所述裝置是NAND閃存固態(tài)驅(qū)動器(SSD)控制器。
11.如權(quán)利要求I所述的裝置,其特征在于,所述裝置至少部分地符合開放NAND閃速接口(ONFI)協(xié)議。
12.一種裝置,包括 一個或多個存儲器模塊;以及 耦合至所述一個或多個存儲器控制器的控制器,用于動態(tài)地調(diào)節(jié)要存儲在所述一個或多個存儲器模塊中的數(shù)據(jù)的糾錯碼(ECC)的強度。
13.如權(quán)利要求12所述的裝置,其特征在于,所述用于動態(tài)地調(diào)節(jié)要存儲在所述一個或多個存儲器模塊中的數(shù)據(jù)的ECC的強度的控制器用于基于與所述一個或多個存儲器模塊中用來存儲所述數(shù)據(jù)的位置相關(guān)聯(lián)的比特差錯率(BER)以及用來存儲所述數(shù)據(jù)的物理帶的擦除計數(shù)中的至少一個來動態(tài)地調(diào)節(jié)要存儲在所述一個或多個存儲器模塊中的數(shù)據(jù)的所述ECC的強度。
14.如權(quán)利要求12所述的裝置,其特征在于,所述數(shù)據(jù)被劃分成將被存儲在所述一個或多個存儲器模塊的存儲器頁中的一個或多個數(shù)據(jù)組塊,并且其中所述用于動態(tài)地調(diào)節(jié)要存儲在所述一個或多個存儲器模塊中的數(shù)據(jù)的ECC的強度的控制器用于 選擇所述一個或多個數(shù)據(jù)組塊中的一個; 對除所選數(shù)據(jù)組塊之外的所有數(shù)據(jù)組塊執(zhí)行異或(XOR)操作以獲得XOR數(shù)據(jù)組塊;以及 用所述XOR數(shù)據(jù)組塊來代替所選數(shù)據(jù)組塊以存儲在所述一個或多個存儲器模塊的所述存儲器頁中。
15.如權(quán)利要求14所述的裝置,其特征在于,每個數(shù)據(jù)組塊包括經(jīng)無損壓縮的數(shù)據(jù)。
16.如權(quán)利要求12所述的裝置,其特征在于,所述控制器還用于 壓縮所述數(shù)據(jù); 確定所述數(shù)據(jù)是否被壓縮到低于一閾值;以及 響應(yīng)于確定所述數(shù)據(jù)塊被壓縮到低于所述閾值,將所述經(jīng)壓縮的數(shù)據(jù)塊寫入一個或多個存儲器模塊中,其中所述閾值是基于所述經(jīng)壓縮的數(shù)據(jù)塊的大小、以及所述數(shù)據(jù)的大小與所述經(jīng)壓縮的數(shù)據(jù)的大小的比率中的至少一個。
17.如權(quán)利要求16所述的裝置,其特征在于,所述用于動態(tài)地調(diào)節(jié)要存儲在一個或多個存儲器模塊中的數(shù)據(jù)的ECC的強度的控制器用于將已知數(shù)據(jù)暫記區(qū)添加到所述經(jīng)壓縮的數(shù)據(jù); 確定所述經(jīng)壓縮的數(shù)據(jù)和所述已知數(shù)據(jù)暫記區(qū)的ECC校驗字節(jié);以及 將所確定的ECC校驗字節(jié)追加到所述經(jīng)壓縮的數(shù)據(jù)和所述已知數(shù)據(jù)暫記區(qū)。
18.如權(quán)利要求16所述的裝置,其特征在于,所述經(jīng)壓縮的數(shù)據(jù)將被劃分成一個或多個數(shù)據(jù)組塊,并且其中所述用于動態(tài)地調(diào)節(jié)要存儲在一個或多個存儲器模塊中的數(shù)據(jù)的ECC的強度的控制器用于 為所述一個或多個數(shù)據(jù)組塊中的每一個確定一個或多個ECC校驗字節(jié)中相應(yīng)的一個;以及 將所確定的相應(yīng)的一個ECC校驗字節(jié)添加到所述一個或多個數(shù)據(jù)組塊中的每一個。
19.如權(quán)利要求16所述的裝置,其特征在于,所述經(jīng)壓縮的數(shù)據(jù)將被劃分成一個或多個數(shù)據(jù)組塊,并且其中所述用于動態(tài)地調(diào)節(jié)要存儲在一個或多個存儲器模塊中的數(shù)據(jù)的ECC的強度的控制器用于 將所述已知數(shù)據(jù)暫記區(qū)中相應(yīng)的一個追加到所述一個或多個數(shù)據(jù)組塊中的每一個; 為所述一個或多個數(shù)據(jù)組塊中的每一個以及所述一個或多個已知數(shù)據(jù)暫記區(qū)中相應(yīng)每一個確定一個或多個ECC校驗字節(jié)中相應(yīng)的一個;以及 將所確定的相應(yīng)的一個ECC校驗字節(jié)添加到每一個數(shù)據(jù)組塊以及相應(yīng)一個已知數(shù)據(jù)暫記區(qū)。
20.如權(quán)利要求12所述的裝置,其特征在于,所述裝置是NAND閃存固態(tài)驅(qū)動器(SSD)。
21.—種方法,包括 選擇要存儲在存儲器模塊的存儲器頁中的多個碼字中的一個; 對除所選碼字之外的所有碼字執(zhí)行異或(XOR)操作以獲得XOR碼字;以及 用所述XOR碼字來代替所選碼字以存儲在所述存儲器模塊的所述存儲器頁中。
22.如權(quán)利要求21所述的方法,其特征在于,所選碼字是要存儲在所述存儲器模塊的所述存儲器頁中的最后碼字。
23.如權(quán)利要求21所述的方法,其特征在于,進一步包括 基于與所述存儲器模塊中用來存儲所述數(shù)據(jù)的位置相關(guān)聯(lián)的比特差錯率(BER)以及所述存儲器模塊中用來存儲所述數(shù)據(jù)的物理帶的擦除計數(shù)中的至少一個來動態(tài)地調(diào)節(jié)要存儲在所述存儲器模塊中的所述多個碼字的糾錯碼(ECC)的強度。
24.如權(quán)利要求21所述的方法,其特征在于,動態(tài)地調(diào)節(jié)要存儲在存儲器模塊中的多個碼字的ECC的強度包括壓縮每一個碼字;以及 確定每個碼字是否被壓縮到低于一閾值,其中所述閾值是基于所述經(jīng)壓縮的碼字的大小、以及每個碼字的大小與每個經(jīng)壓縮的數(shù)據(jù)的大小的比率中的至少一個。
25.如權(quán)利要求24所述的方法,其特征在于,動態(tài)地調(diào)節(jié)要存儲在存儲器模塊中的多個碼字的ECC的強度包括確定每一個經(jīng)壓縮的碼字的相應(yīng)的ECC校驗字節(jié);以及 將所確定的相應(yīng)的ECC校驗字節(jié)添加到每個經(jīng)壓縮的碼字。
26.如權(quán)利要求24所述的方法,其特征在于,動態(tài)地調(diào)節(jié)要存儲在存儲器模塊中的多個碼字的ECC的強度包括將多個已知數(shù)據(jù)暫記區(qū)中相應(yīng)的一個添加到每個經(jīng)壓縮的碼字; 為每個經(jīng)壓縮的碼字和所述相應(yīng)的一個已知數(shù)據(jù)暫記區(qū)確定多個ECC校驗字節(jié)中相應(yīng)的一個;以及 將所確定的相應(yīng)的一個ECC校驗字節(jié)添加到每一個經(jīng)壓縮的碼字以及相應(yīng)每一個已知數(shù)據(jù)暫記區(qū)。
27.如權(quán)利要求26所述的方法,其特征在于,每一個已知數(shù)據(jù)暫記區(qū)和每一個經(jīng)壓縮的碼字的經(jīng)組合的大小匹配于每一個碼字的大小。
全文摘要
一種用于改進固態(tài)驅(qū)動器(SSD)的性能和/或可靠性的方法和系統(tǒng)。在本發(fā)明的一個實施例中,SSD具有壓縮要存儲在SSD中的數(shù)據(jù)塊的邏輯。如果低于閾值地壓縮數(shù)據(jù)塊是不可能的,則SSD在沒有進行任何壓縮的情況下存儲數(shù)據(jù)塊。如果低于閾值地壓縮數(shù)據(jù)塊是可能的,則SSD壓縮數(shù)據(jù)塊并將經(jīng)壓縮的數(shù)據(jù)存儲在SSD中。在本發(fā)明的一個實施例中,SSD具有用于動態(tài)地調(diào)節(jié)或選擇被存儲在SSD中的數(shù)據(jù)的糾錯碼的強度的邏輯。在本發(fā)明的另一實施例中,SSD具有用于提供對頁中的數(shù)據(jù)的頁內(nèi)XOR保護的邏輯。
文檔編號G06F11/10GK102934093SQ201180027606
公開日2013年2月13日 申請日期2011年6月28日 優(yōu)先權(quán)日2010年6月29日
發(fā)明者J·B·卡安 申請人:英特爾公司