【摘 要】在計(jì)算機(jī)技術(shù)領(lǐng)域,控制流檢測技術(shù)是為了防止由瞬時(shí)故障所造成的程序錯(cuò)誤,及時(shí)發(fā)現(xiàn)計(jì)算機(jī)語言程序在運(yùn)行過程中的不良狀況,其恢復(fù)方法能夠?qū)⑦\(yùn)行錯(cuò)誤檢測出來并做以糾正。但控制流檢測技術(shù)在實(shí)際執(zhí)行過程中,也存在檢測混淆等失誤情況,該技術(shù)也經(jīng)歷了多次改良和升級,修正了程序自身的漏洞。本文針對軟硬件結(jié)合的控制流檢測技術(shù)展開論述,剖析這種技術(shù)在實(shí)踐過程中的優(yōu)勢所在,以及程序恢復(fù)方法的運(yùn)行機(jī)理。
【關(guān)鍵詞】軟硬件結(jié)合 控制流檢測方法 恢復(fù)方法
前言:控制流檢測能夠提升計(jì)算機(jī)微處理器的功能,對于程序運(yùn)行過程中的容錯(cuò)機(jī)能有著直接影響。在傳統(tǒng)的控制流檢測環(huán)節(jié)中,應(yīng)用固有技術(shù)進(jìn)行控制流檢測使程序運(yùn)行的成本加大?;诖耍瑧?yīng)設(shè)計(jì)出一種軟硬件兼顧的控制流檢測模式,并且伴以相應(yīng)的恢復(fù)方法。該模式較以往技術(shù)更為自動(dòng)化,不僅能夠通過編譯自動(dòng)嵌入關(guān)鍵數(shù)據(jù),而且能夠自動(dòng)執(zhí)行檢測職能,甚至無需繁雜處理,就可以順利恢復(fù)正常的控制流,使程序快速修復(fù)。
一、控制流檢測方法概述
控制流檢測方法可以將計(jì)算機(jī)程序的錯(cuò)誤執(zhí)行通過有效的手段甄別出來。隨著技術(shù)水平的不斷提升,目前的控制流檢測方法是基于計(jì)算機(jī)軟硬件結(jié)合的處理方式,以及應(yīng)用純軟件的控制流檢測方法。經(jīng)實(shí)踐表明,前者的處理模式更為穩(wěn)定,并且能夠?qū)⒄_的恢復(fù)方法自動(dòng)執(zhí)行下去,從而令控制流檢測系統(tǒng)更加完備。
二、控制流檢測技術(shù)的研究狀況
最初,控制流檢測技術(shù)僅使用計(jì)算機(jī)硬件設(shè)備進(jìn)行維護(hù),即看門狗模塊,但該方法的應(yīng)用領(lǐng)域較為狹窄,不能適用于所有的控制流檢測,這就催生了新方法的顯現(xiàn)。在之前的一段時(shí)期內(nèi),控制流檢測采用純軟件的技術(shù)方法,該方法也能夠合理的執(zhí)行檢測,并且能夠?qū)⒈O(jiān)測數(shù)據(jù)進(jìn)行現(xiàn)場保存和恢復(fù)。又經(jīng)過該系統(tǒng)的升級,一種軟硬結(jié)合的控制流檢測方法在實(shí)踐中嶄露頭角,得到了相關(guān)研究人員的一致認(rèn)可?;?051體系的結(jié)構(gòu)問世后,較有成效的改善了系統(tǒng)的代碼量與性能,改善了程序控制流的檢測與執(zhí)行效率[1]。即便當(dāng)處理器出現(xiàn)錯(cuò)誤后,也能夠及時(shí)會(huì)退到上一現(xiàn)場的保存點(diǎn),成功完成恢復(fù)過程。
三、一種軟硬件結(jié)合的控制流檢測及自動(dòng)修復(fù)錯(cuò)誤機(jī)理
(一)軟硬結(jié)合控制檢測方法的演化
從上個(gè)世紀(jì)末開始,根據(jù)當(dāng)時(shí)計(jì)算機(jī)主流處理器的研發(fā)水平,科研專家就提出了以硬件為主兼顧軟件運(yùn)行的程序控制流檢測方法,該技術(shù)一經(jīng)推出,就通過細(xì)致的配置發(fā)展成為現(xiàn)實(shí)的技術(shù)應(yīng)用模型。隨著處理器及相關(guān)計(jì)算機(jī)硬件的升級,軟硬結(jié)合控制檢測方法浮出水面,且比以往的性能更佳。
(二)一種軟硬件結(jié)合控制流檢測的實(shí)現(xiàn)過程
首先,當(dāng)程序運(yùn)行之初,處理器接到指令后,程序迅速開始執(zhí)行,在此時(shí),該種軟硬件結(jié)合的控制流檢測技術(shù)從被檢測電路中得到信號源,且根據(jù)信號的指令進(jìn)行自動(dòng)的信息數(shù)據(jù)分析;然后,計(jì)算機(jī)中心處理器根據(jù)第一步驟的處理結(jié)果來推算下一步驟的執(zhí)行地址,從而選擇按照控制流檢測所分析完成的結(jié)果繼續(xù)執(zhí)行下去;最后,當(dāng)經(jīng)過檢測后的信息數(shù)據(jù)沒有執(zhí)行,則通過處理器分支檢測的過程被重新進(jìn)行檢測或自動(dòng)恢復(fù),直至通過分支檢測電路的控制流檢測,從而順利完成該種軟硬件結(jié)合的控制流檢測方法[2]。
(三)軟硬件結(jié)合控制流檢測方法的優(yōu)勢
在傳統(tǒng)控制流檢測的處理框架中,基于源位置簽名的模式通過檢測只要能夠通過總線就能完成。但隨著技術(shù)的革新,電路技術(shù)的不斷完善,很多細(xì)節(jié)的處理更為精準(zhǔn),計(jì)算機(jī)芯片內(nèi)開始采用新型緩存技術(shù),以便于使程序運(yùn)行更為平穩(wěn)。軟硬件結(jié)合的控制流檢測技術(shù)比硬件為主的并行檢測技術(shù)更為先進(jìn),雖然在模擬設(shè)計(jì)的過程中也曾出現(xiàn)過諸多問題,但經(jīng)過系統(tǒng)的改進(jìn)與磨合,該種方法能夠?qū)崿F(xiàn)控制流檢測與恢復(fù),辨認(rèn)系統(tǒng)存儲(chǔ)的空間,改變程序編碼的排列順序[3]。發(fā)展至今,高性能微處理器中應(yīng)用了大量的寄存器文件與數(shù)據(jù)RAM,如果在執(zhí)行編碼時(shí),僅寫入緩沖數(shù)據(jù),將會(huì)大大提升控制流檢測的效率,從而縮減程序恢復(fù)的時(shí)間,增強(qiáng)系統(tǒng)的整體效能。
(四)系統(tǒng)驗(yàn)證過程中的關(guān)鍵環(huán)節(jié)與恢復(fù)方法
通過對軟硬件控制流檢測方法的實(shí)踐操作與分析而知,軟硬件結(jié)合的控制流檢測技術(shù)與以硬件為主的檢測方法相對,不僅可以降低成本,還可以使系統(tǒng)快速復(fù)位,順利執(zhí)行正常程序。這依賴于該系統(tǒng)的幾個(gè)關(guān)鍵環(huán)節(jié)的有序執(zhí)行[4]。首先是硬件現(xiàn)場的緩存過程要及時(shí),無論以硬件為主還是以純軟件實(shí)現(xiàn)控制流檢測過程,處理器的緩存執(zhí)行一定要及時(shí)有效,特別是多次進(jìn)行錯(cuò)誤簽名比對時(shí),考驗(yàn)的就是數(shù)據(jù)處理的執(zhí)行速度;另外,還要注意檢測到錯(cuò)誤后的直接復(fù)位系統(tǒng)的能效,在以往,這是一個(gè)較大的缺陷,然而,軟硬件結(jié)合的控制流檢測系統(tǒng)的出現(xiàn),直接填補(bǔ)了傳統(tǒng)模式的漏洞,在發(fā)現(xiàn)程序錯(cuò)誤后,能在第一時(shí)間恢復(fù)為正確控制流狀態(tài),這是該方法的又一重要的關(guān)鍵點(diǎn)[5]。
四、結(jié)束語
通過對計(jì)算機(jī)匯編語言程序的細(xì)致研究,提出一種軟硬件結(jié)合的控制流檢測技術(shù),它不僅能夠避免傳統(tǒng)控制流檢測過程的缺點(diǎn),還能夠精準(zhǔn)的進(jìn)行實(shí)時(shí)檢測,并且對錯(cuò)誤程序進(jìn)行及時(shí)糾正,恢復(fù)過程極為迅速、準(zhǔn)確。該技術(shù)使得傳統(tǒng)控制流檢測的成本有所降低,使用價(jià)值較為突出。軟硬件結(jié)合的控制流檢測方法及智能化恢復(fù)模式的研究成果,對于該領(lǐng)域的進(jìn)一步拓展具有積極的推動(dòng)作用。
參考文獻(xiàn):
[1]龔銳,陳微,劉芳,戴葵,王志英.FT51:一種容軟錯(cuò)誤高可靠微控制器[J].計(jì)算機(jī)學(xué)報(bào),2010,11(06):141-142.
[2]龔銳,陳微,劉芳,戴葵,王志英.一種軟硬件結(jié)合的控制流檢測與恢復(fù)方法[J].計(jì)算機(jī)研究與發(fā)展,2010,2(04):151-153.
[3]吳艷霞,顧國昌,戴葵,劉海波,沈晶.匯編級軟硬結(jié)合的控制流檢測方法[J].計(jì)算機(jī)研究與發(fā)展,2011,10(20):172-175.
[4]唐柳,黃樟欽,侯義斌,方鳳才,張會(huì)兵.利用冗余核的MPSoC故障檢測方法[J].計(jì)算機(jī)應(yīng)用,2014,1(02):121-124.
[5]吳艷霞,顧國昌,付巖,程立新.并發(fā)控制流檢測技術(shù)綜述[J].計(jì)算機(jī)科學(xué),2010,10(05):142-144.