TW202123230A - Memory management method, storage controller and storage device - Google Patents
Memory management method, storage controller and storage device Download PDFInfo
- Publication number
- TW202123230A TW202123230A TW108145218A TW108145218A TW202123230A TW 202123230 A TW202123230 A TW 202123230A TW 108145218 A TW108145218 A TW 108145218A TW 108145218 A TW108145218 A TW 108145218A TW 202123230 A TW202123230 A TW 202123230A
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- block
- physical
- target
- physical block
- Prior art date
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種配置有可複寫式非揮發性記憶體模組的儲存裝置、所述儲存裝置的儲存控制器以及所使用的記憶體管理方法。The present invention relates to a memory management method, and more particularly to a storage device equipped with a rewritable non-volatile memory module, a storage controller of the storage device, and a used memory management method.
一般來說,在對儲存裝置的可複寫式非揮發性記憶體模組執行讀取操作時,若資料讀取失敗的情況發生,儲存裝置的儲存控制器會執行讀取重試操作,以嘗試獲得正確的對應的所述讀取操作的資料。Generally speaking, when a read operation is performed on a rewritable non-volatile memory module of a storage device, if a data read failure occurs, the storage controller of the storage device will perform a read retry operation to try Obtain the correct data corresponding to the read operation.
特別是,假設可複寫式非揮發性記憶體模組為三維NAND型快閃記憶體模組且於其中的一個實體區塊已經持續一段期間沒有被存取,當對所述實體區塊執行讀取操作時,對應於所讀取資料的錯誤率(錯誤位元數)會極高,導致了所讀取的資料不可被校正,進而發生資料讀取失敗。因此,如何有效率地避免上述三維NAND型快閃記憶體模組的資料讀取錯誤的問題,進而增進可複寫式非揮發性記憶體模組的讀取操作的效率,是本領域人員研究的課題之一。In particular, assuming that the rewritable non-volatile memory module is a three-dimensional NAND flash memory module and one of the physical blocks has not been accessed for a period of time, when the physical block is read During the fetch operation, the error rate (the number of error bits) corresponding to the read data will be extremely high, resulting in the read data cannot be corrected, and data read failure occurs. Therefore, how to efficiently avoid the problem of data reading errors of the above-mentioned three-dimensional NAND flash memory module, and thereby improve the efficiency of the reading operation of the rewritable non-volatile memory module, is researched by those in the art. One of the topics.
本發明提供一種資料讀取方法與儲存控制器,可自動地根據不同的實體區塊的類型來執行對應的預讀取操作,以預先消除儲存裝置的可複寫式非揮發性記憶體模組所發生的首讀問題,進而增進可複寫式非揮發性記憶體模組的讀取效率。The present invention provides a data reading method and storage controller, which can automatically perform corresponding pre-reading operations according to the types of different physical blocks, so as to pre-eliminate the rewritable non-volatile memory module of the storage device. The occurrence of the first reading problem further improves the reading efficiency of the rewritable non-volatile memory module.
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的一儲存裝置的一種儲存控制器。所述儲存控制器包括連接介面電路、記憶體介面控制電路、預讀取電路單元以及處理器。所述連接介面電路用以耦接至一主機系統。所述記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊。所述處理器耦接至所述連接介面電路、所述記憶體介面控制電路及所述預讀取電路單元。所述處理器用以記錄所述多個實體區塊各自的區塊類型,並且更用以指示所述預讀取電路單元執行預讀取程序。在所述預讀取程序中,所述預讀取電路單元用以辨識分別對應至所述多個實體區塊類型的多個預讀取週期,其中所述預讀取電路單元根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的一目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期,其中所述預讀取電路單元更用以指示所述處理器對所述目標實體區塊施加一預讀取電壓。An embodiment of the present invention provides a storage controller for controlling a storage device equipped with a rewritable non-volatile memory module. The storage controller includes a connection interface circuit, a memory interface control circuit, a pre-reading circuit unit, and a processor. The connection interface circuit is used for coupling to a host system. The memory interface control circuit is used for coupling to the rewritable non-volatile memory module, wherein the rewritable non-volatile memory module has a plurality of physical blocks. The processor is coupled to the connection interface circuit, the memory interface control circuit, and the pre-fetch circuit unit. The processor is used for recording the respective block types of the plurality of physical blocks, and is further used for instructing the pre-reading circuit unit to execute a pre-reading procedure. In the pre-reading procedure, the pre-reading circuit unit is used to identify multiple pre-reading periods corresponding to the multiple physical block types, wherein the pre-reading circuit unit is based on the multiple A pre-read cycle and the plurality of block types select a target physical block in the plurality of physical blocks, wherein the target non-access duration of the target physical block is not less than the plurality of pre-reading periods A target pre-read cycle corresponding to the target block type of the target physical block in the read cycle, wherein the pre-read circuit unit is further used to instruct the processor to apply a pre-read to the target physical block Take the voltage.
本發明的一實施例提供適用於用以控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置的儲存控制器的一種記憶體管理方法,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊。所述方法包括:記錄所述多個實體區塊各自的區塊類型;以及執行預讀取程序。所述預讀取程序包括:辨識分別對應至所述多個實體區塊類型的多個預讀取週期;根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的一目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期;以及對所述目標實體區塊施加一預讀取電壓。An embodiment of the present invention provides a memory management method suitable for a storage controller for controlling a storage device equipped with a rewritable non-volatile memory module, wherein the rewritable non-volatile memory The module has multiple physical blocks. The method includes: recording the respective block types of the plurality of physical blocks; and executing a pre-reading procedure. The pre-reading procedure includes: identifying a plurality of pre-reading periods corresponding to the plurality of physical block types; selecting the plurality of pre-reading periods according to the plurality of pre-reading periods and the plurality of block types A target physical block in the physical block, wherein the target non-access duration of the target physical block is not less than the target of the target block type corresponding to the target physical block in the plurality of pre-read cycles Pre-reading period; and applying a pre-reading voltage to the target physical block.
本發明的一實施例提供一種儲存裝置。所述儲存裝置包括可複寫式非揮發性記憶體模組及儲存控制器。所述可複寫式非揮發性記憶體模組具有多個實體區塊。所述儲存控制器耦接至所述可複寫式非揮發性記憶體模組。所述儲存控制器用以記錄所述多個實體區塊各自的區塊類型,並且更用以執行一預讀取程序。在所述預讀取程序中,所述儲存控制器更用以辨識分別對應至所述多個實體區塊類型的多個預讀取週期,其中所述儲存控制器根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的一目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期,其中所述儲存控制器更用以對所述目標實體區塊施加一預讀取電壓。An embodiment of the present invention provides a storage device. The storage device includes a rewritable non-volatile memory module and a storage controller. The rewritable non-volatile memory module has multiple physical blocks. The storage controller is coupled to the rewritable non-volatile memory module. The storage controller is used for recording the respective block types of the multiple physical blocks, and is further used for executing a pre-reading process. In the pre-reading procedure, the storage controller is further used to identify a plurality of pre-reading cycles corresponding to the plurality of physical block types, wherein the storage controller is configured according to the plurality of pre-reading periods. Fetch cycle and the plurality of block types select a target physical block of the plurality of physical blocks, wherein the target non-access duration of the target physical block is not less than the plurality of pre-read cycles A target pre-read period corresponding to the target block type of the target physical block, wherein the storage controller is further used to apply a pre-read voltage to the target physical block.
基於上述,本發明的實施例所提供的記憶體管理方法、儲存控制器與儲存裝置,可根據所述儲存裝置的可複寫式非揮發性記憶體模組的多個實體區塊各自的預讀取週期及區塊類型從所述多個實體區塊中選擇目標實體區塊,並且對所述目標實體區塊施加一預讀取電壓,以解除於可複寫式非揮發性記憶體模組中發生的首讀問題,進而增進了儲存裝置的讀取效率。Based on the foregoing, the memory management method, storage controller, and storage device provided by the embodiments of the present invention can be pre-read based on each of the multiple physical blocks of the rewritable non-volatile memory module of the storage device Fetch cycle and block type to select a target physical block from the plurality of physical blocks, and apply a pre-read voltage to the target physical block to release it from the rewritable non-volatile memory module The occurrence of the first reading problem further improves the reading efficiency of the storage device.
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。此外,儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。In this embodiment, the storage device includes a rewritable non-volatile memory module and a storage device controller (also referred to as a storage controller or a storage control circuit). In addition, the storage device is used together with the host system so that the host system can write data to the storage device or read data from the storage device.
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。FIG. 1 is a block diagram of a host system and a storage device according to an embodiment of the invention.
請參照圖1,主機系統(Host System)10包括處理器(Processor)110、主機記憶體(Host Memory)120及資料傳輸介面電路(Data Transfer Interface Circuit)130。在本實施例中,資料傳輸介面電路130耦接(亦稱,電性連接)至處理器110與主機記憶體120。在另一實施例中,處理器110、主機記憶體120與資料傳輸介面電路130之間利用系統匯流排(System Bus)彼此耦接。Please refer to FIG. 1, the
儲存裝置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。The
在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20(經由下達寫入指令)或從儲存裝置20中讀取資料(經由下達讀取指令)。In this embodiment, the
在本實施例中,處理器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裝置。In this embodiment, the
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。In this embodiment, the data
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路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之晶片外。However, it must be understood that the present invention is not limited to this. The data
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。In this embodiment, the
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。The
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。In more detail, the
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Processing unit)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。It is worth mentioning that in this embodiment, the
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體單元(如,屬於系統區塊類型的實體區塊)中。In one embodiment, the
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器210各部件所執行的操作亦可視為儲存控制器210所執行的操作。In this embodiment, as described above, the
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。The
記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。The memory
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。For example, the
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,執行預讀取程序,或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。應注意的是,用於管理可複寫式非揮發性記憶體模組220的多個記憶體操作亦可包含所述寫入指令序列與所述讀取指令序列。In addition, the data to be written into the rewritable
可複寫式非揮發性記憶體模組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型快閃記憶體模組(3D QLC NAND flash memory module))或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)(可具有多個三階或四階記憶胞,如,垂直四階記憶胞NAND型快閃記憶體模組(Vertical QLC NAND flash memory module))等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。The rewritable
值得一提的是,屬於三維NAND型快閃記憶體模組或直NAND型快閃記憶體模組的可複寫式非揮發性記憶體模組220更具有“首次讀取效應(First Read Effect)”的問題(亦稱為,首讀問題,First Read Issue)。處理器211不能經由使用預設讀取電壓組來讀取具有所述“首次讀取現象”的記憶胞以正確地獲得欲讀取的資料。更詳細來說,若三維NAND型快閃記憶體模組的一實體單元在被寫入資料後,經過一定的特定時間皆未被存取,該實體單元的記憶胞的臨界電壓會不規則地向左或是向右偏移,導致了後續的第一次讀取操作會發生失敗。此現象可稱為首次讀取現象(首讀問題)。It is worth mentioning that the rewritable
此外,若對一實體單元的兩次讀取操作的時間間隔小於所述特定時間,雖然第一次經由預設讀取電壓組的讀取操作會導致所讀取的資料發生錯誤(讀取操作失敗),但第二次經由預設讀取電壓組的讀取操作所讀取的資料卻是正確的。也就是說,在兩次讀取操作(如,第一次讀取操作與第二次讀取操作)之間的時間間隔小於所述特定時間的情況下,較前一次的讀取操作(如,第一次讀取操作)所讀取的資料會發生大量錯誤(較後一次的讀取操作並不會發生大量錯誤),上述的現象可稱為首次讀取現象(首讀問題)。簡單來說,在兩次存取操作之間的時間間隔不小於所述特定時間的情況下,較後一次的讀取操作會導致首次讀取現象,即,較後一次的讀取操作所讀取的資料會具有大量錯誤。In addition, if the time interval between two read operations for a physical unit is less than the specified time, although the first read operation through the preset read voltage set will cause an error in the read data (read operation Failed), but the data read through the read operation of the preset read voltage set for the second time is correct. That is to say, in the case that the time interval between two read operations (for example, the first read operation and the second read operation) is less than the specified time, the previous read operation (for example, , The first reading operation) the data read will have a large number of errors (the later reading operation will not cause a large number of errors), the above phenomenon can be called the first reading phenomenon (first reading problem). In simple terms, if the time interval between two access operations is not less than the specified time, the later read operation will cause the first read phenomenon, that is, the read operation of the later read operation The data fetched will have a lot of errors.
在本實施例中,可複寫式非揮發性記憶體模組220具有多個字元線,其中所述多個字元線的每一個字元線耦接至多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(亦稱,實體頁面或實體扇區)。此外,多個實體程式化單元可組成一個實體單元(亦稱,實體區塊或實體抹除單元)。In this embodiment, the rewritable
在本實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。In this embodiment, the memory cell is used as the smallest unit for writing (programming) data. The physical unit is the smallest unit of erasure, that is, each physical unit contains one of the smallest number of memory cells that are erased.
每一實體單元會具有多個實體子單元。實體子單元可為實體頁面(page)或是實體扇(sector)。在本實施例中,實體子單元包括資料位元區與冗餘(redundancy)位元區。資料位元區用以儲存使用者資料,而冗餘位元區用以儲存系統資料。系統資料例如為錯誤更正碼、錯誤檢查碼或元資料(Meta Data)。此外,在本實施例中,系統資料更可包括映射表或用以管理儲存裝置的其他資料。Each physical unit will have multiple physical sub-units. The physical subunit can be a physical page (page) or a physical sector (sector). In this embodiment, the physical subunit includes a data bit area and a redundancy bit area. The data bit area is used to store user data, and the redundant bit area is used to store system data. The system data is, for example, error correction code, error check code, or metadata (Meta Data). In addition, in this embodiment, the system data may further include a mapping table or other data used to manage the storage device.
應注意的是,在本實施例中,用以記錄一實體單元的資訊的系統資料可利用該實體單元中的一或多個實體子單元來記錄,或是利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個實體子單元來記錄(如,屬於系統區塊類型的實體區塊)。在本實施例中,所述對應一實體單元的系統資料包括該實體單元的抹除次數值(Program erase cycle,PEC)、寫入時間戳記(Writing Timestamp)、存取時間戳記(Accessing Timestamp)。所述存取時間戳記用以指示所對應的實體單元最後被存取的時間等資訊。此外,儲存控制器210亦可持續累計時間,以即時地產生相應於當前時間的時間戳記(亦可稱,當前裝置時間戳記,Current Device Timestamp)(即,持續辨識/記錄裝置的本地時間)。所述不同的時間戳記之間的大小差異(數值差異)可用來表示時間的先後順序。本發明並不限定所述時間戳記的詳細格式。在一實施例中,裝置的本地時間可藉由設置於儲存裝置20中的計時器(Timer)來被提供。It should be noted that, in this embodiment, the system data used to record the information of a physical unit can be recorded by one or more physical subunits in the physical unit, or can be recorded in a system area for recording all One or more physical subunits of a specific physical unit of the system data are recorded (for example, a physical block belonging to the system block type). In this embodiment, the system data corresponding to a physical unit includes a program erase cycle (PEC), a writing time stamp (Writing Timestamp), and an access time stamp (Accessing Timestamp) of the physical unit. The access timestamp is used to indicate information such as the last accessed time of the corresponding physical unit. In addition, the
更詳細來說,每當處理器211對一實體單元進行抹除操作時,在完成所述抹除操作後,處理器211會對當前對應該實體單元的抹除次數值加1(如,抹除次數值會隨著每次的抹除操作而從0開始累加)。即,抹除次數值可反映出其所對應的實體單元的被抹除的次數的總和。此外,每對實體單元執行一個抹除操作時,處理器211會更新所述實體單元的存取時間戳記。例如,在完成對一個實體單元的抹除操作時,所述實體單元的存取時間戳記可基於對應於所述抹除操作的時間而被更新(如,將存取時間戳記更新為完成/執行所述抹除操作時的當前裝置時間戳記)。In more detail, whenever the
另一方面,每當處理器211對一實體單元進行寫入操作時,處理器211會更新所述實體單元的存取時間戳記。例如,在完成對一個實體單元的寫入操作時,所述實體單元的寫入時間戳記以及存取時間戳記可基於對應於所述寫入操作的時間而被更新(如,分別將所述實體單元的寫入時間戳記及存取時間戳記更新為完成/執行所述寫入操作時的當前裝置時間戳記)。所述寫入操作例如是程式化資料至所述實體單元的一或多個實體子單元(或一或多個記憶胞),或例如是程式化資料至所述實體單元的其他型態的實體位址。On the other hand, whenever the
相似地,每當處理器211對一實體單元進行讀取操作時,處理器211會更新所述實體單元的存取時間戳記。例如,在完成對一個實體單元的讀取操作時,所述實體單元的存取時間戳記可基於對應於所述讀取操作的時間而被更新(如,將存取時間戳記更新為完成/執行所述讀取操作時的當前裝置時間戳記)。所述讀取操作例如是從所述實體單元的一或多個實體子單元(或一或多個記憶胞)中讀取資料,或例如是從所述實體單元的其他型態的實體位址中讀取資料。Similarly, whenever the
在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當儲存控制器211對可中的記憶胞(或實體單元)進行分組以執行對應的管理操作時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。In the following embodiments, a physical block is used as an example of a physical unit. However, in another embodiment, a physical unit can also refer to any number of memory cells, depending on practical requirements. In addition, it must be understood that when the
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。The
此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體扇區)之間的位址映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段且非本發明所欲闡述的技術方案,不再贅述於此。值得一提的是,上述的多個映射表(以及其他用以管理可複寫式非揮發性記憶體模組220的系統資料)可儲存/備份於用屬於系統區塊類型的實體區塊(亦稱,系統實體區塊)中。In addition, the
在本實施例中,錯誤檢查與校正電路214是耦接至處理器211並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當處理器211從主機系統10中接收到寫入指令時,錯誤檢查與校正電路214會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且處理器211會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組220中。之後,當處理器211從可複寫式非揮發性記憶體模組220中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路214會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。In this embodiment, the error checking and correcting
例如,在對一字元線的多個實體頁面(屬於一或多個實體區塊)進行資料讀取操作,並且執行對應的錯誤檢查與校正程序時,錯誤檢查與校正電路214可獲得對應所述多個實體頁面的多個校驗子。錯誤檢查與校正電路214可回傳分別對應所述多個實體頁面的所述多個校驗子給處理器211。此外,在錯誤檢查與校正程序完成後,若成功解碼所讀取之資料,錯誤檢查與校正電路214可獲得分別對應所述多個實體頁面的多個錯誤位元數。錯誤檢查與校正電路214可回傳分別對應所述多個實體頁面的所述多個錯誤位元數給處理器211。反應於判定所獲得的錯誤位元數過大,或判定錯誤檢查與校正程序失敗,處理器211會判定相應的讀取操作為失敗(如,被執行讀取操作的一或多個實體區塊發生讀取操作失敗)。For example, when data reading operations are performed on multiple physical pages (belonging to one or more physical blocks) of a character line, and corresponding error checking and correction procedures are executed, the error checking and
在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。In one embodiment, the
在本實施例中,預讀取電路單元215包括預讀取週期管理電路2151與預讀取執行電路2152。所述預讀取電路單元215用以對所述可複寫式非揮發性記憶體模組220執行預讀取程序(亦稱,預讀取操作)。以下利用圖2~4來說明。In this embodiment, the
圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。請參照圖2,在步驟S210中,處理器211記錄多個實體區塊各自的區塊類型。FIG. 2 is a flowchart of a memory management method according to an embodiment of the invention. Referring to FIG. 2, in step S210, the
具體來說,所述處理器211根據所述多個實體區塊各自的物理狀況或所儲存的資料的資料類型來將所述多個實體區塊分類至所述多個區塊類型的其中之一,其中對應至所述多個區塊類型的所述多個預讀取週期為預先設定的。Specifically, the
在本實施例中,一個實體區塊的物理狀況的優劣可經由對應實體區塊的下列多個資訊的一或多者來識別:(1)錯誤位元數;(2)抹除次數值;以及(3)久存時間。更詳細來說,錯誤位元數越高的實體區塊被識別為物理狀況越差的實體區塊;抹除次數值越高的實體區塊被識別為物理狀況越差的實體區塊;久存時間越長的實體區塊被識別為物理狀況越差的實體區塊。In this embodiment, the physical condition of a physical block can be identified by one or more of the following pieces of information corresponding to the physical block: (1) the number of error bits; (2) the number of erasures; And (3) Long-term storage time. In more detail, the physical block with the higher the number of error bits is identified as the physical block with the worse physical condition; the physical block with the higher the number of erasures is identified as the physical block with the worse physical condition; A physical block with a longer storage time is identified as a physical block with a worse physical condition.
處理器211可進一步根據錯誤位元數、抹除次數值或久存時間來對多個實體區塊分類,以將所述多個實體區塊分類至多個區塊類型。The
例如,假設處理器211使用錯誤位元數來進行分類,並且將錯誤位元數大於錯誤位元數門檻值的多個第一實體區塊分類至第一區塊類型;將錯誤位元數不大於錯誤位元數門檻值的多個第二實體區塊分類至第二區塊類型。處理器211可將每個實體區塊所屬的區塊類型的資訊記錄至對應每個實體區塊的系統資料或元資料中。所述區塊類型的資訊可被寫入至可複寫式非揮發性記憶體模組220。For example, suppose that the
又例如,廠商可根據可複寫式非揮發性記憶體模組的規格或是物理特性來預先設定所述抹除次數門檻值。處理器211使用抹除次數值來進行分類,將抹除次數值大於抹除次數門檻值的多個第一實體區塊分類至第一區塊類型,並且將抹除次數值不大於抹除次數門檻值的多個第二實體區塊分類至第二區塊類型。For another example, the manufacturer can preset the threshold value of the erasing times according to the specifications or physical characteristics of the rewritable non-volatile memory module. The
在一實施例中,當記憶胞被寫入(程式化)資料且經過一段長時間(亦稱,久存時間門檻值)的存放時(如,該記憶胞長時間不再被寫入資料),所述記憶胞的臨界電壓分佈會發生所謂的久存(Retention)現象。若一記憶胞發生所述久存現象,相較於預設臨界電壓分佈,發生久存現象的記憶胞的臨界電壓分佈整體上會往左偏移。如此一來,若繼續利用預設讀取電壓組來從(久存狀態)該記憶胞中讀取資料,可能會導致所判定的所述記憶胞的位元狀態錯誤(即,若對具有久存現象的多個記憶胞的實體區塊進行讀取操作,會導致所述實體區塊發生讀取操作失敗)。例如,廠商可根據可複寫式非揮發性記憶體模組的規格或是物理特性來預先設定所述久存時間門檻值。處理器211使用久存時間來進行分類,將久存時間大於久存時間門檻值的多個第一實體區塊分類至第一區塊類型;將久存時間不大於久存時間門檻值的多個第二實體區塊分類至第二區塊類型。一個實體區塊的久存時間可經由計算當前裝置時間戳記與所述實體區塊的寫入時間戳記之間的差值來決定。In one embodiment, when the memory cell is written (programmed) data and stored for a long period of time (also known as the long-term storage time threshold) (for example, the memory cell is no longer written data for a long time) , The critical voltage distribution of the memory cell will have a so-called retention phenomenon. If the persistence phenomenon occurs in a memory cell, the threshold voltage distribution of the memory cell that has the persistence phenomenon will shift to the left as a whole compared to the preset threshold voltage distribution. As a result, if you continue to use the preset read voltage set to read data from the memory cell (persistent state), it may cause the determined bit state of the memory cell to be wrong (that is, if the Performing a read operation on a physical block of a plurality of memory cells with the phenomenon of storage will cause the read operation to fail in the physical block). For example, the manufacturer can preset the long-term storage time threshold according to the specifications or physical characteristics of the rewritable non-volatile memory module. The
在獲得所述多個實體區塊各自的區塊類型後,處理器211(或預讀取週期管理電路2151)可賦予不同的預讀取週期給不同的區塊類型。例如,處理器211(或預讀取週期管理電路2151)可賦予第一預讀取週期(Pre-read cycle)給屬於所述第一區塊類型的所有的第一實體區塊(即,第一預讀取週期對應至第一區塊類型);以及賦予第二預讀取週期給屬於所述第二區塊類型的所有的第二實體區塊(即,第二預讀取週期對應至第二區塊類型),其中所述第一預讀取週期的長度小於所述第二預讀取週期的長度。簡單來說,在本實施例中,用以表示具有越差的物理狀況的區塊類型所對應的預讀取週期越小。After obtaining the respective block types of the multiple physical blocks, the processor 211 (or the pre-read cycle management circuit 2151) can assign different pre-read cycles to different block types. For example, the processor 211 (or the pre-read cycle management circuit 2151) may assign a first pre-read cycle (Pre-read cycle) to all the first physical blocks (ie, the first block type) belonging to the first block type. A pre-reading cycle corresponds to the first block type); and assigning a second pre-reading cycle to all second physical blocks belonging to the second block type (that is, the second pre-reading cycle corresponds to Second block type), wherein the length of the first pre-reading period is less than the length of the second pre-reading period. To put it simply, in this embodiment, the pre-reading period corresponding to the block type used to indicate that the physical condition is worse is smaller.
在一實施例中,多個實體區塊的區塊類型可經由儲存在所述多個實體區塊中的資料的資料類型來識別。資料類型可用以識別下列不同的多種資料:(1)使用者資料(user data);(2)第一系統資料;以及(3)第二系統資料。所述使用者資料例如是從主機系統10所接收的資料,其較需維持穩定性。所述第一系統資料例如是用以管理儲存裝置的各項運作的軟體或韌體的資料。所述第二系統資料例如是關聯於所述多個實體區塊的各種資訊的資料(如,映射表),其較不需要維持穩定性。In one embodiment, the block types of the multiple physical blocks can be identified by the data types of the data stored in the multiple physical blocks. The data type can be used to identify the following different kinds of data: (1) user data; (2) first system data; and (3) second system data. The user data is, for example, data received from the
舉例來說,反應於判定所述多個實體區塊中的第一實體區塊被用以儲存使用者資料,所述第一實體區塊會被分類至第一區塊類型;反應於判定所述多個實體區塊中的第二實體區塊被用以儲存第一系統資料,所述第二實體區塊會被分類至第二區塊類型;反應於判定所述多個實體區塊中的第三實體區塊被用以儲存第二系統資料,所述第三實體區塊會被分類至第三區塊類型。For example, in response to determining that the first physical block of the plurality of physical blocks is used to store user data, the first physical block is classified into a first block type; The second physical block of the plurality of physical blocks is used to store the first system data, and the second physical block is classified into a second block type; it is reflected in the determination of the plurality of physical blocks The third physical block of is used to store the second system data, and the third physical block is classified into a third block type.
此外,處理器211(或預讀取週期管理電路2151)可賦予第一預讀取週期(Pre-read cycle)給屬於所述第一區塊類型的所有的第一實體區塊(即,第一預讀取週期對應至第一區塊類型);賦予第二預讀取週期給屬於所述第二區塊類型的所有的第二實體區塊(即,第二預讀取週期對應至第二區塊類型);以及賦予第三預讀取週期給屬於所述第三區塊類型的所有的第三實體區塊(即,第三預讀取週期對應至第三區塊類型),其中所述第一預讀取週期的長度小於所述第二預讀取週期的長度,並且所述第二預讀取週期的長度小於所述第三預讀取週期的長度。In addition, the processor 211 (or the pre-read cycle management circuit 2151) can assign a first pre-read cycle (Pre-read cycle) to all the first physical blocks (that is, the first block type) belonging to the first block type. A pre-reading cycle corresponds to the first block type); a second pre-reading cycle is assigned to all second physical blocks belonging to the second block type (that is, the second pre-reading cycle corresponds to the first block type) Second block type); and assigning a third pre-reading period to all third physical blocks belonging to the third block type (that is, the third pre-reading period corresponds to the third block type), wherein The length of the first pre-reading period is smaller than the length of the second pre-reading period, and the length of the second pre-reading period is smaller than the length of the third pre-reading period.
簡單來說,在本實施例中,根據所儲存的資料的資料類型的不同,處理器211(或預讀取週期管理電路2151)可將所述多個實體區塊分類至不同的區塊類型,並且賦予相應的預讀取週期。To put it simply, in this embodiment, the processor 211 (or the pre-read cycle management circuit 2151) can classify the multiple physical blocks into different block types according to the data types of the stored data. , And give the corresponding pre-read cycle.
在又一實施例中,所述資料類型可用以指示所對應的資料被寫入的頻率、被讀取的頻率。例如,所述資料類型可用以識別下列不同的多種資料:(1)熱讀取資料(Hot Read Data),用以表示較高頻率被讀取的資料;(2)熱寫入資料(Hot Write Data),用以表示較高頻率被寫入的資料;(3)冷讀取資料(Cold Read Data),用以表示較低頻率被讀取的資料;以及(4)冷寫入資料(Cold Write Data),用以表示較低頻率被寫入的資料。所述熱讀取資料與所述熱寫入資料亦可統稱為熱資料;所述冷讀取資料與所述冷寫入資料亦可統稱為冷資料。In another embodiment, the data type can be used to indicate the frequency at which the corresponding data is written and read. For example, the data type can be used to identify the following different kinds of data: (1) Hot Read Data, which is used to indicate data that is read at a higher frequency; (2) Hot Write Data (Hot Write Data). Data), used to represent data written at a higher frequency; (3) Cold Read Data, used to represent data read at a lower frequency; and (4) Cold write data (Cold Read Data) Write Data), used to indicate data that is written at a lower frequency. The hot read data and the hot write data can also be collectively referred to as hot data; the cold read data and the cold write data can also be collectively referred to as cold data.
由於上述所說明的首讀問題的特性,用以儲存熱讀取資料/熱寫入資料的實體區塊會經由較高頻率被讀取/寫入資料,並且較不易發生首讀問題;用以儲存冷讀取資料/冷寫入資料的實體區塊會經由較低頻率被讀取/寫入資料,並且較易發生首讀問題(因為,兩個相隔的存取操作之間的間隔時間會較長)。基此,處理器211可將用以儲存冷讀取資料/冷寫入資料的多個第一實體區塊分類至第一區塊類型;將用以儲存熱讀取資料/熱寫入資料的多個第二實體區塊分類至第二區塊類型。此外,處理器211可賦予第一預讀取週期(Pre-read cycle)給屬於所述第一區塊類型的所有的第一實體區塊(即,第一預讀取週期對應至第一區塊類型);賦予第二預讀取週期給屬於所述第二區塊類型的所有的第二實體區塊(即,第二預讀取週期對應至第二區塊類型),其中所述第一預讀取週期的長度小於所述第二預讀取週期的長度。Due to the characteristics of the first read problem described above, the physical block used to store the hot read data/hot write data will be read/write data at a higher frequency, and the first read problem is less likely to occur; The physical block storing cold read data/cold write data will be read/written at a lower frequency and is more prone to first read problems (because the interval between two separate access operations will be Longer). Based on this, the
在一實施例中,儲存冷資料的實體區塊所對應的存取時間戳記的值會最小,或是儲存冷資料的實體區塊所對應的抹除次數值會最小。基於此特性,相應於具有最小的存取時間戳記的實體區塊的預讀取週期以及相應於具有最小的抹除次數值的實體區塊的預讀取週期可被設定為較小的期間(如,第一預讀取週期)。In one embodiment, the value of the access timestamp corresponding to the physical block storing cold data is the smallest, or the value of the number of erasing times corresponding to the physical block storing the cold data is the smallest. Based on this feature, the pre-read period corresponding to the physical block with the smallest access timestamp and the pre-read period corresponding to the physical block with the smallest erase count value can be set to a smaller period ( For example, the first pre-read cycle).
處理器211可將每個實體區塊所屬的區塊類型的資訊記錄至對應每個實體區塊的系統資料或元資料中。所述區塊類型的資訊可被寫入至可複寫式非揮發性記憶體模組220。此外,相關於每個實體區塊的預讀取週期的資訊亦可被記錄至對應每個實體區塊的系統資料或元資料中,並且被寫入至可複寫式非揮發性記憶體模組220。The
接著,在步驟S220中,處理器211指示預讀取電路單元215執行預讀取程序。更具體來說,所述預讀取程序包括步驟S221~S223。在步驟S221中,預讀取電路單元215辨識分別對應至所述多個實體區塊類型的多個預讀取週期。Next, in step S220, the
在步驟S222中,預讀取電路單元215(或預讀取週期管理電路2151)根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期。以下利用相關於步驟S222的圖3A與圖3B來說明。In step S222, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) selects the target entity in the multiple physical blocks according to the multiple pre-read cycles and the multiple block types Block, wherein the target non-access duration of the target physical block is not less than the target pre-read period corresponding to the target block type of the target physical block in the plurality of pre-read periods. The following uses FIG. 3A and FIG. 3B related to step S222 for description.
圖3A是根據本發明的一實施例所繪示的主動式預讀取程序流程圖。請參照圖3A,在步驟S311中,預讀取電路單元215(或預讀取週期管理電路2151)辨識多個實體區塊各自的存取時間戳記,並且經由所述多個實體區塊各自的區塊類型來辨識所述多個實體區塊各自的預讀取週期。例如,預讀取電路單元215(或預讀取週期管理電路2151)可從已記錄相關於每個實體區塊的預讀取週期的資訊來辨識每個實體區塊的預讀取週期。FIG. 3A is a flowchart of an active pre-fetching procedure according to an embodiment of the invention. 3A, in step S311, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) recognizes the respective access timestamps of a plurality of physical blocks, and passes the respective access timestamps of the plurality of physical blocks The block type is used to identify the pre-read cycle of each of the multiple physical blocks. For example, the pre-reading circuit unit 215 (or the pre-reading period management circuit 2151) can identify the pre-reading period of each physical block from the recorded information about the pre-reading period of each physical block.
接著,在步驟S312中,預讀取電路單元215(或預讀取週期管理電路2151)計算所述儲存裝置的當前時間戳記與所述多個存取時間戳記之間的多個差值,以作為所述多個實體區塊各自的未存取持續時間。也就是說,為了獲得一個實體單元的未存取持續時間,預讀取電路單元215(或預讀取週期管理電路2151)會去計算當前裝置時間戳記(本地時間)與所述實體區塊的存取時間戳記之間的差值,並且識別所述差值可用以表面所述實體區塊未被存取的持續時間的長度。Next, in step S312, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) calculates a plurality of differences between the current timestamp of the storage device and the plurality of access timestamps to As the non-access duration of each of the multiple physical blocks. That is, in order to obtain the non-access duration of a physical unit, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) will calculate the current device timestamp (local time) and the time of the physical block. The difference between the access time stamps, and the identification of the difference can be used to indicate the length of the duration during which the physical block has not been accessed.
接著,在步驟S313中,預讀取電路單元215(或預讀取週期管理電路2151)經由比較所述多個實體區塊各自的所述未存取持續時間與所述多個實體區塊各自的所述預讀取週期來找出所述多個未存取持續時間中的不小於所對應的所述目標預讀取週期的所述目標未存取持續時間,以將所述目標預讀取週期與所述目標未存取持續時間所屬的實體區塊作為所述目標實體區塊。Next, in step S313, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) compares the non-access duration of each of the plurality of physical blocks with each of the plurality of physical blocks. The pre-reading period to find out the target non-access duration of the corresponding target pre-reading period in the plurality of non-access durations, so as to pre-read the target The physical block to which the period and the target non-access duration belong is taken as the target physical block.
例如,反應於判定一個實體區塊的未存取時間不小於所述實體區塊的預讀取週期,預讀取電路單元215(或預讀取週期管理電路2151)會辨識所述實體區塊為需要要被施加預讀取電壓的實體區塊(即,目標實體區塊);反應於判定另一個實體區塊的未存取時間小於所述另一個實體區塊的預讀取週期,預讀取電路單元215(或預讀取週期管理電路2151)會辨識所述另一個實體區塊為不需被施加預讀取電壓的實體區塊。所述目標實體區塊的未存取時間可被稱為目標未存取時間;所述目標實體區塊的預讀取週期可被稱為目標預讀取週期。For example, in response to determining that the non-access time of a physical block is not less than the pre-read cycle of the physical block, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) will identify the physical block Is the physical block to which the pre-read voltage is to be applied (ie, the target physical block); in response to determining that the non-access time of another physical block is less than the pre-read period of the other physical block, the pre-read The read circuit unit 215 (or the pre-read cycle management circuit 2151) recognizes that the other physical block is a physical block that does not need to be applied with a pre-read voltage. The non-access time of the target physical block can be referred to as the target non-access time; the pre-read period of the target physical block can be referred to as the target pre-read period.
值得一提的是,由於在上述步驟S311~S313的流程中,預讀取電路單元215會主動地去找尋目標實體區塊。因此,上述步驟S311~S313的流程亦可被稱為主動式預讀取程序。It is worth mentioning that in the process of steps S311 to S313, the
請再回到圖2,在獲得目標實體區塊後,在步驟S223中,預讀取電路單元215(或預讀取執行電路2152)指示所述處理器211對所述目標實體區塊施加預讀取電壓。具體來說,所述處理器指示所述記憶體介面控制電路213使用所述預讀取電壓來對所述目標實體區塊的一或多個記憶胞執行讀取操作(即,對所述一或多個記憶胞執行預讀取操作)。所述一或多個記憶胞對應至所述指定實體位址。所述預讀取電壓可為對應所述目標實體區塊的預設讀取電壓組所對應的多個預設讀取電壓值的其中之一或多者。Please return to FIG. 2. After obtaining the target physical block, in step S223, the pre-read circuit unit 215 (or the pre-read execution circuit 2152) instructs the
圖3B是根據本發明的一實施例所繪示的被動式預讀取程序的流程圖。請參照圖3B,在步驟S321中,處理器211辨識多個實體區塊中對應讀取指令所指示的所述指定邏輯位址的指定實體位址所屬的指定實體區塊。FIG. 3B is a flowchart of a passive pre-reading procedure according to an embodiment of the invention. Referring to FIG. 3B, in step S321, the
例如,在執行所述讀取程序的期間內,所述處理器辨識到讀取指令欲被執行,其中所述讀取指令用以指示對儲存於一指定邏輯位址的資料。所述讀取指令例如是從主機系統10所接收,或是所述讀取指令例如是用以讀取相關於其他記憶體操作的資料(如,垃圾回收操作中用以讀取有效資料的指令)的指令。接著,處理器211可從邏輯轉實體位址映射表中來查找到映射至所述指定邏輯位址的實體位址(亦稱,指定實體位址),並且辨識出所述指定實體位址所屬的實體區塊(即,指定實體區塊)。接著,處理器211可指示/通知預讀取電路單元215所述指定實體區塊將被執行讀取操作(例如,傳送對應於指定實體區塊的區塊識別碼給預讀取電路單元215)。For example, during the execution of the read program, the processor recognizes that a read instruction is to be executed, wherein the read instruction is used to indicate data stored in a designated logical address. The read command is, for example, received from the
接著,在步驟S322中,預讀取電路單元215(或預讀取週期管理電路2151)辨識所述指定實體區塊的存取時間戳記,並且經由所述指定實體區塊的所述區塊類型來辨識所述指定實體區塊的所述預讀取週期。在另一實施例中,預讀取電路單元215(或預讀取週期管理電路2151)可直接經由所述指定實體區塊的區塊資訊中辨識所述指定實體區塊的所述預讀取週期。Next, in step S322, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) recognizes the access timestamp of the designated physical block, and passes the block type of the designated physical block To identify the pre-read cycle of the specified physical block. In another embodiment, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) can directly identify the pre-read of the specified physical block from the block information of the specified physical block. cycle.
接著,在步驟S323中,反應於判定所述指定實體區塊的所述存取時間戳記不小於所述指定實體區塊的所述預讀取週期,預讀取電路單元215(或預讀取週期管理電路2151)將所述指定實體區塊識別為所述目標實體區塊。具體來說,預讀取電路單元215(或預讀取週期管理電路2151)可計算所述指定實體區塊的未存取持續時間。此外,在辨識所述指定實體區塊的所述預讀取週期後,預讀取電路單元215(或預讀取週期管理電路2151)可判斷所計算的所述指定實體區塊的未存取持續時間是否小於所述指定實體區塊的所述預讀取週期。反應於判定所述指定實體區塊的所述存取時間戳記不小於所述指定實體區塊的所述預讀取週期,預讀取電路單元215(或預讀取週期管理電路2151)將所述指定實體區塊辨識為將需施加預讀取電壓的目標實體區塊。Next, in step S323, in response to determining that the access timestamp of the designated physical block is not less than the pre-read period of the designated physical block, the pre-read circuit unit 215 (or pre-read The cycle management circuit 2151) recognizes the specified physical block as the target physical block. Specifically, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) can calculate the non-access duration of the specified physical block. In addition, after identifying the pre-read period of the designated physical block, the pre-read circuit unit 215 (or the pre-read period management circuit 2151) can determine the calculated non-access of the designated physical block Whether the duration is less than the pre-reading period of the designated physical block. In response to determining that the access timestamp of the designated physical block is not less than the pre-read cycle of the designated physical block, the pre-read circuit unit 215 (or the pre-read cycle management circuit 2151) will The designated physical block is identified as the target physical block to which the pre-read voltage will be applied.
接著,預讀取電路單元215(或預讀取執行電路2152)指示所述處理器211在執行所述讀取指令之前,對所述指定實體區塊施加所述預讀取電壓。即,所述處理器指示所述記憶體介面控制電路213使用所述預讀取電壓來對所述目標實體區塊的一或多個記憶胞執行讀取操作(即,對所述一或多個記憶胞執行預讀取操作)。所述一或多個記憶胞對應至所述指定實體位址。所述預讀取電壓可為對應所述目標實體區塊的預設讀取電壓組所對應的多個預設讀取電壓值的其中之一或多者。Next, the pre-fetch circuit unit 215 (or the pre-fetch execution circuit 2152) instructs the
應注意的是,在本實施例中,在對所述一或多個記憶胞執行預讀取操作後,所述處理器211忽略經由所述預讀取操作所獲得的儲存於所述一或多個記憶胞的原始資料。具體來說,經由使用預讀取電壓對所述一或多個記憶胞(如,實體頁面)執行讀取操作後,所獲得的原始的讀取資料(亦稱,原始資料)會被暫存至記憶體介面控制電路213或可複寫式非揮發性記憶體模組220中的快取暫存器(Cache Register)。不同於一般讀取操作的地方在於,處理器211會直接忽略暫存於快取暫存器中的原始資料,即,處理器211會不獲取暫存於快取暫存器中的原始資料,並且也不會對暫存於快取暫存器中的原始資料進行解碼操作(如,錯誤檢查與校正程序)。簡單來說,處理器211在被指示所述目標實體區塊後,處理器211指示記憶體介面控制電路213執行預讀取操作,但不對所讀取的原始資料進行解碼操作。It should be noted that, in this embodiment, after performing the pre-read operation on the one or more memory cells, the
在所述指定實體區塊被施加所述預讀取電壓後,處理器211使用預設讀取電壓來對所述目標實體區塊執行所述讀取操作(步驟S324)。也就是說,由於在上述步驟S321~S323的流程中,目標實體區塊是經由讀取指令而被動地被識別。上述步驟S321~S323的流程可被稱為被動式預讀取程序。此外,圖3B的流程中,原本對應讀取指令所執行的讀取操作(一般讀取操作),會在相應的預讀取操作完成後,再被執行。After the pre-read voltage is applied to the designated physical block, the
在其他實施例中,處理器211亦可指示預讀取電路單元215執行其他態樣的主動式的預讀取程序。In other embodiments, the
圖4是根據本發明的另一實施例所繪示的記憶體管理方法的流程圖。請參照圖4,在步驟S41中,處理器211記錄多個實體區塊各自的區塊類型。步驟S41相同於步驟S210,細節不再贅述。FIG. 4 is a flowchart of a memory management method according to another embodiment of the present invention. Referring to FIG. 4, in step S41, the
接著,在步驟S42中,預讀取電路單元215辨識分別對應至所述多個實體區塊類型的多個預讀取週期。步驟S42相同於步驟S221,細節不再贅述。Next, in step S42, the
接著,在步驟S43中,預讀取電路單元215針對所述多個預讀取週期的其中之一,每經過相符於所述一個預讀取週期的時間,對屬於對應所述一個預讀取週期的區塊類型的所有的實體區塊施加所述預讀取電壓。具體來說,預讀取電路單元215可辨識目前的不同的多個預讀取週期的時間長度,並且辨識對應至所述多個預讀取週期的多個區塊類型及對應的多個實體區塊。接著,預讀取電路單元215可基於所述多個預讀取週期持續地經由計時器來辨識當前經過的時間,並且於每經過相符於所述多個預讀取週期的其中之一的時間時,辨識到相應於所述預讀取週期的所有的實體區塊為目標實體區塊。此外,預讀取電路單元215可指示處理器對所有的所辨識的目標實體區塊施加預讀取電壓,即,對所有的目標實體區塊執行預讀取操作。Next, in step S43, the
在另一實施例中,每當儲存裝置20開電時,處理器211更可基於多個區塊類型來對可複寫式非揮發性記憶體模組220的多個實體區塊執行預讀取操作。更具體來說,每當儲存裝置20開電時,所述預讀取電路單元215指示所述處理器211直接根據所述多個區塊類型的優先順序,對被分類為所述多個區塊類型的所述多個實體區塊中的部份或全部的實體區塊施加所述預讀取電壓。In another embodiment, whenever the
舉例來說,假設可複寫式非揮發性記憶體模組220的多個實體區塊被分類為第一區塊類型與第二區塊類型。第一區塊類型具有第一優先順序,並且第二區塊類型具有第二優先順序,其中第一優先順序先於第二優先順序。當儲存裝置20開電時,處理器211會先對屬於具有第一優先順序的第一區塊類型的多個第一實體區塊執行預讀取操作(即,對所述多個第一實體區塊施加預讀取電壓)。在執行於所述多個第一實體區塊的預讀取操作完成後,處理器211可再對屬於具有第二優先順序的第二區塊類型的多個第二實體區塊執行預讀取操作,或是於儲存裝置20處於閒置狀態時再對屬於具有第二優先順序的第二區塊類型的多個第二實體區塊執行預讀取操作。屬於具有第一優先順序的所述第一區塊類型的多個第一實體區塊包括下列態樣的一或多者:物理狀況較差的實體區塊、儲存有較重要的使用者資料的實體區塊、儲存有開機後會被存取的系統資料的實體區塊、儲存有冷資料的實體區塊。屬於具有第一優先順序的所述第一區塊類型的多個第一實體區塊例如是所述多個實體區塊中,非所述多個第一實體區塊的其他實體區塊。在一實施例中,屬於具有第二優先順序的第二區塊類型的多個第二實體區塊亦可不被執行預讀取操作。For example, suppose that the multiple physical blocks of the rewritable
圖5A為根據本發明的一實施例所繪示的在未使用預讀取程序的情況下對具有首讀問題的實體區塊執行讀取操作的示意圖。請參照圖5A,舉例來說,假設可複寫式非揮發性記憶體模組220具有四個平面,並且處理器211可經由多平面讀取操作來同時從四個平面的相同順序的實體區塊讀取資料。此外,假設處理器211欲執行讀取指令,並且所述讀取指令用以指示讀取分別屬於第一~第四平面的實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2),其中具有首讀問題的實體區塊為對應第四平面的實體區塊P4(1)、對應第二平面的實體區塊P2(2)以及對應第三平面的實體區塊P3(2)。FIG. 5A is a schematic diagram of performing a read operation on a physical block with a first read problem without using a pre-reading procedure according to an embodiment of the present invention. Referring to FIG. 5A, for example, suppose that the rewritable
在此例子中,在時間點TP1,處理器211對實體區塊P1(1)~P4(1)執行多平面讀取操作(所述多平面讀取操作耗費了時間“T”)。由於對應第四平面的實體區塊P4(1)因所具有的首讀問題而發生讀取操作失敗。因此,處理器211在時間點TP2,對實體區塊P4(1)執行讀取重試操作(所執行的單平面讀取操作耗費了時間“T”),並且未發生讀取操作失敗(順利獲得儲存在實體區塊P4(1)的資料)。實體區塊P4(1)所具有的首讀問題因為於時間點TP1所執行的讀取操作而被解除,進而使後續的於時間點TP2所執行的讀取操作為成功的。In this example, at time TP1, the
接著,在時間點TP3,處理器211對實體區塊P1(2)~P4(2)執行多平面讀取操作(所述多平面讀取操作耗費了時間“T”)。由於對應第二、第三平面的實體區塊P2(2)、P3(2)因所具有的首讀問題而發生讀取操作失敗。因此,處理器211在時間點TP4,先對實體區塊P2(2)執行讀取重試操作(所執行的單平面讀取操作耗費了時間“T”),並且未發生讀取操作失敗。接著,在時間點TP5,再對實體區塊P3(2)執行讀取重試操作(所執行的單平面讀取操作耗費了時間“T”),並且未發生讀取操作失敗。Next, at time TP3, the
也就是說,為了正確地獲得儲存在實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)的資料,如圖5A所示,所執行的多個讀取操作共耗費的時間長度為“5T”。In other words, in order to correctly obtain the data stored in the physical blocks P1(1)~P4(1) and the physical blocks P1(2)~P4(2), as shown in Figure 5A, multiple reads are performed The total length of time spent in the fetch operation is "5T".
圖5B為根據本發明的一實施例所繪示的在使用主動式預讀取程序的情況下對具有首讀問題的實體區塊執行讀取操作的示意圖。請參照圖5B,接續圖5A的例子,不同的地方在於,於圖5B的例子中,處理器211指示預讀取電路單元215使用主動式預讀取程序。在此例子中,預讀取電路單元215於時間點TP1指示處理器211對實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)執行預讀取操作(經由多平面讀取的方式,對實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)施加預讀取電壓),其中對實體區塊P1(1)~P4(1)所執行的預讀取操作耗費了時間“t”,並且對實體區塊P1(2)~P4(2)所執行的預讀取操作耗費了時間“t”。時間“t”小於時間 “T”。FIG. 5B is a schematic diagram of performing a read operation on a physical block having a first read problem when an active pre-reading procedure is used according to an embodiment of the present invention. Please refer to FIG. 5B, following the example of FIG. 5A. The difference is that, in the example of FIG. 5B, the
在此,為了方便說明,假設時間“t”例如為時間“T”的二分之一(因不需要獲取原始資料及對原始資料執行解碼操作,而降低了整體所耗費的時間)。如圖5B所示,實體區塊P4(1)、P2(2)及P3(2)所具有的首讀問題因為所執行的預讀取操作而被解除。Here, for the convenience of description, it is assumed that the time “t” is, for example, one-half of the time “T” (because it is not necessary to obtain the original data and perform a decoding operation on the original data, the overall time spent is reduced). As shown in FIG. 5B, the first read problem of the physical blocks P4(1), P2(2), and P3(2) is resolved due to the pre-read operation performed.
接著,在時間點TP3,處理器211對實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)執行一般的多平面讀取操作,並且成功地完成所執行的讀取操作(正確地獲得儲存在實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)的資料)。應注意的是,為了正確地獲得儲存在實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)的資料,如圖5B所示,所執行的多個預讀取操作加上多個讀取操作共耗費的時間長度僅為“3T”,遠少於圖5A例子(不使用預讀取程序)中的共耗費的時間“5T”。Then, at time TP3, the
圖5C為根據本發明的一實施例所繪示的在使用被動式預讀取程序的情況下對具有首讀問題的實體區塊執行讀取操作的示意圖。請參照圖5C,接續圖5A的例子,不同的地方在於,於圖5C的例子中,處理器211指示預讀取電路單元215使用被動式預讀取程序。在此例子中,假設處理器211基於讀取指令,通知預讀取電路單元215目標實體區塊為實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)。預讀取電路單元215判定實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)皆需執行預讀取操作。FIG. 5C is a schematic diagram of performing a read operation on a physical block having a first read problem when a passive pre-reading procedure is used according to an embodiment of the present invention. Please refer to FIG. 5C, following the example of FIG. 5A. The difference is that in the example of FIG. 5C, the
如圖5C所示,在對實體區塊P1(1)~P4(1)執行讀取操作之前,預讀取電路單元215於時間點TP1指示處理器211對實體區塊P1(1)~P4(1)執行預讀取操作(所執行的預讀取操作耗費時間“t”)。接著,在所述預讀取操作完成後,於時間點TP2,處理器再對實體區塊P1(1)~P4(1)執行一般讀取操作(所執行的讀取操作耗費時間“T”),以正確地獲得儲存在對實體區塊P1(1)~P4(1)中的資料。時間“t”小於時間“T”。As shown in FIG. 5C, before performing the read operation on the physical blocks P1(1)~P4(1), the
接著,在對實體區塊P1(2)~P4(2)執行讀取操作之前,預讀取電路單元215於時間點TP3指示處理器211對實體區塊P1(2)~P4(2)執行預讀取操作(所執行的預讀取操作耗費時間“t”)。接著,在所述預讀取操作完成後,於時間點TP4,處理器再對實體區塊P1(2)~P4(2)執行一般讀取操作(所執行的讀取操作耗費時間“T”),以正確地獲得儲存在對實體區塊P1(2)~P4(2)中的資料。Then, before performing the reading operation on the physical blocks P1(2)~P4(2), the
如圖5C所示,實體區塊P4(1)、P2(2)及P3(2)所具有的首讀問題因為所執行的預讀取操作而被解除。應注意的是,為了正確地獲得儲存在實體區塊P1(1)~P4(1)及實體區塊P1(2)~P4(2)的資料,如圖5C所示,所執行的多個預讀取操作加上多個讀取操作共耗費的時間長度僅為“3T”,遠少於圖5A例子(不使用預讀取程序)中的共耗費的時間“5T”。As shown in FIG. 5C, the first read problem of the physical blocks P4(1), P2(2), and P3(2) is eliminated due to the pre-read operation performed. It should be noted that, in order to correctly obtain the data stored in the physical blocks P1(1)~P4(1) and the physical blocks P1(2)~P4(2), as shown in Figure 5C, multiple executions The length of time consumed by the pre-read operation plus multiple read operations is only "3T", which is far less than the total time "5T" in the example in Figure 5A (without using the pre-read program).
也就是說,經由上述圖5A~5C的例子,本發明的實施例所提供的記憶體管理方法(包含預讀取程序)、儲存控制器210以及儲存裝置20可有效地解除造成讀取操作失敗的首讀問題,進而減少為了獲得正確的讀取資料的讀取操作的總耗費時間,而增加了儲存裝置的讀取效率。In other words, through the above examples of FIGS. 5A to 5C, the memory management method (including the pre-read program), the
特別是,有解除首讀問題的實體區塊的錯誤檢查與校正程序中的解碼迭代操作的總數量低於具有首讀問題的實體區塊的錯誤檢查與校正程序中的解碼迭代操作的總數量(因為錯誤數少)。因此,在一些實施例中,當具有首讀現象的實體區塊被讀取時(會執行錯誤檢查與校正程序來解碼所讀取的資料),此實體區塊於讀取操作(包含讀出資料所耗費的時間以及執行錯誤檢查與校正程序所耗費的時間)所耗費的時間為T;當所述實體區塊的首讀現象被解除後且被讀取時,此實體區塊於讀取操作所耗費的時間為小於T的T’。也就是說,在此實施例中,圖5B、5C所耗費的時間將是小於3T的3T’。In particular, the total number of iterative decoding operations in the error checking and correction process of the physical block with the first reading problem is lower than the total number of decoding iterative operations in the error checking and correction process of the physical block with the first reading problem (Because the number of errors is small). Therefore, in some embodiments, when a physical block with the first read phenomenon is read (error checking and correction procedures are performed to decode the read data), the physical block is read during the read operation (including read The time consumed by the data and the time consumed by the error checking and correction procedures) is the time T; when the first reading phenomenon of the physical block is released and read, the physical block is read The time consumed by the operation is T'which is less than T. That is to say, in this embodiment, the time spent in Figures 5B and 5C will be 3T' which is less than 3T.
值得一提的是,上述預讀取電路單元215的功能是以硬體電路的方式來實作,但本發明不限於此。例如,在一實施例中,預讀取電路單元215、預讀取週期管理電路2151、預讀取執行電路2152的功能可分別以軟體或韌體的方式來實作為可被處理器211所執行的程式碼。如,預讀取電路單元215、預讀取週期管理電路2151、預讀取執行電路2152的功能可被實作為預讀取程式模組、預讀取週期管理程式模組、預讀取執行程式模組,並且處理器211可載入且執行預讀取程式模組、預讀取週期管理程式模組、預讀取執行程式模組以實現相應的功能。It is worth mentioning that the function of the aforementioned
綜上所述,本發明的實施例所提供的記憶體管理方法、儲存控制器與儲存裝置,可根據所述儲存裝置的可複寫式非揮發性記憶體模組的多個實體區塊各自的預讀取週期及區塊類型從所述多個實體區塊中選擇目標實體區塊,並且對所述目標實體區塊施加一預讀取電壓,以預先消除/解除於可複寫式非揮發性記憶體模組中發生的首讀問題,進而增進了儲存裝置的讀取效率。In summary, the memory management method, storage controller, and storage device provided by the embodiments of the present invention can be based on the respective physical blocks of the rewritable non-volatile memory module of the storage device. The pre-read cycle and block type select a target physical block from the plurality of physical blocks, and apply a pre-read voltage to the target physical block to pre-eliminate/deactivate the rewritable non-volatile The first reading problem that occurs in the memory module further improves the reading efficiency of the storage device.
10:主機系統
20:儲存裝置
110、211:處理器
120:主機記憶體
130:資料傳輸介面電路
210:儲存控制器
212:資料傳輸管理電路
213:記憶體介面控制電路
220:可複寫式非揮發性記憶體模組
230:連接介面電路
215:預讀取電路單元
2151:預讀取週期管理電路
2152:預讀取執行電路
S210、S220、S221、S222、S223:記憶體管理方法的流程步驟
S311、S312、S313:預讀取程序的流程步驟
S321、S322、S323、S324、S325:預讀取程序的流程步驟
S41、S42、S43:記憶體管理方法的流程步驟
TP1~TP6:時間點
P1(1)~P4(2):實體區塊
t、T:持續時間/時間長度10: Host system
20:
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。 圖3A是根據本發明的一實施例所繪示的主動式預讀取程序流程圖。 圖3B是根據本發明的一實施例所繪示的被動式預讀取程序的流程圖。 圖4是根據本發明的另一實施例所繪示的記憶體管理方法的流程圖。 圖5A為根據本發明的一實施例所繪示的在未使用預讀取程序的情況下對具有首讀問題的實體區塊執行讀取操作的示意圖。 圖5B為根據本發明的一實施例所繪示的在使用主動式預讀取程序的情況下對具有首讀問題的實體區塊執行讀取操作的示意圖。 圖5C為根據本發明的一實施例所繪示的在使用被動式預讀取程序的情況下對具有首讀問題的實體區塊執行讀取操作的示意圖。FIG. 1 is a block diagram of a host system and a storage device according to an embodiment of the invention. FIG. 2 is a flowchart of a memory management method according to an embodiment of the invention. FIG. 3A is a flowchart of an active pre-fetching procedure according to an embodiment of the invention. FIG. 3B is a flowchart of a passive pre-reading procedure according to an embodiment of the invention. FIG. 4 is a flowchart of a memory management method according to another embodiment of the present invention. FIG. 5A is a schematic diagram of performing a read operation on a physical block with a first read problem without using a pre-reading procedure according to an embodiment of the present invention. FIG. 5B is a schematic diagram of performing a read operation on a physical block having a first read problem when an active pre-reading procedure is used according to an embodiment of the present invention. FIG. 5C is a schematic diagram of performing a read operation on a physical block having a first read problem when a passive pre-reading procedure is used according to an embodiment of the present invention.
S210、S220、S221、S222、S223:記憶體管理方法的流程步驟S210, S220, S221, S222, S223: Process steps of the memory management method
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108145218A TWI712052B (en) | 2019-12-11 | 2019-12-11 | Memory management method, storage controller and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108145218A TWI712052B (en) | 2019-12-11 | 2019-12-11 | Memory management method, storage controller and storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI712052B TWI712052B (en) | 2020-12-01 |
TW202123230A true TW202123230A (en) | 2021-06-16 |
Family
ID=74669824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108145218A TWI712052B (en) | 2019-12-11 | 2019-12-11 | Memory management method, storage controller and storage device |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI712052B (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3544859B2 (en) * | 1998-05-11 | 2004-07-21 | 富士通株式会社 | Secondary storage device using nonvolatile semiconductor memory |
US8281227B2 (en) * | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
JP5788183B2 (en) * | 2010-02-17 | 2015-09-30 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Nonvolatile memory device, method of operating the same, and memory system including the same |
WO2014003755A1 (en) * | 2012-06-28 | 2014-01-03 | Hewlett-Packard Development Company, L.P. | Multi-level cell memory |
US10255000B2 (en) * | 2017-01-18 | 2019-04-09 | Western Digital Technologies, Inc. | Delayed data release after programming to reduce read errors in memory |
-
2019
- 2019-12-11 TW TW108145218A patent/TWI712052B/en active
Also Published As
Publication number | Publication date |
---|---|
TWI712052B (en) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI594120B (en) | System, method and program product for recording dwell time in a non-volatile memory system | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
TWI655576B (en) | Memory management method and storage controller | |
US11157357B2 (en) | Operation methods of memory system and host, and computing system | |
TWI650757B (en) | Decoding method and storage controller | |
US10642731B2 (en) | Memory management method and storage controller | |
TWI651726B (en) | Decoding method and storage controller | |
KR20220049027A (en) | Perform error control operations on memory components for garbage collection | |
KR20160074025A (en) | Operating method for data storage device | |
CN111078146B (en) | Memory management method, memory storage device and memory control circuit unit | |
TWI796882B (en) | Read disturb checking method, memory storage device and memory control circuit unit | |
TWI616807B (en) | Data writing method and storage controller | |
US20230098366A1 (en) | Memory polling method, memory storage device and memory control circuit unit | |
US10509583B1 (en) | Memory management method and storage controller | |
CN107045890B (en) | Data protection method, memory control circuit unit and memory storage device | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
TWI651650B (en) | Memory management method and storage controller using the same | |
US10614892B1 (en) | Data reading method, storage controller and storage device | |
US10635583B2 (en) | Memory management method and storage controller | |
CN114822664B (en) | Risk assessment method based on data priority, storage device and control circuit | |
US20240028506A1 (en) | Mapping table re-building method, memory storage device and memory control circuit unit | |
WO2018040804A1 (en) | Memory block processing method and device, and computer storage medium | |
CN108108118B (en) | Data writing method and storage controller | |
TWI712052B (en) | Memory management method, storage controller and storage device | |
CN111489776B (en) | Data reading method, storage controller and storage device |