亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

糾錯處理的方法、裝置及固態(tài)硬盤設備的制作方法

文檔序號:6769423閱讀:173來源:國知局
專利名稱:糾錯處理的方法、裝置及固態(tài)硬盤設備的制作方法
技術領域
本發(fā)明涉及數(shù)據(jù)存儲技術,特別涉及一種糾錯處理的方法、裝置和固態(tài)硬盤設備。
背景技術
固態(tài)硬盤多使用NAND Flash (與非門閃存)來實現(xiàn),NAND Flash是一種非易失性 隨機訪問存儲介質,其特點是斷電后數(shù)據(jù)不丟失,它不同于傳統(tǒng)的易失性隨機訪問存儲介 質和揮發(fā)性存儲器,可以作為外部存儲器使用。固體硬盤的NAND Flash在使用過程會出現(xiàn)翻轉導致數(shù)據(jù)出錯,所以在使用NAND Flash的固態(tài)硬盤需要配備錯誤檢查和糾正(Error Checking and Correcting,以下簡稱 ECC)模塊。目前NAND Flash在出廠時都會有最低配備ECC糾錯位數(shù)的要求,如4bits/512B、 24bits/lKB等;但是ECC糾錯的位數(shù)越多帶來的功耗就越大,固態(tài)硬盤的讀取速度也會帶 來影響。另外,為了保證固態(tài)硬盤的可靠性,在ECC將要出現(xiàn)不可糾正的ECC錯誤時往往采 取ECC預警,如采用8bits/512Bytes的ECC糾錯,在出現(xiàn)6bit錯誤就啟動預警,系統(tǒng)再根 據(jù)具體的情況做容錯處理;現(xiàn)有技術的方案中,考慮到實現(xiàn)復雜度和成本的問題,通常是采用固定的ECC算 法和固定的ECC預警處理。固定的ECC算法如采用4bits/512Bytes的ECC糾錯、采用 8bits/512Bytes的ECC糾錯;固定的ECC預警如采用8bits/512Bytes的ECC糾錯,在出現(xiàn) 6bit錯誤時就啟動預警,系統(tǒng)再根據(jù)具體的情況做容錯處理。但ECC錯誤在NAND Flash中實際出現(xiàn)的情況比較復雜,由于各供應商的NAND Flash顆粒之間是有差別的,所以各種顆粒在使用過程中的ECC錯誤位數(shù)出現(xiàn)的規(guī)律也不 盡相同,固定的ECC算法在需要糾錯位數(shù)較多的情況下要耗費很大的功耗,并且在讀取的 時候影響速度;固定的預警水線不能兼容多家廠商,以Mbits/IK Bytes的ECC糾錯為例, 假設ECC預警水線設為20bit,針對不同供應商的實際的ECC出錯曲線,該預警水線值可能 會有問題,例如符合了 A供應商的ECC出現(xiàn)特點但未必符合B供應商的ECC出現(xiàn)特點。另外,ECC錯誤位數(shù)出現(xiàn)的規(guī)律與擦/寫次數(shù)之間也是有關系的,現(xiàn)有技術方案并 沒有考慮擦/寫次數(shù)對出現(xiàn)ECC的影響,依然以Mbits/IK Bytes的ECC糾錯為例,在擦/ 寫1000次后讀20,000次可能會出現(xiàn)Mbit ECC錯誤;而在擦/寫10次后讀20,000次可 能僅僅出現(xiàn)^it ECC錯誤;不考慮不同供應商的ECC分布區(qū)別以及不考慮擦/寫次數(shù)對出 現(xiàn)ECC的影響,在實際應用時會帶來問題。因此,采用固定的ECC算法和固定的ECC預警處理的方式,缺乏靈活性,不能滿足 多個供應商的不同的需求,ECC處理的效果也比較差。

