TWI682399B - 操作記憶體之方法及用於錯誤率降低之設備 - Google Patents

操作記憶體之方法及用於錯誤率降低之設備 Download PDF

Info

Publication number
TWI682399B
TWI682399B TW106105418A TW106105418A TWI682399B TW I682399 B TWI682399 B TW I682399B TW 106105418 A TW106105418 A TW 106105418A TW 106105418 A TW106105418 A TW 106105418A TW I682399 B TWI682399 B TW I682399B
Authority
TW
Taiwan
Prior art keywords
data
err
amount
memory
user data
Prior art date
Application number
TW106105418A
Other languages
English (en)
Other versions
TW201732833A (zh
Inventor
賀德平
山帕斯 K 瑞特南
Original Assignee
美商美光科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商美光科技公司 filed Critical 美商美光科技公司
Publication of TW201732833A publication Critical patent/TW201732833A/zh
Application granted granted Critical
Publication of TWI682399B publication Critical patent/TWI682399B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2933Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code
    • H03M13/2936Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code comprising an outer Reed-Solomon code and an inner convolutional code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2966Turbo codes concatenated with another code, e.g. an outer block code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0098Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

本發明包含用於錯誤率降低之設備及方法。一實例性方法包括將一錯誤率降低(ERR)資料量新增至一經接收使用者資料量,且將該使用者資料量連同該ERR資料量一起寫入至一記憶體。

Description

操作記憶體之方法及用於錯誤率降低之設備
本發明大體上係關於半導體記憶體設備及方法,且更特定言之係關於與記憶體相關聯之錯誤率降低。
記憶體裝置通常被提供為電腦或其他電子裝置中之內部半導體積體電路及/或外部可抽換式裝置。存在許多不同類型之記憶體,包含揮發性記憶體及非揮發性記憶體。揮發性記憶體可需要電力來維持其資料,且可包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM),以及其他。非揮發性記憶體可在未經供電時保持經儲存資料且可包含NAND快閃記憶體、NOR快閃記憶體、相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁性隨機存取記憶體(MRAM),以及其他。
可將記憶體裝置組合在一起以形成一固態磁碟(SSD)。一SSD除了包含各種其他類型之非揮發性記憶體及揮發性記憶體之外,亦可包含非揮發性記憶體(例如,NAND快閃記憶體及/或NOR快閃記憶體)且/或可包含揮發性記憶體(例如,DRAM及/或SRAM)。快閃記憶體裝置可包含將資料儲存於一電荷儲存結構(舉例而言,諸如一浮動閘極)中之記憶體胞,且可用作廣範圍之電子應用程式之非揮發性記憶體。快閃記憶體裝置通常使用一 個電晶體記憶體胞,其相對於各種其他記憶體裝置,容許高記憶體密度、高可靠性及低功率消耗。
一陣列架構中之記憶體胞可經程式化為一目標(例如,所要)狀態。例如,電荷可放置於一記憶體胞之電荷儲存結構(例如,浮動閘極)上或從該記憶體胞之該電荷儲存結構移除以將胞程式化為一特定資料狀態。記憶體胞之電荷儲存結構上之經儲存電荷可指示胞之一臨限電壓(Vt)。
例如,一單位階胞(SLC)可經程式化為兩個不同資料狀態之一目標狀態(其可由二進位單元1或0表示)。一些快閃記憶體胞可經程式化為兩個以上資料狀態之一目標狀態(例如,1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110及1110)。此等胞可稱為多狀態記憶體胞、多單元胞或多位階胞(MLC)。MLC可提供更高密度的記憶體,而不增加記憶體胞之數目,此係因為各胞可表示一個以上的數位(例如,一個以上位元)。
可藉由感測胞之電荷儲存結構上之經儲存電荷(例如,Vt)而判定一快閃記憶體之一狀態。然而,數個機制(舉例而言,諸如讀取干擾、程式干擾、胞間干擾及/或電荷損失(例如,電荷洩漏))可引起記憶體之Vt改變。錯誤校正碼(ECC)方案(諸如,一低密度同位檢查(LDPC)、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghen)(BCH)及李德-所羅門(Reed-Solomon)(RS))已用來校正該等錯誤;然而,此等ECC方案通常具有一有限的錯誤校正能力。例如,各種ECC方案不能夠進行超過一臨限位元錯誤率(BER)之錯誤校正。因而,與一特定資料量相關聯之位元錯誤之數量的增加可導致BER超過ECC方案之能力,從而導致一不可校正的ECC錯誤,此可導致例如資料損失。
100‧‧‧運算系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧主機介面
108‧‧‧控制器
110‧‧‧記憶體裝置/記憶體
112‧‧‧錯誤校正(ECC)組件
114‧‧‧錯誤率降低(ERR)組件
205-1、…、205-N‧‧‧字線
207-1、207-、2207-3、…、207-M‧‧‧局域位元線
209-1、209-2、209-3、…、209-M‧‧‧NAND串
210‧‧‧記憶體
211-1、…、211-N‧‧‧記憶體胞
213‧‧‧源極選擇閘極
215‧‧‧汲極選擇線
217‧‧‧源極選擇線
219‧‧‧汲極選擇閘極
221-1‧‧‧汲極接點
223‧‧‧共同源極/共同源極線
325‧‧‧下部頁程式化(LPP)程序
327‧‧‧中間頁程式化(MPP)程序
329‧‧‧上部頁程式化(UPP)程序
330-1、330-2‧‧‧Vt分佈
332-1、332-2、332-3、332-4‧‧‧Vt分佈
334-1、334-2、334-3、334-4、334-5、334-6、334-7、334-8‧‧‧Vt分佈
440‧‧‧碼字
442‧‧‧使用者資料
444‧‧‧錯誤校正資料
450-1、450-2‧‧‧碼字
452‧‧‧使用者資料
454‧‧‧錯誤校正資料
455‧‧‧錯誤率降低(ERR)資料
503-1‧‧‧傳入資料
503-2‧‧‧傳出資料
510‧‧‧記憶體
512-1‧‧‧錯誤率降低(ERR)編碼器
512-2‧‧‧錯誤率降低(ERR)解碼器
514-1‧‧‧錯誤校正(ECC)編碼器
514-2‧‧‧錯誤校正(ECC)解碼器
580‧‧‧設備
Vt‧‧‧臨限電壓
圖1係根據本發明之數個實施例之呈包含能夠進行錯誤率降低之一記憶體系統之一運算系統之形式之一設備之一方塊圖。
圖2係根據本發明之數個實施例之包括可操作之記憶體胞之一陣列之一記憶體之一部分之一示意圖。
圖3繪示根據本發明之數個實施例之與程式化記憶體胞相關聯之一圖。
圖4A繪示根據先前方法之包括各種類型之資料之一碼字。
圖4B繪示根據本發明之數個實施例之包括包含ERR資料之各種類型之資料之一碼字。
圖4C繪示根據本發明之數個實施例之包括包含ERR資料之各種類型之資料之一碼字。
圖5係根據本發明之數個實施例之與錯誤率降低相關聯之一設備之一部分之一功能方塊圖。
本發明包含與記憶體相關聯之用於錯誤率降低之設備及方法。一實例性方法包括將一錯誤率降低(ERR)資料量新增至一經接收使用者資料量,且將該使用者資料量連同該ERR資料量一起寫入至一記憶體。
本發明之實施例可提供益處,舉例而言,諸如增大與記憶體相關聯之一錯誤率(例如,位元錯誤率)不超過一特定ECC方案之校正能力之可能性。作為一實例,考慮一群組的記憶體胞(例如,胞之一實體頁、胞之區塊等),其等相關聯的位元錯誤率超過一特定ECC方案之能力,使得一讀 取操作導致一不可校正的錯誤(例如,讀取資料中之錯誤位元之數量超過可由ECC方案校正之位元之數量)。本發明之數個實施例可降低與該群組的記憶體胞相關聯之有效位元錯誤率,使得對該群組的記憶體胞執行之一後續讀取操作不會導致一不可校正的錯誤。防止錯誤率超過一ECC方案之校正能力可提供益處,諸如增大記憶體之效能、可靠性及/或壽命以及其他益處。例如,一旦一相關聯的位元錯誤率超過一特定臨限,即可停用一記憶體之部分(例如,頁、區塊等)。然而,本發明之實施例可藉由降低有效相關聯位元錯誤率而延長記憶體之此等部分之使用,此可防止記憶體部分的停用。降低與一群組的胞相關聯之有效錯誤率,使得其並不超過一ECC方案(例如,由一控制器實施之一特定ECC方案)之一錯誤校正能力,例如亦可藉由降低不可校正ECC錯誤而改良記憶體之可靠性。
如本文中進一步描述,錯誤率降低(ERR)資料係指具有已知資料值(例如,二進位「0」或「1」)之資料單元(例如,位元)之一數量且將該ERR資料新增至一使用者資料量以根據本文中描述之實施例降低與記憶體相關聯之一有效錯誤率。在數個實施例中,ERR資料可取代一頁內之一對應使用者資料量,藉此減少對應於頁之使用者資料量,同時維持與記憶體相關聯之一特定頁大小。
在本發明之下文詳細描述中,對形成其之一部分且於其中藉由繪示方式展示可如何實踐本發明之一或多個實施例之隨附圖式進行參考。以足夠細節描述此等實施例以使熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且可在不脫離本發明之範疇之情況下作出程序、電及/或結構變化。如本文中所用,特定關於圖式中之參考符號之標示符「M」及「N」指示可包含如此標示之數個特定特徵。如本文中所 用,「數個」特定事物可係指此等事物之一或多者(例如,數個記憶體裝置可係指一或多個記憶體裝置)。
本文中,圖遵循一編號慣例,其中第一個數位或若干數位對應於圖式之圖號且剩餘數位識別圖式中之一元件或組件。可藉由類似數位之使用而識別不同圖之間之類似元件或組件。例如,110可指涉圖1中之元件「10」,且一類似元件可在圖2中指涉為210。如應瞭解,可新增、交換及/或消除本文中之各種實施例中所示之元件以提供本發明之數個額外實施例。此外,如應瞭解,圖中所提供之元件之比例及相對尺度旨在繪示本發明之特定實施例,且不應被理解為一限制性意義。
圖1係根據本發明之數個實施例之呈包含能夠進行錯誤率降低之一記憶體系統104之一運算系統100之形式之一設備之一方塊圖。
如本文中所用,一記憶體系統104、一控制器108或一記憶體裝置110亦可單獨地視為一「設備」。記憶體系統104可例如係一固態磁碟(SSD),且可包含一主機介面106、一控制器108(例如,一定序器及/或其他控制電路)及可稱為記憶體110之數個記憶體裝置110。記憶體110可包括例如為記憶體系統104提供一儲存磁碟區之數個固態記憶體裝置(諸如NAND快閃記憶體裝置)。
控制器108可經由複數個通道耦合至主機介面106及至記憶體110且可用來在記憶體系統104與一主機102之間傳送資料。介面106可呈一標準化介面之形式。例如,當記憶體系統104用於一運算系統100中之資料儲存時,介面106可係一串列進階附接技術(SATA)、周邊組件互連快速(PCIe)或一通用串列匯流排(USB)以及其他連接器及介面。然而,一般言之,介面106可提供用於在記憶體系統104與一主機102(其具有介面106之相容接 納器)之間傳遞控制、位址、資料及其他信號之一介面。
主機102可係一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位相機、一行動電話或一記憶卡讀取器,以及各種其他類型之主機。主機102可包含一系統主機板及/或背板,且可包含數個記憶體存取裝置(例如,數個處理器)。主機102亦可係一記憶體控制器,諸如在記憶體系統104係一記憶體裝置(例如,具有一晶粒上控制器之一記憶體裝置)之情況下。
控制器108可與記憶體110(其在一些實施例中可係一單一晶粒上之數個記憶體陣列)通信以控制資料讀取、寫入及擦除操作,以及其他操作。作為一實例,控制器108可在與對應於記憶體110之一晶粒或諸晶粒相同或不同之一晶粒上。
雖然未明確繪示,但控制器108可包含用於將控制器108耦合至記憶體110之各通道之一離散記憶體通道控制器。控制器108可包含(例如)呈硬體及/或韌體(例如,一或多個積體電路)及/或軟體之形式之數個組件,其等用於控制對記憶體110之存取及/或用於促成主機102與記憶體110之間之資料傳送。
如圖1中所繪示,控制器108可包含一錯誤校正組件112(展示為「ECC」)及一錯誤率降低組件114(展示為ERR)。錯誤校正組件112可包含例如一代數錯誤校正電路,諸如包含一博斯-查德胡里-霍昆格姆(BCH)錯誤校正電路及李德-所羅門錯誤校正電路之群組之一者,以及其他類型之錯誤校正電路。組件112不限於電路(例如,硬體)實施方案。例如,可在硬體、韌體及/或軟體中實施組件112。又,組件112不限於一特定類型之錯誤校正方案。例如,組件112可係一LDPC組件,以及各種其他類型 之ECC組件。儘管被稱為一錯誤校正組件,但組件112可用來偵測以及校正資料錯誤。此外,組件112可包含如下文進一步描述之錯誤編碼及解碼功能性。例如,在數個實施例中,ECC組件112可編碼(例如,用ECC資料)待寫入至記憶體110之一組合量之使用者資料及ERR資料。
ERR組件114可包含例如如本文中進一步描述之經組態以用ERR資料編碼使用者資料之電路。例如,組件114可用ERR資料取代對應於一頁大小之一特定使用者資料量。作為一實例,組件114可經組態以在該使用者資料量(例如,自一主機102接收之使用者資料)間分佈該ERR資料量。由於ERR資料包括頁內已知位置處之已知資料單元值,所以組件114亦可經組態以在自記憶體110讀取該等資料單元時判定具有不正確值之資料單元,且校正經判定為不正確之該等資料單元。如下文進一步描述,在數個實施例中,組件114可經組態以在對資料頁執行一ECC解碼操作之前校正經判定為不正確之ERR資料之該等資料單元。因而,在數個實施例中,ERR資料在連同對應使用者資料一起經歷一ECC解碼操作(例如,經由組件112)之前經校正(例如,藉由組件114)。組件114不限於電路(例如,硬體)實施方案。例如,可在硬體、韌體及/或軟體中實施組件114。
ECC組件112及ERR組件114可係離散組件,諸如一特定應用積體電路(ASIC)或可反映控制器108內之未必具有與控制器108之其他部分分離之一離散實體形式之電路提供之功能性之組件。雖然在圖1中繪示為控制器108內之組件,但ECC組件112及ERR組件114可在控制器108外部或可具有定位在控制器108內之數個組件及定位在控制器108外部之數個組件。如圖5中所繪示,在數個實施例中,ECC組件112及ERR組件114可包括單獨的編碼及解碼組件。
記憶體110可包含數個記憶體胞(例如,非揮發性記憶體胞)陣列。例如,陣列可係具有一NAND架構之快閃陣列。然而,實施例不限於特定類型之記憶體陣列或陣列架構。雖然本文中通常指涉一NAND架構中之浮動閘極類型之快閃記憶體胞,但實施例不限於此。例如,記憶體胞可分組成包含數個實體頁之數個區塊。數個區塊可包含在記憶體胞之一平面中且一陣列可包括數個平面。作為一實例,一記憶體裝置可經組態以每頁儲存8KB(千位元組)之使用者資料、每區塊儲存128頁之使用者資料、每平面儲存2048個區塊及每裝置儲存16個平面。
在操作中,舉例而言,資料可作為一頁資料寫入至記憶體110及/或自記憶體110讀取。因而,一頁資料可稱為記憶體系統之一資料傳送大小。資料可依稱為區段(例如,主機區段)之資料分段來往於一主機(例如,主機102)發送。因而,一資料區段可稱為主機之一資料傳送大小。
圖2係根據本發明之數個實施例之包括可操作之記憶體胞之一陣列之一記憶體210之一部分之一示意圖。圖2之實施例繪示一NAND架構非揮發性記憶體陣列;然而,本文中描述之實施例不限於此實例。如圖2中所示,記憶體陣列包含存取線(例如,字線205-1、...、205-N)及相交資料線(例如,局域位元線207-1、207-2、207-3、...、207-M)。為了易於在數位環境中定址,字線205-1、...、205-N之數目及局域位元線207-1、207-2、207-3、...、207-M之數目可係二之一些冪次(例如,256個字線×4096個位元線)。
記憶體陣列包含NAND串209-1、209-2、209-3、...、209-M。各NAND串包含非揮發性記憶體胞211-1、...、211-N,各者通信耦合至一各自字線205-1、...、205-N。各NAND串(及其之組成記憶體胞)亦與一局 域位元線207-1、207-2、207-3、...、207-M相關聯。各NAND串209-1、209-2、209-3、...、209-M之記憶體胞211-1、...、211-N源極至汲極地串聯耦合於一源極選擇閘極(SGS)(例如,一場效電晶體(FET)213)與一汲極選擇閘極(SGD)(例如,FET 219)之間。各源極選擇閘極213經組態以回應於源極選擇線217上之一信號而將一各自NAND串選擇性耦合至一共同源極223,而各汲極選擇閘極219經組態以回應於汲極選擇線215上之一信號而將一各自NAND串選擇性耦合至一各自位元線。
如圖2中所繪示之實施例中所示,源極選擇閘極213之一源極耦合至一共同源極線223。源極選擇閘極213之汲極耦合至對應NAND串209-1之記憶體胞211-1之源極。汲極選擇閘極219之汲極在汲極接點221-1處耦合至對應NAND串209-1之位元線207-1。汲極選擇閘極219之源極耦合至對應NAND串209-1之最後記憶體胞211-N(例如,一浮動閘極電晶體)之汲極。
在數個實施例中,非揮發性記憶體胞211-1、...、211-N之構成包含一源極、一汲極、一浮動閘極或其他電荷儲存結構及一控制閘極。記憶體胞211-1、...、211-N具有其等分別耦合至一字線205-1、...、205-N之控制閘極。一NOR陣列架構將類似地佈局,惟記憶體胞之串將平行耦合於選擇閘極之間除外。此外,一NOR架構可提供對陣列中之記憶體胞之隨機存取(例如,相對於如使用一NAND架構之基於頁的存取)。
在操作中,耦合至一選定字線(例如,205-1、...、205-N)之數個胞可作為一群組一起被寫入及/或讀取。一起被寫入及/或讀取之一群組的胞可稱為一胞頁(例如,一實體頁)且可儲存數個資料頁(例如,邏輯頁)。例如,如下文結合圖3進一步描述,記憶體胞211-1、...、211-N可係經組態 以儲存一個以上數位(例如,位元)之資料之多位階胞。在一些此等例項中,儲存於各多位階胞中之位元可對應於資料之不同邏輯頁。例如,一2位元胞之一第一位元可對應於資料之一第一邏輯頁(例如,一下部頁),且2位元胞之一第二位元可對應於資料之一第二邏輯頁(例如,一上部頁)。每胞儲存兩個以上位元之胞可包括對應於一下部資料頁之一第一位元、對應於一上部資料頁之一第二位元及對應於一或多個中間資料頁之一或多個額外位元。耦合至一特定字線且一起被程式化為各自資料狀態之數個胞可稱為一目標頁。一程式化操作可包含將數個程式脈衝(例如,16V至20V)施加至一選定字線以將耦合至該選定字線之選定胞之臨限電壓(Vt)增大至對應於一目標資料狀態之一所要電壓位準。
讀取操作可包含感測耦合至一選定胞之一位元線之一電壓及/或電流變化以判定選定胞之狀態。讀取操作可包含預充電一位元線且在一選定胞開始導電時感測放電。一種類型之讀取操作包括將一斜坡讀取信號施加至一選定字線,且另一種類型之讀取操作包括將複數個離散讀取信號施加至選定字線以判定胞之狀態。
圖3繪示根據本發明之數個實施例之與程式化記憶體胞相關聯之一圖。在此實例中,記憶體胞係3位元記憶體胞,其中各胞經程式化為八個資料狀態(例如,L1至L8)之一者,該等狀態之各者指示一不同的3位元經儲存位元型樣(例如,111、011、001、101、100、000、010及110)。在數個實施例中,3位元經儲存位元型樣中之位元之各者對應於一不同資料頁。例如,最低有效位元(LSB)(如圖3中加框展示之最右側位元)可對應於一第一資料頁(例如,一下部資料頁)、中間位元可對應於一第二資料頁(例如,一中間資料頁)及最高有效位元(MSB)(展示為如在圖3中被菱形符 號包圍之最左側位元)可對應於一第三資料頁(例如,一上部資料頁)。因而,在此實例中,一胞頁可儲存三個資料頁。
然而,實施例不限於儲存三個資料位元之多位階記憶體胞。例如,數個實施例可包含經組態以儲存多於或少於三個資料位元及/或分數個資料位元之記憶體胞。又,實施例不限於經指派至資料狀態L1至L8之特定位元值。
圖3中所示之圖繪示在一下部頁程式化(LPP)程序325、一中間頁程式化(MPP)程序327及一上部頁程式化(UPP)程序329之後,數個胞之臨限電壓(Vt)分佈。如一般技術者應瞭解,NAND快閃記憶體胞可在新資料被程式化至其之前被擦除。
作為LPP程序325之部分,記憶體胞之Vt(經由施加至一選定字線之程式化脈衝)調整為由Vt分佈330-1及330-2表示之兩個位準之一者。電壓位準由Vt分佈(其可反映經程式化為一特定位準之胞之一統計平均Vt位準)表示。在此實例中,其之下部頁將儲存一位元值「1」(例如,LP=1)之胞在LPP程序325期間程式化為分佈330-1,且其之下部頁將儲存一位元值「0」(例如,LP=0)之胞在LPP程序325期間程式化為分佈330-2。
作為MPP程序327之部分,記憶體胞之Vt經調整為由Vt分佈332-1、332-2、332-3及332-4表示之四個位準之一者。在此實例中,其之中間頁將儲存一位元值「1」(例如,MP=1)之胞在MPP程序327期間程式化為分佈332-2及332-3之一者,且其之中間頁將儲存一位元值「0」(例如,MP=0)之胞在MPP程序327期間程式化為分佈332-1及332-4之一者。
作為UPP程序329之部分,記憶體胞之Vt經調整為由Vt分佈334-1至334-8表示之八個位準(其等分別對應於資料狀態L1至L8)之一者,其中資 料狀態L1至L8之各者指示一不同的3位元經儲存位元型樣。在此實例中,經程式化為資料狀態L1之胞儲存「111」,經程式化為資料狀態L2之胞儲存資料「011」,經程式化為資料狀態L3之胞儲存資料「001」,經程式化為資料狀態L4之胞儲存資料「101」,經程式化為資料狀態L5之胞儲存資料「100」,經程式化為資料狀態L6之胞儲存資料「000」,經程式化為資料狀態L7之胞儲存資料「010」,及經程式化為資料狀態L8之胞儲存資料「110」。
在操作中,與一群組(例如,實體頁)之記憶體胞相關聯之錯誤率(例如,BER)針對不同對應邏輯頁可係不同。例如,與一上部資料頁相關聯之BER可比與一下部資料頁相關聯之BER高。在此等例項中,一上部資料頁之BER可超過控制器(例如,圖1中所示之控制器108)之錯誤校正能力,而一下部資料頁及/或一中間資料頁之BER可未超過控制器之錯誤校正能力。因此,在本發明之數個實施例中,可基於資料將寫入之複數個頁之特定頁而將ERR資料新增至使用者資料。例如,若資料作為一上部資料頁寫入,則可將ERR資料新增至使用者資料,但若資料作為一下部資料頁寫入,則可能不將ERR資料新增至使用者資料。
圖4A、圖4B及圖4C繪示包括各種類型之資料之碼字。圖4A繪示根據先前方法之包括各種類型之資料之一碼字440。圖4A中所繪示之實例性碼字440包含:一「有效負載」,其包括一使用者資料442量;及「對象包裝程式」,其包括對有效負載進行錯誤編碼(例如,保護)之一錯誤校正資料444(例如,ECC資料)量。錯誤校正資料444可係一錯誤校正碼(例如,LDPC碼、BCH碼、RS碼等)。使用者資料442可係將寫入至一記憶體(例如,110)且可由一控制器(例如,控制器108)自一主機(例如,102)接收 之資料。使用者資料442可經由一錯誤校正組件而用錯誤校正資料444進行錯誤編碼,該錯誤校正組件可係一控制器之一組件(例如,控制器108之組件112)。使用者資料442量可對應於與一記憶體(例如,圖1中所示之記憶體110、圖2中所示之記憶體210等)相關聯之一邏輯頁大小。作為一實例,使用者資料442可對應於一2KB頁大小、一4KB頁大小或一8KB頁大小;然而,實施例不限於一特定頁大小。儘管圖4A中未展示,但碼字440之有效負載可包含除使用者資料442外之資料。例如,碼字440之有效負載可包含與使用者資料442相關聯之附加項資料,諸如元資料。
如圖4B及圖4C中所示,在本發明之數個實施例中,可用一ERR資料量取代該使用者資料442量之至少一部分。待取代之使用者資料量可基於數個因素判定,諸如與資料待寫入至其之記憶體相關聯之一BER、資料待寫入至其之頁之類型(例如,上部頁、下部頁等)、一區塊內待寫入一特定字線之一位置(例如,定位為更靠近一邊緣之字線可易具有更高BER)及/或記憶體之年限(例如,數量或程式/擦除循環),以及其他因素。例如,圖4B繪示一碼字450-1,包括一使用者資料452量、一ERR資料455量及一錯誤校正資料454量。錯誤校正資料454連同ERR資料455一起對使用者資料452進行錯誤編碼。在數個實施例中,對應於碼字450-1之使用者資料452及ERR資料455之總和可等於對應於碼字440之使用者資料442量。因而,可獨立於ERR資料455量維持一特定碼字大小。然而,應注意,取代對應於一特定碼字之一有效負載部分之該使用者資料量之一部分減少有效負載內之使用者資料量(以維持特定碼字大小)。例如,若碼字440之使用者資料442量對應於一8KB頁大小,且若碼字450-1之ERR資料455量係2KB,則碼字450-1之使用者資料452量係6KB,其係使用者資料減少達2 KB(例如,8KB-6KB)。
然而,如本文中進一步描述,ERR資料(例如,ERR資料455)至一碼字之新增可降低與資料相關聯之有效錯誤率。例如,ERR資料455可係一已知資料單元值量,諸如一碼字之有效負載內之各種位置處之已知位元值之數目或已知位元值之群組之數目。可藉由一ERR組件(諸如,圖1中所示之ERR組件114)追蹤ERR資料之資料值以及其等在一碼字之有效負載內之特定位置。因而,在自記憶體讀取一特定碼字(例如,450-1)後,ERR組件(例如,114)可判定不正確之ERR資料455之該等資料單元(例如,判定為具有除預定已知值之外之一值之該等資料單元,諸如已從「0」翻轉至「1」(或反之亦然)之該等位元)且可校正經判定為不正確之該等資料單元。在數個實施例中,自記憶體讀取之一碼字之ERR資料455可在對有效負載執行一錯誤校正解碼操作(例如,經由錯誤校正組件112對使用者資料452及ERR資料455執行)之前被校正(例如,經由ERR組件114)。
在校正ERR資料455中之任何錯誤之後執行錯誤校正解碼操作有效地降低與有效負載相關聯之錯誤率。例如,若ERR資料455包括有效負載之25%(例如,一8KB有效負載之2KB)且一8KB頁具有500個失效位元之一平均值(對應於0.76%之BER),則在對有效負載執行ECC錯誤校正之前校正ERR資料455將導致針對8KB有效負載之375個失效位元之一平均值(對應於0.57%之BER),其係25%之BER降低。因此,儘管對應於有效負載之使用者資料量減少(例如,在此實例中,從8KB至6KB),對應於使用者資料452之位元錯誤之數量相比於對應於使用者資料442之位元錯誤之數量減少(例如,從500至375),此可提供錯誤之數量可由一特定ECC組件(例如,ECC 112)校正之一增大的可能性。
圖4C繪示一碼字450-2,其具有:一有效負載,其包括一使用者資料452量及一ERR資料455量;及一對象包裝程式,其包括錯誤校正資料454。碼字450-2之部分452、455、454之大小與碼字450-1之對應部分之大小相同。然而,碼字450-2繪示在使用者資料452間分佈ERR資料455。實施例不限於一特定ERR資料量及/或在使用者資料間之一特定分佈。例如,錯誤資料部分455可在使用者資料452間均勻地分佈;然而,錯誤資料455可係位於有效負載內之一特定位置(例如,在前方、後方或中間)處之一系列相鄰位元。又,實施例不限於ERR資料455之一特定資料值及/或一特定資料型樣。例如,ERR資料455之資料單元可皆具有一相同資料值(例如,皆係「1」或皆係「0」),或ERR資料455之資料單元可係一隨機資料型樣。
在數個實施例中,一控制器(例如,圖1中所描述之控制器108)可經組態以判定將包含於一特定碼字中之ERR資料(例如,圖4B及圖4C中所繪示之455)量。例如,控制器可經組態以基於一所要BER降低百分比判定ERR資料455量。所要BER降低百分比可關於一記憶體(例如,記憶體110)之一頁大小而定義。例如,若所要BER降低百分比係50%且記憶體之頁大小係8KB,則控制器可將ERR資料455之量判定為4KB(例如,8KB之50%)。然而,本發明之實施例不限於判定ERR資料455之量之一特定方法。與判定ERR資料455量相關聯之數個方法將進一步在圖5中描述。
在數個實施例中,控制器可經組態以將包括ERR資料之一碼字(例如,碼字450-1/450-2)寫入至一群組的多位階記憶體胞(MLC)。在一些此等實施例中,控制器可經組態以判定碼字將寫入之該群組的多位階記憶體胞之頁(例如,上部頁、下部頁等)。在數個實施例中,控制器可經組態以 基於碼字將寫入之對應於一群組之胞之邏輯頁而判定將包含於碼字中之ERR資料(例如,455)量。例如,控制器可經組態以判定與對應於該群組之多位階記憶體胞之各自頁相關聯之一錯誤率,且回應於經判定錯誤率而判定將包含於碼字中之ERR資料量。作為一實例,控制器可判定無ERR資料將包含於一特定碼字中(例如,若對應經判定錯誤率在錯誤校正組件之校正能力內)。
圖5繪示根據本發明之數個實施例之與錯誤率降低相關聯之一設備580之一部分之一功能方塊圖。圖5中所繪示之設備包含一錯誤率降低512-1(ERR編碼器)、一錯誤校正編碼器514-1(ECC編碼器)、一記憶體510、一錯誤率降低解碼器512-2(ERR解碼器)及一錯誤校正解碼器514-2(ECC解碼器)。
ERR編碼器512-1可包含例如經組態以用一ERR資料(例如,圖4B及圖4C中所示之ERR資料455)量編碼傳入的使用者資料(例如,自一主機接收且待寫入至記憶體510之使用者資料)之電路。如圖1中所示,ERR編碼器可係控制器(例如,108)之一組件,該ERR編碼器可判定是否用ERR資料編碼經接收使用者資料,且若待新增ERR資料,則判定新增至傳入的使用者資料之一ERR資料量(例如,在一特定碼字內,待由ERR資料取代之一使用者資料量)。ERR解碼器512-2可包含經組態以解碼自記憶體510讀取之碼字內之ERR資料之電路。ERR解碼器512-2可知道一碼字內之ERR資料單元之資料值及位置,使得ERR解碼器512-2可判定自記憶體510讀取之碼字內之ERR資料單元之任何者是否係不正確的且可校正經判定為不正確之該等資料單元。在數個實施例中,對應於一讀取碼字之ERR資料在讀取碼字經歷一錯誤校正(例如,ECC)解碼操作(例如,經由ECC解碼器 514-2)之前被解碼,此可如本文中描述般降低與碼字相關聯之一有效錯誤率。
ECC編碼器514-1可包括一錯誤校正電路,該錯誤校正電路經組態以根據一特定錯誤校正碼(諸如,一BCH碼、一RS碼及一LDPC碼,以及其他類型之錯誤校正碼)編碼資料。ECC編碼器514-1可例如將同位位元新增至接收至其之資料(例如,使用者資料及ERR資料)。ECC解碼器514-2可解碼接收至其,且可能已經歷經由ERR解碼器512-2之ERR解碼之資料。
在圖5中,箭頭503-1表示傳入資料。例如,傳入資料503-1可係來自一主機(例如,圖1中描述之102)之使用者資料。雖然未展示,但ERR編碼器512-1可包含一緩衝器(例如,一頁緩衝器),該緩衝器經組態以儲存對應於記憶體510之一頁大小(例如,8KB)且待寫入至記憶體之一資料量。在操作中,若ERR編碼器512-1判定一ERR資料量待新增至一傳入使用者資料量,則ERR編碼器可經組態以用小於頁大小(例如,在此實例中小於8KB)之一使用者資料量來填充頁緩衝器且用對應ERR資料量來填充頁緩衝器之一剩餘部分。作為一實例,頁緩衝器可能75%用使用者資料(例如,6KB)填充且25%用ERR資料填充。
判定是否用ERR資料編碼傳入使用者資料可基於各種因素。例如,判定是否用ERR資料編碼傳入使用者資料可基於與將寫入之記憶體(例如,510)或其之一部分相關聯之BER(例如,與胞之一特定區塊、字線等相關聯之一BER)。作為一實例,一控制器(例如,108)可追蹤與記憶體510相關聯之(若干)BER,且可經組態以回應於一BER達到或超過一臨限位準而實施ERR資料功能性。例如,臨限位準可係基於錯誤校正組件(例如,112或514-1/514-2)之一ECC能力。在數個實施例中,判定是否用 ERR資料來編碼傳入使用者資料可係基於資料待寫入至之記憶體胞之一實體位置。例如,由於記憶體胞之一區塊之一邊緣處或附近之字線常可經歷較高BER,所以可基於待寫入之字線是否位於一陣列之一邊緣處或附近而對新增ERR資料作出一判定。
判定用以編碼傳入使用者資料之ERR資料量亦可係基於各種因素。例如,ERR編碼器512-1可經組態以基於錯誤校正編碼器/解碼器514-1/514-2之一錯誤校正能力判定ERR資料量。例如,可基於充分降低有效BER,使得其滿足或超過ECC能力所必要之ERR資料量而判定待新增之ERR資料量。如上文描述,在數個實施例中,ERR資料量可係對應於記憶體之一頁大小之一特定(例如,預定)百分比。然而,實施例不限於用於判定用來編碼傳入使用者資料之ERR資料量之一特定方法。
在經由ERR編碼器512-1用ERR資料編碼該傳入使用者資料量之後,經ERR編碼資料可經由ECC編碼器514-1用錯誤校正資料(例如,ECC)來編碼,以保護碼字有效負載(例如,使用者資料及ERR資料)。經ERR及ECC編碼碼字可接著寫入至記憶體510(例如,至記憶體之一頁)。回應於一讀取命令,自記憶體510讀取之資料(例如,包括由ERR編碼器512-1及ECC編碼器514-1編碼之資料之一碼字)可由ERR解碼器512-2及ECC解碼器514-2解碼。根據數個實施例,讀取碼字在由ECC解碼器514-2解碼之前經由ERR解碼器512-2解碼。在碼字由ERR解碼器512-2接收後,ERR解碼器512-2校正經判定為具有不正確資料值之該ERR資料量之該等資料單元。如上文描述,ERR資料包括碼字內之已知位置處之已知資料值。因而,ERR解碼器512-2可自動校正碼字內之自寫入至記憶體起已翻轉之任何ERR位元。作為一實例,ERR解碼器512-2可將已知ERR資料型樣儲存 於一緩衝器中,可比較已知資料型樣與自記憶體510讀取之ERR資料型樣,且可在將經ERR解碼碼字提供至ECC解碼器514-2之前翻轉經判定為不正確之碼字之該等ERR位元。箭頭503-2表示傳出資料。
在自ERR解碼器512-2接收經ERR解碼碼字後,ECC解碼器514-2可對碼字(其包括連同經解碼(例如,經校正)ERR資料一起自記憶體510讀取之使用者資料)執行一錯誤校正解碼操作。錯誤校正解碼操作可包含使用ECC同位位元之ECC解碼器514-2,使用者資料及ERR資料經由ECC編碼器514-1用該等ECC同位位元編碼來校正碼字內之任何不正確位元。由於碼字之ERR資料已經校正,所以與碼字相關聯之有效BER降低。例如,經ERR解碼碼字內之位元錯誤之數目與碼字先前未經歷ERR解碼操作之情況相比將已減少。減少碼字內之位元錯誤之數目可藉由為ECC解碼器514-2提供能夠校正碼字之使用者資料部分內之所有不正確位元之一經改良可能性而降低一不可校正ECC錯誤之可能性。
儘管已在本文中繪示及描述特定實施例,但一般技術者將暸解,經計算以達成相同結果之一配置可取代展示之特定實施例。本發明旨在涵蓋本發明之各種實施例之調適或變動。應瞭解,已依一繪示性方式而非一限制性方式進行以上描述。熟習此項技術者在檢視上述描述後將明白上述實施例之組合及未在本文中具體描述之其他實施例。本發明之各種實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附發明申請專利範圍連同此等發明申請專利範圍所授權之等效物之全範圍判定本發明之各種實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,將各種特徵一起集合於一單一實施例中。本發明之此方法不應解釋為反映以下意圖:本發明之 所揭示實施例必須使用多於各發明申請專利範圍中所明確陳述之特徵。實情係,如以下發明申請專利範圍反映,發明標的物可少於一單一所揭示實施例之所有特徵。因此,以下發明申請專利範圍在此併入實施方式中,其中每一發明申請專利範圍獨立作為一單獨實施例。
100‧‧‧運算系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧主機介面
108‧‧‧控制器
110‧‧‧記憶體裝置/記憶體
112‧‧‧錯誤校正(ECC)組件
114‧‧‧錯誤率降低(ERR)組件

Claims (19)

  1. 一種操作記憶體之方法,其包括:將一錯誤率降低(error rate reduction,ERR)資料量新增至一經接收使用者資料量;及將該使用者資料量連同該ERR資料量一起寫入至一記憶體,其中該ERR資料量包含在該使用者資料量之間散置(interspersed)之該ERR資料量之複數個部分,使得該ERR資料量之該複數個部分之至少一者位於該使用者資料量之兩個部分之間;在將該使用者資料量連同該ERR資料量一起寫入至該記憶體之前,用錯誤校正碼(error correction code,ECC)資料編碼該ERR資料量及該使用者資料量;將該使用者資料量連同該ERR資料量及該ECC資料一起作為一碼字寫入至該記憶體;自該記憶體讀取該碼字;及在對自該記憶體讀取之該使用者資料量及該ERR資料量執行一ECC解碼操作之前:判定不正確之該ERR資料量之該等資料單元;及校正經判定為不正確之該ERR資料量之該等資料單元。
  2. 如請求項1之方法,其中該ERR資料量係一已知量,且其中將該已知ERR資料量新增至該經接收使用者資料量包含在該經接收使用者資料量間均勻地分佈該已知ERR資料量。
  3. 如請求項2之方法,其中該ERR資料量之各資料單元具有一相同二進位資料值。
  4. 如請求項1之方法,其中該方法包含至少部分地基於以下項判定該ERR資料量:一控制器之一錯誤校正能力;及該記憶體之一經判定位元錯誤率(BER)。
  5. 如請求項1之方法,其中該ERR資料量及該使用者資料量之一總和對應於該記憶體之一頁大小,且其中該ERR資料量經判定為該頁大小之一特定百分比。
  6. 如請求項1之方法,其中該方法包含對自該記憶體讀取之該使用者資料量及該經校正ERR資料量執行該ECC解碼操作。
  7. 如請求項6之方法,其中該方法包含在對自該記憶體讀取之該使用者資料量及該經校正ERR資料量執行該ECC解碼操作之後,在將該經ECC解碼使用者資料量傳送至一主機之前自該經ECC解碼使用者資料量移除該經ECC解碼ERR資料量。
  8. 一種用於錯誤率降低之設備,其包括:一記憶體;及 一控制器,其經組態以:基於一所要位元錯誤率降低(ERR)量將一ERR資料量判定為待以一經接收使用者資料量之一部分替換;將該ERR資料量新增至該經接收使用者資料量,此在將該ERR資料量及該使用者資料量寫入至該記憶體之前,其中該ERR資料量包含在該使用者資料量之間散置之該ERR資料量之複數個部分,使得該ERR資料量之該複數個部分之至少一者位於該使用者資料量之兩個部分之間;及在對該使用者資料量執行一錯誤校正操作之前:判定不正確之該ERR資料量之該等資料單元;及校正經判定為不正確之該ERR資料量之該等資料單元。
  9. 如請求項8之設備,其中該控制器經組態以將該ERR資料量及該使用者資料量作為一資料頁寫入至該記憶體,該資料頁具有一特定頁大小,且其中將該ERR資料量新增至該使用者資料量減少對應於該資料頁之一使用者資料量,使得維持該特定頁大小。
  10. 如請求項8之設備,其中該ERR資料量係具有多個已知資料值之複數個資料單元。
  11. 一種用於錯誤率降低之設備,其包括:一記憶體;及一控制器,其經組態以: 將一經判定錯誤率降低(ERR)資料量新增至一經接收使用者資料量,其中該ERR資料量包含在該使用者資料量之間散置之該ERR資料量之複數個部分,使得該ERR資料量之該複數個部分之至少一者位於該使用者資料量之兩個部分之間;將該經判定ERR資料量及該使用者資料量連同對應錯誤校正資料一起作為一碼字寫入至該記憶體;自該記憶體讀取該碼字;在使用該錯誤校正資料以對該使用者資料量及該ERR資料量執行一錯誤校正操作之前:判定不正確之該ERR資料量之該等資料單元;及校正經判定為不正確之該ERR資料量之該等資料單元;及使用該錯誤校正資料對該使用者資料量及該經校正ERR資料量執行該錯誤校正操作。
  12. 如請求項11之設備,其中該控制器包括:一ERR編碼器,其經組態以將該經判定ERR資料量新增至該使用者資料量;及一ERR解碼器,其經組態以判定不正確之該ERR資料量之該等資料單元且校正經判定為不正確之該ERR資料量之該等資料單元。
  13. 如請求項11之設備,其中該控制器經組態以基於該碼字寫入至之該記憶體之至少一部分之一位元錯誤率判定該ERR資料量。
  14. 如請求項11之設備,其中該錯誤校正資料包括多個同位位元。
  15. 如請求項11之設備,其中該錯誤校正資料包含一低密度同位檢查(LDPC)碼。
  16. 如請求項11之設備,其中該錯誤校正資料包含選自包括以下項之群組之一錯誤校正碼(ECC):一博斯-查德胡里-霍昆格姆(BCH)碼;及一李德-所羅門(RS)碼。
  17. 如請求項11之設備,其中該控制器經組態以至少部分地基於該記憶體之一頁大小判定該ERR資料量。
  18. 如請求項11之設備,其中該控制器經組態以將該經判定ERR資料量新增至該經接收使用者資料量,使得該ERR資料在該經接收使用者資料量間均勻地分佈。
  19. 如請求項11之設備,其中該使用者資料量及該ERR資料量之一總和等於該記憶體之一頁大小。
TW106105418A 2016-02-18 2017-02-18 操作記憶體之方法及用於錯誤率降低之設備 TWI682399B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/046,666 US10223198B2 (en) 2016-02-18 2016-02-18 Error rate reduction
US15/046,666 2016-02-18

Publications (2)

Publication Number Publication Date
TW201732833A TW201732833A (zh) 2017-09-16
TWI682399B true TWI682399B (zh) 2020-01-11

Family

ID=59626363

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106105418A TWI682399B (zh) 2016-02-18 2017-02-18 操作記憶體之方法及用於錯誤率降低之設備

Country Status (5)

Country Link
US (1) US10223198B2 (zh)
EP (1) EP3417457B1 (zh)
CN (1) CN108701491B (zh)
TW (1) TWI682399B (zh)
WO (1) WO2017142706A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649841B2 (en) * 2018-03-05 2020-05-12 Alibaba Group Holding Limited Supporting multiple page lengths with unique error correction coding via galois field dimension folding
CN111026675B (zh) * 2019-12-06 2022-02-15 华中科技大学 一种高效的闪存数据刷新方法及基于闪存的固态硬盘
US11106532B1 (en) * 2020-04-29 2021-08-31 Micron Technology, Inc. Selective sampling of a data unit during a program erase cycle based on error rate change patterns

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147954A1 (en) * 2001-03-22 2002-10-10 Shea John M. Method and coding means for error-correction utilizing concatenated parity and turbo codes
US20030061551A1 (en) * 2000-02-12 2003-03-27 Kim Dae Young Error correction coding method for a high-density storage media
US20030131304A1 (en) * 1998-08-19 2003-07-10 Jifeng Li Error-correcting encoding apparatus
US6721919B1 (en) * 1999-04-06 2004-04-13 International Business Machines Corporation Shared encoder used in error correction having multiple encoders of different maximum error correction capabilities
US20080282130A1 (en) * 2007-04-05 2008-11-13 Lg Electronics Inc. Digital broadcasting system and method of processing data
US20100166008A1 (en) * 2007-02-23 2010-07-01 Akinori Hashimoto Digital data transmitting apparatus and digital data receiving apparatus
US7934143B1 (en) * 2006-04-24 2011-04-26 Marvell International Ltd. Parity insertion for inner architecture
US20130305120A1 (en) * 2012-05-14 2013-11-14 Osamu Torii Memory controller, storage device and error correction method
US20140115427A1 (en) * 2012-10-24 2014-04-24 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US8924816B2 (en) * 2010-06-29 2014-12-30 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US20150074487A1 (en) * 2013-09-12 2015-03-12 Seagate Technology Llc Memory Device with Variable Code Rate
TWI506634B (zh) * 2014-11-06 2015-11-01 Phison Electronics Corp 資料存取方法、記憶體控制電路單元及記憶體儲存裝置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3250260B2 (ja) 1992-06-17 2002-01-28 ソニー株式会社 画像データ記録装置及び画像データ再生装置
JP4213338B2 (ja) * 2000-12-22 2009-01-21 富士通マイクロエレクトロニクス株式会社 リアルタイムレコーディングシステム及びリアルタイムレコーディング方法
US20030005385A1 (en) * 2001-06-27 2003-01-02 Stieger Ronald D. Optical communication system with variable error correction coding
FI114752B (fi) * 2003-05-30 2004-12-15 Nokia Corp Valosähköinen elementti ja sellaisen käsittävä päätelaite
JP4237109B2 (ja) * 2004-06-18 2009-03-11 エルピーダメモリ株式会社 半導体記憶装置及びリフレッシュ周期制御方法
US7783935B2 (en) 2006-06-02 2010-08-24 Hewlett-Packard Development Company, L.P. Bit error rate reduction buffer
US8055982B2 (en) 2007-02-21 2011-11-08 Sigmatel, Inc. Error correction system and method
US8127211B2 (en) 2007-06-20 2012-02-28 Texas Instruments Incorporated Adding known data to CRC processing without increased processing time
KR20100104623A (ko) 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
US8130544B2 (en) 2009-08-17 2012-03-06 Skymedi Corporation Method of reducing bit error rate for a flash memory
US8533564B2 (en) 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8887022B2 (en) 2011-03-04 2014-11-11 Infineon Technologies Austria Ag Reliable data transmission with reduced bit error rate
WO2013044005A1 (en) 2011-09-22 2013-03-28 Violin Memory, Inc. System and method for correcting errors in data using a compound code
KR101898150B1 (ko) * 2011-10-25 2018-09-13 에스케이하이닉스 주식회사 집적회로 칩 및 이를 포함하는 시스템
JP2013109567A (ja) * 2011-11-21 2013-06-06 Toshiba Corp ストレージデバイス及び誤り訂正方法
US9058867B2 (en) * 2012-06-01 2015-06-16 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
US9257203B2 (en) * 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US8656255B1 (en) 2013-03-15 2014-02-18 Avalanche Technology, Inc. Method for reducing effective raw bit error rate in multi-level cell NAND flash memory
TWI520153B (zh) * 2013-11-05 2016-02-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
US9535785B2 (en) * 2014-01-17 2017-01-03 Macronix International Co., Ltd. ECC method for flash memory
CN110008248B (zh) * 2014-02-21 2023-07-28 创新先进技术有限公司 一种数据处理方法和装置
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131304A1 (en) * 1998-08-19 2003-07-10 Jifeng Li Error-correcting encoding apparatus
US6721919B1 (en) * 1999-04-06 2004-04-13 International Business Machines Corporation Shared encoder used in error correction having multiple encoders of different maximum error correction capabilities
US20030061551A1 (en) * 2000-02-12 2003-03-27 Kim Dae Young Error correction coding method for a high-density storage media
US20020147954A1 (en) * 2001-03-22 2002-10-10 Shea John M. Method and coding means for error-correction utilizing concatenated parity and turbo codes
US7934143B1 (en) * 2006-04-24 2011-04-26 Marvell International Ltd. Parity insertion for inner architecture
US20100166008A1 (en) * 2007-02-23 2010-07-01 Akinori Hashimoto Digital data transmitting apparatus and digital data receiving apparatus
US20080282130A1 (en) * 2007-04-05 2008-11-13 Lg Electronics Inc. Digital broadcasting system and method of processing data
US8924816B2 (en) * 2010-06-29 2014-12-30 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US20130305120A1 (en) * 2012-05-14 2013-11-14 Osamu Torii Memory controller, storage device and error correction method
US20140115427A1 (en) * 2012-10-24 2014-04-24 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US20150074487A1 (en) * 2013-09-12 2015-03-12 Seagate Technology Llc Memory Device with Variable Code Rate
TWI506634B (zh) * 2014-11-06 2015-11-01 Phison Electronics Corp 資料存取方法、記憶體控制電路單元及記憶體儲存裝置

Also Published As

Publication number Publication date
CN108701491B (zh) 2022-04-05
US20170242747A1 (en) 2017-08-24
EP3417457B1 (en) 2021-08-25
WO2017142706A1 (en) 2017-08-24
EP3417457A4 (en) 2019-08-28
CN108701491A (zh) 2018-10-23
US10223198B2 (en) 2019-03-05
EP3417457A1 (en) 2018-12-26
TW201732833A (zh) 2017-09-16

Similar Documents

Publication Publication Date Title
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
KR102179228B1 (ko) 메모리에서의 티어드 오류 정정 코드(ecc) 동작
US9405622B2 (en) Shaping codes for memory
US11243838B2 (en) Methods and apparatuses for error correction
CN113064547B (zh) 有局部顺序信息的校验矩阵的保护的数据存取方法及设备
US9405624B2 (en) On-die error detection and correction during multi-step programming
CN110462593B (zh) 用于提供冗余错误校正的存储器中的错误校正码操作
TWI682399B (zh) 操作記憶體之方法及用於錯誤率降低之設備
US11106518B2 (en) Failure mode study based error correction
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding