欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于存儲數(shù)據(jù)的方法及其系統(tǒng)的制作方法

文檔序號:6602162閱讀:178來源:國知局

專利名稱::用于存儲數(shù)據(jù)的方法及其系統(tǒng)的制作方法
技術領域
:本發(fā)明通常涉及計算機存儲器,并且更具體地,涉及非易失性存儲器的自適應耐夂t生IS石馬(adaptiveendurancecoding)。
背景技術
:相變存儲器(PCM)和閃速存儲器是具有有限耐久性(又稱“有限壽命”)的非易失性存儲器的示例。在經(jīng)歷許多個寫循環(huán)(對于PCM是重置(RESET)循環(huán),對于閃速存儲器是編程/擦除循環(huán))之后,存儲器單元損耗并且不再能夠可靠地存儲信息,在此意義上該存儲器具有有限的耐久性。可以利用一種被稱為耐久性編碼的技術來延長有限壽命存儲器的壽命,其中將若干碼型(pattern)寫入存儲器以使得減少單元磨損。當前的耐久性編碼方案的缺點在于,它們引起了數(shù)據(jù)擴展并且未描繪出用于使耐久性編碼的參數(shù)適合于數(shù)據(jù)可壓縮性和存儲器頁面長度(pagelength)的任何機制。這意味著,對于每個數(shù)據(jù)字不得不使用不同的頁面長度,或者不得不犧牲耐久性的增加。其他相關的實現(xiàn)方案包括用于在一次寫入和高效寫入存儲器上的寫入的方法,其允許在存儲器的每次寫入中和/或存儲器的壽命內(nèi)存儲增加的數(shù)據(jù)量。再次的,這些方法的缺點在于,它們不允許針對不同的數(shù)據(jù)自適應地選擇耐久性碼。
發(fā)明內(nèi)容一個示例性實施例是一種用于存儲數(shù)據(jù)的方法,該方法包括接收寫入數(shù)據(jù)和寫入地址。將壓縮算法應用于寫入數(shù)據(jù)以生成壓縮的數(shù)據(jù)。將耐久性碼應用于壓縮的數(shù)據(jù)以生成碼字。響應于通過對寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量,選擇和應用耐久性碼。將該碼字寫入到寫入地址。另一實施例是一種包括接收器的系統(tǒng),該接收器接收寫入數(shù)據(jù)和寫入地址。該系統(tǒng)還包括數(shù)據(jù)壓縮器,其將壓縮算法應用于寫入數(shù)據(jù)以生成壓縮的數(shù)據(jù)。該系統(tǒng)進一步包括耐久性編碼器,其將耐久性碼應用于壓縮的數(shù)據(jù),其中響應于通過對寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量,選擇和應用耐久性碼。來自耐久性編碼器的輸出是碼字。該系統(tǒng)進一步包括存儲器寫入器,其將該碼字寫入到寫入地址?!獋€另外的示例性實施例是一種用于存取存儲器的方法,該方法包括從存儲器地址取得(retrieve)碼字。用元數(shù)據(jù)矩陣乘以該碼字以恢復用于該碼字的元數(shù)據(jù)。所述元數(shù)據(jù)包括數(shù)據(jù)位置規(guī)范。響應于所述元數(shù)據(jù)來識別碼字中的數(shù)據(jù),并輸出所述數(shù)據(jù)作為讀取數(shù)據(jù)。又一示例性實施例是一種包括存儲器讀取器的系統(tǒng),該存儲器讀取器從存儲器地址取得碼字。該系統(tǒng)還包括元數(shù)據(jù)計算器,其將元數(shù)據(jù)矩陣乘以碼字以恢復用于碼字的元數(shù)據(jù),其中所述元數(shù)據(jù)包括數(shù)據(jù)位置規(guī)范。該系統(tǒng)進一步包括元數(shù)據(jù)解釋器,其響應于所述元數(shù)據(jù)來識別碼字中的數(shù)據(jù);以及發(fā)送器,其輸出所述數(shù)據(jù)作為讀取數(shù)據(jù)。通過本實施例的技術可以認識到另外的特征和優(yōu)點。在此還描述了其他實施例和方面,并且將其視為本發(fā)明的一部分。為了更好地理解具有這些優(yōu)點和特征的本發(fā)明,請參照以下描述和附圖。在本申請文件的結(jié)尾處,在權利要求中具體地指出了并且清楚地要求保護被視為本發(fā)明的主題內(nèi)容。根據(jù)下面結(jié)合附圖的詳細描述,本發(fā)明的前述和其他特征以及優(yōu)點是清楚的,在附圖中圖1示出了可以通過示例性實施例實現(xiàn)的用于寫入數(shù)據(jù)的過程;圖2示出了可以通過示例性實施例實現(xiàn)的用于寫入數(shù)據(jù)的存儲器控制器的框圖;圖3示出了可以通過示例性實施例實現(xiàn)的糾錯編碼器的框圖;圖4示出了可以通過示例性實施例實現(xiàn)的用于讀取數(shù)據(jù)的過程;圖5示出了可以通過示例性實施例實現(xiàn)的用于讀取數(shù)據(jù)的存儲器控制器的框圖;圖6示出了可被實現(xiàn)為針對地址按逐次寫入來改變ECC的校驗位置的示例性實施例;圖7示出了可以通過示例性實施例實現(xiàn)的用于寫入數(shù)據(jù)的系統(tǒng)的框圖;圖8示出了可以通過示例性實施例實現(xiàn)的編碼器;圖9示出了可以通過示例性實施例實現(xiàn)的用于讀取數(shù)據(jù)的系統(tǒng)的框圖;圖10示出了可以通過示例性實施例實現(xiàn)的讀取過程;圖11示出了可以通過示例性實施例實現(xiàn)的用于執(zhí)行聯(lián)合壓縮和擴展的過程;以及圖12示出了可以通過示例性實施例實現(xiàn)的聯(lián)合壓縮和耐久性編碼。具體實施例方式本發(fā)明的一個示例性實施例包括一種用于有限壽命存儲器的自適應耐久性編碼系統(tǒng)和方法,其中待寫入到存儲器中的數(shù)據(jù)被轉(zhuǎn)換為使對存儲器單元的損耗減少的形式,并且因此延長了存儲器壽命。在示例性實施例中,寫入的數(shù)據(jù)是對于錯誤可復原的(即,即使在存儲之后所存儲的信息中存在錯誤的情況中,仍可以恢復數(shù)據(jù))。一個示例性實施例包括一種以增強的耐久性將數(shù)據(jù)寫入到非易失性存儲器器件上的系統(tǒng)和方法。通過使耐久性編碼參數(shù)適合于數(shù)據(jù)屬性和諸如存儲器頁面大小的存儲器參數(shù)的方式,結(jié)合耐久性編碼和錯誤復原,利用無損數(shù)據(jù)壓縮。因此,如果待寫入數(shù)據(jù)是高度可壓縮的,則可以實現(xiàn)高的耐久性增益(gain)??商孢x地,如果數(shù)據(jù)并非是高度可壓縮的,則選擇耐久性碼以便于確保編碼的數(shù)據(jù)將適合存儲器頁面。因此,示例性實施例在確保所生成的數(shù)據(jù)將總是適合在給定的存儲器頁面內(nèi)的同時,允許獲得耐久性編碼的最大利益。這顯著地簡化了存儲器簿記(memorybookke印ing),并因此,改進了存儲器存取性能。再者,示例性實施例在確??梢哉_地從存儲器恢復數(shù)據(jù)的同時,以保持耐久性增益的方式整合了錯誤復原。圖1示出了可以通過示例性實施例實現(xiàn)的使用自適應耐久性編碼來寫入數(shù)據(jù)的過程。在框102中,(例如,在存儲器控制器處)接收寫入數(shù)據(jù)和寫入地址。在示例性實施例中,寫入地址是頁面地址并且寫入數(shù)據(jù)是數(shù)據(jù)頁面(例如,4K比特)。在框104中,寫入數(shù)據(jù)被壓縮以生成壓縮的數(shù)據(jù)。然后在框106中將耐久性碼應用于壓縮的數(shù)據(jù),以生成壓縮的耐久性編碼了的數(shù)據(jù)。所應用的耐久性碼是基于壓縮的數(shù)據(jù)和目標存儲器器件的特性而選擇的。在框108中選擇寫入數(shù)據(jù)、壓縮的數(shù)據(jù)和壓縮的耐久性編碼了的數(shù)據(jù)中的一個,并且在框110中對所選擇的數(shù)據(jù)進行ECC編碼以生成碼字。在框112中,在寫入地址處將該碼字寫入存儲器。圖2示出了可以通過示例性實施例實現(xiàn)的用于寫入數(shù)據(jù)的存儲器控制器的框圖。圖2中示出的存儲器控制器202將數(shù)據(jù)壓縮和耐久性編碼組合以便于通過增強存儲器耐久性的方式寫入非易失性存儲器。圖2中示出的示例性存儲器控制器202包括隨機存取存儲器(RAM)中的碼表(codetable),該碼表在此處被稱為RAM碼表204,該碼表存儲關于(例如,存儲器器件上)非易失性存儲器206中存儲的每個數(shù)據(jù)單元的耐久性碼/壓縮狀態(tài)信息。圖2中示出的示例性RAM碼表204中的狀態(tài)信息包括(1)頁面狀態(tài)是未編碼的(U)、壓縮的(C)、還是壓縮且耐久性編碼的(E)的指示;(2)指示哪個可用糾錯碼集合已被用于對當前頁面數(shù)據(jù)進行編碼的ECC碼索引;以及(3)指示哪個耐久性碼(如果有的話)已被用于對頁面數(shù)據(jù)進行編碼的耐久性碼索引。RAM碼表204中存儲的信息在此處被稱為“元數(shù)據(jù)”。圖2中示出的到存儲器控制器202的輸入包括待寫入的頁面的地址以及待寫入到頁面的數(shù)據(jù)。在示例性實施例中,經(jīng)由位于存儲器控制器202(或者其他位置)上的接收器來接收輸入。接收器可以通過多種方式來實現(xiàn),包括用于接收輸入和/或輸入所位于的存儲位置(例如,寄存器)的硬件。頁面地址用于對RAM碼表204進行索引以便于取得耐久性編碼狀態(tài)信息。頁面數(shù)據(jù)(在此處也被稱為寫入數(shù)據(jù))被輸入到數(shù)據(jù)壓縮器208,該數(shù)據(jù)壓縮器208應用無損數(shù)據(jù)壓縮算法以壓縮寫入數(shù)據(jù)??梢詫崿F(xiàn)的無損數(shù)據(jù)壓縮算法的示例包括,但不限于算術編碼、Huffman編碼、Lempel-Ziv編碼和BWT編碼。此外,如果已知寫入數(shù)據(jù)的特性(諸如統(tǒng)計信息)是先驗的或者是可預測的,則可以應用任何利用該知識的專用無損編碼算法以便于更有效地壓縮數(shù)據(jù)。數(shù)據(jù)壓縮器208輸出的壓縮字被輸入到耐久性編碼器210。耐久性編碼器210使用壓縮字的特定特性,并且可能使用關于待使用的糾錯碼(ECC)和先前的頁面內(nèi)容的信息,以便于從多個耐久性碼中選擇一個耐久性碼。在示例性實施例中,非易失性存儲器206是諸如二進制NAND閃存的“一次寫入”存儲器,并且耐久性編碼器210是兩電平單發(fā)有界加權二進制編碼器(two-levelone-shotboundedweightbinarycoder)。即,耐久性編碼器210假設寫入是到已擦除頁面的,并且產(chǎn)生具有少于固定數(shù)量的未擦除符號(symbol)的輸出字。在該情況中,耐久性編碼器210基于壓縮的數(shù)據(jù)字的長度選擇有界權重約束,以便于在確保耐久性編碼字將適合存儲器206的固定頁面長度的同時獲得最大的耐久性增益。因此,如果原始數(shù)據(jù)是高度可壓縮的,并且壓縮字長度是小的,則可以獲得小的有界權重約束以獲得高的耐久性增益。可替選地,如果頁面并非是高度可壓縮的,則可以使用大的有界權重約束來確保耐久性編碼字將適合存儲器頁面。再者,耐久性編碼器210可以在選擇要實施的有界權重的同時,利用ECC碼率(coderate)的知識;這可以用于例如,保證寫入到存儲器206中的錯誤編碼字將滿足給定的權重約束。在替選實施例中,非易失性存儲器206是諸如多級相變存儲器的“可重寫的”存儲器,并且耐久性編碼器210使用多級瀑布碼。耐久性編碼器選擇的瀑布碼是如數(shù)據(jù)壓縮器208的輸出所指示的數(shù)據(jù)的可壓縮性的函數(shù)。耐久性編碼器還可以利用本領域中已知的其他碼,諸如用于一次寫入和高效寫入的存儲器的碼,其中基于數(shù)據(jù)壓縮器208的輸出來選擇多個碼中的一個碼用于耐久性編碼。一旦選擇了耐久性碼,則使用該碼產(chǎn)生與數(shù)據(jù)壓縮器208產(chǎn)生的壓縮字對應的輸出碼字。在另一示例性實施例中,存儲器206是一次寫入或可重寫的存儲器(諸如PCM),并且耐久性編碼器210另外使用存儲器206的先前的頁面內(nèi)容的知識以便于選擇耐久性碼以及生成輸出碼字。該先前內(nèi)容通過存儲器讀取過程218讀取,并且耐久性編碼器使用過程218的輸出,以便于生成耐久性編碼了的碼字。所使用的耐久性碼的索引被輸入到RAM碼表204。如圖2中所示,耐久性編碼器210的輸出、數(shù)據(jù)壓縮器208的輸出和原始寫入數(shù)據(jù)被輸入到數(shù)據(jù)選擇器212。數(shù)據(jù)選擇器212基于例如,字的長度和通過壓縮和耐久性編碼獲得的增益,來決定將這三個數(shù)據(jù)中的哪個數(shù)據(jù)寫入到存儲器206中。在替選的示例性實施例中,由數(shù)據(jù)壓縮器208和耐久性編碼器210順次做出該決定而不需要數(shù)據(jù)選擇器212。例如,如果數(shù)據(jù)壓縮器208的輸出與輸入字一般長或者長于輸入字,則數(shù)據(jù)壓縮器208簡單地將輸入字輸出到耐久性編碼器210。相似地,如果耐久性編碼器210產(chǎn)生的字過長以至于不適合頁面或者具有其他不合需要的特性,則耐久性編碼器210簡單地將壓縮的/原始的寫入數(shù)據(jù)字直接輸出到糾錯編碼器214。在這兩個實施例中,頁面的編碼狀態(tài)被發(fā)送到RAM碼表204用于存儲。數(shù)據(jù)選擇器212的輸出隨后被發(fā)送到糾錯編碼器214,該糾錯編碼器214選擇多個ECC中的一個ECC用于對數(shù)據(jù)編碼。圖3示出了可以通過示例性實施例實現(xiàn)的糾錯編碼器214的框圖。如圖3中所示,首先使用系統(tǒng)ECC編碼器302,利用系統(tǒng)碼對輸入數(shù)據(jù)編碼。系統(tǒng)ECC編碼器302的輸出隨后被輸入到索引排序器(indexedpermuter)304以使用多個預定排序中的一個對編碼的數(shù)據(jù)排序。所選擇的排序基于RAM碼表204中存儲的ECC碼索引。在替選的示例性實施例中,可以使用多個系統(tǒng)碼,以使得輸入數(shù)據(jù)被包含在所生成的碼字中并且奇偶符號位置隨變化的碼索引而變化。使用這些示例性實施例中的任一實施例的優(yōu)點在于,由奇偶比特引起的損耗散布跨越若干單元位置,由此使損耗平均,并且改進了存儲器耐久性。將所使用的ECC碼的索引發(fā)送到RAM碼表204用于存儲,同時將碼字發(fā)送到存儲器寫入過程以寫入存儲器206(例如,存儲器器件)。在示例性實施例中,糾錯編碼器214使用的ECC的碼率取決于如數(shù)據(jù)壓縮器208的輸出所指示的數(shù)據(jù)的可壓縮性。在示例性實施例中,總是使用最小(或缺省)糾錯能力(例如,如通過ECC奇偶比特的數(shù)量測量的)。當壓縮的數(shù)據(jù)的長度低于預先限定的閾值時,增加ECC奇偶比特的數(shù)量以便于提供更大的糾錯能力。因此,在該實施例中,耐久性碼和ECC碼的選擇是基于數(shù)據(jù)的可壓縮性進行的。如前文所述,利用待使用的ECC碼的知識來進行耐久性編碼器210對耐久性碼的選擇。這確保了編碼器214生成的碼字具有正確的長度以便被寫入存儲器中。在替選實施例中,多個ECC保護等級是可能的(包括無保護),并且基于壓縮的數(shù)據(jù)的長度與多個閾值的比較來選擇適當?shù)牡燃墶T俅螀⒄請D2,糾錯編碼器214生成的碼字被發(fā)送到存儲器寫入過程216以便寫入存儲器206。在示例性實施例中,存儲器206使得存儲器寫入過程216具有一個或更多個可編程參數(shù),該可編程參數(shù)允許使存儲器寫入過程216改變諸如寫入速度、寫入功率、寫入損耗等屬性。例如,存儲器206可以是在每次單元寫入時使用多次疊代的PCM,并且疊代的次數(shù)是可編程的;其中使用的疊代的次數(shù)越多,則寫入過程的準確性越高,但是功率支出和寫入延時也更高。作為另一示例,存儲器206可以是閃速存儲器,其中浮柵電壓電平的設置是可編程的。在該情況中可以通過使電平間隔得更靠近在一起來減小寫入速度、寫入功率和寫入損耗,但這是以因浮柵電荷擾動引起的錯誤概率增加為代價的。在該實施例中,由糾錯編碼器214基于如數(shù)據(jù)壓縮器208的輸出所指示的數(shù)據(jù)的可壓縮性選擇糾錯能力,并且基于所使用的糾錯能力選擇寫入過程參數(shù)。因此,例如,如果數(shù)據(jù)是高度可壓縮的,則可以使用高的糾錯能力,這允許選擇選擇寫入?yún)?shù)以便于減小寫入功率,減小寫入延時和/或減小寫入損耗,但這是以寫入準確性為代價的;較高的糾錯能力確保了減小的寫入準確性足夠用于可靠的數(shù)據(jù)存儲。圖2中示出的RAM碼表204允許快速地存取用于耐久性編碼工作所需的信息。為了確保RAM碼表204中的信息不丟失(例如,由于斷電),RAM碼表204被周期性地寫回到非易失性存儲器206(或者一些其他存儲器)。在該過程中,由糾錯編碼器/解碼器222對RAM碼表204中的信息進行ECC編碼用于保護,并且隨后通過寫入過程220將RAM碼表204中的信息寫入非易失性存儲器206。在斷電的情況中,可以通過讀取過程220和從糾錯解碼器222從存儲器重新加載RAM碼表204。在替選的示例性實施例中,RAM碼表204用作關于狀態(tài)信息的高速緩存,并且在任何給定的時間僅關于非易失性存儲器頁面的子集的信息被存儲在RAM碼表204中。在存取頁面時,頁面的信息被轉(zhuǎn)移到RAM碼表204中,并且當對于給定的時間周期頁面未被使用時,信息被轉(zhuǎn)移出RAM碼表204。在示例性實施例中本領域中已知的其他高速緩存技術可用于將信息轉(zhuǎn)移到RAM碼表204中和轉(zhuǎn)移出RAM碼表204。在另一實施例中,RAM碼表204(可以用作或者可以不用做高速緩存)存儲在第二非易失性存儲器器件上,該第二非易失性存儲器器件具有比其上存儲數(shù)據(jù)的非易失性存儲器器件更高的耐久性。應當注意,基于壓縮的數(shù)據(jù)字的特性來選擇耐久性碼是有利的,其有利之處在于,它確保了耐久性的增益可以適合于頁面壓縮并且因此可以獲得耐久性編碼的最大利益。同時,它確保了所生成的數(shù)據(jù)將總是適合在給定的存儲器頁面內(nèi),而無需對存儲器頁面長度進行任何改變,這極大地簡化了存儲器簿記,并且因此,改進了存儲器存取性能。圖4示出了可以通過示例性實施例實現(xiàn)的用于使用自適應耐久性編碼來讀取數(shù)據(jù)的過程。在框402中,(例如,在存儲器控制器處)接收讀取地址,并且在框404中,從存儲器206取得在該讀取地址處存儲的碼字。在框406中向該碼字應用ECC解碼器。在框408中,取得和/或得到與讀取地址所引用的頁面(或其他存儲器單元)對應的元數(shù)據(jù)。元數(shù)據(jù)描述存儲器頁面中存儲的數(shù)據(jù)的狀態(tài)。在示例性實施例中,該狀態(tài)是未編碼的、壓縮的、或者壓縮且耐久性編碼的。此外,元數(shù)據(jù)可以描述用于存儲器頁面中的數(shù)據(jù)的耐久性編碼和ECC編碼。如果頁面狀態(tài)是未經(jīng)編碼的,則在框410中輸出ECC解碼的數(shù)據(jù)作為讀取數(shù)據(jù)。如果頁面狀態(tài)是壓縮的,則在框410中對ECC解碼的數(shù)據(jù)解壓縮,并且將其輸出作為讀取數(shù)據(jù)。如果頁面狀態(tài)是壓縮且耐久性編碼的,則在框410中通過耐久性碼解碼器發(fā)送ECC解碼的數(shù)據(jù),并且隨后將其解壓縮并輸出作為讀取數(shù)據(jù)。圖5示出了可以通過示例性實施例實現(xiàn)的用于讀取數(shù)據(jù)的存儲器控制器的框圖。對于給定的讀取地址,如果需要,RAM碼表204被加載有適當?shù)捻撁鏍顟B(tài)信息(例如,元數(shù)據(jù))。在示例性實施例中,這是通過讀取過程514和糾錯解碼器512來進行的。然后通過存儲器讀取過程504從存儲器206讀取數(shù)據(jù)。從存儲器206讀取的碼字被輸入到糾錯解碼器506,該糾錯解碼器506使用對應于ECC碼索引的解碼過程,該ECC碼索引對應于RAM碼表204中的頁面地址(S卩,讀取地址)。依賴于頁面狀態(tài)(E/C/U),糾錯解碼器506的輸出被適當?shù)芈酚?。如果該狀態(tài)是U(未編碼的),則存儲器控制器502直接輸出糾錯解碼器506的輸出以作為讀取數(shù)據(jù)。如果頁面狀態(tài)是C(壓縮的),則糾錯解碼器506的輸出被路由至數(shù)據(jù)解壓縮器508,并且存儲器控制器502輸出解壓縮的輸出以作為讀取數(shù)據(jù)。最后,如果頁面的讀取狀態(tài)是E(耐久性編碼的),則數(shù)據(jù)被路由至耐久性解碼器510,隨后被路由至數(shù)據(jù)解壓縮器508,并且然后由存儲器控制器502最終輸出作為讀取數(shù)據(jù)。在示例性實施例中,通過位于存儲器控制器502(或其他位置)上的發(fā)送器執(zhí)行上述的輸出。發(fā)送器可以通過多種方式實現(xiàn),包括用于傳送輸出以及存儲所述輸出的存儲位置或寄存器的硬件。應當注意,圖2和圖5中示出的所有或一部分元件可以位于另一物理位置,諸如但不限于另一存儲器元件(諸如,存儲器模塊或存儲器集線器(memoryhub))。上述示例性實施例使用存儲器控制器可存取的表,即RAM碼表204,其描述了頁面狀態(tài)(E/C/U)以及用于正確解釋從頁面讀取的信息所需的其他信息。這些信息和可用于該任務的任何其他信息在此處被稱為“元數(shù)據(jù)”。在一些情況中,期望通過如下方式實現(xiàn)實施例,即不需要使用該控制器表,并且作為替換,直接將元數(shù)據(jù)與數(shù)據(jù)一起存儲在存儲器206中。原因在于,控制器表有時實現(xiàn)起來是昂貴的。關于這一思想的直接的實現(xiàn)方案的主要困難在于,存儲元數(shù)據(jù)的物理存儲器通常經(jīng)受與其余的數(shù)據(jù)位置所經(jīng)受的相同的損耗和錯誤機制,并且因此元數(shù)據(jù)不能全然不變地(verbatim)存儲在存儲器206的固定位置中。原則上,對于元數(shù)據(jù)而言,也需要耐久性編碼和糾錯編碼,引起了循環(huán)問題(circularproblem)。下面描述可通過示例性實施例實現(xiàn)的對該問題的解決方案。通過向量m表示元數(shù)據(jù),并且通過向量v表示將寫入存儲器中的碼字。將由讀取和寫入過程共享的兩個預先指定的矩陣定義為H和M,其中H是系統(tǒng)糾錯碼的奇偶校驗矩陣(此處也稱為“奇偶矩陣”),而M在此處也稱為“元數(shù)據(jù)矩陣”)。基本的思想是不在任何預先指定的位置存儲元數(shù)據(jù)m,而是計算碼字v,以使得可以通過將矩陣M與向量v相乘來恢復元數(shù)據(jù)。系統(tǒng)ECC確??梢詮拇鎯ζ髡_地恢復v。在示例性實施例中,另外的要求是,當特定地址被多次寫入時,應輪換(rotate)系統(tǒng)ECC的校驗位置(也被稱為“附加比特”);這確保不同的存儲器單元均勻地損耗。圖6示出了可被實現(xiàn)為對地址(例如,頁面)按逐次寫入來使ECC的校驗位置變化的示例性實施例。如圖6中所示,用于對地址的第一次寫入602的碼字中的ECC比特(或校驗位置)位于碼字的最初三個比特中。用于對該地址的第二次寫入604的碼字中的ECC比特位于碼字的第二至第四比特,并且用于對地址的第三次寫入606的碼字中的ECC比特位于碼字的最末三個比特中。因此,碼字中的ECC比特的位置是變化的。圖7示出了可以通過示例性實施例實現(xiàn)的用于寫入數(shù)據(jù)的系統(tǒng)的框圖,該系統(tǒng)不使用碼表來存儲元數(shù)據(jù)。未壓縮的數(shù)據(jù)被饋送到壓縮器702,該壓縮器702產(chǎn)生壓縮的數(shù)據(jù)和指示數(shù)據(jù)是被壓縮還是被擴展以及壓縮或擴展到何種程度的壓縮參數(shù)。壓縮的數(shù)據(jù)和參數(shù)被傳遞到耐久性碼編碼器704,該耐久性碼編碼器704使用待寫入存儲器的碼型來選擇對壓縮的數(shù)據(jù)進行編碼的方法,該方法被選擇為產(chǎn)生最小的成本。可選地該步驟取決于目標存儲器地址中當前寫入的數(shù)據(jù)。換言之,成本可以僅取決于將寫入的數(shù)據(jù)碼型,或者可以取決于將寫入的數(shù)據(jù)碼型和當前寫入的數(shù)據(jù)碼型兩者。接著,利用數(shù)據(jù)選擇器706,決定將數(shù)據(jù)存儲為未壓縮的、壓縮的、還是壓縮且耐久性編碼的。此外,計算描述該決定以及所使用的耐久性編碼(如果有的話)的類型的元數(shù)據(jù)。該步驟的結(jié)果是將存儲在存儲器中的經(jīng)處理的數(shù)據(jù)符號以及元數(shù)據(jù)。元數(shù)據(jù)和經(jīng)處理的數(shù)據(jù)符號被傳遞到ECC編碼器708,該ECC編碼器708生成用于外部傳遞到ECC功能的給定位置集合的校驗符號。如前面描述的,每次地址被寫入時,用于特定存儲器地址的給定位置集合輪換。由ECC編碼器708生成校驗符號確保了校驗符號被選擇為使得所得到的碼字v在與矩陣M相乘時,導致了所期望的元數(shù)據(jù)m。ECC編碼的結(jié)果(即碼字v)被輸出到存儲器。圖8示出了可以通過示例性實施例實現(xiàn)的ECC編碼器708。矩陣H和M是預先固定的,并且矩陣H是系統(tǒng)ECC的奇偶校驗矩陣。第一公式802定義了來自ECC編碼器708的一般期望需要計算使得Hv=0的碼字向量v,并且因此v是由奇偶校驗矩陣H所定義的線性碼的碼字,并且Mv=m,從而可以通過乘法Mv從v恢復元數(shù)據(jù)m。關于ECC編碼器708的其他要求是,碼字v具有位于外部指定的符號位置中的由向量c表示的校驗符號;因此其具有在剩余位置中的由向量d表示的給定的經(jīng)處理的數(shù)據(jù)符號。在一個示例中,位置集合是碼字中的連續(xù)符號集合,其開始位置是可選擇的。如圖8中所見,經(jīng)處理的數(shù)據(jù)符號d和校驗符號c被組裝(assemble)以形成碼字v。該組裝取決于校驗符號的期望位置。圖8的框806中給出了三個示例在一個示例中校驗符號位于碼字的起點,在另一個實施例中校驗符號開始于碼字的第二符號,并且在第三實施例中校驗符號位于碼字的末尾。上述圖8中還包括公式804,編碼器可以利用該公式804計算校驗符號。這些公式取決于矩陣~為、…、By期望的元數(shù)據(jù)m,和期望的經(jīng)處理的數(shù)據(jù)符號d。對于每個可能的校驗位置存在一個這樣的矩陣。通過處理預先指定的矩陣H和M可以得到矩陣BpBp…、Bit)在示例性實施例中,所述處理如下得到使得式的矩陣&,其中I表示單位矩陣。左乘(pre-multiplication)的結(jié)果的其他部分是B。,即對于校驗符號將被設置在碼字v的起點時的期望的矩陣。相似的過程產(chǎn)生&(已示出)、B2(未示出)等。通常,可以通過將矩陣&確定為使得當&乘以矩陣時,結(jié)果矩陣包含按列對應于期望的數(shù)據(jù)_符號位置的單位矩陣,來計算每個B”應當注意,在實際的實現(xiàn)方案中,并不必然需要具有專用于所有B。、Bi、B2等的電路。例如,如果H是循環(huán)碼的奇偶校驗矩陣,則可以通過用對角矩陣左乘By從B。計算&。H所定義的糾錯碼的符號可以來自任何伽羅華域(GaloisField),包括GF(2P),其中P是任何期望的擴展域度。一旦計算了A”則將校驗比特計算為,并且通過以使校驗比特和數(shù)據(jù)符號位于如圖8中的公式806所示的期望位置的方式組裝向量c和d來計算碼字。在需要時,碼字v具有使公式802成立的屬性。圖9示出了可以通過示例性實施例實現(xiàn)的用于讀取數(shù)據(jù)的系統(tǒng)的框圖。寫入存儲器的原始碼字由向量v表示,在該示例中,錯誤向量e破壞了向量V,使得在讀取時接收到的字是v+e。這被輸入到ECC解碼器902。ECC解碼器902嘗試找到使得H(v+e)=He的錯誤碼型e。如果ECC解碼器902成功(假設未發(fā)生誤糾正),則其通過從v+e和e計算V,找到了v。ECC解碼器902還產(chǎn)生描述不可糾正錯誤狀態(tài)、可糾正錯誤狀態(tài)等等的糾錯碼標志。解碼結(jié)果v被傳遞到計算元數(shù)據(jù)框904,其計算元數(shù)據(jù)向量m=Hv。元數(shù)據(jù)計算的結(jié)果m被傳遞到元數(shù)據(jù)解釋器框906,其解釋元數(shù)據(jù)以便于恢復耐久性碼和壓縮參數(shù),以及經(jīng)處理的數(shù)據(jù)符號的位置。在示例性實施例中,耐久性碼參數(shù)包括使用什么耐久性碼(如果存在的話)對數(shù)據(jù)編碼的描述。在示例性實施例中,壓縮參數(shù)包括數(shù)據(jù)是否被壓縮的描述。連同關于處理的數(shù)據(jù)符號的位置的信息一起從v恢復經(jīng)處理的數(shù)據(jù)符號。然后將結(jié)果饋送到耐久性碼解碼器908,并且然后饋送到解壓縮器910,產(chǎn)生期望的數(shù)據(jù)。在不使用碼表存儲元數(shù)據(jù)的用于寫入無錯誤存儲器的系統(tǒng)的示例性實施例中,對寫入編碼器的輸入包括待存儲在存儲器中的數(shù)據(jù)、待寫入存儲器中的碼字內(nèi)數(shù)據(jù)的期望位置(其可以被包括在元數(shù)據(jù)中并且在此處被稱為“數(shù)據(jù)位置規(guī)范”)以及包括壓縮和耐久性碼參數(shù)的附加元數(shù)據(jù)。編碼器的輸出是由按照符合數(shù)據(jù)位置規(guī)范的方式布置的數(shù)據(jù)和附加符號組成的碼字向量,即其中數(shù)據(jù)符號位于期望的符號位置的碼字。寫入編碼器找到滿足位置規(guī)范的碼字,使得在用預先指定的矩陣M與碼字相乘時,結(jié)果是元數(shù)據(jù)。在用于讀取通過前述寫入編碼器實施例寫入的數(shù)據(jù)的系統(tǒng)的示例性實施例中,對讀取解碼器的輸入包括從存儲器接收到的碼字。讀取解碼器的輸出是存儲在存儲器中的數(shù)據(jù)和(可選的)元數(shù)據(jù)。讀取解碼器將矩陣M乘以接收到的碼字以恢復元數(shù)據(jù),并且從元數(shù)據(jù)恢復碼字內(nèi)的數(shù)據(jù)的位置和附加比特。讀取解碼器返回(或輸出)數(shù)據(jù),并且如果需要,返回(或輸出)元數(shù)據(jù)。在不使用碼表存儲元數(shù)據(jù)的用于寫入有錯誤存儲器的系統(tǒng)的示例性實施例中對寫入編碼器的輸入包括待存儲在存儲器中的數(shù)據(jù)、待寫入存儲器的碼字內(nèi)數(shù)據(jù)的期望位置以及包括壓縮和耐久性碼參數(shù)的附加元數(shù)據(jù)。編碼器的輸出是包含按照符合位置規(guī)范的方式布置的數(shù)據(jù)和附加符號的碼字向量,即其中數(shù)據(jù)符號位于期望的符號位置的碼字,其中附加比特包括預先指定的ECC的奇偶比特。寫入編碼器找到滿足位置規(guī)范的碼字,使得當用預先指定的矩陣M與碼字相乘時,結(jié)果是元數(shù)據(jù),并且使得當用ECC的奇偶校驗矩陣H與碼字相乘時,結(jié)果是已知的值,諸如0。在用于讀取通過前述寫入編碼器實施例寫入的數(shù)據(jù)的系統(tǒng)的示例性實施例中,對讀取解碼器的輸入包括從存儲器接收到的錯誤碼字。讀取解碼器的輸出是存儲在存儲器中的數(shù)據(jù)和(可選的)元數(shù)據(jù)。解碼器應用具有奇偶校驗矩陣H的預先固定的ECC以糾正接收到的碼字中的錯誤。如果該糾正成功,則解碼器將矩陣M乘以經(jīng)糾正的碼字以恢復元數(shù)據(jù),并且從元數(shù)據(jù)恢復碼字內(nèi)的數(shù)據(jù)的位置和附加比特。解碼器返回(或輸出)數(shù)據(jù),并且如果需要,返回(或輸出)元數(shù)據(jù)。在不使用碼表存儲元數(shù)據(jù)的用于寫入有錯誤的存儲器的系統(tǒng)的示例性實施例中,對寫入編碼器的輸入包括待存儲在存儲器中的數(shù)據(jù)、待寫入存儲器的碼字內(nèi)數(shù)據(jù)的期望位置(其可以包括在元數(shù)據(jù)中)、待使用的ECC符號(或比特)的可變數(shù)量(具有從多種可能性中選擇的ECC符號的數(shù)量)、以及包括壓縮和耐久性碼參數(shù)的附加元數(shù)據(jù)。編碼器的輸出是由按照符合位置規(guī)范的方式布置的數(shù)據(jù)和附加符號組成的碼字向量,即其中數(shù)據(jù)符號位于期望的符號位置的碼字,其中附加比特包括來自基于所需ECC比特的數(shù)量而選擇的ECC的奇偶比特。寫入編碼器找到滿足位置規(guī)范的碼字,使得當用預先指定的矩陣M與碼字相乘時,結(jié)果是元數(shù)據(jù),并且使得當用所選擇的ECC的奇偶校驗矩陣H與碼字相乘時,結(jié)果是已知的值,諸如O。在用于讀取通過前述寫入編碼器實施例寫入的數(shù)據(jù)的系統(tǒng)的示例性實施例中,對讀取解碼器的輸入包括從存儲器接收到的錯誤碼字。讀取解碼器的輸出是存儲在存儲器中的數(shù)據(jù)和(可選的)元數(shù)據(jù)。對于可變ECC比特的每個可能的數(shù)量,解碼器嘗試應用對應的奇偶校驗矩陣以糾正錯誤。如果恰好存在導致成功糾正的一個奇偶校驗矩陣,則解碼器將矩陣M乘以經(jīng)糾正的碼字以恢復元數(shù)據(jù),并且從元數(shù)據(jù)恢復碼字內(nèi)的數(shù)據(jù)的位置和附加比特。它返回(或輸出)數(shù)據(jù),并且如果需要,返回(或輸出)元數(shù)據(jù)。替選的示例性實施例包括一種用于獲得相似結(jié)果而無需添加描述應用于所存儲的內(nèi)容的耐久性編碼和壓縮技術的擴展元數(shù)據(jù)的方法。在圖10中示出的實施例中,通過分析所存儲的內(nèi)容獲得所使用的特定的耐久性碼。寫入過程1000如下。N個比特的數(shù)據(jù)序列1002將被寫入K>=N個單元。數(shù)據(jù)被壓縮以獲得具有C個信息符號的壓縮序列1004。兩個閾值1006和1008,即cl和c2,被分別固定為cl<c2<N。如果C>c2,則數(shù)據(jù)被原樣地寫入,使用1填充(Pad)K-N個單元以形成K個擴展比特的序列1010,可選地,對序列進行加擾。在示例性實施例中,當寫入的內(nèi)容是未編碼的時候,寫入可選標志比特1012。如果C<=cl,則使用第一碼(即,碼1)執(zhí)行耐久性編碼。在示例性實施例中,碼1是具有碼字長度K的有界權重碼,其0的數(shù)量在zOO與zOl之間,zOO和zOl被選擇為使得可能的有界權重碼字的總數(shù)量大于或等于2cl。在示例性實施例中,碼1是具有碼字長度K的恒定權重碼,其0的數(shù)量zO為使得可能的恒定權重碼字的總數(shù)量大于或等于2“。在示例性實施例中,如果cl<C<=c2,則使用第二碼(S卩,碼2)執(zhí)行耐久性編碼。在示例性實施例中,碼2是具有碼字長度K的有界權重碼,其0的數(shù)量被包括在ZlO與zll之間,ZlO和zll為使得可能的有界權重碼字的總數(shù)量大于或等于T2。在示例性實施例中,碼2是具有碼字長度K的恒定權重碼,其0的數(shù)量zl為使得可能的恒定權重碼字的總數(shù)量大于或等于2c2。在圖10中,示出了讀取過程1020的示例性實施例。讀取并分析存儲器內(nèi)容以便于識別其所屬的耐久性碼。在示例性實施例中,該分析包括對存儲器內(nèi)容中的0的數(shù)量計數(shù)并且選擇與所計數(shù)的0的數(shù)量匹配的唯一耐久性碼。如果碼字未與可能的給定碼族中的任何耐久性碼匹配,則認為是未編碼的內(nèi)容(可能被加擾)。在任一情況中,如果存在并設定了通知未編碼的內(nèi)容的存在的附加標志,則任何是未編碼的內(nèi)容。在該分析識別到碼并且未設定未編碼標志的情況中,使用所識別的碼對內(nèi)容解碼。本領域的技術人員將認識到,本發(fā)明不限于恒定或有界權重碼,以及相似的實施例可以使用在可用的耐久性編碼碼族中選擇的不同數(shù)量的可能的碼,對于該碼族可以通過檢查碼字唯一地識別每個碼。在示例性實施例中,K=N。圖11中示出的另一示例性實施例包括根據(jù)如下標準執(zhí)行聯(lián)合壓縮和擴展,以高效地將N個數(shù)據(jù)比特編碼為K個單元。在框1102中,所有數(shù)據(jù)比特序列從最高概率到最低概率被列出和排序(sort)。在框1104中,所有長度為K的碼字從最小成本到最大成本排序,其中碼字的成本與寫入該碼字相關聯(lián)的對耐久性的影響成正比。在框1106中,通過使數(shù)據(jù)序列的排序列表的第一元素(即,最可能的N數(shù)據(jù)比特序列)與碼字的排序列表的第一元素(即,具有最小的對耐久性的影響的碼字)關聯(lián),然后使數(shù)據(jù)序列的排序列表的第二元素與碼字的排序列表的第二元素關聯(lián),如此這般,建立表示從數(shù)據(jù)比特序列到碼字的單射(injective)關系的表。在對應的編碼過程中,接收待存儲的信息序列,查閱表以找到待寫入的對應的碼字。在對應的解碼過程中,從存儲器取得碼字,并且掃描表直至找到碼字。解碼的輸出是與接收的碼字相關的信息數(shù)據(jù)。在示例性實施例中,總的標準是使最大可能的序列與最小成本的碼字關聯(lián)。圖12示出了可以通過示例性實施例實現(xiàn)的示例。如圖12中所示,a、b、c、d是在與其各自的概率相同的行中示出的數(shù)據(jù)消息(可以是N=2并且a=00,b=01,c=10和d=11)。假設寫入“0”具有等于1的成本并且寫入“1,,具有等于0的成本,分別建立兩個碼,即K=2和K=3。按照降低的概率對消息排序,并且按照增加的成本對對應的碼字排序(對于K=2,是0、1、1、2,并且對于K=3,是0、1、1、1)。對于碼K=2的平均成本是0.3125(每個單元),而對于K=3是0.1667(每個單元)。直接寫入映射a=00,b=01,c=10和d=11具有0.6785的關聯(lián)成本(每個單元)。此處描述的示例性實施例不僅適用于在非易失性存儲器器件的頁面中編碼的信息,而且還適用于在多個非易失性存儲器器件的頁面中編碼的信息,該多個非易失性存儲器器件作為遞送作為單個外部請求的結(jié)果的數(shù)據(jù)的單個邏輯實體工作。不論是一個設備還是遞送數(shù)據(jù)的多個設備,可以通過僅存取頁面分部(pagesubsection)而得到數(shù)據(jù)。在多個設備的情況中,每個設備存取具有公共頁面地址的公共頁面分部。技術效果和益處包括執(zhí)行自適應耐久性編碼的能力。如此處描述的,待寫入存儲器的數(shù)據(jù)被轉(zhuǎn)換為使對存儲器單元的損耗減小的形式并且因此延長存儲器壽命。此外,如此處描述的寫入的數(shù)據(jù)可以對于錯誤是更加可復原的(例如,即使在存儲的信息中存在錯誤的情況下仍可以恢復數(shù)據(jù))。此處使用的術語僅用于描述特定實施例的目的而并不意圖限制本發(fā)明。除非上下文清楚地指示其他含義,否則如此處使用的單數(shù)形式“一”以及“該”也意圖包括復數(shù)形式。將進一步理解,本說明書中使用的術語“包括”指明了所陳述的特征、整體、步驟、操作、元件和/或部件的存在,但是并不排除存在或添加一個或更多個其他特征、整體、步驟、操作、元件部件和/或它們的組。與所附權利要求中的所有裝置或步驟加功能要素對應的結(jié)構、材料、動作和等同物意圖為包括用于與特別要求保護的其他要求保護的元素組合而執(zhí)行所述功能的任何結(jié)構、材料或動作。本發(fā)明的描述已被呈現(xiàn)用于說明和描述的目的,但是并不意圖為窮舉性的或者使本發(fā)明限于所公開的形式。許多修改和變化對于本領域的普通技術人員將是清楚的,而不偏離本發(fā)明的范圍和精神。已選擇并描述實施例,以最佳地解釋本發(fā)明的原理和實際應用,并且使本領域的其他普通技術人員能夠理解本發(fā)明以用于具有多種修改的多種實施例,如適用于所期望的特定用途。此處示出的流程圖僅是一個示例。存在針對此處描述的該流程圖或步驟(或操作)的許多變化而不偏離本發(fā)明的精神。例如,步驟可以以不同的順序執(zhí)行或者可以添加、刪除或修改步驟。所有這些變化應被視為要求保護的本發(fā)明的一部分。如上文描述的,本發(fā)明的實施例可以具體化為計算機實現(xiàn)的過程和用于實踐這些過程的裝置的形式。本發(fā)明的實施例也可以具體化為計算機程序代碼的形式,其包含在諸如軟盤、CD-ROM、硬盤驅(qū)動器或者任何其他計算機可讀存儲介質(zhì)的有形介質(zhì)中具體化的指令,其中,當計算機程序代碼被加載到計算機中并且由計算機執(zhí)行時,計算機成為用于實踐本發(fā)明的裝置。本發(fā)明還可以被具體化為計算機程序代碼的形式,而不管該計算機程序代碼是例如存儲在存儲介質(zhì)中,加載到計算機中和/或由計算機執(zhí)行,或者在某種傳送介質(zhì)上傳送,諸如在電線或線纜上傳送,通過光纖傳送,或者經(jīng)由電磁輻射傳送,其中,當計算機程序代碼被加載到計算機中并且由計算機執(zhí)行時,計算機成為用于實踐本發(fā)明的裝置。當在通用微處理器上實現(xiàn)時,計算機程序代碼片段對微處理器進行配置以建立特定的邏輯電路。盡管已描述了本發(fā)明的優(yōu)選實施例,但是將理解,本領域的技術人員在現(xiàn)在或?qū)砜梢栽谒綑嗬蟮姆秶鷥?nèi)進行多種改進和增強。這些權利要求應被解釋為保持對首次描述的本發(fā)明的適當?shù)谋Wo。權利要求一種用于存儲數(shù)據(jù)的方法,包括接收寫入數(shù)據(jù)和寫入地址;將壓縮算法應用于所述寫入數(shù)據(jù)以生成壓縮的數(shù)據(jù);將耐久性碼應用于所述壓縮的數(shù)據(jù),響應于通過對所述寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量選擇和應用所述耐久性碼,所述應用耐久性碼產(chǎn)生了碼字;以及將所述碼字寫入所述寫入地址。2.如權利要求1所述的方法,進一步包括在寫入所述碼字之前向所述碼字添加錯誤碼糾正ECC比特。3.如權利要求2所述的方法,其中,添加到所述碼字的ECC比特的數(shù)量是響應于通過對所述寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量。4.如權利要求2所述的方法,其中,添加到所述碼字的ECC比特的數(shù)量包括ECC比特的缺省數(shù)量和響應于通過對所述寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量的ECC比特的可變數(shù)量。5.如權利要求2所述的方法,其中,所述碼字中的所述ECC比特的位置變化。6.如權利要求2所述的方法,其中,所述寫入被編程為使得在將所述碼字寫入所述寫入地址時,實現(xiàn)增加寫入速度、降低功率電平和降低損耗水平中的至少之一,所述編程響應于添加到所述碼字的ECC比特的數(shù)量。7.如權利要求1所述的方法,進一步包括生成用于所述寫入地址的元數(shù)據(jù),讀取操作利用所述元數(shù)據(jù)來對寫入所述寫入地址的所述碼字解碼。8.如權利要求7所述的方法,進一步包括將所述元數(shù)據(jù)存儲在表中。9.如權利要求1所述的方法,進一步包括讀取所述碼字;執(zhí)行所述碼字的分析;響應于所述分析識別所述耐久性碼;利用對于所識別的耐久性碼的解碼器對所述碼字解碼;以及對解碼的碼字解壓縮以生成所述寫入數(shù)據(jù)。10.如權利要求1所述的方法,其中,使用單個編碼功能聯(lián)合執(zhí)行應用所述壓縮和應用所述耐久性編碼。11.一種系統(tǒng),包括接收器,接收寫入數(shù)據(jù)和寫入地址;數(shù)據(jù)壓縮器,將壓縮算法應用于所述寫入數(shù)據(jù)以生成壓縮的數(shù)據(jù);耐久性編碼器,將耐久性碼應用于所述壓縮的數(shù)據(jù),響應于通過對所述寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量選擇和應用所述耐久性碼,所述應用耐久性碼產(chǎn)生碼字;以及存儲器寫入器,將所述碼字寫入所述寫入地址。12.如權利要求11所述的系統(tǒng),進一步包括糾錯編碼器,在所述存儲器寫入器寫入所述碼字之前向所述碼字添加錯誤碼糾正ECC比特。13.如權利要求12所述的系統(tǒng),其中,所述碼字中的所述ECC比特的位置變化。14.一種用于存取存儲器的方法,所述方法包括從存儲器地址取得碼字;用元數(shù)據(jù)矩陣乘以所述碼字以恢復用于所述碼字的元數(shù)據(jù),所述元數(shù)據(jù)包括數(shù)據(jù)位置規(guī)范;響應于所述元數(shù)據(jù)來識別所述碼字中的數(shù)據(jù);以及輸出所述數(shù)據(jù)作為讀取數(shù)據(jù)。15.如權利要求14的方法,其中,所述碼字進一步包括ECC比特,以及所述方法進一步包括在執(zhí)行所述乘法之前向所述碼字應用ECC解碼器,所述ECC解碼器被設計來實現(xiàn)由對應于所述碼字中的ECC比特數(shù)量的奇偶矩陣所指定的ECC碼。16.如權利要求15的方法,其中,所述碼字中的ECC比特的數(shù)量是可變的。17.如權利要求14的方法,其中,所述碼字進一步包括可變且未知的數(shù)量的ECC比特,以及所述方法進一步包括將一個或更多個ECC解碼器應用于所述碼字以定位與所述碼字中的ECC比特的數(shù)量對應的ECC解碼器。18.如權利要求14的方法,進一步包括生成所述碼字,所述生成包括接收所述數(shù)據(jù)和所述元數(shù)據(jù);以及根據(jù)所述元數(shù)據(jù)中的所述數(shù)據(jù)位置規(guī)范將所述數(shù)據(jù)設置在所述碼字中,以及使得所述元數(shù)據(jù)矩陣乘以所述碼字等于所述元數(shù)據(jù);以及將所述碼字寫入所述存儲器地址。19.一種系統(tǒng),包括存儲器讀取器,從存儲器地址取得碼字;元數(shù)據(jù)計算器,用元數(shù)據(jù)矩陣乘以所述碼字以恢復用于所述碼字的元數(shù)據(jù),所述元數(shù)據(jù)包括數(shù)據(jù)位置規(guī)范;元數(shù)據(jù)解釋器,響應于所述元數(shù)據(jù)來識別所述碼字中的數(shù)據(jù);以及發(fā)送器,其輸出所述數(shù)據(jù)作為讀取數(shù)據(jù)。20.如權利要求19所述的系統(tǒng),其中所述碼字進一步包括ECC比特,以及所述系統(tǒng)進一步包括ECC解碼器,在執(zhí)行所述乘法之前其向所述碼字應用ECC碼,所述ECC碼被設計來實現(xiàn)由對應于所述碼字中的ECC比特數(shù)量的奇偶矩陣所指定的ECC碼。全文摘要自適應耐久性編碼包括一種用于存儲數(shù)據(jù)的方法,該方法包括接收寫入數(shù)據(jù)和寫入地址。將壓縮算法應用于寫入數(shù)據(jù)以生成壓縮的數(shù)據(jù)。將耐久性碼應用于壓縮的數(shù)據(jù)以生成碼字。響應于通過對寫入數(shù)據(jù)應用壓縮而節(jié)約的空間量,選擇和應用所述耐久性碼。將所述碼字寫入到所述寫入地址。文檔編號G06F12/02GK101876947SQ201010169329公開日2010年11月3日申請日期2010年4月21日優(yōu)先權日2009年4月30日發(fā)明者A·賈格默漢,J·P·卡里蒂斯,L·A·拉斯特拉斯-蒙塔諾,M·弗朗斯奇尼申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
肥乡县| 调兵山市| 长乐市| 苍山县| 平顺县| 巧家县| 垦利县| 广灵县| 双流县| 浦县| 庆安县| 平定县| 康乐县| 武强县| 华阴市| 奉化市| 积石山| 辉南县| 常宁市| 宿迁市| 新津县| 永安市| 密云县| 瓦房店市| 大同市| 汉源县| 德阳市| 五莲县| 南雄市| 昆明市| 加查县| 绵竹市| 通城县| 曲阳县| 灌南县| 米脂县| 平乐县| 康保县| 安新县| 开阳县| 聊城市|