TW202137013A - 記憶體控制器與資料處理方法 - Google Patents

記憶體控制器與資料處理方法 Download PDF

Info

Publication number
TW202137013A
TW202137013A TW109110573A TW109110573A TW202137013A TW 202137013 A TW202137013 A TW 202137013A TW 109110573 A TW109110573 A TW 109110573A TW 109110573 A TW109110573 A TW 109110573A TW 202137013 A TW202137013 A TW 202137013A
Authority
TW
Taiwan
Prior art keywords
data
memory
information
backed
processor
Prior art date
Application number
TW109110573A
Other languages
English (en)
Other versions
TWI791966B (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 TW109110573A priority Critical patent/TWI791966B/zh
Priority to CN202010730937.XA priority patent/CN113448771A/zh
Priority to US17/144,104 priority patent/US11436105B2/en
Publication of TW202137013A publication Critical patent/TW202137013A/zh
Application granted granted Critical
Publication of TWI791966B publication Critical patent/TWI791966B/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
    • G06F11/1469Backup restoration techniques
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一種資料處理方法,包括:配置一既定記憶體空間用以記錄一記憶體裝置之待備份資料之資訊,其中該資訊係用以指示出記憶體裝置之哪些邏輯記憶體空間所關聯之資料為待備份資料;以及根據自一主機裝置接收之複數指令更新該資訊。

Description

記憶體控制器與資料處理方法
本發明係關於一種資料處理方法,尤指一種即時記錄記憶體裝置之待備份資料之資訊的資料處理方法。
使用者有時會有備份硬碟資料的需求。於執行資料備份時,為了降低寫入的資料量,必須判斷哪些資料為新,哪些資料為舊。一般而言,判斷資料的新舊必需解析電腦作業系統所支援的檔案系統(file system),方能得知哪些資料為新,哪些資料為舊。然而,由於現今電腦配置的硬碟容量皆已大幅提升,例如,已達數個兆位元組的等級,因此,解析檔案系統將會是相當繁瑣的工作,且因為必須逐一比對或追蹤檔案的更新時間,必須耗損大量的電腦運算資源。此外,不同的作業系統所支援的檔案系統不盡相同,其解析方式亦不盡相同,因此針對不同的檔案系統必須設計不同的解析方式,如此對於硬碟備份軟體的開發存在著必須考量相容性的問題。
為解決上述問題,本發明提出一種可提高資料備份之執行效率的資料處理方法。
本發明之一目的在於提供一種可提高資料備份之執行效率的資料處理方法,以解決上述問題。該方法之精神在於利用儲存裝置端的記憶體控制器即時記錄記憶體裝置之待備份資料之資訊,並持續根據記憶體裝置的存取操作更新待備份資料之資訊。於需要執行資料備份時,藉由主動提供待備份資料之資訊,使得資料備份之執行效率相較於傳統技術可為大幅提升。
根據本發明之一實施例,一種記憶體控制器,耦接至一記憶體裝置,包括一主機介面與一處理器。主機介面用以自一主機裝置接收複數指令。處理器耦接至主機介面,用以紀錄記憶體裝置之待備份資料之資訊。待備份資料之資訊係用以指示出記憶體裝置之哪些邏輯記憶體空間所關聯之資料為待備份資料。處理器配置一既定記憶體空間用以儲存該資訊,並且根據指令更新該資訊。
根據本發明之另一實施例,一種資料處理方法,包括:配置一既定記憶體空間用以記錄一記憶體裝置之待備份資料之資訊,其中該資訊係用以指示出記憶體裝置之哪些邏輯記憶體空間所關聯之資料為待備份資料;以及根據自一主機裝置接收之複數指令更新該資訊。
藉由待備份資料之資訊,主機裝置或者一特定的資料備份軟體可正確地辨識出記憶體裝置的哪些邏輯記憶體空間所關聯之資料為待備份資料。如此一來,資料備份可以簡單又有效率的方式執行,並可有效避免傳統技術中所遭遇之問題。
第1圖係顯示根據本發明之一實施例所述之系統方塊圖。所述之系統可以是一資料儲存系統、一電腦系統或者一電子產品系統。系統100可包括一主機裝置110與一儲存裝置120。儲存裝置120可包括一記憶體控制器121與一或多個記憶體裝置。根據本發明之一實施例,儲存裝置120可以是設置於電子產品之中或者與電子產品連接之一固態硬碟(Solid State Drive,縮寫SSD)。記憶體控制器121可耦接至所述一或多個記憶體裝置,其中記憶體裝置可以是圖中所示之動態隨機存取記憶體(Dynamic Random Access Memory,縮寫DRAM)122與快閃記憶體(Flash memory) 123,並且快閃記憶體123可包含多個快閃記憶體模組。記憶體控制器121可透過對應之介面存取DRAM 122及快閃記憶體123。記憶體控制器121也透過對應之介面與主機裝置110溝通,用以接收複數指令,並響應於指令執行對應之記憶體存取操作。
需注意的是,第1圖為一簡化的方塊圖,其中僅顯示出與本發明相關之元件。熟悉此技藝者均可理解,一電子產品系統當可包含許多未示於第1圖之元件,以實施各種對應之功能。
第2圖係顯示根據本發明之一實施例所述之記憶體控制器之範例方塊圖。記憶體控制器200可為記憶體控制器121之一種實現。記憶體控制器200可包括多個介面,例如,主機介面210、記憶體介面220與230等,記憶體控制器200透過所述介面與週邊裝置溝通。主機介面210可由一控制器實施,例如,一週邊元件快速互連(Peripheral Component Interconnect Express,縮寫PCI Express 或PCI)/串行高技術組態(Serial Advanced Technology Attachment,縮寫SATA)控制器,用以控制記憶體控制器200與主機裝置110之間藉由對應之硬體介面傳遞的溝通訊號。記憶體控制器200可透過主機介面210自主機裝置110接收複數指令。記憶體介面220可由一DRAM控制器實施,用以控制記憶體控制器121/200與DRAM 122之間藉由對應之硬體介面傳遞的溝通訊號。記憶體介面230可由一快閃記憶體控制器實施,用以控制記憶體控制器121/200與快閃記憶體123之間藉由對應之硬體介面傳遞的溝通訊號。
記憶體控制器200可更包括一處理器240、一匯流排250、一指令緩衝記憶體260與一資料緩衝記憶體270。處理器240用以透過匯流排250及前述介面與週邊裝置溝通。匯流排250可依循開放式核心協議(Open Core Protocol,縮寫OCP)運作,用以連接主機介面210、記憶體介面220與230、處理器240、指令緩衝記憶體260與資料緩衝記憶體270等裝置,使其可以相互溝通協作。指令緩衝記憶體260與資料緩衝記憶體270用以進行所需之緩衝處理,其中指令緩衝記憶體260與資料緩衝記憶體270可以隨機存取記憶體(RAM)來實施。例如,靜態隨機存取記憶體(Static RAM,縮寫SRAM),但本發明不限於此。
需注意的是,第2圖為一簡化的方塊圖,其中僅顯示出與本發明相關之元件。熟悉此技藝者均可理解,一記憶體控制器當可包含許多未示於第2圖之元件,以實施各種對應之功能。
根據本發明之一實施例,處理器240可配置一既定記憶體空間用以儲存記憶體裝置(例如,快閃記憶體123)之待備份資料之資訊,並持續根據記憶體裝置的存取操作更新待備份資料之資訊。由於記憶體裝置的存取操作係由記憶體控制器121/200所控制,因此,處理器240可即時地根據最新的存取操作記錄記憶體裝置之待備份資料之資訊,舉例而言,處理器240可持續根據自主機裝置110接收到的指令更新待備份資料之資訊。
於本發明之實施例中,待備份資料之資訊係用以指示記憶體裝置(例如,快閃記憶體123)的哪些邏輯記憶體空間所關聯之資料為待備份資料,其中一邏輯記憶體空間所關聯之資料可為邏輯性地被儲存於該邏輯記憶體空間之資料,而所述之待備份資料為自前一次備份操作完成至今尚未被使用者備份之資料,或者為自前一次備份操作完成後曾經被使用者更新過的資料。
一般而言,記憶體裝置的儲存空間可由主機裝置110劃分為複數個邏輯記憶體空間,各邏輯記憶體空間可由邏輯區塊位址(Logical Block Address,縮寫LBA)定址,邏輯性地被儲存於一邏輯記憶體空間之資料實際上可被儲存於記憶體裝置的一或多個實體記憶體空間。
舉例而言,當使用者操作主機裝置110將一檔案A1寫入邏輯記憶體空間A,檔案A1即為目前邏輯記憶體空間A所關聯之資料。當使用者操作主機裝置110將另一檔案A2寫入邏輯記憶體空間A以取代原本的檔案A1,則檔案A2變成目前邏輯記憶體空間A所關聯之資料。即,檔案A2為使用者更新過的資料。
為解決先前技術中執行資料備份時所遭遇的問題,於本發明之實施例中,處理器240持續根據最新的存取操作記錄記憶體裝置(例如,快閃記憶體123)之待備份資料之資訊。藉由待備份資料之資訊,主機裝置110或者一特定的資料備份軟體可正確且迅速地辨識出記憶體裝置的哪些邏輯記憶體空間所關聯之資料為新的資料(即,待備份的資料,或者被使用者更新過的資料)。如此一來,於需要執行資料備份時,藉由主動提供待備份資料之資訊給主機裝置110或特定的資料備份軟體,使得資料備份之執行效率相較於傳統技術可為大幅提升。其中,所述之特定的資料備份軟體可為與本發明所述之記憶體控制器121/200共同開發的軟體。
第3圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。資料處理方法可由記憶體控制器121/200或處理器240所執行,包含以下步驟:
步驟S302: 配置一既定記憶體空間用以記錄一記憶體裝置(例如,快閃記憶體123)之待備份資料之資訊。根據本發明之一實施例,記憶體控制器121/200可於DRAM 122、快閃記憶體123或其內部之記憶體裝置(例如,資料緩衝記憶體270)配置所述既定記憶體空間。若記憶體控制器121/200將所述之既定記憶體空間配置於DRAM或SRAM等揮發性記憶體,則可於斷電前將所述既定記憶體空間所記錄的資料寫入快閃記憶體123以保存其內容。
步驟S304: 根據自主機裝置接收之複數指令更新待備份資料之資訊。如上述,處理器240可即時地根據接收到的指令或最新的存取操作記錄或更新待備份資料之資訊。
根據本發明之第一實施例,所述既定記憶體空間可包括複數記憶單元,而各記憶單元對應於記憶體裝置之一邏輯記憶體空間,而所述邏輯記憶體空間可涵蓋一或多個連續的邏輯區塊位址(LBA)。
此外,根據本發明之第一實施例,待備份資料之資訊可由複數位元表示,各位元對應於一記憶單元,並且記憶體控制器121/200藉由設定該等位元所對應之一數值紀錄待備份資料之資訊。
第4圖為一記憶體空間之映射示意圖,用以顯示根據本發明之第一實施例所述之紀錄待備份資料之資訊之既定記憶體空間400與記憶體裝置(例如,快閃記憶體123)之記憶體空間450之對應關係。根據本發明之第一實施例,既定記憶體空間400可包括複數記憶單元,例如,記憶單元410。於本發明之一實施例中,各記憶單元可為一個位元,而既定記憶體空間400所包含之複數記憶單元可形成一位元映像圖(bit map),用以忠實地記錄記憶體裝置的待備份資料之資訊。
根據本發明之第一實施例,各記憶單元或各位元可代表記憶體裝置(例如,快閃記憶體123)之記憶體空間中的一個連續的邏輯記憶空間,例如圖中所示之邏輯記憶體空間460,其中一個連續的邏輯記憶體空間460的大小可被設定為,例如,4千 (Kilo,縮寫K)位元組(Byte,縮寫B),或者一個邏輯區塊位址(LBA)所定址之邏輯區塊的大小。依照不同的系統需求,一個邏輯區塊的大小可以是512位元組、1024位元組、或4K位元組。
根據本發明之一實施例,一個記憶單元可對應於多個邏輯位址,因此,記憶單元與邏輯位址之間有著一對多的關係。換言之,於本發明之實施例中,既定記憶體空間400所記錄的資料為一壓縮的資料,記憶體控制器121/200可僅利用一個相對小的記憶體空間便可完整記錄記憶體裝置(例如,快閃記憶體123)之整個記憶體空間所對應的待備份資料之資訊。
舉例而言,假設記憶體控制器121/200用一位元代表4K位元組的記憶體空間,並且假設記憶體裝置的整體容量(例如,記憶體空間450)大小為256千兆位元組(Giga byte,縮寫GB),則用以完整記錄記憶體裝置之整個記憶體空間所對應的待備份資料之資訊所需的位元數為256GB/4KB=64百萬(Mega,縮寫M)位元,相當於8MB的記憶體空間。換言之,記憶體控制器121/200僅利用8MB的記憶體空間便可完整記錄256GB的記憶體空間所對應的待備份資料之資訊。
根據本發明之一實施例,待備份資料之資訊於記憶體裝置開始被使用的最初(例如,於記憶體裝置被主機裝置110初始化時)可被設定為一預設值或一預設狀態(或者,亦可稱初始值或初始狀態)。舉例而言,於本發明之第一實施例中,記憶體控制器121/200可於最初將各記憶單元或各位元所對應之數值設定為0。因此,既定記憶體空間400所記錄的待備份資料之資訊之預設值可為一全零的數值。假設既定記憶體空間400形成一位元映像圖,則位元映像圖之預設值可為一全零的圖樣。爾後,處理器240可根據自主機裝置接收之複數指令更新待備份資料之資訊。
根據本發明之一實施例,處理器240自主機裝置110接收到的指令可包括一寫入指令。寫入指令可包括一起始邏輯區塊位址與一長度。響應於寫入指令之接收,處理器240根據起始邏輯區塊位址與長度選擇或決定出要被更新的一或多個位元,並且將要被更新的位元所對應之數值設定為有別於前述之初始值或預設值之一既定數值,其中,既定數值用以代表資料為待備份的資料(或者,被使用者更新過的資料)。或者,於本發明之另一實施例,響應於寫入指令之接收,處理器240根據起始邏輯區塊位址與長度計算出於既定記憶體空間中需因應本次寫入操作被標註的區域範圍,並且將此區域範圍標註為有別於前述之初始狀態或預設狀態並且可代表資料被更新過的既定狀態,以表示出記憶體裝置中由此區域範圍所對應之記憶體空間目前所關聯之資料為待備份的資料。
舉例而言,假設寫入指令欲寫入的資料長度為128KB,位元映像圖中的一位元代表4KB的記憶體空間,則響應於此寫入指令,要被更新的位元數量為128KB/4KB=32位元。處理器240可根據起始邏輯區塊位址與寫入的資料長度決定出位元映像圖中的那些位元須被更新,並且將這些位元所對應之數值設定為既定數值。
值得注意的是,根據本發明之第一實施例,根據自主機裝置110接收之指令更新待備份資料的資訊的實施方式可至少包含以下兩種方法。方法一,處理器240於決定出位元映像圖中的哪些位元或既定記憶體空間中的哪個區域範圍須被更新後,讀取既定記憶體空間400的內容以得知目前這些位元或區域範圍被設定為哪個數值或狀態,並且將目前未被設定為對應之數值的位元設定為對應之數值,或者將目前未被標註為對應之狀態的區域標註為對應之狀態。舉例而言,假設處理器240決定出因應一寫入指令須被更新的位元為映像圖中的第1~8位元,而經由讀取既定記憶體空間400的內容得知這些位元目前對應的數值為11110011,其中數值0為預設值,數值1代表對應的資料為待備份資料,則處理器240僅需將第5~6位元的數值修改或標註為1即可。方法二,處理器240於決定出位元映像圖中的那些位元或既定記憶體空間中的哪個區域範圍須被更新後,直接將這些位元設定為對應之數值,或者直接將此區域範圍註為對應之狀態。沿用前例,假設處理器240於決定出因應一寫入指令須被更新的位元為第1~8位元後,直接將第1~8位元所對應的數值均設定或標註為1,而無須在意第1~8位元先前被設定為哪個數值。
根據本發明之一實施例,處理器240自主機裝置110接收到的指令可包括一刪除指令。刪除指令可包括一起始邏輯區塊位址與一長度。響應於刪除或修改指令之接收,處理器240根據起始邏輯區塊位址與長度選擇或決定出要被更新的一或多個位元,並且將要被更新的位元所對應之數值設定為有別於前述之既定數值之另一數值,例如,設定回前述之初始值或預設值,用以代表資料已被刪除或者資料並非待備份的資料。或者,於本發明之另一實施例,響應於刪除指令之接收,處理器240根據起始邏輯區塊位址與長度計算出於既定記憶體空間中需因應本次於刪除操作被標註的區域範圍,並且將此區域範圍標註為可代表資料已被刪除或者資料並非待備份的狀態。
值得注意的是,於本發明之一實施例中,處理器240可僅根據自主機裝置接收之寫入指令更新待備份資料之資訊。即,處理器240並不會根據刪除指令或記憶體裝置之資料刪除操作更新待備份資料之資訊。於另一實施例中,處理器240可根據自主機裝置接收之寫入指令與刪除指令更新待備份資料之資訊。如上述,處理器240可因應刪除操作將對應之位元或區域範圍標註為可代表資料已被刪除或者資料並非待備份的數值或狀態。於又另一實施例中,各記憶單元可包含多個位元,用以記錄多種狀態。舉例而言,響應於寫入指令,處理器240可將既定記憶體空間中的對應的記憶單元或區域範圍設定或標註為第一狀態,代表資料為待備份的資料(或者,被使用者更新過的資料)。響應於刪除指令,處理器240可根據對應的記憶單元或對應的區域範圍目前被設定或標註的狀態決定將對應的記憶單元或區域範圍恢復為預設狀態或標註為第二狀態。舉例而言,若對應的記憶單元或區域範圍目前被設定或標註的狀態為第一狀態,代表目前的刪除操作係將已更新但尚未被備份過的資料刪除,則處理器240可將對應的記憶單元或區域範圍恢復為預設狀態。若對應的記憶單元或區域範圍目前被設定或標註狀態為預設狀態,代表目前的刪除操作係將已備份過的資料刪除,則處理器240可將對應的記憶單元或區域範圍設定或標註為第二狀態,用以指示出爾後的備份操作可因應使用者目前的操作將對應之資料刪除。
根據本發明之第二實施例,所述既定記憶體空間可儲存複數筆記錄,各記錄包括至少一第一欄位與一第二欄位,第一欄位用以記錄待更新的資料的起始邏輯區塊位址,第二欄位用以記錄待更新的資料的長度。舉例而言,於本發明之第二實施例中,響應於寫入指令之接收,處理器240可新增一筆紀錄,並且將寫入指令所帶之起始邏輯區塊位址紀錄於該筆紀錄之第一欄位,以及將長度紀錄於該筆紀錄之第二欄位。處理器240可依接收到寫入指令的時間順序依序為各寫入指令於所述既定記憶體空間新增一筆對應之紀錄,用以記錄該次寫入操作的起始邏輯區塊位址以及寫入操作的長度。
此外,如上述,於本發明之一實施例中,處理器240可僅根據自主機裝置接收之寫入指令更新待備份資料之資訊。即,處理器240並不會根據刪除指令或記憶體裝置之資料刪除操作更新待備份資料之資訊。於另一實施例中,處理器240可根據自主機裝置接收之寫入指令與刪除指令更新待備份資料之資訊。舉例而言,各記錄包括一第一欄位、一第二欄位與一第三欄位,第一欄位用以記錄待更新的資料的起始邏輯區塊位址,第二欄位用以記錄待更新的資料的長度,第三欄位用以記錄資料的更新方式,例如,當對應之指令為寫入指令,則第三欄位可被設定為代表更新方式為”將資料寫入”之一數值或一狀態,當對應之指令為刪除指令,則第三欄位可被設定為代表更新方式為”將資料刪除”之另一數值或另一狀態。
於本發明之第二實施例中,假設用以記錄待備份資料之資訊的既定記憶體空間大小為32MB,而每筆紀錄所占用的記憶體大小為8位元組,其中4位元組用以記錄第一欄位之資訊,4位元組用以記錄第二欄位之資訊,則於僅記錄寫入指令的實施方式中,32MB的記憶體空間可用以儲存32MB/8B=4M筆紀錄,各筆記錄系對應於一寫入指令或一寫入操作。若主機裝置110通常的寫入長度為128KB,則既定記憶體空間可記錄的待備份資料量為128KB*4M=512GB,其對於一般使用者而言已為相當大的資料量。換言之,無論是本發明之第一實施例或於本發明之第二實施例,記憶體控制器121/200均可僅利用一個相對小的記憶體空間便可完整記錄記憶體裝置(例如,快閃記憶體123)之整個記憶體空間所對應的待備份資料之資訊。此外,於本發明之一實施例中,處理器240亦可判斷既定記憶體空間的容量是否即將不足,例如,既定記憶體空間的剩餘容量低於一既定臨界值時,處理器240可判斷既定記憶體空間的容量即將不足。於處理器240判斷既定記憶體空間的容量即將不足時,代表目前待備份資料的資料量已達一相當位準,處理器240可進一步通知主機裝置110發出一提醒訊息告知使用者應盡早進行資料備份。
根據本發明之一實施例,處理器240自主機裝置110接收到的指令可更包括一資料備份指令。響應於資料備份指令之接收,處理器240可透過主機介面210將目前所記錄的待備份資料之資訊提供給主機裝置110,使得主機裝置110或者前述與記憶體控制器121/200共同開發的資料備份軟體可正確且迅速地辨識出記憶體裝置的哪些邏輯記憶體空間所關聯之資料為本次資料備份所需被備份的資料。
第5圖係顯示根據本發明之一實施例所述之資料備份操作示意圖。於執行資料備份操作時,系統可存在三個裝置,包括主機裝置510、以及儲存裝置520與530,其中儲存裝置520可為系統中既有的儲存裝置,儲存裝置530可為用以備份的儲存裝置,主機裝置510可藉由執行前述與本發明所述之記憶體控制器121/200共同開發的軟體執行資料備份操作。
首先,主機裝置510可向既有的儲存裝置520發出一資料備份指令。響應於資料備份指令,處理器240將其所維護之待備份資料之資訊提供給主機裝置510。取得待備份資料之資訊後,主機裝置510可根據此資訊讀取儲存裝置520內待備份資料的區域。舉例而言,主機裝置510可根據被設定為既定數值的位元的索引值或其所在位置(或者,被標註為既定狀態的區域範圍)換算出其所對應之邏輯記憶體空間(例如,起始邏輯區塊位址與長度),並存取儲存裝置520以讀出其所儲存之資料。接著,主機裝置510可依序將待備份資料根據其原先於儲存裝置520內所對應之邏輯記憶體空間寫入儲存裝置530。舉例而言,主機裝置510可自既定記憶體空間的第一個記憶單元、第一個位元、第一個區域範圍或既定記憶體空間所存之第一筆紀錄開始,依序根據其所指出的待備份資料的所在位置執行備份操作。自儲存裝置520讀取待備份資料與將資料寫入儲存裝置530等的備份操作步驟可反覆地執行,直到所有被標註為既定數值或既定狀態的資料都被複製且寫入儲存裝置530,或者所有待備份資料(包含需被刪除的資料)均已被備份。爾後,主機裝置510可發出一備份完成指令給儲存裝置520。響應於備份完成指令之接收,於本發明之第一實施例中,處理器240將待備份資料之資訊設置為預設值或預設狀態(或者,前述之初始值或初始狀態),或者於本發明之第二實施例中,處理器240可將既定記憶體空間所記錄的所有資料刪除或清空。於第5圖中,以清除待備份資料之資訊做為上述實施例之代表。值得注意的是,第5圖係顯示一簡化的操作流程,其中熟悉此技藝者均可理解,圖中所示之各操作可分別藉由一或多個指令與記憶體裝置之讀/寫/抹除等操作完成。
綜上所述,本發明所提出之資料處理方法係利用記憶體控制器持續根據最新的存取操作記錄記憶體裝置之待備份資料之資訊。藉由待備份資料之資訊,主機裝置或者一特定的資料備份軟體可正確地辨識出記憶體裝置的哪些邏輯記憶體空間所關聯之資料為待備份的,並且可迅速地挑選待備份資料寫入新的儲存裝置。如此一來,於需要執行資料備份時,僅需提供待備份資料之資訊給主機裝置或特定的資料備份軟體,便可以簡單又有效率的方式執行資料備份,並可有效避免傳統技術中硬碟備份軟體因為需解析電腦作業系統所支援的檔案系統取得檔案資訊而必須於開發時考慮不同作業系統的相容性問題。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:系統 110,510:主機裝置 120,520,530:儲存裝置 121,200:記憶體控制器 122:動態隨機存取記憶體 123:快閃記憶體 210:主機介面 220,230:記憶體介面 240:處理器 250:匯流排 260:指令緩衝記憶體 270:資料緩衝記憶體 400:既定記憶體空間 410:記憶單元 450:記憶體裝置之記憶體空間 460:邏輯記憶體空間 S302,S304: 步驟
第1圖係顯示根據本發明之一實施例所述之系統方塊圖。 第2圖係顯示根據本發明之一實施例所述之記憶體控制器之範例方塊圖。 第3圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。 第4圖係顯示根據本發明之第一實施例所述之記憶體空間之映射示意圖。 第5圖係顯示根據本發明之一實施例所述之資料備份操作示意圖。
S302,S304:步驟

Claims (10)

  1. 一種記憶體控制器,耦接至一記憶體裝置,包括: 一主機介面,用以自一主機裝置接收複數指令;以及 一處理器,耦接至該主機介面,用以紀錄該記憶體裝置之待備份資料之資訊,其中該資訊係用以指示出該記憶體裝置之哪些邏輯記憶體空間所關聯之資料為待備份資料,該處理器配置一既定記憶體空間用以儲存該資訊,並且根據該等指令更新該資訊。
  2. 如申請專利範圍第1項所述之記憶體控制器,其中響應於一資料備份指令之接收,該處理器更透過該主機介面將該資訊提供給該主機裝置。
  3. 如申請專利範圍第2項所述之記憶體控制器,其中該等指令包括一備份完成指令,響應於該備份完成指令之接收,該處理器將該資訊設置為一預設值。
  4. 如申請專利範圍第1項所述之記憶體控制器,其中該既定記憶體空間包括複數記憶單元,各記憶單元對應於該記憶體裝置之一邏輯記憶體空間。
  5. 如申請專利範圍第4項所述之記憶體控制器,其中該邏輯記憶體空間涵蓋一或多個連續的邏輯區塊位址(Logical Block Address,縮寫LBA)。
  6. 如申請專利範圍第4項所述之記憶體控制器,其中該資訊係由複數位元表示,各位元對應於一記憶單元,並且該處理器藉由設定該等位元所對應之一數值紀錄該資訊。
  7. 如申請專利範圍第6項所述之記憶體控制器,其中該等指令包括一寫入指令,該寫入指令包括一起始邏輯區塊位址與一長度,響應於該寫入指令之接收,該處理器根據該起始邏輯區塊位址與該長度選擇該等位元之一或多者,並且將該等位元之該一或多者所對應之該數值設定為一既定數值。
  8. 如申請專利範圍第1項所述之記憶體控制器,其中該等指令包括一寫入指令,該寫入指令包括一起始邏輯區塊位址與一長度,並且於該既定記憶體空間儲存之該資訊包括複數記錄,各記錄包括一第一欄位與一第二欄位,響應於該寫入指令之接收,該處理器將該起始邏輯區塊位址紀錄於該第一欄位,並且將該長度紀錄於該第二欄位。
  9. 一種資料處理方法,包括: 配置一既定記憶體空間用以儲存一記憶體裝置之待備份資料之資訊,其中該資訊係用以指示出該記憶體裝置之哪些邏輯記憶體空間所關聯之資料為待備份資料;以及 根據自一主機裝置接收之複數指令更新該資訊。
  10. 如申請專利範圍第9項所述之資料處理方法,其中根據自該主機裝置接收之該等指令更新該資訊之步驟更包括: 響應於一資料備份指令之接收,透過一主機介面將該資訊提供給該主機裝置。
TW109110573A 2020-03-27 2020-03-27 記憶體控制器與資料處理方法 TWI791966B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109110573A TWI791966B (zh) 2020-03-27 2020-03-27 記憶體控制器與資料處理方法
CN202010730937.XA CN113448771A (zh) 2020-03-27 2020-07-27 存储器控制器与数据处理方法
US17/144,104 US11436105B2 (en) 2020-03-27 2021-01-07 Data processing method and memory controller utilizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109110573A TWI791966B (zh) 2020-03-27 2020-03-27 記憶體控制器與資料處理方法

Publications (2)

Publication Number Publication Date
TW202137013A true TW202137013A (zh) 2021-10-01
TWI791966B TWI791966B (zh) 2023-02-11

Family

ID=77808354

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109110573A TWI791966B (zh) 2020-03-27 2020-03-27 記憶體控制器與資料處理方法

Country Status (3)

Country Link
US (1) US11436105B2 (zh)
CN (1) CN113448771A (zh)
TW (1) TWI791966B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11977739B2 (en) * 2022-09-01 2024-05-07 Western Digital Technologies, Inc. Handling write data burst for improved performance and resource usage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4385215B2 (ja) * 2003-10-21 2009-12-16 日本電気株式会社 スナップショットシミュレーション機能を有するディスクアレイ装置
JP4800056B2 (ja) * 2006-02-09 2011-10-26 株式会社日立製作所 ストレージシステム及びその制御方法
KR20110037092A (ko) * 2009-10-05 2011-04-13 (주) 그레이프테크놀로지 램 및 플래시 인터페이스를 가지는 하이브리드 메모리 구조 및 데이터 저장 방법
US10817502B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US20150378642A1 (en) * 2013-03-15 2015-12-31 Seagate Technology Llc File system back-up for multiple storage medium device
TWI506430B (zh) * 2013-03-20 2015-11-01 Phison Electronics Corp 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
KR20160131359A (ko) * 2015-05-07 2016-11-16 에스케이하이닉스 주식회사 메모리 모듈, 메모리 모듈의 모듈 콘트롤러 및 메모리 모듈의 동작 방법
SG11201703156UA (en) * 2015-11-25 2017-07-28 Huawei Tech Co Ltd Method and apparatus for data backup in storage system
TWI638263B (zh) * 2017-07-26 2018-10-11 大陸商深圳大心電子科技有限公司 資料備份方法、資料恢復方法以及儲存控制器
TWI670600B (zh) * 2017-09-18 2019-09-01 深圳大心電子科技有限公司 資料備份方法、資料恢復方法以及儲存控制器
CN109558271B (zh) * 2017-09-26 2023-02-24 深圳大心电子科技有限公司 数据备份方法、数据恢复方法以及存储控制器
US10831393B2 (en) * 2018-02-08 2020-11-10 Micron Technology, Inc. Partial save of memory
CN110275800B (zh) * 2019-06-20 2021-06-08 深圳忆联信息系统有限公司 Ssd数据物理备份方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN113448771A (zh) 2021-09-28
US20210303419A1 (en) 2021-09-30
US11436105B2 (en) 2022-09-06
TWI791966B (zh) 2023-02-11

Similar Documents

Publication Publication Date Title
US11640353B2 (en) Memory system, data storage device, user device and data management method thereof
US8521949B2 (en) Data deleting method and apparatus
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
US8291155B2 (en) Data access method, memory controller and memory storage system
US10120795B2 (en) Wear-leveling nandflash memory reading/writing method
TWI569139B (zh) 有效資料合併方法、記憶體控制器與記憶體儲存裝置
US20190087348A1 (en) Data backup method, data recovery method and storage controller
CN106469122B (zh) 有效数据合并方法、存储器控制器与存储器储存装置
KR20130031046A (ko) 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
CN110908927A (zh) 数据储存装置及其删除命名空间的方法
CN107943710B (zh) 存储器管理方法及使用所述方法的存储控制器
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
CN113568788B (zh) Linux非逻辑卷块设备的快照方法、系统及存储介质
WO2021035555A1 (zh) 一种固态硬盘的数据存储方法、装置及固态硬盘ssd
KR20090031102A (ko) 이동식 저장 장치의 포맷 방법 및 장치
CN110312986B (zh) 用于在固态设备上存储数据的流的机会性使用
TWI791966B (zh) 記憶體控制器與資料處理方法
TWI805937B (zh) 記憶體控制器與資料處理方法
JP2007172082A (ja) 制御装置およびコピー制御方法
CN109002265B (zh) 一种数据处理的方法以及相关装置
CN105138294A (zh) 一种硬盘设备及信息处理方法
WO2024060944A1 (zh) 键值存储方法及系统
CN109144897B (zh) 一种实现大容量ssd磁盘的方法