TWI570549B - 具資料保護機制的計算機系統及其操作方法 - Google Patents

具資料保護機制的計算機系統及其操作方法 Download PDF

Info

Publication number
TWI570549B
TWI570549B TW104106251A TW104106251A TWI570549B TW I570549 B TWI570549 B TW I570549B TW 104106251 A TW104106251 A TW 104106251A TW 104106251 A TW104106251 A TW 104106251A TW I570549 B TWI570549 B TW I570549B
Authority
TW
Taiwan
Prior art keywords
data
protection
segment
applying
block
Prior art date
Application number
TW104106251A
Other languages
English (en)
Other versions
TW201602775A (zh
Inventor
艾倫 阿姆斯特朗
派崔克 李
亦仁 黃
Original Assignee
希耐克斯實驗室公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/328,770 external-priority patent/US10417090B2/en
Application filed by 希耐克斯實驗室公司 filed Critical 希耐克斯實驗室公司
Publication of TW201602775A publication Critical patent/TW201602775A/zh
Application granted granted Critical
Publication of TWI570549B publication Critical patent/TWI570549B/zh

Links

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/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

Landscapes

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

Description

具資料保護機制的計算機系統及其操作方法
本發明的一項實施例通常係關於一種計算機系統,以及更特別地係關於一種用於資料保護的系統。
現代的消費與工業電子產品,尤其是譬如界面計算機系統、電視機、投影機、蜂巢式電話、可攜式數位助理、以及組合裝置等裝置,正提供越來越多功能,以支撐現代生活,包括三維顯示裝置。現存技術中的研發可採用很多不同的方向。隨著資料變得更普遍,現存與新的系統則必須互操作且提供資料可靠度。
因此,仍然需要一種具資料保護機制以提供改善之資料可靠度與回復的計算機系統。有鑑於商業競爭壓力的持續增長,連同消費者期望的增加,以及市場上有意義產品差異化之機會的減少,尋找這些問題的答案係逐漸重要。此外,降低成本,改善效率與性能,以及滿足競爭壓力的需求,甚至會給發現這些問題之答案的關鍵必要性添加更大的急迫性。
這些問題的解答已經長期被尋找,但是先前的研發則不會教導或建議任何解答,因此,這些問題的解答則已經長期使所屬技術領域中具有通常知識者困惑。
本發明的一項實施例提供一種設備,其包括:一資料塊,該資料塊包括資料頁,且該等資料頁的各者包括資料區段,且該等資料區段的各者包括區段資料以及一區段冗餘;一儲存引擎,耦合到該資料塊,其經組態以:應用一第一保護遍及該等資料頁;應用一第二保護遍及該等資料區段,以及當以該區段冗餘來校正一區段失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
本發明的一項實施例提供一種方法,其包括:提供一資料塊,該資料塊包括資料頁,該等資料頁的各個包括資料區段,該等資料區段的各個包括區段資料以及一區段冗餘;應用一第一保護遍及該等資料頁;應用一第二保護遍及該等資料區段;以及當以區段冗餘來校正一區段失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
本發明的一項實施例提供一種非暫態電腦可讀取媒體,該媒體包括:提供一資料塊,該資料塊包括資料頁,該等資料頁的各者包括資料區段,該等資料區段的各者包括區段資料以及一區段冗餘;應用一第一保護遍及該等資料頁;應用一第二保護遍及該等資料區段;以及當以該區段冗餘來校正一區段失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
本發明的特定實施例具有除了或替代以上所提及那些的其他步驟或元件。對所屬技術領域中具有通常知識者而言,該等步驟或元件將從當參考附圖來研讀以下詳細說明時變得明顯可見。
100‧‧‧計算機系統
101‧‧‧資料儲存系統
102‧‧‧主電腦
104‧‧‧主中央處理單元
106‧‧‧主記憶體
108‧‧‧主匯流排控制器
110‧‧‧固態磁碟
112‧‧‧非揮發性記憶體
114‧‧‧主界面匯流排
115‧‧‧儲存引擎
116‧‧‧硬碟驅動器
117‧‧‧記憶體裝置
118‧‧‧網路附加埠
120‧‧‧耦合網路
122‧‧‧網路附加儲存裝置
124‧‧‧纜線
202‧‧‧資料塊
204‧‧‧第一保護
206‧‧‧第二保護
208‧‧‧資料頁
210‧‧‧資料區段
212‧‧‧區段資料
214‧‧‧區段冗餘
216‧‧‧碼字
218‧‧‧軟資訊
220‧‧‧非零位元
302‧‧‧方塊
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
310‧‧‧方塊
312‧‧‧方塊
314‧‧‧方塊
500‧‧‧方法
502‧‧‧方塊
504‧‧‧方塊
506‧‧‧方塊
508‧‧‧方塊
圖1係為在本發明之一項實施例中之一種具資料保護機制的計算機系統。
圖2描繪在一項實施例中之資料保護機制的架構圖。
圖3係為在本發明之一項實施例中之計算機系統的流程圖。
圖4係為描繪在本發明之一項實施例中之實範改善的圖式。
圖5係為在本發明之一項實施例中一種操作計算機系統之方法的流程圖。
以下實施例係被充分詳細地說明,使得所屬技術領域中具有通常知識者能夠製造與使用本發明。要理解的是,依據本揭示,亦可進行其他實施例,且系統、過程、或機制性變化可在不背離本發明實施例的範圍下進行。
在下文的說明中,可產生許多具體細節,以提供對本發明完整的理解。不過,將明瞭的是本發明可在不具有這些具體細節之下實施。為了避免混淆本發明的實施例,一些眾所皆知的電路、系統組態、以及過程步驟不會被詳細揭示。
顯示本系統之實施例的圖式係為半圖解且沒有按比例繪製,以及特別地,該等尺寸的其中一些係為了清楚呈現且在圖式中被誇張化地顯示。相似地,雖然為了清楚說明,該等圖式中的圖通常顯示相似的定位,但是在該等圖式中的說明則大部分是選擇性的。通常地,本發明係以任何定位來操作。為了方便說明,該等實施例已經被編號為第一實施例、第二實施例等等,且不打算具有任何其他的顯著性或提供限制給本發明的實施例。
在本文中所參考的術語「模組」可根據其中使用該術語的背景而包括在本發明之一項實施例中的軟體、硬體、或其組合。例如,該軟體係為機制碼、韌體、嵌式碼、以及應用軟體。同樣地例如,該硬體係為 電路、處理器、電腦、積體電路、積體電路核心、壓力感應器、慣性感應器、微機電系統(MEMS)、被動裝置、或其組合。
現在參考圖1,其中顯示在本發明之一項實施例中之一種具資料保護機制的計算機系統100。計算機系統100在圖1中以具資料儲存系統101之計算機系統100的功能性方塊圖來描繪。功能性方塊圖描繪資料儲存系統101,其係安裝在主電腦102中,譬如包括至少主中央處理單元104的伺服器或工作站、耦合到主中央處理單元104的主記憶體106、以及主匯流排控制器108。主匯流排控制器108提供主界面匯流排114,其容許主電腦102利用資料儲存系統101。
要理解的是,在一些實施過程中,主匯流排控制器108的功能可藉由主中央處理單元104所提供。主中央處理單元104係以許多不同的方式而用硬體電路來實施。例如,主中央處理單元104係為處理器、特定應用積體電路(ASIC)、嵌入式處理器、微處理器、硬體控制邏輯、硬體有限狀態機器(FSM)、數位訊號處理器(DSP)、或其組合。
資料儲存系統101可耦合到固態磁碟110,譬如具週邊界面系統之以非揮發性記憶體為主的儲存裝置,或者非揮發性記憶體112,譬如用於擴展或延伸非揮發性系統記憶體的內部記憶體卡。
資料儲存系統101亦可耦合到硬碟驅動器(HDD)116,硬碟驅動器可被安裝在主電腦102中,在主電腦102的外面,或者其組合。舉例來說,固態磁碟110、非揮發性記憶體112、以及硬碟驅動器116可被考慮當作直接附加儲存(DAS)裝置。
資料儲存系統101亦可支撐用於耦合網路120的一網路附加埠118。網路120的範例係為局部區域網路(LAN)以及儲存區域網路(SAN)。網路附加埠118可提供到網路附加儲存(NAS)裝置122的存取。
雖然網路附加儲存裝置122以硬碟驅動器來顯示,但是這僅僅是一範例。要理解的是,網路附加儲存裝置122包括磁帶儲存(未顯示)、以及與固態硬碟110、非揮發性記憶體112、或經由網路附加埠118來存取之硬碟驅動器116相似的儲存裝置。同樣地,網路附加儲存裝置122包括簡單磁碟綁定(JBOD)系統或智慧型磁碟冗餘陣列(RAID)系統以及其他網路附加儲存裝置122。
經由用於儲存界面的纜線124,譬如序列先進技術附接(SATA)、序列附接SCSI(SAS)、或快速週邊組件互連(PCI-e)附加儲存裝置,可將資料儲存系統101附加到主界面匯流排114,以用於提供存取到複數個直接附加儲存(DAS)裝置以及與該等直接附加儲存裝置界面接合。
資料儲存系統101包括儲存引擎115與記憶體裝置117。儲存引擎115係用許多方式,以硬體電路、軟體、或其組合來實施。例如,儲存引擎115係以處理器、特定應用積體電路(ASIC)、嵌入式處理器、微處理器、硬體控制邏輯、硬體有限狀態機器(FSM)、數位訊號處理器(DSP)、或其組合來實施。
儲存引擎115可控制至與自主電腦102、以及自與至直接附加儲存(DAS)裝置、網路附加儲存裝置122、或其組合之資料的流動與管理。儲存引擎115亦可實施資料可靠度檢測與校正,其係將在稍後被進一步討論。儲存引擎115亦可控制與管理在直接附加儲存(DAS)裝置與網路附加儲存裝置112之間與在它們本身之中之資料的流動。儲存引擎115可用硬體電路、處理器運行軟體、或其組合來實施。
為了例示性目的,儲存引擎115係被顯示為資料儲存系統101的一部份,雖然儲存引擎115可被不同地實施與分配。例如,儲存引擎115係以在主電腦102中的一部份來實施,部份地以軟體來實施且部份地以硬體 來實施或者其組合。儲存引擎115係在資料儲存系統101外部。舉例來說,儲存引擎115係為以上所說明之直接附加儲存(DAS)裝置、網路附加儲存裝置122、或其組合的一部份。儲存引擎115的功能性係以主電腦102、直接附加儲存(DAS)裝置、網路附加儲存裝置122、或其組合的一部份來分佈。
記憶體裝置117的功能如同至資料儲存系統101、計算機系統100、或其組合的區域快取。記憶體裝置117係為揮發性記憶體或非揮發性記憶體。揮發性記憶體的範例係為靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)。
儲存引擎115與記憶體裝置117致使資料儲存系統101滿足由主電腦102所提供之資料的性能需求且將那資料儲存在固態磁碟110、非揮發性記憶體112、硬碟驅動器116、或網路附加儲存裝置122中。
為了例示性目的,資料儲存系統101係被顯示為主電腦102的一部份,雖然資料儲存系統101可被不同地實施與分配。例如,資料儲存系統101係以主電腦102中的插入卡、以主電腦102中的部份晶片或晶片組、以部份實施於主電腦102中的軟體且部份實施於主電腦120中的硬體、或其組合來實施。資料儲存系統101係在主電腦102外部。舉例來說,資料儲存系統101係為上文所說明之直接附加儲存(DAS)裝置、網路附加儲存裝置122、或其組合的一部份。資料儲存系統101係以主電腦102、直接附加儲存(DAS)裝置、網路附加儲存裝置122、或其組合的一部份來分佈。
現在參考圖2,其中顯示在一項實施例中之資料保護機制的架構圖。圖2描繪資料保護機制的數字表示。該等圖式描繪資料塊202、第一保護204、以及第二保護206。在左邊的圖式描繪第一保護204在資料塊202下方,而第二保護206則被顯示在資料塊202的右手側。在右邊的圖式描繪第一保護204如先前地相關於資料塊202,但是第二保護206則被描繪在與第 一保護204之對置側上之資料塊202上方。
資料塊202包括欲加以保護的資料。資料塊202代表物理儲存。資料塊202可包括來自主電腦102、網路附加儲存裝置122、DAS裝置、或其組合的儲存元件。作為更具體的範例,資料塊202代表包括記憶體裝置117、固態磁碟110、非揮發性記憶體112、硬碟驅動器116或其組合的物理儲存。資料塊202亦代表超級塊(super block),其代表更大的一儲存子系統的子切割。當儲存裝置太大而無法直接定址時,可使用超級塊來佔有儲存容量的一部份。舉例來說,超級塊可包含達到最大的可定址空間(在為4GB的32位元定址中),超級塊的數目則可形成整個容量。可利用超級塊的一範例應用係在快閃記憶體中,在此,耗損活動的估計必須被維持以用於資料保護與耗損平均技術。
資料塊202可包括且可組織成資料頁208。各資料頁208包括資料區段210。舉例來說,資料塊202可遍及複數個裝置分佈,譬如主電腦102、直接附加儲存(DAS)裝置、網路附加儲存裝置122、或其組合。
舉例來說,用於資料塊202的資料保護機制係以具第一保護204、第二保護206、或其組合的2D RAID同位(parity)來實施。在此範例中,資料塊202係為RAID塊。資料頁208可代表以頁來組織的資料。各資料頁208可包括資料區段210。各資料區段210包括可為錯誤校正區段的區段資料212以及區段冗餘214。區段資料212與區段冗餘214可組成一碼字216。區段冗餘214提供用於錯誤檢測、錯誤校正、或其組合的性能。
區段冗餘214的範例為錯誤校正碼(ECC)、循環冗餘檢測(CRC)、或其它類型的錯誤檢測或校正方案。作為更具體的範例,區段冗餘214係為系統碼或非系統碼、方塊碼、或迴旋碼。作為進一步的範例,區段冗餘係為里德-所羅門(Reed-Solomon)碼或低密度同位檢測(LDPC)碼。
為了例示性目的,一項實施例係以具第一保護204與第二保護206之資料塊202的二維(2D)保護來說明,雖然要理解的是,各項實施例不限於2D保護。例如,可將其他保護應用到相同的資料塊202、相同的資料區段210,或其組合,其係與用於N-維保護的第一保護204、第二保護206,或其組合相似。舉例來說,各項實施例可用於應用到資料塊202、資料區段210,或其組合的進一步保護,以用於3D、4D、5D等保護。
第一保護204亦可被考慮當作資料塊202的一部份以及資料頁208的其中一者。在本範例中,第一保護204可被考慮為用於RAID同位頁的一個區段,以用於資料塊202中之資料頁208的其他情形。第二保護206係為用於在資料頁208的各個中之資料區段210的各個的保護,且可代表用於在資料頁208其中一個中之剩餘資料區段210之頁同位區段的一個區段。
如RAID同位頁之第一保護204的一項功能包括提供同位資訊遍及在作為RAID塊之資料塊202中的資料頁208。有至少兩種方式可實現此。
在一項實施例中,作為RAID同位頁的第一保護204係為在作為RAID塊之資料塊202中之全部資料頁208的總合。不過,這將意味著由於此頁之區段冗餘214而沒有任何保護。
在此研究中,作為RAID同位頁的第一保護204可像資料頁208地被格式化,在此,資料區段210的各個係由區段冗餘214所保護,譬如ECC。在此,用於資料區段210的酬載係為用於資料頁208之酬載的同位。不過,舉例來說,關於同位區段,有三種可能性。
首先,同位區段可使用於頁同位,就像用於在資料頁208上之剩餘資料區段210的同位區段。不過,這意味著資料塊202中之資料頁208上的同位區段將不會藉由RAID同位所保護。
第二,同位區段可使用於在資料頁208上之同位區段的同位。在此情形中,作為RAID同位頁的第一保護204將不具有頁同位資訊。
第三,會有兩個同位區段。一項實施例可提供同位資訊給在RAID同位頁中的區段,以作為第一保護204,以及其他則提供同位資訊給在具第二保護206之資料塊202中的全部同位區段。
本發明的一項實施例提供迭代RAID協助解碼。就此實施例而言,第一保護204係以RAID同位頁來說明,以用於上文的第三範例。在此情形中,作為一部份資料區段201的全部同位區段則由RAID同位所涵蓋,且RAID同位頁的表現像資料頁208。
現在參考圖3,其中顯示在本發明之一項實施例中之計算機系統100的流程圖。在此實施例中,計算機系統100可將作為RAID塊之圖2的整個資料塊202解碼。在方塊302中,計算機系統100首先嘗試使用圖2的區段冗餘214當作區段ECC來校正圖2之資料區段210的各者。
進一步,圖2的第一保護204可利用與圖2之資料頁208相關的軟資訊218。圖2的軟資訊218提供從通道之可靠度的某種測量。軟資訊的範例包括快閃對數概似值比(LLR)且可由第一保護204所利用。
作為進一步的範例,軟資訊218亦可被得到以用於圖1的非揮發性記憶體112。作為具體的範例,非揮發性記憶體112包括多層式單元(MLC),其具有由於可導致非揮發性記憶體112之MLC類型的退化的耦合頁與錯誤轉變可能性。就MLC非揮發性記憶體112的二位元每單元範例而言,有使用葛雷(Gray)碼的可能錯誤:11->10
10->100
00->01
在此範例中,上文的轉變係為可能的錯誤轉變狀態。以及,在MLC非揮發性記憶體112中,最明顯的位元(MSB)頁以及最不明顯的位元(LSB)頁係在不同的記憶體頁中。藉由讀取錯誤頁的耦合頁,計算機系統100可決定MSB頁與LSB頁兩者的現有狀態。從該現有狀態,計算機系統100可計算出什麼是校正狀態的可能狀態。例如,假如錯誤資料單元係在MSB頁且經過互斥或(XOR),那麼計算機系統100則可發現整組的可能錯誤位置,該等可能錯誤位置係為超過一個錯誤資料單元的總合。計算機系統100可讀取錯誤資料單元的LSB頁。而且我們可算出在該表中所顯示的轉變狀態可能性,如以下所示:
假如現有錯誤資料單元係為LSB頁,那麼非揮發性記憶體112則可包括如在下文表中之狀態的可能轉變:
藉由在複數頁錯誤模式之加總以及耦合頁現有狀態上檢視,計算機系統100可縮小錯誤位元,以假設不同頁將具有不同的現有狀態值。就MSB位元頁而言,舉例來說,計算機系統100可在資料單元中之位元的平均75%上屏蔽輸出,以用於校正翻轉。就LSB位元頁而言,計算機系統100可在資料單元中之位元的平均25%上屏蔽輸出,以用於錯誤翻轉。
回到流程圖的說明,假如如由方塊304所決定,方塊302成 功,那麼該過程則會持續以處理資料區段210。假如如在方塊304中所決定的,它無法校正,那麼計算機系統100則會應用RAID協助解碼。作為更具體的範例,圖2的碼字216係為Bose、Chaudhuri、以及Hocquenghem(BCH)碼字以及作為RAID同位的資料保護機制,如上文所提及。
為了例示性目的,碼字216係以BCH碼字來說明,雖然令人理解的是,碼字216係為使用不同錯誤檢測與校正碼的其他類型。例如,可利用其他方塊碼來形成碼字216。作為更具體的範例,碼字216係以Reed-Solomon碼或低密度同位檢測(LDPC)碼來形成。
回到碼字216係為BCH碼字的範例,圖2的第一保護204與第二保護206可分別由Q與R所代表。使Q={q1,i=1,....,q}以及R={r1,i=1,....,r},在此qi與rj係為長度n的二進制向量。特別地,q1,i=1,....,q-1以及r1,i=1,....,r-1係為BCH碼字向量,在此,qq與rr,同位檢測向量,其係由以下所定義:
假設在方塊304中,c係無法校正,那麼具方塊306的計算機系統100則計算出同位:
接著,方塊306產生用於pQ與pR的向量s逐位元AND(^):s=p Q ^p R (方程式3)
在此,s(i)=p Q (i)^p R (i)係為s的第i位元。
計算機系統100可應用BCH校正到所得的字(亦即,s+c)。假如c係為僅僅錯誤碼字以及s(i)=1,那麼c(i)則不正確且將藉由此程序校正。
假如c(i)不正確,該程序則無法校正它,假如在位置i具有錯誤之Q或R中有奇數個錯誤模式。這是因為該等同位檢測的至少其中一個將被滿足,如此s(i)=0。此外,假如c(i)正確,那麼s(i)=1,假如Q與R兩者皆包含奇數個錯誤模式。在此情形中,該程序強迫c(i)為不正確。另一方面,假如就在位置i的Q而言,有0、2、....、錯誤,以及就R而言,有0、2、....、,那麼c(i)將被校正。
假設c具有e>t以及我們校正u錯誤且引進v錯誤。該程序會失敗,假如e-u+v>t (方程式4)
換句話說,計算機系統100嘗試藉由首先翻轉在c中之圖2的位元220以對應在s中的非零位置而來校正c。在計算機系統100翻轉在無法校正區段中的位元220之處,如由方塊308所決定,以對應在Q與R係為該頁與RAID同位且再度嘗試校正之處的非零位元220,迭代返回方塊302,區塊冗餘214則在方塊310。假如如在方塊312中所決定,正被解碼之資料區段210的其中一個仍然無法校正,那麼一項實施例則可藉由迭代往回到方塊302而持續應用RAID協助解碼到在資料方塊202中的其他資料頁208。
作為更具體的範例,計算機系統100可從在來自資料頁208之第一頁上之圖2的資料區段210選擇第一區段,以作為「目標」區段,其可被使用來測量性能。計算機系統100可產生全部的資料頁208於資料方塊202中。在方塊302中,就資料區段210的各者而言,計算機系統100隨後使用圖2的區段冗餘214(譬如區段ECC)來嘗試對在資料頁208之目標事例中之資料區段210的各者解碼。假如該目標區段可被校正,如在方塊304中所決定的,隨後可進行一實施例或在方塊314中持續處理該資料區段,否則在方塊306中,一實施例可對該目標區段應用RAID協助。假如,如在方塊312 所決定的,這失敗的話,計算機系統100會持續應用RAID協助到資料頁208之目標事例中各無法進行校正的資料區段210之事例上。
每當RAID協助在資料區段210之先前無法進行校正的事例上成功時,計算機系統100則可再度應用RAID協助以用於該目標區段。這可重複直到計算機系統100能夠校正目標區段或計算機系統100已應用RAID協助到在目標區段中之各無法校正的資料區段210之事例上。假如計算機系統100已在目標頁上之各無法校正的資料區段210之事例上嘗試進行校正,那麼計算機系統100會以資料頁208的下一事例來重複校正過程。這會持續直到計算機系統100已處理全部的資料頁208或計算機系統100能夠將目標區塊正確地解碼為止。
在進一步的實施例中,第二保護206係以列增強式漢明碼來實施,其係以下文的矩陣表達:
列增強式漢明碼,如在矩陣1中所示,提供全部是1的列到以下所表達的同位檢測矩陣:
矩陣2係為m-位元漢明碼之同位檢測矩陣的一範例,其可由選擇該等行為長度m的全部非零二進制向量所構成。矩陣2係為m=3之同位檢測矩陣的一範例。就在矩陣2中之H的此範例而言,非零癥狀係為錯誤位置的二進制代表。例如,假如該接收字w在位置6中具有一錯誤,那麼s=wH T =[0 1 1]6。
假如3行的列增強式漢明碼的各個組合係線性獨立,該列增強式漢明碼則包括同位列。結果,由此可見,該漢明同位碼具有至少4的最小距離。此外,我們亦注意用於該列增強式漢明碼之H的此種選擇,我們仍可藉由將該癥狀向左移一個位元(亦即,移出該同位檢測位元)而來識別該錯誤位置。
現在回到圖3,其中顯示描繪在本發明之一實施例中之範例改善的圖式。該圖描繪沿著y軸的區段錯誤率以及沿著x軸的列位元錯誤率。有兩個繪圖被描繪在該圖上。一個圖描繪區段失敗率,該區段失敗率具有比正如在本發明一項實施例所說明之具RAID同位研究的其他圖更糟之已知列位元錯誤率的性能。
為了例示性目的,計算機系統100被說明在圖2的資料塊202、圖2的第一保護204、以及圖2的第二保護206上操作,其係無關於位置。要理解的是,圖1的資料儲存系統101、圖1的儲存引擎115、圖1的DAS裝置、圖1的網路附加儲存裝置122可提供資料塊202、第一保護204、第二保護206、或其組合。資料塊202亦可代表非揮發性記憶體112、記憶體裝置117、固態磁碟110、硬碟驅動器116、或其組合。
在本申請案所說明的功能,其係以儲存在欲由圖1之主中央處理單元104、資料儲存系統101、儲存引擎115、或其組合所執行之非暫態電腦可讀取媒體上的指令來執行。非暫態電腦媒體包括圖1的主記憶體、圖1的DAS裝置、網路附加儲存裝置122、非揮發性記憶體112、記憶體裝置117、固態磁碟110、硬碟驅動器116、或其組合。非暫態電腦可讀取媒體包括光碟(CD)、數位影音光碟(DVD)、或通用序列匯流排(USB)快閃記憶體裝置。非暫態電腦可讀取媒體可被整合作為計算機系統100的一部份或被安裝作為計算機系統100的可移動部份。
現在參考圖5,其中顯示一種操作本發明一項實施例中之計算機系統100之方法500的流程圖。方法500包括:在方塊502,提供一資料塊,該資料塊包括資料頁,該等資料頁的各者包括資料區段,該等資料區段的各者包括區段資料以及一區段冗餘;在方塊504,應用一第一保護遍及該等資料頁;在方塊506,應用一第二保護遍及該等資料區段;以及在方塊508,當以該區段冗餘來校正一區段失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
所得的方法、過程、設備、裝置、產品、及/或系統係直接、有成本效益、不複雜、功能非常多、準確、靈敏以及有效率,其係並且可藉由改變已知組件以適合預備、有效率、以及經濟生產、應用、以及利用而來實施。本發明之一項實施例的另一個重要態樣係為它有價值地支持與服務減少成本、簡化系統、以及增加性能的歷史性趨勢。
本發明之一項實施例的這些以及其他有價值態樣必然會助長該技術的狀態到至少下一個程度。
雖然本發明已經結合具體最佳模式來說明,但是在所屬技術領域中具有通常知識者將根據以上說明而明瞭許多替代、修改、以及變化。據此,它的用意是包含位於所包括申請專利範圍之範圍內的全部此些替代、修改、以及變化。在本文中所陳述或在附圖中所顯示的全部內容係以例示性及非限制含意來詮釋。
100‧‧‧計算機系統
101‧‧‧資料儲存系統
102‧‧‧主電腦
104‧‧‧主中央處理單元
106‧‧‧主記憶體
108‧‧‧主匯流排控制器
110‧‧‧固態磁碟
112‧‧‧非揮發性記憶體
114‧‧‧主界面匯流排
115‧‧‧儲存引擎
116‧‧‧硬碟驅動器
117‧‧‧記憶體裝置
118‧‧‧網路附加埠
120‧‧‧耦合網路
122‧‧‧網路附加儲存裝置
124‧‧‧纜線

Claims (33)

  1. 一種計算機系統,其包含:一資料塊,該資料塊包括資料頁,且各資料頁包括資料區段,且各資料區段包括區段資料以及一區段冗餘;一儲存引擎,耦合到該資料塊,該儲存引擎經組態以:應用一第一保護,遍及該等資料頁;應用一第二保護,遍及該等資料區段,以及當以該區段冗餘來校正一區段資料失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
  2. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來在以該第一保護與該第二保護進行校正後,以該區段冗餘來校正該區段資料。
  3. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來應用該第一保護當作遍及該等資料頁的一同位頁(parity page)。
  4. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來應用該第二保護當作遍及該等資料頁的一同位頁。
  5. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來藉由翻轉在該等資料區段中的位元而以該第一保護與該第二保護來校正該等資料區段的至少其中一者。
  6. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來應用該第二保護當作一列增強式漢明碼(row-enhanced Hamming code)。
  7. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來以該區段冗餘校正該區段資料。
  8. 如申請專利範圍第1項之系統,其中該資料塊包括一超級塊。
  9. 如申請專利範圍第1項之系統,該資料塊包括一硬碟驅動器、固態硬碟驅動、一記憶體裝置、或其組合。
  10. 如申請專利範圍第1項之系統,其中該儲存引擎經組態來應用包括該相關軟體資訊的該第一保護到該等資料頁中的至少其中一者。
  11. 一種操作計算機系統的方法,其包含:提供一資料塊,該資料塊包括資料頁,且各該資料頁包括資料區段,且各該資料區段包括區段資料以及一區段冗餘;應用一第一保護,遍及該等資料頁;應用一第二保護,遍及該等資料區段;以及當以該區段冗餘來校正一區段資料失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
  12. 如申請專利範圍第11項之方法,進一步包含在以該第一保護與該第二保護來進行校正後,以該區段冗餘來校正該區段資料。
  13. 如申請專利範圍第11項之方法,其中應用該第一保護包括應用遍及該等資料頁的一同位頁。
  14. 如申請專利範圍第11項之方法,其中應用該第二保護包括應用遍及該等資料頁的一同位頁。
  15. 如申請專利範圍第11項之方法,其中以該第一保護與該第二保護來校正該等資料區段中的至少其中一者包括翻轉該等資料區段中的一位元。
  16. 如申請專利範圍第11項之方法,其中應用該第二保護包括應用一列增強 式漢明碼。
  17. 如申請專利範圍第11項之方法,進一步包含以該區段冗餘來校正該區段資料。
  18. 如申請專利範圍第11項之方法,其中提供該資料塊包括提供一超級塊。
  19. 如申請專利範圍第11項之方法,其中提供該資料塊包括提供一硬碟驅動器、固態磁碟驅動器、一記憶體裝置、或其組合。
  20. 如申請專利範圍第11項之方法,其中應用該第一保護包括應用相關的軟體資訊到該等資料頁中的至少其中一者。
  21. 一種包括執行指令的非暫態電腦可讀取媒體,該媒體包含:提供一資料塊,該資料塊包括資料頁,且各該資料頁包括資料區段,且各該資料區段包括區段資料以及一區段冗餘;應用一第一保護,遍及該等資料頁;應用一第二保護,遍及該等資料區段;以及當以該區段冗餘來校正一區段資料失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
  22. 如申請專利範圍第21項之媒體,進一步包含在以該第一保護與該第二保護來進行校正後,以該區段冗餘來校正該區段資料。
  23. 如申請專利範圍第21項之媒體,其中應用該第一保護包括應用遍及該等資料頁的一同位頁。
  24. 如申請專利範圍第21項之媒體,其中應用該第二保護包括應用遍及該等資料區段的一同位頁。
  25. 如申請專利範圍第21項之媒體,其中以該第一保護與該第二保護來校正該等資料區段中的至少其中一者包括翻轉在該等資料區段中的一位元。
  26. 如申請專利範圍第21項之媒體,其中應用該第二保護包括應用一列增強式漢明碼。
  27. 如申請專利範圍第21項之媒體,進一步包含以該區段冗餘來校正該區段資料。
  28. 如申請專利範圍第21項之媒體,其中提供該資料塊包括提供一超級塊。
  29. 如申請專利範圍第21項之媒體,其中提供該資料塊包括提供一硬碟驅動器、固態磁碟驅動器、一記憶體裝置、或其組合。
  30. 如申請專利範圍第21項之媒體,其中應用該第一保護包括應用相關的軟體資訊到該等資料頁中的至少其中一者。
  31. 一種計算機系統,其包含:一資料塊,該資料塊包括資料頁,且各資料頁包括資料區段,且各資料區段包括區段資料以及一區段冗餘;一儲存引擎,耦合到該資料塊,該儲存引擎經組態以:應用一第一保護,遍及該等資料頁,其中該第一保護係該資料塊之一部分;應用一第二保護,遍及該等資料區段,以及當以該區段冗餘來校正一區段資料失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
  32. 一種操作計算機系統的方法,其包含: 提供一資料塊,該資料塊包括資料頁,且各該資料頁包括資料區段,且各該資料區段包括區段資料以及一區段冗餘;應用一第一保護,遍及該等資料頁,其中該第一保護係該資料塊之一部分;應用一第二保護,遍及該等資料區段;以及當以該區段冗餘來校正一區段資料失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
  33. 一種包括執行指令的非暫態電腦可讀取媒體,該媒體包含:提供一資料塊,該資料塊包括資料頁,且各該資料頁包括資料區段,且各該資料區段包括區段資料以及一區段冗餘;應用一第一保護,遍及該等資料頁,其中該第一保護係該資料塊之一部分;應用一第二保護,遍及該等資料區段;以及當以該區段冗餘來校正一區段資料失敗時,以該第一保護與該第二保護來校正該等資料區段中的至少其中一者。
