TW200839503A - Nonvolatile memory with modulated error correction coding - Google Patents

Nonvolatile memory with modulated error correction coding Download PDF

Info

Publication number
TW200839503A
TW200839503A TW96141222A TW96141222A TW200839503A TW 200839503 A TW200839503 A TW 200839503A TW 96141222 A TW96141222 A TW 96141222A TW 96141222 A TW96141222 A TW 96141222A TW 200839503 A TW200839503 A TW 200839503A
Authority
TW
Taiwan
Prior art keywords
data
page
decoding
scheme
bits
Prior art date
Application number
TW96141222A
Other languages
Chinese (zh)
Other versions
TWI385512B (en
Inventor
Yigal Brandman
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/556,636 external-priority patent/US8001441B2/en
Priority claimed from US11/556,632 external-priority patent/US7904780B2/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200839503A publication Critical patent/TW200839503A/en
Application granted granted Critical
Publication of TWI385512B publication Critical patent/TWI385512B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

Data is stored in a nonvolatile memory so that different pages of data stored in the same memory cells are encoded according to different encoding schemes. A first page is decoded according to its encoding scheme and an output is provided based on the decoding of the first page that is subsequently used in decoding a second page.

Description

200839503 九、發明說明: 【發明所屬之技術領域】200839503 IX. Description of invention: [Technical field to which the invention belongs]

本發明係關於非揮發性記憶體系統並係關於操作非揮發 性記憶體系統之方法。 X 【先前技術】 • 非揮發性§己憶體系統用於各種應用。某些非揮發性記情 • 體系統係嵌入一更大系統内,例如一個人電腦。其他非揮 發性纪憶體系統係可卸除地連接至一主機系統並可在不同 〔: 主機系統之間互換。此類可卸除式記憶體系統之範例包括 記憶卡與USB快閃驅動器。依據若干熟知的標準,已採用 商用方式實施包括非揮發性記憶卡的電子電路卡。記憶卡 係與個人電腦、行動電話、個人數位助理(pda)、數位靜 悲相機、數位攝影機、可攜式音訊播放器及其他主機電子 裝置一起使用,以儲存大量資料。此類卡通常包含一可再 程式化非揮發性半導體記憶體單元陣列以及一控制器,該 控制器控制並支援該記憶體單元陣列之操作並與卡所連接 I 的一主機介接。若干同一類型的卡可在設計用以接受該類 型卡的主機卡槽中互換。然而,許多電子卡標準的發展已 - 產生不同類型的卡,其在各種程度上彼此不相容。依據一 , 標準所製造的卡通常不可與設計成採用另一個標準之卡操 作的主機使用。記憶卡標準包含PC卡、C〇mpactFlashTM卡 (CFTM+)、SmartMediaTM卡、MultiMediaCard(MMCTM)、 安全數位(SD)卡、miniSDTM卡、用戶識別模組(sim)、This invention relates to non-volatile memory systems and to methods of operating non-volatile memory systems. X [Prior Art] • Non-volatile § Remembrance systems are used in a variety of applications. Some non-volatile ticks 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 including non-volatile memory cards have been implemented commercially in accordance with a number of well-known standards. The memory card is used with personal computers, mobile phones, personal digital assistants (PDAs), digital still cameras, digital cameras, portable audio players and other host electronic devices to store large amounts of data. Such cards typically include a reprogrammable non-volatile semiconductor memory cell array and a controller that controls and supports the operation of the memory cell array and interfaces with a host to which the card is connected. Several cards of the same type can be interchanged in a host card slot designed to accept this type of card. However, the development of many electronic card standards has produced different types of cards that are incompatible with each other to varying degrees. Cards manufactured according to the standard are not normally used with mainframes designed to operate on another standard card. Memory card standards include PC Card, C〇mpactFlashTM Card (CFTM+), SmartMediaTM Card, MultiMediaCard (MMCTM), Secure Digital (SD) Card, miniSDTM Card, User Identification Module (sim),

Memory Stick™、Memory Stick Duo卡及micr〇SD/TransFlashTM 126159.doc 200839503 兄憶體模組標準。市面上可購得若干有SanDisk公司之商 標’’Cruzer®”的USB快閃驅動器產品。USB快閃驅動器通常 較大且形狀不同於以上說明的記憶卡。 在讀取資料時儲存於一非揮發性記憶體系統内之資料可 能包含錯誤位元。傳統重建損壞資料的方法包括應用錯誤 校正碼(ECC)。在將資料寫入記憶體系統時,簡單的錯誤 板正碼藉由儲存額外同位位元來編碼資料,該等同位位元 將位元群組之同位設定為一所需邏輯值。若在儲存期間資 料係錯誤,則位元群組之同位可能變化。在從記憶體系統 讀取資料之後,位元群組之同位旋即係再次藉由ECC來計 异。因為貧料損壞,所計算同位可能不匹配所需同位條 件,而ECC可偵測損壞。 ECC可具有至少兩個功能··偵錯與錯誤校正。此等功能 之各功能之能力通常以可偵測為錯誤的並隨後校正之位元 數目來測量。偵測能力可與校正能力相同或大於其。一典 型ECC可偵測的錯誤位元數目高於其可校正的錯誤位元數 目。有時將一資料位元及同位位元集合稱為一字。一早期 範例係(7,4)漢明碼(Hamming code),其能夠最多偵測每字 (在此範例中7位元)兩個錯誤並能夠在該七位元字中校正一 錯誤。 更複雜的ECC可校正每字一個以上單一錯誤,但重建資 料在計算上變得愈加複雜。慣例係在某可接受較小錯誤復 原之概率下復原資料。然而隨著錯誤數目不斷增加,可靠 資料復原之機率也在迅速減小或額外硬體及/或效能的相 126159.doc 200839503 關聯成本變得極高。 在半導體記憶體裳置φ — 一、 匕括EEPROM系統,資料可声 不為電晶體之臨界電壓。__ 、 、 對應於不同電堡範圍。若由不同數位資料儲存值 壓位準偏離其較佳範圍, 平作j間電 固則會發生錯誤。該錯誤 ECC來制且在某些情況下可校正此等錯誤。 【發明内容】 將資料儲存於—非揮純半導體記憶料財之 性方法包含:依據_第_編碼方案來編碼資料之巳 分㈣得第Γ複數個經編碼資料位元;將該第-複數個: 編碼負料位元儲存於該記 匕U篮陣列的複數個單元 數個單元之各單元包含嗲箆 ^ μ复 匕3忒弟一複數個經編碼資料位元之至 >一者,以及將第二複數個資料位元儲存於具有該 二個經編碼資料位元之複數個單元中,該複數個單 單π包含該第二複數個資料位元之至少一 、 個資料位元不依據該第一編碼方案予以編碼。-解碼儲存於-非揮發性何體記憶料列巾 -範例性方法包含:讀取儲存於複數個單元中之資 複數個單元之各單元包含至少一第一資料位元斑二第二 料位元;使用該讀取結果來產生對應於該複數個第二 ::的複數個第:校正資料值,該複數個第—校正資料值 係糟由该複數個第一資料位元之ECC校正加以產生·、、 :後使用該讀取結果並還使用該複數個第一校正J料= 產生對應於該複數個第二資料位元的複數 双1固弟二校正資料 126159.doc 200839503 值。 一範例性非揮發性半導體記憶 ^^ φ 糸統包含:一記憶體陣 列〃包括複數個記憶體單元,其個別地保持一第 一第一資料位元與-第二頁之-第二資料位元;以及一 ECC編碼器’其在該複數個單元之健存之前依據一第一編 =方案編碼㈣-頁之資料w在該複數個單元之儲存之 刖依據该第一編碼方案編碼該第二頁之資料。 另-範例性非揮發性半導體記憶體系統包含:一快閃記 憶體陣列’其將資料儲存於複數個單元中,一個別單元儲 存-弟-資料頁之至少一第一資料位元與_第二資料頁之 -第二資料位元;以及—ECC解碼系統,其首先解碼該第 一資料頁並隨後使用該第-資料頁之解碼結果來解碼該第 二資料頁。 【實施方式】 在許多非揮發性記憶體中,讀取自—記憶體陣列之資料 可能有錯。即’程式化至一記憶體陣列之輸人資料之個別 位元可能稍後係讀取為在一不同邏輯值下。圖丨顯示一指 示一纪憶體單元狀態之實體參數(臨界電壓Vt)與該記憶體 單元τ月b係程式化之邏輯值之間的關係。在此範例中,僅 將兩個狀態儲存於單元内。因而,單元儲存一資料位元。 程式化至邏輯0狀態之單元一般具有一臨界電壓,其高於 在邏輯1 (未程式化)狀態下的單元。在一替代性方案中,邏 輯1狀態係記憶體單元之未程式化狀態。圖1之垂直軸指示 基於期望臨界電壓分佈在任一特定臨界電壓下讀取一單元 126159.doc 200839503 2概率。針對程式化至邏輯丨之單元顯示一第一概率函數 並針對耘式化至邏輯0之單元顯示一第二概率函數。然 而’此等函數在其間具有某種程度的重疊。在讀取此類單 70中使用—區別電壓Vd。具有一低於VD之臨界電壓之單 :係視為處於狀態i,而該些具有一高於VD之臨界電壓之 r係視為處於狀態°。如圖1所示,此可能不總是正確 、°因為函數之間的重疊’存在—非零概率,即程式化至 邏輯1狀態之-記憶體單元將係讀取為具有一大於VD之 界電壓’故將讀取為處於—邏輯0狀態。同樣,存在一 非零概率,即一程式化至一 #^ ^ t輯0狀恶之一記憶體單元將 係項取為具有一邏輯1狀態。 内==由於料原因而發生,包括記憶體陣列 二=化早兀所造成之干擾。重疊還可能由於一般不 b 里早70保持於一極緊密臨界電壓範II M A 1 定葙彳几斗1 丨电縻乾圍内而發生。特 疋耘式化技術可允許臨界電壓 準偏幻。然而,此類程式化可花費數二(具有更小的標 要在-個一 _於:^^ 般而S,需要在一記憶體單元内儘可 ^ 有效率i士蚀田-Γ田#田 夕地儲存位元。為 有效羊地使用可用界電壓範圍 以係使其明顯重疊。 相岫狀恶之函數可 非揮發性§己’丨思體系統普遍採用匚方 一記憶體陣列之資料中所發生 / Λ克服在讀取自 一編碼系統從要儲存於-記憶體 般依據 '^输入資料計算某 126159.doc 200839503 些額外ECC位元。其他ECC方案可採用_更複雜方式將輸 入資料映射至輸出資料。該等ECC位元_般連同輸入資料 起儲存但可單獨儲存。該輸入資料與ECC位元稍後一起 從非揮發性記憶體讀取且一解碼器同時使用該資料及咖Memory StickTM, Memory Stick Duo Card, and micr〇SD/TransFlashTM 126159.doc 200839503 Brother Remembrance Module Standard. A number of USB flash drives with the trademark "Cruzer®" from SanDisk are commercially available. USB flash drives are usually larger and different in shape from the memory cards described above. Stored in a non-volatile form when reading data. Data in the memory system may contain error bits. Traditional methods of reconstructing corrupted data include applying an error correction code (ECC). When writing data to a memory system, a simple error board is coded by storing additional parity bits. Meta-encoded data, the equi-bit bit sets the parity of the bit group to a desired logical value. If the data is incorrect during storage, the parity of the bit group may change. Read from the memory system After the data, the homonym of the bit group is again counted by the ECC. Because the poor material is damaged, the calculated parity may not match the required co-location conditions, and the ECC can detect the damage. The ECC can have at least two functions. • Debug and error correction. The capabilities of each of these functions are typically measured in terms of the number of bits that can be detected as erroneous and subsequently corrected. The detection capability can be compared to the correction capability. Same or greater than it. A typical ECC can detect the number of error bits higher than the number of error bits it can correct. Sometimes a data bit and a set of parity bits are called a word. An early example system (7 , 4) Hamming code, which can detect up to two errors per word (7 bits in this example) and can correct an error in the seven-bit word. More complex ECC can correct each word More than one single error, but the reconstruction of the data becomes more complicated in computation. The convention is to recover the data with a probability of accepting a small error recovery. However, as the number of errors increases, the probability of reliable data recovery is also rapidly decreasing. Or the additional hardware and / or performance phase 126159.doc 200839503 associated costs become extremely high. In the semiconductor memory φ - one, including the EEPROM system, the data can not be the threshold voltage of the transistor. __,, Corresponding to different electric castle ranges. If the value of the different digital data storage values deviates from its preferred range, an error will occur in the case of the electric power. The error is ECC and can be corrected in some cases.SUMMARY OF THE INVENTION A method for storing data in a non-volatile semiconductor memory material includes: encoding a data according to a _ _ coding scheme (4) obtaining a plurality of encoded data bits; the first plurality : the coded negative bit is stored in the plurality of cells of the array of U baskets, each of the cells comprising a plurality of encoded data bits to > one, and Storing a second plurality of data bits in a plurality of units having the two encoded data bits, the plurality of single π comprising at least one of the second plurality of data bits, not according to the plurality of data bits The first encoding scheme encodes. - Decoding stored in a non-volatile body material inventory - The exemplary method includes: reading each of the plurality of cells stored in the plurality of cells including at least one first data bit a second level bit of the plaque; using the read result to generate a plurality of first: correction data values corresponding to the plurality of second::, the plurality of first correction data values are caused by the plurality of first ECC correction of data bits The generation of the reading result is followed by using the reading result and also using the plurality of first correction materials = generating a plurality of double 1st stipulation data corresponding to the plurality of second data bits 126159.doc 200839503 value. An exemplary non-volatile semiconductor memory system includes: a memory array comprising a plurality of memory cells, each of which individually holds a first first data bit and a second page - a second data bit And an ECC encoder that encodes the data of the (four)-page according to a first code = scheme before the storage of the plurality of cells, and encodes the data according to the first coding scheme after the storage of the plurality of cells Two pages of information. Another exemplary non-volatile semiconductor memory system includes: a flash memory array that stores data in a plurality of cells, and a cell storage device-division-data page at least one first data bit and _ And a second data bit; and an ECC decoding system that first decodes the first data page and then decodes the second data page using the decoding result of the first data page. [Embodiment] In many non-volatile memories, reading data from a memory array may be wrong. That is, individual bits that are stylized into the input data of a memory array may be read later at a different logical value. Figure 丨 shows a relationship between the physical parameter (threshold voltage Vt) indicating the state of the memory cell and the logic value of the stylized b system of the memory cell. In this example, only two states are stored in the cell. Thus, the unit stores a data bit. 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 indication of Figure 1 reads a unit at any particular threshold voltage based on the desired threshold voltage distribution. 126159.doc 200839503 2 Probability. A first probability function is displayed for the unit of stylized to logical 并 and a second probability function is displayed for units that are morphed to logic 0. However, these functions have some degree of overlap between them. Used in reading such a single 70 - distinguishing voltage Vd. A single having a threshold voltage lower than VD is considered to be in state i, and those having a threshold voltage higher than VD are considered to be in state °. As shown in Figure 1, this may not always be correct, because the overlap between functions 'existing - non-zero probability, ie stylized to a logical 1 state - the memory cell will be read as having a greater than VD bound The voltage 'will read as being in the - logic 0 state. Similarly, there is a non-zero probability, i.e., a stylized to a ^^^ t0-like memory unit that takes the line item as having a logic 1 state. Internal == occurs due to material reasons, including the interference caused by the memory array. The overlap may also occur due to the fact that the normal temperature is not maintained in the first half of the tight threshold voltage II M A 1 . Specialized sizing technology allows the threshold voltage to be quasi-predicted. However, such stylization can take a few (with a smaller standard in - one _: ^^) and S, you need to do it in a memory unit ^ Efficient i Shi tiantian - Putian # Tian Xidi stores the bits. The effective boundary voltage range is used to effectively overlap the sheep fields. The function of the 岫 岫 可 can be non-volatile § 丨 丨 丨 丨 系统 系统 普遍 普遍 普遍 普遍 普遍 记忆 记忆The occurrence of / in the case of reading from a coding system is to be stored in the -memory based on the '^ input data calculated some 126159.doc 200839503 some additional ECC bits. Other ECC schemes can use _ more complicated way to input data Mapped to the output data. These ECC bits are stored together with the input data but can be stored separately. The input data is read from the non-volatile memory together with the ECC bit and a decoder uses the data and the coffee at the same time.

位元來檢查是否存在任何錯誤。在某些情況下,此類EM 位元還可用於識別-出錯位元。該錯誤位元係接著藉由改 變其狀態(從”0”變成” i"或從T變成"〇")加以校正。將咖 位兀附著至資料位元並非用以將資料健存於一非揮發性纪 憶體内之前編碼資料之唯一方式。例如,可依據—方案來 編碼資料位元,該方案提供以下變換:。❹至""、旧至 1100、10至0011及^至⑼⑽。 圖2顯示儲存於一記憶體系統2〇〇中的輸入資料之一範 例。輸入資料係首先藉由-ECC單元2〇1接收,其包括一 編碼器203。該輸入資料可以係要儲存於記憶體系統細中 之主機資料或可以係藉由一記憶體控制器產生之資料。圖 2之範例顯示四個輸人資料位元讀。接著,編碼器2〇3使 用-編碼方案從該等輸人資料位元計算Ecc位元⑴⑴。 一編碼方案之範例係產生ECC位元,其係用於選定資料位 元群組之同位位元。 接著’將該等輸入資料位元與該等ECC位元兩者傳送至 一調變/解調變單元205,其包括一調變器2〇7。調變器2〇7 將猎由ECC單元201傳送之數位資料轉換成—其係寫入一 記憶體陣列2〇9之形式。在-方案中,該數位資料係轉換 成複數個記憶體單元中之複數個臨界電壓值。因而,用於 126159.doc -10- 200839503 將數位資料轉換成一記憶體單元中之一儲存臨界電壓的各 種電路可視為形成一調變器。在圖2之範例中,每一記情 體單元可保持一資料位元。因而,每一記憶體單元可在兩 個範圍之一者中具有一臨界電壓,一範圍表示一邏輯,,丄,, 狀態而另一範圍表示一邏輯"〇”狀態,如圖丨所示。儲存一 邏輯”1”狀態的記憶體單元具有小於vD(<vD)之一臨界電壓 而儲存一邏輯”〇"狀態的記憶體單元具有大於VD(>VD)之一 臨界電壓。單元可程式化並驗證至一高於Vd之標稱臨界電 壓’以至少最初確保在程式化至該等二邏輯狀態之單元之 間存在某較佳間隔。 資料可儲存於記憶體陣列209中某時間週期。在此時間 期間’可能會發生各種事件,引起記憶體單元之臨界電壓 變化。特定言之,涉及程式化及讀取之操作可能要求電壓 以影響其他先前程式化單元之一方式應用至字線及位元 線。此類干擾在裝置之尺寸係減小使得相鄰單元之間的交 互作用較明顯之情況下尤其普遍。電荷還可能在較長時間 週期内丟失。此類資料保持失效還可引起資料在讀取時變 化。由於此類變化,可能讀出資料位元而具有不同於最初 程式化之資料位元之狀態。在圖2之範例中,一輸入資料 位元211係讀取為具有一小於vD(<VD)之臨界值,而其最初 係寫入時具有一大於VD(>VD)之臨界值。 記憶體單元之臨界電壓係藉由調變/解調變單元205中之 一解調變器213轉換成資料位元。此係藉由該調變器執行 之程序的反向程序。解調變器213可包括感測放大器,其 126159.doc -11 - 200839503 從記憶體陣列209中之一記憶體單元讀取一電壓或電流並 從該讀取導出該單元之狀態。在圖2之範例中,一具有一 小於VD(<VD)之臨界電壓之記憶體單元提供一解調變輸出 Γ而一具有一大於VD(>VD)之臨界電壓之記憶體單元提供 一解調變輸出”〇”。此提供所示的輸出序列11〇11111。此 序列之第二位元208由於儲存於記憶體陣列2〇9中而出錯。 解調變器213之輸出係傳送至Ecc單元2〇1中之一解碼器 215。解碼器215由資料位元與ECC位元決定是否存在任何 錯誤。若存在處於該碼之校正能力内的小量錯誤,則校正 該等錯誤。若存在大量錯誤,則其可以係識別但若其處於 該碼之偵測能力内則不校正。若錯誤數目超過該碼之偵測 旎力,則無法偵測到該等錯誤,或可能造成一錯誤校正。 在圖2之範例中’言亥第二位元中的錯誤係偵測並校正。此 從解碼器215提供一輸出(1〇〇1),其與該輸入序列相同。記 憶體系統200之解碼係視為硬輸入硬輸出解碼,因為解碼 器215僅接收表示輸入資料位元與Ecc位元之資料位元, 且解碼器215輸出-校正的資料位元之序列,其對應於輸 入資料位元(或若錯誤數目過高則無法提供一輸出)。 圖3與4顯示對記憶體系統2〇〇之一替代性記憶體系統。 圖3顯不與圖1之該些函數類似的函數,其中ν^〇且低於 VD之臨界電壓表示邏輯〇而高於%之電壓表示邏輯工。代 替顯示一單一電壓臨界電壓分成兩個不同範圍的係, 此處藉由實際電壓數目來指示該等臨界電壓。對應於邏輯 1之函數係在0伏特以上居中,而對應於邏輯"〇,,之函數係 126159.doc -12- 200839503 在ο伏特以下居中。 圖4顯示一記憶體系統42 1,Α蚀 之資料儲存程序類似的資料健:=—與記憶體系統2〇。 y , t 储存程序(使用相同輸入資料 位元)’而具有-不同讀取程序。特定;之 ;=定一臨界電壓是否高於或低於-特定值的係,記 fe體糸統421讀取臨界電壓,如R 一 斯圖3所示。將明白不必讀 ί、Bits to check for any errors. In some cases, such EM bits can also be used to identify - error bits. The error bit is then corrected by changing its state (from "0" to "i" or from T to "〇"). Attaching the gamma to the data bit is not used to store the data in The only way to encode data in a non-volatile memory. For example, data bits can be encoded according to the scheme. The scheme provides the following transformations: ❹ to "", old to 1100, 10 to 0011, and ^ To (9)(10) Figure 2 shows an example of input data stored in a memory system. The input data is first received by the -ECC unit 2〇1, which includes an encoder 203. The input data can be The host data stored in the memory system details may be data generated by a memory controller. The example of Figure 2 shows four input data bit reads. Then, the encoder 2〇3 uses the -coding scheme from The input data bits calculate the Ecc bit (1) (1). An example of an encoding scheme is to generate ECC bits for the same bit of the selected data bit group. Then 'the input data bits and the Either ECC bits are transmitted to one The modulation/demodulation unit 205 includes a modulator 2〇7. The modulator 2〇7 converts the digital data transmitted by the ECC unit 201 into a memory array 2〇9 Form. In the scheme, the digital data is converted into a plurality of threshold voltage values in a plurality of memory cells. Thus, for 126159.doc -10- 200839503, the digital data is converted into a memory cell. The various circuits of the voltage can be considered to form a modulator. In the example of Figure 2, each of the syllabic units can hold a data bit. Thus, each memory cell can have one of the two ranges. The threshold voltage, a range represents a logical, 丄, state and another range represents a logical "〇 state, as shown in Figure 。. A memory cell storing a logic "1" state has a threshold voltage that is less than a threshold voltage of vD (<vD) and stores a logic "〇" state having a threshold voltage greater than VD (>VD). The program can be programmed and verified to a nominal threshold voltage above Vd to at least initially ensure that there is a preferred interval between the cells programmed to the two logic states. The data can be stored in memory array 209 for a certain time. Period. During this time period, various events may occur, causing a change in the threshold voltage of the memory cell. In particular, operations involving stylization and reading may require voltage to be applied to the word in one of the other previously stylized units. Lines and bit lines. Such interference is especially prevalent when the size of the device is reduced such that the interaction between adjacent units is more pronounced. Charges may also be lost over a longer period of time. It can cause the data to change during reading. Due to such changes, it is possible to read the data bits and have a different state from the originally programmed data bits. An input data bit 211 is read to have a threshold less than vD (<VD), and initially has a threshold greater than VD (>VD) when written. Memory cell threshold The voltage is converted into data bits by one of the demodulation transformers 213 in the modulation/demodulation conversion unit 205. This is the reverse procedure of the program executed by the modulator. The demodulation transformer 213 can include a sense The amp, 126159.doc -11 - 200839503 reads a voltage or current from one of the memory cells in the memory array 209 and derives the state of the cell from the read. In the example of Figure 2, one has a smaller The memory cell of the threshold voltage of VD (<VD) provides a demodulated output and a memory cell having a threshold voltage greater than VD (>VD) provides a demodulated output "〇". The output sequence 11 11111 is shown. The second bit 208 of the sequence is erroneous due to being stored in the memory array 2 〇 9. The output of the demodulator 213 is transmitted to one of the Ecc units 2 〇 1 215. The decoder 215 determines whether there is any error by the data bit and the ECC bit. A small amount of error within the corrective ability of the code corrects the error. If there are a large number of errors, it can be identified but not corrected if it is within the detection capability of the code. If the number of errors exceeds the code If the power is detected, the error cannot be detected, or an error correction may be caused. In the example of Figure 2, the error in the second bit of the word is detected and corrected. This is provided by the decoder 215. Output (1〇〇1), which is identical to the input sequence. The decoding of the memory system 200 is considered hard input hard output decoding because the decoder 215 only receives data bits representing the input data bits and the Ecc bits. And decoder 215 outputs a sequence of -corrected data bits corresponding to the input data bits (or an output cannot be provided if the number of errors is too high). Figures 3 and 4 show an alternative memory system for the memory system. Figure 3 shows a function similar to that of Figure 1, where ν^〇 and a threshold voltage below VD represents a logical 〇 and a voltage above 5% represents a logic. Instead of displaying a single voltage threshold voltage, the system is divided into two different ranges, where the threshold voltages are indicated by the actual number of voltages. The function corresponding to logic 1 is centered above 0 volts, and the function corresponding to logic "〇, is 126159.doc -12-200839503 centered below οV. Figure 4 shows a data system similar to the memory system 42 1, the data storage program is similar to: = - and the memory system 2 〇. y , t store programs (using the same input data bits) and have - different readers. Specific; =; = whether the threshold voltage is higher or lower than the - specific value, the system 421 reads the threshold voltage, as shown in R Figure 3. Will understand that you don't have to read ί,

=界電L其他單元操作之構件來儲存與掏取 _貝料(例如電流感測)。電壓感測僅用作-範例。一般而 …界電壓指-電晶體開啟之一閑極電壓。圖4顯示一 項取發生」其比先前範例提供更心的資訊。此可視為一 圖之口貝取具有解析度(及一解析超過用於程式化 之狀態之解析度)之讀取。如先前範例,錯誤發生於讀取 ^料中。此處,對應於第二位元及第三位元之讀數出錯。 第二位元及第三位元係邏輯"〇 "並係藉由程式化一單元以 具有-小於VD之臨界電壓來儲#,但該等單元係讀取為具 有臨界電壓0.05伏特及〇·1〇伏特,其係高於Vd(Vd=(^ 特)。 藉由一系列讀取操作從圖4之記憶體陣列423讀取的原始 電壓係傳送至一調變/解調變單元427中之一解調變器 425。該等原始電壓具有藉由該類比至數位轉換之解析度 所指示之一有限解析度。此處,原始資料係轉換成概率資 料。特定言之’將各單元讀數轉換成一對應位元係一或零 之概率。來自該記憶體陣列之該系列讀數(0.75、0.05、 0·10、0·15' 1·25、1·0、3〇及〇·5伏特)不僅可指示單元之 126159.doc -13 · 200839503 狀態’而且還可用於提供關於該狀態的一確定程度。此可 表示為使用一特定位元程式化一記憶體單元之一概率。因 而’接近〇伏特之讀數可提供低概率值,而愈遠離〇伏特之 口賣數和:供愈鬲概率值。所示概率值係對數概率比(以下所 洋細解釋)。此對於在一邏輯〇狀態之單元提供負數,而對 於在一邏輯1狀態之單元提供正數,數字量值指示正確識 別狀態之概率。第二概率值及第三概率值(01、0·2)指示 邏輯”1”。第二值及第三值指示相當低的概率。 將概率值傳送至一 ECC單元431中之一解碼器429(在一 些情況下,從原始值獲得概率值可視為在該解碼器内執 仃)。ECC單元431還包括編碼器432。該解碼器429對概率 值執行解碼操作。此一解碼器可視為一軟輸入解碼器。一 般而言,軟輸入係指一輪入,iΜ ________=Community L other unit operating components to store and retrieve _ shell material (eg current sensing). Voltage sensing is only used as an example. Generally, the voltage of the boundary voltage - the transistor is turned on as a idle voltage. Figure 4 shows that an item takes place, which is more informative than the previous example. This can be seen as a read of the graph with a resolution (and a resolution that exceeds the resolution for the stylized state). As in the previous example, the error occurred in the reading. Here, the reading corresponding to the second bit and the third bit is erroneous. The second and third dimension logic "〇" is stored by a stylized unit with a threshold voltage less than -VD, but the cells are read to have a threshold voltage of 0.05 volts and 〇·1〇V, which is higher than Vd (Vd=(^). The original voltage system read from the memory array 423 of FIG. 4 by a series of read operations is transferred to a modulation/demodulation unit. One of 427 demodulators 425. The original voltages have a finite resolution as indicated by the resolution of the analog to digital conversion. Here, the original data is converted into probability data. The unit reading is converted to a probability that the corresponding bit system is one or zero. The series of readings from the memory array (0.75, 0.05, 0·10, 0·15' 1·25, 1·0, 3〇, and 〇·5) Volts can not only indicate the status of the unit 126159.doc -13 · 200839503 ' but can also be used to provide a certain degree of certainty about the state. This can be expressed as a probability of staging a memory unit using a particular bit. Thus' Readings close to 〇Vat provide low probability values, and the farther away from crouching The selling number of the mouth and the value of the probability of the supply. The probability value shown is the logarithmic probability ratio (explained below). This provides a negative number for a unit in a logical state and a unit for a state in a logic 1 state. A positive number, the digital value indicates the probability of correctly identifying the state. The second probability value and the third probability value (01, 0·2) indicate a logic "1". The second value and the third value indicate a relatively low probability. It is transmitted to one of the decoders 429 in an ECC unit 431 (in some cases, obtaining a probability value from the original value can be considered to be performed within the decoder). The ECC unit 431 also includes an encoder 432. The decoder 429 pairs the probability The value performs the decoding operation. This decoder can be regarded as a soft input decoder. In general, soft input refers to a round, iΜ ________

供較佳效能且在一些 硬輸出至另-單元。SISQ解碼器一般提 一N况下可提供比硬輸人硬輸For better performance and some hard output to the other unit. SISQ decoder generally provides a harder loss than hard input.

率地使用一 SISO解碼器,可實施 加項量(ECC位元之數 .誤校正能力。為有效 適當編碼/解碼方案, 126159.doc •14- 200839503 且解調變係調適成用以有效率地獲得一軟輸入,而沒有過 多複雜性且不需要過多時間用於從記憶體陣列讀取資料。 在一具體實施例中,用於一SIS0解碼器之一軟輸入係藉 由使用一解析度在一非揮發性記憶體陣列中讀取資料來提 供,該解析度解析比用於程式化該記憶體之狀態更大數目 的狀&目而,可藉由將一記憶體單元程式化至兩個臨界 電[範圍t I來寫入資料並隨後藉由解析三個或更多臨 界電壓範圍來讀取。一般而言,用於讀取之臨界電壓範圍 之數目將係用於程式化之臨界電壓範圍之數目的數倍⑷ 如,多達兩倍)。然而,並非永遠為該情況。 一 ECC單元可形成為一專用電路或此功能可由一控制器 中的動體來執行。一般而言’一控制器係一特定應用積體 電路(ASIC),其具有設計用於特定功能(例如之電路 並還具有勒體來管理控制器操作。因而’一編碼器/解碼 器可藉由記憶體控制器中之一硬體及物體組合來形成。或 者,-編碼器/解碼器(ECC單元)可位於該記憶體晶片上。 =㈣/^„4可能在—記憶體晶片上、在一控制 曰曰片上在-分離晶片或某組合上。一般而言,一調變 海調變單元將包括該記憶體晶片上之至少某些組件(例如 連,至—記憶體陣列之周邊電路)。儘管圖4指示臨界電壓 :讀取至一高解析度(-類比讀取),但所選擇之解析度程 =月。4决於右干因素’包括所使用的非揮發性記憶體之 圖5顯不咖單以31(尤其係解碼器❺)的更詳細視圖。 126159.doc 200839503 解碼器429包括-獅解碼器功與—軟硬轉換器534。 解般接受原始概率資料並在該原始概率資料上 執行咖計算以提供計算概率資料。該計算_資料可視 為-軟輸出。在許多情況下’接著提供此類軟輸出作為對 該咖解碼器之-輸入,使得執行—第二解碼反覆過程。 - SISO解碼n可執行連續反覆過程,直频得至少一預定 條件。例如,-預定條件可能係所有位元均具有-大於一 特定最小值之概率。一預定條件還可以係概率值之一集人 (例如一平均概率值)。-預定條件可能係從一反覆過録 下一反覆過程之結果之收斂(即保持反覆過程,直至幾乎 不存在從額外反覆過程之改良)。-預定條件可以係完成 預疋數目次反覆過程。還可使用此等條件之組合。解碼係 使用資料中之'編碼圖案來執行,該圖案係在儲存資料之 前藉由編碼器432在資料上執行編碼之結果。編碼器432與 解碼器429兩者皆係視為ECC單元431之部分。 有效率的解碼取決於具有一適當編碼/解碼方案。已知 各種方案係用於以適合於隨後以—SIS0解碼器(例如仍〇 解碼器532)解碼之-方式來編碼資料。編碼/解碼方案包括 但不限於渦輪碼、產品碼、BCH碼、李德.所羅門碼化㈤· Solomon eodes)、迴旋碼(參見美國專利申請案第ιι/383,4〇ι 號與第1 1/383,405號)、漢明碼及低密度同位檢查(1^^) 碼。LDPC碼與渦輪碼及其可如何與SIS〇解碼一起使用的 詳細說明係提供於2006年9月28日申請的標題分別為"非揮 發性記憶體之軟輸入軟輸出解碼器”與"非揮發性記情體之 126159.doc -16 - 200839503 軟輸入軟輸出解碼的方法丨,的盖 ^ ^ ^ ^ ® ^ t tf t ^ 1 1/536,286 號與第ll/536,327號中。 在某些情況下,可關於藉由_ECC解碼器實施之校正來 收集統計。可將此類統計用於調整一記憶體陣列之操作參 數。2006年9月28日中請的美國專利中請案第ιι/536,347號 與第1 1/536,372號說明具有調整的操作參數之非揮發性記 憶體系統及用於調整此類參數的方法。 在某些記憶體陣列中’個別記憶體單元保持一個以上資 料位元。此類多層單元(MLC)記憶體將資料位元映射至記 憶體狀態。例如’在一快閃記憶體中,可將兩個以上資料 位元映射至記憶體狀態,每一狀態具有一指派的臨界電壓 範圍。圖6顯示三個資料位元係儲存於一記憶體單元的範 例。該等三個資料位元要求八個(23)不同的記憶體狀態。 一般而s,資料係以頁為單位予以程式化至一 MLC單元, 其中一單元中之各位元來自一不同頁。因而,在圖6中, 最低位元636(最低有效位元或LSB)處於一頁中,中間位元 638處於另一頁中而最高位元64〇(最高有效位元或msb)處 於另一頁中。位元至記憶體狀態的映射可依據任一方便的 方案。 圖7A顯示將一記憶體單元之臨界電壓映射至十六個不同 記憶體狀態S0至S15以儲存四個資料位元的範例。與圖6之 範例不同,此處位元係映射至記憶體狀態使得該LSB針對 相鄰狀態而不同。其他位元亦在相鄰狀態之間不同。在一 範例中,該LSB首先係解碼並用於解碼更高的位元。因為 126159.doc -17- 200839503 -特定記憶體狀態之LSB不同於其鄰近者,故決定該咖 有助於在相鄰狀態之間解析。 圖7B顯示相鄰記憶體狀態以⑽〇)與%(腦)之間的區 別電壓—額外讀取電壓Vl”6係用於提供記憶體 狀態S5#S6㈣額外解析度。圖卿示對應單元臨界電壓 之四個讀數的四個不同臨界電壓讀數八至…可將此類讀 數用於提供-軟輸入用於軟輸入解碼。相鄰狀態35與86在 兩個最低有效位元之兩者中不同。在—單元係讀取為具有 特疋界電壓之處’此指示四個位元。然而,若該讀取 電壓中存在—錯誤使得該讀取電壓對應於另—狀態,則一 個以亡位元(在此範例中係四個之多)可能係錯誤的並可能 要求正。在某些情況下’各頁係分離地經受校正, 各錯誤位元要求分離校正使得—單—錯讀狀態可能要求分 離地校正四個錯誤。 在校正儲存資料之-替代方法中,一位元之校正可提供 接著用於儲存於相同單元中的其他位元之校正的資訊。例 如可將一單几讀取為具有一臨界電壓讀數B,其指示記 憶體狀態S5(1G1G),使得該LSB(第—位元)會係下一位 凡會係1。當在該LSB上執行Ecc校正(例如在包含乙沾之 頁上執行杈正)時,該ECC校正可指示LEB為1。給出B接近 Vreadn而4 LSB為1,該程式化的狀態很可能係S6(1〇〇1)。 此扣示4第_位元可能為〇而非i。因而,在該上執行 的ECC扠正之結果指示該第二位元之一可能值。僅基於該 單兀的臨界電壓,該第二位元會係錯誤地決定為1。然 126159.doc •18- 200839503 而,該ECC校正的LSB指示該第二位元彳艮可能為〇 。 關於該第二位元的額外資訊提供給決定該 °將此 μ罘一位元之一 ECC解碼器。該額外資訊可允許包含_ 尺阿數目之錯誤的 資料之解碼或可允許具有一更小數目之 、 几餘位TL的解碼。 同樣,可將解碼該第二位元的結果用於解 更高位元。 〜及 r 在-範例中,在-單元包含一個以上資料位元之處,首 先解碼-第-位元(以及其他單元中之其他編碼位元)並將 此解碼之結果用於提供針對至少一隨後位元之一指示。在 一方案ι使用-高衫程度來校正_第—位元:將此校 正結果用於決定該單元中的額外位元。可使用不同的冗餘 位準來編碼不同頁中之資料使得即使其包含大量錯誤仍可 、才又正至ν胃。一旦一第一頁係校正,冑可將結果用於 校正储存於相同單元中的額外頁。該等額外頁不必需要相 同的冗餘位準,因為第-資料頁的校正提供關於額外頁之 位元的額外資訊。圖7Α盥一一 At /、/ϋ之方案顯不位7L至記憶體狀 “之適合映射使得解碼該LSB為解碼更高位元提供資 訊。 圖8A顯示映射至-記憶體單元之四個位元842、844、 846 及 848 的 1I7A> 一 之十/、個記憶體狀態SO至S 1 5。該等四個 位元刀別係來自四個 W似不冋頁(頁〇至3)的842、844、846及 848。可藉由使用_ 特疋解析度決定其臨界電壓來讀取該 舌己憶體單元。例如 ^ 、 ’ 11 界電壓可處於指示該記憶體狀態 為S7之—臨界電壓範圍内。在某些情況下,某些機率資訊 126159.doc -19- 200839503 還在如前所述的讀取期間獲得某一機率資訊。從此單元及 其他單元之頁〇讀取的資訊係傳送至一 解碼器(例如一 SISO解碼器),#中一第一 Ecc操作產生對應於該等單元 之的校正資料位元。例如,可決定該LSB 842y,故 狀態S7不正確。可將此資訊用於解碼更高的位元84心祕 及 848。 因為該LSB為1,故可將所有具有一 〇作為lsb 8芯的記 U體狀恶從決定該第三位元之考量消除,如圖所示。此 意味著剩餘的八個狀態(S0、S2、S4、S6、S8、si〇、 S12、S14)可視為比初始的十六個狀態8〇至以5具有更大的 谷限(可擴展映射至剩餘狀態之臨界電壓範圍以佔據消除 的狀悲的範圍)。可將該單元之臨界電壓與剩餘狀態之擴 展L界電壓範圍相比較。由於增加的容限所致,此提供獲 仔-正確結果的更高機率。因而,先前指示狀態”的臨界 電壓讀數現可指示狀態88,因為S7係消除。一第二ecc操 , 作針對頁1之位70產生校正資料位元。該第二ECC操作受 $於在頁0之位元上之第一ECC操作之結果以使其可能不 需要同樣高的冗餘位準。在圖犯之範例中,透過Ecc解碼 決定儲存於該單元中的頁i之位元844為1。此接著係用於 決定下一位元846。 圖8C顯不當決定該等兩個最低有效位元討2與^々為上時 的剩餘狀態(SO、S4、S8、S12)。因為特定狀態係消除, 故針對剩餘狀態該容限係增加。例如,對應於87之一臨界 電壓讀數會指示S8,假定S5至S7於此點係消除。因而,解 126159.doc -20- 200839503 最低有效位元842與844的結果提供幫助獲得下 凡846的資訊。基於增加的容限來 之位元846來獲得卜 仃解碼並針對頁2 圖奶顯示當決定頁2之位元時的剩餘狀態⑼、 ―)。可看出剩餘狀態(S0至S8)具有寬廣的容限,其允許以 機率決定該MSB請。接著,解碼此—決定之結果 針對MSB 848之-校正值。例如,在該臨界電壓指The use of a SISO decoder can implement the addition amount (the number of ECC bits. Error correction capability. For effective proper encoding/decoding scheme, 126159.doc •14-200839503 and the demodulation system is adapted for efficiency. Obtaining a soft input without undue complexity and without undue time for reading data from the memory array. In one embodiment, one of the soft inputs for a SIS0 decoder is used by using a resolution Reading the data in a non-volatile memory array provides a resolution that is greater than the state used to program the memory. The memory unit can be programmed to Two criticalities [range t I to write data and then read by parsing three or more threshold voltage ranges. In general, the number of threshold voltage ranges for reading will be used for stylization. Several times the number of threshold voltage ranges (4), for example, up to two times). However, this is not always the case. An ECC unit can be formed as a dedicated circuit or this function can be performed by a moving body in a controller. In general, a controller is a specific application integrated circuit (ASIC) that has a design for a specific function (for example, a circuit and also has a body to manage the controller operation. Thus an 'encoder/decoder can borrow Formed by a combination of hardware and objects in the memory controller. Alternatively, an encoder/decoder (ECC unit) can be located on the memory chip. = (4) / ^ 4 may be on the memory chip, On a control wafer on a separate wafer or a combination. In general, a modulated sea modulation unit will include at least some components of the memory chip (eg, a peripheral circuit to a memory array) Although Figure 4 indicates the threshold voltage: read to a high resolution (- analog reading), the selected resolution range = month. 4 depends on the right stem factor 'including the non-volatile memory used Figure 5 shows a more detailed view of 31 (especially the decoder ❺). 126159.doc 200839503 The decoder 429 includes a lion decoder function and a soft-to-soft converter 534. The original probability data is accepted and Performing a coffee calculation on the original probability data to The probability data is calculated. The calculation_data can be regarded as a soft output. In many cases, 'the soft output is then provided as an input to the coffee decoder, so that the second decoding repeat process is performed. - SISO decoding n executable Continuously repeating the process, the direct frequency is at least a predetermined condition. For example, the predetermined condition may be that all the bits have a probability of being greater than a certain minimum value. A predetermined condition may also be one of the probability values (for example, an average probability) Value) - The predetermined condition may be a convergence from the result of repeating the next repeated process (ie, maintaining the repeated process until there is almost no improvement from the additional repeated process). - The predetermined condition may be the number of times the preview is completed. A combination of these conditions can also be used. The decoding is performed using a 'coding pattern' in the data, which is the result of encoding on the data by the encoder 432 before storing the data. Encoder 432 and decoder 429 Both are considered part of the ECC unit 431. Efficient decoding depends on having an appropriate encoding/decoding scheme. Various schemes are known for The data is encoded in a manner that is subsequently decoded by a -SIS0 decoder (eg, still decoding 532). The encoding/decoding scheme includes, but is not limited to, turbo code, product code, BCH code, Li De. Solomon coded (5) · Solomon Eodes), convolutional codes (see US Patent Application Nos. ιι/383, 4〇ι and 1 1/383, 405), Hamming codes and low-density parity check (1^^) codes. LDPC codes and turbo codes and A detailed description of how it can be used with SIS〇 decoding is available on September 28, 2006, titled “Soft Input Soft Output Decoder for Non-Volatile Memory” and "Non-Volatile Cases 126159.doc -16 - 200839503 Soft input soft output decoding method 丨, cover ^ ^ ^ ^ ® ^ t tf t ^ 1 1/536, 286 and ll / 536, 327. In some cases, statistics may be collected regarding corrections implemented by the _ECC decoder. Such statistics can be used to adjust the operational parameters of a memory array. Non-volatile memory systems with adjusted operating parameters and methods for adjusting such parameters are described in U.S. Patent Application Serial No. PCT/536,347, filed on Sep. 28, 2006. In some memory arrays, 'single memory cells maintain more than one data bit. Such multi-level cell (MLC) memory maps data bits to a memory state. For example, in a flash memory, more than two data bits can be mapped to a memory state, each state having an assigned threshold voltage range. Figure 6 shows an example of three data bits stored in a memory unit. These three data bits require eight (23) different memory states. Generally, s, the data is stylized into a MLC unit in units of pages, where the elements in one unit come from a different page. Thus, in Figure 6, the lowest bit 636 (least significant bit or LSB) is in one page, the middle bit 638 is in another page and the highest bit 64 〇 (most significant bit or msb) is in another In the page. The mapping of bits to memory states can be based on any convenient scheme. Figure 7A shows an example of mapping the threshold voltage of a memory cell to sixteen different memory states S0 through S15 to store four data bits. Unlike the example of Figure 6, the bit map here is mapped to the memory state such that the LSB differs for neighboring states. Other bits are also different between adjacent states. In an example, the LSB is first decoded and used to decode higher bits. Since 126159.doc -17- 200839503 - the LSB of a particular memory state is different from its neighbors, it is decided that the coffee helps to resolve between adjacent states. Figure 7B shows the difference between the (10) 〇) and % (brain) voltages of the adjacent memory state - the extra read voltage Vl"6 is used to provide the memory state S5#S6 (4) additional resolution. Four different threshold voltage readings of four of the four readings of the voltage can be used to provide a soft input for soft input decoding. Adjacent states 35 and 86 are in both least significant bits. Different. In the case where the unit is read as having a characteristic boundary voltage, this indicates four bits. However, if there is an error in the read voltage, the read voltage corresponds to the other state, then one is dead. Bits (four in this example) may be erroneous and may require positive. In some cases, 'the pages are separately subject to correction, and each error bit requires separation correction so that - single-misread status It may be required to separately correct the four errors. In the alternative method of correcting stored data, the one-bit correction may provide information for subsequent corrections for other bits stored in the same unit. For example, a single reading may be performed. Take a critical electric Reading B, which indicates the memory state S5 (1G1G), so that the LSB (the first bit) will be the next one. When the Ecc correction is performed on the LSB (for example, on the page containing the B dip) In the case of 杈, the ECC correction can indicate that the LEB is 1. Given B is close to Vreadn and 4 LSB is 1, the stylized state is likely to be S6 (1〇〇1). This is 4 _bits possible Therefore, instead of i, the result of the ECC fork performed on this indicates a possible value of one of the second bits. Based on the threshold voltage of the unit, the second bit is erroneously determined to be 1. However, 126159.doc •18-200839503, the ECC corrected LSB indicates that the second bit 彳艮 may be 〇. Additional information about the second bit is provided to determine the one of the μ 罘 one ECC decoder. This additional information may allow decoding of data containing erroneous numbers or may allow decoding with a smaller number of bits TL. Similarly, the result of decoding the second bit may be used. To solve higher bits. ~ and r In the -example, where the - unit contains more than one data bit, first Decoding - the first bit (and other encoding bits in other units) and using the result of this decoding to provide an indication for at least one subsequent bit. In a scheme ι use - high shirt level to correct _ - Bit: This correction result is used to determine the extra bits in the unit. Different redundant levels can be used to encode the data in different pages so that even if it contains a large number of errors, it can be up to the stomach. A first page is corrected, and the results can be used to correct additional pages stored in the same unit. These additional pages do not necessarily require the same redundancy level because the correction of the first-data page provides bits for additional pages. Additional information. Figure 7: At /, / ϋ scheme is not 7L to memory "suitable mapping so that decoding the LSB to provide information for decoding higher bits. Fig. 8A shows a memory state SO to S1 5 mapped to 1I7A> of one of the four bits 842, 844, 846 and 848 of the -memory unit. These four bit cutters are from 842, 844, 846 and 848 of four W-like pages (pages to 3). The tongue unit can be read by determining its threshold voltage using _ 疋 resolution. For example, the ^, '11 boundary voltage can be within the threshold voltage range indicating that the memory state is S7. In some cases, certain probability information 126159.doc -19- 200839503 also obtains some probability information during the reading as described above. The information read from the pages of the unit and other units is transmitted to a decoder (e.g., a SISO decoder), and a first Ecc operation in # generates a corrected data bit corresponding to the units. For example, the LSB 842y can be determined, so state S7 is incorrect. This information can be used to decode higher bits 84 and 848. Since the LSB is 1, it is possible to eliminate all the considerations of having a lsb 8 core from the determination of the third bit, as shown in the figure. This means that the remaining eight states (S0, S2, S4, S6, S8, si〇, S12, S14) can be considered to have a larger valley than the initial sixteen states 8〇 to 5 (extensible mapping) The threshold voltage range to the remaining state is in the range of the sorrow of the elimination. The threshold voltage of the cell can be compared to the extended L-bound voltage range of the remaining state. This provides a higher chance of getting the right result due to the increased tolerance. Thus, the threshold voltage reading of the previously indicated state can now indicate state 88 because S7 is eliminated. A second ecc operation produces a corrected data bit for bit 70 of page 1. The second ECC operation is subject to the page The result of the first ECC operation on the bit of 0 is such that it may not require the same high redundancy level. In the example of the figure, the bit 844 of the page i stored in the cell is determined by Ecc decoding. 1. This is used to determine the next bit 846. Figure 8C shows the remaining states (SO, S4, S8, S12) when the two least significant bits are considered to be up. The state is eliminated, so the tolerance is increased for the remaining state. For example, a threshold voltage reading corresponding to 87 will indicate S8, assuming that S5 to S7 are eliminated at this point. Thus, the solution 126159.doc -20- 200839503 is least effective. The results of bits 842 and 844 provide information to assist in obtaining the next 846. Bits 846 based on the increased tolerance are used to obtain the decoding and display the remaining state (9) when determining the bit of page 2 for the page 2 ―). It can be seen that the remaining state (S0 to S8) has a broad Tolerance, which allows the MSB to be determined by probability. Then, decode this - the result of the decision is corrected for the MSB 848. For example, at the threshold voltage

不US7之處,給定剩餘狀態,88係最可能狀態而刪 848最可能為〇。 可針對該第-ECC解碼操作使用軟輸人或硬輸人來實施 以上範例。隨後的腦操作接收軟輸人,因為在該ECC解 碼中考量從讀取該記憶體單元接收之資料與來自稍早Η。。 解碼之資料兩者。在一範例中,使用—解析度讀取一記憶 體單元,該解析度解析程式化的記憶體狀態並還在該等程 式化的記憶體狀態内解析以提供相對於儲存於該記憶體單 兀中之位元的機率值。在此一範例中,可依據解碼更低位 元之結果來調整對應更高位元的機率值。此提供在一第二 ECC解碼操作中使用一第一ECC解碼操作之結果的另一方 式。針對剩餘狀態調整容限或針對剩餘位元調整機率係用 於將來自解碼一更低位元之資訊併入一更高位元之決定的 不同技術。 圖9A顯示使用一第一頁之ECC校正來提供針對一隨後頁 之ECC校正的軟輸入之一記憶體系統950之一部分的範 例。一記憶體陣列952包括八個記憶體單元C0至c?,各記 126159.doc -21 - 200839503 十思體單元儲存四個眘一 貝料位兀,一位元來自四頁1>〇至p3之各 之7存於頁P0至P3中的資料在儲存之前係編碼。特定言 P0中之貝料係編碼以使其可以係分離地解碼。 •解_變器954係連接至該記憶體陣列而該解調變器之 抑輸出係提供為對—ECC解碼器956之輸入955。該解調變 2 956可包括適合的讀取電路來使用至少足夠的解析度決 • 2個:忑fe體早元之臨界電壓以識別一程式化的記憶體狀 ^ L。針對一第一 ECC解碼模組ECC0提供該解調變器954之 ’ 輸出。該解調變器954之輸出可以係位元(硬輸入)、機率值 (軟輸入)、臨界電壓或其他記憶體單元狀態之指示器。 ECC0解碼儲存於頁p()中的資料。此可以係硬輸人硬輸出 解碼或siso解碼。一般而$ , SIS〇解碼提供更佳的結 果模、、且£CC〇^供权正資料p〇,,其可以係一組機率值或 ”儲存於頁P0中之位元相關聯的校正位元。校正資料p〇, 係用於提供來自該Ecc解碼器956之一第一輸出,即 / , 來自頁P〇的解碼資料。可藉由執行一軟至硬轉換(若P0,係 幸人輸出)並還在將資料儲存於該記憶體陣列952之前剝離 作為編碼資料之部分添加的任何冗餘資料位元來產生該輸 出 0/P〇 〇 " 权正資料P0’係提供為對一第二ECC模組ECC1之一輸 入’其解碼儲存於頁P1中之資料。模組ECC1接收藉由 ECC0產生之校正資料p〇,並還接收來自該解調變器954之一 輸入958。來自該解調變器954之輸入958可以係一組機率 值或基於讀取該記憶體陣列952的位元。該校正p〇,資料與 126159.doc * 22 - 200839503 二料讀人958之組合可以係視為形成對模組eccr 二軟輸入。例如,在E⑽提供建議^之_位元為!的硬 ,出但來自該解調變器954之輸入958建議該位元為〇之 處’此專可以係組合以提供⑽之―低概率。在咖〇與 來自該解調變器954之輸入958兩者皆建議為i之處,此等 可以係組合為H高概率。在提供機率值之處,可將盆 以-適合方式(例如藉由平均機率值)加以組合。ECC模組Where not US7, given the remaining state, 88 is the most likely state and 848 is most likely to be 〇. The above example can be implemented using soft input or hard input for the first ECC decoding operation. Subsequent brain operations receive soft input because the data received from reading the memory unit is taken into account in the ECC decoding. . Decoded data both. In one example, a memory unit is read using resolution, which resolves the stylized memory state and is also parsed within the stylized memory states to provide a single copy relative to the memory. The probability value of the bit in the middle. In this example, the probability value corresponding to the higher bit can be adjusted based on the result of decoding the lower bit. This provides another way to use the result of a first ECC decoding operation in a second ECC decoding operation. Adjusting the tolerance for the remaining state or adjusting the probability for the remaining bits is a different technique for incorporating the decision to decode a lower bit of information into a higher bit. Figure 9A shows an example of a portion of a soft input memory system 950 that uses ECC correction of a first page to provide ECC correction for a subsequent page. A memory array 952 includes eight memory cells C0 to c?, each of which records 126159.doc -21 - 200839503. The body unit stores four Shenyibei material levels, one element from four pages 1> to p3 The data stored in pages P0 to P3 are encoded before storage. In particular, the shellfish in P0 is encoded so that it can be decoded separately. • The decoder 954 is coupled to the memory array and the demodulation output is provided as an input 955 to the ECC decoder 956. The demodulation 2 956 may include a suitable read circuit to use at least a sufficient resolution to determine the threshold voltage of the 体fe body early to identify a stylized memory shape. The output of the demodulation transformer 954 is provided for a first ECC decoding module ECC0. The output of the demodulator 954 can be an indicator of a bit (hard input), a probability value (soft input), a threshold voltage, or other state of the memory cell. ECC0 decodes the data stored in page p(). This can be hard input or hard output decoding or siso decoding. In general, $, SIS〇 decoding provides better result modulo, and £CC 〇^ is entitled to positive data p〇, which can be a set of probability values or “correction bits associated with the bits stored in page P0” The correction data is used to provide a decoded output from the first output of the Ecc decoder 956, ie, from page P. It can be performed by performing a soft-to-hard conversion (if P0, the output is fortunately And also stripping any redundant data bits added as part of the encoded data before storing the data in the memory array 952 to generate the output 0/P〇〇" the right data P0' is provided as a One of the two ECC modules ECC1 inputs 'decodes the data stored in page P1. The module ECC1 receives the correction data p〇 generated by ECC0 and also receives an input 958 from the demodulation transformer 954. The input 958 of the demodulation transformer 954 can be a set of probability values or based on reading the bit of the memory array 952. The correction p〇, the data and the combination of 126159.doc * 22 - 200839503 It is considered to form a soft input to the module eccr. For example, provide suggestions in E(10)^ The bit is hard for !, but the input from the demodulation transformer 954 suggests that the bit is a 〇 'this can be combined to provide a low probability of (10). In the curry and from the demodulation Both inputs 958 of 954 are suggested as i, and these may be combined to a high probability of H. Where probability values are provided, the basins may be combined in a suitable manner (e.g., by an average probability value). Module

ECC1基於來自ECCG之輸人與來自該解調變器心之輸入 958的組合來實施解碼以提供校正資㈣,。可將校正資料 P1’用於提供輸出〇/Pl(來自心之解碼資料),其係移除任 何冗餘資料位元之一硬資料。還將校正資料ΡΓ提供給另 一 ECC模組(ECC2)。 ECC模組ECC2接收P1,並還接收來自該解調變器954之輸 入960 ’並在此等輸入之組合上執行Ecc解碼以如前所述 提供校正資料P2,。可將校正資料p2,用於提供輸出〇/p2(來 自頁P2之解碼資料),其係移除冗餘資料位元之一硬輸 出。接著,將校正資料P2,傳遞至ECC模組ECC3,其中其 與來自該解調變器954之輸入962組合以決定校正資料 P3’ ’其對應於儲存於頁P3中之資料。可將校正資料^,用 於提供輸出Ο/P〆來自頁P3之解碼資料),其係移除冗餘資 料位元之一硬資料。 ECC模組ECC1至ECC3可以係任一適合類型並可使用類 似編碼方案或不同編碼方案。ECC 1可接收一硬輸入或一 軟輸入並可使用硬輸入硬輸出解碼、SIS〇解碼或其他技術 126159.doc -23- 200839503 來實施解碼。ECC模組ECCl至ECC3各接收兩個輸入,兩 個輸入之各輸入可以係一軟輸入或一硬輸入。即使兩個輸 入皆係硬輸入,其在組合上仍可以係視為提供一軟輸入。 在其他範例中,可一起編碼與解碼頁。例如,可一起解 碼一第一頁與一第二頁。隨後,可讀取一第三頁與一第四 頁並可將解碼該等第一與第二頁之結果用於解碼該等第三 與第四頁。ECC1 performs decoding based on the combination of the input from the ECCG and the input 958 from the demodulation heart to provide corrections (4). The correction data P1' can be used to provide an output 〇/P1 (decoded data from the heart) which removes one of the redundant data bits. The calibration data is also provided to another ECC module (ECC2). The ECC module ECC2 receives P1 and also receives input 960' from the demodulation transformer 954 and performs Ecc decoding on the combination of such inputs to provide correction data P2 as previously described. The correction data p2 can be used to provide an output 〇/p2 (decoded data from page P2) which removes one of the redundant data bits for hard output. Next, the correction data P2 is passed to the ECC module ECC3, where it is combined with the input 962 from the demodulation transformer 954 to determine the correction data P3'' which corresponds to the material stored in the page P3. The correction data ^ can be used to provide output Ο / P 解码 decoding data from page P3), which is to remove one of the redundant data bits of the hard data. The ECC modules ECC1 to ECC3 may be of any suitable type and may use a similar coding scheme or a different coding scheme. ECC 1 can accept a hard input or a soft input and can implement decoding using hard input hard output decoding, SIS decoding or other techniques 126159.doc -23- 200839503. The ECC modules ECC1 to ECC3 each receive two inputs, and each of the two inputs can be a soft input or a hard input. Even if both inputs are hard inputs, they can still be considered as providing a soft input in combination. In other examples, pages can be encoded and decoded together. For example, a first page and a second page can be decoded together. Subsequently, a third page and a fourth page can be read and the results of decoding the first and second pages can be used to decode the third and fourth pages.

U 圖9B顯示可用於ECC模組ECCuECC3之一 eCC模組964 的第一範例。兩個輸入960、968係提供至該ECC模組 964藉由一解调變器提供之一輸入968反映從一記憶體陣 列讀取之資料而藉由一先前ECC模組提供之另一輸入9M 解碼儲存於相同記憶體單元中之另一資料。該等兩個輸入 966、968係提供至一組合電路97〇,其基於該等兩個輸入 966、968產生一單一輸出972。例如,可藉由一先前ecc 杈組來提供增加的容限並可藉由一解調變器來提供一臨界 電壓。此等係在該組合電路97G中組合以提供—軟輸出。 在二解調變器提供機率值之處,可組合來自該解調變器盥 先前ECC模組之機率值以提供—組合值,即該等機率值: 平均。可藉由在該等兩個硬輸入相同之處指派一高機率與 在該等兩個硬輸人不同之處指派—低機率來組合硬輸入了 該組。電路97G可使用—查詢表或其他適合構件來提供取 決於該等兩個輸入之-輸出。接著,將藉由該組合電路產 生之軟輸出972傳送至_SIS〇解碼器974,其執行—或多次 反覆過程以決定輸出機率值(或輸出位元,若執行軟:: 126159.doc •24- 200839503 轉換)。 圖9C顯示具有一組合電路978之一替代性ECC模組976, 孩組口電路組合來自一解調變器之一輸入978與來自另一 ECC模組之一輸入98〇以提供一軟輸出,如前所述。在 此U況下,接著藉由一軟至硬轉換器986將該軟輸出982轉 換成-硬輸出984(最大可能位元係提供為該輸出)。該硬輸 出984接著係提供至一硬輸入硬輸出(hih〇)解碼器,其 解碼該資料以提供校正資料。或者,可—起執行組合與軟 至更轉換W如使用針對不同輸人值(硬或軟)提供硬輸出 值之一查詢表。 解碼器模組ECC0僅接收—輸人⑸(來自該解調變器卜 其可以係-軟或-硬輸入而解碼器ECc〇可產生一軟或一 硬輸出。例如’可類似於圖5之解碼器429來形成模組 ECC〇°ECC〇至ECC3可如圖9B或圖9C所示。ECC模組 ECC0至ECC1可以係形成為分離電路或可m成n -電路,其係經組態用以執行連續ECC操作。在—範例 中,該等ECC模組係形成為—控制器ASIC之部分。 如上所述,可以分離的解碼步驟來解碼不同頁。解碼一 第一頁之結果係提供以幫助解碼—第二頁。可提供解碼該 第二頁之結果以幫助解碼一第三頁等等。為實現頁之分離 解碼’可分離地編碼各頁。藉由解碼該第—頁所提供之額 外資訊’可允許使用更少冗純元綠行㈣二頁之解 碼。依據一範例’針對不同頁提供不同數目之Ecc位元。 可針計第-頁提供大量的冗餘位元以允許A量錯誤之校 126159.doc -25- 200839503 正。因為由於解碼該第一頁所致與該第二頁之位元相關聯 的更寬廣容限(或更高機率),可針對—第二頁提供更小量 的冗餘位元。可將具有不同冗餘程度 不!之不同編碼方案用於 不同頁。一般而言,用於一記憶體车 版示統的可定址單元係一 區段。在一範例中,一區段係儲存 卞Α便具延伸於一 MLC記 憶體中之一頁以上。可將使用不同數目 ECC方案用於相同區段的不同頁。 之冗餘位元的不同 Γ / 圖1〇顯示儲存於單元中使得個別單元包含—單—區段之 四個位元(位元0至位元3)的八個區段(區段〇至7)。區段〇至 7係-起程式化作為對應於位元〇至3之四頁。在位元係如 謀所示分配給記憶體狀態之處’可預期頁〇將係讀取為 具有大量錯誤,頁#有比頁0少的錯誤,頁2具有比頁丄少 的錯誤’而頁3具有比頁2少的錯誤。此係因為針對愈高頁 之愈大容限(或機率ρ此意味著針對愈低頁可能需要兪多 錯誤校正,尤其係頁〇。可相應地選擇所使用編碼方= 包括冗餘資料量。術語"頁"―般係用於表示_記憶體陣列 中之-程式化單位。可使用一 MLC方案來將多個頁儲存於 相同單元中。在此處呈現的特定範例中,—起健存於一單 元群組中的所有頁係一起讀取並且不執行一頁之個別讀 取。因而,用於此一系統的最小讀取單位可由多個頁組 成。將明白,術語"頁,,表示一起程式化的橫跨—單元群2 處於相同有效性之—位元群組,而非可以係―特定記情體 系統中作為一單位一起讀取的位元群組。 _ 圖11A顯示橫跨四頁(頁〇至3)延伸並包括兩個不同編碼 126159.doc -26- 200839503 方案之一區段1190的範例。頁0與頁}中的資料係使用一 LDPC、、扁碼方案予以編碼,其產生冗餘資料位元1 I%。可 使用SISO解碼來解碼此資料,其允許大量錯誤的校正。頁 2與3中的資料未使用一 LDpc碼來編碼。然而,頁2至3的 貝料係使用一 BCH碼加以編碼,其提供冗餘資料位元 1194。亦可使用BCH編碼來編碼頁〇至i的資料,或可將 BCH編碼限制於頁2至3。在BCH編碼覆蓋頁〇至丨之處,首 先依據BCH編碼來編碼頁〇至4的資料,接著依據LDpc編 碼進一步編碼頁〇至丨。稍後,首先使用LDPC來解碼頁〇至 1中之資料,接著使用BCH來解碼頁〇至4。 圖11B顯示僅依據一 LDpc碼來編碼頁〇之一區段丨195的 另一範例,故僅頁〇包含冗餘^1)?(::產生位元1196。更高頁 1至3係使用一BCH碼予以編碼,其使用bch產生冗餘位元 1198。BCH編碼可延伸至除頁1至3之外還覆蓋頁〇,或可 僅覆蓋頁1至3。因而,依據不用於其他頁之一編碼方案來 編碼頁〇。 圖11C顯示不同編碼方案係用於各頁〇至3之一區段1199 的另一範例。依據一第一編碼方案針對頁〇產生冗餘資料 ECca,依據一第二編碼方案針對頁i產生冗餘資料ecCb, 依據一第二編碼方案針對頁2產生冗餘資料ECCc並依據一 第四編碼方案針對頁3產生冗餘資料ECCd。頁〇比其他頁 /、有更夕的几餘資料ECCa,使得頁0係首先解碼並用於提 供解碼其他頁之資訊。針對不同頁之編碼方案可以係相同 類31(例如全部LDPC方案)或不同類型(例與方 126159.doc -27- 200839503 案^相同類型之方案在其使用不同冗餘資料數量之處可 二係:見為不同方案。在某些情況下,$高頁之編碼方案亦 :覆蓋更低頁。因而,ECCB可覆蓋頁^與工以使得此等頁 係:據該第二編碼方案—起解碼。Eccc^覆蓋頁⑴以 使得此等頁係依據該第三編碼方案一起解碼等等。此類頁 亦必須係一起編碼。 儘管圖11A至llc之範例顯示冗餘資料與其他資料分 4在八他方案中可將未編碼資料以如前所述之更複雜 方式映射至編碼資料。與未編碼資料相比較用於編碼資料 的額外位元之數目可以係視為冗餘位元之數目,即使在不 存在可分離識別的冗餘位元之處。以上範例之頁3中顯示 標頭資訊1101。然而,亦可將標頭資訊提供於其他位置。 圖12顯示針對不同頁使用不同編碼方案之一記憶體系統 的範例特疋5之,該記憶體系統顯示一編碼器 1205 ’其將LDPC編碼應用至某些資料並將BCH編碼應用 至其他資料(在其他範例中,;8(::11編碼應用於所有資料而 L D P C編碼僅應用於某些資料)。該經編碼資料接著係傳送 至一調變器1207,其將資料儲存於一記憶體陣列12〇8中。 特定言之,調變器1207將LDPC編碼的資料儲存於一第一 頁中並將BCH編碼的資料儲存於相同記憶體單元中之更高 頁中。該調變器依據一適合方案(例如圖7A之方案)將資料 位元映射至記憶體狀態,使得一第一位元(第一頁中之一 位元)從一記憶體狀態替換至下一記憶體狀態。 資料係藉由一解調變器12〇9從該記憶體陣列讀取並係提 126159.doc -28- 200839503 供至一解碼器1211,其在來自頁〇之資料上實施LDpc解碼 並在來自其他頁之資料上實施BCH解碼。來自LDpc解碼 器1215之一輸出1213係提供至該bch解碼器m 7使得該 BCH解碼器1217可使用藉由該LDpc解碼器i2i5之校正= 幫助執行BCH解碼。還可存在某種從—BCH解碼操作之一 k後BCH解碼操作之輸出。 在某些情況下,來自一BCH解碼器之輸出亦係回授至 r LDPC解碼器以用於LDPC解碼。例如,LDPC解碼可以係 ' &覆式解碼,其執行若干反覆過程並接著將—輸出提供至 該BCH解碼器。若該BCH解碼器不能校正所提供資料,則 其可將-信冑返回至該LDPC解碼器來指示應執行更多反 覆過程。 ,13顯示包括一編碼器1321之一記憶體系統1319,該編 碼裔依據-第-編碼方案在一第一編碼器1323中編碼第一 貝料並依據-第二編碼方案在一第二編碼器1325中編碼第 , )資料,該等第一與第二資料係藉由-調變器1329程式化 ^ 卩共用記憶體陣列1327中之單元。資料係、藉由-解調變器 1331從記憶體陣列1327讀取並藉由解碼器η”予以解碼。 依據該第-方案在-第一解碼器i 3 3 5中解碼對應於第一資 料之讀取資料,並依據該第二方案在一第二解碼器^”中 解碼對應於第二資料之讀取資料。來自第一解碼器1335之 輸出1339係提供至第二解碼器1337使得可將解碼第一資 料之結果用於解碼第二資料。同樣,來自第二解碼器Ur 之一輸出1341係提供至第一解碼器1335使得可將解碼第二 126159.doc -29- 200839503 :料之結果用於解碼第-資料。因而,第-解碼器1335鱼 弟-解碼IIU37交互作用以共⑽碼資料。第— 输 ::案:係咖方案,其在-範例中具有不同的冗:資 二。在另—範例中,胃第—編碼方案係-LDPC方案而 该第二編碼方案係一 BCH方案。 f述各種範例參照快閃記憶體。然而,各種其他非揮發 性記憶體目前在使用巾且本文所述技術可應用於任—適^ 非揮發性記憶體系、統。此類記憶體系統可包括(但不限於) 基於鐵電儲存器(FRAM或FeRAM)之記憶體“、基於磁 儲存器(MRAM)之§己憶體系統及基於相變(pR趟或 "〇ϋΜ”(”相變化記憶體”))之記憶體。 ’ 本文參照之所有專利、專利申請案、文章、書籍、說明 書、其他公開t、文件及事物由於所有目的全部以引用方 式併入本文中。在任何併入之公開案、文件或事物與本文 件之正文間之一術語之定義或使用之任何不一致或衝突之 範圍内,應優先採用該術語在本文件中之定義或使用。 雖然已就特定較佳具體實施例而說明本發明之各種態 樣’但是應明白本發明有權在所时請專利範圍之全部範 疇内受到保護。 【圖式簡單說明】 圖1顯示在一非揮發性記憶體中程式化至一邏輯丨狀態及 一邏輯0狀態之單元之臨界電壓之概率函數,包括用於區 別邏輯1與邏輯〇狀態之一電壓vD。 圖2顯示一記憶體系統之組件,其包括一記憶體陣列、 126159.doc -30- 200839503 凋變器/解調變器電路及編碼器/解碼器電路。 圖3顯不程式化至一邏輯1狀態及一邏輯〇狀態之單元之 讀取臨界電壓之概率函數,顯示臨界電壓值。 Θ 4 員示s己憶體系統之組件,其包括一記憶體陣列、 凋炎器/解凋變器電路及編碼器/解碼器電路,一解調變器 提供概率值至一解碼器。 圖5顯示一ECC單元,其具有一軟輸入軟輸出(sis〇)解 碼器。U Figure 9B shows a first example of an eCC module 964 that can be used with one of the ECC modules ECCuECC3. Two inputs 960, 968 are provided to the ECC module 964. One input 968 is provided by a demodulator to reflect data read from a memory array and another input 9M provided by a previous ECC module. Decode another data stored in the same memory unit. The two inputs 966, 968 are provided to a combination circuit 97A which produces a single output 972 based on the two inputs 966, 968. For example, an increased tolerance can be provided by a previous ecc group and a threshold voltage can be provided by a demodulation transformer. These are combined in the combining circuit 97G to provide a soft output. Where the second demodulator provides a probability value, the probability values from the demodulation transformer 先前 previous ECC module may be combined to provide a combined value, i.e., the probability values: average. The group can be hard-computed by assigning a high probability that the two hard inputs are the same and assigning a low probability at the difference between the two hard inputs. Circuitry 97G may use a look-up table or other suitable component to provide an output that depends on the two inputs. Next, the soft output 972 generated by the combining circuit is sent to the _SIS 〇 decoder 974, which performs - or multiple iterations to determine the output probability value (or output bit if executed soft :: 126159.doc • 24-200839503 Conversion). Figure 9C shows an alternative ECC module 976 having a combination circuit 978 that combines input 978 from one of the demodulators with input 98 from one of the other ECC modules to provide a soft output, As mentioned earlier. In this U condition, the soft output 982 is then converted to a hard output 984 by a soft to hard converter 986 (the largest possible bit is provided as the output). The hard output 984 is then provided to a hard input hard output (hih) decoder that decodes the data to provide correction data. Alternatively, it is possible to perform a combination and soft to more conversions, such as using a lookup table that provides one of the hard output values for different input values (hard or soft). The decoder module ECC0 only receives the input (5) (from which the demodulator can be - soft or - hard input and the decoder ECc can produce a soft or a hard output. For example 'can be similar to Figure 5 The decoder 429 to form the module ECC〇ECC〇 to ECC3 can be as shown in FIG. 9B or FIG. 9C. The ECC modules ECC0 to ECC1 can be formed as separate circuits or can be formed into n-circuits, which are configured To perform continuous ECC operations. In the example, the ECC modules are formed as part of the controller ASIC. As described above, separate decoding steps can be used to decode different pages. The result of decoding a first page is provided. Help decoding - second page. The result of decoding the second page can be provided to help decode a third page, etc. Separately encoding the pages for separate decoding of the page. By decoding the page provided The extra information 'allows the use of less redundant pure green lines (four) two pages of decoding. According to an example 'providing a different number of Ecc bits for different pages. The page can provide a large number of redundant bits to allow A The wrong amount of school 126159.doc -25- 200839503 positive. Because because of The wider margin (or higher probability) associated with the first page due to the first page results in a smaller amount of redundant bits for the second page. The different coding schemes are used for different pages. In general, the addressable unit for a memory car display system is a segment. In one example, a segment is stored in a portable device. More than one page in an MLC memory. Different numbers of ECC schemes can be used for different pages of the same segment. The different bits of the redundant bits / Figure 1〇 are stored in the cell so that the individual cells contain - - eight segments of the four bits of the segment (bit 0 to bit 3) (segment 〇 to 7). The segment 〇 to 7 is stylized as corresponding to the bit 〇 to 3 Page. In the case where the bit system is assigned to the memory state as shown in the figure, it is expected that the page will be read as having a large number of errors, page # has fewer errors than page 0, and page 2 has fewer errors than page number. 'And page 3 has fewer errors than page 2. This is because the larger the tolerance for the higher the page (or the probability ρ this means the more Low pages may require a lot of error corrections, especially pages. You can choose which encoding side to use = including the amount of redundant data. The term "page" is used to mean - stylized in the memory array Units. An MLC scheme can be used to store multiple pages in the same unit. In the specific example presented here, all pages that are stored in a unit group are read together and do not execute one page. Individual reads. Thus, the minimum unit of read for this system can consist of multiple pages. It will be understood that the term "page, means that together the stylized cross-cell group 2 is in the same validity - the bit Groups, rather than groups of bits that are read together as a unit in a particular ticker system. _ Figure 11A shows an example of a section 1190 extending across four pages (pages to 3) and including one of two different codes 126159.doc -26-200839503. The data in pages 0 and 5 is encoded using an LDPC, flat code scheme, which produces redundant data bits of 1%. This material can be decoded using SISO decoding, which allows for a large number of erroneous corrections. The data in pages 2 and 3 are not encoded using an LDpc code. However, the shells of pages 2 through 3 are encoded using a BCH code which provides redundant data bits 1194. BCH encoding can also be used to encode pages to i, or BCH encoding can be limited to pages 2 through 3. In the case where the BCH code is overlaid, the data of page 〇 to 4 is first encoded according to the BCH code, and then the page 〇 to 丨 is further coded according to the LDpc code. Later, LDPC is first used to decode the data in page 〇 to 1, and then BCH is used to decode page 〇 to 4. FIG. 11B shows another example of encoding a page 丨195 by only one LDpc code, so only the page 〇 contains redundancy ^1) (:: generation bit 1196. Higher pages 1 to 3 are used A BCH code is encoded, which uses bch to generate redundant bits 1198. The BCH code can be extended to cover pages other than pages 1 through 3, or can only cover pages 1 through 3. Thus, not for other pages. A coding scheme is used to encode the page. Figure 11C shows another example of a different coding scheme for each page 〇 to one of the segments 1199. According to a first coding scheme, redundant data ECca is generated for the page ,, according to a The two encoding scheme generates redundant data ecCb for page i, generates redundant data ECCc for page 2 according to a second encoding scheme, and generates redundant data ECCd for page 3 according to a fourth encoding scheme. The page is smaller than other pages/, Even more than a few times ECCa, page 0 is first decoded and used to provide information to decode other pages. The coding scheme for different pages can be the same class 31 (such as all LDPC schemes) or different types (example and side 126159.doc -27- 200839503 Case ^The same type of scheme is in The number of different redundant data can be used in two ways: see different schemes. In some cases, the coding scheme of the high page also covers the lower pages. Therefore, the ECCB can cover the pages and work to make these pages According to the second coding scheme, decoding is performed. Eccc^ covers the page (1) such that the pages are decoded together according to the third coding scheme, etc. Such pages must also be encoded together. Although the examples of FIGS. 11A to 11c Displaying redundant data and other data can be mapped to encoded data in a more complicated manner as described above. The number of extra bits used to encode the data can be compared with the uncoded data. It is considered as the number of redundant bits, even in the absence of detachably identified redundant bits. Header information 1101 is displayed on page 3 of the above example. However, header information may also be provided at other locations. Figure 12 shows an exemplary feature 5 of a memory system using different encoding schemes for different pages, the memory system displaying an encoder 1205' which applies LDPC encoding to certain data and applies BCH encoding to other data. (In other examples, 8 (::11 encoding applies to all data and LDPC encoding applies only to certain data). The encoded data is then passed to a modulator 1207, which stores the data in a memory. In the array 12〇8, in particular, the modulator 1207 stores the LDPC encoded data in a first page and stores the BCH encoded data in a higher page in the same memory unit. A suitable scheme (e.g., the scheme of Figure 7A) maps the data bits to the memory state such that a first bit (one bit in the first page) is replaced from a memory state to a next memory state. The data is read from the memory array by a demodulator 12〇9 and is provided to 126159.doc -28-200839503 for a decoder 1211, which implements LDpc decoding on the data from the page and comes from BCH decoding is implemented on the data of other pages. An output 1213 from LDpc decoder 1215 is provided to the bch decoder m 7 such that the BCH decoder 1217 can use the correction by the LDpc decoder i2i5 = to assist in performing BCH decoding. There may also be some output of the BCH decoding operation after one of the -BCH decoding operations. In some cases, the output from a BCH decoder is also fed back to the r LDPC decoder for LDPC decoding. For example, LDPC decoding may be & overlay decoding, which performs a number of iterative processes and then provides an output to the BCH decoder. If the BCH decoder is unable to correct the provided data, it can return a -signal to the LDPC decoder to indicate that more repetitive processes should be performed. 13 shows a memory system 1319 including an encoder 1321 which encodes the first bedding in a first encoder 1323 and a second encoder according to the second encoding scheme. The first and second data in 1325 are programmed by the modulator 1329 to share the cells in the memory array 1327. The data system is read from the memory array 1327 by the demodulation transformer 1331 and decoded by the decoder η". According to the first scheme, the decoding is performed in the first decoder i 3 3 5 corresponding to the first data. Reading the data, and decoding the read data corresponding to the second data in a second decoder according to the second scheme. The output 1339 from the first decoder 1335 is provided to the second decoder 1337 so that the result of decoding the first data can be used to decode the second material. Similarly, the output 1341 from the second decoder Ur is provided to the first decoder 1335 so that the result of decoding the second 126159.doc -29-200839503 can be used to decode the first data. Thus, the first decoder 1335 fish-decode IIU37 interacts with a total of (10) code data. The first-transmission: case: the coffee-making scheme, which has different redundancy in the -example: capital. In another example, the stomach first coding scheme is an LDPC scheme and the second coding scheme is a BCH scheme. f describes various examples with reference to flash memory. However, various other non-volatile memory devices 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, memory based on ferroelectric memory (FRAM or FeRAM), magnetic memory-based (MRAM)-based memory systems, and phase-based changes (pR趟 or " 〇ϋΜ" ("phase change memory"))) memory. All patents, patent applications, articles, books, descriptions, other publications, documents, and objects referred to herein are hereby incorporated by reference in their entirety for all purposes. To the extent that there is any inconsistency or conflict between the definition or use of a term between any incorporated publication, document or thing and the body of the document, the definition or use of that term in this document shall prevail. Although the various aspects of the invention have been described in terms of a particular preferred embodiment, it is understood that the invention is in the scope of the invention. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 shows the probability function of the threshold voltage of a unit programmed into a logical state and a logic 0 state in a non-volatile memory, including one for distinguishing between logic 1 and logic state. Voltage vD. 2 shows a component of a memory system including a memory array, a 126159.doc -30-200839503 fader/demodulator circuit, and an encoder/decoder circuit. Figure 3 shows the probability function of the read threshold voltage for a unit that is not programmed to a logic 1 state and a logic state, showing the threshold voltage value. The Θ 4 member shows the components of the suffix system, which includes a memory array, a fader/de-arc circuit and an encoder/decoder circuit, and a demodulator provides a probability value to a decoder. Figure 5 shows an ECC unit having a soft input soft output (sis 〇) decoder.

田6顯不儲存二個資料位元之一記憶體單元之臨界電壓 圍並顯7^4等二個位元係如何映射至人個記憶體狀態。 #圖7A顯不儲存四個資料位元之一記憶體單元之臨界電壓 I圍並,、、、員不忒等二個位兀係如何映射至十六個記憶體狀態 以使得相鄰狀態之最低有效位元不同。 圖7B顯示用於讀取圖7a之々忤麯一 口 Α之记丨思體早兀以針對ECC解碼提 供一軟輸入的電壓之範例。 圖8 Α顯示在決定一筐一 ^ _ 一 弟位凡(LSB)中考量的一記憶體單 凡之十六個記憶體狀態。 圖8B顯示在決定一第二位 ^ 中考里的記憶體單元之八個 剩餘記憶體狀態,其他八個狀Tian 6 does not store the threshold voltage of one of the two data bits and how the two bit systems such as 7^4 are mapped to the memory state. #图7A shows that the threshold voltage I of one of the four data bits is not stored, and how the two bits are mapped to sixteen memory states to make the adjacent state The least significant bits are different. Figure 7B shows an example of a voltage used to read the distortion of Figure 7a to provide a soft input voltage for ECC decoding. Figure 8 shows the sixteen memory states of a memory that is considered in the decision of a basket of ^ _ a singularity (LSB). Figure 8B shows the eight remaining memory states of the memory cell in the second bit ^, the other eight

^ U狀態係由於該第一位元之ECC 解碼所致而消除。^ U state is eliminated due to ECC decoding of the first bit.

量的記憶體單元之四個 由於該第二位元之ECC 圖8C顯示在決定一第三位元中考 剩餘s己憶體狀態,額外四個狀態係 解碼所致而消除。 圖8D顯示在決定一 弟四位元中考 量的記憶體單元之兩個 126159.doc •31 - 200839503 剩餘記憶體狀態,額外兩個狀態係 巾田於該第三位元之Ecc 解碼所致而消除。 圖_示包括具有解碼四個資料頁的四個Ecc模组之一 ECC解碼器的一記憶體系統之一部分,由解碼一頁之輸出 傳送至-隨後解碼模組’其中其係用於解碼下一資料頁。 圖9 B顯不可用於圖9 a之記情轉会从 ^ 己U體系、統中的—解碼模組之 —範例。 圖9C顯示可用於圖9a之印愔舻έ μ丄 口忑fe體糸統中的一解碼模組之 另一範例。 圖_示在-記憶體陣列中可如何儲存資料區段以使得 -個別區段係使用四頁之各頁中的位元儲存。 圖11A顯示以四頁儲存的一區段之一範例,兩頁係使用 L跳編碼^編碼而另兩w係㈣職編碼予以編碼。 圖11B顯示以四頁儲在 储存的一區段之一範例,一頁係使用 LDPC編碼予以纟盘n τ- 、、、馬而其他三頁係使用BCH編碼予以編 碼0 圖11C顯示以四百健六 啫存的一區段之一範例,各頁係編碼 以具有不同的冗餘資料之數量。 圖12顯示具有依擔 又琛一 BCH碼來編碼某些資料並使用一 LDPC碼來編碼复他杳 他貝枓之一編碼器的記憶體系統,該記 fe體糸統具有一解石民。口 上 野馬斋,其解碼LDPC編碼的資料並提供 人pC解瑪之一輪出用於解碼bCh編碼的資料。 圖13顯不在將資魏 、竹储存於記憶體中之前依據兩個不同的 編碼方案來編碼儲在 希仔於相同記憶體單元中的資料之不同部 126159.doc •32- 200839503 分的另一記憶體系統,該資料係使用針對該等兩個方案之 兩個解碼器予以解碼,並且來自各解碼器之一輸出係提供 至另一解碼器。 【主要元件符號說明】 ('The four ECCs of the second bit are shown in Fig. 8C. The decision is made to determine the remaining s replied state in a third bit, and the extra four states are decoded and eliminated. Figure 8D shows the two 126159.doc •31 - 200839503 remaining memory states of the memory cells considered in determining the four bits of a younger brother. The additional two states are caused by the Ecc decoding of the third bit. eliminate. Figure 1 shows a portion of a memory system comprising an ECC decoder of one of four Ecc modules for decoding four data pages, transmitted by the output of the decoded page to a subsequent decoding module 'where it is used for decoding A data page. Figure 9 B can not be used in the example of Figure 9 a essay transfer from the ^ U system, the system - the decoding module - an example. Figure 9C shows another example of a decoding module that can be used in the printer of Figure 9a. The graph shows how the data segments can be stored in the memory array such that - individual segments are stored using the bits in each of the four pages. Figure 11A shows an example of one of the sections stored in four pages, the two pages being encoded using L-hop encoding and the other two encodings. Figure 11B shows an example of a section stored in four pages in storage, one page using LDPC encoding to disk n τ-, ,, and the other three pages using BCH encoding to encode 0. Figure 11C shows four hundred An example of a section of Jian Liu's memory, each page is coded to have a different amount of redundant data. Figure 12 shows a memory system having a dependent BCH code to encode certain data and an LDPC code to encode one of the other codes of the other, which has a solution. On the mouth, Ma Mazhai, which decodes the LDPC coded data and provides one of the human pC solutions to decode the bCh coded data. Figure 13 shows that the different parts of the data stored in the same memory unit are coded according to two different coding schemes before storing the Wei and Zhu in the memory. 126159.doc •32- 200839503 In the memory system, the data is decoded using two decoders for the two schemes, and one output from each decoder is provided to the other decoder. [Main component symbol description] ('

200 記憶體系統 201 ECC單元 203 編碼器 205 調變/解調變單元 207 調變器 208 第二位元 209 記憶體陣列 211 輸入資料位元 213 解調變器 215 解碼器 421 記憶體系統 423 記憶體陣列 425 解調變器 427 調變/解調變單元 429 解碼器 431 ECC單元 432 編碼 532 SISO解碼器 534 軟硬轉換器 636 最低位元 126159.doc -33- 200839503 Γ 638 中間位元 640 最高位元 842 位元/LSB 844 位元 846 位元 848 位元/MSB 950 記憶體系統 952 記憶體陣列 954 解調變器 955 輸入 956 ECC解碼器 958 輸入 960 輸入 962 輸入 964 ECC模組 966 輸入 968 輸入 970 組合電路 972 輸出 974 SISO解碼器 976 ECC模組 978 組合電路 980 輸入 982 軟輸出 126159.doc -34- 200839503 984 硬輸出 986 軟至硬轉換器 988 硬輸入硬輸出(HIHO)解碼器 1190 區段 1192 冗餘資料位元 1194 冗餘資料位元 1195 區段 1196 冗餘LDPC產生位元 ( 1198 BCH產生冗餘位元 1199 區段 1203 記憶體系統 1205 編碼 1207 調變器 1208 記憶體陣列 1209 解調變器 1211 / 解碼器 \ ^ 1213 輸出 1215 LDPC解碼器 • 1217 BCH解碼器 . 1319 記憶體糸統 1321 編碼器 1323 第一編碼器 1325 第二編碼器 1327 記憶體陣列 126159.doc -35- 200839503 1329 調變器 1331 解調變器 1333 解碼器 1335 第一解碼器 1337 第二解碼器 1339 輸出 1341 輸出 126159.doc -36-200 Memory System 201 ECC Unit 203 Encoder 205 Modulation/Demodulation Transform Unit 207 Modulator 208 Second Bit 209 Memory Array 211 Input Data Bit 213 Demodulator 215 Decoder 421 Memory System 423 Memory Body array 425 demodulator 427 modulation/demodulation transformer unit 429 decoder 431 ECC unit 432 code 532 SISO decoder 534 soft and hard converter 636 lowest bit 126159.doc -33- 200839503 Γ 638 intermediate bit 640 highest Bit 842 bit/LSB 844 bit 846 bit 848 bit/MSB 950 memory system 952 memory array 954 demodulation 955 input 956 ECC decoder 958 input 960 input 962 input 964 ECC module 966 input 968 Input 970 Combination Circuit 972 Output 974 SISO Decoder 976 ECC Module 978 Combination Circuit 980 Input 982 Soft Output 126159.doc -34- 200839503 984 Hard Output 986 Soft-to-Hard Converter 988 Hard Input Hard Output (HIHO) Decoder 1190 Zone Segment 1192 Redundant data bit 1194 Redundant data bit 1195 Segment 1196 Redundant LDPC generated bit (1198 BCH generated Remainder 1199 Segment 1203 Memory System 1205 Encoding 1207 Modulator 1208 Memory Array 1209 Demodulation Transformer 1211 / Decoder \ ^ 1213 Output 1215 LDPC Decoder • 1217 BCH Decoder. 1319 Memory System 1321 Encoding 1323 first encoder 1325 second encoder 1327 memory array 126159.doc -35- 200839503 1329 modulator 1331 demodulator 1333 decoder 1335 first decoder 1337 second decoder 1339 output 1341 output 126159. Doc -36-

Claims (1)

200839503 十、申請專利範圍: 1 · 一種在一非揮發性本 牛¥體圮憶體陣列中儲存資料的方 法,其包含: ' —、第、扁碼方案來編碼資料之一第一部分以獲得 弟一複數個經編碼資料位元; ζ第I數個經編碼資料位元儲存於該記憶體陣列 Γ 數個單凡中’該複數個單元之各單元包含該第-複 數個經編碼資料位元之至少一者;以及 將弟一複數個資料位开綠古认θ丄 t 竹伹兀儲存於具有該第一複數個經編 碼 &gt; 料位元之該福齡^ s — ,^ 复數個早兀中,該複數個單元之各單元 匕各《亥苐二複數個資料 、什位兀之至少一者,該第二複數個 — 貝料位元不依據該第_編碼方案予以編碼。 2.如晴求項1之方法,其中嗜篦— ^ 一皆一 弟一複數個資料位元係依據 一編碼方案予以編碼。 3 ·如請求項2之方法,i中兮筮一 ^ w第一、扁碼方案使用比該第二 編碼方案多的冗餘位元。 4. 之方法,其中該第一編碼方案係-低密度同 位榀查(LDPC)方案。 5. 如請求項!之方法’其進一 罝&amp;并# 匕3項取该複數個記憶體 將該讀取資料提供至一 ECC解碼器。 6. 如請求項5之方法’其中該讀取 供$只Τ寸货、作為一軟輸入提 供至主仙CC解碼器,其執行軟輸入軟輸出解碼。 •如研求項6之方法,其中首弁鲧 資料你-4 解馬该第一複數個經編碼 貝科位兀並將該第一複數個資料 凡之5亥經解碼結果用 126159.doc 200839503 於解碼該第二複數個資料位元。 8. -種解碼儲存於—非揮發性半導體記憶體陣列中之 的方法,其包含: 、’ ⑽碩取儲存於複數個單元中之資料,該複數個單元之各 單元包3至少一第一資料位元與一第二資料位元; 使用4靖取之結果來產生對應於該複數個第一資料位 元的複數個第一桉正眘祖伯 斗、卜各f丨— 、’ y从 仪正貝枓值,该稷數個第一校正資料值200839503 X. Patent application scope: 1 · A method for storing data in a non-volatile book, which comprises: '-, first, flat code scheme to encode the first part of the data to obtain the younger brother a plurality of encoded data bits; ζ the first number of encoded data bits are stored in the memory array, and the plurality of units of the plurality of cells comprise the first plurality of encoded data bits At least one of the plurality of data bits of the younger brother; and the plurality of data bits of the younger brothers are stored in the first plurality of encoded &gt; material bits of the Fuling age s — , ^ plural early In the meantime, each unit of the plurality of units has at least one of the plurality of data and the at least one of the plurality of units, and the second plurality of units are not encoded according to the first coding scheme. 2. The method of claim 1, wherein the idiom-^ is one-of-a-kind and a plurality of data bits are encoded according to a coding scheme. 3. According to the method of claim 2, the first, flat code scheme uses more redundant bits than the second coding scheme. 4. The method, wherein the first coding scheme is a low density parity check (LDPC) scheme. 5. As requested! The method </ br> takes a 罝 &amp; and # 匕 3 items to take the plurality of memories to provide the read data to an ECC decoder. 6. The method of claim 5, wherein the reading is for $1, and is provided as a soft input to the main CC decoder, which performs soft input soft output decoding. • If the method of item 6 is studied, the first item of information is 4 - the first plurality of coded Becco bits, and the first plurality of data is decoded by 126159.doc 200839503 Decoding the second plurality of data bits. 8. A method for decoding and storing in a non-volatile semiconductor memory array, comprising: - (10) obtaining data stored in a plurality of cells, each of the plurality of cells 3 being at least one first a data bit and a second data bit; using the result of 4 jing to generate a plurality of first 桉 慎 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖 祖仪正贝枓值, the number of first corrected data values 係,由該複數個第-資料位元之ECC校正來產生;以及 隨後使用該讀取之結果並還使用該複數個第一校正資 料值來產生對應於該複數個第二資料位元的複數個 校正資料值。 w 一 9·:請求項8之解碼資料的方法,其中該複數個第二校正 貝料值係使用軟輸人軟輸出解碼來產生,而 一校正資料值料該軟輸人之❹。 、月求項8之解碼資料的方法,其中該複數個第二校正 貧料值係使用-第二編碼方案來產生,該第二編碼方案 使1比該第一編碼方案少的冗餘位元。 :求頁8之解碼資料的方法,其中該複數個第一資料 位元形成作发 οσ ^ 、风作為一早位予以程式化與讀取之一第一頁,而 該複數個第-眘4 乐一貝枓位兀形成作為一單位予以程式化與讀 取之一第二頁。 12.如請求+ 第一次;、解碼資料的方法,其中該讀取提供與該等 一、料位TL相關聯的第—原始機率值並提供與該等第 二育料位元相關聯的第二原始機率值。 126159.doc 200839503 如-月求項12之方法’其中該等第—原始機率值係提供作 為軟輸入以用於產生該複數個第—校正資料值並隨後產 ^該等第二機率值’而該複數個第—校正資料值係提供 作為,輸人以用於產生該複數個第二校正資料值。 14.種官理一快閃記憶體中之資料的方法,其包含 . ㈣—第—編碼方案來編碼資料之-第1部分,並將 '該經編碼資料之第—部分儲⑼複數個單以之一第一 頁中; ί 第二編碼方案來編碼資料之—第二部分,並將 碼資料之第二部分儲存於該複數個單元中之一第 隨後讀取該複數個單元以獲得讀取資料; 依據該第一編碼方案來解碼 之第—部分;以及 取貝料以獲得該資料 隨後依據該第二編碼方案來解 資料之第二部分,依據該第二編料以獲得該 據該第-編碼㈣㈣解狀之該解碼使用依 15. 如請求項14之方法,其中該第 位檢查(LDPC)方案。 ’、、’方案係-低密度同 16. 如請求項14之方法,其 編碼方案少的冗餘位元。-、、扁碼方案使用比該第- 17. 如請求項14之方法’其中依據該第-方査 輪入教鈐山初S ^ 布一方案之該解碼係軟 勒入軟輪出解碼,其使用依據該第 的輸出作為一軟輸入。 、馬方案之该解碼 126159.doc 200839503 18·如睛求項14之方法,其中該複數個單元還包含至少一第 三頁。 19·如請求項14之方法,其中資料之一主機可定址區段包括 該資料之第一部分與該資料之第二部分。 20·如請求項14之方法,其中該資料之第一部分包括一第一 主機可定址區段之資料並還包括一第二主機可定址區段 之資料。 21·如請求項14之方法,其進一步包含在依據該第一編碼方 案來編碼該資料之第一部分之前,依據該第二編碼方案 來連同該資料之第二部分一起編碼該資料之第一部分。 22·如請求項21之方法,其中依據該第二編碼方案之該解碼 一起解碼該資料之第一部分與該資料之第二部分。 23.如請求項14之方法,其進一步包含依據該第一編碼方案 之額外解碼,該額外解碼使用依據該第二方案之該解碼 之一輸出。 24· —種非揮發性半導體記憶體系統,其包含: 一記憶體陣列,其包括複數個記憶體單元,該複數個 $己fe體單元個別地保持一第一頁之一第一資料位元與一 第二頁之一第二資料位元;以及 一ECC編碼器,其在儲存於該複數個單元中之前,依 據一弟一編碼方案來編碼該第一頁之資料,而不在儲存 於該複數個單元中之前依據該第一編碼方案來編碼該第 二頁之資料。 25·如請求項24之快閃記憶體系統,其中該第二頁之資料係 126159.doc 200839503 依據一第二編碼方案予以編碼。 26·如請求項25之快閃記憶體系統,其中該第 用比該第二編碼方案多的冗餘位元。 ’、使 27·如請求項24之快閃記憶體系統,其中該第 一低密度同位檢查(LDPC)方案。 案係 28·如請求項24之快閃記憶體系統,其進_步包含: 1取電路’其從該複數個記憶體單元讀取資料;以 r ECC解碼器,其解碼該讀取資料。 2 9 ·如清求項2 8之快閃印音种金从 , 伏Π圯〖思體糸統,其中該讀取資料 軟輸入提供至該ECC解碼器,其首先解碼該第—頁之二 料,並使用該第-頁之該解碼之—輸出與該讀取: 起解碼該第二頁之資料。 ’ 30·如請求項24之快閃記憶體系統,其中該第一頁包括一區 I又之 料,且該第二頁包括該區段之資料。 31· —種非揮發性半導體記憶體系統,其包含: 一快閃記憶體陣列,其將資料儲存於複數個單元中, -個別單元儲存一第一資料頁之至少一第一資料位元與 一第二資料頁之一第二資料位元;以及 一 ECC解碼系統,其首先解碼該第一資料頁,並隨後 使用該第一資料頁之該解碼之結果來解碼該第二資料 頁。 、 32·如請求項31之快閃記憶體系統,其中該Ecc解碼系統包 括一軟輸入軟輸出解碼器,其使用該第一頁之該解碼之 該等結果以及從該複數個單元讀取之資料作為一軟輸 126159.doc 200839503 入0 33_如請求項31之快閃記憶體,直 料係依據-第-編碼方幸/邊存於該第一頁中之資 之資料不依據嗲第端、Λ編瑪’而儲存於該第二頁中 據°亥弟—編碼方案來編碼。 34·如請求項33之快閃記 ψη^ ^ ^ ^ 心-,八中儲存於該第二頁中之該 貝枓係依據H碼方案來編碼。 35. =f求項31之㈣記憶體,其進-步包含-讀取電路, 率值。 供傳迗至該ECC解碼系統之機 36. —種快閃記憶體系統,其包含: -快閃記憶體陣列,其將至少—一 資料頁儲存於複數個單&amp; + 一弟一 含該第-頁之-第Γ : 數個單元之各单元包 -編第二頁之-第二位元; .、、、裔八依據一第一編碼方荦來編 資料並依據一第-编满古安, 碼該第一頁之 ^ 弟一、、扁碼方案來編碼該第二頁之資料; 複數二取電:’其讀取該複數個單元並提供與儲存於該 數個早70中之位元個別相關聯的機率值;以及 :軟輸人軟㈣咖解碼^,其接收來自該 ,值以解碼該第一資料頁,並使用該 該解媽之結果來解碼該第二資料頁。 、枓頁之 37.=請,項36之快閃記憶體系統,其中該第__ 低雄、度同位檢查(LDPC)方案。 ” ’、 月求項36之快閃記憶體系統,其中該 用比該第一編碼方案少的冗餘位元。、4碼方案使 126159.doc 200839503 3 9 ·如請求項3 6之他p日 &lt;决閃記憶體系統,其中該複數個單元包八 至少一第三頁0 3 復如請求項36之快閃記憶體系統,其中一單一主機可定址 區段延伸於該第—頁與該第二頁之上。 41. 如請求項36之快閃記憶體,其中該編碼器在依據該第一 編碼方案來編竭該第一頁之該資料之前依據該第二編竭 方案來編碼該第一頁之該資料。 42. 如.月求項41之快閃記憶體,其中該解碼器使用該第二編 碼方案來一起解碼該第二資料頁與該第一資料頁。 43·如明求項36之快閃記憶體系统,其中該軟輸入軟輪出 E—C C解碼器使用該第二資料頁之該解碼之結果來解石馬該 第一資料頁。 /And generating, by the ECC correction of the plurality of first data bits; and subsequently using the result of the reading and also using the plurality of first corrected data values to generate a complex number corresponding to the plurality of second data bits Corrected data values. W-9: A method for requesting decoding of data of item 8, wherein the plurality of second corrected billimetric values are generated using soft input soft output decoding, and a corrected data value is expected to be soft input. a method for decoding data of a monthly item 8, wherein the plurality of second corrected lean values are generated using a second encoding scheme that causes one less redundant bits than the first encoding scheme . : The method for decoding data of page 8, wherein the plurality of first data bits are formed as οσ^, and the wind is programmed as one of the first pages of the early position, and the plurality of first-care 4 music A 枓 枓 兀 is formed as a unit to be programmed and read as one of the second pages. 12. A request + first; method of decoding data, wherein the reading provides a first-origin probability value associated with the one, level TL and providing associated with the second breeding bit The second original probability value. 126159.doc 200839503 The method of claim 12, wherein the first-original probability value is provided as a soft input for generating the plurality of first corrected data values and subsequently producing the second probability values' The plurality of first corrected data values are provided as inputs for generating the plurality of second corrected data values. 14. A method of organizing a data in a flash memory, comprising: (d) - a coding scheme to encode the data - part 1, and 'the first part of the encoded data (9) a plurality of orders The second encoding scheme encodes the second portion of the data, and stores the second portion of the code data in one of the plurality of cells, and then reads the plurality of cells to obtain the reading. Obtaining data; decoding the first part according to the first coding scheme; and taking the material to obtain the data, and then solving the second part of the data according to the second coding scheme, according to the second coding to obtain the data The decoding of the first-coded (four) (d) solution is used according to the method of claim 14, wherein the first bit check (LDPC) scheme. ',, 'Scheme system - low density same 16. The method of claim 14, which has fewer redundant bits of coding scheme. -, the flat code scheme uses the method - 17. The method of claim 14 wherein the decoding system is based on the first-party check round and the decoding system is soft-in and out decoding. Its use is based on the first output as a soft input. The decoding of the horse program 126159.doc 200839503 18. The method of claim 14, wherein the plurality of units further comprises at least a third page. 19. The method of claim 14, wherein the host addressable section comprises a first portion of the data and a second portion of the data. 20. The method of claim 14, wherein the first portion of the data includes data for a first host addressable segment and further includes information for a second host addressable segment. 21. The method of claim 14, further comprising encoding the first portion of the data along with the second portion of the data in accordance with the second encoding scheme prior to encoding the first portion of the material in accordance with the first encoding scheme. The method of claim 21, wherein the first portion of the data and the second portion of the data are decoded together in accordance with the decoding of the second encoding scheme. 23. The method of claim 14, further comprising additional decoding in accordance with the first coding scheme, the additional decoding being output using one of the decodings in accordance with the second scheme. A non-volatile semiconductor memory system, comprising: a memory array comprising a plurality of memory cells, wherein the plurality of memory cells individually hold a first data bit of a first page And a second data bit of a second page; and an ECC encoder, which encodes the data of the first page according to a code-one encoding scheme before being stored in the plurality of cells, and is not stored in the The data of the second page is previously encoded in the plurality of units according to the first encoding scheme. 25. The flash memory system of claim 24, wherein the data of the second page is 126159.doc 200839503 encoded according to a second encoding scheme. 26. The flash memory system of claim 25, wherein the plurality of redundant bits are used more than the second encoding scheme. The flash memory system of claim 24, wherein the first low density parity check (LDPC) scheme. Case 28. The flash memory system of claim 24, wherein the step comprises: 1 taking a circuit 'reading data from the plurality of memory cells; and decoding the read data by an r ECC decoder. 2 9 ·If the clear flash of the item 2 8 is from the volts, the Π圯 Π圯 思 , , , , , , , , , , , , , , , , 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取 读取And use the decoded-output and the read of the first page: to decode the data of the second page. 30. The flash memory system of claim 24, wherein the first page includes a region I and the second page includes information for the segment. 31. A non-volatile semiconductor memory system, comprising: a flash memory array storing data in a plurality of cells, - an individual cell storing at least one first data bit of a first data page and a second data bit of a second data page; and an ECC decoding system that first decodes the first data page and then decodes the second data page using the decoded result of the first data page. 32. The flash memory system of claim 31, wherein the Ecc decoding system comprises a soft input soft output decoder that uses the decoded result of the first page and reads from the plurality of cells The data is used as a soft input 126159.doc 200839503 into 0 33_ as in the flash memory of claim 31, the direct material is based on - the first code is fortunate / the information stored in the first page is not based on the first The end, the Λ 玛 玛 ' and stored in the second page according to the 亥 弟 - encoding scheme to encode. 34. If the flash of the request item 33 is ψη^^^^心-, the 枓 中 stored in the second page is encoded according to the H code scheme. 35. =f (41) memory of item 31, whose step-by-step includes - reading circuit, rate value. A flash memory system for transmitting to the ECC decoding system, comprising: - a flash memory array storing at least one data page in a plurality of single &amp; The first page - the third page: each unit of several units - the second page - the second bit; .,,, and the eight according to a first coding method to compile the data and according to a first - full Gu An, code the first page of the ^ brother, the flat code program to encode the second page of information; the plural two take power: 'it reads the plurality of units and provides and stores in the number of early 70 The probability value of the individual bit in the middle; and: the soft input soft (four) coffee decoding ^, which receives the value from the decoding to decode the first data page, and uses the result of the solution to decode the second data page. 37.=Please, item 36 of the flash memory system, wherein the __lower, degree parity check (LDPC) scheme. ', monthly flash memory system 36, which uses less redundant bits than the first encoding scheme. 4 code scheme makes 126159.doc 200839503 3 9 · as requested in item 3 6 Day &lt; flash memory system, wherein the plurality of unit packs at least one third page 0 3 is equivalent to the flash memory system of claim 36, wherein a single host addressable section extends over the first page and Above the second page. 41. The flash memory of claim 36, wherein the encoder encodes according to the second compilation scheme before the data of the first page is compiled according to the first encoding scheme The data of the first page. 42. The flash memory of claim 41, wherein the decoder uses the second encoding scheme to decode the second material page and the first data page together. The flash memory system of claim 36, wherein the soft input soft wheel out E-CC decoder uses the decoded result of the second data page to solve the first data page of the stone horse. 126159.doc126159.doc
TW96141222A 2006-11-03 2007-11-01 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 TWI385512B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/556,636 US8001441B2 (en) 2006-11-03 2006-11-03 Nonvolatile memory with modulated error correction coding
US11/556,632 US7904780B2 (en) 2006-11-03 2006-11-03 Methods of modulating error correction coding

Publications (2)

Publication Number Publication Date
TW200839503A true TW200839503A (en) 2008-10-01
TWI385512B TWI385512B (en) 2013-02-11

Family

ID=39275803

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96141222A TWI385512B (en) 2006-11-03 2007-11-01 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

Country Status (2)

Country Link
TW (1) TWI385512B (en)
WO (1) WO2008057820A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904780B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8001441B2 (en) 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US8458114B2 (en) 2009-03-02 2013-06-04 Analog Devices, Inc. Analog computation using numerical representations with uncertainty
US8179731B2 (en) 2009-03-27 2012-05-15 Analog Devices, Inc. Storage devices with soft processing
KR102262909B1 (en) 2014-12-18 2021-06-10 에스케이하이닉스 주식회사 Operating method of memory system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279133B1 (en) * 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
JP2001266498A (en) * 2000-03-23 2001-09-28 Sony Corp Unit and method for reproducing data, unit and method for recording and reproducing data
US6807610B2 (en) * 2002-11-01 2004-10-19 Silicon Storage Technology, Inc. Method and apparatus for virtually partitioning an integrated multilevel nonvolatile memory circuit
WO2005066970A2 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Robust data duplication and improved update method in a multibit non-volatile memory

Also Published As

Publication number Publication date
WO2008057820A1 (en) 2008-05-15
TWI385512B (en) 2013-02-11

Similar Documents

Publication Publication Date Title
TWI353521B (en) Soft-input soft-output decoder for nonvolatile mem
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
EP2734925B1 (en) Systems and methods of storing data
US8645789B2 (en) Multi-phase ECC encoding using algebraic codes
US8996950B2 (en) Erasure correction using single error detection parity
US8266495B2 (en) Systems and methods for performing concatenated error correction
TW200823910A (en) Nonvolatile memory with adaptive operation
KR20140005989A (en) Method of data storage in non-volatile memory
TW201245953A (en) Data recovery using additional error correction coding data
US8656258B2 (en) Method of encoding and decoding multi-bit level data
WO2013096158A1 (en) Using ecc encoding to verify an ecc decode operation
US11243838B2 (en) Methods and apparatuses for error correction
TW200839503A (en) Nonvolatile memory with modulated error correction coding
TWI335502B (en) Flash memory system and method for controlling the same
KR20180059149A (en) ECC decoder, memory controller including the ECC decoder, and ECC decoding method
US20230176947A1 (en) Memory matched low density parity check coding schemes
JP2007179480A (en) Memory controller and flash memory system

Legal Events

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