專(zhuān)利名稱(chēng):一種啟動(dòng)處理器的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種啟動(dòng)處理器的方法和設(shè)備。
背景技術(shù):
為了滿(mǎn)足通信設(shè)備高性能、低成本的需求,設(shè)備中的單板性能需要大幅提升,單處理器以及單核處理器已經(jīng)無(wú)法滿(mǎn)足這些需求,需要采用多核處理器,甚至多個(gè)多核處理器來(lái)協(xié)同完成大規(guī)模的計(jì)算和數(shù)據(jù)業(yè)務(wù)處理。多處理器系統(tǒng)分為對(duì)稱(chēng)式和非對(duì)稱(chēng)式兩種。對(duì)稱(chēng)式架構(gòu)中的多個(gè)處理器之間的地位是完全平等的,各自運(yùn)行各自的程序,不受其他處理器控制。非對(duì)稱(chēng)式架構(gòu)中存在主、從之分,從處理器在程序運(yùn)行的過(guò)程中需要受主處理器的控制。非對(duì)稱(chēng)架構(gòu)中的主、從處理器可以是同一類(lèi)型的處理器,也可以是不同類(lèi)型和功能的處理器,既可以是單核處理器,也可以是多核處理器,從處理器的數(shù)量可以是一個(gè),也可以是多個(gè)。主、從處理器之間可以通過(guò)如以太網(wǎng)、PCI(Peripheral Component Interconnect,外設(shè)部件互連)接口、HT (HyperTransport,超傳輸)接口以及其他接口互連。目前針對(duì)主從式處理器架構(gòu)的實(shí)現(xiàn)方案如圖1所示主、從處理器各需要一套完整的外部存儲(chǔ)器,包括引導(dǎo)存儲(chǔ)器、程序存儲(chǔ)器和內(nèi)存,主、從處理器各自完成自身的初始化并通過(guò)各自的外部通訊接口(串口或以太網(wǎng)口等) 加載程序軟件,然后再通過(guò)互連接口建立主從通訊通道。上述實(shí)現(xiàn)方案設(shè)計(jì)復(fù)雜,對(duì)外的程序加載接口過(guò)多,占用過(guò)多的PCB (PrintedCircuit Board,印刷電路板)面積,而且引導(dǎo)程序和軟件程序文件維護(hù)也十分復(fù)雜。綜上所述,目前主從處理器啟動(dòng)過(guò)程中,由于主、從處理器各需要一個(gè)程序存儲(chǔ)器,使得對(duì)外的程序加載接口過(guò)多,占用過(guò)多的PCB面積,而且引導(dǎo)程序和軟件程序文件維護(hù)過(guò)程也十分復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種啟動(dòng)處理器的方法和設(shè)備,用以解決現(xiàn)有技術(shù)中存在的由于主、從處理器各需要一個(gè)程序存儲(chǔ)器,使得對(duì)外的程序加載接口過(guò)多,占用過(guò)多的PCB面積,而且引導(dǎo)程序和軟件程序文件維護(hù)過(guò)程也十分復(fù)雜的問(wèn)題。本發(fā)明實(shí)施例提供的一種啟動(dòng)處理器的方法,該方法包括主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件, 完成啟動(dòng);所述主處理器將啟動(dòng)參數(shù)和所述程序加載器中從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中;從處理器在初始化完成后,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。
本發(fā)明實(shí)施例提供的一種具有主從處理器的設(shè)備,該設(shè)備包括運(yùn)行程序加載器,用于存儲(chǔ)主處理器需要的第一軟件程序文件和從處理器需要的第二軟件程序文件;主處理器對(duì)應(yīng)的第一內(nèi)存,用于存儲(chǔ)啟動(dòng)參數(shù)和所述第二軟件程序文件;主處理器,用于在初始化完成后運(yùn)行程序加載器中的所述第一軟件程序文件,完成啟動(dòng),將啟動(dòng)參數(shù)和所述程序加載器中的所述第二軟件程序文件存儲(chǔ)到所述第一內(nèi)存中;從處理器,用于在初始化完成后,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。本發(fā)明實(shí)施例主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件,在完成啟動(dòng)后,將啟動(dòng)參數(shù)和所述程序加載器中從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中,從處理器在初始化完成后,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。由于本發(fā)明實(shí)施例中只需要一個(gè)程序加載器,就可以完成主從處理器的啟動(dòng)過(guò)程,從而減少了對(duì)外的程序加載的接口,減小了 PCB 面積,簡(jiǎn)化了引導(dǎo)程序和軟件程序文件的維護(hù)過(guò)程。
圖1為背景技術(shù)中主從式處理器架構(gòu)的示意圖;圖2為本發(fā)明實(shí)施例具有主從處理器的設(shè)備結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例啟動(dòng)處理器的方法流程示意圖;圖4為本發(fā)明實(shí)施例主處理器對(duì)從處理器進(jìn)行管理和控制的方法流程示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件,在完成啟動(dòng)后,將啟動(dòng)參數(shù)和程序加載器中從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中,從處理器在初始化完成后,通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。由于本發(fā)明實(shí)施例中只需要一個(gè)程序加載器,就可以完成主從處理器的啟動(dòng)過(guò)程,從而減少了對(duì)外的程序加載的接口,減小了 PCB面積。進(jìn)一步的,如果本發(fā)明實(shí)施例中主處理器根據(jù)主處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化,從處理器根據(jù)從處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化,由于主處理器和從處理器可以同時(shí)進(jìn)行初始化過(guò)程,從而縮短了系統(tǒng)的啟動(dòng)時(shí)間。其中,本發(fā)明實(shí)施例可以有多個(gè)主處理器,以及與每個(gè)主處理器相對(duì)應(yīng)的從處理器。一個(gè)主處理器可以對(duì)應(yīng)一個(gè)從處理器,也可以對(duì)應(yīng)多個(gè)從處理器。每個(gè)主處理器,以及每個(gè)處理器對(duì)應(yīng)的從處理器可以看作一套處理器組,每套處理器組都可以按照本發(fā)明的方案啟動(dòng)。比如有主處理器A和B,主處理器A對(duì)應(yīng)的從處理器Al和A2,以及主處理器B對(duì)應(yīng)的從處理器Bi,則主處理器A、從處理器Al和A2看作處理器組一,主處理器B、從處理器 Bl看作處理器組二。處理器組一和處理器組二相互獨(dú)立,但都可以按照本發(fā)明的方案啟動(dòng),也可以部分處理器組按照本發(fā)明的方案啟動(dòng),部分處理器組按照其他方案啟動(dòng)。如圖2所示,本發(fā)明實(shí)施例具有主從處理器的設(shè)備包括運(yùn)行程序加載器10、主處理器對(duì)應(yīng)的第一內(nèi)存20、主處理器30和至少一個(gè)從處理器40。程序加載器10,用于存儲(chǔ)主處理器30需要的第一軟件程序文件和至少一個(gè)從處理器40需要的第二軟件程序文件。這里的至少一個(gè)從處理器40是主處理器30管理下的所有從處理器40,每個(gè)從處理器40分別對(duì)應(yīng)一個(gè)第二軟件程序文件。也就是說(shuō),如果主處理器30管理N個(gè)從處理器 40,程序加載器10中存儲(chǔ)的第二軟件程序文件的數(shù)量也是N個(gè)。較佳的,程序加載器10是大容量程序加載器。采用大容量程序加載器的好處是 隨著系統(tǒng)性能的提升,處理器功能的增加,處理器所需要的軟件程序文件(包括操作系統(tǒng)和上層應(yīng)用軟件,操作系統(tǒng)又包含了內(nèi)核以及文件系統(tǒng))的容量也會(huì)隨之增加。當(dāng)處理器為多核處理器時(shí),若每個(gè)核心都需要獨(dú)立運(yùn)行不同的軟件程序文件時(shí),軟件版本文件的容量會(huì)成倍增加。采用大容量程序加載器能夠滿(mǎn)足系統(tǒng)的整體需求,簡(jiǎn)化設(shè)計(jì),也利于系統(tǒng)升級(jí)。第一內(nèi)存20,用于存儲(chǔ)啟動(dòng)參數(shù)和第二軟件程序文件。較佳的,第一內(nèi)存20可以是大容量?jī)?nèi)存。主處理器30,用于在初始化完成后運(yùn)行程序加載器中的第一軟件程序文件,完成啟動(dòng),然后將啟動(dòng)參數(shù)和程序加載器10中的第二軟件程序文件存儲(chǔ)到第一內(nèi)存20中。在具體實(shí)施過(guò)程中啟動(dòng)參數(shù)是預(yù)先在第一軟件程序中配置的,每個(gè)啟動(dòng)參數(shù)都與一個(gè)第二軟件程序文件相對(duì)應(yīng)。如果主處理器30管理3個(gè)從處理器40,則有3個(gè)第二軟件程序文件,相應(yīng)的也有3組啟動(dòng)參數(shù)。其中,主處理器30可以通過(guò)外部總線與程序加載器10連接。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于外部總線,其他能夠?qū)⒅魈幚砥?0和程序加載器10連接的方式都適用本發(fā)明實(shí)施例。從處理器40,用于在初始化完成后,通過(guò)第一內(nèi)存20中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。如果主處理器30控制多個(gè)從處理器40,則主處理器30需要把每個(gè)從處理器40的啟動(dòng)參數(shù)和第二軟件程序文件存儲(chǔ)到第一內(nèi)存20中;每個(gè)從處理器40可以根據(jù)啟動(dòng)參數(shù)確定第一內(nèi)存20中哪個(gè)第二軟件程序文件是自己的,并運(yùn)行第二軟件程序文件,從而完成啟動(dòng)。其中,主處理器30可以預(yù)先在第一內(nèi)存20中規(guī)定一部分存儲(chǔ)空間作為主從處理器之間的映射空間;相應(yīng)的,主處理器30將啟動(dòng)參數(shù)和程序加載器10中的第二軟件程序文件存儲(chǔ)到第一內(nèi)存20的映射空間中。其中,本發(fā)明實(shí)施例的設(shè)備還可以進(jìn)一步包括主處理器對(duì)應(yīng)的第一 BOOT加載器 50和從處理器對(duì)應(yīng)的第二 BOOT加載器60。第一 BOOT加載器50,用于存儲(chǔ)主處理器對(duì)應(yīng)的初始化代碼。第二 BOOT加載器60,用于存儲(chǔ)從處理器對(duì)應(yīng)的初始化代碼。相應(yīng)的,主處理器30根據(jù)第一 BOOT加載器50中的初始化代碼完成初始化;從處理器40根據(jù)第二 BOOT加載器中的初始化代碼完成初始化。
由于主處理器和從處理器可以同時(shí)進(jìn)行初始化過(guò)程,從而縮短了系統(tǒng)的啟動(dòng)時(shí)間。進(jìn)一步的,主處理器30可以通過(guò)外部總線掛接第一 BOOT加載器50 ;從處理器40 可以通過(guò)外部總線掛接第二 BOOT加載器60。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于外部總線,其他能夠?qū)⑻幚砥骱虰OOT加載器連接的方式都適用本發(fā)明實(shí)施例。具體的,系統(tǒng)上電后,主處理器30和從處理器40分別從各自外接的第一 BOOT加載器50和第二 BOOT加載器60中讀取代碼,完成處理器及其外圍接口的初始化。進(jìn)一步的, 如果主處理器30和從處理器40之間通過(guò)高速互連通道連接,則主處理器30和從處理器40 還要完成高速互連通道的初始化,建立通訊通路。主處理器30還可以在第一內(nèi)存20中為高速互連通道創(chuàng)建足夠大的映射空間,便于從處理器40進(jìn)行軟件程序文件的讀取和執(zhí)行。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于高速互連通道,其他能夠?qū)⒅魈幚砥骱蛷奶幚砥鞯姆绞蕉歼m用本發(fā)明實(shí)施例。主處理器30在初始化完成后,第一軟件程序文件啟動(dòng)前,將第二軟件程序文件存儲(chǔ)到程序加載器10中。在具體實(shí)施過(guò)程中,主處理器30初始化完成后,可以通過(guò)外部接口,如串口、以太網(wǎng)口等,將系統(tǒng)外的操作維護(hù)設(shè)備中的第一軟件程序文件和第二軟件程序文件下載到程序加載器10中。其中,主處理器30將啟動(dòng)參數(shù)和程序加載器10中的第二軟件程序文件存儲(chǔ)到第一內(nèi)存20之后,將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平;相應(yīng)的,從處理器40在初始化完成后,判斷READY信號(hào)的電平是否變?yōu)闇?zhǔn)備電平, 在確定READY信號(hào)的電平是準(zhǔn)備電平后,通過(guò)主處理器對(duì)應(yīng)的內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。這里的準(zhǔn)備電平可以是高電平也可以是低電平。為了進(jìn)一步驗(yàn)證啟動(dòng)參數(shù)是否正確,主處理器還可以在啟動(dòng)參數(shù)中增加READY狀態(tài)標(biāo)志位。具體的,主處理器30將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平之后,對(duì)啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位進(jìn)行置位操作,使置位后的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確。比如可以設(shè)置“ 1,,表示啟動(dòng)參數(shù)正確。相應(yīng)的,從處理器40在確定READY信號(hào)的電平是準(zhǔn)備電平,且確定啟動(dòng)參數(shù)中的 READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確之后,通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。如果從處理器40在確定READY信號(hào)的電平是準(zhǔn)備電平之后,發(fā)現(xiàn)啟動(dòng)參數(shù)中的 READY狀態(tài)標(biāo)志位沒(méi)有表示啟動(dòng)參數(shù)正確,則認(rèn)為啟動(dòng)參數(shù)錯(cuò)誤,向主處理器30和/或其他監(jiān)控設(shè)備上報(bào)異常信息。啟動(dòng)參數(shù)除了包括READY狀態(tài)標(biāo)志位,還可以包括下列參數(shù)中的一種或多種啟動(dòng)選擇參數(shù)該參數(shù)說(shuō)明了在多核處理器情況下,從處理器40的哪些核心或線程需要執(zhí)行和加載軟件程序文件,若從處理器40為單核處理器,該參數(shù)無(wú)效;軟件程序文件文件起始地址該參數(shù)說(shuō)明了從處理器40需要執(zhí)行的軟件程序文件文件所在內(nèi)存映射空間的起始位置;軟件程序文件文件長(zhǎng)度該參數(shù)說(shuō)明了從處理器40需要執(zhí)行的軟件程序文件文件的大小。其中,從處理器40通過(guò)第一內(nèi)存20中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)的方式有多種,下面列舉兩種。方式一、從處理器40根據(jù)第一內(nèi)存中的啟動(dòng)參數(shù),運(yùn)行第一內(nèi)存中的第二軟件程序文件,完成啟動(dòng)。具體的,主處理器30為高速互連通道與第一內(nèi)存之間建立映射關(guān)系,從處理器40 則可以通過(guò)高速互連通道及高速內(nèi)存總線直接讀取第一內(nèi)存的映射空間中的啟動(dòng)參數(shù),并且在啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確時(shí),讀取啟動(dòng)參數(shù)中的其他參數(shù), 并根據(jù)讀取的參數(shù),運(yùn)行第一內(nèi)存中的第二軟件程序文件,從而完成啟動(dòng)。這種方式的好處是在主處理器完全啟動(dòng),并將第二軟件程序文件存儲(chǔ)到第一內(nèi)存后,從處理器已經(jīng)完成初始化過(guò)程,可以進(jìn)行啟動(dòng)操作,從而縮短了系統(tǒng)啟動(dòng)時(shí)間,節(jié)省了從處理器加載軟件程序的時(shí)間。方式二、本發(fā)明實(shí)施例的設(shè)備還可以進(jìn)一步包括從處理器對(duì)應(yīng)的第二內(nèi)存70。第二內(nèi)存70,用于存儲(chǔ)第二軟件程序文件;相應(yīng)的,從處理器40根據(jù)第一內(nèi)存20中從處理器40本身對(duì)應(yīng)的啟動(dòng)參數(shù)確定第一內(nèi)存20中的第二軟件程序文件,并將確定的第二軟件程序文件存儲(chǔ)到從處理器40對(duì)應(yīng)的第二內(nèi)存中,運(yùn)行第二內(nèi)存70中的第二軟件程序文件,完成啟動(dòng)。具體的,如果主處理器30為高速互連通道與第一內(nèi)存之間建立映射關(guān)系,從處理器40則可以通過(guò)高速互連通道及高速內(nèi)存總線直接讀取第一內(nèi)存的映射空間中的啟動(dòng)參數(shù),并且在啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確時(shí),根據(jù)啟動(dòng)參數(shù)中的其他參數(shù),確定第一內(nèi)存20的映射空間中的第二軟件程序文件,并將確定的第二軟件程序文件拷貝到第二內(nèi)存70中,通過(guò)高速內(nèi)存總線讀取第二內(nèi)存70中的第二軟件程序文件并運(yùn)行, 從而完成啟動(dòng)。這種方式的好處是從處理器40在自己的內(nèi)存中執(zhí)行程序的效率更高,速度更快,節(jié)省了從處理器加載軟件程序的時(shí)間,而且在本地(自己的內(nèi)存)執(zhí)行不受主處理器的影響(比如主處理器異常等情況)。較佳的,第二內(nèi)存70可以是大容量?jī)?nèi)存。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于高速內(nèi)存總線,其他能夠?qū)⑻幚砥骱蛢?nèi)存連接的方式都適用本發(fā)明實(shí)施例。如圖3所示,本發(fā)明實(shí)施例啟動(dòng)處理器的方法包括下列步驟步驟301、主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件,完成啟動(dòng)。步驟302、主處理器將啟動(dòng)參數(shù)和程序加載器中至少一個(gè)從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中。步驟303、從處理器在初始化完成后,通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。這里的至少一個(gè)從處理器是主處理器管理下的所有從處理器,每個(gè)從處理器分別對(duì)應(yīng)一個(gè)第二軟件程序文件。也就是說(shuō),如果主處理器管理N個(gè)從處理器,程序加載器中存儲(chǔ)的第二軟件程序文件的數(shù)量也是N個(gè)。 在 具體實(shí)施過(guò)程中啟動(dòng)參數(shù)是預(yù)先在第一軟件程序中配置的,每個(gè)啟動(dòng)參數(shù)都與一個(gè)第二軟件程序文件相對(duì)應(yīng)。如果主處理器管理3個(gè)從處理器,則有3個(gè)第二軟件程序文件,相應(yīng)的也有3組啟動(dòng)參數(shù)。 較佳的,程序加載器是大容量程序加載器,第一內(nèi)存是大容量?jī)?nèi)存。其中,主處理器可以通過(guò)外部總線與程序加載器連接。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于外部總線,其他能夠?qū)⒅魈幚砥骱统绦蚣虞d器連接的方式都適用本發(fā)明實(shí)施例。如果主處理器控制多個(gè)從處理器,則步驟302中,主處理器需要把每個(gè)從處理器的啟動(dòng)參數(shù)和第二軟件程序文件存儲(chǔ)到第一內(nèi)存中;步驟303中,每個(gè)從處理器可以根據(jù)啟動(dòng)參數(shù)確定第一內(nèi)存中哪個(gè)第二軟件程序文件是自己的,并運(yùn)行第二軟件程序文件,從而完成啟動(dòng)。其中,主處理器可以預(yù)先在第一內(nèi)存中規(guī)定一部分存儲(chǔ)空間作為主從處理器之間的映射空間;相應(yīng)的,步驟302中,主處理器將啟動(dòng)參數(shù)和程序加載器中的第二軟件程序文件存儲(chǔ)到第一內(nèi)存的映射空間中。步驟301之前還可以進(jìn)一步包括步驟300、主處理器根據(jù)主處理器對(duì)應(yīng)的第一 BOOT加載器中的初始化代碼完成初始化,以及從處理器根據(jù)從處理器對(duì)應(yīng)的第二 BOOT加載器中的初始化代碼完成初始化。由于主處理器和從處理器可以同時(shí)進(jìn)行初始化過(guò)程,從而縮短了系統(tǒng)的啟動(dòng)時(shí)間。進(jìn)一步的,主處理器可以通過(guò)外部總線掛接第一 BOOT加載器;從處理器可以通過(guò)外部總線掛接第二 BOOT加載器。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于外部總線,其他能夠?qū)⑻幚砥骱虰OOT加載器連接的方式都適用本發(fā)明實(shí)施例。具體的,步驟300中,系統(tǒng)上電后,主處理器和從處理器分別從各自外接的第一 BOOT加載器和第二 BOOT加載器中讀取代碼,完成處理器及其外圍接口的初始化。進(jìn)一步的,如果主處理器和從處理器之間通過(guò)高速互連通道連接,則主處理器和從處理器還要完成高速互連通道的初始化,建立通訊通路。主處理器還可以在第一內(nèi)存中為高速互連通道創(chuàng)建足夠大的映射空間,便于從處理器進(jìn)行軟件程序文件的讀取和執(zhí)行。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于高速互連通道,其他能夠?qū)⒅魈幚砥骱蛷奶幚砥鞯姆绞蕉歼m用本發(fā)明實(shí)施例。其中,主處理器在初始化完成后,第一軟件程序文件啟動(dòng)前,將第二軟件程序文件存儲(chǔ)到程序加載器中。在具體實(shí)施過(guò)程中,主處理器初始化完成后,可以通過(guò)外部接口,如串口、以太網(wǎng)口等,將系統(tǒng)外的操作維護(hù)設(shè)備中的第一軟件程序文件和第二軟件程序文件下載到程序加載器10中。步驟302中,主處理器將啟動(dòng)參數(shù)和程序加載器中的第二軟件程序文件存儲(chǔ)到第一內(nèi)存之后,將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平;
相應(yīng)的,步驟303中,從處理器在初始化完成后,判斷READY信號(hào)的電平是否變?yōu)闇?zhǔn)備電平,在確定READY信號(hào)的電平是準(zhǔn)備電平后,通過(guò)主處理器對(duì)應(yīng)的內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。這里的準(zhǔn)備電平可以是高電平也可以是低電平。為了進(jìn)一步驗(yàn)證啟動(dòng)參數(shù)是否正確,步驟302中,主處理器還可以在啟動(dòng)參數(shù)中增加READY狀態(tài)標(biāo)志位。具體的,主處理器將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平之后,對(duì)啟動(dòng)參數(shù)中的 READY狀態(tài)標(biāo)志位進(jìn)行置位操作,使置位后的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確。比如可以設(shè)置“ 1,,表示啟動(dòng)參數(shù)正確。相應(yīng)的,步驟303中,從處理器在確定READY信號(hào)的電平是準(zhǔn)備電平,且確定啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確之后,通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。如果從處理器在確定READY信號(hào)的電平是準(zhǔn)備電平之后,發(fā)現(xiàn)啟動(dòng)參數(shù)中的 READY狀態(tài)標(biāo)志位沒(méi)有表示啟動(dòng)參數(shù)正確,則認(rèn)為啟動(dòng)參數(shù)錯(cuò)誤,向主處理器和/或其他監(jiān)控設(shè)備上報(bào)異常信息。啟動(dòng)參數(shù)包括的具體內(nèi)容可以參見(jiàn)圖2中相應(yīng)內(nèi)容,在此不再贅述。步驟303中,從處理器通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)的方式有多種,下面列舉兩種。方式一、從處理器根據(jù)第一內(nèi)存中的啟動(dòng)參數(shù),運(yùn)行第一內(nèi)存中的第二軟件程序文件,完成啟動(dòng)。具體的,主處理器為高速互連通道與第一內(nèi)存之間建立映射關(guān)系,從處理器則可以通過(guò)高速互連通道及高速內(nèi)存總線直接讀取第一內(nèi)存的映射空間中的啟動(dòng)參數(shù),并且在啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確時(shí),讀取啟動(dòng)參數(shù)中的其他參數(shù),并根據(jù)讀取的參數(shù),運(yùn)行第一內(nèi)存中的第二軟件程序文件,從而完成啟動(dòng)。方式二、從處理器根據(jù)第一內(nèi)存中從處理器40本身對(duì)應(yīng)的啟動(dòng)參數(shù)確定第一內(nèi)存中的第二軟件程序文件,并將確定的第二軟件程序文件存儲(chǔ)到從處理器對(duì)應(yīng)的第二內(nèi)存中,運(yùn)行第二內(nèi)存中的第二軟件程序文件,完成啟動(dòng)。具體的,如果主處理器為高速互連通道與第一內(nèi)存之間建立映射關(guān)系,從處理器則可以通過(guò)高速互連通道及高速內(nèi)存總線直接讀取第一內(nèi)存的映射空間中的啟動(dòng)參數(shù),并且在啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確時(shí),根據(jù)啟動(dòng)參數(shù)中的其他參數(shù), 確定第一內(nèi)存的映射空間中的第二軟件程序文件,并將確定的第二軟件程序文件拷貝到第二內(nèi)存中,通過(guò)高速內(nèi)存總線讀取第二內(nèi)存中的第二軟件程序文件并運(yùn)行,從而完成啟動(dòng)。需要說(shuō)明的是,本發(fā)明實(shí)施例并不局限于高速內(nèi)存總線,其他能夠?qū)⑻幚砥骱蛢?nèi)存連接的方式都適用本發(fā)明實(shí)施例。較佳的,第二內(nèi)存是大容量?jī)?nèi)存。如圖4所示,本發(fā)明實(shí)施例主處理器對(duì)從處理器進(jìn)行管理和控制的方法包括下列步驟步驟401、系統(tǒng)上電后,主處理器從第一 BOOT加載器中讀取代碼,完成處理器及其外圍接口的初始化
同時(shí)系統(tǒng)上電后,從處理器從第二 BOOT加載器中讀取代碼,完成處理器及其外圍接口的初始化。其中,主處理器初始化過(guò)程包括完成高速互連通道的初始化,建立通訊通路,主處理器在第一內(nèi)存空間中為高速互連通道創(chuàng)建足夠大的映射空間,便于從處理器進(jìn)行軟件程序的讀取和執(zhí)行;從處理器初始化過(guò)程包括完成高速互連通道的初始化,建立通訊通路。步驟402、主處理器初始化完成后,通過(guò)外部接口,將主處理器需要的第一軟件程序文件以及從處理器需要的第二軟件程序文件,下載到程序加載器中,隨后開(kāi)始運(yùn)行程序加載器中的主處理器的第一軟件程序文件;同時(shí)從處理器在初始化完成后開(kāi)始判斷READY信號(hào)的電平是否為高電平,如果是高電平,則執(zhí)行步驟404;否則,繼續(xù)判斷READY信號(hào)的電平是否為高電平。步驟403、主處理器將啟動(dòng)參數(shù)以及從處理器需要的第二軟件程序文件放置到第一內(nèi)存中的主從處理器高速互連通道的映射空間內(nèi),完成后主處理器驅(qū)動(dòng)READY信號(hào)的電平為高電平,并將啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位置為“1”,并執(zhí)行步驟407。步驟404、從處理器檢測(cè)到READY信號(hào)的高電平后,讀取內(nèi)存映射空間中的READY 狀態(tài)標(biāo)志位。步驟405、從處理器判斷READY狀態(tài)標(biāo)志位是否與READY信號(hào)電平一致,即是否為 “1”,如果若不一致,則確定啟動(dòng)參數(shù)錯(cuò)誤,上報(bào)異常信息;否則執(zhí)行步驟406。步驟406、從處理器通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。步驟406中有兩種處理方式,具體可以參見(jiàn)圖3中的方式一和二,在此不贅述。步驟407、主處理器和從處理器均完成啟動(dòng)后,主處理器利用高速互連通道對(duì)從處理器進(jìn)行管理和控制。從上述實(shí)施例中可以看出本發(fā)明實(shí)施例主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件,完成啟動(dòng);主處理器將啟動(dòng)參數(shù)和程序加載器中從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中;從處理器在初始化完成后,通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。由于本發(fā)明實(shí)施例中只需要一個(gè)程序加載器,就可以完成主從處理器的啟動(dòng)過(guò)程,從而減少了對(duì)外的程序加載的接口,減小了 PCB面積,簡(jiǎn)化了引導(dǎo)程序和軟件程序文件的維護(hù)過(guò)程。進(jìn)一步的,如果本發(fā)明實(shí)施例中主處理器根據(jù)主處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化,從處理器根據(jù)從處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化,由于主處理器和從處理器可以同時(shí)進(jìn)行初始化過(guò)程,從而縮短了系統(tǒng)的啟動(dòng)時(shí)間。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種啟動(dòng)處理器的方法,其特征在于,該方法包括主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件,完成啟動(dòng);所述主處理器將啟動(dòng)參數(shù)和所述程序加載器中至少一個(gè)從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中;從處理器在初始化完成后,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)確定所述第一內(nèi)存中的第二軟件程序文件,并根據(jù)確定的第二軟件程序文件,完成啟動(dòng)。
2.如權(quán)利要求1所述的方法,其特征在于,所述主處理器運(yùn)行程序加載器中主處理器需要的第一軟件程序文件之前還包括所述主處理器根據(jù)主處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化,以及所述從處理器根據(jù)從處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化。
3.如權(quán)利要求1所述的方法,其特征在于,所述主處理器在初始化完成后,第一程序文件啟動(dòng)前還包括所述主處理器將所述第一軟件程序文件和所述第二軟件程序文件存儲(chǔ)到所述程序加載器中。
4.如權(quán)利要求1所述的方法,其特征在于,所述主處理器將啟動(dòng)參數(shù)和所述程序加載器中的第二軟件程序文件存儲(chǔ)到第一內(nèi)存之后還包括所述主處理器將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平;所述從處理器通過(guò)所述主處理器對(duì)應(yīng)的內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,第二軟件程序文件啟動(dòng)之前還包括所述從處理器確定READY信號(hào)的電平是準(zhǔn)備電平。
5.如權(quán)利要求4所述的方法,其特征在于,所述啟動(dòng)參數(shù)包括READY狀態(tài)標(biāo)志位; 所述主處理器將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平之后還包括所述主處理器對(duì)所述啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位進(jìn)行置位操作,使置位后的 READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確;所述從處理器確定READY信號(hào)的電平是準(zhǔn)備電平之后,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,第二軟件程序文件啟動(dòng)之前還包括所述從處理器確定所述啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確。
6.如權(quán)利要求1 5任一所述的方法,其特征在于,所述從處理器完成啟動(dòng)包括所述從處理器根據(jù)所述第一內(nèi)存中的啟動(dòng)參數(shù),運(yùn)行所述第一內(nèi)存中的所述第二軟件程序文件,完成啟動(dòng);或所述從處理器根據(jù)所述第一內(nèi)存中的啟動(dòng)參數(shù)確定所述第一內(nèi)存中的所述第二軟件程序文件,并將確定的所述第二軟件程序文件存儲(chǔ)到從處理器對(duì)應(yīng)的第二內(nèi)存中,運(yùn)行所述第二內(nèi)存中的所述第二軟件程序文件,完成啟動(dòng)。
7.如權(quán)利要求6所述的方法,其特征在于,所述主處理器和所述從處理器之間通過(guò)高速互連通道連接; 所述主處理器和所述第一內(nèi)存之間通過(guò)高速內(nèi)存總線連接; 所述從處理器和所述第二內(nèi)存之間通過(guò)高速內(nèi)存總線連接。
8.一種具有主從處理器的設(shè)備,其特征在于,該設(shè)備包括運(yùn)行程序加載器,用于存儲(chǔ)主處理器需要的第一軟件程序文件和至少一個(gè)從處理器需要的第二軟件程序文件;主處理器對(duì)應(yīng)的第一內(nèi)存,用于存儲(chǔ)啟動(dòng)參數(shù)和所述第二軟件程序文件; 主處理器,用于在初始化完成后運(yùn)行程序加載器中的所述第一軟件程序文件,完成啟動(dòng),將啟動(dòng)參數(shù)和所述程序加載器中的所述第二軟件程序文件存儲(chǔ)到所述第一內(nèi)存中;至少一個(gè)從處理器,用于在初始化完成后,,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)確定所述第一內(nèi)存中的第二軟件程序文件,并根據(jù)確定的第二軟件程序文件,完成啟動(dòng)。
9.如權(quán)利要求8所述的設(shè)備,其特征在于,所述設(shè)備還包括主處理器對(duì)應(yīng)的BOOT加載器,用于存儲(chǔ)主處理器對(duì)應(yīng)的初始化代碼; 從處理器對(duì)應(yīng)的BOOT加載器,用于存儲(chǔ)從處理器對(duì)應(yīng)的初始化代碼; 所述主處理器還用于根據(jù)主處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化; 所述從處理器還用于根據(jù)從處理器對(duì)應(yīng)的BOOT加載器中的初始化代碼完成初始化。
10.如權(quán)利要求8所述的設(shè)備,其特征在于,所述主處理器還用于在初始化完成后,第一軟件程序文件啟動(dòng)前,將所述第一軟件程序文件和所述第二軟件程序文件存儲(chǔ)到所述程序加載器中。
11.如權(quán)利要求8所述的設(shè)備,其特征在于,所述主處理器還用于將啟動(dòng)參數(shù)和所述程序加載器中的所述第二軟件程序文件存儲(chǔ)到第一內(nèi)存之后,將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平; 所述從處理器具體用于在確定READY信號(hào)的電平是準(zhǔn)備電平后,通過(guò)所述主處理器對(duì)應(yīng)的內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。
12.如權(quán)利要求11所述的設(shè)備,其特征在于,所述主處理器還用于將準(zhǔn)備READY信號(hào)的電平變?yōu)闇?zhǔn)備電平之后,對(duì)所述啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位進(jìn)行置位操作,使置位后的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確; 所述從處理器具體用于在確定READY信號(hào)的電平是準(zhǔn)備電平,且確定所述啟動(dòng)參數(shù)中的READY狀態(tài)標(biāo)志位表示啟動(dòng)參數(shù)正確之后,通過(guò)所述第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件,完成啟動(dòng)。
13.如權(quán)利要求8 12任一所述的設(shè)備,其特征在于,所述從處理器具體用于根據(jù)所述第一內(nèi)存中的啟動(dòng)參數(shù),運(yùn)行所述第一內(nèi)存中的所述第二軟件程序文件,完成啟動(dòng);或根據(jù)所述第一內(nèi)存中的啟動(dòng)參數(shù)確定所述第一內(nèi)存中的所述第二軟件程序文件,并將確定的所述第二軟件程序文件存儲(chǔ)到從處理器對(duì)應(yīng)的第二內(nèi)存中,運(yùn)行所述第二內(nèi)存中的所述第二軟件程序文件,完成啟動(dòng)。
14.如權(quán)利要求13所述的設(shè)備,其特征在于,所述主處理器和所述從處理器之間通過(guò)高速互連通道連接; 所述主處理器和所述第一內(nèi)存之間通過(guò)高速內(nèi)存總線連接; 所述從處理器和所述第二內(nèi)存之間通過(guò)高速內(nèi)存總線連接。
全文摘要
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,特別涉及一種啟動(dòng)處理器的方法和設(shè)備,用以解決現(xiàn)有技術(shù)中存在的由于主、從處理器各需要一個(gè)程序存儲(chǔ)器,使得對(duì)外的程序加載接口過(guò)多,占用過(guò)多的PCB面積,而且引導(dǎo)程序和軟件程序文件維護(hù)過(guò)程也十分復(fù)雜的問(wèn)題。本發(fā)明實(shí)施例的方法包括主處理器在初始化完成后運(yùn)行程序加載器中主處理器需要的第一軟件程序文件完成啟動(dòng),將啟動(dòng)參數(shù)和程序加載器中從處理器需要的第二軟件程序文件存儲(chǔ)到主處理器對(duì)應(yīng)的第一內(nèi)存中;從處理器在初始化完成后,通過(guò)第一內(nèi)存中的啟動(dòng)參數(shù)和第二軟件程序文件完成啟動(dòng)。采用本發(fā)明實(shí)施例的方法能夠減少對(duì)外的程序加載的接口,減小PCB面積,簡(jiǎn)化引導(dǎo)程序和軟件程序文件的維護(hù)過(guò)程。
文檔編號(hào)G06F9/445GK102253844SQ20101017952
公開(kāi)日2011年11月23日 申請(qǐng)日期2010年5月18日 優(yōu)先權(quán)日2010年5月18日
發(fā)明者田洪濤 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司