TW202207037A - 記憶體儲存裝置 - Google Patents

記憶體儲存裝置 Download PDF

Info

Publication number
TW202207037A
TW202207037A TW109126526A TW109126526A TW202207037A TW 202207037 A TW202207037 A TW 202207037A TW 109126526 A TW109126526 A TW 109126526A TW 109126526 A TW109126526 A TW 109126526A TW 202207037 A TW202207037 A TW 202207037A
Authority
TW
Taiwan
Prior art keywords
mapping table
data
blocks
physical blocks
memory controller
Prior art date
Application number
TW109126526A
Other languages
English (en)
Other versions
TWI749685B (zh
Inventor
李育哲
李俊昌
Original Assignee
宇瞻科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 宇瞻科技股份有限公司 filed Critical 宇瞻科技股份有限公司
Priority to TW109126526A priority Critical patent/TWI749685B/zh
Priority to CN202010884832.XA priority patent/CN114064352A/zh
Priority to US17/096,978 priority patent/US11294779B2/en
Application granted granted Critical
Publication of TWI749685B publication Critical patent/TWI749685B/zh
Publication of TW202207037A publication Critical patent/TW202207037A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種記憶體儲存裝置,包括非揮發性記憶體晶片、連接器及記憶體控制器。非揮發性記憶體晶片具有複數個實體區塊,劃分為存取分割區與隱藏分割區。記憶體控制器維護第一映射表以記錄多個第一邏輯區塊以及所映射之該些實體區塊。在備份操作時,記憶體控制器根據第一映射表複製所映射之該些實體區塊上的資料至隱藏分割區,以形成複數個備份實體區塊,同時建立第二映射表,並在其上配置多個第二邏輯區塊以映射該些備份實體區塊。在還原操作時,記憶體控制器根據第二映射表將該些第二邏輯區塊映射至該些備份實體區塊以還原進行備份操作時之環境。

Description

記憶體儲存裝置
本發明關於半導體裝置,特別是一種記憶體儲存裝置。
隨著科技進步,儲存裝置的可儲存空間越來越大,儲存裝置的管理方式也越來越複雜。使用者可能誤將儲存裝置更動後才想恢復原先的資料,或誤用不相容之第三方軟體,而造成儲存裝置不穩定或是資料毀損的情況。在相關技術中,資料還原軟體往往都要搭配作業系統之檔案管理格式才能進行資料還原,資料還原的速度緩慢或因為不符檔案管理系統格式而無法使用,造成資料還原的效果不佳。
本發明實施例提供一種記憶體儲存裝置,包括非揮發性記憶體晶片、連接器及記憶體控制器。非揮發性記憶體晶片具有複數個實體區塊,複數個實體區塊至少劃分為存取分割區與隱藏分割區。連接器電性連接主機系統。記憶體控制器電性連接非揮發性記憶體晶片與連接器,記憶體控制器用以配置多個第一邏輯區塊以映射存取分割區上的該些實體區塊。記憶體控制器將所配置的該些第一邏輯區塊提供給主機系統,並且維護第一映射表以記錄該些第一邏輯區塊以及所映射之該些實體區塊。當進行資料備份操作時,記憶體控制器根據第一映射表以複製所映射之該些實體區塊上的資料至隱藏分割區,以形成備份實體區塊,同時建立第二映射表,並在其上配置多個第二邏輯區塊以映射備份實體區塊。當進行資料還原操作時,記憶體控制器係根據第二映射表上之該些第二邏輯區塊以映射至備份實體區塊,主機系統得以根據第二映射表以還原至進行資料備份操作時之環境。
第1圖係為本發明實施例中一種記憶體儲存系統1之方塊圖。記憶體儲存系統1包括主機系統10及記憶體儲存裝置12。記憶體儲存裝置12包括非揮發性記憶體晶片120、連接器124及記憶體控制器126。存取記憶體儲存裝置12無須經由第三方軟體而可自動觸發資料備份操作及資料還原操作,在使用者沒有察覺的情況下快速且完整的還原存取記憶體儲存裝置12上之資料。
主機系統10可為電腦,記憶體儲存裝置12可為固態硬碟、隨身碟、或記憶卡,非揮發性記憶體晶片120可為NAND型快閃記憶體。主機系統10可存取記憶體儲存裝置12以進行開機及其他資料存取操作。非揮發性記憶體晶片120可具有複數個實體區塊,複數個實體區塊可至少劃分為存取分割區121及隱藏分割區122。在一些實施例中,複數個實體區塊可劃分為存取分割區121、隱藏分割區122及預留(over-provisioning, OP)區。連接器124可電性連接主機系統10。記憶體控制器126可電性連接非揮發性記憶體晶片120與連接器124。主機系統10可透過連接器124及記憶體控制器126讀取存取分割區121及隱藏分割區122中之一者以進行開機操作及其他資料操作,及使用預留區執行在正常運作時要處理的背景處理程序,背景處理程序包括資料備份操作、壞塊(bad block)管理操作及其他資料操作。在一些實施例中,存取分割區121及隱藏分割區122之可儲存空間的大小可相同。在另一些實施例中,存取分割區121及隱藏分割區122之可儲存空間的大小可不同。預留區之可儲存空間的大小可小於存取分割區121之可儲存空間的大小或隱藏分割區122之可儲存空間的大小。例如,存取分割區121之可儲存空間可為100MB,或隱藏分割區122之可儲存空間可為100MB,預留區之可儲存空間可為16MB。
記憶體控制器126可載入韌體以控制記憶體儲存裝置12的開機操作、資料備份操作、資料還原操作及其他資料存取操作。記憶體儲存裝置12可另包括內部記憶體,內部記憶體可儲存韌體。當進行資料寫入操作或資料複製操作時,記憶體控制器126可使用預定寫入演算法,例如耗損平均(wear leveling)演算法將資料寫入非揮發性記憶體晶片120,使資料平均地被寫入非揮發性記憶體晶片120中的所有實體區塊,避免僅在特定實體區塊寫入資料及抹除資料而使特定實體區塊提早損壞,導致非揮發性記憶體晶片120因壞塊過多而無法繼續使用。
第2圖係為記憶體儲存裝置12的一種寫入操作之示意圖,顯示主機系統10僅可存取非揮發性記憶體晶片120之存取分割區121的實施例。當主機系統10對記憶體儲存裝置12進行寫入操作時,記憶體控制器126可經由連接器124從主機系統10接收資料,及根據預定寫入演算法將資料寫入存取分割區121之多個實體區塊。資料可為開機時使用的系統檔、用戶資料或其他資料。記憶體控制器126可配置多個第一邏輯區塊以映射存取分割區121上的該些實體區塊。記憶體控制器126可將所配置的該些第一邏輯區塊提供給主機系統10,並且維護第一映射表T21以記錄該些第一邏輯區塊以及所映射之該些實體區塊。第一映射表T21可儲存在存取分割區121,及可為邏輯區塊位址至實體區塊位址(Logical block address to physical block address, L2P)表,用以將該些第一邏輯區塊之邏輯區塊位址(logical block addresses, LBA)映射至存取分割區121之該些實體區塊之實體區塊位址(physical block addresses, PBA)。例如,第一映射表T21可用以將邏輯區塊位址”0”映射至實體區塊位址”0x100”,將邏輯區塊位址”1”映射至實體區塊位址”0x101”, 將邏輯區塊位址”2”映射至實體區塊位址”0x103”, 將邏輯區塊位址”3”映射至實體區塊位址”0x104”。隱藏分割區122並無任何資料,主機系統10無法存取隱藏分割區122。
第3圖係為記憶體儲存裝置12的一種資料備份操作之示意圖。當進行資料備份操作時,記憶體控制器126可根據第一映射表T21以預定寫入演算法將所映射之該些實體區塊上的資料複製至隱藏分割區122,以形成複數個備份實體區塊,同時建立第二映射表T22,並在第二映射表T22上配置多個第二邏輯區塊以映射該些備份實體區塊。第二映射表T22可儲存於隱藏分割區122,及可為邏輯區塊位址至實體區塊位址表,用以將該些第二邏輯區塊之邏輯區塊位址映射至隱藏分割區122之該些實體區塊之實體區塊位址。第二映射表T22可用以將邏輯區塊位址”100”映射至實體區塊位址”0x200”,將邏輯區塊位址”101”映射至實體區塊位址”0x201”,將邏輯區塊位址”102”映射至實體區塊位址”0x202”,將邏輯區塊位址”103”映射至實體區塊位址”0x203”。每個第一邏輯區塊可以固定位址差轉換至該些第二邏輯區塊中之一者。例如,第一邏輯區塊之邏輯區塊位址”0”、”1”、”2”、”3”可以固定位址差”100”分別轉換至該些第二邏輯區塊之邏輯區塊位址”100”、”101”、”102”、”103”。
在一些實施例中,資料備份操作可由使用者觸發。使用者可於主機系統10上執行預設之備份指令,當記憶體控制器126通過主機系統10及連接器124收到備份指令後,記憶體控制器126可將在存取分割區121上的資料根據資料備份操作備份至隱藏分割區122。在另一些實施例中,資料備份操作可由記憶體儲存裝置12根據開機成功的次數而自動觸發。當記憶體儲存裝置12開機時,記憶體控制器126可記錄啟動程序(boot sequence)。當開機時,記憶體控制器126可從主機系統10接收啟動程序,啟動程序可包含一組邏輯區塊位址,對應該些第一邏輯區塊之一組邏輯區塊。例如啟動程序可包含{0, 1, 0, 1, 2, 3}。記憶體控制器126可將啟動程序記錄於記憶體儲存裝置12中,例如非揮發性記憶體晶片120、記憶體控制器126或記憶體儲存裝置12中之其他記憶體。記憶體控制器126可根據第一映射表T21將該些第一邏輯區塊之該組邏輯區塊映射至存取分割區121上的該些實體區塊之一組實體區塊而執行啟動程序。例如,記憶體控制器126可根據第一映射表T21將啟動程序{0, 1, 0, 1, 2, 3}映射為該組實體區塊的對應組實體區塊位址{0x100, 0x101, 0x100, 0x101, 0x103, 0x104}以根據對應組實體區塊位址{0x100, 0x101, 0x100, 0x101, 0x103, 0x104}上的資料進行開機。當記憶體控制器126根據該些第一邏輯區塊映射至該存取分割區121上的該些實體區塊而成功執行啟動程序達到第二次數時,則記憶體控制器126可判定對應組實體區塊位址{0x100, 0x101, 0x100, 0x101, 0x103, 0x104}上的資料正確而可進行資料備份操作。第二次數可例如為1次。
在一些實施例中,若在進行資料備份操作的過程中發生斷電,則在復電後,記憶體控制器126再次根據第一映射表T21以複製位於存取分割區121之該些實體區塊上的該資料至隱藏分割區122之該些備份實體區塊,及對應地更新第二映射表T22,值得一提的是,在上述復電後之資料備份操作中,均可以從第一映射表T21裡因斷電而被中斷處理的位址繼續執行資料備份,而不需從頭複製整個第一映射表T21中所映射到之所有實體區塊,進而可使本發明之記憶體儲存裝置不因斷電而影響其進行備份時之效率。被中斷處理的位址可為第一映射表T21中的邏輯位址或實體位址。在一些實施例中,記憶體控制器126可於背景程序中執行資料備份操作。
第4圖係為記憶體儲存裝置12的一種資料還原操作之示意圖,第一映射表T21中畫斜線之實體區塊位址表示其上儲存之資料已被部分或全部覆蓋或是被部分或全部破壞。當主機系統10對記憶體儲存裝置12之存取分割區121進行寫入操作時,存取分割區121上之資料可能被部分或全部覆蓋或是被部分或全部破壞。若被覆蓋或破壞的資料為重要資料,例如用於開機之系統檔,則記憶體儲存裝置12需要進行資料還原操作。當進行資料還原操作時,記憶體控制器126可根據第二映射表T22上之該些第二邏輯區塊以映射至備份實體區塊,使主機系統10得以根據第二映射表T22還原至進行資料備份操作時之環境。舉例而言,第一映射表T21顯示實體區塊位址”0x101”及”0x104”上之資料已被覆蓋或破壞,實體區塊位址”0x101”及”0x104”上之資料為用於開機之系統檔,因此記憶體控制器126可進行資料還原操作。具體而言,當進行資料還原操作時,記憶體控制器126可將該些第一邏輯區塊之一組邏輯區塊之一組位址轉換至該些第二邏輯區塊之一組邏輯區塊之一組位址,再根據第二映射表T22將該些第二邏輯區塊之該組邏輯區塊之該組位址映射至該些備份實體區塊之一組實體區塊之一組位址以執行啟動程序。舉例而言,記憶體控制器126可將啟動程序{0, 1, 0, 1, 2, 3}轉換至該些第二邏輯區塊之一組邏輯區塊的一組邏輯位址{100, 101, 100, 101, 102, 103},及根據第二映射表T22將該些第二邏輯區塊之該組邏輯區塊的該組邏輯位址{100, 101, 100, 101, 102, 103}映射為該些備份實體區塊之該組實體區塊的對應組實體區塊位址{0x200, 0x201, 0x200, 0x201, 0x202, 0x203}以根據對應組實體區塊位址{0x200, 0x201, 0x200, 0x201, 0x202, 0x203}上的資料進行開機。
在一些實施例中,資料還原操作可由使用者觸發。使用者可於主機系統10上執行預設之還原指令,當記憶體控制器126通過主機系統10及連接器124收到還原指令後,記憶體控制器126可根據資料還原操作讀取先前備份的資料及進行相應操作。在另一些實施例中,資料備份操作可由記憶體儲存裝置12根據開機失敗的次數而自動觸發。當開機時,記憶體控制器126可從主機系統10接收啟動程序以存取該些第一邏輯區塊之該組邏輯區塊。記憶體控制器126可根據第一映射表T21將該些第一邏輯區塊之該組邏輯區塊映射至存取分割區121上的該些實體區塊之該組實體區塊而執行啟動程序。當記憶體控制器126執行啟動程序第一次數後仍無法成功執行啟動程序時,則記憶體控制器126可進行資料還原操作。第一次數可例如為3次。舉例而言,由於實體區塊位址”0x101”及”0x104”上的資料已被覆蓋或破壞,記憶體控制器126無法根據對應組實體區塊位址{0x100, 0x101, 0x100, 0x101, 0x103, 0x104}成功進行開機。在無法根據對應組實體區塊位址{0x100, 0x101, 0x100, 0x101, 0x103, 0x104}成功進行開機3次後,記憶體控制器126可進行資料還原操作而改以對應組實體區塊位址{0x200, 0x201, 0x200, 0x201, 0x202, 0x203}上的資料進行開機。
一旦使用資料還原操作成功執行啟動程序後,記憶體儲存裝置12後續都可使用資料還原操作進行開機,直到再次執行啟動程序失敗為止。在一些實施例中,若記憶體儲存裝置12使用資料還原操作執行啟動程序第一次數後仍無法成功執行啟動程序時,則記憶體控制器126可切換至第一映射表T21以執行啟動程序。記憶體儲存裝置12可設置資料還原旗標(flag)以表示記憶體儲存裝置12是否在使用使用資料還原操作。當使用資料還原操作時,記憶體控制器126可將資料還原旗標設為第一邏輯準位,例如邏輯準位”H”,及先將第一邏輯區塊之該組邏輯區塊轉換至該些第二邏輯區塊之該組邏輯區塊,才根據第二映射表T22執行啟動程序;當未使用資料還原操作時,記憶體控制器126可將資料還原旗標設為第二邏輯準位,例如邏輯準位”L”,及根據第一映射表T21執行啟動程序。
第5圖係為記憶體儲存裝置12的另一種資料備份操作之示意圖。當記憶體控制器126將該些第二邏輯區塊映射至該些備份實體區塊,並使用資料還原操作成功執行啟動程序達到第三次數後,記憶體控制器126可進行資料備份操作,根據第二映射表T22將位於該些備份實體區塊上的資料以預定寫入演算法複製至存取分割區121,及對應地更新第一映射表T21。舉例而言,當進行資料備份操作時,記憶體控制器126可將隱藏分割區122之實體區塊位址”0x200”、”0x201”、“0x202”、”0x203”上之資料複製至存取分割區121之實體區塊位址”0x110”、”0x111”、“0x112”、”0x113”,及對應地更新第一映射表T21。第三次數可與第二次數相同或不同。例如第三次數可為1次。在一些實施例中,資料還原操作亦可由使用者觸發。使用者可於主機系統10上執行預設之備份指令,當記憶體控制器126通過主機系統10及連接器124收到備份指令後,記憶體控制器126可將在隱藏分割區122上的資料根據資料備份操作備份至存取分割區121。
在一些實施例中,若在進行資料備份操作的過程中發生斷電,則在復電後,記憶體控制器126再次根據第二映射表T22複製位於存取分割區121之該些實體區塊上的資料至隱藏分割區122之該些備份實體區塊,及對應地更新第二映射表T22。在一些實施例中,記憶體控制器126可於背景程序中執行資料備份操作。在上述復電後之資料備份操作中,均可以從第二映射表T22裡因斷電而被中斷處理的位址繼續執行資料備份,而不需從頭複製整個第二映射表T22中所映射到之所有實體區塊,進而可使本發明之記憶體儲存裝置不因斷電而影響其進行備份時之效率。被中斷處理的位址可為第二映射表T22中的邏輯位址或實體位址。
雖然第1圖至第5圖中的實施例僅將非揮發性記憶體晶片120劃分為存取分割區121及隱藏分割區122,在一些實施例中,非揮發性記憶體晶片120亦可劃分為存取分割區及複數個隱藏分割區。當進行資料備份操作時,記憶體控制器126可根據前述資料備份操作的原則將正在使用且成功執行啟動程序之分割區上之資料複製至其他未使用的分割區。當進行資料復原操作時,記憶體控制器126可根據固定順序或隨機順序切換至其他未使用的分割區中之一者而進行資料復原操作。
由於存取記憶體儲存裝置12無須經由第三方軟體而可自動觸發資料備份操作及資料還原操作,因此可在使用者沒有察覺的情況下快速且完整的還原存取記憶體儲存裝置12上之資料。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
1:記憶體儲存系統 10:主機系統 12:記憶體儲存裝置 120:非揮發性記憶體晶片 121:存取分割區 122:隱藏分割區 124:連接器 126:記憶體控制器 T21:第一映射表 T22:第二映射表 LBA:邏輯區塊位址 PBA:實體區塊位址
第1圖係為本發明實施例中一種記憶體儲存系統之方塊圖。 第2圖係為第1圖中之記憶體儲存裝置的一種寫入操作之示意圖。 第3圖係為第1圖中之記憶體儲存裝置的一種資料備份操作之示意圖。 第4圖係為第1圖中之記憶體儲存裝置的一種資料還原操作之示意圖。 第5圖係為第1圖中之記憶體儲存裝置的另一種資料備份操作之示意圖。
1:記憶體儲存系統
10:主機系統
12:記憶體儲存裝置
120:非揮發性記憶體晶片
121:存取分割區
122:隱藏分割區
124:連接器
126:記憶體控制器

Claims (11)

  1. 一種記憶體儲存裝置,包括: 一非揮發性記憶體晶片,具有複數個實體區塊,該些實體區塊至少劃分為一存取分割區與一隱藏分割區; 一連接器,電性連接一主機系統;以及 一記憶體控制器,電性連接該非揮發性記憶體晶片與該連接器,該記憶體控制器用以配置多個第一邏輯區塊以映射該存取分割區上的該些實體區塊; 其中該記憶體控制器將所配置的該些第一邏輯區塊提供給該主機系統,並且維護一第一映射表以記錄該些第一邏輯區塊以及所映射之該些實體區塊,當進行一資料備份操作時,該記憶體控制器根據該第一映射表以複製所映射之該些實體區塊上的資料至該隱藏分割區,以形成複數個備份實體區塊,同時建立一第二映射表,並在其上配置多個第二邏輯區塊以映射該些備份實體區塊,當進行一資料還原操作時,該記憶體控制器係根據該第二映射表將該些第二邏輯區塊以映射至該些備份實體區塊,該主機系統得以根據該第二映射表以還原至進行該資料備份操作時之環境。
  2. 如請求項1所述之記憶體儲存裝置,其中: 當存取該些第一邏輯區塊之一組邏輯區塊時,該記憶體控制器另根據該第一映射表將該些第一邏輯區塊之該組邏輯區塊映射至該存取分割區上的該些實體區塊之一組實體區塊以執行一啟動程序,及若該組邏輯區塊轉換至該存取分割區上的該些實體區塊之該組實體區塊一第一次數後仍無法成功執行該啟動程序,則進行該資料還原操作。
  3. 如請求項2所述之記憶體儲存裝置,其中: 當進行該資料還原操作時,該記憶體控制器係該些第一邏輯區塊之一組位址轉換至該些第二邏輯區塊之一組位址,再將該些第二邏輯區塊之該組位址映射至該些備份實體區塊之一組位址以執行該啟動程序。
  4. 如請求項2或3所述之記憶體儲存裝置,其中該啟動程序係記錄於該記憶體儲存裝置中。
  5. 如請求項1所述之記憶體儲存裝置,其中: 當該記憶體控制器根據該些第一邏輯區塊映射至該存取分割區上的該些實體區塊而成功執行該啟動程序達到一第二次數時,則進行該資料備份操作。
  6. 如請求項5所述之記憶體儲存裝置,其中若在進行該資料備份操作的過程中發生斷電時,則在復電後,該記憶體控制器根據該第一映射表複製位於該存取分割區之該些實體區塊上的資料至該隱藏分割區之該些備份實體區塊,及對應地更新該第二映射表。
  7. 如請求項6所述之記憶體儲存裝置,其中若在進行該資料備份操作的過程中發生斷電時,則在復電後,該記憶體控制器從該第一映射表裡因斷電而被中斷處理的一位址繼續複製位於該存取分割區之該些實體區塊上的資料至該隱藏分割區之該些備份實體區塊,及對應地更新該第二映射表。
  8. 如請求項1所述之記憶體儲存裝置,其中: 當該記憶體控制器根據該些第二邏輯區塊映射至該些備份實體區塊並成功執行該啟動程序達到一第三次數時,該記憶體控制器根據該第二映射表將位於該些備份實體區塊上的資料複製至該存取分割區,及對應地更新該第一映射表。
  9. 如請求項8所述之記憶體儲存裝置,其中若在該記憶體控制器根據該第二映射表將位於該些備份實體區塊上的資料複製至該存取分割區及對應地更新該第一映射表的過程中發生斷電時,則在復電後,該記憶體控制器根據該第二映射表將位於該些備份實體區塊上的資料複製至該存取分割區及對應地更新該第一映射表。
  10. 如請求項9所述之記憶體儲存裝置,其中若在該記憶體控制器根據該第二映射表將位於該些備份實體區塊上的資料複製至該存取分割區及對應地更新該第一映射表的過程中發生斷電時,則在復電後,該記憶體控制器從該第二映射表裡因斷電而被中斷處理的一位址繼續將位於該些備份實體區塊上的資料複製至該存取分割區及對應地更新該第一映射表。
  11. 如請求項1至3及5至10任一項所述之記憶體儲存裝置,其中該存取分割區及該隱藏分割區大小相同。
TW109126526A 2020-08-05 2020-08-05 記憶體儲存裝置 TWI749685B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109126526A TWI749685B (zh) 2020-08-05 2020-08-05 記憶體儲存裝置
CN202010884832.XA CN114064352A (zh) 2020-08-05 2020-08-28 存储器存储装置
US17/096,978 US11294779B2 (en) 2020-08-05 2020-11-13 Memory device providing fast data recovery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109126526A TWI749685B (zh) 2020-08-05 2020-08-05 記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI749685B TWI749685B (zh) 2021-12-11
TW202207037A true TW202207037A (zh) 2022-02-16

Family

ID=80115032

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109126526A TWI749685B (zh) 2020-08-05 2020-08-05 記憶體儲存裝置

Country Status (3)

Country Link
US (1) US11294779B2 (zh)
CN (1) CN114064352A (zh)
TW (1) TWI749685B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI817824B (zh) * 2022-11-11 2023-10-01 宇瞻科技股份有限公司 資料備份還原方法及其裝置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220067921A (ko) * 2020-11-18 2022-05-25 한국전자통신연구원 플래시 메모리를 구비한 디바이스 및 그 디바이스에서의 플래시 메모리에 데이터 쓰기/삭제/갱신 방법
US20240103980A1 (en) * 2022-09-27 2024-03-28 Dell Products L.P. Creating a transactional consistent snapshot copy of a sql server container in kubernetes

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370137B2 (en) * 2005-06-06 2008-05-06 Intel Corporation Inter-domain data mover for a memory-to-memory copy engine
TW201013400A (en) * 2008-09-22 2010-04-01 Promise Technology Inc Memory control system, data recovery method and date reading method thereof
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
TWI446172B (zh) * 2011-05-06 2014-07-21 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與存取方法
US8719540B1 (en) * 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
TWI548990B (zh) * 2013-05-17 2016-09-11 宇瞻科技股份有限公司 記憶體儲存裝置及其還原方法與記憶體控制器
TWI524183B (zh) * 2014-01-09 2016-03-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US10095423B2 (en) * 2015-09-30 2018-10-09 Toshiba Memory Corporation Storage system that tracks mapping to a memory module to be detached therefrom
US20180032409A1 (en) * 2016-07-26 2018-02-01 Netapp, Inc. Backup and recovery of application data of an application executing in a virtual machine
TWI691839B (zh) * 2016-11-28 2020-04-21 慧榮科技股份有限公司 資料管理方法
US11442768B2 (en) * 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI817824B (zh) * 2022-11-11 2023-10-01 宇瞻科技股份有限公司 資料備份還原方法及其裝置

Also Published As

Publication number Publication date
US11294779B2 (en) 2022-04-05
TWI749685B (zh) 2021-12-11
CN114064352A (zh) 2022-02-18
US20220043724A1 (en) 2022-02-10

Similar Documents

Publication Publication Date Title
TWI749685B (zh) 記憶體儲存裝置
JP4371771B2 (ja) 不揮発性メモリシステムにおいて用いられる電力管理ブロック
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20080147962A1 (en) Storage subsystem with multiple non-volatile memory arrays to protect against data losses
WO2021253983A1 (zh) 一种数据恢复方法、装置及固态硬盘
JP5353887B2 (ja) ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法
JP2012512482A (ja) Ssd技術支援のストレージシステムのスナップショット
TW201337563A (zh) 資料可得性之掛接時間重新調整
JP6753257B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2012128643A (ja) メモリシステム
TWI479505B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
US10459803B2 (en) Method for management tables recovery
GB2517435A (en) Fast data back-up and restore between volatile and flash memory
US20140372710A1 (en) System and method for recovering from an unexpected shutdown in a write-back caching environment
JP2008204460A (ja) ディスク・パーティションのほぼ瞬時のバックアップおよび復元
TWI493341B (zh) 記憶體儲存裝置及其修復方法
JP2001051883A (ja) 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
JP2006504200A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
CN111142792B (zh) 一种存储装置的掉电保护方法
CN109002265B (zh) 一种数据处理的方法以及相关装置
KR20210022260A (ko) 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치
JP6221702B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2013174976A (ja) メモリシステムおよび制御プログラムの更新方法
JP7457248B2 (ja) 記憶装置
JP2010513993A (ja) 情報処理装置および不揮発性半導体メモリドライブ