發(fā)明內容
本發(fā)明實施例公開了一種糾錯處理的方法、裝置和固態(tài)硬盤設備,通過在ECC編 碼模塊中設置多個ECC算法單元,使得可以根據(jù)實際應用的顆粒特性選擇相應的ECC算法, 改善ECC處理的效果。
本發(fā)明實施例提供了一種糾錯處理的方法,包括根據(jù)錯誤檢查和糾正ECC算法與進行ECC糾錯的硬盤的顆粒特性的對應關系,在 ECC模塊中嵌入與所述硬盤的顆粒特性對應的至少兩種ECC算法;根據(jù)當前進行ECC糾錯的硬盤的顆粒特性,選擇相應的ECC算法進行ECC糾錯處理。本發(fā)明實施例還提供了一種糾錯處理的裝置,包括錯誤檢查和糾正ECC模塊;所述ECC模塊包括ECC算法單元和選擇單元;所述ECC算法單元中嵌入至少兩種ECC算法,所述ECC算法與進行ECC糾錯的硬 盤的顆粒特性相對應;所述選擇單元用于根據(jù)當前進行ECC糾錯硬盤的顆粒特性,選擇相應的ECC算法 進行ECC糾錯處理。本發(fā)明實施例還提供了一種固態(tài)硬盤設備,包括處理器、存儲模塊、控制器、內存 以及接口模塊;其中所述控制器包括上述的糾錯處理的裝置。本發(fā)明在對硬盤進行ECC處理的過程中,通過在ECC編碼模塊設置多個ECC算法, 使得可以根據(jù)實際應用的顆粒特性選擇相應的ECC算法,能夠滿足各個供應商的不同的需 求,同時改善ECC處理的效果。


