TW201346923A - 使用單一錯誤偵測奇偶校驗的抹除修正 - Google Patents
使用單一錯誤偵測奇偶校驗的抹除修正 Download PDFInfo
- Publication number
- TW201346923A TW201346923A TW102105211A TW102105211A TW201346923A TW 201346923 A TW201346923 A TW 201346923A TW 102105211 A TW102105211 A TW 102105211A TW 102105211 A TW102105211 A TW 102105211A TW 201346923 A TW201346923 A TW 201346923A
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- parity
- ecc
- data
- sed
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1191—Codes on graphs other than LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
- H03M13/455—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding using a set of erasure patterns or successive erasure decoding, e.g. generalized minimum distance [GMD] decoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭示一種方法,該方法包含:接收一單一錯誤偵測(SED)奇偶校驗位元集之一表示及資料之一表示。該資料包含一錯誤修正編碼(ECC)碼字,該錯誤修正編碼碼字包含資訊位元及ECC奇偶校驗位元。該SED奇偶校驗位元集中之每一SED奇偶校驗位元指示針對該資料之一對應部分之一奇偶校驗值。該方法包含:回應於判定該資料之該表示之一特定部分包含一單個抹除位元,基於對應於該特定部分之該SED奇偶校驗位元之該表示來選擇性地修改該單個抹除位元之一位元值,且當該單個抹除位元之該位元值對應於該ECC碼字且已經修改時產生該ECC碼字之一經更新表示。該方法可包含起始該ECC碼字之該經更新表示之一ECC解碼操作。
Description
本申請案主張於2012年2月23日提出申請之印度專利申請案第688/CHE/2012號之優先權,該印度專利申請案全文併入本文中。
本發明一般而言係關於資料中之抹除修正。
非揮發性資料儲存裝置(諸如通用串列匯流排(USB)快閃記憶體裝置或可移除儲存卡)已允許資料及軟體應用程式之增加的可攜性。快閃記憶體裝置可藉由在每一快閃記憶體單元中儲存多個位元來增強資料儲存密度。舉例而言,多位階單元(MLC)快閃記憶體裝置藉由儲存每單元3個位元、每單元4個位元或更多來提供增加之儲存密度。儘管增加每單元之位元數目及減小裝置特徵尺寸可增加一記憶體裝置之一儲存密度,但儲存於記憶體裝置處之資料之一位元錯誤率亦可增加。
MLC裝置中之位元錯誤之原因之一係MLC單元之不同可程式化狀態之臨限電壓分佈曲線之合併。不同狀態之臨限電壓分佈曲線之合併可歸因於諸如循環之效應(例如,若干個寫入/抹除循環)或諸如「資料保持」之效應(例如,一快閃記憶體單元之一電晶體之一浮動閘極之電荷隨時間之一損失,此導致單元之臨限電壓之一減小)。此等位元錯誤中之某些位元錯誤可藉由根據一偏移電壓△Vt執行MLC單元之
一「軟」讀取而轉換成抹除。為了圖解說明,一「硬」讀取可基於一單元是具有高於一讀取電壓V1或是低於該讀取電壓V1之一臨限電壓來判定該單元之一硬位元值。一「軟」讀取可在一讀取電壓V1+△Vt處及/或在一讀取電壓V1-△Vt處執行以獲得一或多個軟位元值。
若自一單元讀取之一硬位元值不同於自該單元讀取之一軟位元值,則該單元之一臨限電壓接近單元狀態之間的一邊界。自單元讀取之硬位元值可因此視為較不可靠(如與自具有在一單元狀態之一中心中之一臨限電壓之一單元讀取之一硬位元值相比),從而導致一「抹除」(亦稱為一軟位元錯誤)。抹除可由展現硬位元錯誤之單元導致,此乃因單元已自一初始狀態漂移至一鄰近狀態(錯誤/抹除)。然而,抹除亦可由已接近但尚未越過一狀態邊界且未展現硬位元錯誤(抹除/無錯誤)之單元導致。
可藉由使用單一錯誤偵測(SED)奇偶校驗位元及軟讀取資訊在ECC解碼之前執行包含一可能損壞之ECC碼字之資料之抹除修正。若資料之一部分包含一單個抹除位元且使用一SED奇偶校驗位元之一奇偶校驗校驗亦失敗,則改變該抹除位元之一位元值。可將具有減少數目之位元錯誤之一所得經更新ECC碼字提供至一ECC解碼器。由使用若干個SED奇偶校驗位元導致之錯誤修正能力可超過由相同數目個ECC奇偶校驗位元提供之一錯誤修正能力。
100‧‧‧系統
102‧‧‧資料儲存裝置
104‧‧‧記憶體
106‧‧‧控制器
108‧‧‧錯誤修正編碼引擎/較小功率錯誤修正編碼引擎
110‧‧‧單一錯誤偵測引擎
111‧‧‧主機裝置
112‧‧‧使用者資料
114‧‧‧資訊位元
116‧‧‧錯誤修正編碼奇偶校驗位元
118‧‧‧錯誤修正編碼碼字
119‧‧‧其他資料
120‧‧‧單一錯誤偵測奇偶校驗位元集
121‧‧‧資料
124‧‧‧表示
126‧‧‧表示
128‧‧‧表示
130‧‧‧表示/單一錯誤偵測奇偶校驗位元集
131‧‧‧表示/資料
134‧‧‧表示
136‧‧‧經更新表示
138‧‧‧經更新表示
144‧‧‧經解碼之資訊位元
202‧‧‧錯誤修正編碼碼字
204‧‧‧資訊位元集/資訊位元
206‧‧‧錯誤修正編碼奇偶校驗位元集/錯誤修正編碼奇偶校驗位元
208‧‧‧垂直奇偶校驗結構
210‧‧‧單一錯誤偵測奇偶校驗編碼
212‧‧‧單一錯誤偵測奇偶校驗位元集/單一錯誤偵測奇偶校驗位元
220‧‧‧第一摺疊
222‧‧‧第二摺疊
224‧‧‧代表性部分/部分
226‧‧‧代表性單一錯誤偵測奇偶校驗位元/對應單一錯誤偵測奇偶校驗位元
302‧‧‧表示
312‧‧‧表示
320‧‧‧代表性錯誤/無抹除位元
322‧‧‧代表性錯誤/抹除位元
324‧‧‧代表性抹除/無錯誤位元
330‧‧‧摺疊操作
332‧‧‧單個錯誤奇偶校驗修正操作/單個錯誤奇偶校驗修正
334‧‧‧無錯誤抹除誤修正/無錯誤誤修正
336‧‧‧無錯誤抹除識別
338‧‧‧錯誤/抹除修正
340‧‧‧無錯誤抹除識別
342‧‧‧錯誤/抹除修正
344‧‧‧經更新之錯誤修正編碼碼字表示
400‧‧‧由一軟讀取操作及使用一單一錯誤偵測程序之抹除修正所致之資料之一特定實施例
402‧‧‧硬位元讀取操作
404‧‧‧第一讀取電壓/讀取電壓/硬位元臨限值/轉變電壓
406‧‧‧第二讀取電壓/邊界電壓範圍/硬位元臨限值
408‧‧‧第三讀取電壓/讀取電壓/硬位元臨限值
409‧‧‧單一錯誤偵測奇偶校驗位元
410‧‧‧邊界電壓範圍
412‧‧‧軟位元讀取操作
414‧‧‧參考電壓
416‧‧‧參考電壓
418‧‧‧參考電壓
420‧‧‧抹除位元
422‧‧‧軟位元讀取操作
430‧‧‧抹除位元
圖1係包含經組態以使用單一錯誤偵測奇偶校驗來修正抹除之一資料儲存裝置之一系統之一特定說明性實施例之一方塊圖;圖2係圖解說明可由圖1之資料儲存裝置使用之單一錯誤偵測奇偶校驗編碼之一特定實施例之一圖式;圖3係圖解說明使用圖2之單一錯誤偵測奇偶校驗編碼之抹除修
正之一特定實施例之一圖式;圖4係圖解說明由一軟讀取操作及使用一單一錯誤偵測程序之抹除修正引起之資料抹除之一圖式;圖5係使用單一錯誤偵測奇偶校驗之錯誤修正之一方法之一特定說明性實施例之一流程圖;且圖6係編碼用於使用單一錯誤偵測奇偶校驗進行錯誤修正之資料之一方法之一特定說明性實施例之一流程圖。
參考圖1,一系統100之一特定實施例包含耦合至一主機裝置111之一資料儲存裝置102。資料儲存裝置102包含一記憶體104及一控制器106。控制器106經組態以使用單一錯誤偵測(SED)奇偶校驗來修正自記憶體104擷取之資料中之抹除。
主機裝置111可經組態以提供欲儲存於記憶體104處之資料(諸如使用者資料112)或請求欲自記憶體104讀取之資料。舉例而言,主機裝置111可包含一行動電話、一音樂播放器或視訊播放器、一遊戲控制台、一電子書閱讀器、一個人數位助理(PDA)、一電腦(諸如一膝上型電腦、筆記型電腦或平板電腦)、任何其他電子裝置或其任何組合。
資料儲存裝置102包含耦合至控制器106之記憶體104。記憶體104可係一非揮發性記憶體,諸如一MLC NAND快閃記憶體。舉例而言,資料儲存裝置102可係一記憶體卡,諸如一安全數位SD®卡、一microSD®卡、一miniSD.TM卡(德拉瓦州威明頓市之SD-3C LLC之商標)、一MultiMediaCard.TM(MMC.TM)卡(維吉尼亞州阿靈頓市之JEDEC固態技術協會之商標)或一CompactFlash®(CF)卡(加利福尼亞州米爾皮塔斯市之SanDisk公司之商標)。作為另一實例,資料儲存裝置102可經組態以作為嵌入式記憶體耦合至主機裝置111,諸如作為說
明性實例之eMMC®(維吉尼亞州阿靈頓市之JEDEC固態技術協會之商標)及eSD。
控制器106經組態以當資料儲存裝置102以操作方式耦合至主機裝置111時自主機裝置111接收資料及指令且將資料發送至主機裝置111。控制器106進一步經組態以將資料及命令發送至記憶體104且自記憶體104接收資料。舉例而言,控制器106經組態以發送資料及一寫入命令以指示記憶體104將資料儲存至一所指定位址。作為另一實例,控制器106經組態以發送一讀取命令以自記憶體104之一所指定位址讀取資料。
控制器106包含一錯誤修正編碼(ECC)引擎108,ECC引擎108經組態以接收欲儲存至記憶體104之資料(諸如資訊位元114)且產生一ECC碼字118。舉例而言,ECC引擎108可包含經組態以使用一ECC編碼方案編碼資料之一編碼器,諸如一李德所羅門(Reed Solomon)編碼器、一博斯-喬赫裏-霍克昆亨(Bose-Chaudhuri-Hocquenghem)(BCH)編碼器、一低密度奇偶校驗校驗(LDPC)編碼器、一渦輪(Turbo)碼編碼器、經組態以根據一或多個其他ECC編碼方案編碼之一編碼器或其任何組合。ECC引擎108可包含一解碼器,該解碼器經組態以解碼自記憶體104讀取之資料以偵測及修正(由ECC方案之一錯誤修正能力決定)可存在於資料中之位元錯誤。
控制器106包含一單一錯誤偵測(SED)引擎110。單一錯誤偵測引擎110經組態以產生對應於在單一錯誤偵測引擎110之一輸入處接收之資料121之一單一錯誤偵測奇偶校驗位元集120。資料121包含ECC碼字118,包含ECC碼字118之資訊位元114及ECC奇偶校驗位元116。在某些實施方案中,資料121即為ECC碼字118,且基於ECC碼字118產生SED奇偶校驗位元集120。在其他實施方案中,資料121亦包含其他資料119。舉例而言,其他資料119可包含一或多個其他ECC碼字、標
頭資料、其他資料或其任何組合,其他資料119與ECC碼字118一起經處理以產生SED奇偶校驗位元集120。舉例而言,可針對欲程式化為記憶體104之一單個字線之一組十二個ECC碼字產生SED奇偶校驗位元集120。SED奇偶校驗位元集120中之每一SED奇偶校驗位元指示針對資料121之一對應部分之一奇偶校驗值,如參考圖2進一步詳細闡述。每一SED奇偶校驗位元使得控制器106能夠判定在自記憶體104讀取之資料121之一表示131之一特定部分中是否已出現奇數數目個錯誤。然而,SED奇偶校驗位元自身不提供指示資料121之對應部分中之哪一(些)位元可係出錯之錯誤位置資訊。
在操作期間,控制器106可將資訊位元114提供至ECC引擎108以產生ECC碼字118。資訊位元114可對應於當主機裝置111以操作方式耦合至資料儲存裝置102時自主機裝置111接收之使用者資料112。包含ECC碼字118之資料121由單一錯誤偵測引擎110接收,且單一錯誤偵測引擎110產生SED奇偶校驗位元集120,如參考圖2進一步詳細闡述。控制器106經組態以提供欲儲存於記憶體104中之資料121(包含ECC碼字118且視情況包含其他資料119)及SED奇偶校驗位元集120。
控制器106可自記憶體104擷取資料121之一表示131及SED奇偶校驗位元集120之一表示130。資料121之表示131包含ECC碼字118之一表示128。ECC碼字118之表示128包含資訊位元114之一表示124及ECC奇偶校驗位元116之一表示126。資料121之表示131可對應於具有一或多個位元錯誤之資料121。舉例而言,ECC碼字118之表示128可對應於ECC碼字118,其中在資訊位元114中、在ECC奇偶校驗位元116中或兩者中具有一或多個位元錯誤。SED奇偶校驗位元集120之表示130可對應於具有一或多個位元錯誤之SED奇偶校驗位元集120。
為了圖解說明,控制器106可指示記憶體104執行一軟讀取操作以提供指示是否已在資料121之表示131及SED奇偶校驗位元集130之
表示130之任何特定位置處出現一位元抹除之資訊。舉例而言,如參考圖4進一步詳細闡述,可使用一第一組臨限電壓執行記憶體104之一字線之一第一讀取以判定欲自該字線讀取之一第一組位元值。可使用在記憶體104之儲存元件之狀態之間的一邊界中之一電壓範圍中之一偏移組臨限電壓執行相同字線之一第二讀取。使用一第一組臨限電壓具有一第一位元值但使用該偏移組臨限電壓具有一第二位元值之一儲存元件之一讀取值可視為一抹除。可將包含硬位元資訊及抹除資訊之資料自記憶體104發送至控制器106。
控制器106將自記憶體104擷取之資料提供至單一錯誤偵測引擎110以使用SED奇偶校驗位元集120之表示130來執行一單一錯誤偵測操作。如參考圖3進一步詳細闡述,單一錯誤偵測引擎110可經組態以判定對應於SED奇偶校驗位元中之一單個奇偶校驗位元之資料121之任何部分是否具有一單個經偵測抹除。回應於具有一單個抹除之資料131之表示131之一部分及指示該部分中之一位元錯誤之對應SED奇偶校驗位元,單一錯誤偵測引擎110可在抹除位置處改變一位元值。單一錯誤偵測引擎110可輸出資料121之一經更新表示,諸如ECC碼字118之一經更新表示138,包含資訊位元114之一經更新表示134及ECC奇偶校驗位元116之一經更新表示136,其中一或多個硬位元對應於具有經更新值之抹除。
如所圖解說明,ECC碼字118之經更新表示138可含有一或多個位元錯誤。然而,一或多個抹除可已藉由SED引擎110之操作解決,如參考圖3進一步詳細闡述。將由SED引擎110產生之ECC碼字118之經更新表示138提供至ECC引擎108。控制器106經組態以在ECC引擎108處起始ECC碼字118之經更新表示138之一ECC解碼操作以產生經解碼之資訊位元144。經解碼之資訊位元144對應於經原始編碼以儲存於記憶體104處之資訊位元114。
藉由操作單一錯誤偵測引擎110以解決出現於包含ECC碼字118之資料121之表示131中之一或多個抹除,ECC碼字118之經更新表示138可提供有少於原始存在於ECC碼字118之表示128中之位元錯誤的位元錯誤。因此,可使用一較小功率ECC引擎108以提供與一較大功率ECC引擎相同之一淨錯誤修正能力,此乃因較小功率ECC引擎108在每一所接收碼字中具有在統計上較少數目之錯誤待解碼。
另一選擇係或另外,可藉由於在ECC引擎108處接收資料之前修正某些錯誤所致之具有一更大有效錯誤修正能力來延伸資料儲存裝置102之一有效壽命。為了圖解說明,自記憶體104原始讀取之ECC碼字118之表示128中之若干個錯誤可超過ECC引擎108之一錯誤修正能力。藉由操作單一錯誤偵測引擎110,可修正一或多個錯誤以使得剩餘錯誤之一數目在ECC引擎108之一錯誤修正能力內。由於資料儲存裝置102之一有效壽命可由ECC引擎108可成功解碼之錯誤之一最大數目限制且由於錯誤率往往隨裝置年限而增加,因此藉由單一錯誤偵測引擎110之資料修正可延伸資料儲存裝置102之一有效壽命。
圖2繪示可由圖1之資料儲存裝置執行之單一錯誤偵測奇偶校驗編碼之一特定實施例。一ECC碼字202包含一資訊位元集204及一ECC奇偶校驗位元集206。一SED奇偶校驗位元集212對應於ECC碼字202。舉例而言,資訊位元204可包含第一數目個位元,ECC奇偶校驗位元206可包含第二數目個位元,且SED奇偶校驗位元212可包含第三數目個位元。如本文中所使用,「m」指代資訊位元集204中之資訊位元之數目,「n」指代ECC奇偶校驗位元集206中之ECC奇偶校驗位元之數目,且「p」指代SED奇偶校驗位元集212中之SED奇偶校驗位元之數目。作為一說明性實例,ECC碼字202可對應於圖1之ECC碼字118,且SED奇偶校驗位元集212可對應於圖1之SED奇偶校驗位元集120。儘管圖2為解釋清楚起見圖解說明針對一單個ECC頁(亦即,單
個ECC碼字202)計算SED奇偶校驗位元,但在其他實施方案中可針對一字線或一組字線(其中每一字線可含有一個以上ECC頁)計算SED奇偶校驗。
ECC碼字202可由圖1之單一錯誤偵測引擎110處理以根據ECC碼字202之一系列「摺疊」來編碼以產生一垂直奇偶校驗結構208。舉例而言,ECC碼字202之一第一組p個連續位元形成一第一摺疊220且下一組p個連續位元形成一第二摺疊222(亦即,每一摺疊包含與SED奇偶校驗位元集212相同數目「p」個位元)。每一摺疊形成垂直奇偶校驗結構208之一列。
垂直奇偶校驗結構208之每一行對應於經由一SED奇偶校驗編碼210編碼以產生SED奇偶校驗位元集212之ECC碼字202之一部分。舉例而言,ECC碼字202之一代表性部分224對應於垂直奇偶校驗結構208之一第一行。部分224由垂直奇偶校驗結構208之每一列之第一位元形成且包含在索引0、p、2p等處之ECC碼字之位元,其中「p」指示SED奇偶校驗位元集212中之位元編號。
可藉由將一互斥「或」(XOR)施加至垂直奇偶校驗結構208之一行之所有位元來執行SED奇偶校驗編碼210以針對該行產生一對應SED奇偶校驗位元,諸如對應於ECC碼字202之部分224之一代表性SED奇偶校驗位元226。以此方式,可針對垂直奇偶校驗結構208之每一行產生一個SED奇偶校驗位元。所得SED奇偶校驗位元212可附加至ECC碼字202以用於儲存於圖1之記憶體104處。
儘管為解釋清楚起見將SED編碼圖解說明為產生ECC碼字202之位元之垂直奇偶校驗結構208且藉由一XOR操作來處理每一行以針對每一行產生一單個對應SED奇偶校驗位元,但將瞭解,可在不形成垂直奇偶校驗結構208(或任何其他幾何形狀配置)之情況下產生SED奇偶校驗位元212。作為說明性非限制性實例,舉例而言,一處理器或
專用電路可經組態以產生SED奇偶校驗位元212,諸如藉由遍曆ECC碼字202且即時執行XOR計算或藉由經由一或多個多輸入XOR邏輯電路並行地直接存取每一部分之多個位元。
圖3繪示使用圖2之單一錯誤偵測奇偶校驗編碼之抹除修正之一特定實施例。圖2之ECC碼字202及SED奇偶校驗位元集212係圖解說明為一參考以示範出現於ECC碼字202之一表示302及SED奇偶校驗位元集212之一表示312中之位元錯誤及抹除。
ECC碼字202之表示302中及SED奇偶校驗位元集212之表示312中之位元錯誤係圖解說明為具有不同於ECC碼字202及SED奇偶校驗位元集212中之對應位元之位元值的位元且由虛線矩形指示。ECC碼字202之表示302中及SED奇偶校驗位元集212之表示312中之抹除(諸如經由一軟讀取操作偵測到之軟錯誤)由下劃線指示。可出現並非亦為抹除之錯誤,諸如一代表性錯誤/無抹除位元320。可出現亦為抹除之錯誤,諸如一代表性錯誤/抹除位元322。可出現並非錯誤之抹除,諸如一代表性抹除/無錯誤位元324。儘管一軟讀取操作可識別抹除位元之位置,但軟讀取操作可不能夠識別抹除位元中之任何者是錯誤或是無錯誤。
可使用SED奇偶校驗位元集212之表示312執行抹除解析,諸如藉由圖1之單一錯誤偵測引擎110。可以如參考圖2之垂直奇偶校驗結構208所闡述之一方式經由一摺疊操作330自ECC碼字202之表示302之位元產生一垂直奇偶校驗結構。經由一箭頭指示含有一單個抹除位元之每一行。
可對具有一單個抹除位元之每一行執行一SEP修正操作332。對應於一行中之所有位元之一XOR之一SEP奇偶校驗指示該行中是否已出現奇數數目個錯誤(包含於SEP奇偶校驗位元自身中)。奇數數目個錯誤之一指示可視為一單個錯誤之一指示,此乃因一單個錯誤出現可
比一3錯誤、5錯誤或更高錯誤出現更有可能。SEP修正操作332可藉由改變抹除位元之位元值來回應具有一單個抹除位元及一SEP奇偶校驗錯誤之一行。類似地,一零錯誤出現可比一2錯誤、4錯誤或更高錯誤出現更有可能。SEP修正332可藉由維持抹除位元之位元值來回應具有一單個抹除位元且無一SEP奇偶校驗錯誤之一行。
垂直奇偶校驗結構之一第一行展示一奇偶校驗錯誤且具有係一位元錯誤之一單個抹除位元。SEP修正操作332改變抹除位元之位元值,從而修正一位元錯誤且導致一錯誤/抹除修正338。
垂直奇偶校驗結構之一第四行展示無奇偶校驗錯誤(或偶數數目個奇偶校驗錯誤),且在該行中具有一單個(無錯誤)抹除位元而無任何位元錯誤。SEP修正操作332維持(亦即,不改變)抹除位元之位元值,從而導致一無錯誤抹除識別340。
垂直奇偶校驗結構之一第五行展示一奇偶校驗錯誤及一單個(無錯誤)抹除位元且亦具有一位元錯誤。SEP修正操作332將該單個抹除位元解譯為奇偶校驗錯誤之源,且改變該抹除位元之位元值,從而引入一額外位元錯誤作為一無錯誤抹除誤修正334。
垂直奇偶校驗結構之一第六行展示一奇偶校驗錯誤且具有係一位元錯誤之一單個抹除位元。SEP修正操作332改變抹除位元之位元值,從而修正該位元錯誤且導致一錯誤/抹除修正342。
垂直奇偶校驗結構之一第七行展示無奇偶校驗錯誤(或偶數數目個奇偶校驗錯誤),且在該行中具有一單個(無錯誤)抹除位元而無任何位元錯誤。SEP修正操作332維持該抹除位元之位元值,從而導致一無錯誤抹除識別336。
一經更新ECC碼字表示344由SED修正操作332之操作導致。由於SED修正操作332修正兩個錯誤/抹除(錯誤/抹除修正338及342)但誤修正一無錯誤抹除(無錯誤誤修正334),因此經更新ECC碼字表示比ECC
碼字202之表示302少一個位元錯誤。在一說明性實例中,可將經更新ECC碼字表示344(諸如提供至圖1之ECC引擎108之ECC碼字118之經更新表示138)提供至一ECC解碼器。
由於在某些情形下可誤修正某些無錯誤抹除,從而引入額外錯誤,因此諸如圖2至圖3中所繪示之一垂直奇偶校驗系統之效能可受一錯誤至抹除轉換率(亦即,出現於資料中之識別為抹除之錯誤之一百分比)影響。隨著錯誤至抹除轉換率增加,一垂直奇偶校驗系統之一效率亦增加。另外,效能亦可受錯誤/抹除位元比完全抹除位元之分率影響。為了圖解說明,隨著抹除對應於錯誤(而非對應於無錯誤)之一可能性增加,一垂直奇偶校驗系統之一修正效率增加。
可經由與一ECC方案之一修正能力相比來表達諸如圖2至圖3中所繪示之一垂直奇偶校驗系統之修正效率。舉例而言,一BCH方案可針對每七個ECC奇偶校驗位元提供大約一個位元之錯誤修正能力。由使用SED奇偶校驗位元來替代ECC奇偶校驗位元所致之修正能力之一增益可表達為增益=(c-d)-(p/M),其中c係使用垂直奇偶校驗系統修正之位元之一數目(例如,錯誤/抹除修正338),d係使用垂直奇偶校驗系統誤修正之位元之一數目(例如,無錯誤抹除誤修正334),p係SED奇偶校驗位元之數目(例如,SED奇偶校驗位元集212中之7個位元),且M係使用一ECC方案修正一單個位元錯誤之ECC奇偶校驗位元之一數目(例如,對於針對每七個ECC奇偶校驗位元提供一個位元之錯誤修正能力之一BCH方案而言,M等於7)。
隨著p變得較大,c增加且d減小。舉例而言,增加p致使圖2之垂直奇偶校驗結構208在每一列中具有更多位元且在每一行中具有更少位元。因此,出現於一單個行中之多個錯誤或多個抹除之一可能性減
小,從而增加每一行之SED奇偶校驗位元之有效性。為了圖解說明,減少具有多個抹除之行之一數目增加c,且減少具有一單個抹除及多個錯誤之行之一數目減小d。然而,由p之一遞增增加所致之錯誤修正能力之一遞增增加隨著增加p而減小。
可根據以下判定實質上最大化由垂直奇偶校驗方案提供之修正能力之增益之一p值:
另一選擇係,可經由一蒙特卡羅(Monte Carlo)型模擬來近似實質上最大化由垂直奇偶校驗方案提供之修正能力之增益之一p值。舉例而言,p可表示籃筐之一數目,且一值「I」(等於資料中之錯誤之一數目+資料中之抹除之一數目)可表示隨機投入籃筐中之球。對應於具有錯誤轉換成抹除之一分率(「X」)等於0.5且係錯誤-抹除之完全錯誤之一分率(「Y」)等於0.5之資料之模擬指示球與籃筐大約1.6之一比率可提供修正能力之一實質上最大模擬增益。包含基於每一ECC頁之一軟讀取(具有49個硬錯誤(無抹除)、73個錯誤-抹除及73個無錯誤抹除)而摺疊在一起之12個ECC頁之一快閃記憶體之一字線之模擬指示:每ECC頁4個摺疊(每字線48個摺疊)提供高於每ECC頁2個摺疊及高於每ECC頁8個摺疊之一平均增益。
表1圖解說明針對一定範圍之X值及Y值之錯誤修正能力之模擬平均增益。針對表1中所圖解說明之每一X、Y組合,所得增益值具有在5與6之間的一標準偏差。與其中M=15之BCH編碼相比提供錯誤修正能力之增益。
表1圖解說明使用奇偶校驗位元來實施如參考圖1至圖3所闡述之一SED/垂直奇偶校驗方案可與使用奇偶校驗位元用於額外BCH奇偶校驗相比提供顯著錯誤修正改良。錯誤修正能力增益在X之較高值(亦即,將一大比例之錯誤識別為抹除)處且在Y之較高值(亦即,一大比例之完全抹除係錯誤)處更顯著。
參考圖4,繪示由一軟讀取操作及使用一單一錯誤偵測程序之抹除修正所致之資料之一特定實施例且通常指定為400。一硬位元讀取操作402圖解說明為多個MLC單元之臨限電壓與讀取電壓(包含一第一讀取電壓V1 404、一第二讀取電壓V2 406及一第三讀取電壓V3 408)之一系列比較。三個讀取電壓404至408係記憶體單元之狀態之間的轉變電壓。舉例而言,具有低於V1 404之一臨限電壓之一記憶體單元對應於儲存於該單元中之一位元值「1 1」。類似地,具有大於V1 404且小於V2 406之一臨限電壓之一單元處於對應於一位元值「1 0」之一第二狀態,具有大於V2 406且小於V3 408之一臨限電壓之一單元處於對應於一位元值「0 0」之一狀態,且具有大於V3 408之一臨限電壓之一單元處於對應於一位元值「0 1」之一狀態。
對應於一組單元(單元0、單元1、...單元6)中之每一單元之硬位元圖解說明為比較每一單元之一對應臨限電壓與讀取電壓404至408之
一結果。為了圖解說明,單元0具有大於V1 404且小於V2 406之一臨限電壓,且具有一對應位元值「1 0」,單元2具有一位元值「0 0」,單元3具有一位元值「1 0」,且單元6具有一位元值「0 0」。儲存於單元6中之資料可對應於SED奇偶校驗位元409。
一軟位元讀取操作412繪示為展示使用一第二組參考電壓(圖解說明為參考電壓V1+△ 414、V2+△ 416及V3+△ 418)讀取與硬位元讀取操作402相同之單元。如所圖解說明,差量(△)對應於指示與硬位元臨限值404至408之一電壓差之一偏移電壓。軟位元讀取操作412之每一參考電壓414、416及418位於一各別邊界電壓範圍內,包含MLC單元之毗鄰狀態之間的轉變電壓。舉例而言,電壓V1+△ 414位於包含轉變電壓V1 404之一邊界電壓範圍410內。
在單元5處根據軟位元讀取操作412圖解說明一抹除位元420。軟位元讀取操作412比較單元5之臨限電壓與參考電壓V1+△ 414,從而致使單元5具有一軟位元值「1 1」但一硬位元值「1 0」。由於藉由調整一讀取電壓達偏移電壓△而使將記憶體單元之低階位元自「0」轉變至「1」,因此將單元5之低階位元指定為抹除位元420。
另一軟位元讀取操作422圖解說明為展示與參考電壓V1-△ 424、V2-△ 426及V3-△ 428之臨限電壓比較。單元2判定為具有一軟位元讀取值「0 0」,其由於處於邊界電壓範圍V2 406內之單元臨限電壓而不同於硬位元讀取值「1 0」。因此,自單元2讀取之高階位元指示為一抹除位元430。
根據硬位元讀取操作402、軟位元讀取操作412及軟位元讀取操作422對記憶體單元0至6之一讀取導致產生讀取位元之一下部頁(亦即,由自每一記憶體單元讀取之最低有效位元形成之一資料字)及位元之一上部頁(亦即,對應於自每一記憶體單元讀取之最高有效位元之一資料字)。下部頁包含硬位元「0 0 0 1 1 0」及由硬位元讀取操作
402導致之SED奇偶校驗位元「0」。作為軟位元讀取操作412之一結果,抹除位元420可包含於軟資料中作為指示為「X」之一值。由於下部頁資料中已出現一單個抹除,因此剩餘位元之一奇偶校驗可與SED奇偶校驗位元相比以判定抹除位元420原始儲存為一「0」位元或是一「1」位元。如所圖解說明,硬位元包含兩個「1」值且剩餘無抹除硬位元皆為「0」值。下部頁中之所有無抹除硬位元之一XOR操作返回至一值「0」,從而匹配SED奇偶校驗值「0」且指示抹除位元420對應於一「0」值。因此,諸如可在圖1之單一錯誤偵測引擎110之一輸出處產生之經更新資料可提供為位元串「0 0 0 1 1 0」。
類似地,上部頁包含硬位元「1 0 1 1 0 1」且具有由硬位元讀取操作402導致之SED奇偶校驗位元「0」。作為軟位元讀取操作412之一結果,抹除位元430可包含於軟資料中作為指示為「X」之一值。由於上部頁資料中已出現一單個抹除,因此剩餘位元之一奇偶校驗可與SED奇偶校驗位元相比以判定抹除位元430原始儲存為一「0」位元或是一「1」位元。如所圖解說明,硬位元包含三個「1」值且剩餘無抹除硬位元皆為「0」值。與SED奇偶校驗值「0」相比,上部頁中之無抹除硬位元之一XOR操作導致一「1」值,指示抹除位元420對應於一「1」值。因此,經更新資料可提供為位元串「1 0 1 1 0 1。」
圖5繪示使用單一錯誤偵測奇偶校驗之錯誤修正之一方法500之一特定說明性實施例之一流程圖。可在一資料儲存裝置(諸如圖1之資料儲存裝置102)中執行方法500。
在502處,接收一單一錯誤偵測(SED)奇偶校驗位元集之一表示及資料之一表示,該資料包含一錯誤修正編碼(ECC)碼字,該ECC碼字包含資訊位元及ECC奇偶校驗位元。SED奇偶校驗位元集中之每一SED奇偶校驗位元指示針對資料之一對應部分之一奇偶校驗值。舉例而言,資料之表示及SED奇偶校驗位元集之表示可分別對應於圖1之
資料121之表示131及SED奇偶校驗位元集120之表示130。資料儲存裝置可包含耦合至一控制器(諸如圖1之控制器106)之一快閃記憶體,且資料之表示(諸如包含圖1之ECC碼字118之資料121之表示131)可係自快閃記憶體讀取且提供至控制器。
可經由一軟讀取操作來接收資料之表示及SED奇偶校驗位元集之表示,該軟讀取操作包含比較資料儲存裝置之一記憶體中之記憶體元件之臨限電壓與至少一第一參考電壓及一第二參考電壓(諸如圖4之V1 404及V1+△ 414)。第一參考電壓及第二參考電壓皆在包含記憶體元件之毗鄰狀態之間的一轉變電壓之一邊界電壓範圍內,諸如圖4之邊界電壓範圍410,其包含狀態「1 1」與狀態「1 0」之間的轉變電壓V1 404。具有大於第一參考電壓且小於第二參考電壓之一臨限值之一記憶體元件對應於一抹除位元,諸如圖4之抹除位元420。
在504處,回應於判定資料之表示之一特定部分包含一單個抹除位元,基於對應於該特定部分之SED奇偶校驗位元之表示來選擇性地修改單個抹除位元之一位元值,且當單個抹除位元之位元值對應於ECC碼字且已經修改時產生ECC碼字之一經更新表示。舉例而言,資料之表示之該特定部分可對應於具有一單個抹除位元之圖3之垂直奇偶校驗結構之第一行。可回應於指示對應於該特定部分之一位元錯誤之一奇偶校驗來改變單個抹除位元之一位元值。該奇偶校驗可包含對該特定部分之表示中之所有位元執行一互斥「或」操作。為了圖解說明,對圖3之垂直奇偶校驗結構之第一行執行之一奇偶校驗指示一奇偶校驗錯誤且改變該單個抹除位元,從而導致圖3之錯誤/抹除修正338。
在506處,起始ECC碼字之經更新表示之一ECC解碼操作。舉例而言,ECC碼字118之經更新表示138可提供至圖1之ECC引擎108之一輸入,且可產生一控制信號以致使ECC引擎108在輸入處解碼資料且
產生經解碼之資訊位元144。
使用SED奇偶校驗位元集來修正自一記憶體擷取之一ECC碼字中之錯誤/抹除減少留待在ECC碼字之ECC解碼期間修正之錯誤之一數目。作為由ECC引擎解碼之資料中之減少的錯誤之一結果,一有效錯誤修正能力可增加。因此,可增加記憶體之一有效壽命。
圖6繪示使用單一錯誤偵測奇偶校驗來編碼用於錯誤修正之資料之一方法600之一特定說明性實施例。可在一資料儲存裝置(諸如圖1之資料儲存裝置102)中執行方法600。在602處,接收包含一錯誤修正編碼(ECC)碼字之資料,ECC碼字包含資訊位元及ECC奇偶校驗位元。舉例而言,可在資料儲存裝置102之一ECC引擎(諸如圖1之ECC引擎108)處起始一ECC編碼操作以產生作為資料121(視情況結合其他資料119)提供至單一錯誤偵測引擎110之ECC碼字118。
在604處,產生對應於資料之一單一錯誤偵測(SED)奇偶校驗位元集。每一SED奇偶校驗位元指示針對資料之一對應部分之一奇偶校驗值。舉例而言,SED奇偶校驗位元集可對應於圖1之SED奇偶校驗位元集120。可在一資料儲存裝置之一單一錯誤偵測引擎(諸如圖1之資料儲存裝置102之單一錯誤偵測引擎110)處產生SED奇偶校驗位元集。
可根據對資料之對應部分之所有位元執行之一互斥「或」(XOR)操作產生每一SED奇偶校驗位元,諸如對圖2之資料之部分224之所有位元執行以產生對應SED奇偶校驗位元226之一XOR操作。舉例而言,在其中資料包含一單個ECC頁之一實施方案中,可跨越單個ECC頁應用XOR操作。在其中資料包含多個ECC頁之另一實施方案中(例如,將圖2中所圖解說明之摺疊應用於一字線或多個字線),可跨越多個ECC頁應用XOR操作。SED奇偶校驗位元集(諸如圖2之SED奇偶校驗位元集212)可包含若干個位元,位元之數目指定為「p」。資料之
每一部分包含根據一p位元間隔選擇之資料中之一或多個ECC碼字中之位元,其中p係SED奇偶校驗位元集中之位元之數目。為了圖解說明,ECC碼字202之部分224包含ECC碼字202之位元0、p、2p等,以圖形方式圖解說明為根據ECC碼字202之一p位元摺疊產生之垂直奇偶校驗結構208之一第一行位元。
在606處,將資料及SED奇偶校驗位元集儲存於資料儲存裝置之一記憶體中。舉例而言,將ECC碼字118之資訊位元114及ECC奇偶校驗位元116(及在某些實施方案中,其他資料119)及SED奇偶校驗位元集120儲存於圖1之記憶體104中。
產生SED奇偶校驗位元集且將SED奇偶校驗位元集儲存於記憶體中能夠在執行ECC碼字之ECC解碼之前修正某些錯誤/抹除位元。作為由ECC引擎解碼之資料中之減少的錯誤之一結果,一有效錯誤修正能力可增加。因此,可增加記憶體之一有效壽命。
儘管本文中所繪示之各種組件係圖解說明為方塊組件且以通用術語來闡述,但此等組件可包含經組態以使圖1之SED引擎110能夠產生SED奇偶校驗位元集且使用SED奇偶校驗位元來修正自記憶體104讀取之抹除位元之一或多個微處理器、狀態機或其他電路。舉例而言,SED引擎110可表示實體組件(諸如硬體控制器、狀態機、邏輯電路或其他結構)以使圖1之SED引擎110能夠將資料之一表示(包含一ECC碼字之一表示)分割成多個部分、識別含有一單個抹除之一或多個部分、使用一SED奇偶校驗位元之一對應表示來執行一奇偶校驗且基於該奇偶校驗之一結果來改變抹除位元之一值。
在一特定實施例中,可在經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置中實施資料儲存裝置102。然而,在其他實施例中,資料儲存裝置102可附接至一或多個主機裝置或嵌入至一或多個主機裝置內,諸如在一主機通信裝置之一殼體內。舉例而言,資料
儲存裝置102可在一經封裝設備內,諸如一無線電話、一個人數位助理(PDA)、一遊戲裝置或控制台、一可攜式導航裝置或使用內部非揮發性記憶體之其他裝置。在一特定實施例中,資料儲存裝置102可耦合至一非揮發性記憶體,諸如一個三維(3D)記憶體、一快閃記憶體(例如,NAND、NOR、多位階單元(MLC)、一分開式位元線NOR(DINOR)記憶體、一AND記憶體、一高電容性耦合比(HiCR)、非對稱性非接觸式電晶體(ACT)或其他快閃記憶體)、一可抹除可程式化唯讀記憶體(EPROM)、一電可抹除可程式化唯讀記憶體(EEPROM)、一唯讀記憶體(ROM)、一單次可程式化記憶體(OTP)或任何其他類型之記憶體。
本文中所闡述之實施例之圖解說明意欲提供對各種實施例之一大體理解。可利用其他實施例及自本發明導出該等其他實施例,以使得可在不背離本發明之範疇之情形下做出結構及邏輯替代及改變。本發明意欲涵蓋各種實施例之任何及所有後續改動或變化。
上文所揭示之標的物應被視為說明性而非限制性,且隨附申請專利範圍意欲涵蓋歸屬於本發明範疇內之所有此等修改、增強及其他實施例。因此,在法律允許之最大範圍內,本發明之範疇將由以下申請專利範圍及其等效內容之所准許的最廣泛解譯來判定,且不應由前述詳細說明限定或限制。
100‧‧‧系統
102‧‧‧資料儲存裝置
104‧‧‧記憶體
106‧‧‧控制器
108‧‧‧錯誤修正編碼引擎/較小功率錯誤修正編碼引擎
110‧‧‧單一錯誤偵測引擎
111‧‧‧主機裝置
112‧‧‧使用者資料
114‧‧‧資訊位元
116‧‧‧錯誤修正編碼奇偶校驗位元
118‧‧‧錯誤修正編碼碼字
119‧‧‧其他資料
120‧‧‧單一錯誤偵測奇偶校驗位元集
121‧‧‧資料
124‧‧‧表示
126‧‧‧表示
128‧‧‧表示
130‧‧‧表示/單一錯誤偵測奇偶校驗位元集
131‧‧‧表示/資料
134‧‧‧表示
136‧‧‧經更新表示
138‧‧‧經更新表示
144‧‧‧經解碼之資訊位元
Claims (20)
- 一種方法,其包括:在一資料儲存裝置中,執行:接收一單一錯誤偵測(SED)奇偶校驗位元集之一表示及資料之一表示,該資料包含一錯誤修正編碼(ECC)碼字,該ECC碼字包含資訊位元及ECC奇偶校驗位元,其中該SED奇偶校驗位元集中之每一SED奇偶校驗位元指示針對該資料之一對應部分之一奇偶校驗值;回應於判定該資料之該表示之一特定部分包含一單個抹除位元,基於對應於該特定部分之該SED奇偶校驗位元之該表示來選擇性地修改該單個抹除位元之一位元值,且當該單個抹除位元之該位元值對應於該ECC碼字且已經修改時產生該ECC碼字之一經更新表示;及起始該ECC碼字之該經更新表示之一ECC解碼操作。
- 如請求項1之方法,其中經由一軟讀取操作接收該資料之該表示及該SED奇偶校驗位元集之該表示,該軟讀取操作包含比較該資料儲存裝置之一記憶體中之記憶體元件之臨限電壓與至少一第一參考電壓及一第二參考電壓,其中該第一參考電壓及該第二參考電壓皆在包含該等記憶體元件之毗鄰狀態之間的一轉變電壓之一邊界電壓範圍內,且其中具有大於該第一參考電壓且小於該第二參考電壓之一臨限值之一記憶體元件對應於一抹除位元。
- 如請求項1之方法,其中回應於指示對應於該特定部分之一位元錯誤之一奇偶校驗來改變該單個抹除位元之一位元值。
- 如請求項3之方法,其中該奇偶校驗包含對該特定部分之該表示 中之所有位元執行一互斥「或」操作。
- 如請求項1之方法,其中該資料儲存裝置包含耦合至一控制器之一快閃記憶體,且其中該資料之該表示係自該快閃記憶體讀取且提供至該控制器。
- 一種資料儲存裝置,其包括:一記憶體;及一控制器,其經組態以自該記憶體接收一單一錯誤偵測(SED)奇偶校驗位元集之一表示及資料之一表示,該資料包含一錯誤修正編碼(ECC)碼字,該ECC碼字包含資訊位元及ECC奇偶校驗位元,其中該SED奇偶校驗位元集中之每一SED奇偶校驗位元指示針對該資料之一對應部分之一奇偶校驗值,其中回應於判定該資料之該表示之一特定部分包含一單個抹除位元,該控制器進一步經組態以基於對應於該特定部分之該SED奇偶校驗位元之該表示來選擇性地修改該單個抹除位元之一位元值,且當該單個抹除位元之該位元值對應於該ECC碼字且已經修改時產生該ECC碼字之一經更新表示。
- 如請求項6之資料儲存裝置,其進一步包括一ECC引擎,且其中該控制器經組態以在該ECC引擎處起始該ECC碼字之該經更新表示之一ECC解碼操作。
- 如請求項6之資料儲存裝置,其進一步包括一單一錯誤偵測引擎,該單一錯誤偵測引擎經組態以回應於指示對應於該特定部分之一位元錯誤之一奇偶校驗校驗來改變該單個抹除位元之該位元值。
- 如請求項8之資料儲存裝置,其中該奇偶校驗包含對該特定部分之該表示中之所有位元執行之一互斥「或」操作。
- 如請求項6之資料儲存裝置,其中該記憶體包含一多位階單元 (MLC)快閃記憶體。
- 一種方法,其包括:在一資料儲存裝置中,執行:接收包含一錯誤修正編碼(ECC)碼字之資料,該ECC碼字包含資訊位元及ECC奇偶校驗位元;產生對應於該資料之一單一錯誤偵測(SED)奇偶校驗位元集,其中每一SED奇偶校驗位元指示針對該資料之一對應部分之一奇偶校驗值;及將該資料及該SED奇偶校驗位元集儲存於該資料儲存裝置之一記憶體中。
- 如請求項11之方法,其中根據對該資料之該對應部分之所有位元執行之一互斥「或」操作來產生每一SED奇偶校驗位元。
- 如請求項11之方法,其中在該資料儲存裝置之一單一錯誤偵測引擎處產生該單一錯誤偵測奇偶校驗位元集。
- 如請求項11之方法,其進一步包括在該資料儲存裝置之一ECC引擎處起始一ECC編碼操作以產生該ECC碼字。
- 如請求項11之方法,其中該SED奇偶校驗位元集包含p個位元,且其中該資料之每一部分包含根據一p位元間隔選擇之該ECC碼字中之位元。
- 一種資料儲存裝置,其包括:一記憶體;及一控制器,其包含一單一錯誤偵測引擎,該單一錯誤偵測引擎經組態以:接收包含一錯誤修正編碼(ECC)碼字之資料,該ECC碼字包含資訊位元及ECC奇偶校驗位元;及產生對應於該資料之一單一錯誤偵測(SED)奇偶校驗位元集,其中每一SED奇偶校驗位元指示針對該資料之一對應部分之一奇偶校驗值, 其中該控制器經組態以將該資料及該SED奇偶校驗位元集儲存於該記憶體中。
- 如請求項16之資料儲存裝置,其中根據對該資料之該對應部分之所有位元執行之一互斥「或」操作來產生每一SED奇偶校驗位元。
- 如請求項16之資料儲存裝置,其進一步包括經組態以產生該ECC碼字之一ECC引擎。
- 如請求項16之資料儲存裝置,其中該SED奇偶校驗位元集包含p個位元,且其中該資料之每一部分包含根據一p位元間隔選擇之該ECC碼字中之位元。
- 如請求項16之資料儲存裝置,其中該等資訊位元對應於當一主機裝置以操作方式耦合至該資料儲存裝置時自該主機裝置接收之使用者資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN688CH2012 | 2012-02-23 | ||
US13/426,980 US8996950B2 (en) | 2012-02-23 | 2012-03-22 | Erasure correction using single error detection parity |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201346923A true TW201346923A (zh) | 2013-11-16 |
Family
ID=49004652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102105211A TW201346923A (zh) | 2012-02-23 | 2013-02-08 | 使用單一錯誤偵測奇偶校驗的抹除修正 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8996950B2 (zh) |
TW (1) | TW201346923A (zh) |
WO (1) | WO2013126182A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183082B2 (en) * | 2013-01-29 | 2015-11-10 | Qualcomm Incorporated | Error detection and correction of one-time programmable elements |
TWI512732B (zh) * | 2013-08-30 | 2015-12-11 | Phison Electronics Corp | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 |
US9213595B2 (en) * | 2013-10-15 | 2015-12-15 | International Business Machines Corporation | Handling errors in ternary content addressable memories |
US9817749B2 (en) | 2013-12-04 | 2017-11-14 | Sandisk Technologies Llc | Apparatus and method of offloading processing from a data storage device to a host device |
US9224479B1 (en) * | 2013-12-18 | 2015-12-29 | Pmc-Sierra Us, Inc. | Threshold voltage adjustment in solid state memory |
US9442787B2 (en) * | 2014-06-13 | 2016-09-13 | Sandisk Technologies Llc | Three dimensional (3D) memory including error detection circuitry |
US10089177B2 (en) | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
US9614547B2 (en) | 2014-06-30 | 2017-04-04 | Sandisk Technologies Llc | Multi-stage decoder |
US10395753B2 (en) | 2014-08-28 | 2019-08-27 | Winbond Electronics Corp. | Semiconductor memory device and programming method thereof |
WO2017061891A1 (en) * | 2015-10-09 | 2017-04-13 | Huawei Technologies Co., Ltd. | Coding for distributed storage system |
WO2017213329A1 (ko) * | 2016-06-10 | 2017-12-14 | 엘지전자 주식회사 | 우도비를 갖는 이진소거채널 기반 오류 정정 코드 복호화 방법 및 이를 위한 장치 |
US10268541B2 (en) | 2016-08-15 | 2019-04-23 | Samsung Electronics Co., Ltd. | DRAM assist error correction mechanism for DDR SDRAM interface |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
US20190081640A1 (en) * | 2017-09-08 | 2019-03-14 | Intel Corporation | Faulty word line and faulty bit line information in error correcting coding |
US10956259B2 (en) * | 2019-01-18 | 2021-03-23 | Winbond Electronics Corp. | Error correction code memory device and codeword accessing method thereof |
US11095313B2 (en) | 2019-10-21 | 2021-08-17 | International Business Machines Corporation | Employing single error correction and triple error detection to optimize bandwidth and resilience under multiple bit failures |
US11934263B2 (en) * | 2022-03-29 | 2024-03-19 | Ampere Computing Llc | Parity protected memory blocks merged with error correction code (ECC) protected blocks in a codeword for increased memory utilization |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675349B1 (en) * | 2000-05-11 | 2004-01-06 | International Business Machines Corporation | Error correction coding of data blocks with included parity bits |
US6654926B1 (en) | 2000-10-11 | 2003-11-25 | Itran Communications Ltd. | Soft decision maximum likelihood encoder and decoder |
US7587657B2 (en) * | 2005-04-29 | 2009-09-08 | Agere Systems Inc. | Method and apparatus for iterative error-erasure decoding |
US7447948B2 (en) * | 2005-11-21 | 2008-11-04 | Intel Corporation | ECC coding for high speed implementation |
US7793196B2 (en) * | 2006-08-21 | 2010-09-07 | Lsi Corporation | Methods and apparatus for improved error and erasure correction in a Reed-Solomon date channel |
US7904783B2 (en) | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US7971125B2 (en) * | 2007-01-08 | 2011-06-28 | Agere Systems Inc. | Systems and methods for prioritizing error correction data |
JP4564520B2 (ja) * | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
US7962837B2 (en) * | 2007-09-13 | 2011-06-14 | United Memories, Inc. | Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix |
JP4538034B2 (ja) | 2007-09-26 | 2010-09-08 | 株式会社東芝 | 半導体記憶装置、及びその制御方法 |
US8527819B2 (en) * | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
JP5166074B2 (ja) | 2008-02-29 | 2013-03-21 | 株式会社東芝 | 半導体記憶装置、その制御方法、および誤り訂正システム |
US8413023B2 (en) * | 2008-12-31 | 2013-04-02 | Stmicroelectronics, Inc. | Error-locator-polynomial generation with erasure support |
JP2012089085A (ja) * | 2010-10-22 | 2012-05-10 | Toshiba Corp | 半導体メモリ装置および半導体メモリシステム |
US8418026B2 (en) * | 2010-10-27 | 2013-04-09 | Sandisk Technologies Inc. | Hybrid error correction coding to address uncorrectable errors |
-
2012
- 2012-03-22 US US13/426,980 patent/US8996950B2/en active Active
-
2013
- 2013-01-29 WO PCT/US2013/023554 patent/WO2013126182A1/en active Application Filing
- 2013-02-08 TW TW102105211A patent/TW201346923A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20130227374A1 (en) | 2013-08-29 |
WO2013126182A1 (en) | 2013-08-29 |
US8996950B2 (en) | 2015-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201346923A (zh) | 使用單一錯誤偵測奇偶校驗的抹除修正 | |
KR101369444B1 (ko) | 정정 불가능한 에러를 해결하는 하이브리드 에러 정정 코딩 | |
CN106169312B (zh) | 用于快闪存储的广义乘积码 | |
US9043678B2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
US8719677B2 (en) | Using ECC encoding to verify an ECC decode operation | |
US9124300B2 (en) | Error correction coding in non-volatile memory | |
US9025374B2 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
US9070479B2 (en) | Systems and methods of updating read voltages | |
TWI594254B (zh) | 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置 | |
US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9135105B2 (en) | Probability-based remedial action for read disturb effects | |
US20130246878A1 (en) | Statistical distribution based variable-bit error correction coding | |
US20110252288A1 (en) | Auxiliary parity bits for data written in multi-level cells | |
US9093154B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
US8787079B2 (en) | Reading data from multi-level cell memory | |
WO2013176849A1 (en) | System and method to scramble data | |
US9117533B2 (en) | Tracking erase operations to regions of non-volatile memory | |
WO2013039666A1 (en) | Data modification based on matching bit patterns | |
US9071269B2 (en) | Encoding data for storage in a data storage device |