專利名稱:一種單板及提高其可靠性的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種單板及提高其可靠性的方法。
背景技術(shù):
目前,在大部分電子設(shè)備的單板上同時存在中央處理器單元(CPU, Central Process Unit)和現(xiàn)場可編程門陣列(FPGA, Field Programmable Gate Array),其中,F(xiàn)PGA作為從設(shè)備,CPU作為主設(shè)備。FPGA內(nèi)部的部分寄 存器用于存儲CPU配置的參數(shù),部分寄存器用于實現(xiàn)邏輯功能。電子設(shè)備的 單板在實際網(wǎng)絡(luò)運行環(huán)境中可能因為環(huán)境因素,如雷電、工作溫度超限、市 電電壓波動等原因?qū)е聠伟宓臅r鐘出現(xiàn)毛刺,或者導(dǎo)致器件的工作電壓增大。 在單板的時鐘出現(xiàn)毛刺,或器件工作電壓增大的情況下,F(xiàn)PGA內(nèi)部的寄存 器的參數(shù)將會出現(xiàn)錯誤,比如1變成0,或0變成1,參數(shù)發(fā)生錯誤將導(dǎo)致設(shè) 備癱瘓,但是FPGA器件本身功能正常,這種現(xiàn)象稱為FPGA軟失效。
在現(xiàn)有的技術(shù)中,通過合理的邏輯可靠性設(shè)計方案,可以使FPGA的邏 輯功能實現(xiàn)部分的寄存器的參數(shù)出現(xiàn)錯誤后自行恢復(fù)正常。
發(fā)明人在本發(fā)明創(chuàng)造過程中發(fā)現(xiàn),對于由CPU配置的寄存器的參數(shù)發(fā)生 錯誤無法檢測,也沒辦法恢復(fù)錯誤。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種單板及提高其可靠性的方法,可以檢測由CPU 配置的FPGA的寄存器的配置參數(shù)發(fā)生錯誤,并使之恢復(fù)正常,從而提高單 板可靠性。
為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案 本發(fā)明實施例提供了一種提高單板可靠性的方法,包括 保存單板上的現(xiàn)場可編程門陣列的寄存器的配置參數(shù)的副本; 讀取所述寄存器的當(dāng)前參數(shù);
如果所述寄存器的當(dāng)前參數(shù)和所述寄存器的配置參數(shù)的副本不一致,對 所述寄存器重新配置參數(shù)。
本發(fā)明實施例還提供了一種單板,包括現(xiàn)場可編程門陣列,中央處理器;
所述現(xiàn)場可編程門陣列包括
寄存器,用于接收所述中央處理器配置的參數(shù);
存儲模塊,用于如果所述中央處理器對所述寄存器配置參數(shù),保存一份 所述寄存器的配置參數(shù)的副本;
檢測判斷模塊,用于讀取所述寄存器的當(dāng)前參數(shù),與所述存儲模塊所保 存的所述寄存器的配置參數(shù)的副本進(jìn)行對比,如果所述寄存器的當(dāng)前參數(shù)與 所述寄存器的配置參數(shù)副本不一致,判斷所述寄存器需要重新配置參數(shù);
通知模塊,用于如果所述檢測模塊判斷所述寄存器需要重新配置參數(shù), 通知所述中央處理器對所述寄存器重新配置參數(shù);
所述中央處理器包括
配置^f莫塊,用于為所述現(xiàn)場可編程門陣列的寄存器配置參^:; 接收模塊,用于如果收到所述現(xiàn)場可編程門陣列重新配置參數(shù)的通知, 通知所述配置模塊對所述現(xiàn)場可編程門陣列的寄存器配置參數(shù)。 本發(fā)明實施例還提供了另一種單板,包括 現(xiàn)場可編程門陣列,存儲模塊,中央處理器; 所述現(xiàn)場可編程門陣列包括 寄存器,用于接收所述中央處理器配置的參數(shù);
所述存儲模塊,用于如果所述中央處理器對所述寄存器配置參數(shù),存儲 一份所述寄存器的配置參數(shù)的副本; 所述中央處理器包括
配置^f莫塊,用于為所述現(xiàn)場可編程門陣列的寄存器配置參^t,并在所述 存儲模塊中保存一份配置的參數(shù)的副本;
檢測判斷模塊,用于獲取所述現(xiàn)場可編程門陣列的寄存器的當(dāng)前參數(shù), 與所述存儲模塊所存儲的配置參數(shù)的副本進(jìn)行比較,如果所述寄存器的當(dāng)前 參數(shù)與所述存儲模塊所存儲的配置參數(shù)的副本不一致,判斷所述寄存器需要 重新設(shè)置參數(shù);
重置模塊,如果所述檢測判斷模塊判斷所述現(xiàn)場可編程門陣列的寄存器 需要重新設(shè)置參數(shù),通知所述配置模塊對所述現(xiàn)場可編程門陣列的寄存器重新配置參數(shù)并保存一份所述配置的參數(shù)的副本到所述存儲模塊。
本發(fā)明實施例將CPU配置的FPGA寄存器的配置參數(shù)存儲一份副本,用 以檢測由CPU配置的FPGA寄存器是否發(fā)生錯誤,若配置的寄存器發(fā)生錯誤, 則重新配置該寄存器,從而提高單板可靠性。
圖1為本發(fā)明實施例一提供的一種提高單板可靠性的方法流程圖; 圖2為本發(fā)明實施例二提供的一種提高單板可靠性的方法流程圖; 圖3為本發(fā)明實施例三提供的一種提高單板可靠性的方法流程圖; 圖4為本發(fā)明實施例四提供的一種單板的邏輯結(jié)構(gòu)示意圖; 圖5為本發(fā)明實施例五提供的一種單板的邏輯結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明實施例提供了一種單板及提高其可靠性的方法,可以檢測由CPU 配置的FPGA寄存器是否發(fā)生錯誤,并使之恢復(fù)正常,從而提高單板可靠性。
為了便于對本發(fā)明實施例進(jìn)一步的理解,下面結(jié)合附圖對本發(fā)明實施例 進(jìn)行詳細(xì)的介紹。
實施例一
請參閱圖1,圖1為本發(fā)明實施例一提供的一種提高單板可靠性的方法 流程圖。如圖l所示,該方法包括
步驟101:保存單板上的現(xiàn)場可編程門陣列的寄存器的配置參數(shù)的副本。
FPGA的寄存其中,有一些寄存器應(yīng)由CPU給其配置參數(shù)值,當(dāng)CPU 給這些應(yīng)由其配置的寄存器配置參數(shù)時,保存一份所配置的參數(shù)副本。其中, 可以由FPGA將CPU配置的寄存器的配置參數(shù)的副本存儲于FPGA的隨機 存儲器RAM;或者由CPU將所配置的寄存器的配置參數(shù)的副本存儲于單板 的隨機存儲器RAM中。
步驟102:讀取所述寄存器的當(dāng)前參數(shù)。
讀取所述寄存器的當(dāng)前參數(shù)是為了與所述寄存器的配置參數(shù)的副本進(jìn)行 對比,看寄存器的所存儲的參數(shù)值有沒有發(fā)生變化,如果發(fā)生變化,就說明 寄存器出現(xiàn)了錯誤??梢杂蒄PGA或CPU周期性的讀取配置的寄存器的參數(shù)。
步驟103:若所述寄存器的當(dāng)前參數(shù)和所述寄存器的配置參it的副本不一致,對所述寄存器重新配置參數(shù)。
如果對比結(jié)果不一致,說明所述寄存器的參數(shù)值發(fā)生了變化。 一般情況 下,這種變化都是由意外所引起,需要進(jìn)行糾正,如杲不糾正,就會導(dǎo)致單 氺反無法正確的運4亍。
檢測到所述的寄存器發(fā)生錯誤之后,通過CPU對所述寄存器重新配置參
數(shù),使寄存器重新恢復(fù)正常。
上述對本發(fā)明實施例一提供的一種提高單板可靠性的方法進(jìn)行介紹,將
寄存器的當(dāng)前參數(shù)與預(yù)先保存的配置參數(shù)的副本對比,檢測CPU配置的FPGA 寄存器是否發(fā)生錯誤,如果是,則重新配置該寄存器,從而提高單板可靠性, 避免寄存器發(fā)生錯誤導(dǎo)致設(shè)備癱瘓。 實施例二
請參閱圖2,圖2為本發(fā)明實施例二提供的一種提高單板可靠性的方法的 流程圖。在本實施例中,由FPGA檢測CPU配置的寄存器的配置參數(shù)是否發(fā)生 錯誤,如果是,則通知CPU對該配置寄存器的重新配置參數(shù)。如圖2所示,本 實施例的方法包括
步驟201:如果單板上的CPU對FPGA的寄存器配置參數(shù),在所述FPGA
的RAM中,保存一份所述寄存器的配置參數(shù)的副本。
由于CPU不一定對所有的FPGA寄存器進(jìn)行配置,對于CPU沒有配置的寄 存器,需要保存其默認(rèn)值。
例如,可以將由CPU配置的FPGA寄存器的默認(rèn)值保存到存儲器初始化文 件(MIF, Memory Initialization File)中,并通過MIF文件對FPGA的RAM進(jìn)行 初始化。
當(dāng)CPU給FPGA的寄存器配置參數(shù)時,由FPGA將該寄存器的配置參 數(shù)的副本存儲于FPGA的RAM中,這一過程對于CPU是透明的。當(dāng)CPU 對該寄存器重新配置時,相應(yīng)的,F(xiàn)PGA將CPU重新配置的參數(shù)的副本覆蓋 之前存儲的參數(shù)的副本。
步驟202: FPGA周期性地讀取由CPU配置的寄存器的當(dāng)前參數(shù)。 對于應(yīng)由CPU配置的寄存器,除非CPU改變其值,否則不應(yīng)發(fā)生變化,如 果其中的一些寄存器的值發(fā)生變化,說明這些寄存器產(chǎn)生了錯誤。讀取這些寄存器的當(dāng)前參數(shù)的目的,是為了檢測其數(shù)值是否發(fā)生了意外的變化。
FPGA可以周期性的讀取這些應(yīng)由CPU配置的寄存器的當(dāng)前參數(shù),這一過 程對于CPU也是透明的。
步驟203:若對比結(jié)果不一致,則FPGA通知CPU對所述寄存器重新配置 參數(shù)。
如果對比結(jié)果不一致,說明該寄存器的配置參數(shù)發(fā)生錯誤;向CPU發(fā)送 對所述寄存器重新配置的通知;CPU根據(jù)所述通知發(fā)送的所述寄存器的配置 參數(shù),使該寄存器恢復(fù)正常,從而提高單板可靠性,避免配置寄存器的配置 參數(shù)發(fā)生錯誤導(dǎo)致設(shè)備癱瘓。
反之,如果對比結(jié)果一致,則說明該寄存器正常運行。
上述對本發(fā)明實施例二提供的一種提高單板可靠性的方法進(jìn)行介紹,將 寄存器的當(dāng)前參數(shù)與預(yù)先保存的配置參數(shù)的的副本對比,檢測CPU配置的 FPGA寄存器是否發(fā)生錯誤,如果是,則重新配置該寄存器,從而提高單板 可靠性,避免寄存器發(fā)生錯誤導(dǎo)致設(shè)備癱瘓。
實施例三
請參閱圖3 ,圖3為本發(fā)明實施例三提供的 一種提高單板可靠性的方法流 程圖。在本實施例中,由CPU檢測配置寄存器的配置參數(shù)是否發(fā)生錯誤,如 果是,則CPU主動對該寄存器的重新配置參數(shù)。如圖3所示,本實施例的方法 包括
步驟301:如果單板上的CPU對FPGA的寄存器配置參數(shù),在單板的內(nèi) 存中,保存一份所述寄存器的配置參數(shù)的副本。
CPU給FPGA寄存器配置參數(shù)時,將該配置參數(shù)的副本保存一份在單板 的內(nèi)存中。
步驟302: CPU周期性地讀取所述寄存器的當(dāng)前參數(shù),將所述參數(shù)與內(nèi)存 中保存的所述配置參數(shù)的副本對比。
每隔一段周期,CPU需要讀取寄存器當(dāng)前存放的參數(shù),與步驟301所保存 的所述配置參數(shù)的副本對比,以判斷所述寄存器有無出^!晉。
步驟303:若對比結(jié)果不一致,則CPU對所述寄存器重新配置參數(shù)。
如果對比結(jié)果不一致,說明該寄存器發(fā)生錯誤,CPU需要重新配置參數(shù),使該寄存器恢復(fù)正常。反之,如果對比結(jié)果一致,則說明該寄存器正常運行。 上述對本發(fā)明實施例三提供的一種提高單板可靠性的方法進(jìn)行介紹,由
CPU檢測CPU配置的FPGA寄存器的當(dāng)前參數(shù)是否發(fā)生錯誤,如果是,則 重新配置該寄存器,使之恢復(fù)正常,從而提高單板可靠性,避免配置寄存器 發(fā)生錯誤導(dǎo)致設(shè)備癱瘓。 實施例四
請參閱圖4,圖4為本發(fā)明實施例四提供的一種單板的邏輯結(jié)構(gòu)示意圖。 如圖4所示,所述單板包括
現(xiàn)場可編程門陣列401 ,中央處理器402;
所述現(xiàn)場可編程門陣列401作為從設(shè)備,中央處理器402作為主設(shè)備; 中央處理器402對現(xiàn)場可編程門陣列401的寄存器進(jìn)行參數(shù)配置,使得現(xiàn)場 可編程門陣列401可以正常運行。
所述現(xiàn)場可編程門陣列401包括
寄存器4011 ,用于接收所述中央處理器402配置的參數(shù)。
所述寄存器4011接收中央處理器402配置的參數(shù),使現(xiàn)場可編程門陣列 401在該配置參數(shù)下可以正常運行。
存儲模塊4012,用于如果所述中央處理器402對所述寄存器4011配置 參數(shù),保存一份所述寄存器4011的配置參數(shù)的副本。
在中央處理器402對所述寄存器4011配置參數(shù)時,所述存儲^f莫塊保存所 述配置參數(shù)的副本,可以將該參數(shù)與配置參數(shù)的副本進(jìn)程對比,判斷所述寄 存器4011的配置參數(shù)是否發(fā)生錯誤。
檢測判斷模塊4013,用于讀取所述寄存器4011的當(dāng)前參數(shù),與所述存 儲模塊4012所保存的所述寄存器4011的配置參數(shù)的副本進(jìn)行對比,如果所 述寄存器4011的當(dāng)前參數(shù)與所述寄存器4011的配置參數(shù)的副本不一致,判 斷所述寄存器4011需要重新配置參數(shù)。
通知模塊4014,用于如果所述檢測判斷模塊4013判斷所述寄存器4011 需要重新配置參數(shù),通知所述中央處理器402對所述寄存器4011重新配置參 數(shù)。
所述中央處理器402包括配置模塊4021,用于為所述現(xiàn)場可編程門陣列401的寄存器4011配置 參數(shù);所述參數(shù)可以使現(xiàn)場可編程門陣列401可以正常運行。
接收^^莫塊4022,用于如果收到所述現(xiàn)場可編程門陣列401的通知;f莫塊 4014發(fā)送的重新配置參數(shù)的通知,通知所述配置模塊4021對所述現(xiàn)場可編 程門陣列401的寄存器4011配置參數(shù)。
上述本發(fā)明實施例所提供的一種單板,可以檢測FPGA中由CPU配置的 寄存器的是否發(fā)生錯誤,如果是,則通知CPU重新配置該寄存器,從而提高 單板可靠性,避免配置寄存器發(fā)生錯-溪導(dǎo)致設(shè)備癱瘓。
實施例五
請參閱圖5,圖5為本發(fā)明實施例五提供的一種單板的邏輯結(jié)構(gòu)示意圖。 如圖5所示,所述單板包括
現(xiàn)場可編程門陣列501,存儲-漠塊502,中央處理器503。
所述現(xiàn)場可編程門陣列401作為從設(shè)備,中央處理器402作為主設(shè)備; 中央處理器402對現(xiàn)場可編程門陣列401的寄存器進(jìn)行參數(shù)配置,使得現(xiàn)場 可編程門陣列401可以正常運行,同時將配置的參數(shù)的副本存儲與單板的存 儲模塊502中。
所述現(xiàn)場可編程門陣列501包括
寄存器5011,用于接收所述中央處理器503配置的參數(shù);所述^f吏現(xiàn)場可 編程門陣列501在該配置的參數(shù)下可以正常運行。
所述存儲^t塊502,用于如果所述中央處理器503對所述寄存器5011配 置參數(shù),存儲一份所述寄存器4011的配置參數(shù)的副本;
所述中央處理器503包括
配置模塊5031,用于為所述現(xiàn)場可編程門陣列501的所述寄存器5011 配置參數(shù),并在所述存儲模塊502中保存一份配置的參數(shù)的副本;
檢測判斷模塊5032,用于獲取所述現(xiàn)場可編程門陣列501的寄存器5011 的當(dāng)前參數(shù),與所述存儲模塊502所存儲的配置參數(shù)的副本進(jìn)行比較,如果 所述寄存器5011的當(dāng)前參數(shù)與所述存儲模塊502所存儲的配置參數(shù)的副本不 一致,判斷所述寄存器5011需要重新設(shè)置參數(shù);
重置模塊5033,如果所述檢測判斷模塊5032判斷所述現(xiàn)場可編程門陣列501的所述寄存器5011需要重新設(shè)置參數(shù),通知所述配置模塊5031對所 述寄存器5011重新配置參數(shù)并保存一份配置參數(shù)的副本到所述存儲模塊 502。
上述本發(fā)明實施例所提供的一種單板,可以檢測FPGA中由CPU配置的 寄存器的是否發(fā)生錯誤,如果是,則通知CPU重新配置該寄存器,從而提高 單板可靠性,避免配置寄存器發(fā)生錯誤導(dǎo)致設(shè)備癱瘓。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例通??梢酝ㄟ^硬件 來現(xiàn)實,或者實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān) 的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括ROM、 RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上對本發(fā)明實施例所提供的一種單板及提高其可靠性的方法,并使用 具體實施例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是 用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人 員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜 上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1、一種提高單板可靠性的方法,其特征在于,包括保存單板上的現(xiàn)場可編程門陣列的寄存器的配置參數(shù)的副本;讀取所述寄存器的當(dāng)前參數(shù);如果所述寄存器的當(dāng)前參數(shù)和所述寄存器的配置參數(shù)的副本不一致,對所述寄存器重新配置參數(shù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述保存單板上的現(xiàn)場可 編程門陣列的寄存器的配置參數(shù)的副本的步驟,包括數(shù),在所述現(xiàn)場可編程門陣列的內(nèi)存中,保存一份所述寄存器的配置參數(shù)的 副本。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述保存單板上的現(xiàn)場可 編程門陣列的寄存器的配置參數(shù)的副本的步驟,包括如果所述單板上的中央處理器對所述現(xiàn)場可編程門陣列的寄存器配置參 數(shù),在所述單板的內(nèi)存中,保存一份所述寄存器的配置參數(shù)的副本。
4、 根據(jù)權(quán)利要求1或2所述的任一方法,其特征在于,所述如果所述寄 存器的當(dāng)前參數(shù)和所述寄存器的配置參數(shù)的副本不一致,對所述寄存器重新 配置參數(shù)的步驟,包括如果所述寄存器的當(dāng)前參數(shù)和所述寄存器的配置參數(shù)的副本不一致,向所 述單板上的中央處理器發(fā)送對所述寄存器重新配置參數(shù)的通知;所述單板上的中央處理器才艮據(jù)所述通知重新對所述寄存器配置參數(shù)。
5、 一種單板,其特征于,包括 現(xiàn)場可編程門陣列,中央處理器; 所述現(xiàn)場可編程門陣列包括寄存器,用于接收所述中央處理器配置的參數(shù);存儲模塊,用于如果所述中央處理器對所述寄存器配置參數(shù),保存一份 所述寄存器的配置參數(shù)的副本;檢測判斷模塊,用于讀取所述寄存器的當(dāng)前參數(shù),與所述存儲模塊所保存 的所述寄存器的配置參^t的副本進(jìn)行對比,如果所述寄存器的當(dāng)前參^L與所 述寄存器的配置參數(shù)的副本不一致,判斷所述寄存器需要重新配置參數(shù);通知模塊,用于如果所述檢測模塊判斷所述寄存器需要重新配置參數(shù),通知所述中央處理器對所述寄存器重新配置參數(shù); 所述中央處理器包括配置4莫塊,用于為所述現(xiàn)場可編程門陣列的寄存器配置參數(shù); 接收模塊,用于如果收到所述現(xiàn)場可編程門陣列重新配置參數(shù)的通知,通 知所述配置模塊對所述現(xiàn)場可編程門陣列的寄存器配置參數(shù)。
6、 一種單板,其特征于,包括 現(xiàn)場可編程門陣列,存儲:模塊,中央處理器; 所述現(xiàn)場可編程門陣列包括 寄存器,用于接收所述中央處理器配置的參數(shù);所述存儲沖莫塊,用于如果所述中央處理器對所述寄存器配置參數(shù),存卩諸一 份所述寄存器的配置參數(shù)的副本; 所述中央處理器包括配置模塊,用于為所述現(xiàn)場可編程門陣列的寄存器配置參數(shù),并在所述存 儲模塊中保存一份配置的參數(shù)的副本;檢測判斷模塊,用于獲取所述現(xiàn)場可編程門陣列的寄存器的當(dāng)前參數(shù),與 所述存儲模塊所存儲的配置參數(shù)的副本進(jìn)行比較,如果所述寄存器的當(dāng)前參 數(shù)與所述存儲模塊所存儲的配置參數(shù)的副本不一致,判斷所述寄存器需要重 新設(shè)置參數(shù);重置^f莫塊,如果所述^r測判斷^t塊判斷所述現(xiàn)場可編程門陣列的寄存器需 要重新設(shè)置參數(shù),通知所述配置模塊對所述現(xiàn)場可編程門陣列的寄存器重新 配置參數(shù)并保存一份所述配置的參數(shù)的副本到所述存儲模塊。
全文摘要
本發(fā)明實施例公開了一種單板及提高其可靠性的方法,所述方法包括保存單板上的現(xiàn)場可編程門陣列的寄存器的配置參數(shù)的副本;讀取所述寄存器的當(dāng)前參數(shù);如果所述寄存器的當(dāng)前參數(shù)和所述寄存器的配置參數(shù)的副本不一致,對所述寄存器重新配置參數(shù)。本發(fā)明實施例可以檢測由中央處理器配置的現(xiàn)場可編程門陣列的寄存器的配置參數(shù)是否發(fā)生錯誤,若配置的寄存器的配置參數(shù)發(fā)生錯誤,則重新配置該寄存器,從而提高單板可靠性。
文檔編號G06F11/00GK101419563SQ20081020285
公開日2009年4月29日 申請日期2008年11月13日 優(yōu)先權(quán)日2008年11月13日
發(fā)明者陳宏達(dá), 陳新坤, 馬叢山 申請人:上海華為技術(shù)有限公司