用于提高鎖步核可用性的系統(tǒng)和方法
【專利摘要】一種用于提高鎖步核可用性的系統(tǒng)和方法提供:將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器,由主CPU核執(zhí)行任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出,以及由校驗器CPU核執(zhí)行任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出。所述方法進(jìn)一步包括:將第一輸出與第二輸出相比較,并且如果第一輸出不匹配于第二輸出,則生成一個或多個控制信號,以及基于所述一個或多個控制信號的生成,將主CPU核的狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
【專利說明】用于提高鎖步核可用性的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本公開的某些實施例涉及在計算系統(tǒng)和方法中提供診斷覆蓋。更具體地,本公開的某些實施例涉及在提高鎖步(lockstep) CPU核可用性的同時在嵌入式安全相關(guān)系統(tǒng)及其中的方法中提供診斷覆蓋。
【背景技術(shù)】
[0002]用在嵌入式安全相關(guān)系統(tǒng)中的中央處理單元(CPU)通常包括獨立且一致地運行相同指令和數(shù)據(jù)序列的一對CPU核。所述核的輸出被實時比較,并且如果存在通常指示錯誤的不匹配的話,則能夠采取適當(dāng)?shù)膭幼鱽硖幚硭鲥e誤。然而,到由于檢測到兩個CPU核的輸出之間的差異而已經(jīng)確定兩個CPU核之間的狀態(tài)差異的時候,任一 CPU核的當(dāng)前內(nèi)部狀態(tài)可能已經(jīng)顯著偏離于CPU核相關(guān)錯誤發(fā)生時的內(nèi)部狀態(tài)。
[0003]傳統(tǒng)的嵌入式安全相關(guān)系統(tǒng)通過將整個系統(tǒng)置于重置狀態(tài)中然后重新啟動整個系統(tǒng),解決了這些CPU核相關(guān)錯誤。更具體地,在傳統(tǒng)的系統(tǒng)中,系統(tǒng)管理器邏輯模塊一般接收核相關(guān)錯誤,然后不僅重置該對CPU核,還重置與該系統(tǒng)關(guān)聯(lián)的所有組件。然而,該過程一般花費相當(dāng)長的時間段,在所述時間段期間,系統(tǒng)不可用于例如處理指令和數(shù)據(jù)或者I/o功能。例如,系統(tǒng)可能在幾十毫秒內(nèi)不可用,這不是對安全相關(guān)控制器來說期望的情形。
[0004]其他更復(fù)雜的系統(tǒng)可以與用于禁用出故障的核的多數(shù)表決系統(tǒng)相結(jié)合使用三個或更多CPU核。然而,盡管此類系統(tǒng)可以提供更高的CPU核可用性,但是此類可用性以附加的面積、功率和/或成本為代價。
[0005]將期望的是,在仍然提供對CPU核處理錯誤的高效且健壯的檢測和校正的同時,在嵌入式安全相關(guān)系統(tǒng)中給處理數(shù)據(jù)和指令集的任務(wù)提供更高百分比的CPU核可用性。
【發(fā)明內(nèi)容】
[0006]根據(jù)本公開的實施例,一種鎖步系統(tǒng)包括:主CPU核,其被配置成接收并執(zhí)行任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出;校驗器CPU核,其被配置成接收并執(zhí)行所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出;狀態(tài)緩沖器,其被耦合到主CPU核和校驗器CPU核并且被配置成存儲主CPU核的狀態(tài);以及比較器,其被耦合到主CPU核和校驗器CPU核并且被配置成接收針對每個被執(zhí)行的指令的第一輸出和第二輸出,將第一輸出與第二輸出相比較并且如果第一輸出不匹配于第二輸出,貝1J生成一個或多個控制信號。在一個實施例中,主CPU核和校驗器CPU核進(jìn)一步被配置成接收所述一個或多個控制信號并從狀態(tài)緩沖器加載所存儲的CPU核狀態(tài)。
[0007]根據(jù)本公開的另外的實施例,一種用于提高鎖步核可用性的方法包括:將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器,由主CPU核執(zhí)行任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出,由校驗器CPU核執(zhí)行所述任務(wù)的所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出,將第一輸出與第二輸出相比較,并且如果第一輸出不匹配于第二輸出,則生成一個或多個控制信號,以及基于所述一個或多個控制信號的生成將主CPU核的狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
[0008]本公開的這些和其他優(yōu)勢、方面和新特征以及其圖示實施例的細(xì)節(jié)將從下面的描述和附圖中更充分地理解。
【專利附圖】
【附圖說明】
[0009]圖1是根據(jù)本公開的實施例的鎖步系統(tǒng)的示意圖;
圖2是根據(jù)本公開的實施例的提高鎖步核可用性的方法動作的流程圖;
圖3是根據(jù)本公開的另一個實施例的提高鎖步核可用性的方法動作的流程圖;
圖4是根據(jù)本公開的另一個實施例的提高鎖步核可用性的方法動作的流程圖;以及 圖5是根據(jù)本公開的另一個實施例的提高鎖步核可用性的方法動作的流程圖。
【具體實施方式】
[0010]圖1是根據(jù)本公開的實施例的鎖步系統(tǒng)100的示意圖。該鎖步系統(tǒng)包括主CPU核102、校驗器CPU核104、比較器106、狀態(tài)緩沖器108和總線/高速緩存/存儲器模塊110。如所示的那樣,主CPU核102包括主CPU核狀態(tài)控制邏輯112a,并且校驗器CPU核104包括校驗器CPU核狀態(tài)控制邏輯112b。在一個實施例中,主CPU核狀態(tài)控制邏輯112a和校驗器(PU核狀態(tài)控制邏輯112b包括被實現(xiàn)為硬件、固件或軟件的相同的邏輯,然而本公開的范圍包括狀態(tài)控制邏輯112a和112b的不相同的實現(xiàn)方式,以適應(yīng)例如主和校驗器CPU核102和104的不相同的版本,其可能例如需要具有不同時間延遲的狀態(tài)控制邏輯112a和112b。為了描述簡單的目的,主CPU核狀態(tài)控制邏輯112a和校驗器CPU核狀態(tài)控制邏輯112b可以共同稱為狀態(tài)控制邏輯112。
[0011]總線/高速緩存/存儲器模塊110包括耦合到主CPU核102和校驗器CPU核104的一個或多個總線線路、高速緩存和存儲器,并被配置成可尋址的且存儲對主CPU核102和校驗器CPU核106來說可訪問的數(shù)據(jù)和/或程序(例如,CPU指令的序列)。本公開的范圍包括所有類型的總線線路、高速緩存和存儲器。例如,總線線路可以不僅包括電線、具有多個連接的通路或跡線,還包括提供相同功能的任何類型的物理裝置。
[0012]存儲器可以包括被配置成暫時或永久地存儲程序或數(shù)據(jù)的任何物理存儲設(shè)備。本公開的范圍包括但不限于諸如閃存和R0M/PR0M/EPR0M/EEPR0M存儲器之類的非易失性存儲器和諸如DRAM和SRAM之類的易失性存儲器。
[0013]狀態(tài)緩沖器108可以包括被配置成可尋址的且存儲主CPU核102的狀態(tài)的任何物理存儲設(shè)備。在本公開的一個實施例中,狀態(tài)緩沖器108可以是(直接地或經(jīng)由總線系統(tǒng))連接到CPU核102和104的專用存儲器或者預(yù)先存在的存儲器的部分。在后者的情況下,地址指針可以被保持在主CPU核102內(nèi)以標(biāo)識存儲器中狀態(tài)緩沖器108的位置。在此類情況下,指針值可以被保持在被特別設(shè)計成容忍軟錯誤的寄存器陣列(未示出)內(nèi)。在下文中更詳細(xì)地討論軟錯誤。在一個實施例中,寄存器陣列可以包括軟錯誤容忍觸發(fā)器(flip-flop)。軟錯誤容忍觸發(fā)器可以被擴(kuò)展成包括例如被主CPU核102的狀態(tài)控制邏輯112a使用以從狀態(tài)緩沖器108加載CPU狀態(tài)的序列邏輯。
[0014]在本公開的一個實施例中,狀態(tài)緩沖器108的內(nèi)容是錯誤校正碼(ECC)保護(hù)的。例如,ECC可以使用算法來計算描述要被存儲在狀態(tài)緩沖器108中的數(shù)據(jù)單元的位序列的代碼,并且所述代碼與數(shù)據(jù)單元一起被存儲在狀態(tài)緩沖器108中。當(dāng)請求讀取數(shù)據(jù)單元時,再次使用相同的算法來計算用于所存儲且將要被讀取的數(shù)據(jù)單元的代碼(例如,字)。將新生成的代碼與當(dāng)數(shù)據(jù)單元被存儲時所生成的代碼相比較,并且如果代碼相匹配,則將數(shù)據(jù)單元確定為無錯誤。如果代碼不匹配,則可以通過兩個代碼的比較來確定丟失的或錯誤的位,并且然后可以供應(yīng)或校正一個或多個位。
[0015]主CPU核102可以包括讀取和執(zhí)行程序的本領(lǐng)域技術(shù)人員已知的任何類型的微處理器。所述程序可以包括CPU指令,所述CPU指令中的一些操縱從總線/高速緩存/存儲器模塊110接收的數(shù)據(jù)。在一個實施例中,校驗器CPU核104在結(jié)構(gòu)和功能上與主CPU核102相同,并且在另一個實施例中,校驗器CPU核104僅在功能上與主CPU核102相同。主CPU核102和校驗器CPU核104可以共同稱為鎖步CPU核。在操作中,鎖步CPU核可以完全一致地(即,在由兩個CPU核對一個或多個指令的執(zhí)行之間沒有時間偏移)或一致地(即,有時間偏移)獨立運行(即,執(zhí)行)相同的指令和數(shù)據(jù)序列。
[0016]在本公開的一個實施例中,鎖步系統(tǒng)100包括一個或多個延遲器114a、114b、114c和114d。延遲器114a和114b對去往校驗器CPU核104的指令的輸入進(jìn)行延遲,由此在當(dāng)指令被兩個CPU核執(zhí)行的時候之間產(chǎn)生時間偏移,并且延遲器114c和114d對來自主CPU核102的輸出進(jìn)行延遲,以使得比較器106可以比較來自與相同指令的執(zhí)行關(guān)聯(lián)的兩個CPU核的輸出。如所示的那樣,延遲器114a-114d是根據(jù)一個實施例的鎖步系統(tǒng)100的可選特征。
[0017]在本公開的一個實施例中,狀態(tài)控制邏輯112a和112b分別控制CPU核102和104的操作,包括暫停CPU核任務(wù)執(zhí)行、重新啟動CPU核任務(wù)執(zhí)行、將主CPU核102 (和在另一個實施例中校驗器CPU核104)的當(dāng)前狀態(tài)寫入(即,保存)到狀態(tài)緩沖器108、和/或從狀態(tài)緩沖器108將所保存的CPU核狀態(tài)讀取(即,加載)到主CPU核102和校驗器CPU核104。例如,在一個實施例中,狀態(tài)控制邏輯112a被配置成實現(xiàn)周期性地對主CPU核102的狀態(tài)進(jìn)行采樣以及將所采樣的狀態(tài)(也稱為當(dāng)前狀態(tài))寫入到狀態(tài)緩沖器108。
[0018]在一個實施例中,狀態(tài)控制邏輯112a本身周期性地對主CPU核102的狀態(tài)進(jìn)行采樣,并將所采樣的狀態(tài)寫入到狀態(tài)緩沖器108。在另一個實施例中,狀態(tài)控制邏輯112a周期性地生成控制信號,所述控制信號指示一個或多個其他邏輯單元(未示出)進(jìn)行采樣并將采樣狀態(tài)寫入到狀態(tài)緩沖器108。在另一個實施例中,狀態(tài)控制邏輯112a對主CPU核102的狀態(tài)進(jìn)行采樣,或基于觸發(fā)事件生成指示一個或多個其他邏輯單元對狀態(tài)進(jìn)行采樣的控制信號。例如,觸發(fā)事件可以是任務(wù)執(zhí)行的開始,或一個或多個特定觸發(fā)器的狀態(tài),或系統(tǒng)的一個或多個電路組件的一個或多個節(jié)點的狀態(tài),該一個或多個電路組件包括總線/高速緩存/存儲器110、主CPU核102和校驗器CPU核104的組件。為了該描述的目的,在一個實施例中,任務(wù)可以被定義為特定算法,或可替代地被定義為一個軟件單元。
[0019]比較器106包括由硬件、固件或軟件實現(xiàn)的比較邏輯。比較器106被配置成接收并比較來自主CPU核102和校驗器CPU核104的輸出。在一個實施例中,如果比較器106確定從兩個CPU核所接收到的輸出不同(即,不精確匹配),則比較器106生成一個或多個控制信號,所述控制信號被傳遞到主CPU核102的狀態(tài)控制邏輯112a和校驗器CPU核104的狀態(tài)控制邏輯112b。
[0020]在一個實施例中,鎖步系統(tǒng)100被嵌入在安全相關(guān)系統(tǒng)中,例如,被嵌入在下述系統(tǒng)中:其中,出于安全相關(guān)的原因,在程序或任務(wù)的執(zhí)行中軟和/或硬錯誤的檢測是重要的。軟錯誤可以例如由諸如宇宙輻射、放射性衰變或功率供應(yīng)變化之類的瞬變事件引起,所述瞬變事件導(dǎo)致瞬變信號或狀況發(fā)生在例如CPU核102和104和/或總線/高速緩存/存儲器模塊110中。相反地,硬錯誤可以由例如由于電離輻射或處理(即,制造)不一致性而引起的破損的存儲單元或電路組件(諸如,晶體管)導(dǎo)致。典型地,由瞬變事件引起的軟錯誤具有2毫秒或更少量級的生存時間,而硬錯誤由靜態(tài)的錯誤狀況引起,由此具有理論上無限的生存時間。
[0021]圖2是圖示根據(jù)本公開的實施例的提高鎖步核可用性的方法200的流程圖。在201處,任務(wù)開始。在一個實施例中,當(dāng)由主CPU核102對先前任務(wù)的執(zhí)行已經(jīng)結(jié)束時,或者當(dāng)主CPU核102接收到開始執(zhí)行(新)任務(wù)的請求時,任務(wù)可以開始。
[0022]在202處,主CPU核102的狀態(tài)控制邏輯112a將主CPU核102的當(dāng)前狀態(tài)保存(即,寫入)到狀態(tài)緩沖器108。在本公開的一個實施例中,例如,狀態(tài)控制邏輯112a生成一個或多個信號,所述信號使主CPU核102的各種電路組件的電壓和/或電流值(或數(shù)字高值和低值)被寫入到狀態(tài)緩沖器108。可以直接從電路組件的各個節(jié)點采樣(即,讀取)各種電路組件的值,或者可以從主CPU核102的本地寄存器(未示出)讀取各種電路組件的值。
[0023]在204處,由主CPU核102從總線/高速緩存/存儲器模塊110接收包括所述任務(wù)的指令集中的第一指令,并且由校驗器CPU核104接收第一指令(被延遲或未被延遲)以開始執(zhí)行所述任務(wù)。在本公開的一個實施例中,所述任務(wù)可以被定義為特定算法或單個軟件單兀。
[0024]在206處,鎖步核(即,主和校驗器CPU核102和104)執(zhí)行所述任務(wù)。鎖步核可以一致地或完全一致地獨立執(zhí)行包括所述任務(wù)的一個或多個指令。此外,比較器106針對每個被執(zhí)行的指令將主CPU核102的輸出(或延遲的輸出)與校驗器CPU核104的輸出相比較。如果比較器106確定輸出針對一個或多個被執(zhí)行的指令中的每一個而匹配,則任務(wù)的執(zhí)行在208處結(jié)束。在一個實施例中,鎖步核之一或這兩個鎖步核可以執(zhí)行NOP (無操作)指令,并且因此,一個或多個核的輸出將與先前的輸出相同(即,輸出的狀態(tài)不改變)。例如,主CPU核102和/或校驗器CPU核104可以執(zhí)行一個或多個指令以生成針對每個被執(zhí)行的指令的輸出,其中一個或多個所生成的輸出(或連續(xù)生成的輸出)包括相同的輸出狀態(tài)。
[0025]然而,如果在210處,對于特定的被執(zhí)行的指令而言,在任務(wù)執(zhí)行期間,比較器106檢測到錯誤(即,確定輸出不匹配),那么在一個實施例中,比較器106生成一個或多個控制信號以用于控制主CPU核狀態(tài)控制邏輯112a和/或校驗器CPU核狀態(tài)控制邏輯112b。在另一個實施例中,鎖步系統(tǒng)100包括耦合到比較器106的可選的控制寄存器116(圖1)??刂萍拇嫫?16被配置成從比較器106接收錯誤信號并生成一個或多個控制信號以用于控制主CPU核狀態(tài)控制邏輯112a和/或校驗器CPU核狀態(tài)控制邏輯112b。
[0026]不論所述一個或多個控制信號的源如何,在212處,狀態(tài)控制邏輯112a和112b接收所述一個或多個控制信號。所述一個或多個控制信號觸發(fā)狀態(tài)控制邏輯112a和112b來分別停止主CPU核102和校驗器CPU核104對指令的執(zhí)行。在一個實施例中,狀態(tài)控制邏輯112a然后將讀取信號發(fā)送到狀態(tài)緩沖器108,使所存儲的CPU狀態(tài)被加載到主CPU核102和校驗器CPU核104內(nèi)。所述方法然后在204處繼續(xù)。
[0027]總而言之,在開始執(zhí)行任務(wù)之前,將主CPU核102的已知良好狀態(tài)(即,無錯誤狀態(tài))寫入到狀態(tài)緩沖器108。如果在執(zhí)行任務(wù)期間檢測到鎖步錯誤,則中止任務(wù)執(zhí)行并且然后將已知良好狀態(tài)加載到CPU核102和104 二者,本質(zhì)上重新初始化核狀態(tài)。換句話說,核狀態(tài)被“卷繞回”到在任務(wù)開始處已知的主CPU核的狀態(tài),并且指令序列被重新執(zhí)行。通過僅當(dāng)(經(jīng)由分析主CPU核102及其關(guān)聯(lián)的校驗器CPU核104的輸出)檢測到處理錯誤時重新卷繞主CPU核102 (及其關(guān)聯(lián)的校驗器CPU核104),來避免整個處理系統(tǒng)(B卩,例如包括多于單個主CPU核的處理系統(tǒng))的重置,由此提高對主CPU核102 (或多個CPU核)處理任務(wù)來說可用的時間的百分比。因而,對專用于執(zhí)行指令集的計算操作來說可用的總時間的百分比被增加,即使當(dāng)在存在高度個體化的CPU核狀態(tài)破損的情況下計算可驗證地正確的結(jié)果時。
[0028]如果CPU核狀態(tài)破損是由于在執(zhí)行任務(wù)期間單個事件攪亂而引起的(B卩,發(fā)生具有小于大約2ms的生存時間的軟錯誤),那么假定不發(fā)生另一個單個軟錯誤事件,則由已知良好CPU狀態(tài)的加載(也被稱為重新加載)和任務(wù)的重復(fù)執(zhí)行導(dǎo)致的CPU輸出將無錯誤,并且,由于核狀態(tài)將保持一致(或完全一致),因此鎖步核能夠在鎖定操作中繼續(xù)。
[0029]然而,如果錯誤是由于任何其他失效而引起的(例如,發(fā)生硬錯誤),那么重新加載已知良好CPU狀態(tài)和重復(fù)執(zhí)行任務(wù)不會導(dǎo)致無錯誤的CPU輸出。因而,為了防止鎖步核102和104進(jìn)入無盡的循環(huán),鎖步系統(tǒng)100可以可選地包括計數(shù)器或狀態(tài)機(未示出),所述計數(shù)器或狀態(tài)機被配置成限制當(dāng)執(zhí)行相同操作序列(即,例如包括特定任務(wù)的相同指令集)時接續(xù)CPU狀態(tài)重新加載的數(shù)目。
[0030]圖3是圖示根據(jù)本公開的另一個實施例的提高鎖步核可用性的方法300的流程圖。典型地,CPU核內(nèi)的狀態(tài)可以被分類為動態(tài)的或偽靜態(tài)的,其中動態(tài)狀態(tài)是在任務(wù)內(nèi)改變的狀態(tài),而偽靜態(tài)狀態(tài)是在執(zhí)行任務(wù)期間保持恒定或可在任務(wù)之間保持恒定(即,在執(zhí)行一個或多個任務(wù)期間保持恒定)的狀態(tài)。CPU核的狀態(tài)可以同時包括這兩種類型的狀態(tài)。為了減少在任務(wù)開始處將CPU狀態(tài)保存到狀態(tài)緩沖器108所花費的時間,CPU狀態(tài)的偽靜態(tài)狀態(tài)分量僅當(dāng)其已經(jīng)改變時才被寫入到狀態(tài)緩沖器108。相反地,CPU狀態(tài)的動態(tài)狀態(tài)分量在每個任務(wù)的開始處被寫入到狀態(tài)緩沖器108。在一個實施例中,當(dāng)比較器106檢測到錯誤時,偽靜態(tài)和動態(tài)狀態(tài)二者被重新加載到鎖步核102和104內(nèi)。
[0031]如圖3中所示,在301處,第一任務(wù)開始。在一個實施例中,當(dāng)先前任務(wù)的執(zhí)行已經(jīng)結(jié)束時,或者當(dāng)主CPU核102接收到開始第一任務(wù)的執(zhí)行的請求時,第一任務(wù)可以開始。
[0032]在302處,假定關(guān)聯(lián)于第一任務(wù)的主CPU核102的偽靜態(tài)狀態(tài)(也被稱為當(dāng)前偽靜態(tài)狀態(tài))與關(guān)聯(lián)于先前任務(wù)的主CPU核102的偽靜態(tài)狀態(tài)不同,則主CPU核102的狀態(tài)控制邏輯112a將主CPU核102的當(dāng)前偽靜態(tài)狀態(tài)保存到狀態(tài)緩沖器108。
[0033]在304處,主CPU核102的狀態(tài)控制邏輯112a將與第一任務(wù)關(guān)聯(lián)的主CPU核102的動態(tài)狀態(tài)(也被稱為當(dāng)前動態(tài)狀態(tài))保存到狀態(tài)緩沖器108。
[0034]在306處,由主CPU核102從總線/高速緩存/存儲器模塊110接收包括第一任務(wù)的指令集中的第一指令,并且由校驗器CPU核104接收第一指令(被延遲或未被延遲)以開始執(zhí)行第一任務(wù)。
[0035]在308處,鎖步核執(zhí)行第一任務(wù)。動作308-314與圖2的動作206-212相同,除了在發(fā)生如比較器106所檢測到的錯誤時,狀態(tài)控制邏輯112a將讀取信號發(fā)送到狀態(tài)緩沖器108,使所存儲的偽靜態(tài)CPU狀態(tài)和所存儲的動態(tài)CPU狀態(tài)二者被加載到主CPU核102和校驗器CPU核104內(nèi)。
[0036]在316處,第二任務(wù)開始。當(dāng)?shù)谝蝗蝿?wù)的執(zhí)行已經(jīng)結(jié)束時,或者當(dāng)主CPU核102接收到開始第二任務(wù)的執(zhí)行的請求時,第二任務(wù)可以開始。
[0037]在318處,主CPU核102的狀態(tài)控制邏輯112a將與第二任務(wù)關(guān)聯(lián)的主CPU核102的動態(tài)狀態(tài)保存到狀態(tài)緩沖器108。在該示例實施例中,假定關(guān)聯(lián)于第二任務(wù)的偽靜態(tài)狀態(tài)與關(guān)聯(lián)于第一任務(wù)的偽靜態(tài)狀態(tài)相同,因而主CPU核102的狀態(tài)控制邏輯112a不將與第二任務(wù)關(guān)聯(lián)的主CPU核102的偽靜態(tài)狀態(tài)保存到狀態(tài)緩沖器108。所述方法在320處繼續(xù)。關(guān)于第二任務(wù)的動作320-328與關(guān)于第一任務(wù)的動作306-314相同。
[0038]圖4是圖示根據(jù)本公開的另一個實施例的提高鎖步核可用性的方法400的流程圖。許多應(yīng)用包含安全和非安全任務(wù)二者。非安全任務(wù)是其中可以容忍CPU核的輸出中的錯誤的任務(wù)。根據(jù)本公開的實施例,為了節(jié)省功率并通過減少存儲和重新加載CPU核狀態(tài)時耗費的總時間量來提高主CPU核102在處理指令時的總體可用性,當(dāng)運行(B卩,執(zhí)行)非安全任務(wù)時,可以禁用校驗器CPU核104、比較器106和控制寄存器116(當(dāng)存在時)。然而,禁用比較器106和校驗器CPU核104要求:當(dāng)稍后要執(zhí)行安全任務(wù)時,將不一致的校驗器CPU核104帶回到與主CPU核102的鎖步中。
[0039]上文結(jié)合圖1-3描述的系統(tǒng)和方法使鎖步CPU核能夠在檢測到任一 CPU核中的錯誤之后從已知良好CPU核狀態(tài)重新啟動。如下文將關(guān)于圖4描述的那樣,這些相同的系統(tǒng)和方法也能夠被用于重新同步和重新啟動先前已經(jīng)被禁用的鎖步系統(tǒng)。
[0040]如圖4中所示,在401處,非安全任務(wù)開始。在一個實施例中,當(dāng)先前任務(wù)的執(zhí)行已經(jīng)結(jié)束時,或者當(dāng)主CPU核102接收到開始執(zhí)行非安全任務(wù)的請求時,非安全任務(wù)可以開始。
[0041]在402處,主CPU核102的狀態(tài)控制邏輯112a將主CPU核102的當(dāng)前狀態(tài)保存到狀態(tài)緩沖器108。
[0042]在404處,基于識別當(dāng)前任務(wù)是非安全任務(wù),主CPU核102的狀態(tài)控制邏輯112a將禁用控制信號發(fā)送到比較器106和校驗器CPU核104的狀態(tài)控制邏輯112b。比較器106和狀態(tài)控制邏輯112b的預(yù)編程的邏輯可以利用禁用控制信號以例如分別關(guān)斷晶體管、開關(guān)、電源和/或比較器106和校驗器CPU核104的其他電路組件。在另一個實施例中,主CPU核102將表示當(dāng)前任務(wù)是非安全任務(wù)的控制信號(S卩,非安全任務(wù)控制信號)發(fā)送到控制寄存器116,并且作為響應(yīng),控制寄存器116生成禁用控制信號并將禁用控制信號發(fā)送到比較器106和校驗器CPU核104的狀態(tài)控制邏輯112b。
[0043]在406處,通過由主CPU核102從總線/高速緩存/存儲器模塊110接收包括非安全任務(wù)的指令集中的第一指令來開始非安全任務(wù)。在408處,主CPU核102執(zhí)行非安全任務(wù)。在410處,非安全任務(wù)的執(zhí)行結(jié)束。
[0044]在412處,安全任務(wù)開始。當(dāng)主CPU核102接收到開始執(zhí)行安全任務(wù)的請求時,可以開始安全任務(wù)。
[0045]在414處,基于識別新任務(wù)的開始是安全任務(wù),主CPU核102的狀態(tài)控制邏輯112a將啟用控制信號發(fā)送到比較器106和校驗器CPU核104的狀態(tài)控制邏輯112b。比較器106和狀態(tài)控制邏輯112b的預(yù)編程的邏輯可以利用啟用控制信號以分別通過接通先前已經(jīng)在404處關(guān)斷的晶體管、開關(guān)、電源和/或比較器106和校驗器CPU核104的其他電路組件來啟用鎖步操作。在另一個實施例中,主CPU核102將表示當(dāng)前任務(wù)是安全任務(wù)的控制信號(即,安全任務(wù)控制信號)發(fā)送到控制寄存器116,并且作為響應(yīng),控制寄存器116生成啟用控制信號并將啟用控制信號發(fā)送到比較器106和校驗器CPU核104的狀態(tài)控制邏輯112b。
[0046]在416處,主CPU核102的狀態(tài)控制邏輯112a基于識別新任務(wù)的開始是安全任務(wù),將讀取信號發(fā)送到狀態(tài)緩沖器108,使所存儲的CPU狀態(tài)被加載到主CPU核102和校驗器CPU核104內(nèi)。所述方法在418處繼續(xù)。關(guān)于安全任務(wù)的執(zhí)行,動作418-426與圖2中所示的動作204-212相同。
[0047]許多系統(tǒng)使用操作系統(tǒng)來分派任務(wù)到特定核實例(即,特定的CPU核)。如前面在上文中所討論的那樣,本公開的實施例包括在發(fā)生觸發(fā)事件(諸如鎖步錯誤)時重新加載所存儲的主CPU核狀態(tài)的全部或子集。
[0048]本公開的另一個實施例提供了對CPU核的完整上下文的切換。特定CPU核的上下文可以包括多于當(dāng)前基于任務(wù)的CPU核狀態(tài),并可以包括例如程序計數(shù)器狀態(tài)、寄存器文件狀態(tài)、存儲保護(hù)系統(tǒng)狀態(tài)和時間保護(hù)系統(tǒng)狀態(tài)中的一個或多個,其中程序計數(shù)器、寄存器文件、存儲保護(hù)系統(tǒng)和時間保護(hù)系統(tǒng)都與特定CPU核的操作相關(guān)聯(lián)。在這點上,CPU核的完整上下文也可以被稱為機器上下文。
[0049]在一個實施例中,針對CPU核完整上下文切換的觸發(fā)(即,機器上下文的切換)可以是操作系統(tǒng)事件,并且新CPU核完整上下文(即,新機器上下文)可以被鎖步系統(tǒng)100加載以不僅設(shè)置(即,初始化)與執(zhí)行特定任務(wù)關(guān)聯(lián)的主CPU核狀態(tài)(和校驗器CPU核狀態(tài)),還設(shè)置與主CPU核102的操作關(guān)聯(lián)的所有設(shè)備和/或系統(tǒng)的狀態(tài)。然而,本公開的范圍包括使用任何事件作為觸發(fā),諸如,作為示例,基于多個主CPU核(例如,其被并行運行,并執(zhí)行應(yīng)用于不同數(shù)據(jù)的相同任務(wù)或者相同程序的不同任務(wù))的共同狀態(tài)具有一個或多個預(yù)定值或大于一個或多個預(yù)定(或可編程的)閾值的值的觸發(fā)。
[0050]因而,用于基于觸發(fā)事件來切換機器上下文的系統(tǒng)或方法的實現(xiàn)方式可以通過避免全操作系統(tǒng)任務(wù)分派循環(huán)的傳統(tǒng)實現(xiàn)方式來提高鎖步核可用性。與傳統(tǒng)實現(xiàn)方式相反,一個任務(wù)可以通過保存機器上下文狀態(tài)并提供機器上下文重新加載來鏈住另一個任務(wù)。該過程有效地使每個所存儲的機器上下文狀態(tài)能夠作為獨立的軟件線程,其中基于時間的輪詢(或任何其他可行的)調(diào)度器被配置成周期性地(或基于事件而非周期性地)保存一個機器上下文狀態(tài)(即,線程)并加載另一個新的(或部分完整的)線程。
[0051]圖5是圖示根據(jù)本公開的另一個實施例的提高鎖步核可用性的方法500的流程圖。動作501、502和504與圖2中所示的動作201、202和204相同,除了動作502將機器上下文狀態(tài)(而不是僅CPU狀態(tài))保存到狀態(tài)緩沖器108。
[0052]如果在506處在執(zhí)行任務(wù)期間比較器106確定主CPU核102和校驗器CPU核104的輸出針對任務(wù)的一個或多個被執(zhí)行的指令中的每一個而匹配,并且如果未發(fā)生用于切換與執(zhí)行任務(wù)的主CPU核102關(guān)聯(lián)的機器上下文狀態(tài)的觸發(fā)事件,那么所述任務(wù)和所述方法在508處結(jié)束,否則所述方法在510處繼續(xù)。
[0053]在510處,如果在發(fā)生機器上下文狀態(tài)觸發(fā)事件之前,比較器106確定主CPU核102和校驗器CPU核104的輸出針對被執(zhí)行的指令而不匹配,那么所述方法在512處繼續(xù),否則所述方法在514處繼續(xù)。動作512與圖2中圖示的動作210和212類似。在512處,比較器106生成控制信號并且狀態(tài)控制邏輯112a利用所述控制信號來使所存儲的CPU狀態(tài)(作為所存儲的機器上下文狀態(tài)的分量)被加載到主CPU核102和校驗器CPU核104內(nèi),并且所述方法在504處繼續(xù)。
[0054]在514處,在主CPU核102和校驗器CPU核104的輸出的比較中發(fā)生不匹配之前,機器上下文狀態(tài)觸發(fā)事件已經(jīng)必要地發(fā)生。因而,在514處,機器內(nèi)容狀態(tài)觸發(fā)事件使?fàn)顟B(tài)控制邏輯112a和112b分別停止由主CPU核102和校驗器CPU核104對當(dāng)前任務(wù)的指令的執(zhí)行。狀態(tài)控制邏輯112a然后將來自第二狀態(tài)緩沖器(未示出)的與新任務(wù)關(guān)聯(lián)的新機器上下文狀態(tài)寫入到狀態(tài)緩沖器108,然后將來自狀態(tài)緩沖器108的新機器上下文狀態(tài)加載到鎖步CPU核102和104以及與主CPU核102的操作關(guān)聯(lián)的一個或多個設(shè)備和/或系統(tǒng)。第二狀態(tài)緩沖器可以或可以不與第二主核CPU(未示出)關(guān)聯(lián)。在516處,鎖步核102和104開始執(zhí)行與新機器上下文狀態(tài)關(guān)聯(lián)的新任務(wù)。
[0055]例如,由于在其中嵌入有一個或多個鎖步系統(tǒng)100的計算系統(tǒng)可以具有包括主和輔CPU核的多于一個CPU核,因此如上所說明的本公開的實施例提供:當(dāng)在執(zhí)行任務(wù)的指令的過程中在來自第一鎖步CPU核的輸出的比較中檢測到錯誤時,將與第一鎖步CPU核的第一 CPU核關(guān)聯(lián)的所保存的CPU狀態(tài)重新加載到第二 CPU核,所述第二 CPU核然后執(zhí)行任務(wù)的指令。在該實施例中,鎖步系統(tǒng)100實現(xiàn)任務(wù)的傳送以及在核之間對CPU核狀態(tài)的動態(tài)重新加載。傳送任務(wù)的能力提供:從不正確操作CPU核中移除任務(wù),在核之間動態(tài)地共享CPU負(fù)載,在核上多次運行一個任務(wù)(例如,以便檢測單個事件攪亂),并從核的集群中的一個或多個核中移除任務(wù),以通過關(guān)閉或降低集群中的一個或多個核的性能來節(jié)省功率。
[0056]盡管已經(jīng)參考某些實施例描述了本公開,但是本領(lǐng)域技術(shù)人員將理解的是,在不背離本公開的范圍的情況下可以做出各種改變以及可以用等同物進(jìn)行替代。例如,盡管在一個實施例中,主CPU核狀態(tài)控制邏輯被配置成基于在由主CPU核執(zhí)行一個或多個指令期間觸發(fā)事件的發(fā)生將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器,但是本公開的范圍包括以下實施例,其中校驗器CPU核狀態(tài)控制邏輯被配置成基于在由校驗器CPU核執(zhí)行一個或多個指令期間觸發(fā)事件的發(fā)生將校驗器CPU核或主CPU核的狀態(tài)寫入到狀態(tài)緩沖器,以及本公開的范圍包括以下實施例,其中主CPU核狀態(tài)控制邏輯和校驗器CPU核狀態(tài)控制邏輯二者都被配置成基于在由校驗器CPU核或主CPU核執(zhí)行一個或多個指令期間觸發(fā)事件的發(fā)生將主CPU核的狀態(tài)(或其相應(yīng)的核的狀態(tài))寫入到狀態(tài)緩沖器。
[0057]此外,在不背離其范圍的情況下,可以做出許多修改以對本公開的教導(dǎo)適配特定的情形或材料。因此,意圖在于,本公開不被限制到所公開的特定實施例,而是本公開將包括落入所附權(quán)利要求的范圍內(nèi)的所有實施例。
【權(quán)利要求】
1.一種鎖步系統(tǒng),包括: 主CPU核,其被配置成接收任務(wù),所述任務(wù)包括一個或多個指令,其中所述主CPU核進(jìn)一步被配置成執(zhí)行所述一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出; 校驗器CPU核,其被配置成接收所述任務(wù)并執(zhí)行所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出; 狀態(tài)緩沖器,其被耦合到主CPU核和校驗器CPU核,所述狀態(tài)緩沖器被配置成存儲主(PU核的狀態(tài);以及 比較器,其耦合到主CPU核和校驗器CPU核,所述比較器被配置成接收針對每個被執(zhí)行的指令的第一輸出和第二輸出,將第一輸出與第二輸出相比較,并且如果第一輸出不匹配于第二輸出,則生成一個或多個控制信號, 其中,主CPU核和校驗器CPU核進(jìn)一步被配置成接收所述一個或多個控制信號并響應(yīng)于此從狀態(tài)緩沖器加載所存儲的CPU核狀態(tài)。
2.根據(jù)權(quán)利要求1所述的鎖步系統(tǒng),進(jìn)一步包括:總線/高速緩存/存儲器模塊,其被耦合到主CPU核和校驗器CPU核,其中主CPU核和校驗器CPU核進(jìn)一步被配置成從總線/高速緩存/存儲器模塊接收任務(wù)。
3.根據(jù)權(quán)利要求2所述的鎖步系統(tǒng),進(jìn)一步包括:串聯(lián)耦合在總線/高速緩存/存儲器模塊和校驗器CPU核之間的一個或多個第一延遲器;以及串聯(lián)耦合在主CPU核和比較器之間的一個或多個第二 延遲器。
4.根據(jù)權(quán)利要求1所述的鎖步系統(tǒng),其中主CPU核包括:主CPU核狀態(tài)控制邏輯,其被配置成在由主CPU核執(zhí)行所述一個或多個指令之前將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器。
5.根據(jù)權(quán)利要求1所述的鎖步系統(tǒng),其中主CPU核包括:主CPU核狀態(tài)控制邏輯,其被配置成基于在由主CPU核執(zhí)行所述一個或多個指令期間觸發(fā)事件的發(fā)生,將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器。
6.根據(jù)權(quán)利要求1所述的鎖步系統(tǒng),其中主CPU核包括主CPU核狀態(tài)控制邏輯,所述主CPU核狀態(tài)控制邏輯被配置成在接收到所述一個或多個控制信號時停止由主CPU核執(zhí)行所述一個或多個指令,并且校驗器CPU核包括校驗器CPU核狀態(tài)控制邏輯,所述校驗器CPU核狀態(tài)控制邏輯被配置成在接收到所述一個或多個控制信號時停止由校驗器CPU核執(zhí)行所述一個或多個指令。
7.根據(jù)權(quán)利要求6所述的鎖步系統(tǒng),其中主CPU核狀態(tài)控制邏輯進(jìn)一步被配置成基于接收到所述一個或多個控制信號來生成讀取信號,以用于將所存儲的CPU核狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
8.根據(jù)權(quán)利要求1所述的鎖步系統(tǒng),其中主CPU核和校驗器CPU核一致地執(zhí)行所述一個或多個指令。
9.一種用于提高鎖步核可用性的方法,包括: 將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器; 由主CPU核執(zhí)行任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出; 由校驗器CPU核執(zhí)行所述任務(wù)的所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出; 由比較器將第一輸出與第二輸出相比較,并且如果第一輸出不匹配于第二輸出,貝1J生成一個或多個控制信號;以及 基于所述一個或多個控制信號的生成,將主CPU核的狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
10.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,進(jìn)一步包括由主CPU核和校驗器CPU核從總線/高速緩存/存儲器模塊接收所述一個或多個指令。
11.根據(jù)權(quán)利要求10所述的用于提高鎖步核可用性的方法,進(jìn)一步包括對由校驗器CPU核接收到的一個或多個指令進(jìn)行延遲以及對主CPU核的第一輸出進(jìn)行延遲。
12.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,進(jìn)一步包括在由主CPU核執(zhí)行所述一個或多個指令之前將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器。
13.根據(jù)權(quán)利要求12所述的用于提高鎖步核可用性的方法,其中主CPU核的狀態(tài)包括偽靜態(tài)狀態(tài)和動態(tài)狀態(tài),并且其中將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器進(jìn)一步包括: 在由主CPU核執(zhí)行所述任務(wù)的所述一個或多個指令之前將動態(tài)狀態(tài)寫入到狀態(tài)緩沖器;以及 僅在執(zhí)行所述任務(wù)的所述一個或多個指令前的主CPU核的偽靜態(tài)狀態(tài)與執(zhí)行先前任務(wù)的一個或多個指令前的主CPU核的偽靜態(tài)狀態(tài)不同的情況下將偽靜態(tài)狀態(tài)寫入到狀態(tài)緩沖器。
14.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,進(jìn)一步包括基于在由主CPU核執(zhí)行所述一個或多個指令 期間觸發(fā)事件的發(fā)生將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器。
15.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,進(jìn)一步包括基于由主CPU核接收到所述一個或多個控制信號來停止由主CPU核執(zhí)行所述一個或多個指令和由校驗器CPU核執(zhí)行所述一個或多個指令。
16.根據(jù)權(quán)利要求15所述的用于提高鎖步核可用性的方法,進(jìn)一步包括基于由主CPU核接收到所述一個或多個控制信號來生成讀取信號以用于將主CPU核的狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
17.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,其中主CPU核和校驗器CPU核一致地執(zhí)行所述一個或多個指令。
18.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,其中由主CPU核執(zhí)行所述任務(wù)的所述一個或多個指令、由校驗器CPU核執(zhí)行所述任務(wù)的所述一個或多個指令、比較和加載被重復(fù),直到針對每個被執(zhí)行的指令的第一輸出匹配于針對每個被執(zhí)行的指令的第二輸出、或者預(yù)定的時間段已經(jīng)流逝、或者動作被重復(fù)預(yù)定次數(shù)為止。
19.根據(jù)權(quán)利要求9所述的用于提高鎖步核可用性的方法,其中所述任務(wù)是安全任務(wù),并且其中所述方法進(jìn)一步包括: 在將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器之后以及在由主CPU核執(zhí)行所述安全任務(wù)的一個或多個指令之前: 禁用校驗器CPU核和比較器; 由主CPU核執(zhí)行非安全任務(wù); 啟用校驗器CPU核和比較器;以及 將主CPU核的狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
20.一種用于提高鎖步核可用性的方法,包括:將與第一任務(wù)關(guān)聯(lián)的第一機器上下文狀態(tài)寫入到狀態(tài)緩沖器,所述第一機器上下文狀態(tài)包括主CPU核的第一狀態(tài)和與主CPU核的操作關(guān)聯(lián)的邏輯單元和/或硬件單元的一個或多個第一狀態(tài); 由主CPU核執(zhí)行所述第一任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出; 由校驗器CPU核執(zhí)行所述第一任務(wù)的所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出; 由比較器將第一輸出與第二輸出相比較,并且如果第一輸出不匹配于第二輸出,貝1J生成一個或多個控制信號; 基于所述一個或多個控制信號的生成,將主CPU核的第一狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核; 重復(fù)由主CPU核執(zhí)行所述第一任務(wù)的所述一個或多個指令、由校驗器CPU核執(zhí)行所述第一任務(wù)的所述一個或多個指令、比較和加載,直到針對每個被執(zhí)行的指令的第一輸出匹配于針對每個被執(zhí)行的指令的第二輸出、預(yù)定的時間段已經(jīng)流逝、該重復(fù)已經(jīng)發(fā)生預(yù)定次數(shù)或者機器上下文觸發(fā)事件發(fā)生為止;以及在機器上下文觸發(fā)事件發(fā)生的情況下: 將與第二任務(wù)關(guān)聯(lián)的第二機器上下文狀態(tài)從第二狀態(tài)緩沖器寫入到所述狀態(tài)緩沖器,其中第二機器上下文狀態(tài)包括主CPU核的第二狀態(tài)以及與主CPU核的操作關(guān)聯(lián)的邏輯單元和/或硬件單元的一個 或多個第二狀態(tài);以及 將第二機器上下文狀態(tài)從所述狀態(tài)緩沖器加載到主CPU核和校驗器CPU核。
21.根據(jù)權(quán)利要求20所述的用于提高鎖步核可用性的方法,其中在機器上下文觸發(fā)事件發(fā)生的情況下,所述方法進(jìn)一步包括: 由主CPU核執(zhí)行所述第二任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一第二任務(wù)輸出; 由校驗器CPU核執(zhí)行所述第二任務(wù)的所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二第二任務(wù)輸出; 由比較器將第一第二任務(wù)輸出與第二第二任務(wù)輸出相比較,并且如果第一第二任務(wù)輸出不匹配于第二第二任務(wù)輸出,則生成一個或多個第二控制信號; 基于第二一個或多個控制信號的生成,將主CPU核的第二狀態(tài)從所述狀態(tài)緩沖器加載到主CPU核和校驗器CPU核;以及 重復(fù)由主CPU核執(zhí)行所述第二任務(wù)的所述一個或多個指令、由校驗器CPU核執(zhí)行所述第二任務(wù)的所述一個或多個指令、將第一第二任務(wù)輸出與第二第二任務(wù)輸出相比較、以及從所述狀態(tài)緩沖器加載主CPU核的第二狀態(tài),直到針對每個被執(zhí)行的指令的第一第二任務(wù)輸出匹配于針對每個被執(zhí)行的指令的第二第二任務(wù)輸出、第二預(yù)定的時間段已經(jīng)流逝、該重復(fù)已經(jīng)發(fā)生預(yù)定次數(shù)或者另一個機器上下文觸發(fā)事件發(fā)生為止。
22.根據(jù)權(quán)利要求20所述的用于提高鎖步核可用性的方法,其中機器上下文觸發(fā)事件包括以下各項之一:操作系統(tǒng)事件;或者具有一個或多個預(yù)定值的多個主CPU核的一個或多個狀態(tài)。
23.根據(jù)權(quán)利要求20所述的用于提高鎖步核可用性的方法,其中與主CPU核的操作關(guān)聯(lián)的邏輯單元和/或硬件單元的一個或多個第一狀態(tài)包括程序計數(shù)器狀態(tài)、寄存器文件狀態(tài)、存儲保護(hù)系統(tǒng)狀態(tài)和時間保護(hù)系統(tǒng)狀態(tài)中的一個或多個。
24.一種用于提高鎖步核可用性的系統(tǒng),包括: 用于將主CPU核的狀態(tài)寫入到狀態(tài)緩沖器的裝置; 用于由主CPU核執(zhí)行任務(wù)的一個或多個指令以生成針對每個被執(zhí)行的指令的第一輸出的裝置; 用于由校驗器CPU核執(zhí)行所述任務(wù)的所述一個或多個指令以生成針對每個被執(zhí)行的指令的第二輸出的裝置; 用于將第一輸出與第二輸出相比較的裝置,以及在第一輸出不匹配于第二輸出的情況下用于生成一個或多個控制信號的裝置;以及 用于基于所述一個或多個控制信號的生成將主CPU核的狀態(tài)從狀態(tài)緩沖器加載到主CPU核和校驗器CPU核 的裝置。
【文檔編號】G06F11/16GK104035843SQ201410080143
【公開日】2014年9月10日 申請日期:2014年3月6日 優(yōu)先權(quán)日:2013年3月6日
【發(fā)明者】S.布魯爾頓, N.S.哈斯蒂 申請人:英飛凌科技股份有限公司