TWI621018B - 資料備份方法、資料恢復方法以及儲存控制器 - Google Patents
資料備份方法、資料恢復方法以及儲存控制器 Download PDFInfo
- Publication number
- TWI621018B TWI621018B TW106124699A TW106124699A TWI621018B TW I621018 B TWI621018 B TW I621018B TW 106124699 A TW106124699 A TW 106124699A TW 106124699 A TW106124699 A TW 106124699A TW I621018 B TWI621018 B TW I621018B
- Authority
- TW
- Taiwan
- Prior art keywords
- information table
- sub
- data
- physical
- physical unit
- Prior art date
Links
Classifications
-
- 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
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/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; 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/0629—Configuration or reconfiguration of storage systems
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
-
- 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/7207—Details relating to flash memory management management of metadata or control data
-
- 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/7211—Wear leveling
Abstract
本發明提供一種資料備份方法與資料恢復方法。所述資料備份方法包括根據實體單元的抹除次數值與實體單元狀態來更新總資訊表與子資訊表且產生實體單元資訊;當寫入資料至空白的所述實體單元前,先寫入所述實體單元資訊於所述實體單元;根據對應的條件將總資訊表與子資訊表寫入至可複寫式非揮發性記憶體模組。所述資料恢復方法包括將儲存在可複寫式非揮發性記憶體模組的最新的總資訊表寫入至記憶體;根據較總資訊表新的子資訊表來更新記憶體中的總資訊表;以及根據較子資訊表新的實體單元資訊來更新記憶體中的總資訊表。
Description
本發明是有關於一種資料備份方法與資料恢復方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的資料備份方法、資料恢復方法與儲存控制器。
一般來說,配置有可複寫式非揮發性記憶體模組的儲存裝置(如,固態硬碟,SSD)的儲存控制器,會在可複寫式非揮發性記憶體模組的多個實體單元的其中之一的實體單元的狀態改變時,去記錄所述改變狀態的實體單元的狀態至實體單元資訊清單表,以更新實體單元資訊清單表,並且將更新後的實體單元資訊清單表寫入至可複寫式非揮發性記憶體模組中。
藉此,特別是在突然斷電事件後的資料恢復操作中,儲存控制器可根據已寫入的實體單元資訊清單表所記錄的所述多個實體單元的狀態來進行對應的管理操作。
但是,在上述的傳統作法中,為了少數的實體單元的狀態改變,儲存控制器往往需要去寫入對應可複寫式非揮發性記憶體模組的所有實體單元的狀態的實體單元資訊清單表,而耗費大量空間/時間/資源來寫入未變動的資訊,也增加了可複寫式非揮發性記憶體模組的耗損,進而降低系統整體性能且降低可複寫式非揮發性記憶體模組的使用壽命。
基此,如何更有效率地管理與維護實體單元的狀態資訊,同時保有有效率的資料恢復操作,進而提昇配置有可複寫式非揮發性記憶體模組的儲存裝置的性能與安全,是本領域人員研究的課題之一。
本發明提供一種資料備份方法、資料恢復方法與儲存控制器,可利用不同類型的資訊表與儲存於實體單元中的實體單元資訊來有效率地備份可複寫式非揮發性記憶體模組的實體單元的狀態,進而當特定事件發生時,可藉此進行對應的資料恢復操作。
本發明的一實施例提供一種資料備份方法,適用於配置有可複寫式非揮發性記憶體模組的儲存裝置,其中所述可複寫式非揮發性記憶體模組具有多個實體單元。所述方法包括當配置所述多個實體單元中用以執行第一寫入操作的第一實體單元時,根據所述第一寫入操作設定對應所述第一實體單元的第一實體單元狀態;根據所述第一實體單元狀態與所述第一實體單元的第一抹除次數值更新記憶體中的總資訊表中對應所述第一實體單元的第一總資料,並且產生且附加對應所述第一實體單元的第一子資料至所述記憶體中的子資訊表以更新所述子資訊表,其中所述子資訊表包括對應所述子資訊表之時間戳記、配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態;若所述第一實體單元的所述第一實體單元狀態為空狀態且開始執行所述第一寫入操作,依序寫入對應所述第一實體單元的第一實體單元資訊與所述第一寫入資料至所述第一實體單元;當更新後之所述子資訊表的所附加的所述一或多個子資料的總數目等於第一預定值,將所述記憶體中的更新後之所述子資訊表寫入至所述可複寫式非揮發性記憶體模組,重置所述記憶體的所述子資訊表,並且累加一計數值;以及當累加後之所述計數值等於第二預定值,將所述記憶體中的更新後之所述總資訊表寫入至所述可複寫式非揮發性記憶體模組,並且歸零所述計數值。
本發明的一實施例提供一種資料恢復方法,適用於配置有可複寫式非揮發性記憶體模組的儲存裝置,其中所述可複寫式非揮發性記憶體模組具有多個實體單元。所述方法包括反應於已發生的特定事件,從所述可複寫式非揮發性記憶體模組中讀取最新的總資訊表,並且將所述總資訊表寫入至記憶體,其中所述總資訊表包括對應所述總資訊表之時間戳記與分別對應多個實體單元的多個總資料,其中所述多個總資料的每一個總資料記錄對應的實體單元的抹除次數值與實體單元狀態;辨識儲存在所述可複寫式非揮發性記憶體模組的一或多個子資訊表,其中所述一或多個子資訊表中的每一個子資訊表包括對應所述子資訊表之時間戳記、配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態;從所述一或多個子資訊表中選擇第一子資訊表,並且根據所述第一子資訊表來更新所述記憶體中的所述總資訊表,其中所述第一子資訊表的時間戳記大於所述總資訊表的時間戳記;從所述一或多個子資訊表中辨識最新的第二子資訊表,並且根據所述第二子資訊表的配置陣列來辨識多個第一實體單元;根據分別儲存於所述多個第一實體單元的多個第一實體單元資訊來更新所述記憶體中的所述總資訊表。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括記憶體介面控制電路與處理器。所述記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體單元。所述處理器耦接至所述記憶體介面控制電路及記憶體。當配置所述多個實體單元中用以執行第一寫入操作的第一實體單元時,所述處理器用以根據所述第一寫入操作設定對應所述第一實體單元的第一實體單元狀態。所述處理器更用以根據所述第一實體單元狀態與所述第一實體單元的第一抹除次數值更新所述記憶體中的總資訊表中對應所述第一實體單元的第一總資料,並且產生且附加對應所述第一實體單元的第一子資料至所述記憶體中的子資訊表以更新所述子資訊表,其中所述子資訊表包括對應所述子資訊表之時間戳記、配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態。若所述第一實體單元的所述第一實體單元狀態為空狀態且所述處理器開始執行所述第一寫入操作,所述處理器更用以依序寫入對應所述第一實體單元的第一實體單元資訊與所述第一寫入資料至所述第一實體單元。此外,當更新後之所述子資訊表的所附加的所述一或多個子資料的總數目等於第一預定值,所述處理器更用以將所述記憶體中的更新後之所述子資訊表寫入至所述可複寫式非揮發性記憶體模組,重置所述記憶體的所述子資訊表,並且累加計數值。當累加後之所述計數值等於第二預定值,所述處理器更用以將所述記憶體中的更新後之所述總資訊表寫入至所述可複寫式非揮發性記憶體模組,並且歸零所述計數值。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括記憶體介面控制電路與處理器。所述記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體單元。所述處理器耦接至所述記憶體介面控制電路及記憶體。反應於已發生的特定事件,所述處理器用以從所述可複寫式非揮發性記憶體模組中讀取最新的一總資訊表,並且將所述總資訊表寫入至一記憶體,其中所述總資訊表包括對應所述總資訊表之時間戳記與分別對應多個實體單元的多個總資料,其中所述多個總資料的每一個總資料記錄對應的實體單元的抹除次數值與實體單元狀態,其中所述處理器更用以辨識儲存在所述可複寫式非揮發性記憶體模組的一或多個子資訊表,其中所述一或多個子資訊表中的每一個子資訊表包括對應所述子資訊表之時間戳記、配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態,其中所述處理器更用以從所述一或多個子資訊表中選擇第一子資訊表,並且根據所述第一子資訊表來更新所述記憶體中的所述總資訊表,其中所述第一子資訊表的時間戳記大於所述總資訊表的時間戳記,其中所述處理器更用以從所述一或多個子資訊表中辨識最新的第二子資訊表,並且根據所述第二子資訊表的配置陣列來辨識多個第一實體單元,其中所述處理器更用以根據分別儲存於所述多個第一實體單元的多個第一實體單元資訊來更新所述記憶體中的所述總資訊表。
基於上述,本發明實施例所提供的資料備份方法、資料恢復方法以及儲存控制器,可在初次寫入一實體單元時,記錄對應的實體單元資訊至所述實體單元,將對應當前狀態改變的實體單元的實體單元狀態與抹除次數值記錄至子資訊表,並且當一定數目之子資訊表被寫入至可複寫式非揮發性記憶體模組時,再將用以記錄可複寫式非揮發性記憶體模組的全部實體單元的總資訊表寫入至可複寫式非揮發性記憶體模組,以分段記錄狀態改變的實體單元。如此一來,系統可利用較低的資源來記錄/備份已改變的實體單元狀態,增加了寫入操作的平順性與可複寫式非揮發性記憶體模組的使用壽命,進而增進了工作效率。此外,本發明實施例所提供的資料備份方法、資料恢復方法以及儲存控制器,可利用分於不同時機點所儲存的不同類型的實體單元資訊、子資訊表與總資訊表,在利用較少資源進行上述資料備份方法的情況下,還可有效率且安全地恢復總資訊表與其中的對應可複寫式非揮發性記憶體模組的所有實體單元的實體單元狀態資訊。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(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)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板也可以透過系統匯流排耦接至全球定位系統(Global Positioning System,GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路130與連接介面電路230亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路230可與儲存控制器210封裝在一個晶片中,或者連接介面電路230是佈設於一包含儲存控制器210之晶片外。
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,
DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼(亦稱,執行開機程序或開卡程序)來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體儲存單元中。
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器210各部件所執行的操作亦可視為儲存控制器210所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料,並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。以下會再配合多個圖式與實施例來詳細說明本發明中資料管理電路212的功能。
記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220的實體單元中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
在本實施例中,所述寫入操作至少包括主機寫入操作,垃圾回收寫入操作,損耗平衡寫入操作等類型的寫入操作。所述主機寫入操作例如是為了執行主機系統10的作業系統所下達至處理器211的寫入指令而執行的操作。即,完成主機寫入操作後,處理器211會回應寫入完成訊息給主機系統。所述寫入指令用以指示處理器211寫入一筆寫入資料至對應所述寫入指令的邏輯位址。所述垃圾回收寫入操作例如是在執行垃圾回收操作的過程中,所執行的寫入操作。例如,假設處理器211對一實體單元執行垃圾回收操作。處理器211會執行垃圾回收寫入操作以將此實體單元的所有有效資料寫入至另一實體單元。所述損耗平衡寫入操作例如是在執行損耗平衡(Wear-Leveling)操作的過程中,所執行的寫入操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓組準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
可複寫式非揮發性記憶體模組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的記憶胞會構成多個實體程式化單元(亦稱,實體子單元),並且此些實體程式化單元會構成多個實體區塊(亦稱,實體抹除單元或實體單元)。具體來說,同一條字元線(或同一個字元線層)上的記憶胞會組成一或多個實體程式化單元。
在本實施例中,是以實體子單元作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。每一實體單元會具有多個實體子單元。實體子單元可為實體頁面(page)或是實體扇(sector)。在本實施例中,實體子單元包括資料位元區與冗餘(redundancy)位元區。資料位元區用以儲存使用者資料,而冗餘位元區用以儲存系統資料。系統資料例如為錯誤更正碼、錯誤檢查碼或元資料(Meta Data)。所述元資料記錄對應的實體頁面所儲存的使用者資料的邏輯位址。
應注意的是,在本實施例中,處理器211會根據一實體單元當前的抹除次數值與實體單元狀態來產生一實體單元資訊以記錄一實體單元的資訊。所述實體單元資訊可被儲存至所對應之所述實體單元的一或多個實體子單元(如,被儲存至實體子單元的資料位元區或冗餘位元區)中,或利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個實體子單元來記錄。
在本實施例中,為了記錄時間戳記(Timestamp)(亦稱,全域時間戳記),處理器211會根據不同類型的資訊與對應的條件來記錄時間戳記(如,根據當前時間來產生且記錄時間戳記)至所述資訊中。所述時間戳記的大小(數值差異)可用來表示其所對應的資訊的時間的先後。本發明並不限定所述時間戳記的詳細格式。舉例來說,處理器211可根據分別對應兩筆資訊的兩個時間戳記的相對大小來辨識出所述兩筆資訊的時間先後(時間戳記較大者,其對應的資訊的時間會較晚)。
主機系統10是透過儲存控制器210配置多個邏輯單元給可複寫式非揮發性記憶體模組220。所配置的邏輯單元用以存取儲存在可複寫式非揮發性記憶體模組220的多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。
在以下實施例中,為了方便說明,實體單元指實體區塊,實體子單元指實體頁面,並且實體位址指對應的實體頁面或其位址。然而,在另一實施例中,一個實體單元/實體子單元亦可以分別是指任意數目的記憶胞組成,視實務上的需求而定,並且實體位址可指實體區塊或實體頁面的位址。此外,處理器211會對多個實體單元編製多個索引碼,以使所述多個索引碼分別對應所述多個實體單元,進而根據索引碼來辨識對應的實體單元。
此外,儲存控制器210會建立邏輯轉實體表(Logical To Physical table)與實體轉邏輯表(Physical To Logical table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面、邏輯位址或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體位址或實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯表來查找一實體單元所映射的邏輯單元。在本實施例中,當完成對於一個邏輯頁面(邏輯位址)的資料寫入操作(如,對應的資料已被程式化至一實體頁面)時,處理器211會對應地更新邏輯轉實體表,以記錄該邏輯位址所對應的實體頁面的位址(實體位址)。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在一實施例中,儲存控制器210還包括緩衝記憶體與電源管理電路。緩衝記憶體(亦稱,記憶體)是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料(如,邏輯轉實體表、實體轉邏輯表、總資訊表、子資訊表、損壞實體單元表或磨損實體單元表等),以讓處理器211可快速地從記憶體中存取所述資料、指令或系統資料。電源管理電路是耦接至處理器211並且用以控制儲存裝置20的電源。
圖2是根據本發明的一實施例所繪示的資料備份方法的流程圖。請參照圖2,在步驟S21中,當配置所述多個實體單元中用以執行第一寫入操作的第一實體單元時,處理器211用以根據所述第一寫入操作設定對應所述第一實體單元的第一實體單元狀態。具體來說,在執行一寫入操作(第一寫入操作)之前,處理器211會從可複寫式非揮發性記憶體模組220的空的(或已抹除的)多個實體單元中選擇(配置)一實體單元(亦稱,第一實體單元),並且在爾後開始執行對應的寫入操作(第一寫入操作)時,將對應所述第一寫入操作的寫入資料寫入至所配置的第一實體單元。在配置第一實體單元後,處理器211會根據第一寫入操作的類型來設定對應所述第一實體單元的第一實體單元狀態。
在本實施例中,舉例來說,如上述,寫入操作的類型包括“主機寫入操作”,“垃圾回收寫入操作”,“損耗平衡寫入操作”等類型。舉例來說,假設第一寫入操作的類型為“主機寫入操作”,處理器211會對應地將第一實體單元的第一實體單元狀態設定為“主機寫入狀態”。更詳細來說,此時,處理器211會將第一實體單元狀態從“空狀態”(或“已抹除狀態”)修改成“主機寫入狀態”。
在本實施例中,所述實體單元狀態的大小為一個位元組,處理器211利用多個不同的位元值來分別記錄一實體單元的多個實體單元狀態,所述多個實體單元狀態包括“空狀態”,“已抹除狀態”,“主機寫入狀態”,“垃圾回收寫入狀態”,“損耗平衡寫入狀態”,“損壞狀態”,“磨損狀態”。所述“空狀態(Empty Status)”用以表示實體單元目前並未被寫入任何資料;所述“已抹除狀態(Erased Status)”用以表示實體單元已經抹除完畢;所述“主機寫入狀態(Host Write Status)”用以表示實體單元目前是根據主機寫入操作被寫入資料;所述“垃圾回收狀態(Garbage Collection Write Status)”用以表示實體單元目前是根據垃圾回收寫入操作被寫入資料;所述“損耗平衡寫入狀態(Wear-Leveling Write Status)”用以表示實體單元目前根據損耗平衡寫入操作被寫入資料;所述“損壞狀態(Bad Status)”用以表示實體單元目前已損壞且不能被寫入;所述“磨損狀態(Wear-out Status)”用以表示實體單元目前的磨損程度已經超過一預定程度。
在設定完第一實體單元狀態後,在步驟S23中,處理器211根據所述第一實體單元狀態與所述第一實體單元的第一抹除次數值更新記憶體中的總資訊表中對應所述第一實體單元的第一總資料,並且產生且附加對應所述第一實體單元的第一子資料至所述記憶體中的子資訊表以更新所述子資訊表。以下會先闡述於開卡程序中,總資訊表與子資訊表的初始化(初始的總資訊表與子資訊表),再說明步驟S23的細節。
在本實施例中,當處理器211執行上述之開卡程序時,處理器211會在所述開卡程序中產生且寫入初始的總資訊表與初始的子資訊表於記憶體中。接著,處理器211會寫入於所述記憶體中的初始的總資訊表與初始的子資訊表至可複寫式非揮發性記憶體模組220,並且重置記憶體中的所述子資訊表。
圖4A為根據本發明的一實施例所繪示的總資訊表的資料結構示意圖。圖4B為根據本發明的一實施例所繪示的總資訊表中的總資料的資料結構示意圖。請參照圖4A,舉例來說,上述於記憶體中的初始的總資訊表MIT包括表類型TT_MIT、對應總資訊表MIT的時間戳記TS_MIT、多個總資料MD(1)~MD(M)。M為正整數且M的值用以表示可複寫式非揮發性記憶體模組220的所有實體單元的總數目。當處理器211寫入初始的總資訊表至可複寫式非揮發性記憶體模組220時,處理器211會先附加輔助資料AD_MIT至總資訊表MIT,再寫入總資訊表MIT。所述輔助資料AD_MIT用以將總資訊表MIT的總大小補齊至一總資訊表預定大小。所述輔助資料AD_MIT可為用以保護總資訊表MIT之錯誤檢查碼,或具有固定態樣的預定資料。
所述表類型所記錄的值用以指示當前處理器211所存取的資料的型態。所述表類型的大小為一個位元組。舉例來說,若表類型所記錄的值為 “0”,即表示當前對應的資料為對應可複寫式非揮發性記憶體模組220的所有實體單元的總資訊表;若表類型所記錄的值為“1”,即表示當前對應的資料為子資訊表。依照前述例子,當處理器211讀取到記錄“0”的表類型TT_MIT,處理器211可知道之後表類型TT_MIT之後的資料為對應總資訊表MIT的時間戳記TS_MIT、多個總資料MD(1)~MD(M)及輔助資料AD_MIT。然而,本發明不限於此,廠商可根據自身需求來設定表類型所記錄的值以及所代表的含意。初始的總資訊表MIT的時間戳記為第一初始值。
所述多個總資料MD(1)~MD(M)分別對應可複寫式非揮發性記憶體模組220的所有實體單元,並且記錄對應的實體單元的多種資訊。在本實施例中,所述多種資訊包括對應的實體單元的索引碼、抹除次數值、實體單元狀態。然而,在另一實施例中,總資料所記錄的多種資訊還包括對應的實體單元的時間戳記。
請參照圖4B,舉例來說,在設定完第一實體單元狀態後,處理器211根據所述第一實體單元狀態與所述第一實體單元的第一抹除次數值更新記憶體中的總資訊表MIT中對應所述第一實體單元的第一總資料MD(1)。處理器211根據對應第一實體單元的索引碼辨識第一總資料MD(1)於總資訊表MIT中的位置。處理器211將對應第一實體單元的索引碼記錄為第一總資料MD(1)的索引碼IDX_MD(1);將對應第一實體單元的第一抹除次數值記錄為第一總資料MD(1)的抹除次數值PEC_MD(1);將對應第一實體單元的第一實體單元狀態記錄為第一總資料MD(1)的實體單元狀態BST_MD(1)。所述對應第一實體單元的第一抹除次數值記錄所述第一實體單元已被抹除的總次數。即,每當完成對第一實體單元的抹除操作,累加第一抹除次數值。
在另一實施例中,處理器211更將對應第一實體單元的時間戳記記錄為第一總資料MD(1)的時間戳記TS_MD(1)。
在本實施例中,當處理器211更新完上述之第一總資料時,處理器211根據更新第一總資料MD(1)的當前時間(如,儲存裝置的本地時間)來更新對應總資訊表MIT的時間戳記TS_MIT。換句話說,每當總資訊表中的一個總資料被更新時,總資訊表的時間戳記亦會被更新為當前時間。
值得一提的是,在一實施例中,總資料所記錄的多種資訊可不包括索引碼。在此實施例中,所述多個總資料MD(1)~MD(M)於總資料表的位置是根據所述多個總資料MD(1)~MD(M)所分別對應的多個實體單元於可複寫式非揮發性記憶體模組220中的排列順序來決定的,並且分別對應可複寫式非揮發性記憶體模組220所有實體單元的多個索引碼用以表示對應的實體單元的排列順序。
圖5A為根據本發明的一實施例所繪示的初始的子資訊表的資料結構示意圖。圖5B為根據本發明的一實施例所繪示的子資訊表的資料結構示意圖。請參照圖5A,舉例來說,上述於記憶體中的初始的子資訊表SIT1包括表類型TT_SIT1、對應子資訊表SIT1的時間戳記TS_SIT1與配置陣列PA_SIT1。當處理器211寫入初始的子資訊表SIT1至可複寫式非揮發性記憶體模組220時,處理器211會先附加輔助資料AD_SIT1至子資訊表SIT1,再寫入初始的子資訊表SIT1。應注意的是,初始的子資訊表SIT1中用以儲存多個子資料的子資料空間SD1並不具有任何子資料。即,寫入至可複寫式非揮發性記憶體模組220的初始的子資訊表SIT1僅包括表類型TT_SIT1、對應子資訊表SIT1的時間戳記TS_SIT1與輔助資料AD_SIT1。
所述表類型TT_SIT1的定義相似於表類型TT_MIT,例如,當處理器211讀取到記錄“1”的表類型TT_SIT1,處理器211可知道之後表類型TT_SIT1之後的資料為對應一初始的子資訊表SIT1的時間戳記TS_SIT1、(初始的)配置陣列PA_SIT1及輔助資料AD_SIT1。初始的子資訊表SIT1的時間戳記TS_SIT1為第二初始值。所述(初始的)配置陣列PA_SIT1可預先設定。
圖5D為根據本發明的一實施例所繪示的子資訊表中的配置陣列的資料結構示意圖。請參照圖5D,配置陣列(Allocate Array)PA_SIT1記錄多個索引碼IDX_PA_SIT1(1)~ IDX_PA_SIT1(X)。X為預設之正整數(配置陣列的索引碼的總數目等於X)。廠商可根據需求來設定X的值。X也可隨著儲存裝置的老化程度而動態調整。所述多個索引碼IDX_PA_SIT1(1)~ IDX_PA_SIT1(X)分別對應多個實體單元(亦稱,第二實體單元)。所述多個第二實體單元皆未被寫入任何資料(即,空的實體單元),並且所述多個第二實體單元的實體單元狀態為“空狀態”或“已抹除狀態”。應注意的是,在本實施例中,配置陣列為1*X的陣列,然而在其他實施例中,配置陣列亦可為n*X的陣列。n為正整數。
當處理器211寫入初始的子資訊表SIT1至可複寫式非揮發性記憶體模組220時,處理器211會先附加輔助資料AD_SIT1至子資訊表SIT1,再寫入子資訊表SIT1。所述輔助資料AD_SIT1用以將子資訊表SIT1的總大小補齊至一子資訊表預定大小。所述輔助資料AD_SIT1可為用以保護子資訊表SIT1之錯誤檢查碼,或具有固定態樣的預定資料。
在本實施例中,處理器211會根據儲存於該可複寫式非揮發性記憶體模組中最新的子資訊表的配置陣列的多個索引碼來產生一當前配置陣列。換言之,假設目前儲存於該可複寫式非揮發性記憶體模組中最新的子資訊表為初始的子資訊表SIT1,處理器211會根據子資訊表SIT1的配置陣列PA_SIT1來產生當前配置陣列。所述當前配置陣列記錄了所述配置陣列PA_SIT1所記錄的多個索引碼IDX_PA_SIT1(1)~ IDX_PA_SIT1(X)。爾後,當處理器211欲執行一寫入操作之前,處理器211會根據所產生的當前配置陣列來選擇用以執行所述寫入操作的實體單元。更詳細來說,若處理器211欲執行一寫入操作(在執行寫入操作之前),處理器211會辨識所產生的當前配置陣列的多個索引碼中尚未被選擇之一或多個第一索引碼。接著,處理器211選擇所述一或多個第一索引碼中排序最前面之一第二索引碼,並且根據所選擇之第二索引碼來辨識對應所述第二索引碼的實體單元。最後,處理器211可配置所辨識的所述實體單元來執行所述寫入操作,即,將對應寫入操作的寫入資料程式化至(對應第二索引碼的)所述實體單元。換句話說,當前配置序列中已被選擇過的索引碼不會再被選擇,以讓處理器211不會選擇已經配置過的實體單元來進行配置。
在本實施例中,每當處理器211寫入於所述記憶體中的子資訊表至可複寫式非揮發性記憶體模組220,處理器211會重置記憶體中的子資訊表。舉例來說,當處理器211寫入初始的子資訊表SIT1至可複寫式非揮發性記憶體模組220後,處理器211會將子資訊表SIT1重置為子資訊表SIT2。詳細來說,處理器211會清空記憶體中的子資訊表SIT1的子資料區段SD1(將於其中的所有子資料刪除),並且更新記憶體中子資訊表SIT1的配置陣列PA1。在一實施例中,在重置初始的子資訊表SIT1為子資訊表SIT2的過程中,處理器211可將位元值為“1”的表類型TT_SIT1修改為位元值為“2”的表類型TT_SIT2。藉此,可使處理器211辨識出當前維護於記憶體中的子資訊表SIT2並非初始的子資訊表SIT1,即,子資訊表SIT2的子資料區段SD2可具有(被附加)子資料。
在本實施例中,在重置初始的子資訊表SIT1為子資訊表SIT2的過程中,處理器211可將時間戳記TT_SIT1修改為時間戳記TT_SIT2,其中時間戳記TT_SIT2記錄了執行重置子資訊表的當前時間。在另一實施例中,在重置初始的子資訊表SIT1為子資訊表SIT2的過程中,處理器211可不修改時間戳記TT_SIT2。
此外,在重置子資訊表的過程中,處理器211亦會重置配置陣列。舉例來說,在處理器211重置子資訊表SIT1為子資訊表SIT2的過程中,處理器211會從可複寫式非揮發性記憶體模組220中所有空的(已抹除的)多個實體單元中選擇非配置陣列PA_SIT1的多個索引碼所對應的實體單元的其他多個實體單元(數量為X),並且將分別對應上述其他多個實體單元的多個索引碼記錄至子資訊表SIT2的配置陣列PA_SIT2中。
應注意的是,在一實施例中,產生(新的)當前配置陣列的時間點亦可在子資訊表開始被寫入可複寫式非揮發性記憶體模組220的期間中。在另一實施例中,若處理器211已判定舊的當前配置陣列中所有的索引碼皆已被選擇時,處理器211會根據當前記憶體中的子資訊表的配置陣列來產生新的當前配置陣列。
也就是說,記憶體中的子資訊表的配置陣列是用以讓處理器211去經由根據配置陣列來產生新的當前配置陣列,以辨識下一批的多個可用來被配置的實體單元。換言之,可視為,處理器211會在記憶體中維護用以辨識當前可被配置的多個實體單元的當前配置陣列以及用以辨識未來緊接著可被配置的多個實體單元的配置陣列(於子資訊表中)。
假設處理器211已完成對於子資訊表的重置,剛重置後的維護於記憶體中的子資訊表SIT2包括表類型TT_SIT2、時間戳記TS_SIT2、配置陣列PA_SIT2、子資料區段SD2,其中所述子資料區段SD2並不具有任何子資料。請再回到圖2,在步驟S23中,除了上述對於總資訊表的更新之外,處理器211會產生且附加對應所述第一實體單元的第一子資料至所述記憶體中的子資訊表以更新所述子資訊表。
圖5C為根據本發明的一實施例所繪示的子資訊表中的子資料的資料結構示意圖。請參照圖5C,舉例來說,假設當前在記憶體中的子資訊表為剛重置後的子資訊表SIT2。處理器211會在設定完第一實體單元狀態後,根據所述第一實體單元狀態與所述第一實體單元的第一抹除次數值產生子資料SD2(1)(亦稱,第一子資料)。
在本實施例中,所產生的子資料會記錄對應的實體單元的多種資訊。所述多種資訊包括對應的實體單元的索引碼、抹除次數值、實體單元狀態。然而,在另一實施例中,子資料所記錄的多種資訊還包括對應的實體單元的時間戳記。
也就是說,在上述的例子中,處理器211根據將對應第一實體單元的索引碼記錄為第一子資料SD2(1)的索引碼IDX_SD2(1);將對應第一實體單元的第一抹除次數值記錄為第一子資料SD2(1)的抹除次數值PEC_SD2(1);將對應第一實體單元的第一實體單元狀態記錄為第一子資料SD2(1)的實體單元狀態BST_SD2(1)。如此一來,處理器211便完成了產生第一子資料SD2(1)。接著,處理器211會將所產生的第一子資料SD2(1)從子資料區段SD2的可用空間中從頭開始儲存。例如,若處理器211欲執行另一寫入操作,處理器211可產生對應的子資料SD2(2),並且將子資料SD2(2)儲存至子資料SD2(1)後。依此類推,處理器211會陸續根據其他多個寫入操作來產生且儲存對應的子資料(如,子資料SD(2)~SD(X))至子資料區段SD2中。
在本實施例中,當處理器211附加完上述之第一子資料SD2(1)時,處理器211根據附加第一子資料SD2(1)的當前時間來更新對應子資訊表SIT2的時間戳記TS_SIT2。換句話說,每當子資訊表被附加一個子資料時,子資訊表的時間戳記亦會被更新為當前時間。如此一來,處理器211便根據第一寫入操作更新了子資訊表。
由於已配置了用以執行第一寫入操作的第一實體單元,設定對應的第一實體單元狀態,並且也更新了總資訊表及子資訊表,處理器211會開始執行第一寫入操作。
請再回到圖2,接著,在步驟S25中,若所述第一實體單元的所述第一實體單元狀態為空狀態且開始執行所述第一寫入操作,依序寫入對應所述第一實體單元的第一實體單元資訊與所述第一寫入資料至所述第一實體單元。
圖6A為根據本發明的一實施例所繪示的實體單元資訊的儲存位置的示意圖。圖6B為根據本發明的一實施例所繪示的實體單元資訊的資料結構示意圖。請參照圖6A,舉例來說,假設第一實體單元60具有多個實體頁面60(1)~60(Z),剛被配置的第一實體單元為空狀態(實體頁面60(1)~60(Z)皆空白),並且處理器211開始執行第一寫入操作以將寫入資料UD1寫入至第一實體單元中。此時,處理器211會判定第一實體單元為空狀態(如,第一個實體頁面60(1)為空白),處理器211會產生對應第一實體單元的第一實體單元資訊PUI,先將所產生的第一實體單元資訊PUI(如圖6A中菱形格線部份)寫入至實體頁面60(1),接續已寫入之第一實體單元資訊PUI,將寫入資料UD1(如圖6A中網底部份)寫入至實體頁面60(1)中。即,儲存於一實體單元且排序在已儲存至所述實體單元的第一筆寫入資料之前的資料是對應所述實體單元的實體單元資訊。
請參照圖6B,在本實施例中,在根據第一寫入操作來產生第一實體單元資訊的過程中,處理器211會根據開始執行第一寫入操作的當前時間記錄第一實體單元資訊PUI的時間戳記TS_PUI;將對應第一實體單元60的第一抹除次數值記錄為第一實體單元資訊PUI的抹除次數值PEC_PUI;將對應第一實體單元的第一實體單元狀態記錄為第一實體單元資訊PUI的實體單元狀態BST_PUI;以及附加輔助資料AD_PUI至第一實體單元資訊PUI後端。所述輔助資料AD_PUI用以將第一實體單元資訊PUI的總大小補齊至一實體單元資訊預定大小。所述輔助資料AD_PUI可為用以保護第一實體單元資訊PUI之錯誤檢查碼,或具有固定態樣的預定資料。
在步驟S27中,當更新後之所述子資訊表的所附加的所述一或多個子資料的總數目等於第一預定值,將所述記憶體中的更新後之所述子資訊表寫入至所述可複寫式非揮發性記憶體模組,重置所述記憶體的所述子資訊表,並且累加一計數值。
舉例來說,假設處理器211根據所述第一實體單元狀態與所述第一實體單元的第一抹除次數值產生子資料SD2(X),以更新子資訊表SIT2。所述第一預定值為X。時間戳記TS_SIT2也會對應更新。由於子資訊表SIT2的子資料區段SD2的多個子資料SD2(1)~SD(X)的總數目為X。因此,處理器211會將子資訊表SIT2寫入至可複寫式非揮發性記憶體模組220。也就是說,在本實施例中,處理器211會根據一子資訊表的子資料的總數目來判斷是否要將所述子資訊表寫入至可複寫式非揮發性記憶體模組220中。但本發明不限於此,處理器211可使用其他方式來判斷是否寫入子資訊表。例如,在另一實施例中,處理器211可根據判斷子資訊表的子資料區段是否已寫滿來判斷是否寫入子資訊表。又例如,在另一實施例中,處理器211可在每附加一子資料至一子資訊表時,累加另一計數值(此另一計數值用來記錄子資料被附加至子資訊表的數量),並且根據判斷所述另一計數值是否已到達一門檻值來判斷是否寫入子資訊表。
接著,如上所述,寫入維護於記憶體中的一子資訊表後,處理器211會重置記憶體中的子資訊表。此外,處理器211會累加一計數值。所述計數值用以記錄子資訊表被寫入至可複寫式非揮發性記憶體模組220的次數。從另一方面來看,所述計數值乘以第一預定值所獲得的積,其可表示在一期間內,已被配置執行多個寫入操作的多個實體單元的總數目。換言之,所述積的值可表示記憶體中的總資訊表被更新的次數。
在步驟S29中,當累加後之所述計數值等於第二預定值,將所述記憶體中的更新後之所述總資訊表寫入至所述可複寫式非揮發性記憶體模組,並且歸零所述計數值。
具體來說,在本實施例中,處理器211會根據記憶體中的總資訊表被更新的總次數來判斷是否要將總資訊表寫入至可複寫式非揮發性記憶體模組22。更詳細來說,處理器211可設定一總資訊表更新門檻值,並且處理器211會根據判斷記憶體中的總資訊表被更新的總次數是否達到總資訊表更新門檻值來判斷是否要寫入所述總資訊表至可複寫式非揮發性記憶體模組220。此外,處理器211會將所述總資訊表更新門檻值除以第一預定值,以獲得第二預定值。
也就是說,處理器211會在每次累加計數值後,去判定所述計數值是否等於第二預定值。當累加後之計數值等於第二預定值時,由於所述計數值乘以第一預定值所獲得的積(即,記憶體中的總資訊表被更新的總次數)會等於所述總資訊表門檻值,因此,處理器211會寫入所述總資訊表至可複寫式非揮發性記憶體模組220。此外,處理器211會歸零所述計數值,以重新計算記憶體中總資訊表被更新的總次數。
在本實施例中,上述根據不同條件被儲存至可複寫式非揮發性記憶體模組220的總資訊表、子資訊表以及實體單元資訊可在特定事件發生時,被用來恢復記憶體中的最新的總資訊表。所述特定事件例如是突然斷電事件,記憶體故障等讓記憶體中的總資訊表、子資訊表消失的事件。以下會經由圖3來詳細說明本發明所提供的資料恢復方法。
圖3是根據本發明的一實施例所繪示的資料恢復方法的流程圖。請參照圖3,在步驟S31中,反應於已發生的特定事件,處理器211從所述可複寫式非揮發性記憶體模組中讀取最新的總資訊表,並且將所述總資訊表寫入至記憶體。
舉例來說,假設所述特定事件為突然斷電事件。在突然斷電事件發生時,維護於記憶體中的總資訊表、子資訊表都會因為突然斷電而消失。在儲存裝置20開電後,處理器211會判定之前儲存裝置20發生特定事件,並且處理器211會開始執行資料恢復操作。首先,處理器211會先從可複寫式非揮發性記憶體模組220中找尋最新的總資訊表。例如,處理器211可根據表類型(如,為 “0”的位元值的表類型)從可複寫式非揮發性記憶體模組220中辨識多個總資訊表。接著,處理器211可根據所述多個總資訊表的時間戳記來辨識最新的總資訊表(其時間戳記為所述多個總資訊表的多個時間戳記中最大者),處理器211讀取此最新的總資訊表,並且將之儲存(寫入)至記憶體中,以在後續的步驟中,更新儲存於記憶體中的總資訊表。
在步驟S33中,處理器211辨識儲存在所述可複寫式非揮發性記憶體模組的一或多個子資訊表,其中所述一或多個子資訊表中的每一個子資訊表包括對應所述子資訊表之時間戳記、配置序列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態。具體來說,處理器211可根據表類型(如,為 “1”或 “2”的位元值的表類型)從可複寫式非揮發性記憶體模組220中辨識多個子資訊表。所述子資訊表的資料結構已詳述於上,不再贅述於此。
為了找尋在儲存上述最新的總資訊表之後所儲存的一或多個子資訊表,接著,在步驟S35中,處理器211從所述一或多個子資訊表中選擇第一子資訊表,並且根據所述第一子資訊表來更新所述記憶體中的所述總資訊表,其中所述第一子資訊表的時間戳記大於所述總資訊表的時間戳記。也就是說,所述第一子資訊表的被儲存至可複寫式非揮發性記憶體模組220的時間會晚於所述總資訊表被儲存至可複寫式非揮發性記憶體模組220的時間。
接著,處理器211會從所述一或多個子資訊表中選擇其中一個子資訊表(亦稱,第一子資訊表)來進行總資訊表的更新。更詳細來說,處理器211會根據所述第一子資訊表的多個第一子資料所記錄的多個索引碼來辨識多個實體單元中的分別對應所述第一子資料的多個實體單元(亦稱,第二實體單元)。即,如上述,每個第一子資料所記錄的索引碼會對應一個實體單元,並且此實體單元的抹除次數值與實體單元狀態會被記錄至對應的第一子資料。
基此,處理器211可根據分別對應所述多個第二實體單元的所述多個第一子資料所記錄的多個第二抹除次數值來更新記憶體中的所述總資訊表中分別對應所述多個第二實體單元的多個第二總資料所記錄的抹除次數值,即,處理器211可根據儲存時間較晚的子資訊表所記錄的對應多個第二實體單元的多個抹除次數值來更新記憶體中的總資訊表的對應多個第二實體單元的抹除次數值(其被記錄於對應多個第二實體單元的多個第二總資料中)。
相似地,處理器211可根據所述多個第一子資料所記錄的多個第二實體單元狀態來更新該些第二總資料所記錄的實體單元狀態。
在所有儲存時間晚於總資訊表的子資訊表皆被選擇且皆被用以更新總資訊表後,步驟S35已完成。然而,為了恢復可能存在的尚未被儲存至可複寫式非揮發性記憶體模組220的子資訊表。處理器211會接續至步驟S37,以利用儲存在實體單元中的實體單元資訊來取得對應上述的子資訊表所記錄的子資料的實體單元的資訊(如,對應所述實體單元的抹除次數值、實體單元狀態),以進一步更新總資訊表。
在步驟S37中,處理器211從所述一或多個子資訊表中辨識最新的第二子資訊表,並且根據所述第二子資訊表的配置序列來辨識多個第一實體單元。具體來說,儲存在可複寫式非揮發性記憶體模組220的最新的子資訊表的配置序列記錄了在特定事件發生的當下,處理器211所使用的當前配置序列的多個索引碼。所述多個索引碼分別對應多個實體單元(亦稱,第一實體單元)。換句話說,在特定事件發生時,所述多個第一實體單元中的一或多個實體單元可能已經被配置且被寫入對應的實體單元資訊,但是此實體單元資訊所記錄的資訊(如,抹除次數值、實體單元狀態)卻未被記錄於當時維護於記憶體中的子資訊表與總資訊表中。
基此,在辨識出所述多個第一實體單元後,在步驟S39中,處理器211會根據分別儲存於所述多個第一實體單元的多個第一實體單元資訊來更新所述記憶體中的所述總資訊表。具體來說,對每一個第一實體單元,處理器211會找尋是否已儲存一實體單元資訊(亦稱,第一實體單元資訊)。接著,處理器211根據分別對應所述多個第一實體單元的所述多個第一實體單元資訊所記錄的多個第一抹除次數值來更新記憶體中的總資訊表中分別對應所述多個第一實體單元的多個第一總資料所記錄的抹除次數值;以及根據所述多個第一實體單元資訊所分別記錄的多個第一實體單元狀態來更新所述多個第一總資料所記錄的實體單元狀態。
換言之,若一第一實體單元儲存有第一實體單元資訊,處理器211會根據此第一實體單元定位總資訊表中對應此第一實體單元的第一總資料,並且利用第一實體單元資訊的時間戳記、抹除次數值與實體單元狀態值來更新第一總資料的時間戳記、抹除次數值與實體單元狀態值。
應注意的是,在另一實施例中,處理器211亦可直接根據時間戳記,從可複寫式非揮發性記憶體模組220所記錄的實體單元資訊中找尋時間戳記大於最新的子資訊表的時間戳記的一或多個實體單元資訊作為第一實體單元資訊。即,在此另一實施例中,儲存至可複寫式非揮發性記憶體模組220的子資訊表並不需要記錄配置陣列。
當處理器211執行完步驟S39,記憶體中的總資訊表已根據所有第一實體單元資訊被更新後,處理器211完成上述的資料恢復操作。
綜上所述,本發明實施例所提供的資料備份方法、資料恢復方法以及儲存控制器,可在初次寫入一實體單元時,記錄對應的實體單元資訊至所述實體單元,將對應當前狀態改變的實體單元的實體單元狀態與抹除次數值記錄至子資訊表,並且當一定數目之子資訊表被寫入至可複寫式非揮發性記憶體模組時,再將用以記錄可複寫式非揮發性記憶體模組的全部實體單元的總資訊表寫入至可複寫式非揮發性記憶體模組,以分段記錄狀態改變的實體單元。如此一來,系統可利用較低的資源來記錄/備份已改變的實體單元狀態,增加了寫入操作的平順性與可複寫式非揮發性記憶體模組的使用壽命,進而增進了工作效率。此外,本發明實施例所提供的資料備份方法、資料恢復方法以及儲存控制器,可利用分於不同時機點所儲存的不同類型的實體單元資訊、子資訊表與總資訊表,在利用較少資源進行上述資料備份方法的情況下,還可有效率且安全地恢復總資訊表與其中的對應可複寫式非揮發性記憶體模組的所有實體單元的實體單元狀態資訊。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S23、S25、S27、S29‧‧‧資料備份方法的流程步驟
S31、S33、S35、S37、S39‧‧‧資料恢復方法的流程步驟
MIT‧‧‧總資訊表
SIT1、SIT2‧‧‧子資訊表
TT_MIT、TT_SIT1、TT_SIT2‧‧‧表類型
TS_MIT、TS_MD(1)、TS_SIT1、TS_SIT2、TS_PUI‧‧‧時間戳記
MD(1)、MD(2)~MD(M)‧‧‧總資料
AD_MIT、AD_SIT1、AD_SIT2、AD_PUI‧‧‧輔助資料
IDX_MD(1)、IDX_PA_SIT1(1)、IDX_PA_SIT1(1)~IDX_PA_SIT1(X-1)、IDX_PA_SIT1(X)、IDX_SD2(1)‧‧‧索引碼
PA_SIT1、PA_SIT2‧‧‧配置陣列
SD1、SD2‧‧‧子資料區段
SD2(1)~SD2(X)‧‧‧子資料
BST_MD(1)、BST_SD2(2)、BST_PUI‧‧‧實體單元狀態
PEC_MD(1)、PEC SD2(2)、PEC _PUI‧‧‧抹除次數值
60(1)、60(2)~60(Z-1)、60(Z)‧‧‧實體頁面
60‧‧‧實體單元
PUI‧‧‧實體單元資訊
UD1‧‧‧寫入資料
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的資料備份方法的流程圖。 圖3是根據本發明的一實施例所繪示的資料恢復方法的流程圖。 圖4A為根據本發明的一實施例所繪示的總資訊表的資料結構示意圖。 圖4B為根據本發明的一實施例所繪示的總資訊表中的總資料的資料結構示意圖。 圖5A為根據本發明的一實施例所繪示的初始的子資訊表的資料結構示意圖。 圖5B為根據本發明的一實施例所繪示的子資訊表的資料結構示意圖。 圖5C為根據本發明的一實施例所繪示的子資訊表中的子資料的資料結構示意圖。 圖5D為根據本發明的一實施例所繪示的子資訊表中的配置陣列的資料結構示意圖。 圖6A為根據本發明的一實施例所繪示的實體單元資訊的儲存位置的示意圖。 圖6B為根據本發明的一實施例所繪示的實體單元資訊的資料結構示意圖。
Claims (18)
- 一種資料備份方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體單元,所述方法包括: 當配置該些實體單元中用以執行一第一寫入操作的一第一實體單元時,根據該第一寫入操作設定對應該第一實體單元的一第一實體單元狀態; 根據該第一實體單元狀態與該第一實體單元的一第一抹除次數值更新一記憶體中的一總資訊表中對應該第一實體單元的一第一總資料,並且產生且附加對應該第一實體單元的一第一子資料至該記憶體中的一子資訊表以更新該子資訊表,其中該子資訊表包括對應該子資訊表之時間戳記、一配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態; 若該第一實體單元的該第一實體單元狀態為一空狀態且開始執行該第一寫入操作,依序寫入對應該第一實體單元的一第一實體單元資訊與該第一寫入資料至該第一實體單元; 當更新後之該子資訊表的所附加的所述一或多個子資料的總數目等於一第一預定值,將該記憶體中的更新後之該子資訊表寫入至該可複寫式非揮發性記憶體模組,重置該記憶體的該子資訊表,並且累加一計數值;以及 當累加後之該計數值等於一第二預定值,將該記憶體中的更新後之該總資訊表寫入至該可複寫式非揮發性記憶體模組,並且歸零該計數值。
- 如申請專利範圍第1項所述的資料備份方法, 其中該總資訊表包括對應該總資訊表之時間戳記與分別對應多個實體單元的多個總資料,其中該些總資料的每一個總資料記錄對應的實體單元的抹除次數值與實體單元狀態, 其中該第一實體單元資訊記錄對應該第一實體單元資訊的時間戳記、該第一抹除次數值與該第一實體單元狀態。
- 如申請專利範圍第2項所述的資料備份方法,所述方法更包括: 根據更新該記憶體中的該總資訊表中對應該第一實體單元的該第一總資料的當前時間來更新對應該總資訊表的該時間戳記; 根據附加對應該第一實體單元的該第一子資料至該記憶體中的該子資訊表的當前時間來更新對應該子資訊表的該時間戳記;以及 根據開始執行該第一寫入操作的當前時間來記錄對應該第一實體單元資訊的該時間戳記。
- 如申請專利範圍第2項所述的資料備份方法,其中該子資訊表的該配置陣列記錄分別對應該些實體單元中的多個第二實體單元的多個索引碼,其中該些索引碼的總數目為該第一預定值,所述方法更包括: 根據儲存於該可複寫式非揮發性記憶體模組中最新的子資訊表的配置陣列的多個索引碼來產生一當前配置陣列,其中上述配置該些實體單元中用以執行該第一寫入操作的該第一實體單元的步驟包括: 當執行該第一寫入操作之前,辨識該當前配置陣列的該些索引碼中尚未被選擇之一或多個第一索引碼; 選擇所述一或多個第一索引碼中排序最前面之一第二索引碼;以及 根據所選擇之該第二索引碼來辨識對應該第二索引碼的該第一實體單元,並且配置該第一實體單元以執行該第一寫入操作。
- 如申請專利範圍第4項所述的資料備份方法,所述方法更包括: 在該儲存裝置的一開卡程序中產生且寫入初始的該總資訊表與初始的該子資訊表於該記憶體中; 寫入該記憶體中的初始的該總資訊表與初始的該子資訊表至該可複寫式非揮發性記憶體模組,並且重置該記憶體中的該子資訊表; 其中初始的該子資訊表不具有任何子資料, 其中初始的該總資訊表的該時間戳記為一第一初始時間戳記,並且初始的該子資訊表的該時間戳記為一第二初始時間戳記。
- 如申請專利範圍第5項所述的資料備份方法,其中上述重置記憶體中的該子資訊表的步驟包括: 清空該子資訊表中所有的子資料; 從該些實體單元中選擇空的多個第三實體單元,其中該些第三實體單元的總數目為該第一預定值;以及 將分別對應該些第三實體單元的多個第三索引碼取代該子資訊表之該配置陣列的所有索引碼。
- 一種資料恢復方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體單元,所述方法包括: 反應於已發生的一特定事件,從該可複寫式非揮發性記憶體模組中讀取最新的一總資訊表,並且將該總資訊表寫入至一記憶體,其中該總資訊表包括對應該總資訊表之時間戳記與分別對應多個實體單元的多個總資料,其中該些總資料的每一個總資料記錄對應的實體單元的抹除次數值與實體單元狀態; 辨識儲存在該可複寫式非揮發性記憶體模組的一或多個子資訊表,其中所述一或多個子資訊表中的每一個子資訊表包括對應該子資訊表之時間戳記、一配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態; 從所述一或多個子資訊表中選擇一第一子資訊表,並且根據該第一子資訊表來更新該記憶體中的該總資訊表,其中該第一子資訊表的時間戳記大於該總資訊表的時間戳記; 從所述一或多個子資訊表中辨識最新的一第二子資訊表,並且根據該第二子資訊表的配置陣列來辨識多個第一實體單元; 根據分別儲存於該些第一實體單元的多個第一實體單元資訊來更新該記憶體中的該總資訊表。
- 如申請專利範圍第7項所述的資料恢復方法,其中該些第一實體單元資訊分別記錄對應的第一實體單元的時間戳記、抹除次數值與實體單元狀態,其中上述根據分別儲存於該些第一實體單元的該些第一實體單元資訊來更新該記憶體中的該總資訊表的步驟包括: 根據分別對應該些第一實體單元的該些第一實體單元資訊所記錄的多個第一抹除次數值來更新該記憶體中的該總資訊表中分別對應該些第一實體單元的多個第一總資料所記錄的抹除次數值;以及 根據該些第一實體單元資訊所分別記錄的多個第一實體單元狀態來更新該些第一總資料所記錄的實體單元狀態。
- 如申請專利範圍第7項所述的資料恢復方法,其中上述根據該第一子資訊表來更新該記憶體中的該總資訊表的步驟包括: 根據該第一子資訊表的多個第一子資料所記錄的多個索引碼來辨識該些實體單元中的分別對應該些第一子資料的多個第二實體單元; 根據分別對應該些第二實體單元的該些第一子資料所記錄的多個第二抹除次數值來更新該記憶體中的該總資訊表中分別對應該些第二實體單元的多個第二總資料所記錄的抹除次數值;以及 根據該些第一子資料所記錄的多個第二實體單元狀態來更新該些第二總資料所記錄的實體單元狀態。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括: 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體單元;以及 一處理器,耦接至該記憶體介面控制電路與一記憶體, 其中當配置該些實體單元中用以執行一第一寫入操作的一第一實體單元時,該處理器用以根據該第一寫入操作設定對應該第一實體單元的一第一實體單元狀態, 其中該處理器更用以根據該第一實體單元狀態與該第一實體單元的一第一抹除次數值更新該記憶體中的一總資訊表中對應該第一實體單元的一第一總資料,並且產生且附加對應該第一實體單元的一第一子資料至該記憶體中的一子資訊表以更新該子資訊表,其中該子資訊表包括對應該子資訊表之時間戳記、一配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態, 其中若該第一實體單元的該第一實體單元狀態為一空狀態且該處理器開始執行該第一寫入操作,該處理器更用以依序寫入對應該第一實體單元的一第一實體單元資訊與該第一寫入資料至該第一實體單元, 其中當更新後之該子資訊表的所附加的所述一或多個子資料的總數目等於一第一預定值,該處理器更用以將該記憶體中的更新後之該子資訊表寫入至該可複寫式非揮發性記憶體模組,重置該記憶體的該子資訊表,並且累加一計數值, 其中當累加後之該計數值等於一第二預定值,該處理器更用以將該記憶體中的更新後之該總資訊表寫入至該可複寫式非揮發性記憶體模組,並且歸零該計數值。
- 如申請專利範圍第10項所述的儲存控制器, 其中該總資訊表包括對應該總資訊表之時間戳記與分別對應多個實體單元的多個總資料,其中該些總資料的每一個總資料記錄對應的實體單元的抹除次數值與實體單元狀態, 其中該第一實體單元資訊記錄對應該第一實體單元資訊的時間戳記、該第一抹除次數值與該第一實體單元狀態。
- 如申請專利範圍第11項所述的儲存控制器, 其中該處理器根據更新該記憶體中的該總資訊表中對應該第一實體單元的該第一總資料的當前時間來更新對應該總資訊表的該時間戳記, 其中該處理器根據附加對應該第一實體單元的該第一子資料至該記憶體中的該子資訊表的當前時間來更新對應該子資訊表的該時間戳記, 其中該處理器根據開始執行該第一寫入操作的當前時間來記錄對應該第一實體單元資訊的該時間戳記。
- 如申請專利範圍第11項所述的儲存控制器,其中該子資訊表的該配置陣列記錄分別對應該些實體單元中的多個第二實體單元的多個索引碼,其中該些索引碼的總數目為該第一預定值, 其中該處理器根據儲存於該可複寫式非揮發性記憶體模組中最新的子資訊表的配置陣列的多個索引碼來產生一當前配置陣列,其中在上述配置該些實體單元中用以執行該第一寫入操作的該第一實體單元的運作中, 當執行該第一寫入操作之前,該處理器辨識該當前配置陣列的該些索引碼中尚未被選擇之一或多個第一索引碼, 其中該處理器選擇所述一或多個第一索引碼中排序最前面之一第二索引碼, 其中該處理器根據所選擇之該第二索引碼來辨識對應該第二索引碼的該第一實體單元,並且配置該第一實體單元以執行該第一寫入操作。
- 如申請專利範圍第13項所述的儲存控制器, 其中該處理器在該儲存裝置的一開卡程序中產生且寫入初始的該總資訊表與初始的該子資訊表於該記憶體中, 其中該處理器寫入該記憶體中的初始的該總資訊表與初始的該子資訊表至該可複寫式非揮發性記憶體模組,並且重置該記憶體中的該子資訊表, 其中初始的該子資訊表不具有任何子資料, 其中初始的該總資訊表的該時間戳記為一第一初始時間戳記,並且初始的該子資訊表的該時間戳記為一第二初始時間戳記。
- 如申請專利範圍第14項所述的儲存控制器,在上述重置記憶體中的該子資訊表的運作中, 該處理器清空該子資訊表中所有的子資料, 其中該處理器從該些實體單元中選擇空的多個第三實體單元,其中該些第三實體單元的總數目為該第一預定值, 其中該處理器將分別對應該些第三實體單元的多個第三索引碼取代該子資訊表之該配置陣列的所有索引碼。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括: 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體單元;以及 一處理器,耦接至該記憶體介面控制電路與一記憶體, 其中反應於已發生的一特定事件,該處理器用以從該可複寫式非揮發性記憶體模組中讀取最新的一總資訊表,並且將該總資訊表寫入至一記憶體,其中該總資訊表包括對應該總資訊表之時間戳記與分別對應多個實體單元的多個總資料,其中該些總資料的每一個總資料記錄對應的實體單元的抹除次數值與實體單元狀態, 其中該處理器更用以辨識儲存在該可複寫式非揮發性記憶體模組的一或多個子資訊表,其中所述一或多個子資訊表中的每一個子資訊表包括對應該子資訊表之時間戳記、一配置陣列與分別對應一或多個實體單元之一或多個子資料,其中所述一或多個子資料記錄對應的實體單元的索引碼、抹除次數值與實體單元狀態, 其中該處理器更用以從所述一或多個子資訊表中選擇一第一子資訊表,並且根據該第一子資訊表來更新該記憶體中的該總資訊表,其中該第一子資訊表的時間戳記大於該總資訊表的時間戳記, 其中該處理器更用以從所述一或多個子資訊表中辨識最新的一第二子資訊表,並且根據該第二子資訊表的配置陣列來辨識多個第一實體單元, 其中該處理器更用以根據分別儲存於該些第一實體單元的多個第一實體單元資訊來更新該記憶體中的該總資訊表。
- 如申請專利範圍第16項所述的儲存控制器,其中該些第一實體單元資訊分別記錄對應的第一實體單元的時間戳記、抹除次數值與實體單元狀態,其中在上述該處理器更用以根據分別儲存於該些第一實體單元的該些第一實體單元資訊來更新該記憶體中的該總資訊表的運作中, 該處理器根據分別對應該些第一實體單元的該些第一實體單元資訊所記錄的多個第一抹除次數值來更新該記憶體中的該總資訊表中分別對應該些第一實體單元的多個第一總資料所記錄的抹除次數值, 其中該處理器根據該些第一實體單元資訊所分別記錄的多個第一實體單元狀態來更新該些第一總資料所記錄的實體單元狀態。
- 如申請專利範圍第16項所述的儲存控制器,其中在上述根據該第一子資訊表來更新該記憶體中的該總資訊表的運作中, 該處理器根據該第一子資訊表的多個第一子資料所記錄的多個索引碼來辨識該些實體單元中的分別對應該些第一子資料的多個第二實體單元, 其中該處理器根據分別對應該些第二實體單元的該些第一子資料所記錄的多個第二抹除次數值來更新該記憶體中的該總資訊表中分別對應該些第二實體單元的多個第二總資料所記錄的抹除次數值, 其中該處理器根據該些第一子資料所記錄的多個第二實體單元狀態來更新該些第二總資料所記錄的實體單元狀態。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106124699A TWI621018B (zh) | 2017-07-24 | 2017-07-24 | 資料備份方法、資料恢復方法以及儲存控制器 |
US15/790,049 US10430288B2 (en) | 2017-07-24 | 2017-10-22 | Data backup method, data recovery method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106124699A TWI621018B (zh) | 2017-07-24 | 2017-07-24 | 資料備份方法、資料恢復方法以及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI621018B true TWI621018B (zh) | 2018-04-11 |
TW201908978A TW201908978A (zh) | 2019-03-01 |
Family
ID=62639878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106124699A TWI621018B (zh) | 2017-07-24 | 2017-07-24 | 資料備份方法、資料恢復方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10430288B2 (zh) |
TW (1) | TWI621018B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI671631B (zh) * | 2018-08-01 | 2019-09-11 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI802340B (zh) * | 2022-03-25 | 2023-05-11 | 啟碁科技股份有限公司 | 檔案系統之備份與恢復方法及其通訊裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140101371A1 (en) * | 2012-10-10 | 2014-04-10 | Apple Inc. | Systems and methods for nonvolatile memory performance throttling |
TWI563509B (en) * | 2015-07-07 | 2016-12-21 | Phison Electronics Corp | Wear leveling method, memory storage device and memory control circuit unit |
TWI570560B (zh) * | 2011-11-21 | 2017-02-11 | 桑迪士克科技有限責任公司 | 為動態讀取所使用之清除技術 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762620B2 (en) * | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US8762661B2 (en) * | 2008-09-18 | 2014-06-24 | Seagate Technology Llc | System and method of managing metadata |
US9268646B1 (en) * | 2010-12-21 | 2016-02-23 | Western Digital Technologies, Inc. | System and method for optimized management of operation data in a solid-state memory |
US9009396B2 (en) * | 2011-09-23 | 2015-04-14 | Avalanche Technology, Inc. | Physically addressed solid state disk employing magnetic random access memory (MRAM) |
-
2017
- 2017-07-24 TW TW106124699A patent/TWI621018B/zh active
- 2017-10-22 US US15/790,049 patent/US10430288B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570560B (zh) * | 2011-11-21 | 2017-02-11 | 桑迪士克科技有限責任公司 | 為動態讀取所使用之清除技術 |
US20140101371A1 (en) * | 2012-10-10 | 2014-04-10 | Apple Inc. | Systems and methods for nonvolatile memory performance throttling |
TWI563509B (en) * | 2015-07-07 | 2016-12-21 | Phison Electronics Corp | Wear leveling method, memory storage device and memory control circuit unit |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI671631B (zh) * | 2018-08-01 | 2019-09-11 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
US10642731B2 (en) | 2018-08-01 | 2020-05-05 | Shenzhen Epostar Electronics Limited Co. | Memory management method and storage controller |
Also Published As
Publication number | Publication date |
---|---|
US20190026027A1 (en) | 2019-01-24 |
US10430288B2 (en) | 2019-10-01 |
TW201908978A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI638263B (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
TWI579696B (zh) | 資料重建方法與系統及其記憶體控制電路單元 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI498902B (zh) | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI463313B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
CN106708416B (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
TWI671631B (zh) | 記憶體管理方法以及儲存控制器 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9965400B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
TW201835769A (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 | |
US10339045B2 (en) | Valid data management method and storage controller | |
CN110390985B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TW201944421A (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI641948B (zh) | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI621018B (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
TW201820114A (zh) | 資料寫入方法以及儲存控制器 | |
TWI695263B (zh) | 記憶體管理方法以及儲存控制器 | |
CN110825653B (zh) | 存储器管理方法以及存储控制器 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN110825310A (zh) | 存储器管理方法以及存储控制器 |