新四季網

用於提高鎖步核可用性的系統和方法

2023-06-02 09:08:06 1

用於提高鎖步核可用性的系統和方法
【專利摘要】一種用於提高鎖步核可用性的系統和方法提供:將主CPU核的狀態寫入到狀態緩衝器,由主CPU核執行任務的一個或多個指令以生成針對每個被執行的指令的第一輸出,以及由校驗器CPU核執行任務的一個或多個指令以生成針對每個被執行的指令的第二輸出。所述方法進一步包括:將第一輸出與第二輸出相比較,並且如果第一輸出不匹配於第二輸出,則生成一個或多個控制信號,以及基於所述一個或多個控制信號的生成,將主CPU核的狀態從狀態緩衝器加載到主CPU核和校驗器CPU核。
【專利說明】用於提高鎖步核可用性的系統和方法
【技術領域】
[0001]本公開的某些實施例涉及在計算系統和方法中提供診斷覆蓋。更具體地,本公開的某些實施例涉及在提高鎖步(lockstep) CPU核可用性的同時在嵌入式安全相關系統及其中的方法中提供診斷覆蓋。
【背景技術】
[0002]用在嵌入式安全相關系統中的中央處理單元(CPU)通常包括獨立且一致地運行相同指令和數據序列的一對CPU核。所述核的輸出被實時比較,並且如果存在通常指示錯誤的不匹配的話,則能夠採取適當的動作來處理所述錯誤。然而,到由於檢測到兩個CPU核的輸出之間的差異而已經確定兩個CPU核之間的狀態差異的時候,任一 CPU核的當前內部狀態可能已經顯著偏離於CPU核相關錯誤發生時的內部狀態。
[0003]傳統的嵌入式安全相關系統通過將整個系統置於重置狀態中然後重新啟動整個系統,解決了這些CPU核相關錯誤。更具體地,在傳統的系統中,系統管理器邏輯模塊一般接收核相關錯誤,然後不僅重置該對CPU核,還重置與該系統關聯的所有組件。然而,該過程一般花費相當長的時間段,在所述時間段期間,系統不可用於例如處理指令和數據或者I/o功能。例如,系統可能在幾十毫秒內不可用,這不是對安全相關控制器來說期望的情形。
[0004]其他更複雜的系統可以與用于禁用出故障的核的多數表決系統相結合使用三個或更多CPU核。然而,儘管此類系統可以提供更高的CPU核可用性,但是此類可用性以附加的面積、功率和/或成本為代價。
[0005]將期望的是,在仍然提供對CPU核處理錯誤的高效且健壯的檢測和校正的同時,在嵌入式安全相關系統中給處理數據和指令集的任務提供更高百分比的CPU核可用性。

【發明內容】

[0006]根據本公開的實施例,一種鎖步系統包括:主CPU核,其被配置成接收並執行任務的一個或多個指令以生成針對每個被執行的指令的第一輸出;校驗器CPU核,其被配置成接收並執行所述一個或多個指令以生成針對每個被執行的指令的第二輸出;狀態緩衝器,其被耦合到主CPU核和校驗器CPU核並且被配置成存儲主CPU核的狀態;以及比較器,其被耦合到主CPU核和校驗器CPU核並且被配置成接收針對每個被執行的指令的第一輸出和第二輸出,將第一輸出與第二輸出相比較並且如果第一輸出不匹配於第二輸出,貝1J生成一個或多個控制信號。在一個實施例中,主CPU核和校驗器CPU核進一步被配置成接收所述一個或多個控制信號並從狀態緩衝器加載所存儲的CPU核狀態。
[0007]根據本公開的另外的實施例,一種用於提高鎖步核可用性的方法包括:將主CPU核的狀態寫入到狀態緩衝器,由主CPU核執行任務的一個或多個指令以生成針對每個被執行的指令的第一輸出,由校驗器CPU核執行所述任務的所述一個或多個指令以生成針對每個被執行的指令的第二輸出,將第一輸出與第二輸出相比較,並且如果第一輸出不匹配於第二輸出,則生成一個或多個控制信號,以及基於所述一個或多個控制信號的生成將主CPU核的狀態從狀態緩衝器加載到主CPU核和校驗器CPU核。
[0008]本公開的這些和其他優勢、方面和新特徵以及其圖示實施例的細節將從下面的描述和附圖中更充分地理解。
【專利附圖】

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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