TWI465897B - 記憶體模組之錯誤檢查與校正系統以及方法 - Google Patents

記憶體模組之錯誤檢查與校正系統以及方法 Download PDF

Info

Publication number
TWI465897B
TWI465897B TW101104850A TW101104850A TWI465897B TW I465897 B TWI465897 B TW I465897B TW 101104850 A TW101104850 A TW 101104850A TW 101104850 A TW101104850 A TW 101104850A TW I465897 B TWI465897 B TW I465897B
Authority
TW
Taiwan
Prior art keywords
error
module
memory
correction
unit
Prior art date
Application number
TW101104850A
Other languages
English (en)
Other versions
TW201329697A (zh
Inventor
Yiming Dong
Ji Zhong
Li Shen
Wei Wang
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW201329697A publication Critical patent/TW201329697A/zh
Application granted granted Critical
Publication of TWI465897B publication Critical patent/TWI465897B/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

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)
  • Detection And Correction Of Errors (AREA)

Description

記憶體模組之錯誤檢查與校正系統以及方法
本發明主要關於錯誤檢查與校正(error checking and correcting,ECC)技術,特別係有關於適用於記憶體模組之錯誤檢查與校正系統及方法。
錯誤檢查與校正(error checking and correcting,ECC)技術或錯誤校正碼(error correction code)檢查係為一種可用於記憶體模組上的資料檢查與除錯的技術,用來檢查傳送到記憶體模組的資料是否正確並可用於校正資料的錯誤。當數據出現錯誤時,錯誤校正碼檢查能自行更正錯誤,或要求系統重新傳送資料。這樣可確保系統正常運作而不會因資料錯誤而導致當機。所傳輸的資料於傳輸端傳送前經常事先被編碼為錯誤校正碼(可包含資料訊息、冗餘資訊及同位資料)。當接收端收到錯誤校正碼資料時,即使資料於傳輸過程中遭受損毀而產生隨機錯誤,亦可藉解碼錯誤校正碼而回復正確的資料。同樣的,資料儲存系統亦經常在儲存資料前將所儲存的資料編碼為錯誤校正碼。當資料於儲存過程中遭受損毀而產生隨機錯誤時,亦可藉解碼錯誤校正碼而回復正確的資料。常見的錯誤校正碼如BCH碼(Bose,Ray-Chaudhuri,and Hocquenghem code)及RS碼(Reed-Solomon code)。BCH碼常用於快閃記憶體資料的儲存,而RS碼常用於光碟資料的儲存。
一般而言,為了提昇整體效能,系統的控制器可能會採用多個通道結構例如多個快閃記憶體晶片來幫助運算,其中每個通道各自配有一個錯誤校正模組以對其傳輸資料進行自動錯誤校正。然而,一般的錯誤校正模組僅具有有限能力的自動錯誤校正能力,例如:資料容錯數量為6位元之錯誤校正碼只能對錯誤的位元數目為小於或等於6位元的錯誤進行校正,若錯誤的位元數目大於6位元時,錯誤校正模組不僅無法校正錯誤,甚至可能會使資料發生的錯誤增加。因此,為了提供更好的錯誤校正效能,可對每個通道配上一個具有較高資料容錯數量的錯誤校正模組來進行錯誤校正。然而,具有較高資料容錯數量的錯誤校正模組通常較佔面積且成本較高,不僅會增加硬體成本及複雜度,也不適合大量使用。
本發明之一實施例提供了一種記憶體模組之錯誤檢查與校正(Error Checking and Correcting,ECC)方法,該記憶體模組包括至少一記憶體單元,上述方法包括以下流程步驟:接收來自該記憶體單元之一輸入資料;透過一第一校正模組對該輸入資料執行一第一錯誤校正操作,並產生一解碼結果,其中該解碼結果係用以表示是否解碼失敗;以及依據該解碼結果,決定是否啟動一第二校正模組對該輸入資料執行一第二錯誤校正操作。其中,該第一校正模組以及該第二校正模組係分別採用一第一方法以及一第二方法且該第一方法係以一第一容錯數量之錯誤校正碼進行錯誤校正,該第二方法係以一第二容錯數量之錯誤校正碼進行錯誤校正,且該第二容錯數量大於該第一容錯數量。
本發明之另一實施例提供了一種記憶體模組之錯誤檢查與校正系統,其中該記憶體模組包括複數記憶體單元。記憶體模組之錯誤檢查與校正系統至少包括複數第一校正模組、一第二校正模組、以及一仲裁模組。該等第一校正模組係對應耦接至該等記憶體單元,其中每一該等第一校正模組對應該等記憶體單元之其中一者且用以接收該對應記憶體單元之一輸入資料並對該輸入資料執行一第一錯誤校正操作,並產生一解碼結果。第二校正模組用以於被啟動時執行一第二錯誤校正操作,其中該第一校正模組係以一第一容錯數量之錯誤校正碼進行錯誤校正,該第二校正模組係以一第二容錯數量之錯誤校正碼進行錯誤校正且該第二容錯數量大於該第一容錯數量。仲裁模組係耦接於該等第一校正模組以及該第二校正模組之間,其中該仲裁模組係依據該等第一校正模組產生之該等解碼結果決定是否啟動該第二校正模組。其中該仲裁模組係於該等解碼結果之任一者表示解碼失敗時,啟動該第二校正模組以對該輸入資料執行該第二錯誤校正操作。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料處理方法做些許的更動與潤飾而得到。
本章節所敘述的是實施本發明之範例,以下範例係以所附圖式配合說明,且若未特別指出,則在不同圖式中所使用到的相同標號係用以指示相同或類似之元件。然而,以下實施例僅為實施本發明之代表範例,並非代表實施本發明之所有方式,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
第1圖顯示依據本發明實施例之記憶體模組之錯誤檢查與校正(ECC)系統之示意圖。如第1圖所示,記憶體模組之錯誤檢查與校正系統100係用以對一記憶體模組200進行錯誤檢查與校正,其中記憶體模組200包括一或多個記憶體單元210。於一實施例中,每一記憶體單元210係可為一顆獨立的快閃記憶體晶片。需提醒的是,於本發明中,每個記憶體單元210又稱為一個通道(channel)。也就是說,本發明之一實施例係以一顆快閃記憶體晶片為一個通道的單位,則記憶體模組200由多顆快閃記憶體晶片構成,但本發明並不限於此。記憶體模組之錯誤檢查與校正系統100至少包括一第一校正模組(error correction module)110、一仲裁模組(arbitrator)120、一第二校正模組130以及一儲存單元140,其中第一校正模組110係耦接至記憶體模組200中的記憶體單元210且用以接收/讀取記憶體單元210的一輸入資料並對此輸入資料執行一第一錯誤校正操作產生一解碼結果。其中,第一校正模組110係採用一第一方法且第一方法係以一第一容錯數量之錯誤校正碼進行錯誤校正。舉例來說,第一校正模組110係以一容錯數量為6位元之錯誤校正碼進行錯誤校正,亦即,第一錯誤校正操作可用以自動檢查並校正6個位元以下的錯誤。解碼結果係用以表示解碼是否成功或失敗,也就是說第一校正模組110是否可自動更正所有的錯誤。當第一校正模組110利用第一容錯數量之錯誤校正碼對輸入資料執行第一錯誤校正操作時,若可自動校正所有的錯誤(亦即:錯誤的位元長度低於第一容錯數量),解碼結果將表示解碼成功(decode sucess),而若無法自動校正所有的錯誤時,解碼結果將表示解碼失敗(decode fail)。儲存單元140係用以儲存錯誤校正操作時所需的各項資料,例如儲存原始訊息資料、冗餘資料以及同位資料(parity data)。提醒的是,第一校正模組110執行第一錯誤校正操作時只會針對所儲存的訊息資料以及所儲存的冗餘資料進行錯誤校正。
之後,記憶體單元210的第一校正模組110所產生的解碼結果將會被送至仲裁模組120進行仲裁。仲裁模組120係耦接於第一校正模組110以及第二校正模組130之間,其中,仲裁模組120係依據第一校正模組110產生的解碼結果決定是否啟動或關閉第二校正模組130。當解碼結果表示解碼成功時,表示所有錯誤都已自動校正,仲裁模組120便關閉第二校正模組130。當解碼結果表示解碼失敗時,表示仍有一些錯誤無法自動校正,仲裁模組120便啟動第二校正模組130。第二校正模組130用以於被仲裁模組120啟動時執行一第二錯誤校正操作。其中,第二校正模組130係採用一第二方法且第二方法係以一第二容錯數量之錯誤校正碼進行錯誤校正且第二容錯數量大於第一容錯數量。舉例來說,於一實施例中,第一校正模組110係以一容錯數量為6位元之錯誤校正碼進行錯誤校正,而第二校正模組130係以一容錯數量為36位元之錯誤校正碼進行錯誤校正,因此,第一錯誤校正操作可用以自動檢查並校正6個位元以下的錯誤,而第二錯誤校正操作可用以自動檢查並校正36個位元以下的錯誤。由於發生超過6位元錯誤的機率非常低,因此第二校正模組130不會頻繁地被啟動,可提升錯誤檢查與校正操作的效能的同時也節省了第二校正模組130所消耗的電力。
另外,第一校正模組110可更包括一編碼器150以及一第一解碼器160,編碼器150係用以產生錯誤校正碼編碼,第一解碼器160係用以執行第一錯誤校正操作。編碼器150包括一第一編碼單元152以及一第二編碼單元154,其中編碼器150可於資料寫入操作時接收欲寫入至記憶體單元210的一資料,再分別透過第一編碼法以及第二編碼法,依據該資料產生相應對應於第一方法以及第二方法的一第一同位資料(parity data)以及一第二同位資料,再依據該資料、第一同位資料以及第二同位資料,產生一編碼資料,最後將該編碼資料寫入至記憶體單元210。舉例來說,第一編碼單元152可產生容錯數量為6位元的錯誤校正碼對應的同位資料,而第二編碼單元154可產生容錯數量為36位元的錯誤校正碼對應的同位資料。關於編碼器150的細節及運作請參見以下第5圖的說明。
第一解碼器160可更包括一第一錯誤偵測單元162以及一第一錯誤校正單元164。第一錯誤偵測單元162可於資料讀取操作時,對輸入資料進行一錯誤偵測操作,產生一偵錯結果,其中偵錯結果係用以表示輸入資料是否有錯誤。第一錯誤校正單元164係耦接至第一錯誤偵測單元162,用以於偵錯結果表示輸入資料有錯誤時,執行第一錯誤校正操作並產生相應之解碼結果至仲裁模組120。關於第一解碼器160的細節及運作請參見以下第6圖的說明。
類似地,第二校正模組130係耦接於仲裁模組120,其中第二校正模組130係於接收到來自仲裁模組120的一啟動訊號才啟動,當被啟動時,第二校正模組130可用以執行第二錯誤校正操作。仲裁模組120係於偵測到第一校正模組110所產生的解碼結果表示解碼失敗時產生此啟動訊號,以啟動第二校正模組130執行第二錯誤校正操作。第二校正模組130可更包括一第二解碼器170,其可更包括一第二錯誤偵測單元172以及一第二錯誤校正單元174。第二錯誤偵測單元172可於資料讀取操作時,對輸入資料進行一錯誤偵測操作,產生一偵錯結果,其中偵錯結果係用以表示輸入資料是否有錯誤。第二錯誤校正單元174係耦接至第二錯誤偵測單元172,用以執行第二錯誤校正操作以進行錯誤校正。舉例來說,而第二校正模組130係以一容錯數量為36位元之錯誤校正碼進行錯誤校正,因此,第二錯誤校正單元174係使用此容錯數量為36位元之錯誤校正碼來進行第二錯誤校正操作以自動檢查並校正36個位元以下的錯誤。由於第二校正模組130只會在第一校正模組110解碼失敗時才會啟動,說明此前第一校正模組110已經偵測到輸入資料的確有錯誤發生,因此在本發明另一實施例中,第二校正模組130可以省略第二錯誤偵測單元172,當第一校正模組110所產生的解碼結果表示解碼失敗時,直接由第二錯誤校正單元174進行錯誤校正。第二錯誤校正單元174的校正對象可以是原始的輸入資料,也可以是經由第一錯誤校正單元164校正後的資料。
儲存單元140耦接至第一校正模組110,第二校正模組130及記憶體模組200,儲存單元140接收并儲存自記憶體單元210讀取的輸入資料,供第一校正模組110與第二校正模組130讀取以進行錯誤校正;儲存單元140更接收并儲存第一校正模組110在解碼成功時輸出的校正后資料,或第一校正模組110在解碼失敗時第二校正模組130輸出的校正后資料,以供主機(未繪示)讀取。儲存單元140在本發明一實施例中,儲存單元140進一步包括訊息資料儲存單元141,冗餘資料儲存單元142,以及同位資料(parity data)儲存單元143,分別用以儲存訊息資料,冗餘資料以及同位資料。其中同位資料儲存單元143儲存的同位資料包括應於第一方法以及第二方法的一第一同位資料(parity data)以及一第二同位資料。在本發明一實施例中,儲存單元140可以以一靜態隨機存取存儲器(SRAM)實現。
第2圖係根據本發明一實施例所述之記憶體模組之錯誤檢查與校正方法。依據本發明之記憶體模組之錯誤檢查與校正方法可適用於第1圖所示的記憶體模組之錯誤檢查與校正100上,用以對記憶體模組200的記憶體單元210進行自動錯誤檢查與校正操作。於本實施例中,記憶體模組200中至少包括一記憶體單元210且記憶體單元210係為一顆快閃記憶體晶片。
首先,如步驟S202,第一校正模組110透過第一解碼器160接收來自記憶體單元210的一輸入資料。接著,如步驟S204,透過一第一校正模組110對輸入資料執行一第一錯誤校正操作,並產生一解碼結果,其中解碼結果係用以表示是否解碼失敗。具體來說,第一校正模組110內之第一解碼器160透過一第一錯誤偵測單元162對輸入資料進行一錯誤偵測操作,產生一偵錯結果。其中,偵錯結果係用以表示此輸入資料是否有錯誤。若否,則流程結束。若是,第一解碼器160執行一第一錯誤校正操作。舉例而言,第一校正模組110係以一第一容錯數量例如容錯數量為6位元之錯誤校正碼進行錯誤校正。當第一校正模組110利用第一容錯數量之錯誤校正碼對輸入資料執行第一錯誤校正操作時,若可自動校正所有的錯誤,解碼結果將表示解碼成功,而若無法自動校正所有的錯誤時,解碼結果將表示解碼失敗。
接著,如步驟S206,仲裁模組120將依據解碼結果,決定是否透過第二校正模組130對輸入資料執行一第二錯誤校正操作。其中,第二校正模組130係以一第二容錯數量之錯誤校正碼進行錯誤校正且第二容錯數量大於第一校正模組110所使用的第一容錯數量,例如:第一容錯數量為6位元,第二容錯數量為36/60位元。當解碼結果表示解碼成功時(步驟S206的否),表示所有錯誤均已被第一校正模組110自動校正,因此無需啟動第二層的第二校正模組130,仲裁模組120決定不啟動第二校正模組130。也就是說,仲裁模組120於解碼結果表示解碼成功時,不會透過第二校正模組130執行第二錯誤校正操作。反之,當解碼結果表示解碼失敗時(步驟S206的是),表示有些錯誤無法被第一校正模組110自動校正,仲裁模組120將啟動第二校正模組130,以透過第二校正模組130對輸入資料執行第二錯誤校正操作(步驟S208)。
由於目前記憶體模組中發生較少位元以下的錯誤的情形約佔了所有可能錯誤概率的90%以上,因此本發明之第一層錯誤校正所執行的第一錯誤校正操作可花很少時間來進行錯誤校正,可以解決大約所有的錯誤。即便少數的較多位元的錯誤的情形發生時,也可透過本發明之第二層錯誤校正所執行的第二錯誤校正操作來更正所有的錯誤,更能確保資料的正確性。
於一些實施例中,當記憶體模組200的多個記憶體單元210的解碼結果均表示解碼失敗時,仲裁模組120可更進一步決定這些解碼失敗的記憶體單元210的第二錯誤校正操作的執行順序。假設同時有多個記憶體單元210都解碼失敗時,仲裁單元120會以一既定仲裁規則例如輪詢仲裁(Round-Robin arbitration)的方式來服務這些解碼失敗的記憶體單元210。舉例來說,仲裁單元120會依序從記憶體單元0至記憶體單元7進行輪詢來決定。於一些實施例中,每個記憶體單元可包括一個優先權,優先權愈高者將優先被執行,且已服務過的優先權將變為最低,而次一個順位的記憶體單元的優先權將變為最高,以便於下次進行服務。舉例來說,若記憶體單元0與記憶體單元1同時需要啟動第二層錯誤校正時,因輪詢順序為先詢問記憶體單元0接著才詢問記憶體單元1,因此記憶體單元0將會優先執行第二層錯誤校正,且記憶體單元0的優先權將會設為最低,而記憶體單元1的優先權將會設為最高,因此,記憶體單元1將會接著執行。
第3圖顯示依據本發明另一實施例之記憶體模組之錯誤檢查與校正系統之示意圖。如第3圖所示,記憶體模組之錯誤檢查與校正系統100’係用以對記憶體模組200’進行錯誤檢查與校正,其中記憶體模組200’包括多個記憶體單元211-218。於本實施例中,每一記憶體單元211-218係可為一顆快閃記憶體晶片,記憶體模組200’由多顆快閃記憶體晶片構成。記憶體模組之錯誤檢查與校正系統100’至少包括多個第一校正模組110、一仲裁模組120、以及一第二校正模組130,其中每個第一校正模組110耦接至記憶體模組的記憶體單元211-218中的其中一個對應記憶體單元且用以接收/讀取其對應記憶體單元的一輸入資料並對此輸入資料執行一第一錯誤校正操作產生一解碼結果。其中第一校正模組110係以一第一容錯數量例如容錯數量為6位元之錯誤校正碼進行錯誤校正。類似地,當第一校正模組110利用第一容錯數量之錯誤校正碼對輸入資料執行第一錯誤校正操作時,若可自動校正所有的錯誤(亦即:錯誤的位元長度低於第一容錯數量),解碼結果將表示解碼成功,而若無法自動校正所有的錯誤時,解碼結果將表示解碼失敗。
每個記憶體單元211-218對應的第一校正模組110的解碼結果均會被送至仲裁模組120進行仲裁。仲裁模組120係耦接於所有第一校正模組110以及第二校正模組130之間,其中,仲裁模組120係依據所有第一校正模組110產生的解碼結果決定是否啟動或關閉第二校正模組130。當所有解碼結果均表示解碼成功時,表示所有錯誤都已自動校正,無須啟動第二層錯誤校正,仲裁模組120便關閉第二校正模組130。當解碼結果的任一者表示解碼失敗時,表示仍有一些錯誤無法自動校正,仲裁模組120便啟動第二校正模組130。舉例來說,假設有八個記憶體單元共同耦接至仲裁單元120時,只要八個記憶體單元中的任一個的第一錯誤校正檢查的解碼結果表示解碼失敗時,便會啟動第二層錯誤校正。第二校正模組130用以於被仲裁模組120啟動時執行一第二錯誤校正操作。其中,第二校正模組130係以一第二容錯數量之錯誤校正碼進行第二錯誤校正操作且第二容錯數量大於第一容錯數量。舉例來說,於一實施例中,第一校正模組110係以一容錯數量為6位元之錯誤校正碼進行第一錯誤校正操作,因此第一錯誤校正操作最多可糾正1024位元組中發生的6位元的錯誤,而第二校正模組130係以一容錯數量為36/60位元之錯誤校正碼進行第二錯誤校正操作第二層錯誤校正,因此第二錯誤校正操作最多可糾正1024位元組中的36/60位元的錯誤。
舉例來說,於一實施例中,當第一記憶體單元(例如:記憶體單元211)的解碼結果以及第二記憶體單元(例如:記憶體單元212)的解碼結果均表示解碼失敗時,仲裁模組120可依照一既定輪詢順序以一輪詢方式依序利用第二校正模組130對第一記憶體單元以及第二記憶體單元執行第二錯誤校正操作。於另一實施例中,第一記憶體單元以及第二記憶體單元可分別包括一優先權資料,並且第一記憶體單元以及第二記憶體單元係依據該等優先權依序執行該第二錯誤校正操作。仲裁模組120可依照每個記憶體單元210對應的優先權資料由高到低依序利用第二校正模組130對對應的記憶體單元執行第二錯誤校正操作。
於一些實施例中,由於一般情形只會發生較少位元(例如:4位元)以下的錯誤,所以第二層錯誤校正很少會啟用,因此可配置專門的暫存器以供使用者根據實際需求來選擇只允許啟用第一層錯誤校正而不允許啟動第二層錯誤校正以進一步節省電力,或者兩層錯誤校正都允許啟用(前述實施方式即兩層錯誤校正均允許啟用的情形)。於一些實施例中,可進一步提供一種以上的不同錯誤校正能力的第三錯誤校正單元,再依據實際需求,透過專門的暫存器來設定僅啟用第一層錯誤校正、僅啟用第二層錯誤校正的第二錯誤校正單元或第三錯誤校正單元或同時啟用第一層錯誤校正以及第二層錯誤校正以進一步增加其錯誤校正能力。
此外,因為本案有可能用到兩層錯誤校正,因此於執行資料寫入操作時,第一校正模組110中的編碼器150必須同時產生對應兩層錯誤校正的同位資料。編碼器150可接收一欲寫入資料,並利用編碼器150中的第一編碼單元152以及第二編碼單元154分別產生一第一同位資料以及一第二同位資料,再依據欲寫入資料、第一同位資料以及第二同位資料,產生一已編碼資料(encoded data),最後再將所產生的已編碼資料寫入至對應的記憶體單元。舉例來說,主機(未繪示)欲寫入的資料會暫存至一動態隨機存取存儲器DRAM(未繪示)中,從DRAM所讀出的1024位元組的訊息資料將儲存在記憶體單元例如NAND型快閃記憶體的資料區域(data area),同位資料將儲存在記憶體單元的備份區域(spare area)以供後續資料讀出操作時使用。第4圖為依據本發明一實施例之已編碼資料示意圖。如第4圖所示,已編碼資料400至少包括三個部分,亦即原始訊息資料、第一同位資料以及第二同位資料,其中,第一同位資料以及第二同位資料的資料長度係取決於所使用的錯誤校正碼的容錯數量。於一些實施例中,原始訊息資料也可更包含對應於錯誤校正的冗餘資訊。在本發明一實施例中,錯誤校正碼的編碼方法以BCH碼(Bose-Chaudhuri-Hocquenham,BCH)為例,錯誤校正碼的長度是根據容錯數量在伽羅瓦域(Galois Feild)GF(2m )中決定,例如,當m=14,則1024位元組的原始訊信息資料(message data)需要11位元組的同位資料(parity data),以自動檢查並校正6個位元以下的錯誤。再舉例而言,如果原始訊息資料包括冗餘資料,該冗餘資料可以是對錯誤校正來說的一些冗餘信息,則1024位元組的原始訊信息資料(message data)+16位元組的冗餘資料(redundant data)需要11位元組的同位資料(parity data),則上述錯誤校正碼的容錯數量也是6位元。再舉例而言,如果錯誤校正碼的容錯數量也是36位元,則1024位元組的原始訊信息資料(message data)需要63位元組的同位資料(parity data);如果錯誤校正碼的容錯數量也是60位元,則1024位元組的原始訊信息資料(message data)需要105位元組的同位資料(parity data)。在一實施例中,第一同位資料以及第二同位資料均儲存於儲存單元140的同位資料儲存單元143中。
以下列舉一些實施例,用以輔助說明依據本發明之錯誤校正碼編碼器與錯誤校正碼解碼器細節,但本發明並不限於此。於以下實施例中係以錯誤校正碼為BCH碼(Bose-Chaudhuri-Hocquenham,BCH)為例進行說明,但本發明並不限於此。舉例來說,錯誤校正碼之編碼演算法包括漢明碼(Hamming code)、里德所羅門碼(Reed-Solomon code)、里德米勒碼(Reed-Muller code)、二次元格雷碼(Binary Golay code)、迴旋碼(convolutional code)、及渦輪碼(turbo code)等等,均適用於本發明。
第5圖為依據本發明一實施例之錯誤校正碼編碼器500的區塊圖。於本實施例中,錯誤校正碼編碼器500包括一第一編碼單元502以及一第二編碼單元504。其中,錯誤校正碼編碼器500可為第1圖中的編碼器150,其中,第一編碼單元502對應第一編碼單元152,第二編碼單元504對應第二編碼單元154。如前述,於執行資料寫入操作時,錯誤校正碼編碼器500必須同時產生對應兩層錯誤校正的同位資料。如第5圖所示,於執行資料寫入操作時,DMA控制器(DMA controller)首先從DRAM(未繪示)中取出一原始訊息資料,之後,取出的原始訊息資料先儲存於儲存單元(該儲存單元可以是對應於第1圖中的儲存單元140,也可以是其它儲存單元)中並送至錯誤校正碼編碼器500中的第一編碼單元502與第二編碼單元504中分別算出對應於容錯數量為6位元錯誤校正碼與容錯數量為36位元錯誤校正碼的第一同位資料以及第二同位資料,再將算出的兩個同位資料連同存入儲存單元的原始訊息資料透過記憶體控制器例如進階型快閃記憶體控制器(Advanced Nand Flash Controller)寫入特定的記憶體單元。於一些實施例中,錯誤校正碼編碼器500也可依據欲寫入的原始訊息資料、第一同位資料以及第二同位資料,產生一已編碼資料(如第4圖所示),之後再將所產生的已編碼資料寫入至對應的記憶體單元。
第6圖為依據本發明一實施例之錯誤校正碼解碼器600的區塊圖。於本實施例中,錯誤校正碼解碼器600包括症狀碼(syndrome)計算單元602(SCBlock)、錯誤多項式計算單元604(KES)、秦式搜尋單元606(CSEE)、以及控制電路608(Main Control)。其中,錯誤校正碼解碼器600可為第1圖中的第一解碼器160或第二解碼器170。舉例來說,若錯誤校正碼解碼器600為第1圖中的第一解碼器160時,症狀碼計算單元602對應於第一錯誤偵測單元162,而錯誤多項式計算單元604、秦式搜尋單元606、以及控制電路608對應於第一錯誤校正單元164。
於將資料從記憶體單元取出之資料讀取操作中,所取出的為編碼後的錯誤校正碼,因此在資料使用前必須先解碼錯誤校正碼,以還原為原始資料。當錯誤校正碼解碼器600收到錯誤校正碼(例如:BCH碼)時,錯誤校正碼解碼器600自該錯誤校正碼取出其所包含的訊息及同位資料。首先,症狀碼計算單元602依據錯誤校正碼的同位資料計算多個症狀碼S1 ,S2 ,...,SK 。錯誤校正碼解碼器600檢查是否症狀碼S1 ,S2 ,...,SK 皆為零。若症狀碼S1 ,S2 ,...,SK 為零,表示錯誤校正碼沒有發生錯誤,因此不需進一步的校正。反之,若症狀碼S1 ,S2 ,...,SK 有其中之一不為零,表示錯誤校正碼有錯誤發生,因此必須對錯誤校正碼進行校正。於是,症狀碼計算單元602產生一表示有錯誤發生的偵測結果ECC_ERR至錯誤多項式計算單元604,使其開始執行一錯誤校正操作。接著,錯誤多項式計算單元604依據所計算出之症狀碼S1,S2,...,SK計算出一錯誤多項式(error location polynomial)的多個係數,並判斷該錯誤多項式之根個數,例如錯誤多項式之係數不為0的最高次冪為多少次冪,則錯誤多項式計算單元604會判斷該錯誤位置多項式具有多少個根。秦式搜尋單元606用以進行一秦式搜尋(Chien search)找出該錯誤多項式之多個根,以確定錯誤發生的位元位置,以供進行錯誤校正。由於錯誤多項式之根指示錯誤校正碼中發生錯誤的位元之位置,因此錯誤校正碼解碼器600之控制電路608便可依據錯誤多項式之根校正錯誤校正碼,例如,校正即是對發生錯誤的位元取反,從而得到一校正後資料。控制電路608將持續檢查症狀碼S1,S2,...,SK是否為零,並於該等症狀碼S1,S2,...,SK皆為零時停止錯誤多項式計算單元604對錯誤多項式之係數的計算,並停止秦式搜尋單元606對錯誤多項式之根的搜尋。
假設錯誤校正碼解碼器600係為第一校正模組110中的第一解碼器160時,可進一步於執行前述錯誤校正操作之後,依據秦式搜尋單元606所找出的錯誤多項式之根的數目是否等於錯誤多項式計算單元604所確定的錯誤多項式之根的數目來判斷解碼是否成功。若秦式搜尋單元606所找出的錯誤多項式之根的數目等於錯誤多項式計算單元604所確定的根的數目,則表示校正成功。反之,若不相等,表示校正失敗,因此便產生一解碼結果decode_fail至仲裁模組120,表示第一層的錯誤校正操作校正失敗。仲裁模組120接收到此解碼結果decode_fail表示第一層的錯誤校正操作校正失敗之後,便啟動第二錯誤校正碼解碼器130來進行第二層的錯誤校正操作。在某些實際應用中,為了提高校正精度,即便秦式搜尋單元606所找出的錯誤多項式之根的數目等於錯誤多項式計算單元604所確定的根的數目,即不產生decode_fail訊號時,也不能確定校正一定成功,在本發明另一實施例中,當錯誤校正碼解碼器600係為第一解碼器160時,錯誤校正碼解碼器600進一步包括一第二錯誤偵測單元610,耦接第一錯誤校正單元164(包括第6圖之錯誤多項式計算單元604、秦式搜尋單元606、以及控制電路608),其對第一錯誤校正單元164輸出的校正後資料再進行一第二錯誤偵測操作,產生該解碼結果,其中該解碼結果係用以表示第一錯誤校正單元164輸出的校正後資料是否有錯誤。若無錯誤,則表示校正成功,則控制電路608將校正後資料儲存至儲存單元140以供主機host(未繪示)讀取。若有錯誤,則表示校正失敗,第二錯誤偵測單元610將該解碼結果至仲裁模組120,表示第一層的錯誤校正操作校正失敗。在本實施例中,第二錯誤偵測單元610是對第一錯誤校正單元164輸出的校正後資料進行偵錯,而非對原始的輸入資料進行偵錯,此外,其是將第二錯誤偵測單元610的偵錯結果作為解碼結果送至仲裁模組120,並非將decode_fail信號作為解碼結果送至仲裁模組120。
綜上所述,依據本發明之記憶體模組之錯誤檢查及校正系統提供兩層錯誤校正結構,兩層錯誤校正各自具有不同的資料容錯能力(例如:第一層錯誤校正最多可糾正1K位元組中發生的6位元的錯誤,而第二層錯誤校正最多可糾正1K位元組中的36/60位元的錯誤),其中記憶體模組中每個記憶體單元有自己的具有較小容錯數量之第一層錯誤校正,而多個記憶體單元共用一個具有較大容錯數量的第二層錯誤校正,可在保持系統效能的要求下有效減少硬體成本。此外,本發明之仲裁模組可依據共用的各個記憶體單元的第一層錯誤校正錯誤操作校正是否出錯來選擇性啟動第二層錯誤校正,由於發生較小位元的錯誤的機率佔大多數,且只有在發現第一層錯誤校正操作校正出錯時才會啟動第二層錯誤校正,因此可提供更佳的錯誤校正效能。再者,依據本發明之記憶體模組之錯誤校正系統可透過一配置暫存器來選擇開啟/關閉第二層錯誤校正功能,提高使用上的彈性應用。
本發明之方法,或特定型態或其部份,可以以程式碼的型態包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。本發明之方法與裝置也可以以程式碼型態透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理器實作時,程式碼結合處理器提供一操作類似於應用特定邏輯電路之獨特裝置。
本發明雖以各種實施例揭露如上,然而其僅為範例參考而非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾。因此上述實施例並非用以限定本發明之範圍,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100、100’...記憶體模組之錯誤檢查與校正系統
110...第一校正模組
120...仲裁模組
130...第二校正模組
140...儲存單元
141...訊息資料儲存單元
142...冗餘資料儲存單元
143...同位資料儲存單元
150...編碼器
152...第一編碼單元
154...第二編碼單元
160...第一解碼器
162...第一錯誤偵測單元
164...第一錯誤校正單元
170...第二解碼器
172...第二錯誤偵測單元
174...第二錯誤校正單元
200、200’...記憶體模組
210、211-218...記憶體單元
S202-S212...步驟
400...已編碼資料
500...錯誤校正碼編碼器
502...第一編碼單元
504...第二編碼單元
600...錯誤校正碼解碼器
602...症狀碼計算單元
604...錯誤多項式計算單元
606...秦式搜尋單元
608...控制電路
610...第二錯誤偵測單元
第1圖顯示依據本發明實施例之記憶體模組之錯誤檢查與校正(ECC)系統之示意圖。
第2圖係根據本發明一實施例所述之記憶體模組之錯誤檢查與校正方法。
第3圖顯示依據本發明另一實施例之記憶體模組之錯誤檢查與校正系統之示意圖。
第4圖為依據本發明一實施例之已編碼資料示意圖。
第5圖為依據本發明一實施例之錯誤校正碼編碼器的區塊圖。
第6圖為依據本發明一實施例之錯誤校正碼解碼器的區塊圖。
100...記憶體模組之錯誤檢查與校正系統
110...第一校正模組
120...仲裁模組
130...第二校正模組
140...儲存單元
141...訊息資料儲存單元
142...冗餘資料儲存單元
143...同位資料儲存單元
150...編碼器
152...第一編碼單元
154...第二編碼單元
160...第一解碼器
162...第一錯誤偵測單元
164...第一錯誤校正單元
170...第二解碼器
172...第二錯誤偵測單元
174...第二錯誤校正單元
200...記憶體模組
210...記憶體單元

Claims (18)

  1. 一種記憶體模組之錯誤檢查與校正(Error Checking and Correcting,ECC)方法,該記憶體模組包括複數記憶體單元,其中該等記憶體單元對應耦接至複數第一校正模組,該方法包括下列步驟:接收來自每一該等記憶體單元之一輸入資料;透過對應之每一該等第一校正模組對該輸入資料執行一第一錯誤校正操作,並分別產生一解碼結果,其中該解碼結果係用以表示是否解碼失敗;以及當該等第一校正模組中的任一者的該解碼結果表示解碼失敗時,啟動一第二校正模組對該輸入資料執行一第二錯誤校正操作,其中該第一校正模組以及該第二校正模組係分別採用一第一方法以及一第二方法且該第一方法係以一第一容錯數量之錯誤校正碼進行錯誤校正,該第二方法係以一第二容錯數量之錯誤校正碼進行錯誤校正,且該第二容錯數量大於該第一容錯數量。
  2. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,更包括下列步驟:透過一錯誤偵測單元對該輸入資料進行一錯誤偵測操作,產生一偵錯結果,其中該偵錯結果係用以表示該輸入資料是否有錯誤;以及於該偵錯結果表示該輸入資料有錯誤時,透過該第一校正模組對該輸入資料執行該第一錯誤校正操作。
  3. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,更包括:當每一該等第一校正模組的該解碼結果均表示解碼成功時,不啟動該第二校正模組執行該第二錯誤校正操作。
  4. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,其中該等記憶體單元包括一第一記憶體單元以及一第二記憶體單元,當該第一記憶體單元之該解碼結果以及該第二記憶體單元之該解碼結果均表示解碼失敗時,該第一記憶體單元以及該第二記憶體單元係以一輪詢方式依序透過該第二校正模組執行該第二錯誤校正操作。
  5. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,其中該等記憶體單元包括一第一記憶體單元以及一第二記憶體單元以及該第一記憶體單元以及該第二記憶體單元分別包括一優先權,並且該第一記憶體單元以及該第二記憶體單元係依據該等優先權依序透過該第二校正模組執行該第二錯誤校正操作。
  6. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,更包括:接收欲寫入至該記憶體單元之一資料;分別透過一第一編碼法以及一第二編碼法,依據該資料產生相應對應於該第一方法以及該第二方法之一第一同位資料(parity data)以及一第二同位資料;依據該資料、該第一同位資料以及該第二同位資料,產生一編碼資料;以及 將該編碼資料寫入至該記憶體單元。
  7. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,更包括:提供一暫存器,用以設定是否允許啟動該第二校正模組執行該第二錯誤校正操作。
  8. 如申請專利範圍第1項所述之記憶體模組之錯誤檢查與校正方法,其中該記憶體單元係為一快閃記憶體晶片。
  9. 一種記憶體模組之錯誤檢查與校正(ECC)系統,其中該記憶體模組包括複數記憶體單元,包括:複數第一校正模組對應耦接至該等記憶體單元,每一該等第一校正模組對應該等記憶體單元之其中一者且用以接收該對應記憶體單元之一輸入資料並對該輸入資料執行一第一錯誤校正操作,並產生一解碼結果;一第二校正模組,用以於被啟動時執行一第二錯誤校正操作,其中該第一校正模組係以一第一容錯數量之錯誤校正碼進行錯誤校正,該第二校正模組係以一第二容錯數量之錯誤校正碼進行錯誤校正且該第二容錯數量大於該第一容錯數量;以及一仲裁模組,耦接於該等第一校正模組以及該第二校正模組之間,其中該仲裁模組係依據該等第一校正模組產生之該等解碼結果決定是否啟動該第二校正模組,其中該仲裁模組係於該等解碼結果之任一者表示解碼失敗時,啟動該第二校正模組以對該輸入資料執行該第二錯誤校正操作。
  10. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,其中該第一校正模組更包括:一第一錯誤偵測單元,用以於一資料讀取操作時,對該輸入資料進行一第一錯誤偵測操作,產生一第一偵錯結果,其中該第一偵錯結果係用以表示該輸入資料是否有錯誤;以及一第一錯誤校正單元,耦接至該第一錯誤偵測單元,用以於該第一偵錯結果表示該輸入資料有錯誤時,執行該第一錯誤校正操作,並產生該解碼結果至該仲裁器。
  11. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,其中該第一校正模組更包括:一第一錯誤偵測單元,用以於一資料讀取操作時,對該輸入資料進行一第一錯誤偵測操作,產生一偵錯結果,其中該偵錯結果係用以表示該輸入資料是否有錯誤;以及一第一錯誤校正單元,耦接至該第一錯誤偵測單元,用以於該偵錯結果表示該輸入資料有錯誤時,執行該第一錯誤校正操作,并輸出一校正後資料;以及一第二錯誤偵測單元,耦接至該第一錯誤校正單元,對該校正後資料再進行一第二錯誤偵測操作,產生該解碼結果至該仲裁器。
  12. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,其中該第一校正模組更包括:一編碼器,其具有一第一編碼單元及一第二編碼單元,用以於一資料寫入操作時,接收欲寫入至一記憶體單 元之一資料,其中該第一編碼單元以及該第二編碼單元依據該資料分別產生相應對應於該第一容錯數量之錯誤校正碼以及該第二容錯數量之錯誤校正碼之一第一同位資料以及一第二同位資料,該編碼器依據該資料、該第一同位資料以及該第二同位資料,產生一已編碼資料,並將該已編碼資料寫入至該記憶體單元。
  13. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,其中該第二校正模組更包括:一第二錯誤校正單元,用以於該等解碼結果之任一者表示解碼失敗時時,執行該第二錯誤校正操作。
  14. 如申請專利範圍第13項所述之記憶體模組之錯誤檢查與校正系統,其中該第二校正模組更包括:一第二錯誤偵測單元,耦接至該第二錯誤校正單元,用以於一資料讀取操作時,對該輸入資料進行一第二錯誤偵測操作,產生一第二偵錯結果,其中該第二偵錯結果係用以表示該輸入資料是否有錯誤。
  15. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,其中該等記憶體單元至少包括一第一記憶體單元以及一第二記憶體單元且當該第一記憶體單元之該解碼結果以及該第二記憶體單元之該解碼結果均表示解碼失敗時,該仲裁器係以一輪詢方式依序對該第一記憶體單元以及該第二記憶體單元執行該第二錯誤校正操作。
  16. 如申請專利範圍第15項所述之記憶體模組之錯誤檢查與校正系統,其中該第一記憶體單元以及該第二記憶 體單元分別包括一優先權,並且該仲裁器係依據該等優先權依序對該第一記憶體單元以及該第二記憶體單元執行該第二錯誤校正操作。
  17. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,更包括一暫存器,用以設定是否允許啟動該第二校正模組執行該第二錯誤校正操作。
  18. 如申請專利範圍第9項所述之記憶體模組之錯誤檢查與校正系統,其中該等記憶體單元分別係為一快閃記憶體晶片,該記憶體模組由複數快閃記憶體晶片構成。
TW101104850A 2012-01-06 2012-02-15 記憶體模組之錯誤檢查與校正系統以及方法 TWI465897B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210003924.8A CN102567134B (zh) 2012-01-06 2012-01-06 存储器模块的错误检查与校正系统以及方法

Publications (2)

Publication Number Publication Date
TW201329697A TW201329697A (zh) 2013-07-16
TWI465897B true TWI465897B (zh) 2014-12-21

Family

ID=46412617

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101104850A TWI465897B (zh) 2012-01-06 2012-02-15 記憶體模組之錯誤檢查與校正系統以及方法

Country Status (3)

Country Link
US (1) US9037941B2 (zh)
CN (1) CN102567134B (zh)
TW (1) TWI465897B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990655B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Techniques associated with error correction for encoded data
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
KR20140099689A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 불휘발성 메모리 셀 어레이를 포함하는 반도체 메모리 장치
US8898549B2 (en) * 2013-02-12 2014-11-25 Seagate Technology Llc Statistical adaptive error correction for a flash memory
CN104035832B (zh) * 2013-03-04 2018-07-03 联想(北京)有限公司 电子设备和数据校验方法
KR20150006616A (ko) * 2013-07-09 2015-01-19 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작 방법
JP2015022516A (ja) * 2013-07-19 2015-02-02 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
US9690640B2 (en) 2013-09-26 2017-06-27 Intel Corporation Recovery from multiple data errors
KR101767018B1 (ko) * 2013-09-27 2017-08-09 인텔 코포레이션 비휘발성 메모리에서의 오류 정정
KR102035986B1 (ko) 2013-11-13 2019-10-24 삼성전자 주식회사 타이밍 컨트롤러와 상기 타이밍 컨트롤러를 포함하는 디스플레이 시스템
KR102149674B1 (ko) * 2014-10-13 2020-09-01 삼성전자주식회사 에러 정정 디코더 및 에러 정정 디코더의 동작 방법
US9519442B2 (en) * 2014-10-27 2016-12-13 Aeroflex Colorado Springs Inc. Method for concurrent system management and error detection and correction requests in integrated circuits through location aware avoidance logic
TWI548212B (zh) * 2014-12-16 2016-09-01 原相科技股份有限公司 電路校正方法以及電路校正系統
US10084481B2 (en) 2014-12-18 2018-09-25 Apple Inc. GLDPC soft decoding with hard decision inputs
CN104794015B (zh) * 2015-04-16 2017-08-18 华中科技大学 一种实时流计算流速感知弹性执行容错系统
TWI566091B (zh) 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
US10382064B2 (en) * 2015-10-13 2019-08-13 SK Hynix Inc. Efficient LDPC encoder for irregular code
CN106856569B (zh) * 2015-12-09 2020-04-14 扬智科技股份有限公司 解码器、接收装置及其解码方法
CN106681856B (zh) * 2016-08-23 2020-03-17 合肥兆芯电子有限公司 解码方法、存储器存储装置及存储器控制电路单元
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
KR20190014744A (ko) * 2017-08-03 2019-02-13 에스케이하이닉스 주식회사 에러 정정 회로 및 이를 포함하는 메모리 시스템
US10707899B2 (en) * 2017-08-31 2020-07-07 SK Hynix Inc. Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
US10908995B2 (en) 2017-09-29 2021-02-02 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system
DE102018123761A1 (de) * 2017-09-29 2019-04-04 Nvidia Corporation Sicherung gegen fehler in einem fehlerkorrekturcode (ecc), der in einem kraftfahrzeugsystem implementiert ist
CN109656509B (zh) * 2017-10-11 2022-05-24 深圳市奥拓电子股份有限公司 一种模组校正数据的校验方法、终端设备及存储介质
KR102449346B1 (ko) * 2017-12-12 2022-10-04 삼성전자주식회사 메모리 장치의 내부 상태에 따라 메모리 컨트롤러의 동작을 가변하는 메모리 시스템
US10848182B2 (en) * 2018-09-13 2020-11-24 Apple Inc. Iterative decoding with early termination criterion that permits errors in redundancy part
TWI671750B (zh) * 2018-11-28 2019-09-11 華邦電子股份有限公司 記憶體的控制方法及非暫態電腦可讀媒體
US11005501B2 (en) * 2019-02-19 2021-05-11 Micron Technology, Inc. Error correction on a memory device
CN112084071B (zh) * 2020-09-14 2023-09-19 海光信息技术股份有限公司 一种计算单元运算加固方法、并行处理器及电子设备
KR20220045343A (ko) * 2020-10-05 2022-04-12 에스케이하이닉스 주식회사 데이터 처리 시스템 내 데이터 전송에서 발생한 에러를 정정하는 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434141B1 (en) * 2004-06-28 2008-10-07 Hewlett-Packard Development Company, L.P. Network-based memory error decoding system and method
US20110161736A1 (en) * 2009-12-28 2011-06-30 Ryuji Orita Debugging module to load error decoding logic from firmware and to execute logic in response to an error
US20110197109A1 (en) * 2007-08-31 2011-08-11 Shinichi Kanno Semiconductor memory device and method of controlling the same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09116442A (ja) * 1995-10-23 1997-05-02 Mitsubishi Electric Corp 積符号の誤り訂正復号装置及び積符号の誤り訂正復号方法
JPH11175410A (ja) * 1997-12-15 1999-07-02 Nec Ic Microcomput Syst Ltd 誤り訂正機能内蔵prom及びこれを内蔵したマイクロコンピュータ
US7206993B2 (en) * 2003-03-12 2007-04-17 Matsushita Electric Industrial Co., Ltd. Method and device for decoding Reed-Solomon code or extended Reed-Solomon code
US7673222B2 (en) * 2005-07-15 2010-03-02 Mediatek Incorporation Error-correcting apparatus including multiple error-correcting modules functioning in parallel and related method
US7227797B2 (en) * 2005-08-30 2007-06-05 Hewlett-Packard Development Company, L.P. Hierarchical memory correction system and method
KR101526317B1 (ko) * 2008-05-09 2015-06-11 삼성전자주식회사 계층적 디코딩 장치
KR101543245B1 (ko) * 2009-03-18 2015-08-11 삼성전자주식회사 에러 교정 장치와 이를 포함하는 메모리 장치와 데이터 처리 시스템
US8499226B2 (en) * 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8627175B2 (en) * 2010-09-27 2014-01-07 Seagate Technology Llc Opportunistic decoding in memory systems
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
US8719677B2 (en) * 2011-12-22 2014-05-06 Sandisk Technologies Inc. Using ECC encoding to verify an ECC decode operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434141B1 (en) * 2004-06-28 2008-10-07 Hewlett-Packard Development Company, L.P. Network-based memory error decoding system and method
US20110197109A1 (en) * 2007-08-31 2011-08-11 Shinichi Kanno Semiconductor memory device and method of controlling the same
US20110161736A1 (en) * 2009-12-28 2011-06-30 Ryuji Orita Debugging module to load error decoding logic from firmware and to execute logic in response to an error

