TWI748609B - 全快閃陣列儲存裝置與資料處理方法 - Google Patents

全快閃陣列儲存裝置與資料處理方法 Download PDF

Info

Publication number
TWI748609B
TWI748609B TW109128925A TW109128925A TWI748609B TW I748609 B TWI748609 B TW I748609B TW 109128925 A TW109128925 A TW 109128925A TW 109128925 A TW109128925 A TW 109128925A TW I748609 B TWI748609 B TW I748609B
Authority
TW
Taiwan
Prior art keywords
data
unit
strip
flash memory
stripe
Prior art date
Application number
TW109128925A
Other languages
English (en)
Other versions
TW202209339A (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 TW109128925A priority Critical patent/TWI748609B/zh
Priority to CN202010973815.3A priority patent/CN114116525A/zh
Priority to US17/338,710 priority patent/US11630728B2/en
Application granted granted Critical
Publication of TWI748609B publication Critical patent/TWI748609B/zh
Publication of TW202209339A publication Critical patent/TW202209339A/zh

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • 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/1456Hardware arrangements for backup
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種全快閃陣列儲存裝置包括快閃記憶體陣列與微處理器。快閃記憶體陣列包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶,各條帶包括複數儲存單元,儲存單元包含資料單元與同位單元。當微處理器偵測到快閃記憶體之一者自快閃記憶體陣列被移除時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行一修復操作。於一條帶所對應之修復操作中,微處理器根據條帶之一部分資料單元所儲存之內容重新計算條帶所對應之保護資訊,並且將重新計算之保護資訊重新寫入條帶之儲存單元之一或多者。

Description

全快閃陣列儲存裝置與資料處理方法
本發明係關於一種全快閃陣列儲存裝置的資料處理方法,尤指一種當全快閃陣列儲存裝置發生掉碟時,可有效率地恢復原有的資料保護能力的資料處理方法。
全快閃陣列(All Flash Array,縮寫AFA)是一種儲存裝置的架構,其基礎架構為利用數個快閃記憶磁碟形成儲存陣列,以大幅提升儲存裝置的儲存空間。全快閃陣列通常應用於網路端的伺服器,用以儲存來自多方使用者的大量的資料。為了避免儲存陣列中的一或多個快閃記憶磁碟發生損毀或者被移除,進而導致儲存裝置發生資料遺失的問題,儲存裝置可運用容錯式磁碟陣列(Redundant Array of Independent Disks,縮寫RAID)技術中所採用的錯誤保護機制進行資料保護。於RAID所採用的錯誤保護機制中,儲存裝置可根據被寫入的資料計算出保護資訊。當發現有效資料遺失時,便可利用保護資訊反向推導出被遺失的有效資料內容。
舉例而言,儲存裝置可根據被寫入的資料計算出M份保護資訊,使得儲存裝置可具備+M的保護能力,所述+M代表著即便當M個快閃記憶磁碟發生損毀或者被移除時,儲存裝置仍可利用剩餘的資料執行資料修復,推導出損毀或者被移除的M個快閃記憶磁碟所儲存之資料。
然而,對於具備+M保護能力的儲存裝置而言,當儲存陣列中的一個快閃記憶磁碟發生損毀或者被移除時,資料保護能力便會下降為+(M-1),而當發生損毀或者被移除的快閃記憶磁碟的數量等於M時,儲存裝置便不再具備資料保護能力。
為解決上述問題,使得儲存裝置在發生掉碟(lost of disk,包含上述之快閃記憶磁碟發生損毀或者被移除等情況)後仍可恢復原有的資料保護能力,同時避免為了執行恢復原有的資料保護能力的相關操作而引入過多的寫入操作,導致儲存裝置的效能大幅下降的情況,需要一種新穎的資料處理方法,用以於快閃陣列儲存裝置發生掉碟時,可有效率地恢復原有的資料保護能力。
本發明之一目的在於當快閃陣列儲存裝置發生掉碟時可有效率地恢復原有的資料保護能力。
根據本發明之一實施例,一種全快閃陣列儲存裝置包括一快閃記憶體陣列以及一微處理器。快閃記憶體陣列包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶,各條帶包括複數儲存單元,儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元。微處理器耦接至快閃記憶體陣列,用以偵測快閃記憶體之一狀態,當微處理器偵測到快閃記憶體之一者自快閃記憶體陣列被移除時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行一修復操作。於一條帶所對應之修復操作中,微處理器根據條帶之一部分資料單元所儲存之內容重新計算條帶所對應之保護資訊,並且將重新計算之保護資訊重新寫入條帶之儲存單元之一或多者,並且條帶之部分資料單元之一數量少於條帶所包含之所有資料單元之一數量。
根據本發明之一實施例,一種適用於一全快閃陣列儲存裝置之資料處理方法,其中全快閃陣列儲存裝置包括一快閃記憶體陣列,快閃記憶體陣列包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶,各條帶包括複數儲存單元,儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元,資料處理方法包括:響應於指示出快閃記憶體之一者自快閃記憶體陣列被移除之一偵測結果,依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行一修復操作。依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行修復操作之步驟更包括:根據一條帶之一部分資料單元所儲存之內容重新計算條帶所對應之保護資訊;以及將重新計算之條帶所對應之保護資訊重新寫入條帶之儲存單元之一或多者,其中條帶之部分資料單元之一數量少於條帶所包含之所有資料單元之一數量。
根據本發明之一實施例,一種全快閃陣列控制器包括一記憶體裝置以及一微處理器。微處理器耦接至記憶體裝置與一快閃記憶體陣列,用以根據記憶體裝置所儲存之資料管理快閃記憶體陣列,其中快閃記憶體陣列包括複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元。當微處理器偵測到快閃記憶體陣列發生掉碟時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行一修復操作,並且其中於一條帶所對應之修復操作中,微處理器根據條帶之一部分資料單元所儲存之內容重新計算條帶所對應之保護資訊,並且將重新計算之條帶所對應之保護資訊重新寫入條帶之儲存單元之一或多者,其中條帶之部分資料單元之一數量少於條帶所包含之所有資料單元之一數量。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一個實施例」、「一實施例」、「一個範例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「在一個實施例中」、「在一實施例中」、「在一個範例中」或「在一範例中」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
本發明係關於一種全快閃陣列儲存裝置與全快閃陣列儲存裝置的資料處理方法。根據本發明之一實施例,全快閃陣列儲存裝置可包括複數快閃記憶磁碟,各快閃記憶磁碟可包括至少一快閃記憶體,而快閃記憶磁碟所包含之該等快閃記憶體可形成一快閃記憶體陣列。
第1圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置的外觀示意圖。於第1圖所示之實施例中,全快閃陣列儲存裝置100可包括N個快閃記憶磁碟,例如,圖中所示之快閃記憶磁碟110-1~110-N,其中N為大於1之正整數,各快閃記憶磁碟包括一快閃記憶體,因此,全快閃陣列儲存裝置100可包括由N個快閃記憶體所組成之一快閃記憶體陣列。
當快閃陣列儲存裝置發生掉碟時,例如,其中一個快閃記憶磁碟(例如,快閃記憶磁碟110-n,其中n為正整數)自全快閃陣列儲存裝置100被移除,或者發生磁碟損毀或無法被識別等情況時,由於快閃記憶磁碟110-n所儲存之資料已遺失,全快閃陣列儲存裝置100的資料保護能力便會對應地下降。為了修復遺失的資料,並且使全快閃陣列儲存裝置100在發生掉碟後仍可恢復原有的資料保護能力,全快閃陣列儲存裝置100需要執行對應之修復操作,以推導出遺失的資料,並且恢復全快閃陣列儲存裝置100原有的資料保護能力。於本發明之實施例中,藉由本發明所提出之資料處理方法,可在執行極少量的寫入操作下,有效率地恢復原有的資料保護能力。
第2圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之一範例方塊圖。根據本發明之一實施例,全快閃陣列儲存裝置200可包括一全快閃陣列控制器210以及由複數快閃記憶磁碟所包含之快閃記憶體形成快閃記憶體陣列240。全快閃陣列控制器210可包括一微處理器220與一記憶體裝置230。微處理器220耦接至記憶體裝置230與快閃記憶體陣列240,用以根據記憶體裝置230所儲存之資料管理快閃記憶體陣列240。根據本發明之一實施例,快閃記憶體陣列240可包括複數快閃記憶體,各快閃記憶體可對應於一快閃記憶磁碟,微處理器220可持續偵測各快閃記憶磁碟或快閃記憶體之一狀態。舉例而言,微處理器220可持續發出探詢信號,用以探詢快閃記憶磁碟或快閃記憶體之狀態。當微處理器220無法於既定時間接收到快閃記憶磁碟或快閃記憶體之回應,或者接收到之回應顯示出異常狀態、或者微處理器220無法再識別快閃記憶磁碟或快閃記憶體時,微處理器220可判斷全快閃陣列儲存裝置200或快閃記憶體陣列240發生掉碟。由於掉碟可包含多種不同原因造成的不同情況,而該等情況都將導致此快閃記憶體所儲存之資料遺失,因此,為了精簡說明篇幅,以下段落將統一以快閃記憶體自快閃記憶體陣列240被移除的情況作為掉碟所包含之各種情況的代表。可以理解的是,本發明所提出之資料處理方法並不限於快閃記憶體被移除的情況,而是可被應用於任何終將導致快閃記憶體陣列所包含之部分快閃記憶體之資料遺失並無法繼續使用快閃記憶體陣列所包含之部分快閃記憶體的情況。
第3圖係顯示根據本發明之一實施例所述之管理快閃記憶體陣列的軟體架構,用以說明全快閃陣列儲存裝置內部的轉址操作。根據本發明之一實施例,微處理器220可包含一或多個內部記憶體裝置,用以儲存管理快閃記憶體陣列所需之資料與程式碼。其中,微處理器220藉由執行所述程式碼,可產生用以管理快閃記憶體陣列之複數模組,各模組可執行對應的操作。例如,微處理器220藉由執行所述程式碼所產生之軟體模組可包括一容積管理模組310以及快閃陣列控制模組320。響應於用以將一虛擬容積邏輯區塊位址(Virtual Volume Logic Block Address,縮寫VVLBA)所對應之資料寫入快閃記憶體陣列之一寫入指令User_Write,容積管理模組310可先將此虛擬容積邏輯區塊位址VVLBA轉換為另一個微處理器220內部所使用之存儲池邏輯區塊位址(Storage poolLogic Block Address,縮寫 SLBA),並告知快閃陣列控制模組320將資料寫入此存儲池邏輯區塊位址SLBA。接著,快閃陣列控制模組320將此存儲池邏輯區塊位址SLBA轉換為快閃記憶體陣列之一個碟邏輯區塊位址(Disk Logical Block Address,縮寫DLBA),並且執行對應之寫入操作,用以將接收到的資料(即,對應於此存儲池邏輯區塊位址SLBA之資料,同樣也是對應於前述之虛擬容積邏輯區塊位址VVLBA之資料)寫入對應之碟邏輯區塊位址DLBA。
更具體的說,響應於將一虛擬容積邏輯區塊位址VVLBA_1所對應之使用者資料DATA_A寫入快閃記憶體陣列之一寫入指令User_Write,全快閃陣列控制器210之微處理器220可執行兩次之轉址操作,先將虛擬容積邏輯區塊位址VVLBA_1轉換為另一內部所使用之存儲池邏輯區塊位址SLBA_1,再將存儲池邏輯區塊位址SLBA_1轉換為碟邏輯區塊位址DLBA_1,接著微處理器220可對一或多個快閃記憶磁碟發出寫入指令,用以將資料DATA_A寫入快閃記憶體陣列中由碟邏輯區塊位址DLBA_1所定址到的儲存單元。
需注意的是,於本發明之實施例中,前述之儲存單元為全快閃陣列儲存裝置內的儲存單元,即為由全快閃陣列控制器210觀之的儲存單元,其未必對等於各快閃記憶體內部的實體儲存單元。
此外,需注意的是,於本發明之實施例中,所述區塊位址中的「區塊」大小未必相等於快閃記憶體所包含之實體「記憶體區塊」的大小。舉例而言,於本發明之一實施例中,物理區塊位址或邏輯區塊位址中的「區塊」可以是4K位元組(Byte)大小之一寫入單位,因此,一個碟邏輯區塊位址DLBA可定址到快閃記憶體陣列中具有4KB大小之一儲存單元。而快閃記憶體所包含之一個實體「記憶體區塊」的大小則可取決於快閃記憶體的實體配置。
此外,需注意的是,由於快閃記憶體陣列係由複數快閃記憶磁碟所包含之快閃記憶體所組成,而各快閃記憶磁碟可更包含一記憶體控制器,用以控制對應之快閃記憶體之存取操作。因此,當各快閃記憶磁碟內的記憶體控制器根據接收到的碟邏輯區塊位址DLBA將接收到的資料寫入對應之快閃記憶體時(或者,當記憶體控制器根據接收到的邏輯位址自對應之快閃記憶體讀取資料時),仍會再進行一次轉址操作,將接收到的邏輯位址轉換為可定址到對應之快閃記憶體的一或多個實體儲存單元的實體位址,此實體位址(即,由各快閃記憶磁碟內的記憶體控制器觀之的實體位址)才是真正對應於實體儲存單元的位址。
續前例,當包含由碟邏輯區塊位址DLBA_1所指到之全快閃陣列儲存裝置的儲存單元的快閃記憶磁碟接收到包含資料DATA_A以及碟邏輯區塊位址DLBA_1等相關資訊之一寫入指令時,此快閃記憶磁碟之記憶體控制器可更進一步將此碟邏輯區塊位址DLBA_1轉換為其內部實際所使用之一物理區塊位址PBA_1,其中此物理區塊位址PBA_1係指出快閃記憶磁碟中真正被安排用以儲存資料DATA_A的記憶體區塊與資料頁,並且記憶體控制器將資料DATA_A儲存於物理區塊位址PBA_1所定址到的記憶體區塊與資料頁。
根據本發明之一實施例,快閃記憶體陣列可包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元(Logical Aggregation Unit,縮寫為LAU),各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元。全快閃陣列儲存裝置中位於同一條帶的複數儲存單元實際上可分布於多個快閃記憶體,而該等儲存單元可包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位(parity)單元。
第4圖係顯示根據本發明之一實施例所述之邏輯聚合單元示意圖。於此範例中,全快閃陣列儲存裝置可包括複數快閃記憶磁碟Drive_1~ Drive_N,其中N為一正整數。由快閃記憶磁碟Drive_1~ Drive_N所包含之快閃記憶體所組成之快閃記憶體陣列可形成/對應於複數邏輯聚合單元,例如圖中虛線框起之其中一個邏輯聚合單元LAU。各邏輯聚合單元皆對應於快閃記憶磁碟Drive_1~ Drive_N的一個部分,例如,64KB大小的記憶體空間。
第4圖的右側係顯示出一個邏輯聚合單元LAU所儲存之資料內容。各邏輯聚合單元包括複數條帶(stripe),例如圖中所示之條帶Stripe_1~Stripe_K,其中K為一正整數。各條帶包括複數儲存單元,一個儲存單元的大小可被設計為一個寫入單位的大小(例如,4KB)。位於同一條帶的儲存單元可分別對應於不同的快閃記憶磁碟。儲存單元可包含或進一步區分為用以儲存資料(例如,資料D1~D32)之複數資料單元以及用以儲存保護資訊(例如,保護資訊P1~P4與Q1~Q4)之複數同位單元。
於第4圖所示之範例中,N=10,且此快閃記憶體陣列被設計為具有+2的保護能力。因此,如圖所示,條帶Stripe_1可包含對應於不同快閃記憶體之10個儲存單元,其中的8個儲存單元可被配置為用以儲存資料之資料單元,剩餘的2個儲存單元可被配置為用以儲存保護資訊之同位單元。微處理器220可根據資料單元所儲存之資料內容(例如,條帶Stripe_1的資料單元所儲存之資料D1~D8)計算出對應之保護資訊(例如,保護資訊P1與Q1),並且將保護資訊儲存於此條帶的同位單元,用以保護此條帶之所儲存之資料。於此所述之資料單元所儲存之資料即為前述之使用者資料。
除了儲存使用者資料之外,一個邏輯聚合單元LAU的一或多個條帶可更用於儲存此邏輯聚合單元LAU的原資料(meta data),其中,原資料可至少包含此邏輯聚合單元LAU的多個條帶的碟至存儲池(Disk to Storage pool,縮寫為D2S)之映射資訊。於第4圖所示之範例中,用以儲存原資料之條帶(例如,條帶Stripe_(K-1)與Stripe_K)可記錄複數邏輯區塊位址,例如圖中所示之邏輯區塊位址LBA1~LBA16,其中,用以儲存原資料之條帶的一個資料單元可用以儲存用以儲存使用者資料之條帶(例如,條帶Stripe_1) 的一個資料單元所儲存的資料所對應的邏輯區塊位址。即,用以儲存原資料之條帶的一個資料單元所記錄的邏輯區塊位址可以是用以儲存使用者資料之條帶的一個資料單元所儲存的資料所對應的邏輯區塊位址(例如,前述之存儲池邏輯區塊位址SLBA)。此外,為了保護D2S映射資訊,微處理器220可根據用以儲存原資料之條帶的資料單元所儲存之資料內容(例如,邏輯區塊位址LBA1~LBA8) 計算出對應之保護資訊(例如,保護資訊PM1與QM1),並且將保護資訊儲存於此條帶的同位單元。
於本發明之一實施例中,邏輯區塊位址LBA1~LBA16可以是前述之存儲池邏輯區塊位址SLBA,並且於一個邏輯聚合單元LAU之中用以儲存原資料之條帶的數量可相等於用以儲存使用者資料之條帶的數量。
參考回第2圖,根據本發明之一實施例,當微處理器220偵測到快閃記憶體之一者自快閃記憶體陣列240被移除時,微處理器220可執行一修復操作,使快閃記憶體陣列240可恢復既定之資料保護能力。其中,既定之資料保護能力可以是快閃記憶體陣列240原有的資料保護能力,即,原先被設定的保護能力。舉例而言,假設微處理器220根據一條帶的資料單元所儲存之資料內容計算出兩筆對應之保護資訊(例如,第4圖所示之P1與Q1或PM1與QM1),則快閃記憶體陣列240被設定的保護能力即為+2的保護能力。當微處理器220偵測到快閃記憶體之一者自快閃記憶體陣列240被移除時,快閃記憶體陣列240的保護能力會下降為僅具有+1的保護能力。因此,於本發明的實施例中,微處理器220可執行一修復操作,使快閃記憶體陣列240可恢復既定之+2的資料保護能力。需注意的是,為簡潔說明,於本發明實施例中係使用兩筆保護資訊與+2的資料保護能力作為說明範例,但本發明並不限於此。快閃記憶體陣列當可利用不同數量之保護資訊提供不同的資料保護能力。
第5圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之資料處理方法流程圖。根據本發明之一實施例,如上所述,於本發明所提出之全快閃陣列儲存裝置之資料處理方法中,響應於指示出快閃記憶體之一者自快閃記憶體陣列被移除之一偵測結果,微處理器220可依序對已被寫入資料之一或多個邏輯聚合單元所包含之複數條帶執行一修復操作,使快閃記憶體陣列可恢復提供既定之資料保護能力。
於本發明之實施例中,修復操作係反覆地對已被寫入資料之邏輯聚合單元所包含之各條帶執行,直到所有已被寫入資料之邏輯聚合單元的修復操作都已完成。
於本發明之實施例中,依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行的修復操作可包括以下步驟:
步驟S502: 根據已被寫入資料之一邏輯聚合單元所包含之一條帶之一部分資料單元所儲存之內容重新計算該條帶所對應之保護資訊。須注意的是,於本發明之實施例中,無論一條帶中對應於被移除之快閃記憶體之儲存單元為資料單元或同位單元,於步驟S502中用於重新計算保護資訊的部分資料單元之一數量皆會少於該條帶所包含之所有資料單元之一數量。
步驟S504: 將重新計算之該條帶所對應之該保護資訊重新寫入該條帶之該等儲存單元之一或多者。舉例而言,假設微處理器220要使快閃記憶體陣列可提供+2之資料保護能力,則微處理器220可根據一條帶的部分資料單元所儲存之資料內容重新計算出兩筆對應之保護資訊,並將重新計算的保護資訊重新寫入兩個儲存單元,用以取代其先前所儲存的內容。
第6圖係顯示根據本發明之一實施例所述之修復操作之一執行範例,用以例示當一條帶中對應於被移除之快閃記憶體之儲存單元為一資料單元時的修復操作。於此範例中,一條帶可包含對應於不同快閃記憶體之10個儲存單元,例如圖中所示之儲存單元601~610,其中的儲存單元601~608為資料單元,分別用以儲存資料D1~D8,儲存單元609~610為同位單元,分別用以儲存此條帶所儲存之資料D1~D8所對應的保護資訊P與Q。
假設此條帶中對應於被移除之快閃記憶體之儲存單元605為資料單元,於修復操作中,微處理器220可判斷此資料單元605是否儲存有效資料,若資料單元605並未儲存有效資料,即,資料D5已為無效資料,則微處理器220可直接捨棄資料D5,並根據此條帶中對應於被移除之快閃記憶體之儲存單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊(例如,根據圖中所示之資料D1~D4與D6~D8重新計算此條帶所對應之保護資訊P’與Q’),並且微處理器220可將重新計算之保護資訊寫入此條帶之同位單元,用以取代同位單元原先所儲存之內容(例如,將重新計算之保護資訊P’與Q’儲存於此條帶之儲存單元609~610,用以取代先前的保護資訊P與Q)。需注意的是,對於微處理器220而言,重新計算之保護資訊係被寫入相同的碟邏輯區塊位址DLBA (例如,儲存單元609~610之位址),而對於對應之快閃記憶磁碟內的記憶體控制器而言,重新計算之保護資訊為相同邏輯位址的更新資料。
另一方面,若資料單元605仍儲存有效資料,則微處理器220需執行資料還原(data recovery)與資料搬移的操作,根據此條帶所儲存之內容反向推導出資料單元605所儲存之資料,並且將還原的資料搬移至其他儲存單元。更具體的說,微處理器220可根據此條帶中的其餘儲存單元所儲存之內容推導出儲存單元605所儲存之有效資料。於取得資料單元605所儲存之有效資料(例如,圖中所示之資料D5)後,微處理器220將推導出的有效資料D5寫入一現用的(active)邏輯聚合單元之一儲存單元(例如,圖中所示之儲存單元611),所述之現用的邏輯聚合單元係指正在被配置用以接收使用者資料(例如,圖中所示之資料Dh)的邏輯聚合單元。待現用的邏輯聚合單元中的資料單元(例如,儲存單元611~618)被寫滿後,微處理器220可根據資料單元所儲存之資料內容計算出兩筆對應之保護資訊(例如,圖中所示之P’’與Q’’)並將之寫入對應的同位單元(例如,儲存單元619~620)。
此外,微處理器220根據現用的邏輯聚合單元中用於儲存推導出的(還原的)有效資料的資料單元(例如,圖中所示之儲存單元611)之一位址(例如,碟邏輯區塊位址DLBA)更新一映射表格(例如,一存儲池至碟(Storage pool to Disk,縮寫為S2D)映射表格)中對應於此有效資料之邏輯位址(例如,存儲池邏輯區塊位址SLBA)之映射資訊。例如,將S2D映射表格中對應於此有效資料之存儲池邏輯區塊位址SLBA之S2D映射資訊修改為儲存單元611之碟邏輯區塊位址DLBA。
根據本發明之一實施例,微處理器220可為快閃記憶體陣列240建立起前述之S2D映射表格,用以為各存儲池邏輯區塊位址SLBA紀錄其所對應之碟邏輯區塊位址DLBA,並將此S2D映射表格存入記憶體裝置230,其中一存儲池邏輯區塊位址SLBA所對應之碟邏輯區塊位址DLBA係指示出儲存此存儲池邏輯區塊位址SLBA所對應之資料的碟邏輯區塊位址DLBA。
微處理器220可藉由比對S2D映射表格所記錄的S2D映射資訊與邏輯聚合單元LAU內所紀錄之D2S映射資訊是否相符,判斷一資料單元所儲存之資料是否為有效資料。更具體的說,S2D映射表格可包含複數欄位,一欄位對應於一個存儲池邏輯區塊位址SLBA,用以紀錄此存儲池邏輯區塊位址SLBA之資料實際係被儲存於快閃記憶體陣列240的哪個碟邏輯區塊位址DLBA。S2D映射表格所包含的欄位數量可等於由容積管理模組310以及/或快閃陣列控制模組320觀之的邏輯區塊位址或儲存單元的總數量。
此外,如上所述,一個邏輯聚合單元LAU中用以儲存原資料之一或多個條帶可記錄此邏輯聚合單元LAU中多個條帶的D2S資訊。於判斷一資料單元(例如,資料單元DU_a)所儲存之資料是否為有效資料時,微處理器220可先查看包含此資料單元的邏輯聚合單元LAU中所紀錄之此資料單元之原資料,用以得知此資料單元的D2S映射資訊,例如,取得此資料單元DU_a所對應之存儲池邏輯區塊位址SLBA_a(即,得知此資料單元目前所儲存之資料係對應於存儲池邏輯區塊位址SLBA_a)。接著,微處理器220可查看記憶體裝置230所儲存之S2D映射表格中對應於此存儲池邏輯區塊位址SLBA_a所紀錄的內容,用以得知此存儲池邏輯區塊位址SLBA_a的S2D映射資訊,例如,得知此存儲池邏輯區塊位址SLBA_a目前所對應的碟邏輯區塊位址DLBA_a(即,得知此存儲池邏輯區塊位址SLBA_a的資料目前被儲存於碟邏輯區塊位址DLBA_a)。若此碟邏輯區塊位址DLBA_a等於資料單元DU_a的碟邏輯區塊位址,則表示資料單元DU_a所儲存之資料為有效資料。若此碟邏輯區塊位址DLBA_a不等於資料單元DU_a的碟邏輯區塊位址,則表示此存儲池邏輯區塊位址SLBA_a的資料已被更新並儲存於其他的資料單元,因此資料單元DU_a所儲存之資料已為無效資料。
此外,如上所述,於本發明之實施例中,對於微處理器220而言,雖前述操作是將重新計算之保護資訊P’與Q’重新寫於相同的碟邏輯區塊位址DLBA用以取代先前的保護資訊P與Q,然而對於對應之快閃記憶磁碟內的記憶體控制器而言,此操作實際上是將重新計算之保護資訊P’與Q’分別寫入一個新的物理位址。此外,記憶體控制器亦可為對應之快閃記憶體建立與維護對應之邏輯至物理(Logical to Physical,縮寫為L2P)映射表格,並且將對於此快閃記憶磁碟而言的邏輯位址(例如,儲存單元609~610之碟邏輯區塊位址)的L2P映射資訊修改為實際儲存保護資訊P’與Q’ 的物理位址。藉此操作,可使先前的保護資訊P與Q成為無效資料。
第7圖係顯示根據本發明之一實施例所述之修復操作之另一執行範例,用以例示當一條帶中對應於被移除之快閃記憶體之儲存單元為一同位單元時的修復操作。於此範例中,一條帶可對應於不同快閃記憶體之10個儲存單元,例如圖中所示之儲存單元701~710,其中的儲存單元701~708為資料單元,分別用以儲存資料D1~D8,儲存單元709~710為同位單元,分別用以儲存此條帶所儲存之資料D1~D8所對應的保護資訊P與Q。
假設此條帶中對應於被移除之快閃記憶體之儲存單元709為同位單元,於修復操作中,微處理器220可自同一條帶中選擇資料單元之其中一者,例如但不限於,選擇最鄰近儲存單元709之儲存單元708,根據此條帶中被選擇之資料單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊(例如,根據圖中所示之資料D1~D7重新計算此條帶所對應之保護資訊P’與Q’),並且微處理器220可將重新計算之保護資訊寫入被選擇之儲存單元,用以取代儲存單元原先所儲存之內容(例如,將保護資訊P’儲存於儲存單元708,用以取代先前儲存的資料D8),以及將重新計算之保護資訊寫入此條帶中未被移除的同位單元,用以取代此同位單元原先所儲存之內容(例如,將保護資訊Q’儲存於儲存單元710,用以取代先前的保護資訊Q)。
此外,微處理器220可判斷此被選擇之儲存單元是否儲存有效資料。若被選擇之儲存單元708所儲存之資料D8已為無效資料,則微處理器220可直接捨棄資料D8。若被選擇之儲存單元708所儲存之資料D8仍為有效資料,微處理器220可將資料D8搬移至(寫入)一現用的(active)邏輯聚合單元之一資料單元 (例如,圖中所示之儲存單元711)。待現用的邏輯聚合單元中的資料單元(例如,儲存單元711~718)被寫滿後,微處理器220可根據資料單元所儲存之資料內容計算出兩筆對應之保護資訊(例如,圖中所示之P’’與Q’’)並將之寫入對應的同位單元(例如,儲存單元719~720)。
此外,微處理器220根據現用的邏輯聚合單元中用於儲存被搬移的有效資料(例如,圖中所示之資料D8)的資料單元(例如,圖中所示之儲存單元711)之一位址(例如,碟邏輯區塊位址DLBA)更新一映射表格(例如,S2D映射表格)中對應於此有效資料之一邏輯位址(例如,存儲池邏輯區塊位址SLBA) 之映射資訊。例如,將S2D映射表格中對應於此有效資料之存儲池邏輯區塊位址SLBA之S2D映射資訊修改為儲存單元711之碟邏輯區塊位址DLBA。
同樣地,於本發明之實施例中,對於微處理器220而言,雖前述操作是將重新計算之保護資訊P’’與Q’’重新寫於相同的碟邏輯區塊位址DLBA用以取代先前儲存的使用者資料與保護資訊,然而對於對應之快閃記憶磁碟內的記憶體控制器而言,此操作實際上是將重新計算之保護資訊P’’與Q’’分別寫入一個新的物理位址。記憶體控制器可進一步將其內部所維護之L2P映射表格中對於此快閃記憶磁碟而言的邏輯位址(例如,儲存單元708與710之碟邏輯區塊位址DLBA)的L2P映射資訊修改為實際儲存保護資訊P’’與Q’’的物理位址。藉此操作,可使先前儲存的使用者資料與保護資訊成為無效資料。
需注意的是,於本發明之實施例中,無論對應於被移除之快閃記憶體之儲存單元為資料單元或同位單元,於一條帶的修復操作中,至多僅需執行三次的寫入操作。例如,於第6圖所示之實施例中,若資料D5仍為有效資料,於修復操作中需要執行的寫入操作包含將資料D5寫入儲存單元611、以及將重新計算的保護資訊P’與Q’寫入儲存單元609與610的寫入操作。另一方面,當資料D5已為無效資料,則於修復操作中僅需執行兩次的寫入操作,包含用以將重新計算的保護資訊P’與Q’寫入儲存單元609與610的寫入操作。
類似地,於第7圖所示之實施例中,若資料D8仍為有效資料,於修復操作中需要執行的寫入操作包含將資料D8寫入儲存單元711、以及將重新計算的保護資訊P’與Q’寫入儲存單元708與710的寫入操作。另一方面,當資料D8已為無效資料,則於修復操作中僅需執行兩次的寫入操作,包含用以將重新計算的保護資訊P’與Q’寫入儲存單元708與710的寫入操作。
於先前技術中,於一條帶的修復操作中,至少需執行N次的寫入操作,其中N為全快閃陣列儲存裝置所包括的快閃記憶磁碟或快閃記憶體總量。因此,當N為很大的數字時,大量的寫入操作將導致儲存裝置的效能大幅下降。相較於先前技術,於本發明之資料處理方法中,於一條帶的修復操作中至多僅需執行三次的寫入操作。如此一來,可有效解決先前技術中為了執行恢復原有的資料保護能力的相關操作而引入大量的寫入操作,導致儲存裝置的效能大幅下降的問題。
第8圖係顯示根據本發明之一實施例所述之適用於全快閃陣列儲存裝置之資料處理方法詳細流程圖。資料處理方法可起始於偵測到快閃記憶磁碟之其中一者被移除的狀態,並包含以下步驟:
步驟S802: 微處理器220可選擇已被寫入資料之一個邏輯聚合單元,並且讀取此邏輯聚合單元所儲存之原資料,以得知此邏輯聚合單元所包含之複數儲存單元的D2S映射資訊。
步驟S804: 微處理器220於此邏輯聚合單元中選擇一個條帶。舉例而言,微處理器220可依照條帶編號或索引值自第一個條帶依序選擇此邏輯聚合單元所包含的條帶。
步驟S806: 微處理器220可判斷此條帶中對應於被移除之快閃記憶體/快閃記憶磁碟之一儲存單元(或者,被移除的儲存單元以簡化說明)是否為一資料單元。若否,則執行步驟S808。若是,則執行步驟S810。值得注意的是,步驟S806中「被移除的儲存單元是否為一資料單元」之判斷亦可由「被移除的儲存單元是否為一同位單元」之判斷取代。於此判斷之下,若是,則執行步驟S808。若否,則執行步驟S810。
步驟S808: 微處理器220可自此條帶中選擇一資料單元,並且判斷被選擇之資料單元是否儲存有效資料。若否,則執行步驟S812。若是,則執行步驟S814。
步驟S810: 微處理器220可判斷被移除的資料單元是否儲存有效資料。若否,則執行步驟S822。若是,則執行步驟S826。
步驟S812: 微處理器220可讀取此條帶中除了被選擇的資料單元以外之其餘資料單元所儲存之內容。
步驟S814: 微處理器220可讀取此條帶中所有資料單元所儲存之內容。
步驟S816: 微處理器220可將被選擇的資料單元所儲存之內容寫入一現用的邏輯聚合單元。
步驟S818: 微處理器220可根據步驟S816的寫入操作對應地更新由微處理器220為快閃記憶體陣列240所維護之S2D映射表格。如第7圖所介紹的更新操作。
步驟S820: 微處理器220可根據此條帶中除了被選擇的資料單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊,並且儲存重新計算之保護資訊。如上所述,當此條帶所對應之保護資訊包含不只一筆保護資訊時,保護資訊可被寫入此條帶中被選擇之資料單元的碟邏輯區塊位址DLBA以及未被移除之同位單元的碟邏輯區塊位址DLBA,用以取代先前儲存的內容。值得注意的是,圖中步驟S820內的文字「根據讀取內容重新計算並儲存此條帶所對應之保護資訊」中的「讀取內容」係指步驟S812中所讀取之除了被選擇的資料單元以外之其餘資料單元所儲存之內容,或者步驟S814中所讀取之除了被選擇的資料單元以外之其餘資料單元所儲存之內容。
步驟S822: 微處理器220可讀取此條帶中除了被移除的儲存單元以外之其餘資料單元所儲存之內容。
步驟S824: 微處理器220可根據此條帶中除了被移除的儲存單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊,並且儲存重新計算之保護資訊。如上所述,當此條帶所對應之保護資訊包含不只一筆保護資訊時,保護資訊可分別被寫入各同位單元的碟邏輯區塊位址DLBA,用以取代先前儲存的保護資訊。值得注意的是,圖中步驟S824內的文字「根據讀取內容重新計算並儲存此條帶所對應之保護資訊」中的「讀取內容」係指步驟S822中所獨取之此條帶中除了被移除的資料單元以外之其餘資料單元所儲存之內容,或者步驟S826中所讀取之此條帶中除了被移除的資料單元以外之其餘資料單元所儲存之內容。
步驟S826: 微處理器220可讀取此條帶中未被移除的資料單元與同位單元所儲存之內容。
步驟S828: 微處理器220根據讀取內容推導出被移除的儲存單元所儲存之有效資料,並且將推導出的有效資料寫入一現用的邏輯聚合單元。
步驟S830: 微處理器220可根據步驟S828的寫入操作對應地更新由微處理器220為快閃記憶體陣列240所維護之S2D映射表格。如第6圖所介紹的更新操作。
步驟S832: 微處理器220可判斷目前處理的條帶是否為LAU中的最後一個條帶。若是,代表目前所選擇之LAU的所有條帶的修復操作均已完成,進入步驟S834。若否,則回到步驟S804,選擇下一個尚未被處理過的條帶。
步驟S834: 微處理器220可判斷目前處理的LAU是否為LAU已被寫入資料的最後一個LAU。若是,代表所有受到磁碟移除所影響的LAU所對應的修復操作均已完成。若否,則回到步驟S802,選擇下一個尚未被處理過的LAU。
綜上所述,於本發明之資料處理方法中,於執行各條帶的修復操作過程中至多僅需執行三次的寫入操作。藉由本發明之改良,因執行修復操作所引入的寫入操作已無關於全快閃陣列儲存裝置所包括的快閃記憶體磁碟或快閃記憶體總量。如此一來,可極有效率地恢復原有的資料保護能力,並且可有效地解決先前技術中為了執行恢復原有的資料保護能力的相關操作而引入大量的寫入操作,導致儲存裝置的效能大幅下降的問題。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100,200:全快閃陣列儲存裝置 110-1,110-n,110-N,Drive_1,Drive_N:快閃記憶磁碟 200:全快閃陣列儲存裝置 210:全快閃陣列控制器 220:微處理器 230:記憶體裝置 240:快閃記憶體陣列 310:容積管理模組 320:快閃陣列控制模組 601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720:儲存單元 D1~D32,Dh:資料 DLBA:碟邏輯區塊位址 P,P’,P’’,P1,P2,P3,P4,PM1,PM2,Q,Q’,Q’’,Q1,Q2 ,Q3,Q4,QM1,QM2:保護資訊 User_Write:寫入指令 LAU:邏輯聚合單元 LBA1~LBA16:邏輯區塊位址 SLBA:存儲池邏輯區塊位址 Stripe_1,Stripe_K:條帶 VVLBA:虛擬容積邏輯區塊位址
第1圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置的外觀示意圖。 第2圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之一範例方塊圖。 第3圖係顯示根據本發明之一實施例所述之管理快閃記憶體陣列的軟體架構。 第4圖係顯示根據本發明之一實施例所述之邏輯聚合單元示意圖。 第5圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之資料處理方法流程圖。 第6圖係顯示根據本發明之一實施例所述之修復操作之一執行範例。 第7圖係顯示根據本發明之一實施例所述之修復操作之另一執行範例。 第8圖係顯示根據本發明之一實施例所述之適用於全快閃陣列儲存裝置之資料處理方法詳細流程圖。
200:全快閃陣列儲存裝置
210:全快閃陣列控制器
220:微處理器
230:記憶體裝置
240:快閃記憶體陣列

Claims (15)

  1. 一種全快閃陣列儲存裝置,包括: 一快閃記憶體陣列,其中該快閃記憶體陣列包括複數快閃記憶體,該等快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,該等儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元;以及 一微處理器,耦接至該快閃記憶體陣列,用以偵測該等快閃記憶體之一狀態,其中當該微處理器偵測到該等快閃記憶體之一者自該快閃記憶體陣列被移除時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作,並且 其中於一條帶所對應之該修復操作中,該微處理器根據該條帶之一部分資料單元所儲存之內容重新計算該條帶所對應之保護資訊,並且將重新計算之該條帶所對應之該保護資訊重新寫入該條帶之該等儲存單元之一或多者, 其中該條帶之該部分資料單元之一數量少於該條帶所包含之所有資料單元之一數量。
  2. 如申請專利範圍第1項所述之全快閃陣列儲存裝置,其中於一條帶所對應之該修復操作中,該微處理器更判斷該條帶中對應於被移除之該快閃記憶體之一儲存單元是否為一同位單元,以及當該條帶中對應於被移除之該快閃記憶體之該儲存單元為一同位單元時,該微處理器自該條帶選擇一資料單元,根據該條帶中被選擇之該資料單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於被選擇之該資料單元,用以取代被選擇之該資料單元所儲存之內容。
  3. 如申請專利範圍第2項所述之全快閃陣列儲存裝置,其中於該條帶所對應之該修復操作中,該微處理器更判斷被選擇之該資料單元是否儲存有效資料,以及當被選擇之該資料單元儲存有效資料時,該微處理器讀取被選擇之該資料單元所儲存之該有效資料、將該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。
  4. 如申請專利範圍第1項所述之全快閃陣列儲存裝置,其中於一條帶所對應之該修復操作中,該微處理器更判斷該條帶中對應於被移除之該快閃記憶體之一儲存單元是否為一資料單元,以及當該條帶中對應於被移除之該快閃記憶體之該儲存單元為一資料單元時,該微處理器根據該條帶中對應於被移除之該快閃記憶體之該儲存單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於該條帶之該同位單元,用以取代該同位單元所儲存之內容。
  5. 如申請專利範圍第4項所述之全快閃陣列儲存裝置,其中於該條帶所對應之該修復操作中,該微處理器更判斷該條帶中對應於被移除之該快閃記憶體之該儲存單元是否儲存有效資料,以及當對應於被移除之該快閃記憶體之該儲存單元儲存有效資料時,該微處理器讀取該條帶中對應於被移除之該快閃記憶體之該儲存單元以外之其餘儲存單元所儲存之內容、根據讀取內容推導出對應於被移除之該快閃記憶體之該儲存單元所儲存之該有效資料、將推導出的該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。
  6. 一種資料處理方法,適用於一全快閃陣列儲存裝置,該全快閃陣列儲存裝置包括一快閃記憶體陣列,該快閃記憶體陣列包括複數快閃記憶體,該等快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,該等儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元,該資料處理方法包括: 響應於指示出該等快閃記憶體之一者自該快閃記憶體陣列被移除之一偵測結果,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作, 其中依序對已被寫入資料之該一或多個邏輯聚合單元所包含之該等條帶執行該修復操作之步驟更包括: 根據一條帶之一部分資料單元所儲存之內容重新計算該條帶所對應之保護資訊;以及 將重新計算之該條帶所對應之該保護資訊重新寫入該條帶之該等儲存單元之一或多者, 其中該條帶之該部分資料單元之一數量少於該條帶所包含之所有資料單元之一數量。
  7. 如申請專利範圍第6項所述之資料處理方法,其中依序對已被寫入資料之該一或多個邏輯聚合單元所包含之該等條帶執行該修復操作之步驟更包括: 判斷該條帶中對應於被移除之該快閃記憶體之一儲存單元是否為一同位單元;以及 當該條帶中對應於被移除之該快閃記憶體之該儲存單元為一同位單元時,自該條帶選擇一資料單元,根據該條帶中被選擇之該資料單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於被選擇之該資料單元,用以取代被選擇之該資料單元所儲存之內容。
  8. 如申請專利範圍第7項所述之資料處理方法,其中依序對已被寫入資料之該一或多個邏輯聚合單元所包含之該等條帶執行該修復操作之步驟更包括: 判斷被選擇之該資料單元是否儲存有效資料;以及 當被選擇之該資料單元儲存有效資料時,讀取被選擇之該資料單元所儲存之該有效資料、將該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。
  9. 如申請專利範圍第6項所述之資料處理方法,其中依序對已被寫入資料之該一或多個邏輯聚合單元所包含之該等條帶執行該修復操作之步驟更包括: 判斷該條帶中對應於被移除之該快閃記憶體之一儲存單元是否為一資料單元;以及 當該條帶中對應於被移除之該快閃記憶體之該儲存單元為一資料單元時,根據該條帶中對應於被移除之該快閃記憶體之該儲存單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於該條帶之該同位單元,用以取代該同位單元所儲存之內容。
  10. 如申請專利範圍第9項所述之資料處理方法,其中依序對已被寫入資料之該一或多個邏輯聚合單元所包含之該等條帶執行該修復操作之步驟更包括: 判斷該條帶中對應於被移除之該快閃記憶體之該儲存單元是否儲存有效資料;以及 當對應於被移除之該快閃記憶體之該儲存單元儲存有效資料時,讀取該條帶中對應於被移除之該快閃記憶體之該儲存單元以外之其餘儲存單元所儲存之內容、根據讀取內容推導出對應於被移除之該快閃記憶體之該儲存單元所儲存之該有效資料、將推導出的該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。
  11. 一種全快閃陣列控制器,包括: 一記憶體裝置;以及 一微處理器,耦接至該記憶體裝置與一快閃記憶體陣列,用以根據該記憶體裝置所儲存之資料管理該快閃記憶體陣列,其中該快閃記憶體陣列包括複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,該等儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元, 當該微處理器偵測到該快閃記憶體陣列發生掉碟時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作,並且 其中於一條帶所對應之該修復操作中,該微處理器根據該條帶之一部分資料單元所儲存之內容重新計算該條帶所對應之保護資訊,並且將重新計算之該條帶所對應之該保護資訊重新寫入該條帶之該等儲存單元之一或多者, 其中該條帶之該部分資料單元之一數量少於該條帶所包含之所有資料單元之一數量。
  12. 如申請專利範圍第11項所述之全快閃陣列控制器,其中於一條帶所對應之該修復操作中,該微處理器更判斷該條帶中對應於被移除之一快閃記憶體之一儲存單元是否為一同位單元,以及當該條帶中對應於被移除之該快閃記憶體之該儲存單元為一同位單元時,該微處理器自該條帶選擇一資料單元,根據該條帶中被選擇之該資料單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於被選擇之該資料單元,用以取代被選擇之該資料單元所儲存之內容。
  13. 如申請專利範圍第12項所述之全快閃陣列控制器,其中於該條帶所對應之該修復操作中,該微處理器更判斷被選擇之該資料單元是否儲存有效資料,以及當被選擇之該資料單元儲存有效資料時,該微處理器讀取被選擇之該資料單元所儲存之該有效資料、將該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。
  14. 如申請專利範圍第11項所述之全快閃陣列控制器,其中於一條帶所對應之該修復操作中,該微處理器更判斷該條帶中對應於被移除之一快閃記憶體之一儲存單元是否為一資料單元,以及當該條帶中對應於被移除之該快閃記憶體之該儲存單元為一資料單元時,該微處理器根據該條帶中對應於被移除之該快閃記憶體之該儲存單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於該條帶之該同位單元,用以取代該同位單元所儲存之內容。
  15. 如申請專利範圍第14項所述之全快閃陣列控制器,其中於該條帶所對應之該修復操作中,該微處理器更判斷該條帶中對應於被移除之該快閃記憶體之該儲存單元是否儲存有效資料,以及當對應於被移除之該快閃記憶體之該儲存單元儲存有效資料時,該微處理器讀取該條帶中對應於被移除之該快閃記憶體之該儲存單元以外之其餘儲存單元所儲存之內容、根據讀取內容推導出對應於被移除之該快閃記憶體之該儲存單元所儲存之該有效資料、將推導出的該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。
TW109128925A 2020-08-25 2020-08-25 全快閃陣列儲存裝置與資料處理方法 TWI748609B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109128925A TWI748609B (zh) 2020-08-25 2020-08-25 全快閃陣列儲存裝置與資料處理方法
CN202010973815.3A CN114116525A (zh) 2020-08-25 2020-09-16 全快闪阵列储存装置与数据处理方法
US17/338,710 US11630728B2 (en) 2020-08-25 2021-06-04 Data processing method for AFA storage device to restore data protection capability and the AFA storage device utilizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109128925A TWI748609B (zh) 2020-08-25 2020-08-25 全快閃陣列儲存裝置與資料處理方法

Publications (2)

Publication Number Publication Date
TWI748609B true TWI748609B (zh) 2021-12-01
TW202209339A TW202209339A (zh) 2022-03-01

Family

ID=80356636

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109128925A TWI748609B (zh) 2020-08-25 2020-08-25 全快閃陣列儲存裝置與資料處理方法

Country Status (3)

Country Link
US (1) US11630728B2 (zh)
CN (1) CN114116525A (zh)
TW (1) TWI748609B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042565B2 (en) * 2014-10-16 2018-08-07 Futurewei Technologies, Inc. All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
KR101970864B1 (ko) * 2016-11-25 2019-04-19 인하대학교 산학협력단 총 플래시 어레이 기반 오픈스택 클라우드 블록 스토리지에서의 패리티 데이터 중복제거 방법
US10453530B2 (en) * 2014-03-10 2019-10-22 Futurewei Technologies, Inc. RDMA-SSD dual-port unified memory and network controller

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206899B2 (en) * 2003-12-29 2007-04-17 Intel Corporation Method, system, and program for managing data transfer and construction
US20090113235A1 (en) * 2007-10-30 2009-04-30 Selinger Robert D Raid with redundant parity
WO2009140700A1 (en) * 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
US9058288B2 (en) * 2011-04-03 2015-06-16 Apple Inc. Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US10534542B2 (en) 2014-09-30 2020-01-14 Hewlett Packard Enterprise Development Lp Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
CN107239234B (zh) 2017-05-27 2020-08-04 苏州浪潮智能科技有限公司 一种基于全闪存阵列的随机io顺序化方法及装置
US10635609B2 (en) * 2018-03-02 2020-04-28 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10453530B2 (en) * 2014-03-10 2019-10-22 Futurewei Technologies, Inc. RDMA-SSD dual-port unified memory and network controller
US10042565B2 (en) * 2014-10-16 2018-08-07 Futurewei Technologies, Inc. All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
KR101970864B1 (ko) * 2016-11-25 2019-04-19 인하대학교 산학협력단 총 플래시 어레이 기반 오픈스택 클라우드 블록 스토리지에서의 패리티 데이터 중복제거 방법

Also Published As

Publication number Publication date
US20220066866A1 (en) 2022-03-03
CN114116525A (zh) 2022-03-01
US11630728B2 (en) 2023-04-18
TW202209339A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US11249840B2 (en) Data storage devices and methods for rebuilding a memory address mapping table
TWI428737B (zh) 半導體記憶體裝置
US8316257B2 (en) NAND power fail recovery
US10061710B2 (en) Storage device
US9104626B2 (en) Processing a copy command directed to a first storage architecture for data that is stored in a second storage architecture
US9727244B2 (en) Expanding effective storage capacity of a data storage system while providing support for address mapping recovery
US9501356B2 (en) Fast data back-up and restore between volatile and flash memory
JP6307624B2 (ja) データ重複排除ストレージシステムの方法及び装置
TW201916018A (zh) 資料儲存裝置與將資料寫入記憶體裝置之方法
TWI633428B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
US20190065392A1 (en) Nonvolatile memory devices and methods of controlling the same
US9424131B2 (en) Spatially decoupled redundancy schemes for a solid state drive (SSD)
US20170010810A1 (en) Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer
WO2015102035A1 (en) Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency
JP2010086009A (ja) 記憶装置およびメモリ制御方法
JP2020191055A (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
US8418029B2 (en) Storage control device and storage control method
US9323617B2 (en) Remap raid to maintain raid level
TWI748609B (zh) 全快閃陣列儲存裝置與資料處理方法
TWI547801B (zh) 資料儲存系統及方法
US10884857B2 (en) Data storage device and method of operating
TWI781807B (zh) 全快閃陣列儲存裝置與資料處理方法
EP2381354A2 (en) Data recording device
US8949553B2 (en) System and method for retention of historical data in storage resources
JP2011065313A (ja) ストレージデバイス