TW201947402A - 記憶體管理方法以及儲存控制器 - Google Patents
記憶體管理方法以及儲存控制器 Download PDFInfo
- Publication number
- TW201947402A TW201947402A TW107116302A TW107116302A TW201947402A TW 201947402 A TW201947402 A TW 201947402A TW 107116302 A TW107116302 A TW 107116302A TW 107116302 A TW107116302 A TW 107116302A TW 201947402 A TW201947402 A TW 201947402A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- block string
- string
- effective weight
- physical blocks
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本發明提供適用於配置有一可複寫式非揮發性記憶體模組的儲存裝置的一種記憶體管理方法。所述可複寫式非揮發性記憶體模組具有被劃分至多個區塊串的多個實體區塊。所述方法包括:掃描所述多個實體區塊,以辨識所述多個實體區塊中的一或多個壞實體區塊;根據所述可複寫式非揮發性記憶體模組的多個資料存取時間參數、多個有效資料計數值與所辨識的所述一或多個壞實體區塊來計算各自對應所述多個區塊串的多個有效權重值;以及根據所述多個有效權重值從所述多個區塊串中選擇目標區塊串以執行垃圾回收操作。
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的記憶體管理方法與儲存控制器。
一般來說,在可複寫式非揮發性記憶體模組的閒置空間不足時,可複寫式非揮發性記憶體模組的控制器會對可複寫式非揮發性記憶體模組的區塊串執行垃圾回收操作,以釋放出該區塊串的可用空間。
但是,在可複寫式非揮發性記憶體模組具有壞實體區塊的情況下,具有壞實體區塊的區塊串經由垃圾回收操作所能釋放的可用空間會少於不具有壞實體區塊的區塊串。
基此,要如何考量壞實體區塊的存在,以對應地選擇適當的用來執行垃圾回收操作的區塊串,進而增進垃圾回收操作的效率與釋放空間,是本領域人員研究的課題之一。
本發明提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種記憶體管理方法與儲存控制器,可考量壞實體區塊的存在,以選擇用以執行垃圾回收操作的區塊串,進而增加了垃圾回收操作的效應。
本發明的一實施例提供一種記憶體管理方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊,其中所述多個實體區塊被劃分至多個區塊串,並且所述多個區塊串(Block Stripe)依據一第一順序排列。所述方法包括:掃描所述多個實體區塊,以辨識所述多個實體區塊中的一或多個壞實體區塊;辨識各自對應所述多個區塊串的多個有效資料計數值;根據所述可複寫式非揮發性記憶體模組的多個資料存取時間參數、所述多個有效資料計數值與所辨識的所述一或多個壞實體區塊的位置來計算各自對應所述多個區塊串的多個有效權重值;以及從所述多個有效權重值中選擇目標有效權重值,並且對所述多個區塊串中對應所述目標有效權重值的目標區塊串執行垃圾回收操作。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括:連接介面電路、記憶體介面控制電路、區塊串管理電路單元以及處理器。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體區塊,其中所述多個實體區塊被劃分至多個區塊串,並且所述多個區塊串(Block Stripe)依據一第一順序排列。所述區塊串管理電路單元用以掃描所述多個實體區塊,以辨識所述多個實體區塊中的一或多個壞實體區塊,其中所述區塊串管理電路單元更用以辨識各自對應所述多個區塊串的多個有效資料計數值,其中所述區塊串管理電路單元更用以根據所述可複寫式非揮發性記憶體模組的多個資料存取時間參數、所述多個有效資料計數值與所辨識的所述一或多個壞實體區塊的位置來計算各自對應所述多個區塊串的多個有效權重值,其中所述區塊串管理電路單元更用以從所述多個有效權重值中選擇一目標有效權重值,並且對所述多個區塊串中對應所述目標有效權重值的目標區塊串執行垃圾回收操作。
基於上述,本發明實施例所提供的記憶體管理方法與儲存控制器,可掃描且辨識壞實體區塊,根據可複寫式非揮發性記憶體模組的多個資料存取時間參數、所述多個有效資料計數值與所辨識的所述一或多個壞實體區塊的位置來計算各自對應多個區塊串的多個有效權重值,以根據所述多個有效權重值來選擇所述多個區塊串中的目標區塊串來執行垃圾回收操作,進而可在考量壞實體區塊的情況下選擇了可釋放更多空間的較適當的區塊串以使得垃圾回收操作的效率增加。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。此外,儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
請參照圖1,主機系統(Host System)10包括處理器(Processor)110、主機記憶體(Host Memory)120及資料傳輸介面電路(Data Transfer Interface Circuit)130。在本實施例中,資料傳輸介面電路130耦接(亦稱,電性連接)至處理器110與主機記憶體120。在另一實施例中,處理器110、主機記憶體120與資料傳輸介面電路130之間利用系統匯流排(System Bus)彼此耦接。
儲存裝置20包括儲存控制器(Storage Controller)210、可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)220及連接介面電路(Connection Interface Circuit)230。其中,儲存控制器210包括處理器211、資料管理電路(Data Management Circuit)212與記憶體介面控制電路(Memory Interface Control Circuit)213。
在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20或從儲存裝置20中讀取資料。
在本實施例中,處理器110、主機記憶體120及資料傳輸介面電路130可設置在主機系統10的主機板上。資料傳輸介面電路130的數目可以是一或多個。透過資料傳輸介面電路130,主機板可以經由有線或無線方式耦接至儲存裝置20。儲存裝置20可例如是隨身碟、記憶卡、固態硬碟(Solid State Drive,SSD)或無線記憶體儲存裝置。無線記憶體儲存裝置可例如是近距離無線通訊(Near Field Communication,NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板也可以透過系統匯流排耦接至全球定位系統(Global Positioning System,GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路130與連接介面電路230亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路230可與儲存控制器210封裝在一個晶片中,或者連接介面電路230是佈設於一包含儲存控制器210之晶片外。
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體儲存單元中。
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器210各部件所執行的操作亦可視為儲存控制器210所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。
記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,記憶體介面控制電路213還可根據所接收的其他指令序列,以對可複寫式非揮發性記憶體模組220執行相對應的操作(例如,壞區塊掃描操作、損耗平衡操作或垃圾回收操作等等)。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊;在寫入指令序列中,會包括欲寫入的邏輯位址、寫入資料、欲使用的寫入模式(如,單平面寫入模式或多平面寫入模式)等資訊。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quadruple Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(實體頁面)。此外,多個實體程式化單元可組成一個實體單元(實體區塊或實體抹除單元)。在本實施例中,以三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組做例子來說明,即,在下述的實施例中,會將一個可儲存3個位元值的記憶胞作為一個實體程式化單元(即,在每次程式化操作中,會對一個實體程式化單元接著一個實體程式化單元來施加程式化電壓以程式化資料),其中每一個記憶胞可區分為各自可儲存一個位元值的下實體頁面(Lower Physical Page)、中實體頁面(Middle Physical Page)與上實體頁面(Upper Physical Page)。
在本實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。每一實體單元會具有多個記憶胞。。在本實施例中,
在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當處理器211對可複寫式非揮發性記憶體模組220中的記憶胞(或實體單元/實體區塊)進行分組以執行對應的管理操作時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。
此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在本實施例中,錯誤檢查與校正電路214是耦接至處理器211並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當處理器211從主機系統10中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且處理器211會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組220中。之後,當處理器211從可複寫式非揮發性記憶體模組220中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路214會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。此外,在錯誤檢查與校正程序後,若成功解碼所讀取之資料,錯誤檢查與校正電路214可回傳錯誤位元值給處理器211。
在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。
在本實施例中,區塊串管理電路單元215包括壞區塊掃描電路(Bad Block scanning circuits)2151與有效權重計算電路(Effective weight calculating circuit)2152。所述區塊串管理電路單元215用以根據所辨識到的壞實體區塊來計算每個區塊串的有效權重值,以讓處理器211可根據所有區塊串的所有有效權重值來選擇用以執行垃圾回收操作的目標區塊串。應注意的是,區塊串管理電路單元215各部件所執行的操作亦可視為區塊串管理電路單元215所執行的操作。
以下會配合圖2、圖3與圖4來說明「選擇/決定用以執垃圾回收操作的區塊串(亦稱,目標區塊串)」的方法與本實施例所提供的記憶體管理方法、儲存控制器及區塊串管理電路單元215的細節。
圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。應注意的是,圖2所繪示的的記憶體管理方法亦可稱為垃圾回收區塊串選擇方法(Garbage Collection Block Stripe Selection Method)。請同時參照圖1與圖2,在步驟S21中,區塊串管理電路單元215掃描多個實體區塊,以辨識所述多個實體區塊中的一或多個壞實體區塊,其中所述多個實體區塊被劃分至多個區塊串。具體來說,在本實施例中,處理器211可在下列時機點的其中之一:(1)儲存裝置20閒暇(即,儲存裝置20閒置超過一預定時間門檻值)時;(2)儲存裝置開電時;或(3)從一實體區塊所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,來指示區塊串管理電路單元215中的壞區塊掃描電路2151執行壞實體區塊掃描操作,此操作會掃描全部或是特定的(如,對應上述條件(3)的實體區塊)實體區塊,以判斷被掃描的實體區塊是否為壞實體區塊。此外,壞區塊掃描電路2151可辨識出被判定為壞實體區塊的實體區塊的實體位址(或識別碼)與總個數。在另一實施例中,處理器211可根據所有實體區塊的統計值與錯誤位元數的其中之一或其組合,來挑選物理狀態較差的實體區塊(例如,抹除次數較多或錯誤位元數較多的實體區塊)來做為被掃描的實體區塊。在一實施例中,處理器211亦可隨機挑選目標實體區塊來進行壞實體區塊掃描操作。壞實體區塊掃描操作的細節為本領域人員慣用之技術手段,不贅述於此。也就是說,在執行完壞實體區塊掃描操作後,處理器211或壞區塊掃描電路2151可知道每個區塊串是否具有壞實體區塊。若一個區塊串具有一或多個壞實體區塊,處理器211或壞區塊掃描電路2151也會知道所述一個區塊串的所述一或多個壞實體區塊的位置與個數。
除此之外,在另一實施例中,處理器211也可以在儲存裝置20運作的期間內,即時地根據所發生的特定事件來判斷對應該特定事件的實體區塊為壞實體區塊。
在本實施例中,處理器211或區塊串管理電路單元215可利用表單(如,壞實體區塊表、或區塊串管理表)來記錄所辨識的壞實體區塊的位置與個數。以下藉由圖3來說明區塊串的概念。
圖3為根據本發明的一實施例所繪示可複寫式非揮發性記憶體模組的多個區塊串的示意圖。請參照圖3,更詳細來說,可複寫式非揮發性記憶體模組220可具有多個封裝(Pakage),每個封裝可具有多個實體區塊,所述多個實體區塊可被劃分至N個平面,並且部份或全部的平面可邏輯地劃分為一個邏輯數(Logical unit number,LUN)。為了簡便說明,假設可複寫式非揮發性記憶體模組220具有一個封裝D1,並且封裝D1具有多個實體區塊。所述多個實體區塊被劃分(被分組)為4個平面(Plane)P1~P4中(N等於4),其中所述4個平面被劃分為一個邏輯數LUN 1。此外,每個平面具有依據第一順序排序的M個實體單元,如,平面P1具有M個實體區塊P1(1)~P1(M);平面P2具有M個實體區塊P2(1)~P2(M);平面P2具有M個實體區塊P3(1)~P3(M);平面P4具有M個實體區塊P4(1)~P4(M)。在本實施例中,每個平面中排序相同的實體區塊會被組成一個區塊串(Block Stripe)。例如,區塊串BS(1)包括實體區塊P1(1)、實體區塊P2(1)、實體區塊P3(1)與實體區塊P4(1)。也就是說,上述4個平面中的所有實體區塊可組成依據第一順序排列的M個區塊串BS(1)~BS(M)。
在本實施例中,儲存控制器210所執行的垃圾回收操作是以一個區塊串為單位來執行的。更具體來說,當處理器211欲執行垃圾回收操作時,處理器211會先從所有區塊串BS(1)~BS(M)中選擇/決定用以執垃圾回收操作的區塊串(亦稱,目標區塊串)。接著,處理器211會辨識目標區塊串的有效資料的位置(實體位址)及壞實體區塊的位置(實體位址),將所有有效資料複製到其他實體區塊,並且對目標區塊串的正常實體區塊(非壞實體區塊的實體區塊)執行抹除操作。由於上述「辨識目標區塊串的有效資料的位置(實體位址)及壞實體區塊的位置(實體位址),將所有有效資料複製到其他實體區塊,並且對目標區塊串的正常實體區塊(非壞實體區塊的實體區塊)執行抹除操作」的垃圾回收操作的部份細節為本領域人員熟知之技術手段,不再贅述於此。然而,應注意的是,本發明的精神乃在於如何改良選擇/決定適當的目標區塊串的方式,以降低壞實體區塊的負面影響。即,改良上述「從所有區塊串BS(1)~BS(M)中選擇/決定用以執垃圾回收操作的目標區塊串」的操作的方法。
圖4為根據本發明的一實施例所繪示的壞實體區塊的示意圖。為了方便說明,假設M為6,即,每個平面具有6個依據第一順序排列的實體區塊,一個邏輯數LUN共有6個區塊串BS(1)~BS(6)。此外,假設經由所執行的壞實體區塊掃描操作,壞區塊掃描電路2151辨識到壞實體區塊P1(1)、P1(3)、P2(3)、P3(3)、P3(4)、P4(3)、P4(5)(如,灰底區塊)。請參照圖4,如上所述,區塊串BS(1)、BS(3)、BS(4)、BS(5)中的正常實體區塊的少於區塊串BS(2)、BS(6)中的正常實體區塊的個數。換言之,若處理器211對所有的區塊串BS(1)~BS(6)執行垃圾回收操作,區塊串BS(1)、BS(3)、BS(4)、BS(5)的其中之一所釋放出的空間會少於區塊串BS(2)、BS(6)的其中之一所釋放出的空間。也就是說,對區塊串BS(2)、BS(6)執行垃圾回收操作的效應會大於對區塊串BS(1)、BS(3)、BS(4)、BS(5)執行垃圾回收的效應。
請再回到圖2,在步驟S23中,處理器211辨識各自對應所述多個區塊串的多個有效資料計數值。每個區塊串的有效資料計數值為該區塊串的所儲存的所有有效資料的總量(總大小)除以一預定單位的大小所獲得的商值。在本實施例中,該預定單位被設定為一個實體頁面,但本發明不限於此。例如,在其他實施例中,該預定單位可被設定為兩個以上的實體頁面的大小。又例如,在其他實施例中,該預定單位可被設定其他種類的單位大小(如,一或多個碼字、一或多個字元線、多個扇區、一個實體區塊的大小可被設定為預定單位的大小)。
具體來說,處理器211或區塊串管理電路單元215會記錄每個區塊串的有效資料計數值(Valid Data Count)。例如,每當一筆新儲存的寫入資料會更新一個區塊串的實體區塊所儲存資料時,處理器211或區塊串管理電路單元215會辨識被更新的資料的大小,並且將該大小除以一預定單位的大小以獲得一個商值,將當前所述一個區塊串的有效資料計數值減去所述商值,以反映此虛擬區塊串所儲存的有效資料的數量降低的事實。值得一提的是,為了方便說明,在以下的例子中是以“一個實體頁面”來做為預定單位。
舉例來說,為了方便說明,假設每個實體區塊具有6個實體頁面,每個邏輯區塊具有6個邏輯頁面,並且邏輯頁面的大小等於實體頁面。此外,更假設區塊串BS(2)的所有實體區塊皆已寫滿了有效資料,並且區塊串BS(2)的有效資料計數值為24(24個實體頁面大小的有效資料除以1個實體頁面大小所獲得的商值為24)。處理器211可根據區塊串BS(2)當前的有效資料計數值“24”而得知區塊串BS(2)的4個實體區塊(共有24個實體頁面)目前所儲存的有效資料的大小共為24個實體頁面的大小。
在此例子中,假設目前處理器211欲寫入一筆大小為6個實體頁面的寫入資料(新資料)至一第一邏輯區塊。此第一邏輯區塊原本已儲存舊資料並且被映射至實體區塊P1(2)(即,儲存在該第一邏輯區塊的舊資料實際上是被寫入至平面P1的第2個實體區塊)。處理器211會將新資料寫入至一個閒置的實體區塊(例如,實體區塊P4(6)為閒置實體區塊並且被寫入所述新資料),將第一邏輯區塊映射至實體區塊P4(6),並且將實體區塊P1(2)的舊資料視為無效資料,以完成將新資料儲存至第一邏輯區塊的寫入操作(第一邏輯區塊的資料被新資料所更新)。接著,處理器211會辨識變成無效資料的舊資料的總大小,計算舊資料的總大小除以預定單位的大小所獲得的商值(如,6/1=6),並且將區塊串BS(2)的有效資料計數值減去該商值,即,在完成新資料的寫入操作後,區塊串BS(2)的有效資料計數值會變成18(即,24-6=18)。處理器211可根據區塊串BS(2)當前的有效資料計數值“18”而得知區塊串BS(2)目前所儲存的有效資料的大小為18個實體頁面的大小。
另一方面,當一個實體區塊被寫入新的有效資料時,該實體區塊的區塊串的有效資料計數值會對應所述新的有效資料的大小而被增加。
接續上述的例子,假設在寫入新資料之前,區塊串BS(6)僅有實體區塊P4(6)為空白的,即,實體區塊P4(6)是閒置實體區塊。此外,假設此時的區塊串BS(6)的有效資料計數值為18。在此情況下,處理器211可知道區塊串BS(6)的3個實體區塊P1(6)、P2(6)、P3(6)各自寫滿了具有6個實體頁面大小的有效資料(18/3=6)。在完成新資料的寫入操作後,實體區塊P4(6)被寫滿新資料,並且處理器211或區塊串管理電路單元215會將區塊串BS(6)的有效資料計數值加上6,即,區塊串BS(6)的新的有效資料計數值為24。
在本實施例中,當一個區塊串的所有實體單元皆已儲存資料後,處理器211或區塊串管理電路單元215會記錄所述一個區塊串的有效資料計數值。
再回到圖2,在步驟S25中,區塊串管理電路單元215用以根據所述可複寫式非揮發性記憶體模組的多個資料存取時間參數、所述多個有效資料計數值與所辨識的所述一或多個壞實體區塊的位置來計算各自對應所述多個區塊串的多個有效權重值。
在本實施例中,所述多個資料存取時間參數包括寫入單位時間、讀取單位時間、區塊串抹除時間以及系統操作時間。所述寫入單位時間用以表示完成寫入為所述預定單位大小的資料至所述可複寫式非揮發性記憶體模組的寫入操作所耗費的時間。所述讀取單位時間用以表示完成從所述可複寫式非揮發性記憶體模組讀取為所述預定單位大小的資料的讀取操作所耗費的時間。所述區塊串抹除時間用以表示完成對所述可複寫式非揮發性記憶體模組的一個區塊串的所有正常實體區塊所執行的所有抹除操作所耗費的時間,其中所述一個實體區塊具有一或多個預定單位的大小。系統操作時間用以表示完成對一個區塊串所執行的多個系統操作所耗費的時間。所述系統操作包括(1)讀取對應所述第i個區塊串的實體轉邏輯位址映射表,以及(2)辨識所述第i個區塊串的所有有效資料的實體位址。
更詳細來說,在第一實施例中,在上述所述區塊串管理電路單元215用以根據所述可複寫式非揮發性記憶體模組的所述多個資料存取時間參數、所述多個有效資料計數值與所辨識的所述一或多個壞實體區塊的所述位置來計算各自對應所述多個區塊串的所述多個有效權重值的運作中,(假設目前是計算所述多個區塊串中的第一區塊串的有效權重值)所述區塊串管理電路單元215(如,有效權重計算電路2152)根據所辨識的所述一或多個壞實體區塊來辨識存在於所述第一區塊串中的一或多個正常實體區塊。接著,所述區塊串管理電路單元215將經由對所述第一區塊串的所述一或多個正常實體區塊所執行的抹除操作所釋放出的可用空間的大小除以所述預定單位的商值作為第一釋放量;以及所述區塊串管理電路單元215根據所述第一有效計數值與所述多個資料存取時間參數來計算對應所述第一區塊串的第一處理時間,其中所述多個有效權重值中對應所述第一區塊串的一第一有效權重值包括將所述第一處理時間除以所述第一釋放量所獲得的商值,其中所述商值被作為所述第一區塊串的第一時間效率比率。更具體來說,其中所述區塊串管理電路單元215(如,有效權重計算電路2152)被用以經由下列公式(F1)計算所述多個區塊串中的第i個區塊串的所述有效權重值: (F1) 在公式(F1)中,TERi用以指代所述多個區塊串中的第i個區塊串的所述時間效率比率。Vi用以指代所述第i個區塊串的有效資料計數值。tR用以指代完成從所述可複寫式非揮發性記憶體模組讀取為所述預定單位大小的有效資料的讀取操作所耗費的時間(亦稱,讀取單位時間)。tW用以指代完成寫入所述預定單位大小的有效資料至所述可複寫式非揮發性記憶體模組的寫入操作所耗費的時間(亦稱,寫入單位時間)。tE用以指代完成對所述第i個區塊串的所有正常實體區塊所執行的抹除操作所耗費的時間(亦稱,抹除單位時間),並且tC用以指代完成對所述第i個區塊串所執行的多個系統操作所耗費的時間。EPi用以指代所述第i個區塊串的釋放量(如,對於第一區塊串的第一釋放量)。也就是說,一個區塊串的處理時間(如,第一區塊串的第一處理時間)是經由公式(F1)中的等號右方的分子,即,運算式(Vi*tR+Vi*tW+tE+tC
),所計算的結果(公式(F1)中的等號右方的分母為此一個區塊串的釋放量)。換言之,一個區塊串的時間效率比率(如,第一區塊串的第一時間效率比率)為一個區塊串的處理時間除以一個區塊串的釋放量所獲得的商值。
在第一實施例中,所述第i個區塊串的所述有效權重值等於(被設定為)所述第i個區塊串的所述時間效率比率(如,第一區塊串的第一有效權重值等於第一時間效率比率)。然而,本發明並不限於此。一個區塊串的所述有效權重值可被設定為這個區塊串的時間效率比率加上特定數值。
例如,在第二實施例中,所述第i個區塊串的所述有效權重值等於(被設定為)所述第i個區塊串的所述時間效率比率加上對應所述第i個區塊串的延遲參數所獲得的和(如,第一區塊串的第一有效權重值等於第一時間效率比率加上對應第一區塊串的第一延遲參數)。
具體來說,當執行於一區塊串(如,第一區塊串)的所述垃圾回收操作完成後,所述區塊串管理電路單元215設定所述第一延遲參數的值為一預定延遲數值,並且將其他多個區塊串的所述延遲參數減一;以及當所述多個區塊串中的所述第一區塊串以外的另一區塊串被執行所述垃圾回收操作時,所述區塊串管理電路單元215將所述第一延遲參數減一。所述預定延遲數值是依據廠商需求而被設定的正整數。換言之,一個區塊串的有效權重值會因為加入了「延遲參數」這個機制,而使得這個區塊串的會具有一種特性:在被執行完垃圾回收操作後,有效權重值會變成一個較大的數值,並且根據其他區塊串所被執行垃圾回收操作的次數,有效權重值會慢慢減少。
更具體來說,在一實施例中,所述區塊串管理電路單元215(如,有效權重計算電路2152)更用以經由下列公式(F2)計算所述多個區塊串中的第i個區塊串的所述有效權重值:(F2)
在公式(F2)中,TERi用以指代所述多個區塊串中的第i個區塊串的所述時間效率比率,其計算方式如上述的第一實施例中的公式(F1)。Wi用以指代所述多個區塊串中的第i個區塊串的所述有效權重值,Ri用以指代所述第i個區塊串的所述延遲參數。
應注意的是,區塊串管理電路單元215會即時地根據儲存裝置20所執行地資料存取或系統操作來對應地更新每個區塊串的有效權重值,並且區塊串管理電路單元215(如,有效權重計算電路2152)會記錄有效權重值。例如,在一個區塊串的有效資料計數值被改變時,或在一個區塊串被執行垃圾回收操作時,所述一個區塊串的有效權重值會被改變,並且改變後的所述有效權重值會被記錄/更新。
請再回到圖2,在計算完(更新完)每個區塊串的有效權重值後,接續至步驟S27,區塊串管理電路單元215從所述多個有效權重值中選擇目標有效權重值,並且對所述多個區塊串中對應所述目標有效權重值的目標區塊串執行垃圾回收操作。
具體來說,在上述該區塊串管理電路單元215從該些有效權重值中選擇該目標有效權重值的操作中,所述區塊串管理電路單元215會比較所述多個有效權重值與一垃圾回收權重門檻值。接著,所述區塊串管理電路單元215將所述多個有效權重值中小於所述垃圾回收權重門檻值的有效權重值作為所述目標有效權重值。
也就是說,被選擇來執行垃圾回收操作的目標區塊串的有效權重值會小於垃圾回收權值。若目標區塊串的數量為多個,則會依據該些目標區塊串的目標有效權重值的大小順序,由小至大來排列為一個垃圾回收區塊串序列,並且在垃圾回收區塊串序列中排列在最前面的目標區塊串會被先執行垃圾回收操作。
換言之,當處理器211判定目前需要執行垃圾回收操作來釋放空間時,處理器211會根據所建立的垃圾回收區塊串序列選擇具有最小有效權重值的區塊串來執行垃圾回收操作。
值得一提的是,利用上述第一實施例所得到的有效權重值,可以解決壞實體區塊所帶來的負面影響。舉例來說,請參照圖4,假設每個實體區塊的實體頁面數量為256;區塊串BS(1)與區塊串BS(2)皆已寫滿有效資料;區塊串BS(1)的有效資料數為768(如,256*3)且釋放量為768(如,256*3),區塊串BS(1)的有效資料數為1024(如,256*4)且釋放量為1024(如,256*4)。根據公式(F1),可以知道區塊串BS(1)的有效權重值(即,時間效率比率)會大於區塊串BS(2)的有效權重值(因為區塊串BS(2)的時間效率比率的分母“1024”遠大於區塊串BS(1)的時間效率比率的分母“768”)。因此,區塊串BS(2)相較於區塊串BS(1)更會被選擇作為目標區塊串來執行垃圾回收操作。換言之,經由上述實施例所提供的記憶體管理方法,被選擇來執行垃圾回收操作的區塊串會是壞實體區塊較少的區塊串。
另一方面,利用上述第二實施例所得到的有效權重值,還可以解決因為過度頻繁更新資料所導致的“區塊串被頻繁地執行垃圾回收操作”的現象。具體來說,如上所述,在被執行完垃圾回收操作後,有效權重值會變成一個較大的數值。因此,當要執行下一次的垃圾回收操作時,剛執行完垃圾回收操作的區塊串的有效權重值會因為新設定的較大的延遲參數而不會被選擇成為目標區塊串,進而避免了一個區塊串過度頻繁地執行垃圾回收操作的現象。如此一來,可以避免因為過度頻繁地對一個區塊串執行垃圾回收操作而過度地磨損了這個區塊串的負面效應。
綜上所述,本發明實施例所提供的記憶體管理方法與儲存控制器,可掃描且辨識壞實體區塊,對所辨識的壞實體區塊執行壞實體區塊重新映射操作以更新虛擬區塊串管理表,並且根據所述虛擬區塊串管理表來經由多平面寫入模式執行寫入操作,以產生較多的可被應用多平面寫入模式的多個虛擬區塊串,進而增加了儲存裝置的資料存取效率與空間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料管理電路
213‧‧‧記憶體介面控制電路
214‧‧‧錯誤檢查與校正電路
215‧‧‧區塊串管理電路單元
2151‧‧‧壞區塊掃描電路
2152‧‧‧有效權重計算電路
216‧‧‧緩衝記憶體
217‧‧‧電源管理電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S23、S25、S27‧‧‧記憶體管理方法的流程步驟
D1‧‧‧封裝
LUN1‧‧‧邏輯數
P1(1)~P1(6)、P1(M-1)、P1(M-1)、P2(1)~P2(6)、P2(M-1)、P2(M)、P3(1)~P3(6)、P3(M-1)、P3(M)、P4(1)~P4(6)、P4(M-1)、P4(M)‧‧‧實體區塊
P1~P4‧‧‧平面
BS(1)~BS(6)、BS(M-1)、BS(M)‧‧‧區塊串
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。 圖3為根據本發明的一實施例所繪示可複寫式非揮發性記憶體模組的多個區塊串的示意圖。 圖4為根據本發明的一實施例所繪示的壞實體區塊的示意圖。
Claims (16)
- 一種記憶體管理方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,其中該些實體區塊被劃分至多個區塊串,並且該些區塊串(Block Stripe)依據一第一順序排列,所述方法包括: 掃描該些實體區塊,以辨識該些實體區塊中的一或多個壞實體區塊; 辨識各自對應該些區塊串的多個有效資料計數值; 根據該可複寫式非揮發性記憶體模組的多個資料存取時間參數、該些有效資料計數值與所辨識的所述一或多個壞實體區塊的位置來計算各自對應該些區塊串的多個有效權重值;以及 從該些有效權重值中選擇一目標有效權重值,並且對該些區塊串中對應該目標有效權重值的一目標區塊串執行一垃圾回收操作。
- 如申請專利範圍第1項所述的記憶體管理方法,上述從該些有效權重值中選擇該目標有效權重值的步驟包括: 比較該些有效權重值與一垃圾回收權重門檻值;以及 將該些有效權重值中小於該垃圾回收權重門檻值的有效權重值作為該目標有效權重值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該些有效資料計數值中對應該些區塊串的一第一區塊串的一第一有效資料計數值為該第一區塊串的所有的第一實體區塊所儲存的有效資料的總量除以一預定單位大小所獲得的商值。
- 如申請專利範圍第3項所述的記憶體管理方法,其中該些資料存取時間參數包括: 一寫入單位時間,用以表示完成寫入為該預定單位大小的資料至該可複寫式非揮發性記憶體模組的寫入操作所耗費的時間; 一讀取單位時間,用以表示完成從該可複寫式非揮發性記憶體模組讀取為該預定單位大小的資料的讀取操作所耗費的時間; 一區塊串抹除時間,用以表示完成對該可複寫式非揮發性記憶體模組的一個區塊串的所有正常實體區塊所執行的所有抹除操作所耗費的時間,其中所述一個實體區塊具有一或多個預定單位的大小;以及 一系統操作時間,用以表示完成對一個區塊串所執行的多個系統操作所耗費的時間。
- 如申請專利範圍第4項所述的記憶體管理方法,其中根據該可複寫式非揮發性記憶體模組的該些資料存取時間參數、該些有效資料計數值與所辨識的所述一或多個壞實體區塊的該位置來計算各自對應該些區塊串的該些有效權重值的步驟包括: 根據所辨識的所述一或多個壞實體區塊來辨識存在於該第一區塊串中的一或多個正常實體區塊,其中所述一或多個正常實體區塊不屬於所述一或多個壞實體區塊; 將經由對該第一區塊串的所述一或多個正常實體區塊所執行的抹除操作所釋放出的可用空間的大小除以該預定單位的商值作為一第一釋放量;以及 根據該第一有效計數值與該些資料存取時間參數來計算對應該第一區塊串的一第一處理時間,其中該些有效權重值中對應該第一區塊串的一第一有效權重值包括將該第一處理時間除以該第一釋放量所獲得的商值,其中該商值被作為該第一區塊串的一第一時間效率比率。
- 如申請專利範圍第5項所述的記憶體管理方法,其中該些區塊串的每一個的該有效權重值可經由下列第一公式計算:其中TERi用以指代該些區塊串中的第i個區塊串的該時間效率比率,Vi用以指代所述第i個區塊串的有效資料計數值,tR用以指代完成從該可複寫式非揮發性記憶體模組讀取為該預定單位大小的有效資料的讀取操作所耗費的時間,tW用以指代完成寫入該預定單位大小的有效資料至該可複寫式非揮發性記憶體模組的寫入操作所耗費的時間,tE用以指代完成對所述第i個區塊串的所有正常實體區塊所執行的所有抹除操作所耗費的時間,tC用以指代完成對所述第i個區塊串所執行的多個系統操作所耗費的時間,並且EPi用以指代所述第i個區塊串的釋放量,其中該些系統操作包括(1)讀取對應所述第i個區塊串的實體轉邏輯位址映射表,以及(2)辨識所述第i個區塊串的所有有效資料的實體位址, 其中該第一處理時間是經由計算該第一公式的分子所獲得,並且該第一釋放量是經由計算該第一公式的分母所獲得,其中所述第i個區塊串的該有效權重值等於該時間效率比率。
- 如申請專利範圍第5項所述的記憶體管理方法,其中該些有效權重值中對應該第一區塊串的該第一有效權重值為將該第一處理時間除以該第一釋放量所獲得的該商值加上一第一延遲參數所獲得的和,所述方法更包括: 當執行於該第一區塊串的該垃圾回收操作完成後,該第一延遲參數的值被設定為一預定延遲數值,並且將其他多個區塊串的該延遲參數減一;以及 當該些區塊串中的該第一區塊串以外的另一區塊串被執行該垃圾回收操作時,將該第一延遲參數減一。
- 如申請專利範圍第7項所述的記憶體管理方法,其中該些區塊串的每一個的該有效權重值可經由下列第二公式計算:其中Wi用以指代該些區塊串中的第i個區塊串的該有效權重值,Ri用以指代所述第i個區塊串的該延遲參數。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括: 一連接介面電路,用以耦接至一主機系統; 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,其中該些實體區塊被劃分至多個區塊串,並且該些區塊串(Block Stripe)依據一第一順序排列; 一區塊串管理電路單元;以及 一處理器,耦接至該連接介面電路、該記憶體介面控制電路及該區塊串管理電路單元, 其中該區塊串管理電路單元用以掃描該些實體區塊,以辨識該些實體區塊中的一或多個壞實體區塊, 其中該區塊串管理電路單元更用以辨識各自對應該些區塊串的多個有效資料計數值, 其中該區塊串管理電路單元更用以根據該可複寫式非揮發性記憶體模組的多個資料存取時間參數、該些有效資料計數值與所辨識的所述一或多個壞實體區塊的位置來計算各自對應該些區塊串的多個有效權重值, 其中該區塊串管理電路單元更用以從該些有效權重值中選擇一目標有效權重值,並且對該些區塊串中對應該目標有效權重值的一目標區塊串執行一垃圾回收操作。
- 如申請專利範圍第9項所述的儲存控制器,在上述該區塊串管理電路單元更用以從該些有效權重值中選擇該目標有效權重值的操作中, 該區塊串管理電路單元比較該些有效權重值與一垃圾回收權重門檻值;以及 該區塊串管理電路單元將該些有效權重值中小於該垃圾回收權重門檻值的有效權重值作為該目標有效權重值。
- 如申請專利範圍第9項所述的儲存控制器,其中該些有效資料計數值中對應該些區塊串的一第一區塊串的一第一有效資料計數值為該第一區塊串的所有的第一實體區塊所儲存的有效資料的總量除以一預定單位大小所獲得的商值。
- 如申請專利範圍第11項所述的儲存控制器,其中該些資料存取時間參數包括: 一寫入單位時間,用以表示完成寫入為該預定單位大小的資料至該可複寫式非揮發性記憶體模組的寫入操作所耗費的時間; 一讀取單位時間,用以表示完成從該可複寫式非揮發性記憶體模組讀取為該預定單位大小的資料的讀取操作所耗費的時間; 一區塊串抹除時間,用以表示完成對該可複寫式非揮發性記憶體模組的一個區塊串的所有正常實體區塊所執行的所有抹除操作所耗費的時間,其中所述一個實體區塊具有一或多個預定單位的大小;以及 一系統操作時間,用以表示完成對一個區塊串所執行的多個系統操作所耗費的時間。
- 如申請專利範圍第12項所述的儲存控制器,其中在上述該區塊串管理電路單元更用以根據該可複寫式非揮發性記憶體模組的該些資料存取時間參數、該些有效資料計數值與所辨識的所述一或多個壞實體區塊的該位置來計算各自對應該些區塊串的該些有效權重值的運作中, 該區塊串管理電路單元根據所辨識的所述一或多個壞實體區塊來辨識存在於該第一區塊串中的一或多個正常實體區塊,其中所述一或多個正常實體區塊不屬於所述一或多個壞實體區塊; 該區塊串管理電路單元將經由對該第一區塊串的所述一或多個正常實體區塊所執行的抹除操作所釋放出的可用空間的大小除以該預定單位的商值作為一第一釋放量;以及 該區塊串管理電路單元根據該第一有效計數值與該些資料存取時間參數來計算對應該第一區塊串的一第一處理時間,其中該些有效權重值中對應該第一區塊串的一第一有效權重值包括將該第一處理時間除以該第一釋放量所獲得的商值,其中該商值被作為該第一區塊串的一第一時間效率比率。
- 如申請專利範圍第13項所述的儲存控制器,其中該區塊串管理電路單元被用以經由下列第一公式計算該些區塊串的每一個的該有效權重值:其中TERi用以指代該些區塊串中的第i個區塊串的該時間效率比率,Vi用以指代所述第i個區塊串的有效資料計數值,tR用以指代完成從該可複寫式非揮發性記憶體模組讀取為該預定單位大小的有效資料的讀取操作所耗費的時間,tW用以指代完成寫入該預定單位大小的有效資料至該可複寫式非揮發性記憶體模組的寫入操作所耗費的時間,tE用以指代完成對所述第i個區塊串的所有正常實體區塊所執行的所有抹除操作所耗費的時間,tC用以指代完成對所述第i個區塊串所執行的多個系統操作所耗費的時間,並且EPi用以指代所述第i個區塊串的釋放量,其中該些系統操作包括(1)讀取對應所述第i個區塊串的實體轉邏輯映射表,以及(2)辨識所述第i個區塊串的所有有效資料的實體位址 其中該第一處理時間是經由計算該第一公式的分子所獲得,並且該第一釋放量是經由計算該第一公式的分母所獲得,其中所述第i個區塊串的該有效權重值等於該時間效率比率。
- 如申請專利範圍第13項所述的儲存控制器,其中該些有效權重值中對應該第一區塊串的該第一有效權重值為將該第一處理時間除以該第一釋放量所獲得的該商值加上一第一延遲參數所獲得的和,其中 當執行於該第一區塊串的該垃圾回收操作完成後,該區塊串管理電路單元設定該第一延遲參數的值為一預定延遲數值,並且將其他多個區塊串的該延遲參數減一;以及 當該些區塊串中的該第一區塊串以外的另一區塊串被執行該垃圾回收操作時,該區塊串管理電路單元將該第一延遲參數減一。
- 如申請專利範圍第15項所述的儲存控制器,其中該區塊串管理電路單元被用以經由下列第二公式計算該些區塊串的每一個的該有效權重值:其中Wi用以指代該些區塊串中的第i個區塊串的該有效權重值,Ri用以指代所述第i個區塊串的該延遲參數。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107116302A TW201947402A (zh) | 2018-05-14 | 2018-05-14 | 記憶體管理方法以及儲存控制器 |
| US16/036,955 US10817416B2 (en) | 2018-05-14 | 2018-07-17 | Memory management method and storage controller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107116302A TW201947402A (zh) | 2018-05-14 | 2018-05-14 | 記憶體管理方法以及儲存控制器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW201947402A true TW201947402A (zh) | 2019-12-16 |
Family
ID=68464734
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107116302A TW201947402A (zh) | 2018-05-14 | 2018-05-14 | 記憶體管理方法以及儲存控制器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10817416B2 (zh) |
| TW (1) | TW201947402A (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI717171B (zh) * | 2019-12-26 | 2021-01-21 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
| TWI722938B (zh) * | 2020-07-06 | 2021-03-21 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
| CN114253467A (zh) * | 2020-09-21 | 2022-03-29 | 慧荣科技股份有限公司 | 用以管理快闪存储器模块的方法、快闪存储器控制器与电子装置 |
| TWI760094B (zh) * | 2020-07-06 | 2022-04-01 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
| CN118331511A (zh) * | 2024-06-14 | 2024-07-12 | 合肥开梦科技有限责任公司 | 存储器管理方法及存储器控制器 |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10553290B1 (en) * | 2018-10-30 | 2020-02-04 | Micron Technology, Inc. | Read disturb scan consolidation |
| CN113096713B (zh) * | 2021-04-12 | 2024-05-07 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
| JP2023044509A (ja) * | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステムおよびメモリシステムの制御方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9740609B1 (en) * | 2016-02-19 | 2017-08-22 | International Business Machines Corporation | Garbage collection techniques for a data storage system |
| KR102512727B1 (ko) * | 2017-12-22 | 2023-03-22 | 삼성전자주식회사 | 가비지 컬렉션을 수행하는 스토리지 장치, 및 스토리지 장치의 가비지 컬렉션 방법 |
-
2018
- 2018-05-14 TW TW107116302A patent/TW201947402A/zh unknown
- 2018-07-17 US US16/036,955 patent/US10817416B2/en active Active
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI717171B (zh) * | 2019-12-26 | 2021-01-21 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
| TWI722938B (zh) * | 2020-07-06 | 2021-03-21 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
| TWI760094B (zh) * | 2020-07-06 | 2022-04-01 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
| US11487475B2 (en) | 2020-07-06 | 2022-11-01 | Silicon Motion, Inc. | Control method for referring to expired block table to perform expired block recycling operation and associated flash memory controller and memory device |
| CN114253467A (zh) * | 2020-09-21 | 2022-03-29 | 慧荣科技股份有限公司 | 用以管理快闪存储器模块的方法、快闪存储器控制器与电子装置 |
| CN118331511A (zh) * | 2024-06-14 | 2024-07-12 | 合肥开梦科技有限责任公司 | 存储器管理方法及存储器控制器 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20190347192A1 (en) | 2019-11-14 |
| US10817416B2 (en) | 2020-10-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI661427B (zh) | 記憶體管理方法以及儲存控制器 | |
| TWI679537B (zh) | 資料移動方法及儲存控制器 | |
| TWI661299B (zh) | 記憶體管理方法以及儲存控制器 | |
| TW201947402A (zh) | 記憶體管理方法以及儲存控制器 | |
| TWI623878B (zh) | 資料讀取方法以及儲存控制器 | |
| TWI650757B (zh) | 解碼方法以及儲存控制器 | |
| US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
| US10579518B2 (en) | Memory management method and storage controller | |
| TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
| TWI651726B (zh) | 解碼方法以及儲存控制器 | |
| TWI671631B (zh) | 記憶體管理方法以及儲存控制器 | |
| TWI676176B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI686697B (zh) | 記憶體管理方法以及儲存控制器 | |
| CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
| TW201727492A (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
| CN111258505B (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
| TWI695263B (zh) | 記憶體管理方法以及儲存控制器 | |
| TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
| TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN109273037B (zh) | 数据读取方法以及存储控制器 | |
| US9990152B1 (en) | Data writing method and storage controller | |
| TWI805379B (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN110515858B (zh) | 存储器管理方法以及存储控制器 | |
| TWI783522B (zh) | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN112540932B (zh) | 存储控制器以及写入辅助方法 |