一種基于主動鏈接備份數(shù)據(jù)的處理器容錯結(jié)構(gòu)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于微處理器可靠性領(lǐng)域,涉及一種體系結(jié)構(gòu)級的容錯結(jié)構(gòu)及方法,具體涉及一種基于主動鏈接備份數(shù)據(jù)的處理器容錯結(jié)構(gòu)及方法。
【背景技術(shù)】
[0002]寄存器文件作為高速緩存和處理器功能部件之間的數(shù)據(jù)暫存結(jié)點,具有數(shù)據(jù)保存時間長和被訪問的頻率高兩個顯著特點,上述特點不但增加了寄存器文件內(nèi)部數(shù)據(jù)的單粒子翻轉(zhuǎn)概率,而且加快了錯誤數(shù)據(jù)在處理器內(nèi)的傳播,從而極易導致系統(tǒng)任務的失敗,因此寄存器文件是處理器內(nèi)部對單粒子效應最敏感的存儲結(jié)構(gòu)之一。
[0003]為了提高寄存器文件中數(shù)據(jù)的可靠性,目前的主要方案包括:(I)基于全定制的方法設(shè)計抗輻照的寄存器文件,具體可參考文獻《一種10讀6寫寄存器文件的抗輻射加固設(shè)計》和《32X32位三端口寄存器堆的加固設(shè)計》等;(2)對寄存器文件中的數(shù)據(jù)采用EDAC編碼,具體可參考文獻《一種針對SEU的同步糾錯流水線設(shè)計》、《A radiat1n hardened bydesign register file with lightweight error detect1n and correct1n》及專利號為ZL200510043107.5的專利《微處理器的整數(shù)單元中五級容錯流水結(jié)構(gòu)的實現(xiàn)方法》等;
[3]利用空閑資源實現(xiàn)敏感數(shù)據(jù)的備份,該方案屬于近年的研究熱點,具體可參考文獻《Using register lifetime predict1ns to protect register files against softerrorsK((Increasing register file immunity to transient errors〉〉、〈〈An efficienttechnique to tolerate MBU faults in register file of embedded processors》等。
[0004]方案(I)的開發(fā)過程需要建模提參和優(yōu)化迭代,周期較長,而且抗輻照結(jié)構(gòu)不可避免的引入額外的功耗和訪問延時;一旦寄存器文件中的錯誤累計超過EDAC的糾檢錯能力,基于方案(2)的保護機制則失去作用;而方案(3)致力于開發(fā)寄存器文件內(nèi)部的空閑存儲資源,利用空閑資源對敏感數(shù)據(jù)進行備份,然而開發(fā)、利用空閑資源的代價相對較大,通常導致處理器性能降低、功耗增加等。
[0005]方案(1)、(2)和(3)均未考慮不同的寄存器文件單元中的數(shù)據(jù)相同時的情況,即未考慮寄存器文件中的數(shù)據(jù)存在冗余備份時的情況。
【發(fā)明內(nèi)容】
[0006]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種基于主動鏈接備份數(shù)據(jù)的處理器容錯結(jié)構(gòu)及方法。當處理器內(nèi)部檢測到ALU的輸入源操作數(shù)和輸出目標操作數(shù)一致且兩者在寄存器文件中的存儲地址不同時,則在兩者之間建立鏈接,這種鏈接使兩者互為備份,當其中任意一份數(shù)據(jù)出現(xiàn)異常或者錯誤時,使用另一份數(shù)據(jù)完成后續(xù)的處理器操作。
[0007]本發(fā)明是通過以下技術(shù)方案來實現(xiàn):
[0008]—種基于主動鏈接備份數(shù)據(jù)的處理器容錯結(jié)構(gòu),包括五級流水結(jié)構(gòu)、流水控制模塊、校驗碼編碼模塊、PC寄存器及增強型寄存器文件REF;
[0009]五級流水結(jié)構(gòu)包括取指模塊IF、譯碼模塊ID、執(zhí)行模塊EX、存儲訪問模塊MA、自適應回寫模塊AWB及四組級間寄存器;五級流水結(jié)構(gòu)中的五個模塊通過級間寄存器ro、級間寄存器DE、級間寄存器EM和級間寄存器Mff依次相連,其中取指模塊IF位于五級流水結(jié)構(gòu)首位,自適應回寫模塊AWB在末尾;
[0010]自適應回寫模塊AWB的輸出副本查詢控制信號連接至譯碼模塊ID,用于實現(xiàn)異常情況下源操作數(shù)的副本查詢;自適應回寫模塊AWB的輸出連接至PC寄存器的輸入,用于實現(xiàn)處理器異常模式下指令PC的寫操作;PC寄存器的輸出指令PC連接至取指模塊IF; PC寄存器的輸出和副本查詢控制信號共同實現(xiàn)處理器對冗余備份數(shù)據(jù)的查詢、讀取及使用;
[0011]流水控制模塊與級間寄存器ro、DE、EM和麗的使能端相連,用于根據(jù)處理器狀態(tài)使能或禁止級間寄存器的采樣;
[0012]校驗碼編碼模塊根據(jù)糾檢錯編碼規(guī)則,對輸入數(shù)據(jù)進行編碼,輸出為輸入數(shù)據(jù)及其校驗碼;校驗碼編碼模塊的輸入來自自適應回寫模塊AWB,輸出連接至增強型寄存器文件REF的寫端口;
[0013]增強型寄存器文件ERF具有四寫五讀共九個端口,每個端口均包含實現(xiàn)讀寫必須的控制信號;所有的讀端口均與譯碼模塊ID連接;
[0014]譯碼模塊ID首先檢測其輸入副本查詢控制信號中的信號查詢標志位是否有效;譯碼模塊ID將五個讀端口的反饋信息,副本查詢控制信號中的信息及其它信息向級間寄存器DE傳遞;所述五個讀端口的反饋信息包括第一、第二源操作數(shù)及校驗碼SPl、SP2,第一、第二源操作數(shù)副本信息SC1、SC2和目標操作數(shù)副本信息DC;
[0015]級間寄存器DE在流水控制模塊控制下,將上述譯碼模塊ID的輸出寄存后,輸出至執(zhí)txt旲塊EX;
[0016]執(zhí)行模塊EX包括具有檢測和比較能力的增強型ALU,根據(jù)輸入的第一、第二源操作數(shù)及校驗碼SP1、SP2對源操作數(shù)的正確性進行校驗;同時根據(jù)第一、第二源操作數(shù)進行算術(shù)或邏輯運算得到作為運算結(jié)果的目標操作數(shù),最終比較第一、第二源操作數(shù)和目標操作數(shù)是否相等,當數(shù)據(jù)相等且存儲地址不同時,則輸出支持備份的比較結(jié)果,否則輸出不支持備份的比較結(jié)果;執(zhí)行模塊EX將第一、第二源操作數(shù)的兩個比較結(jié)果CRA和CRB、目標操作數(shù)及其它未經(jīng)處理的輸入進一步輸出至級間寄存器EM;
[0017]級間寄存器EM在流水控制模塊控制下,將上述執(zhí)行模塊EX的輸出寄存后,輸出至存儲訪問模塊MA;
[0018]存儲訪問模塊MA,完成訪問存存儲器的操作,并向級間寄存器MW進一步傳遞該模塊的輸入;
[0019]級間寄存器MW在流水控制模塊控制下,將上述存儲訪問模塊MA的輸出寄存后,輸出至自適應回寫模塊AWB;
[0020]自適應回寫模塊AWB完成處理器內(nèi)部的寫操作,當源操作數(shù)不正確時,將目前指令的PC寫入PC寄存器,同時對副本查詢控制信號進行設(shè)置;當無異常存在時,完成增強型寄存器文件ERF的寫操作。
[0021 ]優(yōu)選的,增強型寄存器文件ERF,包括數(shù)據(jù)寄存器文件和控制寄存器文件,兩者存儲單元的個數(shù)相同且一一對應,但是位寬不同;數(shù)據(jù)寄存器文件存儲指令的操作數(shù)及其校驗碼,以及增強型寄存器文件ERF的其中三個端口由數(shù)據(jù)寄存器文件單獨使用;控制寄存器文件存儲備份數(shù)據(jù)的鏈接信息包括副本地址和標志位,副本標志位指示當前訪問的操作數(shù)是否存在備份數(shù)據(jù),副本地址指示備份數(shù)據(jù)在數(shù)據(jù)寄存器文件的存儲地址;增強型寄存器文件ERF的其余六個端口由控制寄存器文件單獨使用。
[0022]進一步,數(shù)據(jù)寄存器文件存儲指令的操作數(shù)包括計算所需的源操作數(shù)和計算完成后的目標操作數(shù)。
[0023]進一步,增強型寄存器文件ERF的其中三個端口為目標操作數(shù)數(shù)據(jù)寫端口WD、第一源操作數(shù)數(shù)據(jù)讀端口 RSl和第二源操作數(shù)數(shù)據(jù)讀端口 RS2;增強型寄存器文件ERF的其余六個端口為第一源操作數(shù)控制信息讀端口RCS1、第二源操作數(shù)控制信息讀端口RCS2、目標操作數(shù)控制信息讀端口RCD、目標操作數(shù)控制信息寫端口WCD、第一源操作數(shù)控制信息寫端口WCSl及第二源操作數(shù)控制信息寫端口 WCS2。
[0024]優(yōu)選的,執(zhí)行模塊EX,包括第一源操作數(shù)校驗模塊、第二源操作數(shù)校驗模塊、ALU、第一比較器和第二比較器,第一源操作數(shù)校驗模塊對輸入的第一源操作數(shù)及其校驗碼進行校驗,并將校驗結(jié)果連接至第一比較器;第二源操作數(shù)校驗模塊對輸入的第二源操作數(shù)及其校驗碼進行校驗,并將校驗結(jié)果連接至第二比較器;ALU對輸入的第一源操作數(shù)和第二源操作數(shù)進行算術(shù)或邏輯運算,并將輸出目標操作數(shù)連接至第一、二比較器和級間寄存器EM;第一、二比較器的輸入還包括第一、二源操作數(shù),兩個比較器根據(jù)校驗結(jié)果對第一、二源操作數(shù)和目標操作數(shù)的相等性做出判斷,若校驗結(jié)果異常,則不進行比較,直接通過CRA和CRB輸出校驗異常,若校驗結(jié)果正常,則比較第一、