用于將定形數(shù)據(jù)加擾的方法
【專利摘要】一種方法,其包括,在數(shù)據(jù)存儲(chǔ)設(shè)備中,接收具有特定比例的0值和1值的數(shù)據(jù),并且將數(shù)據(jù)加擾以生成具有該特定比例的0值和1值的數(shù)據(jù)的加擾數(shù)據(jù)。
【專利說(shuō)明】用于將定形數(shù)據(jù)加擾的方法
[0001]對(duì)于相關(guān)申請(qǐng)的交叉參考
[0002]本申請(qǐng)要求在2011年10月20日提交的美國(guó)臨時(shí)申請(qǐng)N0.61/549,448的優(yōu)先權(quán),該申請(qǐng)通過(guò)引用而完全并入本申請(qǐng)中。
【技術(shù)領(lǐng)域】
[0003]本公開(kāi)大致涉及將數(shù)據(jù)加擾。
【背景技術(shù)】
[0004]數(shù)據(jù)可以在被存儲(chǔ)在存儲(chǔ)器中之前被修改。例如,數(shù)據(jù)可以被“定形(shaped)”以改變?cè)摂?shù)據(jù)中的I值(“I”)與O值(“O”)的比例。存儲(chǔ)定形數(shù)據(jù)會(huì)比存儲(chǔ)具有相同數(shù)目的I和O的隨機(jī)數(shù)據(jù)更少地磨損存儲(chǔ)器。作為另一示例,數(shù)據(jù)可以被“加擾”以使得數(shù)據(jù)利用應(yīng)用于該數(shù)據(jù)和應(yīng)用于隨機(jī)或偽隨機(jī)的位序列的、按位的異或(XOR)操作而顯得更隨機(jī)。將數(shù)據(jù)加擾可以移除數(shù)據(jù)中的位的重復(fù)模式(例如長(zhǎng)序列的O或I),這些重復(fù)模式當(dāng)寫(xiě)入存儲(chǔ)器時(shí)可能造成編程干擾影響。然而,如果通過(guò)以隨機(jī)或偽隨機(jī)的位序列對(duì)定形數(shù)據(jù)進(jìn)行異或而將該定形數(shù)據(jù)加擾,則該加擾數(shù)據(jù)可能并不保留“所定形的”比例的I和0,而是可以替代地顯示出基本上隨機(jī)的分布,其中I和O以基本上相同的概率出現(xiàn)。
【發(fā)明內(nèi)容】
[0005]置換加擾(permutation scrambling)生成保留輸入數(shù)據(jù)的I和O的比例的加擾數(shù)據(jù)。置換加擾操作可以被用于將定形數(shù)據(jù)加擾,以生成可以存儲(chǔ)至存儲(chǔ)器的定形加擾數(shù)據(jù)。定形加擾數(shù)據(jù)可以從存儲(chǔ)器讀取并且可以應(yīng)用另一置換加擾操作以恢復(fù)該定形數(shù)據(jù)。
【專利附圖】
【附圖說(shuō)明】
[0006]圖1是示出了置換加擾的一個(gè)特定實(shí)施例的大體圖;
[0007]圖2是示出了包括置換加擾器的數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)特定實(shí)施例的框圖;
[0008]圖3是示出了置換加擾器的另一特定實(shí)施例的框圖。
[0009]圖4是示出了碼字的置換和該碼字的去置換的一個(gè)特定實(shí)施例圖示;以及
[0010]圖5是示出了置換加擾方法的一個(gè)特定實(shí)施例的流程圖。
【具體實(shí)施方式】
[0011]用戶數(shù)據(jù)可以被變形(transformed)為“定形的”數(shù)據(jù)序列,其具有與原始用戶數(shù)據(jù)不同的數(shù)據(jù)統(tǒng)計(jì)。例如,用戶數(shù)據(jù)序列可以被變形為其中減少了 O的數(shù)目的“定形的”數(shù)據(jù)序列。將數(shù)據(jù)定形的一個(gè)動(dòng)機(jī)是減小干擾影響在閃存中的出現(xiàn)并且減小閃存單元的磨損。
[0012]數(shù)據(jù)也可以在將該數(shù)據(jù)編程到閃存中之前被加擾。這樣的加擾可以用于使得被編程至閃存的數(shù)據(jù)顯得隨機(jī)并且并不重復(fù)。編程至存儲(chǔ)器的重復(fù)模式可能造成歸因于升壓?jiǎn)栴}和返回模式的不同編程干擾影響。例如,數(shù)據(jù)可以通過(guò)以偽隨機(jī)位序列(其可以利用線性反饋移位寄存器(LFSR)來(lái)生成)對(duì)該數(shù)據(jù)進(jìn)行異或而被加擾。
[0013]然而,基于XOR的加擾改變由定形變形生成的定形(shaping)。當(dāng)以具有約50%O的、隨機(jī)獨(dú)立同分布的(1.1.d)位序列對(duì)具有小部分O的“定形的”位序列進(jìn)行異或時(shí),則所形成的加擾序列也將具有約50%的0,并且“定形”將丟失。事實(shí)上,當(dāng)以具有約50%的O和約50%的I并且與輸入序列無(wú)關(guān)聯(lián)的(偽)隨機(jī)1.1.d.位序列對(duì)O和I的輸入序列進(jìn)行異或時(shí),將形成具有約50%的O和約50%的I的隨機(jī)1.1.d.序列。因?yàn)樵趦蓚€(gè)序列之間沒(méi)有關(guān)聯(lián),,所以該1.1.d.序列將貫穿輸入序列的O、而以約50%的O和約50%的I的比例來(lái)分布。因此,輸入序列的約50%的O將變形符號(hào)并且當(dāng)輸入序列與該1.1.d.序列異或時(shí)成為I。類似地,輸入序列的約50%的I將變成0,引起在所得到的序列中的約50%的O的分布。
[0014]公開(kāi)了這樣的數(shù)據(jù)加擾器,其保留位序列的定形分布。例如加擾器可以根據(jù)某偽隨機(jī)置換并且在并不將數(shù)據(jù)與偽隨機(jī)或隨機(jī)加擾字異或的情況下置換位位置。
[0015]一種用于在長(zhǎng)度為Q的字符串(例如符號(hào)序列(例如數(shù)據(jù)位))上實(shí)現(xiàn)置換加擾器的方法可以包括:
[0016]選擇與Q互質(zhì)的隨機(jī)或偽隨機(jī)整數(shù)P ;以及
[0017]將該字符串重新排序,使得第一位將是位數(shù)(bit numbeiOO,第二位將是位數(shù)P (模(mod) Q),第三位將是2P (mod Q),并且通常第k位將是位數(shù)(k-l)P(mod Q)。或者,可以通過(guò)從字符串選擇初始位(位數(shù)0,或者任何其它隨機(jī)或非隨機(jī)選取的位),并且然后通過(guò)(周期地)每次以P遞增地址來(lái)選擇后面的位,選擇順序位來(lái)將字符串重新排序,以形成加擾輸出。
[0018]圖1示出了對(duì)具有長(zhǎng)度Q等于12并且P = 5的字符串102進(jìn)行置換加擾的實(shí)施例100。示出了加擾序列106和該加擾序列的索引104。加擾序列106以第一位開(kāi)始(即,加擾序列106的第一位與原始序列102的第一位相同)。通過(guò)以P = 5遞增位地址來(lái)選取下一位(見(jiàn)上方弧段110),并且又通過(guò)以5遞增來(lái)選取接下來(lái)的位。對(duì)于第三位,不能再遞增5,因?yàn)橹磷址?02的末端僅有I位了,于是周期性地完成以5遞增意味著遞增I至字符串102的末端并且剩余4是從字符串112的開(kāi)頭開(kāi)始遞增的(見(jiàn)下方弧段112)。該過(guò)程可以重復(fù),直至字符串102的每個(gè)位都已被選擇并且拷貝至加擾序列106。選擇與Q互質(zhì)的P保證了將選擇字符串的所有位。
[0019]如在圖1中示出那樣的置換加擾可以在數(shù)據(jù)存儲(chǔ)設(shè)備中實(shí)現(xiàn),諸如作為舉例說(shuō)明而非限制性的示例的固態(tài)盤(pán)(SSD)、閃存卡或者嵌入式閃存。例如,數(shù)據(jù)存儲(chǔ)設(shè)備可以包括在計(jì)數(shù)器值到達(dá)值Q時(shí)重置的計(jì)數(shù)器。計(jì)數(shù)器值可以在計(jì)數(shù)器的每P個(gè)遞增之后被讀取(例如以生成索引104)。計(jì)數(shù)器值可以被用作位地址或者用作位地址偏移(例如在原始序列102中的位置)以定位在數(shù)據(jù)存儲(chǔ)設(shè)備中生成的加擾數(shù)據(jù)(例如加擾序列106)的下一順序位。作為另一示例,數(shù)據(jù)存儲(chǔ)設(shè)備可以包括被編程為以P(mod Q)遞增計(jì)數(shù)值的控制器,以根據(jù)計(jì)數(shù)值而定位原始序列102中的位,并且拷貝所定位的位作為加擾序列106中的下一順序位。
[0020]可能的是,使用與Q相互質(zhì)(relative prime)的數(shù)個(gè)不同的偽隨機(jī)整數(shù)P。對(duì)于每個(gè)被置換的塊,可以選取不同的相互質(zhì)的整數(shù)P來(lái)生成不同的置換??梢詫?duì)于每個(gè)塊隨機(jī)選取相互質(zhì)的整數(shù)P。例如,如果使用相互質(zhì)的整數(shù),則置換種子可以包括log2 (n)+log2 (Q)位,其中,log2(n)位(例如,置換種子中的第一 log2 (η)位)指示待使用的相互質(zhì)的整數(shù)P,并且其中,log2 (Q)位(例如,置換種子中的最后log2(Q)位)指示從其開(kāi)始進(jìn)行置換的起始點(diǎn)(即,這樣的位位置,從該位位置起開(kāi)始以P(mod Q)遞增)。
[0021]在另一示例中,可以利用LFSR進(jìn)行生成加擾數(shù)據(jù)的置換加擾,該加擾數(shù)據(jù)具有與輸入數(shù)據(jù)相同比例的O和I。例如,可以利用尺寸為log2(Q)位的LFSR來(lái)進(jìn)行置換加擾(當(dāng)Q是2的冪時(shí)),這對(duì)應(yīng)于Galois Field的某原始多項(xiàng)式GF(Q)。如果以并非全O的種子序列進(jìn)行初始化,LFSR將按照隨機(jī)或偽隨機(jī)順序輸出從I至Q-1的所有數(shù)字。由LFSR輸出的數(shù)字可以被用作加擾序列的索引。例如,諸如圖1的索引104的索引可以由LFSR生成,以生成與圖1的P(mod Q)序列不同的值序列。
[0022]替選地,可以使用數(shù)個(gè)LFSR,其基于GF (Q)的不同原始(primitive)多項(xiàng)式。對(duì)于每個(gè)所置換的塊,可以為置換而選取不同的LFSR,以生成不同塊的不同置換??梢詮膲K至塊地隨機(jī)選取LFSR。例如,如果使用η個(gè)不同的LFSR,則置換種子可以包括log2 (n) +log2 (Q)位,其中,log2 (η)位指示待用于生成置換的LFSR,并且log2(Q)位用于初始化LFSR。
[0023]在關(guān)于圖2描述的其它實(shí)施例中,可以并不在單個(gè)位上進(jìn)行置換加擾,而是可以替代地在較大塊(chunk)的數(shù)據(jù)上進(jìn)行,例如作為舉例說(shuō)明而非限制性示例的半字節(jié)、字節(jié)、字、雙字。上面所描述的一個(gè)或多個(gè)步驟可以應(yīng)用于更大塊,通過(guò)將相同的重新排序(例如圖1中所示的重新排序)應(yīng)用于塊的位置上而不是位的位置上行。通過(guò)應(yīng)用相同的過(guò)程或者根據(jù)用于在塊內(nèi)置換位的一個(gè)或多個(gè)其它過(guò)程,可以在每個(gè)塊內(nèi)部進(jìn)行進(jìn)一步的置換(例如可以在每個(gè)字節(jié)內(nèi)進(jìn)行進(jìn)一步的位置換)。
[0024]可以在每次激活加擾過(guò)程(即,每次加擾一個(gè)字符串)期間進(jìn)行不同的置換。進(jìn)行不同的置換可以通過(guò)在每次激活中選取不同的整數(shù)P來(lái)完成。所選取的整數(shù)P用作用于置換加擾的“種子”??梢愿鶕?jù)物理位置(例如字線(WL)號(hào))和/或根據(jù)寫(xiě)/擦除周期的數(shù)目和/或根據(jù)任意其它參數(shù)來(lái)選取P。替選地,P可以隨機(jī)選取。如果種子是隨機(jī)的或者是在讀取期間未知的參數(shù)的函數(shù),則種子可以隨著數(shù)據(jù)一起被存儲(chǔ),以便在讀取數(shù)據(jù)期間使能去加擾。
[0025]一種對(duì)從主機(jī)接收的、待存儲(chǔ)在閃存中的數(shù)據(jù)進(jìn)行編程的方法可以包括:
[0026]I)從主機(jī)接收數(shù)據(jù)
[0027]2)進(jìn)行定形變形以生成變形后的位序列
[0028]3)在變形后的位序列上進(jìn)行置換加擾
[0029]4)如果用于置換加擾的種子是隨機(jī)或偽隨機(jī)選取的,則將用于置換加擾的種子連接至所置換后的位序列
[0030]5)利用誤差校正碼(ECC)編碼器對(duì)置換后的位序列(并且在一些實(shí)施例中對(duì)種子)進(jìn)行編碼,以生成編碼后的序列
[0031]6)將該編碼后的序列編程至閃存
[0032]在讀取期間,來(lái)自閃存的編碼后數(shù)據(jù)可以通過(guò)一系列操作來(lái)讀取,包括:
[0033]I)從閃存讀取該編碼后的數(shù)據(jù)
[0034]2)利用ECC解碼器對(duì)該編碼后的數(shù)據(jù)進(jìn)行解碼
[0035]3)將解碼后的種子(或者已知的種子)用于對(duì)該解碼后的數(shù)據(jù)進(jìn)行去加擾(即,進(jìn)行用于加擾數(shù)據(jù)的置換的逆置換)
[0036]4)在去加擾后的數(shù)據(jù)上進(jìn)行逆定形變形以恢復(fù)數(shù)據(jù)
[0037]5)將該數(shù)據(jù)發(fā)送給主機(jī)設(shè)備(如果該數(shù)據(jù)被主機(jī)請(qǐng)求)
[0038]因?yàn)橹脫Q加擾是在ECC編碼之前進(jìn)行的,置換加擾可以“實(shí)時(shí)(on-the-fly) ”進(jìn)行,作為填充ECC編碼器的隨機(jī)存取存儲(chǔ)器(RAM)的一部分。這可以通過(guò)根據(jù)種子按照偽隨機(jī)順序?qū)⑽惶畛涞紼CC編碼器RAM中來(lái)完成。例如,可以在塊地址(例如,諸如字節(jié)、字、雙字的塊的地址)上進(jìn)行置換加擾,并且可以在每個(gè)塊內(nèi)的位上進(jìn)行置換加擾。對(duì)地址和存儲(chǔ)至該地址的位進(jìn)行加擾可以利用上面描述的方法中的一個(gè)或多個(gè)來(lái)進(jìn)行。對(duì)于存儲(chǔ)至一個(gè)地址的塊內(nèi)的位,可以利用偽隨機(jī)循環(huán)移位來(lái)進(jìn)行置換加擾,該偽隨機(jī)循環(huán)移位可以利用低復(fù)雜度硬件來(lái)進(jìn)行。在m位的塊內(nèi)的加擾可以利用長(zhǎng)度為log2(m)的附加LFSR來(lái)進(jìn)行,以對(duì)于每個(gè)地址輸出log2(m)位的偽隨機(jī)序列,其指示應(yīng)在存儲(chǔ)在該地址中的m位上進(jìn)行何種周期性置換??梢允褂脭?shù)個(gè)這種長(zhǎng)度為log2(m)的LFSR (例如k個(gè)LFSR)。請(qǐng)注意,全面置換加擾種子可以包括log2(n)+log2(Q)+log2(k)+log2(m)位,其中,log2(n)位指示地址置換LFSR,log2 (Q)位用于將地址置換LFSR初始化,log2 (k)位指示周期移位LFSR,并且log2(m)位被用于將該周期移位LFSR初始化。
[0039]在讀取數(shù)據(jù)期間,在解碼后,信息位可以從ECC解碼器RAM輸出并且通過(guò)應(yīng)用對(duì)應(yīng)的去加擾操作(例如通過(guò)利用相同的種子應(yīng)用逆置換)被提供給主機(jī)。
[0040]除了在ECC編碼之前對(duì)數(shù)據(jù)進(jìn)行置換加擾之外,可以改變ECC模塊(block)內(nèi)的奇偶校驗(yàn)位的位置,諸如在連續(xù)的編碼操作之間,或者根據(jù)奇偶校驗(yàn)移位的計(jì)劃,或者通過(guò)任意其它機(jī)制。如果奇偶校驗(yàn)位每次被編程至相同的單元,則存儲(chǔ)奇偶校驗(yàn)位的單元會(huì)比存儲(chǔ)信息位的單元更快磨損,因?yàn)轭A(yù)期奇偶校驗(yàn)位具有50%的0,而經(jīng)歷定形變形的信息位預(yù)期具有較低百分比的O。可以通過(guò)周期性地移位ECC碼字(即信息位和奇偶校驗(yàn)位)來(lái)改變奇偶校驗(yàn)位的位置。周期性地移位ECC碼字可以通過(guò)按照從RAM的某偏移地址開(kāi)始并且然后對(duì)RAM深度(例如RAM的尺寸和/或RAM中的地址數(shù)目)取模(modulo)地遞增該偏移地址的方式來(lái)將碼字位從ECC編碼器RAM輸出到閃存來(lái)進(jìn)行。偏移地址可以是數(shù)據(jù)要編程到其中的塊的寫(xiě)/擦除周期的數(shù)目的函數(shù),或者是當(dāng)從該塊讀取數(shù)時(shí)改變且會(huì)已知的任意其它參數(shù)的函數(shù)。例如,偏移地址可以是隨著塊的每次編程操作而改變值的參數(shù)的函數(shù)。在讀取期間,可以從偏移地址開(kāi)始填充由ECC解碼器使用的RAM。然后,偏移地址可以按照對(duì)RAM尺寸取模的方式來(lái)遞增。
[0041]替選地,偏移地址可以隨機(jī)選取并且存儲(chǔ)在存儲(chǔ)器的某其它位置上。例如,偏移地址可以被存儲(chǔ)在一個(gè)或多個(gè)快閃管理表中。
[0042]替選地,偏移地址可以從偏移地址的預(yù)定集合中隨機(jī)選取。在讀取期間,可以通過(guò)識(shí)別ECC塊中具有高濃度I的區(qū)域(例如該區(qū)域中的大約50%的位是I)來(lái)檢測(cè)偏移地址??梢酝ㄟ^(guò)對(duì)多個(gè)窗口(每個(gè)窗口對(duì)應(yīng)于偏移地址的預(yù)定集合的一個(gè)不同的偏移地址)內(nèi)的I的數(shù)目進(jìn)行計(jì)數(shù)來(lái)檢測(cè)具有高濃度I的區(qū)域,其中,窗口尺寸可以與奇偶校驗(yàn)位的數(shù)目相等。與奇偶校驗(yàn)位的開(kāi)始對(duì)應(yīng)的偏移地址可以通過(guò)識(shí)別與最高數(shù)目的I對(duì)應(yīng)的窗口來(lái)確定(因?yàn)槠媾夹r?yàn)將具有大約50%濃度的1,而非奇偶校驗(yàn)數(shù)據(jù)可以被定形為具有較低濃度的I)。請(qǐng)注意,偏移地址的誤檢測(cè)造成ECC解碼失敗。如果ECC解碼失敗,則可以利用不同的奇偶校驗(yàn)偏移地址來(lái)進(jìn)行附加的ECC解碼嘗試。請(qǐng)注意,在其中使用了錯(cuò)誤奇偶校驗(yàn)地址偏移的誤檢測(cè)的情況下,可以避免完全的ECC解碼并且可以進(jìn)行對(duì)奇偶校驗(yàn)地址偏移誤檢測(cè)的早期檢測(cè),諸如通過(guò)檢測(cè)高的校驗(yàn)子(syndrome)權(quán)重(例如其中不滿足約50%的奇偶校驗(yàn)檢查),其指示解碼器并不在合法碼字上操作。此外,在其中數(shù)據(jù)的“定形”的量在不同塊之間變化的應(yīng)用中,如果該數(shù)據(jù)序列中的I的部分接近50% (即,數(shù)據(jù)并未被強(qiáng)烈“定形”),則編碼器可以在編程期間使用奇偶校驗(yàn)地址的預(yù)定的缺省偏移,因?yàn)榻獯a器可能不能在讀取期間基于比較每個(gè)窗中的I的數(shù)目來(lái)檢測(cè)奇偶校驗(yàn)偏移。例如,在讀取期間,如果與可能的奇偶校驗(yàn)偏移對(duì)應(yīng)的所有計(jì)數(shù)大至示出50%的I的相同值,并且沒(méi)有偏移示出與其它偏移相比顯著更高的計(jì)數(shù)(或者在最高計(jì)數(shù)與次最高計(jì)數(shù)之間的差小于某閾值),則ECC解碼器可以假設(shè)將預(yù)定的缺省偏移用于了奇偶校驗(yàn)。
[0043]所公開(kāi)的置換加擾方法實(shí)現(xiàn)了避免存儲(chǔ)數(shù)據(jù)的重復(fù)模式,這些重復(fù)模式可能造成閃存中的不同的干擾效果。所公開(kāi)的方法可以與“定形”變形結(jié)合使用(例如,作為耐久性增強(qiáng)編碼(endurance enhancement coding)的部分來(lái)進(jìn)行的變形)。
[0044]此外,所公開(kāi)的方法通過(guò)改變未定形的位(例如奇偶校驗(yàn)位)的物理位置而基本上實(shí)現(xiàn)了引入至閃存的磨損的平均分布。
[0045]參考圖2,描繪了系統(tǒng)200,其包括耦合至主機(jī)設(shè)備230的數(shù)據(jù)存儲(chǔ)設(shè)備202。數(shù)據(jù)存儲(chǔ)設(shè)備202包括耦合至存儲(chǔ)器220的控制器204。控制器204包括置換加擾器208。置換加擾器208被配置為進(jìn)行保留待加擾的數(shù)據(jù)的I和O的比例的加擾操作。
[0046]主機(jī)設(shè)備230可以包括移動(dòng)電話、音樂(lè)或視頻播放器、游戲控制臺(tái)、電子書(shū)閱讀器、個(gè)人數(shù)字助理(PDA)、諸如膝上計(jì)算機(jī)、筆記本計(jì)算機(jī)或平板計(jì)算機(jī)的計(jì)算機(jī)、任意其它電子設(shè)備、或者其任意組合。數(shù)據(jù)存儲(chǔ)設(shè)備202可以配置為可操作地耦合至主機(jī)設(shè)備230。為了舉例說(shuō)明,數(shù)據(jù)存儲(chǔ)設(shè)備202可以是存儲(chǔ)卡,諸如安全數(shù)碼SD?卡,microSD?卡,miniSD.TM 卡(特拉華州威爾明頓的 SD-3C LLC 的商標(biāo))、MultiMediaCard.TM(MMC.TM)卡(維吉尼亞州阿靈頓的JEDEC Solid State Technology Association的商標(biāo))、或者CompactFlash? (CF)卡(加利福尼亞州米皮塔斯的SanDisk公司的商標(biāo))。數(shù)據(jù)存儲(chǔ)設(shè)備202可以配置為耦合至作為嵌入式存儲(chǔ)器的主機(jī)設(shè)備230,諸如作為說(shuō)明性示例的eMMC? (維吉尼亞州阿靈頓的 JEDEC Solid State Technology Association 的商標(biāo))和eSD存儲(chǔ)器。
[0047]數(shù)據(jù)存儲(chǔ)設(shè)備202包括控制器204,該控制器204包括定形器206、置換加擾器208、ECC引擎210、和對(duì)于ECC引擎210可訪問(wèn)的隨機(jī)存取存儲(chǔ)器(RAM) (ECC RAM) 212??刂破?04配置為在定形器206處接收數(shù)據(jù)位240。定形器206配置為進(jìn)行生成如下定形數(shù)據(jù)207的定形變形,該定形數(shù)據(jù)具有與數(shù)據(jù)位240的I和O的比例不同的I和O的比例??刂破?04配置為將定形數(shù)據(jù)207提供給置換加擾器208。置換加擾器208配置為生成加擾的定形數(shù)據(jù)211,其被提供給ECC RAM212用于由ECC引擎210編碼??刂破?04配置為將已編碼的加擾的定形數(shù)據(jù)242發(fā)送給存儲(chǔ)器220,用于存儲(chǔ)在一組存儲(chǔ)元件222中。
[0048]置換加擾器208配置為生成如下加擾定形數(shù)據(jù)211,其具有與定形數(shù)據(jù)207相同比例的I和O。例如,在一些實(shí)施例中,置換加擾器可以包括:計(jì)數(shù)器和電路,其配置為提供如關(guān)于圖1描述那樣的值P (mod Q) ;LFSR,其配置為生成位索引的加擾序列;處理器,其編程為根據(jù)P (mod Q)序列或者根據(jù)隨機(jī)或偽隨機(jī)序列生成位索引(例如圖1的索引104)的序列;或者任意其它機(jī)構(gòu),其生成具有與定形數(shù)據(jù)207相同比例的I和O的加擾定形數(shù)據(jù)211。[0049]在圖2示出的特定實(shí)施例中,置換加擾器208配置為基于數(shù)據(jù)塊的位置而不是基于位位置進(jìn)行加擾。置換加擾器208配置為利用線性反饋移位寄存器(LFSR) 250加擾定形數(shù)據(jù)207,以根據(jù)種子260加擾地址序列262。LFSR250配置為生成加擾的地址序列264。與加擾的地址序列264中的各個(gè)地址對(duì)應(yīng)的數(shù)據(jù)可以通過(guò)移位器252、諸如循環(huán)移位器的操作來(lái)生成加擾定形數(shù)據(jù)211。在一個(gè)其中根據(jù)隨機(jī)或偽隨機(jī)生成技術(shù)確定種子260的實(shí)施例中,種子260可以被隨著加擾定形數(shù)據(jù)211提供給ECC RAM212。在其中種子260與在從存儲(chǔ)器220讀取數(shù)據(jù)時(shí)可能已知的參數(shù)(諸如寫(xiě)/擦除(W/E)周期的計(jì)數(shù))對(duì)應(yīng)的其它實(shí)施例中,種子260可以并不被提供給ECC RAM212用于編碼,并且可以并不存儲(chǔ)在存儲(chǔ)器220上。盡管種子260示出為附加于要在存儲(chǔ)于存儲(chǔ)器220處之前由ECC引擎210編碼的加擾定形數(shù)據(jù)211,但在其它實(shí)施例中種子260可以在并未由ECC引擎210以加擾定形數(shù)據(jù)211編碼的情況下存儲(chǔ)至存儲(chǔ)器220。例如,種子260可以利用單獨(dú)的、專用的ECC引擎編碼,或者可以經(jīng)由一個(gè)或多個(gè)其它結(jié)構(gòu)來(lái)進(jìn)行錯(cuò)誤保護(hù)。
[0050]ECC引擎210可以配置為進(jìn)行待存儲(chǔ)至存儲(chǔ)器220的數(shù)據(jù)的誤差校正編碼(例如作為解釋性示例的BCH、里德-所羅門(mén)或者低密度奇偶奇偶校驗(yàn))以及從存儲(chǔ)器220讀取的數(shù)據(jù)的誤差校正解碼。ECC引擎210可以配置為在編碼操作期間和在解碼操作期間訪問(wèn)存儲(chǔ)在ECC RAM212處的數(shù)據(jù)。例如,ECC RAM212可以配置為存儲(chǔ)多個(gè)數(shù)據(jù)塊,舉例說(shuō)明為標(biāo)記為C11、C12、C13和C14的第一行塊,以及標(biāo)記為C21、C22、C23和C24的第二行塊。在一個(gè)特定實(shí)施例中,置換加擾器208可以配置為在“實(shí)時(shí)”實(shí)現(xiàn)方案中根據(jù)加擾的地址序列264填充ECC RAM212。與每個(gè)塊C11-C24對(duì)應(yīng)的位可以在將數(shù)據(jù)存儲(chǔ)在ECC RAM212中之前利用移位器252來(lái)加擾。在將數(shù)據(jù)存儲(chǔ)在ECC RAM212中之后,ECC引擎210可以編碼ECCRAM212中的數(shù)據(jù),以生成要作為已編碼的加擾定形數(shù)據(jù)242存儲(chǔ)的碼字。
[0051]ECC引擎210可以配置為根據(jù)偏移地址214將包括加擾信息位也包括奇偶校驗(yàn)位的碼字寫(xiě)至ECC RAM212。偏移地址214可以指示用于碼字的起始地址。為了舉例說(shuō)明,包括8個(gè)數(shù)據(jù)塊(其包括6個(gè)信息位塊和兩個(gè)奇偶校驗(yàn)位塊)的碼字可以被寫(xiě)為使得第一信息位塊被存儲(chǔ)在偏移地址214 (即在塊C23中),第二信息位塊被存儲(chǔ)在塊C24中,第三信息位塊被存儲(chǔ)在塊Cll中,第四、第五和第六信息位塊分別被存儲(chǔ)在塊C12、C13和C14中,并且第一和第六奇偶校驗(yàn)位塊分別被存儲(chǔ)在C21和C22中。在隨后的ECC編碼操作期間,偏移地址214可以被遞增或者重新定位以指定碼字在ECC RAM212內(nèi)的另一位置處的起始地址。結(jié)果是,在隨后的編碼操作期間生成的(非定形的)奇偶校驗(yàn)位可以被寫(xiě)至ECC RAM212中的不同位置,并且轉(zhuǎn)移至存儲(chǔ)器220的不同部分。當(dāng)數(shù)據(jù)根據(jù)偏移地址214的隨機(jī)選擇來(lái)編碼并且隨后從存儲(chǔ)器220讀取時(shí),控制器204可以被配置為根據(jù)I值在從存儲(chǔ)器220讀取的已編碼的加擾數(shù)據(jù)的部分中的計(jì)數(shù)來(lái)確定偏移地址250。
[0052]存儲(chǔ)器220可以是非易失性存儲(chǔ)器,諸如快閃多層單元(MLC)或者單層單元(SLC)存儲(chǔ)器。存儲(chǔ)器220包括多組存儲(chǔ)元件,諸如存儲(chǔ)元件的代表組222。例如,存儲(chǔ)元件的代表組222可以是閃存的字線(WL)。
[0053]盡管置換加擾器208示出為包括用于加擾塊地址的LFSR250并且包括用于在每個(gè)塊內(nèi)進(jìn)行加擾的移位器252,然而在其它實(shí)施例中,置換加擾器208可以配置為進(jìn)行一個(gè)或多個(gè)其它類型的置換加擾。例如,置換加擾器208可以配置為如關(guān)于圖1描述那樣進(jìn)行置換加擾。[0054]盡管示出了單個(gè)LFSR250,然而在其它實(shí)施例中,置換加擾器可以包括多個(gè)LFSR,并且特定的LFSR250可以被隨機(jī)選擇以用于地址加擾。包括對(duì)所選LFSR250的指示和用于將所選LFSR250初始化的數(shù)據(jù)的置換種子可以被附加至待存儲(chǔ)在存儲(chǔ)器220中的加擾數(shù)據(jù)211。替選地,LFSR和用于將所選LFSR初始化的數(shù)據(jù)可以經(jīng)由待存儲(chǔ)的數(shù)據(jù)的邏輯塊地址的決定性函數(shù)來(lái)確定,并且已編碼的加擾定形數(shù)據(jù)242可以在并不將置換種子存儲(chǔ)在存儲(chǔ)器220中的情況下被存儲(chǔ)。盡管置換加擾器208示出為包括移位器252,然而在其它實(shí)施例中,置換加擾器208包括第二組LFSR。第二 LFSR可以從第二組LFSR隨機(jī)選擇,并且每組位內(nèi)的與加擾地址264對(duì)應(yīng)的位可以根據(jù)所選的第二 LFSR的輸出來(lái)加擾。置換種子也可以包括對(duì)于第二 LFSR以及用于將第二 LFSR初始化的第二數(shù)據(jù)的指示。
[0055]圖3是框圖,其示出了置換加擾器300的一個(gè)特定實(shí)施例。例如,置換加擾器300可以對(duì)應(yīng)于圖2的置換加擾器208。第一線性反饋移位寄存器(LFSR) 302可以提供用于置換加擾的種子304。例如,LFSR302可以是16位的LFSR并且種子304可以是對(duì)于信息數(shù)據(jù)的每千字節(jié)提取的16位種子。種子304的第一部分306可以指示一組LFSR310中的一個(gè)。例如,第一部分306可以是3位,并且該組LFSR310可以包括8個(gè)LSFR321-335。解碼器308可以接收種子的頭三位306,并且可以指示該組LFSR310中被選取或特定的一個(gè)。
[0056]種子304的第二部分312可以將該組LFSR310中特定的一個(gè)初始化。例如,第二部分312可以是8位,其中8位中的每個(gè)對(duì)應(yīng)于第二組LFSR310中的8個(gè)LSFR321-335中相應(yīng)的一個(gè)。
[0057]種子304的第三部分314可以將對(duì)于各個(gè)數(shù)據(jù)塊產(chǎn)生位移的第三LSFR316初始化。例如,在數(shù)據(jù)塊是雙字的情況下,第三部分314可以是進(jìn)行指示的5個(gè)位以及在從O到31的范圍中的一個(gè)移位值。
[0058]LSFR的組310中的LSFR321-335中的每個(gè)都可以是8位的LSFR,其配置為對(duì)于信息數(shù)據(jù)的每個(gè)雙字產(chǎn)生一個(gè)地址(0-255),以便覆蓋千字節(jié)數(shù)據(jù)的地址空間。可以產(chǎn)生加擾的地址序列。例如,第二 LSFR321可以從第二組LSFR310內(nèi)選擇,并且與由所選的第二LSFR321產(chǎn)生的地址對(duì)應(yīng)的一組位可以被加擾地選擇為在加擾輸出中的下一組位。例如,LSFR的組310中的LSFR321-335中的每個(gè)(包括所選的第二 LSFR321)可以具有耦合至多路復(fù)用器318的輸入的相應(yīng)輸出。多路復(fù)用器318的輸出可以產(chǎn)生加擾的地址序列,諸如圖2的加擾的地址序列264。
[0059]與加擾的地址序列中的各個(gè)地址對(duì)應(yīng)的數(shù)據(jù)可以通過(guò)將數(shù)據(jù)移位達(dá)與和第三LSFR316的輸出相關(guān)的移位值對(duì)應(yīng)的量而被加擾,諸如經(jīng)由圖2的移位器252。盡管使出了單個(gè)的第三LSFR316,然而在其它實(shí)施例中第三LSFR316可以是第二組LFSR的部分,并且種子304可以包括用于從第二組選擇特定LFSR的指示器,諸如關(guān)于種子304的指示從組310選擇的IFSR的第一部分306所描述的。
[0060]圖4是圖示,其示出了諸如誤差校正碼(ECC)碼字的碼字的置換以及該碼字的去置換的特定實(shí)施例400。在圖4中示出的特定實(shí)施例中,位置換的碼字402(例如已編碼的有形數(shù)據(jù))包括信息位404和奇偶校驗(yàn)位406。置換加擾410可以在未置換的碼字402上進(jìn)行。例如,置換加擾410可以在塊地址(塊的地址,諸如字節(jié)、字、雙字)上進(jìn)行,并且置換加擾410可以在如關(guān)于圖1和2描述那樣在每個(gè)塊內(nèi)的位上進(jìn)行。除了置換加擾之外,奇偶校驗(yàn)位在誤差校正編碼塊內(nèi)的位置可以改變,諸如在連續(xù)編碼操作之間或根據(jù)奇偶校驗(yàn)移位的計(jì)劃來(lái)改變。
[0061]例如,改變奇偶校驗(yàn)位406的位置可以通過(guò)周期地移位置換過(guò)的碼字412(即,信息位404和奇偶校驗(yàn)位406)來(lái)進(jìn)行。周期地移位置換過(guò)的碼字412可以通過(guò)將該置換過(guò)的碼字412以從所選的偏移地址416開(kāi)始的方式輸出至諸如圖2的閃存220的存儲(chǔ)器來(lái)進(jìn)行。例如,可以有多個(gè)可能的偏移地址414可用。所選的偏移地址416可以根據(jù)這樣的參數(shù)來(lái)從多個(gè)可能的偏移地址414選擇,該參數(shù)隨著閃存220的、置換過(guò)的碼字412待編程到其中的塊的每次編程操作而改變值,諸如寫(xiě)/擦除周期的計(jì)數(shù)。替選地,所選的偏移地址416可以隨機(jī)選取并且存儲(chǔ)在存儲(chǔ)器的某其它位置上,諸如存儲(chǔ)在一個(gè)或多個(gè)快閃管理表中。替選地,所選的偏移地址416可以隨機(jī)地從偏移地址的預(yù)定集合(B卩,從多個(gè)可能的偏移地址414)選出。在多個(gè)可能的偏移地址414之一被選為所選的偏移地址416之后,置換過(guò)的碼字412可以與所選的偏移地址416對(duì)應(yīng)地移位并且被輸出至閃存220。
[0062]在從閃存220讀取置換過(guò)的碼字412期間,可以進(jìn)行對(duì)應(yīng)的去加擾操作或者去置換加擾420。例如,檢測(cè)到的偏移地址422可以是通過(guò)識(shí)別具有較高百分比的1(例如約50%)的區(qū)域426而從第二個(gè)多個(gè)可能的偏移地址424檢測(cè)到的。具有較高百分比的I的區(qū)域426可以是通過(guò)計(jì)數(shù)多個(gè)窗(每個(gè)窗對(duì)應(yīng)于該多個(gè)可能的偏移地址424中的一個(gè)不同的偏移地址)內(nèi)的I的數(shù)目而檢測(cè)到的,其中窗尺寸可以等于奇偶校驗(yàn)位的數(shù)目。與奇偶校驗(yàn)的開(kāi)始對(duì)應(yīng)的偏移地址可以是通過(guò)識(shí)別與I的最高計(jì)數(shù)對(duì)應(yīng)的窗而被確定的。一旦確定了奇偶校驗(yàn)的開(kāi)始,則可以恢復(fù)信息位404和奇偶校驗(yàn)位406。
[0063]通過(guò)當(dāng)其它數(shù)據(jù)被存儲(chǔ)至閃存220時(shí)變化所選的偏移地址416,與信息404相比,存儲(chǔ)奇偶校驗(yàn)406的單元的不均勻磨損(歸因于奇偶校驗(yàn)406中較高濃度的I)可以在閃存220中被平衡。結(jié)果是,閃存220的可用壽命可以與其中奇偶校驗(yàn)位被反復(fù)存儲(chǔ)至相同位置(諸如SLC緩存中閃存單元的相同集合)的系統(tǒng)相比更強(qiáng)。
[0064]圖5示出了置換加擾的方法的一個(gè)特定實(shí)施例。方法500包括在502接收具有特定比例的O值和I值的數(shù)據(jù)。在504,該數(shù)據(jù)被加擾以生成具有該特定比例的O值和I值的加擾數(shù)據(jù)。
[0065]例如,該數(shù)據(jù)可以對(duì)應(yīng)于圖1的原始序列102,并且可以具有長(zhǎng)度Q。加擾該數(shù)據(jù)可以包括將該數(shù)據(jù)中的非順序位位置(例如,原始序列102中的非順序位位置)上的位拷貝至加擾數(shù)據(jù)中的順序位位置(例如,加擾序列106中的順序位位置)。在非順序位位置之間的距離P可以與Q互質(zhì)。加擾數(shù)據(jù)中的每個(gè)位位置k可以具有與所接收的數(shù)據(jù)中的位位置(k-l)P(mod Q)相同的位值。
[0066]作為另一示例,加擾所述數(shù)據(jù)可以包括將第一位組從第一數(shù)據(jù)中的第一組位置拷貝至第二數(shù)據(jù)中的第二組位置,其中,第一組位置與第二組位置不同,諸如關(guān)于圖2描述那樣。加擾該數(shù)據(jù)還可以包括將第二位組從該數(shù)據(jù)拷貝至加擾數(shù)據(jù),其中第一位組與第二位組是從該數(shù)據(jù)中的非順序組位置拷貝至加擾數(shù)據(jù)中的順序組位置的。為了舉例說(shuō)明,圖2的LFSR262可以在形成被寫(xiě)至ECC RAM212的加擾數(shù)據(jù)時(shí)將定形數(shù)據(jù)207中的位組的地址重新排序,使得定形數(shù)據(jù)207中的非順序位組被拷貝至ECC RAM212的順序位置。例如,定形數(shù)據(jù)中的兩個(gè)非順序位組(塊)可以作為順序塊Cll和C12拷貝至ECC RAM212。加擾該數(shù)據(jù)可以進(jìn)一步包括在第一位組內(nèi)將位移位,諸如經(jīng)由圖2的移位器252。
[0067]方法500可以在具有控制器和耦合至該控制器的存儲(chǔ)器、諸如圖2的數(shù)據(jù)存儲(chǔ)設(shè)備202的控制器204和存儲(chǔ)器220的數(shù)據(jù)存儲(chǔ)設(shè)備中進(jìn)行。控制器包括加擾器,其配置為接收具有特定比例的O值和I值的數(shù)據(jù),并且對(duì)該數(shù)據(jù)進(jìn)行加擾以生成具有該特定比例的O值和I值的加擾數(shù)據(jù)。作為一個(gè)示例,該數(shù)據(jù)可以具有長(zhǎng)度Q,加擾器可以配置為將該數(shù)據(jù)中的非順序位位置上的位拷貝至加擾數(shù)據(jù)中的順序位位置,在非順序位位置之間的距離P可以與Q互質(zhì),并且加擾數(shù)據(jù)中的每個(gè)位位置k可以具有與該數(shù)據(jù)中的位位置(k-l)P(modQ)相同的位值。作為另一示例,加擾器可以配置為將第一位組從第一數(shù)據(jù)中的第一組位置拷貝至第二數(shù)據(jù)中的第二組位置,其中第一組位置不同于第二組位置。
[0068]盡管將在此描繪的不同部件示出為模塊部件并且按照普遍方面來(lái)描述,但這種部件可以包括一個(gè)或多個(gè)微處理器、狀態(tài)機(jī)、或者配置為使得圖2的數(shù)據(jù)存儲(chǔ)設(shè)備202能夠進(jìn)行對(duì)于這樣部件為特征性的特定功能。例如,圖2的置換加擾器208可以代表物理部件,諸如硬件控制器、狀態(tài)機(jī)、邏輯電路或者其它結(jié)構(gòu),以使得置換加擾器208能夠?qū)⒍ㄐ螖?shù)據(jù)加擾以生成加擾定形數(shù)據(jù),其具有與該定形數(shù)據(jù)相同比例的I和O。例如,置換加擾器208可以包括LFSR和/或移位器(例如循環(huán)移位器/桶形移位器)以分別進(jìn)行地址置換和塊置換。
[0069]替選地,置換加擾器208的功能性的多個(gè)方面之一可以利用便成為執(zhí)行相應(yīng)功能性的微處理器或微控制器來(lái)實(shí)現(xiàn)。在一個(gè)特定實(shí)施例中,存儲(chǔ)器220包括由控制器204中的處理器執(zhí)行的可執(zhí)行的指令。替選地,或附加地,由控制器204中的處理器執(zhí)行的可執(zhí)行的指令可以存儲(chǔ)在并非存儲(chǔ)器220的部分的單獨(dú)的存儲(chǔ)器位置上,諸如在RAM上或者在只讀存儲(chǔ)器(ROM)上。
[0070]在一個(gè)特定實(shí)施例中,數(shù)據(jù)存儲(chǔ)設(shè)備202可以是便攜式設(shè)備,其配置為選擇性地耦合至一個(gè)或多個(gè)外部設(shè)備。例如,作為解釋性示例,數(shù)據(jù)存儲(chǔ)設(shè)備202可以是通用串行總線(USB)快閃設(shè)備或者可移除的存儲(chǔ)卡。然而,在其它示例中,數(shù)據(jù)存儲(chǔ)設(shè)備202可以附接或嵌入在一個(gè)或多個(gè)主機(jī)設(shè)備內(nèi),諸如在便攜式通信設(shè)備的殼體內(nèi)。例如,數(shù)據(jù)存儲(chǔ)設(shè)備202可以在封裝過(guò)的設(shè)備內(nèi),諸如無(wú)繩電話、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備或游戲機(jī)、便攜式導(dǎo)航設(shè)備、計(jì)算機(jī)設(shè)備、或者使用內(nèi)部非易失性存儲(chǔ)器的其它設(shè)備。在一個(gè)特定實(shí)施例中,數(shù)據(jù)存儲(chǔ)設(shè)備202包括非易失性存儲(chǔ)器,諸如閃存(例如NAND、N0R、多層單元(MLC))、分割位線NOR(DINOR)、高電容耦合率(HiCR)、不對(duì)稱非接觸晶體管(ACT)、或者其它閃存、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、只讀存儲(chǔ)器(ROM)、一次性可編程存儲(chǔ)器(OTP)或者任意其它類型的存儲(chǔ)器。
[0071]在此示出所描述的實(shí)施例旨在于提供對(duì)不同實(shí)施例的普遍理解。可以利用和從本公開(kāi)中導(dǎo)出其它實(shí)施例,使得可以在不偏離本公開(kāi)的范圍的情況下做出結(jié)構(gòu)和邏輯上的替代和改變。本公開(kāi)旨在于覆蓋不同實(shí)施例的任意和全部后續(xù)的適配或變化。從而,本公開(kāi)和附圖應(yīng)被視作舉例說(shuō)明的,而不是限制性的。
[0072]上面公開(kāi)的主題應(yīng)被看做舉例說(shuō)明的,而不是限制性的,并且所附的權(quán)利要求旨在于覆蓋絡(luò)在本公開(kāi)的范圍內(nèi)的所有這種修改、增強(qiáng)和其它實(shí)施例。因此,至法律所允許的最大范圍地,本發(fā)明的范圍應(yīng)通過(guò)對(duì)下面的權(quán)利要求和其等效物的最寬泛的、允許的理解來(lái)確定,并且不應(yīng)通過(guò)之前的詳細(xì)描述被約束或限制。
【權(quán)利要求】
1.一種方法,包括: 在數(shù)據(jù)存儲(chǔ)設(shè)備中,執(zhí)行: 接收具有特定比例的O值和I值的數(shù)據(jù);以及 將所述數(shù)據(jù)加擾以生成具有該特定比例的O值和I值的加擾數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,對(duì)于任意所接收的數(shù)據(jù),所述加擾數(shù)據(jù)具有與所接收的數(shù)據(jù)相同比例的O值和I值。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)具有長(zhǎng)度Q,并且其中將所述數(shù)據(jù)加擾包括將所述數(shù)據(jù)中的非順序位位置上的位拷貝至所述加擾數(shù)據(jù)中的順序位位置。
4.根據(jù)權(quán)利要求3所述的方法,其中,在所述非順序位位置之間的距離P與Q互質(zhì)。
5.根據(jù)權(quán)利要求4所述的方法,其中,在所述加擾數(shù)據(jù)中的各個(gè)位位置k具有與在所述數(shù)據(jù)中的位位置(k-l)P(modQ)相同的位值。
6.根據(jù)權(quán)利要求4所述的方法,還包括選擇距離P的特定值和選擇所述數(shù)據(jù)中的起始位位置。
7.根據(jù)權(quán)利要求1所述的方法,其中,將所述數(shù)據(jù)加擾包括將第一位組從所述數(shù)據(jù)中的第一組位置拷貝到所述加擾數(shù)據(jù)中的第二組位置,其中,所述第一組位置與所述第二組位置不同。
8.根據(jù)權(quán)利要求7所述的方法,其中,將所述數(shù)據(jù)加擾包括將第二位組從所述數(shù)據(jù)拷貝到所述加擾數(shù)據(jù),其中,將所述第一位組和所述第二位組從所述數(shù)據(jù)中的非順序組位置拷貝至所述加擾數(shù)據(jù)中的順序組位置。
9.根據(jù)權(quán)利要求7所述的方法,其中,將所述數(shù)據(jù)加擾包括移動(dòng)所述第一位組中的位。
10.根據(jù)權(quán)利要求7所述的方法,其中,將所述數(shù)據(jù)加擾包括根據(jù)線性反饋移位寄存器(LFSR)的輸出對(duì)所述數(shù)據(jù)中的位組的地址進(jìn)行重新排序。
11.根據(jù)權(quán)利要求10所述的方法,其中,LFSR根據(jù)種子操作,并且還包括將該種子附加至待存儲(chǔ)在數(shù)據(jù)存儲(chǔ)設(shè)備的存儲(chǔ)器中的所述加擾數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的方法,其中,LFSR是選自所述數(shù)據(jù)存儲(chǔ)設(shè)備中的多個(gè)LFSR的。
13.根據(jù)權(quán)利要求12所述的方法,其中,將包括對(duì)于所選的LFSR的指示以及用于初始化所選的LFSR的數(shù)據(jù)的置換種子附加至待存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)設(shè)備的存儲(chǔ)器中的所述加擾數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的方法,其中,加擾所述數(shù)據(jù)還包括從第二組LFSR選擇第二LFSR,并且根據(jù)該第二 LFSR的輸出對(duì)每個(gè)位組中的位進(jìn)行加擾,并且其中,所述置換種子還包括對(duì)所述第二 LFSR的指示和用于將所述第二 LFSR初始化的第二數(shù)據(jù)。
15.根據(jù)權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)是在所述數(shù)據(jù)存儲(chǔ)設(shè)備能夠操作地耦合至主機(jī)設(shè)備期間在所述數(shù)據(jù)存儲(chǔ)設(shè)備的控制器中基于從該主機(jī)設(shè)備接收的用戶數(shù)據(jù)而生成的定形數(shù)據(jù),其中,所述數(shù)據(jù)在所述數(shù)據(jù)存儲(chǔ)設(shè)備的控制器中被加擾,并且還包括: 對(duì)所述加擾數(shù)據(jù)進(jìn)行誤差校正編碼,以生成具有偏移地址的、已編碼的加擾數(shù)據(jù);以及 將所述已編碼的加擾數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)設(shè)備的閃存中,使得所述已編碼的加擾數(shù)據(jù)在所述閃存內(nèi)的物理位置是所述偏移地址的函數(shù)。
16.根據(jù)權(quán)利要求15所述的方法,還包括根據(jù)I值在從所述閃存讀取的已編碼的加擾數(shù)據(jù)的部分中的計(jì)數(shù)來(lái)確定所述偏移地址。
17.根據(jù)權(quán)利要求15所述的方法,其中,所述偏移地址是從一個(gè)編程周期到另一個(gè)編程周期地變化的參數(shù)的函數(shù),其中,所述參數(shù)是所述閃存的塊的參數(shù)。
18.根據(jù)權(quán)利要求17所述的方法,其中,所述參數(shù)包括寫(xiě)/擦除周期的計(jì)數(shù)。
19.根據(jù)權(quán)利要求15所述的方法,其中,所述偏移地址存儲(chǔ)在所述閃存的管理表中。
20.根據(jù)權(quán)利要求15所述的方法,其中,所述偏移地址是從偏移地址的預(yù)定集合隨機(jī)選取的。
21.一種數(shù)據(jù)存儲(chǔ)設(shè)備,包括: 存儲(chǔ)器;以及 耦合至所述存儲(chǔ)器的控制器,其中,所述控制器包括加擾器,其配置為接收具有特定比例的O值和I值的數(shù)據(jù)并且將該數(shù)據(jù)加擾以生成具有該特定比例的O值和I值的加擾數(shù)據(jù)。
22.根據(jù)權(quán)利要求21所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述數(shù)據(jù)具有長(zhǎng)度Q,并且其中,將所述數(shù)據(jù)加擾包括將所述數(shù)據(jù)中的非順序位位置上的位拷貝至所述加擾數(shù)據(jù)中的順序位位置。
23.根據(jù)權(quán)利要求22 所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,在所述非順序位位置之間的距離P與Q互質(zhì)。
24.根據(jù)權(quán)利要求23所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,在所述加擾數(shù)據(jù)中的每個(gè)位位置k都具有與所述數(shù)據(jù)中的位位置(k-l)P(mod Q)相同的位值。
25.根據(jù)權(quán)利要求21所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述加擾器配置為將第一位組從所述數(shù)據(jù)中的第一組位置拷貝到所述加擾數(shù)據(jù)中的第二組位置,其中,所述第一組位置與所述第二組位置不同。
26.根據(jù)權(quán)利要求25所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述加擾器配置為將第二位組從所述數(shù)據(jù)拷貝至所述加擾數(shù)據(jù),其中,所述第一位組與所述第二位組是從所述數(shù)據(jù)中的非順序組位置拷貝至所述加擾數(shù)據(jù)中的順序組位置的。
27.根據(jù)權(quán)利要求25所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述加擾器包括配置為對(duì)所述第一位組內(nèi)的位進(jìn)行移位的移位器。
28.根據(jù)權(quán)利要求25所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述加擾器包括線性反饋移位寄存器(LFSR),并且其中,所述加擾器配置為根據(jù)所述LFSR的輸出對(duì)所述數(shù)據(jù)中的位組的地址進(jìn)行重新排序。
29.根據(jù)權(quán)利要求28所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述LFSR根據(jù)種子進(jìn)行操作,并且其中,所述種子被附加至待存儲(chǔ)在所述存儲(chǔ)器中的加擾數(shù)據(jù)。
30.根據(jù)權(quán)利要求21所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述存儲(chǔ)器包括閃存,并且其中,所述控制器進(jìn)一步包括: 定形器,其配置為通過(guò)在所述存儲(chǔ)設(shè)備能夠操作地耦合至主機(jī)設(shè)備期間定形從所述主機(jī)設(shè)備接收的用戶數(shù)據(jù)來(lái)生成所述數(shù)據(jù),其中,所述數(shù)據(jù)在所述數(shù)據(jù)存儲(chǔ)設(shè)備的控制器中被加擾;以及 誤差校正編碼(ECC)引擎,其配置為執(zhí)行所述加擾數(shù)據(jù)的誤差校正編碼以生成具有偏移地址的、已編碼的加擾數(shù)據(jù),以及 其中,所述控制器配置為將所述已編碼的加擾數(shù)據(jù)存儲(chǔ)在所述閃存中,使得所述已編碼的加擾數(shù)據(jù)在所述閃存內(nèi)的物理位置是所述偏移地址的函數(shù)。
31.根據(jù)權(quán)利要求30所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為根據(jù)I值在從所述閃存讀取的所述已編碼的加擾數(shù)據(jù)的部分中的計(jì)數(shù)來(lái)確定所述偏移地址。
32.根據(jù)權(quán)利要求31所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,響應(yīng)于利用所述偏移地址對(duì)從所述閃存讀取的已編碼的加擾數(shù)據(jù)進(jìn)行ECC解碼的失敗,所述控制器配置為利用其它偏移地址發(fā)起所述已編碼的加擾數(shù)據(jù)的ECC解碼。
33.根據(jù)權(quán)利要求32所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為,根據(jù)O值在從所述閃存讀 取的已編碼的加擾數(shù)據(jù)的部分中的計(jì)數(shù)的排序,選擇偏移地址。
34.根據(jù)權(quán)利要求32所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為通過(guò)將校驗(yàn)子權(quán)重與閾值相比較來(lái)利用所述其它偏移地址發(fā)起對(duì)所述已編碼的加擾數(shù)據(jù)的ECC解碼。
35.根據(jù)權(quán)利要求31所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為,響應(yīng)于確定O值與I值的特定比例在定形閾值以上而使用缺省的偏移地址。
36.根據(jù)權(quán)利要求30所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為,根據(jù)從一個(gè)編程周期到另一個(gè)編程周期地變化的參數(shù)的函數(shù)來(lái)確定所述偏移地址,其中,所述參數(shù)是所述閃存的塊的參數(shù)。
37.根據(jù)權(quán)利要求36所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述參數(shù)包括寫(xiě)/擦除周期的計(jì)數(shù)。
38.根據(jù)權(quán)利要求30所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述偏移地址存儲(chǔ)在所述閃存的管理表中。
39.根據(jù)權(quán)利要求30所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為根據(jù)O值在從所述閃存讀取的已編碼的加擾數(shù)據(jù)的部分中的計(jì)數(shù)來(lái)確定所述偏移地址。
40.根據(jù)權(quán)利要求39所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述控制器配置為確定與具有最高密度O值的部分對(duì)應(yīng)的偏移地址,并且其中,所述控制器配置為,響應(yīng)于確定O值和I的所述特定比例高于定形閾值或者響應(yīng)于確定在所述部分的O值的最高密度與所述部分的O值的次最高密度之間的差小于閾值,使用缺省的偏移地址。
【文檔編號(hào)】H04K1/06GK103931127SQ201280056450
【公開(kāi)日】2014年7月16日 申請(qǐng)日期:2012年10月16日 優(yōu)先權(quán)日:2011年10月20日
【發(fā)明者】E.沙隆, I.阿爾羅德, A.納馮 申請(qǐng)人:桑迪士克科技股份有限公司