專利名稱:用于在多處理器核心系統(tǒng)中執(zhí)行節(jié)能的網(wǎng)絡(luò)數(shù)據(jù)包處理的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本公開涉及并且具體涉及多處理器核心系統(tǒng)中的節(jié)能,并且具體涉及節(jié)能的網(wǎng)絡(luò)數(shù)據(jù)包處理。
背景技術(shù):
一般,具有多個處理器核心的計算機(jī)系統(tǒng)通過在所有的處理器核心之間分配工作負(fù)荷來處理高工作負(fù)荷。然而,隨著工作負(fù)荷減少,多個處理器核心中的每一個可能沒有被充分利用。為了減小低工作負(fù)荷時多個處理器核心的功耗,操作系統(tǒng)可以基于系統(tǒng)使用水平來調(diào)整使用的處理器核心的數(shù)量。未被使用的處理器核心被置于低功率空閑狀態(tài)(“擱置的”)并且可以保持該低功率空閑狀態(tài)較長的連續(xù)時間間隔。操作系統(tǒng)繼續(xù)在沒有處于低功率空閑狀態(tài)的處理器核心之間分配工作負(fù)荷。
隨著下面詳細(xì)描述的進(jìn)行,并且在參照附圖后,所要求主題的實(shí)施例的特征將變得顯而易見,在附圖中相同的數(shù)字描述相同的部件,并且在附圖中圖1是包括支持接收側(cè)調(diào)節(jié)的網(wǎng)絡(luò)接口控制器的實(shí)施例的系統(tǒng)的框圖;圖2是示出了圖1中所示的網(wǎng)絡(luò)接口控制器和存儲器的實(shí)施例的框圖;圖3是根據(jù)本發(fā)明的原理動態(tài)地調(diào)整核心相關(guān)性(affinity)設(shè)置的方法的實(shí)施例的流程圖;以及圖4是示出了圖1中所示的網(wǎng)絡(luò)接口控制器和存儲器的另一實(shí)施例的框圖。雖然參考所要求主題的示例性實(shí)施例進(jìn)行下面的詳細(xì)描述,但是對本領(lǐng)域技術(shù)人員來說,其的多種替換、修改以及變型將是顯而易見的。因此,所要求主題旨在被視為是廣泛的,并且僅如所附權(quán)利要求闡述的那樣進(jìn)行限定。
具體實(shí)施例方式計算機(jī)系統(tǒng)可以包括網(wǎng)絡(luò)接口控制器(適配器、卡),該網(wǎng)絡(luò)接口控制器接收來自網(wǎng)絡(luò)的網(wǎng)絡(luò)數(shù)據(jù)包并且將用于處理的所接收的網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)至多個處理器核心中的一個。在處理器核心之間分配的工作負(fù)荷可以包括對由網(wǎng)絡(luò)接口控制器接收的網(wǎng)絡(luò)數(shù)據(jù)包的處理。例如,在計算機(jī)系統(tǒng)中,對網(wǎng)絡(luò)數(shù)據(jù)包的處理可以在處理器核心之間分配,使得對相同通信流(例如,具有相同源地址和目的地址的網(wǎng)絡(luò)數(shù)據(jù)包)的處理由相同的處理器核心執(zhí)行。當(dāng)工作負(fù)荷低時,操作系統(tǒng)可以僅使用多個處理器核心的一個子集,并且將其它的處理器核心置于低功率空閑狀態(tài)。然而,如果特定通信流的所接收的要被處理的網(wǎng)絡(luò)數(shù)據(jù)包被指派給了處于低功率空閑狀態(tài)的處理器核心(該通信流的核心相關(guān)性設(shè)置),則該處
4理器核心從低功率空閑狀態(tài)喚醒。結(jié)果,處于低功率空閑狀態(tài)的處理器核心不具有保持低功率空閑狀態(tài)較長時間的機(jī)會。本發(fā)明實(shí)施例基于操作系統(tǒng)是否將任意的處理器核心置于低功率空閑狀態(tài)來動態(tài)地調(diào)整網(wǎng)絡(luò)數(shù)據(jù)包處理的核心相關(guān)設(shè)置。將對于具有支持由Microsoft 的Windows 操作系統(tǒng)(OS)使用的接收側(cè)調(diào)節(jié) (RSS)的網(wǎng)絡(luò)接口控制器的計算機(jī)系統(tǒng)描述本發(fā)明實(shí)施例。然而,本發(fā)明不限于RSS。在其它實(shí)施例中,網(wǎng)絡(luò)適配器可以支持由包括具有功率節(jié)省模式特征的調(diào)度器的Linux操作系統(tǒng)或者包括功率節(jié)省模式的任意其它操作系統(tǒng)使用的可調(diào)節(jié)輸入/輸出(I/O)。圖1是包括支持接收側(cè)調(diào)節(jié)的網(wǎng)絡(luò)接口控制器108的實(shí)施例的系統(tǒng)100的框圖。系統(tǒng)100包括處理器101、存儲控制器中心(MCH) 102和輸入/輸出(I/O)控制器中心 (ICH) 104。MCH 102包括控制處理器101和存儲器110之間的通信的存儲控制器106。處理器101和MCH 102通過系統(tǒng)總線116進(jìn)行通信。處理器101可以是多核心處理器,諸如lntel Pentium D、lntel Xeon 處理器、 或者Intel Core 雙核處理器、Intel CoreTM i7處理器或者任意其它類型的處理器。在所示出的實(shí)施例中,系統(tǒng)包括兩個多核心處理器101,每個均具有至少兩個處理器核心(“核心”)122。在一個實(shí)施例中,每個多核心處理器包括四個核心122。存儲器110可以是動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、同步動態(tài)隨機(jī)存取存儲器(SDRAM)、雙數(shù)據(jù)速率2 (DDR2) RAM或Rambus動態(tài)隨機(jī)存取存儲器 (RDRAM),或者任意其它類型的存儲器。ICH 104可以使用諸如直接媒體接口(DMI)的高速芯片到芯片互聯(lián)114來耦合至 MCH 102。DMI經(jīng)由兩個單向通道支持2千兆比特/秒的并發(fā)傳輸速率。ICH 104可以包括存儲輸入/輸出(I/O)控制器,用于控制與耦合至該ICH 104的至少一個存儲設(shè)備112的通信。例如,該存儲設(shè)備可以是盤驅(qū)動器、數(shù)字視頻盤(DVD)驅(qū)動器、光盤(⑶)驅(qū)動器、獨(dú)立冗余磁盤陣列(RAID)、帶驅(qū)動器或者其它存儲設(shè)備。ICH 104可以使用諸如串行連接小型計算機(jī)系統(tǒng)接口(SAQ或者串行高級技術(shù)附件(SATA)等的串行存儲協(xié)議來通過存儲協(xié)議互聯(lián)118與存儲設(shè)備112進(jìn)行通信。在另一實(shí)施例中,網(wǎng)絡(luò)接口控制器108可以包括在沒有包括存儲I/O控制器120 的ICH 104中,或者可以包括在插入系統(tǒng)100的系統(tǒng)卡槽中的分離的網(wǎng)絡(luò)接口卡上。圖2是示出了圖1中所示的網(wǎng)絡(luò)接口控制器108和存儲器110的實(shí)施例的框圖。 網(wǎng)絡(luò)接口控制器108包括散列功能單元220、間接表230和多個硬件接收隊列202。存儲器 110包括操作系統(tǒng)內(nèi)核觀0、濾波器驅(qū)動器210和網(wǎng)絡(luò)設(shè)備驅(qū)動器(微端口驅(qū)動器)270。在一個實(shí)施例中,散列功能單元220和間接表230包括在網(wǎng)絡(luò)接口控制器(“NIC”)108中。 在另一實(shí)施例中,這些部件中的一些或者這些部件中的一些元件可以位于網(wǎng)絡(luò)接口控制器 108的外部。在所示出的實(shí)施例中,微端口驅(qū)動器270和濾波器驅(qū)動器210是 Micorsoft Windows 操作系統(tǒng)模型(WDM)的部件。WDM包括可以是類驅(qū)動器(class driver)或者微端口驅(qū)動器的設(shè)備功能驅(qū)動器。微端口驅(qū)動器支持特定類型的設(shè)備,例如, 特定的網(wǎng)絡(luò)接口控制器108。濾波器驅(qū)動器210是可選的驅(qū)動器,其將值添加至或者修改功能驅(qū)動器(微端口驅(qū)動器)270的行為。
網(wǎng)絡(luò)驅(qū)動器接口規(guī)范(NDIQ是經(jīng)由網(wǎng)絡(luò)接口控制器110的應(yīng)用程序接口(API) 訪問的函數(shù)庫。NDIS用作7層開放式系統(tǒng)互聯(lián)(OSI)中的第二層(鏈路層)和第三層(網(wǎng)絡(luò)層)之間的接口。庫函數(shù)包括對象標(biāo)識符(OID)。網(wǎng)絡(luò)接口控制器108可以使用散列功能單元220中的散列函數(shù),來通過所接收的網(wǎng)絡(luò)數(shù)據(jù)包中的散列類型(例如,頭部中的一個或多個字段)計算散列值。散列值的多個最低有效位可以用來對間接表230中的項進(jìn)行索引,其中該間接表230中的項識別用于進(jìn)行所接收數(shù)據(jù)包的處理的處理器核心122(圖1)并且識別用于存儲所接收的數(shù)據(jù)包的多個接收隊列202中的一個。網(wǎng)絡(luò)接口控制器108可以中斷所識別的處理器核心122。在實(shí)施例中,當(dāng)每個網(wǎng)絡(luò)數(shù)據(jù)包由網(wǎng)絡(luò)接口控制器108接收時,與該網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)聯(lián)的“流”被確定??梢曰诎ㄔ跀?shù)據(jù)包中的TCP頭部和網(wǎng)際協(xié)議(IP)頭部中的字段的值,來確定傳輸控制協(xié)議(TCP)數(shù)據(jù)包的“流”。例如,該“流”的流標(biāo)識符可以依賴于包括在所接收網(wǎng)絡(luò)數(shù)據(jù)包中的IP頭部中的IP源地址和IP目的地址以及TCP頭部中的源端口地址和目的端口地址的組合。提供多個硬件接收隊列202以存儲所接收的網(wǎng)絡(luò)數(shù)據(jù)包。為了確保特定流的按次序的數(shù)據(jù)包傳送,每個硬件接收隊列202可以被指派給不同的流以及指派給多個處理器核心122中的一個。因此,多個硬件接收隊列202中的每個經(jīng)由間接表230而與多個核心處理器122中的一個相關(guān)聯(lián)。在所示出的實(shí)施例中,網(wǎng)絡(luò)接口控制器108具有8個接收隊列202。然而,接收隊列202的數(shù)量不限于8個。在其它的實(shí)施例中,存在更多或者更少的接收隊列202。所接收的網(wǎng)絡(luò)數(shù)據(jù)包被存儲在多個接收隊列202中的一個中。每個接收隊列的數(shù)據(jù)包處理可以與特定的處理器核心122相關(guān)。在本發(fā)明的實(shí)施例中,基于處于功率節(jié)省空閑狀態(tài)(“擱置的”)的處理器核心122的數(shù)量來動態(tài)地調(diào)整數(shù)據(jù)包處理的核心相關(guān)性設(shè)置。下面的表1示出了間接表230的示例,以及在具有8個核心和8個接收隊列的系統(tǒng)中,對接收隊列202到處理器核心122的初始指派,以在所有的處理器核心122中分配接收數(shù)據(jù)包處理。
接收隊列核心 ~~0 0 ~i i ~~2 2 ~~33
~4
~~56
~~6權(quán)利要求
1.一種方法,包括監(jiān)控多個處理單元中的每一個的低功率空閑狀態(tài);以及將指派給具有低功率空閑狀態(tài)的處理單元的流適應(yīng)性地重新指派給具有非低功率空閑狀態(tài)的其它處理單元,以減少所述多個處理單元的能量消耗。
2.根據(jù)權(quán)利要求1所述的方法,其中,適應(yīng)性地重新指派流包括通過間接表來重新指派所述流,所述間接表包括多個項,每個項包括對與隊列相關(guān)聯(lián)的流被指派到的處理單元的識別。
3.根據(jù)權(quán)利要求1所述的方法,其中,對所述多個處理單元的低功率空閑狀態(tài)的監(jiān)控由操作系統(tǒng)來執(zhí)行。
4.根據(jù)權(quán)利要求1所述的方法,其中,對所述多個處理單元的低功率空閑狀態(tài)的監(jiān)控由與網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的驅(qū)動器來執(zhí)行。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述驅(qū)動器是濾波器驅(qū)動器。
6.一種制品,包括具有相關(guān)聯(lián)的信息的機(jī)器可訪問介質(zhì),其中當(dāng)被訪問時,所述信息導(dǎo)致機(jī)器執(zhí)行監(jiān)控多個處理單元中的每一個的低功率空閑狀態(tài);以及將指派給具有低功率空閑狀態(tài)的處理單元的流適應(yīng)性地重新指派給具有非低功率空閑狀態(tài)的其它處理單元,以減少所述多個處理單元的能量消耗。
7.根據(jù)權(quán)利要求6所述的制品,其中,適應(yīng)性地重新指派流包括通過間接表來重新指派所述流,所述間接表包括多個項,每個項包括對與隊列相關(guān)聯(lián)的流被指派到的處理單元的識別。
8.根據(jù)權(quán)利要求6所述的制品,其中,對所述多個處理單元的低功率空閑狀態(tài)的監(jiān)控由操作系統(tǒng)來執(zhí)行。
9.根據(jù)權(quán)利要求6所述的制品,其中,對所述多個處理單元的低功率空閑狀態(tài)的監(jiān)控由與網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的驅(qū)動器來執(zhí)行。
10.一種裝置,包括多個處理單元;以及用于監(jiān)控所述多個處理單元中的每一個的低功率空閑狀態(tài)以及將指派給具有低功率空閑狀態(tài)的處理單元的流適應(yīng)性地重新指派給具有非低功率空閑狀態(tài)的其它處理單元以減少所述多個處理單元的能量消耗的模塊。
11.根據(jù)權(quán)利要求10所述的裝置,還包括間接表,所述間接表包括多個項,每個項包括對與隊列相關(guān)聯(lián)的流被指派到的處理單元的識別,所述模塊適應(yīng)性地重新指派流是通過經(jīng)由所述間接表重新指派所述流來進(jìn)行的。
12.根據(jù)權(quán)利要求10所述的裝置,其中,所述模塊包括在操作系統(tǒng)中。
13.根據(jù)權(quán)利要求10所述的裝置,其中,所述模塊是與網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的驅(qū)動ο
14.根據(jù)權(quán)利要求13所述的裝置,其中,所述驅(qū)動器是濾波器驅(qū)動器。
15.一種系統(tǒng),包括存儲與從網(wǎng)絡(luò)接收的流相關(guān)聯(lián)的數(shù)據(jù)包的盤驅(qū)動器;多個處理單元;以及用于監(jiān)控所述多個處理單元中的每一個的低功率空閑狀態(tài)以及將指派給具有低功率空閑狀態(tài)的處理單元的流適應(yīng)性地重新指派給具有非低功率空閑狀態(tài)的其它處理單元以減少所述多個處理單元的能量消耗的模塊。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),還包括間接表,所述間接表包括多個項,每個項包括對與隊列相關(guān)聯(lián)的流被指派到的處理單元的識別,所述模塊適應(yīng)性地重新指派流是通過經(jīng)由所述間接表重新指派所述流來進(jìn)行的。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述模塊包括在操作系統(tǒng)中。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述模塊是與網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的驅(qū)動器。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述驅(qū)動器是濾波器驅(qū)動器。
全文摘要
提供了一種管理網(wǎng)絡(luò)數(shù)據(jù)包處理的核心相關(guān)性的方法和裝置。包括多個處理單元的系統(tǒng)中的該多個處理單元的低功率空閑狀態(tài)被監(jiān)控。網(wǎng)絡(luò)數(shù)據(jù)包處理被動態(tài)地重新指派給處于非低功率空閑狀態(tài)的處理單元,以增加處于低功率空閑狀態(tài)的處理單元的低功率空閑狀態(tài)時段,從而帶來減小的能量消耗。
文檔編號G06F9/46GK102460342SQ201080028104
公開日2012年5月16日 申請日期2010年6月25日 優(yōu)先權(quán)日2009年6月26日
發(fā)明者C-F·辛, J-s·蔡, T-Y·C·泰 申請人:英特爾公司