TWI623878B - 資料讀取方法以及儲存控制器 - Google Patents

資料讀取方法以及儲存控制器 Download PDF

Info

Publication number
TWI623878B
TWI623878B TW106122810A TW106122810A TWI623878B TW I623878 B TWI623878 B TW I623878B TW 106122810 A TW106122810 A TW 106122810A TW 106122810 A TW106122810 A TW 106122810A TW I623878 B TWI623878 B TW I623878B
Authority
TW
Taiwan
Prior art keywords
time
value
read voltage
target
threshold
Prior art date
Application number
TW106122810A
Other languages
English (en)
Other versions
TW201907287A (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 TW106122810A priority Critical patent/TWI623878B/zh
Priority to US15/684,945 priority patent/US10698762B2/en
Application granted granted Critical
Publication of TWI623878B publication Critical patent/TWI623878B/zh
Publication of TW201907287A publication Critical patent/TW201907287A/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/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/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/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

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

Abstract

本發明提供適用於可複寫式非揮發性記憶體模組的一種資料讀取方法。所述方法包括從主機系統接收讀取指令;根據所述讀取指令來辨識所述可複寫式非揮發性記憶體模組中之目標實體單元,並且辨識所述目標實體單元的抹除次數值、第一時間戳記、第二時間戳記,其中所述第一時間戳記記錄所述目標實體單元最後一次被寫入的時間,並且所述第二時間戳記記錄所述目標實體單元最後一次被讀取的時間;以及根據所述抹除次數值、所述第一時間戳記、所述第二時間戳記從不同的多個讀取電壓組中選擇目標讀取電壓組從所述目標實體單元讀取目標資料。

Description

資料讀取方法以及儲存控制器
本發明是有關於一種資料讀取方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的資料讀取方法與儲存控制器。
一般來說,在對可複寫式非揮發性記憶體模組讀取資料時,若頁面讀取失敗的情況沒有發生,系統會使用預設讀取電壓組或之前用過的最佳讀取電壓組來讀取資料。直到讀取失敗的情況發生,系統(儲存系統)才會不使用預設讀取電壓組或已用過的最佳電壓,並且對應地調整讀取電壓組。
換句話說,可複寫式非揮發性記憶體模組的最佳讀取電壓組值並不會是固定的。然而,傳統上調整讀取電壓組以獲得最佳讀取電壓組來讀取資料的作法是被動的,即,僅當讀取失敗的情況發生時,才使用不同電壓值的讀取電壓組來重新讀取資料,以由讀取後的結果來找出最佳讀取電壓組。但是,上述的操作會導致多次的讀取資料操作,進而嚴重影響資料讀取的效率,降低 資料存取的速度。
特別是,若可複寫式非揮發性記憶體模組為三維NAND型快閃記憶體模組且在間隔一段時間後才進行對其中的一實體單元讀取資料,所讀取資料的錯誤率會極高,並且導致所讀取的資料不可被校正,進而發生資料讀取錯誤。因此,如何主動地在讀取資料之前,便找尋對應所欲讀取資料的最佳讀取電壓組,以降低所讀取資料的錯誤率且同時避免上述三維NAND型快閃記憶體模組的資料讀取錯誤的問題,進而提昇可複寫式非揮發性記憶體模組的讀取效率,是本領域人員研究的課題之一。
本發明提供一種資料讀取方法與儲存控制器,可主動地根據可複寫式非揮發性記憶體模組中對應讀取指令的實體單元的資訊來找尋最佳讀取電壓組,以讀取資料,進而有效率地執行所述讀取指令並且降低所讀取之資料的錯誤率。
本發明的一實施例提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種資料讀取方法,其中所述可複寫式非揮發性記憶體模組具有多個實體單元。所述方法包括從主機系統接收讀取指令,其中所述讀取指令用以指示讀取目標資料;根據所述讀取指令來辨識所述可複寫式非揮發性記憶體模組中儲存所述目標資料之目標實體單元,並且辨識所述目標實體單元的抹除次數值、第一時間戳記、第二時間戳記,其中所述第一時間戳 記記錄所述目標實體單元最後一次被寫入的時間,並且所述第二時間戳記記錄所述目標實體單元最後一次被讀取的時間;以及根據所述目標實體單元的所述抹除次數值、所述第一時間戳記、所述第二時間戳記從不同的多個讀取電壓組中選擇目標讀取電壓組,以使用所述目標讀取電壓組從所述目標實體單元讀取所述目標資料。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器,其中所述可複寫式非揮發性記憶體模組具有多個實體單元。所述儲存控制器包括連接介面電路、記憶體介面控制電路、處理器、資料管理電路。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組。處理器耦接至所述連接介面電路及所述記憶體介面控制電路。資料管理電路耦接至所述處理器、所述連接介面電路及所述記憶體介面控制電路。所述處理器用以從所述主機系統接收讀取指令,其中所述讀取指令用以指示讀取一目標資料,其中所述處理器更用以根據所述讀取指令來辨識所述可複寫式非揮發性記憶體模組中儲存所述目標資料之目標實體單元,並且辨識所述目標實體單元的抹除次數值、第一時間戳記、第二時間戳記,其中所述第一時間戳記記錄所述目標實體單元最後一次被寫入的時間,並且所述第二時間戳記記錄所述目標實體單元最後一次被讀取的時間,其中所述處理器更用以根據所述目標實體單元的所述抹除次數值、所述第一時間戳記、所 述第二時間戳記從不同的多個讀取電壓組中選擇目標讀取電壓組,以使用所述目標讀取電壓組從所述目標實體單元讀取所述目標資料。
基於上述,本發明實施例所提供的資料讀取方法以及儲存控制器,可根據所接收之讀取指令來辨識對應該讀取指令之可複寫式非揮發性記憶體模組中的一目標實體單元,並且辨識目標實體單元的抹除次數值、第一時間戳記與第二時間戳記,以在執行一次讀取操作的情況下,直接使用對應目標實體單元的狀態的讀取電壓來從目標實體單元中讀取目標資料,進而提昇讀取資料的效率與正確性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S23、S25‧‧‧資料讀取方法的流程步驟
S31、S32、S33、S34、S35、S36、S37‧‧‧選擇目標讀取電壓組的流程步驟
VS1、VS2、VS3、VS4、VS5、VS6、VS7、VS8‧‧‧讀取電壓組
X、Y、Z‧‧‧門檻值
V0’、V1’、V2’、V3’、V4’、V5’、V6’、V0”、V1”、V2”、V3”、V4”、V5”、V6”‧‧‧讀取電壓
VTH‧‧‧臨界電壓
L‧‧‧下頁面的位元狀態
M‧‧‧中頁面的位元狀態
U‧‧‧上頁面的位元狀態
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
圖2是根據本發明的一實施例所繪示的資料讀取方法的流程圖。
圖3為根據本發明的一實施例所繪示的選擇目標讀取電壓組的流程圖。
圖4為根據本發明的一實施例所繪示的選擇目標讀取電壓組 的規則表。
圖5為根據本發明的一實施例所繪示的臨界電壓分佈與對應之讀取電壓的示意圖。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。此外,儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
請參照圖1,主機系統(Host System)10包括處理器(Processor)110、主機記憶體(Host Memory)120及資料傳輸介面電路(Data Transfer Interface Circuit)130。在本實施例中,資料傳輸介面電路130耦接(亦稱,電性連接)至處理器110與主機記憶體120。在另一實施例中,處理器110、主機記憶體120與資料傳輸介面電路130之間利用系統匯流排(System Bus)彼此耦接。
儲存裝置20包括儲存控制器(Storage Controller)210、可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)220及連接介面電路(Connection Interface Circuit)230。其中,儲存控制器210包括處理器211、資料管理電路(Data Transfer Management Circuit)212與記憶體介面控制電路(Memory Interface Control Circuit)213。
在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20或從儲存裝置20中讀取資料。
在本實施例中,處理器110、主機記憶體120及資料傳輸介面電路130可設置在主機系統10的主機板上。資料傳輸介面電路130的數目可以是一或多個。透過資料傳輸介面電路130,主機板可以經由有線或無線方式耦接至儲存裝置20。儲存裝置20可例如是隨身碟、記憶卡、固態硬碟(Solid State Drive,SSD)或無線記憶體儲存裝置。無線記憶體儲存裝置可例如是近距離無線通訊(Near Field Communication,NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板也可以透過系統匯流排耦接至全球定位系統(Global Positioning System,GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記 憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路130與連接介面電路230亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路230可與儲存控制器210封裝在一個晶片中,或者連接介面電路230是佈設於一包含儲存控制器210之晶片外。
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體 120也可以是其他適合的記憶體。
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型 式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體儲存單元中。
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器220各部件所執行的操作亦可視為儲存控制器220所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料,並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。
記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元(亦稱,目標實體單元)中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓組準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資 料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220的記憶胞會構成多個實體程式化單元(亦稱,實體子單元),並且此些實體程式化單元會構成多個實體區塊(亦稱,實體抹除單元或實體單元)。具體來說,同一條字元線(或同一個字元線層)上的記憶胞會組成一或多個實體程式化單元。
在本實施例中,是以實體子單元作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有 最小數目之一併被抹除之記憶胞。每一實體單元會具有多個實體子單元。實體子單元可為實體頁面(page)或是實體扇(sector)。在本實施例中,實體子單元包括資料位元區與冗餘(redundancy)位元區。資料位元區用以儲存使用者資料,而冗餘位元區用以儲存系統資料。系統資料例如為錯誤更正碼、錯誤檢查碼或元資料(Meta Data)。然而,本發明不限於此。例如,在另一實施例中,亦可變化本實施例所述的資料傳輸方法,應用至以實體單元作為寫入資料的最小儲存單位的可複寫式非揮發性記憶體模組220。
應注意的是,在本實施例中,用以記錄一實體單元的資訊的系統資料可利用該實體單元中的一或多個實體子單元來記錄,或是利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個實體子單元來記錄。在本實施例中,所述對應一實體單元的系統資料包括該實體單元的抹除次數值(Program erase cycle,PEC)、最後寫入時間戳記(Last Write Timestamp,LWT)、最後讀取時間戳記(Last Read Timestamp,LRT)等資訊。所述時間戳記的大小(數值差異)可用來表示時間的先後順序。本發明並不限定所述時間戳記的詳細格式。更詳細來說,每當處理器211對一實體單元進行抹除操作時,在完成所述抹除操作後,處理器211會對當前對應該實體單元的抹除次數值加1(如,抹除次數值會隨著每次的抹除操作而從0開始累加)。即,抹除次數值可反映出其所對應的實體單元的被抹除的次數的總和。此外,每對實體單元執行一個抹除操作時,處理器211會重置所述實體單元的最 後寫入時間戳記(亦稱,第一時間戳記),如,在完成所述抹除操作時,第一時間戳記的值被記錄為當前時間(即,完成所述抹除操作的本地時間)。並且,每對所述實體單元執行寫入操作時,處理器211會更新所述實體單元的第一時間戳記為所述實體單元執行所述寫入操作的時間。即,對應一實體單元之第一時間戳記用以表示所述實體單元最後一次被執行寫入操作的時間(如,完成最後一次寫入操作的本地時間)。所述寫入操作例如是程式化資料至所述實體單元的一或多個實體子單元,或例如是程式化資料至所述實體單元的其他型態的實體位址。
相似地,每對一實體單元執行一個抹除操作時,處理器211會重置所述實體單元的最後讀取時間戳記(亦稱,第二時間戳記)為當前時間。即,在完成所述抹除操作時,第二時間戳記的值被記錄為當前時間(即,完成所述抹除操作的本地時間)。並且,每對所述實體單元執行讀取操作時,處理器211會更新所述實體單元的第二時間戳記為所述實體單元執行所述讀取操作的時間。即,對應一實體單元之第二時間戳記用以表示所述實體單元最後一次被執行讀取操作的時間(如,完成最後一次讀取操作的本地時間)。所述讀取操作例如是從所述實體單元的一或多個實體子單元讀取資料,或例如是從所述實體單元的其他型態的一或多個實體位址中讀取資料。
在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意 數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當儲存控制器211對可複寫式非揮發性記憶體模組220中的記憶胞(或實體單元)進行分組以執行對應的管理操作時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇區、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。
此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體單元所 映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在一實施例中,儲存控制器210還包括緩衝記憶體與電源管理電路。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體中存取所述資料、指令或系統資料。電源管理電路是耦接至處理器211並且用以控制儲存裝置20的電源。
圖2是根據本發明的一實施例所繪示的資料讀取方法的流程圖。
請同時參照圖1與圖2,在步驟S21中,處理器211從主機系統10接收讀取指令,其中所述讀取指令用以指示讀目標資料。詳細來說,當處理器211接收到所述讀取指令時,處理器211會根據所述讀取指令獲得儲存目標資料的邏輯位址,並且根據邏輯轉實體位址映射表來獲得可複寫式非揮發性記憶體模組中儲存目標資料的實體位址。
接著,在步驟S23中,處理器211根據所述讀取指令來辨識所述可複寫式非揮發性記憶體模組中儲存所述目標資料之目標實體單元,並且辨識所述目標實體單元的抹除次數值、第一時間戳記、第二時間戳記。如上所述,處理器211可根據讀取指令來獲得對應所述讀取指令的實體位址(即,儲存目標資料的實體 位址)。此外,處理器211可辨識所述實體位址是位於哪個實體單元中,即,處理器211可辨識所述實體位址所屬之實體單元,並且此實體單元(亦稱,目標實體單元)為儲存目標資料之實體單元。接著,在辨識出目標實體單元後,處理器211可讀取對應目標實體單元的系統資料,以辨識(獲得)所述目標實體單元的抹除次數值、第一時間戳記與第二時間戳記。
在步驟S25中,處理器211根據所述目標實體單元的所述抹除次數值、所述第一時間戳記、所述第二時間戳記從不同的多個讀取電壓組中選擇目標讀取電壓組,以使用所述目標讀取電壓組從所述目標實體單元讀取所述目標資料。以下會配合圖3來詳細說明步驟S25的細節。應說明的是,在本實施例中,是以三維三階記憶胞NAND型快閃記憶體模組(3D TLC NAND flash memory module)為例子來進行說明。
圖3為根據本發明的一實施例所繪示的選擇目標讀取電壓組的流程圖。在獲得所述目標實體單元的所述抹除次數值、所述第一時間戳記、所述第二時間戳記後,處理器211會將當前時間減去第一時間戳記所獲得的差值作為第一時間值,並且將當前時間減去第二時間戳記所獲得的差值作為第二時間值。所述當前時間指處理器211接收且執行所述讀取指令的目前的本地時間。也就是說,所述第一時間值(亦稱,保存時間)可用以表示目標實體單元距離之前的最後一次寫入操作的時間長度,所述第二時間值(亦稱,讀取間隔時間)可用以表示目標實體單元距離之前 的最後一次讀取操作的時間長度。接著,處理器211經由比較目標實體單元的抹除次數值與抹除次數門檻值、比較第一時間值與第一時間門檻值、比較第二時間值與第二時間門檻值來從多個讀取電壓組中選擇目標讀取電壓組,其中第一時間門檻值大於第二時間門檻值。
更詳細來說,處理器211會根據目標實體單元的抹除次數值、第一時間值與第二時間值來從8個讀取電壓組(如,第一讀取電壓組VS1、第二讀取電壓組VS2、第三讀取電壓組VS3、第四讀取電壓組VS4、第五讀取電壓組VS5、第六讀取電壓組VS6、第七讀取電壓組VS7、第八讀取電壓組VS8)中選擇其中一組作為目標讀取電壓組。此外,由於圖3是利用三維三階記憶胞NAND型快閃記憶體模組(3D TLC NAND flash memory module)為例子來進行說明,因此,為了讀取儲存在三階記憶胞的資料,所選擇的讀取電壓組會包含7個不同的電壓值(亦稱,讀取電壓值),並且處理器211可使用所述7個不同的讀取電壓值來從三維三階記憶胞NAND型快閃記憶體模組的記憶胞中讀取資料。
請參照圖3,舉例來說,在步驟S31中,處理器211判斷目標實體單元的抹除次數值是否小於抹除次數門檻值。廠商可根據可複寫式非揮發性記憶體模組的規格或是物理特性來預先設定所述抹除次數門檻值。若判定目標實體單元的抹除次數值小於抹除次數門檻值,如,目標實體單元的損耗並沒有到達一定的磨損程度(每一次的抹除操作皆會造成實體單元的磨損),在步驟S32 中,處理器211會判斷目標實體單元的第一時間值是否小於第一時間門檻值(亦稱,保存時間門檻值)。換言之,處理器211可藉此判斷已經被寫入於目標實體單元中的資料的保存時間是否大於或等於一定的保存時間(即,保存時間門檻值)。
若判定目標實體單元的第一時間值不小於第一時間門檻值,在步驟S34中,處理器211判斷目標實體單元的第二時間值是否小於第二時間門檻值(亦稱,讀取間隔時間門檻值)。換言之,處理器211可藉此判斷距離前次對目標實體單元所進行的讀取操作的時間是否大於或等於一定的讀取間隔時間(即,讀取間隔時間門檻值)。若判定目標實體單元的第二時間值小於第二時間門檻值,處理器211會從多個讀取電壓組中選擇第三讀取電壓組VS3作為目標讀取電壓組(即,步驟S34→是→VS3)。反之,在步驟S34中,若判定目標實體單元的第二時間值不小於第二時間門檻值,處理器211會從多個讀取電壓組中選擇第四讀取電壓組VS3作為目標讀取電壓組(即,步驟S34→否→VS4)。
應注意的是,在本實施例中,由於前一次的寫入操作與當前欲進行之本次讀取操作之間的時間間隔(如,第一時間值)也會影響本次讀取操作所讀取的資料的正確性。因此,當第一時間值小於第一時間門檻值時,本實施例也會對此小於第一時間門檻值的第一時間值來進行考量,即,判斷小於第一時間門檻值的第一時間值是否小於第二時間門檻值。舉例來說,若第一時間值小於第二時間門檻值,此在本次讀取操作之前的最後一次的寫入 操作,也會使本次的讀取操作不發生首次讀取現象(下文會詳述首次讀取現象的細節),進而使處理器211可採用不針對首次讀取現象而調整的讀取電壓組來進行當前要進行的讀取操作。因此,在第一時間值小於第一時間門檻值的情況下,處理器211更會去判斷第一時間值是否小於第二時間門檻值,以判斷應選擇的讀取電壓組。例如,若在步驟S32中,處理器211判定目標實體單元的第一時間值小於第一時間門檻值,接續至步驟S35,處理器211會判斷目標實體單元的第一時間值或第二時間值是否小於第二時間門檻值。若目標實體單元的第一時間值小於第二時間門檻值,或是目標實體單元的第二時間值小於第二時間門檻值(即,第一時間值或第二時間值的其中之一小於第二時間門檻值),處理器211會從多個讀取電壓組中選擇第一讀取電壓組VS1作為目標讀取電壓組(即,步驟S35→是→VS1)。反之,在步驟S35中,若目標實體單元的第一時間值與第二時間值皆不小於第二時間門檻值,處理器211會從多個讀取電壓組中選擇第二讀取電壓組VS2作為目標讀取電壓組(即,步驟S35→否→VS2)。
依此類推,經由步驟S31~S37,處理器211可根據目標實體單元的抹除次數值、第一時間值與第二時間值(以及用以比較之抹除次數門檻值、第一時間門檻值與第二時間門檻值)來從多個讀取電壓組VS1~VS8中決定(選擇)其中之一來作為對應所述目標實體單元的狀態的目標讀取電壓組。接著,決定好目標讀取電壓組後,處理器211便可直接使用所判定(所選擇)之目標 讀取電壓組從所述目標實體單元讀取所述目標資料。即,處理器211可直接使用目標讀取電壓組中的多個讀取電壓值來從所述目標實體單元讀取所述目標資料。如此一來,處理器211可直接選擇適合的讀取電壓來正確地讀取資料,並且處理器211可不需要因為所讀取資料的不可校正錯誤而調整讀取電壓的大小直到可正確讀取資料為止,進而增進了讀取操作的效率(因為避免了多次的讀取操作、讀取電壓的調整操作或額外的資料校正操作)。
圖4為根據本發明的一實施例所繪示的選擇目標讀取電壓組的規則表。
請參照圖4,簡單來說,處理器211亦可以查表的方式,利用如圖4所繪示的規則表來從所述多個讀取電壓組(VS1~VS8)中選擇目標讀取電壓組。具體來說,假設處理器211已辨識出目標實體單元的抹除次數值、第一時間值與第二時間值。接著,處理器211可查找所述規則表,藉由同時比較抹除次數值與抹除次數門檻值(即,X)、第一時間值與第一時間門檻值(即,Y)、第一時間值與第二時間門檻值(即,Z)、第二時間值與第二時間門檻值之間的大小關係,可找出對應的讀取電壓組。舉例來說,假設目標實體單元的抹除次數值小於抹除次數門檻值、目標實體單元的第一時間值不小於第一時間門檻值且目標實體單元的第二時間值小於第二時間門檻值,處理器211會根據規則表找到對應的讀取電壓組為第三讀取電壓組VS3,並且將第三讀取電壓組VS3作為目標讀取電壓組,以藉由目標讀取電壓組來開始執行當前的 讀取操作。應注意的是,若處理器211判定目標實體單元的抹除次數值小於抹除次數門檻值且目標實體單元的第一時間值小於第二時間門檻值,處理器211可不判斷目標實體單元的第二時間值的大小(如對角斜線所表示),並且直接從多個讀取電壓組中選擇第一讀取電壓組VS1作為目標讀取電壓組。因為,如上所述,在當下欲進行的讀取操作之前,假設具有時間間隔較近的寫入操作(第一時間值小於第二時間門檻值),因為此寫入操作會導致首次讀取現象不發生,故,可使用不針對首次讀取現象而調整的讀取電壓組(如,第一讀取電壓組或第五讀取電壓組)來進行當前要進行的讀取操作。相似地,若處理器211判定目標實體單元的抹除次數值不小於抹除次數門檻值且目標實體單元的第一時間值小於第二時間門檻值,處理器211可不判斷目標實體單元的第二時間值的大小,並且直接從多個讀取電壓組中選擇第五讀取電壓組VS5作為目標讀取電壓組。
圖5為根據本發明的一實施例所繪示的臨界電壓分佈與對應之讀取電壓的示意圖。
請參照圖5,如上所述,處理器211可使用所述7個不同的讀取電壓值來從三維三階記憶胞NAND型快閃記憶體模組的記憶胞中讀取資料。三階記憶胞NAND型快閃記憶體模組的每一記憶胞具有三個頁面來儲存位元資料,包括下頁面(Lower page,L),中頁面(Middle page,M),以及上頁面(Upper page,U)。每一記憶胞中的閘極電壓可依據預設讀取電壓組中的預設讀取電 壓V0~V6而區分為8種儲存狀態,如圖5所繪示之“L:1 M:1 U:1”、“L:1 M:1 U:0”、“L:1 M:0 U:0”、“L:1 M:0 U:1”、“L:0 M:0 U:1”、“L:0 M:0 U:0”、“L:0 M:1 U:0”與“L:0 M:1 U:1”。即,經由施加不同電壓值的預設讀取電壓V0~V6至一記憶胞上,處理器211可根據該記憶包之通道是否導通而判斷出該記憶胞所儲存之資料為“111”、“110”、“100”、“101”、“001”、“000”、“010”或“011”。
舉例來說,假設一記憶胞出廠時的預設臨界電壓分佈如圖5上方所繪示,並且處理器211可利用預設讀取電壓組中的預設讀取電壓V0~V6來準確地判斷記憶胞所儲存的(位元)狀態(亦稱,位元值,bit value),即,判定該記憶胞所儲存的資料。
然而,當記憶胞被寫入(程式化)資料且經過一段長時間(亦稱,第一時間門檻值)的存放時(如,該記憶胞長時間不再被寫入資料),所述記憶胞的臨界電壓分佈會發生所謂的久存(Retention)現象。若一記憶胞發生所述久存現象,所述記憶胞的臨界電壓分佈會如同圖5中間所繪示,相較於預設臨界電壓分佈,發生久存現象的記憶胞的臨界電壓分佈整體上會往左偏移。如此一來,若繼續利用預設讀取電壓組中的預設讀取電壓V0~V6來從(久存狀態)該記憶胞中讀取資料,可能會導致所判定的所述記憶胞的位元狀態錯誤。換言之,處理器211需調整預設讀取電壓V0~V6為讀取電壓V0’~V6’,以準確地讀取具有久存狀態的記憶胞。即,如圖5中間所繪示,調整後之讀取電壓V0’~V6’的 電壓值可接近位於每兩個相鄰的臨界電壓分佈的電壓間隔中線(如虛線所示)。
除此之外,三維記憶胞更具有“首次讀取現象(First Read Issue)”的問題。處理器211也不能利用預設讀取電壓組來準確地讀取具有所述“首次讀取現象”的記憶胞。更詳細來說,若三維三階記憶胞NAND型快閃記憶體模組的一實體單元在被寫入資料後,經過一定的時間(亦稱,第二時間門檻值)後才被讀取(即,距離前一次的被讀取的時間長度超過一定值),該實體單元的記憶胞的臨界電壓會不規則地向左或是向右偏移。此現象可稱為首次讀取現象。然而,若對一實體單元的兩次讀取操作的時間間隔小於第二時間門檻值,雖然第一次經由預設讀取電壓組的讀取操作會導致所讀取的資料發生錯誤,但第二次經由預設讀取電壓組的讀取操作所讀取的資料卻是正確的。也就是說,在兩次讀取操作(如,第一次讀取操作與第二次讀取操作)之間的時間間隔小於第二時間門檻值的情況下,較前一次的讀取操作(如,第一次讀取操作)所讀取的資料會發生大量錯誤(較後一次的讀取操作並不會發生大量錯誤),上述的現象可稱為首次讀取現象。換言之,在兩次讀取操作之間的時間間隔不小於第二時間門檻值的情況下,較後一次的讀取操作會導致首次讀取現象,即,較後一次的讀取操作所讀取的資料會具有大量錯誤。簡單來說,可視為,若本次讀取操作距離前次的讀取操作之間的時間間隔不小於第二時間門檻值,則本次讀取操作會發生首次讀取現象。
應注意的是,如上所述,就算兩次讀取操作(如,第一次讀取操作與第二次讀取操作)之間的時間間隔不小於第二時間門檻值,若前一次寫入操作與第一次讀取操作之間的時間間隔小於第二時間門檻值,所述第一次讀取操作所讀取到的資料也不會發生大量錯誤,即,不會導致首次讀取現象。也就是說,若本次對於目標實體單元的讀取操作與最後一次對於所述目標實體單元的寫入操作之間的時間間隔小於第二時間門檻值,本次讀取操作不會具有首次讀取現象。
舉例來說,如圖5下方所繪示,發生首次讀取現象的實體單元的記憶胞,其臨界電壓分佈會往左或是往右偏移。如此一來,若(經過一段時間後的第一次讀取)利用預設讀取電壓組中的預設讀取電壓V0~V6來從所述(具有首次讀取現象的)記憶讀取資料,會導致此次首次讀取操作所判定的所述記憶胞的位元狀態是錯誤的,並且所述發生首次讀取現象的多個記憶胞會導致所對應的讀取資料發生不可校正錯誤。換言之,處理器211需調整預設讀取電壓V0~V6為讀取電壓V0”~V6”,以準確地讀取具有久存狀態的記憶胞。即,如圖5下方所繪示,調整後之讀取電壓V0”~V6”的電壓值可接近位於每兩個相鄰的臨界電壓分佈的電壓間隔中線(如虛線所示)。
在本實施例中,上述對應目標實體單元之第一~第八讀取電壓組中的每一讀取電壓組的多個讀取電壓值是處理器211依據預設讀取電壓組、所述目標實體單元之抹除次數門檻值、所述 目標實體單元之第一時間值與所述目標實體單元之第二時間值、所述目標實體單元的一補償電壓值來計算的。
更詳細而言,處理器211可根據對應可複寫式非揮發性記憶體模組的電壓偏移補償表、第一時間值與第二時間值來計算所述補償電壓值。即,根據目標實體單元的第一時間值與第二時間值,處理器211可以查詢電壓偏移補償表來獲得對應第一時間值的第一補償電壓值與第二補償電壓值。所述第一補償電壓值用來調整讀取電壓,以讓被調整的讀取電壓可用於發生久存現象的記憶胞;所述第二補償電壓值用來調整讀取電壓,以讓被調整的讀取電壓可用於發生首次讀取現象的記憶胞。
在本實施例中,經由比較目標實體單元的抹除次數值與抹除次數門檻值可知道所述目標實體單元是否已經耗損(wear-out)(即,是否具有耗損現象);經由比較目標實體單元的第一時間值與第一時間門檻值可知道所述目標實體單元是否具有久存現象;經由比較目標實體單元的第二時間值與第二時間門檻值可知道所述目標實體單元是否具有首次讀取現象。換句話說,根據圖3、圖4的例子,處理器211可判斷出目標實體單元是否具有耗損現象、久存現象或首次讀取現象的其中之一或其組合,並且根據所述目標實體單元的狀態(所具有的現象)來對應地採用適合的讀取電壓組來進行讀取。
舉例來說,若一個目標實體單元的抹除次數值低於抹除次數門檻值、第一時間值低於第一時間門檻值且第二時間值低於 第二時間門檻值,則處理器211會判定此目標實體單元不具有耗損現象、久存現象與首次讀取現象,並且使用預設讀取電壓組來對此目標實體單元來執行讀取操作。在本實施例中,第一讀取電壓組VS1為預設讀取電壓組。
又例如,若一個目標實體單元的抹除次數值不低於抹除次數門檻值、第一時間值不低於第一時間門檻值且第二時間值不低於第二時間門檻值,則處理器211會判定此目標實體單元同時具有耗損現象、久存現象與首次讀取現象,並且使用第八讀取電壓組來對此目標實體單元來執行讀取操作。處理器211會利用對應久存現象的第一補償電壓值、對應首次讀取現象的第二補償電壓值以及對應耗損現象的第三補償電壓值來調整預設電壓組為第八讀取電壓組VS8。其中,如上所述,第一補償電壓值可根據第一時間值與電壓偏移補償表來進行查找,第二補償電壓值可根據第二時間值與電壓偏移補償表來進行查找,並且第三補償電壓值可根據抹除次數值與電壓偏移補償表來進行查找。
舉例來說,所述第八讀取電壓組VS8可利用下列公式(1)來計算:VS8 i =V0 i +V PECi +V Ri +V FRi (1)
其中,對於三階記憶胞(TLC)NAND型記憶體,“i”為0~6。(對於二階記憶胞(MLC)NAND型記憶體,“i”為0~2)。V0i為預設讀取電壓組的第一~第七預設讀取電壓值(如圖5所繪示之預設讀取電壓值V0~V6)。V PECi 為根據抹除次數值所查找出 的對應預設讀取電壓組的第一~第七預設讀取電壓值的其中之一的第三補償電壓值。V Ri 為根據第一時間值所查找出的對應預設讀取電壓組的第一~第七預設讀取電壓值的其中之一的第一補償電壓值。V FRi 為根據第二時間值所查找出的對應預設讀取電壓組的第一~第七預設讀取電壓值的其中之一的第二補償電壓值。
例如,第八讀取電壓組VS8中的第1個(i=0)讀取電壓值的計算公式為VS80=V0 0 +V PEC0 +V R0 +V FR0 。其中,V0 0 為預設讀取電壓組的第一預設讀取電壓值V0
又例如,由於第二讀取電壓組是用以讀取僅具有首次讀取現象的目標實體單元。第二讀取電壓組VS2可利用下列公式(2)來計算:VS2 i =V0 i +V FRi (2)
又例如,由於第三讀取電壓組是用以讀取僅具有久存現象的目標實體單元。第三讀取電壓組VS3可利用下列公式(3)來計算:VS3 i =V0 i +V Ri (3)
又例如,由於第四讀取電壓組是用以讀取具有久存現象與首次讀取現象的目標實體單元。第四讀取電壓組VS4可利用下列公式(4)來計算:VS4 i =V0 i +V Ri +V FRi (4)
又例如,由於第五讀取電壓組是用以讀取僅具有耗損現象的目標實體單元。第五讀取電壓組VS5可利用下列公式(5)來計 算:VS5 i =V0 i +V PECi (5)
又例如,由於第六讀取電壓組是用以讀取具有耗損現象與首次讀取現象的目標實體單元。第六讀取電壓組VS6可利用下列公式(6)來計算:VS6 i =V0 i +V PECi +V FRi (6)
又例如,由於第七讀取電壓組是用以讀取僅具有耗損現象與久存現象的目標實體單元。第七讀取電壓組VS7可利用下列公式(7)來計算:VS7 i =V0 i +V PECi +V Ri (7)
應注意的是,由於在出廠時,廠商即可針對儲存裝置所使用之記憶體模組的記憶胞特性來進行實驗,以計算出分別對應不同抹除次數值的範圍、不同第一時間值的範圍與不同第二時間值的範圍的第三補償電壓值、第一補償電壓值與第二補償電壓值。因此,處理器211在辨識到目標實體單元抹除次數值、第一時間值與第二時間值後,可即時地根據上述方法來根據預設讀取電壓組與所述目標實體單元的第一、第二、第三補償電壓值計算對應的目標讀取電壓組來對目標實體單元讀取資料。如此一來,處理器211所採用的目標讀取電壓組可對應當前目標實體單元的臨界電壓的偏移狀態來進行有效率地讀取。
綜上所述,本發明實施例所提供的資料讀取方法以及儲存控制器,可根據所接收之讀取指令來辨識對應該讀取指令之可 複寫式非揮發性記憶體模組中的一目標實體單元,並且辨識目標實體單元的抹除次數值、第一時間戳記與第二時間戳記,以在執行一次讀取操作的情況下,直接使用對應目標實體單元的狀態的讀取電壓來從目標實體單元中讀取目標資料,進而提昇讀取資料的效率與正確性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。

Claims (12)

  1. 一種資料讀取方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體單元,所述方法包括:從一主機系統接收一讀取指令,其中該讀取指令用以指示讀取一目標資料;根據該讀取指令來辨識該可複寫式非揮發性記憶體模組中儲存該目標資料之一目標實體單元,並且辨識該目標實體單元的一抹除次數值、一第一時間戳記、一第二時間戳記,其中該第一時間戳記記錄該目標實體單元最後一次被寫入的時間,並且該第二時間戳記記錄該目標實體單元最後一次被讀取的時間;以及根據該目標實體單元的該抹除次數值、該第一時間戳記、該第二時間戳記從不同的多個讀取電壓組中選擇一目標讀取電壓組,以使用該目標讀取電壓組從該目標實體單元讀取該目標資料。
  2. 如申請專利範圍第1項所述的資料讀取方法,其中該可複寫式非揮發性記憶體模組為一三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)。
  3. 如申請專利範圍第1項所述的資料讀取方法,更包括:每對該目標實體單元執行一抹除操作時,對該目標實體單元的該抹除次數值累加1;每對該目標實體單元執行一抹除操作時,重置該目標實體單 元的該第一時間戳記為當前時間,並且每對目標實體單元執行一寫入操作時,更新該第一時間戳記為該目標實體單元執行該寫入操作的時間;以及每對該目標實體單元執行一抹除操作時,重置該目標實體單元的該第二時間戳記為當前時間,並且每對目標實體單元執行一讀取操作時,更新該第二時間戳記為該目標實體單元執行該讀取操作的時間。
  4. 如申請專利範圍第3項所述的資料讀取方法,其中上述根據該目標實體單元的該抹除次數值、該第一時間戳記、該第二時間戳記從不同的該些讀取電壓組中選擇該目標讀取電壓組的步驟包括:將一當前時間減去該第一時間戳記的差值作為一第一時間值;將該當前時間減去該第二時間戳記的差值作為一第二時間值;以及經由比較該目標實體單元的該抹除次數值與一抹除次數門檻值、比較該第一時間值與一第一時間門檻值、比較該第二時間值與一第二時間門檻值來從該些讀取電壓組中選擇該目標讀取電壓組,其中該第一時間門檻值大於該第二時間門檻值。
  5. 如申請專利範圍第4項所述的資料讀取方法,上述經由比較該目標實體單元的該抹除次數值與該抹除次數門檻值、比較該第一時間值與該第一時間門檻值、比較該第二時間值與該第二 時間門檻值來從該些讀取電壓組中選擇該目標讀取電壓組的步驟包括:若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,從該些讀取電壓組中選擇一第一讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值且該第一時間值小於該第二時間門檻值,從該些讀取電壓組中選擇該第一讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,從該些讀取電壓組中選擇一第二讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,從該些讀取電壓組中選擇一第三讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,從該些讀取電壓組中選擇一第四讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值不小於該抹除次數門檻 值、該第一時間值小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,從該些讀取電壓組中選擇一第五讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值不小於該抹除次數門檻值且該第一時間值小於該第二時間門檻值,從該些讀取電壓組中選擇該第五讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,從該些讀取電壓組中選擇一第六讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,從該些讀取電壓組中選擇一第七讀取電壓組作為該目標讀取電壓組;以及若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,從該些讀取電壓組中選擇一第八讀取電壓組作為該目標讀取電壓組。
  6. 如申請專利範圍第5項所述的資料讀取方法,所述方法更包括:根據對應該可複寫式非揮發性記憶體模組的一電壓偏移補償表、該第一時間值與該第二時間值來計算一補償電壓值; 根據一預設讀取電壓組、該抹除次數門檻值、該第一時間值與該第二時間值、該補償電壓值來計算該些讀取電壓組中每一個讀取電壓組的多個讀取電壓值。
  7. 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括:一連接介面電路,用以耦接至一主機系統;一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體單元;一處理器,耦接至該連接介面電路及該記憶體介面控制電路;以及一資料管理電路,耦接至該處理器、該連接介面電路及該記憶體介面控制電路,其中該處理器用以從該主機系統接收一讀取指令,其中該讀取指令用以指示讀取一目標資料,其中該處理器更用以根據該讀取指令來辨識該可複寫式非揮發性記憶體模組中儲存該目標資料之一目標實體單元,並且辨識該目標實體單元的一抹除次數值、一第一時間戳記、一第二時間戳記,其中該第一時間戳記記錄該目標實體單元最後一次被寫入的時間,並且該第二時間戳記記錄該目標實體單元最後一次被讀取的時間,其中該處理器更用以根據該目標實體單元的該抹除次數值、 該第一時間戳記、該第二時間戳記從不同的多個讀取電壓組中選擇一目標讀取電壓組,以使用該目標讀取電壓組從該目標實體單元讀取該目標資料。
  8. 如申請專利範圍第7項所述的儲存控制器,其中該可複寫式非揮發性記憶體模組為一三維三階記憶胞NAND型快閃記憶體模組(3D TLC NAND flash memory module)或垂直三階記憶胞NAND型快閃記憶體模組(Vertical TLC NAND flash memory module)。
  9. 如申請專利範圍第7項所述的儲存控制器,每對該目標實體單元執行一抹除操作時,該處理器對該目標實體單元的該抹除次數值累加1,其中每對該目標實體單元執行一抹除操作時,該處理器重置該第一時間戳記為當前時間,並且每對目標實體單元執行一寫入操作時,該處理器更新該第一時間戳記為該目標實體單元執行該寫入操作的時間,其中每對該目標實體單元執行一抹除操作時,該處理器重置該目標實體單元的該第二時間戳記為當前時間,並且每對目標實體單元執行一讀取操作時,該處理器更新該第二時間戳記為該目標實體單元執行該讀取操作的時間。
  10. 如申請專利範圍第9項所述的儲存控制器,其中在上述根據該目標實體單元的該抹除次數值、該第一時間戳記、該第二 時間戳記從不同的該些讀取電壓組中選擇該目標讀取電壓組的運作中,該處理器將一當前時間減去該第一時間戳記的差值作為一第一時間值;該處理器將該當前時間減去該第二時間戳記的差值作為一第二時間值;以及該處理器經由比較該目標實體單元的該抹除次數值與一抹除次數門檻值、比較該第一時間值與一第一時間門檻值、比較該第二時間值與一第二時間門檻值來從該些讀取電壓組中選擇該目標讀取電壓組,其中該第一時間門檻值大於該第二時間門檻值。
  11. 如申請專利範圍第10項所述的儲存控制器,其中在上述該處理器經由比較該目標實體單元的該抹除次數值與該抹除次數門檻值、比較該第一時間值與該第一時間門檻值、比較該第二時間值與該第二時間門檻值來從該些讀取電壓組中選擇該目標讀取電壓組的運作中,若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第一讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值且該第一時間值小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇該第一讀取電壓組作為該目標讀取電壓組; 若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第二讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第三讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第四讀取電壓組作為該目標讀取電壓組,其中該第二讀取電壓組的平均電壓值大於該第一讀取電壓組的平均電壓值,該第一讀取電壓組的平均電壓值大於該第四讀取電壓組的平均電壓值,並且該第四讀取電壓組的平均電壓值大於該第三讀取電壓組的平均電壓值;若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第五讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值不小於該抹除次數門檻值且該第一時間值小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇該第五讀取電壓組作為該目標讀取電壓組; 若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第六讀取電壓組作為該目標讀取電壓組;若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第七讀取電壓組作為該目標讀取電壓組;以及若該目標實體單元的該抹除次數值不小於該抹除次數門檻值、該第一時間值不小於該第一時間門檻值且該第二時間值不小於該第二時間門檻值,該處理器從該些讀取電壓組中選擇一第八讀取電壓組作為該目標讀取電壓組,其中該第六讀取電壓組的平均電壓值大於該第五讀取電壓組的平均電壓值,該第五讀取電壓組的平均電壓值大於該第八讀取電壓組的平均電壓值,並且該第八讀取電壓組的平均電壓值大於該第七讀取電壓組的平均電壓值。
  12. 如申請專利範圍第11項所述的儲存控制器,其中該處理器根據對應該可複寫式非揮發性記憶體模組的一電壓偏移補償表、該第一時間值與該第二時間值來計算一補償電壓值,其中該處理器根據一預設讀取電壓組、該抹除次數門檻值、該第一時間值與該第二時間值、該補償電壓值來計算該些讀取電壓組中每一個讀取電壓組的多個讀取電壓值。
TW106122810A 2017-07-07 2017-07-07 資料讀取方法以及儲存控制器 TWI623878B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW106122810A TWI623878B (zh) 2017-07-07 2017-07-07 資料讀取方法以及儲存控制器
US15/684,945 US10698762B2 (en) 2017-07-07 2017-08-24 Data reading method and storage controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106122810A TWI623878B (zh) 2017-07-07 2017-07-07 資料讀取方法以及儲存控制器

Publications (2)

Publication Number Publication Date
TWI623878B true TWI623878B (zh) 2018-05-11
TW201907287A TW201907287A (zh) 2019-02-16

Family

ID=62951430

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106122810A TWI623878B (zh) 2017-07-07 2017-07-07 資料讀取方法以及儲存控制器

Country Status (2)

Country Link
US (1) US10698762B2 (zh)
TW (1) TWI623878B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074174B2 (en) 2019-01-24 2021-07-27 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
TWI769100B (zh) * 2019-01-24 2022-06-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI645296B (zh) * 2017-10-17 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
US10366763B2 (en) * 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
CN109871594B (zh) * 2019-01-28 2023-02-03 山东华芯半导体有限公司 一种NAND Flash特性模型建立方法
KR20200099441A (ko) * 2019-02-14 2020-08-24 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11023172B2 (en) * 2019-07-26 2021-06-01 Micron Technology, Inc. Selecting read voltage using write transaction data
CN113010458B (zh) * 2019-12-19 2023-01-17 深圳大心电子科技有限公司 存储器管理方法、存储控制器与存储装置
US11199999B2 (en) * 2020-01-30 2021-12-14 Micron Technology, Inc. Management of write operations in a non-volatile memory device using a variable pre-read voltage level
CN113362877B (zh) * 2020-03-03 2022-06-03 杭州海康存储科技有限公司 一种阈值电压确定方法和装置
CN111459413B (zh) * 2020-03-31 2024-04-02 深圳忆联信息系统有限公司 提升ssd性能的方法、装置、计算机设备及存储介质
US11182237B1 (en) * 2020-08-21 2021-11-23 Micron Technology, Inc. Selective sampling of a data unit based on program/erase execution time
US11977774B2 (en) * 2021-12-21 2024-05-07 Micron Technology, Inc. Charge loss mitigation throughout memory device lifecycle by proactive window shift

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258496A1 (en) * 2010-04-14 2011-10-20 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
US20120311402A1 (en) * 2011-06-02 2012-12-06 Phison Electronics Corp. Data reading method, memory controller, and memory storage device
US20130073924A1 (en) * 2011-09-15 2013-03-21 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US20130194865A1 (en) * 2012-01-30 2013-08-01 Hitachi Global Storage Technologies Netherlands B.V. Implementing enhanced data read for multi-level cell (mlc) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US8817413B1 (en) * 2013-07-19 2014-08-26 Western Digital Technologies, Inc. Disk lubricant management in data storage device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102292172B1 (ko) * 2014-06-23 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
KR102456104B1 (ko) * 2015-08-24 2022-10-19 삼성전자주식회사 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
US9711231B1 (en) * 2016-06-24 2017-07-18 Sandisk Technologies Llc System solution for first read issue using time dependent read voltages
US9934859B1 (en) * 2016-12-27 2018-04-03 Intel Corporation Determining demarcation voltage via timestamps

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258496A1 (en) * 2010-04-14 2011-10-20 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
US20120311402A1 (en) * 2011-06-02 2012-12-06 Phison Electronics Corp. Data reading method, memory controller, and memory storage device
US20130073924A1 (en) * 2011-09-15 2013-03-21 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US20130194865A1 (en) * 2012-01-30 2013-08-01 Hitachi Global Storage Technologies Netherlands B.V. Implementing enhanced data read for multi-level cell (mlc) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US8817413B1 (en) * 2013-07-19 2014-08-26 Western Digital Technologies, Inc. Disk lubricant management in data storage device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074174B2 (en) 2019-01-24 2021-07-27 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
TWI746927B (zh) * 2019-01-24 2021-11-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI769100B (zh) * 2019-01-24 2022-06-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US11487655B2 (en) 2019-01-24 2022-11-01 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations

Also Published As

Publication number Publication date
US20190012228A1 (en) 2019-01-10
TW201907287A (zh) 2019-02-16
US10698762B2 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
TWI623878B (zh) 資料讀取方法以及儲存控制器
CN111078149B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI587304B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US10310739B2 (en) Memory management method, memory control circuit unit and memory storage device
TWI591635B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI650757B (zh) 解碼方法以及儲存控制器
TWI551991B (zh) 記憶體管理方法與系統及其記憶體儲存裝置
TWI661427B (zh) 記憶體管理方法以及儲存控制器
US10579518B2 (en) Memory management method and storage controller
TWI640008B (zh) 資料讀取方法以及儲存控制器
TW201413448A (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
US10884665B2 (en) Data reading method, storage controller and storage device for optimizing read voltages
TWI651726B (zh) 解碼方法以及儲存控制器
TW201703052A (zh) 平均磨損方法、記憶體儲存裝置及記憶體控制電路單元
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TW201947402A (zh) 記憶體管理方法以及儲存控制器
TW201730888A (zh) 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
CN111078146B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TW201351137A (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI616807B (zh) 資料寫入方法以及儲存控制器
TWI686697B (zh) 記憶體管理方法以及儲存控制器
CN107045890B (zh) 数据保护方法、存储器控制电路单元及存储器存储装置
TW201835753A (zh) 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
US9312013B1 (en) Configuration method of erase operation, memory controlling circuit unit and memory storage device
CN109273037B (zh) 数据读取方法以及存储控制器