TW202123230A - Memory management method, storage controller and storage device - Google Patents

Memory management method, storage controller and storage device Download PDF

Info

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
Application number
TW108145218A
Other languages
Chinese (zh)
Other versions
TWI712052B (en
Inventor
蕭又華
方子維
Original Assignee
大陸商深圳大心電子科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商深圳大心電子科技有限公司 filed Critical 大陸商深圳大心電子科技有限公司
Priority to TW108145218A priority Critical patent/TWI712052B/en
Application granted granted Critical
Publication of TWI712052B publication Critical patent/TWI712052B/en
Publication of TW202123230A publication Critical patent/TW202123230A/en

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

A memory management method is provided. The method includes recording a block type of each of a plurality physical blocks; and performing a pre-read procedure. The pre-read procedure includes identifying a plurality of pre-read cycles respectively corresponding to the block types; selecting a target physical block among the physical blocks according to the pre-read cycles and the block types, wherein a target non-accessed duration of the target physical block type is not smaller than a target pre-read cycle of a target block type corresponding to the target physical block among the pre-read cycles; and applying a pre-read voltage on the target physical block.

Description

記憶體管理方法、儲存控制器與儲存裝置Memory management method, storage controller and storage device

本發明是有關於一種記憶體管理方法,且特別是有關於一種配置有可複寫式非揮發性記憶體模組的儲存裝置、所述儲存裝置的儲存控制器以及所使用的記憶體管理方法。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 host system 10 includes a processor 110, a host memory 120 and a data transfer interface circuit 130. In this embodiment, the data transmission interface circuit 130 is coupled (also referred to as electrically connected) to the processor 110 and the host memory 120. In another embodiment, the processor 110, the host memory 120, and the data transmission interface circuit 130 are coupled to each other by a 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。The storage device 20 includes a storage controller (Storage Controller) 210, a rewritable non-volatile memory module (Rewritable Non-Volatile Memory Module) 220 and a connection interface circuit (Connection Interface Circuit) 230. The storage controller 210 includes a processor 211, a data management circuit (Data Management Circuit) 212, and a memory interface control circuit (Memory Interface Control Circuit) 213.

在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20(經由下達寫入指令)或從儲存裝置20中讀取資料(經由下達讀取指令)。In this embodiment, the host system 10 is coupled to the storage device 20 through the data transmission interface circuit 130 and the connection interface circuit 230 of the storage device 20 to perform data access operations. For example, the host system 10 can store data to the storage device 20 (via a write command) or read data from the storage device 20 (via a read command) via the data transmission interface circuit 130.

在本實施例中,處理器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 processor 110, the host memory 120, and the data transmission interface circuit 130 may be disposed on the main board of the host system 10. The number of the data transmission interface circuit 130 may be one or more. Through the data transmission interface circuit 130, the motherboard can be coupled to the storage device 20 in a wired or wireless manner. The storage device 20 may be, for example, a flash drive, a memory card, a solid state drive (SSD) or a wireless memory storage device. The wireless memory storage device may be, for example, a Near Field Communication (NFC) memory storage device, a wireless fax (WiFi) memory storage device, a Bluetooth (Bluetooth) memory storage device, or a Bluetooth low energy memory storage device Devices (for example, iBeacon) and other memory storage devices based on various wireless communication technologies. In addition, the motherboard can also be coupled to various I/O devices such as Global Positioning System (GPS) modules, network interface cards, wireless transmission devices, keyboards, screens, speakers, etc. through the system bus.

在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。In this embodiment, the data transmission interface circuit 130 and the connection interface circuit 230 are interface circuits compatible with the Peripheral Component Interconnect Express (PCI Express) standard. In addition, the data transmission interface circuit 130 and the connection interface circuit 230 use a non-volatile memory interface standard (Non-Volatile Memory express, NVMe) communication protocol for data transmission.

然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路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 transmission interface circuit 130 and the connection interface circuit 230 may also conform to the Parallel Advanced Technology Attachment (PATA) standard, the Institute of Electrical and Electronics Engineers (Institute of Electrical and Electronic Engineers, IEEE) 1394 standard, Serial Advanced Technology Attachment (SATA) standard, Universal Serial Bus (USB) standard, SD interface standard, Ultra High Speed-I (UHS-I) I) Interface standard, Ultra High Speed-II (UHS-II) interface standard, Memory Stick (MS) interface standard, Multi-Chip Package interface standard, multimedia memory card ( Multi Media Card (MMC) interface standard, eMMC interface standard, Universal Flash Storage (UFS) interface standard, eMCP interface standard, CF interface standard, Integrated Device Electronics (IDE) standard or Other suitable standards. In addition, in another embodiment, the connection interface circuit 230 and the storage controller 210 may be packaged in a chip, or the connection interface circuit 230 may be arranged outside a chip including the storage controller 210.

在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。In this embodiment, the host memory 120 is used to temporarily store instructions or data executed by the processor 110. For example, in this exemplary embodiment, the host memory 120 may be a dynamic random access memory (Dynamic Random Access Memory, DRAM), a static random access memory (Static Random Access Memory, SRAM), etc. However, it must be understood that the present invention is not limited to this, and the host memory 120 may also be other suitable memory.

儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。The storage controller 210 is used to execute a plurality of logic gates or control commands implemented in a hardware type or a firmware type, and to write data in the rewritable non-volatile memory module 220 according to the commands of the host system 10 , Read and erase operations.

更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。In more detail, the processor 211 in the storage controller 210 is a hardware capable of computing, which is used to control the overall operation of the storage controller 210. Specifically, the processor 211 has a plurality of control commands, and when the storage device 20 is operating, these control commands are executed to perform operations such as writing, reading, and erasing data.

值得一提的是,在本實施例中,處理器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 processor 110 and the processor 211 are, for example, a central processing unit (CPU), a microprocessor (micro-processor), or other programmable processing units. (Processing unit), Digital Signal Processor (DSP), Programmable Controller, Application Specific Integrated Circuits (ASIC), Programmable Logic Device (PLD) or Other similar circuit components, the present invention is not limited to this.

在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體單元(如,屬於系統區塊類型的實體區塊)中。In one embodiment, the storage controller 210 also has a read-only memory (not shown) and a random access memory (not shown). In particular, the read-only memory has a boot code, and when the storage controller 210 is enabled, the processor 211 will first execute the boot code to store it in the rewritable non-volatile memory module The control command in 220 is loaded into the random access memory of the storage controller 210. After that, the processor 211 runs these control commands to perform data writing, reading, and erasing operations. In another embodiment, the control commands of the processor 211 may also be stored in a specific area of the rewritable non-volatile memory module 220 in the form of program codes, for example, dedicated to the rewritable non-volatile memory module 220 In the physical unit that stores system data (for example, the physical block of the system block type).

在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器210各部件所執行的操作亦可視為儲存控制器210所執行的操作。In this embodiment, as described above, the storage controller 210 further includes a data management circuit 212 and a memory interface control circuit 213. It should be noted that the operations performed by the components of the storage controller 210 can also be regarded as operations performed by the storage controller 210.

其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。The data management circuit 212 is coupled to the processor 211, the memory interface control circuit 213, and the connection interface circuit 230. The data management circuit 212 is used for receiving instructions from the processor 211 to transmit data. For example, read data from the host system 10 (eg, the host memory 120) through the connection interface circuit 230, and write the read data to the rewritable non-volatile memory module through the memory interface control circuit 213 220 (for example, a write operation is performed according to a write command from the host system 10). For another example, data can be read from one or more physical units of the rewritable non-volatile memory module 220 through the memory interface control circuit 213 (data can be read from one or more of the one or more physical units). Memory cells), and write the read data to the host system 10 (for example, the host memory 120) via the connection interface circuit 230 (for example, perform a read operation according to a read command from the host system 10) . In another embodiment, the data management circuit 212 can also be integrated into the processor 211.

記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。The memory interface control circuit 213 is used to receive instructions from the processor 211 and cooperate with the data management circuit 212 to perform writing (also known as programming) operations and reading to the rewritable non-volatile memory module 220 Operate or erase operation.

舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。For example, the processor 211 can execute a write command sequence to instruct the memory interface control circuit 213 to write data into the rewritable non-volatile memory module 220; the processor 211 can execute a read command sequence, To instruct the memory interface control circuit 213 to read data from one or more physical units corresponding to the read instruction of the rewritable non-volatile memory module 220; the processor 211 can execute an erase instruction sequence to instruct the memory The body interface control circuit 213 performs an erase operation on the rewritable non-volatile memory module 220. The write command sequence, the read command sequence, and the erase command sequence may each include one or more program codes or command codes and are used to instruct to perform corresponding writing, writing, and writing to the rewritable non-volatile memory module 220. Operations such as reading and erasing. In one embodiment, the processor 211 may also issue other types of instruction sequences to the memory interface control circuit 213 to perform corresponding operations on the rewritable non-volatile memory module 220.

此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,執行預讀取程序,或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。應注意的是,用於管理可複寫式非揮發性記憶體模組220的多個記憶體操作亦可包含所述寫入指令序列與所述讀取指令序列。In addition, the data to be written into the rewritable non-volatile memory module 220 is converted into a format acceptable by the rewritable non-volatile memory module 220 through the memory interface control circuit 213. Specifically, if the processor 211 wants to access the rewritable non-volatile memory module 220, the processor 211 will send a corresponding command sequence to the memory interface control circuit 213 to instruct the memory interface control circuit 213 to execute the corresponding operating. For example, these command sequences may include a write command sequence instructing to write data, a read command sequence instructing to read data, an erase command sequence instructing to erase data, and various memory operations (for example, executing pre-programs). Read the program, or execute the garbage collection program, etc.) the corresponding instruction sequence. These command sequences can include one or more signals, or data on the bus. These signals or data may include script codes or program codes. For example, in the read command sequence, the read identification code, memory address and other information will be included. It should be noted that multiple memory operations for managing the rewritable non-volatile memory module 220 may also include the write command sequence and the read command sequence.

可複寫式非揮發性記憶體模組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 non-volatile memory module 220 is coupled to the storage controller 210 (the memory interface control circuit 213) and is used to store data written by the host system 10. The rewritable non-volatile memory module 220 may be a single level cell (SLC) NAND flash memory module (that is, a flash memory that can store 1 bit in a memory cell). Module), Multi Level Cell (MLC) NAND-type flash memory module (that is, a flash memory module that can store 2 bits in a memory cell), and a third-level memory cell ( Triple Level Cell (TLC) NAND flash memory modules (that is, a flash memory module that can store 3 bits in a memory cell), Quadruple Level Cell (QLC) NAND flash memory modules Flash memory module (that is, a flash memory module that can store 4 bits in a memory cell), 3D NAND flash memory module (3D NAND flash memory module) (can have multiple third-level Or four-level memory cells, such as three-dimensional four-level memory cell NAND flash memory module (3D QLC NAND flash memory module) or vertical NAND flash memory module (Vertical NAND flash memory module) (may have Multiple third-level or fourth-level memory cells, such as vertical QLC NAND flash memory module (Vertical QLC NAND flash memory module) and other flash memory modules or other memories with the same characteristics Module. The memory cells in the rewritable non-volatile memory module 220 are arranged in an array.

值得一提的是,屬於三維NAND型快閃記憶體模組或直NAND型快閃記憶體模組的可複寫式非揮發性記憶體模組220更具有“首次讀取效應(First Read Effect)”的問題(亦稱為,首讀問題,First Read Issue)。處理器211不能經由使用預設讀取電壓組來讀取具有所述“首次讀取現象”的記憶胞以正確地獲得欲讀取的資料。更詳細來說,若三維NAND型快閃記憶體模組的一實體單元在被寫入資料後,經過一定的特定時間皆未被存取,該實體單元的記憶胞的臨界電壓會不規則地向左或是向右偏移,導致了後續的第一次讀取操作會發生失敗。此現象可稱為首次讀取現象(首讀問題)。It is worth mentioning that the rewritable non-volatile memory module 220, which is a three-dimensional NAND flash memory module or a straight NAND flash memory module, has a "First Read Effect". "The problem (also known as First Read Issue, First Read Issue). The processor 211 cannot read the memory cell with the "first read phenomenon" by using the preset read voltage set to correctly obtain the data to be read. In more detail, if a physical cell of a three-dimensional NAND flash memory module is not accessed for a certain specific time after data is written, the threshold voltage of the memory cell of the physical cell will be irregular Offset to the left or right causes the subsequent first read operation to fail. This phenomenon can be called the first reading phenomenon (first reading problem).

此外,若對一實體單元的兩次讀取操作的時間間隔小於所述特定時間,雖然第一次經由預設讀取電壓組的讀取操作會導致所讀取的資料發生錯誤(讀取操作失敗),但第二次經由預設讀取電壓組的讀取操作所讀取的資料卻是正確的。也就是說,在兩次讀取操作(如,第一次讀取操作與第二次讀取操作)之間的時間間隔小於所述特定時間的情況下,較前一次的讀取操作(如,第一次讀取操作)所讀取的資料會發生大量錯誤(較後一次的讀取操作並不會發生大量錯誤),上述的現象可稱為首次讀取現象(首讀問題)。簡單來說,在兩次存取操作之間的時間間隔不小於所述特定時間的情況下,較後一次的讀取操作會導致首次讀取現象,即,較後一次的讀取操作所讀取的資料會具有大量錯誤。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 non-volatile memory module 220 has a plurality of character lines, and each of the plurality of character lines is coupled to a plurality of memory cells. Multiple memory cells on the same character line form one or more physical programming units (also known as physical pages or physical sectors). In addition, multiple physical programming units can form a physical unit (also known as a physical block or a physical erasing unit).

在本實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。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 storage controller 210 can also continue to accumulate time to instantly generate a time stamp corresponding to the current time (also referred to as Current Device Timestamp) (ie, continue to identify/record the local time of the device). The size difference (value difference) between the different time stamps can be used to indicate the sequence of time. The present invention does not limit the detailed format of the time stamp. In an embodiment, the local time of the device can be provided by a timer (Timer) provided in the storage device 20.

更詳細來說,每當處理器211對一實體單元進行抹除操作時,在完成所述抹除操作後,處理器211會對當前對應該實體單元的抹除次數值加1(如,抹除次數值會隨著每次的抹除操作而從0開始累加)。即,抹除次數值可反映出其所對應的實體單元的被抹除的次數的總和。此外,每對實體單元執行一個抹除操作時,處理器211會更新所述實體單元的存取時間戳記。例如,在完成對一個實體單元的抹除操作時,所述實體單元的存取時間戳記可基於對應於所述抹除操作的時間而被更新(如,將存取時間戳記更新為完成/執行所述抹除操作時的當前裝置時間戳記)。In more detail, whenever the processor 211 performs an erasing operation on a physical unit, after the erasing operation is completed, the processor 211 adds 1 to the value of the number of erasing times of the current corresponding physical unit (eg, erasing The value of the number of erasures will accumulate from 0 with each erasure operation). That is, the value of the number of erasures can reflect the total number of erasures of the corresponding physical unit. In addition, each time a pair of physical units performs an erase operation, the processor 211 updates the access timestamp of the physical unit. For example, when the erasing operation of a physical unit is completed, the access time stamp of the physical unit can be updated based on the time corresponding to the erasing operation (for example, the access time stamp is updated to complete/execute The current device time stamp at the time of the erasing operation).

另一方面,每當處理器211對一實體單元進行寫入操作時,處理器211會更新所述實體單元的存取時間戳記。例如,在完成對一個實體單元的寫入操作時,所述實體單元的寫入時間戳記以及存取時間戳記可基於對應於所述寫入操作的時間而被更新(如,分別將所述實體單元的寫入時間戳記及存取時間戳記更新為完成/執行所述寫入操作時的當前裝置時間戳記)。所述寫入操作例如是程式化資料至所述實體單元的一或多個實體子單元(或一或多個記憶胞),或例如是程式化資料至所述實體單元的其他型態的實體位址。On the other hand, whenever the processor 211 performs a write operation on a physical unit, the processor 211 updates the access timestamp of the physical unit. For example, when a write operation to a physical unit is completed, the write time stamp and the access time stamp of the physical unit can be updated based on the time corresponding to the write operation (for example, the physical unit is updated separately). The write time stamp and access time stamp of the unit are updated to the current device time stamp when the write operation is completed/executed). The writing operation is, for example, programming data to one or more physical subunits (or one or more memory cells) of the physical unit, or programming data to other types of entities of the physical unit, for example Address.

相似地,每當處理器211對一實體單元進行讀取操作時,處理器211會更新所述實體單元的存取時間戳記。例如,在完成對一個實體單元的讀取操作時,所述實體單元的存取時間戳記可基於對應於所述讀取操作的時間而被更新(如,將存取時間戳記更新為完成/執行所述讀取操作時的當前裝置時間戳記)。所述讀取操作例如是從所述實體單元的一或多個實體子單元(或一或多個記憶胞)中讀取資料,或例如是從所述實體單元的其他型態的實體位址中讀取資料。Similarly, whenever the processor 211 performs a read operation on a physical unit, the processor 211 updates the access time stamp of the physical unit. For example, when the read operation of a physical unit is completed, the access time stamp of the physical unit may be updated based on the time corresponding to the read operation (for example, the access time stamp is updated to complete/execute The current device time stamp at the time of the read operation). The reading operation is, for example, reading data from one or more physical subunits (or one or more memory cells) of the physical unit, or for example, from other types of physical addresses of the physical unit Read the information.

在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當儲存控制器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 storage controller 211 groups the available memory cells (or physical units) to perform corresponding management operations, these memory cells (or physical units) are logically grouped, and their The actual location has not changed.

儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。The storage controller 210 allocates a plurality of logic units to the rewritable non-volatile memory module 220. The host system 10 accesses user data stored in multiple physical units through configured logical units. Here, each logical unit can be composed of one or more logical addresses. For example, the logical unit may be a logical block (Logical Block), a logical page (Logical Page) or a logical sector (Logical Sector). A logical unit can be mapped to one or more physical units, where the physical unit can be one or more physical addresses, one or more physical sectors, one or more physical programming units, or one or more physical erasures unit. In this embodiment, the logical unit is a logical block, and the logical sub-unit is a logical page. Each logic unit has multiple logic sub-units.

此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體扇區)之間的位址映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段且非本發明所欲闡述的技術方案,不再贅述於此。值得一提的是,上述的多個映射表(以及其他用以管理可複寫式非揮發性記憶體模組220的系統資料)可儲存/備份於用屬於系統區塊類型的實體區塊(亦稱,系統實體區塊)中。In addition, the storage controller 210 creates a logical to physical address mapping table (Logical To Physical address mapping table) and a physical to logical address mapping table (Physical To Logical address mapping table) to record the configuration to the rewritable non-volatile The address mapping relationship between logical units (eg, logical blocks, logical pages, or logical sectors) of the memory module 220 and physical units (eg, physical erase units, physical programming units, physical sectors). In other words, the storage controller 210 can use the logical-to-physical address mapping table to find the physical unit to which a logical unit is mapped, and the storage controller 210 can use the physical-to-logical address mapping table to find the physical unit to which a physical unit is mapped. Logical unit. However, the above-mentioned technical concepts related to the mapping between logical units and physical units are conventional technical means by those skilled in the art and are not technical solutions intended to be described in the present invention, and will not be repeated here. It is worth mentioning that the above-mentioned multiple mapping tables (and other system data used to manage the rewritable non-volatile memory module 220) can be stored/backed up in the physical blocks that belong to the system block type (also Said, the physical block of the system).

在本實施例中,錯誤檢查與校正電路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 circuit 214 is coupled to the processor 211 and used to perform error checking and correcting procedures to ensure the correctness of the data. Specifically, when the processor 211 receives a write command from the host system 10, the error checking and correction circuit 214 will generate a corresponding error correcting code (ECC) and/or for the data corresponding to the write command. Or error detecting code (EDC), and the processor 211 will write the data corresponding to this write command and the corresponding error correction code and/or error check code to the rewritable non-volatile memory module 220 in. After that, when the processor 211 reads data from the rewritable non-volatile memory module 220, it will read the error correction code and/or error check code corresponding to the data at the same time, and the error check and correction circuit 214 will follow This error correction code and/or error check code performs error checking and correction procedures on the read data.

例如,在對一字元線的多個實體頁面(屬於一或多個實體區塊)進行資料讀取操作,並且執行對應的錯誤檢查與校正程序時,錯誤檢查與校正電路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 correction circuit 214 can obtain the corresponding data. Describes multiple syndromes of multiple physical pages. The error checking and correction circuit 214 may return the multiple syndromes respectively corresponding to the multiple physical pages to the processor 211. In addition, after the error check and correction process is completed, if the read data is successfully decoded, the error check and correction circuit 214 can obtain a plurality of error bit numbers corresponding to the plurality of physical pages, respectively. The error checking and correction circuit 214 may return the number of error bits corresponding to the plurality of physical pages to the processor 211. In response to determining that the number of error bits obtained is too large, or determining that the error checking and correction procedures have failed, the processor 211 will determine that the corresponding read operation has failed (for example, one or more physical blocks where the read operation is executed have occurred). The read operation failed).