Also Published As

Publication number Publication date
CN102567134A (zh) 2012-07-11
CN102567134B (zh) 2015-01-07
US20130179748A1 (en) 2013-07-11
TW201329697A (zh) 2013-07-16
US9037941B2 (en) 2015-05-19

Similar Documents

Publication Publication Date Title
TWI465897B (zh) 記憶體模組之錯誤檢查與校正系統以及方法
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
US8707122B1 (en) Nonvolatile memory controller with two-stage error correction technique for enhanced reliability
US10467091B2 (en) Memory module, memory system including the same, and error correcting method thereof
US8812935B2 (en) Using a data ECC to detect address corruption
US9128868B2 (en) System for error decoding with retries and associated methods
US8566682B2 (en) Failing bus lane detection using syndrome analysis
US8181094B2 (en) System to improve error correction using variable latency and associated methods
US9191030B2 (en) Memory controller, data storage device, and memory controlling method
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
US9690649B2 (en) Memory device error history bit
TW202105182A (zh) 記憶體系統及記憶體系統的寫入方法
US11726665B1 (en) Memory extension with error correction
WO2016122515A1 (en) Erasure multi-checksum error correction code
CN112346903B (zh) 用于执行内建式自我测试的独立磁盘冗余数组译码系统
US8683308B2 (en) Semiconductor device, information processing apparatus, and method of detecting error
TWI789453B (zh) 記憶體和操作該記憶體的方法
US11809272B2 (en) Error correction code offload for a serially-attached memory device
US11962327B2 (en) Iterative decoding technique for correcting DRAM device failures
WO2023197935A1 (zh) 存储数据的方法、读取数据的方法和相关设备