TW201007748A - Method and apparatus for error correction - Google Patents
Method and apparatus for error correction Download PDFInfo
- Publication number
- TW201007748A TW201007748A TW098112510A TW98112510A TW201007748A TW 201007748 A TW201007748 A TW 201007748A TW 098112510 A TW098112510 A TW 098112510A TW 98112510 A TW98112510 A TW 98112510A TW 201007748 A TW201007748 A TW 201007748A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- error
- read data
- comparison
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
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
201007748 六、發明說明: 【發明所屬之技術領域】 本發明係關於用於在自記憶體(例如快閃記憶體)讀取之 資料中校正錯誤之裝置、方法及電腦媒體。 【先前技術】 快閃記憶體器件中之錯誤校正 快閃記憶體器件已知多年。除其他特性以外,NAND型 快閃記憶體與其他類型之快閃記憶體(例如,NOR型)之區 別在於可自處於一「翻轉」狀態(即,不同於向記憶體寫 入原始位元之狀態)下之記憶體讀取某一寫入至記憶體之 資訊位元數之事實。 為了克服此現象並使NAND型記憶體可供實際應用使用, 與此等記憶體相結合使用錯誤校正碼(ECC)係一常見技術。 存在一對用於處置快閃記憶體器件中、以及包括不同於 快閃記憶體之記憶體之儲存器件中之錯誤校正之改良技術 及裝置之迫切需要。 對例示性器件架構之說明 圖1A(先前技術)係一快閃記憶體儲存器件260(先前技術) 之一方塊圖。該快閃記憶體儲存器件包括一快閃記憶體 270及一快閃控制器280,快閃控制器280運作以讀取資料 並將資料寫入至快閃記憶體270。術語「程式化(program)」、 「程式化(programming)」、「程式化(programmed)」及「可程 式化(programmable)」在本文中可分別與術語「寫入 (write)」、「寫入(writing)」、「寫入(written)」及「可寫 139476.doc 201007748 (b )」通用,以表不將資料储存於快閃記憶體 快閃記憶體館存器件之一個實例係一「周邊快閃儲存器 件」。周邊快閃健存器件在形體因數方面係計算技術 所周知的’例如USB快閃驅動器⑽D);pc卡;及用於數 ‘ 位相機、音樂播放器 '手持式及掌上型電腦、以及蜂 .^之小型儲存卡。於—些實施形式中,周邊快閃儲存; 件部署於主機器件之機箱内。 。 ❹ 冑1B(先前技術)係一周邊快閃記憶體儲存器件26〇竹 星號指不該快閃記憶體儲存器件係一周邊快閃儲存器们 之一方塊圖’周邊快閃記憶體儲存器件26〇'經由器件側介 面250與-主機器件31〇(例如,一膝上型或桌上型或手持 式電腦、、數位相機、行動電話、音樂播放器及視訊遊戲控 制臺)「連接」或組態用於與該主機器件31〇交換資料。周 邊快閃記憶體儲存器件260*及主機器件31〇使用主機側^ = 350及器件側介面25〇(例如’相應聰或犯介面)經由通 φ 信鏈路300來與彼此通信。 於-實例中’快閃記憶體儲存器件26〇*為主機器件η。 . 提供轉讀取及資料寫人服務。由㈣記憶體儲存器件 , 260*自主機器件31〇所接收之資料由快閃控制器勘寫入至 快閃記憶體270。此外,回應於由快閃記憶體儲存器所接 收之「資料讀取」請求,快閃控制器28()自快閃記憶體27〇 讀取資料。 可在「讀取時刻」或在任一猶後時刻在該讀取資料中校 正錯誤。該錯誤校正可至少部分地由快閃控制器28〇、至 139476.doc 201007748 p刀地由主機器件31G在任—其他位置及以任—其他方 :進仃(例如,藉由由主機側處理器32〇來執行RAM 33〇 之可執行碼或以任一其他方式)。 j習此項技術者應瞭解,「周邊㈣儲存器件」並非係 乂類別之快閃記憶體儲存器件〇舉例而言,某些行動電 ” 1或藤上型電腦、pDA器件或其他電子器件亦可 2括快閃記憶體及-快閃控制器,且可能未必組態用於與 連接及/或為—主機器件提供資料讀取服務及/ 或資料寫入服務。 :習此項技術者應瞭解,圖1A_1B中所描述之快閃記憶 二件僅係-種類別之周邊儲存記憶體器件,且其他記憶 體器件可包括其他類型之 " 平赞『生°己隐體,例如磁性記憶體 (例如,磁阻隨機存取 < 廢 。己隐體(MRAM)或硬磁碟盤)。此 應瞭解’ §亥一些周邊儲存器件可使用揮發性記憶體來 代替或補充快閃記憶體270。 如圖ic(先前技術)中所示,於一些系統中…己憶體 (即,包括但不限於快閃記憶體)可包括一「快取儲存區域 二」及-「主儲存區域274」部分,其中資料首先寫入至 »亥快取儲存區域272」(例如,自一快閃器件控制器28〇 之Ram複製至快閃記憶體之快取健存區域⑺)並隨後自快 取儲存區域272複製至主儲存區域274。 在终多實例中,⑴使用一比一用於主健存區域Μ之寫 入模式「較快之寫人模式」來對快取儲存區域Μ寫入; 及/或⑻錢存^域274切快取儲存區域Μ(即具有一 139476.doc 201007748 更大容量);及/或(iii)儲存至快取儲存區域272之資料儲存 具有一較儲存至主儲存區域274之資料為大之可靠度(即, 在程式化時刻及/或在程式化時刻之後不太易於出現錯 誤)。 曰 於一特定實例中,「快取儲存區域272」包括若干其中
在每一快閃單元中儲存#個資料位元之快閃區塊,其中W 係正整數,且主儲存區域274包括若干其中在每一快閃
早兀中儲存Μ個資料位元之快閃區塊,其中从係一超過#之 正整數。 【發明内容】 各實施例解決此等及相關問題,本文中提供各實施例之 實例’包括方法及系統。 一個實施例係一種用於處置錯誤校正之方法。該方法包 含以下步驟:a)將原始資料寫入至一記憶體;b)在該寫入 之後,自該記憶體讀取,由此產生第一讀取資料;c)將該 第-讀取資料與該原始資料相比較;d)在該比較之後,自 該記憶體讀取,由此產生第二讀取資料,·及〇根據步驟⑷ 之該比較之結果,在該第二讀取資料中校正錯誤。 可對任何揮發性或非揮魏記憶體實㈣前述方法,包 括但不限於快閃記憶體、光學儲存器、磁性記憶體、靜態 隨機存取記憶體(SRAM)及動態隨機存取記憶體(dram)。 於-些實施例中’步驟⑷之該比較可包括實施至少一個 選自由以下組成之群組之比較:i)該第一讀取資料與該原 始資料之間的一直接比較;Η)該第一讀取資料與該原始資 I39476.doc 201007748 料之-指不性非恒等函數之間的―直接比較;出)該第一 讀取資料之—⑸性非恒等函數與該原始資料之間的一直 接比較;及iv)該第-讀取㈣之—指示性非恒等函數與該 原始資料之—指㈣非恒等函數之間的-直接比較。 於一些實施例中,步驟(b)之該讀取可回應於步驟之 該寫入之一完成而進行。 步驟(b)之該讀取可在任一時刻進行。於一特定實施例 中’步驟(b)之該讀取係在步驟⑷之該寫人之該完成之後 即刻進行。 於些實施例中,步驟(a)之該寫入係向該記憶體内之一 的地位置,及u)步驟(b)之該讀取及步驟(d)之該讀取中 之至;一者係自該記憶體内之該目的地位置。 於—些實施例中,該方法進一步包含確定至少一個選自 由以下組成之群組之錯誤指示:丨)該第一讀取資料中之位 兀錯誤數量;U)含有錯誤資料之記憶體單元數量;iii)其 中儲存有錯誤資料之一個或多個位元位置之列表;b)其中 儲存有錯誤資料之一個或多個記憶體單元之列表;及v)該 第。賣取資料中之—特定位元或複數個位元係錯誤的機率 值其中步驟(e)之該錯誤校正係根據所確定之至少一個錯 誤指示來進行。 本文中閣述多種用於根據所確定之作業參數來校正錯誤 的技術。 於—實例中’丨)該原始資料在步驟(a)中寫入至該記憶體 之主儲存區;ii)步驟(b)之該讀取包括自該記憶體之該主 139476.doc 201007748 儲存區讀取以從該主儲存區之内容中產生該第〆讀取資 料及^丨)"玄方法進一步包含:在步驟(a)之該寫入之前, 自一不同於該記憶體之該主儲存區之該記憶體之快取區讀 取以獲得該原始資料。 於再貫例中’根據步驟(c)之該比較之該等結果之該錯 誤杈正包括根據步驟(c)之該比較之該等結果來選擇一解碼 匯流排寬度大小。
於再實例中,根據步驟(c)之該比較之該等結果之該錯 誤校正包括實施以下作業中之至少-者:i)根據步驟⑷之 該比較之該等結果來選擇一第一解碼器及一第二解碼器中 之者並僅使用該第一及第二解碼器中之該選擇之解碼器 來杬正錯°吳,及u)根據步驟(c)之該比較之該等結果來選擇 -解碼Hi -第—模式及該解碼器之―第二模式中之一者 並僅使用該第—s1 ^ 及第一模式中之該選擇之模式來校正錯 誤0 再冑例中’根據步驟⑷之該比較之該等結果之該# 誤校正包括以下中之至卜者:丨)決定是否:A)嘗試使月 較輕加權解石馬器來校正錯誤或B)嘗試僅使用—慢於該幸 ^解碼$之較慢解碼器來校正錯誤;ii)決定;I:否:A)嘗言5 使用-較快解碼器來校正錯誤或B)f試僅使用—慢於該車 决解碼器之較慢解碼器來校正錯誤;iii)決定是否:A)! ^式使用1定解碼器之-較輕加權模式來校正錯誤或刚 j僅使用該特定解碼器之―重於該較輕加權模式之較重办 權模式來校正錯誤;及⑺決定是否:人)嘗試使用―特定阁 139476.doc 201007748 碼器之一較快模式來校正錯誤或B)嘗試僅使用該特定解碼 器之一慢於該較快模式之較慢模式來校正錯誤。 於再一實例中’根據步驟(C)之該比較之該等結果之該第 二貧料中之該錯誤校正包括根據步驟(c)之該比較之該等結 果來確定該第二讀取資料之一個或多個位元機率值。 一些當前所揭示實施例提供一種用於處置錯誤校正之方 法。該方法包含以下步驟:a)將原始資料自一記憶體之一 快取區複製至該記憶體之一主儲存區;…在該複製之後, 自該記憶體之該主儲存區讀取,由此產生第一主儲存讀取 資料;C)在該複製之後,自該記憶體之該快取區讀取,由 此產生快取讀取資料;d)將該快取讀取資料與該第一主餘 存讀取資料相比較;e)在該比較之後,自該記憶體之該主 儲存區讀取,由此產生第二主儲存讀取資料;及f)根據步 驟(d)之該比較之結果,在該第二主儲存讀取資料中校正錯 誤。 於一些實施例中,步驟(d)之該比較包括實施至少一個 選自由以下組成之群組之比較:i}該第一主儲存讀取資料 與該快取讀取資料之間的一直接比較;ii}該第一主儲存讀 取資料與該快取讀取資料之一指示性非恒等函數之間的— 直接比較;iii)該第一主儲存讀取資料之一指示性非恒等 函數與該快取讀取資料之間的一直接比較;及iv)該第一讀 取主儲存區資料之一指示性非恒等函數與該快取讀取資料 之一指示性非恒等函數之間的一直接比較。 一些當前所揭示實施例提供一種用於處置錯誤校正之方 139476.doc -10- 201007748 法。該方法包含以下步驟.a)將原始資料寫入至一記恒 體;b)在該寫入之後,自該記憶體讀取,由此產生第—讀 取資料;c)根據該第一讀取資料來確定一對該第一讀取資 料與該原始資料之間的一差異之指示;幻在對該差異指示 之該確定之後,自該記憶體讀取,由此產生第二讀取資 料;及e)根據該差異指示,在該第二讀取資料中校正錯 誤。 一些當前所揭示實施例提供一種揭示用於一記憶體器件 之控制器。該控制器包含:a)電路系統,其運作以:〇將 原始資料寫入至一記憶體;ii)在該寫入之後,自該記憶體 讀取,由此產生第一讀取資料;iH)將該第一讀取資料與 該原始寅料相比較;iv)在該比較之後,自該記憶體讀取, 由此產生第二讀取資料;及v)根據該比較之結果,在該第 二讀取資料中校正錯誤。 於一些實施例中,該電路系統包括軟體及硬體中之至少 一者。 於些實施例中,該控制器經組態以將該原始資料寫入 至揮發性圮憶體並自該揮發性記憶體讀取。 於些貫施例中,該控制器經組態以將該原始資料寫入 至非揮發性記憶體並自該非揮發性記憶體讀取。 i於—些實施例中’控制器在步驟⑷(iii)中運作以實施至 乂個選自由以下組成之群組之比較:i)該第一讀取資料 與該原:始資料之間的-直接比較;ii)該第-讀取資料與該 原始貝料之_指示性非恒等函數之間的—直接比較;出) 139476.doc 201007748 該第一讀取資料之一指示性非恒等函數與該原始資料之間 的一直接比較;及iv)該第一讀取資料之—指示性非恒等函 數與該原始資料之一指示性非恒等函數之間的—直接比 較。 於一些實施例中,該控制器運作以回應於步驟⑷⑴之 該寫入之一完成而進行步驟(a)(ii)之該讀取。 於一些實施例中,該控制器運作以在步驟(a)(i)之該寫 入之該完成之後即刻進行步驟(a)(ii)之該讀取。 參 於一些實施例中,i)該控制器運作以進行步驟(a)(i)之向 該記憶體内之一目的地位置之該寫入;及ii)該控制器進一 步運作以進行自該記憶體内之該目的地位置之步驟0)(^) 之該續取及步驟(a)(iv)之該讀取中之至少一者。 量 表 表 於一些實施例中,i)該控制器進一步運作以確定至少一 個選自由以下組成之群組之錯誤指示:A)該第—讀取資料 :之-位元錯誤數量;B)—含有錯誤資料之記憶體單元數 C) 其中儲存有錯誤資料之一個或多個位元位置之一列 D) 其中儲存錯誤資料之一個或多個記憶體單元之一列 广)該第-讀取資料中之一特定位元或複數個位元係 錯誤之-機率之-值;及⑴該控制器運作以根據所確定之 至 個錯誤指示來進行步驟⑷(v)之該錯誤校正。 於:些實施例中’ 〇該控制器運作以將該原始資料寫入 至該β己憶體之—主儲存區;Η)該控制器運作以按—方式來 進行步驟⑷⑼之該讀取,該方式包括自該記憶體之該主 儲存區讀取錢從該主儲存區之内容中產生該第—讀取資 139476.doc -12- 201007748 料;及ill)在步驟(a)(1)之該寫入之前,該控制器進—步運 作,以自一不同於該記憶體之該主儲存區之該記憶體之快 取區讀取以便獲得該原始資料。 於一些實施例中,該控制器以_方式運作以根據步驟 (a)(m)之該比較之該等結果來進行該錯誤校正,該方式包 括根據步驟(a)(iii)之該比較之該等結果來選擇一解碼匯^ 排寬度大小。 於一些X施例中
Λ 々八逆邗以根據步驟 (a)(iii)之該比較之該等結果來進行該錯誤校正該方式包 括實施以下中之至少一者:i)根據步驟⑷㈣之該比較: 該等結果來選擇一第一解碼器及一第二解碼器中之—者並 僅使用該第—及第:解媽器中之該選擇之解碼器來校正錯 誤;及Π)根據步驟⑷㈣线比較之該等結果來選擇—解 碼器之-第-模式及該解碼器之―第二模式中之_者並僅 使用該第-及第二模式中之該選擇之模式來校正錯誤。 於-些實施例中,該控制器以—方式運作以根據步驟 ⑷㈣之該比較之該等結果來進行該錯誤校正% 括以下中之至少-者:i)決定是否:A)f試使用—較輕加 校正錯誤或B)嘗試僅使用-重於該較輕加權解 馬益之較重加權解碼器來校正錯誤;⑴決定是否 使用一較快解碼器來校正錯誤或B)f試僅使用—慢於钱 快解碼^之較慢解喝器來校正錯誤;叫決定是否.A)嘗 ^用一衫解碼器之—較輕加權模式來校_ = 試僅使用該特定解喝器之一重於該較輕加權模式: 139476.doc -13- 201007748 權模式來校正錯誤;及iv)決定是否:A)嘗試使用一特定解 碼器之一較快模式來校正錯誤或B)嘗試僅使用該特定解碼 器之一慢於該較快模式之較慢模式來校正錯誤。 於一些實施例中’該控制器以一方式運作以根據步驟之 該比較之該等結果來進行該第二讀取資料中之該錯誤校 正’該方式包括根據步驟之該比較之該等結果來確定該第 一續取資料之一個或多個位元機率值。 些虽刖所揭示實施例提供一種揭示用於一記憶體器件 之控制器。該控制器包含:a)電路系統,其運作以:i)將 原始資料自一記憶體之一快取區複製至該記憶體之一主儲 存區;ii)在該複製之後,自該記憶體之該主儲存區讀取, 由此產生第一主儲存讀取資料;in)在該複製之後,自該 記憶體之該快取區讀取,由此產生快取讀取資料;iv)將該 快取讀取資料與該第一主儲存讀取資料相比較;v)在該比 較之後,自該記憶體之該主儲存區讀取,由此產生第二主 儲存讀取資料;及vi)根據步驟(d)之該比較之結果,在該 第二主儲存讀取資料中校正錯誤。 於一些實施例中,該電路系統包括軟體及硬體中之至少 一者。 於一些實施例中,該控制器在步驟(a)(iv)中運作以實施 至少一個選自由以下組成之群組之比較:0該第一主儲存 讀取資料與該快取讀取資料之間的一直接比較;Η)該第— 主儲存讀取資料與該快取讀取資料之一指示性非恒等函數 之間的一直接比較’ iii)該第一主儲存讀取資料之一指示 139476.doc -14- 201007748 性非恒等函數與該快取讀取資料之間的一直接比較;及iv) 該第一讀取主儲存區資料之一指示性非恒等函數與該快取 讀取資料之一指示性非恒等函數之間的一直接比較。 一些當前所揭示實施例提供一種揭示用於一記憶體器件 之控制器’該控制器包含:a)電路系統,其運作以:i)將 原始資料寫入至一記憶體;在該寫入之後,自該記憶體 讀取’由此產生第一讀取資料;ni)根據該第一讀取資料 來確定一對該第一讀取資料與該原始資料之間的一差異之 指示;iv)在對該差異指示之該確定之後,自該記憶體讀 取’由此產生第二讀取資料;及幻根據該差異指示,在該 弟一讀取資料中校正錯誤。 於一些實施例中,該電路系統包括軟體及硬體中之至少 一者。 現在首次揭示一種其中儲存有用於處置對一記憶體之錯 誤校正之電腦可讀程式碼的電腦可讀媒體,該程式碼可運 作以· a)將原始資料寫入至該記憶體;b)在該寫入之後, 自该記憶體讀取,由此產生第一讀取資料;c)將該第一讀 取資料與該原始資料相比較;幻在該比較之後,自該記憶 體讀取,由此產生第二讀取資料;及约根據步驟(c)之該比 較之結果,在該第二讀取資料中校正錯誤。 現在首人揭示種其中儲存有用於處置對一記憶體之錯 誤校正之電腦可讀程式碼的電腦可讀媒體,該程式碼可運 作以:a)將原始資料自該記憶體之—快取區複製至該記憶 體之一主儲存區·,b)在該複製之後,自該記憶體之該主儲 139476.doc -15- 201007748 存區讀取,由此產生第一主儲存讀取資料;c)在該複製之 後,自該記憶體之該快取區讀取,由此產生快取讀取資 料丨㈣該快取讀取資料與該第―主儲存讀取資料相比 較,e)在該比較之後,自該記憶體之該主儲存區讀取,由 此產生第二主儲存讀取資料;及f)根據步驟(d)之該比較之 結果,在該第二主儲存讀取資料中校正錯誤。 〇 現在1·次揭示-種其中儲存有用於處置對—記憶體之錯 誤校正之電腦可讀程式碼的電腦可讀媒體,該程式碼可運 作以:a)將原始資料寫入至該記憶體;b)在該寫入之後, 自該記憶體讀取,由此產生第一讀取資料;c)根據該第一 讀取資料來破定-對該第一讀取資料與該原始資料之間的 差八之扣不,d)在對該差異指示之該確定之後自該記 憶體讀取,由此產生篦-士 奎而―公 座生弟一 af取貧料;及e)根據該差異指 示’在該第二讀取資料中校正錯誤。 庄意’上文闡述為與某些實施例有關的特徵亦可包括於 其他實施例中,除非下文另有指示。 Φ 【實施方式】 參考圖式_本發明對各實㈣實施例之詳細說明將更 好地理解下文申請專利範圍。說明、實施例及圖式不應視 為限制申請專利範圍之範嘴。應理解,並非用於處置錯誤 权正之當前所揭示方法及裝置之一切特徵在所有實施形式 中皆係必不可少的。亦應理解,貫穿於其中顯示或閣述一 過程或方法之本揭示内容,該方法之各步驟可按任一次序 或同時實施,除非根據上下文很清楚,一個步驟依賴於首 139476.doc -16- 201007748 先實施之另一步驟。如貫穿於本申請案所使用,字詞「可 能」使用具有許可意義(即,意謂「具有…的可能性」), 而不具有強制意義(即,意謂「必須」)。
本發明之各實施例係關於令人驚訝的發現,其在將「原 始」資料寫入至一快閃記憶體之後適用於:⑴自該快閃記 憶體回讀(即’實施-「第—讀取作f」);(Η)將該回讀資 料與該原始資料相比較;及(iii)在該比較之後,在隨後自 該快閃記憶體讀取資料時(即,在一「第二讀取作業」 中),根據由該回讀資料與該原始資料之比較而產生資訊 在該隨後所讀取資料中校正錯誤。 一於-些實施例中,藉由該比較所產生之資訊指示該原始 資料與可能已由在程式化時刻所出現之錯誤(例如,由所 謂「程式化干擾效應」@引起之錯誤)破壞之快閃駐存資 料之間的差異。因&,藉由該比較所產生之資訊可提供一 對資料向快閃記憶體之程式化或寫入「多麼成功」之指 7F ° 可在稍後在「第二讀取作業」期間所讀取之資料中校正 錯誤時使用關於資料向㈣記憶體之程式化或寫入「多麼 成功」之此資訊。舉例而言,若藉由該比較所獲得之資訊 指示記憶體資料寫人相肖「成功」及/或寫人至記憶體之 貢料之品質相對「高」,則其可適用於隨後以一相對「樂 觀」方式校正自記憶體讀取之資料中的錯誤。否則,一用 於校正錯誤之更「悲觀」技術也許係較佳的。 下文參考圖5至圖8來闡述相對 樂觀」及「悲觀」技術 139476.doc -17- 201007748 之各個實例。 在-個與圖6A相關之非限制性實例中,可在校正錯誤時 使用一「較重加權」解碼器或—「較輕加權」解碼器。於 此實例中,該「較輕加權」解碼器比該「較重加權」解碼 器較快及/或耗用更少計算資源,但成功地校正錯誤之可 能性更小(即,與一較低失敗機率相關聯)。 應瞭解,圖5至圖8之「樂觀/悲觀」錯誤校正並旨在為 一窮盡性列表,且亦可使用其他「悲觀」或「樂觀」技 術。 根據與圖6A相關之此非限制性實例,稍後,當校正來自 「第二讀取作業」之資料聘,可使用在「第一讀取」作業 之後從該比較中所獲得之資訊來加速錯誤校正。若原始資 料與自快閃讀取之資料之間的先前比較指示快閃駐存資料 (或在某一先前時間點處)相對無錯誤,則可能最好稍後採 用一「樂觀策略」並嘗試使用較快之「較輕加權」解碼器 來校正錯誤。另一選擇係,若該比較指示快閃駐存資料包 括(或在某一先前時間點處包括)一「更大數量之錯誤」, 則可能最好稍後採用一「悲觀策略」並嘗試使用較慢之 「較重加權」解碼器來校正錯誤。 注意,此僅係一個「根據該比較之結果來校正錯誤」之 非限制性實例且下文闡述各種額外實例闡。此外,下文揭 不與根據一對回讀資料與原始資料之間的—差異之指示來 校正錯誤相關之額外技術。 於—些實施例中,「第一讀取作業」之回讀係在第一讀 139476.doc 201007748 取作業「之後即刻」(即,在幾秒内)進行。此可適用於在 程式化時刻或接近於程式化時刻收#指示t料及/或「目 標記憶體」之品質之資訊。另_選擇係或另外,該回讀可 在一稱後時刻進行。
貫穿於本揭示内容,當用「快閃記憶體」的字眼來解釋 某些技術時,應瞭解此等技術亦適用於不同於快閃記憶體 的其他記憶體。例示性記憶體包括但不限於不同於快閃記 憶體之非揮發性記憶體(例如,磁性記憶體或光學儲存器) 及例如SRAM或DRAM之揮發性記憶體。 例示性磁性記憶體包括但不限於磁阻隨機存取記憶體 (MRAM)及硬磁碟盤。 熟習此項技術者應瞭解,用於校正錯誤之當前所揭示技 術可與任何其他用於在自記憶體讀取之資料巾校正錯誤之 技術相組合。 對在快閃記憶體中使用ECC之 之定義(在接下來的兩個段落 在闡述圖式之前,呈現一 一般概述並提供各種術語 中)。 快閃記憶體器件中之錯誤校正 下面呈現一對在快閃記憶體中使用ECC之一般概述且包 括以下步驟: ⑴在將資料寫入至記憶體之前,對資料應用一 ecc演 算法以計算稍後用於錯誤偵測及校正之額外(即,冗餘)位 兀。此等冗餘位元通常稱作「同位位元」或「同位」。輸 入至一 ECC模組中之資料與由彼模組輸出之同位之一組合 139476.doc -19- 201007748 稱作一碼字。至一ECC模組之輸入資料之每—不同值產生 一不同碼字。 (2) 將整個碼字(即’原始資料及同位)記錄至快閃記憶 體。應注意,NANDs快閃記憶體之實際大小大於原始資 料之大小’且該記憶體經設計以亦容置同位。 (3) 當自記憶體擷取資料時,重新讀取整個碼字,並 對資料及同位應用一 Ecc演算法以偵測並校正可能之「命 中翻轉」(即,錯誤)。 應注意,ECC之實施可由硬體、軟體或硬體與軟體之一 組合來完成。此外,ECC可在一記憶體器件内、在一記憶 體器件控制器内、在一主機電腦内實施,或可「分散」於 一系統之此等組件之中。 通常使用之演算法包括Reed_s〇1〇m〇n、BCH、加權平均 (Hammmg)及許多其他演算法。每一 ECC演算法皆由兩個 部分(接收資料位元並產生同位位元(或等效地,產生碼字) 之部分、及接收碼字並產生經校正資料位元之部分)構 成。第一部分稱作「編碼器」且在寫入期間使用,而第二 部分稱作「解碼器」且在讀取期間使用。可在硬體或軟體 中實施該兩個部分中之每一者,且亦可在硬體中實施一個 部分而將在軟體中實施另一部分。亦可在硬體與軟體之一 組合中實施該等部分中之每一者。 接收資料位元並產生對應碼字稱作「編碼」。接收碼字 並產生經校正資料位元稱作「解碼」。 應注意,實際上存在兩種類型之Ecc。其中將資料位元 139476.doc -20· 201007748 ^識別馬保存於媽字中之上述類型之ECC稱作「系統化」 CC在非系統化」ECC中,將資料位元轉換至一复 不保存原始資料之識別碼之碼字。 ^ 選擇—演算法(如BCH)作為擬在一快閃記憶體系統中 用之ECC㊉算法並不唯—性地定義所選解決方案。任 類ECC肩异法實際上並非係一單一演算法而係一族演算 法同-族内之演算法在其能夠保護之資料位元數量方面 其之間有所不同。一需要保護1〇〇個資料位元之演算法不 二於「需要保護10,_個資料位元之演算法,即使該兩種 演算法通常相當類似並按相同原理運作。 但甚至同—族中之兩種演算法(兩者保護相同數量之資 料位元)未必相同。該等演算法可能在所提供之可靠性水 平方面,或等效地(在該等演算法能夠校正之資料中之位 元錯誤數量量方面)有所不同。舉例而言,—種系統可能 需要保護1’_個資料位元之組塊以免出現任何達到3個位 元錯誤之組合(但不免出現4個或更多個位元錯誤),而在另 一系統中,期望一高得多的可靠性且因此需要保護i,〇〇〇 個資料位元之組塊以免出現任何達到1〇個位元錯誤之組 合。通常’保護以免出現更多錯誤f要使用更多同位位元 (或更長碼字),從而使ECC方案不太「有效」,其中效率 係以一碼字中之資料位元數與該碼字中之總位元數(包 括,在系統化ECC中,資料位元及同位位元兩者)之比為量 度。該量度通常稱作ECC編碼之「速率」。 不同ECC演算法及實施形式亦在其他方面(編碼過程之 I39476.doc •21 - 201007748 mr之速度、編碼過程之複雜度、解碼過程之 複雜度、至解蜗$ 元之品質界定)等等^ 接义錯誤率(根據儲存單 要不僅因為其二::不同。編碼及解碼之複雜度很重 因為其景,響作業之速度’而且 之硬體實施形式之功㈣耗及⑪面積。W響咖方案 顯’為—記憶體系統選擇—ECC解決方案涉及 一在多個考量因素之 權衡。—些在EC(:設計領域 中具有代表性的非限制性經驗法則係: =針對一既定記憶體可靠性,輸出可靠性越好(或等效 可杈正錯誤數越高)碼之速率就越低(或等效 統化ECC,需要更多同位位元)。 b.針對一既定記憶體可靠性,輸出可靠性越好,解碼 器就越複雜。 C.針對—既定輸出可靠性水平,碼之速率越高,解碼 器就越複雜。 d.針對-既定輸出可#性水平,碼之速率越高,解碼 就越慢。 當設計―咖解決方案時,人們通常從解碼器輸入處之 錯誤率(其取決於儲存單元之σ mu 于早兀之口口貝)及所期望之輸出可靠性 求AW °基於此等數,人們通常選擇 一特定ECC鎮,計算所需同抑办-奴 异π而Π位位兀數,並隨後估計編碼器 及解碼器之速度及複雜度。 在-些情況下,系統設計員之最重要考量係解碼之速 度,因為解碼之速度可限制從記憶體當中讀取資料之速 139476.doc •22- 201007748 度。在此等情ί兄下,言免計者可能面對進退兩難的局面—滿 足輸出可靠性要求所需之ECC方案可能結果導致一具有緩 :運作之相當複雜的解碼器,從而無法滿足系統之速度目 標。但是’另—方面’選擇_相#簡單但促成快速解蜗之 ECC方案並不提供所需之輸出可靠性水平。 定義 广便起見’在本文說明之上下文中’此處呈現各種術 居。由於在本申請案中之此處或別處明碟地或含蓄地提供 2義’以致熟習相關技術者將此等定義理解為與所定義術 =用途相-致。此外,此等定義應視為具有與此用途相 一致的最廣泛可能意義。 由:某些類型之記憶體(例如,快閃記憶體、磁性記情 固3儲存器或揮發性記憶體)係「破壞媒體」,因此 :個或多個錯誤有時被引人至寫人至該記㈣之「原始 -貝料中,從而在自該纪情俨 ’、。」 -表…… 該資料(即,原始資料之 【式)時翻轉」-個或多個資訊位元。 「原始資料」係針對其作出— 「 (例如,-p At α 目標記憶體」 可此係一破壞媒體之快 體)之嘗試之資如,]°己隐體或任一其他記憶 式之見枓。在一些情況 際儲存於該「目桿¥體φ纟於3亥寫入嘗試而實 體」中之資料相同於該「屌妒眘 枓」。在其他情況下,一個或〜 …亥原始資 中之資料寫入至卞「 —夕錯誤隨著駐存於記憶體 針對其作出一寫入r斥私一 馬入原始賁料,之營4 士 」之嘗试之目標記憶體中 憶體」中而被引入至今資料中 (或隨後即刻卜例如’因程式化干 至6亥謝 4+姐廿从· .1· . 139476.doc •23- 201007748 目的地位 :實體或邏輯位置稱作「目標記憶體」中之 從自該記憶體回讀 .. Γ 之資料中重構該原始、盔扭μ 過程係杈正錯誤」。德;^ γ q「 ‘,、、錯誤資料之 儘官術s吾「校正錯组 使用,但應瞭解「校 、J以複數形式 . 正錯誤」亦係指校正—置t 瞭解,於一此實絲 早一錯誤。摩 一頁靶例中,對錯誤之該「 應 個或多個失敗校正錯誤嘗試。 止」亦可包括一 如上文所提到,錯誤校正技術可分類為 校正’其t將資料^线料保㈣㈣^化錯誤 系統化」錯誤校正,其中將資料位元轉換至及⑻非 原始資料之識別碼的碼字。在前—種情況下$ :保存 存於碼字中之資料位元寫入至「目標記憶體」 將保 將此等資料位元視為「原始資料」。在後—種情況;,二 出一將「經轉換」或「經編碼」資料位元寫入作 土· 目才票"I己 憶體」之嘗試並將此等經轉換或「經編碼」資料位_ 「原始資料」。 70視為 一些實施例包括將自「目標記憶體」回讀之資料與「原 始資料」相「比較」。於一個實施形式中,此可μ + u j糟由貫施 回讀資料與原始資料之間的一「直接比較」來進行,在此 情況下,全部或部分地檢查原始資料與回讀資料在其内六 方面是否匹配。另一選擇係或另外,回讀資料與「原妒資 料」之比較可係一涉及原始資料之一數學函數及/或第— 讀取資料之一數學函數之「間接比較」。熟習此項技術者 參考圖9及隨附說明以獲得更多細節。 139476.doc -24 - 201007748 如先前所提到,為了校正錯誤,可使用一「解碼器」來 從一碼字之—表示形式中恢復原始資料。一些實施例涉及 多個解碼器,包括「較輕加權」解碼器及「較重加權解碼 器」。 • %、較重加權」及「車父輕加權」用於比較兩種解碼器 及/或一單一解碼器之兩種模式。「較重加權」解碼器(或 . 一單一解碼器之較重加權模式)(i)耗用較「較輕加權」配 φ 對物為多之電流及/或⑴)需要較「較輕加權」配對物為多 之記憶體(用於解碼器本身之電腦可執行碼及/或更多用於 在校正錯誤時儲存計算之「中間結果」之記憶體)及/或 (111)需要較「較輕加權」配對物為多之計算作業。 對圖2之說明 圖2係一種根據一些實施例用於處置錯誤校正之例示性 技術之一流程圖。在步驟8411中,將原始資料寫入至記憶 體(即作出一將原始資料寫入至「目標記憶體」中之嘗 〇 試)。如先前所提到,不保證實際上在該寫入作業之後即 刻駐存於「目標記憶體」中之資料相同於針對其作出該嘗 . 試之原始資料(例如,因可在「寫入時刻」將錯誤引入至 資料中之程式化干擾效應)。 在一個實例中,在步驟S411t,將原始資料自揮發性記 憶體(例如,RAM及/或暫存器及/或任一其他類型之揮發性 記憶體)複製至例如快閃記憶體或磁性「磁碟」儲存器之 非揮發性記憶體中。在―個與圖1B相關之特定實例中,資 料由周邊儲存器件260*自一主機器件31〇接收。回應於該 139476.doc -25· 201007748 :料接收,在步驟S4U中,將「傳入」接收資料寫入至周 2存器件26G*内之非揮發性記憶體27()中。儘管本揭示 内谷中所述之幾個實例與一周邊儲存器件之實施形式 相關,但應瞭解此決非係一限制,且可使用一並非係一周 邊館存器件26G*之記,_料||件來實絲-所揭示 技術。 句不 於再-實例中,在步驟8411中,將原始資料自揮發性纪 憶體中之一個位置複製至同一揮發性記憶體中之另一「目 標」位置(例如,RAM中之另一位置)。於再一實例中 =始資料自-種類型之揮發性記憶體(例如,一暫存器)複 製至另-種類型之揮發性記憶體(例如,RAM)中。 二:驟S415中,進行-「第-讀取作業」。在-個非限 制性實例中,自在步驟S411中向其寫入「原始」資 :票記憶體内之「目的地位置」回讀資料。然後,在步驟 419中’直接或間接地將回讀資料(即,自步驟s化 一讀取作業)與「原始資料」相比較。 m 在各實施例中,步驟8419之資料比較可適用於產 由於步驟則之寫人作業而駐存於「目標記憶體」中= 「品質」:(或另-選擇係,指示目標記憶體本身之 口口質」)的資訊。「資料σ暂 遂 H 口質」資訊之例示性指 括但不限於:i)第—讀取資料中之-位元錯誤數量 含有錯誤資料之記憶體單元數量;叫其中儲存有錯丄 -:固或多個位元位置之一列表;iv)其中儲存有 料: 一個或多個記憶體單元之—列表;及V)第—讀取資料^ 139476.doc • 26 - 201007748 一特定位元或複數個位元係錯誤的一機率之一值。 此品質資訊可儲存並擷取供稍後使用。如下文將解釋, 此品質資訊可稍後在校正錯誤時在步驟S427中使用。於— 個非限制性實例中,此品質資訊係在程式化時刻(即,在 步驟S419時或「隨後即刻」(即,在幾秒内)確定並儲存且 稍後使用。儘管如此,如上文所提到,不存在任何在「程 式化時刻」確定此資訊(即,在步驟S415及/或S4 19中)之明 確要求(此可在任一時刻進行)。 於一些實施例中’步驟S415之讀取及/或步驟S419之比 較⑴由儲存器件260*「自動地」且「由於」步驟S4 η之寫 入而進行,(ii)不需要自主機器件31〇接收任何外部「資料 讀取請求」且(iii)不回應於自主機器件所接收之任何「資 料請求」而進行。此外,於一些實施例中,由步驟8419之 第一讀取作業所產生之第一讀取資料可供在周邊儲存器件 260*内「内部使用」(即,在步驟S419_S427中)且不自周邊 儲存器件260*「輸出」。 相反’步驟S415之讀取及/或步驟S419之比較可「回應 於」步驟S411之寫入及/或回應於一由快閃記憶體儲存器 件260經由相應器件間介面25〇、35〇自主機器件3丨〇接收之 「外部接收」資料寫入命令而進行。 如上文所提到,可在一稍後時刻儲存(未顯示於圖2中) 並擷取「品質資訊」(儲存及擷取步驟未顯示於圖2中)。該 儲存及/或擷取可在任一時刻進行,包括在步驟MU之讀 取之前、與其同時、在其之後。 139476.doc •27· 201007748 在步驟S423 t在「第二讀取作業」中自記憶體讀取 資料。於一些實施例中,與步驟S415之讀取相反,「第二 讀取作業」可回應於-由快閃記憶體儲存器件所接收之外 4接收f料讀取」命令而進行,且在步驟s423中所讀取 之資料(在步驟則之錯誤校正之前或之後)之結果可自記 憶體儲存器件260*「輸出 至—主機器件。 m 不存在對步驟則及/或⑽之讀取之「目標位置」之 限制。於-些實施例中,步驟㈣之「第一讀取」及/或 步驟S423之「第二讀取」之「目標位置」係在步驟8川中 向其寫入「原始資料」之「目標位置」。 在步驟S427中,期望在步驟S423中所讀取之「第二讀取 資料」中校正錯誤。在步驟§427中,該錯誤校正係根據在 步驟⑷9中所獲得之資訊(即,根據第_讀取資料與原始 資料之比較之結果)來進行。下文(例如,參考圖5_8)闡述 如何「根據該比較t結果來校正錯誤」<不同實例。 「即刻」回讀
s不疋限制,但注意,於一些實施例中,步驟S4【5 之讀取及/或步驟S419之比較係在步驟以丨丨之寫入「之後 :刻」(例如’在幾秒内)進行。此可適用於「釋放」其中 儲存有原始資料之記憶體中之位置。 因此,在一個非限制性實例中,「原始資料」駐存於快 閃。己隐體儲存器件26Q内之揮發性記憶體(未顯示)(例如, 但不限於’快閃控制器280内之揮發性記憶體(例如,RAM 及/或暫存器))中。根據此實例,在步驟S4 11中,將此「原 139476.doc -28- 201007748
始資料」自該揮發性記憶體寫入至快閃記憶體27〇(即,該 揮發性係「源記憶體」且該快閃記憶體係「目標記惊 體」)。根據此實例,藉由「即刻」(例如,在幾秒内)回讀' S415及/或比較S419,丨需要將該「原始資料」保持於該 揮發性記憶體中且在該揮發性記憶體内為該「原始資料」 「保持預留空間」。因此’在此非限制性實例中,在步驟 ,之比較之後’可將其中駐存有該「原始資料」之揮發 性記憶體(即’揮發性記憶體中之位置)用於其他目的。 儘管如此,此並非係-限制,且當然可在步驟s4ii之寫 入之後之任一時刻實施該比較。 對圖3之說明 仪過用於確定一對原 始資料與第-讀取資料(即,與原始資料相比較之資料k 間的一差異之指示。 現在參考圖3。可如同在圖2中一樣實施圖3中之步驟 T、s化及⑽。在步魏35中,確定_對原始資料盘
:一讀取資料之間的-差異之指示(例如,指示駐存於I 中向其寫入原始資料之「目標」記憶體中之資料 中存在多少錯誤)。 於一個實例中,此指示係藉由 料相比較來確定。 將第一續取資料與原始資 二另外,該指示可在不將第-讀取資料與原 ==比較之情況下確定。在—個實例中,在第一讀取 板正錯誤,並將經錯誤校正之資料與第-讀取資料 139476.doc -29· 201007748 相比較(即直接地或間接地)。若(例如)經錯誤校正之資 料相同於或接近於第—讀取資料,則此可指示駐存於「^ 標記憶體」中之資料中幾乎不存在或完全不存在錯誤。此 可指示「原始資料與第一讀取資料之間的差異」不存在或 最小。另一方面,經錯誤校正之資料與第一讀取資料之^ 的更多差異可指示步驟S411之「資料寫入」過程係「有; 擾的」(例如,因程式化干擾效應)且原始資料與第—讀取 資料之間的差異相對「大」。 在所有前述實例中,對原始資料與第一讀取資料之間❸0 差異之指示係根據在步驟S415中自「目標記憶體」讀取 (例如’在步驟S415中自在步驟則中向其寫入原始資料 之「目標記憶體」内之一「目標位置」讀取)之第—讀取 資料而確定。 多個與可館存指示原始資料舆讀取資料之間的差異(即, 在步称S435中)之資訊類型相關的例示性使用索例 應瞭解,所提供之實例列表並非旨在為一窮盡性列表。 此外,應瞭解’在不同實施形式中,可具有各種組合。戶斤_ 有實例皆旨在為闡釋性的而非限制性的。 :第一實例:在本段落之一第一實例中,健存第—讀取二身-料:之錯誤之具體位置(即,如在步驟s4i9及/或$化中所 ,疋)’以便在讀取時刻一記憶體儲存系統之快閃控制器 其他元件旎夠容易校正所列出之錯誤位元。在一個 疋實施形式中’將儲存之錯誤位置數限制至—最大數 (此可簡化對在步驟剛及/或仙及/或剛中所確定之錯 139476.doc •30- 201007748 誤或「品質」資訊之儲存之管理)。 出之-#貫施例中,儲存從已知錯誤資料中導 ㈣右干值’而不儲存對該(該 位置之描述。枭俐而+ _ , 心逐(該等) Q,可儲存該錯誤數而不儲存其位 r如下文所解釋,此-值可適用於在-些錯誤校正方宰 中增強錯誤校正過程。 又方案 :第三實施例··當使用MLC快閃器件時,
快閃單元視為基本單元。因此,㈣存具體位置時,2 1=敎位元及/或識別特定單元。因此,在不同非限 ,切存錯誤數時,人們謂存錯誤位元數及/ 或錯誤單元數。 根據-個其中儲存有錯誤位元之具體位置之實施例,在 讀取㈣者資料㈣地使㈣(料)料位置也許非常 簡单。在若干特定實例中,該錯誤校正過程隨後可實施為 一兩㈣過程(首先反轉所揭示錯誤位元,並隨後採用該 常規錯决权正方案)。此可適用於任一類型之錯誤校正方 案0 多個與指示在步細15中自「目標」記憶艘回讀之資料十 之錯誤之「儲存及操取資訊」相關的例示性使用案例 如上文所提到’於_些實施例中,由步驟s419之比較及, 或由步驟S435之確定所產生之資訊首先儲存(圖中未顯示 之步驟)’並稍後擷取以在步驟S427及/或步驟S439中使 不存在對儲存所產生資訊之方式及/或地點之限制。 所產生資訊可儲存於揮發性及/或非揮發性記憶體之任一 I39476.doc 31 201007748 組合中。 於—些實施例中,所產4咨 生貝δί1儲存於在步驟S411中向苴 寫入原始資料之「目標 斯m 體」巾。另—選擇係或另外, 所產生貝況可儲存於—不同於琴日 j於該目# 5己憶體之記憶體中。
現在闡述一些盘—,Ιφ. SB .-、 、I己憶體器件器件之特定案例相關 器· “六 ^閃5己憶體器件包括:⑴-控制 器280 ’其駐存於—第—曰 27〇,,. 日日片上,及(11) 一快閃記憶體 270(例如,Nand快閃),政駐.认 一 J ,、駐存於一不同於第一晶片之第 一晶片上(或駐存於容伯^ 片上)。 夕個不同於第-「控制器」晶片之晶 =㈣Α:將該資訊儲存於該财仙快閃晶片中。在實 器&將^較作業(例如’參見步驟剛)之後,該快閃控制 决閃曰曰片中。可將該資訊附著至與 眘料。£ 。貝枓之頁面之額外區中相關之使用者 貝料。另一選擇係,可將却夕百工 W ^ D夕頁面之資訊組合至一中心位 3有多個頁面之相關資訊之項目表)中。 於一些實施形式中,笛_杜 —替代形式可能更可取,此乃因 ⑴ >、有在使用者資料 ^ 枓已厶儲存至快閃頁面中之後方可知道 "亥貧sfl ’及(ii)進行一 至彼頁面中之第二寫入作業可能違 件之部分程式化限制。於此實施形式中,該控制 第Λ 在該控制以要該儲存資訊時《之前)擁取該 ^^’在步_29或_中)。於各實施形式 _ , $ 280可在讀取使用者資料(即,在步驟S423之第 ' 業中)之别或在讀取使用得資料之後進行此擷 139476.doc 201007748 取。於―些實施例中’該控制器在解碼使用者資料之前掘 取該資訊以便能夠將其用於該解碼過程中可能更可取。 使用案例B :根據該使用㈣,將該資訊儲存於該控制器 晶片中而不是該快閃記憶體晶片中。 對圖4之說明 圖4係一根據一些實施例用於處置錯誤校正之常式之一 流程圖。在步驟S451中,將原始資料自一快取儲存區域 272(例如,一快閃記憶體270之一快取儲存區域272)複製至 一主儲存區(例如,一快閃記憶體27〇之一主儲存區域 274)。注意’因在程式化主儲存區域274時的可能錯誤, 故不保證在步驟S451之複製作業之後,駐存於主儲存區域 274中之貫際資料將相同於自快取儲存區域複製之資料 (例如,因程式化干擾效應)。 在步驟S455中,將資料自主儲存區域274讀取(例如)至 揮發性記憶體中,以產生「第一主儲存讀取資料」。在一 個實例中’步驟S455之資料讀取作業包括自在步驟S451中 向其複製資料之主儲存區域274内之「目標位置」讀取。 在步驟S459中,將資料自快取儲存區域272讀取(例如) 至揮發性記憶體中,以產生「快取讀取資料」。在一個實 例中’步驟S459之資料讀取作業包括自在步驟8451中自其 複製資料之快取272中之「源位置」讀取。 在步驟S463中,將該快取讀取資料(即,其可理解為 「類似於」原始資料)與第一主儲存讀取資料(即,其可理 解為「類似於」第一讀取資料)相比較。於一些實施例 139476.doc -33- 201007748 中’步驟S463之此比較提供一對該快取讀取資料與第一主 儲存讀取資料之間的一差異之指示,該指示可適用於確定 該複製多麼「成功」(不成功)及/或作為步驟8451之複製作 業之「目標」之主區駐存資料中存在或不存在程式化時的 錯誤。類似於步驟S419之比較,步驟S463之比較可實施為 一「直接比較」及/或一「間接比較」(熟習此項技術者參 考圖10)。 在步驟S467中’進行一對主儲存區域274之「第二讀 取」。於一些實施例中,此「第二讀取」可根據或回應於參 一由儲存器件260自主機器件310接收之接收「外部讀取命 令」而進行。 在步驟S471中,根據步驟S463之比較之結果在「第二主 儲存讀取資料」中校正錯誤。在―個實例中,若步㈣如 之比較指示主儲存區讀取資料相同於或幾乎相同於快取讀 取資料(即,指示步驟S451之複製事件相對「成功」),則 在步驟S71中使用一相對「樂觀」錯誤校正常式。否則, 若步驟S463之比較指示主儲存區讀取資料不同於快取讀取 資料,則可使用-不太「樂觀」錯誤校正常式或一「非 觀」錯誤校正常式。 心 下文參考圖5-8闡述「樂_ 乃「非站 衆覜」及悲觀」錯誤校正常式 之非限制性實例。 在一個使用案例中,可經由快取儲存區域272將「目 =資料自揮發性記憶體「間接地」寫人至主儲存區域 在此使㈣例中,快取區域272係—比主儲存區域 139476.doc •34· 201007748 274「更可靠之儲存媒體」,且假定:⑴寫人至快取加之 資料未必包括錯誤;(ii)複製(即,在步驟8451中)至主儲存 區域274之資料更有可能包括錯誤。由於快取272中之資料 假疋為相^「無錯誤」,目此不需要在處理自主儲存區域 278回5賣之資料的同時將「原始資料」保持於該揮發性記 u體中(而疋,可利用自「相對可靠」快取區域272回讀之 資料)。
參考圖5A-5B、圓6A_6B對步驟购及,或則及,或s439之 例示性實施形式之說明 設想具有以下特性之兩種解碼器(或一個能夠在兩種不 同模式下運作之解碼器): a·第一解碼器係較快及/或「較輕加權」的,但另一方 面不保證成功地產生解碼過程之結果。 b.第一解碼器係較慢及/或「較重加權」的,但保證始 ”產生解碼過程之正確結果(或至少更有彳能產生解碼過 程之正確結果)。 通㊉,貝料中之錯誤數越高,第一解碼器失敗就越頻 繁。遺憾的是,當在步驟S423或S467中自記憶體回讀(例 如藉由回6賣碼字之表示形式)時不一定事先知道回讀 貝料中存在多少錯誤。因此,不-定知道是否需要-「較 重加權」解碼器(或—單一解碼器之較重加權模式),或一 「較輕加權」解碼器是否將足夠。 本發明人現在揭示若⑴步驟S419(或步驟S463)之比較或 ()乂驟S43 5之確定指示步驟以丨丨之資料寫入或步驟s45i 139476.doc •35· 201007748 之資料複製相對「成功」,貝,】可選擇一用於稍後校正錯誤 之相對「樂觀」技術在步驟S423或S467中所讀取之資料中 校正錯誤。因此,在此情況下,可有利地「冒險」使用 較輕加權」解碼器(或一單一解碼器之較輕加權模式)來 校正錯誤。否則,使用「較重加權」解碼器或一單一解碼 器之較輕加權模式來校正錯誤可能更可取。 現在參考圖5A。在步驟8615中,根據該比較及/或差異 才曰示之結果來從複數個候選解碼器中選擇一解碼器。 在步驟S619中,僅使用所選擇之解碼器而不使用未選的 「被拒絕」解碼器來校正錯誤。 現在參考圖5B。在步驟S625中,根據該比較及/或一在 步驟S419或S435或S463中所確定之差異指示之結果從複數 個候選解碼器模式中選擇一既定解碼器之一模式。 在步驟S629中,僅使用所選擇之解碼器模式而不使用未 選的「被拒絕」解碼器模式來校正錯誤。 現在參考圖6 A。 在步驟S651中,作出一是否嘗試根據該比較及/或一在 步驟S4i9或S435或S463中所確定之差異指示之結果使用一 較輕加權解碼器(即,複數個候選解碼器中之)來校正錯誤 之決策。 若該比較及/或一在步驟S419或S43 5或S463中所確定之 差異指示之結果指示步驟S411之寫入或步驟8451之複製相 對「成功」(例如,因第一讀取資料「非常類似」於原始 資料,或因第一主儲存讀取資料「非常類似」於快取讀取 139476.doc -36- 201007748 資料),則可採用—相對「樂觀」錯誤校正策略。因此 在此情形下,在步職55_作出—使用較輕加權解瑪 校正錯誤之嘗試。若較輕加權解碼器成功(參見 歸)m要嘗試制較重加權解碼器來校正錯: 見步驟S667)。若較輕加權解碼器無法校正錯誤,則作出 S663—使用一較重加權解碼器來校正錯誤之嘗試。
若該比較及/或一在步驟 異才日不之結果指示步驟 對「不太成功」(例如, 此外’注意,參考步驟S651, S419或S435或S463令所4定之差 S411之寫入或步驟S451之複製相 」於原始資料,或因第—主儲 快取讀取資料),則可採用一 因第一讀取資料「相對不同 存讀取資料「相對不同」於 相對「悲觀」錯誤校正策略。在此情形τ,可跳過步驟 S665,並嘗試使用較重加權解碼器而不是較輕加 來校正錯誤(在步驟S663巾)。 ^ 現在參考圖6B。
在步驟S851中,作出一是否嘗試根據該比較及/或一在 步驟S419或S435或S463中所確定之差異指示之結果使用一 較快解碼器(即,複數個候選解碼器中之)來校正錯誤之決 策0 右该比較及/或一在步驟S419或S435或S463中所確定之 差異指不之結果指示可採用一相對「樂觀」錯誤校正策 略,則在步驟S855中作出一使用該較快解碼器來校正錯誤 之嘗试。若該較快解碼器成功(參見步驟S859),則不需要 嘗試使用較慢解碼器來校正錯誤(參見步驟S867)。若該較 139476.doc •37· 201007748 快解碼器無法校正錯誤,則作出S863一使用一較慢解碼器 來校正錯誤之嘗試。 此外,注意,參考步驟S851,若該比較及/或一在步驟 S/19或S435或S463中所確定之差異指示之結果指示一相對 心觀」錯誤校正策略更可取,則可跳過步驟S865,並嘗 試使用》亥較慢解碼器而不是該較快解碼器來校正錯誤(在 步驟S863中)。 現在參考圖6C。 在步驟S671中,作出一是否嘗試根據該比較及/或一在 步驟S419或8435或8463中所確定之差異指示之結果使用一 較輕加權模式(即,一既定解碼器之複數個候選解碼器模 式中之)來校正錯誤之決策。 右該比較及/或一在步驟S419或8435或8463中所確定之 差異指示之結果指示可採用一相對「樂觀」錯誤校正策 略,則在步驟S675中作出一使用該較輕加權模式來校正錯 誤之嘗試。若該較輕加權模式成功(參見步驟S679),則不 需要嘗試使用該較重加權模式來校正錯誤(參見步驟 S687)。右该較重加權模式無法校正錯誤,則作出%83一 使用一較重加權模式來校正錯誤之嘗試。 此外,注意,參考步驟S671,若該比較及/或一在步驟 S419或S435或S463中所確定之差異指示之結果指示一相對 「悲觀」錯誤校正策略更可取,則可跳過S675,並嘗試使 用該較重加權模式而不是該較輕加權模式來校正錯誤(在 步驟S683中)。 139476.doc • 38 · 201007748 現在參考圖6D。 在步驟S871中,作出一是否嘗試根據該比較及/或—在 步驟S419或S435或S463中所確定之差異指示之結果使用一 較快解碼器模式(即,複數個候選解碼器模式中之)來校正 錯誤之決策。
若該比較及/或一在步驟S419或S435或S463中所確定之 差異指示之結果指示可採用—相對「樂觀」錯誤校正策 略,則在步驟S875中作出一使用該較快解碼器模式來校正 錯誤之嘗試。若該較快解碼器模式成功(參見步驟MM, 則不需要嘗試使㈣較快解碼器模式來校正錯誤(參見步 驟S887)。若該較快解碼器模式無法校正錯誤,則作出步 驟S883—使用一較慢解碼器模式來校正錯誤之嘗試。 此外,注意、,參考步驟S871,若該比較及/或一在步驟 S419或S435或S463中所確定之差異指示之結果指示一相對 「悲觀」錯誤校正策略更可取,則可跳過步驟““,並嘗 試使用該較快解碼器模式而不是該較快解碼器模式來校正 錯誤(在步驟S863中)。 對圖7-8之說明 圖7-8係用於根據該比較及/或差異指示之結果使用—軟 解碼器來校正錯誤之技術的流程圖。 軟解碼器藉由下述方式來運作:為碼字中的每一位元指 配一機率(例如,該位元之值為丨而不是〇之機率"並運行 多:疊代’在該多重疊代中之每一者中,根據其他位元之 當前機率來改變每一位元之機率。 139476.doc -39· 201007748 任何不屬於軟解碼器之解碼器在本文中稱作「代數解碼 器」。 在步驟S711中,根據該比較及/或差異指示之結果來指 配一個或多個位元機率值。 對於本揭示内容而言,一「位元機率值」界定為一指定 位元具有—指定值(例如,0或1)之一機率。
在一個與對稱解碼器相關之非限制性實例中,在步驟 S423或S467中自記憶體讀取對應於原始資料之位元。在此 實例中,可翻轉回讀位元中之一者或多者(針對每一位 兀,最初指配一「翻轉」該位元之相應機率)。若最初將 y翻轉」一既定位元之機率指配為「高」於必要的或 「低」於必要的,則疊代機率性錯誤校正常式可能「不必 要慢地」集中(即,對於計算而言,所需之步驟或資源及/ 或需要集中之時間量)。
因此,在一個非限制性使用案例中,若「該比較及^ 一在步驟S419或S435或S463中所確定之差異指示」之結; 指示一「樂觀情形」,則可指配指示一較低位元翻轉機; 之適當初始機率(此可「有助於」疊代機率性錯誤校正, 式較快地集中)。若該比較及/或一在步驟8419或“Μ 3 S463中所確定之差異指示之結果之值指示—「悲觀^ 形」,則可指配指示一較高位元翻轉機率之適當初始4 率〇 在步驟S715及S719中,進行春代當十,甘+ * τ 逆叮®代吊式,其中更新機率 (參見步驟S715)直至在步驟S719中滿足—「停止條件」為 139476.doc 40- 201007748 止(例如,直至作屮_ p 「τ , , _ 且主怍出已正確地」恢復「原始」資料之 確定為止)。在步驟S723中,該常式停止。 現在參考圖8。 如上文所提到,軟解碼器藉由下述方式來運作:為瑪字 中之每一位元指配一機率(例如,該位元之值為丨而不是〇 之機率),並運行乡重疊代,在該多重叠代中之每一者 中,根據其他位元之當前機率來改變每一位元之概論。 此類計算據說制「訊息傳遞」技術,因為每—位元皆 向其對等物「傳遞訊息」。—構建此等解碼器之主要設計 決策係訊息傳遞之匯流排寬度。使用一寬匯流排(例如ι〇 個位元)確保,若該演算法可應付錯誤,則該演算法實際 上將集中於正痛資料。但另一方面,解碼器之功率消料 此設計中較高。使用—窄匯流排(例如3個位元)提供低得多 的功能消耗,但在具有相對大量錯誤之情況下解碼器可能 無法集中於正確資料(即使在一相應寬匯流排解碼器中正 φ 確地解碼同—f料及錯誤耗於訊息傳遞之位元數 對解碼過程之功率消耗具有主要影響(位元數越高, 消耗就越高)。 此現象之原因之-在於在料作業期間該軟解碼器之訊 息及頻道輸人(軟值)儲存大功sRAMt。當例如我們 針對每一訊息使用3個位元而不是1〇個位元時,可關閉該 RAM之鄕。功率隸節省之另—源係處理此等傳遞訊息 之處理單元。很明顯,對3個位元而不是ι〇個位元實施計 算需要較小及較少功耗單元。 139476.doc •41· 201007748 可構建一其中可在解碼開始時設定「訊息傳遞」中之位 兀數之軟解碼器。因此,於—些實施例中,根據該比較及/ 或一在步驟S419或S435或S463中所確定之差異指示之結果 來選擇一解碼匯流排寬度大小。若該比較及一在步驟s4i9 或S435或S463中所確定之差異指示之結果指示一「樂觀情 形」,則可選擇一較小解碼匯流排寬度大小並相應地校正 錯誤。否則,選擇一較大解碼匯流排寬度大小可能更可 取0 此以圖形方式顯示於圖8中。在步驟S75〖中,根據該比參 較及/或差異指示之結果來選擇一解碼器匯流排寬度。在 步驟S755中,根據解碼器匯流排寬度之選定值來校正錯 誤。 對圖9之說明 於一些實施例中,步驟8419及/或8463之比較係原始資 料與第一讀取資料及/或快取讀取資料與第一主儲存讀取 資料之間的一「直接比較」。 另一選擇係或另外,步驟S419及/或S463之比較係一涉 及比較作業之該等輸人中之至少—者之—非識料指示函 數之「間接比較」。 貝料扣不函數」係一其結果指示並依賴於資料之函 數,其與(例如)一其結果係恆定或完全任意/隨機之函數形 成對比。-「非識別碼」函數係—不同於—識別碼函數之 函數(即,函數之結果不同於「函數之輸入」。 在-個實例中,明確地計算該等非識別碼指示函數中之 139476.doc -42- 201007748 -者或多者。另一選擇係,$需要明確地計算該等非識別 s 丁函數中之I或多者。在一個非限制性實例中,原 始:料j /或第-讀取資料及/或快取讀取資料及/或主儲存 區項取貧料之非識別碼指示函數可偶然駐存於記憶體。 現在參考圖9A。在圖9A之實例中,可在步驟㈣中藉 由下述方式來將第—讀取資料與原始資料相比較··⑴如同 在步驟S479中—樣實施-直接比較;及/或⑼實施一間接 比較。
該間接比較可包括以下直接比較中之任何一者: 0第-讀取資料與原始f料之—指示性非恒等函數之 間的一直接比較(即,一明確計算之函數或相反中 之任何一者); π)第一讀取資料之一指示性非恒等函數(即,一明確 計算之函數或相反中之任何一者)與原始資料之間 的一直接比較;及 iii)第一讀取資料之一指示性非恒等函數(即,一明確 計算之函數或相反中之任何一者)與原始資料之一 指示性非恒等函數(即,一明確計算之函數或相反 中之任何一者)之間的一直接比較。 在一個實例中,「原始資料之指示性非恒等函數」係藉 由明確地比較原始資料之函數而獲得。 如圖9B中所示,可在步驟S463中藉由以下方式來將第一 主储存讀取資料與快取讀取資料相比較:⑴如同在步驟 S489中一樣實施一直接比較;及/或(Η)實施一間接比較(例 139476.doc -43- 201007748 如,如同在步驟S491、S493中一樣)。 該間接比較可包括以下直接比較十之任何—者: Ο第一主儲存讀取資料與快取讀取資料之一 .恒等函數之間的-直接比較; ^性非 ⑴第一主儲存讀取資料之-指示性非恒等函數(即,一 明確計算之函數或相反中之任何一者)與快取讀 料之間的一直接比較;及 參 ill)第一主儲存讀取資料之一指示性非恒等函數(即,一 明確計算之函數或相反中之任何一者)與快取讀取資 料之一指示性非恒等函數(即,一明確計算之函數或 相反中之任何一者)之間的一直接比較。 對圓10之說明 圖10提供-用於校正錯誤之例示性常式之一流程圖。在 步驟S407中,編碼使用者資料以獲得原始資料。在一個非 限制性實例中’將「使用者資料」自主機31〇發送至周邊 快閃.器件26G*。在此實例中,根據「非系統化錯誤校正」 技術’周邊快閃器件26〇*在步驟S4〇7中將使用者資料編碼_ 至一其中不保存「使用者資料」之識別碼之碼字(在此實 例中,該「碼字」係在步驟S41丨中針對其作出一寫入至 . 「目標」記憶體(例如,快閃記憶體)之嘗試之原始資料) 中。 圖10之步驟S415類似於圖3之步驟S415。 在步驟S419’中,在第一讀取資料與使用者資料之間進 行一比較。該比較可係一直接比較或一間接比較。在一個 139476.doc •44- 201007748 非限制性實例中,「解碼」第—讀取資料並隨後將「所解 碼第一凟取資料」與使用者資料(其可係在步驟S411中寫 入之原始資料之一指示性非恒等函數)相比較。注意,步 驟S419僅係步驟S419之一特定案例(即,步驟s4i9,僅係一 .與參考圖3之步驟S419所述之原始資料與第一讀取資料之 間的比較相關聯之「間接比較」之一個實施形式)。 進步/主意,上文所述實施例中之任何一者可進一步包 籲 括在電腦可讀媒體上接收、發送或儲存實施上文結合各圖 式所述之作業之指令及/或資料。一般地說,一電腦可讀 媒體可包括諸如磁性或快閃或光學媒體之儲存媒體或記憶 媒體,例如磁碟或CD_R〇M、諸如RAM、R〇M等之揮發性 或非揮發性媒體、以及諸如經由一通信媒體(例如網路及/ 或無線鏈路)傳送之電、電磁或數位信號之傳輸媒體或信 號。 如此闡述上述例示性實施例之後,熟習此項技術者將易 Φ 知,可具有上述例示性實施例之各種等效、變更、修改及 改進形式,此並不背離下文所述之申請專利範圍之範疇及 • 主旨。特定而言,不同實施例可包括不同於本文中所述之 特徵組合。因此,申請專利範圍不僅限於上述說明。 【圖式簡單說明】 圖1A係一習用快閃記憶體儲存器件之一方塊圖; 圖1B係一與一主機器件連接之習用周邊快閃記憶體儲存 器件之一方塊圖; 圖1C係一包括一主儲存區域及一快取區域之習用快閃記 139476.doc -45- 201007748 憶體之一方塊圖; 圖2至圖8、圖10係根據一些實施例之錯誤校正技術之流 程圖;及 圖9A至圖9B圖解闡釋用於比較資料之不同常式。 【主要元件符號說明】 250 器件側介面 260 快閃記憶體儲存器件 260* 快閃記憶體儲存器件 270 快閃記憶體 270 快閃記憶體 272 快取區 274 主儲存區 280 快閃控制器 300 通信鏈路 310 主機器件 320 處理器 330 隨機存取記憶體 340 可執行碼 350 主機側介面 139476.doc • 46·
Claims (1)
- 201007748 七、申請專利範圍: 1· 一種用於處置錯誤校正之方法,該方法包含 a) 將原始資料寫入至一記憶體; b) 在该寫入之後,自該記憶體讀取,由此產生第一 讀取資料; c) 將該第一讀取資料與該原始資料相比較; d) 在该比較之後,自該記憶體讀取,由此產生第二 讀取資料;及 e) 根據步驟(c)之該比較之結果,在該第二讀取資料 中校正錯誤。 2·如請求項丨之方法,其中該記憶體係一揮發性記憶體。 3. 如請求項丨之方法,其中該記憶體係一非揮發性記憶 體0 4. 如請求項3之方法,其中該非揮發性記憶體係一快閃記 憶體。 5·如請求項1之方法,其中步驟⑷之該比較包括實施選自 由以下組成之群組之至少一個比較: 0該第一讀取資料與該原始資料之間的一直接比 較; H)該第一讀取資料與該原始資料之一指示性非恒等 函數之間的一直接比較; 次出)該第-讀取資料之-指示性非惶等函數與該原始 ^料之間的一直接比較;及 iv)遠第一讀取資料之—指示性非 •等函數與該原始 139476.doc 201007748 6. 7. 8. 9. 10. 資料之一指示性非恒等函數之間的一直接比較。 如請求項1之方法,其中回應於步驟&)之該寫入之一完 成進行步驟(b)之該讀取。 如請求項6之方法,以在步驟⑷之該寫入之該完成之 後即刻進行步驟(b)之該讀取。 如請求項1之方法,其中: 1}步驟⑷之該寫入係至該記憶體内之一目的地位 置;及 U)步驟(b)之該讀取及步驟(d)之該讀取中之至少一瘳 者係自該記憶體内之該目的地位置。 如。月求項1之方法,其進一步包含確定選自由以下組成 之群組之至少一個錯誤指示: 〇 該第一讀取資料中之一位元錯誤數量; u) 一含有錯誤資料之記憶體單元數量; )八中儲存有錯誤資料之一個或多個位元位置之一 列表; 1V)其中儲存有錯誤資料之一個或多個記憶體單元之® 一列表;及 Λ第凟取資料中之一特定位元或複數個位元係 — 錯誤的一機率之—值, I 據忒確疋之至少一個錯誤指示進行步驟(e)之該錯 誤校正。 如請求項1之方法,其中: )在步驟(a)中,將該原始資料寫入至該記憶體之一 139476.doc -2 - 201007748 主儲存區; n)步驟(b)之該讀取包括自該記憶體之該主儲存區讀 取以便從該主儲存區之内容產生該第一讀取資料;且 iu)該方法進一步包含: 在步驟(a)之該寫入之前,自不同於該記憶體之 該主儲存區之該記憶體之一快取區讀取以便獲得 ‘ 該原始資料。 n _如请求項1之方法,其中根據步驟(c)之該比較之該等結 果之該錯誤校正包括根據步驟(C)之該比較之該等結果來 選擇一解碼匯流排寬度大小。 12·如請求項I之方法,其中根據步驟(c)之該比較之該等結 果之β亥錯誤校正包括實施以下中之至少一者: 0根據步驟(C)之該比較之該等結果來選擇一第一解 瑀器及一第二解碼器尹之一者並僅使用該第—及第二解 瑪器中之該選擇之解碼器來校正錯誤;及 φ 1〇根據步驟(C)之該比較之該等結果來選擇一解碼器 之一第一模式及該解碼器之一第二模式中之—者且僅使 用該第-及第二模式,之該選擇之模式來校正錯誤。 13.如請求項1之方法,其中根據步驟(c)之該比較之該等結 果之該錯誤校正包括以下中之至少一者·· i)決定是否: A) 嘗試使用一較輕加權解碼器來校正錯誤或 B) 嘗試僅使用一重於該較輕加權解碼器之較重加 權解碼器來校正錯誤; 139476.d〇c 201007748 ϋ)決定是否: A)嘗試使用一較快解碼器來校正錯誤或 慢於該較快解二慢― iii) 決定是否: A) 嘗試使用一特定解碼器 卿之較輕加權模式來浐 正錯誤或 、來板 B) 嘗試僅使用該特定解碼器之—重於 模式之較重加權模式來校正錯誤;及…較加權 iv) 決定是否: 句嘗試使用一特定解碼器之一較快模式來校正錯 误或 曰 B)嘗試僅使㈣特定解碼器之―慢於該較快模式 之較慢模式來校正錯誤。 14. 如請求項1之方法,其中根據步驟⑷之該比較之該等結 果之邊第:資料中之該錯誤校正包括根據步驟⑷之該比 較之該等結果來確定該第二讀取資料之一個或多個位元 機率值。 15. —種用於處置錯誤校正之方法,該方法包含·· a) 將原始資料自一夺,廢# & 寸目D己隐體之一快取區複製至該記憶 體之一主儲存區; b) 在該複製之後,自該記憶體之該主儲存區讀取, 由此產生第一主儲存讀取資料; c) 在該複製之後’自該記憶體之該快取區讀取,由 139476.doc -4- 201007748 此產生快取讀取資料; d) 將該快取讀取資料與該第一主儲存讀取資料相比 較; e) 在該比較之後,自該記憶體之該主儲存區讀取, 由此產生第二主儲存讀取資料;及 f) 根據步驟(d)之該比較之結果,在該第二主儲存讀 取資料中校正錯誤。 16.如請求項15之方法,其中步驟⑷之該比較包括實施選自 由以下組成之群組之至少一個比較: 〇該第一主儲存讀取資料與該快取讀取資料之間的 一直接比較; ⑴該第一儲存區讀取資料與該快取讀取資料之一指 示性非恒等函數之間的一直接比較; 叫該第—主儲存讀取資料之-指示性非恒等函數盘 該快取讀取資料之間的-直接比較;及 ^ '讀取”存資料之-指示性非恒等函數盘 該快取讀取資料之—指示性非惶等函數之間的—直接^ 較。 17· 一種用於處置錯誤校正之方法,該方法包括 a) 將原始資料寫入至一記憶體; b) 在該寫入之後,ό 自”亥3己憶體讀取,由此產生第一 讀取資料; c) 根據該第一讀取資料, 貝竹確疋對該第一讀取資料與 该原始資料之間的一差異之一指示· 139476.doc 201007748 d) 在該差異指示之該確定之後,自該記憶體讀取, 由此產生第二讀取資料;及 e) 根據該差異指示,在該第二讀取資料中校正錯 誤0 139476.doc
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/143,796 US8321757B2 (en) | 2008-06-22 | 2008-06-22 | Method and apparatus for error correction |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW201007748A true TW201007748A (en) | 2010-02-16 |
Family
ID=40823047
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW098112510A TW201007748A (en) | 2008-06-22 | 2009-04-15 | Method and apparatus for error correction |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8321757B2 (zh) |
| TW (1) | TW201007748A (zh) |
| WO (1) | WO2009156870A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI455142B (zh) * | 2010-04-08 | 2014-10-01 | Silicon Motion Inc | 快閃記憶體之資料讀取的方法以及資料儲存裝置 |
| CN112068778A (zh) * | 2020-03-23 | 2020-12-11 | 杭州华澜微电子股份有限公司 | 用于保持从存储阵列中读取的数据的完整性的方法和设备 |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8386868B2 (en) * | 2008-04-16 | 2013-02-26 | Sandisk Il, Ltd. | Using programming-time information to support error correction |
| KR101139187B1 (ko) * | 2009-12-28 | 2012-04-26 | (주)인디링스 | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 |
| WO2011092532A1 (en) | 2010-01-28 | 2011-08-04 | Sandisk Il Ltd. | Sliding-window error correction |
| US8589726B2 (en) * | 2011-09-01 | 2013-11-19 | Infinidat Ltd. | System and method for uncovering data errors |
| US20140068390A1 (en) * | 2011-10-13 | 2014-03-06 | Hyperstone Gmbh | Hybrid decoding of bch codes for nonvolatile memories |
| CN102411548B (zh) * | 2011-10-27 | 2014-09-10 | 忆正存储技术(武汉)有限公司 | 闪存控制器以及闪存间数据传输方法 |
| KR101941270B1 (ko) * | 2012-01-03 | 2019-04-10 | 삼성전자주식회사 | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 |
| KR102149668B1 (ko) * | 2014-04-22 | 2020-08-31 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 디코딩 방법 |
| KR102468751B1 (ko) * | 2018-05-09 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US10795767B2 (en) * | 2018-12-26 | 2020-10-06 | M31 Technology Corporation | Error correcting system shared by multiple memory devices |
| KR102814656B1 (ko) * | 2019-01-11 | 2025-05-30 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 휘발성 메모리 내 오류를 처리하는 방법 및 장치 |
| US11593197B2 (en) | 2020-12-23 | 2023-02-28 | Samsung Electronics Co., Ltd. | Storage device with data quality metric and selectable data recovery scheme |
| US20250110826A1 (en) * | 2023-10-03 | 2025-04-03 | Micron Technology, Inc. | Valley search in read error recovery for a memory device using low-density parity check syndrome weight and auto-read calibration |
| US12517785B2 (en) * | 2023-10-13 | 2026-01-06 | SK Hynix Inc. | Non-blocking chipkill recovery |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5146592A (en) * | 1987-09-14 | 1992-09-08 | Visual Information Technologies, Inc. | High speed image processing computer with overlapping windows-div |
| TW506030B (en) * | 2001-03-30 | 2002-10-11 | Winbond Electronics Corp | Testing method for nonvolatile memory |
| US6961890B2 (en) * | 2001-08-16 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Dynamic variable-length error correction code |
| US6751766B2 (en) | 2002-05-20 | 2004-06-15 | Sandisk Corporation | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data |
| US7210077B2 (en) * | 2004-01-29 | 2007-04-24 | Hewlett-Packard Development Company, L.P. | System and method for configuring a solid-state storage device with error correction coding |
| US8402325B2 (en) * | 2004-08-02 | 2013-03-19 | St-Ericsson Sa | Data storage and replay apparatus |
| FR2896612B1 (fr) * | 2006-01-20 | 2008-06-27 | St Microelectronics Sa | Dispositif de memoire non volatile a rafraichissement periodique et procede de programmation d'un tel dispositif |
| US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
| US7506226B2 (en) * | 2006-05-23 | 2009-03-17 | Micron Technology, Inc. | System and method for more efficiently using error correction codes to facilitate memory device testing |
| US8171380B2 (en) * | 2006-10-10 | 2012-05-01 | Marvell World Trade Ltd. | Adaptive systems and methods for storing and retrieving data to and from memory cells |
| US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
| WO2008068747A2 (en) | 2006-12-03 | 2008-06-12 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
| US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
-
2008
- 2008-06-22 US US12/143,796 patent/US8321757B2/en not_active Expired - Fee Related
-
2009
- 2009-03-26 WO PCT/IB2009/051271 patent/WO2009156870A1/en not_active Ceased
- 2009-04-15 TW TW098112510A patent/TW201007748A/zh unknown
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI455142B (zh) * | 2010-04-08 | 2014-10-01 | Silicon Motion Inc | 快閃記憶體之資料讀取的方法以及資料儲存裝置 |
| CN112068778A (zh) * | 2020-03-23 | 2020-12-11 | 杭州华澜微电子股份有限公司 | 用于保持从存储阵列中读取的数据的完整性的方法和设备 |
| CN112068778B (zh) * | 2020-03-23 | 2022-04-26 | 杭州华澜微电子股份有限公司 | 用于保持从存储阵列中读取的数据的完整性的方法和设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20090319843A1 (en) | 2009-12-24 |
| WO2009156870A1 (en) | 2009-12-30 |
| US8321757B2 (en) | 2012-11-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201007748A (en) | Method and apparatus for error correction | |
| US10331345B2 (en) | Method and apparatus for reducing silent data errors in non-volatile memory systems | |
| CN107015886B (zh) | 操作存储设备的方法和操作包括其的数据处理系统的方法 | |
| US9921914B2 (en) | Redundant array of independent disks (RAID) write hole solutions | |
| TW201001426A (en) | Method and apparatus for error correction according to erase counts of a solid-state memory | |
| CN108089951A (zh) | 存储系统中的加速数据恢复 | |
| CN101427323A (zh) | 读取非易失性计算机存储器的系统和方法 | |
| TW201239624A (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
| BR112014005623B1 (pt) | Método de gravar escritas pendentes em um conjunto de armazenamento e meio de armazenamento legível por computador | |
| CN101681281A (zh) | 检测出现的坏块 | |
| US7783918B2 (en) | Data protection method of storage device | |
| TW201037710A (en) | Method for detecting flash program failures | |
| US10445252B2 (en) | Storage device and operating method performed by the same | |
| CN113113076B (zh) | 解码方法及相关的闪存控制器与电子装置 | |
| TW201217968A (en) | Data writing method, memory controller and memory storage apparatus | |
| TW201135462A (en) | Method of dynamically switching partitions, memory card controller and memory card storage system | |
| CN111831581A (zh) | 数据读取方法、装置及数据存储设备 | |
| TW201037716A (en) | Data access method for a flash memory and storage system and controller thereof | |
| CN110399097A (zh) | 一种分布式存储系统数据一致性的检查方法以及装置 | |
| US9323610B2 (en) | Non-blocking commands | |
| KR102841012B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| TWI273604B (en) | Memory card and semiconductor device | |
| CN115840661A (zh) | 从hmb丢失恢复的无dram ssd | |
| CN108389600A (zh) | 数据储存装置以及参数改写方法 | |
| US8423865B2 (en) | Apparatus and method for storing data using non-volatile buffer |