TWI781807B - Data processing method for afa storage device and the afa storage device utilizing the same - Google Patents

Data processing method for afa storage device and the afa storage device utilizing the same Download PDF

Info

Publication number
TWI781807B
TWI781807B TW110139991A TW110139991A TWI781807B TW I781807 B TWI781807 B TW I781807B TW 110139991 A TW110139991 A TW 110139991A TW 110139991 A TW110139991 A TW 110139991A TW I781807 B TWI781807 B TW I781807B
Authority
TW
Taiwan
Prior art keywords
data
unit
stripe
stored
flash memory
Prior art date
Application number
TW110139991A
Other languages
Chinese (zh)
Other versions
TW202209340A (en
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 TW110139991A priority Critical patent/TWI781807B/en
Publication of TW202209340A publication Critical patent/TW202209340A/en
Application granted granted Critical
Publication of TWI781807B publication Critical patent/TWI781807B/en

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

An all flash array storage device includes a flash memory array and a micro-processor. The flash memory array includes multiple flash memories. The flash memories correspond to multiple logical aggregation units. Each logical aggregation unit includes multiple stripes. Each stripe includes multiple storage units. The storage units include data units and at least one parity unit. The micro-processor detects a status of the flash memories. In response to a detection result indicating that one of the flash memories has been removed from the flash memory array, the micro-processor sequentially performs a repair operation on the stripes comprised in one or more logical aggregation units that have been written with data. In the repair operation of a stripe, the micro-processor recalculates protection information of the stripe according to content stored in a portion of data units of the stipe and rewrites the recalculated protection information in one or more storage units of the stripe.

Description

全快閃陣列儲存裝置與資料處理方法Full flash array storage device and data processing method

本發明係關於一種全快閃陣列儲存裝置的資料處理方法,尤指一種當全快閃陣列儲存裝置發生掉碟時,可有效率地恢復原有的資料保護能力的資料處理方法。The invention relates to a data processing method of a full-flash array storage device, especially a data processing method that can efficiently restore the original data protection capability when a disk is lost in the full-flash array storage device.

全快閃陣列(All Flash Array,縮寫AFA)是一種儲存裝置的架構,其基礎架構為利用數個快閃記憶磁碟形成儲存陣列,以大幅提升儲存裝置的儲存空間。全快閃陣列通常應用於網路端的伺服器,用以儲存來自多方使用者的大量的資料。為了避免儲存陣列中的一或多個快閃記憶磁碟發生損毀或者被移除,進而導致儲存裝置發生資料遺失的問題,儲存裝置可運用容錯式磁碟陣列(Redundant Array of Independent Disks,縮寫RAID)技術中所採用的錯誤保護機制進行資料保護。於RAID所採用的錯誤保護機制中,儲存裝置可根據被寫入的資料計算出保護資訊。當發現有效資料遺失時,便可利用保護資訊反向推導出被遺失的有效資料內容。All Flash Array (AFA for short) is a storage device architecture, and its basic structure is to use several flash memory disks to form a storage array to greatly increase the storage space of the storage device. The full flash array is usually applied to a server on the network side to store a large amount of data from multiple users. In order to prevent one or more flash memory disks in the storage array from being damaged or removed, resulting in data loss in the storage device, the storage device can use a fault-tolerant disk array (Redundant Array of Independent Disks, abbreviated as RAID) ) The error protection mechanism adopted in the technology is used for data protection. In the error protection mechanism adopted by RAID, the storage device can calculate the protection information according to the written data. When it is found that the valid data is lost, the protected information can be used to reversely deduce the content of the lost valid data.

舉例而言,儲存裝置可根據被寫入的資料計算出M份保護資訊,使得儲存裝置可具備+M的保護能力,所述+M代表著即便當M個快閃記憶磁碟發生損毀或者被移除時,儲存裝置仍可利用剩餘的資料執行資料修復,推導出損毀或者被移除的M個快閃記憶磁碟所儲存之資料。For example, the storage device can calculate M pieces of protection information according to the written data, so that the storage device can have +M protection capability, and the +M means that even when M flash memory disks are damaged or destroyed When removed, the storage device can still use the remaining data to perform data restoration, and deduce the data stored in the damaged or removed M flash memory disks.

然而,對於具備+M保護能力的儲存裝置而言,當儲存陣列中的一個快閃記憶磁碟發生損毀或者被移除時,資料保護能力便會下降為+(M-1),而當發生損毀或者被移除的快閃記憶磁碟的數量等於M時,儲存裝置便不再具備資料保護能力。However, for a storage device with +M protection capability, when a flash memory disk in the storage array is damaged or removed, the data protection capability will be reduced to +(M-1), and when When the number of damaged or removed flash memory disks is equal to M, the storage device no longer has the data protection capability.

為解決上述問題,使得儲存裝置在發生掉碟(lost of disk,包含上述之快閃記憶磁碟發生損毀或者被移除等情況)後仍可恢復原有的資料保護能力,同時避免為了執行恢復原有的資料保護能力的相關操作而引入過多的寫入操作,導致儲存裝置的效能大幅下降的情況,需要一種新穎的資料處理方法,用以於快閃陣列儲存裝置發生掉碟時,可有效率地恢復原有的資料保護能力。In order to solve the above problems, the storage device can still restore the original data protection ability after the loss of disk (including the above-mentioned flash memory disk is damaged or removed), and at the same time, it is avoided to perform recovery. Due to the introduction of too many write operations related to the original data protection capability, the performance of the storage device is greatly reduced. A novel data processing method is required to effectively protect the flash array storage device when the disk is lost. Efficiently restore the original data protection capabilities.

本發明之一目的在於當快閃陣列儲存裝置發生掉碟時可有效率地恢復原有的資料保護能力。One purpose of the present invention is to efficiently restore the original data protection capability when the flash array storage device loses a disk.

根據本發明之一實施例,一種全快閃陣列儲存裝置包括一快閃記憶體陣列以及一微處理器。快閃記憶體陣列包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶,各條帶包括複數儲存單元,儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元。微處理器耦接至快閃記憶體陣列,用以偵測快閃記憶體之一狀態,其中當該微處理器偵測到該等快閃記憶體之一者之運作狀態異常時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作,並且:於一條帶所對應之該修復操作中,該微處理器根據條帶上至少一部分資料單元所儲存之內容,還原該條帶上之一儲存資料或重新計算該條帶所對應之一保護資訊;以及當該修復操作重新計算出該保護資訊時,該微處理器將該儲存資料寫入至該條帶,以及該修復操作還原出該條帶上之該儲存資料時,該微處理器將該儲存資料寫入至該等條帶中之另一條帶。According to an embodiment of the present invention, a full flash array storage device includes a flash memory array and a microprocessor. The flash memory array includes a plurality of flash memories, and the flash memory corresponds to a plurality of logic aggregation units, each logic aggregation unit includes a plurality of stripes, and each stripe includes a plurality of storage units, and the storage units include a plurality of data for storing data The unit and at least the same unit for storing the protection information. The microprocessor is coupled to the flash memory array for detecting a state of the flash memory, wherein when the microprocessor detects that the operating state of one of the flash memories is abnormal, sequentially Perform a repair operation on the stripes that have been written into one or more logical aggregation units, and: in the repair operation corresponding to a stripe, the microprocessor according to at least a part of the data on the stripe unit stored content, restore a storage data on the stripe or recalculate a protection information corresponding to the stripe; and when the repair operation recalculates the protection information, the microprocessor writes the storage data When the storage data on the stripe is restored by the repair operation, the microprocessor writes the storage data to another one of the stripes.

根據本發明之一實施例,一種適用於一全快閃陣列儲存裝置之資料處理方法,其中全快閃陣列儲存裝置包括一快閃記憶體陣列,快閃記憶體陣列包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶,各條帶包括複數儲存單元,儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元,資料處理方法包括:當偵測到該等快閃記憶體之一者之運作狀態異常時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作;於一條帶所對應之該修復操作中,該微處理器根據條帶上至少一部分資料單元所儲存之內容,還原該條帶上之一儲存資料或重新計算該條帶所對應之一保護資訊;以及當該修復操作重新計算出該保護資訊時,該微處理器將該儲存資料寫入至該條帶,以及該修復操作還原出該條帶上之該儲存資料時,該微處理器將該儲存資料寫入至該等條帶中之另一條帶。According to an embodiment of the present invention, a data processing method applicable to a full flash array storage device, wherein the full flash array storage device includes a flash memory array, the flash memory array includes a plurality of flash memories, and the flash memory The memory corresponds to a plurality of logic aggregation units, each logic aggregation unit includes a plurality of stripes, each stripe includes a plurality of storage units, and the storage unit includes a plurality of data units for storing data and at least one homologous unit for storing protection information, data The processing method includes: when an abnormal operation state of one of the flash memories is detected, a repair operation is performed sequentially on the stripes included in one or more logical aggregation units that have written data ; In the repair operation corresponding to a strip, the microprocessor restores a piece of stored data on the strip or recalculates a piece of protection information corresponding to the strip according to the content stored in at least a part of the data units on the strip ; and when the repair operation recalculates the protection information, the microprocessor writes the stored data to the stripe, and when the repair operation restores the stored data on the stripe, the microprocessor will The stored data is written to another of the stripes.

根據本發明之一實施例,一種全快閃陣列控制器包括一記憶體裝置以及一微處理器。微處理器耦接至記憶體裝置與一快閃記憶體陣列,用以根據記憶體裝置所儲存之資料管理快閃記憶體陣列,其中快閃記憶體陣列包括複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元。當該微處理器偵測到該等快閃記憶體之一者之運作狀態異常時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作;於一條帶所對應之該修復操作中,該微處理器根據條帶上至少一部分資料單元所儲存之內容,還原該條帶上之一儲存資料或重新計算該條帶所對應之一保護資訊;以及According to an embodiment of the present invention, a full flash array controller includes a memory device and a microprocessor. The microprocessor is coupled to the memory device and a flash memory array, and is used to manage the flash memory array according to the data stored in the memory device, wherein the flash memory array includes a plurality of logic aggregation units, each logic aggregation unit It includes a plurality of stripes, each stripe includes a plurality of storage units, and the storage units include a plurality of data units for storing data and at least one homobit unit for storing protection information. When the microprocessor detects that the operating state of one of the flash memories is abnormal, sequentially perform a repair operation on the stripes included in one or more logical aggregation units that have written data ; In the repair operation corresponding to a strip, the microprocessor restores a piece of stored data on the strip or recalculates a piece of protection information corresponding to the strip according to the content stored in at least a part of the data units on the strip ;as well as

當該修復操作重新計算出該保護資訊時,該微處理器將該儲存資料寫入至該條帶,以及該修復操作還原出該條帶上之該儲存資料時,該微處理器將該儲存資料寫入至該等條帶中之另一條帶。When the repair operation recalculates the protection information, the microprocessor writes the stored data to the stripe, and when the repair operation restores the stored data on the stripe, the microprocessor writes the stored data Data is written to the other of the stripes.

在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。In the following, numerous specific details are described in order to provide a thorough understanding of embodiments of the invention. Those skilled in the art will still understand, however, how to practice the invention without one or more of the specific details or by reliance on other methods, elements, or materials. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring the main concepts of the invention.

