新四季網

檢測存儲設備壞塊的方法和裝置的製作方法

2023-06-10 17:39:41

專利名稱:檢測存儲設備壞塊的方法和裝置的製作方法
技術領域:
本發明涉及存儲技術,尤其涉及一種檢測存儲設備壞塊的方法和裝置。
背景技術:
Nand快閃記憶體是一種比硬碟驅動器更好的存儲方案,由於其編程速度快、擦除時間短,在現有產品的應用中極具吸引力。根據技術方式,Nand快閃記憶體分為單層單元(Single LayerCell,簡稱 SLC)Nand 快閃記憶體和多層單兀(Multi-Level Cell,簡稱 MLC)Nand 快閃記憶體。SLC Nand快閃記憶體的每個存儲單元中只有Ibit數據,而MLC Nand快閃記憶體的每個存儲單元存儲2bit數據。與SLC Nand快閃記憶體相比,MLC Nand快閃記憶體的容量大、成本低,但由於MLC Nand快閃記憶體的存儲單元 中存放的資料較多,結構複雜,出錯的機率大,容易發生位翻轉,在使用MLCNand快閃記憶體時,需要使用糾錯算法進行數據的校驗和糾錯。現有技術中,針對Nand快閃記憶體的使用過程中新增壞塊的檢測主要採用以下兩種方案。方案一隻有在擦除失敗的時候,將塊標記為壞塊,如果在寫的過程中出現位翻轉現象,直接返回失敗給上層文件系統處理,如果在讀的過程中出現糾錯算法不能糾正的情況,也直接返回失敗給上層文件系統處理。方案二 在擦除失敗的時候,將塊標記為壞塊,並且,如果在寫的過程中出現位翻轉現象,將塊標記為壞塊,如果在讀的過程中出現糾錯算法不能糾正的情況,也將塊標記為壞塊。採用上述兩種檢測壞塊的方法,容易造成由於壞塊太多而找不到可用塊進行寫操作或數據無法讀出的現象,甚至由於壞塊數量太多使得晶片報廢,從而導致存儲設備的可
靠性差。

發明內容
本發明的第一個方面是提供一種檢測存儲設備壞塊的方法,用以解決現有技術中的缺陷,提高存儲設備的可靠性。本發明的另一個方面是提供一種檢測存儲設備壞塊的裝置,用以解決現有技術中的缺陷,提高存儲設備的可靠性。本發明的第一個方面是提供一種檢測存儲設備壞塊的方法,包括向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼;比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼;當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於第二校驗水線時,為目標塊添加壞塊標記。
如上所述的方法,其中,向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼包括獲取一個空閒塊;判斷空閒塊是否攜帶壞塊標記;如果是,返回獲取一個空閒塊的步驟;否則,以空閒塊作為目標塊,向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼;比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量包括從目標塊中讀取存儲的目標數據,比較目標數據與目標塊中存儲的目標數據,統計目標塊中存儲的目標數據中發生翻轉的位的數量。本發明的另一個方面是提供一種檢測存儲設備壞塊的方法,包括當目標塊攜帶準壞塊標記時,從目標塊中讀取目標 數據和目標數據對應的高級校驗強度的校驗碼,根據高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據;當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼,根據普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。如上所述的方法,其中,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據之後,還包括根據從目標塊中讀取的目標數據和目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼,向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據;當目標塊中存儲的目標數據中發生翻轉的位的數量小於第一校驗水線時,向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據。如上所述的方法,其中,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據之後,還包括根據從目標塊中讀取的目標數據和目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為目標塊添加壞塊標記,向目標塊的下一個空閒塊中寫入並向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據,;當目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據。本發明的又一個方面是提供一種檢測存儲設備壞塊的裝置,包括寫入單元,用於向目標塊中寫入目標數據和目標數據對應的校驗碼;比較單元,用於比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;標記單元,用於當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼,當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於第二校驗水線時,為目標塊添加壞塊標記。如上所述的裝置,其中,寫入單元具體用於獲取一個空閒塊,判斷空閒塊是否攜帶壞塊標記,如果是,再次獲取一個空閒塊,否則,以空閒塊作為目標塊,向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼;比較單元具體用於從目標塊中讀取存儲的目標數據,比較目標數據與目標塊中存儲的目標數據,統計目標塊中存儲的目標數據中發生翻轉的位的數量。本發明的再一個方面是提供一種檢測存儲設備壞塊的裝置,包括讀取單元,用於當目標塊攜帶準壞塊標記時,從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼,當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼; 校驗單元,用於在目標塊攜帶準壞塊標記時,根據高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據,並用於在目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,根據普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。如上所述的裝置,其中,還包括比較單元,用於在目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,根據從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;標記單元,用於在目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼;收發單元,用於向文件系統返回採用普通校驗強度糾正的目標塊中存儲的目標數據。如上所述的裝置,其中,還包括比較單元還用於在目標塊攜帶準壞塊標記時,根據從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;標記單元還用於在目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為目標塊添加壞塊標記,向目標塊的下一個空閒塊中寫入採用最高校驗強度糾正的目標塊中存儲的目標數據;收發單元還用於向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據。由上述發明內容可見,本發明所提供的檢測存儲設備壞塊的方法和裝置,通過在系統中為Nand Flash的位翻轉數量設置水線,區分出塊的不同狀態,並針對不同狀態設置不同的數據校驗強度,可保證塊由正常塊變為壞塊時期中的數據可以被正確讀出,有效提高了存儲設備的可靠性。


