两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種實現數據糾錯的方法及裝置的制造方法

文檔序號:8430607閱讀:359來源:國知局
一種實現數據糾錯的方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及編解碼領域中的糾錯技術,尤其涉及一種實現數據糾錯的方法及裝置。
【背景技術】
[0002]目前,隨機存儲器(RAM,Random Access Memory)中的錯誤檢查與糾正(ECC,ErrorChecking and Correcting)技術主要采用漢明碼的方式實現,該技術具有糾正Ibit錯誤、檢測2bits錯誤的功能。上述ECC技術通常針對一定的數據位寬實現,典型的數據位寬有32位、64位、128位等,可以將原數據的數據位看成按照行和列進行排列的矩陣,通過對所述行和列進行奇偶校驗產生校驗碼,并將該校驗碼與原數據一起寫入RAM中保存。讀數據時,原數據和校驗碼一起從所述RAM中讀出來,通過采用同樣的算法可以產生新校驗碼,進一步地,通過比較上述兩個校驗碼的差異能夠確定讀數據時出現錯誤的行和列,進而確定讀數據時出現錯誤的數據位。
[0003]在上述方法中,每一位校驗碼的產生都需要數據位的高位部分和低位部分的參與,當數據位寬發(fā)生變化時,由所述矩陣生成的多項式也需要作出相應的改變,因此,該方法的通用性較低。

【發(fā)明內容】