圖Ia為本發(fā)明一實施例提供的糾錯處理的方法流程圖;圖Ib為本發(fā)明一實施例提供的ECC模塊進行ECC編碼處理的示意圖;圖Ic為本發(fā)明一實施例提供的ECC模塊進行EEC解碼處理的示意圖;圖加為本發(fā)明一實施例提供的糾錯預警的方法流程圖;圖2b為本發(fā)明一實施例提供的根據(jù)擦/寫次數(shù)設置ECC預警水線的示意圖;圖3為本發(fā)明一實施例提供的糾錯處理的裝置的結構示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。在本發(fā)明實施例中,在對固態(tài)硬盤進行ECC糾錯處理的過程中,通過在ECC模塊設 置多個ECC算法單元,使得可以根據(jù)實際應用的顆粒特性選擇相應的ECC算法,能夠滿足各 個供應商的不同的需求,同時改善ECC處理的效果。本實施例提供的糾錯處理的方法的流程圖如圖Ia所示,本實施例的執(zhí)行主體可 以為ECC模塊,方法包括步驟11、根據(jù)ECC算法與進行ECC糾錯的硬盤的顆粒特性的對應關系,在ECC模塊 中嵌入與所述硬盤的顆粒特性相對應的至少兩種ECC算法;本實施例中采用的ECC模塊參見圖Ib和圖Ic所示,其中圖Ib為ECC模塊進行編 碼處理的示意圖,圖Ic為ECC模塊進行解碼處理的示意圖。
在ECC模塊中設置有ECC算法單元,ECC算法單元中設置有至少兩種ECC算法,如 8bit/512B、12bit/512B、24bit/lKB等,實際的算法模塊包含且不限于此,可以根據(jù)不同供 應商的需求設計相應的算法,不同供應商生產的NAND Flash的顆粒特性是有差別的,而不 同NAND Flash的顆粒特性需要使用不同的ECC算法進行ECC糾錯,才能達到最有效的效果。本實施例中,考慮到的固態(tài)硬盤的顆粒特性可包括多個方面,比如可以是擦/寫 (Program/Erase)次數(shù)、CPU占用率、內存占用率等。以考慮擦/寫次數(shù)為例進行說明,比如, 使用供應商A的NAND Flash的固態(tài)硬盤A的顆粒特性,與使用供應商B的NAND Flash的固 態(tài)硬盤B的顆粒特性會有所不同。例如在擦/寫了 1000次后,固態(tài)硬盤A在讀操作10000 次時,ECC錯誤位數(shù)為libit ;而固態(tài)硬盤B在讀操作10000次時,ECC錯誤位數(shù)為6bit。因此,對于固態(tài)硬盤A,在擦/寫了 1000次后,可能使用ECC算法A會有比較好的 ECC處理效果,而對于固態(tài)硬盤B,在擦/寫了 1000次后,可能使用ECC算法B會有比較好 的處理效果。不同供應商的NAND Flash,可以根據(jù)統(tǒng)計的方式得出其顆粒特性所對應的最 有效的ECC算法。使用不同供應商的NAND Flash的固態(tài)硬盤,由于不同NAND Flash顆粒特性不同, 其對應的最有效的ECC算法也不同。為了更好的進行ECC處理,預先建立該固態(tài)硬盤的顆 粒特性與ECC算法的對應關系。比如,固態(tài)硬盤A,其顆粒特性與ECC算法的對應關系可以為擦/寫了 1000次時, 對應ECC算法C,擦/寫了 2000次時,對應ECC算法D,擦/寫了 N次時,對應算法M,則該設 備中的ECC算法可以設置算法C、D、M0步驟12、根據(jù)當前進行ECC糾錯的硬盤的顆粒特性,選擇相應的ECC算法進行ECC 糾錯處理。在ECC模塊中設置至少一個選擇單元,該選擇單元可以是選擇器,選擇單元根據(jù) 當前進行ECC糾錯硬盤的顆粒特性,確定相對應的ECC算法,并控制ECC模塊采用相應的 ECC算法進行糾錯處理。該選擇單元根據(jù)實際應用固態(tài)硬盤的顆粒特性與ECC算法的對應關系,就能夠確 定并選擇相應的ECC算法。如可以根據(jù)該固態(tài)硬盤當前的擦/寫次數(shù)來選擇ECC算法,如 在擦/寫100次以內使用8bit/512B的ECC算法,擦/寫達到一個較大值如該固態(tài)硬盤的 出廠額定擦/寫次數(shù)的50%時(不同供應商的硬盤的額定擦/寫次數(shù)可能不同),可以使 用Mbit/IKB的ECC算法?;蛘咭部梢愿鶕?jù)資源使用情況在ECC算法單元內嵌多組ECC算 法,根據(jù)不同的情況做不同的選擇,如固態(tài)硬盤CPU占用了 30%時使用ECC算法A,占用了 50%時使用ECC算法B。需要說明的是,可以在該固態(tài)硬盤中添加至少一個能夠統(tǒng)計擦/寫次數(shù)和/或讀 操作次數(shù)的記數(shù)模塊,記錄該固態(tài)硬盤已進行擦/寫的次數(shù)和/或讀操作的次數(shù)。在具體實現(xiàn)時,選擇單元可以設置編碼選擇標志位,編碼選擇標志位與ECC算法 一一對應。選擇單元通過編碼選擇標志位,指示ECC模塊進行糾錯處理時,采用哪一種ECC 算法進行編碼,比如編碼選擇標志位為01時,用于指示ECC模塊選擇ECC算法單元中的算 法A進行ECC處理;編碼選擇標志位為10時,用于指示ECC模塊選擇ECC算法單元中的算 法B進行ECC處理。在選擇單元選擇了 ECC算法進行編碼處理后;在進行相應的解碼處理時,則需要采用與編碼時相同的ECC算法進行相應的解碼處理。即在使用某種ECC算法時,在進行解碼 時也必須采用同樣的ECC算法,保證數(shù)據(jù)的一致性;如編碼時寫入的數(shù)據(jù)使用12bit/512B 的ECC算法,在解碼的時候也必須使用12bit/512B的DEC解碼算法。本實施例在對固態(tài)硬盤進行ECC處理的過程中,通過在ECC模塊中設置多個ECC 算法,使得固態(tài)硬盤可以根據(jù)實際應用的顆粒特性選擇相應的ECC算法,能夠滿足各個供 應商的不同的需求,同時改善ECC處理的效果。在上述實施例的基礎上,可以利用上述糾錯處理的方法,在進行ECC糾錯處理的 過程中,進一步的進行糾錯預警,本實施例提供了一種糾錯預警的方法,用以在對固態(tài)硬盤 進行糾錯處理的過程中進行動態(tài)的預警,參見圖加所示為本實施例提供的糾錯預警的方 法流程圖,本實施例的執(zhí)行主體可以為ECC模塊,方法包括步驟21、根據(jù)進行ECC糾錯的硬盤的顆粒特性,設置至少兩個預警水線。在ECC模塊設置至少兩個ECC預警水線,所述預警水線與ECC糾錯的顆粒特性相 對應,用于在ECC糾錯過程中,ECC錯誤位數(shù)突然增加時進行預警,以提示固態(tài)硬盤可能有 故障。比如,對于上述舉例的固態(tài)硬盤A和固態(tài)硬盤A,在擦/寫了 1000次后,固態(tài)硬盤 A在讀操作了 10000次時,ECC錯誤位數(shù)為libit ;而固態(tài)硬盤B在讀操作了 10000次時, ECC錯誤位數(shù)為6bit。則說明固態(tài)硬盤A可靠性不好,因此,可以設置固態(tài)硬盤A的預警水 線相對比較高,如擦/寫1000次時,預警水線20bit,在其ECC錯誤位數(shù)為20bit時,預警以 提示所述固態(tài)硬盤可能出現(xiàn)了問題。固態(tài)硬盤B可靠性較好,可以設置固態(tài)硬盤B的預警 水線相對比較低,如擦/寫1000次時,預警水線lObit,在其ECC錯誤位數(shù)為IObit時進行 預警。對于使用不同供應商的NAND Flash的固態(tài)硬盤,在設置ECC預警水線的時候,考 慮到的固態(tài)硬盤的顆粒特性主要可以有以下幾個角度1、ECC錯誤位數(shù)的分布特性,如ECC 錯誤位數(shù)的最大值和最小值,以及ECC錯誤位數(shù)的平均值等。比如在進行了 20000次以內 的讀操作過程中,產生的最小的ECC錯誤位數(shù),以及最大的ECC錯誤位數(shù),以及產生的ECC 錯誤位數(shù)的平均值。2、擦/寫次數(shù)對產生ECC錯誤位數(shù)的影響,通常情況下,對固態(tài)硬盤擦 /寫次數(shù)越多,相應的產生的ECC錯誤位數(shù)也越多。比如擦/寫了 100次時,可能使ECC錯 誤位數(shù)增加10%,擦/寫了 1000次時,可能使ECC錯誤位數(shù)增加20%。進行了相同次數(shù)的 擦/寫操作,ECC錯誤位數(shù)增加數(shù)量越小的固態(tài)硬盤其性能越穩(wěn)定。因此,本實施例中,預警水線是根據(jù)實際應用的顆粒特性進行設置的,非固定值需 要動態(tài)調整。該預警水線根據(jù)不同應用場景動態(tài)調整為不同的值;如在擦/寫次數(shù)為額定 擦/寫次數(shù)的10%以下時使用IObit水線,達到額定擦/寫次數(shù)的50%以上時使用20bit 水線等。預警水線的設置公式可以為下式
權利要求
1.一種糾錯處理的方法,其特征在于,包括根據(jù)錯誤檢查和糾正ECC算法與進行ECC糾錯的硬盤的顆粒特性的對應關系,在ECC 模塊中嵌入與所述硬盤的顆粒特性對應的至少兩種ECC算法;根據(jù)當前進行ECC糾錯的硬盤的顆粒特性,選擇相應的ECC算法進行ECC糾錯處理。
2.根據(jù)權利要求1所述的糾錯處理的方法,其特征在于,根據(jù)當前進行ECC糾錯的顆粒 特性,選擇相應的ECC算法進行ECC糾錯處理,包括根據(jù)當前進行ECC糾錯的硬盤的擦/寫次數(shù)選擇ECC算法進行ECC糾錯處理。
3.根據(jù)權利要求1所述的糾錯處理的方法,其特征在于,還包括在對ECC糾錯處理生成的編碼數(shù)據(jù)進行解碼處理時,采用與編碼時使用的相同的ECC 算法進行解碼處理。
4.根據(jù)權利要求1所述的糾錯處理的方法,其特征在于,還包括根據(jù)進行ECC糾錯的硬盤的顆粒特性,設置至少兩個預警水線,根據(jù)硬盤當前的使用情況,調整所述預警水線;根據(jù)調整后的所述預警水線,進行ECC預警處理。
5.根據(jù)權利要求4所述的糾錯處理的方法,其特征在于,根據(jù)硬盤當前的使用情況,調 整所述預警水線,包括根據(jù)硬盤當前已進行的擦/寫次數(shù)和/或讀操作次數(shù),調整所述預警水線。
6.根據(jù)權利要求4所述的糾錯處理的方法,其特征在于,根據(jù)硬盤當前的使用情況,調 整所述預警水線,包括在產生了一個以上的ECC預警時,根據(jù)所述ECC預警的優(yōu)先級順序,對所述ECC預警進 行處理。
7.一種糾錯處理的裝置,其特征在于,包括錯誤檢查和糾正ECC模塊;所述ECC模塊包括ECC算法單元和選擇單元;所述ECC算法單元中嵌入至少兩種ECC算法,所述ECC算法與進行ECC糾錯的硬盤的 顆粒特性相對應;所述選擇單元用于根據(jù)當前進行ECC糾錯硬盤的顆粒特性,選擇相應的ECC算法進行 ECC糾錯處理。
8.根據(jù)權利要求7所述的糾錯處理的裝置,其特征在于,所述選擇單元用于根據(jù)當前進行ECC糾錯的硬盤的擦/寫次數(shù)選擇ECC算法進行糾錯 處理;所述ECC模塊用于在對ECC糾錯處理生成的編碼數(shù)據(jù)進行解碼處理時,采用與編碼時 使用的相同的ECC算法進行解碼處理。
9.根據(jù)權利要求7所述的糾錯處理的裝置,其特征在于,還包括預警模塊,所述預警模 塊中設置有至少兩個預警水線,所述預警水線與進行ECC糾錯的硬盤的顆粒特性相對應;所述預警模塊包括調整單元和處理單元;所述調整單元用于根據(jù)硬盤當前的使用情況,調整所述預警水線;所述處理單元用于根據(jù)調整后的所述預警水線,進行ECC預警處理。
10.根據(jù)權利要求9所述的糾錯處理的裝置,其特征在于,所述調整單元具體用于根據(jù)硬盤當前已進行的擦/寫次數(shù)和/或讀操作次數(shù),調整所述預警水線;所述處理單元具體用于在產生了一個以上的ECC預警時,根據(jù)所述ECC預警的優(yōu)先級 順序,對所述ECC預警進行處理。
11. 一種固態(tài)硬盤設備,其特征在于,包括處理器、存儲模塊、控制器、內存以及接口 模塊;其中所述控制器包括如權利要求7-10所述的糾錯處理的裝置。
全文摘要
本發(fā)明公開了一種糾錯處理的方法、裝置和固態(tài)硬盤設備,方法包括根據(jù)錯誤檢查和糾正ECC算法與進行ECC糾錯的硬盤的顆粒特性的對應關系,在ECC模塊中嵌入至少與所述硬盤的顆粒特性對應的至少兩種ECC算法;根據(jù)當前進行ECC糾錯的硬盤的顆粒特性,選擇相應的ECC算法進行ECC糾錯處理。本發(fā)明在對硬盤進行ECC處理的過程中,通過在ECC編碼模塊設置多個ECC算法,使得可以根據(jù)實際應用的顆粒特性選擇相應的ECC算法,能夠滿足各個供應商的不同的需求,同時改善ECC處理的效果。
文檔編號G11C7/10GK102081970SQ20101062082
公開日2011年6月1日 申請日期2010年12月31日 優(yōu)先權日2010年12月31日
發(fā)明者周建華 申請人:成都市華為賽門鐵克科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1