本文所描述的實(shí)施例涉及半導(dǎo)體存儲(chǔ)器,包括用于數(shù)據(jù)編碼以避免多次寫入相同的存儲(chǔ)器單元的結(jié)構(gòu)和方法。
背景技術(shù):
寫入一次存儲(chǔ)器(“WOM”)和一次可編程(“OTP”)存儲(chǔ)器是用于分類限于任何存儲(chǔ)單元的單個(gè)狀態(tài)改變的非易失性半導(dǎo)體存儲(chǔ)器技術(shù)的術(shù)語(yǔ)。這樣的技術(shù)的示例包括熔絲連接存儲(chǔ)器、電可編程只讀存儲(chǔ)器(“EPROM”)和電可擦除可編程只讀存儲(chǔ)器(“EEPROM”)等。
在制造期間,WOM或OTP半導(dǎo)體存儲(chǔ)器陣列的存儲(chǔ)單元通常都被初始化為相同的狀態(tài),不管全部邏輯0或全部邏輯1。應(yīng)當(dāng)注意,本文中的示例假設(shè)在制造期間陣列的存儲(chǔ)器單元被初始化為全部邏輯0。然而,在上述公開(kāi)中,一些存儲(chǔ)器設(shè)備可以被初始化為全部邏輯1而不喪失普遍性。
在制造后已經(jīng)寫入一次之后,與WOM或OTP存儲(chǔ)單元相關(guān)聯(lián)的物理限制要么完全防止單元的多個(gè)狀態(tài)改變,要么致使很難有多個(gè)狀態(tài)改變。例如,因?yàn)闆](méi)有辦法恢復(fù)熔絲連接,所以一旦使用過(guò)電流寫入信號(hào)已經(jīng)熔化熔絲連接,則熔絲連接存儲(chǔ)器的狀態(tài)不能被改變。只有通過(guò)將與存儲(chǔ)單元相關(guān)聯(lián)的浮柵金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管(MOSFET)暴露于高強(qiáng)度紫外線(UV),才可以對(duì)EEPROM存儲(chǔ)器陣列進(jìn)行重新編程。后一種工藝使用透明窗口以便于訪問(wèn)浮置柵極,并且在每個(gè)重新編程之前涉及使用UV光源的難處理的擦除操作。
對(duì)于要被寫入到WOM或OTP陣列的數(shù)據(jù)的“存儲(chǔ)器單元復(fù)位避免”(“MCRA”)編碼的技術(shù)是已知的。MCRA編碼使多個(gè)數(shù)據(jù)字能夠?qū)懭氲侥繕?biāo)存儲(chǔ)器位置,同時(shí)防止對(duì)與目標(biāo)存儲(chǔ)器位置相關(guān)聯(lián)的任何單獨(dú)存儲(chǔ)單元的超過(guò)單個(gè)狀態(tài)改變。這樣做很重要,因?yàn)閷⑦B續(xù)的數(shù)據(jù)字寫入到目標(biāo)存儲(chǔ)器位置將不正確地寫入數(shù)據(jù)到一定程度,即連續(xù)的寫入嘗試使對(duì)應(yīng)于目標(biāo)存儲(chǔ)器位置的單元的一個(gè)或多個(gè)位復(fù)位的程度。因?yàn)樯厦嫠枋龅奈锢硐拗?,所以已?jīng)寫入的單元的狀態(tài)將不會(huì)被復(fù)位。典型的MCRA編碼技術(shù)可以將m位數(shù)據(jù)字D編碼為位長(zhǎng)度n=(2^m)-1位的n位碼字C。然后,碼字C被寫入目標(biāo)存儲(chǔ)器位置,而不是寫入D本身。因此,MCRA編碼以存儲(chǔ)器陣列中的寫入一次位置可以被寫入多次的權(quán)衡,使用額外的存儲(chǔ)器單元以冗余地對(duì)數(shù)據(jù)進(jìn)行編碼。MCRA編碼通常使得能夠?qū)懭肽繕?biāo)存儲(chǔ)器位置T=1+2^(m-2)次。應(yīng)當(dāng)注意,為了該全部公開(kāi)的目的,“存儲(chǔ)器位置”、“目標(biāo)存儲(chǔ)器位置”和“存儲(chǔ)單元的子集”應(yīng)指兩個(gè)或更多個(gè)單獨(dú)存儲(chǔ)器單元的集合,每個(gè)存儲(chǔ)器單元能夠存儲(chǔ)單個(gè)碼字位。因此,“存儲(chǔ)器位置”或“存儲(chǔ)單元的子集”能夠存儲(chǔ)整個(gè)碼字。
圖1是用于長(zhǎng)度m=2的數(shù)據(jù)字D的現(xiàn)有技術(shù)示例MCRA編碼表100。在表100的列110中按順序列出了四種可能的數(shù)據(jù)字。被存儲(chǔ)的每個(gè)D以要被寫入到存儲(chǔ)器位置的對(duì)應(yīng)的C進(jìn)行編碼。C選自第一次存儲(chǔ)器位置被寫入的列115。C選自第二次存儲(chǔ)器位置被寫入的列120。然而,如果D不改變,則存儲(chǔ)器位置不被重寫。所以,例如,如果要被存儲(chǔ)的第一D是“01”125,則用C1=“001”128寫入存儲(chǔ)器位置。如果在以后的時(shí)間處數(shù)據(jù)字D=“10”130要被存儲(chǔ)在相同的存儲(chǔ)器位置處,則用C2=“101”133重寫存儲(chǔ)器位置。注意,從C1=“001”128到C2=“101”133的碼字改變不嘗試從邏輯“1”到邏輯“0”來(lái)復(fù)位目標(biāo)存儲(chǔ)器位置的任何位,因?yàn)槭褂蒙厦嫠枋龅腤OM存儲(chǔ)器類型這樣做是不可能的。然而,還應(yīng)當(dāng)注意,所描述的MCRA編碼嘗試寫入C1的低階位135A和C2的低階位135B兩次,在第一和第二期間每個(gè)寫入一次。
再來(lái)看另一個(gè)示例,如果要被存儲(chǔ)在存儲(chǔ)器位置處的第一D是“11”140,則用C1=“100”144寫入該存儲(chǔ)器位置。如果在以后的時(shí)間處數(shù)據(jù)字D=“01”125將被存儲(chǔ)在相同的存儲(chǔ)器位置處,則用C2=“110”150重寫該存儲(chǔ)器位置。注意,從C1=“100”144到C2=“110”150的碼字改變不嘗試從邏輯“1”到邏輯“0”來(lái)復(fù)位目標(biāo)存儲(chǔ)器位置的任何位,因?yàn)檫@樣做物理上是不可能的。然而,還應(yīng)當(dāng)注意,所描述的MCRA編碼嘗試寫入C1的高階位155A和C2的高階位155B兩次。
技術(shù)實(shí)現(xiàn)要素:
與一些半導(dǎo)體存儲(chǔ)器技術(shù)相關(guān)聯(lián)的位存儲(chǔ)單元在它們的如所制造的狀態(tài)經(jīng)由第一寫入操作已經(jīng)被改變之后就不能夠進(jìn)行第二狀態(tài)改變。對(duì)于其它技術(shù)諸如EEPROM、擦除和重寫是可能的,但是繁瑣??梢允褂萌缦惹八枋龅腗CRA編碼來(lái)避免使目標(biāo)存儲(chǔ)器位置的一次編程的單元復(fù)位的問(wèn)題。然而,MCRA編碼操作可以嘗試將邏輯“1”重寫入先前寫入的單元,如以上在與圖1的MCRA編碼表相關(guān)聯(lián)的示例中所描述的。這樣做可能導(dǎo)致位線干擾和噪聲相關(guān)的問(wèn)題,因?yàn)樵趯懭氩僮髌陂g對(duì)應(yīng)的存儲(chǔ)單元位置實(shí)際上沒(méi)有被重寫而是保持處于它們的先前的設(shè)置狀態(tài)。使用其它存儲(chǔ)器類型諸如閃速存儲(chǔ)器實(shí)現(xiàn)的存儲(chǔ)單元可以能夠多個(gè)狀態(tài)改變。然而,隨著每個(gè)狀態(tài)改變,單元可以逐漸變得更弱。因此,可以期望使用“多寫避免”(“MWA”)碼(本文中還被稱為半導(dǎo)體存儲(chǔ)器“增量(delta)編碼”)對(duì)要被寫入此類存儲(chǔ)器類型的數(shù)據(jù)進(jìn)行編碼。
本文中所描述的結(jié)構(gòu)和方法對(duì)將要被寫入到給定的存儲(chǔ)器位置的連續(xù)的數(shù)據(jù)字以MWA碼字進(jìn)行編碼,該MWA碼字不重寫已經(jīng)被寫入一次邏輯“1”的單個(gè)位存儲(chǔ)單元。實(shí)施例也不將包含邏輯“0”的單元重寫為“0”狀態(tài)。“增量編碼”是指僅被寫入的目標(biāo)存儲(chǔ)器位置的單元是新的碼字需要從邏輯“0”到邏輯“1”狀態(tài)改變(“增量”)的這些目標(biāo)存儲(chǔ)器位置的單元的特征。因此,不寫入整個(gè)新的碼字,只寫入增量。
本文中公開(kāi)了MWA編碼器的各種實(shí)施例。第一實(shí)施例將MWA碼字存儲(chǔ)在查找表(“LUT”)中。在與要被重寫的存儲(chǔ)器位置相關(guān)聯(lián)的現(xiàn)有的數(shù)據(jù)字(“OLD_D”)和將與該存儲(chǔ)器位置相關(guān)聯(lián)的新的數(shù)據(jù)字(“NEW_D”)之間確定逐位差。逐位差被用于從LUT中索引對(duì)應(yīng)于NEW_D的幾個(gè)潛在的MWA碼字。驗(yàn)證(validation)和選擇邏輯從幾個(gè)潛在的MWA碼字選擇不違反存儲(chǔ)器單元多寫避免的原理(這里還被稱為“MWA要求”)的一個(gè)。然后,所選擇的MWA碼字的增量位被寫入存儲(chǔ)器位置。
MWA編碼器的第二實(shí)施例生成m位數(shù)據(jù)字,并且將每個(gè)生成的m位數(shù)據(jù)字變換為潛在的MWA碼字,而不是從LUT查找MWA碼字。m位模式生成器產(chǎn)生中間數(shù)據(jù)字。中間數(shù)據(jù)字與NEW_D相結(jié)合,并且進(jìn)行二進(jìn)制加權(quán)編碼,以生成潛在的MWA碼字。當(dāng)生成每個(gè)潛在的MWA碼字時(shí),由驗(yàn)證邏輯進(jìn)行檢查,以確定其是否滿足MWA要求。如果滿足MWA要求,則對(duì)應(yīng)的DELTA_C位被寫入目標(biāo)存儲(chǔ)器位置。在MWA驗(yàn)證的情況下,從來(lái)自模式生成器的下一個(gè)m位模式生成另一個(gè)潛在的MWA碼字,并且該另一個(gè)潛在的MWA碼字被驗(yàn)證。過(guò)程繼續(xù)直到發(fā)現(xiàn)有效的MWA碼字。然后,來(lái)自MWA碼字的DELTA_C位被寫入目標(biāo)存儲(chǔ)器位置。
如同第二實(shí)施例,MWA編碼器的第三實(shí)施例生成潛在的MWA碼字。然而,第三實(shí)施例的模式生成器在碼字域操作,而沒(méi)有NEW_D輸入。因此,第三實(shí)施例驗(yàn)證為了MWA有效性和為了與期望的NEW_D對(duì)應(yīng)二者而生成的潛在的MWA碼字。由第一有效性測(cè)試邏輯對(duì)由碼字模式生成器生成的潛在的MWA碼字針對(duì)MWA遵從(compliance)進(jìn)行有效性測(cè)試,如先前針對(duì)第一實(shí)施例和第二實(shí)施例所描述的。如果潛在的MWA碼字是無(wú)效的,則不同的潛在的MWA碼字從碼字模式生成器被請(qǐng)求。如果是有效的,則對(duì)潛在的MWA碼字進(jìn)行解碼,以生成試驗(yàn)新的數(shù)據(jù)字(“NEW_D_TRIAL”)。將NEW_D_TRIAL與期望的NEW_D相比較。如果NEW_D_TRIAL與NEW_D相匹配,則有效性信號(hào)允許來(lái)自MWA碼字的DELTA_C位被寫入到目標(biāo)存儲(chǔ)器位置。如果NEW_D_TRIAL與NEW_D不匹配,則從碼字模式生成器請(qǐng)求不同的潛在的MWA碼字。
附圖說(shuō)明
圖1是用于長(zhǎng)度m=2的數(shù)據(jù)字D的現(xiàn)有技術(shù)示例MCRA編碼表。
圖2是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明基于LUT的半導(dǎo)體存儲(chǔ)器單元多寫避免編碼裝置的框圖。
圖3是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明與存儲(chǔ)器單元多寫避免編碼裝置相關(guān)聯(lián)的MCRA解碼器中的數(shù)據(jù)字和碼字位字段的圖示。
圖4是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明與存儲(chǔ)器單元多寫避免編碼裝置相關(guān)聯(lián)的MCRA解碼器的框圖。
圖5是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明與存儲(chǔ)器單元多寫避免編碼裝置相關(guān)聯(lián)的MCRA解碼器中的示例中間數(shù)據(jù)值的數(shù)據(jù)表。
圖6是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明基于模式生成器的半導(dǎo)體存儲(chǔ)器單元多寫避免編碼裝置的框圖。
圖7是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明基于模式生成器的半導(dǎo)體存儲(chǔ)器單元多寫避免編碼裝置的框圖。
具體實(shí)施方式
圖2是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明基于LUT的半導(dǎo)體存儲(chǔ)器單元MWA編碼裝置200的框圖。裝置200接合到半導(dǎo)體存儲(chǔ)器陣列205。存儲(chǔ)器陣列205包括從其讀取現(xiàn)有的(2^m-1)位MWA碼字(“OLD_C”)208的存儲(chǔ)單元的子集。OLD_C 208表示現(xiàn)有的m位數(shù)據(jù)字(“OLD_D”)212。編碼裝置200對(duì)OLD_C 208創(chuàng)建位改變以創(chuàng)建新的MWA碼字(“NEW_C”)。NEW_C對(duì)新的數(shù)據(jù)字(“NEW_D”)215進(jìn)行編碼,用于存儲(chǔ)在存儲(chǔ)器陣列205中。OLD_D 212和NEW_D 215是m位寬。OLD_C 208和NEW_C是(2^m-1)位寬。
MWA編碼裝置200包括存儲(chǔ)器單元復(fù)位避免(“MCRA”)解碼器220。MCRA解碼器220從存儲(chǔ)器接收碼字(例如,在MWA編碼裝置200的情況下的OLD_C 208)。MCRA解碼器220對(duì)碼字解碼,以便找到對(duì)應(yīng)的數(shù)據(jù)字(例如,從OLD_C 208解碼的OLD_D 212)。
圖3是圖示說(shuō)明由MCRA解碼器220處理的(2^m-1)位長(zhǎng)二進(jìn)制碼字C310中的位字段的圖示。C的低階位位置到高階位位置被命名為j=0到j(luò)=(2^m-2)。圖3還示出了由C的解碼產(chǎn)生的數(shù)據(jù)字D 315中的位字段。D是具有被命名為i=0到i=m-1的低階位位置到高階位位置的m位二進(jìn)制數(shù)據(jù)字。通過(guò)對(duì)碼字位C(j)的子集實(shí)行異或(“XOR”)操作,重新獲得每位D(i)。虛線320示出針對(duì)m=3示例情況哪些碼字位C(j)進(jìn)行XOR,以重新獲得每個(gè)數(shù)據(jù)字位D(i)。
例如,D(0)=C(0)XOR C(2)XOR C(4)XOR C(6)。為了簡(jiǎn)潔和清晰起見(jiàn),緊接著先前等式的以下等價(jià)形式在下文中將被使用為類似的XOR等式:D(0)=XOR[C(0),C(2),C(4),C(6)]。D(1)=XOR[C(1),C(2),C(5),C(6)]。D(2)=XOR[C(3),C(4),C(5),C(6)]。
一般來(lái)說(shuō),MCRA解碼器對(duì)C實(shí)行以下操作以重新創(chuàng)建D:
可以用組合邏輯實(shí)施MCRA解碼器,并且可以并行地針對(duì)每個(gè)i確定D(i)。MCRA解碼器的一些實(shí)施例可以迭代地針對(duì)每個(gè)i確定D(i),如以下進(jìn)一步描述的。以下描述的示例MCRA解碼器結(jié)構(gòu)和操作闡明用于選擇哪些碼位C(j)進(jìn)行XOR以對(duì)特定的數(shù)據(jù)位D(i)解碼的過(guò)程。應(yīng)當(dāng)注意,可以用模2和運(yùn)算替換在本公開(kāi)中描述的XOR操作,而不喪失普遍性。
圖4是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明與存儲(chǔ)器單元MWA編碼裝置相關(guān)聯(lián)的MCRA解碼器220的框圖。應(yīng)當(dāng)注意,這里結(jié)合基于LUT的MWA編碼裝置200的描述來(lái)描述MCRA解碼器220。還應(yīng)當(dāng)注意,解碼器220在以下進(jìn)一步描述的MWA編碼裝置的其它實(shí)施例中被使用。
MCRA解碼器220包括數(shù)據(jù)字生成器408。數(shù)據(jù)字生成器408生成一系列m位二進(jìn)制數(shù)據(jù)字D。由數(shù)據(jù)字生成器408生成的每個(gè)數(shù)據(jù)字D表示二進(jìn)制加權(quán)整數(shù)值K。數(shù)據(jù)字生成器408生成表示K=1到K=(2^m-1)的位長(zhǎng)度m的全部可能的二進(jìn)制數(shù)據(jù)字D。生成器的一些實(shí)施例可以生成對(duì)應(yīng)于K=0的D=(全部0);然而,解碼器220不使用K=0。
圖5是圖示說(shuō)明對(duì)于m=3的示例情況在MCRA解碼器220內(nèi)生成的中間數(shù)據(jù)值的數(shù)據(jù)表。二進(jìn)制字510由數(shù)據(jù)字生成器408生成。所生成的每個(gè)二進(jìn)制字510表示對(duì)應(yīng)的二進(jìn)制加權(quán)整數(shù)值K 515。應(yīng)當(dāng)注意,數(shù)據(jù)字生成器408不需要順序地生成二進(jìn)制字510,只要生成表示K=1到K=(2^m-1)的全部可能的二進(jìn)制字。
現(xiàn)在轉(zhuǎn)回到圖4,MCRA解碼器220還包括數(shù)據(jù)字索引生成器415。數(shù)據(jù)字索引生成器415生成從i=0到i=m-1的一系列數(shù)據(jù)字位位置索引i 418。
MCRA解碼器220還包括耦接到數(shù)據(jù)字索引生成器415且耦接到數(shù)據(jù)字生成器408的數(shù)據(jù)位索引器422。數(shù)據(jù)位索引器422接收來(lái)自數(shù)據(jù)字索引生成器415的索引i 418的當(dāng)前值和來(lái)自數(shù)據(jù)字生成器408的數(shù)據(jù)字K 412的當(dāng)前值。數(shù)據(jù)位索引器輸出表示K 412的當(dāng)前數(shù)據(jù)字的第i位的狀態(tài),其被命名為B(K,i)425。簡(jiǎn)要地轉(zhuǎn)到圖5,針對(duì)示例515,K=3。對(duì)于i=0,設(shè)置對(duì)應(yīng)于K=3的二進(jìn)制字(011)的第0位。因此,對(duì)于示例515,B(3,0)=1。對(duì)于i=1,設(shè)置對(duì)應(yīng)于K=3的二進(jìn)制字(011)的第1位。因此,對(duì)于示例515,B(3,1)=1。對(duì)于i=2,重新設(shè)置對(duì)應(yīng)于K=3的二進(jìn)制字(011)的第2位。因此,對(duì)于示例515,B(3,2)=0。
轉(zhuǎn)回到圖4,MCRA解碼器220還包括碼位索引器430。碼位索引器430被耦接到數(shù)據(jù)字生成器408以接收當(dāng)前K 412,并且碼位索引器430被耦接到解碼器輸入端以接收要被解碼的碼字C 435。碼位索引器發(fā)現(xiàn)并且確定C 435的第(K-1)位的狀態(tài),并且將索引的碼位狀態(tài)輸出為B_C(K-1)438。
MCRA解碼器220還包括耦接到數(shù)據(jù)位索引器422并且耦接到碼位索引器430的與(AND)邏輯442。AND邏輯442針對(duì)每個(gè)K和每個(gè)i確定是否設(shè)置了B(K,i)和B_C(K-1)兩者。如果是,則存儲(chǔ)邏輯445啟動(dòng)耦接到碼位索引器430的交叉(intersection)位緩沖器455中的碼位索引C(K-1)450的存儲(chǔ)。對(duì)于圖5的示例515,C(K-1)=C2被存儲(chǔ)。
MCRA解碼器220還包括耦接到數(shù)據(jù)字生成器408的數(shù)據(jù)值跟蹤邏輯460。數(shù)據(jù)值跟蹤邏輯460確定當(dāng)i 418被設(shè)置為當(dāng)前值時(shí),是否已經(jīng)生成全部可能的數(shù)據(jù)字。如果未生成全部可能的數(shù)據(jù)字,則數(shù)據(jù)值跟蹤邏輯460向數(shù)據(jù)字生成器408啟動(dòng)下一個(gè)K的請(qǐng)求。另一方面,如果當(dāng)i 418被設(shè)置為當(dāng)前值時(shí)已經(jīng)生成全部可能的數(shù)據(jù)字,則數(shù)據(jù)值跟蹤邏輯啟動(dòng)將對(duì)標(biāo)記為邏輯“1”且存儲(chǔ)在交叉位緩沖器455中的全部碼字位執(zhí)行XOR操作。由通信地耦接到數(shù)據(jù)位索引器422且通信地耦接到碼位索引器430的交叉XOR邏輯465實(shí)行XOR操作。對(duì)于每個(gè)i,交叉XOR邏輯對(duì)B(K,i)和C(K-1)都是邏輯“1”的全部位執(zhí)行XOR操作,以便生成解碼的數(shù)據(jù)字D的對(duì)應(yīng)的位D(i)?,F(xiàn)在再次轉(zhuǎn)到圖5,示例520示出包括在XOR操作中用于重新獲得D(i=0)數(shù)據(jù)位的碼字位位置的集合為{C0、C2、C4、C6}。
轉(zhuǎn)回到圖4,MCRA解碼器220還包括耦接到數(shù)據(jù)字索引生成器415的數(shù)據(jù)字索引跟蹤邏輯470。數(shù)據(jù)字索引跟蹤邏輯470確定在每個(gè)XOR操作之后是否已經(jīng)生成i的全部值。如果未生成i的全部值,則數(shù)據(jù)字索引跟蹤邏輯470向數(shù)據(jù)字索引生成器415發(fā)起請(qǐng)求,以生成下一個(gè)i。另一方面,如果已經(jīng)生成i的全部值,則數(shù)據(jù)字索引跟蹤邏輯470終止解碼,因?yàn)镃435已經(jīng)被完全解碼。應(yīng)當(dāng)注意,K和i的值不需要順序地或以任何特定的次序被迭代。還應(yīng)當(dāng)注意,MCRA解碼器220的一些實(shí)施例可以在移動(dòng)到不同的K之前針對(duì)每個(gè)K的值遍歷數(shù)據(jù)字索引i的多個(gè)值,或者可以在移動(dòng)到不同的i之前針對(duì)每個(gè)i遍歷K的多個(gè)值,或者可以以任何次序這樣做。
現(xiàn)在返回到圖2,基于LUT的半導(dǎo)體存儲(chǔ)器單元MWA編碼裝置200包括耦接到MCRA解碼器220的m位寬XOR邏輯225。XOR邏輯225接收OLD_D 212和期望的NEW_D 215進(jìn)行存儲(chǔ),并且對(duì)OLD_D 212和NEW_D215執(zhí)行逐位XOR操作,以便創(chuàng)建m位寬二進(jìn)制字DELTA_D 228A和DELTA_D 228B。DELTA_D 228A和DELTA_D 228B表示OLD_D212和NEW_D 215之間的位狀態(tài)差。
MWA編碼裝置200還包括耦接到XOR邏輯225的表查找邏輯232。表查找邏輯232接收DELTA_D 228A,并且將來(lái)自耦接到表查找邏輯232的二維增量編碼LUT 235的潛在的(potential)MWA碼字DELTA_C(I)的集合編索引。
在操作期間,由表查找邏輯232使用DELTA_D 228A和DELTA_D 228B索引LUT 235。增量編碼LUT 235存儲(chǔ)與每個(gè)DELTA_D相關(guān)聯(lián)的2^(m-1)個(gè)潛在的差(difference)碼字DELTA_C(I)236的集合。每個(gè)差碼字DELTA_C(i)236的集合(例如,集合238)對(duì)應(yīng)于可能的DELTA_D 228B(例如,DELTA_D240)。每個(gè)DELTA_C(I)236的每個(gè)設(shè)置位表示在OLD_C 208和NEW_C之間對(duì)應(yīng)的位位置處的狀態(tài)改變。NEW_C表示NEW_D 215。
差碼字DELTA_C(I)236中的一個(gè)或多個(gè)可以滿足在位在OLD_C 208中被設(shè)置的位位置處沒(méi)有位設(shè)置的MWA要求。如果不能由對(duì)應(yīng)于當(dāng)前DELTA_D的任何DELTA_C(I)(例如,對(duì)應(yīng)于010的DELTA_D 240的四個(gè)DELTA_C(I)238中的任何DELTA_C(I)238)滿足后一個(gè)條件,則嘗試的NEW_D 215的編碼失敗。這樣的失敗是編碼NEW_D 215必需的訪問(wèn)的存儲(chǔ)單元的集合的全部單元先前已經(jīng)被寫入的指示。在后一種情況下,這由在MWA編碼裝置200的外部的監(jiān)管邏輯負(fù)責(zé),以決定做什么。例如,在WOM類型存儲(chǔ)單元的情況下,不能寫入如由編碼器200編碼的NEW_D。嘗試這樣做將嘗試改變已經(jīng)被寫入的一個(gè)或多個(gè)單個(gè)寫入存儲(chǔ)單元的狀態(tài)。
應(yīng)當(dāng)注意,可以在比使用用于編碼操作的MWA編碼裝置200的時(shí)間更早的時(shí)間處確定LUT 235中的項(xiàng)目??梢酝ㄟ^(guò)利用最多兩個(gè)設(shè)置的位生成(2^m-1)位字的全部位組合以創(chuàng)建LUT DELTA_C(I)值236來(lái)創(chuàng)建LUT項(xiàng)目。然后,可以使用MCRA解碼器諸如上面所描述的解碼器220對(duì)每個(gè)這樣的LUT DELTA_C(I)值進(jìn)行解碼。MCRA解碼器確定對(duì)應(yīng)于解碼器輸入處的LUTDELTA_C(I)值的LUT DELTA_D值。然后,DELTA_C(I)值在LUT中與出現(xiàn)在解碼器的輸出處的DELTA_D值相關(guān)聯(lián)。(例如,使用圖2上所示的LUT可視化,解碼為特定DELTA_D的DELTA_C(I)值被插入與該DELTA_D相關(guān)聯(lián)的LUT行中)。
編碼器200還包括通信地耦接到增量編碼LUT 235的DELTA_C有效性測(cè)試和選擇邏輯245。DELTA_C有效性測(cè)試和選擇邏輯245確定(若有的話)對(duì)應(yīng)于當(dāng)前DELTA_D的DELTA_C(I)中的哪些滿足如上所述的MWA要求。DELTA_C有效性測(cè)試和選擇邏輯245的AND邏輯部分(圖2中未示出)接收OLD_C 208和DELTA_C(I)字中的每個(gè)。AND邏輯部分通過(guò)確認(rèn)OLD_C208與DELTA_C(I)的逐位比較導(dǎo)致全部邏輯“0”來(lái)測(cè)試DELTA_C(I)字中的每個(gè)。
如果是這樣,則DELTA_C有效性測(cè)試和選擇邏輯245通過(guò)對(duì)應(yīng)于當(dāng)前DELTA_D且滿足MWA要求的DELTA_C(I)中選擇的一個(gè),使得能夠進(jìn)行存儲(chǔ)單元的集合中的OLD_C 208的更新。所選擇的DELTA_C(I)被命名為“DELTA_C”250。應(yīng)當(dāng)注意,僅DELTA_C 250的設(shè)置位需要被寫入到存儲(chǔ)器陣列存儲(chǔ)單元的子集,以寫入NEW_C。換言之,通過(guò)用NEW_C替代OLD_C208,編碼的NEW_D 215可以被存儲(chǔ)在與編碼的OLD_D 212相同的存儲(chǔ)器位置中。并且可以通過(guò)改變僅對(duì)應(yīng)于DELTA_C 250的一個(gè)或兩個(gè)設(shè)置位的這些存儲(chǔ)單元的狀態(tài),OLD_C 208可以用NEW_C替代。
圖6是根據(jù)各種示例方法和實(shí)施例圖示示出基于模式生成器(pattem generator)的半導(dǎo)體存儲(chǔ)器單元MWA編碼裝置600的框圖。MWA編碼裝置600包括如利用圖3、圖4和圖5所示出的且如以上參考圖2的編碼裝置200所描述的MCRA解碼器220。MCRA解碼器220接收來(lái)自半導(dǎo)體存儲(chǔ)器陣列205中的存儲(chǔ)單元的子集的現(xiàn)有的(2^m)-1位寬MWA碼字OLD_C 208。OLD_C 208表示現(xiàn)有的m位數(shù)據(jù)字OLD_D 212。MCRA解碼器220對(duì)OLD_C208解碼以確定OLD_D 212。
MWA編碼裝置600還包括耦接到MCRA解碼器220的第一m位寬XOR邏輯225。XOR邏輯225接收將要寫入的OLD_D 208和NEW_D 215。XOR邏輯225對(duì)OLD_D 212和NEW_D 215執(zhí)行逐位XOR操作,以便創(chuàng)建DELTA_D 228。
編碼裝置600還包括通信地耦接到第一m位寬XOR邏輯225的m位模式生成器635。模式生成器635生成m位中間數(shù)據(jù)字(“DATA_I”)638。應(yīng)當(dāng)注意,不需要順序地或以任何特定的次序生成DATA_I 638。
編碼裝置600還包括耦接到第一m位XOR邏輯225并耦接到m位模式生成器635的第二m位XOR邏輯642。第二m位XOR邏輯642接收DELTA_D228和DATA_I 638,并且對(duì)DELTA_D 228和DATA_I 638執(zhí)行逐位XOR操作。這樣做創(chuàng)建m位中間數(shù)據(jù)差字(“DELTA_D_I”)645。
編碼裝置600還分別包括第一二進(jìn)制加權(quán)編碼器650和第二二進(jìn)制加權(quán)編碼器655。第一二進(jìn)制加權(quán)編碼器650將DELTA_D_I 645變換為第一(2^m)-1位試驗(yàn)(trial)碼字分量DELTA_C_TRIAL_1660。DELTA_C_TRIAL_1660具有在對(duì)應(yīng)于DELTA_D_I 645的整數(shù)值的位位置處設(shè)置的單個(gè)位。例如,“110”的DELTA_D_I 645具有整數(shù)值6。DELTA_C_TRIAL_1 660是“0100000”,其中從右邊第六位設(shè)置為邏輯“1”。同樣地,第二二進(jìn)制加權(quán)編碼器655將DATA_I 638變換為第二(2^m)-1位試驗(yàn)碼字分量DELTA_C_TRIAL_2 664。DELTA_C_TRIAL_2 664具有在對(duì)應(yīng)于DATA_I的整數(shù)值的位位置處設(shè)置的單個(gè)位。
編碼裝置600還包括或(OR)邏輯668,該或邏輯668耦接到第一二進(jìn)制加權(quán)編碼器650和第二二進(jìn)制加權(quán)編碼器655。OR邏輯668對(duì)DELTA_C_TRIAL_1 660和DELTA_C_TRIAL_2 664執(zhí)行逐位OR操作,以便將DELTA_C_TRIAL_1 660和DELTA_C_TRIAL_2 664結(jié)合為試驗(yàn)差碼字DELTA C TRIAL 672。因此,DATA I 638與DELTA D 228相結(jié)合且被編碼以形成DELTA_C_TRIAL 672。DELTA_C_TRIAL 672的每個(gè)設(shè)置位表示在OLD_C 208和新的碼字NEW_C之間的對(duì)應(yīng)的位位置處的狀態(tài)改變。
MWA編碼裝置600包括通信地耦接到m位模式生成器635的DELTA_C有效性測(cè)試邏輯675。DELTA_C有效性測(cè)試邏輯675確定DELTA_C_TRIAL672是否滿足沒(méi)有位設(shè)置在位在OLD_C中被設(shè)置的位位置處的MWA要求。DELTA_C有效性測(cè)試邏輯675對(duì)OLD_C 208與DELTA_C_TRIAL 672執(zhí)行逐位比較,并且確認(rèn)該比較導(dǎo)致全部邏輯“0”。如果是這樣,則DELTA_C有效性測(cè)試邏輯675使得通過(guò)命名為“DELTA_C”680的DELTA_C_TRIAL 672能夠進(jìn)行存儲(chǔ)單元的集合中的OLD_C 208的更新。如果DELTA_C有效性測(cè)試邏輯675確定DELTA_C_TRIAL 672不滿足MWA要求,則從模式生成器635請(qǐng)求不同的DATA_I 638,以便生成不同的DELTA_C_TRIAL 672。因此,MWA編碼裝置600在數(shù)據(jù)字域生成試驗(yàn)(trial),以發(fā)現(xiàn)滿足MWA要求的新的碼字。
圖7是根據(jù)各種示例方法和實(shí)施例圖示說(shuō)明基于模式生成器的半導(dǎo)體存儲(chǔ)器單元MWA編碼裝置700的框圖。MWA編碼裝置700在碼字域中生成試驗(yàn),以發(fā)現(xiàn)滿足MWA要求且適于要被存儲(chǔ)的新的數(shù)據(jù)字NEW_D的新的碼字。
MWA編碼裝置700包括碼字差模式生成器705。碼字差模式生成器705生成試驗(yàn)差碼字DELTA_C_TRIAL 708A。DELTA_C_TRIAL 708A的每個(gè)設(shè)置位表示在當(dāng)前存儲(chǔ)在半導(dǎo)體存儲(chǔ)器陣列205中的存儲(chǔ)單元的子集中的現(xiàn)有的(2^m)-1位寬MWA碼字OLD_C 208和替代OLD_C 208的新的碼字NEW_C之間對(duì)應(yīng)的位位置處的狀態(tài)改變。OLD_C表示現(xiàn)有的m位數(shù)據(jù)字OLD_D;并且NEW_C表示要被存儲(chǔ)的新的數(shù)據(jù)字NEW_D 215。應(yīng)當(dāng)注意,不需要順序地或以任何特定的次序生成DELTA_C_TRIAL 708A。
編碼裝置700還包括有效性測(cè)試邏輯712,該有效性測(cè)試邏輯712耦接到碼字差模式生成器705。有效性測(cè)試邏輯712確定DELTA_C_TRIAL 708A是否滿足沒(méi)有位設(shè)置在位在OLD_C 208中被設(shè)置的位位置處的第一條件。有效性測(cè)試邏輯712還確定DELTA_C_TRIAL 708A是否滿足可解碼為對(duì)應(yīng)于NEW_D 215的新的試驗(yàn)數(shù)據(jù)字(“NEW_D_TRIAL”)720的第二條件。如果滿足第一條件和第二條件二者,則有效性測(cè)試邏輯712還通過(guò)等于DELTA_C_TRIAL 708B的DELTA_C 250使能夠?qū)LD_C 208更新。
有效性測(cè)試邏輯712包括第一DELTA_C有效性測(cè)試邏輯725,該第一DELTA_C有效性測(cè)試邏輯725耦接到碼字差模式生成器705。第一DELTA_C有效性測(cè)試邏輯725接收DELTA_C_TRIAL 708A和OLD_C 208。第一DELTA_C有效性測(cè)試邏輯725對(duì)DELTA_C_TRIAL 708A和OLD_C 208執(zhí)行逐位比較操作。如果在任何位位置處的位在DELTA_C_TRIAL 708A和在OLD_C 208二者中被設(shè)置,則第一DELTA_C有效性測(cè)試邏輯725從模式生成器請(qǐng)求不同的DELTA_C_TRIAL 708A。
MWA編碼裝置700的有效性測(cè)試邏輯712還包括或(OR)邏輯730,該OR邏輯730被耦接到第一DELTA_C有效性測(cè)試邏輯725。OR邏輯730接收DELTA_C_TRIAL 708B和OLD_C 208,并且經(jīng)由逐位邏輯或操作將DELTA_C_TRIAL 708B和OLD_C 208結(jié)合。試驗(yàn)碼字NEW_C_TRIAL 735由該結(jié)合產(chǎn)生。
MWA編碼裝置700的有效性測(cè)試邏輯712還包括MCRA解碼器220,該MCRA解碼器220被耦接到或邏輯730。MCRA解碼器220接收NEW_C_TRIAL 735,并且對(duì)NEW_C_TRIAL 735解碼,產(chǎn)生如先前在有效性測(cè)試邏輯712的概述的上下文中所提到的NEW_D_TRIAL 720。
MWA編碼裝置700的有效性測(cè)試邏輯712包括耦接到MCRA解碼器220的第二DELTA_C有效性測(cè)試邏輯745。第二DELTA_C有效性測(cè)試邏輯745接收NEW_D_TRIAL 720和NEW_D 215,并且對(duì)NEW_D_TRIAL 720和NEW_D 215執(zhí)行逐位比較操作。如果NEW_D_TRIAL 720不等于NEW_D215,則第二DELTA_C有效性測(cè)試邏輯745從模式生成器請(qǐng)求不同的DELTA_C_TRIAL 708A。
不等于NEW_D 215的NEW_D_TRIAL 720的狀態(tài)是一種指示,即雖然如通過(guò)第一DELTA_C有效性測(cè)試邏輯725確定的,通過(guò)沒(méi)有位設(shè)置在與OLD_C208中設(shè)置位的位置相同的位置中,DELTA_C_TRIAL 708B滿足MWA有效性要求,但是DELTA_C_TRIAL 708B根本不對(duì)應(yīng)于要被存儲(chǔ)的新的數(shù)據(jù)字NEW_D 215。
MWA編碼裝置700的有效性測(cè)試邏輯712還包括DELTA_C使能邏輯750,該DELTA_C使能邏輯750被耦接到第二DELTA_C有效性測(cè)試邏輯745。DELTA_C使能邏輯750接收當(dāng)NEW_D_TRIAL 720等于NEW_D 215時(shí)來(lái)自第二DELTA_C有效性測(cè)試邏輯745的指示,并且在該情況下,DELTA_C使能邏輯750使DELTA_C 250能夠被寫入存儲(chǔ)器陣列205中的存儲(chǔ)單元的子集。
本文所描述的裝置和方法在除了對(duì)要被寫入存儲(chǔ)器陣列的數(shù)據(jù)字編碼之外的應(yīng)用中可以是有用的。本文所描述的裝置200、裝置400、裝置600和裝置700的示例旨在提供對(duì)各種實(shí)施例的結(jié)構(gòu)的一般理解。它們不旨在作為可能使用這些示例結(jié)構(gòu)和序列的裝置、系統(tǒng)和方法的全部元件和特征的完整的描述。
本文所描述的實(shí)施例和方法以這樣的方式對(duì)要被寫入半導(dǎo)體存儲(chǔ)器陣列的數(shù)據(jù)字進(jìn)行編碼,以避免嘗試已經(jīng)寫入的存儲(chǔ)器存儲(chǔ)單元的重寫。這樣做可以減少由WOM存儲(chǔ)技術(shù)的過(guò)驅(qū)動(dòng)或過(guò)充電存儲(chǔ)單元元件導(dǎo)致的不穩(wěn)定性,和/或通過(guò)減少大塊/塊擦除和重寫,可以增加可重寫存儲(chǔ)器類型的整體總壽命寫操作??梢詫?dǎo)致較高的設(shè)備可靠性和較低的成本。
通過(guò)圖示說(shuō)明而非限制的方式,附圖示出其中可以實(shí)踐主題的具體實(shí)施例。應(yīng)當(dāng)注意,在連接線的一端或兩端處的箭頭旨在示出電流量、數(shù)據(jù)流、邏輯流等的大體方向。連接器線箭頭并不旨在限制這樣的流為特定的方向,諸如排除在相反方向上的任何流。足夠詳細(xì)地描述了所示出的實(shí)施例,以使本領(lǐng)域技術(shù)人員能夠?qū)嵺`本文所公開(kāi)的教導(dǎo)??梢允褂闷渌鼘?shí)施例并且由此得出其它實(shí)施例,使得可以進(jìn)行結(jié)構(gòu)替代和結(jié)構(gòu)改變與邏輯替代和邏輯改變,而不脫離本公開(kāi)的保護(hù)范圍。因此,該詳細(xì)的說(shuō)明書不具有限制意義。由隨附權(quán)利要求和這樣的權(quán)利要求被賦予到的等同物的全部范圍來(lái)限定各種實(shí)施例的廣度。
本發(fā)明主題的此類實(shí)施例在本文中可以被單獨(dú)稱為或統(tǒng)稱為術(shù)語(yǔ)“發(fā)明”以僅為了方便,而不旨主動(dòng)將本申請(qǐng)限制到任何單個(gè)發(fā)明或發(fā)明概念(如果實(shí)際上公開(kāi)了一個(gè)以上的發(fā)明或發(fā)明概念)。因此,雖然本文中已經(jīng)示出和描述具體實(shí)施例,但是計(jì)劃實(shí)現(xiàn)相同目的的任何布置均可替代示出的具體實(shí)施例。本公開(kāi)旨在覆蓋各種實(shí)施例的任何和全部改編或變型。
為了符合37C.F.R.§1.72(b),提供了說(shuō)明書摘要,37C.F.R.§1.72(b)要求將允許讀者快速確知技術(shù)公開(kāi)的本質(zhì)的摘要??梢岳斫猓獙⒉挥糜诮忉尰蛳拗茩?quán)利要求的保護(hù)范圍或含義。在前述的詳細(xì)的說(shuō)明書中,為了精簡(jiǎn)本公開(kāi),各種特征被組合在單個(gè)實(shí)施例中。這種公開(kāi)的方法不應(yīng)被解釋為要求比在每個(gè)權(quán)利要求中明確列舉的特征更多的特征。相反,發(fā)明的主題可以存在于少于單個(gè)公開(kāi)的實(shí)施例的全部特征。從而,所附權(quán)利要求被并入到詳細(xì)的說(shuō)明書中,其中每個(gè)權(quán)利要求本身作為單獨(dú)的實(shí)施例。