圖I為本發明實施例一的檢測存儲設備壞塊的方法的流程圖;圖2為本發明實施例二的檢測存儲設備壞塊的方法的流程圖;圖3為本發明實施例三的檢測存儲設備壞塊的裝置的結構示意圖;圖4為本發明實施例四的檢測存儲設備壞塊的裝置的結構示意圖;圖5為本發明實施例六的檢測存儲設備壞塊的方法的流程圖;圖6為本發明實施例七的檢測存儲設備壞塊的方法的流程圖;
圖7為本發明實施例八的檢測存儲設備壞塊的裝置的結構示意圖;圖8為本發明實施例九的檢測存儲設備壞塊的裝置的結構示意圖。
具體實施例方式圖I為本發明實施例一的檢測存儲設備壞塊的方法的流程圖。如圖I所示,本實施例的方法包括步驟101 :向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼。在本步驟中,具體的,寫入的目標數據存放於該目標塊的數據存儲區;所生成的普通校驗強度的校驗碼存儲於該目標塊的空閒存儲區。優選地,該普通校驗強度可以為晶片要求的校驗強度。步驟102 比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,可將步驟I中寫入目標塊中的目標數據讀出,然後,與目標數據進行對比統計,得到目標塊中存儲的目標數據發生翻轉的位的位數。步驟103 :判斷目標塊中存儲的目標數據中發生翻轉的位數是否大於或等於第二校驗水線。步驟104 :若目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於第二校驗水線,為目標塊添加壞塊標記。具體地,該第二校驗水線可以為晶片所要求的校驗強度。例如,可設置第二校驗水線為8bit/512Byte。表示若一個目標塊中所存儲的數據的位翻轉數量超過此值,則表示該塊已經是一個壞塊,不能再存儲數據。此時,給該塊添加壞塊標記。具體地,該壞塊標記可以存儲在快閃記憶體空閒區內。優選地,可存儲在空閒區的第6個字節。若該字節內是非OxFF的值,則表示此塊為壞塊。步驟105 :若目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,繼續判斷該翻轉的位數是否大於或等於第一校驗水線。步驟106 :若翻轉的位數大於或等於預設的第一校驗水線,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並更新;步驟107 :若翻轉的位數小於預設的第一校驗水線,向文件系統返回寫入成功消
肩、O在該步驟中,具體地,第一校驗水線的值可以為一個低於第二校驗水線且接近第二校驗水線的值,比如,可以設置為第二校驗水線的值的75%,即若第二校驗水線的值為8bit/512Byte,則第一校驗水線的值就為6bit/512Byte。第一校驗水線表示一個塊已經接近壞塊了,還可以存儲數據,但是需要對數據進行加強保護。當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,可以為此目標塊添加準壞塊標記,具體地,該準壞塊標記可以存儲在快閃記憶體空閒區內,且優選地,可以存儲在存儲壞塊標記的位置的後面。同時,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼。當目標塊為準壞塊時,需對該準壞塊進行加強保護,即要提高其校驗強度。該提高的校驗強度即為高級校驗強度。該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。在本發明實施例一中,通過在系統中為寫入數據的位翻轉數量設置水線,區分出塊的不同狀態,並針對不同狀態設置不同的數據校驗強度,可保證塊由正常塊變為壞塊時期中的數據可以被正確讀出,有效提高了存儲設備的可靠性。
圖2為本發明實施例二的檢測存儲設備壞塊的方法的流程圖。如圖2所示,該方法可以包括步驟201 :獲取一個空閒塊。具體地,在有待寫入數據時,文件系統會首先查找Nand快閃記憶體中的空閒塊,然後選擇一個空閒塊。步驟202 :判斷所選擇的空閒塊是否攜帶壞塊標記。具體地,若該塊攜帶壞塊標記,則表明該塊已不能存儲數據,則返回步驟201,繼續獲取下一個空閒塊。具體地,所選擇的空閒塊所攜帶的壞塊標記可以為出廠壞塊標記,也可以為新增壞塊標記。因Nand flash生產工藝的問題,晶片在出廠的時候允許有一定的壞塊,這些壞塊被稱為固有壞塊。這些固有壞塊會被廠家打上出廠壞塊標記,在有數據寫入時,便不會存儲進這些壞塊中。而這些新增壞塊標記則是在數據的讀寫過程中添加進去的。步驟203 :若該塊不攜帶壞塊標記,則以該空閒塊作為目標塊,向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼。具體地,寫入的目標數據存放於該目標塊的數據存儲區;所生成的普通校驗強度的校驗碼存儲於該目標塊的空閒存儲區。優選地,該普通校驗強度可以為晶片要求的校驗強度。步驟204 :比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,可以包括從目標塊中讀取存儲的目標數據,然後比較目標數據與目標塊中存儲的目標數據,並統計目標塊中存儲的目標數據中發生翻轉的位的數量。步驟205 :判斷目標塊中存儲的目標數據中發生翻轉的位數是否大於或等於第二校驗水線。步驟206 :若目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於第二校驗水線,則為目標塊添加壞塊標記。具體地,該第二校驗水線可以為晶片所要求的校驗強度。例如,可設置第二校驗水線為8bit/512Byte。即若一個目標塊中所存儲的數據的位翻轉數量超過此值,則表示該塊已經是一個壞塊,不能再存儲數據。此時,給該塊添加壞塊標記。為目標塊添加壞塊標記之後,向文件系統返回寫入失敗消息,並返回步驟201,繼續獲取下一個空閒塊。具體地,該壞塊標記可以存儲在快閃記憶體的空閒區內,優選地,可存儲在空閒區的第6個字節內。若該字節內是非OxFF的值,則表示此塊為壞塊。步驟207 :若目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,繼續判斷該翻轉的位數是否大於或等於預設的第一校驗水線。步驟208 :若翻轉的位數大於或等於預設的第一校驗水線,則為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新。在該步驟中,具體地,第一校驗水線的值可以為一個低於第二校驗水線且接近第二校驗水線的值,比如,可以設置為第二校驗水線的值的75%,即若第二校驗水線的值為8bit/512Byte,則第一校驗水線的值就為6bit/512Byte。第一校驗水線表示一個塊已經接近壞塊了,還可以存儲數據,但是需要對數據進行加強保護。
當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第一校驗水線時,可以為此目標塊添加準壞塊標記,具體地,該準壞塊標記可以存儲在快閃記憶體空閒區內存儲壞塊標記的位置的後面。同時,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼。當目標塊為準壞塊時,需對該準壞塊進行加強保護,即要提高其校驗強度。該提高的校驗強度即為高級校驗強度。該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。步驟209 :向文件系統返回寫入成功消息。具體地,可以在採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼之後,向文件系統返回寫入成功消息;或者,當數據翻轉位數小於第一校驗水線的時候,直接向文件系統返回寫入成功消息。在本發明實施例二中,通過在系統中為數據的位翻轉數量設置水線,區分出塊的不同狀態,並針對不同狀態設置不同的數據校驗強度,可保證塊由正常塊變為壞塊時期中的數據可以被正確讀出;且在寫入數據之前,先判斷塊的狀態,保證了數據不會被寫入壞塊,有效提高了設備存儲數據的可靠性。圖3為本發明實施例三的檢測存儲設備壞塊的裝置的結構示意圖。如圖3所示,檢測存儲設備壞塊的裝置300可包括寫入單元301,比較單元302和標記單元303。具體地,寫入單元301用於向目標塊中寫入目標數據和目標數據對應的校驗碼。具體地,寫入的目標數據存放於該目標塊的數據存儲區;目標數據所對應的校驗碼存儲於該目標塊的空閒存儲區。該校驗碼可以為普通校驗強度的校驗碼,也可以為高級校驗強度對應的校驗碼。優選地,該普通校驗強度可以為晶片要求的校驗強度,高級校驗強度可以為略高於普通校驗強度的的校驗強度。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。比較單元302用於比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,通過獲取目標塊中存儲的目標數據中發生翻轉的位的數量,可判斷塊的狀態,並可根據塊的不同狀態選取不同的校驗強度對數據進行校驗。
標記單元303用於當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼,當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於第二校驗水線時,為目標塊添加壞塊標記。具體地,該第二校驗水線可以為晶片所要求的校驗強度。若一個目標塊中所存儲的數據的位翻轉數量超過此值,則表示該塊已經是一個壞塊,不能再存儲數據。此時,給該塊添加壞塊標記。第一校驗水線的值可以為一個低於第二校驗水線且接近第二校驗水線的值,比如,可以設置為第二校驗水線的值的75%,即若第二校驗水線的值為8bit/512Byte,則第一校驗水線的值就為6bit/512Byte。第一校驗水線表示一個塊已經接近壞塊了,還可以存儲數據,但是需要對數據進行加強保護。具體地,該添加的壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可存儲在該區的第6個字節。若該字節內是非OxFF的值,則表示此塊為壞塊。準壞塊標記也可以存儲在快閃記憶體空閒區內,優選地,可以存儲在壞塊標記的後邊一個字節。即,若壞塊標記存儲在第6個字節內,則準壞塊標記可以存儲在第7位元組。在本發明實施例三中,通過比較單元和標記單元對寫入數據的位翻轉的判斷以及對目標塊狀態的判斷,並針對不同狀態設置不同的數據校驗強度,可保證塊由正常塊變為壞塊時期中的數據可以被正確讀出,有效提高了存儲設備的可靠性。圖4為本發明實施例四的檢測存儲設備壞塊的裝置的結構示意圖。如圖4所示,在上述實施例三的基礎上,檢測存儲設備壞塊的裝置400還可以包括收發單元304。具體地,在上述實施例三的基礎上,寫入單元301具體還用於獲取一個空閒塊,判斷空閒塊是否攜帶壞塊標記,如果是,再次獲取一個空閒塊,否則,以空閒塊作為目標塊,向·目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼。具體地,在文件系統有待寫入數據時,會首先查找Nand快閃記憶體中的空閒塊,然後選擇一個空閒塊。若所選擇的空閒塊攜帶壞塊標記,則表明此空閒塊是一個壞塊,不能存儲數據,系統需返回獲取下一個空閒塊。所選擇的空閒塊所攜帶的壞塊標記可以為出廠壞塊標記,也可以為新增壞塊標記。因Nand flash生產工藝的問題,晶片在出廠的時候允許有一定的壞塊,這些壞塊被稱為固有壞塊。這些固有壞塊會被廠家打上出廠壞塊標記,在有數據寫入時,便不會存儲進這些壞塊中。而這些新增壞塊標記則是在數據的讀寫過程中添加進去的。比較單元302具體還用於從目標塊中讀取存儲的目標數據,比較目標數據與目標塊中存儲的目標數據,統計目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,通過獲取目標塊中存儲的目標數據中發生翻轉的位的數量,可判斷塊的狀態,以選取不同的校驗強度對數據進行保護。收發單元304用於在採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼之後向文件系統返回寫入成功消息,即報告數據寫入成功;收發單元304還用於在標記單元303為目標塊添加壞塊標記之後向文件系統返回寫入失敗消息。即報告數據寫入失敗,寫入單元301會繼續選擇下一個空閒塊,並進行判斷以重新寫入。在本發明實施例四中,通過比較單元和標記單元對寫入數據的位翻轉的判斷以及對目標塊狀態的判斷,並針對不同狀態設置不同的數據校驗強度,可保證塊由正常塊變為壞塊時期中的數據可以被正確讀出;且寫入單元對所選擇空閒塊狀態的判斷,保證了數據不會被寫入壞塊,有效提高了設備存儲數據的可靠性。在本發明上述實施例技術方案的基礎上,進一步地,在本發明實施例五中,可以包括寫入單元301首先獲取一個空閒塊,然後判斷該空閒塊是否攜帶壞塊標記。具體地,該壞塊標記可以為出廠壞塊標記,也可以為新增壞塊標記。如果該空閒塊攜帶壞塊標記,則表示該塊為壞塊,不能存儲數據,則寫入單元501再次獲取一個空閒塊。若該塊不攜帶壞塊標記,則以該空閒塊作為目標塊,向該目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼。具體的,寫入的目標數據存放於該目標塊的數據存儲區;所生成的普通校驗強度的校驗碼存儲於該目標塊的空閒存儲區。優選地,該普通校驗強度可以為晶片要求的校驗強度。在寫入單元301寫入數據後,比較單元302從目標塊中讀取剛寫入的目標數據,比較目標數據與目標塊中存儲的目標數據,統計目標塊中存儲的目標數據中發生翻轉的位的數量。然後,比較單元302將目標塊中存儲數據發生位翻轉的個數與預設的第二校驗水線 向比較,判斷該翻轉的位數是否大於或等於第二校驗水線。若翻轉的位數大於或等於第二校驗水線,則標記單元303為目標塊添加壞塊標記,且由收發單元304向文件系統返回寫入失敗消息,並由寫入單元301再次獲取一個空閒塊。具體地,該第二校驗水線可以為晶片所要求的校驗強度。例如,可設置第二校驗水線為8bit/512Byte。即若一個目標塊中所存儲的數據的位翻轉數量超過此值,則表示該塊已經是一個壞塊,不能再存儲數據。此時,給該塊添加壞塊標記。具體地,該壞塊標記可以存儲在快閃記憶體空閒區的第6個字節內。若該字節內是非OxFF的值,則表示此塊為壞塊。若目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,比較單元302繼續判斷該翻轉的位數是否大於或等於預設的第一校驗水線。若是,則標記單元303為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼。具體地,第一校驗水線的值可以為一個低於第二校驗水線且接近第二校驗水線的值,比如,可以設置為第二校驗水線的值的75%,即若第二校驗水線的值為8bit/512Byte,則第一校驗水線的值就為6bit/512Byte。第一校驗水線表示一個塊已經接近壞塊了,還可以存儲數據,但是需要對數據進行加強保護。當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,標記單元303可以為此目標塊添加準壞塊標記,具體地,該準壞塊標記可以存儲在快閃記憶體空閒區,優選地,可存儲在存儲壞塊標記的位置的後面。同時,標記單元303生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼。當目標塊為準壞塊時,需對該準壞塊進行加強保護,即要提高其校驗強度。該提高的校驗強度即為高級校驗強度。該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。
在標記單元303採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼之後,由收發單元304向文件系統返回寫入成功消息。在本發明實施例五中,通過比較單元和標記單元對寫入數據的位翻轉的判斷以及對目標塊狀態的判斷,並針對不同狀態設置不同的數據校驗強度,可保證塊由正常塊變為壞塊時期中的數據可以被正確讀出;且寫入單元對所選擇空閒塊狀態的判斷,保證了數據不會被寫入壞塊,有效提高了設備存儲數據的可靠性。圖5為本發明實施例六的檢測存儲設備壞塊的方法的流程圖。如圖5所示,本實施例的方法,可以包括步驟501 :判斷目標塊是否攜帶準壞塊標記;通過判斷是否攜帶準壞塊標記,可知目標塊的狀態,以便後續讀取中校驗強度的選擇。具體地,該準壞塊標記存儲在快閃記憶體空閒區內。步驟502 :若目標塊未攜帶準壞塊標記且未攜帶壞塊標記,讀取目標數據及對應 的普通校驗強度的校驗碼,並採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,即該目標塊是個好塊,只需進行普通的校驗即可。首先從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼;然後根據普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,該普通校驗強度可以為晶片要求的校驗強度。如,優選地,該普通校驗強度可以設為8bit/512Byte。步驟503 :若目標塊攜帶準壞塊標記,讀取目標數據及對應的高級校驗強度的校驗碼,並採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,當目標塊攜帶準壞塊標記時,需對該準壞塊進行加強保護,即要提高其校驗強度。該提高的校驗強度即為高級校驗強度。首先從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼;然後根據高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。在本發明實施例六中,通過在系統中為Nand Flash的塊狀態及其對應校驗強度的設置,可保證塊中的數據能被正確讀出,有效提高了設備中存儲數據的可靠性。圖6為本發明實施例七的檢測存儲設備壞塊的方法的流程圖。如圖6所示,該方法可以包括步驟601 :文件系統獲取到塊地址。具體地,在系統在讀取數據時,文件系統會首先獲取到一個存儲數據的塊地址。步驟602 :判斷目標塊是否攜帶準壞塊標記。步驟603 :若目標塊攜帶準壞塊標記,讀取目標數據及對應的高級校驗強度的校驗碼,並採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,當目標塊攜帶準壞塊標記時,需對該準壞塊進行加強保護,即要提高其校驗強度。該提高的校驗強度即為高級校驗強度。首先從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼;然後根據高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。該準壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可以存儲在空閒區內存儲壞塊標記的位置的後面。具體地,該目標數據存儲在快閃記憶體的數據存儲區,目標數據所對應的高級校驗強度的校驗碼存儲在快閃記憶體的空閒區。在採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據之後,還包括步驟604 :根據從目標塊中讀取的目標數據和目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,在從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼之後,可進行對比統計,獲得目標塊中存儲的目標數據中發生翻轉的位的數量。
步驟605 :判斷目標塊中存儲的目標數據中發生翻轉位數是否大於或等於第二校驗水線。具體地,該第二校驗水線可以為晶片所要求的校驗強度。例如,可設置第二校驗水線為 8bit/512Byte。步驟606 :當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為目標塊添加壞塊標記,向目標塊的下一個空閒塊中寫入。具體地,即若一個目標塊中所存儲的數據的位翻轉數量超過第二校驗水線,則表示該塊已經是一個壞塊,不能再存儲數據。此時,給該塊添加壞塊標記。具體地,該壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可存儲在該空閒區的第6個字節內。若該字節內是非OxFF的值,則表示此塊為壞塊。當該目標塊為壞塊,則向目標塊的下一個空閒塊中寫入讀取到的經高級校驗強度校驗過的目標數據。步驟607 :向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據。具體地,當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為目標塊添加壞塊標記,向目標塊的下一個空閒塊中寫入後向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據。或者,當目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,直接向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據。具體地,若目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,即說明該目標塊中存儲的數據出錯後還可以被完全糾正,該目標還可以存儲數據,因此直接向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據即可。步驟608 :如上述步驟502,若目標塊未攜帶準壞塊標記且未攜帶壞塊標記時,讀取目標數據及其所對應的普通校驗強度的校驗碼,並採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,即該目標塊是個好塊,只需進行普通的校驗即可。首先從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼;然後根據普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,該普通校驗強度可以為晶片要求的校驗強度。如,優選地,該普通校驗強度可以設為8bit/512Byte。步驟609 :根據從目標塊中讀取的目標數據和目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,在從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼之後,可進行對比統計,獲得目標塊中存儲的目標數據中發生翻轉的位的數量。步驟610 :判斷目標塊中存儲的目標數據中發生翻轉位數是否大於或等於第一校驗水線。
在該步驟中,具體地,第一校驗水線的值可以為一個低於第二校驗水線且接近第二校驗水線的值,比如,可以設置為第二校驗水線的值的75%,即若第二校驗水線的值為8bit/512Byte,則第一校驗水線的值可以設為6bit/512Byte。第一校驗水線表示一個塊已經接近壞塊了,還可以存儲數據,但是需要對數據進行加強保護。步驟611 :當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為目標塊添加準壞塊標記,生成對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中的校驗碼。具體地,即若一個目標塊中所存儲的數據的位翻轉數量超過第一校驗水線,則表示該塊已經接近於一個壞塊,雖然還可以存儲數據,但需要對數據進行加強保護。此時,給該塊添加準壞塊標記。具體地,該準壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可存儲在該空閒區內存儲壞塊標記的位置的後面。即若壞塊標記存儲在快閃記憶體空閒區的第6個字節內,則準壞塊標記可以存儲在空閒區的第7個字節內。當目標塊為準壞塊時,需對該準壞塊進行加強保護,即要提高其校驗強度。該提高的校驗強度即為高級校驗強度。因此,在為目標快添加準壞塊標記的同時,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼。該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為 10bit/512Byte。步驟612 :向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據。具體地,當目標塊中存儲的目標數據中發生翻轉的位的數量小於第一校驗水線時,向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據。此時,該目標數據發生翻轉的位數還可以被完全糾正過來,因此,可直接向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據。或者,當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼,向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據。具體地,由於在讀取數據時,數據位數的翻轉並不會一次增加很多位,而是一位一位增加,所以在非準壞塊中存儲的數據在讀取過程中發生翻轉的位的數量不會超過第二校驗水線,此時,普通校驗強度完全可將發生翻轉的位糾正過來。因此,當判斷目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,仍向文件系統返回採用普通校驗強度的糾正算法糾正的目標塊中存儲的目標數據。在本發明實施例七中,通過在系統中為Nand Flash的塊狀態及其對應校驗強度的設置,可保證塊中的數據能被正確讀出,有效提高了設備中存儲數據的可靠性。另外,通過在系統中為Nand Flash的位翻轉數量設置水線,區分出塊的不同狀態,並針對不同狀態設置不同的數據校驗強度,可有效提高設備存儲數據的可靠性及存儲數據的準確性。圖7為本發明實施例八的檢測存儲設備壞塊的裝置的結構示意圖。如圖7所示,本發明提供的檢測存儲設備壞塊的裝置700可以包括讀取單元701和校驗單元702。具體地,讀取單元701用於當目標塊攜帶準壞塊標記時,從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼,當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼;·
具體地,該壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可存儲在該區的第6個字節內。若該字節內是非OxFF的值,則表示此塊為壞塊。準壞塊標記也可以存儲在快閃記憶體空閒區內,優選地,可以存儲在壞塊標記的後邊一個字節。即,若壞塊標記存儲在第6個字節內,則準壞塊標記可以存儲在第7位元組內。校驗單元702用於在目標塊攜帶準壞塊標記時,根據高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據,並用於在目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,根據普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,即該目標塊是個好塊,只需進行普通的校驗即可。首先讀取單元701從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼;然後校驗單元702根據普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,該普通校驗強度可以為晶片要求的校驗強度。具體地,當目標塊攜帶準壞塊標記時,需對該準壞塊進行加強保護,即利用高級校驗強度對數據進行校驗。首先讀取單元701從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼;然後校驗單元702根據高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據。具體地,該高級校驗強度的校驗強度略高於普通校驗強度,以保證當目標塊中的位翻轉數量剛超過第二校驗水線時,還可以將數據完全糾正過來。具體地,可以設置該高級校驗強度為普通校驗強度的125%。如,普通校驗強度可以設為8bit/512Byte,則高級校驗強度可以為10bit/512Byte。在本發明實施例八中,通過讀取單元和校驗單元根據塊的不同狀態對讀取數據的不同強度的校驗,保證了塊中的數據能被正確讀出,有效提高了設備中存儲數據的可靠性。圖8為本發明實施例九的檢測存儲設備壞塊的裝置的結構示意圖。如圖8所示,在上述實施例七的基礎上,該檢測存儲設備壞塊的裝置800還可以包括比較單元703,標記單元704和收發單元705。進一步地,在上述實施例七的基礎上,比較單元703還用於在目標塊攜帶準壞塊標記時,根據從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。
具體地,在從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼之後,可進行對比統計,獲得目標塊中存儲的目標數據中發生翻轉的位的數量。標記單元704還用於在目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為目標塊添加壞塊標記,向目標塊的下一個空閒塊中寫入採用最高校驗強度糾正的目標塊中存儲的目標數據;具體地,該第二校驗水線可以為晶片所要求的校驗強度。例如,可設置第二校驗水線為8bit/512Byte。具體地,即若一個目標塊中所存儲的數據的位翻轉數量超過第二校驗水線,則表示該塊已經是一個壞塊,不能再存儲數據。此時,給該塊添加壞塊標記。具體地,該壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可存儲在該空閒區的第6個字節內。若該字節內是非OxFF的值,則表示此塊為壞塊。
若該目標塊為壞塊,則向目標塊的下一個空閒塊中寫入讀取到的經高級校驗強度校驗過的目標數據。收發單元705還用於向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據,即將採用最高校驗強度糾正的目標塊中存儲的目標數據讀出。進一步地,在上述實施例的基礎上,比較單元703還用於在目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,根據從目標塊中讀取目標數據和目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。具體地,在從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼之後,可進行對比統計,獲得目標塊中存儲的目標數據中發生翻轉的位的數量。標記單元704用於在目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼;具體地,第一校驗水線的值可以為一個低於第二校驗水線且接近第二校驗水線的值,比如,可以設置為第二校驗水線的值的75%,即若第二校驗水線的值為8bit/512Byte,則第一校驗水線的值可以設為6bit/512Byte。第一校驗水線表示一個塊已經接近壞塊了,還可以存儲數據,但是需要對數據進行加強保護。具體地,即若一個目標塊中所存儲的數據的位翻轉數量超過第一校驗水線,則表示該塊已經接近於一個壞塊,雖然還可以存儲數據,但需要對數據進行加強保護。此時,給該塊添加準壞塊標記。具體地,該準壞塊標記可以存儲在快閃記憶體空閒區內,優選地,可存儲在該空閒區內存儲壞塊標記的位置的後面。即若壞塊標記存儲在快閃記憶體空閒區的第6個字節內,則準壞塊標記可以存儲在空閒區的第7個字節內。收發單元705用於向文件系統返回採用普通校驗強度糾正的目標塊中存儲的目標數據,即讀出正確的數據。在本發明實施例九中,通過讀取單元和校驗單元根據塊的不同狀態對讀取數據的不同強度的校驗,保證了塊中的數據能被正確讀出,有效提高了設備中存儲數據的可靠性。另外,通過比較單元對讀取數據的位翻轉數量設置水線,區分出塊的不同狀態,並針對不同狀態設置不同的數據校驗強度,可有效提高設備存儲數據的可靠性及存儲數據的準確性。在本發明上述實施例技術方案的基礎上,進一步地,在本發明實施例十中,可以包括
首先,讀取單元701獲取到塊地址,然後判斷該目標塊是否攜帶準壞塊標記。若該塊攜帶準壞塊標記,則讀取單元701從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼。然後校驗單元702根據該高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正目標塊中存儲的目標數據。然後,比較單元703根據從目標塊中讀取目標數據和目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。若目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線,則標記單元704為該目標塊添加壞塊標記,並向目標塊的下一個空閒塊中寫入採用最高校驗強度糾正的目標塊中存儲的目標數據;最後由收發單元705向文件系統返回採用最高校驗強度糾正的所述目標塊中存儲的目標數據。若目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線,則直接由收發單元705向文件系統返回採用最高校驗強度糾正的目標塊中存儲的目標數據。當目標塊未攜帶準壞塊標記並且未攜帶壞塊標記時,讀取單元701從該目標塊中 讀取目標數據和目標數據對應的普通校驗強度的校驗碼。校驗單元702採用普通校驗強度的糾正算法糾正目標塊中存儲的目標數據。然後,比較單元703根據從目標塊中讀取目標數據和所述目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量。之後,在目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,標記單元704為該目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用所述高級校驗強度的校驗碼更新所述目標塊中寫入的普通校驗強度的校驗碼。最後,收發單元705向文件系統返回採用普通校驗強度糾正的目標塊中存儲的目標數據。在本發明實施例十中,通過讀取單元和校驗單元根據塊的不同狀態對讀取數據的不同強度的校驗,保證了塊中的數據能被正確讀出,有效提高了設備中存儲數據的可靠性。另外,通過比較單元對讀取數據的位翻轉數量設置水線,區分出塊的不同狀態,並針對不同狀態設置不同的數據校驗強度,可有效提高設備存儲數據的可靠性及存儲數據的準確性。本領域普通技術人員可以理解實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。最後應說明的是以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。
權利要求
1.一種檢測存儲設備壞塊的方法,其特徵在於,包括 向目標塊中寫入目標數據和所述目標數據對應的普通校驗強度的校驗碼; 比較所述目標數據與所述目標塊中存儲的所述目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量; 當所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,為所述目標塊添加準壞塊標記,生成所述目標數據對應的高級校驗強度的校驗碼並採用所述高級校驗強度的校驗碼更新所述目標塊中寫入的普通校驗強度的校驗碼; 當所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於所述第二校驗水線時,為所述目標塊添加壞塊標記。
2.根據權利要求I所述的方法,其特徵在於, 所述向目標塊中寫入目標數據和所述目標數據對應的普通校驗強度的校驗碼包括獲取一個空閒塊;判斷所述空閒塊是否攜帶壞塊標記;如果是,返回所述獲取一個空閒塊的步驟;否則,以所述空閒塊作為所述目標塊,向所述目標塊中寫入所述目標數據和所述目標數據對應的普通校驗強度的校驗碼; 所述比較所述目標數據與所述目標塊中存儲的所述目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量包括從所述目標塊中讀取存儲的所述目標數據,比較所述目標數據與所述目標塊中存儲的目標數據,統計所述目標塊中存儲的目標數據中發生翻轉的位的數量。
3.—種檢測存儲設備壞塊的方法,其特徵在於,包括 當目標塊攜帶準壞塊標記時,從所述目標塊中讀取目標數據和所述目標數據對應的高級校驗強度的校驗碼,根據所述高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正所述目標塊中存儲的目標數據; 當所述目標塊未攜帶所述準壞塊標記並且未攜帶所述壞塊標記時,從所述目標塊中讀取目標數據和所述目標數據對應的普通校驗強度的校驗碼,根據所述普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正所述目標塊中存儲的目標數據。
4.根據權利要求3所述的方法,其特徵在於,所述採用普通校驗強度的糾正算法糾正所述目標塊中存儲的目標數據之後,還包括 根據從目標塊中讀取的目標數據和所述目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量; 當所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為所述目標塊添加準壞塊標記,生成所述目標數據對應的高級校驗強度的校驗碼並採用所述高級校驗強度的校驗碼更新所述目標塊中寫入的普通校驗強度的校驗碼,向文件系統返回採用普通校驗強度的糾正算法糾正的所述目標塊中存儲的目標數據; 當所述目標塊中存儲的目標數據中發生翻轉的位的數量小於所述第一校驗水線時,向文件系統返回採用普通校驗強度的糾正算法糾正的所述目標塊中存儲的目標數據。
5.根據權利要求3或4所述的方法,其特徵在於,所述採用高級校驗強度的糾正算法糾正所述目標塊中存儲的目標數據之後,還包括 根據從目標塊中讀取的目標數據和所述目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量; 當所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為所述目標塊添加壞塊標記,向所述目標塊的下一個空閒塊中寫入並向文件系統返回所述採用最高校驗強度糾正的所述目標塊中存儲的目標數據; 當所述目標塊中存儲的目標數據中發生翻轉的位的數量小於預設的第二校驗水線時,向所述文件系統返回所述採用最高校驗強度糾正的所述目標塊中存儲的目標數據。
6.一種檢測存儲設備壞塊的裝置,其特徵在於,包括 寫入單元,用於向目標塊中寫入目標數據和所述目標數據對應的校驗碼; 比較單元,用於比較所述目標數據與所述目標塊中存儲的所述目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量; 標記單元,用於當所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,為所述目標塊添加準壞塊標記,生成所述目標數據對應的高級校驗強度的校驗碼並採用所述高級校驗強度的校驗碼更新所述目標塊中寫入的普通校驗強度的校驗碼,當所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於所述第二校驗水線時,為所述目標塊添加壞塊標記。
7.根據權利要求6所述的裝置,其特徵在於, 所述寫入單元具體用於獲取一個空閒塊,判斷所述空閒塊是否攜帶壞塊標記,如果是,再次獲取一個空閒塊,否則,以所述空閒塊作為所述目標塊,向所述目標塊中寫入所述目標數據和所述目標數據對應的普通校驗強度的校驗碼; 所述比較單元具體用於從所述目標塊中讀取存儲的所述目標數據,比較所述目標數據與所述目標塊中存儲的目標數據,統計所述目標塊中存儲的目標數據中發生翻轉的位的數量。
8.—種檢測存儲設備壞塊的裝置,其特徵在於,包括 讀取單元,用於當目標塊攜帶準壞塊標記時,從所述目標塊中讀取目標數據和所述目標數據對應的高級校驗強度的校驗碼,當所述目標塊未攜帶所述準壞塊標記並且未攜帶所述壞塊標記時,從所述目標塊中讀取目標數據和所述目標數據對應的普通校驗強度的校驗碼; 校驗單元,用於在所述目標塊攜帶準壞塊標記時,根據所述高級校驗強度的校驗碼,採用高級校驗強度的糾正算法糾正所述目標塊中存儲的目標數據,並用於在所述目標塊未攜帶所述準壞塊標記並且未攜帶所述壞塊標記時,根據所述普通校驗強度的校驗碼,採用普通校驗強度的糾正算法糾正所述目標塊中存儲的目標數據。
9.根據權利要求8所述的裝置,其特徵在於,還包括 比較單元,用於在所述目標塊未攜帶所述準壞塊標記並且未攜帶所述壞塊標記時,根據所述從目標塊中讀取目標數據和所述目標數據對應的普通校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量; 標記單元,用於在所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線時,為所述目標塊添加準壞塊標記,生成所述目標數據對應的高級校驗強度的校驗碼並採用所述高級校驗強度的校驗碼更新所述目標塊中寫入的普通校驗強度的校驗碼;收發單元,用於向文件系統返回所述採用普通校驗強度糾正的所述目標塊中存儲的目標數據。
10.根據權利要求9所述的裝置,其特徵在於,所述之後,還包括 所述比較單元還用於在所述目標塊攜帶準壞塊標記時,根據所述從目標塊中讀取目標數據和所述目標數據對應的高級校驗強度的校驗碼,獲取目標塊中存儲的目標數據中發生翻轉的位的數量; 所述標記單元還用於在所述目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第二校驗水線時,為所述目標塊添加壞塊標記,向所述目標塊的下一個空閒塊中寫入所述採用最高校驗強度糾正的所述目標塊中存儲的目標數據; 所述收發單元還用於向所述文件系統返回所述採用最高校驗強度糾正的所述目標塊中存儲的目標數據。
全文摘要
本發明提供一種檢測存儲設備壞塊的方法和裝置,該方法包括向目標塊中寫入目標數據和目標數據對應的普通校驗強度的校驗碼;比較目標數據與目標塊中存儲的目標數據,獲取目標塊中存儲的目標數據中發生翻轉的位的數量;當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於預設的第一校驗水線並小於預設的第二校驗水線時,為目標塊添加準壞塊標記,生成目標數據對應的高級校驗強度的校驗碼並採用高級校驗強度的校驗碼更新目標塊中寫入的普通校驗強度的校驗碼;當目標塊中存儲的目標數據中發生翻轉的位的數量大於或等於第二校驗水線時,為目標塊添加壞塊標記。檢測存儲設備壞塊的方法可保證存儲數據能被正確讀出,有效提高了存儲設備的可靠性。
文檔編號G06F11/08GK102929740SQ201210413308
公開日2013年2月13日 申請日期2012年10月25日 優先權日2012年10月25日
發明者劉婷 申請人:北京星網銳捷網絡技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