TWI714248B - 記憶體控制器與資料保護方法 - Google Patents
記憶體控制器與資料保護方法 Download PDFInfo
- Publication number
- TWI714248B TWI714248B TW108132367A TW108132367A TWI714248B TW I714248 B TWI714248 B TW I714248B TW 108132367 A TW108132367 A TW 108132367A TW 108132367 A TW108132367 A TW 108132367A TW I714248 B TWI714248 B TW I714248B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- read
- interval
- codes
- bits
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種資料保護方法,包含:根據讀取指令自第一記憶體中取得讀取資料;自第二記憶體中取得相應於讀取資料的複數第一編碼;根據複數區間配置與讀取資料產生複數第一區間資料;利用複數編碼器以漢明重量編碼複數第一區間資料,以產生複數第二編碼;比較複數第一編碼與複數第二編碼;於複數第一編碼與複數第二編碼相同時,輸出讀取資料;及於任一第一編碼與相應之第二編碼不同時,不輸出讀取資料。
Description
本發明係關於資料保護技術,特別是一種可提升對錯誤注入(Fault Injection)之保護能力的記憶體控制器與資料保護方法。
習知,攻擊者可藉由錯誤注入(Fault Injection)攻擊來竊取電子裝置中的資料。錯誤注入攻擊通常會在電子裝置中造成錯誤。例如,透過實體接觸到訊號線、透過高功率雷射或電磁脈衝、或透過在電源供應器或其他外部介面造成突波等。
於傳統作法中,對於程式碼部分一般常使用循環冗餘校驗(CRC)來進行驗證。而儲存資料的記憶體,例如靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)等則使用同位檢查(parity check)來確認資料是否遭到竄改。然而,因同位檢查是利用一個位元來儲存資料中“0”或“1”的個數是奇數個還是偶數個,如若遇到資料中的兩個位元皆從“1”竄改為“0”或皆從“0”竄改為“1”時,同位檢查並無法檢驗出來。
本發明之一實施例揭露一種資料保護方法。資料保護方法包含:根據讀取指令自第一記憶體中取得讀取資料;自第二記憶體中取得相應於讀取資料的複數第一編碼;根據複數區間配置與讀取資料產生複數第一區間資料;利用複數編碼器以漢明重量編碼複數第一區間資料,以產生複數第二編碼;比較複數第一編碼與複數第二編碼;於複數第一編碼與複數第二編碼相同時,輸出讀取資料;及於任一第一編碼與相應之第二編碼不同時,不輸出讀取資料。
本發明之一實施例揭露一種記憶體控制器。記憶體控制器包含第一記憶體、第二記憶體、複數編碼器、判斷單元以及處理單元。第一記憶體用以儲存讀取資料。第二記憶體用以儲存相應於讀取資料的複數第一編碼。處理單元用以根據讀取指令自第一記憶體中取得讀取資料、根據複數區間配置與讀取資料產生複數第一區間資料,並利用複數編碼器以漢明重量編碼複數第一區間資料以產生複數第二編碼,且處理單元自第二記憶體中取得複數第一編碼,並利用判斷單元比較複數第一編碼與複數第二編碼,其中處理單元於判斷單元判斷複數第一編碼與複數第二編碼相同時輸出讀取資料,且於判斷單元判斷任一第一編碼與相應之第二編碼不同時不輸出讀取資料。
為使本發明之實施例之上述目的、特徵和優點能更明顯易懂,下文配合所附圖式,作詳細說明如下。
必須了解的是,使用於本說明書中的「包含」、「包括」等詞,是用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
「第一」、「第二」等詞是用來修飾元件,並非用來表示之間優先順序或先行關係,而僅用來區別具有相同名字的元件。
第1圖為應用本發明一實施例之記憶體控制器之系統的方塊示意圖。請參閱第1圖,在電子裝置的系統中可包含主裝置100以及記憶體控制器200。主裝置100可透過匯流排300耦接於記憶體控制器200,並藉由匯流排300與記憶體控制器200之間進行通訊。在一些實施態樣中,匯流排300可例如但不限定於先進高速匯流排(Advanced High performance Bus,AHB)。此外,主裝置100可例如但不限定於中央處理單元(CPU)。此外,記憶體控制器200可以積體電路製程方式製成一晶片。根據本發明之其他實施例,一微控制器係包括主裝置100以及記憶體控制器200,其中主裝置100係為中央處理單元。
值得注意的是,為了清楚闡述本發明,第1圖為一簡化的方塊圖,其中僅顯示出與本發明相關之元件。熟悉此項技藝者應了解系統亦可能包含其他元件,用以提供特定之功能。
第2圖為記憶體控制器於讀取程序中之一實施例的方塊示意圖,且第4圖為記憶體控制器於寫入程序中之一實施例的方塊示意圖。請參閱第2圖與第4圖,記憶體控制器200包含至少二記憶體(以下分別稱之為第一記憶體210與第二記憶體220)、複數編碼器231-23n、判斷單元240以及處理單元250。處理單元250耦接於第一記憶體210、第二記憶體220、複數編碼器231-23n以及判斷單元240。其中,n為大於等於1之正整數。
值得注意的是,為了清楚闡述本發明,第2圖與第3圖為一簡化的方塊圖,其中僅顯示出與本發明相關之元件。熟悉此項技藝者應了解記憶體控制器亦可能包含其他元件,用以提供特定之功能,因此,本發明並不限於第2圖與第4圖所示之內容。
第一記憶體210與第二記憶體220可用以儲存各式資料。於此,第一記憶體210可用以儲存待讀取的至少一讀取資料D1。並且,第二記憶體220可用以儲存各讀取資料D1對應的複數第一編碼E11-E1n。以下,是以一個讀取資料D1與其對應的一組第一編碼E11-E1n為例來進行說明,但其數量並非以此為限。例如,當第一記憶體210中儲存了M個讀取資料時,第二記憶體220中可儲存M組第一編碼。其中,M為大於或等於1的正整數。
在一些實施例中,第一記憶體210與第二記憶體220為兩個實體獨立的記憶體。在一些實施態樣中,第一記憶體210與第二記憶體220可利用靜態隨機存取記憶體(SRAM)或其他合適型態的記憶體來實現。
處理單元250可執行本發明任一實施例之資料保護方法,並根據本發明任一實施例之資料保護方法控制第一記憶體210、第二記憶體220、複數編碼器231-23n與判斷單元240之間的協同運作。
在一些實施例中,處理單元250可為中央處理單元、微處理器(micro-processor)、數位訊號處理器(DSP)、可程式化控制器、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)或其他類似電路元件。此外,編碼器231-23n與判斷單元240可利用邏輯電路來實現。
記憶體控制器200主要包含讀取程序與寫入程序。以下,先介紹記憶體控制器200的讀取程序。
第3圖為本發明一實施例之資料保護方法於讀取程序部分的流程示意圖。請參閱第2圖與第3圖,在資料保護方法之一實施例中,記憶體控制器200的處理單元250可偵測是否收到主裝置100所傳送的讀取指令I1。於接收到讀取指令I1時,處理單元250可根據讀取指令I1中所載的讀取位址從第一記憶體210中取得讀取資料D1(步驟S10),並且從第二記憶體220中取得相應於讀取資料D1的第一編碼E11-E1n(步驟S20)。其中,讀取資料D1為寫入資料D2寫入至第一記憶體210之後的資料,且第一編碼E11-E1n為處理單元250於寫入寫入資料D2至第一記憶體210時利用編碼器231-23n以漢明重量編碼寫入資料D2所產生的(關於寫入程序部分將留待後方進行說明)。換言之,寫入資料D2是指當初寫入時的資料,而讀取資料D1是指被讀取到的資料。
於此,步驟S10與步驟S20之執行順序可互調。需注意的是,儲存於第一記憶體210之中的讀取資料D1是有機率受到攻擊者的錯誤注入(Fault Injection)攻擊而遭受竄改。因此,讀取資料D1中恐有部分資料因受到竄改而不同於當初所寫入的寫入資料D2。
為了避免系統受到錯誤注入的攻擊,在資料保護方法之一實施例中,於取得讀取資料D1後,處理單元250可先根據複數區間配置與讀取資料D1產生出複數第一區間資料D11-D1n,並輸出複數第一區間資料D11-D1n給編碼器231-23n(步驟S30)。
在步驟S30之一實施例中,讀取資料D1可包含複數個讀取位元。處理單元250可根據配置規則產生出複數個區間配置。其中,各區間配置對應於讀取資料D1的某些讀取位元,且此些區間配置可供處理單元250據此將讀取資料D1劃分出相應數量的第一區間資料D11-D1n。因此,當區間配置的數量有N個時,第一區間資料D11-D1n的數量便有N個。於此,各區間配置具有一配置位元寬度。並且,處理單元250可根據各區間配置的配置位元寬度將讀取資料D1中第一數量個的讀取位元作為對應於此區間配置的第一區間資料。其中,第一數量相同於配置位元寬度。此外,處理單元250可將各第一區間資料D11-D1n輸出至編碼器231-23n中之一者以進行後續處理。於此,編碼器231-23n的數量等同於區間配置的數量。各區間配置對應至編碼器231-23n中之一者,且各編碼器231-23n可根據相應的區間配置負責處理一個第一區間資料。
在一些實施例中,各區間配置的配置位元寬度皆相同,且各第一區間資料D11-D1n包含相同數量的讀取位元。但本發明並非以此為限,在另一些實施例中,各區間配置的配置位元寬度亦可不相同,且各第一區間資料D11-D1n所包含的讀取位元之數量亦不同。
在一些實施例中,各區間配置於讀取資料D1中所對應的讀取位元可不相同,且各第一區間資料D11-D1n所包含的讀取位元亦可不相同。換言之,各第一區間資料D11-D1n所包含的讀取位元是不同於(不重複於)另一個第一區間資料所包含的讀取位元。
舉例而言,以讀取資料D1包含128個讀取位元,且各區間配置對應到讀取資料D1中16個讀取位元為例時,第一區間資料D11包含的讀取位元可為讀取資料D1中的第1位元至第16位元(可以[15:0]來表示)。第一區間資料D12包含的讀取位元可為讀取資料D1中的第17位元至第32位元(可以[31:16]來表示)。依此類推,第一區間資料D1n包含的讀取位元可為讀取資料D1中的第113位元至第128位元(可以[127:112]來表示)。
需注意的是,於此雖是以各第一區間資料D11-D1n依序包含讀取資料D1中連續16個讀取位元為例,但本發明並非僅限於此,各第一區間資料D11-D1n亦可包含讀取資料D1中任意16個讀取位元。此外,於此雖然是以第一區間資料D11-D1n涵蓋了讀取資料D1中所有讀取位元為例,但本發明並非僅限於此,第一區間資料D11-D1n亦可僅涵蓋了讀取資料D1中的部分讀取位元。換言之,讀取資料D1的某些讀取位元亦可不涵蓋於任一第一區間資料D11-D1n之中。
在另一些實施例中,此些區間配置中之至少一者於讀取資料D1中所對應的讀取位元可部分重複於另一區間配置於讀取資料D1中所對應的讀取位元,且此些第一區間資料D11-D1n中之至少一者所包含的讀取位元亦可部分重複於另一第一區間資料所包含的讀取位元。如此一來,可更加提升對錯誤注入的保護強度。
舉例而言,當讀取資料D1包含128個讀取位元,且各區間配置對應到讀取資料D1中16個讀取位元時,除了讀取資料D1中每16個連續的讀取位元可對應到一個第一區間資料(例如,第一區間資料D11為讀取資料D1的[15:0],第一區間資料D12為讀取資料D1的[31:16],…,第一區間資料D18為讀取資料D1的[127:112]),讀取資料D1中每16個為偶數且依序的讀取位元亦可對應到一個第一區間資料(例如,第一區間資料D19為讀取資料D1的[30,28,…,2,0],第一區間資料D110為讀取資料D1的[62,60,…,34,32],…,第一區間資料D112為讀取資料D1的[126,124,…,98,96]),並且讀取資料D1中每16個為奇數且依序的讀取位元亦可對應到一個第一區間資料(例如,第一區間資料D113為讀取資料D1的[31,29,…,3,1],第一區間資料D114為讀取資料D1的[63,61,…,35,33],…,第一區間資料D116為讀取資料D1的[127,125,…,99,97])。
需注意的是,於此雖是以連續的16個讀取位元為例,但本發明並非僅限於此,此16個讀取位元亦可為不連續的。此外,於此雖是以為偶數(或奇數)且依序的16個讀取位元為例,但本發明並非僅限於此,此些為偶數(或奇數)的16個讀取位元之順序亦可為任意。
之後,處理單元250可利用複數編碼器231-23n以漢明重量(Hamming Weight)對複數第一區間資料D11-D1n進行編碼,以產生複數第二編碼E21-E2n(步驟S40)。在步驟S40之一實施例中,處理單元250可利用各編碼器231-23n計算出各第一區間資料D11-D1n所包含的第一數量個讀取位元中為第一位元值的總位元數量(步驟S41),並利用各編碼器231-23n根據於步驟S41所得到的各第一區間資料D11-D1n的總位元數量來轉換出相應的第二編碼E21-E2n(步驟S42)。
於此,各編碼器231-23n是以二進制之方式將各第一區間資料D11-D1n的總位元數量轉換成各第二編碼E21-E2n,但本發明並非以此為限,在另一些實施例中,各編碼器231-23n亦可以八進制、十六進制或其他任何適用的進制來轉換出第二編碼E21-E2n。於本說明書中,是以二進制來進行說明。此外,第一位元值是指“1”。由於各編碼器231-23n是以漢明重量技術去產生各第二編碼E21-E2n,因此各第二編碼E21-E2n又可稱為各第一區間資料D11-D1n的漢明權重。
舉例而言,假設第一區間資料D11所包含的16個讀取位元為(0111 1010 0010 1011)時,編碼器231根據漢明重量可計算出為第一位元值的總位元數量是9個,並且轉換出的第二編碼E21為(01001)。
於步驟S40之後,處理單元250便可利用判斷單元240將步驟S20中所得到的第一編碼E11-E1n和於步驟S40中得到的第二編碼E21-E2n進行比較(步驟S50),以確認資料是否遭到竄改。並且,判斷單元240可於完成判斷後產生判斷結果R1回報給處理單元250。在一些實施態樣中,判斷單元240可利用比較電路來實現。此外,判斷單元亦可整合至處理單元250之中。
當步驟S50之判斷結果R1為此些第二編碼E21-E2n和第一編碼E11-E1n相同時,表示讀取資料D1應和當初處理單元250所寫入的寫入資料D2是相同的而並未受到竄改,因此,處理單元250此時可將讀取資料D1輸出給主裝置100,以完成整個讀取動作(步驟S60)。
然而,當步驟S50之判斷結果R1為有任一個第一編碼E11-E1n與相應的第二編碼E21-E2n不同時,表示讀取資料D1和當初處理單元250所寫入的寫入資料D2已有不同而恐已受到竄改,因此,處理單元250此時則可選擇不輸出讀取資料D1給主裝置100(步驟S70)。此外,處理單元250更可回報錯誤狀態給主裝置100,以告知主裝置100此筆讀取資料D1恐已遭到竄改。如此一來,便可避免主裝置100因收到已遭竄改的錯誤資料而致使整個系統受到錯誤注入之攻擊。
以下介紹記憶體控制器200的寫入程序。第5圖為本發明一實施例之資料保護方法於寫入程序部分的流程示意圖。請參閱第4圖與第5圖。在資料保護方法之一實施例中,處理單元250可根據主裝置100所傳送的寫入指令I2將寫入資料D2寫入至第一記憶體210(步驟S80)。此外,處理單元250可根據複數區間配置與寫入資料D2產生出複數第二區間資料D21-D2n,並輸出複數第二區間資料D21-D2n給編碼器231-23n(步驟S90)。
在步驟S90之一實施例中,寫入資料D2可包含複數個寫入位元。處理單元250可根據配置規則產生出複數個區間配置。其中,各區間配置對應於寫入資料D2的某些寫入位元,且此些區間配置可供處理單元250據此將寫入資料D2劃分出相應數量的第二區間資料D21-D2n。因此,當區間配置的數量有N個時,第二區間資料D21-D2n的數量便有N個。並且,處理單元250可根據各區間配置的配置位元寬度將寫入資料D2中第一數量個的寫入位元作為對應於此區間配置的第二區間資料。其中,第一數量相同於配置位元寬度。此外,處理單元250可將各第二區間資料D21-D2n輸出至編碼器231-23n中之一者以進行後續處理。於此,編碼器231-23n的數量等同於第二區間資料D21-D2n的數量,且各編碼器231-23n負責處理一個第二區間資料。
在一些實施例中,各區間配置的配置位元寬度皆相同,且各第二區間資料D21-D2n包含相同數量的寫入位元。但本發明並非以此為限,在另一些實施例中,各區間配置的配置位元寬度亦可不相同,且各第二區間資料D21-D2n所包含的寫入位元之數量亦不同。
在一些實施例中,各區間配置於寫入資料D2中所對應的讀取位元可不相同,且各第二區間資料D21-D2n所包含的寫入位元亦可不相同。換言之,各第二區間資料D21-D2n所包含的寫入位元是不同於(不重複於)另一個第二區間資料所包含的寫入位元。
舉例而言,以寫入資料D2包含128個寫入位元,且各區間配置對應到寫入資料D1中16個寫入位元為例時,第二區間資料D21包含的寫入位元可為寫入資料D2中的第1位元至第16位元(可以[15:0]來表示)。第二區間資料D22包含的寫入位元可為寫入資料D2中的第17位元至第32位元(可以[31:16]來表示)。依此類推,第二區間資料D2n包含的寫入位元可為寫入資料D2中的第113位元至第128位元(可以[127:112]來表示)。
需注意的是,於此雖是以各第二區間資料D21-D2n依序包含寫入資料D2中連續16個寫入位元為例,但本發明並非僅限於此,各第二區間資料D21-D2n亦可包含寫入資料D2中任意16個寫入位元。此外,於此雖然是以第二區間資料D21-D2n涵蓋了寫入資料D2中所有讀取位元為例,但本發明並非僅限於此,第二區間資料D21-D2n亦可僅涵蓋了寫入資料D2中的部分寫入位元。換言之,寫入資料D2的某些寫入位元亦可不涵蓋於任一第二區間資料D21-D2n之中。
在另一些實施例中,此些區間配置中之至少一者於寫入資料D2中所對應的寫入位元可部分重複於另一區間配置於寫入資料D2中所對應的寫入位元,且此些第二區間資料D21-D2n中之至少一者所包含的寫入位元亦可部分重複於另一第二區間資料所包含的寫入位元。如此一來,可更加提升對錯誤注入的保護強度。
舉例而言,當寫入資料D2包含128個寫入位元,且各區間配置對應到寫入資料D2中16個讀取位元時,除了寫入資料D2中每16個連續的讀取位元可對應到一個第二區間資料(例如,第二區間資料D21為寫入資料D2的[15:0],第二區間資料D22為寫入資料D2的[31:16],…,第二區間資料D28為寫入資料D2的[127:112]),寫入資料D2中每16個為偶數且依序的寫入位元亦可對應到一個第二區間資料(例如,第二區間資料D29為寫入資料D2的[30,28,…,2,0],第二區間資料D210為寫入資料D2的[62,60,…,34,32],…,第二區間資料D212為寫入資料D2的[126,124,…,98,96]),並且寫入資料D2中每16個為奇數且依序的寫入位元亦可對應到一個第二區間資料(例如,第二區間資料D213為寫入資料D2的[31,29,…,3,1],第二區間資料D214為寫入資料D2的[63,61,…,35,33],…,第二區間資料D216為寫入資料D2的[127,125,…,99,97])。
需注意的是,於此雖是以連續的16個寫入位元為例,但本發明並非僅限於此,此16個寫入位元亦可為不連續的。此外,於此雖是以為偶數(或奇數)且依序的16個寫入位元為例,但本發明並非僅限於此,此些為偶數(或奇數)的16個寫入位元之順序亦可為任意。另外,寫入程序中所採用的配置規則是相同於讀取程序中所採用的配置規則。
於步驟S90之後,處理單元250可利用複數編碼器231-23n以漢明重量對複數第二區間資料D21-D2n進行編碼,以產生複數第一編碼E11-E1n(步驟S100)。在步驟S90之一實施例中,處理單元250可利用各編碼器231-23n計算出各第二區間資料D21-D2n所包含的第一數量個寫入位元中為第一位元值的總位元數量(步驟S101),並利用各編碼器231-23n根據於步驟S41所得到的各第二區間資料D21-D2n的總位元數量來轉換出相應的第一編碼E11-E1n(步驟S102)。於此,各編碼器231-23n是以二進制之方式將各第二區間資料D21-D2n的總位元數量轉換成各第一編碼E11-E1n。其中,各第二區間資料D21-D2n的總位元數量轉換成各第一編碼E11-E1n的詳細轉換方式可參閱前方例示。由於各編碼器231-23n是以漢明重量技術去產生各第一編碼E11-E1n,因此各第一編碼E11-E1n又可稱為各第二區間資料D21-D2n的漢明權重。
於轉換出第一編碼E11-E1n之後,處理單元250便可將所得的此些第一編碼E11-E1n存入至第二記憶體120之中,以待於讀取程序中供校驗之用(步驟S110)。
在一些實施例中,因步驟S80是寫入至第一記憶體210,而步驟S110是寫入至第二記憶體220,故步驟S80寫入動作和步驟S110的寫入動作是可同步執行的,以節省寫入時間。
需注意的是,當記憶體控制器200所用的配置規則越多時,資料將可被劃分的更細、更複雜,如此一來對錯誤注入的保護能力亦將更高。因此,熟知此項技藝者應能理解各種可能的配置規則皆應涵蓋於本發明之範圍內。
綜上所述,本發明之實施例提供一種記憶體控制器與資料保護方法,其在讀取程序中藉由將在寫入程序中已存至第二記憶體的複數第一編碼和根據讀取到之讀取資料所產生的複數第二編碼進行比對,以確認讀取資料是否已和當初寫入至第一記憶體中的寫入資料有所不同。並且,本發明之實施例的記憶體控制器與資料保護方法在任一第二編碼與相應的第一編碼不相同時不輸出讀取資料,以藉此避免系統受到錯誤注入的攻擊。
本發明之實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明實施例之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:主裝置
200:記憶體控制器
210:第一記憶體
220:第二記憶體
231-23n:編碼器
240:判斷單元
250:處理單元
300:匯流排
D1:讀取資料
D11-D1n:第一區間資料
D2:寫入資料
D21-D2n:第二區間資料
E11-E1n:第一編碼
E21-E2n:第二編碼
I1:讀取指令
I2:寫入指令
R1:判斷結果
S10-S110:步驟
第1圖為應用本發明一實施例之記憶體控制器之系統的方塊示意圖。
第2圖為記憶體控制器於讀取程序中之一實施例的方塊示意圖。
第3圖為本發明一實施例之資料保護方法於讀取程序部分的流程示意圖。
第4圖為記憶體控制器於寫入程序中之一實施例的方塊示意圖。
第5圖為本發明一實施例之資料保護方法於寫入程序部分的流程示意圖。
S10-S70:步驟
Claims (8)
- 一種資料保護方法,包含:根據一讀取指令自一第一記憶體中取得一讀取資料;自一第二記憶體中取得相應於該讀取資料的複數第一編碼;根據複數區間配置與該讀取資料產生複數第一區間資料;利用複數編碼器以漢明重量(Hamming Weight)編碼該些第一區間資料,以產生複數第二編碼;比較該些第一編碼與該些第二編碼;於該些第一編碼與該些第二編碼相同時,輸出該讀取資料;及於任一該第一編碼與相應之該第二編碼不同時,不輸出該讀取資料;其中該讀取資料包含複數讀取位元,及其中產生該些第一區間資料之步驟係分別根據各該區間配置以該讀取資料中第一數量個的該些讀取位元作為各該第一區間資料,且各該第一區間資料的該些讀取位元不同於另一該第一區間資料的該些讀取位元。
- 如申請專利範圍第1項所述之資料保護方法,更包含:根據一寫入指令寫入一寫入資料至該第一記憶體中,其中該讀取資料為該寫入資料寫入至該第一記憶體之後的資料;根據該些區間配置與該寫入資料產生複數第二區間資料;利用該些編碼器以漢明重量編碼該些第二區間資料,以產生該些第一編碼;及將該些第一編碼儲存至該第二記憶體中。
- 一種資料保護方法,包含:根據一讀取指令自一第一記憶體中取得一讀取資料;自一第二記憶體中取得相應於該讀取資料的複數第一編碼;根據複數區間配置與該讀取資料產生複數第一區間資料;利用複數編碼器以漢明重量(Hamming Weight)編碼該些第一區間資料,以產生複數第二編碼;比較該些第一編碼與該些第二編碼;於該些第一編碼與該些第二編碼相同時,輸出該讀取資料;及於任一該第一編碼與相應之該第二編碼不同時,不輸出該讀取資料;其中該讀取資料包含複數讀取位元,及其中產生該些第一區間資料之步驟係分別根據各該區間配置以該讀取資料中第一數量個的該些讀取位元作為該第一區間資料,且該些第一區間資料中之至少一者的該些讀取位元和該些第一區間資料中之另一者的該些讀取位元局部重複。
- 如申請專利範圍第2項所述之資料保護方法,其中該寫入資料包含複數寫入位元,及其中產生該些第二區間資料之步驟係分別根據各該區間配置以該寫入資料中第一數量個的該些寫入位元作為各該第二區間資料,且該些第二區間資料中之至少一者的該些寫入位元和該些第二區間資料中之另一者的該些寫入位元局部重複。
- 一種記憶體控制器,包含:一第一記憶體,用以儲存一讀取資料;一第二記憶體,用以儲存相應於該讀取資料的複數第一編碼; 複數編碼器;一判斷單元;及一處理單元,用以根據一讀取指令自該第一記憶體中取得該讀取資料、根據複數區間配置與該讀取資料產生複數第一區間資料,並利用該些編碼器以漢明重量編碼該些第一區間資料以產生複數第二編碼,且該處理單元自該第二記憶體中取得該些第一編碼,並利用該判斷單元比較該些第一編碼與該些第二編碼,其中該處理單元於該判斷單元判斷該些第一編碼與該些第二編碼相同時輸出該讀取資料,且於該判斷單元判斷任一該第一編碼與相應之該第二編碼不同時不輸出該讀取資料;其中該讀取資料包含複數讀取位元,該處理單元係分別根據各該區間配置以該讀取資料中第一數量個的該些讀取位元作為各該第一區間資料,且各該第一區間資料的該些讀取位元不同於另一該第一區間資料的該些讀取位元。
- 如申請專利範圍第5項所述之記憶體控制器,其中該處理單元更根據一寫入指令寫入一寫入資料至該第一記憶體中、根據該些區間配置與該寫入資料產生複數第二區間資料、利用該些編碼器根據該寫入資料產生該些第一編碼,並且將該些第一編碼儲存至該第二記憶體中,其中該讀取資料為該寫入資料寫入至該第一記憶體之後的資料。
- 一種記憶體控制器,包含:一第一記憶體,用以儲存一讀取資料;一第二記憶體,用以儲存相應於該讀取資料的複數第一編碼;複數編碼器; 一判斷單元;及一處理單元,用以根據一讀取指令自該第一記憶體中取得該讀取資料、根據複數區間配置與該讀取資料產生複數第一區間資料,並利用該些編碼器以漢明重量編碼該些第一區間資料以產生複數第二編碼,且該處理單元自該第二記憶體中取得該些第一編碼,並利用該判斷單元比較該些第一編碼與該些第二編碼,其中該處理單元於該判斷單元判斷該些第一編碼與該些第二編碼相同時輸出該讀取資料,且於該判斷單元判斷任一該第一編碼與相應之該第二編碼不同時不輸出該讀取資料;其中該讀取資料包含複數讀取位元,該處理單元係分別根據各該區間配置以該讀取資料中第一數量個的該些讀取位元作為該第一區間資料,且該些第一區間資料中之至少一者的該些讀取位元和該些第一區間資料中之另一者的該些讀取位元局部重複。
- 如申請專利範圍第6項所述之記憶體控制器,其中該寫入資料包含複數寫入位元,該處理單元係分別根據各該區間配置以該寫入資料中第一數量個的該些寫入位元作為該第二區間資料,且各該第二區間資料的該些寫入位元不同於另一該第二區間資料的該些寫入位元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108132367A TWI714248B (zh) | 2019-09-09 | 2019-09-09 | 記憶體控制器與資料保護方法 |
CN201911372415.0A CN112464298B (zh) | 2019-09-09 | 2019-12-27 | 存储器控制器与数据保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108132367A TWI714248B (zh) | 2019-09-09 | 2019-09-09 | 記憶體控制器與資料保護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI714248B true TWI714248B (zh) | 2020-12-21 |
TW202111547A TW202111547A (zh) | 2021-03-16 |
Family
ID=74670032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108132367A TWI714248B (zh) | 2019-09-09 | 2019-09-09 | 記憶體控制器與資料保護方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112464298B (zh) |
TW (1) | TWI714248B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW418570B (en) * | 1998-01-05 | 2001-01-11 | Gen Dymamics Information Syste | Fault tolerant memory system |
US7318186B2 (en) * | 2003-05-13 | 2008-01-08 | Sony Corporation | Decoding method, decoding apparatus, and program to decode low density parity check codes |
US20080256419A1 (en) * | 2007-04-13 | 2008-10-16 | Microchip Technology Incorporated | Configurable Split Storage of Error Detecting and Correcting Codes |
US8397139B1 (en) * | 2009-02-09 | 2013-03-12 | Marvell International Ltd. | Method and apparatus for processing nuisance data |
US20190129791A1 (en) * | 2016-04-05 | 2019-05-02 | Micron Technology, Inc. | Error correction code (ecc) operations in memory |
US10289486B2 (en) * | 2017-07-13 | 2019-05-14 | Omnivision Technologies, Inc. | Memory with pattern oriented error correction code |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1912148A1 (en) * | 2006-10-09 | 2008-04-16 | Axalto S.A. | Protection against side channel attacks with an integrity check |
FR2946787A1 (fr) * | 2009-06-16 | 2010-12-17 | St Microelectronics Rousset | Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant |
TWI556254B (zh) * | 2014-10-14 | 2016-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料存取方法 |
US10133625B2 (en) * | 2015-08-11 | 2018-11-20 | Western Digital Technologies, Inc. | Storing parity data separate from protected data |
-
2019
- 2019-09-09 TW TW108132367A patent/TWI714248B/zh active
- 2019-12-27 CN CN201911372415.0A patent/CN112464298B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW418570B (en) * | 1998-01-05 | 2001-01-11 | Gen Dymamics Information Syste | Fault tolerant memory system |
US7318186B2 (en) * | 2003-05-13 | 2008-01-08 | Sony Corporation | Decoding method, decoding apparatus, and program to decode low density parity check codes |
US20080256419A1 (en) * | 2007-04-13 | 2008-10-16 | Microchip Technology Incorporated | Configurable Split Storage of Error Detecting and Correcting Codes |
US8397139B1 (en) * | 2009-02-09 | 2013-03-12 | Marvell International Ltd. | Method and apparatus for processing nuisance data |
US20190129791A1 (en) * | 2016-04-05 | 2019-05-02 | Micron Technology, Inc. | Error correction code (ecc) operations in memory |
US10289486B2 (en) * | 2017-07-13 | 2019-05-14 | Omnivision Technologies, Inc. | Memory with pattern oriented error correction code |
Also Published As
Publication number | Publication date |
---|---|
TW202111547A (zh) | 2021-03-16 |
CN112464298A (zh) | 2021-03-09 |
CN112464298B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169126B2 (en) | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation | |
JP7387725B2 (ja) | アドレス障害を検出するためのシステム、方法、及び装置 | |
US10496471B2 (en) | Register error detection system | |
CN111143107B (zh) | 一种fpga单粒子反转校验电路和方法 | |
JP5506908B2 (ja) | 集積回路における故障耐性 | |
US9923578B2 (en) | Parity check circuit and memory device including the same | |
JPH03248251A (ja) | 情報処理装置 | |
US10725672B2 (en) | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation | |
TWI714248B (zh) | 記憶體控制器與資料保護方法 | |
CN109766214A (zh) | 一种最优h矩阵生成方法及装置 | |
CN113868012A (zh) | 一种实现错误检查和纠正码功能的方法和装置 | |
JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
WO2008051385A2 (en) | Data allocation in memory chips | |
US10044500B2 (en) | Error correction coding redundancy based data hashing | |
TWI697908B (zh) | 使用階層式解碼器之誤差校正 | |
JP5174603B2 (ja) | メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ | |
JP6673021B2 (ja) | メモリおよび情報処理装置 | |
KR20200018156A (ko) | 메모리장치에 대한 에러정정코드 기능을 갖는 메모리 시스템 및 그 운영방법 | |
CN114333968A (zh) | 存储器的控制方法、存储器控制器及电子装置 | |
CN110543790B (zh) | 访问存储器的方法、装置、设备和计算机可读介质 | |
JP6054753B2 (ja) | 半導体装置及びデータアクセス方法 | |
TWI537971B (zh) | Storage device and access method thereof | |
JP5446931B2 (ja) | 誤り検出訂正装置及びメモリ装置 | |
CN111061591A (zh) | 基于存储器完整性检查控制器实现数据完整性检查的系统和方法 | |
US20230367912A1 (en) | Semiconductor chip apparatus and method for checking the integrity of a memory |