本技術涉及處理器領域,具體而言,涉及一種處理器、處理器故障的檢測方法、裝置及電子設備。
背景技術:
1、隨著芯片應用領域(如:車聯(lián)網、車載以太網、雷達、自動駕駛/輔助駕駛等)的不斷擴增,對芯片的可靠性以及容錯能力的需求也隨之增長。例如,在自動駕駛汽車領域,諸如防抱死制動、車輛穩(wěn)定性和線控技術等安全關鍵應用,對安全性有很高的要求。
2、1980年代提出的雙核鎖步(dual-core?lockstep,dcls)是較廣泛使用的系統(tǒng)級加固方法之一。雙核鎖步是指在一個處理器芯片中,例化兩份處理器核心,兩個核心運行相同的應用程序,并產生相同的結果。如果兩個核心的結果不同,系統(tǒng)可以采取進一步的措施,例如重試指令或重啟系統(tǒng),以此提高芯片可靠性和容錯能力。目前,相關技術在實現(xiàn)雙核鎖步功能的處理器架構中通常設置結構相同的主核和冗余核,從而導致處理器功耗和面積較高。
3、針對上述的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)思路
1、本技術實施例提供了一種處理器、處理器故障的檢測方法、裝置及電子設備,以至少解決相關技術在實現(xiàn)雙核鎖步功能的處理器架構中設置相同的主核和冗余核,導致處理器功耗高的技術問題。
2、根據(jù)本技術實施例的一個方面,提供了一種處理器,處理器基于risc-v架構實現(xiàn),包括:主核,用于執(zhí)行指令處理操作;冗余核,用于與主核并行操作以執(zhí)行主核所執(zhí)行的指令處理操作,其中,冗余核中的功能模塊與主核中的第一功能模塊相同,主核中的第二功能模塊由主核和冗余核共享,第二功能模塊為主核中除第一功能模塊以外的功能模塊;故障檢測單元,用于根據(jù)主核和冗余核各自在執(zhí)行指令處理操作的過程中的對外輸出信號檢測處理器是否存在故障。
3、進一步地,第二功能模塊為以下至少之一:存儲模塊、分支預測模塊,存儲模塊包括以下至少之一:指令緩存、數(shù)據(jù)緩存、用于記錄虛擬地址與物理地址之間映射關系的快表,分支預測模塊包括分支預測器和用于記錄歷史分支指令的執(zhí)行結果的分支歷史表。
4、進一步地,第二功能模塊用于接收主核發(fā)送至第二功能模塊的訪問信號,并基于訪問信號向主核和冗余核反饋數(shù)據(jù),以實現(xiàn)在主核和冗余核之間共享第二功能模塊。
5、根據(jù)本技術實施例的另一方面,還提供了一種處理器故障的檢測方法,應用于上述的處理器,包括:獲取主核在執(zhí)行指令處理操作的過程中的對外輸出信號,得到第一對外輸出信號;獲取冗余核在執(zhí)行指令處理操作的過程中的對外輸出信號,得到第二對外輸出信號;根據(jù)第一對外輸出信號和第二對外輸出信號檢測處理器是否存在故障。
6、進一步地,根據(jù)第一對外輸出信號和第二對外輸出信號檢測處理器是否存在故障包括:獲取主核針對主核中的第二功能模塊的訪問信號,得到第一訪問信號,其中,主核的訪問信號在處理器正常工作的情況下發(fā)送至第二功能模塊,第二功能模塊基于主核的訪問信號向主核和冗余核反饋數(shù)據(jù);獲取冗余核針對第二功能模塊的訪問信號,得到第二訪問信號,其中,冗余核的訪問信號在處理器正常工作的情況下不發(fā)送至第二功能模塊;根據(jù)第一對外輸出信號和第二對外輸出信號、第一訪問信號和第二訪問信號檢測處理器是否存在故障。
7、進一步地,在第二功能模塊包括存儲模塊,存儲模塊包括指令緩存、數(shù)據(jù)緩存、用于記錄虛擬地址與物理地址之間映射關系的快表的情況下,獲取主核針對主核中的第二功能模塊的訪問信號,得到第一訪問信號包括:在處理器流水線的指令獲取階段中,獲取主核中的指令獲取模塊針對指令緩存的訪問信號,得到第一訪問子信號;在處理器流水線的指令執(zhí)行階段中,獲取主核中的目標指令執(zhí)行模塊針對數(shù)據(jù)緩存的訪問信號,得到第二訪問子信號,并獲取主核中的內存管理模塊針對快表的訪問信號,得到第三訪問子信號;依據(jù)第一訪問子信號、第二訪問子信號以及第三訪問子信號得到第一訪問信號。
8、進一步地,在第二功能模塊包括分支預測模塊的情況下,獲取主核針對主核中的第二功能模塊的訪問信號,得到第一訪問信號包括:在處理器流水線的分支預測階段中,獲取主核中的指令獲取模塊針對分支預測模塊的訪問信號,得到第四訪問子信號;依據(jù)第四訪問子信號得到第一訪問信號。
9、進一步地,獲取主核在執(zhí)行指令處理操作的過程中的對外輸出信號,得到第一對外輸出信號包括:在主核執(zhí)行指令處理操作的過程中,若主核輸出對外輸出信號,則對主核輸出的對外輸出信號延遲第一時鐘周期,得到第一對外輸出信號;獲取冗余核在執(zhí)行指令處理操作的過程中的對外輸出信號,得到第二對外輸出信號包括:在存在針對冗余核的外部輸入信號時,對針對冗余核的外部輸入信號延遲第二時鐘周期;在冗余核基于延遲處理后的外部輸入信號執(zhí)行指令處理操作的過程中,若冗余核輸出對外輸出信號,則對冗余核輸出的對外輸出信號延遲第三時鐘周期,得到第二對外輸出信號,其中,第二時鐘周期與第三時鐘周期二者之和與第一時鐘周期相同。
10、進一步地,獲取主核針對主核中的第二功能模塊的訪問信號,得到第一訪問信號包括:在主核輸出針對第二功能模塊的訪問信號的情況下,對主核輸出的訪問信號延遲第一時鐘周期,得到第一訪問信號;獲取冗余核針對第二功能模塊的訪問信號,得到第二訪問信號包括:在冗余核輸出針對第二功能模塊的訪問信號的情況下,對冗余核輸出的訪問信號延遲第三時鐘周期,得到第二訪問信號。
11、進一步地,根據(jù)第一對外輸出信號和第二對外輸出信號、第一訪問信號和第二訪問信號檢測處理器是否存在故障包括:在第一對外輸出信號與第二對外輸出信號相同,且第一訪問信號與第二訪問信號相同的情況下,確定處理器不存在故障;在第一對外輸出信號與第二對外輸出信號不同,或者第一訪問信號與第二訪問信號不同的情況下,確定處理器存在故障。
12、根據(jù)本技術實施例的另一方面,還提供了一種處理器故障的檢測裝置,應用于上述的處理器,包括:第一獲取單元,用于獲取主核在執(zhí)行指令處理操作的過程中的對外輸出信號,得到第一對外輸出信號;第二獲取單元,用于獲取冗余核在執(zhí)行指令處理操作的過程中的對外輸出信號,得到第二對外輸出信號;檢測單元,用于根據(jù)第一對外輸出信號和第二對外輸出信號檢測處理器是否存在故障。
13、進一步地,檢測單元包括:第一獲取子單元,用于獲取主核針對主核中的第二功能模塊的訪問信號,得到第一訪問信號,其中,主核的訪問信號在處理器正常工作的情況下發(fā)送至第二功能模塊,第二功能模塊基于主核的訪問信號向主核和冗余核反饋數(shù)據(jù);第二獲取子單元,用于獲取冗余核針對第二功能模塊的訪問信號,得到第二訪問信號,其中,冗余核的訪問信號在處理器正常工作的情況下不發(fā)送至第二功能模塊;檢測子單元,用于根據(jù)第一對外輸出信號和第二對外輸出信號、第一訪問信號和第二訪問信號檢測處理器是否存在故障。
14、進一步地,在第二功能模塊包括存儲模塊,存儲模塊包括指令緩存、數(shù)據(jù)緩存、用于記錄虛擬地址與物理地址之間映射關系的快表的情況下,第一獲取子單元包括:第一獲取模塊,用于在處理器流水線的指令獲取階段中,獲取主核中的指令獲取模塊針對指令緩存的訪問信號,得到第一訪問子信號;第二獲取模塊,用于在處理器流水線的指令執(zhí)行階段中,獲取主核中的目標指令執(zhí)行模塊針對數(shù)據(jù)緩存的訪問信號,得到第二訪問子信號,并獲取主核中的內存管理模塊針對快表的訪問信號,得到第三訪問子信號;第一處理模塊,用于依據(jù)第一訪問子信號、第二訪問子信號以及第三訪問子信號得到第一訪問信號。
15、進一步地,在第二功能模塊包括分支預測模塊的情況下,第一獲取子單元包括:第三獲取模塊,用于在處理器流水線的分支預測階段中,獲取主核中的指令獲取模塊針對分支預測模塊的訪問信號,得到第四訪問子信號;第二處理模塊,用于依據(jù)第四訪問子信號得到第一訪問信號。
16、進一步地,第一獲取單元包括:第一處理子單元,用于在主核執(zhí)行指令處理操作的過程中,若主核輸出對外輸出信號,則對主核輸出的對外輸出信號延遲第一時鐘周期,得到第一對外輸出信號;第二獲取單元包括:第二處理子單元,用于在存在針對冗余核的外部輸入信號時,對針對冗余核的外部輸入信號延遲第二時鐘周期;第三處理子單元,用于在冗余核基于延遲處理后的外部輸入信號執(zhí)行指令處理操作的過程中,若冗余核輸出對外輸出信號,則對冗余核輸出的對外輸出信號延遲第三時鐘周期,得到第二對外輸出信號,其中,第二時鐘周期與第三時鐘周期二者之和與第一時鐘周期相同。
17、進一步地,第一獲取子單元包括:第三處理模塊,用于在主核輸出針對第二功能模塊的訪問信號的情況下,對主核輸出的訪問信號延遲第一時鐘周期,得到第一訪問信號;第二獲取子單元包括:第四處理模塊,用于在冗余核輸出針對第二功能模塊的訪問信號的情況下,對冗余核輸出的訪問信號延遲第三時鐘周期,得到第二訪問信號。
18、進一步地,檢測子單元包括:第一確定模塊,用于在第一對外輸出信號與第二對外輸出信號相同,且第一訪問信號與第二訪問信號相同的情況下,確定處理器不存在故障;第二確定模塊,用于在第一對外輸出信號與第二對外輸出信號不同,或者第一訪問信號與第二訪問信號不同的情況下,確定處理器存在故障。
19、根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設備,包括:存儲器,存儲有可執(zhí)行程序;處理器,用于運行程序,其中,程序運行時執(zhí)行上述任意一項的處理器故障的檢測方法。
20、根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機程序產品,包括計算機程序或指令,計算機程序或指令在被處理器執(zhí)行時實現(xiàn)上述任意一項的處理器故障的檢測方法。
21、在本技術實施例中,通過設置處理器基于risc-v架構實現(xiàn),包括主核,用于執(zhí)行指令處理操作;冗余核,用于與主核并行操作以執(zhí)行主核所執(zhí)行的指令處理操作,其中,冗余核中的功能模塊與主核中的第一功能模塊相同,主核中的第二功能模塊由主核和冗余核共享,第二功能模塊為主核中除第一功能模塊以外的功能模塊;故障檢測單元,用于根據(jù)主核和冗余核各自在執(zhí)行指令處理操作的過程中的對外輸出信號檢測處理器是否存在故障的方式,主核執(zhí)行指令處理操作,冗余核與主核并行操作以執(zhí)行主核所執(zhí)行的指令處理操作,故障檢測單元根據(jù)主核和冗余核各自在執(zhí)行指令處理操作的過程中的對外輸出信號檢測處理器是否存在故障,實現(xiàn)了在處理器中實現(xiàn)雙核鎖步功能,通過設置冗余核中的功能模塊與主核中的第一功能模塊相同,主核中的第二功能模塊由主核和冗余核共享,有效減少了冗余核中所使用的功能模塊的數(shù)量,從而可以有效降低處理器功耗,并減少冗余核的占用面積。從而達到了在處理器中精簡冗余核的目的,實現(xiàn)了降低處理器功耗的技術效果,進而解決了相關技術在實現(xiàn)雙核鎖步功能的處理器架構中設置相同的主核和冗余核,導致處理器功耗高的技術問題。