在整個說明書中對「一個實施例」、「一實施例」、「一個範例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「在一個實施例中」、「在一實施例中」、「在一個範例中」或「在一範例中」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。Reference throughout this specification to "one embodiment," "an embodiment," "an example," or "an example" means that a particular feature, structure, or characteristic described in connection with the embodiment or example is included in the present invention In at least one embodiment of the plurality of embodiments. Thus, appearances of the phrases "in one embodiment," "in an embodiment," "in one example," or "in an example" in various places throughout this specification are not necessarily all referring to the same embodiment. or example. Furthermore, the particular features, structures or characteristics may be combined in any suitable combination and/or subcombination in one or more embodiments or examples.

此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。In addition, in order to make the purpose, features and advantages of the present invention more comprehensible, specific embodiments of the present invention are listed below and described in detail in conjunction with the accompanying drawings. The purpose is to illustrate the spirit of the present invention rather than to limit the protection scope of the present invention. It should be understood that the following embodiments can be implemented through software, hardware, firmware, or any combination of the above.

本發明係關於一種全快閃陣列儲存裝置與全快閃陣列儲存裝置的資料處理方法。根據本發明之一實施例,全快閃陣列儲存裝置可包括複數快閃記憶磁碟,各快閃記憶磁碟可包括至少一快閃記憶體,而快閃記憶磁碟所包含之該等快閃記憶體可形成一快閃記憶體陣列。The invention relates to a full flash array storage device and a data processing method of the full flash array storage device. According to an embodiment of the present invention, the all-flash array storage device may include a plurality of flash memory disks, each flash memory disk may include at least one flash memory, and the flash memory disks included The memory may form a flash memory array.

第1圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置的外觀示意圖。於第1圖所示之實施例中,全快閃陣列儲存裝置100可包括N個快閃記憶磁碟,例如,圖中所示之快閃記憶磁碟110-1~110-N,其中N為大於1之正整數,各快閃記憶磁碟包括一快閃記憶體,因此,全快閃陣列儲存裝置100可包括由N個快閃記憶體所組成之一快閃記憶體陣列。FIG. 1 is a schematic view showing the appearance of a full flash array storage device according to an embodiment of the present invention. In the embodiment shown in FIG. 1, the all-flash array storage device 100 may include N flash memory disks, for example, the flash memory disks 110-1~110-N shown in the figure, where N is For a positive integer greater than 1, each flash memory disk includes a flash memory. Therefore, the full flash array storage device 100 may include a flash memory array composed of N flash memories.

當快閃陣列儲存裝置發生掉碟時,例如,其中一個快閃記憶磁碟(例如,快閃記憶磁碟110-n,其中n為正整數)自全快閃陣列儲存裝置100被移除,或者發生磁碟損毀或無法被識別等情況時,由於快閃記憶磁碟110-n所儲存之資料已遺失,全快閃陣列儲存裝置100的資料保護能力便會對應地下降。為了修復遺失的資料,並且使全快閃陣列儲存裝置100在發生掉碟後仍可恢復原有的資料保護能力,全快閃陣列儲存裝置100需要執行對應之修復操作,以推導出遺失的資料,並且恢復全快閃陣列儲存裝置100原有的資料保護能力。於本發明之實施例中,藉由本發明所提出之資料處理方法,可在執行極少量的寫入操作下,有效率地恢復原有的資料保護能力。When the flash array storage device loses a disk, for example, one of the flash memory disks (for example, flash memory disk 110-n, wherein n is a positive integer) is removed from the full flash array storage device 100, or When the disk is damaged or unrecognizable, the data protection capability of the full flash array storage device 100 will decrease correspondingly because the data stored in the flash memory disk 110-n is lost. In order to restore the lost data and enable the full-flash array storage device 100 to restore the original data protection capability after a disc loss occurs, the full-flash array storage device 100 needs to perform a corresponding repair operation to derive the lost data, and The original data protection capability of the full flash array storage device 100 is restored. In the embodiment of the present invention, with the data processing method proposed by the present invention, the original data protection capability can be efficiently restored with a very small number of write operations.

第2圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之一範例方塊圖。根據本發明之一實施例,全快閃陣列儲存裝置200可包括一全快閃陣列控制器210以及由複數快閃記憶磁碟所包含之快閃記憶體形成快閃記憶體陣列240。全快閃陣列控制器210可包括一微處理器220與一記憶體裝置230。微處理器220耦接至記憶體裝置230與快閃記憶體陣列240,用以根據記憶體裝置230所儲存之資料管理快閃記憶體陣列240。根據本發明之一實施例,快閃記憶體陣列240可包括複數快閃記憶體,各快閃記憶體可對應於一快閃記憶磁碟,微處理器220可持續偵測各快閃記憶磁碟或快閃記憶體之一狀態。舉例而言,微處理器220可持續發出探詢信號,用以探詢快閃記憶磁碟或快閃記憶體之狀態。當微處理器220無法於既定時間接收到快閃記憶磁碟或快閃記憶體之回應,或者接收到之回應顯示出異常狀態、或者微處理器220無法再識別快閃記憶磁碟或快閃記憶體時,微處理器220可判斷全快閃陣列儲存裝置200或快閃記憶體陣列240發生掉碟。由於掉碟可包含多種不同原因造成的不同情況,而該等情況都將導致此快閃記憶體所儲存之資料遺失,因此,為了精簡說明篇幅,以下段落將統一以快閃記憶體自快閃記憶體陣列240被移除的情況作為掉碟所包含之各種情況的代表。可以理解的是,本發明所提出之資料處理方法並不限於快閃記憶體被移除的情況,而是可被應用於任何終將導致快閃記憶體陣列所包含之部分快閃記憶體之資料遺失並無法繼續使用快閃記憶體陣列所包含之部分快閃記憶體的情況。FIG. 2 is a block diagram showing an example of an all-flash array storage device according to an embodiment of the present invention. According to an embodiment of the present invention, the all-flash array storage device 200 may include an all-flash array controller 210 and a flash memory array 240 formed by flash memories contained in a plurality of flash memory disks. The full flash array controller 210 may include a microprocessor 220 and a memory device 230 . The microprocessor 220 is coupled to the memory device 230 and the flash memory array 240 for managing the flash memory array 240 according to the data stored in the memory device 230 . According to an embodiment of the present invention, the flash memory array 240 may include a plurality of flash memories, and each flash memory may correspond to a flash memory disk, and the microprocessor 220 may continuously detect each flash memory disk. disk or flash memory. For example, the microprocessor 220 can continuously send polling signals to poll the status of the flash disk or the flash memory. When the microprocessor 220 cannot receive a response from the flash memory disk or flash memory within the predetermined time, or the received response shows an abnormal state, or the microprocessor 220 can no longer recognize the flash memory disk or flash memory When the memory is stored, the microprocessor 220 can determine that a disk has been dropped from the full flash array storage device 200 or the flash memory array 240 . Since a disk drop may include many different situations caused by different reasons, and all of these situations will lead to the loss of data stored in this flash memory, therefore, in order to simplify the description, the following paragraphs will be unified as flash memory self-flash The situation in which the memory array 240 is removed is representative of various situations included in disk loss. It will be appreciated that the data processing method proposed by the present invention is not limited to the case where the flash memory is removed, but can be applied to any event that will eventually result in a flash memory array comprising a portion of the flash memory A situation where data is lost and part of the flash memory contained in the flash memory array cannot be used any longer.

第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。FIG. 3 shows the software architecture for managing the flash memory array according to an embodiment of the present invention, and is used to illustrate the addressing operation inside the full flash array storage device. According to one embodiment of the present invention, the microprocessor 220 may include one or more internal memory devices for storing data and program codes required to manage the flash memory array. Wherein, the microprocessor 220 can generate a plurality of modules for managing the flash memory array by executing the program codes, and each module can perform corresponding operations. For example, the software modules generated by the microprocessor 220 by executing the program codes may include a volume management module 310 and a flash array control module 320 . In response to a write command User_Write for writing data corresponding to a Virtual Volume Logic Block Address (VVLBA) into the flash memory array, the volume management module 310 may first write this The virtual volume logical block address VVLBA is converted into another storage pool logical block address (Storage poolLogic Block Address, abbreviated SLBA) used inside the microprocessor 220, and the flash array control module 320 is notified to write the data The storage pool logical block address SLBA. Then, the flash array control module 320 converts the storage pool logical block address SLBA into a disk logical block address (Disk Logical Block Address, DLBA for short) of the flash memory array, and executes the corresponding writing The operation is used to write the received data (that is, the data corresponding to the logical block address SLBA of the storage pool, and also the data corresponding to the aforementioned virtual volume logical block address VVLBA) into the corresponding disk logical area Block address DLBA.

更具體的說,響應於將一虛擬容積邏輯區塊位址VVLBA_1所對應之使用者資料DATA_A寫入快閃記憶體陣列之一寫入指令User_Write,全快閃陣列控制器210之微處理器220可執行兩次之轉址操作,先將虛擬容積邏輯區塊位址VVLBA_1轉換為另一內部所使用之存儲池邏輯區塊位址SLBA_1,再將存儲池邏輯區塊位址SLBA_1轉換為碟邏輯區塊位址DLBA_1,接著微處理器220可對一或多個快閃記憶磁碟發出寫入指令,用以將資料DATA_A寫入快閃記憶體陣列中由碟邏輯區塊位址DLBA_1所定址到的儲存單元。More specifically, in response to a write command User_Write for writing user data DATA_A corresponding to a virtual volume logical block address VVLBA_1 into the flash memory array, the microprocessor 220 of the full flash array controller 210 can Perform address transfer twice, first convert the virtual volume logical block address VVLBA_1 to another internally used storage pool logical block address SLBA_1, and then convert the storage pool logical block address SLBA_1 to the disk logical area block address DLBA_1, and then the microprocessor 220 can issue a write command to one or more flash memory disks to write the data DATA_A into the flash memory array addressed by the disk logic block address DLBA_1 storage unit.

需注意的是,於本發明之實施例中,前述之儲存單元為全快閃陣列儲存裝置內的儲存單元,即為由全快閃陣列控制器210觀之的儲存單元,其未必對等於各快閃記憶體內部的實體儲存單元。It should be noted that, in the embodiment of the present invention, the aforesaid storage unit is the storage unit in the full flash array storage device, that is, the storage unit viewed by the full flash array controller 210, which is not necessarily equivalent to each flash The physical storage unit inside the memory.

此外,需注意的是,於本發明之實施例中,所述區塊位址中的「區塊」大小未必相等於快閃記憶體所包含之實體「記憶體區塊」的大小。舉例而言,於本發明之一實施例中,物理區塊位址或邏輯區塊位址中的「區塊」可以是4K位元組(Byte)大小之一寫入單位,因此,一個碟邏輯區塊位址DLBA可定址到快閃記憶體陣列中具有4KB大小之一儲存單元。而快閃記憶體所包含之一個實體「記憶體區塊」的大小則可取決於快閃記憶體的實體配置。In addition, it should be noted that in the embodiment of the present invention, the size of the "block" in the block address is not necessarily equal to the size of the physical "memory block" included in the flash memory. For example, in one embodiment of the present invention, the "block" in the physical block address or logical block address can be a write unit of 4K bytes (Byte), therefore, a disc The Logical Block Address DLBA is addressable to a storage unit having a size of 4KB in the flash memory array. The size of a physical "memory block" included in the flash memory may depend on the physical configuration of the flash memory.

此外,需注意的是,由於快閃記憶體陣列係由複數快閃記憶磁碟所包含之快閃記憶體所組成,而各快閃記憶磁碟可更包含一記憶體控制器,用以控制對應之快閃記憶體之存取操作。因此,當各快閃記憶磁碟內的記憶體控制器根據接收到的碟邏輯區塊位址DLBA將接收到的資料寫入對應之快閃記憶體時(或者,當記憶體控制器根據接收到的邏輯位址自對應之快閃記憶體讀取資料時),仍會再進行一次轉址操作,將接收到的邏輯位址轉換為可定址到對應之快閃記憶體的一或多個實體儲存單元的實體位址,此實體位址(即,由各快閃記憶磁碟內的記憶體控制器觀之的實體位址)才是真正對應於實體儲存單元的位址。In addition, it should be noted that since the flash memory array is composed of flash memory contained in a plurality of flash memory disks, each flash memory disk may further include a memory controller for controlling Corresponding flash memory access operations. Therefore, when the memory controller in each flash memory disk writes the received data into the corresponding flash memory according to the received disk logical block address DLBA (or, when the memory controller writes the received data into the corresponding flash memory according to the received When the received logical address reads data from the corresponding flash memory), another redirection operation will be performed to convert the received logical address into one or more addresses that can be addressed to the corresponding flash memory. The physical address of the physical storage unit, the physical address (that is, the physical address viewed by the memory controller in each flash memory disk) is the address that actually corresponds to the physical storage unit.

續前例,當包含由碟邏輯區塊位址DLBA_1所指到之全快閃陣列儲存裝置的儲存單元的快閃記憶磁碟接收到包含資料DATA_A以及碟邏輯區塊位址DLBA_1等相關資訊之一寫入指令時,此快閃記憶磁碟之記憶體控制器可更進一步將此碟邏輯區塊位址DLBA_1轉換為其內部實際所使用之一物理區塊位址PBA_1,其中此物理區塊位址PBA_1係指出快閃記憶磁碟中真正被安排用以儲存資料DATA_A的記憶體區塊與資料頁,並且記憶體控制器將資料DATA_A儲存於物理區塊位址PBA_1所定址到的記憶體區塊與資料頁。Continuing from the previous example, when the flash memory disk containing the storage unit of the full flash array storage device pointed to by the disk logical block address DLBA_1 receives a write containing data DATA_A and the disk logical block address DLBA_1, etc. When the command is input, the memory controller of the flash memory disk can further convert the logical block address DLBA_1 of the disk into a physical block address PBA_1 actually used internally, wherein the physical block address PBA_1 refers to the memory block and data page in the flash memory disk that are actually arranged to store the data DATA_A, and the memory controller stores the data DATA_A in the memory block addressed by the physical block address PBA_1 and data page.

根據本發明之一實施例,快閃記憶體陣列可包括複數快閃記憶體,快閃記憶體對應於複數邏輯聚合單元(Logical Aggregation Unit,縮寫為LAU),各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元。全快閃陣列儲存裝置中位於同一條帶的複數儲存單元實際上可分布於多個快閃記憶體,而該等儲存單元可包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位(parity)單元。According to one embodiment of the present invention, the flash memory array may include a plurality of flash memories, and the flash memories correspond to a plurality of logical aggregation units (Logical Aggregation Unit, abbreviated as LAU), and each logical aggregation unit includes a plurality of stripes ( stripe), each stripe includes a plurality of storage units. The multiple storage units located in the same stripe in the all-flash array storage device can actually be distributed in multiple flash memories, and these storage units can include multiple data units for storing data and at least one data unit for storing protection information. bit (parity) unit.

第4圖係顯示根據本發明之一實施例所述之邏輯聚合單元示意圖。於此範例中,全快閃陣列儲存裝置可包括複數快閃記憶磁碟Drive_1~ Drive_N,其中N為一正整數。由快閃記憶磁碟Drive_1~ Drive_N所包含之快閃記憶體所組成之快閃記憶體陣列可形成/對應於複數邏輯聚合單元,例如圖中虛線框起之其中一個邏輯聚合單元LAU。各邏輯聚合單元皆對應於快閃記憶磁碟Drive_1~ Drive_N的一個部分,例如,64KB大小的記憶體空間。FIG. 4 is a schematic diagram of a logical aggregation unit according to an embodiment of the present invention. In this example, the full flash array storage device may include a plurality of flash memory disks Drive_1˜Drive_N, wherein N is a positive integer. The flash memory array composed of the flash memories contained in the flash memory disks Drive_1~Drive_N can form/correspond to a plurality of logic aggregation units, such as one of the logic aggregation units LAU framed by a dotted line in the figure. Each logical aggregation unit corresponds to a part of the flash memory disks Drive_1˜Drive_N, for example, a memory space of 64KB.

第4圖的右側係顯示出一個邏輯聚合單元LAU所儲存之資料內容。各邏輯聚合單元包括複數條帶(stripe),例如圖中所示之條帶Stripe_1~Stripe_K,其中K為一正整數。各條帶包括複數儲存單元,一個儲存單元的大小可被設計為一個寫入單位的大小(例如,4KB)。位於同一條帶的儲存單元可分別對應於不同的快閃記憶磁碟。儲存單元可包含或進一步區分為用以儲存資料(例如,資料D1~D32)之複數資料單元以及用以儲存保護資訊(例如,保護資訊P1~P4與Q1~Q4)之複數同位單元。The right side of Figure 4 shows the data content stored in a logical aggregation unit LAU. Each logical aggregation unit includes a plurality of stripes, such as stripes Stripe_1˜Stripe_K shown in the figure, wherein K is a positive integer. Each stripe includes a plurality of storage units, and the size of a storage unit can be designed to be the size of a write unit (for example, 4KB). The storage units located in the same stripe may respectively correspond to different flash memory disks. The storage unit may include or be further divided into a plurality of data units for storing data (eg, data D1-D32) and a plurality of homobit units for storing protection information (eg, protection information P1-P4 and Q1-Q4).

於第4圖所示之範例中,N=10,且此快閃記憶體陣列被設計為具有+2的保護能力。因此,如圖所示,條帶Stripe_1可包含對應於不同快閃記憶體之10個儲存單元,其中的8個儲存單元可被配置為用以儲存資料之資料單元,剩餘的2個儲存單元可被配置為用以儲存保護資訊之同位單元。微處理器220可根據資料單元所儲存之資料內容(例如,條帶Stripe_1的資料單元所儲存之資料D1~D8)計算出對應之保護資訊(例如,保護資訊P1與Q1),並且將保護資訊儲存於此條帶的同位單元,用以保護此條帶之所儲存之資料。於此所述之資料單元所儲存之資料即為前述之使用者資料。In the example shown in FIG. 4, N=10, and the flash memory array is designed to have a protection capability of +2. Therefore, as shown in the figure, Stripe_1 may include 10 storage units corresponding to different flash memories, 8 of which may be configured as data units for storing data, and the remaining 2 storage units may be A peer unit configured to store protected information. The microprocessor 220 can calculate the corresponding protection information (for example, protection information P1 and Q1) according to the data content stored in the data unit (for example, the data D1~D8 stored in the data unit of Stripe_1), and store the protection information The co-bit unit stored in this stripe is used to protect the data stored in this stripe. The data stored in the data unit mentioned here is the aforementioned user data.

