專利名稱:多線程加載版本程序的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及多線程加載版本程序的技術(shù)。
背景技術(shù):
隨著電信系統(tǒng)向著高集成度、分布式處理的方向發(fā)展,電信系統(tǒng)對于單塊單板的處理能力、集成度的要求日益提高,這就催生了多核處理器在各種功能處理單板中的應(yīng)用。在現(xiàn)有的高集成度的多處理器單板中,由于不同的處理器通過處理器外的總線相連,所以處理之間交換數(shù)據(jù)相對困難,這就使得不同處理器協(xié)同完成一件工作的方式實現(xiàn)起來較為復(fù)雜、效率較低,而多核處理器的應(yīng)用正好可以解決這個問題。
多核處理器相對于現(xiàn)有的多處理器系統(tǒng)有著明顯的區(qū)別,如圖1所示,多核處理器11包含N(N>1且為整數(shù))個內(nèi)核,每個內(nèi)核包含n(n≥1且為整數(shù))個線程。其中,某一個核內(nèi)的某一個線程(一般是第一個內(nèi)核中的第一個線程,在圖1中即為內(nèi)核0中的線程0)作為處理器11的主線程,其管理處理器11的資源,并負責加載所有從線程的版本程序,其它線程作為從線程,可以擁有自己獨立的資源,并可以獨立完成完整的業(yè)務(wù)處理。由于主線程和從線程位于同一個多核處理器中,所以主線程和從線程之間可以方便的共享內(nèi)存、高速緩沖存儲器(CACHE)等資源。正是由于多核處理器的這些特點,使得多核處理器中的每一個核甚至每一個核中的線程(相當于虛擬CPU)均可以加載運行不同的程序,協(xié)同完成同一功能,實現(xiàn)高效率地分布式處理。
在實際應(yīng)用中,線程進行業(yè)務(wù)處理之前,需要先進行加載版本程序等操作。以單線程的處理器(只有一個線程的處理器)為例,單線程在進行業(yè)務(wù)處理之前,需要先進行如圖2所示的流程 步驟S201啟動單線程。
步驟S202初始化單線程和內(nèi)存。
步驟S203判斷內(nèi)存自檢是否成功,如果是,轉(zhuǎn)步驟S206,否則,轉(zhuǎn)步驟S204。
步驟S204產(chǎn)生告警。
步驟S205復(fù)位單板。
步驟S206搬移BOOTROM程序,所述BOOTROM程序是存儲在非易失存儲器中的引導(dǎo)程序。
步驟S207重定位及初始化閃存(FLASH)。
步驟S208映射內(nèi)存的缺省啟動地址。
步驟S209初始化硬件。
步驟S210初始化加載通道。
步驟S211加載邏輯程序。
為便于下文描述,這里將步驟S201-S211稱為上電初始化過程。
步驟S211之后,執(zhí)行步驟S212為單線程加載版本程序。
步驟S213啟動版本程序。
啟動完成后,單線程就可以進行業(yè)務(wù)處理。同樣,多核處理器中的線程在進行業(yè)務(wù)處理之前,也需要進行加載版本程序等操作。但發(fā)明人在仔細檢索現(xiàn)有技術(shù)后發(fā)現(xiàn),目前還沒有一種可行的多線程加載版本程序的方案。
發(fā)明內(nèi)容
本發(fā)明實施例要解決的技術(shù)問題在于提供一種多線程加載版本程序的方法及裝置,用以成功的為多核處理器中的多線程加載版本程序。
為解決上述技術(shù)問題,本發(fā)明提供一種多線程加載版本程序的方法的實施例,包括進行上電初始化過程;為主線程加載版本程序;啟動主線程的版本程序;使能所有從線程;為從線程加載版本程序;為從線程設(shè)置啟動參數(shù);喚醒從線程。
本發(fā)明還提供一種從線程啟動方法的實施例,包括上電后,根據(jù)收到使能命令,則進行簡單初始化過程,進入睡眠狀態(tài);根據(jù)收到喚醒命令,則讀取啟動參數(shù);初始化版本程序;運行版本程序。
本發(fā)明還提供一種多線程加載版本程序的裝置的實施例,包括初始化單元,用于進行上電初始化過程;主線程版本程序加載單元,用于在所述初始化單元進行上電初始化過程后,為主線程加載版本程序;版本程序啟動單元,用于啟動所述主線程版本程序加載單元為主線程加載的版本程序;從線程使能單元,用于在所述版本程序啟動單元啟動主線程的版本程序后,使能所有的從線程;從線程版本程序加載單元,用于在所述使能單元使能所有的從線程后,為從線程加載版本程序;啟動參數(shù)設(shè)置單元,用于在所述從線程版本程序加載單元為從線程加載版本程序后,為從線程設(shè)置啟動參數(shù);從線程喚醒單元,用于在所述啟動參數(shù)設(shè)置單元設(shè)置啟動參數(shù)后,喚醒從線程。
本發(fā)明還提供一種從線程啟動裝置的實施例,包括命令接收單元、初始化單元、啟動參數(shù)讀取單元及版本程序運行單元;所述命令接收單元在上電后收到使能命令;所述初始化單元在所述命令接收單元收到使能命令,進行簡單初始化過程;所述命令接收單元在所述初始化單元進行簡單初始化過程后,收到喚醒命令;所述啟動參數(shù)讀取單元在所述命令接收單元收到喚醒命令,讀取啟動參數(shù);所述初始化單元在所述啟動參數(shù)讀取單元讀取啟動參數(shù)后,進行程序初始化過程;所述版本程序運行單元在所述初始化單元進行程序初始化過程后,運行版本程序。
在本發(fā)明多線程加載版本程序的實施例中,進行上電初始化過程之后,首先為主線程加載版本程序,啟動主線程的版本程序之后,再為從線程加載版本程序,這樣,從多核處理器的角度來看,先后為所有的線程都加載了版本程序,達到了成功的為多線程加載版本程序的目的。
圖1為現(xiàn)有的多核處理器的示意圖; 圖2為現(xiàn)有的為單線程加載版本程序的方法實施例的流程圖; 圖3為本發(fā)明的第一個較佳實施例的流程圖; 圖4為本發(fā)明的第二個較佳實施例的流程圖; 圖5為本發(fā)明的第三個較佳實施例的流程圖; 圖6為本發(fā)明的從線程啟動方法實施例的流程圖。
具體實施例方式 首先對本發(fā)明的多線程加載版本程序的方法實施例進行說明。所述方法實施例包括進行上電初始化過程;為主線程加載版本程序;啟動主線程的版本程序;使能(Enable)所有從線程;為從線程加載版本程序;為從線程設(shè)置啟動參數(shù);喚醒從線程。
在上述方法實施例中,多核處理器上電后,主線程處于使能狀態(tài),從線程處于去使能(Disable)狀態(tài),在主線程啟動過程中,或者在主線程啟動成功后,使能從線程,從而使從線程由去使能狀態(tài)轉(zhuǎn)換為睡眠(Sleep)狀態(tài)。在從線程的版本程序加載完成后,由主線程喚醒從線程。從線程被喚醒后,直接從主、從線程之間共享的內(nèi)存中讀取主線程配置的啟動參數(shù),之后根據(jù)這些啟動參數(shù)啟動、運行版本程序。
為使本領(lǐng)域技術(shù)人員方便的實施本發(fā)明,下面介紹本發(fā)明的幾個較佳實施例。
在第一個較佳實施例中,先在啟動主線程的版本程序的過程中為一部分從線程加載版本程序,在主線程的版本程序啟動成功后,再為剩余的一部分從線程加載版本程序。具體的,如圖3所示,包括 步驟S301啟動主線程。
步驟S302初始化主線程和內(nèi)存。
步驟S303判斷內(nèi)存自檢是否成功,如果是,轉(zhuǎn)步驟S306,否則,轉(zhuǎn)步驟S304。
步驟S304產(chǎn)生告警。
步驟S305復(fù)位單板。
步驟S306搬移BOOTROM程序。
步驟S307重定位及初始化閃存。
步驟S308映射內(nèi)存的缺省啟動地址。
步驟S309初始化硬件。
步驟S310初始化加載通道。
步驟S311加載邏輯程序。
同樣,步驟S301-S311為上電初始化過程。
步驟S311之后,執(zhí)行步驟S312為主線程加載版本程序。
步驟S313啟動主線程的版本程序。
在主線程的版本程序啟動成功之前,執(zhí)行步驟S314-S317。
步驟S314使能所有的從線程。
步驟S315為部分從線程加載版本程序。在有些應(yīng)用中,某些從線程進行業(yè)務(wù)處理需要依賴另外一些從線程的啟動,所以,在這個步驟中,加載版本程序的從線程就可以是這些必須先啟動的從線程。例如,假設(shè)內(nèi)存中陸續(xù)到達大量的信息需要從線程進行處理,對此,某些從線程可以先將這些信息進行分類、排序等處理,之后再將這些信息分給其他從線程進行處理,進行分類、排序等處理的從線程就是應(yīng)該先啟動的從線程。
步驟S316為所述部分從線程設(shè)置啟動參數(shù)。
步驟S317喚醒所述部分從線程。
在主線程的版本程序啟動成功之后,執(zhí)行步驟S318-S320。
步驟S318為剩余的從線程加載版本程序。
步驟S319為所述剩余的從線程設(shè)置啟動參數(shù)。
步驟S320喚醒所述剩余的從線程。
在圖3所示的實施例中,雖然將所有的從線程分成兩個部分啟動,但在啟動每一部分的從線程時,也可以對一部分的從線程再分批的進行啟動,或者說,每一部分的所有從線程可以不同時啟動,也可以先后啟動。
在第二個較佳實施例中,在啟動主線程的版本程序的過程中,就為所有的從線程加載版本程序。具體的,如圖4所示,包括 步驟S401啟動主線程。
步驟S402初始化主線程和內(nèi)存。
步驟S403判斷內(nèi)存自檢是否成功,如果是,轉(zhuǎn)步驟S406,否則,轉(zhuǎn)步驟S404。
步驟S404產(chǎn)生告警。
步驟S405復(fù)位單板。
步驟S406搬移BOOTROM程序。
步驟S407重定位及初始化閃存。
步驟S408映射內(nèi)存的缺省啟動地址。
步驟S409初始化硬件。
步驟S410初始化加載通道。
步驟S411加載邏輯程序。
同樣,步驟S401-S411為上電初始化過程。
步驟S411之后,執(zhí)行步驟S412為主線程加載版本程序。
步驟S413啟動主線程的版本程序。
在主線程的版本程序啟動成功之前,執(zhí)行步驟S414-S417。
步驟S414使能所有的從線程。
步驟S415為所有的從線程加載版本程序。
步驟S416為所述所有的從線程設(shè)置啟動參數(shù)。
步驟S417喚醒所述所有的從線程。
同樣,在圖4所示的實施例中,所有的從線程可以同時啟動,也可以不同時啟動。
在第三個較佳實施例中,在主線程的版本程序成功啟動后,才為所有的從線程加載版本程序。具體的,如圖5所示,包括 步驟S501啟動主線程。
步驟S502初始化主線程和內(nèi)存。
步驟S503判斷內(nèi)存自檢是否成功,如果是,轉(zhuǎn)步驟S506,否則,轉(zhuǎn)步驟S504。
步驟S504產(chǎn)生告警。
步驟S505復(fù)位單板。
步驟S506搬移BOOTROM程序。
步驟S507重定位及初始化閃存。
步驟S508映射內(nèi)存的缺省啟動地址。
步驟S509初始化硬件。
步驟S510初始化加載通道。
步驟S511加載邏輯程序。
同樣,步驟S501-S511為上電初始化過程。
步驟S511之后,執(zhí)行步驟S512為主線程加載版本程序。
步驟S513啟動主線程的版本程序。
在主線程的版本程序啟動成功之后,執(zhí)行步驟S514-S517。
步驟S514使能所有的從線程。
步驟S515為所有的從線程加載版本程序。
步驟S516為所述所有的從線程設(shè)置啟動參數(shù)。
步驟S517喚醒所述所有的從線程。
同樣,在圖5所示的實施例中,所有的從線程可以同時啟動,也可以不同時啟動。
上述所有的方法實施例可以由多種形式的裝置實現(xiàn),其中的一種多線程加載版本程序的裝置包括初始化單元,用于進行上電初始化過程;主線程版本程序加載單元,用于在所述初始化單元進行上電初始化過程后,為主線程加載版本程序;版本程序啟動單元,用于啟動所述版本程序加載單元為主線程加載的版本程序;從線程使能單元,用于在所述版本程序啟動單元啟動主線程的版本程序后,使能所有的從線程;從線程版本程序加載單元,用于在所述使能單元使能所有的從線程后,為從線程加載版本程序;啟動參數(shù)設(shè)置單元,用于在所述從線程版本程序加載單元為從線程加載版本程序后,為從線程設(shè)置啟動參數(shù);從線程喚醒單元,用于在所述啟動參數(shù)設(shè)置單元設(shè)置啟動參數(shù)后,喚醒從線程。
從線程喚醒單元可以在版本程序啟動單元成功的啟動主線程的版本程序之前喚醒從線程,也可以在版本程序啟動單元成功的啟動主線程的版本程序之后喚醒從線程。
具體的,在從線程使能單元使能所有的從線程之后,在版本程序啟動單元成功的啟動主線程的版本程序之前,從線程版本程序加載單元可以為所有的從線程加載版本程序,啟動參數(shù)設(shè)置單元可以為所有的從線程設(shè)置啟動參數(shù),從線程喚醒單元可以喚醒所有的從線程。
另外,在從線程使能單元使能所有的從線程之后,在版本程序啟動單元成功的啟動主線程的版本程序之前,從線程版本程序加載單元可以為一部分從線程加載版本程序,啟動參數(shù)設(shè)置單元為這部分從線程設(shè)置啟動參數(shù),從線程喚醒單元喚醒這部分從線程,在版本程序啟動單元成功的啟動主線程的版本程序之后,從線程版本程序加載單元再為剩余的從線程加載版本程序,啟動參數(shù)設(shè)置單元為剩余的從線程設(shè)置啟動參數(shù),從線程喚醒單元喚醒剩余的從線程。
此外,在版本程序啟動單元成功的啟動主線程的版本程序之后,從線程使能單元使能所有的從線程,從線程版本程序加載單元為所有的從線程加載版本程序,啟動參數(shù)設(shè)置單元為所有的從線程設(shè)置啟動參數(shù),從線程喚醒單元喚醒所有的從線程。
上述裝置還可以包括復(fù)位單元,用于在所述從線程喚醒單元喚醒從線程、從線程運行版本程序后,如果有從線程需要更換版本程序,或者需要為一個或多個從線程更換版本程序,則復(fù)位需要更換版本程序的從線程。
在所述復(fù)位單元復(fù)位需要更換版本程序的從線程、從線程進入睡眠狀態(tài)后,所述從線程版本程序加載單元為需要更換版本程序的從線程加載需要更換的版本程序。
在所述復(fù)位單元復(fù)位需要更換版本程序的從線程、從線程進入睡眠狀態(tài)后,如果需要更換的版本程序已在之前為其他從線程加載,則所述啟動參數(shù)設(shè)置單元為需要更換版本程序的從線程指定所述之前加載的版本程序在內(nèi)存中的位置,使所述從線程與其他從線程共享所述已經(jīng)加載過的版本程序,而不必再單獨為所述從線程加載一份版本程序。
需要說明的是,上述裝置的所有單元可以設(shè)置或應(yīng)用在多核處理器或單板中,這些單元在多核處理器或單板中的工作方式與在上述裝置中的工作方式相同,這里不再贅述。
本發(fā)明同時還提供了從線程啟動方法實施例。如圖6所示,包括 步驟S601上電后,如果收到使能命令,則進行簡單初始化過程,進入睡眠狀態(tài)。簡單初始化過程主要是指資源的初始化。
步驟S602如果收到喚醒命令,則讀取啟動參數(shù)。啟動參數(shù)可以是由主線程為從線程設(shè)置的。
步驟S603初始化版本程序。版本程序可以是由主線程為從線程加載的。
步驟S604運行版本程序。
步驟S604之后,還包括 步驟S605如果收到復(fù)位命令后,則進行復(fù)位處理,之后進入睡眠狀態(tài),轉(zhuǎn)步驟S602。上面曾提到過,如果從線程需要更換版本程序,或者主線程需要為從線程更換版本程序,則主線程需要復(fù)位從線程,具體的,主線程向從線程發(fā)出復(fù)位命令,從線程收到復(fù)位命令后,進行復(fù)位處理,進入睡眠狀態(tài),等待主線程的喚醒。
特別的,如果需要更換的版本程序是主線程已經(jīng)為其他從線程加載過的版本程序,則需要更換版本程序的從線程可以根據(jù)主線程修改的啟動參數(shù),直接到啟動參數(shù)中的地址中運行更換后的版本程序,此時,需要更換版本程序的從線程已經(jīng)和運行版本程序的其他從線程共享同一份版本程序。
上述所有的方法實施例可以由多種形式的裝置實現(xiàn),其中的一種從線程啟動裝置包括命令接收單元、初始化單元、啟動參數(shù)讀取單元及版本程序運行單元;所述命令接收單元在上電后收到使能命令;所述初始化單元在所述命令接收單元收到使能命令,進行簡單初始化過程;所述命令接收單元在所述初始化單元進行簡單初始化過程后,收到喚醒命令;所述啟動參數(shù)讀取單元在所述命令接收單元收到喚醒命令,讀取啟動參數(shù);所述初始化單元在所述啟動參數(shù)讀取單元讀取啟動參數(shù)后,進行程序初始化過程;所述版本程序運行單元在所述初始化單元進行程序初始化過程后,運行版本程序。
上述裝置還可以包括復(fù)位處理單元,用于在所述版本程序運行單元運行版本程序后,收到復(fù)位命令并進行復(fù)位處理。當復(fù)位處理單元進行復(fù)位處理后,所述命令接收單元可以等待接收喚醒命令。
需要說明的是,上述裝置的所有單元可以設(shè)置或應(yīng)用在多核處理器或單板中,這些單元在多核處理器或單板中的工作方式與在上述裝置中的工作方式相同,這里不再贅述。
一般來說,為主線程和從線程加載的版本程序是不相同的,當然,如果需要的話,或者是特殊情況下,主線程和從線程加載的版本程序也可以相同。另外,為所有的從線程加載的版本程序可以是相同的,即,為所有的從線程加載同一份版本程序,具體的,可以將所述版本程序加載到內(nèi)存中,之后將所有的從線程的啟動參數(shù)中用于指向版本程序的地址都設(shè)置為所述版本程序在內(nèi)存中的地址,這樣,所有的從線程都可以根據(jù)這個地址運行所述版本程序。此外,為所有的從線程加載的版本程序可以不完全相同,特別的,為所有的從線程加載的版本程序可以完全不相同,此時,不同的線程完成不同的功能。如果從線程共享同一份版本程序,則既可以節(jié)約版本程序所占用的內(nèi)存,又可以減少加載的時間,提高加載速度;如果為不同的從線程加載不同的版本程序,則可以使不同的從線程完成不同的功能,這就體現(xiàn)了多個線程處理不同業(yè)務(wù)的優(yōu)勢。所以,無論是從線程共享同一份版本程序,還是為不同的從線程加載不同的版本程序,都可以根據(jù)實際需要而定,各有優(yōu)點。
在本發(fā)明的所有實施例中,如果有從線程需要更換版本程序,或者需要為從線程更換版本程序,則無須主線程復(fù)位,或者說,無須整個處理器復(fù)位,而只須需要更換版本程序的從線程復(fù)位即可,有利于從線程在線升級版本程序的靈活實現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種多線程加載版本程序的方法,其特征在于,包括
進行上電初始化過程;
為主線程加載版本程序;
啟動主線程的版本程序;
使能所有從線程;
為從線程加載版本程序;
為從線程設(shè)置啟動參數(shù);
喚醒從線程。
2.如權(quán)利要求1所述的多線程加載版本程序的方法,其特征在于,喚醒從線程在主線程的版本程序啟動成功之前進行。
3.如權(quán)利要求2所述的多線程加載版本程序的方法,其特征在于,所述從線程是所有的從線程。
4.如權(quán)利要求2所述的多線程加載版本程序的方法,其特征在于,所述從線程是部分的從線程。
5.如權(quán)利要求4所述的多線程加載版本程序的方法,其特征在于,在主線程的版本程序啟動成功之后,還包括
為剩余的從線程加載版本程序;
為剩余的從線程設(shè)置啟動參數(shù);
喚醒剩余的從線程。
6.如權(quán)利要求1所述的多線程加載版本程序的方法,其特征在于,使能所有從線程在主線程的版本程序啟動成功之后進行。
7.如權(quán)利要求1、3、4或5所述的多線程加載版本程序的方法,其特征在于,為所有的從線程、部分的從線程或剩余的從線程加載一份版本程序,所述所有的從線程、部分的從線程或剩余的從線程共享同一份版本程序。
8.如權(quán)利要求1、3、4或5所述的多線程加載版本程序的方法,其特征在于,為所有的從線程、部分的從線程或剩余的從線程加載的版本程序不完全相同。
9.如權(quán)利要求1所述的多線程加載版本程序的方法,其特征在于,喚醒從線程之后,還包括
從線程運行版本程序;
如果有從線程需要更換版本程序,或者需要為一個或多個從線程更換版本程序,則復(fù)位需要更換版本程序的從線程;
需要更換版本程序的從線程進入睡眠狀態(tài)后,為需要更換版本程序的從線程加載需要更換的版本程序。
10.如權(quán)利要求1所述的多線程加載版本程序的方法,其特征在于,喚醒從線程之后,還包括
從線程運行版本程序;
如果有從線程需要更換版本程序,或者需要為一個或多個從線程更換版本程序,則復(fù)位需要更換版本程序的從線程;
如果需要更換的版本程序已在之前為其他從線程加載,則為需要更換版本程序的從線程指定所述之前加載的版本程序在內(nèi)存中的位置。
11.一種從線程啟動方法,其特征在于,包括
上電后,根據(jù)收到使能命令,則進行簡單初始化過程,進入睡眠狀態(tài);
根據(jù)收到喚醒命令,則讀取啟動參數(shù);
初始化版本程序;
運行版本程序。
12.如權(quán)利要求11所述的從線程啟動方法,其特征在于,運行版本程序后,如果收到復(fù)位命令后,則進行復(fù)位處理,之后進入睡眠狀態(tài)。
13.一種多線程加載版本程序的裝置,其特征在于,包括
初始化單元,用于進行上電初始化過程;
主線程版本程序加載單元,用于在所述初始化單元進行上電初始化過程后,為主線程加載版本程序;
版本程序啟動單元,用于啟動所述主線程版本程序加載單元為主線程加載的版本程序;
從線程使能單元,用于在所述版本程序啟動單元啟動主線程的版本程序后,使能所有的從線程;
從線程版本程序加載單元,用于在所述使能單元使能所有的從線程后,為從線程加載版本程序;
啟動參數(shù)設(shè)置單元,用于在所述從線程版本程序加載單元為從線程加載版本程序后,為從線程設(shè)置啟動參數(shù);
從線程喚醒單元,用于在所述啟動參數(shù)設(shè)置單元設(shè)置啟動參數(shù)后,喚醒從線程。
14.如權(quán)利要求13所述的多線程加載版本程序的裝置,其特征在于,還包括復(fù)位單元,用于在所述從線程喚醒單元喚醒從線程、從線程運行版本程序后,如果有從線程需要更換版本程序,或者需要為一個或多個從線程更換版本程序,則復(fù)位需要更換版本程序的從線程。
15.如權(quán)利要求14所述的多線程加載版本程序的裝置,其特征在于,在所述復(fù)位單元復(fù)位需要更換版本程序的從線程、從線程進入睡眠狀態(tài)后,所述從線程版本程序加載單元為需要更換版本程序的從線程加載需要更換的版本程序。
16.如權(quán)利要求14所述的多線程加載版本程序的裝置,其特征在于,在所述復(fù)位單元復(fù)位需要更換版本程序的從線程、從線程進入睡眠狀態(tài)后,如果需要更換的版本程序已在之前為其他從線程加載,則所述啟動參數(shù)設(shè)置單元為需要更換版本程序的從線程指定所述之前加載的版本程序在內(nèi)存中的位置。
17.一種從線程啟動裝置,其特征在于,包括
命令接收單元、初始化單元、啟動參數(shù)讀取單元及版本程序運行單元;
所述命令接收單元在上電后收到使能命令;
所述初始化單元在所述命令接收單元收到使能命令,進行簡單初始化過程;
所述命令接收單元在所述初始化單元進行簡單初始化過程后,收到喚醒命令;
所述啟動參數(shù)讀取單元在所述命令接收單元收到喚醒命令,讀取啟動參數(shù);
所述初始化單元在所述啟動參數(shù)讀取單元讀取啟動參數(shù)后,進行程序初始化過程;
所述版本程序運行單元在所述初始化單元進行程序初始化過程后,運行版本程序。
全文摘要
本發(fā)明提供一種多線程加載版本程序的方法,包括進行上電初始化過程;為主線程加載版本程序;啟動主線程的版本程序;使能所有從線程;為從線程加載版本程序;為從線程設(shè)置啟動參數(shù);喚醒從線程。本發(fā)明還提供多線程加載版本程序的裝置、從線程啟動方法及從線程啟動裝置。在本發(fā)明中,進行上電初始化過程之后,首先為主線程加載版本程序,啟動主線程的版本程序之后,再為從線程加載版本程序,這樣,從多核處理器的角度來看,先后為所有的線程都加載了版本程序,達到了成功的為多線程加載版本程序的目的。
文檔編號G06F9/445GK101183311SQ200710094610
公開日2008年5月21日 申請日期2007年12月21日 優(yōu)先權(quán)日2007年12月21日
發(fā)明者宏 李 申請人:上海華為技術(shù)有限公司