專利名稱:非對(duì)稱多核系統(tǒng)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技木,特別涉及適用于通信領(lǐng)域的非対稱多核系統(tǒng)的技木。
背景技術(shù):
隨著通信系統(tǒng)對(duì)性能要求的提高,單核系統(tǒng)已逐漸不能滿足性能要求,由此引入了多核系統(tǒng)。在多核系統(tǒng)的應(yīng)用中,通常使用每個(gè)核處理完全相同的任務(wù),這種系統(tǒng)成為對(duì)稱多核處理系統(tǒng)(symmetric multiprocessing,簡(jiǎn)稱為SMP)。成熟的SMP系統(tǒng)具有姆個(gè)任務(wù)公平調(diào)度、每個(gè)核負(fù)載均衡的特點(diǎn),其廣泛應(yīng)用于個(gè)人計(jì)算機(jī)領(lǐng)域。但在在通信領(lǐng)域中,SMP系統(tǒng)不是最佳的解決方案。原因是通信系統(tǒng)要求具有較高的數(shù)據(jù)轉(zhuǎn)發(fā)能力,也就需要保證數(shù)據(jù)轉(zhuǎn)發(fā)相關(guān)任務(wù)能夠盡可能快的執(zhí)行,執(zhí)行時(shí)間也盡可能多。通信系統(tǒng)的這種需求和SMP系統(tǒng)對(duì)任務(wù)公平調(diào)度的策略是相沖突的,因此需要更優(yōu)化策略來(lái)達(dá)到最佳的性能。
在各種多核處理系統(tǒng)中,非対稱多核系統(tǒng)是能滿足通信系統(tǒng)要求的一種很好的解決方案。非對(duì)稱多核系統(tǒng)(Asymmetric Multiprocessing,簡(jiǎn)稱為AMP)。AMP系統(tǒng)將姆個(gè)核進(jìn)行分組,每組核處理的任務(wù)各不相同,在不同的核組之間,任務(wù)不要求公平調(diào)度,也不要求負(fù)載均衡。AMP系統(tǒng)具有較大的靈活性,可以根據(jù)應(yīng)用場(chǎng)景進(jìn)行不同的定制。具體到通信系統(tǒng),可以將數(shù)據(jù)轉(zhuǎn)發(fā)相關(guān)的任務(wù)分配到特定的ー組核上執(zhí)行,這樣就保證了這些任務(wù)對(duì)核的獨(dú)占性,有效的提高了數(shù)據(jù)轉(zhuǎn)發(fā)性能?,F(xiàn)有的AMP系統(tǒng)的實(shí)現(xiàn)方式如圖I所示。AMP系統(tǒng)的軟件部分由操作系統(tǒng)鏡像和業(yè)務(wù)鏡像兩部分組成。操作系統(tǒng)鏡像在控制核上運(yùn)行,負(fù)責(zé)對(duì)每個(gè)業(yè)務(wù)核進(jìn)行最基本的初始化,并負(fù)責(zé)將業(yè)務(wù)鏡像加載到相應(yīng)的業(yè)務(wù)核上運(yùn)行。在這種應(yīng)用特點(diǎn)下,由于業(yè)務(wù)程序單獨(dú)編譯鏡像,并和操作系統(tǒng)鏡像相互獨(dú)立,這就導(dǎo)致物理核直接暴露給業(yè)務(wù)程序。業(yè)務(wù)程序在這種環(huán)境下需要處理復(fù)雜的裸核初始化、內(nèi)存管理、進(jìn)程通信等本應(yīng)該由操作系統(tǒng)處理的任務(wù),増加了業(yè)務(wù)程序的復(fù)雜度。
發(fā)明內(nèi)容
本發(fā)明的目的就是克服目前AMP系統(tǒng)中業(yè)務(wù)程序復(fù)雜度較高的缺點(diǎn),提供ー種非對(duì)稱多核系統(tǒng)及其實(shí)現(xiàn)方法。本發(fā)明解決所述技術(shù)問(wèn)題,采用的技術(shù)方案是,提供一種非對(duì)稱多核系統(tǒng),包括多核處理器,其特征在于,所述多核處理器包括至少ー個(gè)控制核,多核處理器中除控制核外其余的核皆為業(yè)務(wù)核,所述控制核,對(duì)應(yīng)ー個(gè)可放置多個(gè)任務(wù)的任務(wù)隊(duì)列,用于運(yùn)行操作系統(tǒng)鏡像,由操作系統(tǒng)對(duì)所述任務(wù)隊(duì)列中的任務(wù)進(jìn)行調(diào)度;所述業(yè)務(wù)核,對(duì)應(yīng)ー個(gè)只放置一個(gè)任務(wù)的任務(wù)隊(duì)列,用于運(yùn)行獨(dú)占任務(wù),所述獨(dú)占任務(wù)獨(dú)占該業(yè)務(wù)核的所有資源,不參與操作系統(tǒng)的任務(wù)調(diào)度。進(jìn)ー步的,所述業(yè)務(wù)核上關(guān)閉所有中斷,不執(zhí)行系統(tǒng)調(diào)用,不運(yùn)行任何定時(shí)器。具體的,所述業(yè)務(wù)核上運(yùn)行的獨(dú)占任務(wù)為代理程序,所述代理程序?yàn)槊總€(gè)業(yè)務(wù)核綁定不同的業(yè)務(wù)程序。具體的,所述業(yè)務(wù)核上運(yùn)行的任務(wù)為具體的業(yè)務(wù)程序。非対稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,包括以下步驟步驟I.系統(tǒng)上電,控制核作為主核運(yùn)行并開(kāi)始初始化,業(yè)務(wù)核處于暫停狀態(tài);步驟2.控制核完成必要的初始化后啟動(dòng)業(yè)務(wù)核完成硬件及操作系統(tǒng)相關(guān)初始化;
步驟3.系統(tǒng)將任務(wù)綁定到對(duì)應(yīng)的業(yè)務(wù)核上獨(dú)立運(yùn)行。具體的,步驟I包括以下步驟系統(tǒng)上電,控制核運(yùn)行并跳轉(zhuǎn)到特定的地址執(zhí)行操作系統(tǒng)的初始化代碼,完成控制核上包括內(nèi)存訪問(wèn)及中斷的必要的初始化。具體的,步驟2包括以下步驟步驟21.控制核完成必要的初始化后,為業(yè)務(wù)核運(yùn)行做必要的準(zhǔn)備工作;步驟22.控制核做好了必要的準(zhǔn)備工作后發(fā)送ー個(gè)中斷到所有的業(yè)務(wù)核,完成業(yè)務(wù)核的啟動(dòng);步驟23.業(yè)務(wù)核啟動(dòng)后跳轉(zhuǎn)到控制核為其設(shè)定的地址開(kāi)始執(zhí)行特定的程序,該特定的程序中首先完成對(duì)業(yè)務(wù)核的進(jìn)ー步初始化動(dòng)作,業(yè)務(wù)核初始化完成后運(yùn)行代理程序。進(jìn)ー步的,步驟21中,所述必要的準(zhǔn)備工作包括建立內(nèi)存訪問(wèn)的必要映射關(guān)系、設(shè)置中斷處理、設(shè)置業(yè)務(wù)核運(yùn)行的程序入ロ地址及任務(wù)棧地址。具體的,步驟23中,所述進(jìn)一歩初始化動(dòng)作的初始化代碼采用操作系統(tǒng)為SMP提供的從核初始化代碼,關(guān)閉業(yè)務(wù)核上的所有中斷,不響應(yīng)系統(tǒng)調(diào)用,不開(kāi)啟任何定時(shí)器。再進(jìn)ー步的,步驟3中包括以下步驟步驟31.用戶使用操作系統(tǒng)將任務(wù)放置到控制核的任務(wù)隊(duì)列中,所述控制核的任務(wù)隊(duì)列為ー個(gè)鏈表,每ー個(gè)節(jié)點(diǎn)對(duì)應(yīng)ー個(gè)業(yè)務(wù)核,該節(jié)點(diǎn)上至少包含了對(duì)應(yīng)業(yè)務(wù)核的核號(hào)及業(yè)務(wù)程序的入口地址;步驟32.業(yè)務(wù)核上的代理程序遍歷任務(wù)隊(duì)列,通過(guò)匹配核號(hào)選擇具體的任務(wù)放置到該業(yè)務(wù)核的任務(wù)隊(duì)列中運(yùn)行。本發(fā)明的有益效果是,通過(guò)上述非対稱多核系統(tǒng)及其實(shí)現(xiàn)方法,對(duì)業(yè)務(wù)程序屏蔽了物理核,剝離了復(fù)雜的操作系統(tǒng)工作,減少了業(yè)務(wù)程序的復(fù)雜度,能有效的提高穩(wěn)定性,且避免了業(yè)務(wù)核上的中斷,提高了呑吐量,使用代理程序,増加了對(duì)業(yè)務(wù)核使用的靈活度。
圖I是傳統(tǒng)AMP系統(tǒng)模型示意圖。圖2是本發(fā)明非対稱多核系統(tǒng)模型示意圖。圖3是本發(fā)明實(shí)施例的非対稱多核系統(tǒng)初始化流程圖。圖4是本發(fā)明實(shí)施例的非対稱多核系統(tǒng)中業(yè)務(wù)綁定示意圖。
具體實(shí)施例方式
下面結(jié)合實(shí)施例及附圖,詳細(xì)描述本發(fā)明的技術(shù)方案。本發(fā)明非対稱多核系統(tǒng)模型示意圖參見(jiàn)圖2。本發(fā)明的非対稱多核系統(tǒng),包括多核處理器,所述多核處理器包括至少ー個(gè)控制核,多核處理器中除控制核外其余皆為業(yè)務(wù)核,控制核用于運(yùn)行操作系統(tǒng),業(yè)務(wù)核用于運(yùn)行具體的任務(wù),在該非對(duì)稱多核系統(tǒng)中,業(yè)務(wù)程序不單獨(dú)編譯鏡像,作為操作系統(tǒng)的ー個(gè)任務(wù)綁定到特定的業(yè)務(wù)核上運(yùn)行。本發(fā)明非対稱多核系統(tǒng)的實(shí)現(xiàn)方法中,首先系統(tǒng)上電,控制核運(yùn)行并開(kāi)始初始化,業(yè)務(wù)核處于暫停狀態(tài),然后在控制核完成必要的初始化后啟動(dòng)業(yè)務(wù)核完成硬件及操作系統(tǒng)相關(guān)初始化,最后系統(tǒng)將任務(wù)綁定到對(duì)應(yīng)的業(yè)務(wù)核上獨(dú)立運(yùn)行,在這種非対稱多核系統(tǒng)中,操作系統(tǒng)對(duì)物理核做了屏蔽,業(yè)務(wù)程序不需要實(shí)現(xiàn)復(fù)雜的操作系統(tǒng)邏輯,有效的降低了復(fù)雜度,増加了可靠性。實(shí)施例本發(fā)明實(shí)施例中非対稱多核系統(tǒng)模型示意圖參見(jiàn)圖2,本發(fā)明實(shí)施例的非対稱多核系統(tǒng)初始化流程圖參見(jiàn)圖3,本發(fā)明實(shí)施例的非対稱多核系統(tǒng)中業(yè)務(wù)綁定示意圖參見(jiàn)圖4。本實(shí)施例的非對(duì)稱多核系統(tǒng),包括多核處理器,所述多核處理器包括至少ー個(gè)控制核,多核處理器中除控制核外其余皆為業(yè)務(wù)核,控制核用于運(yùn)行操作系統(tǒng),業(yè)務(wù)核用于運(yùn)行具體的任務(wù),控制核及業(yè)務(wù)核中都具有ー個(gè)任務(wù)隊(duì)列,而控制核的任務(wù)隊(duì)列能夠放置多個(gè)任務(wù),由操作系統(tǒng)進(jìn)行調(diào)度;業(yè)務(wù)核的任務(wù)隊(duì)列中僅放置一個(gè)任務(wù),在任務(wù)開(kāi)始運(yùn)行后獨(dú)占該業(yè) 務(wù)核的所有資源,不參與操作系統(tǒng)的任務(wù)調(diào)度,這里業(yè)務(wù)核上運(yùn)行的任務(wù)可以為具體的業(yè)務(wù)程序或代理程序;且在業(yè)務(wù)核上關(guān)閉所有中斷,不執(zhí)行系統(tǒng)調(diào)用,不運(yùn)行任何定時(shí)器。本實(shí)施例的非対稱多核系統(tǒng)的實(shí)現(xiàn)方法,包括以下步驟A.系統(tǒng)上電并初始化,系統(tǒng)初始化的起點(diǎn)從多核處通器上電開(kāi)始直到系統(tǒng)啟動(dòng)完成,即控制核開(kāi)始運(yùn)行操作系統(tǒng)任務(wù),業(yè)務(wù)核開(kāi)始運(yùn)行業(yè)務(wù)代理程序。多核處理器在上電時(shí)通常會(huì)先啟動(dòng)ー個(gè)核運(yùn)行,其它的核處于暫停狀態(tài)。最先運(yùn)行的核稱為主核,即本實(shí)施例中的控制核,其它核稱為從核,即本實(shí)施例中的業(yè)務(wù)核。上電時(shí),主核跳轉(zhuǎn)到特定的地址執(zhí)行操作系統(tǒng)的初始化代碼,完成主核上必要的初始化,包括內(nèi)存訪問(wèn),中斷等初始化。當(dāng)主核完成必要的初始化后,就開(kāi)始為從核運(yùn)行做必要的準(zhǔn)備エ作,主要指建立內(nèi)存訪問(wèn)的必要映射關(guān)系,設(shè)置中斷處理,設(shè)置從核運(yùn)行的程序入口地址,任務(wù)棧地址等。當(dāng)為從核運(yùn)行做好了充分的準(zhǔn)備之后,主核發(fā)送ー個(gè)中斷到所有的從核,完成對(duì)從核的啟動(dòng)。從核啟動(dòng)后跳轉(zhuǎn)到主核為其設(shè)定的地址開(kāi)始執(zhí)行特定的程序。這段特定的程序首先完成對(duì)從核的進(jìn)ー步初始化動(dòng)作。這部分初始化代碼可以采用操作系統(tǒng)為SMP提供的從核初始化代碼,也可以使用用戶自己的初始化代碼。在本發(fā)明的實(shí)施例中采用了在操作系統(tǒng)為SMP提供的通用從核初始化代碼的基礎(chǔ)上進(jìn)行改造的方式,即關(guān)閉從核上的所有中斷,不響應(yīng)系統(tǒng)調(diào)用,不開(kāi)啟任何定時(shí)器。從核初始化完成后就開(kāi)始運(yùn)行代理程序,至此該AMP系統(tǒng)完成了初始化過(guò)程。B.業(yè)務(wù)綁定到特定的業(yè)務(wù)核。在運(yùn)行過(guò)程中,用戶可以使用的特定的接ロ將業(yè)務(wù)綁定到特定的業(yè)務(wù)核上面,具體過(guò)程如圖4所示。用戶可以通過(guò)提供的接ロ將業(yè)務(wù)程序η(也可以為代理程序η)放置到業(yè)務(wù)程序隊(duì)列(即控制核的任務(wù)隊(duì)列)中,業(yè)務(wù)程序隊(duì)列可以是ー個(gè)鏈表,每ー個(gè)節(jié)點(diǎn)對(duì)應(yīng)ー個(gè)業(yè)務(wù)核,該節(jié)點(diǎn)上包含了業(yè)務(wù)核的核號(hào),業(yè)務(wù)程序的入口地址等必要信息。業(yè)務(wù)核上的代理程序遍歷業(yè)務(wù)程序隊(duì)列,通過(guò)匹配核號(hào)來(lái)選擇具體的業(yè)務(wù)放置到自己的任務(wù)隊(duì)列中運(yùn)行。由于業(yè)務(wù)核上關(guān)閉了所有的中斷,不執(zhí)行系統(tǒng)調(diào)用,不參與操作系統(tǒng)的任務(wù)調(diào)度,這樣業(yè)務(wù)程序就能夠完全獨(dú)占所有業(yè)務(wù)核的資源,有效的保證了業(yè)務(wù)的吞吐量。
本例的圖3雖然只描述了四核系統(tǒng)的模型,但該非対稱多核系統(tǒng)的實(shí)現(xiàn)方法適用于其它數(shù)目的多核系統(tǒng)。該非對(duì)稱多核系統(tǒng)對(duì)核進(jìn)行分組,控制核的數(shù)量也不僅局限于I個(gè),也可以由多個(gè)控制核組成SMP系統(tǒng)發(fā)揮控制功能。以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的,技術(shù)方案和有益效果進(jìn)行了進(jìn)ー步詳 細(xì)說(shuō)明,所應(yīng)注意的是以上所述僅為本發(fā)明的具體實(shí)施例而已,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.非對(duì)稱多核系統(tǒng),包括多核處理器,其特征在于,所述多核處理器包括至少一個(gè)控制核,多核處理器中除控制核外其余的核皆為業(yè)務(wù)核, 所述控制核,對(duì)應(yīng)一個(gè)可放置多個(gè)任務(wù)的任務(wù)隊(duì)列,用于運(yùn)行操作系統(tǒng)鏡像,由操作系統(tǒng)對(duì)所述任務(wù)隊(duì)列中的任務(wù)進(jìn)行調(diào)度; 所述業(yè)務(wù)核,對(duì)應(yīng)一個(gè)只放置一個(gè)任務(wù)的任務(wù)隊(duì)列,用于運(yùn)行獨(dú)占任務(wù),所述獨(dú)占任務(wù)獨(dú)占該業(yè)務(wù)核的所有資源,不參與操作系統(tǒng)的任務(wù)調(diào)度。
2.如權(quán)利要求I所述的非對(duì)稱多核系統(tǒng),其特征在于,所述業(yè)務(wù)核上關(guān)閉所有中斷,不執(zhí)行系統(tǒng)調(diào)用,不運(yùn)行任何定時(shí)器。
3.如權(quán)利要求I或2所述非對(duì)稱多核系統(tǒng),其特征在于,所述業(yè)務(wù)核上運(yùn)行的獨(dú)占任務(wù)為代理程序,所述代理程序?yàn)槊總€(gè)業(yè)務(wù)核綁定不同的業(yè)務(wù)程序。
4.如權(quán)利要求I或2所述的非對(duì)稱多核系統(tǒng),其特征在于,所述業(yè)務(wù)核上運(yùn)行的任務(wù)為具體的業(yè)務(wù)程序。
5.非對(duì)稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,包括以下步驟 步驟I.系統(tǒng)上電,控制核作為主核運(yùn)行并開(kāi)始初始化,業(yè)務(wù)核處于暫停狀態(tài); 步驟2.控制核完成必要的初始化后啟動(dòng)業(yè)務(wù)核完成硬件及操作系統(tǒng)相關(guān)初始化; 步驟3.系統(tǒng)將任務(wù)綁定到對(duì)應(yīng)的業(yè)務(wù)核上獨(dú)立運(yùn)行。
6.如權(quán)利要求5所述的非對(duì)稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,步驟I包括 系統(tǒng)上電,控制核運(yùn)行并跳轉(zhuǎn)到特定的地址執(zhí)行操作系統(tǒng)的初始化代碼,完成控制核上包括內(nèi)存訪問(wèn)及中斷的必要的初始化。
7.如權(quán)利要求5所述的非對(duì)稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,步驟2包括以下步驟 步驟21.控制核完成必要的初始化后,為業(yè)務(wù)核運(yùn)行做必要的準(zhǔn)備工作; 步驟22.控制核做好了必要的準(zhǔn)備工作后發(fā)送一個(gè)中斷到所有的業(yè)務(wù)核,完成業(yè)務(wù)核的啟動(dòng); 步驟23.業(yè)務(wù)核啟動(dòng)后跳轉(zhuǎn)到控制核為其設(shè)定的地址開(kāi)始執(zhí)行特定的程序,該特定的程序中首先完成對(duì)業(yè)務(wù)核的進(jìn)一步初始化動(dòng)作,業(yè)務(wù)核初始化完成后運(yùn)行代理程序。
8.如權(quán)利要求7所述的非對(duì)稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,步驟21中,所述必要的準(zhǔn)備工作包括建立內(nèi)存訪問(wèn)的必要映射關(guān)系、設(shè)置中斷處理、設(shè)置業(yè)務(wù)核運(yùn)行的程序入口地址及任務(wù)棧地址。
9.如權(quán)利要求7所述的非對(duì)稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,步驟23中,所述進(jìn)一步初始化動(dòng)作的初始化代碼采用操作系統(tǒng)為SMP提供的從核初始化代碼,關(guān)閉業(yè)務(wù)核上的所有中斷,不響應(yīng)系統(tǒng)調(diào)用,不開(kāi)啟任何定時(shí)器。
10.如權(quán)利要6-10任一項(xiàng)所述的非對(duì)稱多核系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,步驟3中包括以下步驟 步驟31.用戶使用操作系統(tǒng)將任務(wù)放置到控制核的任務(wù)隊(duì)列中,所述控制核的任務(wù)隊(duì)列為一個(gè)鏈表,每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)業(yè)務(wù)核,該節(jié)點(diǎn)上至少包含了對(duì)應(yīng)業(yè)務(wù)核的核號(hào)及業(yè)務(wù)程序的入口地址; 步驟32.業(yè)務(wù)核上的代理程序遍歷任務(wù)隊(duì)列,通過(guò)匹配核號(hào)選擇具體的任務(wù)放置到該業(yè)務(wù)核的任務(wù)隊(duì)列中運(yùn)行。
全文摘要
本發(fā)明涉及信息技術(shù)。本發(fā)明解決了現(xiàn)有AMP系統(tǒng)中業(yè)務(wù)程序復(fù)雜度較高的問(wèn)題,提供了一種數(shù)據(jù)集中管理系統(tǒng)及方法,其技術(shù)方案可概括為提供一種非對(duì)稱多核系統(tǒng),包括多核處理器,其特征在于,所述多核處理器包括至少一個(gè)控制核,多核處理器中除控制核外其余的核皆為業(yè)務(wù)核;所述控制核,對(duì)應(yīng)一個(gè)可放置多個(gè)任務(wù)的任務(wù)隊(duì)列,用于運(yùn)行操作系統(tǒng)鏡像,由操作系統(tǒng)對(duì)所述任務(wù)隊(duì)列中的任務(wù)進(jìn)行調(diào)度;所述業(yè)務(wù)核,對(duì)應(yīng)一個(gè)只放置一個(gè)任務(wù)的任務(wù)隊(duì)列,用于運(yùn)行獨(dú)占任務(wù),所述獨(dú)占任務(wù)獨(dú)占該業(yè)務(wù)核的所有資源,不參與操作系統(tǒng)的任務(wù)調(diào)度。本發(fā)明的有益效果是能有效的提高穩(wěn)定性,適用于非對(duì)稱多核系統(tǒng)。
文檔編號(hào)G06F9/46GK102662740SQ201210087930
公開(kāi)日2012年9月12日 申請(qǐng)日期2012年3月29日 優(yōu)先權(quán)日2012年3月29日
發(fā)明者陳小軍 申請(qǐng)人:邁普通信技術(shù)股份有限公司