專利名稱:一種與非閃存中數據讀取的方法、裝置及電視機系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于信息處理領域,尤其涉及一種與非閃存中數據讀取的方法、裝置及電視機系統(tǒng)。
背景技術:
隨著信息技術的發(fā)展,越來越多的信息系統(tǒng)(例如MP3、數碼相機、智能電視機等)需要內置可擦寫的非易失存儲介質來存儲大容量的數據信息。而在現有的非易失存儲介質中,與非閃存因其價格低廉、存儲容量大,擦寫速度快等優(yōu)點,在業(yè)界得到了廣泛的應用。與非閃存通常由塊組成,由于工藝限制,與非閃存芯片在出廠時并不能保證每一個塊為“好塊”,而且與非閃存的穩(wěn)定性較差,在使用的過程中,也容易出現新的壞塊,從而導致與非閃存中存儲的內容出現錯誤或者丟失,使得系統(tǒng)在數據讀取時出錯,影響整個系統(tǒng)的穩(wěn)定性。
發(fā)明內容
本發(fā)明實施例的目的在于提供一種與非閃存中數據讀取的方法,旨在解決現有的與非閃存容易出現存儲內容錯誤或者丟失,導致系統(tǒng)數據讀取時出錯,影響系統(tǒng)穩(wěn)定性的問題。本發(fā)明實施例是這樣實現的,一種與非閃存中數據讀取的方法,所述方法包括下述步驟在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。本發(fā)明實施例的另一目的在于提供一種與非閃存中數據讀取的裝置,所述裝置包括存儲區(qū)設定單元,用于在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);數據備份單元,用于將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;數據讀取單元,用于當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。本發(fā)明實施例的再一目的在于提供一種電視機系統(tǒng),所述電視機系統(tǒng)包含所述與非閃存中數據讀取的裝置。在本發(fā)明實施例中,通過在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū), 將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中,使得當從第二數據存儲區(qū)中讀取的數據不正確時,可以將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中重新讀取,從而有效保證數據讀取的正確性,提高系統(tǒng)的穩(wěn)定性。
圖1是本發(fā)明實施例一提供的與非閃存中數據讀取的方法的實現流程圖;圖2是本發(fā)明實施例二提供的與非閃存中數據讀取的方法的實現流程圖;圖3是本發(fā)明實施例三提供的與非閃存中數據讀取裝置的組成結構框圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例通過在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū),將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中,使得當從第二數據存儲區(qū)中讀取的數據不正確時,可以將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中重新讀取,從而有效保證數據讀取的正確性,提高系統(tǒng)的穩(wěn)定性。為了說明本發(fā)明所述的技術方案,下面通過具體實施例來進行說明。實施例一圖1示出了本發(fā)明實施例一提供的與非閃存中數據讀取的方法的實現流程,該方法過程詳述如下在步驟SlOl中,在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);在本實施例中,可以根據實際需要,預先在與非閃存中設定兩個或者兩個以上的數據存儲區(qū),并將其中的一個數據存儲區(qū)用于系統(tǒng)調用數據的存儲區(qū),其他數據存儲區(qū)用于備份該數據。所述設定的數據存儲區(qū)包含多個存儲數據的數據塊。其中,所述數據包括但不局限于應用程序。在步驟S102中,將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;在本實施例中,將預先設置的第二數據存儲區(qū)中存儲的數據作為系統(tǒng)需要調用的數據,為了防止第二數據存儲區(qū)中存儲的數據由于外界的電磁干擾、靜電干擾或者與非閃存本身的壞塊等引起的數據錯誤或者丟失,導致系統(tǒng)數據讀取時出錯,影響系統(tǒng)穩(wěn)定性,將存儲到第二數據存儲區(qū)中的數據同時備份到預先設置的其他數據存儲區(qū)中,例如備份到預先設置的第一數據存儲區(qū)中。其中,為了方便數據的讀取,數據存儲的方式采用鏈式存儲。在步驟S103中,判斷從第二數據存儲區(qū)中讀取的數據是否正確,如果判斷結果為 “否”,則執(zhí)行步驟S104,如果判斷結果為“是”,則結束流程。在本實施例中,為了讀取與非閃存中存儲的數據,系統(tǒng)發(fā)出讀取指令和需要讀取的數據的地址,與非閃存在接收到讀取指令和地址后,輸出對應的數據。例如電視機系統(tǒng)發(fā)出開機指令和需要讀取數據的地址,第二數據存儲區(qū)根據所述地址輸出對應數據塊中的開機數據,實現電視的開機。在本實施例中,每份存儲的數據及其備份的數據都包含一個錯誤檢查和糾正(Error Checking and Correction,ECC)碼,為了檢測輸出數據是否存在錯誤,系統(tǒng)在數據讀取時,先生成正確的ECC碼,并將該ECC碼與讀取的數據的ECC碼進行比較驗證,如果比較結果相同,則說明讀取的數據正確,結束流程。如果比較結果不相同,則說明讀取的數據存在錯誤,執(zhí)行步驟S104。在步驟S104中,當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。在本實施例中,為了保證數據讀取的正確性,提高系統(tǒng)的穩(wěn)定性,當從第二數據存儲區(qū)中讀取的某個數據不正確時,將備份在第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據,讀取完后結束流程。實施例二 圖2示出了本發(fā)明實施例二提供的與非閃存中數據讀取的方法的實現流程,該方法過程詳述如下在步驟S201中,在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);在步驟S202中,將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;在步驟S203中,判斷從第二數據存儲區(qū)中讀取的數據是否正確,如果判斷結果為 “否”,則執(zhí)行步驟S204,如果判斷結果為“是”,則結束流程。在步驟S204中,對從第二數據存儲區(qū)中讀取的不正確數據進行錯誤檢查和糾正, 判斷所述數據錯誤檢查和糾正是否成功;如果判斷結果為“是”,則執(zhí)行步驟S205,如果判斷結果為“否”,則執(zhí)行步驟S206。在本實施例中,在系統(tǒng)生成的ECC碼與讀取數據的ECC碼比較結果不相同時,說明該數據存在錯誤,可以根據系統(tǒng)生成的ECC碼與該數據的ECC碼,查找到錯誤數據,并對所述錯誤數據進行糾錯,如果糾錯成功,則執(zhí)行步驟S205,如果糾錯不成功,則執(zhí)行步驟 S206。在步驟S205中,當所述數據錯誤檢查和糾正成功時,根據第二數據存儲區(qū)中糾正后的數據更新第一數據存儲區(qū)中的數據;在本實施例中,將糾錯成功后的數據覆蓋原數據(第二數據存儲區(qū)中的數據)及其備份數據(第一數據存儲區(qū)中的數據),實現原數據與備份數據的同步更新。其中,在備份數據更新的過程中,需要對存儲新備份數據的數據塊進行檢測,判斷是否存在壞塊。在步驟S206中,檢測存儲所述數據的數據塊是否為壞塊;如果判斷結果為“是”, 則執(zhí)行步驟S207,如果判斷結果為“否”,則返回繼續(xù)執(zhí)行步驟S204。作為本發(fā)明的一個實施例,在所述數據錯誤檢查和糾正不成功時,通過現有技術檢測存儲所述數據的數據塊是否為壞塊,在檢測到所述數據塊為壞塊時,執(zhí)行步驟S207,否則返回繼續(xù)執(zhí)行步驟S204。在步驟S207中,當檢測到所述數據塊為壞塊時,標記所述數據塊,并將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中空的數據塊中重新讀取。在本實施例中,為了下次數據存儲時能有效避開壞塊,對檢測到的壞塊進行標識。 同時,為了保證數據讀取的正確性,將存儲在第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中空的數據塊中重新讀取,讀取完后結束流程。
為了提高檢測的效率,作為本發(fā)明的另一實施例,所述方法還包括在系統(tǒng)生成的ECC碼與讀取數據的ECC碼比較結果不相同時,說明該讀取數據存在錯誤,對該讀取數據中錯誤數據的大小進行檢測,在所述錯誤數據等于或者小于預設的閾值時(例如1比特),通過ECC碼對所述錯誤數據進行糾正,在所述錯誤數據糾正不成功時,再對存儲所述數據的數據塊進行檢測;在所述錯誤數據大于預設的閾值時,直接進行壞塊檢測。實施例三圖3示出了本發(fā)明實施例三提供的與非閃存中數據讀取裝置的組成結構,為了便于說明,僅示出了與本發(fā)明實施例相關的部分。該與非閃存中數據讀取裝置可以應用于各種信息系統(tǒng),例如MP3、數碼相機、電視機等,可以是運行于這些信息系統(tǒng)內的軟件單元、硬件單元或者軟硬件相結合的單元,也可以作為獨立的掛件集成到這些信息系統(tǒng)中或者運行于這些信息系統(tǒng)的應用系統(tǒng)中。該與非閃存中數據讀取裝置包括存儲區(qū)設定單元31、數據備份單元32和數據讀取單元33。其中,各單元的具體功能如下存儲區(qū)設定單元31,用于在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū), 其具體實施方式
如上所述,在此不再贅述;數據備份單元32,用于將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中,其具體實施方式
如上所述,在此不再贅述;數據讀取單元33,用于當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。其中,所述數據讀取單元33還包括檢測模塊331、數據讀取模塊332以及數據更新模塊333, 各模塊的具體功能如下檢測模塊331,用于對從第二數據存儲區(qū)中讀取的不正確數據進行錯誤檢查和糾正,當所述數據錯誤檢查和糾正不成功時,對存儲所述數據的數據塊進行檢測;數據讀取模塊332,用于當檢測到存儲所述數據的數據塊為壞塊時,標記該數據塊,并將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中空的數據塊中重新讀取;數據更新模塊333,用于當所述數據錯誤檢查和糾正成功時,據第二數據存儲區(qū)中糾正后的數據更新第一數據存儲區(qū)中的數據。在本實施例中,其模塊的具體實施方式
如上所述,在此不再贅述。為了提高檢測的效率,作為本發(fā)明的另一實施例,所述數據讀取單元還包括另一檢測模塊該檢測模塊用于在系統(tǒng)生成的ECC碼與讀取數據的ECC碼比較結果不相同時,說明該讀取數據存在錯誤,對該讀取數據中錯誤數據的大小進行檢測,在所述錯誤數據等于或者小于預設的閾值時(例如1比特),通過ECC碼對所述錯誤數據進行糾正,在所述錯誤數據糾正不成功時,再對存儲所述數據的數據塊進行檢測;在所述錯誤數據大于預設的閾值時,直接進行壞塊檢測。在本發(fā)明實施例中,通過在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū), 將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中,使得當從第二數據存儲區(qū)中讀取的數據不正確時,可以將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中重新讀取,從而有效保證數據讀取的正確性,提高系統(tǒng)的穩(wěn)定性。另外,通過對讀取的數據增加ECC驗證,提高了出錯數據的糾正率,通過對壞塊的檢測和標記,有效的解決了系統(tǒng)在復雜環(huán)境下數據讀取出錯的問題,而且整個過程不需要增加其他硬件,降低了生成的成本。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種與非閃存中數據讀取的方法,其特征在于,所述方法包括下述步驟在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。
2.如權利要求1所述的方法,其特征在于,所述第一數據存儲區(qū)和第二數據存儲區(qū)中包含多個存儲數據的數據塊。
3.如權利要求2所述的方法,其特征在于,所述將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據的步驟具體為對從第二數據存儲區(qū)中讀取的不正確數據進行錯誤檢查和糾正,當所述數據錯誤檢查和糾正不成功時,對存儲所述數據的數據塊進行檢測;或者對從第二數據存儲區(qū)中讀取的不正確數據進行大小檢測,當所述數據的大小等于或者小于預設的閾值時,對所述數據進行錯誤檢查和糾正,在所述數據錯誤檢查和糾正不成功時,對存儲所述數據的數據塊進行檢測;當所述數據的大小大于預設的閾值時,直接對存儲所述數據的數據塊進行檢測;當檢測到存儲所述數據的數據塊為壞塊時,標記該數據塊,并將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中空的數據塊中重新讀取。
4.如權利要求3所述的方法,其特征在于,所述方法還包括以下步驟當所述數據錯誤檢查和糾正成功時,根據第二數據存儲區(qū)中糾正后的數據更新第一數據存儲區(qū)中的數據。
5.一種與非閃存中數據讀取的裝置,其特征在于,所述裝置包括存儲區(qū)設定單元,用于在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);數據備份單元,用于將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;數據讀取單元,用于當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。
6.如權利要求5所述的裝置,其特征在于,所述第一數據存儲區(qū)和第二數據存儲區(qū)中包含多個存儲數據的數據塊。
7.如權利要求6所述的裝置,其特征在于,所述數據讀取單元還包括檢測模塊,用于對從第二數據存儲區(qū)中讀取的不正確數據進行錯誤檢查和糾正,當所述數據錯誤檢查和糾正不成功時,對存儲所述數據的數據塊進行檢測;或者用于對從第二數據存儲區(qū)中讀取的不正確數據進行大小檢測,當所述數據的大小等于或者小于預設的閾值時,對所述數據進行錯誤檢查和糾正,在所述數據錯誤檢查和糾正不成功時,對存儲所述數據的數據塊進行檢測;當所述數據的大小大于預設的閾值時,直接對存儲所述數據的數據塊進行檢測;數據讀取模塊,用于當檢測到存儲所述數據的數據塊為壞塊時,標記所述數據塊,并將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中空的數據塊中重新讀取。
8.如權利要求7所述的裝置,其特征在于,所述數據讀取單元還包括數據更新模塊,用于當所述數據錯誤檢查和糾正成功時,根據第二數據存儲區(qū)中糾正后的數據更新第一數據存儲區(qū)中的數據。
9. 一種電視機系統(tǒng),其特征在于,所述電視機系統(tǒng)包含權利要求5至8任一項所述的與非閃存中數據讀取的裝置。
全文摘要
本發(fā)明適用于信息處理領域,提供了一種與非閃存中數據讀取的方法、裝置及電視機系統(tǒng),所述方法包括下述步驟在與非閃存中設定第一數據存儲區(qū)和第二數據存儲區(qū);將存儲到第二數據存儲區(qū)中的數據同時備份到第一數據存儲區(qū)中;當從第二數據存儲區(qū)中讀取的數據不正確時,將第一數據存儲區(qū)中的該數據復制到第二數據存儲區(qū)中,并重新從第二數據存儲區(qū)中讀取該數據。本發(fā)明可有效保證與非閃存中數據讀取的正確性,提高系統(tǒng)的穩(wěn)定性。
文檔編號G06F11/14GK102200937SQ20111014408
公開日2011年9月28日 申請日期2011年5月31日 優(yōu)先權日2011年5月31日
發(fā)明者江 潤 申請人:深圳創(chuàng)維-Rgb電子有限公司