TW201947404A - 重讀頁面資料方法 - Google Patents

重讀頁面資料方法 Download PDF

Info

Publication number
TW201947404A
TW201947404A TW107116796A TW107116796A TW201947404A TW 201947404 A TW201947404 A TW 201947404A TW 107116796 A TW107116796 A TW 107116796A TW 107116796 A TW107116796 A TW 107116796A TW 201947404 A TW201947404 A TW 201947404A
Authority
TW
Taiwan
Prior art keywords
retry
page
data
controller
read
Prior art date
Application number
TW107116796A
Other languages
English (en)
Other versions
TWI663512B (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 TW107116796A priority Critical patent/TWI663512B/zh
Priority to CN201810614006.6A priority patent/CN110502185B/zh
Priority to US16/184,179 priority patent/US10656875B2/en
Application granted granted Critical
Publication of TWI663512B publication Critical patent/TWI663512B/zh
Publication of TW201947404A publication Critical patent/TW201947404A/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/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
    • 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
    • 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/061Improving I/O performance
    • 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/52Protection of memory contents; Detection of errors in memory contents

Abstract

本發明實施例提供一種重讀頁面資料方法。所述重讀頁面資料方法可以根據有關讀取目標頁面的環境參數,來選擇用以從適合的重試類型的多個重試表中以重新讀取該目標頁面,因此降低了重複讀取該目標頁面的次數,並且防止因頻繁讀取所造成的讀取干擾。

Description

重讀頁面資料方法
本發明是有關於一種重讀頁面資料方法,且特別是一種能夠根據有關讀取頁面的環境參數,來選擇用以從適合的重試類型的多個重試表(retry tables)中以重新讀取頁面的方法。
非揮發性記憶體為一種資料儲存媒體,其具有不需額外電力維持資訊、快速資料讀取及抗震等能力,因此被廣泛地應用於記憶卡、固態硬碟(SSD)及可攜式多媒體裝置中。一般而言,非揮發性記憶體,例如快閃記憶體(Flash Memory)的儲存陣列包括複數個區塊(Blocks),且每一區塊又包含複數個頁面(Pages),而頁面即通常為編程(Program)的最小單元。也就是說,頁面為寫入或讀取資料時的最小單元。當讀取某一頁面的資料時,資料儲存裝置會根據預設的讀取參數來讀取該頁面的資料,並且對於所讀取頁面的資料進行解碼操作。
然而,即使上述解碼操作能夠進行錯誤更正(Error Correction),但其更正能力卻仍有上限。因此,一旦發現到無法藉由解碼操作來對所讀取頁面的資料進行有效錯誤更正時,即解碼結果超過一定程度以上的錯誤,資料儲存裝置就會依序根據多個重試表的每一者,來使用其不同的讀取參數以重新讀取(Re-read)該頁面的資料,並且直到可讀取該頁面的資料而未發生無法更正錯誤(Uncorrectable Error)為止。如此一來,這對於具有越多個的重試表而言,資料儲存裝置就可能需要花費越多的時間來找出合適的重試表,以致於該頁面的讀取次數也就相對提升,進而容易造成讀取干擾(Read Disturbance)的發生。
有鑑於此,本發明之目的在於提出一種能夠根據有關讀取頁面的環境參數,來選擇用以從適合的重試類型的多個重試表中以重新讀取頁面的方法,從而提高重試表的重試命中率(Retry Hit Rate),並且同時防止因頻繁讀取所造成的讀取干擾。
為達上述目的,本發明實施例提供一種重讀頁面資料方法,可執行於一資料儲存裝置中。此資料儲存裝置包括非揮發性記憶體與控制器,非揮發性記憶體包括多個區塊,且每一區塊包含多個頁面,所述重讀頁面資料方法則包括如下步驟。首先,令控制器讀取一目標區塊的一目標頁面所儲存的資料。其中,此目標區塊係為這些區塊的其中之一,且此目標頁面則相對為此目標區塊的這些頁面的其中之一。其次,令控制器判斷是否能取得此目標頁面所儲存的資料。若判斷不能取得此目標頁面所儲存的資料時,令控制器根據至少一環境參數而選取多個重試類型的其中之一,再從選取的重試類型的多個重試表中而選擇這些重試表之一。其中,每一重試表更包括一索引值,並且記錄至少一讀取參數。然後,令控制器使用所選擇的重試表的讀取參數以重新讀取此目標頁面所儲存的資料,並且返回到令控制器判斷是否能取得此目標頁面所儲存的資料之步驟中。
為使能更進一步瞭解本發明之特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅係用來說明本發明,而非對本發明的權利範圍作任何的限制。
在下文中,將藉由圖式說明本發明之各種實施例來詳細描述本發明。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限於本文中所闡述之例示性實施例。此外,在圖式中相同參考數字可用以表示類似的元件。
首先,請參閱圖1,圖1是本發明實施例所提供的資料儲存裝置的功能方塊示意圖。資料儲存裝置1包括非揮發性記憶體110與控制器120。其中,控制器120係電性耦接於非揮發性記憶體110,並用以控制非揮發性記憶體110的資料存取。在本實施例中,非揮發性記憶體110即可例如是以快閃記憶體來實現,但本發明並不以此為限制。另外,應當理解的是,資料儲存裝置1通常是會與主機2一起使用,並且根據主機2所下達的寫入/讀取命令,來將資料寫入到非揮發性記憶體110中,或者從非揮發性記憶體110中讀取資料。因此,在本實施例中,控制器120即可例如為記憶體控制器,且其主要包括介面邏輯122、微處理器124及控制邏輯126,但本發明亦不以此為限制。微處理器124係電性耦接於介面邏輯122與控制邏輯126,並用以透過介面邏輯122來接收自主機2所下達的寫入/讀取命令,以及透過控制邏輯126來存取非揮發性記憶體110中的資料。
接著,請一併參閱圖2,圖2是圖1的資料儲存裝置中的非揮發性記憶體的示意圖。非揮發性記憶體110主要包括複數個區塊,例如區塊B0到區塊BZ,且每一區塊又包含複數個頁面,例如頁面P0到頁面PN。在本實施例中,區塊為資料抺寫的最小單元,而頁面為資料寫入或讀取的最小單元,但本發明並不以此為限。需要說明的是,上述Z及N即可例如為任意正整數,但本發明亦不限制其數值的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
另外,任一區塊,例如區塊B0可為單層記憶胞(Single-Level Cell,SLC)、多層記憶胞(Multi-Level Cell,MLC)、三層記憶胞(Triple-Level Cell ,TLC)或四層記憶胞(Quad-level cell,QLC)區塊,且上述每一記憶胞可分別儲存1、2、3或4個位元的資料。又或者是,區塊B0也可按照不同的操作方式分為單層記憶胞模式或預設模式,其中,在預設模式下,區塊B0即可提供最大的資料儲存能力,而在單層記憶胞模式下,區塊B0則可提供最佳的資料存取能力。
假設區塊B0為單層記憶胞區塊或操作在單層記憶胞模式下,在其臨界電壓的分佈示意圖中,信息狀態301和302即分別相應於位元“1”和位元“0”,如圖3A所示。因此,當要從區塊B0的任一頁面,例如頁面P0中讀取資料時,控制器120或區塊B0的內部電路就需要提供讀取電壓Vth0來讀取記憶胞所儲存的位元值。倘若提供讀取電壓Vth0並使記憶胞導通,則判定為信息狀態301,也就表示該記憶胞所儲存的是位元“1”;相反地,倘若提供讀取電壓Vth0但未使記憶胞導通,則判定為信息狀態302,也就表示該記憶胞所儲存的是位元“0”。
類似地,假設區塊B0為多層記憶胞區塊,在其臨界電壓的分佈示意圖中,信息狀態401、402、403和404即分別相應於位元“11”、位元“10”、位元“01”和位元“00”,如圖3B所示。因此,當要從區塊B0的任一頁面,例如頁面P0中讀取資料時,控制器120或區塊B0的內部電路就需要提供讀取電壓Vth1~Vth3來識別記憶胞所儲存的位元值為“11”、“10”、“01”或“00”。需要說明的是,在其它實施例中,區塊B0也可為三層記憶胞或四層記憶胞區塊,且此時控制器120或區塊B0的內部電路則就需要提供更多種讀取電壓以識別記憶胞所儲存的位元值。總而言之,圖3A及圖3B的示意圖在此僅只是舉例,其並非用以限制本發明。另外,由於提供讀取電壓而識別記憶胞所儲存的位元值的運作原理已為本技術領域中具有通常知識者所習知,因此有關提供讀取電壓的細部內容於此就不再多加贅述。
然而,因為某些因素,例如資料久置、記憶胞耗損及高低溫干擾等會導致臨界電壓的分佈偏移,即信息狀態301~302及信息狀態401~404分別偏移為信息狀態301’~302’及信息狀態401’~404’。 偏移產生後使用讀取電壓Vth0或讀取電壓Vth1~Vth3都將可能無法正確識別出記憶胞所儲存的位元值。如同前面內容所述,此時控制器120會進行解碼操作來嘗試更正所讀取頁面的資料錯誤。一旦發現到無法對所讀取頁面的資料錯誤進行有效更正時,控制器120就會啟動重新讀取程序,即依序根據多個重試表的每一者,來使用不同的讀取參數以重新讀取該頁面的資料,直到所讀取頁面的資料錯誤可被更正為止。因此,在本實施例中,不同的讀取參數即可例如是不同的讀取電壓,但本發明卻不以此為限制。因為在其它實施例中,不同的讀取參數也可例如是指不同的錯誤更正碼(Error Correction Code,ECC)或不同的錯誤更正方式,所以本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
假設在本實施例的資料儲存裝置1內建含有50個重試表的情況下,例如重試表T(0)到重試表T(49),也就表示每一重試表T(0)~T(49)包含不同的讀取電壓Vth0~Vth3。而傳統作法上,控制器120是會先使用重試表T(0)的讀取電壓Vth0(0)或讀取電壓Vth1(0)~Vth3(0)以重新讀取該頁面的資料。如果使用重試表T(0)的讀取電壓Vth0(0)或讀取電壓Vth1(0)~Vth3(0)而仍無法有效更正所讀取該頁面的資料錯誤時,控制器120就會繼續使用重試表T(1)的讀取電壓Vth0(1)或讀取電壓Vth1(1)~Vth3(1)以重新讀取該頁面的資料,以此類推,直到用了重試表T(i)的讀取電壓Vth0(i)或讀取電壓Vth1(i)~Vth3(i)可讀取該頁面的資料而未發生無法更正錯誤為止。也就是說,因為傳統作法只能按照重試表T(0)~T(49)的既定順序而來進行重複讀取,所以在這種情況下,如果重試表的數目愈多,控制器120也就可能需要花費愈久的時間才能正確讀取(更正)該頁面的資料,即找出合適的重試表T(i)。應當理解的是,在本實施例中,i則為0到49的任整數,但本發明並不以此為限制。
為了解決上述問題,本發明將每一重試表T(0)~T(49)分類至多個重試類型的其中之一,並在啟動重新讀取程序時,控制器120會先依據環境參數而對重試類型進行選取,再從選取的重試類型中選擇一個重試表,並且依據此重試表的讀取參數重新讀取該頁面的資料,從而提高重試表T(0)~T(49)的重試命中率。舉例來說,假設環境參數為溫度值,重試表T(0)~T(09)和重試表T(10)~T(19)則分別記錄低溫(例如,低於15度)和高溫(例如,高於45度)環境下進行讀取頁面所使用的讀取參數,其中,溫度值可由資料儲存裝置1的溫度感測器(未繪示)或由主機端所提供,但本發明皆不以此為限制。另外,假設環境參數為編程時間,重試表T(20)~T(29)則記錄讀取頁面的舊資料(例如,頁面資料被編程的時間或區塊B0的關閉(Closed)時間已超過24小時)所使用的讀取參數。再者,假設環境參數為寫入/抹除次數(Program/Erase Count),重試表T(30)~T(39)則記錄讀取為高寫入/抹除次數(例如,寫入/抹除次數大於1,000)頁面所使用的讀取參數。最後,假設環境參數為讀取次數,重試表T(40)~T(49)則記錄讀取為高頻繁讀取(例如,讀取次數大於10,000)頁面所使用的讀取參數。
一般來說,當編程頁面的資料時,控制器120可將表示編程時間的時戳(Timestamp)及目前溫度等參數寫到頁面的閒置區(Spare Area)中,最後再將最早的時戳、最高低溫度值、表示目前時間的時戳(Timestamp)記錄到區塊B0的關閉資訊(End of Block Information,EOB Info)中,通常關閉資訊記錄在區塊B0的最後一個頁面。因此,從上述內容可知,本實施例將可定義出五個重試類型,並且利用控制器120來將上述重試表T(0)~T(09)、重試表T(10)~T(19)、重試表T(20)~T(29)、重試表T(30)~T(39)和重試表T(40)~T(49) 分別分類到此五個重試類型中的第一、第二、第三、第四和第五重試類型,如圖5A所示。
需要說明的是,上述所分類每一重試表T(0)~T(49)到多個重試類型之一的具體實現方式在此皆僅只是舉例,其並非用以限制本發明。另外,在本實施例中,每一重試表T(0)~T(49)更可包括一索引值,即優先權值,且越小的索引值也就表示具有越高的優先權序,但本發明亦不以此為限制。總而言之,本發明並不限制這些索引值的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。接著,請同時參閱圖4,圖4則是本發明實施例所提供的重讀頁面資料方法的流程示意圖。其中,應當理解的是,圖4的重讀頁面資料方法是可以執行於圖1的資料儲存裝置1中,但本發明亦不限制圖4的重讀頁面資料方法僅能夠執行於圖1的資料儲存裝置1中。
如圖4所示,首先,在步驟S410中,令控制器120讀取目標區塊的目標頁面所儲存的資料。其中,目標區塊即為區塊B0到區塊BZ的其中之一,且目標頁面則相對為目標區塊的頁面P0到頁面PN的其中之一,並且應當理解的是,目標區塊或目標頁面便是由資料讀取指令所指定,或者依據資料讀取指令及邏輯至物理位址映射表(Logical Address to Physical Address Mapping Table)所決定,而資料讀取指令是由主機2所傳送至資料儲存裝置1中,且邏輯至物理位址映射表是儲存於資料儲存裝置1中,並暫存於資料儲存裝置1或主機2的揮發性記憶體(未繪示)中。
其次,在步驟S420中,令控制器120判斷是否能取得目標頁面所儲存的資料,如果是,則執行步驟S460,即結束本實施例的重讀頁面資料方法;如果否,則執行步驟S430。必須瞭解的是,在讀取(或重新讀取)目標頁面所儲存的資料後,控制器120會自動更正所讀取目標頁面的資料錯誤,例如:控制器120利用錯誤更正碼而更正所讀取目標頁面的資料錯誤。如果資料錯誤的位元數超過錯誤更正碼所能更正的上限值,例如:120位元/1024位元組,則控制器120無法利用錯誤更正碼而更正所讀取目標頁面的資料錯誤,也就表示控制器120無法取得目標頁面所儲存的資料。
接著,在步驟S430中,令控制器120根據至少一環境參數而選取多個重試類型的其中之一,再從選取的重試類型的多個重試表中而選擇這些重試表之一。其中,每一重試表記錄至少一讀取參數,且控制器120較佳依據索引值而選擇其中之一重試表。另外,索引值的起始值可依重試類型而不同,例如第一重試類型的起始值為0,第一重試類型的起始值為10,以此類推,但本發明皆不以此為限制。假設環境參數分別為目前溫度值為65度,編程時間距目前時間為5小時,寫入/抹除次數為100,且讀取次數為2000,因此,控制器120可依據溫度值而選取第二重試類型,即包括重試表T(10)~T(19),並從第二重試類型的重試表T(10)~T(19)中而依序或隨機地選擇其中之一重試表,例如重試表T(10);或者,控制器120則依據特定索引值,例如12,而選擇第二重試類型的重試表T(12)。
然後,在步驟S440中,令控制器120使用所選擇的重試表的讀取參數以重新讀取目標頁面所儲存的資料。假設所選擇的重試表為重試表T(12),則令控制器120使用重試表T(12)所記錄的讀取參數以重新讀取目標頁面所儲存的資料,並且返回到步驟S420,令控制器120判斷是否能取得目標頁面所儲存的資料。
在另一實施例中,步驟S430更包括:記錄所選擇的重試表的索引值。例如,假設控制器120從第二重試類型的重試表T(10)~T(19)中選擇重試表T(13),則將重試表T(13)的索引值記錄下來。如此一來,在控制器120使用重試表T(13)的讀取參數而能取得此時目標頁面所儲存的資料後,當換成讀取其他目標頁面(或其他目標區塊的其他目標頁面)而又執行到步驟S430時,控制器120將能依據所記錄的此特定索引值來進行重試表T(13)的選取,或者依序或隨機地選取另一重試表,再執行步驟S440。
此外,在本實施例中,重讀頁面資料方法更可包括步驟S450。在步驟S450中,當控制器120是使用所選擇的重試表的讀取參數而能取得目標頁面所儲存的資料時,即有經過步驟S430~S440而返回的步驟S420之判斷結果為是時,則令控制器120重新排序選取的重試類型中的這些重試表的這些索引值。例如,假設控制器120從第二重試類型的重試表T(10)~T(19)中選擇重試表T(13) ,且當控制器120使用重試表T(13)的讀取參數而能取得目標頁面所儲存的資料時,則將重試表T(13)的索引值設定為目前第二重試類型中的索引值的最高優先順位,即起始值10,並將重試表T(13)之前的重試表T(10)~T(12)的索引值重新排序,例如:依序將重試表T(10)~T(12) 的索引值變更為11~13。如此一來,當換成讀取其他目標頁面(或其他目標區塊的其他目標頁面)而又執行到步驟S430時,重試表T(13)將能被第一優先選取。
也就是說,在本實施例中,控制器120較佳按照重試表T(10)~T(19)的索引值(或重新排序後的索引值)而依序使用每一重試表T(10)~T(19)所記錄的讀取參數以重新讀取目標頁面所儲存的資料。以圖5A為例,如果使用重試表T(10)的讀取參數而仍無法取得目標頁面所儲存的資料(或無法更正所讀取目標頁面的資料錯誤)時,控制器120就會繼續使用其索引值為目前第二重試類型中次小的重試表,即重試表T(11),的讀取參數以重新讀取目標頁面所儲存的資料,以此類推,直到第二重試類型的每一重試表的讀取參數皆使用過為止。假如控制器120使用重試表T(15)的讀取參數而成功取得目標頁面所儲存的資料時,控制器120則將重試表T(15)的索引值調整為這些重試表T(10)~T(19)的索引值的最高優先順位,即起始值10,並且對應地調整了其他重試表T(10)~T(19)的索引值,如圖5B所示。
根據以上內容可知,假設控制器120需使用重試表T(15)的讀取參數才能成功取得目標頁面所儲存的資料,相較於傳統作法只能從重試表T(0)來逐一試到重試表T(15),需對目標頁面進行16次的讀取動作,但本實施例卻只需要從重試表T(10)來逐一試到重試表T(15),即僅需對目標頁面進行6次的讀取動作,因此,本發明大大減少了取得目標頁面所儲存的資料所需的時間,也降低了讀取動作的重覆次數,並進而降低因頻繁讀取所造成的讀取干擾。除此之外,因為在相同工作環境下,任一區塊的所有頁面的臨界電壓分佈偏移則很可能相同或相似,所以本實施例將此時最適合的重試表T(15)的索引值調整為這些重試表T(10)~T(19)的索引值的最高優先順位,以藉此有效提高重試表T(10)~T(19)的重試命中率。
舉例來說,當控制器120讀取其他目標頁面(或其他目標區塊的其他目標頁面)而又發生無法取得其所儲存的資料時,假設此時環境參數分別為目前溫度值為66度,編程時間距目前時間為5小時,寫入/抹除次數為100,讀取次數為2500,因此,控制器120可再次依據溫度值而選擇第二重試類型的其中之一重試表,接著,控制器120便使用前次最適合且其索引值為目前第二重試類型中最小的重試表T(15)的讀取參數以重新讀取此時目標頁面所儲存的資料。然而,如果使用重試表T(15) 的讀取參數而仍無法取得此時目標頁面所儲存的資料時,控制器120就會繼續使用其索引值為目前第二重試類型中次小的重試表,即重試表T(10),的讀取參數以重新讀取此時目標頁面所儲存的資料,以此類推。假如控制器120使用重試表T(16)的讀取參數而成功取得此時目標頁面所儲存的資料時,控制器120則將重試表T(16)的索引值調整為這些重試表T(10)~T(19)的索引值的最高優先順位,即起始值10,並且對應地調整了這些重試表T(10)~T(19)的其它索引值,如圖5C所示。
另外,假如環境參數分別為目前溫度值為40度,編程時間距目前時間為12小時,寫入/抹除次數為1200,讀取次數為5000,當發生無法取得此時目標頁面所儲存的資料時,在步驟S430中,控制器120則可依據寫入/抹除次數而選擇第四重試類型的這些重試表T(30)~T(39)之一,例如重試表(30)。在步驟S440中,控制器120便使用重試表(30)的讀取參數以重新讀取目標頁面所儲存的資料。假設使用重試表(30)的讀取參數仍無法成功取得目標頁面所儲存的資料,步驟S420~步驟S440便會被重覆地執行,直到使用重試表T(32)的讀取參數後可成功取得目標頁面所儲存的資料時,控制器120則將重試表T(32)的索引值調整為這些重試表T(30)~T(39)的索引值的最高優先順位,即起始值30,並且對應地調整了其他重試表T(30)~T(39) 的其它索引值,如圖5D所示。
類似地,假如環境參數分別為目前溫度值為45度,編程時間距目前時間為36小時,寫入/抹除次數為600,讀取次數為25000,當發生無法取得目標頁面所儲存的資料時,在步驟S430中,控制器120則可依據編程時間而選擇第三重試類型的這些重試表T(20)~T(29)之一,例如重試表(20);或者依據讀取次數而選擇第五重試類型的這些重試表T(40)~T(49)之一,例如重試表T(40),並依據重試表T(20)或T(40)的讀取參數以重新讀取目標頁面所儲存的資料。由於詳盡細節亦如同前述實施例所述,故於此就不再多加冗述。總而言之,因為本實施例可根據環境參數來使用不同重試表的讀取參數,並依據讀取結果來重新排序重試表的順序,所以本發明能夠提升重試命中率,以及降低重讀目標頁面資料所需的時間。
總而言之,假如一開始控制器120除了可以根據環境參數而選擇其中之一重試類型的其中之一重試表外,控制器120亦可選擇其中之一重試類型的另一重試表;或者,當控制器120無法根據環境參數而選擇其中之一重試類型的其中之一重試表,例如,溫度值降至45度,此時,控制器120亦可根據索引值而選擇其中之一重試表。接著,再執行步驟S440。
綜上所述,本發明實施例所提供的重讀頁面資料方法,可以是只需要根據有關讀取目標頁面的環境參數來選擇用以從適合的重試類型的多個重試表中以重新讀取該目標頁面,因此,進而降低了重複讀取該目標頁面的次數,並且防止因頻繁讀取所造成的讀取干擾。此外,由於所述重讀頁面資料方法還可將最適合的重試表排到最優先順位,因此本發明也就能夠達到相對提升重試命中率。
以上所述僅為本發明之實施例,其並非用以侷限本發明之專利範圍。
1‧‧‧資料儲存裝置
2‧‧‧主機
110‧‧‧非揮發性記憶體
120‧‧‧控制器
122‧‧‧介面邏輯
124‧‧‧微處理器
126‧‧‧控制邏輯
B0~BZ‧‧‧區塊
P0~PN‧‧‧頁面
301~302、301’~302’、401~404、401’~404’‧‧‧信息狀態
Vth0~Vth3、Vth0(i)~Vth3(i)‧‧‧讀取電壓
S410~S460‧‧‧流程步驟
圖1是本發明實施例所提供的資料儲存裝置的功能方塊示意圖。 圖2是圖1的資料儲存裝置中的非揮發性記憶體的示意圖。 圖3A是圖1的資料儲存裝置操作於單層記憶胞模式下的臨界電壓的分佈示意圖。 圖3B是圖1的資料儲存裝置操作於多層記憶胞模式下的臨界電壓的分佈示意圖。 圖4是本發明實施例所提供的重讀頁面資料方法的流程示意圖。 圖5A是圖4的重讀頁面資料方法中的重試表於一較佳實施例下的示意圖。 圖5B是圖4的重讀頁面資料方法中的重試表於另一較佳實施例下的示意圖。 圖5C是圖4的重讀頁面資料方法中的重試表於另一較佳實施例下的示意圖。 圖5D是圖4的重讀頁面資料方法中的重試表於另一較佳實施例下的示意圖。

Claims (9)

  1. 一種重讀頁面資料方法,執行於一資料儲存裝置中,該資料儲存裝置包括一非揮發性記憶體與一控制器,該非揮發性記憶體包括多個區塊(Blocks),且每一該些區塊包含多個頁面(Pages),該重讀頁面資料方法包括: 令該控制器讀取一目標區塊的一目標頁面所儲存的資料,其中該目標區塊係為該些區塊的其中之一,且該目標頁面則相對為該目標區塊的該些頁面的其中之一; 令該控制器判斷是否能取得該目標頁面所儲存的資料; 若判斷不能取得該目標頁面所儲存的資料時,令該控制器根據至少一環境參數而選取多個重試類型的其中之一,再從選取的該重試類型的多個重試表中而選擇該些重試表之一,其中每一該些重試表更包括一索引值,並且記錄至少一讀取參數;以及 令該控制器使用所選擇的該重試表的該讀取參數以重新讀取該目標頁面所儲存的資料,並且返回到令該控制器判斷是否能取得該目標頁面所儲存的資料之步驟中。
  2. 如請求項第1項所述的重讀頁面資料方法,更包括: 若判斷能取得該目標頁面所儲存的資料時,令該控制器結束該重讀頁面資料方法。
  3. 如請求項第2項所述的重讀頁面資料方法,更包括: 當該控制器是使用所選擇的該重試表的該讀取參數而能取得該目標頁面所儲存的資料時,則令該控制器重新排序選取的該重試類型中的該些重試表的該些索引值。
  4. 如請求項第2項所述的重讀頁面資料方法,其中在從選取的該重試類型的該些重試表中而選擇該些重試表之一的步驟中,更包括記錄所選擇的該重試表的該索引值。
  5. 如請求項第1項所述的重讀頁面資料方法,其中在從選取的該重試類型的該些重試表中而選擇該些重試表之一的步驟中,該控制器係依據該些重試表的該些索引值而依序選擇該些重試表之一,或者該控制器係隨機地選擇該些重試表之一。
  6. 如請求項第4項所述的重讀頁面資料方法,其中在從選取的該重試類型的該些重試表中而選擇該些重試表之一的步驟中,該控制器係依據所記錄的該索引值而選擇該些重試表之一。
  7. 如請求項第1項所述的重讀頁面資料方法,其中該目標區塊或該目標頁面是由一資料讀取指令所指定,或依據該資料讀取指令及一邏輯至物理位址映射表所決定,其中該資料讀取指令是由一主機所傳送至該資料儲存裝置中,且該邏輯至物理位址映射表是儲存於該資料儲存裝置中,並暫存於該資料儲存裝置或該主機的一揮發性記憶體中。
  8. 如請求項第1項所述的重讀頁面資料方法,其中在令該控制器讀取該目標頁面所儲存的資料的步驟中,該控制器係利用一錯誤更正碼而更正所讀取的該目標頁面的資料錯誤,並且在判斷不能取得該目標頁面所儲存的資料時,則表示該資料錯誤的位元數超過該錯誤更正碼所能更正的上限值。
  9. 如請求項第1項所述的重讀頁面資料方法,其中該資料儲存裝置係利用該控制器,分別將每一該些重試表,分類至該些重試類型的其中之一,且該至少一環境參數則是指一溫度值、一編程時間、一寫入/抹除次數與/或一讀取次數。
TW107116796A 2018-05-17 2018-05-17 重讀頁面資料方法 TWI663512B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107116796A TWI663512B (zh) 2018-05-17 2018-05-17 重讀頁面資料方法
CN201810614006.6A CN110502185B (zh) 2018-05-17 2018-06-14 重读页面数据方法
US16/184,179 US10656875B2 (en) 2018-05-17 2018-11-08 Method for re-reading page data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107116796A TWI663512B (zh) 2018-05-17 2018-05-17 重讀頁面資料方法

Publications (2)

Publication Number Publication Date
TWI663512B TWI663512B (zh) 2019-06-21
TW201947404A true TW201947404A (zh) 2019-12-16

Family

ID=67764625

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107116796A TWI663512B (zh) 2018-05-17 2018-05-17 重讀頁面資料方法

Country Status (3)

Country Link
US (1) US10656875B2 (zh)
CN (1) CN110502185B (zh)
TW (1) TWI663512B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11817172B2 (en) 2022-04-07 2023-11-14 Hefei Core Storage Electronic Limited Table management method, memory storage device and memory control circuit unit

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696074B (zh) 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111400099B (zh) * 2020-03-16 2024-04-02 深圳佰维存储科技股份有限公司 闪存的数据重读方法、装置、设备及计算机可读存储介质
TWI720852B (zh) * 2020-03-20 2021-03-01 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111581010B (zh) * 2020-04-30 2022-10-14 江苏芯盛智能科技有限公司 一种读操作处理方法、装置、设备及可读存储介质
CN111625194B (zh) * 2020-05-26 2023-03-24 合肥康芯威存储技术有限公司 一种存储介质的数据读取方法、存储系统及存储设备
CN111863097B (zh) * 2020-06-29 2022-06-17 联芸科技(杭州)有限公司 快闪存储器的读取控制方法及装置
US11573720B2 (en) * 2020-08-19 2023-02-07 Micron Technology, Inc. Open block family duration limited by time and temperature
KR20220067282A (ko) 2020-11-17 2022-05-24 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 서버 장치 및 스토리지 장치의 구동 방법
CN112631515B (zh) * 2020-12-17 2023-11-14 珠海妙存科技有限公司 自适应的闪存数据重读方法、装置及介质
CN115295048A (zh) * 2022-07-28 2022-11-04 山东华芯半导体有限公司 一种nand flash的最优固定电压轴的筛选方法
US20240061606A1 (en) * 2022-08-16 2024-02-22 Yangtze Memory Technologies Co., Ltd. Read retry method for enhancing read performance and stability of 3d nand memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9001587B2 (en) * 2011-09-16 2015-04-07 Samsung Electronics Co., Ltd. Flash memory and reading method of flash memory
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
US20130185612A1 (en) * 2012-01-18 2013-07-18 Samsung Electronics Co., Ltd. Flash memory system and read method of flash memory system
TWI541819B (zh) * 2013-12-30 2016-07-11 慧榮科技股份有限公司 用來進行錯誤更正之方法、記憶裝置、與控制器
CN104978147B (zh) * 2014-04-03 2018-09-07 光宝科技股份有限公司 固态储存装置及其错误更正控制方法
KR20160102740A (ko) * 2015-02-23 2016-08-31 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
CN106158038B (zh) * 2015-04-14 2021-03-09 恩智浦美国有限公司 从非易失性存储器读取数据的方法
KR20160143371A (ko) * 2015-06-05 2016-12-14 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US9905289B1 (en) * 2017-04-28 2018-02-27 EMC IP Holding Company LLC Method and system for systematic read retry flow in solid state memory
TWI686697B (zh) * 2018-07-26 2020-03-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11817172B2 (en) 2022-04-07 2023-11-14 Hefei Core Storage Electronic Limited Table management method, memory storage device and memory control circuit unit

Also Published As

Publication number Publication date
US10656875B2 (en) 2020-05-19
TWI663512B (zh) 2019-06-21
US20190354314A1 (en) 2019-11-21
CN110502185A (zh) 2019-11-26
CN110502185B (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
TWI663512B (zh) 重讀頁面資料方法
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
JP4729062B2 (ja) メモリシステム
US8275931B2 (en) Block management method for flash memory, and storage system and controller using the same
US8984373B2 (en) Method for accessing flash memory and associated flash memory controller
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
US9086954B2 (en) Data storing method, memory controller and memory storage apparatus
US9257187B2 (en) Data storing method, memory control circuit unit and memory storage apparatus
TWI436211B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
US9514819B2 (en) Programming method, memory storage device and memory controlling circuit unit
US10115468B2 (en) Solid state storage device and read control method thereof
TWI490871B (zh) 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置
TWI545572B (zh) 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置
CN110795270B (zh) 固态储存装置及其读取重试方法
US20120278535A1 (en) Data writing method, memory controller, and memory storage apparatus
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US9430325B2 (en) Method for programming data, memory storage device and memory control circuit unit
US10629269B2 (en) Solid state storage device and read table management method thereof
CN110389716B (zh) 数据存储装置及应用其的预防数据错误方法
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN105810246B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN105761754B (zh) 存储单元编程方法、存储器控制电路单元与存储装置