本發(fā)明涉及一種sparc架構(gòu)空間處理器中子效應(yīng)試驗(yàn)測(cè)試系統(tǒng),屬于微處理器中子效應(yīng)試驗(yàn)領(lǐng)域。
背景技術(shù):
單粒子效應(yīng)是指單個(gè)高能粒子作用在半導(dǎo)體器件上引發(fā)的翻轉(zhuǎn)、鎖定、燒毀等現(xiàn)象。在航天領(lǐng)域誘發(fā)單粒子效應(yīng)主要為質(zhì)子和重粒子,而在航空領(lǐng)域誘發(fā)單粒子效應(yīng)的高能粒子為中子,由于中子不帶電荷,所以其穿透能力很強(qiáng),金屬材料對(duì)其幾乎沒(méi)有任何阻攔作用,中子會(huì)直接穿透機(jī)艙打在各種電子設(shè)備的中央控制器或是關(guān)鍵數(shù)據(jù)存儲(chǔ)器上,產(chǎn)生中子單粒子效應(yīng),從而引發(fā)軟硬件錯(cuò)誤,甚至導(dǎo)致集成電路閂鎖現(xiàn)象的產(chǎn)生,最后引起飛行控制系統(tǒng)死機(jī)、輸出錯(cuò)誤控制指令,這些都會(huì)嚴(yán)重影響了飛行器的安全性與可靠性。
空間處理器是基于sparc體系結(jié)構(gòu)的32位risc嵌入式處理器,用于嵌入式實(shí)時(shí)計(jì)算機(jī)系統(tǒng),處理器內(nèi)部包含整數(shù)處理單元,浮點(diǎn)處理單元,獨(dú)立的指令和數(shù)據(jù)cache,硬件乘法器和除法器,中斷控制器,帶有跟蹤緩沖器的硬件調(diào)試單元,定時(shí)器,通用i/o接口,看門狗,能夠支持prom、sram、sdram存儲(chǔ)器。sparc架構(gòu)的空間用處理器在航空航天系統(tǒng)中得到了廣泛應(yīng)用,所以研究此架構(gòu)空間處理器的抗中子效應(yīng)的能力就顯得尤其重要,但國(guó)際上對(duì)sparc架構(gòu)空間處理器中子效應(yīng)的研究剛剛起步,幾乎沒(méi)有相關(guān)的中子效應(yīng)試驗(yàn)測(cè)試系統(tǒng)和方法方面的文獻(xiàn)和專利。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)解決問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供一種sparc架構(gòu)空間處理器中子效應(yīng)試驗(yàn)測(cè)試系統(tǒng),實(shí)現(xiàn)對(duì)sparc架構(gòu)空間處理器進(jìn)行中子效應(yīng)性能的評(píng)估。
本發(fā)明的技術(shù)解決方案是:一種sparc架構(gòu)空間處理器中子效應(yīng)試驗(yàn)測(cè)試系統(tǒng),包括上位計(jì)算機(jī)、外部供電電源、示波器、監(jiān)測(cè)控制板、信號(hào)連接排線以及被測(cè)空間處理器,所述上位計(jì)算機(jī)、外部供電電源、示波器以及監(jiān)測(cè)控制板放置在監(jiān)控室中,被測(cè)空間處理器放置在電路板上,與電路板一起放置在中子試驗(yàn)堆中的輻照區(qū)域內(nèi);
信號(hào)連接排線:包括供電線、數(shù)據(jù)地址線、串口數(shù)據(jù)傳輸線、復(fù)位信號(hào)線、狀態(tài)指示信號(hào)線和時(shí)鐘輸入信號(hào)線,用于連接監(jiān)測(cè)控制板和被測(cè)空間處理器;
上位計(jì)算機(jī):接收監(jiān)測(cè)控制板輸出的測(cè)試結(jié)果,并進(jìn)行顯示;
外部供電電源:為監(jiān)測(cè)控制板供電;
示波器:接收監(jiān)測(cè)控制板輸出的被測(cè)空間處理器的工作電流監(jiān)測(cè)信號(hào),并進(jìn)行顯示。
監(jiān)測(cè)控制板:存儲(chǔ)被測(cè)空間處理器需要運(yùn)行的測(cè)試程序;將外部供電電源的供電電壓轉(zhuǎn)化成被測(cè)空間處理器所需的工作電壓,通過(guò)信號(hào)連接排線輸出給電路板;在被測(cè)空間處理器上電啟動(dòng)或復(fù)位后,實(shí)時(shí)采集被測(cè)空間處理器的測(cè)試結(jié)果,輸出給上位計(jì)算機(jī)進(jìn)行顯示和數(shù)據(jù)存儲(chǔ);在被測(cè)空間處理器上電啟動(dòng)或復(fù)位后,實(shí)時(shí)采集被測(cè)空間處理器的工作電流信號(hào),輸出給示波器;
被測(cè)空間處理器:上電啟動(dòng)或復(fù)位后,自動(dòng)循環(huán)運(yùn)行監(jiān)測(cè)控制板內(nèi)的測(cè)試程序。
還包括狀態(tài)指示板;所述狀態(tài)指示板實(shí)時(shí)接收監(jiān)測(cè)控制板返回的被測(cè)空間處理器的狀態(tài)指示信號(hào),并進(jìn)行顯示,當(dāng)狀態(tài)指示信號(hào)為出錯(cuò)時(shí),向監(jiān)測(cè)控制板輸出復(fù)位信號(hào)。
監(jiān)測(cè)控制板:通過(guò)信號(hào)連接排線中的狀態(tài)指示信號(hào)線實(shí)時(shí)采集被測(cè)空間處理器的狀態(tài)指示信號(hào),并將此信號(hào)返回給狀態(tài)指示板進(jìn)行顯示;當(dāng)接收到狀態(tài)指示板的復(fù)位信號(hào)后,監(jiān)測(cè)控制板對(duì)該復(fù)位信號(hào)進(jìn)行整形后輸出給被測(cè)空間處理器,實(shí)現(xiàn)對(duì)被測(cè)空間處理器的復(fù)位。
所述監(jiān)測(cè)控制板包括rs485電平模塊、供電模塊、存儲(chǔ)器模塊、處理器電流監(jiān)控模塊以及復(fù)位輸入信號(hào)整形模塊;
rs485電平模塊:通過(guò)信號(hào)連接排線中的串口數(shù)據(jù)傳輸線采集被測(cè)空間處理器運(yùn)行測(cè)試程序后輸出的測(cè)試結(jié)果,并轉(zhuǎn)化成rs485電平信號(hào),反饋給上位計(jì)算機(jī)進(jìn)行結(jié)果顯示;
供電模塊:接收外部供電電源的供電電壓,將其轉(zhuǎn)化成被測(cè)空間處理器所需的工作電壓,通過(guò)信號(hào)連接排線中的供電線輸出給電路板;
存儲(chǔ)器模塊:存儲(chǔ)被測(cè)空間處理器需要運(yùn)行的測(cè)試程序,所述測(cè)試程序包括初始化程序、寄存器堆測(cè)試程序、數(shù)學(xué)計(jì)算測(cè)試程序、指令和數(shù)據(jù)cache測(cè)試程序,用于實(shí)現(xiàn)對(duì)被測(cè)空間處理器的初始化、寄存器堆測(cè)試、數(shù)學(xué)計(jì)算測(cè)試、指令和數(shù)據(jù)cache測(cè)試;
處理器電流監(jiān)控模塊:實(shí)時(shí)采集被測(cè)空間處理器的工作電流,并將該工作電流信號(hào)轉(zhuǎn)化為電壓信號(hào)輸出給示波器;
復(fù)位輸入信號(hào)整形模塊:接收狀態(tài)指示板的復(fù)位信號(hào),對(duì)該復(fù)位信號(hào)進(jìn)行整形,并通過(guò)復(fù)位信號(hào)線輸出給被測(cè)空間處理器。
所述寄存器堆測(cè)試程序的測(cè)試過(guò)程如下:
(4.1)按順序?qū)γ總€(gè)窗口的所有寄存器賦值,當(dāng)8個(gè)窗口的寄存器都賦值完成之后,再按照相同的順序從每個(gè)窗口中讀出數(shù)據(jù),與原始寫(xiě)入數(shù)據(jù)進(jìn)行比較,記錄在中子輻射環(huán)境下出現(xiàn)的數(shù)據(jù)存儲(chǔ)錯(cuò)誤數(shù);
(4.2)連續(xù)執(zhí)行指令集合中的各種指令,通過(guò)寄存器堆控制寄存器讀取中子輻射環(huán)境下寄存器堆edac檢測(cè)到的出錯(cuò)數(shù),所述指令集合中的指令包括單周期指令、多周期指令、算術(shù)/邏輯/位移指令、訪存指令、浮點(diǎn)指令。
所述數(shù)學(xué)計(jì)算測(cè)試程序的測(cè)試過(guò)程如下:
(5.1)依次執(zhí)行乘法運(yùn)算程序、無(wú)符號(hào)除法運(yùn)算程序、有符號(hào)除法的運(yùn)算程序以及乘累加運(yùn)算程序,所述乘累加運(yùn)算程序包括有符號(hào)和無(wú)符號(hào)的乘累加指令;
(5.2)記錄出錯(cuò)的次數(shù)。
指令和數(shù)據(jù)cache測(cè)試程序的測(cè)試過(guò)程如下:
(6.1)指令cache測(cè)試程序的測(cè)試過(guò)程如下:刷新指令cache,然后調(diào)用由多條指令構(gòu)成的函數(shù),通過(guò)映射空間尋找一致的映像,若有則指令cache工作正確,否則不正確,記錄不正確次數(shù);
(6.2)數(shù)據(jù)cache測(cè)試程序的測(cè)試過(guò)程如下:刷新數(shù)據(jù)cache,清除數(shù)據(jù)cache中所有的位,然后定義一個(gè)數(shù)組,讀取數(shù)組的第一個(gè)元素,根據(jù)數(shù)據(jù)cache的緩存策略,會(huì)在數(shù)據(jù)cache中分配一個(gè)新行存放該數(shù)組的映像,通過(guò)映射空間來(lái)判斷數(shù)據(jù)cache中的數(shù)據(jù)是否正確,若正確則數(shù)據(jù)cache工作正確,否則不正確,記錄不正確次數(shù)。
所述被測(cè)空間處理器測(cè)試結(jié)果中一幀數(shù)據(jù)由以下部分組成:
幀頭:幀頭數(shù)據(jù);
寄存器堆錯(cuò)誤數(shù):處理器寄存器堆測(cè)試程序報(bào)告的錯(cuò)誤數(shù);
數(shù)學(xué)計(jì)算錯(cuò)誤數(shù):數(shù)學(xué)計(jì)算測(cè)試程序報(bào)告的運(yùn)算錯(cuò)誤數(shù);
指令cache錯(cuò)誤數(shù):指令cache測(cè)試程序報(bào)告的錯(cuò)誤數(shù);
數(shù)據(jù)cache錯(cuò)誤數(shù):數(shù)據(jù)cache測(cè)試程序報(bào)告的錯(cuò)誤數(shù);
幀尾:幀尾數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
(1)本發(fā)明建立了sparc架構(gòu)空間處理器中子效應(yīng)試驗(yàn)測(cè)試系統(tǒng),能夠完成中子輻照時(shí)被測(cè)空間處理器工作電流監(jiān)控、被測(cè)處理器測(cè)試結(jié)果采集及上位計(jì)算機(jī)顯示、測(cè)試程序存儲(chǔ)、被測(cè)處理器工作電壓設(shè)置、被測(cè)處理器狀態(tài)指示及復(fù)位信號(hào)的輸入等功能。通過(guò)試驗(yàn)測(cè)試,該系統(tǒng)能夠完成測(cè)試結(jié)果數(shù)據(jù)的傳輸和保存,實(shí)時(shí)監(jiān)測(cè)空間處理器的工作電流,完成對(duì)處理器閂鎖、單元翻轉(zhuǎn)及功能中斷的檢測(cè),實(shí)現(xiàn)對(duì)sparc架構(gòu)空間處理器進(jìn)行中子效應(yīng)性能的評(píng)估。
(2)本發(fā)明設(shè)計(jì)了被測(cè)空間處理器的測(cè)試程序,用于實(shí)現(xiàn)對(duì)被測(cè)空間處理器的初始化、寄存器堆測(cè)試、數(shù)學(xué)計(jì)算測(cè)試、指令和數(shù)據(jù)cache測(cè)試,上述測(cè)試結(jié)果能夠全面反應(yīng)整個(gè)空間處理器的抗中子效應(yīng)的能力。
(3)本發(fā)明提出了一種測(cè)試結(jié)果的串口數(shù)據(jù)幀組幀的格式,通過(guò)串口傳輸?shù)缴衔挥?jì)算機(jī),可以通過(guò)上位計(jì)算機(jī)上的串口顯示工具清晰地獲得到各個(gè)測(cè)試程序的輸出結(jié)果,避免了繁雜的測(cè)試結(jié)果數(shù)據(jù)分析過(guò)程。
附圖說(shuō)明
圖1為試驗(yàn)系統(tǒng)框圖;
圖2為監(jiān)測(cè)電路板功能框圖;
圖3為整體測(cè)試程序流程圖。
具體實(shí)施方式:
本發(fā)明提出的測(cè)試系統(tǒng)包括上位計(jì)算機(jī)1、外部供電電源2、示波器4、監(jiān)測(cè)控制板5、信號(hào)連接排線6以及被測(cè)空間處理器7,上位計(jì)算機(jī)1、外部供電電源2、示波器4以及監(jiān)測(cè)控制板5放置在監(jiān)控室中,被測(cè)空間處理器7放置在電路板8上,與電路板一起放置在中子試驗(yàn)堆中的輻照區(qū)域內(nèi)。
信號(hào)連接排線6:長(zhǎng)度5m,包括供電線、數(shù)據(jù)地址線、串口數(shù)據(jù)傳輸線、復(fù)位信號(hào)線、狀態(tài)指示信號(hào)線和時(shí)鐘輸入信號(hào),用于連接監(jiān)測(cè)控制板5和被測(cè)空間處理器7。
上位計(jì)算機(jī)1:接收監(jiān)測(cè)控制板5輸出的測(cè)試結(jié)果,并進(jìn)行顯示。測(cè)試人員可以根據(jù)上位計(jì)算機(jī)1上的測(cè)試結(jié)果數(shù)據(jù)來(lái)判斷是否有位翻轉(zhuǎn)和功能中斷效應(yīng)產(chǎn)生。
外部供電電源2:通過(guò)bnc連接電纜與監(jiān)測(cè)控制板5連接,為監(jiān)測(cè)控制板5供電。
示波器4:接收監(jiān)測(cè)控制板5輸出的被測(cè)空間處理器7的工作電流監(jiān)測(cè)信號(hào),并進(jìn)行顯示。
監(jiān)測(cè)控制板5:通過(guò)程序存儲(chǔ)器12存儲(chǔ)被測(cè)空間處理器7需要運(yùn)行的測(cè)試程序。包括rs485電平模塊10、供電模塊11、存儲(chǔ)器模塊12、處理器電流監(jiān)控模塊13以及復(fù)位輸入信號(hào)整形模塊14。
rs485電平模塊10:通過(guò)信號(hào)連接排線6中的串口數(shù)據(jù)傳輸線采集被測(cè)空間處理器7運(yùn)行測(cè)試程序后輸出的測(cè)試結(jié)果,并轉(zhuǎn)化成rs485電平信號(hào),反饋給上位計(jì)算機(jī)1進(jìn)行結(jié)果顯示;
供電模塊11:接收外部供電電源2的供電電壓,將其轉(zhuǎn)化成被測(cè)空間處理器7所需的工作電壓,通過(guò)信號(hào)連接排線6中的供電線輸出給電路板8;
存儲(chǔ)器模塊12:存儲(chǔ)被測(cè)空間處理器7需要運(yùn)行的測(cè)試程序,所述測(cè)試程序包括初始化程序、寄存器堆測(cè)試程序、數(shù)學(xué)計(jì)算測(cè)試程序、指令和數(shù)據(jù)cache測(cè)試程序,用于實(shí)現(xiàn)對(duì)被測(cè)空間處理器的初始化、寄存器堆測(cè)試、數(shù)學(xué)計(jì)算測(cè)試、指令和數(shù)據(jù)cache測(cè)試;
處理器電流監(jiān)控模塊13:被測(cè)空間處理器7上電或復(fù)位后,實(shí)時(shí)采集被測(cè)空間處理器7的工作電流,并將該工作電流信號(hào)轉(zhuǎn)化為電壓信號(hào)輸出給示波器4;通過(guò)被測(cè)空間處理器7的工作電流可以判斷被測(cè)空間處理器是否發(fā)生閂鎖,遇到閂鎖等情況時(shí)可及時(shí)切斷供電電源2,避免空間處理器7在閂鎖情況下的燒毀。
復(fù)位輸入信號(hào)整形模塊14:接收狀態(tài)指示板3的復(fù)位信號(hào),對(duì)該復(fù)位信號(hào)進(jìn)行整形,并通過(guò)復(fù)位信號(hào)線輸出給被測(cè)空間處理器7。
被測(cè)空間處理器7:上電啟動(dòng)或復(fù)位后,自動(dòng)循環(huán)運(yùn)行監(jiān)測(cè)控制板5程序存儲(chǔ)器12內(nèi)的測(cè)試程序,并將測(cè)試結(jié)果組幀成串口數(shù)據(jù)。
進(jìn)一步地,本發(fā)明測(cè)試系統(tǒng)還包括狀態(tài)指示板3。
監(jiān)測(cè)控制板5通過(guò)信號(hào)連接排線6中的狀態(tài)指示信號(hào)線實(shí)時(shí)采集被測(cè)空間處理器的狀態(tài)指示信號(hào),并將此信號(hào)返回給狀態(tài)指示板3進(jìn)行顯示。該狀態(tài)指示板3實(shí)時(shí)接收監(jiān)測(cè)控制板5返回的被測(cè)空間處理器7的狀態(tài)指示信號(hào),并進(jìn)行顯示,當(dāng)狀態(tài)指示信號(hào)為出錯(cuò)時(shí),向監(jiān)測(cè)控制板5輸出復(fù)位信號(hào)。當(dāng)接收到狀態(tài)指示板3的復(fù)位信號(hào)后,監(jiān)測(cè)控制板5對(duì)該復(fù)位信號(hào)進(jìn)行整形后輸出給被測(cè)空間處理器7,實(shí)現(xiàn)對(duì)被測(cè)空間處理器7的復(fù)位。
狀態(tài)指示板上還有可供操作人員手動(dòng)操作的復(fù)位按鈕,用于手動(dòng)對(duì)被測(cè)空間處理器進(jìn)行復(fù)位。
寄存器堆測(cè)試程序主要包含兩個(gè)部分,即在空間處理器7在中子輻照的環(huán)境下,一是測(cè)試空間處理器7中寄存器堆中寄存器窗口的旋轉(zhuǎn)和寄存器的讀寫(xiě)正確性,二是測(cè)試寄存器堆“糾一檢二”的檢錯(cuò)(以下簡(jiǎn)稱寄存器堆edac)功能,記錄檢測(cè)到的出錯(cuò)數(shù)。
具體測(cè)試過(guò)程如下:
(1)寄存器堆中寄存器窗口的旋轉(zhuǎn)和寄存器的讀寫(xiě)正確性測(cè)試:測(cè)試時(shí)對(duì)每個(gè)窗口的所有寄存器賦值。當(dāng)8個(gè)窗口的寄存器都賦值完成之后,再按照相同的順序從每個(gè)窗口中讀出數(shù)據(jù)和原始寫(xiě)入數(shù)據(jù)進(jìn)行比較,記錄在中子輻射環(huán)境下出現(xiàn)的數(shù)據(jù)存儲(chǔ)錯(cuò)誤數(shù);
(2)寄存器堆edac出錯(cuò)數(shù)測(cè)試:連續(xù)執(zhí)行指令集合中的各種指令,通過(guò)寄存器堆控制寄存器讀取中子輻射環(huán)境下寄存器堆edac檢測(cè)到的出錯(cuò)數(shù),指令集合中的指令包括單周期指令、多周期指令、算術(shù)指令(或邏輯指令,或位移指令)、訪存指令、浮點(diǎn)指令。
數(shù)學(xué)計(jì)算測(cè)試程序的測(cè)試過(guò)程如下:
(1)依次執(zhí)行乘法運(yùn)算程序、無(wú)符號(hào)除法運(yùn)算程序、有符號(hào)除法的運(yùn)算程序以及乘累加運(yùn)算程序,所述乘累加運(yùn)算程序包括有符號(hào)和無(wú)符號(hào)的乘累加指令;
(2)記錄出錯(cuò)的次數(shù)。
指令和數(shù)據(jù)cache測(cè)試程序的測(cè)試過(guò)程為:
(1)指令cache測(cè)試:指令cache測(cè)試前首先刷新cache,保證之前運(yùn)行的程序不會(huì)繼續(xù)影響后面的驗(yàn)證。將多條指令定義為一個(gè)函數(shù)。測(cè)試時(shí)調(diào)用該函數(shù),根據(jù)指令cache工作原理,此時(shí)這幾條指令應(yīng)該被緩存進(jìn)指令cache中,通過(guò)映射空間尋找一致的映像,若有則指令cache工作正確,否則不正確;記錄不正確次數(shù)。
(2)數(shù)據(jù)cache測(cè)試:刷新數(shù)據(jù)cache,清除數(shù)據(jù)cache中所有的位。定義一個(gè)數(shù)組,讀取數(shù)組的第一個(gè)元素。根據(jù)數(shù)據(jù)cache的緩存策略,會(huì)在數(shù)據(jù)cache中分配一個(gè)新行存放該數(shù)組的映像,通過(guò)映射空間來(lái)判斷數(shù)據(jù)cache中的數(shù)據(jù)是否正確。記錄不正確次數(shù)。
本發(fā)明解決了如何在中子輻射環(huán)境下建立完整的sparc架構(gòu)空間處理器中子輻照效應(yīng)試驗(yàn)測(cè)試系統(tǒng),完成對(duì)處理器閂鎖、單元翻轉(zhuǎn)及功能中斷的測(cè)試,依據(jù)測(cè)試結(jié)果完成了對(duì)高性能空間處理器中子效應(yīng)性能的評(píng)估。本發(fā)明已經(jīng)用在一款空間處理器的中子輻照效應(yīng)現(xiàn)場(chǎng)試驗(yàn)中,經(jīng)過(guò)幾輪的現(xiàn)場(chǎng)試驗(yàn),測(cè)試系統(tǒng)運(yùn)行良好,得到了對(duì)空間處理器進(jìn)行中子效應(yīng)性能評(píng)估所需要的大量真實(shí)有效的測(cè)試數(shù)據(jù)。
實(shí)施例:
按本發(fā)明內(nèi)容搭建空間處理器中子效應(yīng)試驗(yàn)測(cè)試系統(tǒng)后,監(jiān)測(cè)控制板5上的供電模塊11,分別將外部供電電源2輸入的5v電壓轉(zhuǎn)化成3.3v和1.8v電壓,提供給被測(cè)空間處理器7的io和內(nèi)核。處理器電流監(jiān)控模塊13實(shí)現(xiàn)對(duì)被測(cè)處理器7內(nèi)核1.8v電壓進(jìn)行電流監(jiān)測(cè),程序正常運(yùn)行時(shí)此電流大約在200-400毫安之間,若大于此工作電流,說(shuō)明被測(cè)空間處理器7開(kāi)始出現(xiàn)閂鎖現(xiàn)象,需要及時(shí)切斷工作電源2。
對(duì)處理器進(jìn)行各種測(cè)試之前,首先要進(jìn)行處理器串口及各種寄存器初始化,然后串口輸出0x55aa。
寄存器堆測(cè)試程序的實(shí)現(xiàn)方式:
(1)、寄存器堆中寄存器窗口的旋轉(zhuǎn)和寄存器的讀寫(xiě)測(cè)試:每對(duì)一個(gè)窗口的寄存器賦值完之后,使窗口旋轉(zhuǎn)到下一個(gè)窗口,繼續(xù)賦值,使得對(duì)全部的寄存器賦值依次為0x00000000-0x10100111,當(dāng)8個(gè)窗口的全部寄存器都寫(xiě)入完成之后,再?gòu)念^按照相同的順序從每個(gè)窗口中將數(shù)據(jù)讀出來(lái),跟原始寫(xiě)入的數(shù)據(jù)進(jìn)行對(duì)比,出現(xiàn)任何一次數(shù)據(jù)不相同則進(jìn)行一次錯(cuò)誤計(jì)數(shù);
(2)、寄存器堆edac錯(cuò)誤數(shù)測(cè)試:寄存器堆中有大量的寄存器,且其中每個(gè)寄存器都是由32位數(shù)據(jù)和7位校驗(yàn)碼組成,測(cè)試時(shí)連續(xù)執(zhí)行指令集合中的各種指令,指令集合中的指令包括ldd雙字節(jié)加載指令,std雙字存儲(chǔ)指令,跳轉(zhuǎn)指令、ldf/stf指令、邏輯/位移指令、fsqrts/fsqrtd/fsubs/fsubd等浮點(diǎn)指令,寄存器堆控制寄存器(32位寄存器)中會(huì)有16個(gè)數(shù)據(jù)位記錄出錯(cuò)的次數(shù),最多可以記錄65535個(gè)寄存器堆edac發(fā)生一次錯(cuò)誤的次數(shù)。
數(shù)學(xué)計(jì)算測(cè)試模塊中的乘累加運(yùn)算程序?qū)崿F(xiàn)方法:
(1)、利用umul指令進(jìn)行無(wú)符號(hào)整數(shù)乘法指令進(jìn)行運(yùn)算,判斷計(jì)算結(jié)果;
(2)、利用sdiv指令和udiv指令進(jìn)行有符號(hào)以及無(wú)符號(hào)整數(shù)除法指令進(jìn)行運(yùn)算,判斷計(jì)算結(jié)果;
(3)、利用有符號(hào)和無(wú)符號(hào)的乘累加指令進(jìn)行測(cè)試,使用匯編指令完成,分別連續(xù)執(zhí)行10條umac和smac指令,并判斷計(jì)算結(jié)果。
(4)記錄出錯(cuò)的次數(shù)。
指令和數(shù)據(jù)cache測(cè)試程序?qū)崿F(xiàn)方法:
(1)、指令cache測(cè)試:測(cè)試前首先刷新cache,保證之前運(yùn)行的程序不會(huì)繼續(xù)影響后面的驗(yàn)證。將6個(gè)“nop”和1個(gè)“retl”或者3個(gè)“smul”和2個(gè)“nop”指令定義為一個(gè)函數(shù)。測(cè)試時(shí)調(diào)用該函數(shù),根據(jù)指令cache原理,此時(shí)這7條指令或5條指令應(yīng)該被緩存進(jìn)指令cache中。關(guān)閉cache后通過(guò)asi映射空間,在四路組中尋找與該函數(shù)地址相一致的映像。如果找到,則指令cache測(cè)試正確,否則指令cache測(cè)試錯(cuò)誤;
(2)、數(shù)據(jù)cache驗(yàn)證:首先刷新數(shù)據(jù)cache,清除數(shù)據(jù)cache中所有的位。定義一個(gè)數(shù)組a或b,讀取數(shù)組的第一個(gè)元素a[0]或b[0],數(shù)據(jù)cache中會(huì)分配一個(gè)新行存放該數(shù)組的映像。通過(guò)asi空間判斷是否已經(jīng)分配了新行,同時(shí)緩存進(jìn)cache新行中的數(shù)據(jù)是否正確。
被測(cè)空間處理器的測(cè)試結(jié)果按照如下方法組幀成串口數(shù)據(jù)后通過(guò)rs485電平模塊傳輸?shù)缴衔挥?jì)算機(jī),將上位計(jì)算機(jī)的串口接收工具設(shè)置為9600bps波特率/8數(shù)據(jù)位/1停止位、hex方式顯示,串口接收工具可以進(jìn)行測(cè)試數(shù)據(jù)顯示和保存等操作。
為了提高測(cè)試的覆蓋率和充分性,指令和數(shù)據(jù)cache測(cè)試程序按照上面實(shí)例均包含了兩個(gè)測(cè)試程序,因此,此時(shí)被測(cè)空間處理器的測(cè)試結(jié)果串口幀格式如下:一幀數(shù)據(jù)由22個(gè)字節(jié)、8部分組成:
幀頭:0x55aa(2字節(jié))
寄存器堆錯(cuò)誤數(shù):處理器寄存器堆測(cè)試程序報(bào)告的錯(cuò)誤數(shù)(共3字節(jié))
數(shù)學(xué)計(jì)算錯(cuò)誤數(shù):數(shù)學(xué)計(jì)算測(cè)試程序報(bào)告的運(yùn)算錯(cuò)誤數(shù)(共3字節(jié))
指令cache錯(cuò)誤數(shù):數(shù)據(jù)cache測(cè)試程序1中報(bào)告的錯(cuò)誤數(shù)(共3字節(jié))
指令cache錯(cuò)誤數(shù):數(shù)據(jù)cache測(cè)試程序2中報(bào)告的錯(cuò)誤數(shù)(共3字節(jié))
數(shù)據(jù)cache錯(cuò)誤數(shù):指令cache測(cè)試程序1中報(bào)告的錯(cuò)誤數(shù)(共3字節(jié))
數(shù)據(jù)cache錯(cuò)誤數(shù):指令cache測(cè)試程序2中報(bào)告的錯(cuò)誤數(shù)(共3字節(jié))
幀尾:0x55aa(2字節(jié))
正常的時(shí)候應(yīng)該輸出:0x55aa00000000000000000000000000000000000055aa;若出現(xiàn)0x55aa00000700000400000100000000000000000155aa,則說(shuō)明寄存器堆錯(cuò)誤數(shù)為7,數(shù)學(xué)計(jì)算錯(cuò)誤數(shù)為4,數(shù)據(jù)cache測(cè)試程序1的錯(cuò)誤數(shù)為1,指令cache測(cè)試程序2中報(bào)告的錯(cuò)誤數(shù)為1。
整體測(cè)試過(guò)程如圖3所示。
出現(xiàn)寄存器堆錯(cuò)誤、數(shù)學(xué)計(jì)算錯(cuò)誤或數(shù)據(jù)cache、指令cache錯(cuò)誤,說(shuō)明空間處理器出現(xiàn)了單元翻轉(zhuǎn)。
狀態(tài)指示板3的作用:通過(guò)按下其上的復(fù)位按鈕,向監(jiān)測(cè)控制板5輸出復(fù)位信號(hào),從而復(fù)位被測(cè)空間處理器。
每次測(cè)試系統(tǒng)上電之后,若有上位機(jī)的串口工具上顯示亂碼,可以先清除這些亂碼數(shù)據(jù)。當(dāng)空間處理器發(fā)生以下幾種功能中斷的異常情況時(shí),首先保存上位機(jī)串口顯示工具的數(shù)據(jù),隨后進(jìn)行異常情況的處理,方法如下:
(1)、串口無(wú)輸出:首先按下?tīng)顟B(tài)指示板3上的復(fù)位按鈕,對(duì)被測(cè)空間處理器進(jìn)行復(fù)位,若復(fù)位后仍然沒(méi)有輸出,需要重新對(duì)外部供電電源2進(jìn)行斷電和上電操作,重新啟動(dòng)整個(gè)測(cè)試系統(tǒng);
(2)、串口輸出幀格式混亂:首先按下?tīng)顟B(tài)指示板3上的復(fù)位按鈕,對(duì)被測(cè)空間處理器進(jìn)行復(fù)位,若復(fù)位后仍然無(wú)法解決,需要重新對(duì)外部供電電源2進(jìn)行斷電和上電操作,重新啟動(dòng)整個(gè)測(cè)試系統(tǒng);
(3)、閂鎖:需要重新對(duì)整個(gè)測(cè)試系統(tǒng)進(jìn)行斷電和上電操作;
(4)、狀態(tài)指示板3的狀態(tài)指示燈亮:說(shuō)明被測(cè)空間處理器7出現(xiàn)程序跑飛或運(yùn)行錯(cuò)誤的情況,此時(shí)狀態(tài)指示板3向被測(cè)空間處理器7輸出復(fù)位信號(hào);
(5)、程序長(zhǎng)時(shí)間沒(méi)有輸出結(jié)果:通過(guò)狀態(tài)指示板對(duì)被測(cè)空間處理器進(jìn)行復(fù)位操作。
本發(fā)明為未詳細(xì)說(shuō)明部分屬于本領(lǐng)域技術(shù)人員公知常識(shí)。