TWI677790B - 有效資料管理方法以及儲存控制器 - Google Patents
有效資料管理方法以及儲存控制器 Download PDFInfo
- Publication number
- TWI677790B TWI677790B TW106139783A TW106139783A TWI677790B TW I677790 B TWI677790 B TW I677790B TW 106139783 A TW106139783 A TW 106139783A TW 106139783 A TW106139783 A TW 106139783A TW I677790 B TWI677790 B TW I677790B
- Authority
- TW
- Taiwan
- Prior art keywords
- valid
- target
- logical
- physical
- valid data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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
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)
- Quality & Reliability (AREA)
- Memory System (AREA)
Abstract
一種有效資料管理方法與儲存控制器。所述方法包括根據邏輯轉實體表與對應所述目標實體單元的目標實體轉邏輯表建立對應所述目標實體單元的有效資料標記表與有效邏輯位址表,其中所述有效資料標記表記錄分別對應多個目標邏輯位址的多個標記值,其分別指示所對應的目標邏輯位址是有效或無效,並且所述有效邏輯位址表僅根據所述有效資料標記表的一或多個第一位元值的順序記錄一或多個有效目標邏輯位址;以及根據所述邏輯轉實體表、對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表來辨識所述目標實體單元的一或多個有效資料。
Description
本發明是有關於一種有效資料管理方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的有效資料管理方法與儲存控制器。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,配置有可複寫式非揮發性記憶體模組的儲存裝置的儲存控制器會維持邏輯轉實體表(Logical to physical table,L2P table),以監視整個邏輯單元與實體單元的映射狀態。此外,儲存控制器可交叉查找實體轉邏輯表與邏輯轉實體表來辨識出儲存在實體單元中的有效資料。
假設一實體單元的實體轉邏輯表所記錄的一邏輯位址對應至一實體位址。在儲存裝置運行的過程中,儲存在該邏輯位址的資料可能會儲存至另一實體位址,進而導致該實體位址所儲存的資料成為無效資料且該邏輯位址成為無效的邏輯位址。為了辨識一實體單元中的有效資料。傳統上會根據該實體單元的該實體轉邏輯表與該邏輯轉實體表交叉查找是否存在有不相符的實體位址,並且判定該實體轉邏輯表的所述不相符的實體位址儲存無效資料且對應的邏輯位址是無效的,進而也辨識出該實體單元所以儲存的有效資料及其位置(所述有效資料的位址即為經由交叉值找後,所獲得的相符的實體位址)。
然而,由於上述過程會讀取該實體轉邏輯表的所有條目。在所有條目可能包含無效資料的情況下,若儲存控制器欲辨識儲存在實體單元的有效資料,儲存控制器會耗費額外的時間讀取無效的條目(即,讀取對應儲存無效資料的實體位址的條目),造成了資源(如,系統的運算資源)的浪費。
因此,如何用更先進的方式來管理且辨識出實體單元中所儲存的有效資料,以避免浪費空間資源或避免浪費運算資源,進而提昇儲存裝置運作效率,為此領域技術人員所關心的議題。
本發明提供一種有效資料管理方法與儲存控制器,可根據所述邏輯轉實體表、對應所述目標實體單元的有效資料標記表與有效邏輯位址表來快速地辨識儲存在所述目標實體單元的一或多個有效資料,以增進對於有效資料的管理效率,進而加強儲存裝置整體的工作效率。
本發明的一實施例提供一種有效資料管理方法,適用於配置有可複寫式非揮發性記憶體模組的儲存裝置,其中所述可複寫式非揮發性記憶體模組具有多個實體單元,並且所述多個實體單元的每一個實體單元包括多個實體子單元。所述方法包括根據所述多個實體單元中的目標實體單元、對應所述可複寫式非揮發性記憶體模組的邏輯轉實體表與對應所述目標實體單元的目標實體轉邏輯表建立對應所述目標實體單元的有效資料標記表與有效邏輯位址表,其中所述目標實體轉邏輯表根據所述目標實體單元的多個目標實體子單元的排列順序記錄所述多個目標實體子單元所映射的多個目標邏輯子單元的目標邏輯位址,並且所述多個目標邏輯位址分別對應所述多個目標實體子單元的多個目標實體位址,其中所述有效資料標記表記錄分別對應所述多個目標邏輯位址的多個標記值,其中所述多個標記值的每一個標記值為第一位元值或第二位元值,其中所述第一位元值用以指示所對應的目標邏輯位址是有效,並且所述第二位元值用以指示所對應的目標邏輯位址是無效。此外,所建立的僅根據所述有效資料標記表的一或多個第一位元值的順序記錄分別對應所述一或多個第一位元值的一或多個有效目標邏輯位址,其中所述一或多個有效目標邏輯位址為所述多個目標邏輯位址中被判定為有效的目標邏輯位址,其中所述有效資料標記表小於所述有效邏輯位址表,並且所述有效邏輯位址表小於所述目標實體轉邏輯表;以及根據所述邏輯轉實體表、對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表來辨識儲存在所述目標實體單元的一或多個有效資料。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器,其中所述可複寫式非揮發性記憶體模組具有多個實體單元,其中所述可複寫式非揮發性記憶體模組具有多個實體單元,並且所述多個實體單元的每一個實體單元包括多個實體子單元。所述儲存控制器包括記憶體介面控制電路與處理器。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組。處理器耦接至所述記憶體介面控制電路。所述處理器用以根據所述多個實體單元中的目標實體單元、對應所述可複寫式非揮發性記憶體模組的邏輯轉實體表與對應所述目標實體單元的目標實體轉邏輯表建立對應所述目標實體單元的有效資料標記表與有效邏輯位址表,其中所述目標實體轉邏輯表根據所述目標實體單元的多個目標實體子單元的排列順序記錄所述多個目標實體子單元所映射的多個目標邏輯子單元的目標邏輯位址,並且所述多個目標邏輯位址分別對應所述多個目標實體子單元的多個目標實體位址,其中所述有效資料標記表記錄分別對應所述多個目標邏輯位址的多個標記值,其中所述多個標記值的每一個標記值為第一位元值或第二位元值,其中所述第一位元值用以指示所對應的目標邏輯位址是有效,並且所述第二位元值用以指示所對應的目標邏輯位址是無效,其中所述有效邏輯位址表僅根據所述有效資料標記表的一或多個第一位元值的順序記錄分別對應所述一或多個第一位元值的一或多個有效目標邏輯位址,其中所述一或多個有效目標邏輯位址為所述多個目標邏輯位址中被判定為有效的目標邏輯位址,其中所述有效資料標記表小於所述有效邏輯位址表,並且所述有效邏輯位址表小於所述目標實體轉邏輯表。所述處理器更用以根據所述邏輯轉實體表、對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表來辨識儲存在所述目標實體單元的一或多個有效資料。
基於上述,本發明實施例所提供的有效資料管理方法以及儲存控制器,可經由邏輯轉實體表與對應目標實體單元的實體轉邏輯表建立較所述實體轉邏輯表小的有效資料標記表與有效邏輯位址表,並且將所述有效資料標記表與有效邏輯位址表分別維護於較高速且容量較小的靜態隨機存取記憶體及較低速且容量較大的動態隨機存取記憶體中。如此一來,可快速地查找對應目標實體單元的有效資料標記表,且經由有效邏輯位址表與邏輯轉實體表來辨識儲存在所述目標實體單元的一或多個有效資料,以增進對於有效資料的辨識效率,進而加強儲存裝置整體的工作效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(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、靜態隨機存取記憶體(Static Random Access Memory,SRAM)214、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)215。
在本實施例中,主機系統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所執行的指令或資料。
儲存控制器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中專用於存放系統資料的實體儲存單元中。
在本實施例中,儲存控制器220各部件所執行的操作亦可視為儲存控制器220所執行的操作。
其中,資料管理電路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可執行寫入指令序列(或處理器211指示資料管理電路212發送寫入指令序列至記憶體介面控制電路213),以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中的一或多個實體位址(亦稱,目標實體位址);處理器211可執行讀取指令序列(或處理器211指示資料管理電路212發送讀取指令序列至記憶體介面控制電路213),以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體位址(亦稱,目標實體位址)中讀取資料;處理器211可執行抹除指令序列(或處理器211指示資料管理電路212發送抹除指令序列至記憶體介面控制電路213),以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(如,垃圾回收操作、損耗平衡操作等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在本實施例中,靜態隨機存取記憶體214(亦稱,第一記憶體)與動態隨機存取記憶體215(亦稱,第二記憶體)耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從靜態隨機存取記憶體214或動態隨機存取記憶體215中存取所述資料、指令或系統資料。其中,靜態隨機存取記憶體214的速度快於動態隨機存取記憶體215,靜態隨機存取記憶體214的硬體成本高於動態隨機存取記憶體215,並且靜態隨機存取記憶體214的容量小於動態隨機存取記憶體215。也就是說,雖然第一記憶體214可儲存的資料較少,但是處理器211存取儲存在第一記憶體214中的資料的速度(存取速度)會高於存取儲存在第二記憶體215中的資料的速度。處理器211可將一些小的系統資料維護於第一記憶體214中,以加速整體儲存控制器的管理效率。本發明並不限定第一記憶體214、第二記憶體的種類,但會限定於上述本發明所揭露的第一記憶體214與第二記憶體215的至少一特徵-存取速度的相對關係。例如,在另一實施例中,第一記憶體214可為存取速度高於第二記憶體215的其他種類的記憶體。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220的多個記憶胞會構成多個實體程式化單元(亦稱,實體子單元),並且此些實體程式化單元會構成多個實體區塊(亦稱,實體抹除單元或實體單元)。具體來說,同一條字元線(或同一個字元線層)上的記憶胞會組成一或多個實體程式化單元。處理器211會分別配置多個實體位址給所述多個實體子單元。
在以下實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。此外,實體單元為實體區塊,實體子單元為實體頁面,並且每個實體位址用以指代對應的實體頁面的位址。
應注意的是,在本實施例中,用以記錄一實體單元的資訊的系統資料可稱為實體單元資訊,並且其可利用該實體單元中的一或多個實體子單元來記錄,或是利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個實體子單元來記錄。在本實施例中,所述實體單元資訊包括該實體單元的抹除次數值(Program erase cycle,PEC)、時間戳記(Timestamp)、讀取次數值(Read counter value)、實體單元索引碼(Physical Unit Index)等資訊。更詳細來說,每當處理器211對一實體單元進行抹除操作時,在完成所述抹除操作後,處理器211會對當前對應該實體單元的抹除次數值加1(如,抹除次數值會隨著每次的抹除操作而從0開始累加)。即,抹除次數值可反映出其所對應的實體單元的被抹除的次數的總和。所述時間戳記用以指示對應的實體單元儲存其中的第一筆資料的時間。時間戳記的大小(數值差異)可用來表示時間的先後順序。本發明並不限定所述時間戳記的詳細格式。所述讀取次數值用以統計對應的實體單元被讀取的總次數。所述實體單元索引碼用以代表對應的實體單元的獨特的識別碼,處理器211可根據實體單元索引碼來辨識其所對應的實體單元以及相關的資料。在本實施例中,對應一實體單元的系統資料更包括對應該實體單元的實體轉邏輯表。以下會藉由圖6來說明對應實體單元的實體轉邏輯表。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。
此外,儲存控制器210會建立邏輯轉實體位址射表(Logical To Physical address mapping table,L2P mapping table)(亦稱,邏輯轉實體表,L2P table)與分別對應多個實體單元的實體轉邏輯位址映射表(Physical To Logical address mapping table)(亦稱,實體轉邏輯表,P2L table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體表來查找邏輯位址所映射的實體位址,並且儲存控制器210可藉由實體轉邏輯表來查找實體位址所映射的邏輯位址。然而,上述有關邏輯位址與實體位址映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在一實施例中,儲存控制器210還包括電源管理電路。電源管理電路是耦接至處理器211並且用以控制儲存裝置20的電源。
圖2是根據本發明的一實施例所繪示的有效資料管理方法的流程圖。請參照圖2,在步驟S21中,處理器211根據所述多個實體單元中的目標實體單元、對應所述可複寫式非揮發性記憶體模組的邏輯轉實體表與對應所述目標實體單元的目標實體轉邏輯表建立對應所述目標實體單元的有效資料標記表與有效邏輯位址表,其中所述目標實體轉邏輯表根據所述目標實體單元的多個目標實體子單元的排列順序記錄所述多個目標實體子單元所映射的多個目標邏輯子單元的目標邏輯位址,其中所建立的所述有效資料標記表記錄分別對應所述多個目標邏輯位址的多個標記值,其中所建立的所述有效邏輯位址表僅根據所述有效資料標記表的一或多個第一位元值的順序記錄分別對應所述一或多個第一位元值的一或多個有效目標邏輯位址。
更具體來說,所述目標實體轉邏輯表根據所述目標實體單元的多個目標實體子單元的排列順序記錄所述多個目標實體子單元所映射的多個目標邏輯子單元的目標邏輯位址,並且所述多個目標邏輯位址分別對應所述多個目標實體子單元的多個目標實體位址。所述多個標記值(Mark value)的每一個標記值為第一位元值(如,“1”)或第二位元值(如,“0”),其中所述第一位元值用以指示所對應的目標邏輯位址是有效(Valid),並且所述第二位元值用以指示所對應的目標邏輯位址是無效(Invalid)。所述一或多個有效目標邏輯位址為所述多個目標邏輯位址中被判定為有效的目標邏輯位址,其中所述有效資料標記表(的大小)小於所述有效邏輯位址表,並且所述有效邏輯位址表(的大小)小於所述目標實體轉邏輯表。
在本實施例中,處理器211可根據預定規則來從可複寫式非揮發性記憶體模組220的所有實體單元中選擇一個實體單作為目標實體單元,以進行建立對應所述目標實體單元的有效資料標記表與有效邏輯位址表的操作。例如,所述預定規則可為(1)當儲存裝置閒置時,選擇有效資料數較少的實體單元作為目標實體單元;(2)在儲存裝置開機時,依序從可複寫式非揮發性記憶體模組220的所有實體單元中選擇實體單元做為目標實體單元。本發明並不限定預設規則的設定。
值得一提的是,在本實施例中,處理器211會即時地記錄所述多個實體單元的每一個實體單元中用以儲存有效資料的一或多個有效實體子單元的數目為對應所述每一個實體單元的有效資料數於靜態隨機存取記憶體214或動態隨機存取記憶體215中。也就是說,處理器211會即時地監控每個實體單元所儲存的有效資料的大小,並且將之作為其所對應的實體單元的有效資料數(亦為一種對應實體單元的系統資料)。
在本實施例中,對於所選擇的目標實體單元,處理器211還會先根據是否已存在對應目標實體單元的有效資料標記表,再根據有效資料數來判斷是否要建立(或再次建立/重新建立)對應所述目標實體單元的有效資料標記表與有效邏輯位址表。
圖3為根據本發明的一實施例所繪示的圖2中的步驟S21的流程圖。請參照圖3,在步驟S211中,處理器211判斷對應所述目標實體單元之所述有效資料標記表與所述有效邏輯位址表是否存在。具體來說,處理器211會先查找可複寫式非揮發性記憶體模組220或靜態隨機存取記憶體214中是否已儲存對應所述目標實體單元的有效資料標記表。
若可複寫式非揮發性記憶體模組220或靜態隨機存取記憶體214中皆未儲存對應所述目標實體單元的有效資料標記表,接續至步驟S213,處理器211判斷所述目標實體單元的有效資料數是否小於第一門檻值。若所述目標實體單元的有效資料數沒有小於第一門檻值。處理器211不建立對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表,結束對於所述目標實體單元的步驟S21,並且處理器211可選擇另一實體單元作為目標實體單元,並且重新執行步驟S21。
在步驟S211中,若判定可複寫式非揮發性記憶體模組220或靜態隨機存取記憶體214中儲存對應所述目標實體單元的有效資料標記表,接續至步驟S217,處理器211判斷所述目標實體單元的有效資料數是否小於第二門檻值,其中所述第二門檻值小於所述第一門檻值。值得一提的是,由於在使用的過程中,儲存多個有效資料的實體單元會因為主機系統對於儲存裝置的存取,而使得部份的有效資料會成為無效資料,但無效資料並不會成為有效資料。也就是說,每個儲存多筆有效資料的實體單元,其對應的有效資料數會隨著儲存裝置的使用而逐漸減少。基此,在本實施例中,由於已存在有有效資料標記表且,如步驟S213所述,有效資料表起先是因為有效資料數小於第一門檻值而被建立。因此,在有效資料數會逐漸減少的情況下,所述第二門檻值會被設定小於所述第一門檻值,以進一步地當實體單元的有效資料數變得更小時來更新(重新建立)對應該實體單元的有效資料標記表與有效邏輯位址表。若在步驟S217中處理器211判定所述目標實體單元的有效資料數沒有小於第二門檻值。處理器211不建立對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表,結束對於所述目標實體單元的步驟S21,並且處理器211可選擇另一實體單元作為目標實體單元,並且重新執行步驟S21。值得一提的是,完成建立的有效資料標記表與有效邏輯位址表會被寫入至可複寫式非揮發性記憶體模組220中的系統實體單元(System physical unit),並且儲存在靜態隨機存取記憶體214與動態隨機存取記憶體215的有效資料標記表與有效邏輯位址表會被刪除。所述系統實體單元為可複寫式非揮發性記憶體模組220的一或多個特定的實體單元,其用以儲存每個實體單元的有效資料標記表與有效邏輯位址表或用以儲存每個實體單元的實體轉邏輯表。在本實施例中,當對目標實體單元建立有效資料標記表與有效邏輯位址表時、或是目標實體單元為開放實體單元(Open Physical Unit)時,目標實體單元的目標實體轉邏輯表才會被維護於動態隨機存取記憶體215中。當目標實體單元的有效資料標記表與有效邏輯位址表已完成建立時、或是目標實體單元成為關閉實體單元(Close Physical Unit)時,目標實體單元的目標實體轉邏輯表會被寫入至可複寫式非揮發性記憶體模組220且從動態隨機存取記憶體215中被刪除。
應注意的是,處理器211可根據系統負載來動態地設定所述第一門檻值與第二門檻值。所述系統負載包括實體單元使用狀態與主機存取狀態。舉例來說,實體單元使用狀態例如是用以指示實體單元被存取的次數(或頻率)。當對應一實體單元的實體單元使用狀態越高,則對應該實體單元的第一門檻值與第二門檻值可被設定為相較於預設的值低的值。又例如,主機存取狀態例如是用以指示主機系統10存取儲存裝置20的次數(或頻率)。當對應一實體單元的主機存取狀態越高,則對應該實體單元的第一門檻值與第二門檻值可被設定為相較於預設的值低的值。應注意的是,在一實施例中,若一實體區塊的有效資料數小於一第三門檻值,則處理器211會指示對此實體區塊進行垃圾回收操作或資料合併操作。所述第三門檻值小於第二門檻值。
若在步驟S213中處理器211判定所述目標實體單元的有效資料數小於第一門檻值或是在步驟S217中處理器211判定所述目標實體單元的有效資料數小於第二門檻值,處理器211會接續執行步驟S215。在步驟S215中,處理器211根據所述邏輯轉實體表與對應所述目標實體單元的所述目標實體轉邏輯表建立所述有效資料標記表與所述有效邏輯位址表。以下會藉由圖4、圖6、圖7A、7B來詳細說明建立所述有效資料標記表與所述有效邏輯位址表的方法。
圖4為根據本發明的一實施例所繪示的圖3中的步驟S215的流程圖。圖6為根據本發明的一實施例所繪示的邏輯轉實體表與實體轉邏輯表的示意圖。
請參照圖6,舉例來說,假設可複寫式非揮發性記憶體模組220具有32個實體單元,並且每個實體單元具有4個實體子單元。也就是說,可複寫式非揮發性記憶體模組220具有128個可映射至所有邏輯子單元的實體子單元。對應可複寫式非揮發性記憶體模組220的邏輯轉實體表L2P_0根據所述多個邏輯子單元的多個邏輯位址LBA(1)~LBA(128)的排列順序,依序記錄了映射至所述多個邏輯子單元的多個實體子單元的多個實體位址的資訊(值)(如, “A_1”、“A_2”、“B_1”、“A_4”、Py、Pz)。此外,假設對應實體單元A(亦稱,目標實體單元A)的實體轉邏輯表P2L_A根據目標實體單元A的多個實體子單元(亦稱,目標實體子單元)的排列順序,即,實體位址(亦稱,目標實體位址)PBA(A_1)、PBA(A_2)、PBA(A_3)、PBA(A_4)的順序記錄所述多個目標實體子單元所映射的多個邏輯子單元(亦稱,目標邏輯子單元)的多個邏輯位址(亦稱,目標邏輯位址)LBA(1)~LBA(4)的資訊(值)(即,“001”、“002”、“003”、“004”)。換句話說,經由實體轉邏輯表P2L_A,處理器211可知道目標實體位址PBA(A_1)、PBA(A_2)、PBA(A_3)、PBA(A_4)對應至目標邏輯位址LBA(1)、LBA(2)、LBA(3)、LBA(4)。換言之,實體轉邏輯表P2L_A所記載的資訊用以指示當前儲存在目標實體位址PBA(A_1)、PBA(A_2)、PBA(A_3)、PBA(A_4)的資料應儲存於主機系統10可見的目標邏輯位址LBA(1)、LBA(2)、LBA(3)、LBA(4)。
請同時參照圖4與圖6,在步驟S2150中,處理器211辨識所述目標實體轉邏輯表所記錄的多個目標邏輯位址。舉例來說,根據上述的例子,處理器211可辨識目標實體轉邏輯表P2L_A所記錄的目標邏輯位址LBA(1)、LBA(2)、LBA(3)、LBA(4)且分別讀取其中的資訊(如,“001”、“002”、“003”、“004”)。接著,在步驟S2151中,處理器211判斷所述多個目標邏輯位址LBA(1)、LBA(2)、LBA(3)、LBA(4)中是否具有尚未被選擇的一或多個目標邏輯位址。具體來說,在本實施例中,處理器211會從所有還沒有被選擇的目標邏輯位址中選擇一個目標邏輯位址,以進行有效資料標記表與有效邏輯位址表的建立。假設一開始目標邏輯位址LBA(1)、LBA(2)、LBA(3)、LBA(4)皆尚未被選擇,在步驟S2151中,處理器211會判定具有尚未被選擇的一或多個目標邏輯位址,並且接續至步驟S2152。
在步驟S2152中,處理器211從所述尚未被選擇的一或多個目標邏輯位址中根據預定順序來選擇對應第一目標實體子單元的第一目標邏輯位址,並且辨識所述第一目標實體子單元的第一目標實體位址。具體來說,在本實施例中,所述預定順序為:處理器211會依照目標邏輯位址LBA(1)、LBA(2)、LBA(3)、LBA(4)的排列順序從第一個尚未被選擇的目標邏輯位址(即,目標邏輯位址LBA(1))開始選擇。所述第一目標邏輯位址LBA(1)對應至目標實體單元A的第一目標實體子單元,並且處理器可辨識對應第一目標實體子單元的實體位址為目標實體位址(亦稱,第一目標實體位址)PBA(A_1),其值為“A_1”。即,處理器211可根據實體轉邏輯表P2L_A辨識出對應第一目標邏輯位址LBA(1)的第一目標實體位址PBA(A_1)。
接著,接續至步驟2153,處理器211根據所述第一目標邏輯位址從所述邏輯轉實體表所記錄的多個實體位址中查找第一實體位址。具體來說,處理器211可從邏輯轉實體表L2P_0中查找到對應第一目標邏輯位址LBA(1)的實體位址(亦稱,第一實體位址)的值為“A_1”。
從邏輯轉實體表L2P_0中查找到對應第一目標邏輯位址LBA(1)的第一實體位址後,接續至步驟S2154。在步驟S2154中,處理器211判斷所述第一實體位址是否等於所述第一目標實體位址。在此例子中,處理器211判定第一實體位址等於所述第一目標實體位址(即,“A_1”= “A_1”)。
若判定第一實體位址等於所述第一目標實體位址,接續至步驟S2155。在步驟S2155中,處理器211判定所述第一目標邏輯位址是有效,將所述有效資料標記表中對應所述第一目標邏輯位址的第一標記值記錄為所述第一位元值,附加所述第一目標邏輯位址至所述有效邏輯位址表。
圖7A為根據本發明的一實施例所繪示的有效資料標記表的示意圖。圖7B為根據本發明的一實施例所繪示的有效邏輯位址表的示意圖。請參照圖7A、7B,在上述的例子中,處理器211判定儲存在第一目標邏輯位址LBA(1)的資料是有效資料,並且判定實體轉邏輯表P2L_A所記錄的第一目標邏輯位址LBA(1)是有效的。接著,處理器211會在維護於靜態隨機存取記憶體214的對應目標實體單元A的有效資料標記表VD_A中的對應第一目標邏輯位址LBA(1)(也映射至第一實體位址PBA(A_1))的標記值記錄為“1”。 接著,處理器211會附加第一目標邏輯位址LBA(1)至維護於動態隨機存取記憶體215的對應目標實體單元A的有效邏輯位址表VLBA_A中,即,有效邏輯位址表VLBA_A所記錄的“001”。
接著,整體流程再回到步驟S2151。依此類推,處理器211會選擇邏輯位址LBA(2)作為新的第一目標邏輯位址LBA(2)。接著,處理器211會判定實體轉邏輯表P2L_A所記錄的目標邏輯位址LBA(2)是有效的,將有效資料標記表對應目標邏輯位址LBA(2)(或對應目標實體位址PBA(A_2))的標記值記錄為“1”,並且附加目標邏輯位址LBA(2)至有效邏輯位址表VLBA_A。應注意的是,所述目標邏輯位址LBA(2)的值“002”會排序在目標邏輯位址LBA(1)的值“001”之後。
接著,整體流程再回到步驟S2151。依此類推,處理器211會選擇邏輯位址LBA(3)作為新的第一目標邏輯位址LBA(3)。然而,根據邏輯轉實體表L2P_0,邏輯轉實體表L2P_0所記錄的對應邏輯位址LBA(3)的實體位址為 “B_1”,即,實體單元B的第一個實體子單元的實體位址PBA(B_1)(可知道,實體單元B的實體轉邏輯表P2L_B所記錄的邏輯位址LBA(3)是有效的)。故,在步驟S2154中,處理器211會判定邏輯轉實體表L2P_0中的所記錄的對應第一目標邏輯位址LBA(3)的第一實體位址不同於實體轉邏輯表P2L_A中的所記錄的第一目標邏輯位址LBA(3)所對應的第一目標實體位址PBA(A_3)(即,“B_1”≠“A_3”)。接續至步驟S2156,處理器211判定所述第一目標邏輯位址是無效,將所述有效資料標記表中對應所述第一目標邏輯位址的所述第一標記值記錄為所述第二位元值,不附加所述第一目標邏輯位址至所述有效邏輯位址表。具體來說,處理器211判定儲存在第一目標邏輯位址LBA(3)的資料是無效資料,並且判定實體轉邏輯表P2L_A中所記錄的第一目標邏輯位址LBA(3)是無效的。接著,處理器211會在有效資料標記表VD_A中的對應第一目標邏輯位址LBA(3)(也映射至第一實體位址PBA(A_3))的標記值記錄為“0”。應注意的是,處理器211不會附加第一目標邏輯位址LBA(3)至有效邏輯位址表VLBA_A中,即,有效邏輯位址表VLBA_A不會記錄無效的目標邏輯位址。
接著,整體流程再回到步驟S2151。依此類推,處理器211會將有效資料標記表對應目標邏輯位址LBA(4)(或對應目標實體位址PBA(A_4))的標記值記錄為“1”,並且附加目標邏輯位址LBA(4)至有效邏輯位址表VLBA_A。應注意的是,所述目標邏輯位址LBA(4)的值“004”會排序在目標邏輯位址LBA(2)的值“002”之後。此外,目標邏輯位址LBA(4)的值“004”與目標邏輯位址LBA(2)的值“002”之間並不存在無效的目標邏輯位址LBA(3)的值“003”。
接著,整體流程再回到步驟S2151。由於處理器211判定所有目標邏輯位址皆已被選擇(所述多個目標邏輯位址中不具有尚未被選擇的一或多個目標邏輯位址),接續至步驟S2157,處理器211從所述動態隨機存取記憶體215中刪除所述目標實體轉邏輯表P2L_A。最後,結束整個步驟S215的流程。
請再回到圖2,在完成對應目標實體單元的有效資料標記表與有效邏輯位址表的建立後,在步驟SS23中,處理器211根據所述邏輯轉實體表、對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表來辨識儲存在所述目標實體單元的一或多個有效資料。具體來說,在許多處理器211所執行的記憶體觀禮操作中(如,執行垃圾回收操作、抹除平衡操作、資料合併操作),處理器211會需要去辨識儲存在目標實體單元的有效資料。以下會配合圖5來詳細說明步驟S23的流程。
圖5為根據本發明的一實施例所繪示的圖2中的步驟S23的流程圖。請參照圖5,在步驟S231中,處理器211辨識所述有效資料標記表的所述多個標記值中為所述第一位元值的一或多個有效資料標記值。舉例來說,接續上述的例子,假設處理器211欲辨識儲存在目標實體單元A的有效資料。處理器211會先查找維護於靜態隨機存取記憶體214中的對應目標實體單元A的有效資料標記表VD_A的所有標記值,以辨識所述多個標記值中為所述第一位元值(即,“1”)的一或多個標記值(亦稱,有效資料標記值)。值得一提的是,當目標實體單 元A的有效資料數減至0時,即,有效資料標記表VD_A的所有標記值中皆不為所述第一位元值(即,有效資料標記表VD_A的所有標記值皆為第二位元值),處理器會判定所述目標實體單元沒有儲存任何有效資料,並且處理器211不會對有效資料數為0的實體單元建立有效資料標記表與有效邏輯位址表。
若處理器211查找到至少一個為所述第一位元值的有效資料標記值(即,判定所述有效資料標記表的所述多個標記值中具有為所述第一位元值的一或多個有效資料標記值),接續至步驟S232,處理器211僅判斷所述一或多個有效資料標記值中是否具有尚未被選擇的所述一或多個第一有效資料標記值。
具體來說,處理器211僅會在所判定的一或多個有效資料標記值中來選擇其中一個尚未被選擇過的有效資料標記值,以進行後續判斷對應被選擇之有效資料標記值的有效資料的操作。換句話說,此時,處理器211不再會存取為第二位元值的標記值。
舉例來說,接續上述的例子,有效資料標記表VD_A具有分別對應目標邏輯位址LBA(1)、LBA(2)、LBA(4)的三個有效資料標記值。一開始,分別對應目標邏輯位址LBA(1)、LBA(2)、LBA(4)的所述三個有效資料標記值皆尚未被選擇(即,處理器211判定所述一或多個有效資料標記值中具有尚未被選擇的所述一或多個第一有效資料標記值)。基此,處理器211會接續執行步驟S233。反之,若判定所述一或多個有效資料標記值中不具有尚未被選擇的所述一或多個第一有效資料標記值(所有第一有效資料標記值皆已被選擇過),處理器211結束步驟S23的整個流程。
在步驟S233中,處理器211從所述一或多個第一有效資料標記值中根據預定順序來選擇對應第二目標實體子單元的第二有效資料標記值,並且辨識所述第二目標實體子單元的第二目標實體位址。在本實施例中,所述預定順序為:處理器211會依照分別對應目標邏輯位址LBA(1)、LBA(2)、LBA(4)的排列順序從第一個尚未被選擇的有效資料標記值(即,對應目標邏輯位址LBA(1)的有效資料標記值)開始選擇。所述對應目標邏輯位址LBA(1)的有效標記值(亦稱,的二有效資料標記值)對應至第二目標實體子單元(即,實體位址為 “A_1”的目標實體子單元),並且處理器211可辨識對應第二目標實體子單元的實體位址為目標實體位址(亦稱,第二目標實體位址)PBA(A_1),其值為“A_1”。
接著,在步驟S234中,處理器211根據所述第二有效資料標記值於所述一或多個有效資料標記值中的排序來從所述有效邏輯位址表查找對應所述第二有效資料標記值的有效邏輯位址。具體來說,當從有效資料標記表中選擇了有效資料標記值後,處理器211會從對應的有效邏輯位址表中查找對應所選擇的有效資料標記值的有效邏輯位址。如上述建立有效邏輯位址表的方式,可知道,有效邏輯位址表中的多個有效邏輯位址的排列順序會符合有效資料標記表中的多個有效資料標記值(如,多個第一位元值)的排列順序。
舉例來說,由於有效資料標記表VD_A的所選擇的有效標記值“001”排列在所有有效標記值中的第一個。因此,有效邏輯位址表中對應有效標記值“001”的有效邏輯位址會排列在所有有效邏輯位址中的第一個,即,有效邏輯位址LBA(1)“001”。
在查找到對應第二有效資料標記值的有效邏輯位址後,在步驟S235中,處理器211根據對應所述第二有效資料標記值的所述有效邏輯位址從所述邏輯轉實體表所記錄的多個實體位址查找第二實體位址。舉例來說,處理器211會根據有效邏輯位址LBA(1)“001”從邏輯轉實體表L2P_0所記錄的多個實體位址中查找到對應的實體位址(亦稱,第二實體位址)為“A_1”。
接著,在步驟S236中,處理器211判斷所述第二實體位址是否等於所述第二目標實體位址。若所述第二實體位址等於所述第二目標實體位址,在步驟S237中,處理器211判定儲存在所述第二目標實體子單元的資料為有效資料。。若所述第二實體位址不等於所述第二目標實體位址,處理器211判定儲存在所述第二目標實體子單元的資料為無效資料。
舉例來說,接續上述的例子,處理器211會判定上述所查找到的第二實體位址等於第二目標實體位址(即,“A_1”=“A_1”)。接著,處理器211會判定儲存在第二目標實體子單元中的資料為有效資料。依此類推,處理器211可根據所有有效標記值來辨識所有可能儲存在目標實體單元A中的有效資料。此外,處理器211可根據邏輯轉實體表L2P_0、對應目標實體單元A的有效資料標記表VD_A與有效邏輯位址表來辨識出儲存在目標實體單元A中的所有有效資料的實體位址為實體位址PBA(A_1)、PBA(A_2)、PBA(A_4)。
除了可以利用有效資料標記表與有效邏輯位址表來辨識出儲存在目標實體單元中的所有有效資料之外,有效資料標記表與有效邏輯位址表也可用來恢復邏輯轉實體表。
在本實施例中,維護於動態隨機存取記憶體215的邏輯轉實體表、一或多個實體轉邏輯表、一或多個有效邏輯位址表可在特定條件下被儲存(備份)至可複寫式非揮發性記憶體模組220。此外,維護於靜態隨機存取記憶體214的有效資料標記表也可在特定條件下被儲存(備份)至可複寫式非揮發性記憶體模組220。在備份上述表單時,處理器211會一起各自記錄備份上述表單的時間成為對應所備份之表單的時間戳記,並且將對應該表單的時間戳記附加於該表單。如此一來,處理器211可藉由可複寫式非揮發性記憶體模組220中的多個表單各自所具有的時間戳記來辨識所述多個表單之間的新舊(備份的時間先後)。此外,每個實體單元的資訊也包括對應每個實體單元的時間戳記,以讓處理器211可藉此辨識多個實體單元與上述多個表單之間的時間先後關係。
在一些特殊的條件下,例如,在突然斷電後,儲存在靜態隨機存取記憶體214或動態隨機存取記憶體215的系統資料會丟失。為了恢復此些系統資料,如,邏輯轉實體表,處理器211會在儲存裝置開電後,執行恢復操作以恢復所述邏輯轉實體表,其中所述恢復操作的步驟包括下列步驟(1)至步驟(8)。
步驟(1):從所述可複寫式非揮發性記憶體模組220讀取有效的第一邏輯轉實體表,並且儲存所述第一邏輯轉實體表於所述動態隨機存取記憶體中。所述有效的第一邏輯轉實體表為儲存在可複寫式非揮發性記憶體模組220的多個邏輯轉實體表中的最新者(時間最晚者/時間戳記最大者)。具體來說,處理器211會從可複寫式非揮發性記憶體模組220讀取最新的第一邏輯轉實體表,並將之儲存於動態隨機存取記憶體215中,以利後續的恢復操作/管理操作。
步驟(2):辨識較所述第一邏輯轉實體表新的第一實體單元。接著,處理器211會從可複寫式非揮發性記憶體模組220的多個實體單元中辨識時間戳記大於第一邏輯轉實體表的時間戳記的一或多個實體單元(即,比第一邏輯轉實體表新的實體單元),並且從中選擇一個實體單元作為第一實體單元,以開始進行後續的恢復操作。
步驟(3):從所述可複寫式非揮發性記憶體模組的所述多個有效資料標記表中讀取對應所述第一實體單元的一第一有效資料標記表,並且儲存所述第一有效資料標記表於所述靜態隨機存取記憶體中。具體來說,在辨識出較第一邏輯轉實體表新的第一實體單元後,處理器211會從可複寫式非揮發性記憶體模組220中讀取對應第一實體單元的有效資料標記表(亦稱,第一有效資料標記表),並且將之儲存於靜態隨機存取記憶體214中。
步驟(4)從儲存於從所述多個有效邏輯位址表中讀取對應所述第一實體單元的一第一有效邏輯位址表,並且儲存所述第一有效邏輯位址表於所述動態隨機存取記憶體中。具體來說,在辨識出較第一邏輯轉實體表新的第一實體單元後,處理器211會從可複寫式非揮發性記憶體模組220中讀取對應第一實體單元的有效邏輯位址表(亦稱,第一有效邏輯位址表),並且將之儲存於動態隨機存取記憶體215中。
步驟(5):從所述第一有效資料標記表中辨識為所述第一位元值的一或多個第一標記值,並且從所述第一實體單元中辨識對應所述一或多個第一標記值的一或多個第一實體子單元及對應的一或多個第一實體位址。具體來說,處理器211僅根據在第一有效標記表中為第一位元值的一或多個標記值(有效資料標記值)來辨識對應的一或多個第一實體位址。
步驟(6):根據所述一或多個第一標記值從所述第一有效邏輯位址表中辨識對應所述一或多個第一標記值的一或多個有效邏輯位址。具體來說,如上述,處理器211可根據所述一或多個第一標記值的排列順序辨識對應的一或多個有效邏輯位址。所述一或多個有效邏輯位址會對應上述一或多個第一實體位址。
步驟(7):根據所述一或多個有效邏輯位址從所述第一邏輯轉實體表中查找所記錄的分別對應所述一或多個有效邏輯位址的一或多個第二實體位址。具體來說,在獲得所述一或多個有效邏輯位址後,處理器211可根據所述一或多個有效邏輯位址來查找邏輯轉實體表中的對應條目(用以儲存實體位址的資訊的條目),並且將條目所記錄的資訊作為分別對應所述一或多個有效邏輯位址的一或多個第二實體位址。
步驟(8):將所述一或多個第一實體位址分別取代所述第一邏輯轉實體表中的所述一或多個第二實體位址。具體來說,處理器211將第一實體位址的值取代所查找到的第二實體位址的值且記錄於邏輯轉實體表中的對應所述一或多個有效邏輯位址的一或督個條目中。如此一來,處理器211便完成了根據對應第一實體單元的第一有效資料標記表與第一有效邏輯位址表所執行的用以恢復邏輯轉實體表的恢復操作。
在完成步驟(8)後,處理器211可再回到步驟(2),從可複寫式非揮發性記憶體模組220的多個實體單元中辨識時間戳記大於第一邏輯轉實體表的時間戳記的一或多個實體單元(即,比第一邏輯轉實體表新的實體單元),並且從中選擇一個時間戳記較第一實體單元大的實體單元作為新的第一實體單元,以開始進行後續的恢復操作(根據此新的第一實體單元執行步驟(3)~(8))。依此類推,處理器211可根據時間戳記大於第一邏輯轉實體表的時間戳記的一或多個實體單元,依照時間先後,來一個一個地利用所述一或多個實體單元來執行恢復操作,以恢復邏輯轉實體表。直到所有的所述一或多個實體單元(及對應的有效資料標記表與有效邏輯位址表)被選擇且用於執行所述恢復操作後,便完成了邏輯轉實體表的恢復。應注意的是,若時間戳記大於第一邏輯轉實體表的時間戳記的一或多個實體單元的其中之一沒有具有備份在可複寫式非揮發性記憶體模組220的有效資料標記表與有效邏輯位址表,但該實體單元具有備份在可複寫式非揮發性記憶體模組220的實體轉邏輯表。處理器211可根據對應該實體單元的該實體轉邏輯表來恢復邏輯轉實體表。
在另一實施例中,處理器211亦可不需要辨識時間戳記大於第一邏輯轉實體表的時間戳記的一或多個實體單元,並且直接辨識時間戳記大於第一邏輯轉實體表的儲存在可複寫式非揮發性記憶體模組220的有效資料標記表與有效邏輯表,以進行恢復操作。
以下將詳述本發明與傳統技術相比之下的優點。
請參照圖6,舉例來說,假設處理器211要對目標實體單元A進行垃圾回收操作。處理器211需要先辨識儲存在目標實體單元A中的有效資料,以搬移所辨識出的有效資料至新的實體單元,進而在搬移後抹除目標實體單元A。
傳統上,處理器211會先讀取對應目標實體單元A的實體轉邏輯表P2L_A所記錄的4個邏輯位址LBA(1)~LBA(4)。為了記錄128個邏輯位址的值,處理器211會需要1個位元組(1 Byte,8 Bits)的大小來記錄邏輯位址的值。換言之,為了讀取實體轉邏輯表P2L_A所記錄的4個邏輯位址LBA(1)~LBA(4),處理器211會讀取4*8位元(即,32位元)大小的資料量(亦稱,第一讀取資料量)。
接著,處理器211會再到邏輯轉實體表L2P_0中查找分別對應4個邏輯位址LBA(1)~LBA(4)的4個實體位址,再將所查找到的4個實體位址去與實體轉邏輯表P2L_A的4個邏輯位址LBA(1)~LBA(4)所對應的4個實體位址(目標實體單元A的4個實體位址PBA(A_1)~PBA(A_4))比較,以辨識出儲存在所述4個實體位址PBA(A_1)~PBA(A_4)的資料是否為有效資料。
然而,請參照圖7,根據本發明所提供的有效資料管理方法,為了辨識儲存在目標實體單元A的有效資料,處理器211會先讀取對應目標實體單元A的有效資料標記表VD_A的所有標記值,以查找出一或多個有效資料標記值(即,“1”)。在圖7的例子中,標記值的總數為4個,有效資料標記值的總數為3個。由於每個標記值的大小為1個位元。因此,為了查找有效標記值,處理器211所讀取的資料量為4*1位元(即,4位元)。
接著,在查找到3個有效資料標記值後,處理器211僅會針對有效標記值於有效邏輯位址表中查找分別對應所述3個有效標記值的3個有效邏輯位址。為了查找有效標記值,處理器211於有效邏輯位址所讀取的資料量為3*8位元(即,24位元)(每個邏輯位址的讀取資料量為8位元)。也就是說,結合對有效資料標記表的讀取操作與對有效邏輯表的讀取操作,處理器211總共讀取的資料量為28(4+24=28)位元(亦稱,第一讀取資料量)。
接著,處理器211會再到邏輯轉實體表L2P_0中查找分別對應3個邏輯位址LBA(1)、LBA(2)、LBA(4)的3個實體位址,再將所查找到的3個實體位址去與有效資料標記表VD_A的3個有效資料標記值所對應的3個實體位址(目標實體單元A的3個實體位址PBA(A_1)、PBA(A_2)、PBA(A_4))比較,以辨識出儲存在所述3個實體位址PBA(A_1)、PBA(A_2)、PBA(A_4)的資料是否為有效資料。
從上述的舉例可知道,為了獲得用於查找邏輯轉實體表L2P_0的多個邏輯位址,本發明所提供的有效資料管理方法所需要的第一讀取資料量會小於傳統上所需要的第一讀取資料量(第一讀取資料量的差異為4位元,其相當於原本所需要的第一讀取資料量的12.5%,即,節省了12.5%的第一讀取資料量)。當每個實體單元所具有的實體子單元的個數越多及有效資料標記表所記錄的無效資料標記的個數越多(有效資料標記的個數越少)時,此差異會更大。
例如,假設目前要進行有效資料辨識的目標實體單元A僅儲存了1個有效資料(1個實體子單元儲存了有效資料)。即,對應此目標實體單元A的有效資料標記表會記錄1個有效資料標記值。基於上述舉例,在傳統上,處理器211所需要的第一讀取量為4*位元(即,32位元)。然而,利用本發明所提供的有效資料管理方法,處理器211所需要的第一讀取量為(4*1+1*8)位元(即,12位元)。所節省的讀取資料量的比例高達62.5%(即,(32-12)/32*100%)。可見,在每個實體單元的有效資料越少(如,有效資料數越少)的情況下,利用本發明所提供的有效資料管理方法,處理器211可節省更多用來進行讀取的資源。
又例如,假設在另一實施例中,可複寫式非揮發性記憶體模組220具有32個實體單元,其中每個實體單元可具有8個實體子單元,即,可複寫式非揮發性記憶體模組220共有256個實體子單元。為了記錄256個實體子單元的實體位址及對應的邏輯位址,處理器211會利用9個位元的大小來儲存每個實體位址/邏輯位址的值。此外,更假設目前要進行有效資料辨識的目標實體單元僅儲存了3個有效資料(3個實體子單元儲存了有效資料)。即,對應此目標實體單元的有效資料標記表會記錄3個有效資料標記值。基於上述舉例,在傳統上,處理器211所需要的第一讀取量為8*9位元(即,72位元)。然而,利用本發明所提供的有效資料管理方法,處理器211所需要的第一讀取量為(8*1+3*9)位元(即,35位元)。所節省的讀取資料量的比例高達51.3%(即,(72-35)/72*100%)。
除了讀取資料量的節省之外,由於有效資料標記表是維護於靜態隨機存取記憶體214中的,在靜態隨機存取記憶體214遠高於動態隨機存取記憶體215的情況下,讀取有效資料標記表所耗費的資源(如,讀取時間)甚至可被忽略不計。也就是說,因為本發明的有效資料管理方法所提供有效資料標記表的大小相對於實體轉邏輯表還小很多,以使有效資料標記表可被維護於靜態隨機存取記憶體214中,進而可節省用於讀取有效資料標記表的時間。
綜上所述,本發明實施例所提供的有效資料管理方法以及儲存控制器,可經由邏輯轉實體表與對應目標實體單元的實體轉邏輯表建立較所述實體轉邏輯表小的有效資料標記表與有效邏輯位址表,並且將所述有效資料標記表與有效邏輯位址表分別維護於較高速且容量較小的靜態隨機存取記憶體及較低速且容量較大的動態隨機存取記憶體中。如此一來,可快速地查找對應目標實體單元的有效資料標記表,且經由有效邏輯位址表與邏輯轉實體表來辨識儲存在所述目標實體單元的一或多個有效資料,以增進對於有效資料的辨識效率,進而加強儲存裝置整體的工作效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
214‧‧‧靜態隨機存取記憶體
215‧‧‧動態隨機存取記憶體
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S23‧‧‧有效資料管理方法的流程步驟
S211、S213、S215、S217‧‧‧步驟S21的流程步驟
S2150、S2151、S2152、S2153、S2154、S2155、S2156、S2157‧‧‧步驟S215的流程步驟
S231、S232、S233、S234、S235、S236、S237、S238‧‧‧步驟S23的流程步驟
LBA(1)~LBA(4)、LBA(127)~LBA(128)‧‧‧邏輯位址
PBA(A_1)~PBA(A_4)、PBA(B_1)~PBA(B_4)‧‧‧實體位址
L2P_0‧‧‧邏輯轉實體表
P2L_A、P2L_B‧‧‧實體轉邏輯表
VD_A‧‧‧有效資料標記表
VLBA_A‧‧‧有效邏輯位址表
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的有效資料管理方法的流程圖。 圖3為根據本發明的一實施例所繪示的圖2中的步驟S21(根據所述多個實體單元中的目標實體單元、對應所述可複寫式非揮發性記憶體模組的邏輯轉實體表與對應所述目標實體單元的目標實體轉邏輯表建立對應所述目標實體單元的有效資料標記表與有效邏輯位址表)的流程圖。 圖4為根據本發明的一實施例所繪示的圖3中的步驟S215(根據所述邏輯轉實體表與對應所述目標實體單元的所述目標實體轉邏輯表建立所述有效資料標記表與所述有效邏輯位址表)的流程圖。 圖5為根據本發明的一實施例所繪示的圖2中的步驟S23(根據所述邏輯轉實體表、對應所述目標實體單元的所述有效資料標記表與所述有效邏輯位址表來辨識儲存在所述目標實體單元的一或多個有效資料)的流程圖。 圖6為根據本發明的一實施例所繪示的邏輯轉實體表與實體轉邏輯表的示意圖。 圖7A為根據本發明的一實施例所繪示的有效資料標記表的示意圖。 圖7B為根據本發明的一實施例所繪示的有效邏輯位址表的示意圖。
Claims (10)
- 一種有效資料管理方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體單元,並且該些實體單元的每一個實體單元包括多個實體子單元,所述方法包括: 根據該些實體單元中的一目標實體單元、對應該可複寫式非揮發性記憶體模組的一邏輯轉實體表與對應該目標實體單元的一目標實體轉邏輯表建立對應該目標實體單元的一有效資料標記表與一有效邏輯位址表,其中該目標實體轉邏輯表根據該目標實體單元的多個目標實體子單元的排列順序記錄該些目標實體子單元所映射的多個目標邏輯子單元的目標邏輯位址,並且該些目標邏輯位址分別對應該些目標實體子單元的多個目標實體位址, 其中所建立的該有效資料標記表記錄分別對應該些目標邏輯位址的多個標記值,其中該些標記值的每一個標記值為一第一位元值或一第二位元值,其中該第一位元值用以指示所對應的目標邏輯位址是有效,並且該第二位元值用以指示所對應的目標邏輯位址是無效, 其中所建立的該有效邏輯位址表僅根據該有效資料標記表的一或多個第一位元值的順序記錄分別對應所述一或多個第一位元值的一或多個有效目標邏輯位址,其中所述一或多個有效目標邏輯位址為該些目標邏輯位址中被判定為有效的目標邏輯位址,其中該有效資料標記表小於該有效邏輯位址表,並且該有效邏輯位址表小於該目標實體轉邏輯表;以及 根據該邏輯轉實體表、對應該目標實體單元的該有效資料標記表與該有效邏輯位址表來辨識儲存在該目標實體單元的一或多個有效資料。
- 如申請專利範圍第1項所述的有效資料管理方法,更包括: 即時地記錄該些實體單元的每一個實體單元中用以儲存有效資料的一或多個有效實體子單元的數目為對應所述每一個實體單元的有效資料數於一靜態隨機存取記憶體或一動態隨機存取記憶體中,其中對應該可複寫式非揮發性記憶體模組的該邏輯轉實體表被維護於該動態隨機存取記憶體中,並且該有效資料標記表被維護於該靜態隨機存取記憶體, 其中上述根據該些實體單元中的該目標實體單元、對應該可複寫式非揮發性記憶體模組的該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立對應該目標實體單元的該有效資料標記表與該有效邏輯位址表的步驟包括: 當對應該目標實體單元之該有效資料標記表與該有效邏輯位址表不存在且該目標實體單元的有效資料數小於一第一門檻值時,根據該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立該有效資料標記表與該有效邏輯位址表;以及 當對應該目標實體單元之該有效資料標記表與該有效邏輯位址表已存在且該目標實體單元的該有效資料數小於一第二門檻值時,根據該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立該有效資料標記表與該有效邏輯位址表,其中該第二門檻值小於該第一門檻值。
- 如申請專利範圍第2項所述的有效資料管理方法,其中上述根據該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立該有效資料標記表與該有效邏輯位址表的步驟包括: (1)若該些目標邏輯位址中具有尚未被選擇的一或多個目標邏輯位址,從所述尚未被選擇的一或多個目標邏輯位址中根據一預定順序來選擇對應一第一目標實體子單元的一第一目標邏輯位址,並且辨識該第一目標實體子單元的一第一目標實體位址,其中若該些目標邏輯位址中不具有尚未被選擇的一或多個目標邏輯位址,從該動態隨機存取記憶體中刪除該目標實體轉邏輯表,並且完成該有效資料標記表與該有效邏輯位址表的建立; (2)根據該第一目標邏輯位址從該邏輯轉實體表所記錄的多個實體位址中查找一第一實體位址; (3)判斷該第一實體位址是否等於該第一目標實體位址,其中當判定該第一實體位址等於該第一目標實體位址時,執行步驟(4),其中當判定該第一實體位址不等於該第一目標實體位址時,執行步驟(5); (4)判定該第一目標邏輯位址是有效,將該有效資料標記表中對應該第一目標邏輯位址的一第一標記值記錄為該第一位元值,附加該第一目標邏輯位址至該有效邏輯位址表,並且重新執行步驟(1);以及 (5)判定該第一目標邏輯位址是無效,將該有效資料標記表中對應該第一目標邏輯位址的該第一標記值記錄為該第二位元值,不附加該第一目標邏輯位址至該有效邏輯位址表,並且重新執行步驟(1)。
- 如申請專利範圍第1項所述的有效資料管理方法,其中該有效資料標記表的該些標記值分別對應該些目標實體子單元,其中上述根據對應該可複寫式非揮發性記憶體模組的該邏輯轉實體表、對應該目標實體單元的該有效資料標記表與該有效邏輯位址表來辨識儲存在該目標實體單元的所述一或多個有效資料的步驟包括: (1)辨識該有效資料標記表的該些標記值中為該第一位元值的一或多個有效資料標記值,其中若該有效資料標記表的該些標記值皆為該第二位元值,判定該目標實體單元沒有儲存任何有效資料; (2)僅辨識所述一或多個有效資料標記值中尚未被選擇的一或多個第一有效資料標記值,從所述一或多個第一有效資料標記值中根據一預定順序來選擇對應一第二目標實體子單元的一第二有效資料標記值,並且辨識該第二目標實體子單元的一第二目標實體位址,其中若所述一或多個有效資料標記值中不具有尚未被選擇的所述一或多個第一有效資料標記值,完成儲存在該目標實體單元的所述一或多個有效資料的辨識; (3)根據該第二有效資料標記值於所述一或多個有效資料標記值中的排序來從該有效邏輯位址表查找對應該第二有效資料標記值的一有效邏輯位址; (4)根據對應該第二有效資料標記值的該有效邏輯位址從該邏輯轉實體表所記錄的多個實體位址查找一第二實體位址; (5)判斷該第二實體位址是否等於該第二目標實體位址,其中當判定該第二實體位址等於該第二目標實體位址時,執行步驟(6),其中當判定該第二實體位址不等於該第二目標實體位址時,執行步驟(7); (6)判定儲存在該第二目標實體子單元的資料為有效資料,並且重新執行步驟(2);以及 (7)判定儲存在該第二目標實體子單元的資料為無效資料,並且重新執行步驟(2)。
- 如申請專利範圍第1項所述的有效資料管理方法,更包括: 執行一恢復操作以恢復該邏輯轉實體表,其中該恢復操作的步驟包括: 從該可複寫式非揮發性記憶體模組讀取有效的一第一邏輯轉實體表,並且儲存該第一邏輯轉實體表於一動態隨機存取記憶體中; 辨識較該第一邏輯轉實體表新的一第一實體單元; 從該可複寫式非揮發性記憶體模組的該些有效資料標記表中讀取對應該第一實體單元的一第一有效資料標記表,並且儲存該第一有效資料標記表於一靜態隨機存取記憶體中; 從儲存於從該些有效邏輯位址表中讀取對應該第一實體單元的一第一有效邏輯位址表,並且儲存該第一有效邏輯位址表於該動態隨機存取記憶體中; 從該第一有效資料標記表中辨識為該第一位元值的一或多個第一標記值,並且從該第一實體單元中辨識對應所述一或多個第一標記值的一或多個第一實體子單元及對應的一或多個第一實體位址; 根據所述一或多個第一標記值從該第一有效邏輯位址表中辨識對應所述一或多個第一標記值的一或多個有效邏輯位址; 根據所述一或多個有效邏輯位址從該第一邏輯轉實體表中查找所記錄的分別對應所述一或多個有效邏輯位址的一或多個第二實體位址;以及 將所述一或多個第一實體位址分別取代該第一邏輯轉實體表中的所述一或多個第二實體位址。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體單元,其中該可複寫式非揮發性記憶體模組具有多個實體單元,並且該些實體單元的每一個實體單元包括多個實體子單元,該儲存控制器包括: 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組;以及 一處理器,耦接至該記憶體介面控制電路, 其中該處理器用以根據該些實體單元中的一目標實體單元、對應該可複寫式非揮發性記憶體模組的一邏輯轉實體表與對應該目標實體單元的一目標實體轉邏輯表建立對應該目標實體單元的一有效資料標記表與一有效邏輯位址表,其中該目標實體轉邏輯表根據該目標實體單元的多個目標實體子單元的排列順序記錄該些目標實體子單元所映射的多個目標邏輯子單元的目標邏輯位址,並且該些目標邏輯位址分別對應該些目標實體子單元的多個目標實體位址, 其中所建立的該有效資料標記表記錄分別對應該些目標邏輯位址的多個標記值,其中該些標記值的每一個標記值為一第一位元值或一第二位元值,其中該第一位元值用以指示所對應的目標邏輯位址是有效,並且該第二位元值用以指示所對應的目標邏輯位址是無效, 其中所建立的該有效邏輯位址表僅根據該有效資料標記表的一或多個第一位元值的順序記錄分別對應所述一或多個第一位元值的一或多個有效目標邏輯位址,其中所述一或多個有效目標邏輯位址為該些目標邏輯位址中被判定為有效的目標邏輯位址,其中該有效資料標記表小於該有效邏輯位址表,並且該有效邏輯位址表小於該目標實體轉邏輯表, 其中該處理器更用以根據該邏輯轉實體表、對應該目標實體單元的該有效資料標記表與該有效邏輯位址表來辨識儲存在該目標實體單元的一或多個有效資料。
- 如申請專利範圍第6項所述的儲存控制器, 其中該處理器即時地記錄該些實體單元的每一個實體單元中用以儲存有效資料的一或多個有效實體子單元的數目為對應所述每一個實體單元的有效資料數於一靜態隨機存取記憶體或一動態隨機存取記憶體中,其中對應該可複寫式非揮發性記憶體模組的該邏輯轉實體表被維護於該動態隨機存取記憶體中,並且該有效資料標記表被維護於該靜態隨機存取記憶體, 其中在上述處理器用以根據該些實體單元中的該目標實體單元、對應該可複寫式非揮發性記憶體模組的該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立對應該目標實體單元的該有效資料標記表與該有效邏輯位址表的運作中, 當對應該目標實體單元之該有效資料標記表與該有效邏輯位址表不存在且該目標實體單元的有效資料數小於一第一門檻值時,該處理器根據該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立該有效資料標記表與該有效邏輯位址表; 當對應該目標實體單元之該有效資料標記表與該有效邏輯位址表已存在且該目標實體單元的該有效資料數小於一第二門檻值時,該處理器根據該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立該有效資料標記表與該有效邏輯位址表,其中該第二門檻值小於該第一門檻值。
- 如申請專利範圍第7項所述的儲存控制器,其中在上述該處理器根據該邏輯轉實體表與對應該目標實體單元的該目標實體轉邏輯表建立該有效資料標記表與該有效邏輯位址表的運作中,該處理器執行下列步驟: (1)若該些目標邏輯位址中具有尚未被選擇的一或多個目標邏輯位址,從所述尚未被選擇的一或多個目標邏輯位址中根據一預定順序來選擇對應一第一目標實體子單元的一第一目標邏輯位址,並且辨識該第一目標實體子單元的一第一目標實體位址,其中若該些目標邏輯位址中不具有尚未被選擇的一或多個目標邏輯位址,從該動態隨機存取記憶體中刪除該目標實體轉邏輯表,並且完成該有效資料標記表與該有效邏輯位址表的建立; (2)根據該第一目標邏輯位址從該邏輯轉實體表所記錄的多個實體位址中查找一第一實體位址; (3)判斷該第一實體位址是否等於該第一目標實體位址,其中當判定該第一實體位址等於該第一目標實體位址時,執行步驟(4),其中當判定該第一實體位址不等於該第一目標實體位址時,執行步驟(5); (4)判定該第一目標邏輯位址是有效,將該有效資料標記表中對應該第一目標邏輯位址的一第一標記值記錄為該第一位元值,附加該第一目標邏輯位址至該有效邏輯位址表,並且重新執行步驟(1);以及 (5)判定該第一目標邏輯位址是無效,將該有效資料標記表中對應該第一目標邏輯位址的該第一標記值記錄為該第二位元值,不附加該第一目標邏輯位址至該有效邏輯位址表,並且重新執行步驟(1)。
- 如申請專利範圍第6項所述的儲存控制器,其中該有效資料標記表的該些標記值分別對應該些目標實體子單元,其中在上述根據對應該可複寫式非揮發性記憶體模組的該邏輯轉實體表、對應該目標實體單元的該有效資料標記表與該有效邏輯位址表來辨識儲存在該目標實體單元的所述一或多個有效資料的運作中,該處理器執行下列步驟: (1)辨識該有效資料標記表的該些標記值中為該第一位元值的一或多個有效資料標記值,其中若該有效資料標記表的該些標記值皆為該第二位元值,判定該目標實體單元沒有儲存任何有效資料; (2)僅辨識所述一或多個有效資料標記值中尚未被選擇的一或多個第一有效資料標記值,從所述一或多個第一有效資料標記值中根據一預定順序來選擇對應一第二目標實體子單元的一第二有效資料標記值,並且辨識該第二目標實體子單元的一第二目標實體位址,其中若所述一或多個有效資料標記值中不具有尚未被選擇的所述一或多個第一有效資料標記值,完成儲存在該目標實體單元的所述一或多個有效資料的辨識; (3)根據該第二有效資料標記值於所述一或多個有效資料標記值中的排序來從該有效邏輯位址表查找對應該第二有效資料標記值的一有效邏輯位址; (4)根據對應該第二有效資料標記值的該有效邏輯位址從該邏輯轉實體表所記錄的多個實體位址查找一第二實體位址; (5)判斷該第二實體位址是否等於該第二目標實體位址,其中當判定該第二實體位址等於該第二目標實體位址時,執行步驟(6),其中當判定該第二實體位址不等於該第二目標實體位址時,執行步驟(7); (6)判定儲存在該第二目標實體子單元的資料為有效資料,並且重新執行步驟(2);以及 (7)判定儲存在該第二目標實體子單元的資料為無效資料,並且重新執行步驟(2)。
- 如申請專利範圍第6項所述的儲存控制器, 其中該處理器更用以執行一恢復操作以恢復該邏輯轉實體表,其中該恢復操作的步驟包括: 從該可複寫式非揮發性記憶體模組讀取有效的一第一邏輯轉實體表,並且儲存該第一邏輯轉實體表於一動態隨機存取記憶體中; 該處理器辨識較該第一邏輯轉實體表新的一第一實體單元; 該處理器從該可複寫式非揮發性記憶體模組的該些有效資料標記表中讀取對應該第一實體單元的一第一有效資料標記表,並且儲存該第一有效資料標記表於一靜態隨機存取記憶體中; 該處理器從儲存於從該些有效邏輯位址表中讀取對應該第一實體單元的一第一有效邏輯位址表,並且儲存該第一有效邏輯位址表於該動態隨機存取記憶體中; 該處理器從該第一有效資料標記表中辨識為該第一位元值的一或多個第一標記值,並且從該第一實體單元中辨識對應所述一或多個第一標記值的一或多個第一實體子單元及對應的一或多個第一實體位址; 該處理器根據所述一或多個第一標記值從該第一有效邏輯位址表中辨識對應所述一或多個第一標記值的一或多個有效邏輯位址; 該處理器根據所述一或多個有效邏輯位址從該第一邏輯轉實體表中查找所記錄的分別對應所述一或多個有效邏輯位址的一或多個第二實體位址;以及 該處理器將所述一或多個第一實體位址分別取代該第一邏輯轉實體表中的所述一或多個第二實體位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139783A TWI677790B (zh) | 2017-11-16 | 2017-11-16 | 有效資料管理方法以及儲存控制器 |
US15/961,906 US10339045B2 (en) | 2017-11-16 | 2018-04-25 | Valid data management method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139783A TWI677790B (zh) | 2017-11-16 | 2017-11-16 | 有效資料管理方法以及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201923600A TW201923600A (zh) | 2019-06-16 |
TWI677790B true TWI677790B (zh) | 2019-11-21 |
Family
ID=66431309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106139783A TWI677790B (zh) | 2017-11-16 | 2017-11-16 | 有效資料管理方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10339045B2 (zh) |
TW (1) | TWI677790B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202020664A (zh) * | 2018-11-26 | 2020-06-01 | 深圳大心電子科技有限公司 | 讀取資料排序方法及儲存裝置 |
TWI701552B (zh) * | 2019-03-22 | 2020-08-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI688956B (zh) * | 2019-08-28 | 2020-03-21 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN110955612B (zh) * | 2019-11-07 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 一种数据缓存方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110243A1 (en) * | 2010-10-29 | 2012-05-03 | Phison Electronics Corp. | Data writing method, memory controller, and memory storage apparatus |
TWI592800B (zh) * | 2016-10-04 | 2017-07-21 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法及使用所述方法的儲存控制器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966155B1 (en) * | 2008-04-01 | 2015-02-24 | Daniel P. Mulligan | System and method for implementing a high performance data storage system |
KR102655347B1 (ko) * | 2016-07-04 | 2024-04-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10296224B2 (en) * | 2016-12-21 | 2019-05-21 | Intel Corporation | Apparatus, system and method for increasing the capacity of a storage device available to store user data |
KR20190030790A (ko) * | 2017-09-14 | 2019-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
2017
- 2017-11-16 TW TW106139783A patent/TWI677790B/zh active
-
2018
- 2018-04-25 US US15/961,906 patent/US10339045B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110243A1 (en) * | 2010-10-29 | 2012-05-03 | Phison Electronics Corp. | Data writing method, memory controller, and memory storage apparatus |
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
TWI592800B (zh) * | 2016-10-04 | 2017-07-21 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法及使用所述方法的儲存控制器 |
Also Published As
Publication number | Publication date |
---|---|
US10339045B2 (en) | 2019-07-02 |
TW201923600A (zh) | 2019-06-16 |
US20190146909A1 (en) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679537B (zh) | 資料移動方法及儲存控制器 | |
TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI638263B (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI677790B (zh) | 有效資料管理方法以及儲存控制器 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201732821A (zh) | 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TWI602061B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 | |
TW201719412A (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
CN109840218B (zh) | 有效数据管理方法以及存储控制器 | |
TW201947402A (zh) | 記憶體管理方法以及儲存控制器 | |
TW202016937A (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI641948B (zh) | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI702497B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI766582B (zh) | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
CN111737165B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI621018B (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
CN112799601B (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
TWI795119B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |