失效安全代碼功能的制作方法
【專利摘要】失效安全代碼功能。本公開內(nèi)容的一些方面提供了一種經(jīng)受錯(cuò)誤校正代碼(ECC)校驗(yàn)的非易失性存儲(chǔ)裝置(NVM)的故障緩解的系統(tǒng)和方法。公開了在執(zhí)行之前用于測(cè)試存儲(chǔ)在非易失性存儲(chǔ)器內(nèi)的失效安全代碼完整性的簡單且強(qiáng)大的手段。在一些實(shí)施例中,失效安全代碼包括將存儲(chǔ)器故障傳送到系統(tǒng)其它部分或執(zhí)行順序關(guān)機(jī)的程序單元。萬一ECC錯(cuò)誤出現(xiàn),就可以驗(yàn)證失效安全代碼,并且根據(jù)成功的驗(yàn)證來執(zhí)行失效安全代碼。
【專利說明】失效安全代碼功能
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及失效安全代碼功能。
【背景技術(shù)】
[0002]在關(guān)于非易失性存儲(chǔ)器(NVM)的現(xiàn)有技術(shù)中,數(shù)據(jù)位惡化是普遍的。將錯(cuò)誤校正代碼(ECC)機(jī)構(gòu)并入以便檢測(cè)和校正經(jīng)由NVM訪問的應(yīng)用代碼內(nèi)的數(shù)據(jù)位錯(cuò)誤。ECC機(jī)構(gòu)可以檢測(cè)和校正全部單個(gè)位錯(cuò)誤并且檢測(cè)某些多個(gè)位錯(cuò)誤。在已經(jīng)由ECC機(jī)構(gòu)檢測(cè)到存儲(chǔ)在NVM內(nèi)的應(yīng)用代碼內(nèi)的不可校正的位錯(cuò)誤的情形下,不能夠安全地執(zhí)行應(yīng)用代碼。
【發(fā)明內(nèi)容】
[0003]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于系統(tǒng)中的失效安全保護(hù)的方法,包括:當(dāng)從第一存儲(chǔ)裝置檢索應(yīng)用代碼時(shí),利用第一破壞檢測(cè)和校正機(jī)構(gòu)來針對(duì)包括惡化數(shù)據(jù)位的破壞校驗(yàn)存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的應(yīng)用代碼;定位對(duì)所述應(yīng)用代碼的不可校正的破壞,從而提示位于所述第一存儲(chǔ)裝置內(nèi)的失效安全代碼執(zhí)行,其中所述失效安全代碼配置為通過失效安全協(xié)議來引導(dǎo)系統(tǒng);利用位于第二存儲(chǔ)裝置內(nèi)的第二破壞檢測(cè)和校正機(jī)構(gòu)來針對(duì)破壞校驗(yàn)所述失效安全代碼;以及執(zhí)行所述失效安全代碼。
[0004]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種配置為提供失效安全保護(hù)的系統(tǒng),包括:第一存儲(chǔ)裝置,所述第一存儲(chǔ)裝置包括非易失性存儲(chǔ)器并且配置為存儲(chǔ)多個(gè)數(shù)據(jù)位,所述數(shù)據(jù)位包括應(yīng)用代碼或失效安全代碼;錯(cuò)誤校正代碼(ECC)硬件,所述錯(cuò)誤校正代碼(ECC)硬件耦合到所述第一存儲(chǔ)裝置的輸出并且配置為根據(jù)從所述第一存儲(chǔ)裝置的檢索來檢測(cè)和校正所述應(yīng)用代碼或所述失效安全代碼內(nèi)的數(shù)據(jù)位惡化;第二存儲(chǔ)裝置,所述第二存儲(chǔ)裝置包括只讀存儲(chǔ)器并且配置為存儲(chǔ)所述第一存儲(chǔ)裝置的存儲(chǔ)器完整性校驗(yàn),其中所述存儲(chǔ)器完整性校驗(yàn)配置為驗(yàn)證存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的所述多個(gè)數(shù)據(jù)位的正確性;以及控制器,所述控制器配置為訪問所述應(yīng)用代碼、失效安全代碼或存儲(chǔ)器完整性校驗(yàn),并且配置為萬一所述ECC硬件檢測(cè)到所述應(yīng)用代碼或失效安全代碼的惡化則執(zhí)行所述第一存儲(chǔ)裝置的所述存儲(chǔ)器完整性校驗(yàn)。
[0005]根據(jù)本發(fā)明的還有另一個(gè)方面,提供了一種配置為提供失效安全保護(hù)的系統(tǒng),包括:第一存儲(chǔ)裝置,所述第一存儲(chǔ)裝置包括非易失性存儲(chǔ)器并且配置為存儲(chǔ)多個(gè)數(shù)據(jù)位,所述數(shù)據(jù)位包括:應(yīng)用代碼;應(yīng)用數(shù)據(jù),所述應(yīng)用數(shù)據(jù)在系統(tǒng)運(yùn)行期間從所述應(yīng)用代碼導(dǎo)出;校準(zhǔn)代碼,所述校準(zhǔn)代碼配置為在系統(tǒng)開啟期間初始化所述應(yīng)用代碼;以及失效安全代碼,所述失效安全代碼配置為通過失效安全協(xié)議引導(dǎo)所述系統(tǒng);錯(cuò)誤校正代碼(ECC)硬件,所述錯(cuò)誤校正代碼(ECC)硬件耦合到所述第一存儲(chǔ)裝置的輸出并且配置為檢測(cè)且校正所述應(yīng)用代碼、所述應(yīng)用數(shù)據(jù)、所述校準(zhǔn)代碼或所述失效安全代碼內(nèi)的數(shù)據(jù)位惡化;以及第二存儲(chǔ)裝置,所述第二存儲(chǔ)裝置包括只讀存儲(chǔ)器并且配置為存儲(chǔ)多個(gè)數(shù)據(jù)位,所述數(shù)據(jù)位包括:存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的數(shù)據(jù)的校驗(yàn)和;以及失效安全校驗(yàn),所述失效安全校驗(yàn)配置為萬一所述ECC硬件檢測(cè)到包括所述應(yīng)用代碼、所述應(yīng)用數(shù)據(jù)或所述校準(zhǔn)代碼的所述一個(gè)或多個(gè)數(shù)據(jù)位的惡化則訪問和引導(dǎo)所述失效安全代碼。
【專利附圖】
【附圖說明】
[0006]圖1圖示了包括具有錯(cuò)誤校正代碼硬件和失效安全代碼的集成電路的系統(tǒng)。
[0007]圖2圖示了配置為提供失效安全保護(hù)的系統(tǒng)的一些實(shí)施例的框圖。
[0008]圖3圖示了配置為提供失效安全保護(hù)的系統(tǒng)的一些實(shí)施例。
[0009]圖4A圖示了配置為提供包括冗余校驗(yàn)和值的失效安全保護(hù)的系統(tǒng)的一些實(shí)施例。
[0010]圖4B圖示了配置為提供包括失效安全代碼的冗余副本與校驗(yàn)和值的冗余副本的失效安全保護(hù)的系統(tǒng)的一些實(shí)施例。
[0011]圖4C圖示了配置為提供包括失效安全代碼的多個(gè)冗余副本的失效安全保護(hù)的系統(tǒng)的一些實(shí)施例。
[0012]圖5圖示了配置為提供包括多個(gè)校驗(yàn)和值的失效安全保護(hù)的系統(tǒng)的一些實(shí)施例。
[0013]圖6圖示了系統(tǒng)中的失效安全保護(hù)方法的一些實(shí)施例的框圖。
【具體實(shí)施方式】
[0014]參照附圖進(jìn)行本 文的說明,其中同樣的附圖標(biāo)記一般自始至終被利用來指的是同樣的元件,并且其中各種結(jié)構(gòu)不必需按比例繪制。在以下的說明中,出于解釋的目的,陳述了大量特定細(xì)節(jié)以便促進(jìn)理解。然而對(duì)本領(lǐng)域的普通技術(shù)人員顯而易見地是,可以以較小程度的這些特定細(xì)節(jié)來實(shí)施本文描述的一個(gè)或多個(gè)方面。在其它實(shí)例中,以框圖形式示出了已知的結(jié)構(gòu)和裝置以促進(jìn)理解。
[0015]圖1圖示了系統(tǒng)100,該系統(tǒng)100包括集成芯片(IC)102、微控制器(μΟ104和第一存儲(chǔ)裝置106,該第一存儲(chǔ)裝置106進(jìn)一步包括非易失性存儲(chǔ)器(NVM),諸如閃速存儲(chǔ)器、電可擦除可編程只讀存儲(chǔ)器(EEPROM)或磁存儲(chǔ)器。第一存儲(chǔ)裝置106包括可寫存儲(chǔ)器以接收、存儲(chǔ)和執(zhí)行應(yīng)用代碼108。UC 104耦合到第一存儲(chǔ)裝置106并且可以通過應(yīng)用代碼控制命令A(yù)etrt來訪問應(yīng)用代碼108以將全部或部分應(yīng)用代碼108接收為應(yīng)用代碼反饋信號(hào)Af^系統(tǒng)100是自治的(B卩,系統(tǒng)100在運(yùn)行期間既不由用戶控制也不由用戶監(jiān)控)并且具有諸如汽車安全系統(tǒng)、后勤(logistical)系統(tǒng)(諸如輪胎氣壓監(jiān)控)等等之類的應(yīng)用。應(yīng)用代碼108的數(shù)據(jù)位惡化在包括第一存儲(chǔ)裝置106 (進(jìn)一步包括NVM)的技術(shù)中是普遍的,從而驅(qū)動(dòng)了對(duì)錯(cuò)誤校正代碼(ECC)機(jī)構(gòu)的需要以識(shí)別并校正應(yīng)用代碼108內(nèi)的數(shù)據(jù)位惡化。對(duì)于可編程IC 102而言,第一存儲(chǔ)裝置106進(jìn)一步包括配置為萬一應(yīng)用代碼108內(nèi)檢測(cè)到不可校正的數(shù)據(jù)位惡化則引導(dǎo)系統(tǒng)100的失效安全代碼110。為了檢測(cè)可能的惡化,ECC硬件112位于第一存儲(chǔ)裝置106與UC 104之間的接口內(nèi)并且配置為檢測(cè)應(yīng)用代碼反饋信號(hào)Afb內(nèi)的數(shù)據(jù)位惡化且當(dāng)可能產(chǎn)生校正的應(yīng)用代碼反饋信號(hào)Afb 時(shí)來校正數(shù)據(jù)位惡化。
[0016]ECC算法可以檢測(cè)并且校正全部單個(gè)位錯(cuò)誤且檢測(cè)某些多個(gè)位錯(cuò)誤。在應(yīng)用代碼反饋信號(hào)Afb內(nèi)的不可校正的位錯(cuò)誤由ECC硬件112檢測(cè)到的情形下,不能夠安全地執(zhí)行應(yīng)用代碼108。通過失效安全代碼控制命令FSc^1,由故障緩解協(xié)議(例如,系統(tǒng)關(guān)機(jī)、系統(tǒng)重啟、進(jìn)入無限循環(huán)等等)來調(diào)用失效安全代碼110以安全地引導(dǎo)可編程IC 102。FS—引導(dǎo)NVM將全部或部分失效安全代碼110作為失效安全代碼反饋信號(hào)FSfb (也通過ECC硬件112)發(fā)送至yC 104。然而,因?yàn)镋CC硬件112不能夠檢測(cè)全部數(shù)據(jù)位錯(cuò)誤類型,所以還可以惡化失效安全代碼110,即使在ECC校驗(yàn)和校正以產(chǎn)生校正的失效安全代碼反饋信號(hào)FSfb μ之后。更強(qiáng)大的解決方案可以以諸如只讀存儲(chǔ)器(ROM)之類的更可靠形式的存儲(chǔ)器來實(shí)施失效安全代碼110。然而,基于ROM的解決方案具有缺點(diǎn):這些解決方案對(duì)不同或改寫的ECC故障響應(yīng)不是靈活的(即,ROM是不可編程的)。
[0017]因此,本公開內(nèi)容的一些方面提供了服從ECC校驗(yàn)的NVM存儲(chǔ)的故障緩解的系統(tǒng)和方法。公開了執(zhí)行之前用于測(cè)試存儲(chǔ)在NVM內(nèi)的失效安全代碼完整性的簡單和強(qiáng)大的手段。在一些實(shí)施例中,失效安全代碼包括對(duì)系統(tǒng)其它部分傳送存儲(chǔ)器失效的程序單元,或執(zhí)行順序關(guān)機(jī)的程序單元。萬一出現(xiàn)ECC錯(cuò)誤,則可以驗(yàn)證失效安全代碼并且可以根據(jù)成功的驗(yàn)證來執(zhí)行失效安全代碼。
[0018]圖2圖示了配置為提供失效安全保護(hù)的系統(tǒng)200的一些實(shí)施例的框圖。應(yīng)用代碼由控制器208從第一存儲(chǔ)裝置202來檢索,并且同時(shí)由第一破壞檢測(cè)和校正接口 206來校驗(yàn)破壞。與連續(xù)背景掃描不同,這種破壞檢測(cè)和校正機(jī)構(gòu)的實(shí)例將僅僅在于給定時(shí)間點(diǎn)訪問的存儲(chǔ)器位置中尋找錯(cuò)誤,并且在第一存儲(chǔ)裝置202的未被訪問的區(qū)域中不進(jìn)行校驗(yàn)。在一些實(shí)例中,第一破壞檢測(cè)和校正接口 206定位第一存儲(chǔ)裝置202內(nèi)的不可校正的破壞210,從而提示系統(tǒng)從事于故障緩解協(xié)議(包括引導(dǎo)系統(tǒng)關(guān)機(jī)的執(zhí)行失效安全代碼214)。然而,因?yàn)槭О踩a位于第一存儲(chǔ)裝置202內(nèi),所以也可能破壞。同樣地,在失效安全代碼214執(zhí)行之前,第二破壞檢測(cè)和校正接口 212校驗(yàn)關(guān)于破壞的失效安全代碼,其中第二破壞檢測(cè)和校正接口 212位于第二存儲(chǔ)裝置204內(nèi),使得其不由對(duì)第一存儲(chǔ)裝置202的破壞所影響。只要在應(yīng)用代碼內(nèi)沒有發(fā)現(xiàn)不可校正的破壞,系統(tǒng)就執(zhí)行失效安全代碼214。
[0019]圖3圖示了配置為提供失效安全保護(hù)的系統(tǒng)300的一些實(shí)施例,該系統(tǒng)300包括IC 102,該IC 102進(jìn)一步包括第一存儲(chǔ)裝置106和第二存儲(chǔ)裝置302。IC 102進(jìn)一步包括配置為向各種系統(tǒng)部件提供指令的微控制器(μ C) 104。第一存儲(chǔ)裝置106進(jìn)一步包括配置為存儲(chǔ)多個(gè)數(shù)據(jù)位(包括應(yīng)用代碼108和失效安全代碼110)的NVM。應(yīng)用代碼108還可以包括恒定數(shù)據(jù)或應(yīng)用數(shù)據(jù),使得應(yīng)用代碼108不僅僅限于是可執(zhí)行的指令代碼。UC 104配置為通過應(yīng)用控制命令A(yù)rtri來訪問應(yīng)用代碼108,并且配置為通過應(yīng)用反饋信號(hào)Afb來接收一些或全部應(yīng)用代碼108。μ C 104進(jìn)一步配置為還通過失效安全控制命令FSetri來訪問失效安全代碼110并且通過失效安全反饋信號(hào)FSfb來接收一些或全部失效安全代碼110。
[0020]系統(tǒng)300的實(shí)施例進(jìn)一步包括耦合到應(yīng)用代碼108和失效安全代碼110的輸出的ECC硬件112。ECC硬件112配置為檢測(cè)和校正應(yīng)用反饋信號(hào)Afb和失效安全反饋信號(hào)FSfb內(nèi)的一個(gè)或多個(gè)數(shù)據(jù)位的可能惡化,以分別產(chǎn)生ECC校正的應(yīng)用反饋信號(hào)Afb 和ECC校正的失效安全反饋信號(hào)FSfb E。。。ECC校正的應(yīng)用反饋信號(hào)Afb 和ECC校正的失效安全反饋信號(hào)FSfb 進(jìn)一步包括ECC失效狀態(tài),該ECC失效狀態(tài)包括附加錯(cuò)誤位(例如,奇偶校驗(yàn)位),該附加錯(cuò)誤位指示是否發(fā)現(xiàn)且校正一個(gè)或多個(gè)位錯(cuò)誤,是否發(fā)現(xiàn)且不能夠校正一個(gè)或多個(gè)位錯(cuò)誤等等。附加錯(cuò)誤位允許μ C 104確定下一個(gè)動(dòng)作步驟。萬一應(yīng)用代碼108中檢測(cè)到不可校正的位錯(cuò)誤,則出現(xiàn)數(shù)個(gè)可能性。ECC失效狀態(tài)不自動(dòng)地將執(zhí)行重新引導(dǎo)至失效安全代碼110。更確切地說,ECC失效狀態(tài)必須由應(yīng)用代碼108本身周期性地校驗(yàn)。在一些實(shí)施例中,能夠出現(xiàn)對(duì)失效安全代碼110的自動(dòng)重新引導(dǎo)。在其它實(shí)施例中,在失效安全代碼110執(zhí)行之前,μ C 104可以確定ECC失效狀態(tài)的“嚴(yán)重性”。[0021 ] 第二存儲(chǔ)裝置306進(jìn)一步包括存儲(chǔ)第一存儲(chǔ)裝置106的存儲(chǔ)器完整性校驗(yàn)304的ROM。通過將存儲(chǔ)器完整性校驗(yàn)304存儲(chǔ)在分離的存儲(chǔ)裝置內(nèi),存儲(chǔ)器完整性校驗(yàn)304不受對(duì)第一存儲(chǔ)裝置106的可能破壞的影響。而且,ROM提供存儲(chǔ)裝置的更強(qiáng)大的形式。萬一一個(gè)或多個(gè)包括應(yīng)用代碼108的數(shù)據(jù)位的不可修復(fù)惡化提示μ C 104執(zhí)行失效安全協(xié)議,則存儲(chǔ)器完整性校驗(yàn)304配置為驗(yàn)證失效安全代碼110的完整性。存儲(chǔ)器完整性校驗(yàn)304由來自μ C 104的存儲(chǔ)器完整性校驗(yàn)控制命令MICc^1來發(fā)起。作為驗(yàn)證的第一種方法,存儲(chǔ)器完整性校驗(yàn)304引導(dǎo)μ C 104訪問失效安全代碼110以確定ECC校正的失效安全反饋信號(hào)FSfb 是否通過ECC失效狀態(tài)報(bào)告了數(shù)據(jù)位惡化。其次,為了減少多位失效已經(jīng)影響失效安全代碼110的機(jī)會(huì),存儲(chǔ)器完整性校驗(yàn)304進(jìn)一步配置為執(zhí)行校驗(yàn)和以驗(yàn)證失效安全代碼110的完整性,其中校驗(yàn)和包括根據(jù)無錯(cuò)誤失效安全代碼110計(jì)算并且存儲(chǔ)用于對(duì)隨后校驗(yàn)和計(jì)算的未來參考的固定值數(shù)據(jù)或數(shù)字參考值,以校驗(yàn)失效安全代碼110的數(shù)據(jù)位惡化。
[0022]可以執(zhí)行關(guān)于應(yīng)用代碼108和失效安全代碼110的校驗(yàn)和。為了發(fā)起應(yīng)用代碼108的校驗(yàn)和,存儲(chǔ)器完整性校驗(yàn)304接收包括關(guān)于校驗(yàn)和值306的信息(存儲(chǔ)在第一存儲(chǔ)裝置106內(nèi))的校驗(yàn)和值信號(hào)(CSval)。驗(yàn)證和值306包括與無錯(cuò)誤應(yīng)用代碼108相關(guān)聯(lián)的唯一數(shù)字值。在一些實(shí)施例中,校驗(yàn)和包括應(yīng)用代碼108的循環(huán)冗余校驗(yàn)(CRC)。驗(yàn)證和的其它實(shí)施例包括奇偶校驗(yàn)字節(jié)或奇偶校驗(yàn)字算法、模塊化和算法(modular sum algorithm)等等,正如本領(lǐng)域的普通技術(shù)人員所知曉的。校驗(yàn)和將應(yīng)用代碼108的已計(jì)算校驗(yàn)和值與(存儲(chǔ)的)校驗(yàn)和值306比較。在一些實(shí)施例中,校驗(yàn)和值306位于IC 102的第三存儲(chǔ)裝置(未圖示)內(nèi)。存儲(chǔ)器完整性校驗(yàn)304然后將校驗(yàn)和的結(jié)果通過存儲(chǔ)器完整性校驗(yàn)反饋信號(hào)MICfb發(fā)送至μ C 104。存儲(chǔ)器完整性校驗(yàn)304接收包括關(guān)于失效安全校驗(yàn)和值308的信息(存儲(chǔ)在第一存儲(chǔ)裝置106內(nèi))的失效安全校驗(yàn)和值信號(hào)(FS_CSval)。萬一存儲(chǔ)器完整性校驗(yàn)304確定不存在對(duì)失效安全代碼110的破壞,存儲(chǔ)器完整性校驗(yàn)反饋信號(hào)可以安全地執(zhí)行失效安全代碼110的 μ C 104發(fā)出指令。μ C 104然后通過失效安全控制命令FSetrt來執(zhí)行失效安全代碼110。然而,如果存儲(chǔ)器完整性校驗(yàn)304確定不可校正的破壞的確存在于失效安全代碼110,則μ C 104對(duì)應(yīng)用代碼108發(fā)出指令以發(fā)起失效安全協(xié)議,該失效安全協(xié)議可以包括系統(tǒng)300復(fù)位、進(jìn)入無限循環(huán)、發(fā)起“跛行回家模式(limp home mode)”或其它限制的功能或取決于執(zhí)行的應(yīng)用代碼、錯(cuò)誤和過程的細(xì)節(jié)的關(guān)機(jī)。
[0023]對(duì)于圖3的實(shí)施例而言,第一存儲(chǔ)裝置106包括NVM并且第二存儲(chǔ)裝置306包括ROM。其它實(shí)施例可以包括都包括NVM的第一存儲(chǔ)裝置和第二存儲(chǔ)裝置。還有其它的實(shí)施例可以包括針對(duì)包括NVM或ROM的第二失效安全區(qū)域的第三存儲(chǔ)裝置。
[0024]圖4A圖示了配置為提供失效安全保護(hù)的系統(tǒng)400A的一些實(shí)施例,該系統(tǒng)400A包括進(jìn)一步包括μ C 104的IC 102、包括NVM的第一存儲(chǔ)裝置106和包括存儲(chǔ)存儲(chǔ)器完整性校驗(yàn)304的ROM的第二存儲(chǔ)裝置302,正如圖3的先前實(shí)施例中的那樣。第一存儲(chǔ)裝置106進(jìn)一步包括應(yīng)用代碼108和失效安全代碼110。ECC硬件112配置為校驗(yàn)部分的應(yīng)用代碼108和失效安全代碼110以通過包括附加錯(cuò)誤位的ECC失效狀態(tài)來分別產(chǎn)生ECC校正的應(yīng)用反饋信號(hào)Afb 和ECC校正的失效安全反饋信號(hào)FSfb ECC。
[0025]μ C 104通過第一失效安全控制信號(hào)FSetall來訪問故障校驗(yàn)例程(routine) 406,從而提示失效安全校驗(yàn)例程406通過第二失效安全控制信號(hào)FSetrt2來訪問并且執(zhí)行失效安全代碼110。失效安全校驗(yàn)例程406可以包括允許μ C 104測(cè)量由μ C 104接收的ECC失效狀態(tài)嚴(yán)重性的附加信息。因?yàn)槭О踩r?yàn)例程406存儲(chǔ)在ROM中,所以其可以包括從應(yīng)用到應(yīng)用而不變更的部分代碼。然而,存儲(chǔ)在NVM中的失效安全代碼110可以針對(duì)給定應(yīng)用而變更。而且,失效安全校驗(yàn)例程406可以包括可耦合到用于區(qū)分應(yīng)用的多個(gè)失效安全代碼的部分靜態(tài)代碼。
[0026]當(dāng)在μ C 104認(rèn)為對(duì)系統(tǒng)運(yùn)行關(guān)鍵的應(yīng)用代碼108中發(fā)現(xiàn)不可校正的數(shù)據(jù)位錯(cuò)誤時(shí),UC 104執(zhí)行包括失效安全代碼110執(zhí)行的失效安全協(xié)議。失效安全代碼110是如在先前實(shí)施例中描述的已驗(yàn)證的ECC和校驗(yàn)和。然而,失效安全代碼110的校驗(yàn)和的計(jì)算可傾向于假陰性(false-negative)結(jié)果,其中失效安全代碼110不包含數(shù)據(jù)位惡化,但是校驗(yàn)和確定存在錯(cuò)誤。這可能發(fā)生,因?yàn)樾r?yàn)和值(即,圖3的實(shí)施例中的306)已經(jīng)惡化,而不是失效安全代碼110本身。這是在NVM中存儲(chǔ)校驗(yàn)和值306的結(jié)果。在圖4A的實(shí)施例中示出了一種緩解這一點(diǎn)的方式,其中第一存儲(chǔ)裝置106存儲(chǔ)失效安全校驗(yàn)和值的多個(gè)副本:第一失效安全校驗(yàn)和值406A、第二失效安全校驗(yàn)和值406B和第三失效安全校驗(yàn)和值406C。存儲(chǔ)器完整性校驗(yàn)304分別通過第一失效安全校驗(yàn)和值信號(hào)FS_CSvall、第二失效安全校驗(yàn)和值信號(hào)FS_CSval2和第三失效安全校驗(yàn)和值信號(hào)FS_CSval3來訪問這三個(gè)冗余校驗(yàn)和值,并且比較這三個(gè)值。存儲(chǔ)器完整性校驗(yàn)304采用了投票(voting),其中如果校驗(yàn)和值中的一個(gè)不與其它兩個(gè)匹配,就不計(jì)數(shù)(discounted)。類似方法適用于關(guān)于第一校驗(yàn)和值402A、校驗(yàn)和CRC值402B和第三校驗(yàn)和值402C的應(yīng)用代碼108。
[0027]其中校驗(yàn)和確定存在對(duì)失效安全代碼的錯(cuò)誤使得不能夠執(zhí)行失效安全代碼的實(shí)例可以通過存儲(chǔ)用于執(zhí)行的失效安全代碼的多個(gè)副本而緩解,并且在一些實(shí)例中,存儲(chǔ)用于解決校驗(yàn)的校驗(yàn)和值的多個(gè)部分產(chǎn)生沖突。圖4B圖示了配置為提供失效安全保護(hù)的系統(tǒng)400B的一些實(shí)施例,其包括失效安全代碼的冗余副本(110A和110B)和校驗(yàn)和值的冗余副本(404A和404B)。μ C 104通過第一失效安全控制信號(hào)FSetril來訪問失效安全校驗(yàn)例程406,從而提示失效安全校驗(yàn)例程406獨(dú)立地通過第二失效安全控制信號(hào)FSetrt2來訪問第一失效安全代碼副本110Α,或通過第三失效安全控制信號(hào)FSetri3來訪問第二失效安全代碼副本110Β。在第一失效安全代碼副本IlOA或第二失效安全代碼副本IlOB的執(zhí)行之前,ECC
(112)與校驗(yàn)和根據(jù)在先前實(shí)施例中描述的方法在各個(gè)失效安全代碼副本(IlOA或110Β)上執(zhí)行,其中第一失效安全代碼副本IlOA對(duì)第一失效安全校驗(yàn)和值406Α校驗(yàn),或第二失效安全代碼副本IlOB對(duì)第二失效安全校驗(yàn)和值406Β校驗(yàn)。如果第一失效安全代碼副本IlOA或第二失效安全代碼副本IlOB之一失效,則其各個(gè)校驗(yàn)和而不是其它校驗(yàn)和通過,則可以執(zhí)行通過的失效安全代碼副本。
[0028]注意到對(duì)圖4Β的實(shí)施例而言,第一失效安全代碼副本IlOA或第二失效安全代碼副本IIOB可以對(duì)共同的校驗(yàn)和值(即,第一失效安全校驗(yàn)和值406Α)校驗(yàn)。第二失效安全校驗(yàn)和值406Β的加入允許由各個(gè)校驗(yàn)和值的惡化導(dǎo)致的假陰性結(jié)果的驗(yàn)證。另外的實(shí)施例可以采用交叉比較,其中第一失效安全代碼副本IlOA對(duì)第一失效安全校驗(yàn)和值406Α或第二失效安全校驗(yàn)和值406Β校驗(yàn),并且第二失效安全代碼副本IlOB對(duì)第一失效安全校驗(yàn)和值406Α或第二失效安全校驗(yàn)和值406Β校驗(yàn)。除了識(shí)別失效安全代碼副本(IlOA或110Β)的惡化之外,這種交叉比較允許假陰性結(jié)果的隔離。
[0029]在一些實(shí)施例中,通過將失效安全代碼副本存儲(chǔ)在第一存儲(chǔ)裝置中、將失效安全代碼與失效安全代碼副本逐字節(jié)地比較并且如果失效安全代碼和失效安全代碼副本包含相同的字節(jié)字符串(即,它們逐字節(jié)地匹配)則確定不存在對(duì)第一失效安全區(qū)域的破壞,來繞過校驗(yàn)和。圖4C圖示了配置為提供失效安全保護(hù)的系統(tǒng)400C的一些實(shí)施例,其包括失效安全代碼的多個(gè)冗余副本(IlOA至110C)。失效安全校驗(yàn)例程406獨(dú)立地通過第二失效安全控制信號(hào)FSetrt2來訪問第一失效安全代碼副本110A、通過第三失效安全控制信號(hào)FSctal3來訪問第二失效安全代碼副本IlOB或通過第四失效安全控制信號(hào)FSetri4來訪問第三失效安全代碼副本110C。在第一失效安全代碼副本IlOA的執(zhí)行之前(例如,用于使用的默認(rèn)副本),執(zhí)行ECC (112)。如果ECC 112檢測(cè)到第一失效安全代碼副本IlOA的惡化,則第一失效安全代碼副本110A、第二失效安全代碼副本IlOB和第三失效安全代碼副本IlOC中的每個(gè)都互相逐字節(jié)地比較。失效安全校驗(yàn)例程406確定如果失效安全代碼的各個(gè)副本和失效安全代碼的其它副本的至少一半包含相同的字節(jié)字符串(即,如果大多數(shù)的比較包含相同的字節(jié)字符串),則不存在對(duì)失效安全代碼(110A至110C)的各個(gè)副本的破壞。yC 104然后分別通過失效安全控制命令FS&12至FS&14來執(zhí)行失效安全代碼IlOA至IlOC的各個(gè)副本。雖然不如圖4A和圖4B的實(shí)施例那樣計(jì)算高效,但是圖4C的實(shí)施例通過校驗(yàn)每個(gè)數(shù)據(jù)字節(jié)來提供比較的強(qiáng)大手段。
[0030]圖5圖示了配置為提供失效安全保護(hù)的系統(tǒng)500的一些實(shí)施例,其包括進(jìn)一步包括了 μ C 104的IC 102、包括NVM的第一存儲(chǔ)裝置106和包括用于存儲(chǔ)存儲(chǔ)器完整性校驗(yàn)304的ROM的第二存儲(chǔ)裝置302,正如圖3和圖4的先前實(shí)施例中那樣。第一存儲(chǔ)裝置106進(jìn)一步包括應(yīng)用代碼108、當(dāng)應(yīng)用代碼運(yùn)行時(shí)生成的應(yīng)用數(shù)據(jù)502、配置為在系統(tǒng)500開啟期間發(fā)起應(yīng)用代碼108設(shè)置的校準(zhǔn)代碼504和失效安全代碼110。
[0031]ECC硬件112配置為校驗(yàn)部分的應(yīng)用代碼108、應(yīng)用數(shù)據(jù)502、校準(zhǔn)代碼504和失效安全代碼110以通過包括附加錯(cuò)誤位的ECC失效狀態(tài)分別產(chǎn)生第一 ECC校正的應(yīng)用反饋信號(hào)Afbl Ε。。、第二 ECC校正的應(yīng)用反饋信號(hào)Afb2 rce、ECC校正的校準(zhǔn)反饋信號(hào)Calfb 和ECC校正的失效安全反饋信號(hào)FSfb E。。。通過ECC校正的校準(zhǔn)反饋信號(hào)Calfb E。。報(bào)告給μ C 104的校準(zhǔn)代碼504的ECC失效狀態(tài)可以導(dǎo)致由μ C 104執(zhí)行故障緩解協(xié)議,從而提示和失效安全代碼110的隨后執(zhí)行一起的失效安全代碼110的ECC和校驗(yàn)和。此外,應(yīng)用代碼108在系統(tǒng)500開啟期間可以進(jìn)行確定。校準(zhǔn)代碼504配置為校驗(yàn)開啟期間對(duì)校準(zhǔn)校驗(yàn)和值506的計(jì)算校驗(yàn)和。應(yīng)用代碼108配置為在開啟期間并且當(dāng)ECC硬件112檢測(cè)到數(shù)據(jù)位故障時(shí),校驗(yàn)對(duì)校驗(yàn)和值310的計(jì)算校驗(yàn)和。嚴(yán)重的錯(cuò)誤、產(chǎn)生大部分應(yīng)用代碼108的錯(cuò)誤或影響的應(yīng)用代碼108的頻繁使用部分的多個(gè)數(shù)據(jù)位的錯(cuò)誤將由ECC硬件112立即檢測(cè)。當(dāng)應(yīng)用代碼108試圖校驗(yàn)對(duì)校驗(yàn)和值310的其本身的校驗(yàn)和時(shí),它將失效,從而提示系統(tǒng)500發(fā)起失效安全協(xié)議。
[0032]注意到對(duì)圖5的實(shí)施例而言,應(yīng)用代碼108和應(yīng)用數(shù)據(jù)502共享一個(gè)校驗(yàn)和值306(例如,校驗(yàn)和),因?yàn)橄到y(tǒng)500的正常運(yùn)行將總產(chǎn)生相同的應(yīng)用數(shù)據(jù)502。校準(zhǔn)代碼504具有唯一的校準(zhǔn)校驗(yàn)和值506,類似于失效安全代碼110和失效安全校驗(yàn)和值308。
[0033]圖6圖示了系統(tǒng)中的失效安全保護(hù)方法600的一些實(shí)施例的框圖。應(yīng)該領(lǐng)會(huì)的是,雖然方法600圖示并且描述為一系列動(dòng)作或事件,這種動(dòng)作或事件的圖示的排序不在限制性的意義上被理解。例如,一些動(dòng)作可以以不同的順序出現(xiàn),和/或與除了本文中圖示和/或描述的那些之外的其它動(dòng)作或事件同時(shí)地出現(xiàn)。此外,不是全部圖示的動(dòng)作可以要求實(shí)施本文中公開內(nèi)容的一個(gè)或多個(gè)方面或?qū)嵤├6?,可以在一個(gè)或多個(gè)分離的動(dòng)作和/或階段中執(zhí)行本文中描繪的一個(gè)或多個(gè)動(dòng)作。而且,通過使用標(biāo)準(zhǔn)編程和/或工程技術(shù),公開的方法可以實(shí)施為設(shè)備或制品,以產(chǎn)生軟件、固件、硬件或其任何組合用于控制計(jì)算機(jī)來實(shí)施公開的主題。
[0034]在602,故障緩解協(xié)議通過用戶特定命令來啟用,故障緩解協(xié)議包括利用位于第二存儲(chǔ)裝置內(nèi)的第二破壞檢測(cè)和校正機(jī)構(gòu)來針對(duì)破壞校驗(yàn)第一存儲(chǔ)裝置的第一失效安全區(qū)域。
[0035]在604,包括應(yīng)用代碼的程序區(qū)域利用第一破壞檢測(cè)和校正機(jī)構(gòu)來校驗(yàn)破壞,其中第一破壞檢測(cè)和校正機(jī)構(gòu)包括配置為針對(duì)惡化校驗(yàn)應(yīng)用代碼的訪問部分并且當(dāng)可能時(shí)校正對(duì)應(yīng)用代碼的破壞的ECC硬件。
[0036]在606,在應(yīng)用代碼內(nèi)檢測(cè)到不可校正的位錯(cuò)誤,使得其不能夠安全地執(zhí)行。
[0037]在608,進(jìn)行關(guān)于是否已經(jīng)在602中啟用了故障緩解協(xié)議的確定。
[0038]在610,如果禁用故障緩解協(xié)議,則系統(tǒng)取決于執(zhí)行的應(yīng)用代碼、錯(cuò)誤和過程的細(xì)節(jié)而復(fù)位、發(fā)送到無限循環(huán)中或關(guān)機(jī)。
[0039]在612,如果啟用故障緩解協(xié)議,則失效安全代碼利用位于第二存儲(chǔ)裝置內(nèi)的第二破壞檢測(cè)和校正機(jī)構(gòu)來校驗(yàn)破壞,其中如果不可校正的破壞位于應(yīng)用代碼內(nèi),則失效安全代碼配置為引導(dǎo)系統(tǒng)。
[0040]在614,第二破壞檢測(cè)和校正機(jī)構(gòu)利用關(guān)于包括存儲(chǔ)在第一存儲(chǔ)裝置內(nèi)的失效安全代碼的多個(gè)數(shù)據(jù)位的計(jì)算校驗(yàn)和。在一些實(shí)施例中,計(jì)算的校驗(yàn)和包括失效安全代碼的循環(huán)冗余校驗(yàn)(CRC)及將CRC值與存儲(chǔ)在第一存儲(chǔ)裝置內(nèi)的參考值比較。在一些實(shí)施例中,失效安全代碼副本存儲(chǔ)在第一存儲(chǔ)裝置中。失效安全代碼與失效安全代碼副本逐字節(jié)地比較,使得如果失效安全代碼和失效安全代碼副本包含相同的字節(jié)字符串,則沒有識(shí)別到對(duì)失效安全代碼的破壞。如果在失效安全代碼內(nèi)檢測(cè)到位錯(cuò)誤,則系統(tǒng)復(fù)位、發(fā)送到無限循環(huán)中、發(fā)送到限制的功能模式或關(guān)機(jī)(610)。
[0041]在616,如果沒檢測(cè)到位錯(cuò)誤,則利用ECC來校驗(yàn)失效安全。如果ECC在失效安全代碼內(nèi)沒檢測(cè)到位錯(cuò)誤,則系統(tǒng)進(jìn)行到步驟622并且執(zhí)行失效安全代碼。
[0042]在618,如果在616中檢測(cè)到位錯(cuò)誤,并且位錯(cuò)誤是不可校正的,則系統(tǒng)復(fù)位、發(fā)送到無限循環(huán)中或關(guān)機(jī)(610)。
[0043]在620,如果一個(gè)或多個(gè)可校正的位錯(cuò)誤由ECC檢測(cè)到,則ECC校正失效安全代碼內(nèi)的一個(gè)或多個(gè)可校正的位錯(cuò)誤。在一些實(shí)施例中,故障緩解協(xié)議包括利用同步于校驗(yàn)和計(jì)算的ECC來校驗(yàn)第一失效安全區(qū)域,并且如果校驗(yàn)和沒檢測(cè)到對(duì)失效安全代碼的破壞則利用ECC校正第一失效安全區(qū)域內(nèi)的已破壞位。
[0044]在622,在系統(tǒng)上執(zhí)行失效安全代碼。
[0045]應(yīng)該領(lǐng)會(huì)的是,基于說明書和附圖的閱讀和/或理解,本領(lǐng)域的普通技術(shù)人員可以想到等同的變更和/或修改。本文中的公開內(nèi)容包括全部這種修改和變更并且從而通常不意圖被限制。例如,雖然本文提供的圖圖示并描述為具有特定的摻雜類型,但是應(yīng)該領(lǐng)會(huì)的是,可以利用可替換的摻雜類型,正如由本領(lǐng)域的技術(shù)人員將領(lǐng)會(huì)的那樣。
[0046]另外,雖然可能已經(jīng)關(guān)于數(shù)個(gè)實(shí)施例中的僅一個(gè)公開了特定特征或方面,但是這種特征或方面可以與如可以期望的那樣的其它實(shí)施例的一個(gè)或多個(gè)其它特征和/或方面相組合。而且,在一定程度上,在本文中使用了術(shù)語“包括”、“具有”、“具有著”、“有著”和/或其變型,這種術(shù)語意圖在意思上是包含性的,像“包括”一樣。而且,“示例性的”僅意指示例,而不是最好的。還應(yīng)該領(lǐng)會(huì)的是,出于理解的簡單和容易的目的,用相對(duì)彼此的特定尺寸和/或取向圖示了本文中描繪的特征、層和/或元件,并且實(shí)際的尺寸和/或取向可以基本上區(qū)別于本文中圖示的尺寸和/或取向。
【權(quán)利要求】
1.一種用于系統(tǒng)中的失效安全保護(hù)的方法,包括: 當(dāng)從第一存儲(chǔ)裝置檢索應(yīng)用代碼時(shí),利用第一破壞檢測(cè)和校正機(jī)構(gòu)來針對(duì)包括惡化數(shù)據(jù)位的破壞校驗(yàn)存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的應(yīng)用代碼; 定位對(duì)所述應(yīng)用代碼的不可校正的破壞,從而提示位于所述第一存儲(chǔ)裝置內(nèi)的失效安全代碼執(zhí)行,其中所述失效安全代碼配置為通過失效安全協(xié)議來引導(dǎo)系統(tǒng); 利用位于第二存儲(chǔ)裝置內(nèi)的第二破壞檢測(cè)和校正機(jī)構(gòu)來針對(duì)破壞校驗(yàn)所述失效安全代碼;以及 執(zhí)行所述失效安全代碼。
2.根據(jù)權(quán)利要求1所述的方法,其中, 第二破壞檢測(cè)和校正機(jī)構(gòu)進(jìn)一步包括關(guān)于包括所述失效安全代碼的多個(gè)數(shù)據(jù)位的校驗(yàn)和。
3.根據(jù)權(quán)利要求2所述的方法,其中, 所述第二破壞檢測(cè)和校正機(jī)構(gòu)進(jìn)一步包括: 將所述失效安全代碼副本存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi); 將失效安全校驗(yàn)和值的 第一副本存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi); 將所述失效安全校驗(yàn)和值的第二副本存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi); 對(duì)具有所述校驗(yàn)和的所述失效安全校驗(yàn)和值的所述第一副本校驗(yàn)所述失效安全代碼; 對(duì)具有所述校驗(yàn)和的所述失效安全校驗(yàn)和值的所述第二副本校驗(yàn)所述失效安全代碼副本; 如果所述失效安全代碼和所述失效安全校驗(yàn)和值的所述第一副本通過所述校驗(yàn)和則利用所述失效安全代碼;并且 如果所述失效安全代碼和所述失效安全校驗(yàn)和值的所述第一副本使所述校驗(yàn)和失效,則利用所述失效安全代碼的所述副本,并且所述失效安全代碼的所述副本和所述失效安全校驗(yàn)和值的所述第二副本通過所述校驗(yàn)和。
4.根據(jù)權(quán)利要求2所述的方法,其中, 所述第一破壞檢測(cè)和校正機(jī)構(gòu)進(jìn)一步包括耦合到所述應(yīng)用代碼或所述失效安全代碼的錯(cuò)誤校正代碼(ECC)硬件,其中當(dāng)所述應(yīng)用代碼或所述失效安全代碼檢索所述校驗(yàn)和時(shí),所述ECC硬件配置為檢測(cè)并且校正所述應(yīng)用代碼或所述失效安全代碼內(nèi)的數(shù)據(jù)位錯(cuò)誤。
5.根據(jù)權(quán)利要求4所述的方法,其中, 所述校驗(yàn)和包括所述失效安全代碼的循環(huán)冗余校驗(yàn)(CRC),所述失效安全代碼的循環(huán)冗余校驗(yàn)(CRC)進(jìn)一步包括由CRC計(jì)算的所述失效安全代碼的第一失效安全CRC值與存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的第二失效安全CRC值的比較。
6.根據(jù)權(quán)利要求5所述的方法,其中, 所述CRC存儲(chǔ)在所述第二存儲(chǔ)裝置內(nèi)。
7.根據(jù)權(quán)利要求1所述的方法,其中, 所述第二破壞檢測(cè)和校正機(jī)構(gòu)進(jìn)一步包括: 將所述失效安全代碼的三個(gè)或更多個(gè)副本存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi); 使所述失效安全代碼的所述三個(gè)或更多個(gè)副本彼此逐字節(jié)地比較;并且如果所述失效安全代碼的各個(gè)副本和剩余所述失效安全代碼的三個(gè)或更多個(gè)副本的至少一半包含相同的字節(jié)字符串,則確定不存在對(duì)所述失效安全代碼的各個(gè)副本的破壞。
8.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括通過用戶特定命令啟用或禁用所述失效安全代碼的校驗(yàn),其中禁用所述失效安全代碼的校驗(yàn)包括發(fā)送所述系統(tǒng)到包括系統(tǒng)關(guān)機(jī)、系統(tǒng)重啟、限制的系統(tǒng)功能或進(jìn)入無限循環(huán)的故障緩解協(xié)議中。
9.一種配置為提供失效安全保護(hù)的系統(tǒng),包括: 第一存儲(chǔ)裝置,所述第一存儲(chǔ)裝置包括非易失性存儲(chǔ)器并且配置為存儲(chǔ)多個(gè)數(shù)據(jù)位,所述數(shù)據(jù)位包括應(yīng)用代碼或失效安全代碼; 錯(cuò)誤校正代碼(ECC)硬件,所述錯(cuò)誤校正代碼(ECC)硬件耦合到所述第一存儲(chǔ)裝置的輸出并且配置為根據(jù)從所述第一存儲(chǔ)裝置的檢索來檢測(cè)和校正所述應(yīng)用代碼或所述失效安全代碼內(nèi)的數(shù)據(jù)位惡化; 第二存儲(chǔ)裝置,所述第二存儲(chǔ)裝置包括只讀存儲(chǔ)器并且配置為存儲(chǔ)所述第一存儲(chǔ)裝置的存儲(chǔ)器完整性校驗(yàn),其中所述存儲(chǔ)器完整性校驗(yàn)配置為驗(yàn)證存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的所述多個(gè)數(shù)據(jù)位的正確性;以及 控制器,所述控制器配置為訪問所述應(yīng)用代碼、失效安全代碼或存儲(chǔ)器完整性校驗(yàn),并且配置為萬一所述ECC硬件檢測(cè)到所述應(yīng)用代碼或失效安全代碼的惡化則執(zhí)行所述第一存儲(chǔ)裝置的所述存儲(chǔ)器完整性校驗(yàn)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),所述存儲(chǔ)器完整性校驗(yàn)包括校驗(yàn)和,所述校驗(yàn)和進(jìn)一步包括了包括所述失效安全代碼的所述多個(gè)數(shù)據(jù)位與存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的失效安全校驗(yàn)和值的比較。
11.根據(jù)權(quán)利要求10 所述的系統(tǒng),其中, 所述存儲(chǔ)器完整性校驗(yàn)進(jìn)一步配置為當(dāng)所述失效安全代碼針對(duì)所述校驗(yàn)和被檢索到時(shí),利用所述ECC硬件來檢測(cè)和校正所述失效安全代碼內(nèi)的數(shù)據(jù)位錯(cuò)誤。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中, 所述校驗(yàn)和包括所述失效安全代碼的循環(huán)冗余校驗(yàn)(CRC),所述失效安全代碼的循環(huán)冗余校驗(yàn)(CRC)進(jìn)一步包括由CRC計(jì)算的所述失效安全代碼的第一 CRC值與存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的第二 CRC值的比較。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),所述存儲(chǔ)器完整性校驗(yàn)進(jìn)一步包括存儲(chǔ)所述失效安全代碼副本并且使所述失效安全代碼與所述失效安全代碼的所述副本逐字節(jié)地比較。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中, 所述第一存儲(chǔ)裝置配置為存儲(chǔ)所述失效安全代碼的多個(gè)副本,并且其中所述存儲(chǔ)器完整性校驗(yàn)包括將所述失效安全代碼與所述失效安全代碼的每個(gè)副本逐字節(jié)地比較,并且如果所述失效安全代碼與所述失效安全代碼的各個(gè)副本之間進(jìn)行的大多數(shù)比較包含相同的字節(jié)字符串,則忽視其中所述失效安全代碼和所述失效安全代碼的各個(gè)副本不包含相同字節(jié)字符串的實(shí)例。
15.一種配置為提供失效安全保護(hù)的系統(tǒng),包括: 第一存儲(chǔ)裝置,所述第一存儲(chǔ)裝置包括非易失性存儲(chǔ)器并且配置為存儲(chǔ)多個(gè)數(shù)據(jù)位,所述數(shù)據(jù)位包括: 應(yīng)用代碼;應(yīng)用數(shù)據(jù),所述應(yīng)用數(shù)據(jù)在系統(tǒng)運(yùn)行期間從所述應(yīng)用代碼導(dǎo)出; 校準(zhǔn)代碼,所述校準(zhǔn)代碼配置為在系統(tǒng)開啟期間初始化所述應(yīng)用代碼;以及 失效安全代碼,所述失效安全代碼配置為通過失效安全協(xié)議引導(dǎo)所述系統(tǒng); 錯(cuò)誤校正代碼(ECC)硬件,所述錯(cuò)誤校正代碼(ECC)硬件耦合到所述第一存儲(chǔ)裝置的輸出并且配置為檢測(cè)且校正所述應(yīng)用代碼、所述應(yīng)用數(shù)據(jù)、所述校準(zhǔn)代碼或所述失效安全代碼內(nèi)的數(shù)據(jù)位惡化;以及 第二存儲(chǔ)裝置,所述第二存儲(chǔ)裝置包括只讀存儲(chǔ)器并且配置為存儲(chǔ)多個(gè)數(shù)據(jù)位,所述數(shù)據(jù)位包括: 存儲(chǔ)在所述第一存儲(chǔ)裝置內(nèi)的數(shù)據(jù)的校驗(yàn)和;以及 失效安全校驗(yàn),所述失效安全校驗(yàn)配置為萬一所述ECC硬件檢測(cè)到包括所述應(yīng)用代碼、所述應(yīng)用數(shù)據(jù)或所述校準(zhǔn)代碼的所述一個(gè)或多個(gè)數(shù)據(jù)位的惡化則訪問和引導(dǎo)所述失效安全代碼。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),進(jìn)一步包括控制器,所述控制器配置為訪問所述應(yīng)用代碼、應(yīng)用數(shù)據(jù)、校準(zhǔn)代碼、失效安全代碼、校驗(yàn)和與失效安全校驗(yàn),并且配置為萬一所述ECC硬件檢測(cè)到包括所述應(yīng)用代碼、所述應(yīng)用數(shù)據(jù)或所述校準(zhǔn)代碼的所述一個(gè)或多個(gè)數(shù)據(jù)位的惡化則執(zhí)行所述校驗(yàn)和。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),所述第一存儲(chǔ)裝置進(jìn)一步包括: 校驗(yàn)和值,所述校驗(yàn)和值對(duì)應(yīng)于無錯(cuò)誤應(yīng)用代碼和無錯(cuò)誤應(yīng)用數(shù)據(jù); 校準(zhǔn)校驗(yàn)和值,所述校準(zhǔn)校驗(yàn)和值對(duì)應(yīng)于無錯(cuò)誤校準(zhǔn)代碼;以及 失效安全校驗(yàn)和值,所述失效安全校驗(yàn)和值對(duì)應(yīng)于無錯(cuò)誤失效安全代碼。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中, 所述校驗(yàn)和耦合到所述ECC硬件,使得所述失效安全代碼在所述校驗(yàn)和的計(jì)算之前經(jīng)受錯(cuò)誤檢測(cè)和校正。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),進(jìn)一步配置為進(jìn)入故障緩解協(xié)議,所述故障緩解協(xié)議包括如果所述ECC硬件在所述失效安全代碼中檢測(cè)到不可校正的錯(cuò)誤或如果所述失效安全代碼與失效安全校驗(yàn)和值之間的校驗(yàn)和比較不能產(chǎn)生相同的結(jié)果則系統(tǒng)關(guān)機(jī)、限制的功能、系統(tǒng)重啟或者進(jìn)入無限循環(huán)。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中, 所述應(yīng)用代碼進(jìn)一步配置為執(zhí)行對(duì)所述校驗(yàn)和值的所述應(yīng)用代碼的校驗(yàn)和,并且如果所述應(yīng)用代碼與所述校驗(yàn)和值之間的 校驗(yàn)和比較不能產(chǎn)生相同的結(jié)果則發(fā)起所述失效安全校驗(yàn)。
【文檔編號(hào)】G06F21/60GK103810433SQ201310547075
【公開日】2014年5月21日 申請(qǐng)日期:2013年11月7日 優(yōu)先權(quán)日:2012年11月7日
【發(fā)明者】T.朗格, T.萊門澤, D.I.佩納魯 申請(qǐng)人:英飛凌科技股份有限公司