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

用于非易失性存儲器的耐久性感知糾錯碼(ecc)保護的制作方法_2

文檔序號:8227548閱讀:來源:國知局
字可能影響編碼過程。在隨數(shù)據(jù)位一起存儲元數(shù)據(jù)位的一個實施例中,用于確定元數(shù)據(jù)位的值的額外讀取不是必需的。在元數(shù)據(jù)位獨立于數(shù)據(jù)位而被存儲的一個實施例中,編碼牽涉讀取元數(shù)據(jù)位并且執(zhí)行由元數(shù)據(jù)位指示的修改。在一個這樣的實施例中,當(dāng)要改變元數(shù)據(jù)位時,過程牽涉從存儲器讀取僅依賴相同元數(shù)據(jù)位的字、執(zhí)行由元數(shù)據(jù)位的新的值指示的修改以及將修改的字存儲回到存儲器。執(zhí)行由元數(shù)據(jù)位的新的值指示的修改還可以牽涉確定要修改的字的原始值(例如,在根據(jù)新的元數(shù)據(jù)位對字重新編碼之前對修改的字解碼)。在一個實施例中,確定是否更新元數(shù)據(jù)位可以基于數(shù)據(jù)位、元數(shù)據(jù)位的初始值或兩者的組合。
[0030]圖2是根據(jù)一個實施例用于對數(shù)據(jù)編碼(其包括計算元數(shù)據(jù)位、ECC位、第二元數(shù)據(jù)位和第二 ECC位)的過程的流程圖。
[0031]如本文圖示的流程圖提供各種過程動作的序列的示例。盡管按特定序列或順序示出,除非另外規(guī)定,可以修改動作的順序。從而,圖示的實現(xiàn)應(yīng)僅理解為示例,并且圖示的過程可以按不同的順序執(zhí)行,并且一些動作可并行執(zhí)行。另外,在本發(fā)明的各種實施例中可以省略一個或多個動作;從而,并不是所有動作在每一個實現(xiàn)中都需要。其他過程流是可能的。
[0032]本文描述的過程可以在硬件、軟件或硬件和軟件的組合中實現(xiàn)。過程在下文描述為由系統(tǒng)執(zhí)行,其意在描述本文描述的實施例中的一個或多個,和/或?qū)⒈槐绢I(lǐng)域內(nèi)技術(shù)人員理解的其他變化形式。例如,在一個實施例中,存儲器控制器內(nèi)的邏輯執(zhí)行過程。在另一個實施例中,非易失性存儲器內(nèi)的邏輯執(zhí)行過程。在再另一個實施例中,存儲器控制器和非易失性存儲器兩者內(nèi)的邏輯和/或定位在另一個邏輯塊中的邏輯執(zhí)行過程。
[0033]過程200以接收要寫入非易失性存儲器的數(shù)據(jù)而開始202。例如,系統(tǒng)接收將數(shù)據(jù)寫入非易失性存儲器的請求。在接收要寫的數(shù)據(jù)位后,系統(tǒng)計算對于數(shù)據(jù)位的元數(shù)據(jù)位(例如,圖1的元數(shù)據(jù)位104);元數(shù)據(jù)位指示對數(shù)據(jù)位的損耗減少修改(例如,損耗減少修改)204。損耗減少修改可以包括用于減少或均衡對非易失性存儲器的損耗的任何修改。例如,對數(shù)據(jù)位的損耗減少修改可以包括數(shù)據(jù)位的移位。數(shù)據(jù)位的移位可以牽涉數(shù)據(jù)位的組的循環(huán)移位,或數(shù)據(jù)位的其他非隨機或隨機移位。數(shù)據(jù)位的移位可以基于寫計數(shù)器。例如,寫計數(shù)器可以指示對字、數(shù)據(jù)位要寫入的頁、非易失性存儲器或其他粒度的存儲器單元的寫數(shù)量。
[0034]在確定如何修改數(shù)據(jù)位(如由對數(shù)據(jù)位的元數(shù)據(jù)位指示的)后,系統(tǒng)相應(yīng)地修改數(shù)據(jù)位206。例如,如果數(shù)據(jù)位要循環(huán)地旋轉(zhuǎn),系統(tǒng)確定要使數(shù)據(jù)位旋轉(zhuǎn)多少位,并且使那些位旋轉(zhuǎn)。在另一個示例中,如果數(shù)據(jù)位要基于存儲器位點處的現(xiàn)有值而倒置,系統(tǒng)確定哪些位倒置,并且使那些位倒置。修改的數(shù)據(jù)位(例如,圖1的數(shù)據(jù)位102)要存儲在非易失性存儲器中。
[0035]系統(tǒng)計算對于修改的數(shù)據(jù)位和元數(shù)據(jù)位的組合的ECC位(例如,圖1的ECC位106)208。例如,在系統(tǒng)使數(shù)據(jù)位移位的情況下,系統(tǒng)計算對于移位的數(shù)據(jù)位和指示對數(shù)據(jù)位的移位的元數(shù)據(jù)位的ECC位。
[0036]在計算ECC位后,系統(tǒng)計算第二元數(shù)據(jù)位(例如,圖1的元數(shù)據(jù)位108);該第二元數(shù)據(jù)位指示對ECC位的損耗減少修改210。系統(tǒng)修改ECC位(如由第二元數(shù)據(jù)位指示的)212。例如,如果ECC位要基于ECC位要寫入的位點處的現(xiàn)有值而倒置,系統(tǒng)使ECC位倒置。在ECC位要旋轉(zhuǎn)的另一個示例中,系統(tǒng)使ECC位旋轉(zhuǎn)。
[0037]在計算第二元數(shù)據(jù)位后,系統(tǒng)計算對于第二元數(shù)據(jù)位的第二 ECC位(例如,圖1的ECC 位 110) 214。
[0038]最后,系統(tǒng)將修改的數(shù)據(jù)位、元數(shù)據(jù)位、修改的ECC位、第二元數(shù)據(jù)位和第二 ECC位存儲在非易失性存儲器中216。例如,系統(tǒng)存儲移位的數(shù)據(jù)位、元數(shù)據(jù)位、倒置的ECC位、第二元數(shù)據(jù)位和第二 ECC位。
[0039]盡管過程200涉及單個元數(shù)據(jù)位、ECC位、第二元數(shù)據(jù)位和第二 ECC位,可使用那些位中的每個中的一個或多個。另外,盡管過程涉及使位旋轉(zhuǎn)和/或倒置,損耗減少技術(shù)可導(dǎo)致或可未導(dǎo)致對于指定輸入的位的修改。例如,如果使用倒置技術(shù),并且要寫的值和該位點處的現(xiàn)有值兩者都相同,該位可不倒置。
[0040]圖3是根據(jù)一個實施例對于數(shù)據(jù)位的元數(shù)據(jù)編碼方案的框圖。
[0041]編碼方案300以數(shù)據(jù)位302要存儲在非易失性存儲器而開始。在該示例中,圖示64位字;然而,編碼方案可以適用于任何數(shù)量的數(shù)據(jù)位(例如,8位、32位、頁或存儲器單元的任何其他粒度)。在一個實施例中,寫計數(shù)器304指示對字、頁、非易失性存儲器或任何其他粒度的存儲器單元的寫數(shù)量。對于寫計數(shù)器的粒度可以與編碼方案的粒度相同或不同。例如,編碼方法可以適用于64位字,并且基于指示對整個存儲器的寫數(shù)量的寫計數(shù)器。在使用寫計數(shù)器的一個實施例中,系統(tǒng)對于每個相關(guān)寫請求使寫計數(shù)器304遞增。寫計數(shù)器304還可以在達到預(yù)定數(shù)量時或由于某一其他條件而翻轉(zhuǎn)(roll over)和/或復(fù)位。
[0042]編碼表306圖示對使用兩個元數(shù)據(jù)位的64個數(shù)據(jù)位的旋轉(zhuǎn)方案的示例。旋轉(zhuǎn)方案(例如在編碼表306中圖示的那個)可以由于例如數(shù)據(jù)位的行為(例如,在一些典型應(yīng)用中,數(shù)據(jù)位的小的子集在連續(xù)訪問期間改變值)而對數(shù)據(jù)位提供提高的損耗減少。
[0043]在表306中圖示的編碼方案中,數(shù)據(jù)位循環(huán)地旋轉(zhuǎn)(16*元數(shù)據(jù)位的值)。在圖示實施例中,元數(shù)據(jù)位的每個值代表對于數(shù)據(jù)位302的特定預(yù)定和/或硬接線循環(huán)移位量。在寫期間,數(shù)據(jù)位循環(huán)地移位了這些預(yù)定值中的一個,并且使用的循環(huán)移位量也存儲在非易失性存儲器中。根據(jù)一個實施例,在對非易失性存儲器的每N個寫后,更新元數(shù)據(jù)位。在圖示的實施例中,如果[寫計數(shù)器的值/N mod 4]是O則使用編碼307a,如果寫計數(shù)器的值/N mod 4等于I則使用編碼307b,如果寫計數(shù)器的值/N mod 4等于2則使用編碼307c,并且如果寫計數(shù)器的值/N mod 4等于3則使用編碼307d。
[0044]其他實施例可包括其他旋轉(zhuǎn)量和/或模式。例如,系統(tǒng)可以使用隨機函數(shù)來選擇是否切換到新的移位量和/或模式,和/或選擇該新的移位量。在一個這樣的示例中,系統(tǒng)可以基于隨機種子來使數(shù)據(jù)位循環(huán)地旋轉(zhuǎn),并且存儲該隨機種子用于恢復(fù)原始數(shù)據(jù)位。新移位量的選擇可以基于它正替代的數(shù)據(jù)的移位量(例如,遵循移位量的預(yù)定模式)或可以完全隨機化。所得的元數(shù)據(jù)位310可以與修改的數(shù)據(jù)308 (其包括其他元數(shù)據(jù)和/或ECC位312) 一起存儲,如在上文參考圖1和2描述的。
[0045]在讀期間,并且在完成ECC校驗后,確定與數(shù)據(jù)一起存儲的元數(shù)據(jù)位,并且數(shù)據(jù)位根據(jù)元數(shù)據(jù)位采用相反方式移位以重新生成原始數(shù)據(jù)位。
[0046]盡管元數(shù)據(jù)編碼方案300涉及對數(shù)據(jù)位的編碼,ECC位或其他類型的位也可以使用旋轉(zhuǎn)編碼方案。
[0047]圖4是根據(jù)一個實施例對于ECC位的元數(shù)據(jù)編碼方案的框圖。
[0048]元數(shù)據(jù)編碼方案400對ECC位406編碼。對修改的數(shù)據(jù)位402和元數(shù)據(jù)位404計算ECC位406。編碼表408圖示“翻轉(zhuǎn)”或倒置損耗減少方案,其中ECC位的子段根據(jù)存儲在相同地址的ECC的之前的值而在存儲期間倒置(或不倒置),并且元數(shù)據(jù)位被設(shè)置(復(fù)位)來反映該子段中的位是否倒置。根據(jù)一個實施例,翻轉(zhuǎn)損耗減少方案部分由于ECC位406的行為(例如,因為ECC位406的數(shù)量與數(shù)據(jù)位402的數(shù)量相比是相對小的,并且因為每個ECC位的值取決于相對大量的數(shù)據(jù)位,ECC位可能在每個迭代時切換)而提供提高的損耗減少。
[0049]在編碼表408中圖示的翻轉(zhuǎn)方案對八個ECC位利用兩個元數(shù)據(jù)位。這些元數(shù)據(jù)位中的每個專用于ECC位的互相排斥的子段中的一個。對于每個子段,計算在該子段中在寫期間改變它們的值(即,切換)的ECC位的數(shù)量。如果將改變的位的數(shù)量大于子段中位的總數(shù)量的一半,該子段中的所有位被倒置,并且專用于該子段的元數(shù)據(jù)位設(shè)置成一。如果切換位的數(shù)量小于或等于該子段中位的數(shù)量的一半,這些位實際上被寫回,并且對于該子段的元數(shù)據(jù)位設(shè)置成O。從而,根據(jù)一個實施例,至多一半的ECC位將在寫期間改變它們的值,這可以減少非易失性存儲器的損耗。
[0050]例如,編碼410a圖示ECC位中沒有一個翻轉(zhuǎn)(其中兩個元數(shù)據(jù)位都等于O)的情景。編碼410b圖示ECC位7-4不翻轉(zhuǎn)(其中對應(yīng)元數(shù)據(jù)位等于O)但ECC位3-0翻轉(zhuǎn)(其中對應(yīng)元數(shù)據(jù)位等于I)的情景。編碼410c圖示ECC位7-4翻轉(zhuǎn)(其中對應(yīng)元數(shù)據(jù)位等于I)但ECC位3-0不翻轉(zhuǎn)(其中對應(yīng)元數(shù)據(jù)位等于O)的情景。最后,編碼410d圖示所有ECC位都翻轉(zhuǎn)(其中兩個元數(shù)據(jù)位都等于I)的情景。指示倒置的元數(shù)據(jù)位418可以連同修改的數(shù)據(jù)位402、元數(shù)據(jù)位404和修改的ECC位416 —起存儲。可以計算額外ECC位420來保護元數(shù)據(jù)位418,并且與其他內(nèi)容一起存儲,如在上文關(guān)于圖1和2描述的。
[0051]在讀操作期間,并且在完成ECC校驗后,確定對每個子段的元數(shù)據(jù)位,并且在寫期間執(zhí)行的操作重復(fù)。例如,如果子段的元數(shù)據(jù)位是1,該子段中的ECC位再次倒置來重新生成ECC位的原始值。如果子段的元數(shù)據(jù)位是0,不需要進一步的操作來恢復(fù)原始值。
[0052]盡管編碼方案400圖示對于翻轉(zhuǎn)方案的兩個元數(shù)據(jù)位,可以使用任何數(shù)量的元數(shù)據(jù)位(例如,一個或多個元數(shù)據(jù)位)。大量元數(shù)據(jù)位可以實現(xiàn)細粒損耗減少,但可能增加開銷。另外,盡管元數(shù)據(jù)編碼方案400涉及對ECC位的編碼,數(shù)據(jù)位或其他類型的位也可以使用翻轉(zhuǎn)編碼方案。
[0053]圖5是根據(jù)一個實施例的過程的流程圖,該過程包括基于元數(shù)據(jù)位、ECC位、第二元數(shù)據(jù)位和第二 ECC位來重新生成原始數(shù)據(jù)。
[0054]過程500在系統(tǒng)從非易失性存儲器讀取存儲的修改的數(shù)據(jù)位、元數(shù)據(jù)位、修改的ECC位、第二元數(shù)據(jù)位和第二 ECC位時(例如,在系統(tǒng)從存儲器讀取圖1的內(nèi)容100時)開始502。例如,如果對數(shù)據(jù)位使用旋轉(zhuǎn)方案和對ECC位使用翻轉(zhuǎn)方案,系統(tǒng)從非易失性存儲器讀取移位的數(shù)據(jù)位、元數(shù)據(jù)位、倒置的ECC位、第二元數(shù)據(jù)位和第二 ECC位??梢皂憫?yīng)于例如對存儲器地址的讀請求而從存儲器讀取內(nèi)容。
[0055]接著,系統(tǒng)檢測第二元數(shù)據(jù)位是否具有錯誤504。在一個實施
當(dāng)前第2頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
文昌市| 镇赉县| 新绛县| 彭州市| 名山县| 竹溪县| 东台市| 马山县| 隆子县| 麻阳| 汉川市| 大洼县| 利辛县| 象山县| 莫力| 岳池县| 乌拉特中旗| 分宜县| 湖南省| 东辽县| 荣昌县| 汾阳市| 利川市| 闸北区| 合江县| 丹寨县| 福泉市| 大新县| 三台县| 山阳县| 凌云县| 莱西市| 泉州市| 牙克石市| 永清县| 兖州市| 满城县| 汪清县| 正镶白旗| 紫阳县| 湘潭市|