TW202001920A - 在資料儲存系統中用於改善資料回復之方法及裝置 - Google Patents

在資料儲存系統中用於改善資料回復之方法及裝置 Download PDF

Info

Publication number
TW202001920A
TW202001920A TW108121796A TW108121796A TW202001920A TW 202001920 A TW202001920 A TW 202001920A TW 108121796 A TW108121796 A TW 108121796A TW 108121796 A TW108121796 A TW 108121796A TW 202001920 A TW202001920 A TW 202001920A
Authority
TW
Taiwan
Prior art keywords
matrix
long
data
vector
passwords
Prior art date
Application number
TW108121796A
Other languages
English (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 國科美國研究實驗室
Publication of TW202001920A publication Critical patent/TW202001920A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Abstract

本發明揭露一種在資料儲存系統中用於改善資料回復之方法及裝置。當從一複數個儲存裝置中擷取一複數個密碼而發生錯誤時,一長向量可從該複數個密碼中加以形成並由一特殊之長同位核對矩陣解碼以在嘗試正常解碼失效時在該複數個儲存裝置中重建資料。

Description

在資料儲存系統中用於改善資料回復之方法及裝置
本發明大體上相關於數位儲存系統領域,具體而言,相關於改善資料儲存系統之錯誤校正能力。
容錯式磁碟陣列(Redundant Array of Independent Disks,RAID)儲存系統目前已使用好幾年以容錯地儲存大量資料,使用於例如網路儲存之應用程式。錯誤校正碼已發展用來回復儲存資料之抹除(相對於錯誤)。一些編碼,例如廣為人知之雷德-所羅門碼(Reed-Solomon code),為正向錯誤校正(forward error correction,FEC)碼,用來將k位元之訊息轉換至n符號之較長密碼,使得原始訊息能從n符號之子集加以回復。比例r=k/n則稱為碼率,k及n分別為資訊封包長度以及密碼長度。密碼儲存於數個獨立儲存裝置中,例如快閃記憶體之頁面、區塊、LUNs、平面或媒體,及其他任何能視為具有獨立錯誤統計。
最近,已經開始使用其他編碼技術,包含低密度同位檢查(LDPC)碼,在儲存系統中具有m獨立儲存媒體,一i th媒體可使用一生成矩陣Gi儲存i t密碼v i 編碼並使用一對應同位核對矩陣H i ,其中1
Figure 108121796-A0202-12-0001-24
i
Figure 108121796-A0202-12-0001-25
m來解碼。在標準RAID系統中,在儲存前每一密碼與其他互斥或(XOR),而形成一同位密碼v m+1
若任何單一密碼vi失效,1
Figure 108121796-A0202-12-0001-26
i
Figure 108121796-A0202-12-0001-27
m+1,將執行所有剩餘m 成功編碼密碼{v i1,v i2,…,v im }之一XOR功能來回復。此一方案無法回復超過一個損壞媒體。
本發明即用以解決上述之問題。本發明之實施例揭露一種由資料儲存及擷取系統擷取資料之系統及裝置。在一實施例中,揭露一種方法,其包含從一未編碼資料中產生複數個資料區塊,藉由複數個編碼器接收複數個資料區塊之相應者,藉由複數個編碼器各自地編碼複數個資料區塊以產生複數個密碼,邏輯地合併複數個密碼以產生一編碼同位區塊,在複數個資料儲存媒體中各自地儲存複數個密碼及編碼同位區塊,從資料儲存媒體擷取複數個密碼及編碼同位區塊,以及解碼複數個密碼中的每一個。當複數個密碼中的至少兩個無法被正確地解碼時,從複數個密碼及編碼同位區塊中產生一長向量,以及使用一長同位核對矩陣解碼長向量以重新建立複數個資料區塊。
本發明之另一實施例,揭露一種資料擷取系統,此資料擷取系統,其包含:複數個解碼器、一記憶體以及一處理器。記憶體,用以儲存處理器可執行之指令及一長同位核對矩陣。處理器,耦接至複數個解碼器及記憶體,用以執行處理器可執行之指令使得資料擷取系統執行下列步驟:藉由複數個解碼器從一複數個資料儲存媒體各別地擷取一複數個密碼,以及藉由複數個解碼器解碼複數個密碼之每一個。當至少兩個密碼無法正確地加以解碼:從一第一資料儲存媒體擷取一編碼同位區塊,藉由處理器從複數個密碼及編碼同位區塊產生一長向量;以及使用長同位核對矩陣解碼長向量以重新建立一複數個資料區塊而由資料擷取系統加以儲存。
100‧‧‧資料儲存及擷取系統
102‧‧‧主機
104‧‧‧伺服器
106‧‧‧廣域網路
108a-108m‧‧‧媒體
200‧‧‧處理器
202‧‧‧記憶體
204‧‧‧輸入資料轉移邏輯
206a-206m‧‧‧編碼器
400‧‧‧處理器
300a-300m‧‧‧解碼器
302‧‧‧邏輯電路
304‧‧‧輸出資料轉移邏輯
為了進一步理解本發明,其功能性、優點以及使用上達成之 特定目標,以下將以較佳實施例配合圖式將本發明的具體內容說明如下:圖1係根據本發明之一實施例說明對於儲存及擷取資料具有增加資料回復特性之資料儲存及擷取系統之方塊圖。
圖2係根據本發明之一實施例說明資料儲存及擷取系統之編碼器部分方塊圖。
圖3係根據本發明之一實施例說明資料儲存及擷取系統之解碼器部分方塊圖。
圖4A及圖4B係根據本發明之一實施例說明藉由如圖1顯示之資料儲存及擷取系統執行一方法以具有增加資料回復特性之儲存及擷取資料之方法流程圖。
具體方向及所揭露之實施例將提供如下。對領域內通常知識者而言,其中若干方向及實施例可加以獨立地應用且其中部分可加以結合。在下列的說明當中,為了解釋之目的,將提出特定細節以對本發明之實施例有更透徹之理解。然而,應當明瞭各種實施例可在缺少特定細節下實施,且圖式及說明並不意圖為之限制。
隨後的說明將僅提供示範性的實施例,並不意圖限制申請專利範圍、可實施性或揭露之結構。反之,下述對示範性實施例的說明將使本發明領域內通常知識者能藉由說明實施此示範實施例。理應了解,各種對功能上及元件配置的變化並不背離如所附申請專利範圍之本發明之精神及範圍。
下述之具體細節將有助於對實施例的深刻理解。然而,對領域內通常知識者而言此實施例可在不具有具體細節下加以實施。舉例而言,為了不混淆實施例,電路、系統、網路、製程或於方塊圖中其他元件 等可不顯示不必要之細節。在其他例子中,廣為人知之電路、製程、演算法、結構或技術可在無多餘細節下顯示以避免混淆實施例。
同時,應當注意各別的實施例可為一程序繪示而以流程圖、資料流程圖、結構圖或方塊圖來說明。雖然一流程圖係以連續程序加以說明,惟許多的操作還是能以平行或同時的方式來執行。此外,操作之順序可重新配置。當此操作完成,程序終止,但仍可具有未包含於圖式之附加步驟。一程序可對應至一方法、一功能、一常規、一子程序、一子程式等等。當一程序對應至一功能,其終止能對應至對於呼叫功能或主功能之功能轉回。
詞彙“電腦可讀取媒體”可包含但不為限制於,可攜式或不可攜式儲存裝置、光學儲存裝置,以及各種其他能儲存、包含或攜帶指令且/或資料之媒體。一電腦可讀取媒體可包含一非暫態媒體,其資料可被儲存但不包含載波且/或無線傳輸或透過有線連接之暫態電子訊號。非暫態媒體之範例可包含,但非意圖限制於一磁碟或磁帶、光學儲存媒體例如光碟(CD)或數位光碟(DVD)、快閃記憶體、RAM、ROM等。一電腦可讀取媒體可使程式碼且/或機器執行指令儲存於其上,可呈現一程序、一功能、一子程式、一程式、一常式、一次常式、一模組、一軟體封包、一類別,或指定、資料結構或程式敘述之任意結合。一碼段可透過傳送且/或接收資訊、資料、引數、參數或記憶體內容來耦合至其他碼段或一硬體電路。資訊、引數、參數、資料等,可經任何適當方式,包含記憶體分享、訊息傳送、符記傳送、網路傳輸或其他來加以傳送、正向或傳輸。
進一步而言,實施例可藉由硬體、軟體、韌體、中間軟體、微碼、硬體描述語言或上述任一之結合加以實施。當實施於軟體、韌體、中間軟體或微碼,執行必要任務(例如一電腦程式產品)之程式碼或碼段可被 儲存於一電腦可讀取或機器可讀取媒體。一處理器可執行此必要任務。
在此說明之實施例提供對資料儲存系統之具體改善。舉例而言,此實施例允許儲存系統在例如媒體故障或雜訊所導致之抹除或錯誤事件時回復更多資料。
圖1係根據本發明之一實施例在此教學說明用於儲存大量資料之資料儲存及擷取系統100之簡化方塊圖。如圖1所示之實施例中,多個主機102經例如網路之廣域網路106提供未編碼資料至資料儲存伺服器104,且資料儲存伺服器104處理此資料在複數個資料儲存媒體108a-108m中儲存。此資料儲存系統使用於雲端儲存模型,其數位資料可儲存於邏輯池中、實體儲存可橫跨多重伺服器(且常為位置),且實體環境典型地由主機公司所擁有及管理。這些雲端儲存提供者有責任維持資料的可用性與可取得性,以及對實體環境的保護及運作。人們或組織向提供者購買或出租儲存空間以儲存使用者、組織或應用資料。此類雲端儲存之例子包括Amazon的S3、Google的雲端儲存,以及Microsoft的Azure儲存平台。
從主機102所接收之資料使用正向錯誤校正碼儲存於資料儲存媒體108以數學地計算額外的冗餘資料。在一些實施例中,資料儲存及擷取系統100可,附加地,複製資料作為冗餘儲存。抹除編碼及複製為從損耗中保護資料之已知方法,此損耗係因雜訊傳輸通道或一或多儲存媒體故障所造成。
圖2係根據本發明之一實施例說明資料儲存及擷取系統100之編碼器部分方塊圖。處理器200執行儲存於記憶體202之處理器可執行指令以依據教示儲存資料。儲存或擷取資料之一些功能性可由處理器200加以執行,而其他功能可由各種如圖2所示之功能方塊來執行。顯示於圖2的每一功能性元件可加以整合至一定製積體電路,例如專用集成電路(ASIC)或 定製系統單晶片(SoC)。在其他實施例中,如圖2所示之一或多個元件可加以整合至一或多定製積體電路,而其他功能元件可包含積體電路、離散組件,或上述之結合。如圖2所示之每一功能性方塊可利用分離或共享處理之其一及記憶體來源。處理器200包含能實現用以操作資料儲存及擷取系統所需功能之一或多微處理器、微控制器且/或定製或定製積體電路,且/或離散組件。處理器400可依據處理能力、電量消耗性質,且/或成本及體積之因素來加以選擇。記憶體202包含一或多資訊處理裝置,例如RAM、ROM、快閃記憶體,且/或虛擬的任何其他型態之電子記憶體裝置。典型地,記憶體202包含超過一種型態之記憶體。舉例而言,ROM可使用來儲存靜態處理器可執行指令,而RAM記憶體或快閃記憶體可用來儲存可變型資料。記憶體202可用來儲存用以編碼或解碼資料之各種矩陣。
資料經主機102提供以典型地經由廣域網路104輸入資料轉移邏輯200,輸入資料轉移邏輯200可分配一預定數量之位元、位元組或資料之符號(即片段)至複數個m未編碼資料區塊,每一資料區塊包含一預定數量之位元、位元組或符號及k位元(通常而言)。輸入資料轉移邏輯200包含電路愈以從一大量主機102接收資料,例如行動電話、個人電腦,雲端基底伺服器等。未編碼資料區塊u i 通常與資料被輸入資料轉移邏輯200所接收時同時生成。如圖2顯示之範例,一預定數量之位元、位元組或資料符號被分配至m資料區塊(其中m>2),且資料區塊各別地提供至編碼器202a-202m。應當瞭解,在其他實施例中,少數編碼器可用來邊碼資料區塊。舉例而言,若4個平行資料區塊由輸入資料轉移邏輯200所生成,2編碼器可經使用以編碼資料區塊,而每一編碼器負責編碼4資料區塊之2個。
編碼器202a-202m之每一個包含一正向錯誤校正編碼器,例如一低密度同位檢查(LDPC)編碼器,能使用一低密度生成矩陣G來編碼資 料區塊。在一實施例中,每一個編碼器使用相同G矩陣以編碼個別的資料區塊,而在另一實施例中,二或多個編碼器使用不同之G矩陣。
編碼器202a-202m分別地產生編碼資料區塊、或密碼v i ,其2
Figure 108121796-A0202-12-0007-28
i
Figure 108121796-A0202-12-0007-29
m,且每一編碼器之密碼v i 分別儲存於各別獨立的資料儲存媒體108a-108m中。資料儲存媒體108a-108m包含二或多個獨立硬體驅動器、固態驅動器、記憶體裝置之頁、邏輯單元號碼(LUNs),或任何其他電子、光學或機械資訊儲存裝置或其中部分。每一資料儲存媒體108典型地包含不同錯誤統計,意即,如技術、年齡、溫度,或施度之因子造成之故障似然。在一實施例中,資料儲存媒體108為資料儲存及擷取系統100之一部份,並與之共位,舉例而言,為在一實體資料中心之一機架安裝資料儲存系統之部分。在其他實施例中,一或多資料儲存媒體108與資料儲存伺服器具有遠距離位置,舉例而言,與資料儲存伺服器位於不同實體位置而經由網路存取。
藉由邏輯電路208從每一個編碼器邏輯地合併密碼,密碼v i 附加地使用來建立一同位密碼v m+1。邏輯電路208典型地包含硬體且/或韌體以使用一互斥OR或XOR逐位元基礎功能來合併密碼。藉由XOR此同位密碼與其他從資料儲存單元108中可取得之密碼以從資料儲存單元108擷取密碼,此同位密碼能用來從抹除回復,詳細說明於後。
每一編碼器202a-202m產生密碼,每一個包含資訊位元與同位位元,且每一個具有大於資料區塊之長度。在編碼技術中,R=k/n,R為編碼率,n為每一密碼之長度,k為原始、未編碼資料區塊之長度。密碼為應用一生成矩陣G至每一資料區塊之結果,在一實施例中,編碼器包含LDPC編碼器。
圖3係根據本發明之一實施例說明資料儲存及擷取系統100 之解碼器部分之方塊圖。在此之前,處理器200執行儲存於記憶體202之處理器可執行指令,在此情形中依據教示從資料儲存媒體108擷取資料。一擷取資料之功能性可由處理器200加以執行,而其他菇能功能性方塊也可如圖3所示加以執行。
從資料儲存媒體108a-108m,M密碼通常同時被擷取。在顯示於圖3之一實施例中,分別地使用一獨立解碼器300a-300m解碼每一個密碼。在其他實施例中,較少數量之解碼器可用來解碼m密碼。i th解碼器300各別地應用一H同位核對矩陣至密碼,以重新建立資料區塊u i 。依據是否用來編碼資料之生成矩陣G是否不同來決定,由解碼器使用的所有H同位核對矩陣可為相同,或二或多跟其他不同。每一個解碼器使用一疊代解碼技術,例如一訊息通過演算法,接著被每一解碼器各別地使用以嘗試及重新建立資料字u i
如圖3顯示之解碼器能以三種方式在儲存媒體及解碼器300a-300m之間檢測並校正在通道中由失敗的儲存媒體且/或雜訊所造成之錯誤。
第一,來自每一資料儲存媒體之錯誤可分別地由解碼器300a-300m校正。意即,使用熟知的錯誤校正解碼技術,例如使用LDPC解碼技術,解碼器300a可校正在資料儲存媒體108a及解碼器300a之間在傳輸媒體中由雜訊所引起之錯誤。如前面所述,每一解碼器300a-300m利用一疊代解碼技術,例如訊息通過演算法,以提供相應密碼之硬體或軟體解碼。
第二,當其中一個資料儲存媒體失效時,使用邏輯電路可檢測及校正抹除。邏輯電路302包含硬體且/或韌體以從所有的其他資料儲存媒體加同位媒體108 m+1合併密碼以使用一互斥OR或XOR逐位元基礎功能來合併密碼。已解碼之密碼,資料區塊u r ,將提供至輸出資料轉換邏輯304,而 與其他成功解碼資料區塊結合以形成由主機102之一所提供之原始資料。
第三,來自任何資料儲存媒體之錯誤可藉由建立一“長向量”v L之方式來加以監測並校正,以利用在所有已接收之密碼中之資訊進以在錯誤偵測及校正程序中救援。
在一實施例中,此長向量v Lm獨立密碼之序連形成及v m+1 係在編碼過程中由編碼器206a-206m與邏輯電路208所產生。以矩陣表示,v L可表達如下:
Figure 108121796-A0202-12-0009-1
G 1 ,G 2 ...G m 為一不同生成矩陣的每一個,由各別的編碼器206a-206m之一使用以各別地編碼資料區塊u 1 -u m
G L 可被定義如下:
Figure 108121796-A0202-12-0009-2
矩陣G L 包含mk列及n(m+1)行,可選擇地加以使用以產生n(m+1)-長度向量vL,而v L =[u 1 u 2u m ]G L 。在一實施例中,相同生成矩陣可為每一個編碼器206a-206m使用以編碼資料區塊,即G i =G,1
Figure 108121796-A0202-12-0009-30
i
Figure 108121796-A0202-12-0009-31
mG L 能更簡潔的以張量乘積表示如下:
Figure 108121796-A0202-12-0009-3
I m為一m x m單位矩陣,1 m為一所有1的(m x 1)-長度行向量, G為所有編碼器共同之生成矩陣,垂直條|標示矩陣之分隔,且
Figure 108121796-A0202-12-0010-32
表示一張量乘積功能。因為向量v m+1 為密碼v 1,v 2,...,v m 簡單之線性組合,每一個從相同生成矩陣G生成,vm+1本身為在由G所生成密碼之空間中之密碼,以及,可使用用以解碼v i 之解碼演算法,1
Figure 108121796-A0202-12-0010-33
i
Figure 108121796-A0202-12-0010-34
m
根據兩矩陣A與B之張量乘積,其大小分別為(m x n)及(p x q),此張量乘積介於其中,標示為A
Figure 108121796-A0202-12-0010-35
B,定義如下:A的每一元素個別地乘以所有矩陣B,以及,因此,結果矩陣之大小為(mp x nq)。應注意A及B不需要為常理直覺的矩陣乘積可相容以運算其張量乘積。舉例而言,若:
Figure 108121796-A0202-12-0010-4
則,
Figure 108121796-A0202-12-0010-5
結果為
Figure 108121796-A0202-12-0010-6
清楚可知,A
Figure 108121796-A0202-12-0010-36
BB
Figure 108121796-A0202-12-0010-37
A
一長同位核對矩陣H L 可經形成以解碼使用長G L 矩陣編碼之資料區塊。此一H L 矩陣形成使得G L *H' L 為一全零矩陣,其大小為mk x n(m+1)-mk,可確保使用H L矩陣可允許解碼v L G L 產生密碼。
因為向量vm+1為使用相同生成矩陣由編碼器206a-206m所產生之各別密碼之XOR合併,並不具有任何獨立位元,也因此,可潛在地建 構v L 的一些同位位元。因為使用G L 來建立v L 的唯一獨立位元為{u 1,u 2,…u m },每一ui為k-位元長,1
Figure 108121796-A0202-12-0011-38
i
Figure 108121796-A0202-12-0011-39
m,假設H L G L 而存在,長密 碼v L 之碼率R L
Figure 108121796-A0202-12-0011-10
。m值越高,R L 則越接近R。m值越小,則將由較好之性能。
舉例而言,一資料儲存及擷取系統可使用三密碼在主機102中對應未編碼資料之每一碼段加以定義,即m=3。一生成矩陣G可經定義並如下所示以2x4矩陣儲存於記憶體202以編碼2位元資料區塊至4位元長密碼(即k=2,n=4)。
Figure 108121796-A0202-12-0011-7
因為G係系統性的形成G=[P|I2],其I2為2x2的單位矩陣,且P為k x (n-k)矩陣,相對應的H矩陣為H=[In-k|P']=[I2|P'],其中'表示為對…之轉置:
Figure 108121796-A0202-12-0011-8
乘積G*H'如預期地產生一2x2全零矩陣。G L 現可形成一具有6行6列之矩陣:
Figure 108121796-A0202-12-0011-9
使用兩方法之一可決定V L 顯示如下列示範。給予三個資料區塊u1=[1 1];u2=[1 0];u3=[0 1],且G矩陣如上所示,對於每一資料矩陣之密碼如下所示:v 1 =[1 1]*G=1 0 1 1v 2 =[1 0]*G=1 1 1 0v 3 =[0 1]*G=0 1 0 1;在上述密碼中,且今後,資訊位元以粗體顯示。現可乘以u*GL來決定V L u為密碼資訊位元之序連,或資料區塊的簡單序連,即[u 1 u 2 u 3]產生:v L =[1 1 1 0 0 1]*G L =[1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0]
在第二方法中,藉由序連每一密碼v 1v 2,及v 3,接著v 4v 4等於v 1 v 2v 3。在此使用之詞彙“序連”,係為形成包含密碼以增益接續的對齊之列向量。
關於圖3,解碼器300L使用一長同位核對矩陣H L 以解碼長向量v L 。當在v L 中只有mk獨立位元,則H L 應包含(m+1)n-mk個獨立列。因為每一位元v ij 對於v L ={v ij },1
Figure 108121796-A0202-12-0012-40
i
Figure 108121796-A0202-12-0012-41
n、1
Figure 108121796-A0202-12-0012-42
j
Figure 108121796-A0202-12-0012-43
m已在H矩陣中由(n-k)同位位元核對過了,且因為每一位元v ij 分配而產生一位元b i ,1
Figure 108121796-A0202-12-0012-44
i
Figure 108121796-A0202-12-0012-45
nv m+1,,一候選H L矩陣能如下述建構:
Figure 108121796-A0202-12-0012-12
我們現在能運算G L *H L '並驗證乘積為(m+1)n-mk X n(m+1)之全零矩陣,當(m+1)為偶數。H L 能以張量乘積項符表示如下:
Figure 108121796-A0202-12-0012-13
其中I m為一mxm單位矩陣,0 m為長度m之全零之行向量,且1 ' m+1為長度(m+1)之全1之列向量及I n 為nxm單位矩陣。垂直條標示矩陣之分隔,即0 mI m之擴充。為證明此建構產生對G L 一有效H L 矩陣,將給予下列範例來建構,其中m=3,n=4,及k=2:
Figure 108121796-A0202-12-0013-14
乘積G L *H L '之驗證產生一6x6全零矩陣。此證實了在由G L 所跨距之密碼空間中v L 確實為一密碼,且HL能用來解碼v L
即使儲存於資料儲存媒體之每個各別密碼為系統性-直覺上所有資訊位元在每一密碼之一端為成群的-若從G L 如上顯示產生,其性質對於v L 不再維持。然而,若再各別的資料儲存媒體中密碼為系統性,使用兩方法之一能使得v L 具有系統性以形成v LS。在一第一實施例中,基於G L,藉由將GL中對應至每一密碼之資訊位元放置於矩陣G LS之一端,形成一系統性生成矩陣G LS。接著,如先前所解釋,G LS經應用至每一密碼之資訊位元之序連,或該等資料區塊之序連。在一第二實施例中,藉由重新配置v LS 中資訊位元使得資訊位元佔據v LS 中最低有效位元或最高有效位元兩者之一,能讓長密碼v LS 具有系統性即使其使用G L 來形成。然而,如接下來的例子所顯示,允許從H L 簡化產生H LS ,擴展上述之前討論的例子,其中使用三個資料儲存媒體,即m=3、n=4,及k=2,重新配置G L 之行並產生G LS 改善了資料儲存與擷取系統100之性能。
如上述例子,因為儲存於每一媒體之4-位元密碼與佔據密碼之最後二位元之資訊位元具有系統性-意即密碼之第三與第四位元,或著序連密碼之第三、四、七、八、十一,十二位元,在G L 矩陣中,行3、4、7、 8、11及12被移至最右行,矩陣從而造成結果之長密碼v LS 之所有資訊位元佔據最右邊,或v LS 之最低有效位元。
Figure 108121796-A0202-12-0014-15
因為G LS 現為系統性形式,即G LS =[PL|I6],我們發現H LS =[In-k|PL']=[I10|PL',其中n=16且k=6對於v L
Figure 108121796-A0202-12-0014-16
乘積G LS *H LS '等於一個6x10全零矩陣,證實了H LS 確實為對於G LS 之合適同位核對矩陣。藉由上述示範使用資訊向量 u =[1 1 1 0 0 1],v LS = u *G LS =[1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1]。長密碼現為系統性形式。能注意的是,從同位核對位元於其中,即位元1-10,從左側,為密碼之同位核對位元之序連(即每一密碼之第一二位元),加上全部密碼v 4、以XOR產生之密碼v 1v 2v 3。藉由從每一密碼簡單序連同位位元,接著為各別密碼之已XOR版本,然後從各別密碼附加資訊位元之序連,應明瞭這使得處理器200以更有效率的方式產生長密碼v L的系統性版本。
G LS 及H LS 之張量乘積解釋
在張量乘積的項中,G LS 可被解釋為:
Figure 108121796-A0202-12-0015-17
其中n為在每一個密碼中位元數量,m為由主機102所接收從每一資料碼段產生之資料區塊/密碼之數量,k為在每一資料區塊中位元數量,I m 為mxm單位矩陣,1 m 為具有長度m之全1之行向量,P為G之部分以產生密碼之同位位元,且I km 為kxn行與列之單位矩陣。
Q定義如下:
Figure 108121796-A0202-12-0015-18
G LS =Q|I km
其中Q為包含下列之張量乘積之矩陣:a)一矩陣,其包含增加長度m之全1的行向量之I m ,及b)一矩陣,其包含增加長度m之全1的行向量張量乘積之P k(n-k)及具有kxm行與列之一單位矩陣。
此可使H LS 化為:H LS =I n(m+1)-km |Q'
其中Q'為矩陣Q之轉置。因此,(假設每一編碼器利用相同G生成矩陣)從編碼器206之一之G矩陣得出P,以及knm,允許G LS H LS 對於長密碼之系統性形式之形成。
對於長密碼之解碼演算法
H為低密度同位核對(LDPC)矩陣,依據此處技術建構H L 確保其維持低密度結構。這是因為在H L 中1之密度在區塊矩陣之第一m列顯示於上述0051段僅為(1/m+1)之H中1之密度。(最後區塊列之貢獻對於1之密度為1/m,可忽略)若解碼演算法特定為低密度H-例如訊息傳遞演算法-用在 H上,此一演算法也能使用於H L 以解碼v L 因為其亦保留低密度特性。相對於H,H L 最大行權重增加1。
H為一LDPC矩陣,在一實施例中,一特定行程使用由解碼器300L執行之訊息傳遞解碼演算法以解碼v L ,實際上之優點為僅有H L 之最後n列在中具有1之可跨矩所有m相應的密碼:每一個列具有(m+1)個1於其中。解碼器300L,依據過去時點從相應的密碼提交給它們的LLR值,能週期地更新連接至它們的同位核對位元之每一個位元之對數似然比(LLR)值。更新之LLR值能由解碼器使用以繼續其解碼。換言之,在這個實施例中,在資料儲存媒體之一的碼位元在固定的時間間隔內,但並非連續地在每次的疊代中,與儲存於其他資料儲存媒體之碼位元交互作用或從其中獲取資訊。
圖4係根據本發明之一實施例說明藉由資料儲存及擷取系統100執行一方法以具有增加資料回復特性之儲存及擷取資料之方法流程圖。方法藉由一或多個處理器實施,執行儲存於一或多記憶體之處理器可執行指令,例如相應為處理器200及記憶體202。應注意的是,在一些實施例中,並非所有顯示於圖4之步驟皆需執行,且在其他實施例中實施步驟的順序可能不同。更應注意的是,一些較細微的方法步驟因簡潔的目的而有所刪減。
在步驟400中,為了編碼資料區塊且解碼密碼的緣故,資訊可預先儲存於記憶體202且/或編碼器之記憶體且/或解碼器。舉例而言,可加以儲存於同位核對矩陣H、長同位核對矩陣H L、長系統性同位核對矩陣H LS、生成矩陣G、長生成矩陣G L,以及一長系統性生成矩陣H LS中一或多個。
在步驟402中,從數個主機102中由輸入資料轉移邏輯204擷取資料。數個主機102,典型地經由網路,遠端地耦接至資料儲存及擷取系 統100。
在步驟404中,一預定數量資料從主機102分成m,相等大小資料區塊,通常同時地藉由輸入資料轉移邏輯204提供至複數個編碼器206a-206m。每一個資料區塊包含k位元。
在步驟406中,每一編碼器206a-206m在一實施例中使用LDPC來編碼資料區塊之相應者,每一編碼器206a-206m使用儲存於記憶體202或每一編碼器內之相同的生成矩陣G。複數個密碼之結果,每一個包含k資訊位元及m同位位元,其中m為主機102中對於未編碼資料之每一碼段所生成密碼之數量。在一實施例中,相應的編碼器使得密碼中的每一個具有系統性。
在步驟408中,來自編碼器之每一密碼,藉由邏輯電路208,使用XOR功能邏輯地與彼此合併,以產生具有等於每一密碼長度之一同位密碼。
在步驟410中,每一密碼儲存於資料儲存媒體108a-108m,且同位密碼儲存於資料儲存媒體108 m+1。每一資料儲存媒體可與資料儲存伺服器共位或遠端地分布於雲端上。
一段時間後,主機102之一要求擷取早先已提供至資料儲存與擷取系統100之資料。作為回應,在步驟412中,從資料儲存媒體108a-108m中同時擷取密碼之集合。
在步驟414中,從資料儲存媒體擷取之每一密碼提供至各別的解碼器300a-300m之一。在一實施例中,每一解碼器使用儲存於記憶體202或每一解碼器內之相同同位核對矩陣H解碼相應的密碼之一。疊代兩步驟解碼演算法又稱訊息傳遞演算法可由每一解碼器加以使用,其中依據從所有或一些可變節點所接收之訊息先更新核對節點的數量。在第二步驟中,所 有或一些可變節點可依據從所有或一些核對節點所接收之訊息加以更新。此過程可重複直到密碼被解碼或直到達到疊代或子疊代的閾值數量。
使用於訊息傳遞演算法之訊息可為對數似然比(LLR)訊息,也可稱作軟資訊。此疊代解碼器300a-300m可計算LLR訊息以校正或檢測所接收密碼之錯誤。在訊息傳遞演算法之第一疊代之前,舉例而言,每一個可變節點可依據來自原始密碼被提供至解碼器300a-300m之任何之一之資訊接收一LLR訊息。
疊代解碼程序之結果為建立於步驟404之原始資料區塊的重新建立,假設每一密碼係不具錯誤地加以解碼。
在步驟416中,每一已解碼密碼提供至輸出資料轉移邏輯304,而其經合併以重新建立過去由要求主機102所提供之原始資料。在此事件中一或多個解碼器300a-400m無法解碼各自的密碼,在一實施例中,傳統XOR技術可用以回復“不好的”密碼。
在步驟418中,在事件中二或多個密碼無法適當地經由解碼器300a-300m解碼,藉由處理器200建立一長向量v L一起解碼所有密碼作為嘗試。在一實施例中,處理器300建立V L作為密碼v 1-v m 之序連加上所有密碼v 1-v m 之XOR功能之結果。可選擇地,如前述所討論,可藉由儲存於記憶體202或由解碼器300L之長生成矩陣G L乘上每一個資料區塊 u 1- u m來建立V L
在一實施例中,在步驟420中,處理器200,藉由包含資料區塊u 1-u m之序連之一資訊向量乘以系統性生成矩陣G LS,可使v L系統化(v LS)。可由處理器200或解碼器300L從G L矩陣形成G LS,或G LS已預先存於記憶體202或解碼器300L之記憶體。在一實施例中,重新配置G L矩陣之行來形成G LS,藉由將G L中對應至每一密碼之資訊位元之行放置於G LS矩陣之一端。
在第二實施例中,藉由重新配置v L 中之資訊位元使得這些資 訊位元能佔據v L 中最低有效位元或最高有效位元兩者之一,若使用G L來形成,則v L 能具有系統性。
在步驟422中,長向量或長系統性向量兩種之一可由解碼器300L解碼。在v L 之狀況,長同位核對矩陣H LS,儲存於記憶體202或解碼器300L兩者之一,使用討論於上述之疊代解碼程序應用至v L 。應注意的是用以解碼v L 或長系統性向量v LS 之相同解碼演算法可與由解碼器300a-300m使用之解碼演算法相同。在解碼的過程中,處理器300或解碼器300L根據之前從相應密碼提供至每一個同位核對位元之對數似然比(LLR)值,週期性地更新連接至每一同位核對位元之位元之對數似然比(LLR)值。在一實施例中,更新之LLR值能被相應的解碼器使用以繼續解碼。
在步驟424中,處理器200使用領域內熟知之技術來決定長向量是否正確地解碼。若是如此,每一個已解碼的密碼被提供至輸出資料移轉邏輯304,並被合併以形成過去曾由主機102所提供之原始資料碼段。來自解碼器300a-300m解碼密碼則被忽略。因此,藉由創造長向量並以長同位核對矩陣解碼,資料儲存與擷取系統100更可容忍錯誤及抹除,因為長向量中每一個密碼的碼位元與彼此交互作用或從彼此取得資訊。
在此所述之方法或演算法連結在此所揭露之實施例,可直接以硬體或軟體以由一處理器執行之處理器可讀取指令來實施。處理器可讀取指令可屬於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、暫存器、硬碟、可攜式磁碟、CD-ROM,或已為此領域熟知任何其他形式的儲存媒體。一作為範例之儲存媒體耦接至處理器使得處理器能從其讀取資訊並寫入資訊至儲存媒體。可選擇地,儲存媒體也可整合至處理器。處理器與儲存媒體可屬於ASIC。ASIC可屬於使用者端。可選擇地,處理器與儲存媒體可屬於離散組件。
於是,本發明之一實施例可包含可實施編之一電腦可讀取媒體或處理器可讀取指令以實施技術、方法、程序、演算法、步驟且/或在此所述之功能。
可理解的是,在此所述之解碼裝置及方法也可使用於其他通訊情況且並不限於RAID儲存。舉例而言,光碟技術也使用抹除或錯誤校正編碼以處理刮盤之問題且在此所述技術之使用應有其效益。以另一例子為說明,衛星系統可使用抹除碼以交換用於傳輸之電力需求,藉由降低電力有目的性地允許多種錯誤且連鎖反應編碼作為應用將有所助益。同時,抹除碼可用在有線或無線通訊網路,例如行動電話/資料網路、區域網路,或網路。目前發明之實施例可因此證實對其他應用領域有所助益,例如上述示範,其編碼係用以處理潛在損耗及錯誤資料的問題。
上述揭露已顯示並說明本發明之實施例。應當明瞭,前述相關於本發明之各種實施例可以獨立地且/或合併地實施,且對其之種種變化及修正不違背由下述申請專利範圍所定義之本發明之精神及範圍。在此敘述之方法請求項之功能、步驟且/或動作配合本發明之實施例並不需要以任何特定順序執行。進一步而言,即使本發明之元件可以單數說明或列為請求項,除非限制於單數的狀況有詳細說明,否則應可考量其複數形式。
100‧‧‧資料儲存及擷取系統
102‧‧‧主機
104‧‧‧伺服器
106‧‧‧廣域網路
108a-108m‧‧‧媒體

Claims (17)

  1. 一種資料儲存及擷取方法,其包含下列步驟:從一數量之未編碼資料中產生複數個資料區塊;藉由複數個編碼器接收該複數個資料區塊之相應者;藉由該複數個編碼器各自地編碼該複數個資料區塊,以產生複數個密碼;邏輯地合併該複數個密碼以產生一編碼同位區塊;在複數個資料儲存媒體中各自地儲存該複數個密碼及該編碼同位區塊;從該資料儲存媒體擷取該複數個密碼及該編碼同位區塊;解碼該複數個密碼中的每一個;當該複數個密碼中的至少兩個無法被正確地解碼時:從該複數個密碼及該編碼同位區塊中產生一長向量;以及使用一長同位核對矩陣解碼該長向量以重新建立該複數個資料區塊。
  2. 如申請專利範圍第1項所述之方法,其中產生該長向量包含:序連該複數個密碼及該編碼同位區塊。
  3. 如申請專利範圍第1項所述之方法,其中產生該長向量包含:應用一長生成矩陣G L至該複數個資料區塊。
  4. 如申請專利範圍第3項所述之方法,其中在該長生成矩陣包含一矩陣,該矩陣之列數為該複數個資料儲存媒體之數量乘以該複數個資料區塊之每一個之長度,以及該矩陣之行數為該複數個資料儲存媒體之數量加1後乘以該複數個密碼之每一個之長度。
  5. 如申請專利範圍第3項所述之方法,其中該長生成矩陣包含下列之一張量乘積:a)包含一單位矩陣及全1之一行向量之一矩陣,以及b)藉由該編碼器而用來編碼該資料區塊之一生成矩陣G。
  6. 如申請專利範圍第3項所述之方法,其中藉由該複數個編碼器編碼該複數個資料區塊之步驟包含:藉由一相應的編碼器編碼該複數個資料區塊之每一個,每一編碼器應用一生成矩陣G至相應的資料區塊;其中該長生成矩陣G L包含下列之一張量乘積:a)包含增加包含全1之一行向量之一單位矩陣之一矩陣,以及b)該生成矩陣G。
  7. 如申請專利範圍第1項所述之方法,其中解碼每一個密碼之步驟包含:藉由一複數個解碼器各別地解碼該複數個密碼之每一個。
  8. 如申請專利範圍第1項所述之方法,其中藉由複數個解碼器各別地解碼該複數個密碼之每一個之步驟包含:藉由該複數個解碼器各別地應用一相同同位核對矩陣至該複數個密碼。
  9. 如申請專利範圍第1項所述之方法,其中該長同位核對矩陣包含:一矩陣,其包含下列之一張量乘積:a)一單位矩陣,其增加包含全零之一行向量,以及 b)一同位核對矩陣H,其用以解碼該密碼;以及包含下列之一第二張量乘積:a)包含全1之一行向量之一轉置,以及b)一第二單位矩陣。
  10. 如申請專利範圍第1項所述之方法,其中該長向量包含一長系統向量,該長系統向量包括來自該複數個資料區塊中之多個資訊位元及多個同位位元,該方法更包含:藉由重新安排該多個資訊位元以佔據該長系統向量之二者或更多最低或最高有效之位元而形成該長系統向量;其中該長同位核對矩陣包含一系統矩陣。
  11. 如申請專利範圍第10項所述之方法,其中該系統矩陣包含 I n(m+1)-km | Q',n為該長向量中位元數量,m為該複數個密碼之數量,k為該複數個資料區塊中每一個之位元數量,Q ' 包含下列之一張量乘積之轉置:a)一矩陣,其包含增加長度m之全1之一行向量之 I m ,以及b)一矩陣,其包含增加長度m之全1之該行向量之張量乘積之 P k(n-k)與具有 kx m行與列之一單位矩陣。
  12. 一資料擷取系統,其包含:複數個解碼器;一記憶體,其用以儲存多個處理器可執行指令及一長同位核對矩陣;以及一處理器,其耦接至該複數個解碼器及該記憶體而用以執行該處理器可 執行之該多指令,以使該資料擷取系統:藉由該複數個解碼器從複數個資料儲存媒體各別地擷取複數個密碼;藉由該複數個解碼器解碼該複數個密碼之每一個;當該複數個密碼之至少兩個無法正確地加以解碼時:從一第一資料儲存媒體擷取一編碼同位區塊;藉由該處理器從該複數個密碼及該編碼同位區塊產生一長向量;以及使用該長同位核對矩陣解碼該長向量以重新建立由該資料擷取系統加以儲存之複數個資料區塊。
  13. 如申請專利範圍第12項所述之資料擷取系統,其中以該多個處理器可執行指令解碼該複數個密碼之每一個之步驟包含使得該資料擷取系統執行以下步驟之指令:由該複數個編碼器各別地應用一相同同位核對矩陣至該複數個密碼。
  14. 如申請專利範圍第12項所述之資料擷取系統,其中以該多個處理器可執行指令產生該長向量之步驟包含使該資料擷取系統執行以下步驟之指令:序連該複數個密碼及該編碼同位區塊。
  15. 如申請專利範圍第12項所述之資料擷取系統,其中該長同位核對矩陣包含:一矩陣,其包含下列之一張量乘積:a)一單位矩陣,其增加包含全零之一行向量,以及b)一同位核對矩陣H,其用以解碼該密碼;以及 包含下列之一第二張量乘積:a)包含全1之一行向量之一轉置,以及b)一第二單位矩陣。
  16. 如申請專利範圍第12項所述之資料擷取系統,其中該長向量包含一長系統向量,該長系統向量包含來自該複數個資料區塊中之多個資訊位元及多個同位位元,其中該多個處理器可執行指令更包含使得該資料擷取系統執行以下步驟之指令:藉由該處理器以重新安排該多個資訊位元以佔據該長系統向量之二者或更多最低或最高有效之位元而形成該長系統向量;其中該長同位核對矩陣包含一長系統矩陣。
  17. 如申請專利範圍第16項所述之資料擷取系統,其中該長系統矩陣包含 I n(m+1)-km | Q',n為該長向量中位元數量,m為該複數個密碼之數量,k為該複數個資料區塊中每一個之位元數量,以及Q ' 包含下列之一張量乘積之轉置:a)一矩陣,其包含增加長度m之全1之一行向量之 I m ,以及b)一矩陣,其包含增加長度m之全1之一行向量之張量乘積之 P k(n-k)及具有 kx m行與列之一單位矩陣。
TW108121796A 2018-06-21 2019-06-21 在資料儲存系統中用於改善資料回復之方法及裝置 TW202001920A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/014,999 2018-06-21
US16/014,999 US10606697B2 (en) 2018-06-21 2018-06-21 Method and apparatus for improved data recovery in data storage systems

Publications (1)

Publication Number Publication Date
TW202001920A true TW202001920A (zh) 2020-01-01

Family

ID=68981863

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108121796A TW202001920A (zh) 2018-06-21 2019-06-21 在資料儲存系統中用於改善資料回復之方法及裝置

Country Status (3)

Country Link
US (1) US10606697B2 (zh)
TW (1) TW202001920A (zh)
WO (1) WO2019246527A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI744960B (zh) * 2020-06-22 2021-11-01 旺宏電子股份有限公司 記憶體控制器及記憶體裝置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI757609B (zh) * 2018-08-03 2022-03-11 日商索尼股份有限公司 用於通訊的傳輸設備和方法、接收設備和方法
CN114024594B (zh) * 2021-11-09 2023-10-20 北京中科晶上科技股份有限公司 卫星通信系统的通信方法和装置
US11949431B1 (en) * 2022-12-29 2024-04-02 Code-X, Inc. Obfuscating data in distributed data storage systems and network communications

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100208801B1 (ko) 1996-09-16 1999-07-15 윤종용 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US6229458B1 (en) 1999-08-27 2001-05-08 Lsi Logic Corporation Rate 32/34 (D=0, G=9/I=9) modulation code with parity for a recording channel
US20040225944A1 (en) 2003-05-09 2004-11-11 Brueggen Christopher M. Systems and methods for processing an error correction code word for storage in memory components
US7418644B2 (en) 2004-03-01 2008-08-26 Hewlett-Packard Development Company, L.P. System for error correction coding and decoding
US7844877B2 (en) * 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
US8020063B2 (en) * 2007-07-26 2011-09-13 Harris Corporation High rate, long block length, low density parity check encoder
US8832518B2 (en) * 2008-02-21 2014-09-09 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
KR101398200B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR20100058260A (ko) * 2008-11-24 2010-06-03 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 장치 및 방법
US8261167B1 (en) * 2009-03-09 2012-09-04 Pmc-Sierra Us, Inc. Cyclically interleaved dual BCH, with simultaneous decode and per-codeword maximum likelihood reconciliation
US8468432B2 (en) * 2009-07-01 2013-06-18 Silicon Motion, Inc. Coder-decoder and method for encoding and decoding an error correction code
KR101670511B1 (ko) * 2010-05-07 2016-10-28 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
DE102010031411B4 (de) * 2010-07-15 2012-04-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Konzept zur Kombination codierter Datenpakete
US9537508B1 (en) * 2014-01-09 2017-01-03 Marvell International Ltd. Systems and methods for decoding cascade LDPC codes
US9606868B2 (en) * 2015-05-04 2017-03-28 International Business Machines Corporation Encoding and writing of data on multitrack tape
US10389383B2 (en) * 2017-07-19 2019-08-20 SK Hynix Inc. Low-complexity LDPC encoder
US10476524B2 (en) * 2017-11-27 2019-11-12 Goke Us Research Laboratory Method and apparatus for efficient data decoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI744960B (zh) * 2020-06-22 2021-11-01 旺宏電子股份有限公司 記憶體控制器及記憶體裝置

