用于非易失性存儲器的耐久性感知糾錯(cuò)碼(ecc)保護(hù)的制作方法
【專利說明】
【背景技術(shù)】
[0001]存儲器由于許多原因而在操作期間經(jīng)歷錯(cuò)誤。存在糾錯(cuò)碼(ECC)方案來處理在存儲器中出現(xiàn)的錯(cuò)誤并且提高短期可靠性(例如,單錯(cuò)糾正和雙錯(cuò)檢測(SECDED)方案)。
[0002]一些非易失性存儲器具有有限的寫周期。具有有限寫周期的一些非易失性存儲器能夠采用僅在寫操作期間改變它們的值的位被寫回并且對特定寫未改變它們的值的位保持不被觸及(并且從而,寫操作對那些位不造成進(jìn)一步損耗)這樣的方式執(zhí)行寫。一些系統(tǒng)實(shí)現(xiàn)損耗減少方案,其可以延長非易失性存儲器的壽命(即,延遲非易失性存儲器的磨損)。
[0003]現(xiàn)有的非易失性存儲器實(shí)現(xiàn)損耗減少但未能考慮對短期可靠性的影響(例如,ECC機(jī)制),或提出錯(cuò)誤檢測/糾正機(jī)制但未能考慮對非易失性存儲器的壽命時(shí)間的影響。
【附圖說明】
[0004]下列描述包括對附圖的論述,附圖具有通過本發(fā)明的實(shí)施例的實(shí)現(xiàn)的示例的方式而給出的說明。附圖應(yīng)通過示例而非限制的方式來理解。如本文使用的,對一個(gè)或多個(gè)“實(shí)施例”的引用要理解為描述在本發(fā)明的至少一個(gè)實(shí)現(xiàn)中包括的特定特征、結(jié)構(gòu)或特性。從而,在本文出現(xiàn)的例如“在一個(gè)實(shí)施例中”或“在備選實(shí)施例中”等短語描述本發(fā)明的各種實(shí)施例和實(shí)現(xiàn),并且不一定全部都指相同的實(shí)施例。然而,它們也不一定互相排斥。在下面的描述和權(quán)利要求中,可使用術(shù)語“耦合”和它的派生詞。術(shù)語“耦合”在本文可指直接接觸(物理、電、磁、光,等)的兩個(gè)或以上的元件,或指彼此未直接接觸但仍彼此交互的兩個(gè)或以上的元件。
[0005]圖1是根據(jù)一個(gè)實(shí)施例要存儲在非易失性存儲器上的內(nèi)容的框圖,該內(nèi)容包括元數(shù)據(jù)和ECC位,用于在提供錯(cuò)誤保護(hù)的同時(shí)減少非易失性存儲器的損耗。
[0006]圖2是根據(jù)一個(gè)實(shí)施例用于對數(shù)據(jù)編碼(其包括計(jì)算元數(shù)據(jù)位、ECC位、第二元數(shù)據(jù)位和第二 ECC位)的過程的流程圖。
[0007]圖3是根據(jù)一個(gè)實(shí)施例對于數(shù)據(jù)位的元數(shù)據(jù)編碼方案的框圖。
[0008]圖4是根據(jù)一個(gè)實(shí)施例對于ECC位的元數(shù)據(jù)編碼方案的框圖。
[0009]圖5是根據(jù)一個(gè)實(shí)施例的過程的流程圖,該過程包括基于元數(shù)據(jù)位、ECC位、第二元數(shù)據(jù)位和第二 ECC位來重新生成原始數(shù)據(jù)。
[0010]圖6是根據(jù)一個(gè)實(shí)施例的存儲器子系統(tǒng)的框圖。
[0011 ] 圖7是根據(jù)一個(gè)實(shí)施例具有耐久性感知ECC保護(hù)(endurance-aware ECCprotect1n)的計(jì)算系統(tǒng)的框圖。
[0012]圖8是根據(jù)一個(gè)實(shí)施例具有耐久性感知ECC保護(hù)的移動(dòng)裝置的實(shí)施例的框圖。
【具體實(shí)施方式】
[0013]本發(fā)明的實(shí)施例涉及用于耐久性感知糾錯(cuò)的設(shè)備、系統(tǒng)和方法。耐久性感知糾錯(cuò)減少非易失性存儲器技術(shù)中的損耗同時(shí)提供ECC保護(hù)來實(shí)現(xiàn)提高的長期可靠性同時(shí)維持短期可靠性。如本文使用的“ECC保護(hù)”指糾錯(cuò)和/或錯(cuò)誤檢測?!皳p耗減少”指減少非易失性存儲器的損耗(例如,減少寫入非易失性存儲器的位的數(shù)量)和/或均衡損耗(例如,使寫入非易失性存儲器的存儲器單元的次數(shù)更均衡)。損耗減少可以根據(jù)損耗減少算法通過修改寫入非易失性存儲器的位并且提供用于使原始位從修改的位恢復(fù)的一些機(jī)制而實(shí)現(xiàn)。用于從修改的位恢復(fù)原始位的一個(gè)機(jī)制是計(jì)算識別對原始位做出的修改的元數(shù)據(jù)并且存儲該元數(shù)據(jù)(例如,其中修改的數(shù)據(jù)在非易失性存儲器中,或在獨(dú)立位點(diǎn)和/或獨(dú)立裝置中)。損耗減少方案的兩個(gè)示例在下文關(guān)于圖3和4論述。
[0014]耐久性感知ECC保護(hù)可以在非易失性存儲器技術(shù)中使用來減少非易失性存儲器的損耗同時(shí)提供ECC保護(hù)。
[0015]一個(gè)實(shí)施例對數(shù)據(jù)位和ECC位兩者實(shí)現(xiàn)損耗減少,并且包括第二級ECC保護(hù)。該第二級ECC保護(hù)可以擴(kuò)展ECC機(jī)制以除數(shù)據(jù)位外還涵蓋所有生成的元數(shù)據(jù)位。可能的損耗減少和ECC方案的一些示例在下文進(jìn)一步詳細(xì)描述,但實(shí)現(xiàn)的特定損耗減少和ECC方案可以包括有損耗減少和ECC保護(hù)的能力來實(shí)現(xiàn)針對錯(cuò)誤的期望保護(hù)并且延長非易失性存儲器的壽命的任何方案。
[0016]在一個(gè)實(shí)施例中,損耗減少技術(shù)牽涉單個(gè)數(shù)據(jù)字內(nèi)(例如,32位字、64位字內(nèi)或具有其他大小的字內(nèi)的其他)的位(例如,數(shù)據(jù)位)的旋轉(zhuǎn)。一個(gè)這樣的實(shí)施例可以基于一個(gè)或多個(gè)寫計(jì)數(shù)器,如下文描述的。
[0017]根據(jù)一個(gè)實(shí)施例,不同類型的內(nèi)容利用不同的損耗減少技術(shù)。例如,數(shù)據(jù)位利用一個(gè)損耗減少技術(shù),并且ECC位利用不同的損耗減少技術(shù)。對于數(shù)據(jù)位的損耗減少技術(shù)可以對數(shù)據(jù)位的行為來定制,并且對ECC位的損耗減少技術(shù)可以對ECC位的行為來定制。例如,數(shù)據(jù)位的小的子集可以在連續(xù)訪問(access)期間改變值,而ECC位可隨著大部分連續(xù)訪問而改變。在一個(gè)這樣的示例中,旋轉(zhuǎn)機(jī)制可以用于執(zhí)行數(shù)據(jù)位的旋轉(zhuǎn),而“翻轉(zhuǎn)”機(jī)制可以用于對ECC位執(zhí)行倒置(invers1n)。旋轉(zhuǎn)機(jī)制在下文關(guān)于圖3更詳細(xì)描述,并且翻轉(zhuǎn)機(jī)制在下文關(guān)于圖4更詳細(xì)描述。在一個(gè)實(shí)施例中,對數(shù)據(jù)位和ECC位實(shí)現(xiàn)不同的損耗減少機(jī)制導(dǎo)致非易失性存儲器的壽命時(shí)間大大提高。
[0018]在下面的描述中,論述許多細(xì)節(jié)來提供對本發(fā)明的實(shí)施例的更全面論述。本發(fā)明的實(shí)施例可在沒有這些具體細(xì)節(jié)的情況下實(shí)踐,這對于本領(lǐng)域內(nèi)技術(shù)人員將是明顯的。在其他實(shí)例中,眾所周知的結(jié)構(gòu)和裝置以框圖的形式而未詳細(xì)地示出,以便避免混淆本發(fā)明的實(shí)施例。
[0019]注意在實(shí)施例的對應(yīng)圖中,信號用線條表示。一些線條可較粗,用于指示更多組成的信號通路,并且/或在一個(gè)或多個(gè)末端具有箭頭,用于指示主要信息流方向。這樣的指示不意在為限制性的。相反,這些線條結(jié)合一個(gè)或多個(gè)示范性實(shí)施例來使用以便于更容易理解電路或邏輯單元。任何表示的信號,如由設(shè)計(jì)需要或偏好所指定的,實(shí)際上可包括一個(gè)或多個(gè)信號,其可在任一方向上行進(jìn)并且可用任何適合類型的信號方案實(shí)現(xiàn)。
[0020]圖1是根據(jù)一個(gè)實(shí)施例要存儲在非易失性存儲器上的內(nèi)容的框圖,該內(nèi)容包括元數(shù)據(jù)和ECC位,用于減少非易失性存儲器的損耗同時(shí)提供錯(cuò)誤保護(hù)。
[0021]本發(fā)明的實(shí)施例包括利用元數(shù)據(jù)位和ECC方案的擴(kuò)展來提供期望的ECC保護(hù)級別的損耗減少技術(shù)。如在圖1中圖示的,要存儲在存儲器中的內(nèi)容100包括數(shù)據(jù)位102、元數(shù)據(jù)位104、ECC位106、第二元數(shù)據(jù)位108和第二 ECC位110。數(shù)據(jù)位102是在寫請求中接收并且在接收它們后根據(jù)損耗減少算法來修改的數(shù)據(jù)。元數(shù)據(jù)位104指示對數(shù)據(jù)位102做出的任何損耗減少修改,并且在接收對存儲器位點(diǎn)(在非易失性存儲器中該數(shù)據(jù)存儲在該位點(diǎn)處)的讀請求時(shí)能夠恢復(fù)原始數(shù)據(jù)位。對數(shù)據(jù)位102做出的修改可以包括根據(jù)任何損耗減少技術(shù)(例如,旋轉(zhuǎn)、倒置、旋轉(zhuǎn)和倒置的組合或任何其他損耗減少技術(shù))做出的修改;不同損耗減少技術(shù)可需要不同數(shù)量的元數(shù)據(jù)位104。盡管圖示兩個(gè)元數(shù)據(jù)位104,可使用一個(gè)元數(shù)據(jù)位或多個(gè)元數(shù)據(jù)位。額外的元數(shù)據(jù)位可提供提高的損耗減少,但可能增加存儲開銷。
[0022]ECC位106對數(shù)據(jù)位102和元數(shù)據(jù)位104提供錯(cuò)誤保護(hù)??梢允褂萌魏蜤CC方案(例如,實(shí)現(xiàn)SECDED、4EC5ED或其他級別的ECC保護(hù)的ECC方案)。盡管圖示八個(gè)ECC位106,任何數(shù)量的ECC位可以用于實(shí)現(xiàn)期望的ECC方案(例如,一個(gè)ECC位或多個(gè)ECC位)。根據(jù)損耗減少算法來修改ECC位106。應(yīng)用于ECC位106的損耗減少技術(shù)可與應(yīng)用于數(shù)據(jù)位102的損耗減少技術(shù)相同或不同。應(yīng)用不同的損耗減少技術(shù)可以通過對要存儲在這些位中的不同類型的內(nèi)容的寫模式定制每個(gè)技術(shù)而實(shí)現(xiàn)提高的損耗減少。
[0023]元數(shù)據(jù)位108指示對ECC位106做出的修改。盡管圖示兩個(gè)元數(shù)據(jù)位108,可使用一個(gè)或多個(gè)元數(shù)據(jù)位108。
[0024]因?yàn)樵獢?shù)據(jù)位108指示對ECC位106的修改,ECC位106未提供對元數(shù)據(jù)位108的ECC保護(hù)。這是因?yàn)槿绻獢?shù)據(jù)位108從ECC位106來計(jì)算,則它將在ECC位中觸發(fā)某些修改來實(shí)現(xiàn)損耗均衡(wear-leveling)。從而,對元數(shù)據(jù)位108使用ECC位106可能違反保護(hù)級別。
[0025]針對第二級ECC保護(hù),提供ECC位110以用于保護(hù)元數(shù)據(jù)位108。盡管圖示單個(gè)ECC位,可使用一個(gè)ECC位或多個(gè)ECC位。例如,可以使用如圖示的單個(gè)奇偶校驗(yàn)位,或?qū)τ诶贸^兩個(gè)元數(shù)據(jù)位的系統(tǒng)和/或?qū)崿F(xiàn)其他級別的ECC保護(hù)的系統(tǒng),可以采用使用額外ECC位的更復(fù)雜保護(hù)機(jī)制。
[0026]在存在64個(gè)數(shù)據(jù)位的圖示實(shí)施例中,內(nèi)容100實(shí)現(xiàn)SE⑶ED (72,64)保護(hù),同時(shí)實(shí)現(xiàn)損耗減少。兩個(gè)元數(shù)據(jù)位104的引入可以容納在ECC方案中,其中對編碼和解碼邏輯進(jìn)行微小改變而無需額外保護(hù)位。根據(jù)元數(shù)據(jù)位104的數(shù)量和ECC保護(hù)級別,實(shí)現(xiàn)可以包括更少或額外ECC位。
[0027]具有損耗減少的SECDED保護(hù)可以使用旋轉(zhuǎn)方案(其中兩個(gè)“旋轉(zhuǎn)位”104指示對數(shù)據(jù)位102執(zhí)行的旋轉(zhuǎn))和翻轉(zhuǎn)方案(其中兩個(gè)“翻轉(zhuǎn)位”108指示ECC位106的倒置)來實(shí)現(xiàn)。其他實(shí)施例可以實(shí)現(xiàn)損耗減少方案的其他變化形式。例如,實(shí)施例可以對數(shù)據(jù)位102實(shí)現(xiàn)翻轉(zhuǎn)方案并且對ECC位106實(shí)現(xiàn)旋轉(zhuǎn)方案、對于數(shù)據(jù)位102和ECC位106兩者實(shí)現(xiàn)相同方案或?qū)崿F(xiàn)任何其他損耗減少方案。對于損耗減少的旋轉(zhuǎn)和翻轉(zhuǎn)方案在下文更詳細(xì)描述。
[0028]元數(shù)據(jù)位104和108以及ECC位106和110可以連同數(shù)據(jù)位102 —起存儲在非易失性存儲器中,或可以獨(dú)立存儲在不同位點(diǎn)和/或裝置中。在元數(shù)據(jù)位和/或ECC位獨(dú)立于數(shù)據(jù)而被存儲的實(shí)施例中,可以與數(shù)據(jù)并行地或相繼地訪問獨(dú)立存儲的位。在一個(gè)這樣的實(shí)施例中,如果ECC位存儲在存儲器中而沒有耐久性限制(例如,存儲在存儲器中而沒有有限數(shù)量的寫周期),實(shí)現(xiàn)不包括對于ECC位的元數(shù)據(jù)位。由于硬件要求降低和調(diào)度訪問的簡易度增加,與數(shù)據(jù)位一起存儲元數(shù)據(jù)位和ECC位的實(shí)現(xiàn)可以更簡單和/或更成本有效。
[0029]獨(dú)立存儲元數(shù)據(jù)位可以實(shí)現(xiàn)將元數(shù)據(jù)位的單個(gè)集映射到存儲器中的多個(gè)字。例如,元數(shù)據(jù)位104可以獨(dú)立于數(shù)據(jù)位102存儲并且除指示對存儲在非易失性存儲器中的其他數(shù)據(jù)位的修改外還指示對數(shù)據(jù)位102做出的修改。將元數(shù)據(jù)位的單個(gè)集映射到存儲器中的多個(gè)