基于分離式日志的多核處理器瞬時(shí)故障恢復(fù)系統(tǒng)及其瞬時(shí)故障恢復(fù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]目前高效能可信計(jì)算機(jī)中重點(diǎn)發(fā)展的技術(shù)為系統(tǒng)容錯。故障恢復(fù)是消除故障恢復(fù)并使系統(tǒng)繼續(xù)運(yùn)行的重要環(huán)節(jié)。只有在故障恢復(fù)環(huán)節(jié)之后系統(tǒng)容錯的目的才能得以實(shí)現(xiàn)。同時(shí),高可用的多核處理器瞬時(shí)故障恢復(fù)機(jī)制,有利于拓寬多核處理器芯片在惡劣環(huán)境計(jì)算、工業(yè)控制、數(shù)字醫(yī)療、自動化智能儀器、移動計(jì)算等眾多高可靠性要求領(lǐng)域的應(yīng)用。
[0003]多核處理器硬件故障恢復(fù)是并行體系結(jié)構(gòu)、容錯計(jì)算、系統(tǒng)可靠性設(shè)計(jì)等領(lǐng)域的研宄熱點(diǎn)。但對于多核處理器非確定性事件的確定性故障恢復(fù),已提出的基于軟件和硬件恢復(fù)的技術(shù)方法性能和可靠性難以滿足實(shí)際需求,還不能真正有效解決多核處理器芯片的故障修復(fù)問題,缺少高可用性非確定性事件瞬時(shí)故障恢復(fù)的解決方案。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是為了解決多核處理器非確定性事件的確定性故障恢復(fù)缺少高可用性解決方案的問題,本發(fā)明提供一種基于分離式日志的多核處理器瞬時(shí)故障恢復(fù)系統(tǒng)及其瞬時(shí)故障恢復(fù)方法。
[0005]本發(fā)明的基于分離式日志的多核處理器瞬時(shí)故障恢復(fù)系統(tǒng),
[0006]所述系統(tǒng)包括分尚式日志記錄模塊、分尚式日志控制器模塊和恢復(fù)硬件模塊;在處理器的每個內(nèi)核中嵌入分離式日志記錄模塊和恢復(fù)硬件模塊,
[0007]所述分離式日志記錄模塊,用于記錄相應(yīng)內(nèi)核的非確定性事件信息,對內(nèi)存競爭日志將采用點(diǎn)到點(diǎn)的依賴關(guān)系分開記錄,在一致性協(xié)議的應(yīng)答方記錄依賴關(guān)系的先發(fā)生方,在請求方記錄依賴關(guān)系的后發(fā)生方,對外部中斷記錄中斷類型和中斷地址;
[0008]所述分離式日志控制器模塊,用于建立日志記錄空間與檢查點(diǎn)設(shè)置的映射關(guān)系;
[0009]所述恢復(fù)硬件模塊,用于結(jié)合分離式日志的卷回恢復(fù)技術(shù)和確定性重演技術(shù),完成瞬時(shí)故障的檢查點(diǎn)后的確定性恢復(fù)。
[0010]所述分離式日志記錄模塊包括循環(huán)發(fā)生序列先發(fā)生方寄存器PrecLIIC、間隔指令計(jì)數(shù)器IIC、循環(huán)發(fā)生序列后發(fā)生方寄存器Succ_IIC、溢出寄存器OVF、N個寫簽名WF和N個讀簽名RF ;所述N為處理器的內(nèi)核數(shù);
[0011]循環(huán)發(fā)生序列先發(fā)生方寄存器PrecLIIC,用于標(biāo)記非確定性事件為先發(fā)生方;
[0012]間隔指令計(jì)數(shù)器IIC,用于記錄相鄰非確定性記錄事件的間隔指令計(jì)數(shù)值;
[0013]循環(huán)發(fā)生序列后發(fā)生方寄存器SuccJIC,用于標(biāo)記非確定性事件為后發(fā)生方;
[0014]溢出寄存器OVF,用于標(biāo)記決定選用記錄事件的寄存器大小和非確定性事件類型,首位為O表示內(nèi)存競爭,首位為I表示中斷,第二位為O表示采用2B寄存器存儲,第二位為I表示采用4B寄存器存儲;
[0015]N個寫簽名WF,用于N個內(nèi)核內(nèi)存競爭中記錄寫沖突地址集合,N個內(nèi)核中斷中記錄中斷跳轉(zhuǎn)地址;
[0016]N個讀簽名RF,用于N個內(nèi)核內(nèi)存競爭中記錄讀沖突地址集合,N個內(nèi)核中斷中記錄中斷現(xiàn)場地址。
[0017]分離式日志控制器包括N個讀簽名地址寄存器和N個寫簽名地址寄存器;
[0018]N個讀簽名地址寄存器,用于映射N個讀簽名RF的終止地址;
[0019]N個寫簽名地址寄存器,用于映射N個寫簽名WF的終止地址。
[0020]所述恢復(fù)硬件模塊包括N個CP寄存器、N個CS寄存器和一個IIC寄存器;
[0021]N個CP寄存器,用于記錄發(fā)送給其它內(nèi)核某一線程的喚醒消息的計(jì)數(shù)值;
[0022]N個CS寄存器,用于記錄因?yàn)槠渌鼉?nèi)核某一線程而阻塞的指令的計(jì)數(shù)值;
[0023]一個IIC寄存器,用于記錄相鄰非確定性記錄事件的間隔指令計(jì)數(shù)值。
[0024]基于分離式日志的多核處理器瞬時(shí)故障恢復(fù)系統(tǒng)的瞬時(shí)故障恢復(fù)方法,所述方法包括如下步驟:
[0025]所述方法包括如下步驟:
[0026]步驟1:當(dāng)硬件檢查點(diǎn)開始存儲時(shí),采用分離式日志記錄模塊、讀簽名地址寄存器和寫簽名地址寄存器記錄非確定事件信息;
[0027]步驟2:當(dāng)從硬件檢查點(diǎn)模塊進(jìn)行恢復(fù)時(shí),內(nèi)核讀取讀簽名地址寄存器和寫簽名地址寄存器記錄的信息,若將要讀取的信息超過地址則終止,否則執(zhí)行步驟3 ;
[0028]步驟3:從內(nèi)存競爭日志中讀取16位信息,若溢出寄存器OVF有標(biāo)記則需要讀出32位信息;在溢出寄存器OVF讀出的信息中依據(jù)首位判斷是競爭沖突或外部中斷,若是則競爭沖突,執(zhí)行步驟4 ;若是外部中斷,執(zhí)行步驟6 ;
[0029]步驟4:讀取溢出寄存器OVF第二位信息,依據(jù)type類型判斷是先發(fā)生方還是后發(fā)生方;如果是先發(fā)生方,內(nèi)核的CP寄存器的計(jì)數(shù)值累加,并在執(zhí)行完指令后把CP寄存器的計(jì)數(shù)值作為喚醒消息發(fā)送給其余內(nèi)核;如果是后發(fā)生方,內(nèi)核的CS寄存器的計(jì)數(shù)值累加,等到其余內(nèi)核發(fā)送的喚醒消息與CS寄存器的計(jì)數(shù)值相同時(shí)再執(zhí)行此指令;
[0030]步驟5:指令執(zhí)行完成后間隔指令計(jì)數(shù)器IIC的值累加,當(dāng)發(fā)送完喚醒消息后或者當(dāng)接受到喚醒消息并執(zhí)行完與之對應(yīng)的指令后,內(nèi)核重復(fù)執(zhí)行步驟2 ;
[0031]步驟6:讀取讀簽名寄存器獲取中斷開始地址,再次調(diào)用中斷的外部設(shè)備,從寫簽名寄存器地址開始繼續(xù)執(zhí)行;內(nèi)核重復(fù)執(zhí)行步驟2。
[0032]所述步驟I的過程包括如下步驟:
[0033]步驟一:當(dāng)硬件檢查點(diǎn)模塊開始存儲時(shí),分離式日志控制模塊的讀簽名寄存器和寫簽名寄存器均清零;分離式日志記錄模塊開始記錄非確定事件信息;當(dāng)檢測到?jīng)_突為內(nèi)存競爭時(shí),執(zhí)行步驟二 ;當(dāng)檢測到?jīng)_突為外部中斷時(shí),執(zhí)行步驟五;
[0034]步驟二:間隔指令計(jì)數(shù)器IIC加1,當(dāng)所述IIC的值不小于214時(shí),選用4B寄存器存儲并且在溢出寄存器OVF做標(biāo)記,否則選用2B寄存器存儲;溢出寄存器OVF存儲首位標(biāo)記為0,第二位作為競爭沖突的類型標(biāo)記所述類型包括先發(fā)生方或后發(fā)生方,轉(zhuǎn)入步驟三;
[0035]步驟三:將存在內(nèi)存競爭的內(nèi)存塊對應(yīng)的地址添加到所有的讀簽名寄存器或?qū)懞灻拇嫫?,根?jù)競爭沖突的的類型決定在循環(huán)發(fā)生序列先發(fā)生方寄存器PrecLIIC和循環(huán)發(fā)生序列后發(fā)生方寄存器SuccJIC做不同的標(biāo)記,轉(zhuǎn)入步驟四;
[0036]步驟四:更新分離式日志控制模塊讀簽名寄存器或?qū)懞灻拇嫫饔涗浀腎IC終止地址,返回步驟一;
[0037]步驟五:間隔指令計(jì)數(shù)器IIC加1,當(dāng)所述IIC的值不小于214時(shí),選用4B寄存器存儲并且在溢出寄存器OVF做標(biāo)記,否則選用2B寄存器存儲溢出寄存器OVF存儲首位標(biāo)記為I,轉(zhuǎn)入步驟六;
[0038]步驟六:讀簽名寄存器保存外部中斷的地址,寫簽名寄存器保存跳轉(zhuǎn)的地址,轉(zhuǎn)入步驟七;
[0039]步驟七:更新分離式日志控制模塊讀簽名寄存器和寫簽名寄存器記錄的終止地址,返回步驟一。
[0040]本發(fā)明的有益效果在于,實(shí)現(xiàn)分離式日志記錄機(jī)制,降低非確定性事件記錄開銷,提高并發(fā)恢復(fù)速度,更為準(zhǔn)確的確定性恢復(fù)瞬時(shí)故障發(fā)生前的執(zhí)行過程,提高了高可用性。
【附圖說明】
[0041]圖1為【具體實(shí)施方式】一所述的基于分離式日志的多核處理器瞬時(shí)故障恢復(fù)系統(tǒng)的原理不意圖;
[0042]圖2為【具體實(shí)施方式】二所述的分離式日志記錄模塊的原理示意圖;
[0043]圖3為【具體實(shí)施方式】四所述的分離式日志控制器模塊。
[0044]圖4為【具體實(shí)施方式】三所述的恢復(fù)硬件模塊的原理示意圖;
[0045]圖5為【具體實(shí)施方式】六中,分離式日志記錄模塊內(nèi)存競爭記錄機(jī)制