国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種cpu核運(yùn)行方法及裝置的制作方法

      文檔序號(hào):6464672閱讀:184來(lái)源:國(guó)知局
      專利名稱:一種cpu核運(yùn)行方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及在系統(tǒng)中運(yùn)行虛擬CPU核的技術(shù)。
      背景技術(shù)
      在通信領(lǐng)域中,系統(tǒng)往往要處理多種邏輯功能,比如控制功能、業(yè)務(wù)數(shù) 據(jù)傳輸功能等。通常,將通信系統(tǒng)中各功能進(jìn)行邏輯區(qū)分,每個(gè)功能可以作為一個(gè)平面,稱為邏輯平面(Logic Plane )。在邏輯平面中,主要實(shí)現(xiàn)業(yè)務(wù)數(shù) 據(jù)傳輸功能的平面,則稱為數(shù)據(jù)平面(DataPlane);主要實(shí)現(xiàn)各種控制功能的 平面,則稱為控制平面(Control Plane )。不同的邏輯平面有不同的特征,比如控制平面,通常涉及到復(fù)雜的邏輯 和控制,需要有操作系統(tǒng)的支持才容易實(shí)現(xiàn);但是對(duì)于數(shù)據(jù)平面,主要負(fù)責(zé) 數(shù)據(jù)的傳輸,其處理流程相對(duì)簡(jiǎn)單,甚至可以不用操作系統(tǒng),這樣就可以減 少操作系統(tǒng)的調(diào)度開銷,提高系統(tǒng)的處理性能。如果系統(tǒng)中采用多核CPU ( Center Process Unit,中央處理單元),那么通 常的做法就是讓一個(gè)核運(yùn)行操作系統(tǒng),實(shí)現(xiàn)控制平面的邏輯,而讓另外的核 處理非控制平面的邏輯。例如一臺(tái)路由器具有四個(gè)CPU核,可以讓一個(gè)核運(yùn)行 操作系統(tǒng),實(shí)現(xiàn)控制平面邏輯,而讓其他三個(gè)核實(shí)現(xiàn)轉(zhuǎn)發(fā)功能(也就是數(shù)據(jù) 平面功能),那么這三個(gè)核上的邏輯平面就可以不通過(guò)操作系統(tǒng)調(diào)度而直夢(mèng)運(yùn) 行,從而提高系統(tǒng)效率(因?yàn)椴僮飨到y(tǒng)調(diào)度開銷比較大)。 一種具體做法是 一個(gè)核進(jìn)行報(bào)文接收, 一個(gè)核執(zhí)行路由查找以確定轉(zhuǎn)發(fā)端口,另外一個(gè)核進(jìn) 行報(bào)文的發(fā)送。這樣的架構(gòu)下,系統(tǒng)的處理能力會(huì)大大加強(qiáng)。但是,本發(fā)明的發(fā)明人發(fā)現(xiàn)對(duì)于一些低端的產(chǎn)品,即CPU核數(shù)目較少的 系統(tǒng),例如只有一個(gè)或兩個(gè)CPU核的系統(tǒng),那么上面的軟件架構(gòu)就不適用了。需要把上述軟件架構(gòu)中的部分CPU核的邏輯平面移植到系統(tǒng)僅有的一個(gè)或兩 個(gè)CPU核的操作系統(tǒng)中,在操作系統(tǒng)支持下才能實(shí)現(xiàn)所有的功能,由于操作系統(tǒng)的調(diào)度開銷和線程間通信的開銷比較大,導(dǎo)致系統(tǒng)處理性能低。 發(fā)明內(nèi)容本發(fā)明實(shí)施例提供了一種CPU核運(yùn)行方法及裝置,用以在物理存在的 CPU核的基礎(chǔ)上增加虛擬CPU核的運(yùn)行,提高系統(tǒng)的處理性能。 一種CPU核運(yùn)4亍方法,包括系統(tǒng)中斷到達(dá)時(shí),調(diào)用預(yù)先配置的虛擬CPU核入口函數(shù);并 通過(guò)CPU核運(yùn)行所調(diào)用的虛擬CPU核入口函數(shù)。 所述系統(tǒng)中斷為系統(tǒng)定時(shí)中斷。所述通過(guò)CPU核運(yùn)行所調(diào)用的虛擬CPU核入口函數(shù),具體包括 在所述虛擬CPU核入口函數(shù)通過(guò)CPU核開始運(yùn)行時(shí),記錄運(yùn)行起始時(shí)間; 根據(jù)預(yù)先設(shè)定的運(yùn)行時(shí)間以及記錄的起始時(shí)間,確定該虛擬CPU核入口 函數(shù)的退出時(shí)間;每當(dāng)運(yùn)行完該虛擬CPU核入口函數(shù)中的 一個(gè)線程,獲得當(dāng)前時(shí)間;比較所述當(dāng)前時(shí)間與退出時(shí)間,在所述當(dāng)前時(shí)間大于、等于所述退出時(shí) 間時(shí),控制該虛擬CPU核入口函數(shù)從所述CPU核退出運(yùn)行。所述虛擬CPU核入口函數(shù)為多個(gè),以及各預(yù)先設(shè)定的虛擬CPU核入口函 數(shù)的運(yùn)行時(shí)間之和小于為所述定時(shí)中斷設(shè)定的定時(shí)周期。一種CPU核運(yùn)行裝置,包括入口函數(shù)存儲(chǔ)才莫塊,用于存儲(chǔ)配置的虛擬CPU核入口函數(shù); 中斷處理模塊,用于在系統(tǒng)中斷到達(dá)時(shí),調(diào)用所述入口函數(shù)存儲(chǔ)模塊存儲(chǔ)的虛擬CPU核入口函數(shù),將所述虛擬CPU核入口函數(shù)通過(guò)CPU核運(yùn)行。 所述中斷處理模塊具體用于在系統(tǒng)定時(shí)中斷到達(dá)時(shí),在定時(shí)中斷處理程序中調(diào)用虛擬CPU核入口函數(shù)。實(shí)現(xiàn)在系統(tǒng)原有CPU核的基礎(chǔ)上增加了虛擬CPU核,提高了系統(tǒng)處理性能,并提高了代碼重用性。


      圖1為本發(fā)明實(shí)施例一的虛擬CPU核入口函數(shù)運(yùn)行時(shí)間分配示意圖; 圖2為本發(fā)明實(shí)施例一的虛擬CPU核運(yùn)行方法流程示意圖; 圖3為本發(fā)明實(shí)施例一的控制虛擬CPU核入口函數(shù)退出方法流程圖; 圖4為本發(fā)明實(shí)施例一的虛擬CPU核運(yùn)行裝置的內(nèi)部結(jié)構(gòu)框圖; 圖5為本發(fā)明實(shí)施例二的在雙核系統(tǒng)的不同中斷處理程序中調(diào)用各虛擬 CPU核入口函^t的示意圖。
      具體實(shí)施方式
      本發(fā)明提供的方法是在系統(tǒng)原有的物理存在的CPU核基礎(chǔ)上再虛擬出一 個(gè)或多個(gè)虛擬CPU核,在原有的物理存在的CPU核和虛擬CPU核上分別運(yùn) 行各邏輯平面,從而提高系統(tǒng)處理性能。比如,在單核CPU系統(tǒng)中,虛擬出 3個(gè)CPU核,則系統(tǒng)中包括有4個(gè)CPU核(其中1個(gè)為原有CPU核、3個(gè)為 虛擬CPU核),該系統(tǒng)就可以運(yùn)行4核系統(tǒng)的軟件架構(gòu)原有CPU核運(yùn)行操 作系統(tǒng),實(shí)現(xiàn)控制平面邏輯;虛擬的3個(gè)CPU核進(jìn)行數(shù)據(jù)平面的處理。這樣, 提高了單核CPU系統(tǒng)的處理性能,并且可以將4核系統(tǒng)的軟件架構(gòu)直接應(yīng)用 于本發(fā)明虛擬了 3個(gè)虛擬CPU核的單核CPU系統(tǒng),提高了代碼重用性。再比如,在雙核系統(tǒng)的原有2個(gè)CPU核的基礎(chǔ)上再虛擬出2個(gè)CPU核。 在其中一個(gè)原有CPU核上運(yùn)行操作系統(tǒng),實(shí)現(xiàn)控制平面邏輯;另一個(gè)原有CPU 核以及虛擬的2個(gè)CPU核則進(jìn)行數(shù)據(jù)平面的處理。如此,提高了該雙核系統(tǒng) 的處理性能,并且4核系統(tǒng)的軟件架構(gòu)也可直接應(yīng)用于本發(fā)明虛擬了 2個(gè)虛 擬CPU核的雙核系統(tǒng),提高了代碼重用性。6下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明虛擬CPU核的技術(shù)方案。 對(duì)于一個(gè)物理存在的CPU核,在該CPU核開始運(yùn)行時(shí),該CPU核從一固定地址開始讀取指令,并執(zhí)行該指令。通常這個(gè)指令會(huì)是一個(gè)跳轉(zhuǎn)指令,CPU根據(jù)該指令跳轉(zhuǎn)到該CPU核的入口函數(shù)的起始地址,并開始執(zhí)行CPU 核入口函數(shù)(Core—Enter函數(shù))。在CPU核入口函數(shù)中調(diào)用該CPU核的調(diào)度 程序,從而實(shí)現(xiàn)該CPU核對(duì)運(yùn)行程序的調(diào)度管理功能。通過(guò)調(diào)度程序?qū)崿F(xiàn)對(duì) 相應(yīng)的邏輯平面的調(diào)用,從而CPU核通過(guò)CPU核入口函數(shù)(Core—Enter函數(shù)) 實(shí)現(xiàn)了相應(yīng)邏輯平面的調(diào)用、運(yùn)行。對(duì)于多個(gè)CPU核,則每個(gè)CPU核對(duì)應(yīng)于一個(gè)Core—Enter函數(shù)。這樣, 系統(tǒng)在運(yùn)行起多個(gè)CPU核時(shí),每個(gè)CPU核都可以通過(guò)其Core—Enter函數(shù)運(yùn) 行調(diào)度、管理功能,從而調(diào)用、運(yùn)行各自的邏輯平面(邏輯功能)。因此,當(dāng) 一個(gè)CPU核入口函數(shù)運(yùn)行時(shí),即可3見為該CPU核入口函數(shù)所對(duì)應(yīng)的CPU核 在運(yùn)行。本發(fā)明的方法是,對(duì)于系統(tǒng)需要增加的虛核(比如上述單核系統(tǒng)中增加 的3個(gè)虛核、雙核系統(tǒng)中增加的2個(gè)虛核)定義對(duì)應(yīng)的虛擬CPU核入口函數(shù); 利用系統(tǒng)的中斷處理程序,當(dāng)該中斷到達(dá)、觸發(fā)運(yùn)行中斷處理程序時(shí),在中 斷處理程序中調(diào)用虛擬CPU核入口函數(shù),通過(guò)虛擬CPU核入口函數(shù)的運(yùn)行, 從而模擬了 CPU核的調(diào)度與管理功能,實(shí)現(xiàn)了虛擬CPU核的運(yùn)行。這樣,當(dāng) 虛擬CPU核入口函數(shù)運(yùn)行起來(lái)的時(shí)候,相應(yīng)虛擬CPU核的調(diào)度程序也得到運(yùn) 行,虛擬CPU核運(yùn)行調(diào)度、管理功能,通過(guò)調(diào)度程序虛擬CPU核的邏輯平面 也會(huì)被調(diào)用、運(yùn)行。例如,單核系統(tǒng)中,在原有CPU核的入口函數(shù)Core—Enter—1函數(shù)中實(shí)現(xiàn) 了操作系統(tǒng)的運(yùn)行。假設(shè),希望該單核系統(tǒng)能夠?qū)崿F(xiàn)4核系統(tǒng)的軟件架構(gòu), 則該單核系統(tǒng)需要再增加3個(gè)虛擬CPU核。針對(duì)3個(gè)虛擬CPU核分別定義了 Core—Enter—2 、 Core—Enter—3 、 Core_Enter—4入口函數(shù)。在Core—Enter一2 、 Core—Enter—3、 Core—Enter—4入口函數(shù)中實(shí)現(xiàn)了對(duì)相應(yīng)邏輯平面的調(diào)用,比如調(diào)用數(shù)據(jù)平面。在系統(tǒng)的中斷處理程序中,實(shí)現(xiàn)了對(duì)Core—Enter—2 、 Core—Enter_3、 Core_Enter_4入口函數(shù)的調(diào)用。這樣,當(dāng)中斷觸發(fā)時(shí),中斷處 理程序調(diào)用虛擬CPU核的入口函: Core—Enter—2 、 Core—Enter—3 、 Core—Enter—4,從而實(shí)現(xiàn)虛擬CPU核的入口函數(shù)的運(yùn)行。在各虛擬CPU核的 入口函數(shù)運(yùn)行時(shí),則實(shí)現(xiàn)了相應(yīng)邏輯平面的調(diào)用與運(yùn)4亍。這里需要指出的是,上述方法既可以應(yīng)用于單CPU核系統(tǒng),也可以應(yīng)用 于多核系統(tǒng);增加的虛擬CPU核既可以是一個(gè),也可是多個(gè);既可以在一個(gè) 中斷處理程序中調(diào)用一個(gè)或多個(gè)虛擬CPU核的入口函數(shù),也可以在多個(gè)中斷 處理程序中分別調(diào)用各虛擬CPU核的入口函數(shù);所述中斷處理程序可以是多 種中斷處理程序例如,定時(shí)中斷處理程序、外部中斷處理程序等,本領(lǐng)域 技術(shù)人員可以根據(jù)實(shí)際情況,將虛擬CPU核的入口函數(shù)設(shè)計(jì)于對(duì)應(yīng)的中斷處 理程序中。下面結(jié)合附圖以兩個(gè)具體實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明虛擬CPU核的技術(shù)方 案。其中,實(shí)施例一為在一個(gè)定時(shí)中斷處理程序中實(shí)現(xiàn)虛擬多個(gè)CPU核的技 術(shù)方案;實(shí)施例二為在多個(gè)中斷處理程序中實(shí)現(xiàn)虛擬多個(gè)CPU核的技術(shù)方案。 本領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明公開的技術(shù)內(nèi)容,輕而易舉實(shí)現(xiàn)在各種不同 的中斷處理程序中實(shí)現(xiàn)虛擬多個(gè)CPU核的技術(shù)方案。實(shí)施例一例如,在系統(tǒng)原有CPU核的基礎(chǔ)上再增加若干個(gè)虛擬CPU核(比如增加 2個(gè)虛擬CPU核Core—A核、Core—B核),針對(duì)各虛擬CPU核分別設(shè)置虛 擬CPU核入口函數(shù)(比如Core—Enter_A函數(shù)、Core—Enter—B函數(shù))。在系統(tǒng)的一個(gè)定時(shí)處理中斷程序中調(diào)用各虛擬CPU核入口函數(shù)設(shè)置定 時(shí)中斷的定時(shí)周期為T,每當(dāng)定時(shí)周期到達(dá)時(shí)產(chǎn)生定時(shí)中斷、運(yùn)行定時(shí)中斷處 理程序。在定時(shí)中斷處理程序中調(diào)用了各虛擬CPU核入口函數(shù),比如 Core—Enter—A函數(shù)、Core—Enter—B函數(shù)。具體的,可以在定時(shí)周期T中為各 CPU核(包括原有CPU核和虛擬CPU核)的入口函數(shù)運(yùn)行時(shí)間分別分配時(shí)間段。比如,如圖l所示,為2個(gè)虛擬CPU核的入口函數(shù)分別分配的運(yùn)行時(shí)間段為^ (比如。為定時(shí)周期T中30%的時(shí)間)、^ (比如^為定時(shí)周期T中40%的時(shí)間),其余定時(shí)周期T中的時(shí)間^則分配給原有CPU核。分配的各時(shí)間段之和等于定時(shí)周期T。以單核系統(tǒng)實(shí)現(xiàn)3核系統(tǒng)軟件架構(gòu)為例,講述具體技術(shù)方案,如圖2所示,包括如下步驟S201:根據(jù)系統(tǒng)原有物理存在的CPU核,確定需增加的虛擬CPU核。 單核系統(tǒng)原有一個(gè)物理存在的CPU核,要實(shí)現(xiàn)3核系統(tǒng)則要增加2個(gè)虛擬CPU核(Core—A核、Core—B核)。若原有CPU核實(shí)現(xiàn)了操作系統(tǒng)的運(yùn)行,則確定增加的虛擬CPU核實(shí)現(xiàn)3核系統(tǒng)中除運(yùn)行操作系統(tǒng)的CPU核的其它CPU核的相應(yīng)邏輯平面的調(diào)用。S202:對(duì)于需要增加的各虛擬CPU核定義對(duì)應(yīng)的虛擬CPU核入口函數(shù)。 對(duì)于要增加的Core— A核、Core— B核分別定義了虛擬CPU核入口函數(shù)Core—Enter—A函數(shù)、Core—Enter—B函數(shù)。在分別定義的虛擬CPU核入口函數(shù)中調(diào)用相應(yīng)邏輯平面。S203:開啟系統(tǒng)中斷。啟定時(shí)中斷。S204:定時(shí)中斷到達(dá),開始執(zhí)行定時(shí)中斷程序。在開啟了系統(tǒng)的定時(shí)中斷后,系統(tǒng)自動(dòng)計(jì)時(shí),在設(shè)定的定時(shí)周期T到達(dá) 時(shí),即觸發(fā)定時(shí)中斷,開始執(zhí)行定時(shí)中斷程序。對(duì)于在其它類型中斷處理程 序中調(diào)用虛擬CPU核入口函數(shù)的技術(shù)方案,則開啟相應(yīng)中斷。比如,開啟系 統(tǒng)的外部中斷,當(dāng)有外部信號(hào)到達(dá)則觸發(fā)外部中斷、CPU就調(diào)用外部中斷處 理程序。S205:定時(shí)中斷程序調(diào)用Core—Enter—A入口函數(shù)。在定時(shí)中斷程序中,調(diào)用Core—Enter—A函數(shù),貝'j Core—Enter_A函數(shù)通過(guò)系統(tǒng)中的物理存在的CPU核開始運(yùn)行。Core_Enter—A函數(shù)為虛擬CPU核 Core— A的入口函數(shù),該函數(shù)運(yùn)行就相當(dāng)于虛擬CPU核Core— A運(yùn)行。在Core—Enter—A函凄丈開始運(yùn)行時(shí),記錄下Core—Enter—A函數(shù)開始運(yùn)4亍的 時(shí)間Tenter—A。S206: Core—Enter—A函凄t退出。根據(jù)記錄的Core—Enter—A函數(shù)開始運(yùn)行的時(shí)間Tenter—A、以及分配的 Core—Enter—A函數(shù)運(yùn)行時(shí)間/,,可以相應(yīng)計(jì)算出Core—Enter—A函數(shù)退出的時(shí) 間Texit—A=Tenter—A+g ,則根據(jù)計(jì)算出的Core—Enter—A函數(shù)退出時(shí)間 Texit—A控制Core—Enter—A函凄史的退出。Core—Enter—A函數(shù)通常要完成多個(gè)功能或者任務(wù),而每個(gè)功能或者任務(wù) 都可以通過(guò)在Core—Enter—A函數(shù)中調(diào)用線程來(lái)完成。#>據(jù)計(jì)算出的 Core_Enter—A函數(shù)退出時(shí)間Texit_A控制Core_Enter_A函數(shù)從系統(tǒng)的物理存 在的CPU核退出運(yùn)行,具體方法的流程圖如圖3所示,包括S301: Core—Enter—A函數(shù)開始運(yùn)行,記錄Core—Enter—A函數(shù)開始運(yùn)行的 時(shí)間Tenter—A,計(jì)算出Core—Enter—A函數(shù)退出的時(shí)間Texit一A;S302: Core—Enter—A函數(shù)調(diào)用調(diào)度程序,調(diào)度程序運(yùn)行;S303:調(diào)度程序?qū)€程進(jìn)行調(diào)度,判斷是否有需要運(yùn)行的線程;若有, 則執(zhí)行步驟S304運(yùn)行該線程;若沒有,則執(zhí)行步驟S307退出Core—Enter—A 函數(shù);S304:運(yùn)行Core—Enter—A函數(shù)中的線程; S305:當(dāng)該線程運(yùn)行完,獲取當(dāng)前時(shí)間^;S306:比較當(dāng)前時(shí)間c與Texit—A,若^大于或等于Texit_A,則執(zhí)行S307 退出Core—Enter_A函數(shù)的步驟,否則,繼續(xù)S303步驟。 S307:退出Core—Enter—A函數(shù)。進(jìn)一步,在繼續(xù)調(diào)用、運(yùn)行Core—Enter—A函數(shù)中的下一個(gè)線程時(shí),有可 能因?yàn)樵摼€程執(zhí)行時(shí)間較長(zhǎng),則導(dǎo)致Core—Enter—A函數(shù)的運(yùn)行時(shí)間大大超過(guò)分配的^ ,那么可以對(duì)于每個(gè)線程的運(yùn)行時(shí)間限定一個(gè)最大運(yùn)行時(shí)間值^^ , 軟件設(shè)計(jì)需要保證該線程的運(yùn)行時(shí)間不會(huì)超過(guò)最大運(yùn)行時(shí)間,_ ,也就是設(shè)計(jì) 線程的任務(wù)足夠小,從而運(yùn)行時(shí)間不超過(guò)最大運(yùn)行時(shí)間,_。這樣,就可以保證Core—Enter_A函數(shù)運(yùn)行時(shí)間超過(guò)^最多為、ax 。通常,_應(yīng)小于分配給 Core_Enter—A函數(shù)運(yùn)行的時(shí)間。具體的,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際可接 受的超過(guò)分配給Core—Enter_A函數(shù)運(yùn)行時(shí)間^的范圍來(lái)設(shè)計(jì)^^的具體值。比 如,分配給Core—Enter—A函凄史運(yùn)4亍的時(shí)間^為50ms,系統(tǒng)可4妻受Core—Enter—A 函數(shù)實(shí)際運(yùn)行的時(shí)間最多為51ms,則設(shè)定/,為lms,那么Core—Enter—A函 數(shù)實(shí)際運(yùn)行時(shí)間最多超過(guò)分配時(shí)間lms。通過(guò)上述的方法,從而控制了 Core—Enter—A函凄史的運(yùn)4亍時(shí)間。S207:定時(shí)中斷程序調(diào)用Core—Enter一B入口函數(shù)。在Core—Enter—A函數(shù)退出后,即可以運(yùn)行Core—Enter_B函數(shù),則定時(shí)中 斷程序調(diào)用Core—Enter—B入口函數(shù)。在Core—Enter—B函數(shù)開始運(yùn)行時(shí),記錄Core—Enter—B開始運(yùn)行的時(shí)間 Tenter一B。Core—Enter—B函數(shù)為虛擬CPU核Core—B的入口函數(shù),該函數(shù)運(yùn)行就相 當(dāng)于虛擬CPU核Core— B運(yùn)行。 S208: Core—Enter—B函數(shù)退出。Core—Enter_B函數(shù)控制退出的具體方法與Core—Enter—A函數(shù)退出的方法 一樣,此處不再贅述。S209:定時(shí)中斷處理程序退出。 S210:運(yùn)行原有CPU核的入口函數(shù)。在定時(shí)中斷處理程序退出后,系統(tǒng)可以繼續(xù)運(yùn)行原有CPU核的入口函數(shù), 直到下一個(gè)定時(shí)周期到達(dá),則繼續(xù)執(zhí)行步驟S204。通常,各虛擬CPU核入口 函數(shù)運(yùn)行時(shí)間之和要小于定時(shí)周期T。由于虛核0)^_八、Core—B分別運(yùn)行了G、 G時(shí)間,那么在下一個(gè)定時(shí)周期T到達(dá)前,原有CPU核的入口函數(shù)的運(yùn)行時(shí)間々、=丁-^-^。進(jìn)一步,上述的定時(shí)周期既可以是靜態(tài)i殳置的,也可以#4居實(shí)際情況進(jìn)行動(dòng)態(tài)調(diào)整。上述的各虛擬CPU核入口函數(shù)運(yùn)行時(shí)間既可以是靜態(tài)設(shè)置的, 也可以是根據(jù)實(shí)際情況反4貴各虛擬CPU核任務(wù)的完成情況,從而相應(yīng)調(diào)整各 虛擬CPU核入口函數(shù)運(yùn)行時(shí)間。比如,通過(guò)反4貴各虛擬CPU核當(dāng)前任務(wù)未完 成的程度來(lái)適應(yīng)性調(diào)整各虛擬CPU核入口函數(shù)運(yùn)行時(shí)間。例如,虛擬CPU一A 核還有50%未完成的任務(wù),而虛擬CPU一B核則已經(jīng)完成所有需要執(zhí)行的任務(wù), 則可以適當(dāng)增加虛擬CPU—A核對(duì)應(yīng)的虛擬CPU核入口函凄t運(yùn)行時(shí)間、縮短 虛擬CPU一B核對(duì)應(yīng)的虛擬CPU核入口函數(shù)運(yùn)行時(shí)間。本領(lǐng)域技術(shù)人員可以理解,雖然上述說(shuō)明中,為便于理解,對(duì)方法的步 驟釆用了順序性描述,但是應(yīng)當(dāng)指出,對(duì)于上述步驟的順序并不作嚴(yán)格限制。一種CPU核虛擬裝置,如圖4所示,包括入口函數(shù)存儲(chǔ)模塊401、中 斷處理模塊402。入口函數(shù)存儲(chǔ)4莫塊401 ,其存儲(chǔ)了對(duì)應(yīng)于虛擬CPU核定義的虛擬CPU核 入口函數(shù)。所述虛擬CPU核為根據(jù)系統(tǒng)原有物理存在的CPU核確定的需增加 的虛擬CPU核。確定增加虛擬CPU核的方法如前所述,此處不再贅述。中斷處理模塊402,用于在中斷到達(dá)時(shí),調(diào)用中斷處理程序;并在中斷處 理程序中調(diào)用入口函數(shù)存儲(chǔ)模塊401中的虛擬CPU核入口函數(shù),則虛擬CPU 核入口函數(shù)可以通過(guò)系統(tǒng)物理存在的CPU核運(yùn)行,從而虛擬CPU核入口函數(shù) 所對(duì)應(yīng)的虛擬CPU核實(shí)現(xiàn)了運(yùn)行。當(dāng)需要虛擬的CPU核為多個(gè)時(shí),裝置中的入口函數(shù)存儲(chǔ)模塊401也可以 是多個(gè),分別存儲(chǔ)了為各虛擬CPU核對(duì)應(yīng)定義的虛擬CPU核入口函數(shù)。中斷 處理模塊402在中斷到達(dá)時(shí),調(diào)用中斷處理程序;并在中斷處理程序中順序 調(diào)用各入口函數(shù)存儲(chǔ)模塊401中的虛擬CPU核入口函數(shù)。虛擬CPU核的數(shù)量 可以是靜態(tài)設(shè)置的,也可以動(dòng)態(tài)增加或者減少,可以采用不同的方法對(duì)虛擬 進(jìn)行管理,都屬于本發(fā)明的一種具體應(yīng)用。進(jìn)一步,中斷處理沖莫塊402可以是在定時(shí)周期到達(dá)產(chǎn)生定時(shí)中斷時(shí),調(diào) 用定時(shí)中斷處理程序;并在定時(shí)中斷處理程序中順序調(diào)用入口函數(shù)存儲(chǔ)模塊 401中的虛擬CPU核入口函數(shù)。此外,中斷處理模塊402也可以是在其它中 斷到達(dá)時(shí)調(diào)用相應(yīng)中斷處理程序(比如在外部中斷到達(dá)時(shí)調(diào)用外部中斷處理 程序),在相應(yīng)中斷處理程序中調(diào)用入口函凄t存4諸才莫塊401中的虛擬CPU核 入口函數(shù)。中斷處理模塊402調(diào)用定時(shí)中斷處理程序,定時(shí)中斷處理程序調(diào)用各虛 擬CPU核入口函數(shù)。在中斷處理程序調(diào)用虛擬CPU核入口函數(shù)后,虛擬CPU 核入口函數(shù)開始運(yùn)行。并且虛擬CPU核入口函凄t才艮據(jù)預(yù)先i殳定的各虛擬CPU 核入口函數(shù)運(yùn)行時(shí)間控制退出。各虛擬CPU核入口函數(shù)運(yùn)行時(shí)間之和小于所 述定時(shí)周期。具體的虛擬CPU核入口函數(shù)控制退出方法與前述步驟S301-307 的方法一樣,此處不再贅述。實(shí)現(xiàn)在系統(tǒng)原有CPU核的基礎(chǔ)上增加了虛擬CPU核,提高了系統(tǒng)處理性能, 并提高了代碼重用性。入口函數(shù)時(shí),還控制各虛擬CPU核入口函數(shù)的運(yùn)行時(shí)間,從而保證各虛擬CPU 核入口函數(shù)以及原有CPU核入口函數(shù)的平穩(wěn)運(yùn)行(亦即傳:證各虛擬CPU核和 原有CPU核的平穩(wěn)運(yùn)行),不會(huì)出現(xiàn)因某個(gè)CPU核入口函數(shù)運(yùn)行時(shí)間過(guò)長(zhǎng)而 影響其它CPU核入口函數(shù)的運(yùn)行,從而保證各虛擬CPU核的邏輯平面的平穩(wěn) 運(yùn)行。實(shí)施例二本發(fā)明實(shí)施例二以一個(gè)雙核系統(tǒng)為例,講述在不同中斷處理程序中調(diào)用各虛擬CPU核入口函數(shù)的技術(shù)方案。如圖5所示,假設(shè)對(duì)于一個(gè)雙核系統(tǒng)(包 括Core—1核、Core—2核,分別具有Core—Enter—1 、 Core—Enter—2入口函數(shù)), 需要再虛擬2個(gè)CPU核(Core 3核、Core 4核),以模擬4核系統(tǒng)。對(duì)于Core 3核、Core—4核分別定義了虛擬CPU核的入口函數(shù)Core—Enter—3函數(shù)、 Core—Enter—4函凄丈。在隸屬于Core_l核的外部中斷處理程序中調(diào)用Core—Enter_3函數(shù),在隸 屬于Core_2核的定時(shí)中斷處理程序中調(diào)用Core—Enter—4函數(shù)。當(dāng)系統(tǒng)有外部中斷到達(dá)時(shí),產(chǎn)生外部中斷、Core—1核執(zhí)^f亍外部中斷處理 程序,在外部中斷處理程序中調(diào)用Core—Enter—3函數(shù)。當(dāng)系統(tǒng)的定時(shí)中斷到達(dá)時(shí),產(chǎn)生定時(shí)中斷、Core—2核執(zhí)行定時(shí)中斷處理 程序,在定時(shí)中斷處理程序中調(diào)用Core—Enter_4函數(shù)。在具體實(shí)施上述本實(shí)施例的方案時(shí),外部中斷的觸發(fā)條件可以是報(bào)文到 達(dá)信號(hào)。當(dāng)系統(tǒng)接收到報(bào)文到達(dá)信號(hào)時(shí),產(chǎn)生外部中斷,調(diào)用外部中斷處理 程序,并在外部中斷處理程序調(diào)用Core—Enter一3函數(shù),而Core_Enter_3函數(shù) 中可以調(diào)用報(bào)文接收的數(shù)據(jù)平面。這樣,當(dāng)報(bào)文到達(dá)時(shí)即觸發(fā)運(yùn)行報(bào)文接收 的數(shù)據(jù)平面來(lái)接收?qǐng)?bào)文。實(shí)現(xiàn)在系統(tǒng)原有CPU核的基礎(chǔ)上增加了虛擬CPU核,提高了系統(tǒng)處理性能, 并提高了代碼重用性。是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀 取存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等。還可以理解的是,附圖或?qū)嵤├兴镜难b置結(jié)構(gòu)僅僅是示意性的,表 示邏輯結(jié)構(gòu)。其中作為分離部件顯示的模塊可能是或者可能不是物理上分開 的,作為模塊顯示的部件可能是或者可能不是物理模塊。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普 通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn) 飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
      權(quán)利要求
      1、一種CPU核運(yùn)行方法,其特征在于,包括系統(tǒng)中斷到達(dá)時(shí),調(diào)用預(yù)先配置的虛擬CPU核入口函數(shù);并通過(guò)CPU核運(yùn)行所調(diào)用的虛擬CPU核入口函數(shù)。
      2、 如權(quán)利要求l所述的方法,其特征在于,所述系統(tǒng)中斷為系統(tǒng)定時(shí)中斷。
      3、 如權(quán)利要求2所述的方法,其特征在于,所述通過(guò)CPU核運(yùn)行所調(diào) 用的虛擬CPU核入口函數(shù),具體包括在所述虛擬CPU核入口函數(shù)通過(guò)CPU核開始運(yùn)行時(shí),記錄運(yùn)行起始時(shí)間; 根據(jù)預(yù)先設(shè)定的運(yùn)行時(shí)間以及記錄的起始時(shí)間,確定該虛擬CPU核入口 函數(shù)的退出時(shí)間;每當(dāng)運(yùn)行完該虛擬CPU核入口函數(shù)中的 一個(gè)線程,獲得當(dāng)前時(shí)間; 比較所述當(dāng)前時(shí)間與退出時(shí)間,在所述當(dāng)前時(shí)間大于、等于所述退出時(shí) 間時(shí),控制該虛擬CPU核入口函凄t從所述CPU核退出運(yùn)行。
      4、 如權(quán)利要求3所述的方法,其特征在于,所述虛擬CPU核入口函數(shù)定時(shí)中斷設(shè)定的定時(shí)周期。
      5、 如權(quán)利要求3所述的方法,其特征在于,虛擬CPU核入口函數(shù)中的 每個(gè)線程運(yùn)行時(shí)間小于設(shè)定時(shí)間值r^ 。
      6、 如權(quán)利要求4所述的方法,其特征在于,所述定時(shí)周期以及各虛擬 CPU核入口函數(shù)運(yùn)行時(shí)間為靜態(tài)設(shè)置的;或者,為動(dòng)態(tài)調(diào)整的。
      7、 一種CPU核運(yùn)行裝置,其特征在于,包括入口函數(shù)存儲(chǔ)模塊,用于存儲(chǔ)配置的虛擬CPU核入口函數(shù); 中斷處理模塊,用于在系統(tǒng)中斷到達(dá)時(shí),調(diào)用所述入口函數(shù)存儲(chǔ)模塊存 儲(chǔ)的虛擬CPU核入口函數(shù),將所述虛擬CPU核入口函數(shù)通過(guò)CPU核運(yùn)行。
      8、 如權(quán)利要求7所述的裝置,其特征在于,所述中斷處理-漠塊具體用于在系統(tǒng)定時(shí)中斷到達(dá)時(shí),在定時(shí)中斷處理程 序中調(diào)用虛擬CPU核入口函數(shù)。
      全文摘要
      本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及在系統(tǒng)中運(yùn)行虛擬CPU核的技術(shù)。一種CPU核運(yùn)行方法,包括系統(tǒng)中斷到達(dá)時(shí),調(diào)用預(yù)先配置的虛擬CPU核入口函數(shù);并通過(guò)CPU核運(yùn)行所調(diào)用的虛擬CPU核入口函數(shù)。本發(fā)明還提供了一種CPU核運(yùn)行裝置。由于在中斷處理程序中調(diào)用虛擬CPU核的入口函數(shù),從而實(shí)現(xiàn)在系統(tǒng)原有CPU核的基礎(chǔ)上增加了虛擬CPU核,提高了系統(tǒng)處理性能,并提高了代碼重用性。
      文檔編號(hào)G06F9/46GK101324853SQ20081011791
      公開日2008年12月17日 申請(qǐng)日期2008年8月5日 優(yōu)先權(quán)日2008年8月5日
      發(fā)明者健 吳 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1