TWI620059B - 非揮發性記憶體裝置及其讀取方法 - Google Patents

非揮發性記憶體裝置及其讀取方法 Download PDF

Info

Publication number
TWI620059B
TWI620059B TW105130409A TW105130409A TWI620059B TW I620059 B TWI620059 B TW I620059B TW 105130409 A TW105130409 A TW 105130409A TW 105130409 A TW105130409 A TW 105130409A TW I620059 B TWI620059 B TW I620059B
Authority
TW
Taiwan
Prior art keywords
volatile memory
codeword
read
index value
stored
Prior art date
Application number
TW105130409A
Other languages
English (en)
Other versions
TW201727485A (zh
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 威盛電子股份有限公司
Priority to CN201610912721.9A priority Critical patent/CN107017026B/zh
Publication of TW201727485A publication Critical patent/TW201727485A/zh
Application granted granted Critical
Publication of TWI620059B publication Critical patent/TWI620059B/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一種非揮發性記憶體裝置,其包括一非揮發性記憶體以及一控制器。控制器根據非揮發性記憶體所儲存的一讀取表格建立一標準表格以及至少一優先表格。控制器使用優先表格所儲存的索引值所對應的讀取電壓來讀取非揮發性記憶體所儲存的碼字再進行解碼,可得到一較高的解碼成功率。當控制器無法解碼非揮發性記憶體的碼字時,控制器使用標準表格裡的索引值所對應的讀取電壓來讀取相同碼字再進行解碼。

Description

非揮發性記憶體裝置及其讀取方法
本發明係有關於一種非揮發性記憶體裝置,特別是有關於一種記錄解碼碼字成功率較高的讀取電壓的非揮發性記憶體裝置及其讀取方法。
記憶體主要分為兩大類,一是揮發性記憶體(Volatile memory),另一是非揮發性記憶體(Non-Volatile memory)。揮發性記憶體的存取速度快,但在關機後,揮發性記憶體所儲存的資料將會全部遺失。相反地,即使關機,非揮發性記憶體仍可維持資料。然而,非揮發性記憶體所儲存的資料可能會因種種原因,如放置的時間太久而發生電荷流失(charge loss)、讀取干擾(read disturb)或是編程干擾(program disturb)等現象,因而若繼續以固定的讀取電壓讀取資料,則可能無法正確地讀取資料。
本發明提供一種非揮發性記憶體裝置,包括一非揮發性記憶體以及一控制器。非揮發性記憶體儲存複數資料以及一讀取表格。讀取表格記錄複數索引值。不同的索引值對應不同的讀取電壓。控制器依據讀取表格所儲存的索引值建立一 標準表格,並根據標準表格中之一第一索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的一第一碼字。控制器對第一碼字進行一錯誤檢查校正。當第一碼字通過一錯誤檢查校正時,控制器根據第一索引值建立一優先表格。
本發明另提供一種讀取方法,適用於一非揮發性記憶體裝置。非揮發性記憶體裝置包含一控制器以及一非揮發性記憶體。非揮發性記憶體用以儲存複數資料以及一讀取表格。本發明之讀取方法包括,依據讀取表格所儲存的複數個索引值建立一標準表格,不同的索引值對應不同的讀取電壓;根據標準表格中之一第一索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的第一碼字;對第一碼字進行一錯誤檢查校正;以及當第一碼字通過錯誤檢查校正時,根據第一索引值建立一優先表格。
本發明又提供一種非揮發性記憶體裝置,包括一非揮發性記憶體以及一控制器。控制器根據非揮發性記憶體所儲存的一讀取表格建立一標準表格以及至少一優先表格,控制器優先使用優先表格所儲存的索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的碼字再進行解碼,當控制器無法解碼時,控制器使用標準表格裡的索引值所對應的讀取電壓來讀取相同碼字再進行解碼。
為讓本發明之特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
100‧‧‧非揮發性記憶體裝置
110‧‧‧非揮發性記憶體
111‧‧‧讀取表格
120‧‧‧控制器
130‧‧‧微處理器
140‧‧‧記憶體
141、143、144‧‧‧優先表格
142‧‧‧標準表格
150‧‧‧錯誤檢查校正電路
S311~S318‧‧‧步驟
第1圖為本發明之非揮發性記憶體裝置的示意圖。
第2圖為本發明之讀取表格、標準表格與優先表格的示意圖。
第3圖為本發明之讀取方法之示意圖。
第1圖為本發明之非揮發性記憶體裝置的示意圖。如圖所示,非揮發性記憶體裝置100包括一非揮發性記憶體110以及一控制器120。在一可能實施例中,非揮發性記憶體110可為一反及閘快閃記憶體(NAND FLASH),但並非用以限制本發明。非揮發性記憶體110係由複數記憶胞(cell)所構成。本發明並不限定該等記憶胞的架構。在一可能實施例中,非揮發性記憶體110的記憶胞係為單層儲存單元(Single-Level Cell),用以儲存1位元的資料。在另一可能實施例中,非揮發性記憶體110的記憶胞係為多層儲存單元(Multi-Level Cell),用以儲存2位元的資料。在其它實施例中,非揮發性記憶體110的記憶胞係為三層儲存單元(Triple-Level Cell),用以儲存3位元的資料。
非揮發性記憶體110用以儲存複數資料以及一讀取表格111。在本實施例中,讀取表格111記錄複數索引值。每一索引值對應一讀取電壓。不同的索引值對應不同的讀取電壓。藉由該讀取電壓判斷非揮發性記憶體110的每一記憶胞所儲存的資料係為0或1。在一可能實施例中,讀取表格111係事先儲存在非揮發性記憶體110中。
控制器120用以存取非揮發性記憶體110。在本實施例中,控制器120依據該讀取表格111所儲存的該些索引值建 立一標準表格142,控制器120再根據該標準表格142中所儲存的索引值,使用相對應的讀取電壓讀取非揮發性記憶體110所儲存的資料。在另一可能實施例中,控制器120並不建立標準表格。在此例中,控制器120係直接根據讀取表格111所儲存的該些索引值,使用相對應的讀取電壓讀取非揮發性記憶體110所儲存的資料。如圖所示,控制器120包括一微處理器130、一記憶體140以及一錯誤檢查校正(Error Checking and Correcting)電路150。
微處理器130根據一外部裝置(未顯示)的一寫入指令(未顯示)將一寫入資料儲存至非揮發性記憶體110中,或是根據外部裝置所提供的一讀取指令(未顯示)讀取非揮發性記憶體110所儲存的資料。舉例而言,在一寫入模式下,微處理器130將一寫入資料送入錯誤檢查校正電路150,用以產生一錯誤校正碼(Error Correcting Code),並將寫入資料連同錯誤校正碼一起存入非揮發性記憶體110中。在一讀取模式下,微處理器130根據標準表格142所儲存的索引值,使用相對應的讀取電壓讀取非揮發性記憶體110所儲存的先前寫入資料以及對應的錯誤校正碼。在本實施例中,上述先前寫入資料以及對應的錯誤校正碼稱為一個碼字(codeword)。
在一可能實施例中,微處理器130擷取讀取表格111所儲存的索引值,並將擷取結果存入標準表格142。本發明並不限定微處理器130如何擷取讀取表格111所儲存的索引值。微處理器130可能依序或是隨機擷取讀取表格111所儲存的索引值,並將擷取結果依序或是隨機存入標準表格142中。微 處理器130再根據記憶體140所儲存的標準表格142所記錄的一第一索引值所對應的讀取電壓,讀取非揮發性記憶體110的一第一位址的一第一碼字,並將該第一碼字中的錯誤校正碼送入錯誤檢查校正電路150。
錯誤檢查校正電路150根據該第一碼字中的錯誤檢查碼,判斷該第一碼字中的先前寫入資料中的錯誤位元的數量是否超過一容忍值。當該第一碼字中的先前寫入資料中的錯誤位元的數量超過該容忍值時,該第一碼字將無法通過錯誤檢查校正(亦稱作解碼失敗)。因此,微處理器130根據標準表格142裡的一第二索引值所對應的讀取電壓,重新讀取該第一碼字,並判斷該第一碼字是否可通過錯誤檢查校正。若該第一碼字仍無法通過錯誤檢查校正時,微處理器130再根據標準表格142裡的一第三索引值所對應的讀取電壓讀取該第一碼字,並判斷該第一碼字是否可通過錯誤檢查校正。如果該第一碼字可通過錯誤檢查校正,表示該第一碼字中的先前寫入資料中的錯誤位元能夠被錯誤檢查校正電路150修正為正確(亦稱作解碼成功)。由於錯誤檢查校正電路150成功解碼該第一碼字,則微處理器130將第三索引值(一特定索引值)存入一優先表格141中,並在下一次的讀取操作下,先使用優先表格141所儲存的第三索引值所對應的讀取電壓。
在微處理器130建立優先表格141後,當需要進行一讀取操作時,微處理器130會根據優先表格141所記錄的最新索引值(例如第三索引值)所對應的讀取電壓讀取非揮發性記憶體110的一第二位址的第二碼字,並對該第二碼字進行錯誤檢 查校正。錯誤檢查校正電路150根據該第二碼字中的錯誤檢查碼,判斷該第二碼字中的先前寫入資料中的錯誤位元的數量是否超過一容忍值。當該第二碼字中的先前寫入資料中的錯誤位元的數量超過該容忍值時,該第二碼字將無法通過錯誤檢查校正。因此,微處理器130根據優先表格141所記錄的另一索引值所對應的讀取電壓再次讀取第二碼字,並判斷第二碼字是否可通過錯誤檢查校正。如果第二碼字仍無法通過錯誤檢查校正,並且優先表格141所記錄的索引值全被微處理器130使用過時,則微處理器130改從標準表格142中,再次選擇該第一索引值,並根據該第一索引值所對應的讀取電壓再次讀取第二碼字,並進行錯誤檢查校正。如果第二碼字仍無法通過錯誤檢查校正,則繼續從標準表格142中,選擇該第二索引值,並根據該第二索引值所對應的讀取電壓再次讀取第二碼字,並進行錯誤檢查校正。如果第二碼字仍無法通過錯誤檢查校正,則繼續從標準表格142中,選擇一第四索引值(未出現在優先表格141中),並根據該第四索引值所對應的讀取電壓再次讀取第二碼字,並進行錯誤檢查校正。如果第二碼字仍無法通過錯誤檢查校正,則繼續從標準表格142中,選擇一第五索引值(未出現在優先表格141中),並根據第五索引值所對應的讀取電壓讀取第二碼字。如果第二碼字可通過錯誤檢查校正,則微處理器130將第五索引值(一特定索引值)存入優先表格141中,在下次的讀取操作時,微處理器130優先讀取最新存入優先表格141的索引值(例如第五索引值)。
由於使用優先表格141所儲存的索引值所對應的 讀取電壓讀取的碼字有較高的機率可以解碼成功,因此,如果微處理器130根據優先表格141所儲存的索引值所對應的讀取電壓進行碼字讀取時,則可減少碼字解碼失敗的機率,進而提高碼字解碼成功率。
在一可能實施例中,如果優先表格141所記錄的索引值的數量大於一預設數量時,則最先存入優先表格141的索引值會被移除。在本實施例中,優先表格141所記錄的索引值並不會出現在標準表格142中,以避免微處理器130重覆使用某一索引值。在其它實施例中,當微處理器130將標準表格142所記錄的某一索引值存入優先表格141後,微處理器130遮罩或是移除標準表格142裡相對應的索引值。在此例中,當優先表格141裡的某一索引值被移除後,微處理器130將該索引值寫回標準表格142中,或是取消標準表格142裡被遮罩的索引值。
在本實施例中,控制器120的記憶體140用以儲存優先表格141以及標準表格142,但並非用以限制本發明。在其它實施例中,優先表格141與標準表格142可能分別儲存在兩獨立的記憶體中,或是優先表格141與標準表格142之至少一者係儲存於非揮發性記憶體110中。在一可能實施例中,記憶體140係為一揮發性記憶體,如SRAM或是DRAM,然不限於此。在每次關機時,記憶體140所儲存的資料會被清空。在每次開機後,微處理器130重新建立標準表格142。此外,微處理器130一邊進行讀取操作,一邊建立優先表格141,用以將解碼成功機率較高的索引值存入優先表格141。
舉例而言,在一開機時,微處理器130複製讀取表 格111所記錄的所有索引值,用以產生標準表格142。在一可能實施例中,讀取表格111所記錄的索引值的排列順序相同或不同於標準表格142所記錄的索引值的排列順序。另外,微處理器130可能依序或是隨機讀取標準表格142所記錄的索引值。
第2圖為本發明之讀取表格111、標準表格142與優先表格141的示意圖。如圖所示,讀取表格111具有N個索引值,其中N>0。不同的索引值對應不同的讀取電壓。在其它實施例中,讀取表格111係直接記錄不同的讀取電壓。在一實施例中,標準表格142與優先表格141是直接記錄讀取電壓。
在本實施例中,微處理器130根據讀取表格111所記錄的索引值建立標準表格142。如圖所示,標準表格142所記錄的索引值的排列順序相同於讀取表格111所記錄的索引值的排列順序,但並非用以限制本發明。
在讀取操作下,控制器120根據標準表格142所記錄的索引值0~N所對應的讀取電壓,讀取非揮發性記憶體110儲存的碼字,並判斷該碼字是否可通過錯誤檢查校正。如果可通過錯誤檢查校正,則將該索引值寫入優先表格141中。舉例而言,在一第一讀取期間,控制器120根據標準表格142的第一索引值0所對應的讀取電壓讀取非揮發性記憶體110所儲存的一第一碼字,並進行一錯誤檢查校正。
如果第一碼字未通過錯誤檢查校正,則控制器120根據標準表格142中之第二索引值1所對應的讀取電壓讀取第一碼字,並進行錯誤檢查校正。當第一碼字通過錯誤檢查校正時,控制器120根據第二索引值1建立一優先表格141。在此例 中,控制器120將第二索引值1存入優先表格141中。由於標準表格142的第二索引值1已存入優先表格141中,故控制器120遮罩或是移除標準表格142裡的第二索引值1,用以避免控制器120回到標準表格142時,再度讀取到第二索引值1。
如果控制器120又接收到一讀取指令時,控制器120根據優先表格141所儲存的第二索引值1所對應的讀取電壓讀取儲存於非揮發性記憶體110的第二碼字,並進行錯誤檢查校正。如果第二碼字無法通過錯誤檢查校正並且優先表格141裡已無其它未使用過索引值時,則控制器120回到標準表格142中選擇另一索引值。由於標準表格142裡的第二索引值1已被移除或遮罩,因此,控制器120根據標準表格142中之第二索引值1以外的一特定索引值(如0)所對應的讀取電壓讀取第二碼字,並進行錯誤檢查校正。如果第二碼字通過錯誤檢查校正時,控制器120將特定索引值0存入優先表格141中。在下一次的讀取操作時,控制器120根據優先表格141最新的索引值(例如索引值0)所對應的讀取電壓來讀取非揮發性記憶體110。
在本實施例中,當優先表格141所記錄的索引值的數量大於一預設數量(例如預設數量為3)時,控制器120移除優先表格141裡最早存入的索引值(即第二索引值1),並取消遮罩標準表格142裡的第二索引值1或是將第二索引值1寫入標準表格142中。在其它實施例中,優先表格141可儲存其它數量的索引值。在一可能實施例中,優先表格141係根據先進先出(FIFO)方式儲存索引值。
另外,本發明並不限定優先表格的數量。在一可 能實施例中,控制器120建立複數優先表格141、143、144。優先表格141、143、144所記錄的索引值可能各不相同。控制器120在不同的非揮發性記憶體管理之操作下,使用不同的優先表格。舉例而言,控制器120可能在進行資料保持(data retention)之讀取操作時,建立優先表格141。因此,當控制器120再次進行資料保持之讀取操作時,控制器120使用優先表格141所記錄的索引值所對應的讀取電壓讀取非揮發性記憶體110。在另一可能實施例中,控制器120在克服讀取干擾(read disturb)之讀取操作時,建立優先表格143。因此,當控制器120再次進行克服讀取干擾之讀取操作時,控制器120使用優先表格143所記錄的索引值所對應的讀取電壓讀取非揮發性記憶體110。在其它實施例中,控制器120可能在克服編程干擾(program disturb)之讀取操作時,建立優先表格144。在此例中,當控制器120再次進行克服編程干擾之讀取操作時,控制器120使用優先表格144所記錄的索引值所對應的讀取電壓讀取非揮發性記憶體110。
本發明不限定非揮發性記憶體110所儲存的讀取表格的數量。當非揮發性記憶體110的記憶胞係屬於SLC架構時,則只需單一讀取表格。然而,當非揮發性記憶體110的記憶胞係屬於MLC架構時,可能需要兩個讀取表格。因此,讀取表格的數量係根據非揮發性記憶體110的架構所決定。在一實施例中,非揮發性記憶體110的製造商在完成非揮發性記憶體110後,便將相對應的讀取表格寫入非揮發性記憶體110中。在另一實施例中,晶片製造商可將讀取表格或是標準表格預先建置並以韌體形式存放於控制器中。
第3圖為本發明之讀取方法之示意圖。本發明的讀取方法適用於一非揮發性記憶體裝置。上述非揮發性記憶體裝置包含一控制器以及一非揮發性記憶體,其中上述非揮發性記憶體用以預先儲存複數資料以及一讀取表格。上述控制器讀取非揮發性記憶體的讀取表格。該讀取表格可能是非揮發性記憶體裝置的製造商事先存入,然不限於此。讀取表格記錄複數索引值。每一索引值具有一相對應的讀取電壓。不同索引值對應不同的讀取電壓。在其它實施例中,讀取表格係直接記錄複數讀取電壓。
首先,依據讀取表格所儲存的複數個索引值建立一標準表格(步驟S310)。在一實施例中,由控制器擷取讀取表格的索引值,並將擷取結果存入標準表格。因此上述標準表格亦記錄讀取表格所儲存的索引值。另外,在一些實施例中,讀取表格所記錄的索引值的排列順序可能相同或不同於標準表格所記錄的索引值的排列順序。
接著,根據標準表格中之一第一索引值所對應的讀取電壓讀取非揮發性記憶體所儲存之一第一碼字(步驟S311)。在一可能實施例中,標準表格係儲存在一揮發性記憶體或是與讀取表格共同儲存在非揮發性記憶體中。
接著,判斷第一碼字是否可通過一錯誤檢查校正(步驟S312)。當第一碼字無法通過錯誤檢查校正時,表示讀取電壓可能不適合,因此,回到步驟S311,讀取標準表格中之一第二索引值所對應的讀取電壓再次讀取非揮發性記憶體所儲存的第一碼字,並進行錯誤檢查校正(步驟S312)。
當第一碼字可通過錯誤檢查校正時,則根據第二索引值建立一優先表格(步驟S313)。在一實施例中,第二索引值被存入至優先表格。優先表格可能被儲存在一揮發性記憶體或是與讀取表格共同儲存在非揮發性記憶體中。由於第二索引值已存入優先表格中,因此,進行遮罩或是移除標準表格裡的第二索引值(步驟S314)。步驟S314的目的是為了避免不合適的索引值被重複使用。在其它實施例中,也可省略步驟S314。
接著,如果控制器接收到一讀取指令時,則根據優先表格所記錄之最新索引值(如第二索引值)所對應的讀取電壓讀取非揮發性記憶體中之一第二碼字(步驟S315)。
然後,對第二碼字進行錯誤檢查校正(步驟S316)。當第二碼字未通過錯誤檢查校正時,判斷優先表格裡的所有索引值是否全被使用過(步驟S317)。在此例中,由於優先表格僅記錄單一索引值(即第二索引值),因此,回到步驟S311,改為依據標準表格之其它索引值所對應的讀取電壓讀取第二碼字。
由於標準表格裡的第二索引值已被遮罩或是移除,因此,在一可能實施例中,步驟S311改從標準表格中,再次選擇該第一索引值,並根據該第一索引值所對應的讀取電壓再次讀取第二碼字,並進行錯誤檢查校正(步驟S312)。如果第二碼字仍無法通過錯誤檢查校正,則繼續從標準表格中,選擇一第三索引值所對應的讀取電壓讀取第二碼字(步驟S311)。步驟S312判斷第二碼字是否可通過錯誤檢查校正。當第二碼字通過錯誤檢查校正時,步驟S313將該第三索引值記錄至優先表格中。此時,優先表格具有兩索引值(即第二索引值以及第三索 引值)。
接著,遮罩或移除標準表格裡的第三索引值(步驟S314)。在下一次的讀取操作下,先根據優先表格裡最新存入的索引值(即第三索引值)所對應的讀取電壓讀取非揮發性記憶體(步驟S315),並進行錯誤檢查校正(步驟S316)。若錯誤檢查校正失敗,則判斷優先表格裡的所有索引值是否全被使用過(步驟S317)。若否,則改選擇優先表格裡另一索引值(如第二索引值)(步驟S318),並回到步驟S315繼續讀取第二碼字,並進行錯誤檢查校正(步驟S316)。若優先表格裡的所有索引值全被使用過,則回到步驟S311,在標準表格中重新選擇另一索引值(例如第一索引值、一第四索引值),繼續執行步驟S312、S313,並將適合的索引值存入優先表格中。
本發明並不限定優先表格所記錄的索引值的數量。在一可能實施例中,當優先表格所記錄的索引值的數量大於一預設數量時,移除優先表格所記錄的最舊的索引值(如第二索引值),並取消遮罩標準表格裡的第二索引值或是將第二索引值寫入標準表格中。
在步驟S316中,如果目前碼字可通過錯誤檢查校正,則回到步驟S315,繼續以最新存入的索引值所對應的讀取電壓讀取其他碼字。由於碼字的讀取係優先使用優先表格中解碼成功機率較高的讀取電壓,因此,當控制器藉由優先表格所儲存的索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的碼字時,可得到一較高的解碼成功率,因而減少重新讀取跟解碼碼字的時間並增加讀取速度。另外,在其它實施例中,可 根據不同的非揮發性記憶體之讀取操作,如資料保持之讀取操作、克服讀取干擾之讀取操作、或是克服編程干擾之讀取操作,建立並使用不同的優先表格,用以提高碼字解碼成功的機率。
在本發明之一實施例中,控制器根據非揮發性記憶體所儲存的一讀取表格建立一標準表格以及至少一優先表格,控制器優先使用優先表格所儲存的索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的碼字再進行解碼,當控制器無法解碼時,控制器使用標準表格裡的索引值所對應的讀取電壓來讀取相同碼字再進行解碼。
在本發明之一實施例中,控制器以優先表格中所儲存的索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的碼字之解碼成功率高於以標準表格中所儲存的索引值所對應的讀取電壓讀取非揮發性記憶體所儲存的碼字之解碼成功率。
除非另作定義,在此所有詞彙(包含技術與科學詞彙)均屬本發明所屬技術領域中具有通常知識者之一般理解。此外,除非明白表示,詞彙於一般字典中之定義應解釋為與其相關技術領域之文章中意義一致,而不應解釋為理想狀態或過分正式之語態。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (24)

  1. 一種非揮發性記憶體裝置,包括:一非揮發性記憶體,儲存複數資料以及一讀取表格,該讀取表格記錄複數索引值,不同的索引值對應不同的讀取電壓;以及一控制器,依據該讀取表格所儲存的該些索引值建立一標準表格,以及根據該標準表格中之一第一索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的一第一碼字,並對該第一碼字進行一錯誤檢查校正,當該第一碼字通過該錯誤檢查校正時,該控制器根據該第一索引值建立一優先表格,其中在下次進行讀取操作時,該控制器根據該優先表格中之該第一索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的一第二碼字,並對該第二碼字進行該錯誤檢查校正。
  2. 如申請專利範圍第1項所述之非揮發性記憶體裝置,當該第一碼字未通過該錯誤檢查校正時,該控制器根據該標準表格中之一第二索引值所對應的讀取電壓讀取該第一碼字,並對該第一碼字進行該錯誤檢查校正。
  3. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中該控制器擷取該讀取表格的該等索引值,用以存入該標準表格,該標準表格記錄該等索引值。
  4. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中當該第一碼字通過該錯誤檢查校正時,該控制器遮罩或是移除該標準表格裡的該第一索引值。
  5. 如申請專利範圍第4項所述之非揮發性記憶體裝置,其中當該優先表格所記錄的索引值的數量大於一預設數量時,該控制器移除該優先表格裡的最先存入的一索引值,並取消遮罩該標準表格裡對應的該索引值或是將該索引值寫入該標準表格中。
  6. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中當該第二碼字未通過該錯誤檢查校正時,該控制器根據該優先表格中的其他索引值所對應的讀取電壓讀取該第二碼字。
  7. 如申請專利範圍第6項所述之非揮發性記憶體裝置,其中當該控制器無法根據該優先表格中的所有索引值所對應的讀取電壓解碼該第二碼字時,則該控制器根據該標準表格中之一特定索引值所對應的讀取電壓讀取該第二碼字。
  8. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中該控制器建立複數優先表格,該控制器在不同非揮發性記憶體管理的操作下,使用不同的優先表格。
  9. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中該標準表格的該等索引值的排列順序相同於該讀取表格的該等索引值的排列順序。
  10. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中該控制器更包括一揮發性記憶體,該揮發性記憶體儲存該優先表格以及該標準表格。
  11. 如申請專利範圍第1項所述之非揮發性記憶體裝置,其中該控制器以該優先表格中所儲存的索引值所對應的讀取電壓 讀取該非揮發性記憶體所儲存的碼字之解碼成功率高於以該標準表格中所儲存的索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的碼字之解碼成功率。
  12. 一種讀取方法,適用於一非揮發性記憶體裝置,該非揮發性記憶體裝置包含一控制器以及一非揮發性記憶體,其中該非揮發性記憶體用以儲存複數資料以及一讀取表格,該讀取方法包括:依據該讀取表格所儲存的複數個索引值建立一標準表格,不同的索引值對應不同的讀取電壓;根據該標準表格中之一第一索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的一第一碼字;對該第一碼字進行一錯誤檢查校正;以及當該第一碼字通過該錯誤檢查校正時,根據該第一索引值建立一優先表格,其中在下次進行讀取操作時,根據該優先表格中之該第一索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的一第二碼字,並對該第二碼字進行該錯誤檢查校正。
  13. 如申請專利範圍第12項所述之讀取方法,其中當該第一碼字未通過該錯誤檢查校正時,根據該標準表格中之一第二索引值所對應的讀取電壓讀取該第一碼字,並對該第一碼字進行該錯誤檢查校正。
  14. 如申請專利範圍第12項所述之讀取方法,其中依據該讀取表格所儲存的該等索引值建立該標準表格的步驟包括:擷取該讀取表格的該等索引值,用以存入該標準表格,其 中該標準表格記錄該等索引值。
  15. 如申請專利範圍第12項所述之讀取方法,更包括:當該第一碼字通過該錯誤檢查校正時,遮罩或是移除該標準表格裡的該第一索引值。
  16. 如申請專利範圍第15項所述之讀取方法,更包括:當該優先表格所記錄的索引值的數量大於一預設數量時,移除該優先表格裡的最先存入的一索引值,並取消遮罩該標準表格裡對應的該索引值或是將該索引值寫入該標準表格中。
  17. 如申請專利範圍第12項所述之讀取方法,更包括:當該第二碼字未通過該錯誤檢查校正時,根據該優先表格中的其他索引值所對應的讀取電壓讀取該第二碼字。
  18. 如申請專利範圍第17項所述之讀取方法,更包括:當無法根據該優先表格中的所有索引值所對應的讀取電壓解碼該第二碼字時,根據該標準表格中之一特定索引值所對應的讀取電壓讀取該第二碼字。
  19. 如申請專利範圍第12項所述之讀取方法,更包括:建立複數優先表格,其中在不同非揮發性記憶體管理的操作下,使用不同的優先表格。
  20. 如申請專利範圍第12項所述之讀取方法,其中該標準表格的該等索引值的排列順序相同於該讀取表格的該等索引值的排列順序。
  21. 如申請專利範圍第12項所述之讀取方法,更包括:將該優先表格以及該標準表格儲存在一揮發性記憶體中。
  22. 如申請專利範圍第12項所述之讀取方法,其中根據該優先表格所儲存的索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的碼字之解碼成功率高於根據該標準表格中所儲存的索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的碼字之解碼成功率。
  23. 一種非揮發性記憶體裝置,包括:一非揮發性記憶體;以及一控制器,根據該非揮發性記憶體所儲存的一讀取表格建立一標準表格以及至少一優先表格,該控制器優先使用該優先表格所儲存的索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的碼字再進行解碼,當該控制器無法解碼時,該控制器使用該標準表格裡的索引值所對應的讀取電壓來讀取相同碼字再進行解碼。
  24. 如申請專利範圍第23項所述之非揮發性記憶體裝置,其中該控制器根據該優先表格所儲存的索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的碼字之解碼成功率高於根據該標準表格中所儲存的索引值所對應的讀取電壓讀取該非揮發性記憶體所儲存的碼字之解碼成功率。
TW105130409A 2015-10-28 2016-09-21 非揮發性記憶體裝置及其讀取方法 TWI620059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610912721.9A CN107017026B (zh) 2015-10-28 2016-10-20 非易失性存储器装置及其读取方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562247201P 2015-10-28 2015-10-28
US62/247,201 2015-10-28
US15/243,323 2016-08-22
US15/243,323 US10049007B2 (en) 2015-10-28 2016-08-22 Non-volatile memory device and read method thereof

Publications (2)

Publication Number Publication Date
TW201727485A TW201727485A (zh) 2017-08-01
TWI620059B true TWI620059B (zh) 2018-04-01

Family

ID=58634702

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105130409A TWI620059B (zh) 2015-10-28 2016-09-21 非揮發性記憶體裝置及其讀取方法

Country Status (2)

Country Link
US (1) US10049007B2 (zh)
TW (1) TWI620059B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679202A (zh) * 2017-09-30 2018-02-09 北京银通易汇科技有限公司 一种设置倒排索引的方法及装置
US10658066B2 (en) 2018-09-05 2020-05-19 Micron Technology, Inc. First-pass continuous read level calibration
US10629278B2 (en) 2018-09-05 2020-04-21 Micron Technology, Inc. First-pass dynamic program targeting (DPT)
US11119848B2 (en) * 2019-07-10 2021-09-14 Micron Technology, Inc. Logic based read sample offset in a memory sub system
CN111863097B (zh) * 2020-06-29 2022-06-17 联芸科技(杭州)有限公司 快闪存储器的读取控制方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201230054A (en) * 2010-10-01 2012-07-16 Sandisk Technologies Inc System and method of data encoding
US20120317365A1 (en) * 2011-06-07 2012-12-13 Sandisk Technologies Inc. System and method to buffer data
TW201314449A (zh) * 2011-07-22 2013-04-01 Sandisk Technologies Inc 儲存資料之系統及方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2428496A (en) * 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
US8427875B2 (en) * 2010-12-07 2013-04-23 Silicon Motion Inc. Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US9268646B1 (en) * 2010-12-21 2016-02-23 Western Digital Technologies, Inc. System and method for optimized management of operation data in a solid-state memory
US8681569B2 (en) * 2012-02-22 2014-03-25 Silicon Motion, Inc. Method for reading data stored in a flash memory according to a threshold voltage distribution and memory controller and system thereof
US9454414B2 (en) * 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9109881B2 (en) * 2013-06-17 2015-08-18 Corning Incorporated Prism coupling methods with improved mode spectrum contrast for double ion-exchanged glass
WO2015047228A1 (en) * 2013-09-24 2015-04-02 Intel Corporation Use of error correction pointers to handle errors in memory
TWI492234B (zh) * 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統
US9257186B2 (en) * 2014-05-08 2016-02-09 Sandisk Technologies Inc. Memory access techniques for a memory having a three-dimensional memory configuration
US9836239B2 (en) * 2015-03-27 2017-12-05 Panasonic Intellectual Property Management Co., Ltd. Recording device and information processing device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201230054A (en) * 2010-10-01 2012-07-16 Sandisk Technologies Inc System and method of data encoding
US20120317365A1 (en) * 2011-06-07 2012-12-13 Sandisk Technologies Inc. System and method to buffer data
TW201314449A (zh) * 2011-07-22 2013-04-01 Sandisk Technologies Inc 儲存資料之系統及方法

Also Published As

Publication number Publication date
TW201727485A (zh) 2017-08-01
US10049007B2 (en) 2018-08-14
US20170123905A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
TWI620059B (zh) 非揮發性記憶體裝置及其讀取方法
US10061512B2 (en) Data storage device and data writing method thereof
US20150169403A1 (en) Data storage device and data maintenance method thereof
US8051339B2 (en) Data preserving method and data accessing method for non-volatile memory
US9378810B2 (en) Systems and methods for last written page handling in a memory device
JP6164712B1 (ja) フラッシュメモリ
US9348692B2 (en) Flash memory apparatus, memory controller and method for controlling flash memory
US10157099B2 (en) Data storage device and data maintenance method thereof
JP2012137994A (ja) メモリシステムおよびその制御方法
US20170103815A1 (en) Data Storage Device and Data Maintenance Method
US20160283319A1 (en) Data storage device and encoding method thereof
US10185662B2 (en) Methods for reprogramming data and apparatuses using the same
CN103136108A (zh) 快闪存储装置及其数据读取方法
US10340025B2 (en) Data-storage device and block-releasing method
US20120250410A1 (en) Semiconductor integrated circuit and data read method
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
US20170192846A1 (en) Error correction for non-volatile memory
CN107017026B (zh) 非易失性存储器装置及其读取方法
US20110238889A1 (en) Semiconductor memory device from which data can be read at low power
US10318416B2 (en) Method and system for implementing a non-volatile counter using non-volatile memory
US10297304B1 (en) Memory device and operating method thereof
US20160225460A1 (en) Data Storage Device and Data Refresh Method Thereof
US9778867B2 (en) Data maintenance method for error correction and data storage device using the same
US9104596B2 (en) Memory system
US20200168265A1 (en) Control method for memory and non-transitory computer-readable media