用于通過數(shù)據(jù)反演來提高數(shù)據(jù)存儲的設(shè)備和方法
【技術(shù)領(lǐng)域】
[0001] 本公開涉及一種用于通過數(shù)據(jù)反演來提高數(shù)據(jù)存儲的設(shè)備和方法。
【背景技術(shù)】
[0002] 如果將會提供改進(jìn)的多位校正的概念,則這將會是非常有益的。
[0003] 增加內(nèi)存的可靠性變得越來越重要,并且減少新出現(xiàn)類型內(nèi)存中的功耗也變得越 來越重要。
[0004] 許多類型的內(nèi)存(例如,MRAM(磁阻隨機(jī)存取存儲器)、R-RAM(電阻隨機(jī)存取存儲 器))針對永久錯(cuò)誤和過錯(cuò)表現(xiàn)出不對稱行為。例如,許多內(nèi)存通常表現(xiàn)出比卡1內(nèi)存錯(cuò)誤 多的卡〇內(nèi)存錯(cuò)誤。其它內(nèi)存通常表現(xiàn)出比卡〇內(nèi)存錯(cuò)誤多的卡1內(nèi)存錯(cuò)誤。
[0005] 例如,針對用于寫1或0的功耗,閃存是不對稱的。換句話說,與當(dāng)0被寫到內(nèi)存 中時(shí)相比,當(dāng)1被寫到內(nèi)存中時(shí),功耗不同。在R-RAM中,錯(cuò)誤是單向的,主要地,發(fā)生卡零 錯(cuò)誤,而非卡一錯(cuò)誤。此外,關(guān)于MRAM,主要發(fā)生卡0錯(cuò)誤,而非卡1錯(cuò)誤。
[0006] 如果將會提供改進(jìn)的數(shù)據(jù)存儲的概念,則這將會是非常有益的。
【發(fā)明內(nèi)容】
[0007] 提供一種包括處理單元和內(nèi)存的設(shè)備。處理單元被構(gòu)造為通過采用線性糾錯(cuò)碼來 對多個(gè)位進(jìn)行編碼以獲得多個(gè)編碼位,其中所述多個(gè)編碼位中的每一個(gè)具有位值,其中線 性糾錯(cuò)碼具有至少3的碼距,并且其中所述多個(gè)編碼位形成線性糾錯(cuò)碼的第一碼字。另外, 處理單元被構(gòu)造為根據(jù)編碼位的子集確定指示編碼位的子集是否應(yīng)該被反演的反演決定, 其中所述子集包括所述多個(gè)編碼位中的至少三個(gè)編碼位。當(dāng)反演決定指示編碼位的子集不 應(yīng)該被反演時(shí),處理單元被構(gòu)造為將第一碼字的位存儲在內(nèi)存中作為存儲字,其中存儲在 內(nèi)存中的第一碼字的位包括具有第一預(yù)定義位值的指示位。并且當(dāng)反演決定指示編碼位的 子集應(yīng)該被反演時(shí),處理單元被構(gòu)造為通過經(jīng)由改變編碼位的子集的每個(gè)編碼位的位值反 演編碼位的子集的每個(gè)編碼位來修改線性糾錯(cuò)碼的第一碼字以獲得線性糾錯(cuò)碼的第二碼 字,并且被構(gòu)造為將第二碼字的位存儲在內(nèi)存中作為存儲字,其中第二碼字的位包括指示 位,指示位被反演,以使得指示位具有不同于第一預(yù)定義位值的第二預(yù)定義位值。
[0008] 提供一種方法。所述方法包括:使用編碼器通過采用線性糾錯(cuò)碼來對多個(gè)位進(jìn)行 編碼以獲得多個(gè)編碼位,其中所述多個(gè)編碼位中的每一個(gè)具有位值,其中線性糾錯(cuò)碼具有 至少3的碼距,并且其中所述多個(gè)編碼位形成線性糾錯(cuò)碼的第一碼字,使用處理單元根據(jù) 編碼位的子集確定指示編碼位的子集是否應(yīng)該被反演的反演決定,其中所述子集包括所述 多個(gè)編碼位中的至少三個(gè)編碼位,當(dāng)反演決定指示編碼位的子集不應(yīng)該被反演時(shí),將第一 碼字的位存儲在內(nèi)存中作為存儲字,其中存儲在內(nèi)存中的第一碼字的位包括具有第一預(yù)定 義位值的指示位,并且當(dāng)反演決定指示編碼位的子集應(yīng)該被反演時(shí),通過經(jīng)由改變編碼位 的子集的每個(gè)編碼位的位值反演編碼位的子集的每個(gè)編碼位來修改線性糾錯(cuò)碼的第一碼 字以獲得線性糾錯(cuò)碼的第二碼字,并且將第二碼字的位存儲在內(nèi)存中作為存儲字,其中第 二碼字的位包括指示位,指示位被反演,以使得指示位具有不同于第一預(yù)定義位值的第二 預(yù)定義位值。
[0009] 提供一種包括處理單元和內(nèi)存的設(shè)備。處理單元被構(gòu)造為對多個(gè)位進(jìn)行編碼以獲 得多個(gè)編碼位,并且處理單元還被構(gòu)造為確定反演決定。當(dāng)反演決定指示編碼位的子集不 應(yīng)該被反演時(shí),處理單元被構(gòu)造為將第一碼字的位存儲在內(nèi)存中作為存儲字。當(dāng)反演決定 指示編碼位的子集應(yīng)該被反演時(shí),處理單元被構(gòu)造為反演編碼位的子集的每個(gè)編碼位以獲 得第二碼字并且將第二碼字存儲在內(nèi)存中。
[0010] 提供一種設(shè)備。所述設(shè)備包括處理單元和內(nèi)存。處理單元被構(gòu)造為通過采用線 性糾錯(cuò)碼來對多個(gè)位進(jìn)行編碼以獲得多個(gè)編碼位,其中所述多個(gè)編碼位中的每一個(gè)具有位 值,其中糾錯(cuò)碼具有至少3的碼距,并且其中所述多個(gè)編碼位形成線性糾錯(cuò)碼的第一碼字。 此外,處理單元被構(gòu)造為根據(jù)編碼位的子集確定指示編碼位的子集是否應(yīng)該被反演的反演 決定,其中確定編碼位的子集,從而如果子集的所有位被反演,則糾錯(cuò)碼的第一碼字被變換 成糾錯(cuò)碼的第二碼字,并且其中所述子集包括所述多個(gè)編碼位中的所有編碼位或者包括所 述多個(gè)編碼位中的至少三個(gè)編碼位,并且其中編碼位的子集的編碼位是指示位,其中指示 位的位值等于第一預(yù)定義位值。當(dāng)反演決定指示編碼位的子集不應(yīng)該被反演時(shí),處理單元 被構(gòu)造為將第一碼字的位存儲在內(nèi)存中作為存儲字,其中存儲在內(nèi)存中的第一碼字的位包 括具有第一預(yù)定義位值的指示位。當(dāng)反演決定指示編碼位的子集應(yīng)該被反演時(shí),處理單元 被構(gòu)造為通過經(jīng)由改變編碼位的子集的每個(gè)編碼位的位值反演編碼位的子集的每個(gè)編碼 位來修改線性糾錯(cuò)碼的第一碼字以獲得線性糾錯(cuò)碼的第二碼字,并且被構(gòu)造為將第二碼字 存儲在內(nèi)存中作為存儲字,其中第二碼字包括指示位,指示位被反演,以使得指示位的位值 等于不同于第一預(yù)定義位值的第二預(yù)定義位值。
[0011] 此外,提供另一實(shí)施例。所述設(shè)備包括處理單元和內(nèi)存。在這種另一實(shí)施例中,處 理單元被構(gòu)造為由具有常數(shù)值的1位bf1;...>4補(bǔ)充將要被存儲在可尋址內(nèi)存中的地址a的 凈荷數(shù)據(jù)位Xp???du,其中1彡1。
[0012]處理單元被構(gòu)造為利用校正至少1位錯(cuò)誤的線性碼C將具有常數(shù)值的位bf^...>4 和凈荷數(shù)據(jù)位Xp…,xn編碼為碼字ci,…,cm, Xi,…,xn,其中Ci,…,cm是當(dāng)從地址 位獲得的位未被用于形成碼字時(shí)從...>&,Xl,…,xn確定的校驗(yàn)位,并且利用校正至少1位錯(cuò)誤的線性碼〇將位&;^...>;^,,11,~,11^ 1,~,415編碼為碼字(31,~,(3111>;^,...>;^,,1 1,~ ,xn,Ai,…,Ak,其中q,…,cm是當(dāng)從地址位ai,…,aj?獲得的位Ai,…,Ak被用于編碼時(shí)從 匕;^,..>1,,叉1,一,叉11,八 1,一,八15確定的校驗(yàn)位,并且八1,一,八15 = ;^1,一,&1)由函數(shù)€:0,11: -l〇,l}k從地址位確定。
[0013] 此外,處理單元被構(gòu)造為定義將要被直接地或反演地存儲的位q,…,cm, ,bf\,Xi,…,xn的位的K個(gè)組Yi,…,Yk,以使得定義的位&;^,...>;^的子集被唯一地分配給這 些組中的每一組,其中K彡1。
[0014] 另外,處理單元被構(gòu)造為選擇組Yi,…,Yk的位的哪個(gè)組被以反演或非反演方式存 儲在內(nèi)存中。
[0015] 處理單元被構(gòu)造為在地址a將位q,…,cm, Xp…,xn寫到內(nèi)存中,其中屬 于反演地寫到內(nèi)存中的位的組的位在寫入之前被反演,并且不屬于其位被反演的組的位被 以非反演方式寫到內(nèi)存中, 此外,處理單元被構(gòu)造為讀出在地址a存儲在內(nèi)存中的位。
[0016] 如果從地址位獲得的位未被用于形成碼字,則處理單元被構(gòu)造為基于糾錯(cuò)碼C校 正至少在已直接地或反演地存儲常數(shù)值bfvbf\的位位置從內(nèi)存讀出的位,所述從內(nèi)存讀 出的位可能由于錯(cuò)誤而不同于寫到相同地址的值。
[0017] 如果從地址位獲得的位被用于形成碼字,則處理單元被構(gòu)造為基于糾錯(cuò)碼C校正 至少在已直接地或反演地存儲常數(shù)值bf^.^bfi的位位置通過使用從可能錯(cuò)誤的地址位獲 得的也可能錯(cuò)誤的位…,^?從內(nèi)存讀出的可能錯(cuò)誤的值。
[0018] 處理單元被構(gòu)造為從通過使用唯一地分配給各位組的代碼C校正的讀出的常數(shù) 值確定位組是已被直接地寫到內(nèi)存中還是已被反演地寫到內(nèi)存中以及哪個(gè)位組已被直接 地或反演地寫到內(nèi)存中。
[0019] 處理單元被構(gòu)造為反演已在前一步驟中被確定為其位已在寫入期間被反演的位 組的位組的讀出并且校正的位。
[0020] 在實(shí)施例中,k= 1和%,…,Ak) = (&1,…,ar)適用。
[0021] 根據(jù)實(shí)施例,k=LAi=fh,…,ar) =ai+a2 +…+ar適用并且八丨是地址位 ai,…,aj?的奇偶性。
[0022] 此外,提供這樣的另一實(shí)施例:直接地或反演地將形成校正至少1位錯(cuò)誤的線性 碼C的碼字的位的子集直接地或反演地寫到內(nèi)存基元的內(nèi)存中,以及從直接地或反演地存 儲的從內(nèi)存可能錯(cuò)誤地讀出的位讀取和恢復(fù)寫到內(nèi)存中的位。所述設(shè)備包括處理單元和內(nèi) 存。
[0023] 在這種另一實(shí)施例中,處理單元被構(gòu)造為定義能夠被直接地或反演地寫到內(nèi)存中 的利用校正至少1位錯(cuò)誤的線性碼C編碼的位的子集的數(shù)量K,其中K多1。
[0024] 處理單元被構(gòu)造為提供將要在地址a= ,…,a,被存儲為校正至少1位錯(cuò)誤的線 性系統(tǒng)碼的碼字的子字的n個(gè)凈荷數(shù)據(jù)位Xl,…,xn,r多2, 處理單元被構(gòu)造為形成代碼C的信息位Ul,…,uN,其中如果地址a未被用于形成代碼C的碼字,則由1個(gè)定義的二進(jìn)制值bf1;補(bǔ)充數(shù)據(jù)位xi,…,xn,以使得 u" …,uN =bf" …,bf\,Xi,…,xn N= 1 +n適用,并且如果地址a被用于形成代碼C的碼字,則由1個(gè)定義的二進(jìn)制值 匕匕...>;^補(bǔ)充數(shù)據(jù)位xi,…,xn和從地址位ai,…,a1?獲得的位Ai,…,Ak,以使得 屮,…,% =bf\,…,bf\,Xi,…,xn,A!,…,Ak N= 1 +n+k適用,其中A!,…,Ak =f(a" …,ar) 是由函數(shù)f從r個(gè)地址位ai,…,aj?的值唯一地確定的二進(jìn)制值,1彡1和1彡k彡r, 其中如果地址位未被用于錯(cuò)誤檢測或錯(cuò)誤校正,則處理單元被構(gòu)造為形成代碼C的碼 字y,…,yp,其中c是具有系統(tǒng)形式的生成矩陣G和H矩陣H的線性系統(tǒng)碼,其中 y=Yi,---.yp= (u1; ???,%)G* = 〇!,???,〇",,bfj, ???,bf1;x1; ???,xn 適用并且Cl,…,cmm是校驗(yàn)位,生成矩陣G是(N,P)矩陣并且H矩陣H= (h,…,hP) 是([P-N],P)矩陣,以使得H矩陣的所有列兩兩不同并且不等于0,并且m=P-N和N =n+ 1適用, 其中處理單元被構(gòu)造為確定位yi,…,yp =Cl,…,cm,bf\,…,bfi,Xp…,K個(gè)子集 Y「{yi,i,...,yi,qJ,...,YK _ {yK,i,...,yK,qiJ, 以使得位...>4的子集被唯一地分配給每個(gè)子集Yi,…,Yk, 以使得如果
的二進(jìn)制值,則
是代碼C的碼字,當(dāng)k= 1,…,K并且j= 1,…,P時(shí),如果yj是子集Yk的元素,則yf& = 1,并且如果7』不是子集Yk 的元素,則= 0,以使得
適用并且H是代碼C的H矩陣, 其中處理單元被構(gòu)造為定義位的組Yl,…,Yk中的哪一組被直接地或反演地寫到內(nèi)存 中, 其中處理單元被構(gòu)造為形成將要被寫到內(nèi)存中的?位屯,…,dP,其中對于1,…P,當(dāng)yi 屬于其位被反演地寫到內(nèi)存中的組時(shí),屯=并且當(dāng)yi不屬于其位被反演地寫到內(nèi)存中 的任何組時(shí),屯= yi, 其中處理單元被構(gòu)造為在地址a將位屯,…,dP寫到內(nèi)存中, 其中處理單元被構(gòu)造為創(chuàng)建地址a并且讀出源自寫在地址a的值屯,…,dP的存儲在地 址a的由于可能的錯(cuò)誤導(dǎo)致的可能錯(cuò)誤的值_
其中處理單元被構(gòu)造為定義將要在錯(cuò)誤值的情況下通過使用代碼C校正的將要由代 碼C校正的L個(gè)位位置匕,…,匕,1彡P(guān)并且{ki,…,kj£ {1,…,P},其中已直接地或反 演地存儲位位置屬于將要被校正的位位置, 其中處理單元被構(gòu)造為確定基于代碼C校正可由代碼C校正的錯(cuò)誤的定義的L個(gè)位位 置匕,…,匕的二進(jìn)制校正值
其中處理單元被構(gòu)造為至少在已直接地或反演地存儲值的位位置形成校正
其中op是唯一可逆布爾運(yùn)算, 其中處理單元被構(gòu)造為基于已知的插入值通過使用代碼C校正的各讀出 值確定位的哪個(gè)組Yi,…,Yk已被直接地或反演地存儲, 其中處理單元被構(gòu)造為在屬于其位已被直接地寫到內(nèi)存中的位的組的情況下輸出
并且在y#屬于已在寫到內(nèi)存期間被反演地寫到內(nèi)存中的位的組的情 況下輸出位
,其中"〇P"是二進(jìn)制唯一可逆布爾運(yùn)算, 其中如果地址位被用于錯(cuò)誤檢測和錯(cuò)誤校正,則處理單元被構(gòu)造為形成代碼C的碼字y=yi,…,yP,其中C是具有系統(tǒng)形式的生成矩陣G和H矩陣H的線性系統(tǒng)碼,其中 y=y" …,yP =(屮,…,%) ?G= =Ci,…,cm,bf\,…,bf\,Xi,…,xn,Ai,…,Ak 適用,生成矩陣G是(N,P)矩陣并且H矩陣H= (hi,…,hP)是([P-N],P)矩陣,以使 得H矩陣的所有列兩兩不同并且不等于0,并且P=n+l+m+k,并且q,…,cm是校驗(yàn) 位,(N通過P代替) 其中處理單元被構(gòu)造為確定位yi,…,yn+1,yn+1+k+1,...,yp =Cl,…,Cm,bf\,…,…,Xn 的K個(gè)子集Yi= {y1;1,…,yi,ql},…,YK= {yK;1,…,yK,qK}, 以使得位bfv.^bfv的每個(gè)位僅屬于子集Yi,…,Yk之一,并且以使得如果yg是位y:,…,yP的二進(jìn)制值,則yf,..., 4是代碼c的碼字,對于k= 1,…,K并且對于j= 1,…,P, 適用: 如果h是子集Yk的元素,則= 1,并且如果&不是子集Yk的元素,則= 〇,以使
適用并且H是代碼C的H矩陣, 其中處理單元被構(gòu)造為定義位的哪一組Yl,…,Yk被直接地或反演地寫到內(nèi)存中, 其中處理單元被構(gòu)造為形成將要被寫到內(nèi)存中的P-Ididi,…,cU#,其中i= 1,…,m+n+ 1, iyi屬于其位被直接地寫到內(nèi)存中的組時(shí),I= yi,并且 當(dāng)yi屬于其位被反演地寫到內(nèi)存中的組時(shí),I=i, 其中處理單元被構(gòu)造為在地址a將位屯,…,dm+n+1寫到內(nèi)存中, 其中處理單元被構(gòu)造為創(chuàng)建地址a并且讀出源自寫在地址a的值屯,…,dn+1,dn+k+1,… ,dP的存儲在地址a的由于可能的錯(cuò)誤導(dǎo)致的可能錯(cuò)誤的值
其中處理單元被構(gòu)造為定義在錯(cuò)誤值的情況下通過使用代碼C校正的將要由代碼C校 正的L個(gè)位位置1^,…,kL,L彡P(guān)-k并且{ki,…,kj£ {1,…,n+ 1,n+ 1 +k+ 1,P}, 其中已直接地或反演地存儲位位置屬于將要被校正的位位置, 其中處理單元被構(gòu)造為確定針對可由代碼C校正的錯(cuò)誤的定義的L個(gè)位位置&,…,匕 的二進(jìn)制校正值
其中處理單元被構(gòu)造為至少在已直接地或反演地存儲值bfp^bfi的位位置形成校正
其中"〇P"是二進(jìn)制清楚地可逆的運(yùn)算, 其中處理單元被構(gòu)造為基于已知的插入值bfibfi和讀出并且通過使用代碼C校正 的對應(yīng)正確值確定位的哪個(gè)組t,…,Yk的位已被直接地或反演地存儲, 其中處理單元被構(gòu)造為在屬于其位已被直接地寫到內(nèi)存中的位的組的情況下輸出
并且 在y%屬于已在寫到內(nèi)存期間被反演地寫到內(nèi)存中的位的組的情況下輸出位
其中"op"是二進(jìn)制唯一可逆布爾運(yùn)算。
[0025] 根據(jù)另一實(shí)施例,提供一種用于將位存儲在內(nèi)存中的設(shè)備,其中所述位被利用線 性糾錯(cuò)碼C編碼,線性糾錯(cuò)碼C具有至少3的碼距,其中確定利用線性糾錯(cuò)碼C編碼的位的 子集是被直接寫到內(nèi)存中還是被以逐位反演方式寫到內(nèi)存中,并且其中代碼C包括H矩陣 H,其中所述設(shè)備包括處理單元和內(nèi)存。直接地或反演地寫到內(nèi)存中的位的子集包括至少一 個(gè)二進(jìn)制常數(shù)值,所述至少一個(gè)二進(jìn)制常數(shù)值與用于編碼的凈荷數(shù)據(jù)位一起形成線性碼C 的碼字。處理單元被構(gòu)造為當(dāng)位的各子集的位被直接地寫到內(nèi)存中時(shí)將該二進(jìn)制常數(shù)值作 為二進(jìn)制值bf寫到內(nèi)存中。處理單元被構(gòu)造為當(dāng)位的各子集的位被反演地寫到內(nèi)存中時(shí) 將該二進(jìn)制常數(shù)值作為反演值P寫到內(nèi)存中。
[0026]處理單元被構(gòu)造為當(dāng)直接地或反演地寫到內(nèi)存中的位的子集被反演時(shí)將代碼C的碼字轉(zhuǎn)換成相同代碼的碼字,并且形成代碼的H矩陣,從而與直接地或反演地寫到內(nèi)存 中的位的子集對應(yīng)的H矩陣的列的每個(gè)分量的一的數(shù)量是偶數(shù)。
[0027]此外,處理單元被構(gòu)造為當(dāng)從內(nèi)存讀出時(shí)通過使用線性糾錯(cuò)碼C來校正從內(nèi)存讀 出的可能錯(cuò)誤的位,其中當(dāng)位的各子集已被直接地寫到內(nèi)存中時(shí)至少校正在已寫入常數(shù)二 進(jìn)制值bf的位位置的位,或者當(dāng)位的各子集已被反演地寫到內(nèi)存中時(shí)至少校正在已寫入 常數(shù)二進(jìn)制值的位位置的位。
[0028]另外,處理單元被構(gòu)造為在讀出之后當(dāng)已在已存儲常數(shù)值bf或反演常數(shù)值的 位位置讀出的校正值等于@時(shí)反演已被直接地或反演地寫到內(nèi)存中的位的子集的位,并 且當(dāng)這個(gè)值等于bf時(shí)不反演。
[0029]根據(jù)另一實(shí)施例,提供一種方法。所述方法包括: 通過采用線性糾錯(cuò)碼來對多個(gè)位進(jìn)行編碼以獲得多個(gè)編碼位,其中所述多個(gè)編碼位中 的每一個(gè)具有位值,其中糾錯(cuò)碼具有至少3的碼距,并且其中所述多個(gè)編碼位形成線性糾 錯(cuò)碼的第一碼字。
[0030]根據(jù)編碼位的子集確定指示編碼位的子集是否應(yīng)該被反演的反演決定,其中確定 編碼位的子集,從而如果子集的所有位被反演,則糾錯(cuò)碼的第一碼字被變換成糾錯(cuò)碼的第 二碼字,并且其中所述子集包括所述多個(gè)編碼位中的所有編碼位或者包括所述多個(gè)編碼位 中的至少三個(gè)編碼位,并且其中編碼位的子集的編碼位是指示位,其中指示位的位值等于 第一預(yù)定義位值, 當(dāng)反演決定指示編碼位的子集不應(yīng)該被反演時(shí),將第一碼字的位存儲在內(nèi)存中作為存 儲字,其中存儲在內(nèi)存中的第一碼字的位包括具有第一預(yù)定義位值的指示位。
[0031]當(dāng)反演決定指示編碼位的子集應(yīng)該被反演時(shí),通過經(jīng)由改變編碼位的子集的每個(gè) 編碼位的位值反演編碼位的子集的每個(gè)編碼位來修改線性糾錯(cuò)碼的第一碼字以獲得線性 糾錯(cuò)碼的第二碼字,并且將第二碼字存儲在內(nèi)存中作為存儲字,其中第二碼字包括指示位, 指示位被反演,以使得指示位的位值等于不同于第一預(yù)定義位值的第二預(yù)定義位值。
[0032]實(shí)施例基于發(fā)現(xiàn):數(shù)據(jù)反演可被用于數(shù)據(jù)存儲。根據(jù)實(shí)施例,數(shù)據(jù)反演允許掩蔽永 久錯(cuò)誤。當(dāng)內(nèi)存相對較新時(shí),當(dāng)誤碼率相對較高時(shí),這尤其有用。
[0033]如果卡0錯(cuò)誤發(fā)生在數(shù)據(jù)位置,如果將要被存儲在這個(gè)位置的位是0,則不發(fā)生錯(cuò) 誤。但如果將要被存儲的位是1,則發(fā)生錯(cuò)誤。如果將要被存儲的位是1,則對于反演數(shù)據(jù), 將要被存儲在這個(gè)位置的位是〇,并且如果該位被反演地存儲,則不發(fā)生錯(cuò)誤。
[0034]根據(jù)實(shí)施例,如果存在幾個(gè)卡住錯(cuò)誤,則分別反演或不反演數(shù)據(jù)字中的數(shù)據(jù)的不 同組是非常有用的。通過如此操作,存儲數(shù)據(jù)能夠通過反演數(shù)據(jù)的組而適應(yīng)于發(fā)生的錯(cuò)誤。 [0035]此外,例如,如果存儲1需要比存儲零多的能量,則數(shù)據(jù)反演允許減少功耗,反之 亦然。
[0036]例如,如果擦除狀態(tài)由1表示,則對于寫0,可能需要比寫1多得多的能量?;蛘撸?例如,如果數(shù)據(jù)字中的〇的數(shù)量大于1的數(shù)量,則在存儲之前反演數(shù)據(jù)是有用的。
[0037]根據(jù)實(shí)施例,如果數(shù)據(jù)被以成組方式反演,則能夠?qū)崿F(xiàn)更好的適應(yīng)。
[0038] 根據(jù)實(shí)施例,數(shù)據(jù)反演被用于減小誤碼率。如果錯(cuò)誤單向地發(fā)生,例如,將要被存 儲的1例如通過卡0錯(cuò)誤而被改變?yōu)?,則等于0的位將不會被改變?yōu)殄e(cuò)誤狀態(tài)。
[0039] 如果數(shù)據(jù)字中的1的數(shù)量大于0的數(shù)量,則當(dāng)存在比卡1錯(cuò)誤多的卡0錯(cuò)誤時(shí),在 存儲之前反演數(shù)據(jù)是有用的。然后,在反演之后,〇的數(shù)量大于1的數(shù)量,并且可能的錯(cuò)誤的 數(shù)量減少。
[0040] 如果數(shù)據(jù)被以成組方式反演,則能夠?qū)崿F(xiàn)更好的適應(yīng)。
[0041] 根據(jù)實(shí)施例,"固定位"被添加到數(shù)據(jù)位。數(shù)據(jù)位和固定位被共同地用作糾錯(cuò)線性 碼C的信息位,并且從信息位(即,數(shù)據(jù)位和固定位)確定校驗(yàn)位。
[0042] 根據(jù)實(shí)施例,選擇代碼C,從而如果字w是碼字,則反演碼字歹也是碼字。在實(shí)施 例中,碼字被直接地或反演地存儲。
[0043] 根據(jù)實(shí)施例,如果發(fā)生錯(cuò)誤位,則也使用糾錯(cuò)碼C校正固定位。在校正之后,校正 的固定位指示存儲在內(nèi)存中的數(shù)據(jù)是否將要被反演。根據(jù)實(shí)施例,固定位由相同的線性碼 C校正,數(shù)據(jù)位和校驗(yàn)位也由相同的線性碼C校正。
[0044] 在實(shí)施例中,碼字的位的組或子集被反演。指示組被反演或不被反演的固定位被 分派給每個(gè)子組。所有這些固定位是用于確定校驗(yàn)位的信息位的一部分。
[0045] 根據(jù)實(shí)施例,選擇子組,從而子組的位的反演將代碼C的碼字變換成C的碼字。
[0046] 在一些實(shí)施例中,地址位是碼字的一部分,但不被存儲,并且地址位不被反演。
[0047] 根據(jù)實(shí)施例,固定位(反演標(biāo)記位)是由線性碼執(zhí)行的錯(cuò)誤校正的一部分。
[0048] 在一些實(shí)施例中,位的子組被反演。
[0049] 根據(jù)實(shí)施例,選擇代碼,從而子組的位的反演將碼字變換成碼字。
[0050] 在一些實(shí)施例中,地址被包括在校驗(yàn)位的確定中,但不被反演。
[0051] 在使用附圖詳細(xì)地描述實(shí)施例之前,應(yīng)該指出,相同或在功能上等同的元件在附 圖中被給予相同的標(biāo)號,并且省略對具有相同標(biāo)號的元件的重復(fù)描述。因此,為具有相同標(biāo) 號的元件提供的描述是可相互交換的。
【附圖說明】
[0052] 圖1表示根據(jù)實(shí)施例的設(shè)備, 圖2表示根據(jù)另一實(shí)施例的設(shè)備, 圖3表示根據(jù)另一實(shí)施例的設(shè)備, 圖4表示根據(jù)另一實(shí)施例的設(shè)備, 圖5表不根據(jù)另一實(shí)施例的設(shè)備,和 圖6表示根據(jù)另一實(shí)施例的設(shè)備。
【具體實(shí)施方式】
[0053] 提供一種包括處理單元和內(nèi)存的設(shè)備。處理單元被構(gòu)造為對多個(gè)位進(jìn)行編碼以獲 得多個(gè)編碼位,處理單元被構(gòu)造為確定反演決定。當(dāng)反演決定指示編碼位的子集不應(yīng)該被 反演時(shí),處理單元被構(gòu)造為將第一碼字的位存儲在內(nèi)存中作為存儲字。當(dāng)反演決定指示編 碼位的子集應(yīng)該被反演時(shí),處理單元被構(gòu)造為反演第一碼字的編碼位的子集的每個(gè)編碼位 以獲得第二碼字并且將第二碼字存儲在內(nèi)存中。
[0054] 圖1表示根據(jù)實(shí)施例的設(shè)備。所述設(shè)備包括處理單元120和內(nèi)存110。處理單元 120被構(gòu)造為通過采用線性糾錯(cuò)碼來對多個(gè)位進(jìn)行編碼以獲得多個(gè)編碼位,其中所述多個(gè) 編碼位中的每一個(gè)具有位值,其中糾錯(cuò)碼具有至少3的碼距,并且其中所述多個(gè)編碼位形 成線性糾錯(cuò)碼的第一碼字。此外,處理單元120被構(gòu)造為根據(jù)編碼位的子集確定指示編碼 位的子集是否應(yīng)該被反演的反演決定,其中確定編碼位的子集,從而如果子集的所有位被 反演,則糾錯(cuò)