TW201942907A - 記憶體管理方法以及儲存控制器 - Google Patents
記憶體管理方法以及儲存控制器 Download PDFInfo
- Publication number
- TW201942907A TW201942907A TW107111550A TW107111550A TW201942907A TW 201942907 A TW201942907 A TW 201942907A TW 107111550 A TW107111550 A TW 107111550A TW 107111550 A TW107111550 A TW 107111550A TW 201942907 A TW201942907 A TW 201942907A
- Authority
- TW
- Taiwan
- Prior art keywords
- read voltage
- unit
- test
- value
- processor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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 multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
Abstract
本發明提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種記憶體管理方法,其中所述可複寫式非揮發性記憶體模組具有多個實體單元,並且所述多個實體單元中的每一個實體單元具有多個字元線。所述方法包括根據一特定事件的發生,對所述多個實體單元中的目標實體單元執行第一檢查操作;以及根據對應所述目標實體單元的第一檢查操作的檢查結果來判斷是否需要對所述目標實體單元的有效資料執行第一操作。
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的記憶體管理方法與儲存控制器。
一般來說,配置有可複寫式非揮發性記憶體模組的儲存裝置的控制器會利用特定的記憶體管理操作(如,耗損均衡操作)來使可複寫式非揮發性記憶體模組的多個實體單元各自的抹除次數值的差異變小,進而使可複寫式非揮發性記憶體模組整體的所述多個實體單元的壽命可以平均地老化。
一般傳統作法在啟動耗損均衡操作的時機點例如是依據辨識是否所述多個實體單元中具有抹除次數值超過另一門檻值的實體單元,以對超過該另一門檻值的實體單元進行耗損均衡操作。
然而,在一些情況下,若一實體單元的抹除次數值較高,並不一定表示此實體單元的老化程度較高。即,此實體單元並不一定需要被執行耗損均衡操作。也就是說,傳統的「依據抹除次數值來判斷啟動耗損均衡操作等記憶體管理操作」的方式,不一定可以真正地針對已老化的實體單元來進行管理。換言之,傳統的作法會忽略掉已老化但抹除次數值低的實體單元,而使得可複寫式非揮發性記憶體模組的使用空間/壽命降低。
基此,如何使用其他方式來作為判斷執行耗損均衡操作或其他類似的記憶體管理操作的基準,以改善傳統作法的缺陷,進而提昇可複寫式非揮發性記憶體模組整體的壽命,是本領域人員研究的課題之一。
本發明提供一種記憶體管理方法與儲存控制器,可在不利用抹除次數值的情況下判斷應執行記憶體管理操作的特定實體單元。
本發明的一實施例提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種記憶體管理方法,其中所述可複寫式非揮發性記憶體模組具有多個實體單元,並且所述多個實體單元中的每一個實體單元具有多個字元線。所述方法包括根據一特定事件的發生,對所述多個實體單元中的目標實體單元執行第一檢查操作;以及根據對應所述目標實體單元的所述檢查結果來判斷是否需要對所述目標實體單元的有效資料執行第一操作。所執行的第一檢查操作包括根據所述特定事件,辨識所述目標實體單元的多個目標字元線中的第一目標字元線;辨識所述第一目標字元線的第一最佳化讀取電壓組以及第一預設讀取電壓組,其中所述第一最佳化讀取電壓組;辨識第一預定門檻值,其中所述第一預定門檻值是根據所述儲存裝置的一錯誤校正能力所獲得;以及判斷所述第一最佳化讀取電壓組與所述第一預設讀取電壓組之間的第一電壓偏離值是否大於所述第一預定門檻值 ,其中若所述第一電壓偏離值大於所述第一預定門檻值,判定對應所述目標實體單元的檢查結果為失敗,其中若所述第一電壓偏離值不大於所述第一預定門檻值,判定對應所述目標實體單元的所述檢查結果為成功。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括:連接介面電路、記憶體介面控制電路、讀取電壓管理電路單元以及處理器。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個字元線。處理器耦接至所述連接介面電路、所述記憶體介面控制電路及所述讀取電壓管理電路單元。所述處理器用以根據特定事件的發生,對所述多個實體單元中的一目標實體單元執行第一檢查操作,其中在所執行的所述第一檢查操作中,所述處理器根據所述特定事件,辨識所述目標實體單元的多個目標字元線中的第一目標字元線;所述處理器經由所述讀取電壓管理電路單元辨識所述第一目標字元線的一第一最佳化讀取電壓組以及第一預設讀取電壓組,其中所述第一最佳化讀取電壓組;所述處理器辨識一第一預定門檻值,其中所述第一預定門檻值是根據所述儲存裝置的一錯誤校正能力所獲得;以及所述處理器判斷所述第一最佳化讀取電壓組與所述第一預設讀取電壓組之間的第一電壓偏離值是否大於所述第一預定門檻值,其中若所述第一電壓偏離值大於所述第一預定門檻值,所述處理器判定對應所述目標實體單元的檢查結果為失敗,其中若所述第一電壓偏離值不大於所述第一預定門檻值,所述處理器判定對應所述目標實體單元的所述檢查結果為成功;以及所述處理器更用以根據對應所述目標實體單元的所述檢查結果來判斷是否需要對所述目標實體單元的有效資料執行第一操作。
基於上述,本發明實施例所提供的記憶體管理方法以及儲存控制器,可在特定事件發生時,對實體單元執行檢查操作,以藉由所述實體單元最佳化讀取電壓組與預設讀取電壓組之間的電壓偏離值或藉由實體單元的葛雷碼計數偏離值總和來判斷是否需要執行記憶體管理操作,以更準確地對實質上需要執行記憶體管理操作的實體單元來執行記憶體管理操作,進而增進了可複寫式非揮發性記憶體模組的壽命並且增進了所儲存之資料的安全性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(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 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個位元的快閃記憶體模組)、四階記憶胞(Quadruple Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(實體頁面)。此外,多個實體程式化單元可組成一個實體單元(實體區塊或實體抹除單元)。在本實施例中,以三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組做例子來說明,即,在下述的實施例中,會將一個可儲存3個位元值的記憶胞作為一個實體程式化單元(即,在每次程式化操作中,會對一個實體程式化單元接著一個實體程式化單元來施加程式化電壓以程式化資料),其中每一個記憶胞可區分為各自可儲存一個位元值的下實體頁面(Lower Physical Page)、中實體頁面(Middle Physical Page)與上實體頁面(Upper Physical Page)。
在本實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。每一實體單元會具有多個記憶胞。在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當處理器211對可複寫式非揮發性記憶體模組220中的記憶胞(或實體單元)進行分組以執行對應的管理操作時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。
應注意的是,在本實施例中,用以記錄一實體單元的資訊的系統資料可利用該實體單元中的一或多個記憶胞來記錄,或是利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個記憶胞來記錄。在本實施例中,所述對應一實體單元的系統資料包括該實體單元的抹除次數值(Program erase cycle,PEC)、資料存放時間戳記(Data Retention Timestamp,DRT)、讀取次數值(Read counter value)等資訊。更詳細來說,每當處理器211對一實體單元進行抹除操作時,在完成所述抹除操作後,處理器211會對當前對應該實體單元的抹除次數值加1(如,抹除次數值會隨著每次的抹除操作而從0開始累加)。即,抹除次數值可反映出其所對應的實體單元的被抹除的次數的總和。
所述資料存放時間戳記用以指示儲存於對應的實體單元中的資料的存放時間。時間戳記的大小(數值差異)可用來表示時間的先後順序。本發明並不限定所述時間戳記的詳細格式。每對所述實體單元執行寫入操作時,處理器211會更新所述實體單元的資料存放時間戳記為所述實體單元執行所述寫入操作的儲存裝置的當前時間。即,對應一實體單元之資料存放時間戳記用以表示所述實體單元最後一次被執行寫入操作的時間(如,完成最後一次寫入操作的本地時間)。所述寫入操作例如是程式化資料至所述實體單元的一或多個記憶胞,或例如是程式化資料至所述實體單元的其他型態的實體位址。接著,處理器211可經由資料存放時間戳記來計算實體單元中的資料距離前一次的寫入已存放了多長的時間。
舉例來說,在本實施例中,處理器211更可利用儲存裝置的當前時間(current time)與一個實體單元的資料存放時間戳記來計算所述實體單元的存放時間值。所述存放時間值用以表示從所述實體單元最後一次被寫入資料的時間至當前時間之間的時間長度。即,一實體單元的存放時間值越大,所述實體單元所儲存的資料被存放地越久,並且在此存放時間內此筆資料都未被存取/更新。
所述讀取次數值用以統計對應的實體單元被讀取的次數,並且所述讀取次數值會在對應的實體單元被抹除時而被清空。
在本實施例中,處理器211可根據該可複寫式非揮發性記憶體模組220的多個實體單元的統計值劃分所述多個實體單元至多個實體單元組。所述統計值包括前述的抹除次數值、資料存放時間戳記、讀取次數值等資訊的其中之一或其組合。被劃分至同一實體單元組的多個實體單元會具有較接近的物理特性。處理器211可對劃分至同一個實體單元組的實體單元經由同一組讀取電壓組來進行資料的讀取(如,使用相同的讀取電壓組來下達讀取指令序列,以對屬於相同實體單元組的實體單元來進行讀取操作)。此外,處理器211更可對於被劃分至同一實體單元組的多個實體單元進行同一種記憶體管理操作(如,耗損均衡操作、垃圾回收操作、資料合併操作等)。例如,在本實施例中,是以資料存放時間戳記作為基準來所述多個實體單元來劃分群組,因此,被劃分至同一個實體單元組中的多個實體單元會具有相近的資料存放時間戳記。在此情況下,若處理器211判定一實體單元組中的一實體單元需要被執行一記憶體管理操作,如,耗損均衡操作,則此實體單元組中的其他多個實體單元也可能需要被執行相同的記憶體管理操作。
在其他實施例中,處理器211可根據該可複寫式非揮發性記憶體模組220的多個字元線的統計值劃分所述多個字元線至多個字元線組(處理器211可統計每個字元線的上述統計值),並且被劃分至同一字元線組的多個字元線會具有較接近的物理特性。應注意的是,以下的實施例是在根據資料存放時間戳記將多個實體單元劃分為多個實體單元組的情境下所做的說明。
儲存控制器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可藉由實體轉邏輯位址映射表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在本實施例中,錯誤檢查與校正電路214是耦接至處理器211並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當處理器211從主機系統10中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且處理器211會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組220中。之後,當處理器211從可複寫式非揮發性記憶體模組220中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路214會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。此外,在錯誤檢查與校正程序後,若成功解碼所讀取之資料,錯誤檢查與校正電路214可回傳對應所述所讀取之資料的錯誤位元值數目給處理器211。處理器211可經由所述所讀取之資料的錯誤位元值數目了解用以儲存所述所讀取之資料的實體單元的不穩定程度(老化程度)。
在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。
在本實施例中,讀取電壓管理電路單元215包括葛雷碼計數電路2151與讀取電壓最佳化電路2152。所述讀取電壓管理電路單元215用以執行對多個實體單元或/及多個字元線的讀取電壓進行管理。
更具體來說,處理器211可在特定的時間點來選擇可複寫式非揮發性記憶體模組220的多個實體單元中的一個實體單元來執行對應該實體單元的讀取電壓最佳化操作。
舉例來說,處理器211可在(1)儲存裝置20閒暇(即,儲存裝置20閒置超過一預定時間門檻值)時;(2)儲存裝置開電時;或(3)從一實體單元所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,來從所有實體單元中選擇一目標實體單元進行讀取電壓最佳化操作。此外,處理器211亦可根據錯誤檢查與校正電路214所回傳的錯誤位元數,來選擇目標實體單元。具體來說,當從一實體單元所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,其中該實體單元被設定為該目標實體單元。應注意的是,被選擇之目標實體單元儲存有資料,即,已被程式化資料。此外,若對應一目標實體單元的讀取電壓最佳化操作已經完成且獲得對應該目標實體單元的最佳化讀取電壓組,讀取電壓管理電路單元215可記錄對應該目標實體單元的最佳化讀取電壓組。
在一實施例中,處理器211可對一個字元線進行讀取電壓最佳化操作,並且記錄對應該字元線的最佳化讀取電壓組。
以下會配合多個圖式來詳細說明本實施例所提供的記憶體管理方法的細節。
圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。請同時參照圖1與圖2,在步驟S21中,處理器211根據特定事件的發生,對多個實體單元中的目標實體單元執行第一檢查操作。具體來說,本實施例會使用兩種檢查操作(即,利用最佳化讀取電壓組與預設讀取電壓組之間的電壓偏離值的第一檢查操作與利用第二檢查操作)來對目標實體單元進行檢查,以藉由對應的檢查結果來判斷是否要對該目標實體單元執行記憶體管理操作(亦稱,第一操作)。
在本實施例中,所述特定事件至少包括下列事件(1)~(3)。事件(1): 經由對應所述目標字元線或所述目標實體單元的讀取電壓最佳化操作被執行完畢以獲得所述第一最佳化讀取電壓組,其中反應於所獲得之所述第一最佳化讀取電壓組,執行所述第一檢查操作。具體來說,在本實施例中,在獲得一最佳化讀取電壓組後,會順便執行利用該最佳化讀取電壓組的第一檢查操作,以判斷是否要對所述最佳化讀取電壓組所對應的實體單元/字元線執行第一操作。
事件(2):所述多個實體單元中的一實體單元的一存放時間值大於一存放時間門檻值,其中所述實體單元被設定為所述目標實體單元,所述實體單元的存放時間值是根據所述儲存裝置的當前時間與所述實體單元的一時間戳記或一檢查時間戳記來計算的。具體來說,如上所述,每個實體單元的存放時間值可根據所述儲存裝置的當前時間與所述實體單元的資料存放時間戳記來計算,並且所計算後之存放時間值可用以表示所屬之實體單元的所儲存的資料已經存放且未被存取的時間。在本實施例中,所假設的情境是當一實體單元中的資料被儲存且未被存取的時間越長,越會發生久存錯誤的現象(亦稱,久存現象)。若一儲存有資料的實體單元/字元線發生了久存現象,則此實體單元/字元線的多個記憶胞的臨界電壓分布會發生偏移,進而導致了所述多個記憶胞所儲存的位元值不能經由使用預設的讀取電壓組來正確地讀取出來,即,此實體單元/字元線所儲存的資料的錯誤位元數會變得很高,甚至可能會超過錯誤檢查與校正電路214的錯誤校正能力。所述錯誤校正能力用以指示錯誤檢查與校正電路214可校正的一最大錯誤位元數。也就是說,若儲存在一實體單元中的資料的存放時間值很長,可能會導致此資料的錯誤位元數超過錯誤檢查與校正電路214的錯誤校正能力,則錯誤檢查與校正電路214無法對此資料進行錯誤校正,進而導致讀取此資料時會發生錯誤。因此,當處理器211發現一實體單元的存放時間值長於一特定時間(如,存放時間門檻值)時,處理器211會判定事件(2)發生,並且將該實體單元設定為要執行檢查操作的目標實體單元,以藉由檢查操作的結果來判斷該目標實體單元是否需執行相應的記憶體管理操作。
事件(3):當所述儲存裝置的一計數器值(counter value)被累計到一檢查計數值時,其中所述計數器值會隨著所述儲存裝置的操作時間而被累加,其中反應於所述計數器值被累計到所述檢查計數值,歸零所述計數器值,並且選擇具有最大的所述存放時間值的一實體單元來作為所述目標實體單元以執行所述第一檢查操作。具體來說,在本實施例中,處理器211會藉由儲存控制器210的計數器來週期性地執行檢查操作。也就是說,所述計數器會隨著時間來累計計數器值,並且當所累計之計數器值到達對應一週期的檢查計數值時,便會通知處理器211執行檢查操作,並且清空所累計的計數器值。當處理器211週期性地執行對應事件(3)的檢查操作時,處理器211會根據存放時間值從所有實體單元中選擇具有最大的存放時間值的實體單元作為目標實體單元,或根據存放時間值,選擇具有較大存放時間值的多個實體單元作為目標實體單元。本發明並不限於利用累加的計數器或是倒數的計數器。
以下利用圖2所繪示的步驟S211~S216來說明第一檢查操作的細節。
請參照圖2,在步驟S211中,處理器211根據所述特定事件,辨識所述目標實體單元的多個目標字元線中的第一目標字元線。具體來說,如上所述,處理器211會根據特定事件的不同,而使用不同的條件來選擇目標實體單元,以對此目標實體單元執行第一檢查操作。此外,處理器211會先從目標實體單元的多個字元線(亦稱,目標字元線)中選擇一或多個字元線作為第一目標字元線。在本實施例中,處理器211會選擇目標實體單元中最先被寫入資料的字元線作為第一目標字元線。
在本實施例中,第一目標字元線的儲存有資料。具體來說,每個字元線的多個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且所述葛雷碼的總數為N。應注意的是,根據可複寫式非揮發性記憶體模組220的種類,N可為大於2的預定正整數(亦稱,第一預定正整數)。例如,若可複寫式非揮發性記憶體模組220為MLC,則N=4;若可複寫式非揮發性記憶體模組220為SLC,則N=2;若可複寫式非揮發性記憶體模組220為QLC,則N=16。換言之,第一目標字元線的多個記憶胞可儲存有分別對應不同葛雷碼的位元值。其他相關之葛雷碼的細節會配合之後的圖4來做說明。
接著,在步驟S212中,處理器211辨識所述第一目標字元線的第一最佳化讀取電壓組以及第一預設讀取電壓組,其中所述第一最佳化讀取電壓組。具體來說,在出廠時,廠商會先設定一組預設讀取電壓組,並且處理器211可利用預設讀取電壓組來執行讀取操作,以從可複寫式非揮發性記憶體模組220的實體單元中讀取資料。然而,隨著時間的經過,原本應用於一實體單元的預設讀取電壓組可能會不再適用,並且處理器211可指示讀取電壓管理電路單元215對該實體單元(或字元線)執行讀取電壓最佳化操作,以獲得最佳化讀取電壓組,並且記錄於讀取電壓管理電路單元215。也就是說,處理器211可經由讀取電壓管理電路單元215讀取所記錄的對應該第一目標字元線的第一最佳化讀取電壓組。
接著,在步驟S213中,處理器211辨識第一預定門檻值,其中所述第一預定門檻值是根據所述儲存裝置的錯誤校正能力所獲得。
具體來說,處理器211可根據所述最大錯誤位元數計算一測試範圍,其中所述測試範圍的上限值例如為所述最大錯誤位元數乘以第一參數(例如:0.55)加上第二參數(如:0.05乘以最大錯誤位元數的積),並且所述測試範圍的下限值為所述最大錯誤位元數乘以第二參數(例如:0.5)。所述第一、第二參數為小於1且大於零的數值,並且第二參數小於第一參數。所述測試範圍會小於所述最大錯誤位元數的範圍。
接著,處理器211可設定不同的多個測試讀取電壓組,並且分別利用所述多個測試讀取電壓組來從一測試字元線中讀取一測試資料,以獲得多個已讀取測試資料。所述測試字元線為處理器211判定為物理條件良好的特定字元線(例如,經由預設讀取電壓組所獲得的錯誤位元數極少)。所述多個測試讀取電壓組的每一個讀取電壓組彼此的讀取電壓的態樣/大小會不同。以下利用圖3來進行說明。
圖3為根據本發明的一實施例所繪示的兩個不同的讀取電壓組及其中的電壓偏離值的示意圖。
舉例來說,請參照圖3,假設第一測試讀取電壓組V(1)為所述多個測試讀取電壓組的第一個測試讀取電壓組(如,預設的讀取電壓組),並且第二測試讀取電壓組V(2)為所述多個測試讀取電壓組的第二個測試讀取電壓組。此兩個讀取電壓組之間排序相同的讀取電壓的電壓偏離值不一定會相同。例如,第二測試讀取電壓組的第一個測試讀取電壓V(2)1
與對應的第一測試讀取電壓組的第一個測試讀取電壓V(1)1
之間的電壓偏離值Voffset1
不一定會等於第二測試讀取電壓組的第二個測試讀取電壓V(2)2
與對應的第一測試讀取電壓組的第二個測試讀取電壓V(1)2
之間的電壓偏離值Voffset2
。換言之,廠商可預先設計出用來進行測試的多個測試讀取電壓組,其中每個測試讀取電壓組的多個讀取電壓的分佈態樣/大小會不同。
應注意的是,在一實施例中兩個排序對應的讀取電壓的電壓偏離值可經由下列公式計算:
Voffseti
= | V(2)i
-V(1)i
|, i= 1 ~ 7
其中i表示讀取電壓在其所屬的讀取電壓組中的排序,V(2)與V(1)表示用以計算電壓偏離值的兩個讀取電壓組。簡單來說,對應兩個讀取電壓的電壓偏離值即為兩個讀取電壓之間的電壓差值的絕對值。
處理器211更辨識所述多個已讀取測試資料的多個測試錯誤位元數(利用不同的測試讀取電壓組讀取相同的資料時,在對所讀取之資料解碼後,便可獲得對應的不同的錯誤位元數),以利用所述多個測試錯誤位元數與測試範圍來找出第一預定門檻值。詳細來說,處理器211辨識所述多個測試錯誤位元數中於所述測試範圍內的一第一測試錯誤位元數,其中所述第一測試錯誤位元數是經由所述多個測試讀取電壓組中的一第一測試讀取電壓組所讀取的第一已讀取測試資料所獲得的。即,處理器211會利用錯誤位元數在測試範圍內的測試讀取電壓組作基準。
接著,將所述第一測試讀取電壓組的多個第一測試讀取電壓與所述測試字元線的預設讀取電壓組(亦稱,第二預設讀取電壓組)中對應的多個預設讀取電壓(亦稱,第二預設讀取電壓)之間的多個電壓偏離值的總和作為所述第一預定門檻值。所述第二預設讀取電壓組可等於上述的第一預設讀取電壓組。
舉例來說,請參照圖3,假設讀取電壓組V(2)為第二預設讀取電壓組,並且讀取電壓組V(1)為第一測試讀取電壓組。處理器211會計算第二預設讀取電壓組V(2)與第一測試讀取電壓組V(1)中排序相同的讀取電壓之間的多個電壓偏離值Voffset1
~Voffset7
,並且計算所述電壓偏離值Voffset1
~Voffset7
的總和以作為所述第一預定門檻值。
此外,在一實施例中,處理器211更可將所述第一測試讀取電壓組的所述多個第一測試讀取電壓與所述測試字元線的第二預設讀取電壓組中對應的所述多個第二預設讀取電壓之間的所述多個電壓偏離值的平均值作為所述第二預定門檻值。接續上述的例子,第二預定門檻值可為第一預定門檻值除以7(如,N-1)(因為,第一預定門檻值為7個電壓偏離值Voffset1
~Voffset7
的總和)。
換句話說,本實施例中,計算第一預定門檻值/第二預定門檻值的概念是利用相較於預設讀取電壓組偏離一定程度電壓偏離值的讀取電壓組來讀取臨界電壓分佈是配合預設讀取電壓組的字元線,以獲得測試範圍內的錯誤位元數,進而可反推:若一字元線的最佳化讀取電壓組相較於原本的該字元線的預設讀取電壓組也偏離了所述一定程度的電壓偏離值,則表示若在繼續利用預設讀取電壓組來讀取所述字元線,可預期會得到測試範圍內錯誤位元數。
也就是說,廠商可基於錯誤校正能力來設計小於錯誤校正能力的所述測試範圍及設定對應的第一、第二預定門檻值,以提早預防目標實體單元/目標字元線的錯誤位元數超過錯誤校正能力。
請再回到圖2。接著,在步驟S214中,處理器211判斷所述第一最佳化讀取電壓組與所述第一預設讀取電壓組之間的第一電壓偏離值是否大於所述第一預定門檻值。所述第一最佳化讀取電壓組與所述第一預設讀取電壓組之間的第一電壓偏離值為所述第一最佳化讀取電壓組中的所述多個第一最佳化讀取電壓與所述第一預設讀取電壓組中的多個分別對應該些第一最佳化讀取電壓的該些第一預設讀取電壓之間的多個電壓偏離值的總和。
若所述第一最佳化讀取電壓組與所述第一預設讀取電壓組之間的第一電壓偏離值大於所述第一預定門檻值,接續至步驟S215,處理器211判定對應所述目標實體單元的檢查結果為失敗。若所述第一最佳化讀取電壓組與所述第一預設讀取電壓組之間的第一電壓偏離值不大於所述第一預定門檻值,接續至步驟S216,處理器211判定對應所述目標實體單元的檢查結果為成功。判斷完檢查結果後,便完成所述第一檢查操作的執行。
接著,在步驟S23中,處理器211根據對應所述目標實體單元的所述檢查結果來判斷是否需要對所述目標實體單元的有效資料執行第一操作。具體來說,反應於被判定為成功的所述檢查結果,判定不需要對所述目標實體單元的所述有效資料執行所述第一操作,並且記錄所述目標實體單元的對應所述檢查操作的一檢查時間戳記。在本實施例中,若一實體單元具有檢查時間戳記,則計算該實體單元的存放時間值時,會利用當前時間與檢查時間戳記。
反之,反應於被判定為失敗的所述檢查結果,判定需要對所述目標實體單元的有效資料執行所述第一操作,並且執行所述第一操作。
此外,在另一實施例中,更會設定一條件來避免頻繁地進行第一操作。具體來說,在處理器211根據對應所述目標實體單元的所述檢查結果來判斷是否需要對所述目標實體單元的有效資料執行第一操作的運作中,反應於被判定為失敗的檢查結果,處理器211更判斷目標實體單元的有效資料數目是否大於有效資料門檻值。所述有效資料數目用表示所述目標實體單元中的有效資料的大小。藉由比較有效資料數目與有效資料門檻值,可判斷出目標實體單元中的有效資料與目標實體單元的整體空間/無效資料的比例。
接著,若所述有效資料數目不大於所述有效資料門檻值,處理器211判定需要對所述目標實體單元的所述有效資料執行所述第一操作。反之,若有效資料數目大於有效資料門檻值,處理器211判定不需要對該目標實體單元的所述有效資料執行第一操作,並且使用一第三預定門檻值來取代該第一預定門檻值於下次對該目標實體單元所執行的該第一檢查操作中,其中該第三預定門檻值大於該第一預定門檻值。具體來說,若有效資料數目大於有效資料門檻值(表示目標實體單元的有效資料的大小大於一個程度),則處理器211會認為這個目標實體單元可以先不需要進行第一操作,並且對此現象作記錄,以讓下一次對同樣的目標實體單元進行第一檢查時,若此時的最佳化讀取電壓組與預設讀取電壓組的第一電壓偏離值大於更大的第三門檻值,則處理器211才判定檢查結果為失敗。
上述的技術概念在於,在一些特定的情況下,如,儲存裝置儲存資料後,一年後才開機,大部分實體單元的存放時間值都會很大(最佳化讀取電壓也會相較於預設讀取電壓組很遠),而導致過多的第一操作會被觸發,進而使系統的存取效率因為第一操作的觸發而下降。因此,本發明更將有效資料數納入考量來做為是否執行第一操作的條件。
值得一提的是,在一些情況下,若一實體單元尚未執行過讀取電壓最佳化操作(處理器211沒有辨識該實體單元的最佳化讀取電壓組)。此時,處理器211會利用第二檢查操作來取代第一檢查操作。
所述第二檢查操作包括下列步驟(1)~(3)。
步驟(1):利用所述第一預設讀取電壓組來讀取所述第一目標字元線,以獲得一葛雷碼偏離值總和。具體來說,處理器211會指示讀取電壓管理電路單元215來讀取所述第一目標字元線以獲得多個讀取位元值,並且藉由葛雷碼計數電路2151來計算對應所讀取資料的分別對應多個葛雷碼的葛雷碼計數。
圖4為根據本發明的一實施例所繪示的經由第一預設讀取電壓組所讀取的對應N個葛雷碼的位元值的多個記憶胞的臨界電壓分佈及對應的多個葛雷碼計數的示意圖。由於本實施例是以三階記憶胞NAND型快閃記憶體模組做例子來說明,其中N等於8(即,23
,次方數為三階記憶胞的“三”)。三階記憶胞NAND型快閃記憶體模組的每一記憶胞具有三個實體頁面來分別儲存位元資料,所述每一記憶胞包括各自可儲存一個位元值的下實體頁面(Lower Physical Page,L)、中實體頁面(Middle Physical Page,M)與上實體頁面(Upper Physical Page,U)。假設讀取電壓管理電路單元215(或葛雷碼計數電路2151)經由第一預設讀取電壓組V(1)的多個讀取電壓V(1)1
~V(1)7
讀取三階記憶胞NAND型快閃記憶體模組的目標字元線的多個記憶胞(多個目標記憶胞),並且藉此辨識出所述多個記憶胞所儲存的不同位元值(分別對應不同葛雷碼的位元值)。每一記憶胞中的閘極電壓可依據第一預設讀取電壓組中的讀取電壓V(1)1
~V(1)7
而區分為8種葛雷碼,如“L:1 M:1 U:1”、“L:0 M:1 U:1”、“L:0 M:0 U:1”、“L:0 M:0 U:0”、“L:0 M:1 U:0”、“L:1 M:1 U:1”、“L:1 M:0 U:0”與“L:1 M:0 U:1”的8種葛雷碼(“L:”表示下實體頁面的位元值;“M:”表示中實體頁面的位元值;“U:”表示上實體頁面的位元值)。所述8種葛雷碼亦可表示為“111”、“011”、“001”、“000”、“010”、“111”、“100”與“101”,8種位元值組合,其中每個位元值組合中的位元值的先後排序是依據下、中、上實體頁面的順序。也就是說,經由分別施加第一預設讀取電壓組V(1)的不同電壓值的讀取電壓V(1)1
~V(1)7
至第一目標字元線的一個記憶胞上,讀取電壓管理電路單元215(或葛雷碼計數電路2151)可根據判斷該記憶胞之通道是否導通而分別判定出該記憶胞所儲存之位元值(亦稱,位元資料或讀取位元值)對應不同的多個葛雷碼(“111”、“011”、“001”、“000”、“010”、“111”、“100”或“101”)的其中之一(即,經由使用第一預設讀取電壓組V(1)來從第一目標字元線的一個記憶胞讀取出讀取位元值)。例如,讀取電壓V(1)1
可區分葛雷碼“111”與葛雷碼“011”(讀取電壓V(1)1
的左方是對應葛雷碼“111”的臨界電壓分佈;讀取電壓V(1)1
的右方是對應葛雷碼“011”的臨界電壓分佈)。應注意的是,於可複寫式非揮發性記憶體模組220的記憶胞可具有的多個葛雷碼的數目(在此例子中,為8),每個讀取電壓組的所述多個讀取電壓的數目為所述多個葛雷碼的數目減一(在此例子,為7,即,N-1=8-1=7)。
在獲得第一目標字元線的所有葛雷碼計數後,讀取電壓管理電路單元215(或葛雷碼計數電路2151)將所有葛雷碼計數各自減一葛雷碼計數標準值,以獲得8個差值,並且將所述8個差值作為對應所述第一預設讀取電壓組的8個葛雷碼計數偏離值。
在本實施例中,所述葛雷碼計數標準值可根據所讀取的多個目標記憶胞的總數量(亦稱,讀取記憶胞數量,Read Memory Cells Amount)來被設定。例如,所讀取的多個目標記憶胞的總數量為18592*8(在此例子下,此些被讀取之目標記憶胞中包括用以儲存為16千位元組大小的使用者資料的多個記憶胞及用以儲存為2208位元組大小的系統資料的多個記憶胞)。所述“18592”*8中的“18592”的值,亦可被稱為葛雷碼計數標準值(可用Cstd
表示)或葛雷碼計數平均值(可用Cavg
表示)。換句話說,葛雷碼計數標準值為讀取記憶胞數量的值除以N,所述N的值如上所述會根據記憶體的物理規格而被預先設定,如,MLC:N=4;TLC:N=8;QLC:N=16。
在獲得對應所述第i個讀取電壓組的N個葛雷碼計數偏離值後,讀取電壓管理電路單元215(或葛雷碼計數電路2151)計算全部葛雷碼計數偏離值的總和,並且將該總和作為對應所述第一預設讀取電壓組的葛雷碼計數偏離值總和。
步驟(2):辨識一偏離門檻值,其中所述偏離門檻值是根據所述儲存裝置的所述錯誤校正能力所獲得。具體來說,相似上述設定第一/第二預定門檻值的概念,處理器211亦可利用測試範圍來獲取第一測試讀取電壓組的葛雷碼計數偏離值總和,以將之作為偏離門檻值。
步驟(3):判斷所述葛雷碼偏離值總和是否大於所述偏離門檻值,其中若所述葛雷碼偏離值總和大於所述偏離門檻值,判定對應所述目標實體單元的所述檢查結果為失敗,其中若該葛雷碼偏離值總和不大於該偏離門檻值,判定對應該目標實體單元的該檢查結果為成功。
如此一來,處理器211可藉由執行第二檢查操作所獲得的檢查結果來判斷是否要對目標實體單元執行第一操作。應注意的是,在其他實施例中,處理器211亦可直接先經由第二檢查操作來判斷是否要對目標實體單元執行第一操作。
應注意的是,本發明的精神在於提供相異於傳統作法的記憶體管理方法,其利用一實體單元的最佳化讀取電壓組與預設讀取電壓組之間的電壓偏離值或葛雷碼偏離值總和來做為參考標準,以判斷儲存在該實體單元中的資料需要被執行記憶體管理操作(亦稱,資料管理操作)。在此過程中,在不參考該實體單元的抹除次數值或錯誤位元數的情況下,又可準確地辨識出需要進行記憶體管理的實體單元。
綜上所述,本發明實施例所提供的記憶體管理方法以及儲存控制器,可在特定事件發生時,對實體單元執行檢查操作,以藉由所述實體單元最佳化讀取電壓組與預設讀取電壓組之間的電壓偏離值或藉由實體單元的葛雷碼計數偏離值總和來判斷是否需要執行記憶體管理操作,以更準確地對實質上需要執行記憶體管理操作的實體單元來執行記憶體管理操作,進而增進了可複寫式非揮發性記憶體模組的壽命並且增進了所儲存之資料的安全性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
214‧‧‧錯誤檢查與校正電路
215‧‧‧讀取電壓管理電路單元
2151‧‧‧葛雷碼計數電路
2152‧‧‧讀取電壓最佳化電路
216‧‧‧緩衝記憶體
217‧‧‧電源管理電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S211~S216、S23‧‧‧記憶體管理方法的流程步驟
Voffset1~Voffset7‧‧‧電壓偏離值
V(1)、V(2)‧‧‧讀取電壓組
V(1)1~V(1)7、V(2)1~V(2)7‧‧‧讀取電壓
C(1)1~C(1)7‧‧‧葛雷碼計數
G1~G8‧‧‧葛雷碼
L‧‧‧下實體頁面的位元值
M‧‧‧中實體頁面的位元值
U‧‧‧上實體頁面的位元值
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。 圖3為根據本發明的一實施例所繪示的兩個不同的讀取電壓組及其中的電壓偏離值的示意圖。 圖4為根據本發明的一實施例所繪示的經由第一預設讀取電壓組所讀取的對應N個葛雷碼的位元值的多個記憶胞的臨界電壓分佈及對應的多個葛雷碼計數的示意圖。
Claims (20)
- 一種記憶體管理方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體單元,並且該些實體單元中的每一個實體單元具有多個字元線,所述方法包括: 根據一特定事件的發生,對該些實體單元中的一目標實體單元執行一第一檢查操作,包括: 根據該特定事件,辨識該目標實體單元的多個目標字元線中的一第一目標字元線; 辨識該第一目標字元線的一第一最佳化讀取電壓組以及一第一預設讀取電壓組,其中該第一最佳化讀取電壓組; 辨識一第一預定門檻值,其中該第一預定門檻值是根據該儲存裝置的一錯誤校正能力所獲得;以及 判斷該第一最佳化讀取電壓組與該第一預設讀取電壓組之間的一第一電壓偏離值是否大於該第一預定門檻值, 其中若該第一電壓偏離值大於該第一預定門檻值,判定對應該目標實體單元的檢查結果為失敗, 其中若該第一電壓偏離值不大於該第一預定門檻值,判定對應該目標實體單元的該檢查結果為成功;以及 根據對應該目標實體單元的該檢查結果來判斷是否需要對該目標實體單元的有效資料執行一第一操作。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述根據對應該目標實體單元的該檢查結果來判斷是否需要對該目標實體單元的有效資料執行該第一操作的步驟包括: 反應於被判定為成功的該檢查結果,判定不需要對該目標實體單元的所述有效資料執行該第一操作,並且記錄該目標實體單元的對應該檢查操作的一檢查時間戳記; 反應於被判定為失敗的該檢查結果,判定需要對該目標實體單元的有效資料執行該第一操作,並且執行該第一操作。
- 如申請專利範圍第2項所述的記憶體管理方法,其中上述執行該第一操作的步驟包括: 對該目標實體單元執行一耗損均衡操作; 對該目標實體單元執行一垃圾回收操作;或 對該目標實體單元的所有有效資料執行一資料合併操作。
- 如申請專利範圍第1項所述的記憶體管理方法,其中所述特定事件包括: 經由對應該目標字元線或該目標實體單元的一讀取電壓最佳化操作被執行完畢以獲得該第一最佳化讀取電壓組,其中反應於所獲得之該第一最佳化讀取電壓組,執行該第一檢查操作; 該些實體單元中的一實體單元的一存放時間值大於一存放時間門檻值,其中該實體單元被設定為該目標實體單元,該實體單元的存放時間值是根據該儲存裝置的當前時間與該實體單元的一時間戳記或一檢查時間戳記來計算的;以及 當該儲存裝置的一計數器值(counter value)被累計到一檢查計數值時,其中該計數器值會隨著該儲存裝置的操作時間而被累加,其中反應於該計數器值被累計到該檢查計數值,歸零該計數器值,並且選擇具有最大的該存放時間值的一實體單元來作為該目標實體單元以執行該第一檢查操作。
- 如申請專利範圍第4項所述的記憶體管理方法,其中該讀取電壓最佳化操作被執行的時間點包括: 當從一實體單元所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,其中該實體單元被設定為該目標實體單元; 當該儲存裝置閒置超過一預定閒置時間門檻值時;以及 當該儲存裝置開電時。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一電壓偏離值包括: 該第一最佳化讀取電壓組中的該些第一最佳化讀取電壓與該第一預設讀取電壓組中的多個分別對應該些第一最佳化讀取電壓的該些第一預設讀取電壓之間的多個電壓偏離值的總和。
- 如申請專利範圍第6項所述的記憶體管理方法,其中該第一檢查操作更包括: 辨識一第二預定門檻值,其中該第二預定門檻值是根據該儲存裝置的該錯誤校正能力所獲得; 判斷該第一最佳化讀取電壓組中的一第一最佳化讀取電壓與該第一預設讀取電壓組中的一第一預設讀取電壓之間的一第二電壓偏離值是否大於該第二預定門檻值, 其中若該第二電壓偏離值大於該第二預定門檻值,判定對應該目標實體單元的檢查結果為失敗。
- 如申請專利範圍第6項所述的記憶體管理方法,其中該錯誤校正能力用以指示該儲存裝置可校正的一最大錯誤位元數,所述記憶體管理方法更包括: 根據該最大錯誤位元數計算一測試範圍,其中該測試範圍的上限值為該最大錯誤位元數乘以第一參數,並且該測試範圍的下限值為該最大錯誤位元數乘以該第二參數,其中該第一參數、該第二參數為小於1且大於零的數值,並且該第二參數小於該第一參數; 設定不同的多個測試讀取電壓組,並且分別利用該些測試讀取電壓組來從一測試字元線中讀取一測試資料,以獲得多個已讀取測試資料; 辨識該些已讀取測試資料的多個測試錯誤位元數; 辨識該些測試錯誤位元數中於該測試範圍內的一第一測試錯誤位元數,其中該第一測試錯誤位元數是經由該些測試讀取電壓組中的一第一測試讀取電壓組所讀取的第一已讀取測試資料所獲得的; 將該第一測試讀取電壓組的多個第一測試讀取電壓與該測試字元線的第二預設讀取電壓組中對應的多個第二預設讀取電壓之間的多個電壓偏離值的總和作為該第一預定門檻值;以及 將該第一測試讀取電壓組的該些第一測試讀取電壓與該測試字元線的第二預設讀取電壓組中對應的該些第二預設讀取電壓之間的該些電壓偏離值的平均值作為該第二預定門檻值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該些字元線的每一個字元線包括多個記憶胞,其中該些記憶胞中的每一個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且該些葛雷碼的總數為N,N為大於2的一第一預定正整數,其中若沒有辨識該第一最佳化讀取電壓組,所述記憶體管理方法更包括: 根據該特定事件的發生,對該些實體單元中的該目標實體單元執行一第二檢查操作,該第二檢查操作包括: 利用該第一預設讀取電壓組來讀取該第一目標字元線,以獲得一葛雷碼偏離值總和; 辨識一偏離門檻值,其中該偏離門檻值是根據該儲存裝置的該錯誤校正能力所獲得;以及 判斷該葛雷碼偏離值總和是否大於該偏離門檻值, 其中若該葛雷碼偏離值總和大於該偏離門檻值,判定對應該目標實體單元的該檢查結果為失敗, 其中若該葛雷碼偏離值總和不大於該偏離門檻值,判定對應該目標實體單元的該檢查結果為成功。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述根據對應該目標實體單元的該檢查結果來判斷是否需要對該目標實體單元的有效資料執行該第一操作的步驟包括: 反應於被判定為成功的該檢查結果,判定不需要對該目標實體單元的所述有效資料執行該第一操作,並且記錄該目標實體單元的對應該檢查操作的一檢查時間戳記; 反應於被判定為失敗的該檢查結果,判斷該目標實體單元的有效資料數目是否大於一有效資料門檻值; 若該有效資料數目大於該有效資料門檻值,判定不需要對該目標實體單元的所述有效資料執行該第一操作,並且使用一第三預定門檻值來取代該第一預定門檻值於下次對該目標實體單元所執行的該第一檢查操作中,其中該第三預定門檻值大於該第一預定門檻值; 若該有效資料數目不大於該有效資料門檻值,判定需要對該目標實體單元的所述有效資料執行該第一操作。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括: 一連接介面電路,用以耦接至一主機系統; 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體單元,並且所述多個實體單元中的每一個實體單元具有多個字元線; 一讀取電壓管理電路單元;以及 一處理器,耦接至該連接介面電路、該記憶體介面控制電路及該讀取電壓管理電路單元, 其中該處理器用以根據一特定事件的發生,對該些實體單元中的一目標實體單元執行一第一檢查操作,其中在所執行的該第一檢查操作中, 該處理器根據該特定事件,辨識該目標實體單元的多個目標字元線中的一第一目標字元線; 該處理器經由該讀取電壓管理電路單元辨識該第一目標字元線的一第一最佳化讀取電壓組以及一第一預設讀取電壓組,其中該第一最佳化讀取電壓組; 該處理器辨識一第一預定門檻值,其中該第一預定門檻值是根據該儲存裝置的一錯誤校正能力所獲得;以及 該處理器判斷該第一最佳化讀取電壓組與該第一預設讀取電壓組之間的一第一電壓偏離值是否大於該第一預定門檻值, 其中若該第一電壓偏離值大於該第一預定門檻值,該處理器判定對應該目標實體單元的檢查結果為失敗, 其中若該第一電壓偏離值不大於該第一預定門檻值,該處理器判定對應該目標實體單元的該檢查結果為成功;以及 該處理器更用以根據對應該目標實體單元的該檢查結果來判斷是否需要對該目標實體單元的有效資料執行一第一操作。
- 如申請專利範圍第11項所述的儲存控制器,其中在上述根據對應該目標實體單元的該檢查結果來判斷是否需要對該目標實體單元的有效資料執行該第一操作的運作中, 反應於被判定為成功的該檢查結果,該處理器判定不需要對該目標實體單元的所述有效資料執行該第一操作,並且記錄該目標實體單元的對應該檢查操作的一檢查時間戳記; 反應於被判定為失敗的該檢查結果,該處理器判定需要對該目標實體單元的有效資料執行該第一操作,並且執行該第一操作。
- 如申請專利範圍第12項所述的儲存控制器,其中上述執行該第一操作的運作包括: 該處理器對該目標實體單元執行一耗損均衡操作; 該處理器對該目標實體單元執行一垃圾回收操作;或 該處理器對該目標實體單元的所有有效資料執行一資料合併操作。
- 如申請專利範圍第11項所述的儲存控制器,其中所述特定事件包括: 經由該讀取電壓管理電路單元,對應該目標字元線或該目標實體單元的一讀取電壓最佳化操作被執行完畢且獲得該第一最佳化讀取電壓組,其中反應於所獲得之該第一最佳化讀取電壓組,該處理器執行該第一檢查操作; 該處理器辨識該些實體單元中的一實體單元的一存放時間值大於一存放時間門檻值,其中該實體單元被該處理器設定為該目標實體單元,該實體單元的存放時間值是根據該儲存裝置的當前時間與該實體單元的一時間戳記或一檢查時間戳記來計算的;以及 當該儲存裝置的一計數器值(counter value)被累計到一檢查計數值時,其中該處理器隨著該儲存裝置的操作時間而累加該計數器值,其中反應於該計數器值被累計到該檢查計數值,該處理器歸零該計數器值,並且選擇具有最大的該存放時間值的一實體單元來作為該目標實體單元以執行該第一檢查操作。
- 如申請專利範圍第13項所述的儲存控制器,其中該讀取電壓最佳化操作被執行的時間點包括: 當從一實體單元所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,其中該實體單元被設定為該目標實體單元; 當該儲存裝置閒置超過一預定閒置時間門檻值時;以及 當該儲存裝置開電時。
- 如申請專利範圍第11項所述的儲存控制器,其中該第一電壓偏離值包括: 該第一最佳化讀取電壓組中的該些第一最佳化讀取電壓與該第一預設讀取電壓組中的多個分別對應該些第一最佳化讀取電壓的該些第一預設讀取電壓之間的多個電壓偏離值的總和。
- 如申請專利範圍第16項所述的儲存控制器,其中該第一檢查操作更包括: 該處理器辨識一第二預定門檻值,其中該第二預定門檻值是根據該儲存裝置的該錯誤校正能力所獲得; 該處理器判斷該第一最佳化讀取電壓組中的一第一最佳化讀取電壓與該第一預設讀取電壓組中的一第一預設讀取電壓之間的一第二電壓偏離值是否大於該第二預定門檻值, 其中若該第二電壓偏離值大於該第二預定門檻值,該處理器判定對應該目標實體單元的檢查結果為失敗。
- 如申請專利範圍第16項所述的儲存控制器,其中該錯誤校正能力用以指示該儲存裝置可校正的一最大錯誤位元數,其中 根據該最大錯誤位元數計算一測試範圍,其中該測試範圍的上限值為該最大錯誤位元數乘以第一參數,並且該測試範圍的下限值為該最大錯誤位元數乘以該第二參數,其中該第一參數、該第二參數為小於1且大於零的數值,並且該第二參數小於該第一參數; 該處理器設定不同的多個測試讀取電壓組,並且分別利用該些測試讀取電壓組來從一測試字元線中讀取一測試資料,以獲得多個已讀取測試資料; 該處理器辨識該些已讀取測試資料的多個測試錯誤位元數; 該處理器辨識該些測試錯誤位元數中於該測試範圍內的一第一測試錯誤位元數,其中該第一測試錯誤位元數是經由該些測試讀取電壓組中的一第一測試讀取電壓組所讀取的第一已讀取測試資料所獲得的; 該處理器將該第一測試讀取電壓組的多個第一測試讀取電壓與該測試字元線的第二預設讀取電壓組中對應的多個第二預設讀取電壓之間的多個電壓偏離值的總和作為該第一預定門檻值;以及 該處理器將該第一測試讀取電壓組的該些第一測試讀取電壓與該測試字元線的第二預設讀取電壓組中對應的該些第二預設讀取電壓之間的該些電壓偏離值的平均值作為該第二預定門檻值。
- 如申請專利範圍第11項所述的儲存控制器,其中該些字元線的每一個字元線包括多個記憶胞,其中該些記憶胞中的每一個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且該些葛雷碼的總數為N,N為大於2的一第一預定正整數,其中若該處理器沒有辨識該第一最佳化讀取電壓組,該處理器根據該特定事件的發生,對該些實體單元中的該目標實體單元執行一第二檢查操作,其中在對該些實體單元中的該目標實體單元執行該第二檢查操作的運作中, 該處理器指示該讀取電壓管理電路單元利用該第一預設讀取電壓組來讀取該第一目標字元線,以獲得一葛雷碼偏離值總和; 該處理器辨識一偏離門檻值,其中該偏離門檻值是根據該儲存裝置的該錯誤校正能力所獲得; 該處理器判斷該葛雷碼偏離值總和是否大於該偏離門檻值, 其中若該葛雷碼偏離值總和大於該偏離門檻值,該處理器判定對應該目標實體單元的該檢查結果為失敗, 其中若該葛雷碼偏離值總和不大於該偏離門檻值,該處理器判定對應該目標實體單元的該檢查結果為成功。
- 如申請專利範圍第11項所述的儲存控制器,其中在上述根據對應該目標實體單元的該檢查結果來判斷是否需要對該目標實體單元的有效資料執行該第一操作的運作中, 反應於被判定為成功的該檢查結果,該處理器判定不需要對該目標實體單元的所述有效資料執行該第一操作,並且記錄該目標實體單元的對應該檢查操作的一檢查時間戳記; 反應於被判定為失敗的該檢查結果,該處理器判斷該目標實體單元的有效資料數目是否大於一有效資料門檻值; 若該有效資料數目大於該有效資料門檻值,該處理器判定不需要對該目標實體單元的所述有效資料執行該第一操作,並且使用一第三預定門檻值來取代該第一預定門檻值於下次對該目標實體單元所執行的該第一檢查操作中,其中該第三預定門檻值大於該第一預定門檻值;以及 若該有效資料數目不大於該有效資料門檻值,該處理器判定需要對該目標實體單元的所述有效資料執行該第一操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107111550A TWI661427B (zh) | 2018-04-02 | 2018-04-02 | 記憶體管理方法以及儲存控制器 |
US16/026,079 US10628257B2 (en) | 2018-04-02 | 2018-07-03 | Memory management method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107111550A TWI661427B (zh) | 2018-04-02 | 2018-04-02 | 記憶體管理方法以及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI661427B TWI661427B (zh) | 2019-06-01 |
TW201942907A true TW201942907A (zh) | 2019-11-01 |
Family
ID=67764328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107111550A TWI661427B (zh) | 2018-04-02 | 2018-04-02 | 記憶體管理方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10628257B2 (zh) |
TW (1) | TWI661427B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI662553B (zh) * | 2018-08-27 | 2019-06-11 | 群聯電子股份有限公司 | 記憶體測試方法與記憶體測試系統 |
TWI670599B (zh) * | 2018-08-28 | 2019-09-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR20200100309A (ko) * | 2019-02-18 | 2020-08-26 | 삼성전자주식회사 | 메모리 장치 및 시스템 |
US11361221B2 (en) * | 2019-06-14 | 2022-06-14 | Storart Technology Co., Ltd. | Method of training artificial intelligence to estimate lifetime of storage device |
DE102019120801B3 (de) * | 2019-08-01 | 2020-12-03 | Infineon Technologies Ag | Vorrichtungen und Verfahren zur Datenspeicherung |
US11250926B2 (en) * | 2019-10-16 | 2022-02-15 | Sandisk Technologies Llc | Positive feedback and parallel searching enhanced optimal read method for non-volatile memory |
CN111639041B (zh) * | 2020-05-29 | 2022-04-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN117636967B (zh) * | 2024-01-25 | 2024-04-30 | 合肥兆芯电子有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8159881B2 (en) * | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash memory |
US8498152B2 (en) * | 2010-12-23 | 2013-07-30 | Sandisk Il Ltd. | Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling |
US8547743B2 (en) * | 2011-06-28 | 2013-10-01 | Seagate Technology Llc | Read error recovery for solid-state memory based on cumulative background charges |
US9645177B2 (en) * | 2012-05-04 | 2017-05-09 | Seagate Technology Llc | Retention-drift-history-based non-volatile memory read threshold optimization |
US9025393B2 (en) * | 2013-03-25 | 2015-05-05 | Seagate Technology Llc | Method of optimizing solid state drive soft retry voltages |
TWI521513B (zh) * | 2013-06-28 | 2016-02-11 | 群聯電子股份有限公司 | 讀取電壓設定方法、控制電路與記憶體儲存裝置 |
CN104616695B (zh) * | 2013-11-05 | 2017-12-22 | 光宝科技股份有限公司 | 固态存储装置及其读取电压设定方法 |
TWI515734B (zh) * | 2014-03-13 | 2016-01-01 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
US9329921B2 (en) * | 2014-04-25 | 2016-05-03 | Freescale Semiconductor, Inc. | Imminent read failure detection using high/low read voltage levels |
TWI608350B (zh) | 2016-03-09 | 2017-12-11 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 |
CN107527644B (zh) * | 2017-08-28 | 2020-07-28 | 苏州浪潮智能科技有限公司 | 一种固态硬盘读参考电压的优化方法及装置 |
-
2018
- 2018-04-02 TW TW107111550A patent/TWI661427B/zh active
- 2018-07-03 US US16/026,079 patent/US10628257B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10628257B2 (en) | 2020-04-21 |
US20190303239A1 (en) | 2019-10-03 |
TWI661427B (zh) | 2019-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI661427B (zh) | 記憶體管理方法以及儲存控制器 | |
TWI623878B (zh) | 資料讀取方法以及儲存控制器 | |
TWI650757B (zh) | 解碼方法以及儲存控制器 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
TWI436211B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI655576B (zh) | 記憶體管理方法以及儲存控制器 | |
TWI651721B (zh) | 解碼方法以及儲存控制器 | |
TW201413448A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI640008B (zh) | 資料讀取方法以及儲存控制器 | |
TWI651726B (zh) | 解碼方法以及儲存控制器 | |
TW202025165A (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
TW201947402A (zh) | 記憶體管理方法以及儲存控制器 | |
CN113272905A (zh) | 具有时变位错误率的存储器中的缺陷检测 | |
TWI545581B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201727492A (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI796882B (zh) | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI686697B (zh) | 記憶體管理方法以及儲存控制器 | |
TW201820114A (zh) | 資料寫入方法以及儲存控制器 | |
TW202314525A (zh) | 記憶體輪詢方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
TWI684180B (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
TWI805379B (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109273037B (zh) | 数据读取方法以及存储控制器 | |
TWI762843B (zh) | 儲存控制器、記憶體管理方法與儲存裝置 | |
TWI810865B (zh) | 表格排序方法、記憶體儲存裝置及記憶體控制電路單元 |