在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。In one embodiment, the storage controller 210 further includes a buffer memory 216 and a power management circuit 217. The buffer memory is coupled to the processor 211 and used to temporarily store data and instructions from the host system 10, data from the rewritable non-volatile memory module 220, or other systems for managing the storage device 20 Data, so that the processor 211 can quickly access the data, instructions, or system data from the buffer memory 216. The power management circuit 217 is coupled to the processor 211 and used to control the power of the storage device 20.

在本實施例中,預讀取電路單元215包括預讀取週期管理電路2151與預讀取執行電路2152。所述預讀取電路單元215用以對所述可複寫式非揮發性記憶體模組220執行預讀取程序(亦稱,預讀取操作)。以下利用圖2~4來說明。In this embodiment, the pre-reading circuit unit 215 includes a pre-reading period management circuit 2151 and a pre-reading execution circuit 2152. The pre-read circuit unit 215 is used to perform a pre-read procedure (also referred to as a pre-read operation) on the rewritable non-volatile memory module 220. Hereinafter, it will be explained using FIGS. 2 to 4.

圖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 processor 211 records the respective block types of multiple physical blocks.

具體來說,所述處理器211根據所述多個實體區塊各自的物理狀況或所儲存的資料的資料類型來將所述多個實體區塊分類至所述多個區塊類型的其中之一,其中對應至所述多個區塊類型的所述多個預讀取週期為預先設定的。Specifically, the processor 211 classifies the plurality of physical blocks into one of the plurality of block types according to the respective physical conditions of the plurality of physical blocks or the data type of the stored data. One, wherein the multiple pre-read periods corresponding to the multiple block types are preset.

