TW202418068A - 處理器及自處理器偵測軟錯誤的方法 - Google Patents

處理器及自處理器偵測軟錯誤的方法 Download PDF

Info

Publication number
TW202418068A
TW202418068A TW112134707A TW112134707A TW202418068A TW 202418068 A TW202418068 A TW 202418068A TW 112134707 A TW112134707 A TW 112134707A TW 112134707 A TW112134707 A TW 112134707A TW 202418068 A TW202418068 A TW 202418068A
Authority
TW
Taiwan
Prior art keywords
instruction
original
copy
register
register file
Prior art date
Application number
TW112134707A
Other languages
English (en)
Inventor
金泰善
朴晋弘
蘇輝秀
李耕雨
鄭鎭曉
Original Assignee
南韓商三星電子股份有限公司
延世大學校 產學協力團
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司, 延世大學校 產學協力團 filed Critical 南韓商三星電子股份有限公司
Publication of TW202418068A publication Critical patent/TW202418068A/zh

Links

Images

Abstract

本發明提供一種處理器,包含依序處理原始指令及藉由複製原始指令生成的複製指令的指令管線。原始暫存器檔案將藉由在指令管線中處理原始指令獲得的結果儲存於其第n索引的暫存器內。複製暫存器檔案將藉由在指令管線中處理複製指令獲得的結果儲存於其第n索引的暫存器內。比較單元回應於控制信號將原始暫存器檔案中的第n索引的暫存器與複製暫存器檔案中的第n索引的暫存器進行比較且輸出錯誤偵測信號。

Description

處理器和來自處理器檢測軟錯誤的方法
[相關申請案的交叉參考]
本申請案主張2022年9月16日向韓國智慧財產局申請的韓國專利申請案第10-2022-0117447號的優先權,所述申請案的揭露內容以全文引用的方式併入本文中。
本揭露是關於來自處理器的錯誤偵測,且更特定言之,是關於處理器及自處理器偵測軟錯誤的方法。
軟錯誤(或暫態故障)通常指由於暫態因素,例如中子或α粒子之間的碰撞,儲存於半導體裝置(諸如電晶體)中的位元值自「0」反轉至「1」或反之亦然的錯誤。相對於由永久性硬體故障導致的硬錯誤,軟錯誤為暫時失靈的結果。由軟錯誤引起的不準確位元值可在處理器的操作期間導致嚴重處理錯誤。因此,存在經濟地利用處理器資源以在嚴重處理器失靈之前進行軟錯誤的精確偵測的需求。
根據本揭露的態樣,提供一種處理器,包含依序處理原始指令及藉由複製原始指令生成的複製指令的指令管線。原始暫存器檔案將藉由自指令管線處理原始指令獲得的結果儲存於其第n索引的暫存器中。複製暫存器檔案將藉由自指令管線處理複製指令獲得的結果儲存於其第n索引的暫存器中。比較單元回應於控制信號將原始暫存器檔案中的第n索引的暫存器與複製暫存器檔案中的第n索引的暫存器進行比較且輸出錯誤偵測信號。
根據本揭露的另一態樣,提供一種偵測軟錯誤的方法,包含:經由指令管線執行原始指令;將原始指令的執行結果儲存於原始暫存器檔案的第n索引的暫存器中;將原始指令複製至複製指令;經由指令管線執行複製指令;將複製指令的執行結果儲存於複製暫存器檔案的第n索引的暫存器中;以及將原始暫存器檔案的第n索引的暫存器與複製暫存器檔案的第n索引的暫存器進行比較。
根據本揭露的另一態樣,提供一種處理器,包括至少兩個核心。至少兩個核心中的各者包含:指令管線,包含在第x指令週期中處理原始指令且在第x+1指令週期中處理複製指令的多個階段;原始暫存器檔案,包含多個暫存器且暫時儲存指令管線相對於原始指令的執行結果;原始程式計數器,在第x指令週期處改變且在第x+1指令週期處保持;複製暫存器檔案,包含與原始暫存器檔案中的暫存器的數目相同的數目個暫存器且暫時儲存指令管線相對於複製指令的執行結果;複製程式計數器,在第x+1指令週期處改變且在第x+2指令週期處保持;以及比較單元,將原始暫存器檔案與複製暫存器檔案中的相同索引的暫存器或原始程式計數器與複製程式計數器進行比較且輸出錯誤偵測信號。
在下文中,詳細地描述本揭露的實施例且在此清晰度下允許所屬領域中具有通常知識者在無需過多實驗的情況下進行及使用本文中所主張的揭露內容。
圖1示出根據本揭露的實施例的處理器100的軟錯誤偵測資源,且圖2為示出根據本揭露的實施例的自處理器100偵測軟錯誤的方法200的流程圖。
參考圖1及圖2,根據本揭露的實施例的處理器100包含指令管線110、原始暫存器檔案120、複製暫存器檔案130以及比較單元140。在此實例中,原始暫存器檔案120包含第0索引至第z索引的暫存器R0至暫存器Rz(其中z為正整數)且複製暫存器檔案130包含第0'索引至第z'索引的暫存器R0'至暫存器Rz'(其中z'為正整數)。此處z可等於z'。此外,此處應注意用於偵測軟錯誤的資源相對最少,此允許相對簡單的軟錯誤偵測程序的實施。
根據本揭露的實施例的自處理器100偵測軟錯誤的方法200包含:在操作S210中執行原始指令;在操作S220中將原始指令的執行結果儲存於原始暫存器檔案120的第n索引的暫存器中;在操作S230中將原始指令複製至複製指令;在操作S240中執行複製指令;在操作S250中將複製指令的執行結果儲存於複製暫存器檔案130的第n索引的暫存器中;以及在操作S260中將原始暫存器檔案120的第n索引的暫存器與複製暫存器檔案130的第n索引的暫存器進行比較。
根據本揭露的實施例的圖1的處理器100可藉由使用根據本揭露的實施例的用於偵測軟錯誤的圖2的方法200偵測軟錯誤。此外,根據本揭露的實施例的偵測軟錯誤的方法200可在根據本揭露的實施例的處理器100中進行。然而,本揭露不限於此且根據本揭露的實施例的處理器100可藉由使用與方法200不同的方法偵測軟錯誤。此外,根據本揭露的實施例的偵測軟錯誤的方法200可在與處理器100不同的處理器中進行。在下文中,為便於描述,示出根據本揭露的實施例的處理器100藉由使用偵測軟錯誤的方法200偵測軟錯誤且根據本揭露的實施例的偵測軟錯誤的方法200在處理器100中進行。
仍參考圖1及圖2,在操作S210中根據本揭露的實施例的處理器100中所包含的指令管線110依序處理原始指令OIN。
在操作S240中指令管線110依序處理對應於原始指令OIN的複製指令DIN。舉例而言,在操作S230中複製指令DIN藉由複製原始指令OIN而生成。根據本揭露的實施例的藉由複製原始指令OIN生成複製指令DIN的各種方法將稍後描述。
指令管線110以如下方式依序處理原始指令OIN或複製指令DIN:執行原始指令OIN或複製指令DIN所需的指令管線110中所包含的全部階段藉由與處理器100的指令週期同步而進行,且藉此生成原始指令OIN或複製指令DIN的執行結果。
圖3示出根據本揭露的實施例的指令管線110,且圖4示出圖3的指令管線110的操作。
參考圖1、圖3以及圖4,根據本揭露的實施例的指令管線110可包含擷取單元FU、解碼單元DU、執行單元EU以及回寫單元WU。
擷取單元FU可擷取原始指令OIN及複製指令DIN。擷取單元FU可藉由先進先出(first-in first-out;FIFO)緩衝區實現為佇列。擷取單元FU可包含原始擷取單元OFU及複製擷取單元DFU,其中原始擷取單元OFU自外部擷取原始指令OIN且複製擷取單元DFU複製擷取至原始擷取單元的原始指令OIN以儲存為複製指令DIN。亦即,複製指令DIN可自原始擷取單元OFU中的原始指令OIN的複製而生成。
在此情況下,當在第一指令週期及第二指令週期中,將第一原始指令INS1及第二原始指令INS2分別擷取至原始擷取單元OFU時,可在第二指令週期及第三指令週期中,將第一原始指令INS1及第二原始指令INS2分別擷取至複製擷取單元DFU。
解碼單元DU可依序解碼原始指令OIN及複製指令。解碼單元DU可解析原始指令OIN及複製指令DIN的操作碼且可存取由運算元指示的暫存器。舉例而言,解碼單元DU可解碼原始指令OIN以存取原始暫存器檔案120的第m索引的暫存器Rm且可解碼複製指令DIN以存取複製暫存器檔案130的第m索引的暫存器Rm'。
在下文中,為便於描述,原始暫存器檔案120的暫存器可稱為原始暫存器且複製暫存器檔案130的暫存器可稱為複製暫存器。此外,在理解本揭露時,對暫存器、暫存器的索引或暫存器值的引用可混合或一起使用,除非不出現不清楚的情況。
根據本揭露的實施例的指令管線110可更包含第一多工器MUX1及第二多工器MUX2,以供解碼單元DU解碼原始指令OIN及複製指令DIN中的一者且處理原始暫存器Rm及複製暫存器Rm'中的一者。第一多工器MUX1及第二多工器MUX2回應於控制信號XCON可分別將原始指令OIN及複製指令DIN中的一者以及原始暫存器Rm及複製暫存器Rm'中的一者傳輸至解碼單元DU。
第一原始指令INS1及第二原始指令INS2的解碼操作可在第二指令週期及第四指令週期中分別進行,且第一複製指令INS1'及第二複製指令INS2'的解碼操作可在第三指令週期及第五指令週期中分別進行。
執行單元EU可進行對應於來自解碼單元DU的解碼結果的操作。舉例而言,當原始指令OIN及複製指令DIN的操作碼為任意兩個暫存器相加的「ADD」時,執行單元EU可輸出藉由經由算術與邏輯單元ALU將兩個暫存器相加而獲得的結果。
回寫單元WU可將來自執行單元EU的執行結果寫入至原始暫存器檔案120的第n索引的暫存器Rn及複製暫存器檔案130的第n索引的暫存器Rn'。第一原始指令INS1可在第三指令週期及第四指令週期中由執行單元EU及回寫單元WU分別處理且可寫入在原始暫存器檔案120的第n索引的暫存器Rn中。第一複製指令INS1'可在第四指令週期及第五指令週期中由執行單元EU及回寫單元WU分別處理且可寫入在複製暫存器檔案130的第n索引的暫存器Rn'中。第二原始指令INS2及第二複製指令INS2'亦可經由上述相同操作寫入在對應暫存器中。
如上所述,原始指令OIN及複製指令DIN經由根據本揭露的實施例的指令管線110的結構依序進行以最小化用於偵測軟錯誤的硬體資源、功率以及執行時間的增加。
此外,由於根據本揭露的實施例的處理器100包含用於暫時儲存執行原始指令OIN及複製指令DIN所需的運算元或原始指令OIN及複製指令DIN的執行結果的相同的暫存器檔案,因此偵測軟錯誤的過程可如下所述簡化。
原始暫存器檔案120可包含多個暫存器。多個暫存器可各自具有諸如32位元或64位元的相同大小。如上所述,藉由在指令管線110中處理原始指令OIN獲得的結果可儲存於原始暫存器檔案120的暫存器中。舉例而言,藉由在回寫單元WU中處理第一原始指令INS1獲得的結果可儲存於第n索引的暫存器Rn中。各暫存器可指示為索引R0至索引Rz。
暫時儲存用於複製指令DIN的運算元或處理複製指令DIN的結果的複製暫存器檔案130可具有以與原始暫存器檔案120的索引相同的方式設定的索引。如圖1中所示出,當原始暫存器檔案120的索引設定為R0至Rz時,複製暫存器檔案130的索引亦設定為R0至Rz。然而,在本揭露中,為了區分原始暫存器檔案120的索引與複製暫存器檔案130的索引,原始暫存器檔案120的索引指示為R0至Rz且複製暫存器檔案130的索引指示為R0'至Rz'。此外,複製暫存器檔案130中的暫存器的大小及數目可與原始暫存器檔案120中的暫存器的大小及數目相同。
藉由在指令管線110中處理複製指令DIN獲得的結果儲存於複製暫存器檔案130中的索引的暫存器中,其中所述索引與儲存藉由處理原始指令OIN獲得的結果的原始暫存器檔案120中的索引相同。如上所述,當藉由處理第一原始指令INS1獲得的結果儲存於原始暫存器檔案120中的第n索引的暫存器Rn中時,藉由處理對應於第一原始指令INS1的第一複製指令INS1'獲得的結果可儲存於複製暫存器檔案130中的第n索引的Rn'中。
由於藉由處理任意指令獲得的結果可用作另一指令的運算元,用於儲存用於處理原始指令OIN的運算元及用於處理複製指令DIN的運算元的暫存器的索引可相同。在以上實例中,原始指令OIN及複製指令DIN的運算元可全部儲存於第m索引的暫存器Rm及暫存器Rm'中。
比較單元140回應於控制信號XCON可將原始暫存器檔案120中的第n索引的暫存器Rn與複製暫存器檔案130中的第n索引的暫存器Rn'進行比較且輸出錯誤偵測信號XERR。舉例而言,當原始暫存器Rn與複製暫存器Rn'相同時,將錯誤偵測信號XERR輸出為邏輯低「L」以指示未偵測到軟錯誤。另一方面,當原始暫存器Rn與複製暫存器Rn'彼此不同時,將錯誤偵測信號XERR輸出為邏輯高「H」以指示偵測到軟錯誤。
如上所述,因為複製暫存器檔案130與原始暫存器檔案120分開包含,原始暫存器檔案120的結構與複製暫存器檔案130的結構相同,且針對原始指令OIN及複製指令DIN分配相同索引,故可簡化偵測可在執行原始指令OIN時出現的軟錯誤的過程。因此,可節省偵測軟錯誤所需的資源、功率以及時間。
圖6示出根據本揭露的實施例的處理器100。
參考圖6,根據本揭露的實施例的處理器100包含與在圖1中一樣的指令管線110、原始暫存器檔案120、複製暫存器檔案130以及比較單元140。此外,圖6中的處理器100可更包含程式計數器暫存器150、指令記憶體160以及複製控制單元170。
程式計數器暫存器150可儲存指定待執行的原始指令OIN的原始程式計數器OPC。可將指令記憶體160的位址中所儲存的原始指令OIN擷取至指令管線110,其中原始指令OIN對應於原始程式計數器OPC。在將原始指令OIN擷取至指令管線110之後,原始程式計數器OPC可具有已改變的值。舉例而言,在將原始指令OIN擷取至指令管線110之後,原始程式計數器OPC的值可自「0x0004」增加一至「0x0008」。
複製控制單元170可生成控制信號XCON,所述控制信號XCON控制複製指令DIN的生成及處理以偵測軟錯誤。舉例而言,複製控制單元170可識別自指令記憶體160擷取至指令管線110的原始指令OIN且控制對應複製指令DIN根據原始指令OIN的類型進行複製。
舉例而言,複製控制單元170可控制複製指令DIN與原始指令OIN相同地複製。
圖5示出根據本揭露的實施例的複製控制單元170的控制操作。
參考圖5及圖6,當處理器100為ARM處理器時,根據本揭露的實施例的複製控制單元170可控制將原始指令OIN「ADD R0,R1,R2」複製至複製指令DIN「ADD R0',R1',R2'」,其中原始指令OIN「ADD R0,R1,R2」獲取暫存器R1及暫存器R2的總和以用於原始暫存器檔案120的暫存器R0的儲存,且複製指令DIN「ADD R0',R1',R2'」獲取暫存器R1'及暫存器R2'的總和以用於複製暫存器檔案130的暫存器R0'的儲存。
返回參考圖6,複製控制單元170可控制將複製指令DIN複製至與原始指令OIN不同的類型。舉例而言,當處理器100為ARM處理器時且當擷取至指令管線110的原始指令OIN為「STR」(亦即,命令儲存在記憶體中的指令)時,複製控制單元170可控制將複製指令DIN複製至「LDR」(亦即,命令自記憶體至暫存器的載入的指令)。原始指令OIN為「STR」的實例將在下文更詳細地描述。
此外,複製控制單元170可控制圖3的指令管線110中的第一多工器MUX1及第二多工器MUX2以及原始暫存器檔案120及複製暫存器檔案130的更新,或可生成用於控制與比較單元140中待比較目標的比較操作的控制信號XCON。
圖7示出根據本揭露的實施例的複製原始指令的方法。
參考圖7,對應於原始程式計數器OPC的原始指令OIN可自指令記憶體160擷取至原始擷取單元OFU。對應於原始程式計數器OPC的原始指令OIN可作為複製指令DIN自指令記憶體160擷取至複製擷取單元DFU。如上所述,根據本揭露的實施例的處理器100可根據所需情況及環境使用各種方法複製原始指令OIN使得控制的靈活性可在偵測軟錯誤時改良。
如上文,描述複製原始暫存器檔案120以相對於根據本揭露的實施例的處理器100中的資料流偵測軟錯誤。在下文中,將描述相對於處理器100中的控制流偵測軟錯誤或使用執行階段中的閒置資源而非最終結果偵測軟錯誤。
圖8示出根據本揭露的實施例的用於藉由複製程式計數器偵測軟錯誤的處理器100。
參考圖8,根據本揭露的實施例的處理器100可包含與在圖6中一樣的指令管線110、原始暫存器檔案120、複製暫存器檔案130、比較單元140、程式計數器暫存器150、指令記憶體160以及複製控制單元170。此外,程式計數器暫存器150可包含原始程式計數器暫存器152及複製程式計數器暫存器154。
如上所述,原始程式計數器暫存器152可儲存對應於原始指令OIN的原始程式計數器OPC。複製程式計數器暫存器154可儲存對應於複製指令DIN的複製程式計數器DPC。
複製程式計數器DPC可藉由在原始指令OIN的第一指令週期中複製原始程式計數器OPC進行儲存。在第一指令週期之後,在由指令管線110處理複製指令DIN時,可改變複製程式計數器DPC。舉例而言,在指令管線110中擷取複製指令DIN之後,可改變複製程式計數器DPC。
此處,回應於控制信號XCON,比較單元140可將原始程式計數器OPC與複製程式計數器DPC進行比較且輸出錯誤偵測信號XERR。
當原始程式計數器OPC與複製程式計數器DPC相同時,比較單元140將錯誤偵測信號XERR輸出為邏輯低「L」以指示未偵測到軟錯誤。此外,當原始程式計數器OPC與複製程式計數器DPC彼此不同時,比較單元140將錯誤偵測信號XERR輸出為邏輯高「H」以指示偵測到軟錯誤。
可存在在執行原始指令OIN時發生軟錯誤的兩種情況使得原始程式計數器OPC與複製程式計數器DPC彼此不同。第一種情況為當原始程式計數器OPC自身存在錯誤,且藉此錯誤地執行指令記憶體160的另一位址中所儲存的指令,而非待執行的指令。特定言之,當程式計數器改變為對應於ARM處理器的諸如「JMP」(跳躍(jump))指令或「BEQ」(分支(branch))指令的指令的執行結果的任意位址值時,在程式計數器中發生錯誤的機率可能會較高。第二種情況為當原始程式計數器OPC正常時,但在執行對應於原始程式計數器OPC的原始指令OIN時存在錯誤。
圖9示出根據本揭露的實施例的指令管線110。
參考圖6及圖9,根據本揭露的實施例的指令管線110包含與在圖3中一樣的擷取單元FU、解碼單元DU、執行單元EU以及回寫單元WU,且可更包含記憶體存取單元MU,所述記憶體存取單元MU用於將資料傳輸至安置於處理器100外部的資料記憶體或自資料記憶體接收資料。舉例而言,當原始指令OIN為儲存指令「STR」時,原始暫存器檔案120的任意暫存器中所儲存的資料可經由記憶體存取單元MU傳輸至資料記憶體。另一方面,當原始指令OIN為載入指令「LDR」時,資料可經由記憶體存取單元MU自資料記憶體載入至原始暫存器檔案120的任意暫存器。
圖10及圖11示出根據本揭露的實施例的相對於儲存指令偵測軟錯誤的方法200。
首先,參考圖8及圖10,在根據儲存指令偵測軟錯誤時,與原始指令OIN的情況類似,替代儲存指令「STR」,根據本揭露的實施例的偵測軟錯誤的方法200包含在操作S210中執行原始指令OIN且在操作S220中將原始指令OIN的執行結果儲存於原始暫存器檔案120的第n索引的暫存器Rn中。
此外,當在操作S232中原始指令OIN為儲存指令「STR」時,在操作S234中複製控制單元170可將複製指令DIN設定為載入指令「LDR」且在操作S230中可將原始指令OIN複製至複製指令DIN。
當複製指令DIN為載入指令「LDR」時,在操作S240中執行複製指令DIN,且隨後在操作S255中可將複製指令DIN的執行結果儲存於原始暫存器檔案120的第n索引的暫存器Rn中而非複製暫存器檔案130的第n索引的暫存器Rn'中。
與其他指令類似,在操作S260中比較單元140可將原始暫存器檔案120的第n索引的暫存器Rn與複製暫存器檔案130的第n索引的暫存器Rn'進行比較且可輸出錯誤偵測信號XERR。
接著,參考圖10及圖11,當根據本揭露的實施例的處理器100為ARM處理器時,在操作S210中執行原始指令OIN「STR R0 → [R1]」時,存取原始暫存器檔案120的暫存器R0 且將暫存器R0儲存於資料記憶體的位址[R1]中 。位址[R1]為儲存於原始暫存器檔案120的暫存器R1中的值。此處,在操作S220中根據原始指令OIN「STR R0 → [R1]」的執行,保持原始暫存器檔案120中的暫存器R0的值。
接著,在操作S234中相對於原始指令OIN「STR R0 → [R1]」複製複製指令DIN「LDR R0 ← [R1']」。隨後,在操作S240中存取複製暫存器檔案130的暫存器R1' 且將資料記憶體的位址[R1']中所儲存的資料R0傳輸至處理器100 。在操作S255中經由圖7中的指令管線110的記憶體存取單元MU及回寫單元WU將傳輸至處理器100的資料R0儲存於原始暫存器檔案120的暫存器R0中
此處,將複製指令的執行結果儲存於複製暫存器檔案130的暫存器R0'中,其中複製指令對應於在執行原始指令OIN「STR R0 ← [R1]」之前執行的原始指令。可將與原始暫存器檔案120的暫存器R0相同的值儲存於複製暫存器檔案130的暫存器R0'中。
就此而言,在操作S260中比較單元140可將原始暫存器檔案120的暫存器R0(其為複製指令DIN「LDR R0 ← [R1']」的執行結果)與複製暫存器檔案130的暫存器R0'(其對應於原始指令OIN「STR R0 ← [R1]」的執行結果)進行比較,且可輸出錯誤偵測信號XERR。
在執行儲存指令「SRT」時發生軟錯誤的情況下,藉此1)當將錯誤資料儲存於正常資料記憶體區域中,及2)將正常資料儲存於錯誤位址中時,根據本揭露的實施例的處理器100及偵測軟錯誤的方法200可用於簡單且準確地偵測軟錯誤。假定在複製暫存器檔案130的暫存器R0'中不存在錯誤,則藉由比較單元140進行比較的原始暫存器檔案120的暫存器R0在情況1)中可為受損資料,且藉由比較單元140進行比較的原始暫存器檔案120的暫存器R0在情況2)中可為完全不同的資料。因此,複製暫存器檔案130的暫存器R0'與原始暫存器檔案120的暫存器R0在兩種情況下彼此不同,錯誤偵測信號XERR可自比較單元140輸出為邏輯高「H」。
根據上文描述的根據本揭露的實施例的處理器100及偵測軟錯誤的方法200,可簡單且準確地偵測到軟錯誤發生且藉此錯誤地執行儲存指令「SRT」的兩種情況。
圖12為示出根據本揭露的實施例的程式計數器的控制所應用的偵測軟錯誤的方法200的流程圖。
參考圖8及圖12,根據本揭露的實施例的偵測軟錯誤的方法200與在圖2中一樣包含:在操作S210中執行原始指令OIN;在操作S220中將原始指令OIN的執行結果儲存於原始暫存器檔案120的第n索引的暫存器Rn中;在操作S230中將原始指令OIN複製至複製指令DIN;在操作S240中執行複製指令DIN;在操作S250中將複製指令DIN的執行結果儲存於複製暫存器檔案130的第n索引的暫存器Rn'中;以及在操作S260中將原始暫存器檔案120的第n索引的暫存器Rn與複製暫存器檔案130的第n索引的暫存器Rn'進行比較。
此處,根據圖12的偵測軟錯誤的方法200,為了控制用於執行原始指令OIN及複製指令DIN的原始程式計數器OPC及複製程式計數器DPC,在操作S270-2中,原始程式計數器OPC在操作S210中執行原始指令OIN時可在兩個指令週期中改變且複製程式計數器DPC可保持。
舉例而言,在第一指令週期中,原始程式計數器OPC的值可自「0x0000」增加一至「0x0004」,且複製程式計數器DPC的值可保持在「0x0000」處。隨後,在第三指令週期中,原始程式計數器OPC的值可自「0x0004」增加一至「0x0008」,且複製程式計數器DPC的值可增加一至「0x0004」。為了參考,在第一指令週期中,當首先執行原始指令OIN時,亦即當原始程式計數器OPC指示作為指令記憶體160的第一位址的「0x0000」時,複製程式計數器DPC可複製原始程式計數器OPC且可具有「0x0000」的值。
此外,根據圖12的偵測軟錯誤的方法200,為了控制用於執行原始指令OIN及複製指令DIN的原始程式計數器OPC及複製程式計數器DPC,在操作S270-4中,原始程式計數器OPC在操作S240中執行複製指令DIN時可在兩個指令週期中保持且複製程式計數器DPC可改變。舉例而言,在第n指令週期中,複製程式計數器DPC的值可自「0x0000」增加一至「0x0004」,且原始程式計數器OPC的值可保持在「0x0000」處。隨後,在第n+2指令週期中,原始程式計數器OPC的值可自「0x0000」增加一至「0x0004」且複製程式計數器DPC的值可自「0x0004」增加一至「0x0008」。
在根據本揭露的實施例的指令管線110的結構中,針對程式計數器進行最佳化控制操作以依序執行原始指令OIN及複製指令DIN使得可最小化偵測軟錯誤所需的硬體資源、消耗功率以及執行時間的增加。
圖13為示出根據本揭露的實施例的錯誤偵測時間的控制所應用的偵測軟錯誤的方法的流程圖。
參考圖8及圖13,根據本揭露的實施例的偵測軟錯誤的方法200可包含在操作S262中,當原始指令OIN為儲存指令「STR」時,由比較單元140進行將原始暫存器檔案120的第n索引的暫存器Rn與複製暫存器檔案130的第n索引的暫存器Rn'進行比較以生成錯誤偵測信號XERR。在儲存指令「STR」的執行完成時,比較單元140可進行S262中的比較操作。可以如下方式識別命令執行完成的點:複製控制單元170自回寫單元WU接收關於指令的資訊,且接著在指令管線110的最後步驟處進行相關的控制操作。
此外,根據本揭露的實施例的偵測軟錯誤的方法200可包含在操作S264中在與在操作S262中將第n索引的暫存器Rn與暫存器Rn'進行比較的點不同的點處進行將原始程式計數器OPC與複製程式計數器DPC進行比較。
如上所述,交替執行原始指令OIN及複製指令DIN使得比較單元140可在每兩個指令週期中將暫存器值與程式計數器值進行比較以偵測軟錯誤。然而,原始指令OIN的執行結果暫時儲存於原始暫存器檔案120中且一個原始指令OIN或多個原始指令OIN的最後執行結果可為傳輸至安置於處理器100外部的資料記憶體的值或資料。在根據本揭露的實施例的處理器100及偵測軟錯誤的方法200中,針對指令的最後執行結果進行暫存器值的比較,且因此可節省偵測軟錯誤所需的功率及時間。
此外,在根據本揭露的實施例的處理器100及偵測軟錯誤的方法200中,除了比較最後執行結果之外,比較單元140在不進行暫存器值的比較以偵測軟錯誤的週期中將原始程式計數器OPC與複製程式計數器DPC進行比較,其中資源分配並不相對較大。因此,可改良偵測的準確度。如上所述,除程式計數器的軟錯誤之外,在執行指令時可經由將原始程式計數器OPC與複製程式計數器DPC進行比較而偵測其他軟錯誤。
圖14及圖15示出根據本揭露的實施例的相對於各特定指令自處理器100偵測軟錯誤的操作。
參考圖8、圖14以及圖15,第一原始指令INS1「ADD R0,R1,R2」、第二原始指令INS2「R1 = 0x0100」以及第三原始指令INS3「STR R0 → [R1]」可在根據本揭露的實施例的處理器100中依序執行。此處,可將第一原始指令INS1至第三原始指令INS3複製至待執行的第一複製指令INS1'至第三複製指令INS3'。亦即,可依序執行第一複製指令INS1'「ADD R0',R1',R2'」、第二複製指令INS2'「R1' = 0x0100」以及第三複製指令INS3'「LDR R0 ← [R1']」。
更特定言之,在第一指令週期中,可將第一原始指令INS1擷取至原始擷取單元OFU。因此,改變原始程式計數器OPC以指示下一位址「0x0004」且複製程式計數器DPC可保持「0x0000」,其為最初經複製的原始程式計數器OPC的值。
接著,在第二指令週期中,可分別將第二原始指令INS2及第一複製指令INS1'分別擷取至原始擷取單元OFU及複製擷取單元DFU。因此,原始程式計數器OPC可保持現有位址「0x0004」且複製程式計數器DPC可改變以指示下一位址「0x0004」。
除此之外,第一原始指令INS1可由解碼單元DU解碼,且藉此可存取原始暫存器檔案120的暫存器R1及暫存器R2。為了參考,圖15示出在第二指令週期中將第一複製指令INS1'擷取至複製擷取單元DFU;然而在第一指令週期中可將第一複製指令INS1'及第一原始指令INS1分別同時擷取至複製擷取單元DFU及原始擷取單元OFU。
在第三指令週期中,第二原始指令INS2可保存在原始擷取單元OFU中且可將第二複製指令INS2'擷取至複製擷取單元DFU。除此之外,第一複製指令INS1'可由解碼單元DU解碼且藉此可存取複製暫存器檔案130的暫存器R1'及暫存器R2'。經解碼的第一原始指令INS1可由執行單元EU執行。
在第四指令週期中,可將第三原始指令INS3擷取至原始擷取單元OFU且第二複製指令INS2'可保存至複製擷取單元DFU。除此之外,第二原始指令INS2可由解碼單元DU解碼且第一複製指令INS1'可由執行單元EU執行。不需要存取至資料記憶體的第一原始指令INS1可由記憶體存取單元MU保存。
在第五指令週期中,第三原始指令INS3保存在原始擷取單元OFU中且可將第三複製指令INS3'擷取至複製擷取單元DFU。除此之外,第二複製指令INS2'可由解碼單元DU解碼且第二原始指令INS2可由執行單元EU執行。不需要存取至資料記憶體的第一複製指令INS1'可由記憶體存取單元MU保存。完成第一原始指令INS1的執行,且因此暫存器R1及暫存器R2的總和可藉由回寫單元WU儲存於原始暫存器檔案120的暫存器R0中。
在第六指令週期中,第三複製指令INS3'可保存在複製擷取單元DFU中。除此之外,第三原始指令INS3可由解碼單元DU解碼且第二複製指令INS2'可由執行單元EU執行。不需要存取至資料記憶體的第二原始指令INS2可由記憶體存取單元MU保存。完成第一複製指令INS1'的執行,且因此暫存器R1'及暫存器R2'的總和可藉由回寫單元WU儲存於複製暫存器檔案130的暫存器R0'中。
在第七指令週期中,第三複製指令INS3'可由解碼單元DU解碼且第三原始指令INS3可由執行單元EU執行。除此之外,不需要存取至資料記憶體的第二複製指令INS2'可由記憶體存取單元MU保存。完成第二原始指令INS2的執行,且因此「0x0100」可藉由回寫單元WU儲存於原始暫存器檔案120的暫存器R1中。
在第七指令週期中,比較單元140可將在第五指令週期及第六指令週期中分別完成其各執行的第一原始指令INS1及第一複製指令INS1'的原始程式計數器OPC與複製程式計數器DPC進行比較,且因此可偵測軟錯誤。
在第八指令週期中,第三複製指令INS3'可由執行單元EU執行。除此之外,第三原始指令INS3可將資料傳輸至暫存器R1中所儲存的位址,其中所述資料儲存於原始暫存器檔案120的暫存器R0中且經由記憶體存取單元MU傳輸至資料記憶體。完成第二複製指令INS2'的執行,且因此「0x0100」可藉由回寫單元WU儲存於複製暫存器檔案130的暫存器R1'中。
在第九指令週期中,第三複製指令INS3'可經由記憶體存取單元MU自資料記憶體接收複製暫存器檔案130中的暫存器R1的位址中所儲存的資料。除此之外,完成第三原始指令INS3的執行,且因此原始暫存器檔案120中的暫存器R0的值可藉由回寫單元WU保持。
在第九指令週期中,比較單元140可將分別在第七指令週期及第八指令週期中分別完成其各執行的第二原始指令INS2及第二複製指令INS2'的原始程式計數器OPC與複製程式計數器DPC進行比較,且因此可偵測軟錯誤。
在第十指令週期中,完成第三複製指令INS3'的執行,且因此自資料記憶體接收的資料可藉由回寫單元WU載入至原始暫存器檔案120的暫存器R0。
在第十一指令週期中,比較單元140將原始暫存器檔案120的暫存器R0與複製暫存器檔案130的暫存器R0'進行比較,且因此可偵測軟錯誤。
圖16示出根據本揭露的實施例的處理器100。
參考圖1及圖16,根據本揭露的實施例的處理器100可包含至少兩個核心。至少兩個核心中的至少一者可包含與在第一核心CR1一樣的指令管線110、原始暫存器檔案120、原始程式計數器OPC、複製暫存器檔案130、複製程式計數器DPC以及比較單元140。指令管線110包含在第x指令週期中處理原始指令OIN及在第x+1指令週期中處理複製指令DIN的各個階段。原始暫存器檔案120包含各種暫存器且暫時儲存指令管線110相對於原始指令OIN的執行結果。原始程式計數器OPC在第x指令週期處改變且在第x+1指令週期處保持。複製暫存器檔案130包含與原始暫存器檔案120相同的數目個暫存器且暫時儲存指令管線110相對於複製指令DIN的執行結果。複製程式計數器DPC在第x+1指令週期處改變且在第x+2指令週期處保持。比較單元140將原始暫存器檔案120與複製暫存器檔案130中的相同索引的暫存器或原始程式計數器OPC與複製程式計數器DPC進行比較且輸出錯誤偵測信號XERR。
圖16未示出其間的連接,然而通過以上描述所屬領域中具有通常知識者將會清楚地理解。
根據本揭露的實施例,用於偵測軟錯誤的核心不單獨包含於處理器及偵測軟錯誤的方法中,且因此可節省資源。此外,用於原始指令的原始暫存器檔案及用於複製指令的複製暫存器檔案具有相同結構,且因此可降低偵測軟錯誤所需的過程的複雜度。
由於在領域中為傳統的,因此可就進行所描述的一或多個功能的區塊而言描述及示出實施例。本文中可稱為單元或模組或類似者的這些區塊藉由以下各者實體地實施,且可視情況由韌體及/或軟體驅動:諸如邏輯閘的類比電路及/或數位電路、積體電路、微處理器、微控制器、記憶體電路、被動電子組件、主動電子組件、光學組件、固線式電路以及類似者。電路可例如在一或多個半導體晶片中體現,或體現於諸如印刷電路板及類似者的基底支撐件上。構成區塊的電路可藉由專用硬體或藉由處理器(例如,一或多個程式化微處理器及相關聯的電路系統)或藉由專用硬體的組合來實施以進行區塊的一些功能,且由處理器實施以進行區塊的其他功能。在不脫離本揭露的範疇的情況下,實施例的各區塊可實體地分離成兩個或多於兩個互動區塊及離散區塊。同樣,在不脫離本揭露的範疇的情況下,實施例的區塊可實體地組合成更複雜的區塊。實施例的態樣可經由儲存於非暫時性儲存媒體內且藉由處理器執行的指令實現。
在下文中,儘管已詳細描述本揭露的代表性實施例,但所屬領域中具有通常知識者關於本揭露應理解,在不脫離本揭露的範疇的情況下能夠對上述實施例進行各種修改。舉例而言,根據本揭露的實施例的處理器100為ARM處理器;然而本揭露不限於此。因此,本揭露的範疇應不限於所描述的實施例,而是應不僅由下文所描述的申請專利範圍界定且亦由申請專利範圍及等效物界定。
100:處理器 110:指令管線 120:原始暫存器檔案 130:複製暫存器檔案 140:比較單元 150:程式計數器暫存器 152:原始程式計數器暫存器 154:複製程式計數器暫存器 160:指令記憶體 170:複製控制單元 200:方法 ALU:算術與邏輯單元 CR1:第一核心 DFU:複製擷取單元 DIN:複製指令 DPC:複製程式計數器 DU:解碼單元 EU:執行單元 FU:擷取單元 INS1:第一原始指令 INS1':第一複製指令 INS2:第二原始指令 INS2':第二複製指令 INS3:第三原始指令 INS3':第三複製指令 MU:記憶體存取單元 MUX1:第一多工器 MUX2:第二多工器 OFU:原始擷取單元 OIN:原始指令 OPC:原始程式計數器 R0:資料/暫存器 R0'、R1、R1'、R2、R2'、Rm、Rm'、Rn、Rn'、Rz、Rz':暫存器 [R1]、[R1']:位址 S210、S220、S230、S232、S234、S240、S250、S255、S260、S262、S264、S270-2、S270-4:操作 WU:回寫單元 XCON:控制信號 XERR:錯誤偵測信號
本揭露的上述及其他特徵及優點將藉由參考隨附圖式詳細地描述其例示性實施例而變得更加顯而易見,在隨附圖式中: 圖1示出根據本揭露的實施例的處理器。 圖2為示出根據本揭露的實施例的自處理器偵測軟錯誤的方法的流程圖。 圖3示出根據本揭露的實施例的指令管線。 圖4示出描述圖3的指令管線的操作的參考圖表。 圖5示出根據本揭露的實施例的複製控制單元的控制操作。 圖6示出根據本揭露的實施例的處理器。 圖7示出描述根據本揭露的實施例的複製原始指令的方法的參考方塊圖。 圖8示出根據本揭露的實施例的用於藉由複製程式計數器偵測軟錯誤的處理器。 圖9示出根據本揭露的實施例的指令管線。 圖10及圖11示出根據本揭露的實施例的描述相對於儲存指令偵測軟錯誤的方法的參考圖式。 圖12為示出根據本揭露的實施例的程式計數器的控制所應用的偵測軟錯誤的方法的流程圖。 圖13為示出根據本揭露的實施例的錯誤偵測時間的控制所應用的偵測軟錯誤的方法的流程圖。 圖14及圖15為描述根據本揭露的實施例的相對於各特定指令自處理器偵測軟錯誤的操作的參考圖式。 圖16示出根據本揭露的實施例的處理器。
100:處理器
110:指令管線
120:原始暫存器檔案
130:複製暫存器檔案
140:比較單元
DIN:複製指令
OIN:原始指令
R0、R0'、R1、R1'、Rm、Rm'、Rn、Rn'、Rz、Rz':暫存器
XERR:錯誤偵測信號

Claims (20)

  1. 一種處理器,包括: 指令管線,依序處理原始指令及自所述原始指令生成的複製指令; 原始暫存器檔案,將藉由在所述指令管線內處理所述原始指令獲得的原始結果儲存於所述原始暫存器檔案的暫存器的第n索引中,其中n為整數; 複製暫存器檔案,將藉由在所述指令管線內處理所述複製指令獲得的複製結果儲存於所述複製暫存器檔案的暫存器的第n索引中;以及 比較單元,回應於控制信號將所述原始暫存器檔案中的所述第n索引的所述暫存器的第一值與所述複製暫存器檔案中的第n索引的所述暫存器的第二值進行比較以輸出錯誤偵測信號。
  2. 如請求項1所述的處理器,其中所述原始暫存器檔案的索引及所述複製暫存器檔案的索引設定為彼此相同。
  3. 如請求項1所述的處理器,其中所述原始暫存器檔案中所包含的暫存器的大小及數目設定為與所述複製暫存器檔案中的暫存器的大小及數目相同。
  4. 如請求項1所述的處理器,其中所述指令管線包括: 擷取單元,擷取所述原始指令及所述複製指令; 解碼單元,依序解碼所述擷取單元的所述原始指令及所述複製指令; 執行單元,執行自所述解碼單元獲得的解碼結果;以及 回寫單元,將自所述執行單元獲得的執行結果寫入至所述原始暫存器檔案中的所述第n索引的一個暫存器及寫入至所述複製暫存器檔案所述第n索引的一個暫存器。
  5. 如請求項4所述的處理器,其中所述擷取單元包括: 原始擷取單元,自指令記憶體擷取對應於原始程式計數器的計數值的所述原始指令;以及 複製擷取單元,複製擷取至所述原始擷取單元的所述原始指令以儲存為所述複製指令。
  6. 如請求項4所述的處理器,其中所述擷取單元包括: 原始擷取單元,自指令記憶體擷取對應於原始程式計數器的計數值的所述原始指令;以及 複製擷取單元,自所述指令記憶體擷取對應於所述原始程式計數器的所述計數值的所述原始指令以儲存為所述複製指令。
  7. 如請求項4所述的處理器,其中所述解碼單元解碼所述原始指令以存取所述原始暫存器檔案中的第m索引的暫存器且解碼所述複製指令以存取所述複製暫存器檔案中的第m索引的暫存器。
  8. 如請求項1所述的處理器,更包括: 複製程式計數器,將原始程式計數器的對應於所述原始指令的計數值複製至所述複製程式計數器,且所述複製程式計數器在所述複製指令由所述指令管線處理時改變,其中 所述比較單元回應於所述控制信號將所述原始程式計數器的第一計數值與所述複製程式計數器的第一計數值進行比較以輸出所述錯誤偵測信號。
  9. 如請求項1所述的處理器,更包括複製控制單元,所述複製控制單元生成用於生成及處理所述複製指令及用於控制所述比較單元的比較操作的所述控制信號。
  10. 如請求項9所述的處理器,其中當所述原始指令為儲存指令時,所述複製控制單元生成對應於所述儲存指令的載入指令作為所述複製指令且將所述複製指令的執行結果儲存於所述原始暫存器檔案中的所述第n索引的所述暫存器中。
  11. 一種偵測軟錯誤的方法,包括: 經由指令管線執行原始指令; 將所述原始指令的執行結果儲存於原始暫存器檔案的第n索引的暫存器中; 複製所述原始指令作為複製指令; 在所述指令管線內執行所述複製指令; 將所述複製指令的執行結果儲存於複製暫存器檔案的第n索引的暫存器中;以及 將所述原始暫存器檔案的所述第n索引的所述暫存器的第一值與所述複製暫存器檔案的所述第n索引的所述暫存器的第二值進行比較。
  12. 如請求項11所述的偵測軟錯誤的方法,其中在執行所述原始指令時複製所述原始指令。
  13. 如請求項11所述的偵測軟錯誤的方法,其中所述複製所述原始指令作為所述複製指令包括自指令記憶體擷取對應於原始程式計數器的計數值的所述原始指令及將所述原始指令儲存為所述複製指令。
  14. 如請求項11所述的偵測軟錯誤的方法,其中所述複製所述原始指令作為所述複製指令包括: 在所述原始指令為儲存指令時,生成對應於所述儲存指令的載入指令作為所述複製指令;以及 將所述複製指令的執行結果儲存於所述原始暫存器檔案的所述第n索引的所述暫存器中,而非所述複製暫存器檔案的所述第n索引的所述暫存器中。
  15. 如請求項11所述的偵測軟錯誤的方法,其中: 所述執行所述原始指令包括解碼所述原始指令以存取所述原始暫存器檔案的第m索引的暫存器,以及 所述執行所述複製指令包括解碼所述複製指令以存取所述複製暫存器檔案的第m索引的暫存器。
  16. 如請求項11所述的偵測軟錯誤的方法,在所述原始指令為儲存指令時,進行將所述原始暫存器檔案及所述複製暫存器檔案的所述第n索引的所述暫存器的所述第一值與所述第二值進行比較。
  17. 如請求項11所述的偵測軟錯誤的方法,更包括: 在執行所述原始指令時,改變原始程式計數器的第一計數值,所述第一計數值對應於所述原始指令,且保持複製程式計數器的第二計數值,所述第二計數值對應於所述複製指令;以及 在執行所述複製指令時,改變所述複製程式計數器的所述第二計數值且保持所述原始程式計數器的所述第一計數值。
  18. 如請求項11所述的偵測軟錯誤的方法,更包括: 複製原始程式計數器的對應於所述原始指令的第一計數值作為複製程式計數器的第二計數值; 在執行所述複製指令時,改變所述複製程式計數器的所述第二計數值;以及 將所述原始程式計數器的第一計數值與所述複製程式計數器的所述第二計數值進行比較。
  19. 如請求項18所述的偵測軟錯誤的方法,其中在各不同指令週期中進行將所述原始暫存器檔案及所述複製暫存器檔案的所述第n索引的所述暫存器的所述第一值與所述第二值進行比較以及將所述原始程式計數器的所述第一計數值與所述複製程式計數器的所述第二計數值進行比較。
  20. 一種的處理器,包括至少兩個核心,其中所述至少兩個核心中的各者包括: 指令管線,包括在第x指令週期中處理原始指令且在第x+1指令週期中中處理複製指令的多個階段; 原始暫存器檔案,包括多個暫存器且暫時儲存所述指令管線相對於所述原始指令的執行結果; 原始程式計數器,在第x指令週期處改變且在第x+1指令週期處保持; 複製暫存器檔案,包括與所述原始暫存器檔案相同數目的暫存器且暫時儲存所述指令管線相對於所述複製指令的執行結果; 複製程式計數器,在所述第x+1指令週期處改變且在第x+2指令週期處保持;以及 比較單元,將所述原始暫存器檔案與所述複製暫存器檔案中的相同索引的所述暫存器或所述原始程式計數器與所述複製程式計數器的值進行比較且輸出錯誤偵測信號。
TW112134707A 2022-09-16 2023-09-12 處理器及自處理器偵測軟錯誤的方法 TW202418068A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2022-0117447 2022-09-16

Publications (1)

Publication Number Publication Date
TW202418068A true TW202418068A (zh) 2024-05-01

Family

ID=

Similar Documents

Publication Publication Date Title
CN111164578B (zh) 核内锁步模式的错误恢复
JP5129450B2 (ja) 情報処理装置
KR101546033B1 (ko) Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행
US7409589B2 (en) Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
JP5147564B2 (ja) レジスタ状態エラー回復および再開機構
JP3781419B2 (ja) パイプライン方式のプロセッサにおける例外処理
EP2159709A1 (en) Error correcting method and computing element
JP2009501367A (ja) ロックステップ式二重化モジュール冗長システムにおける訂正不能エラーレートの低減
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JP2005166057A (ja) 障害検出コンピュータシステム
TW201732589A (zh) 用於容錯及錯誤偵測之系統、方法和裝置
GB2525715A (en) Pipelined ECC-protected memory access
TWI242120B (en) Method and apparatus for providing error correction within a register file of a CPU
JP2009238056A (ja) マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法
CN115080315B (zh) 故障检测及处理方法、装置、处理器及电子设备
US6829700B2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
US10289332B2 (en) Apparatus and method for increasing resilience to faults
TW202418068A (zh) 處理器及自處理器偵測軟錯誤的方法
US8560924B2 (en) Register file soft error recovery
US20240095113A1 (en) Processor and method of detecting soft error from processor
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
JP3240660B2 (ja) データ処理装置
US8909988B2 (en) Recoverable parity and residue error
CN117112318A (zh) 基于risc-v架构的双核容错系统
KR20020050087A (ko) 계산기와 그 제어 방법