TW200814075A - Method of error correction coding for multiple-sector pages in flash memory devices - Google Patents

Method of error correction coding for multiple-sector pages in flash memory devices Download PDF

Info

Publication number
TW200814075A
TW200814075A TW096117600A TW96117600A TW200814075A TW 200814075 A TW200814075 A TW 200814075A TW 096117600 A TW096117600 A TW 096117600A TW 96117600 A TW96117600 A TW 96117600A TW 200814075 A TW200814075 A TW 200814075A
Authority
TW
Taiwan
Prior art keywords
data
block
page
memory
flash memory
Prior art date
Application number
TW096117600A
Other languages
Chinese (zh)
Inventor
Sergey Anatolievich Gorobets
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/383,844 external-priority patent/US7809994B2/en
Priority claimed from US11/383,841 external-priority patent/US20070300130A1/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200814075A publication Critical patent/TW200814075A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

A flash memory system, including a flash memory device and a controller, and having improved efficiency error correction coding (ECC), is disclosed. Each page in the flash memory device has the capacity to store multiple sectors' worth of data. However, partial page programming (i. e,. followed by a later write to fill the page) is prohibited for reliability reasons. A scratchpad block within the flash memory device is designed, and stores both user data and control data. ECC efficiency is improved by encoding the ECC, or parity, bits over the entire data block corresponding to the user and control data in the page. Retrieval of a particular sector of data requires reading and decoding of the entire page. Especially for codes such as Reed-Solomon and BCH codes, the larger data block including multiple sectors' data improves the error correction capability, and thus enables either fewer redundant memory cells in each page or improved error correction.

Description

200814075 九、發明說明: 【發明所屬之技術領域】 a月係在非揮發性記憶體領域内,且更明確而古係關 於快閃型非揮發型固態記憶體裝置内的錯誤更正編^… 【先前技術】 如此項技術中所習知 二 · q丨八門…丨思肢你,电1抹除半導體 己隐體表置,其可採用相對較小區塊來抹除並重新寫入,200814075 IX. Description of the invention: [Technical field of invention] A month is in the field of non-volatile memory, and more clearly and anciently related to the error correction in the flash type non-volatile solid-state memory device... Prior Art] As is well known in the art, the second step is to smear your body, and the electric 1 erases the semiconductor hidden body, which can be erased and rewritten by relatively small blocks.

非如在先别電可抹除可程式化唯讀記憶體 裝置:基於晶片範圍或較大區塊。如此,快閃記憶體變得 j其流行於其中儲存資料之非揮發性(即在斷電之後的資 、寺)必不可 >,但其中再寫入頻率相對較低之應用。 二記憶體之流行應用之範例包括可携式聲頻播放器、在 :式u手機中的電話號碼及電話活動之"㈣"卡儲存 :位=電~及卫作站之,,拇指鍵"可移除儲存裝置、甩於 數位相機之儲存裝置、及類似等。 別使用許多商業成功的非揮發性記憶體產品,特It is not as good as before to erase the programmable read-only memory device: based on the wafer range or larger block. In this way, the flash memory becomes non-volatile (i.e., the capital, temple after the power-off) in which the data is stored, and it is not necessary to re-write the application with a relatively low frequency. Examples of popular applications of memory include portable audio players, telephone numbers and telephone activities in mobile phones: "(4)" card storage: bit = electricity ~ and Weizhi station, thumb button &quot ; removable storage devices, storage devices for digital cameras, and the like. Don't use many commercially successful non-volatile memory products, especially

另】採用包括一或多.接舰兩A 積體電路晶片以實現-快閃eeprom 石己k體陣列之小型因數 — 卞形式。一記憶體控制器(通常 仁不一疋在與記憶體陣 一 干〜刀離之一積體電路晶片上)介接 類控::、-=:…幾並控制卡内繼 φ4 σσ 版包括一微虛W^ lL L (讀卜-揮發性隨機f °。、某些非揮發性唯讀記憶體 殊電路,例如用於在將㈣… '夕個特 其程式化並讀取資料期=式化及讀取至記憶體内及從 、4功間在通過控制器之資料上實施一錯 I20874.doc 200814075 更正碼(ECC)之一編碼器及解碼器。現代及市售快閃記 人卡匕括COMPACTFLASH (CF)卡、多媒體卡(MMC)、安 全數位(SD)卡、個人標籤(p•標籤)與記憶棒卡。可利用此 :快閃記憶卡之傳統主機系統包括個人電腦、筆記型電 2個人數位助理(PDA)、各種f料通信裝置、數位相 ^蜂巢式電話、可攜式聲頻播放器、汽車聲音系統及類 «類型設備。在某些系統内的可移除快閃記憶卡不包括一 :制器’在此情況下主機自己控制卡内記憶體陣列之操 此類體系統之範例包括智慧型媒體卡與⑶卡。依 。。:二類記憶卡’記憶體陣列之控制可藉由卡内的一控制 =的軟體或對於該等不具有—控制器功能之卡藉由主機 内=制軟體來實現。此外,除了記憶卡實施方案之外, 广類^己憶體可替代性地嵌入各類型主機系統中。在可移 :::入式應用二者中’主機資料係依據由記憶體控制軟 “只施之一儲存方案而儲存於記憶體陣列内。 半己==揮發性記憶體技術中的一重要最近進步係將快 如此1①配置成,™ ”記憶體而非”職”記憶體。 匕員技術中所習知,職快閃記憶體係 一源極線之間並聯地 位兀綠/、 應〜置一打記憶體單元。存取- 動,:: —特定單元係藉由驅動其字線(控制閑極)活 。寸保持該行内的其他單元關閉來進行,使得在位元 線與源極線之間的電流係由 一方^ ^仔取早兀之狀態來決定。另 於位元唆Γ行刪D記憶體中的記憶體單元係串列連接 、位凡線與源極線之間。存取_NAND行内的—特定單元 120874.doc 200814075 因而需要使用活動字線位準接通該行内的所有單元,並將 一中間字線位準施加至該欲存取單元,使得在位元線與源 極線之間的電流同樣由該存取單元之狀態來決定。如此項 技術中所習知,NAND快閃記憶體之每位' 積遠小於臟㈣記憶體之每位元面積,主二二: NOR§己憶體,-行财则己憶體需要更少的導體(及因此的 接觸此外,在NAND配置中可在大量單元之中共用存取 電晶體。此外,傳統NAND快閃記憶體便於串列存取,例 如藉由沿該等行連續地存取單元,而非如同在疆記憶體 情況下的-隨機存取記憶體。N A N D記憶體㈣尤其適用 於音樂及聲頻儲存器應用。 快閃記憶體領域中的另一重要最近進步係在此項技術 _多位準程式化單元⑽〇。依據此方案,僅藉由更 、’田地技制早兀之程式化’使得對於各記憶體單元,兩個 上資料狀態成為可能。在傳統二進制資料儲存器中,各 憶f單元:系程式化成-"〇·,或-τ狀態。此類二進制單 係藉由將單一控制電壓施加至定址記憶體單元 、制閑極來成’使得在程式化至-T,狀態時電晶體 、曾、而在0 下保持截止;透過定址記憶體單元感 :安口而復原單凡之程式化狀態。相比之下,依據該Ml /、之—典型範例,對於各記憶體單元,定義四個可能 :’―般對應於二進制值00、οι、ίο、11。效果上,兩 …狀〜、對應於在完全抹除與完全程式化狀態之間的兩 早’部分程式化位準。已知某些每單元具有多達八個可 120874.doc 200814075 狀態或三個二進制位元之MLC快閃記憶體之實施方案。在 各記憶體皁元上儲存二或三個位元資料之能力立即加^或 三倍增加一快閃記憶體晶片之資 貝科谷里。MLC快閃記憶體 單μ包括此類心單元之記憶體之範例係說明於美國專 利案第5,η2,338號與美國專利案第6,747,892 Β2號中,二 者均因此共同指派並以引用形式併入本文。 ϋ 組合MLC技術與NAND快閃記憶體架構之效率已導致明 顯減小用於半導體非揮發性館存器之每位元成本以及改良 的系統可靠度、及針對一給定形狀因數的一更高資料容量 及系統功能性。 現代快閃記憶體裝置(特別係該等NAND架構並涉及MW 單元之該等快閃記憶體裝置)係採用,,區塊”及”頁,,而配置。 一區塊係指一抹除單位,並定義在一單一抹除操作中同時 抹除之|元群組。一般而f,一單元區塊係可抹除之最 單元群組。一頁係指一程式化單位,並定義在一單一程 式化操作中同時私式化或寫入之一單元群組。各區塊一般 包括多個頁。一般而言,將單元配置成頁及區塊係基於記 隱體陣歹〗之灵體§忍識。例如,在許多Nand記憶體陣列 中’一頁記憶體單元係由共用相同字線之該等單元來定 義’而一區塊係藉由駐存於相同"na>jd”鏈内的該等頁來 疋義。例如’若一 nAND鏈包括串列的32個記憶體單元, 則一區塊會包括32個頁。 歷史上’儲存於一快閃記憶體内之資料之組織一直遵循 結合磁碟儲存器使用之檔案系統,故由此係基於,,區段,,。 120874.doc 200814075 一區段一般係一固定大小之— 的佶田本次… 枓群組,例如512位元組 统中了上某些數目的管理位元組。在許多現在檔 π,電腦或其他主機系統之作業系統將資料配置成 個區段地將資料寫入至非揮發性儲存器及從其 :用二。為了在此類系統及應用中便於將快閃記憶體裝 ==非揮發性儲存裝置,許多現代㈣記憶體以一類似 方2理資料,將邏輯”區段”位址映射至快閃記憶體陣列 内的實體位址。 近年來,快閃記憶體裝置之大小及容量已經大大地增 加,從=生超過1百萬個單元之記憶體陣列。在此類陣 μ中·^纟線可延伸至超過2_個記憶體單元,將如 此多記憶體單元放置於相同頁或程式化單位内。因此在此 類大規模快閃記憶體中,各頁現包括多個區段。如此,主 機系統將資料單位傳達至快閃記憶體,該資料單位係小於 該裝置内的最小程式化單位。 傳統快閃記憶體一直藉由處理”局部頁程式化”來將區段 寫入至一頁内。為了執行一局部頁之程式化,例如在將四 個區段之-程式化—頁内過程中,詩該頁之字線接收高 私式化電壓,但只有正在程式化的在該區段内的該字線上 之該等記憶體單元(以及當然將接收一程式化資料狀態的 在该區段内之該等記憶體單元)接收啟用程式化之源極及 沒極電壓(經由該等位元線及該NANd鏈内的其他單元)。 如此,可將個別區段分離地寫入至相同頁内。 然而,Ρ返著裝置幾何形狀繼續縮小以便在一快閃記憶體 120874.doc -10- 200814075 二::更多記憶體容量,該等記憶體單元之該等浮動閘極 二體之可靠度變更加脆弱。而且已觀察到,將程式化電 墾驅動至字線上或浮動閘極電晶體< γ η β ^ 妈 包日日體之控制閘極上傾向於應 二:未正在程式化之電晶體。例如,在一具有四個區段 各區段係個別寫入之頁中,各單元將會接收到超過 身區段的三個額外程式化循環,並因而會接收到四倍 於從僅—單-程式化循環所會接收之應變的應變。如此, =::快閃記憶體裝置會禁止局部頁程式化,以保持裝 。。入在此約束下,快閃記憶體裝置或記憶體控制 =衝用於個別區段之資料,直到可在相同程式化操作 中將頁内所有區段程式化。 稭由更多背景,在大量資料儲存裝置及儲存系統中以及 在貝枓通信系統中錯誤更正編碼(ECC)之用途係為人所孰 ^作為此項技術中的基本’錯誤更正編碼涉及基於編碼 ,貧料位元而衫或計算之額外位元(―般稱為同位位 兀:碼位元、總和檢查碼等)之儲存及通信。例如,在用 於貧料儲存之Ecc情況下,實際資料係用於編碼一且有比 自ί實際資料更多位元之碼字。為了擷取館存資料,儲存 碼子係依據用於編碼該碼字之相同碼來解碼。因為該等碼 位凡過多指定”碼字之實際資料部分,故可忍受某些數目 的出錯位7L,而在解碼後不會有任何實際資料證據損失。 用於ECC之許多編碼方案在此項技術中係為人所孰知。 :為此類編碼方案可提供之對製造良率及裝置可靠度之實 質影響’該些傳統錯誤更正編碼係尤其在大規模記憶體中 120874.doc 200814075 有用/包括快閃記憶體,從而將具有若干不可程式化或損 壞單元之裝置描述為可用。當然,在良率保留與提供額外 ,憶體單s儲存該等碼位元之成本之間存在—折衷(即瑪 率)如此,某些ECC碼比其他碼更適合於快閃記憶體 裝置;一般而言,用於快閃記憶體裝置之Ecc碼傾向於比 用於貝料通仏應用之碼(其可能具有低至1/2之碼率)具有更 高的碼率(即編碼位元與資料位元之-更低比率)。普遍社 合快閃記憶體儲存器使料熟知ECC碼之範例包括裏德所 羅門碼、其他BCH碼、海明碼、及類似等。一般而言,結 合快閃記憶體儲存器使用的錯誤更正碼係"系統的",因為 最後碼字之資料部分與編碼中的實際資料沒有改變,碼或 同:位元係附著至該等資料位元以形成完整碼字。 猎由其他背景’圖1說明在-傳統快閃記憶體裝置之多 區段頁8内之實際資料(”有效承載”資料)與碼位元之配置。 如圖!所示,頁8包括四個區段1〇〇至1〇”各區段包括一資 料部分11、ECC位元部分〗2、及;(;# ss 7 Q ^ 及钛碩13。資料部分11 一般 佔據在'给定區段10内的該等單元之多數;例如一 528位 凡組的典型區段10包括512個位元組作為資料部分η與另 外_位元組用於Ecc位元部分12及標頭13。又如旧所 不’在-以頁8内的各區段10之資料部分u可儲存不同 峨資料。在圖1之頁8中,區段1〇。、1〇1、1〇2之資料部 2储存,使用者"資料’其係包括包含頁8之非揮發性記 糸統之—應用程式或使用者所產生之資料。區段 1〇3之貧料部分"儲存”控制”資料,此類控制資料包括在操 120874.doc 200814075 作該非揮發性記憶體中有用之資訊,例如用於邏輯至1 ,址映射之位址表、抹除計數、狀態資訊、及類似等^ 區段1 〇 3之資料部分i 1内的控制資料可或可不屬於區段^ 〇 至1〇3之資料部分η内的使用者資料,並可或可不在時間。 上與該使用者資料同步(即其可能已在—實f不同於該使 用者資料之時間寫入)。用於各區段之標頭部分η 儲存用於其區段之㈣資訊,此類控制資訊包括用於其相 關聯區段之識別資訊、及關於其相關聯資料部分u内資料 的狀態資訊。 i如上述,控制從包含頁8之記憶體讀取資料及將資料寫 入其之作業系統以區段形式來配置資料,類似於(或等同 於)如儲存在一磁碟機般地配置資料。如此,若將大量資 料寫入^揮發性記憶體,則將該資料集中在區段内(例 如512位元組),並提供給記憶體控制器或其他用於影響將 該資料寫入至該非揮發性記憶體之邏輯。用於圖」之含頁8 快閃記憶體之-控制器或其他之邏輯使用用於一給定區段 之有效承載貝料(使用者或控制)來計算用於該區段之該等 ECC位兀。換5之,用於一區段之該等ecc位元僅取決於 用於該區段之資料,而不取決於頁的任何其他區段内之資 料内容。針對一給定大小之一碼字所產生之ECC位元數目 取决於使用中的特定石馬’當然也取決於編碼中的資料區塊 長度。一旦將資料寫入至一選定區段1〇之資料部分n,便 將β等4 ⑦寫人至用於該區段之ECC位元部分 12 ’連同將適當標頭資料寫人至標頭部分。而且,一旦 120874.doc 200814075 攸-選定區段之資料部分u讀取一區段資料之後,還讀取 =於該區段之獄位元部分12之内容,並將其用於偵測(可 能更正)擷取自該資料部分π之資料内的錯誤。 如上述,傳統ECX碼所產生之碼位元數目取決於編碼中 :身料内的位元數目。可藉由考量該等額外碼位元與編瑪中 育料位元數目之比率來考量一碼之"效率”;此效率之另— - 胃知測量係"碼率”’其係資料位元數目與總位元(碼位元加 • 上資料位元)之比率。藉由其他背景,習知傳統ECC碼(例 如晨德所羅門與BCH編碼)傾向於在編石馬t大碼 具效率。 【發明内容】 「因此本發明之—目的係提供—種操作—實施—更有效率 錯誤更正編碼方案之快閃記憶體裝置之方法。 本發明之另-目的係提供可實施於其中最小程式化單位 包括多個資料區段之大規模NAND快閃記憶體内之此類方 • 法 〇 本發明之另—目的係提供適㈣此類其中禁止局部頁程 式化之大規模NAND快閃記憶體之此類方法。 • 參考下列說明書以及其圖式,習知此項技術者應明白本 * 發明之其他目標及優點。 、本發明可實施於一種操作其中頁(或程式化單位)係配置 成儲存多個資料區段之快閃記憶體裝置之方法。依據本發 2 ’錯誤更正編碼係藉由將用卜頁之所#區段之資料組 合於-單式(unitary)資料區塊内來應用,該編碼係基於一 120874.doc -14- 200814075 起包括來自該頁之所有資料區段之資料的資料區塊。如此 、扁馬之貝料區段可以係不同類型,例如包括使用者資料以 及遂包括與該使用者資料無關的控制資料。為了從一頁讀 取一特定區段,讀取並解碼整頁,之後選擇並輸出所需區 段資料。 【貫施方式】 將結合本發明之較佳具體實施例來說明本發明,即實摊In addition, the use of one or more. Shipboard two A integrated circuit wafers to achieve - a small factor of the flash eeprom stone body array - 卞 form. A memory controller (usually in the same way as the memory array is a dry ~ knife away from the integrated circuit chip) interface control::, -=: ... and control card in the φ4 σσ version including a micro Virtual W^ lL L (Reading Bu-Volatile Random f °., some non-volatile read-only memory special circuits, for example, used in the (four)... 'seven special stylized and read data period = And reading into the memory and from the 4, between the work through the controller on the implementation of a wrong I20874.doc 200814075 correction code (ECC) one of the encoder and decoder. Modern and commercially available flash card COMPACTFLASH (CF) card, multimedia card (MMC), secure digital (SD) card, personal label (p•tag) and memory stick card. This can be used: the traditional host system of flash memory card includes personal computer, notebook type 2 personal digital assistants (PDAs), various f-communication devices, digital phase honeycombs, portable audio players, car sound systems and class-type devices. Removable flash memory cards in some systems Does not include one: the controller 'in this case, the host itself controls the internal memory of the card Examples of such a system include a smart media card and a (3) card. Depending on the type 2 memory card, the control of the memory array can be controlled by a software in the card or not for the software. The card of the controller function is realized by the software in the host. In addition, in addition to the memory card implementation, the wide-ranging type can be embedded in each type of host system instead. In the movable::: In the application of the two, the "host data is stored in the memory array according to the memory control soft". One of the important recent advancements in the volatile memory technology will be so 11 configuration. Cheng, TM "memory instead of "service" memory. As is known in the employee technology, the position of the flash memory system in parallel with the source line is green /, should be set to one memory unit. Access - move, ::: - The specific cell is driven by its word line (control idle). The inch keeps the other cells in the row off, so that the current between the bit line and the source line is one. ^ Take the status of early squatting to decide. The memory cell in the D memory is connected in series, between the bit line and the source line. Accessing the specific unit in the NAND line 120874.doc 200814075 Therefore, it is necessary to use the active word line level All cells in the row, and an intermediate word line level is applied to the cell to be accessed, so that the current between the bit line and the source line is also determined by the state of the access unit. It is known that each bit of NAND flash memory is much smaller than the area of each bit of dirty (four) memory, the main 22: NOR § recall, and the memory requires fewer conductors (and Therefore, the access transistor can be shared among a large number of cells in a NAND configuration. In addition, conventional NAND flash memory facilitates serial access, such as by successively accessing cells along the rows, rather than as random access memory in the case of memory. N A N D memory (4) is especially suitable for music and audio storage applications. Another important recent advancement in the field of flash memory is in the technology _ multi-bit quasi-programming unit (10). According to this scheme, only two programs on the memory unit are made possible by the "programming of the field technology". In the traditional binary data store, each memory unit is stylized into a -"〇·, or -τ state. This type of binary is made by applying a single control voltage to the address memory unit and making the idle pole so that it is programmed to -T, the transistor is turned on at the state, and remains at 0; through the addressed memory Unit sense: Ankou and restore the stylized state of the single. In contrast, according to the typical example of Ml /, for each memory unit, four possibilities are defined: 'Generally corresponding to binary values 00, οι, ίο, 11. In effect, the two values correspond to the two early 'partially programmed levels between the fully erased and fully stylized states. Some implementations of MLC flash memory with up to eight 120874.doc 200814075 states or three binary bits per cell are known. The ability to store two or three bits of data on each memory soap element is immediately added or tripled to a flash memory chip. An example of a MLC flash memory single μ including a memory of such a cardiac unit is described in U.S. Patent No. 5, η 2, 338, and U.S. Patent No. 6,747, 892 Β 2, both of which are commonly assigned and incorporated by reference. Incorporated herein.效率 The efficiency of combining MLC technology with NAND flash memory architecture has resulted in a significant reduction in cost per bit for semiconductor non-volatile library and improved system reliability, and a higher for a given form factor Data capacity and system functionality. Modern flash memory devices (especially those NAND architectures and such flash memory devices involving MW cells) are configured using, "block" and "pages". A block is a wipe unit and defines the |meta group that is erased simultaneously in a single erase operation. In general, f, a unit block is the most unit group that can be erased. A page refers to a stylized unit and is defined to simultaneously privateize or write to a group of cells in a single programming operation. Each block typically includes multiple pages. In general, arranging cells into pages and blocks is based on the phantom of cryptosystems. For example, in many Nand memory arrays, 'a page of memory cells are defined by such cells sharing the same word line' and a block is retained by the same "na>jd" For example, if a nAND chain includes 32 memory cells in series, a block will include 32 pages. Historically, the organization of data stored in a flash memory has always followed the combination of magnetic The file system used by the disk storage, so it is based on, section, and. 120874.doc 200814075 A section is generally a fixed size - the same time ... 枓 group, such as 512 byte system Some number of management bytes are in the middle. In many current files, the operating system of a computer or other host system configures the data into segments to write data to and from the non-volatile storage: In order to facilitate flash memory loading == non-volatile storage devices in such systems and applications, many modern (four) memories map logical "segment" addresses to flash memory in a similar way. The physical address within the volume array. The size and capacity of flash memory devices have been greatly increased, from the memory array of more than 1 million cells. In such arrays, the line can be extended to more than 2 memory cells. So many memory cells are placed on the same page or stylized unit. Therefore, in such large-scale flash memory, each page now includes multiple segments. Thus, the host system communicates the data units to the flash memory. The data unit is smaller than the smallest stylized unit in the device. Traditional flash memory has been writing a section into a page by processing "partial page stylization". To perform a partial page stylization, for example During the stylized-in-page process of four segments, the word line of the page receives a high private voltage, but only the memory cells that are being programmed on the word line within the segment (and of course, the memory cells in the sector that will receive a stylized data state) receive the enabled stylized source and the immersive voltage (via the bit line and other cells within the NANd chain) So, you can The segments are written separately into the same page. However, the device geometry continues to shrink so that in a flash memory 120874.doc -10- 200814075 two:: more memory capacity, the memory cells The reliability of the floating gates is more fragile, and it has been observed that the stylized electrode is driven onto the word line or the floating gate transistor < γ η β ^ Tend to two: a transistor that is not being programmed. For example, in a page with four segments and each segment being individually written, each cell will receive three additional stylized cycles over the body segment. And thus will receive four times the strain received from the only-single-stylized cycle. Thus, the =:: flash memory device will disable partial page stylization to keep it loaded. . Under this constraint, the flash memory device or memory control = flush data for individual segments until all segments within the page can be programmed in the same stylized operation. The use of more backgrounds, in a large number of data storage devices and storage systems, and in the Bellows communication system for error correction coding (ECC) is a basic error in this technology. Storage and communication of poor bits and shirts or extra bits ("commonly known as parity bits: code bits, sum check codes, etc.". For example, in the case of Ecc for lean storage, the actual data is used to encode a codeword that has more bits than the actual data. In order to retrieve the library material, the stored code is decoded according to the same code used to encode the codeword. Because the code points are too much to specify the actual data portion of the codeword, it can tolerate some number of error bits 7L, and there will be no actual data evidence loss after decoding. Many coding schemes for ECC are in this The technology is well known. : The substantial impact on the manufacturing yield and device reliability that can be provided by such coding schemes. These traditional error correction coding systems are especially useful in large-scale memory. 120874.doc 200814075 Useful / A flash memory is included to describe a device having a number of unprogrammable or damaged cells as available. Of course, there is a trade-off between yield retention and the cost of providing additional memory cells to store the code bits ( In this case, some ECC codes are more suitable for flash memory devices than others; in general, Ecc codes for flash memory devices tend to be larger than those used for beech applications. It may have a code rate as low as 1/2) with a higher code rate (ie, a lower ratio of coded bits to data bits). Examples of general-purpose flash memory storage devices that are familiar with ECC codes include Reed Solomon Code, other BCH code, Hamming code, and the like. In general, the error correction code used in conjunction with the flash memory is "system" because the data portion of the last codeword and the actual data in the code No change, code or same: The bit is attached to the data bits to form a complete codeword. Hunting from other backgrounds' Figure 1 illustrates the actual data in the multi-session page 8 of the conventional flash memory device ( "Effective bearer" data) and the configuration of the code bit. As shown in Figure!, page 8 includes four segments 1〇〇 to 1〇" each segment includes a data portion 11, an ECC bit portion, and ;;;# ss 7 Q ^ and Titanium 13. The data portion 11 generally occupies a majority of the units within a given section 10; for example, a typical section 10 of a 528 group includes 512 bytes As the data portion η and the other _bytes are used for the Ecc bit portion 12 and the header 13. Further, as in the old, the data portion u of each segment 10 in the page 8 can store different data. In page 8 of Fig. 1, the data section 2 of the section 1〇, 1〇1, 1〇2 is stored, and the user" Includes information generated by the application or user of the non-volatile recording system on page 8. Section 1〇3 of the poor portion "storage" control information, such control information is included in the exercise 120874.doc 200814075 Useful information in the non-volatile memory, such as the logic to 1, address mapping address table, erase count, status information, and the like ^ Control in the data portion i 1 of the segment 1 〇 3 The data may or may not belong to the user data in the data portion η of the segment ^ 〇 to 1 〇 3, and may or may not be in time. It is synchronized with the user data (that is, it may already be - the actual f is different from the use The time of the data is written). The header portion η for each segment stores (4) information for its segment, such control information including identification information for its associated segments, and status information about the data within its associated data portion. i. As described above, the control system reads data from the memory containing the page 8 and writes the data to the operating system thereof. The data is configured in a segment form, similar to (or equivalent to) storing the data as if it were stored in a disk drive. . Thus, if a large amount of data is written into the volatile memory, the data is concentrated in the sector (for example, 512 bytes) and provided to the memory controller or other device for influencing the writing of the data to the non-volatile memory. The logic of volatile memory. Page 8 for flash memory - controller or other logic uses the effective bearer (user or control) for a given segment to calculate the ECC for that segment Positioned. In the case of 5, the ecc bits for a sector depend only on the material used for the segment, and not on the content of the data in any other segment of the page. The number of ECC bits generated for a codeword of a given size depends on the particular stone horse in use', and of course depends on the length of the data block in the code. Once the data is written to the data portion n of a selected segment, the β, etc. is written to the ECC bit portion 12' for that segment, along with the appropriate header information to the header portion. . Moreover, once the data portion of the selected section of the 120874.doc 200814075 选定-read section reads the content of the section of the section of the section, the contents of the section 1 of the section of the section are read and used for detection (possibly Correction) An error in the data from the data section π. As mentioned above, the number of code bits generated by a conventional ECX code depends on the number of bits in the code: the body. Considering the ratio of the number of these additional code bits to the number of nurturing bits in the numerator, consider the "efficiency" of one code; this efficiency is another - the stomach-sense measurement system "the code rate" The ratio of the number of bits to the total bit (the code bit plus the data bit). With other backgrounds, conventional ECC codes (such as Chen De Solomon and BCH coding) tend to be more efficient in sizing horses. SUMMARY OF THE INVENTION "Therefore, the present invention is directed to providing an operation-implementation--a method of more efficient error correction of a flash memory device of a coding scheme. Another object of the present invention is to provide a minimum stylization The unit includes such a large-scale NAND flash memory in a plurality of data sections. The other object of the present invention is to provide (4) such large-scale NAND flash memory in which partial page programming is prohibited. Such methods. • With reference to the following description and the drawings, those skilled in the art will understand that other objects and advantages of the present invention are disclosed. The present invention can be implemented in an operation in which a page (or stylized unit) is configured to be stored. Method for flash memory device of multiple data segments. According to the present invention, the error correction code is applied by combining the data of the section # of the page into the unitary data block. The code is based on a data block containing information from all the data sections of the page from 120874.doc -14-200814075. Thus, the buffalo strip section can be of different types, for example The user data and the control data not included in the user data are included. In order to read a specific segment from a page, the entire page is read and decoded, and then the desired segment data is selected and output. The present invention will be described in conjunction with the preferred embodiments of the present invention.

於一其中可使用多位準記憶體單元(MLC)程式化之财见 型快閃記憶體内。預期本發明在此類應用中尤其有好處。 然而’還預期本發明可在其他記憶體應用中提供好處。例 如’本發明可結合各種固態非揮發性(或甚至揮發性)記憶 體純用,包括諸如可再寫記憶體、可抹除記憶體及一: 可知式化(QTP) s己憶體之記憶體類型。因此,應明白, 列說明係僅以範例方式提供,且不希望其限制所中明 發明之真實範疇。 現在翏見圖2,現將詳細說明依據本發明之較佳且體撫 施例之快閃記憶體模組15之構造。圖2說明依據本發明: Λ施例所構造之快閃記憶體裝置(或模組)1〇之 耗例〖生構造。預期快閃記憶冑5將一般構造成 體電路,且如此W人拉4^ π Τ,丨接许夕記憶體控制器或記憶體控制器 邏輯之任一者,如下♦ φ / 一 下文更砰細地說明。還預期,如圖2所 不之快閃記憶體裝置15之架構僅係為了理解本發明而提伊 地^ 口不R於圖2所示者之快閃記憶體裝置架構而實現才 120874.doc 200814075 發明。 快閃記憶體裝置15之儲存容量駐存於快閃記憶體陣列Η 内。如此項技術中所習知,陣列16包括以列及行配置的+ 可程式化且可抹除記憶體單元。儘管圖2中顯示—單 列16 ,但當然預期可將陣列16實現為多個子陣列,各子 列具有-分離的周邊電路例項(instance),例如下文關於圖 2之更評細所述之位址、資料或控制電路之部分或全部。 預期習知此項技術者在參考本說明書之後,應容易地能夠 結合此類多子陣列架構來實現本發明。在此範例中 ^之^等記憶體單元料動閘極金屬氧化物半導體⑽S) ^晶體,構造使得每個此類電晶體對應於-記憶體單元, 可^以電程式化且還可加以電抹除。依據本發明之較佳具 體貫施例,陣列16之贫篝冲,卜立雜-_ ^ 平幻5之„亥等5dfe體早兀係多位準記憶體單元 (MLC):因為其可程式化成兩種以上資料狀態(即兩個以上 臨界電壓之任一者)传得 有)使侍各此類早元儲存一多位元數位 值。而且依據本發明之此較佳具體實施例,如從下列說明A multi-level memory cell (MLC) stylized financial flash memory can be used in one. The invention is expected to be particularly advantageous in such applications. However, it is also contemplated that the present invention may provide benefits in other memory applications. For example, the present invention can be used in combination with various solid non-volatile (or even volatile) memories, including, for example, rewritable memory, erasable memory, and a memory of a known (QTP) s memory. Body type. Therefore, it should be understood that the description of the present invention is provided by way of example only and is not intended to limit the true scope of the invention. Referring now to Figure 2, the construction of a flash memory module 15 in accordance with a preferred embodiment of the present invention will now be described in detail. Figure 2 illustrates a consumption structure of a flash memory device (or module) constructed in accordance with the present invention. It is expected that the flash memory 胄5 will generally be constructed into a body circuit, and thus the W person pulls 4^ π Τ, which is connected to any of the memory controller or the memory controller logic, as follows: ♦ φ / Explain in detail. It is also contemplated that the architecture of the flash memory device 15 as shown in FIG. 2 is only for understanding the present invention and that the implementation of the flash memory device architecture shown in FIG. 2 is only 120874.doc. 200814075 Invention. The storage capacity of the flash memory device 15 resides in the flash memory array 。. As is known in the art, array 16 includes + programmable and erasable memory cells arranged in columns and rows. Although shown in FIG. 2 - a single column 16, it is of course contemplated that the array 16 can be implemented as a plurality of sub-arrays, each sub-column having a separate peripheral circuit instance, such as the one described below with respect to FIG. Part or all of the address, data or control circuitry. It is expected that the skilled artisan will readily be able to implement the present invention in conjunction with such multiple sub-array architectures after reference to this specification. In this example, the memory cell unit gate metal oxide semiconductor (10)S) crystal is configured such that each such transistor corresponds to a memory cell, which can be electrically programmed and can be electrically Erase. According to a preferred embodiment of the present invention, the array 16 is poorly imperfect, and the Bu Liza-_^ Pingyin 5 is a 5dfe body early 多 multi-level memory unit (MLC): because of its programmable Forming two or more data states (i.e., any one of two or more threshold voltages) is passed to cause each such early element to store a multi-bit digit value. And in accordance with the preferred embodiment of the present invention, From the following instructions

中所會明白的’該些記憶體單元較佳的係採❹知NAND 方式配置,使得該等記憶體單元係一般不被隨機存取,而 係被串列存取,如用於大量儲存器應用。當然,本發明還 可結合二進制記憶體單元(即只儲存一單一數位位元)並結 合記憶體單元2N0R配置來使用。 據本!X明之此較佳具體實施例,共同輸入/輸出終端 1/01至I/0n經提供且連接至輸入/輸出控制電路20。如 NAND型快閃記憶體技術中所習知,㈣記憶體裝置^之 120874.doc -16- 200814075 操作係大部分由接收及執行命令來加以控制,該等命令係 通過輪入/輸出終端1/01至1/〇11作為數位字組來傳達,並由 技制邏輯1 8來執行。如此,輸入/輸出控制電路20經由與 輸入/輸出終端1/〇1至I/〇n通信之其驅動器及接收電路來接 收控制命令、位址值、及輸入資料,並提呈目前狀態資訊 及輸出育料。預期輸入/輸出終端1/01至I/On之數目n將一 般為8或16,但當然可提供任一數目的此類終端。 經由輸入/輸出控制電路20所接收之命令係轉遞至控制 邏輯18以用於解碼及執行,從而控制快閃記憶體裝置。之 刼作。由輪入/輸出控制電路2〇在輸入/輸出終端1/〇1至As will be understood, the memory cells are preferably configured in a NAND mode such that the memory cells are generally not randomly accessed but are serially accessed, such as for mass storage. application. Of course, the present invention can also be used in conjunction with a binary memory unit (i.e., storing only a single bit unit) in combination with a memory unit 2NOR configuration. According to this! In the preferred embodiment of the invention, the common input/output terminals 1/01 to I/0n are provided and connected to the input/output control circuit 20. As is known in the NAND type flash memory technology, (4) the memory device ^120874.doc -16- 200814075 operating system is mostly controlled by receiving and executing commands, which are passed through the wheel input/output terminal 1 /01 to 1/〇11 are conveyed as a digital block and executed by the technical logic 18. Thus, the input/output control circuit 20 receives the control command, the address value, and the input data via its driver and receiving circuit in communication with the input/output terminals 1/〇1 to I/〇n, and presents the current status information and Output the feed. It is expected that the number n of input/output terminals 1/01 to I/On will generally be 8 or 16, but of course any number of such terminals may be provided. Commands received via input/output control circuit 20 are forwarded to control logic 18 for decoding and execution to control the flash memory device. The production. By the wheel input/output control circuit 2〇 at the input/output terminal 1/〇1 to

ί/〇η處所接收之位址值係緩衝於位址暫存器π内;此類位 址之列部分係由列解碼器23來解碼,而行部分係由行解碼 杰21來解碼(各解碼器一般包括一位址緩衝器),以採用傳 統方式在陣列16内有效地選擇所需記憶體單元或多個記憶 體單光。輸入/輸出控制電路20還經由匯流排DATA—Bus與 貝料暫存H 19進行雙向通信,以轉遞資料來將其寫入至資 料暫存器丨9,並從資料暫存器19接收輸出資料,視要執行 之資料傳輸之方向而冑。控制邏輯18還接收來自外部至快 閃記憶體裝置15的各種直接控制信號,此類信號包括⑽ 以範例方式)晶片啟用、命令鎖存啟用、位址鎖存啟用、 寫入及讀取啟用信號。如此項技術中所習知,命令鎖存啟 用及位址鎖存啟用信號指示一命令或位址是否正提供於輸 入/輸出終/端1/〇1至_上,而寫入啟用及讀取啟用信號^ 別用作寫入及5買取操作中的資料選通。 I20874.doc 200814075 依據本發明之較佳具體實施例’記憶體陣列16係配置成 區塊;一區塊對應於可由一抹除操作抹除之最小單元群 組。對應於此構造之各區塊包括多個頁;—頁對應於可由 一程式或寫入操作程式化之最小單元群組。如上述,對於 依據本發明之此較佳具體實施例之記憶體 d 組織而言,-記憶體單元頁係由共用相同字線之=: 該等單元所定義,故—區塊係定義為駐存於相㈣娜"The address value received by the ί/〇η is buffered in the address register π; the column portion of such an address is decoded by the column decoder 23, and the line portion is decoded by the line decoding jie 21 (each The decoder typically includes a one-bit address buffer to efficiently select a desired memory unit or a plurality of memory single lights within the array 16 in a conventional manner. The input/output control circuit 20 also performs bidirectional communication with the billet temporary storage H 19 via the bus DATA-Bus, transfers the data to the data register 丨9, and receives the output from the data register 19. Information, depending on the direction of data transmission to be performed. Control logic 18 also receives various direct control signals from external to flash memory device 15, such signals including (10) by way of example) wafer enable, command latch enable, address latch enable, write and read enable signals . As is known in the art, the command latch enable and address latch enable signals indicate whether a command or address is being provided on the input/output terminal/end 1/〇1 to _, while the write enable and read Enable signal ^ is not used as data strobe in write and 5 buy operations. I20874.doc 200814075 In accordance with a preferred embodiment of the present invention, memory array 16 is configured as a block; a block corresponds to a minimum group of cells that can be erased by an erase operation. Each block corresponding to this configuration includes a plurality of pages; the page corresponds to a minimum group of cells that can be stylized by a program or write operation. As described above, with respect to the memory d organization according to the preferred embodiment of the present invention, the memory cell page is defined by the same word line =: the cells are defined, so the block system is defined as Saved in phase (four) Na "

鏈内的該等頁。預期按現代標準,依據本發明之此較佳且 體實施例之記憶體陣列16之大小係相對較大m吏得各頁對 應於多個”區段”的資料。例如,預期記憶體Μ之各頁對應 於至少四個區段,各區段對應於512個位元組的實際資料 及在二個位元組管理並在ECC資料之級別上。在此範例 中’還預期各區塊將包括在32個頁級別上,使得在記憶體 陣列16内的該等财仙鏈包括32個或更多記憶體單元。當 然’在本發明之範疇内,其他區段、頁及區塊大小可藉由 記憶體陣列1 6來替代性地實現。 C贫據本明之此較佳具體實施例,記憶體陣列16之該 等區塊之-係指定為"高速暫存"區塊24。作為高速暫存區 塊24的在記憶體陣列16内之特定區塊係任意,且依據本發 明之此具體實施例’在快閃記憶體模組15之操作期間會變 化。考慮到在依據本發明之此較佳具體實施例之快閃記憶 體陣列16中禁止局部頁程式化,如下面將更詳細地說明, 门速^存區塊24用作欲寫人至記憶體陣列16之—最終區塊 之H &貝料之臨時儲存器’效果上作為—非揮發性緩衝 120874.doc -18- 200814075 器。 記憶卡25内之快閃記憶體裝置(或模組)15之一實施方案。 如圖3所示,快閃記憶卡25自身包括至少快““二 15並還包括控制器3G。儘管圖3說明具有上述單—記情體 陣列16之-單-快間記憶體裝置15,但預期快閃記憶體卡 25可包括具有多個記憶體陣列16之—或多個模組。,此類 多個陣列定義多個"平面,,’如此項技術中所習知。出於清 此說明書將引用在單一快閃記憶體模組Μ内的— ^ 5己憶體陣列16 ;但是預期習知此項技術者參考本說明 =之,能夠容易地將本發明應用於涉及多個快The pages within the chain. It is contemplated that, according to modern standards, the size of the memory array 16 in accordance with this preferred embodiment of the present invention is relatively large, resulting in data corresponding to a plurality of "segments" for each page. For example, each page of the memory bank is expected to correspond to at least four segments, each segment corresponding to the actual data of 512 bytes and managed at two bytes and at the level of the ECC data. In this example, it is also contemplated that the blocks will be included at 32 page levels such that the wealth chains within the memory array 16 include 32 or more memory cells. Of course, other segments, pages and block sizes can be alternatively implemented by the memory array 16 within the scope of the present invention. In the preferred embodiment of the present invention, the blocks of the memory array 16 are designated as "cache" block 24. The particular block within the memory array 16 as the scratch pad block 24 is arbitrary and may vary during operation of the flash memory module 15 in accordance with this embodiment of the present invention. In view of the fact that partial page stylization is disabled in the flash memory array 16 in accordance with this preferred embodiment of the present invention, as will be explained in more detail below, the gate speed memory block 24 is used as a write-to-memory memory. The array 16 - the temporary block of the H & bedding material of the final block - acts as a non-volatile buffer 120874.doc -18- 200814075. One embodiment of a flash memory device (or module) 15 within memory card 25. As shown in FIG. 3, the flash memory card 25 itself includes at least "2" 15 and also includes the controller 3G. Although FIG. 3 illustrates a single-fast memory device 15 having the above-described single-character array 16, it is contemplated that the flash memory card 25 can include one or more modules having a plurality of memory arrays 16. Multiple arrays of this type define multiple "planes,' as is known in the art. For the sake of clarity, this specification will be referenced to the -5 memory array 16 in a single flash memory module; however, it is expected that the present inventors can easily apply the present invention to the present invention with reference to the present specification. Multiple quick

面之架構。 T 控制器3 〇向_主备Μ技W , HOST TF 主枝系、,先如供並管理一外部介面 ~ ,例如一個人電腦或筆記型電腦、-高效能數位 相機、-汽車聲音系統、或一 〜文此數位 贿播说抑 J ‘式裝置,例如一數位聲 y、文裔、個人數位助理(PDA)、蜂 資料通旬狀罢 ;手杲式電洁手機或不同 記情卡25二及類似等。介面職T—if還可對應於快閃 入各種主機^外部終端’㈣記憶卡25係構造成—可插 中所==一者之通用快閃記憶卡,如此項技術 知之一偯缔庐、隹 —了依據目則此項技術t所習 傳、冼糕準介面或可能結合未來快 或專用介面協定所發展的來操作。 …。’面票準 包括一"支:中::知’某些類型的快閃記憶卡或裝置不 子工利态(例如控制哭3 0),j* a t主 )在此情況下主機系統(例 I20874.doc -19- 200814075 ,)稽由執行主機系統内的控制軟體來控制記憶體陣列之 操作。此類記憶體系統之範例包括智慧型媒體卡與⑺卡。 儘管圖3之範例係關於包括控制器3〇之快閃記憶卡乃,可 預期本發明還結合此類無控制器快閃記憶卡來使用。 如圖3之範例中所示,快閃記憶裝置15係以-與圖2所示 之終端相一致之方式而耦合至控制器30。在此方面,一輸 入/輸出匯流排係、由信號線而㈤心來形成,該等信號係 連接至相同名稱的快閃記憶裝置15之終端…控制匯流排 CTRL將控制器30耦合至快閃記憶體裝置i包括用於 上面相對於圖2所述之該等控制信號的導線。 如此項技術者所習知’預期控制器3〇實質上依據傳統快 =記憶體控制H架構而構造,必要時修改以影響在本說明 曰中所述之刼作。更明確而t,圖4說明依據本發明之較 佳具體實施例之控制㈣之功能架構。在此方面,還預期 習^項技術者參考本說明書之後應明白在控制器30内用 =:%忒些尚階操作模式功能之邏輯硬體、程式指令或其 :口。攸-硬體角度上看’如上述,預期將會以傳統方式 來構=控制1130’較佳的係藉助—執行儲存在程式記憶體 内之扣令序列之可程式化處理器。如此,進一步預期,習 知此項技術的讀者應能夠在適當時針對—特定認識容易地 T拴制态3 0之此類修改,而不進行不適當的實驗。 •斤示控制益3 0包括顯示為主機介面電路3 2之一 、月1而系統,其控制通過介面HOST_IF至及從主機系統傳 達^唬及資料,並控制至及從,,後端”系統34傳達信號及資 120874.doc -20 - 200814075 料’”後端”系統34與快閃記憶體模組15(圖3)進行通信。後 端系統34包括控制至及從記憶體模組15之資料區段:排序 及傳輸的資料流及定序功能’並還包括媒體管理功能,其 =决閃冗憶體模組15之區塊及頁結構内組織邏輯資料儲存 ^該等資料流及排序功能包括命令定序器%、低位準定 序益38、及快閃控制層42,而該等媒體管理功能包括位址 轉睪力此35、表官理器37、及抹除區塊管理器的。命令定 序器36組合位址轉譯功能邱作以依據邏輯區段位址:實 體位址之映射(由位址轉譯功能35來轉譯),在主機與快= 。己隐體1置15之間配置及定序資料傳輸。低位準定序器功 能:組合維持用於快閃記憶體模組15之控制表資訊之:管 理為3 7來產生用於與快閃記憶體模組1 5通信的更低位準控 制序歹J A類表包括自由區塊表、用於在供閃記憶體陣列 =内、准持區塊之該等過時或更新狀態之索引及表、及類似 等。抹除區塊管理器功能39維持該等抹除區塊,包括維持 用於,閃記憶體模組15之抹除計數及平均讀寫…咖 、n=快閃控制層42推導並轉譯用於與快閃記憶體模 、且5通L之適當信號序列,並通過輸入/輸出線1/〇1至"on 及所;不!工制匯流排CTRL,i及從%記憶體模組b驅動並 接收該等控制及輸人/輸出信號之裝置介面44通信。 /據本發明之較佳具體實施例,控制器3()之後端系統34 运包括錯誤更正編碼(ECC)引擎4〇, #組合低位準定序器 。或羑而尔統34之該等資料流及定序功能内的其他功能而 知作,U執行碼位元之適當編碼及解碼用於儲存於快閃記 120874.doc 200814075 fe體模組1 5内及從中# ^ °員取。供ECC引擎40使用的特定ecc 碼可以係此項技術φ 中所S知之習知錯誤更正碼之任一者, 且較佳的係一具有一、& m 適用於結合快閃記憶體儲存器使用之 碼率之碼(即—充分健固地更正—合理數目錯誤,而不需 ^己憶㈣列16内一過多數目的額外儲存單元之碼)。適 田碼之犯例包括热知裏德所羅Η碼、及其他BCH碼;在任 -情況下’較佳的係該咖碼係有系統的。 下面將更詳細地却 次月依據本發明之較佳具體實施例Ecc 引擎40編碼及解碼資 、 ^貝枓群組(即區段)所採用之方式。但是 為了本5兒明書目的,先用於使用圖2之高速暫存區塊24, 說明將資料寫入至快閃記憶體陣列16之操作之範例。 I如^述’需要針對快閃記憶體裝置Η之資料寫入禁止局 °P頁程式化’以減小由於針對頁内各區段使用分離程式化 循環寫入資料所發生的在相同頁内重複單元程式化所引起 之陣列16之—頁内的記憶體單元上的應變。然而,如上 述’實體頁邊界係對於逐個區段管理資料之主機系統透 月如此,主機系統按區段至及從控制器%來傳達資料, 而不關〜貫體頁邊界。現在參考圖5&至5f,將更詳細地說 依據本么明之較佳具體實施例在處理區段寫入操作中控 制器30及快閃記憶體模組15之操作。 圖5 a至5 d „兒明使用馬速暫存區塊24中控制器%及快閃記 憶體裝置15之操作。如圖2所示,高速暫存區㈣係指在 快閃記憶體陣列16内的一任意位置區塊,此類任意位置在 快閃記憶體裝置15之操作期間變化。例如,當用作高速暫 】20874.4 -22· 200814075 存區塊24之一區塊變滿(即其最後頁係寫入)時,將該區塊 之内容寫入至一接著用作高速暫存區塊24之新區塊,放棄 過時區段(即已寫入至另一"更新"區塊或已另外替換之該等 區段),以便額外的空間存在於該新高速暫存區塊内。接 f抹除先前用作高速暫存區塊24之區塊並可供使用。可結 合本發明使用之高速暫存區塊之構造及操作之範例係提供 、 於在2004年12月16申請日且標題為”高速暫存區塊"的待審 _ 及共同指派美國專利申請案序號1 1/01 6,285與在2005年7月 27日申明且;^題為”具者多流更新循跡之非揮發性記憶體 及方法"的序號11/192,220,二者均以引用形式併入本文。 在圖5a中,顯示高速暫存區塊24之一例項之一部分。如 上述,在記憶體陣列16内的區塊係配置成頁,而頁係配置 成區段。高速暫存區塊24之個別頁SBpi、SBp2、SBp3、 SBP4等在此範例中各包含多個區段位置si、、s3、 S4。當然,如上述,可儲存於—頁内的區段數目與在一區 Φ 鬼内的頁數目取決於特定架構。例如,典型現代NAND快 閃記憶體陣列係組織以盡可能多地在一給定區塊內包括Μ 個實體頁。圖5a還說明記憶體陣列16之另一區塊16a,在 此範例中,其將用作一正常,,更新,,區塊。術語,,更新,,區塊 • 係指在記憶體陣列16内的一區塊,其係用於儲存於快閃記 憶體震置15内之主機系統所提供資料之目的地。更新區塊 16a之特定選擇及配置將取決於用於快閃記憶體之特定組 k及官理方案,故如此更新區塊丨6a可作為一連續更新區 塊(即在記憶體陣列16内連續)或作為一”混亂"更新區塊(即 120874.doc -23 - 200814075 在記憶體陣列16内不連續地選擇)來選擇並管理。在任一 情況下,更新區塊〗6a包括多個頁,在圖5a中顯示四個此 類區塊UBP1至UBP4,各區塊UBPj包括四個區段位置§1至 S4。當然,考慮到任一區塊(包括更新區塊16a)可在時間上 自身指定為高速暫存區塊24,更新區塊16a一般會包括相 同數目的頁(及每頁的區段)作為高速暫存區塊24。 :圖5a說明回應接收一區段欲寫入資料之控制器3〇,高速 緩衝區塊24及更新區塊16a之内容。在此範例中,用於一 單一區段#5之資料(此類資料包括其對應的標頭資訊)係由 控制器30接收自主機。清楚起見,本發明之較佳具體實施 例之此操作之說明將引用既包括實際有效承載資料,又包 括任何彳示頭資訊(例如圖1所示)之u資料,,。如上述,局部頁 程式化係在快閃記憶體裝置15内禁止。然而,在此第一操 作中接收自主機之資料係僅用於一區段,且用於不對齊一 頁開始之一區段的資料。相反,在此每頁提供四個區段之 fe例中’區段#〇、#4、#8、#12係對齊頁邊界。因此,控 制器30將用於區段#5之内容儲存於高速暫存區塊24之頁 SBP1内,將該寫入資料與具有區段#4之目前内容之一複本 (如圖5a所示之資料填充”在一起。此操作之結果係, 頁SBP1包含用於區段#4及#5之資料,且由於禁止局部頁程 式化,此頁SBP1將不再寫入,直到抹除高速暫存區塊24之 後。更新區塊16a在此時保持空置。 依據本發明之較佳具體實施例,如下面將更詳細地說 明,頁SBP1係採用一相對於傳統快閃記憶體寫入及讀取操 120874.doc -24- 200814075 作提供改良錯誤更正能力之方式寫入以儲存區段#4及#5之 内合連同其官理及錯誤更正碼位元。將結合圖6a,詳細地 說明實際儲存資料與管理資料之配置。 圖5b顯示在控制器3〇從主機系統接收用於一下一區段#6 ‘ (内容以寫入至快閃記憶體裝置15之I,高速暫存區塊24 及連續區塊16a之内容。如前述,用於區段#6之該些資料 . 不會充滿一頁,且不對齊一頁邊界。若允許局部頁程式 _ 化,則控制器30可能已經僅將用於區段#6之該些資料寫入 頁SBP 1之相姊區段S3内(或更有可能的係僅直接將區段 #6寫入快閃記憶體裝置16之適當實體區段,而不使用一高 速暫存區塊24)。然而依據本發明之此具體實施例,如圖 5b所不’控制态30將區段#6寫入一新頁sBp2之區段位置 S3頁SBP2係填充先前寫入並保留於高速暫存區塊24之 頁SBP1内之區段#4、#5之内容。更新區塊心此時仍未曾 寫入。 Φ 、,依據此範例,控制裔30接著接收用於二區段#7及#8之資 料。用於區段#7之貧料當然會完成還包含區段料、#5及#6 之兀t資料頁,用於區段#8之資料組成用於另一頁之第 一貝料區段。在此方案中,用於區段#4、#5、#6及#7之一 • 完整資料頁係因而寫入更新區塊“a之頁UBP1(作為先前内 容之一複本4 0的用於區段# 4之資料係填充至用於上述區段 #5、#6、#7之新資料)。控制器3〇將高速暫存區塊以之頁 SBP1、SBP2之内容標記為過時,因為該些内容現在已儲 存於更新區塊内。此標記可能(例如)受操作表管理器功 120874.doc -25- 200814075 此37以將對應控制貧料寫入一表或在控制器或在快閃記 L體衣置15内所儲存之其他資料結構的影響。對應於一不 同頁之部分内容之區段#8係寫入高速暫存區塊Μ之頁 繼3。因純段嶋對齊—頁邊界且因為直到接收到用於 至少一後續區段之資料時才將其寫人更新區塊! 6 a,故不 需要任何填充。 圖5d表示控制器3〇從主機系統接收三個區段的資料,即 用於區U1()、#11及#12之資料。因為用於區段㈣及#11The structure of the face. T controller 3 _ main Μ Μ W, HOST TF main branch, first supply and manage an external interface ~, such as a personal computer or laptop, - high-performance digital camera, - car sound system, or One ~ text this number of bribes to say that J '-type devices, such as a digital sound y, literary, personal digital assistant (PDA), bee information through the ten-day; hand-held electric clean mobile phone or different memory card 25 two And similar. The interface job T-if can also correspond to flashing into various hosts ^ external terminal' (four) memory card 25 is constructed as a plug-in == one of the universal flash memory cards, such a technology knows one,隹 了 了 了 了 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项 此项.... 'Panel ticket quasi-included one's branch: Medium:: Know 'some types of flash memory cards or devices do not work (such as controlling cry 3 0), j * at main) in this case the host system ( Example I20874.doc -19- 200814075,) The operation of the memory array is controlled by the control software executing the host system. Examples of such memory systems include smart media cards and (7) cards. Although the example of Figure 3 is directed to a flash memory card that includes a controller 3, the present invention is also contemplated for use with such a controllerless flash memory card. As shown in the example of FIG. 3, flash memory device 15 is coupled to controller 30 in a manner consistent with the terminal shown in FIG. In this regard, an input/output bus system is formed by signal lines and (5) hearts that are connected to the terminals of the flash memory device 15 of the same name... control bus CTRL couples the controller 30 to flash The memory device i includes wires for the control signals described above with respect to FIG. As is known to those skilled in the art, the controller 3 is expected to be constructed substantially in accordance with the conventional fast = memory control H architecture, modified as necessary to affect the operations described in this specification. More specifically, Figure 4 illustrates the functional architecture of control (4) in accordance with a preferred embodiment of the present invention. In this regard, it is also contemplated by those skilled in the art that, after reference to this specification, it is understood that within the controller 30, the logical hardware, program instructions, or ports of the operating mode functions are used with =:%. From the perspective of the hardware, as described above, it is expected that the conventional control = 1130' is preferably implemented by means of a programmable processor that executes a sequence of deductions stored in the program memory. As such, it is further contemplated that readers of the art should be able to easily make such modifications to the specific state, as appropriate, without undue experimentation. • The control unit 3 0 includes a system shown as one of the host interface circuits 32, the system, which controls the communication and communication to and from the host system through the interface HOST_IF, and controls the system to and from the back end. 34. Signals and Resources 120874.doc -20 - 200814075 The 'backend' system 34 communicates with the flash memory module 15 (Fig. 3). The backend system 34 includes control to and from the memory module 15. Data section: data flow and sequencing function for sorting and transmission' and also includes media management function, which is the block and page structure of the flash memory redundancy module 15 and the logical data storage in the page structure. The functions include command sequencer %, low level ordering benefit 38, and flash control layer 42, and the media management functions include address transfer force 35, table controller 37, and erase block manager. The command sequencer 36 combines the address translation function Qiu Zuo to map according to the logical sector address: the physical address (translated by the address translation function 35), and the host and the fast =. Inter-configuration and sequencing data transmission. Low-order quasi-sequencer function: combined dimension For the control table information of the flash memory module 15, the management is 3 7 to generate a lower level control sequence for communicating with the flash memory module 15. The JA class table includes a free block table, Indexes and tables of such obsolete or updated states in the flash memory array = in-and-out blocks, and the like, etc. The erase block manager function 39 maintains the erase blocks, including maintaining , erase count and average read and write of flash memory module 15 ... coffee, n = flash control layer 42 derivation and translation of the appropriate signal sequence for use with the flash memory phantom, and 5 pass L, and through the input / Output lines 1/〇1 to "on and; no! Industrial bus CTRL, i and device interface 44 that drives and receives these control and input/output signals from the % memory module b. In a preferred embodiment of the present invention, the controller 3() rear end system 34 includes an error correction coding (ECC) engine 4, a # combination low level sequencer, or the data stream of the 34 尔 system 34 and Known for other functions within the sequencing function, U performs the appropriate encoding and decoding of the code bits for storage in Flash 12087 4.doc 200814075 fe body module 1 5 and from the # ^ ° member. The specific ecc code used by the ECC engine 40 can be any of the known error correction codes known in the technology φ, and A good one has a & m suitable for combining the code rate code used by the flash memory storage (ie - fully robust correction - a reasonable number of errors, without having to remember (four) column 16 too much The number of additional storage units is coded. The crimes of the Optima code include the Hirsch Reid Η Η code, and other BCH codes; in the case of the case - the preferred system is systemically. In detail, the next month, in accordance with a preferred embodiment of the present invention, the Ecc engine 40 encodes and decodes the methods employed by the group, i.e., segments. However, for the purpose of this book, the first use of the scratch pad block 24 of FIG. 2 illustrates an example of the operation of writing data to the flash memory array 16. I, as described in the 'Requires the flash memory device 写入 data write prohibition page °P page stylized' to reduce the occurrence of the same page caused by the use of separate stylized loops for each segment of the page The strain on the memory cells within the page 16 caused by the repeating unit stylization. However, as described above, the physical page boundary is such that the host system manages the data on a sector-by-segment basis, and the host system communicates the data by the segment to and from the controller % without closing the page boundary. Referring now to Figures 5 & 5f, the operation of controller 30 and flash memory module 15 in a processing sector write operation will be described in greater detail in accordance with a preferred embodiment of the present invention. Figure 5 a to 5 d „Children use the controller % of the horse speed temporary storage block 24 and the operation of the flash memory device 15. As shown in Figure 2, the high-speed temporary storage area (four) refers to the flash memory array An arbitrary location block within 16 that varies during operation of the flash memory device 15. For example, when used as a high speed temporary 20874.4 -22. 200814075 memory block 24, the block becomes full (ie, When the last page is written, the contents of the block are written to a new block that is then used as the scratch pad block 24, and the obsolete sector is discarded (ie, written to another "update" area a block or such a segment that has been replaced, so that additional space is present in the new scratch pad block. The block previously used as the scratch pad block 24 is erased and available for use. An example of the construction and operation of the high-speed temporary storage block used in the present invention is provided in the pending date of December 16, 2004, and entitled "High-speed temporary storage block", and the commonly assigned US patent application serial number. 1 1/01 6,285 and declared on July 27, 2005; ^ titled "There is a multi-stream update tracking Vol. 1 / 192, 220, Vol. No. 11/192,220, both of which are incorporated herein by reference. In Fig. 5a, a portion of one of the items of the scratch pad block 24 is shown. As described above, in the memory array 16 The inner block is configured as a page, and the page system is configured as a segment. The individual pages SBpi, SBp2, SBp3, SBP4, etc. of the high speed temporary storage block 24 each include a plurality of segment positions si, s3, in this example. S4. Of course, as mentioned above, the number of segments that can be stored in a page and the number of pages in a region Φ ghost depends on the particular architecture. For example, typical modern NAND flash memory arrays are organized as much as possible. Included are physical pages within a given block. Figure 5a also illustrates another block 16a of the memory array 16, which in this example will be used as a normal, update, block, term, Update, block • refers to a block within the memory array 16 that is used to store the data provided by the host system within the flash memory location 15. The particular selection of the update block 16a And configuration will depend on the particular group k used for flash memory and the official solution Therefore, the update block 丨6a can be used as a continuous update block (ie, continuous in the memory array 16) or as a "chaotic" update block (ie, 120874.doc -23 - 200814075 in the memory array 16 Select continuously) to select and manage. In either case, the update block 6a includes a plurality of pages, and four such blocks UBP1 to UBP4 are shown in Fig. 5a, and each block UBPj includes four sector positions §1 to S4. Of course, considering that any block (including update block 16a) can be designated itself as a scratch pad block 24 in time, update block 16a will typically include the same number of pages (and segments per page) as a high speed. Temporary block 24. Figure 5a illustrates the contents of the controller 3, the high speed buffer block 24 and the update block 16a in response to receiving a sector to be written. In this example, the data for a single segment #5 (such data includes its corresponding header information) is received by the controller 30 from the host. For clarity, the description of this operation of the preferred embodiment of the present invention will include both actual and valid bearer data, as well as any header information (e.g., as shown in Figure 1). As described above, the partial page stylization is prohibited in the flash memory device 15. However, the data received from the host in this first operation is for only one segment and is used to not align the data for one of the beginnings of a page. In contrast, in the fe example in which four sections are provided per page, the sections #〇, #4, #8, #12 are aligned page boundaries. Therefore, the controller 30 stores the content for the section #5 in the page SBP1 of the scratch pad block 24, and copies the written data with one of the current contents of the section #4 (as shown in FIG. 5a). The data is populated together. The result of this operation is that page SBP1 contains the data for sections #4 and #5, and since local page staging is disabled, this page SBP1 will not be written until the high speed is erased. After the block 24, the update block 16a remains vacant at this time. According to a preferred embodiment of the present invention, as will be explained in more detail below, the page SBP1 is written and read relative to conventional flash memory. Take the instruction of 120874.doc -24- 200814075 to provide improved error correction capability to write the internal sections of storage sections #4 and #5 together with their official and error correction code bits. This will be explained in detail in conjunction with Figure 6a. The actual storage data and management data configuration. Figure 5b shows that the controller 3 receives the next segment #6 ' from the host system (the content is written to the flash memory device 15 I, the scratch pad block) 24 and the content of the contiguous block 16a. As described above, for the section #6 Data. Does not fill a page and does not align a page boundary. If partial page programming is allowed, the controller 30 may have only written the data for the section #6 to the opposite area of the page SBP1. Within segment S3 (or more likely, only segment #6 is written directly into the appropriate physical segment of flash memory device 16 without the use of a cache pad 24). However, in accordance with this aspect of the invention For example, as shown in FIG. 5b, the control state 30 writes the sector #6 to the sector position of the new page sBp2. The S3 page is filled with the area previously written and retained in the page SBP1 of the scratch pad block 24. The contents of segment #4, #5. The update block heart has not been written yet. Φ , , According to this example, the control descent 30 then receives the data for the two segments #7 and #8. 7 of the poor material will of course be completed and also contains the section material, #5 and #6 兀t data page, the data for section #8 constitutes the first shell section for another page. In this scheme For one of the sections #4, #5, #6, and #7 • The full data page is thus written to the page of the update block "a" UBP1 (as part of the previous copy 4 for section #4 It The data is populated to the new data for the above sections #5, #6, #7. The controller 3 marks the contents of the pages SBP1, SBP2 of the scratch pad block as obsolete because the contents are now Stored in the update block. This tag may be, for example, manipulated by the table manager 120874.doc -25- 200814075 to 37 to write the corresponding control bar to a table or in the controller or in the flash The influence of other data structures stored in 15. The section #8 corresponding to a part of a different page is written to the page of the high speed temporary storage block. Because the pure segment is aligned - the page boundary and because it is not until the receipt of the data for at least one subsequent segment, it is written to update the block! 6 a, so no padding is required. Figure 5d shows the controller 3 receiving data for three sectors from the host system, i.e., for the areas U1(), #11, and #12. Because it is used for sections (4) and #11

之:料係駐存於與用於區段#8之資料之相同頁Θ,且因為 區段#U係在-頁之邊界内的最後區卩,故控制器30將一 完整頁資料寫入更新區塊16a之頁侧,包括用於區段 #8' #9' #10、#11之資料。填充係藉由區段#9之先前内容 之7複本來提供(如圖5d中區段資料9。所示之此類填充), 以裝滿頁UBP2。在高速暫存區塊24内,區段8之内容係標 §己為過時’且第三接收區段#12係寫入所示快取記憶體區 段24之一下一頁SBP4。 依據本發明之較佳具體實施例,.控制器3G操作以使用高 速暫存區塊24内的可用區段空間以儲存使用者資料(即在 主機上執行一應用程式所產生之資料)與一單一頁内的控 制或支杈育料二者。依據本發明,此控制或支援資料(在 兒月θ中稱為控制”資料)之範例包括用於高速暫存區塊 24自身之索引育訊。例,此類高速暫存區塊索引資訊包 括用於高速暫存區塊24之内容之邏輯區塊位址、目前儲存 於高速暫存區塊24内的有效區段數目m 120874.doc -26- 200814075 體2内的第一有效區段之區段位移索引、至可接收新資料 之高速暫存區塊24之下一頁之一指標、及類似等。控制資 料之其他範例包括用於快閃記憶體裝置15内邏輯及實體區 塊位址表及其他資料結構之資訊、索引、指標及位移、表 及關於用於快閃記憶體陣列16内之區塊之平均讀寫操作之 其他資訊(例如用於該等區塊之各區塊之抹除計數、最少 • 及最多頻繁抹除區塊表等)、及用於快閃記憶體装置〗5之 馨操作及管理之其他控制及支援資訊。且如下面詳細所述, 此控制貧料還包括一更新區塊指標值,其指向要接收欲寫 主枝資料之下一頁的在更新區塊16a内的實體頁;依據 本叙明之較佳具體實施例,此更新區塊指標係用於管理區 段貧料之最近版本,例如如2〇〇5年7月27曰申請且標題為 具有多流更新循跡之非揮發性記憶體及方法”且以引用方 式併入本文之共同指派待審申請案序號〗1/192,22〇所述。 一般而言,而且還明確參考高速暫存區塊索引資訊,此控 • 制育料可包括目前活動並欲儲存於高速暫存區塊24内之其 他區段之使用者資料内容同步之資訊、及不同步或另外與 此類使用者資料無關並使得不需要與使用者資料同時或連 - 貫寫入之資訊。 • 苓考圖5e ’在將區段12之内容寫入頁SBP4(圖5d)之後, 控制器30還從主機系統接收用於區段14之新資料。依據本 發明之此具體實施例,控制器3〇決定即便在寫入最新接收 區段# 12内容之後,在一頁SBp4内仍可使用一額外區段(區 段位置S4) °控制器30將用於區段12之先前接收内容寫入 120874.doc -27- 200814075 至高速暫存區塊24内的一新頁SBP5在頁SBP5之區段位置 S1内,並將用於區段14之最新接收資料寫入區段位置幻; 區段位置S2係,,填充"區段13❾之先前儲存内容,而頁SBp5 之區段位置S4接收控制資料CTRL以填滿頁沾^。在此範 例中,控制資料CTRL包括一更新區塊指標,其具有一指 向用於更新區塊l6a之頁UBP3之位置值之值,此頁 • 更新區塊16&内的下一抹除頁。儘管將頁SBP5顯示為填滿 瞻 (即所有四個區段位置s 1至S4均包含儲存資料),將控制資 料c τ R L包括於高速暫存區塊2 4之一頁内不必需要填滿一 頁例如再參考圖5a,需要時可能已將控制資訊CTRL 寫入頁SBP1之區段位置S3。 依據本發明之此具體實施例,如上述,將控制資訊 CTRL包括於高速暫存區塊24之—頁内係以—相對於傳統 ECC技術提供改良錯誤更正及更正能力之方式來執行。現 在將相對於圖6a詳細說明如依據本發明之較佳具體實施例 _ 配置在圖5e所示之狀態下的高速暫存區塊24之頁§Βρ5之内 ,容。 圖6aD兒明在一位置41儲存用於區段#12之使用者資料與 . 卜位置43㈣存用於區㈣2資料之標帛的區段位置 ' S1。同樣地’區段位置S2儲存用於區段#13之使用者資料 (即區段資料13。)與其標頭,而區段位置S3儲存用於區段 #14之使用者資料與其標頭。頁贈5之區段位置s4儲存控 制資料CTRL及其標頭資訊。然而,沒有任何區段位置W 至S4健存用於其個別使用者資料之錯誤更正編碼⑽〇位 120874.doc -28- 200814075 凡。相反,高速暫存區塊24之頁SBP5之部分42儲存該等 ECC位,其係已針對該頁内的所有區段而計算或推導。 依據本發明之較佳具體實施例,儲存於頁SBP5之部分 42内的忒等ECC位元不為針對個別區段使用者(及控制資料 部分)而計算之該等Ecc位元之一序連。相反,在部分“内 所儲存之該等ECC位元係在將所有區段位置s i至S4之使用 者(及控制)資料部分視為一單元而編碼。換言之,參考圖 6a之朝^例,在部分42内的該等Ecc位元係從包含用於區段 12、13〇、14之使用者資料與控制資料CTRL之一較大資料 區塊來編碼。實際上,部分42之該些ECC位元不必連續地 儲存於頁SBP5内,而可在需要時遍及整頁分佈。依據本發 明,然而儲存於頁内的該等ECC位元係根據視為一單元之 較大多區段資料區塊來編碼。 了口本發明,頃發現,在一單一資料區塊内編碼多區段 資料比在各區段係個別編碼之情況下相同位準錯誤更正位 準所需的需要更少Ecc位元來在多區段頁上更正一給定數 目的Ik機分佈錯誤。本發明之此較佳具體實施例之此特性 可藉助範例方式來說明。出於清楚起見,該些範例將引用 一冪-入(例如5 12位元組)大小的資料區段;實際上,如上 ^區丨又將具有一般一二冪次(例如5 12位元組)之一大小的 貝料部分,具有額外位元組(例如6位元組)用於一標頭。 依據熟知BCH碼,對於任一整數,存在一具 有一區塊長度之二進制BCH碼,其包括]^位數的有效 承載資料,並因而包括n_k同位檢查(ECC)位數,其中 120874.doc -29- 200814075 加。此類碼之最小編碼"距離u dme2t+i;此碼可在n 位數碼子内偵測多達dmin個錯誤,並可更正多達t個錯誤。 對於—512位元組(4096位元)區段大小的實際資料,— 馬之方便範例可配置有m= 1 3且t=4。此碼至少需要 13= ΡΡη/Λ - 位7L。使用此類BCHU|,在區段方式 ECC編碼之傳統應用中,時常提供額外ECC位元;例如1 共同實施方案將ECC位元數目定義為n_k=m(t+i)+i,或對 一;/、有m 1 3且t 4之有政承載資料之4〇96位元的%個位 -匕』將曰更正在對應於4096位元區段及其ECC位元(例 如該等66個位元)之碼字内多達卜4的出錯位元。 ’’、、而依據本發明之較佳具體實施例,多個區段的資料係 編碼成-單一資料區塊,不管各區段内所包含之資料類 1且不响5亥等區段—般係由該控制器來個別存取。欲更 正的隨機錯誤之數目t可隨著資料區塊大小之此增加而保 持怪定,。因為施加至快閃記憶難置15之程式化操作係一 頁方式刼作’如上述。每頁(即每個程式化操作)之隨機可 更正錯々之數目決定程式化操作之成功完成^另外,超過 可更正限制數目t的非隨機(即叢集)錯誤既不能逐個區段地 更正’亦不能逐頁地更正(即對於㈣,在任一情況下在一 區段内的五個錯誤將會不可更正)。如此,本發明保持在 頁上的隨機分佈位元錯誤數目恆定。 ' 對於一四區段頁資料之範例,其中各區段具有一 4096位 元(512位元組)之大小,欲編碼區塊長度係n=i6384位元。 此點要求參數m至少為l5(n=2m.1)e如上述,即便對於此範 120874.doc •30· 200814075 可更正錯誤之數目t可保持 例中四倍的資料區塊大小 由n-k=mt定義的最小ECC位元數 如上述提供額外ECC位元,例如 下,對於t=4及m=15,將提供% t=4,由此,在此情況下, 目係60位元。較佳的係, n-k=m(t+l)+l ;在此情況The material system resides in the same page as the data for the segment #8, and since the segment #U is in the last region within the boundary of the -page, the controller 30 writes a complete page of data. The page side of the update block 16a includes information for the sections #8' #9' #10, #11. The padding is provided by a copy of the previous content of section #9 (such as the section material 9 shown in Figure 5d) to fill the page UBP2. In the scratch pad block 24, the contents of the segment 8 are already obsolete' and the third receiving segment #12 is written to the next page SBP4 of the cache memory segment 24 shown. In accordance with a preferred embodiment of the present invention, the controller 3G operates to use the available segment space within the scratch pad block 24 to store user data (i.e., execute an application generated data on the host) and Control within a single page or support for both. In accordance with the present invention, an example of such control or support material (referred to as control in the month θ) includes indexing for the cache block 24 itself. For example, such cached block index information includes The logical block address for the contents of the high speed temporary storage block 24, and the number of valid sectors currently stored in the high speed temporary storage block 24. m 120874.doc -26- 200814075 The first effective segment in the body 2 The segment shift index, an indicator to the next page of the high speed temporary storage block 24 that can receive new data, and the like. Other examples of the control data include the logical and physical block bits used in the flash memory device 15. Information, indexes, indicators and displacements of address tables and other data structures, tables and other information about the average read and write operations for blocks used in flash memory array 16 (eg, for each block of such blocks) Wipe the count, at least • and at most frequently erase the block table, etc.), and other control and support information for the operation and management of the flash memory device, and as described in detail below, this control is poor. Also includes an update block indicator a value that points to a physical page within the update block 16a that is to receive a page of the primary data to be written; in accordance with a preferred embodiment of the present description, the updated block indicator is used to manage the sector lean The most recent version, for example, the non-volatile memory and method, which is filed on July 27, 2005 and entitled "Multi-stream update tracking" and is incorporated herein by reference. /192,22〇. In general, and with explicit reference to the cached block index information, the control material may include information about the synchronization of user data content of other segments currently active and intended to be stored in the scratch pad block 24, And is not synchronized or otherwise independent of such user data and does not require simultaneous or consecutively written information with the user profile. • Referring to Figure 5e', after writing the contents of section 12 to page SBP4 (Fig. 5d), controller 30 also receives new material for section 14 from the host system. In accordance with this embodiment of the invention, the controller 3 determines that an additional segment (segment position S4) can be used within a page SBp4 even after writing the latest received segment #12 content. The previous received content for segment 12 is written 120874.doc -27- 200814075 to a new page SBP5 in the scratch pad block 24 within the segment location S1 of page SBP5 and will be used for the latest section 14 The received data is written to the sector position illusion; the sector position S2 is filled with the previously stored contents of the section "section 13", and the sector position S4 of page SBp5 receives the control data CTRL to fill the page. In this example, the control data CTRL includes an update block indicator having a value indicative of the position value of the page UBP3 for updating the block l6a, this page • updating the next erase page within the block 16&. Although the page SBP5 is displayed as filled (ie, all four segment positions s 1 to S4 contain stored data), it is not necessary to fill the control data c τ RL in one page of the scratch pad block 24 One page, for example, referring again to Figure 5a, control information CTRL may have been written to the segment position S3 of page SBP1 as needed. In accordance with this embodiment of the present invention, as described above, the inclusion of control information CTRL in the intra-memory block 24 is performed in a manner that provides improved error correction and correction capabilities relative to conventional ECC techniques. A preferred embodiment of the present invention will now be described with respect to FIG. 6a as being disposed within the page § Βρ5 of the cache block 24 in the state shown in FIG. 5e. Figure 6aD shows the user data for section #12 stored in a location 41 and the location of the sector 43 '4' for the location of the zone (4) 2 data. Similarly, the sector position S2 stores the user profile for section #13 (i.e., section material 13) and its header, while the section location S3 stores the user profile for section #14 and its header. The section s4 of the page gift 5 stores the control data CTRL and its header information. However, there is no segment location W to S4 for error correction coding for its individual user data (10) 120 120874.doc -28- 200814075 凡. Instead, portion 42 of page SBP5 of scratch pad block 24 stores the ECC bits, which have been calculated or derived for all segments within the page. In accordance with a preferred embodiment of the present invention, the ECC bits stored in portion 42 of page SBP5 are not one of the Ecc bits calculated for the individual segment user (and control data portion). . Instead, the ECC bits stored in the portion "are encoded as part of the user (and control) data portion of all segment positions si to S4. In other words, referring to the example of FIG. 6a, The Ecc bits in section 42 are encoded from a larger data block containing one of the user data and control data CTRL for segments 12, 13A, 14. In fact, the ECCs of portion 42 The bits need not be stored continuously in page SBP5, but may be distributed throughout the page as needed. In accordance with the present invention, however, the ECC bits stored in the page are based on a larger multi-segment data block that is considered a unit. To encode, it has been found that encoding multiple sectors of data in a single data block requires less Ecc bits than is required to correct the level of the same level error in the case of individual segments. To correct a given number of Ik machine distribution errors on a multi-session page. This feature of the preferred embodiment of the present invention can be illustrated by way of example. For the sake of clarity, the examples will reference a power. - Into (for example 5 12 bytes) size Section; in fact, the above-mentioned area will have a bedding portion of one size of one or two powers (for example, 5 12 bytes), with an extra byte (for example, 6 bytes) for a standard According to the well-known BCH code, for any integer, there is a binary BCH code having a block length, which includes the effective carrying data of the ^^ bits, and thus includes the n_k parity check (ECC) bits, of which 120874. Doc -29- 200814075 Plus. The minimum encoding of such codes "distance u dme2t+i; this code can detect up to dmin errors in n digits and correct up to t errors. The actual data of the byte size of the byte (4096 bits), the convenient example of the horse can be configured with m = 1 3 and t = 4. This code requires at least 13 = ΡΡη / Λ - bit 7L. Use this type of BCHU| In conventional applications of sector-wise ECC coding, additional ECC bits are often provided; for example, a common implementation defines the number of ECC bits as n_k=m(t+i)+i, or one-to-one; 1 3 and t 4 of the 4th 96-bit % of the politically-bearing data - 匕 曰 对应 对应 对应 对应 4096 4096 4096 4096 4096 4096 及其 及其In the codeword of the element (e.g., the 66 bits), as many as 4 error bits. '', and in accordance with a preferred embodiment of the present invention, the data of the plurality of segments is encoded into a single data. Blocks, regardless of the data class 1 contained in each section and not ringing 5 hai, etc., are accessed by the controller individually. The number of random errors to be corrected t may vary with the size of the data block. This increase is still awkward, because the stylized operation applied to the flash memory is a one-page method as described above. The number of random correctable errors per page (ie, each stylized operation) is determined. Successful completion of the stylized operation ^ In addition, non-random (ie, cluster) errors that exceed the limit number t can be corrected and cannot be corrected segment by section 'and cannot be corrected page by page (ie for (4), in either case in a segment The five errors within will not be corrected). As such, the present invention keeps the number of randomly distributed bit errors on the page constant. For an example of a four-segment page data, each segment has a size of 4096 bits (512 bytes), and the length of the block to be coded is n=i6384 bits. This point requires the parameter m to be at least l5 (n=2m.1)e as described above, even if the number of errors can be corrected for this model 120874.doc • 30· 200814075 t can keep the data block size four times in the example by nk= The minimum number of ECC bits defined by mt provides additional ECC bits as described above, for example, for t=4 and m=15, % t=4 will be provided, whereby in this case, the target is 60 bits. Preferably, n-k=m(t+l)+l; in this case

個ECC位元。戎些情況之任一情況比傳統方案要求實質上 更少的記憶體單元用於儲存ECC位元,在傳統方案中需要 四組66個ECC位元(每區段一個),總計在頁上的 位元,而不減小隨機錯誤更正。 或者,可更正錯誤之數目t可藉由增加資料區塊大小_ ECC位元數目n-k而依據本發明增加。換言之,對於與傳統 逐個區段配置(例如對於一四區段頁使用264=4χ66 ecc個 位凡)每頁相目數目的ECC位元,但藉由將多區段頁編碼成 一單一資料區塊,可實質增加頁上的可更正位元數gt(例 如在此範例中至t= 19)。 如上述,裏德所羅門碼係還一般用於錯誤更正之碼 之一子集。依據裏德所羅門編碼,該等ECC位元係配置成 夕位元符號,各符號具有一 m位元的大小,其中區塊長 度為個符號。ECC或同位檢查符號數目n_k係定義^ k — 2t 1係可更正錯誤數目,而一最小編碼距離 min 1對於在一貫體頁中四個5 12位元組區段之範 例口而m 9之情況,用於t==4之一有用裏德所羅門碼將會 需要每區段八個ECC符號,各ECC符號m=9個位元;依據 傳、”充區^又方式錯誤更正方案,此點導致每區段總數Μ個 ECC位元’故對於一四區段頁總計288個位元。 120874.doc 31 200814075 而依據本發明’增加碼字之大小以將所有區段包括於 頁内可大大地減小ECC符號(及位元)之數目以獲得相同的 隨機錯誤=正效能。例如,從—頁内的四個512位元組區 _ P MM位兀組的碼區塊)需要一 m=ll晨德所羅Η碼字1持可更正錯誤之數目t在㈣但定 因而在整頁上產生人個咖符號,各叫個位元(總計Μ 個ECC位元)’其係比以傳統方式逐個區段施加錯誤更正所ECC bits. In either case, the memory unit is substantially less than the traditional scheme requires storage of ECC bits. In the conventional scheme, four sets of 66 ECC bits (one per sector) are required, which are totaled on the page. Bits without correcting random error corrections. Alternatively, the number of correctable errors t can be increased in accordance with the present invention by increasing the data block size _ ECC bit number n-k. In other words, for a number of ECC bits per page compared to a traditional segment-by-segment configuration (eg, 264=4χ66 ecc bits for a four-segment page), but by encoding the multi-session page into a single data block The number of correctable bits on the page can be substantially increased (for example, in this example to t=19). As mentioned above, the Reed Solomon code system is also commonly used for a subset of the code for error correction. According to Reed Solomon coding, the ECC bits are configured as octave symbols, and each symbol has a size of one m-bit, wherein the block length is a symbol. The number of ECC or parity check symbols n_k is defined as ^ k - 2t 1 is the number of errors that can be corrected, and the minimum coded distance min 1 is for the example port of four 5 12-bit segments in the consistent body page and m 9 For one of t==4 useful Reed Solomon code will need eight ECC symbols per segment, each ECC symbol m = 9 bits; according to the transmission, "filling area ^ and the way error correction scheme, this point Resulting in a total number of ECC bits per segment 'so a total of 288 bits for a four segment page. 120874.doc 31 200814075 And according to the invention 'increasing the size of the code word to include all segments in the page can be greatly Decrease the number of ECC symbols (and bits) to obtain the same random error = positive performance. For example, from the four 512-bit field _ P MM bits in the page - the code block of the group needs one m =ll Chende Solomon codeword 1 can correct the number of errors t (4) but then generate a person's coffee symbol on the whole page, each called a bit (a total of two ECC bits) Traditional way to apply error corrections one by one

需之28 8個ECC位元要小得多。 同樣’可藉由使用比逐個區段比較所需之數目相同數目 ^甚至更少#頁上ECC位元,_本發明來提供一更高錯 誤更正位準(例如t>4)e例如,對於—使用挪ecc位元所 實施之一裏德所羅門碼字’可更正錯誤數目t可能高 達t 1 3。預期習知此項技術者參考本說明書之後可針對本 發明之-特定實施方案’使用所需數目的咖位元或符號 來容易地最佳化錯誤更正位準。 再麥考圖5e,如在此範例中上面相對於圖所述,在高 速暫存區塊24内的頁SBP5係寫有使用者及控制資料、其個 別軚頭、及該等對應Ecc位元。主機系統一旦將用於區段 #15之使用者資料提供至控制器30,一完整使用者資料頁 便變得可用(即用於區段#12、#13、#14及#15之使用者資 料)。控制為30接著將一整頁寫入更新區塊丨6a,明確而言 寫入如圖5f所示之更新區塊頁UBP3,如儲存於高速暫存區 塊24内控制資料CTRL内之更新區塊指標之目前值所指 示0 120874.doc -32- 200814075 依據本發明之此具體實施例,纟出於編碼目的而作為一 單-資料區塊的所有區段上執行在寫入更新區塊…過程 中所施加之錯誤更正編碼,而非如採㈣統方式基於逐個 區段。圖6b說明依據本發明之此具體實施例在更新區塊 16a中的頁UBP3之配置。如同在圖以之高效暫存頁謝5 中,各區段位置81至84包括一使用者資料部分51與一標頭 部分53。然而更新區塊頁UBp3還包括一單一ecc位元部分 52,其將在所有區段上編碼的該等ECC位元儲存於頁 内,將用於該等區段之使用者資料視為用於編碼目的的一 單一資料區&。在此範 <列中編碼用於各區段之標頭部 分53之内容,但需要時還可將此額外資訊作為,,資料位元" 包括於該錯誤更正編碼中。如上面相對於施加至高速暫存 區塊24之此方案所述,本發明之此較佳具體實施例針對記 憶體陣列16内每頁相同數目的記憶體單元,提供一更高程 度的錯誤更正能力,或相反可減小針對一給定錯誤更正位 準的用於ECC位元所需之記憶體單元數目。 同時在高速暫存區塊24與更新區塊16a以及記憶體陣列 16之其他區塊内頁的此錯誤更正編碼還改變從記憶體陣列 16讀取資料所採用之方式。在逐個區段施mEcc技術之傳 統快閃記憶體中’讀取一資料區段涉及感應對應於該區段 (可能連同共用相同字線之頁之其他部分内的其他區段)之 記憶體單元。針對此區段所感應之資料同時包括實際使用 者資料(或可能的控制資料)與實際資料相關聯之該等ECC 位元,從該等ECC位元可僅使用該區段資料,針對該區段 120874.doc -33- 200814075 資料而實施ECC解碼(及更正此解碼中所偵測之錯誤)。 相比之下,依據本發明之較佳具體實施例,ECC解碼係 在一整頁上執行,即便僅讀取一個別資料區段。此點係因 為用於該頁之該等ECC位元係在包括該頁内所有區段之單 式資料區塊上編碼;相反參考圖6a,在部分42内的該等 ECC位元無法解析成用於頁SBP5内的該等區段之各區段的 ECC位元。因此,藉由範例方式並參考圖6a,若用於區段 _ 14之資料係頃取自南速暫存區塊14内的頁S B P 5,則使用整 頁作為碼字,不僅讀取並解碼來自區段位置s〗至S4之所有 資料’還讀取並解碼來自部分42之該等ECC位元。在此 ECC解碼整頁之後,可擷取用於區段14之使用者資料,然 後轉遞至主機系統。 如圖5f所示,在將該些内容寫入至更新區塊i6a之後, 將高速暫存區塊頁SBP5之區段位置S1至S3標記為過時。 依據本發明之此具體實施例,控制資料Ctrl在區段位置 • S3内保持有效,並確實維持與在寫入至更新區塊頁UBP3 月il相同的更新指標值(即自身指向更新區塊頁UBp3)。如上 面以引用方式併入之待審申請案序號11/192,22〇所述,此 _ 更新指標值因而向控制器30指示儲存於高速暫存區塊24内 , 的用於區段12、13〇、之使用者資料已由於寫入至更新 區塊UBP3(其還包括用於區段15之使用者資料)而替換。具 有此更新區塊指標值與其他控制及支援資訊儲存於其内之 控制資料CTRL在頁SBP5之區段位置S4内保持有效,只要 不再需要進一步寫入高速暫存區塊24,例如只要繼續的主 120874.doc -34- 200814075 枝糸統寫入係頁對齊。 見在茶考圖7 ’組合圖5a至5e、6a及6b所示及上述範 例’現在將以一爭_ 版化方式說明依據本發明之此具體實 施例猎由管理高速暫存區塊24將資料寫入至快閃記憶體裝 置15過程中控制器30之操作。 次在程序6G中,控制器3()從主機系統接收—或多個區段的 資料連同用於该貧料之對應邏輯位址以及將該資料寫入 • ^决閃記憶體裝置15之適當命令或指令。在決策61,控制 叩3+0决疋接收自主機系統之該等資料區段是否包括相對於 凡王頁的肓料(在此範例中四個區段資料卜若是(決策Μ 係是),則控制器30之Ecc引擎4〇執行程序62以在用於該頁 之所有區ί又貪料上編碼一錯誤更正編碼(ecc)碼字。因為 -整頁資料係接收自主機系統,故該資料—般對應於使用 者貝料(即主機系統正在執行之一應用程式所產生之資 料)如上述,編碼程序62基於一對應於該整頁内所有區 • 段之資料的單式資料區塊來產生ECC位元或同位位元。 在本說明書中,控制器3〇之ECC引擎40依據本發明之此 較佳具體實施例來執行編碼(及解碼)操作。當然預期在控 制裔30内的其他電路或在依據特定架構之此類控制器内的 、 其他功能可執行該些ECC編碼及解碼操作。 圖8a說明依據本發明之此較佳具體實施例之編碼程序α 之一範例。在程序80初始化一區段索引k。在程序82, BCC引擎40接收專用於區段位置讣仏係索弓丨)之資料。決策 83決定是否多個區段資料仍包括於目前頁内;若是(決策 120874.doc -35- 200814075 83係是)’則在程序85遞增索引让且在程序“之另一例項中 由ECC引擎40接收用於下一區段位置讥之資料。一旦接收 到欲寫入頁内的所有區段位置之資料(決策M係否),在程 序84,ECC引擎40便形成頁内所有區段之使用者資料之一 單式資料區塊。而且在程序86, ECC引擎4G依據在ecc引 擎4〇内所實施之所需碼,在此單式資料區塊上編碼聊位 兀°如上述,預期控制器3〇所使用之碼較佳的係一系統 碼,使得該等資料位元保持最初形式,該等ecc或同位位 元附著至其。結合本發明之此較佳具體實施例使用之傳統 系統碼之範例包括所需碼率及碼長度之裏德所羅門碼與此 項技術中所習知之其他BCH碼。 再麥考圖7 ’程序64係接著由控制器3G來執行以將包括 編碼程序62内所推導之該等咖位元之一頁資料寫入至快 閃記憶體裝置15之一實體頁。程序64包括將來自程序62之 碼字連同標頭資訊及類似等配置成(例如)一如圖补及上述 所:之配置。藉由其低位準定序器功能^、快閃控制層42 及衣置"面44,控制器3〇接著產生適當控制、命令、位置 及資料信號並將該些信號施加至快閃記憶體裝置15,用於 Η式化纟更新區塊或快閃記憶體陣列1 5之其他實 體位置内。控制接著返回至程序6〇,用於接收並處理欲寫 入的額外使用者資料。 再'考决朿61,若不接收一完整頁資料(決策61係否), 則控制器3〇接著執行決策65以決定作為接收區段或多個區 段的在相同頁邊界内的區段是否已出現在高速暫存區塊内 J20874.doc -36- 200814075 65。上面相對於圖5b已說明此情形之一範例,其中接收用 於區段#6之資料且其中用於區段#4及#5之資料係已存在於 高速暫存區塊頁SBP1内。若此類區段已經存在(決策係 是),則在程序66擷取對應於該等區段之資料。 圖8b說明依據本發明之較佳具體實施例在程序%中從高 速暫存區塊24擷取資料中控制器3〇之操作。依據本發明之 此較佳具體實施例,此擷取程序還對應於在從快閃記憶體 裝置15之任一區塊中執行讀取區段資料中的控制器之操 作,只要說明一資料頁之解碼肖來自料碼頁之區段資料 之解析。如圖8b所示,程序88讀取用於正在讀取頁之所有The 28 ECC bits needed are much smaller. Similarly, the present invention can provide a higher error correction level (e.g., t > 4) e by using the same number of numbers required to compare the number of segments per section ^ or less. - Reed Solomon codeword implemented using the Norecc bit' can correct the number of errors t can be as high as t 1 3. It is contemplated that the skilled artisan can readily optimize the error correction level using the required number of gems or symbols for the particular embodiment of the present invention with reference to this specification. In the example of the above, relative to the figure, the page SBP5 in the cache pad 24 is written with user and control data, its individual headers, and the corresponding Ecc bits. . Once the host system provides the user profile for zone #15 to controller 30, a complete user profile page becomes available (i.e., for users of zones #12, #13, #14, and #15) data). Control 30 then writes a full page to the update block 丨6a, specifically to the update block page UBP3 as shown in FIG. 5f, such as the update area stored in the control data CTRL in the scratch pad block 24. The current value of the block indicator is indicated by 0 120874.doc -32- 200814075 In accordance with this particular embodiment of the invention, the write update block is executed on all segments of the single-data block for encoding purposes... The errors applied in the process correct the coding, rather than the four-part system based on the segments. Figure 6b illustrates the configuration of page UBP3 in update block 16a in accordance with this embodiment of the present invention. As in the efficient temporary page 5 of the figure, each of the segment positions 81 to 84 includes a user data portion 51 and a header portion 53. However, the update block page UBp3 also includes a single ecc bit portion 52 that stores the ECC bits encoded on all segments in the page, and the user profile for the segments is deemed to be used for A single data area & for encoding purposes. The content of the header portion 53 for each segment is encoded in this <column, but this additional information can also be used as if the data bit " is included in the error correction encoding. As described above with respect to this scheme applied to the scratch pad block 24, this preferred embodiment of the present invention provides a higher degree of error correction capability for the same number of memory cells per page in the memory array 16. Or, conversely, the number of memory cells required for ECC bits for a given error correction level can be reduced. This error correction encoding at the same time in the cache block 24 and update block 16a and other blocks within the memory array 16 also changes the manner in which the data is read from the memory array 16. The 'reading a data segment' in a conventional flash memory that implements the mEcc technique on a sector-by-segment basis involves sensing a memory cell corresponding to the segment (possibly along with other segments in other portions of the page sharing the same word line). . The data sensed for this zone also includes the actual user data (or possible control data) associated with the actual data, from which only the segment data can be used for the zone. Segment 120874.doc -33- 200814075 Data and implement ECC decoding (and correct errors detected in this decoding). In contrast, in accordance with a preferred embodiment of the present invention, ECC decoding is performed on a single page, even if only one other data segment is read. This is because the ECC bits for the page are encoded on a single data block that includes all of the segments in the page; instead referring to Figure 6a, the ECC bits in portion 42 cannot be resolved into ECC bit for each segment of the segments within page SBP5. Therefore, by way of example and with reference to FIG. 6a, if the data for the sector _ 14 is taken from the page SBP 5 in the south speed temporary storage block 14, the entire page is used as the code word, and not only the data is read and decoded. All of the material 'from segment locations s' through S4' also reads and decodes the ECC bits from portion 42. After the ECC decodes the entire page, the user data for the segment 14 can be retrieved and forwarded to the host system. As shown in FIG. 5f, after the contents are written to the update block i6a, the segment positions S1 to S3 of the scratch pad block page SBP5 are marked as obsolete. According to this embodiment of the invention, the control data Ctrl remains valid in the segment location • S3 and does maintain the same updated indicator value as the one written to the update block page UBP3 (ie, the self-pointing update block page) UBp3). The _ update indicator value thus indicates to the controller 30 that it is stored in the scratch pad block 24 for the segment 12, as described in the co-pending application Serial No. 11/192,22, incorporated herein by reference. The user profile has been replaced by writing to the update block UBP3 (which also includes user data for section 15). The control data CTRL having the updated block index value and other control and support information stored therein remains valid in the segment position S4 of page SBP5 as long as no further writes to the scratch pad block 24 are required, for example, as long as The main 120874.doc -34- 200814075 branches are written to page alignment. See the tea test chart 7 'combined Figures 5a to 5e, 6a and 6b and the above examples' will now be described in a contiguous manner in accordance with this particular embodiment of the present invention by the management of the scratch pad block 24 The data is written to the operation of the controller 30 during the flash memory device 15. In program 6G, controller 3() receives from the host system - or a plurality of segments of data along with a corresponding logical address for the poor material and writes the data to the appropriate flash memory device 15 Command or instruction. In decision 61, the control 叩3+0 determines whether the data segments received from the host system include data relative to the Wangwang page (in this example, the four segments are if the decision is yes). The Ecc engine 4 of the controller 30 then executes the program 62 to encode an error correction coding (ecc) codeword in all areas for the page. Since the full page data is received from the host system, The data generally corresponds to the user's material (ie, the host system is executing data generated by one of the applications). As described above, the encoding program 62 is based on a single data block corresponding to the data of all the sections and segments in the entire page. To generate an ECC bit or a parity bit. In this specification, the ECC engine 40 of the controller 3 performs the encoding (and decoding) operation in accordance with this preferred embodiment of the present invention. Other circuits or other functions within such controllers according to a particular architecture may perform such ECC encoding and decoding operations. Figure 8a illustrates an example of an encoding procedure a in accordance with this preferred embodiment of the present invention. 80 early Of a section index k. In the program 82, BCC engine 40 receives the location specific information to a section of the bow Shu lanyard obituaries Fo) of. Decision 83 determines if multiple segment data is still included in the current page; if it is (decision 120874.doc -35 - 200814075 83 is) then increments the index in program 85 and in the other instance of the program by the ECC engine 40. Receive data for the next segment location. Once the data for all segment locations within the page are received (decision M is no), at program 84, the ECC engine 40 forms all segments within the page. One of the user data blocks is a single data block. And in the program 86, the ECC engine 4G encodes the chat position on the single data block according to the required code implemented in the ecc engine 4〇. Preferably, the code used by the controller 3 is a system code such that the data bits remain in their original form, to which the ecc or co-located bits are attached. In combination with the tradition of the preferred embodiment of the present invention Examples of system codes include Reed Solomon codes of the desired code rate and code length and other BCH codes as are known in the art. Re-Machine 7 'Program 64 is then executed by controller 3G to include the encoding process The vehicular elements derived in 62 A page of data is written to a physical page of flash memory device 15. Program 64 includes configuring the codeword from program 62 along with header information and the like to, for example, a configuration as described above. With its low level sequencer function ^, flash control layer 42 and clothing & face 44, the controller 3 then generates appropriate control, command, position and data signals and applies the signals to the flash memory. The device 15 is used to program the UI update block or other physical location of the flash memory array 15. The control then returns to the program 6 for receiving and processing the additional user data to be written. The test 61, if a complete page of data is not received (decision 61 is no), the controller 3 then performs a decision 65 to determine whether the segment within the same page boundary as the receiving segment or segments is Appears in the high-speed temporary storage block J20874.doc -36- 200814075 65. An example of this situation has been described above with respect to Figure 5b, where the data for section #6 is received and used for section #4 and # The data of 5 is already present in the high speed temporary storage block page SBP1. If such a section already exists (decision is), then data corresponding to the sections is retrieved in program 66. Figure 8b illustrates a slave scratchpad block in program % in accordance with a preferred embodiment of the present invention. The operation of the controller 3 is captured in the data. According to the preferred embodiment of the present invention, the fetching program further corresponds to performing the reading of the segment data in any block from the flash memory device 15. The operation of the controller in the process, as long as the decoding of a data page is explained, the parsing of the segment data from the material code page is as shown in Fig. 8b, and the program 88 reads all the information for reading the page.

區段位置(在此範例中區段^至以)之資料並還讀取其ECC 碼位元(例如來自ECC部分42、52)。在程序9〇中,控制器 30之ECC引擎4G將此碼字(資料加上同位位元)解碼成一單 式資料區塊,此類解碼採用傳統方式執行用於使用中的 碼。在此解碼程序9〇中,如此項技術中所習知,已從快閃 記憶體陣列16中讀取之出錯位元係更正(至少多達碼之錯 。、更正此力)耘序9〇之結果係(例如)包含於讀取自快閃呓 憶體陣列16之頁内的使㈣資料之-單式資料區塊。在程 序中才工制益30組合如此項技術中傳統讀取之結合使用 的任一標頭資料選擇對應於所需區段位置Sk之資料,並將 段資料輪出至控制器3()内的適當功能。若額外區 段有待讀取(決策93係是),則遞增索引k至下一區段位置, 然後在&序92之—下—例項中選擇該區段資料,並再次重 複直到擷取所需區段資料。 120874.doc -37· 200814075 再筝考圖7,若與在程序6〇所接收之區段相同頁的區段 係未冒存在於高速暫存區塊24内(決策65係否)或一旦擷取 已存在於南速暫存區塊24内之此類區段(程序66),則控制 器3〇決定在程序6〇接收的區段是否係在一頁邊界内的最後 • 【段。按照上述範例’其中各頁在區段位置S1至S4包含四 品·^又决策67决疋所接收區段是否對應於區段位置S4。 . #是(決策67係是)’則可將-頁寫入至快閃記憶體陣列16 φ ㈣一更新區塊’如相對於上述圖5d以範例方式所示(其 中區4又10及11係接收自主機系統並寫入至更新區塊1㈣。 在此h况下,控制器3〇藉由從快閃記憶體裝置15讀取該等 區段(例如圖5d之區段9。),將欲寫人胃纟高速暫存區塊 ^内^存在過的在相同頁内的任—區段之先㈣存資料 L填充”在一起·’考慮到多區段Ecc編碼較佳的係同時針對 咼速緩衝及更新區塊執行,此類”填充,,區段之讀取及解碼 係採用一如上面相對於圖肋所述之類似方式來執行。一旦 馨 6擷取用於頁内所有區段之資料,Ecc引擎4()便執行程序 70以採用上面相對於圖8a所述之方式在欲寫人頁之所有區 段上編碼-ECC碼字。在程式64中,採用上述方式,接著 . m料頁寫人至快閃記憶體陣列16内的-更新區塊之適 。 當頁。如前面,控制返回至程序60。 另一方面,若接收自主㈣統之區段不對應於_頁内的 -最後區段位置(決策67係否)’則依據本發明之此且體者 施例,控制器30接著開始構建—欲寫入頁至高速緩衝區: 24之操作。此點係因為小於—整頁的使用者資料係已接收 120874.doc -38- 200814075 自主機系統,同時禁止快閃記憶體陣列】6之局部頁程式 化,如此高速緩衝區塊24係用於自時館存相當於一局部頁 的使用者資料。在程序71,控制器3〇接著決定控制或支援 資料連同由決策67所接收並指示之使用者資料之局部頁是 否可用於臨時儲存於高速缓衝區塊24之-頁之―區段内。 若是(決策71係是),則在程序72,控制器3〇將一控制資料 區段添加至所接收主機資料之控制資料區段;此類使用者 貝料及&制貝料頁之—範例係在圖5e中顯示並在上面已說 明。若無任何控制f料可用或若已儲存此類控制資料且不 需要更新(決策係否)’則將一局部頁寫入至高速緩衝區 塊24,例如如圖5d所示及上面所述。 在任一情況下,在程序74,必要時將中間區段"填充,,至 欲寫入高速緩衝區塊24的頁内。在程序财,在控制器 中的ECC引擎4G在欲寫人高速緩衝區塊24之資料之所有區 段上編碼一碼字。程序76之編碼遵循上面相對於圖心所述 之範例。在此類編碼内,若如圖化所示來寫入控制資料, 則控制資料係包括於與使用者㈣相同的單式資料區塊 内。若任-區段位置不包含資料(不論是否還包括控制資 料),則用於該等記憶體單元之對應於未程式化"〇"狀態(或 可能的T)之資料較佳的係包括於編碼中的資料區塊内, 如同此類空資料曾係使用者資料。在編碼程序%之後,在 程序78配置一頁資料,例如若包括控制資料,則如圖8a所 示或若不包括控制資料,則如⑽所示,並由控制器30將 其寫入高速暫存區塊24之下一可用頁,從而完成程序冗。 120874.doc •39- 200814075 控制接著返回至程序60,用於以此方式 使用者資^ Λ純並處理額外的 因此依據本發明之較佳具體實施例,實質上改良將資料 儲存於—快閃記憶體裝置過程中的錯誤更正編碼效率。此 改良效率源自於覆蓋多個區段編碼一更大資料區塊之# ^而不管資料之性質(即使用者資料及無關控制資料: 扁馬在起)。此錯誤更正編碼之效率改良導致一更高數 目的可在一資料區段内更正的出錯位元,或者針對一給定 錯誤更正位準實現減小快閃記憶體陣列之一頁内所需:冗 餘記憶體單元之數目。本發明在其相容其中禁止局部頁2 式化之決閃§己憶體裝置時尤其有利,並因而獲得該約束之 頟外可罪度效果。此外’此改良錯誤編碼同時用於從快閃 記=體之使用者區域及還從高速暫存區塊及其他系統資源 之貝料之儲存及擷取。本發明之該等好處不僅在一快閃記 憶體裝置之實施方案本身中較明顯’而且在一快閃記憶體 卡或其他系統或同時包括一快閃記憶體裝置與一快閃記憶 體控制器之子系統中較明顯。 儘管依據本發明之較佳具體實施例已說明本發明,但當 然預期在參考本說明書及其圖式之後,習知此項技術者應 、f忒^具體貫施例之修改及替代,此類修改及替代獲 付本發明之該等優點及好處。預期此類修改及替代不脫離 本文隨後申明之本發明之範疇。 【圖式簡單說明】 圖1係說明在一傳統快閃記憶體裝置之一資料頁之傳統 120874.doc 200814075 配置之一方塊圖。 圖2係依據本發明之較佳具體實施例所構造之一記憶體 模組之一電氣圖(方塊形式)。 圖3係依據本發明之較佳具體實施例所構造之一快閃記 憶卡之一電氣圖(方塊形式)。The data for the segment location (segment ^ to in this example) also reads its ECC code bits (eg, from ECC portions 42, 52). In the procedure 9, the ECC engine 4G of the controller 30 decodes the codeword (data plus the parity bit) into a single data block, and such decoding is performed in a conventional manner for the code in use. In this decoding procedure, it is known in the art that the error bit that has been read from the flash memory array 16 is corrected (at least as much as the code is wrong. Correct this force). The result is, for example, included in the (4) data-single data block read from the page of the flash memory array 16. In the program, only one of the header data used in the combination of the traditional readings in the technology selects the data corresponding to the required segment position Sk, and the segment data is rotated out to the controller 3(). The proper function. If the extra segment is to be read (decision 93 is YES), then the index k is incremented to the next segment location, and then the segment data is selected in the & 92-down-case item and repeated again until the capture Required section information. 120874.doc -37· 200814075 Re-testing Figure 7, if the same page as the section received in the program 6〇 does not exist in the high-speed temporary storage block 24 (decision 65 is no) or once 撷Taking such a segment already present in the south speed temporary storage block 24 (procedure 66), the controller 3 determines whether the segment received in the program 6 is tied to the last segment of the page boundary. According to the above example, wherein each page contains four items at the segment positions S1 to S4, the decision 67 determines whether the received segment corresponds to the segment position S4. #是是什么意思# Received from the host system and written to update block 1 (4). In this case, the controller 3 reads the segments from the flash memory device 15 (e.g., segment 9 of Figure 5d). Will be written in the human gastric sputum high-speed temporary storage block ^ inside ^ in the same page of the first - section of the first (four) storage data L "together together" considering the multi-segment Ecc coding better system at the same time For idle buffering and update block execution, such "fill," segment reads and decodes are performed in a similar manner as described above with respect to the ribs. Once 馨6 is fetched for all areas within the page The Ecc engine 4() executes the program 70 to encode the -ECC codeword on all segments of the page to be written in the manner described above with respect to Figure 8a. In the program 64, the above manner is followed by The m-page is written to the update block in the flash memory array 16. When the page is as before, the control returns to Sequence 60. On the other hand, if the segment receiving the autonomous (4) system does not correspond to the - last segment position within the page (decision 67 is no), then according to the embodiment of the present invention, the controller 30 proceeds Start Build - To write page to Cache: 24 operation. This is because less than - the entire page of user data has received 120874.doc -38- 200814075 from the host system, while disabling the flash memory array] The partial page of 6 is stylized, such that the cache block 24 is used to store user data equivalent to a partial page from the time store. In the program 71, the controller 3 then determines the control or support data along with the decision 67. And indicating whether the partial page of the user profile is available for temporary storage in the -page of the cache block block 24. If (decision 71 is YES), then at program 72, the controller 3 will control The data section is added to the control data section of the received host material; examples of such user beakers and & bedding pages are shown in Figure 5e and described above. If no control f is available or If such control information has been stored and not Need to update (decision is no) 'write a partial page to the cache block 24, for example as shown in Figure 5d and above. In either case, in program 74, if necessary, the intermediate section " The padding is to be written into the page of the cache block 24. In the program, the ECC engine 4G in the controller encodes a codeword on all segments of the data to be written to the human cache block 24. The coding of 76 follows the example described above with respect to the figure. In such coding, if the control data is written as shown in the figure, the control data is included in the same single data block as the user (4). If the arbitrarily-segment location does not contain data (whether or not it also includes control data), then the data for the uncomputed "〇" state (or possible T) of the memory cells is preferred. It is included in the data block in the code, just as such empty data was used as user data. After the encoding program %, a page of information is configured in the program 78, for example, if the control data is included, as shown in FIG. 8a or if the control data is not included, as shown in (10), and written by the controller 30 to the high speed temporary A page is available under the block 24 to complete the program redundancy. 120874.doc • 39- 200814075 Control then returns to program 60 for use in this manner to user and process additional and thus substantially improve the storage of data in accordance with a preferred embodiment of the present invention. Errors in the memory device process correct coding efficiency. This improvement efficiency is derived from the coverage of multiple segments encoding a larger data block regardless of the nature of the data (ie user data and irrelevant control data: the flat horse is up). This error correction coding efficiency improvement results in a higher number of error bits that can be corrected within a data segment, or a reduction in the page for one of the flash memory arrays required for a given error correction level: The number of redundant memory cells. The present invention is particularly advantageous in that it is compatible with a suffix device that prohibits partial page singulation, and thus obtains an extracriminal sinus effect of the constraint. In addition, the improved error code is used for storage and retrieval from the user area of the flash memory and also from the cache memory and other system resources. These benefits of the present invention are not only apparent in the implementation of the flash memory device itself but also include a flash memory device and a flash memory controller in a flash memory card or other system. The subsystem is more obvious. Although the present invention has been described in terms of a preferred embodiment of the present invention, it is to be understood that reference Modifications and alternatives to the advantages and benefits of the present invention. Such modifications and substitutions are not intended to fall within the scope of the invention as claimed. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a block diagram showing a conventional 120874.doc 200814075 configuration of a data page in a conventional flash memory device. 2 is an electrical diagram (block form) of a memory module constructed in accordance with a preferred embodiment of the present invention. Figure 3 is an electrical diagram (block form) of one of the flash memory cards constructed in accordance with a preferred embodiment of the present invention.

圖4係說明依據本發 卡内控制器之功能架構 圖 5a至5f係說明依據本發明 明之較佳具體實施例圖3之快 之一功能圖(方塊形式)。 憶體中高速暫存及更新 圖0 之較佳具體實施例一 區塊之管理之範例之記憶 閃記憶 快閃記 體映射 圖6a及6b係說明依據本發明 資料頁配置之圖式。 之較佳具體實施例所配置之 圖:=依據本發明之較佳具體實施例影 之圖4之控制器之操作之—流程圖。Figure 4 is a diagram showing the functional architecture of the controller in accordance with the present invention. Figures 5a through 5f illustrate a functional diagram (block form) of Figure 3 in accordance with a preferred embodiment of the present invention. High-Speed Temporary Storage and Update in Memory Figure 0. Memory of an Example of Management of Blocks Flash Memory Flash Recording Figures Figures 6a and 6b illustrate the configuration of a data page in accordance with the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S): A flow chart of the operation of the controller of FIG. 4 in accordance with a preferred embodiment of the present invention.

圖8a及8b係分別說明依據本發明 入及讀取資料過程中所涉及 m貫施例在灣 【主要元件符號說明】作之流程圖。 4〇 資料 5 快閃記憶體 8 多區段頁 9〇 區段資料 11 資料部分 12 ECc位元部分 13 標頭 120874.doc 200814075 13〇 15 16 16a 17 18 19 20Figures 8a and 8b are flow diagrams respectively illustrating the application of the main components in the process of entering and reading data in accordance with the present invention. 4〇 Data 5 Flash Memory 8 Multi-Segment Page 9〇 Section Data 11 Data Section 12 ECc Bit Section 13 Header 120874.doc 200814075 13〇 15 16 16a 17 18 19 20

22 23 24 25 30 3222 23 24 25 30 32

35 3 6 37 38 39 40 42 43 區段資料 快閃記憶體裝置 快閃記憶體陣列 更新區塊 文中未說明 控制邏輯 資料暫存器 輸入/輸出控制電 行解碼器 位址暫存器 列解碼器 "高速暫存”區塊 快閃記憶卡 控制器 主機介面電路 π後端”系統 位址轉譯功能 命令定序器 表管理器 低位準定序器 抹除區塊管理器 ECC引擎 快閃控制層 位置 路 120874.doc -42- 20081407535 3 6 37 38 39 40 42 43 Section Data Flash Memory Device Flash Memory Array Update Block The text does not describe the control logic data register register input/output control line decoder address register register decoder "High-speed temporary storage" block flash memory card controller host interface circuit π back-end" system address translation function command sequencer table manager low-order quasi-sequencer erasure block manager ECC engine flash control layer Location Road 120874.doc -42- 200814075

44 裝置介面 51 使用者資料部分 52 ECC位元部分 53 標頭部分 CTRL 控制資料 DATA_ .BUS 貢料匯流排 HOST_ IF 外部介面 SI 區段位置 S2 區段位置 S3 區段位置 S4 區段位置 SBP1 頁 SBP2 頁 SBP3 頁 SBP4 頁 SBP5 頁 SBP6 頁 UBP1 區塊 UBP2 區塊 UBP3 區塊 UBP4 區塊 120874.doc -43 -44 Device Interface 51 User Data Section 52 ECC Bit Section 53 Header Section CTRL Control Data DATA_ .BUS Junction Bus HOST_ IF External Interface SI Section Position S2 Section Position S3 Section Position S4 Section Position SBP1 Page SBP2 Page SBP3 Page SBP4 Page SBP5 Page SBP6 Page UBP1 Block UBP2 Block UBP3 Block UBP4 Block 120874.doc -43 -

Claims (1)