Also Published As

Publication number Publication date
WO2019246527A1 (en) 2019-12-26
US10606697B2 (en) 2020-03-31
US20190391870A1 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
US10707899B2 (en) Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
US11233643B1 (en) Distributed data storage system data decoding and decryption
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US9356626B2 (en) Data encoding for data storage system based on generalized concatenated codes
EP3504623B1 (en) Multiple node repair using high rate minimum storage regeneration erasure code
TW202001920A (zh) 在資料儲存系統中用於改善資料回復之方法及裝置
US20050216813A1 (en) Fixed content distributed data storage using permutation ring encoding
CN108932177B (zh) 具有可变长度分量的广义低密度奇偶校验码
RU2680350C2 (ru) Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации
TW202011189A (zh) 分散式存儲系統、方法和裝置
US10389383B2 (en) Low-complexity LDPC encoder
KR102528972B1 (ko) 연판정 디코딩 방법 및 시스템
Hou et al. A new construction and an efficient decoding method for Rabin-like codes
CN113505019A (zh) 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN112181707B (zh) 分布式存储数据恢复调度方法、系统、设备及存储介质
CN108432170B (zh) 用于多码分布式存储的装置和方法
US10784896B2 (en) High performance data redundancy and fault tolerance
Chen et al. A new Zigzag MDS code with optimal encoding and efficient decoding
WO2017041231A1 (zh) 一种精确修复的二进制再生码编解码
US9183076B2 (en) Using carry-less multiplication (CLMUL) to implement erasure code
KR20120046751A (ko) 천공 코드의 콤팩트 디코딩
US10949302B2 (en) Erasure-coding-based efficient data storage and retrieval
CN110780813A (zh) 一种基于二元域上子空间码的分布式存储系统
CN114244376B (zh) 一种数据编码方法、系统、设备以及介质
US11750221B1 (en) Encoding and decoding of data using generalized LDPC codes