[0004]有鑒于此,本發(fā)明實施例期望提供一種實現數據糾錯的方法及裝置,能夠提高算法的通用性,減少校驗碼的規(guī)模。
[0005]為達到上述目的,本發(fā)明的技術方案是這樣實現的:
[0006]本發(fā)明實施例提供了一種實現數據糾錯的方法,所述方法包括:
[0007]為每一數據位分別設置索引號,并根據所述索引號生成第一校驗碼;根據所述第一校驗碼生成第二校驗碼,比較所述第一校驗碼和所述第二校驗碼確定出現錯誤的數據位,對所述出現錯誤的數據位進行糾正。
[0008]上述方案中,所述為每一數據位分別設置索引號,為:按照數據位的高低順序,為每一數據位分別設置二進制索引號。
[0009]上述方案中,所述根據所述索引號生成第一校驗碼,包括:根據所述二進制索引號獲取第一校驗碼生成式,根據所述第一校驗碼生成式生成第一校驗碼;
[0010]所述根據所述二進制索引號獲取第一校驗碼生成式,根據所述第一校驗碼生成式生成第一校驗碼,為:為每一數據位的二進制索引號,分別對各索引號對應位中為I或O的數據位進行異或運算,獲取各索引號位的第一校驗碼生成式,并將各索引號位的第一校驗碼生成式的結果分別作為第一校驗碼的對應位。
[0011]上述方案中,所述根據第一校驗碼生成第二校驗碼,包括:
[0012]為輸入數據的每一數據位的二進制索引號,分別對各索引號對應位中為I或O的數據位進行異或運算,獲取各索引號位的第二校驗碼生成式,并將各索引號位的第二校驗碼生成式的結果分別作為第二校驗碼的對應位。
[0013]上述方案中,所述比較所述第一校驗碼和所述第二校驗碼確定出現錯誤的數據位,對所述出現錯誤的數據位進行糾正,包括:
[0014]對第一校驗碼和第二校驗碼的每一對應位進行異或運算,獲得第三校驗碼的對應位,根據第三校驗碼確定第一校驗碼與第二校驗碼的對應位不一致時,根據第一校驗碼對應位的第一校驗碼生成式確定出現錯誤的數據位,對所述出現錯誤的數據位進行糾正。
[0015]本發(fā)明實施例還提供了一種實現數據糾錯的裝置,所述裝置包括:設置模塊、第一校驗碼生成模塊、第二校驗碼生成模塊、以及數據處理模塊;其中,
[0016]所述設置模塊,用于為每一數據位分別設置索引號;
[0017]所述第一校驗碼生成模塊,用于根據所述索引號生成第一校驗碼;
[0018]所述第二校驗碼生成模塊,用于根據所述第一校驗碼生成第二校驗碼;
[0019]所述數據處理模塊,用于比較所述第一校驗碼和所述第二校驗碼確定出現錯誤的數據位,對所述出現錯誤的數據位進行糾正。
[0020]上述方案中,所述設置模塊,具體用于按照數據位的高低順序,為每一數據位分別設置二進制索引號。
[0021]上述方案中,所述第一校驗碼生成模塊,具體用于為每一數據位的二進制索引號,分別對各索引號對應位中為I或O的數據位進行異或運算,獲取各索引號位的第一校驗碼生成式,并將各索引號位的第一校驗碼生成式的結果分別作為第一校驗碼的對應位。
[0022]上述方案中,所述第二校驗碼生成模塊,具體用于為輸入數據的每一數據位的二進制索引號,分別對每一索引號對應位中為I或O的數據位進行異或運算,獲取各索引號位的第二校驗碼生成式,并將各索引號位的第二校驗碼生成式的結果分別作為第二校驗碼的對應位。
[0023]上述方案中,所述數據處理模塊,具體用于對第一校驗碼和第二校驗碼的每一對應位進行異或運算,獲得第三校驗碼的對應位,根據第三校驗碼確定第一校驗碼與第二校驗碼的對應位不一致時,根據第一校驗碼對應位的第一校驗碼生成式確定出現錯誤的數據位,對所述出現錯誤的數據位進行糾正。
[0024]本發(fā)明實施例提供的實現數據糾錯的方法及裝置,為每一數據位分別設置索引號,并根據所述索引號生成第一校驗碼;根據所述第一校驗碼生成第二校驗碼,比較所述第一校驗碼和所述第二校驗碼確定出現錯誤的數據位,對所述出現錯誤的數據位進行糾正;如此,能夠基于為每一數據位分別設置的索引號獲得第一校驗碼,進而基于所述第一校驗碼獲得第二校驗碼,通過比較第一校驗碼和第二校驗碼確定出現錯誤的數據位,由于上述過程不受數據位寬的限制,且第一校驗碼各校驗位和第二校驗碼各校驗位的生成只有部分數據的參與,因此,該方法在減少校驗碼規(guī)模的同時可以復用到多種場合,具有較高的通用性。
【附圖說明】
[0025]圖1為本發(fā)明實現數據糾錯的方法實施例的實現流程示意圖;
[0026]圖2為本發(fā)明實施例8位數據的數據位示意圖;
[0027]圖3為本發(fā)明實施例8位數據的數據位與二進制索引號的對應關系示意圖;
[0028]圖4為本發(fā)明實現數據糾錯的裝置實施例的組成結構示意圖;
[0029]圖5為本發(fā)明實現數據糾錯的裝置實施例的電路框架示意圖。
【具體實施方式】
[0030]本發(fā)明實施例中,為每一數據位分別設置索引號,并根據所述索引號生成第一校驗碼;根據所述第一校驗碼生成第二校驗碼,比較所述第一校驗碼和所述第二校驗碼確定出現錯誤的數據位,將該出現錯誤的數據位進行糾正后輸出。
[0031]本發(fā)明實施例中,當需要讀數據或寫數據時,讀/寫選擇信號確定當前執(zhí)行的是讀數據還是寫數據,并為每一數據位分別設置二進制的索引號,所述二進制的索引號與數據位為對應的關系。
[0032]為每一數據位的二進制索引號,分別對各索引號對應位中為I或O的數據位進行異或運算,獲得各索引號位的第一校驗碼生成式;在獲取各索引號位的第一校驗碼生成式之后,將所述各索引號位的第一校驗碼生成式的結果分別作為第一校驗碼的對應位,這樣,就可以得到第一校驗碼的各個校驗位;可以看出,第一校驗碼的位數與二進制索引號的位數相同。
[0033]在讀數據或寫數據時,采用與上述生成第一校驗碼類似的算法生成第二校驗碼,對應的,第二校驗碼的位數與第一校驗碼的位數和二進制索引號的位數相同。
[0034]在實際應用中,寫數據不需要進行糾錯,因此,在獲得第一校驗碼和第二校驗碼后可以直接將寫入的數據輸出;在讀數據時,如果某一數據位出現錯誤,則第二校驗碼中的對應位將發(fā)生變化;通過比較第一校驗碼和第二校驗碼的方式可以確定出現錯誤的數據位;其中,讀/寫選擇信號可以控制整個電路是進行糾錯操作,還是進行生成第一校驗碼和第二校驗碼操作。
[0035]具體的,在讀數據時,對第一校驗碼和第二校驗碼的每一對應位進行異或運算可以獲得第三校驗碼的各個對應位,根據所述第三校驗碼中每一校驗位的數據,可以推斷在讀數據的過程中第一校驗碼的某校驗位與第二校驗位的某校驗位不一致,然后,根據該校驗位對應的第一校驗碼生成式得到出現錯誤的數據位。
[0036]在實際應用中,由于第一校驗碼在存取的過程中也可能出現錯誤,因此,進一步設置檢查校驗碼,通過檢查校驗碼的變化確定第一校驗碼在存取的過程中是否出現錯誤;如果第一校驗碼出現錯誤,則不需要進行糾錯操作,直接向操作系統(tǒng)報告第一校驗碼錯誤。
[0037]下面結合附圖及具體實施例對本發(fā)明做進一步的詳細說明。
[0038]本發(fā)明實施例提供一種實現數據糾錯的方法,其中,數據的輸入可以是寫數據也可以是讀數據,由讀/寫選擇信
當前第1頁1 2 3 4 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
灵台县| 大荔县| 枞阳县| 咸宁市| 玛纳斯县| 科技| 庆城县| 宁海县| SHOW| 乃东县| 绥滨县| 遂川县| 台东市| 苏尼特右旗| 铜梁县| 隆安县| 新化县| 西畴县| 思南县| 东台市| 佛山市| 延边| 汝州市| 莱阳市| 南开区| 金寨县| 龙海市| 和静县| 泗水县| 开封县| 新竹市| 肥东县| 长宁县| 遂溪县| 利津县| 尼木县| 成都市| 马尔康县| 盐源县| 雷山县| 三亚市|