專利名稱:端對端芯片數據通路保護裝置及其方法
技術領域:
本發(fā)明涉及數據通路保護技術,特別是涉及一種端對端芯片數據通路保護裝置及其方法。
背景技術:
目前,市場上的芯片由于成本,應用場合,環(huán)境等原因,沒有考慮到內部數據通路 SRAM出錯和外部數據通路DRAM或者NAND Flash出錯的可能性,默認數據是一定正確的,但是事實上由于工藝原因,溫度,環(huán)境,以及使用時間的增加會導致一定的錯誤率。這在固態(tài)存儲的應用環(huán)境也是如此,在該領域需要保證數據的正確性以及保證不能發(fā)給主機端錯誤的數據而應該匯報出錯或者重新啟動。在此應用背景下,本發(fā)明提出了一個系統(tǒng)的解決方案,該方案不僅在數據緩沖(即SRAM和DRAM)以及數據存儲區(qū)NAND Flash的通路上使用硬件邏輯進行糾錯以及保護,而且針對描述這些通路數據的其他重要數據也進行了保護,以增強整個系統(tǒng)對錯誤的糾錯率。
發(fā)明內容
本發(fā)明的目的在于提供一種端對端芯片數據通路保護裝置及其方法,用于對數據緩沖以及數據存儲區(qū)的通路使用硬件邏輯進行糾錯及保護以及對描述這些通路數據的數據進行保護。為了實現上述目的,本發(fā)明提供一種端對端芯片數據通路保護裝置,其特征在于, 包括通路保護模塊,用于對芯片內部的數據通路、芯片與外部緩存之間的數據通路、芯片與外部存儲器之間的數據通路進行保護;數據保護模塊,連接所述通路保護模塊,用于對描述上述通路數據的數據以及軟件敏感重要數據進行保護。所述的端對端芯片數據通路保護裝置,其中,所述通路保護模塊進一步包括第一保護模塊,用于采用加入奇偶校驗位的方式對內部的SRAM數據進行保護;和 /或第二保護模塊,用于對外部的DRAM數據保護,采用在芯片內部以32個比特為單位加入第一 ECC碼進行檢錯以及糾錯;和/或第三保護模塊,用于對外部的數據存儲單元NAND Flash中的數據,在路徑上采用針對數據相關的大小為單位的第二 ECC碼的保護。所述的端對端芯片數據通路保護裝置,其中,所述第一保護模塊進一步用于對芯片內部的SRAM根據粒度采用8比特、16比特,或32比特數據進行異或操作產生奇偶校驗位,每粒度額外需要1比特的RAM單元來存儲該奇偶校驗位。所述的端對端芯片數據通路保護裝置,其中,所述第二保護模塊進一步用于在數據寫入DRAM前,由芯片的內部硬件邏輯單元產生所述第一 ECC碼,并獲取所述第一 ECC碼在DRAM中的存儲地址;在數據讀取時,根據該存儲地址讀取所述第一 ECC碼, 并由所述內部硬件邏輯單元根據所述第一 ECC碼進行檢錯和糾錯。所述的端對端芯片數據通路保護裝置,其中,所述第三保護模塊進一步用于在數據寫入NAND Flash前由芯片的內部硬件邏輯單元產生所述第二 ECC碼,并隨同原始數據一起寫入一個頁面;在讀取過程中,讀取整個頁面進行檢錯和糾錯。所述的端對端芯片數據通路保護裝置,其中,所述數據保護模塊進一步用于對描述所述通路數據的數據,采用在芯片內部以每32個比特為單位加入ECC碼進行檢錯以及糾錯;對軟件敏感重要數據,將32位數據的數據最高位保留作為奇偶校驗位,并采用該奇偶校驗位進行檢錯以及糾錯。為了實現上述目的,本發(fā)明提供一種端對端芯片數據通路保護方法,其特征在于, 包括通路保護步驟,用于對芯片內部的數據通路、芯片與外部緩存之間的數據通路、芯片與外部存儲器之間的數據通路進行保護;數據保護步驟,用于對描述上述通路數據的數據以及軟件敏感重要數據進行保護。所述的端對端芯片數據通路保護方法,其中,所述通路保護步驟中,進一步包括采用加入奇偶校驗位的方式對內部的SRAM數據進行保護;和/或對外部的DRAM數據保護,采用在芯片內部以32個比特為單位加入第一 ECC碼進行檢錯以及糾錯;和/或對外部的數據存儲單元NAND Flash中的數據,在路徑上采用針對數據相關的大小為單位的第二 ECC碼的保護。所述的端對端芯片數據通路保護方法,其中,所述通路保護步驟中,進一步包括對芯片內部的SRAM根據粒度采用8比特、16比特,或32比特數據進行異或操作產生奇偶校驗位,每粒度額外需要1比特的RAM單元來存儲該奇偶校驗位。所述的端對端芯片數據通路保護方法,其中,所述通路保護步驟中,進一步包括在數據寫入DRAM前,由芯片的內部硬件邏輯單元產生所述第一 ECC碼,并獲取所述第一 ECC碼在DRAM中的存儲地址;在數據讀取時,根據該存儲地址讀取所述第一 ECC碼, 并由所述內部硬件邏輯單元根據所述第一 ECC碼進行檢錯和糾錯。所述的端對端芯片數據通路保護方法,其中,所述通路保護步驟中,進一步包括在數據寫入NAND Flash前由芯片的內部硬件邏輯單元產生所述第二 ECC碼,并隨同原始數據一起寫入一個頁面;在讀取過程中,讀取整個頁面進行檢錯和糾錯。所述的端對端芯片數據通路保護方法,其中,所述數據保護步驟中,還包括對描述所述通路數據的數據,采用在芯片內部以32個比特為單位加入ECC碼進行檢錯以及糾錯;對軟件敏感重要數據,將32位數據的數據最高位保留作為奇偶校驗位,并采用該奇偶校驗位進行檢錯以及糾錯。與現有技術相比,本發(fā)明的有益技術效果是本發(fā)明提出了一種數據通路保護的系統(tǒng)方案,該技術方案能對數據緩沖以及數據存儲區(qū)的通路使用硬件邏輯進行糾錯及保護以及對描述這些通路數據的數據進行保護,大大提高了芯片對制作缺陷、工作環(huán)境的抗性,有效地增強了用戶的數據的完整性和正確性。
圖1是典型的端對端數據通路示意圖;圖2是是典型的SOC芯片內部結構示意圖;圖3是本發(fā)明的端對端芯片數據通路保護裝置結構圖;圖4是本發(fā)明對內部的SRAM中數據的保護機制示意圖;圖5是本發(fā)明對外部的DRAM中數據的保護機制示意圖;圖6是本發(fā)明對外部的NAND FLASH中數據的保護機制示意圖;圖7是本發(fā)明對META數據以及軟件敏感重要數據的保護機制示意圖。
具體實施例方式以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。對于一個典型的數據處理芯片,經常會存在著各種各樣的數據通路,由于芯片制造工藝的不斷提升,制造工藝提升容易受噪聲,工藝偏差的影響,出錯的概率也越來越大, 所以針對數據通路的保護也越來越重要,其中端對端的數據通路保護更是典型中的典型。如圖1所示,為典型的端對端數據通路。主機101遵守協議向芯片102寫入數據,芯片102接收到數據之后做某些處理寫入外部存儲器103中。同理,在寫過程,主機101發(fā)起讀操作。在圖1中,存在四種數據通路一 )為主機101與芯片102之間的數據通路;二)為芯片102內部的數據通路;三)為芯片102與外部緩存104之間的數據通路(如存在時);四)為芯片102與外部存儲器103之間的數據通路。在數據通路一中,數據將受到傳輸協議的保護,所以不在本發(fā)明覆蓋范圍之內。數據通路二、三、四均由本發(fā)明覆蓋,因此本發(fā)明是提供一個完整的數據通路保護。相對于目前存在的技術方案,都只保護以上通路上的一個或兩個。本發(fā)明除了可以保護主機101發(fā)送過來的數據外,還保護了描述這些通路數據的數據,即META數據的保護,以及軟件敏感重要數據的保護。如圖2所示,是典型的SOC芯片內部結構,其中包括CPU 20UDMA 202、總線、SRAM 203、數據傳輸協議控制器204、外部存儲控制器205、其他外設206,還包括共享RAM、DRAM控制器。在數據寫入過程中,CPU 201從數據傳輸協議控制器204接收命令或者數據,將數據緩存在SRAM 203或者外部存儲控制器205,而數據讀取過程,則與數據寫入過程相反。在數據寫入過程中,有可能由于SRAM 203以及外部存儲控制器205的原因導致錯誤。本發(fā)明將完全保護這些數據通路。在一個存儲應用方案中,PC機可能要發(fā)起一個讀取數據的操作,比如讀取一個數據文件時,不希望讀取到一個錯誤的數據,比如銀行系統(tǒng)。而出錯可能是在數據原始的存儲單元如NAND Flash,也可能在數據傳送給主機的通路上,比如SRAM,DRAM上,因此保護數據存儲單元本身以及整個數據通路都是同樣重要的。本發(fā)明提出了一種不僅僅保護數據存儲單元,而且還需要保護數據通路的方案,來確保數據出錯時予以糾正,當錯誤無法糾正時, 進行錯誤報告。如圖3所示,是本發(fā)明的端對端芯片數據通路保護裝置結構圖。該裝置300包括 通路保護模塊30、數據保護模塊40。通路保護模塊30,用于對芯片102內部的數據通路、芯片102與外部緩存104之間的數據通路、芯片102與外部存儲器103之間的數據通路進行保護;數據保護模塊40,連接通路保護模塊30,用于對描述上述通路數據的數據(即 META數據)以及軟件敏感重要數據進行保護。進一步地,通路保護模塊30通過芯片102的內部硬件邏輯單元實現保護功能,其又包括第一保護模塊301、第二保護模塊302、第三保護模塊303。第一保護模塊301,用于采用加入奇偶校驗位的方式對芯片102內部的SRAM中數據進行保護;芯片102的內部存在不同粒度的數據讀寫,因此第一保護模塊301在進行數據保護時,對芯片102內部的SRAM根據粒度采用8比特,16比特或32比特數據進行異或操作產生奇偶校驗位,每粒度額外需要1比特的RAM單元來存儲該奇偶校驗位,芯片102的內部硬件邏輯單元能提供錯誤報告機制,保護涉及所有的內部的SRAM 203,包括CPU內部。該方式將增加SRAM 203的面積。第二保護模塊302,用于對外部的DRAM數據保護,其采用在芯片102內部以每32 個BIT(比特)為單位加入ECC碼來實現檢錯以及糾錯。進一步地,第二保護模塊302在數據寫入DRAM前,芯片102的內部硬件邏輯單元產生ECC碼,并提供接口可以由用戶或者系統(tǒng)指定ECC碼所在DRAM中的存儲地址;在數據讀取時,同時根據存儲地址讀取相對應的ECC碼,并由芯片102的內部硬件邏輯單元根據 ECC碼進行檢錯和糾錯,若存在錯誤,則糾正,若無法糾正,則報錯。由于ECC碼存儲于DRAM 207內,這將會占用DRAM 207內的一些數字存儲單元,降低DRAM 207的有效使用率。針對此通路,將采用比較簡單的糾錯編碼,以減少對芯片面積的增加。進一步地,ECC碼為典型的海明碼,并需要7個額外的比特位來存儲,采用海明碼能糾正1個錯誤,并檢測到2個錯誤。第三保護模塊303,用于對外部的數據存儲單元NAND Flash 208進行保護,其是在路徑上采用針對數據相關的大小為單位的ECC碼的保護。該路徑是指由芯片102的內部緩存數據寫入外部的NAND Flash 208芯片顆粒的整個數據通路。進一步地,第三保護模塊303在數據寫入NAND Flash 208前由芯片102的內部硬件邏輯單元產生ECC碼,并隨同原始數據一起寫入一個頁面(PAGE,為NAND Flash 208最小讀寫單位),在讀取過程中,讀取整個頁面進行檢錯和糾錯,若存在錯誤,則糾正,若無法糾正,則報錯。數據保護模塊40,用于對描述上述通路數據的數據(稱之為META數據),以及可配的軟件敏感重要數據進行保護,具體地對META數據,數據保護模塊40采用DRAM 207的硬件機制保護。對軟件敏感重要數據,數據保護模塊40在32位數據的數據最高位保留作為奇偶校驗位,由芯片102提供奇偶校驗位產生和檢查的硬件邏輯單元,這對軟件數據來說是透明的,以方便軟件的使用??膳涞能浖舾兄匾獢祿侵笖祿Wo地址范圍的可配,也可以通過這個來實現是否需要使能該功能。在此,假設數據寫入DRAM 207是以32比特作為單位的,為了不用其他地址來保存該校驗位,設定最高位即第31比特作為奇偶校驗位,數據保護模塊40不能使用該比特作為數據來使用,而是用第31位來產生奇偶校驗位。如圖4所示,是本發(fā)明對內部的SRAM中數據的保護機制示意圖,結合圖2,描述該保護機制。第一保護模塊301對于芯片102內部的SRAM 203將會采用加入奇偶校驗位的方式來實現,對芯片102內部的SRAM 203根據粒度采用8比特,16比特或32比特數據進行異或操作產生奇偶校驗位,每粒度額外需要了 IBIT (比特)的RAM單元來存儲該奇偶校驗位,芯片102的內部硬件邏輯單元提供錯誤報告機制,保護涉及所有的內部的SRAM 203,包括CPU內部。該方式將增加SRAM 203的面積。如圖5所示,是本發(fā)明對外部的DRAM數據的保護機制示意圖,結合圖2,描述該保護機制。對于外部的DRAM數據保護,第二保護模塊302采用在芯片102內部以每32個 BIT(比特)為單位加入ECC碼來實現糾錯以及檢錯。進一步地,第二保護模塊302在數據寫入DRAM 207前,由芯片102的內部硬件邏輯單元產生ECC碼,并提供接口可以由用戶或系統(tǒng)指定ECC碼所在DRAM 207中的存儲地址;在數據讀取時,同時根據存儲地址讀取相對應的ECC碼,并由芯片102的內部硬件邏輯單元進行檢錯和糾錯,若存在錯誤,則糾正,若無法糾正,則報錯。由于ECC碼存儲于DRAM 207內,這將會占用DRAM 207內的一些數字存儲單元,降低DRAM 207的有效使用率。針對此通路,將采用比較簡單的糾錯編碼,以減少對芯片面積的增加。進一步地,糾錯編碼為典型的海明碼,其需要7個額外的比特位來存儲,采用海明碼能糾正1個錯誤,并檢測到2個錯誤。如圖6所示,是本發(fā)明對外部的NAND Flash中數據的保護機制示意圖,結合圖2, 描述該保護機制。本發(fā)明還對外部的數據存儲單元NAND Flash 208中的數據進行保護,具體是在該路徑上采用針對數據相關的大小為單位的ECC碼的保護。該路徑是指由芯片102的內部緩存數據寫入外部的NAND Flash 208芯片顆粒的整個數據通路。進一步地,第三保護模塊303在數據寫入NAND Flash 208前由芯片102的內部硬件邏輯單元產生ECC碼,并隨同原始數據一起寫入一個頁面(PAGE),在讀取過程中,讀取整個頁面進行檢錯和糾錯。若存在錯誤,則糾正,若無法糾正,則報錯。
如圖7所示,是本發(fā)明的對META數據以及軟件敏感重要數據的保護機制示意圖, 結合圖2,描述該保護機制。除了對以硬件邏輯(SRAM、DRAM、NAND Flash)為單元的保護以外,本發(fā)明還提出了針對描述上述通路數據的數據(稱之為META數據)的保護,以及可配的軟件敏感重要數據的保護??膳涞能浖舾兄匾獢祿侵笖祿Wo地址范圍的可配,也可以通過這個來實現是否需要使能該功能。對META數據,數據保護模塊40將用DRAM 207的硬件機制保護。對軟件敏感重要數據,數據保護模塊40是在32位數據的數據最高位保留作為奇偶校驗位,由芯片102提供奇偶校驗位產生和檢查的硬件邏輯單元,這對軟件數據來說是透明的,以方便軟件的使用。在此,假設數據寫入DRAM 207是以32比特作為單位,為了不用其他地址來保存該校驗位,假定最高位即第31比特作為奇偶校驗位,數據保護模塊40不能使用該比特作為數據來使用,而是用第31位來產生奇偶校驗位。本發(fā)明提出了對于芯片的端對端的數據通路保護方法,該技術方案以32比特為單位,最高位為奇偶校驗位來額外保護軟件數據。采用本發(fā)明提出的芯片的端對端的數據通路保護方法,將極大的提升芯片數據的正確性,適用于對數據正確性特別敏感的領域,如銀行,軍事,太空場合。當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發(fā)明做出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
9
權利要求
1.一種端對端芯片數據通路保護裝置,其特征在于,包括通路保護模塊,用于對芯片內部的數據通路、芯片與外部緩存之間的數據通路、芯片與外部存儲器之間的數據通路進行保護;數據保護模塊,連接所述通路保護模塊,用于對描述上述通路數據的數據以及軟件敏感重要數據進行保護。
2.根據權利要求1所述的端對端芯片數據通路保護裝置,其特征在于,所述通路保護模塊進一步包括第一保護模塊,用于采用加入奇偶校驗位的方式對內部的SRAM數據進行保護;和/或第二保護模塊,用于對外部的DRAM數據保護,采用在芯片內部以32個比特為單位加入第一 ECC碼進行檢錯以及糾錯;和/或第三保護模塊,用于對外部的數據存儲單元NAND Flash中的數據,在路徑上采用針對數據相關的大小為單位的第二 ECC碼的保護。
3.根據權利要求2所述的端對端芯片數據通路保護裝置,其特征在于,所述第一保護模塊進一步用于對芯片內部的SRAM根據粒度采用8比特、16比特,或32比特數據進行異或操作產生奇偶校驗位,每粒度額外需要1比特的RAM單元來存儲該奇偶校驗位。
4.根據權利要求2或3所述的端對端芯片數據通路保護裝置,其特征在于,所述第二保護模塊進一步用于在數據寫入DRAM前,由芯片的內部硬件邏輯單元產生所述第一 ECC碼,并獲取所述第一 ECC碼在DRAM中的存儲地址;在數據讀取時,根據該存儲地址讀取所述第一 ECC碼,并由所述內部硬件邏輯單元根據所述第一 ECC碼進行檢錯和糾錯。
5.根據權利要求2或3所述的端對端芯片數據通路保護裝置,其特征在于,所述第三保護模塊進一步用于在數據寫入NAND Flash前由芯片的內部硬件邏輯單元產生所述第二 ECC碼,并隨同原始數據一起寫入一個頁面;在讀取過程中,讀取整個頁面進行檢錯和糾錯。
6.根據權利要求1、2或3所述的端對端芯片數據通路保護裝置,其特征在于,所述數據保護模塊進一步用于對描述所述通路數據的數據,采用在芯片內部以每32個比特為單位加入ECC碼進行檢錯以及糾錯;對軟件敏感重要數據,將32位數據的數據最高位保留作為奇偶校驗位,并采用該奇偶校驗位進行檢錯以及糾錯。
7.—種端對端芯片數據通路保護方法,其特征在于,包括通路保護步驟,用于對芯片內部的數據通路、芯片與外部緩存之間的數據通路、芯片與外部存儲器之間的數據通路進行保護;數據保護步驟,用于對描述上述通路數據的數據以及軟件敏感重要數據進行保護。
8.根據權利要求7所述的端對端芯片數據通路保護方法,其特征在于,所述通路保護步驟中,進一步包括采用加入奇偶校驗位的方式對內部的SRAM數據進行保護;和/或對外部的DRAM數據保護,采用在芯片內部以32個比特為單位加入第一 ECC碼進行檢錯以及糾錯;和/或對外部的數據存儲單元NAND Flash中的數據,在路徑上采用針對數據相關的大小為單位的第二 ECC碼的保護。
9.根據權利要求8所述的端對端芯片數據通路保護方法,其特征在于,所述通路保護步驟中,進一步包括對芯片內部的SRAM根據粒度采用8比特、16比特,或32比特數據進行異或操作產生奇偶校驗位,每粒度額外需要1比特的RAM單元來存儲該奇偶校驗位。
10.根據權利要求8或9所述的端對端芯片數據通路保護方法,其特征在于,所述通路保護步驟中,進一步包括在數據寫入DRAM前,由芯片的內部硬件邏輯單元產生所述第一 ECC碼,并獲取所述第一 ECC碼在DRAM中的存儲地址;在數據讀取時,根據該存儲地址讀取所述第一 ECC碼,并由所述內部硬件邏輯單元根據所述第一 ECC碼進行檢錯和糾錯。
11.根據權利要求8或9所述的端對端芯片數據通路保護方法,其特征在于,所述通路保護步驟中,進一步包括在數據寫入NAND Flash前由芯片的內部硬件邏輯單元產生所述第二ECC碼,并隨同原始數據一起寫入一個頁面;在讀取過程中,讀取整個頁面進行檢錯和糾錯。
12.根據權利要求7、8或9所述的端對端芯片數據通路保護方法,其特征在于,所述數據保護步驟中,還包括對描述所述通路數據的數據,采用在芯片內部以32個比特為單位加入ECC碼進行檢錯以及糾錯;對軟件敏感重要數據,將32位數據的數據最高位保留作為奇偶校驗位,并采用該奇偶校驗位進行檢錯以及糾錯。
全文摘要
本發(fā)明公開了一種端對端芯片數據通路保護裝置及其方法,其中該裝置包括通路保護模塊,用于對芯片內部的數據通路、芯片與外部緩存之間的數據通路、芯片與外部存儲器之間的數據通路進行保護;數據保護模塊,連接所述通路保護模塊,用于對描述上述通路數據的數據以及軟件敏感重要數據進行保護。本發(fā)明能對數據緩沖以及數據存儲區(qū)的通路使用硬件邏輯進行糾錯及保護以及對描述這些通路數據的數據進行保護。
文檔編號G06F11/10GK102567132SQ201110456099
公開日2012年7月11日 申請日期2011年12月30日 優(yōu)先權日2011年12月30日
發(fā)明者傅俊誠 申請人:記憶科技(深圳)有限公司