除了儲存使用者資料之外,一個邏輯聚合單元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),並且將保護資訊儲存於此條帶的同位單元。In addition to storing user data, one or more stripes of a logical aggregation unit LAU can be further used to store the original data (meta data) of the logical aggregation unit LAU, wherein the raw data can at least include the logical aggregation unit LAU Disk to Storage pool (D2S for short) mapping information of multiple stripes. In the example shown in Figure 4, the stripes used to store raw data (for example, stripes Stripe_(K-1) and Stripe_K) can record multiple logical block addresses, such as the logical block shown in the figure Addresses LBA1~LBA16, where a data unit of a stripe used to store raw data can be used to store data stored in a data unit of a stripe used to store user data (for example, stripe Stripe_1) corresponds to Logical block address. That is, the logical block address recorded in a data unit of the strip used to store raw data may be the logical block address corresponding to the data stored in a data unit of the strip used to store user data ( For example, the aforementioned storage pool logical block address (SLBA). In addition, in order to protect the D2S mapping information, the microprocessor 220 can calculate the corresponding protection information (such as , the protection information PM1 and QM1), and store the protection information in the same bit unit of the stripe.

於本發明之一實施例中,邏輯區塊位址LBA1~LBA16可以是前述之存儲池邏輯區塊位址SLBA,並且於一個邏輯聚合單元LAU之中用以儲存原資料之條帶的數量可相等於用以儲存使用者資料之條帶的數量。In one embodiment of the present invention, the logical block addresses LBA1~LBA16 may be the aforementioned storage pool logical block addresses SLBA, and the number of stripes used to store raw data in one logical aggregation unit LAU may be Equal to the number of stripes used to store user data.

參考回第2圖,根據本發明之一實施例,當微處理器220偵測到快閃記憶體之一者自快閃記憶體陣列240被移除時,微處理器220可執行一修復操作,使快閃記憶體陣列240可恢復既定之資料保護能力。其中,既定之資料保護能力可以是快閃記憶體陣列240原有的資料保護能力,即,原先被設定的保護能力。舉例而言,假設微處理器220根據一條帶的資料單元所儲存之資料內容計算出兩筆對應之保護資訊(例如,第4圖所示之P1與Q1或PM1與QM1),則快閃記憶體陣列240被設定的保護能力即為+2的保護能力。當微處理器220偵測到快閃記憶體之一者自快閃記憶體陣列240被移除時,快閃記憶體陣列240的保護能力會下降為僅具有+1的保護能力。因此,於本發明的實施例中,微處理器220可執行一修復操作,使快閃記憶體陣列240可恢復既定之+2的資料保護能力。需注意的是,為簡潔說明,於本發明實施例中係使用兩筆保護資訊與+2的資料保護能力作為說明範例,但本發明並不限於此。快閃記憶體陣列當可利用不同數量之保護資訊提供不同的資料保護能力。Referring back to FIG. 2, according to one embodiment of the present invention, when the microprocessor 220 detects that one of the flash memories is removed from the flash memory array 240, the microprocessor 220 can perform a repair operation , so that the flash memory array 240 can restore the predetermined data protection capability. Wherein, the predetermined data protection capability may be the original data protection capability of the flash memory array 240 , that is, the previously set protection capability. For example, assuming that the microprocessor 220 calculates two pieces of corresponding protection information (for example, P1 and Q1 or PM1 and QM1 shown in FIG. The set protection capability of the volume array 240 is +2 protection capability. When the microprocessor 220 detects that one of the flash memories is removed from the flash memory array 240, the protection capability of the flash memory array 240 is reduced to only have a protection capability of +1. Therefore, in the embodiment of the present invention, the microprocessor 220 can perform a repair operation, so that the flash memory array 240 can restore the predetermined data protection capability of +2. It should be noted that, for the sake of brevity, in the embodiment of the present invention, two pieces of protection information and +2 data protection capability are used as an illustration example, but the present invention is not limited thereto. Flash memory arrays can provide different data protection capabilities with different amounts of protection information.

第5圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之資料處理方法流程圖。根據本發明之一實施例,如上所述,於本發明所提出之全快閃陣列儲存裝置之資料處理方法中,響應於指示出快閃記憶體之一者自快閃記憶體陣列被移除之一偵測結果,微處理器220可依序對已被寫入資料之一或多個邏輯聚合單元所包含之複數條帶執行一修復操作,使快閃記憶體陣列可恢復提供既定之資料保護能力。FIG. 5 is a flowchart showing a data processing method of a full flash array storage device according to an embodiment of the present invention. According to an embodiment of the present invention, as described above, in the data processing method of the all-flash array storage device proposed by the present invention, in response to indicating that one of the flash memories is removed from the flash memory array As a result of the detection, the microprocessor 220 can sequentially perform a repair operation on the plurality of stripes included in one or more logic aggregation units that have written data, so that the flash memory array can resume providing predetermined data protection ability.

於本發明之實施例中,修復操作係反覆地對已被寫入資料之邏輯聚合單元所包含之各條帶執行,直到所有已被寫入資料之邏輯聚合單元的修復操作都已完成。In the embodiment of the present invention, the repair operation is repeatedly performed on the stripes included in the logical aggregation units that have been written with data, until the repair operations for all the logical aggregation units that have been written with data are completed.

於本發明之實施例中,依序對已被寫入資料之一或多個邏輯聚合單元所包含之條帶執行的修復操作可包括以下步驟:In an embodiment of the present invention, the repair operation performed sequentially on the stripes included in one or more logical aggregation units of the written data may include the following steps:

步驟S502: 根據已被寫入資料之一邏輯聚合單元所包含之一條帶之一部分資料單元所儲存之內容重新計算該條帶所對應之保護資訊。須注意的是,於本發明之實施例中,無論一條帶中對應於被移除之快閃記憶體之儲存單元為資料單元或同位單元,於步驟S502中用於重新計算保護資訊的部分資料單元之一數量皆會少於該條帶所包含之所有資料單元之一數量。Step S502: Recalculate the protection information corresponding to the stripe according to the content stored in a part of the data unit of the stripe included in the logical aggregation unit of the data that has been written. It should be noted that, in the embodiment of the present invention, regardless of whether the storage unit corresponding to the removed flash memory in a stripe is a data unit or a parity unit, part of the data used to recalculate the protection information in step S502 One of the units will be less than one of all the data units contained in the stripe.

步驟S504: 將重新計算之該條帶所對應之該保護資訊重新寫入該條帶之該等儲存單元之一或多者。舉例而言,假設微處理器220要使快閃記憶體陣列可提供+2之資料保護能力,則微處理器220可根據一條帶的部分資料單元所儲存之資料內容重新計算出兩筆對應之保護資訊,並將重新計算的保護資訊重新寫入兩個儲存單元,用以取代其先前所儲存的內容。Step S504: Rewrite the protection information corresponding to the recalculated stripe into one or more of the storage units of the stripe. For example, assuming that the microprocessor 220 wants to enable the flash memory array to provide a data protection capability of +2, the microprocessor 220 can recalculate the two corresponding protection information, and re-write the recalculated protection information into the two storage units to replace their previously stored contents.

第6圖係顯示根據本發明之一實施例所述之修復操作之一執行範例,用以例示當一條帶中對應於被移除之快閃記憶體之儲存單元為一資料單元時的修復操作。於此範例中,一條帶可包含對應於不同快閃記憶體之10個儲存單元,例如圖中所示之儲存單元601~610,其中的儲存單元601~608為資料單元,分別用以儲存資料D1~D8,儲存單元609~610為同位單元,分別用以儲存此條帶所儲存之資料D1~D8所對應的保護資訊P與Q。Fig. 6 shows an execution example of a repair operation according to an embodiment of the present invention, to illustrate the repair operation when the storage unit corresponding to the removed flash memory in a stripe is a data unit . In this example, one strip can include 10 storage units corresponding to different flash memories, such as storage units 601~610 shown in the figure, where storage units 601~608 are data units for storing data respectively D1-D8, the storage units 609-610 are co-bit units, respectively used to store the protection information P and Q corresponding to the data D1-D8 stored in the stripe.

假設此條帶中對應於被移除之快閃記憶體之儲存單元605為資料單元,於修復操作中,微處理器220可判斷此資料單元605是否儲存有效資料,若資料單元605並未儲存有效資料,即,資料D5已為無效資料,則微處理器220可直接捨棄資料D5,並根據此條帶中對應於被移除之快閃記憶體之儲存單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊(例如,根據圖中所示之資料D1~D4與D6~D8重新計算此條帶所對應之保護資訊P’與Q’),並且微處理器220可將重新計算之保護資訊寫入此條帶之同位單元,用以取代同位單元原先所儲存之內容(例如,將重新計算之保護資訊P’與Q’儲存於此條帶之儲存單元609~610,用以取代先前的保護資訊P與Q)。需注意的是,對於微處理器220而言,重新計算之保護資訊係被寫入相同的碟邏輯區塊位址DLBA (例如,儲存單元609~610之位址),而對於對應之快閃記憶磁碟內的記憶體控制器而言,重新計算之保護資訊為相同邏輯位址的更新資料。Assuming that the storage unit 605 corresponding to the removed flash memory in this stripe is a data unit, in the repair operation, the microprocessor 220 can judge whether the data unit 605 stores valid data, if the data unit 605 does not store Valid data, that is, the data D5 is invalid data, then the microprocessor 220 can directly discard the data D5, and according to the information stored in the remaining data units other than the storage unit corresponding to the removed flash memory in this stripe The content recalculates the protection information corresponding to this strip (for example, recalculates the protection information P' and Q' corresponding to this strip according to the data D1~D4 and D6~D8 shown in the figure), and the microprocessor 220 The recalculated protection information can be written into the same bit unit of this stripe to replace the original stored content of the same bit unit (for example, the recalculated protection information P' and Q' are stored in the storage unit 609~ of this stripe 610, used to replace the previous protection information P and Q). It should be noted that, for the microprocessor 220, the recalculated protection information is written into the same disk logical block address DLBA (for example, the addresses of the storage units 609~610), and for the corresponding flash As far as the memory controller in the memory disk is concerned, the recalculated protection information is the update data of the same logical address.

另一方面,若資料單元605仍儲存有效資料,則微處理器220需執行資料還原(data recovery)與資料搬移的操作,根據此條帶所儲存之內容反向推導出資料單元605所儲存之資料,並且將還原的資料搬移至其他儲存單元。更具體的說,微處理器220可根據此條帶中的其餘儲存單元所儲存之內容推導出儲存單元605所儲存之有效資料。於取得資料單元605所儲存之有效資料(例如,圖中所示之資料D5)後,微處理器220將推導出的有效資料D5寫入一現用的(active)邏輯聚合單元之一儲存單元(例如,圖中所示之儲存單元611),所述之現用的邏輯聚合單元係指正在被配置用以接收使用者資料(例如,圖中所示之資料Dh)的邏輯聚合單元。待現用的邏輯聚合單元中的資料單元(例如,儲存單元611~618)被寫滿後,微處理器220可根據資料單元所儲存之資料內容計算出兩筆對應之保護資訊(例如,圖中所示之P’’與Q’’)並將之寫入對應的同位單元(例如,儲存單元619~620)。On the other hand, if the data unit 605 still stores valid data, the microprocessor 220 needs to perform data recovery (data recovery) and data transfer operations, and reversely deduce the data stored in the data unit 605 according to the content stored in this strip. data, and move the restored data to other storage units. More specifically, the microprocessor 220 can deduce the valid data stored in the storage unit 605 according to the contents stored in the other storage units in the stripe. After obtaining the valid data stored in the data unit 605 (for example, the data D5 shown in the figure), the microprocessor 220 writes the deduced valid data D5 into a storage unit ( For example, the storage unit 611 shown in the figure), the active logical aggregation unit refers to the logical aggregation unit being configured to receive user data (eg, the data Dh shown in the figure). After the data units (for example, storage units 611~618) in the current logic aggregation unit are full, the microprocessor 220 can calculate two corresponding protection information according to the data content stored in the data unit (for example, in the figure P'' and Q'' as shown) are written into corresponding parity cells (for example, storage cells 619~620).

此外,微處理器220根據現用的邏輯聚合單元中用於儲存推導出的(還原的)有效資料的資料單元(例如,圖中所示之儲存單元611)之一位址(例如,碟邏輯區塊位址DLBA)更新一映射表格(例如,一存儲池至碟(Storage pool to Disk,縮寫為S2D)映射表格)中對應於此有效資料之邏輯位址(例如,存儲池邏輯區塊位址SLBA)之映射資訊。例如,將S2D映射表格中對應於此有效資料之存儲池邏輯區塊位址SLBA之S2D映射資訊修改為儲存單元611之碟邏輯區塊位址DLBA。In addition, the microprocessor 220 according to an address of a data unit (for example, the storage unit 611 shown in the figure) used to store the deduced (restored) valid data in the active logical aggregation unit (for example, the disk logical area block address DLBA) to update a mapping table (for example, a storage pool to disk (Storage pool to Disk, abbreviated as S2D) mapping table) corresponding to the logical address of this valid data (for example, storage pool logic block address SLBA) mapping information. For example, the S2D mapping information corresponding to the storage pool logical block address SLBA of the valid data in the S2D mapping table is modified to the disk logical block address DLBA of the storage unit 611 .

根據本發明之一實施例,微處理器220可為快閃記憶體陣列240建立起前述之S2D映射表格,用以為各存儲池邏輯區塊位址SLBA紀錄其所對應之碟邏輯區塊位址DLBA,並將此S2D映射表格存入記憶體裝置230,其中一存儲池邏輯區塊位址SLBA所對應之碟邏輯區塊位址DLBA係指示出儲存此存儲池邏輯區塊位址SLBA所對應之資料的碟邏輯區塊位址DLBA。According to one embodiment of the present invention, the microprocessor 220 can establish the above-mentioned S2D mapping table for the flash memory array 240 to record the corresponding disk logical block address for each storage pool logical block address SLBA DLBA, and store this S2D mapping table into the memory device 230, wherein the disk logical block address DLBA corresponding to the logical block address SLBA of a storage pool indicates that the corresponding storage pool logical block address SLBA is stored The disk logical block address DLBA of the data.

微處理器220可藉由比對S2D映射表格所記錄的S2D映射資訊與邏輯聚合單元LAU內所紀錄之D2S映射資訊是否相符,判斷一資料單元所儲存之資料是否為有效資料。更具體的說,S2D映射表格可包含複數欄位,一欄位對應於一個存儲池邏輯區塊位址SLBA,用以紀錄此存儲池邏輯區塊位址SLBA之資料實際係被儲存於快閃記憶體陣列240的哪個碟邏輯區塊位址DLBA。S2D映射表格所包含的欄位數量可等於由容積管理模組310以及/或快閃陣列控制模組320觀之的邏輯區塊位址或儲存單元的總數量。The microprocessor 220 can determine whether the data stored in a data unit is valid data by comparing whether the S2D mapping information recorded in the S2D mapping table is consistent with the D2S mapping information recorded in the logic aggregation unit LAU. More specifically, the S2D mapping table may include multiple fields, one field corresponds to a storage pool logical block address SLBA, and the data used to record the storage pool logical block address SLBA is actually stored in the flash Which disk logical block address DLBA of the memory array 240. The number of fields included in the S2D mapping table may be equal to the total number of logical block addresses or storage units viewed by the volume management module 310 and/or the flash array control module 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所儲存之資料已為無效資料。In addition, as mentioned above, one or more stripes used to store raw data in one logical aggregation unit LAU can record the D2S information of multiple stripes in the logical aggregation unit LAU. When judging whether the data stored in a data unit (for example, data unit DU_a) is valid data, the microprocessor 220 can first check the original data of the data unit recorded in the logical aggregation unit LAU including the data unit, and use To know the D2S mapping information of this data unit, for example, obtain the storage pool logical block address SLBA_a corresponding to this data unit DU_a (that is, know that the data currently stored in this data unit corresponds to the storage pool logical block address SLBA_a). Then, the microprocessor 220 can check the content recorded in the S2D mapping table stored in the memory device 230 corresponding to the storage pool logical block address SLBA_a, so as to obtain the S2D of the storage pool logical block address SLBA_a Mapping information, for example, knowing the disk logical block address DLBA_a currently corresponding to the storage pool logical block address SLBA_a (that is, knowing that the data of the storage pool logical block address SLBA_a is currently stored in the disk logical area Block Address DLBA_a). If the disk logical block address DLBA_a is equal to the disk logical block address of the data unit DU_a, it means that the data stored in the data unit DU_a is valid data. If the disk logical block address DLBA_a is not equal to the disk logical block address of the data unit DU_a, it means that the data of the storage pool logical block address SLBA_a has been updated and stored in other data units, so the data unit DU_a The stored data is no longer valid.

此外,如上所述,於本發明之實施例中,對於微處理器220而言,雖前述操作是將重新計算之保護資訊P’與Q’重新寫於相同的碟邏輯區塊位址DLBA用以取代先前的保護資訊P與Q,然而對於對應之快閃記憶磁碟內的記憶體控制器而言,此操作實際上是將重新計算之保護資訊P’與Q’分別寫入一個新的物理位址。此外,記憶體控制器亦可為對應之快閃記憶體建立與維護對應之邏輯至物理(Logical to Physical,縮寫為L2P)映射表格,並且將對於此快閃記憶磁碟而言的邏輯位址(例如,儲存單元609~610之碟邏輯區塊位址)的L2P映射資訊修改為實際儲存保護資訊P’與Q’ 的物理位址。藉此操作,可使先前的保護資訊P與Q成為無效資料。In addition, as mentioned above, in the embodiment of the present invention, for the microprocessor 220, although the aforementioned operation is to rewrite the recalculated protection information P' and Q' to the same disk logical block address DLBA to replace the previous protection information P and Q, but for the memory controller in the corresponding flash memory disk, this operation actually writes the recalculated protection information P' and Q' into a new physical address. In addition, the memory controller can also establish and maintain a corresponding Logical to Physical (L2P) mapping table for the corresponding flash memory, and assign the logical address for the flash memory disk The L2P mapping information (for example, the disk logical block address of the storage units 609~610) is modified to the physical address for actually storing the protection information P' and Q'. With this operation, the previous protection information P and Q can be made invalid.

第7圖係顯示根據本發明之一實施例所述之修復操作之另一執行範例,用以例示當一條帶中對應於被移除之快閃記憶體之儲存單元為一同位單元時的修復操作。於此範例中,一條帶可對應於不同快閃記憶體之10個儲存單元,例如圖中所示之儲存單元701~710,其中的儲存單元701~708為資料單元,分別用以儲存資料D1~D8,儲存單元709~710為同位單元,分別用以儲存此條帶所儲存之資料D1~D8所對應的保護資訊P與Q。FIG. 7 shows another implementation example of the repair operation according to an embodiment of the present invention, to illustrate the repair when the storage cells corresponding to the removed flash memory in a stripe are the same bit cells operate. In this example, one band can correspond to 10 storage units of different flash memories, such as the storage units 701~710 shown in the figure, wherein the storage units 701~708 are data units, respectively used to store data D1 ~D8, the storage units 709~710 are co-bit units, respectively used to store the protection information P and Q corresponding to the data D1~D8 stored in this stripe.

假設此條帶中對應於被移除之快閃記憶體之儲存單元709為同位單元,於修復操作中,微處理器220可自同一條帶中選擇資料單元之其中一者,例如但不限於,選擇最鄰近儲存單元709之儲存單元708,根據此條帶中被選擇之資料單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊(例如,根據圖中所示之資料D1~D7重新計算此條帶所對應之保護資訊P’與Q’),並且微處理器220可將重新計算之保護資訊寫入被選擇之儲存單元,用以取代儲存單元原先所儲存之內容(例如,將保護資訊P’儲存於儲存單元708,用以取代先前儲存的資料D8),以及將重新計算之保護資訊寫入此條帶中未被移除的同位單元,用以取代此同位單元原先所儲存之內容(例如,將保護資訊Q’儲存於儲存單元710,用以取代先前的保護資訊Q)。Assuming that the storage unit 709 corresponding to the removed flash memory in this stripe is a parity unit, in the repair operation, the microprocessor 220 can select one of the data units from the same stripe, such as but not limited to , select the storage unit 708 closest to the storage unit 709, and recalculate the protection information corresponding to this stripe according to the contents stored in the remaining data units other than the selected data unit in this stripe (for example, according to the The data D1~D7 recalculate the protection information P' and Q' corresponding to this strip, and the microprocessor 220 can write the recalculated protection information into the selected storage unit to replace the original storage unit Content (for example, store the protection information P' in the storage unit 708 to replace the previously stored data D8), and write the recalculated protection information into the same bit unit that has not been removed in this stripe to replace this The content previously stored in the same bit unit (for example, the protected information Q' is stored in the storage unit 710 to replace the previous protected information Q).

此外,微處理器220可判斷此被選擇之儲存單元是否儲存有效資料。若被選擇之儲存單元708所儲存之資料D8已為無效資料,則微處理器220可直接捨棄資料D8。若被選擇之儲存單元708所儲存之資料D8仍為有效資料,微處理器220可將資料D8搬移至(寫入)一現用的(active)邏輯聚合單元之一資料單元 (例如,圖中所示之儲存單元711)。待現用的邏輯聚合單元中的資料單元(例如,儲存單元711~718)被寫滿後,微處理器220可根據資料單元所儲存之資料內容計算出兩筆對應之保護資訊(例如,圖中所示之P’’與Q’’)並將之寫入對應的同位單元(例如,儲存單元719~720)。In addition, the microprocessor 220 can determine whether the selected storage unit stores valid data. If the data D8 stored in the selected storage unit 708 is invalid, the microprocessor 220 can discard the data D8 directly. If the data D8 stored in the selected storage unit 708 is still valid data, the microprocessor 220 can move (write) the data D8 to a data unit of a current (active) logical aggregation unit (for example, the data unit shown in the figure Shown storage unit 711). After the data units (for example, storage units 711-718) in the current logical aggregation unit are filled, the microprocessor 220 can calculate two corresponding protection information according to the data content stored in the data unit (for example, in the figure P'' and Q'' as shown) are written into corresponding co-bit cells (for example, storage cells 719-720).

此外,微處理器220根據現用的邏輯聚合單元中用於儲存被搬移的有效資料(例如,圖中所示之資料D8)的資料單元(例如,圖中所示之儲存單元711)之一位址(例如,碟邏輯區塊位址DLBA)更新一映射表格(例如,S2D映射表格)中對應於此有效資料之一邏輯位址(例如,存儲池邏輯區塊位址SLBA) 之映射資訊。例如,將S2D映射表格中對應於此有效資料之存儲池邏輯區塊位址SLBA之S2D映射資訊修改為儲存單元711之碟邏輯區塊位址DLBA。In addition, the microprocessor 220 according to a bit of the data unit (for example, the storage unit 711 shown in the figure) used to store the moved valid data (for example, the data D8 shown in the figure) in the active logical aggregation unit address (eg, disk logical block address DLBA) to update mapping information in a mapping table (eg, S2D mapping table) corresponding to a logical address of the valid data (eg, storage pool logical block address SLBA). For example, the S2D mapping information corresponding to the storage pool logical block address SLBA of the valid data in the S2D mapping table is modified to the disk logical block address DLBA of the storage unit 711 .

同樣地,於本發明之實施例中,對於微處理器220而言,雖前述操作是將重新計算之保護資訊P’’與Q’’重新寫於相同的碟邏輯區塊位址DLBA用以取代先前儲存的使用者資料與保護資訊,然而對於對應之快閃記憶磁碟內的記憶體控制器而言,此操作實際上是將重新計算之保護資訊P’’與Q’’分別寫入一個新的物理位址。記憶體控制器可進一步將其內部所維護之L2P映射表格中對於此快閃記憶磁碟而言的邏輯位址(例如,儲存單元708與710之碟邏輯區塊位址DLBA)的L2P映射資訊修改為實際儲存保護資訊P’’與Q’’的物理位址。藉此操作,可使先前儲存的使用者資料與保護資訊成為無效資料。Similarly, in the embodiment of the present invention, for the microprocessor 220, although the aforementioned operation is to rewrite the recalculated protection information P'' and Q'' to the same disk logical block address DLBA for Replace the previously stored user data and protection information, but for the memory controller in the corresponding flash memory disk, this operation actually writes the recalculated protection information P'' and Q'' respectively A new physical address. The memory controller can further store the L2P mapping information of the logical address (for example, the disk logical block address DLBA of the storage unit 708 and 710) for the flash memory disk in the L2P mapping table maintained internally. It is modified to the physical address of actually storing the protection information P'' and Q''. By doing this, the previously stored user data and protection information can be invalidated.

需注意的是,於本發明之實施例中,無論對應於被移除之快閃記憶體之儲存單元為資料單元或同位單元,於一條帶的修復操作中,至多僅需執行三次的寫入操作。例如,於第6圖所示之實施例中,若資料D5仍為有效資料,於修復操作中需要執行的寫入操作包含將資料D5寫入儲存單元611、以及將重新計算的保護資訊P’與Q’寫入儲存單元609與610的寫入操作。另一方面,當資料D5已為無效資料,則於修復操作中僅需執行兩次的寫入操作,包含用以將重新計算的保護資訊P’與Q’寫入儲存單元609與610的寫入操作。It should be noted that, in the embodiment of the present invention, regardless of whether the storage unit corresponding to the removed flash memory is a data unit or a parity unit, in the repair operation of one stripe, at most three writes are required operate. For example, in the embodiment shown in FIG. 6, if the data D5 is still valid data, the write operation that needs to be performed in the repair operation includes writing the data D5 into the storage unit 611, and writing the recalculated protection information P' and Q' write operation to memory cells 609 and 610 . On the other hand, when the data D5 is already invalid, only two write operations need to be performed in the repair operation, including the write operation for writing the recalculated protection information P' and Q' into the storage units 609 and 610. Enter operation.

類似地,於第7圖所示之實施例中,若資料D8仍為有效資料,於修復操作中需要執行的寫入操作包含將資料D8寫入儲存單元711、以及將重新計算的保護資訊P’與Q’寫入儲存單元708與710的寫入操作。另一方面,當資料D8已為無效資料,則於修復操作中僅需執行兩次的寫入操作,包含用以將重新計算的保護資訊P’與Q’寫入儲存單元708與710的寫入操作。Similarly, in the embodiment shown in FIG. 7, if the data D8 is still valid data, the write operation that needs to be performed in the repair operation includes writing the data D8 into the storage unit 711, and recalculating the protection information P ' and Q' write operation to memory cells 708 and 710 . On the other hand, when the data D8 is invalid data, only two write operations need to be performed in the repair operation, including the write operation for writing the recalculated protection information P' and Q' into the storage units 708 and 710 Enter operation.

於先前技術中,於一條帶的修復操作中,至少需執行N次的寫入操作,其中N為全快閃陣列儲存裝置所包括的快閃記憶磁碟或快閃記憶體總量。因此,當N為很大的數字時,大量的寫入操作將導致儲存裝置的效能大幅下降。相較於先前技術,於本發明之資料處理方法中,於一條帶的修復操作中至多僅需執行三次的寫入操作。如此一來,可有效解決先前技術中為了執行恢復原有的資料保護能力的相關操作而引入大量的寫入操作,導致儲存裝置的效能大幅下降的問題。In the prior art, in the repair operation of one stripe, at least N write operations need to be performed, where N is the total amount of flash disks or flash memories included in the full flash array storage device. Therefore, when N is a large number, a large number of write operations will cause a large drop in performance of the storage device. Compared with the prior art, in the data processing method of the present invention, only three writing operations need to be performed at most in the repair operation of one strip. In this way, it can effectively solve the problem in the prior art that a large number of writing operations are introduced in order to perform operations related to restoring the original data protection capability, resulting in a significant drop in performance of the storage device.

第8圖係顯示根據本發明之一實施例所述之適用於全快閃陣列儲存裝置之資料處理方法詳細流程圖。資料處理方法可起始於偵測到快閃記憶磁碟之其中一者被移除的狀態,並包含以下步驟:FIG. 8 shows a detailed flowchart of a data processing method suitable for a full flash array storage device according to an embodiment of the present invention. The data processing method may start from detecting a state in which one of the flash disks is removed, and include the following steps:

步驟S802: 微處理器220可選擇已被寫入資料之一個邏輯聚合單元,並且讀取此邏輯聚合單元所儲存之原資料,以得知此邏輯聚合單元所包含之複數儲存單元的D2S映射資訊。Step S802: The microprocessor 220 may select a logical aggregation unit that has written data, and read the original data stored in the logical aggregation unit to obtain the D2S mapping information of the plurality of storage units included in the logical aggregation unit .

步驟S804: 微處理器220於此邏輯聚合單元中選擇一個條帶。舉例而言,微處理器220可依照條帶編號或索引值自第一個條帶依序選擇此邏輯聚合單元所包含的條帶。Step S804: The microprocessor 220 selects a stripe in the logic aggregation unit. For example, the microprocessor 220 may sequentially select the stripes included in the logical aggregation unit from the first stripe according to the stripe number or index value.

步驟S806: 微處理器220可判斷此條帶中對應於被移除之快閃記憶體/快閃記憶磁碟之一儲存單元(或者,被移除的儲存單元以簡化說明)是否為一資料單元。若否,則執行步驟S808。若是,則執行步驟S810。值得注意的是,步驟S806中「被移除的儲存單元是否為一資料單元」之判斷亦可由「被移除的儲存單元是否為一同位單元」之判斷取代。於此判斷之下,若是,則執行步驟S808。若否,則執行步驟S810。Step S806: The microprocessor 220 can determine whether a storage unit corresponding to the removed flash memory/flash memory disk (or, the removed storage unit for simplified description) in the stripe is a data unit. If not, execute step S808. If yes, execute step S810. It should be noted that the determination of "whether the removed storage unit is a data unit" in step S806 can also be replaced by the determination of "whether the removed storage unit is a same-bit unit". Under this judgment, if yes, step S808 is executed. If not, execute step S810.

步驟S808: 微處理器220可自此條帶中選擇一資料單元,並且判斷被選擇之資料單元是否儲存有效資料。若否,則執行步驟S812。若是,則執行步驟S814。Step S808: The microprocessor 220 may select a data unit from the stripe, and determine whether the selected data unit stores valid data. If not, execute step S812. If yes, execute step S814.

步驟S810: 微處理器220可判斷被移除的資料單元是否儲存有效資料。若否,則執行步驟S822。若是,則執行步驟S826。Step S810: The microprocessor 220 can determine whether the removed data unit stores valid data. If not, execute step S822. If yes, execute step S826.

步驟S812: 微處理器220可讀取此條帶中除了被選擇的資料單元以外之其餘資料單元所儲存之內容。Step S812: The microprocessor 220 can read the contents stored in the other data units in the stripe except the selected data unit.

步驟S814: 微處理器220可讀取此條帶中所有資料單元所儲存之內容。Step S814: The microprocessor 220 can read the contents stored in all the data units in the stripe.

步驟S816: 微處理器220可將被選擇的資料單元所儲存之內容寫入一現用的邏輯聚合單元。Step S816: The microprocessor 220 can write the content stored in the selected data unit into an active logic aggregation unit.

步驟S818: 微處理器220可根據步驟S816的寫入操作對應地更新由微處理器220為快閃記憶體陣列240所維護之S2D映射表格。如第7圖所介紹的更新操作。Step S818: The microprocessor 220 may correspondingly update the S2D mapping table maintained by the microprocessor 220 for the flash memory array 240 according to the write operation in step S816. Update operation as described in Figure 7.

步驟S820: 微處理器220可根據此條帶中除了被選擇的資料單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊,並且儲存重新計算之保護資訊。如上所述,當此條帶所對應之保護資訊包含不只一筆保護資訊時,保護資訊可被寫入此條帶中被選擇之資料單元的碟邏輯區塊位址DLBA以及未被移除之同位單元的碟邏輯區塊位址DLBA,用以取代先前儲存的內容。值得注意的是,圖中步驟S820內的文字「根據讀取內容重新計算並儲存此條帶所對應之保護資訊」中的「讀取內容」係指步驟S812中所讀取之除了被選擇的資料單元以外之其餘資料單元所儲存之內容,或者步驟S814中所讀取之除了被選擇的資料單元以外之其餘資料單元所儲存之內容。Step S820: The microprocessor 220 may recalculate the protection information corresponding to the stripe according to the contents stored in the data units except the selected data unit in the stripe, and store the recalculated protection information. As mentioned above, when the protection information corresponding to this stripe contains more than one piece of protection information, the protection information can be written into the disk logical block address DLBA of the selected data unit in this stripe and the same bits that have not been removed The disk logical block address DLBA of the unit is used to replace the previously stored content. It is worth noting that the "read content" in the text "recalculate and store the protection information corresponding to this strip according to the read content" in step S820 in the figure refers to the information read in step S812 except the selected The content stored in the other data units other than the data unit, or the stored content in the other data units read in step S814 except the selected data unit.

步驟S822: 微處理器220可讀取此條帶中除了被移除的儲存單元以外之其餘資料單元所儲存之內容。Step S822: The microprocessor 220 can read the contents stored in the remaining data units in the stripe except the removed storage unit.

步驟S824: 微處理器220可根據此條帶中除了被移除的儲存單元以外之其餘資料單元所儲存之內容重新計算此條帶所對應之保護資訊,並且儲存重新計算之保護資訊。如上所述,當此條帶所對應之保護資訊包含不只一筆保護資訊時,保護資訊可分別被寫入各同位單元的碟邏輯區塊位址DLBA,用以取代先前儲存的保護資訊。值得注意的是,圖中步驟S824內的文字「根據讀取內容重新計算並儲存此條帶所對應之保護資訊」中的「讀取內容」係指步驟S822中所獨取之此條帶中除了被移除的資料單元以外之其餘資料單元所儲存之內容,或者步驟S826中所讀取之此條帶中除了被移除的資料單元以外之其餘資料單元所儲存之內容。Step S824: The microprocessor 220 may recalculate the protection information corresponding to the stripe according to the contents stored in the remaining data units in the stripe except the removed storage unit, and store the recalculated protection information. As mentioned above, when the protection information corresponding to the stripe includes more than one piece of protection information, the protection information can be respectively written into the disk logical block address DLBA of each co-bit unit to replace the previously stored protection information. It is worth noting that the "read content" in the text "recalculate and store the protection information corresponding to this band based on the read content" in step S824 in the figure refers to the unique content in the band obtained in step S822 The content stored in the remaining data units except the removed data unit, or the stored content in the remaining data units in the stripe read in step S826 except the removed data unit.

步驟S826: 微處理器220可讀取此條帶中未被移除的資料單元與同位單元所儲存之內容。Step S826: The microprocessor 220 can read the contents stored in the unremoved data units and co-bit units in the stripe.

步驟S828: 微處理器220根據讀取內容推導出被移除的儲存單元所儲存之有效資料,並且將推導出的有效資料寫入一現用的邏輯聚合單元。Step S828: The microprocessor 220 deduces the valid data stored in the removed storage unit according to the read content, and writes the deduced valid data into an active logic aggregation unit.

步驟S830: 微處理器220可根據步驟S828的寫入操作對應地更新由微處理器220為快閃記憶體陣列240所維護之S2D映射表格。如第6圖所介紹的更新操作。Step S830: The microprocessor 220 may correspondingly update the S2D mapping table maintained by the microprocessor 220 for the flash memory array 240 according to the write operation in step S828. Update operation as described in Figure 6.

步驟S832: 微處理器220可判斷目前處理的條帶是否為LAU中的最後一個條帶。若是,代表目前所選擇之LAU的所有條帶的修復操作均已完成,進入步驟S834。若否,則回到步驟S804,選擇下一個尚未被處理過的條帶。Step S832: The microprocessor 220 may determine whether the currently processed slice is the last slice in the LAU. If yes, it means that the repair operation of all stripes of the currently selected LAU has been completed, and the process goes to step S834. If not, go back to step S804 and select the next unprocessed slice.

步驟S834: 微處理器220可判斷目前處理的LAU是否為LAU已被寫入資料的最後一個LAU。若是,代表所有受到磁碟移除所影響的LAU所對應的修復操作均已完成。若否,則回到步驟S802,選擇下一個尚未被處理過的LAU。Step S834: The microprocessor 220 can determine whether the currently processed LAU is the last LAU whose data has been written into the LAU. If yes, it means that the repair operations corresponding to all LAUs affected by the disk removal have been completed. If not, go back to step S802 and select the next unprocessed LAU.

綜上所述,於本發明之資料處理方法中,於執行各條帶的修復操作過程中至多僅需執行三次的寫入操作。藉由本發明之改良,因執行修復操作所引入的寫入操作已無關於全快閃陣列儲存裝置所包括的快閃記憶體磁碟或快閃記憶體總量。如此一來,可極有效率地恢復原有的資料保護能力,並且可有效地解決先前技術中為了執行恢復原有的資料保護能力的相關操作而引入大量的寫入操作,導致儲存裝置的效能大幅下降的問題。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。To sum up, in the data processing method of the present invention, only three writing operations need to be performed at most during the repair operation of each stripe. With the improvement of the present invention, the write operation introduced by performing the repair operation has no relation to the flash disk or the total amount of flash memory included in the all-flash array storage device. In this way, the original data protection capability can be restored very efficiently, and it can effectively solve the problem of the performance of the storage device caused by the introduction of a large number of write operations in order to perform operations related to restoring the original data protection capability in the prior art. The problem fell sharply. The above descriptions are only preferred embodiments of the present invention, and all equivalent changes and modifications made according to the scope of the patent application of the present invention shall fall within the scope of the present invention.

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:虛擬容積邏輯區塊位址100,200: Full Flash Array Storage 110-1, 110-n, 110-N, Drive_1, Drive_N: Flash memory disk 200: full flash array storage device 210: Full flash array controller 220: Microprocessor 230: memory device 240: Flash memory array 310: volume management module 320:Flash array control module 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: data DLBA: Disk Logical Block Address P,P’,P’’,P1,P2,P3,P4,PM1,PM2,Q,Q’,Q’’,Q1,Q2,Q3,Q4,QM1,QM2: protection information User_Write: write command LAU: logical aggregation unit LBA1~LBA16: logical block address SLBA: storage pool logical block address Stripe_1,Stripe_K: Stripe VVLBA: Virtual Volume Logical Block Address

第1圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置的外觀示意圖。 第2圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之一範例方塊圖。 第3圖係顯示根據本發明之一實施例所述之管理快閃記憶體陣列的軟體架構。 第4圖係顯示根據本發明之一實施例所述之邏輯聚合單元示意圖。 第5圖係顯示根據本發明之一實施例所述之全快閃陣列儲存裝置之資料處理方法流程圖。 第6圖係顯示根據本發明之一實施例所述之修復操作之一執行範例。 第7圖係顯示根據本發明之一實施例所述之修復操作之另一執行範例。 第8圖係顯示根據本發明之一實施例所述之適用於全快閃陣列儲存裝置之資料處理方法詳細流程圖。FIG. 1 is a schematic view showing the appearance of a full flash array storage device according to an embodiment of the present invention. FIG. 2 is a block diagram showing an example of an all-flash array storage device according to an embodiment of the present invention. FIG. 3 shows a software architecture for managing a flash memory array according to an embodiment of the present invention. FIG. 4 is a schematic diagram of a logical aggregation unit according to an embodiment of the present invention. FIG. 5 is a flowchart showing a data processing method of a full flash array storage device according to an embodiment of the present invention. FIG. 6 shows an example of performing a repair operation according to an embodiment of the present invention. FIG. 7 shows another example of performing repair operations according to an embodiment of the present invention. FIG. 8 shows a detailed flowchart of a data processing method suitable for a full flash array storage device according to an embodiment of the present invention.

200:全快閃陣列儲存裝置 200: full flash array storage device

210:全快閃陣列控制器 210: Full flash array controller

220:微處理器 220: Microprocessor

230:記憶體裝置 230: memory device

240:快閃記憶體陣列 240: Flash memory array

Claims (15)

一種全快閃陣列儲存裝置,包括: 一快閃記憶體陣列,其中該快閃記憶體陣列包括複數快閃記憶體,該等快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,該等儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元;以及 一微處理器,耦接至該快閃記憶體陣列,用以偵測該等快閃記憶體之一狀態,其中當該微處理器偵測到該等快閃記憶體之一者之運作狀態異常時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作,並且: 於一條帶所對應之該修復操作中,該微處理器根據條帶上至少一部分資料單元所儲存之內容,還原該條帶上之一儲存資料或重新計算該條帶所對應之一保護資訊;以及 當該修復操作重新計算出該保護資訊時,該微處理器將該儲存資料寫入至該條帶,以及該修復操作還原出該條帶上之該儲存資料時,該微處理器將該儲存資料寫入至該等條帶中之另一條帶。A full flash array storage device, comprising: A flash memory array, wherein the flash memory array includes a plurality of flash memories, and the flash memories correspond to a plurality of logic aggregation units, each logic aggregation unit includes a plurality of stripes, and each stripe includes a plurality of storage units comprising a plurality of data units for storing data and at least one homogeneous unit for storing protected information; and a microprocessor, coupled to the flash memory array, for detecting the status of one of the flash memories, wherein when the microprocessor detects the operating status of one of the flash memories In case of abnormality, perform a repair operation on the stripes contained in one or more logical aggregation units of the written data in sequence, and: In the repair operation corresponding to a stripe, the microprocessor restores a piece of stored data on the stripe or recalculates a piece of protection information corresponding to the stripe according to the content stored in at least a part of the data units on the stripe; as well as When the repair operation recalculates the protection information, the microprocessor writes the stored data to the stripe, and when the repair operation restores the stored data on the stripe, the microprocessor writes the stored data Data is written to the other of the stripes. 如申請專利範圍第1項所述之全快閃陣列儲存裝置,其中於該修復操作中,當該微處理器判斷該條帶中對應於運作狀態異常之該快閃記憶體之一儲存單元為一同位單元時,該微處理器自該條帶選擇一資料單元,根據該條帶中被選擇之該資料單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算出之該保護資訊儲存於該條帶中被選擇之該資料單元,從而取代被選擇之該資料單元所儲存之內容。The full flash array storage device as described in item 1 of the scope of the patent application, wherein in the repair operation, when the microprocessor judges that one of the storage units of the flash memory corresponding to the abnormal operating state in the stripe is the same When a bit unit is selected, the microprocessor selects a data unit from the stripe, recalculates the protection information corresponding to the stripe according to the contents stored in other data units in the stripe except the selected data unit, and storing the recalculated protection information in the selected data unit in the stripe, thereby replacing the stored content of the selected data unit. 如申請專利範圍第2項所述之全快閃陣列儲存裝置,其中於該修復操作中,該微處理器更判斷被選擇之該資料單元是否儲存有效資料,以及當被選擇之該資料單元儲存有效資料時,該微處理器讀取被選擇之該資料單元所儲存之該有效資料、以將該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。The full flash array storage device as described in item 2 of the scope of the patent application, wherein in the repair operation, the microprocessor further judges whether the selected data unit stores valid data, and when the selected data unit stores valid data data, the microprocessor reads the valid data stored in the selected data unit to write the valid data into a data unit of an active logical aggregation unit, and according to the current logical aggregation unit An address of the data unit updates mapping information corresponding to a logical address of the valid data in a mapping table. 如申請專利範圍第1項所述之全快閃陣列儲存裝置,其中於該修復操作中,當該微處理器判斷該條帶中對應於運作狀態異常之該快閃記憶體之一儲存單元為一資料單元時,該微處理器根據該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算出之該保護資訊儲存於該條帶之該同位單元,從而取代該同位單元所儲存之內容。The full-flash array storage device as described in item 1 of the patent scope of the application, wherein in the repair operation, when the microprocessor judges that one of the storage units of the flash memory corresponding to the abnormal operating state in the stripe is a data unit, the microprocessor recalculates the protection information corresponding to the stripe according to the stored content in the stripe corresponding to the storage unit of the flash memory in the abnormal operating state and other data units, and storing the recalculated protection information in the peer unit of the stripe, thereby replacing the content stored in the peer unit. 如申請專利範圍第4項所述之全快閃陣列儲存裝置,其中於該修復操作中,該微處理器更判斷該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元是否儲存有效資料,以及當對應於運作狀態異常之該快閃記憶體之該儲存單元儲存有效資料時,該微處理器讀取該條帶中其餘儲存單元所儲存之內容、根據讀取內容推導出對應於運作狀態異常之該快閃記憶體之該儲存單元所儲存之該有效資料、將推導出的該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。The full flash array storage device as described in item 4 of the scope of the patent application, wherein in the repair operation, the microprocessor further judges whether the storage unit corresponding to the flash memory in the stripe is stored valid data, and when the storage unit corresponding to the abnormal operation state of the flash memory stores valid data, the microprocessor reads the contents stored in the remaining storage units in the stripe, and deduces the corresponding The valid data stored in the storage unit of the flash memory in an abnormal operating state, write the deduced valid data into a data unit of an active logical aggregation unit, and according to the current logical aggregation unit The address of the data unit updates the mapping information corresponding to the logical address of the valid data in a mapping table. 一種資料處理方法,適用於一全快閃陣列儲存裝置,該全快閃陣列儲存裝置包括一快閃記憶體陣列,該快閃記憶體陣列包括複數快閃記憶體,該等快閃記憶體對應於複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,該等儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元,該資料處理方法包括: 當偵測到該等快閃記憶體之一者之運作狀態異常時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作; 於一條帶所對應之該修復操作中,該微處理器根據條帶上至少一部分資料單元所儲存之內容,還原該條帶上之一儲存資料或重新計算該條帶所對應之一保護資訊;以及 當該修復操作重新計算出該保護資訊時,該微處理器將該儲存資料寫入至該條帶,以及該修復操作還原出該條帶上之該儲存資料時,該微處理器將該儲存資料寫入至該等條帶中之另一條帶。A data processing method, suitable for an all-flash array storage device, the all-flash array storage device includes a flash memory array, the flash memory array includes a plurality of flash memories, and the flash memories correspond to a plurality of A logical aggregation unit, each logical aggregation unit includes a plurality of stripes, each stripe includes a plurality of storage units, and the storage units include a plurality of data units for storing data and at least one homologous unit for storing protection information, the Data processing methods include: When detecting that the operating state of one of the flash memories is abnormal, sequentially perform a repair operation on the stripes that have been written into one or more logical aggregation units; In the repair operation corresponding to a stripe, the microprocessor restores a piece of stored data on the stripe or recalculates a piece of protection information corresponding to the stripe according to the content stored in at least a part of the data units on the stripe; as well as When the repair operation recalculates the protection information, the microprocessor writes the stored data to the stripe, and when the repair operation restores the stored data on the stripe, the microprocessor writes the stored data Data is written to the other of the stripes. 如申請專利範圍第6項所述之資料處理方法,其中執行該修復操作之步驟更包括: 判斷該條帶中對應於運作狀態異常之一儲存單元是否為一同位單元;以及 當該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元為一同位單元時,自該條帶選擇一資料單元,根據該條帶中被選擇之該資料單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算出之該保護資訊儲存於被選擇之該資料單元,從而取代被選擇之該資料單元所儲存之內容。For the data processing method described in item 6 of the scope of the patent application, the steps of performing the restoration operation further include: judging whether a storage unit in the stripe corresponding to an abnormal operation state is the same bit unit; and When the storage unit of the flash memory corresponding to the abnormal operating state in the stripe is the same bit unit, select a data unit from the stripe, according to the remaining data in the stripe other than the selected data unit The content stored in the unit recalculates the protection information corresponding to the strip, and stores the recalculated protection information in the selected data unit, thereby replacing the stored content of the selected data unit. 如申請專利範圍第7項所述之資料處理方法,其中執行該修復操作之步驟更包括: 判斷被選擇之該資料單元是否儲存有效資料;以及 當被選擇之該資料單元儲存有效資料時,讀取被選擇之該資料單元所儲存之該有效資料、將該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。For the data processing method described in item 7 of the scope of the patent application, the steps of performing the restoration operation further include: judging whether the selected data unit stores valid data; and When the selected data unit stores valid data, read the valid data stored in the selected data unit, write the valid data into a data unit of an active logic aggregation unit, and according to the current logic The address of the data unit of the aggregation unit updates the mapping information corresponding to the logical address of the valid data in a mapping table. 如申請專利範圍第6項所述之資料處理方法,其中執行該修復操作之步驟更包括: 判斷該條帶中對應於運作狀態異常之該快閃記憶體之一儲存單元是否為一資料單元;以及 當該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元為一資料單元時,根據該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算出之該保護資訊儲存於該條帶之該同位單元,用以取代該同位單元所儲存之內容。For the data processing method described in item 6 of the scope of the patent application, the steps of performing the restoration operation further include: judging whether a storage unit of the flash memory corresponding to an abnormal operating state in the stripe is a data unit; and When the storage unit of the flash memory corresponding to the abnormal operating state in the stripe is a data unit, according to the remaining data in the stripe other than the storage unit of the flash memory corresponding to the abnormal operating state The content stored in the unit recalculates the protection information corresponding to the stripe, and stores the recalculated protection information in the same unit of the stripe to replace the content stored in the same unit. 如申請專利範圍第9項所述之資料處理方法,其中執行該修復操作之步驟更包括: 判斷該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元是否儲存有效資料;以及 當對應於運作狀態異常之該快閃記憶體之該儲存單元儲存有效資料時,於該條帶中讀取其餘儲存單元所儲存之內容、根據讀取內容推導出對應於運作狀態異常之該快閃記憶體之該儲存單元所儲存之該有效資料、將推導出的該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。For the data processing method described in item 9 of the scope of the patent application, the steps of performing the restoration operation further include: judging whether valid data is stored in the storage unit of the flash memory corresponding to the abnormal operating state in the stripe; and When valid data is stored in the storage unit of the flash memory corresponding to the abnormal operating state, read the contents stored in the remaining storage units in the stripe, and deduce the flash corresponding to the abnormal operating state according to the read content The valid data stored in the storage unit of the flash memory, write the deduced valid data into a data unit of an active logical aggregation unit, and according to an address of the data unit of the active logical aggregation unit Updating mapping information corresponding to a logical address of the valid data in a mapping table. 一種全快閃陣列控制器,包括: 一記憶體裝置;以及 一微處理器,耦接至該記憶體裝置與一快閃記憶體陣列,用以根據該記憶體裝置所儲存之資料管理該快閃記憶體陣列,其中該快閃記憶體陣列包括複數邏輯聚合單元,各邏輯聚合單元包括複數條帶(stripe),各條帶包括複數儲存單元,該等儲存單元包含用以儲存資料之複數資料單元以及用以儲存保護資訊之至少一同位單元,並且: 當該微處理器偵測到該等快閃記憶體之一者之運作狀態異常時,依序對已被寫入資料之一或多個邏輯聚合單元所包含之該等條帶執行一修復操作; 於一條帶所對應之該修復操作中,該微處理器根據條帶上至少一部分資料單元所儲存之內容,還原該條帶上之一儲存資料或重新計算該條帶所對應之一保護資訊;以及 當該修復操作重新計算出該保護資訊時,該微處理器將該儲存資料寫入至該條帶,以及該修復操作還原出該條帶上之該儲存資料時,該微處理器將該儲存資料寫入至該等條帶中之另一條帶。A full flash array controller comprising: a memory device; and a microprocessor coupled to the memory device and a flash memory array for managing the flash memory array according to data stored in the memory device, wherein the flash memory array includes a plurality of logic aggregates Each logical aggregation unit includes a plurality of stripes, each stripe includes a plurality of storage units, and the storage units include a plurality of data units for storing data and at least one homologous unit for storing protection information, and: When the microprocessor detects that the operating state of one of the flash memories is abnormal, sequentially perform a repair operation on the stripes included in one or more logical aggregation units that have written data ; In the repair operation corresponding to a stripe, the microprocessor restores a piece of stored data on the stripe or recalculates a piece of protection information corresponding to the stripe according to the content stored in at least a part of the data units on the stripe; as well as When the repair operation recalculates the protection information, the microprocessor writes the stored data to the stripe, and when the repair operation restores the stored data on the stripe, the microprocessor writes the stored data Data is written to the other of the stripes. 如申請專利範圍第11項所述之全快閃陣列控制器,其中於該修復操作中,當該微處理器判斷該條帶中對應於運作狀態異常之該快閃記憶體之一儲存單元為一同位單元時,該微處理器自該條帶選擇一資料單元,根據該條帶中被選擇之該資料單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算之該條帶所對應之該保護資訊儲存於被選擇之該資料單元,從而取代被選擇之該資料單元所儲存之內容。The all-flash array controller as described in item 11 of the scope of the patent application, wherein in the repair operation, when the microprocessor judges that one of the storage units of the flash memory corresponding to the abnormal operating state in the stripe is the same When a bit unit is selected, the microprocessor selects a data unit from the stripe, recalculates the protection information corresponding to the stripe according to the contents stored in other data units in the stripe except the selected data unit, and storing the protection information corresponding to the recalculated strip in the selected data unit, thereby replacing the content stored in the selected data unit. 如申請專利範圍第12項所述之全快閃陣列控制器,其中於該修復操作中,該微處理器更判斷被選擇之該資料單元是否儲存有效資料,以及當被選擇之該資料單元儲存有效資料時,該微處理器讀取被選擇之該資料單元所儲存之該有效資料、以將該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。The full flash array controller as described in item 12 of the scope of the patent application, wherein in the repair operation, the microprocessor further judges whether the selected data unit stores valid data, and when the selected data unit stores valid data data, the microprocessor reads the valid data stored in the selected data unit to write the valid data into a data unit of an active logical aggregation unit, and according to the current logical aggregation unit An address of the data unit updates mapping information corresponding to a logical address of the valid data in a mapping table. 如申請專利範圍第11項所述之全快閃陣列控制器,其中於該修復操作中,當該微處理器判斷該條帶中對應於運作狀態異常之該快閃記憶體之一儲存單元為一資料單元時,該微處理器根據該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元以外之其餘資料單元所儲存之內容重新計算該條帶所對應之該保護資訊,並且將重新計算出之該保護資訊儲存於該條帶之該同位單元,從而取代該同位單元所儲存之內容。The all-flash array controller as described in item 11 of the scope of the patent application, wherein in the repair operation, when the microprocessor judges that one of the storage units of the flash memory corresponding to the abnormal operation state in the stripe is a data unit, the microprocessor recalculates the protection information corresponding to the stripe according to the contents stored in the other data units in the stripe corresponding to the abnormal operation state of the flash memory except the storage unit, and storing the recalculated protection information in the peer unit of the stripe, thereby replacing the content stored in the peer unit. 如申請專利範圍第14項所述之全快閃陣列控制器,其中於該修復操作中,該微處理器更判斷該條帶中對應於運作狀態異常之該快閃記憶體之該儲存單元是否儲存有效資料,以及當對應於運作狀態異常之該快閃記憶體之該儲存單元儲存有效資料時,該微處理器讀取該條帶中其餘儲存單元所儲存之內容、根據讀取內容推導出對應於運作狀態異常之該快閃記憶體之該儲存單元所儲存之該有效資料、將推導出的該有效資料寫入一現用的邏輯聚合單元之一資料單元,並且根據該現用的邏輯聚合單元之該資料單元之一位址更新一映射表格中對應於該有效資料之一邏輯位址之映射資訊。In the all-flash array controller described in item 14 of the scope of the patent application, in the repair operation, the microprocessor further judges whether the storage unit of the flash memory corresponding to the abnormal operating state in the stripe is stored valid data, and when the storage unit corresponding to the abnormal operation state of the flash memory stores valid data, the microprocessor reads the contents stored in the remaining storage units in the stripe, and deduces the corresponding The effective data stored in the storage unit of the flash memory in an abnormal operating state, writing the deduced effective data into a data unit of an active logical aggregation unit, and according to the active logical aggregation unit The address of the data unit updates the mapping information corresponding to the logical address of the valid data in a mapping table.
TW110139991A 2020-08-25 2020-08-25 Data processing method for afa storage device and the afa storage device utilizing the same TWI781807B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW110139991A TWI781807B (en) 2020-08-25 2020-08-25 Data processing method for afa storage device and the afa storage device utilizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110139991A TWI781807B (en) 2020-08-25 2020-08-25 Data processing method for afa storage device and the afa storage device utilizing the same

Publications (2)

Publication Number Publication Date
TW202209340A TW202209340A (en) 2022-03-01
TWI781807B true TWI781807B (en) 2022-10-21

Family

ID=81747109

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110139991A TWI781807B (en) 2020-08-25 2020-08-25 Data processing method for afa storage device and the afa storage device utilizing the same

Country Status (1)

Country Link
TW (1) TWI781807B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239234A (en) * 2017-05-27 2017-10-10 郑州云海信息技术有限公司 A kind of ordered method and devices of random IO based on full flash array
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
US10453530B2 (en) * 2014-03-10 2019-10-22 Futurewei Technologies, Inc. RDMA-SSD dual-port unified memory and network controller
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

Patent Citations (4)

* 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
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
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
CN107239234A (en) * 2017-05-27 2017-10-10 郑州云海信息技术有限公司 A kind of ordered method and devices of random IO based on full flash array

Also Published As

Publication number Publication date
TW202209340A (en) 2022-03-01

Similar Documents

Publication Publication Date Title
US11507281B2 (en) Method and apparatus for flexible RAID in SSD
US11249840B2 (en) Data storage devices and methods for rebuilding a memory address mapping table
CN110832590B (en) Method and system for mitigating write amplification in a phase change memory-based memory device
US7941692B2 (en) NAND power fail recovery
US8046528B2 (en) Data writing method for flash memory, and flash memory controller and storage device thereof
TWI720246B (en) Data storage device and operating method therefor
KR20200130742A (en) Apparatus and Method of Wear Leveling for Storage Class Memory
US20180113810A1 (en) Method and system for efficient hashing optimized for hardware accelerated caching
US9424131B2 (en) Spatially decoupled redundancy schemes for a solid state drive (SSD)
TW202024893A (en) Pool-level storage management
US20170010810A1 (en) Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer
TWI550404B (en) Identifying memory regions that contain remapped memory locations
US9430375B2 (en) Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency
US20220291861A1 (en) Data exchange between host and storage device using compute functions
TWI781807B (en) Data processing method for afa storage device and the afa storage device utilizing the same
US9323617B2 (en) Remap raid to maintain raid level
TWI547801B (en) Data storage system and method
TWI748609B (en) Data processing method for afa storage device and the afa storage device utilizing the same
KR102490191B1 (en) Data storage device and method of operating the same
JP2011065313A (en) Storage device
GB2402803A (en) Arrangement and method for detection of write errors in a storage system
JP2006146633A (en) Disk array controller and method, and disk array system

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent