TWI770945B - 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI770945B TWI770945B TW110113979A TW110113979A TWI770945B TW I770945 B TWI770945 B TW I770945B TW 110113979 A TW110113979 A TW 110113979A TW 110113979 A TW110113979 A TW 110113979A TW I770945 B TWI770945 B TW I770945B
- Authority
- TW
- Taiwan
- Prior art keywords
- sorted
- virtual blocks
- memory
- virtual
- physical
- Prior art date
Links
Images
Classifications
-
- 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/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
一種記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置。所述方法包括:記錄多個實體抹除單元中的每一者的有效計數;根據所述有效計數依序排列每個所述晶片致能群組對應的M個實體抹除單元以形成多個已排序實體抹除單元;根據所述多個已排序實體抹除單元重新映射M個虛擬區塊對應的所述實體抹除單元;計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊;以及依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行垃圾回收操作。
Description
本發明是有關於一種記憶體管理技術,且特別是有關於一種記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
為了提高記憶體儲存裝置的最高速度(即頻寬),當今記憶體儲存裝置大部分使用多通道的設計。每一個通道可連接多個晶片致能群組。屬於不同通道且區塊面不同的實體抹除單元(block)可以組成一個虛擬區塊。一般來說,記憶體儲存裝置可藉由資料整併操作(例如垃圾回收操作)來將虛擬區塊中的舊資料集中儲存並釋放出新的閒置虛擬區塊。新的閒置虛擬區塊可用以儲存來自主機系統的新資料。然而,若虛擬區塊的有效資料集中於某幾個晶片致能群組,會降低資料整併操作的效能。
本發明提供一種記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,可提升記憶體的持續存取效能(Sustained Performance)。
本發明的範例實施例提供一種記憶體管理方法,用於可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組。並且,所述晶片致能群組具有根據第一順序排列的對應M個虛擬區塊的M個實體抹除單元。所述記憶體管理方法包括:記錄所述多個實體抹除單元中的每一者的有效計數;根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成多個已排序實體抹除單元;根據所述多個已排序實體抹除單元重新映射所述M個虛擬區塊對應的所述實體抹除單元;計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊;以及依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行垃圾回收操作。
在本發明的一範例實施例中,根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元的步驟包括:根據所述有效計數由小到大排序每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元。
在本發明的一範例實施例中,根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊的步驟包括:根據所述有效計數總數由小到大排序重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊。
在本發明的一範例實施例中,依序提取至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作的步驟包括:提取排序在前的至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。
在本發明的一範例實施例中,依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行所述垃圾回收操作的步驟包括:從至少一所述已排序虛擬區塊中提取對應至最小所述有效計數總數的所述已排序虛擬區塊作為所述來源虛擬區塊。
在本發明的一範例實施例中,執行所述垃圾回收操作的步驟包括:將所述來源虛擬區塊中的有效資料複製至目標虛擬區塊,並且抹除所述來源虛擬區塊。
本發明的範例實施例提供一種記憶體控制電路單元,用以控制可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組,並且所述晶片致能群組具有根據第一順序排列的對應M個虛擬區塊的M個實體抹除單元。所述記憶體控制電路單元包括主機介面、記憶體介面以及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面。所述記憶體管理電路用以記錄所述多個實體抹除單元中的每一者的有效計數。所述記憶體管理電路更用以根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成多個已排序實體抹除單元。所述記憶體管理電路更用以根據所述多個已排序實體抹除單元重新映射所述M個虛擬區塊對應的所述實體抹除單元。所述記憶體管理電路更用以計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊。並且,所述記憶體管理電路更用以依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行垃圾回收操作。
在本發明的一範例實施例中,根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元的操作包括:根據所述有效計數由小到大排序每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元。
在本發明的一範例實施例中,根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊的操作包括:根據所述有效計數總數由小到大排序重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊。
在本發明的一範例實施例中,依序提取至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作的操作包括:提取排序在前的至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。
在本發明的一範例實施例中,依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行所述垃圾回收操作的操作包括:從至少一所述已排序虛擬區塊中提取對應至最小所述有效計數總數的所述已排序虛擬區塊作為所述來源虛擬區塊。
在本發明的一範例實施例中,執行所述垃圾回收操作的操作包括:將所述來源虛擬區塊中的有效資料複製至目標虛擬區塊,並且抹除所述來源虛擬區塊。
本發明的範例實施例提供一種記憶體控制電路單元,用以控制可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組,並且所述晶片致能群組具有根據第一順序排列的對應M個虛擬區塊的M個實體抹除單元。所述記憶體控制電路單元包括:連接介面單元、可複寫式非揮發性記憶體模組以及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組,並且所述晶片致能群組具有根據第一順序排列的對應M個虛擬區塊的M個實體抹除單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以記錄所述多個實體抹除單元中的每一者的有效計數。所述記憶體控制電路單元更用以根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成多個已排序實體抹除單元。所述記憶體控制電路單元更用以根據所述多個已排序實體抹除單元重新映射所述M個虛擬區塊對應的所述實體抹除單元。所述記憶體控制電路單元更用以計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊。並且,所述記憶體控制電路單元更用以依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行垃圾回收操作。
在本發明的一範例實施例中,根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元的操作包括:根據所述有效計數由小到大排序每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元。
在本發明的一範例實施例中,根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊的操作包括:根據所述有效計數總數由小到大排序重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊。
在本發明的一範例實施例中,依序提取至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作的操作包括:提取排序在前的至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。
在本發明的一範例實施例中,依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行所述垃圾回收操作的操作包括:從至少一所述已排序虛擬區塊中提取對應至最小所述有效計數總數的所述已排序虛擬區塊作為所述來源虛擬區塊。
在本發明的一範例實施例中,執行所述垃圾回收操作的操作包括:將所述來源虛擬區塊中的有效資料複製至目標虛擬區塊,並且抹除所述來源虛擬區塊。
基於上述,本發明實施例的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,可記錄每個實體抹除區塊的有效計數,並且能根據每個實體抹除區塊的有效計數來重組虛擬區塊。例如,可將每個晶片致能群組中有效計數最小的實體抹除單元重組至同一虛擬區塊。根據重組結果,可選擇重組後的虛擬區塊作為垃圾回收操作時使用的來源虛擬區塊。藉此,可提高垃圾回收操作的效率並減少垃圾回收操作的次數,從而提升記憶體的持續存取效能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明一實施例所繪示的記憶體儲存系統的示意圖。請參圖1,記憶體儲存系統10包括主機系統11與記憶體儲存裝置12。主機系統11可為任意型態的電腦系統。例如,主機系統11可為筆記型電腦、桌上型電腦、智慧型手機、平板電腦、工業電腦、遠端伺服器等。記憶體儲存裝置12用以儲存來自主機系統11的資料。例如,記憶體儲存裝置12可以是隨身碟、記憶卡、固態硬碟(Solid State Drive, SSD)或其他類型的非揮發性記憶體儲存裝置。主機系統11可經由符合序列先進附件(Serial Advanced Technology Attachment, SATA)介面、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)、通用序列匯流排(Universal Serial Bus, USB)標準或其他類型的連接介面電性連接至記憶體儲存裝置12及/或從記憶體儲存裝置12讀取資料。
記憶體儲存裝置12可包括連接介面單元121、記憶體控制電路單元122及可複寫式非揮發性記憶體模組123。連接介面單元121用以將記憶體儲存裝置12連接至主機系統11。例如,連接介面單元121是相容於SATA、PCI Express或USB等連接介面標準。記憶體儲存裝置12可經由連接介面單元121與主機系統11通訊。在一範例實施例中,連接介面單元121可與記憶體控制電路單元122封裝在一個晶片中,或者連接介面單元121是佈設於一包含記憶體控制電路單元之晶片外,本發明不在此限制。
記憶體控制電路單元122連接至連接介面單元121與可複寫式非揮發性記憶體模組123。記憶體控制電路單元122用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組123中進行資料的寫入、讀取與抹除等操作。例如,記憶體控制電路單元122可包括中央處理器(Central Processing Unit, CPU)、圖形處理器(Graphics Processing Unit, GPU),或是其他可編程的一般用途或特殊用途的微處理器、數位信號處理器(Digital Signal Processor, DSP)、可程式控制器、特殊應用積體電路(Application Specific Integrated Circuits, ASIC)、可程式邏輯元件(Programmable Logic Device, PLD)或其他類似裝置或這些裝置的組合。
可複寫式非揮發性記憶體模組123耦接至記憶體控制單元123,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組123包括記憶胞,並且記憶胞是以陣列的方式設置。可複寫式非揮發性記憶體模組123的記憶胞是以電壓的形式來儲存資料。例如,可複寫式非揮發性記憶體模組123可包括單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)或其他具有相似特性的記憶體模組。
在本範例實施例中,可複寫式非揮發性記憶體模組123具有多個字元線(word line),其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元。例如,實體程式化單元可以是實體頁面或實體扇區。此外,多個實體程式化單元可組成一個實體抹除單元。例如,實體抹除單元可以是實體區塊。
在不同範例實施例中,實體抹除單元可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。一個實體抹除單元可由多個連續或不連續的實體位址組成。每一實體抹除單元分別具有數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成,本發明不在此限制。更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。
圖2是根據本發明一實施例所繪示的記憶體控制電路單元的示意圖。請參照圖1與圖2,記憶體控制電路單元122包括主機介面21、記憶體介面22及記憶體管理電路23。
主機介面21是耦接至記憶體管理電路23並且用以耦接至連接介面單元121,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面21來傳送至記憶體管理電路23。在本範例實施例中,主機介面21是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面21亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面22是耦接至記憶體管理電路23並且用以存取可複寫式非揮發性記憶體模組123。也就是說,欲寫入至可複寫式非揮發性記憶體模組123的資料會經由記憶體介面22轉換為可複寫式非揮發性記憶體模組123所能接受的格式。
記憶體管理電路23用以控制記憶體控制電路單元122的整體運作。具體來說,記憶體管理電路23具有多個控制指令,並且在記憶體儲存裝置12運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。此外,記憶體管理電路23還可包括一或多個緩衝儲存器,其用以暫存資料。
此外,記憶體管理電路23可配置多個邏輯單元給可複寫式非揮發性記憶體模組123以映射實體位址,並將邏輯單元與實體位址之間的映射關係(亦稱為邏輯-實體位址映射關係)記錄於至少一邏輯至實體映射表(Logical To Physical address mapping table)。當主機系統11欲從記憶體儲存裝置12讀取資料或寫入資料至記憶體儲存裝置12時,記憶體管理電路23可根據此邏輯至實體映射表來執行對於記憶體儲存裝置12的資料存取操作。
在本範例實施例中,記憶體管理電路23的控制指令是以韌體型式來實作。例如,記憶體管理電路23具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置12運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路23的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組123的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路23具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元123被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組123中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路23的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路23包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組123的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組123下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組123中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組123下達讀取指令以從可複寫式非揮發性記憶體模組123中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組123下達抹除指令以將資料從可複寫式非揮發性記憶體模組123中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組123的資料以及從可複寫式非揮發性記憶體模組123中讀取的資料。
在以下範例實施例中,對於主機介面21、記憶體介面22與記憶體管理電路23所執行的操作,亦可參考為由記憶體控制電路單元122所執行。
圖3是根據本發明一實施例所繪示的記憶體儲存裝置的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組123之實體抹除單元的運作時,以「分組」、「組成」、「重組」、「重新映射」等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參圖3,可複寫式非揮發性記憶體模組123可包括多個晶片致能(Chip Enable, CE)(亦稱為,晶片致能群組)CE(0)~CE(m)。每個晶片致能可包括一或多個記憶體晶粒或平面(plane),且各平面包括多個實體抹除單元。換句話說,多個實體抹除單元中的每一者對應一個晶片致能群組。記憶體儲存裝置12可包括多個通道(channel)30(0)~30(i),每一個通道可連接多個晶片致能。換句話說,多個晶片致能可共享一個通道,且各個晶片致能分別使用關聯的通道與記憶體管理電路23進行溝通。記憶體管理電路23可驅動通道30(0)~30(i)中其中之一,從指定的晶片致能CE(0)~CE(m)讀取資料。每個晶片致能CE(0)~CE(m)具有獨立的晶片致能(CE)控制訊號。舉例來說,當欲對指定的晶片致能CE(0)進行資料讀取時,需要驅動關聯的通道致能晶片致能CE(0)的晶片致能控制訊號,並透過資料線(data line)從致能晶片致能CE(0)的指定位置讀取資料。
每個晶片致能群組具有根據順序(亦稱為,第一順序)排列的對應M個虛擬區塊(Virtual Block, VB)的M個實體抹除單元,M為大於0的整數。例如,圖4是根據本發明一實施例所繪示的管理虛擬區塊的範例示意圖。請參圖4,為方便說明,假設可複寫式非揮發性記憶體模組123包括晶片致能CE(0)~CE(7),並且每個晶片致能包括11個實體抹除單元(即,假設M為11)。在本範例實施例中,屬於不同晶片致能的多個實體抹除單元可以組成一個虛擬區塊。例如,實體抹除單元410(0)、實體抹除單元420(0)、實體抹除單元430(0)、實體抹除單元440(0)、實體抹除單元450(0)、實體抹除單元460(0)、實體抹除單元470(0)及實體抹除單元480(0)(以下簡稱實體抹除單元410(0)~480(0))可以組成虛擬區塊VB0。同樣地,實體抹除單元410(1)~480(1)、410(2)~480(2)、410(3)~480(3)、410(4)~480(4)、410(5)~480(5)、410(6)~480(6)、410(7)~480(7)、410(8)~480(8)、410(9)~480(9)、410(10)~480(10)可以分別組成虛擬區塊VB1、VB2、VB3、VB4、VB5、VB6、VB7、VB8、VB9、VB10。以此類推,可視晶片致能所包括實體抹除單元的數量組成不同數量的虛擬區塊,本發明不在此限制。換句話說,圖4的實施例假設實體抹除單元共組成11個虛擬區塊VB0~VB10。
在本實施例中,記憶體管理電路23是根據虛擬區塊的順序來循序寫入資料。例如,假設所有虛擬區塊皆為空白,當欲寫入一筆可填滿10個實體抹除單元的寫入資料時,記憶體管理電路23會根據第一順序將所述寫入資料儲存至所述第一個空白的虛擬區塊VB0的實體抹除單元410(0)~480(0),並將剩下的所述寫入資料儲存至所述第二個空白的虛擬區塊VB1的實體抹除單元410(1)~420(1)。
在一實施例中,若欲被寫入的虛擬區塊中分別對應所有平面的所有實體抹除單元皆可被用來儲存資料(如,空白的),則記憶體管理電路23可使用多平面寫入(Multiple Plane Write)模式來儲存所述寫入資料至所述虛擬區塊。所述多平面寫入模式亦可稱為全平面寫入(Full Plane Write)模式。反之,若欲被寫入的虛擬區塊中分別對應所有平面的所有實體抹除單元中的一或多個實體抹除單元不可被用來儲存資料(例如,實體抹除單元為已損壞或已儲存資料),則記憶體管理電路23可使用單平面寫入(Single Plane Write)模式來儲存所述寫入資料至所述虛擬區塊。然而,本發明不在此限制寫入模式。
在一實施例中,記憶體管理電路23在可複寫式非揮發性記憶體模組123維護特定管理資訊(亦稱為,第一管理資訊)。例如,第一管理資訊可儲存於可複寫式非揮發性記憶體模組123。在本實施例中,第一管理資訊例如為一查找表,且記錄有多個實體抹除單元中的每一者的有效計數(valid count)。
圖5A是根據本發明一實施例所繪示的管理虛擬區塊的範例示意圖。舉例來說,圖5A為對應至圖4中可複寫式非揮發性記憶體模組123的簡化圖式,下表1為對應至圖5A的第一管理資訊。請對應參圖5A及下表1,圖5A的實體抹除單元410(0)的有效計數記錄在表1中對應晶片致能CE(0)與虛擬區塊VB0的欄位,即,有效計數為5325。以此類推,可對應參照圖5A及下表1獲得每個實體抹除單元的有效計數。如此一來,記憶體管理電路23可根據第一管理資訊獲得實體抹除單元的有效計數。
表1
| CE(0) | CE(1) | CE(2) | CE(3) | CE(4) | CE(5) | CE(6) | CE(7) | |
| VB0 | 5325 | 6106 | 5693 | 3780 | 5881 | 1341 | 2508 | 1925 |
| VB1 | 5488 | 1277 | 4297 | 1501 | 4827 | 4075 | 5657 | 3786 |
| VB2 | 405 | 4543 | 2981 | 4684 | 793 | 2379 | 3617 | 2353 |
| VB3 | 5446 | 1151 | 1826 | 1527 | 775 | 216 | 4679 | 649 |
| VB4 | 294 | 4794 | 5869 | 3799 | 2680 | 340 | 5686 | 3775 |
| VB5 | 2752 | 3600 | 23 | 2589 | 3249 | 1471 | 455 | 625 |
| VB6 | 5612 | 741 | 195 | 5431 | 2706 | 5076 | 2619 | 3334 |
| VB7 | 1097 | 2590 | 5758 | 616 | 398 | 1904 | 4451 | 5155 |
| VB8 | 3982 | 4493 | 458 | 5360 | 1984 | 5720 | 1808 | 3836 |
| VB9 | 5193 | 5222 | 1169 | 444 | 1634 | 6077 | 2304 | 1698 |
| VB10 | 396 | 5530 | 5468 | 200 | 2576 | 2784 | 2650 | 175 |
在本範例實施例中,記憶體管理電路23用以根據每個實體抹除單元的有效計數重新映射(remap)每個虛擬區塊包括的實體抹除單元(如,以下所描述的虛擬區塊重新映射操作),以將有效計數較小的實體抹除單元重組至同一虛擬區塊。
具體來說,記憶體管理電路23根據實體抹除單元的有效計數依序排列每個晶片致能群組對應的實體抹除單元以形成多個已排序實體抹除單元。例如,記憶體管理電路23可根據有效計數由小到大排序每個晶片致能群組對應的實體抹除單元以形成多個已排序實體抹除單元。或者,記憶體管理電路23也可以根據有效計數由大到小排序每個晶片致能群組對應的實體抹除單元來形成多個已排序實體抹除單元,本發明不在此限制排序的方式。
記憶體管理電路23例如可將上表1的有效計數由小到大排序,並將每個晶片致能群組對應的實體抹除單元依照排序後的有效計數的順序進行排列以形成已排序實體抹除單元。以圖5A的晶片致能CE(0)為例,記憶體管理電路23由小到大排序表1中對應晶片致能CE(0)的有效計數,排序後的有效計數如下表2所示。接著,記憶體管理電路23根據下表2的有效計數的順序,將晶片致能CE(0)對應的實體抹除單元410(0)~410(10)依照每個實體抹除單元對應的有效計數的排列順序形成已排序的M個(在本實施例中為11個)實體抹除單元,由前往後的順序為已排序實體抹除單元410(4)、410(10)、410(2)、410(7)、410(5)、410(8)、410(9)、410(0)、410(3)、410(1)及410(6)。以此類推,記憶體管理電路23根據上述方式依序排列晶片致能CE(1)~CE(7)對應的實體抹除單元。
表2
| CE(0) | CE(1) | CE(2) | CE(3) | CE(4) | CE(5) | CE(6) | CE(7) | |
| VB0 | 294 | 741 | 23 | 200 | 398 | 216 | 455 | 175 |
| VB1 | 396 | 1151 | 195 | 444 | 775 | 340 | 1808 | 625 |
| VB2 | 405 | 1277 | 458 | 606 | 793 | 1341 | 2304 | 649 |
| VB3 | 1097 | 2590 | 1169 | 1501 | 1634 | 1471 | 2508 | 1698 |
| VB4 | 2752 | 3600 | 1826 | 1527 | 1984 | 1904 | 2619 | 1925 |
| VB5 | 3982 | 4493 | 2981 | 2589 | 2576 | 2379 | 2650 | 2353 |
| VB6 | 5193 | 4543 | 4297 | 3780 | 2680 | 2784 | 3617 | 3334 |
| VB7 | 5325 | 4794 | 5468 | 3799 | 2706 | 4075 | 4451 | 3775 |
| VB8 | 5446 | 5222 | 5693 | 4584 | 3249 | 5076 | 4679 | 3786 |
| VB9 | 5488 | 5530 | 5758 | 5360 | 4827 | 5720 | 5657 | 3836 |
| VB10 | 5612 | 6106 | 5869 | 5431 | 5881 | 6077 | 5686 | 5155 |
在形成已排序實體抹除單元後,記憶體管理電路23執行虛擬區塊重新映射操作。在虛擬區塊重新映射操作中,記憶體管理電路23根據多個已排序實體抹除單元重新映射虛擬區塊對應的實體抹除單元。具體來說,記憶體管理電路23執行虛擬區塊重新映射操作時,利用已排序實體抹除單元的實體位址來重新映射虛擬區塊對應的實體抹除單元的實體位址(記憶體管理電路23可利用虛擬區塊管理表來記錄此資訊)。即,對於已排序實體抹除單元的資料存取操作,都會被轉換為對於重新映射的實體抹除單元的資料存取操作。
圖5B是根據本發明一實施例所繪示的重新映射實體抹除單元的範例示意圖。在此以圖5A的晶片致能CE(0)為例進行說明。接續前述實施例,晶片致能CE(0)對應的已排序實體抹除單元由前往後的順序為已排序實體抹除單元410(4)、410(10)、410(2)、410(7)、410(5)、410(8)、410(9)、410(0)、410(3)、410(1)及410(6)。據此,記憶體管理電路23根據此些已排序實體抹除單元,重新映射實體抹除單元410(0)~410(10)的實體位址(如,圖5B所示的410(0)→410(4)、410(1)→410(10)、410(3)→410(7)、410(4)→410(5)、410(5)→410(8)、410(6)→410(9)、410(7)→410(0)、410(8)→410(3)、410(9)→410(1)、410(10)→410(6))。記憶體管理電路23會記錄對應實體抹除單元410(0)~410(10)的映射資訊至虛擬區塊管理表中,並完成對應晶片致能CE(0)的虛擬區塊重新映射操作。以此類推,記憶體管理電路23根據上述方式完成晶片致能CE(1)~CE(7)的虛擬區塊重新映射操作。
在完成虛擬區塊重新映射操作後,記憶體管理電路23計算重新映射的虛擬區塊的有效計數總數,並根據有效計數總數依序排列重新映射的虛擬區塊以形成多個已排序虛擬區塊。例如,記憶體管理電路23可根據有效計數總數由小到大排序重新映射的虛擬區塊以形成多個已排序虛擬區塊。或者,記憶體管理電路23可根據有效計數總數由大到小排序重新映射的虛擬區塊來形成多個已排序虛擬區塊,本發明不在此限制排序的方式。
舉例來說,上表2記錄的有效計數可對應至圖5B中重新映射的實體抹除單元。請對應參圖5B及上表2,圖5B中實體抹除單元410(0)已被實體抹除單元410(4)所取代(如,圖5B所示的410(0)→410(4)),取代後的實體抹除單元410(4)的有效計數記錄在表2中對應晶片致能CE(0)與虛擬區塊VB0的欄位,即,有效計數為294。以此類推,可對應參照圖5B及上表2獲得每個實體抹除單元的有效計數。在本範例實施例中,記憶體管理電路23可加總每個重新映射的虛擬區塊VB0~VB10對應的實體抹除單元的有效計數,以產生重新映射的虛擬區塊VB0~VB10的有效計數總數。例如,記憶體管理電路23加總重新映射的虛擬區塊VB0所對應的實體抹除單元410(4)、420(6)、430(5)、440(10)、450(7)、460(3)、470(5)及480(10)的有效計數,且計算出的有效計數總數為2502。以此類推,記憶體管理電路23可計算出重新映射的虛擬區塊VB1~VB10的有效計數總數(記憶體管理電路23可利用有效計數總數管理表來記錄此資訊)。計算出的有效計數總數可參照下表3。表3的左欄為虛擬區塊VB0~VB10,右欄記錄虛擬區塊VB0~VB10對應的有效計數總數。在本範例實施例中,由於在形成已排序實體抹除單元時即是由小到大排列每個晶片致能群組對應的實體抹除單元,因此不需要再次排列重新映射的虛擬區塊即可形成具有由小到大排序的虛擬區塊(即,虛擬區塊VB0~VB10可視為已排序虛擬區塊)。
表3
| 虛擬區塊 | 有效計數總數 |
| VB0 | 2502 |
| VB1 | 5734 |
| VB2 | 7843 |
| VB3 | 13668 |
| VB4 | 18137 |
| VB5 | 24003 |
| VB6 | 30228 |
| VB7 | 34393 |
| VB8 | 37835 |
| VB9 | 42176 |
| VB10 | 45817 |
最後,記憶體管理電路23依序提取至少一個已排序虛擬區塊作為來源虛擬區塊以執行垃圾回收操作(garbage collection)。例如,記憶體管理電路23可提取排序在前的至少一個已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。或者,記憶體管理電路23可提取排序在後的至少一個已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作,本發明不在此限制提取已排序虛擬區塊的方式。
請參上表3,記憶體管理電路23可依照有效計數總數由小到大的順序提取虛擬區塊VB0~VB10作為來源虛擬區塊。例如,記憶體管理電路23可從已排序虛擬區塊中提取對應至最小所述有效計數總數的已排序虛擬區塊作為來源虛擬區塊。如此一來,記憶體管理電路23可將每個晶片致能群組中對應的有效計數為最小值的實體抹除單元重組至同一虛擬區塊VB0,並優先將重組後的虛擬區塊VB0作為垃圾回收操作時使用的來源虛擬區塊。
值得一提的是,上述提取已排序虛擬區塊的方式關聯於先前步驟排列實體抹除單元形成已排序實體抹除單元的排列順序。與上表2相反,如果記憶體管理電路23在形成已排序實體抹除單元時是由大到小排序上表1中對應晶片致能的有效計數,則重新映射的虛擬區塊可形成有效計數總數為由大到小排序的已排序虛擬區塊。在此實施例中,記憶體管理電路23可提取排序在後的至少一個已排序虛擬區塊作為所述來源虛擬區塊。或者,記憶體管理電路23可根據有效計數總數依序排列重新映射的虛擬區塊以形成有效計數總數為由小到大排序的已排序虛擬區塊,並提取排序在前的至少一個已排序虛擬區塊作為所述來源虛擬區塊。應注意的是,本發明並不限制排序及方式,本領域人員當可經由上述範例實施例的啟示,自行設計各種排序及提取已排序虛擬區塊的方式。
在決定來源虛擬區塊後,記憶體管理電路23執行垃圾回收操作。記憶體管理電路23選擇一個虛擬區塊當作目標虛擬區塊。接著將來源虛擬區塊中的有效資料搬移(或複製)至目標虛擬區塊,並且抹除來源虛擬區塊以釋放出來源虛擬區塊的無效資料所佔用的空間。然而,上述有關垃圾回收操作的其他技術概念為本領域技術人員所熟知的技術手段,不再贅述於此。
圖6是根據本發明的一範例實施例所繪示的記憶體管理方法的流程圖。請參照圖6,在步驟S602,記錄多個實體抹除單元中的每一者的有效計數。在步驟S604,根據有效計數依序排列每個晶片致能群組對應的M個實體抹除單元以形成多個已排序實體抹除單元。在步驟S606,根據多個已排序實體抹除單元重新映射M個虛擬區塊對應的實體抹除單元。在步驟S608,計算重新映射的虛擬區塊的有效計數總數,並根據有效計數總數依序排列重新映射的M個虛擬區塊以形成多個已排序虛擬區塊。在步驟S610,依序提取至少一已排序虛擬區塊作為來源虛擬區塊以執行垃圾回收操作。
然而,圖6中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖6中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖6的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明實施例的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,能根據每個實體抹除區塊的有效計數來重組虛擬區塊。例如,可將每個晶片致能群組中有效計數最小的實體抹除單元重組至同一虛擬區塊。除此之外,本發明實施例可優先將有效計數總數最小的虛擬區塊作為垃圾回收操作時使用的來源虛擬區塊。藉此,可提高的效率垃圾回收操作並減少垃圾回收操作的次數,從而提升記憶體的持續存取效能。
10:記憶體儲存系統
11:主機系統
12:記憶體儲存裝置
121:連接介面單元
122:記憶體控制電路單元
123:可複寫式非揮發性記憶體模組
21:主機介面
22:記憶體介面
23:記憶體管理電路
30(0)~30(i):通道
CE(0)~CE(m):晶片致能
410(0)~410(10)、420(0)~420(10)、430(0)~430(10)、440(0)~440(10)、450(0)~450(10)、460(0)~460(10)、470(0)~470(10)、480(0)~480(10):實體抹除單元
VB0~VB10:虛擬區塊
S602~S610:步驟
圖1是根據本發明一實施例所繪示的記憶體儲存系統的示意圖。
圖2是根據本發明一實施例所繪示的記憶體控制電路單元的示意圖。
圖3是根據本發明一實施例所繪示的記憶體儲存裝置的範例示意圖。
圖4是根據本發明一實施例所繪示的管理虛擬區塊的範例示意圖。
圖5A是根據本發明一實施例所繪示的管理虛擬區塊的範例示意圖。
圖5B是根據本發明一實施例所繪示的重新映射實體抹除單元的範例示意圖。
圖6是根據本發明的一範例實施例所繪示的記憶體管理方法的流程圖。
S602~S610:步驟
Claims (18)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組,並且所述晶片致能群組具有根據一第一順序排列的對應M個虛擬區塊的M個實體抹除單元,所述記憶體管理方法包括: 記錄所述多個實體抹除單元中的每一者的有效計數; 根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成多個已排序實體抹除單元; 根據所述多個已排序實體抹除單元重新映射所述M個虛擬區塊對應的所述實體抹除單元; 計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊;以及 依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行一垃圾回收操作。
- 如請求項1所述的記憶體管理方法,其中根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元的步驟包括: 根據所述有效計數由小到大排序每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元。
- 如請求項2所述的記憶體管理方法,其中根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊的步驟包括: 根據所述有效計數總數由小到大排序重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊。
- 如請求項3所述的記憶體管理方法,其中依序提取至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作的步驟包括: 提取排序在前的至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。
- 如請求項1所述的記憶體管理方法,其中依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行所述垃圾回收操作的步驟包括: 從至少一所述已排序虛擬區塊中提取對應至最小所述有效計數總數的所述已排序虛擬區塊作為所述來源虛擬區塊。
- 如請求項1所述的記憶體管理方法,其中執行所述垃圾回收操作的步驟包括: 將所述來源虛擬區塊中的有效資料複製至一目標虛擬區塊,並且抹除所述來源虛擬區塊。
- 一種記憶體控制電路單元,用以控制一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組,並且所述晶片致能群組具有根據一第一順序排列的對應M個虛擬區塊的M個實體抹除單元,且所述記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組;以及 一記憶體管理電路,耦接至所述主機介面與所述記憶體介面, 其中所述記憶體管理電路用以記錄所述多個實體抹除單元中的每一者的有效計數, 所述記憶體管理電路更用以根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成多個已排序實體抹除單元, 所述記憶體管理電路更用以根據所述多個已排序實體抹除單元重新映射所述M個虛擬區塊對應的所述實體抹除單元, 所述記憶體管理電路更用以計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊,並且 所述記憶體管理電路更用以依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行一垃圾回收操作。
- 如請求項7所述的記憶體控制電路單元,其中根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元的操作包括: 根據所述有效計數由小到大排序每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元。
- 如請求項8所述的記憶體控制電路單元,其中根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊的操作包括: 根據所述有效計數總數由小到大排序重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊。
- 如請求項9所述的記憶體控制電路單元,其中依序提取至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作的操作包括: 提取排序在前的至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。
- 如請求項7所述的記憶體控制電路單元,其中依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行所述垃圾回收操作的操作包括: 從至少一所述已排序虛擬區塊中提取對應至最小所述有效計數總數的所述已排序虛擬區塊作為所述來源虛擬區塊。
- 如請求項7所述的記憶體控制電路單元,其中執行所述垃圾回收操作的操作包括: 將所述來源虛擬區塊中的有效資料複製至一目標虛擬區塊,並且抹除所述來源虛擬區塊。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,其中所述多個實體抹除單元中的每一者對應一個晶片致能群組,並且所述晶片致能群組具有根據一第一順序排列的對應M個虛擬區塊的M個實體抹除單元;以及 一記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組, 其中所述記憶體控制電路單元用以記錄所述多個實體抹除單元中的每一者的有效計數, 所述記憶體控制電路單元更用以根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成多個已排序實體抹除單元, 所述記憶體控制電路單元更用以根據所述多個已排序實體抹除單元重新映射所述M個虛擬區塊對應的所述實體抹除單元, 所述記憶體控制電路單元更用以計算重新映射的所述M個虛擬區塊的有效計數總數,並根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成多個已排序虛擬區塊,並且 所述記憶體控制電路單元更用以依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行一垃圾回收操作。
- 如請求項13所述的記憶體儲存裝置,其中根據所述有效計數依序排列每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元的操作包括: 根據所述有效計數由小到大排序每個所述晶片致能群組對應的所述M個實體抹除單元以形成所述多個已排序實體抹除單元。
- 如請求項14所述的記憶體儲存裝置,其中根據所述有效計數總數依序排列重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊的操作包括: 根據所述有效計數總數由小到大排序重新映射的所述M個虛擬區塊以形成所述多個已排序虛擬區塊。
- 如請求項15所述的記憶體儲存裝置,其中依序提取至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作的操作包括: 提取排序在前的至少一所述已排序虛擬區塊作為所述來源虛擬區塊以執行所述垃圾回收操作。
- 如請求項13所述的記憶體儲存裝置,其中依序提取至少一所述已排序虛擬區塊作為來源虛擬區塊以執行所述垃圾回收操作的操作包括: 從至少一所述已排序虛擬區塊中提取對應至最小所述有效計數總數的所述已排序虛擬區塊作為所述來源虛擬區塊。
- 如請求項13所述的記憶體儲存裝置,其中執行所述垃圾回收操作的操作包括: 將所述來源虛擬區塊中的有效資料複製至一目標虛擬區塊,並且抹除所述來源虛擬區塊。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110391156.7A CN113096713B (zh) | 2021-04-12 | 2021-04-12 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
| CN202110391156.7 | 2021-04-12 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI770945B true TWI770945B (zh) | 2022-07-11 |
| TW202240400A TW202240400A (zh) | 2022-10-16 |
Family
ID=76676329
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110113979A TWI770945B (zh) | 2021-04-12 | 2021-04-19 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11620072B2 (zh) |
| CN (1) | CN113096713B (zh) |
| TW (1) | TWI770945B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118838544B (zh) * | 2024-07-02 | 2025-09-16 | 合肥开梦科技有限责任公司 | 存储器管理方法及存储器控制器 |
| CN119225659B (zh) * | 2024-09-30 | 2025-09-23 | 合肥开梦科技有限责任公司 | 数据写入方法与存储装置 |
| CN119718203A (zh) * | 2024-12-09 | 2025-03-28 | 合肥开梦科技有限责任公司 | 存储器管理方法及存储器控制器 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107590080A (zh) * | 2016-07-07 | 2018-01-16 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元及存储器存储装置 |
| US10061710B2 (en) * | 2014-01-29 | 2018-08-28 | Hitachi, Ltd. | Storage device |
| TWI661299B (zh) * | 2018-04-30 | 2019-06-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
| TWI664528B (zh) * | 2018-06-06 | 2019-07-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
| CN110471612A (zh) * | 2018-05-09 | 2019-11-19 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007081598A2 (en) * | 2005-10-27 | 2007-07-19 | Sandisk Corporation | Adaptive handling data writes in non-volatile memories |
| KR100843543B1 (ko) * | 2006-10-25 | 2008-07-04 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
| US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
| CN104636267B (zh) * | 2013-11-11 | 2018-01-12 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置与存储器控制电路单元 |
| CN107122308A (zh) * | 2016-02-25 | 2017-09-01 | 群联电子股份有限公司 | 平均磨损方法、内存控制电路单元及内存储存装置 |
| JP6448571B2 (ja) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
| CN107818808B (zh) * | 2016-09-14 | 2023-09-12 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
| CN106990921B (zh) * | 2017-03-24 | 2019-10-11 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置与存储器控制电路单元 |
| TWI649653B (zh) * | 2017-08-30 | 2019-02-01 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI670594B (zh) * | 2018-01-18 | 2019-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
| TW201947402A (zh) * | 2018-05-14 | 2019-12-16 | 深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
| TWI671631B (zh) * | 2018-08-01 | 2019-09-11 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
| KR102679967B1 (ko) * | 2018-09-12 | 2024-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 관리 방법 및 장치 |
| TWI693516B (zh) * | 2018-11-13 | 2020-05-11 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 |
| TWI864115B (zh) * | 2020-09-28 | 2024-12-01 | 韓商愛思開海力士有限公司 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
-
2021
- 2021-04-12 CN CN202110391156.7A patent/CN113096713B/zh active Active
- 2021-04-19 TW TW110113979A patent/TWI770945B/zh active
- 2021-05-05 US US17/308,069 patent/US11620072B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10061710B2 (en) * | 2014-01-29 | 2018-08-28 | Hitachi, Ltd. | Storage device |
| CN107590080A (zh) * | 2016-07-07 | 2018-01-16 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元及存储器存储装置 |
| TWI661299B (zh) * | 2018-04-30 | 2019-06-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
| CN110471612A (zh) * | 2018-05-09 | 2019-11-19 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
| TWI664528B (zh) * | 2018-06-06 | 2019-07-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20220326871A1 (en) | 2022-10-13 |
| CN113096713A (zh) | 2021-07-09 |
| US11620072B2 (en) | 2023-04-04 |
| TW202240400A (zh) | 2022-10-16 |
| CN113096713B (zh) | 2024-05-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11249897B2 (en) | Data storage device and operating method thereof | |
| CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
| TWI770945B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN103514096B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
| CN106681654A (zh) | 映射表载入方法与存储器存储装置 | |
| US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
| US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
| CN111158579A (zh) | 固态硬盘及其数据存取的方法 | |
| CN108959109A (zh) | 数据读取方法、存储器控制电路单元与存储器存储装置 | |
| CN111258505B (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
| TWI717751B (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
| CN110471612A (zh) | 存储器管理方法以及存储控制器 | |
| US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
| TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN102193870B (zh) | 存储器管理与写入方法、存储器控制器与存储器存储系统 | |
| CN114333930B (zh) | 多通道存储器存储装置、控制电路单元及其数据读取方法 | |
| CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
| CN104423892A (zh) | 数据写入方法、磁盘模块以及数据写入系统 | |
| TW201351140A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
| CN110275668B (zh) | 区块管理方法、存储器控制电路单元与存储器存储装置 | |
| CN108958640B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
| CN107122308A (zh) | 平均磨损方法、内存控制电路单元及内存储存装置 | |
| CN107103930A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
| CN102467459B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
| CN106920572A (zh) | 内存管理方法、内存控制电路单元及内存储存装置 |