TW104106251A 2014-03-01 2015-02-26 具資料保護機制的計算機系統及其操作方法 TWI570549B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461946710P 2014-03-01 2014-03-01
US14/328,770 US10417090B2 (en) 2013-12-23 2014-07-11 Computing system with data protection mechanism and method of operation thereof

Publications (2)

Publication Number Publication Date
TW201602775A TW201602775A (zh) 2016-01-16
TWI570549B true TWI570549B (zh) 2017-02-11

Family

ID=54055731

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104106251A TWI570549B (zh) 2014-03-01 2015-02-26 具資料保護機制的計算機系統及其操作方法

Country Status (3)

Country Link
CN (1) CN106104491A (zh)
TW (1) TWI570549B (zh)
WO (1) WO2015134262A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI631456B (zh) * 2016-10-07 2018-08-01 慧榮科技股份有限公司 資料儲存裝置及資料維護方法
US20190095299A1 (en) * 2017-09-28 2019-03-28 Cnex Labs, Inc. Storage system with machine learning mechanism and method of operation thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040036997A1 (en) * 2002-08-23 2004-02-26 Hetzler Steven R. Method for writing streaming audiovisual data to a disk drive
TW200509085A (en) * 2003-06-26 2005-03-01 Koninkl Philips Electronics Nv Record carrier with two ECC block sizes, and recording method and recorder for recording such record carrier
US20100313100A1 (en) * 2009-06-04 2010-12-09 Lsi Corporation Flash Memory Organization
TW201245953A (en) * 2011-02-08 2012-11-16 Sandisk Technologies Inc Data recovery using additional error correction coding data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536627B2 (en) * 2005-12-27 2009-05-19 Sandisk Corporation Storing downloadable firmware on bulk media
US7747903B2 (en) * 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8832524B2 (en) * 2011-09-22 2014-09-09 Violin Memory, Inc. System and method for correcting errors in data using a compound code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040036997A1 (en) * 2002-08-23 2004-02-26 Hetzler Steven R. Method for writing streaming audiovisual data to a disk drive
TW200509085A (en) * 2003-06-26 2005-03-01 Koninkl Philips Electronics Nv Record carrier with two ECC block sizes, and recording method and recorder for recording such record carrier
US20100313100A1 (en) * 2009-06-04 2010-12-09 Lsi Corporation Flash Memory Organization
TW201245953A (en) * 2011-02-08 2012-11-16 Sandisk Technologies Inc Data recovery using additional error correction coding data

Also Published As

Publication number Publication date
WO2015134262A1 (en) 2015-09-11
CN106104491A (zh) 2016-11-09
TW201602775A (zh) 2016-01-16

Similar Documents

Publication Publication Date Title
US9673840B2 (en) Turbo product codes for NAND flash
TWI627634B (zh) 記憶體中錯誤校正碼操作
JP7276742B2 (ja) メモリエラーを訂正するための共有パリティチェック
KR102190683B1 (ko) 메모리 데이터 에러 정정 방법
US10394651B2 (en) Computing system with circular-shift recovery mechanism and method of operation thereof
TW201709044A (zh) 記憶體中之條紋映射
KR20140013095A (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
KR20140018393A (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
US10892776B1 (en) Memory controller and method of accessing flash memory
US20120144261A1 (en) Error checking and correcting circuit, memory system compising error checking and correcting circuit, and related methods of operation
US9979417B2 (en) Enhanced chip-kill schemes by using ECC syndrome pattern
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
WO2019164985A1 (en) Performing a decoding operation to simulate switching a bit of an identified set of bits of a data block
US10678662B2 (en) Computing system with data protection mechanism with soft information and method of operation thereof
US10333555B2 (en) Apparatuses and methods for interleaved BCH codes
US10331515B2 (en) Computing system with shift data protection mechanism and method of operation thereof
TWI570549B (zh) 具資料保護機制的計算機系統及其操作方法
US20180203625A1 (en) Storage system with multi-dimensional data protection mechanism and method of operation thereof
US10417090B2 (en) Computing system with data protection mechanism and method of operation thereof
JP2021521524A (ja) 共通の高ランダム・ビット・エラーおよび低ランダム・ビット・エラー修正ロジック
US10402595B2 (en) Computing system with non-orthogonal data protection mechanism and method of operation thereof
US11876535B1 (en) Memory controller and method for controlling data in decoding pipeline
CN108073469B (zh) 用于通用产品代码的数据映射方案
CN108574495B (zh) 错误定位多项式解码器及方法
US20150155885A1 (en) Error correcting apparatus, error correcting method, and program