TW201814526A - 記憶體管理方法及使用所述方法的儲存控制器 - Google Patents
記憶體管理方法及使用所述方法的儲存控制器 Download PDFInfo
- Publication number
- TW201814526A TW201814526A TW105132019A TW105132019A TW201814526A TW 201814526 A TW201814526 A TW 201814526A TW 105132019 A TW105132019 A TW 105132019A TW 105132019 A TW105132019 A TW 105132019A TW 201814526 A TW201814526 A TW 201814526A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- tag value
- physical block
- physical
- processor
- Prior art date
Links
Classifications
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種記憶體管理方法,其包括將多個第一資料寫入第一實體區塊,並儲存對應第一實體區塊的第一標記值;將多個第二資料寫入第二實體區塊,並儲存對應第二實體區塊的第二標記值,其中第二標記值大於第一標記值;將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊,其中上述第三資料為有效資料且上述第三資料符合特定態樣;以及儲存對應第三實體區塊的第三標記值並將對應第二實體區塊的第二標記值更新為第四標記值,其中第四標記值大於第三標記值且第三標記值大於等於第二標記值。
Description
本發明是有關於一種記憶體管理方法及使用所述方法的儲存控制器,且特別是有關於一種修改標記值以解決資料寫入不同步問題的記憶體管理方法及使用所述方法的儲存控制器。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於此些電子產品。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。例如,廣泛用於行動電子裝置上的嵌入式多媒體卡(embedded Multi Media Card, eMMC)就是一種以快閃記憶體作為儲存媒體的儲存裝置。
固態硬碟隨著反及快閃記憶體(NAND flash)的價格降低而成為受歡迎的儲存媒體。然而,反及快閃記憶體仍存在有待克服的缺點,例如無法有效率地進行資料的原地更新(in-place update),也就是將更新資料覆寫在原資料的位址。因此,大部分基於快閃記憶體的固態硬碟都採用了具有快閃記憶體轉換層(Flash Translation Layer, FTL)及垃圾收集機制的異地更新(out-of-place update)機制(在其他位址寫入更新資料並將原資料設定為無效資料),用以管理邏輯位址到實體位址的位址轉換以及快閃記憶體的重新使用。由於快閃記憶體具有有限的耐久度,因此如何增加垃圾收集的效率變得更重要。近來提出了一種將冷資料與熱資料分離的快閃記憶體轉換層,會對任何已被程式化的資料進行熱資料或冷資料的確認並將其分別寫到不同的區塊。然而,上述資料分離的方法可能導致主機寫入區塊與垃圾收集區塊的資料寫入不同步。在重新啟動後,會需要很多工作量來辨識區塊中的哪個資料是有效的。
詳細來說,為了分離熱資料與冷資料,快閃記憶體轉換層會在主機寫入區塊以外準備另一個區塊用於垃圾收集操作。但是快閃記憶體轉換層映射表(FTL table)並不會立即更新到反及快閃記憶體而具有一個時間槽窗口。任何在此時間槽內的程式化操作在下一次快閃記憶體轉換層更新之前都不會被儲存到反及快閃記憶體中。因此在一些程式化順序中重新啟動固態硬碟會難以維持資料完整性。為了解決這個問題,快閃記憶體轉換層的韌體必須保有每個區塊的屬性以區分主機寫入區塊與垃圾收集區塊。在重新啟動之後,韌體有兩種方法可以恢復資料。一種是直接丟棄垃圾處理區塊的所有資料,但這造成了先前將資料搬移到垃圾處理區塊的操作的浪費。另一種則是比較主機寫入區塊與垃圾收集區塊的每一筆資料並將具有主機寫入區塊屬性的資料視為最新的資料,但這會花費很多時間比較兩個區塊的邏輯區塊位址。
因此,如何以較少的資源及時間來解決資料寫入不同步的問題,進而增進資料存取的效率且降低資源的耗費,是此領域技術人員所致力的目標。
本發明提供一種記憶體管理方法及使用所述方法的儲存控制器,其可有效率的維持在冷資料與熱資料分離的快閃記憶體轉換層中維持資料一致性。
本發明提出一種記憶體管理方法,適用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體區塊,每一上述實體區塊包括多個實體程式化單元,上述實體區塊包括第一實體區塊、第二實體區塊及第三實體區塊。上述記憶體管理方法包括:將多個第一資料寫入第一實體區塊,並儲存對應第一實體區塊的第一標記值;將多個第二資料寫入第二實體區塊,並儲存對應第二實體區塊的第二標記值,其中第二標記值大於第一標記值;將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊,其中上述第三資料為有效資料且上述第三資料符合特定態樣;以及儲存對應第三實體區塊的第三標記值並將對應第二實體區塊的第二標記值更新為第四標記值,其中第四標記值大於第三標記值且第三標記值大於等於第二標記值。
在本發明的一實施例中,上述記憶體管理方法更包括:將第四資料寫入第二實體區塊;以及在可複寫式非揮發性記憶體模組斷電並重新啟動之後,根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,上述根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表的步驟包括:根據第三標記值及第四標記值依序更新儲存第三資料的第三實體區塊所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,其中當第一實體區塊中第三資料所對應的邏輯頁面在預定時間內並未被更新,則判斷第三資料符合特定態樣。
在本發明的一實施例中,上述第一標記值、第二標記值、第三標記值及第四標記值儲存在上述實體區塊的系統區塊。
本發明提出一種儲存控制器,用於存取可複寫式非揮發性記憶體模組並經由連接介面電路耦接至主機系統。儲存控制器包括:記憶體介面控制電路,用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體區塊,每一實體區塊包括多個實體程式化單元,上述實體區塊包括第一實體區塊、第二實體區塊及第三實體區塊;處理器,耦接至連接介面電路單元及記憶體介面控制電路;以及資料傳輸管理電路,耦接至處理器、連接介面電路單元及記憶體介面控制電路。其中處理器將多個第一資料寫入第一實體區塊,並儲存對應第一實體區塊的第一標記值。其中處理器將多個第二資料寫入第二實體區塊,並儲存對應第二實體區塊的第二標記值,其中第二標記值大於第一標記值。其中處理器將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊,其中第三資料為有效資料且第三資料符合特定態樣;以及其中處理器儲存對應第三實體區塊的第三標記值並將對應第二實體區塊的第二標記值更新為第四標記值,其中第四標記值大於第三標記值且第三標記值大於等於第二標記值。
在本發明的一實施例中,其中處理器將第四資料寫入第二實體區塊,其中在可複寫式非揮發性記憶體模組斷電並重新啟動之後,處理器根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,上述處理器根據第三標記值及第四標記值依序更新儲存第三資料的第三實體區塊所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,其中當第一實體區塊中第三資料所對應的邏輯頁面在預定時間內並未被更新,則處理器判斷第三資料符合特定態樣。
在本發明的一實施例中,上述第一標記值、第二標記值、第三標記值及第四標記值儲存在上述實體區塊的系統區塊。
本發明提出一種記憶體管理方法,適用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體區塊,每一實體區塊包括多個實體程式化單元,上述實體區塊包括第一實體區塊、第二實體區塊及第三實體區塊。記憶體管理方法包括:將多個第一資料寫入第一實體區塊,並儲存對應第一資料的第一標記值;將多個第二資料寫入第二實體區塊,並儲存對應第二資料的第二標記值,其中第二標記值大於第一標記值;將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊,其中些第三資料為有效資料且第三資料符合特定態樣;儲存對應第三資料的第三標記值,其中第三標記值大於等於第二標記值;將第四資料寫入第二實體區塊,並儲存對應第四資料的第四標記值,其中第四標記值大於第三標記值。
在本發明的一實施例中,上述記憶體管理方法更包括:在可複寫式非揮發性記憶體模組斷電並重新啟動之後,根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,其中根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表的步驟包括:根據第三標記值及第四標記值依序更新儲存第三資料的第三實體區塊所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,其中當第一實體區塊中第三資料所對應的邏輯頁面在預定時間內並未被更新,則判斷第三資料符合特定態樣。
在本發明的一實施例中,上述第一標記值、第二標記值、第三標記值及第四標記值儲存在上述實體區塊的每一實體程式化單元所對應的帶外區(Out Of Band,OOB)。
本發明提出一種儲存控制器,用於存取可複寫式非揮發性記憶體模組並經由連接介面電路耦接至主機系統,儲存控制器包括:記憶體介面控制電路,用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體區塊,每一實體區塊包括多個實體程式化單元,上述實體區塊包括第一實體區塊、第二實體區塊及第三實體區塊;處理器,耦接至連接介面電路單元及記憶體介面控制電路;以及資料傳輸管理電路,耦接至處理器、連接介面電路單元及記憶體介面控制電路。其中處理器將多個第一資料寫入第一實體區塊,並儲存對應第一資料的第一標記值。其中處理器將多個第二資料寫入第二實體區塊,並儲存對應第二資料的第二標記值。其中第二標記值大於第一標記值。其中處理器將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊。其中第三資料為有效資料且第三資料符合特定態樣。其中處理器儲存對應第三資料的第三標記值。其中第三標記值大於等於第二標記值。其中處理器將第四資料寫入第二實體區塊,並儲存對應第四資料的第四標記值,其中第四標記值大於第三標記值。
在本發明的一實施例中,其中在可複寫式非揮發性記憶體模組斷電並重新啟動之後,處理器根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。
在本發明的一實施例中,上述處理器根據第三標記值及第四標記值依序更新儲存第三資料的第三實體區塊所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊所對應的快閃記憶體轉換層映射表
在本發明的一實施例中,其中當第一實體區塊中第三資料所對應的邏輯頁面在預定時間內並未被更新,則處理器判斷第三資料符合特定態樣。
在本發明的一實施例中,上述第一標記值、第二標記值、第三標記值及第四標記值儲存在上述實體區塊的每一實體程式化單元所對應的帶外區。
基於上述,本發明的記憶體管理方法及使用所述方法的儲存控制器在對冷資料進行垃圾收集時,會更新主機寫入區塊的標記值,使得主機寫入區塊的標記值大於垃圾收集區塊的標記值。因此,當主機寫入區塊部分資料的邏輯位址與垃圾收集區塊部分資料的邏輯位址相同時,會在進行快閃記憶體轉換層更新時會先重建垃圾收集區塊的資料,再將主機寫入區塊中邏輯位址相同的資料覆寫到垃圾收集區塊,以解決資料寫入不同步的問題。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,儲存裝置包括可複寫式非揮發性記憶體模組(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 Transfer 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)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排耦接至全球定位系統(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也可以是其他適合的記憶體。更詳細來說,在本實施例中,主機記憶體120被劃分為多個記憶體頁面(Memory Page),以供指令與資料的儲存管理。每個記憶體頁面具有起始位址(Starting Address of Memory Page,SAMP)與結束位址(Ending Address of Memory Page,EAMP)。在本實施例中,每個記憶體頁面是利用16位元大小的位址來進行定位,例如,排序為第一個的記憶體頁面的起始位址(SAMP)可設定為 “0x0000”,並且結束位址(EAMP)可設定為 “0x0FFF”。 每個記憶體頁面的大小為4096位元組(Bytes)(即,4KB)。主機記憶體用來進行資料傳輸的記憶體頁面的總空間為64KB,即,共16個記憶體頁面。然而,本發明並不限於主機記憶體的位址定位方式。例如,在另一實施例中,主機記憶體可具有更多或是更少的空間,並且可對應地使用適合的定位方式來進行位址定位。
儲存控制器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。
其中,資料傳輸管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料傳輸管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220讀取資料,並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中。以下會再配合多個圖式與實施例來詳細說明本發明中資料傳輸管理電路212的功能。
記憶體介面控制電路213用以接受處理器211的指示,配合資料傳輸管理電路212來進行對於可複寫式非揮發性記憶體模組220的資料的寫入(亦稱,程式化,Programming)、讀取操作。記憶體介面控制電路213亦可對可複寫式非揮發性記憶體模組220進行抹除操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在本實施例中,記憶體介面控制電路213還會辨識配置給可複寫式非揮發性記憶體模組220的邏輯區塊的狀態。記憶體介面控制電路213亦可辨識可複寫式非揮發性記憶體模組220的實體區塊的狀態。更詳細來說,當記憶體介面控制電路213根據讀取/寫入指令發出讀取/寫入請求給可複寫式非揮發性記憶體模組220後,記憶體介面控制電路213會辨識對應的可複寫式非揮發性記憶體模組220的儲存單元(如,實體區塊、實體頁面,或是對應的邏輯區塊、邏輯頁面)的狀態是否為就緒狀態(readiness)。舉例來說,當記憶體介面控制電路213辨識到對應讀取/寫入指令的實體區塊以準備好進行資料傳輸時,記憶體介面控制電路213會回報映射至所述實體區塊的邏輯區塊為就緒狀態。換句話說,記憶體介面控制電路213會根據判斷邏輯區塊所映射的實體區塊是否準備好進行資料傳輸來判斷所述邏輯區塊的狀態是否為就緒狀態。記憶體介面控制電路213可主動判斷對應的實體區塊的狀態是否準備好進行資料傳輸,也可被動地接收來自可複寫式非揮發性記憶體模組220的對應的實體區塊的狀態回報,本發明不限於記憶體介面控制電路213如何辨識欲進行資料存取的實體區塊/邏輯區塊是否為就緒狀態的方法。
可複寫式非揮發性記憶體模組220是耦接至記憶體控制電路單元404並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體區塊(亦稱,實體抹除單元)。具體來說,同一條字元線(或同一個字元線層)上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞被用以儲存2個以上的位元,則同一條字元線(或同一個字元線層)上的實體程式化單元至少可被分類為一個下(lower)實體程式化單元與一個上(upper)實體程式化單元。
在一實施例中,若每一個記憶胞被用以儲存2個位元,則同一條字元線(或同一個字元線層)上的實體程式化單元可被分類為一個下實體程式化單元與一個上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度會高於上實體程式化單元的可靠度。在另一實施例中,若每一個記憶胞被用以儲存3個位元,則同一條字元線(或同一個字元線層)上的實體程式化單元可被分類為一個下實體程式化單元、一個上實體程式化單元及一個額外(extra)實體程式化單元。例如,一記憶胞的最低有效位元是屬於下實體程式化單元,一記憶胞的中間有效位元(Central Significant Bit,CSB)是屬於上實體程式化單元,並且一記憶胞的的最高有效位元是屬於額外實體程式化單元。
在本實施例中,資料是以實體區塊為單位作為寫入資料(程式化)的儲存單元。實體區塊亦可稱為實體抹除單元或實體單元。實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。每一實體區塊會具有多個實體程式化單元。實體程式化單元為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼)。
然而,本發明不限於此。例如,在另一實施例中,亦可變化本實施例所述的資料傳輸方法,應用至以實體程式化單元為單位作為寫入資料的儲存單元的可複寫式非揮發性記憶體模組220。
在一實施例中,儲存控制器210是基於實體單元來管理可複寫式非揮發性記憶體模組220中的記憶胞。例如,在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當儲存控制器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可藉由實體轉邏輯位址映射表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在一實施例中,儲存控制器210還包括緩衝記憶體(未繪示於圖中)與電源管理電路(未繪示於圖中)。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料。電源管理電路是耦接至處理器211並且用以控制儲存裝置20的電源。
當處理器211指示將資料寫入可複寫式非揮發性記憶體模組220中的實體區塊時,處理器211會同時儲存對應此實體區塊的一個時間標記。時間標記是一個唯一且遞增的序列數,使得處理器211可以藉由時間標記的大小來判斷每一個實體區塊的寫入順序。在一實施例中,處理器211可將每個實體區塊的編號及其對應的時間標記儲存在一個特定的系統區塊中,但本發明並不以此為限。在另一實施例中,處理器211也可將時間標記儲存在實體區塊中每一個頁面所對應的帶外(Out Of Band, OOB)區中。在另一實施例中,處理器211也可將時間標記儲存在實體區塊中每一個頁面中的每一個碼字(codeword)所對應的帶外(Out Of Band, OOB)區中。
以下開始會配合圖1與後續的圖式來詳細說明本發明實施例所提供的記憶體管理方法及使用所述方法的儲存控制器210。
圖2A至2C是根據本發明一實施例所繪示的記憶體管理方法的示意圖。
請參照圖2A,圖2A表示處理器211在實際時間Xt所進行的操作。具體來說,處理器211先將第一資料寫入第一實體區塊201,並儲存對應第一資料的第一標記值,也就是將時間標記T寫入第一資料對應的「時間標記」欄位。當第一資料寫滿第一實體區塊201的所有頁面(即,頁面0、1、2)時,處理器211繼續將第二資料寫入第二實體區塊202,並儲存對應第二資料的第二標記值,也就是將時間標記T+1寫入第二資料對應的「時間標記」欄位。值得注意的是,第一資料與第二資料可以是在實際時間Xt藉由同一個寫入指令指示寫入實體區塊的資料或藉由不同寫入指令指示寫入實體區塊的資料。由於第一資料及第二資料都是主機寫入資料,因此在第一資料及第二資料所對應的「類型」欄位會寫入代表了「主機寫入」的資訊,而此資訊可以是由至少一位元所代表的特定值。
值得注意的是,在本實施例中,為了方便說明而假設第一實體區塊201(或第二實體區塊202、圖2B中的第三實體區塊203)具有實體頁面0、1、2,但本發明並不限制於一個實體區塊僅有三個實體頁面。例如,在另一實施例中,第一實體區塊201可具有更多的實體頁面。或者,在又一實施例中,在圖2A中的標號0、1、2也可代表第一實體區塊201或其他實體區塊具有碼字0、1、2,或是具有更多的碼字。
請繼續參照圖2B,圖2B表示處理器211在實際時間Xt+1所進行的操作。具體來說,處理器211可對第一實體區塊201中的第一資料進行垃圾收集操作。舉例來說,當處理器211判斷第一實體區塊201的實體頁面1、2的第一資料(以下又稱為第三資料)為有效資料且符合特定態樣(即,第一實體區塊201中第三資料所對應的邏輯頁面在預定時間內並未被更新)時,處理器211會將第三資料搬移到一個垃圾收集區塊,也就是第三實體區塊203的實體頁面0、1。同時,處理器211會在第三實體區塊203的實體頁面0、1對應的「時間標記」欄位寫入第三標記值,也就是時間標記T+1,在此第三標記值等於第二標記值。處理器211還會在第三實體區塊203的實體頁面0、1對應的「類型」欄位寫入代表了「垃圾收集」的資訊,而此資訊可以是由至少一位元所代表的特定值。
請繼續參照圖2C,圖2C表示處理器211在實際時間Xt+2所進行的操作。具體來說,當處理器211將第四資料寫入第二實體區塊202的實體頁面2時,處理器211會在第二實體區塊202的實體頁面2對應的「時間標記」欄位寫入第四標記值,也就是時間標記T+2,在此第四標記值大於第三標記值。
如此一來,不論發生正常或不正常的斷電重啟(power cycling),處理器211都可根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。詳細來說,處理器211可根據第三標記值及第四標記值依序更新儲存第三資料的該第三實體區塊203所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊202所對應的快閃記憶體轉換層映射表。因此,在本實施例中,即使用以儲存第四資料的邏輯位址與用以儲存部分第三資料的邏輯位址相同(例如,都是LBA(5)*),處理器211也可按照正確的順序更新快閃記憶體轉換層映射表,從而避免資料寫入不同步的問題發生。
值得注意的是,在本實施例中,即使在寫入第四資料之前就斷電,由於第二實體區塊202與第三實體區塊203並沒有實體頁面映射到相同的邏輯位址,因此處理器211可以從具有時間標記T+1的第二實體區塊202或第三實體區塊203任選一個先進行快閃記憶體轉換層映射表的更新,而不會影響到資料的一致性。
圖3A至3C是根據本發明另一實施例所繪示的記憶體管理方法的示意圖。
請參照圖3A,圖3A表示處理器211在實際時間Xt所進行的操作。具體來說,處理器211先將第一資料寫入第一實體區塊301,並儲存對應第一資料的第一標記值,也就是將時間標記T寫入第一資料對應的「時間標記」欄位。當第一資料寫滿第一實體區塊301的所有頁面(即,頁面0、1、2)時,處理器211繼續將第二資料寫入第二實體區塊302,並儲存對應第二資料的第二標記值,也就是將時間標記T+1寫入第二資料對應的「時間標記」欄位。由於第一資料及第二資料都是主機寫入資料,因此在第一資料及第二資料所對應的「類型」欄位會寫入代表了「主機寫入」的資訊,而此資訊可以是由至少一位元所代表的特定值。
請繼續參照圖3B,圖3B表示處理器211在實際時間Xt+1所進行的操作。具體來說,處理器211可對第一實體區塊301中的第一資料進行垃圾收集操作。舉例來說,當處理器211判斷第一實體區塊301的實體頁面1、2的第一資料(以下又稱為第三資料)為有效資料且符合特定態樣時(即,第一實體區塊301中第三資料所對應的邏輯頁面在預定時間內並未被更新),處理器211會將第三資料搬移到一個垃圾收集區塊,也就是第三實體區塊303的實體頁面0、1。同時,處理器211會在第三實體區塊303的實體頁面0、1對應的「時間標記」欄位寫入第三標記值,也就是時間標記T+2,在此第三標記值大於第二標記值。處理器211還會在第三實體區塊203的實體頁面0、1對應的「類型」欄位寫入代表了「垃圾收集」的資訊,而此資訊可以是由至少一位元所代表的特定值。
請繼續參照圖3C,圖3C表示處理器211在實際時間Xt+2所進行的操作。具體來說,當處理器211將第四資料寫入第二實體區塊302的實體頁面2時,處理器211會在第二實體區塊302的實體頁面2對應的「時間標記」欄位寫入第四標記值,也就是時間標記T+3,在此第四標記值大於第三標記值。
如此一來,不論發生正常或不正常的斷電重啟(power cycling),處理器211都可根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。詳細來說,處理器211可根據第三標記值及第四標記值依序更新儲存第三資料的該第三實體區塊203所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊202所對應的快閃記憶體轉換層映射表。因此,在本實施例中,即使用以儲存第四資料的邏輯位址與用以儲存部分第三資料的邏輯位址相同(例如,都是LBA(5)*),處理器211也可按照正確的順序更新快閃記憶體轉換層映射表,從而避免資料寫入不同步的問題發生。
圖4A至4C是根據本發明另一實施例所繪示的記憶體管理方法的示意圖。
請參照圖4A,圖4A表示處理器211在實際時間Xt所進行的操作。具體來說,處理器211先將第一資料寫入第一實體區塊201,並儲存對應第一實體區塊401的第一標記值T,也就是在系統區塊410中儲存第一標記值T及其對應的第一實體區塊201的識別資訊。當第一資料寫滿第一實體區塊401的所有頁面(即,頁面0、1、2)時,處理器211繼續將第二資料寫入第二實體區塊402,並儲存對應第二實體區塊402的第二標記值T+1,也就是在系統區塊410中儲存第二標記值T+1及其對應的第二實體區塊402的識別資訊。
請繼續參照圖4B,圖4B表示處理器211在實際時間Xt+1所進行的操作。具體來說,處理器211可對第一實體區塊401中的第一資料進行垃圾收集操作。舉例來說,當處理器211判斷第一實體區塊401的實體頁面1、2的第一資料(以下又稱為第三資料)為有效資料且符合特定態樣時(即,第一實體區塊401中第三資料所對應的邏輯頁面在預定時間內並未被更新),處理器211會將第三資料搬移到一個垃圾收集區塊,也就是第三實體區塊403的實體頁面0、1。同時,處理器211會在系統區塊410中儲存對應第三實體區塊403的第三標記值T+1並將對應第二實體區塊402的該第二標記值T+1更新為第四標記值T+2。在此,第四標記值T+2大於第三標記值T+1且第三標記值T+1等於第二標記值T+1。
請繼續參照圖4C,圖4C表示處理器211在實際時間Xt+2所進行的操作。具體來說,當處理器211將第四資料寫入第二實體區塊402的實體頁面2時,系統區塊410中對應第二實體區塊402的第四標記值T+2維持不變。
如此一來,不論發生正常或不正常的斷電重啟(power cycling),處理器211都可根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。詳細來說,處理器211可根據第三標記值及第四標記值依序更新儲存第三資料的該第三實體區塊203所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊202所對應的快閃記憶體轉換層映射表。因此,在本實施例中,即使用以儲存第四資料的邏輯位址與用以儲存部分第三資料的邏輯位址相同(例如,都是LBA(5)*),處理器211也可按照正確的順序更新快閃記憶體轉換層映射表,從而避免資料寫入不同步的問題發生。
圖5A至5C是根據本發明另一實施例所繪示的記憶體管理方法的示意圖。
請參照圖5A,圖5A表示處理器211在實際時間Xt所進行的操作。具體來說,處理器211先將第一資料寫入第一實體區塊501,並儲存對應第一實體區塊501的第一標記值T,也就是在系統區塊510中儲存第一標記值T及其對應的第一實體區塊501的識別資訊。當第一資料寫滿第一實體區塊501的所有頁面(即,頁面0、1、2)時,處理器211繼續將第二資料寫入第二實體區塊502,並儲存對應第二實體區塊502的第二標記值T+1,也就是在系統區塊510中儲存第二標記值T+1及其對應的第二實體區塊402的識別資訊。
請繼續參照圖5B,圖5B表示處理器211在實際時間Xt+1所進行的操作。具體來說,處理器211可對第一實體區塊501中的第一資料進行垃圾收集操作。舉例來說,當處理器211判斷第一實體區塊501的實體頁面1、2的第一資料(以下又稱為第三資料)為有效資料且符合特定態樣時(即,第一實體區塊501中第三資料所對應的邏輯頁面在預定時間內並未被更新),處理器211會將第三資料搬移到一個垃圾收集區塊,也就是第三實體區塊503的實體頁面0、1。同時,處理器211會在系統區塊510中儲存對應第三實體區塊503的第三標記值T+2並將對應第二實體區塊402的該第二標記值T+1更新為第四標記值T+3。在此,第四標記值T+3大於第三標記值T+2且第三標記值T+2大於第二標記值T+1。
請繼續參照圖5C,圖5C表示處理器211在實際時間Xt+2所進行的操作。具體來說,當處理器211將第四資料寫入第二實體區塊502的實體頁面2時,系統區塊510中對應第二實體區塊402的第四標記值T+3維持不變。
如此一來,不論發生正常或不正常的斷電重啟(power cycling),處理器211都可根據第三標記值及第四標記值依序更新第三資料及第四資料所對應的快閃記憶體轉換層映射表。詳細來說,處理器211可根據第三標記值及第四標記值依序更新儲存第三資料的該第三實體區塊503所對應的快閃記憶體轉換層映射表及儲存第四資料的第二實體區塊502所對應的快閃記憶體轉換層映射表。因此,在本實施例中,即使用以儲存第四資料的邏輯位址與用以儲存部分第三資料的邏輯位址相同(例如,都是LBA(5)*),處理器211也可按照正確的順序更新快閃記憶體轉換層映射表,從而避免資料寫入不同步的問題發生。
圖6是根據本發明一實施例的記憶體管理方法的流程圖。
在步驟S601中,將多個第一資料寫入第一實體區塊,並儲存對應第一實體區塊的第一標記值。
在步驟S603中,將多個第二資料寫入第二實體區塊,並儲存對應第二實體區塊的第二標記值,其中第二標記值大於第一標記值。
在步驟S605中,將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊,其中第三資料為有效資料且第三資料符合特定態樣。當第一實體區塊中第三資料所對應的邏輯頁面在預定時間內並未被更新,則判斷第三資料符合特定態樣。
在步驟S607中,儲存對應第三實體區塊的第三標記值並將對應第二實體區塊的第二標記值更新為第四標記值,其中第四標記值大於第三標記值且第三標記值大於等於第二標記值。
在步驟S609中,將第四資料寫入第二實體區塊。
在步驟S611中,在可複寫式非揮發性記憶體模組斷電並重新啟動之後,根據第三標記值及第四標記值依序更新第三資料及該四資料所對應的快閃記憶體轉換層映射表。
圖7是根據本發明另一實施例的記憶體管理方法的流程圖。
在步驟S701中,將多個第一資料寫入第一實體區塊,並儲存對應第一資料的第一標記值。
在步驟S703中,將多個第二資料寫入第二實體區塊,並儲存對應第二資料的第二標記值,其中第二標記值大於第一標記值。
在步驟S705中,將第一實體區塊的第一資料中的多個第三資料搬移到第三實體區塊,其中些第三資料為有效資料且第三資料符合特定態樣。當第一實體區塊中第三資料所對應的邏輯頁面在預定時間內並未被更新,則判斷第三資料符合特定態樣。
在步驟S707中,儲存對應第三資料的第三標記值,其中第三標記值大於等於第二標記值。
在步驟S709中,將第四資料寫入第二實體區塊,並儲存對應第四資料的第四標記值,其中第四標記值大於第三標記值。
在步驟S711中,在可複寫式非揮發性記憶體模組斷電並重新啟動之後,根據第三標記值及第四標記值依序更新第三資料及該四資料所對應的快閃記憶體轉換層映射表。
綜上所述,本發明的記憶體管理方法及使用所述方法的儲存控制器會在系統開啟用於垃圾收集的實體區塊時更新主機寫入區塊的時間標記,使得主機寫入區塊的標記值大於垃圾收集區塊的標記值。如此一來,即使主機寫入區塊部分資料的邏輯位址與垃圾收集區塊部分資料的邏輯位址相同,在記憶體裝置不論是正常或不正常斷電並重新啟動時,都會先進行垃圾收集區塊的快閃記憶體轉換層映射表更新,再進行主機寫入區塊的快閃記憶體轉換層映射表更新,如此可解決資料寫入不同步的問題。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
201、301、401、501‧‧‧第一實體區塊
202、302、402、502‧‧‧第二實體區塊
203、303、403、503‧‧‧第三實體區塊
410、510‧‧‧系統區塊
S601、S603、S605、S607、S609、S611‧‧‧記憶體管理方法的流程步驟
S701、S703、S705、S707、S709、S711‧‧‧記憶體管理方法的流程步驟
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2A至2C是根據本發明一實施例所繪示的記憶體管理方法的示意圖。 圖3A至3C是根據本發明另一實施例所繪示的記憶體管理方法的示意圖。 圖4A至4C是根據本發明另一實施例所繪示的記憶體管理方法的示意圖。 圖5A至5C是根據本發明另一實施例所繪示的記憶體管理方法的示意圖。 圖6是根據本發明一實施例的記憶體管理方法的流程圖。 圖7是根據本發明另一實施例的記憶體管理方法的流程圖。
Claims (20)
- 一種記憶體管理方法,適用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體區塊,每一該些實體區塊包括多個實體程式化單元,該些實體區塊包括一第一實體區塊、一第二實體區塊及一第三實體區塊,該記憶體管理方法包括: 將多個第一資料寫入該第一實體區塊,並儲存對應該第一實體區塊的一第一標記值; 將多個第二資料寫入該第二實體區塊,並儲存對應該第二實體區塊的一第二標記值,其中該第二標記值大於該第一標記值; 將該第一實體區塊的該些第一資料中的多個第三資料搬移到該第三實體區塊,其中該些第三資料為有效資料且該些第三資料符合一特定態樣;以及 儲存對應該第三實體區塊的一第三標記值並將對應該第二實體區塊的該第二標記值更新為一第四標記值,其中該第四標記值大於該第三標記值且該第三標記值大於等於該第二標記值。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 將一第四資料寫入該第二實體區塊;以及 在該可複寫式非揮發性記憶體模組斷電並重新啟動之後,根據該第三標記值及該第四標記值依序更新該些第三資料及該第四資料所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第2項所述的記憶體管理方法,其中根據該第三標記值及該第四標記值依序更新該些第三資料及該第四資料所對應的該快閃記憶體轉換層映射表的步驟包括: 根據該第三標記值及該第四標記值依序更新儲存該些第三資料的該第三實體區塊所對應的快閃記憶體轉換層映射表及儲存該第四資料的該第二實體區塊所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該第一實體區塊中該些第三資料所對應的邏輯頁面在一預定時間內並未被更新,則判斷該些第三資料符合該特定態樣。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一標記值、該第二標記值、該第三標記值及該第四標記值儲存在該些實體區塊的一系統區塊。
- 一種儲存控制器,用於存取一可複寫式非揮發性記憶體模組並經由一連接介面電路耦接至一主機系統,該儲存控制器包括: 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體區塊,每一該些實體區塊包括多個實體程式化單元,該些實體區塊包括一第一實體區塊、一第二實體區塊及一第三實體區塊; 一處理器,耦接至該連接介面電路單元及該記憶體介面控制電路;以及 一資料傳輸管理電路,耦接至該處理器、該連接介面電路單元及該記憶體介面控制電路, 其中該處理器將多個第一資料寫入該第一實體區塊,並儲存對應該第一實體區塊的一第一標記值, 其中該處理器將多個第二資料寫入該第二實體區塊,並儲存對應該第二實體區塊的一第二標記值,其中該第二標記值大於該第一標記值, 其中該處理器將該第一實體區塊的該些第一資料中的多個第三資料搬移到該第三實體區塊,其中該些第三資料為有效資料且該些第三資料符合一特定態樣, 其中該處理器儲存對應該第三實體區塊的一第三標記值並將對應該第二實體區塊的該第二標記值更新為一第四標記值,其中該第四標記值大於該第三標記值且該第三標記值大於等於該第二標記值。
- 如申請專利範圍第6項所述的儲存控制器,其中該處理器將一第四資料寫入該第二實體區塊, 其中在該可複寫式非揮發性記憶體模組斷電並重新啟動之後,該處理器根據該第三標記值及該第四標記值依序更新該些第三資料及該第四資料所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第7項所述的儲存控制器,其中該處理器根據該第三標記值及該第四標記值依序更新儲存該些第三資料的該第三實體區塊所對應的快閃記憶體轉換層映射表及儲存該第四資料的該第二實體區塊所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第6項所述的儲存控制器,其中當該第一實體區塊中該些第三資料所對應的邏輯頁面在一預定時間內並未被更新,則該處理器判斷該些第三資料符合該特定態樣。
- 如申請專利範圍第6項所述的儲存控制器,其中該第一標記值、該第二標記值、該第三標記值及該第四標記值儲存在該些實體區塊的一系統區塊。
- 一種記憶體管理方法,適用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體區塊,每一該些實體區塊包括多個實體程式化單元,該些實體區塊包括一第一實體區塊、一第二實體區塊及一第三實體區塊,該記憶體管理方法包括: 將多個第一資料寫入該第一實體區塊,並儲存對應該些第一資料的一第一標記值; 將多個第二資料寫入該第二實體區塊,並儲存對應該些第二資料的一第二標記值,其中該第二標記值大於該第一標記值; 將該第一實體區塊的該些第一資料中的多個第三資料搬移到該第三實體區塊,其中該些第三資料為有效資料且該些第三資料符合一特定態樣; 儲存對應該些第三資料的一第三標記值,其中該第三標記值大於等於該第二標記值;以及 將一第四資料寫入該第二實體區塊,並儲存對應該第四資料的一第四標記值,其中該第四標記值大於該第三標記值。
- 如申請專利範圍第11項所述的記憶體管理方法,更包括: 在該可複寫式非揮發性記憶體模組斷電並重新啟動之後,根據該第三標記值及該第四標記值依序更新該些第三資料及該第四資料所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第12項所述的記憶體管理方法,其中根據該第三標記值及該第四標記值依序更新該些第三資料及該第四資料所對應的快閃記憶體轉換層映射表的步驟包括: 根據該第三標記值及該第四標記值依序更新儲存該些第三資料的該第三實體區塊所對應的快閃記憶體轉換層映射表及儲存該第四資料的該第二實體區塊所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第11項所述的記憶體管理方法,其中當該第一實體區塊中該些第三資料所對應的邏輯頁面在一預定時間內並未被更新,則判斷該些第三資料符合該特定態樣。
- 如申請專利範圍第11項所述的記憶體管理方法,其中該第一標記值、該第二標記值、該第三標記值及該第四標記值儲存在該些實體區塊的每一該些實體程式化單元所對應的帶外區(Out Of Band,OOB)。
- 一種儲存控制器,用於存取一可複寫式非揮發性記憶體模組並經由一連接介面電路耦接至一主機系統,該儲存控制器包括: 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體區塊,每一該些實體區塊包括多個實體程式化單元,該些實體區塊包括一第一實體區塊、一第二實體區塊及一第三實體區塊; 一處理器,耦接至該連接介面電路單元及該記憶體介面控制電路;以及 一資料傳輸管理電路,耦接至該處理器、該連接介面電路單元及該記憶體介面控制電路, 其中該處理器將多個第一資料寫入該第一實體區塊,並儲存對應該些第一資料的一第一標記值, 其中該處理器將多個第二資料寫入該第二實體區塊,並儲存對應該些第二資料的一第二標記值,其中該第二標記值大於該第一標記值, 其中該處理器將該第一實體區塊的該些第一資料中的多個第三資料搬移到該第三實體區塊,其中該些第三資料為有效資料且該些第三資料符合一特定態樣, 其中該處理器儲存對應該些第三資料的一第三標記值,其中該第三標記值大於等於該第二標記值, 其中該處理器將一第四資料寫入該第二實體區塊,並儲存對應該第四資料的一第四標記值,其中該第四標記值大於該第三標記值。
- 如申請專利範圍第16項所述的儲存控制器,其中在該可複寫式非揮發性記憶體模組斷電並重新啟動之後,該處理器根據該第三標記值及該第四標記值依序更新該些第三資料及該第四資料所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第17項所述的儲存控制器,其中該處理器根據該第三標記值及該第四標記值依序更新儲存該些第三資料的該第三實體區塊所對應的快閃記憶體轉換層映射表及儲存該第四資料的該第二實體區塊所對應的快閃記憶體轉換層映射表。
- 如申請專利範圍第16項所述的儲存控制器,其中當該第一實體區塊中該些第三資料所對應的邏輯頁面在一預定時間內並未被更新,則該處理器判斷該些第三資料符合該特定態樣。
- 如申請專利範圍第16項所述的儲存控制器,其中該第一標記值、該第二標記值、該第三標記值及該第四標記值儲存在該些實體區塊的每一該些實體程式化單元所對應的帶外區。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW105132019A TWI592800B (zh) | 2016-10-04 | 2016-10-04 | 記憶體管理方法及使用所述方法的儲存控制器 |
| US15/361,005 US10120615B2 (en) | 2016-10-04 | 2016-11-24 | Memory management method and storage controller using the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW105132019A TWI592800B (zh) | 2016-10-04 | 2016-10-04 | 記憶體管理方法及使用所述方法的儲存控制器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI592800B TWI592800B (zh) | 2017-07-21 |
| TW201814526A true TW201814526A (zh) | 2018-04-16 |
Family
ID=60048644
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW105132019A TWI592800B (zh) | 2016-10-04 | 2016-10-04 | 記憶體管理方法及使用所述方法的儲存控制器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10120615B2 (zh) |
| TW (1) | TWI592800B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI668570B (zh) * | 2018-08-09 | 2019-08-11 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI681393B (zh) * | 2019-01-07 | 2020-01-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10394654B2 (en) * | 2017-03-31 | 2019-08-27 | Intel Corporation | Method and apparatus for hybrid firmware boot |
| US10109339B1 (en) | 2017-07-28 | 2018-10-23 | Micron Technology, Inc. | Memory devices with selective page-based refresh |
| TWI659304B (zh) * | 2017-10-20 | 2019-05-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
| CN111488122B (zh) * | 2017-10-25 | 2025-01-10 | 华为技术有限公司 | 数据写入方法和存储设备 |
| TWI677790B (zh) | 2017-11-16 | 2019-11-21 | 深圳大心電子科技有限公司 | 有效資料管理方法以及儲存控制器 |
| JP7048289B2 (ja) * | 2017-12-08 | 2022-04-05 | キオクシア株式会社 | 情報処理装置および方法 |
| CN108681509B (zh) * | 2018-04-20 | 2022-04-08 | 江苏华存电子科技有限公司 | 一种快速建立闪存映射表的方法 |
| TWI705329B (zh) * | 2018-06-25 | 2020-09-21 | 慧榮科技股份有限公司 | 實體儲存對照表產生裝置及方法以及電腦程式產品 |
| TWI661302B (zh) * | 2018-06-25 | 2019-06-01 | 慧榮科技股份有限公司 | 實體儲存對照表產生裝置及方法以及電腦程式產品 |
| TWI670599B (zh) * | 2018-08-28 | 2019-09-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
| KR102813197B1 (ko) * | 2019-10-01 | 2025-05-27 | 삼성전자주식회사 | 비휘발성 메모리 장치의 초기화 제어 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
| TWI717171B (zh) * | 2019-12-26 | 2021-01-21 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
| US11494101B2 (en) * | 2020-10-14 | 2022-11-08 | Western Digital Technologies, Inc. | Storage system and method for time-duration-based efficient block management and memory access |
| JP2022134984A (ja) * | 2021-03-04 | 2022-09-15 | キオクシア株式会社 | メモリシステム、コントローラおよびウェアレベリング方法 |
| US11899945B2 (en) | 2021-10-03 | 2024-02-13 | Silicon Motion, Inc. | Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI376600B (en) | 2006-09-28 | 2012-11-11 | Sandisk Corp | Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer |
| US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
| TWI496161B (zh) | 2010-08-06 | 2015-08-11 | Phison Electronics Corp | 記憶體識別碼產生方法、管理方法、控制器與儲存系統 |
| WO2012051600A2 (en) * | 2010-10-15 | 2012-04-19 | Kyquang Son | File system-aware solid-state storage management system |
| US8521948B2 (en) | 2011-01-03 | 2013-08-27 | Apple Inc. | Handling dynamic and static data for a system having non-volatile memory |
| TWI476590B (zh) | 2012-05-31 | 2015-03-11 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
| TWI533308B (zh) | 2014-03-21 | 2016-05-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
-
2016
- 2016-10-04 TW TW105132019A patent/TWI592800B/zh active
- 2016-11-24 US US15/361,005 patent/US10120615B2/en active Active
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI668570B (zh) * | 2018-08-09 | 2019-08-11 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI681393B (zh) * | 2019-01-07 | 2020-01-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| TWI592800B (zh) | 2017-07-21 |
| US20180095698A1 (en) | 2018-04-05 |
| US10120615B2 (en) | 2018-11-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
| TWI679537B (zh) | 資料移動方法及儲存控制器 | |
| TWI670600B (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
| US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
| US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
| TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
| CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
| TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
| TWI607309B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TW201807580A (zh) | 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路 | |
| CN111737165B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
| CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
| TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
| CN114203239B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| TWI766582B (zh) | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
| CN112051971A (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
| TWI813362B (zh) | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN112799601B (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
| TWI724427B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN112988076A (zh) | 快闪存储器控制方法、存储装置及控制器 | |
| TW202211239A (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |