TW200823666A - Soft-input soft-output decoder for nonvolatile memory - Google Patents

Soft-input soft-output decoder for nonvolatile memory Download PDF

Info

Publication number
TW200823666A
TW200823666A TW096134734A TW96134734A TW200823666A TW 200823666 A TW200823666 A TW 200823666A TW 096134734 A TW096134734 A TW 096134734A TW 96134734 A TW96134734 A TW 96134734A TW 200823666 A TW200823666 A TW 200823666A
Authority
TW
Taiwan
Prior art keywords
data
bits
probability
output
volatile memory
Prior art date
Application number
TW096134734A
Other languages
Chinese (zh)
Other versions
TWI353521B (en
Inventor
Yigal Brandman
Kevin M Conley
Original Assignee
Sandisk Corp
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
Priority claimed from US11/536,286 external-priority patent/US7818653B2/en
Priority claimed from US11/536,327 external-priority patent/US7904783B2/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200823666A publication Critical patent/TW200823666A/en
Application granted granted Critical
Publication of TWI353521B publication Critical patent/TWI353521B/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/43Majority logic or threshold decoding
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

In a nonvolatile memory system, data is read from a memory array and used to obtain likelihood values, which are then provided to a soft-input soft-output decoder. The soft-input soft-output decoder calculates output likelihood values from input likelihood values and from parity data that was previously added according to an encoding scheme.

Description

200823666 九、發明說明: 【發明所屬之技術領域】 本發明係關於非揮發性記憶體系統及操作非揮發性記憶 體系統之方法。 【先前技術】 非揮發性記憶體系統用於各種應用。某些非揮發性記憶 體系統嵌入一更大型系統内,諸如一個人電腦。其他非揮 發性記憶體系統係可移除地連接至一主機系統並可在不同 主機系統之間互換。此類可移除記憶體系統範例包括記憶 卡與USB快閃驅動器。依據若干熟知的標準,已商用實施 包含非揮發性記憶卡的電子電路卡。記憶卡係與個人電 腦、蜂巢式電話、個人數位助理(pDA)、數位靜態相機、 數位攝影機、可攜式音訊播放器及其他主機電子裝置一起 使用以儲存大量資料。此類卡通常包含一可再程式化非揮 lx 1'生半V體c憶體單元陣列以及一控制器,該控制器控制 並支援該記憶體單元陣列之操作並介接卡所連接的一主 機。若干同一類型的卡可在設計用以容納該類型卡的主機 卡槽中互換。然而,許多電子卡標準的發展已建立不同類 型的卡,其在各種程度上彼此不相容。依據一標準所製造 的卡通常不可用於設計成與另一標準之卡一起操作的主 機。纟己憶卡標準包含PC卡、CompactFlash™卡(CF™卡)、 SmartMediaTM卡、多媒體卡(MMCTM)、安全數位(sd)卡、 miniSDTM卡、用戶身份模組(SIM)、Memory Stick™、 Memory Stick Duo卡及microSD/TransFlashTM記憶體模組標 124726.doc 200823666 準。市面上可買到若干有SanDisk公司之商標” Cruzer⑧」 的USB快閃驅動器產品。USB快閃驅動器一般更大且形狀 不同於上述記憶卡。 儲存於一非揮發性記憶體系統内之資料可能在讀取資料 時包含錯誤位元。傳統重建損壞資料的方法包括應用錯誤 _ 校正碼(ECC)。在將資料寫入記憶體系統時,簡單的錯誤 • 权正碼藉由儲存額外同位位元來編碼資料,該等同位位元 將多個位元群組之同位設定至一所需邏輯值。若在儲存期 間資料出錯,則多個位元群組之同位可能變化。在從記憶 體系統讀取資料時,位元群組之同位係再次藉由ecc來計 算。因為資料損壞,所計算同位可能不匹配所需同位條 件’從而ECC可偵測到損壞。 ECC可具有至少二功能:錯誤偵測與錯誤校正。該些功 能之各功能之能力一般以可偵測為錯誤的並隨後校正之位 元數目來衡量。偵測能力可與校正能力相同或大於其。一 • 典型ECC可偵測的錯誤位減目高於其可校正的錯誤位元 數目。有時將一資料位元及同位位元集合稱為一字元。一 早期範例係(7,4)漢明碼,其能夠最多偵測每字元(在此範 , 例中7位元)兩個錯誤並能夠在此類七位元字元中校正一錯 - 誤。 更複雜的ECC可校正每字元一個以上之錯誤,但重建資 料在計算上變得急劇複雜。慣例係在某可接收較小錯誤回 復概率下回復資料。然而隨著錯誤數目不斷增加,可靠資 料回復之機率也在迅速減小或額外硬體及/或效能的相關 124726.doc 200823666 聯成本變得異常高。 在半導體記憶體裝置中,包括EEPROM系統,資料可表 不為電晶體之臨限電壓。一般而言,不同數位資料儲存值 對應於不同電壓範圍。若出於某些原因,在讀取操作之前 或期間’電壓位準偏離其程式化範圍,則會發生錯誤。該 錯誤可藉由ECC來偵測且在某些情況下可校正該些錯誤。 【發明内容】 一非揮發性記憶體陣列係連接至一解碼器,使得讀取自 該δ己fe體陣列之編碼資料係用於計算概率值,其係與儲存 於該記憶體陣列内的位元相關聯。此類解碼器之一範例係 一軟輸入軟輸出(SIS0)解碼器。該編碼資料可使用一高解 析度來讀取,該解析度指示與一資料位元相關聯之概率, 不僅疋该資料位元之邏輯值。例如,在一記憶體内將二進 制貪料編碼成+1/-1伏特之情況下,Ecc解碼器可使用實際 電壓讀取而非僅僅符號。概率值可推導自讀取值或其他來 源。概率值可作為一軟輸入而提供至一 SIS〇解碼器。該 SISO解碼器之輸出可藉由一轉換器而轉換成一硬輸出。該 硬輸出表示校正值。在某些情況下,一SIS0解碼器可採用 多個迭代來執行計算,直至滿足某預定條件。 在一非揮發性記憶體中,一高解析度讀取可藉由為個別 5貝取步驟選擇適當電壓,使得對於一特定臨限電壓函數之 一特疋部分比在另一部分而發生一更高密度讀取來獲得。 此挺供額外解析度用於關注區域,例如在臨限電壓函數具 有明顯重疊之處。 124726.doc 200823666 在一非揮發性域體巾,—解調㈣可將來自—記憶體 =列之電壓轉換成概率值。在將—個以上之位㈣存於- 單兀内之情況下’可針對各位元值獲得一單獨概率值。此 概率值可用作一SISO解碼器之一軟輸入。 【實施方式】 在許多非揮發性記憶體中,讀取自一記憶體陣列之資料 可能有錯。即,程式化至一記憶體陣列之輪入資料之個別 位元可能稍後讀取為在一不同邏輯值下。圖i顯示一指示 一記憶體單元狀態之實體參數(臨限值ντ)與該記憶體單元 可能程式化之邏輯值之間的關係。在此範例中,僅將二狀 態儲存於單元内。因而,單元儲存一位元資料。程式化至 邏輯0狀態之單元一般具有一臨限電壓,其高於在邏輯 1(未程式化)狀態下的單元。在一替代性方案中,邏輯1狀 態係記憶體單元之未程式化狀態。圖1之垂直軸指示基於 期望臨限電壓分佈在任一特定臨限電壓下讀取一單元之概 率。一第一概率函數係顯示用於程式化至邏輯1之單元而 一第二者係用於程式化至邏輯〇之單元。然而,該些函數 之間具有某種程度的重疊。在讀取此類單元過程中使用一 區別電壓VD。具有一低於Vd之臨限電壓之單元係視為在 狀態1下,而該等具有一高於VD之臨限電壓之單元係視為 在狀態〇下。如圖1所示,此可能並非始終正確。因為函數 之間的重疊,存在一非零概率,即將程式化至一邏輯1狀 態之一記憶體單元讀取為具有一大於vD之臨限電壓,故會 讀取為在一邏輯〇狀態下。同樣地,存在一非零概率,即 124726.doc -9- 200823666 將—程式化至一邏輯〇之一記憶體單元讀取為具有一邏輯j 狀態。 在函數之間的重疊由於若干原因而發生,包括記憶體陣 列内的實體缺陷以及稱後在記憶體陣列内進行程式化或讀 取操作對已程式化單元所造成之干擾。重疊還可能由於普 遍不能將大量單元保持於一極緊密臨限電壓範圍而發生。 特定程式化技術可允許臨限電壓函數變窄(具有更小的標 準偏差)。然而,此類程式化可花費更多時間。在某些記 憶體系統中,一個以上之位元係儲存於一記憶體單元内。 一般而言,期望在一記憶體單元内盡可能多地儲存位元。 為了有效率地使用可用臨限電壓範圍,用於相鄰狀態之函 數可能使得其明顯重疊。 非揮發性記憶體系統普遍採用ECC方法來克服在讀取自 一記憶體陣列之資料中所發生之錯誤。此類方法—般依據 一編碼系統從欲儲存於一記憶體陣列内之輸入資料中計算 某些額外ECC位元。其他ECC方案可採用—更複雜方式將 輸入資料映射至輸出資料。該㈣c位元—般連同輸入資 料一起儲存或可單獨儲存。該輸人資料與ECC位元猶後- 起從非揮發性記憶體中讀取且一 σ 、 解碼斋同時使用該資料及 ECC位元來檢查是否存在 ,^ ± 隹仕仃錯誕。在某些情況下,此類 ECC位元還可用於識別_屮 — 出錯位。該錯誤位元係接著藉 由改變其狀態(從"0”變. 瓮成1或從”丨"變成"〇")來加以校正。 將ECC位元附著至資斜仞-、 “ $枓位70亚非用以將資料儲存於-非揮 發性記憶體内之前編碼資 ^ 方式。例如,可依據一 I24726.doc 200823666 方案來編碼資料位元,該方案提供下列變換:〇〇至ij、 01至1100、10至ooiuu至⑽⑽。200823666 IX. Description of the Invention: [Technical Field] The present invention relates to a non-volatile memory system and a method of operating a non-volatile memory system. [Prior Art] Non-volatile memory systems are used in a variety of applications. Some non-volatile memory systems are embedded in a larger system, such as a personal computer. Other non-volatile memory systems are removably connected to a host system and can be interchanged between different host systems. Examples of such removable memory systems include memory cards and USB flash drives. Electronic circuit cards containing non-volatile memory cards have been commercially implemented in accordance with a number of well-known standards. Memory cards are used with personal computers, cellular phones, personal digital assistants (PDAs), digital still cameras, digital cameras, portable audio players, and other host electronics to store large amounts of data. Such a card typically includes a reprogrammable non-volatile 1x half-V body c memory cell array and a controller that controls and supports the operation of the memory cell array and interfaces with the card Host. Several cards of the same type can be interchanged in a host card slot designed to accommodate this type of card. However, the development of many electronic card standards has established different types of cards that are incompatible with each other to varying degrees. Cards manufactured according to a standard are generally not available for a host designed to operate with another standard card. The card standard includes PC card, CompactFlashTM card (CFTM card), SmartMediaTM card, multimedia card (MMCTM), secure digital (sd) card, miniSDTM card, user identity module (SIM), Memory StickTM, Memory. Stick Duo card and microSD/TransFlashTM memory module standard 124726.doc 200823666 A number of USB flash drives with the trademark "Certer8" from SanDisk are available on the market. USB flash drives are generally larger and different in shape from the above memory cards. Data stored in a non-volatile memory system may contain error bits when reading data. Traditional methods of reconstructing corrupted data include applying the error _ correction code (ECC). A simple error when writing data to a memory system • The weighted code encodes data by storing additional parity bits that set the parity of multiple bit groups to a desired logical value. If the data is incorrect during storage, the parity of multiple bit groups may change. When reading data from the memory system, the co-location of the bit group is again calculated by ecc. Because the data is corrupted, the calculated parity may not match the required parity condition' and the ECC can detect the damage. The ECC can have at least two functions: error detection and error correction. The capabilities of the various functions of these functions are generally measured by the number of bits that can be detected as erroneous and subsequently corrected. The detection capability can be the same or greater than the correction capability. • The typical ECC detectable error bit is reduced by more than the number of correctable error bits. A collection of data bits and parity bits is sometimes referred to as a character. An early example (7, 4) Hamming code that can detect up to two errors per character (in this case, 7 bits in the example) and can correct a mistake in such a seven-bit character. . More complex ECC can correct more than one error per character, but the reconstruction data becomes computationally complex. The convention is to reply to a message with a probability of receiving a small error. However, as the number of errors continues to increase, the chances of reliable data recovery are rapidly decreasing or the associated hardware and/or performance correlations become extremely high. In semiconductor memory devices, including EEPROM systems, the data can be used as a threshold voltage for the transistor. In general, different digital data storage values correspond to different voltage ranges. If for some reason, the voltage level deviates from its programmed range before or during the read operation, an error will occur. This error can be detected by the ECC and can be corrected in some cases. SUMMARY OF THE INVENTION A non-volatile memory array is coupled to a decoder such that encoded data from the delta-feet array is used to calculate a probability value associated with a bit stored in the memory array. Meta-associated. An example of such a decoder is a soft input soft output (SIS0) decoder. The encoded data can be read using a high resolution indicating the probability associated with a data bit, not only the logical value of the data bit. For example, in the case of encoding a binary material in a memory to +1/-1 volt, the Ecc decoder can use actual voltage reading instead of just symbols. Probability values can be derived from self-read values or other sources. The probability value can be provided as a soft input to an SIS〇 decoder. The output of the SISO decoder can be converted to a hard output by a converter. This hard output represents the correction value. In some cases, a SIS0 decoder may perform computations using multiple iterations until certain predetermined conditions are met. In a non-volatile memory, a high-resolution read can be achieved by selecting an appropriate voltage for an individual 5-step acquisition step such that a higher density occurs for one particular portion of a particular threshold voltage function than for another portion. Read to get. This is for extra resolution for areas of interest, such as where the threshold voltage function has significant overlap. 124726.doc 200823666 In a non-volatile domain towel, demodulation (4) can convert the voltage from the -memory = column into a probability value. In the case where more than one (4) is stored in the - unit, a separate probability value can be obtained for each element value. This probability value can be used as a soft input to a SISO decoder. [Embodiment] In many non-volatile memories, reading data from a memory array may be wrong. That is, individual bits of the wheeled data that are programmed into a memory array may be read later at a different logical value. Figure i shows the relationship between the physical parameter (premise ντ) indicating the state of a memory cell and the logical value that the memory cell may be stylized. In this example, only the two states are stored in the unit. Thus, the unit stores one bit of metadata. A unit that is programmed to a logic 0 state typically has a threshold voltage that is higher than the unit in a logic 1 (unprogrammed) state. In an alternative, the logic 1 state is the unprogrammed state of the memory cells. The vertical axis of Figure 1 indicates the probability of reading a cell at any particular threshold voltage based on the desired threshold voltage distribution. A first probability function is used to display units for programming to logic 1 and a second is used for programming to logic units. However, there is some degree of overlap between these functions. A different voltage VD is used in reading such a unit. A cell having a threshold voltage below Vd is considered to be in state 1, and such cells having a threshold voltage above VD are considered to be in state. As shown in Figure 1, this may not always be correct. Because of the overlap between functions, there is a non-zero probability that one of the memory cells is programmed to have a threshold voltage greater than vD, so it is read as a logic state. Similarly, there is a non-zero probability that 124726.doc -9-200823666 will be - stylized into a logical unit. The memory unit is read as having a logical j state. The overlap between functions occurs for a number of reasons, including physical defects in the memory array and the effects of stylized or read operations within the memory array on the programmed cells. Overlaps may also occur due to the inability to maintain a large number of cells in a very tight threshold voltage range. Specific stylization techniques allow the threshold voltage function to be narrowed (with a smaller standard deviation). However, such stylization can take more time. In some memory systems, more than one bit is stored in a memory unit. In general, it is desirable to store as many bits as possible within a memory cell. In order to use the available threshold voltage range efficiently, the functions for adjacent states may cause significant overlap. Non-volatile memory systems commonly employ ECC methods to overcome errors that occur in reading data from a memory array. Such methods generally rely on an encoding system to calculate certain additional ECC bits from input data to be stored in a memory array. Other ECC schemes can be used to map input data to output data in more complex ways. The (iv) c-bits are generally stored with the input data or can be stored separately. The input data and the ECC bit are read from the non-volatile memory and a σ, decoding, and the ECC bit are used to check whether the existence exists, and the ± 仃 仃 is wrong. In some cases, such ECC bits can also be used to identify the _屮-error bit. The error bit is then corrected by changing its state (from "0) to 11 or from "丨" to "〇"). Attaching the ECC bit to the slanting 仞-, "$ 枓 70 Asia and Africa is used to store data in the non-volatile memory before encoding. For example, the data can be encoded according to an I24726.doc 200823666 scheme. The bit, the scheme provides the following transformations: 〇〇 to ij, 01 to 1100, 10 to ooiuu to (10) (10).

圖2顯不將輸入資料儲存於一記憶體系統2⑽内之一範 例。輸入資料先由一 ECC:單元2〇1接收,該ECC單元包括一 編碼器203。該輸入資料可能係欲儲存於記憶體系統2〇〇内 之主機資料或可能係一記憶體控制器所產生之資料。圖2 之範例顯示四個輸入資料位元1001。編碼器203接著使用 一編碼方案從該等輸入資料位元來計算ECC位元(1 j丨i)。 編碼方案範例係產生ECC位元,其係用於選定資料位元 群組之同位位元。 接著將該等輸入資料位元與該等ECC位元二者發送至一 调變/解兩變單凡2〇5 ’其包括一調變器。調冑器浙將 C單元201所發送之數位資料轉換成一形式,該數位資 料採用該形式而被寫入一記憶體陣列2〇9内。在一方案 中’該數位資料係在複數個記憶體單元内轉換成複數個臨 限電壓值。因❿,用於在_記憶體單元内將數位資料轉換 成-儲存臨限電壓的各種電路可視為形成—調㈣。在圖 2之範例中,各記憶體單元保持_位元資料。因而,各記 丨思體早兀可具有在二範圍之一者内的一臨限電壓.,一範圍 心=逆輯1狀恶而另一範圍指定一邏輯"〇"狀態,如圖1 所示。儲存一邏辑,,〗” 、铒狀怨之記憶體單元具有一低於Vd (<Vd)之臨限電壓,而被左 、放 省存一邏軏"〇”狀態之記憶體單元具 有-大^Vd(>Vd)之臨限電壓。單元可程式化並驗證至一 高於^之標稱臨限電壓,以確保最少最初’在程式化至該 124726.doc -11- 200823666 等:邏輯狀態之單元之間存在某較佳間隔。 資科可儲存於記憶料列209内持續料間_ 時間期間’可能會發生各Figure 2 shows an example of storing input data in a memory system 2 (10). The input data is first received by an ECC: unit 2〇1, which includes an encoder 203. The input data may be host data stored in the memory system 2 or may be data generated by a memory controller. The example of Figure 2 shows four input data bits 1001. Encoder 203 then uses an encoding scheme to calculate ECC bits (1 j 丨 i) from the input data bits. The coding scheme example produces ECC bits that are used for the co-located bits of the selected data bit group. The input data bits and the ECC bits are then sent to a modulation/demodulation variable 2 〇 5 ′ which includes a modulator. The meter converts the digital data transmitted by the C unit 201 into a form, and the digital data is written into a memory array 2〇9 in this form. In one embodiment, the digital data is converted into a plurality of threshold voltage values in a plurality of memory cells. Because of this, various circuits for converting digital data into a storage threshold voltage in the _memory unit can be regarded as forming-modulation (4). In the example of Figure 2, each memory cell holds _bit data. Therefore, each of the minds can have a threshold voltage in one of the two ranges. One range of hearts = reverse series 1 and the other range specifies a logical "〇" state, as shown in the figure 1 is shown. Storing a logic, 〗 〖, 铒 之 memory unit has a threshold voltage lower than Vd (<Vd), and left, puts a memory unit in the state of storage Has a threshold voltage of -large ^Vd(>Vd). The unit can be programmed and verified to a nominal threshold voltage above ^ to ensure that there is at least a preferred interval between the units that are stylized to the 124726.doc -11-200823666, etc.: logic state. The fund can be stored in the memory column 209 for a continuous period of time _ time period may occur

特疋吕之,涉及程式化及讀取之操作可能要求以 弋©加電塵至子元線及位元線,使得會影響其他先前 程式化單元。此類干擾在裝置尺寸減小使得相鄰單元之間 的相互作用較明顯之情況下特別#遍。電荷還可能在較長 時間期間丢失。此類資料保持失效還可引起資料在讀取時 變化。由於此類變化’可能讀出資料位元而具有不同於最 初程式化之資料位元之狀態。在圖2之範例中,一輸入資 料位元2U係讀取為具有一小於Vd(<Vd)之臨限值,而最初 其係寫入具有一大於VD(>VD)之臨限值。 該等記憶體單元之臨限電壓係在調變/解調變單元205内 由一解調變器213而轉換成資料位元。此係該調變器所執 行之程序之反轉。解調變器213可包括感應放大器,其從 記憶體陣列209内的一記憶體單元讀取一電壓或電流並從 該凟取中推導該單元之狀態。在圖2之範例中,一具有一 小於VD(<VD)之臨限電壓之記憶體單元提供一解調變輸出 πιπ而一具有一大於vD(>vD)之臨限電壓之記憶體單元提供 一解調變輸出"〇”。此提供所示的輸出序列J J 〇 i J j i i。此序 列之第二位元208由於被儲存於記憶體陣列209内出錯。 解調變器213之輸出係發送至在ECC單元201内的一解碼 器215。解碼器215根據資料位元及ECC位元來決定是否存 在任何錯誤。若存在在該編碼之校正能力範圍的小量錯 124726.doc -12- 200823666 誤、人正該專錯誤。若存在大量錯誤,則可識別該等錯 1、法校正,假如該等錯誤在該編碼之制能力内。 :錯:數目超過該編喝之偵測能力,則無法制到該等錯 =戈可能造成-錯誤校正。在圖2之範例中,在該第二 内的錯誤得利測並校正。此從解碼器215提供一輸 出(么01) #等同於該輸入序列。記憶體系統綱之解碼係 視為硬輸入硬輸出魅 '、 出解馬因為解碼器215僅接收表示輸入In particular, the operations involving stylization and reading may require the addition of power to the sub- and line lines to affect other previously stylized units. Such interference is particularly frequent in the case where the size of the device is reduced such that the interaction between adjacent units is more pronounced. The charge may also be lost over a longer period of time. Failure to maintain such data can also cause data to change as it is read. Since such a change 'is likely to read the data bit, it has a different state than the originally stylized data bit. In the example of Figure 2, an input data bit 2U is read to have a threshold less than Vd (<Vd), and initially its write has a threshold greater than VD (>VD). . The threshold voltages of the memory cells are converted into data bits by a demodulator 213 in the modulation/demodulation transform unit 205. This is a reversal of the program performed by the modulator. Demodulation transformer 213 can include a sense amplifier that reads a voltage or current from a memory cell within memory array 209 and derives the state of the cell from the capture. In the example of FIG. 2, a memory cell having a threshold voltage less than VD (<VD) provides a demodulated output πιπ and a memory having a threshold voltage greater than vD (>vD) The unit provides a demodulated output "〇. This provides the output sequence JJ 〇i J jii shown. The second bit 208 of this sequence is corrupted by being stored in the memory array 209. Demodulation 213 The output is sent to a decoder 215 in the ECC unit 201. The decoder 215 determines if there are any errors based on the data bit and the ECC bit. If there is a small error in the range of correction capabilities of the code 124726.doc - 12- 200823666 Mistakes, people are wrong. If there are a large number of errors, you can identify the error 1, the law correction, if the errors are within the ability of the coding system: Error: the number exceeds the detection of the drink Capability, it is impossible to make such a mistake = Ge may cause - error correction. In the example of Figure 2, the error in the second is measured and corrected. This provides an output from the decoder 215 (?01) # Equivalent to the input sequence. The decoding of the memory system is considered Input hard output Charm ', a solution of horses because the decoder 215 receives only the input represents

貝,位几與ECC位元之資料位元,且解碼器215輸出一校 正後貧料位元序列,其對應於輪入資料位元(或在錯誤數 目過高情況下無法提供一輸出)。 圖3及4顯不記憶體系統2〇〇之一替代性記憶體系統。圖3 顯示顯示類似於圖1之該等功能之功能,其中VD=〇,低於 VD之6«限電壓表示邏輯〇而高於%之電壓表示邏輯1。取 代f =單電壓¥〇將臨限電壓劃分成二不同範圍,此處 該等臨限電壓係由實際電壓數來指示。對應於邏輯T之 函數係在G伏特以上居中而對應於邏輯,τ之函數係在〇伏 特以下居中。 圖示一記憶體系統421,錢用—類似於記憶體系統 之貝/料儲存程序(使用相同輸入資料位元與ECC位元), ,-不”同讀取程序。特定言之,取代簡單決定一臨限電壓 疋否超過或低於一特定值,記憶體系統421讀取臨限電 壓如圖3所示。應明白,不一定讀取實際臨限電壓。可 使用其他單元操作構件來儲存並檢索資料(例如電流感 應)。電壓感應係僅用作一範例。一般而言,臨限電壓係 124726.doc -13 - 200823666 指一電晶體接通之一閘極電壓。圖4顯示一讀取發生,其 比先前辄例提供更詳細的資訊。此可視為一比圖2之讀取 具有一更南解析度(及一解析超過用於程式化之狀態之解 析度)之讀取。如先前範例,錯誤在讀取資料内發生。此 處,對應於該等第二及第三位^之讀數出錯。該等第二及 第三位70係邏輯"〇"並曾藉由程式化一單元來具有一小於 VD之臨限電壓來儲存,但該等單元係讀取為具有臨限電壓 0.05伏特及〇·ι〇伏特,其係高於Vd(Vd==〇伏特卜 由系列項取操作從圖4之記憶體陣列423所讀取之原始 電壓係發送至在一調變/解調變電路内的一解調變器 425。該等原始電壓具有類比至數位轉換之解析度所支配 的有限解析度。此處,原始資料係轉換成概率資料。特 定言之,將各單元讀數轉換成一對應位元係1或0之概率。 來自該記憶體陣列之該等讀數系列(〇·75、〇 〇5、〇1〇、 〇·=、1,25、^、3·0及0·5伏特)不僅可指示單元狀態,而 且還可用於提供關於該單元的—確定程度。此可表示為過 去使用一特定位元程式化一記憶體單元之一概率。因而, 接近0伏特之讀數可提供較低概率值,而遠離0伏特之讀數 提供更高概率值。所示概率值係對數概率比(如下所詳細 解釋)。此對於在-邏輯〇狀態之單元提供負數而對於在一 邏輯1狀態之單元提供正數,數字大小指示正確識別狀態 之概率。該等第二及第三概率值(〇1、〇·2)指示邏輯”"。 4等第二及第三值指示相當低的概率。 將概率值發送至在-ECC單元431内的一解碼器㈣内 124726.doc -14- 200823666 (在某些情況下,從原始值獲得概率值可視為在該解碼器 内執行)。解碼器429在概率值上執行解碼操作。此類解碼 器可視為一軟輸入解碼器。一般而言,軟輸入係指一輸 入,其包括關於欲解碼資料之某些品質資訊。用作一軟輸 入之額外資訊一般使一解碼器獲得更佳結果。一解碼器可 使用一軟輸入來執行解碼計算以提供計算概率值作為一輸 出。此係視為一軟輸出且此類解碼器係視為一軟輸入軟輸The bit, the bit and the data bit of the ECC bit, and the decoder 215 outputs a corrected post-poor bit sequence corresponding to the rounded data bit (or an output cannot be provided if the number of errors is too high). Figures 3 and 4 show an alternative memory system of the memory system. Figure 3 shows a function similar to the functions of Figure 1, where VD = 〇, 6_limit voltage below VD indicates logic 〇 and voltage above % indicates logic 1. Substituting f = single voltage ¥ 划分 divides the threshold voltage into two different ranges, where the threshold voltages are indicated by the actual voltage number. The function corresponding to the logic T is centered above G volts and corresponds to logic, and the function of τ is centered below 〇V. A memory system 421 is illustrated, which is similar to the memory system's shell/material storage program (using the same input data bits and ECC bits), and - does not read the program. In particular, instead of simple Determining whether a threshold voltage exceeds or falls below a certain value, the memory system 421 reads the threshold voltage as shown in Figure 3. It should be understood that the actual threshold voltage is not necessarily read. Other unit operating members may be used for storage. And to retrieve data (such as current sensing). The voltage sensing system is only used as an example. In general, the threshold voltage system 124726.doc -13 - 200823666 refers to a gate voltage of a transistor connected. Figure 4 shows a reading The occurrence occurs, which provides more detailed information than the previous example. This can be seen as a read that has a more south resolution than the read of Figure 2 (and a resolution that exceeds the resolution for the stylized state). In the previous example, the error occurred in the read data. Here, the readings corresponding to the second and third digits are incorrect. The second and third digits are logical "〇" Unit a unit to have a smaller than VD The voltage is stored, but the cells are read to have a threshold voltage of 0.05 volts and 〇·ι〇 volts, which is higher than Vd (Vd==〇伏特卜 is taken from the memory array 423 of FIG. 4 by the series of items. The original voltage read is sent to a demodulation transformer 425 within a modulation/demodulation transformer circuit. The original voltages have a finite resolution dominated by the resolution of the analog to digital conversion. Here, The raw data is converted into probability data. In particular, the probability of converting each unit reading into a corresponding bit system 1 or 0. The series of readings from the memory array (〇·75, 〇〇5, 〇1〇) , 〇·=, 1,25, ^, 3·0, and 0·5 volts) not only indicates the state of the unit, but can also be used to provide a degree of certainty about the unit. This can be expressed as a specific bit program used in the past. One probability of a memory cell is thus made. Thus, readings near 0 volts provide a lower probability value, while readings away from 0 volts provide a higher probability value. The probability values shown are log probability ratios (explained in detail below). This is provided for the unit in the -logic state The number provides a positive number for a unit in a logical 1 state, and the numerical size indicates the probability of correctly identifying the state. The second and third probability values (〇1, 〇·2) indicate logic "" The third value indicates a relatively low probability. The probability value is sent to a decoder (4) within the -ECC unit 431 124726.doc -14- 200823666 (in some cases, obtaining the probability value from the original value can be considered as Decoder 429 performs decoding operations on probability values. Such a decoder can be considered a soft input decoder. In general, soft input refers to an input that includes certain qualities about the data to be decoded. Information. Additional information used as a soft input generally results in a better result for a decoder. A decoder can perform a decoding calculation using a soft input to provide a calculated probability value as an output. This is considered a soft output and such a decoder is considered a soft input soft input.

出(siso)解碼器。此輸出可接著再次用作該SIS〇解碼器之 輸入以迭代該解碼並改良結果。一 SIS〇解碼器可形成一更 大解碼器之部分,該更大解碼器提供一硬輸出至另一單 το。SISO解碼器一般提供較佳效能且在某些情況下可提供 2硬輸入硬輸出解碼更佳的效能。特定言之,對於相同數 1的額外負擔(ECC位元數目),一 SIS〇解碼器可提供更大 的錯层枝正靶力。為了有效率地使用一 解碼器,可實 也適田、扁碼/解碼方案且調變係調適以有效率地獲得一 軟輸入,而沒有過多複雜性且不需要過多時間用於從記憶 體陣列讀取資料。 一具體實施例中,用於— SISO解碼器之—軟輸入1 吏用解才斤度在一非揮發性記憶體陣列内讀取資料; 供,該解析度解析比過去詩程式化該記憶體之狀態; 數目的狀悲、。目而,可藉由將一記憶體單元程式化至 限電壓範料並隨後藉由解析三Out (siso) decoder. This output can then be used again as input to the SIS〇 decoder to iterate the decoding and improve the results. An SIS 〇 decoder can form part of a larger decoder that provides a hard output to another single το. SISO decoders generally provide better performance and in some cases provide 2 hard input hard output decoding for better performance. In particular, for an additional burden of the same number 1 (number of ECC bits), a SIS〇 decoder can provide a larger split-layer positive target force. In order to use a decoder efficiently, it is also possible to adapt the field, flat code/decoding scheme and modulation system to efficiently obtain a soft input without excessive complexity and without excessive time for the memory array. Read the data. In a specific embodiment, the soft input 1 for the -SISO decoder is used to read data in a non-volatile memory array; the resolution is parsed compared to the past poetry. The state; the number of sorrows. It is possible to program a memory cell to a voltage limit and then analyze it by three

電壓範圍來鳍& A w 。一般而言,用於讀取之臨限電壓範丨 目係用於程式务夕# '化之限電壓範圍數目的數倍(例如多3 124726.doc -15· 200823666 倍)。但是,情況並非始終如此。 一編碼器/解碼器電路(ECC單元)可形成為一專用電路或 此功能可由一控制器内的韌體來執行。一 〆 殿而$ ’ 一控制The voltage range comes to the fin & A w . In general, the threshold voltage for reading is used for several times the number of voltage limits for the program (eg, 3 124726.doc -15·200823666 times). However, this is not always the case. An encoder/decoder circuit (ECC unit) can be formed as a dedicated circuit or this function can be performed by a firmware within a controller. One 而 temple and $ ’ one control

上。-般而言’調變電路將會包括在記憶體晶片上的至少 某些組件(例如連接至一記憶體陣列之周邊電路)。儘管圖* 指示臨限電壓係讀取至一高解析度(一類比讀取卜但所選 擇之解析度程度可能取決於若干因素,包括所使用的非揮 發性記憶體類型。 器係一特定應用積體電路(ASIC),其具有設計用於特定功 能(例如ECC)之電路並還具有韌體來管理控制器操作,= 而,一編碼器/解碼器可藉由在記憶體控制内的一硬體及 韌體組合來形成。該等調變器/解調變器電路可能在一呓 憶體晶片i、在一控制器晶片上、在一分離晶片:某組: 圖5顯示正在經歷一讀取操作之一 NAND快閃記憶體陣列 之一串541。一 NAND快閃記憶體係由串列連接的記憶體單 元串、、且成,由選擇電晶體以統稱為區塊(即基本抹除單位) 之群組隔離。A 了讀取選定單元,串之其他單元均接通, 使侍歲過該串之電流取決於該選定單元。適當偏壓電壓係 置於在串541任一端(一般情況一端係連接至接地)的串選擇 電曰曰體543、545之閘極上且一或多個電壓係依序施加至在 I疋單元上延伸之字元線。對於一保持一位元資料之單 兀,可能只需要一單一電壓。對於保持一個以上之位元之 單元(夕位準單元或MLC),一電壓序列一般由依序遞增電 壓步P自或一二進制查找圖案組成。各步驟對應於一區別電 124726.doc -16 - 200823666on. In general, a modulation circuit will include at least some components on a memory chip (e.g., peripheral circuits connected to a memory array). Although Figure * indicates that the threshold voltage is read to a high resolution (a class of readouts, the degree of resolution chosen may depend on several factors, including the type of non-volatile memory used. An integrated circuit (ASIC) having circuitry designed for a particular function (such as ECC) and also having firmware to manage controller operation, = and an encoder/decoder can be controlled by a memory A combination of hardware and firmware is formed. The modulator/demodulator circuit may be on a memory chip i, on a controller wafer, on a separate wafer: a group: Figure 5 shows that one is undergoing One of the NAND flash memory arrays of the read operation is a string 541. A NAND flash memory system consists of a series of connected memory cell strings, and is formed by a selection transistor, collectively referred to as a block (ie, substantially erased) Unit group isolation. A reads the selected unit, the other units of the string are turned on, so that the current of the string is dependent on the selected unit. The appropriate bias voltage is placed at either end of the string 541 (generally One end of the condition is connected to the ground The string selects the gates of the electrical bodies 543, 545 and one or more voltages are sequentially applied to the word lines extending on the I unit. For a single unit that holds one bit of data, only one A single voltage. For a unit that maintains more than one bit (an align unit or MLC), a voltage sequence is generally composed of a sequential incremental voltage step P or a binary lookup pattern. Each step corresponds to a different power 124726.doc - 16 - 200823666

壓。一儲存二位元之單元串需要四個狀態而一儲存三位元 之單元而要八個狀態等。一附著至一位元線之感應放大器 547決定單元接通的時間且先引起此切換之字元線電壓指 不該單之臨限電壓範圍。該讀取操作之解析度取決於所 提供電壓步階之數目。例如,一單一位元讀取需要乃毫秒 來完成一感應操作,而用於相同記憶體之一二位元讀取需 要75毫秒來完成三個感應操作以完全解析四個狀態。更多 電壓步階提供一更南解析度,但此需要更多時間。更少電 壓步階增加速度,但提供更差的解析度。一般情況下,使 用相同於用於執行程式化操作之解析度來執行讀取操作。 因而,若一程式化操作程式化並驗證單元為四個狀態之 ,則續取操作具有足夠解析度來解析四個臨限電壓範 圍。此可能需要三個電壓步階用於一具有四個可能狀態之 單元各種NAND快閃§己憶體系統結構及操作nand快閃 記憶體系統之方法係說明於美國專利第7,888,621、 7,092,290及 6,983,428號中。 圖6A顯示-單-位元記憶體單元範例,其使用—較高解 析度讀取,該解析度解析超過用於程式化該記憶體之狀態 數目的狀態。如前述,水平軸指示臨限電壓(Vt)而垂直轴 指示-單元對於-特定程式化狀態具有此臨限電壓之概 率。在®1之範例巾,f執行一單一讀取以決定是否一單 元是否程式=成二狀態之-。對^之下,此處執行三個讀 取以決定該單元是否在四個讀取臨限電壓範圍65丨至654之 内。因而 該單元係程式化至二臨限電壓範圍(對應於 124726.doc -17- 200823666 二邏輯狀態)之一並稍後使用一解析度來加以讀取,該解 析度識別該單位為在四個臨限電壓範圍(四個讀取狀態)之 一内0 選擇用於執行讀取之電壓V!、v2、v3係使得該等四個臨 限電壓範圍651至654大小不同且讀取係集中在該等二函數 (用於邏輯1與邏輯〇)重疊位置附近。一讀取(在一區別電壓 V2)係類似於圖1之讀取並指示該記憶體單元所處之狀態(〇 或1)。其他二讀取(在乂1及卩3)係在邏輯〇與邏輯1之臨限電 壓範圍内,但不在該些臨限電壓範圍内居中。反之,該些 讀取更接近V2而配置。該等四個讀取臨限電壓範圍65 1至 654指示一特定讀取位元係正確之概率。因而,對於一邏 輯〇, 一低於臨限電壓範圍651)之讀數具有一更高正確 概率’而在▽1與乂2(臨限電壓範圍652)之間的一讀數具有 一更低正確概率。對於邏輯1,在V2與V3(臨限電壓範圍 653)之間的一讀數具有一相對較低正確概率,而一超過 臨限電壓範圍654)之讀數具有一更高正確概率。可看 出,使用一比程式化所使用之狀態數目解析更高狀態數目 之解析度進行項取允許一項取操作獲得關於正在讀取資料 之概率資訊。 圖6B顯示一二位元Mlc記憶體單元之範例,其使用一高 解析度來進行讀取,該解析度解析超過程式化狀態數目之 狀悲。圖6B顯示正在使用遞增解析度來執行一系列讀取操 作。在讀取1期間,該單元之臨限電壓係解析成對四個狀 悲之一,其對應於一小於vi、在Vi與V2之間、在v2與V3之 124726.doc -18 - 200823666 間及大於Vs之臨限電壓。此第一讀取解析與以前用於程式 化狀態數目相同的狀態數目。一第二讀取讀取2係執行以 提供一更高解析度。讀取2將一程式化狀態(例如"1〇”)解析 成三個讀取狀態,其對應於該臨限電壓函數之一中央部分 (在Vs與V6之間)及該臨限電壓函數之二外部部分(一在%與 Vs之間、另一者在Vs與V2之間)。一第三讀取讀取3係執行 以同樣提供更高解析度。讀取3解析讀取2之讀取狀態,使 得進一步解析外部部分。在此範例中,不進一步解析對應 於中央部分之讀取狀態。該等讀取操作可採用讀取丨,接 著4取2,接著璜取3之次序或任一其他次序來執行。或 者’個別讀取步驟可採用某些其他次序來執行,使其在一 單一項取操作中組合。例如,讀取步驟可從最低臨限電壓 開始並依據臨限電壓依序上升來執行。讀取丨、讀取2及讀 取3之該等讀取步驟係以一圖案而配置,其對於一特定程 式化狀態之臨限電壓函數之外部部分比對應於一中央部分 具有一更高讀取操作密度。此比此類函數之中央部分提供 更多關於臨限電壓函數之外部部分之資訊。此係因為—對 於一特定狀態在一臨限電壓函數之一中央部分内具有一臨 限電壓之單元可假定具有一在該狀態的較高概率(在另一 狀態之概率接近零),故不需要更多解析度。一特定函數 之外部部分可能重疊一相鄰函數。需要關於此類重疊區域 之更多資訊(其中概率值變化)。 3 上述說明係關於用於讀取N AND快閃記憶體單元之特定 技術。還可使用其他讀取技術。在某些記憶體中,一 124726.doc -19- 200823666 讀取步驟可提供關於一一 例如,在、體早疋之程式化位準之資訊。 ,由,姓’、一⑽快閃記憶體中,一記憶體單元之狀態係 類記憶體中,可使用:=:元測量電流來讀取。在此 潘葡中 使用^鏡來複製來自單元之電流,該 用 '流可接著與若干並聯參考電流進行比較。因而,可 用—單一步驟來執行一高解析度讀取。 當:*7'如何攸來自—儲存—個以上之位元資料之臨限 相 =資訊t導關於個別位元之概率值。在此情況下,個別 “值係^派給各位疋。圖7顯示用於圖6之該等四個狀態 11 : 10、〇〇、01)之—概率函數。圖7還顯示對於該第一位 π(最左位元)橫跨所有四個臨限電壓範圍的一概率。此處 概率係顯示為-特^位元們,,之概率,概率還可根據一 位π係’’G”而提供。顯示—概率位準此係存在相同_ 概^之位準。低於〇位準,存在一更大〇概率。因為在左邊 ”11"及"ίο"上的二狀態同時具有一 τ作為第叫立元,在此 圖表左邊的概率較高(>0)。在右邊"〇〇"與"〇1 "上的該等二 狀態同時具有一”。"作為第一位元,故在此側的概二: ㈣)。圖7還顯示對於該第二位元(最右位元)橫跨所有四個 臨限電壓範圍的一概率。此概率在臨限電壓範圍之任一端 杈咼而在中間較低。因而,用於該等二位元之概率值具有 極不同的圖案。圖7顯示一臨限電壓乂1,其提供一第一位 元概率P1與一第二位元概率P2。此處’ P1係較大,因為臨 限電壓VI不接近一與一具有一 "〇"作為第一位元之狀態相 關聯的臨限電壓。然而,P2係較小,因為¥1接近用於 124726.doc -20 - 200823666 狀態之臨限電壓範圍。此指示在此位元大概為㈣,概率 略高於其為0的概率。圖7顯示對於儲存於相同單元内的不 同位元概率可能極為不肖。即便在一讀取操作指示一在相 鄰狀態之臨限電壓範圍之間的一重疊區域内的臨限電塵並 因而具有一增加誤讀風險,一個別位元仍可具有-極高概 率值,其中該重疊係在同時共有該個別位元之二狀態之 間因而’可此較有益的係逐個位元而非逐個單元地決定 概率。-解調變器可使用臨限電壓與個別位元概率值(諸 如圖7所示該等概率值)之間的相關性來基於來自—記憶體 陣列之讀數提供原始概率值。在―讀取操作識別_用於一 單元之臨限電壓範圍之情況下,用於各位元之概率值可能 與各此類範圍相關聯。概率値可從各種資訊(例如對於一 給定技術記憶體單元行為特性)或從-特定記憶體裝置之 經歷來推導。在笨此_、、W T , 推♦ 清况下,概率值可在一裝置之生命 期間在不同階段變化。 / 概率可採用不同方式來表述。一用以表述二進制資料之 =之普遍方式係-對數概率比(llr)。與一特定位 關聯之⑽係對於一特定讀數X,位元係"i"之概率盘位元 係"0"之概率之比率的對數。因而: LLR(x)=l〇g P{d-Q\x) 其中叫=柄係位元係"i,,之 及概率而Ρ(“0μ)係位元係,,〇”之 率。LLR係一用以表沭相农 ^ 率之方便方式,但仍可使用复他 糸統。為了從來自一纪橋騁 "" U體之讀數中獲得概率資訊,一般 124726.docPressure. A cell string storing two bits requires four states and one cell of three bits and eight states. A sense amplifier 547 attached to a bit line determines the time the cell is turned on and the word line voltage that caused the switching first refers to the threshold voltage range. The resolution of this read operation depends on the number of voltage steps provided. For example, a single bit read requires milliseconds to complete a sensing operation, while one bit reading for the same memory requires 75 milliseconds to complete three sensing operations to fully resolve the four states. More voltage steps provide a more south resolution, but this requires more time. Less voltage steps increase speed but provide worse resolution. In general, the read operation is performed using the same resolution as used to perform the stylized operation. Thus, if a stylized operation is programmed and the unit is verified to have four states, the refill operation has sufficient resolution to resolve the four threshold voltage ranges. This may require three voltage steps for a unit having four possible states. Various NAND flash § 己 体 system structures and methods of operating the nand flash memory system are described in U.S. Patents 7,888,621, 7,092,290 and 6,983,428. in. Figure 6A shows an example of a -single-bit memory cell that uses a higher resolution read that exceeds the state for programming the number of states of the memory. As previously mentioned, the horizontal axis indicates the threshold voltage (Vt) and the vertical axis indicates that the unit has the probability of having this threshold voltage for a particular programmed state. In the sample towel of ®1, f performs a single read to determine if a cell is programmed to be in a two-state. Below ^, three reads are performed here to determine if the cell is within the four read threshold voltage range of 65 丨 to 654. Thus the unit is programmed to one of the two threshold voltage ranges (corresponding to 124726.doc -17-200823666 two logic states) and later read using a resolution that identifies the unit as four Within one of the threshold voltage ranges (four read states), the voltages V!, v2, and v3 selected for reading are made such that the four threshold voltage ranges 651 to 654 are different in size and the reading system is concentrated in These two functions (for logic 1 and logic 〇) are placed near the overlap position. A read (at a different voltage V2) is similar to the reading of Figure 1 and indicates the state (〇 or 1) of the memory cell. The other two reads (at 乂1 and 卩3) are within the threshold voltage range of logic 〇 and logic 1, but are not centered within the threshold voltage range. Conversely, these reads are configured closer to V2. The four read threshold voltage ranges 65 1 through 654 indicate the probability that a particular read bit is correct. Thus, for a logic 〇, a reading below the threshold voltage range 651) has a higher correct probability' and a reading between ▽1 and 乂2 (the threshold voltage range 652) has a lower correct probability . For Logic 1, a reading between V2 and V3 (preceding voltage range 653) has a relatively low correct probability, while a reading that exceeds the threshold voltage range 654) has a higher correct probability. It can be seen that using a resolution that resolves a higher number of states than the number of states used by the stylization to perform a fetch allows a fetch operation to obtain probabilistic information about the data being read. Figure 6B shows an example of a two-bit Mlc memory cell that uses a high resolution for reading, which resolves more than the number of stylized states. Figure 6B shows that a series of read operations are being performed using incremental resolution. During the read 1, the threshold voltage of the unit is resolved into one of four sorrows, which corresponds to a less than vi, between Vi and V2, between v72 and V3 124726.doc -18 - 200823666 And a threshold voltage greater than Vs. This first read resolves the same number of states as the number of previously used stylized states. A second read read 2 is performed to provide a higher resolution. Read 2 resolves a stylized state (eg, "1〇) into three read states corresponding to a central portion of the threshold voltage function (between Vs and V6) and the threshold voltage function The second external part (one between % and Vs and the other between Vs and V2). A third read read 3 is executed to provide higher resolution. Read 3 parsing read 2 Reading the state so that the external portion is further parsed. In this example, the read state corresponding to the central portion is not further resolved. The read operations may take a read 丨, then 4 take 2, then take the order of 3 or Any other order is performed. Or the 'individual reading steps can be performed in some other order to combine them in a single one. For example, the reading step can start from the lowest threshold voltage and according to the threshold voltage. The reading steps are sequentially performed. The reading steps of reading 读取, reading 2, and reading 3 are arranged in a pattern, and the outer portion of the threshold voltage function for a particular stylized state corresponds to a central portion. The part has a higher read operation density. This provides more information about the outer portion of the threshold voltage function than the central portion of such a function. This is because a unit with a threshold voltage in a central portion of a threshold voltage function can be assumed for a particular state. There is a higher probability in this state (the probability in another state is close to zero), so no more resolution is needed. The outer part of a particular function may overlap an adjacent function. More on such overlapping areas is needed. Information (where the probability value changes). 3 The above description is about the specific technique used to read the N AND flash memory unit. Other reading techniques can also be used. In some memories, a 124726.doc -19- 200823666 The reading step can provide information about the stylized level of the body, for example, in the first name, one (10) of the flash memory, and the state of a memory unit in the memory. It can be read using: =: meta-measurement current. In this case, the ^ mirror is used to replicate the current from the cell, which can then be compared with several parallel reference currents. Thus, available - One step to perform a high-resolution read. When: *7' how to get from - store more than one bit of the data phase = information t guide the probability value of the individual bit. In this case, individual "Value system ^ is sent to you. Figure 7 shows the probability function for the four states 11 : 10, 〇〇, 01) of Figure 6. Figure 7 also shows a probability of spanning all four threshold voltage ranges for the first bit π (leftmost bit). Here, the probability system is displayed as a special bit, and the probability, the probability can also be provided according to a π system ''G'. The display-probability level has the same level of _ ̄ ^. There is a greater probability of 〇, because the two states on the left "11" and "ίο" have a τ as the first epoch, and the probability on the left side of the graph is higher (>0). The two states on the right "〇〇" and "〇1 " have one "." as the first bit, so on the side of the second: (four)). Figure 7 also shows The second bit (the rightmost bit) spans a probability of all four threshold voltage ranges. This probability is 杈咼 at either end of the threshold voltage range and is lower in the middle. Thus, for the two bits The probability value of the element has a very different pattern. Figure 7 shows a threshold voltage 乂1, which provides a first bit probability P1 and a second bit probability P2. Here 'P1 is larger because of the threshold voltage The VI is not close to a threshold voltage that has a "〇" as the state of the first bit. However, the P2 system is smaller because ¥1 is close to the state of 124726.doc -20 - 200823666 Limit voltage range. This indication is approximately (4) in this bit, and the probability is slightly higher than the probability that it is 0. Figure 7 shows that the probability of different bits stored in the same cell may be extremely unclear. Restricted electric dust in an overlapping area between the threshold voltage ranges of adjacent states And thus having an increased risk of misreading, a different bit can still have a very high probability value, wherein the overlap is between the two states of the individual bit at the same time and thus the more useful one by one bit The probability is determined non-unit by unit. The demodulation transformer can use the correlation between the threshold voltage and the individual bit probability values (such as the probability values shown in Figure 7) to provide the original based on the readings from the memory array. Probability value. In the case of "read operation identification" for a threshold voltage range of a unit, the probability value for each element may be associated with each such range. The probability 値 can be derived from various information (for example, for a given Determining the behavioral characteristics of a technical memory unit) or deriving from the experience of a particular memory device. In the case of _, WT, and push, the probability value can be changed at different stages during the life of a device. It can be expressed in different ways. The common way to express the binary data is the log-to-log probability ratio (llr). The (10) associated with a particular bit is for a particular reading X, the bit system "i" The logarithm of the ratio of the probability of the disk element system "0". Thus: LLR(x)=l〇g P{dQ\x) where = the handle is the bit system "i, and the probability is Ρ( “0μ) is the rate of the bit system, 〇”. The LLR is a convenient way to express the 农 农 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Obtain probability information in the reading of the body, generally 124726.doc

-2K 200823666 執行某些轉換或解調變。一執行此類解調變之便利方式係 使用一查找表,其表袼化臨限電壓(或在記憶體内的某測 1參數)與一或多個位元之概率值之間的關係。在該讀取 操作之解析度將一記憶體單元之臨限電壓範圍分成N個讀 取狀態且該單元儲存R位元之情況下,一表格可具有N X R 個項目,使得針對各讀取狀態提供一概率用於各位元。依 此方式,一高解析度讀取可提供關於記憶體内所儲存之資 料的概率資訊。此類原始概率資料可提供至一解碼器作為 該解碼1§之一軟輸入。 圖8顯示諸如上述之軟輸入資料係供應至一解碼器系統 861,其包括一SIS0解碼器863。SIS〇解碼器一般接受原 始概率資料並在該原始概率資料上執行ECC計算以提供計 算概率資料。該計算概率資料可視為一軟輸出。在許多情 況下,接著提供此類軟輸出作為該SIS〇解碼器之一輸入, 使得執行一第二解碼迭代。一 SIS〇解碼器可執行連續迭 代,直至獲得至少一預定條件。例如,一預定條件可能係 所有位元均具有一大於一特定最小值之概率。_預定條件 還可以係一概率值(例如一中間概率值)之總數。一預定條 件可能係從一迭代至下一迭代之結果收斂(即保持迭代, 直至幾乎不存在由於額外迭代之改良)。一預定條件可以 係完成一預定數目的迭代。還可使用該些條件之組合。解 碼係使用在資料内的一編碼圖案來執行,該圖案係I儲存 資料之前編碼器865在資料上執行編碼之結果。編碼器^^ 與解螞器系統861係同時視為ECC單元867之部分,該ec 124726.doc -22- 200823666 單元可實施於一記憶體系統(諸如記憶體系統42 1)内(ECC 單元867係一可用作ECC單元431之單元範例)。各種編碼方 案可與一 SISO解碼器一起使用。解碼器861還包括一硬軟 轉換器864,用以將來自SISO解碼器865之一軟輸出轉換成 一硬輸出。 在某些情況下,SISO解碼可對於相同數量的管理資料比 硬輸入硬輸出解碼提供更佳的錯誤校正。圖9顯示一範例 性編碼方案,其可用於一 SISO解碼器(諸如SIS〇解碼器 863)。資料項目D"-D33係以列及行而配置,同時針對各列 及行计算同位位元。例如,P!係計算自包含項目Dn、〇12 及D13之列。同樣地,p2係計算自包含項目〇2ΐ、;〇22及1>23 之列。P4係計算自行Dn、D21及D23。 圖1 〇顯示如圖9所示之編碼資料稍後在一硬輸入硬輸出 解碼器與一 SISO解碼器二者中解碼時的結果。在此範例 中,一一進制系統之二邏輯狀態係分別表示為與+1,而 非〇與1。應明白,可使用任一適當表示法且此表示法僅出 於方便此範例對於軟數字,符號指示位元是否最可能係 0或1且數字大小指示此係正確值之概率。 一信號101係顯示為一位元群組,其包括資料位元與同 位位元,該等同位位元係依據圖9之編碼方案而計算的。 該信號一般係一編碼器之輸出,該編瑪器具有適當電路以 計算同位位元。可將該信號發送至一調變器,其提供適當 電壓至記憶體單元以將該等記憶體單元程式化至狀態以記 錄該信號資料。 124726.doc -23- 200823666 在此範例中顯示雜訊l〇3正在影響二資料位元。雜訊不 限於資料位元且還可能影響同位位元。雜訊可能由於特定 單元之某些實體特性或可能在一單元受到陣列中其他單元 上所實施之操作影響時發生在記憶體的干擾而引起。在此 範例中’雜訊係視為附加性的,使得讀取自記憶體單元之 '資料反映信號資料加上雜訊,接著其變成輸入資料用於解 ' 碼。但雜訊可能積極或消極地影響讀取值。 馨 輸入105係從一連接至一記憶體之解調變器所獲得之原 始資料。例如,在使用一高解析度執行一讀取操作之情況 下以此形式產生輸入資料,使得一位元的信號或同位資 料係表示為0·1,而非1或〇。此可視為一概率值,其具有 一正值指示1而一負值指示0,值大小指示所指示狀態係正 確之概率。輸入105可視為一軟輸入,因為其包括多個簡 單的〇或1值。 對於一硬輸入硬輸出解碼器,輸入1〇5係藉由用+1取代 • 所有正值並用-1取代所有負值來轉換成硬輸入107。在一 j用一補數(1的補數)邏輯表示軟輸入概率值之系統中,最 回有效位元表示符號並可用作轉換構件。該硬輸入硬輸出 _ 冑碼器可能試圖使用此硬輸入來校正資料。然而,同位計 - 算指示在該等第二及第三列之各列内的一錯誤及在該等第 二=第三行之各行内的_錯誤。在此情形下沒有任何獨特 解答,因為d22與d33可能出錯或者d32與D23可能出錯。該 硬輸入硬輸出偵測器無法決定該些解答之哪個解答係正確 的因此,一硬輸入硬輪出解碼器在此情形下無法校正該 124726.doc -24- 200823666 資料。 在-第-麵解碼步驟中,軟輸入校正資料⑽係針對 來自該輸入之第-列而產生。軟輸入校正資料109之各項 目係從在相同列上其他項目與列内最小項目之大小之乘積 之符號來計算(下面更詳細地說明概率值計算)。此指示在 該列内的其他項目所指示的項目原貌並可視為一計算概率 或-外在概率(相對於該輸人之内在概率)。接著將軟輸入 校正貧料109添加至輸入1〇5以獲得第一列迭代之軟輸出 111。該第一列迭代之軟輸出lu因而組合該等内在及外在 概率值。該軟輸出反映來自該原始資料之内在概率資訊與 推導自相同列内共用相同同位位元的其他項目之外在概率 資訊。此時查看軟輸出113之符號(轉換軟輸出至一硬輸出) 顯示完全校正該資料。因而,該軟輸入軟輸出解碼可在一 硬輸入硬輸出解碼器不能之情況下校正此資料。此外,該 軟輸入軟輸出解碼器可僅使用列同位計算以一迭代來進行 杈正。若沒有完成校正,則可使用行同位計算來執行進一 步計算。若此類第一行迭代不提供完全校正,則可執行一 第二列迭代。因而,一SISO可在一硬輸入解碼器停止而不 能找到一解答之情況下繼續朝一解答工作。 一第二範例如圖11所示。如同先前範例,同位位元係針 對陣列輸入資料之列及行二者而計算(在此範例中每列或 行僅二輸入資料項目)。此處同位位元係計算以成為列或 行之輸入資料位元之模數2和。 圖12顯示在一 ECC單元123中一解碼器ι21正在接收之輪 124726.doc -25- 200823666 入資料,該ECC單元計算該等同位位元並將其附加至該資 料。在此情況下,四位元的同位資料係附加至四位元的輸 入資料。該輸入資料與同位位元因而形成編碼信號資料, 其係發送至一調變器125。調變器125依據該信號資料來程 式化個別記憶體單元。在此情況下,二位元係儲存於記憶 體陣列126之一記憶體單元内,故八個位元的信號資料係 儲存於四個單元内,該等單元具有個別臨限電壓位準^至 V4。隨後該等記憶體單元係讀取為具有臨限電壓範圍νι, 至V4’。該等讀取臨限電壓範圍係在一解調變器127内加以 解調變以提供原始概率資料(1.5、1.〇、〇.2、〇.3、2 5、 2.0、6.0、1.0)。此可使用一查找表或其他方式來獲得。 在某些情況下,提供原始概率資料係視為在一解碼器内的 一功能,但對於本情況,係視為在解調變器127内發生。 一原始概率值係獲得用於各位元,使得即便將位元儲存於 相同單元内,其仍可能具有不同的概率值。在本範例中, 解調變器127提供概率值作為對數概率比值,但概率還可 採用其他格式來表述。該等原始概率值係對於所有資料項 目為正,指示在直接從該些項目獲得一硬輸出之情況下, 所有資料項目在此時均視為i(假定二錯誤)。然而,在ECC 單兀123内使用一 SISO解碼器129,可完全校正該資料。圖 13A至13D顯示SISO解碼器129如何校正輸入資料。解碼器 129係一 SISO解碼器之一特定範例,其可用於諸如記憶體 系統421之記憶體系統(解碼器129可用作解碼器429)。 圖13A顯示-第一水平迭代使用列同位位元ΐ3ι來從列概 124726.doc -26- 200823666 率值132獲得第一計算概率值133。在此情況下,llr係添 加以獲得計算概率值133。可顯示在此範例中二LLR的和 係藉由該等二LLR之該等符號與(·ι)之乘積乘以最小llr值 來提供。 LLR(Dl)©LLR(D2)«(.l) x sgn[LLR(Dl)] x sgn[LLR(D2)] χ min[LLR(Dl)5 LLR(D2)] 其中㊉指示LLR加。施加此LLR加至該等項目提供所示的 計算概率值。例如,對應於項目之計算概率係〇·ιφ2.5 〜0·1 ’對應於D12項目之計算概率係1·5㊉2.51L5。接著將 計算(外在)概率值133與該等原始(内在)概率值132相加以 從該第一水平迭代中獲得輸出概率值135。故對應於項目 D"之輸出概率值係原始概率值1.5加上計算概率值, 給出1.4。可看出,頂部列(14、_14)之輸出概率值135指 不相對較高的概率值,從而指示該等正確位元係1及〇。然 而’在底部列(-0.1、〇·1)上的概率值135指示該等位元分別 為〇及1之較低概率值。該些概率值指示該等正確輸入位 疋。然而,此類較低概率值可能不視為足夠優良以在此點 終止解碼。故可執行額外迭代。 圖13Β顯示來自該第一水平迭代之輸出概率值135受到使 用行同位位元137之一第一垂直迭代的影響。該第一垂直 迭代之計算概率值139係採用以前相同方式來計算,此次 使用行同位項目137沿行來計算。因而,Dll係從Di2與?3之 llr和來獲得(-(^與^,給出〇 1}。Di2係從之 LLR和來獲得〇·4與6.0,給出-1.4)。依此方式,針對各項 124726.doc -27- 200823666 目獲得計算概率值139。接著,將該等計算(外在)概率值 139與該等輸入概率值135(該第一水平迭代之該等輸出概 率值)相加以獲得該第一垂直迭代之輸出概率值i4i。從 該弟垂直迭代所獲得之該等輸出概率值141(1.5、-1.5、 -1·5、1·1)可視為足夠優良以在此點終止解碼。然而,取 決於終止解碼所需之預定條件,可執行更多解碼迭代。 圖13C顯示正在執行一第二水平迭代。先將來自該第一 垂直迭代之該等計算概率值139與該等原始概率值132相加 以獲得輸入值143。接著如前面一起使用該等輸入值143與 列同位項目131以獲得第二水平計算概率值145。接著將該 等第二水平概率值145與該等輸入值132相加以獲得該第二 水平迭代之輸出概率值147。該第二水平迭代之輸出概率 值147不從該第一垂直迭代之輸出中獲得一整體概率值改 良。 圖13D顯示正在執行一第二垂直迭代。來自該第二水平 迭代之該等輸出值147係用作用於此迭代之輸入值。如前 述,行同位項目137係與該等輸入值一起用以獲得計算概 率值149。接著將計算概率值149與該等輸入概率值147相 加以獲得輸出概率值151。比較來自該第一垂直迭代之輸 出值141,顯示改良來自該第二垂直迭代之輸出值151。因 而,可看出額外迭代可提供額外的資料改良。 迭代解碼可在整個迭代過程中循環,直至滿足某預定條 件。例如,該預定條件可能係在一概率值輸出集合中的各 概率值超過某最小概率值。或者,該預定條件可能係推導 124726.doc -28· 200823666 ㈠個概率值之某些參數,諸如一巾間或平均概率。該預 疋條件可能僅係執行-特定數目的迭代。在某些情況下 (如下述),-嶋解碼器提供輸出概率值,接著使該等概 率值經受另-操作’從而指示是否應執行額外咖迭代。 圖13A至13D之範例可視為一技術範例,稱為加速解 碍。水平及垂直同位位元提供可單獨解碼的二替代性編碼 方案…起使用兩此類解碼方案及使用來自—解碼方案之-2K 200823666 Perform some conversion or demodulation changes. A convenient way to perform such demodulation is to use a lookup table that maps the relationship between the threshold voltage (or a measured parameter in memory) and the probability value of one or more bits. In the case where the resolution of the read operation divides the threshold voltage range of a memory cell into N read states and the cell stores R bits, a table may have NXR items so that each read state is provided. A probability is used for each element. In this way, a high-resolution read can provide probabilistic information about the information stored in the memory. Such raw probability data can be provided to a decoder as one of the soft inputs of the decoding 1 §. Figure 8 shows that a soft input data such as that described above is supplied to a decoder system 861 that includes a SIS0 decoder 863. The SIS〇 decoder typically accepts the original probability data and performs an ECC calculation on the original probability data to provide a calculated probability data. The calculated probability data can be viewed as a soft output. In many cases, such a soft output is then provided as one of the inputs to the SIS 〇 decoder such that a second decoding iteration is performed. An SIS 〇 decoder can perform successive iterations until at least a predetermined condition is obtained. For example, a predetermined condition may be that all of the bits have a probability greater than a certain minimum. The predetermined condition may also be a total of a probability value (e.g., an intermediate probability value). A predetermined condition may converge from the outcome of an iteration to the next iteration (i.e., iteratively maintained until there is little improvement due to additional iterations). A predetermined condition may be to complete a predetermined number of iterations. Combinations of these conditions can also be used. The decoding is performed using a coding pattern within the data, which is the result of the encoding performed by the encoder 865 on the data before the data is stored. The encoder ^^ and the eliminator system 861 are simultaneously considered part of the ECC unit 867, which may be implemented in a memory system (such as the memory system 42 1) (ECC unit 867) One can be used as an example of a unit of the ECC unit 431). Various encoding schemes can be used with a SISO decoder. The decoder 861 also includes a hard and soft converter 864 for converting a soft output from the SISO decoder 865 into a hard output. In some cases, SISO decoding provides better error correction for the same amount of management data than hard input hard output decoding. Figure 9 shows an exemplary coding scheme that can be used with a SISO decoder (such as SIS 〇 decoder 863). The data item D"-D33 is configured in columns and rows, and the parity bits are calculated for each column and row. For example, P! is calculated from the inclusion of items Dn, 〇12, and D13. Similarly, p2 is calculated from the inclusion of items ΐ2ΐ, ;〇22 and 1>23. P4 calculates its own Dn, D21 and D23. Figure 1 shows the result of the later decoding of the encoded material as shown in Figure 9 in both a hard input hard output decoder and a SISO decoder. In this example, the two logical states of the one-ary system are expressed as +1 and not 〇, respectively. It will be appreciated that any suitable notation may be used and that this representation is only for convenience. For this example, for a soft number, the symbol indicates whether the bit is most likely to be 0 or 1 and the numerical size indicates the probability that this is the correct value. A signal 101 is shown as a one-bit group comprising data bits and co-located bits, which are calculated in accordance with the encoding scheme of FIG. The signal is typically an output of an encoder having appropriate circuitry to calculate the parity bits. The signal can be sent to a modulator that provides the appropriate voltage to the memory unit to program the memory cells to a state to record the signal data. 124726.doc -23- 200823666 In this example it is shown that the noise l〇3 is affecting the two data bits. The noise is not limited to data bits and may also affect the parity bits. The noise may be caused by some physical characteristics of a particular unit or interference that may occur in memory when a unit is affected by operations performed on other units in the array. In this example, the 'noise' is considered as additional, so that the data read from the memory unit reflects the signal data plus the noise, which then becomes the input data for the solution. However, noise may affect the read value either positively or negatively. Xin Input 105 is the original data obtained from a demodulator connected to a memory. For example, in the case where a read operation is performed using a high resolution, the input data is generated in such a form that the signal or the parity of the one-bit element is expressed as 0·1 instead of 1 or 〇. This can be viewed as a probability value with a positive value indicating 1 and a negative value indicating 0, the value size indicating the probability that the indicated state is correct. Input 105 can be considered a soft input because it includes multiple simple 〇 or 1 values. For a hard input hard output decoder, input 1〇5 is converted to hard input 107 by replacing all positive values with +1 and all negative values with -1. In a system in which a j-complement (1's complement) logic represents a soft input probability value, the most significant bit represents a symbol and can be used as a transforming component. The hard input hard output _ 胄 coder may attempt to use this hard input to correct the data. However, the parity meter - counts an error in each of the second and third columns and an _ error in each of the second = third rows. There are no unique answers in this situation, as d22 and d33 may go wrong or d32 and D23 may go wrong. The hard input hard output detector cannot determine which of the answers is correct. Therefore, a hard input hard wheel out decoder cannot correct the 124726.doc -24- 200823666 data in this case. In the - face-to-face decoding step, the soft input correction data (10) is generated for the first column from the input. The items of the soft input correction data 109 are calculated from the sign of the product of the other items on the same column and the size of the smallest item in the column (the probability value calculation is explained in more detail below). This indicates the original appearance of the item indicated by other items in the column and can be considered as a calculated probability or - extrinsic probability (relative to the intrinsic probability of the input). Soft input correction poor material 109 is then added to input 1〇5 to obtain a soft output 111 of the first column iteration. The soft output lu of the first column iteration thus combines the intrinsic and extrinsic probability values. The soft output reflects the intrinsic probability information from the original data and the probabilistic information derived from other items that are derived from the same co-located bits in the same column. At this point, the symbol of soft output 113 (convert soft output to a hard output) is displayed to show that the data is completely corrected. Thus, the soft input soft output decoding can correct this data in the absence of a hard input hard output decoder. In addition, the soft input soft output decoder can be squared using an iteration using only column parity calculations. If the correction is not completed, a row parity calculation can be used to perform further calculations. If such a first row iteration does not provide a full correction, then a second column iteration can be performed. Thus, a SISO can continue to work toward a solution if a hard input decoder stops and does not find a solution. A second example is shown in Figure 11. As in the previous example, the parity bit is calculated for both the column and the row of the array input data (in this example, only two input data items per column or row). Here, the parity bit is calculated as the modulus 2 sum of the input data bits of the column or row. Figure 12 shows a decoder 124 in the ECC unit 123 receiving the wheel 124726.doc -25-200823666, which calculates the equivalent bit and appends it to the data. In this case, the four-bit co-located data is attached to the four-bit input data. The input data and the parity bits thus form encoded signal data which is sent to a modulator 125. The modulator 125 programs the individual memory cells based on the signal data. In this case, the two-bit system is stored in one of the memory cells of the memory array 126, so the signal data of the eight bits is stored in four cells, and the cells have individual threshold voltage levels. V4. The memory cells are then read to have a threshold voltage range νι, to V4'. The read threshold voltage ranges are demodulated in a demodulator 127 to provide raw probability data (1.5, 1. 〇, 〇.2, 〇.3, 2 5, 2.0, 6.0, 1.0). . This can be obtained using a lookup table or other means. In some cases, providing the raw probability data is considered a function within a decoder, but for this case it is considered to occur within the demodulation transformer 127. An original probability value is obtained for each element, so that even if the bits are stored in the same unit, they may have different probability values. In this example, demodulator 127 provides a probability value as a log probability ratio, but the probability can also be expressed in other formats. These original probability values are positive for all data items, indicating that in the case of obtaining a hard output directly from those items, all data items are considered i at this time (assuming a second error). However, using a SISO decoder 129 within the ECC unit 123, the data can be completely corrected. Figures 13A through 13D show how the SISO decoder 129 corrects the input data. The decoder 129 is a specific example of a SISO decoder that can be used in a memory system such as the memory system 421 (the decoder 129 can be used as the decoder 429). Figure 13A shows that the first horizontal iteration uses the column symbol ΐ3ι to obtain the first calculated probability value 133 from the column value 124726.doc -26-200823666 rate value 132. In this case, llr is added to obtain a calculated probability value 133. It can be shown that the sum of the two LLRs in this example is provided by multiplying the products of the two LLRs by (.m) by the minimum llr value. LLR(Dl)©LLR(D2)«(.l) x sgn[LLR(Dl)] x sgn[LLR(D2)] χ min[LLR(Dl)5 LLR(D2)] where ten indicates LLR addition. Applying this LLR to these items provides the calculated probability values shown. For example, the calculation probability system 〇·ιφ2.5 ~0·1 ′ corresponding to the item corresponds to the calculation probability of the D12 item, which is 1. 5 + 2.51 L5. The calculated (external) probability value 133 is then added to the original (intrinsic) probability value 132 from which the output probability value 135 is obtained. Therefore, the output probability value corresponding to the item D" is the original probability value of 1.5 plus the calculated probability value, giving 1.4. It can be seen that the output probability value 135 of the top column (14, _14) refers to a relatively high probability value, indicating that the correct bit systems are 1 and 〇. However, the probability value 135 on the bottom column (-0.1, 〇·1) indicates that the bits are the lower probability values of 〇 and 1, respectively. The probability values indicate the correct input bits 疋. However, such lower probability values may not be considered good enough to terminate decoding at this point. Therefore, additional iterations can be performed. Figure 13A shows that the output probability value 135 from the first level of iteration is affected by the use of one of the first vertical iterations of the row parity bit 137. The calculated probability value 139 of the first vertical iteration is calculated in the same manner as before, and this time using the row co-located item 137 is calculated along the line. Thus, Dll is from Di2 and? 3 llr and to get (-(^ and ^, give 〇1}. Di2 is obtained from LLR and get 〇·4 and 6.0, giving -1.4). In this way, for each item 124726.doc - 27- 200823666 Obtain a calculated probability value 139. Next, the calculated (external) probability value 139 is added to the input probability values 135 (the output probability values of the first level iteration) to obtain the first vertical The output probability value i4i of the iteration. The output probability values 141 (1.5, -1.5, -1·5, 1.1) obtained from the vertical iteration of the brother can be considered to be good enough to terminate the decoding at this point. More decoding iterations may be performed to terminate the predetermined conditions required for decoding. Figure 13C shows that a second level of iteration is being performed. The calculated probability values 139 from the first vertical iteration are first compared to the original probability values 132. Adding an input value 143. The input value 143 and the column parity item 131 are then used together to obtain a second level calculated probability value 145. The second horizontal probability value 145 is then added to the input value 132. The second level of iteration has an output probability value of 147. The horizontal iteration output probability value 147 does not result in an overall probability value improvement from the output of the first vertical iteration. Figure 13D shows that a second vertical iteration is being performed. The output values 147 from the second level iteration are used. Input values for this iteration. As previously described, row co-located items 137 are used with the input values to obtain a calculated probability value 149. The calculated probability value 149 is then added to the input probability values 147 to obtain an output probability value 151. Comparing the output value 141 from the first vertical iteration, the display improves the output value 151 from the second vertical iteration. Thus, it can be seen that additional iterations can provide additional data improvements. Iterative decoding can be cycled throughout the iteration process until Satisfying a certain predetermined condition. For example, the predetermined condition may be that each probability value in a probability value output set exceeds a certain minimum probability value. Alternatively, the predetermined condition may be derived from 124726.doc -28· 200823666 (one) probability value Some parameters, such as an interval or average probability. The pre-conditions may only be performed - a certain number of iterations. In some cases ( As described below, the -嶋 decoder provides an output probability value, which is then subjected to another-operation' to indicate whether additional coffee iterations should be performed. The examples of Figures 13A through 13D can be viewed as a technical paradigm called acceleration deblocking The horizontal and vertical co-located bits provide a separately decodable two alternative coding scheme... using two such decoding schemes and using the from-decoding scheme

輸出作為其他另-方案之輸人,加速編碼—般提供較高的 錯誤校正能力。 有效率的解碼取決於具有一適當編碼/解碼方案。已知 各種方案用於以一適合於在一 SlS〇解碼器中後續解碼之方 式來編碼資料。編碼/解碼方案包括(但不限於)加速碼、乘 積碼、BCH碼 '裏德·所羅門碼(Reed_s〇1〇m〇n c〇de)、捲 積碼(參考美國專利申請案第11/383,4〇1及11/383,4〇5號)、 漢明碼及低密度同位校正(LDpC)碼。 LDPC碼係具有一滿足特定要求之同位檢查矩陣之碼, 從而產生一稀疏同位檢查矩陣。此意味著在一相對較小數 目的位元上執行各同位校正。用於一 LDpC碼之一同位檢 查矩陣Η之一範例係如圖14所示。用於一LDPC碼之該等條 件係:(1)在各列内1數目相同且比較列内的總項目數數目 較小。(2)在各行内1數目相同且比較行内的總項目數數目 較小。(3)在任二行之間共用的丨數目不大於!(共用1數目只 能為零或一)。不規則LDPC碼允許在行及列内的1數目的 某偏差。查看Η,在一列内的總計七個項目之中,各列具 124726.doc • 29- 200823666The output is the input to other alternatives, and the accelerated coding generally provides a higher error correction capability. Efficient decoding depends on having an appropriate encoding/decoding scheme. Various schemes are known for encoding data in a manner suitable for subsequent decoding in a SlS(R) decoder. The encoding/decoding scheme includes, but is not limited to, an accelerometer, a product code, a BCH code 'Reed Solomon code (Reed_s〇1〇m〇nc〇de), a convolutional code (refer to US Patent Application No. 11/383, 4〇1 and 11/383, 4〇5), Hamming code and low density parity correction (LDpC) code. The LDPC code has a code of a parity check matrix that satisfies a specific requirement, thereby generating a sparse parity check matrix. This means that each parity correction is performed on a relatively small number of bits. An example of a co-located check matrix for an LDpC code is shown in Figure 14. The conditions for an LDPC code are: (1) The number of 1 items in each column is the same and the number of total items in the comparison column is small. (2) The number of total items in each row is the same and the number of total items in the comparison line is small. (3) The number of 共用 shared between any two lines is not greater than! (The number of shares 1 can only be zero or one). The irregular LDPC code allows for a certain deviation of 1 number in the row and column. View Η, among the total of seven items in a column, each column has 124726.doc • 29- 200823666

有三個卜使得滿足條件⑴。在一行内的總計七個項目之 中’各行具有三個!,使得滿足條件(2)。沒有任何兩行共 用個1以上,故滿足條件(3)。例如,該等第—、第一及 第四行均具有—個1作為頂部項目,但該些行均不址用另 一個卜因而’矩陣Η定義-LDPd該碼由所有以矩 陣Η之碼字所組成。此意味著必須滿足七個不同同位檢查 條件(由該等七列來定義)。各同位檢查條件在—字内查找 ,個項目。例如,該第一列指示在一字元内的該等第二、 第二及第四項目必須具有一模數二和為零。 資料可藉由計算特定同位位元來形成一碼字依據一 LDPC碼來加以編碼。因而,該同位檢查矩陣η之一碼字可 由四個資料位元與計算自該等四個資料位元之三個同位位 元來形成。各’位元係計算自—相對較小數目的資料位 元,故編碼可能相對較簡單,即便在將較大數目的項目編 碼成一區塊之情況下。 一用於記憶體應用之適當LDPC碼使用大約4,000至8,〇〇〇 位兀之一字兀(1至2區段,其中一區段係512位元組)。例 如,依據該LDPC碼之編碼可增加大約12%至未編碼資料。 在用於此類編碼之一同位檢查矩陣之一列内的丨數目可能 在大約4000之中為大約32,故即便該字元較大,該等同位 計算仍不會過長。因而,在編碼期間可能相對容易地計算 同位位元且在解碼期間還可相對容易地檢查同位。LDpc 碼可與硬輸入硬輸出解碼或SIS0解碼一起使用。如先前所 不,SISO解碼可有時在硬輸入硬輸出解碼過程中改良效 I24726.doc •30- 200823666 能。可將原始概率值供應至一 SISO解碼器作為LLR或採用 某其他形式。一 LDPC可採用一迭代方式來使用一 SISQ解 碼器。一項目係由數個同位群組共用,使得從一群組獲得 之一計算概率值提供改良資料用於另一同位群組。可迭代 地執行此類計算,直至滿足某預定條件。There are three kinds of things that make the condition (1). In a total of seven projects in a row, each row has three! So that the condition (2) is satisfied. No two lines have a total of one or more, so the condition (3) is satisfied. For example, the first, first, and fourth rows each have -1 as the top item, but the rows are not addressed by another one and thus the 'matrix Η defines - LDPd the code from all the codewords in the matrix Composed of. This means that seven different parity check conditions must be met (defined by these seven columns). Each parity check condition is found in the word, and each item. For example, the first column indicates that the second, second, and fourth items within a character must have a modulus two and zero. The data can be encoded by computing a particular parity bit to form a codeword based on an LDPC code. Thus, one codeword of the parity check matrix η can be formed by four data bits and three parity bits calculated from the four data bits. Each 'bit' is calculated from a relatively small number of data bits, so the encoding may be relatively simple, even if a larger number of items are coded into a single block. A suitable LDPC code for memory applications uses approximately 4,000 to 8, 〇〇〇 one 兀 (1 to 2 segments, one of which is 512 octets). For example, encoding based on the LDPC code can add approximately 12% to unencoded material. The number of turns in one of the columns of one of the parity check matrices used for such encoding may be about 32 out of about 4000, so even if the character is large, the equivalent calculation is not too long. Thus, the parity bit may be relatively easy to calculate during encoding and the parity may also be relatively easily checked during decoding. The LDpc code can be used with hard input hard output decoding or SIS0 decoding. As before, SISO decoding can sometimes be improved during hard input hard output decoding. I24726.doc •30- 200823666 Yes. The original probability value can be supplied to an SISO decoder as an LLR or in some other form. An LDPC can use an iterative approach to a SISQ decoder. An item is shared by several co-located groups such that one of the calculated probability values obtained from a group provides improved data for use in another co-located group. Such calculations can be performed iteratively until a predetermined condition is met.

在錯誤數目極低時,LDPC解碼可能有時提供較差結 果。扠正在一特定數目下的錯誤變得較困難,從而產生一 ”錯誤地板,,。此問題之一解決方案係組合LDpc解碼與某 些其他形式的解碼。可將使用BCH或某類似代數碼之一硬 輸入硬輸出解碼器增加至一LDPC解碼器。因而,該LDpc 解碼器將錯誤數目減小至某較低位準,接著該bch解碼器 解碼剩餘錯誤。依此方式連續操作之解碼器係稱為"序連”。 在此情況下在將資料儲存於記憶體陣列之前還執行序連編 ㈣顯示在—ECC單元155㈣—序連編碼及解碼範 」該ECC單兀包括一編碼系統157與一解碼系統I”。資 二系由ECC單元155來接收並先在編碼器a内編碼,其中其 健據編碼方案A來進行編碼。接著,將該編碼資料發^ °° B其中其係依據編碼方案B來加以編焉。在本 m編碼方案a係一膽編碼方案,其添加同位位元 心二枓,從而在一範例中將資料數量增加大於 元至來自編巧案^一廣編碼方案,其添加額外同位位 自資扁:=⑽料’從而在此範例中添加一額 科。接者將該雙重編碼資料發送至—調變/解調 124726.doc •31· 200823666 變單元並程式化至一非揎 泣祕土 揮發性記憶體陣列。隨後,你兮卞 k體陣列中讀取該雙重編螞 以口己 ^ ^ 、料並解調變該資料以提供一 軟輸入至解碼器Β。解螞器β ’、 ρη JIM Xji7 ^ 尤用、、扁碼方案B來解碼資料。 同樣地,解碼器A使用編蝎 ’貝抖 SISOMm 55 „ . 案A。此乾例之解碼器3係一 WSO解碼器,其在該雙 代。洛滿足料上執行一或多個解碼迭 眘祖.^ , 解碼器B向解碼器A發送輸出 貝科。來自解碼器B之輪出 所添加之同位資料的項目二般不包括用於編· 該些項目已由解碼器B使用且 不再必需。解碼器B之輪ψ在 ^ 輸出係一軟輸出。此軟輸出可在一 =:、器161内轉換成-硬資料,該轉換器移除概率資 碼&貝㈣換成二進制資訊。接著提供此硬資料作為解 接二之硬輸入,解碼器A執行硬輸入、硬輸出解碼。 ^者將來自該第二解石馬器之硬輸出從ECC單元155中發送 出來作為校正資料。 在一具體實施例中,田μ μ , & 〜 用於終止解碼器Β内迭代解碼之預 :條件係解碼器八指示該資料較優良。在解碼器Β内完成 '、代之後可將軟輸出轉換成硬資料並作為—硬輸入 提供至解碼器Α。解碼器Α接著試圖解碼該資料。若解碼 ^A無法解碼該資料,則解碼器B執行至少—額外迭代。 若解碼器A可解碼該資料,則在解碼HB内不再需要迭 戈因而纟此例中,解碼器八提供一回授⑹至解碼器 δ以指示解碼器B應終止之時間。 k s圖15之乾例處理硬輸入硬輸出與sis〇編碼之序連, 還可使用其他組合。可串聯使用二或更多⑽◦解碼器並 124726.doc -32- 200823666 還可使用二或更多硬輸入硬輸出解碼器。 在上述範例中的軟輸人係藉由使用高於先前用以程式化 資料之解析㈣取賴來獲得。在其他範財,可使用並 他資訊來推導軟輸人資料。除了關於料於記憶體内一資 料位70之-簡單!·決定外所提供的任一品質資訊均可用 以提供-軟輸人。在某些記憶體設計中,維持已抹除一區 塊之次數之-計數。隨料除計數增加,記憶體之實 性可以-預定方式變化,從而使特定錯誤更加可能:在已 知此類圖案之情況下’―抹除計數可詩獲得概率資料。 已知以-可預測方式影響程式化資料之其他因素還可用於 獲得概率資訊。依此方式’可使用用以程式資料之相同解 析度來從記憶體陣列讀取資料且該資料仍用以提供一軟輸 入二可組合各種概率資訊來源。因而,來自使用一高解析 度項取貝料之概率資訊可組合來自另一來源之概率資料。 因而,一軟輸入不限於直接從讀取該記憶體陣列所獲得之When the number of errors is extremely low, LDPC decoding may sometimes provide poor results. It is more difficult for the fork to be in a certain number of errors, resulting in a "wrong floor." One solution to this problem is to combine LDpc decoding with some other form of decoding. BCH or a similar generation of digital A hard input hard output decoder is added to an LDPC decoder. Thus, the LDpc decoder reduces the number of errors to a lower level, and then the bch decoder decodes the remaining errors. The decoder system that operates continuously in this manner Called "quote". In this case, the sequence is also executed before the data is stored in the memory array. (IV) Displayed in - ECC unit 155 (4) - Serial coding and decoding mode. The ECC unit includes an encoding system 157 and a decoding system I". The second system is received by the ECC unit 155 and first encoded in the encoder a, wherein the code is encoded according to the coding scheme A. Then, the coded data is sent to the system according to the coding scheme B. In the present m coding scheme a is a bile coding scheme, which adds a co-located bit heart, so that in one example, the number of data is increased by more than the element to the coding scheme, and the additional homolocation is added. Capital: = (10) material 'and thus add a quota in this example. The receiver sends the double coded data to - modulation / demodulation 124726.doc • 31 · 200823666 variable unit and stylized to a non-sinister secret Soil volatile memory array. Subsequently, you read the double weed in the 兮卞k body array to extract the data and demodulate the data to provide a soft input to the decoder. , ρη JIM Xji7 ^ especially, flat code Case B to decode data. Similarly, the decoder using the encoding scorpion A 'shell shaking SISOMm 55 ". Case A. The decoder 3 of this example is a WSO decoder, which is in the dual generation. The implementation of one or more decodings is performed on the data, and the decoder B sends the output to the decoder A. The items from the decoder B that are added to the co-located data are not included for editing. These items have been used by decoder B and are no longer necessary. The rim of decoder B is a soft output at the output of ^. This soft output can be converted to a hard data in a =:, 161, which removes the probability code & (b) into binary information. This hard data is then provided as a hard input to the second, and decoder A performs hard input and hard output decoding. The hard output from the second calculus horse is transmitted from the ECC unit 155 as correction data. In one embodiment, the field μ μ , & 〜 is used to terminate the decoding of the decoder within the iterative decoding: conditional decoder 8 indicates that the data is superior. After the generation in the decoder, the soft output can be converted to hard data and provided as a hard input to the decoder. The decoder then attempts to decode the data. If the decoding ^A cannot decode the data, then decoder B performs at least - additional iterations. If decoder A can decode the data, then no more aliasing is required in decoding HB. In this example, decoder eight provides a feedback (6) to decoder δ to indicate when decoder B should be terminated. k s Figure 15 The dry case handles the hard input hard output and the sis 〇 encoding sequence, and other combinations can be used. Two or more (10) ◦ decoders can be used in series and 124726.doc -32- 200823666 can also use two or more hard input hard output decoders. The soft input in the above example is obtained by using the parsing (four) that is higher than the previous stylized data. In other models, you can use other information to derive soft input data. In addition to the material in the memory level 70 - simple! · Decide that any quality information provided by the outside can be used to provide - soft input. In some memory designs, the count of the number of times a block has been erased is maintained. As the count increases, the memory's reality can be changed in a predetermined manner, making a particular error more likely: in the case where such a pattern is known, the erase count can be used to obtain probabilistic data. Other factors known to affect stylized data in a predictable manner can also be used to obtain probabilistic information. In this way, the same resolution for the program data can be used to read data from the memory array and the data is still used to provide a soft input. Two sources of probabilistic information can be combined. Thus, probabilistic information from the use of a high resolution item to extract the material can combine probabilistic data from another source. Thus, a soft input is not limited to being obtained directly from reading the memory array.

概率資訊。 X 上述各種II例參照快閃記憶體。然而,目前使用各種其 他非揮發性記憶體且本文所述技術可應用於任一適當非揮 發性記憶體系統。此類記憶體系統可包括(但不限於)基於 鐵電儲存器(FRAM或FeRAM)之記憶體系統、基於磁阻儲 存器(MRAM)之記憶體系統、及基於相變或 ”OUM”(”相變化記憶體”))之記憶體。 本文所引用的全部專利、專利申請案、文章、書籍、規 格、其他公告案、文件及事物全部内容出於各種目的而以 124726.doc -33- 200823666 二用形式併人本文。在該等併人公告案、文件或事物之任 ,者/、本文件之文子之間術語定義或用途的任何不一致戋 衝犬之某種程度上’應適用本標之術語定義或用途。 偟官相對於特定較佳具體實施例已說明本發明之各方 面’但應瞭解,本發明係受隨附中請專利範圍之完 # 保護。 &可 【圖式簡單說明】 圖1顯示在一非揮發性記憶體中程式化至一邏輯^狀態及 一邏輯〇狀態之單元之臨限電壓之概率函數,包括用於區 別邏輯1與邏輯〇狀態之一電壓Vd。 ' 圖2顯示一記憶體系統之組件,包括一記憶體陣列、調 變器/解調變器電路及編碼器/解碼器電路。 圖3顯示程式化至一邏輯丨狀態及一邏輯〇狀態之單元之 項取臨限電壓之概率函數,顯示臨限電壓值。 圖4顯示一記憶體系統之組件,包括一記憶體陣列、調 變器/解調變器電路及編碼器/解碼器電路,一解調變提供 概率值至一解碼器。 ’、 圖5顯示一 NAND串,其係連接至一感應放大器以讀取— 記憶體單元之狀態。 圖6A顯示程式化至一邏輯丨狀態及一邏輯〇狀態之單元之 頃取臨限電壓之概率函數,包括三個臨限電壓。 圖6B顯示程式化至四個狀態之單元之讀取臨限電壓之概 率函數並顯示在讀取單元之情況下的臨限電壓。 圖7顯示在一每單元儲存二位元之記憶體中用於一第一 124726.doc -34- 200823666 及一第二位元二者之個別概率值作為臨限電壓之一函數。 圖8顯示一編碼器/解碼器單元,其具有一軟輸入軟輸出 (SISO)解碼器。 圖9顯示一範例性編碼方案,其中輸入資料係以一方陣 配置並針對各列及行計算一同位位元。 圖10顯示一信號之一特定範例,該信號受到在資料内引 起錯誤之雜訊影響,該等錯誤使用一硬輸入解碼器不可校 正,但可使用一 SISO解碼器來校正。Probability information. X The above various II examples refer to flash memory. However, a variety of other non-volatile memory are currently in use and the techniques described herein are applicable to any suitable non-volatile memory system. Such memory systems may include, but are not limited to, a ferroelectric memory (FRAM or FeRAM) based memory system, a magnetoresistive memory (MRAM) based memory system, and a phase change based or "OUM" (" Phase change memory")) memory. All patents, patent applications, articles, books, specifications, other notices, documents and things cited herein are hereby incorporated by reference in their entirety for all purposes. Any inconsistency in the definition or use of terms between the persons, or the text of the document, shall be to some extent the term definition or use of the subject. The present invention has been described with respect to particular preferred embodiments, but it should be understood that the present invention is protected by the scope of the appended claims. & [Simplified Schematic] Figure 1 shows the probability function of the threshold voltage of a unit programmed into a logic state and a logic state in a non-volatile memory, including for distinguishing between logic 1 and logic. One of the states of the voltage Vd. Figure 2 shows the components of a memory system including a memory array, modulator/demodulator circuit, and encoder/decoder circuitry. Figure 3 shows the probability function of the threshold voltage of the unit programmed into a logic state and a logic state, showing the threshold voltage value. Figure 4 shows a component of a memory system including a memory array, a modulator/demodulator circuit, and an encoder/decoder circuit, a demodulation providing a probability value to a decoder. Figure 5 shows a NAND string connected to a sense amplifier to read the state of the memory cell. Figure 6A shows the probability function of the threshold voltage for a unit that is programmed to a logic state and a logic state, including three threshold voltages. Figure 6B shows the probability function of the read threshold voltage of the unit programmed to four states and shows the threshold voltage in the case of the read unit. Figure 7 shows the individual probability values for a first 124726.doc -34 - 200823666 and a second bit in a memory of two bits per cell as a function of threshold voltage. Figure 8 shows an encoder/decoder unit having a soft input soft output (SISO) decoder. Figure 9 shows an exemplary coding scheme in which the input data is configured in a matrix and a parity bit is calculated for each column and row. Figure 10 shows a specific example of a signal that is affected by noise that causes errors in the data that cannot be corrected using a hard input decoder, but can be corrected using a SISO decoder.

圖11顯示一替代性編碼方案,其中同位位元係計算用於 輸入資料,該輸入資料以列及行配置,一同位位元係計算 用於各列及行。 圖12顯示一記憶體系統之組件’包括一提供_所示編 碼之編碼器與-提供原始概率值至_阳0解碼器之解調變 器。 圖13A顯示圖12之SISO解碼器所執行之一第一水平迭 代。 圖顯示圖12之8180解碼器所執行之一第一垂直迭 代。 圖13C顯示圖12之SISO解碼器所執行之一第二水平迭 代。 圖13D顯示圖I2之SISO解碼器所執行之一第二垂直迭 代。 之一低密度同位檢查 圖14顯示在一 SISO解碼器中所使用 (LDPC)同位檢查矩陣。 124726.doc -35- 200823666 圖15顯示一編碼器/解碼器,其具有序連編碼器並具有 序連解碼器。 【主要元件符號說明】 101 信號 103 雜訊 105 輸入 107 硬輸入 109 軟輸入校正資料Figure 11 shows an alternative coding scheme in which the parity bits are calculated for input data, the input data is arranged in columns and rows, and a parity bit is calculated for each column and row. Figure 12 shows a component of a memory system' including an encoder providing the code shown and a demodulation transformer providing the original probability value to the _ _0 decoder. Figure 13A shows one of the first horizontal iterations performed by the SISO decoder of Figure 12. The figure shows one of the first vertical iterations performed by the 8180 decoder of Figure 12. Figure 13C shows a second horizontal iteration performed by the SISO decoder of Figure 12. Figure 13D shows a second vertical iteration performed by the SISO decoder of Figure I2. One Low Density Parity Check Figure 14 shows the (LDPC) parity check matrix used in a SISO decoder. 124726.doc -35- 200823666 Figure 15 shows an encoder/decoder with a serial encoder and a serial decoder. [Main component symbol description] 101 Signal 103 Noise 105 Input 107 Hard input 109 Soft input correction data

111 軟輸出 113 軟輸出 121 解碼器 123 ECC單元 125 調變器 126 記憶體陣列 127 解調變器 129 SISO解碼器 131 列同位位元 133 計算概率值 135 概率值 137 行同位位元 139 計算概率值 141 輸出概率值 143 輸入值 145 第二水平計算概率值 124726.doc -36- 200823666111 Soft Output 113 Soft Output 121 Decoder 123 ECC Unit 125 Modulator 126 Memory Array 126 Demodulation Transmitter 129 SISO Decoder 131 Column Co-located Bit 133 Calculated Probability Value 135 Probability Value 137 Row Co-located Bit 139 Calculated Probability Value 141 Output probability value 143 Input value 145 Second level calculation probability value 124726.doc -36- 200823666

147 輸出概率值 149 計算概率值 151 輸出概率值 155 ECC單元 157 編碼系統 159 解碼系統 161 軟硬轉換器 163 回授 200 記憶體系統 201 ECC單元 203 編碼器 205 調變/解調變單元 207 調變器 209 記憶體陣列 211 輸入資料位元 213 解調變器 215 解碼器 421 記憶體系統 423 記憶體陣列 425 解調變器 427 調變/解調變電路 429 解碼器 431 ECC單元 541 串 124726.doc -37- 200823666 543 串選擇電晶體 545 串選擇電晶體 547 感應放大器 651 臨限電壓範圍 652 臨限電壓範圍 653 臨限電壓範圍 654 臨限電壓範圍 861 解碼器 863 SISO解碼器 864 硬軟轉換器 865 編碼器 867 ECC單元 124726.doc -38-147 Output probability value 149 Calculation probability value 151 Output probability value 155 ECC unit 157 Encoding system 159 Decoding system 161 Soft and hard converter 163 Feedback 200 Memory system 201 ECC unit 203 Encoder 205 Modulation/demodulation variable unit 207 Modulation 209 memory array 211 input data bit 213 demodulator 215 decoder 421 memory system 423 memory array 425 demodulation 427 modulation / demodulation circuit 429 decoder 431 ECC unit 541 string 124726. Doc -37- 200823666 543 string selection transistor 545 string selection transistor 547 sense amplifier 651 threshold voltage range 652 threshold voltage range 653 threshold voltage range 654 threshold voltage range 861 decoder 863 SISO decoder 864 hard and soft converter 865 Encoder 867 ECC unit 124726.doc -38-

Claims (1)

200823666 十、申請專利範圍: 1· 一種解碼在一非揮發性記憶體陣列内所儲存之資料之方 法,該資料係依據-預定方案來編碼,該方法包含·· 從該非揮發性記憶體陣列中讀取該編碼資料以獲得 數個位元; 獲得關於該複數個位元之概率資訊;以及 …使用該敎方案來計算輸出概率值,該輸出概率值係 從該複數個位元及該概率資訊來計算。200823666 X. Patent Application Range: 1. A method of decoding data stored in a non-volatile memory array, the data being encoded according to a predetermined scheme, the method comprising: · from the non-volatile memory array Reading the encoded data to obtain a plurality of bits; obtaining probability information about the plurality of bits; and using the 敎 scheme to calculate an output probability value from the plurality of bits and the probability information To calculate. •:明求項1之方法,其中獲得關於該複數個位元之概率 貝訊包括使用-解析度來讀取該編碼資料,該解析度解 析超過用以程式化該編碼資料之程式化狀態數目之讀取 3·如請求項!之方法,其中計算該輸出概率值以一第一迭 代發生,且該等輸出概率值係隨後用卩採用至少一額外 迭代使用該預疋方案來計算額外輸出概率值。 4·如請求項3之方法,其中該額外輸出概率值係採用 迭代來計算,直至滿足一預定條件。 ::求項1之方法’其中該等輸出概率值係用於獲得硬 資料。亥硬為料係提供至一硬輸入硬輸出解碼器。 6. -種在_非揮發性記憶體陣列内儲存並檢索資料之 法’其包含: 接收複數個輸入資料位元以儲存於該非揮發性記憶體 冗餘資料位 從該複數個輸入資料位元中計算複數個 124726.doc 200823666 元; 將該複數個輸入資料位元與該複數個冗餘資料位元儲 存於該非揮發性記憶體陣列内的複數個單元内,其中該 複數個單元係個別程式化至η個狀態之一; 隨後讀取該複數個單元以獲得原始資料,該讀取解析 • 每單元η個以上狀態; _ 從該原始資料計算複數個原始概率值,該複數個原始 概率值對應於輸入資料位元及冗餘資料位元; 從該複數個原始概率值中計算一第一複數個計算概率 值,該第一複數個計算概率值之一個別者係從對應於一 輸入身料位元之至少一原始概率值與對應於一冗餘資料 位元之至少一原始概率值來計算;以及 ~弟複數個5十异概率值中計算複數個輸出資料位 元。 7·如請求項6之方法,其中計算該複數個輸出資料位元包 • 括從該第一複數個計算概率值中計算一第二複數個計算 概率值。 • 、月求項7之方法’其中第一複數個計算概率值與該第 複數個叶异概率值係採用一加速碼來逐步計算,該加 速碼重複計算複數個概率值,直至滿足預定條件。 ' 之方法’其中該複數個冗餘資料位元係由一 低崔度同位檢查(LDPC)編碼器來產生。 10·如請求項 、<方法’其進一步包含在該複數個輸出資料 立疋上執行一硬輸入硬輸出錯誤校正碼(ECC)操作。 124726.doc 200823666 其中若該ECC操作指示大於一臨限 則從該第一複數個概率值中計算一 其中若該ECC操作指示低於該臨限 則校正在該複數個輸出資料位元内 11 ·如請求項10之方法 數目之一錯誤數目 第二複數個概率值 12·如請求項10之方法 數目的一錯誤數目 的錯誤。 13· -種在-每記憶體單元儲存至少二位元資料之非揮發性 記憶體陣列中讀取並儲存資料之方法,其包含: 接收複數個輸入貧料位元以儲存於該非揮發性記憶體 陣列内; 從該複數個輸人資料位元中計算複數㈣餘資料位 元; 將該複數個輸入資料位元與該複數個冗餘資料位元儲 存於該非揮發性記憶體陣列内的複數個單元内,其中該 複數個單元係㈣程式化至—第—數目的程式化狀態之 ,該私式化狀態表示每單元至少二位元; 隨後讀取該複數個單元以獲得原始資料,該讀取解析 一第二數目的讀取狀態,該第二數目係大於該第一數 目;以及 隨後從該原始資料中計算複數個原始概率值,該複數 個原始概率值之一個別者對應於一單一輸入資料位元或 一單一冗餘資料位元。 14 ·如明求項13之方法,其中該複數個原始概率值係推導自 一查找表,該查找表使用於一記憶體單元内所儲存之各 I24726.doc 200823666 位元之概率與來自該記憶體單元之原始資料個別相關 聯。 15·如請求項13之方法,其中該複數個輸入資料位元與該複 數個几餘資料位元係藉由將該複數個單元程式化至臨限 電壓範圍來加以儲存,該臨限電壓範圍個別表示二或更 多位元。 格 16.如請求項15之方法,其中該等臨限電壓範圍係依據 雷碼(Gray code)而映射至位元。 17如請求項15之方法,其中該等臨限電遷範圍係依據一二 進制編碼方案而映射至位元。 18·如請求項13之方法,其中該讀取係藉由將來卜單元之 -電遷與-狀基準電塵圖案進行比較來獲得,該圖案 在-程式化狀態之一臨限電壓範圍之一外部部分比在該 臨限電壓範圍之中央處具有一更高基準電壓密度。 19·如請求項13之方法,Α淮一 * 八進 ν包含從該複數個原始概率 值中计异複數個計算概率,— 一個別計算概率值係推導 自對應於一輸入資料位元之 _ 原始概率值與對應於 几餘貝枓位70之至少-原始概率值。 20·如请求項13之方法, 軟輸入軟輸出錯誤校i碼而==諸位元係依據一 算。 而從該複數個原始概率值中計 21·如請求項20之方法,其 22.如請求項20之方法,其中:二校正碼係-加速碼》 --種從-非揮發性記後艘二校:取―叫 I中#取資料之方法,其中 124726.doc 200823666 資料係儲存於程式化至臨限電壓範圍之記憶體單元内, 臨限電壓範圍個別對應於記憶體單元狀態,該方法勺 含: ° 在一程式化至-臨限電壓範圍之記憶體單元上執行複 數個讀取操作,該複數個讀取操作依據—預定圖案而執 行’該預定圖案對於該臨限電壓範圍之一第一部分比對 於該臨限電壓範圍之—第二部分提供—更高密度的讀取 操作;以及 從該複數個讀取操作中推導至少一概率,其表示—程 式化於該記憶體單元内之位元具有—料邏輯狀態之概 24.如請求項23之方法’其中該至少一概率值係使用—查找 表而推導自該複數個讀取操作,該查找表針對儲存:一 記憶體單元内的各位元而提供個別概率值。 25 Γγ求項23之^法’其巾"'概率值係獲得用於儲存於複 於固=體單元内的各位元,該概率值提供-軟輸入用 於一軟輸入軟輸出解碼器。 26·如請求項25之方 /、 一 ν匕$將輸出資訊從該軟輸 入軟輸出解碼器傳挽$ ^^ 考n 硬輸出解碼11,該解碼 器執仃進一步錯誤校正。 27. 一種非揮發性記憶體系統,其包含: —記憶體陣列,其包括满备棚_ 數個資料n/ 70 ’料單元儲存複 - 個同位位元,該等同位位元係依據 碼方案而從該複數個資料位元計算; 124726.doc 200823666 一解調變器,其讀取複數個單元並推導原始概率值, 該原始概率值對應於該複數個資料位元與該複數個同位 位7〇,以及 一解碼器,其接收該等原始概率值並使用該編碼方案 從中計算輸出概率值。 - 28·如請求項27之非揮發性記憶體系統,其中該解調變器 • 解析每單元一數目的讀取狀態,該等讀取狀態數目大於 用以程式化該複數個單元之程式化狀態數目。 籲 29·如請求項27之非揮發性記憶體系統,其中該解碼器隨後 使用該編碼方案從該輸出概率值中計算額外概率值。 30·如請求項29之非揮發性記憶體系統,其中該解碼器採用 二或更多迭代來計算額外概率值,該等迭代係執行直至 滿足一預定條件。 3 1 ·如請求項3〇之非揮發性記憶體系統,其進一步包含一硬 輸入硬輸出解碼器。 • 32·如請求項27之非揮發性記憶體系統,其中該編碼方案使 用加速編碼。 33 ·如請求項27之非揮發性記憶體系統,其中該編碼方案使 • 用一低密度同位檢查(LDPC)碼。 - 34·如請求項27之非揮發性記憶體系統,其進一步包含一轉 換器,其將一軟輸入轉換成一硬輸出。 3 5 · —種非揮發性記憶體系統,其包含: 一非揮發性記憶體陣列,其在一個別記憶體單元内儲 存二或更多位元;以及 124726.doc 200823666 一解調變器,其推導一個別概率值用於儲存於個別記 體單元内的該等二或更多位元之各位元。 36_如請求項35之非揮發性記憶體系統,其進一步包含一查 找表,其用於獲得該等個別概率值用於該等二或更多位 元之各位元。 37·如請求項35之非揮發性記憶體系統,其中該等二或更多 位元包括至少一同位,其係依據一編碼方案而添加。 3 8 _如清求項35之非揮發性記憶體系統,其中該解調變器藉 由使用一解析度來讀取個別記憶體單元來推導該等個別 概率值,該解析度識別超過個別記憶體單元之程式化狀 態數目的程式化狀態數目。 39·如請求項35之非揮發性記憶體系統,其進一步包含一軟 輸入軟輸出解碼器,其接收該等個別概率值作為輸入並 從該等個別概率值中計算輸出概率僞。 40·如請求項35之非揮發性記憶體系統,其中該解調變器使 用一預定讀取操作圖案來讀取個別記憶體單元,該圖案 具有至少一更高密度區域與一更低密度區域。 41· 一種非揮發性記憶體系統,其包含: 一非揮發性記憶體單元陣列,其係個別程式化至二或 更多臨限電壓之一,該等臨限電壓範圍表示二或更多狀 態;以及 一解調變器,其解析一個別單元臨限電壓至該等二或 更多臨限電壓範圍之一已識別者並藉由對於該識別臨限 電壓範圍之一第一部分比對於該識別臨限電壓範圍之一 124726.doc 200823666 弟一PA供一更局密度的讀取操作來進一 別臨限電壓範圍内的個別單元臨項析該識 用於爷八 電壓,該解調變器從 用於該“ 1弟一部分之該等 值。 作并T推導概率 42·如請求項41之非揮發性記憶體系 ^ /、進一步包含一赴 輸入軟輸出解碼器,其接收該等概率值作為輸入 43.如請求項42之非揮發性記憶體系統,其:二^。 出解碼斋採用多個迭代來計算輸出概率值, 預定條件。 罝至滿足一 44·如請求項43之非揮發性記憶體系統,发 八疋一少&含一軟 硬轉換器,當滿足該預定條件時,A 換成硬輸出值。 -將該輸出概率值轉 45. 如請求項43之非揮發性記憶體系統,其進一步包含一硬 輸入硬輸出解碼器,其從該軟輸人軟輸出解碼器中接收 f等輸出概率值’該硬輸入硬輸出解碼器決定滿足該預 定條件之時間。 46. 如,求項41之非揮發性記憶體系統,其中非揮發性記憶 體早兀係個別程式化至四個或更多臨限電壓範圍,該 臨限電屋範圍表示四個或更多狀態以儲存二或更多位 元,該解調變器推導概率值用於該等二或更多位元之各 位元。 124726.doc• The method of claim 1, wherein obtaining a probability for the plurality of bits comprises reading the encoded data using a resolution that exceeds a number of stylized states used to program the encoded data Read 3· as requested! The method wherein the output probability value is calculated to occur in a first iteration, and wherein the output probability values are subsequently used to calculate an additional output probability value using at least one additional iteration. 4. The method of claim 3, wherein the additional output probability value is calculated using an iteration until a predetermined condition is met. :: Method of claim 1 wherein the output probability values are used to obtain hard data. Hai Hard provides a hard input hard output decoder for the system. 6. A method of storing and retrieving data in a non-volatile memory array, comprising: receiving a plurality of input data bits for storing in the non-volatile memory redundant data bits from the plurality of input data bits Calculating a plurality of 124726.doc 200823666 yuan; storing the plurality of input data bits and the plurality of redundant data bits in a plurality of cells in the non-volatile memory array, wherein the plurality of cells are individual programs Converting to one of the n states; subsequently reading the plurality of cells to obtain the original data, the read analysis • n or more states per cell; _ calculating a plurality of original probability values from the original data, the plurality of original probability values Corresponding to the input data bit and the redundant data bit; calculating a first plurality of calculated probability values from the plurality of original probability values, wherein the one of the first plurality of calculated probability values is corresponding to an input body Calculating at least one original probability value of the level bit and at least one original probability value corresponding to a redundant data bit; and ~ a plurality of five different probability values Computing a plurality of output data bits yuan. 7. The method of claim 6, wherein calculating the plurality of output data bit packets comprises calculating a second plurality of calculated probability values from the first plurality of calculated probability values. • The method of monthly finding 7 wherein the first plurality of calculated probability values and the first plurality of leaf different probability values are progressively calculated using an accelerating code that repeatedly calculates a plurality of probability values until a predetermined condition is met. The method of 'the' wherein the plurality of redundant data bits are generated by a low cipher parity check (LDPC) encoder. 10. The request item, <method' further comprising performing a hard input hard output error correction code (ECC) operation on the plurality of output data. 124726.doc 200823666 wherein if the ECC operation indication is greater than a threshold, calculating from the first plurality of probability values, wherein if the ECC operation indication is lower than the threshold, correcting in the plurality of output data bits 11 One of the number of methods as claimed in item 10 is the number of errors, the second plurality of probability values 12, such as an error number of the number of methods of claim item 10. 13. A method of reading and storing data in a non-volatile memory array storing at least two bits of data per memory unit, comprising: receiving a plurality of input poor bits for storage in the non-volatile memory Calculating a plurality (four) of remaining data bits from the plurality of input data bits; storing the plurality of input data bits and the plurality of redundant data bits in the non-volatile memory array Within the unit, wherein the plurality of units are (4) stylized to a -number of stylized states, the private state indicating at least two bits per unit; and then reading the plurality of units to obtain original data, Reading a second number of read states, the second number being greater than the first number; and subsequently calculating a plurality of original probability values from the original data, one of the plurality of original probability values corresponding to one A single input data bit or a single redundant data bit. 14. The method of claim 13, wherein the plurality of original probability values are derived from a lookup table using the probability of each I24726.doc 200823666 bit stored in a memory unit and from the memory The original data of the body unit are individually associated. The method of claim 13, wherein the plurality of input data bits and the plurality of data bits are stored by staging the plurality of cells to a threshold voltage range, the threshold voltage range Individually represents two or more bits. 16. The method of claim 15, wherein the threshold voltage ranges are mapped to bits in accordance with a Gray code. The method of claim 15, wherein the threshold relocation ranges are mapped to bits according to a binary coding scheme. 18. The method of claim 13, wherein the reading is obtained by comparing the electro-migration of the future unit with the -type reference dust pattern, the pattern being in one of the threshold voltage ranges of the -stylized state The outer portion has a higher reference voltage density than at the center of the threshold voltage range. 19. The method of claim 13, wherein the Α 一 * 八 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含 包含The original probability value corresponds to at least the original probability value corresponding to a few squats 70. 20. According to the method of claim 13, the soft input soft output error is corrected by the i code and the == bit is based on the calculation. And from the plurality of original probability values, such as the method of claim 20, 22. The method of claim 20, wherein: the second calibration code system - the acceleration code - the kind of non-volatile record The second school: take the method of “calling I”#, where 124726.doc 200823666 is stored in the memory unit that is programmed to the threshold voltage range, and the threshold voltage range corresponds to the state of the memory unit. The scoop contains: ° performing a plurality of read operations on a memory cell that is stylized to a threshold voltage range, the plurality of read operations performing 'the predetermined pattern for one of the threshold voltage ranges according to a predetermined pattern The first portion provides a higher density read operation than the second portion of the threshold voltage range; and derives at least one probability from the plurality of read operations, the representation being - programmed in the memory unit The bit has a logical state of 24. The method of claim 23, wherein the at least one probability value is derived using a lookup table from the plurality of read operations, the lookup table is for storage: Members yuan to provide individual probability values in the memory unit. The 概率γ 23^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 26. If the party of claim 25 /, a ν匕$, outputs the output information from the soft input to the soft output decoder, the hard output decodes 11, and the decoder performs further error correction. 27. A non-volatile memory system comprising: - a memory array comprising a plurality of data n/70' material units storing complex-one parity bits, the equivalent bit elements being based on a code scheme And calculating from the plurality of data bits; 124726.doc 200823666 a demodulation device that reads a plurality of units and derives a raw probability value corresponding to the plurality of data bits and the plurality of parity bits And a decoder that receives the raw probability values and uses the encoding scheme to calculate an output probability value therefrom. The non-volatile memory system of claim 27, wherein the demodulator • parses a number of read states per cell, the number of read states being greater than a stylization for stylizing the plurality of cells The number of states. The non-volatile memory system of claim 27, wherein the decoder then uses the encoding scheme to calculate an additional probability value from the output probability value. 30. The non-volatile memory system of claim 29, wherein the decoder uses two or more iterations to calculate additional probability values, the iterations being performed until a predetermined condition is met. 3 1 . The non-volatile memory system of claim 3, further comprising a hard input hard output decoder. • 32. The non-volatile memory system of claim 27, wherein the encoding scheme uses accelerated encoding. 33. The non-volatile memory system of claim 27, wherein the encoding scheme uses a low density parity check (LDPC) code. 34. The non-volatile memory system of claim 27, further comprising a converter that converts a soft input to a hard output. 3 5 - a non-volatile memory system comprising: a non-volatile memory array storing two or more bits in one other memory unit; and 124726.doc 200823666 a demodulation transformer, It derives a unique probability value for each of the two or more bits stored in the individual record unit. 36. The non-volatile memory system of claim 35, further comprising a lookup table for obtaining the individual probability values for each of the two or more bits. 37. The non-volatile memory system of claim 35, wherein the two or more bits comprise at least one co-located, which is added in accordance with a coding scheme. The non-volatile memory system of claim 35, wherein the demodulator derives the individual probability values by using a resolution to read individual memory cells, the resolution identifying more than individual memories The number of stylized states of the number of stylized states of the body unit. 39. The non-volatile memory system of claim 35, further comprising a soft input soft output decoder that receives the individual probability values as inputs and calculates an output probability pseudo from the individual probability values. 40. The non-volatile memory system of claim 35, wherein the demodulation device reads a single memory cell using a predetermined read operation pattern, the pattern having at least one higher density region and a lower density region . 41. A non-volatile memory system, comprising: a non-volatile memory cell array that is individually programmed to one of two or more threshold voltages, the threshold voltage ranges representing two or more states And a demodulation transformer that parses an individual cell threshold voltage to one of the two or more threshold voltage ranges and by identifying the first portion of the threshold voltage range for the identification One of the threshold voltage ranges 124726.doc 200823666 Brother-PA for a more density read operation to enter the individual unit of the threshold voltage range, the identification is used for the voltage of the eight, the demodulation from The non-volatile memory system ^ /, as in claim 41, further includes an input soft output decoder that receives the probability value as an input. 43. The non-volatile memory system of claim 42, wherein: decoding is performed using a plurality of iterations to calculate an output probability value, a predetermined condition. 满足 to satisfy a 44. The body system, send a gossip & contains a soft and hard converter, when the predetermined condition is met, A is replaced by a hard output value. - The output probability value is converted to 45. The non-volatile memory of claim 43 The system further includes a hard input hard output decoder that receives an output probability value of f from the soft input soft output decoder 'the hard input hard output decoder determines a time to satisfy the predetermined condition. 46. The non-volatile memory system of claim 41, wherein the non-volatile memory early staging system is individually programmed to four or more threshold voltage ranges, and the threshold electric house range represents four or more states to store two Or more bits, the demodulation transformer derives a probability value for each of the two or more bits. 124726.doc
TW096134734A 2006-09-28 2007-09-17 Soft-input soft-output decoder for nonvolatile mem TWI353521B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/536,286 US7818653B2 (en) 2006-09-28 2006-09-28 Methods of soft-input soft-output decoding for nonvolatile memory
US11/536,327 US7904783B2 (en) 2006-09-28 2006-09-28 Soft-input soft-output decoder for nonvolatile memory

Publications (2)

Publication Number Publication Date
TW200823666A true TW200823666A (en) 2008-06-01
TWI353521B TWI353521B (en) 2011-12-01

Family

ID=39015990

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096134734A TWI353521B (en) 2006-09-28 2007-09-17 Soft-input soft-output decoder for nonvolatile mem

Country Status (3)

Country Link
KR (1) KR20090086523A (en)
TW (1) TWI353521B (en)
WO (1) WO2008042593A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203876A (en) * 2008-09-30 2011-09-28 Lsi公司 Methods and apparatus for soft data generation for memory devices
CN103392206A (en) * 2010-12-23 2013-11-13 桑迪士克以色列有限公司 Non-volatile memory and methods with reading soft bits in non uniform schemes
US10515712B1 (en) 2018-08-22 2019-12-24 Shenzhen Epostar Electronics Limited Co. Memory management method and storage controller

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805663B2 (en) 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7818653B2 (en) 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7904783B2 (en) 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7904793B2 (en) 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
WO2008121553A1 (en) * 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
CN102132350B (en) 2008-07-01 2015-06-17 Lsi公司 Methods and apparatus for soft demapping and intercell interference mitigation in flash memories
US8406048B2 (en) * 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
US8458114B2 (en) 2009-03-02 2013-06-04 Analog Devices, Inc. Analog computation using numerical representations with uncertainty
US8107306B2 (en) 2009-03-27 2012-01-31 Analog Devices, Inc. Storage devices with soft processing
KR101671326B1 (en) * 2010-03-08 2016-11-01 삼성전자주식회사 Nonvolatile memory using interleaving technology and program method thereof
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8782495B2 (en) 2010-12-23 2014-07-15 Sandisk Il Ltd Non-volatile memory and methods with asymmetric soft read points around hard read points
US8498152B2 (en) 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9502117B2 (en) * 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
US8780659B2 (en) 2011-05-12 2014-07-15 Micron Technology, Inc. Programming memory cells
US9064575B2 (en) 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US8990670B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Endurance aware error-correcting code (ECC) protection for non-volatile memories
US9065483B2 (en) 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
TWI492234B (en) 2014-04-21 2015-07-11 Silicon Motion Inc Method, memory controller, and memory system for reading data stored in flash memory
US9460783B2 (en) 2014-06-03 2016-10-04 Micron Technology, Inc. Determining soft data
US10304550B1 (en) 2017-11-29 2019-05-28 Sandisk Technologies Llc Sense amplifier with negative threshold sensing for non-volatile memory
US10643695B1 (en) 2019-01-10 2020-05-05 Sandisk Technologies Llc Concurrent multi-state program verify for non-volatile memory
CN114270307A (en) * 2019-08-22 2022-04-01 谷歌有限责任公司 Slicing for synchronizing processors
US11024392B1 (en) 2019-12-23 2021-06-01 Sandisk Technologies Llc Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory
CN111110247B (en) * 2020-01-13 2023-05-26 广东高驰运动科技股份有限公司 Method and device for monitoring motion data index
CN113129993A (en) * 2020-01-16 2021-07-16 华邦电子股份有限公司 Memory device and data reading method thereof

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US6279133B1 (en) * 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
US6347125B1 (en) * 1999-01-11 2002-02-12 Ericsson Inc. Reduced complexity demodulator for multi-bit symbols
JP4167646B2 (en) * 2004-11-30 2008-10-15 株式会社東芝 OFDM demodulator
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203876A (en) * 2008-09-30 2011-09-28 Lsi公司 Methods and apparatus for soft data generation for memory devices
CN102203875A (en) * 2008-09-30 2011-09-28 Lsi公司 Methods and apparatus for soft data generation for memory devices using reference cells
CN102203875B (en) * 2008-09-30 2016-08-03 Lsi公司 Use the method and apparatus that the soft data for storage component part of reference unit generates
CN103392206A (en) * 2010-12-23 2013-11-13 桑迪士克以色列有限公司 Non-volatile memory and methods with reading soft bits in non uniform schemes
CN103392206B (en) * 2010-12-23 2016-07-13 桑迪士克科技股份有限公司 Nonvolatile multibit memorizer and the method for soft bit is read with the reference threshold voltage of nonuniform mutation operator
US10515712B1 (en) 2018-08-22 2019-12-24 Shenzhen Epostar Electronics Limited Co. Memory management method and storage controller
TWI685850B (en) * 2018-08-22 2020-02-21 大陸商深圳大心電子科技有限公司 Memory management method and storage controller

Also Published As

Publication number Publication date
KR20090086523A (en) 2009-08-13
WO2008042593A1 (en) 2008-04-10
TWI353521B (en) 2011-12-01

Similar Documents

Publication Publication Date Title
TW200823666A (en) Soft-input soft-output decoder for nonvolatile memory
US7904783B2 (en) Soft-input soft-output decoder for nonvolatile memory
US7818653B2 (en) Methods of soft-input soft-output decoding for nonvolatile memory
JP5297380B2 (en) Statistical unit and adaptive operation in non-volatile memory with soft input soft output (SISO) decoder
US8782500B2 (en) Systems and methods for error correction and decoding on multi-level physical media
US8001441B2 (en) Nonvolatile memory with modulated error correction coding
US7904780B2 (en) Methods of modulating error correction coding
US7805663B2 (en) Methods of adapting operation of nonvolatile memory
US8880783B2 (en) Differential vector storage for non-volatile memory
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
US9990247B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
US20080092015A1 (en) Nonvolatile memory with adaptive operation
US20140026018A1 (en) Method for reading data from block of flash memory and associated memory device
US8266495B2 (en) Systems and methods for performing concatenated error correction
US8990668B2 (en) Decoding data stored in solid-state memory
US10326473B2 (en) Symbol-based coding for NAND flash devices
TWI385512B (en) Method of storing data and decoding data stored in a nonvolatile semiconductor memory array, nonvolatile semiconductor and flash memory systems, and method of managing data in flash memory
TWI782187B (en) Performing an additional decoding operation on an identified set of bits of a data block

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees