TWI542990B - 用於控制非揮發性記憶體程式化之裝置與方法 - Google Patents

用於控制非揮發性記憶體程式化之裝置與方法 Download PDF

Info

Publication number
TWI542990B
TWI542990B TW104116910A TW104116910A TWI542990B TW I542990 B TWI542990 B TW I542990B TW 104116910 A TW104116910 A TW 104116910A TW 104116910 A TW104116910 A TW 104116910A TW I542990 B TWI542990 B TW I542990B
Authority
TW
Taiwan
Prior art keywords
physical
segment
memory
error correction
health
Prior art date
Application number
TW104116910A
Other languages
English (en)
Other versions
TW201612751A (en
Inventor
劉亦峻
Original Assignee
旺宏電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 旺宏電子股份有限公司 filed Critical 旺宏電子股份有限公司
Publication of TW201612751A publication Critical patent/TW201612751A/zh
Application granted granted Critical
Publication of TWI542990B publication Critical patent/TWI542990B/zh

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • G11C29/789Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using non-volatile cells or latches
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0016Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

用於控制非揮發性記憶體程式化之裝置與方法 【0001】
本發明是有關於一種管理非揮發性記憶體的衰減區段(degraded sections)之方法,且特別是有關於調整衰減區段程式化之方法。
【0002】
在一非揮發性(non-volatile, NV)記憶體中,一記憶胞(memory cell)可包括一單一電荷儲存電晶體(a single charge storing transistor)。以NAND型快閃記憶體的非揮發性記憶體為例,複數個記憶胞被配置在一陣列中,此陣列包括複數個行和列互連的記憶胞。這些記憶胞以複數條字元線(word line)及複數條位元線(bit line)相連接。舉例來說,在一列上的各記憶胞連接一共用字元線,且在一行上的各記憶胞至少連接一共用位元線。共用字元線通常連接至在列上的記憶胞的各電晶體之閘極,而共用字元線通常連接至在行上的記憶胞的各電晶體之源極或汲極。
【0003】
在某些非揮發性記憶體中,例如NAND型快閃記憶體,記憶胞可根據階層式結構(hierarchical structure)被管理及控制。舉例來說,記憶體單元陣列被分成(grouped)一或多個區塊(block),且每一區塊被分成(devide)一或多個頁面(page),每一頁面對應於一字元線。實體頁面係非揮發性記憶體中基本的程式化單元,使構成實體頁面的記憶胞可在程式化程序中共同被程式化,例如寫入操作(write operation)。構成實體頁面的記憶胞個數可由被共同字元線控制的記憶胞個數確定。在某些層級(hierarchies)中,共同字元線(即實體頁面)的記憶胞可被分為一個以上的實體單元(physical unit)。另外,一個實體單元可包括由一條以上的字元線控制的複數個記憶胞。
【0004】
快閃記憶體的記憶胞通常係經由施加特定電壓至要被程式化或抹除的目標記憶胞的字元線及一或多條位元線而被程式化或抹除。隨著使用時間的增加,多次程式化/抹除的操作磨耗構成記憶胞的電晶體,造成它們改變性能,導致記憶胞的位元錯誤,更可能影響鄰近記憶胞。此電晶體磨耗(wear)或衰減(degradation)會改變記憶胞的效能及可靠性,更可能使記憶胞不可用(unusable)。非揮發性記憶體的有效壽命(useful life)通常係由記憶胞在變成不可用之前,所能耐受的程式化/抹除(program/erase, P/E)次數來表示(represent)。在某些系統中,一旦記憶胞操作了(experience)預定次數的程式化/抹除(program/erase, P/E)或被證明性能衰退,記憶胞被認為係不可用且從未來的使用中引退(retire)。
【0005】
通常在非揮發性記憶體中,例如快閃記憶體,記憶胞的邏輯實體位址對映(logical-to-physical mapping)被設計在區塊層級(block level)。所以,即使不是區塊中所有記憶胞都已衰減或不可用,當一個區塊的某些記憶胞變成不可用,包括衰減或不可用記憶胞的階層式區塊(hierarchical block)係為引退的。且當非揮發性記憶體裝置的區塊尺寸變得愈來愈大,這常規的區塊引退方法(block retirement scheme)顯著損失了記憶體裝置的儲存能力。因為構成(constituting)實體頁面的記憶胞之磨耗或衰減的程度在單一區塊中可相當大地變化(例如由於實體頁面的不均勻的程式化/抹除次數)。常規的區塊引退方法可能會不必要地(unnecessarily)引退有用記憶胞,而導致存儲容量浪費。
【0006】
根據本發明,提出一種用於控制非揮發性記憶體程式化之裝置。該非揮發性記憶體包括至少一區塊(block),該區塊被分割成複數個實體區段(physical section),各該實體區段包括複數個記憶胞(memory cell)。該裝置包括一控制器(controller),用以存取一表格(table),該表格包括對應於(corresponding to)各該些實體區段的一資訊。該控制器亦根據該表格中對應於該些實體區段之一第一實體區段之該資訊,識別(identify)出該第一實體區段之一第一程式化方法(first programming method),並根據該表格中對應於該些實體區段之一第二實體區段之該資訊,識別出該第二實體區段之一第二程式化方法(second programming method)。該控制器亦分別根據該第一程式化方法及該第二程式化方法程式化(program)該第一實體區段及該第二實體區段。
【0007】
亦根據本發明,提出一種用於程式化非揮發性記憶體之方法,該非揮發性記憶體包括複數個區塊(blocks),各該區塊包括複數個實體區段(physical section),各該實體區段包括複數個記憶胞(memory cell)。該方法包括接收一控制訊號(control signal),以在該些實體區段之一或多個進行一程式化操作(programming operation),且存取一表格(table),該表格包括對應於(corresponding to)該些實體區段之一或多個的一資訊。該方法更包括根據該表格中對應於一第一實體區段之一資訊,識別(identify)該第一實體區段之一第一程式化方法(first programming method),並根據該表格中對應於一第二實體區段之另一資訊,識別該第二實體區段之一第二程式化方法(second programming method)。該方法亦包括分別根據該第一程式化方法及該第二程式化方法程式化(program)該第一實體區段及該第二實體區段。
【0008】
另外,提出一種用於控制記憶體程式化之系統。該系統包括一非揮發性記憶體裝置(non-volatile memory device),非揮發性記憶體裝置包括至少一區塊(block),該區塊被分割成複數個實體區段(physical section),各該實體區段包括複數個記憶胞(memory cell)。該系統亦包括一表格(table),該表格包括對應於(corresponding to)各該實體區段的一資訊,以及包括一控制器,該控制器用以控制該非揮發性記憶體裝置(non-volatile memory device)的程式化。該控制器用以接收一控制訊號(control signal),以在該些實體區段之一或多個進行程式化操作(programming operation),且存取該表格(table),以辨識對應於(corresponding to)該些實體區段之一或多個的資訊。該控制器亦根據一第一實體區段之一資訊,用以識別(identify)該第一實體區段之一第一程式化方法(first programming method),並根據一第二實體區段之另一資訊,識別該第二實體區段之一第二程式化方法(second programming method)。該控制器更分別根據該第一程式化方法及該第二程式化方法用以程式化(program)該第一實體區段及該第二實體區段。
【0009】
與本揭露一致的特徵和優點將會在下面的描述中部份闡述,並且部分將從描述中顯而易見,或者可透過本揭露的實踐了解。這樣的特徵和優點將透過所附請求項中特別指出的本發明之特點與優點將部分地闡述於以下發明詳述,並且部分將是從描述中顯而易見,或可以通過本發明的實踐而得知。這些特徵和優點將透過在所附請求項中特別指出的要素和組合實現與獲得。
【0010】
應當理解的是,前面的一般描述和以下的詳細描述係示例性的和解釋性的,而不是用以限制本發明所請求的內容。
【0011】
被併入說明書中並構成本說明書一部分的附圖說明本發明的一些實施例,並與說明書一同用於解釋本發明的原理。
【0067】
100‧‧‧裝置 110‧‧‧主機 120‧‧‧控制器 130‧‧‧記憶體裝置 135‧‧‧管理記憶體裝置 200‧‧‧健康表格 202、204、206‧‧‧列 300‧‧‧記憶體陣列 500‧‧‧方法 510~570‧‧‧步驟
【0012】
第1圖為根據一示例性實施例示意性地顯示一用以控制一記憶體的程式化之裝置。 第2圖為根據一示例性實施例顯示一示例性的健康表格,該健康表格係用於一記憶體的複數個實體區段。 第3圖示意性的繪示在一記憶體中的一示例性區塊記憶胞的一階層式結構。 第4A圖和第4B圖繪示用以程式化一記憶胞的一示例性的編碼方法(encoding scheme)。 第5圖為根據一示例性實施例顯示一程序的流程圖,根據健康表格中的資訊程式化記憶體的實體區段。
【0013】
與本揭露一致的實施例包括用以管理及控制非揮發性記憶體的系統與方法,基於確定的實體區段的健康狀態,透過動態調適或調整記憶體各實體區段的程式化及/或錯誤校正方法。記憶體可包括識別多個實體區段中衰減中實體區段的表格,以使控制器確定預期的程式化或錯誤校正方法以實現於各實體區段。本揭露系統和方法的健康表格可包括多個實體區段的各實體區段的健康資料,這些實體區段包括於一記憶體陣列的一區塊中。根據健康表格指出的實體區段的健康狀態,當實體區段衰減及/或變成不可用,本實施例可動態地調整一記憶體區塊的各實體區段的程式化方法及/或引退各實體區段。因此,與本揭露實施例一致,根據調適的程式化方法或各實體區段的引退,記憶胞的儲存容量可隨時間被調整。因此,部份衰減或不可用的記憶體陣列記憶胞可以引退,不必引退記憶體陣列的完整區塊。
【0014】
另外,在其他實施例中,一錯誤校正方法可隨著時間被調整,以對一區塊的記憶體陣列中造成實體區段衰減的大量錯誤進行偵測(detect)及校正(correct)。因此,一記憶體陣列中各實體區段的有效壽命可被延長(extend),不用過早地引退該實體區段或該記憶體陣列的一完整區塊。
【0015】
在下文中,多個實施例以圖示描述。盡可能地,相同的圖示符號在所有圖示中皆指相同或類似的部件。
【0016】
第1圖示意性的繪示一示例性的裝置100,用以管理及控制一記憶體裝置130的程式化(及其他操作),與本揭露的實施例一致。裝置100包括一主機(host) 110、一或多個記憶體控制器120、及一或多個記憶體裝置130。在一實施例中,一或多個記憶體控制器120被提供與一或多個記憶體裝置130一同做為一管理記憶體裝置135的一部分。在另一實施例中,一或多個記憶體控制器120係獨立的控制器,被提供做為主機110的一部分。另外,在某些實施例中,一或多個記憶體控制器120、一或多個記憶體裝置130以及一管理記憶體裝置135被包括為主機110的一部分。
【0017】
揭露的實施例的主機110可包括任何主機系統(host system)或計算裝置(computing device),例如桌上型電腦、筆記型電腦、平板電腦、行動電話、記憶卡讀取器、機器人裝置或任何其他用以存取(例如讀或寫)記憶體裝置130資料的計算裝置。主機110可包括用以存取記憶體裝置130的任何數量的已知其他元件(components)和電路(circuitry),包括一或多個記憶體控制器120。
【0018】
所述一或多個控制器120用以執行與本發明對管理和控制記憶體裝置130程式化的實施例一致的方法。所述一或多個記憶體控制器可包括元件和電路的任何數量和組合以執行所揭露實施例的方法,以及其他操作,例如本領域具有通常知識者所知的錯誤校正、讀、寫、和抹除操作、對映(mapping)及重新對映(remapping)。舉例來說,控制器120可包括一或多個狀態機(state machines)、暫存器檔案(register files)及其他邏輯電路(logic circuitry)。該邏輯電路可係專用電路(circuitry)或可程式閘陣列電路(programmable gate array circuit),或可被實施(implement)為可程式化處理器(programmable processor)或有相關連軟體指令的微處理器。所述一或多個控制器120可包括這些或其他已知元件的任何組合,及可被提供作為如微處理器的一單一裝置,或可被實施成多個獨立裝置。本領域具有通常知識者所知的能執行本揭露方法之一個或多個存儲器控制器120的任何結構可以在這裡被採用。
【0019】
根據示例性的實施利,所述一或多個控制器120可包括任何適合的輸出入介面(I/O interface)以具通訊能力地耦接控制器120至主機110及/或記憶體裝置130。控制器120可具通訊能力地被耦接至記憶體裝置130,透過輸入輸出匯流排(I/O bus)及/或用以溝通控制訊號的控制匯流排及/或用以定址(addressing)或執行下述示例性方法的指令。
【0020】
所述一或多個記憶體裝置130可包括任何類型的記憶體裝置,包括但不限於非揮發性NAND型或NOR型快閃記憶體、相變化記憶體(phase-change memory, PCM)、電阻式記憶體(resistive random-access-memory, RRAM)或任何現在已知或待開發的其他類型的非揮發性記憶體。尤其是,任何類型的記憶體可受益於本揭露之系統與方法,這些記憶體裝置的各記憶胞或實體區段中的這些任何類型的記憶體可能經受(均勻或不均勻的)磨耗程度(levels of wear)。
【0021】
另外,所述一或多個記憶體裝置130可根據任何已知方法被程式或及管理。舉例來說,在某些實施例中,所述一或多個記憶體裝置130可包括複數的三階儲存單元(triple-level cells, TLC),即可編碼三位元資料的記憶胞。在一TLC記憶體裝置中,各記憶胞可被程式化以保留一特定電荷,舉例來說,對應於可編碼三位元資料可獲得八個各別狀態。在其他實施例中,所述一或多個記憶體裝置130可包括複數個多階儲存單元(multi-level cells, MLC),即對應於二位元編碼資料能表示四個程式化狀態的記憶胞。在其他實施例中,所述一個或多個記憶體裝置130可包括複數個單階儲存單元(single-level cells, SLC),單階儲存單元可表示對應於一位元編碼資料的兩個程式化階段。隨著記憶體技術的演進,記憶體裝置130亦可每個記憶胞儲存四個或以上的位元。本揭露的實施例並不限於一特定結構的記憶體裝置130。
【0022】
在一示例性實施例中,一記憶體裝置130的各記憶胞可根據每一TLC、MLC、SLC型的編碼方法,表示儲存資料的不同程式化狀態。舉例來說,在這些實施例中,所述一或多個控制器120可根據對應於三位元資料、二位元資料或單一位元資料的程式化方法或編碼方法,用以程式化記憶體裝置130的各記憶胞。在一示例性實施例中,所述一或多個控制器根據由複數個記憶胞程式化或讀取的位元數量,可調整程式化方法及讀取方法。舉例來說,在某些實施例中,根據一預期編碼三位元資料的方法,某些包括記憶體裝置130的記憶體陣列的記憶胞可被程式化,反之,其他記憶胞可被程式化以編碼二位元或一位元資料。如以下第2圖所述,所述一或多個控制器可透過實施一健康表格200用以管理包括一記憶體陣列的複數個記憶胞,該健康表格儲存資訊辨識寫入記憶體實體區段的記憶胞的有效負載(payload)或資料位元的數量。
【0023】
在其他實施例中,所述一或多個控制器120和記憶體裝置130可用以實施不同的錯誤校正方法。在某些實施例中,控制器120或記憶體裝置130可包括錯誤校正邏輯以執行任何本領域已知錯誤校正方法,例如漢明碼(Hamming code)、多維度同位校驗碼(multi-dimensional parity-check code)、里德索羅門碼(Reed-Solomon codes)、BCH碼(Bose-Chaudhuri-Hocquenghem, BCH)、渦輪碼(Turbo code)、低密度同位校驗碼(low-density parity-check code, LDPC)及其他可適性錯誤校正方法(adaptive error correction schemes)。在一示例性實施例中,所述一或多個控制器120可用以實施針對一記憶體陣列中不同實體區段的不同錯誤校正方法。舉例來說,在一實施例中,控制器120可用以對一記憶體陣列的一第一實體區段執行BCH錯誤校正方法,並對該記憶體陣列的第二實體區段執行LDPC錯誤校正方法。控制器120可透過存取健康表格200用以對一記憶體陣列管理錯誤校正,健康表格200儲存辨識實施於一記憶體陣列的複數個實體區段的錯誤校正方法資訊。
【0024】
所述一或多個記憶體裝置130可根據預期的結構用以儲存個人資料或其他有用的有效負載資料。另外,除了有效負載資料,所述一或多個記憶體裝置130可用以儲存中介資料(metadata)或耗用資料(overhead data),例如邏輯實體位址對映表格或其他定址資料,以及錯誤校正碼。根據某些實施例,所述一或多個記憶體裝置130可用以儲存額外資料於健康表格200的格式中,如第2圖所示。健康表格200可連同個人資料、有效負載資料或中介資料被包括在記憶體陣列的區段中。根據本揭露其他實施例中,健康表格200可被分別儲存自記憶體裝置130及經由一或多個記憶體控制器存取。
【0025】
根據已揭露的實施例以及如以下進一步詳細討論,健康表格200包括複數個健康資訊,指出對應於記憶體裝置130的記憶體陣列之特定實體區段的健康狀態或其他相關資訊。健康表格200係可由所述一或多個控制器120存取,且可被用於確定一適當的程式化或讀取方法,所述程式化或讀取方法係對於記憶體裝置130的特定實體區段執行。根據已揭露的實施例,健康表格200亦可被所述一或多個控制器120存取以執行錯誤校正程序、磨耗平均程序(wear-leveling process)或其他程序。
【0026】
根據一示例性實施例及第2圖所示,健康表格200可包括多個列,例如列202包括識別記憶體裝置130的特定實體區段或單元(PU-‘0’, . . . , PU-‘Y’)的資訊、列204包括識別對應於列202的特定實體區段的健康資訊或其他相關資訊的資訊,及列206包括識別對應於記憶體裝置130的特定實體區段的位址的資訊。根據示例性實施例,健康表格200可包括額外資訊,所述額外資訊包括其他可預期的定址或對映資訊。
【0027】
如第2圖所示,健康表格200可包括對應於一記憶體陣列的實體區段數量或單元數量的複數行。健康表格可包括一記憶體陣列的各實體區段之一行,或實體區段的子集合,或者僅有那些被識別為如預期正在衰減的實體區段。第2圖中的健康表格200僅係範例。健康表格200亦可提供記憶體裝置130的其他階層式結構的資料,例如區塊或字元線或其他實體或邏輯結構。在某些實施例中,對應於一記憶體陣列的特定實體區段之健康資料可不被設置為一表格結構,其他組織資料的已知方法可被實施。
【0028】
第3圖繪示一記憶體陣列300的記憶胞區塊的示例性階層結構。如第3圖所示,根據一實施例的記憶體陣列300包括根據所述示例性階層結構的分區數。舉例來說,在一實施例中,記憶體陣列300包括N+1個區塊,區塊0至區塊N。在一揭露的實施例中,一區塊表示分割的記憶體陣列300的階層式結構的最高層級(level)。在一示例性實施例中,一或多個區塊,例如區塊0,包括複數個字元線的記憶胞,例如字元線0,…,字元線X。該些字元線分別對應於複數的實體頁面。在一示例性實施例中,一或多條字元線或實體頁面的記憶胞更被分成一或多個實體區段或實體單元,PU-‘0’, . . . , PU-‘Y’各包括複數個記憶胞。在揭露的實施例中,一實體區段係分割的記憶體陣列300的階層式結構的最小層級。記憶體裝置130可在預期的層級中被管理,例如在區塊層級、字元線層級或實體區段層級,或其他根據特定結構如可預期的層級。在一實施例中,記憶體裝置130在實體區段上被管理,如此健康表格200包括記憶體裝置130的記憶體陣列的實體區段的健康資訊。
【0029】
第3圖所示之記憶體陣列300的結構式階層僅為示例。任何階層式結構可在本揭露實施例中被實施。舉例來說,在一實施例中,一記憶體陣列被組織包括單一區塊或少於預期的N個區塊。而且,每一區塊可包括多於或少於如第3圖所示的組織層級。在其他實施例中(未繪示),一實體頁面或一字元線可僅包括單一實體區塊。舉例來說,在一實施例中,一字元線(或多條字元線)可係該階層式結構的最小層級。在另一實施例中(未繪示),一單一實體區段可對應於一或多個其他記憶體陣列上的一或多個實體頁面。所述一或多個實體頁面可在所述一或多個記憶體陣列中有一樣的實體位址。再者,記憶體陣列300可包括其他階層式區段,包括在本領域所使用之劃分(division)或區(sector)。
【0030】
另外,一或多個階層式層級可包括邏輯頁面或邏輯區段/單元,因此使記憶體裝置亦在邏輯層級被管理。舉例來說,取決於每記憶胞編碼位元的數量,每一實體頁面可包括一或多個邏輯頁面。因此,對一包括編碼三位元的記憶胞(即TLC記憶胞)的頁面,所述實體頁面可被分為三個邏輯頁面,分別為最高有效位元(most significant bit, MSB)邏輯頁面、中間有效位元(center significant bit, CSB)邏輯頁面及最低有效位元(least significant bit, LSB)邏輯頁面。如第3圖的例子所示,實體頁面或字元線的每一實體單元(如PU-‘0’)亦可包括一或多個邏輯單元,所述邏輯單元被提供為最高有效位元(most significant bit, MSB)邏輯單元、中間有效位元(center significant bit, CSB)邏輯單元及最低有效位元(least significant bit, LSB)邏輯單元。因此,每一用於編碼儲存三個位元在每記憶胞的字元線或實體頁面可包括三個邏輯頁面,每一邏輯頁面包括多個對應於實體單元數量的邏輯單元。本揭露的系統與方法可根據任何預期的記憶體裝置130的實體或邏輯階層式結構被實施。
【0031】
回到第2圖,在一示例性實施例中,健康表格200用以包括一記憶體陣列的每一實體區段或實體單元(PU-‘0’, . . . , PU-‘Y’)的健康資訊。根據所述示例性實施例,所述記憶體陣列的實體區段或實體單元的尺寸或長度可取決於記憶體裝置130的預期結構或操作而改變。舉例來說,在一實施例中,一實體區段包括對應於一快閃記憶體轉譯層(flash memory translation layer, FTL)粒度(granularity)層級的尺寸或一邏輯實體層對映/定址函數(logical-to-physical level mapping/addressing function)。在其他實施例中,對應於預期的錯誤校正塊(chunk)尺寸的一實體區段,舉例來說,一錯誤校正函數被執行。錯誤校正塊的尺寸可根據許多因數而確定,包括實施的錯誤校正方法的強度及任何給定資料塊中被校正位元的期望數量。在其他實施例中,一實體區段可包括複數個錯誤校正塊。某些實施例中,一錯誤校正塊的尺寸可對應於一實體頁面的尺寸,因此一實體區段的尺寸亦對應於一實體頁面的尺寸或長度。在某些實施例中,如第3圖所示,一個以上的實體區段可被包括在一實體頁面。
【0032】
在某些實施例中,每一實體區段可包括多個邏輯單元。舉例來說,在一實施例中,記憶胞可以大於一位元的資料編碼,複數個位元對應於一分開可定址的邏輯頁面。舉例來說,在一實施例中,記憶體陣列300可為一TLC記憶體裝置,其中每一記憶胞編碼三位元的資料。所述三位元資料對應於最高有效位元(MSB)、中間有效位元(CSB)及最低有效位元(LSB)。即使所述三個位元之一在一單一記憶胞中被編碼,所述三個位元對應於三個不同獨立可定址的邏輯頁面,該邏輯頁面被包括為單一實體頁面的一部分。此外,一第一實體單元的記憶胞的MSB位元可對應於該第一實體單元的MSB邏輯單元,CSB位元可對應於CSB邏輯單元,且LSB位元可對應於LSB邏輯單元。因此,如第3圖所示,包括在一實體區段的複數個記憶胞的複數個MSB位元可形成一MSB邏輯單元。同樣地,包括在一實體區段的複數個記憶胞的複數個CSB位元及LSB位元可分別形成一CSB邏輯單元及一LSB邏輯單元。所以,在一實施例中,一瞄準(target)一實體區段的程式化或寫入操作如同預期的可進行以單獨寫入所述實體區段的對應最高有效位元、中間有效位元及最低有效位元。
【0033】
如第2圖所示,根據示例性的實施例,現在將討論健康表格200的實施。
【0034】
在一實施例中,如第2圖所示之例A,健康表格200儲存對應於一記憶體陣列的實體區段或實體單元之各該記憶胞之一可程式化(即寫入)或編碼的資料位元數的資訊。舉例來說,列204中的健康資料包括二位元的資料,該二位元資料在健康表格200中表示每一實體區段或實體單元的四種可能的健康狀態之一。在例A中,所述四種健康狀態包括一第一健康狀態(以位元00表示),該第一健康狀態指出三個資料位元被寫入或編碼至含一實體區段的記憶胞。在第二健康狀態(以位元10表示),二資料位元被寫入至包括一個實體區段的記憶胞。在第三健康狀態(以位元10表示),一資料位元被寫入至包括一個實體區段的記憶胞。在第四健康狀態(以位元11表示),所述實體區段係引退的(retired),因此沒有資料被寫入至對應的實體區段的記憶胞。
【0035】
如第2圖之健康表格200所示,對單一記憶體陣列而言,各實體區段或單元可以被指定根據所指示的健康狀態、根據不同的程式化方法來程式化。舉例來說,一第一實體區段(PU-‘0’)被指定程式化以每記憶胞儲存三個位元。反之,一第二實體區段(PU-‘1’)被指定程式化以每記憶胞儲存兩個位元,以及一第三實體區段(PU-‘Y’)被指定程式化以每記憶胞儲存一個位元。第四實體區段(PU-‘2’)被指定為引退的,因此沒有位元被寫入對應的記憶胞。
【0036】
在另一實施例中,如第2圖所示之例B,健康表格200儲存對應於特定錯誤校正方法的資訊,此資訊根據實體區段的已定健康被實施於對應一記憶體陣列的實體區段或單元。舉例來說,健康表格的列204包括二位元的資訊,以表示對應實施於實體區塊的錯誤校正方法的四種健康狀態之一。如圖所示,在一第一健康狀態(以位元00表示),列204之健康資料指出一被實施於對應實體區塊的BCH錯誤校正方法。在一第二健康狀態(以位元01表示),列204之健康資料指出一被實施於對應實體區塊的LDPC錯誤校正方法。在一第三健康狀態(以位元10表示),列204之健康資料指出用以校正其他實體區段錯誤的同位資料(parity data)或冗餘資料(redundant data)被寫入對應的實體區段。相似於例A,在一第四健康狀態中(以位元11表示),列204之健康資料指出對應的實體區段係由進一步使用中引退。
【0037】
例A及例B的實施例僅是示例。用以指出健康表格200的列204中健康資料的位元數量可根據期望的操作改變。舉例來說,在一實施例中,健康資料可使用對應於八個不同健康狀態的資料的3個位元來提供。在這樣的實施例中,所述八個不同健康狀態可包括上述例A和例B中的狀態的某些組合,或可對應於從本揭露預期的其他狀態。在某些實施例中,健康資料甚至可使用單一資料位元。舉例來說,在一實施例中,一預設程式化方法可被指定,例如每記憶胞寫入兩個資料位元。在此實施例中,健康資料的一「0」位元值指出所述實體區段係每記憶胞寫入一資料位元。反之,健康資料的一「1」位元值指出所述實體區段係引退的。當沒有資料已被寫入至用於對應於實體區段的健康表格200,所述預設程式化方法可被實施。被包括在一示例性的健康表格200中的任何其他多種潛在變化的健康資料亦可如本揭露所預期的被實現。
【0038】
如上所述,健康表格200可包括健康資料,此健康資料根據一特殊結構指出一記憶體陣列的對應實體區段中任何數量的潛在「健康狀態」。再依示例性實施例中,舉例來說,健康表格200可被實施以增進記憶體裝置130的效能或增加其壽命。舉例來說,對某些記憶體裝置130來說,一記憶體陣列的某些記憶胞的效能在大量的讀/寫/抹除操作後開始衰減。在記憶體陣列製造、其他環境效果或操作效果的其他缺點亦可促成(contribute)某些記憶胞的各種性能異常。如同本揭露系統與方法的實施,健康表格200可提供資訊,用以識別包括不可操作或效能已衰減之記憶胞的記憶體陣列中的某些實體區段。
【0039】
在示例性實施例中,包括於健康表格200的健康資料係由控制器120存取,舉例來說,指出控制器120調適一特定程式化及/或編碼方法(及對應於此程式化方法之讀取方法)或用於特定實體區段的錯誤校正方法。由健康表格200中列204的健康資料所表示的「健康狀態」可根據任何已知偵測健康或記憶體陣列的對應實體區段之衰減效能的程度來確定。該衰減效能程度係根據預定臨界值或其他診斷方法。
【0040】
關於上述討論及在第2圖所示之例A,健康表格200基於對應之列204的健康資料,指出一已衰減實體區段或一實體區段的一衰減記憶胞。舉例來說,列204之健康資料可指出可被程式化的實體區段的記憶胞的位元數量。於是,舉例來說,有較佳健康或較低衰退程度的實體區段有較多位元可被程式化。
【0041】
在本實施例中,記憶體裝置130用以使複數個記憶胞能以每記憶胞一位元、二位元或三位元的方式被編碼。以及在記憶體裝置130的最佳操作狀態中,舉例來說,一實體區段的每一記憶胞(或至少大於臨界值的一數量)係能每記憶胞儲存三位元的資料。如此,最初,健康表格200儲存健康資料,健康資料指出各實體區段的記憶胞係根據可呈現每記憶胞三位元資料的一編碼方法被程式化。舉例來說,在各實體區段在列204上的健康資料由控制器120寫入,舉例來說,儲存位元00。在寫入操作前,控制器120可存取健康表格200以確定寫入的目標實體區段的「健康狀態」,以及確定對應於位元00的健康資料。控制器120可根據適合每記憶胞編碼三位元資料的程式化或編碼方法程式化一記憶體陣列的預期實體區段。在本實施例中,控制器120可調適地用以執行寫入操作以每記憶胞「寫入」三位元的資料。
【0042】
在一實施例中,如由本領域具有通常知識者所理解,控制器120透過施加一特定電壓至目標實體區段的記憶胞之一共同字元線及/或一或多條位元線以執行程式化一記憶胞。舉例來說,如第4A圖及第4B圖所示,繪示一用以程式化一記憶胞的示例性編碼方法。控制器120施加一特定電壓至一目標記憶胞,此特定電壓對應於記憶胞的一程式化狀態。舉例來說,如第4A圖及第4B圖所示,對一TLC記憶胞來說,對應於八個不同程式化狀態的八個不同電壓層級可被施加至一記憶胞。於是,根據預期的編碼方法,八個不同程式化狀態各對應於一特定位元值。繪示於第4A圖及第4B圖的編碼方法係可實施在一示例性實施例的可能編碼方法。
【0043】
如第4A圖及第4B圖所示,對應於最低電壓值的一第一程式化狀態(狀態0)係與位元值111相關連。一第二程式化狀態(狀態1)對應於位元值011、一第三程式化狀態(狀態2)對應於位元值001,以及諸如此類。亦即,狀態0至7對應逐步提高的電壓值。因此,舉例來說,為程式化一目標記憶胞以儲存一位元值010,控制器120根據實施的編碼方法用以施加對應於狀態4的電壓值至記憶胞。對應於隨著時間推移所期望的狀態而所施加電壓,記憶胞之可靠儲存電荷的能力取決於許多因素,包括記憶胞之年齡及施加於記憶胞的程式或/抹除次數,以及其他環境和操作因數與效果。在一示例性的實施例中,根據期望的狀態之電壓值,一記憶胞的健康對應於其儲存電荷的能力。隨著時間,一記憶胞不再可靠地呈現八個不同電壓層級。於是,示例性的實施例調整適合的程式化及/或錯誤校正方法以延長健康正衰減中的記憶胞之使用。
【0044】
在操作中,健康表格200可被更新以識別健康正在衰減的記憶體陣列之某些實體區段。例如:那些不再可靠地以每記憶胞三位元資料編碼的實體區段。舉例來說,基於各實體區段的識別位元錯誤率可識別出健康正在衰減的實體區段。在示例性實施例中,更新健康表格200以指出對應實體區段的衰減的健康或狀態,以取代引退包括衰退的實體區段的記憶體陣列的區塊(或實體區塊本身)。
【0045】
舉例來說,關於例A,對已被辨識為有衰減效能的實體區塊來說,更新健康表格200以指出實體區段係以每記憶胞二位元或一位元繼續被寫入。舉例來說,一特定實體區段的健康資料在健康表格200中以如預期的位元01或10被更新。因此,根據仍可達成預期可靠性的程式化方法或編碼方法,一衰減中的實體區段仍可在記憶體陣列中被使用。即使一實體區段的記憶胞已衰減,使控制器120無法可靠地讀取或寫入三位元的資料至實體區段的記憶胞,記憶胞仍可令人滿意地執行儲存二位元或一位元資料。控制器120可調適性地用以調整用於一實體區段的程式化方法,其係根據健康表格200中的健康資料以程式化(例如寫入)兩位元或一位元資料。於是,記憶體陣列的儲存能力係隨著時間逐步降低,使記憶體裝置130延長壽命。
【0046】
於是,若某些實體區段被確定不再能夠可靠地存儲任何資料,這些已辨識的實體區段係引退的,舉例來說,藉由更新健康表格200中對應的健康資料為位元11。因為示例性實施例的實體區段可係記憶體陣列的階層式結構的的實體區段,較小於記憶體陣列的區塊,實體區段的引退取代了區塊的引退,包括這些區段有效增加記憶體裝置130的有效壽命。因此,僅那些不再能夠有效使用的實體區段引退,因此,使記憶體裝置130儲存資料於一區塊記憶體的其他有用實體區段中。
【0047】
如上所述,在一實施例中,存取健康表格200中列204的健康資料的一或多個控制器120用以調整一程式化或編碼方法,這樣少於三位元的資料被編碼至目標記憶胞。如本揭露所示,可由多種方式實現。在一實施例中,控制器120用以引退對應於一已衰減的實體區段的邏輯單元。舉例來說,控制器120用以引退已衰退的實體區段之MSB、CSB或LSB邏輯單元之一。在一實施例中,控制器120用以引退邏輯單元,其程式化可被確定為引入更大數量的位元錯誤於記憶胞或相鄰記憶胞。在另一實施例中,引退的邏輯單元被選擇作為規定由控制器120實現的特定編碼方案。舉例來說,當記憶胞衰減,分辨鄰近狀態的電壓層級是困難的。因此,控制器120可用以引退邏輯單元,如透過編碼方法規定(dictate),其餘的狀態可被較大的電壓值分開。
【0048】
在一實施例中,舉例來說,可以確定實體區段的CSB邏輯單元的程式化引入較MSB邏輯單元或LSB邏輯單元的程式化更大數量的位元錯誤。這樣的確定可以根據錯誤校正程序或其它診斷方法或存儲器陣列的特性來進行。舉例來說,控制器120用以將1填入CSB邏輯單元中以引退實體區段的CSB邏輯單元。在一示例性的編碼方法中,如第4A圖和第4B圖所示,為MSB及LSB邏輯單元改變CSB位元的值為1造成其餘的可程式化狀態0、1、4及5。其餘四個狀態表示四種狀態,其可以利用僅二位元的資料進行編碼(例如:'11','01','00'和'10')。在此實施例中,根據實施的編碼方法,將1填入CSB位元中是有利,因為這樣做消除了狀態6和7。這些狀態需要較大電壓層級以程式化目標記憶胞,並因此更可能在鄰近記憶胞中造成(introduce)程序化/讀取干擾。另一個優點包括對實體區段的MSB和LSB邏輯單元維持相同的編碼方法的控制器120的能力。換句話說,相同的電壓值可對應於MSB位元和LSB位元的同樣的程式化狀態,不論記憶體裝置被程式化以儲存每記憶胞三位元資料或每記憶胞二位元資料。
【0049】
在另一實施例中,任一MSB邏輯單元或LSB的邏輯單元相似地以降低記憶胞的能力引退,從每記憶胞三位元至每記憶胞二位元。於此揭露的方法不被任何引退邏輯單元或降低記憶胞容量的特定方法所限制。
【0050】
其他可調適的程式化方法亦可根據本揭露被實施。舉例來說,控制器120可用來調適對應於容量減少的記憶胞之編碼方法。舉例來說,來自上文討論的實施方式的差異,根據對應於程式化狀態的已調適電壓層級,控制器120可用以程式化一MSB位元及一LSB位元。舉例來說,當記憶胞衰減,增加相鄰的程式化狀態的電壓值之間的「距離」可係有益的。在這種方式中,識別正確的程式化狀態是容易的。舉例來說,在上述的例子中,增加程式化狀態0和1及4和5之間的距離是有益的。因此,控制器120可用以調整對應狀態的程式化電壓,所以更容易地在衰減中的記憶胞中區別出對應的電壓層級。
【0051】
引退如上所述的一分別可定址的實體區段的邏輯單元之優點係簡化由記憶體裝置實施的一對映及定址方法。舉例來說。引退MSB、LSB或CSB邏輯單元,根據任何上述或其他構想的方法,其他未引退的實體區段的對映與定址仍然沒有改變。然而,在某些實施例中,在MSB、MSB和LSB位元中,實體區段可不包括分別可定址的邏輯單元。在這些實施例中,相似於那些上述討論的方法可被實施以降低記憶胞的容量,在每記憶胞中,從三位元至二位元或從二位元至一位元。於是,控制器120可用以調整對映或定址方法以產生(account for)各實體區段的降低的容量。
【0052】
在另一實施例中,關於上述討論及在第2圖所示之例B,健康表格200基於對實體區段實施的錯誤校正方法,指定記憶體陣列的正衰減的實體區段。在這實施例中,實體區段被程式化以儲存每記憶胞任意數量的位元。在初始模式的操作,舉例來說,控制器120對儲存於實體區段的資料實施一第一錯誤校正方法。在此實施例中,初始錯誤校正方法可能不是非常穩健(robust)或用以識別及校正實體區段中最少數量的錯誤。舉例來說,一第一相對簡易的錯誤校正方法(first relatively light error correction scheme)可以包括使用BCH錯誤校正方法。實體區段在健康表格200中的健康資料以位元00指示,舉例來說,如第2圖所示,以指示可使用的初始錯誤校正方法。
【0053】
最初,可以預期記憶體裝置130的記憶胞在有著最少量錯誤的層級執行。因此,舉例來說,一相對簡易的錯誤校正方法可足以校正最小數量的預期誤差,例如BCH方法。然而,經過一段時間的使用或因為其他原因,實體區段中的某些實體區段開始衰減,因此有更多數量的錯誤。舉例來說,在一實施例中,控制器120可確定某些實體區段的位元錯誤率已大於一特定臨界值。在這樣的確定下,可更新健康表格200中的健康資料以指出一更穩健的錯誤校正方法被使用於有著較高位元錯誤率的已識別實體區段。
【0054】
舉例來說,如第2圖所示之例B,對應於有增加位元錯誤率的實體區段,健康表格200中之健康資料以位元01被更新,指出用於那些實體區段的一較穩健的錯誤校正方法,例如LDPC。在這方法,一能夠校正較多錯誤的相對較穩健的錯誤校正方法可被用以延長記憶體陣列的衰減中的實體區段的使用。BCH及LDPC錯誤校正方法的實施僅是示例。由本揭露可以預期任何其他錯誤校正方法可被實施。
【0055】
於是,一單一錯誤校正方法可被使用於示例性實施例中。舉例來說,代替實施不同的方案,控制器120可用以執行相同或相似的錯誤校正,但能夠校正更大數目的錯誤。在一實施例中,一錯誤校正方法可被修改(modifiy)以產生更長的錯誤校正碼字,所以更大量的錯誤可被校正。由本揭露可以預期,當記憶體的某些實體區段在效能上衰減,任何其他潛在的修正或增強能夠偵測並校正較大量的位元錯誤。
【0056】
在一實施例中,錯誤校正碼字可基於被寫入記憶體陣列的目標實體區塊的資料(錯誤校正塊)的尺寸或長度被計算。因此,在一實施例中,基於期望的錯誤校正塊的尺寸或長度選擇記憶體陣列的各實體區段的尺寸或長度。在其他實施例中,錯誤校正塊對應於實體區段的尺寸或長度。於是,根據校正可偵測錯誤的預期數量的需要,錯誤校正碼字可被計算為具有期望的尺寸或長度。計算的錯誤校正碼字被儲存於記憶體裝置130的一指定的區段,或其他控制器120可存取的位置。
【0057】
在一實施例中,控制器120用以確定偵測的錯誤數量是否超過一預期的預定臨界值。在某些實施例中,可偵測的(且可校正的)錯誤的數量取決於特定錯誤校正方法及計算錯誤校正碼字的長度及其他因素。在一實施例中,根據實施的錯誤校正方法,預期臨界值係基於可偵測的或可校正的位元錯誤的數量被選擇。舉例來說,錯誤率的臨界值係基於可偵測的及/或校正的位元錯誤率而決定。在一實施例中,錯誤的臨界值可對應於可偵測的錯誤的數量的50%或75%。因此,對能夠在資料的給定錯誤校正塊中偵測48位元錯誤的錯誤校正方法,舉例來說,控制器120選擇等同24個錯誤或可偵測錯誤數量的一半為臨界值。若超過錯誤的臨界值,控制器120根據上述任何實施例更新健康表格200指出對應的實體區段正在衰減。
【0058】
如第5圖所示,根據以上實施例用以執行寫入操作的一示例性方法500。在揭露實施例中,控制器120可接收指示寫入操作的控制訊號,此寫入操作被執行在記憶體裝置130的目標區段。控制器120辨識用以寫入操作的實體區段(步驟510)。根據任何已知方法,控制器120識別合適的實體區段及對應於實體區段的位址。在一實施例中,實體區段或單元係對映至查找表(look-up table)的特定位址,此查找表可包括於健康表格200中,如第2圖的列206所示。一旦實體單元或實體單元的位置被確定,控制器120查找已識別的實體區段的健康資料(步驟520)。在一實施例中,控制器120存取健康表格200以查找對應的健康資料。如上所述,健康資料可包括對應於每記憶胞位元數量或錯誤校正方法或兩者組合的健康狀態之指示。
【0059】
控制器120根據由健康表格200存取的健康資料調適寫入操作。控制器120根據對應健康資料執行讀/寫操作(步驟540)。可根據任何上述方法調適讀/寫操作,或由本揭露可以預期的其他方法。舉例來說,在步驟540之操作中,控制器120可調適寫入方法以寫入每記憶胞位元的指定數量的位元,如同對應的健康資料所指示。作為步驟530之操作的一部分,相對於程式化方法,控制器120可確定對應於特定錯誤校正方法的健康表格200之健康資料。在一實施例中,控制器120可根據預先配置的程式化方法用於執行寫入操作。
【0060】
於是,在寫入操作後,控制器120產生錯誤校正碼字以在寫入的資料執行錯誤校正操作(步驟550)。在一實施例中,錯誤校正碼字根據預先配置的方法產生。如同本領域通常作法,錯誤校正碼字可儲存於記憶體陣列的任何指定區段。在另一實施例中,對應於實體區段的健康資料指定用以實施的特定錯誤校正方法。因此,作為步驟550之操作的部份,控制器120根據對應於寫入實體區段的健康資料執行錯誤校正編碼。如同上述討論,控制器120可與錯誤校正邏輯或其他執行錯誤校正操作的電路及元件一同被配置。步驟540、550之操作都可經由控制器120執行根據對應的健康資料的每個寫入操作。或者,在某些實施例中,根據對應的健康資料,僅有一個或其他操作可被執行。在那些實施例中,健康資料僅指示將寫入記憶胞的位元數量(如圖2所示之例A),控制器120仍可執行一錯誤校正編碼操作,但根據一特定實體區段的健康,健康錯誤校正方法可能不會改變。
【0061】
在上述討論的實施例中,健康表格200可被控制器120管理及更新。在某些實施例中,控制器120用以在程式化(例如寫入)操作時或程式化操作後更新健康表格200。在程式化操作後,例如步驟540之操作,為一或多個目標實體區段執行,控制器120可基於實體區段的已確定位元錯誤率用以更新健康表格200。舉例來說,在寫入步驟540之操作後,控制器120確定寫入實體區段的位元錯誤率(步驟560)。此位元錯誤率可根據任何已知方法決定,且包括步驟550之操作所產生的錯誤校正碼字的使用。基於所確定的實體區段的位元錯誤率,控制器120決定是否實體區段應被指為健康表格200中的已衰減區段。可基於位元錯誤率是否超過預定臨界值做出此確定。若控制器120確定實體區段係以衰減,控制器120相應地更新健康表格200中的對應的健康資料(步驟570)。
【0062】
在一實施例中,健康表格200的健康資料可根據預期的初始操作被預先填充。因此,初始錯誤校正方法根據記憶體裝置130的預期操作被預先確定。於是,一初始預期的程式化操作亦可被預先確定(例如每記憶胞有一、二、三或更多位元)。這些初始的配置可在健康表格200中被預先確定或控制器120可被初始化以根據預期操作執行。因此,在一實施例中,控制器120用以在第一寫入操作後更新健康表格200,或者控制器120在實體區段的每一初始操作後,填寫(populate)健康表格200。
【0063】
在一實施例中,在先前已程式化的實體區段執行讀取操作後(或同時),控制器120用於更新健康表格200。在一實施例中,控制器120用於存取健康表格200以基於健康資料確定適合的讀取操作。舉例來說,基於每記憶胞儲存的位元數量,控制器120可用於調適讀取操作。於是,基於儲存的錯誤校正碼字及健康表格200的健康資料指定的特定方法,控制器120可用於調適錯誤校正方法以校正讀取錯誤。基於對應於讀取資料的計算錯誤校正碼字,控制器120可決定是否在已讀取資料中的任何錯誤被偵測。在此實施例中,錯誤偵測係根據任何已知方法被執行,且根據實施的特定錯誤校正方法被規定。若控制器120確定偵測到的錯誤量高於預定臨界值,舉例來說,控制器120更新對應於實體區段的健康資料以指定區段為已衰減區段。
【0064】
在一實施例中,在衰減健康表格200的實體區段之前(或之後),控制器120用於重新定位儲存在衰減中的實體區段的資料至記憶體的另一區段。基於儲存在健康表格200的健康資料選擇此記憶體陣列的重新定位區段。在此方法中,健康表格200用作磨耗平均(wear-leveling)方法的一部分。因此,一旦識別衰減中的實體區段,控制器120執行磨耗平均方法,以重新定位儲存在衰減中的實體區段的資料至另一有著較好健康狀態的實體區段。舉例來說,控制器120可存取健康表格200,以辨識其他在健康表格200中尚未衰減或者有著較好健康狀態的實體區段。一旦重新定位儲存的資料至已辨識的「較強壯」的實體區塊,控制器120根據上述任何實施例更新健康表格200以指出已衰減的實體區段。舉例來說,實體區段可被衰退,這樣在下一個程式化操作,對應的健康資料指出每記憶胞較少位元可被寫入至對應實體區段的記憶胞。
【0065】
在另一實施例中,控制器120用以執行一無關於讀取或寫入操作的診斷程序,以識別效能正在衰減的實體區段。舉例來說,在一實施例中,控制器120用以執行一診斷操作,以識別位元錯誤數量超過預期臨界值的某些實體區段。根據任何已知方法執行此診斷操作。在一實施例中,作為診斷操作的一部分,控制器120用以根據單一預期狀態寫入實體區段的所有記憶胞,例如狀態6(如第4A圖和第4B圖所示)。在診斷的寫入操作後,控制器120用以從各已寫入的記憶胞讀取儲存的電荷,已識別錯誤數量。在此實施例中,因為引入衰減中記憶胞的加速的電荷狀態的可能性,對應於狀態6的電壓層級係一有利的診斷電壓層級,一個已移至狀態7,不會可能地造成鄰近記憶胞的錯誤。因此,在此實施例中,表示電荷狀態7的記憶胞的數量被識別,且控制器120確定是否此數量超過一錯誤率臨界值。若錯誤數未超過預定臨界值,根據上述任何實施例,控制器120用以更新健康表格200以指出衰減的實體區塊的健康狀態。
【0066】
從本發明揭露的說明書和實行的考慮,本揭露的其他實施例對本發明所屬技術領域中具有通常知識者是顯而易見的。本說明書和實施例僅視為示例性範例,本發明真正範圍和精神由以下請求項揭示。
500‧‧‧方法
510~570‧‧‧步驟

Claims (10)

  1. 【第1項】
    一種用於控制非揮發性記憶體程式化之裝置,該非揮發性記憶體包括一區塊,該區塊被分割成複數個實體區段,各該實體區段包括複數個記憶胞,該裝置包括: 一控制器,用以: 存取一表格,該表格包括對應於各該實體區段的一資訊; 根據該表格中對應於該些實體區段之一第一實體區段之該資訊,識別出該第一實體區段之一第一程式化方法,並根據該表格中對應於該些實體區段之一第二實體區段之該資訊,識別出該第二實體區段之一第二程式化方法;以及 分別根據該第一程式化方法及該第二程式化方法程式化該第一實體區段及該第二實體區段。
  2. 【第2項】
    如申請專利範圍第1項所述之裝置,其中該第一程式化方法係為程式化該第一實體區段之各該記憶胞之一第一資料之一編碼方法,且該第二程式化方法係為程式化該第二實體區段之各該記憶胞之一第二資料之另一編碼方法,該第二資料之位元數量少於該第一資料之位元數量, 其中該表格包括該些實體區段之各該記憶胞之一可寫入位元數。
  3. 【第3項】
    如申請專利範圍第1項所述之裝置,其中該控制器更用以在一個別實體區段程式化後,確定用於該個別實體區段的一位元錯誤率,當該位元錯誤率高於一預定臨界值,該控制器基於該表格,更用以識別該非揮發性記憶體中該些實體區段中具有一較好狀態之另一實體區段,且更新該表格中的該資訊以衰減該對應實體區段的一狀態,該資訊對應於該個別實體區段。
  4. 【第4項】
    如申請專利範圍第1項所述之裝置,其中,作為該第一程式化方法的一部分,該控制器使用一第一錯誤校正方法產生一錯誤校正碼字,且作為該第二程式化方法的一部分,該控制器使用一第二錯誤校正方法產生另一錯誤校正碼字,該第二錯誤校正方法相異於該第一錯誤校正方法。
  5. 【第5項】
    如申請專利範圍第1項所述之裝置,其中各該實體區段包括複數個邏輯頁面,且其中該第一程式化方法程式化該實體區段的各該邏輯頁面,且該第二程式化方法程式化該實體區段中較少數量的該些邏輯頁面, 其中該控制器用以程式化該些實體區段之一或多個,以包括該表格及該資訊。
  6. 【第6項】
    一種用於程式化非揮發性記憶體之方法,該非揮發性記憶體包括複數個區塊,各該區塊包括複數個實體區段,各該實體區段包括複數個記憶胞,該方法包括: 接收一控制訊號,以在該些實體區段之一或多個進行一程式化操作; 存取一表格,該表格包括對應於該些實體區段之一或多個的一資訊; 根據該表格中對應於一第一實體區段之一資訊,識別該第一實體區段之一第一程式化方法,並根據該表格中對應於一第二實體區段之另一資訊,識別該第二實體區段之一第二程式化方法;以及 分別根據該第一程式化方法及該第二程式化方法程式化該第一實體區段及該第二實體區段。
  7. 【第7項】
    如申請專利範圍第6項所述之方法,其中該第一程式化方法對應於為程式化該第一實體區段之各該記憶胞之一第一複數位元資料之一編碼方法,且該第二程式化方法對應於為程式化該第二實體區段之各該記憶胞之一第二複數位元資料之另一編碼方法,該第二複數位元資料之位元數量少於該第一複數位元資料之位元數量, 更包括提供該表格,該表格包括該些實體區段之各該記憶胞之一可寫入位元數。
  8. 【第8項】
    如申請專利範圍第6項所述之方法,更包括在一個別實體區段程式化後,確定用於該個別實體區段的一位元錯誤率,當該位元錯誤率高於一預定臨界值,基於該表格識別該非揮發性記憶體中該些實體區段中具有一較好狀態之另一實體區段,且重新定位該已程式化資訊至具有一較好狀態之該實體區段,且更新該表格中的該資訊以衰減該對應實體區段的一狀態,該資訊對應於該個別實體區段。
  9. 【第9項】
    如申請專利範圍第6項所述之方法,更包括,作為該第一程式化方法的一部分,使用一第一錯誤校正方法產生一錯誤校正碼字,且作為該第二程式化方法的一部分,使用一第二錯誤校正方法產生另一錯誤校正碼字,該第二錯誤校正方法相異於該第一錯誤校正方法。
  10. 【第10項】
    如申請專利範圍第6項所述之方法,其中各該實體區段包括複數個邏輯頁面,且其中該第一程式化方法包括程式化該實體區段的各該邏輯頁面,且該第二程式化方法包括程式化該實體區段中較少數量的該些邏輯頁面, 更包括程式化該些實體區段之一或多個,以包括該表格及該資訊。
TW104116910A 2014-09-24 2015-05-27 用於控制非揮發性記憶體程式化之裝置與方法 TWI542990B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201462054514P 2014-09-24 2014-09-24

Publications (2)

Publication Number Publication Date
TW201612751A TW201612751A (en) 2016-04-01
TWI542990B true TWI542990B (zh) 2016-07-21

Family

ID=55525831

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104116910A TWI542990B (zh) 2014-09-24 2015-05-27 用於控制非揮發性記憶體程式化之裝置與方法

Country Status (2)

Country Link
US (1) US9965345B2 (zh)
TW (1) TWI542990B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9082512B1 (en) * 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9846552B2 (en) * 2014-11-13 2017-12-19 Toshiba Memory Corporation Memory device and storage system having the same
US20160141029A1 (en) * 2014-11-19 2016-05-19 Sandisk Technologies Inc. Health data associated with a resistance-based memory
US9898215B2 (en) * 2015-12-07 2018-02-20 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes
TWI597730B (zh) * 2016-06-17 2017-09-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
US10229047B2 (en) * 2016-08-06 2019-03-12 Wolley Inc. Apparatus and method of wear leveling for storage class memory using cache filtering
US10514867B2 (en) * 2016-11-10 2019-12-24 Western Digital Technologies, Inc. System and methodology that facilitates error management within a shared non-volatile memory architecture
US10452468B2 (en) 2016-12-30 2019-10-22 Western Digital Technologies, Inc. Method and system for managing non-volatile memory
US10979223B2 (en) * 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10656847B2 (en) 2018-05-10 2020-05-19 International Business Machines Corporation Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation
US10891077B2 (en) * 2018-12-26 2021-01-12 Macronix International Co., Ltd. Flash memory device and controlling method thereof
US11775378B2 (en) * 2019-12-16 2023-10-03 Micron Technology, Inc. Memory health status reporting
US11042432B1 (en) 2019-12-20 2021-06-22 Western Digital Technologies, Inc. Data storage device with dynamic stripe length manager
US12057182B2 (en) * 2021-07-30 2024-08-06 Taiwan Semiconductor Manufacturing Company, Ltd. Multi-level cell data encoding

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409490B2 (en) 2006-04-15 2008-08-05 Yi-Chun Liu Method of flash memory management
US8327246B2 (en) * 2007-12-18 2012-12-04 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
CN101510168B (zh) 2008-11-07 2012-06-27 慧帝科技(深圳)有限公司 一种快闪记忆体的存取方法和记忆体装置
JP5349256B2 (ja) * 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
TWI436370B (zh) * 2010-09-17 2014-05-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法
TWI447731B (zh) * 2010-12-01 2014-08-01 Phison Electronics Corp 資料讀取方法、記憶體儲存裝置及其控制器
KR20120081351A (ko) 2011-01-11 2012-07-19 에스케이하이닉스 주식회사 Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US8825945B2 (en) * 2011-01-31 2014-09-02 Marvell World Trade Ltd. Mapping different portions of data to different pages of multi-level non-volatile memory
US8560922B2 (en) * 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
US8719660B2 (en) * 2011-12-20 2014-05-06 Sandisk Technologies Inc. Apparatus and methods for indicating the health of removable storage devices
KR20130087092A (ko) * 2012-01-27 2013-08-06 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
US8947941B2 (en) * 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
WO2013140817A1 (ja) * 2012-03-22 2013-09-26 京セラ株式会社 通信システム、通信装置及び通信制御方法
TWI594254B (zh) 2012-07-17 2017-08-01 慧榮科技股份有限公司 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置
US8910018B2 (en) 2012-07-17 2014-12-09 Macronix International Co., Ltd. Memory with dynamic error detection and correction
US9299459B2 (en) 2012-09-07 2016-03-29 Macronix International Co., Ltd. Method and apparatus of measuring error correction data for memory
US9009566B2 (en) 2012-09-12 2015-04-14 Macronix International Co., Ltd. Outputting information of ECC corrected bits
US8898549B2 (en) 2013-02-12 2014-11-25 Seagate Technology Llc Statistical adaptive error correction for a flash memory
US9088303B2 (en) 2013-02-28 2015-07-21 Micron Technology, Inc. Codewords that span pages of memory
US9280412B2 (en) 2013-03-12 2016-03-08 Macronix International Co., Ltd. Memory with error correction configured to prevent overcorrection
US8947961B2 (en) * 2013-03-12 2015-02-03 Macronix International Co., Ltd. Management of non-volatile memory
KR20140134497A (ko) * 2013-05-14 2014-11-24 삼성전자주식회사 메모리 시스템 및 그것의 캐시 관리 방법
CN108447516B (zh) * 2013-08-23 2020-04-24 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
US9483339B2 (en) * 2014-06-27 2016-11-01 Sandisk Technologies Llc Systems and methods for fast bit error rate estimation

Also Published As

Publication number Publication date
US9965345B2 (en) 2018-05-08
US20160085612A1 (en) 2016-03-24
TW201612751A (en) 2016-04-01

Similar Documents

Publication Publication Date Title
TWI542990B (zh) 用於控制非揮發性記憶體程式化之裝置與方法
JP6606039B2 (ja) メモリシステムおよび制御方法
KR102337160B1 (ko) 혼합 모드 블록들의 동작
US9158681B1 (en) Process and apparatus to reduce declared capacity of a storage device by conditionally trimming
CN114341824B (zh) 用于粗映射存储器子系统的取消映射
WO2016069192A1 (en) Tracking intermix of writes and un-map commands across power cycles
JP2022551344A (ja) 先行読み出しおよび読み出し閾値電圧の最適化
US11720286B2 (en) Extended cross-temperature handling in a memory sub-system
KR20210034677A (ko) 인-플레이스 데이터 대체 매체를 위한 하이브리드 웨어 레벨링
KR20220085804A (ko) 용도 블록을 위한 동적 오버 프로비저닝 할당
CN111858390A (zh) 存储器系统和操作存储器系统的方法
US11538547B2 (en) Systems and methods for read error recovery
US11693745B2 (en) Error-handling flows in memory devices based on bins
US11662911B2 (en) Memory system and operating method thereof
US9524112B2 (en) Process and apparatus to reduce declared capacity of a storage device by trimming
KR20220077041A (ko) 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법
US10248594B2 (en) Programming interruption management
CN106297881B (zh) 非挥发性存储器的健康管理
US11914510B2 (en) Layer interleaving in multi-layered memory
CN114258531A (zh) 非易失性存储器的多遍编程的粒度错误报告
KR20200070686A (ko) 저장 장치 및 그 동작 방법
KR20230160620A (ko) 메모리 시스템에서 데이터를 복구하는 장치 및 방법
CN112860182B (zh) 用于写回合并的位屏蔽有效扇区
US20220156144A1 (en) Memory system and operating method thereof
KR20230056333A (ko) 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법