在本實施例中,一個實體區塊的物理狀況的優劣可經由對應實體區塊的下列多個資訊的一或多者來識別:(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 processor 211 may further classify the plurality of physical blocks according to the number of error bits, the number of erasures, or the long storage time, so as to classify the plurality of physical blocks into a plurality of block types.

例如,假設處理器211使用錯誤位元數來進行分類,並且將錯誤位元數大於錯誤位元數門檻值的多個第一實體區塊分類至第一區塊類型;將錯誤位元數不大於錯誤位元數門檻值的多個第二實體區塊分類至第二區塊類型。處理器211可將每個實體區塊所屬的區塊類型的資訊記錄至對應每個實體區塊的系統資料或元資料中。所述區塊類型的資訊可被寫入至可複寫式非揮發性記憶體模組220。For example, suppose that the processor 211 uses the number of error bits to classify, and classifies a plurality of first physical blocks whose number of error bits is greater than the threshold value of the number of error bits into the first block type; the number of error bits is not A plurality of second physical blocks larger than the threshold value of the number of error bits are classified into the second block type. The processor 211 can record the information of the block type to which each physical block belongs to the system data or metadata corresponding to each physical block. The information of the block type can be written to the rewritable non-volatile memory module 220.

又例如,廠商可根據可複寫式非揮發性記憶體模組的規格或是物理特性來預先設定所述抹除次數門檻值。處理器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 processor 211 uses the erase count value to classify, classifies the multiple first physical blocks whose erase count value is greater than the erase count threshold value into the first block type, and the erase count value is not greater than the erase count The multiple second physical blocks of the threshold value are classified into the second block type.

在一實施例中,當記憶胞被寫入(程式化)資料且經過一段長時間(亦稱,久存時間門檻值)的存放時(如,該記憶胞長時間不再被寫入資料),所述記憶胞的臨界電壓分佈會發生所謂的久存(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 processor 211 uses the persistence time to classify, and classifies the multiple first physical blocks whose persistence time is greater than the persistence time threshold value into the first block type; and classifies the persistence time not greater than the persistence time threshold value. The second physical blocks are classified into the second block type. The long-lived time of a physical block can be determined by calculating the difference between the current device timestamp and the writing timestamp of the physical block.

在獲得所述多個實體區塊各自的區塊類型後,處理器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 host system 10, which needs to maintain stability. The first system data is, for example, data of software or firmware used to manage various operations of the storage device. The second system data is, for example, data (such as a mapping table) of various information related to the plurality of physical blocks, which is less stable.

舉例來說,反應於判定所述多個實體區塊中的第一實體區塊被用以儲存使用者資料,所述第一實體區塊會被分類至第一區塊類型;反應於判定所述多個實體區塊中的第二實體區塊被用以儲存第一系統資料,所述第二實體區塊會被分類至第二區塊類型;反應於判定所述多個實體區塊中的第三實體區塊被用以儲存第二系統資料,所述第三實體區塊會被分類至第三區塊類型。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 processor 211 can classify a plurality of first physical blocks used to store cold read data/cold write data into the first block type; The plurality of second physical blocks are classified into the second block type. In addition, the processor 211 may assign a first pre-read cycle (Pre-read cycle) to all the first physical blocks belonging to the first block type (that is, the first pre-read cycle corresponds to the first zone). Block type); a second pre-reading period is assigned to all second physical blocks belonging to the second block type (that is, the second pre-reading period corresponds to the second block type), wherein the first The length of a pre-reading period is less than the length of the second pre-reading period.

在一實施例中,儲存冷資料的實體區塊所對應的存取時間戳記的值會最小,或是儲存冷資料的實體區塊所對應的抹除次數值會最小。基於此特性,相應於具有最小的存取時間戳記的實體區塊的預讀取週期以及相應於具有最小的抹除次數值的實體區塊的預讀取週期可被設定為較小的期間(如,第一預讀取週期)。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 processor 211 can record the information of the block type to which each physical block belongs to the system data or metadata corresponding to each physical block. The information of the block type can be written to the rewritable non-volatile memory module 220. In addition, the information related to the pre-read cycle of each physical block can also be recorded in the system data or metadata corresponding to each physical block, and written to the rewritable non-volatile memory module 220.

接著,在步驟S220中,處理器211指示預讀取電路單元215執行預讀取程序。更具體來說,所述預讀取程序包括步驟S221~S223。在步驟S221中,預讀取電路單元215辨識分別對應至所述多個實體區塊類型的多個預讀取週期。Next, in step S220, the processor 211 instructs the pre-reading circuit unit 215 to execute the pre-reading program. More specifically, the pre-reading procedure includes steps S221 to S223. In step S221, the pre-reading circuit unit 215 identifies a plurality of pre-reading periods corresponding to the plurality of physical block types.

在步驟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 pre-reading circuit unit 215 will actively search for the target physical block. Therefore, the above-mentioned process of steps S311 to S313 can also be referred to as an active pre-reading procedure.

請再回到圖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 processor 211 to apply a pre-read to the target physical block. Read the voltage. Specifically, the processor instructs the memory interface control circuit 213 to use the pre-read voltage to perform a read operation on one or more memory cells of the target physical block (ie, perform a read operation on the one or more memory cells of the target physical block). Or multiple memory cells perform pre-read operation). The one or more memory cells correspond to the designated physical address. The pre-read voltage may be one or more of a plurality of preset read voltage values corresponding to a preset read voltage group corresponding to the target physical block.

圖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 processor 211 identifies the designated physical block to which the designated physical address corresponding to the designated logical address indicated by the read command belongs among the plurality of physical blocks.

例如,在執行所述讀取程序的期間內,所述處理器辨識到讀取指令欲被執行,其中所述讀取指令用以指示對儲存於一指定邏輯位址的資料。所述讀取指令例如是從主機系統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 host system 10, or the read command is, for example, used to read data related to other memory operations (for example, a command used to read valid data in a garbage collection operation) ) Instructions. Then, the processor 211 can find the physical address (also known as the designated physical address) mapped to the designated logical address from the logical-to-physical address mapping table, and recognize that the designated physical address belongs to The physical block (that is, the designated physical block). Then, the processor 211 may instruct/notify the pre-read circuit unit 215 that the specified physical block will be read (for example, send a block identification code corresponding to the specified physical block to the pre-read circuit unit 215) .

接著,在步驟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 processor 211 to apply the pre-fetch voltage to the designated physical block before executing the read instruction. That is, the processor instructs the memory interface control circuit 213 to use the pre-read voltage to perform a read operation on one or more memory cells of the target physical block (ie, perform a read operation on the one or more memory cells). Each memory cell performs pre-read operation). The one or more memory cells correspond to the designated physical address. The pre-read voltage may be one or more of a plurality of preset read voltage values corresponding to a preset read voltage group corresponding to the target physical block.

應注意的是,在本實施例中,在對所述一或多個記憶胞執行預讀取操作後,所述處理器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 processor 211 ignores the data obtained through the pre-read operation and stored in the one or The original data of multiple memory cells. Specifically, after performing a read operation on the one or more memory cells (eg, physical pages) by using the pre-read voltage, the obtained original read data (also known as the original data) will be temporarily stored To the Cache Register in the memory interface control circuit 213 or the rewritable non-volatile memory module 220. The difference from the normal read operation is that the processor 211 will directly ignore the original data temporarily stored in the cache register, that is, the processor 211 will not obtain the original data temporarily stored in the cache register. Also, the original data temporarily stored in the cache will not be decoded (for example, error checking and correction procedures). To put it simply, after the processor 211 is instructed to indicate the target physical block, the processor 211 instructs the memory interface control circuit 213 to perform a pre-read operation, but does not perform a decoding operation on the read original data.

在所述指定實體區塊被施加所述預讀取電壓後,處理器211使用預設讀取電壓來對所述目標實體區塊執行所述讀取操作(步驟S324)。也就是說,由於在上述步驟S321~S323的流程中,目標實體區塊是經由讀取指令而被動地被識別。上述步驟S321~S323的流程可被稱為被動式預讀取程序。此外,圖3B的流程中,原本對應讀取指令所執行的讀取操作(一般讀取操作),會在相應的預讀取操作完成後,再被執行。After the pre-read voltage is applied to the designated physical block, the processor 211 uses a preset read voltage to perform the read operation on the target physical block (step S324). In other words, in the process of steps S321 to S323, the target physical block is passively identified through the read command. The above-mentioned process of steps S321 to S323 can be referred to as a passive pre-reading procedure. In addition, in the flow of FIG. 3B, the read operation (general read operation) originally performed corresponding to the read instruction will be executed after the corresponding pre-read operation is completed.

在其他實施例中,處理器211亦可指示預讀取電路單元215執行其他態樣的主動式的預讀取程序。In other embodiments, the processor 211 may also instruct the pre-fetching circuit unit 215 to execute other types of active pre-fetching procedures.

圖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 processor 211 records the respective block types of the multiple physical blocks. Step S41 is the same as step S210, and the details will not be repeated.

接著,在步驟S42中,預讀取電路單元215辨識分別對應至所述多個實體區塊類型的多個預讀取週期。步驟S42相同於步驟S221,細節不再贅述。Next, in step S42, the pre-reading circuit unit 215 identifies a plurality of pre-reading periods corresponding to the plurality of physical block types. Step S42 is the same as step S221, and the details will not be repeated.

接著,在步驟S43中,預讀取電路單元215針對所述多個預讀取週期的其中之一,每經過相符於所述一個預讀取週期的時間,對屬於對應所述一個預讀取週期的區塊類型的所有的實體區塊施加所述預讀取電壓。具體來說,預讀取電路單元215可辨識目前的不同的多個預讀取週期的時間長度,並且辨識對應至所述多個預讀取週期的多個區塊類型及對應的多個實體區塊。接著,預讀取電路單元215可基於所述多個預讀取週期持續地經由計時器來辨識當前經過的時間,並且於每經過相符於所述多個預讀取週期的其中之一的時間時,辨識到相應於所述預讀取週期的所有的實體區塊為目標實體區塊。此外,預讀取電路單元215可指示處理器對所有的所辨識的目標實體區塊施加預讀取電壓,即,對所有的目標實體區塊執行預讀取操作。Next, in step S43, the pre-reading circuit unit 215, for one of the plurality of pre-reading cycles, each time a time corresponding to the one pre-reading cycle has elapsed, the pre-reading circuit unit 215 is The pre-read voltage is applied to all physical blocks of the periodic block type. Specifically, the pre-reading circuit unit 215 can identify the current time lengths of different multiple pre-reading cycles, and identify multiple block types and corresponding multiple entities corresponding to the multiple pre-reading cycles. Block. Then, the pre-reading circuit unit 215 can continuously recognize the current elapsed time via a timer based on the plurality of pre-reading periods, and every time a time that matches one of the plurality of pre-reading periods elapses At this time, all physical blocks corresponding to the pre-reading period are identified as target physical blocks. In addition, the pre-read circuit unit 215 can instruct the processor to apply a pre-read voltage to all the identified target physical blocks, that is, to perform a pre-read operation on all the target physical blocks.

在另一實施例中,每當儲存裝置20開電時,處理器211更可基於多個區塊類型來對可複寫式非揮發性記憶體模組220的多個實體區塊執行預讀取操作。更具體來說,每當儲存裝置20開電時,所述預讀取電路單元215指示所述處理器211直接根據所述多個區塊類型的優先順序,對被分類為所述多個區塊類型的所述多個實體區塊中的部份或全部的實體區塊施加所述預讀取電壓。In another embodiment, whenever the storage device 20 is powered on, the processor 211 may further perform pre-reading on multiple physical blocks of the rewritable non-volatile memory module 220 based on multiple block types operating. More specifically, whenever the storage device 20 is powered on, the pre-reading circuit unit 215 instructs the processor 211 to directly classify the blocks into the blocks according to the priority order of the block types. The pre-read voltage is applied to part or all of the physical blocks of the plurality of physical blocks of the block type.

舉例來說,假設可複寫式非揮發性記憶體模組220的多個實體區塊被分類為第一區塊類型與第二區塊類型。第一區塊類型具有第一優先順序,並且第二區塊類型具有第二優先順序,其中第一優先順序先於第二優先順序。當儲存裝置20開電時,處理器211會先對屬於具有第一優先順序的第一區塊類型的多個第一實體區塊執行預讀取操作(即,對所述多個第一實體區塊施加預讀取電壓)。在執行於所述多個第一實體區塊的預讀取操作完成後,處理器211可再對屬於具有第二優先順序的第二區塊類型的多個第二實體區塊執行預讀取操作,或是於儲存裝置20處於閒置狀態時再對屬於具有第二優先順序的第二區塊類型的多個第二實體區塊執行預讀取操作。屬於具有第一優先順序的所述第一區塊類型的多個第一實體區塊包括下列態樣的一或多者:物理狀況較差的實體區塊、儲存有較重要的使用者資料的實體區塊、儲存有開機後會被存取的系統資料的實體區塊、儲存有冷資料的實體區塊。屬於具有第一優先順序的所述第一區塊類型的多個第一實體區塊例如是所述多個實體區塊中,非所述多個第一實體區塊的其他實體區塊。在一實施例中,屬於具有第二優先順序的第二區塊類型的多個第二實體區塊亦可不被執行預讀取操作。For example, suppose that the multiple physical blocks of the rewritable non-volatile memory module 220 are classified into a first block type and a second block type. The first block type has a first priority order, and the second block type has a second priority order, wherein the first priority order is earlier than the second priority order. When the storage device 20 is powered on, the processor 211 will first perform a pre-read operation on a plurality of first physical blocks belonging to a first block type with a first priority order (ie, perform a pre-read operation on the plurality of first physical blocks). Pre-read voltage is applied to the block). After the pre-read operation performed on the plurality of first physical blocks is completed, the processor 211 may further perform pre-read on the plurality of second physical blocks belonging to the second block type with the second priority order Operation, or when the storage device 20 is in an idle state, the pre-read operation is performed on a plurality of second physical blocks belonging to the second block type with the second priority. The plurality of first physical blocks belonging to the first block type with the first priority order includes one or more of the following aspects: physical blocks with poor physical conditions, entities storing more important user data Blocks, physical blocks that store system data that will be accessed after booting, and physical blocks that store cold data. The plurality of first physical blocks belonging to the first block type having the first priority order are, for example, other physical blocks other than the plurality of first physical blocks among the plurality of physical blocks. In an embodiment, the multiple second physical blocks belonging to the second block type with the second priority order may not be subjected to the pre-read operation.

圖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 non-volatile memory module 220 has four planes, and the processor 211 can simultaneously read from the physical blocks of the four planes in the same order through a multi-plane read operation Read the data. In addition, assume that the processor 211 intends to execute a read instruction, and the read instruction is used to instruct to read the physical blocks P1(1) to P4(1) and the physical blocks P1( 2)~P4(2), where the physical block with the first reading problem is the physical block P4(1) corresponding to the fourth plane, the physical block P2(2) corresponding to the second plane, and the entity corresponding to the third plane Block P3(2).

在此例子中,在時間點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 processor 211 performs a multi-plane reading operation on the physical blocks P1(1)-P4(1) (the multi-plane reading operation takes time “T”). Because the physical block P4(1) corresponding to the fourth plane has a first read problem, the read operation fails. Therefore, the processor 211 performs a read retry operation on the physical block P4(1) at the time point TP2 (the single-plane read operation performed took time "T"), and no read operation failure occurred (successful Obtain the data stored in the physical block P4(1)). The first read problem of the physical block P4(1) is eliminated because of the read operation performed at the time point TP1, so that the subsequent read operation performed at the time point TP2 is successful.

接著,在時間點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 processor 211 performs a multi-plane reading operation on the physical blocks P1(2) to P4(2) (the multi-plane reading operation takes time “T”). Because the physical blocks P2(2) and P3(2) corresponding to the second and third planes have a first read problem, the read operation fails. Therefore, the processor 211 first performs a read retry operation on the physical block P2(2) at the time point TP4 (the single-plane read operation performed takes time "T"), and no read operation failure occurs. Then, at time TP5, a read retry operation is performed on the physical block P3(2) (the single-plane read operation performed takes time "T"), and no read operation failure occurs.

也就是說,為了正確地獲得儲存在實體區塊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 processor 211 instructs the pre-reading circuit unit 215 to use an active pre-reading procedure. In this example, the pre-read circuit unit 215 instructs the processor 211 to perform a pre-read operation on the physical blocks P1(1)~P4(1) and the physical blocks P1(2)~P4(2) at time TP1 (The pre-read voltage is applied to the physical blocks P1(1)~P4(1) and the physical blocks P1(2)~P4(2) through the multi-plane reading method), among which the physical blocks P1(1) The pre-read operation performed by )~P4(1) took time "t", and the pre-read operation performed on the physical blocks P1(2)~P4(2) took time "t". The time "t" is less than the time "T".

在此,為了方便說明,假設時間“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 processor 211 performs a general multi-plane read operation on the physical blocks P1(1)~P4(1) and the physical blocks P1(2)~P4(2), and successfully completes all Read operation performed (accurately obtain the data stored in physical blocks P1(1)~P4(1) and physical blocks P1(2)~P4(2)). 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 5B, 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).

圖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 processor 211 instructs the pre-reading circuit unit 215 to use a passive pre-reading program. In this example, it is assumed that the processor 211 informs the pre-fetch circuit unit 215 that the target physical blocks are physical blocks P1(1)~P4(1) and physical blocks P1(2)~P4(2) based on the read instruction. ). The pre-read circuit unit 215 determines that the physical blocks P1(1)~P4(1) and the physical blocks P1(2)~P4(2) all need to perform the pre-read operation.

如圖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 pre-read circuit unit 215 instructs the processor 211 to perform the reading operations on the physical blocks P1(1)~P4 at time TP1. (1) Perform a pre-read operation (the pre-read operation performed takes time "t"). Then, after the pre-read operation is completed, at time TP2, the processor performs a general read operation on the physical blocks P1(1)~P4(1) (the read operation performed takes time "T" ) To correctly obtain the data stored in the physical blocks P1(1)~P4(1). The time "t" is less than the time "T".

接著,在對實體區塊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 pre-read circuit unit 215 instructs the processor 211 to perform the execution on the physical blocks P1(2)~P4(2) at time TP3. Pre-read operation (the pre-read operation performed takes time "t"). Then, after the pre-read operation is completed, at time TP4, the processor performs a general read operation on the physical blocks P1(2)~P4(2) (the read operation performed takes time "T" ) To correctly obtain the data stored in the physical blocks P1(2)~P4(2).

如圖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 storage controller 210, and the storage device 20 provided by the embodiment of the present invention can effectively eliminate the failure of the read operation. The problem of first reading, thereby reducing the total time spent in the reading operation to obtain correct reading of the data, and increasing the reading efficiency of the storage device.

特別是,有解除首讀問題的實體區塊的錯誤檢查與校正程序中的解碼迭代操作的總數量低於具有首讀問題的實體區塊的錯誤檢查與校正程序中的解碼迭代操作的總數量(因為錯誤數少)。因此,在一些實施例中,當具有首讀現象的實體區塊被讀取時(會執行錯誤檢查與校正程序來解碼所讀取的資料),此實體區塊於讀取操作(包含讀出資料所耗費的時間以及執行錯誤檢查與校正程序所耗費的時間)所耗費的時間為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 pre-reading circuit unit 215 is implemented in a hardware circuit, but the present invention is not limited to this. For example, in one embodiment, the functions of the pre-read circuit unit 215, the pre-read cycle management circuit 2151, and the pre-read execution circuit 2152 can be implemented by the processor 211 in software or firmware, respectively. Code. For example, the functions of the pre-reading circuit unit 215, the pre-reading cycle management circuit 2151, and the pre-reading execution circuit 2152 can be implemented as a pre-reading program module, a pre-reading cycle management program module, and a pre-reading execution program. Modules, and the processor 211 can load and execute pre-reading program modules, pre-reading cycle management program modules, and pre-reading execution program modules to realize corresponding functions.

綜上所述,本發明的實施例所提供的記憶體管理方法、儲存控制器與儲存裝置,可根據所述儲存裝置的可複寫式非揮發性記憶體模組的多個實體區塊各自的預讀取週期及區塊類型從所述多個實體區塊中選擇目標實體區塊,並且對所述目標實體區塊施加一預讀取電壓,以預先消除/解除於可複寫式非揮發性記憶體模組中發生的首讀問題,進而增進了儲存裝置的讀取效率。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: storage device 110, 211: processor 120: host memory 130: data transmission interface circuit 210: storage controller 212: Data Transmission Management Circuit 213: Memory Interface Control Circuit 220: rewritable non-volatile memory module 230: connection interface circuit 215: Pre-read circuit unit 2151: Pre-read cycle management circuit 2152: Pre-read execution circuit S210, S220, S221, S222, S223: Process steps of the memory management method S311, S312, S313: flow steps of the pre-reading program S321, S322, S323, S324, S325: the flow steps of the pre-reading program S41, S42, S43: Process steps of the memory management method TP1~TP6: Time point P1(1)~P4(2): physical block t, T: duration/length of time

圖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)

一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,所述儲存控制器包括: 一連接介面電路,用以耦接至一主機系統; 一記憶體介面控制電路,用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊; 一預讀取電路單元,以及 一處理器,耦接至所述連接介面電路、所述記憶體介面控制電路及所述預讀取電路單元, 其中所述處理器用以記錄所述多個實體區塊各自的區塊類型, 其中所述處理器更用以指示所述預讀取電路單元執行一預讀取程序, 在所述預讀取程序中, 所述預讀取電路單元用以辨識分別對應至所述多個實體區塊類型的多個預讀取週期, 其中所述預讀取電路單元根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的一目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期, 其中所述預讀取電路單元更用以指示所述處理器對所述目標實體區塊施加一預讀取電壓。A storage controller for controlling a storage device equipped with a rewritable non-volatile memory module, the storage controller comprising: A connection interface circuit for coupling to a host system; A memory interface control circuit for coupling to the rewritable non-volatile memory module, wherein the rewritable non-volatile memory module has a plurality of physical blocks; A pre-read circuit unit, and A processor coupled to the connection interface circuit, the memory interface control circuit and the pre-read circuit unit, The processor is used to record the respective block types of the multiple physical blocks, The processor is further used to instruct the pre-read circuit unit to execute a pre-read program, In the pre-reading program, The pre-reading circuit unit is used to identify a plurality of pre-reading periods corresponding to the plurality of physical block types, and The pre-reading circuit unit selects a target physical block of the plurality of physical blocks according to the plurality of pre-reading periods and the plurality of block types, and the target of the target physical block is The non-access duration is not less than the target pre-read period corresponding to the target block type of the target physical block among the plurality of pre-read periods, and The pre-read circuit unit is further used to instruct the processor to apply a pre-read voltage to the target physical block. 如申請專利範圍第1項所述的儲存控制器,其中所述可複寫式非揮發性記憶體模組為三維三階記憶胞NAND型快閃記憶體模組(3D TLC NAND flash memory module)、垂直三階記憶胞NAND型快閃記憶體模組(Vertical TLC NAND flash memory module)、三維四階記憶胞NAND型快閃記憶體模組(3D QLC NAND flash memory module)或垂直四階記憶胞NAND型快閃記憶體模組(Vertical QLC NAND flash memory module)。Such as the storage controller described in item 1 of the scope of patent application, wherein the rewritable non-volatile memory module is a three-dimensional three-level memory cell NAND flash memory module (3D TLC NAND flash memory module), Vertical three-level memory cell NAND flash memory module (Vertical TLC NAND flash memory module), three-dimensional four-level memory cell NAND flash memory module (3D QLC NAND flash memory module) or vertical four-level memory cell NAND Type flash memory module (Vertical QLC NAND flash memory module). 如申請專利範圍第1項所述的儲存控制器,其中在記錄所述多個實體區塊各自的所述區塊類型的運作中, 所述處理器根據所述多個實體區塊各自的物理狀況或所儲存的資料的資料類型來將所述多個實體區塊分類至所述多個區塊類型的其中之一, 其中對應至所述多個區塊類型的所述多個預讀取週期為預先設定的, 其中用以表示具有越差的物理狀況的區塊類型所對應的預讀取週期越小, 其中對應至系統資料的區塊類型所對應的預讀取週期大於對應至使用者資料的區塊類型所對應的預讀取週期, 其中對應至熱資料的區塊類型所對應的預讀取週期大於對應至冷資料的區塊類型所對應的預讀取週期。The storage controller described in claim 1, wherein in the operation of recording the block type of each of the plurality of physical blocks, The processor classifies the plurality of physical blocks into one of the plurality of block types according to the respective physical conditions of the plurality of physical blocks or the data type of the stored data; Wherein the multiple pre-read periods corresponding to the multiple block types are preset, Among them, the smaller the pre-read cycle corresponding to the block type with the worse physical condition, The pre-read period corresponding to the block type corresponding to the system data is greater than the pre-read period corresponding to the block type corresponding to the user data, The pre-read period corresponding to the block type corresponding to the hot data is greater than the pre-read period corresponding to the block type corresponding to the cold data. 如申請專利範圍第1項所述的儲存控制器,其中在所述預讀取電路單元根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的所述目標實體區塊的運作中, 所述預讀取電路單元辨識所述多個實體區塊各自的存取時間戳記,並且經由所述多個實體區塊各自的所述區塊類型來辨識所述多個實體區塊各自的所述預讀取週期, 其中所述預讀取電路單元計算所述儲存裝置的當前時間戳記與所述多個存取時間戳記之間的多個差值,以作為所述多個實體區塊各自的未存取持續時間, 其中所述預讀取電路單元經由比較所述多個實體區塊各自的所述未存取持續時間與所述多個實體區塊各自的所述預讀取週期來找出所述多個未存取持續時間中的不小於所對應的所述目標預讀取週期的所述目標未存取持續時間,以將所述目標預讀取週期與所述目標未存取持續時間所屬的實體區塊作為所述目標實體區塊。The storage controller according to claim 1, wherein the pre-read circuit unit selects one of the plurality of physical blocks according to the plurality of pre-read cycles and the plurality of block types In the operation of the target physical block, The pre-reading circuit unit recognizes the respective access timestamps of the plurality of physical blocks, and recognizes the respective block types of the plurality of physical blocks through the respective block types of the plurality of physical blocks. The pre-read cycle, The pre-reading circuit unit calculates a plurality of differences between the current time stamp of the storage device and the plurality of access time stamps as the non-access duration of each of the plurality of physical blocks , Wherein the pre-read circuit unit finds out the plurality of non-access durations by comparing the respective non-access durations of the plurality of physical blocks with the respective pre-read periods of the plurality of physical blocks The access duration is not less than the target non-access duration of the corresponding target pre-read period, so as to compare the target pre-read period and the physical area to which the target non-access duration belongs Block as the target physical block. 如申請專利範圍第4項所述的儲存控制器,其中 每當所述處理器對所述多個實體區塊的其中之一執行一抹除操作、一寫入操作或一讀取操作時,所述處理器更新所述一個實體區塊的所述存取時間戳記為對應所述抹除操作、所述寫入操作或所述讀取操作的時間戳記。The storage controller described in item 4 of the scope of patent application, wherein Whenever the processor performs an erase operation, a write operation, or a read operation on one of the plurality of physical blocks, the processor updates the access of the one physical block The time stamp is a time stamp corresponding to the erase operation, the write operation, or the read operation. 如申請專利範圍第5項所述的儲存控制器,其中在所述預讀取電路單元指示所述處理器對所述目標實體區塊施加所述預讀取電壓的運作中, 所述預讀取電路單元更指示所述處理器將所述目標實體區塊的所述存取時間戳記更新為對應所施加的所述預讀取電壓的時間戳記。The storage controller according to claim 5, wherein in the operation in which the pre-read circuit unit instructs the processor to apply the pre-read voltage to the target physical block, The pre-read circuit unit further instructs the processor to update the access timestamp of the target physical block to a timestamp corresponding to the applied pre-read voltage. 如申請專利範圍第1項所述的儲存控制器,其中在所述預讀取電路單元指示所述處理器對所述目標實體區塊施加所述預讀取電壓的運作中, 所述處理器指示所述記憶體介面控制電路使用所述預讀取電壓來對所述目標實體區塊的一或多個記憶胞執行讀取操作, 其中所述處理器忽略經由所述讀取操作所獲得的儲存於所述一或多個記憶胞的原始資料。The storage controller according to claim 1, wherein in the operation in which the pre-read circuit unit instructs the processor to apply the pre-read voltage to the target physical block, The processor instructs the memory interface control circuit to use the pre-read voltage to perform a read operation on one or more memory cells of the target physical block, The processor ignores the original data stored in the one or more memory cells obtained through the read operation. 如申請專利範圍第1項所述的儲存控制器,其中在執行所述預讀取程序的期間內,所述處理器辨識到一讀取指令欲被執行,其中所述讀取指令用以指示對儲存於一指定邏輯位址的資料, 其中所述處理器辨識所述多個實體區塊中對應所述指定邏輯位址的指定實體位址所屬的指定實體區塊,並且通知所述預讀取電路單元所述指定實體區塊將被執行讀取操作, 其中在所述預讀取電路單元根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的所述目標實體區塊的運作中, 所述預讀取電路單元辨識所述指定實體區塊的存取時間戳記,並且經由所述指定實體區塊的所述區塊類型來辨識所述指定實體區塊的所述預讀取週期, 其中反應於判定所述指定實體區塊的所述存取時間戳記不小於所述指定實體區塊的所述預讀取週期,所述預讀取電路單元將所述指定實體區塊識別為所述目標實體區塊, 其中所述預讀取電路單元更指示所述處理器在執行所述讀取指令之前,對所述指定實體區塊施加所述預讀取電壓, 其中在所述指定實體區塊被施加所述預讀取電壓後,所述處理器指示所述記憶體介面控制電路使用預設讀取電壓來對所述目標實體區塊執行所述讀取操作。The storage controller according to claim 1, wherein during the execution of the pre-fetch program, the processor recognizes that a read instruction is to be executed, wherein the read instruction is used to instruct For data stored at a specified logical address, The processor identifies the designated physical block to which the designated physical address corresponding to the designated logical address belongs among the plurality of physical blocks, and notifies the pre-reading circuit unit that the designated physical block will be Perform a read operation, Wherein in the operation of the pre-reading circuit unit selecting the target physical block of the plurality of physical blocks according to the plurality of pre-reading periods and the plurality of block types, The pre-read circuit unit identifies the access timestamp of the designated physical block, and identifies the pre-read cycle of the designated physical block through the block type of the designated physical block, Wherein, 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 recognizes the designated physical block as the designated physical block. The target entity block, The pre-read circuit unit further instructs the processor to apply the pre-read voltage to the designated physical block before executing the read instruction, Wherein after the pre-read voltage is applied to the designated physical block, the processor instructs the memory interface control circuit to use a preset read voltage to perform the read operation on the target physical block . 如申請專利範圍第1項所述的儲存控制器,其中 每當所述儲存裝置開電時,所述預讀取電路單元指示所述處理器直接根據所述多個區塊類型的優先順序,對被分類為所述多個區塊類型的所述多個實體區塊中的部份或全部的實體區塊施加所述預讀取電壓。The storage controller as described in item 1 of the scope of patent application, wherein Whenever the storage device is powered on, the pre-reading circuit unit instructs the processor to directly perform processing on the multiple block types classified into the multiple block types according to the priority order of the multiple block types. Part or all of the physical blocks in each physical block are applied with the pre-read voltage. 如申請專利範圍第1項所述的儲存控制器,其中 針對所述多個預讀取週期的其中之一,每經過相符於所述一個預讀取週期的時間,所述預讀取電路單元指示所述處理器對屬於對應所述一個預讀取週期的區塊類型的所有的實體區塊施加所述預讀取電壓。The storage controller as described in item 1 of the scope of patent application, wherein For one of the plurality of pre-reading cycles, the pre-reading circuit unit instructs the processor to correspond to the one pre-reading cycle every time a time that corresponds to the one pre-reading cycle elapses The pre-read voltage is applied to all physical blocks of the block type. 一種記憶體管理方法,適用於用以控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置的儲存控制器,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊,所述方法包括: 記錄所述多個實體區塊各自的區塊類型;以及 執行一預讀取程序, 其中所述預讀取程序包括: 辨識分別對應至所述多個實體區塊類型的多個預讀取週期; 根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的一目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期;以及 對所述目標實體區塊施加一預讀取電壓。A memory management method is suitable for a storage controller used to control a storage device equipped with a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module has multiple physical areas Block, the method includes: Record the respective block types of the multiple physical blocks; and Perform a pre-reading program, The pre-reading program includes: Identifying multiple pre-reading cycles corresponding to the multiple physical block types; According to the plurality of pre-read periods and the plurality of block types, a target physical block of the plurality of physical blocks is selected, wherein the target non-access duration of the target physical block is not less than all A target pre-read period corresponding to the target block type of the target physical block among the plurality of pre-read periods; and A pre-read voltage is applied to the target physical block. 如申請專利範圍第11項所述的記憶體管理方法,其中所述記錄所述多個實體區塊各自的所述區塊類型的步驟包括: 根據所述多個實體區塊各自的物理狀況或所儲存的資料的資料類型來將所述多個實體區塊分類至所述多個區塊類型的其中之一, 其中對應至所述多個區塊類型的所述多個預讀取週期為預先設定的, 其中用以表示具有越差的物理狀況的區塊類型所對應的預讀取週期越小, 其中對應至系統資料的區塊類型所對應的預讀取週期大於對應至使用者資料的區塊類型所對應的預讀取週期, 其中對應至熱資料的區塊類型所對應的預讀取週期大於對應至冷資料的區塊類型所對應的預讀取週期。The memory management method according to claim 11, wherein the step of recording the block type of each of the plurality of physical blocks includes: Classifying the plurality of physical blocks into one of the plurality of block types according to the respective physical conditions of the plurality of physical blocks or the data type of the stored data, Wherein the multiple pre-read periods corresponding to the multiple block types are preset, Among them, the smaller the pre-read cycle corresponding to the block type with the worse physical condition, The pre-read period corresponding to the block type corresponding to the system data is greater than the pre-read period corresponding to the block type corresponding to the user data, The pre-read period corresponding to the block type corresponding to the hot data is greater than the pre-read period corresponding to the block type corresponding to the cold data. 如申請專利範圍第11項所述的記憶體管理方法,其中所述根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的所述目標實體區塊的步驟包括: 辨識所述多個實體區塊各自的存取時間戳記,並且經由所述多個實體區塊各自的所述區塊類型來辨識所述多個實體區塊各自的所述預讀取週期; 計算所述儲存裝置的當前時間戳記與所述多個存取時間戳記之間的多個差值,以作為所述多個實體區塊各自的未存取持續時間; 經由比較所述多個實體區塊各自的所述未存取持續時間與所述多個實體區塊各自的所述預讀取週期來找出所述多個未存取持續時間中的不小於所對應的所述目標預讀取週期的所述目標未存取持續時間,以將所述目標預讀取週期與所述目標未存取持續時間所屬的實體區塊作為所述目標實體區塊。The memory management method according to claim 11, wherein the target physical area of the plurality of physical blocks is selected according to the plurality of pre-read periods and the plurality of block types The block steps include: Identifying the respective access timestamps of the plurality of physical blocks, and identifying the respective pre-read periods of the plurality of physical blocks through the respective block types of the plurality of physical blocks; Calculating a plurality of differences between the current timestamp of the storage device and the plurality of access timestamps as the non-access duration of each of the plurality of physical blocks; By comparing the non-access duration of each of the plurality of physical blocks with the pre-read period of each of the plurality of physical blocks, find out that the non-access duration of the plurality of non-access durations is not less than Corresponding to the target non-access duration of the target pre-read period, and use the physical block to which the target pre-read period and the target non-access duration belong as the target physical block . 如申請專利範圍第13項所述的記憶體管理方法,更包括: 每當對所述多個實體區塊的其中之一執行一抹除操作、一寫入操作或一讀取操作時,更新所述一個實體區塊的所述存取時間戳記為對應所述抹除操作、所述寫入操作或所述讀取操作的時間戳記。The memory management method described in item 13 of the scope of patent application further includes: Whenever an erase operation, a write operation, or a read operation is performed on one of the plurality of physical blocks, the access timestamp of the one physical block is updated to correspond to the erase The timestamp of the operation, the write operation, or the read operation. 如申請專利範圍第14項所述的記憶體管理方法,其中所述指示所述處理器對所述目標實體區塊施加所述預讀取電壓的步驟包括: 將所述目標實體區塊的所述存取時間戳記更新為對應所施加的所述預讀取電壓的時間戳記。The memory management method according to claim 14, wherein the step of instructing the processor to apply the pre-read voltage to the target physical block includes: The access time stamp of the target physical block is updated to a time stamp corresponding to the applied pre-read voltage. 如申請專利範圍第11項所述的記憶體管理方法,其中所述對所述目標實體區塊施加所述預讀取電壓的步驟包括: 使用所述預讀取電壓來對所述目標實體區塊的一或多個記憶胞執行讀取操作;以及 忽略經由所述讀取操作所獲得的儲存於所述一或多個記憶胞的原始資料。The memory management method according to claim 11, wherein the step of applying the pre-read voltage to the target physical block includes: Use the pre-read voltage to perform a read operation on one or more memory cells of the target physical block; and The original data stored in the one or more memory cells obtained through the read operation are ignored. 如申請專利範圍第11項所述的記憶體管理方法,其中在執行所述預讀取程序的期間內,辨識到一讀取指令欲被執行,其中所述讀取指令用以指示對儲存於一指定邏輯位址的資料,所述方法更包括: 辨識所述多個實體區塊中對應所述指定邏輯位址的指定實體位址所屬的指定實體區塊; 其中在根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的所述目標實體區塊的步驟包括: 辨識所述指定實體區塊的存取時間戳記,並且經由所述指定實體區塊的所述區塊類型來辨識所述指定實體區塊的所述預讀取週期; 反應於判定所述指定實體區塊的所述存取時間戳記不小於所述指定實體區塊的所述預讀取週期,將所述指定實體區塊識別為所述目標實體區塊; 在執行所述讀取指令之前,對所述指定實體區塊施加所述預讀取電壓;以及 在所述指定實體區塊被施加所述預讀取電壓後,使用預設讀取電壓來對所述目標實體區塊執行所述讀取操作。The memory management method as described in claim 11, wherein during the execution of the pre-fetching program, it is recognized that a read command is to be executed, wherein the read command is used to instruct the pair to be stored in A data specifying a logical address, the method further includes: Identifying the designated physical block to which the designated physical address corresponding to the designated logical address belongs among the plurality of physical blocks; The step of selecting the target physical block among the multiple physical blocks according to the multiple pre-read periods and the multiple block types includes: Identifying the access timestamp of the designated physical block, and identifying the pre-read cycle of the designated physical block through the block type 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 period of the designated physical block, identifying the designated physical block as the target physical block; Before executing the read command, apply the pre-read voltage to the specified physical block; and After the pre-read voltage is applied to the designated physical block, a predetermined read voltage is used to perform the read operation on the target physical block. 如申請專利範圍第11項所述的記憶體管理方法,更包括: 每當所述儲存裝置開電時,直接根據所述多個區塊類型的優先順序,對被分類為所述多個區塊類型的所述多個實體區塊中的部份或全部的實體區塊施加所述預讀取電壓。The memory management method described in item 11 of the scope of patent application further includes: Whenever the storage device is powered on, directly according to the priority order of the multiple block types, some or all of the entities in the multiple physical blocks classified as the multiple block types The block applies the pre-read voltage. 如申請專利範圍第11項所述的記憶體管理方法,更包括: 針對所述多個預讀取週期的其中之一,每經過相符於所述一個預讀取週期的時間,對屬於對應所述一個預讀取週期的區塊類型的所有的實體區塊施加所述預讀取電壓。The memory management method described in item 11 of the scope of patent application further includes: For one of the plurality of pre-read cycles, every time a time that matches the one pre-read cycle passes, all physical blocks belonging to the block type corresponding to the one pre-read cycle are applied. The pre-read voltage. 一種儲存裝置,所述儲存裝置包括: 一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊;以及 一儲存控制器,耦接至所述可複寫式非揮發性記憶體模組, 其中所述儲存控制器用以記錄所述多個實體區塊各自的區塊類型, 其中所述儲存控制器更用以執行一預讀取程序, 在所述預讀取程序中, 所述儲存控制器更用以辨識分別對應至所述多個實體區塊類型的多個預讀取週期, 其中所述儲存控制器根據所述多個預讀取週期及所述多個區塊類型選擇所述多個實體區塊中的一目標實體區塊,其中所述目標實體區塊的目標未存取持續時間不小於所述多個預讀取週期中對應所述目標實體區塊的目標區塊類型的目標預讀取週期, 其中所述儲存控制器更用以對所述目標實體區塊施加一預讀取電壓。A storage device, the storage device comprising: A rewritable non-volatile memory module, wherein the rewritable non-volatile memory module has a plurality of physical blocks; and A storage controller coupled to the rewritable non-volatile memory module, The storage controller is used to record the respective block types of the multiple physical blocks, The storage controller is further used to execute a pre-reading procedure, In the pre-reading program, The storage controller is further used to identify a plurality of pre-read periods corresponding to the plurality of physical block types, respectively, The storage controller selects a target physical block of the plurality of physical blocks according to the plurality of pre-read periods and the plurality of block types, wherein the target of the target physical block is not stored Taking the duration of not less than the target pre-reading period corresponding to the target block type of the target physical block among the plurality of pre-reading periods, The storage controller is further used to apply a pre-read voltage to the target physical block.
TW108145218A 2019-12-11 2019-12-11 Memory management method, storage controller and storage device TWI712052B (en)

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)

* Cited by examiner, † Cited by third party
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

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