200814075 十、申請專利範圍: 一種操作一非揮發性固態記憶體之方法,該記憶體採用 記憶體單元頁而配置’各頁對應於在—個別程式化操作 中可程式化之該等記憶體單元之一群組,該方法包含以 下步驟: 接收對應於一第一複數個區段之資料,各區段對應於 —數量的資料’使得該記憶體之—頁具有儲存用於該複 數個區段之資料之容量;200814075 X. Patent Application Scope: A method of operating a non-volatile solid state memory, the memory is configured with a memory unit page and each page corresponds to the memory unit that can be programmed in an individual stylized operation In one group, the method comprises the steps of: receiving data corresponding to a first plurality of segments, each segment corresponding to the amount of data 'so that the page of the memory has storage for the plurality of segments Capacity of the data; 一針對一單式資料區塊,編碼錯誤更正編碼(Ecc)位 凡’該單式資料區塊包含對應於該第__複數個區段之資 料; ' 程式化該記憶體之一第一 區塊; 頁以儲存該編碼的單式資料 讀取該記憶體之該程式化第一頁; 以復原包 塊之該等 使用該等ECC位元,解碼該讀取的第一頁,For a single data block, the coding error correction code (Ecc) is where the 'single data block contains data corresponding to the first __multiple segments; 'stylized one of the first regions of the memory The page reads the stylized first page of the memory by storing the encoded single-type data; and decoding the first page of the read using the ECC bits by the restored block, 括對應於該複數個區段之資料的該單式資料區 資料位元;以及 =4解碼的單式資料區塊中擷取—所需資料區段。 2· 如請求項1之方法,直中嗜印愔 八 L、體之一頁具有儲存用於 邊弟一複數個區段之資料與至少一額外區段之容量; 其中用⑨該第一複數個區段之接收資冑包含使用者資 料; ' 元 且其中該編碼步驟編碼用於該單式 違單式資料區塊包含在該記憶體 資料區塊之ECC位 之操作中有用的使 120874.doc 200814075 用者資料與控制資料。 士明求項2之方法’其中該控制資料包含選擇自由以下 所組成之群組的一類型資料:用於該記憶體之邏輯及實 體區塊位址表;用於該記憶體中資料結構之索引、指標 及位私,及用於該記憶體之平均讀寫資料。 4·如明求項2之方法,其中該編碼步驟編碼用於該單式資 料區塊之ECC位元,該單式資料區塊包含使用者資料、 幻儲存於该§己憶體内之一使用者資料複本、及在該記 憶體之操作中有用的控制資料。 5·如:求項2之方法,其中該記憶體係採.用區塊而配置, 各區塊包括複數個頁,且各區塊對應於在一抹除操作中 可抹除之複數個記憶體單元; 且其中該控制資料包含一更架 記憶體之一更新區塊。 如請求項5之方法,其中該第一 頁邊界内相關聯; /、 第頁係在该記憶體之一高速暫存區塊内; 一更新區塊指標,用於指向該 一複數個區段係在一共同 一複數個區段之使用者 其中該擷取步驟擷取用於該第 資料; 且進一步包含: 複數個區段之共同頁邊界内的另 接收用於該第一The single data area data bit corresponding to the data of the plurality of sections; and the data area of the single data block decoded by =4 are decoded. 2. The method of claim 1, wherein one of the pages of the medium-sized prints has a capacity for storing a plurality of sections for the brothers and at least one additional section; wherein the first plurality is used The receiving resource of the segment contains the user data; 'the element and the encoding step code is used for the operation of the single-type illegal data block to be included in the operation of the ECC bit of the memory data block. Doc 200814075 User data and control data. The method of claim 2, wherein the control data comprises a type of data selected from the group consisting of: a logical and physical block address table for the memory; and a data structure for the memory Index, indicator, and private, and the average read and write data used for the memory. 4. The method of claim 2, wherein the encoding step encodes an ECC bit for the single-type data block, the single-type data block containing user data, and one of the phantoms stored in the § memory A copy of the user data and control data useful in the operation of the memory. 5. The method of claim 2, wherein the memory system is configured by a block, each block includes a plurality of pages, and each block corresponds to a plurality of memory cells that can be erased in an erasing operation And wherein the control data includes an update block of one of the more memory. The method of claim 5, wherein the first page boundary is associated; /, the page is in one of the memory temporary buffer blocks; and the updated block indicator is used to point to the plurality of segments a user of a common plurality of segments, wherein the capturing step retrieves the data for the first data; and further comprising: another receiving within the common page boundary of the plurality of segments for the first 單式育料區塊, 區段之資料, 針對對應於該第一複數個區 編碼錯誤更正編碼(ECC)位 120874.doc 200814075 元; 程式化该s己憶體之一第二頁以儲存該資料及該等 ECC位元、及位於該更新區塊内的該第二頁。 7 ·如請求項1之方法’其中該第一複數個區段係在一共同 頁邊界内相關聯; 其中該擷取步驟擷取用於該第一複數個區段之使用者 資料; 且進一步包含: 接收用於違弟一複數個區段之共同頁邊界内的另一 區段之資科; 視為一單式資料區塊,針對對應於該第一複數個區 段及該另一區段之資料,編碼錯誤更正編碼(ECC)位 元; 程式化該記憶體之一第二頁以儲存該資料與該等 ECC位元。 8· 一種控制寫入及讀取至一快閃記憶體裝置之方法,該快 閃冗憶體裝置具有採用頁配置之複數個記憶體單元,各 頁具有用以儲存對應於複數個區段之資料之足夠容量, 且孩#頁配置成區塊,該方法包含以下步驟·· 攸主杜1系統,接收用於至少一第一區段之資料以寫 入至該快閃記憶體裝置; 回應小於一完整資料頁之接收資料,形成一資料區 塊,該資料區塊包含該接收資料並還包括在該快閃記憶 體裝置之操作中有用的控制資料; 120874.doc 200814075 在忒資料區塊上編碼錯誤更正編碼(ECC)位元;以及 矛式化σ亥快閃記憶體裝置中的一第一選定區塊之一第 一頁以儲存該資料區塊之資料與該等£(:€:位元。 9· 士明求項8之方法,其中該資料區塊進一步包含先前儲 存於4快閃記憶體裝置内之資料之一複本。 10·如請求項8之方法,其進一步包含··a single breeding block, a segmental data, for the first plurality of regions coding error correction coding (ECC) bits 120874.doc 200814075 yuan; stylizing one of the second pages of the s memory to store the The data and the ECC bits, and the second page located within the updated block. 7. The method of claim 1, wherein the first plurality of segments are associated within a common page boundary; wherein the capturing step retrieves user data for the first plurality of segments; and further The method includes: receiving a credit for another section within a common page boundary of a plurality of sections; treating a single-type data block for corresponding to the first plurality of sections and the another zone Segment data, Encoding Error Correction Coding (ECC) bit; Stylizes a second page of the memory to store the data and the ECC bits. 8. A method of controlling writing and reading to a flash memory device, the flash memory device having a plurality of memory cells in a page configuration, each page having a memory segment corresponding to the plurality of segments The data has sufficient capacity, and the child page is configured as a block, and the method includes the following steps: • receiving the data for the at least one first segment to be written to the flash memory device; The received data smaller than a complete data page forms a data block, the data block includes the received data and further includes control data useful in the operation of the flash memory device; 120874.doc 200814075 in the data block An upper coding error correction coding (ECC) bit; and a first page of one of the first selected blocks in the spear-shaped sigma flash memory device to store the data of the data block and the £(:€ The method of claim 8, wherein the data block further comprises a copy of the data previously stored in the 4 flash memory device. 10. The method of claim 8, further comprising · 接收用於對應於與該第一區段之資料相同頁的一第二 區段之資料; δ貝取該第一選定區塊之程式化第一頁; 使用σ亥等ECC位元,解碼該讀取的第一頁,以作為一 s亥對應於该第一區段之資料的單式資料區塊來復原 5亥荨資料位元; ^成包含該等第-及第二區段之-資料區塊; μ針對該包含該等第一及第二區段之資料區塊,編碼錯 誤更正編碼(ECC)位元; 2式化該記憶體之一第二頁以儲存該編碼資料區塊。 用长員10之方去,其中該第二頁係在該第一選定區塊 内0 12.:請求項U之方法,#中包含該等第—及第二區段之該 貢料區塊進一步包含控制資料。 S求員1G之方法,其中《第二頁係、在該快閃記憶體裝 置之一弟二選定區塊内; #且其中該控制資料包含-更新區塊指標1於指向該 弟一選定區塊。 120874.doc 200814075 14.如凊求項13之方法,其中該第一選定區塊係一高速暫存 區塊’且其中該第二選定區塊係一更新區塊。 15·如請求項8之方法,其中該控制資料包含選擇自由以下 所組成之群組的一類型資料:用於該快閃記憶體裝置之 α輯及貫體區塊位址表;用於該記憶體中資料結構之索 引L指標及位移;及用於該記憶體之平均讀寫資料。 16·:凊求項8之方法,其中該第-選定區塊係-高速暫存 區塊。 1 7. —種快閃記憶體系統,其包含: 一快閃記憶體裝置,其呈有 記憶體單元,各頁…塊之複數個 …、足以儲存用於複數個區段之資料 的:干記憶體單元,且各區塊具有複數個頁; 快閃記憶體控制哭,t 置,包含· °°八係耦a至該快閃記憶體裝 主機’丨面’其用於介接-主機系統; 褒置介面,复田μ入 控制器電路,1用=接該快閃記憶體裝置;以及 機介面處所接收之:機資=依據一操作序列將在該主 該操作序列包含: 、/+寫入至该快閃記憶體裝置, 針對一單式資料 位元,該單式資料區塊:塊’編碼錯誤更正編碼(ECC) 主機資料之資料;^'匕&對應於一第一複數個區段之 程式化一第—頁、 讀取該程式化第=存該編碼的單式資料區塊; 120874.doc 200814075 、 使用该等ECC位元,解碼該讀取的第_頁,以作 :、、匕括對應於該複數個區段之資料的單式資料區塊來 復原該等資料位元;以及 心從該解碼單式資料區塊中擷取一所需資料區段。 3求項17之系統,其中該讀取步驟係回應在該主機介 面處接收一讀取命令來執行; 且其中該操作序列進一步包含:Receiving data for a second segment corresponding to the same page as the data of the first segment; δ fetching the first page of the first selected block; decoding the read using an ECC bit such as σHai Taking the first page, recovering the 5 荨 data bit as a singular data block corresponding to the data of the first segment; ^ into the data containing the first and second segments a block; a code error correction coding (ECC) bit for the data block including the first and second sectors; and a second page of the memory to store the coded data block. Going with the person 10, where the second page is in the first selected block. 12. 12. The method of requesting item U, the # contains the tributary blocks of the first and second sections. Further contains control information. The method of requesting 1G, wherein "the second page is in the selected block of one of the flash memory devices; # and wherein the control data includes - updating the block indicator 1 to point to the selected area of the brother Piece. The method of claim 13, wherein the first selected block is a high speed temporary block 'and wherein the second selected block is an updated block. The method of claim 8, wherein the control data comprises a type of data selected from the group consisting of: an alpha code and a block address table for the flash memory device; The index L index and displacement of the data structure in the memory; and the average reading and writing data for the memory. 16: The method of claim 8, wherein the first selected block is a high speed temporary storage block. 1 7. A flash memory system, comprising: a flash memory device having a memory unit, a plurality of pages, a plurality of blocks, ... sufficient to store data for a plurality of segments: Memory unit, and each block has a plurality of pages; flash memory control crying, t set, including · ° ° eight-coupled to the flash memory device host '丨面' for the interface - host System; device interface, Futian μ into the controller circuit, 1 with = connected to the flash memory device; and the machine interface received: the machine = according to an operation sequence will be included in the main operation sequence: / + written to the flash memory device, for a single data bit, the single data block: block 'code error correction coding (ECC) host data; ^ '匕 & corresponds to a first a stylized first page of a plurality of sections, reading the stylized number = a single data block storing the code; 120874.doc 200814075, using the ECC bits, decoding the read _th page, To:,, and to include a single type of data corresponding to the plurality of sections Feedblock to restore such data bits; and a center to retrieve required information from the decoding section of the data block in a single formula. The system of claim 17, wherein the reading step is performed in response to receiving a read command at the host interface; and wherein the sequence of operations further comprises: 將該所需區段資料轉遞至該主機介面。 1 9乂 %求項17之系統’其中該第-複數個區段之至少一區 段包含在該主機介面處所接收之主機資料,且其中該編 碼操作編碼用於該單式資料區塊之咖位元,該單式資 料區塊包含在該快閃記憶體裝置之操作中有用之主機資 料及控制資料。 2〇·如明求項!9之系統,其中該編碼操作編碼用於該單式資 f區塊之聊位元,該單式資料區塊包含該主機資料、 4控制錢及先前儲存於該㈣記憶體裝置内之主機 料之一斿太。 ' 21·如請求項19之系統,其中該抑 、 T巧ί工制貝枓包含選擇自由以下 所組成之群組的一類型瞀料· 孓貝枓·用於該記憶體之邏輯及實 體&塊位址表,用於該供關^ 决閃5己饫體裝置中資料結構之索 引、指標及位移;及用於該快閃 資料。 门Ζ隱體裝置之平均讀寫 22.如請求項21之系統 速暫存區塊内; 其中該第—頁係在該記憶體之一高 120874.doc 200814075 且其中該控制資料包含一更新區塊指標,用於指 記憶體之一更新區塊。 Λ 月求項17之系統,其中該第一複數個區段係在一共同 頁邊界内相關聯; 其中該擷取步驟擷取用於該第一複數個區段之使用者 資料; 且進一步包含: 接收用於該第一複數個區段之共同頁邊界内的另一 區段之資料; 視為一單式資料區塊,針對對應於該第一複數假區 "亥另一區段之資料,編碼錯誤更正編碼(ECC)位 元; 程式化該記憶體之一第二頁以儲存該資料及該等 ECC位元、及該位於該更新區塊内的第二頁。 24·如咕求項17之系統,其中該第一複數個區段係在一共同 頁邊界内相關聯; 其中该擷取操作擷取用於該第一複數個區段之使用者 資料; 且進一步包含: 接收用於該第一複數個區段之共同頁邊界内的另一 區段之資料; 視為一單式資料區塊,針對對應於該第一複數個區 k及忒另一區段之資料,編碼錯誤更正編碼(ECC)位 元; 120874.doc 200814075 程式化該記憶體之一第 ECC位元。 二頁以儲存該資料與該等The required segment data is forwarded to the host interface. 1 乂% of the system of claim 17 wherein at least one of the first plurality of segments includes host data received at the host interface, and wherein the encoding operation encodes a coffee for the single data block Bit, the single data block contains host data and control data useful in the operation of the flash memory device. 2〇·如明求! The system of claim 9, wherein the encoding operation encodes a chat bit for the single-type f block, the single-type data block includes the host data, 4 control money, and a host material previously stored in the (4) memory device One is too. [21] The system of claim 19, wherein the method comprises a type of material selected from the group consisting of: 孓贝枓·Logic and entity for the memory & a block address table for indexing, indexing, and shifting of the data structure in the device for use in the device; and for the flash data. The average read and write of the threshold hidden device 22. In the system temporary storage block of claim 21, wherein the first page is in the memory of one of the heights 120874.doc 200814075 and wherein the control data includes an update area Block indicator, used to refer to one of the memory update blocks. The system of claim 17, wherein the first plurality of segments are associated within a common page boundary; wherein the capturing step retrieves user data for the first plurality of segments; and further comprising : receiving data for another segment within a common page boundary of the first plurality of segments; treating as a single data block for another segment corresponding to the first plurality of pseudo-regions Data, Encoding Error Correction Coding (ECC) bit; Stylize a second page of the memory to store the data and the ECC bits, and the second page located within the updated block. The system of claim 17, wherein the first plurality of segments are associated within a common page boundary; wherein the capturing operation retrieves user data for the first plurality of segments; Further comprising: receiving data for another segment within a common page boundary of the first plurality of segments; treating as a single data block for another region corresponding to the first plurality of regions k and Paragraph data, Encoding Error Correction Coding (ECC) bit; 120874.doc 200814075 Stylized one of the ECC bits of the memory. Two pages to store the information and such I20874.docI20874.doc
TW096117600A 2006-05-17 2007-05-17 Method of error correction coding for multiple-sector pages in flash memory devices TW200814075A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/383,844 US7809994B2 (en) 2006-05-17 2006-05-17 Error correction coding for multiple-sector pages in flash memory devices
US11/383,841 US20070300130A1 (en) 2006-05-17 2006-05-17 Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices

Publications (1)

Publication Number Publication Date
TW200814075A true TW200814075A (en) 2008-03-16

Family

ID=38723960

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096117600A TW200814075A (en) 2006-05-17 2007-05-17 Method of error correction coding for multiple-sector pages in flash memory devices

Country Status (2)

Country Link
TW (1) TW200814075A (en)
WO (1) WO2007137013A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741822A (en) * 2010-12-13 2012-10-17 联发科技(新加坡)私人有限公司 NOR flash memory controller
TWI395222B (en) * 2008-12-05 2013-05-01 Apacer Technology Inc A storage device having a flash memory, and a storage method of a flash memory

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100458718C (en) * 2006-12-29 2009-02-04 福昭科技(深圳)有限公司 Method of correcting error code for multiple sector
US7954021B2 (en) 2009-10-23 2011-05-31 International Business Machines Corporation Solid state drive with flash sparing
US8214580B2 (en) 2009-10-23 2012-07-03 International Business Machines Corporation Solid state drive with adjustable drive life and capacity
CN102394114B (en) * 2011-11-14 2014-01-01 清华大学 BCH code error correction method capable of adaptive error correction

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US20030056141A1 (en) * 2001-09-18 2003-03-20 Lai Chen Nan Control method used in and-gate type system to increase efficiency and lengthen lifetime of use
US6683817B2 (en) * 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI395222B (en) * 2008-12-05 2013-05-01 Apacer Technology Inc A storage device having a flash memory, and a storage method of a flash memory
CN102741822A (en) * 2010-12-13 2012-10-17 联发科技(新加坡)私人有限公司 NOR flash memory controller
CN102741822B (en) * 2010-12-13 2015-09-09 联发科技(新加坡)私人有限公司 Mobile device, NOR flash memory controller and method of operating thereof and error recovery method

Also Published As

Publication number Publication date
WO2007137013A2 (en) 2007-11-29
WO2007137013A3 (en) 2008-07-17

Similar Documents

Publication Publication Date Title
US10169143B2 (en) Preferred state encoding in non-volatile memories
US7809994B2 (en) Error correction coding for multiple-sector pages in flash memory devices
US20200042223A1 (en) System and method for facilitating a high-density storage device with improved performance and endurance
JP6025844B2 (en) System and method for accumulating data
US20070300130A1 (en) Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
US8880781B2 (en) Memory system and method of operating a memory system
US8769378B2 (en) Controller, a method of operating the controller and a memory system
CN111081308A (en) System and method for hybrid non-volatile storage system
CN106095699B (en) Scalable SPOR algorithm for flash memory
JP2008527586A (en) Group and align on-chip data
CN106855832A (en) Data storage device and its operating method
TW200912942A (en) Error recovery storage along a NAND-flash string
WO2008076550A1 (en) Method, system, and apparatus for ecc protection of small data structures
CN108345550A (en) Storage system
CN106920575B (en) Data storage device and operation method thereof
KR20100124087A (en) Memory controller, memory system including the same and method of operating the same
US9304907B2 (en) Data management method, memory control circuit unit and memory storage apparatus
TW201120899A (en) Method for reducing uncorrectable errors, and associated memory device and controller thereof
KR20110099563A (en) State based nonvolatile memory device and error correct method thereof
TW200814075A (en) Method of error correction coding for multiple-sector pages in flash memory devices
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP2004071012A5 (en)
US7310262B2 (en) Ferroelectric memory capable of continuously fast transferring data words in a pipeline
TW200907978A (en) Systems and methods of reading nonvolatile memory