專利名稱:中央處理單元啟動的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電數(shù)字?jǐn)?shù)據(jù)處理,尤其涉及一種中央處理單元(CPU)啟動的方法及系統(tǒng)。
背景技術(shù):
現(xiàn)在中央處理單元(CPU)啟動都有單獨的啟動系統(tǒng),特別是在多CPU系統(tǒng)中,每個CPU由各自的啟動芯片(BOOTROM)啟動,這樣的設(shè)計方式使用的器件數(shù)量多,而且不易實現(xiàn)BOOTROM軟件升級,造成系統(tǒng)維護(hù)和增強(qiáng)功能的困難。
如圖1所示,在現(xiàn)有技術(shù)方案中,各個CPU系統(tǒng)(如圖中CPU1系統(tǒng)和CPU2系統(tǒng))都有獨立的BOOTROM,系統(tǒng)只能從該CPU對應(yīng)的BOOTROM啟動。由于整個系統(tǒng)中,通常只以某個CPU為主,其他CPU協(xié)助處理業(yè)務(wù),各CPU之間只進(jìn)行簡單的通信,系統(tǒng)設(shè)計中為了降低成本,一般只實現(xiàn)主CPU的BOOTROM升級,而各個從CPU的BOOTROM不升級。如果實現(xiàn)所有BOOTROM的升級,則需要為每個BOOTROM設(shè)計加載電路,系統(tǒng)設(shè)計復(fù)雜度增加,成本上升。
現(xiàn)有技術(shù)方案的缺點為(1)在多CPU系統(tǒng)中,每個CPU通道由各自獨立的BOOTROM引導(dǎo)啟動,系統(tǒng)中需要使用多個BOOTROM存儲器,增加了系統(tǒng)成本。
(2)系統(tǒng)需要升級所有CPU的軟件時,為降低成本,只實現(xiàn)主CPU的升級,從CPU不升級。
(3)實現(xiàn)從CPU升級需要增加系統(tǒng)復(fù)雜度,增加系統(tǒng)成本。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)各個CPU通過獨立的BOOTROM啟動所帶來的成本高、升級復(fù)雜等缺點,提供一種CPU啟動的方法和系統(tǒng),從而降低系統(tǒng)成本,并方便實現(xiàn)CPU的升級。
本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案為這種中央處理單元啟動的方法,其特征在于它包括以下步驟在多中央處理單元(CPU)系統(tǒng)中,利用同一個存儲器存放各個CPU的引導(dǎo)程序,各個CPU與該存儲器之間的數(shù)據(jù)/地址總線分別通過緩沖器(buffer)進(jìn)行隔離;主CPU控制各個CPU對相應(yīng)的buffer及存儲器的選通,使各個CPU按順序先后對存儲器進(jìn)行訪問,從存儲器的相應(yīng)區(qū)域讀取數(shù)據(jù),實現(xiàn)各個CPU系統(tǒng)的啟動。
所述的多個CPU的引導(dǎo)程序和應(yīng)用軟件在同一個flash中根據(jù)地址劃分存放在不同的空間。
CPU系統(tǒng)啟動流程如下1)上電或整個系統(tǒng)復(fù)位后,主CPU使得各從CPU處于復(fù)位狀態(tài)而無法啟動,主CPU給出片選信號選通與主CPU對應(yīng)的buffer及flash,正常啟動;2)主CPU啟動完畢或啟動到某個步驟后,解除從CPU的復(fù)位,并調(diào)整CPU輸出的控制信號,使得從CPU可以訪問flash;3)從CPU給出片選信號選通該從CPU對應(yīng)的buffer及flash,正常啟動。
從CPU已正常啟動或啟動到不需要flash后,主CPU通過調(diào)整其輸出的控制信號,取消從CPU選通該從CPU對應(yīng)的buffer的權(quán)限,防止從CPU誤訪問flash。
所述的從CPU已正常啟動的信息通過CPU之間的通信通道獲得,也可以估算一定的時間,確保該從CPU已正常啟動或已啟動到不需要flash的階段。
在各CPU正常運行期間,如果從CPU需要訪問flash,必須通過CPU之間的通信通道向主CPU提出申請,得到允許后,主CPU調(diào)整其輸出的控制信號,使該從CPU可以選通讀取flash;讀取完畢后通知主CPU,主CPU調(diào)整其輸出的控制信號,取消該從CPU選通讀取flash的權(quán)限。
如果flash的空間較大,某些CPU的地址范圍不夠時,根據(jù)該CPU程序在flash中存放的地址,在buffer之前給對應(yīng)的flash地址線做上、下拉處理,將其從外部強(qiáng)制成所需的固定電平,使得該CPU可以訪問到分配的flash空間。
與上述中央處理單元啟動方法相應(yīng)的CPU啟動系統(tǒng),其特征在于主、從CPU的數(shù)據(jù)/地址總線分別通過緩沖器(buffer)隔離后連接到同一儲存器;主CPU的片選信號直接輸入到與主CPU對應(yīng)的buffer的使能信號管腳,同時該片選信號在與各從CPU的片選信號相與后輸入儲存器,控制儲存器的選通;從CPU的片選信號在與所述主CPU的片選信號相與之前,由上拉電阻拉高,并被與該從CPU對應(yīng)的buffer隔離;主CPU復(fù)位信號經(jīng)下拉電阻拉低后輸出到各從CPU的復(fù)位管腳,同時,該復(fù)位信號在進(jìn)行非運算后,與經(jīng)上拉電阻拉高的主CPU輸出的控制信號及從CPU的片選信號進(jìn)行或運算,所產(chǎn)生的信號輸入該從CPU對應(yīng)的buffer的使能信號管腳。
所述的儲存器為閃存(flash)器件。
所述的flash器件為具有塊保護(hù)功能的flash器件。
主、從CPU之間可通過通信通道相連進(jìn)行通訊。
各CPU的數(shù)據(jù)/地址總線還分別連接同步動態(tài)存儲器(sdram)或其它存儲器件。
本發(fā)明的有益效果為本發(fā)明在多CPU系統(tǒng)中使用flash來放置各CPU的引導(dǎo)程序和應(yīng)用軟件,所有CPU共用一個flash,從同一個flash啟動,相對于現(xiàn)有技術(shù)從不同的BOOTROM啟動而言節(jié)省了成本,由于各個CPU都可以訪問flash,可以很方便地實現(xiàn)對所有CPU的軟件進(jìn)行升級。
圖1為現(xiàn)有的CPU啟動原理示意圖;圖2為本發(fā)明CPU啟動原理示意圖;圖3為本發(fā)明多個CPU從同一個flash啟動的控制電路圖;圖4為本發(fā)明CPU啟動流程圖;圖5為本發(fā)明CPU地址線范圍不足時的處理示意圖。
具體實施例方式
下面根據(jù)附圖和實施例對本發(fā)明作進(jìn)一步詳細(xì)說明如圖2所示為本發(fā)明CPU啟動原理示意圖,本發(fā)明使用可讀寫的存儲器(如flash閃存器件)作為載體,取代現(xiàn)有的啟動芯片(bootrom),使用flash器件存放CPU軟件,所有CPU共用同一個flash,從同一個flash啟動。由于CPU啟動時讀取bootrom的時間很短,程序搬運到同步動態(tài)存儲器(sdram)后不再訪問bootrom,所以可以通過主CPU來控制各個CPU系統(tǒng)對bootrom按順序先后訪問,達(dá)到共享的目的。為防止各CPU隨意選取通flash以及隔離各個總線防止干擾,各個CPU系統(tǒng)與flash之間的數(shù)據(jù)/地址總線、及部分或所有片選信號通過緩沖器(buffer)進(jìn)行隔離,由主CPU(圖中CPU1)對各buffer進(jìn)行控制,實現(xiàn)各CPU對flash的先后訪問。同時主CPU可以在正常運行時選通flash,進(jìn)行各個CPU軟件的升級加載。
如圖3所示,以兩個CPU系統(tǒng)為例說明本發(fā)明的技術(shù)方案,圖中CPU1為主CPU,CPU2為從CPU。CPU1、CPU2的數(shù)字地址總線接口(date_addr_bus)分別經(jīng)buffer1、buffer2的隔離后與同一flash的數(shù)字地址總線接口(date_addr_bus)相接。在buffer和flash分別選通時,相應(yīng)的CPU可以訪問flash,從flash的相應(yīng)區(qū)域讀取數(shù)據(jù)和進(jìn)行數(shù)據(jù)搬運到相應(yīng)的SDRAM,從而啟動。
圖3中,緩沖器buffer1和buffer2的/G管腳為開關(guān)選通信號,低有效。該管腳為高時,相應(yīng)的CPU和flash的數(shù)據(jù)/地址總線隔離;該管腳為低時,相應(yīng)的CPU和flash的數(shù)據(jù)/地址總線連通。
各CPU之間的通信通道在不同的系統(tǒng)中可以不同,可以為RS232、RS485、I2C等串口;也可以為其他接口,如通用測試與操作接口(UTOPIA)等;也可以為自定義的通信接口。
CPU1的片選信號/CS1直接輸入buffer1的/G管腳,同時/CS1在與CPU2的片選信號/CS2相與(and)后形成flash的選通信號/CS3。
CPU2的片選信號/CS2在做與運算送給flash之前,通過buffer2隔離,防止CPU2不取得flash控制權(quán)時選通flash。/cs2_buf的上拉電阻保證上電期間和buffer2隔離時,該信號為高狀態(tài),不會誤選通flash。
CPU1的復(fù)位輸出信號/reset_out連到CPU2的復(fù)位管腳/reset,控制CPU2的復(fù)位狀態(tài)。如果有多個從CPU,每個從CPU各需要一個與主CPU相連的復(fù)位信號,不能共用,復(fù)位信號低有效。
CPU1的contro信號先和/reset_out的非(not)進(jìn)行或運算(or)后產(chǎn)生信號CPU1_ctr,再將CPU1-ctr與/cs2進(jìn)行或運算后輸出CPU2_OE信號到buffer2的/G管腳,CPU2_OE作為使能信號控制buffer2的通斷,防止CPU2隨意選通buffer2,訪問flash。平時由于上拉電阻的上拉,control信號為高,不允許CPU2選通buffer2。允許CPU2選通buffer2時,control信號為低。上拉電阻保證上電期間control信號為高狀態(tài)。
這樣,當(dāng)系統(tǒng)啟動時,各CPU的啟動過程如下(假設(shè)以下器件的控制信號都為低有效)上電后或整個系統(tǒng)復(fù)位后,CPU1先正常啟動,CPU1的/reset_out管腳輸出低電平,使得CPU2的復(fù)位輸入為低(同時該管腳被拉低,保證CPU1啟動初期也能為低電平),CPU2處于復(fù)位狀態(tài),無法啟動;同時/reset_out經(jīng)過非和或運算后使得CPU2_OE為高,關(guān)閉buffer2。CPU1正常啟動,給出/CS1低信號,/CS1輸入buffer1的/G管腳選通buffer1,同時/CS1與/CS2_buf相與產(chǎn)生低信號/CS3送入flash,選取通flash,取得flash的讀寫權(quán)限,從flash的相應(yīng)區(qū)域讀取數(shù)據(jù)和進(jìn)行數(shù)據(jù)搬運到SDRAM。
CPU1啟動完畢或者啟動到某個步驟后(根據(jù)實際情況決定),/reset_out管腳拉高,使得CPU2走出復(fù)位狀態(tài),正常啟動,同時control信號保持為低電平,使得CPU2可以控制buffer2的選通。CPU2正常啟動,給出/CS2低信號,輸入/G管腳的信號為低,buffer2選通,輸出/CS2_buf為低,從而選通flash,取得fash的讀寫權(quán)限,從flash的相應(yīng)區(qū)域讀取數(shù)據(jù)和進(jìn)行數(shù)據(jù)搬運到SDRAM。
在CPU2啟動期間,CPU1必須保證不訪問flash,以免發(fā)生沖突。CPU2啟動完畢的信息可以通過CPU之間的通信通道獲得,也可以估算一定的時間,確保CPU2已正常啟動或已啟動到不需要flash的階段(CPU從flash啟動的時間通常很短,幾秒鐘之內(nèi)可以完成基本啟動,不再需要從flash讀取數(shù)據(jù))。確保CPU2不再需要flash后,CPU1的control管腳拉高,取消CPU2選通buffer2的權(quán)限,防止兩個CPU同時訪問flash,造成沖突,損壞器件。
在正常運行期間,如果CPU2需要訪問flash,必須通過CPU之間的通信通道提出申請,得到允許后同時CPU1的control管腳拉低,CPU2可以選通讀取flash。讀取完畢后通知CPU1,CPU1的control管腳拉高,取消CPU2選通buffer2的權(quán)限。如果正常運行期間CPU2不需要訪問flash,沒有本操作。
圖3中只給出了三個片選信號/cs1為主CPU給flash的片選信號(輸出),/cs2為從CPU給flash的片選信號(輸出),/cs3為flash的選通信號(輸入)。
當(dāng)從CPU不只CPU2一個時,同樣根據(jù)control、/reset_out和從CPU給出的片選信號作為使能信號輸入相應(yīng)buffer的/G管腳來控制該buffer的通斷,并通過該從CPU給出的片選信號與主CPU給出的片選信號相與來控制flash的通斷,從而實現(xiàn)該從CPU對flash的訪問。為了安全起見,也可以增加主CPU的control信號來控制相應(yīng)的從CPU,達(dá)到主CPU可以單獨控制各個從CPU的buffer通斷。
如圖4所示為本發(fā)明CPU啟動流程圖,啟動流程概括如下1)上電或整個系統(tǒng)復(fù)位后,主CPU使得各從CPU處于復(fù)位狀態(tài)而無法啟動,主CPU給出片選信號選通主CPU與flash之間的buffer及flash,正常啟動;2)主CPU啟動完畢或啟動到某個步驟后,解除從CPU的復(fù)位,并把control信號拉低,使得從CPU可以訪問flash;3)從CPU給出片選信號選通該從CPU與flash之間的buffer及flash,正常啟動,在此期間主CPU不能訪問flash;4)確保從CPU不再訪問flash后,主CPU把control信號拉高,防止從CPU誤訪問flash;5)主CPU和從CPU完成其它啟動操作;6)主CPU和從CPU正常運行。
本系統(tǒng)中的flash空間要進(jìn)行劃分,給各個CPU劃分足夠的地址空間,放置軟件和其他信息。由于各個CPU都可以訪問flash,可以很方便的實現(xiàn)在線加載各個軟件,升級各個CPU的軟件。
如果flash的空間較大,某些CPU的地址范圍不夠時,可以采用在buffer之前給高位的flash地址線做上、下拉處理,通過上、下拉處理后,從外部將高位的地址線強(qiáng)制成所需的固定電平,使得該CPU可以訪問到分配的flash空間。如圖5所示,當(dāng)CPU地址線為A0-A18,共19根,而flash地址線為A0-A20,共21根時,圖4圈中部分采用上、下拉處理,根據(jù)該CPU在flash中存儲的地址,在buffer之前將A19強(qiáng)制為低電平,A20強(qiáng)制為高電平,從而在buffer選通時,該CPU可以訪問到分配的flash空間(0x100000-0x17FFFF的512k空間分配給該從CPU使用)。
如果某些CPU的數(shù)據(jù)線寬不夠,比如flash為16bit的數(shù)據(jù)線,而從CPU1為8位的數(shù)據(jù)線時,則該CPU只能訪問8位對應(yīng)的flash空間。
本發(fā)明節(jié)省了成本,降低了系統(tǒng)復(fù)雜度,同時可以很方便的實現(xiàn)對所有CPU的軟件進(jìn)行升級,只要能訪問flash器件的CPU都能升級軟件。通常主CPU能夠訪問flash器件的所有空間,同時它能夠決定flash器件的使用權(quán)限,由它來升級軟件比較簡單方便。需要注意的是,由于基本輸入輸出系統(tǒng)(BIOS)軟件部分軟件比較重要,可選用具有塊保護(hù)功能的flash器件,從而可在平時使得各個CPU的BIOS軟件空間處于保護(hù)狀態(tài),防止誤操作。
權(quán)利要求
1.一種中央處理單元啟動的方法,其特征在于它包括以下步驟在多中央處理單元(CPU)系統(tǒng)中,利用同一個存儲器存放各個CPU的引導(dǎo)程序,各個CPU與該存儲器之間的數(shù)據(jù)/地址總線分別通過緩沖器(buffer)進(jìn)行隔離;主CPU控制各個CPU對相應(yīng)的buffer及存儲器的選通,使各個CPU按順序先后對存儲器進(jìn)行訪問,從存儲器的相應(yīng)區(qū)域讀取數(shù)據(jù),實現(xiàn)各個CPU系統(tǒng)的啟動。
2.根據(jù)權(quán)利要求1所述的中央處理單元啟動的方法,其特征在于所述的多個CPU的引導(dǎo)程序和應(yīng)用軟件在同一個flash中根據(jù)地址劃分存放在不同的空間。
3.根據(jù)權(quán)利要求2所述的中央處理單元啟動的方法,其特征在于CPU系統(tǒng)啟動流程如下1)上電或整個系統(tǒng)復(fù)位后,主CPU使得各從CPU處于復(fù)位狀態(tài)而無法啟動,主CPU給出片選信號選通與主CPU對應(yīng)的buffer及flash,正常啟動;2)主CPU啟動完畢或啟動到某個步驟后,解除從CPU的復(fù)位,并調(diào)整CPU輸出的控制信號,使得從CPU可以訪問flash;3)從CPU給出片選信號選通該從CPU對應(yīng)的buffer及flash,正常啟動。
4.根據(jù)權(quán)利要求3所述的中央處理單元啟動的方法,其特征在于從CPU已正常啟動或啟動到不需要flash后,主CPU通過調(diào)整其輸出的控制信號,取消從CPU選通該從CPU對應(yīng)的buffer的權(quán)限,防止從CPU誤訪問flash。
5.根據(jù)權(quán)利要求4所述的中央處理單元啟動的方法,其特征在于所述的從CPU已正常啟動的信息通過CPU之間的通信通道獲得,也可以估算一定的時間,確保該從CPU已正常啟動或已啟動到不需要flash的階段。
6.根據(jù)權(quán)利要求3所述的中央處理單元啟動的方法,其特征在于在各CPU正常運行期間,如果從CPU需要訪問flash,必須通過CPU之間的通信通道向主CPU提出申請,得到允許后,主CPU調(diào)整其輸出的控制信號,使該從CPU可以選通讀取flash;讀取完畢后通知主CPU,主CPU調(diào)整其輸出的控制信號,取消該從CPU選通讀取flash的權(quán)限。
7.根據(jù)權(quán)利要求3所述的中央處理單元啟動的方法,其特征在于如果flash的空間較大,某些CPU的地址范圍不夠時,根據(jù)該CPU程序在flash中存放的地址,在buffer之前給高位的flash地址線做上、下拉處理,將其從外部強(qiáng)制成所需的固定電平,使得該CPU可以訪問到分配的flash空間。
8.一種中央處理單元啟動系統(tǒng),其特征在于主、從CPU的數(shù)據(jù)/地址總線分別通過緩沖器(buffer)隔離后連接到同一儲存器;主CPU的片選信號直接輸入到與主CPU對應(yīng)的buffer的使能信號管腳,同時該片選信號在與各從CPU的片選信號相與后輸入儲存器,控制儲存器的選通;從CPU的片選信號在與所述主CPU的片選信號相與之前,由上拉電阻拉高,并被與該從CPU對應(yīng)的buffer隔離;主CPU復(fù)位信號經(jīng)下拉電阻拉低后輸出到各從CPU的復(fù)位管腳,同時,該復(fù)位信號在進(jìn)行非運算后,與經(jīng)上拉電阻拉高的主CPU輸出的控制信號及從CPU的片選信號進(jìn)行或運算,所產(chǎn)生的信號輸入該從CPU對應(yīng)的buffer的使能信號管腳。
9.根據(jù)權(quán)利要求8所述的中央處理單元啟動系統(tǒng),其特征在于所述的儲存器為閃存(flash)器件,所述的flash器件為具有塊保護(hù)功能的flash器件。
10.根據(jù)權(quán)利要求8或9所述的中央處理單元啟動系統(tǒng),其特征在于主、從CPU之間可通過通信通道相連進(jìn)行通訊。
11.根據(jù)權(quán)利要求8或9所述的中央處理單元啟動系統(tǒng),其特征在于各CPU的數(shù)據(jù)/地址總線還分別連接同步動態(tài)存儲器(sdram)或其它存儲器件。
全文摘要
一種中央處理單元啟動的方法及系統(tǒng),在多中央處理單元(CPU)系統(tǒng)中,利用同一個閃存(flash)器件存放各個CPU的引導(dǎo)程序,各個CPU與該flash之間的數(shù)據(jù)/地址總線分別通過緩沖器(buffer)進(jìn)行隔離;主CPU控制各個CPU對相應(yīng)的buffer及flash的選通,使各個CPU按順序先后對flash進(jìn)行訪問,從flash的相應(yīng)區(qū)域讀取數(shù)據(jù),實現(xiàn)各個CPU系統(tǒng)的啟動。本發(fā)明相對于現(xiàn)有的從不同BOOTROM啟動而言節(jié)省了成本,由于各個CPU都可以訪問flash,可以很方便地實現(xiàn)對所有CPU的軟件進(jìn)行升級。
文檔編號G06F12/00GK1553338SQ0313754
公開日2004年12月8日 申請日期2003年6月8日 優(yōu)先權(quán)日2003年6月8日
發(fā)明者李慶東 申請人:華為技術(shù)有限公司