1.一種快速引導(dǎo)申威處理器BIOS的方法,通過(guò)FPGA實(shí)現(xiàn),其特征在于:
在所述FPGA中設(shè)計(jì)如下控制器:
維護(hù)接口控制器:用于發(fā)送不同的維護(hù)包以實(shí)現(xiàn)對(duì)處理器的控制,包括復(fù)位、加載SROM、請(qǐng)求獲取運(yùn)行狀態(tài),同時(shí)通過(guò)解析接收到的維護(hù)包獲取處理器的運(yùn)行狀態(tài);
加載SROM控制器:用于讀取SROM并把SROM發(fā)送到維護(hù)接口控制器,內(nèi)設(shè)環(huán)形緩沖區(qū),環(huán)形緩沖區(qū)由8個(gè)塊組成,每個(gè)塊有128字節(jié)存儲(chǔ)空間,編號(hào)分別為0、1、2…7;
寫(xiě)內(nèi)存控制器:用于讀取HMCODE和BIOS并發(fā)送到PCIE控制器;
開(kāi)機(jī)引導(dǎo)控制器:內(nèi)設(shè)一個(gè)開(kāi)機(jī)狀態(tài)機(jī),用于調(diào)配其它所有控制器完成開(kāi)機(jī)引導(dǎo),SROM程序中設(shè)計(jì)有一套與開(kāi)機(jī)引導(dǎo)控制器交互的協(xié)議,SROM能夠通知開(kāi)機(jī)引導(dǎo)控制器內(nèi)存已初始化,開(kāi)機(jī)引導(dǎo)控制器能夠通知SROM引導(dǎo)BIOS;
PCIE控制器:與寫(xiě)內(nèi)存控制器連接,用于為寫(xiě)內(nèi)存控制器寫(xiě)數(shù)據(jù)到處理器內(nèi)存提供一個(gè)快速通道;
存儲(chǔ)控制器:用于存取外部存儲(chǔ)器中的數(shù)據(jù);
所述方法包括以下步驟:
(1)開(kāi)機(jī)引導(dǎo)控制器對(duì)處理器進(jìn)行復(fù)位;
(2)開(kāi)機(jī)引導(dǎo)控制器通過(guò)維護(hù)接口控制器對(duì)處理器進(jìn)行初始化操作;
(3)開(kāi)機(jī)引導(dǎo)控制器查詢處理器初始化狀態(tài),并實(shí)時(shí)判斷是否運(yùn)行到等待加載SROM狀態(tài),如果是,則進(jìn)入下一步驟,如果否,則繼續(xù)查詢處理器初始化狀態(tài);
(4)開(kāi)機(jī)引導(dǎo)控制器觸發(fā)啟動(dòng)加載SROM控制器開(kāi)始加載SROM;加載SROM控制器啟動(dòng)后,通過(guò)存儲(chǔ)控制器從外部存儲(chǔ)器讀取SROM,每次讀取128字節(jié)依次快速寫(xiě)入到環(huán)形緩沖區(qū)的8個(gè)塊中,寫(xiě)入順序按照編號(hào)順序從0號(hào)塊依次寫(xiě)入,只要有空塊就繼續(xù)寫(xiě)入,寫(xiě)滿7號(hào)塊后再?gòu)?號(hào)塊開(kāi)始循環(huán),同時(shí),加載SROM控制器在寫(xiě)滿0號(hào)塊后把寫(xiě)入的128字節(jié)讀取出來(lái)發(fā)送到維護(hù)接口控制器中,等待維護(hù)接口控制器指示發(fā)送成功后進(jìn)行下一次讀取,讀取順序也按照編號(hào)順序循環(huán)進(jìn)行;
(5)加載完SROM后,開(kāi)機(jī)引導(dǎo)控制器再通過(guò)維護(hù)接口控制器引導(dǎo)處理器運(yùn)行SROM,并等待SROM初始化內(nèi)存;
(6)開(kāi)機(jī)引導(dǎo)控制器查詢初始化內(nèi)存狀態(tài),并實(shí)時(shí)判斷是否完成初始化內(nèi)存,如果是,則進(jìn)入下一步驟,如果否,則繼續(xù)查詢初始化內(nèi)存狀態(tài);
(7)開(kāi)機(jī)引導(dǎo)控制器觸發(fā)啟動(dòng)寫(xiě)內(nèi)存控制器;寫(xiě)內(nèi)存控制器啟動(dòng)后首先通過(guò)存儲(chǔ)控制器從外部存儲(chǔ)器讀取HMCODE,把HMCODE和相應(yīng)的目的地址發(fā)送給PCIE控制器,完成HMCODE加載后再讀取BIOS,把BIOS和相應(yīng)的目的地址發(fā)送給PCIE控制器;
(8)在寫(xiě)內(nèi)存控制器加載完HMCODE和BIOS后,開(kāi)機(jī)引導(dǎo)控制器再通過(guò)維護(hù)接口控制器發(fā)送命令啟動(dòng)BIOS。
2.根據(jù)權(quán)利要求1所述的快速引導(dǎo)申威處理器BIOS的方法,其特征在于:所述步驟(7)中,寫(xiě)內(nèi)存控制器讀取HMCODE和BIOS后,不經(jīng)過(guò)緩存直接發(fā)送到PCIE控制器。