專利名稱:在多核系統(tǒng)上配置核資源的方法、多核系統(tǒng)及管理核的制作方法
技術領域:
本發(fā)明涉及多核處理器技術領域,具體涉及在多核系統(tǒng)上配置核資源的 方法、多核系統(tǒng)及管理核。
背景技術:
多核處理器的出現是對傳統(tǒng)單核處理器性能的極大提升,然而隨著多核 處理器的快速發(fā)展、多核集成度的不斷增強,多核軟件技術的發(fā)展卻相對滯 后。為了充分發(fā)揮多核優(yōu)勢,業(yè)界選擇在多核處理器的每個核上運行一個操 作系統(tǒng)或者運行無需操作系統(tǒng)支持的單線程應用程序,每個核完成特定的任 務,多個核以流水線方式協同工作,系統(tǒng)根據需求為流水線的每個階段分配不同數量的核,而處于流水線的同一階段的核的業(yè)務功能即運行的代碼完 全相同。圖1給出了一個多核網絡服務器系統(tǒng)的流水線示意圖,如圖l所示,多 核網絡服務器系統(tǒng)的流水線由四個階段以太網(ETH)處理、因特網協議 (IP)處理、傳輸控制協議(TCP)處理和應用(APP)處理組成。其中, 由于TCP處理和APP處理4支復雜,而ETH處理和IP處理相對簡單,所以 啟動時為TCP處理階段和APP處理階段各分配了四個核、而為ETH處理階 段和IP處理階段各分配了兩個核。該系統(tǒng)在網絡流量正常時將正常運行, 但是,當網絡上某種不常見的業(yè)務流量突然增大時系統(tǒng)就可能出現問題。例 如當網絡上突然出現大量IP分片報文時,因為IP分片報文需要在IP處理 階段重組,所以IP處理階段的核的負荷會急劇增加,同時由于報文重組IP 處理階段向TCP處理階段輸送的報文相對減少,因此TCP處理階段核的負 荷相應降低,甚至會長期處于空閑狀態(tài),同理,APP處理階段核的負荷也降
低了,結果導致整個系統(tǒng)在IP處理階段產生瓶頸,同時,TCP和APP處理 階段的核得不到充分利用,造成核資源浪費。由上所述,由于現有技術中, 一旦多核系統(tǒng)啟動,各個核的功能就不再 改變,從而流水線的各階段所占用的核的數量也不再改變,這樣,當某個階 段的核的負荷突然增大時,很可能會造成系統(tǒng)瓶頸,從而使得多核系統(tǒng)的業(yè) 務處理效率較低。發(fā)明內容本發(fā)明提供在多核系統(tǒng)上配置核資源的方法、多核系統(tǒng)以及管理核,以提 高以流水線方式工作的多核系統(tǒng)的業(yè)務處理效率。本發(fā)明的技術方案是這樣實現的一種在多核系統(tǒng)上配置核資源的方法,該方法在多核系統(tǒng)中預先選擇一 個核作為管理核,其它核作為功能核,包括管理核根據各流水線階段的功能核發(fā)來的負載信息,;險測到一個流水線階 段的功能核都處于超載狀態(tài),則從功能核都處于低負載狀態(tài)的流水線階段中, 選擇一個功能核作為補充核,將該補充核添加到所述功能核都處于超載狀態(tài)的流水線階段中。所述在多核系統(tǒng)中預先選擇一個核作為管理核進一步包括預先設定一個 超載閾值,所述管理核;險測到一個流水線階段的功能核都處于超載狀態(tài)包括管理核 檢測到一個流水線階段中,每個功能核的負載都連續(xù)預定次數大于超載閾值, 則確定該流水線階段的功能核都處于超載狀態(tài)。所述在多核系統(tǒng)中預先選擇一個核作為管理核進一步包括預先設定一個 低負載閾值,所述管理核選擇一個補充核包括管理核檢測到一個流水線階段中,每個 功能核的負載都連續(xù)預定次數低于低負載閾值,則確定該流水線階段的功能核 都處于低負載狀態(tài),則從該流水線階段中選擇一個功能核作為補充核。
所述管理核將補充核添加到所述功能核都超載的流水線階段中包括管理 核向補充核發(fā)送復位命令,補充核收到該復位命令,停止接收新業(yè)務,并在處 理完已接收的業(yè)務后,將自身的運行狀態(tài)設置為待復位狀態(tài),向管理核上報該 運行狀態(tài),管理核根據該運行狀態(tài),將補充核的運行環(huán)境設置為與所述功能核 都超載的流水線階段中的功能核相同,設置完畢,對補充核執(zhí)行復位操作。所述管理核對補充核執(zhí)行復位操作進一步包括管理核確定補充核復位成 功,釋放補充核在復位前所處流水線階段中占用的資源。所述管理核將補充核的運行環(huán)境設置為與所述功能核都超載的流水線階段 中的功能核相同包括設置補充核完成所述功能核都超栽的流水線階段的功能 所需要的代碼段、數據段、共享數據段和堆棧空間。所述管理核對補充核執(zhí)行復位搡作包括管理核通過多核系統(tǒng)提供的單核 復位功能對補充核進行復位。一種多核系統(tǒng),該系統(tǒng)包括管理核和功能核,其中管理核,接收各流水線階段的功能核發(fā)來的負載信息,檢測到一個流水線 階段的功能核都處于超載狀態(tài),則從功能核都處于低負載狀態(tài)的流水線階段中, 選擇一個功能核作為補充核,將該補充核添加到所述功能核都處于超載狀態(tài)的 流水線階段中;功能核,向管理核上報自身的負載信息。所述管理核包括通信模塊,接收并記錄功能核發(fā)來的負載信息;超載檢測模塊,當從通信模塊查詢到一個流水線階段的功能核都處于超 載狀態(tài)時,則向通信模塊查詢功能核都處于低負載狀態(tài)的流水線階段,從查 詢到的流水線階段選擇一個功能核作為補充核,將該補充核標識和超載流水 線階段標識發(fā)送給超載處理模塊;超載處理模塊,接收補充核標識和超載流水線階段標識,通知補充核復 位,在檢測到補充核為待復位狀態(tài)后,將補充核的運行環(huán)境設置為與功能核 都處于超載狀態(tài)的流水線階段的功能核相同,設置完畢,將補充核復位,檢
測到補充核復位成功后,釋放補充核在復位前所在流水線階段中占用的資源。一種管理核,該管理核包括通信模塊、超載檢測模塊和超載處理模塊, 其中通信模塊,接收并記錄功能核發(fā)來的負載信息;超載檢測模塊,當從通信模塊查詢到一個流水線階段的功能核都處于超 載狀態(tài)時,則向通信模塊查詢功能核都處于低負載狀態(tài)的流水線階段,從查 詢到的流水線階段選擇一個功能核作為補充核,將該補充核標識和超載流水 線階段標識發(fā)送給超載處理模塊;超載處理模塊,接收補充核標識和超載流水線階段標識,通知補充核復 位,在檢測到補充核為待復位狀態(tài)后,將補充核的運行環(huán)境設置為與功能核 都處于超載狀態(tài)的流水線階段的功能核相同,設置完畢,將補充核復位,檢 測到補充核復位成功后,釋放補充核在復位前所在流水線階段中占用的資 源。與現有技術相比,本發(fā)明通過在多核系統(tǒng)中預先選擇一個核作為管理 核,其它核作為功能核,當管理核根據各流水線階段的功能核發(fā)來的負載信 息,檢測到一個流水線階段的功能核都處于超載狀態(tài)時,則從功能核都處于 低負載狀態(tài)的流水線階段中,選擇一個功能核作為補充核,將該補充核添加 到所述功能核都超載的流水線階段中,實現了根據多核系統(tǒng)各流水線階段的 業(yè)務負載動態(tài)調整各流水線階段占用的核資源、從而提高多核系統(tǒng)的業(yè)務處 理效率的目的。
圖1為現有的多核網絡服務器系統(tǒng)的流水線示意圖; 圖2為本發(fā)明實施例提供的在以流水線方式工作的多核系統(tǒng)中,動態(tài)配 置核資源的流程圖;圖3為本發(fā)明實施例提供的將補充核添加到超載流水線階段的流程圖4為本發(fā)明提供的多核網絡服務器系統(tǒng)的流水線示意圖;圖5為本發(fā)明實施例提供的以流水線方式工作的多核系統(tǒng)的組成圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明再作進一 步詳細的說明。圖2為本發(fā)明實施例提供的在以流水線方式工作的多核系統(tǒng)中,動態(tài)配 置核資源的流程圖,如圖2所示,其具體步驟如下步驟201:在多核系統(tǒng)中選擇一個核作為管理核,其它核作為功能核??稍诙嗪颂幚砥髦袉为毷褂靡粋€核作為管理核,也可以在一個負載較輕 的功能核上實現核資源管理功能,使該核同時作為功能核和管理核。步驟202:功能核實時計算自身的負載值,每隔預定時間間隔將自身負 載值和運行狀態(tài)信息發(fā)送給管理核。步驟203:管理核收到功能核發(fā)來的負載值和運行狀態(tài)信息,記錄該功 能核的負載值、運行狀態(tài)信息與當前時刻的對應關系。若管理核同時為功能核,則管理核也要實時計算自身的負載值,并每隔 預定時間間隔記錄一次自身的負載值、運行狀態(tài)信息和當前時刻的對應關 系。步驟204:管理核根據已記錄的該功能核的負載值,判斷該功能核是否 處于超載狀態(tài),若是,執(zhí)行步驟205;否則,轉至步驟203。具體地,管理核可預先設定一個超載閾值,且預先設定當功能核發(fā)來 的負載值連續(xù)預定次數大于超載閾值時,則認為該功能核處于超載狀態(tài)。例 如管理核預先設定超載閾值為80%,且預先設定功能核發(fā)來的負載值連續(xù) 三次超過80%,則認為功能核處于超載狀態(tài)。步驟205:管理核判斷該功能核所處流水線階段的其它功能核是否也都 處于超載狀態(tài),若是,執(zhí)行步驟206;否則,轉至步驟203。步驟206:管理核確定為該流水線階段分配的核的數量已不能滿足當前 業(yè)務需求,根據已記錄的其它流水線階段中的功能核的負載值,判斷是否存
在功能核都處于低負載狀態(tài)的流水線階段,若是,執(zhí)行步驟207;否則,轉 至步驟203。管理核可預先設定一個低負載閾值,且預先設定當功能核發(fā)來的負載 值連續(xù)預定次數低于低負載閾值時,則認為該功能核處于低負載狀態(tài)。例如 管理核預先設定低負載閾值為20%,且預先設定當功能核發(fā)來的負載值連 續(xù)三次低于20%,則認為功能核處于低負載狀態(tài)。步驟207:管理核從該功能核都處于低負載狀態(tài)的流水線階段任意選擇 一個功能核,將該功能核作為補充核,添加到功能核都處于超載狀態(tài)的流水 線階段中,轉至步驟203。本發(fā)明實施例中,將功能核都處于超載狀態(tài)的流水線階段簡稱為超載流 水線階段,將功能核都處于低負載狀態(tài)的流水線階段簡稱為低負載流水線階 段。以下給出管理核將補充核添加到超載流水線階段的
具體實施例方式
圖3為本發(fā)明實施例提供的將補充核添加到超載流水線階段的流程圖, 如圖3所示,其具體步驟如下步驟301:管理核向選中的補充核發(fā)送復位命令。步驟302:補充核收到管理核發(fā)來的復位命令,停止接收新業(yè)務,并在 完成當前已接收業(yè)務的處理后,將自身運行狀態(tài)設為待復位狀態(tài),并在上報 負載值和運行狀態(tài)時刻到來時,向管理核上報自身的負載值和運行狀態(tài)信 息。步驟303:管理核收到補充核發(fā)來負載值和運行狀態(tài)信息,檢測到該運 行狀態(tài)信息指示補充核處于待復位狀態(tài),則將補充核的運行環(huán)境設置為與超 載流水線階段的功能核相同。設置補充核的運行環(huán)境包括設置補充核完成超載流水線階段的功能所 需要的代碼段、數據段、共享數據段和堆??臻g。管理核為補充核設置運行 環(huán)境的過程類似于Bootloader為核加載程序的過程。具體過程為由于管理 核掌握著每個功能核執(zhí)行映像地址,首先為補充核選擇新的執(zhí)行映像即超 載核所執(zhí)行的映像,管理核將該映像的入口地址作為補充核復位后的程序入口地址寫到補充核的啟動向量中;然后管理核為補充核分配新的數據段空間 和堆??臻g,并通過修改補充核啟動向量中的TLB表項將數據段空間和堆 棧空間映射到補充核的虛擬空間中;最后,管理核為補充核設置啟動參數, 管理核需在啟動參數中告知補充核啟動后不必重新初始化共享數據段,這樣 補充核啟動后就可以直接使用共享數據段中的數據開始工作了 。 步驟304:運行環(huán)境設置完畢,管理核對補充核進行復位。 在本實施例中,管理核可通過多核處理器提供的單核復位功能對補充核 進行復位。例如多核處理器提供一個復位寄存器,寄存器的每一位與一個 核對應,當向一位寫入"1"時,可^f吏對應的核復位,^t人而,可通過^喿作多 核處理器的復位寄存器使得補充核復位。步驟305:補充核在復位成功后,將自身的運行狀態(tài)設為正常工作狀態(tài), 然后在上報負載值和運行狀態(tài)時刻到來時,向管理核上報自身的負載值和運 行狀態(tài)信息。步驟306:管理核收到補充核發(fā)來的負載值和運行狀態(tài)信息,檢測到該 運行狀態(tài)信息指示補充核處于正常工作狀態(tài),則確定補充核復位成功,釋放 補充核在原低負載流水線階段中所占用的數據段空間和堆??臻g。步驟307:補充核在新的運行環(huán)境下,完成超載流水線階段的業(yè)務處理 功能。以下給出 一個應用本發(fā)明實施例的具體例子如圖4所示,設多核網絡服務器系統(tǒng)的流水線由四個階段ETH處理、 IP處理、TCP處理和APP處理組成。啟動時為TCP處理階^殳和APP處理階 段各分配了四個核、而為ETH處理階段和IP處理階段各分配了兩個核,且 由于ETH處理較簡單,將ETH處理階段中的一個核同時作為功能核和管理 核,其它核都作為功能核。且,功能核每隔預定時間間隔向管理核上報自身 的負載值和運行狀態(tài)信息。當網絡中的IP分片報文突然增多導致IP處理階 段的功能核的負載突然加重時,管理核根據IP處理階段的功能核上報的負
載值,可檢測到IP處理階段超載,則查看其它流水線階段的負載情況,檢測到TCP處理階段的功能核都處于低負載狀態(tài),則從TCP處理階段任意選擇一個功能核,通知該功能核復位,并將該功能核的運行環(huán)境設置為與IP 處理階段的功能核相同,從而使得IP處理階段增加了 一個功能核。圖5為發(fā)明實施例提供的以流水線方式工作的多核系統(tǒng)組成圖,如圖5 所示,其主要包括管理核51和功能核52,其中管理核51包括通信模塊511、超載檢測模塊512和超載處理模塊513, 其中通信模塊511:用于接收功能核52發(fā)來的負載值和運行狀態(tài)信息,保 存功能核的負載值、運行狀態(tài)信息與當前時刻的對應關系。超載檢測模塊512:用于預先設定超載閾值和低負載閾值,每隔預定時 間間隔查詢一次通信模塊511中記錄的功能核的負載值,判斷是否有功能核 的負載值連續(xù)預定次數大于超載閾值,若有,則確定該功能核超載,進一步 判斷該功能核所處流水線階段的其它功能核是否都超載,若都超載,則查看 通信模塊511中記錄的其它流水線階段的功能核的負載值,判斷是否存在功 能核都處于低負載狀態(tài)的流水線階段,若存在,則從該流水線階段任意選擇 一個功能核作為補充核,將該補充核標識和超載流水線階段標識發(fā)送給超載 處理模塊513。超載處理模塊513:接收到超載檢測模塊512發(fā)來的補充核標識和超載 流水線階段標識,向該補充核標識對應補充核發(fā)送復位命令,并在通信模塊 511中查詢到該補充核的運行狀態(tài)為待復位狀態(tài)后,將該補充核的運行環(huán)境 設置為與超載流水線階段的功能核相同,設置完畢,將補充核復位,并在通 信模塊511中查詢到該補充核的運行狀態(tài)為正常工作狀態(tài)后,釋放補充核在 原低負載流水線階段中所占用的數據段空間和堆棧空間。功能核52:實時計算自身的負載值,每隔預定時間間隔向管理核51發(fā) 送自身的負載值和運行狀態(tài)信息;接收到管理核51發(fā)來的復位命令,停止 接收新業(yè)務,并將自身已接收業(yè)務處理完畢;在新的運行環(huán)境下,完成與超載流水線階段的功能核相同的業(yè)務處理功能。從圖2、 3、 5所示實施例可以看出本發(fā)明實施例通過監(jiān)測各流水線階 段的負載情況,當一個流水線階段的功能核都處于超載狀態(tài)后,則從其它功 能核都處于低負載狀態(tài)的流水線階段中,選擇一個功能核作為補充核添加到 所述超載的流水線階段中,實現了在無需重啟多核系統(tǒng)的前提下,根據各流 水線階段的業(yè)務負載變化動態(tài)調整各流水線階段占用核資源,從而避免系統(tǒng) 瓶頸、提高多核系統(tǒng)的業(yè)務處理效率的目的。本發(fā)明實施例所提供的方案主要應用于以流水線方式工作、且同 一流水 線階段的各功能核的運行環(huán)境相同的多核系統(tǒng)中。以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內所做的任何修改、等同替換、改進等,均應包含在 本發(fā)明的保護范圍之內。
權利要求
1、 一種在多核系統(tǒng)上配置核資源的方法,其特征在于,在多核系統(tǒng)中預先選擇一個核作為管理核,其它核作為功能核,該方法包括管理核根據各流水線階段的功能核發(fā)來的負載信息,檢測到一個流水線階 段的功能核都處于超載狀態(tài),則從功能核都處于低負載狀態(tài)的流水線階段中, 選擇一個功能核作為補充核,將該補充核添加到所述功能核都處于超載狀態(tài)的流水線階段中。
2、 如權利要求l所述的方法,其特征在于,所述在多核系統(tǒng)中預先選擇一 個核作為管理核進一步包括預先設定一個超載閾值,所述管理核檢測到一個流水線階段的功能核都處于超載狀態(tài)包括管理核 檢測到一個流水線階段中,每個功能核的負載都連續(xù)預定次數大于超載閾值, 則確定該流水線階段的功能核都處于超載狀態(tài)。
3、 如權利要求1或2所述的方法,其特征在于,所述在多核系統(tǒng)中預先選 擇一個核作為管理核進一步包括預先設定一個低負載閾值,所述管理核選擇一個補充核包括管理核檢測到一個流水線階段中,每個 功能核的負載都連續(xù)預定次數低于低負載闊值,則確定該流水線階段的功能核 都處于低負載狀態(tài),則從該流水線階段中選擇一個功能核作為補充核。
4、 如權利要求l所述的方法,其特征在于,所述管理核將補充核添加到所 述功能核都超載的流水線階段中包括管理核向補充核發(fā)送復位命令,補充核 收到該復位命令,停止接收新業(yè)務,并在處理完已接收的業(yè)務后,將自身的運 行狀態(tài)設置為待復位狀態(tài),向管理核上報該運行狀態(tài),管理核根據該運行狀態(tài), 將補充核的運行環(huán)境設置為與所述功能核都超載的流水線階段中的功能核相 同,設置完畢,對補充核執(zhí)行復位4喿作。
5、 如權利要求4所述的方法,其特征在于,所述管理核對補充核執(zhí)行復位 操作進一步包括管理核確定補充核復位成功,釋放補充核在復位前所處流水 線階段中占用的資源。
6、 如權利要求4所述的方法,其特征在于,所述管理核將補充核的運行環(huán)境設置為與所述功能核都超載的流水線階段中的功能核相同包括設置補充核 完成所述功能核都超載的流水線階段的功能所需要的代碼段、數據段、共享數 據段和堆棧空間。
7、 如權利要求4所述的方法,其特征在于,所述管理核對補充核執(zhí)行復位 操作包括管理核通過多核系統(tǒng)提供的單核復位功能對補充核進行復位。
8、 一種多核系統(tǒng),其特征在于,該系統(tǒng)包括管理核和功能核,其中 管理核,接收各流水線階段的功能核發(fā)來的負載信息,;險測到一個流水線階段的功能核都處于超載狀態(tài),則從功能核都處于低負載狀態(tài)的流水線階段中, 選捧一個功能核作為補充核,將該補充核添加到所述功能核都處于超載狀態(tài)的 流水線階段中;功能核,向管理核上報自身的負載信息。
9、 如權利要求8所述的多核系統(tǒng),其特征在于,所述管理核包括 通信模塊,接收并記錄功能核發(fā)來的負載信息;超載檢測模塊,當從通信模塊查詢到一個流水線階段的功能核都處于超 載狀態(tài)時,則向通信模塊查詢功能核都處于低負載狀態(tài)的流水線階段,從查 詢到的流水線階段選擇一個功能核作為補充核,將該補充核標識和超載流水 線階段標識發(fā)送給超載處理模塊;超載處理模塊,接收補充核標識和超載流水線階段標識,通知補充核復 位,在檢測到補充核為待復位狀態(tài)后,將補充核的運行環(huán)境設置為與功能核 都處于超載狀態(tài)的流水線階段的功能核相同,設置完畢,將補充核復位,檢 測到補充核復位成功后,釋放補充核在復位前所在流水線階段中占用的資 源。
10、 一種管理核,其特征在于,該管理核包括通信模塊、超載檢測模塊 和超載處理模塊,其中通信模塊,接收并記錄功能核發(fā)來的負載信息;超載檢測模塊,當從通信模塊查詢到一個流水線階段的功能核都處于超載狀態(tài)時,則向通信模塊查詢功能核都處于低負載狀態(tài)的流水線階段,從查 詢到的流水線階段選擇一個功能核作為補充核,將該補充核標識和超載流水線階段標識發(fā)送給超載處理模塊;超載處理模塊,接收補充核標識和超載流水線階段標識,通知補充核復 位,在檢測到補充核為待復位狀態(tài)后,將補充核的運行環(huán)境設置為與功能核 都處于超載狀態(tài)的流水線階段的功能核相同,設置完畢,將補充核復位,檢 測到補充核復位成功后,釋放補充核在復位前所在流水線階段中占用的資
全文摘要
本發(fā)明公開了一種在多核系統(tǒng)上配置核資源的方法,包括在多核系統(tǒng)中預先選擇一個核作為管理核,其它核作為功能核,當管理核根據各流水線階段的功能核發(fā)來的負載信息,檢測到一個流水線階段的功能核都處于超載狀態(tài)時,則從功能核都處于低負載狀態(tài)的流水線階段中,選擇一個功能核作為補充核,將該補充核添加到所述功能核都超載的流水線階段中。本發(fā)明同時公開了一種多核系統(tǒng)和一種管理核。本發(fā)明實現了根據多核系統(tǒng)各流水線階段的業(yè)務負載動態(tài)調整各流水線階段占用的核資源、從而提高多核系統(tǒng)的業(yè)務處理效率的目的。
文檔編號H04L29/02GK101146089SQ200710120638
公開日2008年3月19日 申請日期2007年8月22日 優(yōu)先權日2007年8月22日
發(fā)明者張曉明 申請人:杭州華三通信技術有限公司