TWI606451B - 非揮發性記憶裝置及其控制方法 - Google Patents

非揮發性記憶裝置及其控制方法 Download PDF

Info

Publication number
TWI606451B
TWI606451B TW105130410A TW105130410A TWI606451B TW I606451 B TWI606451 B TW I606451B TW 105130410 A TW105130410 A TW 105130410A TW 105130410 A TW105130410 A TW 105130410A TW I606451 B TWI606451 B TW I606451B
Authority
TW
Taiwan
Prior art keywords
block
blocks
filled
volatile memory
read operation
Prior art date
Application number
TW105130410A
Other languages
English (en)
Other versions
TW201719674A (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 CN201610912708.3A priority Critical patent/CN107015915B/zh
Publication of TW201719674A publication Critical patent/TW201719674A/zh
Application granted granted Critical
Publication of TWI606451B publication Critical patent/TWI606451B/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/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/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/0727Error 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 storage system, e.g. in a DASD or network based storage system
    • 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
    • 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/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

非揮發性記憶裝置及其控制方法
本發明係有關於一種非揮發性記憶裝置,特別是有關於一種對部分已寫滿的區塊(closed block)進行循讀操作(patrol read)的非揮發性記憶裝置。
記憶體主要分為兩大類,一是揮發性記憶體(Volatile memory),另一是非揮發性記憶體(Non-Volatile memory)。揮發性記憶體的存取速度快,但在關機後,揮發性記憶體所儲存的資料將會全部遺失。相反地,即使關機,非揮發性記憶體仍可維持資料。然而,非揮發性記憶體裡的資料可能會因放置的時間太久而發生電荷流失(charge loss),因而無法從非揮發性記憶體中讀出正確的資料。
本發明提供一種非揮發性記憶裝置,包括一非揮發性記憶體以及一控制器。非揮發性記憶體具有複數已寫滿區塊以及複數未寫滿區塊。控制器根據非揮發性記憶體在一第一時間點與一第二時間點之間的一寫入工作量(write workload),計算出一比例值,再根據該比例值對已寫滿區塊中之一部分區塊進行一循讀操作(patrol read)。
本發明另提供一種控制方法,適用於一非揮發性記憶體。非揮發性記憶體具有複數已寫滿區塊以及複數未寫滿區塊。本發明之控制方法包括,根據該非揮發性記憶體在一第一時間點以及一第二時間點之間的一寫入工作量,計算一比例值;以及根據該比例值對該等已寫滿區塊之一部分區塊進行一循讀操作。
為讓本發明之特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
100‧‧‧控制系統
110‧‧‧主機裝置
120‧‧‧非揮發性記憶裝置
121‧‧‧控制器
122‧‧‧非揮發性記憶體
BK0~BL100‧‧‧區塊
S311~S312、S411~S414‧‧‧步驟
第1圖為本發明之控制系統的示意圖。
第2A及2B圖為本發明之已寫滿區塊的示意圖。
第3及4圖為本發明之控制方法的流程示意圖。
第1圖為本發明之控制系統的示意圖。如圖所示,控制系統100包括一主機裝置(host)110以及一非揮發性記憶裝置120。主機裝置110寫入資料至非揮發性記憶裝置120中或是讀取非揮發性記憶裝置120所儲存的資料。本發明並不限定非揮發性記憶裝置120的種類。在一可能實施例中,非揮發性記憶裝置120為一嵌入式多媒體卡(Embedded MultiMediaCard;eMMC),然不限於此。
非揮發性記憶裝置120包括一控制器121以及一非揮發性記憶體122。控制器121用以寫入資料至非揮發性記憶體122或是讀取非揮發性記憶體122所儲存的資料。控制器121可 能根據主機裝置110所發出的寫入指令,寫入資料至非揮發性記憶體122。在另一可能實施例中,控制器121係根據本身所儲存的一程式碼,存取非揮發性記憶體122所儲存的資料。舉例而言,控制器121可能根據該程式碼執行一垃圾回收操作(garbage collection),用以丟棄非揮發性記憶體122裡的無效資料,並搬移非揮發性記憶體122裡的有效資料。
在一可能實施例中,非揮發性記憶體122係為一反及閘快閃記憶體(NAND flash),但並非用以限制本發明。在其它實施例中,非揮發性記憶體122可能是其它種類的記憶體。一般而言,非揮發性記憶體122具有複數區塊。該等區塊又分為複數已寫滿區塊(closed blocks)以及複數未寫滿區塊(open blocks)。對於已寫滿區塊而言,控制器121無法再寫入資料至已寫滿區塊中。然而,控制器121可再繼續寫入資料至一未寫滿區塊,直到該未寫滿區塊被寫滿。
由於非揮發性記憶體122所儲存的資料可能會因放置的時間太久而發生電荷流失(charge loss),因而發生資料保存問題(data retention problem)。由於控制器121可能無法從非揮發性記憶體122中讀出正確的資料,因此,在非揮發性記憶體裝置120一上電後,控制器121會先對所有已寫滿區塊執行一循讀操作(patrol read),用以檢查所有已寫滿區塊的資料錯誤率。
當一已寫滿區塊中的資料錯誤率高過一容忍值時,控制器121對該已寫滿區塊執行一垃圾回收操作。在垃圾回收操作下,控制器121將該已寫滿區塊的有效資料搬移到至少一 未寫滿區塊中,並丟棄該已寫滿區塊的無效資料,再抹除該已寫滿區塊的資料。在另一可能實施例中,當一已寫滿區塊中的資料錯誤率高過一容忍值時,控制器121對該已寫滿區塊進行一資料搬移操作。在資料搬移操作下,控制器121搬移該已寫滿區塊的所有資料(包含有效資料及無效資料)到至少一未寫滿區塊中,再抹除該已寫滿區塊所儲存的所有資料。
在控制器121對所有已寫滿區塊進行完循讀操作後,控制器121可能每隔一段固定時間(如4小時)或是在一待機模式(idle mode)下,將再次進行循讀操作,以維持已寫滿區塊的資料的正確性。在本實施例中,當控制器121準備再次進行循讀操作前,控制器121根據非揮發性記憶體122在一第一時間點以及一第二時間點之間的一寫入工作量(write workload),計算出一比例值,再根據該比例值對部分已寫滿區塊進行循讀操作。
上述第一時間點係指進行完上一次循讀操作後的一時間點。上述第二時間點係指準備進行下一次循讀操作前的一時間點。在一可能實施例中,控制器121找出在第一時間點後,最早被寫滿的一起始區塊,以及在第二時間點前,最後被寫滿的一最終區塊。控制器121再根據該起始區塊及最終區塊的特性參數,判斷非揮發性記憶體122的寫入工作量。控制器121根據非揮發性記憶體122的寫入工作量,計算一比例值。控制器121根據該比例值對部分已寫滿區塊進行循讀操作。在一實施例中,控制器121根據該比例值從目前最舊的已寫滿區塊來進行部分已寫滿區塊之循讀操作。在其它實施例中,控制器 121將該比例值乘上非揮發性記憶體122中已寫滿區塊的總數而得到一比例區塊數量。在本實施例中,比例區塊數量表示控制器121需對多少個已寫滿區塊進行循讀操作。在一可能實施例中,控制器121由目前最舊的已寫滿區塊起算上述比例區塊數量來進行部分已寫滿區塊之循讀操作。
相較於習知技術,習知的非揮發性記憶裝置在每次進行循讀操作時,都會判斷所有已寫滿區塊之資料錯誤率。因此,習知的非揮發性記憶體裝置的處理時間過長,且也會占用到主機裝置與非揮發性記憶裝置之間資料讀取的頻寬(read bandwidth),並增加功率損耗。然而,在本實施例中,控制器121只有在第一次的循讀操作下,才會對所有已寫滿區塊進行循讀操作,而在接下來的循讀操作中,控制器121只會針對部分已寫滿區塊進行循讀操作。因此,本發明的非揮發性記憶體裝置的處理時間較短。
在一可能實施例中,控制器121係讀取該起始區塊及該最終區塊的索引值(index)或是時間標籤(time stamp),用以判斷非揮發性記憶體122的寫入工作量。舉例而言,愈早被寫滿的區塊的索引值可能愈小,或是愈早被寫滿的區塊的時間標籤愈小,但此揭露並非用以限制本發明。在其它實施例中,愈早被寫滿的區塊的索引值可能愈大,或是愈早被寫滿的區塊的時間標籤愈大。
本發明並不限定控制器121如何根據非揮發性記憶體122的寫入工作量計算出一比例值p。在一可能實施例中,比例值p的計算如下式所示: p=f(x,y);其中x代表前次進行循讀操作後,最早被寫滿的起始區塊的特性參數,y代表前次進行循讀操作後,最後被寫滿的最終區塊的特性參數。
控制器121根據起始區塊及最終區塊的特性參數(如索引值或時間標籤),並利用任何計算公式,計算一比例值p。以下將透過第2A及2B圖說明控制器121可能使用的計算公式。
第2A圖為本發明之已寫滿區塊的一可能示意圖。假設,在非揮發性記憶體122為一關機狀態時,區塊BK0~BK49已被寫滿。在此例中,當非揮發性記憶體122由該關機狀態切換至一開機狀態時,控制器121對區塊BK0~BK49進行循讀操作,並設定區塊BK0~BK49的索引值為ID0~ID49
接著,控制器121存取非揮發性記憶體122。當控制器121寫滿一區塊時,控制器121設定該區塊的索引值。假設,當控制器121準備再次進行循讀操作前,區塊BK0~BK100已被寫滿,並分別具有索引值ID0~ID100。控制器121先根據前次進行循讀操作後,第一個被寫滿的區塊(如BK50)的索引值(如ID50)以及最後一個被寫滿的區塊(如BK100)的索引值(如ID100),計算得知一比例值p。在本實施例中,比例值p如下式:
其中p為比例值,x為上一次進行循讀操作後,第一個已寫滿區塊的索引值(如ID50),y為上一次進行循讀操作後,最後一個已寫滿區塊的索引值(如ID100)。
如果將x=50,y=100代入式(1)後,可計算出比例值p為1/2,因此,控制器121根據比例值(1/2)對一半的已寫滿區塊進行循讀操作。在一可能實施例中,控制器121不會對上一次進行循讀操作後被寫滿的區塊(如BK50~BK100)進行循讀操作。在另一可能實施例中,控制器121根據比例值(1/2)從目前最舊的已寫滿區塊(如BK0)開始進行部分已寫滿區塊之循讀操作。在其它實施例中,計算出比例值p後,控制器121可將比例值(如1/2)再乘上已寫滿區塊的總數(101),得知需進行循讀操作的一比例區塊數量約50。因此,控制器121從目前最舊的已寫滿區塊(如BK0)開始,對後續49個已寫滿區塊(如BK0~BK49)進行循讀操作。
由於控制器121並非對所有已寫滿區塊執行循讀操作,因此,有效減短非揮發性記憶裝置120的處理時間,且減低占用到主機裝置110與控制器121之間資料讀取的頻寬(read bandwidth),也能降低非揮發性記憶裝置120的功率損耗。
在另一可能實施例中,控制器121係根據以下公式決定對多少區塊進行循讀操作。
其中p為比例值,x為上一次進行循讀操作後,第一個已寫滿區塊的索引值(如ID50),y為上一次進行循讀操作後,最後一個已寫滿區塊的索引值(如ID100),K為一固定參數,係由設計者所決定。在一可能實施例中,0<K<1。
假設,K為0.5。如果將x=50,y=100代入式(2),則 可計算出比例值p=3/4。在一可能實施例中,控制器121將比例值(3/4)再乘上已寫滿區塊的總數(101),得知需進行循讀操作的比例區塊數量約為75。在一可能實施例中,控制器121從目前最舊的已寫滿區塊(如BK0)開始,對接下來74個已寫滿區塊進行循讀操作。
在其它可能實施例中,控制器121係根據以下公式對部分區塊進行循讀操作。
其中p為比例值,x為上一次進行循讀操作後,第一個已寫滿區塊的索引值(如ID50),y為上一次進行循讀操作後,最後一個已寫滿區塊的索引值(如ID100),M為一固定參數,由IC設計者所預設。在一可能實施例中,M為整數,如1、2、3、…。
假設,M=2,若將x=50、y=100代入式(3)後,控制器121可計算比例值p=3/4。在一可能實施例中,控制器121可將比例值p(如3/4)再乘上已寫滿區塊的總數(101),得知需進行循讀操作的比例區塊數量約為75。在一可能實施例中,控制器121從目前最舊的已寫滿區塊(如BK0)開始,對74個已寫滿區塊進行循讀操作。
第2B圖為本發明之已寫滿區塊的另一可能示意圖。在本實施例中,每一已寫滿的區塊BK0~BK100各自具有一時間標籤T0~T100。時間標籤表示區塊被寫滿的時間點。舉例而言,區塊BK0是在時間點T0時被寫滿,區塊BK100是在時間點T100被寫滿。在一可能實施例中,控制器121根據下式計算一比例區塊數量p’:
其中p’表示需進行循讀操作的已寫滿區塊的數量,tx為上一次進行循讀操作後,第一個被寫滿區塊的時間標籤(T50),△t為上一次進行循讀操作後,最後一個被寫滿區塊的時間標籤(T100)與第一個被寫滿區塊的時間標籤(T50)之間的時間差(即T100-T50),例如為1秒,N為控制器121在時間點T50~T100之間所寫滿的區塊的數量(如50)。
得到比例區塊數量p’後,控制器121從目前最舊的已寫滿區塊開始,對部分的區塊進行循讀操作,其中進行循讀操作的已寫滿區塊的數量為比例區塊數量p’。由於不需每次對所有的已寫滿區塊進行循讀操作,故可大幅減少處理時間。
在上述實施例中,控制器121係從目前最舊的已寫滿區塊開始進行循讀操作,但並非用以限制本發明。在一可能實施例中,控制器121係根據區塊BK0~BK100的位元錯誤率(bit error rate;BER)、編程/抹除次數(program/erase cycle count)、錯誤位元數量(fail bit count;FBC)以及資料保持時間(retention time)之至少一者,找出最舊的已寫滿區塊。再從此最舊的已寫滿區塊開始,進行部分已寫滿區塊之循讀操作。
舉例而言,當已寫滿區塊BK0~BK100之一特定區塊(例如區塊BK30)之位元錯誤率最高,表示該特定區塊可能發生電荷流失,則表示該區塊最舊。因此,控制器121從區塊BK30開始,對後面的區塊(如BK31~BK79)進行循讀操作。當已寫滿區塊BK0~BK100之一特定區塊(例如區塊BK0)之編程/抹除次數最多,則表示該區塊最舊。因此,控制器121從區塊BK0開始, 對部分已寫滿區塊(如BK1~BK49)進行循讀操作。當已寫滿區塊BK0~BK100之一特定區塊(例如區塊BK0)之錯誤位元數量最多,則表示該區塊最舊。因此,控制器121從區塊BK0開始,對部分已寫滿區塊(如BK1~BK49)進行循讀操作。當已寫滿區塊BK0~BK100之一特定區塊(例如區塊BK0)之資料保持時間最長,表示該特定區塊的資料已放置太久,則表示該區塊最舊。因此,控制器121從區塊BK0開始,對部分已寫滿區塊(如BK1~BK49)進行循讀操作。
第3圖為本發明之控制方法的流程示意圖。本發明的控制方法適用於一非揮發性記憶體。該非揮發性記憶體包括複數已寫滿區塊以及複數未寫滿區塊。首先,根據非揮發性記憶體在一第一時間點以及一第二時間點之間的一寫入工作量,計算一比例值(步驟S311)。在本實施例中,第一時間點係指進行完上一次循讀操作後的一時間點,第二時間點係指準備進行下一次循讀操作前的一時間點。
在一可能實施例中,步驟S311判斷在第一及第二時間點之間,非揮發性記憶體被寫滿的區塊數量,並根據區塊數量計算一比例值。在另一可能實施例中,步驟S311係找出在第一時間點後,最早被寫滿的一起始區塊,並找出在第二時間點前,最晚被寫滿的一最終區塊,再根據起始區塊及最終區塊的特性參數,計算該比例值。特性參數可能係指起始區塊及最終區塊的索引值(如第2A圖所示)或是時間標籤(如第2B圖所示)。在其它實施例中,步驟S311將該比例值乘上非揮發性記憶體被寫滿的區塊的總數,用以決定對多個已寫滿區塊進行循 讀操作。在一些實施例中,步驟S311可利用式(1)~式(4)之一者計算比例值。
接著,根據該比例值對所有已寫滿區塊裡的部分已寫滿區塊進行一循讀操作(步驟S312)。假設,經運算後,比例值p=1/2。在此例中,步驟S312便對已寫滿區塊集合裡的一半區塊進行循讀操作。在本實施例中,循讀操作係檢查區塊的資料錯誤率。若一區塊的資料錯誤率超過一容忍值,則對該區塊進行垃圾回收,也就是搬移該區塊的有效資料至至少一未寫滿區塊,並對該區塊進行抹除操作。在另一可能實施例中,若一區塊的資料錯誤率超過一容忍值,則對該區塊進行資料搬移。在此例中,無論有效或無效資料均搬移,再對該區塊進行抹除操作。
本發明並不限定步驟S312係從哪個區塊開始對部分的區塊進行循讀操作。在一可能實施例中,步驟S312係從目前最舊的已寫滿區塊開始,對部分已寫滿區塊進行循讀操作。以第2A圖為例,假設,區塊BK0是目前最舊的已寫滿區塊。如果計算的比例值為1/4,則步驟S312對區塊BK0~BK24進行循讀操作。在其它實施例中,步驟S312係根據所有已寫滿區塊的位元錯誤率(bit error rate)、編程/抹除次數(program/erase cycle count)、錯誤位元數量(fail bit count)、資料保持時間(retention time)之至少一者,決定目前最舊的已寫滿區塊,並根據該比例值由該最舊的已寫滿區塊開始進行循讀操作。
在其它實施例中,控制器121將該比例值乘上非揮發性記憶體122中已寫滿區塊的總數而得到一比例區塊數量, 控制器121由目前最舊的已寫滿區塊對部分已寫滿區塊進行循讀操作,其中進行循讀操作的已寫滿區塊的數量等於比例區塊數量。
第4圖為本發明之控制方法的另一可能實施例。首先,判斷非揮發性記憶體是否從一關機狀態切換至一開機狀態(步驟S411)。當非揮發性記憶體由關機狀態切換至開機狀態時,對非揮發性記憶體裡的所有已寫滿區塊進行循讀操作(步驟S414)。然後,再回到步驟S411。
當非揮發性記憶體並非由一關機狀態切換至一開機狀態時,則根據非揮發性記憶體在第一及第二時間點之間的寫入工作量,計算一比例值(步驟S412),並根據比例值對部分已寫滿區塊進行循讀操作(步驟S413)。由於步驟S412與S413相似於第3圖的步驟S311與S312,故不再贅述。
由於步驟S413僅對部分的已寫滿區塊進行循讀操作,故可大幅縮短處理時間,並可減少功率損耗。再者,藉由循讀操作搬移放置過久的資料,可維持資料的正確性。
除非另作定義,在此所有詞彙(包含技術與科學詞彙)均屬本發明所屬技術領域中具有通常知識者之一般理解。此外,除非明白表示,詞彙於一般字典中之定義應解釋為與其相關技術領域之文章中意義一致,而不應解釋為理想狀態或過分正式之語態。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此 本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S311~S312‧‧‧步驟

Claims (16)

  1. 一種非揮發性記憶裝置,包括:一非揮發性記憶體,具有複數已寫滿區塊以及複數未寫滿區塊;以及一控制器,根據該非揮發性記憶體在一第一時間點與一第二時間點之間被寫滿的區塊數量,計算一比例值,再將該比例值乘上該等已寫滿區塊的總數,用以得到一比例區塊數量,再根據該比例區塊數量對該等已寫滿區塊中之一部分區塊進行一循讀操作(patrol read)。
  2. 如申請專利範圍第1項所述之非揮發性記憶裝置,其中該循讀操作係判斷該部分區塊之每一者的資料錯誤率,當該部分區塊之一第一區塊的資料錯誤率大於一容忍值時,該控制器搬移該第一區塊的有效資料至該等未寫滿區塊之至少一者中,並抺除該第一區塊。
  3. 如申請專利範圍第2項所述之非揮發性記憶裝置,其中當該第一區塊的資料錯誤率大於該容忍值時,該控制器搬移該第一區塊的有效資料及無效資料至該等未寫滿區塊之至少一者中,並抺除該第一區塊。
  4. 如申請專利範圍第1項所述之非揮發性記憶裝置,其中該第一時間點係指進行完上一次循讀操作後的一時間點,該第二時間點係指準備進行下一次循讀操作前的一時間點。
  5. 如申請專利範圍第1項所述之非揮發性記憶裝置,其中該控制器找出在該第一時間點後,最早被寫滿的一起始區塊,並找出在該第二時間點前,最後被寫滿的一最終區塊,並 根據該起始區塊及該最終區塊的一特性參數,計算該比例值,並根據該比例值決定進行該循讀操作的已寫滿區塊的數量。
  6. 如申請專利範圍第5項所述之非揮發性記憶裝置,其中該特性參數包含該起始區塊及該最終區塊的索引值或是時間標籤。
  7. 如申請專利範圍第1項所述之非揮發性記憶裝置,其中該控制器根據該等已寫滿區塊之每一者的一錯誤位元率、一編程/抹除次數、一錯誤位元數量或是一資料保持時間之至少一者,決定一最舊的已寫滿區塊,從該最舊的已寫滿區塊開始,對該部分區塊進行該循讀操作。
  8. 如申請專利範圍第1項所述之非揮發性記憶裝置,其中當該非揮發性記憶體從一關機狀態到一開機狀態時,該控制器對該等已寫滿區塊之每一者進行該循讀操作。
  9. 一種控制方法,適用於一非揮發性記憶體,該非揮發性記憶體具有複數已寫滿區塊以及複數未寫滿區塊,該控制方法包括:根據該非揮發性記憶體在一第一時間點以及一第二時間點之間被寫滿的區塊數量,計算一比例值;將該比例值乘上該等已寫滿區塊的總數,用以得到一比例區塊數量;以及根據該比例區塊數量對該等已寫滿區塊之一部分區塊進行一循讀操作。
  10. 如申請專利範圍第9項所述之控制方法,其中根據該比例值 對該等已寫滿區塊之該部分區塊進行該循讀操作的步驟包括:判斷該部分區塊之每一者的資料錯誤率,其中當該部分區塊之一第一區塊的資料錯誤率大於一容忍值時,搬移該第一區塊的有效資料至該等未寫滿區塊之至少一者中,並抺除該第一區塊。
  11. 如申請專利範圍第10項所述之控制方法,其中當該第一區塊的資料錯誤率大於該容忍值時,搬移該第一區塊的有效資料及無效資料至該等未寫滿區塊之至少一者中,並抺除該第一區塊。
  12. 如申請專利範圍第9項所述之控制方法,其中該第一時間點係指進行完上一次循讀操作後的一時間點,該第二時間點係指準備進行下一次循讀操作前的一時間點。
  13. 如申請專利範圍第9項所述之控制方法,其中根據該非揮發性記憶體在該第一及第二時間點之間的該寫入工作量,計算該比例值的步驟包括:找出在該第一時間點後,最早被寫滿的一起始區塊;找出在該第二時間點前,最後被寫滿的一最終區塊;根據該起始區塊及該最終區塊的一特性參數,計算該比例值;以及根據該比例值決定進行該循讀操作的已寫滿區塊的數量。
  14. 如申請專利範圍第13項所述之控制方法,其中該特性參數包含該起始區塊及該最終區塊的索引值或是時間標籤。
  15. 如申請專利範圍第9項所述之控制方法,更包括: 根據該等已寫滿區塊之每一者的一錯誤位元率、一編程/抹除次數、一錯誤位元數量或是一資料保持時間之至少一者,決定一最舊的已寫滿區塊;以及從該最舊的已寫滿區塊開始,對該部分區塊進行該循讀操作。
  16. 如申請專利範圍第9項所述之控制方法,更包括:當該非揮發性記憶體從一關機狀態到一開機狀態時,對該等已寫滿區塊之每一者進行該循讀操作。
TW105130410A 2015-10-28 2016-09-21 非揮發性記憶裝置及其控制方法 TWI606451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610912708.3A CN107015915B (zh) 2015-10-28 2016-10-20 非易失性存储器装置及其控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562247199P 2015-10-28 2015-10-28
US15/265,909 US10303536B2 (en) 2015-10-28 2016-09-15 Non-volatile memory device and control method thereof

Publications (2)

Publication Number Publication Date
TW201719674A TW201719674A (zh) 2017-06-01
TWI606451B true TWI606451B (zh) 2017-11-21

Family

ID=58635429

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105130410A TWI606451B (zh) 2015-10-28 2016-09-21 非揮發性記憶裝置及其控制方法

Country Status (2)

Country Link
US (1) US10303536B2 (zh)
TW (1) TWI606451B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10665305B2 (en) * 2015-09-09 2020-05-26 Toshiba Memory Corporation Host device connectable to memory device performing patrol read and memory device performing patrol read
KR102457662B1 (ko) 2017-10-31 2022-10-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
KR20200004656A (ko) * 2018-07-04 2020-01-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20220049397A (ko) * 2020-10-14 2022-04-21 삼성전자주식회사 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US11798646B2 (en) * 2020-10-29 2023-10-24 Everspin Technologies, Inc. Systems and methods for monitoring and managing memory devices

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0784272B1 (en) * 1990-09-20 2000-05-24 Fujitsu Limited Input/output controller
US5488702A (en) * 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
US7050252B1 (en) * 2002-06-01 2006-05-23 Western Digital Technologies, Inc. Disk drive employing off-line sector verification and relocation of marginal sectors discovered during read error recovery procedure
US6628545B1 (en) * 2002-11-26 2003-09-30 Advanced Micro Devices, Inc. Memory circuit for suppressing bit line current leakage
KR100725410B1 (ko) * 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
JP2008198310A (ja) * 2007-02-15 2008-08-28 Megachips Lsi Solutions Inc ビットエラーの修復方法および情報処理装置
US8621137B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
JP2009252278A (ja) * 2008-04-04 2009-10-29 Toshiba Corp 不揮発性半導体記憶装置及びメモリシステム
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US8456926B2 (en) * 2010-11-18 2013-06-04 Grandis, Inc. Memory write error correction circuit
US8429468B2 (en) * 2010-01-27 2013-04-23 Sandisk Technologies Inc. System and method to correct data errors using a stored count of bit values
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
JP5788183B2 (ja) * 2010-02-17 2015-09-30 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置、それの動作方法、そしてそれを含むメモリシステム
US8862807B2 (en) * 2010-08-20 2014-10-14 Samsung Electronics Co., Ltd. Semiconductor storage device and method of throttling performance of the same
US8341500B2 (en) * 2010-08-31 2012-12-25 Apple Inc. Detecting corrupted data for a system having non-volatile memory
KR20120030281A (ko) * 2010-09-20 2012-03-28 삼성전자주식회사 플래시 메모리 장치, 및 그의 프로그램 검증 방법
TW201220186A (en) * 2010-11-04 2012-05-16 Inventec Corp Data protection method for damaged memory cells
CN103620562A (zh) * 2011-06-30 2014-03-05 惠普发展公司,有限责任合伙企业 包括用于将数据从活动存储器管芯拷贝至空闲存储器管芯的存储器模块拷贝引擎的存储器模块
KR101787612B1 (ko) * 2011-07-12 2017-10-19 삼성전자주식회사 비휘발성 메모리 장치의 데이터 저장 방법 및 구동 방법
US8671249B2 (en) * 2011-07-22 2014-03-11 Fusion-Io, Inc. Apparatus, system, and method for managing storage capacity recovery
US20130173972A1 (en) * 2011-12-28 2013-07-04 Robert Kubo System and method for solid state disk flash plane failure detection
US9767032B2 (en) * 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9069719B2 (en) * 2012-02-11 2015-06-30 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US20140136884A1 (en) * 2012-11-15 2014-05-15 Lsi Corporation Read disturb handling for non-volatile solid state media
US8918699B2 (en) * 2012-07-31 2014-12-23 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage apparatus
US20140122774A1 (en) * 2012-10-31 2014-05-01 Hong Kong Applied Science and Technology Research Institute Company Limited Method for Managing Data of Solid State Storage with Data Attributes
US9159437B2 (en) * 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9208023B2 (en) * 2013-12-23 2015-12-08 Sandisk Technologies Inc. Systems and methods for scheduling post-write read in nonvolatile memory
US20150220394A1 (en) * 2014-02-03 2015-08-06 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
CN104934066B (zh) * 2014-03-19 2018-03-27 安华高科技通用Ip(新加坡)公司 Nand闪存中的读取干扰处理
US9465537B2 (en) * 2014-05-16 2016-10-11 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
KR20150140496A (ko) * 2014-06-05 2015-12-16 삼성전자주식회사 실시간 데이터 복구를 위한 리드 리클레임 방법 및 그에 따른 메모리 시스템
US9652381B2 (en) * 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR102233074B1 (ko) * 2014-10-08 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 신뢰성 검증 방법
US9552171B2 (en) * 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9530517B2 (en) * 2015-05-20 2016-12-27 Sandisk Technologies Llc Read disturb detection in open blocks
US10665305B2 (en) * 2015-09-09 2020-05-26 Toshiba Memory Corporation Host device connectable to memory device performing patrol read and memory device performing patrol read
JP2017068634A (ja) * 2015-09-30 2017-04-06 株式会社東芝 記憶装置及び方法

Also Published As

Publication number Publication date
TW201719674A (zh) 2017-06-01
US10303536B2 (en) 2019-05-28
US20170123870A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
TWI606451B (zh) 非揮發性記憶裝置及其控制方法
TWI632457B (zh) 用於資料儲存裝置的損耗平均方法
US11704028B2 (en) Asynchronous power loss impacted data structure
CN111095226B (zh) 具有动态高速缓冲存储器管理的存储器装置
US11704239B2 (en) Garbage collection method for storage medium, storage medium, and program product
US10133506B2 (en) Systems and methods for managing non-volatile memory based on temperature
US11132044B2 (en) Dynamic P2L asynchronous power loss mitigation
TW201351416A (zh) 改善運作在寬溫度範圍之快閃記憶儲存裝置特性的方法
TWI423022B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN107179880B (zh) 储存装置、其控制单元、及可用于储存装置的数据搬移方法
WO2014110183A1 (en) Systems and methods to update reference voltages in response to data retention in non-volatile memory
US8848448B2 (en) Semiconductor memory device and operating method thereof
US20160027518A1 (en) Memory device and method for controlling the same
JP6167646B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
TW202011194A (zh) 快閃記憶體控制器及相關電子裝置
TW201033806A (en) Solid state storage system for uniformly using memory area and method controlling the same
US9442842B2 (en) Memory system performance configuration
CN107015915B (zh) 非易失性存储器装置及其控制方法
KR20160112450A (ko) 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것을 포함하는 테스트 시스템
TWI662554B (zh) 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方法
CN106910520B (zh) 存储装置的写入方法、存储装置、存储控制器和存储系统
CN114927152A (zh) 非易失性存储器装置、存储器系统以及编程方法
TW202418090A (zh) 資料儲存裝置與寫入緩存器管理方法
KR101368834B1 (ko) 내구도를 복수의 단계로 구분하는 플래시 메모리 제어장치
TW201740276A (zh) 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方法